@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
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ import{a as v}from"./chunk-U5GQ3IFS.js";import{a as i}from"./chunk-WZKSLTBH.js";import{c as l}from"./chunk-2IUGM657.js";import{c as N}from"./chunk-OKQAVYW4.js";import{a as g}from"./chunk-VQPANPMI.js";var R={};g(R,{Actions:()=>c,Logo:()=>b,Navigation:()=>f,Root:()=>m});import*as o from"react";import n from"classnames";var m=o.forwardRef((e,t)=>{let a=l(e,v.size),{children:s,className:r,...p}=N(a,v),P=a.position??"fixed",d=a.size??"2";return o.createElement("header",{...p,ref:t,className:n("kui-NavbarRoot",r),"data-position":P,"data-size":d},o.createElement("div",{className:"kui-NavbarContainer"},s))});m.displayName="Navbar.Root";var b=o.forwardRef(({gap:e="2",align:t="center",justify:a="start",className:s,...r},p)=>o.createElement(i,{ref:p,gap:e,align:t,justify:a,className:n("kui-NavbarLogo",s),...r}));b.displayName="Navbar.Logo";var f=o.forwardRef(({gap:e="4",align:t="center",justify:a="center",className:s,...r},p)=>o.createElement(i,{ref:p,gap:e,align:t,justify:a,className:n("kui-NavbarNavigation",s),role:"navigation","aria-label":r["aria-labelledby"]===void 0?"Main":void 0,...r}));f.displayName="Navbar.Navigation";var c=o.forwardRef(({gap:e="4",align:t="center",justify:a="end",className:s,...r},p)=>o.createElement(i,{ref:p,gap:e,align:t,justify:a,className:n("kui-NavbarActions",s),...r}));c.displayName="Navbar.Actions";export{m as a,b,f as c,c as d,R as e};
3
+ //# sourceMappingURL=chunk-CRCYUJMK.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/navbar.tsx"],
4
+ "sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Flex } from './flex.js';\n\nimport type { FlexProps } from './flex.js';\nimport type { MarginProps } from '../props/margin.props.js';\n\n// Navbar slots are parts, not layout primitives: the bar owns their spacing.\ntype NavbarSlotFlexProps = Omit<FlexProps, keyof MarginProps>;\n\nimport { navbarRootPropDefs } from './navbar.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\n/**\n * Navbar Component\n *\n * A horizontal navigation bar component with semantic slots for organizing\n * content. Follows the Shell and Sidebar compound component patterns.\n *\n * @example\n * <Navbar.Root>\n * <Navbar.Logo>Brand/logo content</Navbar.Logo>\n * <Navbar.Navigation>Navigation links</Navbar.Navigation>\n * <Navbar.Actions>CTAs, user menu, etc</Navbar.Actions>\n * </Navbar.Root>\n */\n\n// Root Component\ntype NavbarRootElement = React.ElementRef<'header'>;\ntype NavbarRootOwnProps = GetPropDefTypes<typeof navbarRootPropDefs>;\ninterface NavbarRootProps\n extends ComponentPropsWithout<'header', RemovedProps>,\n NavbarRootOwnProps {}\n\nconst NavbarRoot = React.forwardRef<NavbarRootElement, NavbarRootProps>(\n (ownProps, forwardedRef) => {\n const props = useThemeSizeProps(ownProps, navbarRootPropDefs.size);\n const { children, className, ...rootProps } = extractProps(\n props,\n navbarRootPropDefs,\n );\n\n const position = props.position ?? 'fixed';\n const size = props.size ?? '2';\n\n return (\n <header\n {...rootProps}\n ref={forwardedRef}\n className={classNames('kui-NavbarRoot', className)}\n data-position={position}\n data-size={size}\n >\n <div className=\"kui-NavbarContainer\">{children}</div>\n </header>\n );\n },\n);\nNavbarRoot.displayName = 'Navbar.Root';\n\n// Logo Slot - extends FlexProps\ntype NavbarLogoProps = NavbarSlotFlexProps & {\n asChild?: boolean;\n};\n\n// With `asChild`, Flex renders the child, so the layout props become classes on it, not attributes.\nconst NavbarLogo = React.forwardRef<HTMLDivElement, NavbarLogoProps>(\n ({ gap = '2', align = 'center', justify = 'start', className, ...props }, ref) => (\n <Flex\n ref={ref}\n gap={gap}\n align={align}\n justify={justify}\n className={classNames('kui-NavbarLogo', className)}\n {...props}\n />\n ),\n);\nNavbarLogo.displayName = 'Navbar.Logo';\n\n// Navigation Slot - extends FlexProps\ntype NavbarNavigationProps = NavbarSlotFlexProps & {\n asChild?: boolean;\n};\n\nconst NavbarNavigation = React.forwardRef<HTMLDivElement, NavbarNavigationProps>(\n ({ gap = '4', align = 'center', justify = 'center', className, ...props }, ref) => (\n <Flex\n ref={ref}\n gap={gap}\n align={align}\n justify={justify}\n className={classNames('kui-NavbarNavigation', className)}\n role=\"navigation\"\n // A landmark needs a name to be told apart from other navigation on the page.\n aria-label={props['aria-labelledby'] === undefined ? 'Main' : undefined}\n {...props}\n />\n ),\n);\nNavbarNavigation.displayName = 'Navbar.Navigation';\n\n// Actions Slot - extends FlexProps\ntype NavbarActionsProps = NavbarSlotFlexProps & {\n asChild?: boolean;\n};\n\nconst NavbarActions = React.forwardRef<HTMLDivElement, NavbarActionsProps>(\n ({ gap = '4', align = 'center', justify = 'end', className, ...props }, ref) => (\n <Flex\n ref={ref}\n gap={gap}\n align={align}\n justify={justify}\n className={classNames('kui-NavbarActions', className)}\n {...props}\n />\n ),\n);\nNavbarActions.displayName = 'Navbar.Actions';\n\nexport {\n NavbarRoot as Root,\n NavbarLogo as Logo,\n NavbarNavigation as Navigation,\n NavbarActions as Actions,\n};\n\nexport type {\n NavbarRootProps as RootProps,\n NavbarLogoProps as LogoProps,\n NavbarNavigationProps as NavigationProps,\n NavbarActionsProps as ActionsProps,\n};\n"],
5
+ "mappings": ";wMAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,SAAAC,EAAA,eAAAC,EAAA,SAAAC,IAEA,UAAYC,MAAW,QACvB,OAAOC,MAAgB,aAqCvB,IAAMC,EAAmB,aACvB,CAACC,EAAUC,IAAiB,CAC1B,IAAMC,EAAQC,EAAkBH,EAAUI,EAAmB,IAAI,EAC3D,CAAE,SAAAC,EAAU,UAAAC,EAAW,GAAGC,CAAU,EAAIC,EAC5CN,EACAE,CACF,EAEMK,EAAWP,EAAM,UAAY,QAC7BQ,EAAOR,EAAM,MAAQ,IAE3B,OACE,gBAAC,UACE,GAAGK,EACJ,IAAKN,EACL,UAAWU,EAAW,iBAAkBL,CAAS,EACjD,gBAAeG,EACf,YAAWC,GAEX,gBAAC,OAAI,UAAU,uBAAuBL,CAAS,CACjD,CAEJ,CACF,EACAN,EAAW,YAAc,cAQzB,IAAMa,EAAmB,aACvB,CAAC,CAAE,IAAAC,EAAM,IAAK,MAAAC,EAAQ,SAAU,QAAAC,EAAU,QAAS,UAAAT,EAAW,GAAGJ,CAAM,EAAGc,IACxE,gBAACC,EAAA,CACC,IAAKD,EACL,IAAKH,EACL,MAAOC,EACP,QAASC,EACT,UAAWJ,EAAW,iBAAkBL,CAAS,EAChD,GAAGJ,EACN,CAEJ,EACAU,EAAW,YAAc,cAOzB,IAAMM,EAAyB,aAC7B,CAAC,CAAE,IAAAL,EAAM,IAAK,MAAAC,EAAQ,SAAU,QAAAC,EAAU,SAAU,UAAAT,EAAW,GAAGJ,CAAM,EAAGc,IACzE,gBAACC,EAAA,CACC,IAAKD,EACL,IAAKH,EACL,MAAOC,EACP,QAASC,EACT,UAAWJ,EAAW,uBAAwBL,CAAS,EACvD,KAAK,aAEL,aAAYJ,EAAM,iBAAiB,IAAM,OAAY,OAAS,OAC7D,GAAGA,EACN,CAEJ,EACAgB,EAAiB,YAAc,oBAO/B,IAAMC,EAAsB,aAC1B,CAAC,CAAE,IAAAN,EAAM,IAAK,MAAAC,EAAQ,SAAU,QAAAC,EAAU,MAAO,UAAAT,EAAW,GAAGJ,CAAM,EAAGc,IACtE,gBAACC,EAAA,CACC,IAAKD,EACL,IAAKH,EACL,MAAOC,EACP,QAASC,EACT,UAAWJ,EAAW,oBAAqBL,CAAS,EACnD,GAAGJ,EACN,CAEJ,EACAiB,EAAc,YAAc",
6
+ "names": ["navbar_exports", "__export", "NavbarActions", "NavbarLogo", "NavbarNavigation", "NavbarRoot", "React", "classNames", "NavbarRoot", "ownProps", "forwardedRef", "props", "useThemeSizeProps", "navbarRootPropDefs", "children", "className", "rootProps", "extractProps", "position", "size", "classNames", "NavbarLogo", "gap", "align", "justify", "ref", "Flex", "NavbarNavigation", "NavbarActions"]
7
+ }
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ import{b as s}from"./chunk-XL5OHW6Z.js";import*as e from"react";import{useLayoutEffect as l}from"radix-ui/internal";var d=e.createContext({isInsideMenu:!1}),i=e.createContext(null),a={1:24,2:30,3:34,4:38};function p(t){return a[t]}function x({children:t,size:o}){let n=s(o,void 0),r=n?p(n):void 0,u=e.useMemo(()=>({isInsideMenu:!0,size:n,itemHeight:r}),[n,r]);return e.createElement(d.Provider,{value:u},e.createElement(i.Provider,{value:null},t))}function v(){return e.useContext(d)}var c=e.createContext(void 0),m=c.Provider;function C(){return e.useContext(c)}var R=i.Provider;function P(t){let[o,n]=e.useState(null);return[t??o??void 0,n]}function b(t,o=!0){let n=e.useContext(i),r=e.useId(),u=t??r;return l(()=>{if(!(!n||!o))return n(u),()=>n(null)},[n,u,o]),n?u:t}export{a,p as b,x as c,v as d,m as e,C as f,R as g,P as h,b as i};
3
+ //# sourceMappingURL=chunk-CV7QQTI3.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/_internal/menu-context.tsx"],
4
+ "sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport { useLayoutEffect } from 'radix-ui/internal';\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\n/** The register function of the menu Group a Label sits in (see useMenuGroupLabelId). */\nconst MenuGroupLabelContext = React.createContext<((id: string | null) => void) | null>(null);\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 // A submenu is its own surface, so its labels never name a group of the parent menu.\n return (\n <MenuContext.Provider value={value}>\n <MenuGroupLabelContext.Provider value={null}>{children}</MenuGroupLabelContext.Provider>\n </MenuContext.Provider>\n );\n}\n\nexport function useMenuContext() {\n return React.useContext(MenuContext);\n}\n\n/**\n * Closes the whole menu from inside it. DropdownMenu.Root and ContextMenu.Root provide it,\n * so a VirtualMenu row can close the menu on select the way a menu item does.\n */\nconst MenuCloseContext = React.createContext<(() => void) | undefined>(undefined);\nexport const MenuCloseProvider = MenuCloseContext.Provider;\n\nexport function useMenuClose() {\n return React.useContext(MenuCloseContext);\n}\n\n/**\n * Names a menu group by its label, the way v2's MenuGroup does. A Group holds the id of\n * the Label inside it and points aria-labelledby at it, so a screen reader announces the\n * section name when focus enters the group.\n */\nexport const MenuGroupLabelProvider = MenuGroupLabelContext.Provider;\n\n/** For a Group: the id its aria-labelledby points to, and the setter a nested Label calls. */\nexport function useMenuGroupLabelledBy(ariaLabelledBy: string | undefined) {\n const [labelId, setLabelId] = React.useState<string | null>(null);\n return [ariaLabelledBy ?? labelId ?? undefined, setLabelId] as const;\n}\n\n/** For a Label: its id, registered with the Group it sits in while the label is rendered. */\nexport function useMenuGroupLabelId(idProp: string | undefined, rendered = true) {\n const register = React.useContext(MenuGroupLabelContext);\n const generatedId = React.useId();\n const id = idProp ?? generatedId;\n useLayoutEffect(() => {\n if (!register || !rendered) return;\n register(id);\n return () => register(null);\n }, [register, id, rendered]);\n return register ? id : idProp;\n}\n"],
5
+ "mappings": ";wCAEA,UAAYA,MAAW,QACvB,OAAS,mBAAAC,MAAuB,oBAyBhC,IAAMC,EAAoB,gBAAgC,CAAE,aAAc,EAAM,CAAC,EAG3EC,EAA8B,gBAAoD,IAAI,EAY/EC,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,EAEA,OACE,gBAACT,EAAY,SAAZ,CAAqB,MAAOU,GAC3B,gBAACT,EAAsB,SAAtB,CAA+B,MAAO,MAAOK,CAAS,CACzD,CAEJ,CAEO,SAASK,GAAiB,CAC/B,OAAa,aAAWX,CAAW,CACrC,CAMA,IAAMY,EAAyB,gBAAwC,MAAS,EACnEC,EAAoBD,EAAiB,SAE3C,SAASE,GAAe,CAC7B,OAAa,aAAWF,CAAgB,CAC1C,CAOO,IAAMG,EAAyBd,EAAsB,SAGrD,SAASe,EAAuBC,EAAoC,CACzE,GAAM,CAACC,EAASC,CAAU,EAAU,WAAwB,IAAI,EAChE,MAAO,CAACF,GAAkBC,GAAW,OAAWC,CAAU,CAC5D,CAGO,SAASC,EAAoBC,EAA4BC,EAAW,GAAM,CAC/E,IAAMC,EAAiB,aAAWtB,CAAqB,EACjDuB,EAAoB,QAAM,EAC1BC,EAAKJ,GAAUG,EACrB,OAAAE,EAAgB,IAAM,CACpB,GAAI,GAACH,GAAY,CAACD,GAClB,OAAAC,EAASE,CAAE,EACJ,IAAMF,EAAS,IAAI,CAC5B,EAAG,CAACA,EAAUE,EAAIH,CAAQ,CAAC,EACpBC,EAAWE,EAAKJ,CACzB",
6
+ "names": ["React", "useLayoutEffect", "MenuContext", "MenuGroupLabelContext", "menuSizeToItemHeight", "getMenuItemHeight", "size", "MenuProvider", "children", "resolvedSize", "useResolvedResponsiveValue", "itemHeight", "value", "useMenuContext", "MenuCloseContext", "MenuCloseProvider", "useMenuClose", "MenuGroupLabelProvider", "useMenuGroupLabelledBy", "ariaLabelledBy", "labelId", "setLabelId", "useMenuGroupLabelId", "idProp", "rendered", "register", "generatedId", "id", "useLayoutEffect"]
7
+ }
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ import{b as P,d as $,f as A}from"./chunk-CV7QQTI3.js";import*as t from"react";import L from"classnames";import{useVirtualizer as oe}from"@tanstack/react-virtual";import{useLayoutEffect as B}from"radix-ui/internal";function q(r,a){if(r.style?.height!==a.style?.height||r.style?.transform!==a.style?.transform)return!1;let c=Object.keys(r);return c.length!==Object.keys(a).length?!1:c.every(s=>s==="style"||Object.is(r[s],a[s]))}var ce=t.memo(function({label:a,isHighlighted:c,id:s,style:f,tabIndex:h,"data-highlighted":o,"data-index":R,"aria-setsize":I,"aria-posinset":y,onMouseEnter:E,onMouseLeave:H,onClick:d,onKeyDown:T}){return t.createElement("div",{id:s,role:"menuitem",className:L("kui-reset","kui-BaseMenuItem","kui-VirtualMenuItem"),style:f,tabIndex:h,"data-highlighted":o,"data-index":R,"aria-setsize":I,"aria-posinset":y,onMouseEnter:E,onMouseLeave:H,onClick:d,onKeyDown:T},a)},q);function le(r,a,c){let[s,f]=t.useState(void 0);return B(()=>{let h=r.current;if(!a||!h)return;let o=document.createElement("div");o.className="kui-reset kui-BaseMenuItem kui-VirtualMenuItem",o.setAttribute("aria-hidden","true"),o.style.visibility="hidden",o.textContent="\xA0",h.appendChild(o);let R=o.getBoundingClientRect().height;o.remove(),f(R>0?R:void 0)},[r,a,c]),a?s:void 0}function de({items:r,itemLabel:a,renderItem:c,size:s,estimatedItemSize:f,overscan:h=5,onSelect:o,className:R,style:I,onKeyDown:y,onFocus:E,...H},d){let T=t.useId(),x=t.useRef(null),[S,m]=t.useState(-1),{isInsideMenu:l,size:C,itemHeight:U}=$(),D=A(),Y=t.useCallback(e=>{x.current=e,typeof d=="function"?d(e):d&&(d.current=e)},[d]),G=le(x,l&&s==null&&f==null,C),p=f??(s?P(s):G??U??P(C??"2"));if(!a&&!c)throw new Error("VirtualMenu requires either itemLabel or renderItem prop");let J=t.useMemo(()=>a?typeof a=="function"?a:e=>e[a]:null,[a]),v=t.useMemo(()=>r.length===0||S<0?-1:Math.min(S,r.length-1),[S,r.length]),Q=t.useMemo(()=>typeof p=="function"?p:()=>p,[p]),M=oe({count:r.length,getScrollElement:()=>x.current,estimateSize:Q,overscan:h}),X=M.getVirtualItems();B(()=>{M.measure()},[M,p]),t.useEffect(()=>{let e=x.current;if(!l||!e)return;let n=e.closest("[data-radix-menu-content]");if(!n)return;let i=u=>{u.target===n&&e.focus({preventScroll:!0})};return n.addEventListener("focusin",i),document.activeElement===n&&e.focus({preventScroll:!0}),()=>n.removeEventListener("focusin",i)},[l]);let z=t.useRef(y),w=t.useRef(E);z.current=y,w.current=E;let k=t.useRef(r),N=t.useRef(o),K=t.useRef(D);k.current=r,N.current=o,K.current=D;let g=t.useCallback(e=>{let n=k.current;e<0||e>=n.length||(N.current?.(n[e],e),K.current?.())},[]),b=t.useRef(M.scrollToIndex);b.current=M.scrollToIndex;let V=t.useRef(v);V.current=v;let Z=t.useCallback(e=>{let n=e.currentTarget.dataset.index;n!=null&&m(Number(n))},[]),ee=t.useCallback(e=>{let n=e.currentTarget.dataset.index;n!=null&&g(Number(n))},[g]),te=t.useCallback(e=>{let n=Number(e.currentTarget.dataset.index);m(i=>i===n?-1:i)},[]),ne=t.useCallback(e=>{if(e.key==="Enter"||e.key===" "){e.preventDefault(),e.stopPropagation();let n=e.currentTarget.dataset.index;n!=null&&g(Number(n))}},[g]),re=t.useCallback(e=>{if(z.current?.(e),e.defaultPrevented)return;let n=k.current,i=V.current;switch(e.key){case"ArrowDown":{e.preventDefault();let u=i<n.length-1?i+1:0;m(u),b.current(u,{align:"auto"});break}case"ArrowUp":{e.preventDefault();let u=i>0?i-1:n.length-1;m(u),b.current(u,{align:"auto"});break}case"Home":{e.preventDefault(),m(0),b.current(0,{align:"start"});break}case"End":{e.preventDefault();let u=n.length-1;m(u),b.current(u,{align:"end"});break}case"Enter":case" ":{e.preventDefault(),g(i);break}case"Tab":{l&&e.preventDefault();break}case"Escape":{l||e.currentTarget.blur();break}default:l&&e.key.length===1&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&e.stopPropagation()}},[g,l]),ae=t.useCallback(e=>{w.current?.(e),e.target===e.currentTarget&&V.current<0&&k.current.length>0&&m(0)},[]),O=t.useCallback(e=>`${T}-item-${e}`,[T]),ie=t.useMemo(()=>({overflow:"auto",position:"relative",...I}),[I]),j=M.getTotalSize(),se=t.useMemo(()=>({height:`${j}px`,width:"100%",position:"relative"}),[j]);return t.createElement("div",{...H,ref:Y,role:l?"group":"menu","aria-activedescendant":v>=0?O(v):void 0,tabIndex:0,onKeyDown:re,onFocus:ae,className:L("kui-VirtualMenuRoot",!l&&`kui-r-size-${s??"2"}`,R),style:ie},t.createElement("div",{className:"kui-VirtualMenuViewport",style:se},X.map(e=>{let n=r[e.index],i=e.index,u=v===i,ue={height:e.size,transform:`translateY(${e.start}px)`},F={id:O(i),isHighlighted:u,style:ue,tabIndex:-1,"data-highlighted":u?!0:void 0,"data-index":i,"aria-setsize":r.length,"aria-posinset":i+1,onMouseEnter:Z,onMouseLeave:te,onClick:ee,onKeyDown:ne};return c?t.createElement(c,{key:e.key,item:n,index:i,...F}):t.createElement(ce,{key:e.key,label:J(n),...F})})))}var W=t.forwardRef(de);W.displayName="VirtualMenu";var _=t.forwardRef(({className:r,children:a,...c},s)=>t.createElement("div",{ref:s,role:"menuitem",className:L("kui-reset","kui-BaseMenuItem","kui-VirtualMenuItem",r),...c},a));_.displayName="VirtualMenu.Item";var me=t.memo(_,q),ge=Object.assign(W,{Item:me});export{ge as a};
3
+ //# sourceMappingURL=chunk-CYTPMHSJ.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/virtual-menu.tsx"],
4
+ "sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useVirtualizer } from '@tanstack/react-virtual';\nimport { useLayoutEffect } from 'radix-ui/internal';\nimport { useMenuContext, useMenuClose, getMenuItemHeight } from './_internal/menu-context.js';\n\nimport type { MenuSize } from './_internal/menu-context.js';\n\n/**\n * VirtualMenu - A virtualized menu component for rendering large lists efficiently.\n *\n * Uses TanStack Virtual to render only visible items.\n * Works inside any container (DropdownMenu.Content, Popover.Content, etc.)\n *\n * @example\n * // Simple usage with itemLabel\n * <VirtualMenu\n * items={items}\n * itemLabel={(item) => item.name}\n * onSelect={handleSelect}\n * />\n *\n * @example\n * // Custom rendering with renderItem\n * const UserItem = React.memo(({ item, ...props }) => (\n * <VirtualMenu.Item {...props}>\n * <Avatar src={item.avatar} />\n * {item.name}\n * </VirtualMenu.Item>\n * ));\n *\n * <VirtualMenu items={users} renderItem={UserItem} onSelect={handleSelect} />\n */\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/** Props passed to custom renderItem components */\ninterface VirtualMenuRenderItemProps<T> {\n /** The item data */\n item: T;\n /** Index in the items array */\n index: number;\n /** Whether this item is currently highlighted */\n isHighlighted: boolean;\n /** Unique ID for accessibility */\n id: string;\n /** Positioning styles - must be applied */\n style: React.CSSProperties;\n /** Tab index for focus management */\n tabIndex: number;\n /** Data attribute for CSS styling */\n 'data-highlighted': true | undefined;\n /** Data attribute for event delegation */\n 'data-index': number;\n /** Number of items in the whole list, since only some rows are mounted */\n 'aria-setsize': number;\n /** Position of this row in the whole list, from 1 */\n 'aria-posinset': number;\n /** Mouse enter handler */\n onMouseEnter: (e: React.MouseEvent<HTMLElement>) => void;\n /** Mouse leave handler */\n onMouseLeave: (e: React.MouseEvent<HTMLElement>) => void;\n /** Click handler */\n onClick: (e: React.MouseEvent<HTMLElement>) => void;\n /** Keyboard handler for Enter/Space activation */\n onKeyDown: (e: React.KeyboardEvent<HTMLElement>) => void;\n}\n\n/** How rows are drawn: one of `itemLabel` or `renderItem` is required. */\ntype VirtualMenuRowProps<T> =\n | {\n /**\n * Simple label accessor for basic text items.\n * Can be a property key or a function.\n * @example\n * itemLabel=\"name\"\n * itemLabel={(item) => item.name}\n */\n itemLabel: keyof T | ((item: T) => React.ReactNode);\n renderItem?: undefined;\n }\n | {\n itemLabel?: undefined;\n /**\n * Custom component for rendering items.\n * Must be memoized (React.memo) for optimal performance.\n * @example\n * const MyItem = React.memo(({ item, ...props }) => (\n * <VirtualMenu.Item {...props}>{item.name}</VirtualMenu.Item>\n * ));\n * <VirtualMenu items={items} renderItem={MyItem} />\n */\n renderItem: React.ComponentType<VirtualMenuRenderItemProps<T>>;\n };\n\n/** Attributes of the list element that pass through, such as `id`, `aria-labelledby` or `data-*`. */\ntype VirtualMenuDivProps = Omit<\n React.ComponentPropsWithoutRef<'div'>,\n 'children' | 'onSelect' | 'role' | 'tabIndex' | 'aria-activedescendant'\n>;\n\ntype VirtualMenuProps<T> = VirtualMenuDivProps & VirtualMenuRowProps<T> & VirtualMenuOwnProps<T>;\n\ninterface VirtualMenuOwnProps<T> {\n /** Array of items to render */\n items: T[];\n /**\n * Menu size - controls item height.\n * Automatically inherited from parent DropdownMenu.Content/ContextMenu.Content.\n * Only set manually when using VirtualMenu outside of a menu context.\n * @default '2' (or inherited from context)\n */\n size?: MenuSize;\n /**\n * Estimated height of each item in pixels.\n * Can be a number (same for all) or a function (per-item).\n * Usually not needed - height is automatically derived from size prop/context.\n * Use this only for custom item heights (e.g., variable height items).\n */\n estimatedItemSize?: number | ((index: number) => number);\n /** Number of items to render outside visible area */\n overscan?: number;\n /** Callback when an item is selected */\n onSelect?: (item: T, index: number) => void;\n}\n\n// ============================================================================\n// Internal Memoized Item Component\n// ============================================================================\n\n/**\n * Rows get a new style object every render, so style is compared by the two values the\n * list sets. Every other prop is compared shallowly, so aria-*, data-* and handlers update.\n */\nfunction areRowPropsEqual<P extends { style?: React.CSSProperties }>(prev: P, next: P) {\n if (prev.style?.height !== next.style?.height) return false;\n if (prev.style?.transform !== next.style?.transform) return false;\n const prevKeys = Object.keys(prev) as (keyof P)[];\n if (prevKeys.length !== Object.keys(next).length) return false;\n return prevKeys.every((key) => key === 'style' || Object.is(prev[key], next[key]));\n}\n\ninterface SimpleItemProps {\n label: React.ReactNode;\n isHighlighted: boolean;\n id: string;\n style: React.CSSProperties;\n tabIndex: number;\n 'data-highlighted': true | undefined;\n 'data-index': number;\n 'aria-setsize': number;\n 'aria-posinset': number;\n onMouseEnter: (e: React.MouseEvent<HTMLElement>) => void;\n onMouseLeave: (e: React.MouseEvent<HTMLElement>) => void;\n onClick: (e: React.MouseEvent<HTMLElement>) => void;\n onKeyDown: (e: React.KeyboardEvent<HTMLElement>) => void;\n}\n\nconst SimpleItem = React.memo(\n function SimpleItem({\n label,\n isHighlighted: _isHighlighted,\n id,\n style,\n tabIndex,\n 'data-highlighted': dataHighlighted,\n 'data-index': dataIndex,\n 'aria-setsize': setSize,\n 'aria-posinset': posInSet,\n onMouseEnter,\n onMouseLeave,\n onClick,\n onKeyDown,\n }: SimpleItemProps) {\n return (\n <div\n id={id}\n role=\"menuitem\"\n className={classNames('kui-reset', 'kui-BaseMenuItem', 'kui-VirtualMenuItem')}\n style={style}\n tabIndex={tabIndex}\n data-highlighted={dataHighlighted}\n data-index={dataIndex}\n aria-setsize={setSize}\n aria-posinset={posInSet}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onClick={onClick}\n onKeyDown={onKeyDown}\n >\n {label}\n </div>\n );\n },\n areRowPropsEqual,\n);\n\n// ============================================================================\n// VirtualMenu Component\n// ============================================================================\n\n/**\n * Measures the row height the menu's CSS draws (--base-menu-item-height), so rows follow\n * the theme scale instead of the fixed 100% table. Returns undefined until measured.\n */\nfunction useMeasuredRowHeight(\n rootRef: React.RefObject<HTMLDivElement | null>,\n enabled: boolean,\n size: MenuSize | undefined,\n) {\n const [height, setHeight] = React.useState<number | undefined>(undefined);\n useLayoutEffect(() => {\n const root = rootRef.current;\n if (!enabled || !root) return;\n const probe = document.createElement('div');\n probe.className = 'kui-reset kui-BaseMenuItem kui-VirtualMenuItem';\n probe.setAttribute('aria-hidden', 'true');\n probe.style.visibility = 'hidden';\n probe.textContent = '\\u00a0';\n root.appendChild(probe);\n const measured = probe.getBoundingClientRect().height;\n probe.remove();\n setHeight(measured > 0 ? measured : undefined);\n }, [rootRef, enabled, size]);\n return enabled ? height : undefined;\n}\n\nfunction VirtualMenuRootInner<T>(\n {\n items,\n itemLabel,\n renderItem: RenderItem,\n size: sizeProp,\n estimatedItemSize: estimatedItemSizeProp,\n overscan = 5,\n onSelect,\n className,\n style,\n onKeyDown,\n onFocus,\n ...rootProps\n }: VirtualMenuProps<T>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>,\n) {\n const menuId = React.useId();\n const parentRef = React.useRef<HTMLDivElement>(null);\n const [highlightedIndex, setHighlightedIndex] = React.useState<number>(-1);\n const { isInsideMenu, size: contextSize, itemHeight: contextItemHeight } = useMenuContext();\n const closeMenu = useMenuClose();\n\n const setRootRef = React.useCallback(\n (node: HTMLDivElement | null) => {\n parentRef.current = node;\n if (typeof forwardedRef === 'function') forwardedRef(node);\n else if (forwardedRef) forwardedRef.current = node;\n },\n [forwardedRef],\n );\n\n // Inside a menu, the CSS row height is measured so it tracks the theme scale.\n const measuredItemHeight = useMeasuredRowHeight(\n parentRef,\n isInsideMenu && sizeProp == null && estimatedItemSizeProp == null,\n contextSize,\n );\n\n // Resolve item height: explicit prop > own size > measured CSS row > parent menu > default size '2'.\n const estimatedItemSize =\n estimatedItemSizeProp ??\n (sizeProp\n ? getMenuItemHeight(sizeProp)\n : (measuredItemHeight ?? contextItemHeight ?? getMenuItemHeight(contextSize ?? '2')));\n\n // Validate props\n if (!itemLabel && !RenderItem) {\n throw new Error('VirtualMenu requires either itemLabel or renderItem prop');\n }\n\n // Normalize itemLabel to a function\n const getLabel = React.useMemo(() => {\n if (!itemLabel) return null;\n if (typeof itemLabel === 'function') return itemLabel;\n return (item: T) => item[itemLabel] as React.ReactNode;\n }, [itemLabel]);\n\n // Derive safe highlighted index\n const safeHighlightedIndex = React.useMemo(() => {\n if (items.length === 0) return -1;\n if (highlightedIndex < 0) return -1;\n return Math.min(highlightedIndex, items.length - 1);\n }, [highlightedIndex, items.length]);\n\n // Normalize estimatedItemSize to a function\n const getItemSize = React.useMemo(\n () =>\n typeof estimatedItemSize === 'function'\n ? estimatedItemSize\n : () => estimatedItemSize,\n [estimatedItemSize],\n );\n\n const virtualizer = useVirtualizer({\n count: items.length,\n getScrollElement: () => parentRef.current,\n estimateSize: getItemSize,\n overscan,\n });\n\n const virtualItems = virtualizer.getVirtualItems();\n\n // Re-measure cached rows when the resolved row height changes.\n useLayoutEffect(() => {\n virtualizer.measure();\n }, [virtualizer, estimatedItemSize]);\n\n // Inside a menu, the menu focuses its own content on open (and a submenu on keyboard\n // open). Hand that focus to the list so arrow keys reach the rows.\n React.useEffect(() => {\n const root = parentRef.current;\n if (!isInsideMenu || !root) return;\n const content = root.closest<HTMLElement>('[data-radix-menu-content]');\n if (!content) return;\n const handleFocusIn = (event: FocusEvent) => {\n if (event.target === content) root.focus({ preventScroll: true });\n };\n content.addEventListener('focusin', handleFocusIn);\n if (document.activeElement === content) root.focus({ preventScroll: true });\n return () => content.removeEventListener('focusin', handleFocusIn);\n }, [isInsideMenu]);\n\n // Refs for stable handler references\n const onKeyDownRef = React.useRef(onKeyDown);\n const onFocusRef = React.useRef(onFocus);\n onKeyDownRef.current = onKeyDown;\n onFocusRef.current = onFocus;\n const itemsRef = React.useRef(items);\n const onSelectRef = React.useRef(onSelect);\n const closeMenuRef = React.useRef(closeMenu);\n itemsRef.current = items;\n onSelectRef.current = onSelect;\n closeMenuRef.current = closeMenu;\n\n // Choosing a row calls onSelect, then closes the parent menu like a menu item does.\n const selectIndex = React.useCallback((idx: number) => {\n const currentItems = itemsRef.current;\n if (idx < 0 || idx >= currentItems.length) return;\n onSelectRef.current?.(currentItems[idx], idx);\n closeMenuRef.current?.();\n }, []);\n\n const scrollToIndexRef = React.useRef(virtualizer.scrollToIndex);\n scrollToIndexRef.current = virtualizer.scrollToIndex;\n\n const highlightedIndexRef = React.useRef(safeHighlightedIndex);\n highlightedIndexRef.current = safeHighlightedIndex;\n\n // Stable event handlers\n const handleItemMouseEnter = React.useCallback((e: React.MouseEvent<HTMLElement>) => {\n const index = e.currentTarget.dataset.index;\n if (index != null) {\n setHighlightedIndex(Number(index));\n }\n }, []);\n\n const handleItemClick = React.useCallback((e: React.MouseEvent<HTMLElement>) => {\n const index = e.currentTarget.dataset.index;\n if (index != null) selectIndex(Number(index));\n }, [selectIndex]);\n\n // Leaving a row clears its highlight, as a Radix item does on pointer leave.\n const handleItemMouseLeave = React.useCallback((e: React.MouseEvent<HTMLElement>) => {\n const index = Number(e.currentTarget.dataset.index);\n setHighlightedIndex((current) => (current === index ? -1 : current));\n }, []);\n\n // Item-level keyboard handler for Enter/Space activation (satisfies a11y lint rule)\n const handleItemKeyDown = React.useCallback((e: React.KeyboardEvent<HTMLElement>) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n e.stopPropagation();\n const index = e.currentTarget.dataset.index;\n if (index != null) selectIndex(Number(index));\n }\n }, [selectIndex]);\n\n // Keyboard navigation\n const handleKeyDown = React.useCallback((e: React.KeyboardEvent<HTMLDivElement>) => {\n onKeyDownRef.current?.(e);\n if (e.defaultPrevented) return;\n const currentItems = itemsRef.current;\n const currentHighlightedIndex = highlightedIndexRef.current;\n\n switch (e.key) {\n case 'ArrowDown': {\n e.preventDefault();\n const nextIndex =\n currentHighlightedIndex < currentItems.length - 1 ? currentHighlightedIndex + 1 : 0;\n setHighlightedIndex(nextIndex);\n scrollToIndexRef.current(nextIndex, { align: 'auto' });\n break;\n }\n case 'ArrowUp': {\n e.preventDefault();\n const prevIndex =\n currentHighlightedIndex > 0 ? currentHighlightedIndex - 1 : currentItems.length - 1;\n setHighlightedIndex(prevIndex);\n scrollToIndexRef.current(prevIndex, { align: 'auto' });\n break;\n }\n case 'Home': {\n e.preventDefault();\n setHighlightedIndex(0);\n scrollToIndexRef.current(0, { align: 'start' });\n break;\n }\n case 'End': {\n e.preventDefault();\n const lastIndex = currentItems.length - 1;\n setHighlightedIndex(lastIndex);\n scrollToIndexRef.current(lastIndex, { align: 'end' });\n break;\n }\n case 'Enter':\n case ' ': {\n e.preventDefault();\n selectIndex(currentHighlightedIndex);\n break;\n }\n case 'Tab': {\n // Inside a menu, Tab does not leave it. On its own, the list is one tab stop.\n if (isInsideMenu) e.preventDefault();\n break;\n }\n case 'Escape': {\n // Inside a menu, the menu handles Escape and returns focus to its trigger.\n if (!isInsideMenu) e.currentTarget.blur();\n break;\n }\n default: {\n // The parent menu's typeahead would move focus off the list onto one of its items.\n if (isInsideMenu && e.key.length === 1 && !e.ctrlKey && !e.altKey && !e.metaKey) {\n e.stopPropagation();\n }\n }\n }\n }, [selectIndex, isInsideMenu]);\n\n // Keyboard focus on the list highlights the first row when none is highlighted.\n const handleFocus = React.useCallback((e: React.FocusEvent<HTMLDivElement>) => {\n onFocusRef.current?.(e);\n if (e.target !== e.currentTarget) return;\n if (highlightedIndexRef.current < 0 && itemsRef.current.length > 0) setHighlightedIndex(0);\n }, []);\n\n // Item ID generator\n const getItemId = React.useCallback(\n (index: number) => `${menuId}-item-${index}`,\n [menuId],\n );\n\n // Memoize styles\n const rootStyle = React.useMemo(\n () => ({\n overflow: 'auto' as const,\n position: 'relative' as const,\n ...style,\n }),\n [style],\n );\n\n const totalSize = virtualizer.getTotalSize();\n const viewportStyle = React.useMemo(\n () => ({\n height: `${totalSize}px`,\n width: '100%' as const,\n position: 'relative' as const,\n }),\n [totalSize],\n );\n\n return (\n <div\n {...rootProps}\n ref={setRootRef}\n role={isInsideMenu ? 'group' : 'menu'}\n aria-activedescendant={safeHighlightedIndex >= 0 ? getItemId(safeHighlightedIndex) : undefined}\n tabIndex={0}\n onKeyDown={handleKeyDown}\n onFocus={handleFocus}\n className={classNames(\n 'kui-VirtualMenuRoot',\n // On its own, the list draws menu rows at its own size (virtual-menu.css).\n !isInsideMenu && `kui-r-size-${sizeProp ?? '2'}`,\n className,\n )}\n style={rootStyle}\n >\n <div className=\"kui-VirtualMenuViewport\" style={viewportStyle}>\n {virtualItems.map((virtualRow) => {\n const item = items[virtualRow.index];\n const index = virtualRow.index;\n const isHighlighted = safeHighlightedIndex === index;\n\n const itemStyle: React.CSSProperties = {\n height: virtualRow.size,\n transform: `translateY(${virtualRow.start}px)`,\n };\n\n const commonProps = {\n id: getItemId(index),\n isHighlighted,\n style: itemStyle,\n // The list holds focus and points aria-activedescendant at the row, so it is the only tab stop.\n tabIndex: -1,\n 'data-highlighted': isHighlighted ? true as const : undefined,\n 'data-index': index,\n 'aria-setsize': items.length,\n 'aria-posinset': index + 1,\n onMouseEnter: handleItemMouseEnter,\n onMouseLeave: handleItemMouseLeave,\n onClick: handleItemClick,\n onKeyDown: handleItemKeyDown,\n };\n\n // Use renderItem if provided, otherwise use SimpleItem with itemLabel\n if (RenderItem) {\n return (\n <RenderItem\n key={virtualRow.key}\n item={item}\n index={index}\n {...commonProps}\n />\n );\n }\n\n return (\n <SimpleItem\n key={virtualRow.key}\n label={getLabel!(item)}\n {...commonProps}\n />\n );\n })}\n </div>\n </div>\n );\n}\n\nconst VirtualMenuRoot = React.forwardRef(VirtualMenuRootInner) as (<T>(\n props: VirtualMenuProps<T> & React.RefAttributes<HTMLDivElement>,\n) => React.ReactElement) & { displayName?: string };\nVirtualMenuRoot.displayName = 'VirtualMenu';\n\n// ============================================================================\n// VirtualMenu.Item Component (for custom renderItem usage)\n// ============================================================================\n\ninterface VirtualMenuItemProps extends React.ComponentPropsWithoutRef<'div'> {\n children: React.ReactNode;\n /** Data attribute for highlight styling */\n 'data-highlighted'?: true | undefined;\n /** Data attribute for event delegation */\n 'data-index'?: number;\n}\n\nconst VirtualMenuItemInner = React.forwardRef<HTMLDivElement, VirtualMenuItemProps>(\n ({ className, children, ...props }, forwardedRef) => {\n return (\n <div\n ref={forwardedRef}\n role=\"menuitem\"\n className={classNames('kui-reset', 'kui-BaseMenuItem', 'kui-VirtualMenuItem', className)}\n {...props}\n >\n {children}\n </div>\n );\n },\n);\n\nVirtualMenuItemInner.displayName = 'VirtualMenu.Item';\n\n// Style is compared by height and transform; every other prop shallowly.\nconst VirtualMenuItem = React.memo(VirtualMenuItemInner, areRowPropsEqual);\n\n// ============================================================================\n// Exports\n// ============================================================================\n\nconst VirtualMenu = Object.assign(VirtualMenuRoot, {\n Item: VirtualMenuItem,\n});\n\nexport { VirtualMenu };\nexport type { VirtualMenuProps, VirtualMenuItemProps, VirtualMenuRenderItemProps };\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "classNames", "useVirtualizer", "useLayoutEffect", "areRowPropsEqual", "prev", "next", "prevKeys", "key", "SimpleItem", "label", "_isHighlighted", "id", "style", "tabIndex", "dataHighlighted", "dataIndex", "setSize", "posInSet", "onMouseEnter", "onMouseLeave", "onClick", "onKeyDown", "classNames", "useMeasuredRowHeight", "rootRef", "enabled", "size", "height", "setHeight", "useLayoutEffect", "root", "probe", "measured", "VirtualMenuRootInner", "items", "itemLabel", "RenderItem", "sizeProp", "estimatedItemSizeProp", "overscan", "onSelect", "className", "onFocus", "rootProps", "forwardedRef", "menuId", "parentRef", "highlightedIndex", "setHighlightedIndex", "isInsideMenu", "contextSize", "contextItemHeight", "useMenuContext", "closeMenu", "useMenuClose", "setRootRef", "node", "measuredItemHeight", "estimatedItemSize", "getMenuItemHeight", "getLabel", "item", "safeHighlightedIndex", "getItemSize", "virtualizer", "useVirtualizer", "virtualItems", "content", "handleFocusIn", "event", "onKeyDownRef", "onFocusRef", "itemsRef", "onSelectRef", "closeMenuRef", "selectIndex", "idx", "currentItems", "scrollToIndexRef", "highlightedIndexRef", "handleItemMouseEnter", "index", "handleItemClick", "handleItemMouseLeave", "current", "handleItemKeyDown", "handleKeyDown", "currentHighlightedIndex", "nextIndex", "prevIndex", "lastIndex", "handleFocus", "getItemId", "rootStyle", "totalSize", "viewportStyle", "virtualRow", "isHighlighted", "itemStyle", "commonProps", "VirtualMenuRoot", "VirtualMenuItemInner", "children", "props", "VirtualMenuItem", "VirtualMenu"]
7
+ }
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ import{a as t}from"./chunk-YZZMQ457.js";import{c as e}from"./chunk-OKQAVYW4.js";import*as o from"react";import a from"classnames";import{Slot as f}from"radix-ui";var k=o.forwardRef((p,r)=>{let{asChild:s,className:c,color:l,...m}=e(p,t),u=s?f.Root:"blockquote";return o.createElement(u,{"data-accent-color":l,...m,ref:r,className:a("kui-Text","kui-Blockquote",c)})});k.displayName="Blockquote";export{k as a};
3
+ //# sourceMappingURL=chunk-D4P7332M.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/blockquote.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\nimport { Slot } from 'radix-ui';\n\nimport { blockquotePropDefs } from './blockquote.props.js';\nimport { extractProps } from '../helpers/extract-props.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\n\ntype BlockquoteElement = React.ElementRef<'blockquote'>;\ntype BlockQuoteOwnProps = GetPropDefTypes<typeof blockquotePropDefs>;\ninterface BlockquoteProps\n extends ComponentPropsWithout<'blockquote', RemovedProps>,\n BlockQuoteOwnProps {}\nconst Blockquote = React.forwardRef<BlockquoteElement, BlockquoteProps>((props, forwardedRef) => {\n // Only Blockquote's own props style it. It wears Text's classes, so it reads like Text.\n const { asChild, className, color, ...blockquoteProps } = extractProps(props, blockquotePropDefs);\n const Comp = asChild ? Slot.Root : 'blockquote';\n return (\n <Comp\n data-accent-color={color}\n {...blockquoteProps}\n ref={forwardedRef}\n className={classNames('kui-Text', 'kui-Blockquote', className)}\n />\n );\n});\nBlockquote.displayName = 'Blockquote';\n\nexport { Blockquote };\nexport type { BlockquoteProps };\n"],
5
+ "mappings": ";gFAAA,UAAYA,MAAW,QACvB,OAAOC,MAAgB,aACvB,OAAS,QAAAC,MAAY,WAarB,IAAMC,EAAmB,aAA+C,CAACC,EAAOC,IAAiB,CAE/F,GAAM,CAAE,QAAAC,EAAS,UAAAC,EAAW,MAAAC,EAAO,GAAGC,CAAgB,EAAIC,EAAaN,EAAOO,CAAkB,EAC1FC,EAAON,EAAUO,EAAK,KAAO,aACnC,OACE,gBAACD,EAAA,CACC,oBAAmBJ,EAClB,GAAGC,EACJ,IAAKJ,EACL,UAAWS,EAAW,WAAY,iBAAkBP,CAAS,EAC/D,CAEJ,CAAC,EACDJ,EAAW,YAAc",
6
+ "names": ["React", "classNames", "Slot", "Blockquote", "props", "forwardedRef", "asChild", "className", "color", "blockquoteProps", "extractProps", "blockquotePropDefs", "Comp", "Slot", "classNames"]
7
+ }
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ import*as t from"react";import{useLayoutEffect as h}from"radix-ui/internal";function q(e,s="horizontal"){if(e==null)return;if(typeof e=="number"&&Number.isFinite(e))return e;let i=String(e).trim();if(!i)return;if(i.endsWith("px"))return Number.parseFloat(i);if(i.endsWith("rem")){let l=Number.parseFloat(getComputedStyle(document.documentElement).fontSize||"16")||16;return Number.parseFloat(i)*l}if(i.endsWith("%")){let l=Number.parseFloat(i),a=s==="horizontal"?document.documentElement.clientWidth||window.innerWidth||0:document.documentElement.clientHeight||window.innerHeight||0;return l/100*a}let c=Number.parseFloat(i);return Number.isFinite(c)?c:void 0}var N=(e,s,i)=>Math.max(s??e,Math.min(i??e,e));function D(e){let{name:s,elementRef:i,cssVarName:c,orientation:l,minSize:a,maxSize:f,resizable:x,size:g,defaultSize:C,paneId:S,persistence:I}=e,o=t.useRef(e);h(()=>{o.current=e});let b=t.useRef(null),P=t.useRef(0);t.useEffect(()=>()=>{b.current&&clearTimeout(b.current)},[]);let p=t.useCallback((n,r)=>{let{onSizeChange:u,sizeUpdate:d,sizeUpdateMs:R}=o.current;if(u){if(d==="debounce"){b.current&&clearTimeout(b.current),b.current=setTimeout(()=>{b.current=null,o.current.onSizeChange?.(n,r)},R);return}if(d==="throttle"){let V=Date.now();if(V-P.current<R)return;P.current=V}u(n,r)}},[]),y=t.useCallback(n=>q(n,l==="vertical"?"horizontal":"vertical"),[l]),w=t.useRef(!1),m=t.useCallback((n,r)=>{let u=i.current;if(u){u.style.setProperty(c,`${n}px`);for(let d of u.querySelectorAll(":scope > .kui-ShellResizer"))d.setAttribute("aria-valuenow",String(Math.round(n)));r&&(w.current=!0)}},[i,c]);h(()=>{w.current||m(e.expandedSize,!1)},[e.expandedSize,m]),h(()=>{if(g!==void 0||C===void 0)return;let n=y(C);if(typeof n!="number"||!Number.isFinite(n))return;let r=N(n,a,f);m(r,!0),p(r,{reason:"init"})},[]),h(()=>{if(g===void 0||o.current.overlayingNow())return;let n=y(g);if(typeof n!="number"||!Number.isFinite(n))return;let r=N(n,a,f);m(r,!0),p(r,{reason:"controlled"})},[g,a,f,e.overlaying,y,m,p]);let T=I!==void 0,z=t.useMemo(()=>{if(T)return{load:()=>o.current.persistence?.load?.(),save:r=>o.current.persistence?.save?.(r)};if(!S)return;let n=`kookie-ui:shell:${s}:${S}`;return{load:()=>{if(!(typeof window>"u"))try{let r=window.localStorage.getItem(n);return r?Number(r):void 0}catch{return}},save:r=>{if(!(typeof window>"u"))try{window.localStorage.setItem(n,String(r))}catch{}}}},[s,S,T]);h(()=>{if(!x||!z?.load||o.current.overlayingNow())return;let n=!0,r=d=>{if(!n||typeof d!="number"||!Number.isFinite(d))return;let R=N(d,a,f);m(R,!0),o.current.onResize?.(R)},u=z.load();return u instanceof Promise?u.then(r).catch(d=>{}):r(u),()=>{n=!1}},[x,z,e.overlaying,m,a,f,s]);let E=t.useCallback(n=>o.current.onResize?.(n),[]),v=t.useCallback(n=>{w.current=!0,o.current.onResizeStart?.(n)},[]),k=t.useCallback(n=>{o.current.onResizeEnd?.(n),p(n,{reason:"resize"}),z?.save?.(n)},[p,z]),M=t.useCallback(()=>o.current.requestCollapse(),[]),F=t.useCallback(()=>o.current.requestToggle(),[]);return t.useMemo(()=>({containerRef:i,controls:e.elementId,cssVarName:c,minSize:a,maxSize:f,defaultSize:e.expandedSize,orientation:l,edge:e.edge,growth:e.growth,onResize:E,onResizeStart:v,onResizeEnd:k,target:s,collapsible:e.collapsible,snapPoints:e.snapPoints,snapTolerance:e.snapTolerance??8,collapseThreshold:e.collapseThreshold,requestCollapse:M,requestToggle:F}),[i,e.elementId,c,a,f,e.expandedSize,l,e.edge,e.growth,E,v,k,s,e.collapsible,e.snapPoints,e.snapTolerance,e.collapseThreshold,M,F])}function H(e,s){let i=t.Children.toArray(e),c=i.filter(a=>t.isValidElement(a)&&a.type===s),l=i.filter(a=>!(t.isValidElement(a)&&a.type===s));return{handles:c,content:l}}export{D as a,H as b};
3
+ //# sourceMappingURL=chunk-DI7RUMLO.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/_internal/shell-resizable.tsx", "../../src/helpers/normalize-to-px.ts"],
4
+ "sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport { useLayoutEffect } from 'radix-ui/internal';\nimport { normalizeToPx } from '../../helpers/normalize-to-px.js';\nimport type { PaneName, PaneSizePersistence } from '../shell.types.js';\nimport type { PaneResizeContextValue } from './shell-resize.js';\n\nexport type SizeChangeMeta = { reason: 'init' | 'resize' | 'controlled' };\n\nexport type ResizableOptions = {\n name: PaneName;\n /** The pane's element id, which the handle names in `aria-controls`. */\n elementId: string;\n elementRef: React.RefObject<HTMLElement | null>;\n cssVarName: string;\n orientation: 'vertical' | 'horizontal';\n edge: 'start' | 'end';\n growth: (isRtl: boolean) => 1 | -1;\n expandedSize: number;\n minSize: number;\n maxSize: number;\n resizable: boolean;\n collapsible: boolean;\n size: number | string | undefined;\n defaultSize: number | string | undefined;\n onSizeChange: ((size: number, meta: SizeChangeMeta) => void) | undefined;\n sizeUpdate: 'throttle' | 'debounce' | undefined;\n sizeUpdateMs: number;\n onResize: ((size: number) => void) | undefined;\n onResizeStart: ((size: number) => void) | undefined;\n onResizeEnd: ((size: number) => void) | undefined;\n snapPoints: number[] | undefined;\n snapTolerance: number | undefined;\n collapseThreshold: number | undefined;\n paneId: string | undefined;\n persistence: PaneSizePersistence | undefined;\n /** Whether the pane is presented as an overlay right now. An overlay keeps its designed size and persists nothing. */\n overlaying: boolean;\n /** The same question asked at effect time, for a pane whose presentation is learnt after its first render. */\n overlayingNow: () => boolean;\n requestCollapse: () => void;\n requestToggle: () => void;\n};\n\n/**\n * Clamps to [min, max]. When the two cross (an app passing a maximum computed\n * from a narrow window below its fixed minimum), the minimum wins, as it did\n * in 0.7.\n */\nconst clampTo = (value: number, min: number | undefined, max: number | undefined) => Math.max(min ?? value, Math.min(max ?? value, value));\n\n/** Everything a resizable pane shares: size props, persistence, and the handle's context. */\nexport function useResizablePane(options: ResizableOptions): PaneResizeContextValue {\n const { name, elementRef, cssVarName, orientation, minSize, maxSize, resizable, size, defaultSize, paneId, persistence } = options;\n\n // The latest callbacks, so the size emitter does not change identity when a\n // consumer passes an inline function. A controlled `size` is reported again\n // only when the size, the minimum or the maximum changes.\n const latest = React.useRef(options);\n useLayoutEffect(() => {\n latest.current = options;\n });\n\n const debounceRef = React.useRef<ReturnType<typeof setTimeout> | null>(null);\n const throttleRef = React.useRef(0);\n React.useEffect(\n () => () => {\n if (debounceRef.current) clearTimeout(debounceRef.current);\n },\n [],\n );\n const emitSizeChange = React.useCallback((value: number, meta: SizeChangeMeta) => {\n const { onSizeChange, sizeUpdate, sizeUpdateMs } = latest.current;\n if (!onSizeChange) return;\n if (sizeUpdate === 'debounce') {\n if (debounceRef.current) clearTimeout(debounceRef.current);\n debounceRef.current = setTimeout(() => {\n debounceRef.current = null;\n latest.current.onSizeChange?.(value, meta);\n }, sizeUpdateMs);\n return;\n }\n if (sizeUpdate === 'throttle') {\n const now = Date.now();\n if (now - throttleRef.current < sizeUpdateMs) return;\n throttleRef.current = now;\n }\n onSizeChange(value, meta);\n }, []);\n\n const toPx = React.useCallback((value: number | string | undefined) => normalizeToPx(value, orientation === 'vertical' ? 'horizontal' : 'vertical'), [orientation]);\n\n /**\n * The one way a size reaches the pane: the size variable, and the value\n * every handle of this pane announces. Once anything but `expandedSize` has\n * written a size (a default, a controlled value, a persisted value or a\n * resize), the pane owns that size and a new `expandedSize` leaves it alone.\n */\n const ownedRef = React.useRef(false);\n const writeSize = React.useCallback(\n (value: number, own: boolean) => {\n const el = elementRef.current;\n if (!el) return;\n el.style.setProperty(cssVarName, `${value}px`);\n for (const handle of el.querySelectorAll(':scope > .kui-ShellResizer')) handle.setAttribute('aria-valuenow', String(Math.round(value)));\n if (own) ownedRef.current = true;\n },\n [elementRef, cssVarName],\n );\n\n // expandedSize: the size until something else sets one. Declared first, so\n // the effects below win on mount.\n useLayoutEffect(() => {\n if (!ownedRef.current) writeSize(options.expandedSize, false);\n }, [options.expandedSize, writeSize]);\n\n // defaultSize: applied once, on mount.\n useLayoutEffect(() => {\n if (size !== undefined || defaultSize === undefined) return;\n const px = toPx(defaultSize);\n if (typeof px !== 'number' || !Number.isFinite(px)) return;\n const clamped = clampTo(px, minSize, maxSize);\n writeSize(clamped, true);\n emitSizeChange(clamped, { reason: 'init' });\n // An uncontrolled initial value: applied on mount and never re-applied.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Controlled size. A drag stands until the app passes a different value.\n // Not while the pane is an overlay: an overlay keeps its designed size, and\n // an app's frame-sized limits (a maximum taken from the window) would\n // otherwise squeeze the drawer and report the squeezed size back. The size\n // is applied again when the pane returns to the frame.\n useLayoutEffect(() => {\n if (size === undefined || latest.current.overlayingNow()) return;\n const px = toPx(size);\n if (typeof px !== 'number' || !Number.isFinite(px)) return;\n const clamped = clampTo(px, minSize, maxSize);\n writeSize(clamped, true);\n emitSizeChange(clamped, { reason: 'controlled' });\n }, [size, minSize, maxSize, options.overlaying, toPx, writeSize, emitSizeChange]);\n\n // A persistence adapter from `paneId` when none is given. A given one is read through\n // `latest`, so an inline object (the documented shape) does not reload the size every render.\n const hasPersistence = persistence !== undefined;\n const adapter = React.useMemo<PaneSizePersistence | undefined>(() => {\n if (hasPersistence) {\n return {\n load: () => latest.current.persistence?.load?.(),\n save: (value: number) => latest.current.persistence?.save?.(value),\n };\n }\n if (!paneId) return undefined;\n const key = `kookie-ui:shell:${name}:${paneId}`;\n return {\n load: () => {\n if (typeof window === 'undefined') return undefined;\n try {\n const stored = window.localStorage.getItem(key);\n return stored ? Number(stored) : undefined;\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') console.warn(`Shell.${name}: failed to load persisted size`, err);\n return undefined;\n }\n },\n save: (value: number) => {\n if (typeof window === 'undefined') return;\n try {\n window.localStorage.setItem(key, String(value));\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') console.warn(`Shell.${name}: failed to save persisted size`, err);\n }\n },\n };\n }, [name, paneId, hasPersistence]);\n\n // Persisted size, loaded in a layout effect and clamped, so a reload does\n // not paint the default and then jump. Only where the pane is in the frame:\n // an overlay keeps its designed size.\n useLayoutEffect(() => {\n if (!resizable || !adapter?.load || latest.current.overlayingNow()) return undefined;\n let mounted = true;\n const apply = (value: number | undefined) => {\n if (!mounted || typeof value !== 'number' || !Number.isFinite(value)) return;\n const clamped = clampTo(value, minSize, maxSize);\n writeSize(clamped, true);\n latest.current.onResize?.(clamped);\n };\n const loaded = adapter.load();\n if (loaded instanceof Promise) {\n loaded.then(apply).catch((err) => {\n if (process.env.NODE_ENV !== 'production') console.warn(`Shell.${name}: failed to load persisted size`, err);\n });\n } else {\n apply(loaded);\n }\n return () => {\n mounted = false;\n };\n }, [resizable, adapter, options.overlaying, writeSize, minSize, maxSize, name]);\n\n const onResize = React.useCallback((value: number) => latest.current.onResize?.(value), []);\n const onResizeStart = React.useCallback((value: number) => {\n // A resize makes the size the user's: a new expandedSize no longer moves it.\n ownedRef.current = true;\n latest.current.onResizeStart?.(value);\n }, []);\n const onResizeEnd = React.useCallback(\n (value: number) => {\n latest.current.onResizeEnd?.(value);\n emitSizeChange(value, { reason: 'resize' });\n adapter?.save?.(value);\n },\n [emitSizeChange, adapter],\n );\n const requestCollapse = React.useCallback(() => latest.current.requestCollapse(), []);\n const requestToggle = React.useCallback(() => latest.current.requestToggle(), []);\n\n return React.useMemo(\n () => ({\n containerRef: elementRef,\n controls: options.elementId,\n cssVarName,\n minSize,\n maxSize,\n defaultSize: options.expandedSize,\n orientation,\n edge: options.edge,\n growth: options.growth,\n onResize,\n onResizeStart,\n onResizeEnd,\n target: name,\n collapsible: options.collapsible,\n snapPoints: options.snapPoints,\n snapTolerance: options.snapTolerance ?? 8,\n collapseThreshold: options.collapseThreshold,\n requestCollapse,\n requestToggle,\n }),\n [\n elementRef,\n options.elementId,\n cssVarName,\n minSize,\n maxSize,\n options.expandedSize,\n orientation,\n options.edge,\n options.growth,\n onResize,\n onResizeStart,\n onResizeEnd,\n name,\n options.collapsible,\n options.snapPoints,\n options.snapTolerance,\n options.collapseThreshold,\n requestCollapse,\n requestToggle,\n ],\n );\n}\n\n/** Splits a pane's children into its handles and the rest. */\nexport function splitHandles(children: React.ReactNode, handleType: React.ElementType) {\n const all = React.Children.toArray(children);\n const handles = all.filter((el) => React.isValidElement(el) && el.type === handleType) as React.ReactElement[];\n const content = all.filter((el) => !(React.isValidElement(el) && el.type === handleType));\n return { handles, content };\n}\n", "/**\n * Normalize CSS length values to pixels.\n * Supports: px, rem, %, and bare numbers.\n *\n * @param value - The value to normalize (number, string, or undefined)\n * @param orientation - 'horizontal' for width-based % or 'vertical' for height-based %\n * @returns The value in pixels, or undefined if invalid\n */\nexport function normalizeToPx(\n value: number | string | undefined,\n orientation: 'horizontal' | 'vertical' = 'horizontal',\n): number | undefined {\n if (value == null) return undefined;\n if (typeof value === 'number' && Number.isFinite(value)) return value;\n\n const str = String(value).trim();\n if (!str) return undefined;\n\n // px: direct parse\n if (str.endsWith('px')) return Number.parseFloat(str);\n\n // rem: multiply by root font size\n if (str.endsWith('rem')) {\n const rem = Number.parseFloat(getComputedStyle(document.documentElement).fontSize || '16') || 16;\n return Number.parseFloat(str) * rem;\n }\n\n // %: calculate based on viewport dimension\n if (str.endsWith('%')) {\n const pct = Number.parseFloat(str);\n const base =\n orientation === 'horizontal'\n ? document.documentElement.clientWidth || window.innerWidth || 0\n : document.documentElement.clientHeight || window.innerHeight || 0;\n return (pct / 100) * base;\n }\n\n // Bare number-like string\n const n = Number.parseFloat(str);\n return Number.isFinite(n) ? n : undefined;\n}\n\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "useLayoutEffect", "normalizeToPx", "value", "orientation", "str", "rem", "pct", "base", "n", "clampTo", "value", "min", "max", "useResizablePane", "options", "name", "elementRef", "cssVarName", "orientation", "minSize", "maxSize", "resizable", "size", "defaultSize", "paneId", "persistence", "latest", "useLayoutEffect", "debounceRef", "throttleRef", "emitSizeChange", "meta", "onSizeChange", "sizeUpdate", "sizeUpdateMs", "now", "toPx", "normalizeToPx", "ownedRef", "writeSize", "own", "el", "handle", "px", "clamped", "hasPersistence", "adapter", "key", "stored", "mounted", "apply", "loaded", "err", "onResize", "onResizeStart", "onResizeEnd", "requestCollapse", "requestToggle", "splitHandles", "children", "handleType", "all", "handles", "content"]
7
+ }
@@ -1,2 +1,3 @@
1
- import{b as s}from"./chunk-KRJTW535.js";import{a as o}from"./chunk-NZJGC6ZW.js";import{c as e}from"./chunk-CUNKWFKA.js";var r=["1","2","3","4"],i=["raised","soft","surface","outline","ghost"],p={...o,size:{type:"enum",className:"kui-r-size",values:r,default:"2",responsive:!0},variant:{type:"enum",className:"kui-variant",values:i,default:"raised"},...e,...s},c={...o},f={...o},d={...o},l={...o};export{p as a,c as b,f as c,d,l as e};
2
- //# sourceMappingURL=chunk-OY5NT7VT.js.map
1
+ "use client";
2
+ import{b as s}from"./chunk-XU74PNM2.js";import{a as o}from"./chunk-CLJ6SEGP.js";import{c as e}from"./chunk-HBWBPBSA.js";var r=["1","2","3","4"],i=["raised","soft","surface","outline","ghost"],p={...o,size:{type:"enum",className:"kui-r-size",values:r,default:"2",responsive:!0},variant:{type:"enum",className:"kui-variant",values:i,default:"raised"},...e,...s},c={...o},f={...o},d={...o},l={...o};export{p as a,c as b,f as c,d,l as e};
3
+ //# sourceMappingURL=chunk-DVXDFCCV.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/components/accordion.props.tsx"],
4
4
  "sourcesContent": ["import { asChildPropDef } from '../props/as-child.prop.js';\nimport { colorPropDef } from '../props/color.prop.js';\nimport { radiusPropDef } from '../props/radius.prop.js';\n\nimport type { PropDef } from '../props/prop-def.js';\n\nconst sizes = ['1', '2', '3', '4'] as const;\nconst variants = ['raised', 'soft', 'surface', 'outline', 'ghost'] as const;\n\nconst accordionRootPropDefs = {\n ...asChildPropDef,\n size: { type: 'enum', className: 'kui-r-size', values: sizes, default: '2', responsive: true },\n variant: { type: 'enum', className: 'kui-variant', values: variants, default: 'raised' },\n ...colorPropDef,\n ...radiusPropDef,\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n variant: PropDef<(typeof variants)[number]>;\n};\n\nconst accordionItemPropDefs = {\n ...asChildPropDef,\n} satisfies {\n asChild: PropDef<boolean>;\n};\n\nconst accordionHeaderPropDefs = {\n ...asChildPropDef,\n} satisfies {\n asChild: PropDef<boolean>;\n};\n\nconst accordionTriggerPropDefs = {\n ...asChildPropDef,\n} satisfies {\n asChild: PropDef<boolean>;\n};\n\nconst accordionContentPropDefs = {\n ...asChildPropDef,\n} satisfies {\n asChild: PropDef<boolean>;\n};\n\nexport {\n accordionRootPropDefs,\n accordionItemPropDefs,\n accordionHeaderPropDefs,\n accordionTriggerPropDefs,\n accordionContentPropDefs,\n};\n\nexport type AccordionRootOwnProps = {\n size?: (typeof sizes)[number];\n variant?: (typeof variants)[number];\n color?: string;\n radius?: string;\n};\n\nexport type AccordionItemOwnProps = {\n asChild?: boolean;\n};\n\nexport type AccordionHeaderOwnProps = {\n asChild?: boolean;\n};\n\nexport type AccordionTriggerOwnProps = {\n asChild?: boolean;\n};\n\nexport type AccordionContentOwnProps = {\n asChild?: boolean;\n};\n"],
5
- "mappings": "wHAMA,IAAMA,EAAQ,CAAC,IAAK,IAAK,IAAK,GAAG,EAC3BC,EAAW,CAAC,SAAU,OAAQ,UAAW,UAAW,OAAO,EAE3DC,EAAwB,CAC5B,GAAGC,EACH,KAAM,CAAE,KAAM,OAAQ,UAAW,aAAc,OAAQH,EAAO,QAAS,IAAK,WAAY,EAAK,EAC7F,QAAS,CAAE,KAAM,OAAQ,UAAW,cAAe,OAAQC,EAAU,QAAS,QAAS,EACvF,GAAGG,EACH,GAAGC,CACL,EAKMC,EAAwB,CAC5B,GAAGH,CACL,EAIMI,EAA0B,CAC9B,GAAGJ,CACL,EAIMK,EAA2B,CAC/B,GAAGL,CACL,EAIMM,EAA2B,CAC/B,GAAGN,CACL",
5
+ "mappings": ";wHAMA,IAAMA,EAAQ,CAAC,IAAK,IAAK,IAAK,GAAG,EAC3BC,EAAW,CAAC,SAAU,OAAQ,UAAW,UAAW,OAAO,EAE3DC,EAAwB,CAC5B,GAAGC,EACH,KAAM,CAAE,KAAM,OAAQ,UAAW,aAAc,OAAQH,EAAO,QAAS,IAAK,WAAY,EAAK,EAC7F,QAAS,CAAE,KAAM,OAAQ,UAAW,cAAe,OAAQC,EAAU,QAAS,QAAS,EACvF,GAAGG,EACH,GAAGC,CACL,EAKMC,EAAwB,CAC5B,GAAGH,CACL,EAIMI,EAA0B,CAC9B,GAAGJ,CACL,EAIMK,EAA2B,CAC/B,GAAGL,CACL,EAIMM,EAA2B,CAC/B,GAAGN,CACL",
6
6
  "names": ["sizes", "variants", "accordionRootPropDefs", "asChildPropDef", "colorPropDef", "radiusPropDef", "accordionItemPropDefs", "accordionHeaderPropDefs", "accordionTriggerPropDefs", "accordionContentPropDefs"]
7
7
  }
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ import{a as te}from"./chunk-TGRHRMQI.js";import{b as re,c as G}from"./chunk-YIKLO2XL.js";import{c as B,e as oe,g as y,h as O,i as ne}from"./chunk-CV7QQTI3.js";import{a as L}from"./chunk-RVPLXLRA.js";import{b as A,c as F,d as S,e as j,f as H}from"./chunk-GKDGNPBD.js";import{c as U}from"./chunk-2IUGM657.js";import{b as g,c as k,d as Y,e as q,f as X}from"./chunk-I6SMGWS5.js";import{b as h,c as $,d as T,e as x}from"./chunk-XL5OHW6Z.js";import{c as I}from"./chunk-OKQAVYW4.js";import{a as M,b as v,c as J,d as Q,e as E,f as Z,g as ee,h as N}from"./chunk-5JYSYTHA.js";import{a as he}from"./chunk-VQPANPMI.js";var Oe={};he(Oe,{CheckboxItem:()=>Me,Content:()=>de,Group:()=>me,Item:()=>ce,Label:()=>le,RadioGroup:()=>we,RadioItem:()=>De,Root:()=>ue,Separator:()=>Re,Sub:()=>fe,SubContent:()=>be,SubTrigger:()=>Pe,Trigger:()=>se,TriggerIcon:()=>ge});import*as e from"react";import l from"classnames";import{DropdownMenu as s,Slot as _}from"radix-ui";import{useCallbackRef as ie}from"radix-ui/internal";var ae=e.createContext(!1),ue=o=>{let{open:n,defaultOpen:t=!1,onOpenChange:u}=o,[i,r]=e.useState(t),a=n??i,c=ie(u),p=e.useCallback(w=>{r(w),c(w)},[c]),m=e.useCallback(()=>p(!1),[p]);return e.createElement(ae.Provider,{value:a},e.createElement(oe,{value:m},e.createElement(s.Root,{...o,open:a,onOpenChange:p})))};ue.displayName="DropdownMenu.Root";var se=e.forwardRef(({children:o,...n},t)=>e.createElement(s.Trigger,{...n,ref:t,asChild:!0},te(o)));se.displayName="DropdownMenu.Trigger";var z=e.createContext({}),Te={ltr:"ArrowLeft",rtl:"ArrowRight"},xe={ltr:"ArrowRight",rtl:"ArrowLeft"};function Ee(o){return o instanceof HTMLElement&&(o.isContentEditable||o.tagName==="INPUT"||o.tagName==="TEXTAREA")}function pe(o){return o?.closest("[dir]")?.getAttribute("dir")==="rtl"?"rtl":"ltr"}var de=e.forwardRef((o,n)=>{let t=U(o,g.size),u=re(),{size:i=g.size.default}=t,{className:r,children:a,color:c,container:p,forceMount:m,submenuBehavior:w,virtualized:d=!1,onEscapeKeyDown:P,onKeyDown:b,...f}=I(t,g),R=c||u.accentColor,K=h(w,"cascade"),V=K==="drill-down",ye=e.useContext(ae),C=J(),Ie=D=>{P?.(D),!(D.defaultPrevented||!V||C.getDepth()===0)&&(D.preventDefault(),C.pop("keyboard"))},Se=D=>{b?.(D),!(D.defaultPrevented||!V||C.getDepth()===0)&&(Ee(D.target)||D.key===Te[pe(D.currentTarget)]&&(D.preventDefault(),C.pop("keyboard")))},ke=e.useMemo(()=>({size:i,color:R}),[i,R]),W=e.createElement(B,{size:i},e.createElement(z.Provider,{value:ke},e.createElement(Q,{store:C,behavior:K,open:ye},a)));return e.createElement(s.Portal,{container:p,forceMount:m},e.createElement(G,{asChild:!0},e.createElement(s.Content,{"data-accent-color":R,align:"start",sideOffset:4,collisionPadding:10,...f,onEscapeKeyDown:Ie,onKeyDown:Se,asChild:!1,ref:n,className:l("kui-PopperContent","kui-BaseMenuContent","kui-variant-soft","kui-DropdownMenuContent",r)},d?e.createElement("div",{className:l("kui-BaseMenuViewport","kui-DropdownMenuViewport","kui-virtualized")},W):e.createElement(L,{type:"auto",scrollbars:"vertical"},e.createElement("div",{className:l("kui-BaseMenuViewport","kui-DropdownMenuViewport")},W)))))});de.displayName="DropdownMenu.Content";var le=e.forwardRef(({className:o,id:n,...t},u)=>{let i=e.useContext(M),r=ne(n,i);return i?e.createElement(s.Label,{...t,id:r,asChild:!1,ref:u,className:l("kui-BaseMenuLabel","kui-DropdownMenuLabel",o)}):null});le.displayName="DropdownMenu.Label";var ce=e.forwardRef((o,n)=>{let{className:t,children:u,color:i=Y.color.default,shortcut:r,...a}=o;return e.useContext(M)?e.createElement(s.Item,{"data-accent-color":i,"aria-keyshortcuts":r?T(r):void 0,...a,ref:n,className:l("kui-reset","kui-BaseMenuItem","kui-DropdownMenuItem",t)},e.createElement(_.Slottable,null,u),r&&e.createElement(x,{shortcut:r,className:"kui-DropdownMenuShortcut"})):null});ce.displayName="DropdownMenu.Item";var me=e.forwardRef(({className:o,"aria-labelledby":n,...t},u)=>{let[i,r]=O(n),a=e.useContext(M);return e.createElement(y,{value:r},e.createElement(s.Group,{...a?{"aria-labelledby":i}:{role:"none"},...t,asChild:!1,ref:u,className:l("kui-BaseMenuGroup","kui-DropdownMenuGroup",o)}))});me.displayName="DropdownMenu.Group";var we=e.forwardRef(({className:o,"aria-labelledby":n,...t},u)=>{let[i,r]=O(n),a=e.useContext(M);return e.createElement(y,{value:r},e.createElement(s.RadioGroup,{...a?{"aria-labelledby":i}:{role:"none"},...t,asChild:!1,ref:u,className:l("kui-BaseMenuRadioGroup","kui-DropdownMenuRadioGroup",o)}))});we.displayName="DropdownMenu.RadioGroup";var De=e.forwardRef((o,n)=>{let{children:t,className:u,color:i=X.color.default,...r}=o;return e.useContext(M)?e.createElement(s.RadioItem,{...r,asChild:!1,ref:n,"data-accent-color":i,className:l("kui-BaseMenuItem","kui-BaseMenuRadioItem","kui-DropdownMenuItem","kui-DropdownMenuRadioItem",u)},e.createElement(_.Slottable,null,t),e.createElement(s.ItemIndicator,{className:"kui-BaseMenuItemIndicator kui-DropdownMenuItemIndicator"},e.createElement(H,{className:"kui-BaseMenuItemIndicatorIcon kui-DropdownMenuItemIndicatorIcon"}))):null});De.displayName="DropdownMenu.RadioItem";var Me=e.forwardRef((o,n)=>{let{children:t,className:u,shortcut:i,color:r=q.color.default,...a}=o;return e.useContext(M)?e.createElement(s.CheckboxItem,{"aria-keyshortcuts":i?T(i):void 0,...a,asChild:!1,ref:n,"data-accent-color":r,className:l("kui-BaseMenuItem","kui-BaseMenuCheckboxItem","kui-DropdownMenuItem","kui-DropdownMenuCheckboxItem",u)},e.createElement(_.Slottable,null,t),e.createElement(s.ItemIndicator,{className:"kui-BaseMenuItemIndicator kui-DropdownMenuItemIndicator"},e.createElement(A,{className:"kui-BaseMenuItemIndicatorIcon kui-DropdownMenuItemIndicatorIcon"})),i&&e.createElement(x,{shortcut:i,className:"kui-DropdownMenuShortcut"})):null});Me.displayName="DropdownMenu.CheckboxItem";var fe=({label:o="Back",open:n,defaultOpen:t,onOpenChange:u,children:i})=>{let r=v(),a=e.useId(),c=e.useMemo(()=>({id:a,label:o}),[a,o]),p=E(r,a)!=="closed",m=ie(u),w=n!==void 0;e.useLayoutEffect(()=>{if(!(!r||!w))return r.setController(a,m),()=>r.setController(a,null)},[r,w,a,m]),e.useLayoutEffect(()=>{!r||n===void 0||(n&&!r.isOpen(a)?r.open(a,r.takePendingModality(a)):!n&&r.isOpen(a)&&r.close(a,r.takePendingModality(a)))},[r,n,a]);let d=e.useRef(n===void 0&&!!t);e.useLayoutEffect(()=>{r&&d.current?r.open(a):d.current=!1},[]);let P=e.useRef(p);return e.useEffect(()=>{if(!(!r||P.current===p)){if(P.current=p,p&&d.current){d.current=!1;return}n!==void 0&&n===p||m(p)}},[r,p,m,n]),e.createElement(ee.Provider,{value:c},e.createElement(s.Sub,{open:n,defaultOpen:t,onOpenChange:r?void 0:u},i))};fe.displayName="DropdownMenu.Sub";var Pe=e.forwardRef((o,n)=>{let{className:t,children:u,onKeyDown:i,...r}=o,a=v(),c=N(),p=e.useContext(M);if(a&&c){if(!p)return null;let m=d=>{d.preventDefault(),a.push(c.id)},w=d=>{i?.(d),!(d.defaultPrevented||r.disabled)&&d.key===xe[pe(d.currentTarget)]&&(d.preventDefault(),a.push(c.id,"keyboard"))};return e.createElement(s.Item,{...r,"data-drill-down-trigger":c.id,"data-drill-down-name":r.textValue,onSelect:m,onKeyDown:w,ref:n,className:l("kui-reset","kui-BaseMenuItem","kui-BaseMenuSubTrigger","kui-DropdownMenuItem","kui-DropdownMenuSubTrigger","kui-DropdownMenuDrillDownSubTrigger",t)},u,e.createElement("div",{className:"kui-BaseMenuShortcut kui-DropdownMenuShortcut"},e.createElement(S,{className:"kui-BaseMenuSubTriggerIcon kui-DropdownMenuSubTriggerIcon"})))}return e.createElement(s.SubTrigger,{...r,onKeyDown:i,asChild:!1,ref:n,className:l("kui-BaseMenuItem","kui-BaseMenuSubTrigger","kui-DropdownMenuItem","kui-DropdownMenuSubTrigger",t)},u,e.createElement("div",{className:"kui-BaseMenuShortcut kui-DropdownMenuShortcut"},e.createElement(S,{className:"kui-BaseMenuSubTriggerIcon kui-DropdownMenuSubTriggerIcon"})))});Pe.displayName="DropdownMenu.SubTrigger";var Re=e.forwardRef(({className:o,...n},t)=>e.useContext(M)?e.createElement(s.Separator,{...n,asChild:!1,ref:t,className:l("kui-BaseMenuSeparator","kui-DropdownMenuSeparator",o)}):null);Re.displayName="DropdownMenu.Separator";function Ne({label:o,name:n}){let t=v(),u=e.useCallback(a=>{a.preventDefault(),t?.pop()},[t]),i=typeof o=="string"?o:n,r=i&&i!=="Back"?`Back from ${i}`:void 0;return e.createElement(s.Item,{"aria-label":r,textValue:i||"Back",onSelect:u,className:l("kui-reset","kui-BaseMenuItem","kui-DropdownMenuItem","kui-DropdownMenuDrillDownBackItem")},e.createElement(j,{className:"kui-BaseMenuSubTriggerIcon kui-DropdownMenuDrillDownBackIcon"}),e.createElement("span",{className:"kui-DropdownMenuDrillDownBackLabel"},o))}function Be(o){let{loop:n,onEscapeKeyDown:t,onPointerDownOutside:u,onFocusOutside:i,onInteractOutside:r,sideOffset:a,alignOffset:c,avoidCollisions:p,collisionBoundary:m,collisionPadding:w,arrowPadding:d,sticky:P,hideWhenDetached:b,updatePositionStrategy:f,...R}=o;return R}var be=e.forwardRef((o,n)=>{let t=v(),u=N();return t&&u?e.createElement(ve,{...o,ref:n,store:t,sub:u}):e.createElement(Ce,{...o,ref:n})});be.displayName="DropdownMenu.SubContent";var Ce=e.forwardRef((o,n)=>{let t=e.useContext(z),u=o.size??t.size,i=o.color??t.color,{className:r,children:a,container:c,forceMount:p,color:m,virtualized:w=!1,...d}=I({...o,size:u},k),P=h(u,k.size.default),b=e.useMemo(()=>({size:u,color:i}),[u,i]),f=e.createElement(B,{size:u},e.createElement(z.Provider,{value:b},a));return e.createElement(s.Portal,{container:c,forceMount:p},e.createElement(G,{asChild:!0},e.createElement(s.SubContent,{"data-accent-color":i,alignOffset:$(P),sideOffset:1,collisionPadding:10,...d,asChild:!1,ref:n,className:l("kui-PopperContent","kui-BaseMenuContent","kui-variant-soft","kui-BaseMenuSubContent","kui-DropdownMenuContent","kui-DropdownMenuSubContent",r)},w?e.createElement("div",{className:l("kui-BaseMenuViewport","kui-DropdownMenuViewport","kui-virtualized")},f):e.createElement(L,{type:"auto",scrollbars:"vertical"},e.createElement("div",{className:l("kui-BaseMenuViewport","kui-DropdownMenuViewport")},f)))))});Ce.displayName="DropdownMenu.CascadeSubContent";var ve=e.forwardRef(({store:o,sub:n,...t},u)=>{let i=E(o,n.id),r=Z(o,n.id);if(i==="closed")return null;let{className:a,children:c,container:p,forceMount:m,virtualized:w,size:d,color:P,...b}=Be(t),f=i==="top",R=r?.name||(typeof n.label=="string"?n.label:"");return e.createElement("div",{role:"group","aria-label":R||void 0,...b,ref:u,"data-drill-down-panel":n.id,"data-drill-down-active":f?!0:void 0,className:l("kui-DropdownMenuDrillDownPanel",a)},f&&e.createElement(e.Fragment,null,e.createElement(Ne,{label:n.label,name:R}),e.createElement(s.Separator,{className:"kui-BaseMenuSeparator kui-DropdownMenuSeparator"})),e.createElement(y,{value:null},e.createElement(M.Provider,{value:f},c)))});ve.displayName="DropdownMenu.DrillDownPanel";var ge=e.forwardRef(({className:o,...n},t)=>e.createElement(F,{...n,ref:t,className:l("kui-DropdownMenuTriggerIcon",o)}));ge.displayName="DropdownMenu.TriggerIcon";export{ue as a,se as b,de as c,le as d,ce as e,me as f,we as g,De as h,Me as i,fe as j,Pe as k,Re as l,be as m,ge as n,Oe as o};
3
+ //# sourceMappingURL=chunk-E4EMG3RC.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/dropdown-menu.tsx"],
4
+ "sourcesContent": ["'use client';\n\nimport * as React from 'react';\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 useDrillDownStore,\n usePanelPosition,\n useStackEntry,\n useSubContext,\n} from './_internal/dropdown-menu-drill-down.js';\nimport {\n MenuCloseProvider,\n MenuGroupLabelProvider,\n MenuProvider,\n useMenuGroupLabelId,\n useMenuGroupLabelledBy,\n} 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 const close = React.useCallback(() => handleOpenChange(false), [handleOpenChange]);\n\n return (\n <DropdownMenuOpenContext.Provider value={open}>\n <MenuCloseProvider value={close}>\n <DropdownMenuPrimitive.Root {...props} open={open} onOpenChange={handleOpenChange} />\n </MenuCloseProvider>\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, id: idProp, ...props }, forwardedRef) => {\n const isLevelVisible = React.useContext(DrillDownLevelContext);\n const id = useMenuGroupLabelId(idProp, isLevelVisible);\n if (!isLevelVisible) return null;\n return (\n <DropdownMenuPrimitive.Label\n {...props}\n id={id}\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, 'aria-labelledby': ariaLabelledBy, ...props }, forwardedRef) => {\n const [labelledBy, setLabelId] = useMenuGroupLabelledBy(ariaLabelledBy);\n // A drill-down level that is not on screen keeps its groups only to hold the open path.\n const isLevelVisible = React.useContext(DrillDownLevelContext);\n return (\n <MenuGroupLabelProvider value={setLabelId}>\n <DropdownMenuPrimitive.Group\n {...(isLevelVisible ? { 'aria-labelledby': labelledBy } : { role: 'none' })}\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('kui-BaseMenuGroup', 'kui-DropdownMenuGroup', className)}\n />\n </MenuGroupLabelProvider>\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, 'aria-labelledby': ariaLabelledBy, ...props }, forwardedRef) => {\n const [labelledBy, setLabelId] = useMenuGroupLabelledBy(ariaLabelledBy);\n const isLevelVisible = React.useContext(DrillDownLevelContext);\n return (\n <MenuGroupLabelProvider value={setLabelId}>\n <DropdownMenuPrimitive.RadioGroup\n {...(isLevelVisible ? { 'aria-labelledby': labelledBy } : { role: 'none' })}\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('kui-BaseMenuRadioGroup', 'kui-DropdownMenuRadioGroup', className)}\n />\n </MenuGroupLabelProvider>\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 <Slot.Slottable>{children}</Slot.Slottable>\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 <Slot.Slottable>{children}</Slot.Slottable>\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 const handleOpenChange = useCallbackRef(onOpenChange);\n const isControlled = open !== undefined;\n\n // Drill-down, controlled: navigating asks `onOpenChange` and leaves the stack to `open`.\n React.useLayoutEffect(() => {\n if (!drillDownStore || !isControlled) return;\n drillDownStore.setController(id, handleOpenChange);\n return () => drillDownStore.setController(id, null);\n }, [drillDownStore, isControlled, id, handleOpenChange]);\n\n React.useLayoutEffect(() => {\n if (!drillDownStore || open === undefined) return;\n if (open && !drillDownStore.isOpen(id)) drillDownStore.open(id, drillDownStore.takePendingModality(id));\n else if (!open && drillDownStore.isOpen(id)) drillDownStore.close(id, drillDownStore.takePendingModality(id));\n }, [drillDownStore, open, id]);\n\n // A `defaultOpen` push on mount is the starting state, not a change to report.\n const defaultOpenRef = React.useRef(open === undefined && Boolean(defaultOpen));\n React.useLayoutEffect(() => {\n if (drillDownStore && defaultOpenRef.current) drillDownStore.open(id);\n else defaultOpenRef.current = false;\n // Only on mount, like an uncontrolled default.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Uncontrolled, the stack drives `onOpenChange`. Controlled, it reports only a close\n // the `open` prop did not ask for, such as a parent level closing.\n const wasOpenRef = React.useRef(isOpenInDrillDown);\n React.useEffect(() => {\n if (!drillDownStore || wasOpenRef.current === isOpenInDrillDown) return;\n wasOpenRef.current = isOpenInDrillDown;\n if (isOpenInDrillDown && defaultOpenRef.current) {\n defaultOpenRef.current = false;\n return;\n }\n if (open !== undefined && open === isOpenInDrillDown) return;\n handleOpenChange(isOpenInDrillDown);\n }, [drillDownStore, isOpenInDrillDown, handleOpenChange, open]);\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 // The row navigates within the same menu, so it announces no popup.\n <DropdownMenuPrimitive.Item\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\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 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 <MenuGroupLabelProvider value={null}>\n <DrillDownLevelContext.Provider value={isTop}>{children}</DrillDownLevelContext.Provider>\n </MenuGroupLabelProvider>\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};\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", "React", "classNames", "DropdownMenuPrimitive", "Slot", "useCallbackRef", "DropdownMenuOpenContext", "DropdownMenuRoot", "props", "openProp", "defaultOpen", "onOpenChange", "uncontrolledOpen", "setUncontrolledOpen", "open", "handleOpenChangeProp", "useCallbackRef", "handleOpenChange", "next", "close", "MenuCloseProvider", "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", "idProp", "isLevelVisible", "DrillDownLevelContext", "id", "useMenuGroupLabelId", "DropdownMenuItem", "baseMenuItemPropDefs", "shortcut", "itemProps", "toAriaKeyShortcuts", "Slot", "MenuShortcut", "DropdownMenuGroup", "ariaLabelledBy", "labelledBy", "setLabelId", "useMenuGroupLabelledBy", "MenuGroupLabelProvider", "DropdownMenuRadioGroup", "DropdownMenuRadioItem", "baseMenuRadioItemPropDefs", "ThickDotIcon", "DropdownMenuCheckboxItem", "baseMenuCheckboxItemPropDefs", "ThickCheckIcon", "DropdownMenuSub", "label", "useDrillDownStore", "subContextValue", "isOpenInDrillDown", "usePanelPosition", "isControlled", "defaultOpenRef", "wasOpenRef", "SubContext", "DropdownMenuSubTrigger", "subTriggerProps", "subContext", "useSubContext", "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", "_container", "_forceMount", "_virtualized", "_size", "panelProps", "isTop", "DropdownMenuTriggerIcon", "ChevronDownIcon"]
7
+ }
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ import{a as u}from"./chunk-RVPLXLRA.js";import{j as C}from"./chunk-GHWEXMF6.js";import*as e from"react";import s from"classnames";var m=e.createContext(null);function d(){return e.useContext(m)}var S=e.createContext("2"),h=e.createContext(!1);function y({children:t,presentation:n}){let a=e.useContext(S),o=e.useMemo(()=>({size:a,menuVariant:"soft",presentation:n}),[a,n]);return e.createElement(m.Provider,{value:o},t)}function P(){let t=d(),n=e.useContext(S),a=t?.size??n,o=t?.menuVariant??"soft";return["kui-ShellPaneChrome",`kui-r-size-${a}`,`kui-menu-variant-${o}`]}var R={1:"2",2:"3",3:"4",4:"4"},c=e.createContext(void 0);function f(){let t=d(),n=e.useContext(S);return R[t?.size??n]}function F(){let t=e.useContext(c),n=e.useContext(C)!==null,a=f();return t!==void 0?t:n?a:null}var z=e.forwardRef(({className:t,float:n,children:a,...o},r)=>{let i=P(),l=f();return e.createElement("div",{...o,ref:r,"data-float":n||void 0,className:s("kui-ShellPaneHeader","kui-SidebarHeader","kui-SidebarHeader--container",...i,t)},e.createElement(c.Provider,{value:l},a))});z.displayName="Shell.PaneHeader";var b=e.forwardRef(({className:t,float:n,children:a,...o},r)=>{let i=P(),l=f();return e.createElement("div",{...o,ref:r,"data-float":n||void 0,className:s("kui-ShellPaneFooter","kui-SidebarFooter","kui-SidebarFooter--container",...i,t)},e.createElement(c.Provider,{value:l},a))});b.displayName="Shell.PaneFooter";var B=e.forwardRef(({className:t,style:n,dir:a,children:o,fade:r=!1,...i},l)=>{let v=P(),p=e.useContext(h),x=d();return p&&x===null?e.createElement(u,{...i,ref:l,type:"hover",fade:r,className:"kui-ShellScroll"},e.createElement("div",{style:n,dir:a,className:s("kui-ShellScrollContent",t)},o)):e.createElement(u,{...i,ref:l,type:"hover",fade:r,className:"kui-ShellScroll"},e.createElement("div",{style:n,dir:a,className:s("kui-BaseMenuContent","kui-SidebarContent",...v,t)},e.createElement(c.Provider,{value:null},e.createElement("div",{className:"kui-BaseMenuViewport"},o))))});B.displayName="Shell.Scroll";export{m as a,d as b,S as c,h as d,y as e,R as f,F as g,z as h,b as i,B as j};
3
+ //# sourceMappingURL=chunk-EAIQIW23.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/_internal/pane-chrome.tsx"],
4
+ "sourcesContent": ["'use client';\n\n/**\n * A pane's own chrome: a header row, a scrolling region and a footer row.\n *\n * Shell.Sidebar and Shell.Panel render these as `Shell.PaneHeader`, `Shell.Scroll` and\n * `Shell.PaneFooter`. The pane renders anything; with these parts it is the presentation, so\n * Sidebar's menu parts work inside it with no `Sidebar.Root`. The index comes from the nearest\n * Shell (`Shell.Root size`), or from a deprecated `Sidebar.Root` that still wraps them.\n */\n\nimport * as React from 'react';\nimport classNames from 'classnames';\n\nimport { ScrollArea } from '../scroll-area.js';\nimport { ShellStoreContext } from './shell-store.js';\n\ntype PaneSize = '1' | '2' | '3';\n\ntype SidebarVisualContextValue = {\n size: PaneSize;\n menuVariant: 'solid' | 'soft';\n presentation?: 'thin' | 'expanded';\n color?: string;\n};\n\n/** Size, menu highlight and presentation for the Sidebar parts. Internal: not exported. */\nconst SidebarVisualContext = React.createContext<SidebarVisualContextValue | null>(null);\n\nfunction useSidebarVisual() {\n return React.useContext(SidebarVisualContext);\n}\n\n/** The Shell's index. `Shell.Root size` sets it; panes hand it to their chrome. */\nconst ShellSizeContext = React.createContext<PaneSize>('2');\n\n/**\n * True inside `Shell.Content`. `Shell.Root` sets it back to false, so a Shell nested in the\n * content gets pane chrome in its own panes. Read by `Shell.Scroll`: in the content it holds a\n * page, not a menu, so it takes none of the menu's padding, gap or layering.\n */\nconst ShellContentContext = React.createContext(false);\n\n/**\n * Gives a Shell pane's children the Shell's index, so Sidebar parts size themselves. In a Rail\n * the rows are `thin`: icon tiles with a small label, sub-menus as dropdowns.\n */\nfunction PaneChromeScope({ children, presentation }: { children: React.ReactNode; presentation?: 'thin' }) {\n const size = React.useContext(ShellSizeContext);\n const value = React.useMemo<SidebarVisualContextValue>(() => ({ size, menuVariant: 'soft', presentation }), [size, presentation]);\n return <SidebarVisualContext.Provider value={value}>{children}</SidebarVisualContext.Provider>;\n}\n\nfunction useChromeClasses() {\n const visual = useSidebarVisual();\n // A pane with no scope (Inspector, Bottom) still takes the Shell's index.\n const shellSize = React.useContext(ShellSizeContext);\n const size = visual?.size ?? shellSize;\n const menuVariant = visual?.menuVariant ?? 'soft';\n return ['kui-ShellPaneChrome', `kui-r-size-${size}`, `kui-menu-variant-${menuVariant}`];\n}\n\ntype BandSize = '1' | '2' | '3' | '4';\n\n/**\n * The index a Toolbar in a pane's header or footer rests at when it states none: one step above\n * the Shell's, so the band reads as chrome over the rows (v2 BAND_STEP). 4 has no step above.\n */\nconst BAND_STEP = { '1': '2', '2': '3', '3': '4', '4': '4' } as const satisfies Record<BandSize, BandSize>;\n\n/**\n * Set by `Shell.PaneHeader` and `Shell.PaneFooter` to their band size, and by `Shell.Scroll` to\n * null (a scrolling list has no band). Unset (`undefined`) everywhere else.\n */\nconst PaneBandSizeContext = React.createContext<BandSize | null | undefined>(undefined);\n\nfunction useBandSize(): BandSize {\n const visual = useSidebarVisual();\n const shellSize = React.useContext(ShellSizeContext);\n return BAND_STEP[visual?.size ?? shellSize];\n}\n\n/**\n * The size a Toolbar with no `size` of its own rests at, or null for none.\n *\n * In a pane's header or footer it is that band's size. Anywhere else inside a Shell, such as\n * `Shell.Content` or a pane's body, it is the same step: one above the Shell's index, so a\n * toolbar in the content area matches the ones in the pane headers beside it (v2 sizes every\n * toolbar this way). A pane's scrolling list, and anything outside a Shell, has none.\n */\nfunction usePaneBandSize(): BandSize | null {\n const band = React.useContext(PaneBandSizeContext);\n const inShell = React.useContext(ShellStoreContext) !== null;\n const step = useBandSize();\n if (band !== undefined) return band;\n return inShell ? step : null;\n}\n\ninterface PaneHeaderProps extends React.ComponentPropsWithoutRef<'div'> {\n /**\n * Floats the row over the top of `Shell.Scroll`, so the list scrolls behind it. The list\n * starts below the row, and `Shell.Scroll fade` fades it out under the row. The row paints\n * nothing and lets clicks through between its controls; a `Toolbar backdrop` in it keeps\n * the controls readable.\n */\n float?: boolean;\n}\n\n/** A pane's header row, pinned above its scrolling region. */\nconst PaneHeader = React.forwardRef<HTMLDivElement, PaneHeaderProps>(({ className, float, children, ...props }, forwardedRef) => {\n const chrome = useChromeClasses();\n const band = useBandSize();\n return (\n <div\n {...props}\n ref={forwardedRef}\n data-float={float || undefined}\n className={classNames('kui-ShellPaneHeader', 'kui-SidebarHeader', 'kui-SidebarHeader--container', ...chrome, className)}\n >\n <PaneBandSizeContext.Provider value={band}>{children}</PaneBandSizeContext.Provider>\n </div>\n );\n});\nPaneHeader.displayName = 'Shell.PaneHeader';\n\ninterface PaneFooterProps extends React.ComponentPropsWithoutRef<'div'> {\n /** Floats the row over the bottom of `Shell.Scroll`, the way `Shell.PaneHeader float` does at the top. */\n float?: boolean;\n}\n\n/** A pane's footer row, pinned below its scrolling region. */\nconst PaneFooter = React.forwardRef<HTMLDivElement, PaneFooterProps>(({ className, float, children, ...props }, forwardedRef) => {\n const chrome = useChromeClasses();\n const band = useBandSize();\n return (\n <div\n {...props}\n ref={forwardedRef}\n data-float={float || undefined}\n className={classNames('kui-ShellPaneFooter', 'kui-SidebarFooter', 'kui-SidebarFooter--container', ...chrome, className)}\n >\n <PaneBandSizeContext.Provider value={band}>{children}</PaneBandSizeContext.Provider>\n </div>\n );\n});\nPaneFooter.displayName = 'Shell.PaneFooter';\n\ninterface ScrollProps extends React.ComponentPropsWithoutRef<'div'> {\n /** Fades the list out toward an edge with more past it, and under a floating header or footer. */\n fade?: boolean;\n}\n\n/**\n * The one region of a pane that scrolls; it takes the room the header and footer leave.\n * In `Shell.Content` it is the page's scroller, and a `Shell.PaneHeader float` beside it pins\n * the page's toolbar over it. The ref, events and ARIA props land on the element that scrolls;\n * `className`, `style` and `dir` apply to the content inside it. In a Rail, Panel or Sidebar the pane is\n * already a navigation landmark, so it needs no role of its own.\n */\nconst Scroll = React.forwardRef<HTMLDivElement, ScrollProps>(({ className, style, dir, children, fade = false, ...props }, forwardedRef) => {\n const chrome = useChromeClasses();\n // A Sidebar.Root inside the content still gets a menu.\n const contentPane = React.useContext(ShellContentContext);\n const visual = useSidebarVisual();\n const inContent = contentPane && visual === null;\n if (inContent) {\n return (\n <ScrollArea {...props} ref={forwardedRef} type=\"hover\" fade={fade} className=\"kui-ShellScroll\">\n <div style={style} dir={dir} className={classNames('kui-ShellScrollContent', className)}>\n {children}\n </div>\n </ScrollArea>\n );\n }\n return (\n <ScrollArea {...props} ref={forwardedRef} type=\"hover\" fade={fade} className=\"kui-ShellScroll\">\n <div style={style} dir={dir} className={classNames('kui-BaseMenuContent', 'kui-SidebarContent', ...chrome, className)}>\n {/* A header's band does not reach a Toolbar in the scrolling list. */}\n <PaneBandSizeContext.Provider value={null}>\n <div className=\"kui-BaseMenuViewport\">{children}</div>\n </PaneBandSizeContext.Provider>\n </div>\n </ScrollArea>\n );\n});\nScroll.displayName = 'Shell.Scroll';\n\nexport { SidebarVisualContext, useSidebarVisual, ShellSizeContext, ShellContentContext, PaneChromeScope, PaneHeader, PaneFooter, Scroll, BAND_STEP, usePaneBandSize };\nexport type { SidebarVisualContextValue, PaneSize, BandSize, PaneHeaderProps, PaneFooterProps, ScrollProps };\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "classNames", "SidebarVisualContext", "useSidebarVisual", "ShellSizeContext", "ShellContentContext", "PaneChromeScope", "children", "presentation", "size", "value", "useChromeClasses", "visual", "shellSize", "menuVariant", "BAND_STEP", "PaneBandSizeContext", "useBandSize", "usePaneBandSize", "band", "inShell", "ShellStoreContext", "step", "PaneHeader", "className", "float", "props", "forwardedRef", "chrome", "classNames", "PaneFooter", "Scroll", "style", "dir", "fade", "contentPane", "ScrollArea"]
7
+ }
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ import{a as c}from"./chunk-PZ6Z7WTR.js";import{a as v}from"./chunk-YOSLXJI5.js";import{c as f}from"./chunk-2IUGM657.js";import{c as u}from"./chunk-OKQAVYW4.js";import*as a from"react";import g from"classnames";import{Avatar as m}from"radix-ui";var W=a.forwardRef((e,s)=>{let o=f(e,c.size),{asChild:t,children:r,className:n,style:i,color:P,radius:h,status:d,statusLabel:l,badge:p,fallback:y,onLoadingStatusChange:b,src:R,alt:k,srcSet:N,sizes:I,crossOrigin:C,referrerPolicy:S,loading:E,decoding:w,onLoad:D,onError:L,...O}=u(o,c),x={fallback:y,onLoadingStatusChange:b,src:R,alt:k,srcSet:N,sizes:I,crossOrigin:C,referrerPolicy:S,loading:E,decoding:w,onLoad:D,onError:L},z=t&&r!=null&&a.isValidElement(r)&&(r.props.disabled===!0||r.props["data-disabled"]===!0),F=p!==void 0||d!==void 0,T=p!==void 0?a.createElement("span",{className:"kui-AvatarBadge"},p):d!==void 0?a.createElement("span",{className:"kui-AvatarStatus","data-accent-color":d,role:l?"img":void 0,"aria-label":l||void 0,"aria-hidden":l?void 0:!0}):null;return a.createElement(m.Root,{...O,ref:s,"data-accent-color":P,"data-radius":h,"data-disabled":z||void 0,"data-has-indicator":F||void 0,className:g("kui-reset","kui-AvatarRoot",n),style:i,asChild:t},v({asChild:t,children:r},a.createElement(a.Fragment,null,a.createElement(A,{...x}),T)))});W.displayName="Avatar";var A=a.memo(({fallback:e,onLoadingStatusChange:s,...o})=>{let[t,r]=a.useState("idle"),n=a.useCallback(i=>{s?.(i),r(i)},[s]);return a.createElement(a.Fragment,null,t==="idle"||t==="loading"?a.createElement("span",{className:"kui-AvatarFallback"}):null,t==="error"?a.createElement(m.Fallback,{className:g("kui-AvatarFallback",{"kui-one-letter":typeof e=="string"&&e.length===1,"kui-two-letters":typeof e=="string"&&e.length===2}),...o.alt?{role:"img","aria-label":o.alt}:{"aria-hidden":!0}},e):null,a.createElement(m.Image,{className:"kui-AvatarImage",...o,onLoadingStatusChange:n}))});A.displayName="AvatarImpl";export{W as a};
3
+ //# sourceMappingURL=chunk-ENAW44VE.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/avatar.tsx"],
4
+ "sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Avatar as AvatarPrimitive } from 'radix-ui';\n\nimport { avatarPropDefs } from './avatar.props.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { getSubtree } from '../helpers/get-subtree.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\ninterface AvatarProps extends AvatarImplProps {}\nconst Avatar = React.forwardRef<AvatarElement, AvatarProps>((ownProps, forwardedRef) => {\n // An unset size follows the Theme, like a control. Sizes above 4 are only explicit.\n const props = useThemeSizeProps(ownProps, avatarPropDefs.size);\n const {\n asChild,\n children,\n className,\n style,\n color,\n radius,\n status,\n statusLabel,\n badge,\n // Only these reach the <img>, which Radix renders once the picture has loaded.\n fallback,\n onLoadingStatusChange,\n src,\n alt,\n srcSet,\n sizes,\n crossOrigin,\n referrerPolicy,\n loading,\n decoding,\n onLoad,\n onError,\n // Everything else (id, aria-*, data-*, handlers) goes on the root, so it is always rendered.\n ...rootProps\n } = extractProps(props, avatarPropDefs);\n const imageProps = { fallback, onLoadingStatusChange, src, alt, srcSet, sizes, crossOrigin, referrerPolicy, loading, decoding, onLoad, onError };\n\n if (process.env.NODE_ENV !== 'production') {\n if (status !== undefined && badge !== undefined) {\n console.warn('Avatar: Cannot use both `status` and `badge` props together. ' + 'The `badge` prop will be used and `status` will be ignored.');\n }\n }\n\n // Cheap boolean checks \u2014 no memoization needed\n const isDisabled = asChild && children != null && React.isValidElement(children) && ((children.props as any).disabled === true || (children.props as any)['data-disabled'] === true);\n\n const hasIndicator = badge !== undefined || status !== undefined;\n\n const indicator =\n badge !== undefined ? (\n <span className=\"kui-AvatarBadge\">{badge}</span>\n ) : status !== undefined ? (\n <span\n className=\"kui-AvatarStatus\"\n data-accent-color={status}\n role={statusLabel ? 'img' : undefined}\n aria-label={statusLabel || undefined}\n aria-hidden={statusLabel ? undefined : true}\n />\n ) : null;\n\n return (\n <AvatarPrimitive.Root\n {...(rootProps as React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>)}\n ref={forwardedRef}\n data-accent-color={color}\n data-radius={radius}\n data-disabled={isDisabled || undefined}\n data-has-indicator={hasIndicator || undefined}\n className={classNames('kui-reset', 'kui-AvatarRoot', className)}\n style={style}\n asChild={asChild}\n >\n {/* With asChild, Slot takes exactly one child, so the indicator goes inside it. */}\n {getSubtree(\n { asChild, children },\n <>\n <AvatarImpl {...imageProps} />\n {indicator}\n </>,\n )}\n </AvatarPrimitive.Root>\n );\n});\nAvatar.displayName = 'Avatar';\n\ntype AvatarElement = React.ElementRef<typeof AvatarPrimitive.Root>;\ntype AvatarOwnProps = GetPropDefTypes<typeof avatarPropDefs>;\n\ninterface AvatarImplProps extends ComponentPropsWithout<typeof AvatarPrimitive.Image, RemovedProps>, AvatarOwnProps {\n // TODO: See if we can automate making prop defs with `required: true` non nullable\n fallback: NonNullable<AvatarOwnProps['fallback']>;\n}\n\ntype AvatarImageProps = Pick<\n AvatarImplProps,\n 'fallback' | 'onLoadingStatusChange' | 'src' | 'alt' | 'srcSet' | 'sizes' | 'crossOrigin' | 'referrerPolicy' | 'loading' | 'decoding' | 'onLoad' | 'onError'\n>;\n\nconst AvatarImpl = React.memo(({ fallback, onLoadingStatusChange, ...imageProps }: AvatarImageProps) => {\n const [status, setStatus] = React.useState<'idle' | 'loading' | 'loaded' | 'error'>('idle');\n\n const handleLoadingStatusChange = React.useCallback(\n (newStatus: 'idle' | 'loading' | 'loaded' | 'error') => {\n onLoadingStatusChange?.(newStatus);\n setStatus(newStatus);\n },\n [onLoadingStatusChange],\n );\n\n return (\n <>\n {status === 'idle' || status === 'loading' ? <span className=\"kui-AvatarFallback\" /> : null}\n\n {status === 'error' ? (\n <AvatarPrimitive.Fallback\n className={classNames('kui-AvatarFallback', {\n 'kui-one-letter': typeof fallback === 'string' && fallback.length === 1,\n 'kui-two-letters': typeof fallback === 'string' && fallback.length === 2,\n })}\n // Named from alt, like the picture it stands in for. Unnamed, it is decorative.\n {...(imageProps.alt ? { role: 'img', 'aria-label': imageProps.alt } : { 'aria-hidden': true })}\n >\n {fallback}\n </AvatarPrimitive.Fallback>\n ) : null}\n\n <AvatarPrimitive.Image className=\"kui-AvatarImage\" {...imageProps} onLoadingStatusChange={handleLoadingStatusChange} />\n </>\n );\n});\n\nAvatarImpl.displayName = 'AvatarImpl';\n\nexport { Avatar };\nexport type { AvatarProps };\n"],
5
+ "mappings": ";gKAEA,UAAYA,MAAW,QACvB,OAAOC,MAAgB,aACvB,OAAS,UAAUC,MAAuB,WAW1C,IAAMC,EAAe,aAAuC,CAACC,EAAUC,IAAiB,CAEtF,IAAMC,EAAQC,EAAkBH,EAAUI,EAAe,IAAI,EACvD,CACJ,QAAAC,EACA,SAAAC,EACA,UAAAC,EACA,MAAAC,EACA,MAAAC,EACA,OAAAC,EACA,OAAAC,EACA,YAAAC,EACA,MAAAC,EAEA,SAAAC,EACA,sBAAAC,EACA,IAAAC,EACA,IAAAC,EACA,OAAAC,EACA,MAAAC,EACA,YAAAC,EACA,eAAAC,EACA,QAAAC,EACA,SAAAC,EACA,OAAAC,EACA,QAAAC,EAEA,GAAGC,CACL,EAAIC,EAAazB,EAAOE,CAAc,EAChCwB,EAAa,CAAE,SAAAd,EAAU,sBAAAC,EAAuB,IAAAC,EAAK,IAAAC,EAAK,OAAAC,EAAQ,MAAAC,EAAO,YAAAC,EAAa,eAAAC,EAAgB,QAAAC,EAAS,SAAAC,EAAU,OAAAC,EAAQ,QAAAC,CAAQ,EASzII,EAAaxB,GAAWC,GAAY,MAAc,iBAAeA,CAAQ,IAAOA,EAAS,MAAc,WAAa,IAASA,EAAS,MAAc,eAAe,IAAM,IAEzKwB,EAAejB,IAAU,QAAaF,IAAW,OAEjDoB,EACJlB,IAAU,OACR,gBAAC,QAAK,UAAU,mBAAmBA,CAAM,EACvCF,IAAW,OACb,gBAAC,QACC,UAAU,mBACV,oBAAmBA,EACnB,KAAMC,EAAc,MAAQ,OAC5B,aAAYA,GAAe,OAC3B,cAAaA,EAAc,OAAY,GACzC,EACE,KAEN,OACE,gBAACoB,EAAgB,KAAhB,CACE,GAAIN,EACL,IAAKzB,EACL,oBAAmBQ,EACnB,cAAaC,EACb,gBAAemB,GAAc,OAC7B,qBAAoBC,GAAgB,OACpC,UAAWG,EAAW,YAAa,iBAAkB1B,CAAS,EAC9D,MAAOC,EACP,QAASH,GAGR6B,EACC,CAAE,QAAA7B,EAAS,SAAAC,CAAS,EACpB,gCACE,gBAAC6B,EAAA,CAAY,GAAGP,EAAY,EAC3BG,CACH,CACF,CACF,CAEJ,CAAC,EACDhC,EAAO,YAAc,SAerB,IAAMoC,EAAmB,OAAK,CAAC,CAAE,SAAArB,EAAU,sBAAAC,EAAuB,GAAGa,CAAW,IAAwB,CACtG,GAAM,CAACjB,EAAQyB,CAAS,EAAU,WAAkD,MAAM,EAEpFC,EAAkC,cACrCC,GAAuD,CACtDvB,IAAwBuB,CAAS,EACjCF,EAAUE,CAAS,CACrB,EACA,CAACvB,CAAqB,CACxB,EAEA,OACE,gCACGJ,IAAW,QAAUA,IAAW,UAAY,gBAAC,QAAK,UAAU,qBAAqB,EAAK,KAEtFA,IAAW,QACV,gBAACqB,EAAgB,SAAhB,CACC,UAAWC,EAAW,qBAAsB,CAC1C,iBAAkB,OAAOnB,GAAa,UAAYA,EAAS,SAAW,EACtE,kBAAmB,OAAOA,GAAa,UAAYA,EAAS,SAAW,CACzE,CAAC,EAEA,GAAIc,EAAW,IAAM,CAAE,KAAM,MAAO,aAAcA,EAAW,GAAI,EAAI,CAAE,cAAe,EAAK,GAE3Fd,CACH,EACE,KAEJ,gBAACkB,EAAgB,MAAhB,CAAsB,UAAU,kBAAmB,GAAGJ,EAAY,sBAAuBS,EAA2B,CACvH,CAEJ,CAAC,EAEDF,EAAW,YAAc",
6
+ "names": ["React", "classNames", "AvatarPrimitive", "Avatar", "ownProps", "forwardedRef", "props", "useThemeSizeProps", "avatarPropDefs", "asChild", "children", "className", "style", "color", "radius", "status", "statusLabel", "badge", "fallback", "onLoadingStatusChange", "src", "alt", "srcSet", "sizes", "crossOrigin", "referrerPolicy", "loading", "decoding", "onLoad", "onError", "rootProps", "extractProps", "imageProps", "isDisabled", "hasIndicator", "indicator", "AvatarPrimitive", "classNames", "getSubtree", "AvatarImpl", "setStatus", "handleLoadingStatusChange", "newStatus"]
7
+ }
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ import{a as p,c as x,e as O,g as E}from"./chunk-XUCR7L4G.js";import{a as b,d as l}from"./chunk-3QWGSRYC.js";import{a as C,b as S,c as R}from"./chunk-VVBSYWUA.js";import{o as I}from"./chunk-GHWEXMF6.js";import{a as v,b as y}from"./chunk-DI7RUMLO.js";import{a as g}from"./chunk-WEBNIUEX.js";import{a as h}from"./chunk-G66WDIIV.js";import*as e from"react";import re from"classnames";import{useComposedRefs as ae}from"radix-ui/internal";var ie={controlled:"open",default:"defaultOpen"},le={initial:"overlay",sm:"fixed"},T=e.forwardRef((N,M)=>{let{className:w,presentation:H=le,defaultOpen:U,open:k,onOpenChange:A,expandedSize:o=320,minSize:d=200,maxSize:c=500,resizable:m=!1,collapsible:B=!0,onExpand:V,onCollapse:L,onResize:_,onResizeStart:D,onResizeEnd:$,snapPoints:t,snapTolerance:q,collapseThreshold:s,paneId:r,persistence:a,children:F,style:W,onSizeChange:j,sizeUpdate:G,sizeUpdateMs:K=50,size:J,defaultSize:Q,inset:u,id:X,...i}=N,{table:P,attributes:Y}=R(H,"fixed"),n=C({name:"inspector",label:"Inspector",propNames:ie,id:X,controlled:p(k),defaultValue:p(U),presentationTable:P,builtIn:x,onChange:(te,se)=>A?.(te!=="closed",{reason:se}),onExpand:V,onCollapse:L,size:o});I("inspector",u),e.useEffect(()=>{(t!==void 0||s!==void 0||r!==void 0||a!==void 0)&&void 0},[t,s,r,a]);let f=e.useRef(null),Z=ae(M,n.setElement,f),ee=v({name:"inspector",elementId:n.id,elementRef:f,cssVarName:"--inspector-size",orientation:"vertical",edge:"start",growth:O,expandedSize:o,minSize:d,maxSize:c,resizable:m,collapsible:B,size:J,defaultSize:Q,onSizeChange:j,sizeUpdate:G,sizeUpdateMs:K,onResize:_,onResizeStart:D,onResizeEnd:$,snapPoints:t,snapTolerance:q,collapseThreshold:s,paneId:r,persistence:a,overlaying:n.overlaying,overlayingNow:()=>P[h()]==="overlay",requestCollapse:()=>n.setValue("closed","toggle"),requestToggle:()=>n.toggle("toggle")}),{handles:z,content:ne}=y(F,l),oe=m&&n.shown!==!1&&!n.overlaying?e.createElement(g.Provider,{value:ee},z.length>0?z:e.createElement(b,null)):null;return e.createElement("div",{...E(i),role:i.role??"complementary",id:n.id,ref:Z,className:re("kui-ShellPane","kui-ShellInspector",w),...S(n,Y),"data-inset":u||void 0,tabIndex:n.overlaying?-1:i.tabIndex,style:{...W,"--inspector-expanded-size":`${o}px`,"--inspector-min-size":`${d}px`,"--inspector-max-size":`${c}px`}},e.createElement("div",{className:"kui-ShellInspectorContent"},ne),oe)});T.displayName="Shell.Inspector";T.Handle=l;export{T as a};
3
+ //# sourceMappingURL=chunk-EVCQ6TG5.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/components/_internal/shell-inspector.tsx"],
4
- "sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useComposedRefs } from 'radix-ui/internal';\nimport { PaneResizeContext } from './shell-resize.js';\nimport { InspectorHandle, PaneHandle } from './shell-handles.js';\nimport { usePane, paneAttributes, usePresentationTable } from './shell-pane.js';\nimport { splitHandles, useResizablePane, type SizeChangeMeta } from './shell-resizable.js';\nimport { useInsetRegistration, warnOnce } from './shell-store.js';\nimport { detailRest, endAnchoredGrowth, toPaneValue, withoutRemovedPaneProps } from './shell-rest.js';\nimport { readBreakpoint } from '../../hooks/use-breakpoint.js';\nimport type { Breakpoint, CSSPropertiesWithVars, PaneBaseProps } from '../shell.types.js';\n\ntype InspectorOpenChangeMeta = { reason: 'init' | 'toggle' | 'responsive' | 'dismiss' };\ntype InspectorControlledProps = { open: boolean | Partial<Record<Breakpoint, boolean>>; onOpenChange?: (open: boolean, meta: InspectorOpenChangeMeta) => void; defaultOpen?: never };\ntype InspectorUncontrolledProps = { defaultOpen?: boolean | Partial<Record<Breakpoint, boolean>>; onOpenChange?: (open: boolean, meta: InspectorOpenChangeMeta) => void; open?: never };\ntype InspectorSizeControlledProps = { size: number | string; defaultSize?: never };\ntype InspectorSizeUncontrolledProps = { defaultSize?: number | string; size?: never };\ntype InspectorPublicProps = PaneBaseProps &\n (InspectorControlledProps | InspectorUncontrolledProps) &\n (InspectorSizeControlledProps | InspectorSizeUncontrolledProps) & {\n onSizeChange?: (size: number, meta: SizeChangeMeta) => void;\n sizeUpdate?: 'throttle' | 'debounce';\n sizeUpdateMs?: number;\n /** When true, adds margin and triggers the gray backdrop on the Shell. */\n inset?: boolean;\n };\n\ntype InspectorComponent = React.ForwardRefExoticComponent<InspectorPublicProps & React.RefAttributes<HTMLDivElement>> & { Handle: typeof InspectorHandle };\n\nconst INSPECTOR_PROP_NAMES = { controlled: 'open', default: 'defaultOpen' };\n\n/** Since 0.8.0 the Inspector is in the frame from 768px up, the boundary kookie-ui-v2 uses everywhere. It was 1280px. */\nconst INSPECTOR_DEFAULT_PRESENTATION = { initial: 'overlay', sm: 'fixed' } as const;\n\nexport const Inspector = React.forwardRef<HTMLDivElement, InspectorPublicProps>((props, ref) => {\n const {\n className,\n presentation = INSPECTOR_DEFAULT_PRESENTATION,\n defaultOpen,\n open,\n onOpenChange,\n expandedSize = 320,\n minSize = 200,\n maxSize = 500,\n resizable = false,\n collapsible = true,\n onExpand,\n onCollapse,\n onResize,\n onResizeStart,\n onResizeEnd,\n snapPoints,\n snapTolerance,\n collapseThreshold,\n paneId,\n persistence,\n children,\n style,\n onSizeChange,\n sizeUpdate,\n sizeUpdateMs = 50,\n size,\n defaultSize,\n inset,\n id,\n ...domProps\n } = props;\n\n const { table, attributes } = usePresentationTable(presentation, 'fixed');\n const pane = usePane({\n name: 'inspector',\n label: 'Inspector',\n propNames: INSPECTOR_PROP_NAMES,\n id,\n controlled: toPaneValue(open),\n defaultValue: toPaneValue(defaultOpen),\n presentationTable: table,\n builtIn: detailRest,\n onChange: (value, reason) => onOpenChange?.(value !== 'closed', { reason }),\n onExpand,\n onCollapse,\n size: expandedSize,\n });\n useInsetRegistration('inspector', inset);\n\n React.useEffect(() => {\n if (snapPoints !== undefined || collapseThreshold !== undefined || paneId !== undefined || persistence !== undefined) {\n warnOnce('Shell.Inspector: `snapPoints`, `collapseThreshold`, `paneId` and `persistence` are deprecated and are removed in 1.0. Keep the size in your own state with `size`/`onSizeChange`.');\n }\n }, [snapPoints, collapseThreshold, paneId, persistence]);\n\n const elementRef = React.useRef<HTMLElement | null>(null);\n const composedRef = useComposedRefs(ref, pane.setElement, elementRef);\n\n const resize = useResizablePane({\n name: 'inspector',\n elementId: pane.id,\n elementRef,\n cssVarName: '--inspector-size',\n orientation: 'vertical',\n edge: 'start',\n growth: endAnchoredGrowth,\n expandedSize,\n minSize,\n maxSize,\n resizable,\n collapsible,\n size,\n defaultSize,\n onSizeChange,\n sizeUpdate,\n sizeUpdateMs,\n onResize,\n onResizeStart,\n onResizeEnd,\n snapPoints,\n snapTolerance,\n collapseThreshold,\n paneId,\n persistence,\n overlaying: pane.overlaying,\n overlayingNow: () => table[readBreakpoint()] === 'overlay',\n requestCollapse: () => pane.setValue('closed', 'toggle'),\n requestToggle: () => pane.toggle('toggle'),\n });\n\n const { handles, content } = splitHandles(children, InspectorHandle);\n const handle = resizable && pane.shown !== false && !pane.overlaying ? <PaneResizeContext.Provider value={resize}>{handles.length > 0 ? handles : <PaneHandle />}</PaneResizeContext.Provider> : null;\n\n return (\n <div\n {...withoutRemovedPaneProps(domProps)}\n id={pane.id}\n ref={composedRef}\n className={classNames('kui-ShellPane', 'kui-ShellInspector', className)}\n {...paneAttributes(pane, attributes)}\n data-inset={inset || undefined}\n tabIndex={pane.overlaying ? -1 : domProps.tabIndex}\n style={\n {\n ...style,\n '--inspector-expanded-size': `${expandedSize}px`,\n '--inspector-min-size': `${minSize}px`,\n '--inspector-max-size': `${maxSize}px`,\n } as CSSPropertiesWithVars\n }\n >\n <div className=\"kui-ShellInspectorContent\">{content}</div>\n {handle}\n </div>\n );\n}) as InspectorComponent;\n\nInspector.displayName = 'Shell.Inspector';\nInspector.Handle = InspectorHandle;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useComposedRefs } from 'radix-ui/internal';\nimport { PaneResizeContext } from './shell-resize.js';\nimport { InspectorHandle, PaneHandle } from './shell-handles.js';\nimport { usePane, paneAttributes, usePresentationTable } from './shell-pane.js';\nimport { splitHandles, useResizablePane, type SizeChangeMeta } from './shell-resizable.js';\nimport { useInsetRegistration, warnOnce } from './shell-store.js';\nimport { detailRest, endAnchoredGrowth, toPaneValue, withoutRemovedPaneProps } from './shell-rest.js';\nimport { readBreakpoint } from '../../hooks/use-breakpoint.js';\nimport type { Breakpoint, CSSPropertiesWithVars, PaneBaseProps } from '../shell.types.js';\n\ntype InspectorOpenChangeMeta = { reason: 'init' | 'toggle' | 'responsive' | 'dismiss' };\ntype InspectorControlledProps = { open: boolean | Partial<Record<Breakpoint, boolean>>; onOpenChange?: (open: boolean, meta: InspectorOpenChangeMeta) => void; defaultOpen?: never };\ntype InspectorUncontrolledProps = { defaultOpen?: boolean | Partial<Record<Breakpoint, boolean>>; onOpenChange?: (open: boolean, meta: InspectorOpenChangeMeta) => void; open?: never };\ntype InspectorSizeControlledProps = { size: number | string; defaultSize?: never };\ntype InspectorSizeUncontrolledProps = { defaultSize?: number | string; size?: never };\ntype InspectorPublicProps = PaneBaseProps &\n (InspectorControlledProps | InspectorUncontrolledProps) &\n (InspectorSizeControlledProps | InspectorSizeUncontrolledProps) & {\n onSizeChange?: (size: number, meta: SizeChangeMeta) => void;\n sizeUpdate?: 'throttle' | 'debounce';\n sizeUpdateMs?: number;\n /** When true, adds margin and triggers the gray backdrop on the Shell. */\n inset?: boolean;\n };\n\ntype InspectorComponent = React.ForwardRefExoticComponent<InspectorPublicProps & React.RefAttributes<HTMLDivElement>> & { Handle: typeof InspectorHandle };\n\nconst INSPECTOR_PROP_NAMES = { controlled: 'open', default: 'defaultOpen' };\n\n/** Since 0.8.0 the Inspector is in the frame from 768px up, the boundary kookie-ui-v2 uses everywhere. It was 1280px. */\nconst INSPECTOR_DEFAULT_PRESENTATION = { initial: 'overlay', sm: 'fixed' } as const;\n\nexport const Inspector = React.forwardRef<HTMLDivElement, InspectorPublicProps>((props, ref) => {\n const {\n className,\n presentation = INSPECTOR_DEFAULT_PRESENTATION,\n defaultOpen,\n open,\n onOpenChange,\n expandedSize = 320,\n minSize = 200,\n maxSize = 500,\n resizable = false,\n collapsible = true,\n onExpand,\n onCollapse,\n onResize,\n onResizeStart,\n onResizeEnd,\n snapPoints,\n snapTolerance,\n collapseThreshold,\n paneId,\n persistence,\n children,\n style,\n onSizeChange,\n sizeUpdate,\n sizeUpdateMs = 50,\n size,\n defaultSize,\n inset,\n id,\n ...domProps\n } = props;\n\n const { table, attributes } = usePresentationTable(presentation, 'fixed');\n const pane = usePane({\n name: 'inspector',\n label: 'Inspector',\n propNames: INSPECTOR_PROP_NAMES,\n id,\n controlled: toPaneValue(open),\n defaultValue: toPaneValue(defaultOpen),\n presentationTable: table,\n builtIn: detailRest,\n onChange: (value, reason) => onOpenChange?.(value !== 'closed', { reason }),\n onExpand,\n onCollapse,\n size: expandedSize,\n });\n useInsetRegistration('inspector', inset);\n\n React.useEffect(() => {\n if (snapPoints !== undefined || collapseThreshold !== undefined || paneId !== undefined || persistence !== undefined) {\n warnOnce('Shell.Inspector: `snapPoints`, `collapseThreshold`, `paneId` and `persistence` are deprecated and are removed in 1.0. Keep the size in your own state with `size`/`onSizeChange`.');\n }\n }, [snapPoints, collapseThreshold, paneId, persistence]);\n\n const elementRef = React.useRef<HTMLElement | null>(null);\n const composedRef = useComposedRefs(ref, pane.setElement, elementRef);\n\n const resize = useResizablePane({\n name: 'inspector',\n elementId: pane.id,\n elementRef,\n cssVarName: '--inspector-size',\n orientation: 'vertical',\n edge: 'start',\n growth: endAnchoredGrowth,\n expandedSize,\n minSize,\n maxSize,\n resizable,\n collapsible,\n size,\n defaultSize,\n onSizeChange,\n sizeUpdate,\n sizeUpdateMs,\n onResize,\n onResizeStart,\n onResizeEnd,\n snapPoints,\n snapTolerance,\n collapseThreshold,\n paneId,\n persistence,\n overlaying: pane.overlaying,\n overlayingNow: () => table[readBreakpoint()] === 'overlay',\n requestCollapse: () => pane.setValue('closed', 'toggle'),\n requestToggle: () => pane.toggle('toggle'),\n });\n\n const { handles, content } = splitHandles(children, InspectorHandle);\n const handle = resizable && pane.shown !== false && !pane.overlaying ? <PaneResizeContext.Provider value={resize}>{handles.length > 0 ? handles : <PaneHandle />}</PaneResizeContext.Provider> : null;\n\n return (\n <div\n {...withoutRemovedPaneProps(domProps)}\n role={domProps.role ?? 'complementary'}\n id={pane.id}\n ref={composedRef}\n className={classNames('kui-ShellPane', 'kui-ShellInspector', className)}\n {...paneAttributes(pane, attributes)}\n data-inset={inset || undefined}\n tabIndex={pane.overlaying ? -1 : domProps.tabIndex}\n style={\n {\n ...style,\n '--inspector-expanded-size': `${expandedSize}px`,\n '--inspector-min-size': `${minSize}px`,\n '--inspector-max-size': `${maxSize}px`,\n } as CSSPropertiesWithVars\n }\n >\n <div className=\"kui-ShellInspectorContent\">{content}</div>\n {handle}\n </div>\n );\n}) as InspectorComponent;\n\nInspector.displayName = 'Shell.Inspector';\nInspector.Handle = InspectorHandle;\n\nexport type { InspectorPublicProps };\n"],
5
+ "mappings": "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",
6
6
  "names": ["React", "classNames", "useComposedRefs", "INSPECTOR_PROP_NAMES", "INSPECTOR_DEFAULT_PRESENTATION", "Inspector", "props", "ref", "className", "presentation", "defaultOpen", "open", "onOpenChange", "expandedSize", "minSize", "maxSize", "resizable", "collapsible", "onExpand", "onCollapse", "onResize", "onResizeStart", "onResizeEnd", "snapPoints", "snapTolerance", "collapseThreshold", "paneId", "persistence", "children", "style", "onSizeChange", "sizeUpdate", "sizeUpdateMs", "size", "defaultSize", "inset", "id", "domProps", "table", "attributes", "usePresentationTable", "pane", "usePane", "toPaneValue", "detailRest", "value", "reason", "useInsetRegistration", "elementRef", "composedRef", "useComposedRefs", "resize", "useResizablePane", "endAnchoredGrowth", "readBreakpoint", "handles", "content", "splitHandles", "InspectorHandle", "handle", "PaneResizeContext", "PaneHandle", "withoutRemovedPaneProps", "classNames", "paneAttributes"]
7
7
  }