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
@@ -0,0 +1,12 @@
1
+ import { merge as e, untrack as t } from "solid-js";
2
+ //#region src/use-render/useRender.ts
3
+ function n(n, r, i) {
4
+ return (a) => {
5
+ let o = t(() => n.render);
6
+ if (!o) return t(() => i(a));
7
+ let s = e(r);
8
+ return t(() => o(a, s));
9
+ };
10
+ }
11
+ //#endregion
12
+ export { n as t };
@@ -1,18 +1,19 @@
1
+ import { t as useRender } from "./useRender-CryVdCjs.js";
1
2
  import { getStateAttributesProps } from "./internals/getStateAttributesProps.js";
2
3
  import { N as triggerPress, d as imperativeAction, i as closePress } from "./internals/reasons.js";
3
4
  import { n as resolveClass, t as resolveStyle } from "./resolveStyle-XCSFDHAL.js";
4
5
  import { createChangeEventDetails } from "./internals/createBaseUIEventDetails.js";
5
6
  import { transitionStatusMapping } from "./internals/stateAttributesMapping.js";
6
- import { composeEventHandlers } from "./internals/composeEventHandlers.js";
7
- import { a as isElement, n as contains, r as getEventTarget } from "./dom-Crg_2R-j.js";
8
- import { n as createScrollLock, t as InternalBackdrop } from "./InternalBackdrop-C_iDPVR-.js";
7
+ import { composeEventHandlers, liveEventHandler } from "./internals/composeEventHandlers.js";
8
+ import { i as getEventTarget, n as contains, o as isElement } from "./dom-D8_aB1yy.js";
9
+ import { n as createScrollLock, t as InternalBackdrop } from "./InternalBackdrop-D_2zAWnl.js";
9
10
  import { c as useFloatingTree, i as createFloatingNode, n as FloatingTreeContext, r as FloatingTreeStore, s as useFloatingParentNodeId, t as FloatingParentNodeContext } from "./FloatingTree-z1JPD1dR.js";
10
- import { a as createPopupPresence, n as createTriggerRegistration, o as createDismiss, t as PopupStore } from "./PopupStore-DEs3FAEe.js";
11
- import { a as triggerOpenStateMapping, o as PopupPortal } from "./popupStateMapping-nKoUwoke.js";
12
- import { i as createPopupHandleStore, n as DetachedPopupStore, r as attachPopupHandle, t as BasePopupHandle } from "./PopupHandle-DthPgNjy.js";
13
- import { a as stopButtonInteraction, i as preventDisabledButtonKeyDown, n as handleNonNativeButtonKeyUp, r as preventButtonInteraction, t as handleNonNativeButtonKeyDown } from "./buttonSemantics-BSwDxJhh.js";
11
+ import { a as createPopupPresence, n as createTriggerRegistration, o as createDismiss, t as PopupStore } from "./PopupStore-evylvVnN.js";
12
+ import { a as triggerOpenStateMapping, o as PopupPortal } from "./popupStateMapping-VHqr6M4H.js";
13
+ import { i as createPopupHandleStore, n as DetachedPopupStore, r as attachPopupHandle, t as BasePopupHandle } from "./PopupHandle-QNj4mED2.js";
14
14
  import { t as setRef } from "./setRef-Bt70sW7c.js";
15
- import { Dynamic, escape, memo, mergeProps } from "@solidjs/web";
15
+ import { a as stopButtonInteraction, i as preventDisabledButtonKeyDown, n as handleNonNativeButtonKeyUp, r as preventButtonInteraction, t as handleNonNativeButtonKeyDown } from "./buttonSemantics-BSwDxJhh.js";
16
+ import { escape, memo, mergeProps, ssrElement } from "@solidjs/web";
16
17
  import { $REFRESH, Show, createContext, createEffect, createMemo, createSignal, createUniqueId, omit, onCleanup, untrack, useContext } from "solid-js";
17
18
  //#region src/dialog/store/DialogStore.ts
18
19
  var DialogStore = class extends PopupStore {
@@ -309,22 +310,20 @@ function DialogClose(props) {
309
310
  const disabled = createMemo(() => internalProps.disabled ?? false);
310
311
  const nativeButton = createMemo(() => internalProps.nativeButton ?? true);
311
312
  const state = createMemo(() => ({ disabled: disabled() }));
313
+ const Render = useRender(props, () => state(), (props) => ssrElement("button", props, void 0, true));
312
314
  const classValue = createMemo(() => resolveClass(props.class, state()));
313
315
  const styleValue = createMemo(() => resolveStyle(props.style, state()));
314
316
  const stateAttributes = createMemo(() => getStateAttributesProps(state()));
315
- const others = omit(allProps, "as", "class", "disabled", "nativeButton", "onClick", "onKeyDown", "onKeyUp", "onMouseDown", "onPointerDown", "ref", "style");
317
+ const others = omit(allProps, "render", "class", "disabled", "nativeButton", "onClick", "onKeyDown", "onKeyUp", "onMouseDown", "onPointerDown", "ref", "style");
316
318
  function handleClick(event) {
317
319
  if (context.store.open()) context.store.setOpen(false, createChangeEventDetails(closePress, event));
318
320
  }
319
- const onClick = composeEventHandlers(() => untrack(() => disabled() ? preventButtonInteraction : void 0), () => internalProps.onClick, () => handleClick);
320
- const onPointerDown = composeEventHandlers(() => untrack(() => disabled() ? preventButtonInteraction : void 0), () => internalProps.onPointerDown);
321
- const onMouseDown = composeEventHandlers(() => untrack(() => disabled() ? stopButtonInteraction : void 0), () => internalProps.onMouseDown);
322
- const onKeyDown = composeEventHandlers(() => untrack(() => disabled() ? preventDisabledButtonKeyDown : void 0), () => internalProps.onKeyDown, () => untrack(() => nativeButton() ? void 0 : handleNonNativeButtonKeyDown));
323
- const onKeyUp = composeEventHandlers(() => untrack(() => disabled() ? stopButtonInteraction : void 0), () => internalProps.onKeyUp, () => untrack(() => nativeButton() ? void 0 : handleNonNativeButtonKeyUp));
324
- return Dynamic(mergeProps({
325
- get component() {
326
- return props.as ?? "button";
327
- },
321
+ const onClick = composeEventHandlers(liveEventHandler(() => untrack(() => disabled() ? preventButtonInteraction : void 0)), liveEventHandler(() => internalProps.onClick), handleClick);
322
+ const onPointerDown = composeEventHandlers(liveEventHandler(() => untrack(() => disabled() ? preventButtonInteraction : void 0)), liveEventHandler(() => internalProps.onPointerDown));
323
+ const onMouseDown = composeEventHandlers(liveEventHandler(() => untrack(() => disabled() ? stopButtonInteraction : void 0)), liveEventHandler(() => internalProps.onMouseDown));
324
+ const onKeyDown = composeEventHandlers(liveEventHandler(() => untrack(() => disabled() ? preventDisabledButtonKeyDown : void 0)), liveEventHandler(() => internalProps.onKeyDown), liveEventHandler(() => untrack(() => nativeButton() ? void 0 : handleNonNativeButtonKeyDown)));
325
+ const onKeyUp = composeEventHandlers(liveEventHandler(() => untrack(() => disabled() ? stopButtonInteraction : void 0)), liveEventHandler(() => internalProps.onKeyUp), liveEventHandler(() => untrack(() => nativeButton() ? void 0 : handleNonNativeButtonKeyUp)));
326
+ return Render(mergeProps({
328
327
  ref: [internalProps.ref],
329
328
  get type() {
330
329
  return nativeButton() ? "button" : void 0;
@@ -366,17 +365,15 @@ function DialogDescription(props) {
366
365
  const generatedId = `base-ui-${createUniqueId()}`;
367
366
  const id = createMemo(() => internalProps.id || generatedId);
368
367
  const state = {};
368
+ const Render = useRender(props, () => state, (props) => ssrElement("p", props, void 0, true));
369
369
  const classValue = createMemo(() => resolveClass(props.class, state));
370
370
  const styleValue = createMemo(() => resolveStyle(props.style, state));
371
- const others = omit(allProps, "as", "class", "id", "ref", "style");
371
+ const others = omit(allProps, "render", "class", "id", "ref", "style");
372
372
  createEffect(() => id(), (current) => {
373
373
  context.setDescriptionId(current);
374
374
  return () => context.setDescriptionId((existing) => existing === current ? void 0 : existing);
375
375
  });
376
- return Dynamic(mergeProps({
377
- get component() {
378
- return props.as ?? "p";
379
- },
376
+ return Render(mergeProps({
380
377
  ref: [internalProps.ref],
381
378
  get id() {
382
379
  return id();
@@ -410,7 +407,7 @@ function DialogPortal(props) {
410
407
  const state = {};
411
408
  const classValue = createMemo(() => resolveClass(props.class, state));
412
409
  const styleValue = createMemo(() => resolveStyle(props.style, state));
413
- const others = omit(allProps, "as", "class", "container", "keepMounted", "ref", "style");
410
+ const others = omit(allProps, "render", "class", "container", "keepMounted", "ref", "style");
414
411
  const portalContext = { keepMounted };
415
412
  function DialogInternalBackdrop() {
416
413
  let element = null;
@@ -436,8 +433,8 @@ function DialogPortal(props) {
436
433
  value: portalContext,
437
434
  get children() {
438
435
  return PopupPortal(mergeProps({
439
- get as() {
440
- return props.as;
436
+ get render() {
437
+ return props.render;
441
438
  },
442
439
  get container() {
443
440
  return internalProps.container;
@@ -480,17 +477,15 @@ function DialogTitle(props) {
480
477
  const generatedId = `base-ui-${createUniqueId()}`;
481
478
  const id = createMemo(() => internalProps.id || generatedId);
482
479
  const state = {};
480
+ const Render = useRender(props, () => state, (props) => ssrElement("h2", props, void 0, true));
483
481
  const classValue = createMemo(() => resolveClass(props.class, state));
484
482
  const styleValue = createMemo(() => resolveStyle(props.style, state));
485
- const others = omit(allProps, "as", "class", "id", "ref", "style");
483
+ const others = omit(allProps, "render", "class", "id", "ref", "style");
486
484
  createEffect(() => id(), (current) => {
487
485
  context.setTitleId(current);
488
486
  return () => context.setTitleId((existing) => existing === current ? void 0 : existing);
489
487
  });
490
- return Dynamic(mergeProps({
491
- get component() {
492
- return props.as ?? "h2";
493
- },
488
+ return Render(mergeProps({
494
489
  ref: [internalProps.ref],
495
490
  get id() {
496
491
  return id();
@@ -526,10 +521,11 @@ function DialogTrigger(props) {
526
521
  disabled: disabled(),
527
522
  open: open()
528
523
  }));
524
+ const Render = useRender(props, () => state(), (props) => ssrElement("button", props, void 0, true));
529
525
  const classValue = createMemo(() => resolveClass(props.class, state()));
530
526
  const styleValue = createMemo(() => resolveStyle(props.style, state()));
531
527
  const stateAttributes = createMemo(() => getStateAttributesProps(state(), triggerOpenStateMapping));
532
- const others = omit(allProps, "as", "class", "disabled", "handle", "id", "nativeButton", "onClick", "onKeyDown", "onKeyUp", "onMouseDown", "onPointerDown", "payload", "ref", "style");
528
+ const others = omit(allProps, "render", "class", "disabled", "handle", "id", "nativeButton", "onClick", "onKeyDown", "onKeyUp", "onMouseDown", "onPointerDown", "payload", "ref", "style");
533
529
  let pointerType = "";
534
530
  let clickPointerType = "";
535
531
  createTriggerRegistration(store, id, element, () => ({ payload: internalProps.payload }));
@@ -555,15 +551,12 @@ function DialogTrigger(props) {
555
551
  const currentTarget = event.currentTarget;
556
552
  if (popup && currentTarget && popup.ownerDocument !== currentTarget.ownerDocument && typeof rootHandler === "function") rootHandler(event);
557
553
  }
558
- const onClick = composeEventHandlers(() => untrack(() => disabled() ? preventButtonInteraction : void 0), () => prepareClick, () => internalProps.onClick, () => handleClick);
559
- const onPointerDown = composeEventHandlers(() => untrack(() => disabled() ? preventButtonInteraction : void 0), () => internalProps.onPointerDown, () => handlePointerDown);
560
- const onMouseDown = composeEventHandlers(() => untrack(() => disabled() ? stopButtonInteraction : void 0), () => internalProps.onMouseDown);
561
- const onKeyDown = composeEventHandlers(() => untrack(() => disabled() ? preventDisabledButtonKeyDown : void 0), () => internalProps.onKeyDown, () => handleKeyDown, () => untrack(() => nativeButton() ? void 0 : handleNonNativeButtonKeyDown));
562
- const onKeyUp = composeEventHandlers(() => untrack(() => disabled() ? stopButtonInteraction : void 0), () => internalProps.onKeyUp, () => untrack(() => nativeButton() ? void 0 : handleNonNativeButtonKeyUp));
563
- return Dynamic(mergeProps({
564
- get component() {
565
- return props.as ?? "button";
566
- },
554
+ const onClick = composeEventHandlers(liveEventHandler(() => untrack(() => disabled() ? preventButtonInteraction : void 0)), prepareClick, liveEventHandler(() => internalProps.onClick), handleClick);
555
+ const onPointerDown = composeEventHandlers(liveEventHandler(() => untrack(() => disabled() ? preventButtonInteraction : void 0)), liveEventHandler(() => internalProps.onPointerDown), handlePointerDown);
556
+ const onMouseDown = composeEventHandlers(liveEventHandler(() => untrack(() => disabled() ? stopButtonInteraction : void 0)), liveEventHandler(() => internalProps.onMouseDown));
557
+ const onKeyDown = composeEventHandlers(liveEventHandler(() => untrack(() => disabled() ? preventDisabledButtonKeyDown : void 0)), liveEventHandler(() => internalProps.onKeyDown), handleKeyDown, liveEventHandler(() => untrack(() => nativeButton() ? void 0 : handleNonNativeButtonKeyDown)));
558
+ const onKeyUp = composeEventHandlers(liveEventHandler(() => untrack(() => disabled() ? stopButtonInteraction : void 0)), liveEventHandler(() => internalProps.onKeyUp), liveEventHandler(() => untrack(() => nativeButton() ? void 0 : handleNonNativeButtonKeyUp)));
559
+ return Render(mergeProps({
567
560
  ref: [((value) => setElement(value)), internalProps.ref],
568
561
  get id() {
569
562
  return id();
@@ -618,13 +611,14 @@ function DialogViewport(props) {
618
611
  const portal = useDialogPortalContext();
619
612
  const context = useDialogRootContext();
620
613
  const internalProps = props;
621
- const others = omit(props, "as", "class", "ref", "style");
614
+ const others = omit(props, "render", "class", "ref", "style");
622
615
  const state = createMemo(() => ({
623
616
  open: context.store.open(),
624
617
  transitionStatus: context.store.track().transitionStatus,
625
618
  nested: context.nested,
626
619
  nestedDialogOpen: context.nestedOpenDialogCount() > 0
627
620
  }));
621
+ const Render = useRender(props, () => state(), (props) => ssrElement("div", props, void 0, true));
628
622
  const classValue = createMemo(() => resolveClass(props.class, state()));
629
623
  const styleValue = createMemo(() => mergeDialogStyles({ "pointer-events": context.store.open() ? void 0 : "none" }, resolveStyle(props.style, state())));
630
624
  const stateAttributes = createMemo(() => getStateAttributesProps(state(), dialogStateAttributesMapping));
@@ -638,10 +632,7 @@ function DialogViewport(props) {
638
632
  return shouldRender();
639
633
  },
640
634
  get children() {
641
- return Dynamic(mergeProps({
642
- get component() {
643
- return props.as ?? "div";
644
- },
635
+ return Render(mergeProps({
645
636
  ref: [((element) => {
646
637
  viewportElement = element;
647
638
  context.setViewportElement(element);
@@ -1,20 +1,22 @@
1
+ import { t as useRender } from "./useRender-CryVdCjs.js";
1
2
  import { getStateAttributesProps } from "./internals/getStateAttributesProps.js";
2
3
  import { n as resolveClass, t as resolveStyle } from "./resolveStyle-XCSFDHAL.js";
3
- import { composeEventHandlers } from "./internals/composeEventHandlers.js";
4
- import { t as FocusManager } from "./FocusManager-BrbZVWME.js";
5
- import { d as dialogTransitionStateAttributesMapping, f as mergeDialogStyles, h as useDialogRootContext, s as useDialogPortalContext, u as dialogStateAttributesMapping } from "./DialogHandle-ATZlm9RC.js";
6
- import { Dynamic, mergeProps } from "@solidjs/web";
4
+ import { composeEventHandlers, liveEventHandler } from "./internals/composeEventHandlers.js";
5
+ import { t as FocusManager } from "./FocusManager-D-xgblGs.js";
6
+ import { d as dialogTransitionStateAttributesMapping, f as mergeDialogStyles, h as useDialogRootContext, s as useDialogPortalContext, u as dialogStateAttributesMapping } from "./DialogHandle-BGIISmG7.js";
7
+ import { mergeProps, ssrElement } from "@solidjs/web";
7
8
  import { Show, createEffect, createMemo, omit, onCleanup } from "solid-js";
8
9
  //#region src/dialog/backdrop/DialogBackdrop.tsx
9
10
  /** An overlay displayed beneath the dialog popup. */
10
11
  function DialogBackdrop(props) {
11
12
  const context = useDialogRootContext();
12
13
  const internalProps = props;
13
- const others = omit(props, "as", "class", "forceRender", "ref", "style");
14
+ const others = omit(props, "render", "class", "forceRender", "ref", "style");
14
15
  const state = createMemo(() => ({
15
16
  open: context.store.open(),
16
17
  transitionStatus: context.store.track().transitionStatus
17
18
  }));
19
+ const Render = useRender(props, () => state(), (props) => ssrElement("div", props, void 0, true));
18
20
  const classValue = createMemo(() => resolveClass(props.class, state()));
19
21
  const styleValue = createMemo(() => mergeDialogStyles({
20
22
  "user-select": "none",
@@ -27,10 +29,7 @@ function DialogBackdrop(props) {
27
29
  onCleanup(() => {
28
30
  if (context.backdropElement() === backdropElement) context.setBackdropElement(null);
29
31
  });
30
- return Dynamic(mergeProps({
31
- get component() {
32
- return props.as ?? "div";
33
- },
32
+ return Render(mergeProps({
34
33
  ref: [((element) => {
35
34
  backdropElement = element;
36
35
  context.setBackdropElement(element);
@@ -71,19 +70,20 @@ function DialogPopup(props) {
71
70
  useDialogPortalContext();
72
71
  const context = useDialogRootContext();
73
72
  const internalProps = props;
74
- const others = omit(props, "as", "class", "finalFocus", "id", "initialFocus", "onKeyDown", "ref", "style");
73
+ const others = omit(props, "render", "class", "finalFocus", "id", "initialFocus", "onKeyDown", "ref", "style");
75
74
  const state = createMemo(() => ({
76
75
  open: context.store.open(),
77
76
  transitionStatus: context.store.track().transitionStatus,
78
77
  nested: context.nested,
79
78
  nestedDialogOpen: context.nestedOpenDialogCount() > 0
80
79
  }));
80
+ const Render = useRender(props, () => state(), (props) => ssrElement("div", props, void 0, true));
81
81
  const classValue = createMemo(() => resolveClass(props.class, state()));
82
82
  const styleValue = createMemo(() => mergeDialogStyles({ "--nested-dialogs": context.nestedOpenDialogCount() }, resolveStyle(props.style, state())));
83
83
  const stateAttributes = createMemo(() => getStateAttributesProps(state(), dialogStateAttributesMapping));
84
84
  const id = createMemo(() => internalProps.id ?? context.store.context.floatingId);
85
85
  const initialFocus = createMemo(() => internalProps.initialFocus ?? ((interactionType) => interactionType === "touch" ? context.store.state.popupElement : true));
86
- const onKeyDown = composeEventHandlers(() => internalProps.onKeyDown, () => (event) => {
86
+ const onKeyDown = composeEventHandlers(liveEventHandler(() => internalProps.onKeyDown), (event) => {
87
87
  if (COMPOSITE_KEYS.has(event.key)) event.stopPropagation();
88
88
  });
89
89
  let popupElement = null;
@@ -93,10 +93,7 @@ function DialogPopup(props) {
93
93
  onCleanup(() => {
94
94
  if (context.store.state.popupElement === popupElement) context.store.setPopupElement(null);
95
95
  });
96
- const popup = Dynamic(mergeProps({
97
- get component() {
98
- return props.as ?? "div";
99
- },
96
+ const popup = Render(mergeProps({
100
97
  ref: [((element) => {
101
98
  popupElement = element;
102
99
  context.store.setPopupElement(element);
@@ -1,13 +1,15 @@
1
+ import { t as useRender } from "./useRender-CryVdCjs.js";
1
2
  import { getStateAttributesProps } from "./internals/getStateAttributesProps.js";
2
3
  import { w as none } from "./internals/reasons.js";
3
4
  import { n as resolveClass, t as resolveStyle } from "./resolveStyle-XCSFDHAL.js";
4
5
  import { createChangeEventDetails } from "./internals/createBaseUIEventDetails.js";
5
- import { composeEventHandlers } from "./internals/composeEventHandlers.js";
6
+ import { composeEventHandlers, liveEventHandler } from "./internals/composeEventHandlers.js";
6
7
  import { fieldStateAttributesMapping } from "./internals/field-constants.js";
7
- import { n as useFieldRootContext } from "./FieldRootContext-IC-LWzVp.js";
8
- import { n as useFormContext } from "./FormContext-pvESt85v.js";
9
- import { r as useLabelableContext } from "./LabelableContext-DZP3rgAY.js";
10
- import { Dynamic, mergeProps } from "@solidjs/web";
8
+ import { r as useFieldRootContext } from "./FieldRootContext-Bfpna6gA.js";
9
+ import { n as useFormContext } from "./FormContext-CYwo_ZnB.js";
10
+ import { r as useLabelableContext } from "./LabelableContext-BTeF0IWb.js";
11
+ import { t as createLabelableId } from "./createLabelableId-WMUKtY6s.js";
12
+ import { mergeProps, ssrElement } from "@solidjs/web";
11
13
  import { createEffect, createMemo, createSignal, createUniqueId, omit, onCleanup, onSettled, untrack } from "solid-js";
12
14
  //#region src/field/control/FieldControl.tsx
13
15
  /** The native field control. Renders an `<input>` by default. */
@@ -19,11 +21,16 @@ function FieldControl(props) {
19
21
  const allProps = props;
20
22
  const source = Symbol("FieldControl");
21
23
  let initialized = false;
22
- const controlId = untrack(labelable.controlId);
24
+ const controlled = untrack(() => internalProps.value !== void 0);
25
+ const serializedValue = () => internalProps.value == null ? void 0 : String(internalProps.value);
26
+ let previousValue = untrack(serializedValue);
27
+ let enterTimeout;
28
+ let disposed = false;
29
+ const controlId = labelable.defaultControlId;
23
30
  const fallbackId = typeof controlId === "string" ? controlId : `base-ui-${createUniqueId()}`;
24
31
  const [element, setElement] = createSignal();
25
- const others = omit(allProps, "aria-describedby", "aria-labelledby", "as", "autofocus", "class", "defaultValue", "disabled", "id", "name", "onBlur", "onFocus", "onInput", "onKeyDown", "onValueChange", "ref", "style", "value");
26
- const id = createMemo(() => internalProps.id ?? fallbackId);
32
+ const others = omit(allProps, "aria-describedby", "aria-labelledby", "render", "autofocus", "class", "defaultValue", "disabled", "id", "name", "onBlur", "onFocus", "onInput", "onKeyDown", "onValueChange", "ref", "style", "value");
33
+ const id = createLabelableId(() => internalProps.id, fallbackId);
27
34
  const disabled = createMemo(() => field.disabled() || (internalProps.disabled ?? false));
28
35
  const name = createMemo(() => field.name() ?? internalProps.name);
29
36
  const state = createMemo(() => ({
@@ -31,10 +38,11 @@ function FieldControl(props) {
31
38
  disabled: disabled()
32
39
  }));
33
40
  const classValue = createMemo(() => resolveClass(props.class, state()));
41
+ const Render = useRender(props, () => state(), (props) => ssrElement("input", props, void 0, true));
34
42
  const styleValue = createMemo(() => resolveStyle(props.style, state()));
35
43
  const stateAttributes = createMemo(() => getStateAttributesProps(state(), fieldStateAttributesMapping));
36
44
  const currentValue = () => {
37
- if (internalProps.value !== void 0) return internalProps.value;
45
+ if (internalProps.value !== void 0) return serializedValue();
38
46
  const currentElement = element();
39
47
  return isNativeFieldControl(currentElement) ? currentElement.value : internalProps.defaultValue;
40
48
  };
@@ -49,10 +57,10 @@ function FieldControl(props) {
49
57
  getValue: getFormValue,
50
58
  getControl: () => element() ?? null
51
59
  };
52
- const callExternalInput = composeEventHandlers(() => internalProps.onInput);
53
- const callExternalFocus = composeEventHandlers(() => internalProps.onFocus);
54
- const callExternalBlur = composeEventHandlers(() => internalProps.onBlur);
55
- const callExternalKeyDown = composeEventHandlers(() => internalProps.onKeyDown);
60
+ const callExternalInput = composeEventHandlers(liveEventHandler(() => internalProps.onInput));
61
+ const callExternalFocus = composeEventHandlers(liveEventHandler(() => internalProps.onFocus));
62
+ const callExternalBlur = composeEventHandlers(liveEventHandler(() => internalProps.onBlur));
63
+ const callExternalKeyDown = composeEventHandlers(liveEventHandler(() => internalProps.onKeyDown));
56
64
  function setControlElement(value) {
57
65
  setElement(value);
58
66
  if (initialized || !isNativeFieldControl(value)) return;
@@ -68,10 +76,18 @@ function FieldControl(props) {
68
76
  callExternalInput.call(event.currentTarget, event);
69
77
  if (event.baseUIHandlerPrevented) return;
70
78
  const value = readElementValue(event.currentTarget);
71
- internalProps.onValueChange?.(value, createChangeEventDetails(none, event));
79
+ const details = createChangeEventDetails(none, event);
80
+ internalProps.onValueChange?.(value, details);
81
+ if (controlled) {
82
+ const input = event.currentTarget;
83
+ queueMicrotask(() => {
84
+ if (!disposed && isNativeFieldControl(input)) input.value = serializedValue() ?? "";
85
+ });
86
+ return;
87
+ }
72
88
  field.setDirty(value !== (field.validityData().initialValue ?? ""));
73
89
  field.setFilled(value !== "");
74
- if (!event.defaultPrevented) {
90
+ if (!event.defaultPrevented && !details.isCanceled) {
75
91
  form.clearError(name());
76
92
  field.validation.change(value);
77
93
  }
@@ -86,14 +102,29 @@ function FieldControl(props) {
86
102
  if (event.baseUIHandlerPrevented) return;
87
103
  field.setTouched(true);
88
104
  field.setFocused(false);
89
- if (field.validationMode() === "onBlur") field.validation.commit(readElementValue(event.currentTarget));
105
+ if (field.validationMode() === "onBlur") {
106
+ const value = readElementValue(event.currentTarget);
107
+ field.validation.commit(value);
108
+ if (controlled) queueMicrotask(() => {
109
+ if (disposed) return;
110
+ const next = serializedValue();
111
+ if (next !== void 0 && next !== value && next !== (field.validityData().initialValue ?? "")) field.validation.commit(next);
112
+ });
113
+ }
90
114
  }
91
115
  function handleKeyDown(event) {
92
116
  callExternalKeyDown.call(event.currentTarget, event);
93
117
  if (event.baseUIHandlerPrevented) return;
94
118
  if (event.currentTarget.tagName === "INPUT" && event.key === "Enter") {
95
119
  field.setTouched(true);
96
- field.validation.commit(readElementValue(event.currentTarget));
120
+ const input = event.currentTarget;
121
+ if (input.form && input.form === form.formElement() && !event.defaultPrevented) {
122
+ const count = form.submitCount();
123
+ clearTimeout(enterTimeout);
124
+ enterTimeout = setTimeout(() => {
125
+ if (form.submitCount() === count) field.validation.commit(input.value);
126
+ }, 0);
127
+ } else field.validation.commit(input.value);
97
128
  }
98
129
  }
99
130
  createEffect(() => ({
@@ -105,28 +136,33 @@ function FieldControl(props) {
105
136
  registration.id = current.id;
106
137
  registration.name = current.name;
107
138
  field.registerFieldControl(source, current.disabled || !current.element ? void 0 : registration);
108
- labelable.registerControlId(source, current.element ? current.id : void 0);
109
139
  });
110
140
  createEffect(() => element(), (currentElement) => {
111
141
  if (!isNativeFieldControl(currentElement)) return;
112
142
  return field.validation.registerInput(source, currentElement, () => untrack(() => element() ?? null));
113
143
  });
114
- createEffect(() => internalProps.value, (value) => {
115
- if (value !== void 0) field.setFilled(value !== "");
116
- });
144
+ createEffect(serializedValue, (value) => untrack(() => {
145
+ if (value !== void 0) {
146
+ field.setFilled(value !== "");
147
+ if (value !== previousValue) {
148
+ previousValue = value;
149
+ form.clearError(name());
150
+ field.setDirty(value !== (field.validityData().initialValue ?? ""));
151
+ field.validation.change(value);
152
+ }
153
+ }
154
+ }));
117
155
  onSettled(() => {
118
156
  const currentElement = element();
119
157
  if (isNativeFieldControl(currentElement)) field.setFilled(currentElement.value !== "");
120
158
  if (internalProps.autofocus && currentElement?.ownerDocument.activeElement === currentElement) field.setFocused(true);
121
159
  });
122
160
  onCleanup(() => {
161
+ disposed = true;
162
+ clearTimeout(enterTimeout);
123
163
  field.registerFieldControl(source, void 0);
124
- labelable.registerControlId(source, void 0);
125
164
  });
126
- return Dynamic(mergeProps({
127
- get component() {
128
- return props.as ?? "input";
129
- },
165
+ return Render(mergeProps({
130
166
  ref: [setControlElement, internalProps.ref],
131
167
  get id() {
132
168
  return id();
@@ -2,7 +2,7 @@ import { DEFAULT_FIELD_STATE, DEFAULT_VALIDITY_DATA } from "./internals/field-co
2
2
  import { createContext, useContext } from "solid-js";
3
3
  //#region src/internals/field-root-context/FieldRootContext.ts
4
4
  var MISSING_CONTEXT = Symbol("FieldRootContext");
5
- var DEFAULT_CONTEXT = {
5
+ var DEFAULT_FIELD_ROOT_CONTEXT = {
6
6
  state: () => DEFAULT_FIELD_STATE,
7
7
  validityData: () => DEFAULT_VALIDITY_DATA,
8
8
  name: () => void 0,
@@ -27,8 +27,8 @@ var FieldRootContext = createContext(MISSING_CONTEXT);
27
27
  function useFieldRootContext(optional = false) {
28
28
  const context = useContext(FieldRootContext);
29
29
  if (context !== MISSING_CONTEXT) return context;
30
- if (optional) return DEFAULT_CONTEXT;
30
+ if (optional) return DEFAULT_FIELD_ROOT_CONTEXT;
31
31
  throw new Error("Base UI: FieldRootContext is missing. Field parts must be placed within <Field.Root>.");
32
32
  }
33
33
  //#endregion
34
- export { useFieldRootContext as n, FieldRootContext as t };
34
+ export { FieldRootContext as n, useFieldRootContext as r, DEFAULT_FIELD_ROOT_CONTEXT as t };
@@ -1,8 +1,8 @@
1
1
  import { u as focusOut } from "./internals/reasons.js";
2
2
  import { createChangeEventDetails } from "./internals/createBaseUIEventDetails.js";
3
- import { c as isHTMLElement, d as isTypeableCombobox, f as isTypeableElement, i as getFloatingFocusElement, n as contains, o as isElementVisible, p as ownerDocument, r as getEventTarget, t as activeElement, u as isShadowRoot } from "./dom-Crg_2R-j.js";
3
+ import { a as getFloatingFocusElement, d as isShadowRoot, f as isTypeableCombobox, i as getEventTarget, l as isHTMLElement, m as ownerDocument, n as contains, p as isTypeableElement, r as containsWithPortals, s as isElementVisible, t as activeElement } from "./dom-D8_aB1yy.js";
4
4
  import { a as getNodeAncestors, o as getNodeChildren } from "./FloatingTree-z1JPD1dR.js";
5
- import { c as focusable, g as FocusGuard, h as tabbable, l as getNextTabbable, m as isTabbable, p as isOutsideFocusEvent, s as usePopupPortalContext, u as getPreviousTabbable } from "./popupStateMapping-nKoUwoke.js";
5
+ import { c as focusable, g as FocusGuard, h as tabbable, l as getNextTabbable, m as isTabbable, p as isOutsideFocusEvent, s as usePopupPortalContext, u as getPreviousTabbable } from "./popupStateMapping-VHqr6M4H.js";
6
6
  import { applyRef, escape, memo } from "@solidjs/web";
7
7
  import { Show, createEffect, createMemo, untrack } from "solid-js";
8
8
  //#region src/internals/overlay/markOthers.ts
@@ -277,7 +277,7 @@ function FocusManager(props) {
277
277
  resolveElement(props.nextFocusableElement)
278
278
  ].includes(relatedTarget));
279
279
  const triggers = props.context.context.triggerElements;
280
- const movedOutside = !(contains(state.reference, relatedTarget) || contains(state.floating, relatedTarget) || contains(relatedTarget, state.floating) || contains(portal?.portalNode(), relatedTarget) || insideElements().some((element) => element === relatedTarget || contains(element, relatedTarget)) || triggers.hasMatchingElement((trigger) => contains(trigger, relatedTarget)) || relatedIsGuard || state.tree && (getNodeChildren(state.tree.nodes, nodeId()).some((node) => contains(node.context?.state.floatingElement, relatedTarget) || contains(node.context?.state.domReferenceElement, relatedTarget)) || getNodeAncestors(state.tree.nodes, nodeId()).some((node) => node.context?.state.floatingElement === relatedTarget || node.context?.state.domReferenceElement === relatedTarget)));
280
+ const movedOutside = !(containsWithPortals(state.reference, relatedTarget) || containsWithPortals(state.floating, relatedTarget) || contains(relatedTarget, state.floating) || contains(portal?.portalNode(), relatedTarget) || insideElements().some((element) => element === relatedTarget || contains(element, relatedTarget)) || triggers.hasMatchingElement((trigger) => contains(trigger, relatedTarget)) || relatedIsGuard || state.tree && (getNodeChildren(state.tree.nodes, nodeId()).some((node) => containsWithPortals(node.context?.state.floatingElement, relatedTarget) || containsWithPortals(node.context?.state.domReferenceElement, relatedTarget)) || getNodeAncestors(state.tree.nodes, nodeId()).some((node) => node.context?.state.floatingElement === relatedTarget || node.context?.state.domReferenceElement === relatedTarget)));
281
281
  if (event.currentTarget === state.reference && state.focusElement) handleTabIndex(state.focusElement);
282
282
  if (state.restoreFocus && event.currentTarget !== state.reference && !isElementVisible(target) && activeElement(documentNode) === documentNode.body && state.focusElement) {
283
283
  state.focusElement.focus();
@@ -295,6 +295,11 @@ function FocusManager(props) {
295
295
  }
296
296
  });
297
297
  };
298
+ const handlePortalFocusOut = (event) => {
299
+ const target = getEventTarget(event);
300
+ if (!contains(state.floating, target) && !contains(state.reference, target) && (containsWithPortals(state.floating, target) || containsWithPortals(state.reference, target))) handleFocusOut(event);
301
+ };
302
+ documentNode.addEventListener("focusout", handlePortalFocusOut);
298
303
  if (state.reference) {
299
304
  state.reference.addEventListener("focusout", handleFocusOut);
300
305
  state.reference.addEventListener("pointerdown", handlePointerDown);
@@ -302,6 +307,7 @@ function FocusManager(props) {
302
307
  state.floating?.addEventListener("focusin", handleFocusIn);
303
308
  state.floating?.addEventListener("focusout", handleFocusOut);
304
309
  return () => {
310
+ documentNode.removeEventListener("focusout", handlePortalFocusOut);
305
311
  if (state.reference) {
306
312
  state.reference.removeEventListener("focusout", handleFocusOut);
307
313
  state.reference.removeEventListener("pointerdown", handlePointerDown);
@@ -497,7 +503,6 @@ function FocusManager(props) {
497
503
  preventReturnFocus = false;
498
504
  if (isOutsideFocusEvent(event, portal.portalNode())) getNextTabbable(domReference())?.focus();
499
505
  else (resolveElement(props.previousFocusableElement) ?? portal.beforeOutside())?.focus();
500
- if (closeOnFocusOut()) props.context.setOpen(false, createChangeEventDetails(focusOut, event));
501
506
  }
502
507
  }
503
508
  });
@@ -523,7 +528,6 @@ function FocusManager(props) {
523
528
  if (closeOnFocusOut()) preventReturnFocus = true;
524
529
  if (isOutsideFocusEvent(event, portal.portalNode())) getPreviousTabbable(domReference())?.focus();
525
530
  else (resolveElement(props.nextFocusableElement) ?? portal.afterOutside())?.focus();
526
- if (closeOnFocusOut()) props.context.setOpen(false, createChangeEventDetails(focusOut, event));
527
531
  }
528
532
  }
529
533
  });
@@ -5,6 +5,7 @@ var FormContext = createContext({
5
5
  errors: () => EMPTY_ERRORS,
6
6
  validationMode: () => "onSubmit",
7
7
  submitAttempted: () => false,
8
+ submitCount: () => 0,
8
9
  formElement: () => null,
9
10
  clearError: () => void 0,
10
11
  registerField: () => () => void 0,
@@ -1,4 +1,4 @@
1
- import { m as ownerWindow, p as ownerDocument } from "./dom-Crg_2R-j.js";
1
+ import { h as ownerWindow, m as ownerDocument } from "./dom-D8_aB1yy.js";
2
2
  import { mergeProps, ssrElement } from "@solidjs/web";
3
3
  import { createEffect, createSignal, omit } from "solid-js";
4
4
  //#region src/internals/overlay/scrollLock.ts
@@ -21,14 +21,11 @@ function createLabelableContext(options = {}) {
21
21
  const controlRegistrations = /* @__PURE__ */ new Map();
22
22
  const messageRegistrations = /* @__PURE__ */ new Map();
23
23
  function registerControlId(source, id) {
24
- if (id === void 0) {
25
- controlRegistrations.delete(source);
26
- return;
27
- }
28
- controlRegistrations.set(source, id);
24
+ if (id === void 0) controlRegistrations.delete(source);
25
+ else controlRegistrations.set(source, id);
29
26
  setControlId((current) => {
30
27
  for (const registeredId of controlRegistrations.values()) if (registeredId === current) return current;
31
- return controlRegistrations.values().next().value ?? generatedControlId;
28
+ return controlRegistrations.size ? controlRegistrations.values().next().value : generatedControlId;
32
29
  });
33
30
  }
34
31
  function registerLabelId(id) {
@@ -46,6 +43,7 @@ function createLabelableContext(options = {}) {
46
43
  return Array.from(new Set(ids)).join(" ") || void 0;
47
44
  }
48
45
  return {
46
+ defaultControlId: generatedControlId,
49
47
  controlId,
50
48
  labelId,
51
49
  messageIds,