@aspect-ops/exon-ui 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/README.md +438 -0
  2. package/dist/components/ActionSheet/ActionSheet.svelte +270 -0
  3. package/dist/components/ActionSheet/ActionSheet.svelte.d.ts +12 -0
  4. package/dist/components/ActionSheet/ActionSheetItem.svelte +151 -0
  5. package/dist/components/ActionSheet/ActionSheetItem.svelte.d.ts +10 -0
  6. package/dist/components/ActionSheet/index.d.ts +3 -0
  7. package/dist/components/ActionSheet/index.js +2 -0
  8. package/dist/components/Alert/Alert.svelte +165 -0
  9. package/dist/components/Alert/Alert.svelte.d.ts +11 -0
  10. package/dist/components/Alert/index.d.ts +1 -0
  11. package/dist/components/Alert/index.js +1 -0
  12. package/dist/components/AspectRatio/AspectRatio.svelte +42 -0
  13. package/dist/components/AspectRatio/AspectRatio.svelte.d.ts +9 -0
  14. package/dist/components/AspectRatio/index.d.ts +1 -0
  15. package/dist/components/AspectRatio/index.js +1 -0
  16. package/dist/components/Avatar/Avatar.svelte +147 -0
  17. package/dist/components/Avatar/Avatar.svelte.d.ts +12 -0
  18. package/dist/components/Avatar/AvatarGroup.svelte +153 -0
  19. package/dist/components/Avatar/AvatarGroup.svelte.d.ts +12 -0
  20. package/dist/components/Avatar/index.d.ts +2 -0
  21. package/dist/components/Avatar/index.js +2 -0
  22. package/dist/components/BottomSheet/BottomSheet.svelte +230 -0
  23. package/dist/components/BottomSheet/BottomSheet.svelte.d.ts +7 -0
  24. package/dist/components/BottomSheet/BottomSheetBody.svelte +20 -0
  25. package/dist/components/BottomSheet/BottomSheetBody.svelte.d.ts +7 -0
  26. package/dist/components/BottomSheet/BottomSheetHeader.svelte +27 -0
  27. package/dist/components/BottomSheet/BottomSheetHeader.svelte.d.ts +7 -0
  28. package/dist/components/BottomSheet/index.d.ts +3 -0
  29. package/dist/components/BottomSheet/index.js +3 -0
  30. package/dist/components/Box/Box.svelte +41 -0
  31. package/dist/components/Box/Box.svelte.d.ts +7 -0
  32. package/dist/components/Box/index.d.ts +1 -0
  33. package/dist/components/Box/index.js +1 -0
  34. package/dist/components/Card/Card.svelte +95 -0
  35. package/dist/components/Card/Card.svelte.d.ts +10 -0
  36. package/dist/components/Card/CardBody.svelte +32 -0
  37. package/dist/components/Card/CardBody.svelte.d.ts +7 -0
  38. package/dist/components/Card/CardFooter.svelte +34 -0
  39. package/dist/components/Card/CardFooter.svelte.d.ts +7 -0
  40. package/dist/components/Card/CardHeader.svelte +67 -0
  41. package/dist/components/Card/CardHeader.svelte.d.ts +9 -0
  42. package/dist/components/Card/index.d.ts +4 -0
  43. package/dist/components/Card/index.js +4 -0
  44. package/dist/components/Center/Center.svelte +28 -0
  45. package/dist/components/Center/Center.svelte.d.ts +8 -0
  46. package/dist/components/Center/index.d.ts +1 -0
  47. package/dist/components/Center/index.js +1 -0
  48. package/dist/components/Container/Container.svelte +58 -0
  49. package/dist/components/Container/Container.svelte.d.ts +10 -0
  50. package/dist/components/Container/index.d.ts +1 -0
  51. package/dist/components/Container/index.js +1 -0
  52. package/dist/components/Divider/Divider.svelte +38 -0
  53. package/dist/components/Divider/Divider.svelte.d.ts +9 -0
  54. package/dist/components/Divider/index.d.ts +1 -0
  55. package/dist/components/Divider/index.js +1 -0
  56. package/dist/components/EmptyState/EmptyState.svelte +164 -0
  57. package/dist/components/EmptyState/EmptyState.svelte.d.ts +12 -0
  58. package/dist/components/EmptyState/index.d.ts +1 -0
  59. package/dist/components/EmptyState/index.js +1 -0
  60. package/dist/components/FAB/FAB.svelte +242 -0
  61. package/dist/components/FAB/FAB.svelte.d.ts +9 -0
  62. package/dist/components/FAB/FABGroup.svelte +449 -0
  63. package/dist/components/FAB/FABGroup.svelte.d.ts +9 -0
  64. package/dist/components/FAB/index.d.ts +3 -0
  65. package/dist/components/FAB/index.js +2 -0
  66. package/dist/components/Grid/Grid.svelte +136 -0
  67. package/dist/components/Grid/Grid.svelte.d.ts +12 -0
  68. package/dist/components/Grid/GridItem.svelte +21 -0
  69. package/dist/components/Grid/GridItem.svelte.d.ts +7 -0
  70. package/dist/components/Grid/index.d.ts +2 -0
  71. package/dist/components/Grid/index.js +2 -0
  72. package/dist/components/List/List.svelte +42 -0
  73. package/dist/components/List/List.svelte.d.ts +18 -0
  74. package/dist/components/List/ListItem.svelte +139 -0
  75. package/dist/components/List/ListItem.svelte.d.ts +36 -0
  76. package/dist/components/List/index.d.ts +2 -0
  77. package/dist/components/List/index.js +2 -0
  78. package/dist/components/Modal/Modal.svelte +204 -0
  79. package/dist/components/Modal/Modal.svelte.d.ts +7 -0
  80. package/dist/components/Modal/ModalBody.svelte +50 -0
  81. package/dist/components/Modal/ModalBody.svelte.d.ts +7 -0
  82. package/dist/components/Modal/ModalFooter.svelte +37 -0
  83. package/dist/components/Modal/ModalFooter.svelte.d.ts +7 -0
  84. package/dist/components/Modal/ModalHeader.svelte +73 -0
  85. package/dist/components/Modal/ModalHeader.svelte.d.ts +7 -0
  86. package/dist/components/Modal/index.d.ts +4 -0
  87. package/dist/components/Modal/index.js +4 -0
  88. package/dist/components/Popover/Popover.svelte +14 -0
  89. package/dist/components/Popover/Popover.svelte.d.ts +7 -0
  90. package/dist/components/Popover/PopoverContent.svelte +63 -0
  91. package/dist/components/Popover/PopoverContent.svelte.d.ts +7 -0
  92. package/dist/components/Popover/PopoverTrigger.svelte +14 -0
  93. package/dist/components/Popover/PopoverTrigger.svelte.d.ts +7 -0
  94. package/dist/components/Popover/index.d.ts +3 -0
  95. package/dist/components/Popover/index.js +3 -0
  96. package/dist/components/Progress/ProgressBar.svelte +86 -0
  97. package/dist/components/Progress/ProgressBar.svelte.d.ts +11 -0
  98. package/dist/components/Progress/ProgressCircle.svelte +134 -0
  99. package/dist/components/Progress/ProgressCircle.svelte.d.ts +12 -0
  100. package/dist/components/Progress/Spinner.svelte +68 -0
  101. package/dist/components/Progress/Spinner.svelte.d.ts +8 -0
  102. package/dist/components/Progress/index.d.ts +3 -0
  103. package/dist/components/Progress/index.js +3 -0
  104. package/dist/components/PullToRefresh/PullToRefresh.svelte +304 -0
  105. package/dist/components/PullToRefresh/PullToRefresh.svelte.d.ts +20 -0
  106. package/dist/components/PullToRefresh/index.d.ts +1 -0
  107. package/dist/components/PullToRefresh/index.js +1 -0
  108. package/dist/components/SafeArea/SafeArea.svelte +33 -0
  109. package/dist/components/SafeArea/SafeArea.svelte.d.ts +7 -0
  110. package/dist/components/Select/Select.svelte +55 -12
  111. package/dist/components/Skeleton/Skeleton.svelte +59 -0
  112. package/dist/components/Skeleton/Skeleton.svelte.d.ts +10 -0
  113. package/dist/components/Skeleton/index.d.ts +1 -0
  114. package/dist/components/Skeleton/index.js +1 -0
  115. package/dist/components/Spacer/Spacer.svelte +56 -0
  116. package/dist/components/Spacer/Spacer.svelte.d.ts +6 -0
  117. package/dist/components/Spacer/index.d.ts +1 -0
  118. package/dist/components/Spacer/index.js +1 -0
  119. package/dist/components/Stack/Stack.svelte +117 -0
  120. package/dist/components/Stack/Stack.svelte.d.ts +13 -0
  121. package/dist/components/Stack/index.d.ts +1 -0
  122. package/dist/components/Stack/index.js +1 -0
  123. package/dist/components/SwipeActions/SwipeAction.svelte +43 -0
  124. package/dist/components/SwipeActions/SwipeAction.svelte.d.ts +8 -0
  125. package/dist/components/SwipeActions/SwipeActions.svelte +193 -0
  126. package/dist/components/SwipeActions/SwipeActions.svelte.d.ts +9 -0
  127. package/dist/components/SwipeActions/index.d.ts +2 -0
  128. package/dist/components/SwipeActions/index.js +2 -0
  129. package/dist/components/Switch/Switch.svelte +29 -9
  130. package/dist/components/Table/Table.svelte +175 -0
  131. package/dist/components/Table/Table.svelte.d.ts +38 -0
  132. package/dist/components/Table/TableBody.svelte +26 -0
  133. package/dist/components/Table/TableBody.svelte.d.ts +13 -0
  134. package/dist/components/Table/TableCell.svelte +85 -0
  135. package/dist/components/Table/TableCell.svelte.d.ts +28 -0
  136. package/dist/components/Table/TableHead.svelte +36 -0
  137. package/dist/components/Table/TableHead.svelte.d.ts +13 -0
  138. package/dist/components/Table/TableHeader.svelte +217 -0
  139. package/dist/components/Table/TableHeader.svelte.d.ts +32 -0
  140. package/dist/components/Table/TableRow.svelte +92 -0
  141. package/dist/components/Table/TableRow.svelte.d.ts +28 -0
  142. package/dist/components/Table/index.d.ts +6 -0
  143. package/dist/components/Table/index.js +6 -0
  144. package/dist/components/Tag/Tag.svelte +189 -0
  145. package/dist/components/Tag/Tag.svelte.d.ts +13 -0
  146. package/dist/components/Tag/index.d.ts +1 -0
  147. package/dist/components/Tag/index.js +1 -0
  148. package/dist/components/Toast/Toast.svelte +241 -0
  149. package/dist/components/Toast/Toast.svelte.d.ts +18 -0
  150. package/dist/components/Toast/ToastContainer.svelte +110 -0
  151. package/dist/components/Toast/ToastContainer.svelte.d.ts +8 -0
  152. package/dist/components/Toast/index.d.ts +3 -0
  153. package/dist/components/Toast/index.js +3 -0
  154. package/dist/components/Toast/toast.d.ts +13 -0
  155. package/dist/components/Toast/toast.js +55 -0
  156. package/dist/components/Tooltip/Tooltip.svelte +71 -0
  157. package/dist/components/Tooltip/Tooltip.svelte.d.ts +7 -0
  158. package/dist/components/Tooltip/index.d.ts +2 -0
  159. package/dist/components/Tooltip/index.js +1 -0
  160. package/dist/index.d.ts +29 -1
  161. package/dist/index.js +32 -0
  162. package/dist/styles/tokens.css +5 -0
  163. package/dist/types/data-display.d.ts +93 -0
  164. package/dist/types/data-display.js +1 -0
  165. package/dist/types/feedback.d.ts +92 -0
  166. package/dist/types/feedback.js +1 -0
  167. package/dist/types/index.d.ts +4 -0
  168. package/dist/types/layout.d.ts +57 -0
  169. package/dist/types/layout.js +1 -0
  170. package/dist/types/mobile.d.ts +91 -0
  171. package/dist/types/mobile.js +1 -0
  172. package/dist/utils/gestures.d.ts +219 -0
  173. package/dist/utils/gestures.js +492 -0
  174. package/dist/utils/haptics.d.ts +89 -0
  175. package/dist/utils/haptics.js +198 -0
  176. package/dist/utils/platform.d.ts +47 -0
  177. package/dist/utils/platform.js +156 -0
  178. package/package.json +1 -1
@@ -0,0 +1,34 @@
1
+ <script lang="ts">
2
+ interface Props {
3
+ class?: string;
4
+ children?: import('svelte').Snippet;
5
+ }
6
+
7
+ let { class: className = '', children }: Props = $props();
8
+ </script>
9
+
10
+ <div class="card__footer {className}">
11
+ {#if children}
12
+ {@render children()}
13
+ {/if}
14
+ </div>
15
+
16
+ <style>
17
+ .card__footer {
18
+ display: flex;
19
+ align-items: center;
20
+ gap: var(--space-sm, 0.5rem);
21
+ padding: var(--space-lg, 1.25rem);
22
+ border-top: 1px solid var(--color-border, #e5e7eb);
23
+ font-family: inherit;
24
+ }
25
+
26
+ /* Mobile-first: Adjust padding and layout for smaller screens */
27
+ @media (max-width: 30rem) {
28
+ .card__footer {
29
+ flex-direction: column;
30
+ align-items: stretch;
31
+ padding: var(--space-md, 1rem);
32
+ }
33
+ }
34
+ </style>
@@ -0,0 +1,7 @@
1
+ interface Props {
2
+ class?: string;
3
+ children?: import('svelte').Snippet;
4
+ }
5
+ declare const CardFooter: import("svelte").Component<Props, {}, "">;
6
+ type CardFooter = ReturnType<typeof CardFooter>;
7
+ export default CardFooter;
@@ -0,0 +1,67 @@
1
+ <script lang="ts">
2
+ interface Props {
3
+ class?: string;
4
+ title?: import('svelte').Snippet;
5
+ actions?: import('svelte').Snippet;
6
+ children?: import('svelte').Snippet;
7
+ }
8
+
9
+ let { class: className = '', title, actions, children }: Props = $props();
10
+ </script>
11
+
12
+ <div class="card__header {className}">
13
+ {#if title || children}
14
+ <div class="card__header-title">
15
+ {#if title}
16
+ {@render title()}
17
+ {:else if children}
18
+ {@render children()}
19
+ {/if}
20
+ </div>
21
+ {/if}
22
+ {#if actions}
23
+ <div class="card__header-actions">
24
+ {@render actions()}
25
+ </div>
26
+ {/if}
27
+ </div>
28
+
29
+ <style>
30
+ .card__header {
31
+ display: flex;
32
+ align-items: center;
33
+ justify-content: space-between;
34
+ gap: var(--space-md, 1rem);
35
+ padding: var(--space-lg, 1.25rem);
36
+ border-bottom: 1px solid var(--color-border, #e5e7eb);
37
+ font-family: inherit;
38
+ }
39
+
40
+ .card__header-title {
41
+ flex: 1;
42
+ font-size: var(--text-lg, 1.125rem);
43
+ font-weight: 600;
44
+ color: var(--color-text, var(--gray-12, inherit));
45
+ line-height: 1.4;
46
+ }
47
+
48
+ .card__header-actions {
49
+ flex-shrink: 0;
50
+ display: flex;
51
+ align-items: center;
52
+ gap: var(--space-sm, 0.5rem);
53
+ }
54
+
55
+ /* Mobile-first: Stack on small screens */
56
+ @media (max-width: 30rem) {
57
+ .card__header {
58
+ flex-direction: column;
59
+ align-items: flex-start;
60
+ }
61
+
62
+ .card__header-actions {
63
+ width: 100%;
64
+ justify-content: flex-end;
65
+ }
66
+ }
67
+ </style>
@@ -0,0 +1,9 @@
1
+ interface Props {
2
+ class?: string;
3
+ title?: import('svelte').Snippet;
4
+ actions?: import('svelte').Snippet;
5
+ children?: import('svelte').Snippet;
6
+ }
7
+ declare const CardHeader: import("svelte").Component<Props, {}, "">;
8
+ type CardHeader = ReturnType<typeof CardHeader>;
9
+ export default CardHeader;
@@ -0,0 +1,4 @@
1
+ export { default as Card } from './Card.svelte';
2
+ export { default as CardHeader } from './CardHeader.svelte';
3
+ export { default as CardBody } from './CardBody.svelte';
4
+ export { default as CardFooter } from './CardFooter.svelte';
@@ -0,0 +1,4 @@
1
+ export { default as Card } from './Card.svelte';
2
+ export { default as CardHeader } from './CardHeader.svelte';
3
+ export { default as CardBody } from './CardBody.svelte';
4
+ export { default as CardFooter } from './CardFooter.svelte';
@@ -0,0 +1,28 @@
1
+ <script lang="ts">
2
+ interface Props {
3
+ inline?: boolean;
4
+ class?: string;
5
+ children?: import('svelte').Snippet;
6
+ }
7
+
8
+ let { inline = false, class: className = '', children }: Props = $props();
9
+ </script>
10
+
11
+ <div class="center {className}" data-inline={inline}>
12
+ {#if children}
13
+ {@render children()}
14
+ {/if}
15
+ </div>
16
+
17
+ <style>
18
+ .center {
19
+ display: flex;
20
+ justify-content: center;
21
+ align-items: center;
22
+ font-family: inherit;
23
+ }
24
+
25
+ .center[data-inline='true'] {
26
+ display: inline-flex;
27
+ }
28
+ </style>
@@ -0,0 +1,8 @@
1
+ interface Props {
2
+ inline?: boolean;
3
+ class?: string;
4
+ children?: import('svelte').Snippet;
5
+ }
6
+ declare const Center: import("svelte").Component<Props, {}, "">;
7
+ type Center = ReturnType<typeof Center>;
8
+ export default Center;
@@ -0,0 +1 @@
1
+ export { default as Center } from './Center.svelte';
@@ -0,0 +1 @@
1
+ export { default as Center } from './Center.svelte';
@@ -0,0 +1,58 @@
1
+ <script lang="ts">
2
+ import type { ContainerSize } from '../../types/index.js';
3
+
4
+ interface Props {
5
+ size?: ContainerSize;
6
+ centered?: boolean;
7
+ class?: string;
8
+ children?: import('svelte').Snippet;
9
+ }
10
+
11
+ let { size = 'lg', centered = true, class: className = '', children }: Props = $props();
12
+ </script>
13
+
14
+ <div class="container {className}" data-size={size} data-centered={centered}>
15
+ {#if children}
16
+ {@render children()}
17
+ {/if}
18
+ </div>
19
+
20
+ <style>
21
+ .container {
22
+ width: 100%;
23
+ padding: var(--space-md, 1rem);
24
+ font-family: inherit;
25
+ }
26
+
27
+ .container[data-centered='true'] {
28
+ margin: 0 auto;
29
+ }
30
+
31
+ /* Size variants - responsive max-widths */
32
+ .container[data-size='sm'] {
33
+ max-width: 40rem; /* 640px */
34
+ }
35
+
36
+ .container[data-size='md'] {
37
+ max-width: 48rem; /* 768px */
38
+ }
39
+
40
+ .container[data-size='lg'] {
41
+ max-width: 64rem; /* 1024px */
42
+ }
43
+
44
+ .container[data-size='xl'] {
45
+ max-width: 80rem; /* 1280px */
46
+ }
47
+
48
+ .container[data-size='full'] {
49
+ max-width: 100%;
50
+ }
51
+
52
+ /* Responsive padding - larger screens get more padding */
53
+ @media (min-width: 768px) {
54
+ .container {
55
+ padding: var(--space-lg, 1.5rem);
56
+ }
57
+ }
58
+ </style>
@@ -0,0 +1,10 @@
1
+ import type { ContainerSize } from '../../types/index.js';
2
+ interface Props {
3
+ size?: ContainerSize;
4
+ centered?: boolean;
5
+ class?: string;
6
+ children?: import('svelte').Snippet;
7
+ }
8
+ declare const Container: import("svelte").Component<Props, {}, "">;
9
+ type Container = ReturnType<typeof Container>;
10
+ export default Container;
@@ -0,0 +1 @@
1
+ export { default as Container } from './Container.svelte';
@@ -0,0 +1 @@
1
+ export { default as Container } from './Container.svelte';
@@ -0,0 +1,38 @@
1
+ <script lang="ts">
2
+ import type { DividerOrientation } from '../../types/index.js';
3
+
4
+ interface Props {
5
+ orientation?: DividerOrientation;
6
+ decorative?: boolean;
7
+ class?: string;
8
+ }
9
+
10
+ let { orientation = 'horizontal', decorative = true, class: className = '' }: Props = $props();
11
+ </script>
12
+
13
+ {#if decorative}
14
+ <hr class="divider {className}" data-orientation={orientation} aria-hidden="true" />
15
+ {:else}
16
+ <hr class="divider {className}" data-orientation={orientation} />
17
+ {/if}
18
+
19
+ <style>
20
+ .divider {
21
+ border: none;
22
+ background-color: var(--color-border, #e5e7eb);
23
+ font-family: inherit;
24
+ margin: 0;
25
+ }
26
+
27
+ /* Horizontal divider */
28
+ .divider[data-orientation='horizontal'] {
29
+ width: 100%;
30
+ height: 1px;
31
+ }
32
+
33
+ /* Vertical divider */
34
+ .divider[data-orientation='vertical'] {
35
+ width: 1px;
36
+ height: 100%;
37
+ }
38
+ </style>
@@ -0,0 +1,9 @@
1
+ import type { DividerOrientation } from '../../types/index.js';
2
+ interface Props {
3
+ orientation?: DividerOrientation;
4
+ decorative?: boolean;
5
+ class?: string;
6
+ }
7
+ declare const Divider: import("svelte").Component<Props, {}, "">;
8
+ type Divider = ReturnType<typeof Divider>;
9
+ export default Divider;
@@ -0,0 +1 @@
1
+ export { default as Divider } from './Divider.svelte';
@@ -0,0 +1 @@
1
+ export { default as Divider } from './Divider.svelte';
@@ -0,0 +1,164 @@
1
+ <script lang="ts">
2
+ import type { EmptyStateSize } from '../../types/index.js';
3
+
4
+ interface Props {
5
+ title: string;
6
+ description?: string;
7
+ size?: EmptyStateSize;
8
+ class?: string;
9
+ icon?: import('svelte').Snippet;
10
+ action?: import('svelte').Snippet;
11
+ }
12
+
13
+ let { title, description, size = 'md', class: className = '', icon, action }: Props = $props();
14
+ </script>
15
+
16
+ <div class="empty-state empty-state--{size} {className}" role="status" aria-live="polite">
17
+ {#if icon}
18
+ <div class="empty-state__icon" aria-hidden="true">
19
+ {@render icon()}
20
+ </div>
21
+ {:else}
22
+ <div class="empty-state__icon" aria-hidden="true">
23
+ <svg
24
+ width="64"
25
+ height="64"
26
+ viewBox="0 0 64 64"
27
+ fill="none"
28
+ xmlns="http://www.w3.org/2000/svg"
29
+ >
30
+ <rect
31
+ x="12"
32
+ y="16"
33
+ width="40"
34
+ height="36"
35
+ rx="2"
36
+ stroke="currentColor"
37
+ stroke-width="2"
38
+ fill="none"
39
+ />
40
+ <path d="M12 24 L52 24" stroke="currentColor" stroke-width="2" />
41
+ <circle cx="20" cy="20" r="1.5" fill="currentColor" />
42
+ <circle cx="26" cy="20" r="1.5" fill="currentColor" />
43
+ <circle cx="32" cy="20" r="1.5" fill="currentColor" />
44
+ </svg>
45
+ </div>
46
+ {/if}
47
+
48
+ <h3 class="empty-state__title">{title}</h3>
49
+
50
+ {#if description}
51
+ <p class="empty-state__description">{description}</p>
52
+ {/if}
53
+
54
+ {#if action}
55
+ <div class="empty-state__action">
56
+ {@render action()}
57
+ </div>
58
+ {/if}
59
+ </div>
60
+
61
+ <style>
62
+ .empty-state {
63
+ display: flex;
64
+ flex-direction: column;
65
+ align-items: center;
66
+ justify-content: center;
67
+ text-align: center;
68
+ padding: var(--space-xl, 1.5rem);
69
+ max-width: 400px;
70
+ margin: 0 auto;
71
+ }
72
+
73
+ .empty-state__icon {
74
+ display: flex;
75
+ align-items: center;
76
+ justify-content: center;
77
+ flex-shrink: 0;
78
+ color: var(--color-text-muted, #9ca3af);
79
+ margin-bottom: var(--space-md, 0.75rem);
80
+ }
81
+
82
+ .empty-state__title {
83
+ margin: 0;
84
+ margin-bottom: var(--space-xs, 0.25rem);
85
+ font-family: inherit;
86
+ font-weight: 600;
87
+ line-height: 1.25;
88
+ color: var(--color-text, #1f2937);
89
+ }
90
+
91
+ .empty-state__description {
92
+ margin: 0;
93
+ margin-bottom: var(--space-md, 0.75rem);
94
+ font-family: inherit;
95
+ line-height: 1.5;
96
+ color: var(--color-text-secondary, #6b7280);
97
+ }
98
+
99
+ .empty-state__action {
100
+ margin-top: var(--space-md, 0.75rem);
101
+ }
102
+
103
+ /* Size variants */
104
+ .empty-state--sm .empty-state__icon {
105
+ width: 3rem;
106
+ height: 3rem;
107
+ }
108
+
109
+ .empty-state--sm .empty-state__icon svg {
110
+ width: 3rem;
111
+ height: 3rem;
112
+ }
113
+
114
+ .empty-state--sm .empty-state__title {
115
+ font-size: var(--text-base, 1rem);
116
+ }
117
+
118
+ .empty-state--sm .empty-state__description {
119
+ font-size: var(--text-sm, 0.875rem);
120
+ }
121
+
122
+ .empty-state--md .empty-state__icon {
123
+ width: 4rem;
124
+ height: 4rem;
125
+ }
126
+
127
+ .empty-state--md .empty-state__icon svg {
128
+ width: 4rem;
129
+ height: 4rem;
130
+ }
131
+
132
+ .empty-state--md .empty-state__title {
133
+ font-size: var(--text-lg, 1.125rem);
134
+ }
135
+
136
+ .empty-state--md .empty-state__description {
137
+ font-size: var(--text-base, 1rem);
138
+ }
139
+
140
+ .empty-state--lg .empty-state__icon {
141
+ width: 5rem;
142
+ height: 5rem;
143
+ }
144
+
145
+ .empty-state--lg .empty-state__icon svg {
146
+ width: 5rem;
147
+ height: 5rem;
148
+ }
149
+
150
+ .empty-state--lg .empty-state__title {
151
+ font-size: var(--text-xl, 1.25rem);
152
+ }
153
+
154
+ .empty-state--lg .empty-state__description {
155
+ font-size: var(--text-lg, 1.125rem);
156
+ }
157
+
158
+ /* Mobile-first responsive adjustments */
159
+ @media (min-width: 768px) {
160
+ .empty-state {
161
+ padding: var(--space-2xl, 2rem);
162
+ }
163
+ }
164
+ </style>
@@ -0,0 +1,12 @@
1
+ import type { EmptyStateSize } from '../../types/index.js';
2
+ interface Props {
3
+ title: string;
4
+ description?: string;
5
+ size?: EmptyStateSize;
6
+ class?: string;
7
+ icon?: import('svelte').Snippet;
8
+ action?: import('svelte').Snippet;
9
+ }
10
+ declare const EmptyState: import("svelte").Component<Props, {}, "">;
11
+ type EmptyState = ReturnType<typeof EmptyState>;
12
+ export default EmptyState;
@@ -0,0 +1 @@
1
+ export { default as EmptyState } from './EmptyState.svelte';
@@ -0,0 +1 @@
1
+ export { default as EmptyState } from './EmptyState.svelte';