@acmekit/dashboard 2.13.7 → 2.13.8
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/api-key-management-create-D57V3NN2.mjs +170 -0
- package/dist/api-key-management-detail-QURSBB6T.mjs +307 -0
- package/dist/api-key-management-edit-GG5V77GY.mjs +106 -0
- package/dist/api-key-management-list-PL64LD22.mjs +400 -0
- package/dist/app.js +16930 -1004
- package/dist/app.mjs +793 -884
- package/dist/chunk-22YYMH6M.mjs +382 -0
- package/dist/chunk-2U3RK3JG.mjs +474 -0
- package/dist/chunk-535OVBXR.mjs +226 -0
- package/dist/chunk-6SQCO25J.mjs +65 -0
- package/dist/chunk-774WSTCC.mjs +19 -0
- package/dist/chunk-7ZHDHEUH.mjs +1837 -0
- package/dist/chunk-C76H5USB.mjs +16 -0
- package/dist/chunk-DFFLVEZ5.mjs +40 -0
- package/dist/chunk-DN3MIYQH.mjs +140 -0
- package/dist/chunk-DQCEH3X2.mjs +28 -0
- package/dist/chunk-DTY37DDZ.mjs +20 -0
- package/dist/chunk-FXYH54JP.mjs +16 -0
- package/dist/chunk-G22WWLPG.mjs +44 -0
- package/dist/chunk-G2VJOHHV.mjs +32 -0
- package/dist/chunk-GBFVWROS.mjs +58 -0
- package/dist/chunk-ITNQKZQQ.mjs +142 -0
- package/dist/chunk-IUCDCPJU.mjs +0 -0
- package/dist/chunk-LKWTBYYC.mjs +35 -0
- package/dist/{chunk-4VYJHIB3.mjs → chunk-ND3ODI36.mjs} +0 -72
- package/dist/chunk-OAHCJFG3.mjs +17 -0
- package/dist/chunk-OHAFITSB.mjs +54 -0
- package/dist/chunk-RPAL6FHW.mjs +73 -0
- package/dist/{chunk-JSJZMTQG.mjs → chunk-RREPQMYC.mjs} +14 -41
- package/dist/chunk-S3REQHPQ.mjs +86 -0
- package/dist/chunk-S4DMV3ZT.mjs +35 -0
- package/dist/chunk-TCNCAWYD.mjs +9 -0
- package/dist/chunk-ULSPL3DR.mjs +126 -0
- package/dist/chunk-VBT5YZ4K.mjs +129 -0
- package/dist/chunk-WILMJYUB.mjs +35 -0
- package/dist/chunk-XIM7X4FB.mjs +83 -0
- package/dist/chunk-YB52HEIR.mjs +387 -0
- package/dist/chunk-YRWSG3YM.mjs +80 -0
- package/dist/{invite-S5USGDOZ.mjs → invite-BAFXQBLJ.mjs} +15 -7
- package/dist/{login-AIMR26AL.mjs → login-YURMNRCS.mjs} +23 -9
- package/dist/profile-detail-SJWODS2K.mjs +96 -0
- package/dist/profile-edit-HSGF4UXZ.mjs +173 -0
- package/dist/{reset-password-UQPRHMB3.mjs → reset-password-RQ5M7HQC.mjs} +8 -4
- package/dist/settings-3XWLL5LG.mjs +545 -0
- package/dist/store-detail-SQKV5KBD.mjs +109 -0
- package/dist/store-edit-WGGIJMYJ.mjs +97 -0
- package/dist/store-metadata-CSBUGX6Z.mjs +49 -0
- package/dist/translation-list-H5X4DVCC.mjs +587 -0
- package/dist/translations-edit-NPAUN2GZ.mjs +5376 -0
- package/dist/user-detail-7SUQ35G7.mjs +169 -0
- package/dist/user-edit-KUZV37AH.mjs +114 -0
- package/dist/user-invite-OREFWWYL.mjs +361 -0
- package/dist/user-list-OWUR75OP.mjs +1116 -0
- package/dist/user-metadata-QHUX5SHZ.mjs +51 -0
- package/dist/workflow-execution-detail-MWNM25TF.mjs +820 -0
- package/dist/workflow-execution-list-IGYF44UH.mjs +175 -0
- package/package.json +9 -9
- package/src/components/layout/settings-layout/settings-layout.tsx +8 -2
- package/dist/chunk-FBTP4AJM.mjs +0 -221
- package/dist/chunk-QYOO4QR6.mjs +0 -73
|
@@ -0,0 +1,474 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Form
|
|
3
|
+
} from "./chunk-ND3ODI36.mjs";
|
|
4
|
+
|
|
5
|
+
// src/components/modals/route-drawer/route-drawer.tsx
|
|
6
|
+
import { Drawer, clx } from "@acmekit/ui";
|
|
7
|
+
import { useEffect, useState as useState3 } from "react";
|
|
8
|
+
import { useNavigate as useNavigate2 } from "react-router-dom";
|
|
9
|
+
|
|
10
|
+
// src/components/modals/hooks/use-state-aware-to.tsx
|
|
11
|
+
import { useMemo } from "react";
|
|
12
|
+
import { useLocation } from "react-router-dom";
|
|
13
|
+
var useStateAwareTo = (prev) => {
|
|
14
|
+
const location = useLocation();
|
|
15
|
+
const to = useMemo(() => {
|
|
16
|
+
const params = location.state?.restore_params;
|
|
17
|
+
if (params) {
|
|
18
|
+
return `${prev}?${params.toString()}`;
|
|
19
|
+
}
|
|
20
|
+
if (location.search) {
|
|
21
|
+
return `${prev}${location.search}`;
|
|
22
|
+
}
|
|
23
|
+
return prev;
|
|
24
|
+
}, [location.state, location.search, prev]);
|
|
25
|
+
return to;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
// src/components/modals/route-modal-form/route-modal-form.tsx
|
|
29
|
+
import { Prompt } from "@acmekit/ui";
|
|
30
|
+
import { useTranslation } from "react-i18next";
|
|
31
|
+
import { useBlocker } from "react-router-dom";
|
|
32
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
33
|
+
var RouteModalForm = ({
|
|
34
|
+
form,
|
|
35
|
+
blockSearchParams: blockSearch = false,
|
|
36
|
+
children,
|
|
37
|
+
onClose
|
|
38
|
+
}) => {
|
|
39
|
+
const { t } = useTranslation();
|
|
40
|
+
const {
|
|
41
|
+
formState: { isDirty }
|
|
42
|
+
} = form;
|
|
43
|
+
const blocker = useBlocker(({ currentLocation, nextLocation }) => {
|
|
44
|
+
const { isSubmitSuccessful: nextIsSuccessful } = nextLocation.state || {};
|
|
45
|
+
const { isSubmitSuccessful: currentIsSuccessful } = currentLocation.state || {};
|
|
46
|
+
const isSubmitSuccessful = nextIsSuccessful || currentIsSuccessful;
|
|
47
|
+
if (isSubmitSuccessful) {
|
|
48
|
+
onClose?.(true);
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
const isPathChanged = currentLocation.pathname !== nextLocation.pathname;
|
|
52
|
+
const isSearchChanged = currentLocation.search !== nextLocation.search;
|
|
53
|
+
if (blockSearch) {
|
|
54
|
+
const shouldBlock2 = isDirty && (isPathChanged || isSearchChanged);
|
|
55
|
+
if (isPathChanged) {
|
|
56
|
+
onClose?.(isSubmitSuccessful);
|
|
57
|
+
}
|
|
58
|
+
return shouldBlock2;
|
|
59
|
+
}
|
|
60
|
+
const shouldBlock = isDirty && isPathChanged;
|
|
61
|
+
if (isPathChanged) {
|
|
62
|
+
onClose?.(isSubmitSuccessful);
|
|
63
|
+
}
|
|
64
|
+
return shouldBlock;
|
|
65
|
+
});
|
|
66
|
+
const handleCancel = () => {
|
|
67
|
+
blocker?.reset?.();
|
|
68
|
+
};
|
|
69
|
+
const handleContinue = () => {
|
|
70
|
+
blocker?.proceed?.();
|
|
71
|
+
onClose?.(false);
|
|
72
|
+
};
|
|
73
|
+
return /* @__PURE__ */ jsxs(Form, { ...form, children: [
|
|
74
|
+
children,
|
|
75
|
+
/* @__PURE__ */ jsx(Prompt, { open: blocker.state === "blocked", variant: "confirmation", children: /* @__PURE__ */ jsxs(Prompt.Content, { children: [
|
|
76
|
+
/* @__PURE__ */ jsxs(Prompt.Header, { children: [
|
|
77
|
+
/* @__PURE__ */ jsx(Prompt.Title, { children: t("general.unsavedChangesTitle") }),
|
|
78
|
+
/* @__PURE__ */ jsx(Prompt.Description, { children: t("general.unsavedChangesDescription") })
|
|
79
|
+
] }),
|
|
80
|
+
/* @__PURE__ */ jsxs(Prompt.Footer, { children: [
|
|
81
|
+
/* @__PURE__ */ jsx(Prompt.Cancel, { onClick: handleCancel, type: "button", children: t("actions.cancel") }),
|
|
82
|
+
/* @__PURE__ */ jsx(Prompt.Action, { onClick: handleContinue, type: "button", children: t("actions.continue") })
|
|
83
|
+
] })
|
|
84
|
+
] }) })
|
|
85
|
+
] });
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
// src/components/modals/route-modal-provider/route-provider.tsx
|
|
89
|
+
import { useCallback, useMemo as useMemo2, useState } from "react";
|
|
90
|
+
import { useLocation as useLocation2, useNavigate } from "react-router-dom";
|
|
91
|
+
|
|
92
|
+
// src/components/modals/route-modal-provider/route-modal-context.tsx
|
|
93
|
+
import { createContext } from "react";
|
|
94
|
+
var RouteModalProviderContext = createContext(null);
|
|
95
|
+
|
|
96
|
+
// src/components/modals/route-modal-provider/route-provider.tsx
|
|
97
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
98
|
+
var RouteModalProvider = ({
|
|
99
|
+
prev,
|
|
100
|
+
children
|
|
101
|
+
}) => {
|
|
102
|
+
const navigate = useNavigate();
|
|
103
|
+
const location = useLocation2();
|
|
104
|
+
const [closeOnEscape, setCloseOnEscape] = useState(true);
|
|
105
|
+
const handleSuccess = useCallback(
|
|
106
|
+
(path) => {
|
|
107
|
+
const to = path || prev;
|
|
108
|
+
if (typeof to === "number") {
|
|
109
|
+
navigate(location.pathname + location.search, {
|
|
110
|
+
replace: true,
|
|
111
|
+
state: { ...location.state, isSubmitSuccessful: true }
|
|
112
|
+
});
|
|
113
|
+
setTimeout(() => {
|
|
114
|
+
navigate(to);
|
|
115
|
+
}, 0);
|
|
116
|
+
} else {
|
|
117
|
+
navigate(to, { replace: true, state: { isSubmitSuccessful: true } });
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
[navigate, prev, location]
|
|
121
|
+
);
|
|
122
|
+
const value = useMemo2(
|
|
123
|
+
() => ({
|
|
124
|
+
handleSuccess,
|
|
125
|
+
setCloseOnEscape,
|
|
126
|
+
__internal: { closeOnEscape }
|
|
127
|
+
}),
|
|
128
|
+
[handleSuccess, setCloseOnEscape, closeOnEscape]
|
|
129
|
+
);
|
|
130
|
+
return /* @__PURE__ */ jsx2(RouteModalProviderContext.Provider, { value, children });
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
// src/components/modals/stacked-modal-provider/stacked-modal-provider.tsx
|
|
134
|
+
import { useState as useState2 } from "react";
|
|
135
|
+
|
|
136
|
+
// src/components/modals/stacked-modal-provider/stacked-modal-context.tsx
|
|
137
|
+
import { createContext as createContext2 } from "react";
|
|
138
|
+
var StackedModalContext = createContext2(null);
|
|
139
|
+
|
|
140
|
+
// src/components/modals/stacked-modal-provider/stacked-modal-provider.tsx
|
|
141
|
+
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
142
|
+
var StackedModalProvider = ({
|
|
143
|
+
children,
|
|
144
|
+
onOpenChange
|
|
145
|
+
}) => {
|
|
146
|
+
const [state, setState] = useState2({});
|
|
147
|
+
const getIsOpen = (id) => {
|
|
148
|
+
return state[id] || false;
|
|
149
|
+
};
|
|
150
|
+
const setIsOpen = (id, open) => {
|
|
151
|
+
setState((prevState) => ({
|
|
152
|
+
...prevState,
|
|
153
|
+
[id]: open
|
|
154
|
+
}));
|
|
155
|
+
onOpenChange(open);
|
|
156
|
+
};
|
|
157
|
+
const register = (id) => {
|
|
158
|
+
setState((prevState) => ({
|
|
159
|
+
...prevState,
|
|
160
|
+
[id]: false
|
|
161
|
+
}));
|
|
162
|
+
};
|
|
163
|
+
const unregister = (id) => {
|
|
164
|
+
setState((prevState) => {
|
|
165
|
+
const newState = { ...prevState };
|
|
166
|
+
delete newState[id];
|
|
167
|
+
return newState;
|
|
168
|
+
});
|
|
169
|
+
};
|
|
170
|
+
return /* @__PURE__ */ jsx3(
|
|
171
|
+
StackedModalContext.Provider,
|
|
172
|
+
{
|
|
173
|
+
value: {
|
|
174
|
+
getIsOpen,
|
|
175
|
+
setIsOpen,
|
|
176
|
+
register,
|
|
177
|
+
unregister
|
|
178
|
+
},
|
|
179
|
+
children
|
|
180
|
+
}
|
|
181
|
+
);
|
|
182
|
+
};
|
|
183
|
+
|
|
184
|
+
// src/components/modals/stacked-modal-provider/use-stacked-modal.ts
|
|
185
|
+
import { useContext } from "react";
|
|
186
|
+
var useStackedModal = () => {
|
|
187
|
+
const context = useContext(StackedModalContext);
|
|
188
|
+
if (!context) {
|
|
189
|
+
throw new Error(
|
|
190
|
+
"useStackedModal must be used within a StackedModalProvider"
|
|
191
|
+
);
|
|
192
|
+
}
|
|
193
|
+
return context;
|
|
194
|
+
};
|
|
195
|
+
|
|
196
|
+
// src/components/modals/route-drawer/route-drawer.tsx
|
|
197
|
+
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
198
|
+
var Root = ({ prev = "..", children }) => {
|
|
199
|
+
const navigate = useNavigate2();
|
|
200
|
+
const [open, setOpen] = useState3(false);
|
|
201
|
+
const [stackedModalOpen, onStackedModalOpen] = useState3(false);
|
|
202
|
+
const to = useStateAwareTo(prev);
|
|
203
|
+
useEffect(() => {
|
|
204
|
+
setOpen(true);
|
|
205
|
+
return () => {
|
|
206
|
+
setOpen(false);
|
|
207
|
+
onStackedModalOpen(false);
|
|
208
|
+
};
|
|
209
|
+
}, []);
|
|
210
|
+
const handleOpenChange = (open2) => {
|
|
211
|
+
if (!open2) {
|
|
212
|
+
document.body.style.pointerEvents = "auto";
|
|
213
|
+
navigate(to, { replace: true });
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
setOpen(open2);
|
|
217
|
+
};
|
|
218
|
+
return /* @__PURE__ */ jsx4(Drawer, { open, onOpenChange: handleOpenChange, children: /* @__PURE__ */ jsx4(RouteModalProvider, { prev: to, children: /* @__PURE__ */ jsx4(StackedModalProvider, { onOpenChange: onStackedModalOpen, children: /* @__PURE__ */ jsx4(
|
|
219
|
+
Drawer.Content,
|
|
220
|
+
{
|
|
221
|
+
"aria-describedby": void 0,
|
|
222
|
+
className: clx({
|
|
223
|
+
"!bg-ui-bg-disabled !inset-y-5 !right-5": stackedModalOpen
|
|
224
|
+
}),
|
|
225
|
+
children
|
|
226
|
+
}
|
|
227
|
+
) }) }) });
|
|
228
|
+
};
|
|
229
|
+
var Header = Drawer.Header;
|
|
230
|
+
var Title = Drawer.Title;
|
|
231
|
+
var Description = Drawer.Description;
|
|
232
|
+
var Body = Drawer.Body;
|
|
233
|
+
var Footer = Drawer.Footer;
|
|
234
|
+
var Close = Drawer.Close;
|
|
235
|
+
var Form2 = RouteModalForm;
|
|
236
|
+
var RouteDrawer = Object.assign(Root, {
|
|
237
|
+
Header,
|
|
238
|
+
Title,
|
|
239
|
+
Body,
|
|
240
|
+
Description,
|
|
241
|
+
Footer,
|
|
242
|
+
Close,
|
|
243
|
+
Form: Form2
|
|
244
|
+
});
|
|
245
|
+
|
|
246
|
+
// src/components/modals/route-focus-modal/route-focus-modal.tsx
|
|
247
|
+
import { FocusModal, clx as clx2 } from "@acmekit/ui";
|
|
248
|
+
import { useEffect as useEffect2, useState as useState4 } from "react";
|
|
249
|
+
import { useNavigate as useNavigate3 } from "react-router-dom";
|
|
250
|
+
|
|
251
|
+
// src/components/modals/route-modal-provider/use-route-modal.tsx
|
|
252
|
+
import { useContext as useContext2 } from "react";
|
|
253
|
+
var useRouteModal = () => {
|
|
254
|
+
const context = useContext2(RouteModalProviderContext);
|
|
255
|
+
if (!context) {
|
|
256
|
+
throw new Error("useRouteModal must be used within a RouteModalProvider");
|
|
257
|
+
}
|
|
258
|
+
return context;
|
|
259
|
+
};
|
|
260
|
+
|
|
261
|
+
// src/components/modals/route-focus-modal/route-focus-modal.tsx
|
|
262
|
+
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
263
|
+
var Root2 = ({ prev = "..", children }) => {
|
|
264
|
+
const navigate = useNavigate3();
|
|
265
|
+
const [open, setOpen] = useState4(false);
|
|
266
|
+
const [stackedModalOpen, onStackedModalOpen] = useState4(false);
|
|
267
|
+
const to = typeof prev === "number" ? prev : useStateAwareTo(prev);
|
|
268
|
+
useEffect2(() => {
|
|
269
|
+
setOpen(true);
|
|
270
|
+
return () => {
|
|
271
|
+
setOpen(false);
|
|
272
|
+
onStackedModalOpen(false);
|
|
273
|
+
};
|
|
274
|
+
}, []);
|
|
275
|
+
const handleOpenChange = (open2) => {
|
|
276
|
+
if (!open2) {
|
|
277
|
+
document.body.style.pointerEvents = "auto";
|
|
278
|
+
if (typeof to === "number") {
|
|
279
|
+
navigate(to);
|
|
280
|
+
} else {
|
|
281
|
+
navigate(to, { replace: true });
|
|
282
|
+
}
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
setOpen(open2);
|
|
286
|
+
};
|
|
287
|
+
return /* @__PURE__ */ jsx5(FocusModal, { open, onOpenChange: handleOpenChange, children: /* @__PURE__ */ jsx5(RouteModalProvider, { prev: to, children: /* @__PURE__ */ jsx5(StackedModalProvider, { onOpenChange: onStackedModalOpen, children: /* @__PURE__ */ jsx5(Content, { stackedModalOpen, children }) }) }) });
|
|
288
|
+
};
|
|
289
|
+
var Content = ({ stackedModalOpen, children }) => {
|
|
290
|
+
const { __internal } = useRouteModal();
|
|
291
|
+
const shouldPreventClose = !__internal.closeOnEscape;
|
|
292
|
+
return /* @__PURE__ */ jsx5(
|
|
293
|
+
FocusModal.Content,
|
|
294
|
+
{
|
|
295
|
+
onEscapeKeyDown: shouldPreventClose ? (e) => {
|
|
296
|
+
e.preventDefault();
|
|
297
|
+
} : void 0,
|
|
298
|
+
className: clx2({
|
|
299
|
+
"!bg-ui-bg-disabled !inset-x-5 !inset-y-3": stackedModalOpen
|
|
300
|
+
}),
|
|
301
|
+
children
|
|
302
|
+
}
|
|
303
|
+
);
|
|
304
|
+
};
|
|
305
|
+
var Header2 = FocusModal.Header;
|
|
306
|
+
var Title2 = FocusModal.Title;
|
|
307
|
+
var Description2 = FocusModal.Description;
|
|
308
|
+
var Footer2 = FocusModal.Footer;
|
|
309
|
+
var Body2 = FocusModal.Body;
|
|
310
|
+
var Close2 = FocusModal.Close;
|
|
311
|
+
var Form3 = RouteModalForm;
|
|
312
|
+
var RouteFocusModal = Object.assign(Root2, {
|
|
313
|
+
Header: Header2,
|
|
314
|
+
Title: Title2,
|
|
315
|
+
Body: Body2,
|
|
316
|
+
Description: Description2,
|
|
317
|
+
Footer: Footer2,
|
|
318
|
+
Close: Close2,
|
|
319
|
+
Form: Form3
|
|
320
|
+
});
|
|
321
|
+
|
|
322
|
+
// src/components/modals/stacked-drawer/stacked-drawer.tsx
|
|
323
|
+
import { Drawer as Drawer2, clx as clx3 } from "@acmekit/ui";
|
|
324
|
+
import {
|
|
325
|
+
forwardRef,
|
|
326
|
+
useEffect as useEffect3
|
|
327
|
+
} from "react";
|
|
328
|
+
import { jsx as jsx6 } from "react/jsx-runtime";
|
|
329
|
+
var Root3 = ({ id, children }) => {
|
|
330
|
+
const { register, unregister, getIsOpen, setIsOpen } = useStackedModal();
|
|
331
|
+
useEffect3(() => {
|
|
332
|
+
register(id);
|
|
333
|
+
return () => unregister(id);
|
|
334
|
+
}, []);
|
|
335
|
+
return /* @__PURE__ */ jsx6(Drawer2, { open: getIsOpen(id), onOpenChange: (open) => setIsOpen(id, open), children });
|
|
336
|
+
};
|
|
337
|
+
var Close3 = Drawer2.Close;
|
|
338
|
+
Close3.displayName = "StackedDrawer.Close";
|
|
339
|
+
var Header3 = Drawer2.Header;
|
|
340
|
+
Header3.displayName = "StackedDrawer.Header";
|
|
341
|
+
var Body3 = Drawer2.Body;
|
|
342
|
+
Body3.displayName = "StackedDrawer.Body";
|
|
343
|
+
var Trigger = Drawer2.Trigger;
|
|
344
|
+
Trigger.displayName = "StackedDrawer.Trigger";
|
|
345
|
+
var Footer3 = Drawer2.Footer;
|
|
346
|
+
Footer3.displayName = "StackedDrawer.Footer";
|
|
347
|
+
var Title3 = Drawer2.Title;
|
|
348
|
+
Title3.displayName = "StackedDrawer.Title";
|
|
349
|
+
var Description3 = Drawer2.Description;
|
|
350
|
+
Description3.displayName = "StackedDrawer.Description";
|
|
351
|
+
var Content2 = forwardRef(({ className, ...props }, ref) => {
|
|
352
|
+
return /* @__PURE__ */ jsx6(
|
|
353
|
+
Drawer2.Content,
|
|
354
|
+
{
|
|
355
|
+
ref,
|
|
356
|
+
className: clx3(className),
|
|
357
|
+
overlayProps: {
|
|
358
|
+
className: "bg-transparent"
|
|
359
|
+
},
|
|
360
|
+
...props
|
|
361
|
+
}
|
|
362
|
+
);
|
|
363
|
+
});
|
|
364
|
+
Content2.displayName = "StackedDrawer.Content";
|
|
365
|
+
var StackedDrawer = Object.assign(Root3, {
|
|
366
|
+
Close: Close3,
|
|
367
|
+
Header: Header3,
|
|
368
|
+
Body: Body3,
|
|
369
|
+
Content: Content2,
|
|
370
|
+
Trigger,
|
|
371
|
+
Footer: Footer3,
|
|
372
|
+
Description: Description3,
|
|
373
|
+
Title: Title3
|
|
374
|
+
});
|
|
375
|
+
|
|
376
|
+
// src/components/modals/stacked-focus-modal/stacked-focus-modal.tsx
|
|
377
|
+
import { FocusModal as FocusModal2, clx as clx4 } from "@acmekit/ui";
|
|
378
|
+
import {
|
|
379
|
+
forwardRef as forwardRef2,
|
|
380
|
+
useEffect as useEffect4
|
|
381
|
+
} from "react";
|
|
382
|
+
import { jsx as jsx7 } from "react/jsx-runtime";
|
|
383
|
+
var Root4 = ({
|
|
384
|
+
id,
|
|
385
|
+
onOpenChangeCallback,
|
|
386
|
+
children
|
|
387
|
+
}) => {
|
|
388
|
+
const { register, unregister, getIsOpen, setIsOpen } = useStackedModal();
|
|
389
|
+
useEffect4(() => {
|
|
390
|
+
register(id);
|
|
391
|
+
return () => unregister(id);
|
|
392
|
+
}, []);
|
|
393
|
+
const handleOpenChange = (open) => {
|
|
394
|
+
setIsOpen(id, open);
|
|
395
|
+
onOpenChangeCallback?.(open);
|
|
396
|
+
};
|
|
397
|
+
return /* @__PURE__ */ jsx7(FocusModal2, { open: getIsOpen(id), onOpenChange: handleOpenChange, children });
|
|
398
|
+
};
|
|
399
|
+
var Close4 = FocusModal2.Close;
|
|
400
|
+
Close4.displayName = "StackedFocusModal.Close";
|
|
401
|
+
var Header4 = FocusModal2.Header;
|
|
402
|
+
Header4.displayName = "StackedFocusModal.Header";
|
|
403
|
+
var Body4 = FocusModal2.Body;
|
|
404
|
+
Body4.displayName = "StackedFocusModal.Body";
|
|
405
|
+
var Trigger2 = FocusModal2.Trigger;
|
|
406
|
+
Trigger2.displayName = "StackedFocusModal.Trigger";
|
|
407
|
+
var Footer4 = FocusModal2.Footer;
|
|
408
|
+
Footer4.displayName = "StackedFocusModal.Footer";
|
|
409
|
+
var Title4 = FocusModal2.Title;
|
|
410
|
+
Title4.displayName = "StackedFocusModal.Title";
|
|
411
|
+
var Description4 = FocusModal2.Description;
|
|
412
|
+
Description4.displayName = "StackedFocusModal.Description";
|
|
413
|
+
var Content3 = forwardRef2(({ className, ...props }, ref) => {
|
|
414
|
+
return /* @__PURE__ */ jsx7(
|
|
415
|
+
FocusModal2.Content,
|
|
416
|
+
{
|
|
417
|
+
ref,
|
|
418
|
+
className: clx4("!top-6", className),
|
|
419
|
+
overlayProps: {
|
|
420
|
+
className: "bg-transparent"
|
|
421
|
+
},
|
|
422
|
+
...props
|
|
423
|
+
}
|
|
424
|
+
);
|
|
425
|
+
});
|
|
426
|
+
Content3.displayName = "StackedFocusModal.Content";
|
|
427
|
+
var StackedFocusModal = Object.assign(Root4, {
|
|
428
|
+
Close: Close4,
|
|
429
|
+
Header: Header4,
|
|
430
|
+
Body: Body4,
|
|
431
|
+
Content: Content3,
|
|
432
|
+
Trigger: Trigger2,
|
|
433
|
+
Footer: Footer4,
|
|
434
|
+
Description: Description4,
|
|
435
|
+
Title: Title4
|
|
436
|
+
});
|
|
437
|
+
|
|
438
|
+
// src/components/utilities/keybound-form/keybound-form.tsx
|
|
439
|
+
import React from "react";
|
|
440
|
+
import { jsx as jsx8 } from "react/jsx-runtime";
|
|
441
|
+
var KeyboundForm = React.forwardRef(({ onSubmit, onKeyDown, ...rest }, ref) => {
|
|
442
|
+
const handleSubmit = (event) => {
|
|
443
|
+
event.preventDefault();
|
|
444
|
+
onSubmit?.(event);
|
|
445
|
+
};
|
|
446
|
+
const handleKeyDown = (event) => {
|
|
447
|
+
if (event.key === "Enter") {
|
|
448
|
+
if (event.target instanceof HTMLTextAreaElement && !(event.metaKey || event.ctrlKey)) {
|
|
449
|
+
return;
|
|
450
|
+
}
|
|
451
|
+
event.preventDefault();
|
|
452
|
+
if (event.metaKey || event.ctrlKey) {
|
|
453
|
+
handleSubmit(event);
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
};
|
|
457
|
+
return /* @__PURE__ */ jsx8(
|
|
458
|
+
"form",
|
|
459
|
+
{
|
|
460
|
+
...rest,
|
|
461
|
+
onSubmit: handleSubmit,
|
|
462
|
+
onKeyDown: onKeyDown ?? handleKeyDown,
|
|
463
|
+
ref
|
|
464
|
+
}
|
|
465
|
+
);
|
|
466
|
+
});
|
|
467
|
+
KeyboundForm.displayName = "KeyboundForm";
|
|
468
|
+
|
|
469
|
+
export {
|
|
470
|
+
RouteDrawer,
|
|
471
|
+
useRouteModal,
|
|
472
|
+
RouteFocusModal,
|
|
473
|
+
KeyboundForm
|
|
474
|
+
};
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
// src/i18n/languages.ts
|
|
2
|
+
import {
|
|
3
|
+
ar,
|
|
4
|
+
bg,
|
|
5
|
+
bs,
|
|
6
|
+
cs,
|
|
7
|
+
de,
|
|
8
|
+
el,
|
|
9
|
+
enUS,
|
|
10
|
+
es,
|
|
11
|
+
faIR,
|
|
12
|
+
fr,
|
|
13
|
+
he,
|
|
14
|
+
hu,
|
|
15
|
+
id,
|
|
16
|
+
it,
|
|
17
|
+
ja,
|
|
18
|
+
ko,
|
|
19
|
+
lt,
|
|
20
|
+
mk,
|
|
21
|
+
mn,
|
|
22
|
+
nl,
|
|
23
|
+
pl,
|
|
24
|
+
pt,
|
|
25
|
+
ptBR,
|
|
26
|
+
ro,
|
|
27
|
+
ru,
|
|
28
|
+
th,
|
|
29
|
+
tr,
|
|
30
|
+
uk,
|
|
31
|
+
vi,
|
|
32
|
+
zhCN,
|
|
33
|
+
zhTW
|
|
34
|
+
} from "date-fns/locale";
|
|
35
|
+
var languages = [
|
|
36
|
+
{
|
|
37
|
+
code: "bs",
|
|
38
|
+
display_name: "Bosanski",
|
|
39
|
+
ltr: true,
|
|
40
|
+
date_locale: bs
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
code: "bg",
|
|
44
|
+
display_name: "\u0411\u044A\u043B\u0433\u0430\u0440\u0441\u043A\u0438",
|
|
45
|
+
ltr: true,
|
|
46
|
+
date_locale: bg
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
code: "en",
|
|
50
|
+
display_name: "English",
|
|
51
|
+
ltr: true,
|
|
52
|
+
date_locale: enUS
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
code: "es",
|
|
56
|
+
display_name: "Espa\xF1ol",
|
|
57
|
+
ltr: true,
|
|
58
|
+
date_locale: es
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
code: "el",
|
|
62
|
+
display_name: "\u0395\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",
|
|
63
|
+
ltr: true,
|
|
64
|
+
date_locale: el
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
code: "de",
|
|
68
|
+
display_name: "Deutsch",
|
|
69
|
+
ltr: true,
|
|
70
|
+
date_locale: de
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
code: "fr",
|
|
74
|
+
display_name: "Fran\xE7ais",
|
|
75
|
+
ltr: true,
|
|
76
|
+
date_locale: fr
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
code: "he",
|
|
80
|
+
display_name: "\u05E2\u05D1\u05E8\u05D9\u05EA",
|
|
81
|
+
ltr: false,
|
|
82
|
+
date_locale: he
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
code: "hu",
|
|
86
|
+
display_name: "Magyar",
|
|
87
|
+
ltr: true,
|
|
88
|
+
date_locale: hu
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
code: "it",
|
|
92
|
+
display_name: "Italiano",
|
|
93
|
+
ltr: true,
|
|
94
|
+
date_locale: it
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
code: "ja",
|
|
98
|
+
display_name: "\u65E5\u672C\u8A9E",
|
|
99
|
+
ltr: true,
|
|
100
|
+
date_locale: ja
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
code: "pl",
|
|
104
|
+
display_name: "Polski",
|
|
105
|
+
ltr: true,
|
|
106
|
+
date_locale: pl
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
code: "ptBR",
|
|
110
|
+
display_name: "Portugu\xEAs (Brasil)",
|
|
111
|
+
ltr: true,
|
|
112
|
+
date_locale: ptBR
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
code: "ptPT",
|
|
116
|
+
display_name: "Portugu\xEAs (Portugal)",
|
|
117
|
+
ltr: true,
|
|
118
|
+
date_locale: pt
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
code: "tr",
|
|
122
|
+
display_name: "T\xFCrk\xE7e",
|
|
123
|
+
ltr: true,
|
|
124
|
+
date_locale: tr
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
code: "th",
|
|
128
|
+
display_name: "\u0E44\u0E17\u0E22",
|
|
129
|
+
ltr: true,
|
|
130
|
+
date_locale: th
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
code: "uk",
|
|
134
|
+
display_name: "\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430",
|
|
135
|
+
ltr: true,
|
|
136
|
+
date_locale: uk
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
code: "ro",
|
|
140
|
+
display_name: "Rom\xE2n\u0103",
|
|
141
|
+
ltr: true,
|
|
142
|
+
date_locale: ro
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
code: "mk",
|
|
146
|
+
display_name: "\u041C\u0430\u043A\u0435\u0434\u043E\u043D\u0441\u043A\u0438",
|
|
147
|
+
ltr: true,
|
|
148
|
+
date_locale: mk
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
code: "mn",
|
|
152
|
+
display_name: "\u041C\u043E\u043D\u0433\u043E\u043B",
|
|
153
|
+
ltr: true,
|
|
154
|
+
date_locale: mn
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
code: "ar",
|
|
158
|
+
display_name: "\u0627\u0644\u0639\u0631\u0628\u064A\u0629",
|
|
159
|
+
ltr: false,
|
|
160
|
+
date_locale: ar
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
code: "zhCN",
|
|
164
|
+
display_name: "\u7B80\u4F53\u4E2D\u6587",
|
|
165
|
+
ltr: true,
|
|
166
|
+
date_locale: zhCN
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
code: "fa",
|
|
170
|
+
display_name: "\u0641\u0627\u0631\u0633\u06CC",
|
|
171
|
+
ltr: false,
|
|
172
|
+
date_locale: faIR
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
code: "cs",
|
|
176
|
+
display_name: "\u010Ce\u0161tina",
|
|
177
|
+
ltr: true,
|
|
178
|
+
date_locale: cs
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
code: "ru",
|
|
182
|
+
display_name: "\u0420\u0443\u0441\u0441\u043A\u0438\u0439",
|
|
183
|
+
ltr: true,
|
|
184
|
+
date_locale: ru
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
code: "lt",
|
|
188
|
+
display_name: "Lietuvi\u0161kai",
|
|
189
|
+
ltr: true,
|
|
190
|
+
date_locale: lt
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
code: "vi",
|
|
194
|
+
display_name: "Ti\u1EBFng Vi\u1EC7t",
|
|
195
|
+
ltr: true,
|
|
196
|
+
date_locale: vi
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
code: "id",
|
|
200
|
+
display_name: "Bahasa Indonesia",
|
|
201
|
+
ltr: true,
|
|
202
|
+
date_locale: id
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
code: "ko",
|
|
206
|
+
display_name: "\uD55C\uAD6D\uC5B4",
|
|
207
|
+
ltr: true,
|
|
208
|
+
date_locale: ko
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
code: "nl",
|
|
212
|
+
display_name: "Nederlands",
|
|
213
|
+
ltr: true,
|
|
214
|
+
date_locale: nl
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
code: "zhTW",
|
|
218
|
+
display_name: "\u7E41\u9AD4\u4E2D\u6587(\u81FA\u7063)",
|
|
219
|
+
ltr: true,
|
|
220
|
+
date_locale: zhTW
|
|
221
|
+
}
|
|
222
|
+
];
|
|
223
|
+
|
|
224
|
+
export {
|
|
225
|
+
languages
|
|
226
|
+
};
|