rizzo-css 0.0.17 → 0.0.18

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 (260) hide show
  1. package/README.md +4 -4
  2. package/bin/rizzo-css.js +151 -103
  3. package/package.json +7 -3
  4. package/scaffold/astro-minimal/.env.example +3 -0
  5. package/scaffold/astro-minimal/README.md +36 -0
  6. package/scaffold/astro-minimal/package.json +13 -0
  7. package/scaffold/astro-minimal/src/layouts/Layout.astro +28 -0
  8. package/scaffold/astro-minimal/src/pages/index.astro +10 -0
  9. package/scaffold/svelte-minimal/.env.example +3 -0
  10. package/scaffold/svelte-minimal/README.md +37 -0
  11. package/scaffold/svelte-minimal/package.json +20 -0
  12. package/scaffold/svelte-minimal/src/app.d.ts +11 -0
  13. package/scaffold/svelte-minimal/src/app.html +15 -0
  14. package/scaffold/svelte-minimal/src/routes/+layout.svelte +1 -0
  15. package/scaffold/svelte-minimal/src/routes/+page.svelte +5 -0
  16. package/scaffold/svelte-minimal/svelte.config.js +10 -0
  17. package/scaffold/svelte-minimal/tsconfig.json +11 -0
  18. package/scaffold/vanilla/README.md +4 -4
  19. package/scaffold/vanilla/components/accordion.html +8 -0
  20. package/scaffold/vanilla/components/alert.html +8 -0
  21. package/scaffold/vanilla/components/avatar.html +8 -0
  22. package/scaffold/vanilla/components/badge.html +8 -0
  23. package/scaffold/vanilla/components/breadcrumb.html +8 -0
  24. package/scaffold/vanilla/components/button.html +8 -0
  25. package/scaffold/vanilla/components/cards.html +8 -0
  26. package/scaffold/vanilla/components/copy-to-clipboard.html +8 -0
  27. package/scaffold/vanilla/components/divider.html +8 -0
  28. package/scaffold/vanilla/components/dropdown.html +8 -0
  29. package/scaffold/vanilla/components/forms.html +8 -0
  30. package/scaffold/vanilla/components/icons.html +8 -0
  31. package/scaffold/vanilla/components/index.html +8 -0
  32. package/scaffold/vanilla/components/modal.html +8 -0
  33. package/scaffold/vanilla/components/navbar.html +8 -0
  34. package/scaffold/vanilla/components/pagination.html +8 -0
  35. package/scaffold/vanilla/components/progress-bar.html +8 -0
  36. package/scaffold/vanilla/components/search.html +8 -0
  37. package/scaffold/vanilla/components/settings.html +8 -0
  38. package/scaffold/vanilla/components/spinner.html +8 -0
  39. package/scaffold/vanilla/components/table.html +8 -0
  40. package/scaffold/vanilla/components/tabs.html +8 -0
  41. package/scaffold/vanilla/components/theme-switcher.html +8 -0
  42. package/scaffold/vanilla/components/toast.html +8 -0
  43. package/scaffold/vanilla/components/tooltip.html +8 -0
  44. package/scaffold/vanilla/index.html +8 -0
  45. package/scaffold/astro-app/README.md +0 -43
  46. package/scaffold/astro-app/package.json +0 -1
  47. package/scaffold/astro-app/src/components/Accordion.astro +0 -178
  48. package/scaffold/astro-app/src/components/Alert.astro +0 -131
  49. package/scaffold/astro-app/src/components/Avatar.astro +0 -59
  50. package/scaffold/astro-app/src/components/Badge.astro +0 -24
  51. package/scaffold/astro-app/src/components/Breadcrumb.astro +0 -61
  52. package/scaffold/astro-app/src/components/Button.astro +0 -3
  53. package/scaffold/astro-app/src/components/Card.astro +0 -18
  54. package/scaffold/astro-app/src/components/Checkbox.astro +0 -38
  55. package/scaffold/astro-app/src/components/CliCommandTabs.astro +0 -90
  56. package/scaffold/astro-app/src/components/CodeBlock.astro +0 -393
  57. package/scaffold/astro-app/src/components/CopyToClipboard.astro +0 -219
  58. package/scaffold/astro-app/src/components/Divider.astro +0 -37
  59. package/scaffold/astro-app/src/components/DocsSidebar.astro +0 -51
  60. package/scaffold/astro-app/src/components/Dropdown.astro +0 -807
  61. package/scaffold/astro-app/src/components/FormGroup.astro +0 -59
  62. package/scaffold/astro-app/src/components/FrameworkSwitcher.astro +0 -72
  63. package/scaffold/astro-app/src/components/Input.astro +0 -59
  64. package/scaffold/astro-app/src/components/Modal.astro +0 -212
  65. package/scaffold/astro-app/src/components/Navbar.astro +0 -623
  66. package/scaffold/astro-app/src/components/PackageInstallTabs.astro +0 -87
  67. package/scaffold/astro-app/src/components/Pagination.astro +0 -240
  68. package/scaffold/astro-app/src/components/ProgressBar.astro +0 -65
  69. package/scaffold/astro-app/src/components/Radio.astro +0 -38
  70. package/scaffold/astro-app/src/components/Search.astro +0 -1259
  71. package/scaffold/astro-app/src/components/Select.astro +0 -49
  72. package/scaffold/astro-app/src/components/Settings.astro +0 -382
  73. package/scaffold/astro-app/src/components/Spinner.astro +0 -30
  74. package/scaffold/astro-app/src/components/Table.astro +0 -181
  75. package/scaffold/astro-app/src/components/Tabs.astro +0 -223
  76. package/scaffold/astro-app/src/components/Textarea.astro +0 -58
  77. package/scaffold/astro-app/src/components/ThemeIcon.astro +0 -50
  78. package/scaffold/astro-app/src/components/ThemeSwitcher.astro +0 -504
  79. package/scaffold/astro-app/src/components/Toast.astro +0 -30
  80. package/scaffold/astro-app/src/components/Tooltip.astro +0 -32
  81. package/scaffold/astro-app/src/components/icons/Brush.astro +0 -10
  82. package/scaffold/astro-app/src/components/icons/Cake.astro +0 -11
  83. package/scaffold/astro-app/src/components/icons/Check.astro +0 -29
  84. package/scaffold/astro-app/src/components/icons/Cherry.astro +0 -11
  85. package/scaffold/astro-app/src/components/icons/ChevronDown.astro +0 -29
  86. package/scaffold/astro-app/src/components/icons/Circle.astro +0 -29
  87. package/scaffold/astro-app/src/components/icons/Close.astro +0 -30
  88. package/scaffold/astro-app/src/components/icons/Cmd.astro +0 -26
  89. package/scaffold/astro-app/src/components/icons/Copy.astro +0 -30
  90. package/scaffold/astro-app/src/components/icons/Eye.astro +0 -30
  91. package/scaffold/astro-app/src/components/icons/Filter.astro +0 -29
  92. package/scaffold/astro-app/src/components/icons/Flame.astro +0 -28
  93. package/scaffold/astro-app/src/components/icons/Flower.astro +0 -11
  94. package/scaffold/astro-app/src/components/icons/Gear.astro +0 -30
  95. package/scaffold/astro-app/src/components/icons/Heart.astro +0 -28
  96. package/scaffold/astro-app/src/components/icons/IceCream.astro +0 -31
  97. package/scaffold/astro-app/src/components/icons/Leaf.astro +0 -29
  98. package/scaffold/astro-app/src/components/icons/Lemon.astro +0 -11
  99. package/scaffold/astro-app/src/components/icons/Moon.astro +0 -29
  100. package/scaffold/astro-app/src/components/icons/Owl.astro +0 -34
  101. package/scaffold/astro-app/src/components/icons/Palette.astro +0 -33
  102. package/scaffold/astro-app/src/components/icons/Rainbow.astro +0 -31
  103. package/scaffold/astro-app/src/components/icons/Search.astro +0 -30
  104. package/scaffold/astro-app/src/components/icons/Shield.astro +0 -28
  105. package/scaffold/astro-app/src/components/icons/Snowflake.astro +0 -34
  106. package/scaffold/astro-app/src/components/icons/Sort.astro +0 -30
  107. package/scaffold/astro-app/src/components/icons/Sun.astro +0 -29
  108. package/scaffold/astro-app/src/components/icons/Sunset.astro +0 -10
  109. package/scaffold/astro-app/src/components/icons/Zap.astro +0 -9
  110. package/scaffold/astro-app/src/components/icons/devicons/Astro.astro +0 -53
  111. package/scaffold/astro-app/src/components/icons/devicons/Bash.astro +0 -34
  112. package/scaffold/astro-app/src/components/icons/devicons/Css3.astro +0 -29
  113. package/scaffold/astro-app/src/components/icons/devicons/Git.astro +0 -24
  114. package/scaffold/astro-app/src/components/icons/devicons/Html5.astro +0 -27
  115. package/scaffold/astro-app/src/components/icons/devicons/Javascript.astro +0 -25
  116. package/scaffold/astro-app/src/components/icons/devicons/Nodejs.astro +0 -47
  117. package/scaffold/astro-app/src/components/icons/devicons/Plaintext.astro +0 -33
  118. package/scaffold/astro-app/src/components/icons/devicons/React.astro +0 -27
  119. package/scaffold/astro-app/src/components/icons/devicons/Svelte.astro +0 -25
  120. package/scaffold/astro-app/src/components/icons/devicons/Vue.astro +0 -26
  121. package/scaffold/astro-app/src/config/frameworks.ts +0 -26
  122. package/scaffold/astro-app/src/config/themes.ts +0 -54
  123. package/scaffold/astro-app/src/layouts/DocsLayout.astro +0 -263
  124. package/scaffold/astro-app/src/layouts/Layout.astro +0 -41
  125. package/scaffold/astro-app/src/pages/components/accordion.astro +0 -172
  126. package/scaffold/astro-app/src/pages/components/alert.astro +0 -250
  127. package/scaffold/astro-app/src/pages/components/avatar.astro +0 -102
  128. package/scaffold/astro-app/src/pages/components/badge.astro +0 -119
  129. package/scaffold/astro-app/src/pages/components/breadcrumb.astro +0 -124
  130. package/scaffold/astro-app/src/pages/components/button.astro +0 -74
  131. package/scaffold/astro-app/src/pages/components/cards.astro +0 -247
  132. package/scaffold/astro-app/src/pages/components/copy-to-clipboard.astro +0 -49
  133. package/scaffold/astro-app/src/pages/components/divider.astro +0 -74
  134. package/scaffold/astro-app/src/pages/components/dropdown.astro +0 -394
  135. package/scaffold/astro-app/src/pages/components/forms.astro +0 -367
  136. package/scaffold/astro-app/src/pages/components/icons.astro +0 -246
  137. package/scaffold/astro-app/src/pages/components/modal.astro +0 -152
  138. package/scaffold/astro-app/src/pages/components/navbar.astro +0 -80
  139. package/scaffold/astro-app/src/pages/components/pagination.astro +0 -126
  140. package/scaffold/astro-app/src/pages/components/progress-bar.astro +0 -94
  141. package/scaffold/astro-app/src/pages/components/search.astro +0 -155
  142. package/scaffold/astro-app/src/pages/components/settings.astro +0 -78
  143. package/scaffold/astro-app/src/pages/components/spinner.astro +0 -81
  144. package/scaffold/astro-app/src/pages/components/table.astro +0 -144
  145. package/scaffold/astro-app/src/pages/components/tabs.astro +0 -220
  146. package/scaffold/astro-app/src/pages/components/theme-switcher.astro +0 -69
  147. package/scaffold/astro-app/src/pages/components/toast.astro +0 -157
  148. package/scaffold/astro-app/src/pages/components/tooltip.astro +0 -209
  149. package/scaffold/astro-app/src/pages/components.astro +0 -290
  150. package/scaffold/astro-app/src/pages/docs/accessibility.astro +0 -9
  151. package/scaffold/astro-app/src/pages/docs/colors.astro +0 -9
  152. package/scaffold/astro-app/src/pages/docs/design-system.astro +0 -9
  153. package/scaffold/astro-app/src/pages/docs/getting-started.astro +0 -9
  154. package/scaffold/astro-app/src/pages/docs/index.astro +0 -15
  155. package/scaffold/astro-app/src/pages/docs/themes/[theme].astro +0 -14
  156. package/scaffold/astro-app/src/pages/docs/theming.astro +0 -10
  157. package/scaffold/astro-app/src/pages/index.astro +0 -24
  158. package/scaffold/svelte-app/README.md +0 -39
  159. package/scaffold/svelte-app/package.json +0 -22
  160. package/scaffold/svelte-app/src/app.d.ts +0 -28
  161. package/scaffold/svelte-app/src/app.html +0 -21
  162. package/scaffold/svelte-app/src/lib/assets/favicon.svg +0 -1
  163. package/scaffold/svelte-app/src/lib/rizzo/Accordion.svelte +0 -128
  164. package/scaffold/svelte-app/src/lib/rizzo/Alert.svelte +0 -85
  165. package/scaffold/svelte-app/src/lib/rizzo/Avatar.svelte +0 -39
  166. package/scaffold/svelte-app/src/lib/rizzo/Badge.svelte +0 -31
  167. package/scaffold/svelte-app/src/lib/rizzo/Breadcrumb.svelte +0 -49
  168. package/scaffold/svelte-app/src/lib/rizzo/Button.svelte +0 -27
  169. package/scaffold/svelte-app/src/lib/rizzo/Card.svelte +0 -17
  170. package/scaffold/svelte-app/src/lib/rizzo/Checkbox.svelte +0 -37
  171. package/scaffold/svelte-app/src/lib/rizzo/CopyToClipboard.svelte +0 -79
  172. package/scaffold/svelte-app/src/lib/rizzo/Divider.svelte +0 -28
  173. package/scaffold/svelte-app/src/lib/rizzo/Dropdown.svelte +0 -254
  174. package/scaffold/svelte-app/src/lib/rizzo/FormGroup.svelte +0 -51
  175. package/scaffold/svelte-app/src/lib/rizzo/Input.svelte +0 -59
  176. package/scaffold/svelte-app/src/lib/rizzo/Modal.svelte +0 -157
  177. package/scaffold/svelte-app/src/lib/rizzo/Pagination.svelte +0 -93
  178. package/scaffold/svelte-app/src/lib/rizzo/ProgressBar.svelte +0 -58
  179. package/scaffold/svelte-app/src/lib/rizzo/Radio.svelte +0 -38
  180. package/scaffold/svelte-app/src/lib/rizzo/Select.svelte +0 -51
  181. package/scaffold/svelte-app/src/lib/rizzo/Spinner.svelte +0 -14
  182. package/scaffold/svelte-app/src/lib/rizzo/Table.svelte +0 -158
  183. package/scaffold/svelte-app/src/lib/rizzo/Tabs.svelte +0 -117
  184. package/scaffold/svelte-app/src/lib/rizzo/Textarea.svelte +0 -59
  185. package/scaffold/svelte-app/src/lib/rizzo/ThemeIcon.svelte +0 -54
  186. package/scaffold/svelte-app/src/lib/rizzo/ThemeSwitcher.svelte +0 -315
  187. package/scaffold/svelte-app/src/lib/rizzo/Toast.svelte +0 -33
  188. package/scaffold/svelte-app/src/lib/rizzo/Tooltip.svelte +0 -19
  189. package/scaffold/svelte-app/src/lib/rizzo/icons/Check.svelte +0 -29
  190. package/scaffold/svelte-app/src/lib/rizzo/icons/ChevronDown.svelte +0 -29
  191. package/scaffold/svelte-app/src/lib/rizzo/icons/Circle.svelte +0 -29
  192. package/scaffold/svelte-app/src/lib/rizzo/icons/Close.svelte +0 -30
  193. package/scaffold/svelte-app/src/lib/rizzo/icons/Cmd.svelte +0 -27
  194. package/scaffold/svelte-app/src/lib/rizzo/icons/Copy.svelte +0 -30
  195. package/scaffold/svelte-app/src/lib/rizzo/icons/Eye.svelte +0 -30
  196. package/scaffold/svelte-app/src/lib/rizzo/icons/Filter.svelte +0 -29
  197. package/scaffold/svelte-app/src/lib/rizzo/icons/Gear.svelte +0 -30
  198. package/scaffold/svelte-app/src/lib/rizzo/icons/IceCream.svelte +0 -31
  199. package/scaffold/svelte-app/src/lib/rizzo/icons/Moon.svelte +0 -29
  200. package/scaffold/svelte-app/src/lib/rizzo/icons/Owl.svelte +0 -34
  201. package/scaffold/svelte-app/src/lib/rizzo/icons/Palette.svelte +0 -33
  202. package/scaffold/svelte-app/src/lib/rizzo/icons/Rainbow.svelte +0 -31
  203. package/scaffold/svelte-app/src/lib/rizzo/icons/Search.svelte +0 -30
  204. package/scaffold/svelte-app/src/lib/rizzo/icons/Snowflake.svelte +0 -34
  205. package/scaffold/svelte-app/src/lib/rizzo/icons/Sort.svelte +0 -30
  206. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Astro.svelte +0 -45
  207. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Bash.svelte +0 -28
  208. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Css3.svelte +0 -23
  209. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Git.svelte +0 -18
  210. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Html5.svelte +0 -21
  211. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Javascript.svelte +0 -19
  212. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Nodejs.svelte +0 -44
  213. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Plaintext.svelte +0 -24
  214. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/React.svelte +0 -21
  215. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/SvelteIcon.svelte +0 -19
  216. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Vue.svelte +0 -20
  217. package/scaffold/svelte-app/src/lib/rizzo/index.ts +0 -35
  218. package/scaffold/svelte-app/src/lib/rizzo-docs/CodeBlock.svelte +0 -239
  219. package/scaffold/svelte-app/src/lib/rizzo-docs/SvelteDocPage.svelte +0 -99
  220. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/AccordionDoc.svelte +0 -53
  221. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/AlertDoc.svelte +0 -114
  222. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/AvatarDoc.svelte +0 -92
  223. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/BadgeDoc.svelte +0 -60
  224. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/BreadcrumbDoc.svelte +0 -55
  225. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ButtonDoc.svelte +0 -55
  226. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/CardsDoc.svelte +0 -173
  227. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ComingSoon.svelte +0 -12
  228. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ComponentsOverview.svelte +0 -92
  229. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/CopyToClipboardDoc.svelte +0 -26
  230. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/DividerDoc.svelte +0 -105
  231. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/DropdownDoc.svelte +0 -161
  232. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/FormsDoc.svelte +0 -375
  233. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/IconsDoc.svelte +0 -246
  234. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/Index.svelte +0 -8
  235. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ModalDoc.svelte +0 -50
  236. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/NavbarDoc.svelte +0 -79
  237. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/PaginationDoc.svelte +0 -44
  238. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ProgressBarDoc.svelte +0 -95
  239. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/SearchDoc.svelte +0 -147
  240. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/SettingsDoc.svelte +0 -158
  241. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/SpinnerDoc.svelte +0 -41
  242. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/TableDoc.svelte +0 -116
  243. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/TabsDoc.svelte +0 -152
  244. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ThemeSwitcherDoc.svelte +0 -189
  245. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/Theming.svelte +0 -6
  246. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ToastDoc.svelte +0 -136
  247. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/TooltipDoc.svelte +0 -57
  248. package/scaffold/svelte-app/src/routes/+layout.svelte +0 -10
  249. package/scaffold/svelte-app/src/routes/+page.svelte +0 -31
  250. package/scaffold/svelte-app/src/routes/components/+page.svelte +0 -4
  251. package/scaffold/svelte-app/src/routes/components/[slug]/+page.svelte +0 -7
  252. package/scaffold/svelte-app/static/robots.txt +0 -3
  253. package/scaffold/svelte-app/svelte.config.js +0 -13
  254. package/scaffold/svelte-app/tsconfig.json +0 -21
  255. package/scaffold/svelte-app/vite.config.ts +0 -6
  256. /package/scaffold/{astro-app → astro-minimal}/astro.config.mjs +0 -0
  257. /package/scaffold/{astro-app → astro-minimal}/public/.gitkeep +0 -0
  258. /package/scaffold/{astro-app → astro-minimal}/public/favicon.svg +0 -0
  259. /package/scaffold/{astro-app → astro-minimal}/tsconfig.json +0 -0
  260. /package/scaffold/{svelte-app → svelte-minimal}/static/.gitkeep +0 -0
@@ -1,22 +0,0 @@
1
- {
2
- "name": "{{PROJECT_NAME}}",
3
- "type": "module",
4
- "version": "0.0.1",
5
- "scripts": {
6
- "dev": "vite dev",
7
- "build": "vite build",
8
- "preview": "vite preview",
9
- "prepare": "svelte-kit sync || echo ''",
10
- "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
11
- "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"
12
- },
13
- "devDependencies": {
14
- "@sveltejs/adapter-auto": "^7.0.0",
15
- "@sveltejs/kit": "^2.50.2",
16
- "@sveltejs/vite-plugin-svelte": "^6.2.4",
17
- "svelte": "^5.49.2",
18
- "svelte-check": "^4.3.6",
19
- "typescript": "^5.9.3",
20
- "vite": "^7.3.1"
21
- }
22
- }
@@ -1,28 +0,0 @@
1
- // See https://svelte.dev/docs/kit/types#app.d.ts
2
- // for information about these interfaces
3
-
4
- /** Toast options (injected by app.html script from Rizzo CSS scaffold) */
5
- interface ToastOptions {
6
- variant?: 'info' | 'success' | 'warning' | 'error';
7
- position?: string;
8
- autoDismiss?: number;
9
- dismissible?: boolean;
10
- }
11
-
12
- declare global {
13
- namespace App {
14
- // interface Error {}
15
- // interface Locals {}
16
- // interface PageData {}
17
- // interface PageState {}
18
- // interface Platform {}
19
- }
20
-
21
- interface Window {
22
- showToast?(message: string, options?: ToastOptions): string | null;
23
- removeToast?(id: string): void;
24
- removeAllToasts?(): void;
25
- }
26
- }
27
-
28
- export {};
@@ -1,21 +0,0 @@
1
- <!doctype html>
2
- <html lang="en" data-theme="{{DATA_THEME}}">{{THEME_LIST_COMMENT}}
3
- <head>
4
- <meta charset="UTF-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1" />
6
- <!-- Theme flash prevention + accessibility (same as main site) -->
7
- <script>
8
- (function(){try{var s=localStorage.getItem('theme');var d='{{DEFAULT_DARK}}';var l='{{DEFAULT_LIGHT}}';var initial=document.documentElement.getAttribute('data-theme');var r=!s?((initial&&initial!=='system')?initial:(matchMedia('(prefers-color-scheme: dark)').matches?d:l)):s==='system'?(matchMedia('(prefers-color-scheme: dark)').matches?d:l):s;document.documentElement.setAttribute('data-theme',r);var f=localStorage.getItem('fontSizeScale');if(f)document.documentElement.style.setProperty('--font-size-scale',f);if(localStorage.getItem('reducedMotion')==='true')document.documentElement.classList.add('reduced-motion');if(localStorage.getItem('highContrast')==='true')document.documentElement.classList.add('high-contrast');var b=localStorage.getItem('scrollbarStyle')||'thin';if(b==='thick')document.documentElement.classList.add('scrollbar-thick');else if(b==='hidden')document.documentElement.classList.add('scrollbar-hidden','hide-scrollbars');}catch(e){}})();
9
- </script>
10
- <!-- Toast: showToast, removeToast, removeAllToasts -->
11
- <script>
12
- (function(){if(typeof window==='undefined'||window.showToast)return;function t(m,o){if(!m)return null;o=o||{};var v=o.variant||'info',p=o.position||'top-right',a=o.autoDismiss!==undefined?o.autoDismiss:5000,d=o.dismissible!==undefined?o.dismissible:true,i='toast-'+Math.random().toString(36).substr(2,9);function c(){if(!document.body)return;var cn=document.getElementById('toast-container-'+p);if(!cn){cn=document.createElement('div');cn.id='toast-container-'+p;cn.className='toast-container toast-container--'+p;cn.style.cssText='display:flex;visibility:visible;z-index:1100';document.body.appendChild(cn);}var to=document.createElement('div');to.id=i;to.className='alert alert--'+v;to.setAttribute('role','alert');to.setAttribute('aria-live','polite');to.style.cssText='display:flex;visibility:visible;opacity:0;transition:opacity .3s ease-out,transform .3s ease-out';var ir=p.indexOf('right')!==-1,il=p.indexOf('left')!==-1;to.style.transform=ir?'translateX(100%)':il?'translateX(-100%)':'translateY(-100%)';var co=document.createElement('div');co.className='alert__content';co.textContent=m;to.appendChild(co);if(d){var cb=document.createElement('button');cb.type='button';cb.className='alert__close';cb.setAttribute('aria-label','Dismiss toast');cb.innerHTML='<svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2"><line x1="4" y1="4" x2="12" y2="12"></line><line x1="12" y1="4" x2="4" y2="12"></line></svg>';to.appendChild(cb);cb.onclick=function(){to.style.opacity='0';to.style.transform=ir?'translateX(100%)':il?'translateX(-100%)':'translateY(-100%)';setTimeout(function(){if(to.parentNode)to.remove();if(cn.children.length===0)cn.remove();},300);};}cn.appendChild(to);requestAnimationFrame(function(){to.offsetHeight;setTimeout(function(){requestAnimationFrame(function(){to.style.opacity='1';to.style.transform=ir||il?'translateX(0)':'translateY(0)';});},10);});if(a>0)setTimeout(function(){if(to.parentNode){to.style.opacity='0';to.style.transform=ir?'translateX(100%)':il?'translateX(-100%)':'translateY(-100%)';setTimeout(function(){if(to.parentNode)to.remove();if(cn.children.length===0)cn.remove();},300);}},a);return i;}document.body?c():document.addEventListener('DOMContentLoaded',c);return i;}function r(i){var to=document.getElementById(i);if(to){var cn=to.parentElement;to.style.opacity='0';to.style.transform='translateY(-10px)';setTimeout(function(){if(to.parentNode)to.remove();if(cn&&cn.classList.contains('toast-container')&&!cn.children.length)cn.remove();},300);}}function ra(){document.querySelectorAll('.toast-container').forEach(function(c){c.querySelectorAll('.alert').forEach(function(t){t.style.opacity='0';t.style.transform='translateY(-10px)';});setTimeout(function(){c.remove();},300);});}window.showToast=t;window.removeToast=r;window.removeAllToasts=ra;})();
13
- </script>
14
- <!-- Rizzo CSS: full bundle (reset + base + components + themes) -->
15
- <link rel="stylesheet" href="/css/rizzo.min.css" />
16
- %sveltekit.head%
17
- </head>
18
- <body data-sveltekit-preload-data="hover">
19
- <div style="display: contents">%sveltekit.body%</div>
20
- </body>
21
- </html>
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M416.9 93.1c-41.1-58.9-122.4-76.3-181.2-38.9L132.5 120c-28.2 17.7-47.6 46.5-53.5 79.3-4.9 27.3-.6 55.5 12.3 80-8.8 13.4-14.9 28.5-17.7 44.2-5.9 33.4 1.8 67.8 21.6 95.4 41.2 58.9 122.4 76.3 181.2 38.9L379.6 392c28.2-17.7 47.6-46.5 53.5-79.3 4.9-27.3.6-55.5-12.3-80 8.8-13.4 14.9-28.4 17.7-44.2 5.8-33.4-1.9-67.8-21.6-95.4" style="fill:#ff3e00"/><path d="M225.6 424.5c-33.3 8.6-68.4-4.4-88-32.6-11.9-16.6-16.5-37.3-13-57.4.6-3.3 1.4-6.5 2.5-9.6l1.9-5.9 5.3 3.9c12.2 9 25.9 15.8 40.4 20.2l3.8 1.2-.4 3.8c-.5 5.4 1 10.9 4.2 15.3 5.9 8.5 16.5 12.4 26.5 9.8 2.2-.6 4.4-1.5 6.3-2.8l103.2-65.8c5.1-3.2 8.6-8.4 9.7-14.4 1.1-6.1-.3-12.3-3.9-17.3-5.9-8.5-16.5-12.4-26.5-9.8-2.2.6-4.4 1.5-6.3 2.8L252 291c-6.5 4.1-13.5 7.2-21 9.2-33.3 8.6-68.4-4.4-88-32.6-11.9-16.6-16.5-37.3-13-57.4 3.5-19.7 15.2-37 32.2-47.7l103.2-65.8c6.5-4.1 13.5-7.2 21-9.2 33.3-8.6 68.4 4.4 88 32.6 11.9 16.6 16.5 37.3 13 57.4-.6 3.3-1.4 6.5-2.5 9.6L383 193l-5.3-3.9c-12.2-9-25.9-15.8-40.4-20.2l-3.8-1.2.4-3.8c.5-5.4-1-10.9-4.2-15.3-5.9-8.5-16.5-12.4-26.5-9.8-2.2.6-4.4 1.5-6.3 2.8l-103.2 65.8c-5.1 3.2-8.6 8.4-9.7 14.4-1.1 6.1.3 12.3 3.9 17.3 5.9 8.5 16.5 12.4 26.5 9.8 2.2-.6 4.4-1.5 6.3-2.8L260 221c6.5-4.1 13.5-7.2 21-9.2 33.3-8.6 68.4 4.4 88 32.6 11.9 16.6 16.5 37.3 13 57.4-3.5 19.7-15.2 37-32.2 47.7l-103.2 65.8c-6.5 4.1-13.6 7.2-21 9.2" style="fill:#fff"/></svg>
@@ -1,128 +0,0 @@
1
- <script lang="ts">
2
- export interface AccordionItem {
3
- id: string;
4
- title: string;
5
- content?: string;
6
- }
7
-
8
- interface Props {
9
- items: AccordionItem[];
10
- id?: string;
11
- allowMultiple?: boolean;
12
- defaultExpanded?: string | string[];
13
- class?: string;
14
- }
15
-
16
- let {
17
- items,
18
- id,
19
- allowMultiple = false,
20
- defaultExpanded,
21
- class: className = '',
22
- }: Props = $props();
23
-
24
- const accordionId = $derived(id ?? `accordion-${Math.random().toString(36).slice(2, 11)}`);
25
-
26
- function getDefaultExpanded(): Set<string> {
27
- if (defaultExpanded === undefined) return new Set(items[0] ? [items[0].id] : []);
28
- if (typeof defaultExpanded === 'string') return new Set([defaultExpanded]);
29
- return new Set(defaultExpanded);
30
- }
31
-
32
- let expanded = $state<Set<string>>(getDefaultExpanded());
33
-
34
- const classes = $derived(['accordion', className].filter(Boolean).join(' ').trim());
35
-
36
- function toggle(itemId: string) {
37
- expanded = new Set(
38
- allowMultiple
39
- ? (expanded.has(itemId) ? [...expanded].filter((id) => id !== itemId) : [...expanded, itemId])
40
- : expanded.has(itemId)
41
- ? []
42
- : [itemId]
43
- );
44
- }
45
-
46
- function handleKeydown(e: KeyboardEvent, itemId: string, index: number) {
47
- const triggers = e.currentTarget?.parentElement?.querySelectorAll?.('[data-accordion-trigger]') ?? [];
48
- const len = triggers.length;
49
- let targetIndex = index;
50
- switch (e.key) {
51
- case 'ArrowDown':
52
- e.preventDefault();
53
- targetIndex = Math.min(index + 1, len - 1);
54
- break;
55
- case 'ArrowUp':
56
- e.preventDefault();
57
- targetIndex = Math.max(index - 1, 0);
58
- break;
59
- case 'Home':
60
- e.preventDefault();
61
- targetIndex = 0;
62
- break;
63
- case 'End':
64
- e.preventDefault();
65
- targetIndex = len - 1;
66
- break;
67
- case 'Enter':
68
- case ' ':
69
- e.preventDefault();
70
- toggle(itemId);
71
- return;
72
- default:
73
- return;
74
- }
75
- if (targetIndex !== index && triggers[targetIndex]) (triggers[targetIndex] as HTMLElement).focus();
76
- }
77
- </script>
78
-
79
- <div
80
- class={classes}
81
- data-accordion={accordionId}
82
- data-allow-multiple={allowMultiple ? 'true' : 'false'}
83
- >
84
- {#each items as item, i}
85
- {@const triggerId = `${accordionId}-trigger-${item.id}`}
86
- {@const panelId = `${accordionId}-panel-${item.id}`}
87
- {@const isExpanded = expanded.has(item.id)}
88
- <div class="accordion__item" data-accordion-item data-item-id={item.id}>
89
- <h3 class="accordion__heading">
90
- <button
91
- type="button"
92
- class="accordion__trigger"
93
- class:accordion__trigger--expanded={isExpanded}
94
- id={triggerId}
95
- aria-expanded={isExpanded}
96
- aria-controls={panelId}
97
- data-accordion-trigger
98
- onclick={() => toggle(item.id)}
99
- onkeydown={(e) => handleKeydown(e, item.id, i)}
100
- >
101
- <span class="accordion__title">{item.title}</span>
102
- <span class="accordion__icon" aria-hidden="true">
103
- <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
104
- <path d="m6 9 6 6 6-6" />
105
- </svg>
106
- </span>
107
- </button>
108
- </h3>
109
- <div
110
- class="accordion__panel"
111
- class:accordion__panel--expanded={isExpanded}
112
- id={panelId}
113
- role="region"
114
- aria-labelledby={triggerId}
115
- hidden={!isExpanded}
116
- data-accordion-panel
117
- >
118
- <div class="accordion__panel-inner">
119
- <div class="accordion__panel-content">
120
- {#if item.content}
121
- {@html item.content}
122
- {/if}
123
- </div>
124
- </div>
125
- </div>
126
- </div>
127
- {/each}
128
- </div>
@@ -1,85 +0,0 @@
1
- <script lang="ts">
2
- import { onMount } from 'svelte';
3
- import type { Snippet } from 'svelte';
4
-
5
- interface Props {
6
- variant?: 'success' | 'error' | 'warning' | 'info';
7
- dismissible?: boolean;
8
- autoDismiss?: number;
9
- class?: string;
10
- id?: string;
11
- onDismiss?: () => void;
12
- children?: Snippet;
13
- }
14
- let {
15
- variant = 'info',
16
- dismissible = false,
17
- autoDismiss = 0,
18
- class: className = '',
19
- id,
20
- onDismiss,
21
- children,
22
- }: Props = $props();
23
-
24
- let visible = $state(true);
25
- const alertId = $derived(id ?? `alert-${Math.random().toString(36).slice(2, 11)}`);
26
- const classes = $derived(['alert', `alert--${variant}`, className].filter(Boolean).join(' ').trim());
27
-
28
- const ariaLabels: Record<string, string> = {
29
- success: 'Success message',
30
- error: 'Error message',
31
- warning: 'Warning message',
32
- info: 'Information message',
33
- };
34
-
35
- let autoDismissTimeout: ReturnType<typeof setTimeout> | null = null;
36
-
37
- function dismiss() {
38
- visible = false;
39
- if (autoDismissTimeout) clearTimeout(autoDismissTimeout);
40
- onDismiss?.();
41
- }
42
-
43
- onMount(() => {
44
- if (autoDismiss > 0) {
45
- autoDismissTimeout = setTimeout(dismiss, autoDismiss);
46
- }
47
- return () => {
48
- if (autoDismissTimeout) clearTimeout(autoDismissTimeout);
49
- };
50
- });
51
- </script>
52
-
53
- {#if visible}
54
- <div
55
- class={classes}
56
- id={alertId}
57
- role="alert"
58
- aria-live="polite"
59
- aria-atomic="true"
60
- aria-label={ariaLabels[variant]}
61
- >
62
- <div class="alert__content">
63
- {@render children?.()}
64
- </div>
65
- {#if dismissible}
66
- <button
67
- type="button"
68
- class="alert__close"
69
- aria-label="Dismiss alert"
70
- aria-controls={alertId}
71
- onclick={dismiss}
72
- onkeydown={(e) => {
73
- if (e.key === 'Enter' || e.key === ' ') {
74
- e.preventDefault();
75
- dismiss();
76
- }
77
- }}
78
- >
79
- <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
80
- <path d="M18 6L6 18M6 6l12 12" />
81
- </svg>
82
- </button>
83
- {/if}
84
- </div>
85
- {/if}
@@ -1,39 +0,0 @@
1
- <script lang="ts">
2
- function getInitials(name: string): string {
3
- const parts = name.trim().split(/\s+/).filter(Boolean);
4
- if (parts.length === 0) return '';
5
- if (parts.length === 1) return parts[0].slice(0, 2).toUpperCase();
6
- return (parts[0][0] + parts[parts.length - 1][0]).toUpperCase();
7
- }
8
-
9
- interface Props {
10
- src?: string;
11
- alt?: string;
12
- name?: string;
13
- initials?: string;
14
- size?: 'sm' | 'md' | 'lg';
15
- shape?: 'circle' | 'square';
16
- class?: string;
17
- }
18
- let {
19
- src,
20
- alt = '',
21
- name = '',
22
- initials: initialsProp = '',
23
- size = 'md',
24
- shape = 'circle',
25
- class: className = '',
26
- }: Props = $props();
27
-
28
- const displayInitials = $derived(name ? getInitials(name) : initialsProp);
29
- const classes = $derived(['avatar', `avatar--${size}`, `avatar--${shape}`, className].filter(Boolean).join(' ').trim());
30
- const ariaLabel = $derived(alt || name || (displayInitials ? `Avatar: ${displayInitials}` : 'Avatar'));
31
- </script>
32
-
33
- <span class={classes} role="img" aria-label={ariaLabel}>
34
- {#if src}
35
- <img src={src} alt={alt || name || ''} class="avatar__img" loading="lazy" />
36
- {:else}
37
- <span class="avatar__initials" aria-hidden="true">{displayInitials || '?'}</span>
38
- {/if}
39
- </span>
@@ -1,31 +0,0 @@
1
- <script lang="ts">
2
- import type { Snippet } from 'svelte';
3
-
4
- type Variant = 'primary' | 'success' | 'warning' | 'error' | 'info';
5
- type Size = 'sm' | 'md' | 'lg';
6
- interface Props {
7
- variant?: Variant;
8
- size?: Size;
9
- pill?: boolean;
10
- class?: string;
11
- children?: Snippet;
12
- }
13
- let {
14
- variant = 'primary',
15
- size = 'md',
16
- pill = false,
17
- class: className = '',
18
- children,
19
- }: Props = $props();
20
-
21
- const classes = $derived(
22
- ['badge', `badge--${variant}`, `badge--${size}`, pill ? 'badge--pill' : '', className]
23
- .filter(Boolean)
24
- .join(' ')
25
- .trim()
26
- );
27
- </script>
28
-
29
- <span class={classes}>
30
- {@render children?.()}
31
- </span>
@@ -1,49 +0,0 @@
1
- <script lang="ts">
2
- export interface BreadcrumbItem {
3
- label: string;
4
- href?: string;
5
- }
6
-
7
- interface Props {
8
- items: BreadcrumbItem[];
9
- separator?: 'chevron' | 'slash' | 'arrow' | string;
10
- class?: string;
11
- }
12
- let { items, separator = 'chevron', class: className = '' }: Props = $props();
13
-
14
- const separatorVariant = $derived(
15
- separator === 'slash' ? 'breadcrumb--slash' : separator === 'arrow' ? 'breadcrumb--arrow' : 'breadcrumb--chevron'
16
- );
17
- const classes = $derived(['breadcrumb', separatorVariant, className].filter(Boolean).join(' ').trim());
18
- const separatorChar = $derived(
19
- separator === 'slash' ? '/' : separator === 'arrow' ? '›' : typeof separator === 'string' ? separator : '›'
20
- );
21
- const useIcon = $derived(separator === 'chevron');
22
- </script>
23
-
24
- <nav class={classes} aria-label="Breadcrumb">
25
- <ol class="breadcrumb__list">
26
- {#each items as item, index}
27
- {@const isLast = index === items.length - 1}
28
- {@const isCurrent = isLast || !item.href}
29
- <li class="breadcrumb__item {isCurrent ? 'breadcrumb__item--current' : ''}">
30
- {#if isCurrent}
31
- <span class="breadcrumb__current" aria-current="page">{item.label}</span>
32
- {:else}
33
- <a class="breadcrumb__link" href={item.href}>{item.label}</a>
34
- {/if}
35
- {#if !isLast}
36
- <span class="breadcrumb__separator" aria-hidden="true">
37
- {#if useIcon}
38
- <svg class="breadcrumb__separator-icon" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
39
- <path d="M6 9l6 6 6-6" />
40
- </svg>
41
- {:else}
42
- {separatorChar}
43
- {/if}
44
- </span>
45
- {/if}
46
- </li>
47
- {/each}
48
- </ol>
49
- </nav>
@@ -1,27 +0,0 @@
1
- <script lang="ts">
2
- import type { Snippet } from 'svelte';
3
-
4
- type Variant = 'default' | 'primary' | 'success' | 'warning' | 'error' | 'info' | 'outline';
5
- interface Props {
6
- variant?: Variant;
7
- disabled?: boolean;
8
- type?: 'button' | 'submit' | 'reset';
9
- class?: string;
10
- children?: Snippet;
11
- }
12
- let {
13
- variant = 'default',
14
- disabled = false,
15
- type = 'button',
16
- class: className = '',
17
- children,
18
- ...rest
19
- }: Props = $props();
20
-
21
- const variantClass = $derived(variant === 'default' ? '' : `btn-${variant}`);
22
- const classes = $derived(['btn', variantClass, className].filter(Boolean).join(' '));
23
- </script>
24
-
25
- <button {type} {disabled} class={classes} {...rest}>
26
- {@render children?.()}
27
- </button>
@@ -1,17 +0,0 @@
1
- <script lang="ts">
2
- import type { Snippet } from 'svelte';
3
-
4
- type Variant = 'default' | 'elevated' | 'outlined' | 'filled';
5
- interface Props {
6
- variant?: Variant;
7
- class?: string;
8
- children?: Snippet;
9
- }
10
- let { variant = 'default', class: className = '', children }: Props = $props();
11
- const variantClass = $derived(variant !== 'default' ? `card--${variant}` : '');
12
- const classes = $derived(['card', variantClass, className].filter(Boolean).join(' ').trim());
13
- </script>
14
-
15
- <div class={classes}>
16
- {@render children?.()}
17
- </div>
@@ -1,37 +0,0 @@
1
- <script lang="ts">
2
- interface Props {
3
- id?: string;
4
- name?: string;
5
- value?: string;
6
- checked?: boolean;
7
- required?: boolean;
8
- disabled?: boolean;
9
- class?: string;
10
- ariaDescribedby?: string;
11
- ariaLabel?: string;
12
- }
13
- let {
14
- id,
15
- name,
16
- value,
17
- checked = $bindable(false),
18
- required = false,
19
- disabled = false,
20
- class: className = '',
21
- ariaDescribedby,
22
- ariaLabel,
23
- }: Props = $props();
24
- </script>
25
-
26
- <input
27
- type="checkbox"
28
- {id}
29
- {name}
30
- {value}
31
- bind:checked
32
- {required}
33
- {disabled}
34
- class={className}
35
- aria-describedby={ariaDescribedby}
36
- aria-label={ariaLabel}
37
- />
@@ -1,79 +0,0 @@
1
- <script lang="ts">
2
- interface Props {
3
- value: string;
4
- label?: string;
5
- format?: string;
6
- class?: string;
7
- id?: string;
8
- }
9
- let { value, label, format, class: className = '', id }: Props = $props();
10
-
11
- let copied = $state(false);
12
- let feedbackText = $state('');
13
- const fallbackId = `copy-btn-${Math.random().toString(36).slice(2, 11)}`;
14
- const buttonId = $derived(id ?? fallbackId);
15
- const classes = $derived(['copy-to-clipboard', className].filter(Boolean).join(' ').trim());
16
-
17
- async function copy() {
18
- if (!value) return;
19
- try {
20
- await navigator.clipboard.writeText(value);
21
- copied = true;
22
- feedbackText = format ? `Copied ${format}!` : 'Copied!';
23
- setTimeout(() => {
24
- copied = false;
25
- feedbackText = '';
26
- }, 2000);
27
- } catch {
28
- const textArea = document.createElement('textarea');
29
- textArea.value = value;
30
- textArea.style.position = 'fixed';
31
- textArea.style.left = '-999999px';
32
- document.body.appendChild(textArea);
33
- textArea.focus();
34
- textArea.select();
35
- try {
36
- document.execCommand('copy');
37
- copied = true;
38
- feedbackText = format ? `Copied ${format}!` : 'Copied!';
39
- setTimeout(() => {
40
- copied = false;
41
- feedbackText = '';
42
- }, 2000);
43
- } catch {
44
- feedbackText = 'Failed to copy';
45
- }
46
- document.body.removeChild(textArea);
47
- }
48
- }
49
- </script>
50
-
51
- <span class="tooltip-host" data-tooltip={copied ? (format ? `Copied ${format}!` : 'Copied!') : (label ?? 'Copy to clipboard')}>
52
- <button
53
- type="button"
54
- class={classes}
55
- aria-label={copied ? (format ? `Copied ${format}!` : 'Copied!') : (label ?? `Copy ${value} to clipboard`)}
56
- id={buttonId}
57
- onclick={copy}
58
- onkeydown={(e) => {
59
- if (e.key === 'Enter' || e.key === ' ') {
60
- e.preventDefault();
61
- copy();
62
- }
63
- }}
64
- >
65
- <span class="copy-to-clipboard__text">{value}</span>
66
- <span class="copy-to-clipboard__icon copy-to-clipboard__icon--copy" class:copy-to-clipboard__icon--hidden={copied} aria-hidden="true">
67
- <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
68
- <rect x="9" y="9" width="13" height="13" rx="2" ry="2" />
69
- <path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" />
70
- </svg>
71
- </span>
72
- <span class="copy-to-clipboard__icon copy-to-clipboard__icon--check" class:copy-to-clipboard__icon--hidden={!copied} aria-hidden="true">
73
- <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
74
- <polyline points="20 6 9 17 4 12" />
75
- </svg>
76
- </span>
77
- <span class="copy-to-clipboard__feedback" aria-live="polite">{feedbackText}</span>
78
- </button>
79
- </span>
@@ -1,28 +0,0 @@
1
- <script lang="ts">
2
- interface Props {
3
- orientation?: 'horizontal' | 'vertical';
4
- label?: string;
5
- class?: string;
6
- }
7
- let { orientation = 'horizontal', label, class: className = '' }: Props = $props();
8
- const orientationClass = $derived(`divider--${orientation}`);
9
- const hasLabel = $derived(typeof label === 'string' && label.trim().length > 0);
10
- const labelClass = $derived(hasLabel ? 'divider--labeled' : '');
11
- const classes = $derived(['divider', orientationClass, labelClass, className].filter(Boolean).join(' ').trim());
12
- const labelText = $derived(label?.trim() ?? '');
13
- </script>
14
-
15
- <div
16
- class={classes}
17
- role="separator"
18
- aria-orientation={orientation}
19
- aria-label={labelText || undefined}
20
- >
21
- {#if hasLabel && orientation === 'horizontal'}
22
- <span class="divider__line" aria-hidden="true"></span>
23
- <span class="divider__label">{labelText}</span>
24
- <span class="divider__line" aria-hidden="true"></span>
25
- {:else}
26
- <span class="divider__line" aria-hidden="true"></span>
27
- {/if}
28
- </div>