ui-svelte 0.1.0

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 (238) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +118 -0
  3. package/dist/charts/ArcChart.svelte +320 -0
  4. package/dist/charts/ArcChart.svelte.d.ts +26 -0
  5. package/dist/charts/AreaChart.svelte +495 -0
  6. package/dist/charts/AreaChart.svelte.d.ts +32 -0
  7. package/dist/charts/BarChart.svelte +504 -0
  8. package/dist/charts/BarChart.svelte.d.ts +38 -0
  9. package/dist/charts/Candlestick.svelte +527 -0
  10. package/dist/charts/Candlestick.svelte.d.ts +38 -0
  11. package/dist/charts/LineChart.svelte +365 -0
  12. package/dist/charts/LineChart.svelte.d.ts +36 -0
  13. package/dist/charts/PieChart.svelte +311 -0
  14. package/dist/charts/PieChart.svelte.d.ts +28 -0
  15. package/dist/charts/css/arc-chart.css +237 -0
  16. package/dist/charts/css/area-chart.css +289 -0
  17. package/dist/charts/css/bar-chart.css +167 -0
  18. package/dist/charts/css/candlestick.css +197 -0
  19. package/dist/charts/css/line-chart.css +202 -0
  20. package/dist/charts/css/pie-chart.css +199 -0
  21. package/dist/control/Audio.svelte +212 -0
  22. package/dist/control/Audio.svelte.d.ts +8 -0
  23. package/dist/control/Button.svelte +116 -0
  24. package/dist/control/Button.svelte.d.ts +22 -0
  25. package/dist/control/IconButton.svelte +104 -0
  26. package/dist/control/IconButton.svelte.d.ts +17 -0
  27. package/dist/control/Record.svelte +430 -0
  28. package/dist/control/Record.svelte.d.ts +11 -0
  29. package/dist/control/ToggleTheme.svelte +21 -0
  30. package/dist/control/ToggleTheme.svelte.d.ts +8 -0
  31. package/dist/control/Video.svelte +222 -0
  32. package/dist/control/Video.svelte.d.ts +10 -0
  33. package/dist/control/css/btn.css +206 -0
  34. package/dist/control/css/media.css +78 -0
  35. package/dist/control/css/video.css +58 -0
  36. package/dist/css/animations.css +27 -0
  37. package/dist/css/base.css +192 -0
  38. package/dist/css/utilities.css +136 -0
  39. package/dist/display/Accordion.svelte +98 -0
  40. package/dist/display/Accordion.svelte.d.ts +20 -0
  41. package/dist/display/Alert.svelte +65 -0
  42. package/dist/display/Alert.svelte.d.ts +15 -0
  43. package/dist/display/Avatar.svelte +80 -0
  44. package/dist/display/Avatar.svelte.d.ts +13 -0
  45. package/dist/display/Badge.svelte +46 -0
  46. package/dist/display/Badge.svelte.d.ts +11 -0
  47. package/dist/display/Card.svelte +94 -0
  48. package/dist/display/Card.svelte.d.ts +21 -0
  49. package/dist/display/Carousel.svelte +359 -0
  50. package/dist/display/Carousel.svelte.d.ts +25 -0
  51. package/dist/display/ChatBox.svelte +249 -0
  52. package/dist/display/ChatBox.svelte.d.ts +18 -0
  53. package/dist/display/Chip.svelte +67 -0
  54. package/dist/display/Chip.svelte.d.ts +17 -0
  55. package/dist/display/Code.svelte +56 -0
  56. package/dist/display/Code.svelte.d.ts +9 -0
  57. package/dist/display/Collapsible.svelte +71 -0
  58. package/dist/display/Collapsible.svelte.d.ts +15 -0
  59. package/dist/display/Divider.svelte +32 -0
  60. package/dist/display/Divider.svelte.d.ts +10 -0
  61. package/dist/display/Empty.svelte +462 -0
  62. package/dist/display/Empty.svelte.d.ts +11 -0
  63. package/dist/display/Icon.svelte +20 -0
  64. package/dist/display/Icon.svelte.d.ts +11 -0
  65. package/dist/display/Item.svelte +119 -0
  66. package/dist/display/Item.svelte.d.ts +24 -0
  67. package/dist/display/Loading.svelte +8 -0
  68. package/dist/display/Loading.svelte.d.ts +26 -0
  69. package/dist/display/Marquee.svelte +164 -0
  70. package/dist/display/Marquee.svelte.d.ts +21 -0
  71. package/dist/display/Section.svelte +63 -0
  72. package/dist/display/Section.svelte.d.ts +16 -0
  73. package/dist/display/Table.svelte +407 -0
  74. package/dist/display/Table.svelte.d.ts +32 -0
  75. package/dist/display/TypeWriter.svelte +23 -0
  76. package/dist/display/TypeWriter.svelte.d.ts +11 -0
  77. package/dist/display/User.svelte +0 -0
  78. package/dist/display/User.svelte.d.ts +26 -0
  79. package/dist/display/css/accordion.css +98 -0
  80. package/dist/display/css/alert.css +51 -0
  81. package/dist/display/css/avatar.css +158 -0
  82. package/dist/display/css/badge.css +47 -0
  83. package/dist/display/css/card.css +231 -0
  84. package/dist/display/css/carousel.css +156 -0
  85. package/dist/display/css/chat-box.css +188 -0
  86. package/dist/display/css/chip.css +91 -0
  87. package/dist/display/css/code.css +19 -0
  88. package/dist/display/css/collapsible.css +86 -0
  89. package/dist/display/css/divider.css +54 -0
  90. package/dist/display/css/empty.css +8 -0
  91. package/dist/display/css/item.css +149 -0
  92. package/dist/display/css/listbox.css +24 -0
  93. package/dist/display/css/marquee.css +138 -0
  94. package/dist/display/css/section.css +85 -0
  95. package/dist/display/css/table.css +361 -0
  96. package/dist/form/Checkbox.svelte +45 -0
  97. package/dist/form/Checkbox.svelte.d.ts +13 -0
  98. package/dist/form/ComboBox.svelte +448 -0
  99. package/dist/form/ComboBox.svelte.d.ts +29 -0
  100. package/dist/form/CsvField.svelte +389 -0
  101. package/dist/form/CsvField.svelte.d.ts +21 -0
  102. package/dist/form/DateField.svelte +292 -0
  103. package/dist/form/DateField.svelte.d.ts +18 -0
  104. package/dist/form/Dropzone.svelte +196 -0
  105. package/dist/form/Dropzone.svelte.d.ts +30 -0
  106. package/dist/form/ImageCropper.svelte +254 -0
  107. package/dist/form/ImageCropper.svelte.d.ts +14 -0
  108. package/dist/form/PasswordField.svelte +170 -0
  109. package/dist/form/PasswordField.svelte.d.ts +28 -0
  110. package/dist/form/PhoneField.svelte +485 -0
  111. package/dist/form/PhoneField.svelte.d.ts +25 -0
  112. package/dist/form/PinField.svelte +139 -0
  113. package/dist/form/PinField.svelte.d.ts +17 -0
  114. package/dist/form/RadioGroup.svelte +70 -0
  115. package/dist/form/RadioGroup.svelte.d.ts +19 -0
  116. package/dist/form/Select.svelte +350 -0
  117. package/dist/form/Select.svelte.d.ts +26 -0
  118. package/dist/form/Slider.svelte +60 -0
  119. package/dist/form/Slider.svelte.d.ts +15 -0
  120. package/dist/form/TextField.svelte +154 -0
  121. package/dist/form/TextField.svelte.d.ts +31 -0
  122. package/dist/form/Textarea.svelte +137 -0
  123. package/dist/form/Textarea.svelte.d.ts +27 -0
  124. package/dist/form/Toggle.svelte +45 -0
  125. package/dist/form/Toggle.svelte.d.ts +13 -0
  126. package/dist/form/css/checkbox.css +46 -0
  127. package/dist/form/css/combo-box.css +69 -0
  128. package/dist/form/css/control.css +177 -0
  129. package/dist/form/css/csv-field.css +0 -0
  130. package/dist/form/css/date.css +56 -0
  131. package/dist/form/css/dropzone.css +133 -0
  132. package/dist/form/css/field.css +17 -0
  133. package/dist/form/css/image-cropper.css +155 -0
  134. package/dist/form/css/password.css +35 -0
  135. package/dist/form/css/radio-group.css +57 -0
  136. package/dist/form/css/select.css +18 -0
  137. package/dist/form/css/slider.css +80 -0
  138. package/dist/form/css/textarea.css +130 -0
  139. package/dist/form/css/toggle.css +27 -0
  140. package/dist/form/js/countries.d.ts +13 -0
  141. package/dist/form/js/countries.js +307 -0
  142. package/dist/form/js/phone-examples.d.ts +248 -0
  143. package/dist/form/js/phone-examples.js +247 -0
  144. package/dist/hooks/use-auth.svelte.d.ts +11 -0
  145. package/dist/hooks/use-auth.svelte.js +59 -0
  146. package/dist/hooks/use-chat.svelte.d.ts +40 -0
  147. package/dist/hooks/use-chat.svelte.js +265 -0
  148. package/dist/hooks/use-clipboard.svelte.d.ts +9 -0
  149. package/dist/hooks/use-clipboard.svelte.js +52 -0
  150. package/dist/hooks/use-fetch.svelte.d.ts +11 -0
  151. package/dist/hooks/use-fetch.svelte.js +38 -0
  152. package/dist/hooks/use-form.svelte.d.ts +31 -0
  153. package/dist/hooks/use-form.svelte.js +110 -0
  154. package/dist/hooks/use-localstorage.svelte.d.ts +3 -0
  155. package/dist/hooks/use-localstorage.svelte.js +26 -0
  156. package/dist/hooks/use-scroll.svelte.d.ts +6 -0
  157. package/dist/hooks/use-scroll.svelte.js +34 -0
  158. package/dist/hooks/use-search.svelte.d.ts +49 -0
  159. package/dist/hooks/use-search.svelte.js +229 -0
  160. package/dist/hooks/use-table.svelte.d.ts +85 -0
  161. package/dist/hooks/use-table.svelte.js +362 -0
  162. package/dist/hooks/use-websocket.svelte.d.ts +18 -0
  163. package/dist/hooks/use-websocket.svelte.js +79 -0
  164. package/dist/icons/index.d.ts +132 -0
  165. package/dist/icons/index.js +132 -0
  166. package/dist/index.css +115 -0
  167. package/dist/index.d.ts +76 -0
  168. package/dist/index.js +76 -0
  169. package/dist/layout/AppBar.svelte +94 -0
  170. package/dist/layout/AppBar.svelte.d.ts +17 -0
  171. package/dist/layout/Footer.svelte +94 -0
  172. package/dist/layout/Footer.svelte.d.ts +17 -0
  173. package/dist/layout/FooterLinks.svelte +28 -0
  174. package/dist/layout/FooterLinks.svelte.d.ts +11 -0
  175. package/dist/layout/Provider.svelte +52 -0
  176. package/dist/layout/Provider.svelte.d.ts +10 -0
  177. package/dist/layout/Scaffold.svelte +46 -0
  178. package/dist/layout/Scaffold.svelte.d.ts +15 -0
  179. package/dist/layout/Sidebar.svelte +40 -0
  180. package/dist/layout/Sidebar.svelte.d.ts +13 -0
  181. package/dist/layout/css/app-bar.css +35 -0
  182. package/dist/layout/css/bottom-bar.css +12 -0
  183. package/dist/layout/css/footer-links.css +17 -0
  184. package/dist/layout/css/footer.css +35 -0
  185. package/dist/layout/css/scaffold.css +15 -0
  186. package/dist/layout/css/sidebar.css +17 -0
  187. package/dist/navigation/BottomNav.svelte +0 -0
  188. package/dist/navigation/BottomNav.svelte.d.ts +26 -0
  189. package/dist/navigation/NavMenu.svelte +254 -0
  190. package/dist/navigation/SideNav.svelte +249 -0
  191. package/dist/navigation/Tabs.svelte +79 -0
  192. package/dist/navigation/Tabs.svelte.d.ts +19 -0
  193. package/dist/navigation/css/bottom-nav.css +0 -0
  194. package/dist/navigation/css/nav-menu.css +168 -0
  195. package/dist/navigation/css/side-nav.css +244 -0
  196. package/dist/navigation/css/tabs.css +118 -0
  197. package/dist/overlay/AlertDialog.svelte +0 -0
  198. package/dist/overlay/AlertDialog.svelte.d.ts +26 -0
  199. package/dist/overlay/Command.svelte +0 -0
  200. package/dist/overlay/Command.svelte.d.ts +26 -0
  201. package/dist/overlay/Drawer.svelte +129 -0
  202. package/dist/overlay/Drawer.svelte.d.ts +20 -0
  203. package/dist/overlay/Dropdown.svelte +140 -0
  204. package/dist/overlay/Modal.svelte +102 -0
  205. package/dist/overlay/Modal.svelte.d.ts +19 -0
  206. package/dist/overlay/PopoverStack.svelte +0 -0
  207. package/dist/overlay/PopoverStack.svelte.d.ts +26 -0
  208. package/dist/overlay/Toast.svelte +83 -0
  209. package/dist/overlay/Toast.svelte.d.ts +9 -0
  210. package/dist/overlay/Tooltip.svelte +140 -0
  211. package/dist/overlay/Tooltip.svelte.d.ts +12 -0
  212. package/dist/overlay/css/drawer.css +75 -0
  213. package/dist/overlay/css/dropdown.css +24 -0
  214. package/dist/overlay/css/hovercard.css +11 -0
  215. package/dist/overlay/css/modal.css +51 -0
  216. package/dist/overlay/css/toast.css +80 -0
  217. package/dist/overlay/css/tooltip.css +89 -0
  218. package/dist/stores/i18n.svelte.d.ts +16 -0
  219. package/dist/stores/i18n.svelte.js +137 -0
  220. package/dist/stores/theme.svelte.d.ts +5 -0
  221. package/dist/stores/theme.svelte.js +55 -0
  222. package/dist/stores/toast.svelte.d.ts +19 -0
  223. package/dist/stores/toast.svelte.js +38 -0
  224. package/dist/types.d.ts +75 -0
  225. package/dist/types.js +1 -0
  226. package/dist/utils/charts.d.ts +27 -0
  227. package/dist/utils/charts.js +140 -0
  228. package/dist/utils/class-names.d.ts +1 -0
  229. package/dist/utils/class-names.js +3 -0
  230. package/dist/utils/click-outside.d.ts +3 -0
  231. package/dist/utils/click-outside.js +9 -0
  232. package/dist/utils/popover.d.ts +3 -0
  233. package/dist/utils/popover.js +17 -0
  234. package/dist/utils/ulid.d.ts +1 -0
  235. package/dist/utils/ulid.js +22 -0
  236. package/dist/utils/validate-schema.d.ts +2 -0
  237. package/dist/utils/validate-schema.js +97 -0
  238. package/package.json +69 -0
@@ -0,0 +1,462 @@
1
+ <script lang="ts">
2
+ type Props = {
3
+ type?: 'playlist' | 'result' | 'data' | 'template';
4
+ class?: string;
5
+ title?: string;
6
+ description?: string;
7
+ href?: string;
8
+ onclick?: () => void;
9
+ };
10
+ let { type = 'template', class: className }: Props = $props();
11
+ </script>
12
+
13
+ <div class="empty">
14
+ {#if type === 'playlist'}
15
+ <svg class="empty-icon" viewBox="0 0 119 100" fill="none" xmlns="http://www.w3.org/2000/svg">
16
+ <path
17
+ d="M79.5462 31.38C71.1662 31.38 62.6362 31.04 54.6562 28.82C46.8262 26.64 39.6562 22.43 33.2262 17.56C29.0362 14.38 25.2262 11.85 19.7662 12.24C14.4402 12.5231 9.34626 14.5109 5.23621 17.91C-1.69379 23.98 -0.643786 35.2 2.11621 43.09C6.28621 54.98 18.9662 63.23 29.7362 68.61C42.1862 74.83 55.8562 78.44 69.5662 80.52C81.5662 82.34 97.0162 83.67 107.426 75.82C116.996 68.61 119.616 52.15 117.276 41.04C116.703 37.7577 114.954 34.7966 112.356 32.71C105.636 27.8 95.6162 31.08 88.0662 31.25C85.2562 31.3 82.4162 31.37 79.5462 31.38Z"
18
+ fill="var(--color-muted)"
19
+ />
20
+ <path
21
+ d="M30.4862 74.16V78.47"
22
+ stroke="var(--color-on-muted)"
23
+ stroke-linecap="round"
24
+ stroke-linejoin="round"
25
+ />
26
+ <path
27
+ d="M28.3262 76.32H32.6362"
28
+ stroke="var(--color-on-muted)"
29
+ stroke-linecap="round"
30
+ stroke-linejoin="round"
31
+ />
32
+ <path
33
+ d="M102.506 21.13V25.44"
34
+ stroke="var(--color-on-muted)"
35
+ stroke-linecap="round"
36
+ stroke-linejoin="round"
37
+ />
38
+ <path
39
+ d="M100.346 23.29H104.656"
40
+ stroke="var(--color-on-muted)"
41
+ stroke-linecap="round"
42
+ stroke-linejoin="round"
43
+ />
44
+ <path
45
+ d="M56.7262 1.96C57.2675 1.96 57.7062 1.52124 57.7062 0.98C57.7062 0.43876 57.2675 0 56.7262 0C56.185 0 55.7462 0.43876 55.7462 0.98C55.7462 1.52124 56.185 1.96 56.7262 1.96Z"
46
+ fill="var(--color-on-muted)"
47
+ />
48
+ <path
49
+ d="M59.4462 99.99C79.7481 99.99 96.2062 98.9647 96.2062 97.7C96.2062 96.4353 79.7481 95.41 59.4462 95.41C39.1442 95.41 22.6862 96.4353 22.6862 97.7C22.6862 98.9647 39.1442 99.99 59.4462 99.99Z"
50
+ fill="var(--color-muted)"
51
+ />
52
+ <path
53
+ d="M28.2762 52.44C28.1965 47.652 29.0707 42.8961 30.8479 38.4494C32.625 34.0027 35.2696 29.9543 38.6273 26.5402C41.9851 23.126 45.9889 20.4145 50.4054 18.5635C54.8219 16.7126 59.5626 15.7594 64.3512 15.7594C69.1399 15.7594 73.8806 16.7126 78.2971 18.5635C82.7135 20.4145 86.7174 23.126 90.0751 26.5402C93.4329 29.9543 96.0775 34.0027 97.8546 38.4494C99.6318 42.8961 100.506 47.652 100.426 52.44"
54
+ stroke="var(--color-on-muted)"
55
+ stroke-miterlimit="10"
56
+ />
57
+ <path
58
+ d="M96.4262 66.85H89.3062V38.4H96.4262C98.1713 38.4 99.845 39.0933 101.079 40.3272C102.313 41.5612 103.006 43.2349 103.006 44.98V60.27C103.006 62.0151 102.313 63.6888 101.079 64.9228C99.845 66.1567 98.1713 66.85 96.4262 66.85Z"
59
+ fill="var(--color-on-muted)"
60
+ />
61
+ <path
62
+ d="M31.9863 38.4H39.1063V66.85H31.9863C30.2411 66.85 28.5675 66.1567 27.3335 64.9228C26.0995 63.6888 25.4062 62.0151 25.4062 60.27V44.98C25.4062 43.2349 26.0995 41.5612 27.3335 40.3272C28.5675 39.0933 30.2411 38.4 31.9863 38.4Z"
63
+ fill="var(--color-on-muted)"
64
+ />
65
+ <path
66
+ d="M64.3461 82.61C81.0086 82.61 94.5161 69.1024 94.5161 52.44C94.5161 35.7776 81.0086 22.27 64.3461 22.27C47.6837 22.27 34.1761 35.7776 34.1761 52.44C34.1761 69.1024 47.6837 82.61 64.3461 82.61Z"
67
+ fill="var(--color-muted)"
68
+ stroke="var(--color-on-muted)"
69
+ stroke-miterlimit="10"
70
+ />
71
+ <path
72
+ d="M54.9261 64.48C55.394 62.3268 56.5846 60.3985 58.3001 59.0157C60.0156 57.6329 62.1527 56.8788 64.3561 56.8788C66.5596 56.8788 68.6967 57.6329 70.4122 59.0157C72.1277 60.3985 73.3183 62.3268 73.7861 64.48"
73
+ fill="var(--color-muted)"
74
+ />
75
+ <path
76
+ d="M54.9261 64.48C55.394 62.3268 56.5846 60.3985 58.3001 59.0157C60.0156 57.6329 62.1527 56.8788 64.3561 56.8788C66.5596 56.8788 68.6967 57.6329 70.4122 59.0157C72.1277 60.3985 73.3183 62.3268 73.7861 64.48"
77
+ stroke="var(--color-on-muted)"
78
+ stroke-miterlimit="10"
79
+ />
80
+ <path
81
+ d="M74.9963 53.23C75.7363 53.23 76.3363 52.6301 76.3363 51.89C76.3363 51.1499 75.7363 50.55 74.9963 50.55C74.2562 50.55 73.6562 51.1499 73.6562 51.89C73.6562 52.6301 74.2562 53.23 74.9963 53.23Z"
82
+ fill="var(--color-on-muted)"
83
+ />
84
+ <path
85
+ d="M53.7062 53.23C54.4463 53.23 55.0462 52.6301 55.0462 51.89C55.0462 51.1499 54.4463 50.55 53.7062 50.55C52.9662 50.55 52.3662 51.1499 52.3662 51.89C52.3662 52.6301 52.9662 53.23 53.7062 53.23Z"
86
+ fill="var(--color-on-muted)"
87
+ />
88
+ <path
89
+ d="M35.1562 21.64L37.2662 7.3C37.16 7.28571 37.0524 7.28571 36.9462 7.3L26.7362 8.79C25.1862 9.02 23.6462 9.25 22.1062 9.45C21.6862 9.51 21.4962 9.65 21.4362 10.1C20.6062 15.71 19.7362 21.2 18.9862 26.76C18.9319 27.5949 18.5939 28.3862 18.0283 29.0028C17.4627 29.6193 16.7034 30.0241 15.8762 30.15C14.8926 30.4065 13.86 30.409 12.8752 30.1571C11.8904 29.9052 10.9858 29.4073 10.2462 28.71C9.75686 28.3241 9.40435 27.7913 9.24053 27.19C9.07671 26.5888 9.11024 25.9508 9.33619 25.37C9.53716 24.8822 9.84859 24.4477 10.2459 24.1007C10.6433 23.7536 11.1158 23.5035 11.6262 23.37C12.5147 23.075 13.4579 22.9821 14.3869 23.098C15.3159 23.2139 16.2074 23.5357 16.9962 24.04L17.2862 24.21H17.4162C17.4162 24.05 17.5062 23.89 17.5362 23.72C18.5362 17.23 19.4562 10.72 20.3962 4.23C20.4562 3.78 20.5962 3.59 21.0862 3.52C24.9562 2.99 28.8162 2.42 32.6862 1.85L39.8062 0.849998H40.1462C40.1566 1.00315 40.1566 1.15684 40.1462 1.31C38.9929 9.15 37.8362 16.9967 36.6762 24.85C36.5963 25.3647 36.3888 25.8513 36.0727 26.2652C35.7565 26.6792 35.3417 27.0074 34.8662 27.22C33.7793 27.7291 32.5698 27.9177 31.3795 27.7636C30.1892 27.6095 29.0676 27.1191 28.1462 26.35C26.1462 24.49 26.6162 21.91 29.2162 20.96C30.1164 20.615 31.0853 20.4868 32.0443 20.5858C33.0033 20.6848 33.9254 21.0083 34.7362 21.53L35.0262 21.7L35.1562 21.64Z"
90
+ fill="var(--color-on-muted)"
91
+ />
92
+ </svg>
93
+ {/if}
94
+
95
+ {#if type === 'result'}
96
+ <svg class="empty-icon" viewBox="0 0 118 104" fill="none" xmlns="http://www.w3.org/2000/svg">
97
+ <path
98
+ d="M58.9662 81.6C59.5074 81.6 59.9462 81.1612 59.9462 80.62C59.9462 80.0788 59.5074 79.64 58.9662 79.64C58.425 79.64 57.9862 80.0788 57.9862 80.62C57.9862 81.1612 58.425 81.6 58.9662 81.6Z"
99
+ fill="var(--color-on-muted)"
100
+ />
101
+ <path
102
+ d="M30.4962 7.82V12.12"
103
+ stroke="var(--color-on-muted)"
104
+ stroke-linecap="round"
105
+ stroke-linejoin="round"
106
+ />
107
+ <path
108
+ d="M28.3462 9.97H32.6562"
109
+ stroke="var(--color-on-muted)"
110
+ stroke-linecap="round"
111
+ stroke-linejoin="round"
112
+ />
113
+ <path
114
+ d="M79.4562 34.96C71.0762 34.96 62.5662 34.62 54.5962 32.4C46.6262 30.18 39.5962 26.02 33.1962 21.15C28.9962 17.98 25.1962 15.45 19.7462 15.83C14.427 16.1166 9.34049 18.1042 5.23621 21.5C-1.69379 27.56 -0.643786 38.77 2.11621 46.65C6.28621 58.5 18.9562 66.75 29.7062 72.12C42.1362 78.33 55.7862 81.94 69.4862 84.01C81.4862 85.84 96.8962 87.16 107.296 79.32C116.856 72.12 119.476 55.68 117.136 44.58C116.565 41.2997 114.815 38.341 112.216 36.26C105.506 31.35 95.4962 34.63 87.9562 34.79C85.1562 34.85 82.3162 34.96 79.4562 34.96Z"
115
+ fill="var(--color-muted)"
116
+ />
117
+ <path
118
+ d="M65.9061 1.96C66.4474 1.96 66.8861 1.52124 66.8861 0.98C66.8861 0.43876 66.4474 0 65.9061 0C65.3649 0 64.9261 0.43876 64.9261 0.98C64.9261 1.52124 65.3649 1.96 65.9061 1.96Z"
119
+ fill="var(--color-on-muted)"
120
+ />
121
+ <path
122
+ d="M14.9962 78.27V82.57"
123
+ stroke="var(--color-on-muted)"
124
+ stroke-linecap="round"
125
+ stroke-linejoin="round"
126
+ />
127
+ <path
128
+ d="M12.8362 80.42H17.1462"
129
+ stroke="var(--color-on-muted)"
130
+ stroke-linecap="round"
131
+ stroke-linejoin="round"
132
+ />
133
+ <path
134
+ d="M59.3761 103.47C79.6505 103.47 96.0861 102.445 96.0861 101.18C96.0861 99.9153 79.6505 98.89 59.3761 98.89C39.1018 98.89 22.6661 99.9153 22.6661 101.18C22.6661 102.445 39.1018 103.47 59.3761 103.47Z"
135
+ fill="var(--color-muted)"
136
+ />
137
+ <path
138
+ d="M88.8762 76.65H25.4762C25.0518 76.6497 24.6326 76.5572 24.2475 76.379C23.8624 76.2007 23.5206 75.9409 23.2457 75.6176C22.9709 75.2943 22.7696 74.9151 22.6557 74.5063C22.5418 74.0975 22.5181 73.6689 22.5862 73.25L30.6862 24.07C30.7998 23.3856 31.1527 22.7637 31.6819 22.315C32.2111 21.8664 32.8824 21.6201 33.5762 21.62H96.9562C97.3805 21.6203 97.7997 21.7128 98.1849 21.891C98.57 22.0693 98.9117 22.3291 99.1866 22.6524C99.4614 22.9757 99.6627 23.3549 99.7766 23.7637C99.8905 24.1725 99.9142 24.6011 99.8462 25.02L91.7462 74.2C91.635 74.8819 91.2856 75.5023 90.7601 75.9509C90.2346 76.3995 89.5671 76.6472 88.8762 76.65Z"
139
+ fill="var(--color-muted)"
140
+ stroke="var(--color-on-muted)"
141
+ stroke-miterlimit="10"
142
+ />
143
+ <path
144
+ d="M89.6497 20.3311L52.0109 3.52595C50.9015 3.03059 49.6005 3.52842 49.1052 4.63789L37.176 31.3558C36.6807 32.4652 37.1785 33.7662 38.288 34.2615L75.9268 51.0666C77.0362 51.562 78.3372 51.0642 78.8325 49.9547L90.7616 23.2368C91.257 22.1274 90.7592 20.8264 89.6497 20.3311Z"
145
+ fill="var(--color-muted)"
146
+ stroke="var(--color-on-muted)"
147
+ stroke-miterlimit="10"
148
+ />
149
+ <path
150
+ d="M57.5361 25.51C58.539 24.1499 59.9767 23.1735 61.6106 22.7427C63.2446 22.3118 64.9768 22.4524 66.5199 23.1411C68.0631 23.8298 69.3244 25.0252 70.0949 26.5292C70.8654 28.0331 71.0987 29.7553 70.7561 31.41"
151
+ stroke="var(--color-on-muted)"
152
+ stroke-width="0.68"
153
+ stroke-linecap="round"
154
+ stroke-linejoin="round"
155
+ />
156
+ <path
157
+ d="M75.5462 24C76.1151 24 76.5762 23.5389 76.5762 22.97C76.5762 22.4011 76.1151 21.94 75.5462 21.94C74.9774 21.94 74.5162 22.4011 74.5162 22.97C74.5162 23.5389 74.9774 24 75.5462 24Z"
158
+ fill="var(--color-on-muted)"
159
+ />
160
+ <path
161
+ d="M60.6262 17.34C61.195 17.34 61.6562 16.8789 61.6562 16.31C61.6562 15.7411 61.195 15.28 60.6262 15.28C60.0573 15.28 59.5962 15.7411 59.5962 16.31C59.5962 16.8789 60.0573 17.34 60.6262 17.34Z"
162
+ fill="var(--color-on-muted)"
163
+ />
164
+ <path
165
+ d="M88.5962 76.63H24.8862C24.5011 76.6313 24.1194 76.5564 23.7634 76.4097C23.4073 76.2629 23.0838 76.0471 22.8114 75.7748C22.5391 75.5024 22.3233 75.1789 22.1765 74.8228C22.0298 74.4667 21.9549 74.0851 21.9562 73.7V28.7C21.9549 28.3157 22.0294 27.9349 22.1756 27.5795C22.3217 27.2241 22.5366 26.901 22.8079 26.6288C23.0792 26.3566 23.4015 26.1406 23.7564 25.9932C24.1114 25.8459 24.4919 25.77 24.8762 25.77H48.0762C48.6165 25.7701 49.1462 25.9197 49.6068 26.202C50.0674 26.4844 50.441 26.8886 50.6862 27.37L53.9962 33.85C54.2398 34.3306 54.6116 34.7345 55.0704 35.0168C55.5293 35.2992 56.0574 35.4491 56.5962 35.45H88.5962C89.3715 35.45 90.1153 35.7573 90.6645 36.3046C91.2137 36.852 91.5235 37.5947 91.5262 38.37V73.7C91.5262 74.0848 91.4504 74.4658 91.3032 74.8213C91.1559 75.1767 90.9401 75.4997 90.668 75.7718C90.3959 76.0439 90.0729 76.2597 89.7175 76.407C89.362 76.5542 88.981 76.63 88.5962 76.63Z"
166
+ fill="var(--color-muted)"
167
+ stroke="var(--color-on-muted)"
168
+ stroke-miterlimit="10"
169
+ />
170
+ <path
171
+ d="M78.8162 36.96C75.1355 36.96 71.5374 38.0515 68.477 40.0964C65.4166 42.1412 63.0313 45.0477 61.6228 48.4483C60.2142 51.8488 59.8457 55.5906 60.5638 59.2006C61.2818 62.8106 63.0543 66.1266 65.6569 68.7293C68.2596 71.3319 71.5756 73.1043 75.1856 73.8224C78.7955 74.5405 82.5374 74.1719 85.9379 72.7634C89.3385 71.3549 92.2449 68.9696 94.2898 65.9092C96.3347 62.8488 97.4262 59.2507 97.4262 55.57C97.4275 53.1257 96.947 50.7052 96.0123 48.4467C95.0775 46.1882 93.7067 44.1362 91.9784 42.4078C90.25 40.6795 88.1979 39.3087 85.9395 38.3739C83.681 37.4391 81.2605 36.9587 78.8162 36.96Z"
172
+ fill="var(--color-muted)"
173
+ stroke="var(--color-on-muted)"
174
+ stroke-miterlimit="10"
175
+ />
176
+ <path
177
+ d="M92.0361 69.09L96.9961 74.05"
178
+ stroke="var(--color-on-muted)"
179
+ stroke-width="0.68"
180
+ stroke-linecap="round"
181
+ stroke-linejoin="round"
182
+ />
183
+ <path
184
+ d="M96.4308 71.6517L94.8899 73.2637C94.1991 73.9862 94.2249 75.132 94.9475 75.8228L108.32 88.6064C109.043 89.2972 110.189 89.2714 110.879 88.5488L112.42 86.9368C113.111 86.2142 113.085 85.0685 112.363 84.3778L98.9899 71.5941C98.2673 70.9033 97.1216 70.9291 96.4308 71.6517Z"
185
+ fill="var(--color-on-muted)"
186
+ />
187
+ <path
188
+ d="M106.326 0.98V5.29"
189
+ stroke="var(--color-on-muted)"
190
+ stroke-linecap="round"
191
+ stroke-linejoin="round"
192
+ />
193
+ <path
194
+ d="M104.176 3.14H108.486"
195
+ stroke="var(--color-on-muted)"
196
+ stroke-linecap="round"
197
+ stroke-linejoin="round"
198
+ />
199
+ </svg>
200
+ {/if}
201
+
202
+ {#if type === 'data'}
203
+ <svg class="empty-icon" viewBox="0 0 136 108" fill="none" xmlns="http://www.w3.org/2000/svg">
204
+ <path
205
+ d="M79.4271 39.31C71.0471 39.36 62.5371 38.98 54.5771 36.76C46.6171 34.54 39.5771 30.38 33.1771 25.51C28.9871 22.34 25.1771 19.82 19.7371 20.2C14.4173 20.4838 9.32991 22.4718 5.22709 25.87C-1.69291 31.87 -0.642905 43.12 2.11709 51.01C6.27709 62.87 18.9371 71.12 29.6871 76.49C42.1171 82.69 55.7671 86.3 69.4571 88.37C81.4571 90.2 96.8571 91.52 107.257 83.69C116.807 76.49 119.427 60.05 117.087 48.96C116.52 45.6779 114.774 42.7158 112.177 40.63C105.467 35.73 95.4671 39.01 87.9271 39.17C85.1271 39.23 82.2871 39.3 79.4271 39.31Z"
206
+ fill="var(--color-muted)"
207
+ />
208
+ <path
209
+ d="M38.567 0.5V4.81"
210
+ stroke="var(--color-on-muted)"
211
+ stroke-linecap="round"
212
+ stroke-linejoin="round"
213
+ />
214
+ <path
215
+ d="M36.4171 2.65H40.7171"
216
+ stroke="var(--color-on-muted)"
217
+ stroke-linecap="round"
218
+ stroke-linejoin="round"
219
+ />
220
+ <path
221
+ d="M120.147 86.21V90.51"
222
+ stroke="var(--color-on-muted)"
223
+ stroke-linecap="round"
224
+ stroke-linejoin="round"
225
+ />
226
+ <path
227
+ d="M117.997 88.36H122.297"
228
+ stroke="var(--color-on-muted)"
229
+ stroke-linecap="round"
230
+ stroke-linejoin="round"
231
+ />
232
+ <path
233
+ d="M6.07705 67.64C6.61828 67.64 7.05704 67.2012 7.05704 66.66C7.05704 66.1188 6.61828 65.68 6.07705 65.68C5.53581 65.68 5.09705 66.1188 5.09705 66.66C5.09705 67.2012 5.53581 67.64 6.07705 67.64Z"
234
+ fill="var(--color-on-muted)"
235
+ />
236
+ <path
237
+ d="M89.5171 4.95C90.0583 4.95 90.4971 4.51124 90.4971 3.97C90.4971 3.42876 90.0583 2.99 89.5171 2.99C88.9759 2.99 88.5371 3.42876 88.5371 3.97C88.5371 4.51124 88.9759 4.95 89.5171 4.95Z"
238
+ fill="var(--color-on-muted)"
239
+ />
240
+ <path
241
+ d="M62.3571 107.81C82.626 107.81 99.0571 106.789 99.0571 105.53C99.0571 104.271 82.626 103.25 62.3571 103.25C42.0883 103.25 25.6571 104.271 25.6571 105.53C25.6571 106.789 42.0883 107.81 62.3571 107.81Z"
242
+ fill="var(--color-muted)"
243
+ />
244
+ <path
245
+ d="M34.0871 12.18H87.3871C88.7132 12.18 89.9849 12.7068 90.9226 13.6445C91.8603 14.5822 92.3871 15.8539 92.3871 17.18V80.59C92.3871 81.9161 91.8603 83.1879 90.9226 84.1255C89.9849 85.0632 88.7132 85.59 87.3871 85.59H27.2571C25.931 85.59 24.6592 85.0632 23.7215 84.1255C22.7839 83.1879 22.2571 81.9161 22.2571 80.59V24.13L34.0871 12.18Z"
246
+ fill="var(--color-on-muted)"
247
+ stroke="var(--color-on-muted)"
248
+ stroke-miterlimit="10"
249
+ />
250
+ <path
251
+ d="M92.147 43.09H37.187V86.21H92.147V43.09Z"
252
+ fill="var(--color-muted)"
253
+ stroke="var(--color-on-muted)"
254
+ stroke-miterlimit="10"
255
+ />
256
+ <path
257
+ d="M22.2571 24.13H31.9471C32.229 24.13 32.5081 24.0743 32.7683 23.9662C33.0286 23.858 33.265 23.6995 33.4638 23.4997C33.6627 23.2999 33.8201 23.0628 33.9271 22.802C34.034 22.5412 34.0884 22.2619 34.0871 21.98V12.18L22.2571 24.13Z"
258
+ fill="var(--color-on-muted)"
259
+ stroke="var(--color-muted)"
260
+ stroke-miterlimit="10"
261
+ />
262
+ <path
263
+ d="M91.877 29.31H37.517C35.4018 29.31 33.687 31.0248 33.687 33.14V44.77C33.687 46.8853 35.4018 48.6 37.517 48.6H91.877C93.9923 48.6 95.707 46.8853 95.707 44.77V33.14C95.707 31.0248 93.9923 29.31 91.877 29.31Z"
264
+ fill="var(--color-muted)"
265
+ stroke="var(--color-on-muted)"
266
+ stroke-miterlimit="10"
267
+ />
268
+ <path
269
+ d="M44.2471 42.32C46.0917 42.32 47.5871 40.8246 47.5871 38.98C47.5871 37.1354 46.0917 35.64 44.2471 35.64C42.4025 35.64 40.9071 37.1354 40.9071 38.98C40.9071 40.8246 42.4025 42.32 44.2471 42.32Z"
270
+ fill="var(--color-muted)"
271
+ stroke="var(--color-on-muted)"
272
+ stroke-miterlimit="10"
273
+ />
274
+ <path
275
+ d="M54.7471 42.32C56.5917 42.32 58.0871 40.8246 58.0871 38.98C58.0871 37.1354 56.5917 35.64 54.7471 35.64C52.9025 35.64 51.4071 37.1354 51.4071 38.98C51.4071 40.8246 52.9025 42.32 54.7471 42.32Z"
276
+ fill="var(--color-muted)"
277
+ stroke="var(--color-on-muted)"
278
+ stroke-miterlimit="10"
279
+ />
280
+ <path
281
+ d="M65.2371 42.32C67.0817 42.32 68.5771 40.8246 68.5771 38.98C68.5771 37.1354 67.0817 35.64 65.2371 35.64C63.3925 35.64 61.8971 37.1354 61.8971 38.98C61.8971 40.8246 63.3925 42.32 65.2371 42.32Z"
282
+ fill="var(--color-muted)"
283
+ stroke="var(--color-on-muted)"
284
+ stroke-miterlimit="10"
285
+ />
286
+ <path
287
+ d="M91.877 50.7H37.517C35.4018 50.7 33.687 52.4147 33.687 54.53V66.16C33.687 68.2753 35.4018 69.99 37.517 69.99H91.877C93.9923 69.99 95.707 68.2753 95.707 66.16V54.53C95.707 52.4147 93.9923 50.7 91.877 50.7Z"
288
+ fill="var(--color-muted)"
289
+ stroke="var(--color-on-muted)"
290
+ stroke-miterlimit="10"
291
+ />
292
+ <path
293
+ d="M44.2471 63.71C46.0917 63.71 47.5871 62.2146 47.5871 60.37C47.5871 58.5254 46.0917 57.03 44.2471 57.03C42.4025 57.03 40.9071 58.5254 40.9071 60.37C40.9071 62.2146 42.4025 63.71 44.2471 63.71Z"
294
+ fill="var(--color-muted)"
295
+ stroke="var(--color-on-muted)"
296
+ stroke-miterlimit="10"
297
+ />
298
+ <path
299
+ d="M54.7471 63.71C56.5917 63.71 58.0871 62.2146 58.0871 60.37C58.0871 58.5254 56.5917 57.03 54.7471 57.03C52.9025 57.03 51.4071 58.5254 51.4071 60.37C51.4071 62.2146 52.9025 63.71 54.7471 63.71Z"
300
+ fill="var(--color-muted)"
301
+ stroke="var(--color-on-muted)"
302
+ stroke-miterlimit="10"
303
+ />
304
+ <path
305
+ d="M65.2371 63.71C67.0817 63.71 68.5771 62.2146 68.5771 60.37C68.5771 58.5254 67.0817 57.03 65.2371 57.03C63.3925 57.03 61.8971 58.5254 61.8971 60.37C61.8971 62.2146 63.3925 63.71 65.2371 63.71Z"
306
+ fill="var(--color-muted)"
307
+ stroke="var(--color-on-muted)"
308
+ stroke-miterlimit="10"
309
+ />
310
+ <path
311
+ d="M91.877 72.08H37.517C35.4018 72.08 33.687 73.7948 33.687 75.91V87.54C33.687 89.6553 35.4018 91.37 37.517 91.37H91.877C93.9923 91.37 95.707 89.6553 95.707 87.54V75.91C95.707 73.7948 93.9923 72.08 91.877 72.08Z"
312
+ fill="var(--color-muted)"
313
+ stroke="var(--color-on-muted)"
314
+ stroke-miterlimit="10"
315
+ />
316
+ <path
317
+ d="M44.2471 85.09C46.0917 85.09 47.5871 83.5946 47.5871 81.75C47.5871 79.9054 46.0917 78.41 44.2471 78.41C42.4025 78.41 40.9071 79.9054 40.9071 81.75C40.9071 83.5946 42.4025 85.09 44.2471 85.09Z"
318
+ fill="var(--color-muted)"
319
+ stroke="var(--color-on-muted)"
320
+ stroke-miterlimit="10"
321
+ />
322
+ <path
323
+ d="M54.7471 85.09C56.5917 85.09 58.0871 83.5946 58.0871 81.75C58.0871 79.9054 56.5917 78.41 54.7471 78.41C52.9025 78.41 51.4071 79.9054 51.4071 81.75C51.4071 83.5946 52.9025 85.09 54.7471 85.09Z"
324
+ fill="var(--color-muted)"
325
+ stroke="var(--color-on-muted)"
326
+ stroke-miterlimit="10"
327
+ />
328
+ <path
329
+ d="M65.2371 85.09C67.0817 85.09 68.5771 83.5946 68.5771 81.75C68.5771 79.9054 67.0817 78.41 65.2371 78.41C63.3925 78.41 61.8971 79.9054 61.8971 81.75C61.8971 83.5946 63.3925 85.09 65.2371 85.09Z"
330
+ fill="var(--color-muted)"
331
+ stroke="var(--color-on-muted)"
332
+ stroke-miterlimit="10"
333
+ />
334
+ <path
335
+ d="M96.797 53.67C108.246 53.67 117.527 44.3889 117.527 32.94C117.527 21.4911 108.246 12.21 96.797 12.21C85.3482 12.21 76.067 21.4911 76.067 32.94C76.067 44.3889 85.3482 53.67 96.797 53.67Z"
336
+ fill="var(--color-muted)"
337
+ stroke="var(--color-on-muted)"
338
+ stroke-miterlimit="10"
339
+ />
340
+ <path
341
+ d="M111.517 47.98L117.037 53.51"
342
+ stroke="var(--color-on-muted)"
343
+ stroke-miterlimit="10"
344
+ />
345
+ <path
346
+ d="M116.411 50.83L114.697 52.6226C113.926 53.429 113.955 54.7077 114.762 55.4786L129.652 69.7134C130.459 70.4843 131.737 70.4555 132.508 69.6491L134.222 67.8564C134.993 67.05 134.964 65.7713 134.158 65.0004L119.267 50.7656C118.461 49.9947 117.182 50.0235 116.411 50.83Z"
347
+ fill="var(--color-muted)"
348
+ stroke="var(--color-on-muted)"
349
+ stroke-miterlimit="10"
350
+ />
351
+ </svg>
352
+ {/if}
353
+ {#if type === 'template'}
354
+ <svg class="empty-icon" viewBox="0 0 118 110" fill="none" xmlns="http://www.w3.org/2000/svg">
355
+ <path
356
+ d="M102.734 26.66V30.97"
357
+ stroke="var(--color-on-muted)"
358
+ stroke-linecap="round"
359
+ stroke-linejoin="round"
360
+ />
361
+ <path
362
+ d="M100.584 28.82H104.884"
363
+ stroke="var(--color-on-muted)"
364
+ stroke-linecap="round"
365
+ stroke-linejoin="round"
366
+ />
367
+ <path
368
+ d="M14.5745 10.03V14.34"
369
+ stroke="var(--color-on-muted)"
370
+ stroke-linecap="round"
371
+ stroke-linejoin="round"
372
+ />
373
+ <path
374
+ d="M12.4146 12.18H16.7246"
375
+ stroke="var(--color-on-muted)"
376
+ stroke-linecap="round"
377
+ stroke-linejoin="round"
378
+ />
379
+ <path
380
+ d="M48.0344 1.96C48.5757 1.96 49.0144 1.52124 49.0144 0.98C49.0144 0.43876 48.5757 0 48.0344 0C47.4932 0 47.0544 0.43876 47.0544 0.98C47.0544 1.52124 47.4932 1.96 48.0344 1.96Z"
381
+ fill="var(--color-on-muted)"
382
+ />
383
+ <path
384
+ d="M79.4545 40.92C71.0745 40.92 62.5645 40.59 54.5945 38.37C46.7745 36.17 39.6345 31.99 33.1945 27.17C28.9945 23.99 25.1945 21.47 19.7445 21.85C14.4314 22.1238 9.3459 24.0935 5.2345 27.47C-1.6955 33.53 -0.645498 44.74 2.1245 52.62C6.2845 64.49 18.9845 72.74 29.7045 78.11C42.1345 84.32 55.7845 87.93 69.4845 90C81.4845 91.83 96.8945 93.15 107.295 85.31C116.855 78.11 119.474 61.67 117.134 50.57C116.566 47.2887 114.816 44.3292 112.215 42.25C105.505 37.34 95.5045 40.62 87.9645 40.78C85.1645 40.84 82.3145 40.91 79.4545 40.92Z"
385
+ fill="var(--color-muted)"
386
+ />
387
+ <path
388
+ d="M58.9645 109.46C79.2389 109.46 95.6745 108.435 95.6745 107.17C95.6745 105.905 79.2389 104.88 58.9645 104.88C38.6901 104.88 22.2545 105.905 22.2545 107.17C22.2545 108.435 38.6901 109.46 58.9645 109.46Z"
389
+ fill="var(--color-muted)"
390
+ />
391
+ <path
392
+ d="M74.5591 3.32266L25.6838 9.93086C24.1185 10.1425 23.0212 11.583 23.2328 13.1483L32.711 83.2504C32.9226 84.8157 34.3631 85.9131 35.9284 85.7014L84.8037 79.0932C86.369 78.8816 87.4663 77.4411 87.2547 75.8758L77.7765 5.77367C77.5649 4.20838 76.1244 3.11102 74.5591 3.32266Z"
393
+ fill="var(--color-on-muted)"
394
+ />
395
+ <path
396
+ d="M90.8045 13.62H41.4845C39.905 13.62 38.6245 14.9005 38.6245 16.48V87.22C38.6245 88.7995 39.905 90.08 41.4845 90.08H90.8045C92.384 90.08 93.6645 88.7995 93.6645 87.22V16.48C93.6645 14.9005 92.384 13.62 90.8045 13.62Z"
397
+ fill="var(--color-muted)"
398
+ stroke="var(--color-on-muted)"
399
+ stroke-miterlimit="10"
400
+ />
401
+ <path
402
+ d="M77.9944 68.53H54.2844C53.3953 68.53 52.6744 69.2508 52.6744 70.14V70.15C52.6744 71.0392 53.3953 71.76 54.2844 71.76H77.9944C78.8836 71.76 79.6044 71.0392 79.6044 70.15V70.14C79.6044 69.2508 78.8836 68.53 77.9944 68.53Z"
403
+ fill="var(--color-on-muted)"
404
+ />
405
+ <path
406
+ d="M77.1445 81.73H54.3945C54.1239 81.73 53.9045 81.9494 53.9045 82.22V82.37C53.9045 82.6406 54.1239 82.86 54.3945 82.86H77.1445C77.4152 82.86 77.6345 82.6406 77.6345 82.37V82.22C77.6345 81.9494 77.4152 81.73 77.1445 81.73Z"
407
+ fill="var(--color-on-muted)"
408
+ />
409
+ <path
410
+ d="M82.9445 76.44H49.4345C49.0756 76.44 48.7845 76.731 48.7845 77.09C48.7845 77.449 49.0756 77.74 49.4345 77.74H82.9445C83.3035 77.74 83.5945 77.449 83.5945 77.09C83.5945 76.731 83.3035 76.44 82.9445 76.44Z"
411
+ fill="var(--color-on-muted)"
412
+ />
413
+ <path
414
+ d="M89.0745 15.94H43.2145C42.0768 15.94 41.1545 16.8623 41.1545 18V57.77C41.1545 58.9077 42.0768 59.83 43.2145 59.83H89.0745C90.2122 59.83 91.1345 58.9077 91.1345 57.77V18C91.1345 16.8623 90.2122 15.94 89.0745 15.94Z"
415
+ fill="var(--color-muted)"
416
+ stroke="var(--color-on-muted)"
417
+ stroke-miterlimit="10"
418
+ />
419
+ <path
420
+ d="M72.2645 47.51C72.5938 47.5077 72.9144 47.4039 73.1825 47.2126C73.4506 47.0214 73.6532 46.7521 73.7626 46.4414C73.872 46.1308 73.8828 45.794 73.7937 45.477C73.7045 45.1599 73.5197 44.8781 73.2645 44.67C71.1761 42.9479 68.5476 42.017 65.8408 42.0408C63.1341 42.0645 60.5223 43.0415 58.4645 44.8C58.2148 45.015 58.0371 45.3014 57.9554 45.6205C57.8736 45.9397 57.8918 46.2762 58.0073 46.5848C58.1229 46.8933 58.3303 47.1589 58.6016 47.3458C58.8729 47.5328 59.195 47.6319 59.5245 47.63L72.2645 47.51Z"
421
+ stroke="var(--color-on-muted)"
422
+ stroke-width="0.71"
423
+ stroke-linecap="round"
424
+ stroke-linejoin="round"
425
+ />
426
+ <path
427
+ d="M80.4345 37.49L74.6045 34.13L80.4345 30.77"
428
+ stroke="var(--color-on-muted)"
429
+ stroke-width="0.71"
430
+ stroke-linecap="round"
431
+ stroke-linejoin="round"
432
+ />
433
+ <path
434
+ d="M51.3745 37.49L57.1945 34.13L51.3745 30.77"
435
+ stroke="var(--color-on-muted)"
436
+ stroke-width="0.71"
437
+ stroke-linecap="round"
438
+ stroke-linejoin="round"
439
+ />
440
+ <path
441
+ d="M19.4045 58.83V63.13"
442
+ stroke="var(--color-on-muted)"
443
+ stroke-linecap="round"
444
+ stroke-linejoin="round"
445
+ />
446
+ <path
447
+ d="M17.2545 60.98H21.5545"
448
+ stroke="var(--color-on-muted)"
449
+ stroke-linecap="round"
450
+ stroke-linejoin="round"
451
+ />
452
+ <path
453
+ d="M100.904 61.87C101.446 61.87 101.884 61.4312 101.884 60.89C101.884 60.3488 101.446 59.91 100.904 59.91C100.363 59.91 99.9244 60.3488 99.9244 60.89C99.9244 61.4312 100.363 61.87 100.904 61.87Z"
454
+ fill="var(--color-on-muted)"
455
+ />
456
+ </svg>
457
+ {/if}
458
+ <div>
459
+ <h6>Title</h6>
460
+ <p>Description Error</p>
461
+ </div>
462
+ </div>
@@ -0,0 +1,11 @@
1
+ type Props = {
2
+ type?: 'playlist' | 'result' | 'data' | 'template';
3
+ class?: string;
4
+ title?: string;
5
+ description?: string;
6
+ href?: string;
7
+ onclick?: () => void;
8
+ };
9
+ declare const Empty: import("svelte").Component<Props, {}, "">;
10
+ type Empty = ReturnType<typeof Empty>;
11
+ export default Empty;
@@ -0,0 +1,20 @@
1
+ <script lang="ts" module>
2
+ export type IconData = {
3
+ body: string;
4
+ viewbox: string;
5
+ };
6
+ </script>
7
+
8
+ <script lang="ts">
9
+ import { cn } from '../utils/class-names.js';
10
+
11
+ type Props = {
12
+ icon: IconData;
13
+ class?: string;
14
+ };
15
+ const { icon, class: className }: Props = $props();
16
+ </script>
17
+
18
+ <svg viewBox={icon.viewbox} class={cn('icon', className)} xmlns="http://www.w3.org/2000/svg">
19
+ {@html icon.body}
20
+ </svg>
@@ -0,0 +1,11 @@
1
+ export type IconData = {
2
+ body: string;
3
+ viewbox: string;
4
+ };
5
+ type Props = {
6
+ icon: IconData;
7
+ class?: string;
8
+ };
9
+ declare const Icon: import("svelte").Component<Props, {}, "">;
10
+ type Icon = ReturnType<typeof Icon>;
11
+ export default Icon;
@@ -0,0 +1,119 @@
1
+ <script lang="ts">
2
+ import { Avatar } from '../index.js';
3
+ import { cn } from '../utils/class-names.js';
4
+ import type { Snippet } from 'svelte';
5
+
6
+ type Props = {
7
+ id?: string | number;
8
+ label?: string;
9
+ description?: string;
10
+ src?: string;
11
+ variant?: 'ghost' | 'outlined' | 'surface' | 'primary' | 'secondary' | 'muted';
12
+ size?: 'sm' | 'md' | 'lg';
13
+ status?: 'online' | 'offline' | 'busy' | 'away';
14
+ href?: string;
15
+ isDisabled?: boolean;
16
+ isActive?: boolean;
17
+ isFocused?: boolean;
18
+ isCompact?: boolean;
19
+ hasDivider?: boolean;
20
+ hasShadow?: boolean;
21
+ onclick?: (id: string | number) => void;
22
+ actions?: Snippet;
23
+ isSolid?: boolean;
24
+ class?: string;
25
+ };
26
+
27
+ let {
28
+ id,
29
+ label,
30
+ description,
31
+ src,
32
+ variant = 'ghost',
33
+ size = 'md',
34
+ status,
35
+ href,
36
+ isDisabled,
37
+ isActive,
38
+ isFocused,
39
+ isCompact,
40
+ hasDivider,
41
+ hasShadow,
42
+ onclick,
43
+ actions,
44
+ isSolid,
45
+ class: className
46
+ }: Props = $props();
47
+
48
+ const variantClasses = {
49
+ ghost: 'is-ghost',
50
+ outlined: 'is-outlined',
51
+ surface: 'is-surface',
52
+ primary: 'is-primary',
53
+ secondary: 'is-secondary',
54
+ muted: 'is-muted'
55
+ };
56
+
57
+ const sizeClasses = {
58
+ sm: 'is-sm',
59
+ md: 'is-md',
60
+ lg: 'is-lg'
61
+ };
62
+
63
+ const avatarSizes: Record<string, 'sm' | 'md' | 'lg' | 'xl'> = {
64
+ sm: 'md',
65
+ md: 'lg',
66
+ lg: 'xl'
67
+ };
68
+
69
+ const isInteractive = $derived(!!href || !!onclick);
70
+
71
+ let itemClasses = $derived(
72
+ cn(
73
+ 'item',
74
+ variantClasses[variant],
75
+ sizeClasses[size],
76
+ isInteractive && !isDisabled && 'is-interactive',
77
+ isActive && 'is-active',
78
+ isFocused && 'is-focused',
79
+ isDisabled && 'is-disabled',
80
+ isCompact && 'is-compact',
81
+ isSolid && 'is-solid',
82
+ hasDivider && 'has-divider',
83
+ hasShadow && 'has-shadow',
84
+ !!src && !label && !description && 'has-icon-only',
85
+ className
86
+ )
87
+ );
88
+ </script>
89
+
90
+ {#snippet itemContent()}
91
+ {#if src}
92
+ <Avatar {src} {status} size={avatarSizes[size]} variant="transparent" />
93
+ {/if}
94
+ <div class="item-body">
95
+ <div class="item-label">{label}</div>
96
+ {#if description}
97
+ <div class="item-description">{description}</div>
98
+ {/if}
99
+ </div>
100
+ {#if actions}
101
+ <div class="item-actions">
102
+ {@render actions()}
103
+ </div>
104
+ {/if}
105
+ {/snippet}
106
+
107
+ {#if href && !isDisabled}
108
+ <a {href} class={itemClasses} aria-disabled={isDisabled}>
109
+ {@render itemContent()}
110
+ </a>
111
+ {:else if onclick && id && !isDisabled}
112
+ <button type="button" class={itemClasses} onclick={() => onclick(id)} disabled={isDisabled}>
113
+ {@render itemContent()}
114
+ </button>
115
+ {:else}
116
+ <div class={itemClasses} aria-disabled={isDisabled} aria-selected={isActive}>
117
+ {@render itemContent()}
118
+ </div>
119
+ {/if}
@@ -0,0 +1,24 @@
1
+ import type { Snippet } from 'svelte';
2
+ type Props = {
3
+ id?: string | number;
4
+ label?: string;
5
+ description?: string;
6
+ src?: string;
7
+ variant?: 'ghost' | 'outlined' | 'surface' | 'primary' | 'secondary' | 'muted';
8
+ size?: 'sm' | 'md' | 'lg';
9
+ status?: 'online' | 'offline' | 'busy' | 'away';
10
+ href?: string;
11
+ isDisabled?: boolean;
12
+ isActive?: boolean;
13
+ isFocused?: boolean;
14
+ isCompact?: boolean;
15
+ hasDivider?: boolean;
16
+ hasShadow?: boolean;
17
+ onclick?: (id: string | number) => void;
18
+ actions?: Snippet;
19
+ isSolid?: boolean;
20
+ class?: string;
21
+ };
22
+ declare const Item: import("svelte").Component<Props, {}, "">;
23
+ type Item = ReturnType<typeof Item>;
24
+ export default Item;
@@ -0,0 +1,8 @@
1
+ <script>
2
+ import { DotsMoveIcon } from '../icons/index.js';
3
+ import { Icon } from '../index.js';
4
+ </script>
5
+
6
+ <span class="btn-loading">
7
+ <Icon icon={DotsMoveIcon} class="loading-icon" />
8
+ </span>