@ark-ui/solid 3.6.2 → 3.8.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.
- package/dist/cjs/index.js +126 -26
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +117 -27
- package/dist/esm/index.js.map +1 -1
- package/dist/source/components/field/field-root.jsx +1 -0
- package/dist/source/components/field/use-field.js +10 -9
- package/dist/source/components/index.js +1 -0
- package/dist/source/components/progress/progress-value-text.jsx +1 -1
- package/dist/source/components/select/use-select.js +13 -5
- package/dist/source/components/timer/index.js +9 -0
- package/dist/source/components/timer/timer-action-trigger.jsx +8 -0
- package/dist/source/components/timer/timer-context.jsx +2 -0
- package/dist/source/components/timer/timer-item.jsx +10 -0
- package/dist/source/components/timer/timer-root-provider.jsx +11 -0
- package/dist/source/components/timer/timer-root.jsx +22 -0
- package/dist/source/components/timer/timer-separator.jsx +8 -0
- package/dist/source/components/timer/timer.js +6 -0
- package/dist/source/components/timer/use-timer-context.js +5 -0
- package/dist/source/components/timer/use-timer.js +15 -0
- package/dist/types/components/field/use-field.d.ts +33 -17
- package/dist/types/components/index.d.ts +1 -0
- package/dist/types/components/timer/index.d.ts +9 -0
- package/dist/types/components/timer/timer-action-trigger.d.ts +7 -0
- package/dist/types/components/timer/timer-context.d.ts +6 -0
- package/dist/types/components/timer/timer-item.d.ts +7 -0
- package/dist/types/components/timer/timer-root-provider.d.ts +11 -0
- package/dist/types/components/timer/timer-root.d.ts +7 -0
- package/dist/types/components/timer/timer-separator.d.ts +6 -0
- package/dist/types/components/timer/timer.d.ts +6 -0
- package/dist/types/components/timer/use-timer-context.d.ts +4 -0
- package/dist/types/components/timer/use-timer.d.ts +9 -0
- package/package.json +53 -50
package/dist/cjs/index.js
CHANGED
|
@@ -42,6 +42,7 @@ var toast$1 = require('@zag-js/toast');
|
|
|
42
42
|
var toggleGroup$1 = require('@zag-js/toggle-group');
|
|
43
43
|
var tooltip$1 = require('@zag-js/tooltip');
|
|
44
44
|
var treeView$1 = require('@zag-js/tree-view');
|
|
45
|
+
var timer$1 = require('@zag-js/timer');
|
|
45
46
|
|
|
46
47
|
function _interopNamespaceDefault(e) {
|
|
47
48
|
var n = Object.create(null);
|
|
@@ -95,6 +96,7 @@ var toast__namespace = /*#__PURE__*/_interopNamespaceDefault(toast$1);
|
|
|
95
96
|
var toggleGroup__namespace = /*#__PURE__*/_interopNamespaceDefault(toggleGroup$1);
|
|
96
97
|
var tooltip__namespace = /*#__PURE__*/_interopNamespaceDefault(tooltip$1);
|
|
97
98
|
var treeView__namespace = /*#__PURE__*/_interopNamespaceDefault(treeView$1);
|
|
99
|
+
var timer__namespace = /*#__PURE__*/_interopNamespaceDefault(timer$1);
|
|
98
100
|
|
|
99
101
|
function getErrorMessage(hook, provider) {
|
|
100
102
|
return `${hook} returned \`undefined\`. Seems you forgot to wrap component within ${provider}`;
|
|
@@ -838,14 +840,14 @@ const useFieldset = props => {
|
|
|
838
840
|
const getRootProps = () => ({
|
|
839
841
|
...parts$2.root.attrs,
|
|
840
842
|
disabled,
|
|
841
|
-
'data-disabled': dataAttr
|
|
842
|
-
'data-invalid': dataAttr
|
|
843
|
+
'data-disabled': dataAttr(disabled),
|
|
844
|
+
'data-invalid': dataAttr(invalid),
|
|
843
845
|
'aria-describedby': labelIds.join(' ') || undefined
|
|
844
846
|
});
|
|
845
847
|
const getLegendProps = () => ({
|
|
846
848
|
...parts$2.legend.attrs,
|
|
847
|
-
'data-disabled': dataAttr
|
|
848
|
-
'data-invalid': dataAttr
|
|
849
|
+
'data-disabled': dataAttr(disabled),
|
|
850
|
+
'data-invalid': dataAttr(invalid)
|
|
849
851
|
});
|
|
850
852
|
const getHelperTextProps = () => ({
|
|
851
853
|
id: helperTextId,
|
|
@@ -868,7 +870,7 @@ const useFieldset = props => {
|
|
|
868
870
|
getErrorTextProps
|
|
869
871
|
}));
|
|
870
872
|
};
|
|
871
|
-
const dataAttr
|
|
873
|
+
const dataAttr = condition => condition ? '' : undefined;
|
|
872
874
|
|
|
873
875
|
const FieldsetRoot = props => {
|
|
874
876
|
const [useFieldsetProps, localProps] = createSplitProps()(props, ['id', 'disabled', 'invalid']);
|
|
@@ -918,6 +920,7 @@ const parts$1 = fieldAnatomy.build();
|
|
|
918
920
|
const useField = props => {
|
|
919
921
|
const fieldset = useFieldsetContext();
|
|
920
922
|
const {
|
|
923
|
+
ids,
|
|
921
924
|
disabled = Boolean(fieldset?.().disabled),
|
|
922
925
|
invalid = false,
|
|
923
926
|
readOnly = false,
|
|
@@ -927,25 +930,27 @@ const useField = props => {
|
|
|
927
930
|
const [hasHelperText, setHasHelperText] = solidJs.createSignal(false);
|
|
928
931
|
const id = props.id ?? solidJs.createUniqueId();
|
|
929
932
|
let rootRef;
|
|
930
|
-
const
|
|
931
|
-
const
|
|
932
|
-
const
|
|
933
|
+
const rootId = ids?.control ?? `field::${id}`;
|
|
934
|
+
const errorTextId = ids?.errorText ?? `field::${id}::error-text`;
|
|
935
|
+
const helperTextId = ids?.helperText ?? `field::${id}::helper-text`;
|
|
936
|
+
const labelId = ids?.label ?? `field::${id}::label`;
|
|
933
937
|
solidJs.createEffect(() => {
|
|
934
938
|
return;
|
|
935
939
|
});
|
|
936
940
|
const getRootProps = () => ({
|
|
937
941
|
...parts$1.root.attrs,
|
|
942
|
+
id: rootId,
|
|
938
943
|
role: 'group',
|
|
939
|
-
'data-disabled': dataAttr(disabled),
|
|
940
|
-
'data-invalid': dataAttr(invalid),
|
|
941
|
-
'data-readonly': dataAttr(readOnly)
|
|
944
|
+
'data-disabled': domQuery.dataAttr(disabled),
|
|
945
|
+
'data-invalid': domQuery.dataAttr(invalid),
|
|
946
|
+
'data-readonly': domQuery.dataAttr(readOnly)
|
|
942
947
|
});
|
|
943
948
|
const getLabelProps = () => ({
|
|
944
949
|
...parts$1.label.attrs,
|
|
945
950
|
id: labelId,
|
|
946
|
-
'data-disabled': dataAttr(disabled),
|
|
947
|
-
'data-invalid': dataAttr(invalid),
|
|
948
|
-
'data-readonly': dataAttr(readOnly),
|
|
951
|
+
'data-disabled': domQuery.dataAttr(disabled),
|
|
952
|
+
'data-invalid': domQuery.dataAttr(invalid),
|
|
953
|
+
'data-readonly': domQuery.dataAttr(readOnly),
|
|
949
954
|
htmlFor: id
|
|
950
955
|
});
|
|
951
956
|
const labelIds = [];
|
|
@@ -953,9 +958,10 @@ const useField = props => {
|
|
|
953
958
|
if (hasHelperText()) labelIds.push(helperTextId);
|
|
954
959
|
const getControlProps = () => ({
|
|
955
960
|
'aria-describedby': labelIds.join(' ') || undefined,
|
|
956
|
-
'aria-invalid': ariaAttr(invalid),
|
|
957
|
-
'
|
|
958
|
-
'
|
|
961
|
+
'aria-invalid': domQuery.ariaAttr(invalid),
|
|
962
|
+
'data-invalid': domQuery.dataAttr(invalid),
|
|
963
|
+
'data-required': domQuery.dataAttr(required),
|
|
964
|
+
'data-readonly': domQuery.dataAttr(readOnly),
|
|
959
965
|
id,
|
|
960
966
|
required,
|
|
961
967
|
disabled,
|
|
@@ -1006,11 +1012,9 @@ const useField = props => {
|
|
|
1006
1012
|
getErrorTextProps
|
|
1007
1013
|
}));
|
|
1008
1014
|
};
|
|
1009
|
-
const dataAttr = condition => condition ? '' : undefined;
|
|
1010
|
-
const ariaAttr = condition => condition ? true : undefined;
|
|
1011
1015
|
|
|
1012
1016
|
const FieldRoot = props => {
|
|
1013
|
-
const [useFieldProps, localProps] = createSplitProps()(props, ['id', 'disabled', 'invalid', 'readOnly', 'required']);
|
|
1017
|
+
const [useFieldProps, localProps] = createSplitProps()(props, ['id', 'ids', 'disabled', 'invalid', 'readOnly', 'required']);
|
|
1014
1018
|
const field = useField(useFieldProps);
|
|
1015
1019
|
const mergedProps = solid.mergeProps(() => field().getRootProps(), localProps);
|
|
1016
1020
|
return web.createComponent(FieldProvider, {
|
|
@@ -3918,7 +3922,7 @@ const ProgressValueText = props => {
|
|
|
3918
3922
|
const mergedProps = solid.mergeProps(() => api().getValueTextProps(), props);
|
|
3919
3923
|
return web.createComponent(ark.span, web.mergeProps(mergedProps, {
|
|
3920
3924
|
get children() {
|
|
3921
|
-
return props.children || api().
|
|
3925
|
+
return props.children || api().percentAsString;
|
|
3922
3926
|
}
|
|
3923
3927
|
}));
|
|
3924
3928
|
};
|
|
@@ -4564,14 +4568,14 @@ const SelectPositioner = props => {
|
|
|
4564
4568
|
|
|
4565
4569
|
const useSelect = props => {
|
|
4566
4570
|
const [collectionOptions, selectProps] = createSplitProps()(props, ['isItemDisabled', 'itemToValue', 'itemToString', 'items']);
|
|
4567
|
-
const collection = () => select__namespace.collection({
|
|
4571
|
+
const collection = solidJs.createMemo(() => select__namespace.collection({
|
|
4568
4572
|
...collectionOptions
|
|
4569
|
-
});
|
|
4573
|
+
}));
|
|
4570
4574
|
const locale = useLocaleContext();
|
|
4571
4575
|
const environment = useEnvironmentContext();
|
|
4572
4576
|
const id = solidJs.createUniqueId();
|
|
4573
4577
|
const field = useFieldContext();
|
|
4574
|
-
const
|
|
4578
|
+
const initialContext = solidJs.createMemo(() => ({
|
|
4575
4579
|
id,
|
|
4576
4580
|
ids: {
|
|
4577
4581
|
label: field?.().ids.label,
|
|
@@ -4589,10 +4593,18 @@ const useSelect = props => {
|
|
|
4589
4593
|
'open.controlled': props.open !== undefined,
|
|
4590
4594
|
...selectProps
|
|
4591
4595
|
}));
|
|
4592
|
-
const
|
|
4596
|
+
const context = solidJs.createMemo(() => {
|
|
4597
|
+
const [, restProps] = solidJs.splitProps(initialContext(), ['collection']);
|
|
4598
|
+
return restProps;
|
|
4599
|
+
});
|
|
4600
|
+
const [state, send] = solid.useMachine(select__namespace.machine(initialContext()), {
|
|
4593
4601
|
context
|
|
4594
4602
|
});
|
|
4595
|
-
|
|
4603
|
+
const api = solidJs.createMemo(() => select__namespace.connect(state, send, solid.normalizeProps));
|
|
4604
|
+
solidJs.createEffect(() => {
|
|
4605
|
+
api().setCollection(collection());
|
|
4606
|
+
});
|
|
4607
|
+
return api;
|
|
4596
4608
|
};
|
|
4597
4609
|
|
|
4598
4610
|
const SelectRoot = props => {
|
|
@@ -6080,6 +6092,85 @@ var treeView = /*#__PURE__*/Object.freeze({
|
|
|
6080
6092
|
Tree: TreeViewTree
|
|
6081
6093
|
});
|
|
6082
6094
|
|
|
6095
|
+
const [TimerProvider, useTimerContext] = createContext({
|
|
6096
|
+
hookName: 'useTimerContext',
|
|
6097
|
+
providerName: '<TimerProvider />'
|
|
6098
|
+
});
|
|
6099
|
+
|
|
6100
|
+
const TimerContext = props => props.children(useTimerContext());
|
|
6101
|
+
|
|
6102
|
+
const TimerActionTrigger = props => {
|
|
6103
|
+
const timer = useTimerContext();
|
|
6104
|
+
const mergedProps = solid.mergeProps(() => timer().getActionTriggerProps(props), props);
|
|
6105
|
+
return web.createComponent(ark.button, mergedProps);
|
|
6106
|
+
};
|
|
6107
|
+
|
|
6108
|
+
const TimerItem = props => {
|
|
6109
|
+
const [itemProps, localProps] = createSplitProps()(props, ['type']);
|
|
6110
|
+
const timer = useTimerContext();
|
|
6111
|
+
const mergedProps = solid.mergeProps(() => timer().getItemProps(itemProps), localProps);
|
|
6112
|
+
return web.createComponent(ark.div, web.mergeProps(mergedProps, {
|
|
6113
|
+
get children() {
|
|
6114
|
+
return timer().formattedTime[itemProps.type];
|
|
6115
|
+
}
|
|
6116
|
+
}));
|
|
6117
|
+
};
|
|
6118
|
+
|
|
6119
|
+
const TimerSeparator = props => {
|
|
6120
|
+
const timer = useTimerContext();
|
|
6121
|
+
const mergedProps = solid.mergeProps(() => timer().getSeparatorProps(), props);
|
|
6122
|
+
return web.createComponent(ark.div, mergedProps);
|
|
6123
|
+
};
|
|
6124
|
+
|
|
6125
|
+
const useTimer = props => {
|
|
6126
|
+
const env = useEnvironmentContext();
|
|
6127
|
+
const id = solidJs.createUniqueId();
|
|
6128
|
+
const context = solidJs.createMemo(() => ({
|
|
6129
|
+
id,
|
|
6130
|
+
getRootNode: env().getRootNode,
|
|
6131
|
+
...props
|
|
6132
|
+
}));
|
|
6133
|
+
const [state, send] = solid.useMachine(timer__namespace.machine(context()), {
|
|
6134
|
+
context
|
|
6135
|
+
});
|
|
6136
|
+
return solidJs.createMemo(() => timer__namespace.connect(state, send, solid.normalizeProps));
|
|
6137
|
+
};
|
|
6138
|
+
|
|
6139
|
+
const TimerRoot = props => {
|
|
6140
|
+
const [useTimerProps, localProps] = createSplitProps()(props, ['id', 'autoStart', 'interval', 'countdown', 'startMs', 'targetMs', 'onComplete', 'onTick']);
|
|
6141
|
+
const timer = useTimer(useTimerProps);
|
|
6142
|
+
const mergedProps = solid.mergeProps(() => timer().getRootProps(), localProps);
|
|
6143
|
+
return web.createComponent(TimerProvider, {
|
|
6144
|
+
value: timer,
|
|
6145
|
+
get children() {
|
|
6146
|
+
return web.createComponent(ark.div, mergedProps);
|
|
6147
|
+
}
|
|
6148
|
+
});
|
|
6149
|
+
};
|
|
6150
|
+
|
|
6151
|
+
const TimerRootProvider = props => {
|
|
6152
|
+
const [{
|
|
6153
|
+
value: timer
|
|
6154
|
+
}, localProps] = createSplitProps()(props, ['value']);
|
|
6155
|
+
const mergedProps = solid.mergeProps(() => timer().getRootProps(), localProps);
|
|
6156
|
+
return web.createComponent(TimerProvider, {
|
|
6157
|
+
value: timer,
|
|
6158
|
+
get children() {
|
|
6159
|
+
return web.createComponent(ark.div, mergedProps);
|
|
6160
|
+
}
|
|
6161
|
+
});
|
|
6162
|
+
};
|
|
6163
|
+
|
|
6164
|
+
var timer = /*#__PURE__*/Object.freeze({
|
|
6165
|
+
__proto__: null,
|
|
6166
|
+
ActionTrigger: TimerActionTrigger,
|
|
6167
|
+
Context: TimerContext,
|
|
6168
|
+
Item: TimerItem,
|
|
6169
|
+
Root: TimerRoot,
|
|
6170
|
+
RootProvider: TimerRootProvider,
|
|
6171
|
+
Separator: TimerSeparator
|
|
6172
|
+
});
|
|
6173
|
+
|
|
6083
6174
|
Object.defineProperty(exports, "collapsibleAnatomy", {
|
|
6084
6175
|
enumerable: true,
|
|
6085
6176
|
get: function () { return collapsible$1.anatomy; }
|
|
@@ -6601,6 +6692,13 @@ exports.TimePickerRoot = TimePickerRoot;
|
|
|
6601
6692
|
exports.TimePickerRootProvider = TimePickerRootProvider;
|
|
6602
6693
|
exports.TimePickerSpacer = TimePickerSpacer;
|
|
6603
6694
|
exports.TimePickerTrigger = TimePickerTrigger;
|
|
6695
|
+
exports.Timer = timer;
|
|
6696
|
+
exports.TimerActionTrigger = TimerActionTrigger;
|
|
6697
|
+
exports.TimerContext = TimerContext;
|
|
6698
|
+
exports.TimerItem = TimerItem;
|
|
6699
|
+
exports.TimerRoot = TimerRoot;
|
|
6700
|
+
exports.TimerRootProvider = TimerRootProvider;
|
|
6701
|
+
exports.TimerSeparator = TimerSeparator;
|
|
6604
6702
|
exports.Toast = toast;
|
|
6605
6703
|
exports.ToastActionTrigger = ToastActionTrigger;
|
|
6606
6704
|
exports.ToastCloseTrigger = ToastCloseTrigger;
|
|
@@ -6728,6 +6826,8 @@ exports.useTagsInputContext = useTagsInputContext;
|
|
|
6728
6826
|
exports.useTagsInputItemContext = useTagsInputItemContext;
|
|
6729
6827
|
exports.useTimePicker = useTimePicker;
|
|
6730
6828
|
exports.useTimePickerContext = useTimePickerContext;
|
|
6829
|
+
exports.useTimer = useTimer;
|
|
6830
|
+
exports.useTimerContext = useTimerContext;
|
|
6731
6831
|
exports.useToastContext = useToastContext;
|
|
6732
6832
|
exports.useToggleGroup = useToggleGroup;
|
|
6733
6833
|
exports.useToggleGroupContext = useToggleGroupContext;
|