@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
@@ -17,7 +17,8 @@ import {
17
17
  contextMenuCheckboxItemPropDefs,
18
18
  contextMenuRadioItemPropDefs,
19
19
  } from './context-menu.props.js';
20
- import { Theme, useThemeContext } from './theme.js';
20
+ import { useThemeContext } from './theme.js';
21
+ import { PortalTheme } from './_internal/portal-theme.js';
21
22
  import { ThickCheckIcon, ThickChevronRightIcon, ThickDotIcon } from './icons.js';
22
23
  import { extractProps } from '../helpers/extract-props.js';
23
24
  import { useThemeSizeProps } from '../hooks/theme-size.js';
@@ -133,7 +134,7 @@ const ContextMenuContent = React.forwardRef<ContextMenuContentElement, ContextMe
133
134
 
134
135
  return (
135
136
  <ContextMenuPrimitive.Portal container={container} forceMount={forceMount}>
136
- <Theme asChild>
137
+ <PortalTheme asChild>
137
138
  <ContextMenuPrimitive.Content
138
139
  data-accent-color={resolvedColor}
139
140
  alignOffset={getMenuAlignOffset(scalarSize)}
@@ -159,7 +160,7 @@ const ContextMenuContent = React.forwardRef<ContextMenuContentElement, ContextMe
159
160
  </ScrollArea>
160
161
  )}
161
162
  </ContextMenuPrimitive.Content>
162
- </Theme>
163
+ </PortalTheme>
163
164
  </ContextMenuPrimitive.Portal>
164
165
  );
165
166
  },
@@ -419,7 +420,7 @@ const ContextMenuSubContent = React.forwardRef<
419
420
 
420
421
  return (
421
422
  <ContextMenuPrimitive.Portal container={container} forceMount={forceMount}>
422
- <Theme asChild>
423
+ <PortalTheme asChild>
423
424
  <ContextMenuPrimitive.SubContent
424
425
  data-accent-color={color}
425
426
  alignOffset={getMenuAlignOffset(scalarSize)}
@@ -449,7 +450,7 @@ const ContextMenuSubContent = React.forwardRef<
449
450
  </ScrollArea>
450
451
  )}
451
452
  </ContextMenuPrimitive.SubContent>
452
- </Theme>
453
+ </PortalTheme>
453
454
  </ContextMenuPrimitive.Portal>
454
455
  );
455
456
  });
@@ -5,7 +5,7 @@ import { Dialog as DialogPrimitive } from 'radix-ui';
5
5
  import { dialogContentPropDefs } from './dialog.props.js';
6
6
  import { Heading } from './heading.js';
7
7
  import { Text } from './text.js';
8
- import { Theme } from './theme.js';
8
+ import { PortalTheme } from './_internal/portal-theme.js';
9
9
  import { extractProps } from '../helpers/extract-props.js';
10
10
  import { useThemeSizeProps } from '../hooks/theme-size.js';
11
11
  import { requireReactElement } from '../helpers/require-react-element.js';
@@ -48,7 +48,7 @@ const DialogContent = React.forwardRef<DialogContentElement, DialogContentProps>
48
48
 
49
49
  return (
50
50
  <DialogPrimitive.Portal container={container} forceMount={forceMount}>
51
- <Theme asChild>
51
+ <PortalTheme asChild>
52
52
  <DialogPrimitive.Overlay className="kui-BaseDialogOverlay kui-DialogOverlay">
53
53
  <div className="kui-BaseDialogScroll kui-DialogScroll">
54
54
  <div className={`kui-BaseDialogScrollPadding kui-DialogScrollPadding ${alignClassName}`}>
@@ -67,7 +67,7 @@ const DialogContent = React.forwardRef<DialogContentElement, DialogContentProps>
67
67
  </div>
68
68
  </div>
69
69
  </DialogPrimitive.Overlay>
70
- </Theme>
70
+ </PortalTheme>
71
71
  </DialogPrimitive.Portal>
72
72
  );
73
73
  });
@@ -13,7 +13,8 @@ import {
13
13
  dropdownMenuCheckboxItemPropDefs,
14
14
  dropdownMenuRadioItemPropDefs,
15
15
  } from './dropdown-menu.props.js';
16
- import { Theme, useThemeContext } from './theme.js';
16
+ import { useThemeContext } from './theme.js';
17
+ import { PortalTheme } from './_internal/portal-theme.js';
17
18
  import { ChevronDownIcon, ThickCheckIcon, ThickChevronLeftIcon, ThickChevronRightIcon, ThickDotIcon } from './icons.js';
18
19
  import { extractProps } from '../helpers/extract-props.js';
19
20
  import { useThemeSizeProps } from '../hooks/theme-size.js';
@@ -196,7 +197,7 @@ const DropdownMenuContent = React.forwardRef<DropdownMenuContentElement, Dropdow
196
197
 
197
198
  return (
198
199
  <DropdownMenuPrimitive.Portal container={container} forceMount={forceMount}>
199
- <Theme asChild>
200
+ <PortalTheme asChild>
200
201
  <DropdownMenuPrimitive.Content
201
202
  data-accent-color={resolvedColor}
202
203
  align="start"
@@ -227,7 +228,7 @@ const DropdownMenuContent = React.forwardRef<DropdownMenuContentElement, Dropdow
227
228
  </ScrollArea>
228
229
  )}
229
230
  </DropdownMenuPrimitive.Content>
230
- </Theme>
231
+ </PortalTheme>
231
232
  </DropdownMenuPrimitive.Portal>
232
233
  );
233
234
  },
@@ -724,7 +725,7 @@ const CascadeSubContent = React.forwardRef<DropdownMenuSubContentElement, Dropdo
724
725
 
725
726
  return (
726
727
  <DropdownMenuPrimitive.Portal container={container} forceMount={forceMount}>
727
- <Theme asChild>
728
+ <PortalTheme asChild>
728
729
  <DropdownMenuPrimitive.SubContent
729
730
  data-accent-color={color}
730
731
  alignOffset={getMenuAlignOffset(scalarSize)}
@@ -754,7 +755,7 @@ const CascadeSubContent = React.forwardRef<DropdownMenuSubContentElement, Dropdo
754
755
  </ScrollArea>
755
756
  )}
756
757
  </DropdownMenuPrimitive.SubContent>
757
- </Theme>
758
+ </PortalTheme>
758
759
  </DropdownMenuPrimitive.Portal>
759
760
  );
760
761
  },
@@ -6,7 +6,7 @@ import { extractProps } from '../helpers/extract-props.js';
6
6
  import { useThemeSizeProps } from '../hooks/theme-size.js';
7
7
  import { requireReactElement } from '../helpers/require-react-element.js';
8
8
  import { popoverContentPropDefs } from './popover.props.js';
9
- import { Theme } from './theme.js';
9
+ import { PortalTheme } from './_internal/portal-theme.js';
10
10
 
11
11
  import type { PopoverContentOwnProps } from './popover.props.js';
12
12
  import type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';
@@ -15,10 +15,6 @@ import type { ComponentPropsWithout, RemovedProps } from '../helpers/component-p
15
15
  // Popover Content Context
16
16
  // ---------------------------------------------
17
17
  type PopoverContentContextValue = {
18
- /** Ref to the Popover.Content DOM node */
19
- contentRef: React.MutableRefObject<HTMLDivElement | null>;
20
- /** Update content's toolbar offset variable and presence flag */
21
- setToolbarOffset: (offsetPx: number) => void;
22
18
  /** Wire up aria-labelledby for toolbar title */
23
19
  setLabelId: (id: string | undefined) => void;
24
20
  };
@@ -68,52 +64,27 @@ const PopoverContent = React.forwardRef<PopoverContentElement, PopoverContentPro
68
64
  ...contentProps
69
65
  } = extractProps(props, popoverContentPropDefs);
70
66
 
71
- // Manage refs (we need the DOM node to apply CSS variables)
72
- const contentRef = React.useRef<HTMLDivElement>(null);
73
- const combinedRef = React.useCallback(
74
- (node: HTMLDivElement | null) => {
75
- contentRef.current = node;
76
- if (typeof forwardedRef === 'function') {
77
- forwardedRef(node);
78
- } else if (forwardedRef) {
79
- (forwardedRef as React.MutableRefObject<HTMLDivElement | null>).current = node;
80
- }
81
- },
82
- [forwardedRef],
83
- );
84
-
85
67
  const [labelId, setLabelId] = React.useState<string | undefined>(undefined);
86
-
87
- const setToolbarOffset = React.useCallback((offsetPx: number) => {
88
- const el = contentRef.current;
89
- if (!el) return;
90
- if (offsetPx > 0) {
91
- el.style.setProperty('--popover-toolbar-offset', `${offsetPx}px`);
92
- el.setAttribute('data-has-toolbar', 'true');
93
- } else {
94
- el.style.removeProperty('--popover-toolbar-offset');
95
- el.removeAttribute('data-has-toolbar');
96
- }
97
- }, []);
68
+ const contextValue = React.useMemo(() => ({ setLabelId }), []);
98
69
 
99
70
  return (
100
71
  <PopoverPrimitive.Portal container={container} forceMount={forceMount}>
101
- <Theme asChild>
72
+ <PortalTheme asChild>
102
73
  <PopoverPrimitive.Content
103
74
  align="start"
104
75
  sideOffset={8}
105
76
  collisionPadding={10}
106
77
  {...contentProps}
107
- ref={combinedRef}
78
+ ref={forwardedRef}
108
79
  // A Toolbar.Title names the panel; without one, the caller's own value stands.
109
80
  aria-labelledby={labelId ?? contentProps['aria-labelledby']}
110
81
  className={classNames('kui-PopperContent', 'kui-PopoverContent', className)}
111
82
  >
112
- <PopoverContentContext.Provider value={React.useMemo(() => ({ contentRef, setToolbarOffset, setLabelId }), [setToolbarOffset])}>
83
+ <PopoverContentContext.Provider value={contextValue}>
113
84
  {props.children}
114
85
  </PopoverContentContext.Provider>
115
86
  </PopoverPrimitive.Content>
116
- </Theme>
87
+ </PortalTheme>
117
88
  </PopoverPrimitive.Portal>
118
89
  );
119
90
  },
@@ -150,37 +121,12 @@ type PopoverToolbarProps = React.ComponentPropsWithoutRef<'div'>;
150
121
 
151
122
  const PopoverToolbarBase = React.forwardRef<PopoverToolbarElement, PopoverToolbarProps>(
152
123
  ({ className, children, ...props }, forwardedRef) => {
153
- const ctx = usePopoverContentContext('Popover.Toolbar');
154
-
155
- const localRef = React.useRef<HTMLDivElement | null>(null);
156
- const setRefs = React.useCallback(
157
- (node: HTMLDivElement | null) => {
158
- localRef.current = node;
159
- if (typeof forwardedRef === 'function') forwardedRef(node);
160
- else if (forwardedRef)
161
- (forwardedRef as React.MutableRefObject<HTMLDivElement | null>).current = node;
162
- },
163
- [forwardedRef],
164
- );
165
-
166
- React.useEffect(() => {
167
- if (!ctx || !localRef.current) return;
168
- const el = localRef.current;
169
- const update = () => {
170
- const height = el.getBoundingClientRect().height;
171
- ctx.setToolbarOffset(height);
172
- };
173
- update();
174
- const ro = new ResizeObserver(update);
175
- ro.observe(el);
176
- return () => {
177
- ro.disconnect();
178
- ctx.setToolbarOffset(0);
179
- };
180
- }, [ctx]);
124
+ // The toolbar is sticky in the content's own CSS, so it needs no measuring; this only warns
125
+ // when it is used outside Popover.Content.
126
+ usePopoverContentContext('Popover.Toolbar');
181
127
 
182
128
  return (
183
- <div {...props} ref={setRefs} className={classNames('kui-PopoverToolbar', className)}>
129
+ <div {...props} ref={forwardedRef} className={classNames('kui-PopoverToolbar', className)}>
184
130
  {children}
185
131
  </div>
186
132
  );
@@ -4,7 +4,7 @@ import { ScrollArea as ScrollAreaPrimitive } from 'radix-ui';
4
4
  import { useComposedRefs } from 'radix-ui/internal';
5
5
 
6
6
  import { scrollAreaPropDefs } from './scroll-area.props.js';
7
- import { useScrollEdges } from '../hooks/use-scroll-edges.js';
7
+ import { scrollableOverflow, useScrollEdges } from '../hooks/use-scroll-edges.js';
8
8
  import { useThumbSync } from '../hooks/use-thumb-sync.js';
9
9
  import { getSubtree } from '../helpers/get-subtree.js';
10
10
  import { extractProps } from '../helpers/extract-props.js';
@@ -38,7 +38,8 @@ function useFocusableWhileScrollable(element: HTMLDivElement | null, enabled: bo
38
38
  let frame = 0;
39
39
  const update = () => {
40
40
  frame = 0;
41
- const scrollable = element.scrollHeight > element.clientHeight || element.scrollWidth > element.clientWidth;
41
+ const overflow = scrollableOverflow(element);
42
+ const scrollable = overflow.x > 0 || overflow.y > 0;
42
43
  if (scrollable) element.setAttribute('tabindex', '0');
43
44
  else element.removeAttribute('tabindex');
44
45
  };
@@ -194,7 +194,7 @@
194
194
  * *
195
195
  ***************************************************************************************************/
196
196
 
197
- /* raised: the default. A field, as in v2: a flat soft fill with a faint edge, no shadow. */
197
+ /* raised: the default. A field: the surface colour with --control-chrome, like a raised button. */
198
198
 
199
199
  .kui-SelectTrigger:where(.kui-variant-raised) {
200
200
  position: relative;
@@ -13,7 +13,8 @@ import {
13
13
  selectTriggerPropDefs,
14
14
  selectContentPropDefs,
15
15
  } from './select.props.js';
16
- import { useThemeContext, Theme } from './theme.js';
16
+ import { useThemeContext } from './theme.js';
17
+ import { PortalTheme } from './_internal/portal-theme.js';
17
18
  import { useThumbSync } from '../hooks/use-thumb-sync.js';
18
19
 
19
20
  import type { GetPropDefTypes } from '../props/prop-def.js';
@@ -203,7 +204,7 @@ const SelectContent = React.forwardRef<SelectContentElement, SelectContentProps>
203
204
  const resolvedColor = color || themeContext.accentColor;
204
205
  return (
205
206
  <SelectPrimitive.Portal container={container}>
206
- <Theme asChild>
207
+ <PortalTheme asChild>
207
208
  <SelectPrimitive.Content
208
209
  data-accent-color={resolvedColor}
209
210
  sideOffset={4}
@@ -220,7 +221,7 @@ const SelectContent = React.forwardRef<SelectContentElement, SelectContentProps>
220
221
  >
221
222
  <SelectScrollArea>{children}</SelectScrollArea>
222
223
  </SelectPrimitive.Content>
223
- </Theme>
224
+ </PortalTheme>
224
225
  </SelectPrimitive.Portal>
225
226
  );
226
227
  },
@@ -38,7 +38,7 @@ import { Dialog as DialogPrimitive } from 'radix-ui';
38
38
 
39
39
  import { dialogContentPropDefs } from './dialog.props.js';
40
40
  import type { DialogContentOwnProps } from './dialog.props.js';
41
- import { Theme } from './theme.js';
41
+ import { PortalTheme } from './_internal/portal-theme.js';
42
42
  import { Heading } from './heading.js';
43
43
  import { Text } from './text.js';
44
44
  import { extractProps } from '../helpers/extract-props.js';
@@ -147,7 +147,7 @@ const Content = React.forwardRef<SheetContentElement, SheetContentProps>((allPro
147
147
  return (
148
148
  <DialogPrimitive.Portal container={container} forceMount={forceMount}>
149
149
  <SheetTitleCountContext.Provider value={titleCountRef}>
150
- <Theme asChild>
150
+ <PortalTheme asChild>
151
151
  <DialogPrimitive.Overlay className="kui-BaseDialogOverlay kui-DialogOverlay kui-SheetOverlay">
152
152
  <DialogPrimitive.Content
153
153
  {...contentProps}
@@ -157,7 +157,7 @@ const Content = React.forwardRef<SheetContentElement, SheetContentProps>((allPro
157
157
  aria-modal="true"
158
158
  />
159
159
  </DialogPrimitive.Overlay>
160
- </Theme>
160
+ </PortalTheme>
161
161
  </SheetTitleCountContext.Provider>
162
162
  </DialogPrimitive.Portal>
163
163
  );
@@ -253,12 +253,20 @@
253
253
  pointer-events: auto;
254
254
  }
255
255
  /* A Toolbar spans the row, and so may a cluster inside it. pointer-events inherits, so the
256
- Toolbar passes clicks through and only its controls and groups take them back: the empty
257
- stretch between them lets clicks reach the content. */
256
+ Toolbar and its layout boxes pass clicks through, and every interactive element in it takes
257
+ them back, with whatever it holds: the empty stretch between them lets clicks reach the
258
+ content. A group and a text field are painted boxes, so they keep their clicks too. */
258
259
  & > :where(.kui-Toolbar) {
259
260
  pointer-events: none;
260
261
  }
261
- & > :where(.kui-Toolbar) :where(.kui-ToolbarGroup, .kui-BaseButton, .kui-TextFieldRoot, .kui-SelectTrigger, .kui-SegmentedControlRoot, [href], [tabindex]) {
262
+ /* The native controls are named by tag: any of them may sit in a Toolbar. */
263
+ /* stylelint-disable-next-line selector-max-type */
264
+ & > :where(.kui-Toolbar) :where(
265
+ button, a[href], input, select, textarea, label, summary, [tabindex], [contenteditable]:not([contenteditable='false']),
266
+ [role='button'], [role='link'], [role='checkbox'], [role='switch'], [role='radio'], [role='radiogroup'],
267
+ [role='slider'], [role='combobox'], [role='tab'], [role='tablist'], [role='menuitem'], [aria-haspopup],
268
+ .kui-ToolbarGroup, .kui-TextFieldRoot
269
+ ) {
262
270
  pointer-events: auto;
263
271
  }
264
272
  }
@@ -33,7 +33,7 @@ import type { BottomPublicProps } from './_internal/shell-bottom.js';
33
33
  import { Inspector } from './_internal/shell-inspector.js';
34
34
  import type { InspectorPublicProps } from './_internal/shell-inspector.js';
35
35
  import { usePane, paneAttributes, usePresentationTable } from './_internal/shell-pane.js';
36
- import { splitHandles, useResizablePane } from './_internal/shell-resizable.js';
36
+ import { splitHandles, useInitialPaneSize, useResizablePane } from './_internal/shell-resizable.js';
37
37
  import {
38
38
  FIXED_TABLE,
39
39
  ShellInsetContext,
@@ -54,6 +54,7 @@ import { readBreakpoint } from '../hooks/use-breakpoint.js';
54
54
  import { useThemeSize } from '../hooks/theme-size.js';
55
55
  import { PaneChromeScope, PaneFooter, PaneHeader, Scroll, ShellContentContext, ShellSizeContext } from './_internal/pane-chrome.js';
56
56
  import type { PaneSize, PaneHeaderProps, PaneFooterProps, ScrollProps } from './_internal/pane-chrome.js';
57
+ import { PaneBandSizeContext } from './_internal/pane-band-context.js';
57
58
  import type { Breakpoint, CSSPropertiesWithVars, PaneBaseProps, PaneMode, PaneName, PaneTarget, ResponsivePresentation, SidebarMode } from './shell.types.js';
58
59
 
59
60
  /* ── Root ──────────────────────────────────────────────────────────────────── */
@@ -371,6 +372,8 @@ const Root = React.forwardRef<HTMLDivElement, ShellRootProps>(({ className, chil
371
372
  <ShellSizeContext.Provider value={size}>
372
373
  <ShellContentContext.Provider value={false}>
373
374
  <ShellInsetContext.Provider value={insetContext}>
375
+ {/* A Shell inside a portalled surface's Theme starts with no band, like any other. */}
376
+ <PaneBandSizeContext.Provider value={undefined}>
374
377
  {/* The Root is not a widget: it hears Escape bubbling up from the panes,
375
378
  after their own handlers, to close the overlays. */}
376
379
  {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}
@@ -391,6 +394,7 @@ const Root = React.forwardRef<HTMLDivElement, ShellRootProps>(({ className, chil
391
394
  the accessibility tree, so the scrim itself is hidden from it. */}
392
395
  <div className="kui-ShellScrim" aria-hidden onClick={closeOverlays} />
393
396
  </div>
397
+ </PaneBandSizeContext.Provider>
394
398
  </ShellInsetContext.Provider>
395
399
  </ShellContentContext.Provider>
396
400
  </ShellSizeContext.Provider>
@@ -650,6 +654,8 @@ const Panel = React.forwardRef<HTMLDivElement, PanelPublicProps>((props, ref) =>
650
654
  requestToggle: () => pane.toggle('toggle'),
651
655
  });
652
656
 
657
+ // The starting size is in the server HTML, so the pane does not jump on hydration.
658
+ const initialSize = useInitialPaneSize(size, defaultSize, minSize, maxSize);
653
659
  const { handles, content } = splitHandles(children, PanelHandle);
654
660
  const handle = resizable && pane.shown !== false && !pane.overlaying ? <PaneResizeContext.Provider value={resize}>{handles.length > 0 ? handles : <PaneHandle />}</PaneResizeContext.Provider> : null;
655
661
 
@@ -667,6 +673,7 @@ const Panel = React.forwardRef<HTMLDivElement, PanelPublicProps>((props, ref) =>
667
673
  {
668
674
  ...style,
669
675
  '--panel-expanded-size': `${expandedSize}px`,
676
+ ...(initialSize ? { '--panel-size': initialSize } : {}),
670
677
  } as CSSPropertiesWithVars
671
678
  }
672
679
  >
@@ -140,6 +140,24 @@ const Slider = React.forwardRef<SliderElement, SliderProps>((ownProps, forwarded
140
140
  [snapToTicks, sortedTicks, snapKeyStep, snapToNearestTick, currentValue, onValueChange, isControlled],
141
141
  );
142
142
 
143
+ // Radix commits its own step value on a key press, before the snapped value comes back. So
144
+ // the commit snaps the same way the change did, and a key press that snaps back to where the
145
+ // handle was commits nothing.
146
+ const handleValueCommit = React.useCallback(
147
+ (newValue: number[]) => {
148
+ if (!onValueCommit) return;
149
+ if (!snapToTicks || sortedTicks.length === 0) {
150
+ onValueCommit(newValue);
151
+ return;
152
+ }
153
+ const keyboard = keyboardChangeRef.current;
154
+ const finalValue = newValue.map((v, i) => (keyboard && currentValue[i] !== undefined ? snapKeyStep(v, currentValue[i]) : snapToNearestTick(v)));
155
+ if (keyboard && finalValue.every((v, i) => v === currentValue[i])) return;
156
+ onValueCommit(finalValue);
157
+ },
158
+ [onValueCommit, snapToTicks, sortedTicks, snapKeyStep, snapToNearestTick, currentValue],
159
+ );
160
+
143
161
  // Cleanup timeout on unmount
144
162
  React.useEffect(() => {
145
163
  return () => {
@@ -170,7 +188,7 @@ const Slider = React.forwardRef<SliderElement, SliderProps>((ownProps, forwarded
170
188
  rootProps.onPointerDown?.(event);
171
189
  }}
172
190
  onValueChange={handleValueChange}
173
- onValueCommit={onValueCommit}
191
+ onValueCommit={handleValueCommit}
174
192
  asChild={false}
175
193
  className={classNames('kui-SliderRoot', className)}
176
194
  >
@@ -98,8 +98,23 @@
98
98
  }
99
99
  }
100
100
 
101
+ /* A Spinner with children is one tree, loading or not. At rest it steps out of layout. */
102
+ .kui-SpinnerHost:where(:not([data-loading])) {
103
+ display: contents;
104
+ }
105
+
106
+ .kui-SpinnerHost:where([data-loading]) {
107
+ position: relative;
108
+ display: flex;
109
+ align-items: center;
110
+ justify-content: center;
111
+ }
112
+
113
+ .kui-SpinnerChildren {
114
+ display: contents;
115
+ }
116
+
101
117
  /* Children of a Spinner keep their space but are not shown while it spins. A class, not an inline style. */
102
118
  .kui-SpinnerHiddenChildren {
103
- display: contents;
104
119
  visibility: hidden;
105
120
  }
@@ -19,7 +19,8 @@ const Spinner = React.forwardRef<SpinnerElement, SpinnerProps>((props, forwarded
19
19
  spinnerPropDefs
20
20
  );
21
21
 
22
- if (!loading) return children;
22
+ // Without children a Spinner is only the wheel, shown while loading.
23
+ if (children === undefined && !loading) return null;
23
24
 
24
25
  // Decorative unless named: a named spinner is a status message, an unnamed one is hidden.
25
26
  const named =
@@ -50,22 +51,22 @@ const Spinner = React.forwardRef<SpinnerElement, SpinnerProps>((props, forwarded
50
51
 
51
52
  if (children === undefined) return spinner;
52
53
 
54
+ // With children, one tree whether loading or not, so starting or stopping never remounts them
55
+ // (their state, focus and refs survive). At rest the host is `display: contents`; while loading
56
+ // it centres the wheel over the children, which keep their space but are hidden.
53
57
  return (
54
- <Flex asChild position="relative" align="center" justify="center">
55
- <span aria-busy="true">
56
- {/**
57
- * `display: contents` removes the content from the accessibility tree in some browsers,
58
- * so we force remove it with `aria-hidden`
59
- */}
60
- <span aria-hidden className="kui-SpinnerHiddenChildren">
61
- {children}
62
- </span>
63
-
58
+ <span className="kui-SpinnerHost" data-loading={loading || undefined} aria-busy={loading || undefined}>
59
+ {/* `display: contents` removes the content from the accessibility tree in some browsers, so
60
+ while loading it is removed with `aria-hidden` too. */}
61
+ <span aria-hidden={loading || undefined} className={classNames('kui-SpinnerChildren', loading && 'kui-SpinnerHiddenChildren')}>
62
+ {children}
63
+ </span>
64
+ {loading ? (
64
65
  <Flex asChild align="center" justify="center" position="absolute" inset="0">
65
66
  <span>{spinner}</span>
66
67
  </Flex>
67
- </span>
68
- </Flex>
68
+ ) : null}
69
+ </span>
69
70
  );
70
71
  });
71
72
  Spinner.displayName = 'Spinner';
@@ -354,7 +354,7 @@
354
354
  * *
355
355
  ***************************************************************************************************/
356
356
 
357
- /* Raised variant: the default. A flat soft fill with a faint edge, as in v2. A field casts no shadow. */
357
+ /* Raised variant: the default. The surface colour with --control-chrome, like a raised button. */
358
358
  .kui-TextAreaRoot:where(.kui-variant-raised) {
359
359
  --text-area-border-width: 1px;
360
360
  --v-selection-color: var(--focus-a5);
@@ -464,7 +464,24 @@
464
464
  * *
465
465
  ***************************************************************************************************/
466
466
 
467
- /* A sibling of the root, below the box: it takes the field's type itself. */
467
+ /* With an error message, one box holds the field and the message below it. Without one the
468
+ wrapper steps out of layout, and the field is the box. */
469
+ .kui-TextAreaWrapper:where(:not([data-message])) {
470
+ display: contents;
471
+ }
472
+
473
+ .kui-TextAreaWrapper:where([data-message]) {
474
+ display: flex;
475
+ flex-direction: column;
476
+ min-width: 0;
477
+
478
+ /* A height given to the pair goes to the box, the message keeps its own. */
479
+ & > :where(.kui-TextAreaRoot) {
480
+ flex: 1 1 auto;
481
+ }
482
+ }
483
+
484
+ /* Below the box, outside its paint: it takes the field's type itself. */
468
485
  .kui-TextAreaErrorMessage {
469
486
  font-family: var(--default-font-family);
470
487
  font-weight: var(--font-weight-regular);
@@ -3,6 +3,7 @@ import classNames from 'classnames';
3
3
 
4
4
  import { textAreaPropDefs } from './text-area.props.js';
5
5
  import { extractProps } from '../helpers/extract-props.js';
6
+ import { mergeStyles } from '../helpers/merge-styles.js';
6
7
  import { useThemeSizeProps } from '../hooks/theme-size.js';
7
8
 
8
9
  import type { ComponentPropsWithout, RemovedProps } from '../helpers/component-props.js';
@@ -18,9 +19,12 @@ interface TextAreaProps
18
19
  TextAreaOwnProps {}
19
20
 
20
21
  const TextArea = React.forwardRef<TextAreaElement, TextAreaProps>((ownProps, forwardedRef) => {
21
- const props = useThemeSizeProps(ownProps, textAreaPropDefs.size);
22
+ // The caller's className and style are kept apart from the size and variant classes: with an
23
+ // error message they go on the wrapper, which is then the one box the parent lays out.
24
+ const { className: ownClassName, style: ownStyle, ...themedProps } = useThemeSizeProps(ownProps, textAreaPropDefs.size);
22
25
  const { className, color, radius, style, ...textAreaProps } =
23
- extractProps(props, textAreaPropDefs);
26
+ extractProps(themedProps, textAreaPropDefs);
27
+ const wrapped = Boolean(textAreaProps.errorMessage);
24
28
 
25
29
  // Generate unique IDs for accessibility
26
30
  const errorId = React.useId();
@@ -58,32 +62,38 @@ const TextArea = React.forwardRef<TextAreaElement, TextAreaProps>((ownProps, for
58
62
  ...nativeTextAreaProps
59
63
  } = textAreaProps;
60
64
 
61
- // The message is a sibling of the painted root, so it sits below the box rather than inside it.
65
+ const field = (
66
+ <div
67
+ data-accent-color={color}
68
+ data-radius={radius}
69
+ className={classNames('kui-TextAreaRoot', className, !wrapped && ownClassName, {
70
+ // Not used by the library's CSS (invalid styling keys on aria-invalid); kept as a hook for app styles.
71
+ 'kui-error': isInvalid,
72
+ })}
73
+ style={wrapped ? style : mergeStyles(style, ownStyle)}
74
+ >
75
+ <textarea
76
+ className="kui-reset kui-TextAreaInput"
77
+ ref={forwardedRef}
78
+ {...nativeTextAreaProps}
79
+ required={required || undefined}
80
+ {...ariaProps}
81
+ />
82
+ </div>
83
+ );
84
+ // The wrapper is always there, so a message coming or going never moves the field in the tree:
85
+ // moving it would remount the input, dropping focus, the caret and an uncontrolled value. With
86
+ // no message it is `display: contents` and the field is the box the parent lays out; with one
87
+ // it holds the field and the message below it, and the caller's className and style size the pair.
62
88
  return (
63
- <>
64
- <div
65
- data-accent-color={color}
66
- data-radius={radius}
67
- className={classNames('kui-TextAreaRoot', className, {
68
- // Not used by the library's CSS (invalid styling keys on aria-invalid); kept as a hook for app styles.
69
- 'kui-error': isInvalid,
70
- })}
71
- style={style}
72
- >
73
- <textarea
74
- className="kui-reset kui-TextAreaInput"
75
- ref={forwardedRef}
76
- {...nativeTextAreaProps}
77
- required={required || undefined}
78
- {...ariaProps}
79
- />
80
- </div>
81
- {textAreaProps.errorMessage && (
89
+ <div className={classNames('kui-TextAreaWrapper', wrapped && ownClassName)} style={wrapped ? ownStyle : undefined} data-message={wrapped || undefined}>
90
+ {field}
91
+ {wrapped ? (
82
92
  <div id={errorId} className="kui-TextAreaErrorMessage" role="alert">
83
93
  {textAreaProps.errorMessage}
84
94
  </div>
85
- )}
86
- </>
95
+ ) : null}
96
+ </div>
87
97
  );
88
98
  });
89
99
 
@@ -392,7 +392,7 @@
392
392
  }
393
393
  }
394
394
 
395
- /* raised: the default. A flat soft fill with a faint edge, as in v2. A field casts no shadow. */
395
+ /* raised: the default. The surface colour with --control-chrome, like a raised button. */
396
396
 
397
397
  .kui-TextFieldRoot:where(.kui-variant-raised) {
398
398
  --text-field-selection-color: var(--focus-a5);
@@ -645,8 +645,20 @@
645
645
  }
646
646
 
647
647
  /* Error message styling */
648
+ /* With an error message, one box holds the field and the message below it. Without one the
649
+ wrapper steps out of layout, and the field is the box. */
650
+ .kui-TextFieldWrapper:where(:not([data-message])) {
651
+ display: contents;
652
+ }
653
+
654
+ .kui-TextFieldWrapper:where([data-message]) {
655
+ display: flex;
656
+ flex-direction: column;
657
+ min-width: 0;
658
+ }
659
+
648
660
  .kui-TextFieldErrorMessage {
649
- /* A sibling of the root, below the field: it takes the field's type itself. */
661
+ /* Below the field, outside its paint: it takes the field's type itself. */
650
662
  font-family: var(--default-font-family);
651
663
  font-weight: var(--font-weight-regular);
652
664
  color: var(--red-11);