@makolabs/ripple 0.0.1 → 0.0.4

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 (144) hide show
  1. package/README.md +575 -8
  2. package/dist/adapters/storage/BaseAdapter.d.ts +20 -0
  3. package/dist/adapters/storage/BaseAdapter.js +171 -0
  4. package/dist/adapters/storage/S3Adapter.d.ts +21 -0
  5. package/dist/adapters/storage/S3Adapter.js +194 -0
  6. package/dist/adapters/storage/index.d.ts +3 -0
  7. package/dist/adapters/storage/index.js +3 -0
  8. package/dist/adapters/storage/types.d.ts +102 -0
  9. package/dist/adapters/storage/types.js +4 -0
  10. package/dist/button/Button.svelte +48 -0
  11. package/dist/button/Button.svelte.d.ts +4 -0
  12. package/dist/button/button.d.ts +113 -0
  13. package/dist/button/button.js +168 -0
  14. package/dist/charts/Chart.svelte +545 -0
  15. package/dist/charts/Chart.svelte.d.ts +4 -0
  16. package/dist/drawer/Drawer.svelte +224 -0
  17. package/dist/drawer/Drawer.svelte.d.ts +4 -0
  18. package/dist/drawer/drawer.d.ts +160 -0
  19. package/dist/drawer/drawer.js +80 -0
  20. package/dist/elements/accordion/Accordion.svelte +98 -0
  21. package/dist/elements/accordion/Accordion.svelte.d.ts +4 -0
  22. package/dist/elements/accordion/accordion.d.ts +227 -0
  23. package/dist/elements/accordion/accordion.js +138 -0
  24. package/dist/elements/alert/Alert.svelte +57 -0
  25. package/dist/elements/alert/Alert.svelte.d.ts +4 -0
  26. package/dist/elements/badge/Badge.svelte +43 -0
  27. package/dist/elements/badge/Badge.svelte.d.ts +4 -0
  28. package/dist/elements/badge/badge.d.ts +181 -0
  29. package/dist/elements/badge/badge.js +65 -0
  30. package/dist/elements/dropdown/Dropdown.svelte +234 -0
  31. package/dist/elements/dropdown/Dropdown.svelte.d.ts +4 -0
  32. package/dist/elements/dropdown/Select.svelte +333 -0
  33. package/dist/elements/dropdown/Select.svelte.d.ts +4 -0
  34. package/dist/elements/dropdown/dropdown.d.ts +251 -0
  35. package/dist/elements/dropdown/dropdown.js +95 -0
  36. package/dist/elements/dropdown/select.d.ts +200 -0
  37. package/dist/elements/dropdown/select.js +82 -0
  38. package/dist/elements/file-upload/FileUpload.svelte +135 -0
  39. package/dist/elements/file-upload/FileUpload.svelte.d.ts +4 -0
  40. package/dist/elements/file-upload/FilesPreview.svelte +93 -0
  41. package/dist/elements/file-upload/FilesPreview.svelte.d.ts +4 -0
  42. package/dist/elements/progress/Progress.svelte +145 -0
  43. package/dist/elements/progress/Progress.svelte.d.ts +4 -0
  44. package/dist/elements/timeline/Timeline.svelte +92 -0
  45. package/dist/elements/timeline/Timeline.svelte.d.ts +7 -0
  46. package/dist/file-browser/FileBrowser.svelte +877 -0
  47. package/dist/file-browser/FileBrowser.svelte.d.ts +14 -0
  48. package/dist/file-browser/index.d.ts +1 -0
  49. package/dist/file-browser/index.js +1 -0
  50. package/dist/filters/CompactFilters.svelte +147 -0
  51. package/dist/filters/CompactFilters.svelte.d.ts +4 -0
  52. package/dist/filters/index.d.ts +1 -0
  53. package/dist/filters/index.js +1 -0
  54. package/dist/forms/Checkbox.svelte +54 -0
  55. package/dist/forms/Checkbox.svelte.d.ts +4 -0
  56. package/dist/forms/DateRange.svelte +493 -0
  57. package/dist/forms/DateRange.svelte.d.ts +4 -0
  58. package/dist/forms/Form.svelte +39 -0
  59. package/dist/forms/Form.svelte.d.ts +4 -0
  60. package/dist/forms/Input.svelte +86 -0
  61. package/dist/forms/Input.svelte.d.ts +4 -0
  62. package/dist/forms/NumberInput.svelte +159 -0
  63. package/dist/forms/NumberInput.svelte.d.ts +4 -0
  64. package/dist/forms/RadioInputs.svelte +64 -0
  65. package/dist/forms/RadioInputs.svelte.d.ts +4 -0
  66. package/dist/forms/RadioPill.svelte +66 -0
  67. package/dist/forms/RadioPill.svelte.d.ts +4 -0
  68. package/dist/forms/Slider.svelte +342 -0
  69. package/dist/forms/Slider.svelte.d.ts +4 -0
  70. package/dist/forms/Tags.svelte +181 -0
  71. package/dist/forms/Tags.svelte.d.ts +4 -0
  72. package/dist/forms/Toggle.svelte +132 -0
  73. package/dist/forms/Toggle.svelte.d.ts +4 -0
  74. package/dist/forms/slider.d.ts +143 -0
  75. package/dist/forms/slider.js +62 -0
  76. package/dist/header/Breadcrumbs.svelte +73 -0
  77. package/dist/header/Breadcrumbs.svelte.d.ts +4 -0
  78. package/dist/header/PageHeader.svelte +68 -0
  79. package/dist/header/PageHeader.svelte.d.ts +4 -0
  80. package/dist/header/breadcrumbs.d.ts +226 -0
  81. package/dist/header/breadcrumbs.js +87 -0
  82. package/dist/helper/cls.d.ts +1 -0
  83. package/dist/helper/cls.js +4 -0
  84. package/dist/helper/date.d.ts +7 -0
  85. package/dist/helper/date.js +15 -0
  86. package/dist/helper/nav.svelte.d.ts +6 -0
  87. package/dist/helper/nav.svelte.js +23 -0
  88. package/dist/index.d.ts +856 -1
  89. package/dist/index.js +78 -1
  90. package/dist/layout/card/Card.svelte +41 -0
  91. package/dist/layout/card/Card.svelte.d.ts +4 -0
  92. package/dist/layout/card/MetricCard.svelte +64 -0
  93. package/dist/layout/card/MetricCard.svelte.d.ts +4 -0
  94. package/dist/layout/card/StatsCard.svelte +266 -0
  95. package/dist/layout/card/StatsCard.svelte.d.ts +4 -0
  96. package/dist/layout/card/card.d.ts +128 -0
  97. package/dist/layout/card/card.js +51 -0
  98. package/dist/layout/card/metric-card.d.ts +49 -0
  99. package/dist/layout/card/metric-card.js +10 -0
  100. package/dist/layout/card/stats-card.d.ts +191 -0
  101. package/dist/layout/card/stats-card.js +73 -0
  102. package/dist/layout/navbar/Navbar.svelte +206 -0
  103. package/dist/layout/navbar/Navbar.svelte.d.ts +4 -0
  104. package/dist/layout/navbar/navbar.d.ts +205 -0
  105. package/dist/layout/navbar/navbar.js +98 -0
  106. package/dist/layout/sidebar/NavGroup.svelte +91 -0
  107. package/dist/layout/sidebar/NavGroup.svelte.d.ts +4 -0
  108. package/dist/layout/sidebar/NavItem.svelte +29 -0
  109. package/dist/layout/sidebar/NavItem.svelte.d.ts +4 -0
  110. package/dist/layout/sidebar/Sidebar.svelte +193 -0
  111. package/dist/layout/sidebar/Sidebar.svelte.d.ts +4 -0
  112. package/dist/layout/table/Cells.svelte +111 -0
  113. package/dist/layout/table/Cells.svelte.d.ts +27 -0
  114. package/dist/layout/table/Table.svelte +790 -0
  115. package/dist/layout/table/Table.svelte.d.ts +4 -0
  116. package/dist/layout/table/table.d.ts +256 -0
  117. package/dist/layout/table/table.js +141 -0
  118. package/dist/layout/tabs/Tab.svelte +60 -0
  119. package/dist/layout/tabs/Tab.svelte.d.ts +4 -0
  120. package/dist/layout/tabs/TabContent.svelte +30 -0
  121. package/dist/layout/tabs/TabContent.svelte.d.ts +4 -0
  122. package/dist/layout/tabs/TabGroup.svelte +62 -0
  123. package/dist/layout/tabs/TabGroup.svelte.d.ts +4 -0
  124. package/dist/layout/tabs/tabs.d.ts +140 -0
  125. package/dist/layout/tabs/tabs.js +298 -0
  126. package/dist/modal/Modal.svelte +207 -0
  127. package/dist/modal/Modal.svelte.d.ts +4 -0
  128. package/dist/modal/modal.d.ts +211 -0
  129. package/dist/modal/modal.js +81 -0
  130. package/dist/sonner/sonner.svelte +13 -0
  131. package/dist/sonner/sonner.svelte.d.ts +4 -0
  132. package/dist/types/variants.d.ts +1 -0
  133. package/dist/types/variants.js +1 -0
  134. package/dist/utils/Portal.svelte +108 -0
  135. package/dist/utils/Portal.svelte.d.ts +8 -0
  136. package/dist/utils/dateUtils.d.ts +7 -0
  137. package/dist/utils/dateUtils.js +26 -0
  138. package/dist/variants.d.ts +30 -0
  139. package/dist/variants.js +36 -0
  140. package/package.json +39 -6
  141. package/dist/layout/Card.svelte +0 -179
  142. package/dist/layout/Card.svelte.d.ts +0 -208
  143. package/dist/layout/index.d.ts +0 -1
  144. package/dist/layout/index.js +0 -1
@@ -0,0 +1,4 @@
1
+ import type { TableProps } from '../../index.js';
2
+ declare const Table: import("svelte").Component<TableProps<any>, {}, "selected">;
3
+ type Table = ReturnType<typeof Table>;
4
+ export default Table;
@@ -0,0 +1,256 @@
1
+ export declare const table: import("tailwind-variants").TVReturnType<{
2
+ size: {
3
+ xs: {
4
+ th: string;
5
+ td: string;
6
+ };
7
+ sm: {
8
+ th: string;
9
+ td: string;
10
+ };
11
+ base: {
12
+ th: string;
13
+ td: string;
14
+ };
15
+ lg: {
16
+ th: string;
17
+ td: string;
18
+ };
19
+ xl: {
20
+ th: string;
21
+ td: string;
22
+ };
23
+ '2xl': {
24
+ th: string;
25
+ td: string;
26
+ };
27
+ };
28
+ color: {
29
+ default: {
30
+ th: string;
31
+ };
32
+ primary: {
33
+ th: string;
34
+ tr: string;
35
+ };
36
+ secondary: {
37
+ th: string;
38
+ tr: string;
39
+ };
40
+ info: {
41
+ th: string;
42
+ tr: string;
43
+ };
44
+ success: {
45
+ th: string;
46
+ tr: string;
47
+ };
48
+ warning: {
49
+ th: string;
50
+ tr: string;
51
+ };
52
+ danger: {
53
+ th: string;
54
+ tr: string;
55
+ };
56
+ };
57
+ bordered: {
58
+ true: {
59
+ table: string;
60
+ th: string;
61
+ td: string;
62
+ };
63
+ false: {
64
+ table: string;
65
+ };
66
+ };
67
+ striped: {
68
+ true: {
69
+ tr: string;
70
+ };
71
+ };
72
+ }, {
73
+ base: string;
74
+ wrapper: string;
75
+ table: string;
76
+ thead: string;
77
+ tbody: string;
78
+ tr: string;
79
+ th: string;
80
+ td: string;
81
+ footer: string;
82
+ pagination: string;
83
+ emptyState: string;
84
+ sortButton: string;
85
+ sortIcon: string;
86
+ }, undefined, {
87
+ size: {
88
+ xs: {
89
+ th: string;
90
+ td: string;
91
+ };
92
+ sm: {
93
+ th: string;
94
+ td: string;
95
+ };
96
+ base: {
97
+ th: string;
98
+ td: string;
99
+ };
100
+ lg: {
101
+ th: string;
102
+ td: string;
103
+ };
104
+ xl: {
105
+ th: string;
106
+ td: string;
107
+ };
108
+ '2xl': {
109
+ th: string;
110
+ td: string;
111
+ };
112
+ };
113
+ color: {
114
+ default: {
115
+ th: string;
116
+ };
117
+ primary: {
118
+ th: string;
119
+ tr: string;
120
+ };
121
+ secondary: {
122
+ th: string;
123
+ tr: string;
124
+ };
125
+ info: {
126
+ th: string;
127
+ tr: string;
128
+ };
129
+ success: {
130
+ th: string;
131
+ tr: string;
132
+ };
133
+ warning: {
134
+ th: string;
135
+ tr: string;
136
+ };
137
+ danger: {
138
+ th: string;
139
+ tr: string;
140
+ };
141
+ };
142
+ bordered: {
143
+ true: {
144
+ table: string;
145
+ th: string;
146
+ td: string;
147
+ };
148
+ false: {
149
+ table: string;
150
+ };
151
+ };
152
+ striped: {
153
+ true: {
154
+ tr: string;
155
+ };
156
+ };
157
+ }, {
158
+ base: string;
159
+ wrapper: string;
160
+ table: string;
161
+ thead: string;
162
+ tbody: string;
163
+ tr: string;
164
+ th: string;
165
+ td: string;
166
+ footer: string;
167
+ pagination: string;
168
+ emptyState: string;
169
+ sortButton: string;
170
+ sortIcon: string;
171
+ }, import("tailwind-variants").TVReturnType<{
172
+ size: {
173
+ xs: {
174
+ th: string;
175
+ td: string;
176
+ };
177
+ sm: {
178
+ th: string;
179
+ td: string;
180
+ };
181
+ base: {
182
+ th: string;
183
+ td: string;
184
+ };
185
+ lg: {
186
+ th: string;
187
+ td: string;
188
+ };
189
+ xl: {
190
+ th: string;
191
+ td: string;
192
+ };
193
+ '2xl': {
194
+ th: string;
195
+ td: string;
196
+ };
197
+ };
198
+ color: {
199
+ default: {
200
+ th: string;
201
+ };
202
+ primary: {
203
+ th: string;
204
+ tr: string;
205
+ };
206
+ secondary: {
207
+ th: string;
208
+ tr: string;
209
+ };
210
+ info: {
211
+ th: string;
212
+ tr: string;
213
+ };
214
+ success: {
215
+ th: string;
216
+ tr: string;
217
+ };
218
+ warning: {
219
+ th: string;
220
+ tr: string;
221
+ };
222
+ danger: {
223
+ th: string;
224
+ tr: string;
225
+ };
226
+ };
227
+ bordered: {
228
+ true: {
229
+ table: string;
230
+ th: string;
231
+ td: string;
232
+ };
233
+ false: {
234
+ table: string;
235
+ };
236
+ };
237
+ striped: {
238
+ true: {
239
+ tr: string;
240
+ };
241
+ };
242
+ }, {
243
+ base: string;
244
+ wrapper: string;
245
+ table: string;
246
+ thead: string;
247
+ tbody: string;
248
+ tr: string;
249
+ th: string;
250
+ td: string;
251
+ footer: string;
252
+ pagination: string;
253
+ emptyState: string;
254
+ sortButton: string;
255
+ sortIcon: string;
256
+ }, undefined, unknown, unknown, undefined>>;
@@ -0,0 +1,141 @@
1
+ import { tv } from 'tailwind-variants';
2
+ export const table = tv({
3
+ slots: {
4
+ base: 'w-full',
5
+ wrapper: 'overflow-x-auto',
6
+ table: 'min-w-full divide-y divide-default-200',
7
+ thead: '',
8
+ tbody: 'divide-y divide-default-200',
9
+ tr: 'transition-colors hover:bg-default-50',
10
+ th: 'font-semibold whitespace-nowrap',
11
+ td: 'whitespace-nowrap',
12
+ footer: 'p-4',
13
+ pagination: 'flex items-center justify-between',
14
+ emptyState: 'p-8 text-center text-default-500',
15
+ sortButton: 'inline-flex gap-1 items-center cursor-pointer focus:outline-none',
16
+ sortIcon: 'h-4 w-4'
17
+ },
18
+ variants: {
19
+ size: {
20
+ xs: {
21
+ th: 'px-2 py-1.5 text-xs',
22
+ td: 'px-2 py-1.5 text-xs'
23
+ },
24
+ sm: {
25
+ th: 'px-3 py-2 text-xs',
26
+ td: 'px-3 py-2 text-sm'
27
+ },
28
+ base: {
29
+ th: 'px-4 py-3 text-sm',
30
+ td: 'px-4 py-3 text-sm'
31
+ },
32
+ lg: {
33
+ th: 'px-6 py-4 text-sm',
34
+ td: 'px-6 py-4 text-base'
35
+ },
36
+ xl: {
37
+ th: 'px-8 py-5 text-base',
38
+ td: 'px-8 py-5 text-base'
39
+ },
40
+ '2xl': {
41
+ th: 'px-10 py-6 text-lg',
42
+ td: 'px-10 py-6 text-lg'
43
+ }
44
+ },
45
+ color: {
46
+ default: {
47
+ th: 'text-default-700 bg-default-50'
48
+ },
49
+ primary: {
50
+ th: 'text-primary-700 bg-primary-50',
51
+ tr: 'hover:bg-primary-50'
52
+ },
53
+ secondary: {
54
+ th: 'text-secondary-700 bg-secondary-50',
55
+ tr: 'hover:bg-secondary-50'
56
+ },
57
+ info: {
58
+ th: 'text-info-700 bg-info-50',
59
+ tr: 'hover:bg-info-50'
60
+ },
61
+ success: {
62
+ th: 'text-success-700 bg-success-50',
63
+ tr: 'hover:bg-success-50'
64
+ },
65
+ warning: {
66
+ th: 'text-warning-700 bg-warning-50',
67
+ tr: 'hover:bg-warning-50'
68
+ },
69
+ danger: {
70
+ th: 'text-danger-700 bg-danger-50',
71
+ tr: 'hover:bg-danger-50'
72
+ }
73
+ },
74
+ bordered: {
75
+ true: {
76
+ table: 'border-separate border-spacing-0 border border-default-200 rounded-md overflow-hidden',
77
+ th: 'border-b border-default-200',
78
+ td: 'border-b border-default-200'
79
+ },
80
+ false: {
81
+ table: 'border-none'
82
+ }
83
+ },
84
+ striped: {
85
+ true: {
86
+ tr: 'even:bg-default-50'
87
+ }
88
+ }
89
+ },
90
+ compoundVariants: [
91
+ // Add compound variants for striped + color combinations
92
+ {
93
+ striped: true,
94
+ color: 'primary',
95
+ class: {
96
+ tr: 'even:bg-primary-50'
97
+ }
98
+ },
99
+ {
100
+ striped: true,
101
+ color: 'secondary',
102
+ class: {
103
+ tr: 'even:bg-secondary-50'
104
+ }
105
+ },
106
+ {
107
+ striped: true,
108
+ color: 'info',
109
+ class: {
110
+ tr: 'even:bg-info-50'
111
+ }
112
+ },
113
+ {
114
+ striped: true,
115
+ color: 'success',
116
+ class: {
117
+ tr: 'even:bg-success-50'
118
+ }
119
+ },
120
+ {
121
+ striped: true,
122
+ color: 'warning',
123
+ class: {
124
+ tr: 'even:bg-warning-50'
125
+ }
126
+ },
127
+ {
128
+ striped: true,
129
+ color: 'danger',
130
+ class: {
131
+ tr: 'even:bg-danger-50'
132
+ }
133
+ }
134
+ ],
135
+ defaultVariants: {
136
+ size: 'base',
137
+ color: 'default',
138
+ bordered: true,
139
+ striped: false
140
+ }
141
+ });
@@ -0,0 +1,60 @@
1
+ <script lang="ts">
2
+ import { cn } from '../../helper/cls.js';
3
+ import { tabs } from './tabs.js';
4
+ import { Color, Size } from '../../index.js';
5
+ import type { TabProps } from '../../index.js';
6
+ let {
7
+ value = '',
8
+ label = '',
9
+ icon: Icon = undefined,
10
+ selected = false,
11
+ disabled = false,
12
+ color = Color.PRIMARY,
13
+ size = Size.BASE,
14
+ onclick = () => {},
15
+ variant = 'line'
16
+ }: TabProps = $props();
17
+
18
+ function handleClick(event: Event & { currentTarget: EventTarget & HTMLButtonElement }) {
19
+ event.preventDefault();
20
+ if (!disabled) {
21
+ onclick(event);
22
+ }
23
+ }
24
+
25
+ const { trigger } = $derived(
26
+ tabs({
27
+ selected,
28
+ color,
29
+ size,
30
+ variant
31
+ })
32
+ );
33
+
34
+ const triggerClass = $derived(cn(trigger()));
35
+ </script>
36
+
37
+ <button
38
+ class={triggerClass}
39
+ aria-current={selected ? 'page' : undefined}
40
+ aria-disabled={disabled ? 'true' : undefined}
41
+ tabindex={disabled ? -1 : 0}
42
+ role="tab"
43
+ id={`tab-${value}`}
44
+ aria-controls={`panel-${value}`}
45
+ aria-selected={selected ? 'true' : 'false'}
46
+ onclick={handleClick}
47
+ onkeydown={(e) => {
48
+ if (e.key === 'Enter' || e.key === ' ') {
49
+ e.preventDefault();
50
+ handleClick(e);
51
+ }
52
+ }}
53
+ >
54
+ {#if Icon}
55
+ <span class="mr-2">
56
+ <Icon aria-hidden="true" class="size-5" />
57
+ </span>
58
+ {/if}
59
+ <span>{label}</span>
60
+ </button>
@@ -0,0 +1,4 @@
1
+ import type { TabProps } from '../../index.js';
2
+ declare const Tab: import("svelte").Component<TabProps, {}, "">;
3
+ type Tab = ReturnType<typeof Tab>;
4
+ export default Tab;
@@ -0,0 +1,30 @@
1
+ <script lang="ts">
2
+ import { cn } from '../../helper/cls.js';
3
+ import { getContext } from 'svelte';
4
+ import type { HTMLAttributes } from 'svelte/elements';
5
+ import type { TabContentProps } from '../../index.js';
6
+ let { value = '', persisted = false, panelClass = '', children }: TabContentProps = $props();
7
+
8
+ const getSelected = getContext('getSelected') as () => string;
9
+ const selected = $derived(getSelected());
10
+ const tabPanelClass = $derived(cn(panelClass));
11
+ const active = $derived(selected === value);
12
+
13
+ let divProps: HTMLAttributes<HTMLDivElement> = $derived({
14
+ id: `panel-${value}`,
15
+ role: 'tabpanel',
16
+ class: tabPanelClass,
17
+ 'aria-labelledby': `tab-${value}`,
18
+ tabindex: 0
19
+ });
20
+ </script>
21
+
22
+ {#if persisted}
23
+ <div {...divProps} style={active ? 'display: block' : 'display: none'}>
24
+ {@render children?.(value)}
25
+ </div>
26
+ {:else if active}
27
+ <div {...divProps}>
28
+ {@render children?.(value)}
29
+ </div>
30
+ {/if}
@@ -0,0 +1,4 @@
1
+ import type { TabContentProps } from '../../index.js';
2
+ declare const TabContent: import("svelte").Component<TabContentProps, {}, "">;
3
+ type TabContent = ReturnType<typeof TabContent>;
4
+ export default TabContent;
@@ -0,0 +1,62 @@
1
+ <script lang="ts">
2
+ import { cn } from '../../helper/cls.js';
3
+ import Tab from './Tab.svelte';
4
+ import { tabs } from './tabs.js';
5
+ import type { TabsGroupProps } from '../../index.js';
6
+ import { setContext } from 'svelte';
7
+ import type { VariantColors, VariantSizes } from '../../index.js';
8
+
9
+ let {
10
+ tabs: tabItems = [],
11
+ selected = $bindable(''),
12
+ color = 'primary' as VariantColors,
13
+ size = 'base' as VariantSizes,
14
+ variant = 'line',
15
+ class: className = '',
16
+ listClass = '',
17
+ panelClass = '',
18
+ onchange = () => {},
19
+ children
20
+ }: TabsGroupProps = $props();
21
+
22
+ const { base, list, panel } = $derived(
23
+ tabs({
24
+ color,
25
+ size,
26
+ variant
27
+ })
28
+ );
29
+
30
+ const baseClass = $derived(cn(base(), className));
31
+ const listClass_ = $derived(cn(list(), listClass));
32
+ const panelClass_ = $derived(cn(panel(), panelClass));
33
+
34
+ function handleTabClick(value: string) {
35
+ selected = value;
36
+ onchange(value);
37
+ }
38
+
39
+ setContext('getSelected', () => selected);
40
+ </script>
41
+
42
+ <div class={baseClass}>
43
+ <div class={listClass_} role="tablist">
44
+ {#each tabItems as tab (tab.value)}
45
+ <Tab
46
+ value={tab.value}
47
+ label={tab.label}
48
+ icon={tab.icon}
49
+ selected={tab.value === selected}
50
+ disabled={tab.disabled}
51
+ {color}
52
+ {size}
53
+ {variant}
54
+ onclick={() => handleTabClick(tab.value)}
55
+ />
56
+ {/each}
57
+ </div>
58
+
59
+ <div class={panelClass_}>
60
+ {@render children?.(selected)}
61
+ </div>
62
+ </div>
@@ -0,0 +1,4 @@
1
+ import type { TabsGroupProps } from '../../index.js';
2
+ declare const TabGroup: import("svelte").Component<TabsGroupProps, {}, "selected">;
3
+ type TabGroup = ReturnType<typeof TabGroup>;
4
+ export default TabGroup;
@@ -0,0 +1,140 @@
1
+ import { Color, Size } from '../../index.js';
2
+ export declare const tabs: import("tailwind-variants").TVReturnType<{
3
+ color: {
4
+ [Color.PRIMARY]: {};
5
+ [Color.SECONDARY]: {};
6
+ [Color.SUCCESS]: {};
7
+ [Color.WARNING]: {};
8
+ [Color.DANGER]: {};
9
+ [Color.INFO]: {};
10
+ [Color.DEFAULT]: {};
11
+ };
12
+ size: {
13
+ [Size.XS]: {
14
+ trigger: string;
15
+ };
16
+ [Size.SM]: {
17
+ trigger: string;
18
+ };
19
+ [Size.BASE]: {
20
+ trigger: string;
21
+ };
22
+ [Size.LG]: {
23
+ trigger: string;
24
+ };
25
+ [Size.XL]: {
26
+ trigger: string;
27
+ };
28
+ [Size.XXL]: {
29
+ trigger: string;
30
+ };
31
+ };
32
+ variant: {
33
+ line: {};
34
+ pill: {
35
+ list: string;
36
+ trigger: string;
37
+ };
38
+ };
39
+ selected: {
40
+ true: {};
41
+ false: {};
42
+ };
43
+ }, {
44
+ base: string;
45
+ list: string;
46
+ trigger: string;
47
+ panel: string;
48
+ }, undefined, {
49
+ color: {
50
+ [Color.PRIMARY]: {};
51
+ [Color.SECONDARY]: {};
52
+ [Color.SUCCESS]: {};
53
+ [Color.WARNING]: {};
54
+ [Color.DANGER]: {};
55
+ [Color.INFO]: {};
56
+ [Color.DEFAULT]: {};
57
+ };
58
+ size: {
59
+ [Size.XS]: {
60
+ trigger: string;
61
+ };
62
+ [Size.SM]: {
63
+ trigger: string;
64
+ };
65
+ [Size.BASE]: {
66
+ trigger: string;
67
+ };
68
+ [Size.LG]: {
69
+ trigger: string;
70
+ };
71
+ [Size.XL]: {
72
+ trigger: string;
73
+ };
74
+ [Size.XXL]: {
75
+ trigger: string;
76
+ };
77
+ };
78
+ variant: {
79
+ line: {};
80
+ pill: {
81
+ list: string;
82
+ trigger: string;
83
+ };
84
+ };
85
+ selected: {
86
+ true: {};
87
+ false: {};
88
+ };
89
+ }, {
90
+ base: string;
91
+ list: string;
92
+ trigger: string;
93
+ panel: string;
94
+ }, import("tailwind-variants").TVReturnType<{
95
+ color: {
96
+ [Color.PRIMARY]: {};
97
+ [Color.SECONDARY]: {};
98
+ [Color.SUCCESS]: {};
99
+ [Color.WARNING]: {};
100
+ [Color.DANGER]: {};
101
+ [Color.INFO]: {};
102
+ [Color.DEFAULT]: {};
103
+ };
104
+ size: {
105
+ [Size.XS]: {
106
+ trigger: string;
107
+ };
108
+ [Size.SM]: {
109
+ trigger: string;
110
+ };
111
+ [Size.BASE]: {
112
+ trigger: string;
113
+ };
114
+ [Size.LG]: {
115
+ trigger: string;
116
+ };
117
+ [Size.XL]: {
118
+ trigger: string;
119
+ };
120
+ [Size.XXL]: {
121
+ trigger: string;
122
+ };
123
+ };
124
+ variant: {
125
+ line: {};
126
+ pill: {
127
+ list: string;
128
+ trigger: string;
129
+ };
130
+ };
131
+ selected: {
132
+ true: {};
133
+ false: {};
134
+ };
135
+ }, {
136
+ base: string;
137
+ list: string;
138
+ trigger: string;
139
+ panel: string;
140
+ }, undefined, unknown, unknown, undefined>>;