@womp/kookie-ui 0.26.1 → 0.26.3

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 (707) hide show
  1. package/components.css +50 -2
  2. package/dist/cjs/components/_internal/base-button.d.ts.map +1 -1
  3. package/dist/cjs/components/_internal/base-button.js +1 -1
  4. package/dist/cjs/components/_internal/base-button.js.map +3 -3
  5. package/dist/cjs/components/_internal/base-button.props.js +0 -1
  6. package/dist/cjs/components/_internal/base-button.props.js.map +1 -1
  7. package/dist/cjs/components/_internal/base-checkbox.props.js +0 -1
  8. package/dist/cjs/components/_internal/base-checkbox.props.js.map +1 -1
  9. package/dist/cjs/components/_internal/base-menu.props.js +0 -1
  10. package/dist/cjs/components/_internal/base-menu.props.js.map +1 -1
  11. package/dist/cjs/components/_internal/base-radio.props.js +0 -1
  12. package/dist/cjs/components/_internal/base-radio.props.js.map +1 -1
  13. package/dist/cjs/components/_internal/base-tab-list.props.js +0 -1
  14. package/dist/cjs/components/_internal/base-tab-list.props.js.map +1 -1
  15. package/dist/cjs/components/_internal/pane-band-context.d.ts +15 -0
  16. package/dist/cjs/components/_internal/pane-band-context.d.ts.map +1 -0
  17. package/dist/cjs/components/_internal/pane-band-context.js +3 -0
  18. package/dist/cjs/components/_internal/pane-band-context.js.map +7 -0
  19. package/dist/cjs/components/_internal/pane-chrome.d.ts +1 -1
  20. package/dist/cjs/components/_internal/pane-chrome.d.ts.map +1 -1
  21. package/dist/cjs/components/_internal/pane-chrome.js +1 -1
  22. package/dist/cjs/components/_internal/pane-chrome.js.map +4 -4
  23. package/dist/cjs/components/_internal/portal-theme.d.ts +9 -0
  24. package/dist/cjs/components/_internal/portal-theme.d.ts.map +1 -0
  25. package/dist/cjs/components/_internal/portal-theme.js +3 -0
  26. package/dist/cjs/components/_internal/portal-theme.js.map +7 -0
  27. package/dist/cjs/components/_internal/shell-bottom.d.ts.map +1 -1
  28. package/dist/cjs/components/_internal/shell-bottom.js +1 -1
  29. package/dist/cjs/components/_internal/shell-bottom.js.map +3 -3
  30. package/dist/cjs/components/_internal/shell-sidebar.js +1 -1
  31. package/dist/cjs/components/_internal/shell-sidebar.js.map +4 -4
  32. package/dist/cjs/components/accordion.props.js +0 -1
  33. package/dist/cjs/components/accordion.props.js.map +1 -1
  34. package/dist/cjs/components/alert-dialog.js +1 -1
  35. package/dist/cjs/components/alert-dialog.js.map +4 -4
  36. package/dist/cjs/components/alert-dialog.props.js +0 -1
  37. package/dist/cjs/components/alert-dialog.props.js.map +1 -1
  38. package/dist/cjs/components/avatar.props.js +0 -1
  39. package/dist/cjs/components/avatar.props.js.map +1 -1
  40. package/dist/cjs/components/blockquote.props.js +0 -1
  41. package/dist/cjs/components/blockquote.props.js.map +1 -1
  42. package/dist/cjs/components/box.props.js +0 -1
  43. package/dist/cjs/components/box.props.js.map +1 -1
  44. package/dist/cjs/components/button.js +1 -1
  45. package/dist/cjs/components/button.js.map +4 -4
  46. package/dist/cjs/components/button.props.js +0 -1
  47. package/dist/cjs/components/button.props.js.map +1 -1
  48. package/dist/cjs/components/card.props.js +0 -1
  49. package/dist/cjs/components/card.props.js.map +1 -1
  50. package/dist/cjs/components/chatbar.js +1 -1
  51. package/dist/cjs/components/chatbar.js.map +4 -4
  52. package/dist/cjs/components/checkbox-group.props.js +0 -1
  53. package/dist/cjs/components/checkbox-group.props.js.map +1 -1
  54. package/dist/cjs/components/checkbox.props.js +0 -1
  55. package/dist/cjs/components/checkbox.props.js.map +1 -1
  56. package/dist/cjs/components/chip.js +1 -1
  57. package/dist/cjs/components/chip.js.map +4 -4
  58. package/dist/cjs/components/chip.props.js +0 -1
  59. package/dist/cjs/components/chip.props.js.map +1 -1
  60. package/dist/cjs/components/code.props.js +0 -1
  61. package/dist/cjs/components/code.props.js.map +1 -1
  62. package/dist/cjs/components/combobox.d.ts.map +1 -1
  63. package/dist/cjs/components/combobox.js +1 -1
  64. package/dist/cjs/components/combobox.js.map +4 -4
  65. package/dist/cjs/components/combobox.props.js +0 -1
  66. package/dist/cjs/components/combobox.props.js.map +1 -1
  67. package/dist/cjs/components/context-menu.d.ts.map +1 -1
  68. package/dist/cjs/components/context-menu.js +1 -1
  69. package/dist/cjs/components/context-menu.js.map +4 -4
  70. package/dist/cjs/components/context-menu.props.js +0 -1
  71. package/dist/cjs/components/context-menu.props.js.map +1 -1
  72. package/dist/cjs/components/dialog.js +1 -1
  73. package/dist/cjs/components/dialog.js.map +4 -4
  74. package/dist/cjs/components/dialog.props.js +0 -1
  75. package/dist/cjs/components/dialog.props.js.map +1 -1
  76. package/dist/cjs/components/dropdown-menu.d.ts.map +1 -1
  77. package/dist/cjs/components/dropdown-menu.js +1 -1
  78. package/dist/cjs/components/dropdown-menu.js.map +4 -4
  79. package/dist/cjs/components/dropdown-menu.props.js +0 -1
  80. package/dist/cjs/components/dropdown-menu.props.js.map +1 -1
  81. package/dist/cjs/components/flex.props.js +0 -1
  82. package/dist/cjs/components/flex.props.js.map +1 -1
  83. package/dist/cjs/components/grid.props.js +0 -1
  84. package/dist/cjs/components/grid.props.js.map +1 -1
  85. package/dist/cjs/components/heading.props.js +0 -1
  86. package/dist/cjs/components/heading.props.js.map +1 -1
  87. package/dist/cjs/components/image.props.js +0 -1
  88. package/dist/cjs/components/image.props.js.map +1 -1
  89. package/dist/cjs/components/index.js +2 -2
  90. package/dist/cjs/components/index.js.map +4 -4
  91. package/dist/cjs/components/kbd.props.js +0 -1
  92. package/dist/cjs/components/kbd.props.js.map +1 -1
  93. package/dist/cjs/components/link.props.js +0 -1
  94. package/dist/cjs/components/link.props.js.map +1 -1
  95. package/dist/cjs/components/message-scroller.js +1 -1
  96. package/dist/cjs/components/message-scroller.js.map +4 -4
  97. package/dist/cjs/components/navbar.props.js +0 -1
  98. package/dist/cjs/components/navbar.props.js.map +1 -1
  99. package/dist/cjs/components/notice.js +1 -1
  100. package/dist/cjs/components/notice.js.map +4 -4
  101. package/dist/cjs/components/popover.d.ts.map +1 -1
  102. package/dist/cjs/components/popover.js +1 -1
  103. package/dist/cjs/components/popover.js.map +4 -4
  104. package/dist/cjs/components/popover.props.js +0 -1
  105. package/dist/cjs/components/popover.props.js.map +1 -1
  106. package/dist/cjs/components/progress.props.js +0 -1
  107. package/dist/cjs/components/progress.props.js.map +1 -1
  108. package/dist/cjs/components/radio-group.props.js +0 -1
  109. package/dist/cjs/components/radio-group.props.js.map +1 -1
  110. package/dist/cjs/components/radio.props.js +0 -1
  111. package/dist/cjs/components/radio.props.js.map +1 -1
  112. package/dist/cjs/components/scroll-area.d.ts.map +1 -1
  113. package/dist/cjs/components/scroll-area.js +1 -1
  114. package/dist/cjs/components/scroll-area.js.map +3 -3
  115. package/dist/cjs/components/scroll-area.props.js +0 -1
  116. package/dist/cjs/components/scroll-area.props.js.map +1 -1
  117. package/dist/cjs/components/segmented-control.props.js +0 -1
  118. package/dist/cjs/components/segmented-control.props.js.map +1 -1
  119. package/dist/cjs/components/select.d.ts.map +1 -1
  120. package/dist/cjs/components/select.js +1 -1
  121. package/dist/cjs/components/select.js.map +4 -4
  122. package/dist/cjs/components/select.props.js +0 -1
  123. package/dist/cjs/components/select.props.js.map +1 -1
  124. package/dist/cjs/components/separator.props.js +0 -1
  125. package/dist/cjs/components/separator.props.js.map +1 -1
  126. package/dist/cjs/components/sheet.js +1 -1
  127. package/dist/cjs/components/sheet.js.map +4 -4
  128. package/dist/cjs/components/shell.d.ts.map +1 -1
  129. package/dist/cjs/components/shell.js +1 -1
  130. package/dist/cjs/components/shell.js.map +4 -4
  131. package/dist/cjs/components/sidebar.js +1 -1
  132. package/dist/cjs/components/sidebar.js.map +4 -4
  133. package/dist/cjs/components/slider.d.ts.map +1 -1
  134. package/dist/cjs/components/slider.js +1 -1
  135. package/dist/cjs/components/slider.js.map +3 -3
  136. package/dist/cjs/components/slider.props.js +0 -1
  137. package/dist/cjs/components/slider.props.js.map +1 -1
  138. package/dist/cjs/components/spinner.d.ts.map +1 -1
  139. package/dist/cjs/components/spinner.js +1 -1
  140. package/dist/cjs/components/spinner.js.map +2 -2
  141. package/dist/cjs/components/spinner.props.js +0 -1
  142. package/dist/cjs/components/spinner.props.js.map +1 -1
  143. package/dist/cjs/components/switch.props.js +0 -1
  144. package/dist/cjs/components/switch.props.js.map +1 -1
  145. package/dist/cjs/components/table.js +1 -1
  146. package/dist/cjs/components/table.js.map +3 -3
  147. package/dist/cjs/components/table.props.js +0 -1
  148. package/dist/cjs/components/table.props.js.map +1 -1
  149. package/dist/cjs/components/tabs.props.js +0 -1
  150. package/dist/cjs/components/tabs.props.js.map +1 -1
  151. package/dist/cjs/components/text-area.d.ts.map +1 -1
  152. package/dist/cjs/components/text-area.js +1 -1
  153. package/dist/cjs/components/text-area.js.map +3 -3
  154. package/dist/cjs/components/text-area.props.js +0 -1
  155. package/dist/cjs/components/text-area.props.js.map +1 -1
  156. package/dist/cjs/components/text-field.d.ts.map +1 -1
  157. package/dist/cjs/components/text-field.js +2 -2
  158. package/dist/cjs/components/text-field.js.map +3 -3
  159. package/dist/cjs/components/text-field.props.js +0 -1
  160. package/dist/cjs/components/text-field.props.js.map +1 -1
  161. package/dist/cjs/components/text.props.js +0 -1
  162. package/dist/cjs/components/text.props.js.map +1 -1
  163. package/dist/cjs/components/theme.props.js +0 -1
  164. package/dist/cjs/components/theme.props.js.map +1 -1
  165. package/dist/cjs/components/toggle.js +1 -1
  166. package/dist/cjs/components/toggle.js.map +4 -4
  167. package/dist/cjs/components/toolbar.js +1 -1
  168. package/dist/cjs/components/toolbar.js.map +4 -4
  169. package/dist/cjs/components/toolbar.props.d.ts +3 -2
  170. package/dist/cjs/components/toolbar.props.d.ts.map +1 -1
  171. package/dist/cjs/components/toolbar.props.js +0 -1
  172. package/dist/cjs/components/toolbar.props.js.map +2 -2
  173. package/dist/cjs/components/tooltip.js +1 -1
  174. package/dist/cjs/components/tooltip.js.map +4 -4
  175. package/dist/cjs/components/tooltip.props.js +0 -1
  176. package/dist/cjs/components/tooltip.props.js.map +1 -1
  177. package/dist/cjs/hooks/use-scroll-edges.d.ts +9 -0
  178. package/dist/cjs/hooks/use-scroll-edges.d.ts.map +1 -1
  179. package/dist/cjs/hooks/use-scroll-edges.js +1 -1
  180. package/dist/cjs/hooks/use-scroll-edges.js.map +3 -3
  181. package/dist/cjs/index.js +5 -5
  182. package/dist/cjs/index.js.map +4 -4
  183. package/dist/cjs/props/index.js +1 -1
  184. package/dist/cjs/props/index.js.map +4 -4
  185. package/dist/esm/chunk-27XQ5PN5.js +3 -0
  186. package/dist/esm/chunk-27XQ5PN5.js.map +7 -0
  187. package/dist/esm/chunk-2ACVWLFA.js +3 -0
  188. package/dist/esm/chunk-2NWHEGKZ.js +3 -0
  189. package/dist/esm/chunk-2NWHEGKZ.js.map +7 -0
  190. package/dist/esm/{chunk-W4MQ6TEK.js → chunk-2R7WQPXX.js} +2 -2
  191. package/dist/esm/chunk-2R7WQPXX.js.map +7 -0
  192. package/dist/esm/{chunk-I3SRUPUP.js → chunk-2ZLMWYJ6.js} +2 -3
  193. package/dist/esm/{chunk-I3SRUPUP.js.map → chunk-2ZLMWYJ6.js.map} +1 -1
  194. package/dist/esm/chunk-324VC67W.js +3 -0
  195. package/dist/esm/chunk-324VC67W.js.map +7 -0
  196. package/dist/esm/chunk-3UIODOPE.js +3 -0
  197. package/dist/esm/chunk-3UIODOPE.js.map +7 -0
  198. package/dist/esm/chunk-3W34KH33.js +2 -0
  199. package/dist/esm/{chunk-4S5L25RO.js.map → chunk-3W34KH33.js.map} +1 -1
  200. package/dist/esm/chunk-4CIQRUYW.js +6 -0
  201. package/dist/esm/chunk-4CIQRUYW.js.map +7 -0
  202. package/dist/esm/chunk-4E5XBM5Q.js +2 -0
  203. package/dist/esm/{chunk-IE5ACUZS.js.map → chunk-4E5XBM5Q.js.map} +1 -1
  204. package/dist/esm/{chunk-QH64BDXO.js → chunk-4G3FJUER.js} +2 -2
  205. package/dist/esm/{chunk-R7THBMND.js → chunk-4KIZRO52.js} +1 -1
  206. package/dist/esm/chunk-4MNRLB57.js +3 -0
  207. package/dist/esm/chunk-4MNRLB57.js.map +7 -0
  208. package/dist/esm/chunk-5KJIPH2N.js +3 -0
  209. package/dist/esm/chunk-5KJIPH2N.js.map +7 -0
  210. package/dist/esm/chunk-5XA2N2WR.js +2 -0
  211. package/dist/esm/{chunk-R7THBMND.js.map → chunk-5XA2N2WR.js.map} +1 -1
  212. package/dist/esm/{chunk-7B3XDZXZ.js → chunk-6C6EK2B5.js} +2 -2
  213. package/dist/esm/chunk-6DWDNKLS.js +1 -0
  214. package/dist/esm/chunk-6JGF6PQH.js +3 -0
  215. package/dist/esm/{chunk-JS23YQ4M.js.map → chunk-6JGF6PQH.js.map} +4 -4
  216. package/dist/esm/{chunk-CYTPMHSJ.js → chunk-7QBNXNEN.js} +2 -2
  217. package/dist/esm/{chunk-YOSCUA6Z.js → chunk-ACMANOVD.js} +2 -2
  218. package/dist/esm/{chunk-I6SMGWS5.js → chunk-AJWCSQIE.js} +2 -3
  219. package/dist/esm/chunk-AJWCSQIE.js.map +7 -0
  220. package/dist/esm/chunk-AKXBXLCP.js +2 -0
  221. package/dist/esm/chunk-AKXBXLCP.js.map +7 -0
  222. package/dist/esm/chunk-ANQLWGFN.js +3 -0
  223. package/dist/esm/chunk-ANQLWGFN.js.map +7 -0
  224. package/dist/esm/chunk-BF4WRYUX.js +2 -0
  225. package/dist/esm/{chunk-M3NI3D6R.js.map → chunk-BF4WRYUX.js.map} +1 -1
  226. package/dist/esm/{chunk-5WTSKXAE.js → chunk-BIITGC3Z.js} +2 -3
  227. package/dist/esm/{chunk-5WTSKXAE.js.map → chunk-BIITGC3Z.js.map} +1 -1
  228. package/dist/esm/{chunk-NBVCQQSY.js → chunk-BP64M73W.js} +2 -3
  229. package/dist/esm/{chunk-NBVCQQSY.js.map → chunk-BP64M73W.js.map} +1 -1
  230. package/dist/esm/chunk-BQC2P3SN.js +3 -0
  231. package/dist/esm/chunk-BQC2P3SN.js.map +7 -0
  232. package/dist/esm/chunk-BUXK5VGR.js +3 -0
  233. package/dist/esm/chunk-BUXK5VGR.js.map +7 -0
  234. package/dist/esm/chunk-C67MM24U.js +3 -0
  235. package/dist/esm/chunk-C67MM24U.js.map +7 -0
  236. package/dist/esm/{chunk-5TJH35TF.js → chunk-CGFLZ3DC.js} +2 -2
  237. package/dist/esm/chunk-CT543Q2V.js +2 -0
  238. package/dist/esm/{chunk-YZZMQ457.js.map → chunk-CT543Q2V.js.map} +1 -1
  239. package/dist/esm/chunk-D2C2A2ZK.js +3 -0
  240. package/dist/esm/{chunk-ZPWKWESI.js.map → chunk-D2C2A2ZK.js.map} +4 -4
  241. package/dist/esm/chunk-DFGY2NZB.js +2 -0
  242. package/dist/esm/{chunk-SGJKXIWG.js.map → chunk-DFGY2NZB.js.map} +1 -1
  243. package/dist/esm/{chunk-4J7QDLKI.js → chunk-DFLWZOQO.js} +2 -3
  244. package/dist/esm/{chunk-4J7QDLKI.js.map → chunk-DFLWZOQO.js.map} +1 -1
  245. package/dist/esm/chunk-DSM5SUH3.js +3 -0
  246. package/dist/esm/{chunk-FCKJD2PW.js.map → chunk-DSM5SUH3.js.map} +4 -4
  247. package/dist/esm/chunk-E2LSWNWZ.js +3 -0
  248. package/dist/esm/{chunk-CBWERXF4.js.map → chunk-E2LSWNWZ.js.map} +4 -4
  249. package/dist/esm/{chunk-XL5OHW6Z.js → chunk-EB4AG3OL.js} +2 -2
  250. package/dist/esm/chunk-EFXHBH3A.js +2 -0
  251. package/dist/esm/{chunk-XMHNOIPB.js.map → chunk-EFXHBH3A.js.map} +1 -1
  252. package/dist/esm/{chunk-6FLLFCBU.js → chunk-ELAW7ZUG.js} +2 -2
  253. package/dist/esm/chunk-ENQV6SEA.js +3 -0
  254. package/dist/esm/{chunk-YD2D73LF.js.map → chunk-ENQV6SEA.js.map} +4 -4
  255. package/dist/esm/chunk-EPGIYTFK.js +3 -0
  256. package/dist/esm/chunk-EPGIYTFK.js.map +7 -0
  257. package/dist/esm/{chunk-WT2SYGTU.js → chunk-ETQNRMHU.js} +2 -3
  258. package/dist/esm/{chunk-WT2SYGTU.js.map → chunk-ETQNRMHU.js.map} +1 -1
  259. package/dist/esm/{chunk-PT45Q47V.js → chunk-FATCGZZE.js} +1 -1
  260. package/dist/esm/{chunk-IZIDRDQW.js → chunk-FH6RT6XH.js} +2 -3
  261. package/dist/esm/{chunk-IZIDRDQW.js.map → chunk-FH6RT6XH.js.map} +1 -1
  262. package/dist/esm/chunk-FK434VPA.js +3 -0
  263. package/dist/esm/{chunk-PCLO3ZZY.js.map → chunk-FK434VPA.js.map} +4 -4
  264. package/dist/esm/chunk-FNAE6HUI.js +2 -0
  265. package/dist/esm/chunk-FNAE6HUI.js.map +7 -0
  266. package/dist/esm/chunk-FYTLUDL3.js +3 -0
  267. package/dist/esm/{chunk-37GC4A2O.js.map → chunk-FYTLUDL3.js.map} +4 -4
  268. package/dist/esm/chunk-GMWCTK5G.js +3 -0
  269. package/dist/esm/chunk-GMWCTK5G.js.map +7 -0
  270. package/dist/esm/chunk-H3IAGAEL.js +2 -0
  271. package/dist/esm/{chunk-WCGQ4IDE.js.map → chunk-H3IAGAEL.js.map} +1 -1
  272. package/dist/esm/{chunk-PT4KBXXP.js → chunk-HCBR74BW.js} +2 -3
  273. package/dist/esm/{chunk-PT4KBXXP.js.map → chunk-HCBR74BW.js.map} +1 -1
  274. package/dist/esm/{chunk-TGUWRU7N.js → chunk-HIEGLLY7.js} +1 -2
  275. package/dist/esm/{chunk-TGUWRU7N.js.map → chunk-HIEGLLY7.js.map} +1 -1
  276. package/dist/esm/chunk-HLIOHDEX.js +3 -0
  277. package/dist/esm/chunk-HLIOHDEX.js.map +7 -0
  278. package/dist/esm/chunk-HSWMHW37.js +2 -0
  279. package/dist/esm/{chunk-SV3CYQY5.js.map → chunk-HSWMHW37.js.map} +1 -1
  280. package/dist/esm/chunk-IDEDEPBM.js +3 -0
  281. package/dist/esm/chunk-IDEDEPBM.js.map +7 -0
  282. package/dist/esm/{chunk-CV7QQTI3.js → chunk-ISCZ57VL.js} +2 -2
  283. package/dist/esm/chunk-JD4KR6VZ.js +3 -0
  284. package/dist/esm/chunk-JP36JSNP.js +3 -0
  285. package/dist/esm/chunk-JP36JSNP.js.map +7 -0
  286. package/dist/esm/{chunk-IZXML75Y.js → chunk-JQVW4WNN.js} +2 -2
  287. package/dist/esm/{chunk-Z563IAE3.js → chunk-KLYI5E6F.js} +2 -2
  288. package/dist/esm/chunk-KVOWI6SN.js +2 -0
  289. package/dist/esm/{chunk-HV7USGHD.js.map → chunk-KVOWI6SN.js.map} +1 -1
  290. package/dist/esm/{chunk-WZKSLTBH.js → chunk-KVVRFWGQ.js} +2 -2
  291. package/dist/esm/{chunk-VVBSYWUA.js → chunk-LTUW36HM.js} +2 -2
  292. package/dist/esm/{chunk-QQY4WFJL.js → chunk-LUNWI377.js} +2 -3
  293. package/dist/esm/{chunk-QQY4WFJL.js.map → chunk-LUNWI377.js.map} +1 -1
  294. package/dist/esm/chunk-MCHK36NI.js +3 -0
  295. package/dist/esm/chunk-MCHK36NI.js.map +7 -0
  296. package/dist/esm/chunk-MGWGD6KI.js +3 -0
  297. package/dist/esm/chunk-MGWGD6KI.js.map +7 -0
  298. package/dist/esm/chunk-MPCCYR7L.js +3 -0
  299. package/dist/esm/chunk-MPCCYR7L.js.map +7 -0
  300. package/dist/esm/{chunk-PZ6Z7WTR.js → chunk-NNE3KNH4.js} +2 -3
  301. package/dist/esm/{chunk-PZ6Z7WTR.js.map → chunk-NNE3KNH4.js.map} +1 -1
  302. package/dist/esm/{chunk-CKJXTEVO.js → chunk-NR5FQCMU.js} +2 -3
  303. package/dist/esm/{chunk-CKJXTEVO.js.map → chunk-NR5FQCMU.js.map} +1 -1
  304. package/dist/esm/chunk-NWXODCTD.js +3 -0
  305. package/dist/esm/{chunk-BXZSJKWA.js.map → chunk-NWXODCTD.js.map} +4 -4
  306. package/dist/esm/chunk-OA7C34MJ.js +1 -0
  307. package/dist/esm/{chunk-65KD6WS6.js → chunk-OEPVYHSS.js} +2 -3
  308. package/dist/esm/{chunk-65KD6WS6.js.map → chunk-OEPVYHSS.js.map} +1 -1
  309. package/dist/esm/chunk-OLTRWCQK.js +3 -0
  310. package/dist/esm/chunk-OLTRWCQK.js.map +7 -0
  311. package/dist/esm/chunk-OLWUS7PC.js +3 -0
  312. package/dist/esm/chunk-OLWUS7PC.js.map +7 -0
  313. package/dist/esm/{chunk-647DRBXQ.js → chunk-OSSNMF5U.js} +2 -3
  314. package/dist/esm/{chunk-647DRBXQ.js.map → chunk-OSSNMF5U.js.map} +1 -1
  315. package/dist/esm/chunk-OUOP6Q3Z.js +3 -0
  316. package/dist/esm/chunk-OUOP6Q3Z.js.map +7 -0
  317. package/dist/esm/{chunk-TDT2CNES.js → chunk-P6UX6FFY.js} +2 -2
  318. package/dist/esm/{chunk-JUY7CBSL.js → chunk-PBFSBHBS.js} +2 -2
  319. package/dist/esm/chunk-PEMFIU3B.js +2 -0
  320. package/dist/esm/{chunk-BOLSK63X.js.map → chunk-PEMFIU3B.js.map} +1 -1
  321. package/dist/esm/{chunk-3B25RLWX.js → chunk-Q2TLWILH.js} +2 -2
  322. package/dist/esm/chunk-Q5SANVIW.js +3 -0
  323. package/dist/esm/chunk-Q5SANVIW.js.map +7 -0
  324. package/dist/esm/chunk-QPRUTOLI.js +3 -0
  325. package/dist/esm/chunk-QPRUTOLI.js.map +7 -0
  326. package/dist/esm/chunk-QRV32INS.js +3 -0
  327. package/dist/esm/chunk-QRV32INS.js.map +7 -0
  328. package/dist/esm/chunk-R7YHDIFM.js +3 -0
  329. package/dist/esm/chunk-R7YHDIFM.js.map +7 -0
  330. package/dist/esm/{chunk-EY6TCYGG.js → chunk-RAVZ7F5L.js} +2 -3
  331. package/dist/esm/{chunk-EY6TCYGG.js.map → chunk-RAVZ7F5L.js.map} +1 -1
  332. package/dist/esm/chunk-RP5ORPPH.js +3 -0
  333. package/dist/esm/{chunk-BVFHJP5E.js.map → chunk-RP5ORPPH.js.map} +4 -4
  334. package/dist/esm/chunk-SKOYHBIE.js +2 -0
  335. package/dist/esm/{chunk-5RFDCAKC.js.map → chunk-SKOYHBIE.js.map} +1 -1
  336. package/dist/esm/chunk-STPMPY3X.js +1 -0
  337. package/dist/esm/chunk-T2DZDW5Y.js +3 -0
  338. package/dist/esm/chunk-T2DZDW5Y.js.map +7 -0
  339. package/dist/esm/chunk-TZTUPQYK.js +2 -0
  340. package/dist/esm/{chunk-XVDT6DQZ.js.map → chunk-TZTUPQYK.js.map} +1 -1
  341. package/dist/esm/chunk-UICSVJ3B.js +1 -0
  342. package/dist/esm/chunk-UJ7JERJ5.js +3 -0
  343. package/dist/esm/chunk-UJ7JERJ5.js.map +7 -0
  344. package/dist/esm/{chunk-6RJQ5LLP.js → chunk-UMR4AF35.js} +2 -2
  345. package/dist/esm/chunk-UMYPLUG3.js +2 -0
  346. package/dist/esm/chunk-UMYPLUG3.js.map +7 -0
  347. package/dist/esm/chunk-UONSKZQT.js +2 -0
  348. package/dist/esm/{chunk-M37GE2TE.js.map → chunk-UONSKZQT.js.map} +1 -1
  349. package/dist/esm/{chunk-CAAEEHGQ.js → chunk-UUXZ4W6H.js} +2 -3
  350. package/dist/esm/{chunk-CAAEEHGQ.js.map → chunk-UUXZ4W6H.js.map} +1 -1
  351. package/dist/esm/chunk-VCV7RACK.js +2 -0
  352. package/dist/esm/chunk-VCV7RACK.js.map +7 -0
  353. package/dist/esm/chunk-VPP5IDW7.js +3 -0
  354. package/dist/esm/chunk-VPP5IDW7.js.map +7 -0
  355. package/dist/esm/{chunk-L4NF3Q2T.js → chunk-VW46DG7H.js} +2 -3
  356. package/dist/esm/{chunk-L4NF3Q2T.js.map → chunk-VW46DG7H.js.map} +1 -1
  357. package/dist/esm/chunk-W3ES2XSB.js +3 -0
  358. package/dist/esm/chunk-W3ES2XSB.js.map +7 -0
  359. package/dist/esm/chunk-W4Z6ORYO.js +3 -0
  360. package/dist/esm/{chunk-MQEWEAH5.js.map → chunk-W4Z6ORYO.js.map} +4 -4
  361. package/dist/esm/chunk-WD66RYF6.js +3 -0
  362. package/dist/esm/chunk-WD66RYF6.js.map +7 -0
  363. package/dist/esm/chunk-WOR3JCLX.js +1 -0
  364. package/dist/esm/chunk-WOR3JCLX.js.map +7 -0
  365. package/dist/esm/{chunk-HHSFAOIO.js → chunk-WYKNBNM5.js} +2 -2
  366. package/dist/esm/chunk-WYKNBNM5.js.map +7 -0
  367. package/dist/esm/chunk-X7JHZ3HA.js +3 -0
  368. package/dist/esm/{chunk-OQWD63AI.js.map → chunk-X7JHZ3HA.js.map} +4 -4
  369. package/dist/esm/chunk-XD3C3GVF.js +3 -0
  370. package/dist/esm/chunk-XD3C3GVF.js.map +7 -0
  371. package/dist/esm/{chunk-FI32HA4X.js → chunk-XDVTHL3S.js} +2 -3
  372. package/dist/esm/{chunk-FI32HA4X.js.map → chunk-XDVTHL3S.js.map} +1 -1
  373. package/dist/esm/chunk-XGES2VBG.js +3 -0
  374. package/dist/esm/chunk-XGES2VBG.js.map +7 -0
  375. package/dist/esm/{chunk-64EFWPHI.js → chunk-YCLPURTD.js} +1 -1
  376. package/dist/esm/chunk-YHQTFDGN.js +2 -0
  377. package/dist/esm/{chunk-PHWT772P.js.map → chunk-YHQTFDGN.js.map} +1 -1
  378. package/dist/esm/{chunk-AQ7VUGQQ.js → chunk-YMUERC2J.js} +2 -2
  379. package/dist/esm/chunk-YOZXIUZY.js +3 -0
  380. package/dist/esm/{chunk-N3QLHFHB.js.map → chunk-YOZXIUZY.js.map} +4 -4
  381. package/dist/esm/{chunk-R4PGFURL.js → chunk-Z5W4ACO2.js} +2 -2
  382. package/dist/esm/chunk-ZG2XQUOH.js +3 -0
  383. package/dist/esm/chunk-ZIAA2C4H.js +3 -0
  384. package/dist/esm/{chunk-5EBJOOXE.js.map → chunk-ZIAA2C4H.js.map} +4 -4
  385. package/dist/esm/components/_internal/base-button.d.ts.map +1 -1
  386. package/dist/esm/components/_internal/base-button.js +1 -1
  387. package/dist/esm/components/_internal/base-button.props.js +1 -2
  388. package/dist/esm/components/_internal/base-checkbox.props.js +1 -2
  389. package/dist/esm/components/_internal/base-menu.props.js +1 -2
  390. package/dist/esm/components/_internal/base-menu.utils.js +1 -1
  391. package/dist/esm/components/_internal/base-radio.props.js +1 -2
  392. package/dist/esm/components/_internal/base-tab-list.props.js +1 -2
  393. package/dist/esm/components/_internal/menu-context.js +1 -1
  394. package/dist/esm/components/_internal/pane-band-context.d.ts +15 -0
  395. package/dist/esm/components/_internal/pane-band-context.d.ts.map +1 -0
  396. package/dist/esm/components/_internal/pane-band-context.js +3 -0
  397. package/dist/esm/components/_internal/pane-band-context.js.map +7 -0
  398. package/dist/esm/components/_internal/pane-chrome.d.ts +1 -1
  399. package/dist/esm/components/_internal/pane-chrome.d.ts.map +1 -1
  400. package/dist/esm/components/_internal/pane-chrome.js +1 -1
  401. package/dist/esm/components/_internal/portal-theme.d.ts +9 -0
  402. package/dist/esm/components/_internal/portal-theme.d.ts.map +1 -0
  403. package/dist/esm/components/_internal/portal-theme.js +3 -0
  404. package/dist/esm/components/_internal/portal-theme.js.map +7 -0
  405. package/dist/esm/components/_internal/shell-bottom.d.ts.map +1 -1
  406. package/dist/esm/components/_internal/shell-bottom.js +1 -1
  407. package/dist/esm/components/_internal/shell-inspector.js +1 -1
  408. package/dist/esm/components/_internal/shell-pane.js +1 -1
  409. package/dist/esm/components/_internal/shell-sidebar.js +1 -1
  410. package/dist/esm/components/accordion.js +1 -1
  411. package/dist/esm/components/accordion.props.js +1 -2
  412. package/dist/esm/components/accordion.props.js.map +4 -4
  413. package/dist/esm/components/alert-dialog.js +1 -1
  414. package/dist/esm/components/alert-dialog.props.js +1 -2
  415. package/dist/esm/components/avatar.js +1 -1
  416. package/dist/esm/components/avatar.props.js +1 -2
  417. package/dist/esm/components/blockquote.js +1 -1
  418. package/dist/esm/components/blockquote.props.js +1 -2
  419. package/dist/esm/components/box.js +1 -1
  420. package/dist/esm/components/box.props.js +1 -2
  421. package/dist/esm/components/button.js +1 -1
  422. package/dist/esm/components/button.props.js +1 -2
  423. package/dist/esm/components/card.js +1 -1
  424. package/dist/esm/components/card.props.js +1 -2
  425. package/dist/esm/components/chatbar.js +1 -1
  426. package/dist/esm/components/checkbox-group.js +1 -1
  427. package/dist/esm/components/checkbox-group.props.js +1 -2
  428. package/dist/esm/components/checkbox.js +1 -1
  429. package/dist/esm/components/checkbox.props.js +1 -2
  430. package/dist/esm/components/chip.js +1 -1
  431. package/dist/esm/components/chip.props.js +1 -2
  432. package/dist/esm/components/code.js +1 -1
  433. package/dist/esm/components/code.props.js +1 -2
  434. package/dist/esm/components/combobox.d.ts.map +1 -1
  435. package/dist/esm/components/combobox.js +1 -1
  436. package/dist/esm/components/combobox.props.js +1 -2
  437. package/dist/esm/components/combobox.props.js.map +4 -4
  438. package/dist/esm/components/context-menu.d.ts.map +1 -1
  439. package/dist/esm/components/context-menu.js +1 -1
  440. package/dist/esm/components/context-menu.props.js +1 -2
  441. package/dist/esm/components/dialog.js +1 -1
  442. package/dist/esm/components/dialog.props.js +1 -2
  443. package/dist/esm/components/dropdown-menu.d.ts.map +1 -1
  444. package/dist/esm/components/dropdown-menu.js +1 -1
  445. package/dist/esm/components/dropdown-menu.props.js +1 -2
  446. package/dist/esm/components/flex.js +1 -1
  447. package/dist/esm/components/flex.props.js +1 -2
  448. package/dist/esm/components/grid.js +1 -1
  449. package/dist/esm/components/grid.props.js +1 -2
  450. package/dist/esm/components/heading.js +1 -1
  451. package/dist/esm/components/heading.props.js +1 -2
  452. package/dist/esm/components/image.js +1 -1
  453. package/dist/esm/components/image.props.js +1 -2
  454. package/dist/esm/components/image.props.js.map +4 -4
  455. package/dist/esm/components/index.js +1 -1
  456. package/dist/esm/components/kbd.js +1 -1
  457. package/dist/esm/components/kbd.props.js +1 -2
  458. package/dist/esm/components/link.js +1 -1
  459. package/dist/esm/components/link.props.js +1 -2
  460. package/dist/esm/components/message-scroller.js +1 -1
  461. package/dist/esm/components/navbar.js +1 -1
  462. package/dist/esm/components/navbar.props.js +1 -2
  463. package/dist/esm/components/navbar.props.js.map +4 -4
  464. package/dist/esm/components/notice.js +1 -1
  465. package/dist/esm/components/popover.d.ts.map +1 -1
  466. package/dist/esm/components/popover.js +1 -1
  467. package/dist/esm/components/popover.props.js +1 -2
  468. package/dist/esm/components/progress.js +1 -1
  469. package/dist/esm/components/progress.props.js +1 -2
  470. package/dist/esm/components/radio-group.js +1 -1
  471. package/dist/esm/components/radio-group.props.js +1 -2
  472. package/dist/esm/components/radio.js +1 -1
  473. package/dist/esm/components/radio.props.js +1 -2
  474. package/dist/esm/components/scroll-area.d.ts.map +1 -1
  475. package/dist/esm/components/scroll-area.js +1 -1
  476. package/dist/esm/components/scroll-area.props.js +1 -2
  477. package/dist/esm/components/segmented-control.js +1 -1
  478. package/dist/esm/components/segmented-control.props.js +1 -2
  479. package/dist/esm/components/select.d.ts.map +1 -1
  480. package/dist/esm/components/select.js +1 -1
  481. package/dist/esm/components/select.props.js +1 -2
  482. package/dist/esm/components/separator.js +1 -1
  483. package/dist/esm/components/separator.props.js +1 -2
  484. package/dist/esm/components/sheet.js +1 -1
  485. package/dist/esm/components/shell.context.js +1 -1
  486. package/dist/esm/components/shell.d.ts.map +1 -1
  487. package/dist/esm/components/shell.hooks.js +1 -1
  488. package/dist/esm/components/shell.js +1 -1
  489. package/dist/esm/components/sidebar.js +1 -1
  490. package/dist/esm/components/slider.d.ts.map +1 -1
  491. package/dist/esm/components/slider.js +1 -1
  492. package/dist/esm/components/slider.props.js +1 -2
  493. package/dist/esm/components/spinner.d.ts.map +1 -1
  494. package/dist/esm/components/spinner.js +1 -1
  495. package/dist/esm/components/spinner.props.js +1 -2
  496. package/dist/esm/components/switch.js +1 -1
  497. package/dist/esm/components/switch.props.js +1 -2
  498. package/dist/esm/components/table.js +1 -1
  499. package/dist/esm/components/table.props.js +1 -2
  500. package/dist/esm/components/tabs.js +1 -1
  501. package/dist/esm/components/tabs.props.js +1 -2
  502. package/dist/esm/components/text-area.d.ts.map +1 -1
  503. package/dist/esm/components/text-area.js +1 -1
  504. package/dist/esm/components/text-area.props.js +1 -2
  505. package/dist/esm/components/text-field.d.ts.map +1 -1
  506. package/dist/esm/components/text-field.js +1 -1
  507. package/dist/esm/components/text-field.props.js +1 -2
  508. package/dist/esm/components/text.js +1 -1
  509. package/dist/esm/components/text.props.js +1 -2
  510. package/dist/esm/components/theme.js +1 -1
  511. package/dist/esm/components/theme.props.js +1 -2
  512. package/dist/esm/components/toggle.js +1 -1
  513. package/dist/esm/components/toolbar.js +1 -1
  514. package/dist/esm/components/toolbar.props.d.ts +3 -2
  515. package/dist/esm/components/toolbar.props.d.ts.map +1 -1
  516. package/dist/esm/components/toolbar.props.js +1 -2
  517. package/dist/esm/components/toolbar.props.js.map +4 -4
  518. package/dist/esm/components/tooltip.js +1 -1
  519. package/dist/esm/components/tooltip.props.js +1 -2
  520. package/dist/esm/components/virtual-menu.js +1 -1
  521. package/dist/esm/helpers/extract-props.js +1 -1
  522. package/dist/esm/helpers/get-margin-styles.js +1 -1
  523. package/dist/esm/helpers/get-responsive-styles.js +1 -1
  524. package/dist/esm/helpers/index.js +1 -1
  525. package/dist/esm/hooks/index.js +1 -1
  526. package/dist/esm/hooks/use-scroll-edges.d.ts +9 -0
  527. package/dist/esm/hooks/use-scroll-edges.d.ts.map +1 -1
  528. package/dist/esm/hooks/use-scroll-edges.js +1 -1
  529. package/dist/esm/index.js +1 -1
  530. package/dist/esm/props/font-family.prop.js +1 -1
  531. package/dist/esm/props/font-family.prop.js.map +4 -4
  532. package/dist/esm/props/index.js +1 -1
  533. package/dist/esm/props/index.js.map +3 -3
  534. package/dist/esm/props/layout.props.js +1 -1
  535. package/package.json +1 -1
  536. package/src/components/_internal/base-button.tsx +8 -2
  537. package/src/components/_internal/pane-band-context.ts +17 -0
  538. package/src/components/_internal/pane-chrome.tsx +1 -8
  539. package/src/components/_internal/portal-theme.tsx +18 -0
  540. package/src/components/_internal/shell-bottom.tsx +4 -1
  541. package/src/components/alert-dialog.tsx +3 -3
  542. package/src/components/combobox.tsx +4 -3
  543. package/src/components/context-menu.tsx +6 -5
  544. package/src/components/dialog.tsx +3 -3
  545. package/src/components/dropdown-menu.tsx +6 -5
  546. package/src/components/popover.tsx +10 -64
  547. package/src/components/scroll-area.tsx +3 -2
  548. package/src/components/select.css +1 -1
  549. package/src/components/select.tsx +4 -3
  550. package/src/components/sheet.tsx +3 -3
  551. package/src/components/shell.css +11 -3
  552. package/src/components/shell.tsx +8 -1
  553. package/src/components/slider.tsx +19 -1
  554. package/src/components/spinner.css +16 -1
  555. package/src/components/spinner.tsx +14 -13
  556. package/src/components/text-area.css +19 -2
  557. package/src/components/text-area.tsx +34 -24
  558. package/src/components/text-field.css +14 -2
  559. package/src/components/text-field.tsx +44 -26
  560. package/src/components/toolbar.props.tsx +3 -2
  561. package/src/components/tooltip.tsx +3 -3
  562. package/src/hooks/use-scroll-edges.ts +16 -2
  563. package/src/styles/tokens/color.css +6 -5
  564. package/src/styles/tokens/shadow.css +2 -2
  565. package/styles.css +51 -4
  566. package/tokens/base.css +1 -2
  567. package/tokens.css +1 -2
  568. package/dist/esm/chunk-2IU5XPR2.js +0 -3
  569. package/dist/esm/chunk-2IU5XPR2.js.map +0 -7
  570. package/dist/esm/chunk-37GC4A2O.js +0 -3
  571. package/dist/esm/chunk-3H23GRNQ.js +0 -3
  572. package/dist/esm/chunk-3H23GRNQ.js.map +0 -7
  573. package/dist/esm/chunk-3L2MDOYC.js +0 -3
  574. package/dist/esm/chunk-3L2MDOYC.js.map +0 -7
  575. package/dist/esm/chunk-4S5L25RO.js +0 -3
  576. package/dist/esm/chunk-5CFSNNYS.js +0 -3
  577. package/dist/esm/chunk-5CFSNNYS.js.map +0 -7
  578. package/dist/esm/chunk-5EBJOOXE.js +0 -3
  579. package/dist/esm/chunk-5EP3UTM7.js +0 -3
  580. package/dist/esm/chunk-5EP3UTM7.js.map +0 -7
  581. package/dist/esm/chunk-5L4DZ2D3.js +0 -3
  582. package/dist/esm/chunk-5L4DZ2D3.js.map +0 -7
  583. package/dist/esm/chunk-5RFDCAKC.js +0 -3
  584. package/dist/esm/chunk-5XR5PTDR.js +0 -3
  585. package/dist/esm/chunk-5XR5PTDR.js.map +0 -7
  586. package/dist/esm/chunk-63MUJFVF.js +0 -3
  587. package/dist/esm/chunk-63MUJFVF.js.map +0 -7
  588. package/dist/esm/chunk-6AMWYEM7.js +0 -3
  589. package/dist/esm/chunk-6AMWYEM7.js.map +0 -7
  590. package/dist/esm/chunk-6BB2A6VU.js +0 -3
  591. package/dist/esm/chunk-6UZT3ZLO.js +0 -3
  592. package/dist/esm/chunk-6UZT3ZLO.js.map +0 -7
  593. package/dist/esm/chunk-7ROKZHH2.js +0 -3
  594. package/dist/esm/chunk-7ROKZHH2.js.map +0 -7
  595. package/dist/esm/chunk-7X7VWR3F.js +0 -3
  596. package/dist/esm/chunk-7X7VWR3F.js.map +0 -7
  597. package/dist/esm/chunk-7XHE6TOA.js +0 -6
  598. package/dist/esm/chunk-7XHE6TOA.js.map +0 -7
  599. package/dist/esm/chunk-A2OMWZI7.js +0 -2
  600. package/dist/esm/chunk-BOLSK63X.js +0 -3
  601. package/dist/esm/chunk-BVFHJP5E.js +0 -3
  602. package/dist/esm/chunk-BXZSJKWA.js +0 -3
  603. package/dist/esm/chunk-CBWERXF4.js +0 -3
  604. package/dist/esm/chunk-CQG4U5BR.js +0 -3
  605. package/dist/esm/chunk-CQG4U5BR.js.map +0 -7
  606. package/dist/esm/chunk-D4P7332M.js +0 -3
  607. package/dist/esm/chunk-D4P7332M.js.map +0 -7
  608. package/dist/esm/chunk-DVXDFCCV.js +0 -3
  609. package/dist/esm/chunk-DVXDFCCV.js.map +0 -7
  610. package/dist/esm/chunk-EAIQIW23.js +0 -3
  611. package/dist/esm/chunk-EAIQIW23.js.map +0 -7
  612. package/dist/esm/chunk-FCKJD2PW.js +0 -3
  613. package/dist/esm/chunk-FPGBCCML.js +0 -3
  614. package/dist/esm/chunk-FPGBCCML.js.map +0 -7
  615. package/dist/esm/chunk-GNPTPIL7.js +0 -3
  616. package/dist/esm/chunk-GNPTPIL7.js.map +0 -7
  617. package/dist/esm/chunk-HHSFAOIO.js.map +0 -7
  618. package/dist/esm/chunk-HV7USGHD.js +0 -3
  619. package/dist/esm/chunk-IE5ACUZS.js +0 -3
  620. package/dist/esm/chunk-ILWS2JUE.js +0 -3
  621. package/dist/esm/chunk-ILWS2JUE.js.map +0 -7
  622. package/dist/esm/chunk-IO43RGNR.js +0 -3
  623. package/dist/esm/chunk-IO43RGNR.js.map +0 -7
  624. package/dist/esm/chunk-J3QIUJ6F.js +0 -2
  625. package/dist/esm/chunk-JS23YQ4M.js +0 -3
  626. package/dist/esm/chunk-JZ5Z53MN.js +0 -2
  627. package/dist/esm/chunk-KRFXTPEW.js +0 -3
  628. package/dist/esm/chunk-KRFXTPEW.js.map +0 -7
  629. package/dist/esm/chunk-KSYHZCLD.js +0 -3
  630. package/dist/esm/chunk-KSYHZCLD.js.map +0 -7
  631. package/dist/esm/chunk-M37GE2TE.js +0 -3
  632. package/dist/esm/chunk-M3NI3D6R.js +0 -3
  633. package/dist/esm/chunk-MQEWEAH5.js +0 -3
  634. package/dist/esm/chunk-MXIVYALY.js +0 -3
  635. package/dist/esm/chunk-MXIVYALY.js.map +0 -7
  636. package/dist/esm/chunk-N3QLHFHB.js +0 -3
  637. package/dist/esm/chunk-NZCAGHCL.js +0 -3
  638. package/dist/esm/chunk-OQWD63AI.js +0 -3
  639. package/dist/esm/chunk-PCLO3ZZY.js +0 -3
  640. package/dist/esm/chunk-PHWT772P.js +0 -3
  641. package/dist/esm/chunk-PZCQDZVJ.js +0 -3
  642. package/dist/esm/chunk-PZCQDZVJ.js.map +0 -7
  643. package/dist/esm/chunk-RVPLXLRA.js +0 -3
  644. package/dist/esm/chunk-RVPLXLRA.js.map +0 -7
  645. package/dist/esm/chunk-SGJKXIWG.js +0 -3
  646. package/dist/esm/chunk-SHLERRO3.js +0 -3
  647. package/dist/esm/chunk-SHLERRO3.js.map +0 -7
  648. package/dist/esm/chunk-SV3CYQY5.js +0 -3
  649. package/dist/esm/chunk-U5GQ3IFS.js +0 -3
  650. package/dist/esm/chunk-U5GQ3IFS.js.map +0 -7
  651. package/dist/esm/chunk-VPRAXHLL.js +0 -3
  652. package/dist/esm/chunk-VPRAXHLL.js.map +0 -7
  653. package/dist/esm/chunk-VRQEWMC6.js +0 -3
  654. package/dist/esm/chunk-VRQEWMC6.js.map +0 -7
  655. package/dist/esm/chunk-W4MQ6TEK.js.map +0 -7
  656. package/dist/esm/chunk-WCGQ4IDE.js +0 -3
  657. package/dist/esm/chunk-WH7PQSSG.js +0 -2
  658. package/dist/esm/chunk-WJ4H2O2G.js +0 -3
  659. package/dist/esm/chunk-WJ4H2O2G.js.map +0 -7
  660. package/dist/esm/chunk-WMODMXEU.js +0 -3
  661. package/dist/esm/chunk-WMODMXEU.js.map +0 -7
  662. package/dist/esm/chunk-WMZLMZHB.js +0 -3
  663. package/dist/esm/chunk-WMZLMZHB.js.map +0 -7
  664. package/dist/esm/chunk-XH2CRCXR.js +0 -3
  665. package/dist/esm/chunk-XH2CRCXR.js.map +0 -7
  666. package/dist/esm/chunk-XMHNOIPB.js +0 -3
  667. package/dist/esm/chunk-XVDT6DQZ.js +0 -3
  668. package/dist/esm/chunk-Y2BTPKK6.js +0 -3
  669. package/dist/esm/chunk-Y2BTPKK6.js.map +0 -7
  670. package/dist/esm/chunk-YD2D73LF.js +0 -3
  671. package/dist/esm/chunk-YDBFIJHB.js +0 -3
  672. package/dist/esm/chunk-YDBFIJHB.js.map +0 -7
  673. package/dist/esm/chunk-YWG476GC.js +0 -3
  674. package/dist/esm/chunk-YZZMQ457.js +0 -3
  675. package/dist/esm/chunk-Z27REN6T.js +0 -3
  676. package/dist/esm/chunk-Z27REN6T.js.map +0 -7
  677. package/dist/esm/chunk-ZPWKWESI.js +0 -3
  678. package/dist/esm/chunk-ZYKJTNAT.js +0 -3
  679. package/dist/esm/chunk-ZYKJTNAT.js.map +0 -7
  680. /package/dist/esm/{chunk-I6SMGWS5.js.map → chunk-2ACVWLFA.js.map} +0 -0
  681. /package/dist/esm/{chunk-QH64BDXO.js.map → chunk-4G3FJUER.js.map} +0 -0
  682. /package/dist/esm/{chunk-6BB2A6VU.js.map → chunk-4KIZRO52.js.map} +0 -0
  683. /package/dist/esm/{chunk-7B3XDZXZ.js.map → chunk-6C6EK2B5.js.map} +0 -0
  684. /package/dist/esm/{chunk-A2OMWZI7.js.map → chunk-6DWDNKLS.js.map} +0 -0
  685. /package/dist/esm/{chunk-CYTPMHSJ.js.map → chunk-7QBNXNEN.js.map} +0 -0
  686. /package/dist/esm/{chunk-YOSCUA6Z.js.map → chunk-ACMANOVD.js.map} +0 -0
  687. /package/dist/esm/{chunk-5TJH35TF.js.map → chunk-CGFLZ3DC.js.map} +0 -0
  688. /package/dist/esm/{chunk-XL5OHW6Z.js.map → chunk-EB4AG3OL.js.map} +0 -0
  689. /package/dist/esm/{chunk-6FLLFCBU.js.map → chunk-ELAW7ZUG.js.map} +0 -0
  690. /package/dist/esm/{chunk-PT45Q47V.js.map → chunk-FATCGZZE.js.map} +0 -0
  691. /package/dist/esm/{chunk-CV7QQTI3.js.map → chunk-ISCZ57VL.js.map} +0 -0
  692. /package/dist/esm/{chunk-NZCAGHCL.js.map → chunk-JD4KR6VZ.js.map} +0 -0
  693. /package/dist/esm/{chunk-IZXML75Y.js.map → chunk-JQVW4WNN.js.map} +0 -0
  694. /package/dist/esm/{chunk-Z563IAE3.js.map → chunk-KLYI5E6F.js.map} +0 -0
  695. /package/dist/esm/{chunk-WZKSLTBH.js.map → chunk-KVVRFWGQ.js.map} +0 -0
  696. /package/dist/esm/{chunk-VVBSYWUA.js.map → chunk-LTUW36HM.js.map} +0 -0
  697. /package/dist/esm/{chunk-J3QIUJ6F.js.map → chunk-OA7C34MJ.js.map} +0 -0
  698. /package/dist/esm/{chunk-TDT2CNES.js.map → chunk-P6UX6FFY.js.map} +0 -0
  699. /package/dist/esm/{chunk-JUY7CBSL.js.map → chunk-PBFSBHBS.js.map} +0 -0
  700. /package/dist/esm/{chunk-3B25RLWX.js.map → chunk-Q2TLWILH.js.map} +0 -0
  701. /package/dist/esm/{chunk-JZ5Z53MN.js.map → chunk-STPMPY3X.js.map} +0 -0
  702. /package/dist/esm/{chunk-WH7PQSSG.js.map → chunk-UICSVJ3B.js.map} +0 -0
  703. /package/dist/esm/{chunk-6RJQ5LLP.js.map → chunk-UMR4AF35.js.map} +0 -0
  704. /package/dist/esm/{chunk-64EFWPHI.js.map → chunk-YCLPURTD.js.map} +0 -0
  705. /package/dist/esm/{chunk-AQ7VUGQQ.js.map → chunk-YMUERC2J.js.map} +0 -0
  706. /package/dist/esm/{chunk-R4PGFURL.js.map → chunk-Z5W4ACO2.js.map} +0 -0
  707. /package/dist/esm/{chunk-YWG476GC.js.map → chunk-ZG2XQUOH.js.map} +0 -0
@@ -1,3 +0,0 @@
1
- "use client";
2
- import{a as A}from"./chunk-KOAWATCI.js";import{a as p}from"./chunk-M37GE2TE.js";import{a as h}from"./chunk-XH2CRCXR.js";import{a as P}from"./chunk-YOSLXJI5.js";import{a as S}from"./chunk-LPLW7OWA.js";import{a as b}from"./chunk-L54FWKJE.js";import{c as u}from"./chunk-OKQAVYW4.js";import*as r from"react";import H from"classnames";import{ScrollArea as l}from"radix-ui";import{useComposedRefs as C}from"radix-ui/internal";var W='[role="menu"], [role="listbox"]';function k(e,s){r.useEffect(()=>{if(!s||!e||e.closest(W))return;let o=0,a=()=>{o=0,e.scrollHeight>e.clientHeight||e.scrollWidth>e.clientWidth?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")},n=()=>{o||(o=requestAnimationFrame(a))};a();let t=typeof ResizeObserver>"u"?null:new ResizeObserver(n);t?.observe(e);for(let i of Array.from(e.children))t?.observe(i);return()=>{o&&cancelAnimationFrame(o),t?.disconnect()}},[e,s])}var x=r.forwardRef((e,s)=>{let{asChild:o,children:a,className:n,style:t,type:i,scrollHideDelay:v=i!=="scroll"?0:void 0,dir:y,radius:d=p.radius.default,scrollbars:m=p.scrollbars.default,fade:f=p.fade.default,...c}=u(e,b,S),[R,w]=r.useState(null),D=h(f),N=A(),T=C(s,D,N,w);k(R,c.tabIndex===void 0);let g=c["aria-label"]!==void 0||c["aria-labelledby"]!==void 0;return r.createElement(l.Root,{type:i,scrollHideDelay:v,dir:y,className:H("kui-ScrollAreaRoot",n),"data-fade":f?"":void 0,style:t,asChild:o},P({asChild:o,children:a},E=>r.createElement(r.Fragment,null,r.createElement(l.Viewport,{role:g?"region":void 0,...c,ref:T,className:"kui-ScrollAreaViewport"},E),r.createElement("div",{className:"kui-ScrollAreaViewportFocusRing"}),m!=="vertical"?r.createElement(l.Scrollbar,{"data-radius":d,orientation:"horizontal",className:"kui-ScrollAreaScrollbar"},r.createElement(l.Thumb,{className:"kui-ScrollAreaThumb"})):null,m!=="horizontal"?r.createElement(l.Scrollbar,{"data-radius":d,orientation:"vertical",className:"kui-ScrollAreaScrollbar"},r.createElement(l.Thumb,{className:"kui-ScrollAreaThumb"})):null,m==="both"?r.createElement(l.Corner,{className:"kui-ScrollAreaCorner"}):null)))});x.displayName="ScrollArea";export{x as a};
3
- //# sourceMappingURL=chunk-RVPLXLRA.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/scroll-area.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\nimport { ScrollArea as ScrollAreaPrimitive } from 'radix-ui';\nimport { useComposedRefs } from 'radix-ui/internal';\n\nimport { scrollAreaPropDefs } from './scroll-area.props.js';\nimport { useScrollEdges } from '../hooks/use-scroll-edges.js';\nimport { useThumbSync } from '../hooks/use-thumb-sync.js';\nimport { getSubtree } from '../helpers/get-subtree.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { widthPropDefs } from '../props/width.props.js';\nimport { heightPropDefs } from '../props/height.props.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\nimport type { WidthProps } from '../props/width.props.js';\nimport type { HeightProps } from '../props/height.props.js';\n\ntype ScrollAreaElement = React.ElementRef<typeof ScrollAreaPrimitive.Viewport>;\ntype ScrollAreaOwnProps = GetPropDefTypes<typeof scrollAreaPropDefs>;\ninterface ScrollAreaProps\n extends ComponentPropsWithout<typeof ScrollAreaPrimitive.Root, RemovedProps>,\n ComponentPropsWithout<typeof ScrollAreaPrimitive.Viewport, RemovedProps | 'dir'>,\n ScrollAreaOwnProps,\n WidthProps,\n HeightProps {}\n\n/** Menus and listboxes move focus between their items, so a scroller inside one stays out of the tab order. */\nconst OWNS_FOCUS = '[role=\"menu\"], [role=\"listbox\"]';\n\n/**\n * Puts the viewport in the tab order while it has something to scroll, so a keyboard can reach it\n * and scroll it with the arrow keys. A `tabIndex` the caller set wins.\n */\nfunction useFocusableWhileScrollable(element: HTMLDivElement | null, enabled: boolean) {\n React.useEffect(() => {\n if (!enabled || !element || element.closest(OWNS_FOCUS)) return;\n let frame = 0;\n const update = () => {\n frame = 0;\n const scrollable = element.scrollHeight > element.clientHeight || element.scrollWidth > element.clientWidth;\n if (scrollable) element.setAttribute('tabindex', '0');\n else element.removeAttribute('tabindex');\n };\n const schedule = () => {\n if (!frame) frame = requestAnimationFrame(update);\n };\n update();\n const observer = typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(schedule);\n observer?.observe(element);\n for (const child of Array.from(element.children)) observer?.observe(child);\n return () => {\n if (frame) cancelAnimationFrame(frame);\n // The attribute stays: a caller who now sets `tabIndex` has already written it.\n observer?.disconnect();\n };\n }, [element, enabled]);\n}\n\nconst ScrollArea = React.forwardRef<ScrollAreaElement, ScrollAreaProps>((props, forwardedRef) => {\n const {\n asChild,\n children,\n className,\n style,\n type,\n scrollHideDelay = type !== 'scroll' ? 0 : undefined,\n dir,\n radius = scrollAreaPropDefs.radius.default,\n scrollbars = scrollAreaPropDefs.scrollbars.default,\n fade = scrollAreaPropDefs.fade.default,\n ...viewportProps\n } = extractProps(props, widthPropDefs, heightPropDefs);\n const [viewport, setViewport] = React.useState<HTMLDivElement | null>(null);\n const setEdgesElement = useScrollEdges<HTMLDivElement>(fade);\n const setThumbViewport = useThumbSync<HTMLDivElement>();\n const viewportRef = useComposedRefs(forwardedRef, setEdgesElement, setThumbViewport, setViewport);\n useFocusableWhileScrollable(viewport, viewportProps.tabIndex === undefined);\n // A named scroller is a region, so a screen reader can find it and say what it holds.\n const named = viewportProps['aria-label'] !== undefined || viewportProps['aria-labelledby'] !== undefined;\n\n return (\n <ScrollAreaPrimitive.Root\n type={type}\n scrollHideDelay={scrollHideDelay}\n dir={dir}\n className={classNames('kui-ScrollAreaRoot', className)}\n data-fade={fade ? '' : undefined}\n style={style}\n asChild={asChild}\n >\n {getSubtree({ asChild, children }, (children) => (\n <>\n <ScrollAreaPrimitive.Viewport\n role={named ? 'region' : undefined}\n {...viewportProps}\n ref={viewportRef}\n className=\"kui-ScrollAreaViewport\"\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n\n <div className=\"kui-ScrollAreaViewportFocusRing\" />\n\n {scrollbars !== 'vertical' ? (\n <ScrollAreaPrimitive.Scrollbar\n data-radius={radius}\n orientation=\"horizontal\"\n className=\"kui-ScrollAreaScrollbar\"\n >\n <ScrollAreaPrimitive.Thumb className=\"kui-ScrollAreaThumb\" />\n </ScrollAreaPrimitive.Scrollbar>\n ) : null}\n\n {scrollbars !== 'horizontal' ? (\n <ScrollAreaPrimitive.Scrollbar\n data-radius={radius}\n orientation=\"vertical\"\n className=\"kui-ScrollAreaScrollbar\"\n >\n <ScrollAreaPrimitive.Thumb className=\"kui-ScrollAreaThumb\" />\n </ScrollAreaPrimitive.Scrollbar>\n ) : null}\n\n {scrollbars === 'both' ? (\n <ScrollAreaPrimitive.Corner className=\"kui-ScrollAreaCorner\" />\n ) : null}\n </>\n ))}\n </ScrollAreaPrimitive.Root>\n );\n});\nScrollArea.displayName = 'ScrollArea';\n\nexport { ScrollArea };\nexport type { ScrollAreaProps };\n"],
5
- "mappings": ";wRAAA,UAAYA,MAAW,QACvB,OAAOC,MAAgB,aACvB,OAAS,cAAcC,MAA2B,WAClD,OAAS,mBAAAC,MAAuB,oBAyBhC,IAAMC,EAAa,kCAMnB,SAASC,EAA4BC,EAAgCC,EAAkB,CAC/E,YAAU,IAAM,CACpB,GAAI,CAACA,GAAW,CAACD,GAAWA,EAAQ,QAAQF,CAAU,EAAG,OACzD,IAAII,EAAQ,EACNC,EAAS,IAAM,CACnBD,EAAQ,EACWF,EAAQ,aAAeA,EAAQ,cAAgBA,EAAQ,YAAcA,EAAQ,YAChFA,EAAQ,aAAa,WAAY,GAAG,EAC/CA,EAAQ,gBAAgB,UAAU,CACzC,EACMI,EAAW,IAAM,CAChBF,IAAOA,EAAQ,sBAAsBC,CAAM,EAClD,EACAA,EAAO,EACP,IAAME,EAAW,OAAO,eAAmB,IAAc,KAAO,IAAI,eAAeD,CAAQ,EAC3FC,GAAU,QAAQL,CAAO,EACzB,QAAWM,KAAS,MAAM,KAAKN,EAAQ,QAAQ,EAAGK,GAAU,QAAQC,CAAK,EACzE,MAAO,IAAM,CACPJ,GAAO,qBAAqBA,CAAK,EAErCG,GAAU,WAAW,CACvB,CACF,EAAG,CAACL,EAASC,CAAO,CAAC,CACvB,CAEA,IAAMM,EAAmB,aAA+C,CAACC,EAAOC,IAAiB,CAC/F,GAAM,CACJ,QAAAC,EACA,SAAAC,EACA,UAAAC,EACA,MAAAC,EACA,KAAAC,EACA,gBAAAC,EAAkBD,IAAS,SAAW,EAAI,OAC1C,IAAAE,EACA,OAAAC,EAASC,EAAmB,OAAO,QACnC,WAAAC,EAAaD,EAAmB,WAAW,QAC3C,KAAAE,EAAOF,EAAmB,KAAK,QAC/B,GAAGG,CACL,EAAIC,EAAad,EAAOe,EAAeC,CAAc,EAC/C,CAACC,EAAUC,CAAW,EAAU,WAAgC,IAAI,EACpEC,EAAkBC,EAA+BR,CAAI,EACrDS,EAAmBC,EAA6B,EAChDC,EAAcC,EAAgBvB,EAAckB,EAAiBE,EAAkBH,CAAW,EAChG3B,EAA4B0B,EAAUJ,EAAc,WAAa,MAAS,EAE1E,IAAMY,EAAQZ,EAAc,YAAY,IAAM,QAAaA,EAAc,iBAAiB,IAAM,OAEhG,OACE,gBAACa,EAAoB,KAApB,CACC,KAAMpB,EACN,gBAAiBC,EACjB,IAAKC,EACL,UAAWmB,EAAW,qBAAsBvB,CAAS,EACrD,YAAWQ,EAAO,GAAK,OACvB,MAAOP,EACP,QAASH,GAER0B,EAAW,CAAE,QAAA1B,EAAS,SAAAC,CAAS,EAAIA,GAClC,gCACE,gBAACuB,EAAoB,SAApB,CACC,KAAMD,EAAQ,SAAW,OACxB,GAAGZ,EACJ,IAAKU,EACL,UAAU,0BAETpB,CACH,EAEA,gBAAC,OAAI,UAAU,kCAAkC,EAEhDQ,IAAe,WACd,gBAACe,EAAoB,UAApB,CACC,cAAajB,EACb,YAAY,aACZ,UAAU,2BAEV,gBAACiB,EAAoB,MAApB,CAA0B,UAAU,sBAAsB,CAC7D,EACE,KAEHf,IAAe,aACd,gBAACe,EAAoB,UAApB,CACC,cAAajB,EACb,YAAY,WACZ,UAAU,2BAEV,gBAACiB,EAAoB,MAApB,CAA0B,UAAU,sBAAsB,CAC7D,EACE,KAEHf,IAAe,OACd,gBAACe,EAAoB,OAApB,CAA2B,UAAU,uBAAuB,EAC3D,IACN,CACD,CACH,CAEJ,CAAC,EACD3B,EAAW,YAAc",
6
- "names": ["React", "classNames", "ScrollAreaPrimitive", "useComposedRefs", "OWNS_FOCUS", "useFocusableWhileScrollable", "element", "enabled", "frame", "update", "schedule", "observer", "child", "ScrollArea", "props", "forwardedRef", "asChild", "children", "className", "style", "type", "scrollHideDelay", "dir", "radius", "scrollAreaPropDefs", "scrollbars", "fade", "viewportProps", "extractProps", "widthPropDefs", "heightPropDefs", "viewport", "setViewport", "setEdgesElement", "useScrollEdges", "setThumbViewport", "useThumbSync", "viewportRef", "useComposedRefs", "named", "ScrollAreaPrimitive", "classNames", "getSubtree"]
7
- }
@@ -1,3 +0,0 @@
1
- "use client";
2
- import{a as e}from"./chunk-PT45Q47V.js";var o={...e};export{o as a};
3
- //# sourceMappingURL=chunk-SGJKXIWG.js.map
@@ -1,3 +0,0 @@
1
- "use client";
2
- var e=["normal","start","end","both"],r={trim:{type:"enum",className:"kui-r-lt",values:e,responsive:!0}};export{r as a};
3
- //# sourceMappingURL=chunk-SHLERRO3.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/props/leading-trim.prop.ts"],
4
- "sourcesContent": ["import type { PropDef } from './prop-def.js';\n\nconst leadingTrimValues = ['normal', 'start', 'end', 'both'] as const;\n\nconst leadingTrimPropDef = {\n trim: {\n type: 'enum',\n className: 'kui-r-lt',\n values: leadingTrimValues,\n responsive: true,\n },\n} satisfies {\n trim: PropDef<(typeof leadingTrimValues)[number]>;\n};\n\nexport { leadingTrimPropDef };\n"],
5
- "mappings": ";AAEA,IAAMA,EAAoB,CAAC,SAAU,QAAS,MAAO,MAAM,EAErDC,EAAqB,CACzB,KAAM,CACJ,KAAM,OACN,UAAW,WACX,OAAQD,EACR,WAAY,EACd,CACF",
6
- "names": ["leadingTrimValues", "leadingTrimPropDef"]
7
- }
@@ -1,3 +0,0 @@
1
- "use client";
2
- import{a as s,b as m}from"./chunk-IO43RGNR.js";import{a as p}from"./chunk-SHLERRO3.js";import{a as r}from"./chunk-MXIVYALY.js";import{a as t,b as f,c as i}from"./chunk-Z27REN6T.js";import{a as o}from"./chunk-CLJ6SEGP.js";import{c as e}from"./chunk-HBWBPBSA.js";var a=["h1","h2","h3","h4","h5","h6"],n=["1","2","3","4","5","6","7","8","9"],g={as:{type:"enum",values:a,default:"h2"},...o,size:{type:"enum",className:"kui-r-size",values:n,default:"6",responsive:!0},...m,...i,...s,...p,...f,...t,...e,...r};export{g as a};
3
- //# sourceMappingURL=chunk-SV3CYQY5.js.map
@@ -1,3 +0,0 @@
1
- "use client";
2
- var s=["static","fixed","sticky"],e=["1","2","3","4"],o={position:{type:"enum",values:s,default:"fixed"},size:{type:"enum",values:e,default:"2"}};export{o as a};
3
- //# sourceMappingURL=chunk-U5GQ3IFS.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/navbar.props.tsx"],
4
- "sourcesContent": ["import type { PropDef } from '../props/prop-def.js';\n\nconst positions = ['static', 'fixed', 'sticky'] as const;\nconst sizes = ['1', '2', '3', '4'] as const;\n\nconst navbarRootPropDefs = {\n position: {\n type: 'enum',\n values: positions,\n default: 'fixed',\n },\n size: {\n type: 'enum',\n values: sizes,\n default: '2',\n },\n} satisfies {\n position: PropDef<(typeof positions)[number]>;\n size: PropDef<(typeof sizes)[number]>;\n};\n\nexport { navbarRootPropDefs };\n"],
5
- "mappings": ";AAEA,IAAMA,EAAY,CAAC,SAAU,QAAS,QAAQ,EACxCC,EAAQ,CAAC,IAAK,IAAK,IAAK,GAAG,EAE3BC,EAAqB,CACzB,SAAU,CACR,KAAM,OACN,OAAQF,EACR,QAAS,OACX,EACA,KAAM,CACJ,KAAM,OACN,OAAQC,EACR,QAAS,GACX,CACF",
6
- "names": ["positions", "sizes", "navbarRootPropDefs"]
7
- }
@@ -1,3 +0,0 @@
1
- "use client";
2
- import{a as c}from"./chunk-7VJF6EXN.js";import{a as p}from"./chunk-3H23GRNQ.js";import{a as l}from"./chunk-TGRHRMQI.js";import{c as m}from"./chunk-N3QLHFHB.js";import{a as g}from"./chunk-6UZT3ZLO.js";import{a as s}from"./chunk-SGJKXIWG.js";import{c as n}from"./chunk-5ON3XLRD.js";import{c as a}from"./chunk-OKQAVYW4.js";import{a as w}from"./chunk-VQPANPMI.js";var S={};w(S,{Action:()=>R,Cancel:()=>y,Content:()=>f,Description:()=>d,Root:()=>A,Title:()=>C,Trigger:()=>P});import*as e from"react";import W from"classnames";import{AlertDialog as i}from"radix-ui";var A=t=>e.createElement(i.Root,{...t});A.displayName="AlertDialog.Root";var P=e.forwardRef(({children:t,...o},r)=>e.createElement(i.Trigger,{...o,ref:r,asChild:!0},l(t)));P.displayName="AlertDialog.Trigger";var{align:O,...D}=s,B={align:O},f=e.forwardRef(({align:t,...o},r)=>{let v=n(o,D.size),{className:T}=a({align:t},B),{className:u,forceMount:h,container:E,onCloseAutoFocus:N,...x}=a(v,D);return c(),e.createElement(i.Portal,{container:E,forceMount:h},e.createElement(m,{asChild:!0},e.createElement(i.Overlay,{className:"kui-BaseDialogOverlay kui-AlertDialogOverlay"},e.createElement("div",{className:"kui-BaseDialogScroll kui-AlertDialogScroll"},e.createElement("div",{className:`kui-BaseDialogScrollPadding kui-AlertDialogScrollPadding ${T}`},e.createElement(i.Content,{...x,ref:r,className:W("kui-BaseDialogContent","kui-AlertDialogContent",u),"aria-modal":"true",onCloseAutoFocus:k=>{N?.(k),document.body.style.pointerEvents=""}}))))))});f.displayName="AlertDialog.Content";var C=e.forwardRef((t,o)=>e.createElement(i.Title,{asChild:!0},e.createElement(p,{size:"5",trim:"start",...t,asChild:!1,ref:o})));C.displayName="AlertDialog.Title";var d=e.forwardRef((t,o)=>e.createElement(i.Description,{asChild:!0},e.createElement(g,{as:"p",size:"3",...t,asChild:!1,ref:o})));d.displayName="AlertDialog.Description";var R=e.forwardRef(({children:t,...o},r)=>e.createElement(i.Action,{...o,ref:r,asChild:!0},l(t)));R.displayName="AlertDialog.Action";var y=e.forwardRef(({children:t,...o},r)=>e.createElement(i.Cancel,{...o,ref:r,asChild:!0},l(t)));y.displayName="AlertDialog.Cancel";export{A as a,P as b,f as c,C as d,d as e,R as f,y as g,S as h};
3
- //# sourceMappingURL=chunk-VPRAXHLL.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/alert-dialog.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\nimport { AlertDialog as AlertDialogPrimitive } from 'radix-ui';\n\nimport { alertDialogContentPropDefs } from './alert-dialog.props.js';\nimport { Heading } from './heading.js';\nimport { Text } from './text.js';\nimport { Theme } from './theme.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { useThemeSizeProps } from '../hooks/theme-size.js';\nimport { requireReactElement } from '../helpers/require-react-element.js';\nimport { useBodyPointerEventsCleanup } from '../hooks/use-body-pointer-events-cleanup.js';\n\nimport type { AlertDialogContentOwnProps } from './alert-dialog.props.js';\nimport type { ComponentPropsWithout, RemovedProps, ComponentPropsAs } from '../helpers/component-props.js';\n\ninterface AlertDialogRootProps extends React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Root> {}\nconst AlertDialogRoot: React.FC<AlertDialogRootProps> = (props) => <AlertDialogPrimitive.Root {...props} />;\nAlertDialogRoot.displayName = 'AlertDialog.Root';\n\ntype AlertDialogTriggerElement = React.ElementRef<typeof AlertDialogPrimitive.Trigger>;\ninterface AlertDialogTriggerProps extends ComponentPropsWithout<typeof AlertDialogPrimitive.Trigger, RemovedProps> {}\nconst AlertDialogTrigger = React.forwardRef<AlertDialogTriggerElement, AlertDialogTriggerProps>(({ children, ...props }, forwardedRef) => (\n <AlertDialogPrimitive.Trigger {...props} ref={forwardedRef} asChild>\n {requireReactElement(children)}\n </AlertDialogPrimitive.Trigger>\n));\nAlertDialogTrigger.displayName = 'AlertDialog.Trigger';\n\n// Split once at module scope. `extractProps` memoises on the identity of the\n// prop def objects it is handed, so rebuilding these per render would recompile\n// them on every render.\nconst { align: alignPropDef, ...contentPropDefs } = alertDialogContentPropDefs;\nconst alignPropDefs = { align: alignPropDef };\n\ntype AlertDialogContentElement = React.ElementRef<typeof AlertDialogPrimitive.Content>;\ninterface AlertDialogContentProps extends ComponentPropsWithout<typeof AlertDialogPrimitive.Content, RemovedProps>, AlertDialogContentOwnProps {\n container?: React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Portal>['container'];\n}\nconst AlertDialogContent = React.forwardRef<AlertDialogContentElement, AlertDialogContentProps>(({ align, ...ownProps }, forwardedRef) => {\n const props = useThemeSizeProps(ownProps, contentPropDefs.size);\n const { className: alignClassName } = extractProps({ align }, alignPropDefs);\n\n const { className, forceMount, container, onCloseAutoFocus, ...contentProps } = extractProps(props, contentPropDefs);\n\n // Same stuck pointer-events fallback as Dialog and Sheet.\n useBodyPointerEventsCleanup();\n\n return (\n <AlertDialogPrimitive.Portal container={container} forceMount={forceMount}>\n <Theme asChild>\n <AlertDialogPrimitive.Overlay className=\"kui-BaseDialogOverlay kui-AlertDialogOverlay\">\n <div className=\"kui-BaseDialogScroll kui-AlertDialogScroll\">\n <div className={`kui-BaseDialogScrollPadding kui-AlertDialogScrollPadding ${alignClassName}`}>\n <AlertDialogPrimitive.Content\n {...contentProps}\n ref={forwardedRef}\n className={classNames('kui-BaseDialogContent', 'kui-AlertDialogContent', className)}\n aria-modal=\"true\"\n onCloseAutoFocus={(event) => {\n // Radix returns focus to the trigger unless the caller prevents it.\n onCloseAutoFocus?.(event);\n // Restore pointer-events to body (Radix UI fix for issue #1241)\n document.body.style.pointerEvents = '';\n }}\n />\n </div>\n </div>\n </AlertDialogPrimitive.Overlay>\n </Theme>\n </AlertDialogPrimitive.Portal>\n );\n});\nAlertDialogContent.displayName = 'AlertDialog.Content';\n\ntype AlertDialogTitleElement = React.ElementRef<typeof Heading>;\ntype AlertDialogTitleProps = ComponentPropsWithout<typeof Heading, 'asChild'>;\nconst AlertDialogTitle = React.forwardRef<AlertDialogTitleElement, AlertDialogTitleProps>((props, forwardedRef) => (\n <AlertDialogPrimitive.Title asChild>\n <Heading size=\"5\" trim=\"start\" {...props} asChild={false} ref={forwardedRef} />\n </AlertDialogPrimitive.Title>\n));\nAlertDialogTitle.displayName = 'AlertDialog.Title';\n\ntype AlertDialogDescriptionElement = HTMLParagraphElement;\ntype AlertDialogDescriptionProps = ComponentPropsAs<typeof Text, 'p'>;\nconst AlertDialogDescription = React.forwardRef<AlertDialogDescriptionElement, AlertDialogDescriptionProps>((props, forwardedRef) => (\n <AlertDialogPrimitive.Description asChild>\n <Text as=\"p\" size=\"3\" {...props} asChild={false} ref={forwardedRef} />\n </AlertDialogPrimitive.Description>\n));\nAlertDialogDescription.displayName = 'AlertDialog.Description';\n\ntype AlertDialogActionElement = React.ElementRef<typeof AlertDialogPrimitive.Action>;\ninterface AlertDialogActionProps extends ComponentPropsWithout<typeof AlertDialogPrimitive.Action, RemovedProps> {}\nconst AlertDialogAction = React.forwardRef<AlertDialogActionElement, AlertDialogActionProps>(({ children, ...props }, forwardedRef) => (\n <AlertDialogPrimitive.Action {...props} ref={forwardedRef} asChild>\n {requireReactElement(children)}\n </AlertDialogPrimitive.Action>\n));\nAlertDialogAction.displayName = 'AlertDialog.Action';\n\ntype AlertDialogCancelElement = React.ElementRef<typeof AlertDialogPrimitive.Cancel>;\ninterface AlertDialogCancelProps extends ComponentPropsWithout<typeof AlertDialogPrimitive.Cancel, RemovedProps> {}\nconst AlertDialogCancel = React.forwardRef<AlertDialogCancelElement, AlertDialogCancelProps>(({ children, ...props }, forwardedRef) => (\n <AlertDialogPrimitive.Cancel {...props} ref={forwardedRef} asChild>\n {requireReactElement(children)}\n </AlertDialogPrimitive.Cancel>\n));\nAlertDialogCancel.displayName = 'AlertDialog.Cancel';\n\nexport {\n AlertDialogRoot as Root,\n AlertDialogTrigger as Trigger,\n AlertDialogContent as Content,\n AlertDialogTitle as Title,\n AlertDialogDescription as Description,\n AlertDialogAction as Action,\n AlertDialogCancel as Cancel,\n};\n\nexport type {\n AlertDialogRootProps as RootProps,\n AlertDialogTriggerProps as TriggerProps,\n AlertDialogContentProps as ContentProps,\n AlertDialogTitleProps as TitleProps,\n AlertDialogDescriptionProps as DescriptionProps,\n AlertDialogActionProps as ActionProps,\n AlertDialogCancelProps as CancelProps,\n};\n"],
5
- "mappings": ";wWAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,YAAAE,EAAA,WAAAC,EAAA,YAAAC,EAAA,gBAAAC,EAAA,SAAAC,EAAA,UAAAC,EAAA,YAAAC,IAAA,UAAYC,MAAW,QACvB,OAAOC,MAAgB,aACvB,OAAS,eAAeC,MAA4B,WAepD,IAAMC,EAAmDC,GAAU,gBAACC,EAAqB,KAArB,CAA2B,GAAGD,EAAO,EACzGD,EAAgB,YAAc,mBAI9B,IAAMG,EAA2B,aAA+D,CAAC,CAAE,SAAAC,EAAU,GAAGH,CAAM,EAAGI,IACvH,gBAACH,EAAqB,QAArB,CAA8B,GAAGD,EAAO,IAAKI,EAAc,QAAO,IAChEC,EAAoBF,CAAQ,CAC/B,CACD,EACDD,EAAmB,YAAc,sBAKjC,GAAM,CAAE,MAAOI,EAAc,GAAGC,CAAgB,EAAIC,EAC9CC,EAAgB,CAAE,MAAOH,CAAa,EAMtCI,EAA2B,aAA+D,CAAC,CAAE,MAAAC,EAAO,GAAGC,CAAS,EAAGR,IAAiB,CACxI,IAAMJ,EAAQa,EAAkBD,EAAUL,EAAgB,IAAI,EACxD,CAAE,UAAWO,CAAe,EAAIC,EAAa,CAAE,MAAAJ,CAAM,EAAGF,CAAa,EAErE,CAAE,UAAAO,EAAW,WAAAC,EAAY,UAAAC,EAAW,iBAAAC,EAAkB,GAAGC,CAAa,EAAIL,EAAaf,EAAOO,CAAe,EAGnH,OAAAc,EAA4B,EAG1B,gBAACpB,EAAqB,OAArB,CAA4B,UAAWiB,EAAW,WAAYD,GAC7D,gBAACK,EAAA,CAAM,QAAO,IACZ,gBAACrB,EAAqB,QAArB,CAA6B,UAAU,gDACtC,gBAAC,OAAI,UAAU,8CACb,gBAAC,OAAI,UAAW,4DAA4Da,CAAc,IACxF,gBAACb,EAAqB,QAArB,CACE,GAAGmB,EACJ,IAAKhB,EACL,UAAWmB,EAAW,wBAAyB,yBAA0BP,CAAS,EAClF,aAAW,OACX,iBAAmBQ,GAAU,CAE3BL,IAAmBK,CAAK,EAExB,SAAS,KAAK,MAAM,cAAgB,EACtC,EACF,CACF,CACF,CACF,CACF,CACF,CAEJ,CAAC,EACDd,EAAmB,YAAc,sBAIjC,IAAMe,EAAyB,aAA2D,CAACzB,EAAOI,IAChG,gBAACH,EAAqB,MAArB,CAA2B,QAAO,IACjC,gBAACyB,EAAA,CAAQ,KAAK,IAAI,KAAK,QAAS,GAAG1B,EAAO,QAAS,GAAO,IAAKI,EAAc,CAC/E,CACD,EACDqB,EAAiB,YAAc,oBAI/B,IAAME,EAA+B,aAAuE,CAAC3B,EAAOI,IAClH,gBAACH,EAAqB,YAArB,CAAiC,QAAO,IACvC,gBAAC2B,EAAA,CAAK,GAAG,IAAI,KAAK,IAAK,GAAG5B,EAAO,QAAS,GAAO,IAAKI,EAAc,CACtE,CACD,EACDuB,EAAuB,YAAc,0BAIrC,IAAME,EAA0B,aAA6D,CAAC,CAAE,SAAA1B,EAAU,GAAGH,CAAM,EAAGI,IACpH,gBAACH,EAAqB,OAArB,CAA6B,GAAGD,EAAO,IAAKI,EAAc,QAAO,IAC/DC,EAAoBF,CAAQ,CAC/B,CACD,EACD0B,EAAkB,YAAc,qBAIhC,IAAMC,EAA0B,aAA6D,CAAC,CAAE,SAAA3B,EAAU,GAAGH,CAAM,EAAGI,IACpH,gBAACH,EAAqB,OAArB,CAA6B,GAAGD,EAAO,IAAKI,EAAc,QAAO,IAC/DC,EAAoBF,CAAQ,CAC/B,CACD,EACD2B,EAAkB,YAAc",
6
- "names": ["alert_dialog_exports", "__export", "AlertDialogAction", "AlertDialogCancel", "AlertDialogContent", "AlertDialogDescription", "AlertDialogRoot", "AlertDialogTitle", "AlertDialogTrigger", "React", "classNames", "AlertDialogPrimitive", "AlertDialogRoot", "props", "AlertDialogPrimitive", "AlertDialogTrigger", "children", "forwardedRef", "requireReactElement", "alignPropDef", "contentPropDefs", "alertDialogContentPropDefs", "alignPropDefs", "AlertDialogContent", "align", "ownProps", "useThemeSizeProps", "alignClassName", "extractProps", "className", "forceMount", "container", "onCloseAutoFocus", "contentProps", "useBodyPointerEventsCleanup", "Theme", "classNames", "event", "AlertDialogTitle", "Heading", "AlertDialogDescription", "Text", "AlertDialogAction", "AlertDialogCancel"]
7
- }
@@ -1,3 +0,0 @@
1
- "use client";
2
- import{a as Fe,b as Be}from"./chunk-QH64BDXO.js";import{a as Ve}from"./chunk-YWG476GC.js";import{a as De}from"./chunk-YOSCUA6Z.js";import{c as se,d as ie,e as ce,h as Ee,i as Me,j as Te}from"./chunk-EAIQIW23.js";import{a as Oe}from"./chunk-CQG4U5BR.js";import{a as Ae}from"./chunk-AQ7VUGQQ.js";import{a as j,b as He,c as we,d as Ne,g as Ie}from"./chunk-XUCR7L4G.js";import{a as Le,b as de}from"./chunk-3QWGSRYC.js";import{a as ue,b as pe,c as fe}from"./chunk-VVBSYWUA.js";import{e as le,f as be,h as ge,i as ee,j as Ce,k as ae,l as re,n as ye,o as te}from"./chunk-GHWEXMF6.js";import{b as xe,c as ke}from"./chunk-QKCNGEX4.js";import{a as ze}from"./chunk-WEBNIUEX.js";import{b as ve}from"./chunk-5ON3XLRD.js";import{a as Se}from"./chunk-G66WDIIV.js";import{a as Xe}from"./chunk-VQPANPMI.js";var nt={};Xe(nt,{Bottom:()=>Oe,Content:()=>qe,Header:()=>Ke,Inspector:()=>Ae,Left:()=>$e,PaneFooter:()=>Me,PaneHeader:()=>Ee,Panel:()=>Re,Rail:()=>je,Root:()=>We,Scroll:()=>Te,Sidebar:()=>De,Trigger:()=>Ge,useResponsivePresentation:()=>Ve,useShell:()=>Be,useSidebarMode:()=>Fe});import*as e from"react";import _ from"classnames";import{Slot as Je}from"radix-ui";import{useComposedRefs as he}from"radix-ui/internal";var me=0;function _e(a){me=Math.max(0,me+a);let r=document.documentElement;me>0?r.setAttribute("data-kui-shell-lock",""):r.removeAttribute("data-kui-shell-lock")}var Pe="data-kui-shell-inert",Qe=30;function q(a,r){return r===null||r===a||r===a.body||r===a.documentElement}function Ue(a,r,s){for(let u of a.querySelectorAll("[data-shell-trigger][aria-controls]"))if(!(u.getAttribute("aria-controls")!==r||u.closest("[inert]"))&&!(s&&!s.some(P=>P.contains(u))))return u;return null}var Ye={values:["1","2","3"]},We=e.forwardRef(({className:a,children:r,height:s="full",size:u,style:P,onKeyDown:A,onFocus:L,...x},k)=>{let b=ve(u,Ye),[i]=e.useState(be),R=e.useCallback(t=>ge(i,t),[i]);e.useSyncExternalStore(R,()=>i.version,()=>0);let f=e.useRef(null),C=he(k,f),[y,S]=e.useState(()=>new Set),E=e.useCallback(t=>{S(n=>n.has(t)?n:new Set(n).add(t))},[]),M=e.useCallback(t=>{S(n=>{if(!n.has(t))return n;let o=new Set(n);return o.delete(t),o})},[]),m=e.useMemo(()=>({registerInset:E,unregisterInset:M}),[E,M]),c=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,U=s!=="full"&&s!=="auto",w=e.useCallback(()=>{let t=f.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 d=n.some(z=>o===z||o.contains(z));n.length===0||d?o.hasAttribute(Pe)&&(o.removeAttribute(Pe),o.inert=!1):o.inert||(o.setAttribute(Pe,""),o.inert=!0)}},[H]),W=e.useRef(null),G=e.useRef([]),X=e.useRef(null),D=e.useRef(!1),T=e.useRef(0),N=e.useCallback(()=>{T.current&&cancelAnimationFrame(T.current),T.current=0},[]),J=e.useCallback((t,n)=>{N();let o=0,d=()=>{if(T.current=0,!!t.isConnected){if(n(t.ownerDocument.activeElement)){t.focus({preventScroll:!0});return}o+=1,o<Qe&&(T.current=requestAnimationFrame(d))}};T.current=requestAnimationFrame(d)},[N]);e.useEffect(()=>()=>{N(),D.current&&(D.current=!1,_e(-1))},[N]),e.useEffect(()=>{let t=f.current;if(!t)return;let n=t.ownerDocument,o=H(),d=o.map(l=>l.el),z=!U&&o.length>0;z!==D.current&&(D.current=z,_e(z?1:-1));let B=G.current;G.current=o;let O=B.filter(l=>{if(d.includes(l.el))return!1;let p=i.entries.get(l.name);return!l.el.isConnected||!p||p.el!==l.el||p.value==="closed"}),$=l=>l!==null&&O.some(p=>p.el.contains(l));if(B.length===0&&o.length>0){let l=n.activeElement,p=l instanceof HTMLElement&&!q(n,l)&&!d.some(h=>h.contains(l))?l:null;if(p&&!t.contains(p)){let h=X.current;h&&h.isConnected&&!d.some(Z=>Z.contains(h))&&(p=h)}W.current=p}if(w(),o.length===0){let l=W.current;if(W.current=null,O.length===0)return;let h=(g=>g!==null&&g.isConnected&&!g.closest("[inert]")&&!$(g))(l)?l:null;for(let g of O)h??(h=Ue(n,g.id));if(!h)return;let Z=g=>q(n,g)||$(g);Z(n.activeElement)?h.focus({preventScroll:!0}):J(h,Z);return}if(O.length>0){let l=n.activeElement;if(q(n,l)||$(l)){let p=null;for(let h of O)p??(p=Ue(n,h.id,d));(p??d[d.length-1]).focus({preventScroll:!0})}}let V=d.filter(l=>!B.some(p=>p.el===l)),oe=n.activeElement;V.length>0&&!d.some(l=>l.contains(oe))&&(V[0].focus({preventScroll:!0}),J(V[0],l=>q(n,l)||l instanceof Element&&l.closest("[inert]")!==null))}),e.useEffect(()=>{let t=f.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 K=t=>{A?.(t),!(t.key!=="Escape"||t.defaultPrevented||v===0)&&(c(),t.stopPropagation())};e.useEffect(()=>{let t=f.current;if(!t||v===0)return;let n=t.ownerDocument,o=d=>{d.key!=="Escape"||d.defaultPrevented||!q(n,d.target)||c()};return n.addEventListener("keydown",o),()=>n.removeEventListener("keydown",o)},[v,c]);let Q=t=>{L?.(t),t.target instanceof HTMLElement&&f.current?.contains(t.target)&&(X.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=s==="full"?{}:s==="auto"?{height:"auto"}:typeof s=="number"?{height:`${s}px`}:{height:s};return e.createElement(Ce.Provider,{value:i},e.createElement(se.Provider,{value:b},e.createElement(ie.Provider,{value:!1},e.createElement(ye.Provider,{value:m},e.createElement("div",{...x,ref:C,className:_("kui-ShellRoot",a),"data-height":s==="auto"?"auto":void 0,"data-has-inset":y.size>0||void 0,"data-overlay-live":v>0||void 0,onKeyDown:K,onFocus:Q,style:{...ne,...F?{"--shell-rail-offset":F}:{},...P}},r,e.createElement("div",{className:"kui-ShellScrim","aria-hidden":!0,onClick:c}))))))});We.displayName="Shell.Root";var Ke=e.forwardRef(({className:a,height:r=64,style:s,...u},P)=>e.createElement("header",{...u,ref:P,className:_("kui-ShellHeader",a),style:{...s,"--shell-header-height":`${r}px`}}));Ke.displayName="Shell.Header";var $e=e.forwardRef(({children:a},r)=>(e.useEffect(()=>{},[]),e.createElement(e.Fragment,null,a)));$e.displayName="Shell.Left";var Ze={controlled:"open",default:"defaultOpen"},je=e.forwardRef((a,r)=>{let{className:s,presentation:u,expandedSize:P=64,collapsible:A,onExpand:L,onCollapse:x,children:k,style:b,open:i,defaultOpen:R,onOpenChange:f,inset:C,id:y,...S}=a,{table:E,attributes:M}=fe(u,"fixed"),m=ue({name:"rail",label:"Rail",propNames:Ze,id:y,controlled:j(i),defaultValue:j(R),presentationTable:E,builtIn:He,onChange:(H,v)=>f?.(H!=="closed",{reason:v}),onExpand:L,onCollapse:x,size:P});te("rail",C);let c=he(r,m.setElement);return e.createElement("div",{...S,role:S.role??"navigation",id:m.id,ref:c,className:_("kui-ShellPane","kui-ShellRail",s),...pe(m,M),"data-inset":C||void 0,tabIndex:m.overlaying?-1:S.tabIndex,style:{...b,"--rail-size":`${P}px`}},e.createElement(et,null,k))});je.displayName="Shell.Rail";function et({children:a}){let r=e.useContext(se);return e.createElement("div",{className:_("kui-ShellRailContent",`kui-r-size-${r}`)},e.createElement(ce,{presentation:"thin"},a))}var tt={controlled:"open",default:"defaultOpen"},Re=e.forwardRef((a,r)=>{let{className:s,presentation:u,defaultOpen:P,open:A,onOpenChange:L,size:x,defaultSize:k,expandedSize:b=288,minSize:i=100,maxSize:R=800,resizable:f=!1,collapsible:C=!0,onExpand:y,onCollapse:S,onResize:E,onResizeStart:M,onResizeEnd:m,snapPoints:c,snapTolerance:H,collapseThreshold:v,paneId:U,persistence:w,children:W,style:G,onSizeChange:X,sizeUpdate:D,sizeUpdateMs:T=50,inset:N,id:J,...K}=a,Q=ae("Shell.Panel"),I=re(Q,"rail"),Y=fe(u,"fixed"),F=u===void 0,ne=F?I?.presentationTable??le:Y.table,t=F?{"data-presentation-follows":""}:Y.attributes,n=ue({name:"panel",label:"Panel",propNames:tt,id:J,controlled:j(A),defaultValue:j(P),presentationTable:ne,builtIn:we,onChange:(V,oe)=>L?.(V!=="closed",{reason:oe}),onExpand:y,onCollapse:S,size:b});te("panel",N),e.useEffect(()=>{(c!==void 0||v!==void 0||U!==void 0||w!==void 0)&&void 0},[c,v,U,w]);let o=e.useRef(null),d=he(r,n.setElement,o),z=xe({name:"panel",elementId:n.id,elementRef:o,cssVarName:"--panel-size",orientation:"vertical",edge:"end",growth:Ne,expandedSize:b,minSize:i,maxSize:R,resizable:f,collapsible:C,size:x,defaultSize:k,onSizeChange:X,sizeUpdate:D,sizeUpdateMs:T,onResize:E,onResizeStart:M,onResizeEnd:m,snapPoints:c,snapTolerance:H,collapseThreshold:v,paneId:U,persistence:w,overlaying:n.overlaying,overlayingNow:()=>(F?Q.entries.get("rail")?.presentationTable??le:Y.table)[Se()]==="overlay",requestCollapse:()=>n.setValue("closed","toggle"),requestToggle:()=>n.toggle("toggle")}),{handles:B,content:O}=ke(W,de),$=f&&n.shown!==!1&&!n.overlaying?e.createElement(ze.Provider,{value:z},B.length>0?B:e.createElement(Le,null)):null;return e.createElement("div",{...Ie(K),role:K.role??"navigation",id:n.id,ref:d,className:_("kui-ShellPane","kui-ShellPanel",s),...pe(n,t),"data-inset":N||void 0,tabIndex:n.overlaying?-1:K.tabIndex,style:{...G,"--panel-expanded-size":`${b}px`}},e.createElement("div",{className:"kui-ShellPanelContent"},e.createElement(ce,null,O)),$)});Re.displayName="Shell.Panel";Re.Handle=de;var qe=e.forwardRef(({className:a,inset:r,children:s,...u},P)=>(te("content",r),e.createElement("main",{...u,ref:P,className:_("kui-ShellContent",a),"data-inset":r||void 0},e.createElement(ie.Provider,{value:!0},s))));qe.displayName="Shell.Content";var Ge=e.forwardRef(({target:a,action:r="toggle",peekOnHover:s,asChild:u=!1,onClick:P,onMouseEnter:A,onMouseLeave:L,children:x,...k},b)=>{let i=ae("Shell.Trigger");e.useEffect(()=>{a==="left"&&void 0,s&&void 0},[a,s]);let R=a==="left"?"rail":a,f=re(i,R),C=f?.value===void 0?void 0:f.value!=="closed",y=m=>{if(P?.(m),m.defaultPrevented)return;let c=i.entries.get(R);c&&(i.peek===R&&ee(i,null),r==="toggle"?c.toggle("toggle"):r==="expand"?c.setValue("open","toggle"):c.setValue("closed","toggle"))},S=m=>{if(A?.(m),!s)return;let c=i.entries.get(R);c&&c.value==="closed"&&c.presentation!=="overlay"&&ee(i,R)},E=m=>{L?.(m),s&&i.peek===R&&ee(i,null)},M=u?Je.Root:"button";return e.createElement(M,{...!u&&{type:"button"},"aria-controls":f?.id,"aria-expanded":C,...k,ref:b,onClick:y,onMouseEnter:S,onMouseLeave:E,"data-shell-trigger":a,"data-shell-action":r},x)});Ge.displayName="Shell.Trigger";export{We as a,Ke as b,$e as c,je as d,Re as e,qe as f,Ge as g,nt as h};
3
- //# sourceMappingURL=chunk-VRQEWMC6.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 { Slot } from 'radix-ui';\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 type { SidebarPublicProps } from './_internal/shell-sidebar.js';\nimport { Bottom } from './_internal/shell-bottom.js';\nimport type { BottomPublicProps } from './_internal/shell-bottom.js';\nimport { Inspector } from './_internal/shell-inspector.js';\nimport type { InspectorPublicProps } 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 '../hooks/theme-size.js';\nimport { PaneChromeScope, PaneFooter, PaneHeader, Scroll, ShellContentContext, ShellSizeContext } from './_internal/pane-chrome.js';\nimport type { PaneSize, PaneHeaderProps, PaneFooterProps, ScrollProps } 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 <ShellContentContext.Provider value={false}>\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 </ShellContentContext.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 role={domProps.role ?? 'navigation'}\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 role={domProps.role ?? 'navigation'}\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\n/**\n * The work area. It scrolls as it is; with a `Shell.Scroll` child it becomes a column and the\n * Scroll scrolls instead, so a `Shell.PaneHeader float` beside it stays pinned over the page.\n */\nconst Content = React.forwardRef<HTMLElement, ShellContentProps>(({ className, inset, children, ...props }, ref) => {\n useInsetRegistration('content', inset);\n return (\n <main {...props} ref={ref} className={classNames('kui-ShellContent', className)} data-inset={inset || undefined}>\n <ShellContentContext.Provider value={true}>{children}</ShellContentContext.Provider>\n </main>\n );\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 * Renders the single child in place of the trigger's own button, with the trigger's click,\n * `aria-controls`, `aria-expanded` and data attributes merged onto it. Use it to make a\n * `Button` the trigger: `<Shell.Trigger asChild><Button iconOnly aria-label=\"Toggle sidebar\">\u2026</Button></Shell.Trigger>`.\n */\n asChild?: boolean;\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. With `asChild` the\n * child is the button, and its own `type` stands.\n */\nconst Trigger = React.forwardRef<HTMLButtonElement, TriggerProps>(({ target, action = 'toggle', peekOnHover, asChild = false, 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 const Comp = asChild ? Slot.Root : 'button';\n return (\n <Comp\n // A button's default type is `submit`. Stated before the spread, so a consumer's own wins.\n // An asChild child states its own (Button already says `button`; a link has none), so the\n // key is left off rather than passed as undefined.\n {...(!asChild && { type: 'button' as const })}\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 </Comp>\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 type ShellRootProps as RootProps,\n type ShellHeaderProps as HeaderProps,\n type RailProps,\n type PanelPublicProps as PanelProps,\n type SidebarPublicProps as SidebarProps,\n type ShellContentProps as ContentProps,\n type InspectorPublicProps as InspectorProps,\n type BottomPublicProps as BottomProps,\n type TriggerProps,\n type PaneHeaderProps,\n type PaneFooterProps,\n type ScrollProps,\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", "Slot", "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", "ShellContentContext", "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", "asChild", "onClick", "onMouseEnter", "onMouseLeave", "name", "shown", "handleClick", "current", "setShellPeek", "handleMouseEnter", "handleMouseLeave", "Comp", "Slot"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/sheet.tsx"],
4
- "sourcesContent": ["'use client';\n\n/**\n * Sheet\n *\n * A side-placed overlay built on top of Radix Dialog. It inherits accessibility,\n * focus management, overlay behavior, and sizing scales from the base dialog, and\n * adds side placement and slide motion suited for navigation panels and drawers.\n *\n * Structure mirrors Dialog:\n * - Root, Trigger, Content, Title, Description, Close\n *\n * Notes\n * - Side: set with `side` on `Sheet.Content`. Aliases: `left` \u2192 `start`, `right` \u2192 `end`.\n * - Sizing: reuses Dialog content prop defs (width/min/max/height/size). Size follows the\n * Theme size; start/end sheets cap at the size's overlay width unless maxWidth is set.\n * - A11y: provide an accessible name via `Sheet.Title` or `aria-label` on `Sheet.Content`.\n * Radix owns the focus trap, initial focus and the return of focus to the trigger.\n *\n * Example\n * <Sheet.Root>\n * <Sheet.Trigger>\n * <Button>Open</Button>\n * </Sheet.Trigger>\n * <Sheet.Content side=\"end\" width={{ initial: '280px', md: '360px' }}>\n * <Sheet.Title>Details</Sheet.Title>\n * ...\n * <Sheet.Close>\n * <Button>Close</Button>\n * </Sheet.Close>\n * </Sheet.Content>\n * </Sheet.Root>\n */\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Dialog as DialogPrimitive } from 'radix-ui';\n\nimport { dialogContentPropDefs } from './dialog.props.js';\nimport type { DialogContentOwnProps } from './dialog.props.js';\nimport { Theme } from './theme.js';\nimport { Heading } from './heading.js';\nimport { Text } from './text.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { useThemeSizeProps } from '../hooks/theme-size.js';\nimport { requireReactElement } from '../helpers/require-react-element.js';\nimport { useBodyPointerEventsCleanup } from '../hooks/use-body-pointer-events-cleanup.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { HeadingProps } from './heading.js';\n\n/**\n * Supported sides for the Sheet.\n * Aliases are normalized RTL-aware: `left` \u2192 `start`, `right` \u2192 `end`.\n */\ntype SheetSide = 'start' | 'end' | 'top' | 'bottom' | 'left' | 'right';\n\n/**\n * Sheet is a side-placed overlay built on the Dialog primitive.\n * It reuses Dialog's accessibility, focus, overlay, and size scales, while adding side placement and slide motion.\n */\n\n// Root\n/**\n * Props for `Sheet.Root` (Radix Dialog root with `modal` forced on).\n */\ninterface SheetRootProps extends ComponentPropsWithout<typeof DialogPrimitive.Root, 'modal'> {}\nconst Root: React.FC<SheetRootProps> = (props) => <DialogPrimitive.Root {...props} modal />;\nRoot.displayName = 'Sheet.Root';\n\n// Trigger\n/** Element type for `Sheet.Trigger`. */\ntype SheetTriggerElement = React.ElementRef<typeof DialogPrimitive.Trigger>;\n/** Props for `Sheet.Trigger` (expects a single element child). */\ninterface SheetTriggerProps extends ComponentPropsWithout<typeof DialogPrimitive.Trigger, RemovedProps> {}\nconst Trigger = React.forwardRef<SheetTriggerElement, SheetTriggerProps>(({ children, ...props }, ref) => (\n <DialogPrimitive.Trigger {...props} ref={ref} asChild>\n {requireReactElement(children)}\n </DialogPrimitive.Trigger>\n));\nTrigger.displayName = 'Sheet.Trigger';\n\n// Content\n/** Element type for `Sheet.Content`. */\n// Reuse dialog content prop defs for size/width/height tokens.\n// Built once at module scope: `extractProps` memoises on the identity of the\n// prop def objects it is handed, so rebuilding these per render would recompile\n// them every time a sheet renders.\nconst { align: _alignPropDef, ...dialogPropDefsForSheet } = dialogContentPropDefs;\nconst sheetPropDefs = dialogPropDefsForSheet;\n\n/** Counts the Sheet.Title elements mounted inside a Sheet.Content, for the dev-only name check. */\nconst SheetTitleCountContext = React.createContext<React.MutableRefObject<number> | null>(null);\n\ntype SheetContentElement = React.ElementRef<typeof DialogPrimitive.Content>;\ninterface SheetContentProps\n extends ComponentPropsWithout<typeof DialogPrimitive.Content, RemovedProps>,\n Omit<DialogContentOwnProps, 'align'> {\n /** Side where the Sheet should appear. `left`/`right` alias to `start`/`end`. */\n side?: SheetSide;\n /** Optional DOM container to portal into. Defaults to `document.body`. */\n container?: React.ComponentPropsWithoutRef<typeof DialogPrimitive.Portal>['container'];\n}\n\n/**\n * Renders the Sheet panel. Normalizes left/right to logical start/end and\n * forwards dialog sizing props. Provide an accessible name via `Sheet.Title`\n * or `aria-label`.\n */\nconst Content = React.forwardRef<SheetContentElement, SheetContentProps>((allProps, forwardedRef) => {\n const { side = 'start', forceMount, container, className, ...ownProps } = allProps;\n const restProps = useThemeSizeProps(ownProps, sheetPropDefs.size);\n const normalizedSideMap: Record<SheetSide, 'start' | 'end' | 'top' | 'bottom'> = {\n left: 'start',\n right: 'end',\n start: 'start',\n end: 'end',\n top: 'top',\n bottom: 'bottom',\n };\n const normalizedSide = normalizedSideMap[side];\n // Size/width/height class names come from the dialog defs \u2014 see `sheetPropDefs`.\n const { className: extractedClassName, ...contentProps } = extractProps(restProps, sheetPropDefs);\n\n // Dev-only a11y guard: the panel needs a name. A Sheet.Title anywhere inside counts it\n // in a layout effect, which runs before this ref is attached, so nesting doesn't matter.\n const titleCountRef = React.useRef(0);\n const combinedRef = React.useCallback(\n (node: HTMLDivElement | null) => {\n if (typeof forwardedRef === 'function') {\n forwardedRef(node);\n } else if (forwardedRef) {\n forwardedRef.current = node;\n }\n if (process.env.NODE_ENV !== 'production' && node) {\n const hasName = titleCountRef.current > 0 || Boolean(node.getAttribute('aria-label')) || Boolean(node.getAttribute('aria-labelledby'));\n if (!hasName) {\n console.warn('Sheet.Content: Missing accessible name. Include Sheet.Title inside it or provide aria-label.');\n }\n }\n },\n [forwardedRef],\n );\n\n useBodyPointerEventsCleanup();\n\n return (\n <DialogPrimitive.Portal container={container} forceMount={forceMount}>\n <SheetTitleCountContext.Provider value={titleCountRef}>\n <Theme asChild>\n <DialogPrimitive.Overlay className=\"kui-BaseDialogOverlay kui-DialogOverlay kui-SheetOverlay\">\n <DialogPrimitive.Content\n {...contentProps}\n ref={combinedRef}\n className={classNames('kui-BaseDialogContent', 'kui-SheetContent', className, extractedClassName)}\n data-side={normalizedSide}\n aria-modal=\"true\"\n />\n </DialogPrimitive.Overlay>\n </Theme>\n </SheetTitleCountContext.Provider>\n </DialogPrimitive.Portal>\n );\n});\nContent.displayName = 'Sheet.Content';\n\n// Title - renders as Heading with sensible defaults\ntype SheetTitleElement = React.ElementRef<typeof Heading>;\ntype SheetTitleProps = HeadingProps;\n/** Accessible title for the Sheet. Renders as Heading with sensible defaults. */\nconst Title = React.forwardRef<SheetTitleElement, SheetTitleProps>(({ size = '4', weight = 'medium', ...props }, ref) => {\n const titleCountRef = React.useContext(SheetTitleCountContext);\n React.useLayoutEffect(() => {\n if (!titleCountRef) return;\n titleCountRef.current += 1;\n return () => {\n titleCountRef.current -= 1;\n };\n }, [titleCountRef]);\n return (\n <DialogPrimitive.Title asChild>\n <Heading ref={ref} size={size} weight={weight} {...props} />\n </DialogPrimitive.Title>\n );\n});\nTitle.displayName = 'Sheet.Title';\n\n// Description - renders as Text with sensible defaults\ntype SheetDescriptionElement = React.ElementRef<typeof Text>;\ntype SheetDescriptionProps = React.ComponentPropsWithoutRef<typeof Text>;\n/** Supplementary description text for Sheet content. Renders as Text with sensible defaults. */\nconst Description = React.forwardRef<SheetDescriptionElement, SheetDescriptionProps>(({ size = '2', emphasis = 'medium', ...rest }, ref) => (\n <DialogPrimitive.Description asChild>\n <Text ref={ref} size={size} emphasis={emphasis} {...rest} />\n </DialogPrimitive.Description>\n));\nDescription.displayName = 'Sheet.Description';\n\ntype SheetCloseElement = React.ElementRef<typeof DialogPrimitive.Close>;\ninterface SheetCloseProps extends ComponentPropsWithout<typeof DialogPrimitive.Close, RemovedProps> {}\n/** Close button for the Sheet. Expects a single element child rendered via `asChild`. */\nconst Close = React.forwardRef<SheetCloseElement, SheetCloseProps>(({ children, ...props }, ref) => (\n <DialogPrimitive.Close {...props} ref={ref} asChild>\n {requireReactElement(children)}\n </DialogPrimitive.Close>\n));\nClose.displayName = 'Sheet.Close';\n\nexport { Root, Trigger, Content, Title, Description, Close };\nexport type {\n SheetRootProps as RootProps,\n SheetTriggerProps as TriggerProps,\n SheetContentProps as ContentProps,\n SheetTitleProps as TitleProps,\n SheetDescriptionProps as DescriptionProps,\n SheetCloseProps as CloseProps,\n};\n"],
5
- "mappings": ";mWAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,WAAAE,EAAA,YAAAC,EAAA,gBAAAC,EAAA,SAAAC,EAAA,UAAAC,EAAA,YAAAC,IAkCA,UAAYC,MAAW,QACvB,OAAOC,MAAgB,aACvB,OAAS,UAAUC,MAAuB,WA+B1C,IAAMC,EAAkCC,GAAU,gBAACC,EAAgB,KAAhB,CAAsB,GAAGD,EAAO,MAAK,GAAC,EACzFD,EAAK,YAAc,aAOnB,IAAMG,EAAgB,aAAmD,CAAC,CAAE,SAAAC,EAAU,GAAGH,CAAM,EAAGI,IAChG,gBAACH,EAAgB,QAAhB,CAAyB,GAAGD,EAAO,IAAKI,EAAK,QAAO,IAClDC,EAAoBF,CAAQ,CAC/B,CACD,EACDD,EAAQ,YAAc,gBAQtB,GAAM,CAAE,MAAOI,EAAe,GAAGC,CAAuB,EAAIC,EACtDC,EAAgBF,EAGhBG,EAA+B,gBAAqD,IAAI,EAiBxFC,EAAgB,aAAmD,CAACC,EAAUC,IAAiB,CACnG,GAAM,CAAE,KAAAC,EAAO,QAAS,WAAAC,EAAY,UAAAC,EAAW,UAAAC,EAAW,GAAGC,CAAS,EAAIN,EACpEO,EAAYC,EAAkBF,EAAUT,EAAc,IAAI,EAS1DY,EAR2E,CAC/E,KAAM,QACN,MAAO,MACP,MAAO,QACP,IAAK,MACL,IAAK,MACL,OAAQ,QACV,EACyCP,CAAI,EAEvC,CAAE,UAAWQ,EAAoB,GAAGC,CAAa,EAAIC,EAAaL,EAAWV,CAAa,EAI1FgB,EAAsB,SAAO,CAAC,EAC9BC,EAAoB,cACvBC,GAAgC,CAC3B,OAAOd,GAAiB,WAC1BA,EAAac,CAAI,EACRd,IACTA,EAAa,QAAUc,EAQ3B,EACA,CAACd,CAAY,CACf,EAEA,OAAAe,EAA4B,EAG1B,gBAAC3B,EAAgB,OAAhB,CAAuB,UAAWe,EAAW,WAAYD,GACxD,gBAACL,EAAuB,SAAvB,CAAgC,MAAOe,GACtC,gBAACI,EAAA,CAAM,QAAO,IACZ,gBAAC5B,EAAgB,QAAhB,CAAwB,UAAU,4DACjC,gBAACA,EAAgB,QAAhB,CACE,GAAGsB,EACJ,IAAKG,EACL,UAAWI,EAAW,wBAAyB,mBAAoBb,EAAWK,CAAkB,EAChG,YAAWD,EACX,aAAW,OACb,CACF,CACF,CACF,CACF,CAEJ,CAAC,EACDV,EAAQ,YAAc,gBAMtB,IAAMoB,EAAc,aAA+C,CAAC,CAAE,KAAAC,EAAO,IAAK,OAAAC,EAAS,SAAU,GAAGjC,CAAM,EAAGI,IAAQ,CACvH,IAAMqB,EAAsB,aAAWf,CAAsB,EAC7D,OAAM,kBAAgB,IAAM,CAC1B,GAAKe,EACL,OAAAA,EAAc,SAAW,EAClB,IAAM,CACXA,EAAc,SAAW,CAC3B,CACF,EAAG,CAACA,CAAa,CAAC,EAEhB,gBAACxB,EAAgB,MAAhB,CAAsB,QAAO,IAC5B,gBAACiC,EAAA,CAAQ,IAAK9B,EAAK,KAAM4B,EAAM,OAAQC,EAAS,GAAGjC,EAAO,CAC5D,CAEJ,CAAC,EACD+B,EAAM,YAAc,cAMpB,IAAMI,EAAoB,aAA2D,CAAC,CAAE,KAAAH,EAAO,IAAK,SAAAI,EAAW,SAAU,GAAGC,CAAK,EAAGjC,IAClI,gBAACH,EAAgB,YAAhB,CAA4B,QAAO,IAClC,gBAACqC,EAAA,CAAK,IAAKlC,EAAK,KAAM4B,EAAM,SAAUI,EAAW,GAAGC,EAAM,CAC5D,CACD,EACDF,EAAY,YAAc,oBAK1B,IAAMI,EAAc,aAA+C,CAAC,CAAE,SAAApC,EAAU,GAAGH,CAAM,EAAGI,IAC1F,gBAACH,EAAgB,MAAhB,CAAuB,GAAGD,EAAO,IAAKI,EAAK,QAAO,IAChDC,EAAoBF,CAAQ,CAC/B,CACD,EACDoC,EAAM,YAAc",
6
- "names": ["sheet_exports", "__export", "Close", "Content", "Description", "Root", "Title", "Trigger", "React", "classNames", "DialogPrimitive", "Root", "props", "DialogPrimitive", "Trigger", "children", "ref", "requireReactElement", "_alignPropDef", "dialogPropDefsForSheet", "dialogContentPropDefs", "sheetPropDefs", "SheetTitleCountContext", "Content", "allProps", "forwardedRef", "side", "forceMount", "container", "className", "ownProps", "restProps", "useThemeSizeProps", "normalizedSide", "extractedClassName", "contentProps", "extractProps", "titleCountRef", "combinedRef", "node", "useBodyPointerEventsCleanup", "Theme", "classNames", "Title", "size", "weight", "Heading", "Description", "emphasis", "rest", "Text", "Close"]
7
- }
@@ -1,3 +0,0 @@
1
- "use client";
2
- import{a as t}from"./chunk-L54FWKJE.js";var o={content:{type:"ReactNode",required:!0},width:t.width,minWidth:t.minWidth,maxWidth:{...t.maxWidth,default:"360px"}};export{o as a};
3
- //# sourceMappingURL=chunk-WCGQ4IDE.js.map
@@ -1,2 +0,0 @@
1
- "use client";
2
- //# sourceMappingURL=chunk-WH7PQSSG.js.map
@@ -1,3 +0,0 @@
1
- "use client";
2
- import{a as i}from"./chunk-CAAEEHGQ.js";import{b as r}from"./chunk-Y2BTPKK6.js";import{c as p}from"./chunk-OKQAVYW4.js";import*as o from"react";import b from"classnames";import{Slot as D}from"radix-ui";var R=o.forwardRef((s,n)=>{let{asChild:a,className:l,children:m,color:c,radius:h,tooltip:t,tooltipSide:f="top",tooltipAlign:d="center",tooltipDelayDuration:C,tooltipDisableHoverableContent:P,...u}=p(s,i),y=a?D.Root:"span",e=o.createElement(y,{"data-accent-color":c,"data-radius":h,tabIndex:t?0:void 0,...u,ref:n,className:b("kui-reset","kui-Chip",l)},m);return t?o.createElement(r,{content:t,side:f,align:d,delayDuration:C,disableHoverableContent:P},e):e});R.displayName="Chip";export{R as a};
3
- //# sourceMappingURL=chunk-WJ4H2O2G.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/chip.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\nimport { Slot } from 'radix-ui';\n\nimport { chipPropDefs } from './chip.props.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { Tooltip } from './tooltip.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\n\ntype ChipElement = React.ElementRef<'span'>;\ntype ChipOwnProps = GetPropDefTypes<typeof chipPropDefs>;\n\n// Tooltip props that can be passed to Chip\ninterface ChipTooltipProps {\n tooltip?: React.ReactNode;\n tooltipSide?: 'top' | 'right' | 'bottom' | 'left';\n tooltipAlign?: 'start' | 'center' | 'end';\n tooltipDelayDuration?: number;\n tooltipDisableHoverableContent?: boolean;\n}\n\ninterface ChipProps\n extends ComponentPropsWithout<'span', RemovedProps>,\n ChipOwnProps,\n ChipTooltipProps {}\n\nconst Chip = React.forwardRef<ChipElement, ChipProps>((props, forwardedRef) => {\n const {\n asChild,\n className,\n children,\n color,\n radius,\n tooltip,\n tooltipSide = 'top',\n tooltipAlign = 'center',\n tooltipDelayDuration,\n tooltipDisableHoverableContent,\n ...chipProps\n } = extractProps(props, chipPropDefs);\n\n const Comp = asChild ? Slot.Root : 'span';\n\n const chip = (\n <Comp\n data-accent-color={color}\n data-radius={radius}\n // A tooltip opens on focus, so a chip that has one joins the tab order.\n tabIndex={tooltip ? 0 : undefined}\n {...chipProps}\n ref={forwardedRef}\n className={classNames('kui-reset', 'kui-Chip', className)}\n >\n {children}\n </Comp>\n );\n\n // If no tooltip is provided, return the chip as-is\n if (!tooltip) {\n return chip;\n }\n\n // Wrap with Tooltip when tooltip content is provided\n return (\n <Tooltip\n content={tooltip}\n side={tooltipSide}\n align={tooltipAlign}\n delayDuration={tooltipDelayDuration}\n disableHoverableContent={tooltipDisableHoverableContent}\n >\n {chip}\n </Tooltip>\n );\n});\nChip.displayName = 'Chip';\n\nexport { Chip };\nexport type { ChipProps };\n"],
5
- "mappings": ";wHAAA,UAAYA,MAAW,QACvB,OAAOC,MAAgB,aACvB,OAAS,QAAAC,MAAY,WA0BrB,IAAMC,EAAa,aAAmC,CAACC,EAAOC,IAAiB,CAC7E,GAAM,CACJ,QAAAC,EACA,UAAAC,EACA,SAAAC,EACA,MAAAC,EACA,OAAAC,EACA,QAAAC,EACA,YAAAC,EAAc,MACd,aAAAC,EAAe,SACf,qBAAAC,EACA,+BAAAC,EACA,GAAGC,CACL,EAAIC,EAAab,EAAOc,CAAY,EAE9BC,EAAOb,EAAUc,EAAK,KAAO,OAE7BC,EACJ,gBAACF,EAAA,CACC,oBAAmBV,EACnB,cAAaC,EAEb,SAAUC,EAAU,EAAI,OACvB,GAAGK,EACJ,IAAKX,EACL,UAAWiB,EAAW,YAAa,WAAYf,CAAS,GAEvDC,CACH,EAIF,OAAKG,EAMH,gBAACY,EAAA,CACC,QAASZ,EACT,KAAMC,EACN,MAAOC,EACP,cAAeC,EACf,wBAAyBC,GAExBM,CACH,EAbOA,CAeX,CAAC,EACDlB,EAAK,YAAc",
6
- "names": ["React", "classNames", "Slot", "Chip", "props", "forwardedRef", "asChild", "className", "children", "color", "radius", "tooltip", "tooltipSide", "tooltipAlign", "tooltipDelayDuration", "tooltipDisableHoverableContent", "chipProps", "extractProps", "chipPropDefs", "Comp", "Slot", "chip", "classNames", "Tooltip"]
7
- }
@@ -1,3 +0,0 @@
1
- "use client";
2
- import{a as H}from"./chunk-ILWS2JUE.js";import{a as I}from"./chunk-WZKSLTBH.js";import{k as V}from"./chunk-GKDGNPBD.js";import{c as j}from"./chunk-5ON3XLRD.js";import{a as N}from"./chunk-65KD6WS6.js";import{c as v}from"./chunk-OKQAVYW4.js";import*as e from"react";import oe from"classnames";import{Slot as ae}from"radix-ui";import{useComposedRefs as se,useLayoutEffect as re}from"radix-ui/internal";var ie=e.forwardRef((i,n)=>{let a=j(i,N.size),{className:P,children:o,asChild:s,as:R,color:_,radius:A,disabled:B,done:E=!1,...p}=v(a,N),l=!!a.loading,T=a.loading!==void 0,m=!!B||l,{onClick:M,"aria-describedby":S}=p,z=e.useCallback(t=>{if(m){t.preventDefault();return}M?.(t)},[m,M]),G=e.useMemo(()=>{let t=s&&e.isValidElement(o)?o.props.children:o,c=k(t),d=r=>e.isValidElement(r)&&(r.type==="svg"||typeof r.type!="string"&&r.type!==e.Fragment&&!ce.has(g(r.type)));return{iconStart:d(c[0]),iconEnd:d(c[c.length-1])}},[s,o]),[W,X]=e.useState(null),D=e.useRef(null),q=se(n,D);re(()=>{let t=D.current;if(!t||l||E)return;let c=t.querySelector(":scope > .kui-BaseButtonContent")??t,d=F(c,"start"),r=F(c,"end");X(u=>u&&u.iconStart===d&&u.iconEnd===r?u:{iconStart:d,iconEnd:r})});let{iconStart:b,iconEnd:K}=W??G,x=!!p["data-icon-only"],f=e.useMemo(()=>{if(!E)return o;let t=e.createElement(V,{key:"kui-done-tick",className:"kui-BaseButtonTick","aria-hidden":!0}),c=d=>{if(x)return t;let r=k(d),u=r.findIndex(y=>!(typeof y=="string"&&!y.trim()));return b&&u!==-1?r.map((y,ne)=>ne===u?t:y):[t,...r]};if(s&&e.isValidElement(o)){let d=o;return e.cloneElement(d,void 0,c(d.props.children))}return c(o)},[E,o,x,b,s]),Q=s?ae.Root:R||"button",$=["button","input","textarea","select"],w=s?e.isValidElement(o)?o.type:void 0:R||"button",h=typeof w=="string"&&$.includes(w),{onClickCapture:L}=p,J=e.useCallback(t=>{if(s&&m){t.preventDefault(),t.stopPropagation();return}L?.(t)},[s,m,L]),U=!s&&(!R||R==="button"),Y="type"in p,Z=e.useId(),C=l?`${Z}-loading`:void 0,ee=e.useMemo(()=>l?{"aria-busy":!0,"aria-disabled":!0,"aria-describedby":[S,C].filter(Boolean).join(" ")}:B&&(!h||s)?{"aria-disabled":!0}:{},[l,C,S,B,h,s]),O=(t,c)=>T?e.createElement(e.Fragment,null,e.createElement("span",{className:"kui-BaseButtonContent","aria-hidden":l||void 0},t),l?e.createElement(e.Fragment,null,e.createElement("span",{className:"kui-sr-only"},e.createElement("span",{id:C,"aria-hidden":!0},"Loading"),c),e.createElement(I,{asChild:!0,align:"center",justify:"center",position:"absolute",inset:"0"},e.createElement("span",null,e.createElement(H,{"aria-hidden":"true"})))):null):t,te=s&&T&&e.isValidElement(f)?e.cloneElement(f,void 0,O(f.props.children,e.isValidElement(o)?o.props.children:null)):f;return e.createElement(Q,{"data-accent-color":_,"data-radius":A,"data-icon-start":b||void 0,"data-icon-end":K||void 0,"data-done":E||void 0,...p,...ee,"data-disabled":m||void 0,onClick:z,onClickCapture:J,ref:q,className:oe("kui-reset","kui-BaseButton",P),...h&&{disabled:B},...U&&!Y?{type:"button"}:{}},s?te:O(f,o))});ie.displayName="BaseButton";var ce=new Set(["Text","Kbd","Code","Link","Em","Strong","Quote","Badge","Trans"]);function g(i){if(!i||typeof i!="function"&&typeof i!="object")return"";let n=i;return n.displayName||n.name||g(n.render)||g(n.type)}function k(i){return e.Children.toArray(i).flatMap(n=>e.isValidElement(n)&&n.type===e.Fragment?k(n.props.children):[n])}function F(i,n){let a=n==="start"?i.firstChild:i.lastChild;for(;a&&(a.nodeType===Node.COMMENT_NODE||a.nodeType===Node.TEXT_NODE&&!a.textContent?.trim());)a=n==="start"?a.nextSibling:a.previousSibling;return a?.nodeType===Node.ELEMENT_NODE&&a.localName==="svg"}export{ie as a};
3
- //# sourceMappingURL=chunk-WMODMXEU.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/_internal/base-button.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\nimport { Slot } from 'radix-ui';\nimport { useComposedRefs, useLayoutEffect } from 'radix-ui/internal';\n\nimport { baseButtonPropDefs } from './base-button.props.js';\nimport { Flex } from '../flex.js';\nimport { Spinner } from '../spinner.js';\nimport { TickIcon } from '../icons.js';\nimport { extractProps } from '../../helpers/extract-props.js';\nimport { useThemeSizeProps } from '../../hooks/theme-size.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../../helpers/component-props.js';\nimport type { GetPropDefTypes } from '../../props/prop-def.js';\n\ntype BaseButtonElement = React.ElementRef<'button'>;\ntype BaseButtonOwnProps = GetPropDefTypes<typeof baseButtonPropDefs>;\n\n/**\n * Polymorphic BaseButton props that support rendering as different HTML elements\n * Uses the proper ComponentPropsWithout pattern for type safety\n * @template C - The element type to render as (defaults to 'button')\n */\ntype PolymorphicBaseButtonProps<C extends React.ElementType = 'button'> = {\n /** Element type to render as (e.g., 'a', 'span', etc.) */\n as?: C;\n} & BaseButtonOwnProps &\n BaseButtonDoneProps &\n ComponentPropsWithout<C, RemovedProps | keyof BaseButtonOwnProps | 'as' | 'done'>;\n\ninterface BaseButtonDoneProps {\n /**\n * Shows a tick in place of the icon to say that the action finished. The tick takes the\n * icon's box, so nothing moves, and the icon comes back as soon as `done` is false again. On\n * an `iconOnly` button the tick replaces the content. It doesn't block the press. Screen\n * readers don't announce the tick, so also change the label or `aria-label` (for example,\n * `Copy` to `Copied`).\n */\n done?: boolean;\n}\n\n/**\n * BaseButton props interface that combines all available props\n */\ninterface BaseButtonProps extends PolymorphicBaseButtonProps {}\n\n/**\n * BaseButton component that provides the core button functionality\n *\n * This is the foundational button component that handles all the complex logic\n * including loading states, accessibility, performance optimizations, and\n * polymorphic rendering. It's used by Button and Toggle to ensure consistent behavior across the design system.\n *\n * Key features:\n * - Loading state with spinner and accessibility announcements\n * - Comprehensive accessibility support\n * - Polymorphic rendering support\n *\n * @example\n * ```tsx\n * // Basic usage\n * <BaseButton>Click me</BaseButton>\n *\n * // With loading state\n * <BaseButton loading>Processing...</BaseButton>\n *\n * // Polymorphic rendering\n * <BaseButton as=\"a\" href=\"/link\">Link Button</BaseButton>\n * ```\n */\nconst BaseButton = React.forwardRef<BaseButtonElement, BaseButtonProps>((ownProps, forwardedRef) => {\n const props = useThemeSizeProps(ownProps, baseButtonPropDefs.size);\n\n // Extract button-specific props from the combined props object\n const {\n className,\n children,\n asChild,\n as,\n color,\n radius,\n disabled: nativeDisabled,\n done = false,\n ...baseButtonProps\n } = extractProps(props, baseButtonPropDefs);\n\n // Loading blocks activation but keeps the native `disabled` off, so the button keeps focus\n // and its place in the tab order (aria-disabled carries the state). An explicit `disabled`\n // stays native on form controls; on anything else (a link, an asChild child) the `disabled`\n // attribute does nothing, so aria-disabled carries the state and the click is stopped here.\n const loading = Boolean(props.loading);\n const canLoad = props.loading !== undefined;\n const disabled = Boolean(nativeDisabled) || loading;\n const { onClick, 'aria-describedby': ariaDescribedByProp } = baseButtonProps as {\n onClick?: React.MouseEventHandler<HTMLElement>;\n 'aria-describedby'?: string;\n };\n const handleClick = React.useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n if (disabled) {\n event.preventDefault();\n return;\n }\n onClick?.(event);\n },\n [disabled, onClick],\n );\n\n // Which edges start or end with an icon. A bare edge pads wider under a full radius; an edge\n // holding an icon keeps the plain padding (the icon already stands between text and curve).\n // Rendering guesses from the children: an svg element, or a component at either end that is\n // not a known text component (`<Text>`, `<Kbd>`, `<Trans>` and the like), counts as an icon,\n // so the server output is right for icon components such as HugeIcons. After mount the\n // rendered DOM settles it: only an svg is an icon, which corrects a wrong guess.\n const childEdges = React.useMemo(() => {\n const content =\n asChild && React.isValidElement(children) ? (children.props as { children?: React.ReactNode }).children : children;\n // Fragments are see-through: their own first and last children are the edges.\n const items = flattenFragments(content);\n const isIcon = (node: React.ReactNode) =>\n React.isValidElement(node) &&\n (node.type === 'svg' ||\n (typeof node.type !== 'string' && node.type !== React.Fragment && !TEXT_COMPONENTS.has(componentName(node.type))));\n return { iconStart: isIcon(items[0]), iconEnd: isIcon(items[items.length - 1]) };\n }, [asChild, children]);\n const [domEdges, setDomEdges] = React.useState<{ iconStart: boolean; iconEnd: boolean } | null>(null);\n const elementRef = React.useRef<HTMLElement>(null);\n const composedRef = useComposedRefs(forwardedRef, elementRef as React.Ref<BaseButtonElement>);\n useLayoutEffect(() => {\n const element = elementRef.current;\n // While loading the sr-only copy and spinner follow the content, and while done the tick\n // stands at the start; keep the edges read before either.\n if (!element || loading || done) return;\n const contentRoot = element.querySelector(':scope > .kui-BaseButtonContent') ?? element;\n const iconStart = edgeIsSvg(contentRoot, 'start');\n const iconEnd = edgeIsSvg(contentRoot, 'end');\n setDomEdges((prev) => (prev && prev.iconStart === iconStart && prev.iconEnd === iconEnd ? prev : { iconStart, iconEnd }));\n });\n const { iconStart, iconEnd } = domEdges ?? childEdges;\n\n // Done swaps the icon for a tick in the same place: the leading icon when there is one, the\n // whole content on an icon-only button. Without a leading icon the tick goes before the label.\n const iconOnly = Boolean((baseButtonProps as Record<string, unknown>)['data-icon-only']);\n const content = React.useMemo(() => {\n if (!done) return children;\n const tick = <TickIcon key=\"kui-done-tick\" className=\"kui-BaseButtonTick\" aria-hidden />;\n const swap = (nodes: React.ReactNode): React.ReactNode => {\n if (iconOnly) return tick;\n const items = flattenFragments(nodes);\n const first = items.findIndex((node) => !(typeof node === 'string' && !node.trim()));\n if (iconStart && first !== -1) return items.map((node, index) => (index === first ? tick : node));\n return [tick, ...items];\n };\n if (asChild && React.isValidElement(children)) {\n const element = children as React.ReactElement<{ children?: React.ReactNode }>;\n return React.cloneElement(element, undefined, swap(element.props.children));\n }\n return swap(children);\n }, [done, children, iconOnly, iconStart, asChild]);\n\n // asChild takes precedence over as prop for Radix Slot integration\n // When asChild is true, we use Slot.Root to merge props onto the child element\n // When asChild is false, we render as the specified element (or button by default)\n const Comp = asChild ? Slot.Root : (as || 'button');\n\n // Only pass disabled for elements that support it\n // This prevents invalid HTML attributes on unsupported elements. With asChild, the child's own\n // element type decides: a link child gets aria-disabled, not an invalid `disabled`.\n const formElements = ['button', 'input', 'textarea', 'select'];\n const renderedType = asChild ? (React.isValidElement(children) ? children.type : undefined) : (as || 'button');\n const shouldPassDisabled = typeof renderedType === 'string' && formElements.includes(renderedType);\n\n // With asChild, Radix Slot runs the child's own onClick before ours, so a disabled asChild\n // button stops the click in the capture phase, before any bubble handler runs.\n const { onClickCapture } = baseButtonProps as { onClickCapture?: React.MouseEventHandler<HTMLElement> };\n const handleClickCapture = React.useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n if (asChild && disabled) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n onClickCapture?.(event);\n },\n [asChild, disabled, onClickCapture],\n );\n\n // Determine if we are rendering a real <button> element so we can set a safe\n // default type. Native <button> defaults to type=\"submit\" which can cause\n // accidental form submissions. We default to type=\"button\" unless the user\n // explicitly provided a type or we're using asChild (unknown underlying node).\n const isNativeButtonElement = !asChild && (!as || as === 'button');\n const hasExplicitTypeAttribute = 'type' in (baseButtonProps as Record<string, unknown>);\n\n // Generate unique ID for loading announcements\n const loadingId = React.useId();\n const describedById = loading ? `${loadingId}-loading` : undefined;\n\n // Loading keeps the caller's name (aria-label, aria-labelledby or the label text) and adds\n // aria-busy plus a description, as v2 does. A disabled element with no native `disabled`\n // announces itself through aria-disabled.\n const accessibilityProps = React.useMemo(() => {\n if (loading) {\n return {\n 'aria-busy': true,\n 'aria-disabled': true,\n 'aria-describedby': [ariaDescribedByProp, describedById].filter(Boolean).join(' '),\n };\n }\n if (nativeDisabled && (!shouldPassDisabled || asChild)) {\n return { 'aria-disabled': true };\n }\n return {};\n }, [loading, describedById, ariaDescribedByProp, nativeDisabled, shouldPassDisabled, asChild]);\n\n /**\n * The inside of the button. A button that takes `loading` (true or false) keeps its content in\n * a `kui-BaseButtonContent` wrapper, so starting or stopping `loading` keeps the children in\n * place (their state survives). A button that never loads skips it, which saves a node per\n * button. `display: contents` keeps the button's flex gap; while loading the wrapper is\n * `visibility: hidden` under the spinner.\n *\n * `display: contents` removes the content from the accessibility tree in some browsers, so\n * while loading the wrapper is `aria-hidden` and a `kui-sr-only` copy carries the name.\n */\n const renderInner = (inner: React.ReactNode, label: React.ReactNode) => {\n if (!canLoad) return inner;\n return (\n <>\n <span className=\"kui-BaseButtonContent\" aria-hidden={loading || undefined}>\n {inner}\n </span>\n {loading ? (\n <>\n {/* The label stays the name; the hidden \"Loading\" only describes (aria-describedby reads hidden text). */}\n <span className=\"kui-sr-only\">\n <span id={describedById} aria-hidden>\n Loading\n </span>\n {label}\n </span>\n\n {/* Centered spinner overlay during loading state */}\n <Flex asChild align=\"center\" justify=\"center\" position=\"absolute\" inset=\"0\">\n <span>\n <Spinner aria-hidden=\"true\" />\n </span>\n </Flex>\n </>\n ) : null}\n </>\n );\n };\n const asChildContent =\n asChild && canLoad && React.isValidElement(content)\n ? React.cloneElement(\n content as React.ReactElement<{ children?: React.ReactNode }>,\n undefined,\n renderInner(\n (content.props as { children?: React.ReactNode }).children,\n React.isValidElement(children) ? (children.props as { children?: React.ReactNode }).children : null,\n ),\n )\n : content;\n\n return (\n <Comp\n data-accent-color={color}\n data-radius={radius}\n data-icon-start={iconStart || undefined}\n data-icon-end={iconEnd || undefined}\n data-done={done || undefined}\n {...baseButtonProps}\n {...accessibilityProps}\n // After the spread: `data-disabled` styles `<Button asChild disabled>`, and a wrapping\n // Radix Toggle (asChild) passes `data-disabled={undefined}` that must not erase it.\n data-disabled={disabled || undefined}\n onClick={handleClick}\n onClickCapture={handleClickCapture}\n ref={composedRef}\n className={classNames('kui-reset', 'kui-BaseButton', className)}\n {...(shouldPassDisabled && { disabled: nativeDisabled })}\n {...(isNativeButtonElement && !hasExplicitTypeAttribute ? { type: 'button' } : {})}\n >\n {asChild ? (\n // asChild: Slot merges onto the single child, so the wrapper, spinner and label copy go\n // inside that child, never beside it.\n asChildContent\n ) : (\n renderInner(content, children)\n )}\n </Comp>\n );\n});\nBaseButton.displayName = 'BaseButton';\n\n/** Components that render text, never an icon, so the render-time guess skips them. */\nconst TEXT_COMPONENTS = new Set(['Text', 'Kbd', 'Code', 'Link', 'Em', 'Strong', 'Quote', 'Badge', 'Trans']);\n\n/** A component's display name, looking through forwardRef and memo. */\nfunction componentName(type: unknown): string {\n if (!type || (typeof type !== 'function' && typeof type !== 'object')) return '';\n const named = type as { displayName?: string; name?: string; render?: unknown; type?: unknown };\n return named.displayName || named.name || componentName(named.render) || componentName(named.type);\n}\n\n/** The child list with fragments opened up: a fragment's own children are the edges. */\nfunction flattenFragments(nodes: React.ReactNode): React.ReactNode[] {\n return React.Children.toArray(nodes).flatMap((node) =>\n React.isValidElement(node) && node.type === React.Fragment\n ? flattenFragments((node.props as { children?: React.ReactNode }).children)\n : [node],\n );\n}\n\n/** Whether the first or last rendered node of `element` (blank text and comments skipped) is an svg. */\nfunction edgeIsSvg(element: Element, edge: 'start' | 'end'): boolean {\n let node = edge === 'start' ? element.firstChild : element.lastChild;\n while (node) {\n const blank =\n node.nodeType === Node.COMMENT_NODE || (node.nodeType === Node.TEXT_NODE && !node.textContent?.trim());\n if (!blank) break;\n node = edge === 'start' ? node.nextSibling : node.previousSibling;\n }\n return node?.nodeType === Node.ELEMENT_NODE && (node as Element).localName === 'svg';\n}\n\nexport { BaseButton };\nexport type { BaseButtonProps };\n"],
5
- "mappings": "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",
6
- "names": ["React", "classNames", "Slot", "useComposedRefs", "useLayoutEffect", "BaseButton", "ownProps", "forwardedRef", "props", "useThemeSizeProps", "baseButtonPropDefs", "className", "children", "asChild", "as", "color", "radius", "nativeDisabled", "done", "baseButtonProps", "extractProps", "loading", "canLoad", "disabled", "onClick", "ariaDescribedByProp", "handleClick", "event", "childEdges", "content", "items", "flattenFragments", "isIcon", "node", "TEXT_COMPONENTS", "componentName", "domEdges", "setDomEdges", "elementRef", "composedRef", "useComposedRefs", "useLayoutEffect", "element", "contentRoot", "iconStart", "edgeIsSvg", "iconEnd", "prev", "iconOnly", "tick", "TickIcon", "swap", "nodes", "first", "index", "Comp", "Slot", "formElements", "renderedType", "shouldPassDisabled", "onClickCapture", "handleClickCapture", "isNativeButtonElement", "hasExplicitTypeAttribute", "loadingId", "describedById", "accessibilityProps", "renderInner", "inner", "label", "Flex", "Spinner", "asChildContent", "classNames", "type", "named", "edge"]
7
- }
@@ -1,3 +0,0 @@
1
- "use client";
2
- var o=["1","2","3","4"],e=["horizontal","vertical"],t={size:{type:"enum",className:"kui-r-size",values:o,default:"2"},orientation:{type:"enum",values:e,default:"horizontal"}};export{t as a};
3
- //# sourceMappingURL=chunk-WMZLMZHB.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/toolbar.props.tsx"],
4
- "sourcesContent": ["import type { PropDef } from '../props/prop-def.js';\n\nconst sizes = ['1', '2', '3', '4'] as const;\nconst orientations = ['horizontal', 'vertical'] as const;\n\n/**\n * Toolbar prop definitions.\n *\n * `size` is one value for the whole row (not responsive): the row hands it to every control\n * inside it that does not state its own, through context, so it has to be a single index.\n */\nconst toolbarRootPropDefs = {\n /**\n * Size step of the row and of every control in it that doesn't set its own `size`.\n * Matches Button's sizes: 1 (28px) to 4 (48px). Unset inside `Shell.PaneHeader` or\n * `Shell.PaneFooter`, it rests one step above the Shell's `size`.\n */\n size: { type: 'enum', className: 'kui-r-size', values: sizes, default: '2' },\n /**\n * Direction of the row and of the arrow keys. Use `vertical` for a strip of tools along an edge.\n */\n orientation: { type: 'enum', values: orientations, default: 'horizontal' },\n} satisfies {\n size: PropDef<(typeof sizes)[number]>;\n orientation: PropDef<(typeof orientations)[number]>;\n};\n\nexport { toolbarRootPropDefs };\n"],
5
- "mappings": ";AAEA,IAAMA,EAAQ,CAAC,IAAK,IAAK,IAAK,GAAG,EAC3BC,EAAe,CAAC,aAAc,UAAU,EAQxCC,EAAsB,CAM1B,KAAM,CAAE,KAAM,OAAQ,UAAW,aAAc,OAAQF,EAAO,QAAS,GAAI,EAI3E,YAAa,CAAE,KAAM,OAAQ,OAAQC,EAAc,QAAS,YAAa,CAC3E",
6
- "names": ["sizes", "orientations", "toolbarRootPropDefs"]
7
- }
@@ -1,3 +0,0 @@
1
- "use client";
2
- import*as o from"react";function m(n){let[e,f]=o.useState(null);return o.useEffect(()=>{if(!n||!e)return;let t=0,c=()=>{t=0;let l=Math.max(0,e.scrollTop),v=Math.max(0,e.scrollHeight-e.clientHeight-e.scrollTop);e.style.setProperty("--scroll-overflow-start",`${l}px`),e.style.setProperty("--scroll-overflow-end",`${v}px`);let a=Math.abs(e.scrollLeft),d=Math.max(0,e.scrollWidth-e.clientWidth-a);e.style.setProperty("--scroll-overflow-x-start",`${a}px`),e.style.setProperty("--scroll-overflow-x-end",`${d}px`)},r=()=>{t||(t=requestAnimationFrame(c))};c(),e.addEventListener("scroll",r,{passive:!0});let s=typeof ResizeObserver>"u"?null:new ResizeObserver(r);s?.observe(e);for(let l of Array.from(e.children))s?.observe(l);let i=typeof MutationObserver>"u"?null:new MutationObserver(r);return i?.observe(e,{childList:!0}),()=>{t&&cancelAnimationFrame(t),e.removeEventListener("scroll",r),s?.disconnect(),i?.disconnect(),e.style.removeProperty("--scroll-overflow-start"),e.style.removeProperty("--scroll-overflow-end"),e.style.removeProperty("--scroll-overflow-x-start"),e.style.removeProperty("--scroll-overflow-x-end")}},[n,e]),f}export{m as a};
3
- //# sourceMappingURL=chunk-XH2CRCXR.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/hooks/use-scroll-edges.ts"],
4
- "sourcesContent": ["import * as React from 'react';\n\n/**\n * Publishes how much content is hidden past each edge of a scroller, as\n * `--scroll-overflow-start` and `--scroll-overflow-end` (block axis) and\n * `--scroll-overflow-x-start` and `--scroll-overflow-x-end` (inline axis, from\n * the inline start, so right-to-left reads the same) in px on the element.\n * The scroll fade reads them, so an edge fades only while content is hidden\n * there, and the fade ramps in over the first pixels of scrolling.\n *\n * Writes happen at most once per frame, on scroll and when the element or its\n * content resizes. Nothing re-renders.\n */\nexport function useScrollEdges<T extends HTMLElement>(enabled: boolean) {\n const [element, setElement] = React.useState<T | null>(null);\n\n React.useEffect(() => {\n if (!enabled || !element) return;\n let frame = 0;\n const write = () => {\n frame = 0;\n const start = Math.max(0, element.scrollTop);\n const end = Math.max(0, element.scrollHeight - element.clientHeight - element.scrollTop);\n element.style.setProperty('--scroll-overflow-start', `${start}px`);\n element.style.setProperty('--scroll-overflow-end', `${end}px`);\n // scrollLeft runs negative in right-to-left, so its size is the distance from the inline start.\n const xStart = Math.abs(element.scrollLeft);\n const xEnd = Math.max(0, element.scrollWidth - element.clientWidth - xStart);\n element.style.setProperty('--scroll-overflow-x-start', `${xStart}px`);\n element.style.setProperty('--scroll-overflow-x-end', `${xEnd}px`);\n };\n const schedule = () => {\n if (!frame) frame = requestAnimationFrame(write);\n };\n write();\n element.addEventListener('scroll', schedule, { passive: true });\n const observer = typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(schedule);\n observer?.observe(element);\n for (const child of Array.from(element.children)) observer?.observe(child);\n const mutations = typeof MutationObserver === 'undefined' ? null : new MutationObserver(schedule);\n mutations?.observe(element, { childList: true });\n return () => {\n if (frame) cancelAnimationFrame(frame);\n element.removeEventListener('scroll', schedule);\n observer?.disconnect();\n mutations?.disconnect();\n element.style.removeProperty('--scroll-overflow-start');\n element.style.removeProperty('--scroll-overflow-end');\n element.style.removeProperty('--scroll-overflow-x-start');\n element.style.removeProperty('--scroll-overflow-x-end');\n };\n }, [enabled, element]);\n\n return setElement;\n}\n"],
5
- "mappings": ";AAAA,UAAYA,MAAW,QAahB,SAASC,EAAsCC,EAAkB,CACtE,GAAM,CAACC,EAASC,CAAU,EAAU,WAAmB,IAAI,EAE3D,OAAM,YAAU,IAAM,CACpB,GAAI,CAACF,GAAW,CAACC,EAAS,OAC1B,IAAIE,EAAQ,EACNC,EAAQ,IAAM,CAClBD,EAAQ,EACR,IAAME,EAAQ,KAAK,IAAI,EAAGJ,EAAQ,SAAS,EACrCK,EAAM,KAAK,IAAI,EAAGL,EAAQ,aAAeA,EAAQ,aAAeA,EAAQ,SAAS,EACvFA,EAAQ,MAAM,YAAY,0BAA2B,GAAGI,CAAK,IAAI,EACjEJ,EAAQ,MAAM,YAAY,wBAAyB,GAAGK,CAAG,IAAI,EAE7D,IAAMC,EAAS,KAAK,IAAIN,EAAQ,UAAU,EACpCO,EAAO,KAAK,IAAI,EAAGP,EAAQ,YAAcA,EAAQ,YAAcM,CAAM,EAC3EN,EAAQ,MAAM,YAAY,4BAA6B,GAAGM,CAAM,IAAI,EACpEN,EAAQ,MAAM,YAAY,0BAA2B,GAAGO,CAAI,IAAI,CAClE,EACMC,EAAW,IAAM,CAChBN,IAAOA,EAAQ,sBAAsBC,CAAK,EACjD,EACAA,EAAM,EACNH,EAAQ,iBAAiB,SAAUQ,EAAU,CAAE,QAAS,EAAK,CAAC,EAC9D,IAAMC,EAAW,OAAO,eAAmB,IAAc,KAAO,IAAI,eAAeD,CAAQ,EAC3FC,GAAU,QAAQT,CAAO,EACzB,QAAWU,KAAS,MAAM,KAAKV,EAAQ,QAAQ,EAAGS,GAAU,QAAQC,CAAK,EACzE,IAAMC,EAAY,OAAO,iBAAqB,IAAc,KAAO,IAAI,iBAAiBH,CAAQ,EAChG,OAAAG,GAAW,QAAQX,EAAS,CAAE,UAAW,EAAK,CAAC,EACxC,IAAM,CACPE,GAAO,qBAAqBA,CAAK,EACrCF,EAAQ,oBAAoB,SAAUQ,CAAQ,EAC9CC,GAAU,WAAW,EACrBE,GAAW,WAAW,EACtBX,EAAQ,MAAM,eAAe,yBAAyB,EACtDA,EAAQ,MAAM,eAAe,uBAAuB,EACpDA,EAAQ,MAAM,eAAe,2BAA2B,EACxDA,EAAQ,MAAM,eAAe,yBAAyB,CACxD,CACF,EAAG,CAACD,EAASC,CAAO,CAAC,EAEdC,CACT",
6
- "names": ["React", "useScrollEdges", "enabled", "element", "setElement", "frame", "write", "start", "end", "xStart", "xEnd", "schedule", "observer", "child", "mutations"]
7
- }
@@ -1,3 +0,0 @@
1
- "use client";
2
- import{a as o}from"./chunk-SHLERRO3.js";import{a as s,b as p,c as t}from"./chunk-Z27REN6T.js";import{a as e}from"./chunk-CLJ6SEGP.js";import{d as r}from"./chunk-HBWBPBSA.js";var i=["1","2","3","4","5","6","7","8","9"],n=["auto","always","hover","none"],D={...e,size:{type:"enum",className:"kui-r-size",values:i,responsive:!0},...t,...o,...p,...s,underline:{type:"enum",className:"kui-underline",values:n,default:"auto"},...r};export{D as a};
3
- //# sourceMappingURL=chunk-XMHNOIPB.js.map
@@ -1,3 +0,0 @@
1
- "use client";
2
- import{a as o}from"./chunk-CLJ6SEGP.js";var r={...o},e={...o};export{r as a,e as b};
3
- //# sourceMappingURL=chunk-XVDT6DQZ.js.map
@@ -1,3 +0,0 @@
1
- "use client";
2
- import{a}from"./chunk-WCGQ4IDE.js";import{c as s}from"./chunk-N3QLHFHB.js";import{a as l}from"./chunk-6UZT3ZLO.js";import{c as n}from"./chunk-OKQAVYW4.js";import*as o from"react";import N from"classnames";import{Tooltip as t}from"radix-ui";var P=200,m=o.createContext(!1);function O({delayDuration:e=P,children:i,...r}){return o.createElement(m.Provider,{value:!0},o.createElement(t.Provider,{delayDuration:e,...r},i))}O.displayName="TooltipProvider";var g=o.forwardRef((e,i)=>{let{children:r,className:T,open:c,defaultOpen:f,onOpenChange:d,delayDuration:v,disableHoverableContent:u,content:C,container:R,forceMount:y,...h}=n(e,a),x={open:c,defaultOpen:f,onOpenChange:d,delayDuration:v,disableHoverableContent:u},D=o.useContext(m),p=o.createElement(t.Root,{...x},o.createElement(t.Trigger,{asChild:!0},r),o.createElement(t.Portal,{container:R,forceMount:y},o.createElement(s,{asChild:!0},o.createElement(t.Content,{sideOffset:4,collisionPadding:10,...h,asChild:!1,ref:i,className:N("kui-TooltipContent",T)},o.createElement(l,{as:"p",className:"kui-TooltipText",size:"1"},C),o.createElement(t.Arrow,{className:"kui-TooltipArrow"})))));return D?p:o.createElement(t.Provider,{delayDuration:P},p)});g.displayName="Tooltip";export{O as a,g as b};
3
- //# sourceMappingURL=chunk-Y2BTPKK6.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/components/tooltip.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nimport classNames from 'classnames';\nimport { Tooltip as TooltipPrimitive } from 'radix-ui';\n\nimport { Text } from './text.js';\nimport { Theme } from './theme.js';\nimport { extractProps } from '../helpers/extract-props.js';\nimport { tooltipPropDefs } from './tooltip.props.js';\n\nimport type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';\nimport type { GetPropDefTypes } from '../props/prop-def.js';\n\n/** The rest before a tooltip opens, in milliseconds. */\nconst TOOLTIP_DELAY = 200;\n\n/** True inside a `TooltipProvider`, so a Tooltip knows it need not bring its own. */\nconst TooltipProviderContext = React.createContext(false);\n\ninterface TooltipProviderProps extends React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Provider> {}\n\n/**\n * Groups the tooltips inside it: the first one waits `delayDuration` (200ms), and the next ones\n * open at once while the pointer moves between them. Put it once near the root of the app.\n * A Tooltip outside one still works, with the same delay, but each one waits on its own.\n */\nfunction TooltipProvider({ delayDuration = TOOLTIP_DELAY, children, ...props }: TooltipProviderProps) {\n return (\n <TooltipProviderContext.Provider value={true}>\n <TooltipPrimitive.Provider delayDuration={delayDuration} {...props}>\n {children}\n </TooltipPrimitive.Provider>\n </TooltipProviderContext.Provider>\n );\n}\nTooltipProvider.displayName = 'TooltipProvider';\n\ntype TooltipElement = React.ElementRef<typeof TooltipPrimitive.Content>;\ntype TooltipOwnProps = GetPropDefTypes<typeof tooltipPropDefs>;\ninterface TooltipProps\n extends React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Root>,\n ComponentPropsWithout<typeof TooltipPrimitive.Content, RemovedProps | 'content'>,\n TooltipOwnProps {\n content: React.ReactNode;\n container?: React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Portal>['container'];\n}\nconst Tooltip = React.forwardRef<TooltipElement, TooltipProps>((props, forwardedRef) => {\n const {\n children,\n className,\n open,\n defaultOpen,\n onOpenChange,\n delayDuration,\n disableHoverableContent,\n content,\n container,\n forceMount,\n ...tooltipContentProps\n } = extractProps(props, tooltipPropDefs);\n const rootProps = { open, defaultOpen, onOpenChange, delayDuration, disableHoverableContent };\n const hasProvider = React.useContext(TooltipProviderContext);\n const tooltip = (\n <TooltipPrimitive.Root {...rootProps}>\n <TooltipPrimitive.Trigger asChild>{children}</TooltipPrimitive.Trigger>\n <TooltipPrimitive.Portal container={container} forceMount={forceMount}>\n <Theme asChild>\n <TooltipPrimitive.Content\n sideOffset={4}\n collisionPadding={10}\n {...tooltipContentProps}\n asChild={false}\n ref={forwardedRef}\n className={classNames('kui-TooltipContent', className)}\n >\n <Text as=\"p\" className=\"kui-TooltipText\" size=\"1\">\n {content}\n </Text>\n <TooltipPrimitive.Arrow className=\"kui-TooltipArrow\" />\n </TooltipPrimitive.Content>\n </Theme>\n </TooltipPrimitive.Portal>\n </TooltipPrimitive.Root>\n );\n // Radix needs a provider above every tooltip. Outside a TooltipProvider, bring one.\n return hasProvider ? tooltip : <TooltipPrimitive.Provider delayDuration={TOOLTIP_DELAY}>{tooltip}</TooltipPrimitive.Provider>;\n});\nTooltip.displayName = 'Tooltip';\n\nexport { Tooltip, TooltipProvider };\nexport type { TooltipProps, TooltipProviderProps };\n"],
5
- "mappings": ";2JAAA,UAAYA,MAAW,QACvB,OAAOC,MAAgB,aACvB,OAAS,WAAWC,MAAwB,WAW5C,IAAMC,EAAgB,IAGhBC,EAA+B,gBAAc,EAAK,EASxD,SAASC,EAAgB,CAAE,cAAAC,EAAgBH,EAAe,SAAAI,EAAU,GAAGC,CAAM,EAAyB,CACpG,OACE,gBAACJ,EAAuB,SAAvB,CAAgC,MAAO,IACtC,gBAACK,EAAiB,SAAjB,CAA0B,cAAeH,EAAgB,GAAGE,GAC1DD,CACH,CACF,CAEJ,CACAF,EAAgB,YAAc,kBAW9B,IAAMK,EAAgB,aAAyC,CAACF,EAAOG,IAAiB,CACtF,GAAM,CACJ,SAAAJ,EACA,UAAAK,EACA,KAAAC,EACA,YAAAC,EACA,aAAAC,EACA,cAAAT,EACA,wBAAAU,EACA,QAAAC,EACA,UAAAC,EACA,WAAAC,EACA,GAAGC,CACL,EAAIC,EAAab,EAAOc,CAAe,EACjCC,EAAY,CAAE,KAAAV,EAAM,YAAAC,EAAa,aAAAC,EAAc,cAAAT,EAAe,wBAAAU,CAAwB,EACtFQ,EAAoB,aAAWpB,CAAsB,EACrDqB,EACJ,gBAAChB,EAAiB,KAAjB,CAAuB,GAAGc,GACzB,gBAACd,EAAiB,QAAjB,CAAyB,QAAO,IAAEF,CAAS,EAC5C,gBAACE,EAAiB,OAAjB,CAAwB,UAAWS,EAAW,WAAYC,GACzD,gBAACO,EAAA,CAAM,QAAO,IACZ,gBAACjB,EAAiB,QAAjB,CACC,WAAY,EACZ,iBAAkB,GACjB,GAAGW,EACJ,QAAS,GACT,IAAKT,EACL,UAAWgB,EAAW,qBAAsBf,CAAS,GAErD,gBAACgB,EAAA,CAAK,GAAG,IAAI,UAAU,kBAAkB,KAAK,KAC3CX,CACH,EACA,gBAACR,EAAiB,MAAjB,CAAuB,UAAU,mBAAmB,CACvD,CACF,CACF,CACF,EAGF,OAAOe,EAAcC,EAAU,gBAAChB,EAAiB,SAAjB,CAA0B,cAAeN,GAAgBsB,CAAQ,CACnG,CAAC,EACDf,EAAQ,YAAc",
6
- "names": ["React", "classNames", "TooltipPrimitive", "TOOLTIP_DELAY", "TooltipProviderContext", "TooltipProvider", "delayDuration", "children", "props", "TooltipPrimitive", "Tooltip", "forwardedRef", "className", "open", "defaultOpen", "onOpenChange", "disableHoverableContent", "content", "container", "forceMount", "tooltipContentProps", "extractProps", "tooltipPropDefs", "rootProps", "hasProvider", "tooltip", "Theme", "classNames", "Text"]
7
- }
@@ -1,3 +0,0 @@
1
- "use client";
2
- import{a as d}from"./chunk-KSYHZCLD.js";import{a as m}from"./chunk-LPLW7OWA.js";import{a as n}from"./chunk-L54FWKJE.js";import{c as a}from"./chunk-OKQAVYW4.js";import*as e from"react";import W from"classnames";import{useComposedRefs as j,useLayoutEffect as x}from"radix-ui/internal";var H=e.forwardRef((p,g)=>{let{width:o,height:r,...h}=p,f=typeof o=="number"?o:void 0,u=typeof r=="number"?r:void 0,{className:c,alt:l,radius:P,loading:y="lazy",decoding:w="async",onLoad:I,onError:R,...b}=a({...h,width:typeof o=="number"?void 0:o,height:typeof r=="number"?void 0:r},d,n,m),[E,s]=e.useState("loading"),i=e.useRef(null);x(()=>{let t=i.current;t?.complete?s(t.naturalWidth>0?"loaded":"error"):s("loading")},[p.src]);let D=j(i,g);return e.createElement("img",{...b,width:f,height:u,ref:D,alt:l,loading:y,decoding:w,"data-radius":P,"data-status":E,className:W("kui-Image",c),onLoad:t=>{s("loaded"),I?.(t)},onError:t=>{s("error"),R?.(t)}})});H.displayName="Image";export{H as a};
3
- //# sourceMappingURL=chunk-YD2D73LF.js.map
@@ -1,3 +0,0 @@
1
- "use client";
2
- import{a as k}from"./chunk-4S5L25RO.js";import{c as j}from"./chunk-5ON3XLRD.js";import{c as L}from"./chunk-OKQAVYW4.js";import*as t from"react";import Z from"classnames";import{Direction as _,Slider as S}from"radix-ui";var ee=t.forwardRef((z,I)=>{let K=j(z,k.size),{className:O,color:W,radius:B,tabIndex:T,...G}=L(K,k),{ticks:c,unit:i,showTickLabels:A,snapToTicks:P,value:g,defaultValue:H,onValueChange:$,onValueCommit:C,"aria-label":U,"aria-labelledby":q,...o}=G,p=o.min??0,d=o.max??100,[F,J]=t.useState(()=>H??[p]),v=g!==void 0,l=v?g:F,x=t.useId(),Q=o.step,s=t.useMemo(()=>c?[...c].sort((e,a)=>e.value-a.value):[],[c]),b=t.useCallback(e=>{let a=s[0].value;for(let r of s)Math.abs(r.value-e)<Math.abs(a-e)&&(a=r.value);return a},[s]),N=t.useCallback((e,a)=>{let r=b(e);return e>a&&r<=a?s.find(n=>n.value>a)?.value??a:e<a&&r>=a?[...s].reverse().find(n=>n.value<a)?.value??a:r},[b,s]),h=t.useRef(!1),V=t.useCallback(e=>{let a=r=>i?`${r} ${i}`:r.toString();return e.length===1?`${a(e[0])} out of ${a(d)}`:e.length===2?`${a(e[0])} to ${a(e[1])} out of ${a(d)}`:`${e.map(a).join(", ")} out of ${a(d)}`},[i,d]),X=_.useDirection(o.dir),R=o.orientation??"horizontal",D=R==="vertical"?!o.inverted:X==="rtl"!=!!o.inverted,y=t.useMemo(()=>c?c.map((e,a)=>{let r=(e.value-p)/(d-p)*100;return{...e,percentage:D?100-r:r,index:a}}):null,[c,p,d,D]),m=t.useRef(null),f=t.useRef(null),Y=t.useCallback(e=>{m.current&&(m.current.textContent=V(e),f.current&&clearTimeout(f.current),f.current=setTimeout(()=>{m.current&&(m.current.textContent="")},1e3))},[V]),M=t.useCallback(e=>{let r=P&&s.length>0?e.map((n,u)=>h.current&&l[u]!==void 0?N(n,l[u]):b(n)):e;v||J(r),$?.(r)},[P,s,N,b,l,$,v]);return t.useEffect(()=>()=>{f.current&&clearTimeout(f.current)},[]),t.createElement("div",{className:"kui-SliderContainer","data-orientation":R,"data-has-ticks":y?"":void 0},t.createElement("div",{ref:m,"aria-live":"polite","aria-atomic":"true",className:"kui-sr-only"}),t.createElement(S.Root,{"data-accent-color":W,"data-radius":B,ref:I,...o,value:l,step:Q,onKeyDown:e=>{h.current=!0,o.onKeyDown?.(e)},onPointerDown:e=>{h.current=!1,o.onPointerDown?.(e)},onValueChange:M,onValueCommit:C,asChild:!1,className:Z("kui-SliderRoot",O)},t.createElement(S.Track,{className:"kui-SliderTrack"},t.createElement(S.Range,{className:"kui-SliderRange","data-inverted":o.inverted?"":void 0})),l.map((e,a)=>t.createElement(S.Thumb,{key:a,className:"kui-SliderThumb",...T!==void 0?{tabIndex:T}:void 0,"aria-label":U,"aria-labelledby":q,"aria-valuetext":i?`${e} ${i}`:void 0}))),y&&t.createElement("div",{className:"kui-SliderTicks","data-orientation":R,role:"group","aria-label":"Slider tick marks"},y.map(e=>t.createElement("button",{key:e.index,className:"kui-SliderTick",style:R==="vertical"?{top:`${e.percentage}%`}:{left:`${e.percentage}%`},disabled:o.disabled,onClick:()=>{let a=0;l.forEach((n,u)=>{let w=Math.abs(n-e.value),E=Math.abs(l[a]-e.value);(w<E||w===E&&e.value>n)&&(a=u)});let r=l.map((n,u)=>u===a?e.value:n).sort((n,u)=>n-u);h.current=!1,M(r),C?.(r),Y(r)},"aria-label":`Set to ${e.label||(i?`${e.value} ${i}`:e.value)}`,"aria-describedby":e.label?void 0:`${x}-tick-${e.index}`,type:"button"},t.createElement("div",{className:"kui-SliderTickMark"}),e.label&&A!==!1&&t.createElement("div",{className:"kui-SliderTickLabel"},e.label),!e.label&&t.createElement("span",{id:`${x}-tick-${e.index}`,className:"kui-sr-only"},i?`${e.value} ${i}`:e.value)))))});ee.displayName="Slider";export{ee as a};
3
- //# sourceMappingURL=chunk-YDBFIJHB.js.map