@womp/kookie-ui 0.26.2 → 0.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (340) hide show
  1. package/components.css +165 -4
  2. package/dist/cjs/components/_internal/base-button.js +1 -1
  3. package/dist/cjs/components/_internal/base-button.js.map +2 -2
  4. package/dist/cjs/components/_internal/pane-band-context.d.ts +4 -3
  5. package/dist/cjs/components/_internal/pane-band-context.d.ts.map +1 -1
  6. package/dist/cjs/components/_internal/pane-band-context.js.map +2 -2
  7. package/dist/cjs/components/_internal/pane-chrome.d.ts +7 -1
  8. package/dist/cjs/components/_internal/pane-chrome.d.ts.map +1 -1
  9. package/dist/cjs/components/_internal/pane-chrome.js +1 -1
  10. package/dist/cjs/components/_internal/pane-chrome.js.map +4 -4
  11. package/dist/cjs/components/_internal/portal-theme.d.ts +9 -0
  12. package/dist/cjs/components/_internal/portal-theme.d.ts.map +1 -0
  13. package/dist/cjs/components/_internal/portal-theme.js +3 -0
  14. package/dist/cjs/components/_internal/portal-theme.js.map +7 -0
  15. package/dist/cjs/components/_internal/shell-page-scroll.d.ts +15 -0
  16. package/dist/cjs/components/_internal/shell-page-scroll.d.ts.map +1 -0
  17. package/dist/cjs/components/_internal/shell-page-scroll.js +3 -0
  18. package/dist/cjs/components/_internal/shell-page-scroll.js.map +7 -0
  19. package/dist/cjs/components/_internal/shell-sidebar.js +1 -1
  20. package/dist/cjs/components/_internal/shell-sidebar.js.map +4 -4
  21. package/dist/cjs/components/alert-dialog.js +1 -1
  22. package/dist/cjs/components/alert-dialog.js.map +4 -4
  23. package/dist/cjs/components/button.js +1 -1
  24. package/dist/cjs/components/button.js.map +4 -4
  25. package/dist/cjs/components/chatbar.js +1 -1
  26. package/dist/cjs/components/chatbar.js.map +4 -4
  27. package/dist/cjs/components/chip.js +1 -1
  28. package/dist/cjs/components/chip.js.map +4 -4
  29. package/dist/cjs/components/combobox.d.ts.map +1 -1
  30. package/dist/cjs/components/combobox.js +1 -1
  31. package/dist/cjs/components/combobox.js.map +4 -4
  32. package/dist/cjs/components/context-menu.d.ts.map +1 -1
  33. package/dist/cjs/components/context-menu.js +1 -1
  34. package/dist/cjs/components/context-menu.js.map +4 -4
  35. package/dist/cjs/components/dialog.js +1 -1
  36. package/dist/cjs/components/dialog.js.map +4 -4
  37. package/dist/cjs/components/dropdown-menu.d.ts.map +1 -1
  38. package/dist/cjs/components/dropdown-menu.js +1 -1
  39. package/dist/cjs/components/dropdown-menu.js.map +4 -4
  40. package/dist/cjs/components/index.js +2 -2
  41. package/dist/cjs/components/index.js.map +4 -4
  42. package/dist/cjs/components/message-scroller.js +1 -1
  43. package/dist/cjs/components/message-scroller.js.map +4 -4
  44. package/dist/cjs/components/notice.js +1 -1
  45. package/dist/cjs/components/notice.js.map +4 -4
  46. package/dist/cjs/components/popover.js +1 -1
  47. package/dist/cjs/components/popover.js.map +4 -4
  48. package/dist/cjs/components/schemas/index.js +1 -1
  49. package/dist/cjs/components/schemas/index.js.map +2 -2
  50. package/dist/cjs/components/schemas/shell.schema.d.ts +1 -0
  51. package/dist/cjs/components/schemas/shell.schema.d.ts.map +1 -1
  52. package/dist/cjs/components/schemas/shell.schema.js +1 -1
  53. package/dist/cjs/components/schemas/shell.schema.js.map +2 -2
  54. package/dist/cjs/components/select.d.ts.map +1 -1
  55. package/dist/cjs/components/select.js +1 -1
  56. package/dist/cjs/components/select.js.map +4 -4
  57. package/dist/cjs/components/sheet.js +1 -1
  58. package/dist/cjs/components/sheet.js.map +4 -4
  59. package/dist/cjs/components/shell.d.ts +11 -0
  60. package/dist/cjs/components/shell.d.ts.map +1 -1
  61. package/dist/cjs/components/shell.js +1 -1
  62. package/dist/cjs/components/shell.js.map +4 -4
  63. package/dist/cjs/components/sidebar.js +1 -1
  64. package/dist/cjs/components/sidebar.js.map +4 -4
  65. package/dist/cjs/components/spinner.d.ts.map +1 -1
  66. package/dist/cjs/components/spinner.js +1 -1
  67. package/dist/cjs/components/spinner.js.map +2 -2
  68. package/dist/cjs/components/text-area.d.ts.map +1 -1
  69. package/dist/cjs/components/text-area.js +1 -1
  70. package/dist/cjs/components/text-area.js.map +2 -2
  71. package/dist/cjs/components/text-field.d.ts.map +1 -1
  72. package/dist/cjs/components/text-field.js +2 -2
  73. package/dist/cjs/components/text-field.js.map +2 -2
  74. package/dist/cjs/components/theme.d.ts.map +1 -1
  75. package/dist/cjs/components/theme.js +1 -1
  76. package/dist/cjs/components/theme.js.map +4 -4
  77. package/dist/cjs/components/toggle.js +1 -1
  78. package/dist/cjs/components/toggle.js.map +4 -4
  79. package/dist/cjs/components/toolbar.js +1 -1
  80. package/dist/cjs/components/toolbar.js.map +4 -4
  81. package/dist/cjs/components/tooltip.js +1 -1
  82. package/dist/cjs/components/tooltip.js.map +4 -4
  83. package/dist/cjs/index.js +4 -4
  84. package/dist/cjs/index.js.map +4 -4
  85. package/dist/esm/{chunk-6M6HGIGN.js → chunk-25ZRMILM.js} +2 -2
  86. package/dist/esm/chunk-2E57H3NH.js +3 -0
  87. package/dist/esm/chunk-2E57H3NH.js.map +7 -0
  88. package/dist/esm/chunk-2S7HPQVX.js +3 -0
  89. package/dist/esm/chunk-2S7HPQVX.js.map +7 -0
  90. package/dist/esm/{chunk-UG73IGRF.js → chunk-2ZKEQS76.js} +2 -2
  91. package/dist/esm/{chunk-H2TSRYQ5.js → chunk-324VC67W.js} +2 -2
  92. package/dist/esm/{chunk-UR5BUNNT.js → chunk-3MFSQ6PN.js} +2 -2
  93. package/dist/esm/{chunk-OTCVSJT7.js → chunk-4MNRLB57.js} +2 -2
  94. package/dist/esm/{chunk-TFFU435D.js → chunk-5BX2YZV6.js} +2 -2
  95. package/dist/esm/chunk-5BX2YZV6.js.map +7 -0
  96. package/dist/esm/chunk-67UEMB4K.js +3 -0
  97. package/dist/esm/chunk-67UEMB4K.js.map +7 -0
  98. package/dist/esm/chunk-6HEORZNJ.js +3 -0
  99. package/dist/esm/chunk-6HEORZNJ.js.map +7 -0
  100. package/dist/esm/{chunk-K55IQP5H.js → chunk-6YWHNLSC.js} +2 -2
  101. package/dist/esm/chunk-6YWHNLSC.js.map +7 -0
  102. package/dist/esm/{chunk-NYBE3U3V.js → chunk-7QBNXNEN.js} +2 -2
  103. package/dist/esm/{chunk-E6BDD3PN.js → chunk-7V6M3MIR.js} +2 -2
  104. package/dist/esm/{chunk-KQIZMPSW.js → chunk-ANQLWGFN.js} +1 -1
  105. package/dist/esm/{chunk-KQIZMPSW.js.map → chunk-ANQLWGFN.js.map} +2 -2
  106. package/dist/esm/chunk-AQKSO3SW.js +3 -0
  107. package/dist/esm/chunk-AQKSO3SW.js.map +7 -0
  108. package/dist/esm/{chunk-ONJYRJ66.js → chunk-B6OFKABP.js} +2 -2
  109. package/dist/esm/chunk-BUXK5VGR.js +3 -0
  110. package/dist/esm/chunk-BUXK5VGR.js.map +7 -0
  111. package/dist/esm/{chunk-7QP6JFPO.js → chunk-C67MM24U.js} +2 -2
  112. package/dist/esm/chunk-CZ24FOFS.js +3 -0
  113. package/dist/esm/chunk-CZ24FOFS.js.map +7 -0
  114. package/dist/esm/{chunk-LFAUMDU5.js → chunk-D2C2A2ZK.js} +2 -2
  115. package/dist/esm/{chunk-UBUGG2OB.js → chunk-DP7MPGR7.js} +2 -2
  116. package/dist/esm/{chunk-BVQDDN5Q.js → chunk-EB4AG3OL.js} +2 -2
  117. package/dist/esm/{chunk-5PQCTVZB.js → chunk-ENQV6SEA.js} +2 -2
  118. package/dist/esm/{chunk-VVLUY4WR.js → chunk-EPGIYTFK.js} +2 -2
  119. package/dist/esm/{chunk-2TWPPDII.js → chunk-FMVOB367.js} +2 -2
  120. package/dist/esm/chunk-FVRVBB6O.js +3 -0
  121. package/dist/esm/chunk-FVRVBB6O.js.map +7 -0
  122. package/dist/esm/{chunk-TFFMELAL.js → chunk-FYTLUDL3.js} +2 -2
  123. package/dist/esm/{chunk-W4CPV4PO.js → chunk-H2J25HXP.js} +2 -2
  124. package/dist/esm/{chunk-C2WKAIZM.js → chunk-H73AMXCH.js} +2 -2
  125. package/dist/esm/{chunk-AJANJ22M.js → chunk-HBO7W7SS.js} +2 -2
  126. package/dist/esm/{chunk-F364PDDM.js → chunk-HLIOHDEX.js} +2 -2
  127. package/dist/esm/{chunk-5FWEGTP6.js → chunk-HR2VHGJ5.js} +2 -2
  128. package/dist/esm/chunk-HR2VHGJ5.js.map +7 -0
  129. package/dist/esm/{chunk-ZKQCSGL3.js → chunk-ISCZ57VL.js} +2 -2
  130. package/dist/esm/{chunk-TFGUTYZK.js → chunk-J54GYD7A.js} +2 -2
  131. package/dist/esm/{chunk-HVMRB3AH.js → chunk-JD4KR6VZ.js} +2 -2
  132. package/dist/esm/{chunk-MS2ONKJJ.js → chunk-JKQN6QCP.js} +2 -2
  133. package/dist/esm/{chunk-NS573D6O.js → chunk-JP36JSNP.js} +2 -2
  134. package/dist/esm/chunk-K3GDM26A.js +3 -0
  135. package/dist/esm/{chunk-M7IQIKB4.js.map → chunk-K3GDM26A.js.map} +2 -2
  136. package/dist/esm/{chunk-ULCHGKI3.js → chunk-KJZSXLIX.js} +2 -2
  137. package/dist/esm/{chunk-N3B6EGXL.js → chunk-LABMK6Q7.js} +2 -2
  138. package/dist/esm/{chunk-VIVM525H.js → chunk-MGWGD6KI.js} +2 -2
  139. package/dist/esm/{chunk-RD4T2MCC.js → chunk-MJKVVGGV.js} +2 -2
  140. package/dist/esm/chunk-MJKVVGGV.js.map +7 -0
  141. package/dist/esm/{chunk-TXVZOS3E.js → chunk-MMDZBPSX.js} +2 -2
  142. package/dist/esm/{chunk-EERKYRYI.js → chunk-NWXODCTD.js} +2 -2
  143. package/dist/esm/{chunk-VCZ2GYOF.js → chunk-Q5SANVIW.js} +2 -2
  144. package/dist/esm/chunk-QEDKL23P.js +3 -0
  145. package/dist/esm/chunk-QEDKL23P.js.map +7 -0
  146. package/dist/esm/{chunk-LGZCNQBS.js → chunk-QPRUTOLI.js} +2 -2
  147. package/dist/esm/{chunk-TTW3EAQT.js → chunk-QRV32INS.js} +2 -2
  148. package/dist/esm/{chunk-3QN4C5LW.js → chunk-REORAMUH.js} +2 -2
  149. package/dist/esm/{chunk-GOXGRJO6.js → chunk-SUQJ7DD4.js} +2 -2
  150. package/dist/esm/chunk-TSWHVZ47.js +3 -0
  151. package/dist/esm/chunk-TSWHVZ47.js.map +7 -0
  152. package/dist/esm/chunk-VQDCHBZR.js +3 -0
  153. package/dist/esm/chunk-VQDCHBZR.js.map +7 -0
  154. package/dist/esm/{chunk-TF6WAIUQ.js → chunk-W4Z6ORYO.js} +2 -2
  155. package/dist/esm/{chunk-F2722F7B.js → chunk-WAXRIARV.js} +2 -2
  156. package/dist/esm/chunk-WAXRIARV.js.map +7 -0
  157. package/dist/esm/{chunk-ADL3LEOQ.js → chunk-WD66RYF6.js} +2 -2
  158. package/dist/esm/{chunk-DIY2XQKR.js → chunk-X7JHZ3HA.js} +2 -2
  159. package/dist/esm/{chunk-H33NTGVF.js → chunk-XD3C3GVF.js} +2 -2
  160. package/dist/esm/{chunk-VPUFKJQA.js → chunk-YMUERC2J.js} +2 -2
  161. package/dist/esm/chunk-ZOUIIO4C.js +6 -0
  162. package/dist/esm/chunk-ZOUIIO4C.js.map +7 -0
  163. package/dist/esm/components/_internal/base-button.js +1 -1
  164. package/dist/esm/components/_internal/base-menu.utils.js +1 -1
  165. package/dist/esm/components/_internal/menu-context.js +1 -1
  166. package/dist/esm/components/_internal/pane-band-context.d.ts +4 -3
  167. package/dist/esm/components/_internal/pane-band-context.d.ts.map +1 -1
  168. package/dist/esm/components/_internal/pane-band-context.js +1 -1
  169. package/dist/esm/components/_internal/pane-chrome.d.ts +7 -1
  170. package/dist/esm/components/_internal/pane-chrome.d.ts.map +1 -1
  171. package/dist/esm/components/_internal/pane-chrome.js +1 -1
  172. package/dist/esm/components/_internal/portal-theme.d.ts +9 -0
  173. package/dist/esm/components/_internal/portal-theme.d.ts.map +1 -0
  174. package/dist/esm/components/_internal/portal-theme.js +3 -0
  175. package/dist/esm/components/_internal/portal-theme.js.map +7 -0
  176. package/dist/esm/components/_internal/shell-bottom.js +1 -1
  177. package/dist/esm/components/_internal/shell-inspector.js +1 -1
  178. package/dist/esm/components/_internal/shell-page-scroll.d.ts +15 -0
  179. package/dist/esm/components/_internal/shell-page-scroll.d.ts.map +1 -0
  180. package/dist/esm/components/_internal/shell-page-scroll.js +3 -0
  181. package/dist/esm/components/_internal/shell-page-scroll.js.map +7 -0
  182. package/dist/esm/components/_internal/shell-sidebar.js +1 -1
  183. package/dist/esm/components/accordion.js +1 -1
  184. package/dist/esm/components/alert-dialog.js +1 -1
  185. package/dist/esm/components/avatar.js +1 -1
  186. package/dist/esm/components/blockquote.js +1 -1
  187. package/dist/esm/components/box.js +1 -1
  188. package/dist/esm/components/button.js +1 -1
  189. package/dist/esm/components/card.js +1 -1
  190. package/dist/esm/components/chatbar.js +1 -1
  191. package/dist/esm/components/checkbox-group.js +1 -1
  192. package/dist/esm/components/checkbox.js +1 -1
  193. package/dist/esm/components/chip.js +1 -1
  194. package/dist/esm/components/code.js +1 -1
  195. package/dist/esm/components/combobox.d.ts.map +1 -1
  196. package/dist/esm/components/combobox.js +1 -1
  197. package/dist/esm/components/context-menu.d.ts.map +1 -1
  198. package/dist/esm/components/context-menu.js +1 -1
  199. package/dist/esm/components/dialog.js +1 -1
  200. package/dist/esm/components/dropdown-menu.d.ts.map +1 -1
  201. package/dist/esm/components/dropdown-menu.js +1 -1
  202. package/dist/esm/components/flex.js +1 -1
  203. package/dist/esm/components/grid.js +1 -1
  204. package/dist/esm/components/heading.js +1 -1
  205. package/dist/esm/components/image.js +1 -1
  206. package/dist/esm/components/index.js +1 -1
  207. package/dist/esm/components/kbd.js +1 -1
  208. package/dist/esm/components/link.js +1 -1
  209. package/dist/esm/components/message-scroller.js +1 -1
  210. package/dist/esm/components/navbar.js +1 -1
  211. package/dist/esm/components/notice.js +1 -1
  212. package/dist/esm/components/popover.js +1 -1
  213. package/dist/esm/components/progress.js +1 -1
  214. package/dist/esm/components/radio-group.js +1 -1
  215. package/dist/esm/components/radio.js +1 -1
  216. package/dist/esm/components/schemas/index.js +1 -1
  217. package/dist/esm/components/schemas/shell.schema.d.ts +1 -0
  218. package/dist/esm/components/schemas/shell.schema.d.ts.map +1 -1
  219. package/dist/esm/components/schemas/shell.schema.js +1 -1
  220. package/dist/esm/components/scroll-area.js +1 -1
  221. package/dist/esm/components/segmented-control.js +1 -1
  222. package/dist/esm/components/select.d.ts.map +1 -1
  223. package/dist/esm/components/select.js +1 -1
  224. package/dist/esm/components/separator.js +1 -1
  225. package/dist/esm/components/sheet.js +1 -1
  226. package/dist/esm/components/shell.d.ts +11 -0
  227. package/dist/esm/components/shell.d.ts.map +1 -1
  228. package/dist/esm/components/shell.js +1 -1
  229. package/dist/esm/components/sidebar.js +1 -1
  230. package/dist/esm/components/slider.js +1 -1
  231. package/dist/esm/components/spinner.d.ts.map +1 -1
  232. package/dist/esm/components/spinner.js +1 -1
  233. package/dist/esm/components/switch.js +1 -1
  234. package/dist/esm/components/table.js +1 -1
  235. package/dist/esm/components/tabs.js +1 -1
  236. package/dist/esm/components/text-area.d.ts.map +1 -1
  237. package/dist/esm/components/text-area.js +1 -1
  238. package/dist/esm/components/text-field.d.ts.map +1 -1
  239. package/dist/esm/components/text-field.js +1 -1
  240. package/dist/esm/components/text.js +1 -1
  241. package/dist/esm/components/theme.d.ts.map +1 -1
  242. package/dist/esm/components/theme.js +1 -1
  243. package/dist/esm/components/toggle.js +1 -1
  244. package/dist/esm/components/toolbar.js +1 -1
  245. package/dist/esm/components/tooltip.js +1 -1
  246. package/dist/esm/components/virtual-menu.js +1 -1
  247. package/dist/esm/index.js +1 -1
  248. package/package.json +1 -1
  249. package/schemas/index.json +6 -1
  250. package/schemas/shell-root.json +6 -1
  251. package/src/components/_internal/pane-band-context.ts +4 -3
  252. package/src/components/_internal/pane-chrome.tsx +15 -2
  253. package/src/components/_internal/portal-theme.tsx +18 -0
  254. package/src/components/_internal/shell-page-scroll.ts +49 -0
  255. package/src/components/alert-dialog.tsx +3 -3
  256. package/src/components/combobox.tsx +4 -3
  257. package/src/components/context-menu.tsx +6 -5
  258. package/src/components/dialog.tsx +3 -3
  259. package/src/components/dropdown-menu.tsx +6 -5
  260. package/src/components/popover.tsx +3 -3
  261. package/src/components/schemas/shell.schema.ts +4 -1
  262. package/src/components/select.tsx +4 -3
  263. package/src/components/sheet.tsx +3 -3
  264. package/src/components/shell.css +201 -0
  265. package/src/components/shell.tsx +128 -22
  266. package/src/components/spinner.css +16 -1
  267. package/src/components/spinner.tsx +14 -13
  268. package/src/components/text-area.css +7 -2
  269. package/src/components/text-area.tsx +10 -8
  270. package/src/components/text-field.css +7 -2
  271. package/src/components/text-field.tsx +10 -8
  272. package/src/components/theme.tsx +24 -30
  273. package/src/components/tooltip.tsx +3 -3
  274. package/styles.css +165 -4
  275. package/dist/esm/chunk-3C4Q6PMS.js +0 -3
  276. package/dist/esm/chunk-3C4Q6PMS.js.map +0 -7
  277. package/dist/esm/chunk-3ZWHKNHI.js +0 -3
  278. package/dist/esm/chunk-3ZWHKNHI.js.map +0 -7
  279. package/dist/esm/chunk-457Z4R5W.js +0 -3
  280. package/dist/esm/chunk-457Z4R5W.js.map +0 -7
  281. package/dist/esm/chunk-5FWEGTP6.js.map +0 -7
  282. package/dist/esm/chunk-5MEWNLNH.js +0 -3
  283. package/dist/esm/chunk-5MEWNLNH.js.map +0 -7
  284. package/dist/esm/chunk-BEHAT3GI.js +0 -3
  285. package/dist/esm/chunk-BEHAT3GI.js.map +0 -7
  286. package/dist/esm/chunk-DG2KIH54.js +0 -6
  287. package/dist/esm/chunk-DG2KIH54.js.map +0 -7
  288. package/dist/esm/chunk-DQCE7DHY.js +0 -3
  289. package/dist/esm/chunk-DQCE7DHY.js.map +0 -7
  290. package/dist/esm/chunk-F2722F7B.js.map +0 -7
  291. package/dist/esm/chunk-GE7FRBZ4.js +0 -3
  292. package/dist/esm/chunk-GE7FRBZ4.js.map +0 -7
  293. package/dist/esm/chunk-K55IQP5H.js.map +0 -7
  294. package/dist/esm/chunk-M7IQIKB4.js +0 -3
  295. package/dist/esm/chunk-POP5NB33.js +0 -3
  296. package/dist/esm/chunk-POP5NB33.js.map +0 -7
  297. package/dist/esm/chunk-RD4T2MCC.js.map +0 -7
  298. package/dist/esm/chunk-SCIFT27R.js +0 -3
  299. package/dist/esm/chunk-SCIFT27R.js.map +0 -7
  300. package/dist/esm/chunk-TFFU435D.js.map +0 -7
  301. /package/dist/esm/{chunk-6M6HGIGN.js.map → chunk-25ZRMILM.js.map} +0 -0
  302. /package/dist/esm/{chunk-UG73IGRF.js.map → chunk-2ZKEQS76.js.map} +0 -0
  303. /package/dist/esm/{chunk-H2TSRYQ5.js.map → chunk-324VC67W.js.map} +0 -0
  304. /package/dist/esm/{chunk-UR5BUNNT.js.map → chunk-3MFSQ6PN.js.map} +0 -0
  305. /package/dist/esm/{chunk-OTCVSJT7.js.map → chunk-4MNRLB57.js.map} +0 -0
  306. /package/dist/esm/{chunk-NYBE3U3V.js.map → chunk-7QBNXNEN.js.map} +0 -0
  307. /package/dist/esm/{chunk-E6BDD3PN.js.map → chunk-7V6M3MIR.js.map} +0 -0
  308. /package/dist/esm/{chunk-ONJYRJ66.js.map → chunk-B6OFKABP.js.map} +0 -0
  309. /package/dist/esm/{chunk-7QP6JFPO.js.map → chunk-C67MM24U.js.map} +0 -0
  310. /package/dist/esm/{chunk-LFAUMDU5.js.map → chunk-D2C2A2ZK.js.map} +0 -0
  311. /package/dist/esm/{chunk-UBUGG2OB.js.map → chunk-DP7MPGR7.js.map} +0 -0
  312. /package/dist/esm/{chunk-BVQDDN5Q.js.map → chunk-EB4AG3OL.js.map} +0 -0
  313. /package/dist/esm/{chunk-5PQCTVZB.js.map → chunk-ENQV6SEA.js.map} +0 -0
  314. /package/dist/esm/{chunk-VVLUY4WR.js.map → chunk-EPGIYTFK.js.map} +0 -0
  315. /package/dist/esm/{chunk-2TWPPDII.js.map → chunk-FMVOB367.js.map} +0 -0
  316. /package/dist/esm/{chunk-TFFMELAL.js.map → chunk-FYTLUDL3.js.map} +0 -0
  317. /package/dist/esm/{chunk-W4CPV4PO.js.map → chunk-H2J25HXP.js.map} +0 -0
  318. /package/dist/esm/{chunk-C2WKAIZM.js.map → chunk-H73AMXCH.js.map} +0 -0
  319. /package/dist/esm/{chunk-AJANJ22M.js.map → chunk-HBO7W7SS.js.map} +0 -0
  320. /package/dist/esm/{chunk-F364PDDM.js.map → chunk-HLIOHDEX.js.map} +0 -0
  321. /package/dist/esm/{chunk-ZKQCSGL3.js.map → chunk-ISCZ57VL.js.map} +0 -0
  322. /package/dist/esm/{chunk-TFGUTYZK.js.map → chunk-J54GYD7A.js.map} +0 -0
  323. /package/dist/esm/{chunk-HVMRB3AH.js.map → chunk-JD4KR6VZ.js.map} +0 -0
  324. /package/dist/esm/{chunk-MS2ONKJJ.js.map → chunk-JKQN6QCP.js.map} +0 -0
  325. /package/dist/esm/{chunk-NS573D6O.js.map → chunk-JP36JSNP.js.map} +0 -0
  326. /package/dist/esm/{chunk-ULCHGKI3.js.map → chunk-KJZSXLIX.js.map} +0 -0
  327. /package/dist/esm/{chunk-N3B6EGXL.js.map → chunk-LABMK6Q7.js.map} +0 -0
  328. /package/dist/esm/{chunk-VIVM525H.js.map → chunk-MGWGD6KI.js.map} +0 -0
  329. /package/dist/esm/{chunk-TXVZOS3E.js.map → chunk-MMDZBPSX.js.map} +0 -0
  330. /package/dist/esm/{chunk-EERKYRYI.js.map → chunk-NWXODCTD.js.map} +0 -0
  331. /package/dist/esm/{chunk-VCZ2GYOF.js.map → chunk-Q5SANVIW.js.map} +0 -0
  332. /package/dist/esm/{chunk-LGZCNQBS.js.map → chunk-QPRUTOLI.js.map} +0 -0
  333. /package/dist/esm/{chunk-TTW3EAQT.js.map → chunk-QRV32INS.js.map} +0 -0
  334. /package/dist/esm/{chunk-3QN4C5LW.js.map → chunk-REORAMUH.js.map} +0 -0
  335. /package/dist/esm/{chunk-GOXGRJO6.js.map → chunk-SUQJ7DD4.js.map} +0 -0
  336. /package/dist/esm/{chunk-TF6WAIUQ.js.map → chunk-W4Z6ORYO.js.map} +0 -0
  337. /package/dist/esm/{chunk-ADL3LEOQ.js.map → chunk-WD66RYF6.js.map} +0 -0
  338. /package/dist/esm/{chunk-DIY2XQKR.js.map → chunk-X7JHZ3HA.js.map} +0 -0
  339. /package/dist/esm/{chunk-H33NTGVF.js.map → chunk-XD3C3GVF.js.map} +0 -0
  340. /package/dist/esm/{chunk-VPUFKJQA.js.map → chunk-YMUERC2J.js.map} +0 -0
@@ -15,6 +15,7 @@ import classNames from 'classnames';
15
15
  import { ScrollArea } from '../scroll-area.js';
16
16
  import { ShellStoreContext } from './shell-store.js';
17
17
  import { PaneBandSizeContext, type BandSize } from './pane-band-context.js';
18
+ import { usePageScrollMedia } from './shell-page-scroll.js';
18
19
 
19
20
  type PaneSize = '1' | '2' | '3';
20
21
 
@@ -42,6 +43,13 @@ const ShellSizeContext = React.createContext<PaneSize>('2');
42
43
  */
43
44
  const ShellContentContext = React.createContext(false);
44
45
 
46
+ /**
47
+ * True inside a window Shell: one with no `contained` and no `height`, which lets the page scroll
48
+ * on a narrow touch screen. Each `Shell.Root` sets its own, so a Shell nested in another answers
49
+ * for itself.
50
+ */
51
+ const ShellWindowContext = React.createContext(false);
52
+
45
53
  /**
46
54
  * Gives a Shell pane's children the Shell's index, so Sidebar parts size themselves. In a Rail
47
55
  * the rows are `thin`: icon tiles with a small label, sub-menus as dropdowns.
@@ -156,9 +164,14 @@ const Scroll = React.forwardRef<HTMLDivElement, ScrollProps>(({ className, style
156
164
  const contentPane = React.useContext(ShellContentContext);
157
165
  const visual = useSidebarVisual();
158
166
  const inContent = contentPane && visual === null;
167
+ // While the page scrolls, the content's viewport scrolls nothing: as a tab stop it would take a
168
+ // Tab, ring the whole page and move nothing. Resolved after mount; a `tabIndex` of the caller's wins.
169
+ const windowShell = React.useContext(ShellWindowContext);
170
+ const pageScrolls = usePageScrollMedia();
159
171
  if (inContent) {
172
+ const tabIndex = props.tabIndex ?? (windowShell && pageScrolls ? -1 : undefined);
160
173
  return (
161
- <ScrollArea {...props} ref={forwardedRef} type="hover" fade={fade} className="kui-ShellScroll">
174
+ <ScrollArea {...props} tabIndex={tabIndex} ref={forwardedRef} type="hover" fade={fade} className="kui-ShellScroll">
162
175
  <div style={style} dir={dir} className={classNames('kui-ShellScrollContent', className)}>
163
176
  {children}
164
177
  </div>
@@ -178,5 +191,5 @@ const Scroll = React.forwardRef<HTMLDivElement, ScrollProps>(({ className, style
178
191
  });
179
192
  Scroll.displayName = 'Shell.Scroll';
180
193
 
181
- export { SidebarVisualContext, useSidebarVisual, ShellSizeContext, ShellContentContext, PaneChromeScope, PaneHeader, PaneFooter, Scroll, BAND_STEP, usePaneBandSize };
194
+ export { SidebarVisualContext, useSidebarVisual, ShellSizeContext, ShellContentContext, ShellWindowContext, PaneChromeScope, PaneHeader, PaneFooter, Scroll, BAND_STEP, usePaneBandSize };
182
195
  export type { SidebarVisualContextValue, PaneSize, BandSize, PaneHeaderProps, PaneFooterProps, ScrollProps };
@@ -0,0 +1,18 @@
1
+ import * as React from 'react';
2
+
3
+ import { Theme } from '../theme.js';
4
+ import { PaneBandSizeContext } from './pane-band-context.js';
5
+
6
+ /**
7
+ * The Theme at the root of a portalled surface (Popover, Dialog, Sheet, menus, Tooltip). The
8
+ * surface renders outside any Shell pane even though context flows into it, so a Toolbar in it
9
+ * does not take the pane's band size. A `Theme asChild` an app nests in a pane keeps the band.
10
+ */
11
+ const PortalTheme = React.forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<typeof Theme>>((props, forwardedRef) => (
12
+ <PaneBandSizeContext.Provider value={null}>
13
+ <Theme {...props} ref={forwardedRef} />
14
+ </PaneBandSizeContext.Provider>
15
+ ));
16
+ PortalTheme.displayName = 'PortalTheme';
17
+
18
+ export { PortalTheme };
@@ -0,0 +1,49 @@
1
+ 'use client';
2
+
3
+ import * as React from 'react';
4
+
5
+ /**
6
+ * When a window Shell lets the page scroll: a narrow window (below the `sm` breakpoint) under a
7
+ * coarse pointer. The stylesheet decides it (shell.css, the page-scroll block), so first paint is
8
+ * right with no script. This is the script's copy, for the few things only script can do when the
9
+ * answer changes: carry the reading position between the two scrollers, and take the content's
10
+ * unused viewport out of the tab order. A test holds it equal to the stylesheet's.
11
+ */
12
+ export const PAGE_SCROLL_QUERY = '(max-width: 767.98px) and (pointer: coarse)';
13
+
14
+ let list: MediaQueryList | undefined;
15
+ const media = () => (list ??= window.matchMedia(PAGE_SCROLL_QUERY));
16
+
17
+ function listen(m: MediaQueryList, handler: () => void): () => void {
18
+ // Safari below 14 has only the deprecated listener API.
19
+ if (typeof m.addEventListener === 'function') {
20
+ m.addEventListener('change', handler);
21
+ return () => m.removeEventListener('change', handler);
22
+ }
23
+ m.addListener?.(handler);
24
+ return () => m.removeListener?.(handler);
25
+ }
26
+
27
+ function subscribe(onChange: () => void): () => void {
28
+ return listen(media(), onChange);
29
+ }
30
+
31
+ /** True where a window Shell lets the page scroll. False on the server and through hydration. */
32
+ export function usePageScrollMedia(): boolean {
33
+ return React.useSyncExternalStore(
34
+ subscribe,
35
+ () => media().matches,
36
+ () => false,
37
+ );
38
+ }
39
+
40
+ /** Whether the page scrolls right now. */
41
+ export function pageScrollMatches(): boolean {
42
+ return media().matches;
43
+ }
44
+
45
+ /** Subscribes to the answer changing, outside React. */
46
+ export function onPageScrollMediaChange(onChange: (matches: boolean) => void): () => void {
47
+ const m = media();
48
+ return listen(m, () => onChange(m.matches));
49
+ }
@@ -5,7 +5,7 @@ import { AlertDialog as AlertDialogPrimitive } from 'radix-ui';
5
5
  import { alertDialogContentPropDefs } from './alert-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 AlertDialogContent = React.forwardRef<AlertDialogContentElement, AlertDial
48
48
 
49
49
  return (
50
50
  <AlertDialogPrimitive.Portal container={container} forceMount={forceMount}>
51
- <Theme asChild>
51
+ <PortalTheme asChild>
52
52
  <AlertDialogPrimitive.Overlay className="kui-BaseDialogOverlay kui-AlertDialogOverlay">
53
53
  <div className="kui-BaseDialogScroll kui-AlertDialogScroll">
54
54
  <div className={`kui-BaseDialogScrollPadding kui-AlertDialogScrollPadding ${alignClassName}`}>
@@ -67,7 +67,7 @@ const AlertDialogContent = React.forwardRef<AlertDialogContentElement, AlertDial
67
67
  </div>
68
68
  </div>
69
69
  </AlertDialogPrimitive.Overlay>
70
- </Theme>
70
+ </PortalTheme>
71
71
  </AlertDialogPrimitive.Portal>
72
72
  );
73
73
  });
@@ -29,7 +29,8 @@ import { useThemeSize } from '../hooks/theme-size.js';
29
29
  import { comboboxRootPropDefs, comboboxTriggerPropDefs, comboboxContentPropDefs } from './combobox.props.js';
30
30
  import { ChevronDownIcon, ThickCheckIcon } from './icons.js';
31
31
  import { Spinner } from './spinner.js';
32
- import { Theme, useThemeContext } from './theme.js';
32
+ import { useThemeContext } from './theme.js';
33
+ import { PortalTheme } from './_internal/portal-theme.js';
33
34
  import { requireReactElement } from '../helpers/require-react-element.js';
34
35
  import * as Popover from './popover.js';
35
36
  import { Slottable } from './slot.js';
@@ -543,7 +544,7 @@ const ComboboxContent = React.forwardRef<ComboboxContentElement, ComboboxContent
543
544
 
544
545
  return (
545
546
  <PopoverPrimitive.Portal container={container} forceMount={forceMount ? true : undefined}>
546
- <Theme asChild>
547
+ <PortalTheme asChild>
547
548
  <PopoverPrimitive.Content
548
549
  data-accent-color={resolvedColor}
549
550
  align="start"
@@ -573,7 +574,7 @@ const ComboboxContent = React.forwardRef<ComboboxContentElement, ComboboxContent
573
574
  </CommandPrimitive>
574
575
  </ComboboxContentContext.Provider>
575
576
  </PopoverPrimitive.Content>
576
- </Theme>
577
+ </PortalTheme>
577
578
  </PopoverPrimitive.Portal>
578
579
  );
579
580
  });
@@ -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';
@@ -69,7 +69,7 @@ const PopoverContent = React.forwardRef<PopoverContentElement, PopoverContentPro
69
69
 
70
70
  return (
71
71
  <PopoverPrimitive.Portal container={container} forceMount={forceMount}>
72
- <Theme asChild>
72
+ <PortalTheme asChild>
73
73
  <PopoverPrimitive.Content
74
74
  align="start"
75
75
  sideOffset={8}
@@ -84,7 +84,7 @@ const PopoverContent = React.forwardRef<PopoverContentElement, PopoverContentPro
84
84
  {props.children}
85
85
  </PopoverContentContext.Provider>
86
86
  </PopoverPrimitive.Content>
87
- </Theme>
87
+ </PortalTheme>
88
88
  </PopoverPrimitive.Portal>
89
89
  );
90
90
  },
@@ -122,7 +122,10 @@ export const ShellRootSchema = z
122
122
  height: z
123
123
  .union([z.literal('full'), z.literal('auto'), z.string(), z.number()])
124
124
  .default('full')
125
- .describe('Height of the frame. `full` is 100dvh, with 100vh where dvh is not supported.'),
125
+ .describe(
126
+ 'Height of the frame. `full` is the window: 100dvh, with 100vh where dvh is not supported, and on a narrow touch screen the page scrolls. Any value other than `full` or `auto` makes the Shell contained.',
127
+ ),
128
+ contained: z.boolean().default(false).describe('Fills the parent instead of the window and always scrolls inside itself. An explicit `height` implies it.'),
126
129
  size: z.enum(['1', '2', '3']).default('2').describe('Index of the pane chrome and the Sidebar rows in it'),
127
130
  className: z.string().optional().describe('Additional CSS class name'),
128
131
  style: StyleSchema,
@@ -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
  );