@ark-ui/solid 1.1.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/CHANGELOG.md +40 -1
  2. package/README.md +25 -21
  3. package/cjs/index.js +229 -96
  4. package/cjs/index.js.map +1 -1
  5. package/esm/index.js +217 -96
  6. package/esm/index.js.map +1 -1
  7. package/package.json +56 -52
  8. package/source/combobox/use-combobox.js +3 -3
  9. package/source/date-picker/date-picker.jsx +1 -1
  10. package/source/editable/editable-area.jsx +2 -2
  11. package/source/editable/editable-cancel-trigger.jsx +2 -2
  12. package/source/editable/editable-control.jsx +2 -2
  13. package/source/editable/editable-edit-trigger.jsx +2 -2
  14. package/source/editable/editable-input.jsx +2 -2
  15. package/source/editable/editable-label.jsx +2 -2
  16. package/source/editable/editable-preview.jsx +2 -2
  17. package/source/editable/editable-submit-trigger.jsx +2 -2
  18. package/source/editable/editable.jsx +5 -7
  19. package/source/factory.jsx +1 -1
  20. package/source/file-upload/file-upload-item-preview-image.jsx +13 -0
  21. package/source/file-upload/file-upload-item-preview.jsx +3 -10
  22. package/source/file-upload/file-upload.jsx +5 -1
  23. package/source/file-upload/index.js +7 -5
  24. package/source/index.jsx +1 -0
  25. package/source/number-input/index.js +1 -1
  26. package/source/pagination/pagination-ellipsis.jsx +2 -2
  27. package/source/pagination/pagination.jsx +2 -4
  28. package/source/pin-input/index.js +1 -1
  29. package/source/pin-input/pin-input.jsx +2 -2
  30. package/source/popover/popover-description.jsx +1 -1
  31. package/source/progress/index.js +22 -0
  32. package/source/progress/progress-circle-range.jsx +8 -0
  33. package/source/progress/progress-circle-track.jsx +8 -0
  34. package/source/progress/progress-circle.jsx +8 -0
  35. package/source/progress/progress-context.js +5 -0
  36. package/source/progress/progress-indicator.jsx +10 -0
  37. package/source/progress/progress-label.jsx +8 -0
  38. package/source/progress/progress-range.jsx +8 -0
  39. package/source/progress/progress-track.jsx +8 -0
  40. package/source/progress/progress-value-text.jsx +10 -0
  41. package/source/progress/progress.jsx +24 -0
  42. package/source/progress/use-progress.js +10 -0
  43. package/source/radio-group/radio-group-item-context.js +2 -2
  44. package/source/radio-group/radio-group-item.jsx +9 -6
  45. package/source/rating-group/rating-group-control.jsx +1 -1
  46. package/source/rating-group/rating-group-item.jsx +2 -2
  47. package/source/rating-group/rating-group.jsx +2 -2
  48. package/source/segment-group/segment-group-item-context.js +2 -2
  49. package/source/segment-group/segment-group-item.jsx +9 -6
  50. package/source/select/select-indicator.jsx +1 -1
  51. package/source/select/select-item-group.jsx +2 -2
  52. package/source/select/select.jsx +2 -2
  53. package/source/select/use-select.js +3 -3
  54. package/source/spread.js +3 -2
  55. package/source/switch/switch-label.jsx +2 -2
  56. package/source/switch/switch-thumb.jsx +2 -2
  57. package/source/switch/switch.jsx +2 -2
  58. package/source/toast/create-toaster.jsx +3 -3
  59. package/source/toast/index.js +5 -3
  60. package/source/toast/toast-group.jsx +4 -0
  61. package/types/accordion/index.d.ts +2 -1
  62. package/types/avatar/index.d.ts +2 -1
  63. package/types/carousel/index.d.ts +2 -1
  64. package/types/checkbox/index.d.ts +2 -2
  65. package/types/color-picker/index.d.ts +2 -2
  66. package/types/combobox/index.d.ts +2 -1
  67. package/types/create-split-props.d.ts +1 -1
  68. package/types/date-picker/index.d.ts +2 -1
  69. package/types/dialog/index.d.ts +2 -1
  70. package/types/editable/index.d.ts +2 -1
  71. package/types/file-upload/file-upload-item-preview-image.d.ts +4 -0
  72. package/types/file-upload/file-upload-item-preview.d.ts +6 -1
  73. package/types/file-upload/index.d.ts +10 -7
  74. package/types/hover-card/index.d.ts +2 -1
  75. package/types/index.d.ts +1 -0
  76. package/types/menu/index.d.ts +2 -1
  77. package/types/number-input/index.d.ts +3 -2
  78. package/types/pagination/index.d.ts +2 -1
  79. package/types/pin-input/index.d.ts +3 -2
  80. package/types/popover/index.d.ts +2 -1
  81. package/types/popover/popover-description.d.ts +1 -1
  82. package/types/presence/split-presence-props.d.ts +1 -1
  83. package/types/progress/index.d.ts +23 -0
  84. package/types/progress/progress-circle-range.d.ts +4 -0
  85. package/types/progress/progress-circle-track.d.ts +4 -0
  86. package/types/progress/progress-circle.d.ts +4 -0
  87. package/types/progress/progress-context.d.ts +4 -0
  88. package/types/progress/progress-indicator.d.ts +6 -0
  89. package/types/progress/progress-label.d.ts +4 -0
  90. package/types/progress/progress-range.d.ts +4 -0
  91. package/types/progress/progress-track.d.ts +4 -0
  92. package/types/progress/progress-value-text.d.ts +4 -0
  93. package/types/progress/progress.d.ts +9 -0
  94. package/types/progress/use-progress.d.ts +9 -0
  95. package/types/radio-group/index.d.ts +2 -1
  96. package/types/radio-group/radio-group-item-context.d.ts +1 -1
  97. package/types/radio-group/radio-group-item.d.ts +6 -3
  98. package/types/rating-group/index.d.ts +2 -1
  99. package/types/rating-group/rating-group-item-context.d.ts +2 -3
  100. package/types/segment-group/index.d.ts +2 -1
  101. package/types/segment-group/segment-group-item-context.d.ts +3 -14
  102. package/types/segment-group/segment-group-item.d.ts +6 -2
  103. package/types/select/index.d.ts +2 -1
  104. package/types/slider/index.d.ts +2 -1
  105. package/types/splitter/index.d.ts +2 -1
  106. package/types/spread.d.ts +1 -1
  107. package/types/switch/index.d.ts +2 -1
  108. package/types/tabs/index.d.ts +2 -1
  109. package/types/tags-input/index.d.ts +2 -1
  110. package/types/toast/index.d.ts +6 -4
  111. package/types/toast/toast-group.d.ts +4 -0
  112. package/types/toggle-group/index.d.ts +2 -1
  113. package/types/tooltip/index.d.ts +2 -1
  114. /package/source/number-input/{number-input-field.jsx → number-input-input.jsx} +0 -0
  115. /package/source/pin-input/{pin-input-field.jsx → pin-input-input.jsx} +0 -0
  116. /package/types/number-input/{number-input-field.d.ts → number-input-input.d.ts} +0 -0
  117. /package/types/pin-input/{pin-input-field.d.ts → pin-input-input.d.ts} +0 -0
package/cjs/index.js CHANGED
@@ -21,6 +21,7 @@ var numberInput = require('@zag-js/number-input');
21
21
  var pagination = require('@zag-js/pagination');
22
22
  var pinInput = require('@zag-js/pin-input');
23
23
  var popover = require('@zag-js/popover');
24
+ var progress = require('@zag-js/progress');
24
25
  var radio = require('@zag-js/radio-group');
25
26
  var rating = require('@zag-js/rating-group');
26
27
  var select = require('@zag-js/select');
@@ -67,6 +68,7 @@ var numberInput__namespace = /*#__PURE__*/_interopNamespaceDefault(numberInput);
67
68
  var pagination__namespace = /*#__PURE__*/_interopNamespaceDefault(pagination);
68
69
  var pinInput__namespace = /*#__PURE__*/_interopNamespaceDefault(pinInput);
69
70
  var popover__namespace = /*#__PURE__*/_interopNamespaceDefault(popover);
71
+ var progress__namespace = /*#__PURE__*/_interopNamespaceDefault(progress);
70
72
  var radio__namespace = /*#__PURE__*/_interopNamespaceDefault(radio);
71
73
  var rating__namespace = /*#__PURE__*/_interopNamespaceDefault(rating);
72
74
  var select__namespace = /*#__PURE__*/_interopNamespaceDefault(select);
@@ -122,6 +124,7 @@ const spread = (node, props) => {
122
124
  const nodeEvents = Object.fromEntries(Object.keys(node).filter(prop => prop.startsWith('$$'))
123
125
  // @ts-expect-error - fix later
124
126
  .map(prop => [prop, node[prop]]));
127
+ const isSVG = node instanceof SVGElement;
125
128
  const childProps = solidJs.createMemo(() => mapProps(props, (key, value) => {
126
129
  const eventKey = getEventKey(key);
127
130
 
@@ -140,14 +143,14 @@ const spread = (node, props) => {
140
143
 
141
144
  // class composition
142
145
  if (key === 'class') {
143
- return [node.className, value].filter(Boolean).join(' ');
146
+ return [node.classList.toString(), value].filter(Boolean).join(' ');
144
147
  }
145
148
 
146
149
  // don't override existing child attributes
147
150
  if (node.hasAttribute(key)) return;
148
151
  return value;
149
152
  }));
150
- web.spread(node, solidJs.mergeProps(childProps));
153
+ web.spread(node, solidJs.mergeProps(childProps), isSVG);
151
154
  };
152
155
 
153
156
  const booleans = ['allowfullscreen', 'async', 'autofocus', 'autoplay', 'checked', 'controls', 'default', 'disabled', 'formnovalidate', 'hidden', 'indeterminate', 'ismap', 'loop', 'multiple', 'muted', 'nomodule', 'novalidate', 'open', 'playsinline', 'readonly', 'required', 'reversed', 'seamless', 'selected'];
@@ -419,7 +422,7 @@ function withAsChild(Component) {
419
422
  const getChildren = solidJs.children(() => ssrSpread(localProps.children, restProps));
420
423
  solidJs.createEffect(() => {
421
424
  const children = getChildren();
422
- if (children instanceof HTMLElement) {
425
+ if (children instanceof HTMLElement || children instanceof SVGElement) {
423
426
  spread(children, restProps);
424
427
  }
425
428
  });
@@ -1175,14 +1178,14 @@ const [ComboboxProvider, useComboboxContext] = createContext({
1175
1178
 
1176
1179
  const useCombobox = props => {
1177
1180
  const [collectionOptions, rest] = createSplitProps()(props, ['isItemDisabled', 'itemToValue', 'itemToString', 'items']);
1178
- const collection = combobox__namespace.collection(collectionOptions);
1181
+ const collection = () => combobox__namespace.collection(collectionOptions);
1179
1182
  const getRootNode = useEnvironmentContext();
1180
- const context = solid.mergeProps({
1183
+ const context = () => solid.mergeProps({
1181
1184
  id: solidJs.createUniqueId(),
1182
1185
  getRootNode,
1183
- collection
1186
+ collection: collection()
1184
1187
  }, rest);
1185
- const [state, send] = solid.useMachine(combobox__namespace.machine(context), {
1188
+ const [state, send] = solid.useMachine(combobox__namespace.machine(context()), {
1186
1189
  context
1187
1190
  });
1188
1191
  return solidJs.createMemo(() => combobox__namespace.connect(state, send, solid.normalizeProps));
@@ -1362,7 +1365,7 @@ const useDatePicker = props => {
1362
1365
 
1363
1366
  const DatePicker$1 = props => {
1364
1367
  const [presenceProps, datePickerProps] = splitPresenceProps(props);
1365
- const [useDatePickerProps, localProps] = createSplitProps()(datePickerProps, ['closeOnSelect', 'dir', 'disabled', 'fixedWeeks', 'focusedValue', 'format', 'getRootNode', 'id', 'ids', 'isDateUnavailable', 'isDateUnavailable', 'locale', 'max', 'messages', 'min', 'modal', 'name', 'numOfMonths', 'onFocusChange', 'onOpenChange', 'onValueChange', 'onViewChange', 'open', 'parse', 'positioning', 'readOnly', 'selectionMode', 'startOfWeek', 'timeZone', 'value', 'view']);
1368
+ const [useDatePickerProps, localProps] = createSplitProps()(datePickerProps, ['closeOnSelect', 'dir', 'disabled', 'fixedWeeks', 'focusedValue', 'format', 'getRootNode', 'id', 'ids', 'isDateUnavailable', 'isDateUnavailable', 'locale', 'max', 'min', 'modal', 'name', 'numOfMonths', 'onFocusChange', 'onOpenChange', 'onValueChange', 'onViewChange', 'open', 'parse', 'positioning', 'readOnly', 'selectionMode', 'startOfWeek', 'timeZone', 'translations', 'value', 'view']);
1366
1369
  const api = useDatePicker(useDatePickerProps);
1367
1370
  const apiPresence = usePresence(solid.mergeProps(presenceProps, () => ({
1368
1371
  present: api().isOpen
@@ -1812,13 +1815,12 @@ const useEditable = props => {
1812
1815
  };
1813
1816
 
1814
1817
  const Editable$1 = props => {
1815
- const [useEditableProps, restProps] = createSplitProps()(props, ['activationMode', 'autoResize', 'dir', 'disabled', 'finalFocusEl', 'form', 'getRootNode', 'id', 'ids', 'invalid', 'maxLength', 'name', 'onEdit', 'onFocusOutside', 'onInteractOutside', 'onPointerDownOutside', 'onValueChange', 'onValueCommit', 'onValueRevert', 'placeholder', 'readOnly', 'selectOnFocus', 'startWithEditView', 'submitMode', 'translations', 'value']);
1816
- const editable = useEditable(useEditableProps);
1817
- const [childrenProps, localProps] = solidJs.splitProps(restProps, ['children']);
1818
- const mergedProps = solid.mergeProps(() => editable().rootProps, localProps);
1819
- const getChildren = () => runIfFn(childrenProps.children, editable);
1818
+ const [useEditableProps, localProps] = createSplitProps()(props, ['activationMode', 'autoResize', 'dir', 'disabled', 'finalFocusEl', 'form', 'getRootNode', 'id', 'ids', 'invalid', 'maxLength', 'name', 'onEdit', 'onFocusOutside', 'onInteractOutside', 'onPointerDownOutside', 'onValueChange', 'onValueCommit', 'onValueRevert', 'placeholder', 'readOnly', 'selectOnFocus', 'startWithEditView', 'submitMode', 'translations', 'value']);
1819
+ const api = useEditable(useEditableProps);
1820
+ const mergedProps = solid.mergeProps(() => api().rootProps, localProps);
1821
+ const getChildren = () => runIfFn(localProps.children, api);
1820
1822
  return web.createComponent(EditableProvider, {
1821
- value: editable,
1823
+ value: api,
1822
1824
  get children() {
1823
1825
  return web.createComponent(ark.div, web.mergeProps(mergedProps, {
1824
1826
  get children() {
@@ -1830,50 +1832,50 @@ const Editable$1 = props => {
1830
1832
  };
1831
1833
 
1832
1834
  const EditableArea = props => {
1833
- const editable = useEditableContext();
1834
- const mergedProps = solid.mergeProps(() => editable().areaProps, props);
1835
+ const api = useEditableContext();
1836
+ const mergedProps = solid.mergeProps(() => api().areaProps, props);
1835
1837
  return web.createComponent(ark.div, mergedProps);
1836
1838
  };
1837
1839
 
1838
1840
  const EditableCancelTrigger = props => {
1839
- const editable = useEditableContext();
1840
- const mergedProps = solid.mergeProps(() => editable().cancelTriggerProps, props);
1841
+ const api = useEditableContext();
1842
+ const mergedProps = solid.mergeProps(() => api().cancelTriggerProps, props);
1841
1843
  return web.createComponent(ark.button, mergedProps);
1842
1844
  };
1843
1845
 
1844
1846
  const EditableControl = props => {
1845
- const editable = useEditableContext();
1846
- const mergedProps = solid.mergeProps(() => editable().controlProps, props);
1847
+ const api = useEditableContext();
1848
+ const mergedProps = solid.mergeProps(() => api().controlProps, props);
1847
1849
  return web.createComponent(ark.div, mergedProps);
1848
1850
  };
1849
1851
 
1850
1852
  const EditableEditTrigger = props => {
1851
- const editable = useEditableContext();
1852
- const mergedProps = solid.mergeProps(() => editable().editTriggerProps, props);
1853
+ const api = useEditableContext();
1854
+ const mergedProps = solid.mergeProps(() => api().editTriggerProps, props);
1853
1855
  return web.createComponent(ark.button, mergedProps);
1854
1856
  };
1855
1857
 
1856
1858
  const EditableInput = props => {
1857
- const editable = useEditableContext();
1858
- const mergedProps = solid.mergeProps(() => editable().inputProps, props);
1859
+ const api = useEditableContext();
1860
+ const mergedProps = solid.mergeProps(() => api().inputProps, props);
1859
1861
  return web.createComponent(ark.input, mergedProps);
1860
1862
  };
1861
1863
 
1862
1864
  const EditableLabel = props => {
1863
- const editable = useEditableContext();
1864
- const mergedProps = solid.mergeProps(() => editable().labelProps, props);
1865
+ const api = useEditableContext();
1866
+ const mergedProps = solid.mergeProps(() => api().labelProps, props);
1865
1867
  return web.createComponent(ark.label, mergedProps);
1866
1868
  };
1867
1869
 
1868
1870
  const EditablePreview = props => {
1869
- const editable = useEditableContext();
1870
- const mergedProps = solid.mergeProps(() => editable().previewProps, props);
1871
+ const api = useEditableContext();
1872
+ const mergedProps = solid.mergeProps(() => api().previewProps, props);
1871
1873
  return web.createComponent(ark.span, mergedProps);
1872
1874
  };
1873
1875
 
1874
1876
  const EditableSubmitTrigger = props => {
1875
- const dialog = useEditableContext();
1876
- const mergedProps = solid.mergeProps(() => dialog().submitTriggerProps, props);
1877
+ const api = useEditableContext();
1878
+ const mergedProps = solid.mergeProps(() => api().submitTriggerProps, props);
1877
1879
  return web.createComponent(ark.button, mergedProps);
1878
1880
  };
1879
1881
 
@@ -1907,7 +1909,7 @@ const useFileUpload = props => {
1907
1909
  };
1908
1910
 
1909
1911
  const FileUpload$1 = props => {
1910
- const [fileUploadProps, localProps] = createSplitProps()(props, ['accept', 'allowDrop', 'dir', 'disabled', 'files', 'getRootNode', 'id', 'isValidFile', 'locale', 'maxFiles', 'maxFileSize', 'minFileSize', 'name', 'onFilesChange']);
1912
+ const [fileUploadProps, localProps] = createSplitProps()(props, ['accept', 'allowDrop', 'dir', 'disabled', 'files', 'getRootNode', 'id', 'ids', 'locale', 'maxFiles', 'maxFileSize', 'minFileSize', 'name', 'onFileAccept', 'onFileReject', 'onFilesChange', 'translations', 'validate']);
1911
1913
  const api = useFileUpload(fileUploadProps);
1912
1914
  const mergedProps = solid.mergeProps(() => api().rootProps, localProps);
1913
1915
  const getChildren = () => runIfFn(localProps.children, api);
@@ -1987,20 +1989,23 @@ const FileUploadItemName = props => {
1987
1989
  };
1988
1990
 
1989
1991
  const FileUploadItemPreview = props => {
1992
+ const api = useFileUploadContext();
1993
+ const item = useFileUploadItemContext();
1994
+ const mergedProps = solid.mergeProps(() => api().getItemPreviewProps(item), props);
1995
+ if (!item.file.type.match(props.type ?? '.*')) return null;
1996
+ return web.createComponent(ark.div, mergedProps);
1997
+ };
1998
+
1999
+ const FileUploadItemPreviewImage = props => {
1990
2000
  const api = useFileUploadContext();
1991
2001
  const item = useFileUploadItemContext();
1992
2002
  const [url, setUrl] = solidJs.createSignal('');
1993
2003
  api().createFileUrl(item.file, url => setUrl(url));
1994
- try {
1995
- const mergedProps = solid.mergeProps(api().getItemPreviewProps({
1996
- ...item,
1997
- url: url()
1998
- }), props);
1999
- return web.createComponent(ark.img, mergedProps);
2000
- } catch (e) {
2001
- // TODO We could render a fallback component
2002
- return null;
2003
- }
2004
+ const mergedProps = solid.mergeProps(api().getItemPreviewImageProps({
2005
+ ...item,
2006
+ url: url()
2007
+ }), props);
2008
+ return web.createComponent(ark.img, mergedProps);
2004
2009
  };
2005
2010
 
2006
2011
  const FileUploadItemSizeText = props => {
@@ -2030,14 +2035,15 @@ const FileUploadTrigger = props => {
2030
2035
  const FileUpload = Object.assign(FileUpload$1, {
2031
2036
  Root: FileUpload$1,
2032
2037
  Dropzone: FileUploadDropzone,
2033
- Label: FileUploadLabel,
2034
- Trigger: FileUploadTrigger,
2035
- ItemGroup: FileUploadItemGroup,
2036
2038
  Item: FileUploadItem,
2039
+ ItemDeleteTrigger: FileUploadItemDeleteTrigger,
2040
+ ItemGroup: FileUploadItemGroup,
2037
2041
  ItemName: FileUploadItemName,
2038
2042
  ItemPreview: FileUploadItemPreview,
2043
+ ItemPreviewImage: FileUploadItemPreviewImage,
2039
2044
  ItemSizeText: FileUploadItemSizeText,
2040
- ItemDeleteTrigger: FileUploadItemDeleteTrigger
2045
+ Label: FileUploadLabel,
2046
+ Trigger: FileUploadTrigger
2041
2047
  });
2042
2048
 
2043
2049
  const [HoverCardProvider, useHoverCardContext] = createContext({
@@ -2373,18 +2379,18 @@ const NumberInputDecrementTrigger = props => {
2373
2379
  return web.createComponent(ark.button, mergedProps);
2374
2380
  };
2375
2381
 
2376
- const NumberInputInput = props => {
2377
- const api = useNumberInputContext();
2378
- const mergedProps = solid.mergeProps(() => api().inputProps, props);
2379
- return web.createComponent(ark.input, mergedProps);
2380
- };
2381
-
2382
2382
  const NumberInputIncrementTrigger = props => {
2383
2383
  const api = useNumberInputContext();
2384
2384
  const mergedProps = solid.mergeProps(() => api().incrementTriggerProps, props);
2385
2385
  return web.createComponent(ark.button, mergedProps);
2386
2386
  };
2387
2387
 
2388
+ const NumberInputInput = props => {
2389
+ const api = useNumberInputContext();
2390
+ const mergedProps = solid.mergeProps(() => api().inputProps, props);
2391
+ return web.createComponent(ark.input, mergedProps);
2392
+ };
2393
+
2388
2394
  const NumberInputLabel = props => {
2389
2395
  const api = useNumberInputContext();
2390
2396
  const mergedProps = solid.mergeProps(() => api().labelProps, props);
@@ -2425,11 +2431,10 @@ const usePagination = props => {
2425
2431
  };
2426
2432
 
2427
2433
  const Pagination$1 = props => {
2428
- const [paginationParams, restProps] = createSplitProps()(props, ['count', 'dir', 'getRootNode', 'id', 'ids', 'onPageChange', 'page', 'pageSize', 'siblingCount', 'translations', 'type']);
2429
- const [childrenProps, localProps] = solidJs.splitProps(restProps, ['children']);
2434
+ const [paginationParams, localProps] = createSplitProps()(props, ['count', 'dir', 'getRootNode', 'id', 'ids', 'onPageChange', 'page', 'pageSize', 'siblingCount', 'translations', 'type']);
2430
2435
  const api = usePagination(paginationParams);
2431
- const getChildren = () => runIfFn(childrenProps.children, api);
2432
2436
  const mergedProps = solid.mergeProps(() => api().rootProps, localProps);
2437
+ const getChildren = () => runIfFn(localProps.children, api);
2433
2438
  return web.createComponent(PaginationProvider, {
2434
2439
  value: api,
2435
2440
  get children() {
@@ -2443,9 +2448,9 @@ const Pagination$1 = props => {
2443
2448
  };
2444
2449
 
2445
2450
  const PaginationEllipsis = props => {
2446
- const [ellipsisProps, restProps] = createSplitProps()(props, ['index']);
2451
+ const [ellipsisProps, localProps] = createSplitProps()(props, ['index']);
2447
2452
  const api = usePaginationContext();
2448
- const mergedProps = solid.mergeProps(() => api().getEllipsisProps(ellipsisProps), restProps);
2453
+ const mergedProps = solid.mergeProps(() => api().getEllipsisProps(ellipsisProps), localProps);
2449
2454
  return web.createComponent(ark.div, mergedProps);
2450
2455
  };
2451
2456
 
@@ -2495,8 +2500,8 @@ const usePinInput = props => {
2495
2500
 
2496
2501
  const _tmpl$$6 = /*#__PURE__*/web.template(`<input>`);
2497
2502
  const PinInput$1 = props => {
2498
- const [pinInputProps, localProps] = createSplitProps()(props, ['autoFocus', 'blurOnComplete', 'dir', 'disabled', 'form', 'getRootNode', 'id', 'ids', 'invalid', 'mask', 'name', 'onValueChange', 'onValueComplete', 'onValueInvalid', 'otp', 'pattern', 'placeholder', 'selectOnFocus', 'translations', 'type', 'value']);
2499
- const api = usePinInput(pinInputProps);
2503
+ const [usePinInputProps, localProps] = createSplitProps()(props, ['autoFocus', 'blurOnComplete', 'dir', 'disabled', 'form', 'getRootNode', 'id', 'ids', 'invalid', 'mask', 'name', 'onValueChange', 'onValueComplete', 'onValueInvalid', 'otp', 'pattern', 'placeholder', 'selectOnFocus', 'translations', 'type', 'value']);
2504
+ const api = usePinInput(usePinInputProps);
2500
2505
  const mergedProps = solid.mergeProps(() => api().rootProps, localProps);
2501
2506
  return web.createComponent(PinInputProvider, {
2502
2507
  value: api,
@@ -2615,7 +2620,7 @@ const PopoverContent = props => {
2615
2620
  const PopoverDescription = props => {
2616
2621
  const api = usePopoverContext();
2617
2622
  const mergedProps = solid.mergeProps(() => api().descriptionProps, props);
2618
- return web.createComponent(ark.div, mergedProps);
2623
+ return web.createComponent(ark.p, mergedProps);
2619
2624
  };
2620
2625
 
2621
2626
  const PopoverIndicator = props => {
@@ -2669,6 +2674,106 @@ const Popover = Object.assign(Popover$1, {
2669
2674
  Trigger: PopoverTrigger
2670
2675
  });
2671
2676
 
2677
+ const [ProgressProvider, useProgressContext] = createContext({
2678
+ hookName: 'useProgressContext',
2679
+ providerName: '<ProgressProvider />'
2680
+ });
2681
+
2682
+ const useProgress = props => {
2683
+ const getRootNode = useEnvironmentContext();
2684
+ const context = solid.mergeProps({
2685
+ id: solidJs.createUniqueId(),
2686
+ getRootNode
2687
+ }, props);
2688
+ const [state, send] = solid.useMachine(progress__namespace.machine(context), {
2689
+ context
2690
+ });
2691
+ return solidJs.createMemo(() => progress__namespace.connect(state, send, solid.normalizeProps));
2692
+ };
2693
+
2694
+ const Progress$1 = props => {
2695
+ const [progressProps, localProps] = createSplitProps()(props, ['dir', 'getRootNode', 'id', 'max', 'min', 'orientation', 'translations', 'value']);
2696
+ const api = useProgress(progressProps);
2697
+ const mergedProps = solid.mergeProps(() => api().rootProps, localProps);
2698
+ const getChildren = () => runIfFn(localProps.children, api);
2699
+ return web.createComponent(ProgressProvider, {
2700
+ value: api,
2701
+ get children() {
2702
+ return web.createComponent(ark.div, web.mergeProps(mergedProps, {
2703
+ get children() {
2704
+ return getChildren();
2705
+ }
2706
+ }));
2707
+ }
2708
+ });
2709
+ };
2710
+
2711
+ const ProgressCircle = props => {
2712
+ const api = useProgressContext();
2713
+ const mergedProps = solid.mergeProps(() => api().circleProps, props);
2714
+ return web.createComponent(ark.svg, mergedProps);
2715
+ };
2716
+
2717
+ const ProgressCircleRange = props => {
2718
+ const api = useProgressContext();
2719
+ const mergedProps = solid.mergeProps(() => api().circleRangeProps, props);
2720
+ return web.createComponent(ark.circle, mergedProps);
2721
+ };
2722
+
2723
+ const ProgressCircleTrack = props => {
2724
+ const api = useProgressContext();
2725
+ const mergedProps = solid.mergeProps(() => api().circleTrackProps, props);
2726
+ return web.createComponent(ark.circle, mergedProps);
2727
+ };
2728
+
2729
+ const ProgressIndicator = props => {
2730
+ const [state, localProps] = createSplitProps()(props, ['state']);
2731
+ const api = useProgressContext();
2732
+ const mergedProps = solid.mergeProps(() => api().getIndicatorProps(state), localProps);
2733
+ return web.createComponent(ark.span, mergedProps);
2734
+ };
2735
+
2736
+ const ProgressLabel = props => {
2737
+ const api = useProgressContext();
2738
+ const mergedProps = solid.mergeProps(() => api().labelProps, props);
2739
+ return web.createComponent(ark.label, mergedProps);
2740
+ };
2741
+
2742
+ const ProgressRange = props => {
2743
+ const api = useProgressContext();
2744
+ const mergedProps = solid.mergeProps(() => api().rangeProps, props);
2745
+ return web.createComponent(ark.div, mergedProps);
2746
+ };
2747
+
2748
+ const ProgressTrack = props => {
2749
+ const api = useProgressContext();
2750
+ const mergedProps = solid.mergeProps(() => api().trackProps, props);
2751
+ return web.createComponent(ark.div, mergedProps);
2752
+ };
2753
+
2754
+ const ProgressValueText = props => {
2755
+ const api = useProgressContext();
2756
+ const mergedProps = solid.mergeProps(() => api().valueTextProps, props);
2757
+ const getChildren = () => runIfFn(props.children, () => api().valueAsString);
2758
+ return web.createComponent(ark.span, web.mergeProps(mergedProps, {
2759
+ get children() {
2760
+ return getChildren() || api().valueAsString;
2761
+ }
2762
+ }));
2763
+ };
2764
+
2765
+ const Progress = Object.assign(Progress$1, {
2766
+ Root: Progress$1,
2767
+ Label: ProgressLabel,
2768
+ Track: ProgressTrack,
2769
+ Range: ProgressRange,
2770
+ ValueText: ProgressValueText,
2771
+ Indicator: ProgressIndicator,
2772
+ Circle: ProgressCircle,
2773
+ CircleTrack: ProgressCircleTrack,
2774
+ CircleRange: ProgressCircleRange
2775
+ });
2776
+
2672
2777
  const [RadioGroupProvider, useRadioGroupContext] = createContext({
2673
2778
  hookName: 'useRadioGroupContext',
2674
2779
  providerName: '<RadioGroupProvider />'
@@ -2704,19 +2809,25 @@ const RadioGroupIndicator = props => {
2704
2809
  return web.createComponent(ark.div, mergedProps);
2705
2810
  };
2706
2811
 
2707
- const [RadioProvider, useRadioGroupItemContext] = createContext({
2812
+ const [RadioGroupItemProvider, useRadioGroupItemContext] = createContext({
2708
2813
  hookName: 'useRadioGroupItemContext',
2709
- providerName: '<RadioProvider />'
2814
+ providerName: '<RadioGroupItemProvider />'
2710
2815
  });
2711
2816
 
2712
2817
  const RadioGroupItem = props => {
2713
- const [itemProps, restProps] = createSplitProps()(props, ['value', 'disabled', 'invalid']);
2818
+ const [itemProps, localProps] = createSplitProps()(props, ['value', 'disabled', 'invalid']);
2714
2819
  const api = useRadioGroupContext();
2715
- const mergedProps = solid.mergeProps(() => api().getItemProps(itemProps), restProps);
2716
- return web.createComponent(RadioProvider, {
2820
+ const mergedProps = solid.mergeProps(() => api().getItemProps(itemProps), localProps);
2821
+ const itemState = api().getItemState(itemProps);
2822
+ const getChildren = () => runIfFn(localProps.children, itemState);
2823
+ return web.createComponent(RadioGroupItemProvider, {
2717
2824
  value: itemProps,
2718
2825
  get children() {
2719
- return web.createComponent(ark.label, mergedProps);
2826
+ return web.createComponent(ark.label, web.mergeProps(mergedProps, {
2827
+ get children() {
2828
+ return getChildren();
2829
+ }
2830
+ }));
2720
2831
  }
2721
2832
  });
2722
2833
  };
@@ -2773,8 +2884,8 @@ const useRatingGroup = props => {
2773
2884
  };
2774
2885
 
2775
2886
  const RatingGroup$1 = props => {
2776
- const [ratingParams, localProps] = createSplitProps()(props, ['allowHalf', 'autoFocus', 'count', 'dir', 'disabled', 'form', 'getRootNode', 'id', 'ids', 'name', 'onHoverChange', 'onValueChange', 'readOnly', 'translations', 'value']);
2777
- const api = useRatingGroup(ratingParams);
2887
+ const [useRatingProps, localProps] = createSplitProps()(props, ['allowHalf', 'autoFocus', 'count', 'dir', 'disabled', 'form', 'getRootNode', 'id', 'ids', 'name', 'onHoverChange', 'onValueChange', 'readOnly', 'translations', 'value']);
2888
+ const api = useRatingGroup(useRatingProps);
2778
2889
  const mergedProps = solid.mergeProps(() => api().rootProps, localProps);
2779
2890
  return web.createComponent(RatingGroupProvider, {
2780
2891
  value: api,
@@ -2787,8 +2898,8 @@ const RatingGroup$1 = props => {
2787
2898
  const _tmpl$$4 = /*#__PURE__*/web.template(`<input>`);
2788
2899
  const RatingGroupControl = props => {
2789
2900
  const api = useRatingGroupContext();
2790
- const getChildren = () => runIfFn(props.children, api);
2791
2901
  const mergedProps = solid.mergeProps(() => api().controlProps, props);
2902
+ const getChildren = () => runIfFn(props.children, api);
2792
2903
  return [web.createComponent(ark.div, web.mergeProps(mergedProps, {
2793
2904
  get children() {
2794
2905
  return getChildren();
@@ -2808,11 +2919,11 @@ const [RatingGroupItemProvider, useRatingGroupItemContext] = createContext({
2808
2919
  const RatingGroupItem = props => {
2809
2920
  const [itemProps, localProps] = createSplitProps()(props, ['index']);
2810
2921
  const api = useRatingGroupContext();
2922
+ const mergedProps = solid.mergeProps(() => api().getItemProps(itemProps), localProps);
2811
2923
  const itemState = solidJs.createMemo(() => api().getItemState(itemProps));
2812
2924
  const getChildren = () => runIfFn(localProps.children, itemState);
2813
- const mergedProps = solid.mergeProps(() => api().getItemProps(itemProps), localProps);
2814
2925
  return web.createComponent(RatingGroupItemProvider, {
2815
- value: itemState,
2926
+ value: itemProps,
2816
2927
  get children() {
2817
2928
  return web.createComponent(ark.span, web.mergeProps(mergedProps, {
2818
2929
  get children() {
@@ -2871,19 +2982,25 @@ const SegmentGroupIndicator = props => {
2871
2982
  return web.createComponent(ark.div, mergedProps);
2872
2983
  };
2873
2984
 
2874
- const [SegmentProvider, useSegmentGroupItemContext] = createContext({
2985
+ const [SegmentGroupItemProvider, useSegmentGroupItemContext] = createContext({
2875
2986
  hookName: 'useSegmentGroupItemContext',
2876
- providerName: '<SegmentProvider />'
2987
+ providerName: '<SegmentGroupItemProvider />'
2877
2988
  });
2878
2989
 
2879
2990
  const SegmentGroupItem = props => {
2880
- const [itemProps, restProps] = createSplitProps()(props, ['value', 'disabled', 'invalid']);
2991
+ const [itemProps, localProps] = createSplitProps()(props, ['value', 'disabled', 'invalid']);
2881
2992
  const api = useSegmentGroupContext();
2882
- const mergedProps = solid.mergeProps(() => api().getItemProps(itemProps), anatomy.segmentGroupAnatomy.build().item.attrs, restProps);
2883
- return web.createComponent(SegmentProvider, {
2993
+ const mergedProps = solid.mergeProps(() => api().getItemProps(itemProps), anatomy.segmentGroupAnatomy.build().item.attrs, localProps);
2994
+ const itemState = api().getItemState(itemProps);
2995
+ const getChildren = () => runIfFn(localProps.children, itemState);
2996
+ return web.createComponent(SegmentGroupItemProvider, {
2884
2997
  value: itemProps,
2885
2998
  get children() {
2886
- return web.createComponent(ark.label, mergedProps);
2999
+ return web.createComponent(ark.label, web.mergeProps(mergedProps, {
3000
+ get children() {
3001
+ return getChildren();
3002
+ }
3003
+ }));
2887
3004
  }
2888
3005
  });
2889
3006
  };
@@ -2930,14 +3047,14 @@ const [SelectProvider, useSelectContext] = createContext({
2930
3047
 
2931
3048
  const useSelect = props => {
2932
3049
  const [collectionOptions, rest] = createSplitProps()(props, ['isItemDisabled', 'itemToValue', 'itemToString', 'items']);
2933
- const collection = select__namespace.collection(collectionOptions);
3050
+ const collection = () => select__namespace.collection(collectionOptions);
2934
3051
  const getRootNode = useEnvironmentContext();
2935
- const context = solid.mergeProps({
3052
+ const context = () => solid.mergeProps({
2936
3053
  id: solidJs.createUniqueId(),
2937
3054
  getRootNode,
2938
- collection
3055
+ collection: collection()
2939
3056
  }, rest);
2940
- const [state, send] = solid.useMachine(select__namespace.machine(context), {
3057
+ const [state, send] = solid.useMachine(select__namespace.machine(context()), {
2941
3058
  context
2942
3059
  });
2943
3060
  return solidJs.createMemo(() => select__namespace.connect(state, send, solid.normalizeProps));
@@ -2947,16 +3064,16 @@ const Select$1 = props => {
2947
3064
  const [presenceProps, selectProps] = splitPresenceProps(props);
2948
3065
  const [useSelectProps, localProps] = createSplitProps()(selectProps, ['closeOnSelect', 'dir', 'disabled', 'form', 'getRootNode', 'highlightedValue', 'id', 'ids', 'invalid', 'isItemDisabled', 'items', 'itemToString', 'itemToValue', 'loop', 'multiple', 'name', 'onFocusOutside', 'onHighlightChange', 'onInteractOutside', 'onOpenChange', 'onPointerDownOutside', 'onValueChange', 'open', 'positioning', 'readOnly', 'selectOnBlur', 'value']);
2949
3066
  const api = useSelect(useSelectProps);
2950
- const apiPresence = usePresence(solid.mergeProps(presenceProps, () => ({
3067
+ const presenceApi = usePresence(solid.mergeProps(() => ({
2951
3068
  present: api().isOpen
2952
- })));
3069
+ }), presenceProps));
2953
3070
  const mergedProps = solid.mergeProps(() => api().rootProps, localProps);
2954
3071
  const getChildren = () => runIfFn(localProps.children, api);
2955
3072
  return web.createComponent(SelectProvider, {
2956
3073
  value: api,
2957
3074
  get children() {
2958
3075
  return web.createComponent(PresenceProvider, {
2959
- value: apiPresence,
3076
+ value: presenceApi,
2960
3077
  get children() {
2961
3078
  return web.createComponent(ark.div, web.mergeProps(mergedProps, {
2962
3079
  get children() {
@@ -3014,7 +3131,7 @@ const SelectControl = props => {
3014
3131
 
3015
3132
  const SelectIndicator = props => {
3016
3133
  const api = useSelectContext();
3017
- const mergedProps = solid.mergeProps(() => api().controlProps, props);
3134
+ const mergedProps = solid.mergeProps(() => api().indicatorProps, props);
3018
3135
  return web.createComponent(ark.div, mergedProps);
3019
3136
  };
3020
3137
 
@@ -3041,9 +3158,9 @@ const SelectItem = props => {
3041
3158
  };
3042
3159
 
3043
3160
  const SelectItemGroup = props => {
3044
- const [groupProps, localProps] = createSplitProps()(props, ['id']);
3161
+ const [itemGroupProps, localProps] = createSplitProps()(props, ['id']);
3045
3162
  const api = useSelectContext();
3046
- const mergedProps = solid.mergeProps(() => api().getItemGroupProps(groupProps), localProps);
3163
+ const mergedProps = solid.mergeProps(() => api().getItemGroupProps(itemGroupProps), localProps);
3047
3164
  return web.createComponent(ark.div, mergedProps);
3048
3165
  };
3049
3166
 
@@ -3296,9 +3413,9 @@ const useSwitch = props => {
3296
3413
  };
3297
3414
 
3298
3415
  const Switch$1 = props => {
3299
- const [switchProps, labelProps] = createSplitProps()(props, ['checked', 'dir', 'disabled', 'form', 'getRootNode', 'id', 'ids', 'invalid', 'label', 'name', 'onCheckedChange', 'required', 'value']);
3416
+ const [switchProps, localProps] = createSplitProps()(props, ['checked', 'dir', 'disabled', 'form', 'getRootNode', 'id', 'ids', 'invalid', 'label', 'name', 'onCheckedChange', 'required', 'value']);
3300
3417
  const api = useSwitch(switchProps);
3301
- const mergedProps = solid.mergeProps(() => api().rootProps, labelProps);
3418
+ const mergedProps = solid.mergeProps(() => api().rootProps, localProps);
3302
3419
  const getChildren = () => runIfFn(props.children, api);
3303
3420
  return web.createComponent(SwitchProvider, {
3304
3421
  value: api,
@@ -3324,14 +3441,14 @@ const SwitchControl = props => {
3324
3441
  };
3325
3442
 
3326
3443
  const SwitchLabel = props => {
3327
- const checkbox = useSwitchContext();
3328
- const mergedProps = solid.mergeProps(() => checkbox().labelProps, props);
3444
+ const api = useSwitchContext();
3445
+ const mergedProps = solid.mergeProps(() => api().labelProps, props);
3329
3446
  return web.createComponent(ark.span, mergedProps);
3330
3447
  };
3331
3448
 
3332
3449
  const SwitchThumb = props => {
3333
- const checkbox = useSwitchContext();
3334
- const mergedProps = solid.mergeProps(() => checkbox().thumbProps, props);
3450
+ const api = useSwitchContext();
3451
+ const mergedProps = solid.mergeProps(() => api().thumbProps, props);
3335
3452
  return web.createComponent(ark.span, mergedProps);
3336
3453
  };
3337
3454
 
@@ -3550,6 +3667,10 @@ const [ToastProvider, useToastContext] = createContext({
3550
3667
  providerName: '<ToastProvider />'
3551
3668
  });
3552
3669
 
3670
+ const ToastGroup = props => {
3671
+ return web.createComponent(ark.ol, props);
3672
+ };
3673
+
3553
3674
  const createToaster = props => {
3554
3675
  const service = toast__namespace.group.machine({
3555
3676
  id: '1',
@@ -3568,7 +3689,7 @@ const createToaster = props => {
3568
3689
  const mergedProps = solid.mergeProps(() => api().getGroupProps({
3569
3690
  placement: props.placement
3570
3691
  }), toasterProps);
3571
- return web.createComponent(ark.ol, web.mergeProps(mergedProps, {
3692
+ return web.createComponent(ToastGroup, web.mergeProps(mergedProps, {
3572
3693
  get children() {
3573
3694
  return web.createComponent(solidJs.Index, {
3574
3695
  get each() {
@@ -3622,9 +3743,10 @@ const ToastTitle = props => {
3622
3743
 
3623
3744
  const Toast = Object.assign(Toast$1, {
3624
3745
  Root: Toast$1,
3625
- Title: ToastTitle,
3746
+ CloseTrigger: ToastCloseTrigger,
3626
3747
  Description: ToastDescription,
3627
- CloseTrigger: ToastCloseTrigger
3748
+ Group: ToastGroup,
3749
+ Title: ToastTitle
3628
3750
  });
3629
3751
 
3630
3752
  const [ToggleGroupProvider, useToggleGroupContext] = createContext({
@@ -3865,7 +3987,7 @@ exports.FileUploadItem = FileUploadItem;
3865
3987
  exports.FileUploadItemDeleteTrigger = FileUploadItemDeleteTrigger;
3866
3988
  exports.FileUploadItemGroup = FileUploadItemGroup;
3867
3989
  exports.FileUploadItemName = FileUploadItemName;
3868
- exports.FileUploadItemPreview = FileUploadItemPreview;
3990
+ exports.FileUploadItemPreviewImage = FileUploadItemPreviewImage;
3869
3991
  exports.FileUploadItemSizeText = FileUploadItemSizeText;
3870
3992
  exports.FileUploadLabel = FileUploadLabel;
3871
3993
  exports.FileUploadTrigger = FileUploadTrigger;
@@ -3918,6 +4040,15 @@ exports.PopoverTrigger = PopoverTrigger;
3918
4040
  exports.Presence = Presence;
3919
4041
  exports.PresencePropsProvider = PresencePropsProvider;
3920
4042
  exports.PresenceProvider = PresenceProvider;
4043
+ exports.Progress = Progress;
4044
+ exports.ProgressCircle = ProgressCircle;
4045
+ exports.ProgressCircleRange = ProgressCircleRange;
4046
+ exports.ProgressCircleTrack = ProgressCircleTrack;
4047
+ exports.ProgressIndicator = ProgressIndicator;
4048
+ exports.ProgressLabel = ProgressLabel;
4049
+ exports.ProgressRange = ProgressRange;
4050
+ exports.ProgressTrack = ProgressTrack;
4051
+ exports.ProgressValueText = ProgressValueText;
3921
4052
  exports.RadioGroup = RadioGroup;
3922
4053
  exports.RadioGroupItem = RadioGroupItem;
3923
4054
  exports.RadioGroupItemControl = RadioGroupItemControl;
@@ -3980,6 +4111,7 @@ exports.TagsInputLabel = TagsInputLabel;
3980
4111
  exports.Toast = Toast;
3981
4112
  exports.ToastCloseTrigger = ToastCloseTrigger;
3982
4113
  exports.ToastDescription = ToastDescription;
4114
+ exports.ToastGroup = ToastGroup;
3983
4115
  exports.ToastTitle = ToastTitle;
3984
4116
  exports.ToggleGroup = ToggleGroup;
3985
4117
  exports.ToggleGroupItem = ToggleGroupItem;
@@ -4018,6 +4150,7 @@ exports.usePopoverContext = usePopoverContext;
4018
4150
  exports.usePresence = usePresence;
4019
4151
  exports.usePresenceContext = usePresenceContext;
4020
4152
  exports.usePresencePropsContext = usePresencePropsContext;
4153
+ exports.useProgressContext = useProgressContext;
4021
4154
  exports.useRadioGroupContext = useRadioGroupContext;
4022
4155
  exports.useRadioGroupItemContext = useRadioGroupItemContext;
4023
4156
  exports.useRatingGroupContext = useRatingGroupContext;