@ark-ui/solid 3.0.0-2 → 3.0.0-4

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 (104) hide show
  1. package/dist/cjs/index.js +226 -176
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/esm/index.js +221 -179
  4. package/dist/esm/index.js.map +1 -1
  5. package/dist/source/components/accordion/use-accordion.js +2 -2
  6. package/dist/source/components/avatar/use-avatar.js +2 -2
  7. package/dist/source/components/carousel/use-carousel.js +2 -2
  8. package/dist/source/components/checkbox/checkbox-control.jsx +3 -6
  9. package/dist/source/components/checkbox/checkbox-hidden-input.jsx +8 -0
  10. package/dist/source/components/checkbox/checkbox-indicator.jsx +5 -3
  11. package/dist/source/components/checkbox/checkbox-root.jsx +3 -3
  12. package/dist/source/components/checkbox/checkbox.js +1 -0
  13. package/dist/source/components/checkbox/index.js +1 -0
  14. package/dist/source/components/checkbox/use-checkbox.js +2 -2
  15. package/dist/source/components/clipboard/use-clipboard.js +2 -2
  16. package/dist/source/components/collapsible/use-collapsible.js +2 -2
  17. package/dist/source/components/color-picker/color-picker-hidden-input.jsx +8 -0
  18. package/dist/source/components/color-picker/color-picker-root.jsx +0 -1
  19. package/dist/source/components/color-picker/color-picker.js +1 -0
  20. package/dist/source/components/color-picker/index.js +1 -0
  21. package/dist/source/components/color-picker/use-color-picker.js +2 -2
  22. package/dist/source/components/combobox/use-combobox.js +6 -4
  23. package/dist/source/components/date-picker/use-date-picker.js +2 -2
  24. package/dist/source/components/dialog/use-dialog.js +2 -2
  25. package/dist/source/components/editable/use-editable.js +2 -2
  26. package/dist/source/components/file-upload/file-upload-dropzone.jsx +1 -4
  27. package/dist/source/components/file-upload/file-upload-hidden-input.jsx +8 -0
  28. package/dist/source/components/file-upload/file-upload.js +1 -0
  29. package/dist/source/components/file-upload/index.js +1 -0
  30. package/dist/source/components/file-upload/use-file-upload.js +2 -2
  31. package/dist/source/components/hover-card/use-hover-card.js +2 -2
  32. package/dist/source/components/menu/use-menu.js +2 -2
  33. package/dist/source/components/number-input/use-number-input.js +2 -2
  34. package/dist/source/components/pagination/use-pagination.js +2 -2
  35. package/dist/source/components/pin-input/index.js +1 -0
  36. package/dist/source/components/pin-input/pin-input-hidden-input.jsx +8 -0
  37. package/dist/source/components/pin-input/pin-input-root.jsx +3 -4
  38. package/dist/source/components/pin-input/pin-input.js +1 -0
  39. package/dist/source/components/pin-input/use-pin-input.js +2 -2
  40. package/dist/source/components/popover/use-popover.js +2 -2
  41. package/dist/source/components/progress/use-progress.js +2 -2
  42. package/dist/source/components/radio-group/use-radio-group.js +2 -2
  43. package/dist/source/components/rating-group/index.js +1 -0
  44. package/dist/source/components/rating-group/rating-group-control.jsx +3 -6
  45. package/dist/source/components/rating-group/rating-group-hidden-input.jsx +8 -0
  46. package/dist/source/components/rating-group/rating-group.js +1 -0
  47. package/dist/source/components/rating-group/use-rating-group.js +2 -2
  48. package/dist/source/components/segment-group/use-segment-group.js +2 -2
  49. package/dist/source/components/select/index.js +1 -0
  50. package/dist/source/components/select/select-control.jsx +1 -13
  51. package/dist/source/components/select/select-hidden-select.jsx +17 -0
  52. package/dist/source/components/select/select.js +1 -0
  53. package/dist/source/components/select/use-select.js +8 -6
  54. package/dist/source/components/slider/use-slider.js +2 -2
  55. package/dist/source/components/splitter/use-splitter.js +2 -2
  56. package/dist/source/components/switch/index.js +1 -0
  57. package/dist/source/components/switch/switch-control.jsx +1 -4
  58. package/dist/source/components/switch/switch-hidden-input.jsx +8 -0
  59. package/dist/source/components/switch/switch.js +1 -0
  60. package/dist/source/components/switch/use-switch.js +2 -2
  61. package/dist/source/components/tabs/use-tabs.js +2 -2
  62. package/dist/source/components/tags-input/index.js +1 -0
  63. package/dist/source/components/tags-input/tags-input-hidden-input.jsx +8 -0
  64. package/dist/source/components/tags-input/tags-input-root.jsx +0 -1
  65. package/dist/source/components/tags-input/tags-input.js +1 -0
  66. package/dist/source/components/tags-input/use-tags-input.js +2 -2
  67. package/dist/source/components/toggle-group/use-toggle-group.js +2 -2
  68. package/dist/source/components/tooltip/use-tooltip.js +2 -2
  69. package/dist/source/components/tree-view/use-tree-view.js +2 -2
  70. package/dist/source/providers/environment/environment.jsx +14 -6
  71. package/dist/source/providers/environment/index.js +2 -3
  72. package/dist/source/providers/environment/use-environment-context.js +5 -0
  73. package/dist/source/providers/locale/locale-provider.jsx +2 -2
  74. package/dist/source/utils/run-if-fn.js +4 -0
  75. package/dist/types/components/checkbox/checkbox-hidden-input.d.ts +4 -0
  76. package/dist/types/components/checkbox/checkbox-indicator.d.ts +6 -1
  77. package/dist/types/components/checkbox/checkbox.d.ts +1 -0
  78. package/dist/types/components/checkbox/index.d.ts +2 -1
  79. package/dist/types/components/color-picker/color-picker-hidden-input.d.ts +4 -0
  80. package/dist/types/components/color-picker/color-picker.d.ts +1 -0
  81. package/dist/types/components/color-picker/index.d.ts +2 -1
  82. package/dist/types/components/file-upload/file-upload-hidden-input.d.ts +4 -0
  83. package/dist/types/components/file-upload/file-upload.d.ts +1 -0
  84. package/dist/types/components/file-upload/index.d.ts +1 -0
  85. package/dist/types/components/pin-input/index.d.ts +1 -0
  86. package/dist/types/components/pin-input/pin-input-hidden-input.d.ts +4 -0
  87. package/dist/types/components/pin-input/pin-input.d.ts +1 -0
  88. package/dist/types/components/rating-group/index.d.ts +1 -0
  89. package/dist/types/components/rating-group/rating-group-hidden-input.d.ts +4 -0
  90. package/dist/types/components/rating-group/rating-group.d.ts +1 -0
  91. package/dist/types/components/select/index.d.ts +1 -0
  92. package/dist/types/components/select/select-hidden-select.d.ts +4 -0
  93. package/dist/types/components/select/select.d.ts +1 -0
  94. package/dist/types/components/switch/index.d.ts +2 -1
  95. package/dist/types/components/switch/switch-hidden-input.d.ts +4 -0
  96. package/dist/types/components/switch/switch.d.ts +1 -0
  97. package/dist/types/components/tags-input/index.d.ts +1 -0
  98. package/dist/types/components/tags-input/tags-input-hidden-input.d.ts +4 -0
  99. package/dist/types/components/tags-input/tags-input.d.ts +1 -0
  100. package/dist/types/providers/environment/environment.d.ts +2 -1
  101. package/dist/types/providers/environment/index.d.ts +2 -4
  102. package/dist/types/providers/environment/use-environment-context.d.ts +18 -3
  103. package/dist/types/utils/run-if-fn.d.ts +2 -0
  104. package/package.json +6 -5
package/dist/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { createContext as createContext$1, useContext, splitProps, Show, createMemo, createSignal, createEffect, onCleanup, createUniqueId, mergeProps as mergeProps$2, children, Index, For } from 'solid-js';
2
- import { memo, createComponent, Dynamic, mergeProps, use, template, spread, insert, effect } from 'solid-js/web';
1
+ import { createContext as createContext$1, useContext, splitProps, Show, createSignal, createMemo, createEffect, onCleanup, createUniqueId, mergeProps as mergeProps$2, children, Index, For } from 'solid-js';
2
+ import { memo, createComponent, Dynamic, mergeProps, use, template, insert, effect, spread } from 'solid-js/web';
3
3
  import { mergeProps as mergeProps$1, useMachine, normalizeProps, useActor } from '@zag-js/solid';
4
4
  import * as collapsible$1 from '@zag-js/collapsible';
5
5
  import * as accordion$1 from '@zag-js/accordion';
@@ -35,6 +35,7 @@ import * as toast$1 from '@zag-js/toast';
35
35
  import * as toggleGroup$1 from '@zag-js/toggle-group';
36
36
  import * as tooltip$1 from '@zag-js/tooltip';
37
37
  import * as treeView$1 from '@zag-js/tree-view';
38
+ import { getDocument, getWindow } from '@zag-js/dom-query';
38
39
 
39
40
  function getErrorMessage(hook, provider) {
40
41
  return `${hook} returned \`undefined\`. Seems you forgot to wrap component within ${provider}`;
@@ -139,28 +140,42 @@ const CollapsibleContent = props => {
139
140
 
140
141
  const CollapsibleContext = props => props.children(useCollapsibleContext());
141
142
 
143
+ const isFunction = value => typeof value === 'function';
144
+ const runIfFn = (valueOrFn, ...args) => isFunction(valueOrFn) ? valueOrFn(...args) : valueOrFn;
145
+
142
146
  const [EnvironmentProvider, useEnvironmentContext] = createContext({
143
147
  hookName: 'useEnvironmentContext',
144
148
  providerName: '<EnvironmentProvider />',
145
- strict: false
149
+ strict: false,
150
+ defaultValue: () => ({
151
+ getRootNode: () => document,
152
+ getDocument: () => document,
153
+ getWindow: () => window
154
+ })
146
155
  });
147
156
 
148
- var _tmpl$$d = /*#__PURE__*/template(`<span hidden>`);
157
+ var _tmpl$$6 = /*#__PURE__*/template(`<span hidden>`);
149
158
  const Environment = props => {
150
- const spanRef = undefined;
151
-
152
- // @ts-expect-error TODO fix
153
- const currentEnv = createMemo(() => () => props.value ?? spanRef?.ownerDocument ?? document);
159
+ const [spanRef, setSpanRef] = createSignal();
160
+ const getRootNode = () => runIfFn(props.value) ?? spanRef()?.ownerDocument ?? document;
161
+ const environment = createMemo(() => ({
162
+ getRootNode,
163
+ getDocument: () => getDocument(getRootNode()),
164
+ getWindow: () => getWindow(getRootNode())
165
+ }));
154
166
  return createComponent(EnvironmentProvider, {
155
- get value() {
156
- return currentEnv();
157
- },
167
+ value: environment,
158
168
  get children() {
159
- return [memo(() => props.children), memo(() => memo(() => !!!props.value)() && (() => {
160
- var _el$ = _tmpl$$d();
161
- use(spanRef, _el$);
162
- return _el$;
163
- })())];
169
+ return [memo(() => props.children), createComponent(Show, {
170
+ get when() {
171
+ return !props.value;
172
+ },
173
+ get children() {
174
+ var _el$ = _tmpl$$6();
175
+ use(setSpanRef, _el$);
176
+ return _el$;
177
+ }
178
+ })];
164
179
  }
165
180
  });
166
181
  };
@@ -178,11 +193,11 @@ const [LocaleContextProvider, useLocaleContext] = createContext({
178
193
  const LocaleProvider = props => {
179
194
  const [localeProps, restProps] = splitProps(props, ['locale', 'defaultLocale']);
180
195
  const [locale, setLocale] = createSignal(localeProps.defaultLocale || localeProps.locale || 'en-US');
181
- const getRootNode = useEnvironmentContext();
196
+ const environment = useEnvironmentContext();
182
197
  createEffect(() => {
183
198
  const cleanup = trackLocale({
184
199
  locale: localeProps.locale,
185
- getRootNode,
200
+ getRootNode: environment().getRootNode,
186
201
  onLocaleChange(locale) {
187
202
  setLocale(locale.locale);
188
203
  }
@@ -203,12 +218,12 @@ const LocaleProvider = props => {
203
218
 
204
219
  const useCollapsible = props => {
205
220
  const locale = useLocaleContext();
206
- const getRootNode = useEnvironmentContext();
221
+ const environment = useEnvironmentContext();
207
222
  const [renderStrategyProps, collapsibleProps] = splitRenderStrategyProps(props);
208
223
  const context = mergeProps$1({
209
224
  id: createUniqueId(),
210
225
  dir: locale().dir,
211
- getRootNode,
226
+ getRootNode: environment().getRootNode,
212
227
  'open.controlled': props.open !== undefined
213
228
  }, collapsibleProps);
214
229
  const [state, send] = useMachine(collapsible$1.machine(context), {
@@ -323,11 +338,11 @@ const AccordionItemTrigger = props => {
323
338
 
324
339
  const useAccordion = props => {
325
340
  const locale = useLocaleContext();
326
- const getRootNode = useEnvironmentContext();
341
+ const environment = useEnvironmentContext();
327
342
  const context = mergeProps$2({
328
343
  id: createUniqueId(),
329
344
  dir: locale().dir,
330
- getRootNode
345
+ getRootNode: environment().getRootNode
331
346
  }, props);
332
347
  const [state, send] = useMachine(accordion$1.machine(context), {
333
348
  context
@@ -385,11 +400,11 @@ const AvatarImage = props => {
385
400
 
386
401
  const useAvatar = props => {
387
402
  const locale = useLocaleContext();
388
- const getRootNode = useEnvironmentContext();
403
+ const environment = useEnvironmentContext();
389
404
  const context = mergeProps$1({
390
405
  id: createUniqueId(),
391
406
  dir: locale().dir,
392
- getRootNode
407
+ getRootNode: environment().getRootNode
393
408
  }, props);
394
409
  const [state, send] = useMachine(avatar$1.machine(context), {
395
410
  context
@@ -469,11 +484,11 @@ const CarouselPrevTrigger = props => {
469
484
 
470
485
  const useCarousel = props => {
471
486
  const locale = useLocaleContext();
472
- const getRootNode = useEnvironmentContext();
487
+ const environment = useEnvironmentContext();
473
488
  const context = mergeProps$1({
474
489
  id: createUniqueId(),
475
490
  dir: locale().dir,
476
- getRootNode
491
+ getRootNode: environment().getRootNode
477
492
  }, props);
478
493
  const [state, send] = useMachine(carousel$1.machine(context), {
479
494
  context
@@ -520,21 +535,27 @@ const [CheckboxProvider, useCheckboxContext] = createContext({
520
535
 
521
536
  const CheckboxContext = props => props.children(useCheckboxContext());
522
537
 
523
- var _tmpl$$c = /*#__PURE__*/template(`<input>`);
524
538
  const CheckboxControl = props => {
525
- const api = useCheckboxContext();
526
- const mergedProps = mergeProps$1(() => api().controlProps, props);
527
- return [createComponent(ark.div, mergedProps), (() => {
528
- var _el$ = _tmpl$$c();
529
- spread(_el$, mergeProps(() => api().hiddenInputProps), false, false);
530
- return _el$;
531
- })()];
539
+ const checkbox = useCheckboxContext();
540
+ const mergedProps = mergeProps$1(() => checkbox().controlProps, props);
541
+ return createComponent(ark.div, mergedProps);
542
+ };
543
+
544
+ const CheckboxHiddenInput = props => {
545
+ const checkbox = useCheckboxContext();
546
+ const mergedProps = mergeProps$1(() => checkbox().hiddenInputProps, props);
547
+ return createComponent(ark.input, mergedProps);
532
548
  };
533
549
 
534
550
  const CheckboxIndicator = props => {
535
- const api = useCheckboxContext();
536
- const mergedProps = mergeProps$1(() => api().indicatorProps, props);
537
- return createComponent(ark.div, mergedProps);
551
+ const [indicatorProps, localProps] = createSplitProps()(props, ['indeterminate']);
552
+ const checkbox = useCheckboxContext();
553
+ const mergedProps = mergeProps$1(() => checkbox().indicatorProps, localProps);
554
+ return createComponent(ark.div, mergeProps(mergedProps, {
555
+ get hidden() {
556
+ return !(indicatorProps.indeterminate ? checkbox().indeterminate : checkbox().checked);
557
+ }
558
+ }));
538
559
  };
539
560
 
540
561
  const CheckboxLabel = props => {
@@ -545,11 +566,11 @@ const CheckboxLabel = props => {
545
566
 
546
567
  const useCheckbox = props => {
547
568
  const locale = useLocaleContext();
548
- const getRootNode = useEnvironmentContext();
569
+ const environment = useEnvironmentContext();
549
570
  const context = mergeProps$1({
550
571
  id: createUniqueId(),
551
572
  dir: locale().dir,
552
- getRootNode
573
+ getRootNode: environment().getRootNode
553
574
  }, props);
554
575
  const [state, send] = useMachine(checkbox$1.machine(context), {
555
576
  context
@@ -559,10 +580,10 @@ const useCheckbox = props => {
559
580
 
560
581
  const CheckboxRoot = props => {
561
582
  const [useCheckboxProps, labelprops] = createSplitProps()(props, ['checked', 'disabled', 'form', 'id', 'ids', 'invalid', 'name', 'onCheckedChange', 'readOnly', 'required', 'value']);
562
- const api = useCheckbox(useCheckboxProps);
563
- const mergedProps = mergeProps$1(() => api().rootProps, labelprops);
583
+ const checkbox = useCheckbox(useCheckboxProps);
584
+ const mergedProps = mergeProps$1(() => checkbox().rootProps, labelprops);
564
585
  return createComponent(CheckboxProvider, {
565
- value: api,
586
+ value: checkbox,
566
587
  get children() {
567
588
  return createComponent(ark.label, mergedProps);
568
589
  }
@@ -573,6 +594,7 @@ var checkbox = /*#__PURE__*/Object.freeze({
573
594
  __proto__: null,
574
595
  Context: CheckboxContext,
575
596
  Control: CheckboxControl,
597
+ HiddenInput: CheckboxHiddenInput,
576
598
  Indicator: CheckboxIndicator,
577
599
  Label: CheckboxLabel,
578
600
  Root: CheckboxRoot
@@ -629,10 +651,10 @@ const ClipboardLabel = props => {
629
651
  };
630
652
 
631
653
  const useClipboard = props => {
632
- const getRootNode = useEnvironmentContext();
654
+ const environment = useEnvironmentContext();
633
655
  const context = mergeProps$1({
634
656
  id: createUniqueId(),
635
- getRootNode
657
+ getRootNode: environment().getRootNode
636
658
  }, props);
637
659
  const [state, send] = useMachine(clipboard$1.machine(context), {
638
660
  context
@@ -843,6 +865,12 @@ const ColorPickerFormatTrigger = props => {
843
865
  return createComponent(ark.button, mergedProps);
844
866
  };
845
867
 
868
+ const ColorPickerHiddenInput = props => {
869
+ const colorPicker = useColorPickerContext();
870
+ const mergedProps = mergeProps$1(() => colorPicker().hiddenInputProps, props);
871
+ return createComponent(ark.input, mergedProps);
872
+ };
873
+
846
874
  const ColorPickerLabel = props => {
847
875
  const api = useColorPickerContext();
848
876
  const mergedProps = mergeProps$1(() => api().labelProps, props);
@@ -866,11 +894,11 @@ const ColorPickerPositioner = props => {
866
894
  const useColorPicker = props => {
867
895
  const [local, rest] = splitProps(props, ['value']);
868
896
  const locale = useLocaleContext();
869
- const getRootNode = useEnvironmentContext();
897
+ const environment = useEnvironmentContext();
870
898
  const context = mergeProps$1(() => ({
871
899
  id: createUniqueId(),
872
900
  dir: locale().dir,
873
- getRootNode,
901
+ getRootNode: environment().getRootNode,
874
902
  'open.controlled': props.open !== undefined,
875
903
  value: local.value ? colorPicker$1.parse(local.value) : undefined
876
904
  }), rest);
@@ -880,7 +908,6 @@ const useColorPicker = props => {
880
908
  return createMemo(() => colorPicker$1.connect(state, send, normalizeProps));
881
909
  };
882
910
 
883
- var _tmpl$$b = /*#__PURE__*/template(`<input>`);
884
911
  const ColorPickerRoot = props => {
885
912
  const [presenceProps, colorPickerProps] = splitPresenceProps(props);
886
913
  const [useColorPickerProps, localProps] = createSplitProps()(colorPickerProps, ['closeOnSelect', 'disabled', 'format', 'id', 'ids', 'initialFocusEl', 'name', 'name', 'onFocusOutside', 'onFormatChange', 'onInteractOutside', 'onOpenChange', 'onPointerDownOutside', 'onValueChange', 'onValueChangeEnd', 'open', 'positioning', 'readOnly', 'value']);
@@ -892,16 +919,12 @@ const ColorPickerRoot = props => {
892
919
  return createComponent(ColorPickerProvider, {
893
920
  value: api,
894
921
  get children() {
895
- return [createComponent(PresenceProvider, {
922
+ return createComponent(PresenceProvider, {
896
923
  value: apiPresence,
897
924
  get children() {
898
925
  return createComponent(ark.div, mergedProps);
899
926
  }
900
- }), (() => {
901
- var _el$ = _tmpl$$b();
902
- spread(_el$, mergeProps(() => api().hiddenInputProps), false, false);
903
- return _el$;
904
- })()];
927
+ });
905
928
  }
906
929
  });
907
930
  };
@@ -1000,6 +1023,7 @@ var colorPicker = /*#__PURE__*/Object.freeze({
1000
1023
  EyeDropperTrigger: ColorPickerEyeDropperTrigger,
1001
1024
  FormatSelect: ColorPickerFormatSelect,
1002
1025
  FormatTrigger: ColorPickerFormatTrigger,
1026
+ HiddenInput: ColorPickerHiddenInput,
1003
1027
  Label: ColorPickerLabel,
1004
1028
  Positioner: ColorPickerPositioner,
1005
1029
  Root: ColorPickerRoot,
@@ -1148,15 +1172,17 @@ const ComboboxPositioner = props => {
1148
1172
 
1149
1173
  const useCombobox = props => {
1150
1174
  const [collectionOptions, rest] = createSplitProps()(props, ['isItemDisabled', 'itemToValue', 'itemToString', 'items']);
1151
- const collection = () => combobox$1.collection(collectionOptions);
1175
+ const collection = createMemo(() => combobox$1.collection(collectionOptions));
1152
1176
  const locale = useLocaleContext();
1153
- const getRootNode = useEnvironmentContext();
1177
+ const environment = useEnvironmentContext();
1154
1178
  const context = mergeProps$1({
1155
1179
  id: createUniqueId(),
1156
1180
  dir: locale().dir,
1157
- getRootNode,
1181
+ getRootNode: environment().getRootNode,
1158
1182
  'open.controlled': props.open !== undefined,
1159
- collection: collection()
1183
+ get collection() {
1184
+ return collection();
1185
+ }
1160
1186
  }, rest);
1161
1187
  const [state, send] = useMachine(combobox$1.machine(context), {
1162
1188
  context
@@ -1256,14 +1282,14 @@ const DatePickerLabel = props => {
1256
1282
  return createComponent(ark.label, mergedProps);
1257
1283
  };
1258
1284
 
1259
- var _tmpl$$a = /*#__PURE__*/template(`<option>`);
1285
+ var _tmpl$$5 = /*#__PURE__*/template(`<option>`);
1260
1286
  const DatePickerMonthSelect = props => {
1261
1287
  const api = useDatePickerContext();
1262
1288
  const mergedProps = mergeProps$1(() => api().monthSelectProps, props);
1263
1289
  return createComponent(ark.select, mergeProps(mergedProps, {
1264
1290
  get children() {
1265
1291
  return api().getMonths().map(month => (() => {
1266
- var _el$ = _tmpl$$a();
1292
+ var _el$ = _tmpl$$5();
1267
1293
  insert(_el$, () => month.label);
1268
1294
  effect(() => _el$.value = month.value);
1269
1295
  return _el$;
@@ -1324,12 +1350,12 @@ const DatePickerRangeText = props => {
1324
1350
 
1325
1351
  const useDatePicker = props => {
1326
1352
  const locale = useLocaleContext();
1327
- const getRootNode = useEnvironmentContext();
1353
+ const environment = useEnvironmentContext();
1328
1354
  const [localProps, restProps] = splitProps(props, ['value', 'focusedValue', 'min', 'max']);
1329
1355
  const context = mergeProps$1(() => ({
1330
1356
  id: createUniqueId(),
1331
1357
  dir: locale().dir,
1332
- getRootNode,
1358
+ getRootNode: environment().getRootNode,
1333
1359
  'open.controlled': props.open !== undefined,
1334
1360
  focusedValue: localProps.focusedValue ? datePicker$1.parse(localProps.focusedValue) : undefined,
1335
1361
  value: localProps.value ? datePicker$1.parse(localProps.value) : undefined,
@@ -1490,7 +1516,7 @@ const DatePickerViewTrigger = props => {
1490
1516
  return createComponent(ark.button, mergedProps);
1491
1517
  };
1492
1518
 
1493
- var _tmpl$$9 = /*#__PURE__*/template(`<option>`);
1519
+ var _tmpl$$4 = /*#__PURE__*/template(`<option>`);
1494
1520
  const DatePickerYearSelect = props => {
1495
1521
  const api = useDatePickerContext();
1496
1522
  const mergedProps = mergeProps$1(() => api().yearSelectProps, props);
@@ -1500,7 +1526,7 @@ const DatePickerYearSelect = props => {
1500
1526
  from: 1_000,
1501
1527
  to: 4_000
1502
1528
  }).map(year => (() => {
1503
- var _el$ = _tmpl$$9();
1529
+ var _el$ = _tmpl$$4();
1504
1530
  _el$.value = year;
1505
1531
  insert(_el$, year);
1506
1532
  return _el$;
@@ -1611,11 +1637,11 @@ const DialogPositioner = props => {
1611
1637
 
1612
1638
  const useDialog = props => {
1613
1639
  const locale = useLocaleContext();
1614
- const getRootNode = useEnvironmentContext();
1640
+ const environment = useEnvironmentContext();
1615
1641
  const context = mergeProps$1({
1616
1642
  id: createUniqueId(),
1617
1643
  dir: locale().dir,
1618
- getRootNode,
1644
+ getRootNode: environment().getRootNode,
1619
1645
  'open.controlled': props.open !== undefined
1620
1646
  }, props);
1621
1647
  const [state, send] = useMachine(dialog$1.machine(context), {
@@ -1729,11 +1755,11 @@ const EditablePreview = props => {
1729
1755
 
1730
1756
  const useEditable = props => {
1731
1757
  const locale = useLocaleContext();
1732
- const getRootNode = useEnvironmentContext();
1758
+ const environment = useEnvironmentContext();
1733
1759
  const context = mergeProps$1({
1734
1760
  id: createUniqueId(),
1735
1761
  dir: locale().dir,
1736
- getRootNode
1762
+ getRootNode: environment().getRootNode
1737
1763
  }, props);
1738
1764
  const [state, send] = useMachine(editable$1.machine(context), {
1739
1765
  context
@@ -1780,15 +1806,10 @@ const [FileUploadProvider, useFileUploadContext] = createContext({
1780
1806
 
1781
1807
  const FileUploadContext = props => props.children(useFileUploadContext());
1782
1808
 
1783
- var _tmpl$$8 = /*#__PURE__*/template(`<input>`);
1784
1809
  const FileUploadDropzone = props => {
1785
1810
  const fileUpload = useFileUploadContext();
1786
1811
  const mergedProps = mergeProps$1(() => fileUpload().dropzoneProps, props);
1787
- return [createComponent(ark.div, mergedProps), (() => {
1788
- var _el$ = _tmpl$$8();
1789
- spread(_el$, mergeProps(() => fileUpload().hiddenInputProps), false, false);
1790
- return _el$;
1791
- })()];
1812
+ return createComponent(ark.div, mergedProps);
1792
1813
  };
1793
1814
 
1794
1815
  const [FileUploadItemPropsProvider, useFileUploadItemPropsContext] = createContext({
@@ -1871,11 +1892,11 @@ const FileUploadLabel = props => {
1871
1892
 
1872
1893
  const useFileUpload = props => {
1873
1894
  const locale = useLocaleContext();
1874
- const getRootNode = useEnvironmentContext();
1895
+ const environment = useEnvironmentContext();
1875
1896
  const context = mergeProps$1({
1876
1897
  id: createUniqueId(),
1877
1898
  dir: locale().dir,
1878
- getRootNode
1899
+ getRootNode: environment().getRootNode
1879
1900
  }, props);
1880
1901
  const [state, send] = useMachine(fileUpload$1.machine(context), {
1881
1902
  context
@@ -1901,10 +1922,17 @@ const FileUploadTrigger = props => {
1901
1922
  return createComponent(ark.button, mergedProps);
1902
1923
  };
1903
1924
 
1925
+ const FileUploadHiddenInput = props => {
1926
+ const fileUpload = useFileUploadContext();
1927
+ const mergedProps = mergeProps$1(() => fileUpload().hiddenInputProps, props);
1928
+ return createComponent(ark.input, mergedProps);
1929
+ };
1930
+
1904
1931
  var fileUpload = /*#__PURE__*/Object.freeze({
1905
1932
  __proto__: null,
1906
1933
  Context: FileUploadContext,
1907
1934
  Dropzone: FileUploadDropzone,
1935
+ HiddenInput: FileUploadHiddenInput,
1908
1936
  Item: FileUploadItem,
1909
1937
  ItemDeleteTrigger: FileUploadItemDeleteTrigger,
1910
1938
  ItemGroup: FileUploadItemGroup,
@@ -1986,11 +2014,11 @@ const HoverCardPositioner = props => {
1986
2014
 
1987
2015
  const useHoverCard = props => {
1988
2016
  const locale = useLocaleContext();
1989
- const getRootNode = useEnvironmentContext();
2017
+ const environment = useEnvironmentContext();
1990
2018
  const context = mergeProps$1({
1991
2019
  id: createUniqueId(),
1992
2020
  dir: locale().dir,
1993
- getRootNode,
2021
+ getRootNode: environment().getRootNode,
1994
2022
  'open.controlled': props.open !== undefined
1995
2023
  }, props);
1996
2024
  const [state, send] = useMachine(hoverCard$1.machine(context), {
@@ -2228,11 +2256,11 @@ const MenuRadioItemGroup = props => {
2228
2256
 
2229
2257
  const useMenu = props => {
2230
2258
  const locale = useLocaleContext();
2231
- const getRootNode = useEnvironmentContext();
2259
+ const environment = useEnvironmentContext();
2232
2260
  const context = mergeProps$1({
2233
2261
  id: createUniqueId(),
2234
2262
  dir: locale().dir,
2235
- getRootNode,
2263
+ getRootNode: environment().getRootNode,
2236
2264
  'open.controlled': props.open !== undefined
2237
2265
  }, props);
2238
2266
  const [state, send, machine] = useMachine(menu$1.machine(context), {
@@ -2383,11 +2411,11 @@ const NumberInputLabel = props => {
2383
2411
 
2384
2412
  const useNumberInput = props => {
2385
2413
  const locale = useLocaleContext();
2386
- const getRootNode = useEnvironmentContext();
2414
+ const environment = useEnvironmentContext();
2387
2415
  const context = mergeProps$1({
2388
2416
  id: createUniqueId(),
2389
2417
  dir: locale().dir,
2390
- getRootNode
2418
+ getRootNode: environment().getRootNode
2391
2419
  }, props);
2392
2420
  const [state, send] = useMachine(numberInput$1.machine(context), {
2393
2421
  context
@@ -2460,11 +2488,11 @@ const PaginationPrevTrigger = props => {
2460
2488
 
2461
2489
  const usePagination = props => {
2462
2490
  const locale = useLocaleContext();
2463
- const getRootNode = useEnvironmentContext();
2491
+ const environment = useEnvironmentContext();
2464
2492
  const context = mergeProps$1({
2465
2493
  id: createUniqueId(),
2466
2494
  dir: locale().dir,
2467
- getRootNode
2495
+ getRootNode: environment().getRootNode
2468
2496
  }, props);
2469
2497
  const [state, send] = useMachine(pagination$1.machine(context), {
2470
2498
  context
@@ -2522,11 +2550,11 @@ const PinInputLabel = props => {
2522
2550
 
2523
2551
  const usePinInput = props => {
2524
2552
  const locale = useLocaleContext();
2525
- const getRootNode = useEnvironmentContext();
2553
+ const environment = useEnvironmentContext();
2526
2554
  const context = mergeProps$1({
2527
2555
  id: createUniqueId(),
2528
2556
  dir: locale().dir,
2529
- getRootNode
2557
+ getRootNode: environment().getRootNode
2530
2558
  }, props);
2531
2559
  const [state, send] = useMachine(pinInput$1.machine(context), {
2532
2560
  context
@@ -2534,27 +2562,29 @@ const usePinInput = props => {
2534
2562
  return createMemo(() => pinInput$1.connect(state, send, normalizeProps));
2535
2563
  };
2536
2564
 
2537
- var _tmpl$$7 = /*#__PURE__*/template(`<input>`);
2538
2565
  const PinInputRoot = props => {
2539
2566
  const [usePinInputProps, localProps] = createSplitProps()(props, ['autoFocus', 'blurOnComplete', 'disabled', 'form', 'id', 'ids', 'invalid', 'mask', 'name', 'onValueChange', 'onValueComplete', 'onValueInvalid', 'otp', 'pattern', 'placeholder', 'selectOnFocus', 'translations', 'type', 'value']);
2540
- const api = usePinInput(usePinInputProps);
2541
- const mergedProps = mergeProps$1(() => api().rootProps, localProps);
2567
+ const pinInput = usePinInput(usePinInputProps);
2568
+ const mergedProps = mergeProps$1(() => pinInput().rootProps, localProps);
2542
2569
  return createComponent(PinInputProvider, {
2543
- value: api,
2570
+ value: pinInput,
2544
2571
  get children() {
2545
- return [createComponent(ark.div, mergedProps), (() => {
2546
- var _el$ = _tmpl$$7();
2547
- spread(_el$, mergeProps(() => api().hiddenInputProps), false, false);
2548
- return _el$;
2549
- })()];
2572
+ return createComponent(ark.div, mergedProps);
2550
2573
  }
2551
2574
  });
2552
2575
  };
2553
2576
 
2577
+ const PinInputHiddenInput = props => {
2578
+ const pinInput = usePinInputContext();
2579
+ const mergedProps = mergeProps$1(() => pinInput().hiddenInputProps, props);
2580
+ return createComponent(ark.input, mergedProps);
2581
+ };
2582
+
2554
2583
  var pinInput = /*#__PURE__*/Object.freeze({
2555
2584
  __proto__: null,
2556
2585
  Context: PinInputContext,
2557
2586
  Control: PinInputControl,
2587
+ HiddenInput: PinInputHiddenInput,
2558
2588
  Input: PinInputInput,
2559
2589
  Label: PinInputLabel,
2560
2590
  Root: PinInputRoot
@@ -2633,11 +2663,11 @@ const PopoverPositioner = props => {
2633
2663
 
2634
2664
  const usePopover = props => {
2635
2665
  const locale = useLocaleContext();
2636
- const getRootNode = useEnvironmentContext();
2666
+ const environment = useEnvironmentContext();
2637
2667
  const context = mergeProps$1({
2638
2668
  id: createUniqueId(),
2639
2669
  dir: locale().dir,
2640
- getRootNode,
2670
+ getRootNode: environment().getRootNode,
2641
2671
  'open.controlled': props.open !== undefined
2642
2672
  }, props);
2643
2673
  const [state, send] = useMachine(popover$1.machine(context), {
@@ -2736,11 +2766,11 @@ const ProgressRange = props => {
2736
2766
 
2737
2767
  const useProgress = props => {
2738
2768
  const locale = useLocaleContext();
2739
- const getRootNode = useEnvironmentContext();
2769
+ const environment = useEnvironmentContext();
2740
2770
  const context = mergeProps$1({
2741
2771
  id: createUniqueId(),
2742
2772
  dir: locale().dir,
2743
- getRootNode
2773
+ getRootNode: environment().getRootNode
2744
2774
  }, props);
2745
2775
  const [state, send] = useMachine(progress$1.machine(context), {
2746
2776
  context
@@ -2840,13 +2870,13 @@ const RadioGroupItem = props => {
2840
2870
 
2841
2871
  const RadioGroupItemContext = props => props.children(useRadioGroupItemContext());
2842
2872
 
2843
- var _tmpl$$6 = /*#__PURE__*/template(`<input>`);
2873
+ var _tmpl$$3 = /*#__PURE__*/template(`<input>`);
2844
2874
  const RadioGroupItemControl = props => {
2845
2875
  const radioGroup = useRadioGroupContext();
2846
2876
  const itemProps = useRadioGroupItemPropsContext();
2847
2877
  const mergedProps = mergeProps$1(() => radioGroup().getItemControlProps(itemProps), props);
2848
2878
  return [createComponent(ark.div, mergedProps), (() => {
2849
- var _el$ = _tmpl$$6();
2879
+ var _el$ = _tmpl$$3();
2850
2880
  spread(_el$, mergeProps(() => radioGroup().getItemHiddenInputProps(itemProps)), false, false);
2851
2881
  return _el$;
2852
2882
  })()];
@@ -2867,11 +2897,11 @@ const RadioGroupLabel = props => {
2867
2897
 
2868
2898
  const useRadioGroup = props => {
2869
2899
  const locale = useLocaleContext();
2870
- const getRootNode = useEnvironmentContext();
2900
+ const environment = useEnvironmentContext();
2871
2901
  const context = mergeProps$1({
2872
2902
  id: createUniqueId(),
2873
2903
  dir: locale().dir,
2874
- getRootNode
2904
+ getRootNode: environment().getRootNode
2875
2905
  }, props);
2876
2906
  const [state, send] = useMachine(radio.machine(context), {
2877
2907
  context
@@ -2910,15 +2940,10 @@ const [RatingGroupProvider, useRatingGroupContext] = createContext({
2910
2940
 
2911
2941
  const RatingGroupContext = props => props.children(useRatingGroupContext());
2912
2942
 
2913
- var _tmpl$$5 = /*#__PURE__*/template(`<input>`);
2914
2943
  const RatingGroupControl = props => {
2915
- const api = useRatingGroupContext();
2916
- const mergedProps = mergeProps$1(() => api().controlProps, props);
2917
- return [createComponent(ark.div, mergedProps), (() => {
2918
- var _el$ = _tmpl$$5();
2919
- spread(_el$, mergeProps(() => api().hiddenInputProps), false, false);
2920
- return _el$;
2921
- })()];
2944
+ const ratingGroup = useRatingGroupContext();
2945
+ const mergedProps = mergeProps$1(() => ratingGroup().controlProps, props);
2946
+ return createComponent(ark.div, mergedProps);
2922
2947
  };
2923
2948
 
2924
2949
  const [RatingGroupItemProvider, useRatingGroupItemContext] = createContext({
@@ -2949,11 +2974,11 @@ const RatingGroupLabel = props => {
2949
2974
 
2950
2975
  const useRatingGroup = props => {
2951
2976
  const locale = useLocaleContext();
2952
- const getRootNode = useEnvironmentContext();
2977
+ const environment = useEnvironmentContext();
2953
2978
  const context = mergeProps$1({
2954
2979
  id: createUniqueId(),
2955
2980
  dir: locale().dir,
2956
- getRootNode
2981
+ getRootNode: environment().getRootNode
2957
2982
  }, props);
2958
2983
  const [state, send] = useMachine(rating.machine(context), {
2959
2984
  context
@@ -2973,10 +2998,17 @@ const RatingGroupRoot = props => {
2973
2998
  });
2974
2999
  };
2975
3000
 
3001
+ const RatingGroupHiddenInput = props => {
3002
+ const ratingGroup = useRatingGroupContext();
3003
+ const mergedProps = mergeProps$1(() => ratingGroup().hiddenInputProps, props);
3004
+ return createComponent(ark.input, mergedProps);
3005
+ };
3006
+
2976
3007
  var ratingGroup = /*#__PURE__*/Object.freeze({
2977
3008
  __proto__: null,
2978
3009
  Context: RatingGroupContext,
2979
3010
  Control: RatingGroupControl,
3011
+ HiddenInput: RatingGroupHiddenInput,
2980
3012
  Item: RatingGroupItem,
2981
3013
  ItemContext: RatingGroupItemContext,
2982
3014
  Label: RatingGroupLabel,
@@ -3026,13 +3058,13 @@ const SegmentGroupItem = props => {
3026
3058
 
3027
3059
  const SegmentGroupItemContext = props => props.children(useSegmentGroupItemContext());
3028
3060
 
3029
- var _tmpl$$4 = /*#__PURE__*/template(`<input>`);
3061
+ var _tmpl$$2 = /*#__PURE__*/template(`<input>`);
3030
3062
  const SegmentGroupItemControl = props => {
3031
3063
  const segmentGroup = useSegmentGroupContext();
3032
3064
  const itemProps = useSegmentGroupItemPropsContext();
3033
3065
  const mergedProps = mergeProps$1(() => segmentGroup().getItemControlProps(itemProps), segmentGroupAnatomy.build().itemControl.attrs, props);
3034
3066
  return [createComponent(ark.div, mergedProps), (() => {
3035
- var _el$ = _tmpl$$4();
3067
+ var _el$ = _tmpl$$2();
3036
3068
  spread(_el$, mergeProps(() => segmentGroup().getItemHiddenInputProps(itemProps)), false, false);
3037
3069
  return _el$;
3038
3070
  })()];
@@ -3053,11 +3085,11 @@ const SegmentGroupLabel = props => {
3053
3085
 
3054
3086
  const useSegmentGroup = props => {
3055
3087
  const locale = useLocaleContext();
3056
- const getRootNode = useEnvironmentContext();
3088
+ const environment = useEnvironmentContext();
3057
3089
  const context = mergeProps$1({
3058
3090
  id: createUniqueId(),
3059
3091
  dir: locale().dir,
3060
- getRootNode
3092
+ getRootNode: environment().getRootNode
3061
3093
  }, props);
3062
3094
  const [state, send] = useMachine(radio.machine(context), {
3063
3095
  context
@@ -3117,37 +3149,40 @@ const SelectContent = props => {
3117
3149
 
3118
3150
  const SelectContext = props => props.children(useSelectContext());
3119
3151
 
3120
- var _tmpl$$3 = /*#__PURE__*/template(`<option value="">`),
3121
- _tmpl$2 = /*#__PURE__*/template(`<select>`),
3122
- _tmpl$3 = /*#__PURE__*/template(`<option>`);
3123
3152
  const SelectControl = props => {
3153
+ const select = useSelectContext();
3154
+ const mergedProps = mergeProps$1(() => select().controlProps, props);
3155
+ return createComponent(ark.div, mergedProps);
3156
+ };
3157
+
3158
+ var _tmpl$$1 = /*#__PURE__*/template(`<option value="">`),
3159
+ _tmpl$2 = /*#__PURE__*/template(`<option>`);
3160
+ const SelectHiddenSelect = props => {
3124
3161
  const select = useSelectContext();
3125
3162
  const mergedProps = mergeProps$1(() => select().controlProps, props);
3126
3163
  const isValueEmpty = createMemo(() => select().value.length === 0);
3127
- return [createComponent(ark.div, mergedProps), (() => {
3128
- var _el$ = _tmpl$2();
3129
- spread(_el$, mergeProps(() => select().hiddenSelectProps), false, true);
3130
- insert(_el$, createComponent(Show, {
3131
- get when() {
3132
- return isValueEmpty();
3133
- },
3134
- get children() {
3135
- return _tmpl$$3();
3136
- }
3137
- }), null);
3138
- insert(_el$, createComponent(Index, {
3139
- get each() {
3140
- return select().collection.toArray();
3141
- },
3142
- children: option => (() => {
3143
- var _el$3 = _tmpl$3();
3144
- insert(_el$3, () => option().label);
3145
- effect(() => _el$3.value = option().value);
3146
- return _el$3;
3147
- })()
3148
- }), null);
3149
- return _el$;
3150
- })()];
3164
+ return createComponent(ark.select, mergeProps(mergedProps, {
3165
+ get children() {
3166
+ return [createComponent(Show, {
3167
+ get when() {
3168
+ return isValueEmpty();
3169
+ },
3170
+ get children() {
3171
+ return _tmpl$$1();
3172
+ }
3173
+ }), createComponent(Index, {
3174
+ get each() {
3175
+ return select().collection.toArray();
3176
+ },
3177
+ children: option => (() => {
3178
+ var _el$2 = _tmpl$2();
3179
+ insert(_el$2, () => option().label);
3180
+ effect(() => _el$2.value = option().value);
3181
+ return _el$2;
3182
+ })()
3183
+ })];
3184
+ }
3185
+ }));
3151
3186
  };
3152
3187
 
3153
3188
  const SelectIndicator = props => {
@@ -3250,17 +3285,19 @@ const SelectPositioner = props => {
3250
3285
  };
3251
3286
 
3252
3287
  const useSelect = props => {
3253
- const [collectionOptions, rest] = createSplitProps()(props, ['isItemDisabled', 'itemToValue', 'itemToString', 'items']);
3254
- const collection = () => select$1.collection(collectionOptions);
3288
+ const [collectionOptions, localProps] = createSplitProps()(props, ['isItemDisabled', 'itemToValue', 'itemToString', 'items']);
3289
+ const collection = createMemo(() => select$1.collection(collectionOptions));
3255
3290
  const locale = useLocaleContext();
3256
- const getRootNode = useEnvironmentContext();
3291
+ const environment = useEnvironmentContext();
3257
3292
  const context = mergeProps$1({
3258
3293
  id: createUniqueId(),
3259
3294
  dir: locale().dir,
3260
- getRootNode,
3261
- collection: collection(),
3262
- 'open.controlled': props.open !== undefined
3263
- }, rest);
3295
+ getRootNode: environment().getRootNode,
3296
+ 'open.controlled': props.open !== undefined,
3297
+ get collection() {
3298
+ return collection();
3299
+ }
3300
+ }, localProps);
3264
3301
  const [state, send] = useMachine(select$1.machine(context), {
3265
3302
  context
3266
3303
  });
@@ -3310,6 +3347,7 @@ var select = /*#__PURE__*/Object.freeze({
3310
3347
  Content: SelectContent,
3311
3348
  Context: SelectContext,
3312
3349
  Control: SelectControl,
3350
+ HiddenSelect: SelectHiddenSelect,
3313
3351
  Indicator: SelectIndicator,
3314
3352
  Item: SelectItem,
3315
3353
  ItemContext: SelectItemContext,
@@ -3364,11 +3402,11 @@ const SliderRange = props => {
3364
3402
 
3365
3403
  const useSlider = props => {
3366
3404
  const locale = useLocaleContext();
3367
- const getRootNode = useEnvironmentContext();
3405
+ const environment = useEnvironmentContext();
3368
3406
  const context = mergeProps$1({
3369
3407
  id: createUniqueId(),
3370
3408
  dir: locale().dir,
3371
- getRootNode
3409
+ getRootNode: environment().getRootNode
3372
3410
  }, props);
3373
3411
  const [state, send] = useMachine(slider$1.machine(context), {
3374
3412
  context
@@ -3448,11 +3486,11 @@ const SplitterResizeTrigger = props => {
3448
3486
 
3449
3487
  const useSplitter = props => {
3450
3488
  const locale = useLocaleContext();
3451
- const getRootNode = useEnvironmentContext();
3489
+ const environment = useEnvironmentContext();
3452
3490
  const context = mergeProps$1({
3453
3491
  id: createUniqueId(),
3454
3492
  dir: locale().dir,
3455
- getRootNode
3493
+ getRootNode: environment().getRootNode
3456
3494
  }, props);
3457
3495
  const [state, send] = useMachine(splitter$1.machine(context), {
3458
3496
  context
@@ -3487,15 +3525,16 @@ const [SwitchProvider, useSwitchContext] = createContext({
3487
3525
 
3488
3526
  const SwitchContext = props => props.children(useSwitchContext());
3489
3527
 
3490
- var _tmpl$$2 = /*#__PURE__*/template(`<input>`);
3491
3528
  const SwitchControl = props => {
3492
3529
  const api = useSwitchContext();
3493
3530
  const mergedProps = mergeProps$1(() => api().controlProps, props);
3494
- return [createComponent(ark.span, mergedProps), (() => {
3495
- var _el$ = _tmpl$$2();
3496
- spread(_el$, mergeProps(() => api().hiddenInputProps), false, false);
3497
- return _el$;
3498
- })()];
3531
+ return createComponent(ark.span, mergedProps);
3532
+ };
3533
+
3534
+ const SwitchHiddenInput = props => {
3535
+ const api = useSwitchContext();
3536
+ const mergedProps = mergeProps$1(() => api().hiddenInputProps, props);
3537
+ return createComponent(ark.input, mergedProps);
3499
3538
  };
3500
3539
 
3501
3540
  const SwitchLabel = props => {
@@ -3506,11 +3545,11 @@ const SwitchLabel = props => {
3506
3545
 
3507
3546
  const useSwitch = props => {
3508
3547
  const locale = useLocaleContext();
3509
- const getRootNode = useEnvironmentContext();
3548
+ const environment = useEnvironmentContext();
3510
3549
  const context = mergeProps$1({
3511
3550
  id: createUniqueId(),
3512
3551
  dir: locale().dir,
3513
- getRootNode
3552
+ getRootNode: environment().getRootNode
3514
3553
  }, props);
3515
3554
  const [state, send] = useMachine(zagSwitch.machine(context), {
3516
3555
  context
@@ -3540,6 +3579,7 @@ var _switch = /*#__PURE__*/Object.freeze({
3540
3579
  __proto__: null,
3541
3580
  Context: SwitchContext,
3542
3581
  Control: SwitchControl,
3582
+ HiddenInput: SwitchHiddenInput,
3543
3583
  Label: SwitchLabel,
3544
3584
  Root: SwitchRoot,
3545
3585
  Thumb: SwitchThumb
@@ -3596,11 +3636,11 @@ const TabsContext = props => props.children(useTabsContext());
3596
3636
 
3597
3637
  const useTabs = props => {
3598
3638
  const locale = useLocaleContext();
3599
- const getRootNode = useEnvironmentContext();
3639
+ const environment = useEnvironmentContext();
3600
3640
  const context = mergeProps$1({
3601
3641
  id: createUniqueId(),
3602
3642
  dir: locale().dir,
3603
- getRootNode
3643
+ getRootNode: environment().getRootNode
3604
3644
  }, props);
3605
3645
  const [state, send] = useMachine(tabs$1.machine(context), {
3606
3646
  context
@@ -3705,6 +3745,12 @@ const TagsInputItemInput = props => {
3705
3745
  return createComponent(ark.input, mergedProps);
3706
3746
  };
3707
3747
 
3748
+ const TagsInputHiddenInput = props => {
3749
+ const tagsInput = useTagsInputContext();
3750
+ const mergedProps = mergeProps$1(() => tagsInput().hiddenInputProps, props);
3751
+ return createComponent(ark.input, mergedProps);
3752
+ };
3753
+
3708
3754
  const TagsInputItemPreview = props => {
3709
3755
  const api = useTagsInputContext();
3710
3756
  const itemProps = useTagsInputItemPropsContext();
@@ -3727,11 +3773,11 @@ const TagsInputLabel = props => {
3727
3773
 
3728
3774
  const useTagsInput = props => {
3729
3775
  const locale = useLocaleContext();
3730
- const getRootNode = useEnvironmentContext();
3776
+ const environment = useEnvironmentContext();
3731
3777
  const context = mergeProps$1({
3732
3778
  id: createUniqueId(),
3733
3779
  dir: locale().dir,
3734
- getRootNode
3780
+ getRootNode: environment().getRootNode
3735
3781
  }, props);
3736
3782
  const [state, send] = useMachine(tagsInput$1.machine(context), {
3737
3783
  context
@@ -3739,7 +3785,6 @@ const useTagsInput = props => {
3739
3785
  return createMemo(() => tagsInput$1.connect(state, send, normalizeProps));
3740
3786
  };
3741
3787
 
3742
- var _tmpl$$1 = /*#__PURE__*/template(`<input>`);
3743
3788
  const TagsInputRoot = props => {
3744
3789
  const [useTagsInputProps, localProps] = createSplitProps()(props, ['addOnPaste', 'allowOverflow', 'autoFocus', 'blurBehavior', 'delimiter', 'disabled', 'editable', 'form', 'id', 'ids', 'inputValue', 'invalid', 'max', 'maxLength', 'name', 'onFocusOutside', 'onHighlightChange', 'onInputValueChange', 'onInteractOutside', 'onPointerDownOutside', 'onValueChange', 'onValueInvalid', 'readOnly', 'translations', 'validate', 'value']);
3745
3790
  const api = useTagsInput(useTagsInputProps);
@@ -3747,11 +3792,7 @@ const TagsInputRoot = props => {
3747
3792
  return createComponent(TagsInputProvider, {
3748
3793
  value: api,
3749
3794
  get children() {
3750
- return [createComponent(ark.div, mergedProps), (() => {
3751
- var _el$ = _tmpl$$1();
3752
- spread(_el$, mergeProps(() => api().hiddenInputProps), false, false);
3753
- return _el$;
3754
- })()];
3795
+ return createComponent(ark.div, mergedProps);
3755
3796
  }
3756
3797
  });
3757
3798
  };
@@ -3761,6 +3802,7 @@ var tagsInput = /*#__PURE__*/Object.freeze({
3761
3802
  ClearTrigger: TagsInputClearTrigger,
3762
3803
  Context: TagsInputContext,
3763
3804
  Control: TagsInputControl,
3805
+ HiddenInput: TagsInputHiddenInput,
3764
3806
  Input: TagsInputInput,
3765
3807
  Item: TagsInputItem,
3766
3808
  ItemContext: TagsInputItemContext,
@@ -3891,11 +3933,11 @@ const ToggleGroupItem = props => {
3891
3933
 
3892
3934
  const useToggleGroup = props => {
3893
3935
  const locale = useLocaleContext();
3894
- const getRootNode = useEnvironmentContext();
3936
+ const environment = useEnvironmentContext();
3895
3937
  const context = mergeProps$1({
3896
3938
  id: createUniqueId(),
3897
3939
  dir: locale().dir,
3898
- getRootNode
3940
+ getRootNode: environment().getRootNode
3899
3941
  }, props);
3900
3942
  const [state, send] = useMachine(toggleGroup$1.machine(context), {
3901
3943
  context
@@ -3971,11 +4013,11 @@ const TooltipPositioner = props => {
3971
4013
 
3972
4014
  const useTooltip = props => {
3973
4015
  const locale = useLocaleContext();
3974
- const getRootNode = useEnvironmentContext();
4016
+ const environment = useEnvironmentContext();
3975
4017
  const context = mergeProps$1({
3976
4018
  id: createUniqueId(),
3977
4019
  dir: locale().dir,
3978
- getRootNode,
4020
+ getRootNode: environment().getRootNode,
3979
4021
  'open.controlled': props.open !== undefined
3980
4022
  }, props);
3981
4023
  const [state, send] = useMachine(tooltip$1.machine(context), {
@@ -4150,11 +4192,11 @@ const TreeViewLabel = props => {
4150
4192
 
4151
4193
  const useTreeView = props => {
4152
4194
  const locale = useLocaleContext();
4153
- const getRootNode = useEnvironmentContext();
4195
+ const environment = useEnvironmentContext();
4154
4196
  const context = mergeProps$1({
4155
4197
  id: createUniqueId(),
4156
4198
  dir: locale().dir,
4157
- getRootNode
4199
+ getRootNode: environment().getRootNode
4158
4200
  }, props);
4159
4201
  const [state, send] = useMachine(treeView$1.machine(context), {
4160
4202
  context
@@ -4203,5 +4245,5 @@ var treeView = /*#__PURE__*/Object.freeze({
4203
4245
  Tree: TreeViewTree
4204
4246
  });
4205
4247
 
4206
- export { accordion as Accordion, AccordionContext, AccordionItem, AccordionItemContent, AccordionItemContext, AccordionItemIndicator, AccordionItemTrigger, AccordionRoot, avatar as Avatar, AvatarContext, AvatarFallback, AvatarImage, AvatarRoot, carousel as Carousel, CarouselContext, CarouselControl, CarouselIndicator, CarouselIndicatorGroup, CarouselItem, CarouselItemGroup, CarouselNextTrigger, CarouselPrevTrigger, CarouselRoot, CarouselViewport, checkbox as Checkbox, CheckboxContext, CheckboxControl, CheckboxIndicator, CheckboxLabel, CheckboxRoot, clipboard as Clipboard, ClipboardContext, ClipboardControl, ClipboardIndicator, ClipboardInput, ClipboardLabel, ClipboardRoot, ClipboardTrigger, collapsible as Collapsible, CollapsibleContent, CollapsibleContext, CollapsibleRoot, CollapsibleTrigger, colorPicker as ColorPicker, ColorPickerArea, ColorPickerAreaBackground, ColorPickerAreaThumb, ColorPickerChannelInput, ColorPickerChannelSlider, ColorPickerChannelSliderThumb, ColorPickerChannelSliderTrack, ColorPickerContent, ColorPickerContext, ColorPickerControl, ColorPickerEyeDropperTrigger, ColorPickerFormatSelect, ColorPickerFormatTrigger, ColorPickerLabel, ColorPickerPositioner, ColorPickerRoot, ColorPickerSwatch, ColorPickerSwatchGroup, ColorPickerSwatchIndicator, ColorPickerSwatchTrigger, ColorPickerTransparencyGrid, ColorPickerTrigger, ColorPickerValueText, ColorPickerView, combobox as Combobox, ComboboxClearTrigger, ComboboxContent, ComboboxContext, ComboboxControl, ComboboxInput, ComboboxItem, ComboboxItemContext, ComboboxItemGroup, ComboboxItemGroupLabel, ComboboxItemIndicator, ComboboxItemText, ComboboxLabel, ComboboxPositioner, ComboboxRoot, ComboboxTrigger, datePicker as DatePicker, DatePickerClearTrigger, DatePickerContent, DatePickerContext, DatePickerControl, DatePickerInput, DatePickerLabel, DatePickerMonthSelect, DatePickerNextTrigger, DatePickerPositioner, DatePickerPresetTrigger, DatePickerPrevTrigger, DatePickerRangeText, DatePickerRoot, DatePickerTable, DatePickerTableBody, DatePickerTableCell, DatePickerTableCellTrigger, DatePickerTableHead, DatePickerTableHeader, DatePickerTableRow, DatePickerTrigger, DatePickerView, DatePickerViewControl, DatePickerViewTrigger, DatePickerYearSelect, dialog as Dialog, DialogBackdrop, DialogCloseTrigger, DialogContent, DialogContext, DialogDescription, DialogPositioner, DialogRoot, DialogTitle, DialogTrigger, editable as Editable, EditableArea, EditableCancelTrigger, EditableContext, EditableControl, EditableEditTrigger, EditableInput, EditableLabel, EditablePreview, EditableRoot, EditableSubmitTrigger, Environment, fileUpload as FileUpload, FileUploadContext, FileUploadDropzone, FileUploadItem, FileUploadItemDeleteTrigger, FileUploadItemGroup, FileUploadItemName, FileUploadItemPreview, FileUploadItemPreviewImage, FileUploadItemSizeText, FileUploadLabel, FileUploadRoot, FileUploadTrigger, format as Format, FormatByte, FormatNumber, hoverCard as HoverCard, HoverCardArrow, HoverCardArrowTip, HoverCardContent, HoverCardContext, HoverCardPositioner, HoverCardRoot, HoverCardTrigger, LocaleProvider, menu as Menu, MenuArrow, MenuArrowTip, MenuCheckboxItem, MenuContent, MenuContext, MenuContextTrigger, MenuIndicator, MenuItem, MenuItemContext, MenuItemGroup, MenuItemGroupLabel, MenuItemIndicator, MenuItemText, MenuPositioner, MenuRadioItem, MenuRadioItemGroup, MenuRoot, MenuSeparator, MenuTrigger, MenuTriggerItem, numberInput as NumberInput, NumberInputContext, NumberInputControl, NumberInputDecrementTrigger, NumberInputIncrementTrigger, NumberInputInput, NumberInputLabel, NumberInputRoot, NumberInputScrubber, pagination as Pagination, PaginationContext, PaginationEllipsis, PaginationItem, PaginationNextTrigger, PaginationPrevTrigger, PaginationRoot, pinInput as PinInput, PinInputContext, PinInputControl, PinInputInput, PinInputLabel, PinInputRoot, popover as Popover, PopoverAnchor, PopoverArrow, PopoverArrowTip, PopoverCloseTrigger, PopoverContent, PopoverContext, PopoverDescription, PopoverIndicator, PopoverPositioner, PopoverRoot, PopoverTitle, PopoverTrigger, Presence, PresenceProvider, progress as Progress, ProgressCircle, ProgressCircleRange, ProgressCircleTrack, ProgressContext, ProgressLabel, ProgressRange, ProgressRoot, ProgressTrack, ProgressValueText, ProgressView, radioGroup as RadioGroup, RadioGroupContext, RadioGroupIndicator, RadioGroupItem, RadioGroupItemContext, RadioGroupItemControl, RadioGroupItemText, RadioGroupLabel, RadioGroupRoot, ratingGroup as RatingGroup, RatingGroupContext, RatingGroupControl, RatingGroupItem, RatingGroupItemContext, RatingGroupLabel, RatingGroupRoot, segmentGroup as SegmentGroup, SegmentGroupContext, SegmentGroupIndicator, SegmentGroupItem, SegmentGroupItemContext, SegmentGroupItemControl, SegmentGroupItemText, SegmentGroupLabel, SegmentGroupRoot, select as Select, SelectClearTrigger, SelectContent, SelectContext, SelectControl, SelectIndicator, SelectItem, SelectItemContext, SelectItemGroup, SelectItemGroupLabel, SelectItemIndicator, SelectItemText, SelectLabel, SelectPositioner, SelectRoot, SelectTrigger, SelectValueText, slider as Slider, SliderContext, SliderControl, SliderLabel, SliderMarker, SliderMarkerGroup, SliderRange, SliderRoot, SliderThumb, SliderTrack, SliderValueText, splitter as Splitter, SplitterContext, SplitterPanel, SplitterResizeTrigger, SplitterRoot, _switch as Switch, SwitchContext, SwitchControl, SwitchLabel, SwitchRoot, SwitchThumb, TabContent, TabIndicator, TabList, TabTrigger, tabs as Tabs, TabsContext, TabsRoot, tagsInput as TagsInput, TagsInputClearTrigger, TagsInputContext, TagsInputControl, TagsInputInput, TagsInputItem, TagsInputItemContext, TagsInputItemDeleteTrigger, TagsInputItemInput, TagsInputItemPreview, TagsInputItemText, TagsInputLabel, TagsInputRoot, toast as Toast, ToastActionTrigger, ToastCloseTrigger, ToastContext, ToastDescription, ToastRoot, ToastTitle, Toaster, toggleGroup as ToggleGroup, ToggleGroupContext, ToggleGroupItem, ToggleGroupRoot, tooltip as Tooltip, TooltipArrow, TooltipArrowTip, TooltipContent, TooltipContext, TooltipPositioner, TooltipRoot, TooltipTrigger, treeView as TreeView, TreeViewBranch, TreeViewBranchContent, TreeViewBranchControl, TreeViewBranchIndicator, TreeViewBranchText, TreeViewBranchTrigger, TreeViewContext, TreeViewItem, TreeViewItemContext, TreeViewItemIndicator, TreeViewItemText, TreeViewLabel, TreeViewRoot, TreeViewTree, ark, createToaster, splitPresenceProps, useAccordionContext, useAccordionItemContext, useAvatarContext, useCarouselContext, useCheckboxContext, useClipboardContext, useCollapsibleContext, useColorPickerContext, useComboboxContext, useComboboxItemContext, useDatePickerContext, useDialogContext, useEditableContext, useEnvironmentContext, useFileUploadContext, useHoverCardContext, useLocaleContext, useMenuContext, useMenuItemContext, useNumberInputContext, usePaginationContext, usePinInputContext, usePopoverContext, usePresence, usePresenceContext, useProgressContext, useRadioGroupContext, useRadioGroupItemContext, useRatingGroupContext, useRatingGroupItemContext, useSegmentGroupContext, useSegmentGroupItemContext, useSelectContext, useSelectItemContext, useSliderContext, useSplitterContext, useSwitchContext, useTabsContext, useTagsInputContext, useTagsInputItemContext, useToastContext, useToggleGroupContext, useTooltipContext, useTreeViewContext, useTreeViewItemContext };
4248
+ export { accordion as Accordion, AccordionContext, AccordionItem, AccordionItemContent, AccordionItemContext, AccordionItemIndicator, AccordionItemTrigger, AccordionRoot, avatar as Avatar, AvatarContext, AvatarFallback, AvatarImage, AvatarRoot, carousel as Carousel, CarouselContext, CarouselControl, CarouselIndicator, CarouselIndicatorGroup, CarouselItem, CarouselItemGroup, CarouselNextTrigger, CarouselPrevTrigger, CarouselRoot, CarouselViewport, checkbox as Checkbox, CheckboxContext, CheckboxControl, CheckboxHiddenInput, CheckboxIndicator, CheckboxLabel, CheckboxRoot, clipboard as Clipboard, ClipboardContext, ClipboardControl, ClipboardIndicator, ClipboardInput, ClipboardLabel, ClipboardRoot, ClipboardTrigger, collapsible as Collapsible, CollapsibleContent, CollapsibleContext, CollapsibleRoot, CollapsibleTrigger, colorPicker as ColorPicker, ColorPickerArea, ColorPickerAreaBackground, ColorPickerAreaThumb, ColorPickerChannelInput, ColorPickerChannelSlider, ColorPickerChannelSliderThumb, ColorPickerChannelSliderTrack, ColorPickerContent, ColorPickerContext, ColorPickerControl, ColorPickerEyeDropperTrigger, ColorPickerFormatSelect, ColorPickerFormatTrigger, ColorPickerHiddenInput, ColorPickerLabel, ColorPickerPositioner, ColorPickerRoot, ColorPickerSwatch, ColorPickerSwatchGroup, ColorPickerSwatchIndicator, ColorPickerSwatchTrigger, ColorPickerTransparencyGrid, ColorPickerTrigger, ColorPickerValueText, ColorPickerView, combobox as Combobox, ComboboxClearTrigger, ComboboxContent, ComboboxContext, ComboboxControl, ComboboxInput, ComboboxItem, ComboboxItemContext, ComboboxItemGroup, ComboboxItemGroupLabel, ComboboxItemIndicator, ComboboxItemText, ComboboxLabel, ComboboxPositioner, ComboboxRoot, ComboboxTrigger, datePicker as DatePicker, DatePickerClearTrigger, DatePickerContent, DatePickerContext, DatePickerControl, DatePickerInput, DatePickerLabel, DatePickerMonthSelect, DatePickerNextTrigger, DatePickerPositioner, DatePickerPresetTrigger, DatePickerPrevTrigger, DatePickerRangeText, DatePickerRoot, DatePickerTable, DatePickerTableBody, DatePickerTableCell, DatePickerTableCellTrigger, DatePickerTableHead, DatePickerTableHeader, DatePickerTableRow, DatePickerTrigger, DatePickerView, DatePickerViewControl, DatePickerViewTrigger, DatePickerYearSelect, dialog as Dialog, DialogBackdrop, DialogCloseTrigger, DialogContent, DialogContext, DialogDescription, DialogPositioner, DialogRoot, DialogTitle, DialogTrigger, editable as Editable, EditableArea, EditableCancelTrigger, EditableContext, EditableControl, EditableEditTrigger, EditableInput, EditableLabel, EditablePreview, EditableRoot, EditableSubmitTrigger, Environment, fileUpload as FileUpload, FileUploadContext, FileUploadDropzone, FileUploadHiddenInput, FileUploadItem, FileUploadItemDeleteTrigger, FileUploadItemGroup, FileUploadItemName, FileUploadItemPreview, FileUploadItemPreviewImage, FileUploadItemSizeText, FileUploadLabel, FileUploadRoot, FileUploadTrigger, format as Format, FormatByte, FormatNumber, hoverCard as HoverCard, HoverCardArrow, HoverCardArrowTip, HoverCardContent, HoverCardContext, HoverCardPositioner, HoverCardRoot, HoverCardTrigger, LocaleProvider, menu as Menu, MenuArrow, MenuArrowTip, MenuCheckboxItem, MenuContent, MenuContext, MenuContextTrigger, MenuIndicator, MenuItem, MenuItemContext, MenuItemGroup, MenuItemGroupLabel, MenuItemIndicator, MenuItemText, MenuPositioner, MenuRadioItem, MenuRadioItemGroup, MenuRoot, MenuSeparator, MenuTrigger, MenuTriggerItem, numberInput as NumberInput, NumberInputContext, NumberInputControl, NumberInputDecrementTrigger, NumberInputIncrementTrigger, NumberInputInput, NumberInputLabel, NumberInputRoot, NumberInputScrubber, pagination as Pagination, PaginationContext, PaginationEllipsis, PaginationItem, PaginationNextTrigger, PaginationPrevTrigger, PaginationRoot, pinInput as PinInput, PinInputContext, PinInputControl, PinInputHiddenInput, PinInputInput, PinInputLabel, PinInputRoot, popover as Popover, PopoverAnchor, PopoverArrow, PopoverArrowTip, PopoverCloseTrigger, PopoverContent, PopoverContext, PopoverDescription, PopoverIndicator, PopoverPositioner, PopoverRoot, PopoverTitle, PopoverTrigger, Presence, PresenceProvider, progress as Progress, ProgressCircle, ProgressCircleRange, ProgressCircleTrack, ProgressContext, ProgressLabel, ProgressRange, ProgressRoot, ProgressTrack, ProgressValueText, ProgressView, radioGroup as RadioGroup, RadioGroupContext, RadioGroupIndicator, RadioGroupItem, RadioGroupItemContext, RadioGroupItemControl, RadioGroupItemText, RadioGroupLabel, RadioGroupRoot, ratingGroup as RatingGroup, RatingGroupContext, RatingGroupControl, RatingGroupHiddenInput, RatingGroupItem, RatingGroupItemContext, RatingGroupLabel, RatingGroupRoot, segmentGroup as SegmentGroup, SegmentGroupContext, SegmentGroupIndicator, SegmentGroupItem, SegmentGroupItemContext, SegmentGroupItemControl, SegmentGroupItemText, SegmentGroupLabel, SegmentGroupRoot, select as Select, SelectClearTrigger, SelectContent, SelectContext, SelectControl, SelectHiddenSelect, SelectIndicator, SelectItem, SelectItemContext, SelectItemGroup, SelectItemGroupLabel, SelectItemIndicator, SelectItemText, SelectLabel, SelectPositioner, SelectRoot, SelectTrigger, SelectValueText, slider as Slider, SliderContext, SliderControl, SliderLabel, SliderMarker, SliderMarkerGroup, SliderRange, SliderRoot, SliderThumb, SliderTrack, SliderValueText, splitter as Splitter, SplitterContext, SplitterPanel, SplitterResizeTrigger, SplitterRoot, _switch as Switch, SwitchContext, SwitchControl, SwitchHiddenInput, SwitchLabel, SwitchRoot, SwitchThumb, TabContent, TabIndicator, TabList, TabTrigger, tabs as Tabs, TabsContext, TabsRoot, tagsInput as TagsInput, TagsInputClearTrigger, TagsInputContext, TagsInputControl, TagsInputHiddenInput, TagsInputInput, TagsInputItem, TagsInputItemContext, TagsInputItemDeleteTrigger, TagsInputItemInput, TagsInputItemPreview, TagsInputItemText, TagsInputLabel, TagsInputRoot, toast as Toast, ToastActionTrigger, ToastCloseTrigger, ToastContext, ToastDescription, ToastRoot, ToastTitle, Toaster, toggleGroup as ToggleGroup, ToggleGroupContext, ToggleGroupItem, ToggleGroupRoot, tooltip as Tooltip, TooltipArrow, TooltipArrowTip, TooltipContent, TooltipContext, TooltipPositioner, TooltipRoot, TooltipTrigger, treeView as TreeView, TreeViewBranch, TreeViewBranchContent, TreeViewBranchControl, TreeViewBranchIndicator, TreeViewBranchText, TreeViewBranchTrigger, TreeViewContext, TreeViewItem, TreeViewItemContext, TreeViewItemIndicator, TreeViewItemText, TreeViewLabel, TreeViewRoot, TreeViewTree, ark, createToaster, splitPresenceProps, useAccordionContext, useAccordionItemContext, useAvatarContext, useCarouselContext, useCheckboxContext, useClipboardContext, useCollapsibleContext, useColorPickerContext, useComboboxContext, useComboboxItemContext, useDatePickerContext, useDialogContext, useEditableContext, useEnvironmentContext, useFileUploadContext, useHoverCardContext, useLocaleContext, useMenuContext, useMenuItemContext, useNumberInputContext, usePaginationContext, usePinInputContext, usePopoverContext, usePresence, usePresenceContext, useProgressContext, useRadioGroupContext, useRadioGroupItemContext, useRatingGroupContext, useRatingGroupItemContext, useSegmentGroupContext, useSegmentGroupItemContext, useSelectContext, useSelectItemContext, useSliderContext, useSplitterContext, useSwitchContext, useTabsContext, useTagsInputContext, useTagsInputItemContext, useToastContext, useToggleGroupContext, useTooltipContext, useTreeViewContext, useTreeViewItemContext };
4207
4249
  //# sourceMappingURL=index.js.map