@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
package/dist/accordion/index.mjs
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Collapsible
|
|
3
|
-
} from "../chunk-3LEFXZNI.mjs";
|
|
4
1
|
import {
|
|
5
2
|
Icon
|
|
6
3
|
} from "../chunk-UMUMFMFB.mjs";
|
|
@@ -10,48 +7,44 @@ import {
|
|
|
10
7
|
} from "../chunk-6QCEPQ3U.mjs";
|
|
11
8
|
|
|
12
9
|
// src/accordion/Accordion.tsx
|
|
13
|
-
import
|
|
14
|
-
import { mergeProps, normalizeProps, useMachine } from "@zag-js/react";
|
|
10
|
+
import { Accordion as BaseAccordion } from "@base-ui-components/react/accordion";
|
|
15
11
|
import { cx } from "class-variance-authority";
|
|
16
|
-
import { createContext, useContext
|
|
12
|
+
import { createContext, useContext } from "react";
|
|
13
|
+
|
|
14
|
+
// src/accordion/useRenderSlot.tsx
|
|
17
15
|
import { jsx } from "react/jsx-runtime";
|
|
16
|
+
function useRenderSlot(asChild, defaultTag) {
|
|
17
|
+
const Component = asChild ? Slot : defaultTag;
|
|
18
|
+
return asChild ? ({ ...props }) => /* @__PURE__ */ jsx(Component, { ...props }) : void 0;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// src/accordion/Accordion.tsx
|
|
22
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
18
23
|
var AccordionContext = createContext(null);
|
|
19
24
|
var Accordion = ({
|
|
20
25
|
asChild = false,
|
|
21
26
|
children,
|
|
22
|
-
collapsible = true,
|
|
23
|
-
className,
|
|
24
|
-
defaultValue,
|
|
25
27
|
design = "outlined",
|
|
26
|
-
|
|
28
|
+
hiddenUntilFound = true,
|
|
27
29
|
multiple = false,
|
|
28
|
-
|
|
29
|
-
onValueChange,
|
|
30
|
+
className,
|
|
30
31
|
ref,
|
|
31
32
|
...props
|
|
32
33
|
}) => {
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
value,
|
|
46
|
-
id: useId(),
|
|
47
|
-
onValueChange(details) {
|
|
48
|
-
onValueChange?.(details.value);
|
|
34
|
+
const renderSlot = useRenderSlot(asChild, "div");
|
|
35
|
+
return /* @__PURE__ */ jsx2(AccordionContext.Provider, { value: { design }, children: /* @__PURE__ */ jsx2(
|
|
36
|
+
BaseAccordion.Root,
|
|
37
|
+
{
|
|
38
|
+
"data-spark-component": "accordion",
|
|
39
|
+
ref,
|
|
40
|
+
openMultiple: multiple,
|
|
41
|
+
hiddenUntilFound,
|
|
42
|
+
className: cx("bg-surface h-fit rounded-lg", className),
|
|
43
|
+
render: renderSlot,
|
|
44
|
+
...props,
|
|
45
|
+
children
|
|
49
46
|
}
|
|
50
|
-
});
|
|
51
|
-
const Component = asChild ? Slot : "div";
|
|
52
|
-
const api = accordion.connect(service, normalizeProps);
|
|
53
|
-
const mergedProps = mergeProps(api.getRootProps(), localProps);
|
|
54
|
-
return /* @__PURE__ */ jsx(AccordionContext.Provider, { value: { ...api, design }, children: /* @__PURE__ */ jsx(Component, { "data-spark-component": "accordion", ref, ...mergedProps, children }) });
|
|
47
|
+
) });
|
|
55
48
|
};
|
|
56
49
|
Accordion.displayName = "Accordion";
|
|
57
50
|
var useAccordionContext = () => {
|
|
@@ -63,80 +56,41 @@ var useAccordionContext = () => {
|
|
|
63
56
|
};
|
|
64
57
|
|
|
65
58
|
// src/accordion/AccordionItem.tsx
|
|
66
|
-
import {
|
|
59
|
+
import { Accordion as BaseAccordion2 } from "@base-ui-components/react/accordion";
|
|
67
60
|
import { cx as cx2 } from "class-variance-authority";
|
|
68
|
-
|
|
69
|
-
// src/accordion/AccordionItemContext.tsx
|
|
70
|
-
import {
|
|
71
|
-
createContext as createContext2,
|
|
72
|
-
useContext as useContext2,
|
|
73
|
-
useState
|
|
74
|
-
} from "react";
|
|
75
|
-
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
76
|
-
var AccordionItemContext = createContext2(null);
|
|
77
|
-
var AccordionItemProvider = ({
|
|
78
|
-
value: valueProp,
|
|
79
|
-
disabled: disabledProp = false,
|
|
80
|
-
children
|
|
81
|
-
}) => {
|
|
82
|
-
const [value, setValue] = useState(valueProp);
|
|
83
|
-
const [disabled, setDisabled] = useState(disabledProp);
|
|
84
|
-
return /* @__PURE__ */ jsx2(AccordionItemContext.Provider, { value: { value, setValue, disabled, setDisabled }, children });
|
|
85
|
-
};
|
|
86
|
-
var useAccordionItemContext = () => {
|
|
87
|
-
const context = useContext2(AccordionItemContext);
|
|
88
|
-
if (!context) {
|
|
89
|
-
throw Error("useAccordionItemContext must be used within a AccordionItem provider");
|
|
90
|
-
}
|
|
91
|
-
return context;
|
|
92
|
-
};
|
|
93
|
-
|
|
94
|
-
// src/accordion/AccordionItem.tsx
|
|
95
61
|
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
96
62
|
var Item = ({
|
|
97
63
|
asChild = false,
|
|
98
64
|
className,
|
|
99
65
|
children,
|
|
100
|
-
disabled = false,
|
|
101
|
-
value,
|
|
102
66
|
ref,
|
|
103
67
|
...props
|
|
104
68
|
}) => {
|
|
105
|
-
const
|
|
106
|
-
const
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
"not-last:border-b-0",
|
|
110
|
-
{ "border-sm border-outline": accordion2.design === "outlined" },
|
|
111
|
-
className
|
|
112
|
-
),
|
|
113
|
-
asChild,
|
|
114
|
-
...props
|
|
115
|
-
};
|
|
116
|
-
const itemProps = accordion2.getItemProps({ value, ...disabled && { disabled } });
|
|
117
|
-
const mergedProps = mergeProps2(itemProps, localProps);
|
|
118
|
-
const item = accordion2.getItemState({ value });
|
|
119
|
-
const itemContentProps = accordion2.getItemContentProps({ value });
|
|
120
|
-
return /* @__PURE__ */ jsx3(AccordionItemProvider, { value, disabled, children: /* @__PURE__ */ jsx3(
|
|
121
|
-
Collapsible,
|
|
69
|
+
const accordion = useAccordionContext();
|
|
70
|
+
const renderSlot = useRenderSlot(asChild, "div");
|
|
71
|
+
return /* @__PURE__ */ jsx3(
|
|
72
|
+
BaseAccordion2.Item,
|
|
122
73
|
{
|
|
123
74
|
ref,
|
|
124
|
-
open: item.expanded,
|
|
125
75
|
"data-spark-component": "accordion-item",
|
|
126
|
-
|
|
127
|
-
|
|
76
|
+
render: renderSlot,
|
|
77
|
+
className: cx2(
|
|
78
|
+
"relative first:rounded-t-lg last:rounded-b-lg",
|
|
79
|
+
"not-last:border-b-0",
|
|
80
|
+
{ "border-sm border-outline": accordion.design === "outlined" },
|
|
81
|
+
className
|
|
82
|
+
),
|
|
83
|
+
...props,
|
|
128
84
|
children
|
|
129
85
|
}
|
|
130
|
-
)
|
|
86
|
+
);
|
|
131
87
|
};
|
|
132
88
|
Item.displayName = "Accordion.Item";
|
|
133
89
|
|
|
134
90
|
// src/accordion/AccordionItemContent.tsx
|
|
135
|
-
import {
|
|
136
|
-
import { mergeProps as mergeProps3 } from "@zag-js/react";
|
|
91
|
+
import { Accordion as BaseAccordion3 } from "@base-ui-components/react/accordion";
|
|
137
92
|
import { cx as cx3 } from "class-variance-authority";
|
|
138
93
|
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
139
|
-
var splitVisibilityProps = createSplitProps();
|
|
140
94
|
var ItemContent = ({
|
|
141
95
|
asChild = false,
|
|
142
96
|
className,
|
|
@@ -144,20 +98,23 @@ var ItemContent = ({
|
|
|
144
98
|
ref,
|
|
145
99
|
...props
|
|
146
100
|
}) => {
|
|
147
|
-
const
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
101
|
+
const renderSlot = useRenderSlot(asChild, "div");
|
|
102
|
+
return /* @__PURE__ */ jsx4(
|
|
103
|
+
BaseAccordion3.Panel,
|
|
104
|
+
{
|
|
105
|
+
ref,
|
|
106
|
+
"data-spark-component": "accordion-item-content",
|
|
107
|
+
className: cx3(
|
|
108
|
+
"[&>:first-child]:p-lg overflow-hidden",
|
|
109
|
+
"h-[var(--accordion-panel-height)] transition-all duration-200 data-[ending-style]:h-0 data-[starting-style]:h-0",
|
|
110
|
+
"text-body-1 text-on-surface",
|
|
111
|
+
className
|
|
112
|
+
),
|
|
113
|
+
render: renderSlot,
|
|
114
|
+
...props,
|
|
115
|
+
children
|
|
116
|
+
}
|
|
117
|
+
);
|
|
161
118
|
};
|
|
162
119
|
ItemContent.displayName = "Accordion.ItemContent";
|
|
163
120
|
|
|
@@ -184,8 +141,8 @@ var ItemHeader = ({
|
|
|
184
141
|
ItemHeader.displayName = "Accordion.ItemHeader";
|
|
185
142
|
|
|
186
143
|
// src/accordion/AccordionItemTrigger.tsx
|
|
144
|
+
import { Accordion as BaseAccordion4 } from "@base-ui-components/react/accordion";
|
|
187
145
|
import { ArrowHorizontalDown } from "@spark-ui/icons/ArrowHorizontalDown";
|
|
188
|
-
import { mergeProps as mergeProps4 } from "@zag-js/react";
|
|
189
146
|
import { cx as cx5 } from "class-variance-authority";
|
|
190
147
|
import { jsx as jsx6, jsxs } from "react/jsx-runtime";
|
|
191
148
|
var ItemTrigger = ({
|
|
@@ -195,39 +152,40 @@ var ItemTrigger = ({
|
|
|
195
152
|
ref,
|
|
196
153
|
...props
|
|
197
154
|
}) => {
|
|
198
|
-
const
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
155
|
+
const renderSlot = useRenderSlot(asChild, "button");
|
|
156
|
+
return /* @__PURE__ */ jsxs(
|
|
157
|
+
BaseAccordion4.Trigger,
|
|
158
|
+
{
|
|
159
|
+
ref,
|
|
160
|
+
"data-spark-component": "accordion-item-trigger",
|
|
161
|
+
render: renderSlot,
|
|
162
|
+
className: cx5(
|
|
163
|
+
"group",
|
|
164
|
+
"gap-lg min-h-sz-48 relative flex items-center justify-between",
|
|
165
|
+
"px-lg py-md text-headline-2 text-on-surface data-[panel-open]:rounded-b-0 w-full rounded-[inherit] text-left",
|
|
166
|
+
"hover:enabled:bg-surface-hovered focus:bg-surface-hovered",
|
|
167
|
+
"focus-visible:u-outline focus-visible:z-raised focus-visible:outline-hidden",
|
|
168
|
+
"disabled:opacity-dim-3 cursor-pointer disabled:cursor-not-allowed",
|
|
169
|
+
className
|
|
170
|
+
),
|
|
171
|
+
...props,
|
|
172
|
+
children: [
|
|
173
|
+
/* @__PURE__ */ jsx6("div", { className: "gap-lg flex grow items-center", children }),
|
|
174
|
+
/* @__PURE__ */ jsx6(
|
|
175
|
+
Icon,
|
|
176
|
+
{
|
|
177
|
+
intent: "neutral",
|
|
178
|
+
className: cx5(
|
|
179
|
+
"shrink-0 rotate-0 duration-100 ease-in motion-reduce:transition-none",
|
|
180
|
+
"group-data-[panel-open]:rotate-180"
|
|
181
|
+
),
|
|
182
|
+
size: "sm",
|
|
183
|
+
children: /* @__PURE__ */ jsx6(ArrowHorizontalDown, {})
|
|
184
|
+
}
|
|
185
|
+
)
|
|
186
|
+
]
|
|
187
|
+
}
|
|
215
188
|
);
|
|
216
|
-
const isOpen = !!mergedProps["aria-expanded"];
|
|
217
|
-
return /* @__PURE__ */ jsxs(Component, { ref, "data-spark-component": "accordion-item-trigger", ...mergedProps, children: [
|
|
218
|
-
/* @__PURE__ */ jsx6("div", { className: "gap-lg flex grow items-center", children }),
|
|
219
|
-
/* @__PURE__ */ jsx6(
|
|
220
|
-
Icon,
|
|
221
|
-
{
|
|
222
|
-
intent: "neutral",
|
|
223
|
-
className: cx5("shrink-0 rotate-0 duration-100 ease-in motion-reduce:transition-none", {
|
|
224
|
-
"rotate-180": isOpen
|
|
225
|
-
}),
|
|
226
|
-
size: "sm",
|
|
227
|
-
children: /* @__PURE__ */ jsx6(ArrowHorizontalDown, {})
|
|
228
|
-
}
|
|
229
|
-
)
|
|
230
|
-
] });
|
|
231
189
|
};
|
|
232
190
|
ItemTrigger.displayName = "Accordion.ItemTrigger";
|
|
233
191
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/accordion/Accordion.tsx","../../src/accordion/AccordionItem.tsx","../../src/accordion/AccordionItemContext.tsx","../../src/accordion/AccordionItemContent.tsx","../../src/accordion/AccordionItemHeader.tsx","../../src/accordion/AccordionItemTrigger.tsx","../../src/accordion/index.ts"],"sourcesContent":["import * as accordion from '@zag-js/accordion'\nimport { mergeProps, normalizeProps, type PropTypes, useMachine } from '@zag-js/react'\nimport { cx } from 'class-variance-authority'\nimport { type ComponentPropsWithoutRef, createContext, Ref, useContext, useId } from 'react'\n\nimport { Slot } from '../slot'\n\ntype ExtentedZagInterface = Omit<\n accordion.Props,\n 'id' | 'ids' | 'orientation' | 'getRootNode' | 'onValueChange'\n> &\n Omit<ComponentPropsWithoutRef<'div'>, 'defaultChecked'>\n\nexport interface AccordionProps extends ExtentedZagInterface {\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n */\n asChild?: boolean\n /**\n * Whether an accordion item can be closed after it has been expanded.\n */\n collapsible?: boolean\n defaultValue?: accordion.Props['value']\n /**\n * Whether the accordion items are disabled\n */\n disabled?: boolean\n /**\n * Whether multiple accordion items can be expanded at the same time.\n */\n multiple?: boolean\n /**\n * The `value` of the accordion items that are currently being expanded.\n */\n value?: string[]\n /**\n * The callback fired when the state of expanded/collapsed accordion items changes.\n */\n onValueChange?: (value: string[]) => void\n design?: 'filled' | 'outlined'\n ref?: Ref<HTMLDivElement>\n}\n\nconst AccordionContext = createContext<\n | (accordion.Api<PropTypes> & {\n design: 'filled' | 'outlined'\n })\n | null\n>(null)\n\nexport const Accordion = ({\n asChild = false,\n children,\n collapsible = true,\n className,\n defaultValue,\n design = 'outlined',\n disabled = false,\n multiple = false,\n value,\n onValueChange,\n ref,\n ...props\n}: AccordionProps) => {\n const [machineProps, localProps] = accordion.splitProps({\n children,\n multiple,\n collapsible,\n value,\n disabled,\n className: cx('bg-surface rounded-lg h-fit', className),\n ...props,\n })\n\n const service = useMachine(accordion.machine, {\n ...machineProps,\n defaultValue,\n value,\n id: useId(),\n onValueChange(details) {\n onValueChange?.(details.value)\n },\n })\n\n const Component = asChild ? Slot : 'div'\n const api = accordion.connect(service, normalizeProps)\n\n const mergedProps = mergeProps(api.getRootProps(), localProps)\n\n return (\n <AccordionContext.Provider value={{ ...api, design }}>\n <Component data-spark-component=\"accordion\" ref={ref} {...mergedProps}>\n {children}\n </Component>\n </AccordionContext.Provider>\n )\n}\n\nAccordion.displayName = 'Accordion'\n\nexport const useAccordionContext = () => {\n const context = useContext(AccordionContext)\n\n if (!context) {\n throw Error('useAccordionContext must be used within a Accordion provider')\n }\n\n return context\n}\n","import { mergeProps } from '@zag-js/react'\nimport { cx } from 'class-variance-authority'\nimport { type ComponentPropsWithoutRef, Ref } from 'react'\n\nimport { Collapsible } from '../collapsible'\nimport { useAccordionContext } from './Accordion'\nimport { AccordionItemProvider } from './AccordionItemContext'\n\nexport interface AccordionItemProps extends ComponentPropsWithoutRef<'div'> {\n value: string\n asChild?: boolean\n disabled?: boolean\n ref?: Ref<HTMLDivElement>\n}\n\nexport const Item = ({\n asChild = false,\n className,\n children,\n disabled = false,\n value,\n ref,\n ...props\n}: AccordionItemProps) => {\n const accordion = useAccordionContext()\n\n const localProps = {\n className: cx(\n 'relative first:rounded-t-lg last:rounded-b-lg',\n 'not-last:border-b-0',\n { 'border-sm border-outline': accordion.design === 'outlined' },\n className\n ),\n asChild,\n ...props,\n }\n\n const itemProps = accordion.getItemProps({ value, ...(disabled && { disabled }) })\n const mergedProps = mergeProps(itemProps, localProps)\n\n const item = accordion.getItemState({ value })\n const itemContentProps = accordion.getItemContentProps({ value })\n\n return (\n <AccordionItemProvider value={value} disabled={disabled}>\n <Collapsible\n ref={ref}\n open={item.expanded}\n data-spark-component=\"accordion-item\"\n ids={{ content: itemContentProps.id }}\n {...mergedProps}\n >\n {children}\n </Collapsible>\n </AccordionItemProvider>\n )\n}\n\nItem.displayName = 'Accordion.Item'\n","import {\n createContext,\n Dispatch,\n type PropsWithChildren,\n SetStateAction,\n useContext,\n useState,\n} from 'react'\n\ninterface AccordionItemContextState {\n value: string\n setValue: Dispatch<SetStateAction<string>>\n disabled: boolean\n setDisabled: Dispatch<SetStateAction<boolean>>\n}\n\nconst AccordionItemContext = createContext<AccordionItemContextState | null>(null)\n\nexport const AccordionItemProvider = ({\n value: valueProp,\n disabled: disabledProp = false,\n children,\n}: PropsWithChildren<{ value: string; disabled?: boolean }>) => {\n const [value, setValue] = useState<string>(valueProp)\n const [disabled, setDisabled] = useState<boolean>(disabledProp)\n\n return (\n <AccordionItemContext.Provider value={{ value, setValue, disabled, setDisabled }}>\n {children}\n </AccordionItemContext.Provider>\n )\n}\n\nexport const useAccordionItemContext = () => {\n const context = useContext(AccordionItemContext)\n\n if (!context) {\n throw Error('useAccordionItemContext must be used within a AccordionItem provider')\n }\n\n return context\n}\n","import { createSplitProps } from '@spark-ui/internal-utils'\nimport { mergeProps } from '@zag-js/react'\nimport { cx } from 'class-variance-authority'\nimport { type ComponentPropsWithoutRef, Ref } from 'react'\n\nimport { Collapsible } from '../collapsible'\nimport { useAccordionContext } from './Accordion'\nimport { useAccordionItemContext } from './AccordionItemContext'\n\nexport interface AccordionItemContentProps extends ComponentPropsWithoutRef<'div'> {\n asChild?: boolean\n ref?: Ref<HTMLDivElement>\n}\n\nconst splitVisibilityProps = createSplitProps<{\n hidden?: boolean\n 'data-state'?: string\n}>()\n\nexport const ItemContent = ({\n asChild = false,\n className,\n children,\n ref,\n ...props\n}: AccordionItemContentProps) => {\n const accordion = useAccordionContext()\n const accordionItem = useAccordionItemContext()\n\n const localProps = {\n className: cx('[&>:first-child]:p-lg', 'text-body-1 text-on-surface', className),\n asChild,\n ...props,\n }\n const contentProps = accordion.getItemContentProps({\n value: accordionItem.value,\n ...(accordionItem.disabled && { disabled: accordionItem.disabled }),\n })\n\n const [, itemContentProps] = splitVisibilityProps(contentProps, ['hidden', 'data-state'])\n\n const mergedProps = mergeProps(itemContentProps, localProps)\n\n return (\n <Collapsible.Content ref={ref} data-spark-component=\"accordion-item-content\" {...mergedProps}>\n {children}\n </Collapsible.Content>\n )\n}\n\nItemContent.displayName = 'Accordion.ItemContent'\n","import { cx } from 'class-variance-authority'\nimport { type ComponentProps, Ref } from 'react'\n\nimport { Slot } from '../slot'\n\nexport interface AccordionItemHeaderProps extends ComponentProps<'h3'> {\n asChild?: boolean\n ref?: Ref<HTMLHeadingElement>\n}\n\nexport const ItemHeader = ({\n asChild = false,\n children,\n className,\n ref,\n}: AccordionItemHeaderProps) => {\n const Component = asChild ? Slot : 'h3'\n\n return (\n <Component\n ref={ref}\n data-spark-component=\"accordion-item-header\"\n className={cx('rounded-[inherit]', className)}\n >\n {children}\n </Component>\n )\n}\n\nItemHeader.displayName = 'Accordion.ItemHeader'\n","import { ArrowHorizontalDown } from '@spark-ui/icons/ArrowHorizontalDown'\nimport { mergeProps } from '@zag-js/react'\nimport { cx } from 'class-variance-authority'\nimport { type ComponentPropsWithoutRef, Ref } from 'react'\n\nimport { Icon } from '../icon'\nimport { Slot } from '../slot'\nimport { useAccordionContext } from './Accordion'\nimport { useAccordionItemContext } from './AccordionItemContext'\n\nexport interface AccordionItemTriggerProps extends ComponentPropsWithoutRef<'button'> {\n asChild?: boolean\n ref?: Ref<HTMLButtonElement>\n}\n\nexport const ItemTrigger = ({\n asChild = false,\n children,\n className,\n ref,\n ...props\n}: AccordionItemTriggerProps) => {\n const { getItemTriggerProps } = useAccordionContext()\n const { value, disabled } = useAccordionItemContext()\n\n const Component = asChild ? Slot : 'button'\n\n const localProps = {\n ...props,\n className: cx(\n 'relative flex gap-lg justify-between items-center min-h-sz-48',\n 'w-full px-lg py-md text-left text-headline-2 text-on-surface rounded-[inherit] data-[state=open]:rounded-b-0',\n 'hover:enabled:bg-surface-hovered focus:bg-surface-hovered',\n 'focus-visible:u-outline focus-visible:outline-hidden focus-visible:z-raised',\n 'disabled:opacity-dim-3 cursor-pointer disabled:cursor-not-allowed',\n className\n ),\n }\n\n const mergedProps = mergeProps(\n getItemTriggerProps({ value, ...(disabled && { disabled }) }),\n localProps\n )\n\n const isOpen = !!mergedProps['aria-expanded']\n\n return (\n <Component ref={ref} data-spark-component=\"accordion-item-trigger\" {...mergedProps}>\n <div className=\"gap-lg flex grow items-center\">{children}</div>\n <Icon\n intent=\"neutral\"\n className={cx('shrink-0 rotate-0 duration-100 ease-in motion-reduce:transition-none', {\n 'rotate-180': isOpen,\n })}\n size=\"sm\"\n >\n <ArrowHorizontalDown />\n </Icon>\n </Component>\n )\n}\n\nItemTrigger.displayName = 'Accordion.ItemTrigger'\n","import { Accordion as Root } from './Accordion'\nimport { Item } from './AccordionItem'\nimport { ItemContent } from './AccordionItemContent'\nimport { ItemHeader } from './AccordionItemHeader'\nimport { ItemTrigger } from './AccordionItemTrigger'\n\nexport const Accordion: typeof Root & {\n Item: typeof Item\n ItemHeader: typeof ItemHeader\n ItemTrigger: typeof ItemTrigger\n ItemContent: typeof ItemContent\n} = Object.assign(Root, {\n Item,\n ItemHeader,\n ItemTrigger,\n ItemContent,\n})\n\nAccordion.displayName = 'Accordion'\nItem.displayName = 'Item'\nItemHeader.displayName = 'ItemHeader'\nItemTrigger.displayName = 'Accordion.Trigger'\nItemContent.displayName = 'Accordion.Content'\n\nexport { type AccordionProps } from './Accordion'\nexport { type AccordionItemHeaderProps } from './AccordionItemHeader'\nexport { type AccordionItemContentProps } from './AccordionItemContent'\nexport { type AccordionItemTriggerProps } from './AccordionItemTrigger'\n"],"mappings":"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","names":["mergeProps","cx","createContext","useContext","jsx","jsx","accordion","cx","mergeProps","mergeProps","cx","jsx","accordion","cx","mergeProps","cx","jsx","cx","mergeProps","cx","jsx","cx","mergeProps","Accordion"]}
|
|
1
|
+
{"version":3,"sources":["../../src/accordion/Accordion.tsx","../../src/accordion/useRenderSlot.tsx","../../src/accordion/AccordionItem.tsx","../../src/accordion/AccordionItemContent.tsx","../../src/accordion/AccordionItemHeader.tsx","../../src/accordion/AccordionItemTrigger.tsx","../../src/accordion/index.ts"],"sourcesContent":["import { Accordion as BaseAccordion } from '@base-ui-components/react/accordion'\nimport { cx } from 'class-variance-authority'\nimport { ComponentProps, createContext, Ref, useContext } from 'react'\n\nimport { useRenderSlot } from './useRenderSlot'\n\ntype ExtentedZagInterface = Omit<\n ComponentProps<typeof BaseAccordion.Root>,\n 'openMultiple' | 'render'\n>\n\nexport interface AccordionProps extends ExtentedZagInterface {\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n */\n asChild?: boolean\n /**\n * Whether the accordion items are disabled\n */\n disabled?: boolean\n /**\n * Whether multiple items can be open at the same time.\n */\n multiple?: boolean\n design?: 'filled' | 'outlined'\n ref?: Ref<HTMLDivElement>\n}\n\nconst AccordionContext = createContext<{\n design: 'filled' | 'outlined'\n} | null>(null)\n\nexport const Accordion = ({\n asChild = false,\n children,\n design = 'outlined',\n hiddenUntilFound = true,\n multiple = false,\n className,\n ref,\n ...props\n}: AccordionProps) => {\n const renderSlot = useRenderSlot(asChild, 'div')\n\n return (\n <AccordionContext.Provider value={{ design }}>\n <BaseAccordion.Root\n data-spark-component=\"accordion\"\n ref={ref}\n openMultiple={multiple}\n hiddenUntilFound={hiddenUntilFound}\n className={cx('bg-surface h-fit rounded-lg', className)}\n render={renderSlot}\n {...props}\n >\n {children}\n </BaseAccordion.Root>\n </AccordionContext.Provider>\n )\n}\n\nAccordion.displayName = 'Accordion'\n\nexport const useAccordionContext = () => {\n const context = useContext(AccordionContext)\n\n if (!context) {\n throw Error('useAccordionContext must be used within a Accordion provider')\n }\n\n return context\n}\n","import { Slot } from '../slot'\n\nexport function useRenderSlot(asChild: boolean, defaultTag: string) {\n const Component = asChild ? Slot : defaultTag\n\n return asChild ? ({ ...props }) => <Component {...props} /> : undefined\n}\n","import { Accordion as BaseAccordion } from '@base-ui-components/react/accordion'\nimport { cx } from 'class-variance-authority'\nimport { type ComponentProps, Ref } from 'react'\n\nimport { useAccordionContext } from './Accordion'\nimport { useRenderSlot } from './useRenderSlot'\n\ntype ExtentedZagInterface = Omit<ComponentProps<typeof BaseAccordion.Item>, 'render'>\n\nexport interface AccordionItemProps extends ExtentedZagInterface {\n asChild?: boolean\n ref?: Ref<HTMLDivElement>\n}\n\nexport const Item = ({\n asChild = false,\n className,\n children,\n ref,\n ...props\n}: AccordionItemProps) => {\n const accordion = useAccordionContext()\n\n const renderSlot = useRenderSlot(asChild, 'div')\n\n return (\n <BaseAccordion.Item\n ref={ref}\n data-spark-component=\"accordion-item\"\n render={renderSlot}\n className={cx(\n 'relative first:rounded-t-lg last:rounded-b-lg',\n 'not-last:border-b-0',\n { 'border-sm border-outline': accordion.design === 'outlined' },\n className\n )}\n {...props}\n >\n {children}\n </BaseAccordion.Item>\n )\n}\n\nItem.displayName = 'Accordion.Item'\n","import { Accordion as BaseAccordion } from '@base-ui-components/react/accordion'\nimport { cx } from 'class-variance-authority'\nimport { type ComponentProps, Ref } from 'react'\n\nimport { useRenderSlot } from './useRenderSlot'\n\ntype ExtentedZagInterface = Omit<ComponentProps<typeof BaseAccordion.Panel>, 'render'>\n\nexport interface AccordionItemContentProps extends ExtentedZagInterface {\n asChild?: boolean\n ref?: Ref<HTMLDivElement>\n}\n\nexport const ItemContent = ({\n asChild = false,\n className,\n children,\n ref,\n ...props\n}: AccordionItemContentProps) => {\n const renderSlot = useRenderSlot(asChild, 'div')\n\n return (\n <BaseAccordion.Panel\n ref={ref}\n data-spark-component=\"accordion-item-content\"\n className={cx(\n '[&>:first-child]:p-lg overflow-hidden',\n 'h-[var(--accordion-panel-height)] transition-all duration-200 data-[ending-style]:h-0 data-[starting-style]:h-0',\n 'text-body-1 text-on-surface',\n className\n )}\n render={renderSlot}\n {...props}\n >\n {children}\n </BaseAccordion.Panel>\n )\n}\n\nItemContent.displayName = 'Accordion.ItemContent'\n","import { cx } from 'class-variance-authority'\nimport { type ComponentProps, Ref } from 'react'\n\nimport { Slot } from '../slot'\n\nexport interface AccordionItemHeaderProps extends ComponentProps<'h3'> {\n asChild?: boolean\n ref?: Ref<HTMLHeadingElement>\n}\n\nexport const ItemHeader = ({\n asChild = false,\n children,\n className,\n ref,\n}: AccordionItemHeaderProps) => {\n const Component = asChild ? Slot : 'h3'\n\n return (\n <Component\n ref={ref}\n data-spark-component=\"accordion-item-header\"\n className={cx('rounded-[inherit]', className)}\n >\n {children}\n </Component>\n )\n}\n\nItemHeader.displayName = 'Accordion.ItemHeader'\n","import { Accordion as BaseAccordion } from '@base-ui-components/react/accordion'\nimport { ArrowHorizontalDown } from '@spark-ui/icons/ArrowHorizontalDown'\nimport { cx } from 'class-variance-authority'\nimport { type ComponentProps, Ref } from 'react'\n\nimport { Icon } from '../icon'\nimport { useRenderSlot } from './useRenderSlot'\n\ntype ExtentedZagInterface = Omit<ComponentProps<typeof BaseAccordion.Trigger>, 'render'>\n\nexport interface AccordionItemTriggerProps extends ExtentedZagInterface {\n asChild?: boolean\n ref?: Ref<HTMLButtonElement>\n}\n\nexport const ItemTrigger = ({\n asChild = false,\n children,\n className,\n ref,\n ...props\n}: AccordionItemTriggerProps) => {\n const renderSlot = useRenderSlot(asChild, 'button')\n\n return (\n <BaseAccordion.Trigger\n ref={ref}\n data-spark-component=\"accordion-item-trigger\"\n render={renderSlot}\n className={cx(\n 'group',\n 'gap-lg min-h-sz-48 relative flex items-center justify-between',\n 'px-lg py-md text-headline-2 text-on-surface data-[panel-open]:rounded-b-0 w-full rounded-[inherit] text-left',\n 'hover:enabled:bg-surface-hovered focus:bg-surface-hovered',\n 'focus-visible:u-outline focus-visible:z-raised focus-visible:outline-hidden',\n 'disabled:opacity-dim-3 cursor-pointer disabled:cursor-not-allowed',\n className\n )}\n {...props}\n >\n <div className=\"gap-lg flex grow items-center\">{children}</div>\n <Icon\n intent=\"neutral\"\n className={cx(\n 'shrink-0 rotate-0 duration-100 ease-in motion-reduce:transition-none',\n 'group-data-[panel-open]:rotate-180'\n )}\n size=\"sm\"\n >\n <ArrowHorizontalDown />\n </Icon>\n </BaseAccordion.Trigger>\n )\n}\n\nItemTrigger.displayName = 'Accordion.ItemTrigger'\n","import { Accordion as Root } from './Accordion'\nimport { Item } from './AccordionItem'\nimport { ItemContent } from './AccordionItemContent'\nimport { ItemHeader } from './AccordionItemHeader'\nimport { ItemTrigger } from './AccordionItemTrigger'\n\nexport const Accordion: typeof Root & {\n Item: typeof Item\n ItemHeader: typeof ItemHeader\n ItemTrigger: typeof ItemTrigger\n ItemContent: typeof ItemContent\n} = Object.assign(Root, {\n Item,\n ItemHeader,\n ItemTrigger,\n ItemContent,\n})\n\nAccordion.displayName = 'Accordion'\nItem.displayName = 'Item'\nItemHeader.displayName = 'ItemHeader'\nItemTrigger.displayName = 'Accordion.Trigger'\nItemContent.displayName = 'Accordion.Content'\n\nexport { type AccordionProps } from './Accordion'\nexport { type AccordionItemHeaderProps } from './AccordionItemHeader'\nexport { type AccordionItemContentProps } from './AccordionItemContent'\nexport { type AccordionItemTriggerProps } from './AccordionItemTrigger'\n"],"mappings":"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","names":["jsx","BaseAccordion","cx","jsx","BaseAccordion","cx","BaseAccordion","cx","jsx","BaseAccordion","cx","cx","jsx","cx","BaseAccordion","cx","jsx","BaseAccordion","cx","Accordion"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { e as DialogProps, C as CloseProps, h as BodyProps, f as ContentProps, n as DescriptionProps, i as FooterProps, g as HeaderProps, k as OverlayProps, l as PortalProps, m as TitleProps, j as TriggerProps } from '../DialogTrigger-
|
|
2
|
+
import { e as DialogProps, C as CloseProps, h as BodyProps, f as ContentProps, n as DescriptionProps, i as FooterProps, g as HeaderProps, k as OverlayProps, l as PortalProps, m as TitleProps, j as TriggerProps } from '../DialogTrigger-woU7vsJi.mjs';
|
|
3
3
|
import { Ref, MutableRefObject } from 'react';
|
|
4
4
|
import 'radix-ui';
|
|
5
5
|
import 'class-variance-authority/types';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { e as DialogProps, C as CloseProps, h as BodyProps, f as ContentProps, n as DescriptionProps, i as FooterProps, g as HeaderProps, k as OverlayProps, l as PortalProps, m as TitleProps, j as TriggerProps } from '../DialogTrigger-
|
|
2
|
+
import { e as DialogProps, C as CloseProps, h as BodyProps, f as ContentProps, n as DescriptionProps, i as FooterProps, g as HeaderProps, k as OverlayProps, l as PortalProps, m as TitleProps, j as TriggerProps } from '../DialogTrigger-woU7vsJi.js';
|
|
3
3
|
import { Ref, MutableRefObject } from 'react';
|
|
4
4
|
import 'radix-ui';
|
|
5
5
|
import 'class-variance-authority/types';
|
|
@@ -33,14 +33,18 @@ var import_react2 = require("react");
|
|
|
33
33
|
var import_react = require("react");
|
|
34
34
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
35
35
|
var DialogContext = (0, import_react.createContext)(null);
|
|
36
|
-
var DialogProvider = ({
|
|
36
|
+
var DialogProvider = ({
|
|
37
|
+
children: childrenProp,
|
|
38
|
+
withFade = false
|
|
39
|
+
}) => {
|
|
37
40
|
const [isFullScreen, setIsFullScreen] = (0, import_react.useState)(false);
|
|
38
41
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
39
42
|
DialogContext.Provider,
|
|
40
43
|
{
|
|
41
44
|
value: {
|
|
42
45
|
isFullScreen,
|
|
43
|
-
setIsFullScreen
|
|
46
|
+
setIsFullScreen,
|
|
47
|
+
withFade
|
|
44
48
|
},
|
|
45
49
|
children: childrenProp
|
|
46
50
|
}
|
|
@@ -56,7 +60,7 @@ var useDialog = () => {
|
|
|
56
60
|
|
|
57
61
|
// src/dialog/Dialog.tsx
|
|
58
62
|
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
59
|
-
var Dialog = ({ children, ...rest }) => {
|
|
63
|
+
var Dialog = ({ children, withFade = false, ...rest }) => {
|
|
60
64
|
const open = rest.open;
|
|
61
65
|
const activeElementRef = (0, import_react2.useRef)(null);
|
|
62
66
|
function handleActiveElementFocus() {
|
|
@@ -71,42 +75,52 @@ var Dialog = ({ children, ...rest }) => {
|
|
|
71
75
|
}
|
|
72
76
|
}
|
|
73
77
|
(0, import_react2.useEffect)(handleActiveElementFocus, [open]);
|
|
74
|
-
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(DialogProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_radix_ui.Dialog.Root, { ...rest, children }) });
|
|
78
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(DialogProvider, { withFade, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_radix_ui.Dialog.Root, { ...rest, children }) });
|
|
75
79
|
};
|
|
76
80
|
Dialog.displayName = "Dialog.Root";
|
|
77
81
|
|
|
78
|
-
// src/dialog/DialogBody.styles.ts
|
|
79
|
-
var import_class_variance_authority = require("class-variance-authority");
|
|
80
|
-
var dialogBodyStyles = (0, import_class_variance_authority.cva)(
|
|
81
|
-
["grow", "overflow-y-auto", "outline-hidden", "focus-visible:u-outline"],
|
|
82
|
-
{
|
|
83
|
-
variants: {
|
|
84
|
-
inset: {
|
|
85
|
-
true: "",
|
|
86
|
-
false: "px-xl py-lg"
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
);
|
|
91
|
-
|
|
92
82
|
// src/dialog/DialogBody.tsx
|
|
83
|
+
var import_use_merge_refs = require("@spark-ui/hooks/use-merge-refs");
|
|
84
|
+
var import_use_scroll_overflow = require("@spark-ui/hooks/use-scroll-overflow");
|
|
85
|
+
var import_class_variance_authority = require("class-variance-authority");
|
|
86
|
+
var import_react3 = require("react");
|
|
93
87
|
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
94
88
|
var Body = ({
|
|
95
89
|
children,
|
|
96
90
|
className,
|
|
97
91
|
inset = false,
|
|
98
|
-
ref,
|
|
92
|
+
ref: forwardedRef,
|
|
99
93
|
...rest
|
|
100
|
-
}) =>
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
94
|
+
}) => {
|
|
95
|
+
const scrollAreaRef = (0, import_react3.useRef)(null);
|
|
96
|
+
const ref = (0, import_use_merge_refs.useMergeRefs)(forwardedRef, scrollAreaRef);
|
|
97
|
+
const { withFade } = useDialog();
|
|
98
|
+
const overflow = (0, import_use_scroll_overflow.useScrollOverflow)(scrollAreaRef);
|
|
99
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
100
|
+
"div",
|
|
101
|
+
{
|
|
102
|
+
"data-spark-component": "dialog-body",
|
|
103
|
+
ref,
|
|
104
|
+
className: (0, import_class_variance_authority.cx)(
|
|
105
|
+
"focus-visible:u-outline relative grow overflow-y-auto outline-hidden",
|
|
106
|
+
"transition-all duration-300",
|
|
107
|
+
{
|
|
108
|
+
["px-xl py-lg"]: !inset
|
|
109
|
+
},
|
|
110
|
+
className
|
|
111
|
+
),
|
|
112
|
+
style: {
|
|
113
|
+
...withFade && {
|
|
114
|
+
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))",
|
|
115
|
+
maskSize: `100% calc(100% + ${overflow.top ? "0px" : "44px"} + ${overflow.bottom ? "0px" : "44px"})`,
|
|
116
|
+
maskPosition: `0 ${overflow.top ? "0px" : "-44px"}`
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
...rest,
|
|
120
|
+
children
|
|
121
|
+
}
|
|
122
|
+
);
|
|
123
|
+
};
|
|
110
124
|
Body.displayName = "Dialog.Body";
|
|
111
125
|
|
|
112
126
|
// src/dialog/DialogClose.tsx
|
|
@@ -120,11 +134,11 @@ var import_Close = require("@spark-ui/icons/Close");
|
|
|
120
134
|
var import_class_variance_authority7 = require("class-variance-authority");
|
|
121
135
|
|
|
122
136
|
// src/icon/Icon.tsx
|
|
123
|
-
var
|
|
137
|
+
var import_react5 = require("react");
|
|
124
138
|
|
|
125
139
|
// src/slot/Slot.tsx
|
|
126
140
|
var import_radix_ui3 = require("radix-ui");
|
|
127
|
-
var
|
|
141
|
+
var import_react4 = require("react");
|
|
128
142
|
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
129
143
|
var Slottable = import_radix_ui3.Slot.Slottable;
|
|
130
144
|
var Slot = ({ ref, ...props }) => {
|
|
@@ -132,7 +146,7 @@ var Slot = ({ ref, ...props }) => {
|
|
|
132
146
|
};
|
|
133
147
|
var wrapPolymorphicSlot = (asChild, children, callback) => {
|
|
134
148
|
if (!asChild) return callback(children);
|
|
135
|
-
return (0,
|
|
149
|
+
return (0, import_react4.isValidElement)(children) ? (0, import_react4.cloneElement)(
|
|
136
150
|
children,
|
|
137
151
|
void 0,
|
|
138
152
|
callback(children.props.children)
|
|
@@ -210,9 +224,9 @@ var Icon = ({
|
|
|
210
224
|
children,
|
|
211
225
|
...others
|
|
212
226
|
}) => {
|
|
213
|
-
const child =
|
|
227
|
+
const child = import_react5.Children.only(children);
|
|
214
228
|
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
|
|
215
|
-
(0,
|
|
229
|
+
(0, import_react5.cloneElement)(child, {
|
|
216
230
|
className: iconStyles({ className, size, intent }),
|
|
217
231
|
"data-spark-component": "icon",
|
|
218
232
|
"aria-hidden": "true",
|
|
@@ -226,7 +240,7 @@ Icon.displayName = "Icon";
|
|
|
226
240
|
|
|
227
241
|
// src/button/Button.tsx
|
|
228
242
|
var import_class_variance_authority5 = require("class-variance-authority");
|
|
229
|
-
var
|
|
243
|
+
var import_react6 = require("react");
|
|
230
244
|
|
|
231
245
|
// src/spinner/Spinner.styles.tsx
|
|
232
246
|
var import_internal_utils2 = require("@spark-ui/internal-utils");
|
|
@@ -978,7 +992,7 @@ var Button = ({
|
|
|
978
992
|
}) => {
|
|
979
993
|
const Component = asChild ? Slot : "button";
|
|
980
994
|
const shouldNotInteract = !!disabled || isLoading;
|
|
981
|
-
const disabledEventHandlers = (0,
|
|
995
|
+
const disabledEventHandlers = (0, import_react6.useMemo)(() => {
|
|
982
996
|
const result = {};
|
|
983
997
|
if (shouldNotInteract) {
|
|
984
998
|
blockedEventHandlers.forEach((eventHandler) => result[eventHandler] = void 0);
|
|
@@ -1108,7 +1122,7 @@ Root.displayName = "Dialog.CloseButton";
|
|
|
1108
1122
|
|
|
1109
1123
|
// src/dialog/DialogContent.tsx
|
|
1110
1124
|
var import_radix_ui4 = require("radix-ui");
|
|
1111
|
-
var
|
|
1125
|
+
var import_react7 = require("react");
|
|
1112
1126
|
|
|
1113
1127
|
// src/dialog/DialogContent.styles.tsx
|
|
1114
1128
|
var import_class_variance_authority8 = require("class-variance-authority");
|
|
@@ -1168,7 +1182,7 @@ var Content = ({
|
|
|
1168
1182
|
...rest
|
|
1169
1183
|
}) => {
|
|
1170
1184
|
const { setIsFullScreen } = useDialog();
|
|
1171
|
-
(0,
|
|
1185
|
+
(0, import_react7.useEffect)(() => {
|
|
1172
1186
|
if (size === "fullscreen") setIsFullScreen(true);
|
|
1173
1187
|
return () => setIsFullScreen(false);
|
|
1174
1188
|
}, [setIsFullScreen, size]);
|
|
@@ -1339,13 +1353,13 @@ var AlertDialogBody = (props) => {
|
|
|
1339
1353
|
AlertDialogBody.displayName = "AlertDialog.Body";
|
|
1340
1354
|
|
|
1341
1355
|
// src/alert-dialog/AlertDialogCancel.tsx
|
|
1342
|
-
var
|
|
1356
|
+
var import_use_merge_refs2 = require("@spark-ui/hooks/use-merge-refs");
|
|
1343
1357
|
|
|
1344
1358
|
// src/alert-dialog/AlertDialogContext.ts
|
|
1345
|
-
var
|
|
1346
|
-
var AlertDialogContext = (0,
|
|
1359
|
+
var import_react8 = require("react");
|
|
1360
|
+
var AlertDialogContext = (0, import_react8.createContext)(null);
|
|
1347
1361
|
var useAlertDialog = () => {
|
|
1348
|
-
const context = (0,
|
|
1362
|
+
const context = (0, import_react8.useContext)(AlertDialogContext);
|
|
1349
1363
|
if (!context) {
|
|
1350
1364
|
throw Error("useAlertDialog must be used within a RadioGroup provider");
|
|
1351
1365
|
}
|
|
@@ -1356,7 +1370,7 @@ var useAlertDialog = () => {
|
|
|
1356
1370
|
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
1357
1371
|
var AlertDialogCancel = ({ ref: forwardedRef, ...props }) => {
|
|
1358
1372
|
const { cancelRef } = useAlertDialog();
|
|
1359
|
-
const ref = (0,
|
|
1373
|
+
const ref = (0, import_use_merge_refs2.useMergeRefs)(forwardedRef, cancelRef);
|
|
1360
1374
|
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Dialog2.Close, { ref, "data-spark-component": "alert-dialog-cancel", ...props });
|
|
1361
1375
|
};
|
|
1362
1376
|
AlertDialogCancel.displayName = "AlertDialog.Cancel";
|
|
@@ -1364,7 +1378,7 @@ AlertDialogCancel.displayName = "AlertDialog.Cancel";
|
|
|
1364
1378
|
// src/alert-dialog/AlertDialogContent.tsx
|
|
1365
1379
|
var import_class_variance_authority13 = require("class-variance-authority");
|
|
1366
1380
|
var import_internal = require("radix-ui/internal");
|
|
1367
|
-
var
|
|
1381
|
+
var import_react9 = require("react");
|
|
1368
1382
|
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
1369
1383
|
var AlertDialogContent = ({
|
|
1370
1384
|
className,
|
|
@@ -1372,8 +1386,8 @@ var AlertDialogContent = ({
|
|
|
1372
1386
|
ref,
|
|
1373
1387
|
...others
|
|
1374
1388
|
}) => {
|
|
1375
|
-
const cancelRef = (0,
|
|
1376
|
-
const value = (0,
|
|
1389
|
+
const cancelRef = (0, import_react9.useRef)(null);
|
|
1390
|
+
const value = (0, import_react9.useMemo)(() => {
|
|
1377
1391
|
return { cancelRef };
|
|
1378
1392
|
}, []);
|
|
1379
1393
|
const handleOpenAutoFocus = (event) => {
|