create-tauri-ui 0.3.2 → 0.3.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 (245) hide show
  1. package/index.js +1 -1
  2. package/package.json +6 -6
  3. package/templates/.shared/.github/workflows/release.yml +112 -112
  4. package/templates/.shared/src-tauri/Cargo.lock +3835 -3835
  5. package/templates/.shared/src-tauri/Cargo.toml +4 -4
  6. package/templates/.shared/src-tauri/build.rs +3 -3
  7. package/templates/.shared/src-tauri/src/main.rs +22 -22
  8. package/templates/next/.github/workflows/release.yml +108 -108
  9. package/templates/next/.vscode/extensions.json +3 -3
  10. package/templates/next/README.md +95 -95
  11. package/templates/next/next-env.d.ts +5 -5
  12. package/templates/next/package.json +87 -87
  13. package/templates/next/pnpm-lock.yaml +4911 -4911
  14. package/templates/next/postcss.config.js +6 -6
  15. package/templates/next/prettier.config.js +35 -35
  16. package/templates/next/src/app/examples/layout.tsx +7 -7
  17. package/templates/next/src/app/page.tsx +5 -5
  18. package/templates/next/src/components/examples-nav.tsx +70 -70
  19. package/templates/next/src/components/greeting.tsx +21 -21
  20. package/templates/next/src/components/mode-toggle.tsx +43 -43
  21. package/templates/next/src/components/page-header.tsx +52 -52
  22. package/templates/next/src/components/style-switcher.tsx +19 -19
  23. package/templates/next/src/components/tailwind-indicator.tsx +18 -18
  24. package/templates/next/src/components/theme-provider.tsx +9 -9
  25. package/templates/next/src/components/ui/accordion.tsx +60 -60
  26. package/templates/next/src/components/ui/alert-dialog.tsx +145 -145
  27. package/templates/next/src/components/ui/alert.tsx +59 -59
  28. package/templates/next/src/components/ui/aspect-ratio.tsx +7 -7
  29. package/templates/next/src/components/ui/avatar.tsx +50 -50
  30. package/templates/next/src/components/ui/badge.tsx +36 -36
  31. package/templates/next/src/components/ui/button.tsx +56 -56
  32. package/templates/next/src/components/ui/calendar.tsx +64 -64
  33. package/templates/next/src/components/ui/card.tsx +79 -79
  34. package/templates/next/src/components/ui/checkbox.tsx +30 -30
  35. package/templates/next/src/components/ui/collapsible.tsx +11 -11
  36. package/templates/next/src/components/ui/command.tsx +155 -155
  37. package/templates/next/src/components/ui/context-menu.tsx +200 -200
  38. package/templates/next/src/components/ui/dialog.tsx +123 -123
  39. package/templates/next/src/components/ui/dropdown-menu.tsx +200 -200
  40. package/templates/next/src/components/ui/form.tsx +176 -176
  41. package/templates/next/src/components/ui/hover-card.tsx +29 -29
  42. package/templates/next/src/components/ui/input.tsx +25 -25
  43. package/templates/next/src/components/ui/label.tsx +26 -26
  44. package/templates/next/src/components/ui/menubar.tsx +236 -236
  45. package/templates/next/src/components/ui/navigation-menu.tsx +128 -128
  46. package/templates/next/src/components/ui/popover.tsx +31 -31
  47. package/templates/next/src/components/ui/progress.tsx +28 -28
  48. package/templates/next/src/components/ui/radio-group.tsx +44 -44
  49. package/templates/next/src/components/ui/scroll-area.tsx +48 -48
  50. package/templates/next/src/components/ui/select.tsx +121 -121
  51. package/templates/next/src/components/ui/separator.tsx +31 -31
  52. package/templates/next/src/components/ui/sheet.tsx +144 -144
  53. package/templates/next/src/components/ui/skeleton.tsx +15 -15
  54. package/templates/next/src/components/ui/slider.tsx +28 -28
  55. package/templates/next/src/components/ui/switch.tsx +29 -29
  56. package/templates/next/src/components/ui/table.tsx +114 -114
  57. package/templates/next/src/components/ui/tabs.tsx +55 -55
  58. package/templates/next/src/components/ui/textarea.tsx +24 -24
  59. package/templates/next/src/components/ui/toast.tsx +127 -127
  60. package/templates/next/src/components/ui/toaster.tsx +35 -35
  61. package/templates/next/src/components/ui/toggle.tsx +45 -45
  62. package/templates/next/src/components/ui/tooltip.tsx +30 -30
  63. package/templates/next/src/components/ui/use-toast.ts +192 -192
  64. package/templates/next/src/data/albums.ts +71 -71
  65. package/templates/next/src/data/playlists.ts +16 -16
  66. package/templates/next/src-tauri/Cargo.lock +3835 -3835
  67. package/templates/next/src-tauri/Cargo.toml +39 -39
  68. package/templates/next/src-tauri/build.rs +3 -3
  69. package/templates/sveltekit/.github/workflows/release.yml +108 -108
  70. package/templates/sveltekit/.prettierignore +13 -13
  71. package/templates/sveltekit/.prettierrc +8 -8
  72. package/templates/sveltekit/README.md +1 -1
  73. package/templates/sveltekit/package.json +85 -85
  74. package/templates/sveltekit/pnpm-lock.yaml +4177 -4177
  75. package/templates/sveltekit/postcss.config.cjs +13 -13
  76. package/templates/sveltekit/src/app.d.ts +18 -18
  77. package/templates/sveltekit/src/app.html +16 -16
  78. package/templates/sveltekit/src/index.test.ts +7 -7
  79. package/templates/sveltekit/src/lib/components/docs/TailwindIndicator.svelte +10 -10
  80. package/templates/sveltekit/src/lib/components/docs/charts/Bar.svelte +152 -152
  81. package/templates/sveltekit/src/lib/components/docs/dashboard/DashboardPage.svelte +108 -108
  82. package/templates/sveltekit/src/lib/components/docs/dashboard/MainNav.svelte +31 -31
  83. package/templates/sveltekit/src/lib/components/docs/dashboard/Overview.svelte +5 -5
  84. package/templates/sveltekit/src/lib/components/docs/dashboard/RecentSales.svelte +61 -61
  85. package/templates/sveltekit/src/lib/components/docs/dashboard/Search.svelte +7 -7
  86. package/templates/sveltekit/src/lib/components/docs/dashboard/index.ts +1 -1
  87. package/templates/sveltekit/src/lib/components/docs/examples-nav/ExampleCodeLink.svelte +19 -19
  88. package/templates/sveltekit/src/lib/components/docs/examples-nav/ExamplesNav.svelte +27 -27
  89. package/templates/sveltekit/src/lib/components/docs/examples-nav/index.ts +2 -2
  90. package/templates/sveltekit/src/lib/components/docs/icons/Apple.svelte +12 -12
  91. package/templates/sveltekit/src/lib/components/docs/icons/Aria.svelte +11 -11
  92. package/templates/sveltekit/src/lib/components/docs/icons/GitHub.svelte +12 -12
  93. package/templates/sveltekit/src/lib/components/docs/icons/Google.svelte +12 -12
  94. package/templates/sveltekit/src/lib/components/docs/icons/Logo.svelte +17 -17
  95. package/templates/sveltekit/src/lib/components/docs/icons/Minimize.svelte +12 -12
  96. package/templates/sveltekit/src/lib/components/docs/icons/Npm.svelte +12 -12
  97. package/templates/sveltekit/src/lib/components/docs/icons/PayPal.svelte +12 -12
  98. package/templates/sveltekit/src/lib/components/docs/icons/Pnpm.svelte +12 -12
  99. package/templates/sveltekit/src/lib/components/docs/icons/Radix.svelte +14 -14
  100. package/templates/sveltekit/src/lib/components/docs/icons/RadixSvelte.svelte +14 -14
  101. package/templates/sveltekit/src/lib/components/docs/icons/Tailwind.svelte +12 -12
  102. package/templates/sveltekit/src/lib/components/docs/icons/Yarn.svelte +12 -12
  103. package/templates/sveltekit/src/lib/components/docs/icons/index.ts +78 -78
  104. package/templates/sveltekit/src/lib/components/docs/index.ts +6 -6
  105. package/templates/sveltekit/src/lib/components/docs/light-switch/LightSwitch.svelte +75 -75
  106. package/templates/sveltekit/src/lib/components/docs/light-switch/index.ts +1 -1
  107. package/templates/sveltekit/src/lib/components/docs/light-switch/light-switch.ts +87 -87
  108. package/templates/sveltekit/src/lib/components/docs/light-switch/local-storage-store.ts +81 -81
  109. package/templates/sveltekit/src/lib/components/ui/accordion/Accordion.svelte +11 -11
  110. package/templates/sveltekit/src/lib/components/ui/accordion/AccordionContent.svelte +19 -19
  111. package/templates/sveltekit/src/lib/components/ui/accordion/AccordionItem.svelte +13 -13
  112. package/templates/sveltekit/src/lib/components/ui/accordion/AccordionTrigger.svelte +21 -21
  113. package/templates/sveltekit/src/lib/components/ui/accordion/index.ts +4 -4
  114. package/templates/sveltekit/src/lib/components/ui/alert/Alert.svelte +29 -29
  115. package/templates/sveltekit/src/lib/components/ui/alert/AlertDescription.svelte +10 -10
  116. package/templates/sveltekit/src/lib/components/ui/alert/AlertTitle.svelte +15 -15
  117. package/templates/sveltekit/src/lib/components/ui/alert/index.ts +3 -3
  118. package/templates/sveltekit/src/lib/components/ui/alert-dialog/AlertDialogAction.svelte +12 -12
  119. package/templates/sveltekit/src/lib/components/ui/alert-dialog/AlertDialogCancel.svelte +15 -15
  120. package/templates/sveltekit/src/lib/components/ui/alert-dialog/AlertDialogContent.svelte +22 -22
  121. package/templates/sveltekit/src/lib/components/ui/alert-dialog/AlertDialogDescription.svelte +14 -14
  122. package/templates/sveltekit/src/lib/components/ui/alert-dialog/AlertDialogFooter.svelte +13 -13
  123. package/templates/sveltekit/src/lib/components/ui/alert-dialog/AlertDialogHeader.svelte +10 -10
  124. package/templates/sveltekit/src/lib/components/ui/alert-dialog/AlertDialogOverlay.svelte +15 -15
  125. package/templates/sveltekit/src/lib/components/ui/alert-dialog/AlertDialogPortal.svelte +9 -9
  126. package/templates/sveltekit/src/lib/components/ui/alert-dialog/AlertDialogTitle.svelte +11 -11
  127. package/templates/sveltekit/src/lib/components/ui/alert-dialog/index.ts +12 -12
  128. package/templates/sveltekit/src/lib/components/ui/aspect-ratio/AspectRatio.svelte +13 -13
  129. package/templates/sveltekit/src/lib/components/ui/aspect-ratio/index.ts +1 -1
  130. package/templates/sveltekit/src/lib/components/ui/avatar/Avatar.svelte +14 -14
  131. package/templates/sveltekit/src/lib/components/ui/avatar/AvatarFallback.svelte +14 -14
  132. package/templates/sveltekit/src/lib/components/ui/avatar/AvatarImage.svelte +17 -17
  133. package/templates/sveltekit/src/lib/components/ui/avatar/index.ts +3 -3
  134. package/templates/sveltekit/src/lib/components/ui/badge/Badge.svelte +39 -39
  135. package/templates/sveltekit/src/lib/components/ui/badge/index.ts +21 -21
  136. package/templates/sveltekit/src/lib/components/ui/button/Button.svelte +47 -47
  137. package/templates/sveltekit/src/lib/components/ui/button/index.ts +28 -28
  138. package/templates/sveltekit/src/lib/components/ui/card/Card.svelte +18 -18
  139. package/templates/sveltekit/src/lib/components/ui/card/CardContent.svelte +10 -10
  140. package/templates/sveltekit/src/lib/components/ui/card/CardDescription.svelte +10 -10
  141. package/templates/sveltekit/src/lib/components/ui/card/CardFooter.svelte +10 -10
  142. package/templates/sveltekit/src/lib/components/ui/card/CardHeader.svelte +10 -10
  143. package/templates/sveltekit/src/lib/components/ui/card/CardTitle.svelte +16 -16
  144. package/templates/sveltekit/src/lib/components/ui/card/index.ts +6 -6
  145. package/templates/sveltekit/src/lib/components/ui/checkbox/Checkbox.svelte +23 -23
  146. package/templates/sveltekit/src/lib/components/ui/checkbox/index.ts +1 -1
  147. package/templates/sveltekit/src/lib/components/ui/collapsible/index.ts +7 -7
  148. package/templates/sveltekit/src/lib/components/ui/dialog/DialogContent.svelte +29 -29
  149. package/templates/sveltekit/src/lib/components/ui/dialog/DialogDescription.svelte +14 -14
  150. package/templates/sveltekit/src/lib/components/ui/dialog/DialogFooter.svelte +13 -13
  151. package/templates/sveltekit/src/lib/components/ui/dialog/DialogHeader.svelte +10 -10
  152. package/templates/sveltekit/src/lib/components/ui/dialog/DialogOverlay.svelte +15 -15
  153. package/templates/sveltekit/src/lib/components/ui/dialog/DialogPortal.svelte +13 -13
  154. package/templates/sveltekit/src/lib/components/ui/dialog/DialogTitle.svelte +14 -14
  155. package/templates/sveltekit/src/lib/components/ui/dialog/index.ts +12 -12
  156. package/templates/sveltekit/src/lib/components/ui/hover-card/HoverCardContent.svelte +24 -24
  157. package/templates/sveltekit/src/lib/components/ui/hover-card/index.ts +6 -6
  158. package/templates/sveltekit/src/lib/components/ui/input/Input.svelte +30 -30
  159. package/templates/sveltekit/src/lib/components/ui/input/index.ts +1 -1
  160. package/templates/sveltekit/src/lib/components/ui/label/Label.svelte +16 -16
  161. package/templates/sveltekit/src/lib/components/ui/label/index.ts +1 -1
  162. package/templates/sveltekit/src/lib/components/ui/progress/Progress.svelte +22 -22
  163. package/templates/sveltekit/src/lib/components/ui/progress/index.ts +1 -1
  164. package/templates/sveltekit/src/lib/components/ui/radio-group/RadioGroup.svelte +13 -13
  165. package/templates/sveltekit/src/lib/components/ui/radio-group/RadioGroupItem.svelte +23 -23
  166. package/templates/sveltekit/src/lib/components/ui/radio-group/index.ts +2 -2
  167. package/templates/sveltekit/src/lib/components/ui/select/SelectContent.svelte +26 -26
  168. package/templates/sveltekit/src/lib/components/ui/select/SelectItem.svelte +29 -29
  169. package/templates/sveltekit/src/lib/components/ui/select/SelectLabel.svelte +14 -14
  170. package/templates/sveltekit/src/lib/components/ui/select/SelectSeparator.svelte +9 -9
  171. package/templates/sveltekit/src/lib/components/ui/select/SelectTrigger.svelte +21 -21
  172. package/templates/sveltekit/src/lib/components/ui/select/index.ts +10 -10
  173. package/templates/sveltekit/src/lib/components/ui/separator/Separator.svelte +22 -22
  174. package/templates/sveltekit/src/lib/components/ui/separator/index.ts +1 -1
  175. package/templates/sveltekit/src/lib/components/ui/sheet/SheetContent.svelte +27 -27
  176. package/templates/sveltekit/src/lib/components/ui/sheet/SheetDescription.svelte +11 -11
  177. package/templates/sveltekit/src/lib/components/ui/sheet/SheetFooter.svelte +13 -13
  178. package/templates/sveltekit/src/lib/components/ui/sheet/SheetHeader.svelte +10 -10
  179. package/templates/sveltekit/src/lib/components/ui/sheet/SheetOverlay.svelte +15 -15
  180. package/templates/sveltekit/src/lib/components/ui/sheet/SheetPortal.svelte +28 -28
  181. package/templates/sveltekit/src/lib/components/ui/sheet/SheetTitle.svelte +14 -14
  182. package/templates/sveltekit/src/lib/components/ui/sheet/index.ts +102 -102
  183. package/templates/sveltekit/src/lib/components/ui/skeleton/Skeleton.svelte +8 -8
  184. package/templates/sveltekit/src/lib/components/ui/skeleton/index.ts +1 -1
  185. package/templates/sveltekit/src/lib/components/ui/slider/Slider.svelte +22 -22
  186. package/templates/sveltekit/src/lib/components/ui/slider/index.ts +1 -1
  187. package/templates/sveltekit/src/lib/components/ui/switch/Switch.svelte +32 -32
  188. package/templates/sveltekit/src/lib/components/ui/switch/index.ts +1 -1
  189. package/templates/sveltekit/src/lib/components/ui/table/Table.svelte +12 -12
  190. package/templates/sveltekit/src/lib/components/ui/table/TableBody.svelte +10 -10
  191. package/templates/sveltekit/src/lib/components/ui/table/TableCaption.svelte +10 -10
  192. package/templates/sveltekit/src/lib/components/ui/table/TableCell.svelte +10 -10
  193. package/templates/sveltekit/src/lib/components/ui/table/TableFooter.svelte +10 -10
  194. package/templates/sveltekit/src/lib/components/ui/table/TableHead.svelte +16 -16
  195. package/templates/sveltekit/src/lib/components/ui/table/TableHeader.svelte +10 -10
  196. package/templates/sveltekit/src/lib/components/ui/table/TableRow.svelte +16 -16
  197. package/templates/sveltekit/src/lib/components/ui/table/index.ts +8 -8
  198. package/templates/sveltekit/src/lib/components/ui/tabs/TabsContent.svelte +20 -20
  199. package/templates/sveltekit/src/lib/components/ui/tabs/TabsList.svelte +17 -17
  200. package/templates/sveltekit/src/lib/components/ui/tabs/TabsTrigger.svelte +20 -20
  201. package/templates/sveltekit/src/lib/components/ui/tabs/index.ts +7 -7
  202. package/templates/sveltekit/src/lib/components/ui/textarea/Textarea.svelte +30 -30
  203. package/templates/sveltekit/src/lib/components/ui/textarea/index.ts +1 -1
  204. package/templates/sveltekit/src/lib/components/ui/toggle/Toggle.svelte +44 -44
  205. package/templates/sveltekit/src/lib/components/ui/toggle/index.ts +1 -1
  206. package/templates/sveltekit/src/lib/components/ui/tooltip/TooltipContent.svelte +22 -22
  207. package/templates/sveltekit/src/lib/components/ui/tooltip/index.ts +6 -6
  208. package/templates/sveltekit/src/lib/config/components.ts +306 -306
  209. package/templates/sveltekit/src/lib/config/docs.ts +356 -356
  210. package/templates/sveltekit/src/lib/config/site.ts +15 -15
  211. package/templates/sveltekit/src/lib/types/docs.ts +50 -50
  212. package/templates/sveltekit/src/lib/types/nav.ts +18 -18
  213. package/templates/sveltekit/src/lib/utils.ts +75 -75
  214. package/templates/sveltekit/src/routes/+layout.svelte +48 -48
  215. package/templates/sveltekit/src/routes/+page.ts +6 -6
  216. package/templates/sveltekit/src/routes/authentication/+page.svelte +57 -57
  217. package/templates/sveltekit/src/routes/authentication/+page.ts +7 -7
  218. package/templates/sveltekit/src/routes/authentication/UserAuthForm.svelte +61 -61
  219. package/templates/sveltekit/src/routes/cards/+page.svelte +26 -26
  220. package/templates/sveltekit/src/routes/cards/+page.ts +7 -7
  221. package/templates/sveltekit/src/routes/cards/CookieSettings.svelte +52 -52
  222. package/templates/sveltekit/src/routes/cards/CreateAccount.svelte +52 -52
  223. package/templates/sveltekit/src/routes/cards/DemoContainer.svelte +10 -10
  224. package/templates/sveltekit/src/routes/cards/Notifications.svelte +38 -38
  225. package/templates/sveltekit/src/routes/cards/PaymentMethod.svelte +110 -110
  226. package/templates/sveltekit/src/routes/cards/ReportAnIssue.svelte +71 -71
  227. package/templates/sveltekit/src/routes/cards/ShareDocument.svelte +91 -91
  228. package/templates/sveltekit/src/routes/dashboard/+page.svelte +5 -5
  229. package/templates/sveltekit/src/routes/dashboard/+page.ts +7 -7
  230. package/templates/sveltekit/src/routes/music/albums.ts +61 -61
  231. package/templates/sveltekit/src/routes/music/playlists.ts +16 -16
  232. package/templates/sveltekit/src/styles/globals.css +125 -125
  233. package/templates/sveltekit/src/styles/mdsvex.css +80 -80
  234. package/templates/sveltekit/src-tauri/Cargo.lock +3835 -3835
  235. package/templates/sveltekit/src-tauri/Cargo.toml +39 -39
  236. package/templates/sveltekit/src-tauri/build.rs +3 -3
  237. package/templates/sveltekit/src-tauri/tauri.conf.json +71 -71
  238. package/templates/sveltekit/svelte.config.js +22 -22
  239. package/templates/sveltekit/tailwind.config.js +67 -67
  240. package/templates/sveltekit/tsconfig.json +13 -13
  241. package/templates/vite/package.json +83 -83
  242. package/templates/vite/pnpm-lock.yaml +5176 -5176
  243. package/templates/vite/src-tauri/Cargo.lock +3835 -3835
  244. package/templates/vite/src-tauri/Cargo.toml +39 -39
  245. package/templates/vite/src-tauri/build.rs +3 -3
@@ -1,81 +1,81 @@
1
- // Source: https://github.com/joshnuss/svelte-local-storage-store
2
- // https://github.com/joshnuss/svelte-local-storage-store/blob/master/index.ts
3
- // Represents version v0.4.0 (2023-01-18)
4
- import type { Writable } from 'svelte/store';
5
- import { BROWSER } from 'esm-env';
6
- import { get, writable as internal } from 'svelte/store';
7
-
8
- declare type Updater<T> = (value: T) => T;
9
- declare type StoreDict<T> = { [key: string]: Writable<T> };
10
-
11
- /* eslint-disable @typescript-eslint/no-explicit-any */
12
- const stores: StoreDict<any> = {};
13
-
14
- interface Serializer<T> {
15
- parse(text: string): T;
16
- stringify(object: T): string;
17
- }
18
-
19
- type StorageType = 'local' | 'session';
20
-
21
- interface Options<T> {
22
- serializer?: Serializer<T>;
23
- storage?: StorageType;
24
- }
25
-
26
- function getStorage(type: StorageType) {
27
- return type === 'local' ? localStorage : sessionStorage;
28
- }
29
-
30
- export function localStorageStore<T>(
31
- key: string,
32
- initialValue: T,
33
- options?: Options<T>
34
- ): Writable<T> {
35
- const serializer = options?.serializer ?? JSON;
36
- const storageType = options?.storage ?? 'local';
37
-
38
- function updateStorage(key: string, value: T) {
39
- if (!BROWSER) return;
40
-
41
- getStorage(storageType).setItem(key, serializer.stringify(value));
42
- }
43
-
44
- if (!stores[key]) {
45
- const store = internal(initialValue, (set) => {
46
- const json = BROWSER ? getStorage(storageType).getItem(key) : null;
47
-
48
- if (json) {
49
- set(<T>serializer.parse(json));
50
- }
51
-
52
- if (BROWSER) {
53
- const handleStorage = (event: StorageEvent) => {
54
- if (event.key === key) set(event.newValue ? serializer.parse(event.newValue) : null);
55
- };
56
-
57
- window.addEventListener('storage', handleStorage);
58
-
59
- return () => window.removeEventListener('storage', handleStorage);
60
- }
61
- });
62
-
63
- const { subscribe, set } = store;
64
-
65
- stores[key] = {
66
- set(value: T) {
67
- updateStorage(key, value);
68
- set(value);
69
- },
70
- update(updater: Updater<T>) {
71
- const value = updater(get(store));
72
-
73
- updateStorage(key, value);
74
- set(value);
75
- },
76
- subscribe
77
- };
78
- }
79
-
80
- return stores[key];
81
- }
1
+ // Source: https://github.com/joshnuss/svelte-local-storage-store
2
+ // https://github.com/joshnuss/svelte-local-storage-store/blob/master/index.ts
3
+ // Represents version v0.4.0 (2023-01-18)
4
+ import type { Writable } from 'svelte/store';
5
+ import { BROWSER } from 'esm-env';
6
+ import { get, writable as internal } from 'svelte/store';
7
+
8
+ declare type Updater<T> = (value: T) => T;
9
+ declare type StoreDict<T> = { [key: string]: Writable<T> };
10
+
11
+ /* eslint-disable @typescript-eslint/no-explicit-any */
12
+ const stores: StoreDict<any> = {};
13
+
14
+ interface Serializer<T> {
15
+ parse(text: string): T;
16
+ stringify(object: T): string;
17
+ }
18
+
19
+ type StorageType = 'local' | 'session';
20
+
21
+ interface Options<T> {
22
+ serializer?: Serializer<T>;
23
+ storage?: StorageType;
24
+ }
25
+
26
+ function getStorage(type: StorageType) {
27
+ return type === 'local' ? localStorage : sessionStorage;
28
+ }
29
+
30
+ export function localStorageStore<T>(
31
+ key: string,
32
+ initialValue: T,
33
+ options?: Options<T>
34
+ ): Writable<T> {
35
+ const serializer = options?.serializer ?? JSON;
36
+ const storageType = options?.storage ?? 'local';
37
+
38
+ function updateStorage(key: string, value: T) {
39
+ if (!BROWSER) return;
40
+
41
+ getStorage(storageType).setItem(key, serializer.stringify(value));
42
+ }
43
+
44
+ if (!stores[key]) {
45
+ const store = internal(initialValue, (set) => {
46
+ const json = BROWSER ? getStorage(storageType).getItem(key) : null;
47
+
48
+ if (json) {
49
+ set(<T>serializer.parse(json));
50
+ }
51
+
52
+ if (BROWSER) {
53
+ const handleStorage = (event: StorageEvent) => {
54
+ if (event.key === key) set(event.newValue ? serializer.parse(event.newValue) : null);
55
+ };
56
+
57
+ window.addEventListener('storage', handleStorage);
58
+
59
+ return () => window.removeEventListener('storage', handleStorage);
60
+ }
61
+ });
62
+
63
+ const { subscribe, set } = store;
64
+
65
+ stores[key] = {
66
+ set(value: T) {
67
+ updateStorage(key, value);
68
+ set(value);
69
+ },
70
+ update(updater: Updater<T>) {
71
+ const value = updater(get(store));
72
+
73
+ updateStorage(key, value);
74
+ set(value);
75
+ },
76
+ subscribe
77
+ };
78
+ }
79
+
80
+ return stores[key];
81
+ }
@@ -1,11 +1,11 @@
1
- <script lang="ts">
2
- import { Accordion as AccordionPrimitive } from 'radix-svelte';
3
-
4
- // Remove the any when radix-svelte is updated to properly satisfy the types
5
- // https://www.radix-svelte.com/docs/accordion
6
- export let value: any = undefined;
7
- </script>
8
-
9
- <AccordionPrimitive.Root bind:value {...$$restProps}>
10
- <slot />
11
- </AccordionPrimitive.Root>
1
+ <script lang="ts">
2
+ import { Accordion as AccordionPrimitive } from 'radix-svelte';
3
+
4
+ // Remove the any when radix-svelte is updated to properly satisfy the types
5
+ // https://www.radix-svelte.com/docs/accordion
6
+ export let value: any = undefined;
7
+ </script>
8
+
9
+ <AccordionPrimitive.Root bind:value {...$$restProps}>
10
+ <slot />
11
+ </AccordionPrimitive.Root>
@@ -1,19 +1,19 @@
1
- <script lang="ts">
2
- import type { AccordionContentProps } from 'radix-svelte';
3
- import { Accordion as AccordionPrimitive } from 'radix-svelte';
4
- import { cn } from '$lib/utils';
5
-
6
- let className: string | undefined | null = undefined;
7
- export { className as class };
8
- export let transition: AccordionContentProps['transition'] = true;
9
- </script>
10
-
11
- <AccordionPrimitive.Content
12
- class={cn('overflow-hidden text-sm', className)}
13
- {...$$restProps}
14
- {transition}
15
- >
16
- <div class="pb-4 pt-0">
17
- <slot />
18
- </div>
19
- </AccordionPrimitive.Content>
1
+ <script lang="ts">
2
+ import type { AccordionContentProps } from 'radix-svelte';
3
+ import { Accordion as AccordionPrimitive } from 'radix-svelte';
4
+ import { cn } from '$lib/utils';
5
+
6
+ let className: string | undefined | null = undefined;
7
+ export { className as class };
8
+ export let transition: AccordionContentProps['transition'] = true;
9
+ </script>
10
+
11
+ <AccordionPrimitive.Content
12
+ class={cn('overflow-hidden text-sm', className)}
13
+ {...$$restProps}
14
+ {transition}
15
+ >
16
+ <div class="pb-4 pt-0">
17
+ <slot />
18
+ </div>
19
+ </AccordionPrimitive.Content>
@@ -1,13 +1,13 @@
1
- <script lang="ts">
2
- import type { AccordionItemProps } from 'radix-svelte';
3
- import { Accordion as AccordionPrimitive } from 'radix-svelte';
4
- import { cn } from '$lib/utils';
5
-
6
- let className: string | undefined | null = undefined;
7
- export { className as class };
8
- export let value: AccordionItemProps['value'];
9
- </script>
10
-
11
- <AccordionPrimitive.Item {value} class={cn('border-b', className)} {...$$restProps}>
12
- <slot />
13
- </AccordionPrimitive.Item>
1
+ <script lang="ts">
2
+ import type { AccordionItemProps } from 'radix-svelte';
3
+ import { Accordion as AccordionPrimitive } from 'radix-svelte';
4
+ import { cn } from '$lib/utils';
5
+
6
+ let className: string | undefined | null = undefined;
7
+ export { className as class };
8
+ export let value: AccordionItemProps['value'];
9
+ </script>
10
+
11
+ <AccordionPrimitive.Item {value} class={cn('border-b', className)} {...$$restProps}>
12
+ <slot />
13
+ </AccordionPrimitive.Item>
@@ -1,21 +1,21 @@
1
- <script lang="ts">
2
- import { ChevronDown } from 'lucide-svelte';
3
- import { Accordion as AccordionPrimitive } from 'radix-svelte';
4
- import { cn } from '$lib/utils';
5
-
6
- let className: string | undefined | null = undefined;
7
- export { className as class };
8
- </script>
9
-
10
- <AccordionPrimitive.Header class="flex">
11
- <AccordionPrimitive.Trigger
12
- class={cn(
13
- 'flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180',
14
- className
15
- )}
16
- {...$$restProps}
17
- >
18
- <slot />
19
- <ChevronDown class="h-4 w-4 transition-transform duration-200" />
20
- </AccordionPrimitive.Trigger>
21
- </AccordionPrimitive.Header>
1
+ <script lang="ts">
2
+ import { ChevronDown } from 'lucide-svelte';
3
+ import { Accordion as AccordionPrimitive } from 'radix-svelte';
4
+ import { cn } from '$lib/utils';
5
+
6
+ let className: string | undefined | null = undefined;
7
+ export { className as class };
8
+ </script>
9
+
10
+ <AccordionPrimitive.Header class="flex">
11
+ <AccordionPrimitive.Trigger
12
+ class={cn(
13
+ 'flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180',
14
+ className
15
+ )}
16
+ {...$$restProps}
17
+ >
18
+ <slot />
19
+ <ChevronDown class="h-4 w-4 transition-transform duration-200" />
20
+ </AccordionPrimitive.Trigger>
21
+ </AccordionPrimitive.Header>
@@ -1,4 +1,4 @@
1
- export { default as Accordion } from './Accordion.svelte';
2
- export { default as AccordionContent } from './AccordionContent.svelte';
3
- export { default as AccordionItem } from './AccordionItem.svelte';
4
- export { default as AccordionTrigger } from './AccordionTrigger.svelte';
1
+ export { default as Accordion } from './Accordion.svelte';
2
+ export { default as AccordionContent } from './AccordionContent.svelte';
3
+ export { default as AccordionItem } from './AccordionItem.svelte';
4
+ export { default as AccordionTrigger } from './AccordionTrigger.svelte';
@@ -1,29 +1,29 @@
1
- <script lang="ts">
2
- import type { VariantProps } from 'class-variance-authority';
3
- import { cva } from 'class-variance-authority';
4
- import { cn } from '$lib/utils';
5
-
6
- const alertVariants = cva(
7
- 'relative w-full rounded-lg border p-4 [&>svg]:absolute [&>svg]:text-foreground [&>svg]:left-4 [&>svg]:top-4 [&>svg+div]:translate-y-[-3px] [&:has(svg)]:pl-11',
8
- {
9
- variants: {
10
- variant: {
11
- default: 'bg-background text-foreground',
12
- destructive:
13
- 'text-destructive border-destructive/50 dark:border-destructive [&>svg]:text-destructive text-destructive'
14
- }
15
- },
16
- defaultVariants: {
17
- variant: 'default'
18
- }
19
- }
20
- );
21
-
22
- let className: string | undefined | null = undefined;
23
- export { className as class };
24
- export let variant: VariantProps<typeof alertVariants>['variant'] = 'default';
25
- </script>
26
-
27
- <div class={cn(alertVariants({ variant }), className)} {...$$restProps}>
28
- <slot />
29
- </div>
1
+ <script lang="ts">
2
+ import type { VariantProps } from 'class-variance-authority';
3
+ import { cva } from 'class-variance-authority';
4
+ import { cn } from '$lib/utils';
5
+
6
+ const alertVariants = cva(
7
+ 'relative w-full rounded-lg border p-4 [&>svg]:absolute [&>svg]:text-foreground [&>svg]:left-4 [&>svg]:top-4 [&>svg+div]:translate-y-[-3px] [&:has(svg)]:pl-11',
8
+ {
9
+ variants: {
10
+ variant: {
11
+ default: 'bg-background text-foreground',
12
+ destructive:
13
+ 'text-destructive border-destructive/50 dark:border-destructive [&>svg]:text-destructive text-destructive'
14
+ }
15
+ },
16
+ defaultVariants: {
17
+ variant: 'default'
18
+ }
19
+ }
20
+ );
21
+
22
+ let className: string | undefined | null = undefined;
23
+ export { className as class };
24
+ export let variant: VariantProps<typeof alertVariants>['variant'] = 'default';
25
+ </script>
26
+
27
+ <div class={cn(alertVariants({ variant }), className)} {...$$restProps}>
28
+ <slot />
29
+ </div>
@@ -1,10 +1,10 @@
1
- <script lang="ts">
2
- import { cn } from '$lib/utils';
3
-
4
- let className: string | undefined | null = undefined;
5
- export { className as class };
6
- </script>
7
-
8
- <div class={cn('text-sm [&_p]:leading-relaxed', className)} {...$$restProps}>
9
- <slot />
10
- </div>
1
+ <script lang="ts">
2
+ import { cn } from '$lib/utils';
3
+
4
+ let className: string | undefined | null = undefined;
5
+ export { className as class };
6
+ </script>
7
+
8
+ <div class={cn('text-sm [&_p]:leading-relaxed', className)} {...$$restProps}>
9
+ <slot />
10
+ </div>
@@ -1,15 +1,15 @@
1
- <script lang="ts">
2
- import { cn } from '$lib/utils';
3
-
4
- let className: string | undefined | null = undefined;
5
- export { className as class };
6
- export let level: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' = 'h5';
7
- </script>
8
-
9
- <svelte:element
10
- this={level}
11
- class={cn('mb-1 font-medium leading-none tracking-tight', className)}
12
- {...$$restProps}
13
- >
14
- <slot />
15
- </svelte:element>
1
+ <script lang="ts">
2
+ import { cn } from '$lib/utils';
3
+
4
+ let className: string | undefined | null = undefined;
5
+ export { className as class };
6
+ export let level: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' = 'h5';
7
+ </script>
8
+
9
+ <svelte:element
10
+ this={level}
11
+ class={cn('mb-1 font-medium leading-none tracking-tight', className)}
12
+ {...$$restProps}
13
+ >
14
+ <slot />
15
+ </svelte:element>
@@ -1,3 +1,3 @@
1
- export { default as Alert } from './Alert.svelte';
2
- export { default as AlertDescription } from './AlertDescription.svelte';
3
- export { default as AlertTitle } from './AlertTitle.svelte';
1
+ export { default as Alert } from './Alert.svelte';
2
+ export { default as AlertDescription } from './AlertDescription.svelte';
3
+ export { default as AlertTitle } from './AlertTitle.svelte';
@@ -1,12 +1,12 @@
1
- <script lang="ts">
2
- import { AlertDialog as AlertDialogPrimitive } from 'radix-svelte';
3
- import { buttonVariants } from '$components/ui/button';
4
- import { cn } from '$lib/utils';
5
-
6
- let className: string | undefined | null = undefined;
7
- export { className as class };
8
- </script>
9
-
10
- <AlertDialogPrimitive.Action class={cn(buttonVariants(), className)} {...$$restProps}>
11
- <slot />
12
- </AlertDialogPrimitive.Action>
1
+ <script lang="ts">
2
+ import { AlertDialog as AlertDialogPrimitive } from 'radix-svelte';
3
+ import { buttonVariants } from '$components/ui/button';
4
+ import { cn } from '$lib/utils';
5
+
6
+ let className: string | undefined | null = undefined;
7
+ export { className as class };
8
+ </script>
9
+
10
+ <AlertDialogPrimitive.Action class={cn(buttonVariants(), className)} {...$$restProps}>
11
+ <slot />
12
+ </AlertDialogPrimitive.Action>
@@ -1,15 +1,15 @@
1
- <script lang="ts">
2
- import { AlertDialog as AlertDialogPrimitive } from 'radix-svelte';
3
- import { buttonVariants } from '$components/ui/button';
4
- import { cn } from '$lib/utils';
5
-
6
- let className: string | undefined | null = undefined;
7
- export { className as class };
8
- </script>
9
-
10
- <AlertDialogPrimitive.Cancel
11
- class={cn(buttonVariants({ variant: 'outline' }), 'mt-2 sm:mt-0', className)}
12
- {...$$restProps}
13
- >
14
- <slot />
15
- </AlertDialogPrimitive.Cancel>
1
+ <script lang="ts">
2
+ import { AlertDialog as AlertDialogPrimitive } from 'radix-svelte';
3
+ import { buttonVariants } from '$components/ui/button';
4
+ import { cn } from '$lib/utils';
5
+
6
+ let className: string | undefined | null = undefined;
7
+ export { className as class };
8
+ </script>
9
+
10
+ <AlertDialogPrimitive.Cancel
11
+ class={cn(buttonVariants({ variant: 'outline' }), 'mt-2 sm:mt-0', className)}
12
+ {...$$restProps}
13
+ >
14
+ <slot />
15
+ </AlertDialogPrimitive.Cancel>
@@ -1,22 +1,22 @@
1
- <script lang="ts">
2
- import { AlertDialog as AlertDialogPrimitive } from 'radix-svelte';
3
- import { cn } from '$lib/utils';
4
- import AlertDialogOverlay from './AlertDialogOverlay.svelte';
5
- import AlertDialogPortal from './AlertDialogPortal.svelte';
6
-
7
- let className: string | undefined | null = undefined;
8
- export { className as class };
9
- </script>
10
-
11
- <AlertDialogPortal>
12
- <AlertDialogOverlay />
13
- <AlertDialogPrimitive.Content
14
- class={cn(
15
- 'fixed z-50 grid w-full max-w-lg scale-100 gap-4 border bg-background p-6 opacity-100 shadow-lg animate-in fade-in-90 slide-in-from-bottom-10 sm:rounded-lg sm:zoom-in-90 sm:slide-in-from-bottom-0 md:w-full',
16
- className
17
- )}
18
- {...$$restProps}
19
- >
20
- <slot />
21
- </AlertDialogPrimitive.Content>
22
- </AlertDialogPortal>
1
+ <script lang="ts">
2
+ import { AlertDialog as AlertDialogPrimitive } from 'radix-svelte';
3
+ import { cn } from '$lib/utils';
4
+ import AlertDialogOverlay from './AlertDialogOverlay.svelte';
5
+ import AlertDialogPortal from './AlertDialogPortal.svelte';
6
+
7
+ let className: string | undefined | null = undefined;
8
+ export { className as class };
9
+ </script>
10
+
11
+ <AlertDialogPortal>
12
+ <AlertDialogOverlay />
13
+ <AlertDialogPrimitive.Content
14
+ class={cn(
15
+ 'fixed z-50 grid w-full max-w-lg scale-100 gap-4 border bg-background p-6 opacity-100 shadow-lg animate-in fade-in-90 slide-in-from-bottom-10 sm:rounded-lg sm:zoom-in-90 sm:slide-in-from-bottom-0 md:w-full',
16
+ className
17
+ )}
18
+ {...$$restProps}
19
+ >
20
+ <slot />
21
+ </AlertDialogPrimitive.Content>
22
+ </AlertDialogPortal>
@@ -1,14 +1,14 @@
1
- <script lang="ts">
2
- import { AlertDialog as AlertDialogPrimitive } from 'radix-svelte';
3
- import { cn } from '$lib/utils';
4
-
5
- let className: string | undefined | null = undefined;
6
- export { className as class };
7
- </script>
8
-
9
- <AlertDialogPrimitive.Description
10
- class={cn('text-sm text-muted-foreground', className)}
11
- {...$$restProps}
12
- >
13
- <slot />
14
- </AlertDialogPrimitive.Description>
1
+ <script lang="ts">
2
+ import { AlertDialog as AlertDialogPrimitive } from 'radix-svelte';
3
+ import { cn } from '$lib/utils';
4
+
5
+ let className: string | undefined | null = undefined;
6
+ export { className as class };
7
+ </script>
8
+
9
+ <AlertDialogPrimitive.Description
10
+ class={cn('text-sm text-muted-foreground', className)}
11
+ {...$$restProps}
12
+ >
13
+ <slot />
14
+ </AlertDialogPrimitive.Description>
@@ -1,13 +1,13 @@
1
- <script lang="ts">
2
- import { cn } from '$lib/utils';
3
-
4
- let className: string | undefined | null = undefined;
5
- export { className as class };
6
- </script>
7
-
8
- <div
9
- class={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)}
10
- {...$$restProps}
11
- >
12
- <slot />
13
- </div>
1
+ <script lang="ts">
2
+ import { cn } from '$lib/utils';
3
+
4
+ let className: string | undefined | null = undefined;
5
+ export { className as class };
6
+ </script>
7
+
8
+ <div
9
+ class={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)}
10
+ {...$$restProps}
11
+ >
12
+ <slot />
13
+ </div>
@@ -1,10 +1,10 @@
1
- <script lang="ts">
2
- import { cn } from '$lib/utils';
3
-
4
- let className: string | undefined | null = undefined;
5
- export { className as class };
6
- </script>
7
-
8
- <div class={cn('flex flex-col space-y-2 text-center sm:text-left', className)} {...$$restProps}>
9
- <slot />
10
- </div>
1
+ <script lang="ts">
2
+ import { cn } from '$lib/utils';
3
+
4
+ let className: string | undefined | null = undefined;
5
+ export { className as class };
6
+ </script>
7
+
8
+ <div class={cn('flex flex-col space-y-2 text-center sm:text-left', className)} {...$$restProps}>
9
+ <slot />
10
+ </div>
@@ -1,15 +1,15 @@
1
- <script lang="ts">
2
- import { AlertDialog as AlertDialogPrimitive } from 'radix-svelte';
3
- import { cn } from '$lib/utils';
4
-
5
- let className: string | undefined | null = undefined;
6
- export { className as class };
7
- </script>
8
-
9
- <AlertDialogPrimitive.Overlay
10
- class={cn(
11
- 'fixed inset-0 z-50 bg-background/80 backdrop-blur-sm transition-opacity animate-in fade-in',
12
- className
13
- )}
14
- {...$$restProps}
15
- />
1
+ <script lang="ts">
2
+ import { AlertDialog as AlertDialogPrimitive } from 'radix-svelte';
3
+ import { cn } from '$lib/utils';
4
+
5
+ let className: string | undefined | null = undefined;
6
+ export { className as class };
7
+ </script>
8
+
9
+ <AlertDialogPrimitive.Overlay
10
+ class={cn(
11
+ 'fixed inset-0 z-50 bg-background/80 backdrop-blur-sm transition-opacity animate-in fade-in',
12
+ className
13
+ )}
14
+ {...$$restProps}
15
+ />