@devalok/shilp-sutra 0.54.0 → 0.55.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (357) hide show
  1. package/MIGRATION.md +28 -0
  2. package/dist/_chunks/badge-group.js +1 -1
  3. package/dist/_chunks/popover.js +38 -37
  4. package/dist/_chunks/popover.js.map +1 -1
  5. package/dist/_chunks/primitives/react-accordion.js +270 -0
  6. package/dist/_chunks/primitives/react-accordion.js.map +1 -0
  7. package/dist/_chunks/primitives/react-alert-dialog.js +857 -0
  8. package/dist/_chunks/primitives/react-alert-dialog.js.map +1 -0
  9. package/dist/_chunks/primitives/react-aspect-ratio.js +32 -0
  10. package/dist/_chunks/primitives/react-aspect-ratio.js.map +1 -0
  11. package/dist/_chunks/primitives/react-avatar.js +69 -0
  12. package/dist/_chunks/primitives/react-avatar.js.map +1 -0
  13. package/dist/_chunks/primitives/react-checkbox.js +151 -0
  14. package/dist/_chunks/primitives/react-checkbox.js.map +1 -0
  15. package/dist/_chunks/primitives/react-context-menu.js +905 -0
  16. package/dist/_chunks/primitives/react-context-menu.js.map +1 -0
  17. package/dist/_chunks/primitives/react-dropdown-menu.js +220 -0
  18. package/dist/_chunks/primitives/react-dropdown-menu.js.map +1 -0
  19. package/dist/_chunks/primitives/react-hover-card.js +153 -0
  20. package/dist/_chunks/primitives/react-hover-card.js.map +1 -0
  21. package/dist/_chunks/primitives/react-label.js +16 -0
  22. package/dist/_chunks/primitives/react-label.js.map +1 -0
  23. package/dist/_chunks/primitives/react-menubar.js +304 -0
  24. package/dist/_chunks/primitives/react-menubar.js.map +1 -0
  25. package/dist/_chunks/primitives/react-navigation-menu.js +560 -0
  26. package/dist/_chunks/primitives/react-navigation-menu.js.map +1 -0
  27. package/dist/_chunks/primitives/react-popover.js +186 -0
  28. package/dist/_chunks/primitives/react-popover.js.map +1 -0
  29. package/dist/_chunks/primitives/react-progress.js +70 -0
  30. package/dist/_chunks/primitives/react-progress.js.map +1 -0
  31. package/dist/_chunks/primitives/react-radio-group.js +170 -0
  32. package/dist/_chunks/primitives/react-radio-group.js.map +1 -0
  33. package/dist/_chunks/primitives/react-select.js +671 -0
  34. package/dist/_chunks/primitives/react-select.js.map +1 -0
  35. package/dist/_chunks/primitives/react-separator.js +24 -0
  36. package/dist/_chunks/primitives/react-separator.js.map +1 -0
  37. package/dist/_chunks/primitives/react-slider.js +349 -0
  38. package/dist/_chunks/primitives/react-slider.js.map +1 -0
  39. package/dist/_chunks/primitives/react-switch.js +92 -0
  40. package/dist/_chunks/primitives/react-switch.js.map +1 -0
  41. package/dist/_chunks/primitives/react-tabs.js +114 -0
  42. package/dist/_chunks/primitives/react-tabs.js.map +1 -0
  43. package/dist/_chunks/primitives/react-toggle-group.js +122 -0
  44. package/dist/_chunks/primitives/react-toggle-group.js.map +1 -0
  45. package/dist/_chunks/primitives/react-toggle.js +28 -0
  46. package/dist/_chunks/primitives/react-toggle.js.map +1 -0
  47. package/dist/_chunks/primitives/react-tooltip.js +341 -0
  48. package/dist/_chunks/primitives/react-tooltip.js.map +1 -0
  49. package/dist/_chunks/primitives-internal.js +2071 -0
  50. package/dist/_chunks/primitives-internal.js.map +1 -0
  51. package/dist/_chunks/shared.js +32 -32
  52. package/dist/_chunks/tiptap.js +1 -1
  53. package/dist/ai/ai-command-provider.d.ts +2 -3
  54. package/dist/ai/block-renderer.d.ts +1 -2
  55. package/dist/ai/blocks/block-shell.d.ts +0 -1
  56. package/dist/ai/blocks/block-table.d.ts +1 -2
  57. package/dist/ai/blocks/confirm.d.ts +1 -2
  58. package/dist/ai/blocks/divider.d.ts +1 -2
  59. package/dist/ai/blocks/error.d.ts +1 -2
  60. package/dist/ai/blocks/index.d.ts +7 -8
  61. package/dist/ai/blocks/info.d.ts +1 -2
  62. package/dist/ai/blocks/loading.d.ts +1 -2
  63. package/dist/ai/blocks/stat-row.d.ts +1 -2
  64. package/dist/ai/blocks/success.d.ts +1 -2
  65. package/dist/ai/blocks/text.d.ts +1 -2
  66. package/dist/ai/command-bar.d.ts +1 -2
  67. package/dist/ai/conversation.d.ts +2 -3
  68. package/dist/ai/devadoot-icon.d.ts +0 -1
  69. package/dist/ai/index.d.ts +16 -17
  70. package/dist/ai/types.js +1 -0
  71. package/dist/composed/activity-feed.d.ts +1 -2
  72. package/dist/composed/avatar-group.d.ts +1 -2
  73. package/dist/composed/bulk-action-bar.d.ts +2 -3
  74. package/dist/composed/command-palette.d.ts +1 -2
  75. package/dist/composed/confirm-dialog.d.ts +0 -1
  76. package/dist/composed/date-picker/calendar-grid.d.ts +0 -1
  77. package/dist/composed/date-picker/date-picker.d.ts +0 -1
  78. package/dist/composed/date-picker/date-range-picker.d.ts +1 -2
  79. package/dist/composed/date-picker/date-time-picker.d.ts +0 -1
  80. package/dist/composed/date-picker/index.d.ts +17 -18
  81. package/dist/composed/date-picker/month-picker.d.ts +0 -1
  82. package/dist/composed/date-picker/presets.d.ts +0 -1
  83. package/dist/composed/date-picker/time-picker.d.ts +0 -1
  84. package/dist/composed/date-picker/use-calendar.d.ts +0 -1
  85. package/dist/composed/date-picker/year-picker.d.ts +0 -1
  86. package/dist/composed/deadline-indicator.d.ts +0 -1
  87. package/dist/composed/diff.d.ts +0 -1
  88. package/dist/composed/emoji-picker.d.ts +0 -1
  89. package/dist/composed/empty-state.d.ts +1 -2
  90. package/dist/composed/error-boundary.d.ts +0 -1
  91. package/dist/composed/extensions/emoji-data.d.ts +0 -1
  92. package/dist/composed/extensions/emoji-node.d.ts +0 -1
  93. package/dist/composed/extensions/emoji-suggestion.d.ts +1 -2
  94. package/dist/composed/extensions/file-attachment.d.ts +0 -1
  95. package/dist/composed/extensions/mention-suggestion.d.ts +1 -2
  96. package/dist/composed/extensions/slash-command.d.ts +0 -1
  97. package/dist/composed/file-preview/audio-preview.d.ts +0 -1
  98. package/dist/composed/file-preview/document-preview.d.ts +0 -1
  99. package/dist/composed/file-preview/embed-preview.d.ts +0 -1
  100. package/dist/composed/file-preview/image-preview.d.ts +0 -1
  101. package/dist/composed/file-preview/shared.d.ts +0 -1
  102. package/dist/composed/file-preview/video-preview.d.ts +0 -1
  103. package/dist/composed/file-preview.d.ts +0 -1
  104. package/dist/composed/filter-bar.d.ts +0 -1
  105. package/dist/composed/form-section.d.ts +0 -1
  106. package/dist/composed/global-loading.d.ts +0 -1
  107. package/dist/composed/index.d.ts +49 -50
  108. package/dist/composed/inline-edit.d.ts +0 -1
  109. package/dist/composed/markdown-viewer.d.ts +0 -1
  110. package/dist/composed/master-detail.d.ts +0 -1
  111. package/dist/composed/member-picker.d.ts +0 -1
  112. package/dist/composed/multi-select-popover.d.ts +0 -1
  113. package/dist/composed/priority-indicator.d.ts +0 -1
  114. package/dist/composed/responsive-modal.d.ts +1 -2
  115. package/dist/composed/responsive-modal.js +47 -47
  116. package/dist/composed/rich-chat-input/attachment-strip.d.ts +0 -1
  117. package/dist/composed/rich-chat-input/audio-player.d.ts +0 -1
  118. package/dist/composed/rich-chat-input/audio-waveform.d.ts +0 -1
  119. package/dist/composed/rich-chat-input/chat-toolbar.d.ts +0 -1
  120. package/dist/composed/rich-chat-input/recording-overlay.d.ts +0 -1
  121. package/dist/composed/rich-chat-input/reply-banner.d.ts +0 -1
  122. package/dist/composed/rich-chat-input/schedule-send.d.ts +0 -1
  123. package/dist/composed/rich-chat-input/use-voice-recorder.d.ts +0 -1
  124. package/dist/composed/rich-chat-input.d.ts +9 -10
  125. package/dist/composed/rich-chat-input.js +1 -1
  126. package/dist/composed/rich-text-editor.d.ts +1 -2
  127. package/dist/composed/schedule-view.d.ts +0 -1
  128. package/dist/composed/simple-tooltip.d.ts +0 -1
  129. package/dist/composed/status-badge.d.ts +1 -2
  130. package/dist/hooks/index.d.ts +6 -7
  131. package/dist/hooks/use-color-mode.d.ts +0 -1
  132. package/dist/hooks/use-mobile.d.ts +0 -1
  133. package/dist/hooks/use-touch-device.d.ts +0 -1
  134. package/dist/hooks/use-viewport-height.d.ts +0 -1
  135. package/dist/motion/check-motion-provider.d.ts +0 -1
  136. package/dist/motion/index.d.ts +2 -3
  137. package/dist/motion/motion-provider.d.ts +1 -2
  138. package/dist/motion/primitives-index.d.ts +1 -2
  139. package/dist/motion/primitives.d.ts +1 -2
  140. package/dist/primitives/_internal/react-arrow.d.ts +1 -1
  141. package/dist/primitives/_internal/react-collection.d.ts +2 -2
  142. package/dist/primitives/_internal/react-dismissable-layer.d.ts +1 -1
  143. package/dist/primitives/_internal/react-focus-scope.d.ts +1 -1
  144. package/dist/primitives/_internal/react-popper.d.ts +4 -4
  145. package/dist/primitives/_internal/react-portal.d.ts +1 -1
  146. package/dist/primitives/_internal/react-use-rect.d.ts +1 -1
  147. package/dist/primitives/react-accordion.d.ts +3 -3
  148. package/dist/primitives/react-alert-dialog.d.ts +2 -2
  149. package/dist/primitives/react-aspect-ratio.d.ts +1 -1
  150. package/dist/primitives/react-avatar.d.ts +2 -2
  151. package/dist/primitives/react-checkbox.d.ts +3 -3
  152. package/dist/primitives/react-collapsible.d.ts +2 -2
  153. package/dist/primitives/react-context-menu.d.ts +3 -3
  154. package/dist/primitives/react-dialog.d.ts +5 -5
  155. package/dist/primitives/react-dropdown-menu.d.ts +3 -3
  156. package/dist/primitives/react-hover-card.d.ts +5 -5
  157. package/dist/primitives/react-label.d.ts +1 -1
  158. package/dist/primitives/react-menu.d.ts +7 -7
  159. package/dist/primitives/react-menubar.d.ts +5 -5
  160. package/dist/primitives/react-navigation-menu.d.ts +5 -5
  161. package/dist/primitives/react-popover.d.ts +6 -6
  162. package/dist/primitives/react-progress.d.ts +2 -2
  163. package/dist/primitives/react-radio-group.d.ts +3 -3
  164. package/dist/primitives/react-roving-focus.d.ts +2 -2
  165. package/dist/primitives/react-select.d.ts +6 -6
  166. package/dist/primitives/react-separator.d.ts +1 -1
  167. package/dist/primitives/react-slider.d.ts +2 -2
  168. package/dist/primitives/react-switch.d.ts +2 -2
  169. package/dist/primitives/react-tabs.d.ts +3 -3
  170. package/dist/primitives/react-toast.d.ts +3 -3
  171. package/dist/primitives/react-toggle-group.d.ts +4 -4
  172. package/dist/primitives/react-toggle.d.ts +1 -1
  173. package/dist/primitives/react-tooltip.d.ts +5 -5
  174. package/dist/primitives/react-visually-hidden.d.ts +1 -1
  175. package/dist/shell/app-command-palette.d.ts +2 -3
  176. package/dist/shell/bottom-navbar.d.ts +1 -2
  177. package/dist/shell/command-registry.d.ts +1 -2
  178. package/dist/shell/index.d.ts +7 -8
  179. package/dist/shell/link-context.d.ts +2 -3
  180. package/dist/shell/notification-center.d.ts +0 -1
  181. package/dist/shell/notification-preferences.d.ts +0 -1
  182. package/dist/shell/top-bar.d.ts +1 -2
  183. package/dist/test-utils/conformance.d.ts +0 -1
  184. package/dist/ui/accordion.d.ts +1 -2
  185. package/dist/ui/accordion.js +1 -1
  186. package/dist/ui/alert-dialog.d.ts +1 -2
  187. package/dist/ui/alert-dialog.js +52 -52
  188. package/dist/ui/alert.d.ts +0 -1
  189. package/dist/ui/aspect-ratio.d.ts +1 -2
  190. package/dist/ui/aspect-ratio.js +4 -4
  191. package/dist/ui/autocomplete.d.ts +1 -2
  192. package/dist/ui/autocomplete.js +1 -1
  193. package/dist/ui/avatar.d.ts +1 -2
  194. package/dist/ui/avatar.js +33 -33
  195. package/dist/ui/badge-group.d.ts +1 -2
  196. package/dist/ui/badge-indicator.d.ts +0 -1
  197. package/dist/ui/badge.d.ts +3 -4
  198. package/dist/ui/banner.d.ts +0 -1
  199. package/dist/ui/breadcrumb.js +1 -1
  200. package/dist/ui/button-group.d.ts +1 -2
  201. package/dist/ui/button-processing.d.ts +0 -1
  202. package/dist/ui/button.d.ts +1 -2
  203. package/dist/ui/button.js +1 -1
  204. package/dist/ui/card.d.ts +0 -1
  205. package/dist/ui/charts/_internal/animation.d.ts +0 -1
  206. package/dist/ui/charts/_internal/axes.d.ts +0 -1
  207. package/dist/ui/charts/_internal/colors.d.ts +1 -2
  208. package/dist/ui/charts/_internal/grid-lines.d.ts +0 -1
  209. package/dist/ui/charts/_internal/legend.d.ts +0 -1
  210. package/dist/ui/charts/_internal/scales.d.ts +0 -1
  211. package/dist/ui/charts/_internal/tooltip.d.ts +0 -1
  212. package/dist/ui/charts/_internal/types.d.ts +0 -1
  213. package/dist/ui/charts/area-chart.d.ts +1 -2
  214. package/dist/ui/charts/bar-chart.d.ts +1 -2
  215. package/dist/ui/charts/chart-container.d.ts +1 -2
  216. package/dist/ui/charts/gauge-chart.d.ts +0 -1
  217. package/dist/ui/charts/index.d.ts +9 -10
  218. package/dist/ui/charts/line-chart.d.ts +1 -2
  219. package/dist/ui/charts/pie-chart.d.ts +0 -1
  220. package/dist/ui/charts/radar-chart.d.ts +0 -1
  221. package/dist/ui/charts/sparkline.d.ts +0 -1
  222. package/dist/ui/chat/date-separator.d.ts +0 -1
  223. package/dist/ui/chat/index.d.ts +7 -8
  224. package/dist/ui/chat/message-input.d.ts +0 -1
  225. package/dist/ui/chat/message-list.d.ts +0 -1
  226. package/dist/ui/chat/message.d.ts +1 -2
  227. package/dist/ui/chat/system-message.d.ts +1 -2
  228. package/dist/ui/chat/typing-indicator.d.ts +0 -1
  229. package/dist/ui/chat/unread-separator.d.ts +0 -1
  230. package/dist/ui/checkbox.d.ts +2 -3
  231. package/dist/ui/checkbox.js +13 -13
  232. package/dist/ui/collapsible.d.ts +1 -2
  233. package/dist/ui/collapsible.js +1 -1
  234. package/dist/ui/color-input.d.ts +0 -1
  235. package/dist/ui/color-swatch.d.ts +0 -1
  236. package/dist/ui/combobox.d.ts +2 -3
  237. package/dist/ui/combobox.js +125 -125
  238. package/dist/ui/combobox.js.map +1 -1
  239. package/dist/ui/context-menu.d.ts +1 -2
  240. package/dist/ui/context-menu.js +58 -58
  241. package/dist/ui/data-table-body.d.ts +0 -1
  242. package/dist/ui/data-table-bulk-actions.d.ts +0 -1
  243. package/dist/ui/data-table-card.d.ts +0 -1
  244. package/dist/ui/data-table-context.d.ts +0 -1
  245. package/dist/ui/data-table-header.d.ts +0 -1
  246. package/dist/ui/data-table-pagination.d.ts +0 -1
  247. package/dist/ui/data-table-toolbar.d.ts +0 -1
  248. package/dist/ui/data-table.d.ts +3 -4
  249. package/dist/ui/devalok-grain.d.ts +0 -1
  250. package/dist/ui/dialog.d.ts +1 -2
  251. package/dist/ui/dialog.js +43 -43
  252. package/dist/ui/dot.d.ts +0 -1
  253. package/dist/ui/dropdown-menu.d.ts +1 -2
  254. package/dist/ui/dropdown-menu.js +69 -69
  255. package/dist/ui/file-upload.d.ts +0 -1
  256. package/dist/ui/form.d.ts +0 -1
  257. package/dist/ui/hover-card.d.ts +1 -2
  258. package/dist/ui/hover-card.js +16 -16
  259. package/dist/ui/icon-button.d.ts +2 -3
  260. package/dist/ui/icon-context.d.ts +0 -1
  261. package/dist/ui/icon-group.d.ts +1 -2
  262. package/dist/ui/icon.d.ts +1 -2
  263. package/dist/ui/index.d.ts +78 -79
  264. package/dist/ui/index.d.ts.map +1 -1
  265. package/dist/ui/index.js.map +1 -1
  266. package/dist/ui/input-otp.d.ts +0 -1
  267. package/dist/ui/input.d.ts +1 -2
  268. package/dist/ui/label.d.ts +1 -2
  269. package/dist/ui/label.js +7 -7
  270. package/dist/ui/lib/bottom-sheet.d.ts +0 -1
  271. package/dist/ui/lib/check-tokens.d.ts +0 -1
  272. package/dist/ui/lib/field-state.d.ts +0 -1
  273. package/dist/ui/lib/icon-input.d.ts +0 -1
  274. package/dist/ui/lib/index.d.ts +6 -7
  275. package/dist/ui/lib/keybinding.d.ts +0 -1
  276. package/dist/ui/lib/link-context.d.ts +0 -1
  277. package/dist/ui/lib/mention.d.ts +0 -1
  278. package/dist/ui/lib/normalize-icon.d.ts +2 -2
  279. package/dist/ui/lib/slot.d.ts +2 -3
  280. package/dist/ui/lib/use-controllable-open.d.ts +0 -1
  281. package/dist/ui/link.d.ts +0 -1
  282. package/dist/ui/link.js +1 -1
  283. package/dist/ui/menubar.d.ts +1 -2
  284. package/dist/ui/menubar.js +64 -64
  285. package/dist/ui/navigation-menu.d.ts +1 -2
  286. package/dist/ui/navigation-menu.js +67 -67
  287. package/dist/ui/number-input.d.ts +1 -2
  288. package/dist/ui/oauth-button/index.d.ts +1 -2
  289. package/dist/ui/oauth-button/oauth-button.d.ts +2 -3
  290. package/dist/ui/pagination.d.ts +0 -1
  291. package/dist/ui/pagination.js +1 -1
  292. package/dist/ui/popover.d.ts +1 -2
  293. package/dist/ui/progress-ring.d.ts +0 -1
  294. package/dist/ui/progress.d.ts +1 -2
  295. package/dist/ui/progress.js +30 -30
  296. package/dist/ui/radio.d.ts +2 -3
  297. package/dist/ui/radio.js +18 -18
  298. package/dist/ui/search-input.d.ts +0 -1
  299. package/dist/ui/segmented-control.d.ts +1 -2
  300. package/dist/ui/select.d.ts +1 -2
  301. package/dist/ui/select.js +55 -55
  302. package/dist/ui/separator.d.ts +1 -2
  303. package/dist/ui/separator.js +5 -5
  304. package/dist/ui/sheet.d.ts +1 -2
  305. package/dist/ui/sheet.js +45 -45
  306. package/dist/ui/sidebar.d.ts +4 -5
  307. package/dist/ui/sidebar.js +1 -1
  308. package/dist/ui/slider.d.ts +1 -2
  309. package/dist/ui/slider.js +14 -14
  310. package/dist/ui/spinner.d.ts +0 -1
  311. package/dist/ui/split-button.d.ts +14 -4
  312. package/dist/ui/split-button.d.ts.map +1 -1
  313. package/dist/ui/split-button.js.map +1 -1
  314. package/dist/ui/stat-card.d.ts +3 -4
  315. package/dist/ui/stat-flash.d.ts +1 -2
  316. package/dist/ui/stepper.d.ts +1 -2
  317. package/dist/ui/surface.js +1 -1
  318. package/dist/ui/switch.d.ts +2 -3
  319. package/dist/ui/switch.js +12 -12
  320. package/dist/ui/table-row-link.d.ts +0 -1
  321. package/dist/ui/tabs.d.ts +1 -2
  322. package/dist/ui/tabs.js +35 -35
  323. package/dist/ui/textarea.d.ts +1 -2
  324. package/dist/ui/toast-registry.d.ts +0 -1
  325. package/dist/ui/toast-types.js +1 -0
  326. package/dist/ui/toast.d.ts +2 -3
  327. package/dist/ui/toaster.d.ts +0 -1
  328. package/dist/ui/toggle-group.d.ts +2 -3
  329. package/dist/ui/toggle-group.js +14 -14
  330. package/dist/ui/toggle.d.ts +1 -2
  331. package/dist/ui/toggle.js +12 -12
  332. package/dist/ui/tooltip.d.ts +1 -2
  333. package/dist/ui/tooltip.js +21 -21
  334. package/dist/ui/tree-view/index.d.ts +3 -4
  335. package/dist/ui/tree-view/tree-item.d.ts +1 -2
  336. package/dist/ui/tree-view/tree-view.d.ts +1 -2
  337. package/dist/ui/tree-view/use-tree.d.ts +1 -2
  338. package/dist/ui/truncated-text.d.ts +0 -1
  339. package/docs/recipes/install-astro.md +2 -0
  340. package/docs/recipes/install-next-app-router.md +2 -0
  341. package/docs/recipes/install-remix.md +2 -0
  342. package/docs/recipes/install-tanstack-start.md +2 -0
  343. package/docs/recipes/install-vite.md +2 -0
  344. package/docs/recipes/troubleshoot.md +80 -0
  345. package/llms.txt +1 -1
  346. package/mcp-manifest.json +9 -1
  347. package/package.json +30 -5
  348. package/skill/SKILL.md +1 -1
  349. package/skill/references/components.md +1 -1
  350. package/skill/references/setup-astro.md +2 -0
  351. package/skill/references/setup-next-app-router.md +2 -0
  352. package/skill/references/setup-remix.md +2 -0
  353. package/skill/references/setup-tanstack-start.md +2 -0
  354. package/skill/references/setup-vite.md +2 -0
  355. package/skill/references/troubleshoot.md +80 -0
  356. package/dist/_chunks/primitives.js +0 -7596
  357. package/dist/_chunks/primitives.js.map +0 -1
package/MIGRATION.md CHANGED
@@ -4,6 +4,34 @@ This page indexes all breaking changes across `@devalok/shilp-sutra` versions. F
4
4
 
5
5
  > **Upgrading from < 0.36?** Start here, then read each intermediate version section. Breaking changes stack — skipping versions means stacking migrations.
6
6
 
7
+ ## v0.55.0 — additive; one optional step if you use the editors
8
+
9
+ Nothing breaks. No existing import, prop value, or install stops working.
10
+
11
+ ### If you type-check declarations, upgrade for the fix
12
+
13
+ 0.54.0's published `.d.ts` were unusable with `skipLibCheck: false` — a barrel import produced 79 errors, and `moduleResolution: "node16" | "nodenext"` failed regardless. Both are fixed; no action beyond upgrading.
14
+
15
+ ### If you import `RichTextEditor` or `RichChatInput`, add two devDependencies
16
+
17
+ These components expose TipTap's `Editor` type. TipTap's runtime is bundled — you are not installing it to run anything — but your type-checker needs to resolve the package to read the type:
18
+
19
+ ```bash
20
+ pnpm add -D @tiptap/pm @tiptap/react
21
+ ```
22
+
23
+ `@tiptap/pm` is required alongside `@tiptap/react` because TipTap's own declarations import from it. Both are **optional peers**: skip them and the components still run, you just lose the editor type.
24
+
25
+ Previously these resolved to `error TS2307: Cannot find module '@tiptap/react'` with nothing telling you what to install, so this replaces a silent failure with a documented one-liner.
26
+
27
+ ### Three dependencies removed — nothing to do
28
+
29
+ `diff`, `frimousse` and `@emoji-mart/data` are no longer declared. They were always bundled into `dist`, so they were installed for no reason. Diff, EmojiPicker and the editors are unaffected.
30
+
31
+ ### Bundle size improves on its own
32
+
33
+ Vendored Radix primitives now ship as one chunk per primitive instead of a single 231 KB block. A single-component import drops from ~209 KB to ~90 KB of our code; a twelve-component app from ~252 KB to ~213 KB. No API change — rebuild and the improvement applies.
34
+
7
35
  ## v0.54.0 — AppSidebar removed
8
36
 
9
37
  **Breaking.** The config-driven `AppSidebar` shell component is removed. It was a
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { Slot as e } from "./primitives.js";
2
+ import { Slot as e } from "./primitives-internal.js";
3
3
  import { durations as t, springs as n } from "../ui/lib/motion.js";
4
4
  import { cva as r } from "./vendor-utils.js";
5
5
  import { cn as i } from "../ui/lib/utils.js";
@@ -1,24 +1,25 @@
1
1
  "use client";
2
- import { Anchor2 as e, Content$2 as t, Content2$6 as n, Overlay as r, Portal$3 as i, Portal$4 as a, Root$8 as o, Root2$8 as s, Trigger$8 as c } from "./primitives.js";
3
- import { springs as l, tweens as u } from "../ui/lib/motion.js";
4
- import { cn as d } from "../ui/lib/utils.js";
5
- import { useIsMobile as f } from "../hooks/use-mobile.js";
2
+ import { springs as e, tweens as t } from "../ui/lib/motion.js";
3
+ import { cn as n } from "../ui/lib/utils.js";
4
+ import { Content as r, Overlay as i, Portal as a, Root as o } from "./primitives/react-alert-dialog.js";
5
+ import { useIsMobile as s } from "../hooks/use-mobile.js";
6
+ import { Anchor2 as c, Content2 as l, Portal as u, Root2 as d, Trigger as f } from "./primitives/react-popover.js";
6
7
  import { useControllableOpen as p } from "./use-controllable-open.js";
7
8
  import * as m from "react";
8
9
  import { jsx as h, jsxs as g } from "react/jsx-runtime";
9
10
  import { AnimatePresence as _, motion as v, useReducedMotion as y } from "framer-motion";
10
11
  //#region src/ui/lib/bottom-sheet.tsx
11
- function b({ open: e, onOpenChange: n, children: i, className: s, dragHandle: c = !0, swipeable: f = !0, title: p }) {
12
+ function b({ open: s, onOpenChange: c, children: l, className: u, dragHandle: d = !0, swipeable: f = !0, title: p }) {
12
13
  let b = y(), x = m.useRef(null), S = m.useCallback((e, t) => {
13
- let r = x.current?.getBoundingClientRect().height ?? 300;
14
- (t.offset.y > r * .3 || t.velocity.y > 500) && n(!1);
15
- }, [n]);
14
+ let n = x.current?.getBoundingClientRect().height ?? 300;
15
+ (t.offset.y > n * .3 || t.velocity.y > 500) && c(!1);
16
+ }, [c]);
16
17
  return /* @__PURE__ */ h(o, {
17
- open: e,
18
- onOpenChange: n,
19
- children: /* @__PURE__ */ h(_, { children: e && /* @__PURE__ */ g(a, {
18
+ open: s,
19
+ onOpenChange: c,
20
+ children: /* @__PURE__ */ h(_, { children: s && /* @__PURE__ */ g(a, {
20
21
  forceMount: !0,
21
- children: [/* @__PURE__ */ h(r, {
22
+ children: [/* @__PURE__ */ h(i, {
22
23
  forceMount: !0,
23
24
  asChild: !0,
24
25
  children: /* @__PURE__ */ h(v.div, {
@@ -26,29 +27,29 @@ function b({ open: e, onOpenChange: n, children: i, className: s, dragHandle: c
26
27
  initial: { opacity: 0 },
27
28
  animate: { opacity: 1 },
28
29
  exit: { opacity: 0 },
29
- transition: u.fade
30
+ transition: t.fade
30
31
  })
31
- }), /* @__PURE__ */ h(t, {
32
+ }), /* @__PURE__ */ h(r, {
32
33
  forceMount: !0,
33
34
  asChild: !0,
34
35
  "aria-label": p,
35
36
  children: /* @__PURE__ */ g(v.div, {
36
37
  ref: x,
37
- className: d("fixed inset-x-0 bottom-0 z-modal max-h-[85vh] overflow-y-auto rounded-t-overlay-lg border-t border-surface-border-strong bg-surface-overlay shadow-overlay outline-hidden", s),
38
+ className: n("fixed inset-x-0 bottom-0 z-modal max-h-[85vh] overflow-y-auto rounded-t-overlay-lg border-t border-surface-border-strong bg-surface-overlay shadow-overlay outline-hidden", u),
38
39
  initial: { y: "100%" },
39
40
  animate: { y: 0 },
40
41
  exit: { y: "100%" },
41
- transition: b ? { duration: 0 } : l.smooth,
42
+ transition: b ? { duration: 0 } : e.smooth,
42
43
  drag: f && !b ? "y" : !1,
43
44
  dragConstraints: { top: 0 },
44
45
  dragElastic: .2,
45
46
  onDragEnd: S,
46
- children: [c && /* @__PURE__ */ h("div", {
47
+ children: [d && /* @__PURE__ */ h("div", {
47
48
  className: "flex justify-center pt-ds-03 pb-ds-02",
48
49
  children: /* @__PURE__ */ h("div", { className: "h-1 w-8 rounded-pill bg-surface-border" })
49
50
  }), /* @__PURE__ */ h("div", {
50
51
  className: "px-ds-05 pb-ds-06",
51
- children: i
52
+ children: l
52
53
  })]
53
54
  })
54
55
  })]
@@ -65,13 +66,13 @@ var x = m.createContext({
65
66
  open: e,
66
67
  defaultOpen: t,
67
68
  onOpenChange: n
68
- }), c = m.useMemo(() => ({
69
+ }), s = m.useMemo(() => ({
69
70
  open: i,
70
71
  onClose: o
71
72
  }), [i, o]);
72
73
  return /* @__PURE__ */ h(x.Provider, {
73
- value: c,
74
- children: /* @__PURE__ */ h(s, {
74
+ value: s,
75
+ children: /* @__PURE__ */ h(d, {
75
76
  open: i,
76
77
  onOpenChange: a,
77
78
  ...r
@@ -79,25 +80,25 @@ var x = m.createContext({
79
80
  });
80
81
  };
81
82
  S.displayName = "Popover";
82
- var C = c, w = e, T = m.forwardRef(({ className: e, align: t = "center", sideOffset: r = 4, children: a, ...o }, s) => {
83
- let c = f(), { open: p, onClose: g } = m.useContext(x);
84
- return c ? /* @__PURE__ */ h(b, {
83
+ var C = f, w = c, T = m.forwardRef(({ className: r, align: i = "center", sideOffset: a = 4, children: o, ...c }, d) => {
84
+ let f = s(), { open: p, onClose: g } = m.useContext(x);
85
+ return f ? /* @__PURE__ */ h(b, {
85
86
  open: p,
86
87
  onOpenChange: (e) => {
87
88
  e || g();
88
89
  },
89
90
  title: "Options",
90
- className: e,
91
- children: a
92
- }) : /* @__PURE__ */ h(_, { children: p && /* @__PURE__ */ h(i, {
91
+ className: r,
92
+ children: o
93
+ }) : /* @__PURE__ */ h(_, { children: p && /* @__PURE__ */ h(u, {
93
94
  forceMount: !0,
94
- children: /* @__PURE__ */ h(n, {
95
- ref: s,
96
- align: t,
97
- sideOffset: r,
95
+ children: /* @__PURE__ */ h(l, {
96
+ ref: d,
97
+ align: i,
98
+ sideOffset: a,
98
99
  forceMount: !0,
99
100
  asChild: !0,
100
- ...o,
101
+ ...c,
101
102
  children: /* @__PURE__ */ h(v.div, {
102
103
  initial: {
103
104
  opacity: 0,
@@ -112,15 +113,15 @@ var C = c, w = e, T = m.forwardRef(({ className: e, align: t = "center", sideOff
112
113
  scale: .95
113
114
  },
114
115
  transition: {
115
- ...l.snappy,
116
- opacity: u.fade
116
+ ...e.snappy,
117
+ opacity: t.fade
117
118
  },
118
- className: d("z-popover w-72 rounded-overlay bg-surface-overlay p-ds-05 text-surface-fg shadow-floating outline-hidden", e),
119
- children: a
119
+ className: n("z-popover w-72 rounded-overlay bg-surface-overlay p-ds-05 text-surface-fg shadow-floating outline-hidden", r),
120
+ children: o
120
121
  })
121
122
  })
122
123
  }) });
123
124
  });
124
- T.displayName = n.displayName;
125
+ T.displayName = l.displayName;
125
126
  //#endregion
126
127
  export { S as Popover, w as PopoverAnchor, T as PopoverContent, C as PopoverTrigger };
@@ -1 +1 @@
1
- {"version":3,"file":"popover.js","names":[],"sources":["../../src/ui/lib/bottom-sheet.tsx","../../src/ui/popover.tsx"],"sourcesContent":["'use client'\n\nimport * as DialogPrimitive from '@primitives/react-dialog'\nimport { AnimatePresence, motion, useReducedMotion } from 'framer-motion'\nimport * as React from 'react'\n\nimport { springs, tweens } from './motion'\nimport { cn } from './utils'\n\nexport interface BottomSheetProps {\n open: boolean\n onOpenChange: (open: boolean) => void\n children: React.ReactNode\n className?: string\n /** Show drag handle bar at top. @default true */\n dragHandle?: boolean\n /** Allow swipe-to-dismiss. @default true */\n swipeable?: boolean\n /** Title for accessibility (sets aria-label on the dialog). */\n title?: string\n}\n\nexport function BottomSheet({\n open,\n onOpenChange,\n children,\n className,\n dragHandle = true,\n swipeable = true,\n title,\n}: BottomSheetProps) {\n const isReduced = useReducedMotion()\n const sheetRef = React.useRef<HTMLDivElement>(null)\n\n const handleDragEnd = React.useCallback(\n (_: unknown, info: { offset: { y: number }; velocity: { y: number } }) => {\n const sheetHeight = sheetRef.current?.getBoundingClientRect().height ?? 300\n if (info.offset.y > sheetHeight * 0.3 || info.velocity.y > 500) {\n onOpenChange(false)\n }\n },\n [onOpenChange],\n )\n\n return (\n <DialogPrimitive.Root open={open} onOpenChange={onOpenChange}>\n <AnimatePresence>\n {open && (\n <DialogPrimitive.Portal forceMount>\n <DialogPrimitive.Overlay forceMount asChild>\n <motion.div\n className=\"fixed inset-0 z-modal bg-overlay\"\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={tweens.fade}\n />\n </DialogPrimitive.Overlay>\n\n <DialogPrimitive.Content\n forceMount\n asChild\n aria-label={title}\n >\n <motion.div\n ref={sheetRef}\n className={cn(\n 'fixed inset-x-0 bottom-0 z-modal max-h-[85vh] overflow-y-auto rounded-t-overlay-lg border-t border-surface-border-strong bg-surface-overlay shadow-overlay outline-hidden',\n className,\n )}\n initial={{ y: '100%' }}\n animate={{ y: 0 }}\n exit={{ y: '100%' }}\n transition={isReduced ? { duration: 0 } : springs.smooth}\n drag={swipeable && !isReduced ? 'y' : false}\n dragConstraints={{ top: 0 }}\n dragElastic={0.2}\n onDragEnd={handleDragEnd}\n >\n {dragHandle && (\n <div className=\"flex justify-center pt-ds-03 pb-ds-02\">\n <div className=\"h-1 w-8 rounded-pill bg-surface-border\" />\n </div>\n )}\n <div className=\"px-ds-05 pb-ds-06\">\n {children}\n </div>\n </motion.div>\n </DialogPrimitive.Content>\n </DialogPrimitive.Portal>\n )}\n </AnimatePresence>\n </DialogPrimitive.Root>\n )\n}\n","'use client'\n\nimport * as PopoverPrimitive from '@primitives/react-popover'\nimport { AnimatePresence,motion } from 'framer-motion'\nimport * as React from 'react'\n\nimport { useIsMobile } from '../hooks/use-mobile'\nimport { BottomSheet } from './lib/bottom-sheet'\nimport { springs, tweens } from './lib/motion'\nimport { useControllableOpen } from './lib/use-controllable-open'\nimport { cn } from './lib/utils'\n\n// ── Internal context to thread `open` state to animated children ──\n\nconst PopoverOpenContext = React.createContext<{ open: boolean; onClose: () => void }>({ open: false, onClose: () => {} })\n\nconst Popover: React.FC<React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Root>> = ({\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n ...props\n}) => {\n const { open, setOpen, close } = useControllableOpen({ open: controlledOpen, defaultOpen, onOpenChange })\n\n const contextValue = React.useMemo(\n () => ({ open, onClose: close }),\n [open, close],\n )\n\n return (\n <PopoverOpenContext.Provider value={contextValue}>\n <PopoverPrimitive.Root open={open} onOpenChange={setOpen} {...props} />\n </PopoverOpenContext.Provider>\n )\n}\nPopover.displayName = 'Popover'\n\nconst PopoverTrigger = PopoverPrimitive.Trigger\n\nconst PopoverAnchor = PopoverPrimitive.Anchor\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = 'center', sideOffset = 4, children, ...props }, ref) => {\n const isMobileRaw = useIsMobile()\n const { open, onClose } = React.useContext(PopoverOpenContext)\n\n if (isMobileRaw) {\n return (\n <BottomSheet\n open={open}\n onOpenChange={(v) => { if (!v) onClose() }}\n title=\"Options\"\n className={className}\n >\n {children}\n </BottomSheet>\n )\n }\n\n return (\n <AnimatePresence>\n {open && (\n <PopoverPrimitive.Portal forceMount>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n forceMount\n asChild\n {...props}\n >\n <motion.div\n initial={{ opacity: 0, scale: 0.95 }}\n animate={{ opacity: 1, scale: 1 }}\n exit={{ opacity: 0, scale: 0.95 }}\n transition={{ ...springs.snappy, opacity: tweens.fade }}\n className={cn(\n 'z-popover w-72 rounded-overlay bg-surface-overlay p-ds-05 text-surface-fg shadow-floating outline-hidden',\n className,\n )}\n >\n {children}\n </motion.div>\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n )}\n </AnimatePresence>\n )\n})\nPopoverContent.displayName = PopoverPrimitive.Content.displayName\n\nexport type PopoverContentProps = React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n\nexport { Popover, PopoverAnchor,PopoverContent, PopoverTrigger }\n"],"mappings":"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"}
1
+ {"version":3,"file":"popover.js","names":[],"sources":["../../src/ui/lib/bottom-sheet.tsx","../../src/ui/popover.tsx"],"sourcesContent":["'use client'\n\nimport * as DialogPrimitive from '@primitives/react-dialog'\nimport { AnimatePresence, motion, useReducedMotion } from 'framer-motion'\nimport * as React from 'react'\n\nimport { springs, tweens } from './motion'\nimport { cn } from './utils'\n\nexport interface BottomSheetProps {\n open: boolean\n onOpenChange: (open: boolean) => void\n children: React.ReactNode\n className?: string\n /** Show drag handle bar at top. @default true */\n dragHandle?: boolean\n /** Allow swipe-to-dismiss. @default true */\n swipeable?: boolean\n /** Title for accessibility (sets aria-label on the dialog). */\n title?: string\n}\n\nexport function BottomSheet({\n open,\n onOpenChange,\n children,\n className,\n dragHandle = true,\n swipeable = true,\n title,\n}: BottomSheetProps) {\n const isReduced = useReducedMotion()\n const sheetRef = React.useRef<HTMLDivElement>(null)\n\n const handleDragEnd = React.useCallback(\n (_: unknown, info: { offset: { y: number }; velocity: { y: number } }) => {\n const sheetHeight = sheetRef.current?.getBoundingClientRect().height ?? 300\n if (info.offset.y > sheetHeight * 0.3 || info.velocity.y > 500) {\n onOpenChange(false)\n }\n },\n [onOpenChange],\n )\n\n return (\n <DialogPrimitive.Root open={open} onOpenChange={onOpenChange}>\n <AnimatePresence>\n {open && (\n <DialogPrimitive.Portal forceMount>\n <DialogPrimitive.Overlay forceMount asChild>\n <motion.div\n className=\"fixed inset-0 z-modal bg-overlay\"\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={tweens.fade}\n />\n </DialogPrimitive.Overlay>\n\n <DialogPrimitive.Content\n forceMount\n asChild\n aria-label={title}\n >\n <motion.div\n ref={sheetRef}\n className={cn(\n 'fixed inset-x-0 bottom-0 z-modal max-h-[85vh] overflow-y-auto rounded-t-overlay-lg border-t border-surface-border-strong bg-surface-overlay shadow-overlay outline-hidden',\n className,\n )}\n initial={{ y: '100%' }}\n animate={{ y: 0 }}\n exit={{ y: '100%' }}\n transition={isReduced ? { duration: 0 } : springs.smooth}\n drag={swipeable && !isReduced ? 'y' : false}\n dragConstraints={{ top: 0 }}\n dragElastic={0.2}\n onDragEnd={handleDragEnd}\n >\n {dragHandle && (\n <div className=\"flex justify-center pt-ds-03 pb-ds-02\">\n <div className=\"h-1 w-8 rounded-pill bg-surface-border\" />\n </div>\n )}\n <div className=\"px-ds-05 pb-ds-06\">\n {children}\n </div>\n </motion.div>\n </DialogPrimitive.Content>\n </DialogPrimitive.Portal>\n )}\n </AnimatePresence>\n </DialogPrimitive.Root>\n )\n}\n","'use client'\n\nimport * as PopoverPrimitive from '@primitives/react-popover'\nimport { AnimatePresence,motion } from 'framer-motion'\nimport * as React from 'react'\n\nimport { useIsMobile } from '../hooks/use-mobile'\nimport { BottomSheet } from './lib/bottom-sheet'\nimport { springs, tweens } from './lib/motion'\nimport { useControllableOpen } from './lib/use-controllable-open'\nimport { cn } from './lib/utils'\n\n// ── Internal context to thread `open` state to animated children ──\n\nconst PopoverOpenContext = React.createContext<{ open: boolean; onClose: () => void }>({ open: false, onClose: () => {} })\n\nconst Popover: React.FC<React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Root>> = ({\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n ...props\n}) => {\n const { open, setOpen, close } = useControllableOpen({ open: controlledOpen, defaultOpen, onOpenChange })\n\n const contextValue = React.useMemo(\n () => ({ open, onClose: close }),\n [open, close],\n )\n\n return (\n <PopoverOpenContext.Provider value={contextValue}>\n <PopoverPrimitive.Root open={open} onOpenChange={setOpen} {...props} />\n </PopoverOpenContext.Provider>\n )\n}\nPopover.displayName = 'Popover'\n\nconst PopoverTrigger = PopoverPrimitive.Trigger\n\nconst PopoverAnchor = PopoverPrimitive.Anchor\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = 'center', sideOffset = 4, children, ...props }, ref) => {\n const isMobileRaw = useIsMobile()\n const { open, onClose } = React.useContext(PopoverOpenContext)\n\n if (isMobileRaw) {\n return (\n <BottomSheet\n open={open}\n onOpenChange={(v) => { if (!v) onClose() }}\n title=\"Options\"\n className={className}\n >\n {children}\n </BottomSheet>\n )\n }\n\n return (\n <AnimatePresence>\n {open && (\n <PopoverPrimitive.Portal forceMount>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n forceMount\n asChild\n {...props}\n >\n <motion.div\n initial={{ opacity: 0, scale: 0.95 }}\n animate={{ opacity: 1, scale: 1 }}\n exit={{ opacity: 0, scale: 0.95 }}\n transition={{ ...springs.snappy, opacity: tweens.fade }}\n className={cn(\n 'z-popover w-72 rounded-overlay bg-surface-overlay p-ds-05 text-surface-fg shadow-floating outline-hidden',\n className,\n )}\n >\n {children}\n </motion.div>\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n )}\n </AnimatePresence>\n )\n})\nPopoverContent.displayName = PopoverPrimitive.Content.displayName\n\nexport type PopoverContentProps = React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n\nexport { Popover, PopoverAnchor,PopoverContent, PopoverTrigger }\n"],"mappings":"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"}
@@ -0,0 +1,270 @@
1
+ "use client";
2
+ import { Presence as e, Primitive as t, composeEventHandlers as n, createCollection as r, createContextScope as i, useComposedRefs as a, useControllableState as o, useDirection as s, useId as c, useLayoutEffect as l } from "../primitives-internal.js";
3
+ import * as u from "react";
4
+ import d from "react";
5
+ import { jsx as f } from "react/jsx-runtime";
6
+ //#region src/primitives/react-collapsible.js
7
+ var p = "Collapsible", [m, h] = i(p), [g, _] = m(p), v = u.forwardRef((e, n) => {
8
+ let { __scopeCollapsible: r, open: i, defaultOpen: a, disabled: s, onOpenChange: l, ...d } = e, [m, h] = o({
9
+ prop: i,
10
+ defaultProp: a ?? !1,
11
+ onChange: l,
12
+ caller: p
13
+ });
14
+ return /* @__PURE__ */ f(g, {
15
+ scope: r,
16
+ disabled: s,
17
+ contentId: c(),
18
+ open: m,
19
+ onOpenToggle: u.useCallback(() => h((e) => !e), [h]),
20
+ children: /* @__PURE__ */ f(t.div, {
21
+ "data-state": w(m),
22
+ "data-disabled": s ? "" : void 0,
23
+ ...d,
24
+ ref: n
25
+ })
26
+ });
27
+ });
28
+ v.displayName = p;
29
+ var y = "CollapsibleTrigger", b = u.forwardRef((e, r) => {
30
+ let { __scopeCollapsible: i, ...a } = e, o = _(y, i);
31
+ return /* @__PURE__ */ f(t.button, {
32
+ type: "button",
33
+ "aria-controls": o.contentId,
34
+ "aria-expanded": o.open || !1,
35
+ "data-state": w(o.open),
36
+ "data-disabled": o.disabled ? "" : void 0,
37
+ disabled: o.disabled,
38
+ ...a,
39
+ ref: r,
40
+ onClick: n(e.onClick, o.onOpenToggle)
41
+ });
42
+ });
43
+ b.displayName = y;
44
+ var x = "CollapsibleContent", S = u.forwardRef((t, n) => {
45
+ let { forceMount: r, ...i } = t, a = _(x, t.__scopeCollapsible);
46
+ return /* @__PURE__ */ f(e, {
47
+ present: r || a.open,
48
+ children: ({ present: e }) => /* @__PURE__ */ f(C, {
49
+ ...i,
50
+ ref: n,
51
+ present: e
52
+ })
53
+ });
54
+ });
55
+ S.displayName = x;
56
+ var C = u.forwardRef((e, n) => {
57
+ let { __scopeCollapsible: r, present: i, children: o, ...s } = e, c = _(x, r), [d, p] = u.useState(i), m = u.useRef(null), h = a(n, m), g = u.useRef(0), v = g.current, y = u.useRef(0), b = y.current, S = c.open || d, C = u.useRef(S), T = u.useRef(void 0);
58
+ return u.useEffect(() => {
59
+ let e = requestAnimationFrame(() => C.current = !1);
60
+ return () => cancelAnimationFrame(e);
61
+ }, []), l(() => {
62
+ let e = m.current;
63
+ if (e) {
64
+ T.current = T.current || {
65
+ transitionDuration: e.style.transitionDuration,
66
+ animationName: e.style.animationName
67
+ }, e.style.transitionDuration = "0s", e.style.animationName = "none";
68
+ let t = e.getBoundingClientRect();
69
+ g.current = t.height, y.current = t.width, C.current || (e.style.transitionDuration = T.current.transitionDuration, e.style.animationName = T.current.animationName), p(i);
70
+ }
71
+ }, [c.open, i]), /* @__PURE__ */ f(t.div, {
72
+ "data-state": w(c.open),
73
+ "data-disabled": c.disabled ? "" : void 0,
74
+ id: c.contentId,
75
+ hidden: !S,
76
+ ...s,
77
+ ref: h,
78
+ style: {
79
+ "--radix-collapsible-content-height": v ? `${v}px` : void 0,
80
+ "--radix-collapsible-content-width": b ? `${b}px` : void 0,
81
+ ...e.style
82
+ },
83
+ children: S && o
84
+ });
85
+ });
86
+ function w(e) {
87
+ return e ? "open" : "closed";
88
+ }
89
+ var T = v, E = b, D = S, O = "Accordion", k = [
90
+ "Home",
91
+ "End",
92
+ "ArrowDown",
93
+ "ArrowUp",
94
+ "ArrowLeft",
95
+ "ArrowRight"
96
+ ], [A, j, ee] = r(O), [M, te] = i(O, [ee, h]), N = h(), P = d.forwardRef((e, t) => {
97
+ let { type: n, ...r } = e, i = r, a = r;
98
+ return /* @__PURE__ */ f(A.Provider, {
99
+ scope: e.__scopeAccordion,
100
+ children: n === "multiple" ? /* @__PURE__ */ f(B, {
101
+ ...a,
102
+ ref: t
103
+ }) : /* @__PURE__ */ f(z, {
104
+ ...i,
105
+ ref: t
106
+ })
107
+ });
108
+ });
109
+ P.displayName = O;
110
+ var [F, I] = M(O), [L, R] = M(O, { collapsible: !1 }), z = d.forwardRef((e, t) => {
111
+ let { value: n, defaultValue: r, onValueChange: i = () => {}, collapsible: a = !1, ...s } = e, [c, l] = o({
112
+ prop: n,
113
+ defaultProp: r ?? "",
114
+ onChange: i,
115
+ caller: O
116
+ });
117
+ return /* @__PURE__ */ f(F, {
118
+ scope: e.__scopeAccordion,
119
+ value: d.useMemo(() => c ? [c] : [], [c]),
120
+ onItemOpen: l,
121
+ onItemClose: d.useCallback(() => a && l(""), [a, l]),
122
+ children: /* @__PURE__ */ f(L, {
123
+ scope: e.__scopeAccordion,
124
+ collapsible: a,
125
+ children: /* @__PURE__ */ f(U, {
126
+ ...s,
127
+ ref: t
128
+ })
129
+ })
130
+ });
131
+ }), B = d.forwardRef((e, t) => {
132
+ let { value: n, defaultValue: r, onValueChange: i = () => {}, ...a } = e, [s, c] = o({
133
+ prop: n,
134
+ defaultProp: r ?? [],
135
+ onChange: i,
136
+ caller: O
137
+ }), l = d.useCallback((e) => c((t = []) => [...t, e]), [c]), u = d.useCallback((e) => c((t = []) => t.filter((t) => t !== e)), [c]);
138
+ return /* @__PURE__ */ f(F, {
139
+ scope: e.__scopeAccordion,
140
+ value: s,
141
+ onItemOpen: l,
142
+ onItemClose: u,
143
+ children: /* @__PURE__ */ f(L, {
144
+ scope: e.__scopeAccordion,
145
+ collapsible: !0,
146
+ children: /* @__PURE__ */ f(U, {
147
+ ...a,
148
+ ref: t
149
+ })
150
+ })
151
+ });
152
+ }), [V, H] = M(O), U = d.forwardRef((e, r) => {
153
+ let { __scopeAccordion: i, disabled: o, dir: c, orientation: l = "vertical", ...u } = e, p = a(d.useRef(null), r), m = j(i), h = s(c) === "ltr", g = n(e.onKeyDown, (e) => {
154
+ if (!k.includes(e.key)) return;
155
+ let t = e.target, n = m().filter((e) => !e.ref.current?.disabled), r = n.findIndex((e) => e.ref.current === t), i = n.length;
156
+ if (r === -1) return;
157
+ e.preventDefault();
158
+ let a = r, o = i - 1, s = () => {
159
+ a = r + 1, a > o && (a = 0);
160
+ }, c = () => {
161
+ a = r - 1, a < 0 && (a = o);
162
+ };
163
+ switch (e.key) {
164
+ case "Home":
165
+ a = 0;
166
+ break;
167
+ case "End":
168
+ a = o;
169
+ break;
170
+ case "ArrowRight":
171
+ l === "horizontal" && (h ? s() : c());
172
+ break;
173
+ case "ArrowDown":
174
+ l === "vertical" && s();
175
+ break;
176
+ case "ArrowLeft":
177
+ l === "horizontal" && (h ? c() : s());
178
+ break;
179
+ case "ArrowUp":
180
+ l === "vertical" && c();
181
+ break;
182
+ }
183
+ n[a % i].ref.current?.focus();
184
+ });
185
+ return /* @__PURE__ */ f(V, {
186
+ scope: i,
187
+ disabled: o,
188
+ direction: c,
189
+ orientation: l,
190
+ children: /* @__PURE__ */ f(A.Slot, {
191
+ scope: i,
192
+ children: /* @__PURE__ */ f(t.div, {
193
+ ...u,
194
+ "data-orientation": l,
195
+ ref: p,
196
+ onKeyDown: o ? void 0 : g
197
+ })
198
+ })
199
+ });
200
+ }), W = "AccordionItem", [ne, G] = M(W), K = d.forwardRef((e, t) => {
201
+ let { __scopeAccordion: n, value: r, ...i } = e, a = H(W, n), o = I(W, n), s = N(n), l = c(), u = r && o.value.includes(r) || !1, d = a.disabled || e.disabled;
202
+ return /* @__PURE__ */ f(ne, {
203
+ scope: n,
204
+ open: u,
205
+ disabled: d,
206
+ triggerId: l,
207
+ children: /* @__PURE__ */ f(T, {
208
+ "data-orientation": a.orientation,
209
+ "data-state": $(u),
210
+ ...s,
211
+ ...i,
212
+ ref: t,
213
+ disabled: d,
214
+ open: u,
215
+ onOpenChange: (e) => {
216
+ e ? o.onItemOpen(r) : o.onItemClose(r);
217
+ }
218
+ })
219
+ });
220
+ });
221
+ K.displayName = W;
222
+ var q = "AccordionHeader", J = d.forwardRef((e, n) => {
223
+ let { __scopeAccordion: r, ...i } = e, a = H(O, r), o = G(q, r);
224
+ return /* @__PURE__ */ f(t.h3, {
225
+ "data-orientation": a.orientation,
226
+ "data-state": $(o.open),
227
+ "data-disabled": o.disabled ? "" : void 0,
228
+ ...i,
229
+ ref: n
230
+ });
231
+ });
232
+ J.displayName = q;
233
+ var Y = "AccordionTrigger", X = d.forwardRef((e, t) => {
234
+ let { __scopeAccordion: n, ...r } = e, i = H(O, n), a = G(Y, n), o = R(Y, n), s = N(n);
235
+ return /* @__PURE__ */ f(A.ItemSlot, {
236
+ scope: n,
237
+ children: /* @__PURE__ */ f(E, {
238
+ "aria-disabled": a.open && !o.collapsible || void 0,
239
+ "data-orientation": i.orientation,
240
+ id: a.triggerId,
241
+ ...s,
242
+ ...r,
243
+ ref: t
244
+ })
245
+ });
246
+ });
247
+ X.displayName = Y;
248
+ var Z = "AccordionContent", Q = d.forwardRef((e, t) => {
249
+ let { __scopeAccordion: n, ...r } = e, i = H(O, n), a = G(Z, n), o = N(n);
250
+ return /* @__PURE__ */ f(D, {
251
+ role: "region",
252
+ "aria-labelledby": a.triggerId,
253
+ "data-orientation": i.orientation,
254
+ ...o,
255
+ ...r,
256
+ ref: t,
257
+ style: {
258
+ "--radix-accordion-content-height": "var(--radix-collapsible-content-height)",
259
+ "--radix-accordion-content-width": "var(--radix-collapsible-content-width)",
260
+ ...e.style
261
+ }
262
+ });
263
+ });
264
+ Q.displayName = Z;
265
+ function $(e) {
266
+ return e ? "open" : "closed";
267
+ }
268
+ var re = P, ie = K, ae = J, oe = X, se = Q;
269
+ //#endregion
270
+ export { D as Content, se as Content2, ae as Header, ie as Item, T as Root, re as Root2, E as Trigger, oe as Trigger2 };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-accordion.js","names":[],"sources":["../../../src/primitives/react-collapsible.js","../../../src/primitives/react-accordion.js"],"sourcesContent":["// @ts-nocheck\n/**\n * Vendored from @radix-ui/react-collapsible (compiled ESM)\n * @see ./LICENSE\n */\n\n\"use client\";\n\n// src/collapsible.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"./_internal/primitive\";\nimport { createContextScope } from \"./_internal/react-context\";\nimport { useControllableState } from \"./_internal/react-use-controllable-state\";\nimport { useLayoutEffect } from \"./_internal/react-use-layout-effect\";\nimport { useComposedRefs } from \"./_internal/react-compose-refs\";\nimport { Primitive } from \"./_internal/react-primitive\";\nimport { Presence } from \"./_internal/react-presence\";\nimport { useId } from \"./_internal/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar COLLAPSIBLE_NAME = \"Collapsible\";\nvar [createCollapsibleContext, createCollapsibleScope] = createContextScope(COLLAPSIBLE_NAME);\nvar [CollapsibleProvider, useCollapsibleContext] = createCollapsibleContext(COLLAPSIBLE_NAME);\nvar Collapsible = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCollapsible,\n open: openProp,\n defaultOpen,\n disabled,\n onOpenChange,\n ...collapsibleProps\n } = props;\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: COLLAPSIBLE_NAME\n });\n return /* @__PURE__ */ jsx(\n CollapsibleProvider,\n {\n scope: __scopeCollapsible,\n disabled,\n contentId: useId(),\n open,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getState(open),\n \"data-disabled\": disabled ? \"\" : void 0,\n ...collapsibleProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nCollapsible.displayName = COLLAPSIBLE_NAME;\nvar TRIGGER_NAME = \"CollapsibleTrigger\";\nvar CollapsibleTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCollapsible, ...triggerProps } = props;\n const context = useCollapsibleContext(TRIGGER_NAME, __scopeCollapsible);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-controls\": context.contentId,\n \"aria-expanded\": context.open || false,\n \"data-state\": getState(context.open),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n disabled: context.disabled,\n ...triggerProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n }\n );\n }\n);\nCollapsibleTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"CollapsibleContent\";\nvar CollapsibleContent = React.forwardRef(\n (props, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = useCollapsibleContext(CONTENT_NAME, props.__scopeCollapsible);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: ({ present }) => /* @__PURE__ */ jsx(CollapsibleContentImpl, { ...contentProps, ref: forwardedRef, present }) });\n }\n);\nCollapsibleContent.displayName = CONTENT_NAME;\nvar CollapsibleContentImpl = React.forwardRef((props, forwardedRef) => {\n const { __scopeCollapsible, present, children, ...contentProps } = props;\n const context = useCollapsibleContext(CONTENT_NAME, __scopeCollapsible);\n const [isPresent, setIsPresent] = React.useState(present);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const heightRef = React.useRef(0);\n const height = heightRef.current;\n const widthRef = React.useRef(0);\n const width = widthRef.current;\n const isOpen = context.open || isPresent;\n const isMountAnimationPreventedRef = React.useRef(isOpen);\n const originalStylesRef = React.useRef(void 0);\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n return () => cancelAnimationFrame(rAF);\n }, []);\n useLayoutEffect(() => {\n const node = ref.current;\n if (node) {\n originalStylesRef.current = originalStylesRef.current || {\n transitionDuration: node.style.transitionDuration,\n animationName: node.style.animationName\n };\n node.style.transitionDuration = \"0s\";\n node.style.animationName = \"none\";\n const rect = node.getBoundingClientRect();\n heightRef.current = rect.height;\n widthRef.current = rect.width;\n if (!isMountAnimationPreventedRef.current) {\n node.style.transitionDuration = originalStylesRef.current.transitionDuration;\n node.style.animationName = originalStylesRef.current.animationName;\n }\n setIsPresent(present);\n }\n }, [context.open, present]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getState(context.open),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n id: context.contentId,\n hidden: !isOpen,\n ...contentProps,\n ref: composedRefs,\n style: {\n [`--radix-collapsible-content-height`]: height ? `${height}px` : void 0,\n [`--radix-collapsible-content-width`]: width ? `${width}px` : void 0,\n ...props.style\n },\n children: isOpen && children\n }\n );\n});\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar Root = Collapsible;\nvar Trigger = CollapsibleTrigger;\nvar Content = CollapsibleContent;\nexport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n Content,\n Root,\n Trigger,\n createCollapsibleScope\n};\n","// @ts-nocheck\n/**\n * Vendored from @radix-ui/react-accordion (compiled ESM)\n * @see ./LICENSE\n */\n\n\"use client\";\n\n// src/accordion.tsx\nimport React from \"react\";\nimport { createContextScope } from \"./_internal/react-context\";\nimport { createCollection } from \"./_internal/react-collection\";\nimport { useComposedRefs } from \"./_internal/react-compose-refs\";\nimport { composeEventHandlers } from \"./_internal/primitive\";\nimport { useControllableState } from \"./_internal/react-use-controllable-state\";\nimport { Primitive } from \"./_internal/react-primitive\";\nimport * as CollapsiblePrimitive from \"./react-collapsible\";\nimport { createCollapsibleScope } from \"./react-collapsible\";\nimport { useId } from \"./_internal/react-id\";\nimport { useDirection } from \"./_internal/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar ACCORDION_NAME = \"Accordion\";\nvar ACCORDION_KEYS = [\"Home\", \"End\", \"ArrowDown\", \"ArrowUp\", \"ArrowLeft\", \"ArrowRight\"];\nvar [Collection, useCollection, createCollectionScope] = createCollection(ACCORDION_NAME);\nvar [createAccordionContext, createAccordionScope] = createContextScope(ACCORDION_NAME, [\n createCollectionScope,\n createCollapsibleScope\n]);\nvar useCollapsibleScope = createCollapsibleScope();\nvar Accordion = React.forwardRef(\n (props, forwardedRef) => {\n const { type, ...accordionProps } = props;\n const singleProps = accordionProps;\n const multipleProps = accordionProps;\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeAccordion, children: type === \"multiple\" ? /* @__PURE__ */ jsx(AccordionImplMultiple, { ...multipleProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(AccordionImplSingle, { ...singleProps, ref: forwardedRef }) });\n }\n);\nAccordion.displayName = ACCORDION_NAME;\nvar [AccordionValueProvider, useAccordionValueContext] = createAccordionContext(ACCORDION_NAME);\nvar [AccordionCollapsibleProvider, useAccordionCollapsibleContext] = createAccordionContext(\n ACCORDION_NAME,\n { collapsible: false }\n);\nvar AccordionImplSingle = React.forwardRef(\n (props, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {\n },\n collapsible = false,\n ...accordionSingleProps\n } = props;\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? \"\",\n onChange: onValueChange,\n caller: ACCORDION_NAME\n });\n return /* @__PURE__ */ jsx(\n AccordionValueProvider,\n {\n scope: props.__scopeAccordion,\n value: React.useMemo(() => value ? [value] : [], [value]),\n onItemOpen: setValue,\n onItemClose: React.useCallback(() => collapsible && setValue(\"\"), [collapsible, setValue]),\n children: /* @__PURE__ */ jsx(AccordionCollapsibleProvider, { scope: props.__scopeAccordion, collapsible, children: /* @__PURE__ */ jsx(AccordionImpl, { ...accordionSingleProps, ref: forwardedRef }) })\n }\n );\n }\n);\nvar AccordionImplMultiple = React.forwardRef((props, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {\n },\n ...accordionMultipleProps\n } = props;\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? [],\n onChange: onValueChange,\n caller: ACCORDION_NAME\n });\n const handleItemOpen = React.useCallback(\n (itemValue) => setValue((prevValue = []) => [...prevValue, itemValue]),\n [setValue]\n );\n const handleItemClose = React.useCallback(\n (itemValue) => setValue((prevValue = []) => prevValue.filter((value2) => value2 !== itemValue)),\n [setValue]\n );\n return /* @__PURE__ */ jsx(\n AccordionValueProvider,\n {\n scope: props.__scopeAccordion,\n value,\n onItemOpen: handleItemOpen,\n onItemClose: handleItemClose,\n children: /* @__PURE__ */ jsx(AccordionCollapsibleProvider, { scope: props.__scopeAccordion, collapsible: true, children: /* @__PURE__ */ jsx(AccordionImpl, { ...accordionMultipleProps, ref: forwardedRef }) })\n }\n );\n});\nvar [AccordionImplProvider, useAccordionContext] = createAccordionContext(ACCORDION_NAME);\nvar AccordionImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAccordion, disabled, dir, orientation = \"vertical\", ...accordionProps } = props;\n const accordionRef = React.useRef(null);\n const composedRefs = useComposedRefs(accordionRef, forwardedRef);\n const getItems = useCollection(__scopeAccordion);\n const direction = useDirection(dir);\n const isDirectionLTR = direction === \"ltr\";\n const handleKeyDown = composeEventHandlers(props.onKeyDown, (event) => {\n if (!ACCORDION_KEYS.includes(event.key)) return;\n const target = event.target;\n const triggerCollection = getItems().filter((item) => !item.ref.current?.disabled);\n const triggerIndex = triggerCollection.findIndex((item) => item.ref.current === target);\n const triggerCount = triggerCollection.length;\n if (triggerIndex === -1) return;\n event.preventDefault();\n let nextIndex = triggerIndex;\n const homeIndex = 0;\n const endIndex = triggerCount - 1;\n const moveNext = () => {\n nextIndex = triggerIndex + 1;\n if (nextIndex > endIndex) {\n nextIndex = homeIndex;\n }\n };\n const movePrev = () => {\n nextIndex = triggerIndex - 1;\n if (nextIndex < homeIndex) {\n nextIndex = endIndex;\n }\n };\n switch (event.key) {\n case \"Home\":\n nextIndex = homeIndex;\n break;\n case \"End\":\n nextIndex = endIndex;\n break;\n case \"ArrowRight\":\n if (orientation === \"horizontal\") {\n if (isDirectionLTR) {\n moveNext();\n } else {\n movePrev();\n }\n }\n break;\n case \"ArrowDown\":\n if (orientation === \"vertical\") {\n moveNext();\n }\n break;\n case \"ArrowLeft\":\n if (orientation === \"horizontal\") {\n if (isDirectionLTR) {\n movePrev();\n } else {\n moveNext();\n }\n }\n break;\n case \"ArrowUp\":\n if (orientation === \"vertical\") {\n movePrev();\n }\n break;\n }\n const clampedIndex = nextIndex % triggerCount;\n triggerCollection[clampedIndex].ref.current?.focus();\n });\n return /* @__PURE__ */ jsx(\n AccordionImplProvider,\n {\n scope: __scopeAccordion,\n disabled,\n direction: dir,\n orientation,\n children: /* @__PURE__ */ jsx(Collection.Slot, { scope: __scopeAccordion, children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...accordionProps,\n \"data-orientation\": orientation,\n ref: composedRefs,\n onKeyDown: disabled ? void 0 : handleKeyDown\n }\n ) })\n }\n );\n }\n);\nvar ITEM_NAME = \"AccordionItem\";\nvar [AccordionItemProvider, useAccordionItemContext] = createAccordionContext(ITEM_NAME);\nvar AccordionItem = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAccordion, value, ...accordionItemProps } = props;\n const accordionContext = useAccordionContext(ITEM_NAME, __scopeAccordion);\n const valueContext = useAccordionValueContext(ITEM_NAME, __scopeAccordion);\n const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n const triggerId = useId();\n const open = value && valueContext.value.includes(value) || false;\n const disabled = accordionContext.disabled || props.disabled;\n return /* @__PURE__ */ jsx(\n AccordionItemProvider,\n {\n scope: __scopeAccordion,\n open,\n disabled,\n triggerId,\n children: /* @__PURE__ */ jsx(\n CollapsiblePrimitive.Root,\n {\n \"data-orientation\": accordionContext.orientation,\n \"data-state\": getState(open),\n ...collapsibleScope,\n ...accordionItemProps,\n ref: forwardedRef,\n disabled,\n open,\n onOpenChange: (open2) => {\n if (open2) {\n valueContext.onItemOpen(value);\n } else {\n valueContext.onItemClose(value);\n }\n }\n }\n )\n }\n );\n }\n);\nAccordionItem.displayName = ITEM_NAME;\nvar HEADER_NAME = \"AccordionHeader\";\nvar AccordionHeader = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAccordion, ...headerProps } = props;\n const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);\n const itemContext = useAccordionItemContext(HEADER_NAME, __scopeAccordion);\n return /* @__PURE__ */ jsx(\n Primitive.h3,\n {\n \"data-orientation\": accordionContext.orientation,\n \"data-state\": getState(itemContext.open),\n \"data-disabled\": itemContext.disabled ? \"\" : void 0,\n ...headerProps,\n ref: forwardedRef\n }\n );\n }\n);\nAccordionHeader.displayName = HEADER_NAME;\nvar TRIGGER_NAME = \"AccordionTrigger\";\nvar AccordionTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAccordion, ...triggerProps } = props;\n const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);\n const itemContext = useAccordionItemContext(TRIGGER_NAME, __scopeAccordion);\n const collapsibleContext = useAccordionCollapsibleContext(TRIGGER_NAME, __scopeAccordion);\n const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n return /* @__PURE__ */ jsx(Collection.ItemSlot, { scope: __scopeAccordion, children: /* @__PURE__ */ jsx(\n CollapsiblePrimitive.Trigger,\n {\n \"aria-disabled\": itemContext.open && !collapsibleContext.collapsible || void 0,\n \"data-orientation\": accordionContext.orientation,\n id: itemContext.triggerId,\n ...collapsibleScope,\n ...triggerProps,\n ref: forwardedRef\n }\n ) });\n }\n);\nAccordionTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"AccordionContent\";\nvar AccordionContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAccordion, ...contentProps } = props;\n const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);\n const itemContext = useAccordionItemContext(CONTENT_NAME, __scopeAccordion);\n const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n return /* @__PURE__ */ jsx(\n CollapsiblePrimitive.Content,\n {\n role: \"region\",\n \"aria-labelledby\": itemContext.triggerId,\n \"data-orientation\": accordionContext.orientation,\n ...collapsibleScope,\n ...contentProps,\n ref: forwardedRef,\n style: {\n [\"--radix-accordion-content-height\"]: \"var(--radix-collapsible-content-height)\",\n [\"--radix-accordion-content-width\"]: \"var(--radix-collapsible-content-width)\",\n ...props.style\n }\n }\n );\n }\n);\nAccordionContent.displayName = CONTENT_NAME;\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar Root2 = Accordion;\nvar Item = AccordionItem;\nvar Header = AccordionHeader;\nvar Trigger2 = AccordionTrigger;\nvar Content2 = AccordionContent;\nexport {\n Accordion,\n AccordionContent,\n AccordionHeader,\n AccordionItem,\n AccordionTrigger,\n Content2 as Content,\n Header,\n Item,\n Root2 as Root,\n Trigger2 as Trigger,\n createAccordionScope\n};\n"],"mappings":"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"}