@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 @@
1
+ {"version":3,"file":"react-select.js","names":[],"sources":["../../../src/primitives/react-select.js"],"sourcesContent":["// @ts-nocheck\n/**\n * Vendored from @radix-ui/react-select (compiled ESM)\n * @see ./LICENSE\n */\n\n\"use client\";\n\n// src/select.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { clamp } from \"./_internal/number\";\nimport { composeEventHandlers } from \"./_internal/primitive\";\nimport { createCollection } from \"./_internal/react-collection\";\nimport { useComposedRefs } from \"./_internal/react-compose-refs\";\nimport { createContextScope } from \"./_internal/react-context\";\nimport { useDirection } from \"./_internal/react-direction\";\nimport { DismissableLayer } from \"./_internal/react-dismissable-layer\";\nimport { useFocusGuards } from \"./_internal/react-focus-guards\";\nimport { FocusScope } from \"./_internal/react-focus-scope\";\nimport { useId } from \"./_internal/react-id\";\nimport * as PopperPrimitive from \"./_internal/react-popper\";\nimport { createPopperScope } from \"./_internal/react-popper\";\nimport { Portal as PortalPrimitive } from \"./_internal/react-portal\";\nimport { Primitive } from \"./_internal/react-primitive\";\nimport { createSlot } from \"./react-slot\";\nimport { useCallbackRef } from \"./_internal/react-use-callback-ref\";\nimport { useControllableState } from \"./_internal/react-use-controllable-state\";\nimport { useLayoutEffect } from \"./_internal/react-use-layout-effect\";\nimport { usePrevious } from \"./_internal/react-use-previous\";\nimport { VISUALLY_HIDDEN_STYLES } from \"./react-visually-hidden\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar OPEN_KEYS = [\" \", \"Enter\", \"ArrowUp\", \"ArrowDown\"];\nvar SELECTION_KEYS = [\" \", \"Enter\"];\nvar SELECT_NAME = \"Select\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(SELECT_NAME);\nvar [createSelectContext, createSelectScope] = createContextScope(SELECT_NAME, [\n createCollectionScope,\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar [SelectProvider, useSelectContext] = createSelectContext(SELECT_NAME);\nvar [SelectNativeOptionsProvider, useSelectNativeOptionsContext] = createSelectContext(SELECT_NAME);\nvar Select = (props) => {\n const {\n __scopeSelect,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n value: valueProp,\n defaultValue,\n onValueChange,\n dir,\n name,\n autoComplete,\n disabled,\n required,\n form\n } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const [trigger, setTrigger] = React.useState(null);\n const [valueNode, setValueNode] = React.useState(null);\n const [valueNodeHasChildren, setValueNodeHasChildren] = React.useState(false);\n const direction = useDirection(dir);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: SELECT_NAME\n });\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue,\n onChange: onValueChange,\n caller: SELECT_NAME\n });\n const triggerPointerDownPosRef = React.useRef(null);\n const isFormControl = trigger ? form || !!trigger.closest(\"form\") : true;\n const [nativeOptionsSet, setNativeOptionsSet] = React.useState(/* @__PURE__ */ new Set());\n const nativeSelectKey = Array.from(nativeOptionsSet).map((option) => option.props.value).join(\";\");\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsxs(\n SelectProvider,\n {\n required,\n scope: __scopeSelect,\n trigger,\n onTriggerChange: setTrigger,\n valueNode,\n onValueNodeChange: setValueNode,\n valueNodeHasChildren,\n onValueNodeHasChildrenChange: setValueNodeHasChildren,\n contentId: useId(),\n value,\n onValueChange: setValue,\n open,\n onOpenChange: setOpen,\n dir: direction,\n triggerPointerDownPosRef,\n disabled,\n children: [\n /* @__PURE__ */ jsx(Collection.Provider, { scope: __scopeSelect, children: /* @__PURE__ */ jsx(\n SelectNativeOptionsProvider,\n {\n scope: props.__scopeSelect,\n onNativeOptionAdd: React.useCallback((option) => {\n setNativeOptionsSet((prev) => new Set(prev).add(option));\n }, []),\n onNativeOptionRemove: React.useCallback((option) => {\n setNativeOptionsSet((prev) => {\n const optionsSet = new Set(prev);\n optionsSet.delete(option);\n return optionsSet;\n });\n }, []),\n children\n }\n ) }),\n isFormControl ? /* @__PURE__ */ jsxs(\n SelectBubbleInput,\n {\n \"aria-hidden\": true,\n required,\n tabIndex: -1,\n name,\n autoComplete,\n value,\n onChange: (event) => setValue(event.target.value),\n disabled,\n form,\n children: [\n value === void 0 ? /* @__PURE__ */ jsx(\"option\", { value: \"\" }) : null,\n Array.from(nativeOptionsSet)\n ]\n },\n nativeSelectKey\n ) : null\n ]\n }\n ) });\n};\nSelect.displayName = SELECT_NAME;\nvar TRIGGER_NAME = \"SelectTrigger\";\nvar SelectTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, disabled = false, ...triggerProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const context = useSelectContext(TRIGGER_NAME, __scopeSelect);\n const isDisabled = context.disabled || disabled;\n const composedRefs = useComposedRefs(forwardedRef, context.onTriggerChange);\n const getItems = useCollection(__scopeSelect);\n const pointerTypeRef = React.useRef(\"touch\");\n const [searchRef, handleTypeaheadSearch, resetTypeahead] = useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter((item) => !item.disabled);\n const currentItem = enabledItems.find((item) => item.value === context.value);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem !== void 0) {\n context.onValueChange(nextItem.value);\n }\n });\n const handleOpen = (pointerEvent) => {\n if (!isDisabled) {\n context.onOpenChange(true);\n resetTypeahead();\n }\n if (pointerEvent) {\n context.triggerPointerDownPosRef.current = {\n x: Math.round(pointerEvent.pageX),\n y: Math.round(pointerEvent.pageY)\n };\n }\n };\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"combobox\",\n \"aria-controls\": context.contentId,\n \"aria-expanded\": context.open,\n \"aria-required\": context.required,\n \"aria-autocomplete\": \"none\",\n dir: context.dir,\n \"data-state\": context.open ? \"open\" : \"closed\",\n disabled: isDisabled,\n \"data-disabled\": isDisabled ? \"\" : void 0,\n \"data-placeholder\": shouldShowPlaceholder(context.value) ? \"\" : void 0,\n ...triggerProps,\n ref: composedRefs,\n onClick: composeEventHandlers(triggerProps.onClick, (event) => {\n event.currentTarget.focus();\n if (pointerTypeRef.current !== \"mouse\") {\n handleOpen(event);\n }\n }),\n onPointerDown: composeEventHandlers(triggerProps.onPointerDown, (event) => {\n pointerTypeRef.current = event.pointerType;\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n }\n if (event.button === 0 && event.ctrlKey === false && event.pointerType === \"mouse\") {\n handleOpen(event);\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(triggerProps.onKeyDown, (event) => {\n const isTypingAhead = searchRef.current !== \"\";\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n if (isTypingAhead && event.key === \" \") return;\n if (OPEN_KEYS.includes(event.key)) {\n handleOpen();\n event.preventDefault();\n }\n })\n }\n ) });\n }\n);\nSelectTrigger.displayName = TRIGGER_NAME;\nvar VALUE_NAME = \"SelectValue\";\nvar SelectValue = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, className, style, children, placeholder = \"\", ...valueProps } = props;\n const context = useSelectContext(VALUE_NAME, __scopeSelect);\n const { onValueNodeHasChildrenChange } = context;\n const hasChildren = children !== void 0;\n const composedRefs = useComposedRefs(forwardedRef, context.onValueNodeChange);\n useLayoutEffect(() => {\n onValueNodeHasChildrenChange(hasChildren);\n }, [onValueNodeHasChildrenChange, hasChildren]);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...valueProps,\n ref: composedRefs,\n style: { pointerEvents: \"none\" },\n children: shouldShowPlaceholder(context.value) ? /* @__PURE__ */ jsx(Fragment, { children: placeholder }) : children\n }\n );\n }\n);\nSelectValue.displayName = VALUE_NAME;\nvar ICON_NAME = \"SelectIcon\";\nvar SelectIcon = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, children, ...iconProps } = props;\n return /* @__PURE__ */ jsx(Primitive.span, { \"aria-hidden\": true, ...iconProps, ref: forwardedRef, children: children || \"\\u25BC\" });\n }\n);\nSelectIcon.displayName = ICON_NAME;\nvar PORTAL_NAME = \"SelectPortal\";\nvar SelectPortal = (props) => {\n return /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, ...props });\n};\nSelectPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"SelectContent\";\nvar SelectContent = React.forwardRef(\n (props, forwardedRef) => {\n const context = useSelectContext(CONTENT_NAME, props.__scopeSelect);\n const [fragment, setFragment] = React.useState();\n useLayoutEffect(() => {\n setFragment(new DocumentFragment());\n }, []);\n if (!context.open) {\n const frag = fragment;\n return frag ? ReactDOM.createPortal(\n /* @__PURE__ */ jsx(SelectContentProvider, { scope: props.__scopeSelect, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeSelect, children: /* @__PURE__ */ jsx(\"div\", { children: props.children }) }) }),\n frag\n ) : null;\n }\n return /* @__PURE__ */ jsx(SelectContentImpl, { ...props, ref: forwardedRef });\n }\n);\nSelectContent.displayName = CONTENT_NAME;\nvar CONTENT_MARGIN = 10;\nvar [SelectContentProvider, useSelectContentContext] = createSelectContext(CONTENT_NAME);\nvar CONTENT_IMPL_NAME = \"SelectContentImpl\";\nvar Slot = createSlot(\"SelectContent.RemoveScroll\");\nvar SelectContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSelect,\n position = \"item-aligned\",\n onCloseAutoFocus,\n onEscapeKeyDown,\n onPointerDownOutside,\n //\n // PopperContent props\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions,\n //\n ...contentProps\n } = props;\n const context = useSelectContext(CONTENT_NAME, __scopeSelect);\n const [content, setContent] = React.useState(null);\n const [viewport, setViewport] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));\n const [selectedItem, setSelectedItem] = React.useState(null);\n const [selectedItemText, setSelectedItemText] = React.useState(\n null\n );\n const getItems = useCollection(__scopeSelect);\n const [isPositioned, setIsPositioned] = React.useState(false);\n const firstValidItemFoundRef = React.useRef(false);\n React.useEffect(() => {\n if (content) return hideOthers(content);\n }, [content]);\n useFocusGuards();\n const focusFirst = React.useCallback(\n (candidates) => {\n const [firstItem, ...restItems] = getItems().map((item) => item.ref.current);\n const [lastItem] = restItems.slice(-1);\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate?.scrollIntoView({ block: \"nearest\" });\n if (candidate === firstItem && viewport) viewport.scrollTop = 0;\n if (candidate === lastItem && viewport) viewport.scrollTop = viewport.scrollHeight;\n candidate?.focus();\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n },\n [getItems, viewport]\n );\n const focusSelectedItem = React.useCallback(\n () => focusFirst([selectedItem, content]),\n [focusFirst, selectedItem, content]\n );\n React.useEffect(() => {\n if (isPositioned) {\n focusSelectedItem();\n }\n }, [isPositioned, focusSelectedItem]);\n const { onOpenChange, triggerPointerDownPosRef } = context;\n React.useEffect(() => {\n if (content) {\n let pointerMoveDelta = { x: 0, y: 0 };\n const handlePointerMove = (event) => {\n pointerMoveDelta = {\n x: Math.abs(Math.round(event.pageX) - (triggerPointerDownPosRef.current?.x ?? 0)),\n y: Math.abs(Math.round(event.pageY) - (triggerPointerDownPosRef.current?.y ?? 0))\n };\n };\n const handlePointerUp = (event) => {\n if (pointerMoveDelta.x <= 10 && pointerMoveDelta.y <= 10) {\n event.preventDefault();\n } else {\n if (!content.contains(event.target)) {\n onOpenChange(false);\n }\n }\n document.removeEventListener(\"pointermove\", handlePointerMove);\n triggerPointerDownPosRef.current = null;\n };\n if (triggerPointerDownPosRef.current !== null) {\n document.addEventListener(\"pointermove\", handlePointerMove);\n document.addEventListener(\"pointerup\", handlePointerUp, { capture: true, once: true });\n }\n return () => {\n document.removeEventListener(\"pointermove\", handlePointerMove);\n document.removeEventListener(\"pointerup\", handlePointerUp, { capture: true });\n };\n }\n }, [content, onOpenChange, triggerPointerDownPosRef]);\n React.useEffect(() => {\n const close = () => onOpenChange(false);\n window.addEventListener(\"blur\", close);\n window.addEventListener(\"resize\", close);\n return () => {\n window.removeEventListener(\"blur\", close);\n window.removeEventListener(\"resize\", close);\n };\n }, [onOpenChange]);\n const [searchRef, handleTypeaheadSearch] = useTypeaheadSearch((search) => {\n const enabledItems = getItems().filter((item) => !item.disabled);\n const currentItem = enabledItems.find((item) => item.ref.current === document.activeElement);\n const nextItem = findNextItem(enabledItems, search, currentItem);\n if (nextItem) {\n setTimeout(() => nextItem.ref.current.focus());\n }\n });\n const itemRefCallback = React.useCallback(\n (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItem(node);\n if (isFirstValidItem) firstValidItemFoundRef.current = true;\n }\n },\n [context.value]\n );\n const handleItemLeave = React.useCallback(() => content?.focus(), [content]);\n const itemTextRefCallback = React.useCallback(\n (node, value, disabled) => {\n const isFirstValidItem = !firstValidItemFoundRef.current && !disabled;\n const isSelectedItem = context.value !== void 0 && context.value === value;\n if (isSelectedItem || isFirstValidItem) {\n setSelectedItemText(node);\n }\n },\n [context.value]\n );\n const SelectPosition = position === \"popper\" ? SelectPopperPosition : SelectItemAlignedPosition;\n const popperContentProps = SelectPosition === SelectPopperPosition ? {\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n hideWhenDetached,\n avoidCollisions\n } : {};\n return /* @__PURE__ */ jsx(\n SelectContentProvider,\n {\n scope: __scopeSelect,\n content,\n viewport,\n onViewportChange: setViewport,\n itemRefCallback,\n selectedItem,\n onItemLeave: handleItemLeave,\n itemTextRefCallback,\n focusSelectedItem,\n selectedItemText,\n position,\n isPositioned,\n searchRef,\n children: /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n trapped: context.open,\n onMountAutoFocus: (event) => {\n event.preventDefault();\n },\n onUnmountAutoFocus: composeEventHandlers(onCloseAutoFocus, (event) => {\n context.trigger?.focus({ preventScroll: true });\n event.preventDefault();\n }),\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents: true,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event) => event.preventDefault(),\n onDismiss: () => context.onOpenChange(false),\n children: /* @__PURE__ */ jsx(\n SelectPosition,\n {\n role: \"listbox\",\n id: context.contentId,\n \"data-state\": context.open ? \"open\" : \"closed\",\n dir: context.dir,\n onContextMenu: (event) => event.preventDefault(),\n ...contentProps,\n ...popperContentProps,\n onPlaced: () => setIsPositioned(true),\n ref: composedRefs,\n style: {\n // flex layout so we can place the scroll buttons properly\n display: \"flex\",\n flexDirection: \"column\",\n // reset the outline by default as the content MAY get focused\n outline: \"none\",\n ...contentProps.style\n },\n onKeyDown: composeEventHandlers(contentProps.onKeyDown, (event) => {\n const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n if (event.key === \"Tab\") event.preventDefault();\n if (!isModifierKey && event.key.length === 1) handleTypeaheadSearch(event.key);\n if ([\"ArrowUp\", \"ArrowDown\", \"Home\", \"End\"].includes(event.key)) {\n const items = getItems().filter((item) => !item.disabled);\n let candidateNodes = items.map((item) => item.ref.current);\n if ([\"ArrowUp\", \"End\"].includes(event.key)) {\n candidateNodes = candidateNodes.slice().reverse();\n }\n if ([\"ArrowUp\", \"ArrowDown\"].includes(event.key)) {\n const currentElement = event.target;\n const currentIndex = candidateNodes.indexOf(currentElement);\n candidateNodes = candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n event.preventDefault();\n }\n })\n }\n )\n }\n )\n }\n ) })\n }\n );\n }\n);\nSelectContentImpl.displayName = CONTENT_IMPL_NAME;\nvar ITEM_ALIGNED_POSITION_NAME = \"SelectItemAlignedPosition\";\nvar SelectItemAlignedPosition = React.forwardRef((props, forwardedRef) => {\n const { __scopeSelect, onPlaced, ...popperProps } = props;\n const context = useSelectContext(CONTENT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(CONTENT_NAME, __scopeSelect);\n const [contentWrapper, setContentWrapper] = React.useState(null);\n const [content, setContent] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));\n const getItems = useCollection(__scopeSelect);\n const shouldExpandOnScrollRef = React.useRef(false);\n const shouldRepositionRef = React.useRef(true);\n const { viewport, selectedItem, selectedItemText, focusSelectedItem } = contentContext;\n const position = React.useCallback(() => {\n if (context.trigger && context.valueNode && contentWrapper && content && viewport && selectedItem && selectedItemText) {\n const triggerRect = context.trigger.getBoundingClientRect();\n const contentRect = content.getBoundingClientRect();\n const valueNodeRect = context.valueNode.getBoundingClientRect();\n const itemTextRect = selectedItemText.getBoundingClientRect();\n if (context.dir !== \"rtl\") {\n const itemTextOffset = itemTextRect.left - contentRect.left;\n const left = valueNodeRect.left - itemTextOffset;\n const leftDelta = triggerRect.left - left;\n const minContentWidth = triggerRect.width + leftDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const rightEdge = window.innerWidth - CONTENT_MARGIN;\n const clampedLeft = clamp(left, [\n CONTENT_MARGIN,\n // Prevents the content from going off the starting edge of the\n // viewport. It may still go off the ending edge, but this can be\n // controlled by the user since they may want to manage overflow in a\n // specific way.\n // https://github.com/radix-ui/primitives/issues/2049\n Math.max(CONTENT_MARGIN, rightEdge - contentWidth)\n ]);\n contentWrapper.style.minWidth = minContentWidth + \"px\";\n contentWrapper.style.left = clampedLeft + \"px\";\n } else {\n const itemTextOffset = contentRect.right - itemTextRect.right;\n const right = window.innerWidth - valueNodeRect.right - itemTextOffset;\n const rightDelta = window.innerWidth - triggerRect.right - right;\n const minContentWidth = triggerRect.width + rightDelta;\n const contentWidth = Math.max(minContentWidth, contentRect.width);\n const leftEdge = window.innerWidth - CONTENT_MARGIN;\n const clampedRight = clamp(right, [\n CONTENT_MARGIN,\n Math.max(CONTENT_MARGIN, leftEdge - contentWidth)\n ]);\n contentWrapper.style.minWidth = minContentWidth + \"px\";\n contentWrapper.style.right = clampedRight + \"px\";\n }\n const items = getItems();\n const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;\n const itemsHeight = viewport.scrollHeight;\n const contentStyles = window.getComputedStyle(content);\n const contentBorderTopWidth = parseInt(contentStyles.borderTopWidth, 10);\n const contentPaddingTop = parseInt(contentStyles.paddingTop, 10);\n const contentBorderBottomWidth = parseInt(contentStyles.borderBottomWidth, 10);\n const contentPaddingBottom = parseInt(contentStyles.paddingBottom, 10);\n const fullContentHeight = contentBorderTopWidth + contentPaddingTop + itemsHeight + contentPaddingBottom + contentBorderBottomWidth;\n const minContentHeight = Math.min(selectedItem.offsetHeight * 5, fullContentHeight);\n const viewportStyles = window.getComputedStyle(viewport);\n const viewportPaddingTop = parseInt(viewportStyles.paddingTop, 10);\n const viewportPaddingBottom = parseInt(viewportStyles.paddingBottom, 10);\n const topEdgeToTriggerMiddle = triggerRect.top + triggerRect.height / 2 - CONTENT_MARGIN;\n const triggerMiddleToBottomEdge = availableHeight - topEdgeToTriggerMiddle;\n const selectedItemHalfHeight = selectedItem.offsetHeight / 2;\n const itemOffsetMiddle = selectedItem.offsetTop + selectedItemHalfHeight;\n const contentTopToItemMiddle = contentBorderTopWidth + contentPaddingTop + itemOffsetMiddle;\n const itemMiddleToContentBottom = fullContentHeight - contentTopToItemMiddle;\n const willAlignWithoutTopOverflow = contentTopToItemMiddle <= topEdgeToTriggerMiddle;\n if (willAlignWithoutTopOverflow) {\n const isLastItem = items.length > 0 && selectedItem === items[items.length - 1].ref.current;\n contentWrapper.style.bottom = \"0px\";\n const viewportOffsetBottom = content.clientHeight - viewport.offsetTop - viewport.offsetHeight;\n const clampedTriggerMiddleToBottomEdge = Math.max(\n triggerMiddleToBottomEdge,\n selectedItemHalfHeight + // viewport might have padding bottom, include it to avoid a scrollable viewport\n (isLastItem ? viewportPaddingBottom : 0) + viewportOffsetBottom + contentBorderBottomWidth\n );\n const height = contentTopToItemMiddle + clampedTriggerMiddleToBottomEdge;\n contentWrapper.style.height = height + \"px\";\n } else {\n const isFirstItem = items.length > 0 && selectedItem === items[0].ref.current;\n contentWrapper.style.top = \"0px\";\n const clampedTopEdgeToTriggerMiddle = Math.max(\n topEdgeToTriggerMiddle,\n contentBorderTopWidth + viewport.offsetTop + // viewport might have padding top, include it to avoid a scrollable viewport\n (isFirstItem ? viewportPaddingTop : 0) + selectedItemHalfHeight\n );\n const height = clampedTopEdgeToTriggerMiddle + itemMiddleToContentBottom;\n contentWrapper.style.height = height + \"px\";\n viewport.scrollTop = contentTopToItemMiddle - topEdgeToTriggerMiddle + viewport.offsetTop;\n }\n contentWrapper.style.margin = `${CONTENT_MARGIN}px 0`;\n contentWrapper.style.minHeight = minContentHeight + \"px\";\n contentWrapper.style.maxHeight = availableHeight + \"px\";\n onPlaced?.();\n requestAnimationFrame(() => shouldExpandOnScrollRef.current = true);\n }\n }, [\n getItems,\n context.trigger,\n context.valueNode,\n contentWrapper,\n content,\n viewport,\n selectedItem,\n selectedItemText,\n context.dir,\n onPlaced\n ]);\n useLayoutEffect(() => position(), [position]);\n const [contentZIndex, setContentZIndex] = React.useState();\n useLayoutEffect(() => {\n if (content) setContentZIndex(window.getComputedStyle(content).zIndex);\n }, [content]);\n const handleScrollButtonChange = React.useCallback(\n (node) => {\n if (node && shouldRepositionRef.current === true) {\n position();\n focusSelectedItem?.();\n shouldRepositionRef.current = false;\n }\n },\n [position, focusSelectedItem]\n );\n return /* @__PURE__ */ jsx(\n SelectViewportProvider,\n {\n scope: __scopeSelect,\n contentWrapper,\n shouldExpandOnScrollRef,\n onScrollButtonChange: handleScrollButtonChange,\n children: /* @__PURE__ */ jsx(\n \"div\",\n {\n ref: setContentWrapper,\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n position: \"fixed\",\n zIndex: contentZIndex\n },\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...popperProps,\n ref: composedRefs,\n style: {\n // When we get the height of the content, it includes borders. If we were to set\n // the height without having `boxSizing: 'border-box'` it would be too big.\n boxSizing: \"border-box\",\n // We need to ensure the content doesn't get taller than the wrapper\n maxHeight: \"100%\",\n ...popperProps.style\n }\n }\n )\n }\n )\n }\n );\n});\nSelectItemAlignedPosition.displayName = ITEM_ALIGNED_POSITION_NAME;\nvar POPPER_POSITION_NAME = \"SelectPopperPosition\";\nvar SelectPopperPosition = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeSelect,\n align = \"start\",\n collisionPadding = CONTENT_MARGIN,\n ...popperProps\n } = props;\n const popperScope = usePopperScope(__scopeSelect);\n return /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n ...popperScope,\n ...popperProps,\n ref: forwardedRef,\n align,\n collisionPadding,\n style: {\n // Ensure border-box for floating-ui calculations\n boxSizing: \"border-box\",\n ...popperProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-select-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-select-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-select-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-select-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-select-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n );\n});\nSelectPopperPosition.displayName = POPPER_POSITION_NAME;\nvar [SelectViewportProvider, useSelectViewportContext] = createSelectContext(CONTENT_NAME, {});\nvar VIEWPORT_NAME = \"SelectViewport\";\nvar SelectViewport = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, nonce, ...viewportProps } = props;\n const contentContext = useSelectContentContext(VIEWPORT_NAME, __scopeSelect);\n const viewportContext = useSelectViewportContext(VIEWPORT_NAME, __scopeSelect);\n const composedRefs = useComposedRefs(forwardedRef, contentContext.onViewportChange);\n const prevScrollTopRef = React.useRef(0);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n \"style\",\n {\n dangerouslySetInnerHTML: {\n __html: `[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`\n },\n nonce\n }\n ),\n /* @__PURE__ */ jsx(Collection.Slot, { scope: __scopeSelect, children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-radix-select-viewport\": \"\",\n role: \"presentation\",\n ...viewportProps,\n ref: composedRefs,\n style: {\n // we use position: 'relative' here on the `viewport` so that when we call\n // `selectedItem.offsetTop` in calculations, the offset is relative to the viewport\n // (independent of the scrollUpButton).\n position: \"relative\",\n flex: 1,\n // Viewport should only be scrollable in the vertical direction.\n // This won't work in vertical writing modes, so we'll need to\n // revisit this if/when that is supported\n // https://developer.chrome.com/blog/vertical-form-controls\n overflow: \"hidden auto\",\n ...viewportProps.style\n },\n onScroll: composeEventHandlers(viewportProps.onScroll, (event) => {\n const viewport = event.currentTarget;\n const { contentWrapper, shouldExpandOnScrollRef } = viewportContext;\n if (shouldExpandOnScrollRef?.current && contentWrapper) {\n const scrolledBy = Math.abs(prevScrollTopRef.current - viewport.scrollTop);\n if (scrolledBy > 0) {\n const availableHeight = window.innerHeight - CONTENT_MARGIN * 2;\n const cssMinHeight = parseFloat(contentWrapper.style.minHeight);\n const cssHeight = parseFloat(contentWrapper.style.height);\n const prevHeight = Math.max(cssMinHeight, cssHeight);\n if (prevHeight < availableHeight) {\n const nextHeight = prevHeight + scrolledBy;\n const clampedNextHeight = Math.min(availableHeight, nextHeight);\n const heightDiff = nextHeight - clampedNextHeight;\n contentWrapper.style.height = clampedNextHeight + \"px\";\n if (contentWrapper.style.bottom === \"0px\") {\n viewport.scrollTop = heightDiff > 0 ? heightDiff : 0;\n contentWrapper.style.justifyContent = \"flex-end\";\n }\n }\n }\n }\n prevScrollTopRef.current = viewport.scrollTop;\n })\n }\n ) })\n ] });\n }\n);\nSelectViewport.displayName = VIEWPORT_NAME;\nvar GROUP_NAME = \"SelectGroup\";\nvar [SelectGroupContextProvider, useSelectGroupContext] = createSelectContext(GROUP_NAME);\nvar SelectGroup = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...groupProps } = props;\n const groupId = useId();\n return /* @__PURE__ */ jsx(SelectGroupContextProvider, { scope: __scopeSelect, id: groupId, children: /* @__PURE__ */ jsx(Primitive.div, { role: \"group\", \"aria-labelledby\": groupId, ...groupProps, ref: forwardedRef }) });\n }\n);\nSelectGroup.displayName = GROUP_NAME;\nvar LABEL_NAME = \"SelectLabel\";\nvar SelectLabel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...labelProps } = props;\n const groupContext = useSelectGroupContext(LABEL_NAME, __scopeSelect);\n return /* @__PURE__ */ jsx(Primitive.div, { id: groupContext.id, ...labelProps, ref: forwardedRef });\n }\n);\nSelectLabel.displayName = LABEL_NAME;\nvar ITEM_NAME = \"SelectItem\";\nvar [SelectItemContextProvider, useSelectItemContext] = createSelectContext(ITEM_NAME);\nvar SelectItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSelect,\n value,\n disabled = false,\n textValue: textValueProp,\n ...itemProps\n } = props;\n const context = useSelectContext(ITEM_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_NAME, __scopeSelect);\n const isSelected = context.value === value;\n const [textValue, setTextValue] = React.useState(textValueProp ?? \"\");\n const [isFocused, setIsFocused] = React.useState(false);\n const composedRefs = useComposedRefs(\n forwardedRef,\n (node) => contentContext.itemRefCallback?.(node, value, disabled)\n );\n const textId = useId();\n const pointerTypeRef = React.useRef(\"touch\");\n const handleSelect = () => {\n if (!disabled) {\n context.onValueChange(value);\n context.onOpenChange(false);\n }\n };\n if (value === \"\") {\n throw new Error(\n \"A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.\"\n );\n }\n return /* @__PURE__ */ jsx(\n SelectItemContextProvider,\n {\n scope: __scopeSelect,\n value,\n disabled,\n textId,\n isSelected,\n onItemTextChange: React.useCallback((node) => {\n setTextValue((prevTextValue) => prevTextValue || (node?.textContent ?? \"\").trim());\n }, []),\n children: /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeSelect,\n value,\n disabled,\n textValue,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"option\",\n \"aria-labelledby\": textId,\n \"data-highlighted\": isFocused ? \"\" : void 0,\n \"aria-selected\": isSelected && isFocused,\n \"data-state\": isSelected ? \"checked\" : \"unchecked\",\n \"aria-disabled\": disabled || void 0,\n \"data-disabled\": disabled ? \"\" : void 0,\n tabIndex: disabled ? void 0 : -1,\n ...itemProps,\n ref: composedRefs,\n onFocus: composeEventHandlers(itemProps.onFocus, () => setIsFocused(true)),\n onBlur: composeEventHandlers(itemProps.onBlur, () => setIsFocused(false)),\n onClick: composeEventHandlers(itemProps.onClick, () => {\n if (pointerTypeRef.current !== \"mouse\") handleSelect();\n }),\n onPointerUp: composeEventHandlers(itemProps.onPointerUp, () => {\n if (pointerTypeRef.current === \"mouse\") handleSelect();\n }),\n onPointerDown: composeEventHandlers(itemProps.onPointerDown, (event) => {\n pointerTypeRef.current = event.pointerType;\n }),\n onPointerMove: composeEventHandlers(itemProps.onPointerMove, (event) => {\n pointerTypeRef.current = event.pointerType;\n if (disabled) {\n contentContext.onItemLeave?.();\n } else if (pointerTypeRef.current === \"mouse\") {\n event.currentTarget.focus({ preventScroll: true });\n }\n }),\n onPointerLeave: composeEventHandlers(itemProps.onPointerLeave, (event) => {\n if (event.currentTarget === document.activeElement) {\n contentContext.onItemLeave?.();\n }\n }),\n onKeyDown: composeEventHandlers(itemProps.onKeyDown, (event) => {\n const isTypingAhead = contentContext.searchRef?.current !== \"\";\n if (isTypingAhead && event.key === \" \") return;\n if (SELECTION_KEYS.includes(event.key)) handleSelect();\n if (event.key === \" \") event.preventDefault();\n })\n }\n )\n }\n )\n }\n );\n }\n);\nSelectItem.displayName = ITEM_NAME;\nvar ITEM_TEXT_NAME = \"SelectItemText\";\nvar SelectItemText = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, className, style, ...itemTextProps } = props;\n const context = useSelectContext(ITEM_TEXT_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ITEM_TEXT_NAME, __scopeSelect);\n const itemContext = useSelectItemContext(ITEM_TEXT_NAME, __scopeSelect);\n const nativeOptionsContext = useSelectNativeOptionsContext(ITEM_TEXT_NAME, __scopeSelect);\n const [itemTextNode, setItemTextNode] = React.useState(null);\n const composedRefs = useComposedRefs(\n forwardedRef,\n (node) => setItemTextNode(node),\n itemContext.onItemTextChange,\n (node) => contentContext.itemTextRefCallback?.(node, itemContext.value, itemContext.disabled)\n );\n const textContent = itemTextNode?.textContent;\n const nativeOption = React.useMemo(\n () => /* @__PURE__ */ jsx(\"option\", { value: itemContext.value, disabled: itemContext.disabled, children: textContent }, itemContext.value),\n [itemContext.disabled, itemContext.value, textContent]\n );\n const { onNativeOptionAdd, onNativeOptionRemove } = nativeOptionsContext;\n useLayoutEffect(() => {\n onNativeOptionAdd(nativeOption);\n return () => onNativeOptionRemove(nativeOption);\n }, [onNativeOptionAdd, onNativeOptionRemove, nativeOption]);\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(Primitive.span, { id: itemContext.textId, ...itemTextProps, ref: composedRefs }),\n itemContext.isSelected && context.valueNode && !context.valueNodeHasChildren ? ReactDOM.createPortal(itemTextProps.children, context.valueNode) : null\n ] });\n }\n);\nSelectItemText.displayName = ITEM_TEXT_NAME;\nvar ITEM_INDICATOR_NAME = \"SelectItemIndicator\";\nvar SelectItemIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...itemIndicatorProps } = props;\n const itemContext = useSelectItemContext(ITEM_INDICATOR_NAME, __scopeSelect);\n return itemContext.isSelected ? /* @__PURE__ */ jsx(Primitive.span, { \"aria-hidden\": true, ...itemIndicatorProps, ref: forwardedRef }) : null;\n }\n);\nSelectItemIndicator.displayName = ITEM_INDICATOR_NAME;\nvar SCROLL_UP_BUTTON_NAME = \"SelectScrollUpButton\";\nvar SelectScrollUpButton = React.forwardRef((props, forwardedRef) => {\n const contentContext = useSelectContentContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_UP_BUTTON_NAME, props.__scopeSelect);\n const [canScrollUp, setCanScrollUp] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);\n useLayoutEffect(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const canScrollUp2 = viewport.scrollTop > 0;\n setCanScrollUp(canScrollUp2);\n };\n var handleScroll = handleScroll2;\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return () => viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [contentContext.viewport, contentContext.isPositioned]);\n return canScrollUp ? /* @__PURE__ */ jsx(\n SelectScrollButtonImpl,\n {\n ...props,\n ref: composedRefs,\n onAutoScroll: () => {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop - selectedItem.offsetHeight;\n }\n }\n }\n ) : null;\n});\nSelectScrollUpButton.displayName = SCROLL_UP_BUTTON_NAME;\nvar SCROLL_DOWN_BUTTON_NAME = \"SelectScrollDownButton\";\nvar SelectScrollDownButton = React.forwardRef((props, forwardedRef) => {\n const contentContext = useSelectContentContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const viewportContext = useSelectViewportContext(SCROLL_DOWN_BUTTON_NAME, props.__scopeSelect);\n const [canScrollDown, setCanScrollDown] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, viewportContext.onScrollButtonChange);\n useLayoutEffect(() => {\n if (contentContext.viewport && contentContext.isPositioned) {\n let handleScroll2 = function() {\n const maxScroll = viewport.scrollHeight - viewport.clientHeight;\n const canScrollDown2 = Math.ceil(viewport.scrollTop) < maxScroll;\n setCanScrollDown(canScrollDown2);\n };\n var handleScroll = handleScroll2;\n const viewport = contentContext.viewport;\n handleScroll2();\n viewport.addEventListener(\"scroll\", handleScroll2);\n return () => viewport.removeEventListener(\"scroll\", handleScroll2);\n }\n }, [contentContext.viewport, contentContext.isPositioned]);\n return canScrollDown ? /* @__PURE__ */ jsx(\n SelectScrollButtonImpl,\n {\n ...props,\n ref: composedRefs,\n onAutoScroll: () => {\n const { viewport, selectedItem } = contentContext;\n if (viewport && selectedItem) {\n viewport.scrollTop = viewport.scrollTop + selectedItem.offsetHeight;\n }\n }\n }\n ) : null;\n});\nSelectScrollDownButton.displayName = SCROLL_DOWN_BUTTON_NAME;\nvar SelectScrollButtonImpl = React.forwardRef((props, forwardedRef) => {\n const { __scopeSelect, onAutoScroll, ...scrollIndicatorProps } = props;\n const contentContext = useSelectContentContext(\"SelectScrollButton\", __scopeSelect);\n const autoScrollTimerRef = React.useRef(null);\n const getItems = useCollection(__scopeSelect);\n const clearAutoScrollTimer = React.useCallback(() => {\n if (autoScrollTimerRef.current !== null) {\n window.clearInterval(autoScrollTimerRef.current);\n autoScrollTimerRef.current = null;\n }\n }, []);\n React.useEffect(() => {\n return () => clearAutoScrollTimer();\n }, [clearAutoScrollTimer]);\n useLayoutEffect(() => {\n const activeItem = getItems().find((item) => item.ref.current === document.activeElement);\n activeItem?.ref.current?.scrollIntoView({ block: \"nearest\" });\n }, [getItems]);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"aria-hidden\": true,\n ...scrollIndicatorProps,\n ref: forwardedRef,\n style: { flexShrink: 0, ...scrollIndicatorProps.style },\n onPointerDown: composeEventHandlers(scrollIndicatorProps.onPointerDown, () => {\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n }),\n onPointerMove: composeEventHandlers(scrollIndicatorProps.onPointerMove, () => {\n contentContext.onItemLeave?.();\n if (autoScrollTimerRef.current === null) {\n autoScrollTimerRef.current = window.setInterval(onAutoScroll, 50);\n }\n }),\n onPointerLeave: composeEventHandlers(scrollIndicatorProps.onPointerLeave, () => {\n clearAutoScrollTimer();\n })\n }\n );\n});\nvar SEPARATOR_NAME = \"SelectSeparator\";\nvar SelectSeparator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...separatorProps } = props;\n return /* @__PURE__ */ jsx(Primitive.div, { \"aria-hidden\": true, ...separatorProps, ref: forwardedRef });\n }\n);\nSelectSeparator.displayName = SEPARATOR_NAME;\nvar ARROW_NAME = \"SelectArrow\";\nvar SelectArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSelect, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeSelect);\n const context = useSelectContext(ARROW_NAME, __scopeSelect);\n const contentContext = useSelectContentContext(ARROW_NAME, __scopeSelect);\n return context.open && contentContext.position === \"popper\" ? /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef }) : null;\n }\n);\nSelectArrow.displayName = ARROW_NAME;\nvar BUBBLE_INPUT_NAME = \"SelectBubbleInput\";\nvar SelectBubbleInput = React.forwardRef(\n ({ __scopeSelect, value, ...props }, forwardedRef) => {\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const prevValue = usePrevious(value);\n React.useEffect(() => {\n const select = ref.current;\n if (!select) return;\n const selectProto = window.HTMLSelectElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n selectProto,\n \"value\"\n );\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event(\"change\", { bubbles: true });\n setValue.call(select, value);\n select.dispatchEvent(event);\n }\n }, [prevValue, value]);\n return /* @__PURE__ */ jsx(\n Primitive.select,\n {\n ...props,\n style: { ...VISUALLY_HIDDEN_STYLES, ...props.style },\n ref: composedRefs,\n defaultValue: value\n }\n );\n }\n);\nSelectBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction shouldShowPlaceholder(value) {\n return value === \"\" || value === void 0;\n}\nfunction useTypeaheadSearch(onSearchChange) {\n const handleSearchChange = useCallbackRef(onSearchChange);\n const searchRef = React.useRef(\"\");\n const timerRef = React.useRef(0);\n const handleTypeaheadSearch = React.useCallback(\n (key) => {\n const search = searchRef.current + key;\n handleSearchChange(search);\n (function updateSearch(value) {\n searchRef.current = value;\n window.clearTimeout(timerRef.current);\n if (value !== \"\") timerRef.current = window.setTimeout(() => updateSearch(\"\"), 1e3);\n })(search);\n },\n [handleSearchChange]\n );\n const resetTypeahead = React.useCallback(() => {\n searchRef.current = \"\";\n window.clearTimeout(timerRef.current);\n }, []);\n React.useEffect(() => {\n return () => window.clearTimeout(timerRef.current);\n }, []);\n return [searchRef, handleTypeaheadSearch, resetTypeahead];\n}\nfunction findNextItem(items, search, currentItem) {\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const normalizedSearch = isRepeated ? search[0] : search;\n const currentItemIndex = currentItem ? items.indexOf(currentItem) : -1;\n let wrappedItems = wrapArray(items, Math.max(currentItemIndex, 0));\n const excludeCurrentItem = normalizedSearch.length === 1;\n if (excludeCurrentItem) wrappedItems = wrappedItems.filter((v) => v !== currentItem);\n const nextItem = wrappedItems.find(\n (item) => item.textValue.toLowerCase().startsWith(normalizedSearch.toLowerCase())\n );\n return nextItem !== currentItem ? nextItem : void 0;\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nvar Root2 = Select;\nvar Trigger = SelectTrigger;\nvar Value = SelectValue;\nvar Icon = SelectIcon;\nvar Portal = SelectPortal;\nvar Content2 = SelectContent;\nvar Viewport = SelectViewport;\nvar Group = SelectGroup;\nvar Label = SelectLabel;\nvar Item = SelectItem;\nvar ItemText = SelectItemText;\nvar ItemIndicator = SelectItemIndicator;\nvar ScrollUpButton = SelectScrollUpButton;\nvar ScrollDownButton = SelectScrollDownButton;\nvar Separator = SelectSeparator;\nvar Arrow2 = SelectArrow;\nexport {\n Arrow2 as Arrow,\n Content2 as Content,\n Group,\n Icon,\n Item,\n ItemIndicator,\n ItemText,\n Label,\n Portal,\n Root2 as Root,\n ScrollDownButton,\n ScrollUpButton,\n Select,\n SelectArrow,\n SelectContent,\n SelectGroup,\n SelectIcon,\n SelectItem,\n SelectItemIndicator,\n SelectItemText,\n SelectLabel,\n SelectPortal,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n SelectViewport,\n Separator,\n Trigger,\n Value,\n Viewport,\n createSelectScope\n};\n"],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ "use client";
2
+ import { Primitive as e } from "../primitives-internal.js";
3
+ import * as t from "react";
4
+ import { jsx as n } from "react/jsx-runtime";
5
+ //#region src/primitives/react-separator.js
6
+ var r = "Separator", i = "horizontal", a = ["horizontal", "vertical"], o = t.forwardRef((t, r) => {
7
+ let { decorative: a, orientation: o = i, ...c } = t, l = s(o) ? o : i, u = a ? { role: "none" } : {
8
+ "aria-orientation": l === "vertical" ? l : void 0,
9
+ role: "separator"
10
+ };
11
+ return /* @__PURE__ */ n(e.div, {
12
+ "data-orientation": l,
13
+ ...u,
14
+ ...c,
15
+ ref: r
16
+ });
17
+ });
18
+ o.displayName = r;
19
+ function s(e) {
20
+ return a.includes(e);
21
+ }
22
+ var c = o;
23
+ //#endregion
24
+ export { c as Root };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-separator.js","names":[],"sources":["../../../src/primitives/react-separator.js"],"sourcesContent":["// @ts-nocheck\n/**\n * Vendored from @radix-ui/react-separator (compiled ESM)\n * @see ./LICENSE\n */\n\n// src/separator.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"./_internal/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Separator\";\nvar DEFAULT_ORIENTATION = \"horizontal\";\nvar ORIENTATIONS = [\"horizontal\", \"vertical\"];\nvar Separator = React.forwardRef((props, forwardedRef) => {\n const { decorative, orientation: orientationProp = DEFAULT_ORIENTATION, ...domProps } = props;\n const orientation = isValidOrientation(orientationProp) ? orientationProp : DEFAULT_ORIENTATION;\n const ariaOrientation = orientation === \"vertical\" ? orientation : void 0;\n const semanticProps = decorative ? { role: \"none\" } : { \"aria-orientation\": ariaOrientation, role: \"separator\" };\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-orientation\": orientation,\n ...semanticProps,\n ...domProps,\n ref: forwardedRef\n }\n );\n});\nSeparator.displayName = NAME;\nfunction isValidOrientation(orientation) {\n return ORIENTATIONS.includes(orientation);\n}\nvar Root = Separator;\nexport {\n Root,\n Separator\n};\n"],"mappings":";;;;AAUA,IAAI,IAAO,aACP,IAAsB,cACtB,IAAe,CAAC,cAAc,UAAU,GACxC,IAAY,EAAM,YAAY,GAAO,MAAiB;CACxD,IAAM,EAAE,eAAY,aAAa,IAAkB,GAAqB,GAAG,MAAa,GAClF,IAAc,EAAmB,CAAe,IAAI,IAAkB,GAEtE,IAAgB,IAAa,EAAE,MAAM,OAAO,IAAI;EAAE,oBADhC,MAAgB,aAAa,IAAc,KAAK;EACqB,MAAM;CAAY;CAC/G,OAAuB,kBACrB,EAAU,KACV;EACE,oBAAoB;EACpB,GAAG;EACH,GAAG;EACH,KAAK;CACP,CACF;AACF,CAAC;AACD,EAAU,cAAc;AACxB,SAAS,EAAmB,GAAa;CACvC,OAAO,EAAa,SAAS,CAAW;AAC1C;AACA,IAAI,IAAO"}
@@ -0,0 +1,349 @@
1
+ "use client";
2
+ import { Primitive as e, clamp as t, composeEventHandlers as n, createCollection as r, createContextScope as i, useComposedRefs as a, useControllableState as o, useDirection as s, usePrevious as c, useSize as l } from "../primitives-internal.js";
3
+ import * as u from "react";
4
+ import { jsx as d, jsxs as f } from "react/jsx-runtime";
5
+ //#region src/primitives/react-slider.js
6
+ var p = ["PageUp", "PageDown"], m = [
7
+ "ArrowUp",
8
+ "ArrowDown",
9
+ "ArrowLeft",
10
+ "ArrowRight"
11
+ ], h = {
12
+ "from-left": [
13
+ "Home",
14
+ "PageDown",
15
+ "ArrowDown",
16
+ "ArrowLeft"
17
+ ],
18
+ "from-right": [
19
+ "Home",
20
+ "PageDown",
21
+ "ArrowDown",
22
+ "ArrowRight"
23
+ ],
24
+ "from-bottom": [
25
+ "Home",
26
+ "PageDown",
27
+ "ArrowDown",
28
+ "ArrowLeft"
29
+ ],
30
+ "from-top": [
31
+ "Home",
32
+ "PageDown",
33
+ "ArrowUp",
34
+ "ArrowLeft"
35
+ ]
36
+ }, g = "Slider", [_, v, y] = r(g), [b, x] = i(g, [y]), [S, C] = b(g), w = u.forwardRef((e, r) => {
37
+ let { name: i, min: a = 0, max: s = 100, step: c = 1, orientation: l = "horizontal", disabled: f = !1, minStepsBetweenThumbs: h = 0, defaultValue: g = [a], value: v, onValueChange: y = () => {}, onValueCommit: b = () => {}, inverted: x = !1, form: C, ...w } = e, T = u.useRef(/* @__PURE__ */ new Set()), E = u.useRef(0), k = l === "horizontal" ? D : O, [A = [], j] = o({
38
+ prop: v,
39
+ defaultProp: g,
40
+ onChange: (e) => {
41
+ [...T.current][E.current]?.focus(), y(e);
42
+ }
43
+ }), M = u.useRef(A);
44
+ function N(e) {
45
+ I(e, H(A, e));
46
+ }
47
+ function P(e) {
48
+ I(e, E.current);
49
+ }
50
+ function F() {
51
+ let e = M.current[E.current];
52
+ A[E.current] !== e && b(A);
53
+ }
54
+ function I(e, n, { commit: r } = { commit: !1 }) {
55
+ let i = q(c), o = t(J(Math.round((e - a) / c) * c + a, i), [a, s]);
56
+ j((e = []) => {
57
+ let t = z(e, o, n);
58
+ if (G(t, h * c)) {
59
+ E.current = t.indexOf(o);
60
+ let n = String(t) !== String(e);
61
+ return n && r && b(t), n ? t : e;
62
+ } else return e;
63
+ });
64
+ }
65
+ return /* @__PURE__ */ d(S, {
66
+ scope: e.__scopeSlider,
67
+ name: i,
68
+ disabled: f,
69
+ min: a,
70
+ max: s,
71
+ valueIndexToChangeRef: E,
72
+ thumbs: T.current,
73
+ values: A,
74
+ orientation: l,
75
+ form: C,
76
+ children: /* @__PURE__ */ d(_.Provider, {
77
+ scope: e.__scopeSlider,
78
+ children: /* @__PURE__ */ d(_.Slot, {
79
+ scope: e.__scopeSlider,
80
+ children: /* @__PURE__ */ d(k, {
81
+ "aria-disabled": f,
82
+ "data-disabled": f ? "" : void 0,
83
+ ...w,
84
+ ref: r,
85
+ onPointerDown: n(w.onPointerDown, () => {
86
+ f || (M.current = A);
87
+ }),
88
+ min: a,
89
+ max: s,
90
+ inverted: x,
91
+ onSlideStart: f ? void 0 : N,
92
+ onSlideMove: f ? void 0 : P,
93
+ onSlideEnd: f ? void 0 : F,
94
+ onHomeKeyDown: () => !f && I(a, 0, { commit: !0 }),
95
+ onEndKeyDown: () => !f && I(s, A.length - 1, { commit: !0 }),
96
+ onStepKeyDown: ({ event: e, direction: t }) => {
97
+ if (!f) {
98
+ let n = p.includes(e.key) || e.shiftKey && m.includes(e.key) ? 10 : 1, r = E.current, i = A[r];
99
+ I(i + c * n * t, r, { commit: !0 });
100
+ }
101
+ }
102
+ })
103
+ })
104
+ })
105
+ });
106
+ });
107
+ w.displayName = g;
108
+ var [T, E] = b(g, {
109
+ startEdge: "left",
110
+ endEdge: "right",
111
+ size: "width",
112
+ direction: 1
113
+ }), D = u.forwardRef((e, t) => {
114
+ let { min: n, max: r, dir: i, inverted: o, onSlideStart: c, onSlideMove: l, onSlideEnd: f, onStepKeyDown: p, ...m } = e, [g, _] = u.useState(null), v = a(t, (e) => _(e)), y = u.useRef(void 0), b = s(i), x = b === "ltr", S = x && !o || !x && o;
115
+ function C(e) {
116
+ let t = y.current || g.getBoundingClientRect(), i = K([0, t.width], S ? [n, r] : [r, n]);
117
+ return y.current = t, i(e - t.left);
118
+ }
119
+ return /* @__PURE__ */ d(T, {
120
+ scope: e.__scopeSlider,
121
+ startEdge: S ? "left" : "right",
122
+ endEdge: S ? "right" : "left",
123
+ direction: S ? 1 : -1,
124
+ size: "width",
125
+ children: /* @__PURE__ */ d(k, {
126
+ dir: b,
127
+ "data-orientation": "horizontal",
128
+ ...m,
129
+ ref: v,
130
+ style: {
131
+ ...m.style,
132
+ "--radix-slider-thumb-transform": "translateX(-50%)"
133
+ },
134
+ onSlideStart: (e) => {
135
+ let t = C(e.clientX);
136
+ c?.(t);
137
+ },
138
+ onSlideMove: (e) => {
139
+ let t = C(e.clientX);
140
+ l?.(t);
141
+ },
142
+ onSlideEnd: () => {
143
+ y.current = void 0, f?.();
144
+ },
145
+ onStepKeyDown: (e) => {
146
+ let t = h[S ? "from-left" : "from-right"].includes(e.key);
147
+ p?.({
148
+ event: e,
149
+ direction: t ? -1 : 1
150
+ });
151
+ }
152
+ })
153
+ });
154
+ }), O = u.forwardRef((e, t) => {
155
+ let { min: n, max: r, inverted: i, onSlideStart: o, onSlideMove: s, onSlideEnd: c, onStepKeyDown: l, ...f } = e, p = u.useRef(null), m = a(t, p), g = u.useRef(void 0), _ = !i;
156
+ function v(e) {
157
+ let t = g.current || p.current.getBoundingClientRect(), i = K([0, t.height], _ ? [r, n] : [n, r]);
158
+ return g.current = t, i(e - t.top);
159
+ }
160
+ return /* @__PURE__ */ d(T, {
161
+ scope: e.__scopeSlider,
162
+ startEdge: _ ? "bottom" : "top",
163
+ endEdge: _ ? "top" : "bottom",
164
+ size: "height",
165
+ direction: _ ? 1 : -1,
166
+ children: /* @__PURE__ */ d(k, {
167
+ "data-orientation": "vertical",
168
+ ...f,
169
+ ref: m,
170
+ style: {
171
+ ...f.style,
172
+ "--radix-slider-thumb-transform": "translateY(50%)"
173
+ },
174
+ onSlideStart: (e) => {
175
+ let t = v(e.clientY);
176
+ o?.(t);
177
+ },
178
+ onSlideMove: (e) => {
179
+ let t = v(e.clientY);
180
+ s?.(t);
181
+ },
182
+ onSlideEnd: () => {
183
+ g.current = void 0, c?.();
184
+ },
185
+ onStepKeyDown: (e) => {
186
+ let t = h[_ ? "from-bottom" : "from-top"].includes(e.key);
187
+ l?.({
188
+ event: e,
189
+ direction: t ? -1 : 1
190
+ });
191
+ }
192
+ })
193
+ });
194
+ }), k = u.forwardRef((t, r) => {
195
+ let { __scopeSlider: i, onSlideStart: a, onSlideMove: o, onSlideEnd: s, onHomeKeyDown: c, onEndKeyDown: l, onStepKeyDown: u, ...f } = t, h = C(g, i);
196
+ return /* @__PURE__ */ d(e.span, {
197
+ ...f,
198
+ ref: r,
199
+ onKeyDown: n(t.onKeyDown, (e) => {
200
+ e.key === "Home" ? (c(e), e.preventDefault()) : e.key === "End" ? (l(e), e.preventDefault()) : p.concat(m).includes(e.key) && (u(e), e.preventDefault());
201
+ }),
202
+ onPointerDown: n(t.onPointerDown, (e) => {
203
+ let t = e.target;
204
+ t.setPointerCapture(e.pointerId), e.preventDefault(), h.thumbs.has(t) ? t.focus() : a(e);
205
+ }),
206
+ onPointerMove: n(t.onPointerMove, (e) => {
207
+ e.target.hasPointerCapture(e.pointerId) && o(e);
208
+ }),
209
+ onPointerUp: n(t.onPointerUp, (e) => {
210
+ let t = e.target;
211
+ t.hasPointerCapture(e.pointerId) && (t.releasePointerCapture(e.pointerId), s(e));
212
+ })
213
+ });
214
+ }), A = "SliderTrack", j = u.forwardRef((t, n) => {
215
+ let { __scopeSlider: r, ...i } = t, a = C(A, r);
216
+ return /* @__PURE__ */ d(e.span, {
217
+ "data-disabled": a.disabled ? "" : void 0,
218
+ "data-orientation": a.orientation,
219
+ ...i,
220
+ ref: n
221
+ });
222
+ });
223
+ j.displayName = A;
224
+ var M = "SliderRange", N = u.forwardRef((t, n) => {
225
+ let { __scopeSlider: r, ...i } = t, o = C(M, r), s = E(M, r), c = a(n, u.useRef(null)), l = o.values.length, f = o.values.map((e) => B(e, o.min, o.max)), p = l > 1 ? Math.min(...f) : 0, m = 100 - Math.max(...f);
226
+ return /* @__PURE__ */ d(e.span, {
227
+ "data-orientation": o.orientation,
228
+ "data-disabled": o.disabled ? "" : void 0,
229
+ ...i,
230
+ ref: c,
231
+ style: {
232
+ ...t.style,
233
+ [s.startEdge]: p + "%",
234
+ [s.endEdge]: m + "%"
235
+ }
236
+ });
237
+ });
238
+ N.displayName = M;
239
+ var P = "SliderThumb", F = u.forwardRef((e, t) => {
240
+ let n = v(e.__scopeSlider), [r, i] = u.useState(null), o = a(t, (e) => i(e)), s = u.useMemo(() => r ? n().findIndex((e) => e.ref.current === r) : -1, [n, r]);
241
+ return /* @__PURE__ */ d(I, {
242
+ ...e,
243
+ ref: o,
244
+ index: s
245
+ });
246
+ }), I = u.forwardRef((t, r) => {
247
+ let { __scopeSlider: i, index: o, name: s, ...c } = t, p = C(P, i), m = E(P, i), [h, g] = u.useState(null), v = a(r, (e) => g(e)), y = !h || p.form || !!h.closest("form"), b = l(h), x = p.values[o], S = x === void 0 ? 0 : B(x, p.min, p.max), w = V(o, p.values.length), T = b?.[m.size], D = T ? U(T, S, m.direction) : 0;
248
+ return u.useEffect(() => {
249
+ if (h) return p.thumbs.add(h), () => {
250
+ p.thumbs.delete(h);
251
+ };
252
+ }, [h, p.thumbs]), /* @__PURE__ */ f("span", {
253
+ style: {
254
+ transform: "var(--radix-slider-thumb-transform)",
255
+ position: "absolute",
256
+ [m.startEdge]: `calc(${S}% + ${D}px)`
257
+ },
258
+ children: [/* @__PURE__ */ d(_.ItemSlot, {
259
+ scope: t.__scopeSlider,
260
+ children: /* @__PURE__ */ d(e.span, {
261
+ role: "slider",
262
+ "aria-label": t["aria-label"] || w,
263
+ "aria-valuemin": p.min,
264
+ "aria-valuenow": x,
265
+ "aria-valuemax": p.max,
266
+ "aria-orientation": p.orientation,
267
+ "data-orientation": p.orientation,
268
+ "data-disabled": p.disabled ? "" : void 0,
269
+ tabIndex: p.disabled ? void 0 : 0,
270
+ ...c,
271
+ ref: v,
272
+ style: x === void 0 ? { display: "none" } : t.style,
273
+ onFocus: n(t.onFocus, () => {
274
+ p.valueIndexToChangeRef.current = o;
275
+ })
276
+ })
277
+ }), y && /* @__PURE__ */ d(R, {
278
+ name: s ?? (p.name ? p.name + (p.values.length > 1 ? "[]" : "") : void 0),
279
+ form: p.form,
280
+ value: x
281
+ }, o)]
282
+ });
283
+ });
284
+ F.displayName = P;
285
+ var L = "RadioBubbleInput", R = u.forwardRef(({ __scopeSlider: t, value: n, ...r }, i) => {
286
+ let o = u.useRef(null), s = a(o, i), l = c(n);
287
+ return u.useEffect(() => {
288
+ let e = o.current;
289
+ if (!e) return;
290
+ let t = window.HTMLInputElement.prototype, r = Object.getOwnPropertyDescriptor(t, "value").set;
291
+ if (l !== n && r) {
292
+ let t = new Event("input", { bubbles: !0 });
293
+ r.call(e, n), e.dispatchEvent(t);
294
+ }
295
+ }, [l, n]), /* @__PURE__ */ d(e.input, {
296
+ style: { display: "none" },
297
+ ...r,
298
+ ref: s,
299
+ defaultValue: n
300
+ });
301
+ });
302
+ R.displayName = L;
303
+ function z(e = [], t, n) {
304
+ let r = [...e];
305
+ return r[n] = t, r.sort((e, t) => e - t);
306
+ }
307
+ function B(e, n, r) {
308
+ return t(100 / (r - n) * (e - n), [0, 100]);
309
+ }
310
+ function V(e, t) {
311
+ if (t > 2) return `Value ${e + 1} of ${t}`;
312
+ if (t === 2) return ["Minimum", "Maximum"][e];
313
+ }
314
+ function H(e, t) {
315
+ if (e.length === 1) return 0;
316
+ let n = e.map((e) => Math.abs(e - t)), r = Math.min(...n);
317
+ return n.indexOf(r);
318
+ }
319
+ function U(e, t, n) {
320
+ let r = e / 2;
321
+ return (r - K([0, 50], [0, r])(t) * n) * n;
322
+ }
323
+ function W(e) {
324
+ return e.slice(0, -1).map((t, n) => e[n + 1] - t);
325
+ }
326
+ function G(e, t) {
327
+ if (t > 0) {
328
+ let n = W(e);
329
+ return Math.min(...n) >= t;
330
+ }
331
+ return !0;
332
+ }
333
+ function K(e, t) {
334
+ return (n) => {
335
+ if (e[0] === e[1] || t[0] === t[1]) return t[0];
336
+ let r = (t[1] - t[0]) / (e[1] - e[0]);
337
+ return t[0] + r * (n - e[0]);
338
+ };
339
+ }
340
+ function q(e) {
341
+ return (String(e).split(".")[1] || "").length;
342
+ }
343
+ function J(e, t) {
344
+ let n = 10 ** t;
345
+ return Math.round(e * n) / n;
346
+ }
347
+ var Y = w, X = j, Z = N, Q = F;
348
+ //#endregion
349
+ export { Z as Range, Y as Root, Q as Thumb, X as Track };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-slider.js","names":[],"sources":["../../../src/primitives/react-slider.js"],"sourcesContent":["// @ts-nocheck\n/**\n * Vendored from @radix-ui/react-slider (compiled ESM)\n * @see ./LICENSE\n */\n\n\"use client\";\n\n// src/slider.tsx\nimport * as React from \"react\";\nimport { clamp } from \"./_internal/number\";\nimport { composeEventHandlers } from \"./_internal/primitive\";\nimport { useComposedRefs } from \"./_internal/react-compose-refs\";\nimport { createContextScope } from \"./_internal/react-context\";\nimport { useControllableState } from \"./_internal/react-use-controllable-state\";\nimport { useDirection } from \"./_internal/react-direction\";\nimport { usePrevious } from \"./_internal/react-use-previous\";\nimport { useSize } from \"./_internal/react-use-size\";\nimport { Primitive } from \"./_internal/react-primitive\";\nimport { createCollection } from \"./_internal/react-collection\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar PAGE_KEYS = [\"PageUp\", \"PageDown\"];\nvar ARROW_KEYS = [\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"];\nvar BACK_KEYS = {\n \"from-left\": [\"Home\", \"PageDown\", \"ArrowDown\", \"ArrowLeft\"],\n \"from-right\": [\"Home\", \"PageDown\", \"ArrowDown\", \"ArrowRight\"],\n \"from-bottom\": [\"Home\", \"PageDown\", \"ArrowDown\", \"ArrowLeft\"],\n \"from-top\": [\"Home\", \"PageDown\", \"ArrowUp\", \"ArrowLeft\"]\n};\nvar SLIDER_NAME = \"Slider\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(SLIDER_NAME);\nvar [createSliderContext, createSliderScope] = createContextScope(SLIDER_NAME, [\n createCollectionScope\n]);\nvar [SliderProvider, useSliderContext] = createSliderContext(SLIDER_NAME);\nvar Slider = React.forwardRef(\n (props, forwardedRef) => {\n const {\n name,\n min = 0,\n max = 100,\n step = 1,\n orientation = \"horizontal\",\n disabled = false,\n minStepsBetweenThumbs = 0,\n defaultValue = [min],\n value,\n onValueChange = () => {\n },\n onValueCommit = () => {\n },\n inverted = false,\n form,\n ...sliderProps\n } = props;\n const thumbRefs = React.useRef(/* @__PURE__ */ new Set());\n const valueIndexToChangeRef = React.useRef(0);\n const isHorizontal = orientation === \"horizontal\";\n const SliderOrientation = isHorizontal ? SliderHorizontal : SliderVertical;\n const [values = [], setValues] = useControllableState({\n prop: value,\n defaultProp: defaultValue,\n onChange: (value2) => {\n const thumbs = [...thumbRefs.current];\n thumbs[valueIndexToChangeRef.current]?.focus();\n onValueChange(value2);\n }\n });\n const valuesBeforeSlideStartRef = React.useRef(values);\n function handleSlideStart(value2) {\n const closestIndex = getClosestValueIndex(values, value2);\n updateValues(value2, closestIndex);\n }\n function handleSlideMove(value2) {\n updateValues(value2, valueIndexToChangeRef.current);\n }\n function handleSlideEnd() {\n const prevValue = valuesBeforeSlideStartRef.current[valueIndexToChangeRef.current];\n const nextValue = values[valueIndexToChangeRef.current];\n const hasChanged = nextValue !== prevValue;\n if (hasChanged) onValueCommit(values);\n }\n function updateValues(value2, atIndex, { commit } = { commit: false }) {\n const decimalCount = getDecimalCount(step);\n const snapToStep = roundValue(Math.round((value2 - min) / step) * step + min, decimalCount);\n const nextValue = clamp(snapToStep, [min, max]);\n setValues((prevValues = []) => {\n const nextValues = getNextSortedValues(prevValues, nextValue, atIndex);\n if (hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {\n valueIndexToChangeRef.current = nextValues.indexOf(nextValue);\n const hasChanged = String(nextValues) !== String(prevValues);\n if (hasChanged && commit) onValueCommit(nextValues);\n return hasChanged ? nextValues : prevValues;\n } else {\n return prevValues;\n }\n });\n }\n return /* @__PURE__ */ jsx(\n SliderProvider,\n {\n scope: props.__scopeSlider,\n name,\n disabled,\n min,\n max,\n valueIndexToChangeRef,\n thumbs: thumbRefs.current,\n values,\n orientation,\n form,\n children: /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsx(\n SliderOrientation,\n {\n \"aria-disabled\": disabled,\n \"data-disabled\": disabled ? \"\" : void 0,\n ...sliderProps,\n ref: forwardedRef,\n onPointerDown: composeEventHandlers(sliderProps.onPointerDown, () => {\n if (!disabled) valuesBeforeSlideStartRef.current = values;\n }),\n min,\n max,\n inverted,\n onSlideStart: disabled ? void 0 : handleSlideStart,\n onSlideMove: disabled ? void 0 : handleSlideMove,\n onSlideEnd: disabled ? void 0 : handleSlideEnd,\n onHomeKeyDown: () => !disabled && updateValues(min, 0, { commit: true }),\n onEndKeyDown: () => !disabled && updateValues(max, values.length - 1, { commit: true }),\n onStepKeyDown: ({ event, direction: stepDirection }) => {\n if (!disabled) {\n const isPageKey = PAGE_KEYS.includes(event.key);\n const isSkipKey = isPageKey || event.shiftKey && ARROW_KEYS.includes(event.key);\n const multiplier = isSkipKey ? 10 : 1;\n const atIndex = valueIndexToChangeRef.current;\n const value2 = values[atIndex];\n const stepInDirection = step * multiplier * stepDirection;\n updateValues(value2 + stepInDirection, atIndex, { commit: true });\n }\n }\n }\n ) }) })\n }\n );\n }\n);\nSlider.displayName = SLIDER_NAME;\nvar [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext(SLIDER_NAME, {\n startEdge: \"left\",\n endEdge: \"right\",\n size: \"width\",\n direction: 1\n});\nvar SliderHorizontal = React.forwardRef(\n (props, forwardedRef) => {\n const {\n min,\n max,\n dir,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const [slider, setSlider] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const rectRef = React.useRef(void 0);\n const direction = useDirection(dir);\n const isDirectionLTR = direction === \"ltr\";\n const isSlidingFromLeft = isDirectionLTR && !inverted || !isDirectionLTR && inverted;\n function getValueFromPointer(pointerPosition) {\n const rect = rectRef.current || slider.getBoundingClientRect();\n const input = [0, rect.width];\n const output = isSlidingFromLeft ? [min, max] : [max, min];\n const value = linearScale(input, output);\n rectRef.current = rect;\n return value(pointerPosition - rect.left);\n }\n return /* @__PURE__ */ jsx(\n SliderOrientationProvider,\n {\n scope: props.__scopeSlider,\n startEdge: isSlidingFromLeft ? \"left\" : \"right\",\n endEdge: isSlidingFromLeft ? \"right\" : \"left\",\n direction: isSlidingFromLeft ? 1 : -1,\n size: \"width\",\n children: /* @__PURE__ */ jsx(\n SliderImpl,\n {\n dir: direction,\n \"data-orientation\": \"horizontal\",\n ...sliderProps,\n ref: composedRefs,\n style: {\n ...sliderProps.style,\n [\"--radix-slider-thumb-transform\"]: \"translateX(-50%)\"\n },\n onSlideStart: (event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideStart?.(value);\n },\n onSlideMove: (event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideMove?.(value);\n },\n onSlideEnd: () => {\n rectRef.current = void 0;\n onSlideEnd?.();\n },\n onStepKeyDown: (event) => {\n const slideDirection = isSlidingFromLeft ? \"from-left\" : \"from-right\";\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }\n }\n )\n }\n );\n }\n);\nvar SliderVertical = React.forwardRef(\n (props, forwardedRef) => {\n const {\n min,\n max,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const sliderRef = React.useRef(null);\n const ref = useComposedRefs(forwardedRef, sliderRef);\n const rectRef = React.useRef(void 0);\n const isSlidingFromBottom = !inverted;\n function getValueFromPointer(pointerPosition) {\n const rect = rectRef.current || sliderRef.current.getBoundingClientRect();\n const input = [0, rect.height];\n const output = isSlidingFromBottom ? [max, min] : [min, max];\n const value = linearScale(input, output);\n rectRef.current = rect;\n return value(pointerPosition - rect.top);\n }\n return /* @__PURE__ */ jsx(\n SliderOrientationProvider,\n {\n scope: props.__scopeSlider,\n startEdge: isSlidingFromBottom ? \"bottom\" : \"top\",\n endEdge: isSlidingFromBottom ? \"top\" : \"bottom\",\n size: \"height\",\n direction: isSlidingFromBottom ? 1 : -1,\n children: /* @__PURE__ */ jsx(\n SliderImpl,\n {\n \"data-orientation\": \"vertical\",\n ...sliderProps,\n ref,\n style: {\n ...sliderProps.style,\n [\"--radix-slider-thumb-transform\"]: \"translateY(50%)\"\n },\n onSlideStart: (event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideStart?.(value);\n },\n onSlideMove: (event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideMove?.(value);\n },\n onSlideEnd: () => {\n rectRef.current = void 0;\n onSlideEnd?.();\n },\n onStepKeyDown: (event) => {\n const slideDirection = isSlidingFromBottom ? \"from-bottom\" : \"from-top\";\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }\n }\n )\n }\n );\n }\n);\nvar SliderImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSlider,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onHomeKeyDown,\n onEndKeyDown,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const context = useSliderContext(SLIDER_NAME, __scopeSlider);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...sliderProps,\n ref: forwardedRef,\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Home\") {\n onHomeKeyDown(event);\n event.preventDefault();\n } else if (event.key === \"End\") {\n onEndKeyDown(event);\n event.preventDefault();\n } else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {\n onStepKeyDown(event);\n event.preventDefault();\n }\n }),\n onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {\n const target = event.target;\n target.setPointerCapture(event.pointerId);\n event.preventDefault();\n if (context.thumbs.has(target)) {\n target.focus();\n } else {\n onSlideStart(event);\n }\n }),\n onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) onSlideMove(event);\n }),\n onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n onSlideEnd(event);\n }\n })\n }\n );\n }\n);\nvar TRACK_NAME = \"SliderTrack\";\nvar SliderTrack = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, ...trackProps } = props;\n const context = useSliderContext(TRACK_NAME, __scopeSlider);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-disabled\": context.disabled ? \"\" : void 0,\n \"data-orientation\": context.orientation,\n ...trackProps,\n ref: forwardedRef\n }\n );\n }\n);\nSliderTrack.displayName = TRACK_NAME;\nvar RANGE_NAME = \"SliderRange\";\nvar SliderRange = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, ...rangeProps } = props;\n const context = useSliderContext(RANGE_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(RANGE_NAME, __scopeSlider);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const valuesCount = context.values.length;\n const percentages = context.values.map(\n (value) => convertValueToPercentage(value, context.min, context.max)\n );\n const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;\n const offsetEnd = 100 - Math.max(...percentages);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-orientation\": context.orientation,\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...rangeProps,\n ref: composedRefs,\n style: {\n ...props.style,\n [orientation.startEdge]: offsetStart + \"%\",\n [orientation.endEdge]: offsetEnd + \"%\"\n }\n }\n );\n }\n);\nSliderRange.displayName = RANGE_NAME;\nvar THUMB_NAME = \"SliderThumb\";\nvar SliderThumb = React.forwardRef(\n (props, forwardedRef) => {\n const getItems = useCollection(props.__scopeSlider);\n const [thumb, setThumb] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const index = React.useMemo(\n () => thumb ? getItems().findIndex((item) => item.ref.current === thumb) : -1,\n [getItems, thumb]\n );\n return /* @__PURE__ */ jsx(SliderThumbImpl, { ...props, ref: composedRefs, index });\n }\n);\nvar SliderThumbImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, index, name, ...thumbProps } = props;\n const context = useSliderContext(THUMB_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(THUMB_NAME, __scopeSlider);\n const [thumb, setThumb] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const isFormControl = thumb ? context.form || !!thumb.closest(\"form\") : true;\n const size = useSize(thumb);\n const value = context.values[index];\n const percent = value === void 0 ? 0 : convertValueToPercentage(value, context.min, context.max);\n const label = getLabel(index, context.values.length);\n const orientationSize = size?.[orientation.size];\n const thumbInBoundsOffset = orientationSize ? getThumbInBoundsOffset(orientationSize, percent, orientation.direction) : 0;\n React.useEffect(() => {\n if (thumb) {\n context.thumbs.add(thumb);\n return () => {\n context.thumbs.delete(thumb);\n };\n }\n }, [thumb, context.thumbs]);\n return /* @__PURE__ */ jsxs(\n \"span\",\n {\n style: {\n transform: \"var(--radix-slider-thumb-transform)\",\n position: \"absolute\",\n [orientation.startEdge]: `calc(${percent}% + ${thumbInBoundsOffset}px)`\n },\n children: [\n /* @__PURE__ */ jsx(Collection.ItemSlot, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n role: \"slider\",\n \"aria-label\": props[\"aria-label\"] || label,\n \"aria-valuemin\": context.min,\n \"aria-valuenow\": value,\n \"aria-valuemax\": context.max,\n \"aria-orientation\": context.orientation,\n \"data-orientation\": context.orientation,\n \"data-disabled\": context.disabled ? \"\" : void 0,\n tabIndex: context.disabled ? void 0 : 0,\n ...thumbProps,\n ref: composedRefs,\n style: value === void 0 ? { display: \"none\" } : props.style,\n onFocus: composeEventHandlers(props.onFocus, () => {\n context.valueIndexToChangeRef.current = index;\n })\n }\n ) }),\n isFormControl && /* @__PURE__ */ jsx(\n SliderBubbleInput,\n {\n name: name ?? (context.name ? context.name + (context.values.length > 1 ? \"[]\" : \"\") : void 0),\n form: context.form,\n value\n },\n index\n )\n ]\n }\n );\n }\n);\nSliderThumb.displayName = THUMB_NAME;\nvar BUBBLE_INPUT_NAME = \"RadioBubbleInput\";\nvar SliderBubbleInput = React.forwardRef(\n ({ __scopeSlider, value, ...props }, forwardedRef) => {\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const prevValue = usePrevious(value);\n React.useEffect(() => {\n const input = ref.current;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"value\");\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event(\"input\", { bubbles: true });\n setValue.call(input, value);\n input.dispatchEvent(event);\n }\n }, [prevValue, value]);\n return /* @__PURE__ */ jsx(\n Primitive.input,\n {\n style: { display: \"none\" },\n ...props,\n ref: composedRefs,\n defaultValue: value\n }\n );\n }\n);\nSliderBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction getNextSortedValues(prevValues = [], nextValue, atIndex) {\n const nextValues = [...prevValues];\n nextValues[atIndex] = nextValue;\n return nextValues.sort((a, b) => a - b);\n}\nfunction convertValueToPercentage(value, min, max) {\n const maxSteps = max - min;\n const percentPerStep = 100 / maxSteps;\n const percentage = percentPerStep * (value - min);\n return clamp(percentage, [0, 100]);\n}\nfunction getLabel(index, totalValues) {\n if (totalValues > 2) {\n return `Value ${index + 1} of ${totalValues}`;\n } else if (totalValues === 2) {\n return [\"Minimum\", \"Maximum\"][index];\n } else {\n return void 0;\n }\n}\nfunction getClosestValueIndex(values, nextValue) {\n if (values.length === 1) return 0;\n const distances = values.map((value) => Math.abs(value - nextValue));\n const closestDistance = Math.min(...distances);\n return distances.indexOf(closestDistance);\n}\nfunction getThumbInBoundsOffset(width, left, direction) {\n const halfWidth = width / 2;\n const halfPercent = 50;\n const offset = linearScale([0, halfPercent], [0, halfWidth]);\n return (halfWidth - offset(left) * direction) * direction;\n}\nfunction getStepsBetweenValues(values) {\n return values.slice(0, -1).map((value, index) => values[index + 1] - value);\n}\nfunction hasMinStepsBetweenValues(values, minStepsBetweenValues) {\n if (minStepsBetweenValues > 0) {\n const stepsBetweenValues = getStepsBetweenValues(values);\n const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);\n return actualMinStepsBetweenValues >= minStepsBetweenValues;\n }\n return true;\n}\nfunction linearScale(input, output) {\n return (value) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\nfunction getDecimalCount(value) {\n return (String(value).split(\".\")[1] || \"\").length;\n}\nfunction roundValue(value, decimalCount) {\n const rounder = Math.pow(10, decimalCount);\n return Math.round(value * rounder) / rounder;\n}\nvar Root = Slider;\nvar Track = SliderTrack;\nvar Range = SliderRange;\nvar Thumb = SliderThumb;\nexport {\n Range,\n Root,\n Slider,\n SliderRange,\n SliderThumb,\n SliderTrack,\n Thumb,\n Track,\n createSliderScope\n};\n"],"mappings":"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"}