@spark-ui/components 10.8.2 → 10.10.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 +13 -0
- package/dist/{DialogTrigger-5SI4dvpK.d.mts → DialogTrigger-woU7vsJi.d.mts} +9 -9
- package/dist/{DialogTrigger-5SI4dvpK.d.ts → DialogTrigger-woU7vsJi.d.ts} +9 -9
- package/dist/accordion/index.d.mts +13 -25
- package/dist/accordion/index.d.ts +13 -25
- package/dist/accordion/index.js +114 -250
- package/dist/accordion/index.js.map +1 -1
- package/dist/accordion/index.mjs +92 -134
- package/dist/accordion/index.mjs.map +1 -1
- package/dist/alert-dialog/index.d.mts +1 -1
- package/dist/alert-dialog/index.d.ts +1 -1
- package/dist/alert-dialog/index.js +60 -46
- package/dist/alert-dialog/index.js.map +1 -1
- package/dist/alert-dialog/index.mjs +1 -1
- package/dist/{chunk-T26TYEWV.mjs → chunk-I7UIKCZK.mjs} +56 -42
- package/dist/chunk-I7UIKCZK.mjs.map +1 -0
- package/dist/collapsible/index.d.mts +18 -35
- package/dist/collapsible/index.d.ts +18 -35
- package/dist/collapsible/index.js +47 -78
- package/dist/collapsible/index.js.map +1 -1
- package/dist/collapsible/index.mjs +73 -4
- package/dist/collapsible/index.mjs.map +1 -1
- package/dist/dialog/index.d.mts +2 -2
- package/dist/dialog/index.d.ts +2 -2
- package/dist/dialog/index.js +52 -38
- package/dist/dialog/index.js.map +1 -1
- package/dist/dialog/index.mjs +1 -1
- package/dist/drawer/index.d.mts +6 -2
- package/dist/drawer/index.d.ts +6 -2
- package/dist/drawer/index.js +105 -59
- package/dist/drawer/index.js.map +1 -1
- package/dist/drawer/index.mjs +81 -35
- package/dist/drawer/index.mjs.map +1 -1
- package/dist/scrolling-list/index.d.mts +2 -2
- package/dist/scrolling-list/index.d.ts +2 -2
- package/dist/scrolling-list/index.js +32 -68
- package/dist/scrolling-list/index.js.map +1 -1
- package/dist/scrolling-list/index.mjs +7 -43
- package/dist/scrolling-list/index.mjs.map +1 -1
- package/dist/spinner/index.d.mts +1 -1
- package/dist/spinner/index.d.ts +1 -1
- package/package.json +6 -7
- package/dist/chunk-3LEFXZNI.mjs +0 -97
- package/dist/chunk-3LEFXZNI.mjs.map +0 -1
- package/dist/chunk-T26TYEWV.mjs.map +0 -1
|
@@ -13,14 +13,18 @@ import { useEffect, useRef } from "react";
|
|
|
13
13
|
import { createContext, useContext, useState } from "react";
|
|
14
14
|
import { jsx } from "react/jsx-runtime";
|
|
15
15
|
var DialogContext = createContext(null);
|
|
16
|
-
var DialogProvider = ({
|
|
16
|
+
var DialogProvider = ({
|
|
17
|
+
children: childrenProp,
|
|
18
|
+
withFade = false
|
|
19
|
+
}) => {
|
|
17
20
|
const [isFullScreen, setIsFullScreen] = useState(false);
|
|
18
21
|
return /* @__PURE__ */ jsx(
|
|
19
22
|
DialogContext.Provider,
|
|
20
23
|
{
|
|
21
24
|
value: {
|
|
22
25
|
isFullScreen,
|
|
23
|
-
setIsFullScreen
|
|
26
|
+
setIsFullScreen,
|
|
27
|
+
withFade
|
|
24
28
|
},
|
|
25
29
|
children: childrenProp
|
|
26
30
|
}
|
|
@@ -36,7 +40,7 @@ var useDialog = () => {
|
|
|
36
40
|
|
|
37
41
|
// src/dialog/Dialog.tsx
|
|
38
42
|
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
39
|
-
var Dialog = ({ children, ...rest }) => {
|
|
43
|
+
var Dialog = ({ children, withFade = false, ...rest }) => {
|
|
40
44
|
const open = rest.open;
|
|
41
45
|
const activeElementRef = useRef(null);
|
|
42
46
|
function handleActiveElementFocus() {
|
|
@@ -51,42 +55,52 @@ var Dialog = ({ children, ...rest }) => {
|
|
|
51
55
|
}
|
|
52
56
|
}
|
|
53
57
|
useEffect(handleActiveElementFocus, [open]);
|
|
54
|
-
return /* @__PURE__ */ jsx2(DialogProvider, { children: /* @__PURE__ */ jsx2(RadixDialog.Root, { ...rest, children }) });
|
|
58
|
+
return /* @__PURE__ */ jsx2(DialogProvider, { withFade, children: /* @__PURE__ */ jsx2(RadixDialog.Root, { ...rest, children }) });
|
|
55
59
|
};
|
|
56
60
|
Dialog.displayName = "Dialog.Root";
|
|
57
61
|
|
|
58
|
-
// src/dialog/DialogBody.styles.ts
|
|
59
|
-
import { cva } from "class-variance-authority";
|
|
60
|
-
var dialogBodyStyles = cva(
|
|
61
|
-
["grow", "overflow-y-auto", "outline-hidden", "focus-visible:u-outline"],
|
|
62
|
-
{
|
|
63
|
-
variants: {
|
|
64
|
-
inset: {
|
|
65
|
-
true: "",
|
|
66
|
-
false: "px-xl py-lg"
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
);
|
|
71
|
-
|
|
72
62
|
// src/dialog/DialogBody.tsx
|
|
63
|
+
import { useMergeRefs } from "@spark-ui/hooks/use-merge-refs";
|
|
64
|
+
import { useScrollOverflow } from "@spark-ui/hooks/use-scroll-overflow";
|
|
65
|
+
import { cx } from "class-variance-authority";
|
|
66
|
+
import { useRef as useRef2 } from "react";
|
|
73
67
|
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
74
68
|
var Body = ({
|
|
75
69
|
children,
|
|
76
70
|
className,
|
|
77
71
|
inset = false,
|
|
78
|
-
ref,
|
|
72
|
+
ref: forwardedRef,
|
|
79
73
|
...rest
|
|
80
|
-
}) =>
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
74
|
+
}) => {
|
|
75
|
+
const scrollAreaRef = useRef2(null);
|
|
76
|
+
const ref = useMergeRefs(forwardedRef, scrollAreaRef);
|
|
77
|
+
const { withFade } = useDialog();
|
|
78
|
+
const overflow = useScrollOverflow(scrollAreaRef);
|
|
79
|
+
return /* @__PURE__ */ jsx3(
|
|
80
|
+
"div",
|
|
81
|
+
{
|
|
82
|
+
"data-spark-component": "dialog-body",
|
|
83
|
+
ref,
|
|
84
|
+
className: cx(
|
|
85
|
+
"focus-visible:u-outline relative grow overflow-y-auto outline-hidden",
|
|
86
|
+
"transition-all duration-300",
|
|
87
|
+
{
|
|
88
|
+
["px-xl py-lg"]: !inset
|
|
89
|
+
},
|
|
90
|
+
className
|
|
91
|
+
),
|
|
92
|
+
style: {
|
|
93
|
+
...withFade && {
|
|
94
|
+
maskImage: "linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 1) 44px, rgba(0, 0, 0, 1) calc(100% - 44px), rgba(0, 0, 0, 0))",
|
|
95
|
+
maskSize: `100% calc(100% + ${overflow.top ? "0px" : "44px"} + ${overflow.bottom ? "0px" : "44px"})`,
|
|
96
|
+
maskPosition: `0 ${overflow.top ? "0px" : "-44px"}`
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
...rest,
|
|
100
|
+
children
|
|
101
|
+
}
|
|
102
|
+
);
|
|
103
|
+
};
|
|
90
104
|
Body.displayName = "Dialog.Body";
|
|
91
105
|
|
|
92
106
|
// src/dialog/DialogClose.tsx
|
|
@@ -97,7 +111,7 @@ Close.displayName = "Dialog.Close";
|
|
|
97
111
|
|
|
98
112
|
// src/dialog/DialogCloseButton.tsx
|
|
99
113
|
import { Close as CloseSVG } from "@spark-ui/icons/Close";
|
|
100
|
-
import { cx } from "class-variance-authority";
|
|
114
|
+
import { cx as cx2 } from "class-variance-authority";
|
|
101
115
|
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
102
116
|
var Root = ({
|
|
103
117
|
"aria-label": ariaLabel,
|
|
@@ -115,7 +129,7 @@ var Root = ({
|
|
|
115
129
|
"data-spark-component": "dialog-close-button",
|
|
116
130
|
"data-part": "close",
|
|
117
131
|
ref,
|
|
118
|
-
className:
|
|
132
|
+
className: cx2(["absolute", "top-md", "right-xl"], className),
|
|
119
133
|
asChild: true,
|
|
120
134
|
...rest,
|
|
121
135
|
children: /* @__PURE__ */ jsx5(IconButton, { intent, size, design, "aria-label": ariaLabel, children: /* @__PURE__ */ jsx5(Icon, { children }) })
|
|
@@ -132,8 +146,8 @@ import { Dialog as RadixDialog3 } from "radix-ui";
|
|
|
132
146
|
import { useEffect as useEffect2 } from "react";
|
|
133
147
|
|
|
134
148
|
// src/dialog/DialogContent.styles.tsx
|
|
135
|
-
import { cva
|
|
136
|
-
var dialogContentStyles =
|
|
149
|
+
import { cva } from "class-variance-authority";
|
|
150
|
+
var dialogContentStyles = cva(
|
|
137
151
|
[
|
|
138
152
|
"z-modal flex flex-col bg-surface group",
|
|
139
153
|
"focus-visible:outline-hidden focus-visible:u-outline",
|
|
@@ -224,14 +238,14 @@ var Description = (props) => /* @__PURE__ */ jsx7(RadixDialog4.Description, { "d
|
|
|
224
238
|
Description.displayName = "Dialog.Description";
|
|
225
239
|
|
|
226
240
|
// src/dialog/DialogFooter.tsx
|
|
227
|
-
import { cx as
|
|
241
|
+
import { cx as cx3 } from "class-variance-authority";
|
|
228
242
|
import { jsx as jsx8 } from "react/jsx-runtime";
|
|
229
243
|
var Footer = ({ children, className, ref, ...rest }) => /* @__PURE__ */ jsx8(
|
|
230
244
|
"footer",
|
|
231
245
|
{
|
|
232
246
|
"data-spark-component": "dialog-footer",
|
|
233
247
|
ref,
|
|
234
|
-
className:
|
|
248
|
+
className: cx3(className, ["px-xl", "py-lg"]),
|
|
235
249
|
...rest,
|
|
236
250
|
children
|
|
237
251
|
}
|
|
@@ -239,14 +253,14 @@ var Footer = ({ children, className, ref, ...rest }) => /* @__PURE__ */ jsx8(
|
|
|
239
253
|
Footer.displayName = "Dialog.Footer";
|
|
240
254
|
|
|
241
255
|
// src/dialog/DialogHeader.tsx
|
|
242
|
-
import { cx as
|
|
256
|
+
import { cx as cx4 } from "class-variance-authority";
|
|
243
257
|
import { jsx as jsx9 } from "react/jsx-runtime";
|
|
244
258
|
var Header = ({ children, className, ref, ...rest }) => /* @__PURE__ */ jsx9(
|
|
245
259
|
"header",
|
|
246
260
|
{
|
|
247
261
|
"data-spark-component": "dialog-header",
|
|
248
262
|
ref,
|
|
249
|
-
className:
|
|
263
|
+
className: cx4(className, ["px-xl", "py-lg"]),
|
|
250
264
|
...rest,
|
|
251
265
|
children
|
|
252
266
|
}
|
|
@@ -254,7 +268,7 @@ var Header = ({ children, className, ref, ...rest }) => /* @__PURE__ */ jsx9(
|
|
|
254
268
|
Header.displayName = "Dialog.Header";
|
|
255
269
|
|
|
256
270
|
// src/dialog/DialogOverlay.tsx
|
|
257
|
-
import { cx as
|
|
271
|
+
import { cx as cx5 } from "class-variance-authority";
|
|
258
272
|
import { Dialog as RadixDialog5 } from "radix-ui";
|
|
259
273
|
import { jsx as jsx10 } from "react/jsx-runtime";
|
|
260
274
|
var Overlay = ({ className, ref, ...rest }) => {
|
|
@@ -264,7 +278,7 @@ var Overlay = ({ className, ref, ...rest }) => {
|
|
|
264
278
|
{
|
|
265
279
|
"data-spark-component": "dialog-overlay",
|
|
266
280
|
ref,
|
|
267
|
-
className:
|
|
281
|
+
className: cx5(
|
|
268
282
|
isFullScreen ? "hidden" : "fixed",
|
|
269
283
|
["top-0", "left-0", "w-screen", "h-screen", "z-overlay"],
|
|
270
284
|
["bg-overlay/dim-1"],
|
|
@@ -285,7 +299,7 @@ var Portal = ({ children, ...rest }) => /* @__PURE__ */ jsx11(RadixDialog6.Porta
|
|
|
285
299
|
Portal.displayName = "Dialog.Portal";
|
|
286
300
|
|
|
287
301
|
// src/dialog/DialogTitle.tsx
|
|
288
|
-
import { cx as
|
|
302
|
+
import { cx as cx6 } from "class-variance-authority";
|
|
289
303
|
import { Dialog as RadixDialog7 } from "radix-ui";
|
|
290
304
|
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
291
305
|
var Title = ({ className, ref, ...others }) => {
|
|
@@ -294,7 +308,7 @@ var Title = ({ className, ref, ...others }) => {
|
|
|
294
308
|
{
|
|
295
309
|
"data-spark-component": "dialog-title",
|
|
296
310
|
ref,
|
|
297
|
-
className:
|
|
311
|
+
className: cx6(
|
|
298
312
|
"text-headline-1 text-on-surface",
|
|
299
313
|
"group-has-data-[part=close]:pr-3xl",
|
|
300
314
|
className
|
|
@@ -341,4 +355,4 @@ Description.displayName = "Dialog.Description";
|
|
|
341
355
|
export {
|
|
342
356
|
Dialog2 as Dialog
|
|
343
357
|
};
|
|
344
|
-
//# sourceMappingURL=chunk-
|
|
358
|
+
//# sourceMappingURL=chunk-I7UIKCZK.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/dialog/Dialog.tsx","../src/dialog/DialogContext.tsx","../src/dialog/DialogBody.tsx","../src/dialog/DialogClose.tsx","../src/dialog/DialogCloseButton.tsx","../src/dialog/DialogContent.tsx","../src/dialog/DialogContent.styles.tsx","../src/dialog/DialogDescription.tsx","../src/dialog/DialogFooter.tsx","../src/dialog/DialogHeader.tsx","../src/dialog/DialogOverlay.tsx","../src/dialog/DialogPortal.tsx","../src/dialog/DialogTitle.tsx","../src/dialog/DialogTrigger.tsx","../src/dialog/index.ts"],"sourcesContent":["import { Dialog as RadixDialog } from 'radix-ui'\nimport { type ReactElement, useEffect, useRef } from 'react'\n\nimport { DialogProvider } from './DialogContext'\n\nexport interface DialogProps {\n /**\n * Children of the component.\n */\n children?: RadixDialog.DialogProps['children']\n /**\n * Specifies if the dialog is open or not.\n */\n open?: RadixDialog.DialogProps['open']\n /**\n * Default open state.\n */\n defaultOpen?: RadixDialog.DialogProps['defaultOpen']\n /**\n * Handler executen on every dialog open state change.\n */\n onOpenChange?: RadixDialog.DialogProps['onOpenChange']\n /**\n * Specifies if the dialog is a modal.\n */\n modal?: RadixDialog.DialogProps['modal']\n /**\n * Specifies if the dialog should have a fade animation on its body (in case it is scrollable).\n */\n withFade?: boolean\n}\n\nexport const Dialog = ({ children, withFade = false, ...rest }: DialogProps): ReactElement => {\n const open = rest.open\n const activeElementRef = useRef<Element>(null)\n\n /**\n * This function captures the active element when the Dialog is opened\n * and sets focus back to it when the Dialog is closed.\n */\n function handleActiveElementFocus() {\n if (open && document.activeElement) {\n activeElementRef.current = document.activeElement\n }\n\n if (!open) {\n setTimeout(() => {\n if (!(activeElementRef.current instanceof HTMLElement)) return\n activeElementRef.current.focus()\n }, 0)\n }\n }\n\n useEffect(handleActiveElementFocus, [open])\n\n return (\n <DialogProvider withFade={withFade}>\n <RadixDialog.Root {...rest}>{children}</RadixDialog.Root>\n </DialogProvider>\n )\n}\n\nDialog.displayName = 'Dialog.Root'\n","import { createContext, type ReactNode, useContext, useState } from 'react'\n\nexport interface DialogContextState {\n isFullScreen: boolean\n setIsFullScreen: (value: boolean) => void\n withFade: boolean\n}\n\nconst DialogContext = createContext<DialogContextState | null>(null)\n\nexport const DialogProvider = ({\n children: childrenProp,\n withFade = false,\n}: {\n children: ReactNode\n withFade?: boolean\n}) => {\n const [isFullScreen, setIsFullScreen] = useState(false)\n\n return (\n <DialogContext.Provider\n value={{\n isFullScreen,\n setIsFullScreen,\n withFade,\n }}\n >\n {childrenProp}\n </DialogContext.Provider>\n )\n}\n\nexport const useDialog = () => {\n const context = useContext(DialogContext)\n\n if (!context) {\n throw Error('useDialog must be used within a Dialog provider')\n }\n\n return context\n}\n","import { useMergeRefs } from '@spark-ui/hooks/use-merge-refs'\nimport { useScrollOverflow } from '@spark-ui/hooks/use-scroll-overflow'\nimport { cx } from 'class-variance-authority'\nimport { type ReactElement, type ReactNode, Ref, useRef } from 'react'\n\nimport { useDialog } from './DialogContext'\n\nexport interface BodyProps {\n children: ReactNode\n className?: string\n tabIndex?: number\n ref?: Ref<HTMLDivElement>\n inset?: boolean\n}\n\nexport const Body = ({\n children,\n className,\n inset = false,\n ref: forwardedRef,\n ...rest\n}: BodyProps): ReactElement => {\n const scrollAreaRef = useRef<HTMLDivElement>(null)\n const ref = useMergeRefs(forwardedRef, scrollAreaRef)\n\n const { withFade } = useDialog()\n\n const overflow = useScrollOverflow(scrollAreaRef)\n\n return (\n <div\n data-spark-component=\"dialog-body\"\n ref={ref}\n className={cx(\n 'focus-visible:u-outline relative grow overflow-y-auto outline-hidden',\n 'transition-all duration-300',\n {\n ['px-xl py-lg']: !inset,\n },\n className\n )}\n style={{\n ...(withFade && {\n maskImage:\n 'linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 1) 44px, rgba(0, 0, 0, 1) calc(100% - 44px), rgba(0, 0, 0, 0))',\n maskSize: `100% calc(100% + ${overflow.top ? '0px' : '44px'} + ${overflow.bottom ? '0px' : '44px'})`,\n maskPosition: `0 ${overflow.top ? '0px' : '-44px'}`,\n }),\n }}\n {...rest}\n >\n {children}\n </div>\n )\n}\n\nBody.displayName = 'Dialog.Body'\n","import { Dialog as RadixDialog } from 'radix-ui'\nimport { Ref } from 'react'\n\nexport type CloseProps = RadixDialog.DialogCloseProps & {\n ref?: Ref<HTMLButtonElement>\n}\n\nexport const Close = (props: CloseProps) => <RadixDialog.Close {...props} />\n\nClose.displayName = 'Dialog.Close'\n","import { Close as CloseSVG } from '@spark-ui/icons/Close'\nimport { cx } from 'class-variance-authority'\n\nimport { Icon } from '../icon'\nimport { IconButton, type IconButtonProps } from '../icon-button'\nimport { Close, CloseProps } from './DialogClose'\n\nexport type CloseButtonProps = CloseProps &\n Pick<IconButtonProps, 'size' | 'intent' | 'design' | 'aria-label'>\n\nconst Root = ({\n 'aria-label': ariaLabel,\n className,\n size = 'md',\n intent = 'neutral',\n design = 'ghost',\n children = <CloseSVG />,\n ref,\n ...rest\n}: CloseButtonProps) => {\n return (\n <Close\n data-spark-component=\"dialog-close-button\"\n data-part=\"close\"\n ref={ref}\n className={cx(['absolute', 'top-md', 'right-xl'], className)}\n asChild\n {...rest}\n >\n <IconButton intent={intent} size={size} design={design} aria-label={ariaLabel}>\n <Icon>{children}</Icon>\n </IconButton>\n </Close>\n )\n}\n\nexport const CloseButton = Object.assign(Root, {\n id: 'CloseButton',\n})\n\nRoot.displayName = 'Dialog.CloseButton'\n","import { Dialog as RadixDialog } from 'radix-ui'\nimport { type ReactElement, Ref, useEffect } from 'react'\n\nimport { dialogContentStyles, type DialogContentStylesProps } from './DialogContent.styles'\nimport { useDialog } from './DialogContext'\n\nexport interface ContentProps extends RadixDialog.DialogContentProps, DialogContentStylesProps {\n /**\n * When set to true, the content will adjust its width to fit the content rather than taking up the full available width.\n */\n isNarrow?: boolean\n ref?: Ref<HTMLDivElement>\n}\n\nexport const Content = ({\n children,\n className,\n isNarrow = false,\n size = 'md',\n onInteractOutside,\n ref,\n ...rest\n}: ContentProps): ReactElement => {\n const { setIsFullScreen } = useDialog()\n\n useEffect(() => {\n if (size === 'fullscreen') setIsFullScreen(true)\n\n return () => setIsFullScreen(false)\n }, [setIsFullScreen, size])\n\n return (\n <RadixDialog.Content\n data-spark-component=\"dialog-content\"\n ref={ref}\n className={dialogContentStyles({\n className,\n isNarrow,\n size,\n })}\n onInteractOutside={e => {\n const isForegroundElement = (e.target as HTMLElement).closest('.z-toast, .z-popover')\n\n /**\n * The focus trap of the dialog applies `pointer-events-none` on the body of the page in the background, but\n * some components with an higher z-index have `pointer-events-auto` applied on them to remain interactive and ignore the focust trap (ex: a Snackbar with actions).\n *\n * Clicking on the snackbar will be considered as an \"outside click\" and close the dialog. We want to prevent this.\n */\n if (isForegroundElement) {\n e.preventDefault()\n }\n\n onInteractOutside?.(e)\n }}\n {...rest}\n >\n {children}\n </RadixDialog.Content>\n )\n}\n\nContent.displayName = 'Dialog.Content'\n","import { cva, VariantProps } from 'class-variance-authority'\n\nexport const dialogContentStyles = cva(\n [\n 'z-modal flex flex-col bg-surface group',\n 'focus-visible:outline-hidden focus-visible:u-outline',\n '[&:not(:has(footer))]:pb-lg',\n '[&:not(:has(header))]:pt-lg',\n ],\n {\n variants: {\n size: {\n fullscreen: 'fixed size-full top-0 left-0',\n sm: 'max-w-sz-480',\n md: 'max-w-sz-672',\n lg: 'max-w-sz-864',\n },\n isNarrow: {\n true: [],\n false: [],\n },\n },\n compoundVariants: [\n {\n size: ['sm', 'md', 'lg'],\n class: [\n 'fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2',\n 'max-h-[80%]',\n 'shadow-md rounded-lg',\n 'data-[state=open]:animate-fade-in',\n 'data-[state=closed]:animate-fade-out',\n ],\n },\n {\n size: ['sm', 'md', 'lg'],\n isNarrow: false,\n class: ['w-full'],\n },\n ],\n defaultVariants: {\n size: 'md',\n isNarrow: false,\n },\n }\n)\n\nexport type DialogContentStylesProps = VariantProps<typeof dialogContentStyles>\n","import { Dialog as RadixDialog } from 'radix-ui'\nimport { Ref } from 'react'\n\nexport type DescriptionProps = RadixDialog.DialogDescriptionProps & {\n ref?: Ref<HTMLParagraphElement>\n}\n\nexport const Description = (props: DescriptionProps) => (\n <RadixDialog.Description data-spark-component=\"dialog-description\" {...props} />\n)\n\nDescription.displayName = 'Dialog.Description'\n","import { cx } from 'class-variance-authority'\nimport { type ReactElement, type ReactNode, Ref } from 'react'\n\nexport interface FooterProps {\n children: ReactNode\n className?: string\n ref?: Ref<HTMLDivElement>\n}\n\nexport const Footer = ({ children, className, ref, ...rest }: FooterProps): ReactElement => (\n <footer\n data-spark-component=\"dialog-footer\"\n ref={ref}\n className={cx(className, ['px-xl', 'py-lg'])}\n {...rest}\n >\n {children}\n </footer>\n)\n\nFooter.displayName = 'Dialog.Footer'\n","import { cx } from 'class-variance-authority'\nimport { type ReactElement, type ReactNode, Ref } from 'react'\n\nexport interface HeaderProps {\n children: ReactNode\n className?: string\n ref?: Ref<HTMLDivElement>\n}\n\nexport const Header = ({ children, className, ref, ...rest }: HeaderProps): ReactElement => (\n <header\n data-spark-component=\"dialog-header\"\n ref={ref}\n className={cx(className, ['px-xl', 'py-lg'])}\n {...rest}\n >\n {children}\n </header>\n)\n\nHeader.displayName = 'Dialog.Header'\n","import { cx } from 'class-variance-authority'\nimport { Dialog as RadixDialog } from 'radix-ui'\nimport { type ReactElement, Ref } from 'react'\n\nimport { useDialog } from './DialogContext'\n\nexport type OverlayProps = RadixDialog.DialogOverlayProps & {\n ref?: Ref<HTMLDivElement>\n}\n\nexport const Overlay = ({ className, ref, ...rest }: OverlayProps): ReactElement | null => {\n const { isFullScreen } = useDialog()\n\n return (\n <RadixDialog.Overlay\n data-spark-component=\"dialog-overlay\"\n ref={ref}\n className={cx(\n isFullScreen ? 'hidden' : 'fixed',\n ['top-0', 'left-0', 'w-screen', 'h-screen', 'z-overlay'],\n ['bg-overlay/dim-1'],\n ['data-[state=open]:animate-fade-in'],\n ['data-[state=closed]:animate-fade-out'],\n className\n )}\n {...rest}\n />\n )\n}\n\nOverlay.displayName = 'Dialog.Overlay'\n","import { Dialog as RadixDialog } from 'radix-ui'\nimport { type ReactElement } from 'react'\n\nexport type PortalProps = RadixDialog.DialogPortalProps\n\nexport const Portal = ({ children, ...rest }: PortalProps): ReactElement => (\n <RadixDialog.Portal {...rest}>{children}</RadixDialog.Portal>\n)\n\nPortal.displayName = 'Dialog.Portal'\n","import { cx } from 'class-variance-authority'\nimport { Dialog as RadixDialog } from 'radix-ui'\nimport { Ref } from 'react'\n\nexport type TitleProps = RadixDialog.DialogTitleProps & {\n ref?: Ref<HTMLHeadingElement>\n}\n\nexport const Title = ({ className, ref, ...others }: TitleProps) => {\n return (\n <RadixDialog.Title\n data-spark-component=\"dialog-title\"\n ref={ref}\n className={cx(\n 'text-headline-1 text-on-surface',\n 'group-has-data-[part=close]:pr-3xl',\n className\n )}\n {...others}\n />\n )\n}\n\nTitle.displayName = 'Dialog.Title'\n","import { Dialog as RadixDialog } from 'radix-ui'\nimport { type ReactElement, ReactNode, Ref } from 'react'\n\nexport interface TriggerProps {\n /**\n * Children of the component.\n */\n children?: ReactNode\n /**\n * Change the component to the HTML tag or custom component of the only child.\n */\n asChild?: RadixDialog.DialogTriggerProps['asChild']\n ref?: Ref<HTMLButtonElement>\n}\n\nexport const Trigger = (props: TriggerProps): ReactElement => (\n <RadixDialog.Trigger data-spark-component=\"dialog-trigger\" {...props} />\n)\n\nTrigger.displayName = 'Dialog.Trigger'\n","import { Dialog as Root } from './Dialog'\nimport { Body } from './DialogBody'\nimport { Close } from './DialogClose'\nimport { CloseButton } from './DialogCloseButton'\nimport { Content } from './DialogContent'\nimport { Description } from './DialogDescription' // aria-describedby\nimport { Footer } from './DialogFooter'\nimport { Header } from './DialogHeader'\nimport { Overlay } from './DialogOverlay'\nimport { Portal } from './DialogPortal'\nimport { Title } from './DialogTitle' // aria-labelledby\nimport { Trigger } from './DialogTrigger'\n\nexport const Dialog: typeof Root & {\n Trigger: typeof Trigger\n Portal: typeof Portal\n Overlay: typeof Overlay\n Content: typeof Content\n Header: typeof Header\n Body: typeof Body\n Footer: typeof Footer\n Close: typeof Close\n CloseButton: typeof CloseButton\n Title: typeof Title\n Description: typeof Description\n} = Object.assign(Root, {\n Trigger,\n Portal,\n Overlay,\n Content,\n Header,\n Body,\n Footer,\n Close,\n CloseButton,\n Title,\n Description,\n})\n\nDialog.displayName = 'Dialog'\nDialog.Trigger.displayName = 'Dialog.Trigger'\nTrigger.displayName = 'Dialog.Trigger'\nPortal.displayName = 'Dialog.Portal'\nOverlay.displayName = 'Dialog.Overlay'\nContent.displayName = 'Dialog.Content'\nHeader.displayName = 'Dialog.Header'\nBody.displayName = 'Dialog.Body'\nFooter.displayName = 'Dialog.Footer'\nCloseButton.displayName = 'Dialog.CloseButton'\nTitle.displayName = 'Dialog.Title'\nDescription.displayName = 'Dialog.Description'\n\nexport { type DialogProps } from './Dialog'\nexport { type ContentProps as DialogContentProps } from './DialogContent'\nexport { type HeaderProps as DialogHeaderProps } from './DialogHeader'\nexport { type BodyProps as DialogBodyProps } from './DialogBody'\nexport { type FooterProps as DialogFooterProps } from './DialogFooter'\nexport { type TriggerProps as DialogTriggerProps } from './DialogTrigger'\nexport { type OverlayProps as DialogOverlayProps } from './DialogOverlay'\nexport { type PortalProps as DialogPortalProps } from './DialogPortal'\nexport { type TitleProps as DialogTitleProps } from './DialogTitle'\nexport { type DescriptionProps as DialogDescriptionProps } from './DialogDescription'\nexport { type CloseProps as DialogCloseProps } from './DialogClose'\nexport { type CloseButtonProps as DialogCloseButtonProps } from './DialogCloseButton'\n"],"mappings":"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","names":["jsx","useRef","jsx","useRef","RadixDialog","jsx","cx","jsx","cx","RadixDialog","useEffect","jsx","useEffect","RadixDialog","RadixDialog","jsx","cx","jsx","cx","jsx","cx","RadixDialog","jsx","RadixDialog","cx","RadixDialog","jsx","cx","RadixDialog","jsx","RadixDialog","jsx","Dialog"]}
|
|
@@ -1,60 +1,43 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import
|
|
3
|
-
import { ComponentProps
|
|
2
|
+
import { Collapsible as Collapsible$1 } from '@base-ui-components/react/collapsible';
|
|
3
|
+
import { ComponentProps } from 'react';
|
|
4
4
|
|
|
5
|
-
interface
|
|
5
|
+
interface ContentProps extends ComponentProps<typeof Collapsible$1.Panel> {
|
|
6
6
|
/**
|
|
7
7
|
* Change the default rendered element for the one passed as a child, merging their props and behavior.
|
|
8
8
|
*/
|
|
9
9
|
asChild?: boolean;
|
|
10
|
-
/**
|
|
11
|
-
* The open state of the collapsible when it is initially rendered. Use when you do not need to control its open state.
|
|
12
|
-
*/
|
|
13
|
-
defaultOpen?: boolean;
|
|
14
|
-
/**
|
|
15
|
-
* When `true`, prevents the user from interacting with the collapsible.
|
|
16
|
-
*/
|
|
17
|
-
disabled?: boolean;
|
|
18
|
-
/**
|
|
19
|
-
* Event handler called when the open state of the collapsible changes.
|
|
20
|
-
*/
|
|
21
|
-
onOpenChange?: (open: boolean) => void;
|
|
22
|
-
/**
|
|
23
|
-
* The controlled open state of the collapsible. Must be used in conjunction with `onOpenChange`.
|
|
24
|
-
*/
|
|
25
|
-
open?: boolean;
|
|
26
|
-
/**
|
|
27
|
-
* The ids of the elements in the collapsible. Useful for composition
|
|
28
|
-
*/
|
|
29
|
-
ids?: collapsible.Props['ids'];
|
|
30
|
-
ref?: Ref<HTMLDivElement>;
|
|
31
10
|
}
|
|
32
|
-
declare const
|
|
33
|
-
({ asChild,
|
|
11
|
+
declare const Content: {
|
|
12
|
+
({ asChild, className, children, hiddenUntilFound, ...props }: ContentProps): react_jsx_runtime.JSX.Element;
|
|
34
13
|
displayName: string;
|
|
35
14
|
};
|
|
36
15
|
|
|
37
|
-
interface
|
|
16
|
+
interface RootProps extends ComponentProps<typeof Collapsible$1.Root> {
|
|
17
|
+
/**
|
|
18
|
+
* Change the default rendered element for the one passed as a child, merging their props and behavior.
|
|
19
|
+
*/
|
|
38
20
|
asChild?: boolean;
|
|
39
|
-
ref?: Ref<HTMLDivElement>;
|
|
40
21
|
}
|
|
41
|
-
declare const
|
|
42
|
-
({ asChild,
|
|
22
|
+
declare const Root: {
|
|
23
|
+
({ asChild, children, ...props }: RootProps): react_jsx_runtime.JSX.Element;
|
|
43
24
|
displayName: string;
|
|
44
25
|
};
|
|
45
26
|
|
|
46
|
-
interface
|
|
27
|
+
interface TriggerProps extends ComponentProps<'button'> {
|
|
28
|
+
/**
|
|
29
|
+
* Change the default rendered element for the one passed as a child, merging their props and behavior.
|
|
30
|
+
*/
|
|
47
31
|
asChild?: boolean;
|
|
48
|
-
ref?: Ref<HTMLButtonElement>;
|
|
49
32
|
}
|
|
50
33
|
declare const Trigger: {
|
|
51
|
-
({ asChild, children,
|
|
34
|
+
({ asChild, children, ...props }: TriggerProps): react_jsx_runtime.JSX.Element;
|
|
52
35
|
displayName: string;
|
|
53
36
|
};
|
|
54
37
|
|
|
55
|
-
declare const Collapsible: typeof
|
|
38
|
+
declare const Collapsible: typeof Root & {
|
|
56
39
|
Trigger: typeof Trigger;
|
|
57
40
|
Content: typeof Content;
|
|
58
41
|
};
|
|
59
42
|
|
|
60
|
-
export { Collapsible
|
|
43
|
+
export { Collapsible };
|
|
@@ -1,60 +1,43 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import
|
|
3
|
-
import { ComponentProps
|
|
2
|
+
import { Collapsible as Collapsible$1 } from '@base-ui-components/react/collapsible';
|
|
3
|
+
import { ComponentProps } from 'react';
|
|
4
4
|
|
|
5
|
-
interface
|
|
5
|
+
interface ContentProps extends ComponentProps<typeof Collapsible$1.Panel> {
|
|
6
6
|
/**
|
|
7
7
|
* Change the default rendered element for the one passed as a child, merging their props and behavior.
|
|
8
8
|
*/
|
|
9
9
|
asChild?: boolean;
|
|
10
|
-
/**
|
|
11
|
-
* The open state of the collapsible when it is initially rendered. Use when you do not need to control its open state.
|
|
12
|
-
*/
|
|
13
|
-
defaultOpen?: boolean;
|
|
14
|
-
/**
|
|
15
|
-
* When `true`, prevents the user from interacting with the collapsible.
|
|
16
|
-
*/
|
|
17
|
-
disabled?: boolean;
|
|
18
|
-
/**
|
|
19
|
-
* Event handler called when the open state of the collapsible changes.
|
|
20
|
-
*/
|
|
21
|
-
onOpenChange?: (open: boolean) => void;
|
|
22
|
-
/**
|
|
23
|
-
* The controlled open state of the collapsible. Must be used in conjunction with `onOpenChange`.
|
|
24
|
-
*/
|
|
25
|
-
open?: boolean;
|
|
26
|
-
/**
|
|
27
|
-
* The ids of the elements in the collapsible. Useful for composition
|
|
28
|
-
*/
|
|
29
|
-
ids?: collapsible.Props['ids'];
|
|
30
|
-
ref?: Ref<HTMLDivElement>;
|
|
31
10
|
}
|
|
32
|
-
declare const
|
|
33
|
-
({ asChild,
|
|
11
|
+
declare const Content: {
|
|
12
|
+
({ asChild, className, children, hiddenUntilFound, ...props }: ContentProps): react_jsx_runtime.JSX.Element;
|
|
34
13
|
displayName: string;
|
|
35
14
|
};
|
|
36
15
|
|
|
37
|
-
interface
|
|
16
|
+
interface RootProps extends ComponentProps<typeof Collapsible$1.Root> {
|
|
17
|
+
/**
|
|
18
|
+
* Change the default rendered element for the one passed as a child, merging their props and behavior.
|
|
19
|
+
*/
|
|
38
20
|
asChild?: boolean;
|
|
39
|
-
ref?: Ref<HTMLDivElement>;
|
|
40
21
|
}
|
|
41
|
-
declare const
|
|
42
|
-
({ asChild,
|
|
22
|
+
declare const Root: {
|
|
23
|
+
({ asChild, children, ...props }: RootProps): react_jsx_runtime.JSX.Element;
|
|
43
24
|
displayName: string;
|
|
44
25
|
};
|
|
45
26
|
|
|
46
|
-
interface
|
|
27
|
+
interface TriggerProps extends ComponentProps<'button'> {
|
|
28
|
+
/**
|
|
29
|
+
* Change the default rendered element for the one passed as a child, merging their props and behavior.
|
|
30
|
+
*/
|
|
47
31
|
asChild?: boolean;
|
|
48
|
-
ref?: Ref<HTMLButtonElement>;
|
|
49
32
|
}
|
|
50
33
|
declare const Trigger: {
|
|
51
|
-
({ asChild, children,
|
|
34
|
+
({ asChild, children, ...props }: TriggerProps): react_jsx_runtime.JSX.Element;
|
|
52
35
|
displayName: string;
|
|
53
36
|
};
|
|
54
37
|
|
|
55
|
-
declare const Collapsible: typeof
|
|
38
|
+
declare const Collapsible: typeof Root & {
|
|
56
39
|
Trigger: typeof Trigger;
|
|
57
40
|
Content: typeof Content;
|
|
58
41
|
};
|
|
59
42
|
|
|
60
|
-
export { Collapsible
|
|
43
|
+
export { Collapsible };
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
2
|
var __defProp = Object.defineProperty;
|
|
4
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
6
|
var __export = (target, all) => {
|
|
9
7
|
for (var name in all)
|
|
@@ -17,27 +15,18 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
15
|
}
|
|
18
16
|
return to;
|
|
19
17
|
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
19
|
|
|
30
20
|
// src/collapsible/index.ts
|
|
31
21
|
var collapsible_exports = {};
|
|
32
22
|
__export(collapsible_exports, {
|
|
33
|
-
Collapsible: () =>
|
|
23
|
+
Collapsible: () => Collapsible4
|
|
34
24
|
});
|
|
35
25
|
module.exports = __toCommonJS(collapsible_exports);
|
|
36
26
|
|
|
37
|
-
// src/collapsible/
|
|
38
|
-
var
|
|
39
|
-
var
|
|
40
|
-
var import_react3 = require("react");
|
|
27
|
+
// src/collapsible/Content.tsx
|
|
28
|
+
var import_collapsible = require("@base-ui-components/react/collapsible");
|
|
29
|
+
var import_class_variance_authority = require("class-variance-authority");
|
|
41
30
|
|
|
42
31
|
// src/slot/Slot.tsx
|
|
43
32
|
var import_radix_ui = require("radix-ui");
|
|
@@ -48,89 +37,69 @@ var Slot = ({ ref, ...props }) => {
|
|
|
48
37
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_radix_ui.Slot.Root, { ref, ...props });
|
|
49
38
|
};
|
|
50
39
|
|
|
51
|
-
// src/collapsible/
|
|
40
|
+
// src/collapsible/useRenderSlot.tsx
|
|
52
41
|
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
asChild
|
|
56
|
-
|
|
57
|
-
defaultOpen = false,
|
|
58
|
-
disabled = false,
|
|
59
|
-
onOpenChange,
|
|
60
|
-
open,
|
|
61
|
-
ids,
|
|
62
|
-
ref,
|
|
63
|
-
...props
|
|
64
|
-
}) => {
|
|
65
|
-
const service = (0, import_react2.useMachine)(collapsible.machine, {
|
|
66
|
-
open,
|
|
67
|
-
defaultOpen,
|
|
68
|
-
disabled,
|
|
69
|
-
id: (0, import_react3.useId)(),
|
|
70
|
-
ids,
|
|
71
|
-
onOpenChange(details) {
|
|
72
|
-
onOpenChange?.(details.open);
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
const api = collapsible.connect(service, import_react2.normalizeProps);
|
|
76
|
-
const Component = asChild ? Slot : "div";
|
|
77
|
-
const mergedProps = (0, import_react2.mergeProps)(api.getRootProps(), props);
|
|
78
|
-
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(CollapsibleContext.Provider, { value: api, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Component, { "data-spark-component": "collapsible", ref, ...mergedProps, children }) });
|
|
79
|
-
};
|
|
80
|
-
Collapsible.displayName = "Collapsible";
|
|
81
|
-
var useCollapsibleContext = () => {
|
|
82
|
-
const context = (0, import_react3.useContext)(CollapsibleContext);
|
|
83
|
-
if (!context) {
|
|
84
|
-
throw Error("useCollapsibleContext must be used within a Collapsible provider");
|
|
85
|
-
}
|
|
86
|
-
return context;
|
|
87
|
-
};
|
|
42
|
+
function useRenderSlot(asChild, defaultTag) {
|
|
43
|
+
const Component = asChild ? Slot : defaultTag;
|
|
44
|
+
return asChild ? ({ ...props }) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Component, { ...props }) : void 0;
|
|
45
|
+
}
|
|
88
46
|
|
|
89
|
-
// src/collapsible/
|
|
90
|
-
var import_react4 = require("@zag-js/react");
|
|
91
|
-
var import_class_variance_authority = require("class-variance-authority");
|
|
47
|
+
// src/collapsible/Content.tsx
|
|
92
48
|
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
93
49
|
var Content = ({
|
|
94
50
|
asChild = false,
|
|
95
51
|
className,
|
|
96
52
|
children,
|
|
97
|
-
|
|
53
|
+
hiddenUntilFound = true,
|
|
98
54
|
...props
|
|
99
55
|
}) => {
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
56
|
+
const renderSlot = useRenderSlot(asChild, "div");
|
|
57
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
58
|
+
import_collapsible.Collapsible.Panel,
|
|
59
|
+
{
|
|
60
|
+
"data-spark-component": "collapsible-content",
|
|
61
|
+
className: (0, import_class_variance_authority.cx)(
|
|
62
|
+
"overflow-hidden",
|
|
63
|
+
"h-[var(--collapsible-panel-height)]",
|
|
64
|
+
"transition-all duration-200",
|
|
65
|
+
"motion-reduce:transition-none",
|
|
66
|
+
"data-[starting-style]:h-0",
|
|
67
|
+
"data-[ending-style]:h-0",
|
|
68
|
+
className
|
|
69
|
+
),
|
|
70
|
+
render: renderSlot,
|
|
71
|
+
hiddenUntilFound,
|
|
72
|
+
...props,
|
|
73
|
+
children
|
|
74
|
+
}
|
|
75
|
+
);
|
|
114
76
|
};
|
|
115
77
|
Content.displayName = "Collapsible.Content";
|
|
116
78
|
|
|
117
|
-
// src/collapsible/
|
|
118
|
-
var
|
|
79
|
+
// src/collapsible/Root.tsx
|
|
80
|
+
var import_collapsible2 = require("@base-ui-components/react/collapsible");
|
|
119
81
|
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
120
|
-
var
|
|
121
|
-
const
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
82
|
+
var Root = ({ asChild = false, children, ...props }) => {
|
|
83
|
+
const renderSlot = useRenderSlot(asChild, "div");
|
|
84
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_collapsible2.Collapsible.Root, { "data-spark-component": "collapsible", render: renderSlot, ...props, children });
|
|
85
|
+
};
|
|
86
|
+
Root.displayName = "Collapsible";
|
|
87
|
+
|
|
88
|
+
// src/collapsible/Trigger.tsx
|
|
89
|
+
var import_collapsible3 = require("@base-ui-components/react/collapsible");
|
|
90
|
+
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
91
|
+
var Trigger = ({ asChild = false, children, ...props }) => {
|
|
92
|
+
const renderSlot = useRenderSlot(asChild, "button");
|
|
93
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_collapsible3.Collapsible.Trigger, { "data-spark-component": "collapsible-trigger", render: renderSlot, ...props, children });
|
|
125
94
|
};
|
|
126
95
|
Trigger.displayName = "Collapsible.Trigger";
|
|
127
96
|
|
|
128
97
|
// src/collapsible/index.ts
|
|
129
|
-
var
|
|
98
|
+
var Collapsible4 = Object.assign(Root, {
|
|
130
99
|
Trigger,
|
|
131
100
|
Content
|
|
132
101
|
});
|
|
133
|
-
|
|
102
|
+
Collapsible4.displayName = "Collapsible";
|
|
134
103
|
Trigger.displayName = "Collapsible.Trigger";
|
|
135
104
|
Content.displayName = "Collapsible.Content";
|
|
136
105
|
// Annotate the CommonJS export names for ESM import in node:
|