Skip to content

Commit c1a9ef2

Browse files
committed
feat: migrate card to typescript
1 parent 5e81e89 commit c1a9ef2

28 files changed

+83
-732
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1+
import type { SMUIComponent } from '@smui/common';
12
import { classAdderBuilder } from '@smui/common/internal';
23
import Div from '@smui/common/Div.svelte';
34

45
export default classAdderBuilder({
56
class: 'mdc-card__action-buttons',
6-
component: Div,
7+
component: Div as typeof SMUIComponent,
78
});
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1+
import type { SMUIComponent } from '@smui/common';
12
import { classAdderBuilder } from '@smui/common/internal';
23
import Div from '@smui/common/Div.svelte';
34

45
export default classAdderBuilder({
56
class: 'mdc-card__action-icons',
6-
component: Div,
7+
component: Div as typeof SMUIComponent,
78
});

packages/card/Actions.svelte

+4-3
Original file line numberDiff line numberDiff line change
@@ -12,23 +12,24 @@
1212
<slot />
1313
</div>
1414

15-
<script>
15+
<script lang="ts">
1616
import { setContext } from 'svelte';
1717
import { get_current_component } from 'svelte/internal';
1818
import {
1919
forwardEventsBuilder,
2020
classMap,
2121
useActions,
22+
ActionArray,
2223
} from '@smui/common/internal';
2324
2425
const forwardEvents = forwardEventsBuilder(get_current_component());
2526
26-
export let use = [];
27+
export let use: ActionArray = [];
2728
let className = '';
2829
export { className as class };
2930
export let fullBleed = false;
3031
31-
let element;
32+
let element: HTMLDivElement;
3233
3334
setContext('SMUI:button:context', 'card:action');
3435
setContext('SMUI:icon-button:context', 'card:action');

packages/card/Card.svelte

+5-4
Original file line numberDiff line numberDiff line change
@@ -13,23 +13,24 @@
1313
<slot />
1414
</div>
1515

16-
<script>
16+
<script lang="ts">
1717
import { get_current_component } from 'svelte/internal';
1818
import {
1919
forwardEventsBuilder,
2020
classMap,
2121
useActions,
22+
ActionArray,
2223
} from '@smui/common/internal';
2324
2425
const forwardEvents = forwardEventsBuilder(get_current_component());
2526
26-
export let use = [];
27+
export let use: ActionArray = [];
2728
let className = '';
2829
export { className as class };
29-
export let variant = 'raised';
30+
export let variant: 'raised' | 'outlined' = 'raised';
3031
export let padded = false;
3132
32-
let element;
33+
let element: HTMLDivElement;
3334
3435
export function getElement() {
3536
return element;
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1+
import type { SMUIComponent } from '@smui/common';
12
import { classAdderBuilder } from '@smui/common/internal';
23
import Div from '@smui/common/Div.svelte';
34

45
export default classAdderBuilder({
56
class: 'smui-card__content',
6-
component: Div,
7+
component: Div as typeof SMUIComponent,
78
});

packages/card/Media.svelte

+5-4
Original file line numberDiff line numberDiff line change
@@ -13,22 +13,23 @@
1313
<slot />
1414
</div>
1515

16-
<script>
16+
<script lang="ts">
1717
import { get_current_component } from 'svelte/internal';
1818
import {
1919
forwardEventsBuilder,
2020
classMap,
2121
useActions,
22+
ActionArray,
2223
} from '@smui/common/internal';
2324
2425
const forwardEvents = forwardEventsBuilder(get_current_component());
2526
26-
export let use = [];
27+
export let use: ActionArray = [];
2728
let className = '';
2829
export { className as class };
29-
export let aspectRatio = null;
30+
export let aspectRatio: 'square' | '16x9' | null | undefined = null;
3031
31-
let element;
32+
let element: HTMLDivElement;
3233
3334
export function getElement() {
3435
return element;
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1+
import type { SMUIComponent } from '@smui/common';
12
import { classAdderBuilder } from '@smui/common/internal';
23
import Div from '@smui/common/Div.svelte';
34

45
export default classAdderBuilder({
56
class: 'mdc-card__media-content',
6-
component: Div,
7+
component: Div as typeof SMUIComponent,
78
});

packages/card/PrimaryAction.svelte

+11-10
Original file line numberDiff line numberDiff line change
@@ -26,43 +26,44 @@
2626
<slot />
2727
</div>
2828

29-
<script>
29+
<script lang="ts">
3030
import { get_current_component } from 'svelte/internal';
3131
import {
3232
forwardEventsBuilder,
3333
classMap,
3434
useActions,
35+
ActionArray,
3536
} from '@smui/common/internal';
3637
import Ripple from '@smui/ripple';
3738
3839
const forwardEvents = forwardEventsBuilder(get_current_component());
3940
40-
export let use = [];
41+
export let use: ActionArray = [];
4142
let className = '';
4243
export { className as class };
4344
export let style = '';
4445
export let ripple = true;
45-
export let color = null;
46+
export let color: 'primary' | 'secondary' | null | undefined = null;
4647
export let padded = false;
47-
export let tabindex = '0';
48+
export let tabindex = 0;
4849
49-
let element;
50-
let internalClasses = {};
51-
let internalStyles = {};
50+
let element: HTMLDivElement;
51+
let internalClasses: { [k: string]: boolean } = {};
52+
let internalStyles: { [k: string]: string } = {};
5253
53-
function addClass(className) {
54+
function addClass(className: string) {
5455
if (!internalClasses[className]) {
5556
internalClasses[className] = true;
5657
}
5758
}
5859
59-
function removeClass(className) {
60+
function removeClass(className: string) {
6061
if (!(className in internalClasses) || internalClasses[className]) {
6162
internalClasses[className] = false;
6263
}
6364
}
6465
65-
function addStyle(name, value) {
66+
function addStyle(name: string, value: string) {
6667
if (internalStyles[name] != value) {
6768
if (value === '' || value == null) {
6869
delete internalStyles[name];

packages/card/bare.js

-2
This file was deleted.

packages/card/bare.ts

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export * from './index';
2+
export { default } from './index';

packages/card/index.js renamed to packages/card/index.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import Card from './Card.svelte';
22

3-
import Content from './Content.js';
3+
import Content from './Content';
44
import PrimaryAction from './PrimaryAction.svelte';
55
import Media from './Media.svelte';
6-
import MediaContent from './MediaContent.js';
6+
import MediaContent from './MediaContent';
77
import Actions from './Actions.svelte';
8-
import ActionButtons from './ActionButtons.js';
9-
import ActionIcons from './ActionIcons.js';
8+
import ActionButtons from './ActionButtons';
9+
import ActionIcons from './ActionIcons';
1010

1111
export default Card;
1212

0 commit comments

Comments
 (0)