@aspect-ops/exon-ui 0.0.2 → 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 (177) hide show
  1. package/dist/components/ActionSheet/ActionSheet.svelte +270 -0
  2. package/dist/components/ActionSheet/ActionSheet.svelte.d.ts +12 -0
  3. package/dist/components/ActionSheet/ActionSheetItem.svelte +151 -0
  4. package/dist/components/ActionSheet/ActionSheetItem.svelte.d.ts +10 -0
  5. package/dist/components/ActionSheet/index.d.ts +3 -0
  6. package/dist/components/ActionSheet/index.js +2 -0
  7. package/dist/components/Alert/Alert.svelte +165 -0
  8. package/dist/components/Alert/Alert.svelte.d.ts +11 -0
  9. package/dist/components/Alert/index.d.ts +1 -0
  10. package/dist/components/Alert/index.js +1 -0
  11. package/dist/components/AspectRatio/AspectRatio.svelte +42 -0
  12. package/dist/components/AspectRatio/AspectRatio.svelte.d.ts +9 -0
  13. package/dist/components/AspectRatio/index.d.ts +1 -0
  14. package/dist/components/AspectRatio/index.js +1 -0
  15. package/dist/components/Avatar/Avatar.svelte +147 -0
  16. package/dist/components/Avatar/Avatar.svelte.d.ts +12 -0
  17. package/dist/components/Avatar/AvatarGroup.svelte +153 -0
  18. package/dist/components/Avatar/AvatarGroup.svelte.d.ts +12 -0
  19. package/dist/components/Avatar/index.d.ts +2 -0
  20. package/dist/components/Avatar/index.js +2 -0
  21. package/dist/components/BottomSheet/BottomSheet.svelte +230 -0
  22. package/dist/components/BottomSheet/BottomSheet.svelte.d.ts +7 -0
  23. package/dist/components/BottomSheet/BottomSheetBody.svelte +20 -0
  24. package/dist/components/BottomSheet/BottomSheetBody.svelte.d.ts +7 -0
  25. package/dist/components/BottomSheet/BottomSheetHeader.svelte +27 -0
  26. package/dist/components/BottomSheet/BottomSheetHeader.svelte.d.ts +7 -0
  27. package/dist/components/BottomSheet/index.d.ts +3 -0
  28. package/dist/components/BottomSheet/index.js +3 -0
  29. package/dist/components/Box/Box.svelte +41 -0
  30. package/dist/components/Box/Box.svelte.d.ts +7 -0
  31. package/dist/components/Box/index.d.ts +1 -0
  32. package/dist/components/Box/index.js +1 -0
  33. package/dist/components/Card/Card.svelte +95 -0
  34. package/dist/components/Card/Card.svelte.d.ts +10 -0
  35. package/dist/components/Card/CardBody.svelte +32 -0
  36. package/dist/components/Card/CardBody.svelte.d.ts +7 -0
  37. package/dist/components/Card/CardFooter.svelte +34 -0
  38. package/dist/components/Card/CardFooter.svelte.d.ts +7 -0
  39. package/dist/components/Card/CardHeader.svelte +67 -0
  40. package/dist/components/Card/CardHeader.svelte.d.ts +9 -0
  41. package/dist/components/Card/index.d.ts +4 -0
  42. package/dist/components/Card/index.js +4 -0
  43. package/dist/components/Center/Center.svelte +28 -0
  44. package/dist/components/Center/Center.svelte.d.ts +8 -0
  45. package/dist/components/Center/index.d.ts +1 -0
  46. package/dist/components/Center/index.js +1 -0
  47. package/dist/components/Container/Container.svelte +58 -0
  48. package/dist/components/Container/Container.svelte.d.ts +10 -0
  49. package/dist/components/Container/index.d.ts +1 -0
  50. package/dist/components/Container/index.js +1 -0
  51. package/dist/components/Divider/Divider.svelte +38 -0
  52. package/dist/components/Divider/Divider.svelte.d.ts +9 -0
  53. package/dist/components/Divider/index.d.ts +1 -0
  54. package/dist/components/Divider/index.js +1 -0
  55. package/dist/components/EmptyState/EmptyState.svelte +164 -0
  56. package/dist/components/EmptyState/EmptyState.svelte.d.ts +12 -0
  57. package/dist/components/EmptyState/index.d.ts +1 -0
  58. package/dist/components/EmptyState/index.js +1 -0
  59. package/dist/components/FAB/FAB.svelte +242 -0
  60. package/dist/components/FAB/FAB.svelte.d.ts +9 -0
  61. package/dist/components/FAB/FABGroup.svelte +449 -0
  62. package/dist/components/FAB/FABGroup.svelte.d.ts +9 -0
  63. package/dist/components/FAB/index.d.ts +3 -0
  64. package/dist/components/FAB/index.js +2 -0
  65. package/dist/components/Grid/Grid.svelte +136 -0
  66. package/dist/components/Grid/Grid.svelte.d.ts +12 -0
  67. package/dist/components/Grid/GridItem.svelte +21 -0
  68. package/dist/components/Grid/GridItem.svelte.d.ts +7 -0
  69. package/dist/components/Grid/index.d.ts +2 -0
  70. package/dist/components/Grid/index.js +2 -0
  71. package/dist/components/List/List.svelte +42 -0
  72. package/dist/components/List/List.svelte.d.ts +18 -0
  73. package/dist/components/List/ListItem.svelte +139 -0
  74. package/dist/components/List/ListItem.svelte.d.ts +36 -0
  75. package/dist/components/List/index.d.ts +2 -0
  76. package/dist/components/List/index.js +2 -0
  77. package/dist/components/Modal/Modal.svelte +204 -0
  78. package/dist/components/Modal/Modal.svelte.d.ts +7 -0
  79. package/dist/components/Modal/ModalBody.svelte +50 -0
  80. package/dist/components/Modal/ModalBody.svelte.d.ts +7 -0
  81. package/dist/components/Modal/ModalFooter.svelte +37 -0
  82. package/dist/components/Modal/ModalFooter.svelte.d.ts +7 -0
  83. package/dist/components/Modal/ModalHeader.svelte +73 -0
  84. package/dist/components/Modal/ModalHeader.svelte.d.ts +7 -0
  85. package/dist/components/Modal/index.d.ts +4 -0
  86. package/dist/components/Modal/index.js +4 -0
  87. package/dist/components/Popover/Popover.svelte +14 -0
  88. package/dist/components/Popover/Popover.svelte.d.ts +7 -0
  89. package/dist/components/Popover/PopoverContent.svelte +63 -0
  90. package/dist/components/Popover/PopoverContent.svelte.d.ts +7 -0
  91. package/dist/components/Popover/PopoverTrigger.svelte +14 -0
  92. package/dist/components/Popover/PopoverTrigger.svelte.d.ts +7 -0
  93. package/dist/components/Popover/index.d.ts +3 -0
  94. package/dist/components/Popover/index.js +3 -0
  95. package/dist/components/Progress/ProgressBar.svelte +86 -0
  96. package/dist/components/Progress/ProgressBar.svelte.d.ts +11 -0
  97. package/dist/components/Progress/ProgressCircle.svelte +134 -0
  98. package/dist/components/Progress/ProgressCircle.svelte.d.ts +12 -0
  99. package/dist/components/Progress/Spinner.svelte +68 -0
  100. package/dist/components/Progress/Spinner.svelte.d.ts +8 -0
  101. package/dist/components/Progress/index.d.ts +3 -0
  102. package/dist/components/Progress/index.js +3 -0
  103. package/dist/components/PullToRefresh/PullToRefresh.svelte +304 -0
  104. package/dist/components/PullToRefresh/PullToRefresh.svelte.d.ts +20 -0
  105. package/dist/components/PullToRefresh/index.d.ts +1 -0
  106. package/dist/components/PullToRefresh/index.js +1 -0
  107. package/dist/components/SafeArea/SafeArea.svelte +33 -0
  108. package/dist/components/SafeArea/SafeArea.svelte.d.ts +7 -0
  109. package/dist/components/Select/Select.svelte +55 -12
  110. package/dist/components/Skeleton/Skeleton.svelte +59 -0
  111. package/dist/components/Skeleton/Skeleton.svelte.d.ts +10 -0
  112. package/dist/components/Skeleton/index.d.ts +1 -0
  113. package/dist/components/Skeleton/index.js +1 -0
  114. package/dist/components/Spacer/Spacer.svelte +56 -0
  115. package/dist/components/Spacer/Spacer.svelte.d.ts +6 -0
  116. package/dist/components/Spacer/index.d.ts +1 -0
  117. package/dist/components/Spacer/index.js +1 -0
  118. package/dist/components/Stack/Stack.svelte +117 -0
  119. package/dist/components/Stack/Stack.svelte.d.ts +13 -0
  120. package/dist/components/Stack/index.d.ts +1 -0
  121. package/dist/components/Stack/index.js +1 -0
  122. package/dist/components/SwipeActions/SwipeAction.svelte +43 -0
  123. package/dist/components/SwipeActions/SwipeAction.svelte.d.ts +8 -0
  124. package/dist/components/SwipeActions/SwipeActions.svelte +193 -0
  125. package/dist/components/SwipeActions/SwipeActions.svelte.d.ts +9 -0
  126. package/dist/components/SwipeActions/index.d.ts +2 -0
  127. package/dist/components/SwipeActions/index.js +2 -0
  128. package/dist/components/Switch/Switch.svelte +29 -9
  129. package/dist/components/Table/Table.svelte +175 -0
  130. package/dist/components/Table/Table.svelte.d.ts +38 -0
  131. package/dist/components/Table/TableBody.svelte +26 -0
  132. package/dist/components/Table/TableBody.svelte.d.ts +13 -0
  133. package/dist/components/Table/TableCell.svelte +85 -0
  134. package/dist/components/Table/TableCell.svelte.d.ts +28 -0
  135. package/dist/components/Table/TableHead.svelte +36 -0
  136. package/dist/components/Table/TableHead.svelte.d.ts +13 -0
  137. package/dist/components/Table/TableHeader.svelte +217 -0
  138. package/dist/components/Table/TableHeader.svelte.d.ts +32 -0
  139. package/dist/components/Table/TableRow.svelte +92 -0
  140. package/dist/components/Table/TableRow.svelte.d.ts +28 -0
  141. package/dist/components/Table/index.d.ts +6 -0
  142. package/dist/components/Table/index.js +6 -0
  143. package/dist/components/Tag/Tag.svelte +189 -0
  144. package/dist/components/Tag/Tag.svelte.d.ts +13 -0
  145. package/dist/components/Tag/index.d.ts +1 -0
  146. package/dist/components/Tag/index.js +1 -0
  147. package/dist/components/Toast/Toast.svelte +241 -0
  148. package/dist/components/Toast/Toast.svelte.d.ts +18 -0
  149. package/dist/components/Toast/ToastContainer.svelte +110 -0
  150. package/dist/components/Toast/ToastContainer.svelte.d.ts +8 -0
  151. package/dist/components/Toast/index.d.ts +3 -0
  152. package/dist/components/Toast/index.js +3 -0
  153. package/dist/components/Toast/toast.d.ts +13 -0
  154. package/dist/components/Toast/toast.js +55 -0
  155. package/dist/components/Tooltip/Tooltip.svelte +71 -0
  156. package/dist/components/Tooltip/Tooltip.svelte.d.ts +7 -0
  157. package/dist/components/Tooltip/index.d.ts +2 -0
  158. package/dist/components/Tooltip/index.js +1 -0
  159. package/dist/index.d.ts +29 -1
  160. package/dist/index.js +32 -0
  161. package/dist/styles/tokens.css +5 -0
  162. package/dist/types/data-display.d.ts +93 -0
  163. package/dist/types/data-display.js +1 -0
  164. package/dist/types/feedback.d.ts +92 -0
  165. package/dist/types/feedback.js +1 -0
  166. package/dist/types/index.d.ts +4 -0
  167. package/dist/types/layout.d.ts +57 -0
  168. package/dist/types/layout.js +1 -0
  169. package/dist/types/mobile.d.ts +91 -0
  170. package/dist/types/mobile.js +1 -0
  171. package/dist/utils/gestures.d.ts +219 -0
  172. package/dist/utils/gestures.js +492 -0
  173. package/dist/utils/haptics.d.ts +89 -0
  174. package/dist/utils/haptics.js +198 -0
  175. package/dist/utils/platform.d.ts +47 -0
  176. package/dist/utils/platform.js +156 -0
  177. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ export { default as Box } from './Box.svelte';
@@ -0,0 +1,95 @@
1
+ <script lang="ts">
2
+ import type { CardVariant } from '../../types/index.js';
3
+
4
+ interface Props {
5
+ variant?: CardVariant;
6
+ clickable?: boolean;
7
+ class?: string;
8
+ children?: import('svelte').Snippet;
9
+ }
10
+
11
+ let {
12
+ variant = 'elevated',
13
+ clickable = false,
14
+ class: className = '',
15
+ children
16
+ }: Props = $props();
17
+ </script>
18
+
19
+ {#if clickable}
20
+ <button type="button" class="card card--{variant} card--clickable {className}">
21
+ {#if children}
22
+ {@render children()}
23
+ {/if}
24
+ </button>
25
+ {:else}
26
+ <div class="card card--{variant} {className}">
27
+ {#if children}
28
+ {@render children()}
29
+ {/if}
30
+ </div>
31
+ {/if}
32
+
33
+ <style>
34
+ .card {
35
+ display: flex;
36
+ flex-direction: column;
37
+ background: var(--color-bg-card, #ffffff);
38
+ border-radius: var(--radius-lg, 0.5rem);
39
+ overflow: hidden;
40
+ font-family: inherit;
41
+ }
42
+
43
+ /* Elevated variant (default) - uses shadow */
44
+ .card--elevated {
45
+ box-shadow: var(
46
+ --shadow-md,
47
+ 0 4px 6px -1px rgba(0, 0, 0, 0.1),
48
+ 0 2px 4px -1px rgba(0, 0, 0, 0.06)
49
+ );
50
+ }
51
+
52
+ /* Outlined variant - uses border */
53
+ .card--outlined {
54
+ border: 1px solid var(--color-border, #e5e7eb);
55
+ }
56
+
57
+ /* Filled variant - uses background color */
58
+ .card--filled {
59
+ background: var(--color-bg-muted, #f3f4f6);
60
+ }
61
+
62
+ /* Clickable state */
63
+ .card--clickable {
64
+ width: 100%;
65
+ text-align: left;
66
+ padding: 0;
67
+ border: none;
68
+ cursor: pointer;
69
+ transition:
70
+ transform 0.2s ease,
71
+ box-shadow 0.2s ease;
72
+ min-height: 2.75rem;
73
+ }
74
+
75
+ .card--clickable:hover {
76
+ transform: translateY(-2px);
77
+ }
78
+
79
+ .card--clickable.card--elevated:hover {
80
+ box-shadow: var(
81
+ --shadow-lg,
82
+ 0 10px 15px -3px rgba(0, 0, 0, 0.1),
83
+ 0 4px 6px -2px rgba(0, 0, 0, 0.05)
84
+ );
85
+ }
86
+
87
+ .card--clickable:focus-visible {
88
+ outline: 2px solid var(--color-primary, #3b82f6);
89
+ outline-offset: 2px;
90
+ }
91
+
92
+ .card--clickable:active {
93
+ transform: translateY(0);
94
+ }
95
+ </style>
@@ -0,0 +1,10 @@
1
+ import type { CardVariant } from '../../types/index.js';
2
+ interface Props {
3
+ variant?: CardVariant;
4
+ clickable?: boolean;
5
+ class?: string;
6
+ children?: import('svelte').Snippet;
7
+ }
8
+ declare const Card: import("svelte").Component<Props, {}, "">;
9
+ type Card = ReturnType<typeof Card>;
10
+ export default Card;
@@ -0,0 +1,32 @@
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__body {className}">
11
+ {#if children}
12
+ {@render children()}
13
+ {/if}
14
+ </div>
15
+
16
+ <style>
17
+ .card__body {
18
+ flex: 1;
19
+ padding: var(--space-lg, 1.25rem);
20
+ font-family: inherit;
21
+ font-size: var(--text-base, 1rem);
22
+ line-height: 1.5;
23
+ color: var(--color-text, var(--gray-12, inherit));
24
+ }
25
+
26
+ /* Mobile-first: Adjust padding for smaller screens */
27
+ @media (max-width: 30rem) {
28
+ .card__body {
29
+ padding: var(--space-md, 1rem);
30
+ }
31
+ }
32
+ </style>
@@ -0,0 +1,7 @@
1
+ interface Props {
2
+ class?: string;
3
+ children?: import('svelte').Snippet;
4
+ }
5
+ declare const CardBody: import("svelte").Component<Props, {}, "">;
6
+ type CardBody = ReturnType<typeof CardBody>;
7
+ export default CardBody;
@@ -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';