Skip to content

Commit f2303ad

Browse files
committed
refactor: move getElement out of component definition
1 parent 441bb09 commit f2303ad

File tree

102 files changed

+642
-1052
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

102 files changed

+642
-1052
lines changed
Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
import type { ComponentProps } from 'svelte';
2-
import type { SmuiComponent } from '@smui/common';
32
import type Component from './Accordion.svelte';
43

5-
export declare class AccordionComponentDev
6-
extends Component
7-
implements SmuiComponent
8-
{
4+
export declare class AccordionComponentDev extends Component {
95
/**
106
* @private
117
* For type checking capabilities only.
@@ -17,6 +13,4 @@ export declare class AccordionComponentDev
1713
'use' | 'class' | 'multiple'
1814
> &
1915
ComponentProps<Component>;
20-
21-
getElement(): ReturnType<Component['getElement']>;
2216
}
Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
import type { ComponentProps } from 'svelte';
2-
import type { SmuiComponent } from '@smui/common';
32
import type Component from './Header.svelte';
43

5-
export declare class HeaderComponentDev
6-
extends Component
7-
implements SmuiComponent
8-
{
4+
export declare class HeaderComponentDev extends Component {
95
/**
106
* @private
117
* For type checking capabilities only.
@@ -17,6 +13,4 @@ export declare class HeaderComponentDev
1713
'use' | 'class' | 'style' | 'ripple'
1814
> &
1915
ComponentProps<Component>;
20-
21-
getElement(): ReturnType<Component['getElement']>;
2216
}

packages/accordion/src/Panel.types.ts

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,8 @@
11
import type { ComponentProps } from 'svelte';
2-
import type { SmuiComponent } from '@smui/common';
32
import type { PaperComponentDev } from '@smui/paper';
43
import type Component from './Panel.svelte';
54

6-
export declare class PanelComponentDev
7-
extends Component
8-
implements SmuiComponent
9-
{
5+
export declare class PanelComponentDev extends Component {
106
/**
117
* @private
128
* For type checking capabilities only.
@@ -27,8 +23,6 @@ export declare class PanelComponentDev
2723
| 'extendedElevation'
2824
> &
2925
ComponentProps<Component>;
30-
31-
getElement(): ReturnType<Component['getElement']>;
3226
}
3327

3428
export interface SMUIAccordionPanelAccessor {

packages/autocomplete/src/Autocomplete.types.ts

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
11
import type { ComponentProps } from 'svelte';
2-
import type { SmuiComponent } from '@smui/common';
32
import type { MenuComponentDev } from '@smui/menu';
43
import type { TextfieldComponentDev } from '@smui/textfield';
54
import type { ListComponentDev } from '@smui/list';
65
import type Component from './Autocomplete.svelte';
76

8-
export declare class AutocompleteComponentDev
9-
extends Component
10-
implements SmuiComponent
11-
{
7+
export declare class AutocompleteComponentDev extends Component {
128
/**
139
* @private
1410
* For type checking capabilities only.
@@ -43,6 +39,4 @@ export declare class AutocompleteComponentDev
4339
textfield$label?: never;
4440
textfield$value?: never;
4541
} & ComponentProps<Component>;
46-
47-
getElement(): ReturnType<Component['getElement']>;
4842
}

packages/badge/src/Badge.types.ts

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
import type { ComponentProps } from 'svelte';
2-
import type { SmuiComponent } from '@smui/common';
32
import type Component from './Badge.svelte';
43

5-
export declare class BadgeComponentDev
6-
extends Component
7-
implements SmuiComponent
8-
{
4+
export declare class BadgeComponentDev extends Component {
95
/**
106
* @private
117
* For type checking capabilities only.
@@ -17,6 +13,4 @@ export declare class BadgeComponentDev
1713
'use' | 'class' | 'square' | 'color' | 'position' | 'align'
1814
> &
1915
ComponentProps<Component>;
20-
21-
getElement(): ReturnType<Component['getElement']>;
2216
}

packages/banner/src/Banner.types.ts

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
import type { ComponentProps } from 'svelte';
2-
import type { SmuiComponent } from '@smui/common';
32
import type Component from './Banner.svelte';
43

5-
export declare class BannerComponentDev
6-
extends Component
7-
implements SmuiComponent
8-
{
4+
export declare class BannerComponentDev extends Component {
95
/**
106
* @private
117
* For type checking capabilities only.
@@ -34,8 +30,6 @@ export declare class BannerComponentDev
3430
svelte.JSX.HTMLAttributes<HTMLDivElement>
3531
>[k];
3632
} & ComponentProps<Component>;
37-
38-
getElement(): ReturnType<Component['getElement']>;
3933
}
4034

4135
export { CloseReason } from '@material/banner';

packages/button/src/Button.svelte

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@
6363
} from '@smui/common/internal';
6464
import Ripple from '@smui/ripple';
6565
import type { SmuiComponent } from '@smui/common';
66-
import { Element } from '@smui/common';
66+
import { SmuiElement } from '@smui/common';
6767
6868
const forwardEvents = forwardEventsBuilder(get_current_component());
6969
@@ -86,9 +86,9 @@
8686
let internalStyles: { [k: string]: string } = {};
8787
let context = getContext<string | undefined>('SMUI:button:context');
8888
89-
export let component: SmuiComponent = Element;
89+
export let component: ComponentType<SmuiComponent> = SmuiElement;
9090
export let tag =
91-
component === Element ? (href == null ? 'button' : 'a') : null;
91+
component === SmuiElement ? (href == null ? 'button' : 'a') : null;
9292
9393
$: actionProp =
9494
context === 'dialog:action' && action != null
@@ -103,7 +103,10 @@
103103
104104
let previousDisabled = $$restProps.disabled;
105105
$: if (previousDisabled !== $$restProps.disabled) {
106-
getElement().blur();
106+
const el = getElement();
107+
if ('blur' in el) {
108+
(el as HTMLButtonElement).blur();
109+
}
107110
previousDisabled = $$restProps.disabled;
108111
}
109112
@@ -144,9 +147,7 @@
144147
}
145148
}
146149
147-
export function getElement(): ReturnType<
148-
InstanceType<typeof component>['getElement']
149-
> {
150+
export function getElement(): HTMLElement {
150151
return element.getElement();
151152
}
152153
</script>

packages/button/src/Button.types.ts

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
11
import type { ComponentProps, ComponentType } from 'svelte';
2-
import type { SmuiComponent, ElementComponentDev } from '@smui/common';
2+
import type { SmuiComponent, SmuiElementComponentDev } from '@smui/common';
33
import type Component from './Button.svelte';
44

55
export declare class ButtonComponentDev<
6-
T extends string = 'button',
7-
C extends ComponentType<SmuiComponent> = ComponentType<
8-
ElementComponentDev<T>
9-
>
6+
T extends string = 'button',
7+
C extends ComponentType<SmuiComponent> = ComponentType<
8+
SmuiElementComponentDev<T>
109
>
11-
extends Component
12-
implements SmuiComponent
13-
{
10+
> extends Component {
1411
/**
1512
* @private
1613
* For type checking capabilities only.
@@ -36,6 +33,4 @@ export declare class ButtonComponentDev<
3633
| 'tag'
3734
> &
3835
ComponentProps<Component>;
39-
40-
getElement(): ReturnType<InstanceType<C>['getElement']>;
4136
}

packages/button/src/Group.types.ts

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
import type { ComponentProps } from 'svelte';
2-
import type { SmuiComponent } from '@smui/common';
32
import type Component from './Group.svelte';
43

5-
export declare class GroupComponentDev
6-
extends Component
7-
implements SmuiComponent
8-
{
4+
export declare class GroupComponentDev extends Component {
95
/**
106
* @private
117
* For type checking capabilities only.
@@ -17,6 +13,4 @@ export declare class GroupComponentDev
1713
'use' | 'class' | 'variant'
1814
> &
1915
ComponentProps<Component>;
20-
21-
getElement(): ReturnType<Component['getElement']>;
2216
}

packages/card/src/Actions.types.ts

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
import type { ComponentProps } from 'svelte';
2-
import type { SmuiComponent } from '@smui/common';
32
import type Component from './Actions.svelte';
43

5-
export declare class ActionsComponentDev
6-
extends Component
7-
implements SmuiComponent
8-
{
4+
export declare class ActionsComponentDev extends Component {
95
/**
106
* @private
117
* For type checking capabilities only.
@@ -17,6 +13,4 @@ export declare class ActionsComponentDev
1713
'use' | 'class' | 'fullBleed'
1814
> &
1915
ComponentProps<Component>;
20-
21-
getElement(): ReturnType<Component['getElement']>;
2216
}

0 commit comments

Comments
 (0)