ui-svelte 0.2.11 → 0.2.13

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 (225) hide show
  1. package/README.md +2 -2
  2. package/dist/charts/ArcChart.svelte +9 -14
  3. package/dist/charts/ArcChart.svelte.d.ts +3 -3
  4. package/dist/charts/AreaChart.svelte +347 -118
  5. package/dist/charts/AreaChart.svelte.d.ts +33 -4
  6. package/dist/charts/BarChart.svelte +288 -66
  7. package/dist/charts/BarChart.svelte.d.ts +26 -1
  8. package/dist/charts/Candlestick.svelte +53 -50
  9. package/dist/charts/Candlestick.svelte.d.ts +8 -8
  10. package/dist/charts/LineChart.svelte +391 -91
  11. package/dist/charts/LineChart.svelte.d.ts +26 -3
  12. package/dist/charts/PieChart.svelte +333 -92
  13. package/dist/charts/PieChart.svelte.d.ts +33 -5
  14. package/dist/charts/css/arc-chart.css +3 -3
  15. package/dist/charts/css/area-chart.css +127 -29
  16. package/dist/charts/css/bar-chart.css +114 -8
  17. package/dist/charts/css/candlestick.css +2 -0
  18. package/dist/charts/css/line-chart.css +111 -13
  19. package/dist/charts/css/pie-chart.css +92 -20
  20. package/dist/control/Audio.svelte +86 -44
  21. package/dist/control/Audio.svelte.d.ts +4 -1
  22. package/dist/control/Button.svelte +18 -27
  23. package/dist/control/Button.svelte.d.ts +3 -2
  24. package/dist/control/Fab.svelte +103 -0
  25. package/dist/control/Fab.svelte.d.ts +25 -0
  26. package/dist/control/IconButton.svelte +17 -27
  27. package/dist/control/IconButton.svelte.d.ts +3 -3
  28. package/dist/control/Image.svelte +123 -0
  29. package/dist/control/Image.svelte.d.ts +13 -0
  30. package/dist/control/Record.svelte +141 -98
  31. package/dist/control/Record.svelte.d.ts +2 -1
  32. package/dist/control/ToggleGroup.svelte +22 -8
  33. package/dist/control/ToggleGroup.svelte.d.ts +2 -1
  34. package/dist/control/ToggleTheme.svelte +13 -11
  35. package/dist/control/ToggleTheme.svelte.d.ts +3 -2
  36. package/dist/control/Video.svelte +57 -29
  37. package/dist/control/Video.svelte.d.ts +1 -0
  38. package/dist/control/css/btn.css +200 -152
  39. package/dist/control/css/fab.css +84 -0
  40. package/dist/control/css/image.css +56 -0
  41. package/dist/control/css/media.css +95 -30
  42. package/dist/control/css/toggle-group.css +253 -84
  43. package/dist/control/css/video.css +1 -14
  44. package/dist/css/animations.css +5 -9
  45. package/dist/css/base.css +13 -347
  46. package/dist/css/decorations.css +561 -0
  47. package/dist/css/rich-text.css +485 -0
  48. package/dist/css/transitions.css +158 -0
  49. package/dist/css/typography.css +291 -0
  50. package/dist/css/utilities.css +0 -4
  51. package/dist/display/Accordion.svelte +28 -4
  52. package/dist/display/Accordion.svelte.d.ts +2 -1
  53. package/dist/display/Alert.svelte +32 -12
  54. package/dist/display/Alert.svelte.d.ts +2 -3
  55. package/dist/display/Avatar.svelte +23 -18
  56. package/dist/display/Avatar.svelte.d.ts +4 -1
  57. package/dist/display/AvatarGroup.svelte +20 -18
  58. package/dist/display/AvatarGroup.svelte.d.ts +6 -3
  59. package/dist/display/Badge.svelte +11 -4
  60. package/dist/display/Badge.svelte.d.ts +2 -1
  61. package/dist/display/Card.svelte +15 -14
  62. package/dist/display/Card.svelte.d.ts +2 -3
  63. package/dist/display/Carousel.svelte +130 -99
  64. package/dist/display/Carousel.svelte.d.ts +6 -4
  65. package/dist/display/ChatBox.svelte +245 -106
  66. package/dist/display/ChatBox.svelte.d.ts +32 -5
  67. package/dist/display/Chip.svelte +31 -17
  68. package/dist/display/Chip.svelte.d.ts +3 -2
  69. package/dist/display/Code.svelte +7 -4
  70. package/dist/display/Code.svelte.d.ts +1 -0
  71. package/dist/display/Collapsible.svelte +30 -4
  72. package/dist/display/Collapsible.svelte.d.ts +2 -1
  73. package/dist/display/Countdown.svelte +169 -0
  74. package/dist/display/Countdown.svelte.d.ts +21 -0
  75. package/dist/display/Empty.svelte +37 -3
  76. package/dist/display/Empty.svelte.d.ts +3 -0
  77. package/dist/display/Item.svelte +42 -11
  78. package/dist/display/Item.svelte.d.ts +4 -2
  79. package/dist/display/Map.svelte +488 -0
  80. package/dist/display/Map.svelte.d.ts +44 -0
  81. package/dist/display/Marquee.svelte +0 -2
  82. package/dist/display/Section.svelte +14 -12
  83. package/dist/display/Section.svelte.d.ts +2 -3
  84. package/dist/display/Skeleton.svelte +32 -0
  85. package/dist/display/Skeleton.svelte.d.ts +10 -0
  86. package/dist/display/Table.svelte +94 -132
  87. package/dist/display/Table.svelte.d.ts +10 -1
  88. package/dist/display/css/accordion.css +349 -52
  89. package/dist/display/css/alert.css +38 -18
  90. package/dist/display/css/avatar-group.css +38 -75
  91. package/dist/display/css/avatar.css +139 -121
  92. package/dist/display/css/badge.css +50 -27
  93. package/dist/display/css/card.css +123 -71
  94. package/dist/display/css/carousel.css +25 -5
  95. package/dist/display/css/chat-box.css +158 -26
  96. package/dist/display/css/chip.css +142 -68
  97. package/dist/display/css/code.css +2 -6
  98. package/dist/display/css/collapsible.css +349 -45
  99. package/dist/display/css/countdown.css +206 -0
  100. package/dist/display/css/divider.css +8 -6
  101. package/dist/display/css/empty.css +7 -0
  102. package/dist/display/css/item.css +330 -84
  103. package/dist/display/css/map.css +164 -0
  104. package/dist/display/css/marquee.css +0 -3
  105. package/dist/display/css/section.css +89 -65
  106. package/dist/display/css/skeleton.css +58 -0
  107. package/dist/display/css/table.css +309 -193
  108. package/dist/form/Checkbox.svelte +11 -5
  109. package/dist/form/Checkbox.svelte.d.ts +2 -1
  110. package/dist/form/ColorField.svelte +601 -0
  111. package/dist/form/ColorField.svelte.d.ts +29 -0
  112. package/dist/form/ComboBox.svelte +24 -9
  113. package/dist/form/ComboBox.svelte.d.ts +2 -2
  114. package/dist/form/CsvField.svelte +62 -136
  115. package/dist/form/CsvField.svelte.d.ts +2 -2
  116. package/dist/form/DateField.svelte +33 -15
  117. package/dist/form/DateField.svelte.d.ts +2 -1
  118. package/dist/form/DateRange.svelte +436 -0
  119. package/dist/form/DateRange.svelte.d.ts +24 -0
  120. package/dist/form/DragDrop.svelte +578 -0
  121. package/dist/form/DragDrop.svelte.d.ts +33 -0
  122. package/dist/form/Dropzone.svelte +28 -8
  123. package/dist/form/Dropzone.svelte.d.ts +2 -2
  124. package/dist/form/Editor.svelte +626 -0
  125. package/dist/form/Editor.svelte.d.ts +50 -0
  126. package/dist/form/ImageCropper.svelte +422 -61
  127. package/dist/form/ImageCropper.svelte.d.ts +15 -1
  128. package/dist/form/{PasswordStrength.svelte → PasswordField.svelte} +58 -24
  129. package/dist/form/{PasswordStrength.svelte.d.ts → PasswordField.svelte.d.ts} +6 -5
  130. package/dist/form/PhoneField.svelte +26 -14
  131. package/dist/form/PhoneField.svelte.d.ts +4 -3
  132. package/dist/form/PinField.svelte +39 -31
  133. package/dist/form/PinField.svelte.d.ts +3 -3
  134. package/dist/form/RadioGroup.svelte +9 -5
  135. package/dist/form/RadioGroup.svelte.d.ts +1 -1
  136. package/dist/form/Select.svelte +20 -19
  137. package/dist/form/Select.svelte.d.ts +2 -2
  138. package/dist/form/Slider.svelte +10 -4
  139. package/dist/form/Slider.svelte.d.ts +2 -1
  140. package/dist/form/TextField.svelte +29 -11
  141. package/dist/form/TextField.svelte.d.ts +5 -4
  142. package/dist/form/Textarea.svelte +15 -6
  143. package/dist/form/Textarea.svelte.d.ts +2 -2
  144. package/dist/form/Toggle.svelte +7 -3
  145. package/dist/form/Toggle.svelte.d.ts +1 -1
  146. package/dist/form/css/checkbox.css +18 -2
  147. package/dist/form/css/color-field.css +141 -0
  148. package/dist/form/css/control.css +193 -82
  149. package/dist/form/css/csv-field.css +221 -0
  150. package/dist/form/css/date-range.css +122 -0
  151. package/dist/form/css/date.css +24 -2
  152. package/dist/form/css/drag-drop.css +234 -0
  153. package/dist/form/css/dropzone.css +153 -34
  154. package/dist/form/css/editor.css +367 -0
  155. package/dist/form/css/field.css +4 -0
  156. package/dist/form/css/image-cropper.css +242 -20
  157. package/dist/form/css/radio-group.css +26 -1
  158. package/dist/form/css/select.css +2 -2
  159. package/dist/form/css/slider.css +37 -0
  160. package/dist/form/css/textarea.css +178 -75
  161. package/dist/form/css/toggle.css +15 -3
  162. package/dist/hooks/use-chat.svelte.js +1 -1
  163. package/dist/hooks/use-form.svelte.js +3 -3
  164. package/dist/hooks/use-search.svelte.js +0 -3
  165. package/dist/hooks/use-table.svelte.d.ts +1 -0
  166. package/dist/hooks/use-table.svelte.js +6 -0
  167. package/dist/icons/index.d.ts +34 -2
  168. package/dist/icons/index.js +36 -4
  169. package/dist/index.css +44 -49
  170. package/dist/index.d.ts +14 -4
  171. package/dist/index.js +13 -3
  172. package/dist/layout/AppBar.svelte +22 -14
  173. package/dist/layout/AppBar.svelte.d.ts +2 -1
  174. package/dist/layout/Footer.svelte +19 -11
  175. package/dist/layout/Footer.svelte.d.ts +2 -1
  176. package/dist/layout/Provider.svelte +32 -9
  177. package/dist/layout/Provider.svelte.d.ts +3 -1
  178. package/dist/layout/Sidebar.svelte +17 -8
  179. package/dist/layout/Sidebar.svelte.d.ts +2 -1
  180. package/dist/layout/css/app-bar.css +63 -66
  181. package/dist/layout/css/footer.css +62 -65
  182. package/dist/layout/css/sidebar.css +120 -59
  183. package/dist/navigation/BottomNav.svelte +51 -14
  184. package/dist/navigation/FooterGroup.svelte +1 -1
  185. package/dist/navigation/NavMenu.svelte +47 -23
  186. package/dist/navigation/NavMenu.svelte.d.ts +29 -0
  187. package/dist/navigation/Pagination.svelte +158 -0
  188. package/dist/navigation/Pagination.svelte.d.ts +18 -0
  189. package/dist/navigation/SideNav.svelte +30 -25
  190. package/dist/navigation/SideNav.svelte.d.ts +2 -3
  191. package/dist/navigation/Tabs.svelte +17 -7
  192. package/dist/navigation/Tabs.svelte.d.ts +2 -2
  193. package/dist/navigation/css/bottom-nav.css +319 -257
  194. package/dist/navigation/css/footer-group.css +1 -1
  195. package/dist/navigation/css/footer-nav.css +1 -1
  196. package/dist/navigation/css/nav-menu.css +331 -106
  197. package/dist/navigation/css/pagination.css +74 -0
  198. package/dist/navigation/css/side-nav.css +514 -75
  199. package/dist/navigation/css/tabs.css +246 -52
  200. package/dist/overlay/AlertDialog.svelte +58 -0
  201. package/dist/overlay/AlertDialog.svelte.d.ts +14 -25
  202. package/dist/overlay/Command.svelte +347 -0
  203. package/dist/overlay/Command.svelte.d.ts +33 -25
  204. package/dist/overlay/Drawer.svelte +49 -21
  205. package/dist/overlay/Drawer.svelte.d.ts +2 -2
  206. package/dist/overlay/Dropdown.svelte +3 -3
  207. package/dist/overlay/Modal.svelte +51 -16
  208. package/dist/overlay/Modal.svelte.d.ts +3 -3
  209. package/dist/overlay/Toast.svelte +41 -17
  210. package/dist/overlay/Toast.svelte.d.ts +1 -1
  211. package/dist/overlay/Tooltip.svelte +36 -27
  212. package/dist/overlay/Tooltip.svelte.d.ts +2 -2
  213. package/dist/overlay/css/command.css +68 -0
  214. package/dist/overlay/css/drawer.css +63 -24
  215. package/dist/overlay/css/dropdown.css +1 -1
  216. package/dist/overlay/css/hovercard.css +1 -1
  217. package/dist/overlay/css/modal.css +79 -27
  218. package/dist/overlay/css/toast.css +40 -24
  219. package/dist/overlay/css/tooltip.css +110 -67
  220. package/dist/stores/theme.svelte.js +44 -12
  221. package/dist/stores/toast.svelte.d.ts +4 -4
  222. package/dist/stores/toast.svelte.js +2 -2
  223. package/package.json +1 -1
  224. package/dist/utils/charts.d.ts +0 -27
  225. package/dist/utils/charts.js +0 -140
package/dist/index.css CHANGED
@@ -4,11 +4,17 @@
4
4
  @import './css/utilities.css';
5
5
  @import './css/animations.css';
6
6
  @import './css/base.css';
7
+ @import './css/decorations.css';
8
+ @import './css/rich-text.css';
9
+ @import './css/transitions.css';
10
+ @import './css/typography.css';
7
11
 
8
12
  @import './control/css/btn.css';
13
+ @import './control/css/image.css';
9
14
  @import './control/css/media.css';
10
15
  @import './control/css/video.css';
11
16
  @import './control/css/toggle-group.css';
17
+ @import './control/css/fab.css';
12
18
 
13
19
  @import './charts/css/arc-chart.css';
14
20
  @import './charts/css/area-chart.css';
@@ -28,25 +34,32 @@
28
34
  @import './display/css/chip.css';
29
35
  @import './display/css/code.css';
30
36
  @import './display/css/collapsible.css';
37
+ @import './display/css/countdown.css';
31
38
  @import './display/css/divider.css';
32
39
  @import './display/css/empty.css';
33
40
  @import './display/css/item.css';
34
41
  @import './display/css/marquee.css';
35
42
  @import './display/css/section.css';
43
+ @import './display/css/skeleton.css';
36
44
  @import './display/css/table.css';
45
+ @import './display/css/map.css';
37
46
 
38
47
  @import './form/css/checkbox.css';
39
48
  @import './form/css/combo-box.css';
40
49
  @import './form/css/control.css';
41
50
  @import './form/css/csv-field.css';
42
51
  @import './form/css/date.css';
52
+ @import './form/css/date-range.css';
53
+ @import './form/css/drag-drop.css';
43
54
  @import './form/css/dropzone.css';
55
+ @import './form/css/editor.css';
44
56
  @import './form/css/field.css';
45
57
  @import './form/css/image-cropper.css';
46
58
  @import './form/css/password.css';
47
59
  @import './form/css/radio-group.css';
48
60
  @import './form/css/slider.css';
49
61
  @import './form/css/select.css';
62
+ @import './form/css/color-field.css';
50
63
  @import './form/css/textarea.css';
51
64
  @import './form/css/toggle.css';
52
65
 
@@ -60,10 +73,12 @@
60
73
  @import './navigation/css/nav-menu.css';
61
74
  @import './navigation/css/footer-nav.css';
62
75
  @import './navigation/css/footer-group.css';
76
+ @import './navigation/css/pagination.css';
63
77
  @import './navigation/css/side-nav.css';
64
78
  @import './navigation/css/tabs.css';
65
79
 
66
80
  @import './overlay/css/modal.css';
81
+ @import './overlay/css/command.css';
67
82
  @import './overlay/css/drawer.css';
68
83
  @import './overlay/css/dropdown.css';
69
84
  @import './overlay/css/hovercard.css';
@@ -71,68 +86,48 @@
71
86
  @import './overlay/css/tooltip.css';
72
87
 
73
88
  @theme {
74
- --color-primary: var(--primary, oklch(54.6% 0.245 262.881));
75
- /* blue-600 */
76
- --color-on-primary: var(--on-primary, oklch(93.2% 0.032 255.585));
77
- /* blue-100 */
89
+ --color-on-dark: var(--on-dark, oklch(97% 0.01 90));
90
+ --color-on-light: var(--on-light, oklch(25% 0.01 30));
78
91
 
79
- --color-secondary: var(--secondary, oklch(0.592 0.249 0.584));
80
- /* pink-600 */
81
- --color-on-secondary: var(--on-secondary, oklch(0.948 0.028 342.258));
82
- /* pink-100 */
92
+ --color-primary: var(--primary, oklch(75% 0.15 145));
93
+ --color-soft-primary: var(--soft-primary, oklch(95% 0.05 145));
94
+ --color-on-primary: var(--on-primary, var(--on-light));
83
95
 
84
- --color-muted: var(--muted, oklch(87.2% 0.01 258.338));
85
- /* gray-300 */
86
- --color-on-muted: var(--on-muted, oklch(27.8% 0.033 256.848));
87
- /* gray-700 */
88
-
89
- /* dark */
90
- /*--color-muted: var(--muted, oklch(37.3% 0.034 259.733)); /* gray-700 */
91
- /*--color-on-muted: var(--on-muted, oklch(87.2% 0.01 258.338)); /* gray-300 */
92
-
93
- --color-background: var(--background, oklch(98.5% 0.002 247.839));
94
- /* gray-50 */
95
- --color-on-background: var(--on-background, oklch(21% 0.034 264.665));
96
- /* gray-900 */
97
-
98
- /* dark */
99
- /*--color-background: var(--background, oklch(13% 0.028 261.692)); /* gray-950 */
100
- /*--color-on-background: var(--on-background, oklch(96.7% 0.003 264.542)); /* gray-100 */
96
+ --color-secondary: var(--secondary, oklch(28.42% 0.0467 259.99));
97
+ --color-soft-secondary: var(--soft-secondary, oklch(92% 0.005 30));
98
+ --color-on-secondary: var(--on-secondary, var(--on-dark));
101
99
 
102
- --color-surface: var(--surface, oklch(96.7% 0.003 264.542));
103
- /* gray-100 */
104
- --color-on-surface: var(--on-surface, oklch(27.9% 0.041 260.031));
105
- /* gray-800 */
100
+ --color-muted: var(--muted, oklch(87.2% 0.01 258.338));
101
+ --color-soft-muted: var(--soft-muted, oklch(92% 0.005 30));
102
+ --color-on-muted: var(--on-muted, var(--on-light));
106
103
 
107
- /* dark */
108
- /*--color-surface: var(--surface, oklch(21% 0.034 264.665)); /* gray-900 */
109
- /*--color-on-surface: var(--on-surface, oklch(92.8% 0.006 264.531)); /* gray-200 */
104
+ --color-background: var(--background, oklch(96% 0.005 85));
105
+ --color-on-background: var(--on-background, var(--on-light));
110
106
 
111
- --color-overlay: var(--overlay, oklch(0 0 0 / 60%));
112
- /* black/60 */
113
- --color-on-overlay: var(--on-overlay, oklch(1 0 0));
114
- /* white */
107
+ --color-surface: var(--surface, oklch(98% 0.003 85));
108
+ --color-on-surface: var(--on-surface, var(--on-light));
115
109
 
116
110
  --color-success: var(--success, oklch(62.7% 0.194 149.214));
117
- /* green-600 */
118
- --color-on-success: var(--on-success, oklch(96.2% 0.044 156.743));
119
- /* green-100 */
111
+ --color-soft-success: var(--soft-success, oklch(95% 0.06 149.214));
112
+ --color-on-success: var(--on-success, var(--on-dark));
120
113
 
121
114
  --color-info: var(--info, oklch(58.8% 0.158 241.966));
122
- /* sky-600 */
123
- --color-on-info: var(--on-info, oklch(95.1% 0.026 236.824));
124
- /* sky-100 */
115
+ --color-soft-info: var(--soft-info, oklch(95% 0.05 241.966));
116
+ --color-on-info: var(--on-info, var(--on-dark));
125
117
 
126
118
  --color-warning: var(--warning, oklch(68.1% 0.162 75.834));
127
- /* yellow-600 */
128
- --color-on-warning: var(--on-warning, oklch(97.3% 0.071 103.193));
129
- /* yellow-100 */
119
+ --color-soft-warning: var(--soft-warning, oklch(96% 0.05 75.834));
120
+ --color-on-warning: var(--on-warning, var(--on-dark));
130
121
 
131
122
  --color-danger: var(--danger, oklch(57.7% 0.245 27.325));
132
- /* red-600 */
133
- --color-on-danger: var(--on-danger, oklch(93.6% 0.032 17.717));
134
- /* red-100 */
123
+ --color-soft-danger: var(--soft-danger, oklch(95% 0.07 27.325));
124
+ --color-on-danger: var(--on-danger, var(--on-dark));
125
+
126
+ --color-overlay: var(--overlay, oklch(0 0 0 / 60%));
127
+ --color-on-overlay: var(--on-overlay, var(--on-dark));
135
128
 
129
+ --radius-avatar: calc(infinity * 1px);
130
+ --radius-box: 0.75rem;
136
131
  --radius-ui: 0.75rem;
137
132
  --scrollbar-size: 6px;
138
- }
133
+ }
package/dist/index.d.ts CHANGED
@@ -6,6 +6,8 @@ import LineChart from './charts/LineChart.svelte';
6
6
  import PieChart from './charts/PieChart.svelte';
7
7
  import Audio from './control/Audio.svelte';
8
8
  import Button from './control/Button.svelte';
9
+ import Image from './control/Image.svelte';
10
+ import Fab, { type FabAction } from './control/Fab.svelte';
9
11
  import IconButton from './control/IconButton.svelte';
10
12
  import Record from './control/Record.svelte';
11
13
  import ToggleTheme from './control/ToggleTheme.svelte';
@@ -18,25 +20,32 @@ import AvatarGroup from './display/AvatarGroup.svelte';
18
20
  import Badge from './display/Badge.svelte';
19
21
  import Carousel from './display/Carousel.svelte';
20
22
  import Card from './display/Card.svelte';
21
- import ChatBox from './display/ChatBox.svelte';
23
+ import ChatBox, { type PromptMessage, type PromptState } from './display/ChatBox.svelte';
22
24
  import Chip from './display/Chip.svelte';
23
25
  import Code from './display/Code.svelte';
24
26
  import Collapsible from './display/Collapsible.svelte';
27
+ import Countdown from './display/Countdown.svelte';
25
28
  import Divider from './display/Divider.svelte';
26
29
  import Empty from './display/Empty.svelte';
27
30
  import Icon, { type IconData } from './display/Icon.svelte';
28
31
  import Item from './display/Item.svelte';
29
32
  import Marquee from './display/Marquee.svelte';
30
33
  import Section from './display/Section.svelte';
34
+ import Skeleton from './display/Skeleton.svelte';
35
+ import Map, { type LatLng, type MapMarker, type RouteInfo } from './display/Map.svelte';
31
36
  import Table from './display/Table.svelte';
32
37
  import Checkbox from './form/Checkbox.svelte';
38
+ import ColorField from './form/ColorField.svelte';
33
39
  import ComboBox from './form/ComboBox.svelte';
34
40
  import CsvField from './form/CsvField.svelte';
35
41
  import DateField from './form/DateField.svelte';
42
+ import DateRange from './form/DateRange.svelte';
43
+ import DragDrop, { type DragDropItem, type DragDropGroup } from './form/DragDrop.svelte';
36
44
  import Dropzone from './form/Dropzone.svelte';
45
+ import Editor from './form/Editor.svelte';
37
46
  import ImageCropper from './form/ImageCropper.svelte';
38
47
  import TextField from './form/TextField.svelte';
39
- import PasswordStrength from './form/PasswordStrength.svelte';
48
+ import PasswordField from './form/PasswordField.svelte';
40
49
  import PinField from './form/PinField.svelte';
41
50
  import RadioGroup from './form/RadioGroup.svelte';
42
51
  import PhoneField from './form/PhoneField.svelte';
@@ -53,6 +62,7 @@ import NavMenu from './navigation/NavMenu.svelte';
53
62
  import BottomNav from './navigation/BottomNav.svelte';
54
63
  import FooterNav from './navigation/FooterNav.svelte';
55
64
  import FooterGroup from './navigation/FooterGroup.svelte';
65
+ import Pagination from './navigation/Pagination.svelte';
56
66
  import SideNav, { type SideNavItem, type SideNavSubItem } from './navigation/SideNav.svelte';
57
67
  import Tabs from './navigation/Tabs.svelte';
58
68
  import AlertDialog from './overlay/AlertDialog.svelte';
@@ -76,5 +86,5 @@ import { useAuth } from './hooks/use-auth.svelte.js';
76
86
  import { theme } from './stores/theme.svelte.js';
77
87
  import { useSearch } from './hooks/use-search.svelte.js';
78
88
  import { useChat } from './hooks/use-chat.svelte.js';
79
- export { AreaChart, ArcChart, BarChart, Candlestick, LineChart, PieChart, Alert, AlertDialog, AppBar, Accordion, Avatar, AvatarGroup, Audio, Badge, Button, BottomNav, Carousel, Card, ChatBox, Checkbox, Chip, Code, Collapsible, Command, ComboBox, CsvField, DateField, Drawer, Dropzone, Divider, Dropdown, Empty, Footer, FooterNav, FooterGroup, formatCurrency, formatDate, formatNumber, getWeekdays, i18n, Icon, IconButton, ImageCropper, Item, initLanguage, Modal, Marquee, NavMenu, PasswordStrength, PhoneField, PinField, plural, PopoverStack, Provider, RadioGroup, Record, Scaffold, Section, Select, setLanguage, Sidebar, SideNav, Slider, t, Table, Tabs, TextField, Textarea, theme, Toast, toast, Toggle, ToggleGroup, ToggleTheme, Tooltip, useAuth, useChat, useClipboard, useFetch, useForm, useLocalStorage, useScroll, useSearch, useTable, useWebSocket, Video };
80
- export type { IconData, SideNavItem, SideNavSubItem };
89
+ export { AreaChart, ArcChart, BarChart, Candlestick, LineChart, PieChart, Alert, AlertDialog, AppBar, Accordion, Avatar, AvatarGroup, Audio, Badge, Button, BottomNav, Carousel, Card, ChatBox, Checkbox, Chip, Code, Countdown, ColorField, Collapsible, Command, ComboBox, CsvField, DateField, DateRange, Drawer, Dropzone, Divider, DragDrop, Dropdown, Editor, Empty, Fab, Footer, FooterNav, FooterGroup, formatCurrency, formatDate, formatNumber, getWeekdays, i18n, Icon, IconButton, Image, ImageCropper, Item, initLanguage, Modal, Map, Marquee, NavMenu, Pagination, PasswordField, PhoneField, PinField, plural, PopoverStack, Provider, RadioGroup, Record, Scaffold, Section, Skeleton, Select, setLanguage, Sidebar, SideNav, Slider, t, Table, Tabs, TextField, Textarea, theme, Toast, toast, Toggle, ToggleGroup, ToggleTheme, Tooltip, useAuth, useChat, useClipboard, useFetch, useForm, useLocalStorage, useScroll, useSearch, useTable, useWebSocket, Video };
90
+ export type { IconData, SideNavItem, SideNavSubItem, DragDropItem, DragDropGroup, PromptMessage, PromptState, LatLng, MapMarker, RouteInfo, FabAction };
package/dist/index.js CHANGED
@@ -6,6 +6,8 @@ import LineChart from './charts/LineChart.svelte';
6
6
  import PieChart from './charts/PieChart.svelte';
7
7
  import Audio from './control/Audio.svelte';
8
8
  import Button from './control/Button.svelte';
9
+ import Image from './control/Image.svelte';
10
+ import Fab, {} from './control/Fab.svelte';
9
11
  import IconButton from './control/IconButton.svelte';
10
12
  import Record from './control/Record.svelte';
11
13
  import ToggleTheme from './control/ToggleTheme.svelte';
@@ -18,25 +20,32 @@ import AvatarGroup from './display/AvatarGroup.svelte';
18
20
  import Badge from './display/Badge.svelte';
19
21
  import Carousel from './display/Carousel.svelte';
20
22
  import Card from './display/Card.svelte';
21
- import ChatBox from './display/ChatBox.svelte';
23
+ import ChatBox, {} from './display/ChatBox.svelte';
22
24
  import Chip from './display/Chip.svelte';
23
25
  import Code from './display/Code.svelte';
24
26
  import Collapsible from './display/Collapsible.svelte';
27
+ import Countdown from './display/Countdown.svelte';
25
28
  import Divider from './display/Divider.svelte';
26
29
  import Empty from './display/Empty.svelte';
27
30
  import Icon, {} from './display/Icon.svelte';
28
31
  import Item from './display/Item.svelte';
29
32
  import Marquee from './display/Marquee.svelte';
30
33
  import Section from './display/Section.svelte';
34
+ import Skeleton from './display/Skeleton.svelte';
35
+ import Map, {} from './display/Map.svelte';
31
36
  import Table from './display/Table.svelte';
32
37
  import Checkbox from './form/Checkbox.svelte';
38
+ import ColorField from './form/ColorField.svelte';
33
39
  import ComboBox from './form/ComboBox.svelte';
34
40
  import CsvField from './form/CsvField.svelte';
35
41
  import DateField from './form/DateField.svelte';
42
+ import DateRange from './form/DateRange.svelte';
43
+ import DragDrop, {} from './form/DragDrop.svelte';
36
44
  import Dropzone from './form/Dropzone.svelte';
45
+ import Editor from './form/Editor.svelte';
37
46
  import ImageCropper from './form/ImageCropper.svelte';
38
47
  import TextField from './form/TextField.svelte';
39
- import PasswordStrength from './form/PasswordStrength.svelte';
48
+ import PasswordField from './form/PasswordField.svelte';
40
49
  import PinField from './form/PinField.svelte';
41
50
  import RadioGroup from './form/RadioGroup.svelte';
42
51
  import PhoneField from './form/PhoneField.svelte';
@@ -53,6 +62,7 @@ import NavMenu from './navigation/NavMenu.svelte';
53
62
  import BottomNav from './navigation/BottomNav.svelte';
54
63
  import FooterNav from './navigation/FooterNav.svelte';
55
64
  import FooterGroup from './navigation/FooterGroup.svelte';
65
+ import Pagination from './navigation/Pagination.svelte';
56
66
  import SideNav, {} from './navigation/SideNav.svelte';
57
67
  import Tabs from './navigation/Tabs.svelte';
58
68
  import AlertDialog from './overlay/AlertDialog.svelte';
@@ -76,4 +86,4 @@ import { useAuth } from './hooks/use-auth.svelte.js';
76
86
  import { theme } from './stores/theme.svelte.js';
77
87
  import { useSearch } from './hooks/use-search.svelte.js';
78
88
  import { useChat } from './hooks/use-chat.svelte.js';
79
- export { AreaChart, ArcChart, BarChart, Candlestick, LineChart, PieChart, Alert, AlertDialog, AppBar, Accordion, Avatar, AvatarGroup, Audio, Badge, Button, BottomNav, Carousel, Card, ChatBox, Checkbox, Chip, Code, Collapsible, Command, ComboBox, CsvField, DateField, Drawer, Dropzone, Divider, Dropdown, Empty, Footer, FooterNav, FooterGroup, formatCurrency, formatDate, formatNumber, getWeekdays, i18n, Icon, IconButton, ImageCropper, Item, initLanguage, Modal, Marquee, NavMenu, PasswordStrength, PhoneField, PinField, plural, PopoverStack, Provider, RadioGroup, Record, Scaffold, Section, Select, setLanguage, Sidebar, SideNav, Slider, t, Table, Tabs, TextField, Textarea, theme, Toast, toast, Toggle, ToggleGroup, ToggleTheme, Tooltip, useAuth, useChat, useClipboard, useFetch, useForm, useLocalStorage, useScroll, useSearch, useTable, useWebSocket, Video };
89
+ export { AreaChart, ArcChart, BarChart, Candlestick, LineChart, PieChart, Alert, AlertDialog, AppBar, Accordion, Avatar, AvatarGroup, Audio, Badge, Button, BottomNav, Carousel, Card, ChatBox, Checkbox, Chip, Code, Countdown, ColorField, Collapsible, Command, ComboBox, CsvField, DateField, DateRange, Drawer, Dropzone, Divider, DragDrop, Dropdown, Editor, Empty, Fab, Footer, FooterNav, FooterGroup, formatCurrency, formatDate, formatNumber, getWeekdays, i18n, Icon, IconButton, Image, ImageCropper, Item, initLanguage, Modal, Map, Marquee, NavMenu, Pagination, PasswordField, PhoneField, PinField, plural, PopoverStack, Provider, RadioGroup, Record, Scaffold, Section, Skeleton, Select, setLanguage, Sidebar, SideNav, Slider, t, Table, Tabs, TextField, Textarea, theme, Toast, toast, Toggle, ToggleGroup, ToggleTheme, Tooltip, useAuth, useChat, useClipboard, useFetch, useForm, useLocalStorage, useScroll, useSearch, useTable, useWebSocket, Video };
@@ -12,15 +12,7 @@
12
12
  startClass?: string;
13
13
  centerClass?: string;
14
14
  endClass?: string;
15
- isBlurred?: boolean;
16
- isBordered?: boolean;
17
- borderOnScrollOnly?: boolean;
18
- hideOnScroll?: boolean;
19
- solidOnScroll?: boolean;
20
- isSticky?: boolean;
21
- isFloating?: boolean;
22
- isBoxed?: boolean;
23
- variant?:
15
+ color?:
24
16
  | 'primary'
25
17
  | 'secondary'
26
18
  | 'muted'
@@ -29,7 +21,16 @@
29
21
  | 'warning'
30
22
  | 'danger'
31
23
  | 'surface'
32
- | 'ghost';
24
+ | 'default';
25
+ variant?: 'solid' | 'soft';
26
+ isBlurred?: boolean;
27
+ isBordered?: boolean;
28
+ borderOnScrollOnly?: boolean;
29
+ hideOnScroll?: boolean;
30
+ solidOnScroll?: boolean;
31
+ isSticky?: boolean;
32
+ isFloating?: boolean;
33
+ isBoxed?: boolean;
33
34
  };
34
35
 
35
36
  const {
@@ -41,12 +42,13 @@
41
42
  startClass,
42
43
  centerClass,
43
44
  endClass,
45
+ color = 'default',
46
+ variant = 'soft',
44
47
  isBordered,
45
48
  borderOnScrollOnly = false,
46
49
  isBlurred,
47
50
  isSticky,
48
51
  isBoxed,
49
- variant = 'ghost',
50
52
  hideOnScroll,
51
53
  solidOnScroll = false,
52
54
  isFloating = false
@@ -59,7 +61,7 @@
59
61
 
60
62
  const scroll = useScroll();
61
63
 
62
- const variantClasses = {
64
+ const colors = {
63
65
  primary: 'is-primary',
64
66
  secondary: 'is-secondary',
65
67
  muted: 'is-muted',
@@ -68,7 +70,12 @@
68
70
  warning: 'is-warning',
69
71
  danger: 'is-danger',
70
72
  surface: 'is-surface',
71
- ghost: 'is-ghost'
73
+ default: 'is-default'
74
+ };
75
+
76
+ const variants = {
77
+ solid: 'is-solid',
78
+ soft: 'is-soft'
72
79
  };
73
80
 
74
81
  $effect(() => {
@@ -108,7 +115,8 @@
108
115
  bind:this={headerElement}
109
116
  class={cn(
110
117
  'appbar',
111
- variantClasses[variant],
118
+ colors[color],
119
+ variants[variant],
112
120
  shouldShowBorder && 'is-bordered',
113
121
  shouldBlur && 'is-blurred',
114
122
  isHidden && 'is-hidden',
@@ -8,6 +8,8 @@ type Props = {
8
8
  startClass?: string;
9
9
  centerClass?: string;
10
10
  endClass?: string;
11
+ color?: 'primary' | 'secondary' | 'muted' | 'success' | 'info' | 'warning' | 'danger' | 'surface' | 'default';
12
+ variant?: 'solid' | 'soft';
11
13
  isBlurred?: boolean;
12
14
  isBordered?: boolean;
13
15
  borderOnScrollOnly?: boolean;
@@ -16,7 +18,6 @@ type Props = {
16
18
  isSticky?: boolean;
17
19
  isFloating?: boolean;
18
20
  isBoxed?: boolean;
19
- variant?: 'primary' | 'secondary' | 'muted' | 'success' | 'info' | 'warning' | 'danger' | 'surface' | 'ghost';
20
21
  };
21
22
  declare const AppBar: import("svelte").Component<Props, {}, "">;
22
23
  type AppBar = ReturnType<typeof AppBar>;
@@ -12,11 +12,7 @@
12
12
  startClass?: string;
13
13
  centerClass?: string;
14
14
  endClass?: string;
15
- isBlurred?: boolean;
16
- isBordered?: boolean;
17
- isBoxed?: boolean;
18
- hideOnScroll?: boolean;
19
- variant?:
15
+ color?:
20
16
  | 'primary'
21
17
  | 'secondary'
22
18
  | 'muted'
@@ -25,7 +21,12 @@
25
21
  | 'warning'
26
22
  | 'danger'
27
23
  | 'surface'
28
- | 'ghost';
24
+ | 'default';
25
+ variant?: 'solid' | 'soft';
26
+ isBlurred?: boolean;
27
+ isBordered?: boolean;
28
+ isBoxed?: boolean;
29
+ hideOnScroll?: boolean;
29
30
  };
30
31
 
31
32
  const {
@@ -37,11 +38,12 @@
37
38
  startClass,
38
39
  centerClass,
39
40
  endClass,
41
+ color = 'default',
42
+ variant = 'soft',
40
43
  isBordered,
41
44
  isBlurred,
42
45
  isBoxed,
43
- hideOnScroll,
44
- variant = 'ghost'
46
+ hideOnScroll
45
47
  }: Props = $props();
46
48
 
47
49
  let footerElement = $state<HTMLElement | null>(null);
@@ -51,7 +53,7 @@
51
53
 
52
54
  const scroll = useScroll();
53
55
 
54
- const variantClasses = {
56
+ const colors = {
55
57
  primary: 'is-primary',
56
58
  secondary: 'is-secondary',
57
59
  muted: 'is-muted',
@@ -60,7 +62,12 @@
60
62
  warning: 'is-warning',
61
63
  danger: 'is-danger',
62
64
  surface: 'is-surface',
63
- ghost: 'is-ghost'
65
+ default: 'is-default'
66
+ };
67
+
68
+ const variants = {
69
+ solid: 'is-solid',
70
+ soft: 'is-soft'
64
71
  };
65
72
 
66
73
  $effect(() => {
@@ -93,7 +100,8 @@
93
100
  bind:this={footerElement}
94
101
  class={cn(
95
102
  'footer',
96
- variantClasses[variant],
103
+ colors[color],
104
+ variants[variant],
97
105
  isBordered && 'is-bordered',
98
106
  shouldBlur && 'is-blurred',
99
107
  isHidden && 'is-hidden',
@@ -8,11 +8,12 @@ type Props = {
8
8
  startClass?: string;
9
9
  centerClass?: string;
10
10
  endClass?: string;
11
+ color?: 'primary' | 'secondary' | 'muted' | 'success' | 'info' | 'warning' | 'danger' | 'surface' | 'default';
12
+ variant?: 'solid' | 'soft';
11
13
  isBlurred?: boolean;
12
14
  isBordered?: boolean;
13
15
  isBoxed?: boolean;
14
16
  hideOnScroll?: boolean;
15
- variant?: 'primary' | 'secondary' | 'muted' | 'success' | 'info' | 'warning' | 'danger' | 'surface' | 'ghost';
16
17
  };
17
18
  declare const Footer: import("svelte").Component<Props, {}, "">;
18
19
  type Footer = ReturnType<typeof Footer>;
@@ -5,22 +5,45 @@
5
5
 
6
6
  type Props = {
7
7
  children: Snippet;
8
- toastSolid?: boolean;
8
+ toastVariant?: 'solid' | 'soft';
9
9
  toastIcon?: boolean;
10
10
  toastPosition?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
11
+ themeTransition?: 'circle' | 'slide' | 'fade' | 'vertical' | 'none';
12
+ pageTransition?: 'fade' | 'slide' | 'scale' | 'none';
11
13
  };
12
14
 
13
- const { children, toastSolid, toastPosition, toastIcon }: Props = $props();
15
+ const {
16
+ children,
17
+ toastVariant,
18
+ toastPosition,
19
+ toastIcon,
20
+ themeTransition = 'circle',
21
+ pageTransition = 'fade'
22
+ }: Props = $props();
14
23
 
15
24
  onNavigate((navigation) => {
25
+ if (pageTransition === 'none') return;
16
26
  if (!document.startViewTransition) return;
17
27
  return new Promise((resolve) => {
18
- document.startViewTransition(async () => {
28
+ document.documentElement.classList.add('page-transitioning');
29
+ document.documentElement.setAttribute('data-page-transition', pageTransition);
30
+
31
+ const transition = document.startViewTransition(async () => {
19
32
  resolve();
20
33
  await navigation.complete;
21
34
  });
35
+
36
+ transition.finished.finally(() => {
37
+ document.documentElement.classList.remove('page-transitioning');
38
+ document.documentElement.removeAttribute('data-page-transition');
39
+ });
22
40
  });
23
41
  });
42
+ $effect(() => {
43
+ if (typeof document !== 'undefined') {
44
+ document.documentElement.setAttribute('data-theme-transition', themeTransition);
45
+ }
46
+ });
24
47
  </script>
25
48
 
26
49
  <svelte:head>
@@ -31,22 +54,22 @@
31
54
  <script>
32
55
  let themeState = 'light';
33
56
 
34
- if (typeof window !== 'undefined' && localStorage) {
57
+ if (typeof window !== 'undefined' && typeof localStorage !== 'undefined') {
35
58
  const storedTheme = localStorage.getItem('theme-preference');
36
59
  if (storedTheme) {
37
60
  themeState = storedTheme;
38
61
  } else {
39
62
  const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
40
- themeState = prefersDark ? '' : 'light';
63
+ themeState = prefersDark ? 'dark' : 'light';
41
64
  localStorage.setItem('theme-preference', themeState);
42
65
  }
43
- }
44
66
 
45
- if (themeState === 'dark') {
46
- document.documentElement.classList.add('dark');
67
+ if (themeState === 'dark' && typeof document !== 'undefined') {
68
+ document.documentElement.classList.add('dark');
69
+ }
47
70
  }
48
71
  </script>
49
72
  </svelte:head>
50
73
 
51
74
  {@render children()}
52
- <Toast position={toastPosition} showIcon={toastIcon} isSolid={toastSolid} />
75
+ <Toast position={toastPosition} showIcon={toastIcon} variant={toastVariant} />
@@ -1,9 +1,11 @@
1
1
  import type { Snippet } from 'svelte';
2
2
  type Props = {
3
3
  children: Snippet;
4
- toastSolid?: boolean;
4
+ toastVariant?: 'solid' | 'soft';
5
5
  toastIcon?: boolean;
6
6
  toastPosition?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
7
+ themeTransition?: 'circle' | 'slide' | 'fade' | 'vertical' | 'none';
8
+ pageTransition?: 'fade' | 'slide' | 'scale' | 'none';
7
9
  };
8
10
  declare const Provider: import("svelte").Component<Props, {}, "">;
9
11
  type Provider = ReturnType<typeof Provider>;
@@ -6,11 +6,7 @@
6
6
  children: Snippet;
7
7
  header?: Snippet;
8
8
  footer?: Snippet;
9
- rootClass?: string;
10
- contentClass?: string;
11
- headerClass?: string;
12
- footerClass?: string;
13
- variant?:
9
+ color?:
14
10
  | 'primary'
15
11
  | 'secondary'
16
12
  | 'muted'
@@ -19,7 +15,12 @@
19
15
  | 'warning'
20
16
  | 'danger'
21
17
  | 'surface'
22
- | 'ghost';
18
+ | 'background';
19
+ variant?: 'solid' | 'soft' | 'outlined' | 'ghost';
20
+ rootClass?: string;
21
+ contentClass?: string;
22
+ headerClass?: string;
23
+ footerClass?: string;
23
24
  };
24
25
 
25
26
  const {
@@ -30,10 +31,11 @@
30
31
  contentClass,
31
32
  headerClass,
32
33
  footerClass,
34
+ color = 'surface',
33
35
  variant = 'ghost'
34
36
  }: Props = $props();
35
37
 
36
- const variantClasses = {
38
+ const colors = {
37
39
  primary: 'is-primary',
38
40
  secondary: 'is-secondary',
39
41
  muted: 'is-muted',
@@ -42,11 +44,18 @@
42
44
  warning: 'is-warning',
43
45
  danger: 'is-danger',
44
46
  surface: 'is-surface',
47
+ background: 'is-background'
48
+ };
49
+
50
+ const variants = {
51
+ solid: 'is-solid',
52
+ soft: 'is-soft',
53
+ outlined: 'is-outlined',
45
54
  ghost: 'is-ghost'
46
55
  };
47
56
  </script>
48
57
 
49
- <aside class={cn('sidebar', variantClasses[variant], rootClass)}>
58
+ <aside class={cn('sidebar', colors[color], variants[variant], rootClass)}>
50
59
  {#if header}
51
60
  <div class={cn('sidebar-header', headerClass)}>
52
61
  {@render header()}
@@ -3,11 +3,12 @@ type Props = {
3
3
  children: Snippet;
4
4
  header?: Snippet;
5
5
  footer?: Snippet;
6
+ color?: 'primary' | 'secondary' | 'muted' | 'success' | 'info' | 'warning' | 'danger' | 'surface' | 'background';
7
+ variant?: 'solid' | 'soft' | 'outlined' | 'ghost';
6
8
  rootClass?: string;
7
9
  contentClass?: string;
8
10
  headerClass?: string;
9
11
  footerClass?: string;
10
- variant?: 'primary' | 'secondary' | 'muted' | 'success' | 'info' | 'warning' | 'danger' | 'surface' | 'ghost';
11
12
  };
12
13
  declare const Sidebar: import("svelte").Component<Props, {}, "">;
13
14
  type Sidebar = ReturnType<typeof Sidebar>;