rizzo-css 0.0.16 → 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 (259) hide show
  1. package/README.md +4 -4
  2. package/bin/rizzo-css.js +473 -164
  3. package/dist/rizzo.min.css +4 -1
  4. package/package.json +9 -4
  5. package/scaffold/astro-minimal/.env.example +3 -0
  6. package/scaffold/astro-minimal/README.md +36 -0
  7. package/scaffold/astro-minimal/package.json +13 -0
  8. package/scaffold/astro-minimal/src/layouts/Layout.astro +28 -0
  9. package/scaffold/astro-minimal/src/pages/index.astro +10 -0
  10. package/scaffold/svelte-minimal/.env.example +3 -0
  11. package/scaffold/svelte-minimal/README.md +37 -0
  12. package/scaffold/svelte-minimal/package.json +20 -0
  13. package/scaffold/svelte-minimal/src/app.d.ts +11 -0
  14. package/scaffold/svelte-minimal/src/app.html +15 -0
  15. package/scaffold/svelte-minimal/src/routes/+layout.svelte +1 -0
  16. package/scaffold/svelte-minimal/src/routes/+page.svelte +5 -0
  17. package/scaffold/svelte-minimal/svelte.config.js +10 -0
  18. package/scaffold/svelte-minimal/tsconfig.json +11 -0
  19. package/scaffold/vanilla/README.md +4 -4
  20. package/scaffold/vanilla/components/accordion.html +18 -0
  21. package/scaffold/vanilla/components/alert.html +18 -0
  22. package/scaffold/vanilla/components/avatar.html +18 -0
  23. package/scaffold/vanilla/components/badge.html +18 -0
  24. package/scaffold/vanilla/components/breadcrumb.html +18 -0
  25. package/scaffold/vanilla/components/button.html +18 -0
  26. package/scaffold/vanilla/components/cards.html +18 -0
  27. package/scaffold/vanilla/components/copy-to-clipboard.html +18 -0
  28. package/scaffold/vanilla/components/divider.html +18 -0
  29. package/scaffold/vanilla/components/dropdown.html +18 -0
  30. package/scaffold/vanilla/components/forms.html +18 -0
  31. package/scaffold/vanilla/components/icons.html +18 -0
  32. package/scaffold/vanilla/components/index.html +18 -0
  33. package/scaffold/vanilla/components/modal.html +18 -0
  34. package/scaffold/vanilla/components/navbar.html +18 -0
  35. package/scaffold/vanilla/components/pagination.html +18 -0
  36. package/scaffold/vanilla/components/progress-bar.html +18 -0
  37. package/scaffold/vanilla/components/search.html +18 -0
  38. package/scaffold/vanilla/components/settings.html +18 -0
  39. package/scaffold/vanilla/components/spinner.html +18 -0
  40. package/scaffold/vanilla/components/table.html +18 -0
  41. package/scaffold/vanilla/components/tabs.html +18 -0
  42. package/scaffold/vanilla/components/theme-switcher.html +18 -0
  43. package/scaffold/vanilla/components/toast.html +18 -0
  44. package/scaffold/vanilla/components/tooltip.html +18 -0
  45. package/scaffold/vanilla/index.html +18 -0
  46. package/scaffold/astro-app/README.md +0 -43
  47. package/scaffold/astro-app/package.json +0 -1
  48. package/scaffold/astro-app/src/components/Accordion.astro +0 -178
  49. package/scaffold/astro-app/src/components/Alert.astro +0 -131
  50. package/scaffold/astro-app/src/components/Avatar.astro +0 -59
  51. package/scaffold/astro-app/src/components/Badge.astro +0 -24
  52. package/scaffold/astro-app/src/components/Breadcrumb.astro +0 -61
  53. package/scaffold/astro-app/src/components/Button.astro +0 -3
  54. package/scaffold/astro-app/src/components/Card.astro +0 -18
  55. package/scaffold/astro-app/src/components/Checkbox.astro +0 -38
  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/Pagination.astro +0 -240
  67. package/scaffold/astro-app/src/components/ProgressBar.astro +0 -65
  68. package/scaffold/astro-app/src/components/Radio.astro +0 -38
  69. package/scaffold/astro-app/src/components/Search.astro +0 -1259
  70. package/scaffold/astro-app/src/components/Select.astro +0 -49
  71. package/scaffold/astro-app/src/components/Settings.astro +0 -382
  72. package/scaffold/astro-app/src/components/Spinner.astro +0 -30
  73. package/scaffold/astro-app/src/components/Table.astro +0 -181
  74. package/scaffold/astro-app/src/components/Tabs.astro +0 -223
  75. package/scaffold/astro-app/src/components/Textarea.astro +0 -58
  76. package/scaffold/astro-app/src/components/ThemeIcon.astro +0 -50
  77. package/scaffold/astro-app/src/components/ThemeSwitcher.astro +0 -504
  78. package/scaffold/astro-app/src/components/Toast.astro +0 -30
  79. package/scaffold/astro-app/src/components/Tooltip.astro +0 -32
  80. package/scaffold/astro-app/src/components/icons/Brush.astro +0 -10
  81. package/scaffold/astro-app/src/components/icons/Cake.astro +0 -11
  82. package/scaffold/astro-app/src/components/icons/Check.astro +0 -29
  83. package/scaffold/astro-app/src/components/icons/Cherry.astro +0 -11
  84. package/scaffold/astro-app/src/components/icons/ChevronDown.astro +0 -29
  85. package/scaffold/astro-app/src/components/icons/Circle.astro +0 -29
  86. package/scaffold/astro-app/src/components/icons/Close.astro +0 -30
  87. package/scaffold/astro-app/src/components/icons/Cmd.astro +0 -26
  88. package/scaffold/astro-app/src/components/icons/Copy.astro +0 -30
  89. package/scaffold/astro-app/src/components/icons/Eye.astro +0 -30
  90. package/scaffold/astro-app/src/components/icons/Filter.astro +0 -29
  91. package/scaffold/astro-app/src/components/icons/Flame.astro +0 -28
  92. package/scaffold/astro-app/src/components/icons/Flower.astro +0 -11
  93. package/scaffold/astro-app/src/components/icons/Gear.astro +0 -30
  94. package/scaffold/astro-app/src/components/icons/Heart.astro +0 -28
  95. package/scaffold/astro-app/src/components/icons/IceCream.astro +0 -31
  96. package/scaffold/astro-app/src/components/icons/Leaf.astro +0 -29
  97. package/scaffold/astro-app/src/components/icons/Lemon.astro +0 -11
  98. package/scaffold/astro-app/src/components/icons/Moon.astro +0 -29
  99. package/scaffold/astro-app/src/components/icons/Owl.astro +0 -34
  100. package/scaffold/astro-app/src/components/icons/Palette.astro +0 -33
  101. package/scaffold/astro-app/src/components/icons/Rainbow.astro +0 -31
  102. package/scaffold/astro-app/src/components/icons/Search.astro +0 -30
  103. package/scaffold/astro-app/src/components/icons/Shield.astro +0 -28
  104. package/scaffold/astro-app/src/components/icons/Snowflake.astro +0 -34
  105. package/scaffold/astro-app/src/components/icons/Sort.astro +0 -30
  106. package/scaffold/astro-app/src/components/icons/Sun.astro +0 -29
  107. package/scaffold/astro-app/src/components/icons/Sunset.astro +0 -10
  108. package/scaffold/astro-app/src/components/icons/Zap.astro +0 -9
  109. package/scaffold/astro-app/src/components/icons/devicons/Astro.astro +0 -53
  110. package/scaffold/astro-app/src/components/icons/devicons/Bash.astro +0 -34
  111. package/scaffold/astro-app/src/components/icons/devicons/Css3.astro +0 -29
  112. package/scaffold/astro-app/src/components/icons/devicons/Git.astro +0 -24
  113. package/scaffold/astro-app/src/components/icons/devicons/Html5.astro +0 -27
  114. package/scaffold/astro-app/src/components/icons/devicons/Javascript.astro +0 -25
  115. package/scaffold/astro-app/src/components/icons/devicons/Nodejs.astro +0 -47
  116. package/scaffold/astro-app/src/components/icons/devicons/Plaintext.astro +0 -33
  117. package/scaffold/astro-app/src/components/icons/devicons/React.astro +0 -27
  118. package/scaffold/astro-app/src/components/icons/devicons/Svelte.astro +0 -25
  119. package/scaffold/astro-app/src/components/icons/devicons/Vue.astro +0 -26
  120. package/scaffold/astro-app/src/config/frameworks.ts +0 -26
  121. package/scaffold/astro-app/src/config/themes.ts +0 -54
  122. package/scaffold/astro-app/src/layouts/DocsLayout.astro +0 -263
  123. package/scaffold/astro-app/src/layouts/Layout.astro +0 -41
  124. package/scaffold/astro-app/src/pages/components/accordion.astro +0 -172
  125. package/scaffold/astro-app/src/pages/components/alert.astro +0 -250
  126. package/scaffold/astro-app/src/pages/components/avatar.astro +0 -102
  127. package/scaffold/astro-app/src/pages/components/badge.astro +0 -119
  128. package/scaffold/astro-app/src/pages/components/breadcrumb.astro +0 -124
  129. package/scaffold/astro-app/src/pages/components/button.astro +0 -74
  130. package/scaffold/astro-app/src/pages/components/cards.astro +0 -247
  131. package/scaffold/astro-app/src/pages/components/copy-to-clipboard.astro +0 -49
  132. package/scaffold/astro-app/src/pages/components/divider.astro +0 -74
  133. package/scaffold/astro-app/src/pages/components/dropdown.astro +0 -394
  134. package/scaffold/astro-app/src/pages/components/forms.astro +0 -367
  135. package/scaffold/astro-app/src/pages/components/icons.astro +0 -246
  136. package/scaffold/astro-app/src/pages/components/modal.astro +0 -152
  137. package/scaffold/astro-app/src/pages/components/navbar.astro +0 -80
  138. package/scaffold/astro-app/src/pages/components/pagination.astro +0 -126
  139. package/scaffold/astro-app/src/pages/components/progress-bar.astro +0 -94
  140. package/scaffold/astro-app/src/pages/components/search.astro +0 -155
  141. package/scaffold/astro-app/src/pages/components/settings.astro +0 -78
  142. package/scaffold/astro-app/src/pages/components/spinner.astro +0 -81
  143. package/scaffold/astro-app/src/pages/components/table.astro +0 -144
  144. package/scaffold/astro-app/src/pages/components/tabs.astro +0 -220
  145. package/scaffold/astro-app/src/pages/components/theme-switcher.astro +0 -69
  146. package/scaffold/astro-app/src/pages/components/toast.astro +0 -157
  147. package/scaffold/astro-app/src/pages/components/tooltip.astro +0 -209
  148. package/scaffold/astro-app/src/pages/components.astro +0 -290
  149. package/scaffold/astro-app/src/pages/docs/accessibility.astro +0 -9
  150. package/scaffold/astro-app/src/pages/docs/colors.astro +0 -9
  151. package/scaffold/astro-app/src/pages/docs/design-system.astro +0 -9
  152. package/scaffold/astro-app/src/pages/docs/getting-started.astro +0 -9
  153. package/scaffold/astro-app/src/pages/docs/index.astro +0 -15
  154. package/scaffold/astro-app/src/pages/docs/themes/[theme].astro +0 -14
  155. package/scaffold/astro-app/src/pages/docs/theming.astro +0 -10
  156. package/scaffold/astro-app/src/pages/index.astro +0 -24
  157. package/scaffold/svelte-app/README.md +0 -39
  158. package/scaffold/svelte-app/package.json +0 -22
  159. package/scaffold/svelte-app/src/app.d.ts +0 -28
  160. package/scaffold/svelte-app/src/app.html +0 -21
  161. package/scaffold/svelte-app/src/lib/assets/favicon.svg +0 -1
  162. package/scaffold/svelte-app/src/lib/rizzo/Accordion.svelte +0 -128
  163. package/scaffold/svelte-app/src/lib/rizzo/Alert.svelte +0 -85
  164. package/scaffold/svelte-app/src/lib/rizzo/Avatar.svelte +0 -39
  165. package/scaffold/svelte-app/src/lib/rizzo/Badge.svelte +0 -31
  166. package/scaffold/svelte-app/src/lib/rizzo/Breadcrumb.svelte +0 -49
  167. package/scaffold/svelte-app/src/lib/rizzo/Button.svelte +0 -27
  168. package/scaffold/svelte-app/src/lib/rizzo/Card.svelte +0 -17
  169. package/scaffold/svelte-app/src/lib/rizzo/Checkbox.svelte +0 -37
  170. package/scaffold/svelte-app/src/lib/rizzo/CopyToClipboard.svelte +0 -79
  171. package/scaffold/svelte-app/src/lib/rizzo/Divider.svelte +0 -28
  172. package/scaffold/svelte-app/src/lib/rizzo/Dropdown.svelte +0 -254
  173. package/scaffold/svelte-app/src/lib/rizzo/FormGroup.svelte +0 -51
  174. package/scaffold/svelte-app/src/lib/rizzo/Input.svelte +0 -59
  175. package/scaffold/svelte-app/src/lib/rizzo/Modal.svelte +0 -157
  176. package/scaffold/svelte-app/src/lib/rizzo/Pagination.svelte +0 -93
  177. package/scaffold/svelte-app/src/lib/rizzo/ProgressBar.svelte +0 -58
  178. package/scaffold/svelte-app/src/lib/rizzo/Radio.svelte +0 -38
  179. package/scaffold/svelte-app/src/lib/rizzo/Select.svelte +0 -51
  180. package/scaffold/svelte-app/src/lib/rizzo/Spinner.svelte +0 -14
  181. package/scaffold/svelte-app/src/lib/rizzo/Table.svelte +0 -158
  182. package/scaffold/svelte-app/src/lib/rizzo/Tabs.svelte +0 -117
  183. package/scaffold/svelte-app/src/lib/rizzo/Textarea.svelte +0 -59
  184. package/scaffold/svelte-app/src/lib/rizzo/ThemeIcon.svelte +0 -54
  185. package/scaffold/svelte-app/src/lib/rizzo/ThemeSwitcher.svelte +0 -315
  186. package/scaffold/svelte-app/src/lib/rizzo/Toast.svelte +0 -33
  187. package/scaffold/svelte-app/src/lib/rizzo/Tooltip.svelte +0 -19
  188. package/scaffold/svelte-app/src/lib/rizzo/icons/Check.svelte +0 -29
  189. package/scaffold/svelte-app/src/lib/rizzo/icons/ChevronDown.svelte +0 -29
  190. package/scaffold/svelte-app/src/lib/rizzo/icons/Circle.svelte +0 -29
  191. package/scaffold/svelte-app/src/lib/rizzo/icons/Close.svelte +0 -30
  192. package/scaffold/svelte-app/src/lib/rizzo/icons/Cmd.svelte +0 -27
  193. package/scaffold/svelte-app/src/lib/rizzo/icons/Copy.svelte +0 -30
  194. package/scaffold/svelte-app/src/lib/rizzo/icons/Eye.svelte +0 -30
  195. package/scaffold/svelte-app/src/lib/rizzo/icons/Filter.svelte +0 -29
  196. package/scaffold/svelte-app/src/lib/rizzo/icons/Gear.svelte +0 -30
  197. package/scaffold/svelte-app/src/lib/rizzo/icons/IceCream.svelte +0 -31
  198. package/scaffold/svelte-app/src/lib/rizzo/icons/Moon.svelte +0 -29
  199. package/scaffold/svelte-app/src/lib/rizzo/icons/Owl.svelte +0 -34
  200. package/scaffold/svelte-app/src/lib/rizzo/icons/Palette.svelte +0 -33
  201. package/scaffold/svelte-app/src/lib/rizzo/icons/Rainbow.svelte +0 -31
  202. package/scaffold/svelte-app/src/lib/rizzo/icons/Search.svelte +0 -30
  203. package/scaffold/svelte-app/src/lib/rizzo/icons/Snowflake.svelte +0 -34
  204. package/scaffold/svelte-app/src/lib/rizzo/icons/Sort.svelte +0 -30
  205. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Astro.svelte +0 -45
  206. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Bash.svelte +0 -28
  207. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Css3.svelte +0 -23
  208. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Git.svelte +0 -18
  209. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Html5.svelte +0 -21
  210. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Javascript.svelte +0 -19
  211. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Nodejs.svelte +0 -44
  212. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Plaintext.svelte +0 -24
  213. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/React.svelte +0 -21
  214. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/SvelteIcon.svelte +0 -19
  215. package/scaffold/svelte-app/src/lib/rizzo/icons/devicons/Vue.svelte +0 -20
  216. package/scaffold/svelte-app/src/lib/rizzo/index.ts +0 -35
  217. package/scaffold/svelte-app/src/lib/rizzo-docs/CodeBlock.svelte +0 -239
  218. package/scaffold/svelte-app/src/lib/rizzo-docs/SvelteDocPage.svelte +0 -99
  219. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/AccordionDoc.svelte +0 -53
  220. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/AlertDoc.svelte +0 -114
  221. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/AvatarDoc.svelte +0 -92
  222. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/BadgeDoc.svelte +0 -60
  223. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/BreadcrumbDoc.svelte +0 -55
  224. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ButtonDoc.svelte +0 -55
  225. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/CardsDoc.svelte +0 -173
  226. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ComingSoon.svelte +0 -12
  227. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ComponentsOverview.svelte +0 -92
  228. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/CopyToClipboardDoc.svelte +0 -26
  229. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/DividerDoc.svelte +0 -105
  230. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/DropdownDoc.svelte +0 -161
  231. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/FormsDoc.svelte +0 -375
  232. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/IconsDoc.svelte +0 -246
  233. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/Index.svelte +0 -8
  234. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ModalDoc.svelte +0 -50
  235. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/NavbarDoc.svelte +0 -79
  236. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/PaginationDoc.svelte +0 -44
  237. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ProgressBarDoc.svelte +0 -95
  238. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/SearchDoc.svelte +0 -147
  239. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/SettingsDoc.svelte +0 -158
  240. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/SpinnerDoc.svelte +0 -41
  241. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/TableDoc.svelte +0 -116
  242. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/TabsDoc.svelte +0 -152
  243. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ThemeSwitcherDoc.svelte +0 -189
  244. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/Theming.svelte +0 -6
  245. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/ToastDoc.svelte +0 -136
  246. package/scaffold/svelte-app/src/lib/rizzo-docs/pages/TooltipDoc.svelte +0 -57
  247. package/scaffold/svelte-app/src/routes/+layout.svelte +0 -10
  248. package/scaffold/svelte-app/src/routes/+page.svelte +0 -31
  249. package/scaffold/svelte-app/src/routes/components/+page.svelte +0 -4
  250. package/scaffold/svelte-app/src/routes/components/[slug]/+page.svelte +0 -7
  251. package/scaffold/svelte-app/static/robots.txt +0 -3
  252. package/scaffold/svelte-app/svelte.config.js +0 -13
  253. package/scaffold/svelte-app/tsconfig.json +0 -21
  254. package/scaffold/svelte-app/vite.config.ts +0 -6
  255. /package/scaffold/{astro-app → astro-minimal}/astro.config.mjs +0 -0
  256. /package/scaffold/{astro-app → astro-minimal}/public/.gitkeep +0 -0
  257. /package/scaffold/{astro-app → astro-minimal}/public/favicon.svg +0 -0
  258. /package/scaffold/{astro-app → astro-minimal}/tsconfig.json +0 -0
  259. /package/scaffold/{svelte-app → svelte-minimal}/static/.gitkeep +0 -0
@@ -1,161 +0,0 @@
1
- <script lang="ts">
2
- import Dropdown from '$lib/rizzo/Dropdown.svelte';
3
- import CodeBlock from '$lib/rizzo-docs/CodeBlock.svelte';
4
-
5
- const basicItems = [
6
- { label: 'Edit', value: 'edit', onClick: (v) => console.log('Action:', v) },
7
- { label: 'Delete', value: 'delete', onClick: (v) => console.log('Action:', v) },
8
- { separator: true },
9
- { label: 'Settings', href: '/settings' },
10
- ];
11
-
12
- const linkItems = [
13
- { label: 'Home', href: '/' },
14
- { label: 'Documentation', href: '/docs' },
15
- { label: 'Components', href: '/docs/components' },
16
- { separator: true },
17
- { label: 'GitHub', href: 'https://github.com' },
18
- ];
19
-
20
- const disabledItems = [
21
- { label: 'Available Option', value: 'available' },
22
- { label: 'Disabled Option', value: 'disabled', disabled: true },
23
- { separator: true },
24
- { label: 'Another Option', value: 'another' },
25
- ];
26
-
27
- const submenuItems = [
28
- {
29
- label: 'Edit',
30
- submenu: [
31
- { label: 'Cut', value: 'cut', onClick: (v) => console.log('Submenu:', v) },
32
- { label: 'Copy', value: 'copy', onClick: (v) => console.log('Submenu:', v) },
33
- { label: 'Paste', value: 'paste', onClick: (v) => console.log('Submenu:', v) },
34
- { separator: true },
35
- {
36
- label: 'Advanced',
37
- submenu: [
38
- { label: 'Find & Replace', value: 'find-replace', onClick: (v) => console.log('Submenu:', v) },
39
- { label: 'Go to Line', value: 'go-to-line', onClick: (v) => console.log('Submenu:', v) },
40
- { label: 'Format Document', value: 'format', onClick: (v) => console.log('Submenu:', v) },
41
- ],
42
- },
43
- ],
44
- },
45
- {
46
- label: 'View',
47
- submenu: [
48
- { label: 'Zoom In', value: 'zoom-in', onClick: (v) => console.log('Submenu:', v) },
49
- { label: 'Zoom Out', value: 'zoom-out', onClick: (v) => console.log('Submenu:', v) },
50
- { label: 'Reset Zoom', value: 'reset-zoom', onClick: (v) => console.log('Submenu:', v) },
51
- ],
52
- },
53
- { separator: true },
54
- { label: 'Help', href: '/docs' },
55
- { label: 'Settings', href: '/docs/components/settings' },
56
- ];
57
-
58
- const positionItems = [
59
- { label: 'Item 1', value: '1' },
60
- { label: 'Item 2', value: '2' },
61
- { label: 'Item 3', value: '3' },
62
- ];
63
- </script>
64
-
65
- <section>
66
- <h2>Dropdown component</h2>
67
- <p>An accessible dropdown menu component for displaying lists of actions or options. Supports menu items, separators, links, submenus, and click handlers. Matches the <a href="/docs/components/dropdown">Astro dropdown</a> in look and behavior.</p>
68
-
69
- <h3>Basic usage</h3>
70
- <div class="example">
71
- <h4 class="example-title">Live example</h4>
72
- <Dropdown trigger="Actions" items={basicItems} />
73
- </div>
74
-
75
- <h3>With links</h3>
76
- <div class="example">
77
- <h4 class="example-title">Live example</h4>
78
- <Dropdown trigger="Navigate" items={linkItems} />
79
- </div>
80
-
81
- <h3>With disabled items</h3>
82
- <div class="example">
83
- <h4 class="example-title">Live example</h4>
84
- <Dropdown trigger="Options" items={disabledItems} />
85
- </div>
86
-
87
- <h3>Nested submenus</h3>
88
- <div class="example">
89
- <h4 class="example-title">Live example</h4>
90
- <Dropdown trigger="Actions" items={submenuItems} />
91
- </div>
92
-
93
- <h3>Menu positioning</h3>
94
- <div class="example">
95
- <h4 class="example-title">Live examples</h4>
96
- <div class="example-row">
97
- <div>
98
- <p class="example-label">Left</p>
99
- <Dropdown trigger="Left position" position="left" items={positionItems} />
100
- </div>
101
- <div class="example-right">
102
- <p class="example-label">Right</p>
103
- <Dropdown trigger="Right position" position="right" items={positionItems} />
104
- </div>
105
- </div>
106
- </div>
107
-
108
- <h3>Usage</h3>
109
- <CodeBlock
110
- code={`<script>
111
- import Dropdown from './components/svelte/Dropdown.svelte';
112
- </script>
113
-
114
- <Dropdown
115
- trigger="Options"
116
- items={[
117
- { label: 'Save', onClick: (v) => save(v) },
118
- { label: 'Docs', href: '/docs' },
119
- { separator: true },
120
- { label: 'More', submenu: [{ label: 'A', value: 'a' }, { label: 'B', value: 'b' }] },
121
- ]}
122
- />`}
123
- language="svelte"
124
- />
125
- </section>
126
-
127
- <style>
128
- .example {
129
- margin: var(--spacing-6) 0;
130
- padding: var(--spacing-4);
131
- background: var(--background-alt);
132
- border: 1px solid var(--border);
133
- border-radius: var(--radius-lg);
134
- }
135
- .example-title {
136
- font-size: var(--font-size-sm);
137
- font-weight: var(--font-weight-medium);
138
- color: var(--text-dim);
139
- margin-bottom: var(--spacing-3);
140
- text-transform: uppercase;
141
- letter-spacing: var(--letter-spacing-wider);
142
- }
143
- .example-row {
144
- display: flex;
145
- justify-content: space-between;
146
- align-items: flex-start;
147
- gap: var(--spacing-4);
148
- flex-wrap: wrap;
149
- }
150
- .example-label {
151
- margin: 0 0 var(--spacing-2) 0;
152
- font-size: var(--font-size-sm);
153
- color: var(--text-dim);
154
- }
155
- .example-right {
156
- margin-left: auto;
157
- }
158
- .example-right .example-label {
159
- text-align: right;
160
- }
161
- </style>
@@ -1,375 +0,0 @@
1
- <script lang="ts">
2
- import FormGroup from '$lib/rizzo/FormGroup.svelte';
3
- import Input from '$lib/rizzo/Input.svelte';
4
- import Checkbox from '$lib/rizzo/Checkbox.svelte';
5
- import Textarea from '$lib/rizzo/Textarea.svelte';
6
- import Select from '$lib/rizzo/Select.svelte';
7
- import Radio from '$lib/rizzo/Radio.svelte';
8
- import CodeBlock from '$lib/rizzo-docs/CodeBlock.svelte';
9
-
10
- let paymentMethod = $state('card');
11
- </script>
12
-
13
- <section>
14
- <h2>Form Components</h2>
15
- <p>Rizzo CSS includes a comprehensive set of accessible form components built with semantic HTML and ARIA attributes. All form components use theme variables and support validation states.</p>
16
- </section>
17
-
18
- <section>
19
- <h2>FormGroup</h2>
20
- <p>The <code>FormGroup</code> component provides a wrapper for form fields with labels, help text, and error/success messages.</p>
21
-
22
- <h3>Props</h3>
23
- <ul>
24
- <li><code>label</code> (string, optional) - Label text</li>
25
- <li><code>labelFor</code> (string, optional) - ID of the input element</li>
26
- <li><code>required</code> (boolean, optional) - Shows required indicator</li>
27
- <li><code>help</code> (string, optional) - Help text displayed below input</li>
28
- <li><code>error</code> (string, optional) - Error message</li>
29
- <li><code>success</code> (string, optional) - Success message</li>
30
- <li><code>class</code> (string, optional) - Additional CSS classes</li>
31
- </ul>
32
-
33
- <div class="example">
34
- <div class="example-title">Live Example</div>
35
- <FormGroup label="Email Address" labelFor="email-example" required help="We'll never share your email">
36
- <Input type="email" id="email-example" name="email" placeholder="you@example.com" />
37
- </FormGroup>
38
- </div>
39
-
40
- <h3>Code Example</h3>
41
- <CodeBlock
42
- code={`<script>
43
- import FormGroup from './components/svelte/FormGroup.svelte';
44
- import Input from './components/svelte/Input.svelte';
45
- </script>
46
-
47
- <FormGroup label="Email Address" labelFor="email" required help="We'll never share your email">
48
- <Input id="email" type="email" name="email" placeholder="you@example.com" />
49
- </FormGroup>`}
50
- language="svelte"
51
- />
52
- </section>
53
-
54
- <section>
55
- <h2>Input</h2>
56
- <p>The <code>Input</code> component supports various input types with validation states and sizes.</p>
57
-
58
- <h3>Props</h3>
59
- <ul>
60
- <li><code>type</code> (string, optional) - Input type (text, email, password, number, tel, url, search, date, time, datetime-local, month, week)</li>
61
- <li><code>id</code>, <code>name</code>, <code>value</code>, <code>placeholder</code>, <code>required</code>, <code>disabled</code>, <code>readonly</code></li>
62
- <li><code>size</code> ('sm' | 'md' | 'lg', optional) - Input size (default: 'md')</li>
63
- <li><code>error</code> (boolean, optional) - Error state</li>
64
- <li><code>success</code> (boolean, optional) - Success state</li>
65
- </ul>
66
-
67
- <h3>Input Types</h3>
68
- <div class="example">
69
- <div class="example-title">Live Examples</div>
70
- <FormGroup label="Text Input" labelFor="text-input">
71
- <Input type="text" id="text-input" name="text" placeholder="Enter text" />
72
- </FormGroup>
73
- <FormGroup label="Email Input" labelFor="email-input">
74
- <Input type="email" id="email-input" name="email" placeholder="you@example.com" />
75
- </FormGroup>
76
- <FormGroup label="Password Input" labelFor="password-input">
77
- <Input type="password" id="password-input" name="password" placeholder="Enter password" />
78
- </FormGroup>
79
- <FormGroup label="Number Input" labelFor="number-input">
80
- <Input type="number" id="number-input" name="number" placeholder="Enter number" />
81
- </FormGroup>
82
- </div>
83
-
84
- <h3>Input Sizes</h3>
85
- <div class="example">
86
- <div class="example-title">Live Examples</div>
87
- <FormGroup label="Small Input" labelFor="input-sm">
88
- <Input type="text" id="input-sm" name="input-sm" size="sm" placeholder="Small input" />
89
- </FormGroup>
90
- <FormGroup label="Medium Input (default)" labelFor="input-md">
91
- <Input type="text" id="input-md" name="input-md" size="md" placeholder="Medium input" />
92
- </FormGroup>
93
- <FormGroup label="Large Input" labelFor="input-lg">
94
- <Input type="text" id="input-lg" name="input-lg" size="lg" placeholder="Large input" />
95
- </FormGroup>
96
- </div>
97
-
98
- <h3>Validation States</h3>
99
- <div class="example">
100
- <div class="example-title">Live Examples</div>
101
- <FormGroup label="Error State" labelFor="input-error" error="This field is required">
102
- <Input type="text" id="input-error" name="input-error" error placeholder="Enter text" />
103
- </FormGroup>
104
- <FormGroup label="Success State" labelFor="input-success" success="Looks good!">
105
- <Input type="text" id="input-success" name="input-success" success value="Valid input" />
106
- </FormGroup>
107
- </div>
108
-
109
- <h3>Code Example</h3>
110
- <CodeBlock
111
- code={`<FormGroup label="Email" labelFor="email" required>
112
- <Input id="email" type="email" name="email" placeholder="you@example.com" />
113
- </FormGroup>
114
-
115
- <!-- With error state -->
116
- <FormGroup label="Email" labelFor="email-error" error="Invalid email address">
117
- <Input id="email-error" type="email" name="email" error />
118
- </FormGroup>`}
119
- language="svelte"
120
- />
121
- </section>
122
-
123
- <section>
124
- <h2>Textarea</h2>
125
- <p>The <code>Textarea</code> component for multi-line text input.</p>
126
-
127
- <h3>Props</h3>
128
- <ul>
129
- <li><code>id</code>, <code>name</code>, <code>value</code>, <code>placeholder</code>, <code>required</code>, <code>disabled</code>, <code>readonly</code></li>
130
- <li><code>rows</code> (number, optional) - Number of rows (default: 4)</li>
131
- <li><code>cols</code> (number, optional) - Number of columns</li>
132
- <li><code>size</code>, <code>error</code>, <code>success</code> - Same as Input</li>
133
- </ul>
134
-
135
- <div class="example">
136
- <div class="example-title">Live Example</div>
137
- <FormGroup label="Message" labelFor="textarea-example" help="Enter your message here">
138
- <Textarea id="textarea-example" name="message" rows={5} placeholder="Your message..." />
139
- </FormGroup>
140
- </div>
141
-
142
- <h3>Code Example</h3>
143
- <CodeBlock
144
- code={`<FormGroup label="Message" labelFor="message" help="Enter your message here">
145
- <Textarea id="message" name="message" rows={5} placeholder="Your message..." />
146
- </FormGroup>`}
147
- language="svelte"
148
- />
149
- </section>
150
-
151
- <section>
152
- <h2>Select</h2>
153
- <p>The <code>Select</code> component for dropdown selections.</p>
154
-
155
- <h3>Props</h3>
156
- <ul>
157
- <li><code>id</code>, <code>name</code>, <code>value</code>, <code>required</code>, <code>disabled</code></li>
158
- <li><code>size</code>, <code>error</code>, <code>success</code> - Same as Input</li>
159
- </ul>
160
-
161
- <div class="example">
162
- <div class="example-title">Live Example</div>
163
- <FormGroup label="Country" labelFor="select-example" required>
164
- <Select id="select-example" name="country">
165
- <option value="">Select a country</option>
166
- <option value="us">United States</option>
167
- <option value="ca">Canada</option>
168
- <option value="uk">United Kingdom</option>
169
- <option value="au">Australia</option>
170
- </Select>
171
- </FormGroup>
172
- </div>
173
-
174
- <h3>Code Example</h3>
175
- <CodeBlock
176
- code={`<FormGroup label="Country" labelFor="country" required>
177
- <Select id="country" name="country">
178
- <option value="">Select a country</option>
179
- <option value="us">United States</option>
180
- <option value="ca">Canada</option>
181
- <option value="uk">United Kingdom</option>
182
- </Select>
183
- </FormGroup>`}
184
- language="svelte"
185
- />
186
- </section>
187
-
188
- <section>
189
- <h2>Checkbox</h2>
190
- <p>The <code>Checkbox</code> component for single or multiple selections.</p>
191
-
192
- <h3>Props</h3>
193
- <ul>
194
- <li><code>id</code>, <code>name</code>, <code>value</code>, <code>checked</code>, <code>required</code>, <code>disabled</code></li>
195
- <li><code>ariaLabel</code> (string, optional) - Accessible label</li>
196
- <li><code>ariaDescribedby</code> (string, optional) - ID of element that describes this checkbox</li>
197
- </ul>
198
-
199
- <div class="example">
200
- <div class="example-title">Live Examples</div>
201
- <FormGroup label="Preferences">
202
- <div class="checkbox-group">
203
- <label class="checkbox-label">
204
- <Checkbox id="newsletter" name="preferences" value="newsletter" />
205
- Subscribe to newsletter
206
- </label>
207
- <label class="checkbox-label">
208
- <Checkbox id="updates" name="preferences" value="updates" />
209
- Receive product updates
210
- </label>
211
- <label class="checkbox-label">
212
- <Checkbox id="marketing" name="preferences" value="marketing" />
213
- Marketing communications
214
- </label>
215
- </div>
216
- </FormGroup>
217
- </div>
218
-
219
- <h3>Code Example</h3>
220
- <CodeBlock
221
- code={`<label class="checkbox-label">
222
- <Checkbox id="newsletter" name="preferences" value="newsletter" />
223
- Subscribe to newsletter
224
- </label>
225
-
226
- <!-- Checkbox Group -->
227
- <div class="checkbox-group">
228
- <label class="checkbox-label">
229
- <Checkbox id="opt1" name="options" value="1" />
230
- Option 1
231
- </label>
232
- <label class="checkbox-label">
233
- <Checkbox id="opt2" name="options" value="2" />
234
- Option 2
235
- </label>
236
- </div>`}
237
- language="svelte"
238
- />
239
- </section>
240
-
241
- <section>
242
- <h2>Radio</h2>
243
- <p>The <code>Radio</code> component for single selection from multiple options.</p>
244
-
245
- <h3>Props</h3>
246
- <ul>
247
- <li><code>id</code>, <code>name</code>, <code>value</code>, <code>checked</code>, <code>required</code>, <code>disabled</code></li>
248
- <li><code>group</code> (bindable, optional) - Bound value for the selected option (use same bound variable for all radios in the group)</li>
249
- <li><code>ariaLabel</code>, <code>ariaDescribedby</code> - Same as Checkbox</li>
250
- </ul>
251
-
252
- <div class="example">
253
- <div class="example-title">Live Example</div>
254
- <FormGroup label="Payment Method" required>
255
- <div class="radio-group">
256
- <label class="radio-label">
257
- <Radio name="payment" id="payment-card" value="card" bind:group={paymentMethod} />
258
- Credit Card
259
- </label>
260
- <label class="radio-label">
261
- <Radio name="payment" id="payment-paypal" value="paypal" bind:group={paymentMethod} />
262
- PayPal
263
- </label>
264
- <label class="radio-label">
265
- <Radio name="payment" id="payment-bank" value="bank" bind:group={paymentMethod} />
266
- Bank Transfer
267
- </label>
268
- </div>
269
- </FormGroup>
270
- </div>
271
-
272
- <h3>Code Example</h3>
273
- <CodeBlock
274
- code={`<script>
275
- let payment = $state('card');
276
- </script>
277
-
278
- <div class="radio-group">
279
- <label class="radio-label">
280
- <Radio name="payment" id="payment-card" value="card" bind:group={payment} />
281
- Credit Card
282
- </label>
283
- <label class="radio-label">
284
- <Radio name="payment" id="payment-paypal" value="paypal" bind:group={payment} />
285
- PayPal
286
- </label>
287
- </div>`}
288
- language="svelte"
289
- />
290
- </section>
291
-
292
- <section>
293
- <h2>Complete Form Example</h2>
294
- <div class="example">
295
- <div class="example-title">Live Example</div>
296
- <form style="max-width: 600px;">
297
- <FormGroup label="Full Name" labelFor="form-name" required>
298
- <Input type="text" id="form-name" name="name" placeholder="John Doe" required />
299
- </FormGroup>
300
-
301
- <FormGroup label="Email Address" labelFor="form-email" required help="We'll never share your email">
302
- <Input type="email" id="form-email" name="email" placeholder="you@example.com" required />
303
- </FormGroup>
304
-
305
- <FormGroup label="Country" labelFor="form-country" required>
306
- <Select id="form-country" name="country" required>
307
- <option value="">Select a country</option>
308
- <option value="us">United States</option>
309
- <option value="ca">Canada</option>
310
- <option value="uk">United Kingdom</option>
311
- </Select>
312
- </FormGroup>
313
-
314
- <FormGroup label="Message" labelFor="form-message">
315
- <Textarea id="form-message" name="message" rows={4} placeholder="Your message..." />
316
- </FormGroup>
317
-
318
- <FormGroup>
319
- <label class="checkbox-label">
320
- <Checkbox id="form-consent" name="consent" value="yes" required />
321
- I agree to the terms and conditions
322
- </label>
323
- </FormGroup>
324
-
325
- <button type="submit" class="btn btn-primary">Submit</button>
326
- </form>
327
- </div>
328
- </section>
329
-
330
- <section>
331
- <h2>Accessibility</h2>
332
- <p>All form components follow accessibility best practices:</p>
333
- <ul>
334
- <li>Proper label associations using <code>for</code> and <code>id</code> attributes</li>
335
- <li>ARIA attributes for validation states (<code>aria-invalid</code>, <code>aria-describedby</code>)</li>
336
- <li>Error messages with <code>role="alert"</code> for screen readers</li>
337
- <li>Keyboard navigation support</li>
338
- <li>Focus indicators using theme accent color</li>
339
- <li>Required field indicators</li>
340
- </ul>
341
- </section>
342
-
343
- <section>
344
- <h2>Styling</h2>
345
- <p>All form components use semantic theme variables and automatically adapt to the selected theme. Form styles are defined in <code>src/styles/forms.css</code>.</p>
346
-
347
- <h3>Customization</h3>
348
- <p>You can customize form inputs using CSS variables or by adding custom classes:</p>
349
- <CodeBlock
350
- code={`.custom-input {
351
- border-radius: var(--radius-lg);
352
- padding: var(--spacing-4);
353
- }`}
354
- language="css"
355
- />
356
- <p><strong>Astro &amp; Vanilla:</strong> <a href="/docs/components/forms">Astro</a> · <a href="/docs/vanilla/components/forms">Vanilla</a> — same BEM classes and HTML structure.</p>
357
- </section>
358
-
359
- <style>
360
- .example {
361
- margin: var(--spacing-6) 0;
362
- padding: var(--spacing-4);
363
- background: var(--background-alt);
364
- border: 1px solid var(--border);
365
- border-radius: var(--radius-lg);
366
- }
367
- .example-title {
368
- font-size: var(--font-size-sm);
369
- font-weight: var(--font-weight-medium);
370
- color: var(--text-dim);
371
- margin-bottom: var(--spacing-3);
372
- text-transform: uppercase;
373
- letter-spacing: var(--letter-spacing-wider);
374
- }
375
- </style>