@sprawlify/vue 0.0.63 → 0.0.65
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/chunk-BN_g-Awi.js +18 -0
- package/dist/components/collapsible/index.d.ts +171 -0
- package/dist/components/collapsible/index.js +327 -0
- package/dist/index.d.ts +87 -17
- package/dist/index.js +41 -326
- package/dist/types-BQfkZGpL.d.ts +30 -0
- package/dist/use-forward-expose-BIk4OI3R.js +505 -0
- package/package.json +8 -10
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
//#region rolldown:runtime
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __exportAll = (all, symbols) => {
|
|
4
|
+
let target = {};
|
|
5
|
+
for (var name in all) {
|
|
6
|
+
__defProp(target, name, {
|
|
7
|
+
get: all[name],
|
|
8
|
+
enumerable: true
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
if (symbols) {
|
|
12
|
+
__defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
13
|
+
}
|
|
14
|
+
return target;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
//#endregion
|
|
18
|
+
export { __exportAll as t };
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { a as Optional, c as PropTypes, r as EmitFn } from "../../types-BQfkZGpL.js";
|
|
2
|
+
import * as vue18 from "vue";
|
|
3
|
+
import { ButtonHTMLAttributes, ComputedRef, HTMLAttributes, MaybeRef, SlotsType, UnwrapRef, h } from "vue";
|
|
4
|
+
import * as collapsible from "@sprawlify/primitives/machines/collapsible";
|
|
5
|
+
import { OpenChangeDetails, OpenChangeDetails as CollapsibleOpenChangeDetails, anatomy as collapsibleAnatomy } from "@sprawlify/primitives/machines/collapsible";
|
|
6
|
+
|
|
7
|
+
//#region src/components/factory.d.ts
|
|
8
|
+
interface PolymorphicProps {
|
|
9
|
+
asChild?: boolean;
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
//#region src/components/collapsible/collapsible-content.vue.d.ts
|
|
13
|
+
interface CollapsibleContentBaseProps extends PolymorphicProps {}
|
|
14
|
+
interface CollapsibleContentProps extends CollapsibleContentBaseProps,
|
|
15
|
+
/**
|
|
16
|
+
* @vue-ignore
|
|
17
|
+
*/
|
|
18
|
+
HTMLAttributes {}
|
|
19
|
+
declare const _default: typeof __VLS_export$5;
|
|
20
|
+
declare const __VLS_export$5: __VLS_WithSlots$5<vue18.DefineComponent<CollapsibleContentProps, {}, {}, {}, {}, vue18.ComponentOptionsMixin, vue18.ComponentOptionsMixin, {}, string, vue18.PublicProps, Readonly<CollapsibleContentProps> & Readonly<{}>, {}, {}, {}, {}, string, vue18.ComponentProvideOptions, false, {}, any>, {
|
|
21
|
+
default?: (props: {}) => any;
|
|
22
|
+
}>;
|
|
23
|
+
type __VLS_WithSlots$5<T, S> = T & {
|
|
24
|
+
new (): {
|
|
25
|
+
$slots: S;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
//#endregion
|
|
29
|
+
//#region src/utils/use-render-strategy.d.ts
|
|
30
|
+
interface RenderStrategyProps {
|
|
31
|
+
lazyMount?: boolean;
|
|
32
|
+
unmountOnExit?: boolean;
|
|
33
|
+
}
|
|
34
|
+
//#endregion
|
|
35
|
+
//#region src/components/collapsible/collapsible-types.d.ts
|
|
36
|
+
interface RootProps {
|
|
37
|
+
collapsedHeight?: number | string;
|
|
38
|
+
collapsedWidth?: number | string;
|
|
39
|
+
defaultOpen?: boolean;
|
|
40
|
+
disabled?: boolean;
|
|
41
|
+
id?: string;
|
|
42
|
+
ids?: Partial<{
|
|
43
|
+
root: string;
|
|
44
|
+
content: string;
|
|
45
|
+
trigger: string;
|
|
46
|
+
}>;
|
|
47
|
+
lazyMount?: boolean;
|
|
48
|
+
open?: boolean;
|
|
49
|
+
unmountOnExit?: boolean;
|
|
50
|
+
}
|
|
51
|
+
type RootEmits = {
|
|
52
|
+
exitComplete: [];
|
|
53
|
+
openChange: [details: collapsible.OpenChangeDetails];
|
|
54
|
+
'update:open': [open: boolean];
|
|
55
|
+
};
|
|
56
|
+
//#endregion
|
|
57
|
+
//#region src/components/collapsible/use-collapsible.d.ts
|
|
58
|
+
interface UseCollapsibleProps extends RenderStrategyProps, Optional<Omit<collapsible.Props, 'dir' | 'getRootNode'>, 'id'> {}
|
|
59
|
+
interface Collapsible extends collapsible.Api<PropTypes> {
|
|
60
|
+
unmounted?: boolean;
|
|
61
|
+
}
|
|
62
|
+
interface UseCollapsibleReturn extends ComputedRef<Collapsible> {}
|
|
63
|
+
declare const useCollapsible: (props?: MaybeRef<UseCollapsibleProps>, emits?: EmitFn<RootEmits>) => UseCollapsibleReturn;
|
|
64
|
+
//#endregion
|
|
65
|
+
//#region src/components/collapsible/use-collapsible-context.d.ts
|
|
66
|
+
interface UseCollapsibleContext extends UseCollapsibleReturn {}
|
|
67
|
+
//#endregion
|
|
68
|
+
//#region src/components/collapsible/collapsible-context.vue.d.ts
|
|
69
|
+
interface CollapsibleContextProps extends SlotsType<{
|
|
70
|
+
default: UnwrapRef<UseCollapsibleContext>;
|
|
71
|
+
}> {}
|
|
72
|
+
declare const _default$1: typeof __VLS_export$4;
|
|
73
|
+
declare const __VLS_export$4: __VLS_WithSlots$4<vue18.DefineComponent<{}, {}, {}, {}, {}, vue18.ComponentOptionsMixin, vue18.ComponentOptionsMixin, {}, string, vue18.PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, vue18.ComponentProvideOptions, true, {}, any>, {
|
|
74
|
+
default(collapsible: UnwrapRef<UseCollapsibleContext>): unknown;
|
|
75
|
+
}>;
|
|
76
|
+
type __VLS_WithSlots$4<T, S> = T & {
|
|
77
|
+
new (): {
|
|
78
|
+
$slots: S;
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
//#endregion
|
|
82
|
+
//#region src/components/collapsible/collapsible-root-provider.vue.d.ts
|
|
83
|
+
interface RootProviderProps {
|
|
84
|
+
value: UnwrapRef<UseCollapsibleReturn>;
|
|
85
|
+
}
|
|
86
|
+
interface CollapsibleRootProviderBaseProps extends RootProviderProps, PolymorphicProps {}
|
|
87
|
+
interface CollapsibleRootProviderProps extends CollapsibleRootProviderBaseProps,
|
|
88
|
+
/**
|
|
89
|
+
* @vue-ignore
|
|
90
|
+
*/
|
|
91
|
+
HTMLAttributes {}
|
|
92
|
+
declare const _default$4: typeof __VLS_export$3;
|
|
93
|
+
declare const __VLS_export$3: __VLS_WithSlots$3<vue18.DefineComponent<CollapsibleRootProviderProps, {}, {}, {}, {}, vue18.ComponentOptionsMixin, vue18.ComponentOptionsMixin, {}, string, vue18.PublicProps, Readonly<CollapsibleRootProviderProps> & Readonly<{}>, {}, {}, {}, {}, string, vue18.ComponentProvideOptions, false, {}, any>, {
|
|
94
|
+
default?: (props: {}) => any;
|
|
95
|
+
}>;
|
|
96
|
+
type __VLS_WithSlots$3<T, S> = T & {
|
|
97
|
+
new (): {
|
|
98
|
+
$slots: S;
|
|
99
|
+
};
|
|
100
|
+
};
|
|
101
|
+
//#endregion
|
|
102
|
+
//#region src/components/collapsible/collapsible-root.vue.d.ts
|
|
103
|
+
interface CollapsibleRootBaseProps extends RootProps, PolymorphicProps {}
|
|
104
|
+
interface CollapsibleRootProps extends CollapsibleRootBaseProps,
|
|
105
|
+
/**
|
|
106
|
+
* @vue-ignore
|
|
107
|
+
*/
|
|
108
|
+
HTMLAttributes {}
|
|
109
|
+
interface CollapsibleRootEmits extends RootEmits {}
|
|
110
|
+
declare const _default$3: typeof __VLS_export$2;
|
|
111
|
+
declare const __VLS_export$2: __VLS_WithSlots$2<vue18.DefineComponent<CollapsibleRootProps, {}, {}, {}, {}, vue18.ComponentOptionsMixin, vue18.ComponentOptionsMixin, {
|
|
112
|
+
exitComplete: () => any;
|
|
113
|
+
openChange: (details: collapsible.OpenChangeDetails) => any;
|
|
114
|
+
"update:open": (open: boolean) => any;
|
|
115
|
+
}, string, vue18.PublicProps, Readonly<CollapsibleRootProps> & Readonly<{
|
|
116
|
+
onExitComplete?: (() => any) | undefined;
|
|
117
|
+
onOpenChange?: ((details: collapsible.OpenChangeDetails) => any) | undefined;
|
|
118
|
+
"onUpdate:open"?: ((open: boolean) => any) | undefined;
|
|
119
|
+
}>, {
|
|
120
|
+
defaultOpen: boolean;
|
|
121
|
+
disabled: boolean;
|
|
122
|
+
lazyMount: boolean;
|
|
123
|
+
open: boolean;
|
|
124
|
+
unmountOnExit: boolean;
|
|
125
|
+
}, {}, {}, {}, string, vue18.ComponentProvideOptions, false, {}, any>, {
|
|
126
|
+
default?: (props: {}) => any;
|
|
127
|
+
}>;
|
|
128
|
+
type __VLS_WithSlots$2<T, S> = T & {
|
|
129
|
+
new (): {
|
|
130
|
+
$slots: S;
|
|
131
|
+
};
|
|
132
|
+
};
|
|
133
|
+
//#endregion
|
|
134
|
+
//#region src/components/collapsible/collapsible-trigger.vue.d.ts
|
|
135
|
+
interface CollapsibleTriggerBaseProps extends PolymorphicProps {}
|
|
136
|
+
interface CollapsibleTriggerProps extends CollapsibleTriggerBaseProps,
|
|
137
|
+
/**
|
|
138
|
+
* @vue-ignore
|
|
139
|
+
*/
|
|
140
|
+
ButtonHTMLAttributes {}
|
|
141
|
+
declare const _default$5: typeof __VLS_export$1;
|
|
142
|
+
declare const __VLS_export$1: __VLS_WithSlots$1<vue18.DefineComponent<CollapsibleTriggerProps, {}, {}, {}, {}, vue18.ComponentOptionsMixin, vue18.ComponentOptionsMixin, {}, string, vue18.PublicProps, Readonly<CollapsibleTriggerProps> & Readonly<{}>, {}, {}, {}, {}, string, vue18.ComponentProvideOptions, false, {}, any>, {
|
|
143
|
+
default?: (props: {}) => any;
|
|
144
|
+
}>;
|
|
145
|
+
type __VLS_WithSlots$1<T, S> = T & {
|
|
146
|
+
new (): {
|
|
147
|
+
$slots: S;
|
|
148
|
+
};
|
|
149
|
+
};
|
|
150
|
+
//#endregion
|
|
151
|
+
//#region src/components/collapsible/collapsible-indicator.vue.d.ts
|
|
152
|
+
interface CollapsibleIndicatorBaseProps extends PolymorphicProps {}
|
|
153
|
+
interface CollapsibleIndicatorProps extends CollapsibleIndicatorBaseProps,
|
|
154
|
+
/**
|
|
155
|
+
* @vue-ignore
|
|
156
|
+
*/
|
|
157
|
+
HTMLAttributes {}
|
|
158
|
+
declare const _default$2: typeof __VLS_export;
|
|
159
|
+
declare const __VLS_export: __VLS_WithSlots<vue18.DefineComponent<CollapsibleIndicatorProps, {}, {}, {}, {}, vue18.ComponentOptionsMixin, vue18.ComponentOptionsMixin, {}, string, vue18.PublicProps, Readonly<CollapsibleIndicatorProps> & Readonly<{}>, {}, {}, {}, {}, string, vue18.ComponentProvideOptions, false, {}, any>, {
|
|
160
|
+
default?: (props: {}) => any;
|
|
161
|
+
}>;
|
|
162
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
163
|
+
new (): {
|
|
164
|
+
$slots: S;
|
|
165
|
+
};
|
|
166
|
+
};
|
|
167
|
+
declare namespace collapsible_d_exports {
|
|
168
|
+
export { _default as Content, CollapsibleContentBaseProps as ContentBaseProps, CollapsibleContentProps as ContentProps, _default$1 as Context, CollapsibleContextProps as ContextProps, _default$2 as Indicator, CollapsibleIndicatorBaseProps as IndicatorBaseProps, CollapsibleIndicatorProps as IndicatorProps, OpenChangeDetails, _default$3 as Root, CollapsibleRootBaseProps as RootBaseProps, CollapsibleRootEmits as RootEmits, CollapsibleRootProps as RootProps, _default$4 as RootProvider, CollapsibleRootProviderBaseProps as RootProviderBaseProps, CollapsibleRootProviderProps as RootProviderProps, _default$5 as Trigger, CollapsibleTriggerBaseProps as TriggerBaseProps, CollapsibleTriggerProps as TriggerProps };
|
|
169
|
+
}
|
|
170
|
+
//#endregion
|
|
171
|
+
export { collapsible_d_exports as Collapsible, _default as CollapsibleContent, type CollapsibleContentBaseProps, type CollapsibleContentProps, _default$1 as CollapsibleContext, type CollapsibleContextProps, _default$2 as CollapsibleIndicator, type CollapsibleIndicatorBaseProps, type CollapsibleIndicatorProps, type CollapsibleOpenChangeDetails, _default$3 as CollapsibleRoot, type CollapsibleRootBaseProps, type CollapsibleRootEmits, type CollapsibleRootProps, _default$4 as CollapsibleRootProvider, type CollapsibleRootProviderBaseProps, type CollapsibleRootProviderProps, _default$5 as CollapsibleTrigger, type CollapsibleTriggerBaseProps, type CollapsibleTriggerProps, type UseCollapsibleContext, type UseCollapsibleProps, type UseCollapsibleReturn, collapsibleAnatomy, useCollapsible, useCollapsibleContext };
|
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
import { t as __exportAll } from "../../chunk-BN_g-Awi.js";
|
|
2
|
+
import { a as DEFAULT_LOCALE, c as DEFAULT_ENVIRONMENT, d as mergeProps$1, f as useMachine, l as useEnvironmentContext, o as useLocaleContext, p as normalizeProps$1, t as useForwardExpose, u as createContext } from "../../use-forward-expose-BIk4OI3R.js";
|
|
3
|
+
import { Fragment, cloneVNode, computed, createBlock, createCommentVNode, defineComponent, guardReactiveProps, h, mergeDefaults, mergeProps, normalizeProps, openBlock, ref, renderSlot, toValue, unref, useId, watch, withCtx } from "vue";
|
|
4
|
+
import * as collapsible from "@sprawlify/primitives/machines/collapsible";
|
|
5
|
+
import { anatomy as collapsibleAnatomy } from "@sprawlify/primitives/machines/collapsible";
|
|
6
|
+
|
|
7
|
+
//#region src/utils/dynamic.ts
|
|
8
|
+
const Dynamic = defineComponent({
|
|
9
|
+
name: "Dynamic",
|
|
10
|
+
inheritAttrs: false,
|
|
11
|
+
setup(_, { attrs, slots }) {
|
|
12
|
+
return () => {
|
|
13
|
+
if (!slots.default) return null;
|
|
14
|
+
const children = renderSlotFragments(slots.default());
|
|
15
|
+
const [firstChildren, ...otherChildren] = children;
|
|
16
|
+
if (Object.keys(attrs).length > 0) {
|
|
17
|
+
delete firstChildren.props?.ref;
|
|
18
|
+
const mergedProps = mergeProps$1(attrs, firstChildren.props ?? {});
|
|
19
|
+
const cloned = cloneVNode(firstChildren, mergedProps);
|
|
20
|
+
for (const prop in mergedProps) if (prop.startsWith("on")) {
|
|
21
|
+
cloned.props ||= {};
|
|
22
|
+
cloned.props[prop] = mergedProps[prop];
|
|
23
|
+
}
|
|
24
|
+
return children.length === 1 ? cloned : [cloned, ...otherChildren];
|
|
25
|
+
}
|
|
26
|
+
return children;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
function renderSlotFragments(children) {
|
|
31
|
+
if (!children) return [];
|
|
32
|
+
return children.flatMap((child) => {
|
|
33
|
+
if (child.type === Fragment) return renderSlotFragments(child.children);
|
|
34
|
+
return [child];
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
//#endregion
|
|
39
|
+
//#region src/components/factory.ts
|
|
40
|
+
const SELF_CLOSING_TAGS = "br, hr, img, input, area, textarea".split(", ");
|
|
41
|
+
const isSelfClosingTag = (tag) => typeof tag === "string" && SELF_CLOSING_TAGS.includes(tag);
|
|
42
|
+
const withAsChild = (component) => {
|
|
43
|
+
return defineComponent({
|
|
44
|
+
name: "Polymorphic",
|
|
45
|
+
inheritAttrs: false,
|
|
46
|
+
props: { asChild: {
|
|
47
|
+
type: Boolean,
|
|
48
|
+
default: false
|
|
49
|
+
} },
|
|
50
|
+
setup(props, { attrs, slots }) {
|
|
51
|
+
if (!props.asChild) return () => h(component, attrs, isSelfClosingTag(component) ? void 0 : slots.default?.());
|
|
52
|
+
return () => h(Dynamic, attrs, slots);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
function jsxFactory() {
|
|
57
|
+
const cache = /* @__PURE__ */ new Map();
|
|
58
|
+
return new Proxy(withAsChild, {
|
|
59
|
+
apply(_target, _thisArg, argArray) {
|
|
60
|
+
return withAsChild(argArray[0]);
|
|
61
|
+
},
|
|
62
|
+
get(_, element) {
|
|
63
|
+
if (!cache.has(element)) cache.set(element, withAsChild(element));
|
|
64
|
+
return cache.get(element);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
const sprawlify = jsxFactory();
|
|
69
|
+
|
|
70
|
+
//#endregion
|
|
71
|
+
//#region src/components/collapsible/use-collapsible-context.ts
|
|
72
|
+
const [CollapsibleProvider, useCollapsibleContext] = createContext("CollapsibleContext");
|
|
73
|
+
|
|
74
|
+
//#endregion
|
|
75
|
+
//#region src/components/collapsible/collapsible-content.vue?vue&type=script&setup=true&lang.ts
|
|
76
|
+
var collapsible_content_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
77
|
+
__name: "collapsible-content",
|
|
78
|
+
props: { asChild: {
|
|
79
|
+
type: Boolean,
|
|
80
|
+
required: false
|
|
81
|
+
} },
|
|
82
|
+
setup(__props) {
|
|
83
|
+
const collapsible = useCollapsibleContext();
|
|
84
|
+
useForwardExpose();
|
|
85
|
+
return (_ctx, _cache) => {
|
|
86
|
+
return !unref(collapsible).unmounted ? (openBlock(), createBlock(unref(sprawlify).div, mergeProps({ key: 0 }, unref(collapsible).getContentProps(), { "as-child": __props.asChild }), {
|
|
87
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
|
|
88
|
+
_: 3
|
|
89
|
+
}, 16, ["as-child"])) : createCommentVNode("v-if", true);
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
//#endregion
|
|
95
|
+
//#region src/components/collapsible/collapsible-content.vue
|
|
96
|
+
var collapsible_content_default = collapsible_content_vue_vue_type_script_setup_true_lang_default;
|
|
97
|
+
|
|
98
|
+
//#endregion
|
|
99
|
+
//#region src/components/collapsible/collapsible-context.vue?vue&type=script&setup=true&lang.ts
|
|
100
|
+
var collapsible_context_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
101
|
+
__name: "collapsible-context",
|
|
102
|
+
setup(__props) {
|
|
103
|
+
const collapsible = useCollapsibleContext();
|
|
104
|
+
return (_ctx, _cache) => {
|
|
105
|
+
return renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(unref(collapsible))));
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
//#endregion
|
|
111
|
+
//#region src/components/collapsible/collapsible-context.vue
|
|
112
|
+
var collapsible_context_default = collapsible_context_vue_vue_type_script_setup_true_lang_default;
|
|
113
|
+
|
|
114
|
+
//#endregion
|
|
115
|
+
//#region src/components/collapsible/collapsible-root-provider.vue?vue&type=script&setup=true&lang.ts
|
|
116
|
+
var collapsible_root_provider_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
117
|
+
__name: "collapsible-root-provider",
|
|
118
|
+
props: {
|
|
119
|
+
value: {
|
|
120
|
+
type: null,
|
|
121
|
+
required: true
|
|
122
|
+
},
|
|
123
|
+
asChild: {
|
|
124
|
+
type: Boolean,
|
|
125
|
+
required: false
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
setup(__props) {
|
|
129
|
+
const props = __props;
|
|
130
|
+
const collapsible = computed(() => props.value);
|
|
131
|
+
CollapsibleProvider(collapsible);
|
|
132
|
+
useForwardExpose();
|
|
133
|
+
return (_ctx, _cache) => {
|
|
134
|
+
return openBlock(), createBlock(unref(sprawlify).div, mergeProps(collapsible.value.getRootProps(), { "as-child": __props.asChild }), {
|
|
135
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
|
|
136
|
+
_: 3
|
|
137
|
+
}, 16, ["as-child"]);
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
//#endregion
|
|
143
|
+
//#region src/components/collapsible/collapsible-root-provider.vue
|
|
144
|
+
var collapsible_root_provider_default = collapsible_root_provider_vue_vue_type_script_setup_true_lang_default;
|
|
145
|
+
|
|
146
|
+
//#endregion
|
|
147
|
+
//#region src/utils/clean-props.ts
|
|
148
|
+
const cleanProps = (obj) => {
|
|
149
|
+
const result = {};
|
|
150
|
+
for (const [key, value] of Object.entries(obj)) if (value !== void 0) result[key] = value;
|
|
151
|
+
return result;
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
//#endregion
|
|
155
|
+
//#region src/components/collapsible/use-collapsible.ts
|
|
156
|
+
const useCollapsible = (props = {}, emits) => {
|
|
157
|
+
const id = useId();
|
|
158
|
+
const env = useEnvironmentContext(DEFAULT_ENVIRONMENT);
|
|
159
|
+
const locale = useLocaleContext(DEFAULT_LOCALE);
|
|
160
|
+
const context = computed(() => {
|
|
161
|
+
const localeProps = toValue(props);
|
|
162
|
+
return {
|
|
163
|
+
id,
|
|
164
|
+
dir: locale.value.dir,
|
|
165
|
+
getRootNode: env?.value.getRootNode,
|
|
166
|
+
...cleanProps(localeProps),
|
|
167
|
+
onExitComplete: () => {
|
|
168
|
+
emits?.("exitComplete");
|
|
169
|
+
localeProps.onExitComplete?.();
|
|
170
|
+
},
|
|
171
|
+
onOpenChange: (details) => {
|
|
172
|
+
emits?.("openChange", details);
|
|
173
|
+
emits?.("update:open", details.open);
|
|
174
|
+
localeProps.onOpenChange?.(details);
|
|
175
|
+
}
|
|
176
|
+
};
|
|
177
|
+
});
|
|
178
|
+
const service = useMachine(collapsible.machine, context);
|
|
179
|
+
const api = computed(() => collapsible.connect(service, normalizeProps$1));
|
|
180
|
+
const wasVisible = ref(false);
|
|
181
|
+
watch(() => api.value.visible, () => {
|
|
182
|
+
if (api.value.visible) wasVisible.value = true;
|
|
183
|
+
});
|
|
184
|
+
return computed(() => {
|
|
185
|
+
const localeProps = toValue(props);
|
|
186
|
+
return {
|
|
187
|
+
...api.value,
|
|
188
|
+
unmounted: !api.value.visible && !wasVisible.value && localeProps.lazyMount || localeProps.unmountOnExit && !api.value.visible && wasVisible.value
|
|
189
|
+
};
|
|
190
|
+
});
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
//#endregion
|
|
194
|
+
//#region src/components/collapsible/collapsible-root.vue?vue&type=script&setup=true&lang.ts
|
|
195
|
+
var collapsible_root_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
196
|
+
__name: "collapsible-root",
|
|
197
|
+
props: /* @__PURE__ */ mergeDefaults({
|
|
198
|
+
collapsedHeight: {
|
|
199
|
+
type: [Number, String],
|
|
200
|
+
required: false
|
|
201
|
+
},
|
|
202
|
+
collapsedWidth: {
|
|
203
|
+
type: [Number, String],
|
|
204
|
+
required: false
|
|
205
|
+
},
|
|
206
|
+
defaultOpen: {
|
|
207
|
+
type: Boolean,
|
|
208
|
+
required: false
|
|
209
|
+
},
|
|
210
|
+
disabled: {
|
|
211
|
+
type: Boolean,
|
|
212
|
+
required: false
|
|
213
|
+
},
|
|
214
|
+
id: {
|
|
215
|
+
type: String,
|
|
216
|
+
required: false
|
|
217
|
+
},
|
|
218
|
+
ids: {
|
|
219
|
+
type: Object,
|
|
220
|
+
required: false
|
|
221
|
+
},
|
|
222
|
+
lazyMount: {
|
|
223
|
+
type: Boolean,
|
|
224
|
+
required: false
|
|
225
|
+
},
|
|
226
|
+
open: {
|
|
227
|
+
type: Boolean,
|
|
228
|
+
required: false
|
|
229
|
+
},
|
|
230
|
+
unmountOnExit: {
|
|
231
|
+
type: Boolean,
|
|
232
|
+
required: false
|
|
233
|
+
},
|
|
234
|
+
asChild: {
|
|
235
|
+
type: Boolean,
|
|
236
|
+
required: false
|
|
237
|
+
}
|
|
238
|
+
}, {
|
|
239
|
+
defaultOpen: void 0,
|
|
240
|
+
disabled: void 0,
|
|
241
|
+
lazyMount: void 0,
|
|
242
|
+
open: void 0,
|
|
243
|
+
unmountOnExit: void 0
|
|
244
|
+
}),
|
|
245
|
+
emits: [
|
|
246
|
+
"exitComplete",
|
|
247
|
+
"openChange",
|
|
248
|
+
"update:open"
|
|
249
|
+
],
|
|
250
|
+
setup(__props, { emit: __emit }) {
|
|
251
|
+
const collapsible = useCollapsible(__props, __emit);
|
|
252
|
+
CollapsibleProvider(collapsible);
|
|
253
|
+
useForwardExpose();
|
|
254
|
+
return (_ctx, _cache) => {
|
|
255
|
+
return openBlock(), createBlock(unref(sprawlify).div, mergeProps(unref(collapsible).getRootProps(), { "as-child": __props.asChild }), {
|
|
256
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
|
|
257
|
+
_: 3
|
|
258
|
+
}, 16, ["as-child"]);
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
});
|
|
262
|
+
|
|
263
|
+
//#endregion
|
|
264
|
+
//#region src/components/collapsible/collapsible-root.vue
|
|
265
|
+
var collapsible_root_default = collapsible_root_vue_vue_type_script_setup_true_lang_default;
|
|
266
|
+
|
|
267
|
+
//#endregion
|
|
268
|
+
//#region src/components/collapsible/collapsible-trigger.vue?vue&type=script&setup=true&lang.ts
|
|
269
|
+
var collapsible_trigger_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
270
|
+
__name: "collapsible-trigger",
|
|
271
|
+
props: { asChild: {
|
|
272
|
+
type: Boolean,
|
|
273
|
+
required: false
|
|
274
|
+
} },
|
|
275
|
+
setup(__props) {
|
|
276
|
+
const collapsible = useCollapsibleContext();
|
|
277
|
+
useForwardExpose();
|
|
278
|
+
return (_ctx, _cache) => {
|
|
279
|
+
return openBlock(), createBlock(unref(sprawlify).button, mergeProps(unref(collapsible).getTriggerProps(), { "as-child": __props.asChild }), {
|
|
280
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
|
|
281
|
+
_: 3
|
|
282
|
+
}, 16, ["as-child"]);
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
});
|
|
286
|
+
|
|
287
|
+
//#endregion
|
|
288
|
+
//#region src/components/collapsible/collapsible-trigger.vue
|
|
289
|
+
var collapsible_trigger_default = collapsible_trigger_vue_vue_type_script_setup_true_lang_default;
|
|
290
|
+
|
|
291
|
+
//#endregion
|
|
292
|
+
//#region src/components/collapsible/collapsible-indicator.vue?vue&type=script&setup=true&lang.ts
|
|
293
|
+
var collapsible_indicator_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
294
|
+
__name: "collapsible-indicator",
|
|
295
|
+
props: { asChild: {
|
|
296
|
+
type: Boolean,
|
|
297
|
+
required: false
|
|
298
|
+
} },
|
|
299
|
+
setup(__props) {
|
|
300
|
+
const collapsible = useCollapsibleContext();
|
|
301
|
+
useForwardExpose();
|
|
302
|
+
return (_ctx, _cache) => {
|
|
303
|
+
return openBlock(), createBlock(unref(sprawlify).div, mergeProps(unref(collapsible).getIndicatorProps(), { "as-child": __props.asChild }), {
|
|
304
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
|
|
305
|
+
_: 3
|
|
306
|
+
}, 16, ["as-child"]);
|
|
307
|
+
};
|
|
308
|
+
}
|
|
309
|
+
});
|
|
310
|
+
|
|
311
|
+
//#endregion
|
|
312
|
+
//#region src/components/collapsible/collapsible-indicator.vue
|
|
313
|
+
var collapsible_indicator_default = collapsible_indicator_vue_vue_type_script_setup_true_lang_default;
|
|
314
|
+
|
|
315
|
+
//#endregion
|
|
316
|
+
//#region src/components/collapsible/collapsible.ts
|
|
317
|
+
var collapsible_exports = /* @__PURE__ */ __exportAll({
|
|
318
|
+
Content: () => collapsible_content_default,
|
|
319
|
+
Context: () => collapsible_context_default,
|
|
320
|
+
Indicator: () => collapsible_indicator_default,
|
|
321
|
+
Root: () => collapsible_root_default,
|
|
322
|
+
RootProvider: () => collapsible_root_provider_default,
|
|
323
|
+
Trigger: () => collapsible_trigger_default
|
|
324
|
+
});
|
|
325
|
+
|
|
326
|
+
//#endregion
|
|
327
|
+
export { collapsible_exports as Collapsible, collapsible_content_default as CollapsibleContent, collapsible_context_default as CollapsibleContext, collapsible_indicator_default as CollapsibleIndicator, collapsible_root_default as CollapsibleRoot, collapsible_root_provider_default as CollapsibleRootProvider, collapsible_trigger_default as CollapsibleTrigger, collapsibleAnatomy, useCollapsible, useCollapsibleContext };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,22 +1,92 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import * as
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
1
|
+
import { a as Optional, c as PropTypes, i as MaybePromise, l as normalizeProps, n as BooleanDefaults, o as mergeProps, r as EmitFn, s as useMachine, t as Assign } from "./types-BQfkZGpL.js";
|
|
2
|
+
import * as vue8 from "vue";
|
|
3
|
+
import { ComponentPublicInstance, ComputedRef, MaybeRef, MaybeRefOrGetter, UnwrapRef } from "vue";
|
|
4
|
+
import { FilterOptions, FilterReturn, Locale } from "@sprawlify/primitives/i18n-utils";
|
|
5
5
|
|
|
6
|
-
//#region src/
|
|
7
|
-
type
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
//#region src/providers/environment/use-environment-context.d.ts
|
|
7
|
+
type RootNode = ShadowRoot | Document | Node;
|
|
8
|
+
interface UseEnvironmentContext {
|
|
9
|
+
/**
|
|
10
|
+
* The root node of the application.
|
|
11
|
+
* This is used to determine the window and document objects.
|
|
12
|
+
*/
|
|
13
|
+
getRootNode(): RootNode;
|
|
14
|
+
/**
|
|
15
|
+
* The document context for the root node.
|
|
16
|
+
*/
|
|
17
|
+
getDocument(): Document;
|
|
18
|
+
/**
|
|
19
|
+
* The window context for the root node.
|
|
20
|
+
*/
|
|
21
|
+
getWindow(): Window & typeof globalThis;
|
|
22
|
+
}
|
|
23
|
+
declare const DEFAULT_ENVIRONMENT: ComputedRef<UseEnvironmentContext>;
|
|
24
|
+
//#endregion
|
|
25
|
+
//#region src/providers/environment/environment-provider.vue.d.ts
|
|
26
|
+
interface EnvironmentProviderProps {
|
|
27
|
+
value?: RootNode | (() => RootNode);
|
|
28
|
+
}
|
|
29
|
+
declare var __VLS_1: {};
|
|
30
|
+
type __VLS_Slots = {} & {
|
|
31
|
+
default?: (props: typeof __VLS_1) => any;
|
|
32
|
+
};
|
|
33
|
+
declare const __VLS_base: vue8.DefineComponent<EnvironmentProviderProps, {}, {}, {}, {}, vue8.ComponentOptionsMixin, vue8.ComponentOptionsMixin, {}, string, vue8.PublicProps, Readonly<EnvironmentProviderProps> & Readonly<{}>, {}, {}, {}, {}, string, vue8.ComponentProvideOptions, false, {}, any>;
|
|
34
|
+
declare const __VLS_export$1: __VLS_WithSlots$1<typeof __VLS_base, __VLS_Slots>;
|
|
35
|
+
declare const _default: typeof __VLS_export$1;
|
|
36
|
+
type __VLS_WithSlots$1<T, S> = T & {
|
|
37
|
+
new (): {
|
|
38
|
+
$slots: S;
|
|
39
|
+
};
|
|
10
40
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
41
|
+
//#endregion
|
|
42
|
+
//#region src/providers/locale/locale-provider.vue.d.ts
|
|
43
|
+
interface LocaleProviderProps {
|
|
44
|
+
locale: string;
|
|
45
|
+
}
|
|
46
|
+
declare const _default$1: typeof __VLS_export;
|
|
47
|
+
declare const __VLS_export: __VLS_WithSlots<vue8.DefineComponent<LocaleProviderProps, {}, {}, {}, {}, vue8.ComponentOptionsMixin, vue8.ComponentOptionsMixin, {}, string, vue8.PublicProps, Readonly<LocaleProviderProps> & Readonly<{}>, {}, {}, {}, {}, string, vue8.ComponentProvideOptions, false, {}, any>, {
|
|
48
|
+
default?: (props: {}) => any;
|
|
49
|
+
}>;
|
|
50
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
51
|
+
new (): {
|
|
52
|
+
$slots: S;
|
|
53
|
+
};
|
|
15
54
|
};
|
|
16
|
-
declare const normalizeProps: _sprawlify_primitives_types0.NormalizeProps<PropTypes>;
|
|
17
55
|
//#endregion
|
|
18
|
-
//#region src/
|
|
19
|
-
|
|
20
|
-
|
|
56
|
+
//#region src/providers/locale/use-collator.d.ts
|
|
57
|
+
interface UseCollatorProps extends Intl.CollatorOptions {
|
|
58
|
+
locale?: string;
|
|
59
|
+
}
|
|
60
|
+
interface UseCollatorReturn extends ComputedRef<Intl.Collator> {}
|
|
61
|
+
declare function useCollator(propsOrFn?: MaybeRef<UseCollatorProps>): UseCollatorReturn;
|
|
62
|
+
//#endregion
|
|
63
|
+
//#region src/providers/locale/use-filter.d.ts
|
|
64
|
+
interface UseFilterProps extends FilterOptions {}
|
|
65
|
+
declare function useFilter(props: UseFilterProps): UseFilterReturn;
|
|
66
|
+
interface UseFilterReturn extends ComputedRef<FilterReturn> {}
|
|
67
|
+
//#endregion
|
|
68
|
+
//#region src/providers/locale/use-locale-context.d.ts
|
|
69
|
+
interface LocaleContext extends Locale {}
|
|
70
|
+
declare const DEFAULT_LOCALE: ComputedRef<LocaleContext>;
|
|
71
|
+
//#endregion
|
|
72
|
+
//#region src/utils/create-context.d.ts
|
|
73
|
+
type CreateContextReturn<T> = [(opts: T) => void, (fallback?: T) => T, symbol];
|
|
74
|
+
declare const createContext: <T>(id: string) => CreateContextReturn<T>;
|
|
75
|
+
//#endregion
|
|
76
|
+
//#region src/utils/use-emits-as-props.d.ts
|
|
77
|
+
declare function useEmitAsProps<Name extends string>(emit: (name: Name, ...args: any[]) => void): Record<string, any>;
|
|
78
|
+
//#endregion
|
|
79
|
+
//#region src/utils/use-forward-expose.d.ts
|
|
80
|
+
declare function useForwardExpose(): {
|
|
81
|
+
forwardRef: (ref: Element | ComponentPublicInstance | null) => void;
|
|
82
|
+
currentRef: vue8.Ref<Element | ComponentPublicInstance | null | undefined, Element | ComponentPublicInstance | null | undefined>;
|
|
83
|
+
currentElement: vue8.ComputedRef<HTMLElement>;
|
|
84
|
+
};
|
|
85
|
+
//#endregion
|
|
86
|
+
//#region src/utils/use-forward-props.d.ts
|
|
87
|
+
declare function useForwardProps<T extends MaybeRefOrGetter<Record<string, any>>, U extends UnwrapRef<T>>(props: T): vue8.ComputedRef<U>;
|
|
88
|
+
//#endregion
|
|
89
|
+
//#region src/utils/use-forward-props-emits.d.ts
|
|
90
|
+
declare function useForwardPropsEmits<T extends Parameters<typeof useForwardProps>[0], Name extends string>(props: T, emit?: (name: Name, ...args: any[]) => void): vue8.ComputedRef<any>;
|
|
21
91
|
//#endregion
|
|
22
|
-
export { PropTypes, mergeProps, normalizeProps, useMachine };
|
|
92
|
+
export { Assign, BooleanDefaults, DEFAULT_ENVIRONMENT, DEFAULT_LOCALE, EmitFn, _default as EnvironmentProvider, type EnvironmentProviderProps, type LocaleContext, _default$1 as LocaleProvider, type LocaleProviderProps, MaybePromise, Optional, PropTypes, type RootNode, type UseCollatorProps, type UseCollatorReturn, type UseEnvironmentContext, type UseFilterProps, type UseFilterReturn, createContext, mergeProps, normalizeProps, useCollator, useEmitAsProps, useEnvironmentContext, useFilter, useForwardExpose, useForwardProps, useForwardPropsEmits, useLocaleContext, useMachine };
|