@womp/kookie-ui 0.23.0 → 0.25.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 (1217) hide show
  1. package/README.md +3 -3
  2. package/components.css +13017 -12024
  3. package/dist/cjs/components/_internal/base-button.d.ts +11 -1
  4. package/dist/cjs/components/_internal/base-button.d.ts.map +1 -1
  5. package/dist/cjs/components/_internal/base-button.js +2 -1
  6. package/dist/cjs/components/_internal/base-button.js.map +4 -4
  7. package/dist/cjs/components/_internal/base-button.props.js +1 -0
  8. package/dist/cjs/components/_internal/base-button.props.js.map +2 -2
  9. package/dist/cjs/components/_internal/base-checkbox.props.js +1 -0
  10. package/dist/cjs/components/_internal/base-checkbox.props.js.map +1 -1
  11. package/dist/cjs/components/_internal/base-menu.props.js +1 -0
  12. package/dist/cjs/components/_internal/base-menu.props.js.map +1 -1
  13. package/dist/cjs/components/_internal/base-menu.utils.js +1 -0
  14. package/dist/cjs/components/_internal/base-menu.utils.js.map +1 -1
  15. package/dist/cjs/components/_internal/base-radio.props.js +1 -0
  16. package/dist/cjs/components/_internal/base-radio.props.js.map +1 -1
  17. package/dist/cjs/components/_internal/base-tab-list.props.js +1 -0
  18. package/dist/cjs/components/_internal/base-tab-list.props.js.map +1 -1
  19. package/dist/cjs/components/_internal/dropdown-menu-drill-down.d.ts +19 -7
  20. package/dist/cjs/components/_internal/dropdown-menu-drill-down.d.ts.map +1 -1
  21. package/dist/cjs/components/_internal/dropdown-menu-drill-down.js +2 -1
  22. package/dist/cjs/components/_internal/dropdown-menu-drill-down.js.map +3 -3
  23. package/dist/cjs/components/_internal/menu-context.d.ts +12 -0
  24. package/dist/cjs/components/_internal/menu-context.d.ts.map +1 -1
  25. package/dist/cjs/components/_internal/menu-context.js +2 -1
  26. package/dist/cjs/components/_internal/menu-context.js.map +3 -3
  27. package/dist/cjs/components/_internal/pane-chrome.d.ts +19 -2
  28. package/dist/cjs/components/_internal/pane-chrome.d.ts.map +1 -1
  29. package/dist/cjs/components/_internal/pane-chrome.js +2 -1
  30. package/dist/cjs/components/_internal/pane-chrome.js.map +4 -4
  31. package/dist/cjs/components/_internal/shell-bottom.d.ts +1 -1
  32. package/dist/cjs/components/_internal/shell-bottom.d.ts.map +1 -1
  33. package/dist/cjs/components/_internal/shell-bottom.js +2 -1
  34. package/dist/cjs/components/_internal/shell-bottom.js.map +3 -3
  35. package/dist/cjs/components/_internal/shell-handles.d.ts.map +1 -1
  36. package/dist/cjs/components/_internal/shell-handles.js +2 -1
  37. package/dist/cjs/components/_internal/shell-handles.js.map +3 -3
  38. package/dist/cjs/components/_internal/shell-inspector.d.ts +1 -1
  39. package/dist/cjs/components/_internal/shell-inspector.d.ts.map +1 -1
  40. package/dist/cjs/components/_internal/shell-inspector.js +2 -1
  41. package/dist/cjs/components/_internal/shell-inspector.js.map +3 -3
  42. package/dist/cjs/components/_internal/shell-pane.d.ts.map +1 -1
  43. package/dist/cjs/components/_internal/shell-pane.js +2 -1
  44. package/dist/cjs/components/_internal/shell-pane.js.map +3 -3
  45. package/dist/cjs/components/_internal/shell-resizable.d.ts.map +1 -1
  46. package/dist/cjs/components/_internal/shell-resizable.js +2 -1
  47. package/dist/cjs/components/_internal/shell-resizable.js.map +3 -3
  48. package/dist/cjs/components/_internal/shell-resize.js +1 -0
  49. package/dist/cjs/components/_internal/shell-resize.js.map +1 -1
  50. package/dist/cjs/components/_internal/shell-rest.js +1 -0
  51. package/dist/cjs/components/_internal/shell-rest.js.map +1 -1
  52. package/dist/cjs/components/_internal/shell-sidebar.d.ts +1 -1
  53. package/dist/cjs/components/_internal/shell-sidebar.d.ts.map +1 -1
  54. package/dist/cjs/components/_internal/shell-sidebar.js +2 -1
  55. package/dist/cjs/components/_internal/shell-sidebar.js.map +4 -4
  56. package/dist/cjs/components/_internal/shell-store.d.ts.map +1 -1
  57. package/dist/cjs/components/_internal/shell-store.js +2 -1
  58. package/dist/cjs/components/_internal/shell-store.js.map +3 -3
  59. package/dist/cjs/components/accessible-icon.js +1 -0
  60. package/dist/cjs/components/accessible-icon.js.map +1 -1
  61. package/dist/cjs/components/accordion.d.ts +2 -2
  62. package/dist/cjs/components/accordion.d.ts.map +1 -1
  63. package/dist/cjs/components/accordion.js +2 -1
  64. package/dist/cjs/components/accordion.js.map +4 -4
  65. package/dist/cjs/components/accordion.props.js +1 -0
  66. package/dist/cjs/components/accordion.props.js.map +1 -1
  67. package/dist/cjs/components/alert-dialog.d.ts.map +1 -1
  68. package/dist/cjs/components/alert-dialog.js +2 -1
  69. package/dist/cjs/components/alert-dialog.js.map +4 -4
  70. package/dist/cjs/components/alert-dialog.props.js +1 -0
  71. package/dist/cjs/components/alert-dialog.props.js.map +1 -1
  72. package/dist/cjs/components/avatar.d.ts +1 -1
  73. package/dist/cjs/components/avatar.d.ts.map +1 -1
  74. package/dist/cjs/components/avatar.js +2 -1
  75. package/dist/cjs/components/avatar.js.map +3 -3
  76. package/dist/cjs/components/avatar.props.d.ts +8 -0
  77. package/dist/cjs/components/avatar.props.d.ts.map +1 -1
  78. package/dist/cjs/components/avatar.props.js +2 -1
  79. package/dist/cjs/components/avatar.props.js.map +2 -2
  80. package/dist/cjs/components/blockquote.d.ts +1 -1
  81. package/dist/cjs/components/blockquote.d.ts.map +1 -1
  82. package/dist/cjs/components/blockquote.js +2 -1
  83. package/dist/cjs/components/blockquote.js.map +4 -4
  84. package/dist/cjs/components/blockquote.props.js +1 -0
  85. package/dist/cjs/components/blockquote.props.js.map +1 -1
  86. package/dist/cjs/components/box.js +1 -0
  87. package/dist/cjs/components/box.js.map +1 -1
  88. package/dist/cjs/components/box.props.js +1 -0
  89. package/dist/cjs/components/box.props.js.map +1 -1
  90. package/dist/cjs/components/button.d.ts.map +1 -1
  91. package/dist/cjs/components/button.js +2 -1
  92. package/dist/cjs/components/button.js.map +4 -4
  93. package/dist/cjs/components/button.props.js +1 -0
  94. package/dist/cjs/components/button.props.js.map +2 -2
  95. package/dist/cjs/components/card.js +1 -0
  96. package/dist/cjs/components/card.js.map +1 -1
  97. package/dist/cjs/components/card.props.js +1 -0
  98. package/dist/cjs/components/card.props.js.map +1 -1
  99. package/dist/cjs/components/chatbar.d.ts.map +1 -1
  100. package/dist/cjs/components/chatbar.js +2 -1
  101. package/dist/cjs/components/chatbar.js.map +4 -4
  102. package/dist/cjs/components/checkbox-group.d.ts.map +1 -1
  103. package/dist/cjs/components/checkbox-group.js +2 -1
  104. package/dist/cjs/components/checkbox-group.js.map +3 -3
  105. package/dist/cjs/components/checkbox-group.primitive.d.ts +12 -5
  106. package/dist/cjs/components/checkbox-group.primitive.d.ts.map +1 -1
  107. package/dist/cjs/components/checkbox-group.primitive.js +2 -1
  108. package/dist/cjs/components/checkbox-group.primitive.js.map +3 -3
  109. package/dist/cjs/components/checkbox-group.props.js +1 -0
  110. package/dist/cjs/components/checkbox-group.props.js.map +1 -1
  111. package/dist/cjs/components/checkbox.js +2 -1
  112. package/dist/cjs/components/checkbox.js.map +3 -3
  113. package/dist/cjs/components/checkbox.props.js +1 -0
  114. package/dist/cjs/components/checkbox.props.js.map +1 -1
  115. package/dist/cjs/components/chip.d.ts.map +1 -1
  116. package/dist/cjs/components/chip.js +2 -1
  117. package/dist/cjs/components/chip.js.map +3 -3
  118. package/dist/cjs/components/chip.props.js +1 -0
  119. package/dist/cjs/components/chip.props.js.map +1 -1
  120. package/dist/cjs/components/code.d.ts.map +1 -1
  121. package/dist/cjs/components/code.js +2 -1
  122. package/dist/cjs/components/code.js.map +2 -2
  123. package/dist/cjs/components/code.props.js +1 -0
  124. package/dist/cjs/components/code.props.js.map +1 -1
  125. package/dist/cjs/components/combobox.d.ts.map +1 -1
  126. package/dist/cjs/components/combobox.js +2 -1
  127. package/dist/cjs/components/combobox.js.map +4 -4
  128. package/dist/cjs/components/combobox.props.js +1 -0
  129. package/dist/cjs/components/combobox.props.js.map +1 -1
  130. package/dist/cjs/components/context-menu.d.ts +1 -2
  131. package/dist/cjs/components/context-menu.d.ts.map +1 -1
  132. package/dist/cjs/components/context-menu.js +2 -1
  133. package/dist/cjs/components/context-menu.js.map +4 -4
  134. package/dist/cjs/components/context-menu.props.js +1 -0
  135. package/dist/cjs/components/context-menu.props.js.map +1 -1
  136. package/dist/cjs/components/dialog.d.ts +1 -1
  137. package/dist/cjs/components/dialog.d.ts.map +1 -1
  138. package/dist/cjs/components/dialog.js +2 -1
  139. package/dist/cjs/components/dialog.js.map +3 -3
  140. package/dist/cjs/components/dialog.props.js +1 -0
  141. package/dist/cjs/components/dialog.props.js.map +1 -1
  142. package/dist/cjs/components/dropdown-menu.d.ts +1 -2
  143. package/dist/cjs/components/dropdown-menu.d.ts.map +1 -1
  144. package/dist/cjs/components/dropdown-menu.js +2 -1
  145. package/dist/cjs/components/dropdown-menu.js.map +4 -4
  146. package/dist/cjs/components/dropdown-menu.props.js +1 -0
  147. package/dist/cjs/components/dropdown-menu.props.js.map +1 -1
  148. package/dist/cjs/components/flex.js +1 -0
  149. package/dist/cjs/components/flex.js.map +2 -2
  150. package/dist/cjs/components/flex.props.js +1 -0
  151. package/dist/cjs/components/flex.props.js.map +2 -2
  152. package/dist/cjs/components/grid.js +1 -0
  153. package/dist/cjs/components/grid.js.map +2 -2
  154. package/dist/cjs/components/grid.props.js +1 -0
  155. package/dist/cjs/components/grid.props.js.map +2 -2
  156. package/dist/cjs/components/heading.d.ts +2 -2
  157. package/dist/cjs/components/heading.d.ts.map +1 -1
  158. package/dist/cjs/components/heading.js +2 -1
  159. package/dist/cjs/components/heading.js.map +2 -2
  160. package/dist/cjs/components/heading.props.d.ts +1 -1
  161. package/dist/cjs/components/heading.props.js +2 -1
  162. package/dist/cjs/components/heading.props.js.map +2 -2
  163. package/dist/cjs/components/icons.d.ts +3 -1
  164. package/dist/cjs/components/icons.d.ts.map +1 -1
  165. package/dist/cjs/components/icons.js +2 -1
  166. package/dist/cjs/components/icons.js.map +3 -3
  167. package/dist/cjs/components/image.d.ts +9 -2
  168. package/dist/cjs/components/image.d.ts.map +1 -1
  169. package/dist/cjs/components/image.js +2 -1
  170. package/dist/cjs/components/image.js.map +3 -3
  171. package/dist/cjs/components/image.props.js +1 -0
  172. package/dist/cjs/components/image.props.js.map +1 -1
  173. package/dist/cjs/components/index.d.ts +2 -2
  174. package/dist/cjs/components/index.d.ts.map +1 -1
  175. package/dist/cjs/components/index.js +3 -10
  176. package/dist/cjs/components/index.js.map +4 -4
  177. package/dist/cjs/components/kbd.js +1 -0
  178. package/dist/cjs/components/kbd.js.map +1 -1
  179. package/dist/cjs/components/kbd.props.js +1 -0
  180. package/dist/cjs/components/kbd.props.js.map +1 -1
  181. package/dist/cjs/components/link.js +1 -0
  182. package/dist/cjs/components/link.js.map +1 -1
  183. package/dist/cjs/components/link.props.js +1 -0
  184. package/dist/cjs/components/link.props.js.map +1 -1
  185. package/dist/cjs/components/message-scroller.d.ts +2 -2
  186. package/dist/cjs/components/message-scroller.d.ts.map +1 -1
  187. package/dist/cjs/components/message-scroller.js +2 -1
  188. package/dist/cjs/components/message-scroller.js.map +4 -4
  189. package/dist/cjs/components/navbar.d.ts.map +1 -1
  190. package/dist/cjs/components/navbar.js +2 -1
  191. package/dist/cjs/components/navbar.js.map +3 -3
  192. package/dist/cjs/components/navbar.props.js +1 -0
  193. package/dist/cjs/components/navbar.props.js.map +1 -1
  194. package/dist/cjs/components/notice.d.ts +4 -1
  195. package/dist/cjs/components/notice.d.ts.map +1 -1
  196. package/dist/cjs/components/notice.js +2 -1
  197. package/dist/cjs/components/notice.js.map +4 -4
  198. package/dist/cjs/components/popover.d.ts +3 -1
  199. package/dist/cjs/components/popover.d.ts.map +1 -1
  200. package/dist/cjs/components/popover.js +2 -1
  201. package/dist/cjs/components/popover.js.map +3 -3
  202. package/dist/cjs/components/popover.props.js +1 -0
  203. package/dist/cjs/components/popover.props.js.map +1 -1
  204. package/dist/cjs/components/portal.js +1 -0
  205. package/dist/cjs/components/portal.js.map +1 -1
  206. package/dist/cjs/components/progress.d.ts.map +1 -1
  207. package/dist/cjs/components/progress.js +2 -1
  208. package/dist/cjs/components/progress.js.map +3 -3
  209. package/dist/cjs/components/progress.props.js +1 -0
  210. package/dist/cjs/components/progress.props.js.map +1 -1
  211. package/dist/cjs/components/radio-group.js +1 -0
  212. package/dist/cjs/components/radio-group.js.map +1 -1
  213. package/dist/cjs/components/radio-group.props.js +1 -0
  214. package/dist/cjs/components/radio-group.props.js.map +1 -1
  215. package/dist/cjs/components/radio.js +1 -0
  216. package/dist/cjs/components/radio.js.map +1 -1
  217. package/dist/cjs/components/radio.props.js +1 -0
  218. package/dist/cjs/components/radio.props.js.map +1 -1
  219. package/dist/cjs/components/reset.js +1 -0
  220. package/dist/cjs/components/reset.js.map +1 -1
  221. package/dist/cjs/components/schemas/base-button.schema.js +1 -0
  222. package/dist/cjs/components/schemas/base-button.schema.js.map +1 -1
  223. package/dist/cjs/components/schemas/button.schema.d.ts +2 -2
  224. package/dist/cjs/components/schemas/button.schema.js +1 -0
  225. package/dist/cjs/components/schemas/button.schema.js.map +1 -1
  226. package/dist/cjs/components/schemas/index.js +1 -0
  227. package/dist/cjs/components/schemas/index.js.map +1 -1
  228. package/dist/cjs/components/schemas/shell.schema.js +1 -0
  229. package/dist/cjs/components/schemas/shell.schema.js.map +1 -1
  230. package/dist/cjs/components/schemas/toggle.schema.d.ts +1 -1
  231. package/dist/cjs/components/schemas/toggle.schema.js +1 -0
  232. package/dist/cjs/components/schemas/toggle.schema.js.map +1 -1
  233. package/dist/cjs/components/scroll-area.d.ts +3 -1
  234. package/dist/cjs/components/scroll-area.d.ts.map +1 -1
  235. package/dist/cjs/components/scroll-area.js +2 -1
  236. package/dist/cjs/components/scroll-area.js.map +4 -4
  237. package/dist/cjs/components/scroll-area.props.js +1 -0
  238. package/dist/cjs/components/scroll-area.props.js.map +1 -1
  239. package/dist/cjs/components/segmented-control.d.ts +3 -1
  240. package/dist/cjs/components/segmented-control.d.ts.map +1 -1
  241. package/dist/cjs/components/segmented-control.js +2 -1
  242. package/dist/cjs/components/segmented-control.js.map +3 -3
  243. package/dist/cjs/components/segmented-control.props.d.ts +0 -1
  244. package/dist/cjs/components/segmented-control.props.d.ts.map +1 -1
  245. package/dist/cjs/components/segmented-control.props.js +2 -1
  246. package/dist/cjs/components/segmented-control.props.js.map +2 -2
  247. package/dist/cjs/components/select.d.ts.map +1 -1
  248. package/dist/cjs/components/select.js +2 -1
  249. package/dist/cjs/components/select.js.map +4 -4
  250. package/dist/cjs/components/select.props.js +1 -0
  251. package/dist/cjs/components/select.props.js.map +1 -1
  252. package/dist/cjs/components/separator.d.ts.map +1 -1
  253. package/dist/cjs/components/separator.js +2 -1
  254. package/dist/cjs/components/separator.js.map +4 -4
  255. package/dist/cjs/components/separator.props.d.ts +1 -1
  256. package/dist/cjs/components/separator.props.js +2 -1
  257. package/dist/cjs/components/separator.props.js.map +2 -2
  258. package/dist/cjs/components/sheet.d.ts +2 -1
  259. package/dist/cjs/components/sheet.d.ts.map +1 -1
  260. package/dist/cjs/components/sheet.js +2 -1
  261. package/dist/cjs/components/sheet.js.map +3 -3
  262. package/dist/cjs/components/shell.context.js +2 -1
  263. package/dist/cjs/components/shell.context.js.map +3 -3
  264. package/dist/cjs/components/shell.d.ts +17 -3
  265. package/dist/cjs/components/shell.d.ts.map +1 -1
  266. package/dist/cjs/components/shell.hooks.js +2 -1
  267. package/dist/cjs/components/shell.hooks.js.map +3 -3
  268. package/dist/cjs/components/shell.js +2 -1
  269. package/dist/cjs/components/shell.js.map +4 -4
  270. package/dist/cjs/components/shell.types.js +1 -0
  271. package/dist/cjs/components/shell.types.js.map +1 -1
  272. package/dist/cjs/components/sidebar.d.ts.map +1 -1
  273. package/dist/cjs/components/sidebar.js +2 -1
  274. package/dist/cjs/components/sidebar.js.map +4 -4
  275. package/dist/cjs/components/slider.d.ts.map +1 -1
  276. package/dist/cjs/components/slider.js +2 -1
  277. package/dist/cjs/components/slider.js.map +3 -3
  278. package/dist/cjs/components/slider.props.d.ts +0 -2
  279. package/dist/cjs/components/slider.props.d.ts.map +1 -1
  280. package/dist/cjs/components/slider.props.js +2 -1
  281. package/dist/cjs/components/slider.props.js.map +2 -2
  282. package/dist/cjs/components/slot.js +1 -0
  283. package/dist/cjs/components/slot.js.map +1 -1
  284. package/dist/cjs/components/spinner.d.ts.map +1 -1
  285. package/dist/cjs/components/spinner.js +2 -1
  286. package/dist/cjs/components/spinner.js.map +3 -3
  287. package/dist/cjs/components/spinner.props.js +1 -0
  288. package/dist/cjs/components/spinner.props.js.map +1 -1
  289. package/dist/cjs/components/switch.js +1 -0
  290. package/dist/cjs/components/switch.js.map +1 -1
  291. package/dist/cjs/components/switch.props.js +1 -0
  292. package/dist/cjs/components/switch.props.js.map +1 -1
  293. package/dist/cjs/components/table.d.ts.map +1 -1
  294. package/dist/cjs/components/table.js +2 -1
  295. package/dist/cjs/components/table.js.map +4 -4
  296. package/dist/cjs/components/table.props.d.ts +0 -2
  297. package/dist/cjs/components/table.props.d.ts.map +1 -1
  298. package/dist/cjs/components/table.props.js +2 -1
  299. package/dist/cjs/components/table.props.js.map +3 -3
  300. package/dist/cjs/components/tabs.d.ts.map +1 -1
  301. package/dist/cjs/components/tabs.js +2 -1
  302. package/dist/cjs/components/tabs.js.map +3 -3
  303. package/dist/cjs/components/tabs.props.js +1 -0
  304. package/dist/cjs/components/tabs.props.js.map +1 -1
  305. package/dist/cjs/components/text-area.d.ts.map +1 -1
  306. package/dist/cjs/components/text-area.js +2 -1
  307. package/dist/cjs/components/text-area.js.map +2 -2
  308. package/dist/cjs/components/text-area.props.js +1 -0
  309. package/dist/cjs/components/text-area.props.js.map +1 -1
  310. package/dist/cjs/components/text-field.d.ts.map +1 -1
  311. package/dist/cjs/components/text-field.js +3 -2
  312. package/dist/cjs/components/text-field.js.map +3 -3
  313. package/dist/cjs/components/text-field.props.js +1 -0
  314. package/dist/cjs/components/text-field.props.js.map +2 -2
  315. package/dist/cjs/components/text.js +1 -0
  316. package/dist/cjs/components/text.js.map +1 -1
  317. package/dist/cjs/components/text.props.js +1 -0
  318. package/dist/cjs/components/text.props.js.map +1 -1
  319. package/dist/cjs/components/theme.d.ts.map +1 -1
  320. package/dist/cjs/components/theme.js +2 -1
  321. package/dist/cjs/components/theme.js.map +3 -3
  322. package/dist/cjs/components/theme.props.js +1 -0
  323. package/dist/cjs/components/theme.props.js.map +1 -1
  324. package/dist/cjs/components/toggle.d.ts +3 -2
  325. package/dist/cjs/components/toggle.d.ts.map +1 -1
  326. package/dist/cjs/components/toggle.js +2 -9
  327. package/dist/cjs/components/toggle.js.map +4 -4
  328. package/dist/cjs/components/toolbar.d.ts +83 -8
  329. package/dist/cjs/components/toolbar.d.ts.map +1 -1
  330. package/dist/cjs/components/toolbar.js +2 -1
  331. package/dist/cjs/components/toolbar.js.map +4 -4
  332. package/dist/cjs/components/toolbar.props.js +1 -0
  333. package/dist/cjs/components/toolbar.props.js.map +1 -1
  334. package/dist/cjs/components/tooltip.d.ts +13 -2
  335. package/dist/cjs/components/tooltip.d.ts.map +1 -1
  336. package/dist/cjs/components/tooltip.js +2 -1
  337. package/dist/cjs/components/tooltip.js.map +3 -3
  338. package/dist/cjs/components/tooltip.props.js +1 -0
  339. package/dist/cjs/components/tooltip.props.js.map +1 -1
  340. package/dist/cjs/components/virtual-menu.d.ts +22 -17
  341. package/dist/cjs/components/virtual-menu.d.ts.map +1 -1
  342. package/dist/cjs/components/virtual-menu.js +2 -1
  343. package/dist/cjs/components/virtual-menu.js.map +3 -3
  344. package/dist/cjs/components/visually-hidden.js +1 -0
  345. package/dist/cjs/components/visually-hidden.js.map +1 -1
  346. package/dist/cjs/helpers/extract-margin-props.d.ts +7 -7
  347. package/dist/cjs/helpers/get-margin-styles.d.ts.map +1 -1
  348. package/dist/cjs/helpers/get-margin-styles.js +1 -1
  349. package/dist/cjs/helpers/get-margin-styles.js.map +3 -3
  350. package/dist/cjs/helpers/index.js +4 -4
  351. package/dist/cjs/helpers/index.js.map +3 -3
  352. package/dist/cjs/hooks/index.js +5 -4
  353. package/dist/cjs/hooks/index.js.map +3 -3
  354. package/dist/cjs/hooks/use-appearance.d.ts.map +1 -1
  355. package/dist/cjs/hooks/use-appearance.js +4 -3
  356. package/dist/cjs/hooks/use-appearance.js.map +3 -3
  357. package/dist/cjs/hooks/use-body-pointer-events-cleanup.d.ts +1 -1
  358. package/dist/cjs/hooks/use-body-pointer-events-cleanup.d.ts.map +1 -1
  359. package/dist/cjs/hooks/use-body-pointer-events-cleanup.js +2 -1
  360. package/dist/cjs/hooks/use-body-pointer-events-cleanup.js.map +3 -3
  361. package/dist/cjs/hooks/use-breakpoint.js +1 -0
  362. package/dist/cjs/hooks/use-breakpoint.js.map +1 -1
  363. package/dist/cjs/hooks/use-live-announcer.js +1 -0
  364. package/dist/cjs/hooks/use-live-announcer.js.map +1 -1
  365. package/dist/cjs/hooks/use-prop-synced-state.js +1 -0
  366. package/dist/cjs/hooks/use-prop-synced-state.js.map +1 -1
  367. package/dist/cjs/hooks/use-scroll-edges.d.ts +4 -2
  368. package/dist/cjs/hooks/use-scroll-edges.d.ts.map +1 -1
  369. package/dist/cjs/hooks/use-scroll-edges.js +2 -1
  370. package/dist/cjs/hooks/use-scroll-edges.js.map +3 -3
  371. package/dist/cjs/hooks/use-thumb-sync.js +1 -0
  372. package/dist/cjs/hooks/use-thumb-sync.js.map +1 -1
  373. package/dist/cjs/hooks/use-toggle-state.js +1 -0
  374. package/dist/cjs/hooks/use-toggle-state.js.map +1 -1
  375. package/dist/cjs/hooks/use-tooltip-wrapper.js +1 -0
  376. package/dist/cjs/hooks/use-tooltip-wrapper.js.map +1 -1
  377. package/dist/cjs/index.js +6 -5
  378. package/dist/cjs/index.js.map +4 -4
  379. package/dist/cjs/props/gap.props.d.ts +4 -4
  380. package/dist/cjs/props/gap.props.js.map +1 -1
  381. package/dist/cjs/props/index.js +1 -1
  382. package/dist/cjs/props/index.js.map +3 -3
  383. package/dist/esm/chunk-2EXOL2BR.js +3 -0
  384. package/dist/esm/chunk-2EXOL2BR.js.map +7 -0
  385. package/dist/esm/chunk-2IU5XPR2.js +3 -0
  386. package/dist/esm/chunk-2IU5XPR2.js.map +7 -0
  387. package/dist/esm/chunk-2IUGM657.js +3 -0
  388. package/dist/esm/chunk-2IUGM657.js.map +7 -0
  389. package/dist/esm/chunk-2VSRZ4IT.js +3 -0
  390. package/dist/esm/chunk-2VSRZ4IT.js.map +7 -0
  391. package/dist/esm/chunk-2XZ7477Y.js +3 -0
  392. package/dist/esm/{chunk-HKPXDQ2B.js.map → chunk-2XZ7477Y.js.map} +1 -1
  393. package/dist/esm/{chunk-GNTNGLYR.js → chunk-2Z2I27ZS.js} +3 -2
  394. package/dist/esm/{chunk-GNTNGLYR.js.map → chunk-2Z2I27ZS.js.map} +1 -1
  395. package/dist/esm/chunk-3223MHQK.js +3 -0
  396. package/dist/esm/{chunk-DSPYHO3L.js.map → chunk-3223MHQK.js.map} +2 -2
  397. package/dist/esm/{chunk-MPTTUBFU.js → chunk-3H23GRNQ.js} +3 -2
  398. package/dist/esm/{chunk-MPTTUBFU.js.map → chunk-3H23GRNQ.js.map} +2 -2
  399. package/dist/esm/chunk-3LIF53YY.js +13 -0
  400. package/dist/esm/chunk-3LIF53YY.js.map +7 -0
  401. package/dist/esm/chunk-3QWGSRYC.js +3 -0
  402. package/dist/esm/chunk-3QWGSRYC.js.map +7 -0
  403. package/dist/esm/chunk-3WZLXGUE.js +3 -0
  404. package/dist/esm/chunk-3WZLXGUE.js.map +7 -0
  405. package/dist/esm/chunk-45O3JZWQ.js +6 -0
  406. package/dist/esm/chunk-45O3JZWQ.js.map +7 -0
  407. package/dist/esm/chunk-4ABQ6CDI.js +3 -0
  408. package/dist/esm/chunk-4ABQ6CDI.js.map +7 -0
  409. package/dist/esm/{chunk-IAEAXIBI.js → chunk-4J7QDLKI.js} +3 -2
  410. package/dist/esm/{chunk-IAEAXIBI.js.map → chunk-4J7QDLKI.js.map} +1 -1
  411. package/dist/esm/chunk-4Q5PUIDJ.js +3 -0
  412. package/dist/esm/chunk-4Q5PUIDJ.js.map +7 -0
  413. package/dist/esm/chunk-54HUG34P.js +3 -0
  414. package/dist/esm/chunk-54HUG34P.js.map +7 -0
  415. package/dist/esm/chunk-5EP3UTM7.js +3 -0
  416. package/dist/esm/{chunk-Q4IA622Q.js.map → chunk-5EP3UTM7.js.map} +1 -1
  417. package/dist/esm/chunk-5JYSYTHA.js +3 -0
  418. package/dist/esm/chunk-5JYSYTHA.js.map +7 -0
  419. package/dist/esm/{chunk-FWB47YCH.js → chunk-5KMEUZWN.js} +2 -1
  420. package/dist/esm/{chunk-FWB47YCH.js.map → chunk-5KMEUZWN.js.map} +1 -1
  421. package/dist/esm/{chunk-7MC7N4BC.js → chunk-5KQCG7AV.js} +2 -1
  422. package/dist/esm/{chunk-7MC7N4BC.js.map → chunk-5KQCG7AV.js.map} +1 -1
  423. package/dist/esm/chunk-5RFDCAKC.js +3 -0
  424. package/dist/esm/{chunk-SKOYHBIE.js.map → chunk-5RFDCAKC.js.map} +1 -1
  425. package/dist/esm/{chunk-BIITGC3Z.js → chunk-5WTSKXAE.js} +3 -2
  426. package/dist/esm/{chunk-BIITGC3Z.js.map → chunk-5WTSKXAE.js.map} +1 -1
  427. package/dist/esm/{chunk-OSSNMF5U.js → chunk-647DRBXQ.js} +3 -2
  428. package/dist/esm/{chunk-OSSNMF5U.js.map → chunk-647DRBXQ.js.map} +1 -1
  429. package/dist/esm/{chunk-KKMOGHIY.js → chunk-64EFWPHI.js} +3 -2
  430. package/dist/esm/{chunk-KKMOGHIY.js.map → chunk-64EFWPHI.js.map} +1 -1
  431. package/dist/esm/{chunk-BWLCTTTN.js → chunk-65KD6WS6.js} +3 -2
  432. package/dist/esm/{chunk-BWLCTTTN.js.map → chunk-65KD6WS6.js.map} +2 -2
  433. package/dist/esm/{chunk-RWTSGUVJ.js → chunk-6AMWYEM7.js} +3 -2
  434. package/dist/esm/{chunk-RWTSGUVJ.js.map → chunk-6AMWYEM7.js.map} +1 -1
  435. package/dist/esm/{chunk-ELAW7ZUG.js → chunk-6FLLFCBU.js} +2 -2
  436. package/dist/esm/{chunk-4P6TKZCA.js → chunk-6UZT3ZLO.js} +3 -2
  437. package/dist/esm/{chunk-4P6TKZCA.js.map → chunk-6UZT3ZLO.js.map} +1 -1
  438. package/dist/esm/chunk-7IHBNDCE.js +3 -0
  439. package/dist/esm/{chunk-XKSU3NLG.js.map → chunk-7IHBNDCE.js.map} +2 -2
  440. package/dist/esm/chunk-7J7RPEPB.js +3 -0
  441. package/dist/esm/chunk-7J7RPEPB.js.map +7 -0
  442. package/dist/esm/chunk-7N2Q5WOM.js +3 -0
  443. package/dist/esm/chunk-7N2Q5WOM.js.map +7 -0
  444. package/dist/esm/{chunk-25FNCKUM.js → chunk-7ROKZHH2.js} +3 -2
  445. package/dist/esm/{chunk-25FNCKUM.js.map → chunk-7ROKZHH2.js.map} +1 -1
  446. package/dist/esm/chunk-7VJF6EXN.js +3 -0
  447. package/dist/esm/chunk-7VJF6EXN.js.map +7 -0
  448. package/dist/esm/chunk-A2OMWZI7.js +2 -0
  449. package/dist/esm/chunk-A7QRPXXB.js +3 -0
  450. package/dist/esm/chunk-A7QRPXXB.js.map +7 -0
  451. package/dist/esm/chunk-AG2YETE6.js +3 -0
  452. package/dist/esm/chunk-AG2YETE6.js.map +7 -0
  453. package/dist/esm/{chunk-4BU4R7UM.js → chunk-AOBY2OUZ.js} +3 -2
  454. package/dist/esm/{chunk-4BU4R7UM.js.map → chunk-AOBY2OUZ.js.map} +1 -1
  455. package/dist/esm/{chunk-XEZXKPLE.js → chunk-AXODGYRY.js} +2 -1
  456. package/dist/esm/{chunk-XEZXKPLE.js.map → chunk-AXODGYRY.js.map} +1 -1
  457. package/dist/esm/chunk-AYKOOEZR.js +2 -0
  458. package/dist/esm/{chunk-YHYPIJCR.js → chunk-AZHSPPBV.js} +3 -2
  459. package/dist/esm/{chunk-YHYPIJCR.js.map → chunk-AZHSPPBV.js.map} +1 -1
  460. package/dist/esm/{chunk-ERNM3KVF.js → chunk-B6YGNB3V.js} +2 -1
  461. package/dist/esm/{chunk-ERNM3KVF.js.map → chunk-B6YGNB3V.js.map} +1 -1
  462. package/dist/esm/chunk-BMKUGZ4I.js +3 -0
  463. package/dist/esm/{chunk-VPSMETY2.js.map → chunk-BMKUGZ4I.js.map} +1 -1
  464. package/dist/esm/chunk-BOLSK63X.js +3 -0
  465. package/dist/esm/{chunk-X4A3XRBY.js.map → chunk-BOLSK63X.js.map} +1 -1
  466. package/dist/esm/chunk-BUZGRMDD.js +3 -0
  467. package/dist/esm/chunk-BUZGRMDD.js.map +7 -0
  468. package/dist/esm/{chunk-IDOZJVO6.js → chunk-CAAEEHGQ.js} +3 -2
  469. package/dist/esm/{chunk-IDOZJVO6.js.map → chunk-CAAEEHGQ.js.map} +1 -1
  470. package/dist/esm/{chunk-3QZBWH2A.js → chunk-CKJXTEVO.js} +3 -2
  471. package/dist/esm/chunk-CKJXTEVO.js.map +7 -0
  472. package/dist/esm/chunk-CLJ6SEGP.js +3 -0
  473. package/dist/esm/chunk-CLJ6SEGP.js.map +7 -0
  474. package/dist/esm/chunk-CR65RYGM.js +3 -0
  475. package/dist/esm/chunk-CR65RYGM.js.map +7 -0
  476. package/dist/esm/chunk-CRCYUJMK.js +3 -0
  477. package/dist/esm/chunk-CRCYUJMK.js.map +7 -0
  478. package/dist/esm/chunk-CV7QQTI3.js +3 -0
  479. package/dist/esm/chunk-CV7QQTI3.js.map +7 -0
  480. package/dist/esm/chunk-CYTPMHSJ.js +3 -0
  481. package/dist/esm/chunk-CYTPMHSJ.js.map +7 -0
  482. package/dist/esm/chunk-D4P7332M.js +3 -0
  483. package/dist/esm/chunk-D4P7332M.js.map +7 -0
  484. package/dist/esm/chunk-DI7RUMLO.js +3 -0
  485. package/dist/esm/chunk-DI7RUMLO.js.map +7 -0
  486. package/dist/esm/{chunk-OY5NT7VT.js → chunk-DVXDFCCV.js} +3 -2
  487. package/dist/esm/{chunk-OY5NT7VT.js.map → chunk-DVXDFCCV.js.map} +1 -1
  488. package/dist/esm/chunk-E4EMG3RC.js +3 -0
  489. package/dist/esm/chunk-E4EMG3RC.js.map +7 -0
  490. package/dist/esm/chunk-EAIQIW23.js +3 -0
  491. package/dist/esm/chunk-EAIQIW23.js.map +7 -0
  492. package/dist/esm/chunk-ENAW44VE.js +3 -0
  493. package/dist/esm/chunk-ENAW44VE.js.map +7 -0
  494. package/dist/esm/chunk-EVCQ6TG5.js +3 -0
  495. package/dist/esm/{chunk-JBHRV364.js.map → chunk-EVCQ6TG5.js.map} +2 -2
  496. package/dist/esm/{chunk-RAVZ7F5L.js → chunk-EY6TCYGG.js} +3 -2
  497. package/dist/esm/{chunk-RAVZ7F5L.js.map → chunk-EY6TCYGG.js.map} +1 -1
  498. package/dist/esm/chunk-FFJE25TJ.js +3 -0
  499. package/dist/esm/chunk-FFJE25TJ.js.map +7 -0
  500. package/dist/esm/chunk-FI32HA4X.js +3 -0
  501. package/dist/esm/{chunk-YXLDRDHW.js.map → chunk-FI32HA4X.js.map} +3 -3
  502. package/dist/esm/{chunk-NA237RHQ.js → chunk-FJLYSZV3.js} +1 -1
  503. package/dist/esm/{chunk-NA237RHQ.js.map → chunk-FJLYSZV3.js.map} +1 -1
  504. package/dist/esm/{chunk-DNOQ6E3W.js → chunk-FM3GBCX5.js} +3 -2
  505. package/dist/esm/{chunk-DNOQ6E3W.js.map → chunk-FM3GBCX5.js.map} +1 -1
  506. package/dist/esm/chunk-G32GSPNO.js +3 -0
  507. package/dist/esm/chunk-G32GSPNO.js.map +7 -0
  508. package/dist/esm/{chunk-TBZO22XK.js → chunk-G66WDIIV.js} +3 -2
  509. package/dist/esm/{chunk-TBZO22XK.js.map → chunk-G66WDIIV.js.map} +1 -1
  510. package/dist/esm/{chunk-PN3RQFSU.js → chunk-GHUAUFG7.js} +2 -1
  511. package/dist/esm/{chunk-PN3RQFSU.js.map → chunk-GHUAUFG7.js.map} +1 -1
  512. package/dist/esm/chunk-GHWEXMF6.js +3 -0
  513. package/dist/esm/chunk-GHWEXMF6.js.map +7 -0
  514. package/dist/esm/{chunk-IX5HIHVI.js → chunk-GKDGNPBD.js} +3 -2
  515. package/dist/esm/{chunk-IX5HIHVI.js.map → chunk-GKDGNPBD.js.map} +3 -3
  516. package/dist/esm/chunk-GNPTPIL7.js +3 -0
  517. package/dist/esm/{chunk-ZNDCZM5A.js.map → chunk-GNPTPIL7.js.map} +2 -2
  518. package/dist/esm/chunk-GPQSC6GL.js +3 -0
  519. package/dist/esm/chunk-GPQSC6GL.js.map +7 -0
  520. package/dist/esm/{chunk-THUBY6L2.js → chunk-GZ333J7L.js} +3 -2
  521. package/dist/esm/{chunk-THUBY6L2.js.map → chunk-GZ333J7L.js.map} +1 -1
  522. package/dist/esm/chunk-HBWBPBSA.js +3 -0
  523. package/dist/esm/chunk-HBWBPBSA.js.map +7 -0
  524. package/dist/esm/chunk-I3SRUPUP.js +3 -0
  525. package/dist/esm/chunk-I3SRUPUP.js.map +7 -0
  526. package/dist/esm/{chunk-3XHTJZNP.js → chunk-I6SMGWS5.js} +3 -2
  527. package/dist/esm/{chunk-3XHTJZNP.js.map → chunk-I6SMGWS5.js.map} +1 -1
  528. package/dist/esm/chunk-ILWS2JUE.js +3 -0
  529. package/dist/esm/chunk-ILWS2JUE.js.map +7 -0
  530. package/dist/esm/{chunk-QWDCLL6R.js → chunk-IN2WND4B.js} +3 -2
  531. package/dist/esm/{chunk-QWDCLL6R.js.map → chunk-IN2WND4B.js.map} +1 -1
  532. package/dist/esm/chunk-IO43RGNR.js +3 -0
  533. package/dist/esm/chunk-IO43RGNR.js.map +7 -0
  534. package/dist/esm/{chunk-OJQNLROL.js → chunk-IQ2RMFOM.js} +3 -2
  535. package/dist/esm/{chunk-OJQNLROL.js.map → chunk-IQ2RMFOM.js.map} +2 -2
  536. package/dist/esm/{chunk-DCNHG6VN.js → chunk-IZIDRDQW.js} +3 -2
  537. package/dist/esm/{chunk-DCNHG6VN.js.map → chunk-IZIDRDQW.js.map} +1 -1
  538. package/dist/esm/{chunk-7FTUTUMD.js → chunk-IZXML75Y.js} +2 -2
  539. package/dist/esm/chunk-J3QIUJ6F.js +2 -0
  540. package/dist/esm/chunk-JIF77MRB.js +3 -0
  541. package/dist/esm/chunk-JIF77MRB.js.map +7 -0
  542. package/dist/esm/{chunk-PBFSBHBS.js → chunk-JUY7CBSL.js} +2 -2
  543. package/dist/esm/chunk-JZ5Z53MN.js +2 -0
  544. package/dist/esm/{chunk-YEHM3FZN.js → chunk-JZVLP2VF.js} +3 -2
  545. package/dist/esm/{chunk-YEHM3FZN.js.map → chunk-JZVLP2VF.js.map} +1 -1
  546. package/dist/esm/chunk-KNBSG2WA.js +3 -0
  547. package/dist/esm/chunk-KNBSG2WA.js.map +7 -0
  548. package/dist/esm/{chunk-IWCFJJBI.js → chunk-KOAWATCI.js} +2 -1
  549. package/dist/esm/{chunk-IWCFJJBI.js.map → chunk-KOAWATCI.js.map} +1 -1
  550. package/dist/esm/chunk-KRFXTPEW.js +3 -0
  551. package/dist/esm/{chunk-63PQNLFJ.js.map → chunk-KRFXTPEW.js.map} +1 -1
  552. package/dist/esm/chunk-KSYHZCLD.js +3 -0
  553. package/dist/esm/{chunk-EZYXYLR2.js.map → chunk-KSYHZCLD.js.map} +1 -1
  554. package/dist/esm/{chunk-VW46DG7H.js → chunk-L4NF3Q2T.js} +3 -2
  555. package/dist/esm/{chunk-VW46DG7H.js.map → chunk-L4NF3Q2T.js.map} +1 -1
  556. package/dist/esm/chunk-L54FWKJE.js +3 -0
  557. package/dist/esm/chunk-L54FWKJE.js.map +7 -0
  558. package/dist/esm/{chunk-XTDXXQTB.js → chunk-L66IUPDW.js} +3 -2
  559. package/dist/esm/{chunk-XTDXXQTB.js.map → chunk-L66IUPDW.js.map} +1 -1
  560. package/dist/esm/chunk-LB2HB4NG.js +3 -0
  561. package/dist/esm/{chunk-NNZTSXKH.js.map → chunk-LB2HB4NG.js.map} +2 -2
  562. package/dist/esm/{chunk-VVWYAVHM.js → chunk-LCG3JZ3C.js} +3 -2
  563. package/dist/esm/{chunk-VVWYAVHM.js.map → chunk-LCG3JZ3C.js.map} +1 -1
  564. package/dist/esm/chunk-LPLW7OWA.js +3 -0
  565. package/dist/esm/chunk-LPLW7OWA.js.map +7 -0
  566. package/dist/esm/chunk-M37GE2TE.js +3 -0
  567. package/dist/esm/{chunk-UONSKZQT.js.map → chunk-M37GE2TE.js.map} +1 -1
  568. package/dist/esm/{chunk-5YLKKQFK.js → chunk-MAA6LEE2.js} +2 -1
  569. package/dist/esm/{chunk-5YLKKQFK.js.map → chunk-MAA6LEE2.js.map} +1 -1
  570. package/dist/esm/chunk-MXIVYALY.js +3 -0
  571. package/dist/esm/chunk-MXIVYALY.js.map +7 -0
  572. package/dist/esm/chunk-N53NJCEM.js +3 -0
  573. package/dist/esm/chunk-N53NJCEM.js.map +7 -0
  574. package/dist/esm/{chunk-LXTGEI62.js → chunk-NBVCQQSY.js} +3 -2
  575. package/dist/esm/{chunk-LXTGEI62.js.map → chunk-NBVCQQSY.js.map} +1 -1
  576. package/dist/esm/chunk-NG54K6FL.js +2 -0
  577. package/dist/esm/chunk-NMQGDBLD.js +3 -0
  578. package/dist/esm/chunk-NMQGDBLD.js.map +7 -0
  579. package/dist/esm/chunk-OAJ5DARR.js +3 -0
  580. package/dist/esm/chunk-OAJ5DARR.js.map +7 -0
  581. package/dist/esm/chunk-OKQAVYW4.js +3 -0
  582. package/dist/esm/chunk-OKQAVYW4.js.map +7 -0
  583. package/dist/esm/chunk-PF67GJ5D.js +3 -0
  584. package/dist/esm/chunk-PF67GJ5D.js.map +7 -0
  585. package/dist/esm/chunk-PHWT772P.js +3 -0
  586. package/dist/esm/{chunk-XZQSSRTG.js.map → chunk-PHWT772P.js.map} +1 -1
  587. package/dist/esm/chunk-PPQ7URZL.js +3 -0
  588. package/dist/esm/chunk-PPQ7URZL.js.map +7 -0
  589. package/dist/esm/{chunk-FNAE6HUI.js → chunk-PT45Q47V.js} +3 -2
  590. package/dist/esm/{chunk-FNAE6HUI.js.map → chunk-PT45Q47V.js.map} +1 -1
  591. package/dist/esm/{chunk-HCBR74BW.js → chunk-PT4KBXXP.js} +3 -2
  592. package/dist/esm/{chunk-HCBR74BW.js.map → chunk-PT4KBXXP.js.map} +1 -1
  593. package/dist/esm/chunk-PZ6Z7WTR.js +3 -0
  594. package/dist/esm/chunk-PZ6Z7WTR.js.map +7 -0
  595. package/dist/esm/{chunk-PSPENFPH.js → chunk-PZCQDZVJ.js} +3 -2
  596. package/dist/esm/{chunk-PSPENFPH.js.map → chunk-PZCQDZVJ.js.map} +1 -1
  597. package/dist/esm/{chunk-I53SGTKV.js → chunk-QH64BDXO.js} +3 -2
  598. package/dist/esm/{chunk-I53SGTKV.js.map → chunk-QH64BDXO.js.map} +1 -1
  599. package/dist/esm/{chunk-LUNWI377.js → chunk-QQY4WFJL.js} +3 -2
  600. package/dist/esm/{chunk-LUNWI377.js.map → chunk-QQY4WFJL.js.map} +1 -1
  601. package/dist/esm/{chunk-BE7LMBBC.js → chunk-RIHTVZVJ.js} +3 -2
  602. package/dist/esm/{chunk-BE7LMBBC.js.map → chunk-RIHTVZVJ.js.map} +1 -1
  603. package/dist/esm/chunk-RVPLXLRA.js +3 -0
  604. package/dist/esm/chunk-RVPLXLRA.js.map +7 -0
  605. package/dist/esm/{chunk-GS2QSZUR.js → chunk-SCIFT27R.js} +2 -1
  606. package/dist/esm/{chunk-GS2QSZUR.js.map → chunk-SCIFT27R.js.map} +1 -1
  607. package/dist/esm/chunk-SGJKXIWG.js +3 -0
  608. package/dist/esm/{chunk-DFGY2NZB.js.map → chunk-SGJKXIWG.js.map} +1 -1
  609. package/dist/esm/chunk-SHLERRO3.js +3 -0
  610. package/dist/esm/chunk-SHLERRO3.js.map +7 -0
  611. package/dist/esm/chunk-SV3CYQY5.js +3 -0
  612. package/dist/esm/{chunk-LVCUY2OS.js.map → chunk-SV3CYQY5.js.map} +2 -2
  613. package/dist/esm/chunk-TDT2CNES.js +2 -0
  614. package/dist/esm/chunk-TDT2CNES.js.map +7 -0
  615. package/dist/esm/chunk-TGRHRMQI.js +3 -0
  616. package/dist/esm/chunk-TGRHRMQI.js.map +7 -0
  617. package/dist/esm/{chunk-HIEGLLY7.js → chunk-TGUWRU7N.js} +2 -1
  618. package/dist/esm/{chunk-HIEGLLY7.js.map → chunk-TGUWRU7N.js.map} +1 -1
  619. package/dist/esm/{chunk-7ZOGH5NT.js → chunk-U5GQ3IFS.js} +2 -1
  620. package/dist/esm/{chunk-7ZOGH5NT.js.map → chunk-U5GQ3IFS.js.map} +1 -1
  621. package/dist/esm/chunk-UFJGZUKK.js +3 -0
  622. package/dist/esm/chunk-UFJGZUKK.js.map +7 -0
  623. package/dist/esm/chunk-UUQGOQ5H.js +3 -0
  624. package/dist/esm/{chunk-23KT3D2Z.js.map → chunk-UUQGOQ5H.js.map} +3 -3
  625. package/dist/esm/chunk-UZAS4PYM.js +3 -0
  626. package/dist/esm/chunk-UZAS4PYM.js.map +7 -0
  627. package/dist/esm/{chunk-OS3FCYZY.js → chunk-VQPANPMI.js} +2 -1
  628. package/dist/esm/chunk-VVBSYWUA.js +3 -0
  629. package/dist/esm/chunk-VVBSYWUA.js.map +7 -0
  630. package/dist/esm/chunk-WCGQ4IDE.js +3 -0
  631. package/dist/esm/{chunk-H3IAGAEL.js.map → chunk-WCGQ4IDE.js.map} +1 -1
  632. package/dist/esm/{chunk-HWQ3NTJP.js → chunk-WEBNIUEX.js} +2 -1
  633. package/dist/esm/{chunk-HWQ3NTJP.js.map → chunk-WEBNIUEX.js.map} +1 -1
  634. package/dist/esm/chunk-WH7PQSSG.js +2 -0
  635. package/dist/esm/{chunk-KL73COYX.js → chunk-WMZLMZHB.js} +2 -1
  636. package/dist/esm/{chunk-KL73COYX.js.map → chunk-WMZLMZHB.js.map} +1 -1
  637. package/dist/esm/{chunk-GBQZ4Z2H.js → chunk-WN3WMFAM.js} +3 -2
  638. package/dist/esm/{chunk-GBQZ4Z2H.js.map → chunk-WN3WMFAM.js.map} +1 -1
  639. package/dist/esm/{chunk-ETQNRMHU.js → chunk-WT2SYGTU.js} +3 -2
  640. package/dist/esm/{chunk-ETQNRMHU.js.map → chunk-WT2SYGTU.js.map} +1 -1
  641. package/dist/esm/{chunk-SUPFDIJL.js → chunk-WTP2KIK3.js} +2 -1
  642. package/dist/esm/{chunk-SUPFDIJL.js.map → chunk-WTP2KIK3.js.map} +1 -1
  643. package/dist/esm/{chunk-AGAQC4HH.js → chunk-WUCBFB25.js} +2 -1
  644. package/dist/esm/{chunk-AGAQC4HH.js.map → chunk-WUCBFB25.js.map} +1 -1
  645. package/dist/esm/chunk-WZKSLTBH.js +3 -0
  646. package/dist/esm/{chunk-BJUCBOGU.js.map → chunk-WZKSLTBH.js.map} +1 -1
  647. package/dist/esm/chunk-X272YV2E.js +3 -0
  648. package/dist/esm/chunk-X272YV2E.js.map +7 -0
  649. package/dist/esm/chunk-XH2CRCXR.js +3 -0
  650. package/dist/esm/chunk-XH2CRCXR.js.map +7 -0
  651. package/dist/esm/{chunk-KZEZDBE7.js → chunk-XL5OHW6Z.js} +3 -2
  652. package/dist/esm/{chunk-KZEZDBE7.js.map → chunk-XL5OHW6Z.js.map} +1 -1
  653. package/dist/esm/chunk-XMHNOIPB.js +3 -0
  654. package/dist/esm/{chunk-3BUQ7ADW.js.map → chunk-XMHNOIPB.js.map} +1 -1
  655. package/dist/esm/chunk-XU74PNM2.js +3 -0
  656. package/dist/esm/chunk-XU74PNM2.js.map +7 -0
  657. package/dist/esm/{chunk-3J6AUDID.js → chunk-XUCR7L4G.js} +2 -1
  658. package/dist/esm/{chunk-3J6AUDID.js.map → chunk-XUCR7L4G.js.map} +1 -1
  659. package/dist/esm/chunk-XVDT6DQZ.js +3 -0
  660. package/dist/esm/{chunk-TZTUPQYK.js.map → chunk-XVDT6DQZ.js.map} +1 -1
  661. package/dist/esm/{chunk-2N2AQNJH.js → chunk-Y2DBXOLT.js} +2 -1
  662. package/dist/esm/{chunk-2N2AQNJH.js.map → chunk-Y2DBXOLT.js.map} +1 -1
  663. package/dist/esm/chunk-YD2D73LF.js +3 -0
  664. package/dist/esm/chunk-YD2D73LF.js.map +7 -0
  665. package/dist/esm/chunk-YIKLO2XL.js +3 -0
  666. package/dist/esm/chunk-YIKLO2XL.js.map +7 -0
  667. package/dist/esm/chunk-YNCI5PY6.js +3 -0
  668. package/dist/esm/chunk-YNCI5PY6.js.map +7 -0
  669. package/dist/esm/chunk-YOSLXJI5.js +3 -0
  670. package/dist/esm/chunk-YOSLXJI5.js.map +7 -0
  671. package/dist/esm/chunk-YVZTQA2L.js +3 -0
  672. package/dist/esm/chunk-YVZTQA2L.js.map +7 -0
  673. package/dist/esm/chunk-YWG476GC.js +3 -0
  674. package/dist/esm/{chunk-MGQ4A2FI.js.map → chunk-YWG476GC.js.map} +1 -1
  675. package/dist/esm/chunk-YZZMQ457.js +3 -0
  676. package/dist/esm/{chunk-S6GWR6EZ.js.map → chunk-YZZMQ457.js.map} +1 -1
  677. package/dist/esm/chunk-Z27REN6T.js +3 -0
  678. package/dist/esm/chunk-Z27REN6T.js.map +7 -0
  679. package/dist/esm/{chunk-FVY44PTM.js → chunk-ZFDHZEWN.js} +3 -2
  680. package/dist/esm/{chunk-FVY44PTM.js.map → chunk-ZFDHZEWN.js.map} +1 -1
  681. package/dist/esm/chunk-ZPWKWESI.js +3 -0
  682. package/dist/esm/chunk-ZPWKWESI.js.map +7 -0
  683. package/dist/esm/components/_internal/base-button.d.ts +11 -1
  684. package/dist/esm/components/_internal/base-button.d.ts.map +1 -1
  685. package/dist/esm/components/_internal/base-button.js +2 -1
  686. package/dist/esm/components/_internal/base-button.props.js +2 -1
  687. package/dist/esm/components/_internal/base-checkbox.props.js +2 -1
  688. package/dist/esm/components/_internal/base-menu.props.js +2 -1
  689. package/dist/esm/components/_internal/base-menu.utils.js +2 -1
  690. package/dist/esm/components/_internal/base-radio.props.js +2 -1
  691. package/dist/esm/components/_internal/base-tab-list.props.js +2 -1
  692. package/dist/esm/components/_internal/dropdown-menu-drill-down.d.ts +19 -7
  693. package/dist/esm/components/_internal/dropdown-menu-drill-down.d.ts.map +1 -1
  694. package/dist/esm/components/_internal/dropdown-menu-drill-down.js +2 -1
  695. package/dist/esm/components/_internal/menu-context.d.ts +12 -0
  696. package/dist/esm/components/_internal/menu-context.d.ts.map +1 -1
  697. package/dist/esm/components/_internal/menu-context.js +2 -1
  698. package/dist/esm/components/_internal/pane-chrome.d.ts +19 -2
  699. package/dist/esm/components/_internal/pane-chrome.d.ts.map +1 -1
  700. package/dist/esm/components/_internal/pane-chrome.js +2 -1
  701. package/dist/esm/components/_internal/shell-bottom.d.ts +1 -1
  702. package/dist/esm/components/_internal/shell-bottom.d.ts.map +1 -1
  703. package/dist/esm/components/_internal/shell-bottom.js +2 -1
  704. package/dist/esm/components/_internal/shell-handles.d.ts.map +1 -1
  705. package/dist/esm/components/_internal/shell-handles.js +2 -1
  706. package/dist/esm/components/_internal/shell-inspector.d.ts +1 -1
  707. package/dist/esm/components/_internal/shell-inspector.d.ts.map +1 -1
  708. package/dist/esm/components/_internal/shell-inspector.js +2 -1
  709. package/dist/esm/components/_internal/shell-pane.d.ts.map +1 -1
  710. package/dist/esm/components/_internal/shell-pane.js +2 -1
  711. package/dist/esm/components/_internal/shell-resizable.d.ts.map +1 -1
  712. package/dist/esm/components/_internal/shell-resizable.js +2 -1
  713. package/dist/esm/components/_internal/shell-resize.js +2 -1
  714. package/dist/esm/components/_internal/shell-rest.js +2 -1
  715. package/dist/esm/components/_internal/shell-sidebar.d.ts +1 -1
  716. package/dist/esm/components/_internal/shell-sidebar.d.ts.map +1 -1
  717. package/dist/esm/components/_internal/shell-sidebar.js +2 -1
  718. package/dist/esm/components/_internal/shell-store.d.ts.map +1 -1
  719. package/dist/esm/components/_internal/shell-store.js +2 -1
  720. package/dist/esm/components/accessible-icon.js +2 -1
  721. package/dist/esm/components/accordion.d.ts +2 -2
  722. package/dist/esm/components/accordion.d.ts.map +1 -1
  723. package/dist/esm/components/accordion.js +2 -1
  724. package/dist/esm/components/accordion.props.js +2 -1
  725. package/dist/esm/components/alert-dialog.d.ts.map +1 -1
  726. package/dist/esm/components/alert-dialog.js +2 -1
  727. package/dist/esm/components/alert-dialog.props.js +2 -1
  728. package/dist/esm/components/avatar.d.ts +1 -1
  729. package/dist/esm/components/avatar.d.ts.map +1 -1
  730. package/dist/esm/components/avatar.js +2 -1
  731. package/dist/esm/components/avatar.props.d.ts +8 -0
  732. package/dist/esm/components/avatar.props.d.ts.map +1 -1
  733. package/dist/esm/components/avatar.props.js +2 -1
  734. package/dist/esm/components/blockquote.d.ts +1 -1
  735. package/dist/esm/components/blockquote.d.ts.map +1 -1
  736. package/dist/esm/components/blockquote.js +2 -1
  737. package/dist/esm/components/blockquote.props.js +2 -1
  738. package/dist/esm/components/box.js +2 -1
  739. package/dist/esm/components/box.props.js +2 -1
  740. package/dist/esm/components/button.d.ts.map +1 -1
  741. package/dist/esm/components/button.js +2 -1
  742. package/dist/esm/components/button.props.js +2 -1
  743. package/dist/esm/components/card.js +2 -1
  744. package/dist/esm/components/card.props.js +2 -1
  745. package/dist/esm/components/chatbar.d.ts.map +1 -1
  746. package/dist/esm/components/chatbar.js +2 -1
  747. package/dist/esm/components/checkbox-group.d.ts.map +1 -1
  748. package/dist/esm/components/checkbox-group.js +2 -1
  749. package/dist/esm/components/checkbox-group.primitive.d.ts +12 -5
  750. package/dist/esm/components/checkbox-group.primitive.d.ts.map +1 -1
  751. package/dist/esm/components/checkbox-group.primitive.js +2 -1
  752. package/dist/esm/components/checkbox-group.props.js +2 -1
  753. package/dist/esm/components/checkbox.js +2 -1
  754. package/dist/esm/components/checkbox.props.js +2 -1
  755. package/dist/esm/components/chip.d.ts.map +1 -1
  756. package/dist/esm/components/chip.js +2 -1
  757. package/dist/esm/components/chip.props.js +2 -1
  758. package/dist/esm/components/code.d.ts.map +1 -1
  759. package/dist/esm/components/code.js +2 -1
  760. package/dist/esm/components/code.props.js +2 -1
  761. package/dist/esm/components/combobox.d.ts.map +1 -1
  762. package/dist/esm/components/combobox.js +2 -1
  763. package/dist/esm/components/combobox.props.js +2 -1
  764. package/dist/esm/components/context-menu.d.ts +1 -2
  765. package/dist/esm/components/context-menu.d.ts.map +1 -1
  766. package/dist/esm/components/context-menu.js +2 -1
  767. package/dist/esm/components/context-menu.props.js +2 -1
  768. package/dist/esm/components/dialog.d.ts +1 -1
  769. package/dist/esm/components/dialog.d.ts.map +1 -1
  770. package/dist/esm/components/dialog.js +2 -1
  771. package/dist/esm/components/dialog.props.js +2 -1
  772. package/dist/esm/components/dropdown-menu.d.ts +1 -2
  773. package/dist/esm/components/dropdown-menu.d.ts.map +1 -1
  774. package/dist/esm/components/dropdown-menu.js +2 -1
  775. package/dist/esm/components/dropdown-menu.props.js +2 -1
  776. package/dist/esm/components/flex.js +2 -1
  777. package/dist/esm/components/flex.props.js +2 -1
  778. package/dist/esm/components/grid.js +2 -1
  779. package/dist/esm/components/grid.props.js +2 -1
  780. package/dist/esm/components/heading.d.ts +2 -2
  781. package/dist/esm/components/heading.d.ts.map +1 -1
  782. package/dist/esm/components/heading.js +2 -1
  783. package/dist/esm/components/heading.props.d.ts +1 -1
  784. package/dist/esm/components/heading.props.js +2 -1
  785. package/dist/esm/components/icons.d.ts +3 -1
  786. package/dist/esm/components/icons.d.ts.map +1 -1
  787. package/dist/esm/components/icons.js +2 -1
  788. package/dist/esm/components/image.d.ts +9 -2
  789. package/dist/esm/components/image.d.ts.map +1 -1
  790. package/dist/esm/components/image.js +2 -1
  791. package/dist/esm/components/image.props.js +2 -1
  792. package/dist/esm/components/index.d.ts +2 -2
  793. package/dist/esm/components/index.d.ts.map +1 -1
  794. package/dist/esm/components/index.js +2 -1
  795. package/dist/esm/components/kbd.js +2 -1
  796. package/dist/esm/components/kbd.props.js +2 -1
  797. package/dist/esm/components/link.js +2 -1
  798. package/dist/esm/components/link.props.js +2 -1
  799. package/dist/esm/components/message-scroller.d.ts +2 -2
  800. package/dist/esm/components/message-scroller.d.ts.map +1 -1
  801. package/dist/esm/components/message-scroller.js +2 -1
  802. package/dist/esm/components/navbar.d.ts.map +1 -1
  803. package/dist/esm/components/navbar.js +2 -1
  804. package/dist/esm/components/navbar.props.js +2 -1
  805. package/dist/esm/components/notice.d.ts +4 -1
  806. package/dist/esm/components/notice.d.ts.map +1 -1
  807. package/dist/esm/components/notice.js +2 -1
  808. package/dist/esm/components/popover.d.ts +3 -1
  809. package/dist/esm/components/popover.d.ts.map +1 -1
  810. package/dist/esm/components/popover.js +2 -1
  811. package/dist/esm/components/popover.props.js +2 -1
  812. package/dist/esm/components/portal.js +2 -1
  813. package/dist/esm/components/progress.d.ts.map +1 -1
  814. package/dist/esm/components/progress.js +2 -1
  815. package/dist/esm/components/progress.props.js +2 -1
  816. package/dist/esm/components/radio-group.js +2 -1
  817. package/dist/esm/components/radio-group.props.js +2 -1
  818. package/dist/esm/components/radio.js +2 -1
  819. package/dist/esm/components/radio.props.js +2 -1
  820. package/dist/esm/components/reset.js +2 -1
  821. package/dist/esm/components/schemas/base-button.schema.js +2 -1
  822. package/dist/esm/components/schemas/button.schema.d.ts +2 -2
  823. package/dist/esm/components/schemas/button.schema.js +2 -1
  824. package/dist/esm/components/schemas/index.js +2 -1
  825. package/dist/esm/components/schemas/index.js.map +1 -1
  826. package/dist/esm/components/schemas/shell.schema.js +2 -1
  827. package/dist/esm/components/schemas/toggle.schema.d.ts +1 -1
  828. package/dist/esm/components/schemas/toggle.schema.js +2 -1
  829. package/dist/esm/components/scroll-area.d.ts +3 -1
  830. package/dist/esm/components/scroll-area.d.ts.map +1 -1
  831. package/dist/esm/components/scroll-area.js +2 -1
  832. package/dist/esm/components/scroll-area.props.js +2 -1
  833. package/dist/esm/components/segmented-control.d.ts +3 -1
  834. package/dist/esm/components/segmented-control.d.ts.map +1 -1
  835. package/dist/esm/components/segmented-control.js +2 -1
  836. package/dist/esm/components/segmented-control.props.d.ts +0 -1
  837. package/dist/esm/components/segmented-control.props.d.ts.map +1 -1
  838. package/dist/esm/components/segmented-control.props.js +2 -1
  839. package/dist/esm/components/select.d.ts.map +1 -1
  840. package/dist/esm/components/select.js +2 -1
  841. package/dist/esm/components/select.props.js +2 -1
  842. package/dist/esm/components/separator.d.ts.map +1 -1
  843. package/dist/esm/components/separator.js +2 -1
  844. package/dist/esm/components/separator.props.d.ts +1 -1
  845. package/dist/esm/components/separator.props.js +2 -1
  846. package/dist/esm/components/sheet.d.ts +2 -1
  847. package/dist/esm/components/sheet.d.ts.map +1 -1
  848. package/dist/esm/components/sheet.js +2 -1
  849. package/dist/esm/components/shell.context.js +2 -1
  850. package/dist/esm/components/shell.d.ts +17 -3
  851. package/dist/esm/components/shell.d.ts.map +1 -1
  852. package/dist/esm/components/shell.hooks.js +2 -1
  853. package/dist/esm/components/shell.js +2 -1
  854. package/dist/esm/components/shell.types.js +2 -1
  855. package/dist/esm/components/sidebar.d.ts.map +1 -1
  856. package/dist/esm/components/sidebar.js +2 -1
  857. package/dist/esm/components/slider.d.ts.map +1 -1
  858. package/dist/esm/components/slider.js +2 -1
  859. package/dist/esm/components/slider.props.d.ts +0 -2
  860. package/dist/esm/components/slider.props.d.ts.map +1 -1
  861. package/dist/esm/components/slider.props.js +2 -1
  862. package/dist/esm/components/slot.js +2 -1
  863. package/dist/esm/components/spinner.d.ts.map +1 -1
  864. package/dist/esm/components/spinner.js +2 -1
  865. package/dist/esm/components/spinner.props.js +2 -1
  866. package/dist/esm/components/switch.js +2 -1
  867. package/dist/esm/components/switch.props.js +2 -1
  868. package/dist/esm/components/table.d.ts.map +1 -1
  869. package/dist/esm/components/table.js +2 -1
  870. package/dist/esm/components/table.props.d.ts +0 -2
  871. package/dist/esm/components/table.props.d.ts.map +1 -1
  872. package/dist/esm/components/table.props.js +2 -1
  873. package/dist/esm/components/tabs.d.ts.map +1 -1
  874. package/dist/esm/components/tabs.js +2 -1
  875. package/dist/esm/components/tabs.props.js +2 -1
  876. package/dist/esm/components/text-area.d.ts.map +1 -1
  877. package/dist/esm/components/text-area.js +2 -1
  878. package/dist/esm/components/text-area.props.js +2 -1
  879. package/dist/esm/components/text-field.d.ts.map +1 -1
  880. package/dist/esm/components/text-field.js +2 -1
  881. package/dist/esm/components/text-field.props.js +2 -1
  882. package/dist/esm/components/text.js +2 -1
  883. package/dist/esm/components/text.props.js +2 -1
  884. package/dist/esm/components/theme.d.ts.map +1 -1
  885. package/dist/esm/components/theme.js +2 -1
  886. package/dist/esm/components/theme.props.js +2 -1
  887. package/dist/esm/components/toggle.d.ts +3 -2
  888. package/dist/esm/components/toggle.d.ts.map +1 -1
  889. package/dist/esm/components/toggle.js +2 -1
  890. package/dist/esm/components/toolbar.d.ts +83 -8
  891. package/dist/esm/components/toolbar.d.ts.map +1 -1
  892. package/dist/esm/components/toolbar.js +2 -1
  893. package/dist/esm/components/toolbar.props.js +2 -1
  894. package/dist/esm/components/tooltip.d.ts +13 -2
  895. package/dist/esm/components/tooltip.d.ts.map +1 -1
  896. package/dist/esm/components/tooltip.js +2 -1
  897. package/dist/esm/components/tooltip.props.js +2 -1
  898. package/dist/esm/components/virtual-menu.d.ts +22 -17
  899. package/dist/esm/components/virtual-menu.d.ts.map +1 -1
  900. package/dist/esm/components/virtual-menu.js +2 -1
  901. package/dist/esm/components/visually-hidden.js +2 -1
  902. package/dist/esm/helpers/compile-prop-defs.js +1 -1
  903. package/dist/esm/helpers/extract-margin-props.d.ts +7 -7
  904. package/dist/esm/helpers/extract-margin-props.js +1 -1
  905. package/dist/esm/helpers/extract-props.js +1 -1
  906. package/dist/esm/helpers/font-config.js +1 -1
  907. package/dist/esm/helpers/get-margin-styles.d.ts.map +1 -1
  908. package/dist/esm/helpers/get-margin-styles.js +1 -1
  909. package/dist/esm/helpers/get-matching-gray-color.js +1 -1
  910. package/dist/esm/helpers/get-responsive-styles.js +1 -1
  911. package/dist/esm/helpers/get-subtree.js +1 -1
  912. package/dist/esm/helpers/has-own-property.js +1 -1
  913. package/dist/esm/helpers/index.js +1 -1
  914. package/dist/esm/helpers/inert.js +1 -1
  915. package/dist/esm/helpers/inert.js.map +1 -1
  916. package/dist/esm/helpers/is-responsive-object.js +1 -1
  917. package/dist/esm/helpers/map-prop-values.js +1 -1
  918. package/dist/esm/helpers/merge-styles.js +1 -1
  919. package/dist/esm/helpers/normalize-to-px.js +1 -1
  920. package/dist/esm/helpers/require-react-element.js +1 -1
  921. package/dist/esm/helpers/theme-size.js +1 -1
  922. package/dist/esm/helpers/warn-deprecated.js +1 -1
  923. package/dist/esm/helpers/warn-deprecated.js.map +4 -4
  924. package/dist/esm/hooks/appearance-script.js +11 -1
  925. package/dist/esm/hooks/appearance-script.js.map +4 -4
  926. package/dist/esm/hooks/index.js +2 -1
  927. package/dist/esm/hooks/use-appearance.d.ts.map +1 -1
  928. package/dist/esm/hooks/use-appearance.js +2 -1
  929. package/dist/esm/hooks/use-body-pointer-events-cleanup.d.ts +1 -1
  930. package/dist/esm/hooks/use-body-pointer-events-cleanup.d.ts.map +1 -1
  931. package/dist/esm/hooks/use-body-pointer-events-cleanup.js +2 -1
  932. package/dist/esm/hooks/use-breakpoint.js +2 -1
  933. package/dist/esm/hooks/use-live-announcer.js +2 -1
  934. package/dist/esm/hooks/use-prop-synced-state.js +2 -1
  935. package/dist/esm/hooks/use-scroll-edges.d.ts +4 -2
  936. package/dist/esm/hooks/use-scroll-edges.d.ts.map +1 -1
  937. package/dist/esm/hooks/use-scroll-edges.js +2 -1
  938. package/dist/esm/hooks/use-thumb-sync.js +2 -1
  939. package/dist/esm/hooks/use-toggle-state.js +2 -1
  940. package/dist/esm/hooks/use-tooltip-wrapper.js +2 -1
  941. package/dist/esm/index.js +2 -1
  942. package/dist/esm/props/as-child.prop.js +1 -1
  943. package/dist/esm/props/color.prop.js +1 -1
  944. package/dist/esm/props/emphasis.prop.js +1 -1
  945. package/dist/esm/props/font-family.prop.js +1 -1
  946. package/dist/esm/props/gap.props.d.ts +4 -4
  947. package/dist/esm/props/gap.props.js +1 -1
  948. package/dist/esm/props/height.props.js +1 -1
  949. package/dist/esm/props/index.js +1 -1
  950. package/dist/esm/props/index.js.map +4 -4
  951. package/dist/esm/props/layout.props.js +1 -1
  952. package/dist/esm/props/leading-trim.prop.js +1 -1
  953. package/dist/esm/props/margin.props.js +1 -1
  954. package/dist/esm/props/padding.props.js +1 -1
  955. package/dist/esm/props/prop-def.js +1 -1
  956. package/dist/esm/props/radius.prop.js +1 -1
  957. package/dist/esm/props/shadow.props.js +1 -1
  958. package/dist/esm/props/text-align.prop.js +1 -1
  959. package/dist/esm/props/text-wrap.prop.js +1 -1
  960. package/dist/esm/props/truncate.prop.js +1 -1
  961. package/dist/esm/props/weight.prop.js +1 -1
  962. package/dist/esm/props/width.props.js +1 -1
  963. package/layout/utilities.css +2 -2
  964. package/layout.css +2 -2
  965. package/package.json +3 -7
  966. package/src/components/_internal/base-button.css +24 -6
  967. package/src/components/_internal/base-button.props.ts +1 -1
  968. package/src/components/_internal/base-button.tsx +127 -43
  969. package/src/components/_internal/base-checkbox.css +23 -0
  970. package/src/components/_internal/base-menu.css +9 -3
  971. package/src/components/_internal/base-radio.css +22 -0
  972. package/src/components/_internal/base-sidebar-menu.css +8 -0
  973. package/src/components/_internal/base-tab-list.css +5 -0
  974. package/src/components/_internal/dropdown-menu-drill-down.tsx +45 -26
  975. package/src/components/_internal/menu-context.tsx +47 -1
  976. package/src/components/_internal/pane-chrome.tsx +50 -11
  977. package/src/components/_internal/shell-bottom.tsx +2 -0
  978. package/src/components/_internal/shell-handles.tsx +10 -1
  979. package/src/components/_internal/shell-inspector.tsx +3 -0
  980. package/src/components/_internal/shell-pane.tsx +5 -4
  981. package/src/components/_internal/shell-resizable.tsx +17 -8
  982. package/src/components/_internal/shell-sidebar.tsx +3 -0
  983. package/src/components/_internal/shell-store.tsx +2 -1
  984. package/src/components/accordion.css +76 -58
  985. package/src/components/accordion.tsx +12 -42
  986. package/src/components/alert-dialog.tsx +63 -161
  987. package/src/components/avatar.css +6 -2
  988. package/src/components/avatar.props.tsx +6 -0
  989. package/src/components/avatar.tsx +79 -60
  990. package/src/components/blockquote.css +2 -2
  991. package/src/components/blockquote.tsx +8 -9
  992. package/src/components/button.tsx +12 -5
  993. package/src/components/card.css +14 -3
  994. package/src/components/chatbar.css +20 -3
  995. package/src/components/chatbar.tsx +41 -31
  996. package/src/components/checkbox-group.css +1 -5
  997. package/src/components/checkbox-group.primitive.tsx +40 -51
  998. package/src/components/checkbox-group.tsx +1 -9
  999. package/src/components/checkbox.css +1 -5
  1000. package/src/components/chip.css +18 -23
  1001. package/src/components/chip.tsx +3 -4
  1002. package/src/components/code.tsx +3 -2
  1003. package/src/components/combobox.tsx +25 -26
  1004. package/src/components/context-menu.tsx +69 -31
  1005. package/src/components/dialog.tsx +59 -160
  1006. package/src/components/dropdown-menu.css +0 -6
  1007. package/src/components/dropdown-menu.tsx +78 -38
  1008. package/src/components/heading.props.tsx +1 -1
  1009. package/src/components/heading.tsx +4 -4
  1010. package/src/components/icons.tsx +11 -1
  1011. package/src/components/image.css +5 -0
  1012. package/src/components/image.tsx +29 -3
  1013. package/src/components/index.tsx +8 -1
  1014. package/src/components/kbd.css +6 -5
  1015. package/src/components/link.css +1 -5
  1016. package/src/components/message-scroller.tsx +56 -45
  1017. package/src/components/navbar.css +9 -1
  1018. package/src/components/navbar.tsx +34 -69
  1019. package/src/components/notice.tsx +6 -3
  1020. package/src/components/popover.css +14 -10
  1021. package/src/components/popover.tsx +13 -11
  1022. package/src/components/progress.css +33 -6
  1023. package/src/components/progress.tsx +8 -3
  1024. package/src/components/scroll-area.css +62 -6
  1025. package/src/components/scroll-area.tsx +49 -3
  1026. package/src/components/segmented-control.css +181 -273
  1027. package/src/components/segmented-control.props.tsx +1 -1
  1028. package/src/components/segmented-control.tsx +98 -42
  1029. package/src/components/select.css +16 -29
  1030. package/src/components/select.tsx +27 -18
  1031. package/src/components/separator.css +8 -1
  1032. package/src/components/separator.props.tsx +1 -1
  1033. package/src/components/separator.tsx +31 -1
  1034. package/src/components/sheet.css +11 -11
  1035. package/src/components/sheet.tsx +76 -141
  1036. package/src/components/shell.css +162 -21
  1037. package/src/components/shell.tsx +47 -9
  1038. package/src/components/sidebar.css +1 -135
  1039. package/src/components/sidebar.tsx +202 -173
  1040. package/src/components/slider.css +90 -21
  1041. package/src/components/slider.props.tsx +2 -2
  1042. package/src/components/slider.tsx +120 -114
  1043. package/src/components/spinner.css +10 -2
  1044. package/src/components/spinner.tsx +15 -3
  1045. package/src/components/switch.css +40 -8
  1046. package/src/components/table.css +5 -1
  1047. package/src/components/table.props.tsx +0 -9
  1048. package/src/components/table.tsx +20 -6
  1049. package/src/components/tabs.css +34 -0
  1050. package/src/components/tabs.tsx +10 -5
  1051. package/src/components/text-area.css +19 -3
  1052. package/src/components/text-area.tsx +20 -16
  1053. package/src/components/text-field.css +51 -36
  1054. package/src/components/text-field.tsx +100 -49
  1055. package/src/components/theme.tsx +14 -44
  1056. package/src/components/toggle.tsx +21 -39
  1057. package/src/components/toolbar.css +34 -0
  1058. package/src/components/toolbar.tsx +459 -23
  1059. package/src/components/tooltip.css +8 -1
  1060. package/src/components/tooltip.tsx +30 -3
  1061. package/src/components/virtual-menu.css +80 -0
  1062. package/src/components/virtual-menu.tsx +209 -95
  1063. package/src/helpers/get-margin-styles.ts +8 -10
  1064. package/src/hooks/use-appearance.ts +32 -19
  1065. package/src/hooks/use-body-pointer-events-cleanup.ts +123 -124
  1066. package/src/hooks/use-scroll-edges.ts +11 -2
  1067. package/src/props/gap.props.ts +4 -4
  1068. package/src/styles/utilities/margin.css +2 -2
  1069. package/src/styles/utilities/text-align.css +8 -0
  1070. package/src/styles/utilities/truncate.css +10 -0
  1071. package/styles.css +2024 -990
  1072. package/utilities.css +43 -2
  1073. package/dist/esm/chunk-23KT3D2Z.js +0 -2
  1074. package/dist/esm/chunk-2E4P5XQL.js +0 -2
  1075. package/dist/esm/chunk-2E4P5XQL.js.map +0 -7
  1076. package/dist/esm/chunk-2KZ4NI3X.js +0 -1
  1077. package/dist/esm/chunk-3BUQ7ADW.js +0 -2
  1078. package/dist/esm/chunk-3JA7SJDT.js +0 -2
  1079. package/dist/esm/chunk-3JA7SJDT.js.map +0 -7
  1080. package/dist/esm/chunk-3KQE2PSJ.js +0 -2
  1081. package/dist/esm/chunk-3KQE2PSJ.js.map +0 -7
  1082. package/dist/esm/chunk-3PTKPDSA.js +0 -2
  1083. package/dist/esm/chunk-3PTKPDSA.js.map +0 -7
  1084. package/dist/esm/chunk-3QZBWH2A.js.map +0 -7
  1085. package/dist/esm/chunk-5BWLY27A.js +0 -2
  1086. package/dist/esm/chunk-5BWLY27A.js.map +0 -7
  1087. package/dist/esm/chunk-5ROQAZ7J.js +0 -2
  1088. package/dist/esm/chunk-5ROQAZ7J.js.map +0 -7
  1089. package/dist/esm/chunk-63PQNLFJ.js +0 -2
  1090. package/dist/esm/chunk-6CK7UTNH.js +0 -2
  1091. package/dist/esm/chunk-6CK7UTNH.js.map +0 -7
  1092. package/dist/esm/chunk-6DDOR73D.js +0 -2
  1093. package/dist/esm/chunk-6DDOR73D.js.map +0 -7
  1094. package/dist/esm/chunk-6DWDNKLS.js +0 -1
  1095. package/dist/esm/chunk-6RK26HIY.js +0 -2
  1096. package/dist/esm/chunk-6RK26HIY.js.map +0 -7
  1097. package/dist/esm/chunk-7CUQMU3T.js +0 -2
  1098. package/dist/esm/chunk-7CUQMU3T.js.map +0 -7
  1099. package/dist/esm/chunk-7ESWH773.js +0 -2
  1100. package/dist/esm/chunk-7ESWH773.js.map +0 -7
  1101. package/dist/esm/chunk-7SS4UUJH.js +0 -2
  1102. package/dist/esm/chunk-7SS4UUJH.js.map +0 -7
  1103. package/dist/esm/chunk-AB3QCCUM.js +0 -2
  1104. package/dist/esm/chunk-AB3QCCUM.js.map +0 -7
  1105. package/dist/esm/chunk-BEP4AH5V.js +0 -2
  1106. package/dist/esm/chunk-BEP4AH5V.js.map +0 -7
  1107. package/dist/esm/chunk-BJUCBOGU.js +0 -2
  1108. package/dist/esm/chunk-BOL3VVSN.js +0 -2
  1109. package/dist/esm/chunk-BOL3VVSN.js.map +0 -7
  1110. package/dist/esm/chunk-CLZW2IDD.js +0 -2
  1111. package/dist/esm/chunk-CLZW2IDD.js.map +0 -7
  1112. package/dist/esm/chunk-DBROSD2J.js +0 -2
  1113. package/dist/esm/chunk-DBROSD2J.js.map +0 -7
  1114. package/dist/esm/chunk-DFGY2NZB.js +0 -2
  1115. package/dist/esm/chunk-DSPYHO3L.js +0 -2
  1116. package/dist/esm/chunk-E2D2VWUI.js +0 -2
  1117. package/dist/esm/chunk-E2D2VWUI.js.map +0 -7
  1118. package/dist/esm/chunk-EMNSA65L.js +0 -2
  1119. package/dist/esm/chunk-EMNSA65L.js.map +0 -7
  1120. package/dist/esm/chunk-EZYXYLR2.js +0 -2
  1121. package/dist/esm/chunk-FDHWAC6W.js +0 -2
  1122. package/dist/esm/chunk-FDHWAC6W.js.map +0 -7
  1123. package/dist/esm/chunk-FFG32ERA.js +0 -5
  1124. package/dist/esm/chunk-FFG32ERA.js.map +0 -7
  1125. package/dist/esm/chunk-FHPHEIYJ.js +0 -2
  1126. package/dist/esm/chunk-FHPHEIYJ.js.map +0 -7
  1127. package/dist/esm/chunk-FJFBM7HW.js +0 -2
  1128. package/dist/esm/chunk-FJFBM7HW.js.map +0 -7
  1129. package/dist/esm/chunk-FYT7TYGS.js +0 -2
  1130. package/dist/esm/chunk-FYT7TYGS.js.map +0 -7
  1131. package/dist/esm/chunk-GLV7VGBH.js +0 -2
  1132. package/dist/esm/chunk-GLV7VGBH.js.map +0 -7
  1133. package/dist/esm/chunk-H3IAGAEL.js +0 -2
  1134. package/dist/esm/chunk-HIKMKGPT.js +0 -2
  1135. package/dist/esm/chunk-HIKMKGPT.js.map +0 -7
  1136. package/dist/esm/chunk-HKPXDQ2B.js +0 -2
  1137. package/dist/esm/chunk-HT7RFHLW.js +0 -2
  1138. package/dist/esm/chunk-HT7RFHLW.js.map +0 -7
  1139. package/dist/esm/chunk-IUER6BNH.js +0 -12
  1140. package/dist/esm/chunk-IUER6BNH.js.map +0 -7
  1141. package/dist/esm/chunk-IVQHRM33.js +0 -2
  1142. package/dist/esm/chunk-IVQHRM33.js.map +0 -7
  1143. package/dist/esm/chunk-JBHRV364.js +0 -2
  1144. package/dist/esm/chunk-KS4U4VPH.js +0 -2
  1145. package/dist/esm/chunk-KS4U4VPH.js.map +0 -7
  1146. package/dist/esm/chunk-KT2CMUS5.js +0 -2
  1147. package/dist/esm/chunk-KT2CMUS5.js.map +0 -7
  1148. package/dist/esm/chunk-L2R62BOB.js +0 -2
  1149. package/dist/esm/chunk-L2R62BOB.js.map +0 -7
  1150. package/dist/esm/chunk-LHIS3UKQ.js +0 -2
  1151. package/dist/esm/chunk-LHIS3UKQ.js.map +0 -7
  1152. package/dist/esm/chunk-LVCUY2OS.js +0 -2
  1153. package/dist/esm/chunk-M7I6ISPL.js +0 -2
  1154. package/dist/esm/chunk-M7I6ISPL.js.map +0 -7
  1155. package/dist/esm/chunk-MGQ4A2FI.js +0 -2
  1156. package/dist/esm/chunk-MHANZINI.js +0 -2
  1157. package/dist/esm/chunk-MHANZINI.js.map +0 -7
  1158. package/dist/esm/chunk-MYYXOFU5.js +0 -1
  1159. package/dist/esm/chunk-NNZTSXKH.js +0 -2
  1160. package/dist/esm/chunk-NQDMTOGB.js +0 -2
  1161. package/dist/esm/chunk-NQDMTOGB.js.map +0 -7
  1162. package/dist/esm/chunk-OA7C34MJ.js +0 -1
  1163. package/dist/esm/chunk-PJR6GRZC.js +0 -2
  1164. package/dist/esm/chunk-PJR6GRZC.js.map +0 -7
  1165. package/dist/esm/chunk-PPZY7PJA.js +0 -2
  1166. package/dist/esm/chunk-PPZY7PJA.js.map +0 -7
  1167. package/dist/esm/chunk-Q4IA622Q.js +0 -2
  1168. package/dist/esm/chunk-Q6MFPATL.js +0 -2
  1169. package/dist/esm/chunk-Q6MFPATL.js.map +0 -7
  1170. package/dist/esm/chunk-QGCXTULQ.js +0 -2
  1171. package/dist/esm/chunk-QGCXTULQ.js.map +0 -7
  1172. package/dist/esm/chunk-QOHJIF25.js +0 -2
  1173. package/dist/esm/chunk-QOHJIF25.js.map +0 -7
  1174. package/dist/esm/chunk-R4XJNQX5.js +0 -2
  1175. package/dist/esm/chunk-R4XJNQX5.js.map +0 -7
  1176. package/dist/esm/chunk-S6GWR6EZ.js +0 -2
  1177. package/dist/esm/chunk-SKOYHBIE.js +0 -2
  1178. package/dist/esm/chunk-STPMPY3X.js +0 -1
  1179. package/dist/esm/chunk-TZTUPQYK.js +0 -2
  1180. package/dist/esm/chunk-UE3HATOA.js +0 -2
  1181. package/dist/esm/chunk-UE3HATOA.js.map +0 -7
  1182. package/dist/esm/chunk-UICSVJ3B.js +0 -1
  1183. package/dist/esm/chunk-UONSKZQT.js +0 -2
  1184. package/dist/esm/chunk-V32EP3S7.js +0 -2
  1185. package/dist/esm/chunk-V32EP3S7.js.map +0 -7
  1186. package/dist/esm/chunk-VPSMETY2.js +0 -2
  1187. package/dist/esm/chunk-VXQQ6KXI.js +0 -2
  1188. package/dist/esm/chunk-VXQQ6KXI.js.map +0 -7
  1189. package/dist/esm/chunk-WOR3JCLX.js +0 -1
  1190. package/dist/esm/chunk-WOR3JCLX.js.map +0 -7
  1191. package/dist/esm/chunk-X4A3XRBY.js +0 -2
  1192. package/dist/esm/chunk-XKSU3NLG.js +0 -2
  1193. package/dist/esm/chunk-XRCMPBAY.js +0 -2
  1194. package/dist/esm/chunk-XRCMPBAY.js.map +0 -7
  1195. package/dist/esm/chunk-XZQSSRTG.js +0 -2
  1196. package/dist/esm/chunk-Y3JYEEFB.js +0 -2
  1197. package/dist/esm/chunk-Y3JYEEFB.js.map +0 -7
  1198. package/dist/esm/chunk-YIK4ACXS.js +0 -2
  1199. package/dist/esm/chunk-YIK4ACXS.js.map +0 -7
  1200. package/dist/esm/chunk-YXLDRDHW.js +0 -2
  1201. package/dist/esm/chunk-YZM54IJE.js +0 -2
  1202. package/dist/esm/chunk-YZM54IJE.js.map +0 -7
  1203. package/dist/esm/chunk-ZEX2DECM.js +0 -2
  1204. package/dist/esm/chunk-ZEX2DECM.js.map +0 -7
  1205. package/dist/esm/chunk-ZJI2IK7C.js +0 -2
  1206. package/dist/esm/chunk-ZJI2IK7C.js.map +0 -7
  1207. package/dist/esm/chunk-ZNDCZM5A.js +0 -2
  1208. /package/dist/esm/{chunk-ELAW7ZUG.js.map → chunk-6FLLFCBU.js.map} +0 -0
  1209. /package/dist/esm/{chunk-2KZ4NI3X.js.map → chunk-A2OMWZI7.js.map} +0 -0
  1210. /package/dist/esm/{chunk-6DWDNKLS.js.map → chunk-AYKOOEZR.js.map} +0 -0
  1211. /package/dist/esm/{chunk-7FTUTUMD.js.map → chunk-IZXML75Y.js.map} +0 -0
  1212. /package/dist/esm/{chunk-MYYXOFU5.js.map → chunk-J3QIUJ6F.js.map} +0 -0
  1213. /package/dist/esm/{chunk-PBFSBHBS.js.map → chunk-JUY7CBSL.js.map} +0 -0
  1214. /package/dist/esm/{chunk-OA7C34MJ.js.map → chunk-JZ5Z53MN.js.map} +0 -0
  1215. /package/dist/esm/{chunk-OS3FCYZY.js.map → chunk-NG54K6FL.js.map} +0 -0
  1216. /package/dist/esm/{chunk-STPMPY3X.js.map → chunk-VQPANPMI.js.map} +0 -0
  1217. /package/dist/esm/{chunk-UICSVJ3B.js.map → chunk-WH7PQSSG.js.map} +0 -0
package/utilities.css CHANGED
@@ -6956,8 +6956,8 @@
6956
6956
  margin-right: var(--margin-right-override, var(--margin-right));
6957
6957
  }
6958
6958
  .sm\:kui-r-mx {
6959
- --margin-left: var(--ml-md);
6960
- --margin-right: var(--mr-md)
6959
+ --margin-left: var(--ml-sm);
6960
+ --margin-right: var(--mr-sm)
6961
6961
  }
6962
6962
  .sm\:kui-r-mx-0 {
6963
6963
  --margin-left: 0px;
@@ -13805,6 +13805,12 @@
13805
13805
  .kui-r-ta-right {
13806
13806
  text-align: right;
13807
13807
  }
13808
+ .kui-r-ta-start {
13809
+ text-align: start;
13810
+ }
13811
+ .kui-r-ta-end {
13812
+ text-align: end;
13813
+ }
13808
13814
  @media (min-width: 520px) {
13809
13815
  .xs\:kui-r-ta-left {
13810
13816
  text-align: left;
@@ -13815,6 +13821,12 @@
13815
13821
  .xs\:kui-r-ta-right {
13816
13822
  text-align: right;
13817
13823
  }
13824
+ .xs\:kui-r-ta-start {
13825
+ text-align: start;
13826
+ }
13827
+ .xs\:kui-r-ta-end {
13828
+ text-align: end;
13829
+ }
13818
13830
  }
13819
13831
  @media (min-width: 768px) {
13820
13832
  .sm\:kui-r-ta-left {
@@ -13826,6 +13838,12 @@
13826
13838
  .sm\:kui-r-ta-right {
13827
13839
  text-align: right;
13828
13840
  }
13841
+ .sm\:kui-r-ta-start {
13842
+ text-align: start;
13843
+ }
13844
+ .sm\:kui-r-ta-end {
13845
+ text-align: end;
13846
+ }
13829
13847
  }
13830
13848
  @media (min-width: 1024px) {
13831
13849
  .md\:kui-r-ta-left {
@@ -13837,6 +13855,12 @@
13837
13855
  .md\:kui-r-ta-right {
13838
13856
  text-align: right;
13839
13857
  }
13858
+ .md\:kui-r-ta-start {
13859
+ text-align: start;
13860
+ }
13861
+ .md\:kui-r-ta-end {
13862
+ text-align: end;
13863
+ }
13840
13864
  }
13841
13865
  @media (min-width: 1280px) {
13842
13866
  .lg\:kui-r-ta-left {
@@ -13848,6 +13872,12 @@
13848
13872
  .lg\:kui-r-ta-right {
13849
13873
  text-align: right;
13850
13874
  }
13875
+ .lg\:kui-r-ta-start {
13876
+ text-align: start;
13877
+ }
13878
+ .lg\:kui-r-ta-end {
13879
+ text-align: end;
13880
+ }
13851
13881
  }
13852
13882
  @media (min-width: 1640px) {
13853
13883
  .xl\:kui-r-ta-left {
@@ -13859,6 +13889,12 @@
13859
13889
  .xl\:kui-r-ta-right {
13860
13890
  text-align: right;
13861
13891
  }
13892
+ .xl\:kui-r-ta-start {
13893
+ text-align: start;
13894
+ }
13895
+ .xl\:kui-r-ta-end {
13896
+ text-align: end;
13897
+ }
13862
13898
  }
13863
13899
  .kui-r-tw-wrap {
13864
13900
  white-space: normal;
@@ -13959,6 +13995,11 @@
13959
13995
  text-overflow: ellipsis;
13960
13996
  white-space: nowrap;
13961
13997
  }
13998
+ .kui-truncate:where(span, code, a, label) {
13999
+ display: inline-block;
14000
+ max-width: 100%;
14001
+ vertical-align: bottom;
14002
+ }
13962
14003
  .kui-r-va-baseline {
13963
14004
  vertical-align: baseline;
13964
14005
  }
@@ -1,2 +0,0 @@
1
- import{a as h,e as f,f as l,g as R}from"./chunk-V32EP3S7.js";import{a as i}from"./chunk-VPSMETY2.js";import{b as P}from"./chunk-IX5HIHVI.js";import{a as G}from"./chunk-4P6TKZCA.js";import{d as b}from"./chunk-3YLYGKFB.js";import{a}from"./chunk-ELAW7ZUG.js";import{a as S}from"./chunk-OS3FCYZY.js";var z={};S(z,{Item:()=>N,Root:()=>v});import*as o from"react";import n from"classnames";import{Context as E}from"radix-ui/internal";var I="CheckboxGroup",[_]=E.createContextScope(I,[h]),d=h(),[T,y]=_(I),v=o.forwardRef(({color:s=i.color.default,size:e,variant:t=i.variant.default,...r},p)=>{let m=b(e,i.size),{__scopeCheckboxGroup:c,className:u,...C}=r,x=d(c);return o.createElement(T,{scope:c,color:s,size:m,variant:t},o.createElement(f,{...x,...C,ref:p,className:n("kui-CheckboxGroupRoot",u)}))});v.displayName="CheckboxGroup.Root";var N=o.forwardRef((s,e)=>{let{__scopeCheckboxGroup:t,children:r,className:p,style:m,...c}=s,{size:u}=y("CheckboxGroupItem",t),C=x=>typeof x=="string"&&/^[1-9]$/.test(x)?x:"3";return r?o.createElement(G,{as:"label",size:C(u),className:n("kui-CheckboxGroupItem",p),style:m},o.createElement(k,{__scopeCheckboxGroup:t,...c,ref:e}),r&&o.createElement("span",{className:"kui-CheckboxGroupItemInner"},r)):o.createElement(k,{__scopeCheckboxGroup:t,...c,ref:e,className:p,style:m})});N.displayName="CheckboxGroup.Item";var k=o.forwardRef(({__scopeCheckboxGroup:s,...e},t)=>{let r=y("CheckboxGroupItemCheckbox",s),p=d(s),{color:m,className:c}=a({...e,...r},i);return o.createElement(l,{...p,"data-accent-color":m,...e,ref:t,className:n("kui-reset","kui-BaseCheckboxRoot","kui-CheckboxGroupItemCheckbox",c)},o.createElement(R,{...p,asChild:!0,className:"kui-BaseCheckboxIndicator"},o.createElement(P,null)))});k.displayName="CheckboxGroup.ItemCheckbox";export{v as a,N as b,z as c};
2
- //# sourceMappingURL=chunk-23KT3D2Z.js.map
@@ -1,2 +0,0 @@
1
- import{b as r}from"./chunk-OS3FCYZY.js";import*as n from"react";var b={stack:[],direction:null,lastChange:null},C='[role^="menuitem"]:not([data-disabled])',w="kui-DropdownMenuDrillDownBackItem";function h(e){return e.replace(/["\\]/g,"\\$&")}var d=class{constructor(){r(this,"state",b);r(this,"listeners",new Set);r(this,"modality","keyboard");r(this,"rootElement",null);r(this,"setRootElement",t=>{this.rootElement=t});r(this,"getState",()=>this.state);r(this,"subscribe",t=>(this.listeners.add(t),()=>{this.listeners.delete(t)}));r(this,"setModality",t=>{this.modality=t});r(this,"getModality",()=>this.modality);r(this,"getDepth",()=>this.state.stack.length);r(this,"isOpen",t=>this.state.stack.some(o=>o.id===t));r(this,"push",(t,o=this.modality)=>{let{stack:i}=this.state;if(i.some(c=>c.id===t))return;let l=this.getTrigger(t),s=(l?.dataset.drillDownName??l?.textContent??"").trim(),a=this.getScrollContainer()?.scrollTop??0;this.setState({stack:[...i,{id:t,name:s,scrollTop:a}],direction:"forward",lastChange:{type:"push",id:t,modality:o}})});r(this,"pop",(t=this.modality)=>{let{stack:o}=this.state,i=o[o.length-1];i&&this.setState({stack:o.slice(0,-1),direction:"backward",lastChange:{type:"pop",id:i.id,modality:t,scrollTop:i.scrollTop}})});r(this,"close",t=>{let{stack:o}=this.state,i=o.findIndex(l=>l.id===t);i!==-1&&this.setState({stack:o.slice(0,i),direction:"backward",lastChange:{type:"pop",id:t,modality:null,scrollTop:o[i].scrollTop}})});r(this,"reset",()=>{this.state.stack.length===0&&this.state.direction===null||this.setState({stack:[],direction:null,lastChange:{type:"reset"}})})}setState(t){this.state=t,this.listeners.forEach(o=>o())}getScrollContainer(){let t=this.rootElement;return t?t.closest(".kui-ScrollAreaViewport")??t.closest(".kui-BaseMenuViewport"):null}getTrigger(t){return this.rootElement?.querySelector(`[data-drill-down-trigger="${h(t)}"]`)}applyLastChange(){let t=this.state.lastChange,o=this.rootElement;if(!t||!o)return;this.state={...this.state,lastChange:null};let i=o.closest('[role="menu"]'),l=this.getScrollContainer(),s=a=>a?.focus({preventScroll:!0});if(t.type==="push"){l&&(l.scrollTop=0);let a=o.querySelector(`[data-drill-down-panel="${h(t.id)}"]`);if(t.modality==="keyboard"){let c=a?Array.from(a.querySelectorAll(C)):[];s(c.find(u=>!u.classList.contains(w))??c[0]??i)}else(t.modality==="pointer"||!o.contains(document.activeElement))&&s(i);return}if(t.type==="pop"){l&&(l.scrollTop=t.scrollTop);let a=this.getTrigger(t.id);t.modality==="keyboard"?s(a??i):(t.modality==="pointer"||!o.contains(document.activeElement))&&s(i);return}l&&(l.scrollTop=0)}},m=n.createContext(null),k=n.createContext(!0);function L(){return n.useContext(m)}function P(){let[e]=n.useState(()=>new d);return e}var E=e=>e.stack.length,R=e=>e.direction,v=()=>0,S=()=>null;function A({store:e,behavior:t,open:o,children:i}){let l=t==="drill-down",s=n.useSyncExternalStore(e.subscribe,()=>E(e.getState()),v),a=n.useSyncExternalStore(e.subscribe,()=>R(e.getState()),S),c=!l||s===0;n.useLayoutEffect(()=>{l||e.reset()},[l,e]);let u=n.useRef(o);n.useLayoutEffect(()=>{o&&!u.current&&e.reset(),u.current=o},[o,e]),n.useLayoutEffect(()=>{e.applyLastChange()},[s,e]);let g=n.useCallback(f=>e.setRootElement(f),[e]),y=n.useCallback(()=>e.setModality("keyboard"),[e]),D=n.useCallback(()=>e.setModality("pointer"),[e]);return n.createElement(m.Provider,{value:l?e:null},n.createElement("div",{ref:g,className:"kui-DropdownMenuDrillDownRoot","data-submenu-behavior":t,"data-drill-down-active":c?void 0:!0,"data-animation-direction":l?a??void 0:void 0,onKeyDownCapture:l?y:void 0,onPointerDownCapture:l?D:void 0},n.createElement(k.Provider,{value:c},i)))}function H(e,t){let o=n.useCallback(()=>{if(!e)return"closed";let{stack:i}=e.getState();return i.length>0&&i[i.length-1].id===t?"top":i.some(l=>l.id===t)?"open":"closed"},[e,t]);return n.useSyncExternalStore(e?.subscribe??p,o,T)}function B(e,t){let o=n.useCallback(()=>e?.getState().stack.find(i=>i.id===t),[e,t]);return n.useSyncExternalStore(e?.subscribe??p,o,M)}function I(e){let t=n.useCallback(()=>e?.getState().direction??null,[e]);return n.useSyncExternalStore(e?.subscribe??p,t,S)}var p=()=>()=>{},T=()=>"closed",M=()=>{},x=n.createContext(null);function N(){return n.useContext(x)}export{k as a,L as b,P as c,A as d,H as e,B as f,I as g,x as h,N as i};
2
- //# sourceMappingURL=chunk-2E4P5XQL.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/_internal/dropdown-menu-drill-down.tsx"],
4
- "sourcesContent": ["'use client';\n\nimport * as React from 'react';\n\nimport type { submenuBehaviors } from './base-menu.props.js';\n\ntype SubmenuBehavior = (typeof submenuBehaviors)[number];\n\n/*\n * Drill-down navigation for DropdownMenu.\n *\n * The stack of open submenus lives in a small external store rather than in\n * React state, so each part subscribes only to the slice it renders from:\n * a panel re-renders when it enters or leaves the stack, a Sub when its own\n * open state changes, and nothing else on the path re-renders on navigation.\n *\n * Only the levels on the stack mount their children, and only the top level\n * mounts its items (see `DrillDownLevelContext`). That keeps the Radix item\n * collection limited to what is on screen, so roving focus and typeahead\n * never land on a hidden item.\n */\n\ntype AnimationDirection = 'forward' | 'backward' | null;\ntype Modality = 'keyboard' | 'pointer';\n\ninterface StackEntry {\n id: string;\n /** Accessible name of the submenu, taken from its trigger text */\n name: string;\n /** Scroll position of the parent level when this entry was pushed */\n scrollTop: number;\n}\n\ntype LastChange =\n | { type: 'push'; id: string; modality: Modality | null }\n | { type: 'pop'; id: string; modality: Modality | null; scrollTop: number }\n | { type: 'reset' };\n\ninterface DrillDownState {\n stack: StackEntry[];\n direction: AnimationDirection;\n lastChange: LastChange | null;\n}\n\nconst INITIAL_STATE: DrillDownState = { stack: [], direction: null, lastChange: null };\n\nconst PANEL_ITEM_SELECTOR = '[role^=\"menuitem\"]:not([data-disabled])';\nconst BACK_ITEM_CLASS = 'kui-DropdownMenuDrillDownBackItem';\n\nfunction escapeAttributeValue(value: string) {\n return value.replace(/[\"\\\\]/g, '\\\\$&');\n}\n\nclass DrillDownStore {\n private state = INITIAL_STATE;\n private listeners = new Set<() => void>();\n private modality: Modality = 'keyboard';\n /** The drill-down root element, set by the provider */\n rootElement: HTMLElement | null = null;\n\n setRootElement = (element: HTMLElement | null) => {\n this.rootElement = element;\n };\n\n getState = () => this.state;\n\n subscribe = (listener: () => void) => {\n this.listeners.add(listener);\n return () => {\n this.listeners.delete(listener);\n };\n };\n\n private setState(next: DrillDownState) {\n this.state = next;\n this.listeners.forEach((listener) => listener());\n }\n\n /** Records how the user is interacting, so focus can follow the same model as Radix. */\n setModality = (modality: Modality) => {\n this.modality = modality;\n };\n\n getModality = () => this.modality;\n\n getDepth = () => this.state.stack.length;\n\n isOpen = (id: string) => this.state.stack.some((entry) => entry.id === id);\n\n private getScrollContainer() {\n const root = this.rootElement;\n if (!root) return null;\n return (\n root.closest<HTMLElement>('.kui-ScrollAreaViewport') ??\n root.closest<HTMLElement>('.kui-BaseMenuViewport')\n );\n }\n\n private getTrigger(id: string) {\n return this.rootElement?.querySelector<HTMLElement>(\n `[data-drill-down-trigger=\"${escapeAttributeValue(id)}\"]`,\n );\n }\n\n /**\n * Opens a submenu. `modality` decides where focus goes: the first item for\n * keyboard, the menu for pointer, and nowhere for a programmatic open\n * (`null`) unless focus was lost.\n */\n push = (id: string, modality: Modality | null = this.modality) => {\n const { stack } = this.state;\n if (stack.some((entry) => entry.id === id)) return;\n const trigger = this.getTrigger(id);\n const name = (trigger?.dataset.drillDownName ?? trigger?.textContent ?? '').trim();\n const scrollTop = this.getScrollContainer()?.scrollTop ?? 0;\n this.setState({\n stack: [...stack, { id, name, scrollTop }],\n direction: 'forward',\n lastChange: { type: 'push', id, modality },\n });\n };\n\n pop = (modality: Modality = this.modality) => {\n const { stack } = this.state;\n const top = stack[stack.length - 1];\n if (!top) return;\n this.setState({\n stack: stack.slice(0, -1),\n direction: 'backward',\n lastChange: { type: 'pop', id: top.id, modality, scrollTop: top.scrollTop },\n });\n };\n\n /** Closes a submenu and everything opened from it, without moving focus to its trigger. */\n close = (id: string) => {\n const { stack } = this.state;\n const index = stack.findIndex((entry) => entry.id === id);\n if (index === -1) return;\n this.setState({\n stack: stack.slice(0, index),\n direction: 'backward',\n lastChange: { type: 'pop', id, modality: null, scrollTop: stack[index].scrollTop },\n });\n };\n\n reset = () => {\n if (this.state.stack.length === 0 && this.state.direction === null) return;\n this.setState({ stack: [], direction: null, lastChange: { type: 'reset' } });\n };\n\n /**\n * Moves focus and scroll after a navigation step has been committed. Runs in\n * a layout effect, so the new level is already in the DOM and nothing paints\n * with focus on `<body>` or at the old scroll position.\n */\n applyLastChange() {\n const change = this.state.lastChange;\n const root = this.rootElement;\n if (!change || !root) return;\n this.state = { ...this.state, lastChange: null };\n\n const content = root.closest<HTMLElement>('[role=\"menu\"]');\n const scroller = this.getScrollContainer();\n const focus = (element: HTMLElement | null | undefined) => element?.focus({ preventScroll: true });\n\n if (change.type === 'push') {\n if (scroller) scroller.scrollTop = 0;\n const panel = root.querySelector<HTMLElement>(\n `[data-drill-down-panel=\"${escapeAttributeValue(change.id)}\"]`,\n );\n if (change.modality === 'keyboard') {\n // Land on the first real option; the back row stays one ArrowUp away.\n const items = panel ? Array.from(panel.querySelectorAll<HTMLElement>(PANEL_ITEM_SELECTOR)) : [];\n focus(items.find((item) => !item.classList.contains(BACK_ITEM_CLASS)) ?? items[0] ?? content);\n } else if (change.modality === 'pointer' || !root.contains(document.activeElement)) {\n // Match Radix: pointer users get focus on the menu, not a highlighted item.\n focus(content);\n }\n return;\n }\n\n if (change.type === 'pop') {\n if (scroller) scroller.scrollTop = change.scrollTop;\n const trigger = this.getTrigger(change.id);\n if (change.modality === 'keyboard') {\n focus(trigger ?? content);\n } else if (change.modality === 'pointer' || !root.contains(document.activeElement)) {\n focus(content);\n }\n return;\n }\n\n if (scroller) scroller.scrollTop = 0;\n }\n}\n\nconst DrillDownStoreContext = React.createContext<DrillDownStore | null>(null);\n\n/**\n * Whether the items of the current level are on screen. The root level and\n * every panel provide it; menu parts render nothing when it is false.\n */\nconst DrillDownLevelContext = React.createContext(true);\n\nfunction useDrillDownStore() {\n return React.useContext(DrillDownStoreContext);\n}\n\nfunction useCreateDrillDownStore() {\n const [store] = React.useState(() => new DrillDownStore());\n return store;\n}\n\nconst selectDepth = (state: DrillDownState) => state.stack.length;\nconst selectDirection = (state: DrillDownState) => state.direction;\nconst getServerDepth = () => 0;\nconst getServerDirection = (): AnimationDirection => null;\n\ninterface DrillDownRootProps {\n store: DrillDownStore;\n behavior: SubmenuBehavior;\n /** Open state of the menu; the stack resets every time the menu opens */\n open: boolean;\n children: React.ReactNode;\n}\n\n/**\n * Provides the drill-down store and renders the root level. The wrapper is\n * the same element in both behaviors, so crossing a breakpoint that switches\n * between cascade and drill-down does not remount the items.\n */\nfunction DrillDownRoot({ store, behavior, open, children }: DrillDownRootProps) {\n const isDrillDown = behavior === 'drill-down';\n const depth = React.useSyncExternalStore(\n store.subscribe,\n () => selectDepth(store.getState()),\n getServerDepth,\n );\n const direction = React.useSyncExternalStore(\n store.subscribe,\n () => selectDirection(store.getState()),\n getServerDirection,\n );\n const isRoot = !isDrillDown || depth === 0;\n\n // Cascade mode has no stack. A reset while switching modes keeps the next\n // switch back to drill-down from resuming a stale level.\n React.useLayoutEffect(() => {\n if (!isDrillDown) store.reset();\n }, [isDrillDown, store]);\n\n // Start every opening at the root. Content usually remounts on open anyway;\n // this covers `forceMount`. Resetting on open rather than on close keeps the\n // closing animation on the level the user was looking at.\n const wasOpenRef = React.useRef(open);\n React.useLayoutEffect(() => {\n if (open && !wasOpenRef.current) store.reset();\n wasOpenRef.current = open;\n }, [open, store]);\n\n // Focus and scroll follow each navigation step once it is in the DOM.\n React.useLayoutEffect(() => {\n store.applyLastChange();\n }, [depth, store]);\n\n const rootRef = React.useCallback((element: HTMLDivElement | null) => store.setRootElement(element), [store]);\n const handleKeyDownCapture = React.useCallback(() => store.setModality('keyboard'), [store]);\n const handlePointerDownCapture = React.useCallback(() => store.setModality('pointer'), [store]);\n\n return (\n <DrillDownStoreContext.Provider value={isDrillDown ? store : null}>\n {/* Event capture only records the input modality; it does not handle interaction. */}\n <div\n ref={rootRef}\n className=\"kui-DropdownMenuDrillDownRoot\"\n data-submenu-behavior={behavior}\n data-drill-down-active={isRoot ? undefined : true}\n data-animation-direction={isDrillDown ? (direction ?? undefined) : undefined}\n onKeyDownCapture={isDrillDown ? handleKeyDownCapture : undefined}\n onPointerDownCapture={isDrillDown ? handlePointerDownCapture : undefined}\n >\n <DrillDownLevelContext.Provider value={isRoot}>{children}</DrillDownLevelContext.Provider>\n </div>\n </DrillDownStoreContext.Provider>\n );\n}\n\n/** Where a submenu sits in the stack: not open, open under another level, or on top. */\ntype PanelPosition = 'closed' | 'open' | 'top';\n\nfunction usePanelPosition(store: DrillDownStore | null, id: string): PanelPosition {\n const getSnapshot = React.useCallback((): PanelPosition => {\n if (!store) return 'closed';\n const { stack } = store.getState();\n if (stack.length > 0 && stack[stack.length - 1].id === id) return 'top';\n return stack.some((entry) => entry.id === id) ? 'open' : 'closed';\n }, [store, id]);\n return React.useSyncExternalStore(store?.subscribe ?? noopSubscribe, getSnapshot, getClosed);\n}\n\nfunction useStackEntry(store: DrillDownStore | null, id: string): StackEntry | undefined {\n const getSnapshot = React.useCallback(\n () => store?.getState().stack.find((entry) => entry.id === id),\n [store, id],\n );\n return React.useSyncExternalStore(store?.subscribe ?? noopSubscribe, getSnapshot, getUndefined);\n}\n\nfunction useDrillDownDirection(store: DrillDownStore | null): AnimationDirection {\n const getSnapshot = React.useCallback(() => store?.getState().direction ?? null, [store]);\n return React.useSyncExternalStore(store?.subscribe ?? noopSubscribe, getSnapshot, getServerDirection);\n}\n\nconst noopSubscribe = () => () => {};\nconst getClosed = (): PanelPosition => 'closed';\nconst getUndefined = () => undefined;\n\n// ============================================================================\n// Sub Context (for individual submenu instances)\n// ============================================================================\n\ninterface SubContextValue {\n /** Unique ID for this submenu */\n id: string;\n /** Label for the back button */\n label: React.ReactNode;\n}\n\nconst SubContext = React.createContext<SubContextValue | null>(null);\n\nfunction useSubContext() {\n return React.useContext(SubContext);\n}\n\nexport {\n DrillDownRoot,\n DrillDownLevelContext,\n SubContext,\n useCreateDrillDownStore,\n useDrillDownStore,\n useDrillDownDirection,\n usePanelPosition,\n useStackEntry,\n useSubContext,\n};\n\nexport type { SubmenuBehavior, DrillDownStore, PanelPosition, SubContextValue, AnimationDirection };\n"],
5
- "mappings": "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",
6
- "names": ["React", "INITIAL_STATE", "PANEL_ITEM_SELECTOR", "BACK_ITEM_CLASS", "escapeAttributeValue", "value", "DrillDownStore", "__publicField", "element", "listener", "modality", "id", "entry", "stack", "trigger", "name", "scrollTop", "top", "index", "next", "root", "change", "content", "scroller", "focus", "panel", "items", "item", "DrillDownStoreContext", "DrillDownLevelContext", "useDrillDownStore", "useCreateDrillDownStore", "store", "selectDepth", "state", "selectDirection", "getServerDepth", "getServerDirection", "DrillDownRoot", "behavior", "open", "children", "isDrillDown", "depth", "direction", "isRoot", "wasOpenRef", "rootRef", "handleKeyDownCapture", "handlePointerDownCapture", "usePanelPosition", "getSnapshot", "noopSubscribe", "getClosed", "useStackEntry", "getUndefined", "useDrillDownDirection", "SubContext", "useSubContext"]
7
- }
@@ -1 +0,0 @@
1
- //# sourceMappingURL=chunk-2KZ4NI3X.js.map
@@ -1,2 +0,0 @@
1
- import{a as o}from"./chunk-KEWNXANF.js";import{a as s}from"./chunk-SBRPXQWH.js";import{a as p}from"./chunk-SJXV4BWZ.js";import{a as t}from"./chunk-N6KH2EOU.js";import{a as e}from"./chunk-NZJGC6ZW.js";import{d as r}from"./chunk-CUNKWFKA.js";var i=["1","2","3","4","5","6","7","8","9"],n=["auto","always","hover","none"],D={...e,size:{type:"enum",className:"kui-r-size",values:i,responsive:!0},...t,...o,...p,...s,underline:{type:"enum",className:"kui-underline",values:n,default:"auto"},...r};export{D as a};
2
- //# sourceMappingURL=chunk-3BUQ7ADW.js.map
@@ -1,2 +0,0 @@
1
- import{a as oe}from"./chunk-BEP4AH5V.js";import{b as J,c as Q,d as G,e as Z,f as ee}from"./chunk-IX5HIHVI.js";import{a as $}from"./chunk-MJJ7XDIP.js";import{b as X,c as O}from"./chunk-PPZY7PJA.js";import{c as N}from"./chunk-3KQE2PSJ.js";import{a as B}from"./chunk-R4XJNQX5.js";import{e as K}from"./chunk-3YLYGKFB.js";import{b as v,c as k,d as W,e as V,f as A}from"./chunk-3XHTJZNP.js";import{b as y,c as F,d as S,e as T}from"./chunk-KZEZDBE7.js";import{a as h}from"./chunk-ELAW7ZUG.js";import{a as f,b as I,c as j,d as H,e as x,f as U,g as Y,h as q,i as E}from"./chunk-2E4P5XQL.js";import{a as he}from"./chunk-OS3FCYZY.js";var Ne={};he(Ne,{CheckboxItem:()=>me,Content:()=>ue,Group:()=>de,Item:()=>se,Label:()=>pe,RadioGroup:()=>le,RadioItem:()=>ce,Root:()=>te,Separator:()=>Me,Sub:()=>we,SubContent:()=>fe,SubTrigger:()=>De,Trigger:()=>ie,TriggerIcon:()=>Ce,Virtual:()=>oe});import*as e from"react";import s from"classnames";import{DropdownMenu as p,Slot as ke}from"radix-ui";import{useCallbackRef as ne}from"radix-ui/internal";var re=e.createContext(!1),te=o=>{let{open:n,defaultOpen:r=!1,onOpenChange:a}=o,[i,t]=e.useState(r),u=n??i,d=ne(a),l=e.useCallback(m=>{t(m),d(m)},[d]);return e.createElement(re.Provider,{value:u},e.createElement(p.Root,{...o,onOpenChange:l}))};te.displayName="DropdownMenu.Root";var ie=e.forwardRef(({children:o,...n},r)=>e.createElement(p.Trigger,{...n,ref:r,asChild:!0},$(o)));ie.displayName="DropdownMenu.Trigger";var L=e.createContext({}),ye={ltr:"ArrowLeft",rtl:"ArrowRight"},Se={ltr:"ArrowRight",rtl:"ArrowLeft"};function Te(o){return o instanceof HTMLElement&&(o.isContentEditable||o.tagName==="INPUT"||o.tagName==="TEXTAREA")}function ae(o){return o?.closest("[dir]")?.getAttribute("dir")==="rtl"?"rtl":"ltr"}var ue=e.forwardRef((o,n)=>{let r=K(o,v.size),a=X(),{size:i=v.size.default}=r,{className:t,children:u,color:d,container:l,forceMount:m,submenuBehavior:w,virtualized:c=!1,onEscapeKeyDown:R,onKeyDown:C,...P}=h(r,v),D=d||a.accentColor,g=y(w,"cascade"),z=g==="drill-down",ge=e.useContext(re),b=j(),be=M=>{R?.(M),!(M.defaultPrevented||!z||b.getDepth()===0)&&(M.preventDefault(),b.pop("keyboard"))},Ie=M=>{C?.(M),!(M.defaultPrevented||!z||b.getDepth()===0)&&(Te(M.target)||M.key===ye[ae(M.currentTarget)]&&(M.preventDefault(),b.pop("keyboard")))},ve=e.useMemo(()=>({size:i,color:D}),[i,D]),_=e.createElement(N,{size:i},e.createElement(L.Provider,{value:ve},e.createElement(H,{store:b,behavior:g,open:ge},u)));return e.createElement(p.Portal,{container:l,forceMount:m},e.createElement(O,{asChild:!0},e.createElement(p.Content,{"data-accent-color":D,align:"start",sideOffset:4,collisionPadding:10,...P,onEscapeKeyDown:be,onKeyDown:Ie,asChild:!1,ref:n,className:s("kui-PopperContent","kui-BaseMenuContent","kui-variant-soft","kui-DropdownMenuContent",t)},c?e.createElement("div",{className:s("kui-BaseMenuViewport","kui-DropdownMenuViewport","kui-virtualized")},_):e.createElement(B,{type:"auto",scrollbars:"vertical"},e.createElement("div",{className:s("kui-BaseMenuViewport","kui-DropdownMenuViewport")},_)))))});ue.displayName="DropdownMenu.Content";var pe=e.forwardRef(({className:o,...n},r)=>e.useContext(f)?e.createElement(p.Label,{...n,asChild:!1,ref:r,className:s("kui-BaseMenuLabel","kui-DropdownMenuLabel",o)}):null);pe.displayName="DropdownMenu.Label";var se=e.forwardRef((o,n)=>{let{className:r,children:a,color:i=W.color.default,shortcut:t,...u}=o;return e.useContext(f)?e.createElement(p.Item,{"data-accent-color":i,"aria-keyshortcuts":t?S(t):void 0,...u,ref:n,className:s("kui-reset","kui-BaseMenuItem","kui-DropdownMenuItem",r)},e.createElement(ke.Slottable,null,a),t&&e.createElement(T,{shortcut:t,className:"kui-DropdownMenuShortcut"})):null});se.displayName="DropdownMenu.Item";var de=e.forwardRef(({className:o,...n},r)=>e.createElement(p.Group,{...n,asChild:!1,ref:r,className:s("kui-BaseMenuGroup","kui-DropdownMenuGroup",o)}));de.displayName="DropdownMenu.Group";var le=e.forwardRef(({className:o,...n},r)=>e.createElement(p.RadioGroup,{...n,asChild:!1,ref:r,className:s("kui-BaseMenuRadioGroup","kui-DropdownMenuRadioGroup",o)}));le.displayName="DropdownMenu.RadioGroup";var ce=e.forwardRef((o,n)=>{let{children:r,className:a,color:i=A.color.default,...t}=o;return e.useContext(f)?e.createElement(p.RadioItem,{...t,asChild:!1,ref:n,"data-accent-color":i,className:s("kui-BaseMenuItem","kui-BaseMenuRadioItem","kui-DropdownMenuItem","kui-DropdownMenuRadioItem",a)},r,e.createElement(p.ItemIndicator,{className:"kui-BaseMenuItemIndicator kui-DropdownMenuItemIndicator"},e.createElement(ee,{className:"kui-BaseMenuItemIndicatorIcon kui-DropdownMenuItemIndicatorIcon"}))):null});ce.displayName="DropdownMenu.RadioItem";var me=e.forwardRef((o,n)=>{let{children:r,className:a,shortcut:i,color:t=V.color.default,...u}=o;return e.useContext(f)?e.createElement(p.CheckboxItem,{"aria-keyshortcuts":i?S(i):void 0,...u,asChild:!1,ref:n,"data-accent-color":t,className:s("kui-BaseMenuItem","kui-BaseMenuCheckboxItem","kui-DropdownMenuItem","kui-DropdownMenuCheckboxItem",a)},r,e.createElement(p.ItemIndicator,{className:"kui-BaseMenuItemIndicator kui-DropdownMenuItemIndicator"},e.createElement(J,{className:"kui-BaseMenuItemIndicatorIcon kui-DropdownMenuItemIndicatorIcon"})),i&&e.createElement(T,{shortcut:i,className:"kui-DropdownMenuShortcut"})):null});me.displayName="DropdownMenu.CheckboxItem";var we=({label:o="Back",open:n,defaultOpen:r,onOpenChange:a,children:i})=>{let t=I(),u=e.useId(),d=e.useMemo(()=>({id:u,label:o}),[u,o]),l=x(t,u)!=="closed";e.useLayoutEffect(()=>{!t||n===void 0||(n&&!t.isOpen(u)?t.push(u,null):!n&&t.isOpen(u)&&t.close(u))},[t,n,u]);let m=e.useRef(r);e.useLayoutEffect(()=>{t&&m.current&&n===void 0&&t.push(u,null)},[]);let w=ne(a),c=e.useRef(l);return e.useEffect(()=>{!t||c.current===l||(c.current=l,w(l))},[t,l,w]),e.createElement(q.Provider,{value:d},e.createElement(p.Sub,{open:n,defaultOpen:r,onOpenChange:t?void 0:a},i))};we.displayName="DropdownMenu.Sub";var De=e.forwardRef((o,n)=>{let{className:r,children:a,onKeyDown:i,...t}=o,u=I(),d=E(),l=e.useContext(f);if(u&&d){if(!l)return null;let m=c=>{c.preventDefault(),u.push(d.id)},w=c=>{i?.(c),!(c.defaultPrevented||t.disabled)&&c.key===Se[ae(c.currentTarget)]&&(c.preventDefault(),u.push(d.id,"keyboard"))};return e.createElement(p.Item,{"aria-haspopup":"menu",...t,"data-drill-down-trigger":d.id,"data-drill-down-name":t.textValue,onSelect:m,onKeyDown:w,ref:n,className:s("kui-reset","kui-BaseMenuItem","kui-BaseMenuSubTrigger","kui-DropdownMenuItem","kui-DropdownMenuSubTrigger","kui-DropdownMenuDrillDownSubTrigger",r)},a,e.createElement("div",{className:"kui-BaseMenuShortcut kui-DropdownMenuShortcut"},e.createElement(G,{className:"kui-BaseMenuSubTriggerIcon kui-DropdownMenuSubTriggerIcon"})))}return e.createElement(p.SubTrigger,{...t,onKeyDown:i,asChild:!1,ref:n,className:s("kui-BaseMenuItem","kui-BaseMenuSubTrigger","kui-DropdownMenuItem","kui-DropdownMenuSubTrigger",r)},a,e.createElement("div",{className:"kui-BaseMenuShortcut kui-DropdownMenuShortcut"},e.createElement(G,{className:"kui-BaseMenuSubTriggerIcon kui-DropdownMenuSubTriggerIcon"})))});De.displayName="DropdownMenu.SubTrigger";var Me=e.forwardRef(({className:o,...n},r)=>e.useContext(f)?e.createElement(p.Separator,{...n,asChild:!1,ref:r,className:s("kui-BaseMenuSeparator","kui-DropdownMenuSeparator",o)}):null);Me.displayName="DropdownMenu.Separator";function xe({label:o,name:n}){let r=I(),a=e.useCallback(u=>{u.preventDefault(),r?.pop()},[r]),i=typeof o=="string"?o:n,t=i&&i!=="Back"?`Back from ${i}`:void 0;return e.createElement(p.Item,{"aria-label":t,textValue:i||"Back",onSelect:a,className:s("kui-reset","kui-BaseMenuItem","kui-DropdownMenuItem","kui-DropdownMenuDrillDownBackItem")},e.createElement(Z,{className:"kui-BaseMenuSubTriggerIcon kui-DropdownMenuDrillDownBackIcon"}),e.createElement("span",{className:"kui-DropdownMenuDrillDownBackLabel"},o))}function Ee(o){let{loop:n,onEscapeKeyDown:r,onPointerDownOutside:a,onFocusOutside:i,onInteractOutside:t,sideOffset:u,alignOffset:d,avoidCollisions:l,collisionBoundary:m,collisionPadding:w,arrowPadding:c,sticky:R,hideWhenDetached:C,updatePositionStrategy:P,...D}=o;return D}var fe=e.forwardRef((o,n)=>{let r=I(),a=E();return r&&a?e.createElement(Re,{...o,ref:n,store:r,sub:a}):e.createElement(Pe,{...o,ref:n})});fe.displayName="DropdownMenu.SubContent";var Pe=e.forwardRef((o,n)=>{let r=e.useContext(L),a=o.size??r.size,i=o.color??r.color,{className:t,children:u,container:d,forceMount:l,color:m,virtualized:w=!1,...c}=h({...o,size:a},k),R=y(a,k.size.default),C=e.useMemo(()=>({size:a,color:i}),[a,i]),P=e.createElement(N,{size:a},e.createElement(L.Provider,{value:C},u));return e.createElement(p.Portal,{container:d,forceMount:l},e.createElement(O,{asChild:!0},e.createElement(p.SubContent,{"data-accent-color":i,alignOffset:F(R),sideOffset:1,collisionPadding:10,...c,asChild:!1,ref:n,className:s("kui-PopperContent","kui-BaseMenuContent","kui-variant-soft","kui-BaseMenuSubContent","kui-DropdownMenuContent","kui-DropdownMenuSubContent",t)},w?e.createElement("div",{className:s("kui-BaseMenuViewport","kui-DropdownMenuViewport","kui-virtualized")},P):e.createElement(B,{type:"auto",scrollbars:"vertical"},e.createElement("div",{className:s("kui-BaseMenuViewport","kui-DropdownMenuViewport")},P)))))});Pe.displayName="DropdownMenu.CascadeSubContent";var Re=e.forwardRef(({store:o,sub:n,...r},a)=>{let i=x(o,n.id),t=U(o,n.id),u=Y(i==="top"?o:null);if(i==="closed")return null;let{className:d,children:l,container:m,forceMount:w,virtualized:c,size:R,color:C,...P}=Ee(r),D=i==="top",g=t?.name||(typeof n.label=="string"?n.label:"");return e.createElement("div",{role:"group","aria-label":g||void 0,...P,ref:a,"data-drill-down-panel":n.id,"data-drill-down-active":D?!0:void 0,"data-animation-direction":D?u??void 0:void 0,className:s("kui-DropdownMenuDrillDownPanel",d)},D&&e.createElement(e.Fragment,null,e.createElement(xe,{label:n.label,name:g}),e.createElement(p.Separator,{className:"kui-BaseMenuSeparator kui-DropdownMenuSeparator"})),e.createElement(f.Provider,{value:D},l))});Re.displayName="DropdownMenu.DrillDownPanel";var Ce=e.forwardRef(({className:o,...n},r)=>e.createElement(Q,{...n,ref:r,className:s("kui-DropdownMenuTriggerIcon",o)}));Ce.displayName="DropdownMenu.TriggerIcon";export{te as a,ie as b,ue as c,pe as d,se as e,de as f,le as g,ce as h,me as i,we as j,De as k,Me as l,fe as m,Ce as n,Ne as o};
2
- //# sourceMappingURL=chunk-3JA7SJDT.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/dropdown-menu.tsx"],
4
- "sourcesContent": ["'use client';\n\nimport { warnDeprecated } from '../helpers/warn-deprecated.js';\nimport * as React from 'react';\nimport { VirtualMenu } from './virtual-menu.js';\nimport classNames from 'classnames';\nimport { DropdownMenu as DropdownMenuPrimitive, Slot } from 'radix-ui';\nimport { useCallbackRef } from 'radix-ui/internal';\n\nimport { ScrollArea } from './scroll-area.js';\nimport {\n dropdownMenuContentPropDefs,\n dropdownMenuSubContentPropDefs,\n dropdownMenuItemPropDefs,\n dropdownMenuCheckboxItemPropDefs,\n dropdownMenuRadioItemPropDefs,\n} from './dropdown-menu.props.js';\nimport { Theme, useThemeContext } from './theme.js';\nimport { ChevronDownIcon, ThickCheckIcon, ThickChevronLeftIcon, ThickChevronRightIcon, ThickDotIcon } from './icons.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { useThemeSizeProps } from '../helpers/theme-size.js';\nimport {\n DrillDownLevelContext,\n DrillDownRoot,\n SubContext,\n useCreateDrillDownStore,\n useDrillDownDirection,\n useDrillDownStore,\n usePanelPosition,\n useStackEntry,\n useSubContext,\n} from './_internal/dropdown-menu-drill-down.js';\nimport { MenuProvider } from './_internal/menu-context.js';\nimport {\n MenuShortcut,\n getMenuAlignOffset,\n toAriaKeyShortcuts,\n useResolvedResponsiveValue,\n} from './_internal/base-menu.utils.js';\nimport { requireReactElement } from '../helpers/require-react-element.js';\n\nimport type { SubmenuBehavior } from './_internal/dropdown-menu-drill-down.js';\nimport type { IconProps } from './icons.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes, Responsive } from '../props/prop-def.js';\n\n/**\n * Open state of the menu, mirrored from Root so Content can reset drill-down\n * navigation when a force-mounted menu opens again.\n */\nconst DropdownMenuOpenContext = React.createContext(false);\n\ninterface DropdownMenuRootProps\n extends React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Root> {}\nconst DropdownMenuRoot: React.FC<DropdownMenuRootProps> = (props) => {\n const { open: openProp, defaultOpen = false, onOpenChange } = props;\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(defaultOpen);\n const open = openProp ?? uncontrolledOpen;\n\n const handleOpenChangeProp = useCallbackRef(onOpenChange);\n const handleOpenChange = React.useCallback(\n (next: boolean) => {\n setUncontrolledOpen(next);\n handleOpenChangeProp(next);\n },\n [handleOpenChangeProp],\n );\n\n return (\n <DropdownMenuOpenContext.Provider value={open}>\n <DropdownMenuPrimitive.Root {...props} onOpenChange={handleOpenChange} />\n </DropdownMenuOpenContext.Provider>\n );\n};\nDropdownMenuRoot.displayName = 'DropdownMenu.Root';\n\ntype DropdownMenuTriggerElement = React.ElementRef<typeof DropdownMenuPrimitive.Trigger>;\ninterface DropdownMenuTriggerProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Trigger, RemovedProps> {}\nconst DropdownMenuTrigger = React.forwardRef<DropdownMenuTriggerElement, DropdownMenuTriggerProps>(\n ({ children, ...props }, forwardedRef) => (\n <DropdownMenuPrimitive.Trigger {...props} ref={forwardedRef} asChild>\n {requireReactElement(children)}\n </DropdownMenuPrimitive.Trigger>\n ),\n);\nDropdownMenuTrigger.displayName = 'DropdownMenu.Trigger';\n\n/** Visual props shared by Content and SubContent. */\ntype DropdownMenuSurfaceProps = GetPropDefTypes<typeof dropdownMenuSubContentPropDefs>;\n\ntype DropdownMenuContentContextValue = {\n size?: DropdownMenuSurfaceProps['size'];\n color?: DropdownMenuSurfaceProps['color'];\n};\nconst DropdownMenuContentContext = React.createContext<DropdownMenuContentContextValue>({});\n\n/** Keys that navigate back one drill-down level, by writing direction. */\nconst BACK_KEYS = { ltr: 'ArrowLeft', rtl: 'ArrowRight' } as const;\nconst FORWARD_KEYS = { ltr: 'ArrowRight', rtl: 'ArrowLeft' } as const;\n\nfunction isTextEntryTarget(target: EventTarget | null) {\n return (\n target instanceof HTMLElement &&\n (target.isContentEditable || target.tagName === 'INPUT' || target.tagName === 'TEXTAREA')\n );\n}\n\nfunction getDirection(element: HTMLElement | null): 'ltr' | 'rtl' {\n return element?.closest('[dir]')?.getAttribute('dir') === 'rtl' ? 'rtl' : 'ltr';\n}\n\ntype DropdownMenuContentElement = React.ElementRef<typeof DropdownMenuPrimitive.Content>;\ninterface DropdownMenuContentProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Content, RemovedProps>,\n DropdownMenuSurfaceProps {\n container?: React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Portal>['container'];\n /**\n * Controls how submenus behave.\n * - `cascade`: Default cascading behavior where submenus open to the side (portal-based)\n * - `drill-down`: Mobile-friendly behavior where submenus replace the content inline\n * Supports responsive values: `{ initial: 'drill-down', md: 'cascade' }`\n */\n submenuBehavior?: Responsive<SubmenuBehavior>;\n /**\n * When true, skips the ScrollArea wrapper to allow VirtualMenu to handle its own scrolling.\n * Use this when rendering virtualized lists inside the dropdown.\n */\n virtualized?: boolean;\n}\nconst DropdownMenuContent = React.forwardRef<DropdownMenuContentElement, DropdownMenuContentProps>(\n (ownProps, forwardedRef) => {\n const props = useThemeSizeProps(ownProps, dropdownMenuContentPropDefs.size);\n const themeContext = useThemeContext();\n const {\n size = dropdownMenuContentPropDefs.size.default,\n } = props;\n const {\n className,\n children,\n color,\n container,\n forceMount,\n submenuBehavior,\n virtualized = false,\n onEscapeKeyDown,\n onKeyDown,\n ...contentProps\n } = extractProps(props, dropdownMenuContentPropDefs);\n\n const resolvedColor = color || themeContext.accentColor;\n const behavior = useResolvedResponsiveValue<SubmenuBehavior>(submenuBehavior, 'cascade');\n const isDrillDown = behavior === 'drill-down';\n const open = React.useContext(DropdownMenuOpenContext);\n const drillDownStore = useCreateDrillDownStore();\n\n // Escape goes back one drill-down level before it closes the menu.\n const handleEscapeKeyDown = (event: KeyboardEvent) => {\n onEscapeKeyDown?.(event);\n if (event.defaultPrevented || !isDrillDown || drillDownStore.getDepth() === 0) return;\n event.preventDefault();\n drillDownStore.pop('keyboard');\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n onKeyDown?.(event);\n if (event.defaultPrevented || !isDrillDown || drillDownStore.getDepth() === 0) return;\n if (isTextEntryTarget(event.target)) return;\n if (event.key === BACK_KEYS[getDirection(event.currentTarget)]) {\n event.preventDefault();\n drillDownStore.pop('keyboard');\n }\n };\n\n const contextValue = React.useMemo(\n () => ({ size, color: resolvedColor }),\n [size, resolvedColor],\n );\n\n const contentBody = (\n <MenuProvider size={size}>\n <DropdownMenuContentContext.Provider value={contextValue}>\n <DrillDownRoot store={drillDownStore} behavior={behavior} open={open}>\n {children}\n </DrillDownRoot>\n </DropdownMenuContentContext.Provider>\n </MenuProvider>\n );\n\n return (\n <DropdownMenuPrimitive.Portal container={container} forceMount={forceMount}>\n <Theme asChild>\n <DropdownMenuPrimitive.Content\n data-accent-color={resolvedColor}\n align=\"start\"\n sideOffset={4}\n collisionPadding={10}\n {...contentProps}\n onEscapeKeyDown={handleEscapeKeyDown}\n onKeyDown={handleKeyDown}\n asChild={false}\n ref={forwardedRef}\n className={classNames(\n 'kui-PopperContent',\n 'kui-BaseMenuContent',\n 'kui-variant-soft',\n 'kui-DropdownMenuContent',\n className,\n )}\n >\n {virtualized ? (\n <div className={classNames('kui-BaseMenuViewport', 'kui-DropdownMenuViewport', 'kui-virtualized')}>\n {contentBody}\n </div>\n ) : (\n <ScrollArea type=\"auto\" scrollbars=\"vertical\">\n <div className={classNames('kui-BaseMenuViewport', 'kui-DropdownMenuViewport')}>\n {contentBody}\n </div>\n </ScrollArea>\n )}\n </DropdownMenuPrimitive.Content>\n </Theme>\n </DropdownMenuPrimitive.Portal>\n );\n },\n);\nDropdownMenuContent.displayName = 'DropdownMenu.Content';\n\ntype DropdownMenuLabelElement = React.ElementRef<typeof DropdownMenuPrimitive.Label>;\ninterface DropdownMenuLabelProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Label, RemovedProps> {}\nconst DropdownMenuLabel = React.forwardRef<DropdownMenuLabelElement, DropdownMenuLabelProps>(\n ({ className, ...props }, forwardedRef) => {\n if (!React.useContext(DrillDownLevelContext)) return null;\n return (\n <DropdownMenuPrimitive.Label\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('kui-BaseMenuLabel', 'kui-DropdownMenuLabel', className)}\n />\n );\n },\n);\nDropdownMenuLabel.displayName = 'DropdownMenu.Label';\n\ntype DropdownMenuItemElement = React.ElementRef<typeof DropdownMenuPrimitive.Item>;\ntype DropdownMenuItemOwnProps = GetPropDefTypes<typeof dropdownMenuItemPropDefs>;\ninterface DropdownMenuItemProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Item, RemovedProps>,\n DropdownMenuItemOwnProps {}\nconst DropdownMenuItem = React.forwardRef<DropdownMenuItemElement, DropdownMenuItemProps>(\n (props, forwardedRef) => {\n const {\n className,\n children,\n color = dropdownMenuItemPropDefs.color.default,\n shortcut,\n ...itemProps\n } = props;\n // In drill-down mode, items of levels that are not on screen do not mount.\n if (!React.useContext(DrillDownLevelContext)) return null;\n return (\n <DropdownMenuPrimitive.Item\n data-accent-color={color}\n aria-keyshortcuts={shortcut ? toAriaKeyShortcuts(shortcut) : undefined}\n {...itemProps}\n ref={forwardedRef}\n className={classNames('kui-reset', 'kui-BaseMenuItem', 'kui-DropdownMenuItem', className)}\n >\n <Slot.Slottable>{children}</Slot.Slottable>\n {shortcut && <MenuShortcut shortcut={shortcut} className=\"kui-DropdownMenuShortcut\" />}\n </DropdownMenuPrimitive.Item>\n );\n },\n);\nDropdownMenuItem.displayName = 'DropdownMenu.Item';\n\ntype DropdownMenuGroupElement = React.ElementRef<typeof DropdownMenuPrimitive.Group>;\ninterface DropdownMenuGroupProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Group, RemovedProps> {}\nconst DropdownMenuGroup = React.forwardRef<DropdownMenuGroupElement, DropdownMenuGroupProps>(\n ({ className, ...props }, forwardedRef) => (\n <DropdownMenuPrimitive.Group\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('kui-BaseMenuGroup', 'kui-DropdownMenuGroup', className)}\n />\n ),\n);\nDropdownMenuGroup.displayName = 'DropdownMenu.Group';\n\ntype DropdownMenuRadioGroupElement = React.ElementRef<typeof DropdownMenuPrimitive.RadioGroup>;\ninterface DropdownMenuRadioGroupProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.RadioGroup, RemovedProps> {}\nconst DropdownMenuRadioGroup = React.forwardRef<\n DropdownMenuRadioGroupElement,\n DropdownMenuRadioGroupProps\n>(({ className, ...props }, forwardedRef) => (\n <DropdownMenuPrimitive.RadioGroup\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('kui-BaseMenuRadioGroup', 'kui-DropdownMenuRadioGroup', className)}\n />\n));\nDropdownMenuRadioGroup.displayName = 'DropdownMenu.RadioGroup';\n\ntype DropdownMenuRadioItemElement = React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>;\ntype DropdownMenuRadioItemOwnProps = GetPropDefTypes<typeof dropdownMenuRadioItemPropDefs>;\ninterface DropdownMenuRadioItemProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.RadioItem, RemovedProps>,\n DropdownMenuRadioItemOwnProps {}\nconst DropdownMenuRadioItem = React.forwardRef<\n DropdownMenuRadioItemElement,\n DropdownMenuRadioItemProps\n>((props, forwardedRef) => {\n const {\n children,\n className,\n color = dropdownMenuRadioItemPropDefs.color.default,\n ...itemProps\n } = props;\n if (!React.useContext(DrillDownLevelContext)) return null;\n return (\n <DropdownMenuPrimitive.RadioItem\n {...itemProps}\n asChild={false}\n ref={forwardedRef}\n data-accent-color={color}\n className={classNames(\n 'kui-BaseMenuItem',\n 'kui-BaseMenuRadioItem',\n 'kui-DropdownMenuItem',\n 'kui-DropdownMenuRadioItem',\n className,\n )}\n >\n {children}\n <DropdownMenuPrimitive.ItemIndicator className=\"kui-BaseMenuItemIndicator kui-DropdownMenuItemIndicator\">\n <ThickDotIcon className=\"kui-BaseMenuItemIndicatorIcon kui-DropdownMenuItemIndicatorIcon\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </DropdownMenuPrimitive.RadioItem>\n );\n});\nDropdownMenuRadioItem.displayName = 'DropdownMenu.RadioItem';\n\ntype DropdownMenuCheckboxItemElement = React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>;\ntype DropdownMenuCheckboxItemOwnProps = GetPropDefTypes<typeof dropdownMenuCheckboxItemPropDefs>;\ninterface DropdownMenuCheckboxItemProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.CheckboxItem, RemovedProps>,\n DropdownMenuCheckboxItemOwnProps {}\nconst DropdownMenuCheckboxItem = React.forwardRef<\n DropdownMenuCheckboxItemElement,\n DropdownMenuCheckboxItemProps\n>((props, forwardedRef) => {\n const {\n children,\n className,\n shortcut,\n color = dropdownMenuCheckboxItemPropDefs.color.default,\n ...itemProps\n } = props;\n if (!React.useContext(DrillDownLevelContext)) return null;\n return (\n <DropdownMenuPrimitive.CheckboxItem\n aria-keyshortcuts={shortcut ? toAriaKeyShortcuts(shortcut) : undefined}\n {...itemProps}\n asChild={false}\n ref={forwardedRef}\n data-accent-color={color}\n className={classNames(\n 'kui-BaseMenuItem',\n 'kui-BaseMenuCheckboxItem',\n 'kui-DropdownMenuItem',\n 'kui-DropdownMenuCheckboxItem',\n className,\n )}\n >\n {children}\n <DropdownMenuPrimitive.ItemIndicator className=\"kui-BaseMenuItemIndicator kui-DropdownMenuItemIndicator\">\n <ThickCheckIcon className=\"kui-BaseMenuItemIndicatorIcon kui-DropdownMenuItemIndicatorIcon\" />\n </DropdownMenuPrimitive.ItemIndicator>\n {shortcut && <MenuShortcut shortcut={shortcut} className=\"kui-DropdownMenuShortcut\" />}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n});\nDropdownMenuCheckboxItem.displayName = 'DropdownMenu.CheckboxItem';\n\ninterface DropdownMenuSubProps\n extends React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Sub> {\n /**\n * Label displayed in the back button when using drill-down mode.\n * If not provided, defaults to \"Back\".\n */\n label?: React.ReactNode;\n}\nconst DropdownMenuSub: React.FC<DropdownMenuSubProps> = ({\n label = 'Back',\n open,\n defaultOpen,\n onOpenChange,\n children,\n}) => {\n const drillDownStore = useDrillDownStore();\n const id = React.useId();\n const subContextValue = React.useMemo(() => ({ id, label }), [id, label]);\n const isOpenInDrillDown = usePanelPosition(drillDownStore, id) !== 'closed';\n\n // Drill-down: `open` and `defaultOpen` drive the stack; the stack drives\n // `onOpenChange`. A controlled `open` is applied when it changes.\n React.useLayoutEffect(() => {\n if (!drillDownStore || open === undefined) return;\n if (open && !drillDownStore.isOpen(id)) drillDownStore.push(id, null);\n else if (!open && drillDownStore.isOpen(id)) drillDownStore.close(id);\n }, [drillDownStore, open, id]);\n\n const defaultOpenRef = React.useRef(defaultOpen);\n React.useLayoutEffect(() => {\n if (drillDownStore && defaultOpenRef.current && open === undefined) drillDownStore.push(id, null);\n // Only on mount, like an uncontrolled default.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleOpenChange = useCallbackRef(onOpenChange);\n const wasOpenRef = React.useRef(isOpenInDrillDown);\n React.useEffect(() => {\n if (!drillDownStore || wasOpenRef.current === isOpenInDrillDown) return;\n wasOpenRef.current = isOpenInDrillDown;\n handleOpenChange(isOpenInDrillDown);\n }, [drillDownStore, isOpenInDrillDown, handleOpenChange]);\n\n // Radix Sub stays mounted in both behaviors so switching behavior does not\n // remount the subtree. It only renders context; in drill-down its trigger\n // and content are never rendered, so it reports no open changes of its own.\n return (\n <SubContext.Provider value={subContextValue}>\n <DropdownMenuPrimitive.Sub\n open={open}\n defaultOpen={defaultOpen}\n onOpenChange={drillDownStore ? undefined : onOpenChange}\n >\n {children}\n </DropdownMenuPrimitive.Sub>\n </SubContext.Provider>\n );\n};\nDropdownMenuSub.displayName = 'DropdownMenu.Sub';\n\ntype DropdownMenuSubTriggerElement = React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>;\ninterface DropdownMenuSubTriggerProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.SubTrigger, RemovedProps> {}\nconst DropdownMenuSubTrigger = React.forwardRef<\n DropdownMenuSubTriggerElement,\n DropdownMenuSubTriggerProps\n>((props, forwardedRef) => {\n const { className, children, onKeyDown, ...subTriggerProps } = props;\n const drillDownStore = useDrillDownStore();\n const subContext = useSubContext();\n const isLevelVisible = React.useContext(DrillDownLevelContext);\n\n if (drillDownStore && subContext) {\n if (!isLevelVisible) return null;\n\n const handleSelect = (event: Event) => {\n // Navigating does not close the menu.\n event.preventDefault();\n drillDownStore.push(subContext.id);\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n onKeyDown?.(event);\n if (event.defaultPrevented || subTriggerProps.disabled) return;\n if (event.key === FORWARD_KEYS[getDirection(event.currentTarget)]) {\n event.preventDefault();\n drillDownStore.push(subContext.id, 'keyboard');\n }\n };\n\n return (\n <DropdownMenuPrimitive.Item\n aria-haspopup=\"menu\"\n {...subTriggerProps}\n data-drill-down-trigger={subContext.id}\n data-drill-down-name={subTriggerProps.textValue}\n onSelect={handleSelect}\n onKeyDown={handleKeyDown}\n ref={forwardedRef}\n className={classNames(\n 'kui-reset',\n 'kui-BaseMenuItem',\n 'kui-BaseMenuSubTrigger',\n 'kui-DropdownMenuItem',\n 'kui-DropdownMenuSubTrigger',\n 'kui-DropdownMenuDrillDownSubTrigger',\n className,\n )}\n >\n {children}\n <div className=\"kui-BaseMenuShortcut kui-DropdownMenuShortcut\">\n <ThickChevronRightIcon className=\"kui-BaseMenuSubTriggerIcon kui-DropdownMenuSubTriggerIcon\" />\n </div>\n </DropdownMenuPrimitive.Item>\n );\n }\n\n return (\n <DropdownMenuPrimitive.SubTrigger\n {...subTriggerProps}\n onKeyDown={onKeyDown}\n asChild={false}\n ref={forwardedRef}\n className={classNames(\n 'kui-BaseMenuItem',\n 'kui-BaseMenuSubTrigger',\n 'kui-DropdownMenuItem',\n 'kui-DropdownMenuSubTrigger',\n className,\n )}\n >\n {children}\n <div className=\"kui-BaseMenuShortcut kui-DropdownMenuShortcut\">\n <ThickChevronRightIcon className=\"kui-BaseMenuSubTriggerIcon kui-DropdownMenuSubTriggerIcon\" />\n </div>\n </DropdownMenuPrimitive.SubTrigger>\n );\n});\nDropdownMenuSubTrigger.displayName = 'DropdownMenu.SubTrigger';\n\ntype DropdownMenuSeparatorElement = React.ElementRef<typeof DropdownMenuPrimitive.Separator>;\ninterface DropdownMenuSeparatorProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.Separator, RemovedProps> {}\nconst DropdownMenuSeparator = React.forwardRef<\n DropdownMenuSeparatorElement,\n DropdownMenuSeparatorProps\n>(({ className, ...props }, forwardedRef) => {\n if (!React.useContext(DrillDownLevelContext)) return null;\n return (\n <DropdownMenuPrimitive.Separator\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('kui-BaseMenuSeparator', 'kui-DropdownMenuSeparator', className)}\n />\n );\n});\nDropdownMenuSeparator.displayName = 'DropdownMenu.Separator';\n\n/** The row at the top of a drill-down panel that returns to the parent level. */\nfunction DrillDownBackItem({ label, name }: { label: React.ReactNode; name: string }) {\n const drillDownStore = useDrillDownStore();\n\n const handleSelect = React.useCallback(\n (event: Event) => {\n // Navigating does not close the menu.\n event.preventDefault();\n drillDownStore?.pop();\n },\n [drillDownStore],\n );\n\n // The visible label is often the submenu title, so the accessible name says\n // what the row does while still containing the visible text.\n const labelText = typeof label === 'string' ? label : name;\n const ariaLabel = labelText && labelText !== 'Back' ? `Back from ${labelText}` : undefined;\n\n return (\n <DropdownMenuPrimitive.Item\n aria-label={ariaLabel}\n textValue={labelText || 'Back'}\n onSelect={handleSelect}\n className={classNames(\n 'kui-reset',\n 'kui-BaseMenuItem',\n 'kui-DropdownMenuItem',\n 'kui-DropdownMenuDrillDownBackItem',\n )}\n >\n <ThickChevronLeftIcon className=\"kui-BaseMenuSubTriggerIcon kui-DropdownMenuDrillDownBackIcon\" />\n <span className=\"kui-DropdownMenuDrillDownBackLabel\">{label}</span>\n </DropdownMenuPrimitive.Item>\n );\n}\n\n/** Radix positioning and layer props that have no meaning for an inline drill-down panel. */\ntype PopperOnlyProps =\n | 'loop'\n | 'onEscapeKeyDown'\n | 'onPointerDownOutside'\n | 'onFocusOutside'\n | 'onInteractOutside'\n | 'sideOffset'\n | 'alignOffset'\n | 'avoidCollisions'\n | 'collisionBoundary'\n | 'collisionPadding'\n | 'arrowPadding'\n | 'sticky'\n | 'hideWhenDetached'\n | 'updatePositionStrategy';\n\nfunction omitPopperProps<T extends Record<string, unknown>>(props: T): Omit<T, PopperOnlyProps> {\n const {\n loop: _loop,\n onEscapeKeyDown: _onEscapeKeyDown,\n onPointerDownOutside: _onPointerDownOutside,\n onFocusOutside: _onFocusOutside,\n onInteractOutside: _onInteractOutside,\n sideOffset: _sideOffset,\n alignOffset: _alignOffset,\n avoidCollisions: _avoidCollisions,\n collisionBoundary: _collisionBoundary,\n collisionPadding: _collisionPadding,\n arrowPadding: _arrowPadding,\n sticky: _sticky,\n hideWhenDetached: _hideWhenDetached,\n updatePositionStrategy: _updatePositionStrategy,\n ...rest\n } = props;\n return rest;\n}\n\ntype DropdownMenuSubContentElement = React.ElementRef<typeof DropdownMenuPrimitive.SubContent>;\ninterface DropdownMenuSubContentProps\n extends ComponentPropsWithout<typeof DropdownMenuPrimitive.SubContent, RemovedProps>,\n DropdownMenuSurfaceProps {\n container?: React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Portal>['container'];\n /**\n * When true, skips the ScrollArea wrapper so a VirtualMenu can handle its own\n * scrolling. Applies to cascade submenus; a drill-down panel scrolls with the\n * root content.\n */\n virtualized?: boolean;\n}\nconst DropdownMenuSubContent = React.forwardRef<\n DropdownMenuSubContentElement,\n DropdownMenuSubContentProps\n>((props, forwardedRef) => {\n const drillDownStore = useDrillDownStore();\n const subContext = useSubContext();\n\n if (drillDownStore && subContext) {\n return (\n <DrillDownPanel {...props} ref={forwardedRef} store={drillDownStore} sub={subContext} />\n );\n }\n return <CascadeSubContent {...props} ref={forwardedRef} />;\n});\nDropdownMenuSubContent.displayName = 'DropdownMenu.SubContent';\n\nconst CascadeSubContent = React.forwardRef<DropdownMenuSubContentElement, DropdownMenuSubContentProps>(\n (props, forwardedRef) => {\n const parent = React.useContext(DropdownMenuContentContext);\n\n // A submenu inherits the parent surface, and its own props win.\n const size = props.size ?? parent.size;\n const color = props.color ?? parent.color;\n\n const {\n className,\n children,\n container,\n forceMount,\n color: _color,\n virtualized = false,\n ...subContentProps\n } = extractProps({ ...props, size }, dropdownMenuSubContentPropDefs);\n\n const scalarSize = useResolvedResponsiveValue(size, dropdownMenuSubContentPropDefs.size.default);\n\n const contextValue = React.useMemo(\n () => ({ size, color }),\n [size, color],\n );\n\n const body = (\n <MenuProvider size={size}>\n <DropdownMenuContentContext.Provider value={contextValue}>{children}</DropdownMenuContentContext.Provider>\n </MenuProvider>\n );\n\n return (\n <DropdownMenuPrimitive.Portal container={container} forceMount={forceMount}>\n <Theme asChild>\n <DropdownMenuPrimitive.SubContent\n data-accent-color={color}\n alignOffset={getMenuAlignOffset(scalarSize)}\n // Side offset accounts for the outer solid box-shadow\n sideOffset={1}\n collisionPadding={10}\n {...subContentProps}\n asChild={false}\n ref={forwardedRef}\n className={classNames(\n 'kui-PopperContent',\n 'kui-BaseMenuContent',\n 'kui-variant-soft',\n 'kui-BaseMenuSubContent',\n 'kui-DropdownMenuContent',\n 'kui-DropdownMenuSubContent',\n className,\n )}\n >\n {virtualized ? (\n <div className={classNames('kui-BaseMenuViewport', 'kui-DropdownMenuViewport', 'kui-virtualized')}>\n {body}\n </div>\n ) : (\n <ScrollArea type=\"auto\" scrollbars=\"vertical\">\n <div className={classNames('kui-BaseMenuViewport', 'kui-DropdownMenuViewport')}>{body}</div>\n </ScrollArea>\n )}\n </DropdownMenuPrimitive.SubContent>\n </Theme>\n </DropdownMenuPrimitive.Portal>\n );\n },\n);\nCascadeSubContent.displayName = 'DropdownMenu.CascadeSubContent';\n\ninterface DrillDownPanelProps extends DropdownMenuSubContentProps {\n store: NonNullable<ReturnType<typeof useDrillDownStore>>;\n sub: NonNullable<ReturnType<typeof useSubContext>>;\n}\n\n/**\n * A submenu rendered inline in drill-down mode. It mounts its children only\n * while it is on the navigation stack, and shows its own items only while it\n * is the top level; deeper panels inside it stay mounted.\n */\nconst DrillDownPanel = React.forwardRef<DropdownMenuSubContentElement, DrillDownPanelProps>(\n ({ store, sub, ...props }, forwardedRef) => {\n const position = usePanelPosition(store, sub.id);\n const entry = useStackEntry(store, sub.id);\n const direction = useDrillDownDirection(position === 'top' ? store : null);\n\n if (position === 'closed') return null;\n\n const {\n className,\n children,\n container: _container,\n forceMount: _forceMount,\n virtualized: _virtualized,\n size: _size,\n color: _color,\n ...panelProps\n } = omitPopperProps(props);\n\n const isTop = position === 'top';\n const name = entry?.name || (typeof sub.label === 'string' ? sub.label : '');\n\n return (\n <div\n role=\"group\"\n aria-label={name || undefined}\n {...panelProps}\n ref={forwardedRef}\n data-drill-down-panel={sub.id}\n data-drill-down-active={isTop ? true : undefined}\n data-animation-direction={isTop ? (direction ?? undefined) : undefined}\n className={classNames('kui-DropdownMenuDrillDownPanel', className)}\n >\n {isTop && (\n <>\n <DrillDownBackItem label={sub.label} name={name} />\n <DropdownMenuPrimitive.Separator className=\"kui-BaseMenuSeparator kui-DropdownMenuSeparator\" />\n </>\n )}\n <DrillDownLevelContext.Provider value={isTop}>{children}</DrillDownLevelContext.Provider>\n </div>\n );\n },\n);\nDrillDownPanel.displayName = 'DropdownMenu.DrillDownPanel';\n\ntype DropdownMenuTriggerIconElement = React.ElementRef<'svg'>;\ninterface DropdownMenuTriggerIconProps extends IconProps {}\nconst DropdownMenuTriggerIcon = React.forwardRef<\n DropdownMenuTriggerIconElement,\n DropdownMenuTriggerIconProps\n>(({ className, ...props }, forwardedRef) => (\n <ChevronDownIcon\n {...props}\n ref={forwardedRef}\n className={classNames('kui-DropdownMenuTriggerIcon', className)}\n />\n));\nDropdownMenuTriggerIcon.displayName = 'DropdownMenu.TriggerIcon';\n\nexport {\n DropdownMenuRoot as Root,\n DropdownMenuTrigger as Trigger,\n DropdownMenuTriggerIcon as TriggerIcon,\n DropdownMenuContent as Content,\n DropdownMenuLabel as Label,\n DropdownMenuItem as Item,\n DropdownMenuGroup as Group,\n DropdownMenuRadioGroup as RadioGroup,\n DropdownMenuRadioItem as RadioItem,\n DropdownMenuCheckboxItem as CheckboxItem,\n DropdownMenuSub as Sub,\n DropdownMenuSubTrigger as SubTrigger,\n DropdownMenuSubContent as SubContent,\n DropdownMenuSeparator as Separator,\n VirtualMenu as Virtual,\n};\n\nexport type {\n DropdownMenuRootProps as RootProps,\n DropdownMenuTriggerProps as TriggerProps,\n DropdownMenuTriggerIconProps as TriggerIconProps,\n DropdownMenuContentProps as ContentProps,\n DropdownMenuLabelProps as LabelProps,\n DropdownMenuItemProps as ItemProps,\n DropdownMenuGroupProps as GroupProps,\n DropdownMenuRadioGroupProps as RadioGroupProps,\n DropdownMenuRadioItemProps as RadioItemProps,\n DropdownMenuCheckboxItemProps as CheckboxItemProps,\n DropdownMenuSubProps as SubProps,\n DropdownMenuSubTriggerProps as SubTriggerProps,\n DropdownMenuSubContentProps as SubContentProps,\n DropdownMenuSeparatorProps as SeparatorProps,\n SubmenuBehavior,\n};\n"],
5
- "mappings": "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",
6
- "names": ["dropdown_menu_exports", "__export", "DropdownMenuCheckboxItem", "DropdownMenuContent", "DropdownMenuGroup", "DropdownMenuItem", "DropdownMenuLabel", "DropdownMenuRadioGroup", "DropdownMenuRadioItem", "DropdownMenuRoot", "DropdownMenuSeparator", "DropdownMenuSub", "DropdownMenuSubContent", "DropdownMenuSubTrigger", "DropdownMenuTrigger", "DropdownMenuTriggerIcon", "VirtualMenu", "React", "classNames", "DropdownMenuPrimitive", "Slot", "useCallbackRef", "DropdownMenuOpenContext", "DropdownMenuRoot", "props", "openProp", "defaultOpen", "onOpenChange", "uncontrolledOpen", "setUncontrolledOpen", "open", "handleOpenChangeProp", "useCallbackRef", "handleOpenChange", "next", "DropdownMenuPrimitive", "DropdownMenuTrigger", "children", "forwardedRef", "requireReactElement", "DropdownMenuContentContext", "BACK_KEYS", "FORWARD_KEYS", "isTextEntryTarget", "target", "getDirection", "element", "DropdownMenuContent", "ownProps", "useThemeSizeProps", "baseMenuContentPropDefs", "themeContext", "useThemeContext", "size", "className", "color", "container", "forceMount", "submenuBehavior", "virtualized", "onEscapeKeyDown", "onKeyDown", "contentProps", "extractProps", "resolvedColor", "behavior", "useResolvedResponsiveValue", "isDrillDown", "drillDownStore", "useCreateDrillDownStore", "handleEscapeKeyDown", "event", "handleKeyDown", "contextValue", "contentBody", "MenuProvider", "DrillDownRoot", "Theme", "classNames", "ScrollArea", "DropdownMenuLabel", "DrillDownLevelContext", "DropdownMenuItem", "baseMenuItemPropDefs", "shortcut", "itemProps", "toAriaKeyShortcuts", "Slot", "MenuShortcut", "DropdownMenuGroup", "DropdownMenuRadioGroup", "DropdownMenuRadioItem", "baseMenuRadioItemPropDefs", "ThickDotIcon", "DropdownMenuCheckboxItem", "baseMenuCheckboxItemPropDefs", "ThickCheckIcon", "DropdownMenuSub", "label", "useDrillDownStore", "id", "subContextValue", "isOpenInDrillDown", "usePanelPosition", "defaultOpenRef", "wasOpenRef", "SubContext", "DropdownMenuSubTrigger", "subTriggerProps", "subContext", "useSubContext", "isLevelVisible", "handleSelect", "ThickChevronRightIcon", "DropdownMenuSeparator", "DrillDownBackItem", "name", "labelText", "ariaLabel", "ThickChevronLeftIcon", "omitPopperProps", "_loop", "_onEscapeKeyDown", "_onPointerDownOutside", "_onFocusOutside", "_onInteractOutside", "_sideOffset", "_alignOffset", "_avoidCollisions", "_collisionBoundary", "_collisionPadding", "_arrowPadding", "_sticky", "_hideWhenDetached", "_updatePositionStrategy", "rest", "DropdownMenuSubContent", "DrillDownPanel", "CascadeSubContent", "parent", "_color", "subContentProps", "baseMenuSubContentPropDefs", "scalarSize", "body", "getMenuAlignOffset", "store", "sub", "position", "entry", "useStackEntry", "direction", "useDrillDownDirection", "_container", "_forceMount", "_virtualized", "_size", "panelProps", "isTop", "DropdownMenuTriggerIcon", "ChevronDownIcon"]
7
- }
@@ -1,2 +0,0 @@
1
- import{b as i}from"./chunk-KZEZDBE7.js";import*as e from"react";var u=e.createContext({isInsideMenu:!1}),c={1:24,2:30,3:34,4:38};function d(t){return c[t]}function M({children:t,size:r}){let n=i(r,void 0),o=n?d(n):void 0,s=e.useMemo(()=>({isInsideMenu:!0,size:n,itemHeight:o}),[n,o]);return e.createElement(u.Provider,{value:s},t)}function a(){return e.useContext(u)}export{c as a,d as b,M as c,a as d};
2
- //# sourceMappingURL=chunk-3KQE2PSJ.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/_internal/menu-context.tsx"],
4
- "sourcesContent": ["'use client';\n\nimport * as React from 'react';\n\nimport { useResolvedResponsiveValue } from './base-menu.utils.js';\n\nimport type { Responsive } from '../../props/prop-def.js';\n\n/**\n * Context to detect if a component is rendered inside a menu (DropdownMenu, ContextMenu, etc.)\n * Used by VirtualMenu to adjust its behavior:\n * - Skip role=\"menu\" when inside a parent menu (parent owns the role)\n * - Delegate certain keyboard handling to parent\n * - Use the correct item height based on menu size\n */\n\nexport type MenuSize = '1' | '2' | '3' | '4';\n\ninterface MenuContextValue {\n /** Whether we're inside a menu that owns the menu role */\n isInsideMenu: boolean;\n /** Menu size for the current breakpoint */\n size?: MenuSize;\n /** Item height in px for the current size and theme scaling */\n itemHeight?: number;\n}\n\nconst MenuContext = React.createContext<MenuContextValue>({ isInsideMenu: false });\n\ninterface MenuProviderProps {\n children: React.ReactNode;\n /** Menu size passed from parent (DropdownMenu.Content, ContextMenu.Content, etc.) */\n size?: Responsive<MenuSize>;\n}\n\n/**\n * Menu row height in pixels per size: the line height plus --row-inset-N above and below\n * (base-menu.css), never under the 24px target floor.\n */\nexport const menuSizeToItemHeight: Record<MenuSize, number> = {\n '1': 24,\n '2': 30,\n '3': 34,\n '4': 38,\n};\n\nexport function getMenuItemHeight(size: MenuSize): number {\n return menuSizeToItemHeight[size];\n}\n\nexport function MenuProvider({ children, size }: MenuProviderProps) {\n const resolvedSize = useResolvedResponsiveValue<MenuSize | undefined>(size, undefined);\n const itemHeight = resolvedSize ? getMenuItemHeight(resolvedSize) : undefined;\n const value = React.useMemo(\n () => ({ isInsideMenu: true, size: resolvedSize, itemHeight }),\n [resolvedSize, itemHeight],\n );\n return <MenuContext.Provider value={value}>{children}</MenuContext.Provider>;\n}\n\nexport function useMenuContext() {\n return React.useContext(MenuContext);\n}\n"],
5
- "mappings": "wCAEA,UAAYA,MAAW,QAyBvB,IAAMC,EAAoB,gBAAgC,CAAE,aAAc,EAAM,CAAC,EAYpEC,EAAiD,CAC5D,EAAK,GACL,EAAK,GACL,EAAK,GACL,EAAK,EACP,EAEO,SAASC,EAAkBC,EAAwB,CACxD,OAAOF,EAAqBE,CAAI,CAClC,CAEO,SAASC,EAAa,CAAE,SAAAC,EAAU,KAAAF,CAAK,EAAsB,CAClE,IAAMG,EAAeC,EAAiDJ,EAAM,MAAS,EAC/EK,EAAaF,EAAeJ,EAAkBI,CAAY,EAAI,OAC9DG,EAAc,UAClB,KAAO,CAAE,aAAc,GAAM,KAAMH,EAAc,WAAAE,CAAW,GAC5D,CAACF,EAAcE,CAAU,CAC3B,EACA,OAAO,gBAACR,EAAY,SAAZ,CAAqB,MAAOS,GAAQJ,CAAS,CACvD,CAEO,SAASK,GAAiB,CAC/B,OAAa,aAAWV,CAAW,CACrC",
6
- "names": ["React", "MenuContext", "menuSizeToItemHeight", "getMenuItemHeight", "size", "MenuProvider", "children", "resolvedSize", "useResolvedResponsiveValue", "itemHeight", "value", "useMenuContext"]
7
- }
@@ -1,2 +0,0 @@
1
- import{b as s}from"./chunk-5YLKKQFK.js";import*as r from"react";function l(e){return typeof e=="object"&&e!==null}function p(e,n){let t={},o=null;for(let i of s){if(e!==void 0&&!l(e)){t[i]=e;continue}let a=l(e)?e[i]:void 0;a!==void 0&&(o={value:a}),t[i]=o?o.value:n(i)}return t}function d(e){let n=e.initial;return s.every(t=>e[t]===n)?n:void 0}function h(e,n){let t=d(n);if(t!==void 0)return{[`data-${e}`]:t};let o={};for(let i of s)o[`data-${e}-${i}`]=n[i];return o}function P(e){return typeof e=="object"&&e!==null?JSON.stringify(e):String(e)}var T=p("fixed",()=>"fixed");function g(){return{entries:new Map,listeners:new Set,version:0,peek:null}}function f(e){e.version+=1;for(let n of e.listeners)n()}function c(e,n){return e.listeners.add(n),()=>{e.listeners.delete(n)}}function R(e,n){e.peek!==n&&(e.peek=n,f(e))}var S=r.createContext(null);function y(e){let n=r.useContext(S);if(!n)throw new Error(`${e} must be used within <Shell.Root>`);return n}function I(e,n){let t=r.useCallback(i=>c(e,i),[e]),o=r.useCallback(()=>e.entries.get(n),[e,n]);return r.useSyncExternalStore(t,o,()=>{})}function k(e,n){let t=r.useCallback(o=>c(e,o),[e]);return r.useSyncExternalStore(t,()=>e.peek===n,()=>!1)}var b=r.createContext(null);function m(e,n){let t=r.useContext(b);if(!t)throw new Error("Shell panes must be used within <Shell.Root>");let{registerInset:o,unregisterInset:i}=t;r.useLayoutEffect(()=>{if(n)return o(e),()=>i(e)},[e,n,o,i])}var u=new Set;function v(e){}export{p as a,d as b,h as c,P as d,T as e,g as f,f as g,c as h,R as i,S as j,y as k,I as l,k as m,b as n,m as o,v as p};
2
- //# sourceMappingURL=chunk-3PTKPDSA.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/_internal/shell-store.tsx"],
4
- "sourcesContent": ["'use client';\n\n/**\n * The Shell's state model (0.8.0), ported from kookie-ui-v2's Shell.\n *\n * - State lives on the pane. Each pane holds `auto | open | closed`.\n * `auto` means untouched: the stylesheet decides what\n * it shows at each breakpoint, so first paint is right with no script, the\n * server and the client render the same markup, and no open-state callback\n * can fire on mount or on a resize.\n * - The one thing that crosses the Shell is a registry keyed by pane name.\n * Each pane registers what it is and how to drive it; a Trigger looks its\n * pane up, and the Root reads the set of live overlays. Nothing scans\n * children and nothing checks `displayName`.\n * - The responsive props are resolved into a table with one value per\n * breakpoint, from the props alone, with no window. The table is written to\n * the DOM as data attributes for the stylesheet, and read again in JS by the\n * mirror that sets `aria-expanded`. One table, two readers, so they agree by\n * construction.\n */\nimport * as React from 'react';\nimport { SHELL_BREAKPOINTS } from '../shell.types.js';\nimport type { Breakpoint, PaneName, PresentationValue } from '../shell.types.js';\n\n/* \u2500\u2500 Breakpoint tables \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\nexport type Table<T> = Record<Breakpoint, T>;\n\n/** What a pane shows: open or closed. */\nexport type PaneValue = 'open' | 'closed';\n\ntype ResponsiveInput<T> = T | Partial<Record<Breakpoint, T>> | undefined;\n\nfunction isMap<T>(value: ResponsiveInput<T>): value is Partial<Record<Breakpoint, T>> {\n return typeof value === 'object' && value !== null;\n}\n\n/**\n * A responsive value at every breakpoint. A breakpoint takes the largest key\n * at or below it, the same fallback `useResponsiveValue` used; a breakpoint\n * below every key takes `fallback`.\n */\nexport function tableOf<T>(value: ResponsiveInput<T>, fallback: (bp: Breakpoint) => T): Table<T> {\n const table = {} as Table<T>;\n let carried: { value: T } | null = null;\n for (const bp of SHELL_BREAKPOINTS) {\n if (value !== undefined && !isMap(value)) {\n table[bp] = value;\n continue;\n }\n const entry = isMap(value) ? value[bp] : undefined;\n if (entry !== undefined) carried = { value: entry };\n table[bp] = carried ? carried.value : fallback(bp);\n }\n return table;\n}\n\n/** The table's one value, when it has only one. */\nexport function constantOf<T>(table: Table<T>): T | undefined {\n const first = table.initial;\n return SHELL_BREAKPOINTS.every((bp) => table[bp] === first) ? first : undefined;\n}\n\n/**\n * The table as data attributes: `data-<name>` when it holds one value, one\n * `data-<name>-<bp>` per breakpoint when it holds several. The stylesheet has\n * a rule for each spelling.\n */\nexport function tableAttributes(name: string, table: Table<string>): Record<string, string> {\n const constant = constantOf(table);\n if (constant !== undefined) return { [`data-${name}`]: constant };\n const attributes: Record<string, string> = {};\n for (const bp of SHELL_BREAKPOINTS) attributes[`data-${name}-${bp}`] = table[bp];\n return attributes;\n}\n\n/**\n * A responsive prop object is usually an inline literal, a new identity every\n * render. Keying memoisation on its contents keeps the tables, and so the\n * registry entries, stable across renders that change nothing.\n */\nexport function useStableKey(value: unknown): string {\n return typeof value === 'object' && value !== null ? JSON.stringify(value) : String(value);\n}\n\nexport const FIXED_TABLE: Table<PresentationValue> = tableOf<PresentationValue>('fixed', () => 'fixed');\n\n/* \u2500\u2500 The registry \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\nexport type OpenChangeReason = 'toggle' | 'dismiss';\n\nexport type PaneEntry = {\n name: PaneName;\n id: string;\n el: HTMLElement | null;\n /** What the pane shows now; `undefined` while an untouched pane cannot know (before the breakpoint is known). */\n value: PaneValue | undefined;\n /** How the pane is presented now, when known. */\n presentation: PresentationValue | undefined;\n /** The pane's own presentation at every breakpoint. A Panel with none of its own follows the Rail's. */\n presentationTable: Table<PresentationValue>;\n /** Open and presented as an overlay: what the scrim and Escape close, and what containment exempts. */\n overlayLive: boolean;\n /** The pane's designed open width, for panes that sit beside it when floating. */\n size: number;\n setValue: (value: PaneValue, reason: OpenChangeReason) => void;\n toggle: (reason: OpenChangeReason) => void;\n};\n\nexport type ShellStore = {\n entries: Map<PaneName, PaneEntry>;\n listeners: Set<() => void>;\n /**\n * What a subscriber reads. useSyncExternalStore needs a value that is stable\n * between notifications, and a number is; the Map, or anything derived from\n * it, would be a new identity on every read.\n */\n version: number;\n /** The pane a hovered Trigger is previewing, if any. Layout only. */\n peek: PaneName | null;\n};\n\nexport function createShellStore(): ShellStore {\n return { entries: new Map(), listeners: new Set(), version: 0, peek: null };\n}\n\nexport function notifyShellStore(store: ShellStore) {\n store.version += 1;\n for (const listener of store.listeners) listener();\n}\n\nexport function subscribeShellStore(store: ShellStore, listener: () => void) {\n store.listeners.add(listener);\n return () => {\n store.listeners.delete(listener);\n };\n}\n\nexport function setShellPeek(store: ShellStore, peek: PaneName | null) {\n if (store.peek === peek) return;\n store.peek = peek;\n notifyShellStore(store);\n}\n\nexport const ShellStoreContext = React.createContext<ShellStore | null>(null);\n\nexport function useShellStore(part: string): ShellStore {\n const store = React.useContext(ShellStoreContext);\n if (!store) throw new Error(`${part} must be used within <Shell.Root>`);\n return store;\n}\n\n/** One pane's registry entry. Re-renders only when that entry is replaced. */\nexport function usePaneEntry(store: ShellStore, name: PaneName): PaneEntry | undefined {\n const subscribe = React.useCallback((listener: () => void) => subscribeShellStore(store, listener), [store]);\n const getSnapshot = React.useCallback(() => store.entries.get(name), [store, name]);\n return React.useSyncExternalStore(subscribe, getSnapshot, () => undefined);\n}\n\n/**\n * Whether this pane is the one being previewed. A boolean per pane rather than\n * the peek target itself, so hovering one Trigger re-renders one pane, not all.\n */\nexport function usePeeking(store: ShellStore, name: PaneName): boolean {\n const subscribe = React.useCallback((listener: () => void) => subscribeShellStore(store, listener), [store]);\n return React.useSyncExternalStore(\n subscribe,\n () => store.peek === name,\n () => false,\n );\n}\n\n/* \u2500\u2500 Inset \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\nexport type InsetPaneId = 'rail' | 'panel' | 'sidebar' | 'content' | 'inspector' | 'bottom';\n\nexport const ShellInsetContext = React.createContext<{\n registerInset: (id: InsetPaneId) => void;\n unregisterInset: (id: InsetPaneId) => void;\n} | null>(null);\n\n/** Registers a pane's `inset` with the Root, which paints the backdrop while any pane is inset. */\nexport function useInsetRegistration(id: InsetPaneId, inset: boolean | undefined) {\n const ctx = React.useContext(ShellInsetContext);\n if (!ctx) throw new Error('Shell panes must be used within <Shell.Root>');\n const { registerInset, unregisterInset } = ctx;\n React.useLayoutEffect(() => {\n if (!inset) return;\n registerInset(id);\n return () => unregisterInset(id);\n }, [id, inset, registerInset, unregisterInset]);\n}\n\n/* \u2500\u2500 Development warnings \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\nconst warned = new Set<string>();\n\n/** A deprecation warning, once per message per page load. Development only. */\nexport function warnOnce(message: string) {\n if (process.env.NODE_ENV === 'production') return;\n if (warned.has(message)) return;\n warned.add(message);\n console.warn(`[kookie-ui] ${message}`);\n}\n"],
5
- "mappings": "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",
6
- "names": ["React", "isMap", "value", "tableOf", "fallback", "table", "carried", "bp", "SHELL_BREAKPOINTS", "entry", "constantOf", "first", "tableAttributes", "name", "constant", "attributes", "useStableKey", "FIXED_TABLE", "createShellStore", "notifyShellStore", "store", "listener", "subscribeShellStore", "setShellPeek", "peek", "ShellStoreContext", "useShellStore", "part", "usePaneEntry", "subscribe", "getSnapshot", "usePeeking", "ShellInsetContext", "useInsetRegistration", "id", "inset", "ctx", "registerInset", "unregisterInset", "warned", "warnOnce", "message"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/separator.props.tsx"],
4
- "sourcesContent": ["import { colorPropDef } from '../props/color.prop.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst orientationValues = ['horizontal', 'vertical'] as const;\n\nconst separatorPropDefs = {\n orientation: {\n type: 'enum',\n className: 'kui-r-orientation',\n values: orientationValues,\n default: 'horizontal',\n responsive: true,\n },\n color: { ...colorPropDef.color, default: 'gray' },\n decorative: { type: 'boolean', default: true },\n light: { type: 'boolean', className: 'kui-light', default: false },\n} satisfies {\n orientation: PropDef<(typeof orientationValues)[number]>;\n color: typeof colorPropDef.color;\n decorative: PropDef<boolean>;\n light: PropDef<boolean>;\n};\n\nexport { separatorPropDefs };\n"],
5
- "mappings": "wCAIA,IAAMA,EAAoB,CAAC,aAAc,UAAU,EAE7CC,EAAoB,CACxB,YAAa,CACX,KAAM,OACN,UAAW,oBACX,OAAQD,EACR,QAAS,aACT,WAAY,EACd,EACA,MAAO,CAAE,GAAGE,EAAa,MAAO,QAAS,MAAO,EAChD,WAAY,CAAE,KAAM,UAAW,QAAS,EAAK,EAC7C,MAAO,CAAE,KAAM,UAAW,UAAW,YAAa,QAAS,EAAM,CACnE",
6
- "names": ["orientationValues", "separatorPropDefs", "colorPropDef"]
7
- }
@@ -1,2 +0,0 @@
1
- import*as o from"react";function f(l){let[e,a]=o.useState(null);return o.useEffect(()=>{if(!l||!e)return;let t=0,c=()=>{t=0;let n=Math.max(0,e.scrollTop),u=Math.max(0,e.scrollHeight-e.clientHeight-e.scrollTop);e.style.setProperty("--scroll-overflow-start",`${n}px`),e.style.setProperty("--scroll-overflow-end",`${u}px`)},r=()=>{t||(t=requestAnimationFrame(c))};c(),e.addEventListener("scroll",r,{passive:!0});let s=typeof ResizeObserver>"u"?null:new ResizeObserver(r);s?.observe(e);for(let n of Array.from(e.children))s?.observe(n);let i=typeof MutationObserver>"u"?null:new MutationObserver(r);return i?.observe(e,{childList:!0}),()=>{t&&cancelAnimationFrame(t),e.removeEventListener("scroll",r),s?.disconnect(),i?.disconnect(),e.style.removeProperty("--scroll-overflow-start"),e.style.removeProperty("--scroll-overflow-end")}},[l,e]),a}export{f as a};
2
- //# sourceMappingURL=chunk-5BWLY27A.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/hooks/use-scroll-edges.ts"],
4
- "sourcesContent": ["import * as React from 'react';\n\n/**\n * Publishes how much content is hidden past each block edge of a scroller, as\n * `--scroll-overflow-start` and `--scroll-overflow-end` (px) on the element.\n * The scroll fade reads them, so an edge fades only while content is hidden\n * there, and the fade ramps in over the first pixels of scrolling.\n *\n * Writes happen at most once per frame, on scroll and when the element or its\n * content resizes. Nothing re-renders.\n */\nexport function useScrollEdges<T extends HTMLElement>(enabled: boolean) {\n const [element, setElement] = React.useState<T | null>(null);\n\n React.useEffect(() => {\n if (!enabled || !element) return;\n let frame = 0;\n const write = () => {\n frame = 0;\n const start = Math.max(0, element.scrollTop);\n const end = Math.max(0, element.scrollHeight - element.clientHeight - element.scrollTop);\n element.style.setProperty('--scroll-overflow-start', `${start}px`);\n element.style.setProperty('--scroll-overflow-end', `${end}px`);\n };\n const schedule = () => {\n if (!frame) frame = requestAnimationFrame(write);\n };\n write();\n element.addEventListener('scroll', schedule, { passive: true });\n const observer = typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(schedule);\n observer?.observe(element);\n for (const child of Array.from(element.children)) observer?.observe(child);\n const mutations = typeof MutationObserver === 'undefined' ? null : new MutationObserver(schedule);\n mutations?.observe(element, { childList: true });\n return () => {\n if (frame) cancelAnimationFrame(frame);\n element.removeEventListener('scroll', schedule);\n observer?.disconnect();\n mutations?.disconnect();\n element.style.removeProperty('--scroll-overflow-start');\n element.style.removeProperty('--scroll-overflow-end');\n };\n }, [enabled, element]);\n\n return setElement;\n}\n"],
5
- "mappings": "AAAA,UAAYA,MAAW,QAWhB,SAASC,EAAsCC,EAAkB,CACtE,GAAM,CAACC,EAASC,CAAU,EAAU,WAAmB,IAAI,EAE3D,OAAM,YAAU,IAAM,CACpB,GAAI,CAACF,GAAW,CAACC,EAAS,OAC1B,IAAIE,EAAQ,EACNC,EAAQ,IAAM,CAClBD,EAAQ,EACR,IAAME,EAAQ,KAAK,IAAI,EAAGJ,EAAQ,SAAS,EACrCK,EAAM,KAAK,IAAI,EAAGL,EAAQ,aAAeA,EAAQ,aAAeA,EAAQ,SAAS,EACvFA,EAAQ,MAAM,YAAY,0BAA2B,GAAGI,CAAK,IAAI,EACjEJ,EAAQ,MAAM,YAAY,wBAAyB,GAAGK,CAAG,IAAI,CAC/D,EACMC,EAAW,IAAM,CAChBJ,IAAOA,EAAQ,sBAAsBC,CAAK,EACjD,EACAA,EAAM,EACNH,EAAQ,iBAAiB,SAAUM,EAAU,CAAE,QAAS,EAAK,CAAC,EAC9D,IAAMC,EAAW,OAAO,eAAmB,IAAc,KAAO,IAAI,eAAeD,CAAQ,EAC3FC,GAAU,QAAQP,CAAO,EACzB,QAAWQ,KAAS,MAAM,KAAKR,EAAQ,QAAQ,EAAGO,GAAU,QAAQC,CAAK,EACzE,IAAMC,EAAY,OAAO,iBAAqB,IAAc,KAAO,IAAI,iBAAiBH,CAAQ,EAChG,OAAAG,GAAW,QAAQT,EAAS,CAAE,UAAW,EAAK,CAAC,EACxC,IAAM,CACPE,GAAO,qBAAqBA,CAAK,EACrCF,EAAQ,oBAAoB,SAAUM,CAAQ,EAC9CC,GAAU,WAAW,EACrBE,GAAW,WAAW,EACtBT,EAAQ,MAAM,eAAe,yBAAyB,EACtDA,EAAQ,MAAM,eAAe,uBAAuB,CACtD,CACF,EAAG,CAACD,EAASC,CAAO,CAAC,EAEdC,CACT",
6
- "names": ["React", "useScrollEdges", "enabled", "element", "setElement", "frame", "write", "start", "end", "schedule", "observer", "child", "mutations"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a as C,b,c as O,d as $,g as B,k as _,m as q}from"./chunk-3PTKPDSA.js";import{a as S,b as U}from"./chunk-TBZO22XK.js";import*as t from"react";var M=e=>typeof e=="object"&&e!==null;function ee(e){for(let a of["initial","xs","sm","md","lg","xl"]){let l=e[a];if(l!==void 0)return l}return"closed"}function oe(e){let{name:a,label:l,propNames:o,presentationTable:u,builtIn:y}=e,d=_(`Shell.${l}`),F=t.useId(),v=e.id??`shell-${a}${F}`,c=e.controlled!==void 0,E=M(e.controlled);E&&(`${l}${o.controlled}${o.default}`,void 0);let p=E?e.controlled:void 0,L=p??(M(e.defaultValue)?e.defaultValue:void 0),G=$(L),[J,Q]=t.useState(()=>typeof e.defaultValue=="string"?e.defaultValue:"auto"),P=t.useMemo(()=>p?C(p,()=>ee(p)):C(L,n=>y(u[n])),[G,E,u,y]),r=J;c&&(r=p?"auto":e.controlled);let W=b(u)===void 0||r==="auto"&&b(P)===void 0,{breakpoint:I,ready:z}=U(W),H=n=>{let f=b(n);return f!==void 0?f:z?n[I]:void 0},i=r==="auto"?H(P):r,m=H(u),k=m==="overlay",s=i===void 0?void 0:i!=="closed",x=s===!0&&k,j=e.defaultValue,V=t.useRef({state:r,value:i,autoTable:P,defaultValue:j,controlled:c,onChange:e.onChange,toggleNext:e.toggleNext});t.useLayoutEffect(()=>{V.current={state:r,value:i,autoTable:P,defaultValue:j,controlled:c,onChange:e.onChange,toggleNext:e.toggleNext}});let h=t.useCallback(()=>{let n=V.current;return n.value!==void 0?n.value:n.state==="auto"?n.autoTable[S()]:void 0},[]),N=t.useCallback(()=>{let n=V.current;return typeof n.defaultValue=="string"?n.defaultValue:M(n.defaultValue)?n.autoTable[S()]:void 0},[]),g=t.useCallback((n,f)=>{let R=V.current;h()!==n&&(R.onChange?.(n,f),R.controlled||Q(n))},[h]),T=t.useCallback(n=>{let f=V.current,R=h()??"closed",Z=f.toggleNext?f.toggleNext(R,N()):R==="closed"?"open":"closed";g(Z,n)},[g,h,N]),D=t.useRef(null),X=t.useCallback(n=>{D.current=n},[]);t.useLayoutEffect(()=>{let n={name:a,id:v,el:D.current,value:i,presentation:m,presentationTable:u,overlayLive:x,size:e.size,setValue:g,toggle:T};return d.entries.set(a,n),B(d),()=>{d.entries.get(a)===n&&(d.entries.delete(a),B(d))}},[d,a,v,i,m,u,x,e.size,g,T]);let w=t.useRef({onExpand:e.onExpand,onCollapse:e.onCollapse});t.useLayoutEffect(()=>{w.current={onExpand:e.onExpand,onCollapse:e.onCollapse}});let A=t.useRef({state:r,shown:s});t.useEffect(()=>{let n=A.current;n.state!==r&&n.shown!==void 0&&s!==void 0&&n.shown!==s&&(s?w.current.onExpand?.():w.current.onCollapse?.()),A.current={state:r,shown:s}},[r,s]),t.useLayoutEffect(()=>{},[]);let K=t.useRef(c);t.useEffect(()=>{},[c,l,o.controlled]);let Y=q(d,a)&&s===!1&&!k;return{store:d,id:v,state:r,value:i,shown:s,presentation:m,overlaying:k,overlayLive:x,peeking:Y,ready:z,breakpoint:I,autoTable:P,setValue:g,toggle:T,defaultHereNow:N,setElement:X}}function le(e,a){let{state:l,value:o,presentation:u,shown:y}=e;return{...a,"data-state":l,...l==="auto"?O("auto",e.autoTable):{},"data-presentation":u,"data-mode":o===void 0?void 0:o==="closed"?"collapsed":"expanded","data-open":u==="stacked"&&y?"":void 0,"data-peek":e.peeking?"":void 0}}function ue(e,a){let l=$(e),o=t.useMemo(()=>C(e,()=>a),[l,a]),u=t.useMemo(()=>b(o)===void 0?O("presentation",o):{},[o]);return{table:o,attributes:u}}export{oe as a,le as b,ue as c};
2
- //# sourceMappingURL=chunk-5ROQAZ7J.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/_internal/shell-pane.tsx"],
4
- "sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport { readBreakpoint, useBreakpoint } from '../../hooks/use-breakpoint.js';\nimport type { Breakpoint, PaneName, PresentationValue } from '../shell.types.js';\nimport {\n constantOf,\n notifyShellStore,\n tableAttributes,\n tableOf,\n usePeeking,\n useShellStore,\n useStableKey,\n warnOnce,\n type OpenChangeReason,\n type PaneEntry,\n type PaneValue,\n type Table,\n} from './shell-store.js';\n\ntype ResponsiveValue = PaneValue | Partial<Record<Breakpoint, PaneValue>>;\n\nexport type UsePaneOptions = {\n name: PaneName;\n /** The component's display name, for warnings: `Inspector`, `Sidebar`, \u2026 */\n label: string;\n /** The prop names a warning should use: `open`/`defaultOpen`, or `state`/`defaultState`. */\n propNames: { controlled: string; default: string };\n id: string | undefined;\n /** The controlled value. A responsive object is deprecated: it is resolved against the current breakpoint. */\n controlled: ResponsiveValue | undefined;\n /**\n * The uncontrolled default. A single value fixes where the pane starts. A\n * responsive object leaves the pane untouched (`auto`), with that object as\n * what it shows at each breakpoint.\n */\n defaultValue: ResponsiveValue | undefined;\n /** The pane's presentation at every breakpoint. Pass a memoised table. */\n presentationTable: Table<PresentationValue>;\n /** What an untouched pane shows where no default says otherwise. Pass a module-level function. */\n builtIn: (presentation: PresentationValue) => PaneValue;\n /** Reports a change a user made. Never called on mount or on a resize. */\n onChange: ((value: PaneValue, reason: OpenChangeReason) => void) | undefined;\n /** The value a toggle moves to. Defaults to open and closed in turn. */\n toggleNext?: (current: PaneValue, defaultHere: PaneValue | undefined) => PaneValue;\n onExpand: (() => void) | undefined;\n onCollapse: (() => void) | undefined;\n /** The pane's designed open width, published for the panes beside it. */\n size: number;\n};\n\nexport type PaneController = ReturnType<typeof usePane>;\n\nconst isMap = (value: ResponsiveValue | undefined): value is Partial<Record<Breakpoint, PaneValue>> => typeof value === 'object' && value !== null;\n\n/** The first value a responsive object states, smallest breakpoint first. */\nfunction firstStated(map: Partial<Record<Breakpoint, PaneValue>>): PaneValue {\n for (const bp of ['initial', 'xs', 'sm', 'md', 'lg', 'xl'] as const) {\n const value = map[bp];\n if (value !== undefined) return value;\n }\n return 'closed';\n}\n\n/** Everything the togglable panes share: their state, their registry entry and their callbacks. */\nexport function usePane(options: UsePaneOptions) {\n const { name, label, propNames, presentationTable, builtIn } = options;\n const store = useShellStore(`Shell.${label}`);\n const generatedId = React.useId();\n const id = options.id ?? `shell-${name}${generatedId}`;\n\n const controlled = options.controlled !== undefined;\n const controlledIsMap = isMap(options.controlled);\n if (controlledIsMap) {\n warnOnce(\n `Shell.${label}: a responsive \\`${propNames.controlled}\\` is deprecated and is removed in 1.0. ` +\n `Pass a boolean and decide it from your own state, or use \\`${propNames.default}\\` with a responsive object.`,\n );\n }\n\n // A responsive controlled value is resolved the way a responsive default\n // is: it becomes the table an untouched pane follows, so the stylesheet\n // answers it at each breakpoint (right in the server HTML, with no\n // callback on a crossing) and the app's prop is still the only writer.\n const controlledMap = controlledIsMap ? (options.controlled as Partial<Record<Breakpoint, PaneValue>>) : undefined;\n const autoSource = controlledMap ?? (isMap(options.defaultValue) ? options.defaultValue : undefined);\n const autoKey = useStableKey(autoSource);\n const [inner, setInner] = React.useState<'auto' | PaneValue>(() => (typeof options.defaultValue === 'string' ? options.defaultValue : 'auto'));\n\n // What an untouched pane shows at each breakpoint: a responsive default\n // where it states one, the pane's own default where it does not.\n const autoTable = React.useMemo(\n () => (controlledMap ? tableOf<PaneValue>(controlledMap, () => firstStated(controlledMap)) : tableOf<PaneValue>(autoSource, (bp) => builtIn(presentationTable[bp]))),\n // `autoKey` stands for the responsive object, which is usually a new literal each render.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [autoKey, controlledIsMap, presentationTable, builtIn],\n );\n\n let state: 'auto' | PaneValue = inner;\n if (controlled) state = controlledMap ? 'auto' : (options.controlled as PaneValue);\n\n // Only a pane whose answer depends on the window subscribes to it, so a\n // pane with one presentation and one default never re-renders on a resize.\n const needsBreakpoint = constantOf(presentationTable) === undefined || (state === 'auto' && constantOf(autoTable) === undefined);\n const { breakpoint, ready } = useBreakpoint(needsBreakpoint);\n\n /** A table's value now: known without the window when it holds one value, else once the breakpoint is known. */\n const now = <T,>(table: Table<T>): T | undefined => {\n const constant = constantOf(table);\n if (constant !== undefined) return constant;\n return ready ? table[breakpoint] : undefined;\n };\n\n const value: PaneValue | undefined = state === 'auto' ? now(autoTable) : state;\n const presentation = now(presentationTable);\n const overlaying = presentation === 'overlay';\n const shown = value === undefined ? undefined : value !== 'closed';\n const overlayLive = shown === true && overlaying;\n\n // Stable actions over the latest values, so the registry entry changes only\n // when a fact it carries changes.\n const defaultValue = options.defaultValue;\n const latest = React.useRef({ state, value, autoTable, defaultValue, controlled, onChange: options.onChange, toggleNext: options.toggleNext });\n React.useLayoutEffect(() => {\n latest.current = { state, value, autoTable, defaultValue, controlled, onChange: options.onChange, toggleNext: options.toggleNext };\n });\n\n /**\n * What the pane shows, and its default, at the window's breakpoint right\n * now. Asked at the moment of an action rather than taken from the last\n * render: a touched pane no longer follows the window, and a click can land\n * before the mirror has resolved after hydration.\n */\n const valueNow = React.useCallback((): PaneValue | undefined => {\n const current = latest.current;\n if (current.value !== undefined) return current.value;\n return current.state === 'auto' ? current.autoTable[readBreakpoint()] : undefined;\n }, []);\n const defaultHereNow = React.useCallback((): PaneValue | undefined => {\n const current = latest.current;\n if (typeof current.defaultValue === 'string') return current.defaultValue;\n return isMap(current.defaultValue) ? current.autoTable[readBreakpoint()] : undefined;\n }, []);\n\n const setValue = React.useCallback(\n (next: PaneValue, reason: OpenChangeReason) => {\n const current = latest.current;\n if (valueNow() === next) return;\n current.onChange?.(next, reason);\n if (!current.controlled) setInner(next);\n },\n [valueNow],\n );\n\n const toggle = React.useCallback(\n (reason: OpenChangeReason) => {\n const current = latest.current;\n const from = valueNow() ?? 'closed';\n const next = current.toggleNext ? current.toggleNext(from, defaultHereNow()) : from === 'closed' ? 'open' : 'closed';\n setValue(next, reason);\n },\n [setValue, valueNow, defaultHereNow],\n );\n\n // The pane's element, for the Root's containment and focus.\n const elementRef = React.useRef<HTMLElement | null>(null);\n const setElement = React.useCallback((node: HTMLElement | null) => {\n elementRef.current = node;\n }, []);\n\n // Registration. A layout effect so a Trigger's aria attributes and the\n // Root's containment are right before the browser paints.\n React.useLayoutEffect(() => {\n const entry: PaneEntry = {\n name,\n id,\n el: elementRef.current,\n value,\n presentation,\n presentationTable,\n overlayLive,\n size: options.size,\n setValue,\n toggle,\n };\n store.entries.set(name, entry);\n notifyShellStore(store);\n return () => {\n if (store.entries.get(name) === entry) {\n store.entries.delete(name);\n notifyShellStore(store);\n }\n };\n }, [store, name, id, value, presentation, presentationTable, overlayLive, options.size, setValue, toggle]);\n\n // onExpand/onCollapse fire when the pane's state changes and that changes\n // whether it is shown: a user's toggle, or a controlled prop. Never on\n // mount, and never because the window crossed a breakpoint.\n const callbacks = React.useRef({ onExpand: options.onExpand, onCollapse: options.onCollapse });\n React.useLayoutEffect(() => {\n callbacks.current = { onExpand: options.onExpand, onCollapse: options.onCollapse };\n });\n const previous = React.useRef({ state, shown });\n React.useEffect(() => {\n const before = previous.current;\n if (before.state !== state && before.shown !== undefined && shown !== undefined && before.shown !== shown) {\n if (shown) callbacks.current.onExpand?.();\n else callbacks.current.onCollapse?.();\n }\n previous.current = { state, shown };\n }, [state, shown]);\n\n // Development guards. Once per mount, not once per render.\n React.useLayoutEffect(() => {\n if (process.env.NODE_ENV === 'production') return;\n if (options.controlled !== undefined && options.defaultValue !== undefined) {\n console.error(`Shell.${label}: Do not pass both \\`${propNames.controlled}\\` and \\`${propNames.default}\\`. Choose one.`);\n }\n // Mount only: this is the once-per-mount guard.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const wasControlled = React.useRef(controlled);\n React.useEffect(() => {\n if (process.env.NODE_ENV === 'production') return;\n if (wasControlled.current !== controlled) {\n console.warn(`Shell.${label}: Switching between controlled and uncontrolled \\`${propNames.controlled}\\` is not supported.`);\n wasControlled.current = controlled;\n }\n }, [controlled, label, propNames.controlled]);\n\n const peeking = usePeeking(store, name) && shown === false && !overlaying;\n\n return {\n store,\n id,\n state,\n value,\n shown,\n presentation,\n overlaying,\n overlayLive,\n peeking,\n ready,\n breakpoint,\n autoTable,\n setValue,\n toggle,\n defaultHereNow,\n setElement,\n };\n}\n\n/** The data attributes every togglable pane renders. */\nexport function paneAttributes(pane: PaneController, presentationAttributes: Record<string, string>) {\n const { state, value, presentation, shown } = pane;\n return {\n ...presentationAttributes,\n 'data-state': state,\n ...(state === 'auto' ? tableAttributes('auto', pane.autoTable) : {}),\n 'data-presentation': presentation,\n 'data-mode': value === undefined ? undefined : value === 'closed' ? 'collapsed' : 'expanded',\n // Kept for stylesheets written against 0.7: set while a stacked pane is open.\n 'data-open': presentation === 'stacked' && shown ? '' : undefined,\n 'data-peek': pane.peeking ? '' : undefined,\n } as const;\n}\n\n/** A pane's own presentation, as a table and as the attributes the stylesheet reads. */\nexport function usePresentationTable(presentation: Parameters<typeof tableOf<PresentationValue>>[0], fallback: PresentationValue) {\n const key = useStableKey(presentation);\n const table = React.useMemo(\n () => tableOf<PresentationValue>(presentation, () => fallback),\n // `key` stands for `presentation`, which is usually a new literal each render.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [key, fallback],\n );\n // One value is the plain `data-presentation` the pane renders anyway; several\n // are written per breakpoint, so the stylesheet can place the pane before\n // any script runs.\n const attributes = React.useMemo(() => (constantOf(table) === undefined ? tableAttributes('presentation', table) : ({} as Record<string, string>)), [table]);\n return { table, attributes };\n}\n"],
5
- "mappings": "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",
6
- "names": ["React", "isMap", "value", "firstStated", "map", "bp", "usePane", "options", "name", "label", "propNames", "presentationTable", "builtIn", "store", "useShellStore", "generatedId", "id", "controlled", "controlledIsMap", "controlledMap", "autoSource", "autoKey", "useStableKey", "inner", "setInner", "autoTable", "tableOf", "state", "needsBreakpoint", "constantOf", "breakpoint", "ready", "useBreakpoint", "now", "table", "constant", "presentation", "overlaying", "shown", "overlayLive", "defaultValue", "latest", "valueNow", "current", "readBreakpoint", "defaultHereNow", "setValue", "next", "reason", "toggle", "from", "elementRef", "setElement", "node", "entry", "notifyShellStore", "callbacks", "previous", "before", "wasControlled", "peeking", "usePeeking", "paneAttributes", "pane", "presentationAttributes", "tableAttributes", "usePresentationTable", "fallback", "key", "attributes"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a as e}from"./chunk-IAEAXIBI.js";import{a as p}from"./chunk-7FTUTUMD.js";import{a as s}from"./chunk-YLDV2HKZ.js";import{b as t}from"./chunk-FWB47YCH.js";import{a as o}from"./chunk-ELAW7ZUG.js";import*as r from"react";import f from"classnames";var G=r.forwardRef((i,m)=>{let{className:a,asChild:d,as:n="div",...P}=o(i,e,p,s);return r.createElement(d?t:n,{...P,ref:m,className:f("kui-Grid",a)})});G.displayName="Grid";export{G as a};
2
- //# sourceMappingURL=chunk-63PQNLFJ.js.map
@@ -1,2 +0,0 @@
1
- import{a as s}from"./chunk-CLZW2IDD.js";import{e as p}from"./chunk-3YLYGKFB.js";import{a as l}from"./chunk-ELAW7ZUG.js";import{a as I}from"./chunk-OS3FCYZY.js";var h={};I(h,{Item:()=>g,Root:()=>u});import*as e from"react";import i from"classnames";import{ToggleGroup as d}from"radix-ui";import{useControllableState as y}from"radix-ui/internal";var u=e.forwardRef((t,r)=>{let o=p(t,s.size),{className:n,children:a,radius:f,value:C,defaultValue:P,onValueChange:c,...S}=l(o,s),[R,v]=y({prop:C,onChange:c,defaultProp:P??""});return e.createElement(d.Root,{"data-disabled":o.disabled||void 0,"data-radius":f,ref:r,className:i("kui-SegmentedControlRoot",n),onValueChange:m=>{m&&v(m)},...S,type:"single",value:R,asChild:!1,disabled:!!o.disabled},a,e.createElement("div",{className:"kui-SegmentedControlIndicator"}))});u.displayName="SegmentedControl.Root";var g=e.forwardRef(({children:t,className:r,iconOnly:o,...n},a)=>e.createElement(d.Item,{ref:a,className:i("kui-reset","kui-SegmentedControlItem",r),"data-icon-only":o||void 0,...n,disabled:!1,asChild:!1},e.createElement("span",{className:"kui-SegmentedControlItemSeparator"}),e.createElement("span",{className:"kui-SegmentedControlItemLabel"},e.createElement("span",{className:"kui-SegmentedControlItemLabelActive"},t),e.createElement("span",{className:"kui-SegmentedControlItemLabelInactive","aria-hidden":!0},t))));g.displayName="SegmentedControl.Item";export{u as a,g as b,h as c};
2
- //# sourceMappingURL=chunk-6CK7UTNH.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/segmented-control.tsx"],
4
- "sourcesContent": ["'use client';\n\nimport { warnDeprecated } from '../helpers/warn-deprecated.js';\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ToggleGroup as ToggleGroupPrimitive } from 'radix-ui';\nimport { useControllableState } from 'radix-ui/internal';\n\nimport { segmentedControlRootPropDefs } from './segmented-control.props.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { useThemeSizeProps } from '../helpers/theme-size.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\n\ntype SegmentedControlRootOwnProps = GetPropDefTypes<typeof segmentedControlRootPropDefs>;\n\ninterface SegmentedControlRootProps\n extends ComponentPropsWithout<'div', RemovedProps | 'dir'>,\n SegmentedControlRootOwnProps {\n value?: string;\n defaultValue?: string;\n onValueChange?(value: string): void;\n}\n\nconst SegmentedControlRoot = React.forwardRef<HTMLDivElement, SegmentedControlRootProps>(\n (ownProps, forwardedRef) => {\n const props = useThemeSizeProps(ownProps, segmentedControlRootPropDefs.size);\n const {\n className,\n children,\n radius,\n value: valueProp,\n defaultValue: defaultValueProp,\n onValueChange: onValueChangeProp,\n ...rootProps\n } = extractProps(props, segmentedControlRootPropDefs);\n\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChangeProp,\n defaultProp: defaultValueProp ?? '',\n });\n\n return (\n <ToggleGroupPrimitive.Root\n data-disabled={props.disabled || undefined}\n data-radius={radius}\n ref={forwardedRef}\n className={classNames('kui-SegmentedControlRoot', className)}\n onValueChange={(value) => {\n if (value) {\n setValue(value);\n }\n }}\n {...rootProps}\n type=\"single\"\n value={value}\n asChild={false}\n disabled={!!props.disabled}\n >\n {children}\n <div className=\"kui-SegmentedControlIndicator\" />\n </ToggleGroupPrimitive.Root>\n );\n },\n);\n\nSegmentedControlRoot.displayName = 'SegmentedControl.Root';\n\ninterface SegmentedControlItemOwnProps {\n value: string;\n /** When true, applies fixed square width for icon-only segments */\n iconOnly?: boolean;\n}\n\ninterface SegmentedControlItemProps\n extends ComponentPropsWithout<\n typeof ToggleGroupPrimitive.Item,\n RemovedProps | 'disabled' | 'type' | 'value'\n >,\n SegmentedControlItemOwnProps {}\n\nconst SegmentedControlItem = React.forwardRef<HTMLButtonElement, SegmentedControlItemProps>(\n ({ children, className, iconOnly, ...props }, forwardedRef) => (\n <ToggleGroupPrimitive.Item\n ref={forwardedRef}\n className={classNames('kui-reset', 'kui-SegmentedControlItem', className)}\n data-icon-only={iconOnly || undefined}\n {...props}\n disabled={false}\n asChild={false}\n >\n <span className=\"kui-SegmentedControlItemSeparator\" />\n <span className=\"kui-SegmentedControlItemLabel\">\n <span className=\"kui-SegmentedControlItemLabelActive\">{children}</span>\n <span className=\"kui-SegmentedControlItemLabelInactive\" aria-hidden>\n {children}\n </span>\n </span>\n </ToggleGroupPrimitive.Item>\n ),\n);\n\nSegmentedControlItem.displayName = 'SegmentedControl.Item';\n\nexport { SegmentedControlRoot as Root, SegmentedControlItem as Item };\nexport type { SegmentedControlRootProps as RootProps, SegmentedControlItemProps as ItemProps };\n"],
5
- "mappings": "gKAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,UAAAE,EAAA,SAAAC,IAGA,UAAYC,MAAW,QACvB,OAAOC,MAAgB,aACvB,OAAS,eAAeC,MAA4B,WACpD,OAAS,wBAAAC,MAA4B,oBAmBrC,IAAMC,EAA6B,aACjC,CAACC,EAAUC,IAAiB,CAC1B,IAAMC,EAAQC,EAAkBH,EAAUI,EAA6B,IAAI,EACrE,CACJ,UAAAC,EACA,SAAAC,EACA,OAAAC,EACA,MAAOC,EACP,aAAcC,EACd,cAAeC,EACf,GAAGC,CACL,EAAIC,EAAaV,EAAOE,CAA4B,EAE9C,CAACS,EAAOC,CAAQ,EAAIC,EAAqB,CAC7C,KAAMP,EACN,SAAUE,EACV,YAAaD,GAAoB,EACnC,CAAC,EAED,OACE,gBAACO,EAAqB,KAArB,CACC,gBAAed,EAAM,UAAY,OACjC,cAAaK,EACb,IAAKN,EACL,UAAWgB,EAAW,2BAA4BZ,CAAS,EAC3D,cAAgBQ,GAAU,CACpBA,GACFC,EAASD,CAAK,CAElB,EACC,GAAGF,EACJ,KAAK,SACL,MAAOE,EACP,QAAS,GACT,SAAU,CAAC,CAACX,EAAM,UAEjBI,EACD,gBAAC,OAAI,UAAU,gCAAgC,CACjD,CAEJ,CACF,EAEAP,EAAqB,YAAc,wBAenC,IAAMmB,EAA6B,aACjC,CAAC,CAAE,SAAAZ,EAAU,UAAAD,EAAW,SAAAc,EAAU,GAAGjB,CAAM,EAAGD,IAC5C,gBAACe,EAAqB,KAArB,CACC,IAAKf,EACL,UAAWgB,EAAW,YAAa,2BAA4BZ,CAAS,EACxE,iBAAgBc,GAAY,OAC3B,GAAGjB,EACJ,SAAU,GACV,QAAS,IAET,gBAAC,QAAK,UAAU,oCAAoC,EACpD,gBAAC,QAAK,UAAU,iCACd,gBAAC,QAAK,UAAU,uCAAuCI,CAAS,EAChE,gBAAC,QAAK,UAAU,wCAAwC,cAAW,IAChEA,CACH,CACF,CACF,CAEJ,EAEAY,EAAqB,YAAc",
6
- "names": ["segmented_control_exports", "__export", "SegmentedControlItem", "SegmentedControlRoot", "React", "classNames", "ToggleGroupPrimitive", "useControllableState", "SegmentedControlRoot", "ownProps", "forwardedRef", "props", "useThemeSizeProps", "segmentedControlRootPropDefs", "className", "children", "radius", "valueProp", "defaultValueProp", "onValueChangeProp", "rootProps", "extractProps", "value", "setValue", "useControllableState", "ToggleGroupPrimitive", "classNames", "SegmentedControlItem", "iconOnly"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a as te,b as re}from"./chunk-FDHWAC6W.js";import{a as B,b as oe,c as O}from"./chunk-25FNCKUM.js";import{a as ee}from"./chunk-AGAQC4HH.js";import{b as Y,c as Z}from"./chunk-IX5HIHVI.js";import{a as X}from"./chunk-MJJ7XDIP.js";import{b as Q,c as U}from"./chunk-PPZY7PJA.js";import{c as _}from"./chunk-FWB47YCH.js";import{d as J}from"./chunk-3YLYGKFB.js";import{a as D}from"./chunk-ELAW7ZUG.js";import{a as Te}from"./chunk-OS3FCYZY.js";var Me={};Te(Me,{Content:()=>fe,Empty:()=>Pe,Group:()=>Re,Input:()=>xe,Item:()=>ye,Label:()=>he,List:()=>ge,Root:()=>pe,Separator:()=>ve,Trigger:()=>de,Value:()=>Ce});import*as e from"react";import p from"classnames";import{Popover as ne}from"radix-ui";import{useCallbackRef as A,useComposedRefs as ie,useControllableState as G,useLayoutEffect as W}from"radix-ui/internal";import{Command as T,useCommandState as ae}from"cmdk";var Ie={size:B.size},Ne={size:O.size},se=new Set;function Le(o){se.has(o)||(se.add(o),console.warn(o))}function we(o){let r=o,t=new Set;return{get:()=>r,set:n=>{Object.is(n,r)||(r=n,t.forEach(a=>a()))},subscribe:n=>(t.add(n),()=>{t.delete(n)})}}var le=e.createContext(null),M=o=>{let r=e.useContext(le);if(!r)throw new Error(`Combobox.${o} must be used within Combobox.Root`);return r},me=e.createContext(null),ce=e.createContext(null),be=e.createContext(null),ue=()=>e.useContext(be);function De(o){let r=o.getAttribute("aria-label")?.trim();if(r)return r;let t=o.getAttribute("aria-labelledby");if(t){let a=t.split(/\s+/).map(s=>o.ownerDocument.getElementById(s)?.textContent?.trim()).filter(Boolean).join(" ");if(a)return a}let n=o.labels;if(n&&n.length>0){let a=Array.from(n).map(s=>s.textContent?.trim()).filter(Boolean).join(" ");if(a)return a}}var pe=o=>{let{children:r,size:t,value:n,defaultValue:a=null,onValueChange:s,open:l,defaultOpen:d=!1,onOpenChange:i,placeholder:c="Select an option",searchPlaceholder:x="Search...",searchValue:g,defaultSearchValue:R="",onSearchValueChange:h,filter:C,shouldFilter:b=!0,loop:m=!0,disabled:v,resetSearchOnSelect:f=!0,resetSearchOnClose:S=!0,color:V,displayValue:y,...k}=o,u=J(t,B.size),[E,P]=G({prop:l,defaultProp:d,onChange:i}),[I,Se]=G({prop:n,defaultProp:a,onChange:s}),[j,N]=G({prop:g,defaultProp:R,onChange:h}),K=typeof y=="function"?y(I):y,[L]=e.useState(()=>we(I));W(()=>{L.set(I)},[L,I]);let F=A(w=>{P(w),!w&&S&&N("")}),q=A(w=>{Se(w),P(!1),f&&N("")}),z=e.useRef(null),$=e.useCallback(()=>z.current?De(z.current):void 0,[]),Ve=e.useMemo(()=>({value:I,displayValue:K,setOpen:F,size:u,placeholder:c,searchPlaceholder:x,disabled:v,color:V,loop:m,shouldFilter:b,filter:C,triggerRef:z,getTriggerLabel:$}),[I,K,F,u,c,x,v,V,m,b,C,$]),Ee=e.useMemo(()=>({value:j,setValue:N}),[j,N]),ke=e.useMemo(()=>({store:L,onSelect:q,disabled:v}),[L,q,v]);return e.createElement(le.Provider,{value:Ve},e.createElement(me.Provider,{value:Ee},e.createElement(ce.Provider,{value:ke},e.createElement(te,{open:E,onOpenChange:F,...k},r))))};pe.displayName="Combobox.Root";var de=e.forwardRef((o,r)=>{let t=M("Trigger"),{children:n,className:a,placeholder:s,disabled:l,readOnly:d,error:i,loading:c,color:x,radius:g,onClick:R,onKeyDown:h,type:C,...b}=D({size:t.size,...o},Ie,oe),m=l??t.disabled,v=x??t.color,f=!!(d||c),S=t.value==null&&t.displayValue==null,V=ie(r,t.triggerRef),{getTriggerLabel:y}=t;e.useEffect(()=>{},[y]);let k=P=>{R?.(P),f&&P.preventDefault()},u=P=>{h?.(P),!(P.defaultPrevented||f||m)&&P.key==="ArrowDown"&&(P.preventDefault(),t.setOpen(!0))},E=e.createElement(e.Fragment,null,e.createElement("span",{className:"kui-SelectTriggerInner"},e.createElement("span",{className:"kui-ComboboxValue"},t.displayValue??t.value??s??t.placeholder)),c?e.createElement("div",{className:"kui-SelectIcon kui-SelectLoadingIcon","aria-hidden":"true"},e.createElement("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none"},e.createElement("circle",{cx:"8",cy:"8",r:"7",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeDasharray:"32",strokeDashoffset:"32",className:"kui-SelectLoadingIconCircle"}))):e.createElement(Z,{className:"kui-SelectIcon"}));return e.createElement(re,{disabled:m},e.createElement("button",{"data-accent-color":v,"data-radius":g,"data-error":i,"data-loading":c,"data-disabled":m||void 0,"data-read-only":d||void 0,"data-placeholder":S?"":void 0,...b,role:"combobox","aria-disabled":m||void 0,"aria-readonly":d||void 0,"aria-invalid":i||void 0,"aria-busy":c||void 0,type:C??"button",disabled:m,onClick:k,onKeyDown:u,ref:V,className:p("kui-reset","kui-SelectTrigger","kui-ComboboxTrigger",a)},n?X(n):E))});de.displayName="Combobox.Trigger";var Ce=e.forwardRef(({placeholder:o,children:r,className:t,...n},a)=>{let s=M("Value"),l=s.displayValue??s.value??void 0;return e.createElement("span",{...n,ref:a,className:p("kui-ComboboxValue",t)},l??r??o??s.placeholder)});Ce.displayName="Combobox.Value";function Oe(){let o=ae(a=>a.filtered.count),r=ae(a=>a.search),[t,n]=e.useState("");return e.useEffect(()=>{let a=r?o===0?"No results":`${o} result${o===1?"":"s"}`:"",s=window.setTimeout(()=>n(a),r?400:0);return()=>window.clearTimeout(s)},[o,r]),e.createElement(ee,{role:"status","aria-live":"polite","aria-atomic":"true"},t)}var fe=e.forwardRef((o,r)=>{let t=M("Content"),n=Q(),a=o.size??t.size??O.size.default,{className:s,children:l,color:d,forceMount:i,container:c,onOpenAutoFocus:x,"aria-label":g,"aria-labelledby":R,...h}=D({...o,size:a},O),C=d||t.color||n.accentColor,{getTriggerLabel:b}=t,[m,v]=e.useState(b);W(()=>{if(m!==void 0)return;let u=b();u!==void 0&&v(u)},[b,m]);let f=o["aria-label"]??m,S=e.useMemo(()=>({sizeClassName:D({size:a},Ne).className||void 0,color:C,label:f}),[a,C,f]),V=e.useRef(null),y=u=>{if(x?.(u),u.defaultPrevented)return;let E=V.current;if(!E||E.querySelector("[cmdk-input]"))return;u.preventDefault(),(E.querySelector("[cmdk-list]")??E).focus({preventScroll:!0})},k=t.value?.trim()||void 0;return e.createElement(ne.Portal,{container:c,forceMount:i?!0:void 0},e.createElement(U,{asChild:!0},e.createElement(ne.Content,{"data-accent-color":C,align:"start",sideOffset:4,collisionPadding:10,"aria-label":R?void 0:f,"aria-labelledby":R,...h,forceMount:i?!0:void 0,onOpenAutoFocus:y,ref:r,className:p("kui-PopperContent","kui-BaseMenuContent","kui-variant-soft","kui-ComboboxContent",s)},e.createElement(be.Provider,{value:S},e.createElement(T,{ref:V,loop:t.loop,shouldFilter:t.shouldFilter,filter:t.filter,label:f,defaultValue:k,className:"kui-ComboboxCommand"},l,e.createElement(Oe,null))))))});fe.displayName="Combobox.Content";var xe=e.forwardRef(({className:o,startAdornment:r,endAdornment:t,placeholder:n,variant:a,value:s,onValueChange:l,...d},i)=>{let c=M("Input"),x=e.useContext(me),g=ue(),R=a??"soft",h=s??x?.value??"",C=l??x?.setValue,b=e.createElement("div",{className:p("kui-TextFieldRoot","kui-ComboboxInputRoot",g?.sizeClassName,`kui-variant-${R}`),"data-accent-color":g?.color},r?e.createElement("div",{className:"kui-TextFieldSlot"},r):null,e.createElement(T.Input,{...d,ref:i,value:h,onValueChange:C,placeholder:n??c.searchPlaceholder,className:p("kui-reset","kui-TextFieldInput",o)}),t?e.createElement("div",{className:"kui-TextFieldSlot","data-side":"right"},t):null);return g?e.createElement("div",{className:"kui-ComboboxSearch"},b):b});xe.displayName="Combobox.Input";var ge=e.forwardRef(({className:o,children:r,label:t,...n},a)=>{let s=ue();return e.createElement("div",{className:"kui-ComboboxScrollArea"},e.createElement("div",{className:p("kui-BaseMenuViewport","kui-ComboboxViewport")},e.createElement(T.List,{...n,label:t??s?.label,ref:a,className:p("kui-ComboboxList",o)},r)))});ge.displayName="Combobox.List";var Pe=e.forwardRef(({className:o,...r},t)=>e.createElement(T.Empty,{...r,ref:t,className:p("kui-ComboboxEmpty",o)}));Pe.displayName="Combobox.Empty";var Re=e.forwardRef(({className:o,...r},t)=>e.createElement(T.Group,{...r,ref:t,className:p("kui-BaseMenuGroup","kui-ComboboxGroup",o)}));Re.displayName="Combobox.Group";var he=e.forwardRef(({className:o,id:r,...t},n)=>{let a=e.useId(),s=r??a,l=e.useRef(null),d=ie(n,l);return W(()=>{let i=l.current?.closest("[cmdk-group-items]");if(!(!i||i.hasAttribute("aria-labelledby")))return i.setAttribute("aria-labelledby",s),()=>{i.getAttribute("aria-labelledby")===s&&i.removeAttribute("aria-labelledby")}},[s]),e.createElement("div",{...t,id:s,ref:d,className:p("kui-BaseMenuLabel","kui-ComboboxLabel",o)})});he.displayName="Combobox.Label";var ve=e.forwardRef(({className:o,...r},t)=>e.createElement(T.Separator,{...r,ref:t,className:p("kui-BaseMenuSeparator","kui-ComboboxSeparator",o)}));ve.displayName="Combobox.Separator";function H(o){return o==null||typeof o=="boolean"?"":typeof o=="string"||typeof o=="number"?String(o):Array.isArray(o)?o.map(H).join(""):e.isValidElement(o)?H(o.props.children):""}var ye=e.forwardRef(({className:o,children:r,label:t,value:n,disabled:a,onSelect:s,keywords:l,...d},i)=>{let c=e.useContext(ce);if(!c)throw new Error("Combobox.Item must be used within Combobox.Root");let{store:x,onSelect:g,disabled:R}=c,h=n??(typeof r=="string"?r.trim():void 0),C=()=>h!==void 0&&x.get()===h,b=e.useSyncExternalStore(x.subscribe,C,C),m=A(s),v=e.useCallback(k=>{let u=n??k;g(u),m(u)},[n,g,m]),f=(t??H(r)).replace(/\s+/g," ").trim(),S=f?l?[f,...l]:[f]:l,V=S?S.join("\0"):"",y=a??R??!1;return e.createElement(T.Item,{key:V,...d,value:n,keywords:S,"aria-checked":b,disabled:y||void 0,ref:i,onSelect:v,className:p("kui-reset","kui-BaseMenuItem","kui-ComboboxItem",o)},b?e.createElement("span",{className:p("kui-BaseMenuItemIndicator","kui-ComboboxItemIndicator")},e.createElement(Y,{className:p("kui-BaseMenuItemIndicatorIcon","kui-ComboboxItemIndicatorIcon")})):null,e.createElement(_,null,r))});ye.displayName="Combobox.Item";export{pe as a,de as b,Ce as c,fe as d,xe as e,ge as f,Pe as g,Re as h,he as i,ve as j,ye as k,Me as l};
2
- //# sourceMappingURL=chunk-6DDOR73D.js.map