@sprawlify/vue 0.0.64 → 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 +9 -34
- package/dist/index.js +2 -503
- package/dist/types-BQfkZGpL.d.ts +30 -0
- package/dist/use-forward-expose-BIk4OI3R.js +505 -0
- package/package.json +6 -2
|
@@ -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,25 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import * as
|
|
3
|
-
import
|
|
4
|
-
import { ComponentPublicInstance, ComputedRef, MaybeRef, MaybeRefOrGetter, Ref, UnwrapRef } from "vue";
|
|
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";
|
|
5
4
|
import { FilterOptions, FilterReturn, Locale } from "@sprawlify/primitives/i18n-utils";
|
|
6
5
|
|
|
7
|
-
//#region src/core/normalize-props.d.ts
|
|
8
|
-
type ReservedProps = {
|
|
9
|
-
key?: string | number | symbol | undefined;
|
|
10
|
-
ref?: Vue.VNodeRef | undefined;
|
|
11
|
-
};
|
|
12
|
-
type Attrs<T> = T & ReservedProps;
|
|
13
|
-
type PropTypes = Vue.NativeElements & {
|
|
14
|
-
element: Attrs<Vue.HTMLAttributes>;
|
|
15
|
-
style: Vue.CSSProperties;
|
|
16
|
-
};
|
|
17
|
-
declare const normalizeProps: _sprawlify_primitives_types0.NormalizeProps<PropTypes>;
|
|
18
|
-
//#endregion
|
|
19
|
-
//#region src/core/machine.d.ts
|
|
20
|
-
type MaybeRef$1<T> = T | Ref<T> | ComputedRef<T>;
|
|
21
|
-
declare function useMachine<T extends MachineSchema>(machine: Machine<T>, userProps?: MaybeRef$1<Partial<T["props"]>>): Service<T>;
|
|
22
|
-
//#endregion
|
|
23
6
|
//#region src/providers/environment/use-environment-context.d.ts
|
|
24
7
|
type RootNode = ShadowRoot | Document | Node;
|
|
25
8
|
interface UseEnvironmentContext {
|
|
@@ -47,7 +30,7 @@ declare var __VLS_1: {};
|
|
|
47
30
|
type __VLS_Slots = {} & {
|
|
48
31
|
default?: (props: typeof __VLS_1) => any;
|
|
49
32
|
};
|
|
50
|
-
declare const __VLS_base:
|
|
33
|
+
declare const __VLS_base: vue8.DefineComponent<EnvironmentProviderProps, {}, {}, {}, {}, vue8.ComponentOptionsMixin, vue8.ComponentOptionsMixin, {}, string, vue8.PublicProps, Readonly<EnvironmentProviderProps> & Readonly<{}>, {}, {}, {}, {}, string, vue8.ComponentProvideOptions, false, {}, any>;
|
|
51
34
|
declare const __VLS_export$1: __VLS_WithSlots$1<typeof __VLS_base, __VLS_Slots>;
|
|
52
35
|
declare const _default: typeof __VLS_export$1;
|
|
53
36
|
type __VLS_WithSlots$1<T, S> = T & {
|
|
@@ -61,7 +44,7 @@ interface LocaleProviderProps {
|
|
|
61
44
|
locale: string;
|
|
62
45
|
}
|
|
63
46
|
declare const _default$1: typeof __VLS_export;
|
|
64
|
-
declare const __VLS_export: __VLS_WithSlots<
|
|
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>, {
|
|
65
48
|
default?: (props: {}) => any;
|
|
66
49
|
}>;
|
|
67
50
|
type __VLS_WithSlots<T, S> = T & {
|
|
@@ -86,14 +69,6 @@ interface UseFilterReturn extends ComputedRef<FilterReturn> {}
|
|
|
86
69
|
interface LocaleContext extends Locale {}
|
|
87
70
|
declare const DEFAULT_LOCALE: ComputedRef<LocaleContext>;
|
|
88
71
|
//#endregion
|
|
89
|
-
//#region src/types.d.ts
|
|
90
|
-
type Optional<T, K extends keyof T> = Pick<Partial<T>, K> & Omit<T, K>;
|
|
91
|
-
type Assign<T, U> = Omit<T, keyof U> & U;
|
|
92
|
-
type EmitFn<T> = <K extends keyof T>(event: K, ...args: T[K] extends any[] ? T[K] : never) => void;
|
|
93
|
-
type BooleanKey<T> = { [K in keyof T]: boolean extends NonNullable<T[K]> ? K : never }[keyof T];
|
|
94
|
-
type BooleanDefaults<T> = { [K in BooleanKey<T>]: undefined };
|
|
95
|
-
type MaybePromise<T> = T | Promise<T>;
|
|
96
|
-
//#endregion
|
|
97
72
|
//#region src/utils/create-context.d.ts
|
|
98
73
|
type CreateContextReturn<T> = [(opts: T) => void, (fallback?: T) => T, symbol];
|
|
99
74
|
declare const createContext: <T>(id: string) => CreateContextReturn<T>;
|
|
@@ -104,14 +79,14 @@ declare function useEmitAsProps<Name extends string>(emit: (name: Name, ...args:
|
|
|
104
79
|
//#region src/utils/use-forward-expose.d.ts
|
|
105
80
|
declare function useForwardExpose(): {
|
|
106
81
|
forwardRef: (ref: Element | ComponentPublicInstance | null) => void;
|
|
107
|
-
currentRef:
|
|
108
|
-
currentElement:
|
|
82
|
+
currentRef: vue8.Ref<Element | ComponentPublicInstance | null | undefined, Element | ComponentPublicInstance | null | undefined>;
|
|
83
|
+
currentElement: vue8.ComputedRef<HTMLElement>;
|
|
109
84
|
};
|
|
110
85
|
//#endregion
|
|
111
86
|
//#region src/utils/use-forward-props.d.ts
|
|
112
|
-
declare function useForwardProps<T extends MaybeRefOrGetter<Record<string, any>>, U extends UnwrapRef<T>>(props: T):
|
|
87
|
+
declare function useForwardProps<T extends MaybeRefOrGetter<Record<string, any>>, U extends UnwrapRef<T>>(props: T): vue8.ComputedRef<U>;
|
|
113
88
|
//#endregion
|
|
114
89
|
//#region src/utils/use-forward-props-emits.d.ts
|
|
115
|
-
declare function useForwardPropsEmits<T extends Parameters<typeof useForwardProps>[0], Name extends string>(props: T, emit?: (name: Name, ...args: any[]) => void):
|
|
90
|
+
declare function useForwardPropsEmits<T extends Parameters<typeof useForwardProps>[0], Name extends string>(props: T, emit?: (name: Name, ...args: any[]) => void): vue8.ComputedRef<any>;
|
|
116
91
|
//#endregion
|
|
117
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 };
|