@ark-ui/solid 3.10.0 → 3.12.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 (28) hide show
  1. package/dist/cjs/index.js +426 -323
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/esm/index.js +423 -323
  4. package/dist/esm/index.js.map +1 -1
  5. package/dist/source/components/file-upload/file-upload-root.jsx +1 -0
  6. package/dist/source/components/file-upload/use-file-upload.js +1 -0
  7. package/dist/source/components/frame/frame-content.jsx +11 -0
  8. package/dist/source/components/frame/frame.jsx +78 -0
  9. package/dist/source/components/frame/index.js +1 -0
  10. package/dist/source/components/highlight/use-highlight.js +2 -39
  11. package/dist/source/components/index.js +3 -2
  12. package/dist/source/components/timer/index.js +6 -4
  13. package/dist/source/components/timer/timer-area.jsx +8 -0
  14. package/dist/source/components/timer/timer-control.jsx +8 -0
  15. package/dist/source/components/timer/timer-root.jsx +1 -0
  16. package/dist/source/components/timer/timer.js +4 -2
  17. package/dist/source/utils/compose-refs.js +13 -0
  18. package/dist/types/components/frame/frame-content.d.ts +8 -0
  19. package/dist/types/components/frame/frame.d.ts +13 -0
  20. package/dist/types/components/frame/index.d.ts +2 -0
  21. package/dist/types/components/highlight/use-highlight.d.ts +3 -28
  22. package/dist/types/components/index.d.ts +3 -2
  23. package/dist/types/components/timer/index.d.ts +7 -5
  24. package/dist/types/components/timer/timer-area.d.ts +6 -0
  25. package/dist/types/components/timer/timer-control.d.ts +6 -0
  26. package/dist/types/components/timer/timer.d.ts +6 -4
  27. package/dist/types/utils/compose-refs.d.ts +3 -0
  28. package/package.json +59 -56
package/dist/cjs/index.js CHANGED
@@ -19,6 +19,7 @@ var domQuery = require('@zag-js/dom-query');
19
19
  var anatomy = require('@zag-js/anatomy');
20
20
  var fileUpload$1 = require('@zag-js/file-upload');
21
21
  var i18nUtils = require('@zag-js/i18n-utils');
22
+ var highlightWord = require('@zag-js/highlight-word');
22
23
  var hoverCard$1 = require('@zag-js/hover-card');
23
24
  var menu$1 = require('@zag-js/menu');
24
25
  var numberInput$1 = require('@zag-js/number-input');
@@ -33,17 +34,17 @@ var select$1 = require('@zag-js/select');
33
34
  var signaturePad$1 = require('@zag-js/signature-pad');
34
35
  var slider$1 = require('@zag-js/slider');
35
36
  var splitter$1 = require('@zag-js/splitter');
37
+ var steps$1 = require('@zag-js/steps');
36
38
  var zagSwitch = require('@zag-js/switch');
37
39
  var tabs$1 = require('@zag-js/tabs');
38
40
  var tagsInput$1 = require('@zag-js/tags-input');
39
41
  var date = require('@internationalized/date');
40
42
  var timePicker$1 = require('@zag-js/time-picker');
43
+ var timer$1 = require('@zag-js/timer');
41
44
  var toast$1 = require('@zag-js/toast');
42
45
  var toggleGroup$1 = require('@zag-js/toggle-group');
43
46
  var tooltip$1 = require('@zag-js/tooltip');
44
47
  var treeView$1 = require('@zag-js/tree-view');
45
- var timer$1 = require('@zag-js/timer');
46
- var steps$1 = require('@zag-js/steps');
47
48
 
48
49
  function _interopNamespaceDefault(e) {
49
50
  var n = Object.create(null);
@@ -89,16 +90,16 @@ var select__namespace = /*#__PURE__*/_interopNamespaceDefault(select$1);
89
90
  var signaturePad__namespace = /*#__PURE__*/_interopNamespaceDefault(signaturePad$1);
90
91
  var slider__namespace = /*#__PURE__*/_interopNamespaceDefault(slider$1);
91
92
  var splitter__namespace = /*#__PURE__*/_interopNamespaceDefault(splitter$1);
93
+ var steps__namespace = /*#__PURE__*/_interopNamespaceDefault(steps$1);
92
94
  var zagSwitch__namespace = /*#__PURE__*/_interopNamespaceDefault(zagSwitch);
93
95
  var tabs__namespace = /*#__PURE__*/_interopNamespaceDefault(tabs$1);
94
96
  var tagsInput__namespace = /*#__PURE__*/_interopNamespaceDefault(tagsInput$1);
95
97
  var timePicker__namespace = /*#__PURE__*/_interopNamespaceDefault(timePicker$1);
98
+ var timer__namespace = /*#__PURE__*/_interopNamespaceDefault(timer$1);
96
99
  var toast__namespace = /*#__PURE__*/_interopNamespaceDefault(toast$1);
97
100
  var toggleGroup__namespace = /*#__PURE__*/_interopNamespaceDefault(toggleGroup$1);
98
101
  var tooltip__namespace = /*#__PURE__*/_interopNamespaceDefault(tooltip$1);
99
102
  var treeView__namespace = /*#__PURE__*/_interopNamespaceDefault(treeView$1);
100
- var timer__namespace = /*#__PURE__*/_interopNamespaceDefault(timer$1);
101
- var steps__namespace = /*#__PURE__*/_interopNamespaceDefault(steps$1);
102
103
 
103
104
  function getErrorMessage(hook, provider) {
104
105
  return `${hook} returned \`undefined\`. Seems you forgot to wrap component within ${provider}`;
@@ -209,7 +210,7 @@ const [EnvironmentContextProvider, useEnvironmentContext] = createContext({
209
210
  })
210
211
  });
211
212
 
212
- var _tmpl$$6 = /*#__PURE__*/web.template(`<span hidden>`);
213
+ var _tmpl$$7 = /*#__PURE__*/web.template(`<span hidden>`);
213
214
  const EnvironmentProvider = props => {
214
215
  const [spanRef, setSpanRef] = solidJs.createSignal();
215
216
  const getRootNode = () => runIfFn(props.value) ?? spanRef()?.ownerDocument ?? document;
@@ -226,7 +227,7 @@ const EnvironmentProvider = props => {
226
227
  return !props.value;
227
228
  },
228
229
  get children() {
229
- var _el$ = _tmpl$$6();
230
+ var _el$ = _tmpl$$7();
230
231
  web.use(setSpanRef, _el$);
231
232
  return _el$;
232
233
  }
@@ -2002,7 +2003,7 @@ const DatePickerLabel = props => {
2002
2003
  return web.createComponent(ark.label, mergedProps);
2003
2004
  };
2004
2005
 
2005
- var _tmpl$$5 = /*#__PURE__*/web.template(`<option>`);
2006
+ var _tmpl$$6 = /*#__PURE__*/web.template(`<option>`);
2006
2007
  const DatePickerMonthSelect = props => {
2007
2008
  const api = useDatePickerContext();
2008
2009
  const mergedProps = solid.mergeProps(() => api().getMonthSelectProps(), props);
@@ -2013,7 +2014,7 @@ const DatePickerMonthSelect = props => {
2013
2014
  return api().getMonths();
2014
2015
  },
2015
2016
  children: month => (() => {
2016
- var _el$ = _tmpl$$5();
2017
+ var _el$ = _tmpl$$6();
2017
2018
  web.insert(_el$, () => month.label);
2018
2019
  web.effect(() => _el$.value = month.value);
2019
2020
  return _el$;
@@ -2281,7 +2282,7 @@ const DatePickerViewTrigger = props => {
2281
2282
  return web.createComponent(ark.button, mergedProps);
2282
2283
  };
2283
2284
 
2284
- var _tmpl$$4 = /*#__PURE__*/web.template(`<option>`);
2285
+ var _tmpl$$5 = /*#__PURE__*/web.template(`<option>`);
2285
2286
  const DatePickerYearSelect = props => {
2286
2287
  const api = useDatePickerContext();
2287
2288
  const mergedProps = solid.mergeProps(() => api().getYearSelectProps(), props);
@@ -2295,7 +2296,7 @@ const DatePickerYearSelect = props => {
2295
2296
  });
2296
2297
  },
2297
2298
  children: year => (() => {
2298
- var _el$ = _tmpl$$4();
2299
+ var _el$ = _tmpl$$5();
2299
2300
  _el$.value = year;
2300
2301
  web.insert(_el$, year);
2301
2302
  return _el$;
@@ -2749,6 +2750,7 @@ const useFileUpload = props => {
2749
2750
  dir: locale().dir,
2750
2751
  disabled: field?.().disabled,
2751
2752
  required: field?.().required,
2753
+ invalid: field?.().invalid,
2752
2754
  getRootNode: environment().getRootNode,
2753
2755
  ...props
2754
2756
  }));
@@ -2759,7 +2761,7 @@ const useFileUpload = props => {
2759
2761
  };
2760
2762
 
2761
2763
  const FileUploadRoot = props => {
2762
- const [fileUploadProps, localProps] = createSplitProps()(props, ['accept', 'allowDrop', 'capture', 'directory', 'disabled', 'id', 'ids', 'locale', 'maxFiles', 'maxFileSize', 'minFileSize', 'name', 'onFileAccept', 'onFileChange', 'onFileReject', 'required', 'translations', 'validate']);
2764
+ const [fileUploadProps, localProps] = createSplitProps()(props, ['accept', 'allowDrop', 'capture', 'directory', 'disabled', 'id', 'ids', 'invalid', 'locale', 'maxFiles', 'maxFileSize', 'minFileSize', 'name', 'onFileAccept', 'onFileChange', 'onFileReject', 'required', 'translations', 'validate']);
2763
2765
  const fileUpload = useFileUpload(fileUploadProps);
2764
2766
  const mergedProps = solid.mergeProps(() => fileUpload().getRootProps(), localProps);
2765
2767
  return web.createComponent(FileUploadProvider, {
@@ -2827,48 +2829,132 @@ var format = /*#__PURE__*/Object.freeze({
2827
2829
  Number: FormatNumber
2828
2830
  });
2829
2831
 
2830
- const escapeRegexp = term => term.replace(/[|\\{}()[\]^$+*?.-]/g, char => `\\${char}`);
2831
- const buildRegex = (queryProp, flags) => {
2832
- const query = queryProp.filter(Boolean).map(text => escapeRegexp(text));
2833
- return new RegExp(`(${query.join('|')})`, flags);
2832
+ const isRefFn = ref => typeof ref === 'function';
2833
+ function setRef(ref, value) {
2834
+ if (isRefFn(ref)) {
2835
+ ref(value);
2836
+ }
2837
+ }
2838
+ function composeRefs(...refs) {
2839
+ return node => {
2840
+ for (const ref of refs) {
2841
+ setRef(ref, node);
2842
+ }
2843
+ };
2844
+ }
2845
+
2846
+ const FrameContent = props => {
2847
+ const {
2848
+ onMount,
2849
+ onUnmount,
2850
+ children
2851
+ } = props;
2852
+ solidJs.createEffect(() => {
2853
+ onMount?.();
2854
+ solidJs.onCleanup(() => {
2855
+ onUnmount?.();
2856
+ });
2857
+ });
2858
+ return children;
2834
2859
  };
2835
- const getRegexFlags = (ignoreCase = true, matchAll = true) => `${ignoreCase ? 'i' : ''}${matchAll ? 'g' : ''}`;
2836
- const normalizeSpan = (spans, len) => {
2837
- const result = [];
2838
- const append = (start, end, match) => {
2839
- if (end - start > 0) result.push({
2840
- start,
2841
- end,
2842
- match
2860
+
2861
+ var _tmpl$$4 = /*#__PURE__*/web.template(`<iframe>`);
2862
+ const resetStyle = '<style>*,*::before,*::after { margin: 0; padding: 0; box-sizing: border-box; }</style>';
2863
+ const initialSrcDoc = `<html><head>${resetStyle}</head><body><div class="frame-root"></div></body></html>`;
2864
+ function getMountNode(frame) {
2865
+ const doc = frame.contentWindow?.document;
2866
+ if (!doc) return null;
2867
+ return doc.body.querySelector('.frame-root') || doc.body;
2868
+ }
2869
+ const Frame = props => {
2870
+ const [frameProps, localProps] = solidJs.splitProps(props, ['children', 'head', 'onMount', 'onUnmount', 'srcdoc']);
2871
+ const srcdoc = solidJs.createMemo(() => frameProps.srcdoc ?? initialSrcDoc);
2872
+ const [frameRef, setFrameRef] = solidJs.createSignal(null);
2873
+ const [mountNode, setMountNode] = solidJs.createSignal(null);
2874
+ solidJs.createEffect(() => {
2875
+ const frame = frameRef();
2876
+ if (!frame) return;
2877
+ const doc = frame.contentWindow?.document;
2878
+ if (!doc) return;
2879
+ doc.open();
2880
+ doc.write(srcdoc());
2881
+ doc.close();
2882
+ setMountNode(getMountNode(frame));
2883
+ });
2884
+ solidJs.createEffect(() => {
2885
+ const frame = frameRef();
2886
+ if (!frame || !frame.contentDocument) return;
2887
+ const win = frame.contentWindow;
2888
+ if (!win) return;
2889
+ const node = getMountNode(frame);
2890
+ if (!node) return;
2891
+ const exec = () => {
2892
+ const rootEl = frame.contentDocument?.documentElement;
2893
+ if (!rootEl) return;
2894
+ frame.style.setProperty('--width', `${node.scrollWidth}px`);
2895
+ frame.style.setProperty('--height', `${node.scrollHeight}px`);
2896
+ };
2897
+ const resizeObserver = new win.ResizeObserver(exec);
2898
+ exec();
2899
+ if (frame.contentDocument) {
2900
+ resizeObserver.observe(node);
2901
+ }
2902
+ solidJs.onCleanup(() => {
2903
+ resizeObserver.disconnect();
2843
2904
  });
2844
- };
2845
- if (spans.length === 0) {
2846
- append(0, len, false);
2847
- } else {
2848
- let lastIndex = 0;
2849
- for (const chunk of spans) {
2850
- append(lastIndex, chunk.start, false);
2851
- append(chunk.start, chunk.end, true);
2852
- lastIndex = chunk.end;
2853
- }
2854
- append(lastIndex, len, false);
2855
- }
2856
- return result;
2857
- };
2858
- const highlightWords = props => {
2859
- const flags = getRegexFlags(props.ignoreCase, props.matchAll);
2860
- const regex = buildRegex(Array.isArray(props.query) ? props.query : [props.query], flags);
2861
- const spans = [...props.text.matchAll(regex)].map(match => ({
2862
- start: match.index || 0,
2863
- end: (match.index || 0) + match[0].length
2864
- }));
2865
- return normalizeSpan(spans, props.text.length).map(chunk => ({
2866
- text: props.text.slice(chunk.start, chunk.end),
2867
- match: !!chunk.match
2868
- }));
2905
+ });
2906
+ return web.createComponent(EnvironmentProvider, {
2907
+ value: () => frameRef()?.contentDocument ?? document,
2908
+ get children() {
2909
+ var _el$ = _tmpl$$4();
2910
+ var _ref$ = composeRefs(setFrameRef, localProps.ref);
2911
+ typeof _ref$ === "function" && web.use(_ref$, _el$);
2912
+ web.spread(_el$, localProps, false, true);
2913
+ web.insert(_el$, web.createComponent(solidJs.Show, {
2914
+ get when() {
2915
+ return mountNode();
2916
+ },
2917
+ children: node => web.createComponent(web.Portal, {
2918
+ get mount() {
2919
+ return node();
2920
+ },
2921
+ get children() {
2922
+ return web.createComponent(FrameContent, {
2923
+ get onMount() {
2924
+ return frameProps.onMount;
2925
+ },
2926
+ get onUnmount() {
2927
+ return frameProps.onUnmount;
2928
+ },
2929
+ get children() {
2930
+ return frameProps.children;
2931
+ }
2932
+ });
2933
+ }
2934
+ })
2935
+ }), null);
2936
+ web.insert(_el$, web.createComponent(solidJs.Show, {
2937
+ get when() {
2938
+ return mountNode();
2939
+ },
2940
+ get children() {
2941
+ return web.createComponent(web.Portal, {
2942
+ get mount() {
2943
+ return frameRef().contentDocument.head;
2944
+ },
2945
+ get children() {
2946
+ return frameProps.head;
2947
+ }
2948
+ });
2949
+ }
2950
+ }), null);
2951
+ return _el$;
2952
+ }
2953
+ });
2869
2954
  };
2955
+
2870
2956
  const useHighlight = props => {
2871
- return solidJs.createMemo(() => highlightWords(props));
2957
+ return solidJs.createMemo(() => highlightWord.highlightWord(props));
2872
2958
  };
2873
2959
 
2874
2960
  var _tmpl$$3 = /*#__PURE__*/web.template(`<mark>`);
@@ -5042,6 +5128,173 @@ var splitter = /*#__PURE__*/Object.freeze({
5042
5128
  RootProvider: SplitterRootProvider
5043
5129
  });
5044
5130
 
5131
+ const [StepsProvider, useStepsContext] = createContext({
5132
+ hookName: 'useStepsContext',
5133
+ providerName: '<StepsProvider />'
5134
+ });
5135
+
5136
+ const StepsCompletedContent = props => {
5137
+ const steps = useStepsContext();
5138
+ const mergedProps = solid.mergeProps(() => steps().getContentProps({
5139
+ index: steps().count
5140
+ }), props);
5141
+ return web.createComponent(ark.div, mergedProps);
5142
+ };
5143
+
5144
+ const StepsContent = props => {
5145
+ const [itemProps, localProps] = createSplitProps()(props, ['index']);
5146
+ const steps = useStepsContext();
5147
+ const mergedProps = solid.mergeProps(() => steps().getContentProps(itemProps), localProps);
5148
+ return web.createComponent(ark.div, mergedProps);
5149
+ };
5150
+
5151
+ const StepsContext = props => {
5152
+ const context = useStepsContext();
5153
+ return props.children(context);
5154
+ };
5155
+
5156
+ const [StepsItemPropsProvider, useStepsItemPropsContext] = createContext({
5157
+ hookName: 'useStepsItemPropsContext',
5158
+ providerName: '<StepsItemPropsProvider />'
5159
+ });
5160
+
5161
+ const StepsIndicator = props => {
5162
+ const steps = useStepsContext();
5163
+ const itemProps = useStepsItemPropsContext();
5164
+ const mergedProps = solid.mergeProps(() => steps().getIndicatorProps(itemProps), props);
5165
+ return web.createComponent(ark.div, mergedProps);
5166
+ };
5167
+
5168
+ const [StepsItemProvider, useStepsItemContext] = createContext({
5169
+ hookName: 'useStepsItemContext',
5170
+ providerName: '<StepsItem />'
5171
+ });
5172
+
5173
+ const StepsItem = props => {
5174
+ const [itemProps, localProps] = createSplitProps()(props, ['index']);
5175
+ const steps = useStepsContext();
5176
+ const mergedProps = solid.mergeProps(() => steps().getItemProps(itemProps), localProps);
5177
+ const itemState = solidJs.createMemo(() => steps().getItemState(itemProps));
5178
+ return web.createComponent(StepsItemPropsProvider, {
5179
+ value: itemProps,
5180
+ get children() {
5181
+ return web.createComponent(StepsItemProvider, {
5182
+ value: itemState,
5183
+ get children() {
5184
+ return web.createComponent(ark.li, mergedProps);
5185
+ }
5186
+ });
5187
+ }
5188
+ });
5189
+ };
5190
+
5191
+ const StepsItemContext = props => {
5192
+ return props.children(useStepsItemContext());
5193
+ };
5194
+ StepsItemContext.displayName = 'StepsItemContext';
5195
+
5196
+ const StepsList = props => {
5197
+ const steps = useStepsContext();
5198
+ const mergedProps = solid.mergeProps(() => steps().getListProps(), props);
5199
+ return web.createComponent(ark.ol, mergedProps);
5200
+ };
5201
+
5202
+ const StepsNextTrigger = props => {
5203
+ const steps = useStepsContext();
5204
+ const mergedProps = solid.mergeProps(() => steps().getNextTriggerProps(), props);
5205
+ return web.createComponent(ark.button, mergedProps);
5206
+ };
5207
+
5208
+ const StepsPrevTrigger = props => {
5209
+ const steps = useStepsContext();
5210
+ const mergedProps = solid.mergeProps(() => steps().getPrevTriggerProps(), props);
5211
+ return web.createComponent(ark.button, mergedProps);
5212
+ };
5213
+
5214
+ const StepsProgress = props => {
5215
+ const steps = useStepsContext();
5216
+ const mergedProps = solid.mergeProps(() => steps().getProgressProps(), props);
5217
+ return web.createComponent(ark.div, mergedProps);
5218
+ };
5219
+
5220
+ function useSteps(props = {}) {
5221
+ const environment = useEnvironmentContext();
5222
+ const locale = useLocaleContext();
5223
+ const id = solidJs.createUniqueId();
5224
+ const context = solidJs.createMemo(() => ({
5225
+ id,
5226
+ dir: locale().dir,
5227
+ getRootNode: environment().getRootNode,
5228
+ step: props.defaultStep,
5229
+ ...props
5230
+ }));
5231
+ const [state, send] = solid.useMachine(steps__namespace.machine(context()), {
5232
+ context
5233
+ });
5234
+ return solidJs.createMemo(() => steps__namespace.connect(state, send, solid.normalizeProps));
5235
+ }
5236
+
5237
+ const StepsRoot = props => {
5238
+ const [useStepsProps, localProps] = createSplitProps()(props, ['defaultStep', 'id', 'ids', 'count', 'linear', 'onStepChange', 'onStepComplete', 'orientation', 'step']);
5239
+ const steps = useSteps(useStepsProps);
5240
+ const mergedProps = solid.mergeProps(() => steps().getRootProps(), localProps);
5241
+ return web.createComponent(StepsProvider, {
5242
+ value: steps,
5243
+ get children() {
5244
+ return web.createComponent(ark.div, mergedProps);
5245
+ }
5246
+ });
5247
+ };
5248
+
5249
+ const StepsRootProvider = props => {
5250
+ const [{
5251
+ value: steps
5252
+ }, rootProps] = createSplitProps()(props, ['value']);
5253
+ const mergedProps = solid.mergeProps(() => steps().getRootProps(), rootProps);
5254
+ return web.createComponent(StepsProvider, {
5255
+ value: steps,
5256
+ get children() {
5257
+ return web.createComponent(ark.div, web.mergeProps(mergedProps, {
5258
+ get children() {
5259
+ return props.children;
5260
+ }
5261
+ }));
5262
+ }
5263
+ });
5264
+ };
5265
+
5266
+ const StepsSeparator = props => {
5267
+ const steps = useStepsContext();
5268
+ const itemProps = useStepsItemPropsContext();
5269
+ const mergedProps = solid.mergeProps(() => steps().getSeparatorProps(itemProps), props);
5270
+ return web.createComponent(ark.div, mergedProps);
5271
+ };
5272
+
5273
+ const StepsTrigger = props => {
5274
+ const steps = useStepsContext();
5275
+ const itemProps = useStepsItemPropsContext();
5276
+ const mergedProps = solid.mergeProps(() => steps().getTriggerProps(itemProps), props);
5277
+ return web.createComponent(ark.button, mergedProps);
5278
+ };
5279
+
5280
+ var steps = /*#__PURE__*/Object.freeze({
5281
+ __proto__: null,
5282
+ CompletedContent: StepsCompletedContent,
5283
+ Content: StepsContent,
5284
+ Context: StepsContext,
5285
+ Indicator: StepsIndicator,
5286
+ Item: StepsItem,
5287
+ ItemContext: StepsItemContext,
5288
+ List: StepsList,
5289
+ NextTrigger: StepsNextTrigger,
5290
+ PrevTrigger: StepsPrevTrigger,
5291
+ Progress: StepsProgress,
5292
+ Root: StepsRoot,
5293
+ RootProvider: StepsRootProvider,
5294
+ Separator: StepsSeparator,
5295
+ Trigger: StepsTrigger
5296
+ });
5297
+
5045
5298
  const [SwitchProvider, useSwitchContext] = createContext({
5046
5299
  hookName: 'useSwitchContext',
5047
5300
  providerName: '<SwitchProvider />'
@@ -5607,38 +5860,131 @@ var timePicker = /*#__PURE__*/Object.freeze({
5607
5860
  Trigger: TimePickerTrigger
5608
5861
  });
5609
5862
 
5610
- const createToaster = props => {
5611
- const machine = toast__namespace.group.machine({
5612
- id: '1',
5613
- ...props
5614
- });
5615
- const api = toast__namespace.group.connect(machine, machine.send, solid.normalizeProps);
5616
- return {
5617
- ...api,
5618
- machine
5619
- };
5620
- };
5621
-
5622
- const [ToastProvider, useToastContext] = createContext({
5623
- hookName: 'useToastContext',
5624
- providerName: '<ToastProvider />'
5863
+ const [TimerProvider, useTimerContext] = createContext({
5864
+ hookName: 'useTimerContext',
5865
+ providerName: '<TimerProvider />'
5625
5866
  });
5626
5867
 
5627
- const ToastActionTrigger = props => {
5628
- const toast = useToastContext();
5629
- const mergedProps = solid.mergeProps(() => toast().getActionTriggerProps(), props);
5868
+ const TimerActionTrigger = props => {
5869
+ const timer = useTimerContext();
5870
+ const mergedProps = solid.mergeProps(() => timer().getActionTriggerProps(props), props);
5630
5871
  return web.createComponent(ark.button, mergedProps);
5631
5872
  };
5632
5873
 
5633
- const ToastCloseTrigger = props => {
5634
- const toast = useToastContext();
5635
- const mergedProps = solid.mergeProps(() => toast().getCloseTriggerProps(), props);
5636
- return web.createComponent(ark.button, mergedProps);
5874
+ const TimerArea = props => {
5875
+ const timer = useTimerContext();
5876
+ const mergedProps = solid.mergeProps(() => timer().getAreaProps(), props);
5877
+ return web.createComponent(ark.div, mergedProps);
5637
5878
  };
5638
5879
 
5639
- const ToastContext = props => props.children(useToastContext());
5880
+ const TimerContext = props => props.children(useTimerContext());
5640
5881
 
5641
- const ToastDescription = props => {
5882
+ const TimerControl = props => {
5883
+ const timer = useTimerContext();
5884
+ const mergedProps = solid.mergeProps(() => timer().getControlProps(), props);
5885
+ return web.createComponent(ark.div, mergedProps);
5886
+ };
5887
+
5888
+ const TimerItem = props => {
5889
+ const [itemProps, localProps] = createSplitProps()(props, ['type']);
5890
+ const timer = useTimerContext();
5891
+ const mergedProps = solid.mergeProps(() => timer().getItemProps(itemProps), localProps);
5892
+ return web.createComponent(ark.div, web.mergeProps(mergedProps, {
5893
+ get children() {
5894
+ return timer().formattedTime[itemProps.type];
5895
+ }
5896
+ }));
5897
+ };
5898
+
5899
+ const useTimer = props => {
5900
+ const env = useEnvironmentContext();
5901
+ const id = solidJs.createUniqueId();
5902
+ const context = solidJs.createMemo(() => ({
5903
+ id,
5904
+ getRootNode: env().getRootNode,
5905
+ ...props
5906
+ }));
5907
+ const [state, send] = solid.useMachine(timer__namespace.machine(context()), {
5908
+ context
5909
+ });
5910
+ return solidJs.createMemo(() => timer__namespace.connect(state, send, solid.normalizeProps));
5911
+ };
5912
+
5913
+ const TimerRoot = props => {
5914
+ const [useTimerProps, localProps] = createSplitProps()(props, ['id', 'ids', 'autoStart', 'interval', 'countdown', 'startMs', 'targetMs', 'onComplete', 'onTick']);
5915
+ const timer = useTimer(useTimerProps);
5916
+ const mergedProps = solid.mergeProps(() => timer().getRootProps(), localProps);
5917
+ return web.createComponent(TimerProvider, {
5918
+ value: timer,
5919
+ get children() {
5920
+ return web.createComponent(ark.div, mergedProps);
5921
+ }
5922
+ });
5923
+ };
5924
+
5925
+ const TimerRootProvider = props => {
5926
+ const [{
5927
+ value: timer
5928
+ }, localProps] = createSplitProps()(props, ['value']);
5929
+ const mergedProps = solid.mergeProps(() => timer().getRootProps(), localProps);
5930
+ return web.createComponent(TimerProvider, {
5931
+ value: timer,
5932
+ get children() {
5933
+ return web.createComponent(ark.div, mergedProps);
5934
+ }
5935
+ });
5936
+ };
5937
+
5938
+ const TimerSeparator = props => {
5939
+ const timer = useTimerContext();
5940
+ const mergedProps = solid.mergeProps(() => timer().getSeparatorProps(), props);
5941
+ return web.createComponent(ark.div, mergedProps);
5942
+ };
5943
+
5944
+ var timer = /*#__PURE__*/Object.freeze({
5945
+ __proto__: null,
5946
+ ActionTrigger: TimerActionTrigger,
5947
+ Area: TimerArea,
5948
+ Context: TimerContext,
5949
+ Control: TimerControl,
5950
+ Item: TimerItem,
5951
+ Root: TimerRoot,
5952
+ RootProvider: TimerRootProvider,
5953
+ Separator: TimerSeparator
5954
+ });
5955
+
5956
+ const createToaster = props => {
5957
+ const machine = toast__namespace.group.machine({
5958
+ id: '1',
5959
+ ...props
5960
+ });
5961
+ const api = toast__namespace.group.connect(machine, machine.send, solid.normalizeProps);
5962
+ return {
5963
+ ...api,
5964
+ machine
5965
+ };
5966
+ };
5967
+
5968
+ const [ToastProvider, useToastContext] = createContext({
5969
+ hookName: 'useToastContext',
5970
+ providerName: '<ToastProvider />'
5971
+ });
5972
+
5973
+ const ToastActionTrigger = props => {
5974
+ const toast = useToastContext();
5975
+ const mergedProps = solid.mergeProps(() => toast().getActionTriggerProps(), props);
5976
+ return web.createComponent(ark.button, mergedProps);
5977
+ };
5978
+
5979
+ const ToastCloseTrigger = props => {
5980
+ const toast = useToastContext();
5981
+ const mergedProps = solid.mergeProps(() => toast().getCloseTriggerProps(), props);
5982
+ return web.createComponent(ark.button, mergedProps);
5983
+ };
5984
+
5985
+ const ToastContext = props => props.children(useToastContext());
5986
+
5987
+ const ToastDescription = props => {
5642
5988
  const toast = useToastContext();
5643
5989
  const mergedProps = solid.mergeProps(() => toast().getDescriptionProps(), props);
5644
5990
  return web.createComponent(ark.div, mergedProps);
@@ -6098,252 +6444,6 @@ var treeView = /*#__PURE__*/Object.freeze({
6098
6444
  Tree: TreeViewTree
6099
6445
  });
6100
6446
 
6101
- const [TimerProvider, useTimerContext] = createContext({
6102
- hookName: 'useTimerContext',
6103
- providerName: '<TimerProvider />'
6104
- });
6105
-
6106
- const TimerContext = props => props.children(useTimerContext());
6107
-
6108
- const TimerActionTrigger = props => {
6109
- const timer = useTimerContext();
6110
- const mergedProps = solid.mergeProps(() => timer().getActionTriggerProps(props), props);
6111
- return web.createComponent(ark.button, mergedProps);
6112
- };
6113
-
6114
- const TimerItem = props => {
6115
- const [itemProps, localProps] = createSplitProps()(props, ['type']);
6116
- const timer = useTimerContext();
6117
- const mergedProps = solid.mergeProps(() => timer().getItemProps(itemProps), localProps);
6118
- return web.createComponent(ark.div, web.mergeProps(mergedProps, {
6119
- get children() {
6120
- return timer().formattedTime[itemProps.type];
6121
- }
6122
- }));
6123
- };
6124
-
6125
- const TimerSeparator = props => {
6126
- const timer = useTimerContext();
6127
- const mergedProps = solid.mergeProps(() => timer().getSeparatorProps(), props);
6128
- return web.createComponent(ark.div, mergedProps);
6129
- };
6130
-
6131
- const useTimer = props => {
6132
- const env = useEnvironmentContext();
6133
- const id = solidJs.createUniqueId();
6134
- const context = solidJs.createMemo(() => ({
6135
- id,
6136
- getRootNode: env().getRootNode,
6137
- ...props
6138
- }));
6139
- const [state, send] = solid.useMachine(timer__namespace.machine(context()), {
6140
- context
6141
- });
6142
- return solidJs.createMemo(() => timer__namespace.connect(state, send, solid.normalizeProps));
6143
- };
6144
-
6145
- const TimerRoot = props => {
6146
- const [useTimerProps, localProps] = createSplitProps()(props, ['id', 'autoStart', 'interval', 'countdown', 'startMs', 'targetMs', 'onComplete', 'onTick']);
6147
- const timer = useTimer(useTimerProps);
6148
- const mergedProps = solid.mergeProps(() => timer().getRootProps(), localProps);
6149
- return web.createComponent(TimerProvider, {
6150
- value: timer,
6151
- get children() {
6152
- return web.createComponent(ark.div, mergedProps);
6153
- }
6154
- });
6155
- };
6156
-
6157
- const TimerRootProvider = props => {
6158
- const [{
6159
- value: timer
6160
- }, localProps] = createSplitProps()(props, ['value']);
6161
- const mergedProps = solid.mergeProps(() => timer().getRootProps(), localProps);
6162
- return web.createComponent(TimerProvider, {
6163
- value: timer,
6164
- get children() {
6165
- return web.createComponent(ark.div, mergedProps);
6166
- }
6167
- });
6168
- };
6169
-
6170
- var timer = /*#__PURE__*/Object.freeze({
6171
- __proto__: null,
6172
- ActionTrigger: TimerActionTrigger,
6173
- Context: TimerContext,
6174
- Item: TimerItem,
6175
- Root: TimerRoot,
6176
- RootProvider: TimerRootProvider,
6177
- Separator: TimerSeparator
6178
- });
6179
-
6180
- const [StepsProvider, useStepsContext] = createContext({
6181
- hookName: 'useStepsContext',
6182
- providerName: '<StepsProvider />'
6183
- });
6184
-
6185
- const StepsCompletedContent = props => {
6186
- const steps = useStepsContext();
6187
- const mergedProps = solid.mergeProps(() => steps().getContentProps({
6188
- index: steps().count
6189
- }), props);
6190
- return web.createComponent(ark.div, mergedProps);
6191
- };
6192
-
6193
- const StepsContent = props => {
6194
- const [itemProps, localProps] = createSplitProps()(props, ['index']);
6195
- const steps = useStepsContext();
6196
- const mergedProps = solid.mergeProps(() => steps().getContentProps(itemProps), localProps);
6197
- return web.createComponent(ark.div, mergedProps);
6198
- };
6199
-
6200
- const StepsContext = props => {
6201
- const context = useStepsContext();
6202
- return props.children(context);
6203
- };
6204
-
6205
- const [StepsItemPropsProvider, useStepsItemPropsContext] = createContext({
6206
- hookName: 'useStepsItemPropsContext',
6207
- providerName: '<StepsItemPropsProvider />'
6208
- });
6209
-
6210
- const StepsIndicator = props => {
6211
- const steps = useStepsContext();
6212
- const itemProps = useStepsItemPropsContext();
6213
- const mergedProps = solid.mergeProps(() => steps().getIndicatorProps(itemProps), props);
6214
- return web.createComponent(ark.div, mergedProps);
6215
- };
6216
-
6217
- const [StepsItemProvider, useStepsItemContext] = createContext({
6218
- hookName: 'useStepsItemContext',
6219
- providerName: '<StepsItem />'
6220
- });
6221
-
6222
- const StepsItem = props => {
6223
- const [itemProps, localProps] = createSplitProps()(props, ['index']);
6224
- const steps = useStepsContext();
6225
- const mergedProps = solid.mergeProps(() => steps().getItemProps(itemProps), localProps);
6226
- const itemState = solidJs.createMemo(() => steps().getItemState(itemProps));
6227
- return web.createComponent(StepsItemPropsProvider, {
6228
- value: itemProps,
6229
- get children() {
6230
- return web.createComponent(StepsItemProvider, {
6231
- value: itemState,
6232
- get children() {
6233
- return web.createComponent(ark.li, mergedProps);
6234
- }
6235
- });
6236
- }
6237
- });
6238
- };
6239
-
6240
- const StepsItemContext = props => {
6241
- return props.children(useStepsItemContext());
6242
- };
6243
- StepsItemContext.displayName = 'StepsItemContext';
6244
-
6245
- const StepsList = props => {
6246
- const steps = useStepsContext();
6247
- const mergedProps = solid.mergeProps(() => steps().getListProps(), props);
6248
- return web.createComponent(ark.ol, mergedProps);
6249
- };
6250
-
6251
- const StepsNextTrigger = props => {
6252
- const steps = useStepsContext();
6253
- const mergedProps = solid.mergeProps(() => steps().getNextTriggerProps(), props);
6254
- return web.createComponent(ark.button, mergedProps);
6255
- };
6256
-
6257
- const StepsPrevTrigger = props => {
6258
- const steps = useStepsContext();
6259
- const mergedProps = solid.mergeProps(() => steps().getPrevTriggerProps(), props);
6260
- return web.createComponent(ark.button, mergedProps);
6261
- };
6262
-
6263
- const StepsProgress = props => {
6264
- const steps = useStepsContext();
6265
- const mergedProps = solid.mergeProps(() => steps().getProgressProps(), props);
6266
- return web.createComponent(ark.div, mergedProps);
6267
- };
6268
-
6269
- function useSteps(props = {}) {
6270
- const environment = useEnvironmentContext();
6271
- const locale = useLocaleContext();
6272
- const id = solidJs.createUniqueId();
6273
- const context = solidJs.createMemo(() => ({
6274
- id,
6275
- dir: locale().dir,
6276
- getRootNode: environment().getRootNode,
6277
- step: props.defaultStep,
6278
- ...props
6279
- }));
6280
- const [state, send] = solid.useMachine(steps__namespace.machine(context()), {
6281
- context
6282
- });
6283
- return solidJs.createMemo(() => steps__namespace.connect(state, send, solid.normalizeProps));
6284
- }
6285
-
6286
- const StepsRoot = props => {
6287
- const [useStepsProps, localProps] = createSplitProps()(props, ['defaultStep', 'id', 'ids', 'count', 'linear', 'onStepChange', 'onStepComplete', 'orientation', 'step']);
6288
- const steps = useSteps(useStepsProps);
6289
- const mergedProps = solid.mergeProps(() => steps().getRootProps(), localProps);
6290
- return web.createComponent(StepsProvider, {
6291
- value: steps,
6292
- get children() {
6293
- return web.createComponent(ark.div, mergedProps);
6294
- }
6295
- });
6296
- };
6297
-
6298
- const StepsRootProvider = props => {
6299
- const [{
6300
- value: steps
6301
- }, rootProps] = createSplitProps()(props, ['value']);
6302
- const mergedProps = solid.mergeProps(() => steps().getRootProps(), rootProps);
6303
- return web.createComponent(StepsProvider, {
6304
- value: steps,
6305
- get children() {
6306
- return web.createComponent(ark.div, web.mergeProps(mergedProps, {
6307
- get children() {
6308
- return props.children;
6309
- }
6310
- }));
6311
- }
6312
- });
6313
- };
6314
-
6315
- const StepsSeparator = props => {
6316
- const steps = useStepsContext();
6317
- const itemProps = useStepsItemPropsContext();
6318
- const mergedProps = solid.mergeProps(() => steps().getSeparatorProps(itemProps), props);
6319
- return web.createComponent(ark.div, mergedProps);
6320
- };
6321
-
6322
- const StepsTrigger = props => {
6323
- const steps = useStepsContext();
6324
- const itemProps = useStepsItemPropsContext();
6325
- const mergedProps = solid.mergeProps(() => steps().getTriggerProps(itemProps), props);
6326
- return web.createComponent(ark.button, mergedProps);
6327
- };
6328
-
6329
- var steps = /*#__PURE__*/Object.freeze({
6330
- __proto__: null,
6331
- CompletedContent: StepsCompletedContent,
6332
- Content: StepsContent,
6333
- Context: StepsContext,
6334
- Indicator: StepsIndicator,
6335
- Item: StepsItem,
6336
- ItemContext: StepsItemContext,
6337
- List: StepsList,
6338
- NextTrigger: StepsNextTrigger,
6339
- PrevTrigger: StepsPrevTrigger,
6340
- Progress: StepsProgress,
6341
- Root: StepsRoot,
6342
- RootProvider: StepsRootProvider,
6343
- Separator: StepsSeparator,
6344
- Trigger: StepsTrigger
6345
- });
6346
-
6347
6447
  Object.defineProperty(exports, "collapsibleAnatomy", {
6348
6448
  enumerable: true,
6349
6449
  get: function () { return collapsible$1.anatomy; }
@@ -6432,6 +6532,10 @@ Object.defineProperty(exports, "splitterAnatomy", {
6432
6532
  enumerable: true,
6433
6533
  get: function () { return splitter$1.anatomy; }
6434
6534
  });
6535
+ Object.defineProperty(exports, "stepsAnatomy", {
6536
+ enumerable: true,
6537
+ get: function () { return steps$1.anatomy; }
6538
+ });
6435
6539
  Object.defineProperty(exports, "switchAnatomy", {
6436
6540
  enumerable: true,
6437
6541
  get: function () { return zagSwitch.anatomy; }
@@ -6460,10 +6564,6 @@ Object.defineProperty(exports, "treeViewAnatomy", {
6460
6564
  enumerable: true,
6461
6565
  get: function () { return treeView$1.anatomy; }
6462
6566
  });
6463
- Object.defineProperty(exports, "stepsAnatomy", {
6464
- enumerable: true,
6465
- get: function () { return steps$1.anatomy; }
6466
- });
6467
6567
  exports.Accordion = accordion;
6468
6568
  exports.AccordionContext = AccordionContext;
6469
6569
  exports.AccordionItem = AccordionItem;
@@ -6649,6 +6749,7 @@ exports.FileUploadTrigger = FileUploadTrigger;
6649
6749
  exports.Format = format;
6650
6750
  exports.FormatByte = FormatByte;
6651
6751
  exports.FormatNumber = FormatNumber;
6752
+ exports.Frame = Frame;
6652
6753
  exports.Highlight = Highlight;
6653
6754
  exports.HoverCard = hoverCard;
6654
6755
  exports.HoverCardArrow = HoverCardArrow;
@@ -6886,7 +6987,9 @@ exports.TimePickerSpacer = TimePickerSpacer;
6886
6987
  exports.TimePickerTrigger = TimePickerTrigger;
6887
6988
  exports.Timer = timer;
6888
6989
  exports.TimerActionTrigger = TimerActionTrigger;
6990
+ exports.TimerArea = TimerArea;
6889
6991
  exports.TimerContext = TimerContext;
6992
+ exports.TimerControl = TimerControl;
6890
6993
  exports.TimerItem = TimerItem;
6891
6994
  exports.TimerRoot = TimerRoot;
6892
6995
  exports.TimerRootProvider = TimerRootProvider;