@ark-ui/solid 0.10.1 → 0.11.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 +14 -2
- package/accordion/accordion-content.cjs +14 -3
- package/accordion/accordion-content.d.ts +2 -1
- package/accordion/accordion-content.mjs +15 -4
- package/combobox/combobox-content.cjs +14 -3
- package/combobox/combobox-content.d.ts +2 -1
- package/combobox/combobox-content.mjs +15 -4
- package/dialog/dialog-backdrop.cjs +14 -3
- package/dialog/dialog-backdrop.d.ts +2 -1
- package/dialog/dialog-backdrop.mjs +15 -4
- package/dialog/dialog-content.cjs +14 -3
- package/dialog/dialog-content.d.ts +2 -1
- package/dialog/dialog-content.mjs +15 -4
- package/factory.cjs +0 -1
- package/factory.d.ts +0 -1
- package/factory.mjs +1 -1
- package/hover-card/hover-card-content.cjs +14 -3
- package/hover-card/hover-card-content.d.ts +2 -1
- package/hover-card/hover-card-content.mjs +15 -4
- package/index.cjs +32 -26
- package/index.d.ts +2 -0
- package/index.mjs +3 -0
- package/menu/menu-content.cjs +14 -3
- package/menu/menu-content.d.ts +2 -1
- package/menu/menu-content.mjs +15 -4
- package/package.json +11 -4
- package/popover/popover-content.cjs +13 -2
- package/popover/popover-content.d.ts +2 -1
- package/popover/popover-content.mjs +14 -3
- package/presence/index.cjs +13 -0
- package/presence/index.d.ts +8 -0
- package/presence/index.mjs +8 -0
- package/presence/presence.cjs +33 -0
- package/presence/presence.d.ts +17 -0
- package/presence/presence.mjs +29 -0
- package/presence/presence.stories.d.ts +10 -0
- package/presence/presence.test.d.ts +1 -0
- package/presence/split-presence-props.cjs +16 -0
- package/presence/split-presence-props.d.ts +2 -0
- package/presence/split-presence-props.mjs +12 -0
- package/presence/use-presence.cjs +35 -0
- package/presence/use-presence.d.ts +5 -0
- package/presence/use-presence.mjs +12 -0
- package/select/select-content.cjs +13 -2
- package/select/select-content.d.ts +2 -1
- package/select/select-content.mjs +14 -3
- package/tabs/tab-content.cjs +11 -3
- package/tabs/tab-content.d.ts +3 -4
- package/tabs/tab-content.mjs +12 -4
- package/tabs/tab-presence.cjs +18 -0
- package/tabs/tab-presence.d.ts +5 -0
- package/tabs/tab-presence.mjs +14 -0
- package/tabs/tabs.test.d.ts +1 -0
- package/tags-input/index.d.ts +1 -1
- package/tooltip/tooltip-content.cjs +13 -2
- package/tooltip/tooltip-content.d.ts +2 -1
- package/tooltip/tooltip-content.mjs +14 -3
- package/tooltip/tooltip-positioner.cjs +1 -9
- package/tooltip/tooltip-positioner.mjs +1 -9
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,17 @@ description: All notable changes to this project will be documented in this file
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.11.0] - 2023-09-08
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- Added `Presence` component
|
|
14
|
+
- To improve performance and reduce initial load times, we've introduced two new properties to the `AccordionContent`, `ComboboxContent`, `DialogBackdrop`, `DialogContent`, `HoverCardContent`, `MenuContent`, `PopoverContent`, `SelectContent`, and `TooltipContent` components. The `lazyMount` property allows for on-demand rendering of content, while the `unmountOnExit` property enables the removal of the component from the DOM once it's no longer required, ensuring better resource management and cleaner code.
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
|
|
18
|
+
- Resolved an issue where the `ark` factory was not exported correctly.
|
|
19
|
+
|
|
9
20
|
## [0.10.1] - 2023-09-02
|
|
10
21
|
|
|
11
22
|
### Fixed
|
|
@@ -150,7 +161,7 @@ description: All notable changes to this project will be documented in this file
|
|
|
150
161
|
- Add `Toast`
|
|
151
162
|
- Add `Tooltip`
|
|
152
163
|
|
|
153
|
-
[unreleased]: https://github.com/chakra-ui/ark/compare/@ark-ui/solid@0.
|
|
164
|
+
[unreleased]: https://github.com/chakra-ui/ark/compare/@ark-ui/solid@0.11.0...HEAD
|
|
154
165
|
[0.1.0]: https://github.com/chakra-ui/ark/releases/tag/@ark-ui/solid@0.1.0
|
|
155
166
|
[0.2.0]: https://github.com/chakra-ui/ark/releases/tag/@ark-ui/solid@0.2.0
|
|
156
167
|
[0.3.0]: https://github.com/chakra-ui/ark/releases/tag/@ark-ui/solid@0.3.0
|
|
@@ -163,5 +174,6 @@ description: All notable changes to this project will be documented in this file
|
|
|
163
174
|
[0.8.1]: https://github.com/chakra-ui/ark/releases/tag/@ark-ui/solid@0.8.1
|
|
164
175
|
[0.9.0]: https://github.com/chakra-ui/ark/releases/tag/@ark-ui/solid@0.9.0
|
|
165
176
|
[0.10.0]: https://github.com/chakra-ui/ark/releases/tag/@ark-ui/solid@0.10.0
|
|
166
|
-
|
|
167
177
|
[0.10.1]: https://github.com/chakra-ui/ark/releases/tag/@ark-ui/solid@0.10.1
|
|
178
|
+
|
|
179
|
+
[0.11.0]: https://github.com/chakra-ui/ark/releases/tag/@ark-ui/solid@0.11.0
|
|
@@ -5,14 +5,25 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
5
5
|
const web = require('solid-js/web');
|
|
6
6
|
const solid = require('@zag-js/solid');
|
|
7
7
|
const factory = require('../factory.cjs');
|
|
8
|
+
const index = require('../presence/index.cjs');
|
|
8
9
|
const accordionContext = require('./accordion-context.cjs');
|
|
9
10
|
const accordionItemContext = require('./accordion-item-context.cjs');
|
|
11
|
+
const splitPresenceProps = require('../presence/split-presence-props.cjs');
|
|
10
12
|
|
|
11
13
|
const AccordionContent = props => {
|
|
14
|
+
const [presenceProps, localProps] = splitPresenceProps.splitPresenceProps(props);
|
|
12
15
|
const api = accordionContext.useAccordionContext();
|
|
13
|
-
const
|
|
14
|
-
const contentProps = solid.mergeProps(() => api().getContentProps(
|
|
15
|
-
return web.createComponent(
|
|
16
|
+
const accordionItem = accordionItemContext.useAccordionItemContext();
|
|
17
|
+
const contentProps = solid.mergeProps(() => api().getContentProps(accordionItem), localProps);
|
|
18
|
+
return web.createComponent(index.Presence, web.mergeProps({
|
|
19
|
+
get present() {
|
|
20
|
+
return accordionItem.isOpen;
|
|
21
|
+
}
|
|
22
|
+
}, presenceProps, {
|
|
23
|
+
get children() {
|
|
24
|
+
return web.createComponent(factory.ark.div, contentProps);
|
|
25
|
+
}
|
|
26
|
+
}));
|
|
16
27
|
};
|
|
17
28
|
|
|
18
29
|
exports.AccordionContent = AccordionContent;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { JSX } from 'solid-js';
|
|
2
2
|
import { type HTMLArkProps } from '../factory';
|
|
3
|
-
|
|
3
|
+
import { type PresenceProps } from '../presence';
|
|
4
|
+
export type AccordionContentProps = HTMLArkProps<'div'> & PresenceProps;
|
|
4
5
|
export declare const AccordionContent: (props: AccordionContentProps) => JSX.Element;
|
|
@@ -1,14 +1,25 @@
|
|
|
1
|
-
import { createComponent } from 'solid-js/web';
|
|
1
|
+
import { createComponent, mergeProps as mergeProps$1 } from 'solid-js/web';
|
|
2
2
|
import { mergeProps } from '@zag-js/solid';
|
|
3
3
|
import { ark } from '../factory.mjs';
|
|
4
|
+
import { Presence } from '../presence/index.mjs';
|
|
4
5
|
import { useAccordionContext } from './accordion-context.mjs';
|
|
5
6
|
import { useAccordionItemContext } from './accordion-item-context.mjs';
|
|
7
|
+
import { splitPresenceProps } from '../presence/split-presence-props.mjs';
|
|
6
8
|
|
|
7
9
|
const AccordionContent = props => {
|
|
10
|
+
const [presenceProps, localProps] = splitPresenceProps(props);
|
|
8
11
|
const api = useAccordionContext();
|
|
9
|
-
const
|
|
10
|
-
const contentProps = mergeProps(() => api().getContentProps(
|
|
11
|
-
return createComponent(
|
|
12
|
+
const accordionItem = useAccordionItemContext();
|
|
13
|
+
const contentProps = mergeProps(() => api().getContentProps(accordionItem), localProps);
|
|
14
|
+
return createComponent(Presence, mergeProps$1({
|
|
15
|
+
get present() {
|
|
16
|
+
return accordionItem.isOpen;
|
|
17
|
+
}
|
|
18
|
+
}, presenceProps, {
|
|
19
|
+
get children() {
|
|
20
|
+
return createComponent(ark.div, contentProps);
|
|
21
|
+
}
|
|
22
|
+
}));
|
|
12
23
|
};
|
|
13
24
|
|
|
14
25
|
export { AccordionContent };
|
|
@@ -5,12 +5,23 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
5
5
|
const web = require('solid-js/web');
|
|
6
6
|
const solid = require('@zag-js/solid');
|
|
7
7
|
const factory = require('../factory.cjs');
|
|
8
|
+
const index = require('../presence/index.cjs');
|
|
8
9
|
const comboboxContext = require('./combobox-context.cjs');
|
|
10
|
+
const splitPresenceProps = require('../presence/split-presence-props.cjs');
|
|
9
11
|
|
|
10
12
|
const ComboboxContent = props => {
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
|
|
13
|
+
const [presenceProps, localProps] = splitPresenceProps.splitPresenceProps(props);
|
|
14
|
+
const api = comboboxContext.useComboboxContext();
|
|
15
|
+
const contentProps = solid.mergeProps(() => api().contentProps, localProps);
|
|
16
|
+
return web.createComponent(index.Presence, web.mergeProps({
|
|
17
|
+
get present() {
|
|
18
|
+
return api().isOpen;
|
|
19
|
+
}
|
|
20
|
+
}, presenceProps, {
|
|
21
|
+
get children() {
|
|
22
|
+
return web.createComponent(factory.ark.div, contentProps);
|
|
23
|
+
}
|
|
24
|
+
}));
|
|
14
25
|
};
|
|
15
26
|
|
|
16
27
|
exports.ComboboxContent = ComboboxContent;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { JSX } from 'solid-js';
|
|
2
2
|
import { type HTMLArkProps } from '../factory';
|
|
3
|
-
|
|
3
|
+
import { type PresenceProps } from '../presence';
|
|
4
|
+
export type ComboboxContentProps = HTMLArkProps<'div'> & PresenceProps;
|
|
4
5
|
export declare const ComboboxContent: (props: ComboboxContentProps) => JSX.Element;
|
|
@@ -1,12 +1,23 @@
|
|
|
1
|
-
import { createComponent } from 'solid-js/web';
|
|
1
|
+
import { createComponent, mergeProps as mergeProps$1 } from 'solid-js/web';
|
|
2
2
|
import { mergeProps } from '@zag-js/solid';
|
|
3
3
|
import { ark } from '../factory.mjs';
|
|
4
|
+
import { Presence } from '../presence/index.mjs';
|
|
4
5
|
import { useComboboxContext } from './combobox-context.mjs';
|
|
6
|
+
import { splitPresenceProps } from '../presence/split-presence-props.mjs';
|
|
5
7
|
|
|
6
8
|
const ComboboxContent = props => {
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
|
|
9
|
+
const [presenceProps, localProps] = splitPresenceProps(props);
|
|
10
|
+
const api = useComboboxContext();
|
|
11
|
+
const contentProps = mergeProps(() => api().contentProps, localProps);
|
|
12
|
+
return createComponent(Presence, mergeProps$1({
|
|
13
|
+
get present() {
|
|
14
|
+
return api().isOpen;
|
|
15
|
+
}
|
|
16
|
+
}, presenceProps, {
|
|
17
|
+
get children() {
|
|
18
|
+
return createComponent(ark.div, contentProps);
|
|
19
|
+
}
|
|
20
|
+
}));
|
|
10
21
|
};
|
|
11
22
|
|
|
12
23
|
export { ComboboxContent };
|
|
@@ -5,12 +5,23 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
5
5
|
const web = require('solid-js/web');
|
|
6
6
|
const solid = require('@zag-js/solid');
|
|
7
7
|
const factory = require('../factory.cjs');
|
|
8
|
+
const index = require('../presence/index.cjs');
|
|
8
9
|
const dialogContext = require('./dialog-context.cjs');
|
|
10
|
+
const splitPresenceProps = require('../presence/split-presence-props.cjs');
|
|
9
11
|
|
|
10
12
|
const DialogBackdrop = props => {
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
|
|
13
|
+
const [presenceProps, localProps] = splitPresenceProps.splitPresenceProps(props);
|
|
14
|
+
const api = dialogContext.useDialogContext();
|
|
15
|
+
const mergedProps = solid.mergeProps(() => api().backdropProps, localProps);
|
|
16
|
+
return web.createComponent(index.Presence, web.mergeProps({
|
|
17
|
+
get present() {
|
|
18
|
+
return api().isOpen;
|
|
19
|
+
}
|
|
20
|
+
}, presenceProps, {
|
|
21
|
+
get children() {
|
|
22
|
+
return web.createComponent(factory.ark.div, mergedProps);
|
|
23
|
+
}
|
|
24
|
+
}));
|
|
14
25
|
};
|
|
15
26
|
|
|
16
27
|
exports.DialogBackdrop = DialogBackdrop;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { JSX } from 'solid-js';
|
|
2
2
|
import { type HTMLArkProps } from '../factory';
|
|
3
|
-
|
|
3
|
+
import { type PresenceProps } from '../presence';
|
|
4
|
+
export type DialogBackdropProps = HTMLArkProps<'div'> & PresenceProps;
|
|
4
5
|
export declare const DialogBackdrop: (props: DialogBackdropProps) => JSX.Element;
|
|
@@ -1,12 +1,23 @@
|
|
|
1
|
-
import { createComponent } from 'solid-js/web';
|
|
1
|
+
import { createComponent, mergeProps as mergeProps$1 } from 'solid-js/web';
|
|
2
2
|
import { mergeProps } from '@zag-js/solid';
|
|
3
3
|
import { ark } from '../factory.mjs';
|
|
4
|
+
import { Presence } from '../presence/index.mjs';
|
|
4
5
|
import { useDialogContext } from './dialog-context.mjs';
|
|
6
|
+
import { splitPresenceProps } from '../presence/split-presence-props.mjs';
|
|
5
7
|
|
|
6
8
|
const DialogBackdrop = props => {
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
|
|
9
|
+
const [presenceProps, localProps] = splitPresenceProps(props);
|
|
10
|
+
const api = useDialogContext();
|
|
11
|
+
const mergedProps = mergeProps(() => api().backdropProps, localProps);
|
|
12
|
+
return createComponent(Presence, mergeProps$1({
|
|
13
|
+
get present() {
|
|
14
|
+
return api().isOpen;
|
|
15
|
+
}
|
|
16
|
+
}, presenceProps, {
|
|
17
|
+
get children() {
|
|
18
|
+
return createComponent(ark.div, mergedProps);
|
|
19
|
+
}
|
|
20
|
+
}));
|
|
10
21
|
};
|
|
11
22
|
|
|
12
23
|
export { DialogBackdrop };
|
|
@@ -5,12 +5,23 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
5
5
|
const web = require('solid-js/web');
|
|
6
6
|
const solid = require('@zag-js/solid');
|
|
7
7
|
const factory = require('../factory.cjs');
|
|
8
|
+
const index = require('../presence/index.cjs');
|
|
8
9
|
const dialogContext = require('./dialog-context.cjs');
|
|
10
|
+
const splitPresenceProps = require('../presence/split-presence-props.cjs');
|
|
9
11
|
|
|
10
12
|
const DialogContent = props => {
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
|
|
13
|
+
const [presenceProps, localProps] = splitPresenceProps.splitPresenceProps(props);
|
|
14
|
+
const api = dialogContext.useDialogContext();
|
|
15
|
+
const mergedProps = solid.mergeProps(() => api().contentProps, localProps);
|
|
16
|
+
return web.createComponent(index.Presence, web.mergeProps({
|
|
17
|
+
get present() {
|
|
18
|
+
return api().isOpen;
|
|
19
|
+
}
|
|
20
|
+
}, presenceProps, {
|
|
21
|
+
get children() {
|
|
22
|
+
return web.createComponent(factory.ark.div, mergedProps);
|
|
23
|
+
}
|
|
24
|
+
}));
|
|
14
25
|
};
|
|
15
26
|
|
|
16
27
|
exports.DialogContent = DialogContent;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { JSX } from 'solid-js';
|
|
2
2
|
import { type HTMLArkProps } from '../factory';
|
|
3
|
-
|
|
3
|
+
import { type PresenceProps } from '../presence';
|
|
4
|
+
export type DialogContentProps = HTMLArkProps<'div'> & PresenceProps;
|
|
4
5
|
export declare const DialogContent: (props: DialogContentProps) => JSX.Element;
|
|
@@ -1,12 +1,23 @@
|
|
|
1
|
-
import { createComponent } from 'solid-js/web';
|
|
1
|
+
import { createComponent, mergeProps as mergeProps$1 } from 'solid-js/web';
|
|
2
2
|
import { mergeProps } from '@zag-js/solid';
|
|
3
3
|
import { ark } from '../factory.mjs';
|
|
4
|
+
import { Presence } from '../presence/index.mjs';
|
|
4
5
|
import { useDialogContext } from './dialog-context.mjs';
|
|
6
|
+
import { splitPresenceProps } from '../presence/split-presence-props.mjs';
|
|
5
7
|
|
|
6
8
|
const DialogContent = props => {
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
|
|
9
|
+
const [presenceProps, localProps] = splitPresenceProps(props);
|
|
10
|
+
const api = useDialogContext();
|
|
11
|
+
const mergedProps = mergeProps(() => api().contentProps, localProps);
|
|
12
|
+
return createComponent(Presence, mergeProps$1({
|
|
13
|
+
get present() {
|
|
14
|
+
return api().isOpen;
|
|
15
|
+
}
|
|
16
|
+
}, presenceProps, {
|
|
17
|
+
get children() {
|
|
18
|
+
return createComponent(ark.div, mergedProps);
|
|
19
|
+
}
|
|
20
|
+
}));
|
|
10
21
|
};
|
|
11
22
|
|
|
12
23
|
export { DialogContent };
|
package/factory.cjs
CHANGED
package/factory.d.ts
CHANGED
|
@@ -9,6 +9,5 @@ type JsxElements = {
|
|
|
9
9
|
type AsChildForwardRefComponent<E extends ElementType> = Component<AsChildComponentProps<E>>;
|
|
10
10
|
type AsChildComponentProps<E extends ElementType> = ComponentProps<E> & AsChildProps;
|
|
11
11
|
export type HTMLArkProps<T extends ElementType> = AsChildComponentProps<T>;
|
|
12
|
-
export declare function jsxFactory(): JsxElements;
|
|
13
12
|
export declare const ark: JsxElements;
|
|
14
13
|
export {};
|
package/factory.mjs
CHANGED
|
@@ -5,12 +5,23 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
5
5
|
const web = require('solid-js/web');
|
|
6
6
|
const solid = require('@zag-js/solid');
|
|
7
7
|
const factory = require('../factory.cjs');
|
|
8
|
+
const index = require('../presence/index.cjs');
|
|
8
9
|
const hoverCardContext = require('./hover-card-context.cjs');
|
|
10
|
+
const splitPresenceProps = require('../presence/split-presence-props.cjs');
|
|
9
11
|
|
|
10
12
|
const HoverCardContent = props => {
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
|
|
13
|
+
const [presenceProps, localProps] = splitPresenceProps.splitPresenceProps(props);
|
|
14
|
+
const api = hoverCardContext.useHoverCardContext();
|
|
15
|
+
const mergedProps = solid.mergeProps(() => api().contentProps, localProps);
|
|
16
|
+
return web.createComponent(index.Presence, web.mergeProps({
|
|
17
|
+
get present() {
|
|
18
|
+
return api().isOpen;
|
|
19
|
+
}
|
|
20
|
+
}, presenceProps, {
|
|
21
|
+
get children() {
|
|
22
|
+
return web.createComponent(factory.ark.div, mergedProps);
|
|
23
|
+
}
|
|
24
|
+
}));
|
|
14
25
|
};
|
|
15
26
|
|
|
16
27
|
exports.HoverCardContent = HoverCardContent;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { JSX } from 'solid-js';
|
|
2
2
|
import { type HTMLArkProps } from '../factory';
|
|
3
|
-
|
|
3
|
+
import { type PresenceProps } from '../presence';
|
|
4
|
+
export type HoverCardContentProps = HTMLArkProps<'div'> & PresenceProps;
|
|
4
5
|
export declare const HoverCardContent: (props: HoverCardContentProps) => JSX.Element;
|
|
@@ -1,12 +1,23 @@
|
|
|
1
|
-
import { createComponent } from 'solid-js/web';
|
|
1
|
+
import { createComponent, mergeProps as mergeProps$1 } from 'solid-js/web';
|
|
2
2
|
import { mergeProps } from '@zag-js/solid';
|
|
3
3
|
import { ark } from '../factory.mjs';
|
|
4
|
+
import { Presence } from '../presence/index.mjs';
|
|
4
5
|
import { useHoverCardContext } from './hover-card-context.mjs';
|
|
6
|
+
import { splitPresenceProps } from '../presence/split-presence-props.mjs';
|
|
5
7
|
|
|
6
8
|
const HoverCardContent = props => {
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
|
|
9
|
+
const [presenceProps, localProps] = splitPresenceProps(props);
|
|
10
|
+
const api = useHoverCardContext();
|
|
11
|
+
const mergedProps = mergeProps(() => api().contentProps, localProps);
|
|
12
|
+
return createComponent(Presence, mergeProps$1({
|
|
13
|
+
get present() {
|
|
14
|
+
return api().isOpen;
|
|
15
|
+
}
|
|
16
|
+
}, presenceProps, {
|
|
17
|
+
get children() {
|
|
18
|
+
return createComponent(ark.div, mergedProps);
|
|
19
|
+
}
|
|
20
|
+
}));
|
|
10
21
|
};
|
|
11
22
|
|
|
12
23
|
export { HoverCardContent };
|
package/index.cjs
CHANGED
|
@@ -13,25 +13,27 @@ const index$6 = require('./date-picker/index.cjs');
|
|
|
13
13
|
const index$7 = require('./dialog/index.cjs');
|
|
14
14
|
const index$8 = require('./editable/index.cjs');
|
|
15
15
|
const index$9 = require('./environment/index.cjs');
|
|
16
|
+
const factory = require('./factory.cjs');
|
|
16
17
|
const index$a = require('./hover-card/index.cjs');
|
|
17
18
|
const index$b = require('./menu/index.cjs');
|
|
18
19
|
const index$c = require('./number-input/index.cjs');
|
|
19
20
|
const index$d = require('./pagination/index.cjs');
|
|
20
21
|
const index$e = require('./pin-input/index.cjs');
|
|
21
22
|
const index$f = require('./popover/index.cjs');
|
|
22
|
-
const index$g = require('./
|
|
23
|
-
const index$h = require('./
|
|
24
|
-
const index$i = require('./
|
|
25
|
-
const index$j = require('./
|
|
26
|
-
const index$k = require('./
|
|
27
|
-
const index$l = require('./
|
|
28
|
-
const index$m = require('./
|
|
29
|
-
const index$n = require('./
|
|
30
|
-
const index$o = require('./
|
|
31
|
-
const index$p = require('./
|
|
32
|
-
const index$q = require('./
|
|
33
|
-
const index$r = require('./
|
|
34
|
-
const index$s = require('./
|
|
23
|
+
const index$g = require('./presence/index.cjs');
|
|
24
|
+
const index$h = require('./pressable/index.cjs');
|
|
25
|
+
const index$i = require('./radio-group/index.cjs');
|
|
26
|
+
const index$j = require('./range-slider/index.cjs');
|
|
27
|
+
const index$k = require('./rating-group/index.cjs');
|
|
28
|
+
const index$l = require('./segment-group/index.cjs');
|
|
29
|
+
const index$m = require('./select/index.cjs');
|
|
30
|
+
const index$n = require('./slider/index.cjs');
|
|
31
|
+
const index$o = require('./splitter/index.cjs');
|
|
32
|
+
const index$p = require('./switch/index.cjs');
|
|
33
|
+
const index$q = require('./tabs/index.cjs');
|
|
34
|
+
const index$r = require('./tags-input/index.cjs');
|
|
35
|
+
const index$s = require('./toast/index.cjs');
|
|
36
|
+
const index$t = require('./tooltip/index.cjs');
|
|
35
37
|
const accordionContent = require('./accordion/accordion-content.cjs');
|
|
36
38
|
const accordionItem = require('./accordion/accordion-item.cjs');
|
|
37
39
|
const accordionTrigger = require('./accordion/accordion-trigger.cjs');
|
|
@@ -183,6 +185,7 @@ const popoverTitle = require('./popover/popover-title.cjs');
|
|
|
183
185
|
const popoverTrigger = require('./popover/popover-trigger.cjs');
|
|
184
186
|
const popover = require('@zag-js/popover');
|
|
185
187
|
const popoverContext = require('./popover/popover-context.cjs');
|
|
188
|
+
const splitPresenceProps = require('./presence/split-presence-props.cjs');
|
|
186
189
|
const usePressable = require('./pressable/use-pressable.cjs');
|
|
187
190
|
const radio = require('./radio-group/radio.cjs');
|
|
188
191
|
const radioControl = require('./radio-group/radio-control.cjs');
|
|
@@ -291,25 +294,27 @@ exports.DatePicker = index$6.DatePicker;
|
|
|
291
294
|
exports.Dialog = index$7.Dialog;
|
|
292
295
|
exports.Editable = index$8.Editable;
|
|
293
296
|
exports.Environment = index$9.Environment;
|
|
297
|
+
exports.ark = factory.ark;
|
|
294
298
|
exports.HoverCard = index$a.HoverCard;
|
|
295
299
|
exports.Menu = index$b.Menu;
|
|
296
300
|
exports.NumberInput = index$c.NumberInput;
|
|
297
301
|
exports.Pagination = index$d.Pagination;
|
|
298
302
|
exports.PinInput = index$e.PinInput;
|
|
299
303
|
exports.Popover = index$f.Popover;
|
|
300
|
-
exports.
|
|
301
|
-
exports.
|
|
302
|
-
exports.
|
|
303
|
-
exports.
|
|
304
|
-
exports.
|
|
305
|
-
exports.
|
|
306
|
-
exports.
|
|
307
|
-
exports.
|
|
308
|
-
exports.
|
|
309
|
-
exports.
|
|
310
|
-
exports.
|
|
311
|
-
exports.
|
|
312
|
-
exports.
|
|
304
|
+
exports.Presence = index$g.Presence;
|
|
305
|
+
exports.Pressable = index$h.Pressable;
|
|
306
|
+
exports.RadioGroup = index$i.RadioGroup;
|
|
307
|
+
exports.RangeSlider = index$j.RangeSlider;
|
|
308
|
+
exports.RatingGroup = index$k.RatingGroup;
|
|
309
|
+
exports.SegmentGroup = index$l.SegmentGroup;
|
|
310
|
+
exports.Select = index$m.Select;
|
|
311
|
+
exports.Slider = index$n.Slider;
|
|
312
|
+
exports.Splitter = index$o.Splitter;
|
|
313
|
+
exports.Switch = index$p.Switch;
|
|
314
|
+
exports.Tabs = index$q.Tabs;
|
|
315
|
+
exports.TagsInput = index$r.TagsInput;
|
|
316
|
+
exports.Toast = index$s.Toast;
|
|
317
|
+
exports.Tooltip = index$t.Tooltip;
|
|
313
318
|
exports.AccordionContent = accordionContent.AccordionContent;
|
|
314
319
|
exports.AccordionItem = accordionItem.AccordionItem;
|
|
315
320
|
exports.AccordionTrigger = accordionTrigger.AccordionTrigger;
|
|
@@ -494,6 +499,7 @@ Object.defineProperty(exports, 'popoverAnatomy', {
|
|
|
494
499
|
get: () => popover.anatomy
|
|
495
500
|
});
|
|
496
501
|
exports.usePopoverContext = popoverContext.usePopoverContext;
|
|
502
|
+
exports.splitPresenceProps = splitPresenceProps.splitPresenceProps;
|
|
497
503
|
exports.usePressable = usePressable.usePressable;
|
|
498
504
|
exports.Radio = radio.Radio;
|
|
499
505
|
exports.RadioControl = radioControl.RadioControl;
|
package/index.d.ts
CHANGED
|
@@ -9,12 +9,14 @@ export * from './date-picker';
|
|
|
9
9
|
export * from './dialog';
|
|
10
10
|
export * from './editable';
|
|
11
11
|
export * from './environment';
|
|
12
|
+
export * from './factory';
|
|
12
13
|
export * from './hover-card';
|
|
13
14
|
export * from './menu';
|
|
14
15
|
export * from './number-input';
|
|
15
16
|
export * from './pagination';
|
|
16
17
|
export * from './pin-input';
|
|
17
18
|
export * from './popover';
|
|
19
|
+
export * from './presence';
|
|
18
20
|
export * from './pressable';
|
|
19
21
|
export * from './radio-group';
|
|
20
22
|
export * from './range-slider';
|
package/index.mjs
CHANGED
|
@@ -9,12 +9,14 @@ export { DatePicker } from './date-picker/index.mjs';
|
|
|
9
9
|
export { Dialog } from './dialog/index.mjs';
|
|
10
10
|
export { Editable } from './editable/index.mjs';
|
|
11
11
|
export { Environment } from './environment/index.mjs';
|
|
12
|
+
export { ark } from './factory.mjs';
|
|
12
13
|
export { HoverCard } from './hover-card/index.mjs';
|
|
13
14
|
export { Menu } from './menu/index.mjs';
|
|
14
15
|
export { NumberInput } from './number-input/index.mjs';
|
|
15
16
|
export { Pagination } from './pagination/index.mjs';
|
|
16
17
|
export { PinInput } from './pin-input/index.mjs';
|
|
17
18
|
export { Popover } from './popover/index.mjs';
|
|
19
|
+
export { Presence } from './presence/index.mjs';
|
|
18
20
|
export { Pressable } from './pressable/index.mjs';
|
|
19
21
|
export { RadioGroup } from './radio-group/index.mjs';
|
|
20
22
|
export { RangeSlider } from './range-slider/index.mjs';
|
|
@@ -179,6 +181,7 @@ export { PopoverTitle } from './popover/popover-title.mjs';
|
|
|
179
181
|
export { PopoverTrigger } from './popover/popover-trigger.mjs';
|
|
180
182
|
export { anatomy as popoverAnatomy } from '@zag-js/popover';
|
|
181
183
|
export { usePopoverContext } from './popover/popover-context.mjs';
|
|
184
|
+
export { splitPresenceProps } from './presence/split-presence-props.mjs';
|
|
182
185
|
export { usePressable } from './pressable/use-pressable.mjs';
|
|
183
186
|
export { Radio } from './radio-group/radio.mjs';
|
|
184
187
|
export { RadioControl } from './radio-group/radio-control.mjs';
|
package/menu/menu-content.cjs
CHANGED
|
@@ -5,12 +5,23 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
5
5
|
const web = require('solid-js/web');
|
|
6
6
|
const solid = require('@zag-js/solid');
|
|
7
7
|
const factory = require('../factory.cjs');
|
|
8
|
+
const index = require('../presence/index.cjs');
|
|
8
9
|
const menuContext = require('./menu-context.cjs');
|
|
10
|
+
const splitPresenceProps = require('../presence/split-presence-props.cjs');
|
|
9
11
|
|
|
10
12
|
const MenuContent = props => {
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
|
|
13
|
+
const [presenceProps, localProps] = splitPresenceProps.splitPresenceProps(props);
|
|
14
|
+
const api = menuContext.useMenuContext();
|
|
15
|
+
const mergedProps = solid.mergeProps(() => api?.().contentProps, localProps);
|
|
16
|
+
return web.createComponent(index.Presence, web.mergeProps({
|
|
17
|
+
get present() {
|
|
18
|
+
return api?.().isOpen;
|
|
19
|
+
}
|
|
20
|
+
}, presenceProps, {
|
|
21
|
+
get children() {
|
|
22
|
+
return web.createComponent(factory.ark.div, mergedProps);
|
|
23
|
+
}
|
|
24
|
+
}));
|
|
14
25
|
};
|
|
15
26
|
|
|
16
27
|
exports.MenuContent = MenuContent;
|
package/menu/menu-content.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { JSX } from 'solid-js';
|
|
2
2
|
import { type HTMLArkProps } from '../factory';
|
|
3
|
-
|
|
3
|
+
import { type PresenceProps } from '../presence';
|
|
4
|
+
export type MenuContentProps = HTMLArkProps<'div'> & PresenceProps;
|
|
4
5
|
export declare const MenuContent: (props: MenuContentProps) => JSX.Element;
|
package/menu/menu-content.mjs
CHANGED
|
@@ -1,12 +1,23 @@
|
|
|
1
|
-
import { createComponent } from 'solid-js/web';
|
|
1
|
+
import { createComponent, mergeProps as mergeProps$1 } from 'solid-js/web';
|
|
2
2
|
import { mergeProps } from '@zag-js/solid';
|
|
3
3
|
import { ark } from '../factory.mjs';
|
|
4
|
+
import { Presence } from '../presence/index.mjs';
|
|
4
5
|
import { useMenuContext } from './menu-context.mjs';
|
|
6
|
+
import { splitPresenceProps } from '../presence/split-presence-props.mjs';
|
|
5
7
|
|
|
6
8
|
const MenuContent = props => {
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
|
|
9
|
+
const [presenceProps, localProps] = splitPresenceProps(props);
|
|
10
|
+
const api = useMenuContext();
|
|
11
|
+
const mergedProps = mergeProps(() => api?.().contentProps, localProps);
|
|
12
|
+
return createComponent(Presence, mergeProps$1({
|
|
13
|
+
get present() {
|
|
14
|
+
return api?.().isOpen;
|
|
15
|
+
}
|
|
16
|
+
}, presenceProps, {
|
|
17
|
+
get children() {
|
|
18
|
+
return createComponent(ark.div, mergedProps);
|
|
19
|
+
}
|
|
20
|
+
}));
|
|
10
21
|
};
|
|
11
22
|
|
|
12
23
|
export { MenuContent };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ark-ui/solid",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"description": "A collection of unstyled, accessible UI components for Solid, utilizing state machines for seamless interaction.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"accordion",
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
"pagination",
|
|
20
20
|
"pin input",
|
|
21
21
|
"popover",
|
|
22
|
+
"presence",
|
|
22
23
|
"pressable",
|
|
23
24
|
"radio group",
|
|
24
25
|
"range slider",
|
|
@@ -75,6 +76,7 @@
|
|
|
75
76
|
"@zag-js/pagination": "0.17.0",
|
|
76
77
|
"@zag-js/pin-input": "0.17.0",
|
|
77
78
|
"@zag-js/popover": "0.17.0",
|
|
79
|
+
"@zag-js/presence": "0.17.0",
|
|
78
80
|
"@zag-js/pressable": "0.17.0",
|
|
79
81
|
"@zag-js/radio-group": "0.17.0",
|
|
80
82
|
"@zag-js/range-slider": "0.17.0",
|
|
@@ -99,12 +101,12 @@
|
|
|
99
101
|
"@storybook/blocks": "7.4.0",
|
|
100
102
|
"@storybook/testing-library": "0.2.0",
|
|
101
103
|
"@testing-library/dom": "9.3.1",
|
|
102
|
-
"@testing-library/jest-dom": "6.1.
|
|
104
|
+
"@testing-library/jest-dom": "6.1.3",
|
|
103
105
|
"@testing-library/user-event": "14.4.3",
|
|
104
106
|
"@types/jsdom": "21.1.2",
|
|
105
107
|
"@types/testing-library__jest-dom": "5.14.9",
|
|
106
|
-
"@typescript-eslint/eslint-plugin": "6.
|
|
107
|
-
"@typescript-eslint/parser": "6.
|
|
108
|
+
"@typescript-eslint/eslint-plugin": "6.6.0",
|
|
109
|
+
"@typescript-eslint/parser": "6.6.0",
|
|
108
110
|
"@vitest/coverage-v8": "0.34.3",
|
|
109
111
|
"eslint": "8.48.0",
|
|
110
112
|
"globby": "13.2.2",
|
|
@@ -217,6 +219,11 @@
|
|
|
217
219
|
"import": "./popover/index.mjs",
|
|
218
220
|
"require": "./popover/index.cjs"
|
|
219
221
|
},
|
|
222
|
+
"./presence": {
|
|
223
|
+
"types": "./presence/index.d.ts",
|
|
224
|
+
"import": "./presence/index.mjs",
|
|
225
|
+
"require": "./presence/index.cjs"
|
|
226
|
+
},
|
|
220
227
|
"./pressable": {
|
|
221
228
|
"types": "./pressable/index.d.ts",
|
|
222
229
|
"import": "./pressable/index.mjs",
|