@rimelight/ui 0.0.33 → 0.0.35

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 (389) hide show
  1. package/README.md +158 -157
  2. package/package.json +100 -105
  3. package/src/components/astro/RLAAccordion.astro +94 -18
  4. package/src/components/astro/RLAAspectRatio.astro +2 -2
  5. package/src/components/astro/RLAAvatar.astro +135 -68
  6. package/src/components/astro/RLABadge.astro +4 -2
  7. package/src/components/astro/RLABanner.astro +138 -23
  8. package/src/components/astro/RLABreadcrumb.astro +13 -0
  9. package/src/components/astro/RLAButton.astro +145 -139
  10. package/src/components/astro/RLACallout.astro +112 -0
  11. package/src/components/astro/RLACard.astro +6 -5
  12. package/src/components/astro/RLACarousel.astro +104 -75
  13. package/src/components/astro/RLAChart.astro +23 -35
  14. package/src/components/astro/RLAChip.astro +11 -5
  15. package/src/components/astro/RLACollapsible.astro +4 -1
  16. package/src/components/astro/RLAColorArea.astro +432 -0
  17. package/src/components/astro/RLAColorField.astro +300 -0
  18. package/src/components/astro/RLAColorSlider.astro +413 -0
  19. package/src/components/astro/RLAConfirm.astro +13 -11
  20. package/src/components/astro/RLACopyMarkdown.astro +78 -0
  21. package/src/components/astro/RLADate.astro +30 -0
  22. package/src/components/astro/RLADrawer.astro +50 -3
  23. package/src/components/astro/RLADropdownMenu.astro +78 -51
  24. package/src/components/astro/RLAFieldGroup.astro +4 -1
  25. package/src/components/astro/RLAFileUpload.astro +114 -100
  26. package/src/components/astro/RLAFooter.astro +2 -1
  27. package/src/components/astro/RLAFormField.astro +10 -6
  28. package/src/components/astro/RLAGrid.astro +31 -39
  29. package/src/components/astro/RLAHead.astro +528 -197
  30. package/src/components/astro/RLAHeader.astro +67 -59
  31. package/src/components/astro/RLAImage.astro +274 -209
  32. package/src/components/astro/RLAInput.astro +14 -9
  33. package/src/components/astro/RLAInputMenu.astro +119 -83
  34. package/src/components/astro/RLAKbd.astro +5 -5
  35. package/src/components/astro/RLALayoutGrid.astro +395 -0
  36. package/src/components/astro/RLALink.astro +44 -23
  37. package/src/components/astro/RLALinkGroup.astro +99 -37
  38. package/src/components/astro/RLALocaleSelector.astro +130 -113
  39. package/src/components/astro/RLALogo.astro +117 -90
  40. package/src/components/astro/RLAMain.astro +8 -3
  41. package/src/components/astro/RLAMarquee.astro +9 -2
  42. package/src/components/astro/RLAModal.astro +48 -18
  43. package/src/components/astro/RLANavigationMenu.astro +381 -137
  44. package/src/components/astro/{RLADocsPackageManagers.astro → RLAPackageManagers.astro} +81 -87
  45. package/src/components/astro/RLAPageSection.astro +4 -2
  46. package/src/components/astro/RLAPagination.astro +2 -4
  47. package/src/components/astro/RLAPopover.astro +4 -3
  48. package/src/components/astro/RLAPost.astro +11 -2
  49. package/src/components/astro/RLAProgress.astro +8 -2
  50. package/src/components/astro/RLAScrollArea.astro +4 -1
  51. package/src/components/astro/RLAScrollToTop.astro +200 -172
  52. package/src/components/astro/RLASearch.astro +282 -0
  53. package/src/components/astro/RLASelect.astro +101 -64
  54. package/src/components/astro/RLASeparator.astro +11 -6
  55. package/src/components/astro/RLAShare.astro +60 -0
  56. package/src/components/astro/RLAShortcuts.astro +429 -0
  57. package/src/components/astro/RLASidebar.astro +158 -212
  58. package/src/components/astro/RLASlideover.astro +99 -4
  59. package/src/components/astro/RLASlider.astro +14 -14
  60. package/src/components/astro/RLASplitter.astro +207 -142
  61. package/src/components/astro/RLASteps.astro +118 -71
  62. package/src/components/astro/RLAStickySurface.astro +9 -2
  63. package/src/components/astro/RLASurround.astro +39 -0
  64. package/src/components/astro/RLATable.astro +4 -1
  65. package/src/components/astro/RLATableOfContents.astro +109 -23
  66. package/src/components/astro/RLATabs.astro +147 -133
  67. package/src/components/astro/RLATextarea.astro +4 -1
  68. package/src/components/astro/RLAThemeSelector.astro +105 -76
  69. package/src/components/astro/RLAToast.astro +35 -21
  70. package/src/components/vue/RLVBanner.vue +230 -0
  71. package/src/components/vue/RLVButton.vue +3 -2
  72. package/src/components/vue/RLVCheckbox.vue +70 -68
  73. package/src/components/vue/RLVFooter.vue +3 -2
  74. package/src/components/vue/RLVForm.vue +44 -44
  75. package/src/components/vue/RLVFormField.vue +58 -58
  76. package/src/components/vue/RLVHeader.vue +3 -2
  77. package/src/components/vue/RLVIcon.vue +4 -2
  78. package/src/components/vue/RLVInput.vue +94 -93
  79. package/src/components/vue/RLVLogo.vue +25 -3
  80. package/src/components/vue/RLVPlaceholder.vue +3 -2
  81. package/src/components/vue/RLVPost.vue +69 -63
  82. package/src/components/vue/RLVPosts.vue +21 -21
  83. package/src/components/vue/RLVProgress.vue +60 -0
  84. package/src/components/vue/RLVScrollToTop.vue +65 -52
  85. package/src/components/vue/RLVSection.vue +14 -13
  86. package/src/components/vue/RLVToast.vue +81 -68
  87. package/src/components/vue/RLVToaster.vue +29 -29
  88. package/src/composables/index.ts +4 -3
  89. package/src/composables/useHeaderStore.ts +14 -14
  90. package/src/composables/useScrollToTop.ts +62 -62
  91. package/src/composables/useShortcuts.ts +11 -0
  92. package/src/composables/useToast.ts +43 -42
  93. package/src/config/index.ts +1 -0
  94. package/src/config/security.ts +227 -0
  95. package/src/config/site.config.ts +1 -0
  96. package/src/docs/components/ApiChangelog.astro +147 -0
  97. package/src/{plugins/starlightDocsApi → docs}/components/ApiEmits.astro +4 -4
  98. package/src/{plugins/starlightDocsApi → docs}/components/ApiProps.astro +4 -4
  99. package/src/{plugins/starlightDocsApi → docs}/components/ApiSlots.astro +4 -4
  100. package/src/docs/components/ApiTheme.astro +100 -0
  101. package/src/docs/extractAll.ts +94 -0
  102. package/src/docs/extractors/extractAstro.ts +69 -0
  103. package/src/docs/extractors/extractTheme.ts +56 -0
  104. package/src/{plugins/starlightDocsApi/extract-vue.ts → docs/extractors/extractVue.ts} +164 -15
  105. package/src/{plugins/starlightDocsApi → docs}/utils.ts +1 -2
  106. package/src/env.d.ts +0 -12
  107. package/src/integrations/ui.ts +215 -199
  108. package/src/middleware/security.ts +145 -29
  109. package/src/presets/defaults.ts +297 -297
  110. package/src/presets/index.ts +508 -637
  111. package/src/styles/index.css +158 -160
  112. package/src/themes/3d-hover.theme.ts +13 -13
  113. package/src/themes/accordion.theme.ts +39 -13
  114. package/src/themes/app.theme.ts +13 -13
  115. package/src/themes/aspect-ratio.theme.ts +1 -1
  116. package/src/themes/audio.theme.ts +13 -13
  117. package/src/themes/avatar-group.theme.ts +1 -1
  118. package/src/themes/avatar.theme.ts +84 -84
  119. package/src/themes/badge.theme.ts +168 -163
  120. package/src/themes/banner.theme.ts +49 -13
  121. package/src/themes/breadcrumb.theme.ts +1 -1
  122. package/src/themes/browser-mockup.theme.ts +13 -13
  123. package/src/themes/button.theme.ts +223 -202
  124. package/src/themes/calendar.theme.ts +13 -13
  125. package/src/themes/{alert.theme.ts → callout.theme.ts} +104 -125
  126. package/src/themes/card.theme.ts +50 -42
  127. package/src/themes/carousel.theme.ts +1 -1
  128. package/src/themes/chart.theme.ts +22 -22
  129. package/src/themes/chat-message.theme.ts +13 -13
  130. package/src/themes/chat-messages.theme.ts +13 -13
  131. package/src/themes/chat-palette.theme.ts +13 -13
  132. package/src/themes/chat-prompt-submit.theme.ts +13 -13
  133. package/src/themes/chat-prompt.theme.ts +13 -13
  134. package/src/themes/chat-reasoning.theme.ts +13 -13
  135. package/src/themes/chat-shimmer.theme.ts +13 -13
  136. package/src/themes/chat-tool.theme.ts +13 -13
  137. package/src/themes/chat.theme.ts +13 -13
  138. package/src/themes/checkbox.theme.ts +49 -50
  139. package/src/themes/chip.theme.ts +73 -74
  140. package/src/themes/color-area.theme.ts +33 -0
  141. package/src/themes/color-field.theme.ts +32 -0
  142. package/src/themes/color-picker.theme.ts +13 -13
  143. package/src/themes/color-slider.theme.ts +34 -0
  144. package/src/themes/command-palette.theme.ts +13 -13
  145. package/src/themes/compare.theme.ts +13 -13
  146. package/src/themes/confirm.theme.ts +48 -48
  147. package/src/themes/container.theme.ts +13 -13
  148. package/src/themes/context-menu.theme.ts +13 -13
  149. package/src/themes/dashboard-group.theme.ts +13 -13
  150. package/src/themes/dashboard-navbar.theme.ts +13 -13
  151. package/src/themes/dashboard-panel.theme.ts +13 -13
  152. package/src/themes/dashboard-resize-handle.theme.ts +13 -13
  153. package/src/themes/dashboard-search-button.theme.ts +13 -13
  154. package/src/themes/dashboard-search.theme.ts +13 -13
  155. package/src/themes/dashboard-sidebar-collapse.theme.ts +13 -13
  156. package/src/themes/dashboard-sidebar-toggle.theme.ts +13 -13
  157. package/src/themes/dashboard-sidebar.theme.ts +13 -13
  158. package/src/themes/dashboard-toolbar.theme.ts +13 -13
  159. package/src/themes/dock.theme.ts +13 -13
  160. package/src/themes/drawer.theme.ts +61 -61
  161. package/src/themes/dropdown-menu.theme.ts +29 -29
  162. package/src/themes/editor.theme.ts +13 -13
  163. package/src/themes/empty.theme.ts +13 -13
  164. package/src/themes/error.theme.ts +13 -13
  165. package/src/themes/field-group.theme.ts +24 -24
  166. package/src/themes/fieldset.theme.ts +13 -13
  167. package/src/themes/floating-action.theme.ts +13 -13
  168. package/src/themes/footer.theme.ts +30 -30
  169. package/src/themes/form.theme.ts +13 -13
  170. package/src/themes/gallery.theme.ts +13 -13
  171. package/src/themes/grid.theme.ts +38 -0
  172. package/src/themes/head.theme.ts +13 -13
  173. package/src/themes/header.theme.ts +46 -46
  174. package/src/themes/hover-card.theme.ts +1 -1
  175. package/src/themes/icon.theme.ts +23 -23
  176. package/src/themes/image.theme.ts +33 -19
  177. package/src/themes/input-date.theme.ts +13 -13
  178. package/src/themes/input-menu.theme.ts +35 -35
  179. package/src/themes/input-number.theme.ts +13 -13
  180. package/src/themes/input-tags.theme.ts +13 -13
  181. package/src/themes/input-time.theme.ts +13 -13
  182. package/src/themes/input.theme.ts +48 -42
  183. package/src/themes/kbd.theme.ts +94 -89
  184. package/src/themes/knob.theme.ts +13 -13
  185. package/src/themes/label.theme.ts +1 -1
  186. package/src/themes/layout-grid.theme.ts +16 -0
  187. package/src/themes/link-group.theme.ts +28 -32
  188. package/src/themes/link.theme.ts +13 -13
  189. package/src/themes/listbox.theme.ts +13 -13
  190. package/src/themes/locale-selector.theme.ts +49 -49
  191. package/src/themes/logo.theme.ts +13 -13
  192. package/src/themes/main.theme.ts +13 -13
  193. package/src/themes/marquee.theme.ts +1 -1
  194. package/src/themes/meter.theme.ts +13 -13
  195. package/src/themes/modal.theme.ts +1 -1
  196. package/src/themes/navigation-menu.theme.ts +44 -27
  197. package/src/themes/page-aside.theme.ts +13 -13
  198. package/src/themes/page-body.theme.ts +13 -13
  199. package/src/themes/page-header.theme.ts +13 -13
  200. package/src/themes/page-section.theme.ts +189 -187
  201. package/src/themes/page.theme.ts +13 -13
  202. package/src/themes/pagination.theme.ts +1 -1
  203. package/src/themes/password.theme.ts +13 -13
  204. package/src/themes/phone-mockup.theme.ts +13 -13
  205. package/src/themes/pin-input.theme.ts +1 -1
  206. package/src/themes/placeholder.theme.ts +15 -15
  207. package/src/themes/popover.theme.ts +1 -1
  208. package/src/themes/post.theme.ts +53 -33
  209. package/src/themes/pricing-plan.theme.ts +13 -13
  210. package/src/themes/pricing-table.theme.ts +13 -13
  211. package/src/themes/progress.theme.ts +37 -38
  212. package/src/themes/prose.theme.ts +13 -13
  213. package/src/themes/qr-code.theme.ts +13 -13
  214. package/src/themes/quote.theme.ts +13 -13
  215. package/src/themes/radio-group.theme.ts +13 -13
  216. package/src/themes/rating.theme.ts +13 -13
  217. package/src/themes/scroll-area.theme.ts +26 -26
  218. package/src/themes/scroll-to-top.theme.ts +51 -52
  219. package/src/themes/search.theme.ts +64 -0
  220. package/src/themes/select.theme.ts +29 -29
  221. package/src/themes/separator.theme.ts +147 -147
  222. package/src/themes/sidebar.theme.ts +38 -38
  223. package/src/themes/skeleton.theme.ts +21 -21
  224. package/src/themes/slideover.theme.ts +5 -5
  225. package/src/themes/slider.theme.ts +35 -36
  226. package/src/themes/speed-dial.theme.ts +13 -13
  227. package/src/themes/spinner.theme.ts +33 -34
  228. package/src/themes/splitter.theme.ts +23 -23
  229. package/src/themes/spoiler.theme.ts +13 -13
  230. package/src/themes/stepper.theme.ts +13 -13
  231. package/src/themes/{megamenu.theme.ts → steps.theme.ts} +13 -13
  232. package/src/themes/sticky-surface.theme.ts +1 -1
  233. package/src/themes/switch.theme.ts +66 -67
  234. package/src/themes/table-of-contents.theme.ts +67 -48
  235. package/src/themes/tabs.theme.ts +52 -52
  236. package/src/themes/textarea.theme.ts +27 -27
  237. package/src/themes/theme-selector.theme.ts +15 -15
  238. package/src/themes/timeline.theme.ts +18 -13
  239. package/src/themes/toast.theme.ts +31 -31
  240. package/src/themes/tooltip.theme.ts +28 -28
  241. package/src/themes/tour.theme.ts +13 -13
  242. package/src/themes/tree.theme.ts +13 -13
  243. package/src/themes/user.theme.ts +13 -13
  244. package/src/themes/video.theme.ts +17 -17
  245. package/src/themes/watermark.theme.ts +13 -13
  246. package/src/themes/window-mockup.theme.ts +13 -13
  247. package/src/types/components/3d-hover.ts +11 -11
  248. package/src/types/components/accordion.ts +35 -2
  249. package/src/types/components/app.ts +11 -11
  250. package/src/types/components/audio.ts +11 -11
  251. package/src/types/components/avatar-group.ts +11 -11
  252. package/src/types/components/avatar.ts +76 -60
  253. package/src/types/components/badge.ts +2 -2
  254. package/src/types/components/banner.ts +53 -11
  255. package/src/types/components/browser-mockup.ts +11 -11
  256. package/src/types/components/button.ts +73 -81
  257. package/src/types/components/calendar.ts +11 -11
  258. package/src/types/components/{alert.ts → callout.ts} +8 -8
  259. package/src/types/components/changelog.ts +11 -11
  260. package/src/types/components/chart.ts +2 -1
  261. package/src/types/components/chat-message.ts +11 -11
  262. package/src/types/components/chat-messages.ts +11 -11
  263. package/src/types/components/chat-palette.ts +11 -11
  264. package/src/types/components/chat-prompt-submit.ts +11 -11
  265. package/src/types/components/chat-prompt.ts +11 -11
  266. package/src/types/components/chat-reasoning.ts +11 -11
  267. package/src/types/components/chat-shimmer.ts +11 -11
  268. package/src/types/components/chat-tool.ts +11 -11
  269. package/src/types/components/chat.ts +11 -11
  270. package/src/types/components/checkbox.ts +2 -2
  271. package/src/types/components/chip.ts +17 -17
  272. package/src/types/components/collapsible.ts +2 -1
  273. package/src/types/components/color-area.ts +19 -0
  274. package/src/types/components/color-field.ts +21 -0
  275. package/src/types/components/color-picker.ts +11 -11
  276. package/src/types/components/color-slider.ts +20 -0
  277. package/src/types/components/command-palette.ts +11 -11
  278. package/src/types/components/compare.ts +11 -11
  279. package/src/types/components/container.ts +17 -17
  280. package/src/types/components/context-menu.ts +11 -11
  281. package/src/types/components/dashboard-group.ts +11 -11
  282. package/src/types/components/dashboard-navbar.ts +11 -11
  283. package/src/types/components/dashboard-panel.ts +11 -11
  284. package/src/types/components/dashboard-resize-handle.ts +11 -11
  285. package/src/types/components/dashboard-search-button.ts +11 -11
  286. package/src/types/components/dashboard-search.ts +11 -11
  287. package/src/types/components/dashboard-sidebar-collapse.ts +11 -11
  288. package/src/types/components/dashboard-sidebar-toggle.ts +11 -11
  289. package/src/types/components/dashboard-sidebar.ts +11 -11
  290. package/src/types/components/dashboard-toolbar.ts +11 -11
  291. package/src/types/components/dock.ts +11 -11
  292. package/src/types/components/dropdown-menu.ts +2 -1
  293. package/src/types/components/editor.ts +11 -11
  294. package/src/types/components/empty.ts +11 -11
  295. package/src/types/components/error.ts +11 -11
  296. package/src/types/components/fieldset.ts +11 -11
  297. package/src/types/components/file-upload.ts +2 -1
  298. package/src/types/components/floating-action.ts +11 -11
  299. package/src/types/components/form.ts +19 -19
  300. package/src/types/components/gallery.ts +11 -11
  301. package/src/types/components/grid.ts +23 -0
  302. package/src/types/components/icon.ts +19 -19
  303. package/src/types/components/image.ts +32 -28
  304. package/src/types/components/input-date.ts +11 -11
  305. package/src/types/components/input-menu.ts +44 -43
  306. package/src/types/components/input-number.ts +11 -11
  307. package/src/types/components/input-pin.ts +36 -35
  308. package/src/types/components/input-tags.ts +11 -11
  309. package/src/types/components/input-time.ts +11 -11
  310. package/src/types/components/input.ts +6 -2
  311. package/src/types/components/knob.ts +11 -11
  312. package/src/types/components/layout-grid.ts +145 -0
  313. package/src/types/components/link-group.ts +47 -23
  314. package/src/types/components/link.ts +19 -0
  315. package/src/types/components/listbox.ts +11 -11
  316. package/src/types/components/locale-selector.ts +33 -33
  317. package/src/types/components/logo.ts +32 -31
  318. package/src/types/components/main.ts +17 -17
  319. package/src/types/components/meter.ts +11 -11
  320. package/src/types/components/modal.ts +39 -39
  321. package/src/types/components/navigation-menu.ts +59 -54
  322. package/src/types/components/page-aside.ts +11 -11
  323. package/src/types/components/page-body.ts +11 -11
  324. package/src/types/components/page-header.ts +11 -11
  325. package/src/types/components/page.ts +11 -11
  326. package/src/types/components/password.ts +11 -11
  327. package/src/types/components/phone-mockup.ts +5 -5
  328. package/src/types/components/pin-input.ts +11 -11
  329. package/src/types/components/popover.ts +23 -23
  330. package/src/types/components/post.ts +47 -35
  331. package/src/types/components/pricing-plan.ts +11 -11
  332. package/src/types/components/pricing-table.ts +11 -11
  333. package/src/types/components/progress.ts +33 -33
  334. package/src/types/components/prose.ts +11 -11
  335. package/src/types/components/qr-code.ts +11 -11
  336. package/src/types/components/radio-group.ts +11 -11
  337. package/src/types/components/rating.ts +11 -11
  338. package/src/types/components/scroll-area.ts +23 -23
  339. package/src/types/components/scroll-to-top.ts +2 -2
  340. package/src/types/components/search.ts +29 -0
  341. package/src/types/components/select.ts +2 -1
  342. package/src/types/components/separator.ts +19 -19
  343. package/src/types/components/sidebar.ts +83 -72
  344. package/src/types/components/slideover.ts +31 -31
  345. package/src/types/components/slider.ts +2 -2
  346. package/src/types/components/speed-dial.ts +11 -11
  347. package/src/types/components/spinner.ts +25 -25
  348. package/src/types/components/splitter.ts +19 -19
  349. package/src/types/components/spoiler.ts +11 -11
  350. package/src/types/components/stepper.ts +11 -11
  351. package/src/types/components/{megamenu.ts → steps.ts} +17 -11
  352. package/src/types/components/sticky-surface.ts +19 -19
  353. package/src/types/components/switch.ts +41 -41
  354. package/src/types/components/table-of-contents.ts +39 -17
  355. package/src/types/components/tabs.ts +2 -1
  356. package/src/types/components/textarea.ts +2 -1
  357. package/src/types/components/theme-selector.ts +15 -15
  358. package/src/types/components/timeline.ts +11 -11
  359. package/src/types/components/toast.ts +6 -1
  360. package/src/types/components/tooltip.ts +23 -23
  361. package/src/types/components/tour.ts +11 -11
  362. package/src/types/components/tree.ts +11 -11
  363. package/src/types/components/user.ts +11 -11
  364. package/src/types/components/watermark.ts +11 -11
  365. package/src/types/components/window-mockup.ts +11 -11
  366. package/src/types/docs.ts +40 -0
  367. package/src/types/index.ts +151 -1
  368. package/src/types/theme.ts +11 -1
  369. package/src/utils/color.ts +165 -0
  370. package/src/utils/docs.ts +365 -189
  371. package/src/utils/headerStack.ts +115 -95
  372. package/src/utils/index.ts +7 -5
  373. package/src/utils/shortcuts.ts +322 -0
  374. package/src/components/TableOfContents.astro +0 -107
  375. package/src/components/astro/RLAAlert.astro +0 -93
  376. package/src/components/astro/RLABlogPost.astro +0 -7
  377. package/src/components/astro/RLABlogPosts.astro +0 -9
  378. package/src/components/astro/RLAChangelog.astro +0 -23
  379. package/src/components/astro/RLAMegamenu.astro +0 -23
  380. package/src/components/astro/RLAPosts.astro +0 -23
  381. package/src/plugins/index.ts +0 -2
  382. package/src/plugins/starlightDocsApi/components/ApiTheme.astro +0 -27
  383. package/src/plugins/starlightDocsApi/index.ts +0 -272
  384. package/src/styles/prism.css +0 -42
  385. package/src/themes/changelog.theme.ts +0 -13
  386. package/src/themes/posts.theme.ts +0 -13
  387. package/src/types/components/index.ts +0 -135
  388. package/src/types/components/posts.ts +0 -11
  389. /package/src/{plugins/starlightDocsApi → docs}/types.ts +0 -0
package/README.md CHANGED
@@ -1,157 +1,158 @@
1
- # Rimelight UI (@rimelight/ui)
2
-
3
- [![Built with Astro](https://astro.badg.es/v2/built-with-astro/small.svg)](https://astro.build)  
4
-
5
- [![PLAYGROUND](https://img.shields.io/badge/PLAYGROUND-A682FF?style=for-the-badge&logo=astro&logoColor=white)](https://playground.rimelight.com/ui)  
6
- [![DOCUMENTATION](https://img.shields.io/badge/DOCUMENTATION-A682FF?style=for-the-badge&logo=astro&logoColor=white)](https://rimelight.com/company/docs/packages/rimelight-ui/)  
7
-
8
- [![NPM Version](https://img.shields.io/npm/v/@rimelight/ui?style=for-the-badge&logo=npm&logoColor=white&color=A682FF)](https://www.npmjs.com/package/@rimelight/ui)  
9
- [![NPM Downloads](https://img.shields.io/npm/dt/@rimelight/ui?style=for-the-badge&color=A682FF&logo=npm&logoColor=white)](https://www.npmjs.com/package/@rimelight/ui)  
10
- [![View on npmx](https://img.shields.io/badge/VIEW%20ON%20NPMX-A682FF?style=for-the-badge&logo=npm&logoColor=white)](https://npmx.dev/package/@rimelight/ui)  
11
-
12
- Rimelight UI is a comprehensive component library for [Astro](https://astro.build) websites used and maintained by [Rimelight Entertainment](https://rimelight.com).
13
- It offers a suite of accessible and highly performant components as [Astro Components](https://docs.astro.build/basics/astro-components/) and [Vue Components](https://vuejs.org), and is available as a free and open source project for any to use.
14
-
15
- ## Features
16
-
17
- - **Multiple Frameworks**: Astro, Vue, and more with a unified usage pattern - use what suits your project best.
18
- - **Intuitive**: Simple APIs, comprehensive documentation, and convenient integrations.
19
- - **Accessible**: All components are WAI-ARIA compliant and include keyboard navigation, focus management, and
20
- screen reader support.
21
- - **Customizable**: Create your own design system by overriding styles and variants globally or per instance.
22
- - **Performant**: Fully type-safe, SEO-friendly, modern and lean dependencies, and blazing fast.
23
-
24
- For a complete list of available components, refer to the [documentation](https://rimelight.com/company/docs/packages/rimelight-ui/).
25
-
26
- ## Installation
27
-
28
- To use Rimelight UI in an Astro project, you need to install the package and add the integration.
29
-
30
- 1. Install the package into your project:
31
-
32
- ```bash
33
- # vp
34
- vp install @rimelight/ui
35
-
36
- # npm
37
- npm install @rimelight/ui
38
-
39
- # pnpm
40
- pnpm add @rimelight/ui
41
-
42
- # yarn
43
- yarn add @rimelight/ui
44
-
45
- # deno
46
- deno add npm:@rimelight/ui
47
-
48
- # bun
49
- bun add @rimelight/ui
50
- ```
51
-
52
- 2. Add the Rimelight UI Astro integration to your Astro configuration:
53
-
54
- ```typescript
55
- // astro.config.ts
56
- import { ui } from "@rimelight/ui/integrations"
57
- import { defineConfig } from "astro/config"
58
-
59
- export default defineConfig({
60
- integrations: [
61
- ui({
62
- // Optional: Provide global UI overrides
63
- ui: {
64
- button: {
65
- defaultVariants: { variant: "primary" }
66
- }
67
- }
68
- })
69
- ]
70
- })
71
- ```
72
-
73
- ## Usage
74
-
75
- ### Astro Components
76
-
77
- ```astro
78
- // component.astro
79
-
80
- ---
81
- import { RLAButton } from '@rimelight/ui/components/astro/RLAButton.astro';
82
- ---
83
-
84
- <RLAButton label="Click Me" />
85
- ```
86
-
87
- ### Vue Components
88
-
89
- ```vue
90
- // component.vue
91
-
92
- <script setup lang="ts">
93
- import { RLVButton } from "@rimelight/ui/components/vue/RLVButton.vue"
94
- </script>
95
-
96
- <template>
97
- <RLVButton label="Click Me" />
98
- </template>
99
- ```
100
-
101
- For mixed usage please refer to the [Astro documentation on using front-end frameworks](https://docs.astro.build/en/guides/framework-components/).
102
-
103
- You can add the FAQ section right toward the bottom of your README, typically just before the Contributing or Support sections.
104
-
105
- Since GitHub and most Markdown viewers natively support the <details> and <summary> HTML tags, they will render as interactive accordion dropdowns, keeping your README clean and compact.
106
-
107
- Here is the exact code block to drop into your Repository README:
108
-
109
- Markdown
110
-
111
- ## Frequently Asked Questions
112
-
113
- <details>
114
- <summary><b>Is Rimelight UI free to use?</b></summary>
115
- Yes. Rimelight UI is a completely free and open source package under the <a href="./LICENSE">MIT License</a>.
116
- </details>
117
-
118
- <details>
119
- <summary><b>Can I use Rimelight UI without Astro?</b></summary>
120
- For the time being, no. The library is strictly distributed as an Astro integration. However, in theory, it could be modularized enough to be usable as a Vite plugin, and we are open to contributions on this topic.
121
- </details>
122
-
123
- <details>
124
- <summary><b>Are other front-end frameworks supported?</b></summary>
125
- For the time being, no. The library currently only offers Astro and Vue components, but in theory could support other front-end frameworks, and we welcome community contributions to expand this.
126
- </details>
127
-
128
- <details>
129
- <summary><b>Is Rimelight UI customizable?</b></summary>
130
- Yes. All components can have their styles overridden per slot and per variant, either globally via your <code>astro.config.ts</code> configuration or locally on an individual instance using the <code>ui</code> prop.
131
- </details>
132
-
133
- <details>
134
- <summary><b>Is Rimelight UI accessible?</b></summary>
135
- Yes. All components provide automatic ARIA attributes, keyboard navigation, focus management, and screen reader support out of the box.
136
- </details>
137
-
138
- ## Useful Links
139
-
140
- - [Starter Project](https://starter.rimelight.com)
141
- - [Playground](https://playground.rimelight.com/ui)
142
- - [Documentation](https://rimelight.com/company/docs/packages/rimelight-ui/)
143
- - [Changelog](https://rimelight.com/company/docs/packages/rimelight-ui/changelog/)
144
-
145
- ## Contributing
146
-
147
- We welcome contributions to this project and its documentation. If you are interested in contributing, please refer to our [contribution guidelines](https://rimelight.com/company/docs/contributing/).
148
-
149
- If you would like to financially support this project, please consider [sponsoring us](https://rimelight.com/company/docs/contributing/sponsoring/).
150
-
151
- ## Support
152
-
153
- If you have any questions or need assistance, please feel free to reach out to us at [support@rimelight.com](mailto:support@rimelight.com).
154
-
155
- ## License
156
-
157
- MIT
1
+ # Rimelight UI (@rimelight/ui)
2
+
3
+ [![Built with Astro](https://astro.badg.es/v2/built-with-astro/small.svg)](https://astro.build) &nbsp;
4
+
5
+ [![PLAYGROUND](https://img.shields.io/badge/PLAYGROUND-A682FF?style=for-the-badge&logo=astro&logoColor=white)](https://playground.rimelight.com/ui) &nbsp;
6
+ [![DOCUMENTATION](https://img.shields.io/badge/DOCUMENTATION-A682FF?style=for-the-badge&logo=astro&logoColor=white)](https://rimelight.com/company/docs/packages/rimelight-ui/) &nbsp;
7
+
8
+ [![NPM Version](https://img.shields.io/npm/v/@rimelight/ui?style=for-the-badge&logo=npm&logoColor=white&color=A682FF)](https://www.npmjs.com/package/@rimelight/ui) &nbsp;
9
+ [![NPM Downloads](https://img.shields.io/npm/dt/@rimelight/ui?style=for-the-badge&color=A682FF&logo=npm&logoColor=white)](https://www.npmjs.com/package/@rimelight/ui) &nbsp;
10
+ [![View on npmx](https://img.shields.io/badge/VIEW%20ON%20NPMX-A682FF?style=for-the-badge&logo=npm&logoColor=white)](https://npmx.dev/package/@rimelight/ui) &nbsp;
11
+ [![pkg.pr.new](https://pkg.pr.new/badge/Rimelight-Entertainment/rimelight)](https://pkg.pr.new/~/Rimelight-Entertainment/rimelight) &nbsp;
12
+
13
+ Rimelight UI is a comprehensive component library for [Astro](https://astro.build) websites used and maintained by [Rimelight Entertainment](https://rimelight.com).
14
+ It offers a suite of accessible and highly performant components as [Astro Components](https://docs.astro.build/basics/astro-components/) and [Vue Components](https://vuejs.org), and is available as a free and open source project for any to use.
15
+
16
+ ## Features
17
+
18
+ - **Multiple Frameworks**: Astro, Vue, and more with a unified usage pattern - use what suits your project best.
19
+ - **Intuitive**: Simple APIs, comprehensive documentation, and convenient integrations.
20
+ - **Accessible**: All components are WAI-ARIA compliant and include keyboard navigation, focus management, and
21
+ screen reader support.
22
+ - **Customizable**: Create your own design system by overriding styles and variants globally or per instance.
23
+ - **Performant**: Fully type-safe, SEO-friendly, modern and lean dependencies, and blazing fast.
24
+
25
+ For a complete list of available components, refer to the [documentation](https://rimelight.com/company/docs/packages/rimelight-ui/).
26
+
27
+ ## Installation
28
+
29
+ To use Rimelight UI in an Astro project, you need to install the package and add the integration.
30
+
31
+ 1. Install the package into your project:
32
+
33
+ ```bash
34
+ # vp
35
+ vp install @rimelight/ui
36
+
37
+ # npm
38
+ npm install @rimelight/ui
39
+
40
+ # pnpm
41
+ pnpm add @rimelight/ui
42
+
43
+ # yarn
44
+ yarn add @rimelight/ui
45
+
46
+ # deno
47
+ deno add npm:@rimelight/ui
48
+
49
+ # bun
50
+ bun add @rimelight/ui
51
+ ```
52
+
53
+ 2. Add the Rimelight UI Astro integration to your Astro configuration:
54
+
55
+ ```typescript
56
+ // astro.config.ts
57
+ import { ui } from "@rimelight/ui/integrations"
58
+ import { defineConfig } from "astro/config"
59
+
60
+ export default defineConfig({
61
+ integrations: [
62
+ ui({
63
+ // Optional: Provide global UI overrides
64
+ ui: {
65
+ button: {
66
+ defaultVariants: { variant: "primary" }
67
+ }
68
+ }
69
+ })
70
+ ]
71
+ })
72
+ ```
73
+
74
+ ## Usage
75
+
76
+ ### Astro Components
77
+
78
+ ```astro
79
+ // component.astro
80
+
81
+ ---
82
+ import { RLAButton } from '@rimelight/ui/components/astro/RLAButton.astro';
83
+ ---
84
+
85
+ <RLAButton label="Click Me" />
86
+ ```
87
+
88
+ ### Vue Components
89
+
90
+ ```vue
91
+ // component.vue
92
+
93
+ <script setup lang="ts">
94
+ import { RLVButton } from "@rimelight/ui/components/vue/RLVButton.vue"
95
+ </script>
96
+
97
+ <template>
98
+ <RLVButton label="Click Me" />
99
+ </template>
100
+ ```
101
+
102
+ For mixed usage please refer to the [Astro documentation on using front-end frameworks](https://docs.astro.build/en/guides/framework-components/).
103
+
104
+ You can add the FAQ section right toward the bottom of your README, typically just before the Contributing or Support sections.
105
+
106
+ Since GitHub and most Markdown viewers natively support the <details> and <summary> HTML tags, they will render as interactive accordion dropdowns, keeping your README clean and compact.
107
+
108
+ Here is the exact code block to drop into your Repository README:
109
+
110
+ Markdown
111
+
112
+ ## Frequently Asked Questions
113
+
114
+ <details>
115
+ <summary><b>Is Rimelight UI free to use?</b></summary>
116
+ Yes. Rimelight UI is a completely free and open source package under the <a href="./LICENSE">MIT License</a>.
117
+ </details>
118
+
119
+ <details>
120
+ <summary><b>Can I use Rimelight UI without Astro?</b></summary>
121
+ For the time being, no. The library is strictly distributed as an Astro integration. However, in theory, it could be modularized enough to be usable as a Vite plugin, and we are open to contributions on this topic.
122
+ </details>
123
+
124
+ <details>
125
+ <summary><b>Are other front-end frameworks supported?</b></summary>
126
+ For the time being, no. The library currently only offers Astro and Vue components, but in theory could support other front-end frameworks, and we welcome community contributions to expand this.
127
+ </details>
128
+
129
+ <details>
130
+ <summary><b>Is Rimelight UI customizable?</b></summary>
131
+ Yes. All components can have their styles overridden per slot and per variant, either globally via your <code>astro.config.ts</code> configuration or locally on an individual instance using the <code>ui</code> prop.
132
+ </details>
133
+
134
+ <details>
135
+ <summary><b>Is Rimelight UI accessible?</b></summary>
136
+ Yes. All components provide automatic ARIA attributes, keyboard navigation, focus management, and screen reader support out of the box.
137
+ </details>
138
+
139
+ ## Useful Links
140
+
141
+ - [Starter Project](https://starter.rimelight.com)
142
+ - [Playground](https://playground.rimelight.com/ui)
143
+ - [Documentation](https://rimelight.com/company/docs/packages/rimelight-ui/)
144
+ - [Changelog](https://rimelight.com/company/docs/packages/rimelight-ui/changelog/)
145
+
146
+ ## Contributing
147
+
148
+ We welcome contributions to this project and its documentation. If you are interested in contributing, please refer to our [contribution guidelines](https://rimelight.com/company/docs/contributing/).
149
+
150
+ If you would like to financially support this project, please consider [sponsoring us](https://rimelight.com/company/docs/contributing/sponsoring/).
151
+
152
+ ## Support
153
+
154
+ If you have any questions or need assistance, please feel free to reach out to us at [support@rimelight.com](mailto:support@rimelight.com).
155
+
156
+ ## License
157
+
158
+ MIT
package/package.json CHANGED
@@ -1,105 +1,100 @@
1
- {
2
- "name": "@rimelight/ui",
3
- "version": "0.0.33",
4
- "private": false,
5
- "description": "Rimelight Entertainment UI Library.",
6
- "keywords": [
7
- "astro",
8
- "typescript"
9
- ],
10
- "homepage": "https://rimelight.com/docs",
11
- "bugs": {
12
- "url": "https://github.com/Rimelight-Entertainment/rimelight/issues"
13
- },
14
- "license": "MIT",
15
- "author": {
16
- "name": "Daniel Marchi"
17
- },
18
- "repository": {
19
- "type": "git",
20
- "url": "git+https://github.com/Rimelight-Entertainment/rimelight.git"
21
- },
22
- "files": [
23
- "src",
24
- "worker-configuration.d.ts",
25
- "README.md",
26
- "LICENSE"
27
- ],
28
- "type": "module",
29
- "exports": {
30
- ".": "./src/integrations/index.ts",
31
- "./styles/*": "./src/styles/*",
32
- "./components/*": "./src/components/*",
33
- "./components/astro/*": "./src/components/astro/*",
34
- "./components/vue/*": "./src/components/vue/*",
35
- "./themes": "./src/themes/index.ts",
36
- "./themes/*": "./src/themes/*",
37
- "./composables": "./src/composables/index.ts",
38
- "./composables/*": "./src/composables/*",
39
- "./config": "./src/config/index.ts",
40
- "./config/*": "./src/config/*",
41
- "./utils": "./src/utils/index.ts",
42
- "./utils/*": "./src/utils/*",
43
- "./integrations": "./src/integrations/index.ts",
44
- "./integrations/*": "./src/integrations/*",
45
- "./plugins": "./src/plugins/index.ts",
46
- "./plugins/*": "./src/plugins/*",
47
- "./middleware": "./src/middleware/index.ts",
48
- "./middleware/*": "./src/middleware/*",
49
- "./types": "./src/types/index.ts",
50
- "./types/*": "./src/types/*",
51
- "./presets": "./src/presets/index.ts",
52
- "./presets/*": "./src/presets/*",
53
- "./*": "./src/*"
54
- },
55
- "publishConfig": {
56
- "access": "public"
57
- },
58
- "scripts": {
59
- "prepare": "vp config",
60
- "knip": "knip",
61
- "astro": "astro",
62
- "docs:meta": "tsx scripts/extract-meta.ts"
63
- },
64
- "dependencies": {
65
- "@astrojs/prism": "^4.0.2",
66
- "@astrojs/vue": "7.0.0-alpha.0",
67
- "prismjs": "^1.29.0",
68
- "@iconify-json/lucide": "^1.2.109",
69
- "@unocss/astro": "^66.7.0",
70
- "css-variants": "2.3.5",
71
- "defu": "6.1.7",
72
- "embla-carousel": "8.6.0",
73
- "nanostores": "1.3.0",
74
- "picomatch": "^4.0.4",
75
- "turndown": "^7.2.4",
76
- "turndown-plugin-gfm": "^1.0.2",
77
- "vite-plugin-virtual": "^0.5.0"
78
- },
79
- "devDependencies": {
80
- "@astrojs/check": "0.9.9",
81
- "@astrojs/ts-plugin": "1.10.9",
82
- "@e18e/eslint-plugin": "0.5.0",
83
- "@types/node": "25.9.1",
84
- "@types/picomatch": "^4.0.3",
85
- "@unocss/eslint-plugin": "66.7.0",
86
- "astro": "7.0.0-alpha.0",
87
- "eslint-plugin-regexp": "3.1.0",
88
- "knip": "6.14.2",
89
- "tsx": "4.22.3",
90
- "typescript": "6.0.3",
91
- "unocss": "66.7.0",
92
- "vite-plus": "catalog:"
93
- },
94
- "peerDependencies": {
95
- "@astrojs/starlight": ">=0.5.0",
96
- "astro": ">=6.0.0",
97
- "vue": ">=3.4.0"
98
- },
99
- "peerDependenciesMeta": {
100
- "vue": {
101
- "optional": true
102
- }
103
- },
104
- "packageManager": "pnpm@11.3.0"
105
- }
1
+ {
2
+ "name": "@rimelight/ui",
3
+ "version": "0.0.35",
4
+ "private": false,
5
+ "description": "Rimelight Entertainment UI Library.",
6
+ "keywords": [
7
+ "astro",
8
+ "typescript"
9
+ ],
10
+ "homepage": "https://rimelight.com/docs",
11
+ "bugs": {
12
+ "url": "https://github.com/Rimelight-Entertainment/rimelight/issues"
13
+ },
14
+ "license": "MIT",
15
+ "author": {
16
+ "name": "Daniel Marchi"
17
+ },
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "git+https://github.com/Rimelight-Entertainment/rimelight.git"
21
+ },
22
+ "files": [
23
+ "src",
24
+ "worker-configuration.d.ts",
25
+ "README.md",
26
+ "LICENSE"
27
+ ],
28
+ "type": "module",
29
+ "exports": {
30
+ ".": "./src/integrations/index.ts",
31
+ "./styles/*": "./src/styles/*",
32
+ "./components/*": "./src/components/*",
33
+ "./components/astro/*": "./src/components/astro/*",
34
+ "./components/vue/*": "./src/components/vue/*",
35
+ "./themes": "./src/themes/index.ts",
36
+ "./themes/*": "./src/themes/*",
37
+ "./composables": "./src/composables/index.ts",
38
+ "./composables/*": "./src/composables/*",
39
+ "./config": "./src/config/index.ts",
40
+ "./config/*": "./src/config/*",
41
+ "./utils": "./src/utils/index.ts",
42
+ "./utils/*": "./src/utils/*",
43
+ "./integrations": "./src/integrations/index.ts",
44
+ "./integrations/*": "./src/integrations/*",
45
+ "./docs": "./src/docs/extractAll.ts",
46
+ "./docs/*": "./src/docs/*",
47
+ "./plugins": "./src/plugins/index.ts",
48
+ "./plugins/*": "./src/plugins/*",
49
+ "./middleware": "./src/middleware/index.ts",
50
+ "./middleware/*": "./src/middleware/*",
51
+ "./types": "./src/types/index.ts",
52
+ "./types/*": "./src/types/*",
53
+ "./presets": "./src/presets/index.ts",
54
+ "./presets/*": "./src/presets/*",
55
+ "./*": "./src/*"
56
+ },
57
+ "publishConfig": {
58
+ "access": "public"
59
+ },
60
+ "scripts": {
61
+ "astro": "astro",
62
+ "docs:meta": "tsx scripts/extract-meta.ts"
63
+ },
64
+ "dependencies": {
65
+ "@astrojs/vue": "6.0.1",
66
+ "@iconify-json/lucide": "1.2.113",
67
+ "@unocss/astro": "^66.7.2",
68
+ "css-variants": "2.3.5",
69
+ "defu": "6.1.7",
70
+ "embla-carousel": "8.6.0",
71
+ "nanostores": "1.3.0",
72
+ "picomatch": "^4.0.4",
73
+ "vite-plugin-virtual": "^0.5.0",
74
+ "vue": "3.5.38"
75
+ },
76
+ "devDependencies": {
77
+ "@astrojs/check": "0.9.9",
78
+ "@astrojs/ts-plugin": "1.10.9",
79
+ "@e18e/eslint-plugin": "0.5.1",
80
+ "@types/node": "25.9.3",
81
+ "@types/picomatch": "^4.0.3",
82
+ "@unocss/eslint-plugin": "66.7.2",
83
+ "astro": "6.4.8",
84
+ "eslint-plugin-regexp": "3.1.0",
85
+ "tsx": "4.22.4",
86
+ "typescript": "6.0.3",
87
+ "unocss": "66.7.2",
88
+ "vite-plus": "0.2.1"
89
+ },
90
+ "peerDependencies": {
91
+ "@rimelight/i18n": "workspace:^0.0.1",
92
+ "astro": ">=6.0.0"
93
+ },
94
+ "peerDependenciesMeta": {
95
+ "@rimelight/i18n": {
96
+ "optional": true
97
+ }
98
+ },
99
+ "packageManager": "pnpm@11.8.0"
100
+ }
@@ -1,18 +1,94 @@
1
- ---
2
- import type { AccordionProps } from "../../types";
3
-
4
- const { summary, class: className, ...attrs } = Astro.props as AccordionProps;
5
- ---
6
-
7
- <details class:list={['group', className]} {...attrs}>
8
- <summary
9
- class="accordion code flex cursor-pointer list-none items-center justify-between text-astro-gray-200"
10
- >
11
- <span>{summary}</span>
12
- <span class="i-lucide-chevron s-4 rotate-0 transition-transform duration-300 ease-in-out group-open:-rotate-180" />
13
- </summary>
14
-
15
- <div class="pt-4">
16
- <slot />
17
- </div>
18
- </details>
1
+ ---
2
+ import { scv, cx } from "css-variants"
3
+ import { useUi, resolveClasses } from "../../utils"
4
+ import type { AccordionProps } from "../../types"
5
+ import accordionThemeDefault, { createAccordionTheme } from "../../themes/accordion.theme"
6
+ import { getUIConfig } from "virtual:rimelight-ui"
7
+
8
+ const uiConfig = getUIConfig()
9
+ const accordionTheme = uiConfig.colors ? createAccordionTheme() : accordionThemeDefault
10
+ const accordion = scv(accordionTheme)
11
+
12
+ const {
13
+ items,
14
+ summary,
15
+ multiple = false,
16
+ trailingIcon = "i-lucide-chevron-down",
17
+ disabled = false,
18
+ name,
19
+ ui: uiProp,
20
+ class: className,
21
+ ...rest
22
+ } = Astro.props as AccordionProps
23
+
24
+ const classes = resolveClasses(accordion, {
25
+ disabled
26
+ }, useUi("accordion", uiProp), className)
27
+
28
+ // Generate a unique name for HTML details grouping if single-open mode (multiple=false) is active
29
+ const groupName = name || (!multiple ? `accordion-${Math.random().toString(36).substring(2, 9)}` : undefined)
30
+ ---
31
+
32
+ {items ? (
33
+ <div class={classes.root} data-slot="root" {...rest}>
34
+ {items.map((item) => {
35
+ const itemDisabled = disabled || item.disabled
36
+ const itemTrailingIcon = item.trailingIcon || trailingIcon
37
+
38
+ return (
39
+ <details
40
+ class={classes.item}
41
+ data-slot="item"
42
+ name={groupName}
43
+ >
44
+ <summary
45
+ class={cx(classes.trigger, itemDisabled && "pointer-events-none opacity-50 select-none")}
46
+ data-slot="trigger"
47
+ >
48
+ {item.icon && (
49
+ <span class={classes.leadingIcon} data-slot="leading-icon">
50
+ <span class={cx(item.icon)} aria-hidden="true" />
51
+ </span>
52
+ )}
53
+
54
+ <span class={classes.label} data-slot="label">
55
+ {item.label}
56
+ </span>
57
+
58
+ {itemTrailingIcon && (
59
+ <span class={classes.trailingIcon} data-slot="trailing-icon">
60
+ <span class={cx(itemTrailingIcon)} aria-hidden="true" />
61
+ </span>
62
+ )}
63
+ </summary>
64
+
65
+ <div class={classes.content} data-slot="content">
66
+ <div class={classes.body} data-slot="body">
67
+ {item.content}
68
+ </div>
69
+ </div>
70
+ </details>
71
+ )
72
+ })}
73
+ </div>
74
+ ) : (
75
+ <details class:list={[classes.root, classes.item]} data-slot="root" name={name} {...rest}>
76
+ <summary
77
+ class={cx(classes.trigger, disabled && "pointer-events-none opacity-50 select-none")}
78
+ data-slot="trigger"
79
+ >
80
+ <span class={classes.label} data-slot="label">{summary}</span>
81
+ {trailingIcon && (
82
+ <span class={classes.trailingIcon} data-slot="trailing-icon">
83
+ <span class={cx(trailingIcon)} aria-hidden="true" />
84
+ </span>
85
+ )}
86
+ </summary>
87
+
88
+ <div class={classes.content} data-slot="content">
89
+ <div class={classes.body} data-slot="body">
90
+ <slot />
91
+ </div>
92
+ </div>
93
+ </details>
94
+ )}