@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
@@ -1,2 +0,0 @@
1
- import{a as p,b as R,c as n}from"./chunk-YXLDRDHW.js";import{a as b}from"./chunk-R4XJNQX5.js";import{e as d}from"./chunk-3YLYGKFB.js";import{a as s}from"./chunk-ELAW7ZUG.js";import{b as m}from"./chunk-PBFSBHBS.js";import{a as v}from"./chunk-OS3FCYZY.js";var D={};v(D,{Body:()=>c,Cell:()=>C,ColumnHeaderCell:()=>i,Header:()=>P,Root:()=>T,Row:()=>f,RowHeaderCell:()=>y});import*as e from"react";import r from"classnames";var T=e.forwardRef((o,l)=>{let a=d(o,p.size),{layout:t,...u}=p,{className:w,children:H,layout:N,...h}=s(a,u),E=m({value:N,className:p.layout.className,propValues:p.layout.values});return e.createElement("div",{ref:l,className:r("kui-TableRoot",w),...h},e.createElement(b,null,e.createElement("table",{className:r("kui-TableRootTable",E)},H)))});T.displayName="Table.Root";var P=e.forwardRef(({className:o,...l},a)=>e.createElement("thead",{...l,ref:a,className:r("kui-TableHeader",o)}));P.displayName="Table.Header";var c=e.forwardRef(({className:o,...l},a)=>e.createElement("tbody",{...l,ref:a,className:r("kui-TableBody",o)}));c.displayName="Table.Body";var f=e.forwardRef((o,l)=>{let{className:a,...t}=s(o,R);return e.createElement("tr",{...t,ref:l,className:r("kui-TableRow",a)})});f.displayName="Table.Row";var C=e.forwardRef((o,l)=>{let{className:a,...t}=s(o,n);return e.createElement("td",{className:r("kui-TableCell",a),ref:l,...t})});C.displayName="Table.Cell";var i=e.forwardRef((o,l)=>{let{className:a,...t}=s(o,n);return e.createElement("th",{className:r("kui-TableCell","kui-TableColumnHeaderCell",a),scope:"col",ref:l,...t})});i.displayName="Table.ColumnHeaderCell";var y=e.forwardRef((o,l)=>{let{className:a,...t}=s(o,n);return e.createElement("th",{className:r("kui-TableCell","kui-TableRowHeaderCell",a),scope:"row",ref:l,...t})});y.displayName="Table.RowHeaderCell";export{T as a,P as b,c,f as d,C as e,i as f,y as g,D as h};
2
- //# sourceMappingURL=chunk-DBROSD2J.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/table.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\n\nimport { tableRootPropDefs, tableRowPropDefs, tableCellPropDefs } from './table.props.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { useThemeSizeProps } from '../helpers/theme-size.js';\nimport { getResponsiveClassNames } from '../helpers/get-responsive-styles.js';\nimport { ScrollArea } from './scroll-area.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\n\ntype TableRootElement = React.ElementRef<'div'>;\ntype TableRootOwnProps = GetPropDefTypes<typeof tableRootPropDefs>;\ninterface TableRootProps\n extends ComponentPropsWithout<'div', RemovedProps>,\n TableRootOwnProps {}\nconst TableRoot = React.forwardRef<TableRootElement, TableRootProps>((ownProps, forwardedRef) => {\n const props = useThemeSizeProps(ownProps, tableRootPropDefs.size);\n const { layout: layoutPropDef, ...rootPropDefs } = tableRootPropDefs;\n const { className, children, layout, ...rootProps } = extractProps(\n props,\n rootPropDefs\n );\n const tableLayoutClassNames = getResponsiveClassNames({\n value: layout,\n className: tableRootPropDefs.layout.className,\n propValues: tableRootPropDefs.layout.values,\n });\n return (\n <div ref={forwardedRef} className={classNames('kui-TableRoot', className)} {...rootProps}>\n <ScrollArea>\n <table className={classNames('kui-TableRootTable', tableLayoutClassNames)}>{children}</table>\n </ScrollArea>\n </div>\n );\n});\nTableRoot.displayName = 'Table.Root';\n\ntype TableHeaderElement = React.ElementRef<'thead'>;\ninterface TableHeaderProps extends ComponentPropsWithout<'thead', RemovedProps> {}\nconst TableHeader = React.forwardRef<TableHeaderElement, TableHeaderProps>(\n ({ className, ...props }, forwardedRef) => (\n <thead {...props} ref={forwardedRef} className={classNames('kui-TableHeader', className)} />\n )\n);\nTableHeader.displayName = 'Table.Header';\n\ntype TableBodyElement = React.ElementRef<'tbody'>;\ninterface TableBodyProps extends ComponentPropsWithout<'tbody', RemovedProps> {}\nconst TableBody = React.forwardRef<TableBodyElement, TableBodyProps>(\n ({ className, ...props }, forwardedRef) => (\n <tbody {...props} ref={forwardedRef} className={classNames('kui-TableBody', className)} />\n )\n);\nTableBody.displayName = 'Table.Body';\n\ntype TableRowElement = React.ElementRef<'tr'>;\ntype TableRowOwnProps = GetPropDefTypes<typeof tableRowPropDefs>;\ninterface TableRowProps extends ComponentPropsWithout<'tr', RemovedProps>, TableRowOwnProps {}\nconst TableRow = React.forwardRef<TableRowElement, TableRowProps>((props, forwardedRef) => {\n const { className, ...rowProps } = extractProps(props, tableRowPropDefs);\n return <tr {...rowProps} ref={forwardedRef} className={classNames('kui-TableRow', className)} />;\n});\nTableRow.displayName = 'Table.Row';\n\ntype TableCellElement = React.ElementRef<'td'>;\ntype TableCellOwnProps = GetPropDefTypes<typeof tableCellPropDefs>;\ninterface TableCellProps\n extends ComponentPropsWithout<'td', RemovedProps | 'width'>,\n TableCellOwnProps {}\nconst TableCell = React.forwardRef<TableCellElement, TableCellProps>((props, forwardedRef) => {\n const { className, ...cellProps } = extractProps(props, tableCellPropDefs);\n return <td className={classNames('kui-TableCell', className)} ref={forwardedRef} {...cellProps} />;\n});\nTableCell.displayName = 'Table.Cell';\n\ntype TableColumnHeaderCellElement = React.ElementRef<'th'>;\ninterface TableColumnHeaderCellProps\n extends ComponentPropsWithout<'th', RemovedProps>,\n TableCellOwnProps {}\nconst TableColumnHeaderCell = React.forwardRef<\n TableColumnHeaderCellElement,\n TableColumnHeaderCellProps\n>((props, forwardedRef) => {\n const { className, ...cellProps } = extractProps(props, tableCellPropDefs);\n return (\n <th\n className={classNames('kui-TableCell', 'kui-TableColumnHeaderCell', className)}\n scope=\"col\"\n ref={forwardedRef}\n {...cellProps}\n />\n );\n});\nTableColumnHeaderCell.displayName = 'Table.ColumnHeaderCell';\n\ntype TableRowHeaderCellElement = React.ElementRef<'th'>;\ninterface TableRowHeaderCellProps\n extends ComponentPropsWithout<'th', RemovedProps>,\n TableCellOwnProps {}\nconst TableRowHeaderCell = React.forwardRef<TableRowHeaderCellElement, TableRowHeaderCellProps>(\n (props, forwardedRef) => {\n const { className, ...cellProps } = extractProps(props, tableCellPropDefs);\n return (\n <th\n className={classNames('kui-TableCell', 'kui-TableRowHeaderCell', className)}\n scope=\"row\"\n ref={forwardedRef}\n {...cellProps}\n />\n );\n }\n);\nTableRowHeaderCell.displayName = 'Table.RowHeaderCell';\n\nexport {\n TableRoot as Root,\n TableHeader as Header,\n TableBody as Body,\n TableRow as Row,\n TableCell as Cell,\n TableColumnHeaderCell as ColumnHeaderCell,\n TableRowHeaderCell as RowHeaderCell,\n};\n\nexport type {\n TableRootProps as RootProps,\n TableHeaderProps as HeaderProps,\n TableBodyProps as BodyProps,\n TableRowProps as RowProps,\n TableCellProps as CellProps,\n TableColumnHeaderCellProps as ColumnHeaderCellProps,\n TableRowHeaderCellProps as RowHeaderCellProps,\n};\n"],
5
- "mappings": "8PAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,UAAAE,EAAA,SAAAC,EAAA,qBAAAC,EAAA,WAAAC,EAAA,SAAAC,EAAA,QAAAC,EAAA,kBAAAC,IAAA,UAAYC,MAAW,QACvB,OAAOC,MAAgB,aAgBvB,IAAMC,EAAkB,aAA6C,CAACC,EAAUC,IAAiB,CAC/F,IAAMC,EAAQC,EAAkBH,EAAUI,EAAkB,IAAI,EAC1D,CAAE,OAAQC,EAAe,GAAGC,CAAa,EAAIF,EAC7C,CAAE,UAAAG,EAAW,SAAAC,EAAU,OAAAC,EAAQ,GAAGC,CAAU,EAAIC,EACpDT,EACAI,CACF,EACMM,EAAwBC,EAAwB,CACpD,MAAOJ,EACP,UAAWL,EAAkB,OAAO,UACpC,WAAYA,EAAkB,OAAO,MACvC,CAAC,EACD,OACE,gBAAC,OAAI,IAAKH,EAAc,UAAWa,EAAW,gBAAiBP,CAAS,EAAI,GAAGG,GAC7E,gBAACK,EAAA,KACC,gBAAC,SAAM,UAAWD,EAAW,qBAAsBF,CAAqB,GAAIJ,CAAS,CACvF,CACF,CAEJ,CAAC,EACDT,EAAU,YAAc,aAIxB,IAAMiB,EAAoB,aACxB,CAAC,CAAE,UAAAT,EAAW,GAAGL,CAAM,EAAGD,IACxB,gBAAC,SAAO,GAAGC,EAAO,IAAKD,EAAc,UAAWa,EAAW,kBAAmBP,CAAS,EAAG,CAE9F,EACAS,EAAY,YAAc,eAI1B,IAAMC,EAAkB,aACtB,CAAC,CAAE,UAAAV,EAAW,GAAGL,CAAM,EAAGD,IACxB,gBAAC,SAAO,GAAGC,EAAO,IAAKD,EAAc,UAAWa,EAAW,gBAAiBP,CAAS,EAAG,CAE5F,EACAU,EAAU,YAAc,aAKxB,IAAMC,EAAiB,aAA2C,CAAChB,EAAOD,IAAiB,CACzF,GAAM,CAAE,UAAAM,EAAW,GAAGY,CAAS,EAAIR,EAAaT,EAAOkB,CAAgB,EACvE,OAAO,gBAAC,MAAI,GAAGD,EAAU,IAAKlB,EAAc,UAAWa,EAAW,eAAgBP,CAAS,EAAG,CAChG,CAAC,EACDW,EAAS,YAAc,YAOvB,IAAMG,EAAkB,aAA6C,CAACnB,EAAOD,IAAiB,CAC5F,GAAM,CAAE,UAAAM,EAAW,GAAGe,CAAU,EAAIX,EAAaT,EAAOqB,CAAiB,EACzE,OAAO,gBAAC,MAAG,UAAWT,EAAW,gBAAiBP,CAAS,EAAG,IAAKN,EAAe,GAAGqB,EAAW,CAClG,CAAC,EACDD,EAAU,YAAc,aAMxB,IAAMG,EAA8B,aAGlC,CAACtB,EAAOD,IAAiB,CACzB,GAAM,CAAE,UAAAM,EAAW,GAAGe,CAAU,EAAIX,EAAaT,EAAOqB,CAAiB,EACzE,OACE,gBAAC,MACC,UAAWT,EAAW,gBAAiB,4BAA6BP,CAAS,EAC7E,MAAM,MACN,IAAKN,EACJ,GAAGqB,EACN,CAEJ,CAAC,EACDE,EAAsB,YAAc,yBAMpC,IAAMC,EAA2B,aAC/B,CAACvB,EAAOD,IAAiB,CACvB,GAAM,CAAE,UAAAM,EAAW,GAAGe,CAAU,EAAIX,EAAaT,EAAOqB,CAAiB,EACzE,OACE,gBAAC,MACC,UAAWT,EAAW,gBAAiB,yBAA0BP,CAAS,EAC1E,MAAM,MACN,IAAKN,EACJ,GAAGqB,EACN,CAEJ,CACF,EACAG,EAAmB,YAAc",
6
- "names": ["table_exports", "__export", "TableBody", "TableCell", "TableColumnHeaderCell", "TableHeader", "TableRoot", "TableRow", "TableRowHeaderCell", "React", "classNames", "TableRoot", "ownProps", "forwardedRef", "props", "useThemeSizeProps", "tableRootPropDefs", "layoutPropDef", "rootPropDefs", "className", "children", "layout", "rootProps", "extractProps", "tableLayoutClassNames", "getResponsiveClassNames", "classNames", "ScrollArea", "TableHeader", "TableBody", "TableRow", "rowProps", "tableRowPropDefs", "TableCell", "cellProps", "tableCellPropDefs", "TableColumnHeaderCell", "TableRowHeaderCell"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a as e}from"./chunk-FNAE6HUI.js";var o={...e};export{o as a};
2
- //# sourceMappingURL=chunk-DFGY2NZB.js.map
@@ -1,2 +0,0 @@
1
- import{a as s}from"./chunk-IDOZJVO6.js";import{a as i}from"./chunk-KT2CMUS5.js";import{a as r}from"./chunk-ELAW7ZUG.js";import*as o from"react";import D from"classnames";import{Slot as R}from"radix-ui";var b=o.forwardRef((a,n)=>{let{asChild:t,className:l,children:m,color:c,radius:f,tooltip:e,tooltipSide:h="top",tooltipAlign:C="center",tooltipDelayDuration:d,tooltipDisableHoverableContent:P,...u}=r(a,s),y=o.useMemo(()=>t?R.Root:"span",[t]),p=o.createElement(y,{"data-accent-color":c,"data-radius":f,...u,ref:n,className:D("kui-reset","kui-Chip",l)},m);return e?o.createElement(i,{content:e,side:h,align:C,delayDuration:d,disableHoverableContent:P},p):p});b.displayName="Chip";export{b as a};
2
- //# sourceMappingURL=chunk-DSPYHO3L.js.map
@@ -1,2 +0,0 @@
1
- import{a as O}from"./chunk-BEP4AH5V.js";import{b as W,d as V,f as L}from"./chunk-IX5HIHVI.js";import{a as D}from"./chunk-MJJ7XDIP.js";import{b as z,c as h}from"./chunk-PPZY7PJA.js";import{c as v}from"./chunk-3KQE2PSJ.js";import{a as S}from"./chunk-R4XJNQX5.js";import{e as E}from"./chunk-3YLYGKFB.js";import{c as p,d as G,e as w,f as B}from"./chunk-3XHTJZNP.js";import{b as f,c as R,d as I,e as b}from"./chunk-KZEZDBE7.js";import{a as d}from"./chunk-ELAW7ZUG.js";import{a as ee}from"./chunk-OS3FCYZY.js";var te={};ee(te,{CheckboxItem:()=>Q,Content:()=>F,Group:()=>K,Item:()=>q,Label:()=>_,RadioGroup:()=>H,RadioItem:()=>J,Root:()=>A,Separator:()=>Z,Sub:()=>U,SubContent:()=>Y,SubTrigger:()=>X,Trigger:()=>j,Virtual:()=>O});import*as e from"react";import a from"classnames";import{ContextMenu as i,Slot as y}from"radix-ui";var A=t=>e.createElement(i.Root,{...t});A.displayName="ContextMenu.Root";var j=e.forwardRef(({children:t,...n},o)=>e.createElement(i.Trigger,{...n,ref:o,asChild:!0},D(t)));j.displayName="ContextMenu.Trigger";var k=e.createContext({}),F=e.forwardRef((t,n)=>{let o=E(t,p.size),u=z(),{size:r=p.size.default}=o,{className:s,children:C,color:x,container:l,forceMount:g,submenuBehavior:T,virtualized:M=!1,...P}=d(o,p),m=x||u.accentColor,c=f(r,p.size.default),$=e.useMemo(()=>({size:r,color:m}),[r,m]),N=e.createElement(v,{size:r},e.createElement(k.Provider,{value:$},C));return e.createElement(i.Portal,{container:l,forceMount:g},e.createElement(h,{asChild:!0},e.createElement(i.Content,{"data-accent-color":m,alignOffset:R(c),collisionPadding:10,...P,asChild:!1,ref:n,className:a("kui-PopperContent","kui-BaseMenuContent","kui-variant-soft","kui-ContextMenuContent",s)},M?e.createElement("div",{className:a("kui-BaseMenuViewport","kui-ContextMenuViewport","kui-virtualized")},N):e.createElement(S,{type:"auto",scrollbars:"vertical"},e.createElement("div",{className:a("kui-BaseMenuViewport","kui-ContextMenuViewport")},N)))))});F.displayName="ContextMenu.Content";var _=e.forwardRef(({className:t,...n},o)=>e.createElement(i.Label,{...n,asChild:!1,ref:o,className:a("kui-BaseMenuLabel","kui-ContextMenuLabel",t)}));_.displayName="ContextMenu.Label";var q=e.forwardRef((t,n)=>{let{className:o,children:u,color:r=G.color.default,shortcut:s,...C}=t;return e.createElement(i.Item,{"data-accent-color":r,"aria-keyshortcuts":s?I(s):void 0,...C,ref:n,className:a("kui-reset","kui-BaseMenuItem","kui-ContextMenuItem",o)},e.createElement(y.Slottable,null,u),s&&e.createElement(b,{shortcut:s,className:"kui-ContextMenuShortcut"}))});q.displayName="ContextMenu.Item";var K=e.forwardRef(({className:t,...n},o)=>e.createElement(i.Group,{...n,asChild:!1,ref:o,className:a("kui-BaseMenuGroup","kui-ContextMenuGroup",t)}));K.displayName="ContextMenu.Group";var H=e.forwardRef(({className:t,...n},o)=>e.createElement(i.RadioGroup,{...n,asChild:!1,ref:o,className:a("kui-BaseMenuRadioGroup","kui-ContextMenuRadioGroup",t)}));H.displayName="ContextMenu.RadioGroup";var J=e.forwardRef((t,n)=>{let{children:o,className:u,color:r=B.color.default,...s}=t;return e.createElement(i.RadioItem,{...s,asChild:!1,ref:n,"data-accent-color":r,className:a("kui-BaseMenuItem","kui-BaseMenuRadioItem","kui-ContextMenuItem","kui-ContextMenuRadioItem",u)},e.createElement(y.Slottable,null,o),e.createElement(i.ItemIndicator,{className:"kui-BaseMenuItemIndicator kui-ContextMenuItemIndicator"},e.createElement(L,{className:"kui-BaseMenuItemIndicatorIcon kui-ContextMenuItemIndicatorIcon"})))});J.displayName="ContextMenu.RadioItem";var Q=e.forwardRef((t,n)=>{let{children:o,className:u,shortcut:r,color:s=w.color.default,...C}=t;return e.createElement(i.CheckboxItem,{"aria-keyshortcuts":r?I(r):void 0,...C,asChild:!1,ref:n,"data-accent-color":s,className:a("kui-BaseMenuItem","kui-BaseMenuCheckboxItem","kui-ContextMenuItem","kui-ContextMenuCheckboxItem",u)},e.createElement(y.Slottable,null,o),e.createElement(i.ItemIndicator,{className:"kui-BaseMenuItemIndicator kui-ContextMenuItemIndicator"},e.createElement(W,{className:"kui-BaseMenuItemIndicatorIcon kui-ContextMenuItemIndicatorIcon"})),r&&e.createElement(b,{shortcut:r,className:"kui-ContextMenuShortcut"}))});Q.displayName="ContextMenu.CheckboxItem";var U=t=>e.createElement(i.Sub,{...t});U.displayName="ContextMenu.Sub";var X=e.forwardRef((t,n)=>{let{className:o,children:u,...r}=t;return e.createElement(i.SubTrigger,{...r,asChild:!1,ref:n,className:a("kui-BaseMenuItem","kui-BaseMenuSubTrigger","kui-ContextMenuItem","kui-ContextMenuSubTrigger",o)},u,e.createElement("div",{className:"kui-BaseMenuShortcut kui-ContextMenuShortcut"},e.createElement(V,{className:"kui-BaseMenuSubTriggerIcon kui-ContextMenuSubTriggerIcon"})))});X.displayName="ContextMenu.SubTrigger";var Y=e.forwardRef((t,n)=>{let o=e.useContext(k),u=t.size??o.size,r=t.color??o.color,{className:s,children:C,container:x,forceMount:l,color:g,virtualized:T=!1,...M}=d({...t,size:u},p),P=f(u,p.size.default),m=e.useMemo(()=>({size:u,color:r}),[u,r]),c=e.createElement(v,{size:u},e.createElement(k.Provider,{value:m},C));return e.createElement(i.Portal,{container:x,forceMount:l},e.createElement(h,{asChild:!0},e.createElement(i.SubContent,{"data-accent-color":r,alignOffset:R(P),sideOffset:1,collisionPadding:10,...M,asChild:!1,ref:n,className:a("kui-PopperContent","kui-BaseMenuContent","kui-variant-soft","kui-BaseMenuSubContent","kui-ContextMenuContent","kui-ContextMenuSubContent",s)},T?e.createElement("div",{className:a("kui-BaseMenuViewport","kui-ContextMenuViewport","kui-virtualized")},c):e.createElement(S,{type:"auto",scrollbars:"vertical"},e.createElement("div",{className:a("kui-BaseMenuViewport","kui-ContextMenuViewport")},c)))))});Y.displayName="ContextMenu.SubContent";var Z=e.forwardRef(({className:t,...n},o)=>e.createElement(i.Separator,{...n,asChild:!1,ref:o,className:a("kui-BaseMenuSeparator","kui-ContextMenuSeparator",t)}));Z.displayName="ContextMenu.Separator";export{A as a,j as b,F as c,_ as d,q as e,K as f,H as g,J as h,Q as i,U as j,X as k,Y as l,Z as m,te as n};
2
- //# sourceMappingURL=chunk-E2D2VWUI.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/context-menu.tsx"],
4
- "sourcesContent": ["/**\n * Context Menu component that provides right-click menu functionality.\n * Requires client-side rendering due to event handling and portal usage.\n */\n'use client';\n\nimport { warnDeprecated } from '../helpers/warn-deprecated.js';\nimport * as React from 'react';\nimport { VirtualMenu } from './virtual-menu.js';\nimport classNames from 'classnames';\nimport { ContextMenu as ContextMenuPrimitive, Slot } from 'radix-ui';\n\nimport { ScrollArea } from './scroll-area.js';\nimport {\n contextMenuContentPropDefs,\n contextMenuSubContentPropDefs,\n contextMenuItemPropDefs,\n contextMenuCheckboxItemPropDefs,\n contextMenuRadioItemPropDefs,\n} from './context-menu.props.js';\nimport { Theme, useThemeContext } from './theme.js';\nimport { ThickCheckIcon, ThickChevronRightIcon, ThickDotIcon } from './icons.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { useThemeSizeProps } from '../helpers/theme-size.js';\nimport { requireReactElement } from '../helpers/require-react-element.js';\nimport { MenuProvider } from './_internal/menu-context.js';\nimport {\n MenuShortcut,\n getMenuAlignOffset,\n toAriaKeyShortcuts,\n useResolvedResponsiveValue,\n} from './_internal/base-menu.utils.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes, Responsive } from '../props/prop-def.js';\n\ninterface ContextMenuRootProps\n extends React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Root> {}\nconst ContextMenuRoot: React.FC<ContextMenuRootProps> = (props) => (\n <ContextMenuPrimitive.Root {...props} />\n);\nContextMenuRoot.displayName = 'ContextMenu.Root';\n\ntype ContextMenuTriggerElement = React.ElementRef<typeof ContextMenuPrimitive.Trigger>;\ninterface ContextMenuTriggerProps\n extends ComponentPropsWithout<typeof ContextMenuPrimitive.Trigger, RemovedProps> {}\nconst ContextMenuTrigger = React.forwardRef<ContextMenuTriggerElement, ContextMenuTriggerProps>(\n ({ children, ...props }, forwardedRef) => (\n <ContextMenuPrimitive.Trigger {...props} ref={forwardedRef} asChild>\n {requireReactElement(children)}\n </ContextMenuPrimitive.Trigger>\n ),\n);\nContextMenuTrigger.displayName = 'ContextMenu.Trigger';\n\n/** Visual props shared by Content and SubContent. */\ntype ContextMenuSurfaceProps = GetPropDefTypes<typeof contextMenuContentPropDefs>;\n\ntype ContextMenuContentContextValue = {\n size?: ContextMenuSurfaceProps['size'];\n color?: ContextMenuSurfaceProps['color'];\n};\nconst ContextMenuContentContext = React.createContext<ContextMenuContentContextValue>({});\ntype ContextMenuContentElement = React.ElementRef<typeof ContextMenuPrimitive.Content>;\ninterface ContextMenuContentProps\n extends ComponentPropsWithout<typeof ContextMenuPrimitive.Content, RemovedProps>,\n ContextMenuSurfaceProps {\n container?: React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Portal>['container'];\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 context menu.\n */\n virtualized?: boolean;\n /**\n * @deprecated Has no effect. ContextMenu submenus always cascade.\n */\n submenuBehavior?: Responsive<'cascade' | 'drill-down'>;\n}\nconst ContextMenuContent = React.forwardRef<ContextMenuContentElement, ContextMenuContentProps>(\n (ownProps, forwardedRef) => {\n const props = useThemeSizeProps(ownProps, contextMenuContentPropDefs.size);\n const themeContext = useThemeContext();\n const {\n size = contextMenuContentPropDefs.size.default,\n } = props;\n const {\n className,\n children,\n color,\n container,\n forceMount,\n submenuBehavior: _submenuBehavior,\n virtualized = false,\n ...contentProps\n } = extractProps(props, contextMenuContentPropDefs);\n\n const resolvedColor = color || themeContext.accentColor;\n const scalarSize = useResolvedResponsiveValue(size, contextMenuContentPropDefs.size.default);\n\n const contextValue = React.useMemo(\n () => ({ size, color: resolvedColor }),\n [size, resolvedColor],\n );\n\n const body = (\n <MenuProvider size={size}>\n <ContextMenuContentContext.Provider value={contextValue}>{children}</ContextMenuContentContext.Provider>\n </MenuProvider>\n );\n\n return (\n <ContextMenuPrimitive.Portal container={container} forceMount={forceMount}>\n <Theme asChild>\n <ContextMenuPrimitive.Content\n data-accent-color={resolvedColor}\n alignOffset={getMenuAlignOffset(scalarSize)}\n collisionPadding={10}\n {...contentProps}\n asChild={false}\n ref={forwardedRef}\n className={classNames(\n 'kui-PopperContent',\n 'kui-BaseMenuContent',\n 'kui-variant-soft',\n 'kui-ContextMenuContent',\n className,\n )}\n >\n {virtualized ? (\n <div className={classNames('kui-BaseMenuViewport', 'kui-ContextMenuViewport', 'kui-virtualized')}>\n {body}\n </div>\n ) : (\n <ScrollArea type=\"auto\" scrollbars=\"vertical\">\n <div className={classNames('kui-BaseMenuViewport', 'kui-ContextMenuViewport')}>{body}</div>\n </ScrollArea>\n )}\n </ContextMenuPrimitive.Content>\n </Theme>\n </ContextMenuPrimitive.Portal>\n );\n },\n);\nContextMenuContent.displayName = 'ContextMenu.Content';\n\ntype ContextMenuLabelElement = React.ElementRef<typeof ContextMenuPrimitive.Label>;\ninterface ContextMenuLabelProps\n extends ComponentPropsWithout<typeof ContextMenuPrimitive.Label, RemovedProps> {}\nconst ContextMenuLabel = React.forwardRef<ContextMenuLabelElement, ContextMenuLabelProps>(\n ({ className, ...props }, forwardedRef) => (\n <ContextMenuPrimitive.Label\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('kui-BaseMenuLabel', 'kui-ContextMenuLabel', className)}\n />\n ),\n);\nContextMenuLabel.displayName = 'ContextMenu.Label';\n\ntype ContextMenuItemElement = React.ElementRef<typeof ContextMenuPrimitive.Item>;\ntype ContextMenuItemOwnProps = GetPropDefTypes<typeof contextMenuItemPropDefs>;\ninterface ContextMenuItemProps\n extends ComponentPropsWithout<typeof ContextMenuPrimitive.Item, RemovedProps>,\n ContextMenuItemOwnProps {}\nconst ContextMenuItem = React.forwardRef<ContextMenuItemElement, ContextMenuItemProps>(\n (props, forwardedRef) => {\n const {\n className,\n children,\n color = contextMenuItemPropDefs.color.default,\n shortcut,\n ...itemProps\n } = props;\n return (\n <ContextMenuPrimitive.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-ContextMenuItem', className)}\n >\n <Slot.Slottable>{children}</Slot.Slottable>\n {shortcut && <MenuShortcut shortcut={shortcut} className=\"kui-ContextMenuShortcut\" />}\n </ContextMenuPrimitive.Item>\n );\n },\n);\nContextMenuItem.displayName = 'ContextMenu.Item';\n\ntype ContextMenuGroupElement = React.ElementRef<typeof ContextMenuPrimitive.Group>;\ninterface ContextMenuGroupProps\n extends ComponentPropsWithout<typeof ContextMenuPrimitive.Group, RemovedProps> {}\nconst ContextMenuGroup = React.forwardRef<ContextMenuGroupElement, ContextMenuGroupProps>(\n ({ className, ...props }, forwardedRef) => (\n <ContextMenuPrimitive.Group\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('kui-BaseMenuGroup', 'kui-ContextMenuGroup', className)}\n />\n ),\n);\nContextMenuGroup.displayName = 'ContextMenu.Group';\n\ntype ContextMenuRadioGroupElement = React.ElementRef<typeof ContextMenuPrimitive.RadioGroup>;\ninterface ContextMenuRadioGroupProps\n extends ComponentPropsWithout<typeof ContextMenuPrimitive.RadioGroup, RemovedProps> {}\nconst ContextMenuRadioGroup = React.forwardRef<\n ContextMenuRadioGroupElement,\n ContextMenuRadioGroupProps\n>(({ className, ...props }, forwardedRef) => (\n <ContextMenuPrimitive.RadioGroup\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('kui-BaseMenuRadioGroup', 'kui-ContextMenuRadioGroup', className)}\n />\n));\nContextMenuRadioGroup.displayName = 'ContextMenu.RadioGroup';\n\ntype ContextMenuRadioItemElement = React.ElementRef<typeof ContextMenuPrimitive.RadioItem>;\ntype ContextMenuRadioItemOwnProps = GetPropDefTypes<typeof contextMenuRadioItemPropDefs>;\ninterface ContextMenuRadioItemProps\n extends ComponentPropsWithout<typeof ContextMenuPrimitive.RadioItem, RemovedProps>,\n ContextMenuRadioItemOwnProps {}\nconst ContextMenuRadioItem = React.forwardRef<\n ContextMenuRadioItemElement,\n ContextMenuRadioItemProps\n>((props, forwardedRef) => {\n const {\n children,\n className,\n color = contextMenuRadioItemPropDefs.color.default,\n ...itemProps\n } = props;\n return (\n <ContextMenuPrimitive.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-ContextMenuItem',\n 'kui-ContextMenuRadioItem',\n className,\n )}\n >\n <Slot.Slottable>{children}</Slot.Slottable>\n <ContextMenuPrimitive.ItemIndicator className=\"kui-BaseMenuItemIndicator kui-ContextMenuItemIndicator\">\n <ThickDotIcon className=\"kui-BaseMenuItemIndicatorIcon kui-ContextMenuItemIndicatorIcon\" />\n </ContextMenuPrimitive.ItemIndicator>\n </ContextMenuPrimitive.RadioItem>\n );\n});\nContextMenuRadioItem.displayName = 'ContextMenu.RadioItem';\n\ntype ContextMenuCheckboxItemElement = React.ElementRef<typeof ContextMenuPrimitive.CheckboxItem>;\ntype ContextMenuCheckboxItemOwnProps = GetPropDefTypes<typeof contextMenuCheckboxItemPropDefs>;\ninterface ContextMenuCheckboxItemProps\n extends ComponentPropsWithout<typeof ContextMenuPrimitive.CheckboxItem, RemovedProps>,\n ContextMenuCheckboxItemOwnProps {}\nconst ContextMenuCheckboxItem = React.forwardRef<\n ContextMenuCheckboxItemElement,\n ContextMenuCheckboxItemProps\n>((props, forwardedRef) => {\n const {\n children,\n className,\n shortcut,\n color = contextMenuCheckboxItemPropDefs.color.default,\n ...itemProps\n } = props;\n return (\n <ContextMenuPrimitive.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-ContextMenuItem',\n 'kui-ContextMenuCheckboxItem',\n className,\n )}\n >\n <Slot.Slottable>{children}</Slot.Slottable>\n <ContextMenuPrimitive.ItemIndicator className=\"kui-BaseMenuItemIndicator kui-ContextMenuItemIndicator\">\n <ThickCheckIcon className=\"kui-BaseMenuItemIndicatorIcon kui-ContextMenuItemIndicatorIcon\" />\n </ContextMenuPrimitive.ItemIndicator>\n {shortcut && <MenuShortcut shortcut={shortcut} className=\"kui-ContextMenuShortcut\" />}\n </ContextMenuPrimitive.CheckboxItem>\n );\n});\nContextMenuCheckboxItem.displayName = 'ContextMenu.CheckboxItem';\n\ninterface ContextMenuSubProps\n extends ComponentPropsWithout<typeof ContextMenuPrimitive.Sub, RemovedProps> {}\nconst ContextMenuSub: React.FC<ContextMenuSubProps> = (props) => (\n <ContextMenuPrimitive.Sub {...props} />\n);\nContextMenuSub.displayName = 'ContextMenu.Sub';\n\ntype ContextMenuSubTriggerElement = React.ElementRef<typeof ContextMenuPrimitive.SubTrigger>;\ninterface ContextMenuSubTriggerProps\n extends ComponentPropsWithout<typeof ContextMenuPrimitive.SubTrigger, RemovedProps> {}\nconst ContextMenuSubTrigger = React.forwardRef<\n ContextMenuSubTriggerElement,\n ContextMenuSubTriggerProps\n>((props, forwardedRef) => {\n const { className, children, ...subTriggerProps } = props;\n return (\n <ContextMenuPrimitive.SubTrigger\n {...subTriggerProps}\n asChild={false}\n ref={forwardedRef}\n className={classNames(\n 'kui-BaseMenuItem',\n 'kui-BaseMenuSubTrigger',\n 'kui-ContextMenuItem',\n 'kui-ContextMenuSubTrigger',\n className,\n )}\n >\n {children}\n <div className=\"kui-BaseMenuShortcut kui-ContextMenuShortcut\">\n <ThickChevronRightIcon className=\"kui-BaseMenuSubTriggerIcon kui-ContextMenuSubTriggerIcon\" />\n </div>\n </ContextMenuPrimitive.SubTrigger>\n );\n});\nContextMenuSubTrigger.displayName = 'ContextMenu.SubTrigger';\n\ntype ContextMenuSubContentElement = React.ElementRef<typeof ContextMenuPrimitive.SubContent>;\ninterface ContextMenuSubContentProps\n extends ComponentPropsWithout<typeof ContextMenuPrimitive.SubContent, RemovedProps>,\n ContextMenuSurfaceProps {\n container?: React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Portal>['container'];\n /**\n * When true, skips the ScrollArea wrapper to allow VirtualMenu to handle its own scrolling.\n */\n virtualized?: boolean;\n}\nconst ContextMenuSubContent = React.forwardRef<\n ContextMenuSubContentElement,\n ContextMenuSubContentProps\n>((props, forwardedRef) => {\n const parent = React.useContext(ContextMenuContentContext);\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 }, contextMenuSubContentPropDefs);\n\n const scalarSize = useResolvedResponsiveValue(size, contextMenuSubContentPropDefs.size.default);\n\n const contextValue = React.useMemo(\n () => ({ size, color }),\n [size, color],\n );\n\n const body = (\n <MenuProvider size={size}>\n <ContextMenuContentContext.Provider value={contextValue}>{children}</ContextMenuContentContext.Provider>\n </MenuProvider>\n );\n\n return (\n <ContextMenuPrimitive.Portal container={container} forceMount={forceMount}>\n <Theme asChild>\n <ContextMenuPrimitive.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-ContextMenuContent',\n 'kui-ContextMenuSubContent',\n className,\n )}\n >\n {virtualized ? (\n <div className={classNames('kui-BaseMenuViewport', 'kui-ContextMenuViewport', 'kui-virtualized')}>\n {body}\n </div>\n ) : (\n <ScrollArea type=\"auto\" scrollbars=\"vertical\">\n <div className={classNames('kui-BaseMenuViewport', 'kui-ContextMenuViewport')}>{body}</div>\n </ScrollArea>\n )}\n </ContextMenuPrimitive.SubContent>\n </Theme>\n </ContextMenuPrimitive.Portal>\n );\n});\nContextMenuSubContent.displayName = 'ContextMenu.SubContent';\n\ntype ContextMenuSeparatorElement = React.ElementRef<typeof ContextMenuPrimitive.Separator>;\ninterface ContextMenuSeparatorProps\n extends ComponentPropsWithout<typeof ContextMenuPrimitive.Separator, RemovedProps> {}\nconst ContextMenuSeparator = React.forwardRef<\n ContextMenuSeparatorElement,\n ContextMenuSeparatorProps\n>(({ className, ...props }, forwardedRef) => (\n <ContextMenuPrimitive.Separator\n {...props}\n asChild={false}\n ref={forwardedRef}\n className={classNames('kui-BaseMenuSeparator', 'kui-ContextMenuSeparator', className)}\n />\n));\nContextMenuSeparator.displayName = 'ContextMenu.Separator';\n\nexport {\n ContextMenuRoot as Root,\n ContextMenuTrigger as Trigger,\n ContextMenuContent as Content,\n ContextMenuLabel as Label,\n ContextMenuItem as Item,\n ContextMenuGroup as Group,\n ContextMenuRadioGroup as RadioGroup,\n ContextMenuRadioItem as RadioItem,\n ContextMenuCheckboxItem as CheckboxItem,\n ContextMenuSub as Sub,\n ContextMenuSubTrigger as SubTrigger,\n ContextMenuSubContent as SubContent,\n ContextMenuSeparator as Separator,\n VirtualMenu as Virtual,\n};\n\nexport type {\n ContextMenuRootProps as RootProps,\n ContextMenuTriggerProps as TriggerProps,\n ContextMenuContentProps as ContentProps,\n ContextMenuLabelProps as LabelProps,\n ContextMenuItemProps as ItemProps,\n ContextMenuGroupProps as GroupProps,\n ContextMenuRadioGroupProps as RadioGroupProps,\n ContextMenuRadioItemProps as RadioItemProps,\n ContextMenuCheckboxItemProps as CheckboxItemProps,\n ContextMenuSubProps as SubProps,\n ContextMenuSubTriggerProps as SubTriggerProps,\n ContextMenuSubContentProps as SubContentProps,\n ContextMenuSeparatorProps as SeparatorProps,\n};\n"],
5
- "mappings": "wfAAA,IAAAA,GAAA,GAAAC,GAAAD,GAAA,kBAAAE,EAAA,YAAAC,EAAA,UAAAC,EAAA,SAAAC,EAAA,UAAAC,EAAA,eAAAC,EAAA,cAAAC,EAAA,SAAAC,EAAA,cAAAC,EAAA,QAAAC,EAAA,eAAAC,EAAA,eAAAC,EAAA,YAAAC,EAAA,YAAAC,IAOA,UAAYC,MAAW,QAEvB,OAAOC,MAAgB,aACvB,OAAS,eAAeC,EAAsB,QAAAC,MAAY,WA4B1D,IAAMC,EAAmDC,GACvD,gBAACC,EAAqB,KAArB,CAA2B,GAAGD,EAAO,EAExCD,EAAgB,YAAc,mBAK9B,IAAMG,EAA2B,aAC/B,CAAC,CAAE,SAAAC,EAAU,GAAGH,CAAM,EAAGI,IACvB,gBAACH,EAAqB,QAArB,CAA8B,GAAGD,EAAO,IAAKI,EAAc,QAAO,IAChEC,EAAoBF,CAAQ,CAC/B,CAEJ,EACAD,EAAmB,YAAc,sBASjC,IAAMI,EAAkC,gBAA8C,CAAC,CAAC,EAgBlFC,EAA2B,aAC/B,CAACC,EAAUJ,IAAiB,CAC1B,IAAMJ,EAAQS,EAAkBD,EAAUE,EAA2B,IAAI,EACnEC,EAAeC,EAAgB,EAC/B,CACJ,KAAAC,EAAOH,EAA2B,KAAK,OACzC,EAAIV,EACE,CACJ,UAAAc,EACA,SAAAX,EACA,MAAAY,EACA,UAAAC,EACA,WAAAC,EACA,gBAAiBC,EACjB,YAAAC,EAAc,GACd,GAAGC,CACL,EAAIC,EAAarB,EAAOU,CAA0B,EAE5CY,EAAgBP,GAASJ,EAAa,YACtCY,EAAaC,EAA2BX,EAAMH,EAA2B,KAAK,OAAO,EAErFe,EAAqB,UACzB,KAAO,CAAE,KAAAZ,EAAM,MAAOS,CAAc,GACpC,CAACT,EAAMS,CAAa,CACtB,EAEMI,EACJ,gBAACC,EAAA,CAAa,KAAMd,GAClB,gBAACP,EAA0B,SAA1B,CAAmC,MAAOmB,GAAetB,CAAS,CACrE,EAGF,OACE,gBAACF,EAAqB,OAArB,CAA4B,UAAWe,EAAW,WAAYC,GAC7D,gBAACW,EAAA,CAAM,QAAO,IACZ,gBAAC3B,EAAqB,QAArB,CACC,oBAAmBqB,EACnB,YAAaO,EAAmBN,CAAU,EAC1C,iBAAkB,GACjB,GAAGH,EACJ,QAAS,GACT,IAAKhB,EACL,UAAW0B,EACT,oBACA,sBACJ,mBACI,yBACAhB,CACF,GAECK,EACC,gBAAC,OAAI,UAAWW,EAAW,uBAAwB,0BAA2B,iBAAiB,GAC5FJ,CACH,EAEA,gBAACK,EAAA,CAAW,KAAK,OAAO,WAAW,YACjC,gBAAC,OAAI,UAAWD,EAAW,uBAAwB,yBAAyB,GAAIJ,CAAK,CACvF,CAEJ,CACF,CACF,CAEJ,CACF,EACAnB,EAAmB,YAAc,sBAKjC,IAAMyB,EAAyB,aAC7B,CAAC,CAAE,UAAAlB,EAAW,GAAGd,CAAM,EAAGI,IACxB,gBAACH,EAAqB,MAArB,CACE,GAAGD,EACJ,QAAS,GACT,IAAKI,EACL,UAAW0B,EAAW,oBAAqB,uBAAwBhB,CAAS,EAC9E,CAEJ,EACAkB,EAAiB,YAAc,oBAO/B,IAAMC,EAAwB,aAC5B,CAACjC,EAAOI,IAAiB,CACvB,GAAM,CACJ,UAAAU,EACA,SAAAX,EACA,MAAAY,EAAQmB,EAAwB,MAAM,QACtC,SAAAC,EACA,GAAGC,CACL,EAAIpC,EACJ,OACE,gBAACC,EAAqB,KAArB,CACC,oBAAmBc,EACnB,oBAAmBoB,EAAWE,EAAmBF,CAAQ,EAAI,OAC5D,GAAGC,EACJ,IAAKhC,EACL,UAAW0B,EAAW,YAAa,mBAAoB,sBAAuBhB,CAAS,GAEvF,gBAACwB,EAAK,UAAL,KAAgBnC,CAAS,EACzBgC,GAAY,gBAACI,EAAA,CAAa,SAAUJ,EAAU,UAAU,0BAA0B,CACrF,CAEJ,CACF,EACAF,EAAgB,YAAc,mBAK9B,IAAMO,EAAyB,aAC7B,CAAC,CAAE,UAAA1B,EAAW,GAAGd,CAAM,EAAGI,IACxB,gBAACH,EAAqB,MAArB,CACE,GAAGD,EACJ,QAAS,GACT,IAAKI,EACL,UAAW0B,EAAW,oBAAqB,uBAAwBhB,CAAS,EAC9E,CAEJ,EACA0B,EAAiB,YAAc,oBAK/B,IAAMC,EAA8B,aAGlC,CAAC,CAAE,UAAA3B,EAAW,GAAGd,CAAM,EAAGI,IAC1B,gBAACH,EAAqB,WAArB,CACE,GAAGD,EACJ,QAAS,GACT,IAAKI,EACL,UAAW0B,EAAW,yBAA0B,4BAA6BhB,CAAS,EACxF,CACD,EACD2B,EAAsB,YAAc,yBAOpC,IAAMC,EAA6B,aAGjC,CAAC1C,EAAOI,IAAiB,CACzB,GAAM,CACJ,SAAAD,EACA,UAAAW,EACA,MAAAC,EAAQ4B,EAA6B,MAAM,QAC3C,GAAGP,CACL,EAAIpC,EACJ,OACE,gBAACC,EAAqB,UAArB,CACE,GAAGmC,EACJ,QAAS,GACT,IAAKhC,EACL,oBAAmBW,EACnB,UAAWe,EACT,mBACA,wBACA,sBACA,2BACAhB,CACF,GAEA,gBAACwB,EAAK,UAAL,KAAgBnC,CAAS,EAC1B,gBAACF,EAAqB,cAArB,CAAmC,UAAU,0DAC5C,gBAAC2C,EAAA,CAAa,UAAU,iEAAiE,CAC3F,CACF,CAEJ,CAAC,EACDF,EAAqB,YAAc,wBAOnC,IAAMG,EAAgC,aAGpC,CAAC7C,EAAOI,IAAiB,CACzB,GAAM,CACJ,SAAAD,EACA,UAAAW,EACA,SAAAqB,EACA,MAAApB,EAAQ+B,EAAgC,MAAM,QAC9C,GAAGV,CACL,EAAIpC,EACJ,OACE,gBAACC,EAAqB,aAArB,CACC,oBAAmBkC,EAAWE,EAAmBF,CAAQ,EAAI,OAC5D,GAAGC,EACJ,QAAS,GACT,IAAKhC,EACL,oBAAmBW,EACnB,UAAWe,EACT,mBACA,2BACA,sBACA,8BACAhB,CACF,GAEA,gBAACwB,EAAK,UAAL,KAAgBnC,CAAS,EAC1B,gBAACF,EAAqB,cAArB,CAAmC,UAAU,0DAC5C,gBAAC8C,EAAA,CAAe,UAAU,iEAAiE,CAC7F,EACCZ,GAAY,gBAACI,EAAA,CAAa,SAAUJ,EAAU,UAAU,0BAA0B,CACrF,CAEJ,CAAC,EACDU,EAAwB,YAAc,2BAItC,IAAMG,EAAiDhD,GACrD,gBAACC,EAAqB,IAArB,CAA0B,GAAGD,EAAO,EAEvCgD,EAAe,YAAc,kBAK7B,IAAMC,EAA8B,aAGlC,CAACjD,EAAOI,IAAiB,CACzB,GAAM,CAAE,UAAAU,EAAW,SAAAX,EAAU,GAAG+C,CAAgB,EAAIlD,EACpD,OACE,gBAACC,EAAqB,WAArB,CACE,GAAGiD,EACJ,QAAS,GACT,IAAK9C,EACL,UAAW0B,EACT,mBACA,yBACA,sBACA,4BACAhB,CACF,GAECX,EACD,gBAAC,OAAI,UAAU,gDACb,gBAACgD,EAAA,CAAsB,UAAU,2DAA2D,CAC9F,CACF,CAEJ,CAAC,EACDF,EAAsB,YAAc,yBAYpC,IAAMG,EAA8B,aAGlC,CAACpD,EAAOI,IAAiB,CACzB,IAAMiD,EAAe,aAAW/C,CAAyB,EAGnDO,EAAOb,EAAM,MAAQqD,EAAO,KAC5BtC,EAAQf,EAAM,OAASqD,EAAO,MAE9B,CACJ,UAAAvC,EACA,SAAAX,EACA,UAAAa,EACA,WAAAC,EACA,MAAOqC,EACP,YAAAnC,EAAc,GACd,GAAGoC,CACL,EAAIlC,EAAa,CAAE,GAAGrB,EAAO,KAAAa,CAAK,EAAGH,CAA6B,EAE5Da,EAAaC,EAA2BX,EAAMH,EAA8B,KAAK,OAAO,EAExFe,EAAqB,UACzB,KAAO,CAAE,KAAAZ,EAAM,MAAAE,CAAM,GACrB,CAACF,EAAME,CAAK,CACd,EAEMW,EACJ,gBAACC,EAAA,CAAa,KAAMd,GAClB,gBAACP,EAA0B,SAA1B,CAAmC,MAAOmB,GAAetB,CAAS,CACrE,EAGF,OACE,gBAACF,EAAqB,OAArB,CAA4B,UAAWe,EAAW,WAAYC,GAC7D,gBAACW,EAAA,CAAM,QAAO,IACZ,gBAAC3B,EAAqB,WAArB,CACC,oBAAmBc,EACnB,YAAac,EAAmBN,CAAU,EAE1C,WAAY,EACZ,iBAAkB,GACjB,GAAGgC,EACJ,QAAS,GACT,IAAKnD,EACL,UAAW0B,EACT,oBACA,sBACF,mBACE,yBACA,yBACA,4BACAhB,CACF,GAECK,EACC,gBAAC,OAAI,UAAWW,EAAW,uBAAwB,0BAA2B,iBAAiB,GAC5FJ,CACH,EAEA,gBAACK,EAAA,CAAW,KAAK,OAAO,WAAW,YACjC,gBAAC,OAAI,UAAWD,EAAW,uBAAwB,yBAAyB,GAAIJ,CAAK,CACvF,CAEJ,CACF,CACF,CAEJ,CAAC,EACD0B,EAAsB,YAAc,yBAKpC,IAAMI,EAA6B,aAGjC,CAAC,CAAE,UAAA1C,EAAW,GAAGd,CAAM,EAAGI,IAC1B,gBAACH,EAAqB,UAArB,CACE,GAAGD,EACJ,QAAS,GACT,IAAKI,EACL,UAAW0B,EAAW,wBAAyB,2BAA4BhB,CAAS,EACtF,CACD,EACD0C,EAAqB,YAAc",
6
- "names": ["context_menu_exports", "__export", "ContextMenuCheckboxItem", "ContextMenuContent", "ContextMenuGroup", "ContextMenuItem", "ContextMenuLabel", "ContextMenuRadioGroup", "ContextMenuRadioItem", "ContextMenuRoot", "ContextMenuSeparator", "ContextMenuSub", "ContextMenuSubContent", "ContextMenuSubTrigger", "ContextMenuTrigger", "VirtualMenu", "React", "classNames", "ContextMenuPrimitive", "Slot", "ContextMenuRoot", "props", "ContextMenuPrimitive", "ContextMenuTrigger", "children", "forwardedRef", "requireReactElement", "ContextMenuContentContext", "ContextMenuContent", "ownProps", "useThemeSizeProps", "baseMenuSubContentPropDefs", "themeContext", "useThemeContext", "size", "className", "color", "container", "forceMount", "_submenuBehavior", "virtualized", "contentProps", "extractProps", "resolvedColor", "scalarSize", "useResolvedResponsiveValue", "contextValue", "body", "MenuProvider", "Theme", "getMenuAlignOffset", "classNames", "ScrollArea", "ContextMenuLabel", "ContextMenuItem", "baseMenuItemPropDefs", "shortcut", "itemProps", "toAriaKeyShortcuts", "Slot", "MenuShortcut", "ContextMenuGroup", "ContextMenuRadioGroup", "ContextMenuRadioItem", "baseMenuRadioItemPropDefs", "ThickDotIcon", "ContextMenuCheckboxItem", "baseMenuCheckboxItemPropDefs", "ThickCheckIcon", "ContextMenuSub", "ContextMenuSubTrigger", "subTriggerProps", "ThickChevronRightIcon", "ContextMenuSubContent", "parent", "_color", "subContentProps", "ContextMenuSeparator"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a as m}from"./chunk-7ZOGH5NT.js";import{a as N}from"./chunk-BJUCBOGU.js";import{b as v}from"./chunk-FWB47YCH.js";import{e as b}from"./chunk-3YLYGKFB.js";import{a as l}from"./chunk-ELAW7ZUG.js";import{a as d}from"./chunk-OS3FCYZY.js";var u={};d(u,{Actions:()=>g,Logo:()=>c,Navigation:()=>P,Root:()=>f});import*as o from"react";import n from"classnames";var f=o.forwardRef((s,i)=>{let t=b(s,m.size),{children:p,className:a,...r}=l(t,m),e=t.position??"fixed",R=t.size??"2";return o.createElement("header",{...r,ref:i,className:n("kui-NavbarRoot",a),"data-position":e,"data-size":R},o.createElement("div",{className:"kui-NavbarContainer"},p))});f.displayName="Navbar.Root";var c=o.forwardRef(({asChild:s,gap:i="2",align:t="center",justify:p="start",className:a,...r},e)=>s?o.createElement(v,{ref:e,className:n("kui-NavbarLogo",a),...r}):o.createElement(N,{ref:e,gap:i,align:t,justify:p,className:n("kui-NavbarLogo",a),...r}));c.displayName="Navbar.Logo";var P=o.forwardRef(({asChild:s,gap:i="4",align:t="center",justify:p="center",className:a,...r},e)=>s?o.createElement(v,{ref:e,className:n("kui-NavbarNavigation",a),role:"navigation",...r}):o.createElement(N,{ref:e,gap:i,align:t,justify:p,className:n("kui-NavbarNavigation",a),role:"navigation",...r}));P.displayName="Navbar.Navigation";var g=o.forwardRef(({asChild:s,gap:i="4",align:t="center",justify:p="end",className:a,...r},e)=>s?o.createElement(v,{ref:e,className:n("kui-NavbarActions",a),...r}):o.createElement(N,{ref:e,gap:i,align:t,justify:p,className:n("kui-NavbarActions",a),...r}));g.displayName="Navbar.Actions";export{f as a,c as b,P as c,g as d,u as e};
2
- //# sourceMappingURL=chunk-EMNSA65L.js.map
@@ -1,7 +0,0 @@
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';\nimport { Slot } from './slot.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\nconst NavbarLogo = React.forwardRef<HTMLDivElement, NavbarLogoProps>(\n ({ asChild, gap = '2', align = 'center', justify = 'start', className, ...props }, ref) => {\n if (asChild) {\n return (\n <Slot\n ref={ref}\n className={classNames('kui-NavbarLogo', className)}\n {...props}\n />\n );\n }\n\n return (\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 }\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 ({ asChild, gap = '4', align = 'center', justify = 'center', className, ...props }, ref) => {\n if (asChild) {\n return (\n <Slot\n ref={ref}\n className={classNames('kui-NavbarNavigation', className)}\n role=\"navigation\"\n {...props}\n />\n );\n }\n\n return (\n <Flex\n ref={ref}\n gap={gap}\n align={align}\n justify={justify}\n className={classNames('kui-NavbarNavigation', className)}\n role=\"navigation\"\n {...props}\n />\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 ({ asChild, gap = '4', align = 'center', justify = 'end', className, ...props }, ref) => {\n if (asChild) {\n return (\n <Slot\n ref={ref}\n className={classNames('kui-NavbarActions', className)}\n {...props}\n />\n );\n }\n\n return (\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 }\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": "gPAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,SAAAC,EAAA,eAAAC,EAAA,SAAAC,IAEA,UAAYC,MAAW,QACvB,OAAOC,MAAgB,aAsCvB,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,cAOzB,IAAMa,EAAmB,aACvB,CAAC,CAAE,QAAAC,EAAS,IAAAC,EAAM,IAAK,MAAAC,EAAQ,SAAU,QAAAC,EAAU,QAAS,UAAAV,EAAW,GAAGJ,CAAM,EAAGe,IAC7EJ,EAEA,gBAACK,EAAA,CACC,IAAKD,EACL,UAAWN,EAAW,iBAAkBL,CAAS,EAChD,GAAGJ,EACN,EAKF,gBAACiB,EAAA,CACC,IAAKF,EACL,IAAKH,EACL,MAAOC,EACP,QAASC,EACT,UAAWL,EAAW,iBAAkBL,CAAS,EAChD,GAAGJ,EACN,CAGN,EACAU,EAAW,YAAc,cAOzB,IAAMQ,EAAyB,aAC7B,CAAC,CAAE,QAAAP,EAAS,IAAAC,EAAM,IAAK,MAAAC,EAAQ,SAAU,QAAAC,EAAU,SAAU,UAAAV,EAAW,GAAGJ,CAAM,EAAGe,IAC9EJ,EAEA,gBAACK,EAAA,CACC,IAAKD,EACL,UAAWN,EAAW,uBAAwBL,CAAS,EACvD,KAAK,aACJ,GAAGJ,EACN,EAKF,gBAACiB,EAAA,CACC,IAAKF,EACL,IAAKH,EACL,MAAOC,EACP,QAASC,EACT,UAAWL,EAAW,uBAAwBL,CAAS,EACvD,KAAK,aACJ,GAAGJ,EACN,CAGN,EACAkB,EAAiB,YAAc,oBAO/B,IAAMC,EAAsB,aAC1B,CAAC,CAAE,QAAAR,EAAS,IAAAC,EAAM,IAAK,MAAAC,EAAQ,SAAU,QAAAC,EAAU,MAAO,UAAAV,EAAW,GAAGJ,CAAM,EAAGe,IAC3EJ,EAEA,gBAACK,EAAA,CACC,IAAKD,EACL,UAAWN,EAAW,oBAAqBL,CAAS,EACnD,GAAGJ,EACN,EAKF,gBAACiB,EAAA,CACC,IAAKF,EACL,IAAKH,EACL,MAAOC,EACP,QAASC,EACT,UAAWL,EAAW,oBAAqBL,CAAS,EACnD,GAAGJ,EACN,CAGN,EACAmB,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", "asChild", "gap", "align", "justify", "ref", "Slot", "Flex", "NavbarNavigation", "NavbarActions"]
7
- }
@@ -1,2 +0,0 @@
1
- import{b as e}from"./chunk-KRJTW535.js";var o=["cover","contain","fill","scale-down","none"],s={...e,fit:{type:"enum",className:"kui-r-fit",values:o,default:"cover"}};export{s as a};
2
- //# sourceMappingURL=chunk-EZYXYLR2.js.map
@@ -1,2 +0,0 @@
1
- import{a as T}from"./chunk-VW46DG7H.js";import{a as R}from"./chunk-MJJ7XDIP.js";import{c as h}from"./chunk-PPZY7PJA.js";import{e as d}from"./chunk-3YLYGKFB.js";import{a as b}from"./chunk-ELAW7ZUG.js";import{a as W}from"./chunk-OS3FCYZY.js";var w={};W(w,{Anchor:()=>M,Close:()=>N,Content:()=>x,Root:()=>E,Toolbar:()=>S,Trigger:()=>L});import*as o from"react";import c from"classnames";import{Popover as P}from"radix-ui";var y=o.createContext(null),g=t=>{let e=o.useContext(y);return e},E=t=>o.createElement(P.Root,{...t});E.displayName="Popover.Root";var L=o.forwardRef(({children:t,...e},r)=>o.createElement(P.Trigger,{...e,ref:r,asChild:!0},R(t)));L.displayName="Popover.Trigger";var x=o.forwardRef((t,e)=>{let r=d(t,T.size),{className:s,forceMount:n,container:i,...a}=b(r,T),p=o.useRef(null),m=o.useCallback(l=>{p.current=l,typeof e=="function"?e(l):e&&(e.current=l)},[e]),[f,u]=o.useState(void 0),C=o.useCallback(l=>{let v=p.current;v&&(l>0?(v.style.setProperty("--popover-toolbar-offset",`${l}px`),v.setAttribute("data-has-toolbar","true")):(v.style.removeProperty("--popover-toolbar-offset"),v.removeAttribute("data-has-toolbar")))},[]);return o.createElement(P.Portal,{container:i,forceMount:n},o.createElement(h,{asChild:!0},o.createElement(P.Content,{align:"start",sideOffset:8,collisionPadding:10,...a,ref:m,"aria-labelledby":f,className:c("kui-PopperContent","kui-PopoverContent",s)},o.createElement(y.Provider,{value:o.useMemo(()=>({contentRef:p,setToolbarOffset:C,setLabelId:u}),[C])},r.children))))});x.displayName="Popover.Content";var N=o.forwardRef(({children:t,...e},r)=>o.createElement(P.Close,{...e,ref:r,asChild:!0},R(t)));N.displayName="Popover.Close";var M=o.forwardRef(({children:t,...e},r)=>o.createElement(P.Anchor,{...e,ref:r}));M.displayName="Popover.Anchor";var A=o.forwardRef(({className:t,children:e,...r},s)=>{let n=g("Popover.Toolbar"),i=o.useRef(null),a=o.useCallback(p=>{i.current=p,typeof s=="function"?s(p):s&&(s.current=p)},[s]);return o.useEffect(()=>{if(!n||!i.current)return;let p=i.current,m=()=>{let u=p.getBoundingClientRect().height;n.setToolbarOffset(u)};m();let f=new ResizeObserver(m);return f.observe(p),()=>{f.disconnect(),n.setToolbarOffset(0)}},[n]),o.createElement("div",{...r,ref:a,className:c("kui-PopoverToolbar",t)},e)});A.displayName="Popover.Toolbar";var k=o.forwardRef(({className:t,...e},r)=>o.createElement("div",{...e,ref:r,className:c("kui-PopoverToolbarSection","kui-PopoverToolbarLeft",t)}));k.displayName="Popover.Toolbar.Left";var D=o.forwardRef(({className:t,...e},r)=>o.createElement("div",{...e,ref:r,className:c("kui-PopoverToolbarSection","kui-PopoverToolbarCenter",t)}));D.displayName="Popover.Toolbar.Center";var H=o.forwardRef(({className:t,...e},r)=>o.createElement("div",{...e,ref:r,className:c("kui-PopoverToolbarSection","kui-PopoverToolbarRight",t)}));H.displayName="Popover.Toolbar.Right";var O=o.forwardRef(({className:t,id:e,...r},s)=>{let n=g("Popover.Toolbar.Title"),i=o.useId(),a=e??`kui-popover-toolbar-title-${i}`;return o.useEffect(()=>(n?.setLabelId(a),()=>n?.setLabelId(void 0)),[n,a]),o.createElement("span",{...r,id:a,ref:s,className:c("kui-PopoverToolbarTitle",t)})});O.displayName="Popover.Toolbar.Title";var S=Object.assign(A,{Left:k,Center:D,Right:H,Title:O});export{E as a,L as b,x as c,N as d,M as e,S as f,w as g};
2
- //# sourceMappingURL=chunk-FDHWAC6W.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/popover.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\nimport { Popover as PopoverPrimitive } from 'radix-ui';\n\nimport { extractProps } from '../helpers/extract-props.js';\nimport { useThemeSizeProps } from '../helpers/theme-size.js';\nimport { requireReactElement } from '../helpers/require-react-element.js';\nimport { popoverContentPropDefs } from './popover.props.js';\nimport { Theme } from './theme.js';\n\nimport type { PopoverContentOwnProps } from './popover.props.js';\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\n\n// ---------------------------------------------\n// Popover Content Context\n// ---------------------------------------------\ntype PopoverContentContextValue = {\n /** Ref to the Popover.Content DOM node */\n contentRef: React.MutableRefObject<HTMLDivElement | null>;\n /** Update content's toolbar offset variable and presence flag */\n setToolbarOffset: (offsetPx: number) => void;\n /** Wire up aria-labelledby for toolbar title */\n setLabelId: (id: string | undefined) => void;\n};\n\nconst PopoverContentContext = React.createContext<PopoverContentContextValue | null>(null);\nconst usePopoverContentContext = (caller: string) => {\n const ctx = React.useContext(PopoverContentContext);\n if (!ctx) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`${caller} must be used within Popover.Content`);\n }\n }\n return ctx;\n};\n\ninterface PopoverRootProps extends React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Root> {}\nconst PopoverRoot: React.FC<PopoverRootProps> = (props: PopoverRootProps) => (\n <PopoverPrimitive.Root {...props} />\n);\nPopoverRoot.displayName = 'Popover.Root';\n\ntype PopoverTriggerElement = React.ElementRef<typeof PopoverPrimitive.Trigger>;\ninterface PopoverTriggerProps\n extends ComponentPropsWithout<typeof PopoverPrimitive.Trigger, RemovedProps> {}\nconst PopoverTrigger = React.forwardRef<PopoverTriggerElement, PopoverTriggerProps>(\n ({ children, ...props }, forwardedRef) => (\n <PopoverPrimitive.Trigger {...props} ref={forwardedRef} asChild>\n {requireReactElement(children)}\n </PopoverPrimitive.Trigger>\n ),\n);\nPopoverTrigger.displayName = 'Popover.Trigger';\n\ntype PopoverContentElement = React.ElementRef<typeof PopoverPrimitive.Content>;\ninterface PopoverContentProps\n extends ComponentPropsWithout<typeof PopoverPrimitive.Content, RemovedProps>,\n PopoverContentOwnProps {\n container?: React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Portal>['container'];\n}\nconst PopoverContent = React.forwardRef<PopoverContentElement, PopoverContentProps>(\n (ownProps, forwardedRef) => {\n const props = useThemeSizeProps(ownProps, popoverContentPropDefs.size);\n const {\n className,\n forceMount,\n container,\n ...contentProps\n } = extractProps(props, popoverContentPropDefs);\n\n // Manage refs (we need the DOM node to apply CSS variables)\n const contentRef = React.useRef<HTMLDivElement>(null);\n const combinedRef = React.useCallback(\n (node: HTMLDivElement | null) => {\n contentRef.current = node;\n if (typeof forwardedRef === 'function') {\n forwardedRef(node);\n } else if (forwardedRef) {\n (forwardedRef as React.MutableRefObject<HTMLDivElement | null>).current = node;\n }\n },\n [forwardedRef],\n );\n\n const [labelId, setLabelId] = React.useState<string | undefined>(undefined);\n\n const setToolbarOffset = React.useCallback((offsetPx: number) => {\n const el = contentRef.current;\n if (!el) return;\n if (offsetPx > 0) {\n el.style.setProperty('--popover-toolbar-offset', `${offsetPx}px`);\n el.setAttribute('data-has-toolbar', 'true');\n } else {\n el.style.removeProperty('--popover-toolbar-offset');\n el.removeAttribute('data-has-toolbar');\n }\n }, []);\n\n return (\n <PopoverPrimitive.Portal container={container} forceMount={forceMount}>\n <Theme asChild>\n <PopoverPrimitive.Content\n align=\"start\"\n sideOffset={8}\n collisionPadding={10}\n {...contentProps}\n ref={combinedRef}\n aria-labelledby={labelId}\n className={classNames('kui-PopperContent', 'kui-PopoverContent', className)}\n >\n <PopoverContentContext.Provider value={React.useMemo(() => ({ contentRef, setToolbarOffset, setLabelId }), [setToolbarOffset])}>\n {props.children}\n </PopoverContentContext.Provider>\n </PopoverPrimitive.Content>\n </Theme>\n </PopoverPrimitive.Portal>\n );\n },\n);\nPopoverContent.displayName = 'Popover.Content';\n\ntype PopoverCloseElement = React.ElementRef<typeof PopoverPrimitive.Close>;\ninterface PopoverCloseProps\n extends ComponentPropsWithout<typeof PopoverPrimitive.Close, RemovedProps> {}\nconst PopoverClose = React.forwardRef<PopoverCloseElement, PopoverCloseProps>(\n ({ children, ...props }, forwardedRef) => (\n <PopoverPrimitive.Close {...props} ref={forwardedRef} asChild>\n {requireReactElement(children)}\n </PopoverPrimitive.Close>\n ),\n);\nPopoverClose.displayName = 'Popover.Close';\n\ntype PopoverAnchorElement = React.ElementRef<typeof PopoverPrimitive.Anchor>;\ninterface PopoverAnchorProps\n extends React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Anchor> {}\nconst PopoverAnchor = React.forwardRef<PopoverAnchorElement, PopoverAnchorProps>(\n ({ children, ...props }, forwardedRef) => (\n <PopoverPrimitive.Anchor {...props} ref={forwardedRef} />\n ),\n);\n\nPopoverAnchor.displayName = 'Popover.Anchor';\n\n// ---------------------------------------------\n// Toolbar (Popover-only)\n// ---------------------------------------------\n\ntype PopoverToolbarElement = HTMLDivElement;\ntype PopoverToolbarProps = React.ComponentPropsWithoutRef<'div'>;\n\nconst PopoverToolbarBase = React.forwardRef<PopoverToolbarElement, PopoverToolbarProps>(\n ({ className, children, ...props }, forwardedRef) => {\n const ctx = usePopoverContentContext('Popover.Toolbar');\n\n const localRef = React.useRef<HTMLDivElement | null>(null);\n const setRefs = React.useCallback(\n (node: HTMLDivElement | null) => {\n localRef.current = node;\n if (typeof forwardedRef === 'function') forwardedRef(node);\n else if (forwardedRef)\n (forwardedRef as React.MutableRefObject<HTMLDivElement | null>).current = node;\n },\n [forwardedRef],\n );\n\n React.useEffect(() => {\n if (!ctx || !localRef.current) return;\n const el = localRef.current;\n const update = () => {\n const height = el.getBoundingClientRect().height;\n ctx.setToolbarOffset(height);\n };\n update();\n const ro = new ResizeObserver(update);\n ro.observe(el);\n return () => {\n ro.disconnect();\n ctx.setToolbarOffset(0);\n };\n }, [ctx]);\n\n return (\n <div {...props} ref={setRefs} className={classNames('kui-PopoverToolbar', className)}>\n {children}\n </div>\n );\n },\n);\n(PopoverToolbarBase as any).displayName = 'Popover.Toolbar';\n\ntype SectionProps = React.ComponentPropsWithoutRef<'div'>;\n\nconst PopoverToolbarLeft = React.forwardRef<HTMLDivElement, SectionProps>(\n ({ className, ...props }, ref) => (\n <div\n {...props}\n ref={ref}\n className={classNames('kui-PopoverToolbarSection', 'kui-PopoverToolbarLeft', className)}\n />\n ),\n);\nPopoverToolbarLeft.displayName = 'Popover.Toolbar.Left';\n\nconst PopoverToolbarCenter = React.forwardRef<HTMLDivElement, SectionProps>(\n ({ className, ...props }, ref) => (\n <div\n {...props}\n ref={ref}\n className={classNames('kui-PopoverToolbarSection', 'kui-PopoverToolbarCenter', className)}\n />\n ),\n);\nPopoverToolbarCenter.displayName = 'Popover.Toolbar.Center';\n\nconst PopoverToolbarRight = React.forwardRef<HTMLDivElement, SectionProps>(\n ({ className, ...props }, ref) => (\n <div\n {...props}\n ref={ref}\n className={classNames('kui-PopoverToolbarSection', 'kui-PopoverToolbarRight', className)}\n />\n ),\n);\nPopoverToolbarRight.displayName = 'Popover.Toolbar.Right';\n\ntype TitleProps = React.ComponentPropsWithoutRef<'span'>;\nconst PopoverToolbarTitle = React.forwardRef<HTMLSpanElement, TitleProps>(\n ({ className, id: idProp, ...props }, ref) => {\n const ctx = usePopoverContentContext('Popover.Toolbar.Title');\n const reactId = React.useId();\n const id = idProp ?? `kui-popover-toolbar-title-${reactId}`;\n React.useEffect(() => {\n ctx?.setLabelId(id);\n return () => ctx?.setLabelId(undefined);\n }, [ctx, id]);\n return (\n <span\n {...props}\n id={id}\n ref={ref}\n className={classNames('kui-PopoverToolbarTitle', className)}\n />\n );\n },\n);\nPopoverToolbarTitle.displayName = 'Popover.Toolbar.Title';\n\ntype PopoverToolbarComponent = React.ForwardRefExoticComponent<\n React.PropsWithoutRef<PopoverToolbarProps> & React.RefAttributes<HTMLDivElement>\n> & {\n Left: typeof PopoverToolbarLeft;\n Center: typeof PopoverToolbarCenter;\n Right: typeof PopoverToolbarRight;\n Title: typeof PopoverToolbarTitle;\n};\n\nconst PopoverToolbar = Object.assign(PopoverToolbarBase, {\n Left: PopoverToolbarLeft,\n Center: PopoverToolbarCenter,\n Right: PopoverToolbarRight,\n Title: PopoverToolbarTitle,\n}) as PopoverToolbarComponent;\n\nexport {\n PopoverRoot as Root,\n PopoverContent as Content,\n PopoverTrigger as Trigger,\n PopoverClose as Close,\n PopoverAnchor as Anchor,\n PopoverToolbar as Toolbar,\n};\nexport type {\n PopoverRootProps as RootProps,\n PopoverContentProps as ContentProps,\n PopoverTriggerProps as TriggerProps,\n PopoverCloseProps as CloseProps,\n PopoverAnchorProps as AnchorProps,\n};\n"],
5
- "mappings": "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",
6
- "names": ["popover_exports", "__export", "PopoverAnchor", "PopoverClose", "PopoverContent", "PopoverRoot", "PopoverToolbar", "PopoverTrigger", "React", "classNames", "PopoverPrimitive", "PopoverContentContext", "usePopoverContentContext", "caller", "ctx", "PopoverRoot", "props", "PopoverPrimitive", "PopoverTrigger", "children", "forwardedRef", "requireReactElement", "PopoverContent", "ownProps", "useThemeSizeProps", "popoverContentPropDefs", "className", "forceMount", "container", "contentProps", "extractProps", "contentRef", "combinedRef", "node", "labelId", "setLabelId", "setToolbarOffset", "offsetPx", "el", "Theme", "classNames", "PopoverClose", "PopoverAnchor", "PopoverToolbarBase", "localRef", "setRefs", "update", "height", "ro", "PopoverToolbarLeft", "ref", "PopoverToolbarCenter", "PopoverToolbarRight", "PopoverToolbarTitle", "idProp", "reactId", "id", "PopoverToolbar"]
7
- }
@@ -1,5 +0,0 @@
1
- import{a as K,b as G}from"./chunk-LXTGEI62.js";import{e as B}from"./chunk-3YLYGKFB.js";import{a as z}from"./chunk-ELAW7ZUG.js";import{a as se}from"./chunk-OS3FCYZY.js";var ie={};se(ie,{Root:()=>J,Slot:()=>Q});import*as e from"react";import*as U from"react-dom";import _ from"classnames";import{composeRefs as Z}from"radix-ui/internal";var J=e.forwardRef((h,v)=>{let n=B(h,K.size),f=e.useRef(null),{children:E,className:w,color:k,radius:L,style:C,...a}=z(n,K),x=e.useId(),{"aria-describedby":g,"aria-labelledby":I,"aria-invalid":P}=a,T=!!a.error||P===!0||P==="true",M=e.useMemo(()=>{let o=[];return a.errorMessage&&o.push(x),g&&o.push(g),o.length>0?o.join(" "):void 0},[a.errorMessage,g,x]),y=e.useMemo(()=>({"aria-invalid":T?!0:P,"aria-describedby":M,"aria-labelledby":I}),[T,P,M,I]),{error:s,errorMessage:D,required:H,"aria-describedby":O,"aria-labelledby":m,...d}=a,i=e.useCallback(o=>{let S=o.target;if(S.closest("input, button, a"))return;let p=f.current;if(!p)return;let b=S.closest(`
2
- .kui-TextFieldSlot[data-side='right'],
3
- .kui-TextFieldSlot:not([data-side='right']) ~ .kui-TextFieldSlot:not([data-side='left'])
4
- `)?p.value.length:0;requestAnimationFrame(()=>{try{p.setSelectionRange(b,b)}catch{}p.focus()})},[]);return e.createElement("div",{"data-accent-color":k,"data-radius":L,style:C,className:_("kui-TextFieldRoot",w,{"kui-error":T}),onPointerDown:i},e.createElement("input",{spellCheck:"false",...d,...y,ref:Z(f,v),className:"kui-reset kui-TextFieldInput"}),E,a.errorMessage&&e.createElement("div",{id:x,className:"kui-TextFieldErrorMessage",role:"alert"},a.errorMessage))});J.displayName="TextField.Root";var R=(()=>{if(typeof navigator>"u")return!1;let h=navigator.userAgent,v=/^((?!chrome|android).)*safari/i.test(h),n=/firefox/i.test(h);return v||n})(),Q=e.forwardRef((h,v)=>{let{scrub:n,scrubValue:f,scrubStep:E=1,scrubSensitivity:w=1,scrubMin:k,scrubMax:L,scrubShiftMultiplier:C=10,scrubAltMultiplier:a=.1,onScrub:x,...g}=h,{className:I,color:P,side:T,...M}=z(g,G),y=e.useRef(null),[s,D]=e.useState(!1),[H,O]=e.useState({x:0,y:0}),m=e.useRef(0),d=e.useRef(0),i=e.useRef(0),o=e.useRef(null),S=e.useRef(0),p=e.useRef({scrubValue:f,scrubStep:E,scrubSensitivity:w,scrubMin:k,scrubMax:L,scrubShiftMultiplier:C,scrubAltMultiplier:a,onScrub:x});p.current={scrubValue:f,scrubStep:E,scrubSensitivity:w,scrubMin:k,scrubMax:L,scrubShiftMultiplier:C,scrubAltMultiplier:a,onScrub:x};let Y=e.useCallback(t=>{if(!n||t.target.closest("input, button, a"))return;t.preventDefault(),m.current=0,d.current=f??0,i.current=t.clientX,O({x:t.clientX,y:t.clientY});let c=y.current;c&&(R?(o.current=t.pointerId,S.current=t.clientX,c.setPointerCapture(t.pointerId),D(!0)):c.requestPointerLock())},[n,f]);e.useEffect(()=>{if(R)return;let t=()=>{let r=document.pointerLockElement===y.current;D(r),r||(p.current.onScrub?.(0,!1),m.current=0,d.current=0)};return document.addEventListener("pointerlockchange",t),()=>{document.removeEventListener("pointerlockchange",t)}},[]);let b=e.useCallback((t,r,c,oe)=>{let u=p.current,X=window.innerWidth,A=window.innerHeight;i.current+=t,i.current>X?i.current=i.current%X:i.current<0&&(i.current=X+i.current%X),O(F=>{let l=F.y+r;return l>A?l=l%A:l<0&&(l=A+l%A),{x:i.current,y:l}}),m.current+=t;let V=m.current/u.scrubSensitivity;if(Math.abs(V)>=1){let F=1;c?F=u.scrubShiftMultiplier:oe&&(F=u.scrubAltMultiplier);let l=Math.trunc(V),W=l*u.scrubStep*F,j=W;if(u.scrubMin!==void 0||u.scrubMax!==void 0){let ne=d.current+W,q=Math.max(u.scrubMin??-1/0,Math.min(u.scrubMax??1/0,ne));j=q-d.current,d.current=q}else d.current+=W;j!==0&&u.onScrub?.(j,!0),m.current=(V-l)*u.scrubSensitivity}},[]),N=e.useCallback(()=>{p.current.onScrub?.(0,!1),m.current=0,d.current=0,o.current=null,D(!1)},[]),$=e.useCallback(t=>{if(!s||!R)return;let r=t.clientX-S.current;S.current=t.clientX,b(r,t.movementY,t.shiftKey,t.altKey)},[s,b]),ee=e.useCallback(t=>{if(!R||o.current!==t.pointerId)return;let r=y.current;r&&o.current!==null&&r.releasePointerCapture(o.current),N()},[N]),te=e.useCallback(()=>{R&&s&&N()},[s,N]);e.useEffect(()=>{if(!s||R)return;let t=c=>{b(c.movementX,c.movementY,c.shiftKey,c.altKey)},r=()=>{document.exitPointerLock()};return document.addEventListener("mousemove",t),document.addEventListener("mouseup",r),document.body.style.userSelect="none",()=>{document.removeEventListener("mousemove",t),document.removeEventListener("mouseup",r),document.body.style.userSelect=""}},[s,b]),e.useEffect(()=>{if(!s||!R)return;let t=document.createElement("style");return t.textContent="* { cursor: none !important; user-select: none !important; }",document.head.appendChild(t),()=>{document.head.removeChild(t)}},[s]);let re=s?U.createPortal(e.createElement("img",{className:"kui-TextFieldSlotScrubCursor",src:"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='black' stroke='white' stroke-width='1' d='M0 12 L5 7 L5 10 L19 10 L19 7 L24 12 L19 17 L19 14 L5 14 L5 17 Z'/%3E%3C/svg%3E",alt:"",style:{position:"fixed",left:H.x,top:H.y,transform:"translate(-50%, -50%)",pointerEvents:"none",zIndex:99999,width:24,height:24},"aria-hidden":"true"}),document.body):null;return e.createElement("div",{"data-accent-color":P,"data-side":T,"data-scrub":n||void 0,"data-scrubbing":s||void 0,...M,ref:Z(y,v),className:_("kui-TextFieldSlot",I),onPointerDown:n?Y:void 0,onPointerMove:n?$:void 0,onPointerUp:n?ee:void 0,onLostPointerCapture:n?te:void 0},M.children,re)});Q.displayName="TextField.Slot";export{J as a,Q as b,ie as c};
5
- //# sourceMappingURL=chunk-FFG32ERA.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/text-field.tsx"],
4
- "sourcesContent": ["'use client';\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport { composeRefs } from 'radix-ui/internal';\n\nimport { textFieldRootPropDefs, textFieldSlotPropDefs, type TextFieldSlotScrubProps } from './text-field.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 { NotInputTextualAttributes } from '../helpers/input-attributes.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\n\ntype TextFieldRootElement = React.ElementRef<'input'>;\ntype TextFieldRootOwnProps = GetPropDefTypes<typeof textFieldRootPropDefs> & {\n defaultValue?: string | number;\n value?: string | number;\n type?: 'date' | 'datetime-local' | 'email' | 'hidden' | 'month' | 'number' | 'password' | 'search' | 'tel' | 'text' | 'time' | 'url' | 'week';\n};\ntype TextFieldInputProps = ComponentPropsWithout<'input', NotInputTextualAttributes | 'color' | 'defaultValue' | 'size' | 'type' | 'value'>;\ninterface TextFieldRootProps extends TextFieldInputProps, TextFieldRootOwnProps {}\nconst TextFieldRoot = React.forwardRef<TextFieldRootElement, TextFieldRootProps>((ownProps, forwardedRef) => {\n const props = useThemeSizeProps(ownProps, textFieldRootPropDefs.size);\n const inputRef = React.useRef<HTMLInputElement>(null);\n const { children, className, color, radius, style, ...inputProps } = extractProps(props, textFieldRootPropDefs);\n\n // Generate unique IDs for accessibility\n const errorId = React.useId();\n\n const { 'aria-describedby': ariaDescribedby, 'aria-labelledby': ariaLabelledby, 'aria-invalid': ariaInvalid } = inputProps;\n\n // Invalid when `error` is set or the caller passes aria-invalid; the CSS keys on aria-invalid only.\n const isInvalid = Boolean(inputProps.error) || ariaInvalid === true || ariaInvalid === 'true';\n\n // Build aria-describedby string\n const describedBy = React.useMemo(() => {\n const parts = [];\n if (inputProps.errorMessage) parts.push(errorId);\n if (ariaDescribedby) parts.push(ariaDescribedby);\n return parts.length > 0 ? parts.join(' ') : undefined;\n }, [inputProps.errorMessage, ariaDescribedby, errorId]);\n\n // Build aria attributes\n const ariaProps = React.useMemo(\n () => ({\n 'aria-invalid': isInvalid ? true : ariaInvalid,\n 'aria-describedby': describedBy,\n 'aria-labelledby': ariaLabelledby,\n }),\n [isInvalid, ariaInvalid, describedBy, ariaLabelledby],\n );\n\n // Filter out our custom props to avoid DOM warnings\n const { error, errorMessage, required, 'aria-describedby': _ariaDescribedby, 'aria-labelledby': _ariaLabelledby, ...nativeInputProps } = inputProps;\n\n // Memoized pointer event handler\n const handlePointerDown = React.useCallback((event: React.PointerEvent) => {\n const target = event.target as HTMLElement;\n if (target.closest('input, button, a')) return;\n\n const input = inputRef.current;\n if (!input) return;\n\n // Same selector as in the CSS to find the right slot\n const isRightSlot = target.closest(`\n .kui-TextFieldSlot[data-side='right'],\n .kui-TextFieldSlot:not([data-side='right']) ~ .kui-TextFieldSlot:not([data-side='left'])\n `);\n\n const cursorPosition = isRightSlot ? input.value.length : 0;\n\n requestAnimationFrame(() => {\n // Only some input types support this, browsers will throw an error if not supported\n // See: https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange#:~:text=Note%20that%20according,not%20support%20selection%22.\n try {\n input.setSelectionRange(cursorPosition, cursorPosition);\n } catch {}\n input.focus();\n });\n }, []);\n\n return (\n <div\n data-accent-color={color}\n data-radius={radius}\n style={style}\n className={classNames('kui-TextFieldRoot', className, {\n 'kui-error': isInvalid,\n })}\n onPointerDown={handlePointerDown}\n >\n <input spellCheck=\"false\" {...nativeInputProps} {...ariaProps} ref={composeRefs(inputRef, forwardedRef)} className=\"kui-reset kui-TextFieldInput\" />\n {children}\n {inputProps.errorMessage && (\n <div id={errorId} className=\"kui-TextFieldErrorMessage\" role=\"alert\">\n {inputProps.errorMessage}\n </div>\n )}\n </div>\n );\n});\nTextFieldRoot.displayName = 'TextField.Root';\n\ntype TextFieldSlotElement = React.ElementRef<'div'>;\ntype TextFieldSlotOwnProps = GetPropDefTypes<typeof textFieldSlotPropDefs> & TextFieldSlotScrubProps;\ninterface TextFieldSlotProps extends ComponentPropsWithout<'div', RemovedProps>, TextFieldSlotOwnProps {}\n\n// Detect if we should use pointer capture instead of pointer lock\n// Safari and Firefox show intrusive browser warnings with pointer lock\nconst usePointerCapture = (() => {\n if (typeof navigator === 'undefined') return false;\n const ua = navigator.userAgent;\n const isSafari = /^((?!chrome|android).)*safari/i.test(ua);\n const isFirefox = /firefox/i.test(ua);\n return isSafari || isFirefox;\n})();\n\nconst TextFieldSlot = React.forwardRef<TextFieldSlotElement, TextFieldSlotProps>((props, forwardedRef) => {\n // Extract scrub props first (not part of PropDef system)\n const { scrub, scrubValue, scrubStep = 1, scrubSensitivity = 1, scrubMin, scrubMax, scrubShiftMultiplier = 10, scrubAltMultiplier = 0.1, onScrub, ...restProps } = props;\n\n // Then extract styling props\n const { className, color, side, ...slotProps } = extractProps(restProps, textFieldSlotPropDefs);\n\n const slotRef = React.useRef<HTMLDivElement>(null);\n const [isScrubbing, setIsScrubbing] = React.useState(false);\n // Virtual cursor position - X wraps around viewport, Y follows mouse\n const [cursorPosition, setCursorPosition] = React.useState({ x: 0, y: 0 });\n\n // Track accumulated sub-step movement for precision\n const accumulatedMovement = React.useRef(0);\n // Track current value for clamping (initialized to scrubValue when scrubbing starts)\n const currentValue = React.useRef(0);\n // Track virtual X position for wrap-around (separate from rendered position)\n const virtualX = React.useRef(0);\n // Track pointer ID for capture mode\n const pointerIdRef = React.useRef<number | null>(null);\n // Track last X position for capture mode (movementX calculation)\n const lastXRef = React.useRef(0);\n\n // Store scrub config in refs so document handlers can access latest values\n const scrubConfigRef = React.useRef({\n scrubValue,\n scrubStep,\n scrubSensitivity,\n scrubMin,\n scrubMax,\n scrubShiftMultiplier,\n scrubAltMultiplier,\n onScrub,\n });\n scrubConfigRef.current = {\n scrubValue,\n scrubStep,\n scrubSensitivity,\n scrubMin,\n scrubMax,\n scrubShiftMultiplier,\n scrubAltMultiplier,\n onScrub,\n };\n\n const handlePointerDown = React.useCallback(\n (event: React.PointerEvent) => {\n if (!scrub) return;\n\n // Don't start scrubbing if clicking on interactive elements\n const target = event.target as HTMLElement;\n if (target.closest('input, button, a')) return;\n\n event.preventDefault();\n accumulatedMovement.current = 0;\n // Initialize to current value so min/max clamping works correctly\n currentValue.current = scrubValue ?? 0;\n\n // Initialize virtual cursor at actual mouse position\n virtualX.current = event.clientX;\n setCursorPosition({ x: event.clientX, y: event.clientY });\n\n const slot = slotRef.current;\n if (!slot) return;\n\n if (usePointerCapture) {\n // Safari/Firefox: Use pointer capture (no browser warning)\n pointerIdRef.current = event.pointerId;\n lastXRef.current = event.clientX;\n slot.setPointerCapture(event.pointerId);\n setIsScrubbing(true);\n } else {\n // Chrome: Use pointer lock for infinite movement\n slot.requestPointerLock();\n }\n },\n [scrub, scrubValue],\n );\n\n // Handle pointer lock state changes (Chrome only)\n React.useEffect(() => {\n if (usePointerCapture) return;\n\n const handlePointerLockChange = () => {\n const isLocked = document.pointerLockElement === slotRef.current;\n setIsScrubbing(isLocked);\n if (!isLocked) {\n // Fire callback with isChanging = false when scrubbing ends\n scrubConfigRef.current.onScrub?.(0, false);\n accumulatedMovement.current = 0;\n currentValue.current = 0;\n }\n };\n\n document.addEventListener('pointerlockchange', handlePointerLockChange);\n return () => {\n document.removeEventListener('pointerlockchange', handlePointerLockChange);\n };\n }, []);\n\n // Shared scrub calculation logic\n const processScrubMovement = React.useCallback((movementX: number, movementY: number, shiftKey: boolean, altKey: boolean) => {\n const config = scrubConfigRef.current;\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n\n // Update virtual position with wrap-around at viewport edges\n virtualX.current += movementX;\n if (virtualX.current > viewportWidth) {\n virtualX.current = virtualX.current % viewportWidth;\n } else if (virtualX.current < 0) {\n virtualX.current = viewportWidth + (virtualX.current % viewportWidth);\n }\n\n // Also track Y with wrap-around\n setCursorPosition((prev) => {\n let newY = prev.y + movementY;\n if (newY > viewportHeight) {\n newY = newY % viewportHeight;\n } else if (newY < 0) {\n newY = viewportHeight + (newY % viewportHeight);\n }\n return { x: virtualX.current, y: newY };\n });\n\n // Accumulate movement for sensitivity calculation\n accumulatedMovement.current += movementX;\n\n // Calculate how many steps we've moved\n const stepsFromMovement = accumulatedMovement.current / config.scrubSensitivity;\n\n if (Math.abs(stepsFromMovement) >= 1) {\n // Determine modifier multiplier\n let multiplier = 1;\n if (shiftKey) {\n multiplier = config.scrubShiftMultiplier;\n } else if (altKey) {\n multiplier = config.scrubAltMultiplier;\n }\n\n // Calculate delta\n const wholeSteps = Math.trunc(stepsFromMovement);\n const delta = wholeSteps * config.scrubStep * multiplier;\n\n // Apply min/max clamping if bounds are set\n let clampedDelta = delta;\n if (config.scrubMin !== undefined || config.scrubMax !== undefined) {\n const newValue = currentValue.current + delta;\n const clampedValue = Math.max(config.scrubMin ?? -Infinity, Math.min(config.scrubMax ?? Infinity, newValue));\n clampedDelta = clampedValue - currentValue.current;\n currentValue.current = clampedValue;\n } else {\n currentValue.current += delta;\n }\n\n // Fire callback with clamped delta (isChanging = true during drag)\n if (clampedDelta !== 0) {\n config.onScrub?.(clampedDelta, true);\n }\n\n // Keep the fractional remainder for smooth sub-pixel accumulation\n accumulatedMovement.current = (stepsFromMovement - wholeSteps) * config.scrubSensitivity;\n }\n }, []);\n\n // End scrubbing helper\n const endScrubbing = React.useCallback(() => {\n scrubConfigRef.current.onScrub?.(0, false);\n accumulatedMovement.current = 0;\n currentValue.current = 0;\n pointerIdRef.current = null;\n setIsScrubbing(false);\n }, []);\n\n // Handle pointer capture mode events (Safari/Firefox)\n const handlePointerMove = React.useCallback(\n (event: React.PointerEvent) => {\n if (!isScrubbing || !usePointerCapture) return;\n\n const movementX = event.clientX - lastXRef.current;\n lastXRef.current = event.clientX;\n\n processScrubMovement(movementX, event.movementY, event.shiftKey, event.altKey);\n },\n [isScrubbing, processScrubMovement],\n );\n\n const handlePointerUp = React.useCallback(\n (event: React.PointerEvent) => {\n if (!usePointerCapture || pointerIdRef.current !== event.pointerId) return;\n\n const slot = slotRef.current;\n if (slot && pointerIdRef.current !== null) {\n slot.releasePointerCapture(pointerIdRef.current);\n }\n endScrubbing();\n },\n [endScrubbing],\n );\n\n const handleLostPointerCapture = React.useCallback(() => {\n if (usePointerCapture && isScrubbing) {\n endScrubbing();\n }\n }, [isScrubbing, endScrubbing]);\n\n // Attach document-level listeners for pointer lock mode (Chrome)\n React.useEffect(() => {\n if (!isScrubbing || usePointerCapture) return;\n\n const handleMouseMove = (event: MouseEvent) => {\n processScrubMovement(event.movementX, event.movementY, event.shiftKey, event.altKey);\n };\n\n const handleMouseUp = () => {\n // Exit pointer lock to end scrubbing\n document.exitPointerLock();\n };\n\n // Use mousemove for pointer lock (pointermove doesn't work well with pointer lock)\n document.addEventListener('mousemove', handleMouseMove);\n document.addEventListener('mouseup', handleMouseUp);\n\n // Disable text selection during scrubbing\n document.body.style.userSelect = 'none';\n\n return () => {\n document.removeEventListener('mousemove', handleMouseMove);\n document.removeEventListener('mouseup', handleMouseUp);\n document.body.style.userSelect = '';\n };\n }, [isScrubbing, processScrubMovement]);\n\n // Hide native cursor and disable text selection during pointer capture scrubbing\n React.useEffect(() => {\n if (!isScrubbing || !usePointerCapture) return;\n\n // Create a style element to hide cursor globally during scrub\n const style = document.createElement('style');\n style.textContent = '* { cursor: none !important; user-select: none !important; }';\n document.head.appendChild(style);\n\n return () => {\n document.head.removeChild(style);\n };\n }, [isScrubbing]);\n\n // Render virtual cursor via portal to body so it's not clipped\n // Using a data URI of ew-resize cursor for a native look\n const virtualCursor = isScrubbing\n ? ReactDOM.createPortal(\n <img\n className=\"kui-TextFieldSlotScrubCursor\"\n src=\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='black' stroke='white' stroke-width='1' d='M0 12 L5 7 L5 10 L19 10 L19 7 L24 12 L19 17 L19 14 L5 14 L5 17 Z'/%3E%3C/svg%3E\"\n alt=\"\"\n style={{\n position: 'fixed',\n left: cursorPosition.x,\n top: cursorPosition.y,\n transform: 'translate(-50%, -50%)',\n pointerEvents: 'none',\n zIndex: 99999,\n width: 24,\n height: 24,\n }}\n aria-hidden=\"true\"\n />,\n document.body,\n )\n : null;\n\n return (\n <div\n data-accent-color={color}\n data-side={side}\n data-scrub={scrub || undefined}\n data-scrubbing={isScrubbing || undefined}\n {...slotProps}\n ref={composeRefs(slotRef, forwardedRef)}\n className={classNames('kui-TextFieldSlot', className)}\n onPointerDown={scrub ? handlePointerDown : undefined}\n onPointerMove={scrub ? handlePointerMove : undefined}\n onPointerUp={scrub ? handlePointerUp : undefined}\n onLostPointerCapture={scrub ? handleLostPointerCapture : undefined}\n >\n {slotProps.children}\n {virtualCursor}\n </div>\n );\n});\nTextFieldSlot.displayName = 'TextField.Slot';\n\nexport { TextFieldRoot as Root, TextFieldSlot as Slot };\nexport type { TextFieldRootProps as RootProps, TextFieldSlotProps as SlotProps };\n"],
5
- "mappings": "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",
6
- "names": ["text_field_exports", "__export", "TextFieldRoot", "TextFieldSlot", "React", "ReactDOM", "classNames", "composeRefs", "TextFieldRoot", "ownProps", "forwardedRef", "props", "useThemeSizeProps", "textFieldRootPropDefs", "inputRef", "children", "className", "color", "radius", "style", "inputProps", "extractProps", "errorId", "ariaDescribedby", "ariaLabelledby", "ariaInvalid", "isInvalid", "describedBy", "parts", "ariaProps", "error", "errorMessage", "required", "_ariaDescribedby", "_ariaLabelledby", "nativeInputProps", "handlePointerDown", "event", "target", "input", "cursorPosition", "classNames", "composeRefs", "usePointerCapture", "ua", "isSafari", "isFirefox", "TextFieldSlot", "scrub", "scrubValue", "scrubStep", "scrubSensitivity", "scrubMin", "scrubMax", "scrubShiftMultiplier", "scrubAltMultiplier", "onScrub", "restProps", "side", "slotProps", "textFieldSlotPropDefs", "slotRef", "isScrubbing", "setIsScrubbing", "setCursorPosition", "accumulatedMovement", "currentValue", "virtualX", "pointerIdRef", "lastXRef", "scrubConfigRef", "slot", "handlePointerLockChange", "isLocked", "processScrubMovement", "movementX", "movementY", "shiftKey", "altKey", "config", "viewportWidth", "viewportHeight", "prev", "newY", "stepsFromMovement", "multiplier", "wholeSteps", "delta", "clampedDelta", "newValue", "clampedValue", "endScrubbing", "handlePointerMove", "handlePointerUp", "handleLostPointerCapture", "handleMouseMove", "handleMouseUp", "virtualCursor"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a as De,b as Fe}from"./chunk-I53SGTKV.js";import{a as Be}from"./chunk-MGQ4A2FI.js";import{a as Ae}from"./chunk-NNZTSXKH.js";import{c as le,d as ae,g as ge,h as Se,i as be}from"./chunk-AB3QCCUM.js";import{a as Ie}from"./chunk-OJQNLROL.js";import{a as Oe}from"./chunk-JBHRV364.js";import{a as $,b as ke,c as He,d as we,g as Ne}from"./chunk-3J6AUDID.js";import{a as Ee,b as se}from"./chunk-7CUQMU3T.js";import{a as ue,b as de,c as pe}from"./chunk-5ROQAZ7J.js";import{e as re,f as ye,h as Me,i as ee,j as Te,k as ie,l as ce,n as ze,o as te}from"./chunk-3PTKPDSA.js";import{a as Le,b as xe}from"./chunk-VXQQ6KXI.js";import{a as Ce}from"./chunk-HWQ3NTJP.js";import{d as Re}from"./chunk-3YLYGKFB.js";import{a as ve}from"./chunk-TBZO22XK.js";import{a as Ge}from"./chunk-OS3FCYZY.js";var et={};Ge(et,{Bottom:()=>Ie,Content:()=>qe,Header:()=>_e,Inspector:()=>Oe,Left:()=>Ke,PaneFooter:()=>Se,PaneHeader:()=>ge,Panel:()=>Pe,Rail:()=>$e,Root:()=>We,Scroll:()=>be,Sidebar:()=>Ae,Trigger:()=>je,useResponsivePresentation:()=>Be,useShell:()=>Fe,useSidebarMode:()=>De});import*as e from"react";import U from"classnames";import{useComposedRefs as he}from"radix-ui/internal";var fe=0;function Ve(a){fe=Math.max(0,fe+a);let s=document.documentElement;fe>0?s.setAttribute("data-kui-shell-lock",""):s.removeAttribute("data-kui-shell-lock")}var me="data-kui-shell-inert",Xe=30;function q(a,s){return s===null||s===a||s===a.body||s===a.documentElement}function Ue(a,s,r){for(let u of a.querySelectorAll("[data-shell-trigger][aria-controls]"))if(!(u.getAttribute("aria-controls")!==s||u.closest("[inert]"))&&!(r&&!r.some(R=>R.contains(u))))return u;return null}var Je={values:["1","2","3"]},We=e.forwardRef(({className:a,children:s,height:r="full",size:u,style:R,onKeyDown:A,onFocus:L,...x},k)=>{let p=Re(u,Je),[i]=e.useState(ye),S=e.useCallback(t=>Me(i,t),[i]);e.useSyncExternalStore(S,()=>i.version,()=>0);let h=e.useRef(null),E=he(k,h),[y,b]=e.useState(()=>new Set),P=e.useCallback(t=>{b(n=>n.has(t)?n:new Set(n).add(t))},[]),f=e.useCallback(t=>{b(n=>{if(!n.has(t))return n;let o=new Set(n);return o.delete(t),o})},[]),M=e.useMemo(()=>({registerInset:P,unregisterInset:f}),[P,f]),g=e.useCallback(()=>{for(let t of i.entries.values())t.overlayLive&&t.setValue("closed","dismiss")},[i]),H=e.useCallback(()=>[...i.entries.values()].filter(t=>t.overlayLive&&t.el).map(t=>({name:t.name,id:t.id,el:t.el})),[i]),v=[...i.entries.values()].filter(t=>t.overlayLive&&t.el).length,W=r!=="full"&&r!=="auto",w=e.useCallback(()=>{let t=h.current;if(!t)return;let n=H().map(o=>o.el);for(let o of t.children){if(!(o instanceof HTMLElement)||o.classList.contains("kui-ShellScrim"))continue;let c=n.some(z=>o===z||o.contains(z));n.length===0||c?o.hasAttribute(me)&&(o.removeAttribute(me),o.inert=!1):o.inert||(o.setAttribute(me,""),o.inert=!0)}},[H]),_=e.useRef(null),j=e.useRef([]),G=e.useRef(null),D=e.useRef(!1),T=e.useRef(0),N=e.useCallback(()=>{T.current&&cancelAnimationFrame(T.current),T.current=0},[]),X=e.useCallback((t,n)=>{N();let o=0,c=()=>{if(T.current=0,!!t.isConnected){if(n(t.ownerDocument.activeElement)){t.focus({preventScroll:!0});return}o+=1,o<Xe&&(T.current=requestAnimationFrame(c))}};T.current=requestAnimationFrame(c)},[N]);e.useEffect(()=>()=>{N(),D.current&&(D.current=!1,Ve(-1))},[N]),e.useEffect(()=>{let t=h.current;if(!t)return;let n=t.ownerDocument,o=H(),c=o.map(l=>l.el),z=!W&&o.length>0;z!==D.current&&(D.current=z,Ve(z?1:-1));let B=j.current;j.current=o;let O=B.filter(l=>{if(c.includes(l.el))return!1;let d=i.entries.get(l.name);return!l.el.isConnected||!d||d.el!==l.el||d.value==="closed"}),K=l=>l!==null&&O.some(d=>d.el.contains(l));if(B.length===0&&o.length>0){let l=n.activeElement,d=l instanceof HTMLElement&&!q(n,l)&&!c.some(m=>m.contains(l))?l:null;if(d&&!t.contains(d)){let m=G.current;m&&m.isConnected&&!c.some(Z=>Z.contains(m))&&(d=m)}_.current=d}if(w(),o.length===0){let l=_.current;if(_.current=null,O.length===0)return;let m=(C=>C!==null&&C.isConnected&&!C.closest("[inert]")&&!K(C))(l)?l:null;for(let C of O)m??(m=Ue(n,C.id));if(!m)return;let Z=C=>q(n,C)||K(C);Z(n.activeElement)?m.focus({preventScroll:!0}):X(m,Z);return}if(O.length>0){let l=n.activeElement;if(q(n,l)||K(l)){let d=null;for(let m of O)d??(d=Ue(n,m.id,c));(d??c[c.length-1]).focus({preventScroll:!0})}}let V=c.filter(l=>!B.some(d=>d.el===l)),oe=n.activeElement;V.length>0&&!c.some(l=>l.contains(oe))&&(V[0].focus({preventScroll:!0}),X(V[0],l=>q(n,l)||l instanceof Element&&l.closest("[inert]")!==null))}),e.useEffect(()=>{let t=h.current;if(!t||v===0||typeof MutationObserver>"u")return;let n=new MutationObserver(w);return n.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["inert"]}),()=>n.disconnect()},[v,w]);let J=t=>{A?.(t),!(t.key!=="Escape"||t.defaultPrevented||v===0)&&(g(),t.stopPropagation())};e.useEffect(()=>{let t=h.current;if(!t||v===0)return;let n=t.ownerDocument,o=c=>{c.key!=="Escape"||c.defaultPrevented||!q(n,c.target)||g()};return n.addEventListener("keydown",o),()=>n.removeEventListener("keydown",o)},[v,g]);let Q=t=>{L?.(t),t.target instanceof HTMLElement&&h.current?.contains(t.target)&&(G.current=t.target)},I=i.entries.get("rail"),F=I!==void 0&&I.value!==void 0&&I.value!=="closed"?y.has("rail")?`calc(${I.size}px + 2 * var(--shell-inset-gap))`:`${I.size}px`:void 0,ne=r==="full"?{}:r==="auto"?{height:"auto"}:typeof r=="number"?{height:`${r}px`}:{height:r};return e.createElement(Te.Provider,{value:i},e.createElement(le.Provider,{value:p},e.createElement(ze.Provider,{value:M},e.createElement("div",{...x,ref:E,className:U("kui-ShellRoot",a),"data-height":r==="auto"?"auto":void 0,"data-has-inset":y.size>0||void 0,"data-overlay-live":v>0||void 0,onKeyDown:J,onFocus:Q,style:{...ne,...F?{"--shell-rail-offset":F}:{},...R}},s,e.createElement("div",{className:"kui-ShellScrim","aria-hidden":!0,onClick:g})))))});We.displayName="Shell.Root";var _e=e.forwardRef(({className:a,height:s=64,style:r,...u},R)=>e.createElement("header",{...u,ref:R,className:U("kui-ShellHeader",a),style:{...r,"--shell-header-height":`${s}px`}}));_e.displayName="Shell.Header";var Ke=e.forwardRef(({children:a},s)=>(e.useEffect(()=>{},[]),e.createElement(e.Fragment,null,a)));Ke.displayName="Shell.Left";var Qe={controlled:"open",default:"defaultOpen"},$e=e.forwardRef((a,s)=>{let{className:r,presentation:u,expandedSize:R=64,collapsible:A,onExpand:L,onCollapse:x,children:k,style:p,open:i,defaultOpen:S,onOpenChange:h,inset:E,id:y,...b}=a,{table:P,attributes:f}=pe(u,"fixed"),M=ue({name:"rail",label:"Rail",propNames:Qe,id:y,controlled:$(i),defaultValue:$(S),presentationTable:P,builtIn:ke,onChange:(H,v)=>h?.(H!=="closed",{reason:v}),onExpand:L,onCollapse:x,size:R});te("rail",E);let g=he(s,M.setElement);return e.createElement("div",{...b,id:M.id,ref:g,className:U("kui-ShellPane","kui-ShellRail",r),...de(M,f),"data-inset":E||void 0,tabIndex:M.overlaying?-1:b.tabIndex,style:{...p,"--rail-size":`${R}px`}},e.createElement(Ye,null,k))});$e.displayName="Shell.Rail";function Ye({children:a}){let s=e.useContext(le);return e.createElement("div",{className:U("kui-ShellRailContent",`kui-r-size-${s}`)},e.createElement(ae,{presentation:"thin"},a))}var Ze={controlled:"open",default:"defaultOpen"},Pe=e.forwardRef((a,s)=>{let{className:r,presentation:u,defaultOpen:R,open:A,onOpenChange:L,size:x,defaultSize:k,expandedSize:p=288,minSize:i=100,maxSize:S=800,resizable:h=!1,collapsible:E=!0,onExpand:y,onCollapse:b,onResize:P,onResizeStart:f,onResizeEnd:M,snapPoints:g,snapTolerance:H,collapseThreshold:v,paneId:W,persistence:w,children:_,style:j,onSizeChange:G,sizeUpdate:D,sizeUpdateMs:T=50,inset:N,id:X,...J}=a,Q=ie("Shell.Panel"),I=ce(Q,"rail"),Y=pe(u,"fixed"),F=u===void 0,ne=F?I?.presentationTable??re:Y.table,t=F?{"data-presentation-follows":""}:Y.attributes,n=ue({name:"panel",label:"Panel",propNames:Ze,id:X,controlled:$(A),defaultValue:$(R),presentationTable:ne,builtIn:He,onChange:(V,oe)=>L?.(V!=="closed",{reason:oe}),onExpand:y,onCollapse:b,size:p});te("panel",N),e.useEffect(()=>{(g!==void 0||v!==void 0||W!==void 0||w!==void 0)&&void 0},[g,v,W,w]);let o=e.useRef(null),c=he(s,n.setElement,o),z=Le({name:"panel",elementId:n.id,elementRef:o,cssVarName:"--panel-size",orientation:"vertical",edge:"end",growth:we,expandedSize:p,minSize:i,maxSize:S,resizable:h,collapsible:E,size:x,defaultSize:k,onSizeChange:G,sizeUpdate:D,sizeUpdateMs:T,onResize:P,onResizeStart:f,onResizeEnd:M,snapPoints:g,snapTolerance:H,collapseThreshold:v,paneId:W,persistence:w,overlaying:n.overlaying,overlayingNow:()=>(F?Q.entries.get("rail")?.presentationTable??re:Y.table)[ve()]==="overlay",requestCollapse:()=>n.setValue("closed","toggle"),requestToggle:()=>n.toggle("toggle")}),{handles:B,content:O}=xe(_,se),K=h&&n.shown!==!1&&!n.overlaying?e.createElement(Ce.Provider,{value:z},B.length>0?B:e.createElement(Ee,null)):null;return e.createElement("div",{...Ne(J),id:n.id,ref:c,className:U("kui-ShellPane","kui-ShellPanel",r),...de(n,t),"data-inset":N||void 0,tabIndex:n.overlaying?-1:J.tabIndex,style:{...j,"--panel-expanded-size":`${p}px`}},e.createElement("div",{className:"kui-ShellPanelContent"},e.createElement(ae,null,O)),K)});Pe.displayName="Shell.Panel";Pe.Handle=se;var qe=e.forwardRef(({className:a,inset:s,...r},u)=>(te("content",s),e.createElement("main",{...r,ref:u,className:U("kui-ShellContent",a),"data-inset":s||void 0})));qe.displayName="Shell.Content";var je=e.forwardRef(({target:a,action:s="toggle",peekOnHover:r,onClick:u,onMouseEnter:R,onMouseLeave:A,children:L,...x},k)=>{let p=ie("Shell.Trigger");e.useEffect(()=>{a==="left"&&void 0,r&&void 0},[a,r]);let i=a==="left"?"rail":a,S=ce(p,i),h=S?.value===void 0?void 0:S.value!=="closed",E=P=>{if(u?.(P),P.defaultPrevented)return;let f=p.entries.get(i);f&&(p.peek===i&&ee(p,null),s==="toggle"?f.toggle("toggle"):s==="expand"?f.setValue("open","toggle"):f.setValue("closed","toggle"))},y=P=>{if(R?.(P),!r)return;let f=p.entries.get(i);f&&f.value==="closed"&&f.presentation!=="overlay"&&ee(p,i)},b=P=>{A?.(P),r&&p.peek===i&&ee(p,null)};return e.createElement("button",{type:"button","aria-controls":S?.id,"aria-expanded":h,...x,ref:k,onClick:E,onMouseEnter:y,onMouseLeave:b,"data-shell-trigger":a,"data-shell-action":s},L)});je.displayName="Shell.Trigger";export{We as a,_e as b,Ke as c,$e as d,Pe as e,qe as f,je as g,et as h};
2
- //# sourceMappingURL=chunk-FHPHEIYJ.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/shell.tsx"],
4
- "sourcesContent": ["/**\n * Shell: the app frame.\n *\n * Since 0.8.0 the Shell is built on kookie-ui-v2's model, behind v1's API:\n *\n * - The Root is a CSS grid and renders its children as given, in JSX order.\n * Each pane claims its own grid area, so the Root never scans or reorders\n * children, any child renders, and a pane mounted after the Root works.\n * - State lives on each pane: `auto` (untouched), `open` or `closed`. An\n * untouched pane follows the window, resolved by the\n * stylesheet, so first paint needs no script and no open-state callback\n * fires on mount or on a resize.\n * - A pane is one element at every width. `overlay` is a posture of that\n * element, not a Sheet swapped in: crossing a breakpoint keeps its scroll\n * position, its focus and its children's state.\n * - The Root owns what an overlay needs: one scrim, `inert` on everything\n * else, focus moved in and returned, Escape, and a scroll lock.\n * - Nothing links panes to each other. A Rail closing no longer closes the\n * Panel; an app that wants that writes it in `onOpenChange`.\n */\n'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { useComposedRefs } from 'radix-ui/internal';\nimport { PaneResizeContext } from './_internal/shell-resize.js';\nimport { PaneHandle, PanelHandle } from './_internal/shell-handles.js';\nimport { Sidebar } from './_internal/shell-sidebar.js';\nimport { Bottom } from './_internal/shell-bottom.js';\nimport { Inspector } from './_internal/shell-inspector.js';\nimport { usePane, paneAttributes, usePresentationTable } from './_internal/shell-pane.js';\nimport { splitHandles, useResizablePane } from './_internal/shell-resizable.js';\nimport {\n FIXED_TABLE,\n ShellInsetContext,\n ShellStoreContext,\n createShellStore,\n setShellPeek,\n subscribeShellStore,\n useInsetRegistration,\n usePaneEntry,\n useShellStore,\n warnOnce,\n type InsetPaneId,\n} from './_internal/shell-store.js';\nimport { navigationRest, detailRest, toPaneValue, startAnchoredGrowth, withoutRemovedPaneProps } from './_internal/shell-rest.js';\nimport { useShell, useSidebarMode } from './shell.context.js';\nimport { useResponsivePresentation } from './shell.hooks.js';\nimport { readBreakpoint } from '../hooks/use-breakpoint.js';\nimport { useThemeSize } from '../helpers/theme-size.js';\nimport { PaneChromeScope, PaneFooter, PaneHeader, Scroll, ShellSizeContext } from './_internal/pane-chrome.js';\nimport type { PaneSize } from './_internal/pane-chrome.js';\nimport type { Breakpoint, CSSPropertiesWithVars, PaneBaseProps, PaneMode, PaneName, PaneTarget, ResponsivePresentation, SidebarMode } from './shell.types.js';\n\n/* \u2500\u2500 Root \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\nexport interface ShellRootProps extends React.ComponentPropsWithoutRef<'div'> {\n children: React.ReactNode;\n height?: 'full' | 'auto' | string | number;\n /** The index the panes' chrome takes: `Shell.PaneHeader`, `Shell.Scroll`, `Shell.PaneFooter` and the Sidebar rows in them. Defaults to the nearest Theme's size (3 when the Theme is 4), else `2`. */\n size?: PaneSize;\n}\n\n/**\n * Every Shell with a live overlay holds the page still, counted across Shells,\n * through an attribute the stylesheet reads. Saving and restoring the\n * document's inline `overflow` would fight any other scroll lock on the page.\n */\nlet pageLockHolders = 0;\nfunction updatePageLock(delta: 1 | -1) {\n pageLockHolders = Math.max(0, pageLockHolders + delta);\n const doc = document.documentElement;\n if (pageLockHolders > 0) doc.setAttribute('data-kui-shell-lock', '');\n else doc.removeAttribute('data-kui-shell-lock');\n}\n\n/** Marks a child the Root made inert, so closing removes only what the Root added. */\nconst INERT_MARK = 'data-kui-shell-inert';\n\n/** How many frames a focus rescue watches after an overlay opens or closes. */\nconst RESCUE_FRAMES = 30;\n\n/** Focus that is nowhere useful: the document, or nothing at all. */\nfunction isNowhere(doc: Document, el: Element | EventTarget | null): boolean {\n return el === null || el === doc || el === doc.body || el === doc.documentElement;\n}\n\n/** A Trigger that drives the pane with this id and can take focus, optionally only inside `within`. */\nfunction triggerFor(doc: Document, id: string, within?: HTMLElement[]): HTMLElement | null {\n for (const el of doc.querySelectorAll<HTMLElement>('[data-shell-trigger][aria-controls]')) {\n if (el.getAttribute('aria-controls') !== id || el.closest('[inert]')) continue;\n if (within && !within.some((pane) => pane.contains(el))) continue;\n return el;\n }\n return null;\n}\n\ntype LivePane = { name: PaneName; id: string; el: HTMLElement };\n\n/** Shell.Root's own range; a Theme size above it maps to 3. */\nconst shellSizePropDef = { values: ['1', '2', '3'] as const };\n\nconst Root = React.forwardRef<HTMLDivElement, ShellRootProps>(({ className, children, height = 'full', size: sizeProp, style, onKeyDown, onFocus, ...props }, ref) => {\n // No size of its own: the nearest Theme's, mapped into 1-3.\n const size = useThemeSize(sizeProp, shellSizePropDef);\n const [store] = React.useState(createShellStore);\n const subscribe = React.useCallback((listener: () => void) => subscribeShellStore(store, listener), [store]);\n // Subscribed for the re-render, not for a value: a pane opening or closing\n // must bring the Root back so containment and the scrim follow it.\n React.useSyncExternalStore(\n subscribe,\n () => store.version,\n () => 0,\n );\n\n const rootRef = React.useRef<HTMLDivElement | null>(null);\n const composedRef = useComposedRefs(ref, rootRef);\n\n // Inset: the Root paints the backdrop while any pane is inset.\n const [insetPanes, setInsetPanes] = React.useState<ReadonlySet<InsetPaneId>>(() => new Set());\n const registerInset = React.useCallback((id: InsetPaneId) => {\n setInsetPanes((prev) => (prev.has(id) ? prev : new Set(prev).add(id)));\n }, []);\n const unregisterInset = React.useCallback((id: InsetPaneId) => {\n setInsetPanes((prev) => {\n if (!prev.has(id)) return prev;\n const next = new Set(prev);\n next.delete(id);\n return next;\n });\n }, []);\n const insetContext = React.useMemo(() => ({ registerInset, unregisterInset }), [registerInset, unregisterInset]);\n\n const closeOverlays = React.useCallback(() => {\n for (const entry of store.entries.values()) {\n if (entry.overlayLive) entry.setValue('closed', 'dismiss');\n }\n }, [store]);\n\n const livePanes = React.useCallback(\n (): LivePane[] => [...store.entries.values()].filter((entry) => entry.overlayLive && entry.el).map((entry) => ({ name: entry.name, id: entry.id, el: entry.el as HTMLElement })),\n [store],\n );\n const liveCount = [...store.entries.values()].filter((entry) => entry.overlayLive && entry.el).length;\n\n // A Shell given a height of its own sits inside a page, and its overlays\n // cover only its box: it holds no page lock. `full` is the page, and\n // `auto` grows with its content, so its overlays are placed on the window.\n const contained = height !== 'full' && height !== 'auto';\n\n /*\n * Containment is the Root's, not the pane's. Only the Root can see every live\n * overlay and every child at once. A per-pane effect, given two overlays,\n * inerts the other live overlay and restores values the other effect wrote,\n * which can leave the whole frame inert for good.\n *\n * Exempt are the scrim and each root child that CONTAINS a live overlay, so\n * a pane wrapped in a plain element is not inerted with its wrapper. A child\n * the Root inerts is marked, and closing clears only marked children, so\n * `inert` the app sets on a child is the app's before, during and after.\n */\n const contain = React.useCallback(() => {\n const rootEl = rootRef.current;\n if (!rootEl) return;\n const liveEls = livePanes().map((pane) => pane.el);\n for (const child of rootEl.children) {\n if (!(child instanceof HTMLElement) || child.classList.contains('kui-ShellScrim')) continue;\n const holdsLive = liveEls.some((el) => child === el || child.contains(el));\n if (liveEls.length === 0 || holdsLive) {\n if (child.hasAttribute(INERT_MARK)) {\n child.removeAttribute(INERT_MARK);\n child.inert = false;\n }\n } else if (!child.inert) {\n child.setAttribute(INERT_MARK, '');\n child.inert = true;\n }\n }\n }, [livePanes]);\n\n const returnFocusTo = React.useRef<HTMLElement | null>(null);\n const lastLive = React.useRef<LivePane[]>([]);\n const lastFocusInRoot = React.useRef<HTMLElement | null>(null);\n const holdsLock = React.useRef(false);\n\n /*\n * Focus can be taken away after the commit that moved it: a menu that\n * opened or closed a pane restores focus to its own trigger when it\n * finishes closing, which may be inert or hidden by then. For a few frames\n * after an overlay opens or closes, focus that ends up nowhere useful is\n * put back where it belongs.\n */\n const rescueFrame = React.useRef(0);\n const cancelRescue = React.useCallback(() => {\n if (rescueFrame.current) cancelAnimationFrame(rescueFrame.current);\n rescueFrame.current = 0;\n }, []);\n const rescueFocus = React.useCallback(\n (target: HTMLElement, lost: (active: Element | null) => boolean) => {\n cancelRescue();\n let frames = 0;\n const tick = () => {\n rescueFrame.current = 0;\n if (!target.isConnected) return;\n if (lost(target.ownerDocument.activeElement)) {\n target.focus({ preventScroll: true });\n return;\n }\n frames += 1;\n if (frames < RESCUE_FRAMES) rescueFrame.current = requestAnimationFrame(tick);\n };\n rescueFrame.current = requestAnimationFrame(tick);\n },\n [cancelRescue],\n );\n\n React.useEffect(\n () => () => {\n cancelRescue();\n if (holdsLock.current) {\n holdsLock.current = false;\n updatePageLock(-1);\n }\n },\n [cancelRescue],\n );\n\n // No dependency array, on purpose: a pane opening or closing is a render\n // of this component, and so is a child appearing through the Root.\n React.useEffect(() => {\n const rootEl = rootRef.current;\n if (!rootEl) return;\n const doc = rootEl.ownerDocument;\n const live = livePanes();\n const liveEls = live.map((pane) => pane.el);\n\n const wantsLock = !contained && live.length > 0;\n if (wantsLock !== holdsLock.current) {\n holdsLock.current = wantsLock;\n updatePageLock(wantsLock ? 1 : -1);\n }\n\n const previous = lastLive.current;\n lastLive.current = live;\n // A pane that left the live set because it closed, as opposed to one\n // that is still open but stopped being an overlay at a breakpoint.\n const closed = previous.filter((pane) => {\n if (liveEls.includes(pane.el)) return false;\n const entry = store.entries.get(pane.name);\n return !pane.el.isConnected || !entry || entry.el !== pane.el || entry.value === 'closed';\n });\n const inClosed = (active: Element | null) => active !== null && closed.some((pane) => pane.el.contains(active));\n\n // The return target is taken on the opening edge, before inerting: inerting\n // the subtree that holds the trigger blurs it. Focus already inside the\n // overlay (a pane that became one at a breakpoint) is no place to return\n // to, and an opener in a portal (a menu item) goes away with its menu, so\n // the last place focus held inside the frame stands in for it.\n if (previous.length === 0 && live.length > 0) {\n const active = doc.activeElement;\n let target = active instanceof HTMLElement && !isNowhere(doc, active) && !liveEls.some((el) => el.contains(active)) ? active : null;\n if (target && !rootEl.contains(target)) {\n const inRoot = lastFocusInRoot.current;\n if (inRoot && inRoot.isConnected && !liveEls.some((el) => el.contains(inRoot))) target = inRoot;\n }\n returnFocusTo.current = target;\n }\n\n contain();\n\n if (live.length === 0) {\n const before = returnFocusTo.current;\n returnFocusTo.current = null;\n // Every overlay that left only stopped being one: focus stays where it is.\n if (closed.length === 0) return;\n const usable = (el: HTMLElement | null) => el !== null && el.isConnected && !el.closest('[inert]') && !inClosed(el);\n let target = usable(before) ? before : null;\n for (const pane of closed) target ??= triggerFor(doc, pane.id);\n if (!target) return;\n const lost = (active: Element | null) => isNowhere(doc, active) || inClosed(active);\n if (lost(doc.activeElement)) target.focus({ preventScroll: true });\n else rescueFocus(target, lost);\n return;\n }\n\n // Some overlays closed while others stay: focus left in a closed one goes\n // to the Trigger that opened it, if a live pane holds it, or to the pane\n // on top.\n if (closed.length > 0) {\n const active = doc.activeElement;\n if (isNowhere(doc, active) || inClosed(active)) {\n let target: HTMLElement | null = null;\n for (const pane of closed) target ??= triggerFor(doc, pane.id, liveEls);\n (target ?? liveEls[liveEls.length - 1]).focus({ preventScroll: true });\n }\n }\n\n // Focus moves in on the opening edge and nowhere else, and only when it\n // is not already somewhere the user put it inside the live set.\n const opened = liveEls.filter((el) => !previous.some((pane) => pane.el === el));\n const active = doc.activeElement;\n if (opened.length > 0 && !liveEls.some((el) => el.contains(active))) {\n opened[0].focus({ preventScroll: true });\n rescueFocus(opened[0], (now) => isNowhere(doc, now) || (now instanceof Element && now.closest('[inert]') !== null));\n }\n });\n\n // A child that appears through its own state while an overlay is live does\n // not render the Root, so the Root watches its children while one is.\n React.useEffect(() => {\n const rootEl = rootRef.current;\n if (!rootEl || liveCount === 0 || typeof MutationObserver === 'undefined') return;\n const observer = new MutationObserver(contain);\n observer.observe(rootEl, { childList: true, subtree: true, attributes: true, attributeFilter: ['inert'] });\n return () => observer.disconnect();\n }, [liveCount, contain]);\n\n /*\n * Escape closes the overlays. It is handled as a React event on the Root, so\n * a component inside a pane that answers Escape in its own onKeyDown runs\n * first, and its preventDefault() or stopPropagation() keeps the pane open.\n * When the Root closes something it stops the event there, so a React\n * Escape handler above the Shell does not act on it too. A layer that\n * listens on the document in the capture phase (Radix dialogs, menus and\n * popovers) answers first and calls preventDefault() when it closes, so an\n * enclosing Kookie Dialog closes before a Shell inside it is asked.\n */\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n onKeyDown?.(event);\n if (event.key !== 'Escape' || event.defaultPrevented || liveCount === 0) return;\n closeOverlays();\n event.stopPropagation();\n };\n\n // With focus on the document itself (a pane closed under it, or a menu that\n // closed and took focus with it), the Root never sees the key. While an\n // overlay is live the document answers that one case.\n React.useEffect(() => {\n const rootEl = rootRef.current;\n if (!rootEl || liveCount === 0) return;\n const doc = rootEl.ownerDocument;\n const onDocumentKeyDown = (event: KeyboardEvent) => {\n if (event.key !== 'Escape' || event.defaultPrevented || !isNowhere(doc, event.target)) return;\n closeOverlays();\n };\n doc.addEventListener('keydown', onDocumentKeyDown);\n return () => doc.removeEventListener('keydown', onDocumentKeyDown);\n }, [liveCount, closeOverlays]);\n\n const handleFocus = (event: React.FocusEvent<HTMLDivElement>) => {\n onFocus?.(event);\n if (event.target instanceof HTMLElement && rootRef.current?.contains(event.target)) lastFocusInRoot.current = event.target;\n };\n\n // A floating Panel sits beside the Rail when the Rail is showing, and\n // beside its card when the Rail is inset.\n const rail = store.entries.get('rail');\n const railShown = rail !== undefined && rail.value !== undefined && rail.value !== 'closed';\n const railOffset = railShown ? (insetPanes.has('rail') ? `calc(${rail.size}px + 2 * var(--shell-inset-gap))` : `${rail.size}px`) : undefined;\n\n // `full` writes no inline height: the stylesheet states it as 100vh with a\n // 100dvh override where supported, and an inline value would beat both.\n const heightStyle: React.CSSProperties = height === 'full' ? {} : height === 'auto' ? { height: 'auto' } : typeof height === 'number' ? { height: `${height}px` } : { height };\n\n return (\n <ShellStoreContext.Provider value={store}>\n <ShellSizeContext.Provider value={size}>\n <ShellInsetContext.Provider value={insetContext}>\n {/* The Root is not a widget: it hears Escape bubbling up from the panes,\n after their own handlers, to close the overlays. */}\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}\n <div\n {...props}\n ref={composedRef}\n className={classNames('kui-ShellRoot', className)}\n data-height={height === 'auto' ? 'auto' : undefined}\n data-has-inset={insetPanes.size > 0 || undefined}\n data-overlay-live={liveCount > 0 || undefined}\n onKeyDown={handleKeyDown}\n onFocus={handleFocus}\n style={{ ...heightStyle, ...(railOffset ? ({ '--shell-rail-offset': railOffset } as CSSPropertiesWithVars) : {}), ...style }}\n >\n {children}\n {/* Root-owned and always mounted. The stylesheet shows it while an\n overlay is live; containment takes the rest of the frame out of\n the accessibility tree, so the scrim itself is hidden from it. */}\n <div className=\"kui-ShellScrim\" aria-hidden onClick={closeOverlays} />\n </div>\n </ShellInsetContext.Provider>\n </ShellSizeContext.Provider>\n </ShellStoreContext.Provider>\n );\n});\nRoot.displayName = 'Shell.Root';\n\n/* \u2500\u2500 Header \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\ninterface ShellHeaderProps extends React.ComponentPropsWithoutRef<'header'> {\n height?: number;\n}\n\nconst Header = React.forwardRef<HTMLElement, ShellHeaderProps>(({ className, height = 64, style, ...props }, ref) => (\n <header\n {...props}\n ref={ref}\n className={classNames('kui-ShellHeader', className)}\n style={\n {\n ...style,\n '--shell-header-height': `${height}px`,\n } as CSSPropertiesWithVars\n }\n />\n));\nHeader.displayName = 'Shell.Header';\n\n/* \u2500\u2500 Left (deprecated) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\ninterface LeftProps extends React.ComponentPropsWithoutRef<'div'> {\n presentation?: ResponsivePresentation;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean, meta: { reason: 'init' | 'toggle' | 'panel' | 'responsive' | 'dismiss' }) => void;\n collapsible?: boolean;\n onExpand?: () => void;\n onCollapse?: () => void;\n inset?: boolean;\n}\n\n/**\n * @deprecated The Root no longer wraps the Rail and Panel in a Left\n * container: each is its own pane. `Shell.Left` renders its children and\n * ignores its own props. Removed in 1.0.\n */\nconst Left = React.forwardRef<HTMLDivElement, LeftProps>(({ children }, _ref) => {\n React.useEffect(() => {\n warnOnce('Shell.Left is deprecated and is removed in 1.0. Render Shell.Rail and Shell.Panel directly in Shell.Root.');\n }, []);\n return <>{children}</>;\n});\nLeft.displayName = 'Shell.Left';\n\n/* \u2500\u2500 Rail \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\ntype RailOpenChangeMeta = { reason: 'init' | 'toggle' | 'responsive' | 'panel' | 'dismiss' };\n\ntype RailControlledProps = { open: boolean | Partial<Record<Breakpoint, boolean>>; onOpenChange?: (open: boolean, meta: RailOpenChangeMeta) => void; defaultOpen?: never };\ntype RailUncontrolledProps = { defaultOpen?: boolean | Partial<Record<Breakpoint, boolean>>; onOpenChange?: (open: boolean, meta: RailOpenChangeMeta) => void; open?: never };\n\ntype RailProps = React.ComponentPropsWithoutRef<'div'> & {\n presentation?: ResponsivePresentation;\n expandedSize?: number;\n collapsible?: boolean;\n /** @deprecated Use `onOpenChange`. */\n onExpand?: () => void;\n /** @deprecated Use `onOpenChange`. */\n onCollapse?: () => void;\n /** When true, adds margin and triggers the gray backdrop on the Shell. */\n inset?: boolean;\n} & (RailControlledProps | RailUncontrolledProps);\n\nconst RAIL_PROP_NAMES = { controlled: 'open', default: 'defaultOpen' };\n\nconst Rail = React.forwardRef<HTMLDivElement, RailProps>((props, ref) => {\n const { className, presentation, expandedSize = 64, collapsible: _collapsible, onExpand, onCollapse, children, style, open, defaultOpen, onOpenChange, inset, id, ...domProps } = props;\n const { table, attributes } = usePresentationTable(presentation, 'fixed');\n const pane = usePane({\n name: 'rail',\n label: 'Rail',\n propNames: RAIL_PROP_NAMES,\n id,\n controlled: toPaneValue(open),\n defaultValue: toPaneValue(defaultOpen),\n presentationTable: table,\n builtIn: navigationRest,\n onChange: (value, reason) => onOpenChange?.(value !== 'closed', { reason }),\n onExpand,\n onCollapse,\n size: expandedSize,\n });\n useInsetRegistration('rail', inset);\n const composedRef = useComposedRefs(ref, pane.setElement);\n\n return (\n <div\n {...domProps}\n id={pane.id}\n ref={composedRef}\n className={classNames('kui-ShellPane', 'kui-ShellRail', className)}\n {...paneAttributes(pane, attributes)}\n data-inset={inset || undefined}\n tabIndex={pane.overlaying ? -1 : domProps.tabIndex}\n style={{ ...style, '--rail-size': `${expandedSize}px` } as CSSPropertiesWithVars}\n >\n <RailContent>{children}</RailContent>\n </div>\n );\n});\nRail.displayName = 'Shell.Rail';\n\n/** The Rail's content carries the index, so the thin row styles can size themselves by it. */\nfunction RailContent({ children }: { children: React.ReactNode }) {\n const size = React.useContext(ShellSizeContext);\n return (\n <div className={classNames('kui-ShellRailContent', `kui-r-size-${size}`)}>\n <PaneChromeScope presentation=\"thin\">{children}</PaneChromeScope>\n </div>\n );\n}\n\n/* \u2500\u2500 Panel \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\ntype HandleComponent = React.ForwardRefExoticComponent<React.ComponentPropsWithoutRef<'div'> & React.RefAttributes<HTMLDivElement>>;\n\ntype PanelOpenChangeMeta = { reason: 'toggle' | 'left' | 'init' | 'responsive' | 'dismiss' };\ntype PanelControlledProps = { open: boolean | Partial<Record<Breakpoint, boolean>>; onOpenChange?: (open: boolean, meta: PanelOpenChangeMeta) => void; defaultOpen?: never };\ntype PanelUncontrolledProps = { defaultOpen?: boolean | Partial<Record<Breakpoint, boolean>>; onOpenChange?: (open: boolean, meta: PanelOpenChangeMeta) => void; open?: never };\n\ntype PanelSizeControlledProps = { size: number | string; defaultSize?: never };\ntype PanelSizeUncontrolledProps = { defaultSize?: number | string; size?: never };\n\ntype PanelSizeChangeMeta = { reason: 'init' | 'resize' | 'controlled' };\ntype PanelPublicProps = PaneBaseProps &\n (PanelControlledProps | PanelUncontrolledProps) &\n (PanelSizeControlledProps | PanelSizeUncontrolledProps) & {\n onSizeChange?: (size: number, meta: PanelSizeChangeMeta) => 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 };\ntype PanelComponent = React.ForwardRefExoticComponent<PanelPublicProps & React.RefAttributes<HTMLDivElement>> & {\n Handle: HandleComponent;\n};\n\nconst PANEL_PROP_NAMES = { controlled: 'open', default: 'defaultOpen' };\n\n/**\n * A Panel with a `presentation` of its own uses it. One without follows the\n * Rail rendered before it, which is how 0.7 placed a Panel; the stylesheet\n * reads the Rail's attributes for the first paint and the registry carries\n * the Rail's table for the JS mirror.\n */\nconst Panel = React.forwardRef<HTMLDivElement, PanelPublicProps>((props, ref) => {\n const {\n className,\n presentation,\n defaultOpen,\n open,\n onOpenChange,\n size,\n defaultSize,\n expandedSize = 288,\n minSize = 100,\n maxSize = 800,\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 inset,\n id,\n ...domProps\n } = props;\n const store = useShellStore('Shell.Panel');\n const rail = usePaneEntry(store, 'rail');\n const own = usePresentationTable(presentation, 'fixed');\n const followsRail = presentation === undefined;\n const presentationTable = followsRail ? (rail?.presentationTable ?? FIXED_TABLE) : own.table;\n const presentationAttributes = followsRail ? { 'data-presentation-follows': '' } : own.attributes;\n\n const pane = usePane({\n name: 'panel',\n label: 'Panel',\n propNames: PANEL_PROP_NAMES,\n id,\n controlled: toPaneValue(open),\n defaultValue: toPaneValue(defaultOpen),\n presentationTable,\n builtIn: detailRest,\n onChange: (value, reason) => onOpenChange?.(value !== 'closed', { reason }),\n onExpand,\n onCollapse,\n size: expandedSize,\n });\n useInsetRegistration('panel', inset);\n\n React.useEffect(() => {\n if (snapPoints !== undefined || collapseThreshold !== undefined || paneId !== undefined || persistence !== undefined) {\n warnOnce('Shell.Panel: `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: 'panel',\n elementId: pane.id,\n elementRef,\n cssVarName: '--panel-size',\n orientation: 'vertical',\n edge: 'end',\n growth: startAnchoredGrowth,\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 // Asked when the effect runs: the Rail registers its table after this\n // Panel first renders, so the render's answer can be out of date.\n overlayingNow: () => {\n const table = followsRail ? (store.entries.get('rail')?.presentationTable ?? FIXED_TABLE) : own.table;\n return table[readBreakpoint()] === 'overlay';\n },\n requestCollapse: () => pane.setValue('closed', 'toggle'),\n requestToggle: () => pane.toggle('toggle'),\n });\n\n const { handles, content } = splitHandles(children, PanelHandle);\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-ShellPanel', className)}\n {...paneAttributes(pane, presentationAttributes)}\n data-inset={inset || undefined}\n tabIndex={pane.overlaying ? -1 : domProps.tabIndex}\n style={\n {\n ...style,\n '--panel-expanded-size': `${expandedSize}px`,\n } as CSSPropertiesWithVars\n }\n >\n <div className=\"kui-ShellPanelContent\">\n <PaneChromeScope>{content}</PaneChromeScope>\n </div>\n {handle}\n </div>\n );\n}) as PanelComponent;\nPanel.displayName = 'Shell.Panel';\nPanel.Handle = PanelHandle;\n\n/* \u2500\u2500 Content \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\ninterface ShellContentProps extends React.ComponentPropsWithoutRef<'main'> {\n /** When true, adds margin and triggers the gray backdrop on the Shell. */\n inset?: boolean;\n}\n\nconst Content = React.forwardRef<HTMLElement, ShellContentProps>(({ className, inset, ...props }, ref) => {\n useInsetRegistration('content', inset);\n return <main {...props} ref={ref} className={classNames('kui-ShellContent', className)} data-inset={inset || undefined} />;\n});\nContent.displayName = 'Shell.Content';\n\n/* \u2500\u2500 Trigger \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n\ntype TriggerAction = 'toggle' | 'expand' | 'collapse';\n\ninterface TriggerProps extends React.ComponentPropsWithoutRef<'button'> {\n target: PaneTarget;\n action?: TriggerAction;\n /**\n * Whether to show a preview of the target pane on hover while it is closed\n * and not an overlay. Defaults to false.\n *\n * @deprecated Removed in 1.0. A preview reachable only by mouse hover has no\n * keyboard or touch equivalent; open the pane instead.\n */\n peekOnHover?: boolean;\n}\n\n/**\n * A button that drives a pane by name, through the registry. It sets\n * `aria-controls` and `aria-expanded` (left off while an untouched pane\n * cannot know its state yet), renders `type=\"button\"`, and runs the\n * consumer's `onClick` first: calling `preventDefault()` there cancels it.\n */\nconst Trigger = React.forwardRef<HTMLButtonElement, TriggerProps>(({ target, action = 'toggle', peekOnHover, onClick, onMouseEnter, onMouseLeave, children, ...props }, ref) => {\n const store = useShellStore('Shell.Trigger');\n React.useEffect(() => {\n if (target === 'left') warnOnce('Shell.Trigger target=\"left\" is deprecated and is removed in 1.0. Use target=\"rail\".');\n if (peekOnHover) warnOnce('Shell.Trigger: `peekOnHover` is deprecated and is removed in 1.0.');\n }, [target, peekOnHover]);\n const name: PaneName = target === 'left' ? 'rail' : target;\n // Subscribes to its own pane only.\n const entry = usePaneEntry(store, name);\n const shown = entry?.value === undefined ? undefined : entry.value !== 'closed';\n\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(event);\n if (event.defaultPrevented) return;\n const current = store.entries.get(name);\n if (!current) return;\n if (store.peek === name) setShellPeek(store, null);\n if (action === 'toggle') current.toggle('toggle');\n else if (action === 'expand') current.setValue('open', 'toggle');\n else current.setValue('closed', 'toggle');\n };\n\n const handleMouseEnter = (event: React.MouseEvent<HTMLButtonElement>) => {\n onMouseEnter?.(event);\n if (!peekOnHover) return;\n const current = store.entries.get(name);\n if (current && current.value === 'closed' && current.presentation !== 'overlay') setShellPeek(store, name);\n };\n\n const handleMouseLeave = (event: React.MouseEvent<HTMLButtonElement>) => {\n onMouseLeave?.(event);\n if (peekOnHover && store.peek === name) setShellPeek(store, null);\n };\n\n return (\n <button\n // A button's default type is `submit`. Stated before the spread, so a consumer's own wins.\n type=\"button\"\n aria-controls={entry?.id}\n aria-expanded={shown}\n {...props}\n ref={ref}\n onClick={handleClick}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n data-shell-trigger={target}\n data-shell-action={action}\n >\n {children}\n </button>\n );\n});\nTrigger.displayName = 'Shell.Trigger';\n\n// Exports\nexport {\n Root,\n Header,\n Left,\n Rail,\n Panel,\n Sidebar,\n Content,\n Inspector,\n Bottom,\n Trigger,\n PaneHeader,\n PaneFooter,\n Scroll,\n useShell,\n useSidebarMode,\n useResponsivePresentation,\n type PaneMode,\n type SidebarMode,\n type ResponsivePresentation,\n type PaneTarget,\n type TriggerAction,\n};\n"],
5
- "mappings": "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",
6
- "names": ["shell_exports", "__export", "Bottom", "Content", "Header", "Inspector", "Left", "PaneFooter", "PaneHeader", "Panel", "Rail", "Root", "Scroll", "Sidebar", "Trigger", "useResponsivePresentation", "useShell", "useSidebarMode", "React", "classNames", "useComposedRefs", "pageLockHolders", "updatePageLock", "delta", "doc", "INERT_MARK", "RESCUE_FRAMES", "isNowhere", "el", "triggerFor", "id", "within", "pane", "shellSizePropDef", "Root", "className", "children", "height", "sizeProp", "style", "onKeyDown", "onFocus", "props", "ref", "size", "useThemeSize", "store", "createShellStore", "subscribe", "listener", "subscribeShellStore", "rootRef", "composedRef", "useComposedRefs", "insetPanes", "setInsetPanes", "registerInset", "prev", "unregisterInset", "next", "insetContext", "closeOverlays", "entry", "livePanes", "liveCount", "contained", "contain", "rootEl", "liveEls", "child", "holdsLive", "returnFocusTo", "lastLive", "lastFocusInRoot", "holdsLock", "rescueFrame", "cancelRescue", "rescueFocus", "target", "lost", "frames", "tick", "live", "wantsLock", "previous", "closed", "inClosed", "active", "inRoot", "before", "opened", "now", "observer", "handleKeyDown", "event", "onDocumentKeyDown", "handleFocus", "rail", "railOffset", "heightStyle", "ShellStoreContext", "ShellSizeContext", "ShellInsetContext", "classNames", "Header", "Left", "_ref", "RAIL_PROP_NAMES", "Rail", "presentation", "expandedSize", "_collapsible", "onExpand", "onCollapse", "open", "defaultOpen", "onOpenChange", "inset", "domProps", "table", "attributes", "usePresentationTable", "usePane", "toPaneValue", "navigationRest", "value", "reason", "useInsetRegistration", "paneAttributes", "RailContent", "PaneChromeScope", "PANEL_PROP_NAMES", "Panel", "defaultSize", "minSize", "maxSize", "resizable", "collapsible", "onResize", "onResizeStart", "onResizeEnd", "snapPoints", "snapTolerance", "collapseThreshold", "paneId", "persistence", "onSizeChange", "sizeUpdate", "sizeUpdateMs", "useShellStore", "usePaneEntry", "own", "followsRail", "presentationTable", "FIXED_TABLE", "presentationAttributes", "detailRest", "elementRef", "resize", "useResizablePane", "startAnchoredGrowth", "readBreakpoint", "handles", "content", "splitHandles", "PanelHandle", "handle", "PaneResizeContext", "PaneHandle", "withoutRemovedPaneProps", "Content", "Trigger", "action", "peekOnHover", "onClick", "onMouseEnter", "onMouseLeave", "name", "shown", "handleClick", "current", "setShellPeek", "handleMouseEnter", "handleMouseLeave"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a as e}from"./chunk-4P6TKZCA.js";import*as o from"react";import u from"classnames";import{Slot as f}from"radix-ui";var k=o.forwardRef((t,p)=>{let{asChild:r,children:s,className:c,...l}=t,m=r?f.Root:"blockquote";return o.createElement(e,{asChild:!0,...l,ref:p,className:u("kui-Blockquote",c)},o.createElement(m,null,s))});k.displayName="Blockquote";export{k as a};
2
- //# sourceMappingURL=chunk-FJFBM7HW.js.map
@@ -1,7 +0,0 @@
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 { Text } from './text.js';\n\nimport type { blockquotePropDefs } from './blockquote.props.js';\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 const { asChild, children, className, ...blockquoteProps } = props;\n const Comp = asChild ? Slot.Root : 'blockquote';\n return (\n <Text\n asChild\n {...blockquoteProps}\n ref={forwardedRef}\n className={classNames('kui-Blockquote', className)}\n >\n <Comp>{children}</Comp>\n </Text>\n );\n});\nBlockquote.displayName = 'Blockquote';\n\nexport { Blockquote };\nexport type { BlockquoteProps };\n"],
5
- "mappings": "wCAAA,UAAYA,MAAW,QACvB,OAAOC,MAAgB,aACvB,OAAS,QAAAC,MAAY,WAarB,IAAMC,EAAmB,aAA+C,CAACC,EAAOC,IAAiB,CAC/F,GAAM,CAAE,QAAAC,EAAS,SAAAC,EAAU,UAAAC,EAAW,GAAGC,CAAgB,EAAIL,EACvDM,EAAOJ,EAAUK,EAAK,KAAO,aACnC,OACE,gBAACC,EAAA,CACC,QAAO,GACN,GAAGH,EACJ,IAAKJ,EACL,UAAWQ,EAAW,iBAAkBL,CAAS,GAEjD,gBAACE,EAAA,KAAMH,CAAS,CAClB,CAEJ,CAAC,EACDJ,EAAW,YAAc",
6
- "names": ["React", "classNames", "Slot", "Blockquote", "props", "forwardedRef", "asChild", "children", "className", "blockquoteProps", "Comp", "Slot", "Text", "classNames"]
7
- }
@@ -1,2 +0,0 @@
1
- import{a as at}from"./chunk-L2R62BOB.js";import{a as Be}from"./chunk-AGAQC4HH.js";import{g as et,j as tt}from"./chunk-IX5HIHVI.js";import{a as De}from"./chunk-QGCXTULQ.js";import{a as we}from"./chunk-4P6TKZCA.js";import{a as Ze}from"./chunk-R4XJNQX5.js";import{a as ze}from"./chunk-UE3HATOA.js";import{a as Ie}from"./chunk-BJUCBOGU.js";import{b as U}from"./chunk-FWB47YCH.js";import{d as Qe}from"./chunk-3YLYGKFB.js";import{a as Ot}from"./chunk-OS3FCYZY.js";var Vt={};Ot(Vt,{AttachTrigger:()=>bt,Attachment:()=>$e,AttachmentsRow:()=>mt,InlineEnd:()=>dt,InlineStart:()=>ut,Item:()=>ft,Root:()=>ct,Row:()=>Rt,RowEnd:()=>gt,RowStart:()=>Ct,Send:()=>vt,Textarea:()=>lt});import*as e from"react";import S from"classnames";import{useComposedRefs as rt}from"radix-ui/internal";import{useDropzone as Ht}from"react-dropzone";var je=typeof window<"u"?e.useLayoutEffect:e.useEffect;function nt(t,r){let{placeholder:a}=t;if(!a){r();return}t.placeholder="";try{r()}finally{t.placeholder=a}}var Ft={values:["1","2","3"]},st=e.createContext(null),We=e.createContext(""),F=()=>{let t=e.useContext(st);if(!t)throw new Error("Chatbar context not found. Wrap parts in <Chatbar.Root>.");return t},me=t=>Array.isArray(t)?t:typeof t=="string"?t.split(",").map(r=>r.trim()).filter(Boolean):[],It=(t,r)=>{if(r.length===0)return!0;let a=t.type.toLowerCase(),i=t.name.toLowerCase();for(let c of r){let l=c.toLowerCase();if(l.includes("/")){let[u,d]=l.split("/"),[h,f]=a.split("/");if(u==="*"||u===h&&(d==="*"||d===f))return!0}else if(l.startsWith(".")&&i.endsWith(l))return!0}return!1},zt=/\.(png|jpe?g|gif|webp|bmp|svg|avif)$/i,it=(t,r)=>(r||"").toLowerCase().startsWith("image/")||zt.test(t),Ve=t=>t.trim().length>0,ot=(t,r)=>`${t} ${r}${t===1?"":"s"}`,Dt=0,Bt=()=>`chatbar-attachment-${Date.now()}-${++Dt}`,ct=e.forwardRef((t,r)=>{let{className:a,style:i,children:c,value:l,defaultValue:u="",onValueChange:d,open:h,defaultOpen:f=!1,onOpenChange:g,expandOn:v="both",minLines:C=3,maxLines:w=6,sendMode:I="whenDirty",disabled:b,readOnly:k,onSubmit:D,size:M,variant:z,color:O,radius:H,width:Q,maxWidth:R,attachments:G,defaultAttachments:B,onAttachmentsChange:se,accept:P,multiple:T=!0,maxAttachments:Z,maxFileSize:_,paste:j=!0,pasteAccept:q,clearOnSubmit:V=!0,onAttachmentReject:L,dropzone:N=!0,apiRef:ke,onBlurCapture:pe,notices:he,context:fe,...Se}=t,W=Qe(M,Ft),be=l!=null,[o,y]=e.useState(u),A=be?l:o,ee=h!=null,[X,te]=e.useState(f),ie=ee?h:X,Y="attachments"in t,[ce,Re]=e.useState(()=>B??[]),le=e.useMemo(()=>Y?G??[]:ce,[Y,G,ce]),[Ke,yt]=e.useState({text:"",id:0}),ue=e.useCallback(n=>yt(s=>({text:n,id:s.id+1})),[]),Ue=e.useRef(null),xt=rt(r,Ue),Ee=e.useRef(null),Te=e.useRef(null),de=e.useRef(!1),Ce=e.useRef(!1),ge=e.useRef(void 0),Le=e.useRef(null),Ge=me(P).join(","),Ne=me(q).join(","),Me=e.useMemo(()=>me(Ge),[Ge]),Pt=e.useMemo(()=>Ne?me(Ne):Me,[Ne,Me]),_e={value:A,attachments:le,accepts:Me,pasteAccepts:Pt,multiple:T,maxAttachments:Z,maxFileSize:_,disabled:b,readOnly:k,expandOn:v,isValueControlled:be,isOpenControlled:ee,isAttachmentsControlled:Y,onValueChange:d,onOpenChange:g,onAttachmentsChange:se,onAttachmentReject:L,onSubmit:D},x=e.useRef(_e);x.current=_e;let Oe=e.useRef(null),$=e.useCallback(()=>Oe.current??x.current.attachments,[]),ae=e.useCallback(n=>{x.current.isOpenControlled||te(n),x.current.onOpenChange?.(n)},[]),ve=e.useCallback(n=>{x.current.isValueControlled||y(n),x.current.onValueChange?.(n)},[]),ne=e.useCallback(n=>{Oe.current=n,queueMicrotask(()=>{Oe.current=null}),x.current.isAttachmentsControlled||Re(n),x.current.onAttachmentsChange?.(n)},[]),ye=e.useRef(new Set),oe=e.useCallback((n,s,m=x.current.multiple)=>{let p=x.current;if(p.disabled||p.readOnly||n.length===0)return 0;let K=$(),J=[],re=[],Nt=typeof p.maxAttachments=="number"?Math.max(p.maxAttachments-K.length,0):1/0,Mt=m?1/0:1;for(let E of n){if(J.length>=Nt||J.length>=Mt){re.push({file:E,reason:"count"});continue}if(typeof p.maxFileSize=="number"&&E.size>p.maxFileSize){re.push({file:E,reason:"size"});continue}if(!It(E,s)){re.push({file:E,reason:"type"});continue}let Fe=it(E.name,E.type)?URL.createObjectURL(E):void 0;Fe&&ye.current.add(Fe),J.push({id:Bt(),name:E.name,size:E.size,type:E.type,file:E,url:Fe,status:"idle"})}let Ae=[];return J.length>0&&(ne(K.concat(J)),p.expandOn!=="none"&&ae(!0),Ae.push(`${ot(J.length,"file")} attached.`)),re.length>0&&(p.onAttachmentReject?.(re),Ae.push(`${ot(re.length,"file")} could not be attached.`)),Ae.length>0&&ue(Ae.join(" ")),J.length},[$,ne,ae,ue]),xe=e.useCallback(n=>oe(n,x.current.accepts),[oe]),qe=e.useCallback(n=>oe(n,x.current.pasteAccepts),[oe]),Xe=e.useCallback(n=>{let s=$(),m=s.find(p=>p.id===n);m&&(ne(s.filter(p=>p.id!==n)),ue(`Removed ${m.name}.`))},[$,ne,ue]),Ye=e.useCallback(n=>{let s=x.current;if(s.disabled||s.readOnly)return!1;let m=$();if(!Ve(s.value)&&m.length===0)return!1;let p={value:s.value,attachments:m};if(n&&s.onSubmit)for(let K of m)K.url&&ye.current.delete(K.url);return s.onSubmit?.(p),n&&(ve(""),ne([])),!0},[$,ve,ne]);e.useEffect(()=>{let n=ye.current;if(n.size===0)return;let s=new Set(le.map(m=>m.url));for(let m of Array.from(n))s.has(m)||(URL.revokeObjectURL(m),n.delete(m))},[le]),e.useEffect(()=>{let n=ye.current;return()=>{if(!x.current.isAttachmentsControlled){for(let s of Array.from(n))URL.revokeObjectURL(s);n.clear()}}},[]);let Pe=e.useCallback(n=>{let s=x.current,m=Te.current;if(clearTimeout(ge.current),Ce.current=!1,!m||s.disabled||s.readOnly)return;let p=n?.accept!=null?me(n.accept):s.accepts,K=n?.multiple??s.multiple;Le.current={patterns:p,multiple:K},m.accept=p.join(","),m.multiple=K,de.current=!0,m.click(),setTimeout(()=>{document.hasFocus()&&(de.current=!1)},1e3)},[]),Je=e.useCallback(()=>{Ce.current=!0,clearTimeout(ge.current),ge.current=setTimeout(()=>{Ce.current=!1},800)},[]);e.useEffect(()=>()=>clearTimeout(ge.current),[]),e.useEffect(()=>{let n=Te.current,s=()=>{de.current=!1};return window.addEventListener("focus",s),n?.addEventListener("cancel",s),()=>{window.removeEventListener("focus",s),n?.removeEventListener("cancel",s)}},[]);let At=e.useCallback(n=>{let s=n.currentTarget,m=Array.from(s.files??[]),p=Le.current;oe(m,p?.patterns??x.current.accepts,p?.multiple),de.current=!1,Le.current=null,s.value=""},[oe]),wt=e.useCallback(n=>{pe?.(n);let s=x.current,m=Ue.current;if(!m||s.expandOn==="none")return;let p=n.relatedTarget;p&&m.contains(p)||de.current||Ce.current||!Ve(s.value)&&$().length===0&&ae(!1)},[pe,ae,$]),kt=e.useCallback(n=>{xe(n)},[xe]),{getRootProps:St,isDragActive:Et}=Ht({onDrop:kt,onDragEnter:()=>ue(""),noClick:!0,noKeyboard:!0,noPaste:!0,disabled:!N||b||k}),He=N&&Et;e.useImperativeHandle(ke,()=>({focusTextarea:()=>Ee.current?.focus({preventScroll:!0}),openFilePicker:()=>Pe()}),[Pe]);let Tt=e.useCallback(n=>{if(b||n.pointerType==="mouse"&&n.button!==0)return;let s=n.target;s instanceof Element&&s.closest('button, [role="button"], a[href], input, textarea, select, [contenteditable], [tabindex]:not([tabindex="-1"])')||(n.preventDefault(),Ee.current?.focus({preventScroll:!0}))},[b]),Lt=e.useMemo(()=>({open:ie,setOpen:ae,setValue:ve,size:W,expandOn:v,minLines:C,maxLines:w,sendMode:I,disabled:b,readOnly:k,paste:j,clearOnSubmit:V,multiple:T,textareaRef:Ee,attachments:le,removeAttachment:Xe,submit:Ye,appendFiles:xe,appendFilesFromPaste:qe,openFilePicker:Pe,beginFilePickerPress:Je}),[ie,ae,ve,W,v,C,w,I,b,k,j,V,T,le,Xe,Ye,xe,qe,Pe,Je]);return e.createElement(st.Provider,{value:Lt},e.createElement(We.Provider,{value:A},e.createElement(e.Fragment,null,e.createElement("div",{...Se,ref:xt,className:S("kui-ChatbarRoot",`kui-r-size-${W}`,a),style:{position:"relative",width:Q,maxWidth:R,...i},"data-state":ie?"open":"closed","data-disabled":b?"":void 0,"data-readonly":k?"":void 0,"data-drop-active":He?"":void 0,"data-accent-color":O,"data-radius":H,onBlurCapture:wt},e.createElement("input",{ref:Te,type:"file",tabIndex:-1,"aria-hidden":!0,style:{display:"none"},onChange:At}),he?e.createElement("div",{className:"kui-ChatbarNotices"},e.createElement(at.Provider,{value:W},he)):null,e.createElement("div",{...N?St():{},style:{width:"100%",flex:"1 1 auto",minHeight:0},onPointerDown:Tt},e.createElement("div",{className:S("kui-ChatbarBox",`kui-variant-${z??"raised"}`),style:{position:"relative"},"data-accent-color":O,"data-radius":H},e.createElement("div",{className:"kui-ChatbarGrid"},c),He&&e.createElement("div",{className:"kui-ChatbarDropOverlay","aria-hidden":!0},e.createElement("div",{className:"kui-ChatbarDropContent"},e.createElement(we,{emphasis:"medium",size:W,weight:"medium"},"Drop files here to attach"))))),fe?e.createElement(we,{as:"div",size:W==="3"?"2":"1",emphasis:"medium",className:"kui-ChatbarContext"},fe):null,e.createElement(Be,{role:"status","aria-live":"polite"},He?"Drop files here to attach.":e.createElement("span",{key:Ke.id},Ke.text))))))});ct.displayName="Chatbar.Root";var lt=e.forwardRef((t,r)=>{let{className:a,style:i,asChild:c,onFocus:l,onChange:u,onPaste:d,onKeyDown:h,onCompositionStart:f,onCompositionEnd:g,submitOnEnter:v=!1,...C}=t,w=F(),I=e.useContext(We),{open:b,minLines:k,maxLines:D,expandOn:M,disabled:z,readOnly:O,setOpen:H,setValue:Q,textareaRef:R,paste:G,appendFilesFromPaste:B,size:se,submit:P,clearOnSubmit:T}=w,Z=rt(r,R),_=e.useRef(0),j=e.useRef(0),q=e.useRef(!1),V=e.useRef({open:b,minLines:k,maxLines:D});je(()=>{V.current={open:b,minLines:k,maxLines:D}},[b,k,D]);let L=e.useCallback(()=>{let o=R.current;if(!o)return;let y=window.getComputedStyle(o);_.current=parseFloat(y.lineHeight)||20,j.current=(parseFloat(y.paddingTop)||0)+(parseFloat(y.paddingBottom)||0)},[R]),N=e.useCallback((o,y)=>{let{minLines:A,maxLines:ee}=V.current,X=_.current,te=j.current,ie=Math.ceil((y?A:1)*X)+te,Y=Math.ceil((y?ee:1)*X)+te,ce=Math.max(o.scrollHeight,ie);o.style.height=`${Math.min(ce,Y)}px`;let Re=ce>Y;o.style.overflowY=Re?"auto":"hidden",o.style.maxHeight=Re?`${Y}px`:"none"},[]);je(()=>{L()},[L,se]),je(()=>{let o=R.current;o&&(_.current===0&&L(),nt(o,()=>{o.style.height="auto";let y=b;if(!b&&(M==="overflow"||M==="both")){let A=Math.ceil(_.current)+j.current;o.scrollHeight>A+1&&(y=!0,H(!0))}N(o,y)}))},[I,b,M,k,D,se,H,R,L,N]),e.useEffect(()=>{let o=R.current;if(!o||typeof ResizeObserver>"u")return;let y=-1,A=new ResizeObserver(ee=>{let X=ee[0]?.contentRect.width??0;if(X===y)return;let te=y===-1;y=X,!te&&(L(),nt(o,()=>{o.style.height="auto",N(o,V.current.open)}))});return A.observe(o),()=>A.disconnect()},[R,L,N]),e.useEffect(()=>{},[]);let ke=e.useCallback(o=>{l?.(o),!(z||O)&&(M==="focus"||M==="both")&&!b&&H(!0)},[z,O,M,b,H,l]),pe=e.useCallback(o=>{Q(o.currentTarget.value),u?.(o)},[Q,u]),he=e.useCallback(o=>{if(d?.(o),o.defaultPrevented||!G||z||O)return;let y=Array.from(o.clipboardData?.items??[]).filter(A=>A.kind==="file").map(A=>A.getAsFile()).filter(A=>!!A);y.length!==0&&B(y)>0&&o.preventDefault()},[G,z,O,d,B]),fe=e.useCallback(o=>{q.current=!0,f?.(o)},[f]),Se=e.useCallback(o=>{q.current=!1,g?.(o)},[g]),W=e.useCallback(o=>{h?.(o),!(o.defaultPrevented||!v)&&(o.key!=="Enter"||o.shiftKey||o.altKey||o.ctrlKey||o.metaKey||q.current||o.nativeEvent.isComposing||o.nativeEvent.keyCode===229||(o.preventDefault(),P(T)))},[v,h,P,T]),be=c?U:"textarea";return e.createElement("div",{className:S("kui-ChatbarField","kui-ChatbarTextarea",a)},e.createElement(be,{...C,ref:Z,className:"kui-ChatbarInput",value:I,onChange:pe,onFocus:ke,onPaste:he,onKeyDown:W,onCompositionStart:fe,onCompositionEnd:Se,disabled:z,readOnly:O,rows:b?k:1,spellCheck:C.spellCheck??!0,autoCorrect:C.autoCorrect??"on",style:i}))});lt.displayName="Chatbar.Textarea";var ut=e.forwardRef((t,r)=>{let{children:a,asChild:i,className:c,...l}=t;return F().open?null:e.createElement(i?U:"div",{...l,ref:r,className:S("kui-ChatbarInlineStart",c)},a)});ut.displayName="Chatbar.InlineStart";var dt=e.forwardRef((t,r)=>{let{children:a,asChild:i,className:c,...l}=t;return F().open?null:e.createElement(i?U:"div",{...l,ref:r,className:S("kui-ChatbarInlineEnd",c)},a)});dt.displayName="Chatbar.InlineEnd";var mt=e.forwardRef((t,r)=>{let{asChild:a,forceMount:i,renderAttachment:c,className:l,children:u,...d}=t,h=F(),f=e.Children.toArray(u).length>0;return h.attachments.length===0&&!f&&!i?null:e.createElement("div",null,e.createElement(a?U:"div",{...d,ref:r,className:S("kui-ChatbarAttachmentsRow",l),role:"list","aria-label":d["aria-label"]??"Attachments"},e.createElement(Ze,{className:"kui-ChatbarScrollArea",scrollbars:"horizontal"},e.createElement(Ie,{align:"center",gap:"3",minWidth:"fit-content"},h.attachments.map(v=>e.createElement($e,{key:v.id,attachment:v,asChild:!!c},c?.(v))),u))))});mt.displayName="Chatbar.AttachmentsRow";function pt(t,r){let a=t.closest('[role="listitem"]'),i=a?.parentElement?Array.from(a.parentElement.children):[],c=a?i.indexOf(a):-1,u=(i[c+1]??i[c-1])?.querySelector(".kui-ChatbarItemRemove");u?u.focus():r.current?.focus({preventScroll:!0})}var ht=({lead:t,leadKind:r,label:a,detail:i,removeLabel:c,onRemove:l})=>{let u=F();return e.createElement(e.Fragment,null,e.createElement("span",{className:"kui-ChatbarItemLead","data-kind":r,"aria-hidden":!0},t),e.createElement(we,{className:"kui-ChatbarItemLabel",size:u.size,truncate:!0},a,i?e.createElement(Be,null,", ",i):null),l&&e.createElement(De,{iconOnly:!0,className:"kui-ChatbarItemRemove","aria-label":c,size:"1",variant:"ghost",color:"gray",onClick:l},e.createElement(et,null)))},jt={uploading:"uploading",error:"failed to upload"},$e=e.forwardRef((t,r)=>{let{attachment:a,asChild:i,className:c,children:l,...u}=t,d=F(),h=i?U:"div",f=!!a.url&&it(a.name,a.type),g=`${Math.ceil(a.size/1024)} KB`,v=a.status?jt[a.status]:void 0,C=d.disabled||d.readOnly,w=b=>{pt(b.currentTarget,d.textareaRef),d.removeAttachment(a.id)},I=a.status==="uploading"?e.createElement(ze,null):f?e.createElement("img",{className:"kui-ChatbarAttachmentImage",src:a.url,alt:""}):e.createElement(tt,null);return e.createElement(h,{...u,ref:r,className:S(l?"kui-ChatbarAttachment":"kui-ChatbarAttachment kui-ChatbarItem",c),role:"listitem","data-kind":f?"image":"file","data-status":a.status,title:a.name},l??e.createElement(ht,{lead:I,leadKind:f&&a.status!=="uploading"?"image":"icon",label:a.name,detail:v?`${g}, ${v}`:g,removeLabel:`Remove ${a.name}`,onRemove:C?void 0:w}))});$e.displayName="Chatbar.Attachment";var ft=e.forwardRef((t,r)=>{let{children:a,icon:i,image:c,color:l,onRemove:u,removeLabel:d,className:h,...f}=t,g=F(),v=g.disabled||g.readOnly,C=u?w=>{pt(w.currentTarget,g.textareaRef),u()}:void 0;return e.createElement("div",{...f,ref:r,className:S("kui-ChatbarItem",h),role:"listitem","data-accent-color":c?void 0:l??"gray",title:a},e.createElement(ht,{lead:c?e.createElement("img",{className:"kui-ChatbarAttachmentImage",src:c,alt:""}):i,leadKind:c?"image":"icon",label:a,removeLabel:d??`Remove ${a}`,onRemove:v?void 0:C}))});ft.displayName="Chatbar.Item";var bt=e.forwardRef((t,r)=>{let{asChild:a,accept:i,multiple:c,disabled:l,onPointerDown:u,onClick:d,...h}=t,f=F(),g=l||f.disabled||f.readOnly;return e.createElement(a?U:"button",{...h,ref:r,className:S("kui-ChatbarAttachTrigger",h.className),type:h.type??"button","aria-label":h["aria-label"]??"Add attachments",disabled:g,onPointerDown:C=>{u?.(C),!g&&!C.defaultPrevented&&f.beginFilePickerPress()},onClick:C=>{d?.(C),!(g||C.defaultPrevented)&&f.openFilePicker({accept:i,multiple:c})}})});bt.displayName="Chatbar.AttachTrigger";var Rt=e.forwardRef((t,r)=>{let{asChild:a,children:i,className:c,...l}=t;return F().open?e.createElement("div",null,e.createElement(a?U:"div",{...l,ref:r,className:S("kui-ChatbarRow",c)},e.createElement(Ie,{align:"center",justify:"between",width:"100%"},i))):null});Rt.displayName="Chatbar.Row";var Ct=e.forwardRef((t,r)=>{let{className:a,...i}=t;return e.createElement("div",{...i,ref:r,className:S("kui-ChatbarRowStart",a)})});Ct.displayName="Chatbar.RowStart";var gt=e.forwardRef((t,r)=>{let{className:a,...i}=t;return e.createElement("div",{...i,ref:r,className:S("kui-ChatbarRowEnd",a)})});gt.displayName="Chatbar.RowEnd";var vt=e.forwardRef((t,r)=>{let{asChild:a,clearOnSend:i,disabled:c,children:l,style:u,className:d,size:h,variant:f,emphasis:g,tabIndex:v,onClick:C,status:w="ready",onStop:I,onRetry:b,stopLabel:k="Stop",retryLabel:D="Retry",stopIcon:M,retryIcon:z,"aria-label":O,"aria-labelledby":H,...Q}=t,R=F(),G=e.useContext(We),B=Ve(G)||R.attachments.length>0,P=B?"send":w==="submitted"||w==="streaming"?"stop":w==="error"?"retry":"send";if(R.sendMode==="never"&&P==="send")return null;let T=P!=="send"||R.sendMode==="always"||B,Z=P==="send"?c||R.disabled||R.readOnly||!B:c||R.disabled,j=P==="stop"?{"aria-label":k}:P==="retry"?{"aria-label":D}:H?{"aria-labelledby":H}:{"aria-label":O??"Send"},q=L=>{if(C?.(L),L.defaultPrevented||Z)return;if(P==="stop"){I?.();return}if(P==="retry"){b?.();return}let N=i??R.clearOnSubmit;R.submit(N)&&N&&R.textareaRef.current?.focus({preventScroll:!0})},V=P==="stop"?M??(w==="submitted"?e.createElement(ze,null):e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0},e.createElement("rect",{x:"7",y:"7",width:"10",height:"10",rx:"2"}))):P==="retry"?z??e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0},e.createElement("path",{d:"M3 12a9 9 0 1 0 3-6.7L3 8"}),e.createElement("path",{d:"M3 3v5h5"})):l??e.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0},e.createElement("path",{d:"M5 12h14"}),e.createElement("path",{d:"m12 5 7 7-7 7"}));return e.createElement(De,{iconOnly:!0,...Q,ref:r,size:h??R.size,...g?{emphasis:g}:{variant:f??(R.open||P!=="send"?"solid":"ghost")},disabled:Z,className:S("kui-ChatbarSend",d),style:{opacity:T?1:0,pointerEvents:T?void 0:"none",...u},"aria-hidden":T?void 0:!0,tabIndex:T?v:-1,asChild:a,onClick:q,"data-status":w,"data-mode":P,...j},V)});vt.displayName="Chatbar.Send";export{ct as a,lt as b,ut as c,dt as d,mt as e,$e as f,ft as g,bt as h,Rt as i,Ct as j,gt as k,vt as l,Vt as m};
2
- //# sourceMappingURL=chunk-FYT7TYGS.js.map