solid-baseui 0.1.0-alpha.0 → 0.1.0-alpha.2

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 (342) hide show
  1. package/CHANGELOG.md +72 -0
  2. package/README.md +133 -15
  3. package/dist/lib/client/DialogHandle-DluOK_7u.js +521 -0
  4. package/dist/lib/client/DialogPopup-CfEb3F54.js +138 -0
  5. package/dist/lib/client/FieldControl-eDe-Jnp9.js +142 -0
  6. package/dist/lib/client/{FieldRootContext-izCEh80D.js → FieldRootContext-D3fuVjs3.js} +1 -1
  7. package/dist/lib/client/{FocusManager-grSdNHqW.js → FocusManager-q7z7PMV1.js} +94 -91
  8. package/dist/lib/client/{FormContext-BB05lWOI.js → FormContext-CwLBtm_d.js} +1 -0
  9. package/dist/lib/client/{InternalBackdrop-cSK13gaM.js → InternalBackdrop-B8_lfUvf.js} +1 -1
  10. package/dist/lib/client/{LabelableContext-DKsB0fIx.js → LabelableContext-CmQF-TX2.js} +3 -6
  11. package/dist/lib/client/MenuSubmenuTrigger-DMb5CwTF.js +1584 -0
  12. package/dist/lib/client/{PopupHandle-CcJG4NMy.js → PopupHandle-DyX5gY1e.js} +17 -11
  13. package/dist/lib/client/{PopupStore-DjB-wO88.js → PopupStore-BjRwcvbG.js} +138 -115
  14. package/dist/lib/client/PopupViewport-BanYHrD-.js +154 -0
  15. package/dist/lib/client/Separator-D5oJzlA3.js +27 -0
  16. package/dist/lib/client/TriggerFocusGuards-Fzspp3Y1.js +51 -0
  17. package/dist/lib/client/accordion/index.js +1 -1
  18. package/dist/lib/client/accordion-CA2DfX67.js +381 -0
  19. package/dist/lib/client/alert-dialog/index.js +1 -1
  20. package/dist/lib/client/{alert-dialog-BH_3ndio.js → alert-dialog-Bup88Dpx.js} +2 -2
  21. package/dist/lib/client/autocomplete/index.js +1 -1
  22. package/dist/lib/client/{autocomplete-Cob_FZEP.js → autocomplete-oyy_uRpU.js} +30 -25
  23. package/dist/lib/client/avatar/index.js +1 -1
  24. package/dist/lib/client/avatar-DNZ4fnBd.js +191 -0
  25. package/dist/lib/client/button/index.js +1 -1
  26. package/dist/lib/client/button-BJZYmCVv.js +88 -0
  27. package/dist/lib/client/checkbox/index.js +1 -1
  28. package/dist/lib/client/checkbox-group/index.js +1 -1
  29. package/dist/lib/client/checkbox-group-DGyrciZJ.js +135 -0
  30. package/dist/lib/client/checkbox-sQHYTbpB.js +425 -0
  31. package/dist/lib/client/collapsible/index.js +1 -1
  32. package/dist/lib/client/collapsible-BENbFFCc.js +230 -0
  33. package/dist/lib/client/combobox/index.js +2 -2
  34. package/dist/lib/client/combobox-BGH8QLXH.js +401 -0
  35. package/dist/lib/client/compositeNavigation-DCt1sQon.js +82 -0
  36. package/dist/lib/client/{constants-BYjBUIIi.js → constants-ByOMFJAe.js} +105 -101
  37. package/dist/lib/client/context-menu/index.js +1 -1
  38. package/dist/lib/client/context-menu-xQ1sBCET.js +220 -0
  39. package/dist/lib/client/{createAnchorPositioning-DcxDXUgB.js → createAnchorPositioning-DCXIApS1.js} +149 -146
  40. package/dist/lib/client/{createAnchoredPopupScrollLock-Cx0cbh1_.js → createAnchoredPopupScrollLock-BxKpJbCE.js} +2 -2
  41. package/dist/lib/client/{createClickInteraction-CTaIFBiV.js → createClickInteraction-BeBsTqtY.js} +1 -1
  42. package/dist/lib/client/{createCollapsiblePanel-DeDu0O2t.js → createCollapsiblePanel-BQ8r4RTi.js} +1 -1
  43. package/dist/lib/client/createFocusInteraction-DQPWkZe2.js +60 -0
  44. package/dist/lib/client/createLabelableId-DxJRwMUJ.js +14 -0
  45. package/dist/lib/client/{createPopupAutoResize-CGNiLhGq.js → createPopupAutoResize-CSNpMz5v.js} +4 -4
  46. package/dist/lib/client/{createTransitionStatus-B1L-whed.js → createTransitionStatus-BL_cPSEA.js} +12 -12
  47. package/dist/lib/client/dialog/index.js +1 -1
  48. package/dist/lib/client/{dialog-DkaQwIgP.js → dialog-C0EF0a5u.js} +2 -2
  49. package/dist/lib/client/{dom-BEAeQ9Eb.js → dom-lDdayFF_.js} +25 -15
  50. package/dist/lib/client/drawer/index.js +1 -1
  51. package/dist/lib/client/drawer-uKoNBwDU.js +1540 -0
  52. package/dist/lib/client/field/index.js +1 -1
  53. package/dist/lib/client/field-DIMrgpBW.js +483 -0
  54. package/dist/lib/client/fieldset/index.js +1 -1
  55. package/dist/lib/client/fieldset-Byqk3noT.js +70 -0
  56. package/dist/lib/client/form/index.js +1 -1
  57. package/dist/lib/client/form-Bqq8wSLY.js +109 -0
  58. package/dist/lib/client/index.js +44 -42
  59. package/dist/lib/client/input/index.js +1 -1
  60. package/dist/lib/client/{input-gb0ejxkm.js → input-YthuKwIE.js} +1 -1
  61. package/dist/lib/client/internals/composeEventHandlers.js +14 -8
  62. package/dist/lib/client/internals/field-root-context/index.js +2 -2
  63. package/dist/lib/client/internals/form-context/index.js +1 -1
  64. package/dist/lib/client/internals/labelable-provider/index.js +1 -1
  65. package/dist/lib/client/{mergeStyleValue-C4ITiiIV.js → isSolidAccessor-BH_FevwH.js} +8 -15
  66. package/dist/lib/client/menu/index.js +1 -1
  67. package/dist/lib/client/menu-4rNLN6aX.js +334 -0
  68. package/dist/lib/client/menubar/index.js +1 -1
  69. package/dist/lib/client/menubar-nFQGtNmY.js +163 -0
  70. package/dist/lib/client/mergeStyleValue-Dcd36yxZ.js +12 -0
  71. package/dist/lib/client/meter/index.js +1 -1
  72. package/dist/lib/client/meter-BvWdppcx.js +178 -0
  73. package/dist/lib/client/navigation-menu/index.js +1 -1
  74. package/dist/lib/client/navigation-menu-BbRyun3a.js +1070 -0
  75. package/dist/lib/client/number-field/index.js +1 -1
  76. package/dist/lib/client/number-field-hT_H0hVu.js +1043 -0
  77. package/dist/lib/client/otp-field/index.js +1 -1
  78. package/dist/lib/client/otp-field-lsy2iGID.js +584 -0
  79. package/dist/lib/client/popover/index.js +1 -1
  80. package/dist/lib/client/popover-Cmvmuf1L.js +940 -0
  81. package/dist/lib/client/popupStateMapping-nhukB8NK.js +371 -0
  82. package/dist/lib/client/preview-card/index.js +1 -1
  83. package/dist/lib/client/preview-card-Dtu8AnBN.js +632 -0
  84. package/dist/lib/client/progress/index.js +1 -1
  85. package/dist/lib/client/progress-AVKxvgpc.js +195 -0
  86. package/dist/lib/client/radio/index.js +1 -1
  87. package/dist/lib/client/radio-CeCU-Qqi.js +284 -0
  88. package/dist/lib/client/radio-group/index.js +1 -1
  89. package/dist/lib/client/radio-group-NbuJvjQe.js +195 -0
  90. package/dist/lib/client/runOnceAnimationsFinish-CFADb4CN.js +49 -0
  91. package/dist/lib/client/{safePolygon--bbKn0c8.js → safePolygon-DVAR5dQD.js} +74 -70
  92. package/dist/lib/client/scroll-area/index.js +1 -1
  93. package/dist/lib/client/scroll-area-DqbvoAd7.js +717 -0
  94. package/dist/lib/client/{scrollable-SRNYlhF7.js → scrollable-BVaDUXng.js} +12 -12
  95. package/dist/lib/client/select/index.js +1 -1
  96. package/dist/lib/client/select-Dad51Xbn.js +1934 -0
  97. package/dist/lib/client/separator/index.js +1 -1
  98. package/dist/lib/client/slider/index.js +1 -1
  99. package/dist/lib/client/slider-CLSKFq_M.js +927 -0
  100. package/dist/lib/client/switch/index.js +1 -1
  101. package/dist/lib/client/switch-Bzuu5EIg.js +306 -0
  102. package/dist/lib/client/tabs/index.js +1 -1
  103. package/dist/lib/client/tabs-DWiBDv8D.js +695 -0
  104. package/dist/lib/client/toast/index.js +1 -1
  105. package/dist/lib/client/toast-DmtPJW2k.js +1118 -0
  106. package/dist/lib/client/toggle/index.js +1 -1
  107. package/dist/lib/client/toggle-CAe-Z8Xn.js +142 -0
  108. package/dist/lib/client/toggle-group/index.js +1 -1
  109. package/dist/lib/client/toggle-group-BbQg5s-m.js +134 -0
  110. package/dist/lib/client/toolbar/index.js +1 -1
  111. package/dist/lib/client/toolbar-BXT_g-oX.js +504 -0
  112. package/dist/lib/client/tooltip/index.js +1 -1
  113. package/dist/lib/client/tooltip-h2r2_Xuo.js +850 -0
  114. package/dist/lib/client/use-render/index.js +2 -0
  115. package/dist/lib/client/useFilteredItems-BX0BEuSI.js +2301 -0
  116. package/dist/lib/client/useRender-CxZ8PI-g.js +12 -0
  117. package/dist/lib/server/{DialogHandle-ATZlm9RC.js → DialogHandle-BGIISmG7.js} +37 -46
  118. package/dist/lib/server/{DialogPopup-BebI-w5P.js → DialogPopup-C2ZDGf42.js} +12 -15
  119. package/dist/lib/server/{FieldControl-Y_kI7ARp.js → FieldControl-CDMMyvuj.js} +62 -26
  120. package/dist/lib/server/{FieldRootContext-IC-LWzVp.js → FieldRootContext-Bfpna6gA.js} +3 -3
  121. package/dist/lib/server/{FocusManager-BrbZVWME.js → FocusManager-D-xgblGs.js} +9 -5
  122. package/dist/lib/server/{FormContext-pvESt85v.js → FormContext-CYwo_ZnB.js} +1 -0
  123. package/dist/lib/server/{InternalBackdrop-C_iDPVR-.js → InternalBackdrop-D_2zAWnl.js} +1 -1
  124. package/dist/lib/server/{LabelableContext-DZP3rgAY.js → LabelableContext-BTeF0IWb.js} +4 -6
  125. package/dist/lib/server/{MenuSubmenuTrigger-DA4gsv6z.js → MenuSubmenuTrigger-BMQKlOvU.js} +177 -210
  126. package/dist/lib/server/{PopupHandle-DthPgNjy.js → PopupHandle-QNj4mED2.js} +14 -5
  127. package/dist/lib/server/{PopupStore-DEs3FAEe.js → PopupStore-evylvVnN.js} +42 -15
  128. package/dist/lib/server/{PopupViewport-3r_KTFwX.js → PopupViewport-BDttjORN.js} +38 -28
  129. package/dist/lib/server/{Separator-vhhYxWGr.js → Separator-DTvtnxzP.js} +4 -6
  130. package/dist/lib/server/TriggerFocusGuards-B9GNbLrL.js +61 -0
  131. package/dist/lib/server/accordion/index.js +39 -77
  132. package/dist/lib/server/alert-dialog/index.js +2 -2
  133. package/dist/lib/server/autocomplete/index.js +14 -5
  134. package/dist/lib/server/avatar/index.js +90 -51
  135. package/dist/lib/server/button/index.js +14 -15
  136. package/dist/lib/server/checkbox/index.js +37 -64
  137. package/dist/lib/server/checkbox-group/index.js +21 -11
  138. package/dist/lib/server/collapsible/index.js +42 -49
  139. package/dist/lib/server/combobox/index.js +79 -50
  140. package/dist/lib/server/{compositeNavigation-BRVT1C38.js → compositeNavigation-D5jKM4yk.js} +32 -1
  141. package/dist/lib/server/{constants-9H__9xbS.js → constants-ByqXubhO.js} +10 -5
  142. package/dist/lib/server/context-menu/index.js +14 -16
  143. package/dist/lib/server/{createAnchorPositioning-C-cVOPwz.js → createAnchorPositioning-DrQYe7RS.js} +12 -7
  144. package/dist/lib/server/{createAnchoredPopupScrollLock-DFuUrykR.js → createAnchoredPopupScrollLock-q6gnOSmv.js} +2 -2
  145. package/dist/lib/server/{createClickInteraction-BYsMgvup.js → createClickInteraction-D7oc1Vco.js} +1 -1
  146. package/dist/lib/server/{createCollapsiblePanel-DTyVJz0G.js → createCollapsiblePanel-B45kTe6v.js} +1 -1
  147. package/dist/lib/server/{createFocusInteraction-EIS0QOel.js → createFocusInteraction-DFKr4G7a.js} +22 -2
  148. package/dist/lib/server/createLabelableId-WMUKtY6s.js +18 -0
  149. package/dist/lib/server/{createPopupAutoResize-DO50jjNX.js → createPopupAutoResize-Cg0-lLf4.js} +2 -2
  150. package/dist/lib/server/{createTransitionStatus-BTlrerSS.js → createTransitionStatus-184v7j3-.js} +2 -2
  151. package/dist/lib/server/dialog/index.js +2 -2
  152. package/dist/lib/server/{dom-Crg_2R-j.js → dom-D8_aB1yy.js} +14 -1
  153. package/dist/lib/server/drawer/index.js +96 -100
  154. package/dist/lib/server/field/index.js +110 -98
  155. package/dist/lib/server/fieldset/index.js +13 -16
  156. package/dist/lib/server/form/index.js +18 -14
  157. package/dist/lib/server/index.js +5 -3
  158. package/dist/lib/server/input/index.js +1 -1
  159. package/dist/lib/server/internals/composeEventHandlers.js +15 -9
  160. package/dist/lib/server/internals/field-root-context/index.js +1 -1
  161. package/dist/lib/server/internals/form-context/index.js +1 -1
  162. package/dist/lib/server/internals/labelable-provider/index.js +1 -1
  163. package/dist/lib/server/{mergeStyleValue-Db8bRCM4.js → isSolidAccessor-CZpzAH5l.js} +7 -21
  164. package/dist/lib/server/menu/index.js +30 -29
  165. package/dist/lib/server/menubar/index.js +10 -35
  166. package/dist/lib/server/mergeStyleValue-DecVaoac.js +20 -0
  167. package/dist/lib/server/meter/index.js +20 -32
  168. package/dist/lib/server/navigation-menu/index.js +67 -138
  169. package/dist/lib/server/number-field/index.js +64 -62
  170. package/dist/lib/server/otp-field/index.js +19 -22
  171. package/dist/lib/server/popover/index.js +61 -77
  172. package/dist/lib/server/{popupStateMapping-nKoUwoke.js → popupStateMapping-VHqr6M4H.js} +19 -17
  173. package/dist/lib/server/preview-card/index.js +39 -50
  174. package/dist/lib/server/progress/index.js +21 -33
  175. package/dist/lib/server/radio/index.js +24 -45
  176. package/dist/lib/server/radio-group/index.js +12 -13
  177. package/dist/lib/server/{runOnceAnimationsFinish-DCHzXWZU.js → runOnceAnimationsFinish-CYq38H8J.js} +2 -1
  178. package/dist/lib/server/{safePolygon-CAm5RJGv.js → safePolygon-B8QtiIZ3.js} +6 -1
  179. package/dist/lib/server/scroll-area/index.js +40 -49
  180. package/dist/lib/server/{scrollable-CjsSxbGr.js → scrollable-C9Pgq8T5.js} +1 -1
  181. package/dist/lib/server/select/index.js +128 -213
  182. package/dist/lib/server/separator/index.js +1 -1
  183. package/dist/lib/server/slider/index.js +39 -52
  184. package/dist/lib/server/switch/index.js +22 -32
  185. package/dist/lib/server/tabs/index.js +197 -137
  186. package/dist/lib/server/toast/index.js +78 -95
  187. package/dist/lib/server/toggle/index.js +11 -13
  188. package/dist/lib/server/toggle-group/index.js +11 -9
  189. package/dist/lib/server/toolbar/index.js +76 -93
  190. package/dist/lib/server/tooltip/index.js +53 -57
  191. package/dist/lib/server/use-render/index.js +2 -0
  192. package/dist/lib/server/{useFilteredItems-DvuctLt3.js → useFilteredItems-BmhL0nf1.js} +335 -316
  193. package/dist/lib/server/useRender-CryVdCjs.js +16 -0
  194. package/dist/lib/types/accordion/header/AccordionHeader.d.ts +1 -1
  195. package/dist/lib/types/accordion/item/AccordionItem.d.ts +1 -1
  196. package/dist/lib/types/accordion/panel/AccordionPanel.d.ts +1 -1
  197. package/dist/lib/types/accordion/root/AccordionRoot.d.ts +2 -7
  198. package/dist/lib/types/accordion/trigger/AccordionTrigger.d.ts +7 -7
  199. package/dist/lib/types/alert-dialog/trigger/AlertDialogTrigger.d.ts +1 -2
  200. package/dist/lib/types/autocomplete/trigger/AutocompleteTrigger.d.ts +1 -0
  201. package/dist/lib/types/avatar/fallback/AvatarFallback.d.ts +2 -2
  202. package/dist/lib/types/avatar/image/AvatarImage.d.ts +9 -3
  203. package/dist/lib/types/avatar/image/createImageLoadingStatus.d.ts +3 -2
  204. package/dist/lib/types/avatar/root/AvatarRoot.d.ts +1 -1
  205. package/dist/lib/types/button/Button.d.ts +1 -1
  206. package/dist/lib/types/checkbox-group/CheckboxGroupContext.d.ts +4 -1
  207. package/dist/lib/types/collapsible/panel/CollapsiblePanel.d.ts +1 -1
  208. package/dist/lib/types/collapsible/root/CollapsibleRoot.d.ts +1 -1
  209. package/dist/lib/types/collapsible/trigger/CollapsibleTrigger.d.ts +1 -1
  210. package/dist/lib/types/combobox/chip/ComboboxChip.d.ts +2 -0
  211. package/dist/lib/types/combobox/index.d.ts +2 -0
  212. package/dist/lib/types/combobox/index.parts.d.ts +1 -0
  213. package/dist/lib/types/combobox/items/createItems.d.ts +42 -0
  214. package/dist/lib/types/combobox/root/AriaCombobox.d.ts +4 -0
  215. package/dist/lib/types/combobox/root/ComboboxRoot.d.ts +17 -8
  216. package/dist/lib/types/combobox/root/ComboboxRootContext.d.ts +2 -0
  217. package/dist/lib/types/combobox/store/ComboboxStore.d.ts +1 -0
  218. package/dist/lib/types/combobox/trigger/ComboboxTrigger.d.ts +1 -0
  219. package/dist/lib/types/combobox/utils/handleInputPress.d.ts +1 -1
  220. package/dist/lib/types/dialog/backdrop/DialogBackdrop.d.ts +1 -1
  221. package/dist/lib/types/dialog/description/DialogDescription.d.ts +1 -1
  222. package/dist/lib/types/dialog/title/DialogTitle.d.ts +1 -1
  223. package/dist/lib/types/dialog/viewport/DialogViewport.d.ts +1 -1
  224. package/dist/lib/types/drawer/backdrop/DrawerBackdrop.d.ts +1 -1
  225. package/dist/lib/types/drawer/content/DrawerContent.d.ts +1 -1
  226. package/dist/lib/types/drawer/indent/DrawerIndent.d.ts +1 -1
  227. package/dist/lib/types/drawer/indent-background/DrawerIndentBackground.d.ts +1 -1
  228. package/dist/lib/types/field/control/FieldControl.d.ts +5 -5
  229. package/dist/lib/types/field/root/FieldRoot.d.ts +1 -1
  230. package/dist/lib/types/field/root/createFieldValidation.d.ts +3 -2
  231. package/dist/lib/types/fieldset/legend/FieldsetLegend.d.ts +1 -1
  232. package/dist/lib/types/fieldset/root/FieldsetRoot.d.ts +1 -1
  233. package/dist/lib/types/index.d.ts +1 -0
  234. package/dist/lib/types/internals/composeEventHandlers.d.ts +9 -2
  235. package/dist/lib/types/internals/createTransitionStatus.d.ts +1 -1
  236. package/dist/lib/types/internals/field-root-context/FieldRootContext.d.ts +1 -0
  237. package/dist/lib/types/internals/form-context/FormContext.d.ts +1 -0
  238. package/dist/lib/types/internals/labelable-provider/LabelableContext.d.ts +1 -0
  239. package/dist/lib/types/internals/labelable-provider/createLabelableId.d.ts +3 -0
  240. package/dist/lib/types/internals/overlay/PopupPortal.d.ts +4 -2
  241. package/dist/lib/types/internals/overlay/createPopupPresence.d.ts +1 -0
  242. package/dist/lib/types/internals/overlay/dom.d.ts +2 -0
  243. package/dist/lib/types/menu/root/MenuRootContext.d.ts +1 -0
  244. package/dist/lib/types/meter/indicator/MeterIndicator.d.ts +1 -1
  245. package/dist/lib/types/meter/label/MeterLabel.d.ts +1 -1
  246. package/dist/lib/types/meter/root/MeterRoot.d.ts +1 -1
  247. package/dist/lib/types/meter/track/MeterTrack.d.ts +1 -1
  248. package/dist/lib/types/meter/value/MeterValue.d.ts +1 -1
  249. package/dist/lib/types/navigation-menu/trigger/NavigationMenuTrigger.d.ts +1 -0
  250. package/dist/lib/types/number-field/input/NumberFieldInput.d.ts +5 -5
  251. package/dist/lib/types/number-field/root/NumberFieldRootContext.d.ts +1 -0
  252. package/dist/lib/types/popover/arrow/PopoverArrow.d.ts +1 -1
  253. package/dist/lib/types/popover/backdrop/PopoverBackdrop.d.ts +1 -1
  254. package/dist/lib/types/popover/description/PopoverDescription.d.ts +1 -1
  255. package/dist/lib/types/popover/positioner/PopoverPositioner.d.ts +1 -1
  256. package/dist/lib/types/popover/title/PopoverTitle.d.ts +1 -1
  257. package/dist/lib/types/preview-card/arrow/PreviewCardArrow.d.ts +1 -1
  258. package/dist/lib/types/preview-card/backdrop/PreviewCardBackdrop.d.ts +1 -1
  259. package/dist/lib/types/preview-card/positioner/PreviewCardPositioner.d.ts +1 -1
  260. package/dist/lib/types/progress/indicator/ProgressIndicator.d.ts +1 -1
  261. package/dist/lib/types/progress/label/ProgressLabel.d.ts +1 -1
  262. package/dist/lib/types/progress/root/ProgressRoot.d.ts +1 -1
  263. package/dist/lib/types/progress/track/ProgressTrack.d.ts +1 -1
  264. package/dist/lib/types/progress/value/ProgressValue.d.ts +1 -1
  265. package/dist/lib/types/radio/indicator/RadioIndicator.d.ts +2 -2
  266. package/dist/lib/types/scroll-area/content/ScrollAreaContent.d.ts +1 -1
  267. package/dist/lib/types/scroll-area/corner/ScrollAreaCorner.d.ts +1 -1
  268. package/dist/lib/types/scroll-area/root/ScrollAreaRoot.d.ts +1 -1
  269. package/dist/lib/types/scroll-area/scrollbar/ScrollAreaScrollbar.d.ts +2 -1
  270. package/dist/lib/types/scroll-area/thumb/ScrollAreaThumb.d.ts +1 -1
  271. package/dist/lib/types/scroll-area/viewport/ScrollAreaViewport.d.ts +1 -1
  272. package/dist/lib/types/separator/Separator.d.ts +1 -1
  273. package/dist/lib/types/slider/track/SliderTrack.d.ts +2 -2
  274. package/dist/lib/types/tabs/indicator/prehydrationScript.d.ts +1 -1
  275. package/dist/lib/types/tabs/list/TabsList.d.ts +1 -1
  276. package/dist/lib/types/tabs/panel/TabsPanel.d.ts +1 -1
  277. package/dist/lib/types/tabs/root/TabsRoot.d.ts +1 -1
  278. package/dist/lib/types/tabs/tab/TabsTab.d.ts +1 -1
  279. package/dist/lib/types/toast/createToastManager.d.ts +2 -2
  280. package/dist/lib/types/toast/store/ToastStore.d.ts +1 -1
  281. package/dist/lib/types/toast/useToastManager.d.ts +1 -1
  282. package/dist/lib/types/toggle/Toggle.d.ts +1 -1
  283. package/dist/lib/types/toggle-group/ToggleGroup.d.ts +1 -1
  284. package/dist/lib/types/toolbar/group/ToolbarGroup.d.ts +1 -1
  285. package/dist/lib/types/toolbar/link/ToolbarLink.d.ts +10 -3
  286. package/dist/lib/types/toolbar/root/ToolbarRoot.d.ts +10 -4
  287. package/dist/lib/types/toolbar/separator/ToolbarSeparator.d.ts +1 -1
  288. package/dist/lib/types/tooltip/arrow/TooltipArrow.d.ts +1 -1
  289. package/dist/lib/types/tooltip/positioner/TooltipPositioner.d.ts +1 -1
  290. package/dist/lib/types/types/index.d.ts +7 -3
  291. package/dist/lib/types/use-render/index.d.ts +2 -0
  292. package/dist/lib/types/use-render/useRender.d.ts +10 -0
  293. package/package.json +24 -11
  294. package/dist/lib/client/DialogHandle-DrN2YWCv.js +0 -518
  295. package/dist/lib/client/DialogPopup-ZlqmGfdk.js +0 -136
  296. package/dist/lib/client/FieldControl-Bc-z2og6.js +0 -116
  297. package/dist/lib/client/MenuSubmenuTrigger-QZkQ0F2v.js +0 -1570
  298. package/dist/lib/client/PopupViewport-DgrIqQea.js +0 -152
  299. package/dist/lib/client/Separator-9DboD_Si.js +0 -25
  300. package/dist/lib/client/TriggerFocusGuards-CQ-JuASy.js +0 -56
  301. package/dist/lib/client/accordion-sOXt9AlG.js +0 -399
  302. package/dist/lib/client/avatar-AF9vyD4q.js +0 -146
  303. package/dist/lib/client/button-DpUi-2g8.js +0 -82
  304. package/dist/lib/client/checkbox-BbAwOptH.js +0 -441
  305. package/dist/lib/client/checkbox-group-CSSp_805.js +0 -128
  306. package/dist/lib/client/collapsible-BIbje_ub.js +0 -232
  307. package/dist/lib/client/combobox-8O-vgTLL.js +0 -352
  308. package/dist/lib/client/compositeNavigation-sxniYTc7.js +0 -58
  309. package/dist/lib/client/context-menu-BTMkXtrs.js +0 -217
  310. package/dist/lib/client/createFocusInteraction-D4w1-235.js +0 -50
  311. package/dist/lib/client/drawer-Ce2cChLt.js +0 -1550
  312. package/dist/lib/client/field-C-o7jzKW.js +0 -469
  313. package/dist/lib/client/fieldset-BQTAWv2L.js +0 -65
  314. package/dist/lib/client/form-BINBiW5L.js +0 -106
  315. package/dist/lib/client/menu-DeMT08oD.js +0 -326
  316. package/dist/lib/client/menubar-C4aomSYv.js +0 -185
  317. package/dist/lib/client/meter-xSU37Q0m.js +0 -171
  318. package/dist/lib/client/navigation-menu-ZILQmdn6.js +0 -1083
  319. package/dist/lib/client/number-field-B8CsTb_8.js +0 -1035
  320. package/dist/lib/client/otp-field-DBkMcnog.js +0 -582
  321. package/dist/lib/client/popover-CQwyp-fs.js +0 -929
  322. package/dist/lib/client/popupStateMapping-C9eZl19i.js +0 -367
  323. package/dist/lib/client/preview-card-D_2Q8lpC.js +0 -625
  324. package/dist/lib/client/progress-D7r0xAC9.js +0 -188
  325. package/dist/lib/client/radio-CzGQ81z1.js +0 -299
  326. package/dist/lib/client/radio-group-DpHlBKA6.js +0 -193
  327. package/dist/lib/client/runOnceAnimationsFinish-15EM-Z4l.js +0 -48
  328. package/dist/lib/client/scroll-area-CffM4U0R.js +0 -701
  329. package/dist/lib/client/select-IFhiEg73.js +0 -1940
  330. package/dist/lib/client/slider-BCagYmGp.js +0 -921
  331. package/dist/lib/client/switch-RIJeDnvS.js +0 -308
  332. package/dist/lib/client/tabs-fOAKs7r3.js +0 -696
  333. package/dist/lib/client/toast-D2P8UqUs.js +0 -1108
  334. package/dist/lib/client/toggle-group-0Aue0owJ.js +0 -129
  335. package/dist/lib/client/toggle-momVEIBL.js +0 -138
  336. package/dist/lib/client/toolbar-Du22aKCv.js +0 -492
  337. package/dist/lib/client/tooltip-CyK61fl1.js +0 -844
  338. package/dist/lib/client/useFilteredItems-DTekHz39.js +0 -2223
  339. package/dist/lib/client/withoutComponentBinding-CcCW7fSc.js +0 -13
  340. package/dist/lib/server/TriggerFocusGuards-sbGwf45f.js +0 -63
  341. package/dist/lib/server/withoutComponentBinding-BHaWr5kU.js +0 -20
  342. package/dist/lib/types/internals/withoutComponentBinding.d.ts +0 -7
@@ -1,4 +1,4 @@
1
- import { t as runOnceAnimationsFinish } from "./runOnceAnimationsFinish-DCHzXWZU.js";
1
+ import { t as runOnceAnimationsFinish } from "./runOnceAnimationsFinish-CYq38H8J.js";
2
2
  import { createEffect, createMemo, createSignal, onCleanup, untrack } from "solid-js";
3
3
  //#region src/collapsible/root/createCollapsibleTransitionStatus.ts
4
4
  /** Adds an idle phase and a frame boundary before Collapsible exit styles apply. */
@@ -1,7 +1,7 @@
1
1
  import { j as triggerFocus } from "./internals/reasons.js";
2
2
  import { createChangeEventDetails } from "./internals/createBaseUIEventDetails.js";
3
- import { n as contains, p as ownerDocument, t as activeElement } from "./dom-Crg_2R-j.js";
4
- import { onCleanup } from "solid-js";
3
+ import { h as ownerWindow, m as ownerDocument, n as contains, t as activeElement } from "./dom-D8_aB1yy.js";
4
+ import { createEffect, onCleanup } from "solid-js";
5
5
  //#region src/internals/overlay/createFocusInteraction.ts
6
6
  function matchesFocusVisible(element) {
7
7
  try {
@@ -15,6 +15,7 @@ function createFocusInteraction(options) {
15
15
  let closeTimer;
16
16
  let blockFocus = false;
17
17
  let blockedReference = null;
18
+ let focusedReference = null;
18
19
  const unsubscribe = options.context.context.events.on("openchange", (details) => {
19
20
  if (!details.open && (details.reason === "escape-key" || details.reason === "trigger-press")) {
20
21
  blockFocus = true;
@@ -28,10 +29,27 @@ function createFocusInteraction(options) {
28
29
  clearTimeout(closeTimer);
29
30
  });
30
31
  const enabled = () => options.enabled?.() ?? true;
32
+ createEffect(() => ({
33
+ enabled: enabled(),
34
+ reference: options.context.track().domReferenceElement
35
+ }), (state) => {
36
+ if (!state.enabled) return;
37
+ const windowNode = ownerWindow(state.reference);
38
+ const onWindowBlur = () => {
39
+ const reference = focusedReference ?? options.context.state.domReferenceElement;
40
+ if (!options.context.state.open && reference === activeElement(ownerDocument(reference))) {
41
+ blockFocus = true;
42
+ blockedReference = reference;
43
+ }
44
+ };
45
+ windowNode.addEventListener("blur", onWindowBlur);
46
+ return () => windowNode.removeEventListener("blur", onWindowBlur);
47
+ });
31
48
  return {
32
49
  onFocus(event) {
33
50
  if (!enabled()) return;
34
51
  const trigger = event.currentTarget;
52
+ focusedReference = trigger;
35
53
  if (blockFocus && blockedReference !== trigger) {
36
54
  blockFocus = false;
37
55
  blockedReference = null;
@@ -42,10 +60,12 @@ function createFocusInteraction(options) {
42
60
  const delay = options.context.state.open ? 0 : options.delay?.() ?? 0;
43
61
  clearTimeout(openTimer);
44
62
  openTimer = setTimeout(() => {
63
+ if (!enabled() || blockFocus && blockedReference === trigger) return;
45
64
  options.context.setOpen(true, createChangeEventDetails(triggerFocus, event, trigger));
46
65
  }, delay);
47
66
  },
48
67
  onBlur(event) {
68
+ focusedReference = null;
49
69
  clearTimeout(openTimer);
50
70
  clearTimeout(closeTimer);
51
71
  if (blockedReference === event.currentTarget) {
@@ -0,0 +1,18 @@
1
+ import { r as useLabelableContext } from "./LabelableContext-BTeF0IWb.js";
2
+ import { createEffect, onCleanup } from "solid-js";
3
+ //#region src/internals/labelable-provider/createLabelableId.ts
4
+ /** Keep the server label/control pair associated until explicit IDs register on the client. */
5
+ function createLabelableId(id, fallback, enabled = () => true) {
6
+ const context = useLabelableContext();
7
+ const source = Symbol("LabelableId");
8
+ createEffect(() => ({
9
+ id: id(),
10
+ enabled: enabled()
11
+ }), (current) => {
12
+ context.registerControlId(source, current.enabled ? current.id === void 0 ? context.defaultControlId ?? fallback : current.id : void 0);
13
+ });
14
+ onCleanup(() => context.registerControlId(source, void 0));
15
+ return () => (enabled() ? context.controlId() : void 0) ?? id() ?? fallback;
16
+ }
17
+ //#endregion
18
+ export { createLabelableId as t };
@@ -1,5 +1,5 @@
1
- import { t as runOnceAnimationsFinish } from "./runOnceAnimationsFinish-DCHzXWZU.js";
2
- import { c as isHTMLElement, m as ownerWindow } from "./dom-Crg_2R-j.js";
1
+ import { t as runOnceAnimationsFinish } from "./runOnceAnimationsFinish-CYq38H8J.js";
2
+ import { h as ownerWindow, l as isHTMLElement } from "./dom-D8_aB1yy.js";
3
3
  import { createEffect, untrack } from "solid-js";
4
4
  //#region src/internals/overlay/createPopupAutoResize.ts
5
5
  function getCssDimensions(element) {
@@ -1,9 +1,9 @@
1
1
  import { createEffect, createSignal, untrack } from "solid-js";
2
2
  //#region src/internals/createTransitionStatus.ts
3
3
  /** Tracks mount retention and CSS starting/ending states for a visibility accessor. */
4
- function createTransitionStatus(open) {
4
+ function createTransitionStatus(open, animateInitialOpen = false) {
5
5
  const [mounted, setMounted] = createSignal(untrack(open), { ownedWrite: true });
6
- const [transitionStatus, setTransitionStatus] = createSignal(void 0, { ownedWrite: true });
6
+ const [transitionStatus, setTransitionStatus] = createSignal(untrack(open) && animateInitialOpen ? "starting" : void 0, { ownedWrite: true });
7
7
  createEffect(() => ({
8
8
  open: open(),
9
9
  mounted: mounted(),
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "../rolldown-runtime-D7D4PA-g.js";
2
- import { a as DialogTitle, c as DialogDescription, i as DialogTrigger, l as DialogClose, n as createDialogHandle, o as DialogPortal, p as DialogRoot, r as DialogViewport, t as DialogHandle } from "../DialogHandle-ATZlm9RC.js";
3
- import { n as DialogBackdrop, t as DialogPopup } from "../DialogPopup-BebI-w5P.js";
2
+ import { a as DialogTitle, c as DialogDescription, i as DialogTrigger, l as DialogClose, n as createDialogHandle, o as DialogPortal, p as DialogRoot, r as DialogViewport, t as DialogHandle } from "../DialogHandle-BGIISmG7.js";
3
+ import { n as DialogBackdrop, t as DialogPopup } from "../DialogPopup-C2ZDGf42.js";
4
4
  //#region src/dialog/index.parts.ts
5
5
  var index_parts_exports = /* @__PURE__ */ __exportAll({
6
6
  Backdrop: () => DialogBackdrop,
@@ -25,6 +25,19 @@ function contains(parent, child) {
25
25
  function getEventTarget(event) {
26
26
  return event.composedPath?.()[0] ?? event.target;
27
27
  }
28
+ /** Solid RC.6 Portal exposes a live logical parent through each inserted root's _$host. */
29
+ function containsWithPortals(parent, child) {
30
+ if (!parent || !child?.nodeType) return false;
31
+ if (parent.contains(child)) return true;
32
+ let current = child;
33
+ const visited = /* @__PURE__ */ new Set();
34
+ while (current && !visited.has(current)) {
35
+ if (current === parent) return true;
36
+ visited.add(current);
37
+ current = current._$host || current.parentNode || (isShadowRoot(current) ? current.host : null);
38
+ }
39
+ return false;
40
+ }
28
41
  function isEventTargetWithin(event, node) {
29
42
  if (!node) return false;
30
43
  const path = event.composedPath?.();
@@ -64,4 +77,4 @@ function isTypeableCombobox(element) {
64
77
  return element?.getAttribute("role") === "combobox" && isTypeableElement(element);
65
78
  }
66
79
  //#endregion
67
- export { isElement as a, isHTMLElement as c, isTypeableCombobox as d, isTypeableElement as f, getFloatingFocusElement as i, isInteractiveElement as l, ownerWindow as m, contains as n, isElementVisible as o, ownerDocument as p, getEventTarget as r, isEventTargetWithin as s, activeElement as t, isShadowRoot as u };
80
+ export { getFloatingFocusElement as a, isEventTargetWithin as c, isShadowRoot as d, isTypeableCombobox as f, ownerWindow as h, getEventTarget as i, isHTMLElement as l, ownerDocument as m, contains as n, isElement as o, isTypeableElement as p, containsWithPortals as r, isElementVisible as s, activeElement as t, isInteractiveElement as u };
@@ -1,20 +1,21 @@
1
1
  import { t as __exportAll } from "../rolldown-runtime-D7D4PA-g.js";
2
+ import { t as useRender } from "../useRender-CryVdCjs.js";
2
3
  import { getStateAttributesProps } from "../internals/getStateAttributesProps.js";
3
4
  import { a as closeWatcher, k as swipe } from "../internals/reasons.js";
4
5
  import { n as resolveClass, t as resolveStyle } from "../resolveStyle-XCSFDHAL.js";
5
6
  import { createChangeEventDetails } from "../internals/createBaseUIEventDetails.js";
6
7
  import { TransitionStatusDataAttributes } from "../internals/stateAttributesMapping.js";
7
- import { composeEventHandlers } from "../internals/composeEventHandlers.js";
8
- import { a as isElement, c as isHTMLElement, l as isInteractiveElement, m as ownerWindow, n as contains, p as ownerDocument, r as getEventTarget, t as activeElement } from "../dom-Crg_2R-j.js";
9
- import { n as createTriggerRegistration } from "../PopupStore-DEs3FAEe.js";
10
- import { r as popupTransitionStateMapping, t as CommonPopupDataAttributes } from "../popupStateMapping-nKoUwoke.js";
11
- import { t as FocusManager } from "../FocusManager-BrbZVWME.js";
12
- import { a as DialogTitle, c as DialogDescription, d as dialogTransitionStateAttributesMapping, f as mergeDialogStyles, h as useDialogRootContext, i as DialogTrigger, l as DialogClose, m as renderDialogRoot, o as DialogPortal, r as DialogViewport, s as useDialogPortalContext, t as DialogHandle } from "../DialogHandle-ATZlm9RC.js";
13
- import { n as getComposedParentNode, t as findScrollableTouchTarget } from "../scrollable-CjsSxbGr.js";
8
+ import { composeEventHandlers, liveEventHandler } from "../internals/composeEventHandlers.js";
9
+ import { h as ownerWindow, i as getEventTarget, l as isHTMLElement, m as ownerDocument, n as contains, o as isElement, t as activeElement, u as isInteractiveElement } from "../dom-D8_aB1yy.js";
10
+ import { n as createTriggerRegistration } from "../PopupStore-evylvVnN.js";
11
+ import { r as popupTransitionStateMapping, t as CommonPopupDataAttributes } from "../popupStateMapping-VHqr6M4H.js";
12
+ import { t as FocusManager } from "../FocusManager-D-xgblGs.js";
13
+ import { a as DialogTitle, c as DialogDescription, d as dialogTransitionStateAttributesMapping, f as mergeDialogStyles, h as useDialogRootContext, i as DialogTrigger, l as DialogClose, m as renderDialogRoot, o as DialogPortal, r as DialogViewport, s as useDialogPortalContext, t as DialogHandle } from "../DialogHandle-BGIISmG7.js";
14
+ import { n as getComposedParentNode, t as findScrollableTouchTarget } from "../scrollable-C9Pgq8T5.js";
14
15
  import { t as isAndroid } from "../platform-DYukKUir.js";
15
- import { a as getElementTransform, i as getDisplacement, o as getElementAtPoint, r as createSwipeDismiss, s as clamp, t as BASE_UI_SWIPE_IGNORE_SELECTOR } from "../constants-9H__9xbS.js";
16
- import { Dynamic, mergeProps, ssrElement } from "@solidjs/web";
17
- import { Show, createContext, createEffect, createMemo, createSignal, createUniqueId, flush, merge, omit, onCleanup, untrack, useContext } from "solid-js";
16
+ import { a as getElementTransform, i as getDisplacement, o as getElementAtPoint, r as createSwipeDismiss, s as clamp, t as BASE_UI_SWIPE_IGNORE_SELECTOR } from "../constants-ByqXubhO.js";
17
+ import { mergeProps, ssrElement } from "@solidjs/web";
18
+ import { Show, createContext, createEffect, createMemo, createSignal, createUniqueId, flush, merge, omit, onCleanup, onSettled, untrack, useContext } from "solid-js";
18
19
  //#region src/drawer/popup/DrawerPopupCssVars.ts
19
20
  var DrawerPopupCssVars = /* @__PURE__ */ function(DrawerPopupCssVars) {
20
21
  /**
@@ -70,11 +71,12 @@ var DrawerBackdropCssVars = /* @__PURE__ */ function(DrawerBackdropCssVars) {
70
71
  function DrawerBackdrop(props) {
71
72
  const context = useDialogRootContext();
72
73
  const internalProps = props;
73
- const others = omit(props, "as", "class", "forceRender", "ref", "style");
74
+ const others = omit(props, "render", "class", "forceRender", "ref", "style");
74
75
  const state = createMemo(() => ({
75
76
  open: context.store.open(),
76
77
  transitionStatus: context.presence.transitionStatus()
77
78
  }));
79
+ const Render = useRender(props, () => state(), (props) => ssrElement("div", props, void 0, true));
78
80
  const classValue = createMemo(() => resolveClass(props.class, state()));
79
81
  const styleValue = createMemo(() => mergeDialogStyles({
80
82
  "pointer-events": context.store.open() ? void 0 : "none",
@@ -90,10 +92,7 @@ function DrawerBackdrop(props) {
90
92
  onCleanup(() => {
91
93
  if (context.backdropElement() === backdropElement) context.setBackdropElement(null);
92
94
  });
93
- return Dynamic(mergeProps({
94
- get component() {
95
- return props.as ?? "div";
96
- },
95
+ return Render(mergeProps({
97
96
  ref: [((element) => {
98
97
  backdropElement = element;
99
98
  context.setBackdropElement(element);
@@ -131,16 +130,12 @@ var DRAWER_CONTENT_ATTRIBUTE = "data-drawer-content";
131
130
  function DrawerContent(props) {
132
131
  useDialogRootContext();
133
132
  const internalProps = props;
134
- const others = omit(props, "as", "class", "ref", "style");
133
+ const others = omit(props, "render", "class", "ref", "style");
135
134
  const state = {};
135
+ const Render = useRender(props, () => state, (props) => ssrElement("div", props, void 0, true));
136
136
  const classValue = createMemo(() => resolveClass(props.class, state));
137
137
  const styleValue = createMemo(() => resolveStyle(props.style, state));
138
- return Dynamic(mergeProps({
139
- get component() {
140
- return props.as ?? "div";
141
- },
142
- ref: [internalProps.ref]
143
- }, { [DRAWER_CONTENT_ATTRIBUTE]: "" }, {
138
+ return Render(mergeProps({ ref: [internalProps.ref] }, { [DRAWER_CONTENT_ATTRIBUTE]: "" }, {
144
139
  get ["class"]() {
145
140
  return classValue();
146
141
  },
@@ -199,23 +194,12 @@ var drawerIndentStateAttributesMapping = { active: (value) => value ? ACTIVE : I
199
194
  function DrawerIndentBackground(props) {
200
195
  const provider = useDrawerProviderContext();
201
196
  const internalProps = props;
202
- const others = omit(props, "as", "class", "ref", "style");
197
+ const others = omit(props, "render", "class", "ref", "style");
203
198
  const state = () => ({ active: provider?.active() ?? false });
204
199
  const classValue = () => resolveClass(props.class, state());
205
200
  const styleValue = () => resolveStyle(props.style, state());
206
201
  const stateAttributes = () => getStateAttributesProps(state(), drawerIndentStateAttributesMapping);
207
- const component = untrack(() => props.as);
208
- return component === void 0 ? ssrElement("div", () => {
209
- return mergeProps({
210
- get ["class"]() {
211
- return classValue();
212
- },
213
- get style() {
214
- return styleValue();
215
- }
216
- }, stateAttributes, others);
217
- }, void 0, true) : Dynamic(mergeProps({
218
- component,
202
+ return useRender(props, state, (props) => ssrElement("div", props, void 0, true))(mergeProps({
219
203
  ref: [internalProps.ref],
220
204
  get ["class"]() {
221
205
  return classValue();
@@ -234,7 +218,7 @@ function DrawerIndentBackground(props) {
234
218
  function DrawerIndent(props) {
235
219
  const provider = useDrawerProviderContext();
236
220
  const internalProps = props;
237
- const others = omit(props, "as", "class", "ref", "style");
221
+ const others = omit(props, "render", "class", "ref", "style");
238
222
  const state = () => ({ active: provider?.active() ?? false });
239
223
  const classValue = () => resolveClass(props.class, state());
240
224
  const styleValue = () => mergeDialogStyles({ [DrawerBackdropCssVars.swipeProgress]: "0" }, resolveStyle(props.style, state()));
@@ -243,18 +227,7 @@ function DrawerIndent(props) {
243
227
  const indentRef = [((element) => {
244
228
  indentElement = element;
245
229
  }), internalProps.ref];
246
- const component = untrack(() => props.as);
247
- const element = component === void 0 ? ssrElement("div", () => {
248
- return mergeProps({
249
- get ["class"]() {
250
- return classValue();
251
- },
252
- get style() {
253
- return styleValue();
254
- }
255
- }, stateAttributes, others);
256
- }, void 0, true) : Dynamic(mergeProps({
257
- component,
230
+ const element = useRender(props, state, (props) => ssrElement("div", props, void 0, true))(mergeProps({
258
231
  ref: indentRef,
259
232
  get ["class"]() {
260
233
  return classValue();
@@ -511,7 +484,7 @@ function DrawerPopup(props) {
511
484
  const swipe = useDrawerViewportContext();
512
485
  const snap = createDrawerSnapPoints();
513
486
  const internalProps = props;
514
- const others = omit(props, "as", "class", "finalFocus", "id", "initialFocus", "onKeyDown", "ref", "style");
487
+ const others = omit(props, "render", "class", "finalFocus", "id", "initialFocus", "onKeyDown", "ref", "style");
515
488
  const nestedDrawerOpen = createMemo(() => context.nestedOpenDrawerCount() > 0);
516
489
  const swiping = createMemo(() => swipe?.swiping() ?? false);
517
490
  let popupElement = null;
@@ -529,10 +502,12 @@ function DrawerPopup(props) {
529
502
  measuredPopupHeight = offsetHeight;
530
503
  drawer.onPopupHeightChange(offsetHeight);
531
504
  }
505
+ const lifecycleElement = createMemo(() => context.store.track().popupElement);
506
+ const lifecycleOpen = createMemo(() => context.store.open());
532
507
  createEffect(() => ({
533
508
  mounted: context.presence.mounted(),
534
509
  nestedDrawerOpen: nestedDrawerOpen(),
535
- element: context.store.track().popupElement
510
+ element: lifecycleElement()
536
511
  }), (state) => {
537
512
  if (!state.mounted) {
538
513
  measuredPopupHeight = 0;
@@ -547,7 +522,7 @@ function DrawerPopup(props) {
547
522
  resizeObserver.observe(state.element);
548
523
  return () => resizeObserver.disconnect();
549
524
  });
550
- createEffect(() => context.store.track().popupElement, (element) => {
525
+ createEffect(lifecycleElement, (element) => {
551
526
  function syncNestedSwipeProgress() {
552
527
  if (!element) return;
553
528
  const progress = drawer.nestedSwipeProgressStore.getSnapshot();
@@ -561,7 +536,7 @@ function DrawerPopup(props) {
561
536
  };
562
537
  });
563
538
  createEffect(() => ({
564
- open: context.store.open(),
539
+ open: lifecycleOpen(),
565
540
  frontmostHeight: drawer.frontmostHeight()
566
541
  }), (state) => {
567
542
  if (!state.open) return;
@@ -569,7 +544,7 @@ function DrawerPopup(props) {
569
544
  return () => drawer.notifyParentFrontmostHeight?.(0);
570
545
  });
571
546
  createEffect(() => ({
572
- open: context.store.open(),
547
+ open: lifecycleOpen(),
573
548
  transitionStatus: context.presence.transitionStatus()
574
549
  }), (state) => {
575
550
  if (!drawer.notifyParentHasNestedDrawer) return;
@@ -586,6 +561,7 @@ function DrawerPopup(props) {
586
561
  swipeDirection: drawer.swipeDirection(),
587
562
  swiping: swiping()
588
563
  }));
564
+ const Render = useRender(props, () => state(), (props) => ssrElement("div", props, void 0, true));
589
565
  const classValue = createMemo(() => resolveClass(props.class, state()));
590
566
  const stateAttributes = createMemo(() => getStateAttributesProps(state(), stateAttributesMapping$1));
591
567
  const snapPointOffsetValue = createMemo(() => {
@@ -630,7 +606,7 @@ function DrawerPopup(props) {
630
606
  });
631
607
  const id = createMemo(() => internalProps.id ?? context.store.context.floatingId);
632
608
  const initialFocus = createMemo(() => internalProps.initialFocus ?? (() => context.store.state.popupElement));
633
- const onKeyDown = composeEventHandlers(() => internalProps.onKeyDown, () => (event) => {
609
+ const onKeyDown = composeEventHandlers(liveEventHandler(() => internalProps.onKeyDown), (event) => {
634
610
  if (COMPOSITE_KEYS.has(event.key)) event.stopPropagation();
635
611
  });
636
612
  createEffect(() => id(), (currentId) => {
@@ -639,10 +615,7 @@ function DrawerPopup(props) {
639
615
  onCleanup(() => {
640
616
  if (context.store.state.popupElement === popupElement) context.store.setPopupElement(null);
641
617
  });
642
- const popup = Dynamic(mergeProps({
643
- get component() {
644
- return props.as ?? "div";
645
- },
618
+ const popup = Render(mergeProps({
646
619
  ref: [((element) => {
647
620
  popupElement = element;
648
621
  context.store.setPopupElement(element);
@@ -935,7 +908,7 @@ function DrawerSwipeArea(props) {
935
908
  const drawer = useDrawerRootContext();
936
909
  const provider = useDrawerProviderContext();
937
910
  const internalProps = props;
938
- const others = omit(props, "as", "class", "disabled", "id", "onPointerCancel", "onPointerDown", "onPointerMove", "onPointerUp", "onTouchCancel", "onTouchEnd", "onTouchMove", "onTouchStart", "ref", "style", "swipeDirection");
911
+ const others = omit(props, "render", "class", "disabled", "id", "onPointerCancel", "onPointerDown", "onPointerMove", "onPointerUp", "onTouchCancel", "onTouchEnd", "onTouchMove", "onTouchStart", "ref", "style", "swipeDirection");
939
912
  const generatedId = `base-ui-${createUniqueId()}`;
940
913
  const id = createMemo(() => internalProps.id || generatedId);
941
914
  const disabled = createMemo(() => internalProps.disabled ?? false);
@@ -956,7 +929,17 @@ function DrawerSwipeArea(props) {
956
929
  const resolvedSwipeDirection = createMemo(() => internalProps.swipeDirection ?? oppositeSwipeDirection[drawer.swipeDirection()]);
957
930
  const dismissDirection = createMemo(() => oppositeSwipeDirection[resolvedSwipeDirection()]);
958
931
  const enabled = createMemo(() => !disabled() && (!store.open() || swipeActive()));
959
- createTriggerRegistration(() => store, id, swipeAreaElement);
932
+ const [registrationReady, setRegistrationReady] = createSignal(false, { ownedWrite: true });
933
+ onSettled(() => {
934
+ let disposed = false;
935
+ queueMicrotask(() => {
936
+ if (!disposed) setRegistrationReady(true);
937
+ });
938
+ return () => {
939
+ disposed = true;
940
+ };
941
+ });
942
+ createTriggerRegistration(() => store, id, () => registrationReady() ? swipeAreaElement() : null);
960
943
  function resetDragDelta() {
961
944
  dragDelta.x = 0;
962
945
  dragDelta.y = 0;
@@ -1152,37 +1135,35 @@ function DrawerSwipeArea(props) {
1152
1135
  swipeDirection: resolvedSwipeDirection(),
1153
1136
  disabled: disabled()
1154
1137
  }));
1138
+ const Render = useRender(props, () => state(), (props) => ssrElement("div", props, void 0, true));
1155
1139
  const classValue = createMemo(() => resolveClass(props.class, state()));
1156
1140
  const styleValue = createMemo(() => mergeDialogStyles({
1157
1141
  "pointer-events": enabled() ? void 0 : "none",
1158
1142
  "touch-action": resolveTouchAction(resolvedSwipeDirection())
1159
1143
  }, resolveStyle(props.style, state())));
1160
1144
  const stateAttributes = createMemo(() => getStateAttributesProps(state(), stateAttributesMapping));
1161
- const onPointerDown = composeEventHandlers(() => internalProps.onPointerDown, () => (event) => {
1145
+ const onPointerDown = composeEventHandlers(liveEventHandler(() => internalProps.onPointerDown), (event) => {
1162
1146
  if (event.pointerType === "touch") return;
1163
1147
  swipe$2.pointerHandlers.onPointerDown(event);
1164
1148
  if (event.cancelable) event.preventDefault();
1165
1149
  });
1166
- const onPointerMove = composeEventHandlers(() => internalProps.onPointerMove, () => (event) => {
1150
+ const onPointerMove = composeEventHandlers(liveEventHandler(() => internalProps.onPointerMove), (event) => {
1167
1151
  if (event.pointerType === "touch") return;
1168
1152
  swipe$2.pointerHandlers.onPointerMove(event);
1169
1153
  });
1170
- const onPointerUp = composeEventHandlers(() => internalProps.onPointerUp, () => (event) => {
1154
+ const onPointerUp = composeEventHandlers(liveEventHandler(() => internalProps.onPointerUp), (event) => {
1171
1155
  if (event.pointerType === "touch") return;
1172
1156
  swipe$2.pointerHandlers.onPointerUp(event);
1173
1157
  });
1174
- const onPointerCancel = composeEventHandlers(() => internalProps.onPointerCancel, () => (event) => {
1158
+ const onPointerCancel = composeEventHandlers(liveEventHandler(() => internalProps.onPointerCancel), (event) => {
1175
1159
  if (event.pointerType === "touch") return;
1176
1160
  swipe$2.pointerHandlers.onPointerCancel(event);
1177
1161
  });
1178
- const onTouchStart = composeEventHandlers(() => internalProps.onTouchStart, () => (event) => swipe$2.touchHandlers.onTouchStart(event));
1179
- const onTouchMove = composeEventHandlers(() => internalProps.onTouchMove, () => (event) => swipe$2.touchHandlers.onTouchMove(event));
1180
- const onTouchEnd = composeEventHandlers(() => internalProps.onTouchEnd, () => (event) => swipe$2.touchHandlers.onTouchEnd(event));
1181
- const onTouchCancel = composeEventHandlers(() => internalProps.onTouchCancel, () => (event) => swipe$2.touchHandlers.onTouchCancel(event));
1182
- return Dynamic(mergeProps({
1183
- get component() {
1184
- return props.as ?? "div";
1185
- },
1162
+ const onTouchStart = composeEventHandlers(liveEventHandler(() => internalProps.onTouchStart), (event) => swipe$2.touchHandlers.onTouchStart(event));
1163
+ const onTouchMove = composeEventHandlers(liveEventHandler(() => internalProps.onTouchMove), (event) => swipe$2.touchHandlers.onTouchMove(event));
1164
+ const onTouchEnd = composeEventHandlers(liveEventHandler(() => internalProps.onTouchEnd), (event) => swipe$2.touchHandlers.onTouchEnd(event));
1165
+ const onTouchCancel = composeEventHandlers(liveEventHandler(() => internalProps.onTouchCancel), (event) => swipe$2.touchHandlers.onTouchCancel(event));
1166
+ return Render(mergeProps({
1186
1167
  ref: [((element) => setSwipeAreaElement(element)), internalProps.ref],
1187
1168
  get id() {
1188
1169
  return id();
@@ -1366,7 +1347,7 @@ function DrawerViewport(props) {
1366
1347
  return true;
1367
1348
  },
1368
1349
  onProgress(progress, details) {
1369
- updateNestedSwipeActive(details);
1350
+ if (swipingNow) updateNestedSwipeActive(details);
1370
1351
  const points = drawer.snapPoints();
1371
1352
  const hasSnapPoints = Boolean(points && points.length > 0);
1372
1353
  if (swipingNow && swipeDirection() === "down" && hasSnapPoints && details) {
@@ -1382,13 +1363,17 @@ function DrawerViewport(props) {
1382
1363
  if (range && popupHeight > 0) {
1383
1364
  const baseOffset = snap.activeSnapPointOffset() ?? range.minOffset;
1384
1365
  const offsetToProgress = (nextOffset) => clamp((nextOffset - range.minOffset) / range.range, 0, 1);
1385
- if (details && Number.isFinite(details.deltaY)) resolvedProgress = offsetToProgress(clamp(baseOffset + details.deltaY, 0, popupHeight));
1366
+ if (swipingNow && details && Number.isFinite(details.deltaY)) resolvedProgress = offsetToProgress(clamp(baseOffset + details.deltaY, 0, popupHeight));
1386
1367
  else {
1387
1368
  const progressFromSnapPoint = snapPointProgress();
1388
1369
  if (progressFromSnapPoint !== null) resolvedProgress = progressFromSnapPoint;
1389
1370
  }
1390
1371
  }
1391
- applySwipeProgress(resolvedProgress, true, true);
1372
+ if (!swipingNow) {
1373
+ drawer.notifyParentSwipeProgressChange?.(0);
1374
+ finishNestedSwipe();
1375
+ }
1376
+ applySwipeProgress(resolvedProgress, true, swipingNow);
1392
1377
  },
1393
1378
  onRelease({ event, deltaX, deltaY, direction, velocityX, velocityY, releaseVelocityX, releaseVelocityY }) {
1394
1379
  const popupElement = store.state.popupElement;
@@ -1453,9 +1438,21 @@ function DrawerViewport(props) {
1453
1438
  const velocityOffset = Math.abs(resolvedDirectionalVelocity) >= SNAP_VELOCITY_THRESHOLD ? clamp(resolvedDirectionalVelocity, -4, MAX_SNAP_VELOCITY) * SNAP_VELOCITY_MULTIPLIER : 0;
1454
1439
  const targetOffset = drawer.snapToSequentialPoints() ? dragTargetOffset : clamp(dragTargetOffset + velocityOffset, 0, popupHeight);
1455
1440
  const snapPointEventDetails = createChangeEventDetails(swipe, event);
1456
- const closeFromSnapPoints = () => {
1457
- pendingSwipeCloseSnapPoint = snap.activeSnapPoint();
1441
+ const settleInPlace = () => {
1442
+ applySwipeProgress(0, true, true);
1443
+ clearSwipeRelease();
1444
+ return false;
1445
+ };
1446
+ const settleOnSnapPoint = (point) => {
1447
+ drawer.setActiveSnapPoint(point.value, snapPointEventDetails);
1448
+ return settleInPlace();
1449
+ };
1450
+ const closeFromSnapPoints = (fallback) => {
1451
+ if (!direction) return settleOnSnapPoint(fallback);
1452
+ const previousSnapPoint = snap.activeSnapPoint();
1458
1453
  drawer.setActiveSnapPoint(null, snapPointEventDetails);
1454
+ if (snapPointEventDetails.isCanceled) return settleInPlace();
1455
+ pendingSwipeCloseSnapPoint = previousSnapPoint;
1459
1456
  startSwipeRelease(currentSwipeDirection);
1460
1457
  return true;
1461
1458
  };
@@ -1475,19 +1472,16 @@ function DrawerViewport(props) {
1475
1472
  targetSnapPoint = adjacentPoint;
1476
1473
  effectiveTargetOffset = adjacentPoint.offset;
1477
1474
  }
1478
- } else if (dragDirection > 0) return closeFromSnapPoints();
1475
+ } else if (dragDirection > 0) return closeFromSnapPoints(targetSnapPoint);
1479
1476
  }
1480
- if (Math.abs(effectiveTargetOffset - popupHeight) < Math.abs(effectiveTargetOffset - targetSnapPoint.offset)) return closeFromSnapPoints();
1481
- drawer.setActiveSnapPoint(targetSnapPoint.value, snapPointEventDetails);
1482
- clearSwipeRelease();
1483
- return false;
1477
+ if (Math.abs(effectiveTargetOffset - popupHeight) < Math.abs(effectiveTargetOffset - targetSnapPoint.offset)) return closeFromSnapPoints(targetSnapPoint);
1478
+ return settleOnSnapPoint(targetSnapPoint);
1484
1479
  }
1485
- if (resolvedDirectionalVelocity >= FAST_SWIPE_VELOCITY && dragDelta > 0) return closeFromSnapPoints();
1486
1480
  const closestSnapPoint = resolvedSnapPoints[closestSnapPointIndex(resolvedSnapPoints.map((point) => point.offset), targetOffset)];
1487
- if (Math.abs(targetOffset - popupHeight) < Math.abs(targetOffset - closestSnapPoint.offset)) return closeFromSnapPoints();
1488
- drawer.setActiveSnapPoint(closestSnapPoint.value, snapPointEventDetails);
1489
- clearSwipeRelease();
1490
- return false;
1481
+ const closeDistance = Math.abs(targetOffset - popupHeight);
1482
+ if (resolvedDirectionalVelocity >= FAST_SWIPE_VELOCITY && dragDelta > 0) return closeFromSnapPoints(closestSnapPoint);
1483
+ if (closeDistance < Math.abs(targetOffset - closestSnapPoint.offset)) return closeFromSnapPoints(closestSnapPoint);
1484
+ return settleOnSnapPoint(closestSnapPoint);
1491
1485
  },
1492
1486
  onDismiss(event) {
1493
1487
  provider?.visualStateStore.set({
@@ -1525,11 +1519,13 @@ function DrawerViewport(props) {
1525
1519
  setSwipeDismissed(true);
1526
1520
  }
1527
1521
  });
1522
+ const lifecycleOpen = createMemo(open);
1523
+ const touchRootElement = createMemo(() => context.viewportElement() ?? store.track().popupElement);
1528
1524
  createEffect(() => ({
1529
1525
  mounted: mounted(),
1530
1526
  nestedDrawerOpen: nestedDrawerOpen(),
1531
- open: open(),
1532
- rootElement: context.viewportElement() ?? store.track().popupElement,
1527
+ open: lifecycleOpen(),
1528
+ rootElement: touchRootElement(),
1533
1529
  axis: scrollAxis(),
1534
1530
  direction: swipeDirection()
1535
1531
  }), (state) => {
@@ -1595,13 +1591,13 @@ function DrawerViewport(props) {
1595
1591
  if (!state.range || state.swiping) return;
1596
1592
  untrack(() => applySwipeProgress(!state.open || state.nested ? 0 : state.progress ?? 0, true, false));
1597
1593
  });
1598
- createEffect(() => open(), (isOpen) => {
1594
+ createEffect(lifecycleOpen, (isOpen) => {
1599
1595
  if (!drawer.notifyParentSwipeProgressChange) return;
1600
1596
  if (!isOpen) drawer.notifyParentSwipeProgressChange(0);
1601
1597
  return () => drawer.notifyParentSwipeProgressChange?.(0);
1602
1598
  });
1603
- createEffect(() => open(), (isOpen) => {
1604
- if (!isOpen) return;
1599
+ createEffect(() => open(), (isOpen, wasOpen) => {
1600
+ if (!isOpen || isOpen === wasOpen) return;
1605
1601
  untrack(() => {
1606
1602
  if (!drawer.swipeAreaActive.current) swipe$1.reset();
1607
1603
  clearSwipeRelease();
@@ -1635,7 +1631,7 @@ function DrawerViewport(props) {
1635
1631
  lastPointerType = "";
1636
1632
  return event.pointerType !== "touch";
1637
1633
  }
1638
- const onPointerDown = composeEventHandlers(() => internalProps.onPointerDown, () => (event) => {
1634
+ const onPointerDown = composeEventHandlers(liveEventHandler(() => internalProps.onPointerDown), (event) => {
1639
1635
  lastPointerType = event.pointerType;
1640
1636
  ignoreNextTouchStartFromPen = event.pointerType === "pen";
1641
1637
  if (!open() || !mounted() || nestedDrawerOpen()) return;
@@ -1645,17 +1641,17 @@ function DrawerViewport(props) {
1645
1641
  if (event.pointerType === "touch") return;
1646
1642
  swipe$1.pointerHandlers.onPointerDown(event);
1647
1643
  });
1648
- const onPointerMove = composeEventHandlers(() => internalProps.onPointerMove, () => (event) => {
1644
+ const onPointerMove = composeEventHandlers(liveEventHandler(() => internalProps.onPointerMove), (event) => {
1649
1645
  if (event.pointerType === "touch") return;
1650
1646
  swipe$1.pointerHandlers.onPointerMove(event);
1651
1647
  });
1652
- const onPointerUp = composeEventHandlers(() => internalProps.onPointerUp, () => (event) => {
1648
+ const onPointerUp = composeEventHandlers(liveEventHandler(() => internalProps.onPointerUp), (event) => {
1653
1649
  if (handlePointerEnd(event)) swipe$1.pointerHandlers.onPointerUp(event);
1654
1650
  });
1655
- const onPointerCancel = composeEventHandlers(() => internalProps.onPointerCancel, () => (event) => {
1651
+ const onPointerCancel = composeEventHandlers(liveEventHandler(() => internalProps.onPointerCancel), (event) => {
1656
1652
  if (handlePointerEnd(event)) swipe$1.pointerHandlers.onPointerCancel(event);
1657
1653
  });
1658
- const onTouchStart = composeEventHandlers(() => internalProps.onTouchStart, () => (event) => {
1654
+ const onTouchStart = composeEventHandlers(liveEventHandler(() => internalProps.onTouchStart), (event) => {
1659
1655
  if (lastPointerType === "pen" && ignoreNextTouchStartFromPen) {
1660
1656
  ignoreNextTouchStartFromPen = false;
1661
1657
  resetTouchSwipeState(false);
@@ -1703,12 +1699,12 @@ function DrawerViewport(props) {
1703
1699
  };
1704
1700
  swipe$1.touchHandlers.onTouchStart(event);
1705
1701
  });
1706
- const onTouchEnd = composeEventHandlers(() => internalProps.onTouchEnd, () => (event) => {
1702
+ const onTouchEnd = composeEventHandlers(liveEventHandler(() => internalProps.onTouchEnd), (event) => {
1707
1703
  virtualKeyboard?.onTouchEnd(event);
1708
1704
  resetTouchTrackingState();
1709
1705
  swipe$1.touchHandlers.onTouchEnd(event);
1710
1706
  });
1711
- const onTouchCancel = composeEventHandlers(() => internalProps.onTouchCancel, () => (event) => {
1707
+ const onTouchCancel = composeEventHandlers(liveEventHandler(() => internalProps.onTouchCancel), (event) => {
1712
1708
  virtualKeyboard?.onTouchCancel();
1713
1709
  resetTouchTrackingState();
1714
1710
  swipe$1.touchHandlers.onTouchCancel(event);
@@ -1996,7 +1992,7 @@ function DrawerVirtualKeyboardProvider(props) {
1996
1992
  restorePreemptedFocus = overrideGeometryDuringFocus(target, (keyboardViewport.top + keyboardViewport.bottom - rect.top - rect.bottom) / 2);
1997
1993
  }
1998
1994
  function alignFocusedKeyboardTarget() {
1999
- keyboardFocusFrame = void 0;
1995
+ cancelKeyboardFocusFrame();
2000
1996
  consumePreemptedFocus();
2001
1997
  const target = focusedKeyboardTarget;
2002
1998
  if (nestedDrawerOpen || !target || !contains(rootElement, target)) {