@ark-ui/solid 2.1.0 → 2.2.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/CHANGELOG.md +50 -0
- package/cjs/index.js +254 -49
- package/cjs/index.js.map +1 -1
- package/esm/index.js +240 -50
- package/esm/index.js.map +1 -1
- package/package.json +53 -52
- package/source/accordion/accordion-item.jsx +4 -3
- package/source/accordion/accordion-root.jsx +4 -4
- package/source/clipboard/clipboard-context.js +5 -0
- package/source/clipboard/clipboard-control.jsx +8 -0
- package/source/clipboard/clipboard-indicator.jsx +16 -0
- package/source/clipboard/clipboard-input.jsx +8 -0
- package/source/clipboard/clipboard-label.jsx +8 -0
- package/source/clipboard/clipboard-root.jsx +22 -0
- package/source/clipboard/clipboard-trigger.jsx +8 -0
- package/source/clipboard/clipboard.jsx +7 -0
- package/source/clipboard/index.js +9 -0
- package/source/clipboard/use-clipboard.jsx +10 -0
- package/source/collapsible/collapsible-content.jsx +11 -0
- package/source/collapsible/collapsible-context.js +5 -0
- package/source/collapsible/collapsible-root.jsx +24 -0
- package/source/collapsible/collapsible-trigger.jsx +8 -0
- package/source/collapsible/collapsible.jsx +4 -0
- package/source/collapsible/index.js +6 -0
- package/source/collapsible/use-collapsible.js +23 -0
- package/source/color-picker/use-color-picker.js +0 -1
- package/source/date-picker/use-date-picker.js +0 -1
- package/source/dialog/dialog-backdrop.jsx +4 -3
- package/source/dialog/dialog-root.jsx +5 -3
- package/source/dialog/use-dialog.js +1 -1
- package/source/hover-card/use-hover-card.js +1 -1
- package/source/index.jsx +3 -0
- package/source/locale/index.js +2 -0
- package/source/locale/locale-context.jsx +7 -0
- package/source/locale/locale.jsx +24 -0
- package/source/menu/use-menu.js +1 -1
- package/source/popover/use-popover.js +1 -1
- package/source/presence/index.js +1 -2
- package/source/presence/split-presence-props.js +6 -8
- package/source/presence/use-presence.js +8 -7
- package/source/render-strategy.js +7 -0
- package/source/select/use-select.js +0 -1
- package/source/splitter/splitter-root.jsx +0 -1
- package/source/tabs/tab-content.jsx +4 -3
- package/source/tabs/tabs-root.jsx +4 -4
- package/source/tooltip/use-tooltip.js +1 -1
- package/source/tree-view/tree-view-branch-indicator.jsx +1 -4
- package/types/clipboard/clipboard-context.d.ts +4 -0
- package/types/clipboard/clipboard-control.d.ts +4 -0
- package/types/clipboard/clipboard-indicator.d.ts +10 -0
- package/types/clipboard/clipboard-input.d.ts +4 -0
- package/types/clipboard/clipboard-label.d.ts +4 -0
- package/types/clipboard/clipboard-root.d.ts +11 -0
- package/types/clipboard/clipboard-trigger.d.ts +4 -0
- package/types/clipboard/clipboard.d.ts +7 -0
- package/types/clipboard/index.d.ts +11 -0
- package/types/clipboard/use-clipboard.d.ts +9 -0
- package/types/collapsible/collapsible-content.d.ts +4 -0
- package/types/collapsible/collapsible-context.d.ts +4 -0
- package/types/collapsible/collapsible-root.d.ts +6 -0
- package/types/collapsible/collapsible-trigger.d.ts +4 -0
- package/types/collapsible/collapsible.d.ts +4 -0
- package/types/collapsible/index.d.ts +8 -0
- package/types/collapsible/use-collapsible.d.ts +15 -0
- package/types/index.d.ts +3 -0
- package/types/locale/index.d.ts +2 -0
- package/types/locale/locale-context.d.ts +5 -0
- package/types/locale/locale.d.ts +9 -0
- package/types/menu/menu-item-group.d.ts +3 -5
- package/types/presence/index.d.ts +2 -3
- package/types/presence/split-presence-props.d.ts +1 -1
- package/types/presence/use-presence.d.ts +2 -11
- package/types/render-strategy.d.ts +14 -0
- package/types/tabs/tabs-root.d.ts +2 -2
- package/source/presence/presence-props-context.js +0 -5
- package/types/presence/presence-props-context.d.ts +0 -4
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,56 @@ description: All notable changes to this project will be documented in this file
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [2.2.0] - 2024-02-27
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- Added `Collapsible` component.
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- Enhanced the performance of the Ark `factory` by utilizing `memo` to avoid unnecessary re-renders.
|
|
18
|
+
- Integrated `Collapsible` into `Accordion`, allowing the `Accordion` component to utilize `Collapsible` for animating the opening and closing of content.d
|
|
19
|
+
|
|
20
|
+
```css
|
|
21
|
+
@keyframes slideDown {
|
|
22
|
+
from {
|
|
23
|
+
height: 0;
|
|
24
|
+
}
|
|
25
|
+
to {
|
|
26
|
+
height: var(--height);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
@keyframes slideUp {
|
|
31
|
+
from {
|
|
32
|
+
height: var(--height);
|
|
33
|
+
}
|
|
34
|
+
to {
|
|
35
|
+
height: 0;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
[data-scope='accordion'][data-part='item-content'][data-state='open'] {
|
|
40
|
+
animation: slideDown 250ms;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
[data-scope='accordion'][data-part='item-content'][data-state='closed'] {
|
|
44
|
+
animation: slideUp 200ms;
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Fixed
|
|
49
|
+
|
|
50
|
+
- Fixed a bug where the disabled `Tooltip` would flash upon hovering and clicking the trigger.
|
|
51
|
+
- Fixed an issue where a disclosure components could not be initially set to an open state without being controlled.
|
|
52
|
+
|
|
53
|
+
## [2.1.1] - 2024-02-16
|
|
54
|
+
|
|
55
|
+
### Fixed
|
|
56
|
+
|
|
57
|
+
- Resolved an issue where the `Clipboard` component was not exported correctly.
|
|
58
|
+
|
|
9
59
|
## [2.1.0] - 2024-02-14
|
|
10
60
|
|
|
11
61
|
### Added
|
package/cjs/index.js
CHANGED
|
@@ -9,6 +9,8 @@ var avatar$1 = require('@zag-js/avatar');
|
|
|
9
9
|
var anatomy = require('@ark-ui/anatomy');
|
|
10
10
|
var carousel$1 = require('@zag-js/carousel');
|
|
11
11
|
var checkbox$1 = require('@zag-js/checkbox');
|
|
12
|
+
var clipboard$1 = require('@zag-js/clipboard');
|
|
13
|
+
var collapsible$1 = require('@zag-js/collapsible');
|
|
12
14
|
var colorPicker$1 = require('@zag-js/color-picker');
|
|
13
15
|
var combobox$1 = require('@zag-js/combobox');
|
|
14
16
|
var datePicker$1 = require('@zag-js/date-picker');
|
|
@@ -16,6 +18,7 @@ var dialog$1 = require('@zag-js/dialog');
|
|
|
16
18
|
var editable$1 = require('@zag-js/editable');
|
|
17
19
|
var fileUpload$1 = require('@zag-js/file-upload');
|
|
18
20
|
var hoverCard$1 = require('@zag-js/hover-card');
|
|
21
|
+
var i18nUtils = require('@zag-js/i18n-utils');
|
|
19
22
|
var menu$1 = require('@zag-js/menu');
|
|
20
23
|
var numberInput$1 = require('@zag-js/number-input');
|
|
21
24
|
var pagination$1 = require('@zag-js/pagination');
|
|
@@ -57,6 +60,8 @@ var accordion__namespace = /*#__PURE__*/_interopNamespaceDefault(accordion$1);
|
|
|
57
60
|
var avatar__namespace = /*#__PURE__*/_interopNamespaceDefault(avatar$1);
|
|
58
61
|
var carousel__namespace = /*#__PURE__*/_interopNamespaceDefault(carousel$1);
|
|
59
62
|
var checkbox__namespace = /*#__PURE__*/_interopNamespaceDefault(checkbox$1);
|
|
63
|
+
var clipboard__namespace = /*#__PURE__*/_interopNamespaceDefault(clipboard$1);
|
|
64
|
+
var collapsible__namespace = /*#__PURE__*/_interopNamespaceDefault(collapsible$1);
|
|
60
65
|
var colorPicker__namespace = /*#__PURE__*/_interopNamespaceDefault(colorPicker$1);
|
|
61
66
|
var combobox__namespace = /*#__PURE__*/_interopNamespaceDefault(combobox$1);
|
|
62
67
|
var datePicker__namespace = /*#__PURE__*/_interopNamespaceDefault(datePicker$1);
|
|
@@ -142,15 +147,19 @@ function jsxFactory() {
|
|
|
142
147
|
}
|
|
143
148
|
const ark = jsxFactory();
|
|
144
149
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
150
|
+
const splitPresenceProps = props => createSplitProps()(props, ['lazyMount', 'onExitComplete', 'present', 'unmountOnExit']);
|
|
151
|
+
|
|
152
|
+
const [RenderStrategyProvider, useRenderStrategyContext] = createContext({
|
|
153
|
+
hookName: 'useRenderStrategyContext',
|
|
154
|
+
providerName: '<RenderStrategyProvider />'
|
|
155
|
+
});
|
|
156
|
+
const splitRenderStrategyProps = props => createSplitProps()(props, ['lazyMount', 'unmountOnExit']);
|
|
148
157
|
|
|
149
158
|
const usePresence = props => {
|
|
150
|
-
const [
|
|
159
|
+
const [renderStrategyProps, context] = splitRenderStrategyProps(props);
|
|
151
160
|
const [wasEverPresent, setWasEverPresent] = solidJs.createSignal(false);
|
|
152
|
-
const [state, send] = solid.useMachine(presence__namespace.machine(
|
|
153
|
-
context
|
|
161
|
+
const [state, send] = solid.useMachine(presence__namespace.machine(context), {
|
|
162
|
+
context
|
|
154
163
|
});
|
|
155
164
|
const api = solidJs.createMemo(() => presence__namespace.connect(state, send, solid.normalizeProps));
|
|
156
165
|
solidJs.createEffect(() => {
|
|
@@ -158,12 +167,12 @@ const usePresence = props => {
|
|
|
158
167
|
if (isPresent) setWasEverPresent(true);
|
|
159
168
|
});
|
|
160
169
|
return solidJs.createMemo(() => ({
|
|
161
|
-
isUnmounted: !api().isPresent && !wasEverPresent() &&
|
|
170
|
+
isUnmounted: !api().isPresent && !wasEverPresent() && renderStrategyProps.lazyMount || renderStrategyProps.unmountOnExit && !api().isPresent && wasEverPresent(),
|
|
162
171
|
isPresent: api().isPresent,
|
|
163
172
|
presenceProps: {
|
|
164
173
|
ref: api().setNode,
|
|
165
174
|
hidden: !api().isPresent,
|
|
166
|
-
'data-state':
|
|
175
|
+
'data-state': context.present ? 'open' : 'closed'
|
|
167
176
|
}
|
|
168
177
|
}));
|
|
169
178
|
};
|
|
@@ -190,11 +199,6 @@ const [PresenceProvider, usePresenceContext] = createContext({
|
|
|
190
199
|
providerName: '<PresenceProvider />'
|
|
191
200
|
});
|
|
192
201
|
|
|
193
|
-
const [PresencePropsProvider, usePresencePropsContext] = createContext({
|
|
194
|
-
hookName: 'usePresencePropsContext',
|
|
195
|
-
providerName: '<PresencePropsProvider />'
|
|
196
|
-
});
|
|
197
|
-
|
|
198
202
|
const isFunction = value => typeof value === 'function';
|
|
199
203
|
const runIfFn = (valueOrFn, ...args) => isFunction(valueOrFn) ? valueOrFn(...args) : valueOrFn;
|
|
200
204
|
|
|
@@ -206,8 +210,8 @@ const [AccordionItemProvider, useAccordionItemContext] = createContext({
|
|
|
206
210
|
const AccordionItem = props => {
|
|
207
211
|
const [itemProps, localProps] = createSplitProps()(props, ['value', 'disabled']);
|
|
208
212
|
const api = useAccordionContext();
|
|
209
|
-
const
|
|
210
|
-
const presenceApi = usePresence(solid.mergeProps(
|
|
213
|
+
const renderStrategyProps = useRenderStrategyContext();
|
|
214
|
+
const presenceApi = usePresence(solid.mergeProps(renderStrategyProps, () => ({
|
|
211
215
|
present: api().getItemState(itemProps).isOpen
|
|
212
216
|
})));
|
|
213
217
|
const mergedProps = solid.mergeProps(() => api().getItemProps(itemProps), localProps);
|
|
@@ -300,15 +304,15 @@ const useAccordion = props => {
|
|
|
300
304
|
};
|
|
301
305
|
|
|
302
306
|
const AccordionRoot = props => {
|
|
303
|
-
const [
|
|
307
|
+
const [renderStrategyProps, accordionProps] = splitRenderStrategyProps(props);
|
|
304
308
|
const [useAccordionProps, localProps] = createSplitProps()(accordionProps, ['collapsible', 'dir', 'disabled', 'getRootNode', 'id', 'ids', 'multiple', 'onFocusChange', 'onValueChange', 'orientation', 'value']);
|
|
305
309
|
const api = useAccordion(useAccordionProps);
|
|
306
310
|
const mergedProps = solid.mergeProps(() => api().rootProps, localProps);
|
|
307
311
|
return web.createComponent(AccordionProvider, {
|
|
308
312
|
value: api,
|
|
309
313
|
get children() {
|
|
310
|
-
return web.createComponent(
|
|
311
|
-
value:
|
|
314
|
+
return web.createComponent(RenderStrategyProvider, {
|
|
315
|
+
value: renderStrategyProps,
|
|
312
316
|
get children() {
|
|
313
317
|
return web.createComponent(ark.div, mergedProps);
|
|
314
318
|
}
|
|
@@ -535,6 +539,167 @@ var checkbox = /*#__PURE__*/Object.freeze({
|
|
|
535
539
|
Root: CheckboxRoot
|
|
536
540
|
});
|
|
537
541
|
|
|
542
|
+
const [ClipboardProvider, useClipboardContext] = createContext({
|
|
543
|
+
hookName: 'useClipboardContext',
|
|
544
|
+
providerName: '<ClipboardProvider />'
|
|
545
|
+
});
|
|
546
|
+
|
|
547
|
+
const ClipboardControl = props => {
|
|
548
|
+
const api = useClipboardContext();
|
|
549
|
+
const mergedProps = solid.mergeProps(() => api().controlProps, props);
|
|
550
|
+
return web.createComponent(ark.div, mergedProps);
|
|
551
|
+
};
|
|
552
|
+
|
|
553
|
+
const ClipboardIndicator = props => {
|
|
554
|
+
const [indicatorProps, localProps] = createSplitProps()(props, ['copied']);
|
|
555
|
+
const api = useClipboardContext();
|
|
556
|
+
const mergedProps = solid.mergeProps(api().getIndicatorProps({
|
|
557
|
+
copied: api().isCopied
|
|
558
|
+
}), localProps);
|
|
559
|
+
const getChildren = solidJs.children(() => localProps.children);
|
|
560
|
+
return web.createComponent(ark.div, web.mergeProps(mergedProps, {
|
|
561
|
+
get children() {
|
|
562
|
+
return web.createComponent(solidJs.Show, {
|
|
563
|
+
get when() {
|
|
564
|
+
return api().isCopied;
|
|
565
|
+
},
|
|
566
|
+
get fallback() {
|
|
567
|
+
return getChildren();
|
|
568
|
+
},
|
|
569
|
+
get children() {
|
|
570
|
+
return indicatorProps.copied;
|
|
571
|
+
}
|
|
572
|
+
});
|
|
573
|
+
}
|
|
574
|
+
}));
|
|
575
|
+
};
|
|
576
|
+
|
|
577
|
+
const ClipboardInput = props => {
|
|
578
|
+
const api = useClipboardContext();
|
|
579
|
+
const mergedProps = solid.mergeProps(() => api().inputProps, props);
|
|
580
|
+
return web.createComponent(ark.input, mergedProps);
|
|
581
|
+
};
|
|
582
|
+
|
|
583
|
+
const ClipboardLabel = props => {
|
|
584
|
+
const api = useClipboardContext();
|
|
585
|
+
const mergedProps = solid.mergeProps(() => api().labelProps, props);
|
|
586
|
+
return web.createComponent(ark.label, mergedProps);
|
|
587
|
+
};
|
|
588
|
+
|
|
589
|
+
const useClipboard = props => {
|
|
590
|
+
const getRootNode = useEnvironmentContext();
|
|
591
|
+
const context = solid.mergeProps({
|
|
592
|
+
id: solidJs.createUniqueId(),
|
|
593
|
+
getRootNode
|
|
594
|
+
}, props);
|
|
595
|
+
const [state, send] = solid.useMachine(clipboard__namespace.machine(context), {
|
|
596
|
+
context
|
|
597
|
+
});
|
|
598
|
+
return solidJs.createMemo(() => clipboard__namespace.connect(state, send, solid.normalizeProps));
|
|
599
|
+
};
|
|
600
|
+
|
|
601
|
+
const ClipboardRoot = props => {
|
|
602
|
+
const [useClipboardProps, localProps] = createSplitProps()(props, ['getRootNode', 'id', 'ids', 'value', 'timeout', 'onCopyStatusChange']);
|
|
603
|
+
const api = useClipboard(useClipboardProps);
|
|
604
|
+
const mergedProps = solid.mergeProps(() => api().rootProps, localProps);
|
|
605
|
+
const getChildren = () => runIfFn(localProps.children, api);
|
|
606
|
+
return web.createComponent(ClipboardProvider, {
|
|
607
|
+
value: api,
|
|
608
|
+
get children() {
|
|
609
|
+
return web.createComponent(ark.div, web.mergeProps(mergedProps, {
|
|
610
|
+
get children() {
|
|
611
|
+
return getChildren();
|
|
612
|
+
}
|
|
613
|
+
}));
|
|
614
|
+
}
|
|
615
|
+
});
|
|
616
|
+
};
|
|
617
|
+
|
|
618
|
+
const ClipboardTrigger = props => {
|
|
619
|
+
const api = useClipboardContext();
|
|
620
|
+
const mergedProps = solid.mergeProps(() => api().triggerProps, props);
|
|
621
|
+
return web.createComponent(ark.button, mergedProps);
|
|
622
|
+
};
|
|
623
|
+
|
|
624
|
+
var clipboard = /*#__PURE__*/Object.freeze({
|
|
625
|
+
__proto__: null,
|
|
626
|
+
Control: ClipboardControl,
|
|
627
|
+
Indicator: ClipboardIndicator,
|
|
628
|
+
Input: ClipboardInput,
|
|
629
|
+
Label: ClipboardLabel,
|
|
630
|
+
Root: ClipboardRoot,
|
|
631
|
+
Trigger: ClipboardTrigger
|
|
632
|
+
});
|
|
633
|
+
|
|
634
|
+
const [CollapsibleProvider, useCollapsibleContext] = createContext({
|
|
635
|
+
hookName: 'useCollapsibleContext',
|
|
636
|
+
providerName: '<CollapsibleProvider />'
|
|
637
|
+
});
|
|
638
|
+
|
|
639
|
+
const CollapsibleContent = props => {
|
|
640
|
+
const api = useCollapsibleContext();
|
|
641
|
+
const mergedProps = solid.mergeProps(() => api().contentProps, props);
|
|
642
|
+
return web.createComponent(solidJs.Show, {
|
|
643
|
+
get when() {
|
|
644
|
+
return !api().isUnmounted;
|
|
645
|
+
},
|
|
646
|
+
get children() {
|
|
647
|
+
return web.createComponent(ark.div, mergedProps);
|
|
648
|
+
}
|
|
649
|
+
});
|
|
650
|
+
};
|
|
651
|
+
|
|
652
|
+
const useCollapsible = props => {
|
|
653
|
+
const getRootNode = useEnvironmentContext();
|
|
654
|
+
const [renderStrategyProps, collapsibleProps] = splitRenderStrategyProps(props);
|
|
655
|
+
const context = solid.mergeProps({
|
|
656
|
+
id: solidJs.createUniqueId(),
|
|
657
|
+
getRootNode
|
|
658
|
+
}, collapsibleProps);
|
|
659
|
+
const [state, send] = solid.useMachine(collapsible__namespace.machine(context), {
|
|
660
|
+
context
|
|
661
|
+
});
|
|
662
|
+
const [wasVisible, setWasVisible] = solidJs.createSignal(false);
|
|
663
|
+
solidJs.createEffect(() => {
|
|
664
|
+
const isPresent = api().isVisible;
|
|
665
|
+
if (isPresent) setWasVisible(true);
|
|
666
|
+
});
|
|
667
|
+
const api = solidJs.createMemo(() => collapsible__namespace.connect(state, send, solid.normalizeProps));
|
|
668
|
+
return solidJs.createMemo(() => ({
|
|
669
|
+
...api(),
|
|
670
|
+
isUnmounted: !api().isVisible && !wasVisible() && renderStrategyProps.lazyMount || renderStrategyProps.unmountOnExit && !api().isVisible && wasVisible()
|
|
671
|
+
}));
|
|
672
|
+
};
|
|
673
|
+
|
|
674
|
+
const CollapsibleRoot = props => {
|
|
675
|
+
const [params, localProps] = createSplitProps()(props, ['dir', 'disabled', 'getRootNode', 'id', 'ids', 'lazyMount', 'onExitComplete', 'onOpenChange', 'open', 'unmountOnExit']);
|
|
676
|
+
const api = useCollapsible(params);
|
|
677
|
+
const mergedProps = solid.mergeProps(() => api().rootProps, localProps);
|
|
678
|
+
return web.createComponent(CollapsibleProvider, {
|
|
679
|
+
value: api,
|
|
680
|
+
get children() {
|
|
681
|
+
return web.createComponent(ark.div, mergedProps);
|
|
682
|
+
}
|
|
683
|
+
});
|
|
684
|
+
};
|
|
685
|
+
|
|
686
|
+
const CollapsibleTrigger = props => {
|
|
687
|
+
const api = useCollapsibleContext();
|
|
688
|
+
const mergedProps = () => solid.mergeProps(api().triggerProps, props);
|
|
689
|
+
return web.createComponent(ark.button, web.mergeProps(mergedProps, {
|
|
690
|
+
get children() {
|
|
691
|
+
return props.children;
|
|
692
|
+
}
|
|
693
|
+
}));
|
|
694
|
+
};
|
|
695
|
+
|
|
696
|
+
var collapsible = /*#__PURE__*/Object.freeze({
|
|
697
|
+
__proto__: null,
|
|
698
|
+
Content: CollapsibleContent,
|
|
699
|
+
Root: CollapsibleRoot,
|
|
700
|
+
Trigger: CollapsibleTrigger
|
|
701
|
+
});
|
|
702
|
+
|
|
538
703
|
const [ColorPickerAreaProvider, useColorPickerAreaContext] = createContext({
|
|
539
704
|
hookName: 'useColorPickerAreaContext',
|
|
540
705
|
providerName: '<ColorPickerAreaProvider />'
|
|
@@ -687,8 +852,7 @@ const useColorPicker = props => {
|
|
|
687
852
|
const context = solid.mergeProps(() => ({
|
|
688
853
|
id: solidJs.createUniqueId(),
|
|
689
854
|
getRootNode,
|
|
690
|
-
value: local.value ? colorPicker__namespace.parse(local.value) : undefined
|
|
691
|
-
'open.controlled': props.open !== undefined
|
|
855
|
+
value: local.value ? colorPicker__namespace.parse(local.value) : undefined
|
|
692
856
|
}), rest);
|
|
693
857
|
const [state, send] = solid.useMachine(colorPicker__namespace.machine(context), {
|
|
694
858
|
context
|
|
@@ -1124,8 +1288,7 @@ const useDatePicker = props => {
|
|
|
1124
1288
|
id: solidJs.createUniqueId(),
|
|
1125
1289
|
getRootNode,
|
|
1126
1290
|
focusedValue: local.focusedValue ? datePicker__namespace.parse(local.focusedValue) : undefined,
|
|
1127
|
-
value: local.value ? datePicker__namespace.parse(local.value) : undefined
|
|
1128
|
-
'open.controlled': props.open !== undefined
|
|
1291
|
+
value: local.value ? datePicker__namespace.parse(local.value) : undefined
|
|
1129
1292
|
}), rest);
|
|
1130
1293
|
const [state, send] = solid.useMachine(datePicker__namespace.machine(context), {
|
|
1131
1294
|
context
|
|
@@ -1351,8 +1514,8 @@ const [DialogProvider, useDialogContext] = createContext({
|
|
|
1351
1514
|
|
|
1352
1515
|
const DialogBackdrop = props => {
|
|
1353
1516
|
const api = useDialogContext();
|
|
1354
|
-
const
|
|
1355
|
-
const presenceApi = usePresence(solid.mergeProps(
|
|
1517
|
+
const renderStrategyProps = useRenderStrategyContext();
|
|
1518
|
+
const presenceApi = usePresence(solid.mergeProps(renderStrategyProps, () => ({
|
|
1356
1519
|
present: api().isOpen
|
|
1357
1520
|
})));
|
|
1358
1521
|
const mergedProps = solid.mergeProps(() => api().backdropProps, () => presenceApi().presenceProps, props);
|
|
@@ -1410,8 +1573,7 @@ const useDialog = props => {
|
|
|
1410
1573
|
const getRootNode = useEnvironmentContext();
|
|
1411
1574
|
const context = solid.mergeProps({
|
|
1412
1575
|
id: solidJs.createUniqueId(),
|
|
1413
|
-
getRootNode
|
|
1414
|
-
'open.controlled': props.open !== undefined
|
|
1576
|
+
getRootNode
|
|
1415
1577
|
}, props);
|
|
1416
1578
|
const [state, send] = solid.useMachine(dialog__namespace.machine(context), {
|
|
1417
1579
|
context
|
|
@@ -1421,6 +1583,7 @@ const useDialog = props => {
|
|
|
1421
1583
|
|
|
1422
1584
|
const DialogRoot = props => {
|
|
1423
1585
|
const [presenceProps, dialogProps] = splitPresenceProps(props);
|
|
1586
|
+
const [renderStrategyProps] = splitRenderStrategyProps(presenceProps);
|
|
1424
1587
|
const [useDialogProps, localProps] = createSplitProps()(dialogProps, ['aria-label', 'closeOnEscapeKeyDown', 'closeOnInteractOutside', 'dir', 'finalFocusEl', 'getRootNode', 'id', 'ids', 'initialFocusEl', 'modal', 'onEscapeKeyDown', 'onFocusOutside', 'onInteractOutside', 'onOpenChange', 'onPointerDownOutside', 'open', 'preventScroll', 'restoreFocus', 'role', 'trapFocus']);
|
|
1425
1588
|
const api = useDialog(useDialogProps);
|
|
1426
1589
|
const apiPresence = usePresence(solid.mergeProps(presenceProps, () => ({
|
|
@@ -1430,8 +1593,8 @@ const DialogRoot = props => {
|
|
|
1430
1593
|
return web.createComponent(DialogProvider, {
|
|
1431
1594
|
value: api,
|
|
1432
1595
|
get children() {
|
|
1433
|
-
return web.createComponent(
|
|
1434
|
-
value:
|
|
1596
|
+
return web.createComponent(RenderStrategyProvider, {
|
|
1597
|
+
value: renderStrategyProps,
|
|
1435
1598
|
get children() {
|
|
1436
1599
|
return web.createComponent(PresenceProvider, {
|
|
1437
1600
|
value: apiPresence,
|
|
@@ -1772,8 +1935,7 @@ const useHoverCard = props => {
|
|
|
1772
1935
|
const getRootNode = useEnvironmentContext();
|
|
1773
1936
|
const context = solid.mergeProps({
|
|
1774
1937
|
id: solidJs.createUniqueId(),
|
|
1775
|
-
getRootNode
|
|
1776
|
-
'open.controlled': props.open !== undefined
|
|
1938
|
+
getRootNode
|
|
1777
1939
|
}, props);
|
|
1778
1940
|
const [state, send] = solid.useMachine(hoverCard__namespace.machine(context), {
|
|
1779
1941
|
context
|
|
@@ -1818,6 +1980,42 @@ var hoverCard = /*#__PURE__*/Object.freeze({
|
|
|
1818
1980
|
Trigger: HoverCardTrigger
|
|
1819
1981
|
});
|
|
1820
1982
|
|
|
1983
|
+
const [LocaleContextProvider, useLocaleContext] = createContext({
|
|
1984
|
+
hookName: 'useEnvironmentContext',
|
|
1985
|
+
providerName: '<EnvironmentProvider />',
|
|
1986
|
+
strict: false,
|
|
1987
|
+
defaultValue: () => ({
|
|
1988
|
+
dir: 'ltr',
|
|
1989
|
+
locale: 'en-US'
|
|
1990
|
+
})
|
|
1991
|
+
});
|
|
1992
|
+
|
|
1993
|
+
const LocaleProvider = props => {
|
|
1994
|
+
const [localeProps, restProps] = solidJs.splitProps(props, ['locale', 'defaultLocale']);
|
|
1995
|
+
const [locale, setLocale] = solidJs.createSignal(localeProps.defaultLocale || localeProps.locale || 'en-US');
|
|
1996
|
+
const getRootNode = useEnvironmentContext();
|
|
1997
|
+
solidJs.createEffect(() => {
|
|
1998
|
+
const cleanup = i18nUtils.trackLocale({
|
|
1999
|
+
locale: localeProps.locale,
|
|
2000
|
+
getRootNode,
|
|
2001
|
+
onLocaleChange(locale) {
|
|
2002
|
+
setLocale(locale.locale);
|
|
2003
|
+
}
|
|
2004
|
+
});
|
|
2005
|
+
solidJs.onCleanup(cleanup);
|
|
2006
|
+
});
|
|
2007
|
+
const context = solidJs.createMemo(() => ({
|
|
2008
|
+
locale: locale(),
|
|
2009
|
+
dir: i18nUtils.isRTL(locale()) ? 'rtl' : 'ltr'
|
|
2010
|
+
}));
|
|
2011
|
+
return web.createComponent(LocaleContextProvider, {
|
|
2012
|
+
value: context,
|
|
2013
|
+
get children() {
|
|
2014
|
+
return restProps.children;
|
|
2015
|
+
}
|
|
2016
|
+
});
|
|
2017
|
+
};
|
|
2018
|
+
|
|
1821
2019
|
const [MenuProvider, useMenuContext] = createContext({
|
|
1822
2020
|
hookName: 'useMenuContext',
|
|
1823
2021
|
providerName: '<MenuProvider />',
|
|
@@ -1920,8 +2118,7 @@ const useMenu = props => {
|
|
|
1920
2118
|
const getRootNode = useEnvironmentContext();
|
|
1921
2119
|
const context = solid.mergeProps({
|
|
1922
2120
|
id: solidJs.createUniqueId(),
|
|
1923
|
-
getRootNode
|
|
1924
|
-
'open.controlled': props.open !== undefined
|
|
2121
|
+
getRootNode
|
|
1925
2122
|
}, props);
|
|
1926
2123
|
const [state, send, machine] = solid.useMachine(menu__namespace.machine(context), {
|
|
1927
2124
|
context
|
|
@@ -2296,8 +2493,7 @@ const usePopover = props => {
|
|
|
2296
2493
|
const getRootNode = useEnvironmentContext();
|
|
2297
2494
|
const context = solid.mergeProps({
|
|
2298
2495
|
id: solidJs.createUniqueId(),
|
|
2299
|
-
getRootNode
|
|
2300
|
-
'open.controlled': props.open !== undefined
|
|
2496
|
+
getRootNode
|
|
2301
2497
|
}, props);
|
|
2302
2498
|
const [state, send] = solid.useMachine(popover__namespace.machine(context), {
|
|
2303
2499
|
context
|
|
@@ -2869,8 +3065,7 @@ const useSelect = props => {
|
|
|
2869
3065
|
const context = () => solid.mergeProps({
|
|
2870
3066
|
id: solidJs.createUniqueId(),
|
|
2871
3067
|
getRootNode,
|
|
2872
|
-
collection: collection()
|
|
2873
|
-
'open.controlled': props.open !== undefined
|
|
3068
|
+
collection: collection()
|
|
2874
3069
|
}, rest);
|
|
2875
3070
|
const [state, send] = solid.useMachine(select__namespace.machine(context()), {
|
|
2876
3071
|
context
|
|
@@ -3072,7 +3267,7 @@ const useSplitter = props => {
|
|
|
3072
3267
|
};
|
|
3073
3268
|
|
|
3074
3269
|
const SplitterRoot = props => {
|
|
3075
|
-
const [splitterParams, localProps] = createSplitProps()(props, ['dir', 'getRootNode', 'id', 'ids', 'onSizeChange', 'onSizeChangeEnd', '
|
|
3270
|
+
const [splitterParams, localProps] = createSplitProps()(props, ['dir', 'getRootNode', 'id', 'ids', 'onSizeChange', 'onSizeChangeEnd', 'orientation', 'size']);
|
|
3076
3271
|
const api = useSplitter(splitterParams);
|
|
3077
3272
|
const getChildren = () => runIfFn(localProps.children, api);
|
|
3078
3273
|
const mergedProps = solid.mergeProps(() => api().rootProps, localProps);
|
|
@@ -3168,8 +3363,8 @@ const [TabsProvider, useTabsContext] = createContext({
|
|
|
3168
3363
|
const TabContent = props => {
|
|
3169
3364
|
const [contentProps, localProps] = createSplitProps()(props, ['value']);
|
|
3170
3365
|
const api = useTabsContext();
|
|
3171
|
-
const
|
|
3172
|
-
const presenceApi = usePresence(solid.mergeProps(
|
|
3366
|
+
const renderStrategyProps = useRenderStrategyContext();
|
|
3367
|
+
const presenceApi = usePresence(solid.mergeProps(renderStrategyProps, () => ({
|
|
3173
3368
|
present: api().value === contentProps.value
|
|
3174
3369
|
})));
|
|
3175
3370
|
const mergedProps = solid.mergeProps(() => api().getContentProps(contentProps), () => presenceApi().presenceProps, localProps);
|
|
@@ -3220,15 +3415,15 @@ const useTabs = props => {
|
|
|
3220
3415
|
};
|
|
3221
3416
|
|
|
3222
3417
|
const TabsRoot = props => {
|
|
3223
|
-
const [
|
|
3418
|
+
const [renderStrategyProps, tabsProps] = splitRenderStrategyProps(props);
|
|
3224
3419
|
const [tabsParams, restProps] = createSplitProps()(tabsProps, ['activationMode', 'dir', 'getRootNode', 'id', 'ids', 'loop', 'onFocusChange', 'onValueChange', 'orientation', 'translations', 'value']);
|
|
3225
3420
|
const api = useTabs(tabsParams);
|
|
3226
3421
|
const mergedProps = solid.mergeProps(() => api().rootProps, restProps);
|
|
3227
3422
|
return web.createComponent(TabsProvider, {
|
|
3228
3423
|
value: api,
|
|
3229
3424
|
get children() {
|
|
3230
|
-
return web.createComponent(
|
|
3231
|
-
value:
|
|
3425
|
+
return web.createComponent(RenderStrategyProvider, {
|
|
3426
|
+
value: renderStrategyProps,
|
|
3232
3427
|
get children() {
|
|
3233
3428
|
return web.createComponent(ark.div, mergedProps);
|
|
3234
3429
|
}
|
|
@@ -3552,8 +3747,7 @@ const useTooltip = props => {
|
|
|
3552
3747
|
const getRootNode = useEnvironmentContext();
|
|
3553
3748
|
const context = solid.mergeProps({
|
|
3554
3749
|
id: solidJs.createUniqueId(),
|
|
3555
|
-
getRootNode
|
|
3556
|
-
'open.controlled': props.open !== undefined
|
|
3750
|
+
getRootNode
|
|
3557
3751
|
}, props);
|
|
3558
3752
|
const [state, send] = solid.useMachine(tooltip__namespace.machine(context), {
|
|
3559
3753
|
context
|
|
@@ -3656,9 +3850,7 @@ const TreeViewBranchControl = props => {
|
|
|
3656
3850
|
const TreeViewBranchIndicator = props => {
|
|
3657
3851
|
const api = useTreeViewContext();
|
|
3658
3852
|
const branchProps = useTreeViewBranchContext();
|
|
3659
|
-
const mergedProps = solid.mergeProps(() => api().
|
|
3660
|
-
// TODO use api.getBranchIndicatorProps() when available
|
|
3661
|
-
anatomy.treeViewAnatomy.build().branchIndicator.attrs, props);
|
|
3853
|
+
const mergedProps = solid.mergeProps(() => api().getBranchIndicatorProps(branchProps), props);
|
|
3662
3854
|
return web.createComponent(ark.div, mergedProps);
|
|
3663
3855
|
};
|
|
3664
3856
|
|
|
@@ -3803,6 +3995,17 @@ exports.CheckboxControl = CheckboxControl;
|
|
|
3803
3995
|
exports.CheckboxIndicator = CheckboxIndicator;
|
|
3804
3996
|
exports.CheckboxLabel = CheckboxLabel;
|
|
3805
3997
|
exports.CheckboxRoot = CheckboxRoot;
|
|
3998
|
+
exports.Clipboard = clipboard;
|
|
3999
|
+
exports.ClipboardControl = ClipboardControl;
|
|
4000
|
+
exports.ClipboardIndicator = ClipboardIndicator;
|
|
4001
|
+
exports.ClipboardInput = ClipboardInput;
|
|
4002
|
+
exports.ClipboardLabel = ClipboardLabel;
|
|
4003
|
+
exports.ClipboardRoot = ClipboardRoot;
|
|
4004
|
+
exports.ClipboardTrigger = ClipboardTrigger;
|
|
4005
|
+
exports.Collapsible = collapsible;
|
|
4006
|
+
exports.CollapsibleContent = CollapsibleContent;
|
|
4007
|
+
exports.CollapsibleRoot = CollapsibleRoot;
|
|
4008
|
+
exports.CollapsibleTrigger = CollapsibleTrigger;
|
|
3806
4009
|
exports.ColorPicker = colorPicker;
|
|
3807
4010
|
exports.ColorPickerArea = ColorPickerArea;
|
|
3808
4011
|
exports.ColorPickerAreaBackground = ColorPickerAreaBackground;
|
|
@@ -3905,6 +4108,7 @@ exports.HoverCardContent = HoverCardContent;
|
|
|
3905
4108
|
exports.HoverCardPositioner = HoverCardPositioner;
|
|
3906
4109
|
exports.HoverCardRoot = HoverCardRoot;
|
|
3907
4110
|
exports.HoverCardTrigger = HoverCardTrigger;
|
|
4111
|
+
exports.LocaleProvider = LocaleProvider;
|
|
3908
4112
|
exports.Menu = menu;
|
|
3909
4113
|
exports.MenuArrow = MenuArrow;
|
|
3910
4114
|
exports.MenuArrowTip = MenuArrowTip;
|
|
@@ -3951,7 +4155,6 @@ exports.PopoverRoot = PopoverRoot;
|
|
|
3951
4155
|
exports.PopoverTitle = PopoverTitle;
|
|
3952
4156
|
exports.PopoverTrigger = PopoverTrigger;
|
|
3953
4157
|
exports.Presence = Presence;
|
|
3954
|
-
exports.PresencePropsProvider = PresencePropsProvider;
|
|
3955
4158
|
exports.PresenceProvider = PresenceProvider;
|
|
3956
4159
|
exports.Progress = progress;
|
|
3957
4160
|
exports.ProgressCircle = ProgressCircle;
|
|
@@ -4070,6 +4273,8 @@ exports.useAccordionItemContext = useAccordionItemContext;
|
|
|
4070
4273
|
exports.useAvatarContext = useAvatarContext;
|
|
4071
4274
|
exports.useCarouselContext = useCarouselContext;
|
|
4072
4275
|
exports.useCheckboxContext = useCheckboxContext;
|
|
4276
|
+
exports.useClipboardContext = useClipboardContext;
|
|
4277
|
+
exports.useCollapsibleContext = useCollapsibleContext;
|
|
4073
4278
|
exports.useColorPickerAreaContext = useColorPickerAreaContext;
|
|
4074
4279
|
exports.useColorPickerChannelSliderContext = useColorPickerChannelSliderContext;
|
|
4075
4280
|
exports.useColorPickerContext = useColorPickerContext;
|
|
@@ -4083,6 +4288,7 @@ exports.useEditableContext = useEditableContext;
|
|
|
4083
4288
|
exports.useEnvironmentContext = useEnvironmentContext;
|
|
4084
4289
|
exports.useFileUploadContext = useFileUploadContext;
|
|
4085
4290
|
exports.useHoverCardContext = useHoverCardContext;
|
|
4291
|
+
exports.useLocaleContext = useLocaleContext;
|
|
4086
4292
|
exports.useMenuContext = useMenuContext;
|
|
4087
4293
|
exports.useNumberInputContext = useNumberInputContext;
|
|
4088
4294
|
exports.usePaginationContext = usePaginationContext;
|
|
@@ -4090,7 +4296,6 @@ exports.usePinInputContext = usePinInputContext;
|
|
|
4090
4296
|
exports.usePopoverContext = usePopoverContext;
|
|
4091
4297
|
exports.usePresence = usePresence;
|
|
4092
4298
|
exports.usePresenceContext = usePresenceContext;
|
|
4093
|
-
exports.usePresencePropsContext = usePresencePropsContext;
|
|
4094
4299
|
exports.useProgressContext = useProgressContext;
|
|
4095
4300
|
exports.useRadioGroupContext = useRadioGroupContext;
|
|
4096
4301
|
exports.useRadioGroupItemContext = useRadioGroupItemContext;
|