@ark-ui/solid 2.1.1 → 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 +44 -0
- package/cjs/index.js +113 -49
- package/cjs/index.js.map +1 -1
- package/esm/index.js +109 -49
- 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/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 +1 -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/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 +1 -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,50 @@ 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
|
+
|
|
9
53
|
## [2.1.1] - 2024-02-16
|
|
10
54
|
|
|
11
55
|
### Fixed
|
package/cjs/index.js
CHANGED
|
@@ -10,6 +10,7 @@ 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
12
|
var clipboard$1 = require('@zag-js/clipboard');
|
|
13
|
+
var collapsible$1 = require('@zag-js/collapsible');
|
|
13
14
|
var colorPicker$1 = require('@zag-js/color-picker');
|
|
14
15
|
var combobox$1 = require('@zag-js/combobox');
|
|
15
16
|
var datePicker$1 = require('@zag-js/date-picker');
|
|
@@ -60,6 +61,7 @@ var avatar__namespace = /*#__PURE__*/_interopNamespaceDefault(avatar$1);
|
|
|
60
61
|
var carousel__namespace = /*#__PURE__*/_interopNamespaceDefault(carousel$1);
|
|
61
62
|
var checkbox__namespace = /*#__PURE__*/_interopNamespaceDefault(checkbox$1);
|
|
62
63
|
var clipboard__namespace = /*#__PURE__*/_interopNamespaceDefault(clipboard$1);
|
|
64
|
+
var collapsible__namespace = /*#__PURE__*/_interopNamespaceDefault(collapsible$1);
|
|
63
65
|
var colorPicker__namespace = /*#__PURE__*/_interopNamespaceDefault(colorPicker$1);
|
|
64
66
|
var combobox__namespace = /*#__PURE__*/_interopNamespaceDefault(combobox$1);
|
|
65
67
|
var datePicker__namespace = /*#__PURE__*/_interopNamespaceDefault(datePicker$1);
|
|
@@ -145,15 +147,19 @@ function jsxFactory() {
|
|
|
145
147
|
}
|
|
146
148
|
const ark = jsxFactory();
|
|
147
149
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
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']);
|
|
151
157
|
|
|
152
158
|
const usePresence = props => {
|
|
153
|
-
const [
|
|
159
|
+
const [renderStrategyProps, context] = splitRenderStrategyProps(props);
|
|
154
160
|
const [wasEverPresent, setWasEverPresent] = solidJs.createSignal(false);
|
|
155
|
-
const [state, send] = solid.useMachine(presence__namespace.machine(
|
|
156
|
-
context
|
|
161
|
+
const [state, send] = solid.useMachine(presence__namespace.machine(context), {
|
|
162
|
+
context
|
|
157
163
|
});
|
|
158
164
|
const api = solidJs.createMemo(() => presence__namespace.connect(state, send, solid.normalizeProps));
|
|
159
165
|
solidJs.createEffect(() => {
|
|
@@ -161,12 +167,12 @@ const usePresence = props => {
|
|
|
161
167
|
if (isPresent) setWasEverPresent(true);
|
|
162
168
|
});
|
|
163
169
|
return solidJs.createMemo(() => ({
|
|
164
|
-
isUnmounted: !api().isPresent && !wasEverPresent() &&
|
|
170
|
+
isUnmounted: !api().isPresent && !wasEverPresent() && renderStrategyProps.lazyMount || renderStrategyProps.unmountOnExit && !api().isPresent && wasEverPresent(),
|
|
165
171
|
isPresent: api().isPresent,
|
|
166
172
|
presenceProps: {
|
|
167
173
|
ref: api().setNode,
|
|
168
174
|
hidden: !api().isPresent,
|
|
169
|
-
'data-state':
|
|
175
|
+
'data-state': context.present ? 'open' : 'closed'
|
|
170
176
|
}
|
|
171
177
|
}));
|
|
172
178
|
};
|
|
@@ -193,11 +199,6 @@ const [PresenceProvider, usePresenceContext] = createContext({
|
|
|
193
199
|
providerName: '<PresenceProvider />'
|
|
194
200
|
});
|
|
195
201
|
|
|
196
|
-
const [PresencePropsProvider, usePresencePropsContext] = createContext({
|
|
197
|
-
hookName: 'usePresencePropsContext',
|
|
198
|
-
providerName: '<PresencePropsProvider />'
|
|
199
|
-
});
|
|
200
|
-
|
|
201
202
|
const isFunction = value => typeof value === 'function';
|
|
202
203
|
const runIfFn = (valueOrFn, ...args) => isFunction(valueOrFn) ? valueOrFn(...args) : valueOrFn;
|
|
203
204
|
|
|
@@ -209,8 +210,8 @@ const [AccordionItemProvider, useAccordionItemContext] = createContext({
|
|
|
209
210
|
const AccordionItem = props => {
|
|
210
211
|
const [itemProps, localProps] = createSplitProps()(props, ['value', 'disabled']);
|
|
211
212
|
const api = useAccordionContext();
|
|
212
|
-
const
|
|
213
|
-
const presenceApi = usePresence(solid.mergeProps(
|
|
213
|
+
const renderStrategyProps = useRenderStrategyContext();
|
|
214
|
+
const presenceApi = usePresence(solid.mergeProps(renderStrategyProps, () => ({
|
|
214
215
|
present: api().getItemState(itemProps).isOpen
|
|
215
216
|
})));
|
|
216
217
|
const mergedProps = solid.mergeProps(() => api().getItemProps(itemProps), localProps);
|
|
@@ -303,15 +304,15 @@ const useAccordion = props => {
|
|
|
303
304
|
};
|
|
304
305
|
|
|
305
306
|
const AccordionRoot = props => {
|
|
306
|
-
const [
|
|
307
|
+
const [renderStrategyProps, accordionProps] = splitRenderStrategyProps(props);
|
|
307
308
|
const [useAccordionProps, localProps] = createSplitProps()(accordionProps, ['collapsible', 'dir', 'disabled', 'getRootNode', 'id', 'ids', 'multiple', 'onFocusChange', 'onValueChange', 'orientation', 'value']);
|
|
308
309
|
const api = useAccordion(useAccordionProps);
|
|
309
310
|
const mergedProps = solid.mergeProps(() => api().rootProps, localProps);
|
|
310
311
|
return web.createComponent(AccordionProvider, {
|
|
311
312
|
value: api,
|
|
312
313
|
get children() {
|
|
313
|
-
return web.createComponent(
|
|
314
|
-
value:
|
|
314
|
+
return web.createComponent(RenderStrategyProvider, {
|
|
315
|
+
value: renderStrategyProps,
|
|
315
316
|
get children() {
|
|
316
317
|
return web.createComponent(ark.div, mergedProps);
|
|
317
318
|
}
|
|
@@ -630,6 +631,75 @@ var clipboard = /*#__PURE__*/Object.freeze({
|
|
|
630
631
|
Trigger: ClipboardTrigger
|
|
631
632
|
});
|
|
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
|
+
|
|
633
703
|
const [ColorPickerAreaProvider, useColorPickerAreaContext] = createContext({
|
|
634
704
|
hookName: 'useColorPickerAreaContext',
|
|
635
705
|
providerName: '<ColorPickerAreaProvider />'
|
|
@@ -782,8 +852,7 @@ const useColorPicker = props => {
|
|
|
782
852
|
const context = solid.mergeProps(() => ({
|
|
783
853
|
id: solidJs.createUniqueId(),
|
|
784
854
|
getRootNode,
|
|
785
|
-
value: local.value ? colorPicker__namespace.parse(local.value) : undefined
|
|
786
|
-
'open.controlled': props.open !== undefined
|
|
855
|
+
value: local.value ? colorPicker__namespace.parse(local.value) : undefined
|
|
787
856
|
}), rest);
|
|
788
857
|
const [state, send] = solid.useMachine(colorPicker__namespace.machine(context), {
|
|
789
858
|
context
|
|
@@ -1219,8 +1288,7 @@ const useDatePicker = props => {
|
|
|
1219
1288
|
id: solidJs.createUniqueId(),
|
|
1220
1289
|
getRootNode,
|
|
1221
1290
|
focusedValue: local.focusedValue ? datePicker__namespace.parse(local.focusedValue) : undefined,
|
|
1222
|
-
value: local.value ? datePicker__namespace.parse(local.value) : undefined
|
|
1223
|
-
'open.controlled': props.open !== undefined
|
|
1291
|
+
value: local.value ? datePicker__namespace.parse(local.value) : undefined
|
|
1224
1292
|
}), rest);
|
|
1225
1293
|
const [state, send] = solid.useMachine(datePicker__namespace.machine(context), {
|
|
1226
1294
|
context
|
|
@@ -1446,8 +1514,8 @@ const [DialogProvider, useDialogContext] = createContext({
|
|
|
1446
1514
|
|
|
1447
1515
|
const DialogBackdrop = props => {
|
|
1448
1516
|
const api = useDialogContext();
|
|
1449
|
-
const
|
|
1450
|
-
const presenceApi = usePresence(solid.mergeProps(
|
|
1517
|
+
const renderStrategyProps = useRenderStrategyContext();
|
|
1518
|
+
const presenceApi = usePresence(solid.mergeProps(renderStrategyProps, () => ({
|
|
1451
1519
|
present: api().isOpen
|
|
1452
1520
|
})));
|
|
1453
1521
|
const mergedProps = solid.mergeProps(() => api().backdropProps, () => presenceApi().presenceProps, props);
|
|
@@ -1505,8 +1573,7 @@ const useDialog = props => {
|
|
|
1505
1573
|
const getRootNode = useEnvironmentContext();
|
|
1506
1574
|
const context = solid.mergeProps({
|
|
1507
1575
|
id: solidJs.createUniqueId(),
|
|
1508
|
-
getRootNode
|
|
1509
|
-
'open.controlled': props.open !== undefined
|
|
1576
|
+
getRootNode
|
|
1510
1577
|
}, props);
|
|
1511
1578
|
const [state, send] = solid.useMachine(dialog__namespace.machine(context), {
|
|
1512
1579
|
context
|
|
@@ -1516,6 +1583,7 @@ const useDialog = props => {
|
|
|
1516
1583
|
|
|
1517
1584
|
const DialogRoot = props => {
|
|
1518
1585
|
const [presenceProps, dialogProps] = splitPresenceProps(props);
|
|
1586
|
+
const [renderStrategyProps] = splitRenderStrategyProps(presenceProps);
|
|
1519
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']);
|
|
1520
1588
|
const api = useDialog(useDialogProps);
|
|
1521
1589
|
const apiPresence = usePresence(solid.mergeProps(presenceProps, () => ({
|
|
@@ -1525,8 +1593,8 @@ const DialogRoot = props => {
|
|
|
1525
1593
|
return web.createComponent(DialogProvider, {
|
|
1526
1594
|
value: api,
|
|
1527
1595
|
get children() {
|
|
1528
|
-
return web.createComponent(
|
|
1529
|
-
value:
|
|
1596
|
+
return web.createComponent(RenderStrategyProvider, {
|
|
1597
|
+
value: renderStrategyProps,
|
|
1530
1598
|
get children() {
|
|
1531
1599
|
return web.createComponent(PresenceProvider, {
|
|
1532
1600
|
value: apiPresence,
|
|
@@ -1867,8 +1935,7 @@ const useHoverCard = props => {
|
|
|
1867
1935
|
const getRootNode = useEnvironmentContext();
|
|
1868
1936
|
const context = solid.mergeProps({
|
|
1869
1937
|
id: solidJs.createUniqueId(),
|
|
1870
|
-
getRootNode
|
|
1871
|
-
'open.controlled': props.open !== undefined
|
|
1938
|
+
getRootNode
|
|
1872
1939
|
}, props);
|
|
1873
1940
|
const [state, send] = solid.useMachine(hoverCard__namespace.machine(context), {
|
|
1874
1941
|
context
|
|
@@ -2051,8 +2118,7 @@ const useMenu = props => {
|
|
|
2051
2118
|
const getRootNode = useEnvironmentContext();
|
|
2052
2119
|
const context = solid.mergeProps({
|
|
2053
2120
|
id: solidJs.createUniqueId(),
|
|
2054
|
-
getRootNode
|
|
2055
|
-
'open.controlled': props.open !== undefined
|
|
2121
|
+
getRootNode
|
|
2056
2122
|
}, props);
|
|
2057
2123
|
const [state, send, machine] = solid.useMachine(menu__namespace.machine(context), {
|
|
2058
2124
|
context
|
|
@@ -2427,8 +2493,7 @@ const usePopover = props => {
|
|
|
2427
2493
|
const getRootNode = useEnvironmentContext();
|
|
2428
2494
|
const context = solid.mergeProps({
|
|
2429
2495
|
id: solidJs.createUniqueId(),
|
|
2430
|
-
getRootNode
|
|
2431
|
-
'open.controlled': props.open !== undefined
|
|
2496
|
+
getRootNode
|
|
2432
2497
|
}, props);
|
|
2433
2498
|
const [state, send] = solid.useMachine(popover__namespace.machine(context), {
|
|
2434
2499
|
context
|
|
@@ -3000,8 +3065,7 @@ const useSelect = props => {
|
|
|
3000
3065
|
const context = () => solid.mergeProps({
|
|
3001
3066
|
id: solidJs.createUniqueId(),
|
|
3002
3067
|
getRootNode,
|
|
3003
|
-
collection: collection()
|
|
3004
|
-
'open.controlled': props.open !== undefined
|
|
3068
|
+
collection: collection()
|
|
3005
3069
|
}, rest);
|
|
3006
3070
|
const [state, send] = solid.useMachine(select__namespace.machine(context()), {
|
|
3007
3071
|
context
|
|
@@ -3203,7 +3267,7 @@ const useSplitter = props => {
|
|
|
3203
3267
|
};
|
|
3204
3268
|
|
|
3205
3269
|
const SplitterRoot = props => {
|
|
3206
|
-
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']);
|
|
3207
3271
|
const api = useSplitter(splitterParams);
|
|
3208
3272
|
const getChildren = () => runIfFn(localProps.children, api);
|
|
3209
3273
|
const mergedProps = solid.mergeProps(() => api().rootProps, localProps);
|
|
@@ -3299,8 +3363,8 @@ const [TabsProvider, useTabsContext] = createContext({
|
|
|
3299
3363
|
const TabContent = props => {
|
|
3300
3364
|
const [contentProps, localProps] = createSplitProps()(props, ['value']);
|
|
3301
3365
|
const api = useTabsContext();
|
|
3302
|
-
const
|
|
3303
|
-
const presenceApi = usePresence(solid.mergeProps(
|
|
3366
|
+
const renderStrategyProps = useRenderStrategyContext();
|
|
3367
|
+
const presenceApi = usePresence(solid.mergeProps(renderStrategyProps, () => ({
|
|
3304
3368
|
present: api().value === contentProps.value
|
|
3305
3369
|
})));
|
|
3306
3370
|
const mergedProps = solid.mergeProps(() => api().getContentProps(contentProps), () => presenceApi().presenceProps, localProps);
|
|
@@ -3351,15 +3415,15 @@ const useTabs = props => {
|
|
|
3351
3415
|
};
|
|
3352
3416
|
|
|
3353
3417
|
const TabsRoot = props => {
|
|
3354
|
-
const [
|
|
3418
|
+
const [renderStrategyProps, tabsProps] = splitRenderStrategyProps(props);
|
|
3355
3419
|
const [tabsParams, restProps] = createSplitProps()(tabsProps, ['activationMode', 'dir', 'getRootNode', 'id', 'ids', 'loop', 'onFocusChange', 'onValueChange', 'orientation', 'translations', 'value']);
|
|
3356
3420
|
const api = useTabs(tabsParams);
|
|
3357
3421
|
const mergedProps = solid.mergeProps(() => api().rootProps, restProps);
|
|
3358
3422
|
return web.createComponent(TabsProvider, {
|
|
3359
3423
|
value: api,
|
|
3360
3424
|
get children() {
|
|
3361
|
-
return web.createComponent(
|
|
3362
|
-
value:
|
|
3425
|
+
return web.createComponent(RenderStrategyProvider, {
|
|
3426
|
+
value: renderStrategyProps,
|
|
3363
3427
|
get children() {
|
|
3364
3428
|
return web.createComponent(ark.div, mergedProps);
|
|
3365
3429
|
}
|
|
@@ -3683,8 +3747,7 @@ const useTooltip = props => {
|
|
|
3683
3747
|
const getRootNode = useEnvironmentContext();
|
|
3684
3748
|
const context = solid.mergeProps({
|
|
3685
3749
|
id: solidJs.createUniqueId(),
|
|
3686
|
-
getRootNode
|
|
3687
|
-
'open.controlled': props.open !== undefined
|
|
3750
|
+
getRootNode
|
|
3688
3751
|
}, props);
|
|
3689
3752
|
const [state, send] = solid.useMachine(tooltip__namespace.machine(context), {
|
|
3690
3753
|
context
|
|
@@ -3787,9 +3850,7 @@ const TreeViewBranchControl = props => {
|
|
|
3787
3850
|
const TreeViewBranchIndicator = props => {
|
|
3788
3851
|
const api = useTreeViewContext();
|
|
3789
3852
|
const branchProps = useTreeViewBranchContext();
|
|
3790
|
-
const mergedProps = solid.mergeProps(() => api().
|
|
3791
|
-
// TODO use api.getBranchIndicatorProps() when available
|
|
3792
|
-
anatomy.treeViewAnatomy.build().branchIndicator.attrs, props);
|
|
3853
|
+
const mergedProps = solid.mergeProps(() => api().getBranchIndicatorProps(branchProps), props);
|
|
3793
3854
|
return web.createComponent(ark.div, mergedProps);
|
|
3794
3855
|
};
|
|
3795
3856
|
|
|
@@ -3941,6 +4002,10 @@ exports.ClipboardInput = ClipboardInput;
|
|
|
3941
4002
|
exports.ClipboardLabel = ClipboardLabel;
|
|
3942
4003
|
exports.ClipboardRoot = ClipboardRoot;
|
|
3943
4004
|
exports.ClipboardTrigger = ClipboardTrigger;
|
|
4005
|
+
exports.Collapsible = collapsible;
|
|
4006
|
+
exports.CollapsibleContent = CollapsibleContent;
|
|
4007
|
+
exports.CollapsibleRoot = CollapsibleRoot;
|
|
4008
|
+
exports.CollapsibleTrigger = CollapsibleTrigger;
|
|
3944
4009
|
exports.ColorPicker = colorPicker;
|
|
3945
4010
|
exports.ColorPickerArea = ColorPickerArea;
|
|
3946
4011
|
exports.ColorPickerAreaBackground = ColorPickerAreaBackground;
|
|
@@ -4090,7 +4155,6 @@ exports.PopoverRoot = PopoverRoot;
|
|
|
4090
4155
|
exports.PopoverTitle = PopoverTitle;
|
|
4091
4156
|
exports.PopoverTrigger = PopoverTrigger;
|
|
4092
4157
|
exports.Presence = Presence;
|
|
4093
|
-
exports.PresencePropsProvider = PresencePropsProvider;
|
|
4094
4158
|
exports.PresenceProvider = PresenceProvider;
|
|
4095
4159
|
exports.Progress = progress;
|
|
4096
4160
|
exports.ProgressCircle = ProgressCircle;
|
|
@@ -4210,6 +4274,7 @@ exports.useAvatarContext = useAvatarContext;
|
|
|
4210
4274
|
exports.useCarouselContext = useCarouselContext;
|
|
4211
4275
|
exports.useCheckboxContext = useCheckboxContext;
|
|
4212
4276
|
exports.useClipboardContext = useClipboardContext;
|
|
4277
|
+
exports.useCollapsibleContext = useCollapsibleContext;
|
|
4213
4278
|
exports.useColorPickerAreaContext = useColorPickerAreaContext;
|
|
4214
4279
|
exports.useColorPickerChannelSliderContext = useColorPickerChannelSliderContext;
|
|
4215
4280
|
exports.useColorPickerContext = useColorPickerContext;
|
|
@@ -4231,7 +4296,6 @@ exports.usePinInputContext = usePinInputContext;
|
|
|
4231
4296
|
exports.usePopoverContext = usePopoverContext;
|
|
4232
4297
|
exports.usePresence = usePresence;
|
|
4233
4298
|
exports.usePresenceContext = usePresenceContext;
|
|
4234
|
-
exports.usePresencePropsContext = usePresencePropsContext;
|
|
4235
4299
|
exports.useProgressContext = useProgressContext;
|
|
4236
4300
|
exports.useRadioGroupContext = useRadioGroupContext;
|
|
4237
4301
|
exports.useRadioGroupItemContext = useRadioGroupItemContext;
|