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,19 +1,20 @@
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 { n as resolveClass, t as resolveStyle } from "../resolveStyle-XCSFDHAL.js";
4
5
  import { transitionStatusMapping } from "../internals/stateAttributesMapping.js";
5
- import { composeEventHandlers } from "../internals/composeEventHandlers.js";
6
- import { t as runOnceAnimationsFinish } from "../runOnceAnimationsFinish-DCHzXWZU.js";
7
- import { t as createTransitionStatus } from "../createTransitionStatus-BTlrerSS.js";
6
+ import { composeEventHandlers, liveEventHandler } from "../internals/composeEventHandlers.js";
7
+ import { t as runOnceAnimationsFinish } from "../runOnceAnimationsFinish-CYq38H8J.js";
8
+ import { t as createTransitionStatus } from "../createTransitionStatus-184v7j3-.js";
8
9
  import { DEFAULT_VALIDITY_DATA, DEFAULT_VALIDITY_STATE, VALIDITY_KEYS, copyNativeValidity, fieldStateAttributesMapping } from "../internals/field-constants.js";
9
- import { n as useFieldRootContext, t as FieldRootContext } from "../FieldRootContext-IC-LWzVp.js";
10
- import { n as useFormContext } from "../FormContext-pvESt85v.js";
11
- import { n as createLabelableContext, r as useLabelableContext, t as LabelableContext } from "../LabelableContext-DZP3rgAY.js";
10
+ import { n as FieldRootContext, r as useFieldRootContext } from "../FieldRootContext-Bfpna6gA.js";
11
+ import { n as useFormContext } from "../FormContext-CYwo_ZnB.js";
12
+ import { n as createLabelableContext, r as useLabelableContext, t as LabelableContext } from "../LabelableContext-BTeF0IWb.js";
12
13
  import { n as useFieldItemContext, t as FieldItemContext } from "../FieldItemContext-x-C7ZlmX.js";
13
14
  import { n as useFieldsetRootContext } from "../FieldsetRootContext-DyNqCjK6.js";
14
15
  import { t as hasFormError } from "../form-types-P7-SCWyr.js";
15
- import { t as FieldControl } from "../FieldControl-Y_kI7ARp.js";
16
- import { Dynamic, escape, memo, mergeProps, ssr, ssrHydrationKey } from "@solidjs/web";
16
+ import { t as FieldControl } from "../FieldControl-CDMMyvuj.js";
17
+ import { escape, memo, mergeProps, ssr, ssrElement, ssrHydrationKey } from "@solidjs/web";
17
18
  import { For, Show, createEffect, createMemo, createSignal, createUniqueId, omit, onCleanup, onSettled, untrack } from "solid-js";
18
19
  //#region src/field/root/createFieldValidation.ts
19
20
  function createFieldValidation(options) {
@@ -21,7 +22,10 @@ function createFieldValidation(options) {
21
22
  let activeInputSource = null;
22
23
  let validationCommitId = 0;
23
24
  let timeout;
25
+ let pendingInput = null;
26
+ let customValidity;
24
27
  function clearTimer() {
28
+ pendingInput = null;
25
29
  if (timeout !== void 0) {
26
30
  clearTimeout(timeout);
27
31
  timeout = void 0;
@@ -38,93 +42,103 @@ function createFieldValidation(options) {
38
42
  }
39
43
  return fallback;
40
44
  }
41
- function clearCustomValidity(element) {
42
- for (const inputs of registeredInputs.values()) for (const input of inputs.keys()) input.setCustomValidity("");
43
- element?.setCustomValidity("");
44
- }
45
- function publishAllValid(value, element) {
46
- clearCustomValidity(element);
47
- options.publish({
48
- value,
49
- state: {
50
- ...DEFAULT_VALIDITY_STATE,
51
- valid: true
52
- },
53
- error: "",
54
- errors: [],
55
- initialValue: options.getValidityData().initialValue
56
- });
45
+ function clearCustomValidity() {
46
+ const record = customValidity;
47
+ customValidity = void 0;
48
+ if (record && (!record[0].willValidate || record[0].validationMessage === record[1])) record[0].setCustomValidity(record[2]);
57
49
  }
58
50
  function commit(value, revalidate = false) {
59
51
  validationCommitId += 1;
60
52
  const currentCommitId = validationCommitId;
61
53
  clearTimer();
62
- const element = findRepresentativeInput();
54
+ let element = findRepresentativeInput();
55
+ const nativeErrors = () => element?.validationMessage ? [element.validationMessage] : [];
56
+ const refreshState = () => {
57
+ element = findRepresentativeInput();
58
+ return element?.willValidate ? getNativeState(element, options.isMarkedDirty()) : {
59
+ ...DEFAULT_VALIDITY_STATE,
60
+ valid: true
61
+ };
62
+ };
63
+ const publish = (state, messages) => {
64
+ const errors = state.valid === false ? messages : [];
65
+ options.publish({
66
+ value,
67
+ state,
68
+ errors,
69
+ error: errors[0] ?? "",
70
+ initialValue: options.getValidityData().initialValue
71
+ });
72
+ };
63
73
  if (revalidate) {
64
74
  if (options.state().valid !== false || !element) return;
65
75
  const nativeValidity = element.validity;
66
76
  if (!nativeValidity.valueMissing) {
67
- publishAllValid(value, element);
77
+ clearCustomValidity();
78
+ element = findRepresentativeInput();
79
+ const foreign = element?.validity.customError ? nativeErrors() : [];
80
+ publish({
81
+ ...DEFAULT_VALIDITY_STATE,
82
+ valid: foreign.length === 0,
83
+ customError: foreign.length > 0
84
+ }, foreign);
68
85
  return;
69
86
  }
70
87
  for (const key of VALIDITY_KEYS) if (key !== "valueMissing" && key !== "customError" && nativeValidity[key]) return;
71
88
  }
72
- const nextState = element ? getNativeState(element, options.isMarkedDirty()) : {
73
- ...DEFAULT_VALIDITY_STATE,
74
- valid: true
75
- };
89
+ clearCustomValidity();
90
+ const nextState = refreshState();
76
91
  const validatesOnChange = options.shouldValidateOnChange();
77
92
  if (element?.validationMessage && !validatesOnChange) {
78
- options.publish({
79
- value,
80
- state: nextState,
81
- error: element.validationMessage,
82
- errors: [element.validationMessage],
83
- initialValue: options.getValidityData().initialValue
84
- });
93
+ publish(nextState, nativeErrors());
85
94
  return;
86
95
  }
87
- const result = options.validate()?.(value, options.form.getFormValues()) ?? null;
96
+ const finish = (result, state = nextState) => {
97
+ const errors = result ? [].concat(result).filter(Boolean) : [];
98
+ if (errors.length > 0) {
99
+ state.valid = false;
100
+ state.customError = true;
101
+ if (element?.willValidate) {
102
+ const displaced = element.validity.customError ? element.validationMessage : "";
103
+ const message = errors.join("\n").replace(/\r\n?/g, "\n");
104
+ element.setCustomValidity(message);
105
+ customValidity = [
106
+ element,
107
+ message,
108
+ displaced
109
+ ];
110
+ }
111
+ }
112
+ publish(state, errors.length > 0 ? errors : nativeErrors());
113
+ };
114
+ const result = options.validate()?.(value, options.form.getFormValues());
88
115
  if (isPromise(result)) {
116
+ pendingInput = element;
117
+ if (nextState.valid === false) publish(nextState, nativeErrors());
118
+ else if (options.validationMode() === "onSubmit" || !options.getValidityData().state.customError) publish({
119
+ ...nextState,
120
+ valid: null
121
+ }, []);
89
122
  result.then((resolved) => {
90
- if (currentCommitId === validationCommitId) publishCustomResult(value, element, nextState, resolved, validatesOnChange);
123
+ if (currentCommitId === validationCommitId) {
124
+ pendingInput = null;
125
+ finish(resolved, refreshState());
126
+ }
127
+ }, () => {
128
+ if (currentCommitId === validationCommitId) pendingInput = null;
91
129
  });
92
130
  return;
93
131
  }
94
- publishCustomResult(value, element, nextState, result, validatesOnChange);
95
- }
96
- function publishCustomResult(value, element, nativeState, result, validatesOnChange) {
97
- const state = { ...nativeState };
98
- let errors = [];
99
- let error = "";
100
- if (result !== null) {
101
- errors = Array.isArray(result) ? result : [result];
102
- error = errors[0] ?? "";
103
- state.valid = false;
104
- state.customError = true;
105
- element?.setCustomValidity(errors.join("\n"));
106
- } else if (validatesOnChange) {
107
- clearCustomValidity(element);
108
- state.customError = false;
109
- if (element?.validationMessage) {
110
- error = element.validationMessage;
111
- errors = [error];
112
- } else if (!element || element.validity.valid) state.valid = true;
113
- }
114
- options.publish({
115
- value,
116
- state,
117
- error,
118
- errors,
119
- initialValue: options.getValidityData().initialValue
120
- });
132
+ finish(result);
121
133
  }
122
- function change(value) {
134
+ function change(value, cancelPending = false) {
123
135
  clearTimer();
136
+ validationCommitId += 1;
137
+ if (cancelPending) return;
124
138
  const validatesOnChange = options.shouldValidateOnChange();
125
139
  const delay = options.validationDebounceTime();
126
140
  if (validatesOnChange && value !== "" && delay > 0) {
127
- validationCommitId += 1;
141
+ pendingInput = findRepresentativeInput();
128
142
  timeout = setTimeout(() => {
129
143
  timeout = void 0;
130
144
  commit(value);
@@ -139,9 +153,12 @@ function createFieldValidation(options) {
139
153
  inputs = /* @__PURE__ */ new Map();
140
154
  registeredInputs.set(source, inputs);
141
155
  }
142
- inputs.set(element, { getControl });
156
+ const registration = { getControl };
157
+ inputs.set(element, registration);
143
158
  return () => {
144
159
  const currentInputs = registeredInputs.get(source);
160
+ if (currentInputs?.get(element) !== registration) return;
161
+ if (source === activeInputSource && element === pendingInput) change(void 0, true);
145
162
  currentInputs?.delete(element);
146
163
  if (currentInputs?.size === 0) registeredInputs.delete(source);
147
164
  };
@@ -152,9 +169,13 @@ function createFieldValidation(options) {
152
169
  return input ? registration?.getControl() ?? input : null;
153
170
  }
154
171
  function setActiveInputSource(source) {
172
+ if (activeInputSource && activeInputSource !== source) change(void 0, true);
155
173
  activeInputSource = source;
156
174
  }
157
- onCleanup(clearTimer);
175
+ onCleanup(() => {
176
+ change(void 0, true);
177
+ clearCustomValidity();
178
+ });
158
179
  return {
159
180
  commit,
160
181
  change,
@@ -193,7 +214,7 @@ function FieldRoot(props) {
193
214
  const fieldset = useFieldsetRootContext(true);
194
215
  const parentLabelable = useLabelableContext();
195
216
  const labelable = createLabelableContext({ parent: parentLabelable });
196
- const others = omit(props, "actionsRef", "as", "class", "dirty", "disabled", "invalid", "name", "style", "touched", "validate", "validationDebounceTime", "validationMode");
217
+ const others = omit(props, "actionsRef", "render", "class", "dirty", "disabled", "invalid", "name", "style", "touched", "validate", "validationDebounceTime", "validationMode");
197
218
  const [touchedState, setTouchedState] = createSignal(false);
198
219
  const [dirtyState, setDirtyState] = createSignal(false);
199
220
  const [filled, setFilled] = createSignal(false);
@@ -229,6 +250,7 @@ function FieldRoot(props) {
229
250
  focused: focused()
230
251
  }));
231
252
  const classValue = createMemo(() => resolveClass(props.class, state()));
253
+ const Render = useRender(props, () => state(), (props) => ssrElement("div", props, void 0, true));
232
254
  const styleValue = createMemo(() => resolveStyle(props.style, state()));
233
255
  const stateAttributes = createMemo(() => getStateAttributesProps(state(), fieldStateAttributesMapping));
234
256
  function publishValidity(data) {
@@ -262,6 +284,7 @@ function FieldRoot(props) {
262
284
  validate: () => props.validate,
263
285
  validationDebounceTime: () => props.validationDebounceTime ?? 0,
264
286
  state,
287
+ validationMode,
265
288
  isMarkedDirty: () => markedDirty,
266
289
  shouldValidateOnChange: () => validationMode() === "onChange" || validationMode() === "onSubmit" && form.submitAttempted()
267
290
  });
@@ -336,10 +359,7 @@ function FieldRoot(props) {
336
359
  return FieldRootContext({
337
360
  value: context,
338
361
  get children() {
339
- return Dynamic(mergeProps({
340
- get component() {
341
- return props.as ?? "div";
342
- },
362
+ return Render(mergeProps({
343
363
  get ["class"]() {
344
364
  return classValue();
345
365
  },
@@ -363,7 +383,7 @@ function FieldLabel(props) {
363
383
  const allProps = props;
364
384
  const generatedId = `base-ui-${createUniqueId()}`;
365
385
  const [element, setElement] = createSignal();
366
- const others = omit(allProps, "as", "class", "id", "nativeLabel", "onClick", "onMouseDown", "onPointerDown", "ref", "style");
386
+ const others = omit(allProps, "render", "class", "id", "nativeLabel", "onClick", "onMouseDown", "onPointerDown", "ref", "style");
367
387
  const id = createMemo(() => internalProps.id ?? generatedId);
368
388
  const nativeLabel = createMemo(() => internalProps.nativeLabel ?? true);
369
389
  const state = createMemo(() => ({
@@ -371,11 +391,12 @@ function FieldLabel(props) {
371
391
  disabled: field.disabled() || item.disabled()
372
392
  }));
373
393
  const classValue = createMemo(() => resolveClass(props.class, state()));
394
+ const Render = useRender(props, () => state(), (props) => ssrElement("label", props, void 0, true));
374
395
  const styleValue = createMemo(() => resolveStyle(props.style, state()));
375
396
  const stateAttributes = createMemo(() => getStateAttributesProps(state(), fieldStateAttributesMapping));
376
- const callExternalClick = composeEventHandlers(() => internalProps.onClick);
377
- const callExternalMouseDown = composeEventHandlers(() => internalProps.onMouseDown);
378
- const callExternalPointerDown = composeEventHandlers(() => internalProps.onPointerDown);
397
+ const callExternalClick = composeEventHandlers(liveEventHandler(() => internalProps.onClick));
398
+ const callExternalMouseDown = composeEventHandlers(liveEventHandler(() => internalProps.onMouseDown));
399
+ const callExternalPointerDown = composeEventHandlers(liveEventHandler(() => internalProps.onPointerDown));
379
400
  function isInteractiveTarget(target) {
380
401
  return target instanceof Element && Boolean(target.closest("button,input,select,textarea"));
381
402
  }
@@ -405,10 +426,7 @@ function FieldLabel(props) {
405
426
  onSettled(() => {
406
427
  element();
407
428
  });
408
- return Dynamic(mergeProps({
409
- get component() {
410
- return props.as ?? "label";
411
- },
429
+ return Render(mergeProps({
412
430
  ref: [((value) => setElement(value)), internalProps.ref],
413
431
  get id() {
414
432
  return id();
@@ -438,21 +456,19 @@ function FieldDescription(props) {
438
456
  const labelable = useLabelableContext();
439
457
  const source = Symbol("FieldDescription");
440
458
  const generatedId = `base-ui-${createUniqueId()}`;
441
- const others = omit(props, "as", "class", "id", "style");
459
+ const others = omit(props, "render", "class", "id", "style");
442
460
  const id = createMemo(() => props.id ?? generatedId);
443
461
  const state = createMemo(() => ({
444
462
  ...field.state(),
445
463
  disabled: field.disabled() || item.disabled()
446
464
  }));
447
465
  const classValue = createMemo(() => resolveClass(props.class, state()));
466
+ const Render = useRender(props, () => state(), (props) => ssrElement("p", props, void 0, true));
448
467
  const styleValue = createMemo(() => resolveStyle(props.style, state()));
449
468
  const stateAttributes = createMemo(() => getStateAttributesProps(state(), fieldStateAttributesMapping));
450
469
  createEffect(id, (currentId) => labelable.registerMessageId(source, currentId));
451
470
  onCleanup(() => labelable.registerMessageId(source, void 0));
452
- return Dynamic(mergeProps({
453
- get component() {
454
- return props.as ?? "p";
455
- },
471
+ return Render(mergeProps({
456
472
  get id() {
457
473
  return id();
458
474
  },
@@ -471,13 +487,14 @@ function FieldItem(props) {
471
487
  const field = useFieldRootContext();
472
488
  const parentLabelable = useLabelableContext();
473
489
  const labelable = createLabelableContext({ parent: parentLabelable });
474
- const others = omit(props, "as", "class", "disabled", "style");
490
+ const others = omit(props, "render", "class", "disabled", "style");
475
491
  const disabled = createMemo(() => field.disabled() || (props.disabled ?? false));
476
492
  const state = createMemo(() => ({
477
493
  ...field.state(),
478
494
  disabled: disabled()
479
495
  }));
480
496
  const classValue = createMemo(() => resolveClass(props.class, state()));
497
+ const Render = useRender(props, () => state(), (props) => ssrElement("div", props, void 0, true));
481
498
  const styleValue = createMemo(() => resolveStyle(props.style, state()));
482
499
  const stateAttributes = createMemo(() => getStateAttributesProps(state(), fieldStateAttributesMapping));
483
500
  const context = { disabled };
@@ -487,10 +504,7 @@ function FieldItem(props) {
487
504
  return FieldItemContext({
488
505
  value: context,
489
506
  get children() {
490
- return Dynamic(mergeProps({
491
- get component() {
492
- return props.as ?? "div";
493
- },
507
+ return Render(mergeProps({
494
508
  get ["class"]() {
495
509
  return classValue();
496
510
  },
@@ -530,7 +544,7 @@ function FieldError(props) {
530
544
  const allProps = props;
531
545
  const source = Symbol("FieldError");
532
546
  const generatedId = `base-ui-${createUniqueId()}`;
533
- const others = omit(allProps, "as", "children", "class", "id", "match", "ref", "style");
547
+ const others = omit(allProps, "render", "children", "class", "id", "match", "ref", "style");
534
548
  const id = createMemo(() => internalProps.id ?? generatedId);
535
549
  const formError = createMemo(() => {
536
550
  const name = field.name();
@@ -575,6 +589,7 @@ function FieldError(props) {
575
589
  ...field.state(),
576
590
  transitionStatus: transition.transitionStatus()
577
591
  }));
592
+ const Render = useRender(props, () => state(), (props) => ssrElement("div", props, void 0, true));
578
593
  const classValue = createMemo(() => transition.mounted() ? resolveClass(props.class, state()) : void 0);
579
594
  const styleValue = createMemo(() => transition.mounted() ? resolveStyle(props.style, state()) : void 0);
580
595
  const stateAttributes = createMemo(() => getStateAttributesProps(state(), stateAttributesMapping));
@@ -608,10 +623,7 @@ function FieldError(props) {
608
623
  return transition.mounted();
609
624
  },
610
625
  get children() {
611
- return Dynamic(mergeProps({
612
- get component() {
613
- return props.as ?? "div";
614
- },
626
+ return Render(mergeProps({
615
627
  ref: [internalProps.ref, ((element) => errorElement = element)],
616
628
  get id() {
617
629
  return id();
@@ -1,8 +1,9 @@
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 { n as resolveClass, t as resolveStyle } from "../resolveStyle-XCSFDHAL.js";
4
5
  import { n as useFieldsetRootContext, t as FieldsetRootContext } from "../FieldsetRootContext-DyNqCjK6.js";
5
- import { Dynamic, mergeProps } from "@solidjs/web";
6
+ import { mergeProps, ssrElement } from "@solidjs/web";
6
7
  import { createEffect, createMemo, createSignal, createUniqueId, omit } from "solid-js";
7
8
  //#region src/fieldset/root/FieldsetRoot.tsx
8
9
  /**
@@ -12,23 +13,22 @@ import { createEffect, createMemo, createSignal, createUniqueId, omit } from "so
12
13
  function FieldsetRoot(props) {
13
14
  const parentContext = useFieldsetRootContext(true);
14
15
  const [legendId, setLegendId] = createSignal();
15
- const others = omit(props, "as", "class", "disabled", "style");
16
+ const others = omit(props, "render", "class", "disabled", "style");
16
17
  const disabled = createMemo(() => parentContext?.disabled() || (props.disabled ?? false));
17
18
  const state = createMemo(() => ({ disabled: disabled() }));
18
19
  const classValue = createMemo(() => resolveClass(props.class, state()));
19
20
  const styleValue = createMemo(() => resolveStyle(props.style, state()));
20
21
  const stateAttributes = createMemo(() => getStateAttributesProps(state()));
22
+ const context = {
23
+ legendId,
24
+ setLegendId,
25
+ disabled
26
+ };
27
+ const Render = useRender(props, () => state(), (props) => ssrElement("fieldset", props, void 0, true));
21
28
  return FieldsetRootContext({
22
- value: {
23
- legendId,
24
- setLegendId,
25
- disabled
26
- },
29
+ value: context,
27
30
  get children() {
28
- return Dynamic(mergeProps({
29
- get component() {
30
- return props.as ?? "fieldset";
31
- },
31
+ return Render(mergeProps({
32
32
  get ["class"]() {
33
33
  return classValue();
34
34
  },
@@ -54,7 +54,7 @@ function FieldsetRoot(props) {
54
54
  function FieldsetLegend(props) {
55
55
  const context = useFieldsetRootContext();
56
56
  const generatedId = `base-ui-${createUniqueId()}`;
57
- const others = omit(props, "as", "class", "id", "style");
57
+ const others = omit(props, "render", "class", "id", "style");
58
58
  const id = createMemo(() => props.id ?? generatedId);
59
59
  const state = createMemo(() => ({ disabled: context.disabled() }));
60
60
  const classValue = createMemo(() => resolveClass(props.class, state()));
@@ -66,10 +66,7 @@ function FieldsetLegend(props) {
66
66
  context.setLegendId((registeredId) => registeredId === currentId ? void 0 : registeredId);
67
67
  };
68
68
  });
69
- return Dynamic(mergeProps({
70
- get component() {
71
- return props.as ?? "div";
72
- },
69
+ return useRender(props, () => state(), (props) => ssrElement("div", props, void 0, true))(mergeProps({
73
70
  get id() {
74
71
  return id();
75
72
  },
@@ -1,10 +1,11 @@
1
+ import { t as useRender } from "../useRender-CryVdCjs.js";
1
2
  import { w as none } from "../internals/reasons.js";
2
3
  import { n as resolveClass, t as resolveStyle } from "../resolveStyle-XCSFDHAL.js";
3
4
  import { createGenericEventDetails } from "../internals/createBaseUIEventDetails.js";
4
- import { composeEventHandlers } from "../internals/composeEventHandlers.js";
5
- import { t as FormContext } from "../FormContext-pvESt85v.js";
5
+ import { composeEventHandlers, liveEventHandler } from "../internals/composeEventHandlers.js";
6
+ import { t as FormContext } from "../FormContext-CYwo_ZnB.js";
6
7
  import { t as hasFormError } from "../form-types-P7-SCWyr.js";
7
- import { Dynamic, mergeProps } from "@solidjs/web";
8
+ import { mergeProps, ssrElement } from "@solidjs/web";
8
9
  import { createEffect, createMemo, createSignal, omit, untrack } from "solid-js";
9
10
  //#region src/form/Form.tsx
10
11
  var EMPTY_ERRORS = Object.freeze({});
@@ -14,14 +15,16 @@ function Form(props) {
14
15
  let formElement = null;
15
16
  let submitted = false;
16
17
  let submitAttempted = false;
18
+ let submitCount = 0;
17
19
  const fields = /* @__PURE__ */ new Map();
18
20
  const formProps = props;
19
21
  let previousExternalErrors = untrack(() => formProps.errors);
20
22
  const internalProps = props;
21
- const others = omit(props, "actionsRef", "as", "class", "errors", "onFormSubmit", "onSubmit", "ref", "style", "validationMode");
23
+ const others = omit(props, "actionsRef", "render", "class", "errors", "onFormSubmit", "onSubmit", "ref", "style", "validationMode");
22
24
  const [errors, setErrors] = createSignal(untrack(() => formProps.errors) ?? EMPTY_ERRORS);
23
25
  const validationMode = createMemo(() => formProps.validationMode ?? "onSubmit");
24
26
  const classValue = createMemo(() => resolveClass(props.class, EMPTY_STATE));
27
+ const Render = useRender(props, () => EMPTY_STATE, (props) => ssrElement("form", props, void 0, true));
25
28
  const styleValue = createMemo(() => resolveStyle(props.style, EMPTY_STATE));
26
29
  function registerField(field) {
27
30
  fields.set(field.token, field);
@@ -52,11 +55,13 @@ function Form(props) {
52
55
  return true;
53
56
  }
54
57
  function clearError(name) {
55
- const currentErrors = untrack(errors);
56
- if (!name || !Object.hasOwn(currentErrors, name)) return;
57
- const nextErrors = { ...currentErrors };
58
- delete nextErrors[name];
59
- setErrors(nextErrors);
58
+ if (!name) return;
59
+ setErrors((currentErrors) => {
60
+ if (!Object.hasOwn(currentErrors, name)) return currentErrors;
61
+ const nextErrors = { ...currentErrors };
62
+ delete nextErrors[name];
63
+ return nextErrors;
64
+ });
60
65
  }
61
66
  const actions = { validate(fieldName) {
62
67
  if (fieldName) {
@@ -68,9 +73,10 @@ function Form(props) {
68
73
  }
69
74
  for (const field of fields.values()) field.validate();
70
75
  } };
71
- const callExternalSubmit = composeEventHandlers(() => internalProps.onSubmit);
76
+ const callExternalSubmit = composeEventHandlers(liveEventHandler(() => internalProps.onSubmit));
72
77
  function handleSubmit(event) {
73
78
  submitAttempted = true;
79
+ submitCount += 1;
74
80
  for (const field of fields.values()) field.validate();
75
81
  if (focusFirstInvalid()) {
76
82
  event.preventDefault();
@@ -88,6 +94,7 @@ function Form(props) {
88
94
  errors,
89
95
  validationMode,
90
96
  submitAttempted: () => submitAttempted,
97
+ submitCount: () => submitCount,
91
98
  formElement: () => formElement,
92
99
  clearError,
93
100
  registerField,
@@ -109,10 +116,7 @@ function Form(props) {
109
116
  return FormContext({
110
117
  value: context,
111
118
  get children() {
112
- return Dynamic(mergeProps({
113
- get component() {
114
- return props.as ?? "form";
115
- },
119
+ return Render(mergeProps({
116
120
  ref: [((element) => {
117
121
  formElement = element.tagName === "FORM" ? element : null;
118
122
  }), internalProps.ref],
@@ -1,3 +1,4 @@
1
+ import { t as useRender } from "./useRender-CryVdCjs.js";
1
2
  import { Accordion as index_parts_exports } from "./accordion/index.js";
2
3
  import { AlertDialog as index_parts_exports$1 } from "./alert-dialog/index.js";
3
4
  import { n as useDirection } from "./DirectionContext-YORWLF08.js";
@@ -7,8 +8,8 @@ import { Button } from "./button/index.js";
7
8
  import { Checkbox as index_parts_exports$4 } from "./checkbox/index.js";
8
9
  import { CheckboxGroup } from "./checkbox-group/index.js";
9
10
  import { Collapsible as index_parts_exports$5 } from "./collapsible/index.js";
10
- import { Combobox as index_parts_exports$6 } from "./combobox/index.js";
11
- import { t as Separator } from "./Separator-vhhYxWGr.js";
11
+ import { Combobox as index_parts_exports$6, createComboboxItems } from "./combobox/index.js";
12
+ import { t as Separator } from "./Separator-DTvtnxzP.js";
12
13
  import { ContextMenu as index_parts_exports$7 } from "./context-menu/index.js";
13
14
  import { CSPProvider } from "./csp-provider/index.js";
14
15
  import { DirectionProvider } from "./direction-provider/index.js";
@@ -40,4 +41,5 @@ import { Toolbar as index_parts_exports$27 } from "./toolbar/index.js";
40
41
  import { Tooltip as index_parts_exports$28 } from "./tooltip/index.js";
41
42
  import { Toggle } from "./toggle/index.js";
42
43
  import { ToggleGroup } from "./toggle-group/index.js";
43
- export { index_parts_exports as Accordion, index_parts_exports$1 as AlertDialog, index_parts_exports$2 as Autocomplete, index_parts_exports$3 as Avatar, Button, CSPProvider, index_parts_exports$4 as Checkbox, CheckboxGroup, index_parts_exports$5 as Collapsible, index_parts_exports$6 as Combobox, index_parts_exports$7 as ContextMenu, index_parts_exports$8 as Dialog, DirectionProvider, index_parts_exports$9 as Drawer, index_parts_exports$10 as Field, index_parts_exports$11 as Fieldset, Form, Input, index_parts_exports$12 as Menu, Menubar, index_parts_exports$13 as Meter, index_parts_exports$14 as NavigationMenu, index_parts_exports$15 as NumberField, index_parts_exports$16 as OTPField, index_parts_exports$17 as Popover, index_parts_exports$18 as PreviewCard, index_parts_exports$19 as Progress, index_parts_exports$20 as Radio, RadioGroup, index_parts_exports$21 as ScrollArea, index_parts_exports$22 as Select, Separator, index_parts_exports$23 as Slider, index_parts_exports$24 as Switch, index_parts_exports$25 as Tabs, index_parts_exports$26 as Toast, Toggle, ToggleGroup, index_parts_exports$27 as Toolbar, index_parts_exports$28 as Tooltip, createToastManager, useDirection, useToastManager };
44
+ import "./use-render/index.js";
45
+ export { index_parts_exports as Accordion, index_parts_exports$1 as AlertDialog, index_parts_exports$2 as Autocomplete, index_parts_exports$3 as Avatar, Button, CSPProvider, index_parts_exports$4 as Checkbox, CheckboxGroup, index_parts_exports$5 as Collapsible, index_parts_exports$6 as Combobox, index_parts_exports$7 as ContextMenu, index_parts_exports$8 as Dialog, DirectionProvider, index_parts_exports$9 as Drawer, index_parts_exports$10 as Field, index_parts_exports$11 as Fieldset, Form, Input, index_parts_exports$12 as Menu, Menubar, index_parts_exports$13 as Meter, index_parts_exports$14 as NavigationMenu, index_parts_exports$15 as NumberField, index_parts_exports$16 as OTPField, index_parts_exports$17 as Popover, index_parts_exports$18 as PreviewCard, index_parts_exports$19 as Progress, index_parts_exports$20 as Radio, RadioGroup, index_parts_exports$21 as ScrollArea, index_parts_exports$22 as Select, Separator, index_parts_exports$23 as Slider, index_parts_exports$24 as Switch, index_parts_exports$25 as Tabs, index_parts_exports$26 as Toast, Toggle, ToggleGroup, index_parts_exports$27 as Toolbar, index_parts_exports$28 as Tooltip, createComboboxItems, createToastManager, useDirection, useRender, useToastManager };
@@ -1,4 +1,4 @@
1
- import { t as FieldControl } from "../FieldControl-Y_kI7ARp.js";
1
+ import { t as FieldControl } from "../FieldControl-CDMMyvuj.js";
2
2
  //#region src/input/Input.tsx
3
3
  /**
4
4
  * A native input element that automatically integrates with Field.
@@ -1,23 +1,29 @@
1
1
  //#region src/internals/composeEventHandlers.ts
2
2
  /**
3
- * Composes native event handlers in argument order. Calling
3
+ * Composes handlers in argument order, enhancing the native event before dispatch. Calling
4
4
  * `event.preventBaseUIHandler()` prevents the remaining handlers from running.
5
+ * Use `liveEventHandler` for replaceable callback props instead of snapshotting them.
5
6
  */
6
- function composeEventHandlers(...getHandlers) {
7
+ function composeEventHandlers(...handlers) {
7
8
  return function composedEventHandler(event) {
8
9
  const baseEvent = makeEventPreventable(event);
9
- for (const getHandler of getHandlers) {
10
- callHandler(getHandler(), this, baseEvent);
10
+ for (let handler of handlers) {
11
+ if (handler && typeof handler === "object" && "getHandler" in handler) {
12
+ const getHandler = handler.getHandler;
13
+ handler = getHandler();
14
+ }
15
+ callHandler(handler, this, baseEvent);
11
16
  if (baseEvent.baseUIHandlerPrevented) break;
12
17
  }
13
18
  };
14
19
  }
20
+ /** Resolves a replaceable handler at dispatch time; pass the adapter to `composeEventHandlers`. */
21
+ function liveEventHandler(getHandler) {
22
+ return { getHandler };
23
+ }
15
24
  function callHandler(handler, receiver, event) {
16
25
  if (typeof handler === "function") Reflect.apply(handler, receiver, [event]);
17
- else if (isBoundHandler(handler)) Reflect.apply(handler[0], receiver, [handler[1], event]);
18
- }
19
- function isBoundHandler(handler) {
20
- return Array.isArray(handler) && handler.length === 2 && typeof handler[0] === "function";
26
+ else if (Array.isArray(handler) && handler.length === 2 && typeof handler[0] === "function") Reflect.apply(handler[0], receiver, [handler[1], event]);
21
27
  }
22
28
  function makeEventPreventable(event) {
23
29
  const baseEvent = event;
@@ -57,4 +63,4 @@ function setHandlerPrevented(event) {
57
63
  });
58
64
  }
59
65
  //#endregion
60
- export { composeEventHandlers, makeEventPreventable };
66
+ export { composeEventHandlers, liveEventHandler, makeEventPreventable };
@@ -1,2 +1,2 @@
1
- import { n as useFieldRootContext, t as FieldRootContext } from "../../FieldRootContext-IC-LWzVp.js";
1
+ import { n as FieldRootContext, r as useFieldRootContext } from "../../FieldRootContext-Bfpna6gA.js";
2
2
  export { FieldRootContext, useFieldRootContext };
@@ -1,2 +1,2 @@
1
- import { n as useFormContext, t as FormContext } from "../../FormContext-pvESt85v.js";
1
+ import { n as useFormContext, t as FormContext } from "../../FormContext-CYwo_ZnB.js";
2
2
  export { FormContext, useFormContext };
@@ -1,4 +1,4 @@
1
- import { n as createLabelableContext, r as useLabelableContext, t as LabelableContext } from "../../LabelableContext-DZP3rgAY.js";
1
+ import { n as createLabelableContext, r as useLabelableContext, t as LabelableContext } from "../../LabelableContext-BTeF0IWb.js";
2
2
  import { untrack } from "solid-js";
3
3
  //#region src/internals/labelable-provider/LabelableProvider.tsx
4
4
  /** Provides the internal accessible label and description graph. */