@devalok/shilp-sutra 0.53.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 (429) hide show
  1. package/AGENTS.md +7 -1
  2. package/BREAKING.json +29 -0
  3. package/MIGRATION.md +83 -0
  4. package/dist/_chunks/badge-group.js +1 -1
  5. package/dist/_chunks/popover.js +38 -37
  6. package/dist/_chunks/popover.js.map +1 -1
  7. package/dist/_chunks/primitives/react-accordion.js +270 -0
  8. package/dist/_chunks/primitives/react-accordion.js.map +1 -0
  9. package/dist/_chunks/primitives/react-alert-dialog.js +857 -0
  10. package/dist/_chunks/primitives/react-alert-dialog.js.map +1 -0
  11. package/dist/_chunks/primitives/react-aspect-ratio.js +32 -0
  12. package/dist/_chunks/primitives/react-aspect-ratio.js.map +1 -0
  13. package/dist/_chunks/primitives/react-avatar.js +69 -0
  14. package/dist/_chunks/primitives/react-avatar.js.map +1 -0
  15. package/dist/_chunks/primitives/react-checkbox.js +151 -0
  16. package/dist/_chunks/primitives/react-checkbox.js.map +1 -0
  17. package/dist/_chunks/primitives/react-context-menu.js +905 -0
  18. package/dist/_chunks/primitives/react-context-menu.js.map +1 -0
  19. package/dist/_chunks/primitives/react-dropdown-menu.js +220 -0
  20. package/dist/_chunks/primitives/react-dropdown-menu.js.map +1 -0
  21. package/dist/_chunks/primitives/react-hover-card.js +153 -0
  22. package/dist/_chunks/primitives/react-hover-card.js.map +1 -0
  23. package/dist/_chunks/primitives/react-label.js +16 -0
  24. package/dist/_chunks/primitives/react-label.js.map +1 -0
  25. package/dist/_chunks/primitives/react-menubar.js +304 -0
  26. package/dist/_chunks/primitives/react-menubar.js.map +1 -0
  27. package/dist/_chunks/primitives/react-navigation-menu.js +560 -0
  28. package/dist/_chunks/primitives/react-navigation-menu.js.map +1 -0
  29. package/dist/_chunks/primitives/react-popover.js +186 -0
  30. package/dist/_chunks/primitives/react-popover.js.map +1 -0
  31. package/dist/_chunks/primitives/react-progress.js +70 -0
  32. package/dist/_chunks/primitives/react-progress.js.map +1 -0
  33. package/dist/_chunks/primitives/react-radio-group.js +170 -0
  34. package/dist/_chunks/primitives/react-radio-group.js.map +1 -0
  35. package/dist/_chunks/primitives/react-select.js +671 -0
  36. package/dist/_chunks/primitives/react-select.js.map +1 -0
  37. package/dist/_chunks/primitives/react-separator.js +24 -0
  38. package/dist/_chunks/primitives/react-separator.js.map +1 -0
  39. package/dist/_chunks/primitives/react-slider.js +349 -0
  40. package/dist/_chunks/primitives/react-slider.js.map +1 -0
  41. package/dist/_chunks/primitives/react-switch.js +92 -0
  42. package/dist/_chunks/primitives/react-switch.js.map +1 -0
  43. package/dist/_chunks/primitives/react-tabs.js +114 -0
  44. package/dist/_chunks/primitives/react-tabs.js.map +1 -0
  45. package/dist/_chunks/primitives/react-toggle-group.js +122 -0
  46. package/dist/_chunks/primitives/react-toggle-group.js.map +1 -0
  47. package/dist/_chunks/primitives/react-toggle.js +28 -0
  48. package/dist/_chunks/primitives/react-toggle.js.map +1 -0
  49. package/dist/_chunks/primitives/react-tooltip.js +341 -0
  50. package/dist/_chunks/primitives/react-tooltip.js.map +1 -0
  51. package/dist/_chunks/primitives-internal.js +2071 -0
  52. package/dist/_chunks/primitives-internal.js.map +1 -0
  53. package/dist/_chunks/shared.js +32 -32
  54. package/dist/_chunks/tiptap.js +1 -1
  55. package/dist/ai/ai-command-provider.d.ts +2 -3
  56. package/dist/ai/block-renderer.d.ts +1 -2
  57. package/dist/ai/blocks/block-shell.d.ts +0 -1
  58. package/dist/ai/blocks/block-table.d.ts +1 -2
  59. package/dist/ai/blocks/confirm.d.ts +1 -2
  60. package/dist/ai/blocks/divider.d.ts +1 -2
  61. package/dist/ai/blocks/error.d.ts +1 -2
  62. package/dist/ai/blocks/index.d.ts +7 -8
  63. package/dist/ai/blocks/info.d.ts +1 -2
  64. package/dist/ai/blocks/loading.d.ts +1 -2
  65. package/dist/ai/blocks/stat-row.d.ts +1 -2
  66. package/dist/ai/blocks/success.d.ts +1 -2
  67. package/dist/ai/blocks/text.d.ts +1 -2
  68. package/dist/ai/command-bar.d.ts +1 -2
  69. package/dist/ai/conversation.d.ts +2 -3
  70. package/dist/ai/devadoot-icon.d.ts +0 -1
  71. package/dist/ai/index.d.ts +16 -17
  72. package/dist/ai/types.js +1 -0
  73. package/dist/composed/activity-feed.d.ts +1 -2
  74. package/dist/composed/avatar-group.d.ts +11 -10
  75. package/dist/composed/avatar-group.d.ts.map +1 -1
  76. package/dist/composed/avatar-group.js +108 -140
  77. package/dist/composed/avatar-group.js.map +1 -1
  78. package/dist/composed/bulk-action-bar.d.ts +20 -13
  79. package/dist/composed/bulk-action-bar.d.ts.map +1 -1
  80. package/dist/composed/bulk-action-bar.js +81 -110
  81. package/dist/composed/bulk-action-bar.js.map +1 -1
  82. package/dist/composed/command-palette.d.ts +1 -2
  83. package/dist/composed/confirm-dialog.d.ts +0 -1
  84. package/dist/composed/date-picker/calendar-grid.d.ts +0 -1
  85. package/dist/composed/date-picker/date-picker.d.ts +0 -1
  86. package/dist/composed/date-picker/date-range-picker.d.ts +1 -2
  87. package/dist/composed/date-picker/date-time-picker.d.ts +0 -1
  88. package/dist/composed/date-picker/index.d.ts +17 -18
  89. package/dist/composed/date-picker/month-picker.d.ts +0 -1
  90. package/dist/composed/date-picker/presets.d.ts +0 -1
  91. package/dist/composed/date-picker/time-picker.d.ts +0 -1
  92. package/dist/composed/date-picker/use-calendar.d.ts +0 -1
  93. package/dist/composed/date-picker/year-picker.d.ts +0 -1
  94. package/dist/composed/deadline-indicator.d.ts +0 -1
  95. package/dist/composed/diff.d.ts +0 -1
  96. package/dist/composed/emoji-picker.d.ts +0 -1
  97. package/dist/composed/empty-state.d.ts +1 -2
  98. package/dist/composed/error-boundary.d.ts +15 -4
  99. package/dist/composed/error-boundary.d.ts.map +1 -1
  100. package/dist/composed/error-boundary.js +43 -26
  101. package/dist/composed/error-boundary.js.map +1 -1
  102. package/dist/composed/extensions/emoji-data.d.ts +0 -1
  103. package/dist/composed/extensions/emoji-node.d.ts +0 -1
  104. package/dist/composed/extensions/emoji-suggestion.d.ts +1 -2
  105. package/dist/composed/extensions/file-attachment.d.ts +0 -1
  106. package/dist/composed/extensions/mention-suggestion.d.ts +1 -2
  107. package/dist/composed/extensions/slash-command.d.ts +0 -1
  108. package/dist/composed/file-preview/audio-preview.d.ts +0 -1
  109. package/dist/composed/file-preview/document-preview.d.ts +0 -1
  110. package/dist/composed/file-preview/embed-preview.d.ts +0 -1
  111. package/dist/composed/file-preview/image-preview.d.ts +0 -1
  112. package/dist/composed/file-preview/shared.d.ts +0 -1
  113. package/dist/composed/file-preview/video-preview.d.ts +0 -1
  114. package/dist/composed/file-preview.d.ts +0 -1
  115. package/dist/composed/filter-bar.d.ts +0 -1
  116. package/dist/composed/form-section.d.ts +0 -1
  117. package/dist/composed/global-loading.d.ts +0 -1
  118. package/dist/composed/index.d.ts +49 -50
  119. package/dist/composed/inline-edit.d.ts +0 -1
  120. package/dist/composed/loading-skeleton.d.ts +2 -0
  121. package/dist/composed/loading-skeleton.d.ts.map +1 -1
  122. package/dist/composed/loading-skeleton.js +79 -56
  123. package/dist/composed/loading-skeleton.js.map +1 -1
  124. package/dist/composed/markdown-viewer.d.ts +0 -1
  125. package/dist/composed/master-detail.d.ts +21 -9
  126. package/dist/composed/master-detail.d.ts.map +1 -1
  127. package/dist/composed/master-detail.js +91 -77
  128. package/dist/composed/master-detail.js.map +1 -1
  129. package/dist/composed/member-picker.d.ts +0 -1
  130. package/dist/composed/multi-select-popover.d.ts +0 -1
  131. package/dist/composed/page-skeletons.d.ts +6 -0
  132. package/dist/composed/page-skeletons.d.ts.map +1 -1
  133. package/dist/composed/page-skeletons.js +93 -71
  134. package/dist/composed/page-skeletons.js.map +1 -1
  135. package/dist/composed/priority-indicator.d.ts +0 -1
  136. package/dist/composed/responsive-modal.d.ts +1 -2
  137. package/dist/composed/responsive-modal.js +47 -47
  138. package/dist/composed/rich-chat-input/attachment-strip.d.ts +0 -1
  139. package/dist/composed/rich-chat-input/audio-player.d.ts +0 -1
  140. package/dist/composed/rich-chat-input/audio-waveform.d.ts +0 -1
  141. package/dist/composed/rich-chat-input/chat-toolbar.d.ts +0 -1
  142. package/dist/composed/rich-chat-input/recording-overlay.d.ts +0 -1
  143. package/dist/composed/rich-chat-input/reply-banner.d.ts +0 -1
  144. package/dist/composed/rich-chat-input/schedule-send.d.ts +0 -1
  145. package/dist/composed/rich-chat-input/use-voice-recorder.d.ts +0 -1
  146. package/dist/composed/rich-chat-input.d.ts +9 -10
  147. package/dist/composed/rich-chat-input.js +1 -1
  148. package/dist/composed/rich-text-editor.d.ts +1 -2
  149. package/dist/composed/schedule-view.d.ts +0 -1
  150. package/dist/composed/simple-tooltip.d.ts +0 -1
  151. package/dist/composed/status-badge.d.ts +1 -2
  152. package/dist/hooks/index.d.ts +6 -7
  153. package/dist/hooks/use-color-mode.d.ts +0 -1
  154. package/dist/hooks/use-mobile.d.ts +0 -1
  155. package/dist/hooks/use-touch-device.d.ts +0 -1
  156. package/dist/hooks/use-viewport-height.d.ts +0 -1
  157. package/dist/motion/check-motion-provider.d.ts +0 -1
  158. package/dist/motion/index.d.ts +2 -3
  159. package/dist/motion/motion-provider.d.ts +1 -2
  160. package/dist/motion/primitives-index.d.ts +1 -2
  161. package/dist/motion/primitives.d.ts +1 -2
  162. package/dist/primitives/_internal/react-arrow.d.ts +1 -1
  163. package/dist/primitives/_internal/react-collection.d.ts +2 -2
  164. package/dist/primitives/_internal/react-dismissable-layer.d.ts +1 -1
  165. package/dist/primitives/_internal/react-focus-scope.d.ts +1 -1
  166. package/dist/primitives/_internal/react-popper.d.ts +4 -4
  167. package/dist/primitives/_internal/react-portal.d.ts +1 -1
  168. package/dist/primitives/_internal/react-use-rect.d.ts +1 -1
  169. package/dist/primitives/react-accordion.d.ts +3 -3
  170. package/dist/primitives/react-alert-dialog.d.ts +2 -2
  171. package/dist/primitives/react-aspect-ratio.d.ts +1 -1
  172. package/dist/primitives/react-avatar.d.ts +2 -2
  173. package/dist/primitives/react-checkbox.d.ts +3 -3
  174. package/dist/primitives/react-collapsible.d.ts +2 -2
  175. package/dist/primitives/react-context-menu.d.ts +3 -3
  176. package/dist/primitives/react-dialog.d.ts +5 -5
  177. package/dist/primitives/react-dropdown-menu.d.ts +3 -3
  178. package/dist/primitives/react-hover-card.d.ts +5 -5
  179. package/dist/primitives/react-label.d.ts +1 -1
  180. package/dist/primitives/react-menu.d.ts +7 -7
  181. package/dist/primitives/react-menubar.d.ts +5 -5
  182. package/dist/primitives/react-navigation-menu.d.ts +5 -5
  183. package/dist/primitives/react-popover.d.ts +6 -6
  184. package/dist/primitives/react-progress.d.ts +2 -2
  185. package/dist/primitives/react-radio-group.d.ts +3 -3
  186. package/dist/primitives/react-roving-focus.d.ts +2 -2
  187. package/dist/primitives/react-select.d.ts +6 -6
  188. package/dist/primitives/react-separator.d.ts +1 -1
  189. package/dist/primitives/react-slider.d.ts +2 -2
  190. package/dist/primitives/react-switch.d.ts +2 -2
  191. package/dist/primitives/react-tabs.d.ts +3 -3
  192. package/dist/primitives/react-toast.d.ts +3 -3
  193. package/dist/primitives/react-toggle-group.d.ts +4 -4
  194. package/dist/primitives/react-toggle.d.ts +1 -1
  195. package/dist/primitives/react-tooltip.d.ts +5 -5
  196. package/dist/primitives/react-visually-hidden.d.ts +1 -1
  197. package/dist/shell/app-command-palette.d.ts +2 -3
  198. package/dist/shell/bottom-navbar.d.ts +1 -2
  199. package/dist/shell/command-registry.d.ts +1 -2
  200. package/dist/shell/index.d.ts +12 -11
  201. package/dist/shell/index.d.ts.map +1 -1
  202. package/dist/shell/index.js +2 -3
  203. package/dist/shell/link-context.d.ts +2 -3
  204. package/dist/shell/notification-center.d.ts +0 -1
  205. package/dist/shell/notification-preferences.d.ts +0 -1
  206. package/dist/shell/notification-preferences.d.ts.map +1 -1
  207. package/dist/shell/notification-preferences.js +2 -0
  208. package/dist/shell/notification-preferences.js.map +1 -1
  209. package/dist/shell/top-bar.d.ts +1 -2
  210. package/dist/test-utils/conformance.d.ts +0 -1
  211. package/dist/ui/accordion.d.ts +1 -2
  212. package/dist/ui/accordion.js +1 -1
  213. package/dist/ui/alert-dialog.d.ts +1 -2
  214. package/dist/ui/alert-dialog.js +52 -52
  215. package/dist/ui/alert.d.ts +0 -1
  216. package/dist/ui/aspect-ratio.d.ts +1 -2
  217. package/dist/ui/aspect-ratio.js +4 -4
  218. package/dist/ui/autocomplete.d.ts +1 -2
  219. package/dist/ui/autocomplete.js +1 -1
  220. package/dist/ui/avatar.d.ts +1 -2
  221. package/dist/ui/avatar.js +33 -33
  222. package/dist/ui/badge-group.d.ts +1 -2
  223. package/dist/ui/badge-indicator.d.ts +0 -1
  224. package/dist/ui/badge.d.ts +3 -4
  225. package/dist/ui/banner.d.ts +0 -1
  226. package/dist/ui/breadcrumb.js +1 -1
  227. package/dist/ui/button-group.d.ts +1 -2
  228. package/dist/ui/button-processing.d.ts +0 -1
  229. package/dist/ui/button.d.ts +1 -2
  230. package/dist/ui/button.js +1 -1
  231. package/dist/ui/card.d.ts +0 -1
  232. package/dist/ui/charts/_internal/animation.d.ts +0 -1
  233. package/dist/ui/charts/_internal/axes.d.ts +0 -1
  234. package/dist/ui/charts/_internal/colors.d.ts +1 -2
  235. package/dist/ui/charts/_internal/grid-lines.d.ts +0 -1
  236. package/dist/ui/charts/_internal/legend.d.ts +0 -1
  237. package/dist/ui/charts/_internal/scales.d.ts +0 -1
  238. package/dist/ui/charts/_internal/tooltip.d.ts +0 -1
  239. package/dist/ui/charts/_internal/types.d.ts +0 -1
  240. package/dist/ui/charts/area-chart.d.ts +1 -2
  241. package/dist/ui/charts/bar-chart.d.ts +1 -2
  242. package/dist/ui/charts/chart-container.d.ts +1 -2
  243. package/dist/ui/charts/gauge-chart.d.ts +0 -1
  244. package/dist/ui/charts/index.d.ts +9 -10
  245. package/dist/ui/charts/line-chart.d.ts +1 -2
  246. package/dist/ui/charts/pie-chart.d.ts +0 -1
  247. package/dist/ui/charts/radar-chart.d.ts +0 -1
  248. package/dist/ui/charts/sparkline.d.ts +0 -1
  249. package/dist/ui/chat/date-separator.d.ts +0 -1
  250. package/dist/ui/chat/index.d.ts +7 -8
  251. package/dist/ui/chat/message-input.d.ts +0 -1
  252. package/dist/ui/chat/message-list.d.ts +0 -1
  253. package/dist/ui/chat/message.d.ts +1 -2
  254. package/dist/ui/chat/system-message.d.ts +1 -2
  255. package/dist/ui/chat/typing-indicator.d.ts +0 -1
  256. package/dist/ui/chat/unread-separator.d.ts +0 -1
  257. package/dist/ui/checkbox.d.ts +2 -3
  258. package/dist/ui/checkbox.js +13 -13
  259. package/dist/ui/collapsible.d.ts +1 -2
  260. package/dist/ui/collapsible.js +1 -1
  261. package/dist/ui/color-input.d.ts +0 -1
  262. package/dist/ui/color-swatch.d.ts +0 -1
  263. package/dist/ui/combobox.d.ts +3 -4
  264. package/dist/ui/combobox.d.ts.map +1 -1
  265. package/dist/ui/combobox.js +146 -141
  266. package/dist/ui/combobox.js.map +1 -1
  267. package/dist/ui/context-menu.d.ts +1 -2
  268. package/dist/ui/context-menu.js +58 -58
  269. package/dist/ui/data-table-body.d.ts +0 -1
  270. package/dist/ui/data-table-bulk-actions.d.ts +0 -1
  271. package/dist/ui/data-table-card.d.ts +0 -1
  272. package/dist/ui/data-table-context.d.ts +0 -1
  273. package/dist/ui/data-table-header.d.ts +0 -1
  274. package/dist/ui/data-table-pagination.d.ts +0 -1
  275. package/dist/ui/data-table-toolbar.d.ts +0 -1
  276. package/dist/ui/data-table.d.ts +3 -4
  277. package/dist/ui/devalok-grain.d.ts +0 -1
  278. package/dist/ui/dialog.d.ts +1 -2
  279. package/dist/ui/dialog.js +43 -43
  280. package/dist/ui/dot.d.ts +0 -1
  281. package/dist/ui/dropdown-menu.d.ts +1 -2
  282. package/dist/ui/dropdown-menu.js +69 -69
  283. package/dist/ui/file-upload.d.ts +0 -1
  284. package/dist/ui/file-upload.d.ts.map +1 -1
  285. package/dist/ui/file-upload.js +124 -138
  286. package/dist/ui/file-upload.js.map +1 -1
  287. package/dist/ui/form.d.ts +7 -1
  288. package/dist/ui/form.d.ts.map +1 -1
  289. package/dist/ui/form.js +4 -2
  290. package/dist/ui/form.js.map +1 -1
  291. package/dist/ui/hover-card.d.ts +1 -2
  292. package/dist/ui/hover-card.js +16 -16
  293. package/dist/ui/icon-button.d.ts +4 -4
  294. package/dist/ui/icon-button.d.ts.map +1 -1
  295. package/dist/ui/icon-button.js +1 -1
  296. package/dist/ui/icon-button.js.map +1 -1
  297. package/dist/ui/icon-context.d.ts +0 -1
  298. package/dist/ui/icon-group.d.ts +1 -2
  299. package/dist/ui/icon.d.ts +1 -2
  300. package/dist/ui/index.d.ts +78 -79
  301. package/dist/ui/index.d.ts.map +1 -1
  302. package/dist/ui/index.js.map +1 -1
  303. package/dist/ui/input-otp.d.ts +0 -1
  304. package/dist/ui/input.d.ts +1 -2
  305. package/dist/ui/label.d.ts +1 -2
  306. package/dist/ui/label.d.ts.map +1 -1
  307. package/dist/ui/label.js +13 -12
  308. package/dist/ui/label.js.map +1 -1
  309. package/dist/ui/lib/bottom-sheet.d.ts +0 -1
  310. package/dist/ui/lib/check-tokens.d.ts +0 -1
  311. package/dist/ui/lib/field-state.d.ts +0 -1
  312. package/dist/ui/lib/icon-input.d.ts +0 -1
  313. package/dist/ui/lib/index.d.ts +6 -7
  314. package/dist/ui/lib/keybinding.d.ts +0 -1
  315. package/dist/ui/lib/link-context.d.ts +0 -1
  316. package/dist/ui/lib/mention.d.ts +0 -1
  317. package/dist/ui/lib/normalize-icon.d.ts +2 -2
  318. package/dist/ui/lib/slot.d.ts +2 -3
  319. package/dist/ui/lib/use-controllable-open.d.ts +0 -1
  320. package/dist/ui/link.d.ts +0 -1
  321. package/dist/ui/link.js +1 -1
  322. package/dist/ui/menubar.d.ts +1 -2
  323. package/dist/ui/menubar.js +64 -64
  324. package/dist/ui/navigation-menu.d.ts +1 -2
  325. package/dist/ui/navigation-menu.js +67 -67
  326. package/dist/ui/number-input.d.ts +1 -2
  327. package/dist/ui/oauth-button/index.d.ts +1 -2
  328. package/dist/ui/oauth-button/oauth-button.d.ts +2 -3
  329. package/dist/ui/pagination.d.ts +0 -1
  330. package/dist/ui/pagination.js +1 -1
  331. package/dist/ui/popover.d.ts +1 -2
  332. package/dist/ui/progress-ring.d.ts +0 -1
  333. package/dist/ui/progress.d.ts +1 -2
  334. package/dist/ui/progress.js +30 -30
  335. package/dist/ui/radio.d.ts +2 -3
  336. package/dist/ui/radio.js +18 -18
  337. package/dist/ui/search-input.d.ts +0 -1
  338. package/dist/ui/segmented-control.d.ts +1 -2
  339. package/dist/ui/select.d.ts +1 -2
  340. package/dist/ui/select.js +55 -55
  341. package/dist/ui/separator.d.ts +1 -2
  342. package/dist/ui/separator.js +5 -5
  343. package/dist/ui/sheet.d.ts +1 -2
  344. package/dist/ui/sheet.js +45 -45
  345. package/dist/ui/sidebar.d.ts +4 -5
  346. package/dist/ui/sidebar.js +1 -1
  347. package/dist/ui/slider.d.ts +1 -2
  348. package/dist/ui/slider.js +14 -14
  349. package/dist/ui/spinner.d.ts +0 -1
  350. package/dist/ui/spinner.d.ts.map +1 -1
  351. package/dist/ui/spinner.js +50 -44
  352. package/dist/ui/spinner.js.map +1 -1
  353. package/dist/ui/split-button.d.ts +14 -4
  354. package/dist/ui/split-button.d.ts.map +1 -1
  355. package/dist/ui/split-button.js.map +1 -1
  356. package/dist/ui/stat-card.d.ts +3 -4
  357. package/dist/ui/stat-flash.d.ts +1 -2
  358. package/dist/ui/stepper.d.ts +1 -2
  359. package/dist/ui/surface.js +1 -1
  360. package/dist/ui/switch.d.ts +2 -3
  361. package/dist/ui/switch.d.ts.map +1 -1
  362. package/dist/ui/switch.js +31 -31
  363. package/dist/ui/switch.js.map +1 -1
  364. package/dist/ui/table-row-link.d.ts +0 -1
  365. package/dist/ui/table.js +1 -1
  366. package/dist/ui/table.js.map +1 -1
  367. package/dist/ui/tabs.d.ts +1 -2
  368. package/dist/ui/tabs.js +35 -35
  369. package/dist/ui/textarea.d.ts +1 -2
  370. package/dist/ui/toast-registry.d.ts +0 -1
  371. package/dist/ui/toast-types.js +1 -0
  372. package/dist/ui/toast.d.ts +2 -3
  373. package/dist/ui/toaster.d.ts +0 -1
  374. package/dist/ui/toggle-group.d.ts +2 -3
  375. package/dist/ui/toggle-group.js +14 -14
  376. package/dist/ui/toggle.d.ts +1 -2
  377. package/dist/ui/toggle.js +12 -12
  378. package/dist/ui/tooltip.d.ts +1 -2
  379. package/dist/ui/tooltip.js +21 -21
  380. package/dist/ui/tree-view/index.d.ts +3 -4
  381. package/dist/ui/tree-view/tree-item.d.ts +1 -2
  382. package/dist/ui/tree-view/tree-view.d.ts +1 -2
  383. package/dist/ui/tree-view/use-tree.d.ts +1 -2
  384. package/dist/ui/truncated-text.d.ts +0 -1
  385. package/docs/components/composed/bulk-action-bar.md +9 -3
  386. package/docs/components/composed/error-boundary.md +18 -2
  387. package/docs/components/composed/master-detail.md +12 -2
  388. package/docs/components/composed/page-skeletons.md +2 -2
  389. package/docs/components/composed/rich-chat-input.md +18 -6
  390. package/docs/components/composed/simple-tooltip.md +1 -1
  391. package/docs/components/shell/app-command-palette.md +2 -1
  392. package/docs/components/shell/bottom-navbar.md +4 -4
  393. package/docs/components/shell/command-registry.md +2 -2
  394. package/docs/components/shell/link-context.md +2 -2
  395. package/docs/components/shell/top-bar.md +1 -1
  396. package/docs/components/ui/search-input.md +2 -2
  397. package/docs/components/ui/slider.md +2 -2
  398. package/docs/components/ui/split-button.md +3 -3
  399. package/docs/recipes/install-astro.md +2 -0
  400. package/docs/recipes/install-next-app-router.md +2 -0
  401. package/docs/recipes/install-remix.md +2 -0
  402. package/docs/recipes/install-tanstack-start.md +2 -0
  403. package/docs/recipes/install-vite.md +2 -0
  404. package/docs/recipes/troubleshoot.md +80 -0
  405. package/llms.txt +2 -2
  406. package/make-kit/Guidelines.md +1 -1
  407. package/make-kit/components/overview.md +2 -2
  408. package/make-kit/foundations/surfaces.md +1 -1
  409. package/mcp-manifest.json +411 -147
  410. package/package.json +30 -10
  411. package/skill/SKILL.md +1 -1
  412. package/skill/chat-skill/README.md +18 -0
  413. package/skill/chat-skill/SKILL.md +78 -0
  414. package/skill/chat-skill/chatgpt-instructions.md +26 -0
  415. package/skill/chat-skill/gemini-instructions.md +25 -0
  416. package/skill/references/components.md +2 -2
  417. package/skill/references/setup-astro.md +2 -0
  418. package/skill/references/setup-next-app-router.md +2 -0
  419. package/skill/references/setup-remix.md +2 -0
  420. package/skill/references/setup-tanstack-start.md +2 -0
  421. package/skill/references/setup-vite.md +2 -0
  422. package/skill/references/troubleshoot.md +80 -0
  423. package/dist/_chunks/primitives.js +0 -7596
  424. package/dist/_chunks/primitives.js.map +0 -1
  425. package/dist/shell/sidebar.d.ts +0 -113
  426. package/dist/shell/sidebar.d.ts.map +0 -1
  427. package/dist/shell/sidebar.js +0 -293
  428. package/dist/shell/sidebar.js.map +0 -1
  429. package/docs/components/shell/sidebar.md +0 -103
@@ -0,0 +1,560 @@
1
+ "use client";
2
+ import { DismissableLayer as e, Presence as t, Primitive as n, composeEventHandlers as r, composeRefs as i, createCollection as a, createContextScope as o, dispatchDiscreteCustomEvent as s, useCallbackRef as c, useComposedRefs as l, useControllableState as u, useDirection as d, useId as f, useLayoutEffect as p, usePrevious as m } from "../primitives-internal.js";
3
+ import * as h from "react";
4
+ import { Fragment as g, jsx as _, jsxs as v } from "react/jsx-runtime";
5
+ import y from "react-dom";
6
+ //#region src/primitives/react-visually-hidden.js
7
+ var b = Object.freeze({
8
+ position: "absolute",
9
+ border: 0,
10
+ width: 1,
11
+ height: 1,
12
+ padding: 0,
13
+ margin: -1,
14
+ overflow: "hidden",
15
+ clip: "rect(0, 0, 0, 0)",
16
+ whiteSpace: "nowrap",
17
+ wordWrap: "normal"
18
+ }), x = "VisuallyHidden", S = h.forwardRef((e, t) => /* @__PURE__ */ _(n.span, {
19
+ ...e,
20
+ ref: t,
21
+ style: {
22
+ ...b,
23
+ ...e.style
24
+ }
25
+ }));
26
+ S.displayName = x;
27
+ var C = S, w = "NavigationMenu", [T, E, D] = a(w), [O, k, A] = a(w), [j, ee] = o(w, [D, A]), [te, M] = j(w), [ne, re] = j(w), N = h.forwardRef((e, t) => {
28
+ let { __scopeNavigationMenu: r, value: i, onValueChange: a, defaultValue: o, delayDuration: s = 200, skipDelayDuration: c = 300, orientation: f = "horizontal", dir: p, ...m } = e, [g, v] = h.useState(null), y = l(t, (e) => v(e)), b = d(p), x = h.useRef(0), S = h.useRef(0), C = h.useRef(0), [T, E] = h.useState(!0), [D, O] = u({
29
+ prop: i,
30
+ onChange: (e) => {
31
+ let t = e !== "", n = c > 0;
32
+ t ? (window.clearTimeout(C.current), n && E(!1)) : (window.clearTimeout(C.current), C.current = window.setTimeout(() => E(!0), c)), a?.(e);
33
+ },
34
+ defaultProp: o ?? "",
35
+ caller: w
36
+ }), k = h.useCallback(() => {
37
+ window.clearTimeout(S.current), S.current = window.setTimeout(() => O(""), 150);
38
+ }, [O]), A = h.useCallback((e) => {
39
+ window.clearTimeout(S.current), O(e);
40
+ }, [O]), j = h.useCallback((e) => {
41
+ D === e ? window.clearTimeout(S.current) : x.current = window.setTimeout(() => {
42
+ window.clearTimeout(S.current), O(e);
43
+ }, s);
44
+ }, [
45
+ D,
46
+ O,
47
+ s
48
+ ]);
49
+ return h.useEffect(() => () => {
50
+ window.clearTimeout(x.current), window.clearTimeout(S.current), window.clearTimeout(C.current);
51
+ }, []), /* @__PURE__ */ _(F, {
52
+ scope: r,
53
+ isRootMenu: !0,
54
+ value: D,
55
+ dir: b,
56
+ orientation: f,
57
+ rootNavigationMenu: g,
58
+ onTriggerEnter: (e) => {
59
+ window.clearTimeout(x.current), T ? j(e) : A(e);
60
+ },
61
+ onTriggerLeave: () => {
62
+ window.clearTimeout(x.current), k();
63
+ },
64
+ onContentEnter: () => window.clearTimeout(S.current),
65
+ onContentLeave: k,
66
+ onItemSelect: (e) => {
67
+ O((t) => t === e ? "" : e);
68
+ },
69
+ onItemDismiss: () => O(""),
70
+ children: /* @__PURE__ */ _(n.nav, {
71
+ "aria-label": "Main",
72
+ "data-orientation": f,
73
+ dir: b,
74
+ ...m,
75
+ ref: y
76
+ })
77
+ });
78
+ });
79
+ N.displayName = w;
80
+ var P = "NavigationMenuSub", ie = h.forwardRef((e, t) => {
81
+ let { __scopeNavigationMenu: r, value: i, onValueChange: a, defaultValue: o, orientation: s = "horizontal", ...c } = e, l = M(P, r), [d, f] = u({
82
+ prop: i,
83
+ onChange: a,
84
+ defaultProp: o ?? "",
85
+ caller: P
86
+ });
87
+ return /* @__PURE__ */ _(F, {
88
+ scope: r,
89
+ isRootMenu: !1,
90
+ value: d,
91
+ dir: l.dir,
92
+ orientation: s,
93
+ rootNavigationMenu: l.rootNavigationMenu,
94
+ onTriggerEnter: (e) => f(e),
95
+ onItemSelect: (e) => f(e),
96
+ onItemDismiss: () => f(""),
97
+ children: /* @__PURE__ */ _(n.div, {
98
+ "data-orientation": s,
99
+ ...c,
100
+ ref: t
101
+ })
102
+ });
103
+ });
104
+ ie.displayName = P;
105
+ var F = (e) => {
106
+ let { scope: t, isRootMenu: n, rootNavigationMenu: r, dir: i, orientation: a, children: o, value: s, onItemSelect: l, onItemDismiss: u, onTriggerEnter: d, onTriggerLeave: p, onContentEnter: g, onContentLeave: v } = e, [y, b] = h.useState(null), [x, S] = h.useState(/* @__PURE__ */ new Map()), [C, w] = h.useState(null);
107
+ return /* @__PURE__ */ _(te, {
108
+ scope: t,
109
+ isRootMenu: n,
110
+ rootNavigationMenu: r,
111
+ value: s,
112
+ previousValue: m(s),
113
+ baseId: f(),
114
+ dir: i,
115
+ orientation: a,
116
+ viewport: y,
117
+ onViewportChange: b,
118
+ indicatorTrack: C,
119
+ onIndicatorTrackChange: w,
120
+ onTriggerEnter: c(d),
121
+ onTriggerLeave: c(p),
122
+ onContentEnter: c(g),
123
+ onContentLeave: c(v),
124
+ onItemSelect: c(l),
125
+ onItemDismiss: c(u),
126
+ onViewportContentChange: h.useCallback((e, t) => {
127
+ S((n) => (n.set(e, t), new Map(n)));
128
+ }, []),
129
+ onViewportContentRemove: h.useCallback((e) => {
130
+ S((t) => t.has(e) ? (t.delete(e), new Map(t)) : t);
131
+ }, []),
132
+ children: /* @__PURE__ */ _(T.Provider, {
133
+ scope: t,
134
+ children: /* @__PURE__ */ _(ne, {
135
+ scope: t,
136
+ items: x,
137
+ children: o
138
+ })
139
+ })
140
+ });
141
+ }, ae = "NavigationMenuList", oe = h.forwardRef((e, t) => {
142
+ let { __scopeNavigationMenu: r, ...i } = e, a = M(ae, r), o = /* @__PURE__ */ _(n.ul, {
143
+ "data-orientation": a.orientation,
144
+ ...i,
145
+ ref: t
146
+ });
147
+ return /* @__PURE__ */ _(n.div, {
148
+ style: { position: "relative" },
149
+ ref: a.onIndicatorTrackChange,
150
+ children: /* @__PURE__ */ _(T.Slot, {
151
+ scope: r,
152
+ children: a.isRootMenu ? /* @__PURE__ */ _(he, {
153
+ asChild: !0,
154
+ children: o
155
+ }) : o
156
+ })
157
+ });
158
+ });
159
+ oe.displayName = ae;
160
+ var se = "NavigationMenuItem", [ce, I] = j(se), L = h.forwardRef((e, t) => {
161
+ let { __scopeNavigationMenu: r, value: i, ...a } = e, o = f(), s = i || o || "LEGACY_REACT_AUTO_VALUE", c = h.useRef(null), l = h.useRef(null), u = h.useRef(null), d = h.useRef(() => {}), p = h.useRef(!1), m = h.useCallback((e = "start") => {
162
+ if (c.current) {
163
+ d.current();
164
+ let t = Y(c.current);
165
+ t.length && X(e === "start" ? t : t.reverse());
166
+ }
167
+ }, []), g = h.useCallback(() => {
168
+ if (c.current) {
169
+ let e = Y(c.current);
170
+ e.length && (d.current = ye(e));
171
+ }
172
+ }, []);
173
+ return /* @__PURE__ */ _(ce, {
174
+ scope: r,
175
+ value: s,
176
+ triggerRef: l,
177
+ contentRef: c,
178
+ focusProxyRef: u,
179
+ wasEscapeCloseRef: p,
180
+ onEntryKeyDown: m,
181
+ onFocusProxyEnter: m,
182
+ onRootContentClose: g,
183
+ onContentFocusOutside: g,
184
+ children: /* @__PURE__ */ _(n.li, {
185
+ ...a,
186
+ ref: t
187
+ })
188
+ });
189
+ });
190
+ L.displayName = se;
191
+ var R = "NavigationMenuTrigger", z = h.forwardRef((e, t) => {
192
+ let { __scopeNavigationMenu: i, disabled: a, ...o } = e, s = M(R, e.__scopeNavigationMenu), c = I(R, e.__scopeNavigationMenu), u = h.useRef(null), d = l(u, c.triggerRef, t), f = be(s.baseId, c.value), p = xe(s.baseId, c.value), m = h.useRef(!1), y = h.useRef(!1), b = c.value === s.value;
193
+ return /* @__PURE__ */ v(g, { children: [/* @__PURE__ */ _(T.ItemSlot, {
194
+ scope: i,
195
+ value: c.value,
196
+ children: /* @__PURE__ */ _(ve, {
197
+ asChild: !0,
198
+ children: /* @__PURE__ */ _(n.button, {
199
+ id: f,
200
+ disabled: a,
201
+ "data-disabled": a ? "" : void 0,
202
+ "data-state": Q(b),
203
+ "aria-expanded": b,
204
+ "aria-controls": p,
205
+ ...o,
206
+ ref: d,
207
+ onPointerEnter: r(e.onPointerEnter, () => {
208
+ y.current = !1, c.wasEscapeCloseRef.current = !1;
209
+ }),
210
+ onPointerMove: r(e.onPointerMove, $(() => {
211
+ a || y.current || c.wasEscapeCloseRef.current || m.current || (s.onTriggerEnter(c.value), m.current = !0);
212
+ })),
213
+ onPointerLeave: r(e.onPointerLeave, $(() => {
214
+ a || (s.onTriggerLeave(), m.current = !1);
215
+ })),
216
+ onClick: r(e.onClick, () => {
217
+ s.onItemSelect(c.value), y.current = b;
218
+ }),
219
+ onKeyDown: r(e.onKeyDown, (e) => {
220
+ let t = {
221
+ horizontal: "ArrowDown",
222
+ vertical: s.dir === "rtl" ? "ArrowLeft" : "ArrowRight"
223
+ }[s.orientation];
224
+ b && e.key === t && (c.onEntryKeyDown(), e.preventDefault());
225
+ })
226
+ })
227
+ })
228
+ }), b && /* @__PURE__ */ v(g, { children: [/* @__PURE__ */ _(C, {
229
+ "aria-hidden": !0,
230
+ tabIndex: 0,
231
+ ref: c.focusProxyRef,
232
+ onFocus: (e) => {
233
+ let t = c.contentRef.current, n = e.relatedTarget, r = n === u.current, i = t?.contains(n);
234
+ (r || !i) && c.onFocusProxyEnter(r ? "start" : "end");
235
+ }
236
+ }), s.viewport && /* @__PURE__ */ _("span", { "aria-owns": p })] })] });
237
+ });
238
+ z.displayName = R;
239
+ var le = "NavigationMenuLink", B = "navigationMenu.linkSelect", V = h.forwardRef((e, t) => {
240
+ let { __scopeNavigationMenu: i, active: a, onSelect: o, ...c } = e;
241
+ return /* @__PURE__ */ _(ve, {
242
+ asChild: !0,
243
+ children: /* @__PURE__ */ _(n.a, {
244
+ "data-active": a ? "" : void 0,
245
+ "aria-current": a ? "page" : void 0,
246
+ ...c,
247
+ ref: t,
248
+ onClick: r(e.onClick, (e) => {
249
+ let t = e.target, n = new CustomEvent(B, {
250
+ bubbles: !0,
251
+ cancelable: !0
252
+ });
253
+ t.addEventListener(B, (e) => o?.(e), { once: !0 }), s(t, n), !n.defaultPrevented && !e.metaKey && s(t, new CustomEvent(K, {
254
+ bubbles: !0,
255
+ cancelable: !0
256
+ }));
257
+ }, { checkForDefaultPrevented: !1 })
258
+ })
259
+ });
260
+ });
261
+ V.displayName = le;
262
+ var H = "NavigationMenuIndicator", U = h.forwardRef((e, n) => {
263
+ let { forceMount: r, ...i } = e, a = M(H, e.__scopeNavigationMenu), o = !!a.value;
264
+ return a.indicatorTrack ? y.createPortal(/* @__PURE__ */ _(t, {
265
+ present: r || o,
266
+ children: /* @__PURE__ */ _(ue, {
267
+ ...i,
268
+ ref: n
269
+ })
270
+ }), a.indicatorTrack) : null;
271
+ });
272
+ U.displayName = H;
273
+ var ue = h.forwardRef((e, t) => {
274
+ let { __scopeNavigationMenu: r, ...i } = e, a = M(H, r), o = E(r), [s, c] = h.useState(null), [l, u] = h.useState(null), d = a.orientation === "horizontal", f = !!a.value;
275
+ h.useEffect(() => {
276
+ let e = o().find((e) => e.value === a.value)?.ref.current;
277
+ e && c(e);
278
+ }, [o, a.value]);
279
+ let p = () => {
280
+ s && u({
281
+ size: d ? s.offsetWidth : s.offsetHeight,
282
+ offset: d ? s.offsetLeft : s.offsetTop
283
+ });
284
+ };
285
+ return Z(s, p), Z(a.indicatorTrack, p), l ? /* @__PURE__ */ _(n.div, {
286
+ "aria-hidden": !0,
287
+ "data-state": f ? "visible" : "hidden",
288
+ "data-orientation": a.orientation,
289
+ ...i,
290
+ ref: t,
291
+ style: {
292
+ position: "absolute",
293
+ ...d ? {
294
+ left: 0,
295
+ width: l.size + "px",
296
+ transform: `translateX(${l.offset}px)`
297
+ } : {
298
+ top: 0,
299
+ height: l.size + "px",
300
+ transform: `translateY(${l.offset}px)`
301
+ },
302
+ ...i.style
303
+ }
304
+ }) : null;
305
+ }), W = "NavigationMenuContent", G = h.forwardRef((e, n) => {
306
+ let { forceMount: i, ...a } = e, o = M(W, e.__scopeNavigationMenu), s = I(W, e.__scopeNavigationMenu), c = l(s.contentRef, n), u = s.value === o.value, d = {
307
+ value: s.value,
308
+ triggerRef: s.triggerRef,
309
+ focusProxyRef: s.focusProxyRef,
310
+ wasEscapeCloseRef: s.wasEscapeCloseRef,
311
+ onContentFocusOutside: s.onContentFocusOutside,
312
+ onRootContentClose: s.onRootContentClose,
313
+ ...a
314
+ };
315
+ return o.viewport ? /* @__PURE__ */ _(de, {
316
+ forceMount: i,
317
+ ...d,
318
+ ref: c
319
+ }) : /* @__PURE__ */ _(t, {
320
+ present: i || u,
321
+ children: /* @__PURE__ */ _(q, {
322
+ "data-state": Q(u),
323
+ ...d,
324
+ ref: c,
325
+ onPointerEnter: r(e.onPointerEnter, o.onContentEnter),
326
+ onPointerLeave: r(e.onPointerLeave, $(o.onContentLeave)),
327
+ style: {
328
+ pointerEvents: !u && o.isRootMenu ? "none" : void 0,
329
+ ...d.style
330
+ }
331
+ })
332
+ });
333
+ });
334
+ G.displayName = W;
335
+ var de = h.forwardRef((e, t) => {
336
+ let { onViewportContentChange: n, onViewportContentRemove: r } = M(W, e.__scopeNavigationMenu);
337
+ return p(() => {
338
+ n(e.value, {
339
+ ref: t,
340
+ ...e
341
+ });
342
+ }, [
343
+ e,
344
+ t,
345
+ n
346
+ ]), p(() => () => r(e.value), [e.value, r]), null;
347
+ }), K = "navigationMenu.rootContentDismiss", q = h.forwardRef((t, n) => {
348
+ let { __scopeNavigationMenu: i, value: a, triggerRef: o, focusProxyRef: s, wasEscapeCloseRef: c, onRootContentClose: u, onContentFocusOutside: d, ...f } = t, p = M(W, i), m = h.useRef(null), g = l(m, n), v = be(p.baseId, a), y = xe(p.baseId, a), b = E(i), x = h.useRef(null), { onItemDismiss: S } = p;
349
+ return h.useEffect(() => {
350
+ let e = m.current;
351
+ if (p.isRootMenu && e) {
352
+ let t = () => {
353
+ S(), u(), e.contains(document.activeElement) && o.current?.focus();
354
+ };
355
+ return e.addEventListener(K, t), () => e.removeEventListener(K, t);
356
+ }
357
+ }, [
358
+ p.isRootMenu,
359
+ t.value,
360
+ o,
361
+ S,
362
+ u
363
+ ]), /* @__PURE__ */ _(he, {
364
+ asChild: !0,
365
+ children: /* @__PURE__ */ _(e, {
366
+ id: y,
367
+ "aria-labelledby": v,
368
+ "data-motion": h.useMemo(() => {
369
+ let e = b().map((e) => e.value);
370
+ p.dir === "rtl" && e.reverse();
371
+ let t = e.indexOf(p.value), n = e.indexOf(p.previousValue), r = a === p.value, i = n === e.indexOf(a);
372
+ if (!r && !i) return x.current;
373
+ let o = (() => {
374
+ if (t !== n) {
375
+ if (r && n !== -1) return t > n ? "from-end" : "from-start";
376
+ if (i && t !== -1) return t > n ? "to-start" : "to-end";
377
+ }
378
+ return null;
379
+ })();
380
+ return x.current = o, o;
381
+ }, [
382
+ p.previousValue,
383
+ p.value,
384
+ p.dir,
385
+ b,
386
+ a
387
+ ]),
388
+ "data-orientation": p.orientation,
389
+ ...f,
390
+ ref: g,
391
+ disableOutsidePointerEvents: !1,
392
+ onDismiss: () => {
393
+ let e = new Event(K, {
394
+ bubbles: !0,
395
+ cancelable: !0
396
+ });
397
+ m.current?.dispatchEvent(e);
398
+ },
399
+ onFocusOutside: r(t.onFocusOutside, (e) => {
400
+ d();
401
+ let t = e.target;
402
+ p.rootNavigationMenu?.contains(t) && e.preventDefault();
403
+ }),
404
+ onPointerDownOutside: r(t.onPointerDownOutside, (e) => {
405
+ let t = e.target, n = b().some((e) => e.ref.current?.contains(t)), r = p.isRootMenu && p.viewport?.contains(t);
406
+ (n || r || !p.isRootMenu) && e.preventDefault();
407
+ }),
408
+ onKeyDown: r(t.onKeyDown, (e) => {
409
+ let t = e.altKey || e.ctrlKey || e.metaKey;
410
+ if (e.key === "Tab" && !t) {
411
+ let t = Y(e.currentTarget), n = document.activeElement, r = t.findIndex((e) => e === n);
412
+ X(e.shiftKey ? t.slice(0, r).reverse() : t.slice(r + 1, t.length)) ? e.preventDefault() : s.current?.focus();
413
+ }
414
+ }),
415
+ onEscapeKeyDown: r(t.onEscapeKeyDown, (e) => {
416
+ c.current = !0;
417
+ })
418
+ })
419
+ });
420
+ }), J = "NavigationMenuViewport", fe = h.forwardRef((e, n) => {
421
+ let { forceMount: r, ...i } = e, a = !!M(J, e.__scopeNavigationMenu).value;
422
+ return /* @__PURE__ */ _(t, {
423
+ present: r || a,
424
+ children: /* @__PURE__ */ _(pe, {
425
+ ...i,
426
+ ref: n
427
+ })
428
+ });
429
+ });
430
+ fe.displayName = J;
431
+ var pe = h.forwardRef((e, a) => {
432
+ let { __scopeNavigationMenu: o, children: s, ...c } = e, u = M(J, o), d = l(a, u.onViewportChange), f = re(W, e.__scopeNavigationMenu), [p, m] = h.useState(null), [g, v] = h.useState(null), y = p ? p?.width + "px" : void 0, b = p ? p?.height + "px" : void 0, x = !!u.value, S = x ? u.value : u.previousValue;
433
+ return Z(g, () => {
434
+ g && m({
435
+ width: g.offsetWidth,
436
+ height: g.offsetHeight
437
+ });
438
+ }), /* @__PURE__ */ _(n.div, {
439
+ "data-state": Q(x),
440
+ "data-orientation": u.orientation,
441
+ ...c,
442
+ ref: d,
443
+ style: {
444
+ pointerEvents: !x && u.isRootMenu ? "none" : void 0,
445
+ "--radix-navigation-menu-viewport-width": y,
446
+ "--radix-navigation-menu-viewport-height": b,
447
+ ...c.style
448
+ },
449
+ onPointerEnter: r(e.onPointerEnter, u.onContentEnter),
450
+ onPointerLeave: r(e.onPointerLeave, $(u.onContentLeave)),
451
+ children: Array.from(f.items).map(([e, { ref: n, forceMount: r, ...a }]) => {
452
+ let o = S === e;
453
+ return /* @__PURE__ */ _(t, {
454
+ present: r || o,
455
+ children: /* @__PURE__ */ _(q, {
456
+ ...a,
457
+ ref: i(n, (e) => {
458
+ o && e && v(e);
459
+ })
460
+ })
461
+ }, e);
462
+ })
463
+ });
464
+ }), me = "FocusGroup", he = h.forwardRef((e, t) => {
465
+ let { __scopeNavigationMenu: r, ...i } = e, a = M(me, r);
466
+ return /* @__PURE__ */ _(O.Provider, {
467
+ scope: r,
468
+ children: /* @__PURE__ */ _(O.Slot, {
469
+ scope: r,
470
+ children: /* @__PURE__ */ _(n.div, {
471
+ dir: a.dir,
472
+ ...i,
473
+ ref: t
474
+ })
475
+ })
476
+ });
477
+ }), ge = [
478
+ "ArrowRight",
479
+ "ArrowLeft",
480
+ "ArrowUp",
481
+ "ArrowDown"
482
+ ], _e = "FocusGroupItem", ve = h.forwardRef((e, t) => {
483
+ let { __scopeNavigationMenu: i, ...a } = e, o = k(i), s = M(_e, i);
484
+ return /* @__PURE__ */ _(O.ItemSlot, {
485
+ scope: i,
486
+ children: /* @__PURE__ */ _(n.button, {
487
+ ...a,
488
+ ref: t,
489
+ onKeyDown: r(e.onKeyDown, (e) => {
490
+ if ([
491
+ "Home",
492
+ "End",
493
+ ...ge
494
+ ].includes(e.key)) {
495
+ let t = o().map((e) => e.ref.current);
496
+ if ([
497
+ s.dir === "rtl" ? "ArrowRight" : "ArrowLeft",
498
+ "ArrowUp",
499
+ "End"
500
+ ].includes(e.key) && t.reverse(), ge.includes(e.key)) {
501
+ let n = t.indexOf(e.currentTarget);
502
+ t = t.slice(n + 1);
503
+ }
504
+ setTimeout(() => X(t)), e.preventDefault();
505
+ }
506
+ })
507
+ })
508
+ });
509
+ });
510
+ function Y(e) {
511
+ let t = [], n = document.createTreeWalker(e, NodeFilter.SHOW_ELEMENT, { acceptNode: (e) => {
512
+ let t = e.tagName === "INPUT" && e.type === "hidden";
513
+ return e.disabled || e.hidden || t ? NodeFilter.FILTER_SKIP : e.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
514
+ } });
515
+ for (; n.nextNode();) t.push(n.currentNode);
516
+ return t;
517
+ }
518
+ function X(e) {
519
+ let t = document.activeElement;
520
+ return e.some((e) => e === t ? !0 : (e.focus(), document.activeElement !== t));
521
+ }
522
+ function ye(e) {
523
+ return e.forEach((e) => {
524
+ e.dataset.tabindex = e.getAttribute("tabindex") || "", e.setAttribute("tabindex", "-1");
525
+ }), () => {
526
+ e.forEach((e) => {
527
+ let t = e.dataset.tabindex;
528
+ e.setAttribute("tabindex", t);
529
+ });
530
+ };
531
+ }
532
+ function Z(e, t) {
533
+ let n = c(t);
534
+ p(() => {
535
+ let t = 0;
536
+ if (e) {
537
+ let r = new ResizeObserver(() => {
538
+ cancelAnimationFrame(t), t = window.requestAnimationFrame(n);
539
+ });
540
+ return r.observe(e), () => {
541
+ window.cancelAnimationFrame(t), r.unobserve(e);
542
+ };
543
+ }
544
+ }, [e, n]);
545
+ }
546
+ function Q(e) {
547
+ return e ? "open" : "closed";
548
+ }
549
+ function be(e, t) {
550
+ return `${e}-trigger-${t}`;
551
+ }
552
+ function xe(e, t) {
553
+ return `${e}-content-${t}`;
554
+ }
555
+ function $(e) {
556
+ return (t) => t.pointerType === "mouse" ? e(t) : void 0;
557
+ }
558
+ var Se = N, Ce = oe, we = L, Te = z, Ee = V, De = U, Oe = G, ke = fe;
559
+ //#endregion
560
+ export { Oe as Content, De as Indicator, we as Item, Ee as Link, Ce as List, C as Root, Se as Root2, Te as Trigger, b as VISUALLY_HIDDEN_STYLES, ke as Viewport };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-navigation-menu.js","names":[],"sources":["../../../src/primitives/react-visually-hidden.js","../../../src/primitives/react-navigation-menu.js"],"sourcesContent":["// @ts-nocheck\n/**\n * Vendored from @radix-ui/react-visually-hidden (compiled ESM)\n * @see ./LICENSE\n */\n\n// src/visually-hidden.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"./_internal/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar VISUALLY_HIDDEN_STYLES = Object.freeze({\n // See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss\n position: \"absolute\",\n border: 0,\n width: 1,\n height: 1,\n padding: 0,\n margin: -1,\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\"\n});\nvar NAME = \"VisuallyHidden\";\nvar VisuallyHidden = React.forwardRef(\n (props, forwardedRef) => {\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...props,\n ref: forwardedRef,\n style: { ...VISUALLY_HIDDEN_STYLES, ...props.style }\n }\n );\n }\n);\nVisuallyHidden.displayName = NAME;\nvar Root = VisuallyHidden;\nexport {\n Root,\n VISUALLY_HIDDEN_STYLES,\n VisuallyHidden\n};\n","// @ts-nocheck\n/**\n * Vendored from @radix-ui/react-navigation-menu (compiled ESM)\n * @see ./LICENSE\n */\n\n\"use client\";\n\n// src/navigation-menu.tsx\nimport * as React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { createContextScope } from \"./_internal/react-context\";\nimport { composeEventHandlers } from \"./_internal/primitive\";\nimport { Primitive, dispatchDiscreteCustomEvent } from \"./_internal/react-primitive\";\nimport { useControllableState } from \"./_internal/react-use-controllable-state\";\nimport { composeRefs, useComposedRefs } from \"./_internal/react-compose-refs\";\nimport { useDirection } from \"./_internal/react-direction\";\nimport { Presence } from \"./_internal/react-presence\";\nimport { useId } from \"./_internal/react-id\";\nimport { createCollection } from \"./_internal/react-collection\";\nimport { DismissableLayer } from \"./_internal/react-dismissable-layer\";\nimport { usePrevious } from \"./_internal/react-use-previous\";\nimport { useLayoutEffect } from \"./_internal/react-use-layout-effect\";\nimport { useCallbackRef } from \"./_internal/react-use-callback-ref\";\nimport * as VisuallyHiddenPrimitive from \"./react-visually-hidden\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar NAVIGATION_MENU_NAME = \"NavigationMenu\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(NAVIGATION_MENU_NAME);\nvar [FocusGroupCollection, useFocusGroupCollection, createFocusGroupCollectionScope] = createCollection(NAVIGATION_MENU_NAME);\nvar [createNavigationMenuContext, createNavigationMenuScope] = createContextScope(\n NAVIGATION_MENU_NAME,\n [createCollectionScope, createFocusGroupCollectionScope]\n);\nvar [NavigationMenuProviderImpl, useNavigationMenuContext] = createNavigationMenuContext(NAVIGATION_MENU_NAME);\nvar [ViewportContentProvider, useViewportContentContext] = createNavigationMenuContext(NAVIGATION_MENU_NAME);\nvar NavigationMenu = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeNavigationMenu,\n value: valueProp,\n onValueChange,\n defaultValue,\n delayDuration = 200,\n skipDelayDuration = 300,\n orientation = \"horizontal\",\n dir,\n ...NavigationMenuProps\n } = props;\n const [navigationMenu, setNavigationMenu] = React.useState(null);\n const composedRef = useComposedRefs(forwardedRef, (node) => setNavigationMenu(node));\n const direction = useDirection(dir);\n const openTimerRef = React.useRef(0);\n const closeTimerRef = React.useRef(0);\n const skipDelayTimerRef = React.useRef(0);\n const [isOpenDelayed, setIsOpenDelayed] = React.useState(true);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: (value2) => {\n const isOpen = value2 !== \"\";\n const hasSkipDelayDuration = skipDelayDuration > 0;\n if (isOpen) {\n window.clearTimeout(skipDelayTimerRef.current);\n if (hasSkipDelayDuration) setIsOpenDelayed(false);\n } else {\n window.clearTimeout(skipDelayTimerRef.current);\n skipDelayTimerRef.current = window.setTimeout(\n () => setIsOpenDelayed(true),\n skipDelayDuration\n );\n }\n onValueChange?.(value2);\n },\n defaultProp: defaultValue ?? \"\",\n caller: NAVIGATION_MENU_NAME\n });\n const startCloseTimer = React.useCallback(() => {\n window.clearTimeout(closeTimerRef.current);\n closeTimerRef.current = window.setTimeout(() => setValue(\"\"), 150);\n }, [setValue]);\n const handleOpen = React.useCallback(\n (itemValue) => {\n window.clearTimeout(closeTimerRef.current);\n setValue(itemValue);\n },\n [setValue]\n );\n const handleDelayedOpen = React.useCallback(\n (itemValue) => {\n const isOpenItem = value === itemValue;\n if (isOpenItem) {\n window.clearTimeout(closeTimerRef.current);\n } else {\n openTimerRef.current = window.setTimeout(() => {\n window.clearTimeout(closeTimerRef.current);\n setValue(itemValue);\n }, delayDuration);\n }\n },\n [value, setValue, delayDuration]\n );\n React.useEffect(() => {\n return () => {\n window.clearTimeout(openTimerRef.current);\n window.clearTimeout(closeTimerRef.current);\n window.clearTimeout(skipDelayTimerRef.current);\n };\n }, []);\n return /* @__PURE__ */ jsx(\n NavigationMenuProvider,\n {\n scope: __scopeNavigationMenu,\n isRootMenu: true,\n value,\n dir: direction,\n orientation,\n rootNavigationMenu: navigationMenu,\n onTriggerEnter: (itemValue) => {\n window.clearTimeout(openTimerRef.current);\n if (isOpenDelayed) handleDelayedOpen(itemValue);\n else handleOpen(itemValue);\n },\n onTriggerLeave: () => {\n window.clearTimeout(openTimerRef.current);\n startCloseTimer();\n },\n onContentEnter: () => window.clearTimeout(closeTimerRef.current),\n onContentLeave: startCloseTimer,\n onItemSelect: (itemValue) => {\n setValue((prevValue) => prevValue === itemValue ? \"\" : itemValue);\n },\n onItemDismiss: () => setValue(\"\"),\n children: /* @__PURE__ */ jsx(\n Primitive.nav,\n {\n \"aria-label\": \"Main\",\n \"data-orientation\": orientation,\n dir: direction,\n ...NavigationMenuProps,\n ref: composedRef\n }\n )\n }\n );\n }\n);\nNavigationMenu.displayName = NAVIGATION_MENU_NAME;\nvar SUB_NAME = \"NavigationMenuSub\";\nvar NavigationMenuSub = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeNavigationMenu,\n value: valueProp,\n onValueChange,\n defaultValue,\n orientation = \"horizontal\",\n ...subProps\n } = props;\n const context = useNavigationMenuContext(SUB_NAME, __scopeNavigationMenu);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue ?? \"\",\n caller: SUB_NAME\n });\n return /* @__PURE__ */ jsx(\n NavigationMenuProvider,\n {\n scope: __scopeNavigationMenu,\n isRootMenu: false,\n value,\n dir: context.dir,\n orientation,\n rootNavigationMenu: context.rootNavigationMenu,\n onTriggerEnter: (itemValue) => setValue(itemValue),\n onItemSelect: (itemValue) => setValue(itemValue),\n onItemDismiss: () => setValue(\"\"),\n children: /* @__PURE__ */ jsx(Primitive.div, { \"data-orientation\": orientation, ...subProps, ref: forwardedRef })\n }\n );\n }\n);\nNavigationMenuSub.displayName = SUB_NAME;\nvar NavigationMenuProvider = (props) => {\n const {\n scope,\n isRootMenu,\n rootNavigationMenu,\n dir,\n orientation,\n children,\n value,\n onItemSelect,\n onItemDismiss,\n onTriggerEnter,\n onTriggerLeave,\n onContentEnter,\n onContentLeave\n } = props;\n const [viewport, setViewport] = React.useState(null);\n const [viewportContent, setViewportContent] = React.useState(/* @__PURE__ */ new Map());\n const [indicatorTrack, setIndicatorTrack] = React.useState(null);\n return /* @__PURE__ */ jsx(\n NavigationMenuProviderImpl,\n {\n scope,\n isRootMenu,\n rootNavigationMenu,\n value,\n previousValue: usePrevious(value),\n baseId: useId(),\n dir,\n orientation,\n viewport,\n onViewportChange: setViewport,\n indicatorTrack,\n onIndicatorTrackChange: setIndicatorTrack,\n onTriggerEnter: useCallbackRef(onTriggerEnter),\n onTriggerLeave: useCallbackRef(onTriggerLeave),\n onContentEnter: useCallbackRef(onContentEnter),\n onContentLeave: useCallbackRef(onContentLeave),\n onItemSelect: useCallbackRef(onItemSelect),\n onItemDismiss: useCallbackRef(onItemDismiss),\n onViewportContentChange: React.useCallback((contentValue, contentData) => {\n setViewportContent((prevContent) => {\n prevContent.set(contentValue, contentData);\n return new Map(prevContent);\n });\n }, []),\n onViewportContentRemove: React.useCallback((contentValue) => {\n setViewportContent((prevContent) => {\n if (!prevContent.has(contentValue)) return prevContent;\n prevContent.delete(contentValue);\n return new Map(prevContent);\n });\n }, []),\n children: /* @__PURE__ */ jsx(Collection.Provider, { scope, children: /* @__PURE__ */ jsx(ViewportContentProvider, { scope, items: viewportContent, children }) })\n }\n );\n};\nvar LIST_NAME = \"NavigationMenuList\";\nvar NavigationMenuList = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeNavigationMenu, ...listProps } = props;\n const context = useNavigationMenuContext(LIST_NAME, __scopeNavigationMenu);\n const list = /* @__PURE__ */ jsx(Primitive.ul, { \"data-orientation\": context.orientation, ...listProps, ref: forwardedRef });\n return /* @__PURE__ */ jsx(Primitive.div, { style: { position: \"relative\" }, ref: context.onIndicatorTrackChange, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: __scopeNavigationMenu, children: context.isRootMenu ? /* @__PURE__ */ jsx(FocusGroup, { asChild: true, children: list }) : list }) });\n }\n);\nNavigationMenuList.displayName = LIST_NAME;\nvar ITEM_NAME = \"NavigationMenuItem\";\nvar [NavigationMenuItemContextProvider, useNavigationMenuItemContext] = createNavigationMenuContext(ITEM_NAME);\nvar NavigationMenuItem = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeNavigationMenu, value: valueProp, ...itemProps } = props;\n const autoValue = useId();\n const value = valueProp || autoValue || \"LEGACY_REACT_AUTO_VALUE\";\n const contentRef = React.useRef(null);\n const triggerRef = React.useRef(null);\n const focusProxyRef = React.useRef(null);\n const restoreContentTabOrderRef = React.useRef(() => {\n });\n const wasEscapeCloseRef = React.useRef(false);\n const handleContentEntry = React.useCallback((side = \"start\") => {\n if (contentRef.current) {\n restoreContentTabOrderRef.current();\n const candidates = getTabbableCandidates(contentRef.current);\n if (candidates.length) focusFirst(side === \"start\" ? candidates : candidates.reverse());\n }\n }, []);\n const handleContentExit = React.useCallback(() => {\n if (contentRef.current) {\n const candidates = getTabbableCandidates(contentRef.current);\n if (candidates.length) restoreContentTabOrderRef.current = removeFromTabOrder(candidates);\n }\n }, []);\n return /* @__PURE__ */ jsx(\n NavigationMenuItemContextProvider,\n {\n scope: __scopeNavigationMenu,\n value,\n triggerRef,\n contentRef,\n focusProxyRef,\n wasEscapeCloseRef,\n onEntryKeyDown: handleContentEntry,\n onFocusProxyEnter: handleContentEntry,\n onRootContentClose: handleContentExit,\n onContentFocusOutside: handleContentExit,\n children: /* @__PURE__ */ jsx(Primitive.li, { ...itemProps, ref: forwardedRef })\n }\n );\n }\n);\nNavigationMenuItem.displayName = ITEM_NAME;\nvar TRIGGER_NAME = \"NavigationMenuTrigger\";\nvar NavigationMenuTrigger = React.forwardRef((props, forwardedRef) => {\n const { __scopeNavigationMenu, disabled, ...triggerProps } = props;\n const context = useNavigationMenuContext(TRIGGER_NAME, props.__scopeNavigationMenu);\n const itemContext = useNavigationMenuItemContext(TRIGGER_NAME, props.__scopeNavigationMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(ref, itemContext.triggerRef, forwardedRef);\n const triggerId = makeTriggerId(context.baseId, itemContext.value);\n const contentId = makeContentId(context.baseId, itemContext.value);\n const hasPointerMoveOpenedRef = React.useRef(false);\n const wasClickCloseRef = React.useRef(false);\n const open = itemContext.value === context.value;\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(Collection.ItemSlot, { scope: __scopeNavigationMenu, value: itemContext.value, children: /* @__PURE__ */ jsx(FocusGroupItem, { asChild: true, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n id: triggerId,\n disabled,\n \"data-disabled\": disabled ? \"\" : void 0,\n \"data-state\": getOpenState(open),\n \"aria-expanded\": open,\n \"aria-controls\": contentId,\n ...triggerProps,\n ref: composedRefs,\n onPointerEnter: composeEventHandlers(props.onPointerEnter, () => {\n wasClickCloseRef.current = false;\n itemContext.wasEscapeCloseRef.current = false;\n }),\n onPointerMove: composeEventHandlers(\n props.onPointerMove,\n whenMouse(() => {\n if (disabled || wasClickCloseRef.current || itemContext.wasEscapeCloseRef.current || hasPointerMoveOpenedRef.current)\n return;\n context.onTriggerEnter(itemContext.value);\n hasPointerMoveOpenedRef.current = true;\n })\n ),\n onPointerLeave: composeEventHandlers(\n props.onPointerLeave,\n whenMouse(() => {\n if (disabled) return;\n context.onTriggerLeave();\n hasPointerMoveOpenedRef.current = false;\n })\n ),\n onClick: composeEventHandlers(props.onClick, () => {\n context.onItemSelect(itemContext.value);\n wasClickCloseRef.current = open;\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n const verticalEntryKey = context.dir === \"rtl\" ? \"ArrowLeft\" : \"ArrowRight\";\n const entryKey = { horizontal: \"ArrowDown\", vertical: verticalEntryKey }[context.orientation];\n if (open && event.key === entryKey) {\n itemContext.onEntryKeyDown();\n event.preventDefault();\n }\n })\n }\n ) }) }),\n open && /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n VisuallyHiddenPrimitive.Root,\n {\n \"aria-hidden\": true,\n tabIndex: 0,\n ref: itemContext.focusProxyRef,\n onFocus: (event) => {\n const content = itemContext.contentRef.current;\n const prevFocusedElement = event.relatedTarget;\n const wasTriggerFocused = prevFocusedElement === ref.current;\n const wasFocusFromContent = content?.contains(prevFocusedElement);\n if (wasTriggerFocused || !wasFocusFromContent) {\n itemContext.onFocusProxyEnter(wasTriggerFocused ? \"start\" : \"end\");\n }\n }\n }\n ),\n context.viewport && /* @__PURE__ */ jsx(\"span\", { \"aria-owns\": contentId })\n ] })\n ] });\n});\nNavigationMenuTrigger.displayName = TRIGGER_NAME;\nvar LINK_NAME = \"NavigationMenuLink\";\nvar LINK_SELECT = \"navigationMenu.linkSelect\";\nvar NavigationMenuLink = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeNavigationMenu, active, onSelect, ...linkProps } = props;\n return /* @__PURE__ */ jsx(FocusGroupItem, { asChild: true, children: /* @__PURE__ */ jsx(\n Primitive.a,\n {\n \"data-active\": active ? \"\" : void 0,\n \"aria-current\": active ? \"page\" : void 0,\n ...linkProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(\n props.onClick,\n (event) => {\n const target = event.target;\n const linkSelectEvent = new CustomEvent(LINK_SELECT, {\n bubbles: true,\n cancelable: true\n });\n target.addEventListener(LINK_SELECT, (event2) => onSelect?.(event2), { once: true });\n dispatchDiscreteCustomEvent(target, linkSelectEvent);\n if (!linkSelectEvent.defaultPrevented && !event.metaKey) {\n const rootContentDismissEvent = new CustomEvent(ROOT_CONTENT_DISMISS, {\n bubbles: true,\n cancelable: true\n });\n dispatchDiscreteCustomEvent(target, rootContentDismissEvent);\n }\n },\n { checkForDefaultPrevented: false }\n )\n }\n ) });\n }\n);\nNavigationMenuLink.displayName = LINK_NAME;\nvar INDICATOR_NAME = \"NavigationMenuIndicator\";\nvar NavigationMenuIndicator = React.forwardRef((props, forwardedRef) => {\n const { forceMount, ...indicatorProps } = props;\n const context = useNavigationMenuContext(INDICATOR_NAME, props.__scopeNavigationMenu);\n const isVisible = Boolean(context.value);\n return context.indicatorTrack ? ReactDOM.createPortal(\n /* @__PURE__ */ jsx(Presence, { present: forceMount || isVisible, children: /* @__PURE__ */ jsx(NavigationMenuIndicatorImpl, { ...indicatorProps, ref: forwardedRef }) }),\n context.indicatorTrack\n ) : null;\n});\nNavigationMenuIndicator.displayName = INDICATOR_NAME;\nvar NavigationMenuIndicatorImpl = React.forwardRef((props, forwardedRef) => {\n const { __scopeNavigationMenu, ...indicatorProps } = props;\n const context = useNavigationMenuContext(INDICATOR_NAME, __scopeNavigationMenu);\n const getItems = useCollection(__scopeNavigationMenu);\n const [activeTrigger, setActiveTrigger] = React.useState(\n null\n );\n const [position, setPosition] = React.useState(null);\n const isHorizontal = context.orientation === \"horizontal\";\n const isVisible = Boolean(context.value);\n React.useEffect(() => {\n const items = getItems();\n const triggerNode = items.find((item) => item.value === context.value)?.ref.current;\n if (triggerNode) setActiveTrigger(triggerNode);\n }, [getItems, context.value]);\n const handlePositionChange = () => {\n if (activeTrigger) {\n setPosition({\n size: isHorizontal ? activeTrigger.offsetWidth : activeTrigger.offsetHeight,\n offset: isHorizontal ? activeTrigger.offsetLeft : activeTrigger.offsetTop\n });\n }\n };\n useResizeObserver(activeTrigger, handlePositionChange);\n useResizeObserver(context.indicatorTrack, handlePositionChange);\n return position ? /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"aria-hidden\": true,\n \"data-state\": isVisible ? \"visible\" : \"hidden\",\n \"data-orientation\": context.orientation,\n ...indicatorProps,\n ref: forwardedRef,\n style: {\n position: \"absolute\",\n ...isHorizontal ? {\n left: 0,\n width: position.size + \"px\",\n transform: `translateX(${position.offset}px)`\n } : {\n top: 0,\n height: position.size + \"px\",\n transform: `translateY(${position.offset}px)`\n },\n ...indicatorProps.style\n }\n }\n ) : null;\n});\nvar CONTENT_NAME = \"NavigationMenuContent\";\nvar NavigationMenuContent = React.forwardRef((props, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = useNavigationMenuContext(CONTENT_NAME, props.__scopeNavigationMenu);\n const itemContext = useNavigationMenuItemContext(CONTENT_NAME, props.__scopeNavigationMenu);\n const composedRefs = useComposedRefs(itemContext.contentRef, forwardedRef);\n const open = itemContext.value === context.value;\n const commonProps = {\n value: itemContext.value,\n triggerRef: itemContext.triggerRef,\n focusProxyRef: itemContext.focusProxyRef,\n wasEscapeCloseRef: itemContext.wasEscapeCloseRef,\n onContentFocusOutside: itemContext.onContentFocusOutside,\n onRootContentClose: itemContext.onRootContentClose,\n ...contentProps\n };\n return !context.viewport ? /* @__PURE__ */ jsx(Presence, { present: forceMount || open, children: /* @__PURE__ */ jsx(\n NavigationMenuContentImpl,\n {\n \"data-state\": getOpenState(open),\n ...commonProps,\n ref: composedRefs,\n onPointerEnter: composeEventHandlers(props.onPointerEnter, context.onContentEnter),\n onPointerLeave: composeEventHandlers(\n props.onPointerLeave,\n whenMouse(context.onContentLeave)\n ),\n style: {\n // Prevent interaction when animating out\n pointerEvents: !open && context.isRootMenu ? \"none\" : void 0,\n ...commonProps.style\n }\n }\n ) }) : /* @__PURE__ */ jsx(ViewportContentMounter, { forceMount, ...commonProps, ref: composedRefs });\n});\nNavigationMenuContent.displayName = CONTENT_NAME;\nvar ViewportContentMounter = React.forwardRef((props, forwardedRef) => {\n const context = useNavigationMenuContext(CONTENT_NAME, props.__scopeNavigationMenu);\n const { onViewportContentChange, onViewportContentRemove } = context;\n useLayoutEffect(() => {\n onViewportContentChange(props.value, {\n ref: forwardedRef,\n ...props\n });\n }, [props, forwardedRef, onViewportContentChange]);\n useLayoutEffect(() => {\n return () => onViewportContentRemove(props.value);\n }, [props.value, onViewportContentRemove]);\n return null;\n});\nvar ROOT_CONTENT_DISMISS = \"navigationMenu.rootContentDismiss\";\nvar NavigationMenuContentImpl = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeNavigationMenu,\n value,\n triggerRef,\n focusProxyRef,\n wasEscapeCloseRef,\n onRootContentClose,\n onContentFocusOutside,\n ...contentProps\n } = props;\n const context = useNavigationMenuContext(CONTENT_NAME, __scopeNavigationMenu);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const getItems = useCollection(__scopeNavigationMenu);\n const prevMotionAttributeRef = React.useRef(null);\n const { onItemDismiss } = context;\n React.useEffect(() => {\n const content = ref.current;\n if (context.isRootMenu && content) {\n const handleClose = () => {\n onItemDismiss();\n onRootContentClose();\n if (content.contains(document.activeElement)) triggerRef.current?.focus();\n };\n content.addEventListener(ROOT_CONTENT_DISMISS, handleClose);\n return () => content.removeEventListener(ROOT_CONTENT_DISMISS, handleClose);\n }\n }, [context.isRootMenu, props.value, triggerRef, onItemDismiss, onRootContentClose]);\n const motionAttribute = React.useMemo(() => {\n const items = getItems();\n const values = items.map((item) => item.value);\n if (context.dir === \"rtl\") values.reverse();\n const index = values.indexOf(context.value);\n const prevIndex = values.indexOf(context.previousValue);\n const isSelected = value === context.value;\n const wasSelected = prevIndex === values.indexOf(value);\n if (!isSelected && !wasSelected) return prevMotionAttributeRef.current;\n const attribute = (() => {\n if (index !== prevIndex) {\n if (isSelected && prevIndex !== -1) return index > prevIndex ? \"from-end\" : \"from-start\";\n if (wasSelected && index !== -1) return index > prevIndex ? \"to-start\" : \"to-end\";\n }\n return null;\n })();\n prevMotionAttributeRef.current = attribute;\n return attribute;\n }, [context.previousValue, context.value, context.dir, getItems, value]);\n return /* @__PURE__ */ jsx(FocusGroup, { asChild: true, children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n id: contentId,\n \"aria-labelledby\": triggerId,\n \"data-motion\": motionAttribute,\n \"data-orientation\": context.orientation,\n ...contentProps,\n ref: composedRefs,\n disableOutsidePointerEvents: false,\n onDismiss: () => {\n const rootContentDismissEvent = new Event(ROOT_CONTENT_DISMISS, {\n bubbles: true,\n cancelable: true\n });\n ref.current?.dispatchEvent(rootContentDismissEvent);\n },\n onFocusOutside: composeEventHandlers(props.onFocusOutside, (event) => {\n onContentFocusOutside();\n const target = event.target;\n if (context.rootNavigationMenu?.contains(target)) event.preventDefault();\n }),\n onPointerDownOutside: composeEventHandlers(props.onPointerDownOutside, (event) => {\n const target = event.target;\n const isTrigger = getItems().some((item) => item.ref.current?.contains(target));\n const isRootViewport = context.isRootMenu && context.viewport?.contains(target);\n if (isTrigger || isRootViewport || !context.isRootMenu) event.preventDefault();\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n const isMetaKey = event.altKey || event.ctrlKey || event.metaKey;\n const isTabKey = event.key === \"Tab\" && !isMetaKey;\n if (isTabKey) {\n const candidates = getTabbableCandidates(event.currentTarget);\n const focusedElement = document.activeElement;\n const index = candidates.findIndex((candidate) => candidate === focusedElement);\n const isMovingBackwards = event.shiftKey;\n const nextCandidates = isMovingBackwards ? candidates.slice(0, index).reverse() : candidates.slice(index + 1, candidates.length);\n if (focusFirst(nextCandidates)) {\n event.preventDefault();\n } else {\n focusProxyRef.current?.focus();\n }\n }\n }),\n onEscapeKeyDown: composeEventHandlers(props.onEscapeKeyDown, (_event) => {\n wasEscapeCloseRef.current = true;\n })\n }\n ) });\n});\nvar VIEWPORT_NAME = \"NavigationMenuViewport\";\nvar NavigationMenuViewport = React.forwardRef((props, forwardedRef) => {\n const { forceMount, ...viewportProps } = props;\n const context = useNavigationMenuContext(VIEWPORT_NAME, props.__scopeNavigationMenu);\n const open = Boolean(context.value);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || open, children: /* @__PURE__ */ jsx(NavigationMenuViewportImpl, { ...viewportProps, ref: forwardedRef }) });\n});\nNavigationMenuViewport.displayName = VIEWPORT_NAME;\nvar NavigationMenuViewportImpl = React.forwardRef((props, forwardedRef) => {\n const { __scopeNavigationMenu, children, ...viewportImplProps } = props;\n const context = useNavigationMenuContext(VIEWPORT_NAME, __scopeNavigationMenu);\n const composedRefs = useComposedRefs(forwardedRef, context.onViewportChange);\n const viewportContentContext = useViewportContentContext(\n CONTENT_NAME,\n props.__scopeNavigationMenu\n );\n const [size, setSize] = React.useState(null);\n const [content, setContent] = React.useState(null);\n const viewportWidth = size ? size?.width + \"px\" : void 0;\n const viewportHeight = size ? size?.height + \"px\" : void 0;\n const open = Boolean(context.value);\n const activeContentValue = open ? context.value : context.previousValue;\n const handleSizeChange = () => {\n if (content) setSize({ width: content.offsetWidth, height: content.offsetHeight });\n };\n useResizeObserver(content, handleSizeChange);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getOpenState(open),\n \"data-orientation\": context.orientation,\n ...viewportImplProps,\n ref: composedRefs,\n style: {\n // Prevent interaction when animating out\n pointerEvents: !open && context.isRootMenu ? \"none\" : void 0,\n [\"--radix-navigation-menu-viewport-width\"]: viewportWidth,\n [\"--radix-navigation-menu-viewport-height\"]: viewportHeight,\n ...viewportImplProps.style\n },\n onPointerEnter: composeEventHandlers(props.onPointerEnter, context.onContentEnter),\n onPointerLeave: composeEventHandlers(props.onPointerLeave, whenMouse(context.onContentLeave)),\n children: Array.from(viewportContentContext.items).map(([value, { ref, forceMount, ...props2 }]) => {\n const isActive = activeContentValue === value;\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isActive, children: /* @__PURE__ */ jsx(\n NavigationMenuContentImpl,\n {\n ...props2,\n ref: composeRefs(ref, (node) => {\n if (isActive && node) setContent(node);\n })\n }\n ) }, value);\n })\n }\n );\n});\nvar FOCUS_GROUP_NAME = \"FocusGroup\";\nvar FocusGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeNavigationMenu, ...groupProps } = props;\n const context = useNavigationMenuContext(FOCUS_GROUP_NAME, __scopeNavigationMenu);\n return /* @__PURE__ */ jsx(FocusGroupCollection.Provider, { scope: __scopeNavigationMenu, children: /* @__PURE__ */ jsx(FocusGroupCollection.Slot, { scope: __scopeNavigationMenu, children: /* @__PURE__ */ jsx(Primitive.div, { dir: context.dir, ...groupProps, ref: forwardedRef }) }) });\n }\n);\nvar ARROW_KEYS = [\"ArrowRight\", \"ArrowLeft\", \"ArrowUp\", \"ArrowDown\"];\nvar FOCUS_GROUP_ITEM_NAME = \"FocusGroupItem\";\nvar FocusGroupItem = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeNavigationMenu, ...groupProps } = props;\n const getItems = useFocusGroupCollection(__scopeNavigationMenu);\n const context = useNavigationMenuContext(FOCUS_GROUP_ITEM_NAME, __scopeNavigationMenu);\n return /* @__PURE__ */ jsx(FocusGroupCollection.ItemSlot, { scope: __scopeNavigationMenu, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n ...groupProps,\n ref: forwardedRef,\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n const isFocusNavigationKey = [\"Home\", \"End\", ...ARROW_KEYS].includes(event.key);\n if (isFocusNavigationKey) {\n let candidateNodes = getItems().map((item) => item.ref.current);\n const prevItemKey = context.dir === \"rtl\" ? \"ArrowRight\" : \"ArrowLeft\";\n const prevKeys = [prevItemKey, \"ArrowUp\", \"End\"];\n if (prevKeys.includes(event.key)) candidateNodes.reverse();\n if (ARROW_KEYS.includes(event.key)) {\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n event.preventDefault();\n }\n })\n }\n ) });\n }\n);\nfunction getTabbableCandidates(container) {\n const nodes = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node) => {\n const isHiddenInput = node.tagName === \"INPUT\" && node.type === \"hidden\";\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n while (walker.nextNode()) nodes.push(walker.currentNode);\n return nodes;\n}\nfunction focusFirst(candidates) {\n const previouslyFocusedElement = document.activeElement;\n return candidates.some((candidate) => {\n if (candidate === previouslyFocusedElement) return true;\n candidate.focus();\n return document.activeElement !== previouslyFocusedElement;\n });\n}\nfunction removeFromTabOrder(candidates) {\n candidates.forEach((candidate) => {\n candidate.dataset.tabindex = candidate.getAttribute(\"tabindex\") || \"\";\n candidate.setAttribute(\"tabindex\", \"-1\");\n });\n return () => {\n candidates.forEach((candidate) => {\n const prevTabIndex = candidate.dataset.tabindex;\n candidate.setAttribute(\"tabindex\", prevTabIndex);\n });\n };\n}\nfunction useResizeObserver(element, onResize) {\n const handleResize = useCallbackRef(onResize);\n useLayoutEffect(() => {\n let rAF = 0;\n if (element) {\n const resizeObserver = new ResizeObserver(() => {\n cancelAnimationFrame(rAF);\n rAF = window.requestAnimationFrame(handleResize);\n });\n resizeObserver.observe(element);\n return () => {\n window.cancelAnimationFrame(rAF);\n resizeObserver.unobserve(element);\n };\n }\n }, [element, handleResize]);\n}\nfunction getOpenState(open) {\n return open ? \"open\" : \"closed\";\n}\nfunction makeTriggerId(baseId, value) {\n return `${baseId}-trigger-${value}`;\n}\nfunction makeContentId(baseId, value) {\n return `${baseId}-content-${value}`;\n}\nfunction whenMouse(handler) {\n return (event) => event.pointerType === \"mouse\" ? handler(event) : void 0;\n}\nvar Root2 = NavigationMenu;\nvar Sub = NavigationMenuSub;\nvar List = NavigationMenuList;\nvar Item = NavigationMenuItem;\nvar Trigger = NavigationMenuTrigger;\nvar Link = NavigationMenuLink;\nvar Indicator = NavigationMenuIndicator;\nvar Content = NavigationMenuContent;\nvar Viewport = NavigationMenuViewport;\nexport {\n Content,\n Indicator,\n Item,\n Link,\n List,\n NavigationMenu,\n NavigationMenuContent,\n NavigationMenuIndicator,\n NavigationMenuItem,\n NavigationMenuLink,\n NavigationMenuList,\n NavigationMenuSub,\n NavigationMenuTrigger,\n NavigationMenuViewport,\n Root2 as Root,\n Sub,\n Trigger,\n Viewport,\n createNavigationMenuScope\n};\n"],"mappings":"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"}