treege 3.0.0-beta.42 → 3.0.0-beta.44

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.
@@ -1,1558 +0,0 @@
1
- import { S as e, _ as t, c as n, f as r, i, m as a, o, p as s, r as c, s as l, t as u, u as d, w as f } from "./ThemeContext-CUHjGVUf.js";
2
- import * as p from "react";
3
- import { forwardRef as m, useCallback as h, useEffect as g, useMemo as _, useRef as v, useState as y } from "react";
4
- import { Fragment as b, jsx as x, jsxs as S } from "react/jsx-runtime";
5
- import { Check as C, CheckIcon as w, ChevronDownIcon as T, ChevronLeftIcon as E, ChevronRightIcon as D, ChevronUpIcon as ee, ChevronsUpDown as te, CircleIcon as O, Loader2 as k, MapPin as ne, SearchIcon as re, XIcon as ie } from "lucide-react";
6
- import { Slot as A } from "@radix-ui/react-slot";
7
- import { cva as j } from "class-variance-authority";
8
- import { clsx as M } from "clsx";
9
- import { extendTailwindMerge as N } from "tailwind-merge";
10
- import * as P from "@radix-ui/react-checkbox";
11
- import * as ae from "@radix-ui/react-label";
12
- import * as F from "@radix-ui/react-popover";
13
- import * as I from "@radix-ui/react-select";
14
- import { Command as L } from "cmdk";
15
- import * as R from "@radix-ui/react-dialog";
16
- import { DayPicker as oe, getDefaultClassNames as z } from "react-day-picker";
17
- import * as B from "@radix-ui/react-tooltip";
18
- import * as V from "@radix-ui/react-radio-group";
19
- import * as se from "@radix-ui/react-separator";
20
- import * as H from "@radix-ui/react-switch";
21
- //#region src/shared/lib/utils.ts
22
- var U = N({ prefix: "tg" });
23
- function W(...e) {
24
- return U(M(e));
25
- }
26
- //#endregion
27
- //#region src/shared/components/ui/button.tsx
28
- var ce = j("tg:inline-flex tg:items-center tg:justify-center tg:gap-2 tg:whitespace-nowrap tg:rounded-md tg:text-sm tg:font-medium tg:transition-all tg:disabled:pointer-events-none tg:disabled:opacity-50 tg:[&_svg]:pointer-events-none tg:[&_svg:not([class*='size-'])]:size-4 tg:shrink-0 tg:[&_svg]:shrink-0 tg:outline-none tg:focus-visible:border-ring tg:focus-visible:ring-ring/50 tg:focus-visible:ring-[3px] tg:aria-invalid:ring-destructive/20 tg:dark:aria-invalid:ring-destructive/40 tg:aria-invalid:border-destructive", {
29
- defaultVariants: {
30
- size: "default",
31
- variant: "default"
32
- },
33
- variants: {
34
- size: {
35
- default: "tg:h-9 tg:px-4 tg:py-2 tg:has-[>svg]:px-3",
36
- icon: "tg:size-9",
37
- "icon-lg": "tg:size-10",
38
- "icon-sm": "tg:size-8",
39
- lg: "tg:h-10 tg:rounded-md tg:px-6 tg:has-[>svg]:px-4",
40
- sm: "tg:h-8 tg:rounded-md tg:gap-1.5 tg:px-3 tg:has-[>svg]:px-2.5",
41
- xs: "tg:h-6 tg:rounded-md tg:gap-1 tg:px-2 tg:text-xs tg:has-[>svg]:px-1.5"
42
- },
43
- variant: {
44
- default: "tg:bg-primary tg:text-primary-foreground tg:hover:bg-primary/90",
45
- destructive: "tg:bg-destructive tg:text-white tg:hover:bg-destructive/90 tg:focus-visible:ring-destructive/20 tg:dark:focus-visible:ring-destructive/40 tg:dark:bg-destructive/60",
46
- ghost: "tg:hover:bg-accent tg:hover:text-accent-foreground tg:dark:hover:bg-accent/50",
47
- link: "tg:text-primary tg:underline-offset-4 tg:hover:underline",
48
- outline: "tg:border tg:bg-background tg:shadow-xs tg:hover:bg-accent tg:hover:text-accent-foreground tg:dark:bg-input/30 tg:dark:border-input tg:dark:hover:bg-input/50",
49
- secondary: "tg:bg-secondary tg:text-secondary-foreground tg:hover:bg-secondary/80"
50
- }
51
- }
52
- });
53
- function G({ className: e, variant: t, size: n, asChild: r = !1, ...i }) {
54
- return /* @__PURE__ */ x(r ? A : "button", {
55
- "data-slot": "button",
56
- className: W(ce({
57
- className: e,
58
- size: n,
59
- variant: t
60
- })),
61
- ...i
62
- });
63
- }
64
- //#endregion
65
- //#region src/shared/components/ui/checkbox.tsx
66
- function le({ className: e, ...t }) {
67
- return /* @__PURE__ */ x(P.Root, {
68
- "data-slot": "checkbox",
69
- className: W("tg:peer tg:size-4 tg:shrink-0 tg:rounded-[4px] tg:border tg:border-input tg:shadow-xs tg:outline-none tg:transition-shadow tg:focus-visible:border-ring tg:focus-visible:ring-[3px] tg:focus-visible:ring-ring/50 tg:disabled:cursor-not-allowed tg:disabled:opacity-50 tg:aria-invalid:border-destructive tg:aria-invalid:ring-destructive/20 tg:data-[state=checked]:border-primary tg:data-[state=checked]:bg-primary tg:data-[state=checked]:text-primary-foreground tg:dark:bg-input/30 tg:dark:data-[state=checked]:bg-primary tg:dark:aria-invalid:ring-destructive/40", e),
70
- ...t,
71
- children: /* @__PURE__ */ x(P.Indicator, {
72
- "data-slot": "checkbox-indicator",
73
- className: "tg:grid tg:place-content-center tg:text-current tg:transition-none",
74
- children: /* @__PURE__ */ x(w, { className: "tg:size-3.5" })
75
- })
76
- });
77
- }
78
- //#endregion
79
- //#region src/shared/components/ui/form.tsx
80
- function K({ className: e, ...t }) {
81
- return /* @__PURE__ */ x("div", {
82
- "data-slot": "form-item",
83
- className: W("tg:grid tg:gap-2", e),
84
- ...t
85
- });
86
- }
87
- function q({ className: e, ...t }) {
88
- return /* @__PURE__ */ x("p", {
89
- "data-slot": "form-description",
90
- className: W("tg:text-muted-foreground tg:text-xs", e),
91
- ...t
92
- });
93
- }
94
- function J({ className: e, ...t }) {
95
- return /* @__PURE__ */ x("p", {
96
- "data-slot": "form-error",
97
- className: W("tg:text-destructive tg:text-xs", e),
98
- ...t
99
- });
100
- }
101
- //#endregion
102
- //#region src/shared/components/ui/input.tsx
103
- function Y({ className: e, type: t, ...n }) {
104
- return /* @__PURE__ */ x("input", {
105
- type: t,
106
- "data-slot": "input",
107
- className: W("tg:h-9 tg:w-full tg:min-w-0 tg:rounded-md tg:border tg:border-input tg:bg-transparent tg:px-3 tg:py-1 tg:text-base tg:shadow-xs tg:outline-none tg:transition-[color,box-shadow] tg:selection:bg-primary tg:selection:text-primary-foreground tg:file:inline-flex tg:file:h-7 tg:file:border-0 tg:file:bg-transparent tg:file:font-medium tg:file:text-foreground tg:file:text-sm tg:placeholder:text-muted-foreground tg:disabled:pointer-events-none tg:disabled:cursor-not-allowed tg:disabled:opacity-50 tg:md:text-sm tg:dark:bg-input/30", "tg:focus-visible:border-ring tg:focus-visible:ring-[3px] tg:focus-visible:ring-ring/50", "tg:aria-invalid:border-destructive tg:aria-invalid:ring-destructive/20 tg:dark:aria-invalid:ring-destructive/40", e),
108
- ...n
109
- });
110
- }
111
- //#endregion
112
- //#region src/shared/components/ui/label.tsx
113
- var X = ({ className: e, ...t }) => /* @__PURE__ */ x(ae.Root, {
114
- "data-slot": "label",
115
- className: W("tg:flex tg:select-none tg:items-center tg:gap-2 tg:font-medium tg:text-muted-foreground tg:text-sm tg:leading-none tg:peer-disabled:cursor-not-allowed tg:peer-disabled:opacity-50 tg:group-data-[disabled=true]:pointer-events-none tg:group-data-[disabled=true]:opacity-50", e),
116
- ...t
117
- });
118
- //#endregion
119
- //#region src/shared/components/ui/popover.tsx
120
- function Z({ ...e }) {
121
- return /* @__PURE__ */ x(F.Root, {
122
- "data-slot": "popover",
123
- ...e
124
- });
125
- }
126
- function Q({ ...e }) {
127
- return /* @__PURE__ */ x(F.Trigger, {
128
- "data-slot": "popover-trigger",
129
- ...e
130
- });
131
- }
132
- function $({ className: e, align: t = "center", sideOffset: n = 4, disablePortal: r = !1, ...i }) {
133
- let a = /* @__PURE__ */ x(F.Content, {
134
- "data-slot": "popover-content",
135
- align: t,
136
- sideOffset: n,
137
- className: W("tg:data-[state=closed]:fade-out-0 tg:data-[state=open]:fade-in-0 tg:data-[state=closed]:zoom-out-95 tg:data-[state=open]:zoom-in-95 tg:data-[side=bottom]:slide-in-from-top-2 tg:data-[side=left]:slide-in-from-right-2 tg:data-[side=right]:slide-in-from-left-2 tg:data-[side=top]:slide-in-from-bottom-2 tg:z-50 tg:w-72 tg:origin-(--radix-popover-content-transform-origin) tg:rounded-md tg:border tg:bg-popover tg:p-4 tg:text-popover-foreground tg:shadow-md tg:outline-hidden tg:data-[state=closed]:animate-out tg:data-[state=open]:animate-in", e),
138
- ...i
139
- });
140
- return r ? a : /* @__PURE__ */ x(F.Portal, { children: a });
141
- }
142
- //#endregion
143
- //#region src/shared/components/ui/select.tsx
144
- var ue = ({ ...e }) => /* @__PURE__ */ x(I.Root, {
145
- "data-slot": "select",
146
- ...e
147
- }), de = ({ ...e }) => /* @__PURE__ */ x(I.Group, {
148
- "data-slot": "select-group",
149
- ...e
150
- }), fe = ({ ...e }) => /* @__PURE__ */ x(I.Value, {
151
- "data-slot": "select-value",
152
- ...e
153
- }), pe = ({ className: e, size: t = "default", children: n, ...r }) => /* @__PURE__ */ S(I.Trigger, {
154
- "data-slot": "select-trigger",
155
- "data-size": t,
156
- className: W("tg:flex tg:w-fit tg:items-center tg:justify-between tg:gap-2 tg:whitespace-nowrap tg:rounded-md tg:border tg:border-input tg:bg-transparent tg:px-3 tg:py-2 tg:text-sm tg:shadow-xs tg:outline-none tg:transition-[color,box-shadow] tg:focus-visible:border-ring tg:focus-visible:ring-[3px] tg:focus-visible:ring-ring/50 tg:disabled:cursor-not-allowed tg:disabled:opacity-50 tg:aria-invalid:border-destructive tg:aria-invalid:ring-destructive/20 tg:data-[size=default]:h-9 tg:data-[size=sm]:h-8 tg:data-[placeholder]:text-muted-foreground tg:*:data-[slot=select-value]:line-clamp-1 tg:*:data-[slot=select-value]:flex tg:*:data-[slot=select-value]:items-center tg:*:data-[slot=select-value]:gap-2 tg:dark:bg-input/30 tg:dark:aria-invalid:ring-destructive/40 tg:dark:hover:bg-input/50 tg:[&_svg:not([class*='size-'])]:size-4 tg:[&_svg:not([class*='text-'])]:text-muted-foreground tg:[&_svg]:pointer-events-none tg:[&_svg]:shrink-0", e),
157
- ...r,
158
- children: [n, /* @__PURE__ */ x(I.Icon, {
159
- asChild: !0,
160
- children: /* @__PURE__ */ x(T, { className: "tg:size-4 tg:opacity-50" })
161
- })]
162
- }), me = ({ className: e, children: t, position: n = "popper", ...r }) => /* @__PURE__ */ x(I.Portal, { children: /* @__PURE__ */ S(I.Content, {
163
- "data-slot": "select-content",
164
- className: W("tg:data-[state=closed]:fade-out-0 tg:data-[state=open]:fade-in-0 tg:data-[state=closed]:zoom-out-95 tg:data-[state=open]:zoom-in-95 tg:data-[side=bottom]:slide-in-from-top-2 tg:data-[side=left]:slide-in-from-right-2 tg:data-[side=right]:slide-in-from-left-2 tg:data-[side=top]:slide-in-from-bottom-2 tg:relative tg:z-50 tg:max-h-(--radix-select-content-available-height) tg:min-w-[8rem] tg:origin-(--radix-select-content-transform-origin) tg:overflow-y-auto tg:overflow-x-hidden tg:rounded-md tg:border tg:bg-popover tg:text-popover-foreground tg:shadow-md tg:data-[state=closed]:animate-out tg:data-[state=open]:animate-in", n === "popper" && "tg:data-[side=left]:-translate-x-1 tg:data-[side=top]:-translate-y-1 tg:data-[side=right]:translate-x-1 tg:data-[side=bottom]:translate-y-1", e),
165
- position: n,
166
- ...r,
167
- children: [
168
- /* @__PURE__ */ x(ve, {}),
169
- /* @__PURE__ */ x(I.Viewport, {
170
- className: W("tg:p-1", n === "popper" && "tg:h-[var(--radix-select-trigger-height)] tg:w-full tg:min-w-[var(--radix-select-trigger-width)] tg:scroll-my-1"),
171
- children: t
172
- }),
173
- /* @__PURE__ */ x(ye, {})
174
- ]
175
- }) }), he = ({ className: e, htmlFor: t, children: n, ...r }) => /* @__PURE__ */ x(I.Label, {
176
- "data-slot": "select-label",
177
- className: W("tg:pb-1.5 tg:font-medium tg:text-muted-foreground tg:text-sm", e),
178
- ...r,
179
- children: /* @__PURE__ */ x("label", {
180
- htmlFor: t,
181
- children: n
182
- })
183
- }), ge = ({ className: e, children: t, ...n }) => /* @__PURE__ */ S(I.Item, {
184
- "data-slot": "select-item",
185
- className: W("tg:relative tg:flex tg:w-full tg:cursor-pointer tg:select-none tg:items-center tg:gap-2 tg:rounded-sm tg:py-1.5 tg:pr-8 tg:pl-2 tg:text-sm tg:outline-hidden tg:focus:bg-accent tg:focus:text-accent-foreground tg:data-[disabled]:pointer-events-none tg:data-[disabled]:opacity-50 tg:[&_svg:not([class*='size-'])]:size-4 tg:[&_svg:not([class*='text-'])]:text-muted-foreground tg:[&_svg]:pointer-events-none tg:[&_svg]:shrink-0 tg:*:[span]:last:flex tg:*:[span]:last:items-center tg:*:[span]:last:gap-2", e),
186
- ...n,
187
- children: [/* @__PURE__ */ x("span", {
188
- className: "tg:absolute tg:right-2 tg:flex tg:size-3.5 tg:items-center tg:justify-center",
189
- children: /* @__PURE__ */ x(I.ItemIndicator, { children: /* @__PURE__ */ x(w, { className: "tg:size-4" }) })
190
- }), /* @__PURE__ */ x(I.ItemText, { children: t })]
191
- }), _e = ({ className: e, ...t }) => /* @__PURE__ */ x(I.Separator, {
192
- "data-slot": "select-separator",
193
- className: W("tg:-mx-1 tg:pointer-events-none tg:my-1 tg:h-px tg:bg-border", e),
194
- ...t
195
- }), ve = ({ className: e, ...t }) => /* @__PURE__ */ x(I.ScrollUpButton, {
196
- "data-slot": "select-scroll-up-button",
197
- className: W("tg:flex tg:cursor-default tg:items-center tg:justify-center tg:py-1", e),
198
- ...t,
199
- children: /* @__PURE__ */ x(ee, { className: "tg:size-4" })
200
- }), ye = ({ className: e, ...t }) => /* @__PURE__ */ x(I.ScrollDownButton, {
201
- "data-slot": "select-scroll-down-button",
202
- className: W("tg:flex tg:cursor-default tg:items-center tg:justify-center tg:py-1", e),
203
- ...t,
204
- children: /* @__PURE__ */ x(T, { className: "tg:size-4" })
205
- });
206
- //#endregion
207
- //#region src/shared/components/ui/dialog.tsx
208
- function be({ ...e }) {
209
- return /* @__PURE__ */ x(R.Root, {
210
- "data-slot": "dialog",
211
- ...e
212
- });
213
- }
214
- function xe({ ...e }) {
215
- return /* @__PURE__ */ x(R.Trigger, {
216
- "data-slot": "dialog-trigger",
217
- ...e
218
- });
219
- }
220
- function Se({ ...e }) {
221
- return /* @__PURE__ */ x(R.Portal, {
222
- "data-slot": "dialog-portal",
223
- ...e
224
- });
225
- }
226
- function Ce({ className: e, ...t }) {
227
- return /* @__PURE__ */ x(R.Overlay, {
228
- "data-slot": "dialog-overlay",
229
- className: W("tg:data-[state=closed]:fade-out-0 tg:data-[state=open]:fade-in-0 tg:fixed tg:inset-0 tg:z-50 tg:bg-black/50 tg:data-[state=closed]:animate-out tg:data-[state=open]:animate-in", e),
230
- ...t
231
- });
232
- }
233
- function we({ className: e, children: t, showCloseButton: n = !0, ...r }) {
234
- return /* @__PURE__ */ S(Se, {
235
- "data-slot": "dialog-portal",
236
- children: [/* @__PURE__ */ x(Ce, {}), /* @__PURE__ */ S(R.Content, {
237
- "data-slot": "dialog-content",
238
- className: W("tg:data-[state=closed]:fade-out-0 tg:data-[state=open]:fade-in-0 tg:data-[state=closed]:zoom-out-95 tg:data-[state=open]:zoom-in-95 tg:fixed tg:top-[50%] tg:left-[50%] tg:z-50 tg:grid tg:w-full tg:max-w-[calc(100%-2rem)] tg:translate-x-[-50%] tg:translate-y-[-50%] tg:gap-4 tg:rounded-lg tg:border tg:bg-background tg:p-6 tg:shadow-lg tg:duration-200 tg:data-[state=closed]:animate-out tg:data-[state=open]:animate-in tg:sm:max-w-lg", e),
239
- ...r,
240
- children: [t, n && /* @__PURE__ */ S(R.Close, {
241
- "data-slot": "dialog-close",
242
- className: "tg:absolute tg:top-4 tg:right-4 tg:rounded-xs tg:opacity-70 tg:ring-offset-background tg:transition-opacity tg:hover:opacity-100 tg:focus:outline-hidden tg:focus:ring-2 tg:focus:ring-ring tg:focus:ring-offset-2 tg:disabled:pointer-events-none tg:data-[state=open]:bg-accent tg:data-[state=open]:text-muted-foreground tg:[&_svg:not([class*='size-'])]:size-4 tg:[&_svg]:pointer-events-none tg:[&_svg]:shrink-0",
243
- children: [/* @__PURE__ */ x(ie, {}), /* @__PURE__ */ x("span", {
244
- className: "tg:sr-only",
245
- children: "Close"
246
- })]
247
- })]
248
- })]
249
- });
250
- }
251
- function Te({ className: e, ...t }) {
252
- return /* @__PURE__ */ x("div", {
253
- "data-slot": "dialog-header",
254
- className: W("tg:flex tg:flex-col tg:gap-2 tg:text-center tg:sm:text-left", e),
255
- ...t
256
- });
257
- }
258
- function Ee({ className: e, ...t }) {
259
- return /* @__PURE__ */ x("div", {
260
- "data-slot": "dialog-footer",
261
- className: W("tg:flex tg:flex-col-reverse tg:gap-2 tg:sm:flex-row tg:sm:justify-end", e),
262
- ...t
263
- });
264
- }
265
- function De({ className: e, ...t }) {
266
- return /* @__PURE__ */ x(R.Title, {
267
- "data-slot": "dialog-title",
268
- className: W("tg:font-semibold tg:text-lg tg:leading-none", e),
269
- ...t
270
- });
271
- }
272
- function Oe({ className: e, ...t }) {
273
- return /* @__PURE__ */ x(R.Description, {
274
- "data-slot": "dialog-description",
275
- className: W("tg:text-muted-foreground tg:text-sm", e),
276
- ...t
277
- });
278
- }
279
- //#endregion
280
- //#region src/shared/components/ui/command.tsx
281
- function ke({ className: e, ...t }) {
282
- return /* @__PURE__ */ x(L, {
283
- "data-slot": "command",
284
- className: W("tg:flex tg:h-full tg:w-full tg:flex-col tg:overflow-hidden tg:rounded-md tg:bg-popover tg:text-popover-foreground", e),
285
- ...t
286
- });
287
- }
288
- function Ae({ className: e, ...t }) {
289
- return /* @__PURE__ */ S("div", {
290
- "data-slot": "command-input-wrapper",
291
- className: "tg:flex tg:h-9 tg:items-center tg:gap-2 tg:border-b tg:px-3",
292
- children: [/* @__PURE__ */ x(re, { className: "tg:size-4 tg:shrink-0 tg:opacity-50" }), /* @__PURE__ */ x(L.Input, {
293
- "data-slot": "command-input",
294
- className: W("tg:flex tg:h-10 tg:w-full tg:rounded-md tg:bg-transparent tg:py-3 tg:text-sm tg:outline-hidden tg:placeholder:text-muted-foreground tg:disabled:cursor-not-allowed tg:disabled:opacity-50", e),
295
- ...t
296
- })]
297
- });
298
- }
299
- function je({ className: e, ...t }) {
300
- return /* @__PURE__ */ x(L.List, {
301
- "data-slot": "command-list",
302
- className: W("tg:max-h-[300px] tg:scroll-py-1 tg:overflow-y-auto tg:overflow-x-hidden", e),
303
- ...t
304
- });
305
- }
306
- function Me({ ...e }) {
307
- return /* @__PURE__ */ x(L.Empty, {
308
- "data-slot": "command-empty",
309
- className: "tg:py-6 tg:text-center tg:text-sm",
310
- ...e
311
- });
312
- }
313
- function Ne({ className: e, ...t }) {
314
- return /* @__PURE__ */ x(L.Group, {
315
- "data-slot": "command-group",
316
- className: W("tg:overflow-hidden tg:p-1 tg:text-foreground tg:[&_[cmdk-group-heading]]:px-2 tg:[&_[cmdk-group-heading]]:py-1.5 tg:[&_[cmdk-group-heading]]:font-medium tg:[&_[cmdk-group-heading]]:text-muted-foreground tg:[&_[cmdk-group-heading]]:text-xs", e),
317
- ...t
318
- });
319
- }
320
- function Pe({ className: e, ...t }) {
321
- return /* @__PURE__ */ x(L.Item, {
322
- "data-slot": "command-item",
323
- className: W("tg:relative tg:flex tg:cursor-default tg:select-none tg:items-center tg:gap-2 tg:rounded-sm tg:px-2 tg:py-1.5 tg:text-sm tg:outline-hidden tg:data-[disabled=true]:pointer-events-none tg:data-[selected=true]:bg-accent tg:data-[selected=true]:text-accent-foreground tg:data-[disabled=true]:opacity-50 tg:[&_svg:not([class*='size-'])]:size-4 tg:[&_svg:not([class*='text-'])]:text-muted-foreground tg:[&_svg]:pointer-events-none tg:[&_svg]:shrink-0", e),
324
- ...t
325
- });
326
- }
327
- //#endregion
328
- //#region src/renderer/features/TreegeRenderer/web/components/inputs/DefaultAddressInput.tsx
329
- var Fe = async (e, t) => {
330
- if (!e || e.trim().length < 3) return [];
331
- try {
332
- let n = await fetch(`https://nominatim.openstreetmap.org/search?q=${encodeURIComponent(e)}&format=jsonv2&addressdetails=1&limit=5`, { headers: {
333
- Accept: "application/json",
334
- "User-Agent": "Treege Renderer",
335
- ...t && { "Accept-Language": t }
336
- } });
337
- return n.ok ? (await n.json()).map((e) => ({
338
- label: e.display_name,
339
- value: e.display_name
340
- })) : [];
341
- } catch (e) {
342
- return console.error("Nominatim fetch error:", e), [];
343
- }
344
- }, Ie = (e) => !e || e.trim().length < 3 ? Promise.resolve([]) : new Promise((t) => {
345
- if (!window.google?.maps?.places) {
346
- console.warn("Google Places SDK not loaded yet"), t([]);
347
- return;
348
- }
349
- new window.google.maps.places.AutocompleteService().getPlacePredictions({ input: e }, (e, n) => {
350
- if (n !== google.maps.places.PlacesServiceStatus.OK || !e) {
351
- console.warn("Google Places API status:", n), t([]);
352
- return;
353
- }
354
- t(e.map((e) => ({
355
- label: e.description,
356
- value: e.description
357
- })));
358
- });
359
- }), Le = ({ node: e, value: t, setValue: n, error: r, label: i, placeholder: o, helperText: s, id: c, name: l }) => {
360
- let [u, f] = y(""), [p, m] = y([]), [_, v] = y(!1), { googleApiKey: C, language: w } = a(), T = d(), E = h((e) => {
361
- n(e.value), f(e.value), v(!1);
362
- }, [n]);
363
- g(() => {
364
- if (!u || u.trim().length < 3) {
365
- m([]);
366
- return;
367
- }
368
- let e = setTimeout(async () => {
369
- m(C ? await Ie(u) : await Fe(u, w));
370
- }, 300);
371
- return () => clearTimeout(e);
372
- }, [
373
- u,
374
- C,
375
- w
376
- ]);
377
- let D = h((e) => {
378
- n(e), f(e), e.length >= 3 && v(!0);
379
- }, [n]);
380
- return /* @__PURE__ */ S(b, { children: [C && /* @__PURE__ */ x("script", {
381
- async: !0,
382
- src: `https://maps.googleapis.com/maps/api/js?key=${C}&libraries=places`
383
- }), /* @__PURE__ */ S(K, {
384
- className: "tg:mb-4",
385
- children: [
386
- /* @__PURE__ */ S(X, {
387
- htmlFor: c,
388
- children: [i || e.data.name, e.data.required && /* @__PURE__ */ x("span", {
389
- className: "tg:text-red-500",
390
- children: "*"
391
- })]
392
- }),
393
- /* @__PURE__ */ S("div", {
394
- className: "tg:relative",
395
- children: [
396
- /* @__PURE__ */ x(Y, {
397
- type: "text",
398
- id: c,
399
- name: l,
400
- value: t || "",
401
- onChange: (e) => D(e.target.value),
402
- onFocus: () => {
403
- p.length > 0 && v(!0);
404
- },
405
- placeholder: o || T("renderer.defaultAddressInput.enterAddress"),
406
- className: "tg:pr-10",
407
- autoComplete: "off"
408
- }),
409
- /* @__PURE__ */ x(ne, { className: "tg:-translate-y-1/2 tg:pointer-events-none tg:absolute tg:top-1/2 tg:right-3 tg:h-4 tg:w-4 tg:text-muted-foreground" }),
410
- _ && /* @__PURE__ */ x("div", {
411
- className: "tg:absolute tg:z-50 tg:mt-1 tg:w-full tg:rounded-md tg:border tg:bg-popover tg:shadow-md",
412
- children: /* @__PURE__ */ x(ke, { children: /* @__PURE__ */ S(je, { children: [/* @__PURE__ */ x(Me, { children: T("renderer.defaultAddressInput.noAddressesFound") }), /* @__PURE__ */ x(Ne, { children: p.map((e, t) => /* @__PURE__ */ S(Pe, {
413
- value: e.value,
414
- onSelect: () => E(e),
415
- onMouseDown: (e) => e.preventDefault(),
416
- children: [/* @__PURE__ */ x(ne, { className: "tg:mr-2 tg:h-4 tg:w-4" }), e.label]
417
- }, t)) })] }) })
418
- })
419
- ]
420
- }),
421
- r && /* @__PURE__ */ x(J, { children: r }),
422
- s && !r && /* @__PURE__ */ x(q, { children: s })
423
- ]
424
- })] });
425
- }, Re = ({ node: e, value: t, setValue: n, error: r, label: i, placeholder: a, helperText: o, id: s }) => {
426
- let c = d(), [l, u] = y(!1), f = `${s}-trigger`, p = `${s}-error`, m = e.data.options || [], h = m.find((e) => e.value === t);
427
- return /* @__PURE__ */ S(K, {
428
- className: "tg:mb-4",
429
- children: [
430
- /* @__PURE__ */ S(X, {
431
- htmlFor: f,
432
- children: [i || e.data.name, e.data.required && /* @__PURE__ */ x("span", {
433
- className: "tg:text-red-500",
434
- children: "*"
435
- })]
436
- }),
437
- /* @__PURE__ */ S(Z, {
438
- open: l,
439
- onOpenChange: u,
440
- children: [/* @__PURE__ */ x(Q, {
441
- asChild: !0,
442
- children: /* @__PURE__ */ S(G, {
443
- id: f,
444
- variant: "outline",
445
- role: "combobox",
446
- "aria-expanded": l,
447
- "aria-invalid": !!r || void 0,
448
- "aria-describedby": r ? p : void 0,
449
- className: "tg:w-full tg:justify-between tg:font-normal",
450
- children: [t ? h?.label ? c(h.label) : t : a || c("renderer.defaultAutocompleteInput.selectOption"), /* @__PURE__ */ x(te, { className: "tg:ml-2 tg:size-4 tg:shrink-0 tg:opacity-50" })]
451
- })
452
- }), /* @__PURE__ */ x($, {
453
- className: "tg:w-full tg:p-0",
454
- align: "start",
455
- children: /* @__PURE__ */ S(ke, { children: [/* @__PURE__ */ x(Ae, { placeholder: a || c("renderer.defaultAutocompleteInput.search") }), /* @__PURE__ */ S(je, { children: [/* @__PURE__ */ x(Me, { children: c("renderer.defaultAutocompleteInput.noResults") }), /* @__PURE__ */ x(Ne, { children: m.map((e) => /* @__PURE__ */ S(Pe, {
456
- value: e.value,
457
- disabled: e.disabled,
458
- onSelect: (e) => {
459
- n(e === t ? "" : e), u(!1);
460
- },
461
- children: [/* @__PURE__ */ x(C, { className: W("tg:mr-2 tg:size-4", t === e.value ? "tg:opacity-100" : "tg:opacity-0") }), c(e.label)]
462
- }, e.value)) })] })] })
463
- })]
464
- }),
465
- r && /* @__PURE__ */ x(J, {
466
- id: p,
467
- children: r
468
- }),
469
- o && !r && /* @__PURE__ */ x(q, { children: o })
470
- ]
471
- });
472
- }, ze = ({ node: e, value: t, setValue: n, error: r, label: i, helperText: a, id: o, name: s }) => {
473
- let c = d();
474
- if (e.data.options && e.data.options.length > 0) {
475
- let l = Array.isArray(t) ? t.map(String) : [], u = (e, t) => {
476
- n(t ? [...l, e] : l.filter((t) => t !== e));
477
- };
478
- return /* @__PURE__ */ S(K, {
479
- className: "tg:mb-4",
480
- children: [
481
- /* @__PURE__ */ S(X, {
482
- className: "tg:mb-1",
483
- children: [i || e.data.name, e.data.required && /* @__PURE__ */ x("span", {
484
- className: "tg:text-red-500",
485
- children: "*"
486
- })]
487
- }),
488
- /* @__PURE__ */ x("div", {
489
- className: "tg:space-y-2",
490
- children: e.data.options.map((e, t) => {
491
- let n = c(e.description);
492
- return /* @__PURE__ */ S("div", {
493
- className: "tg:flex tg:items-start tg:gap-3",
494
- children: [/* @__PURE__ */ x(le, {
495
- id: `${o}-${e.value}`,
496
- name: s,
497
- checked: l.includes(String(e.value)),
498
- onCheckedChange: (t) => u(String(e.value), !!t),
499
- disabled: e.disabled,
500
- className: "tg:mt-0.5"
501
- }), /* @__PURE__ */ S("div", {
502
- className: "tg:flex tg:flex-col",
503
- children: [/* @__PURE__ */ x(X, {
504
- htmlFor: `${o}-${e.value}`,
505
- className: "tg:cursor-pointer tg:font-normal tg:text-sm",
506
- children: c(e.label) ? c(e.label) : e.value
507
- }), n && /* @__PURE__ */ x("span", {
508
- className: "tg:text-muted-foreground tg:text-xs",
509
- children: n
510
- })]
511
- })]
512
- }, e.value + t);
513
- })
514
- }),
515
- r && /* @__PURE__ */ x(J, { children: r }),
516
- a && !r && /* @__PURE__ */ x(q, { children: a })
517
- ]
518
- });
519
- }
520
- return /* @__PURE__ */ S(K, {
521
- className: "tg:mb-4",
522
- children: [/* @__PURE__ */ S("div", {
523
- className: "tg:flex tg:items-center tg:gap-3",
524
- children: [/* @__PURE__ */ x(le, {
525
- id: o,
526
- name: s,
527
- checked: typeof t == "boolean" ? t : !1,
528
- onCheckedChange: (e) => n(!!e)
529
- }), /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ S(X, {
530
- htmlFor: o,
531
- className: "tg:cursor-pointer tg:font-medium tg:text-sm",
532
- children: [i || e.data.name, e.data.required && /* @__PURE__ */ x("span", {
533
- className: "tg:text-red-500",
534
- children: "*"
535
- })]
536
- }), a && !r && /* @__PURE__ */ x(q, { children: a })] })]
537
- }), r && /* @__PURE__ */ x(J, { children: r })]
538
- });
539
- };
540
- //#endregion
541
- //#region src/shared/components/ui/calendar.tsx
542
- function Be({ className: e, classNames: t, showOutsideDays: n = !0, captionLayout: r = "label", buttonVariant: i = "ghost", formatters: a, components: o, ...s }) {
543
- let c = z();
544
- return /* @__PURE__ */ x(oe, {
545
- showOutsideDays: n,
546
- className: W("tg:group/calendar tg:bg-background tg:p-3 tg:[--cell-size:--spacing(8)] tg:[[data-slot=card-content]_&]:bg-transparent tg:[[data-slot=popover-content]_&]:bg-transparent", String.raw`tg:rtl:**:[.rdp-button\_next>svg]:rotate-180`, String.raw`tg:rtl:**:[.rdp-button\_previous>svg]:rotate-180`, e),
547
- captionLayout: r,
548
- formatters: {
549
- formatMonthDropdown: (e) => e.toLocaleString("default", { month: "short" }),
550
- ...a
551
- },
552
- classNames: {
553
- button_next: W(ce({ variant: i }), "tg:size-(--cell-size) tg:aria-disabled:opacity-50 tg:p-0 tg:select-none", c.button_next),
554
- button_previous: W(ce({ variant: i }), "tg:size-(--cell-size) tg:aria-disabled:opacity-50 tg:p-0 tg:select-none", c.button_previous),
555
- caption_label: W("tg:select-none tg:font-medium", r === "label" ? "tg:text-sm" : "tg:rounded-md tg:pl-2 tg:pr-1 tg:flex tg:items-center tg:gap-1 tg:text-sm tg:h-8 tg:[&>svg]:text-muted-foreground tg:[&>svg]:size-3.5", c.caption_label),
556
- day: W("tg:relative tg:w-full tg:h-full tg:p-0 tg:text-center tg:[&:first-child[data-selected=true]_button]:rounded-l-md tg:[&:last-child[data-selected=true]_button]:rounded-r-md tg:group/day tg:aspect-square tg:select-none", c.day),
557
- disabled: W("tg:text-muted-foreground tg:opacity-50", c.disabled),
558
- dropdown: W("tg:absolute tg:bg-popover tg:inset-0 tg:opacity-0", c.dropdown),
559
- dropdown_root: W("tg:relative tg:has-focus:border-ring tg:border tg:border-input tg:shadow-xs tg:has-focus:ring-ring/50 tg:has-focus:ring-[3px] tg:rounded-md", c.dropdown_root),
560
- dropdowns: W("tg:w-full tg:flex tg:items-center tg:text-sm tg:font-medium tg:justify-center tg:h-(--cell-size) tg:gap-1.5", c.dropdowns),
561
- hidden: W("tg:invisible", c.hidden),
562
- month: W("tg:flex tg:flex-col tg:w-full tg:gap-4", c.month),
563
- month_caption: W("tg:flex tg:items-center tg:justify-center tg:h-(--cell-size) tg:w-full tg:px-(--cell-size)", c.month_caption),
564
- months: W("tg:flex tg:gap-4 tg:flex-col tg:md:flex-row tg:relative", c.months),
565
- nav: W("tg:flex tg:items-center tg:gap-1 tg:w-full tg:absolute tg:top-0 tg:inset-x-0 tg:justify-between", c.nav),
566
- outside: W("tg:text-muted-foreground tg:aria-selected:text-muted-foreground", c.outside),
567
- range_end: W("tg:rounded-r-md tg:bg-accent", c.range_end),
568
- range_middle: W("tg:rounded-none", c.range_middle),
569
- range_start: W("tg:rounded-l-md tg:bg-accent", c.range_start),
570
- root: W("tg:w-fit", c.root),
571
- table: "tg:w-full tg:border-collapse",
572
- today: W("tg:bg-accent tg:text-accent-foreground tg:rounded-md tg:data-[selected=true]:rounded-none", c.today),
573
- week: W("tg:flex tg:w-full tg:mt-2", c.week),
574
- week_number: W("tg:text-[0.8rem] tg:select-none tg:text-muted-foreground", c.week_number),
575
- week_number_header: W("tg:select-none tg:w-(--cell-size)", c.week_number_header),
576
- weekday: W("tg:text-muted-foreground tg:rounded-md tg:flex-1 tg:font-normal tg:text-[0.8rem] tg:select-none", c.weekday),
577
- weekdays: W("tg:flex", c.weekdays),
578
- ...t
579
- },
580
- components: {
581
- Chevron: ({ className: e, orientation: t, ...n }) => x(t === "left" ? E : t === "right" ? D : T, {
582
- className: W("tg:size-4", e),
583
- ...n
584
- }),
585
- DayButton: Ve,
586
- Root: ({ className: e, rootRef: t, ...n }) => /* @__PURE__ */ x("div", {
587
- "data-slot": "calendar",
588
- ref: t,
589
- className: W(e),
590
- ...n
591
- }),
592
- WeekNumber: ({ children: e, ...t }) => /* @__PURE__ */ x("td", {
593
- ...t,
594
- children: /* @__PURE__ */ x("div", {
595
- className: "tg:flex tg:size-(--cell-size) tg:items-center tg:justify-center tg:text-center",
596
- children: e
597
- })
598
- }),
599
- ...o
600
- },
601
- ...s
602
- });
603
- }
604
- function Ve({ className: e, day: t, modifiers: n, ...r }) {
605
- let i = z(), a = p.useRef(null);
606
- return p.useEffect(() => {
607
- n.focused && a.current?.focus();
608
- }, [n.focused]), /* @__PURE__ */ x(G, {
609
- ref: a,
610
- variant: "ghost",
611
- size: "icon",
612
- "data-day": t.date.toLocaleDateString(),
613
- "data-selected-single": n.selected && !n.range_start && !n.range_end && !n.range_middle,
614
- "data-range-start": n.range_start,
615
- "data-range-end": n.range_end,
616
- "data-range-middle": n.range_middle,
617
- className: W("tg:flex tg:aspect-square tg:size-auto tg:w-full tg:min-w-(--cell-size) tg:flex-col tg:gap-1 tg:font-normal tg:leading-none tg:data-[range-end=true]:rounded-md tg:data-[range-middle=true]:rounded-none tg:data-[range-start=true]:rounded-md tg:data-[range-end=true]:rounded-r-md tg:data-[range-start=true]:rounded-l-md tg:data-[range-end=true]:bg-primary tg:data-[range-middle=true]:bg-accent tg:data-[range-start=true]:bg-primary tg:data-[selected-single=true]:bg-primary tg:data-[range-end=true]:text-primary-foreground tg:data-[range-middle=true]:text-accent-foreground tg:data-[range-start=true]:text-primary-foreground tg:data-[selected-single=true]:text-primary-foreground tg:group-data-[focused=true]/day:relative tg:group-data-[focused=true]/day:z-10 tg:group-data-[focused=true]/day:border-ring tg:group-data-[focused=true]/day:ring-[3px] tg:group-data-[focused=true]/day:ring-ring/50 tg:dark:hover:text-accent-foreground tg:[&>span]:text-xs tg:[&>span]:opacity-70", i.day, e),
618
- ...r
619
- });
620
- }
621
- //#endregion
622
- //#region src/renderer/features/TreegeRenderer/web/components/inputs/DefaultDateInput.tsx
623
- var He = ({ node: e, value: t, setValue: n, error: r, label: i, placeholder: a, helperText: o, id: s, name: c }) => {
624
- let [l, u] = y(!1), f = d(), p = t ? new Date(t) : void 0;
625
- return /* @__PURE__ */ S(K, {
626
- className: "tg:mb-4",
627
- children: [
628
- /* @__PURE__ */ S(X, {
629
- htmlFor: s,
630
- children: [i || e.data.name, e.data.required && /* @__PURE__ */ x("span", {
631
- className: "tg:text-red-500",
632
- children: "*"
633
- })]
634
- }),
635
- /* @__PURE__ */ S(Z, {
636
- open: l,
637
- onOpenChange: u,
638
- children: [/* @__PURE__ */ x(Q, {
639
- asChild: !0,
640
- children: /* @__PURE__ */ S(G, {
641
- variant: "outline",
642
- id: s,
643
- name: c,
644
- className: "tg:w-full tg:justify-between tg:font-normal",
645
- children: [p ? p.toLocaleDateString() : a || f("renderer.defaultInputs.selectDate"), /* @__PURE__ */ x(T, { className: "tg:size-4" })]
646
- })
647
- }), /* @__PURE__ */ x($, {
648
- className: "tg:w-auto tg:overflow-hidden tg:p-0",
649
- align: "start",
650
- children: /* @__PURE__ */ x(Be, {
651
- mode: "single",
652
- selected: p,
653
- captionLayout: "dropdown",
654
- disabled: (t) => {
655
- if (e.data.disablePast) {
656
- let e = /* @__PURE__ */ new Date();
657
- return e.setHours(0, 0, 0, 0), t < e;
658
- }
659
- return !1;
660
- },
661
- onSelect: (e) => {
662
- n(e ? e.toISOString() : ""), u(!1);
663
- }
664
- })
665
- })]
666
- }),
667
- r && /* @__PURE__ */ x(J, { children: r }),
668
- o && !r && /* @__PURE__ */ x(q, { children: o })
669
- ]
670
- });
671
- }, Ue = ({ node: e, value: t, setValue: n, error: r, label: i, helperText: a, id: o }) => {
672
- let [s, c] = y(!1), l = d(), u = Array.isArray(t) ? t : [], f = u[0] ? new Date(u[0]) : void 0, p = u[1] ? new Date(u[1]) : void 0;
673
- return /* @__PURE__ */ S(K, {
674
- className: "tg:mb-4",
675
- children: [
676
- /* @__PURE__ */ S(X, {
677
- htmlFor: o,
678
- children: [i || e.data.name, e.data.required && /* @__PURE__ */ x("span", {
679
- className: "tg:text-red-500",
680
- children: "*"
681
- })]
682
- }),
683
- /* @__PURE__ */ S(Z, {
684
- open: s,
685
- onOpenChange: c,
686
- children: [/* @__PURE__ */ x(Q, {
687
- asChild: !0,
688
- children: /* @__PURE__ */ S(G, {
689
- id: o,
690
- variant: "outline",
691
- className: "tg:w-full tg:justify-between tg:font-normal",
692
- children: [f && p ? `${f.toLocaleDateString()} - ${p.toLocaleDateString()}` : f ? f.toLocaleDateString() : l("renderer.defaultInputs.selectDateRange"), /* @__PURE__ */ x(T, { className: "tg:size-4" })]
693
- })
694
- }), /* @__PURE__ */ x($, {
695
- className: "tg:w-auto tg:overflow-hidden tg:p-0",
696
- align: "start",
697
- children: /* @__PURE__ */ x(Be, {
698
- mode: "range",
699
- selected: {
700
- from: f,
701
- to: p
702
- },
703
- captionLayout: "dropdown",
704
- disabled: (t) => {
705
- if (e.data.disablePast) {
706
- let e = /* @__PURE__ */ new Date();
707
- return e.setHours(0, 0, 0, 0), t < e;
708
- }
709
- return !1;
710
- },
711
- onSelect: (e) => {
712
- n([e?.from ? e.from.toISOString() : void 0, e?.to ? e.to.toISOString() : void 0]);
713
- },
714
- numberOfMonths: 2
715
- })
716
- })]
717
- }),
718
- r && /* @__PURE__ */ x(J, { children: r }),
719
- a && !r && /* @__PURE__ */ x(q, { children: a })
720
- ]
721
- });
722
- }, We = ({ node: e, setValue: t, error: r, label: i, placeholder: a, helperText: o, name: s, id: c }) => /* @__PURE__ */ S(K, {
723
- className: "tg:mb-4",
724
- children: [
725
- /* @__PURE__ */ S(X, {
726
- htmlFor: c,
727
- children: [i || e.data.name, e.data.required && /* @__PURE__ */ x("span", {
728
- className: "tg:text-red-500",
729
- children: "*"
730
- })]
731
- }),
732
- /* @__PURE__ */ x(Y, {
733
- type: "file",
734
- name: s,
735
- id: c,
736
- onChange: async (r) => {
737
- let { files: i } = r.target;
738
- if (!i || i.length === 0) {
739
- t(null);
740
- return;
741
- }
742
- if (e.data.multiple) {
743
- t(await n(Array.from(i)));
744
- return;
745
- }
746
- t(await l(i[0]));
747
- },
748
- multiple: e.data.multiple,
749
- placeholder: a
750
- }),
751
- r && /* @__PURE__ */ x(J, { children: r }),
752
- o && !r && /* @__PURE__ */ x(q, { children: o })
753
- ]
754
- }), Ge = ({ value: e, name: t, id: n }) => /* @__PURE__ */ x(Y, {
755
- type: "hidden",
756
- id: n,
757
- name: t,
758
- value: e ?? ""
759
- });
760
- //#endregion
761
- //#region src/shared/components/ui/tooltip.tsx
762
- function Ke({ delayDuration: e = 0, ...t }) {
763
- return /* @__PURE__ */ x(B.Provider, {
764
- "data-slot": "tooltip-provider",
765
- delayDuration: e,
766
- ...t
767
- });
768
- }
769
- function qe({ ...e }) {
770
- return /* @__PURE__ */ x(Ke, { children: /* @__PURE__ */ x(B.Root, {
771
- "data-slot": "tooltip",
772
- ...e
773
- }) });
774
- }
775
- function Je({ ...e }) {
776
- return /* @__PURE__ */ x(B.Trigger, {
777
- "data-slot": "tooltip-trigger",
778
- ...e
779
- });
780
- }
781
- function Ye({ className: e, sideOffset: t = 0, children: n, ...r }) {
782
- return /* @__PURE__ */ x(B.Portal, { children: /* @__PURE__ */ S(B.Content, {
783
- "data-slot": "tooltip-content",
784
- sideOffset: t,
785
- className: W("tg:fade-in-0 tg:zoom-in-95 tg:data-[state=closed]:fade-out-0 tg:data-[state=closed]:zoom-out-95 tg:data-[side=bottom]:slide-in-from-top-2 tg:data-[side=left]:slide-in-from-right-2 tg:data-[side=right]:slide-in-from-left-2 tg:data-[side=top]:slide-in-from-bottom-2 tg:z-50 tg:w-fit tg:origin-(--radix-tooltip-content-transform-origin) tg:animate-in tg:text-balance tg:rounded-md tg:bg-foreground tg:px-3 tg:py-1.5 tg:text-background tg:text-xs tg:data-[state=closed]:animate-out", e),
786
- ...r,
787
- children: [n, /* @__PURE__ */ x(B.Arrow, { className: "tg:z-50 tg:size-2.5 tg:translate-y-[calc(-50%_-_2px)] tg:rotate-45 tg:rounded-[2px] tg:bg-foreground tg:fill-foreground" })]
788
- }) });
789
- }
790
- //#endregion
791
- //#region src/renderer/features/TreegeRenderer/web/components/inputs/DefaultHttpInput.tsx
792
- var Xe = (e, t) => t ? t.split(".").reduce((e, t) => {
793
- if (e == null) return;
794
- let n = t.match(/^(\w+)\[(\d+)]$/);
795
- if (n) {
796
- let [, t, r] = n, i = e[t];
797
- return Array.isArray(i) ? i[Number.parseInt(r, 10)] : i;
798
- }
799
- return e[t];
800
- }, e) : e, Ze = (e) => {
801
- let t = e.matchAll(/{{([\w-]+)}}/g);
802
- return Array.from(t, (e) => e[1]);
803
- }, Qe = (e, t) => Ze(e).every((e) => {
804
- let n = t[e];
805
- return n != null && n !== "";
806
- }), $e = (e, t, n = !1) => e.replace(/{{([\w-]+)}}/g, (e, r) => {
807
- let i = t[r], a = i == null ? "" : String(i);
808
- return n ? encodeURIComponent(a) : a;
809
- }), et = ({ node: t, value: n, setValue: i, error: o, label: s, placeholder: c, helperText: l, id: u, name: p }) => {
810
- let [m, w] = y(!1), [T, E] = y(null), [D, ee] = y([]), [O, ne] = y(""), [re, ie] = y(!1), { formValues: A, inputNodes: j } = a(), M = d(), { httpConfig: N } = t.data, P = v(!1), ae = v(""), F = v(N), I = v(A), L = v(j), R = v(i), oe = v(null), z = v(null), B = _(() => N?.url ? Ze(N.url) : [], [N?.url]), V = B.length > 0, se = _(() => B.map((e) => `${e}:${String(A[e] ?? "")}`).join("|"), [B, A]), H = _(() => N?.url ? V ? Qe(N.url, A) : !0 : !1, [
811
- N?.url,
812
- V,
813
- A
814
- ]), U = h(async (t) => {
815
- z.current && z.current.abort();
816
- let n = new AbortController();
817
- z.current = n;
818
- let i = F.current, a = I.current, o = R.current;
819
- if (!i?.url) {
820
- E(M("renderer.defaultHttpInput.noUrlConfigured")), z.current = null;
821
- return;
822
- }
823
- if (i.url && !Qe(i.url, a)) {
824
- z.current = null;
825
- return;
826
- }
827
- w(!0), E(null);
828
- try {
829
- let s = $e(i.url, a, !0), c = i.searchParam && t ? `${s}${s.includes("?") ? "&" : "?"}${i.searchParam}=${encodeURIComponent(t)}` : s, l = {};
830
- i.headers?.forEach((e) => {
831
- l[e.key] = $e(e.value, a);
832
- });
833
- let u = [
834
- "POST",
835
- "PUT",
836
- "PATCH"
837
- ].includes(i.method || "") ? i.sendAllFormValues ? JSON.stringify(e(a, L.current)) : i.body ? $e(i.body, a) : void 0 : void 0, d = setTimeout(() => n.abort(), 3e4), f = await fetch(c, {
838
- body: u || void 0,
839
- headers: {
840
- "Content-Type": "application/json",
841
- ...l
842
- },
843
- method: i.method || "GET",
844
- signal: n.signal
845
- });
846
- if (clearTimeout(d), !f.ok) {
847
- E(`HTTP Error ${f.status}: ${f.statusText}`), w(!1);
848
- return;
849
- }
850
- let p = r(await f.json()), m = i.responsePath ? Xe(p, i.responsePath) : p;
851
- if (i.responseMapping && Array.isArray(m)) {
852
- let { valueField: e = "value", labelField: t = "label" } = i.responseMapping;
853
- ee(m.map((n) => ({
854
- label: String(Xe(n, t) || ""),
855
- value: String(Xe(n, e) || "")
856
- })));
857
- } else o(typeof m == "string" ? m : JSON.stringify(m));
858
- } catch (e) {
859
- if (e instanceof Error && e.name === "AbortError") return;
860
- E(e instanceof Error ? e.message : M("renderer.defaultHttpInput.fetchFailed")), console.error("HTTP Input fetch error:", e);
861
- } finally {
862
- w(!1), z.current = null;
863
- }
864
- }, [M]);
865
- if (g(() => {
866
- F.current = N, I.current = A, L.current = j, R.current = i, oe.current = U;
867
- }, [
868
- N,
869
- A,
870
- j,
871
- i,
872
- U
873
- ]), g(() => () => {
874
- z.current && z.current.abort();
875
- }, []), g(() => {
876
- if (P.current) return;
877
- P.current = !0;
878
- let e = F.current, t = I.current, n = oe.current, r = e?.url && Qe(e.url, t);
879
- e?.fetchOnMount && r && n && (n(), e.url && (ae.current = Ze(e.url).map((e) => `${e}:${String(t[e] ?? "")}`).join("|")));
880
- }, []), g(() => {
881
- if (!P.current || !V || ae.current === se || !H) return;
882
- let e = setTimeout(() => {
883
- U(), ae.current = se;
884
- }, 500);
885
- return () => clearTimeout(e);
886
- }, [
887
- se,
888
- V,
889
- H,
890
- U
891
- ]), g(() => {
892
- if (!(N?.searchParam && O)) return;
893
- let e = setTimeout(() => {
894
- U(O);
895
- }, 300);
896
- return () => clearTimeout(e);
897
- }, [
898
- O,
899
- N?.searchParam,
900
- U
901
- ]), N?.responseMapping) {
902
- let e = Array.isArray(n) ? n[0] : n, r = D.find((t) => t.value === e);
903
- if (N.searchParam) {
904
- let e = m && N?.showLoading ? /* @__PURE__ */ S("div", {
905
- className: "tg:flex tg:items-center tg:gap-2",
906
- children: [/* @__PURE__ */ x(k, { className: "tg:h-4 tg:w-4 tg:animate-spin" }), /* @__PURE__ */ x("span", {
907
- className: "tg:text-muted-foreground",
908
- children: r?.label || c || M("renderer.defaultHttpInput.search")
909
- })]
910
- }) : r?.label || c || M("renderer.defaultHttpInput.search");
911
- return /* @__PURE__ */ S(K, {
912
- className: "tg:mb-4",
913
- children: [
914
- /* @__PURE__ */ S(X, { children: [s || t.data.name, t.data.required && /* @__PURE__ */ x("span", {
915
- className: "tg:text-red-500",
916
- children: "*"
917
- })] }),
918
- /* @__PURE__ */ S(Z, {
919
- open: re,
920
- onOpenChange: ie,
921
- children: [/* @__PURE__ */ x(Q, {
922
- asChild: !0,
923
- children: /* @__PURE__ */ S(G, {
924
- variant: "outline",
925
- role: "combobox",
926
- "aria-expanded": re,
927
- className: "tg:w-full tg:justify-between",
928
- children: [e, /* @__PURE__ */ x(te, { className: "tg:ml-2 tg:h-4 tg:w-4 tg:shrink-0 tg:opacity-50" })]
929
- })
930
- }), /* @__PURE__ */ x($, {
931
- className: "tg:w-[300px] tg:p-0",
932
- align: "start",
933
- children: /* @__PURE__ */ S(ke, {
934
- shouldFilter: !1,
935
- children: [/* @__PURE__ */ x(Ae, {
936
- placeholder: M("renderer.defaultHttpInput.search"),
937
- value: O,
938
- onValueChange: (e) => {
939
- ne(e), E(null);
940
- }
941
- }), /* @__PURE__ */ S(je, { children: [
942
- m && /* @__PURE__ */ x("div", {
943
- className: "tg:flex tg:items-center tg:justify-center tg:p-4",
944
- children: /* @__PURE__ */ x(k, { className: "tg:h-4 tg:w-4 tg:animate-spin" })
945
- }),
946
- !m && T && /* @__PURE__ */ S("div", {
947
- className: "tg:p-4 tg:text-destructive tg:text-sm",
948
- children: [/* @__PURE__ */ x("div", { children: T }), /* @__PURE__ */ x("button", {
949
- type: "button",
950
- onClick: () => U(O),
951
- className: "tg:mt-2 tg:block tg:text-primary tg:hover:underline",
952
- children: M("renderer.defaultHttpInput.retry")
953
- })]
954
- }),
955
- !(m || T) && /* @__PURE__ */ S(b, { children: [/* @__PURE__ */ x(Me, { children: M("renderer.defaultHttpInput.noResults") }), /* @__PURE__ */ x(Ne, { children: D.map((e) => /* @__PURE__ */ S(Pe, {
956
- value: e.value,
957
- onSelect: () => {
958
- i(e.value), ie(!1);
959
- },
960
- children: [/* @__PURE__ */ x(C, { className: W("tg:mr-2 tg:h-4 tg:w-4", n === e.value ? "tg:opacity-100" : "tg:opacity-0") }), e.label]
961
- }, e.value)) })] })
962
- ] })]
963
- })
964
- })]
965
- }),
966
- o && /* @__PURE__ */ x(J, { children: o }),
967
- l && !o && /* @__PURE__ */ x(q, { children: l })
968
- ]
969
- });
970
- }
971
- let a = m && N?.showLoading, d = B.filter((e) => {
972
- let t = A[e];
973
- return t == null || t === "";
974
- }), h = d.map((e) => f(e, j) || e), g = D.length === 0 && !a ? T || (d.length > 0 ? `${M("renderer.defaultHttpInput.waitingForRequiredFields")}: ${h.join(", ")}` : M("renderer.defaultHttpInput.noDataAvailable")) : void 0, _ = /* @__PURE__ */ S(ue, {
975
- value: Array.isArray(n) ? n[0] ?? "" : n ?? "",
976
- onValueChange: (e) => i(e),
977
- disabled: a || D.length === 0,
978
- name: p,
979
- children: [/* @__PURE__ */ S(pe, {
980
- id: u,
981
- name: p,
982
- className: "tg:w-full",
983
- children: [a && /* @__PURE__ */ x(k, { className: "tg:mr-2 tg:h-4 tg:w-4 tg:animate-spin" }), /* @__PURE__ */ x(fe, { placeholder: c || M("renderer.defaultHttpInput.selectOption") })]
984
- }), /* @__PURE__ */ x(me, { children: /* @__PURE__ */ x(de, { children: D.map((e, t) => /* @__PURE__ */ x(ge, {
985
- value: e.value,
986
- children: e.label
987
- }, e.value + t)) }) })]
988
- });
989
- return /* @__PURE__ */ S(K, {
990
- className: "tg:mb-4",
991
- children: [
992
- /* @__PURE__ */ S(X, {
993
- htmlFor: u,
994
- children: [s || t.data.name, t.data.required && /* @__PURE__ */ x("span", {
995
- className: "tg:text-red-500",
996
- children: "*"
997
- })]
998
- }),
999
- g ? /* @__PURE__ */ x(Ke, { children: /* @__PURE__ */ S(qe, { children: [/* @__PURE__ */ x(Je, {
1000
- asChild: !0,
1001
- children: /* @__PURE__ */ x("div", {
1002
- className: "tg:w-full",
1003
- children: _
1004
- })
1005
- }), /* @__PURE__ */ x(Ye, { children: /* @__PURE__ */ x("p", { children: g }) })] }) }) : _,
1006
- o && /* @__PURE__ */ x(J, { children: o }),
1007
- l && !o && /* @__PURE__ */ x(q, { children: l })
1008
- ]
1009
- });
1010
- }
1011
- return /* @__PURE__ */ S(K, {
1012
- className: "tg:mb-4",
1013
- children: [
1014
- /* @__PURE__ */ S(X, {
1015
- htmlFor: u,
1016
- children: [s || t.data.name, t.data.required && /* @__PURE__ */ x("span", {
1017
- className: "tg:text-red-500",
1018
- children: "*"
1019
- })]
1020
- }),
1021
- /* @__PURE__ */ x(Y, {
1022
- type: "text",
1023
- name: p,
1024
- id: u,
1025
- value: typeof n == "string" ? n : JSON.stringify(n),
1026
- readOnly: !0,
1027
- disabled: !0
1028
- }),
1029
- o && /* @__PURE__ */ x(J, { children: o }),
1030
- l && !o && /* @__PURE__ */ x(q, { children: l })
1031
- ]
1032
- });
1033
- }, tt = ({ node: e, value: t, setValue: n, error: r, label: i, placeholder: a, helperText: o, name: s, id: c }) => /* @__PURE__ */ S(K, {
1034
- className: "tg:mb-4",
1035
- children: [
1036
- /* @__PURE__ */ S(X, {
1037
- htmlFor: c,
1038
- children: [i || e.data.name, e.data.required && /* @__PURE__ */ x("span", {
1039
- className: "tg:text-red-500",
1040
- children: "*"
1041
- })]
1042
- }),
1043
- /* @__PURE__ */ x(Y, {
1044
- id: c,
1045
- type: "number",
1046
- name: s,
1047
- value: t ?? "",
1048
- onChange: (e) => n(e.target.value === "" ? null : Number(e.target.value)),
1049
- placeholder: a
1050
- }),
1051
- r && /* @__PURE__ */ x(J, { children: r }),
1052
- o && !r && /* @__PURE__ */ x(q, { children: o })
1053
- ]
1054
- }), nt = ({ node: e, value: t, setValue: n, error: r, label: i, placeholder: a, helperText: o, name: s, id: c }) => /* @__PURE__ */ S(K, {
1055
- className: "tg:mb-4",
1056
- children: [
1057
- /* @__PURE__ */ S(X, {
1058
- htmlFor: c,
1059
- children: [i || e.data.name, e.data.required && /* @__PURE__ */ x("span", {
1060
- className: "tg:text-red-500",
1061
- children: "*"
1062
- })]
1063
- }),
1064
- /* @__PURE__ */ x(Y, {
1065
- id: c,
1066
- name: s,
1067
- type: "password",
1068
- value: t ?? "",
1069
- onChange: (e) => n(e.target.value),
1070
- placeholder: a,
1071
- autoComplete: "new-password"
1072
- }),
1073
- r && /* @__PURE__ */ x(J, { children: r }),
1074
- o && !r && /* @__PURE__ */ x(q, { children: o })
1075
- ]
1076
- });
1077
- //#endregion
1078
- //#region src/shared/components/ui/radio-group.tsx
1079
- function rt({ className: e, ...t }) {
1080
- return /* @__PURE__ */ x(V.Root, {
1081
- "data-slot": "radio-group",
1082
- className: W("tg:grid tg:gap-3", e),
1083
- ...t
1084
- });
1085
- }
1086
- function it({ className: e, ...t }) {
1087
- return /* @__PURE__ */ x(V.Item, {
1088
- "data-slot": "radio-group-item",
1089
- className: W("tg:aspect-square tg:size-4 tg:shrink-0 tg:rounded-full tg:border tg:border-input tg:text-primary tg:shadow-xs tg:outline-none tg:transition-[color,box-shadow] tg:focus-visible:border-ring tg:focus-visible:ring-[3px] tg:focus-visible:ring-ring/50 tg:disabled:cursor-not-allowed tg:disabled:opacity-50 tg:aria-invalid:border-destructive tg:aria-invalid:ring-destructive/20 tg:dark:bg-input/30 tg:dark:aria-invalid:ring-destructive/40", e),
1090
- ...t,
1091
- children: /* @__PURE__ */ x(V.Indicator, {
1092
- "data-slot": "radio-group-indicator",
1093
- className: "tg:relative tg:flex tg:items-center tg:justify-center",
1094
- children: /* @__PURE__ */ x(O, { className: "tg:-translate-x-1/2 tg:-translate-y-1/2 tg:absolute tg:top-1/2 tg:left-1/2 tg:size-2 tg:fill-primary" })
1095
- })
1096
- });
1097
- }
1098
- //#endregion
1099
- //#region src/renderer/features/TreegeRenderer/web/components/inputs/DefaultRadioInput.tsx
1100
- var at = ({ node: e, value: t, setValue: n, error: r, label: i, helperText: a, id: o, name: s }) => {
1101
- let c = d(), l = t ? String(t) : "", u = e.data.variant === "card";
1102
- return /* @__PURE__ */ S(K, {
1103
- className: "tg:mb-4",
1104
- children: [
1105
- /* @__PURE__ */ S(X, {
1106
- className: "tg:mb-1",
1107
- htmlFor: o,
1108
- children: [i || e.data.name, e.data.required && /* @__PURE__ */ x("span", {
1109
- className: "tg:text-red-500",
1110
- children: "*"
1111
- })]
1112
- }),
1113
- /* @__PURE__ */ x(rt, {
1114
- value: l,
1115
- onValueChange: (e) => n(e),
1116
- id: o,
1117
- name: s,
1118
- className: u ? "tg:flex tg:flex-col tg:gap-2" : void 0,
1119
- children: e.data.options?.map((e, t) => {
1120
- let n = `${o}-${e.value}`, r = c(e.label) || e.value, i = c(e.description), a = l === String(e.value);
1121
- return u ? /* @__PURE__ */ S(X, {
1122
- htmlFor: n,
1123
- className: W("tg:flex tg:cursor-pointer tg:items-start tg:gap-3 tg:rounded-md tg:border tg:p-3 tg:transition-colors", "tg:hover:border-primary/50", a && "tg:border-primary tg:bg-primary/5", e.disabled && "tg:pointer-events-none tg:opacity-50"),
1124
- children: [
1125
- /* @__PURE__ */ x(it, {
1126
- value: String(e.value),
1127
- id: n,
1128
- disabled: e.disabled,
1129
- className: "tg:mt-1"
1130
- }),
1131
- e.image && /* @__PURE__ */ x("img", {
1132
- src: e.image,
1133
- alt: "",
1134
- className: "tg:h-10 tg:w-10 tg:shrink-0 tg:rounded tg:object-cover"
1135
- }),
1136
- /* @__PURE__ */ S("div", {
1137
- className: "tg:flex tg:min-w-0 tg:flex-col",
1138
- children: [/* @__PURE__ */ x("span", {
1139
- className: "tg:font-medium tg:text-sm",
1140
- children: r
1141
- }), i && /* @__PURE__ */ x("span", {
1142
- className: "tg:text-muted-foreground tg:text-xs",
1143
- children: i
1144
- })]
1145
- })
1146
- ]
1147
- }, e.value + t) : /* @__PURE__ */ S("div", {
1148
- className: "tg:flex tg:items-start tg:space-x-2",
1149
- children: [
1150
- /* @__PURE__ */ x(it, {
1151
- value: String(e.value),
1152
- id: n,
1153
- disabled: e.disabled,
1154
- className: "tg:mt-0.5"
1155
- }),
1156
- e.image && /* @__PURE__ */ x("img", {
1157
- src: e.image,
1158
- alt: "",
1159
- className: "tg:h-8 tg:w-8 tg:rounded tg:object-cover"
1160
- }),
1161
- /* @__PURE__ */ S("div", {
1162
- className: "tg:flex tg:flex-col",
1163
- children: [/* @__PURE__ */ x(X, {
1164
- htmlFor: n,
1165
- className: "tg:cursor-pointer tg:font-normal tg:text-sm",
1166
- children: r
1167
- }), i && /* @__PURE__ */ x("span", {
1168
- className: "tg:text-muted-foreground tg:text-xs",
1169
- children: i
1170
- })]
1171
- })
1172
- ]
1173
- }, e.value + t);
1174
- })
1175
- }),
1176
- r && /* @__PURE__ */ x(J, { children: r }),
1177
- a && !r && /* @__PURE__ */ x(q, { children: a })
1178
- ]
1179
- });
1180
- }, ot = ({ node: e, value: t, setValue: n, error: r, label: i, placeholder: a, helperText: o, name: s, id: c }) => {
1181
- let l = d(), u = t ? String(t) : "";
1182
- return /* @__PURE__ */ S(K, {
1183
- className: "tg:mb-4",
1184
- children: [
1185
- /* @__PURE__ */ S(X, {
1186
- htmlFor: c,
1187
- children: [i || e.data.name, e.data.required && /* @__PURE__ */ x("span", {
1188
- className: "tg:text-red-500",
1189
- children: "*"
1190
- })]
1191
- }),
1192
- /* @__PURE__ */ S(ue, {
1193
- name: s,
1194
- value: u,
1195
- onValueChange: (e) => n(e),
1196
- children: [/* @__PURE__ */ x(pe, {
1197
- id: c,
1198
- name: s,
1199
- className: "tg:w-full",
1200
- children: /* @__PURE__ */ x(fe, { placeholder: a || l("renderer.defaultSelectInput.selectOption") })
1201
- }), /* @__PURE__ */ x(me, { children: /* @__PURE__ */ x(de, { children: e.data.options?.map((e, t) => /* @__PURE__ */ x(ge, {
1202
- value: String(e.value),
1203
- disabled: e.disabled,
1204
- children: l(e.label) ? l(e.label) : e.value
1205
- }, `${e.value}-${t}`)) }) })]
1206
- }),
1207
- r && /* @__PURE__ */ x(J, { children: r }),
1208
- o && !r && /* @__PURE__ */ x(q, { children: o })
1209
- ]
1210
- });
1211
- }, st = ({ children: e, onSubmit: t }) => /* @__PURE__ */ x("form", {
1212
- onSubmit: t,
1213
- className: "tg:mx-auto tg:max-w-2xl tg:gap-y-3",
1214
- children: e
1215
- }), ct = ({ node: e, children: t }) => {
1216
- let n = d()(e.data.label);
1217
- return /* @__PURE__ */ S("section", {
1218
- className: "tg:mb-6 tg:rounded-lg tg:border tg:p-4",
1219
- children: [n && /* @__PURE__ */ x("h3", {
1220
- className: "tg:mb-4 tg:font-semibold tg:text-lg",
1221
- children: n
1222
- }), t]
1223
- });
1224
- }, lt = m(({ label: e, id: t, disabled: n, onBlur: r, onClick: i, onFocus: a, onPointerDown: o, onPointerLeave: s, onPointerMove: c, ...l }, u) => {
1225
- let f = d();
1226
- return /* @__PURE__ */ x("button", {
1227
- ref: u,
1228
- id: t,
1229
- onBlur: r,
1230
- onClick: i,
1231
- onFocus: a,
1232
- onPointerDown: o,
1233
- disabled: n,
1234
- onPointerLeave: s,
1235
- onPointerMove: c,
1236
- type: "submit",
1237
- className: "tg:mt-4 tg:rounded-md tg:bg-blue-500 tg:px-4 tg:py-2 tg:font-medium tg:text-white tg:transition-colors tg:hover:bg-blue-600 tg:focus:outline-none tg:focus:ring-2 tg:focus:ring-blue-500 tg:focus:ring-offset-2 tg:disabled:cursor-not-allowed tg:disabled:opacity-50",
1238
- ...l,
1239
- children: e || f("renderer.defaultSubmitButton.submit")
1240
- });
1241
- });
1242
- //#endregion
1243
- //#region src/shared/components/ui/separator.tsx
1244
- function ut({ className: e, orientation: t = "horizontal", decorative: n = !0, ...r }) {
1245
- return /* @__PURE__ */ x(se.Root, {
1246
- "data-slot": "separator",
1247
- decorative: n,
1248
- orientation: t,
1249
- className: W("tg:shrink-0 tg:bg-border tg:data-[orientation=horizontal]:h-px tg:data-[orientation=vertical]:h-full tg:data-[orientation=horizontal]:w-full tg:data-[orientation=vertical]:w-px", e),
1250
- ...r
1251
- });
1252
- }
1253
- //#endregion
1254
- //#region src/renderer/features/TreegeRenderer/web/components/DefaultUI.tsx
1255
- var dt = ({ node: e }) => {
1256
- let t = d()(e.data?.label);
1257
- return t ? /* @__PURE__ */ S("div", {
1258
- className: "tg:flex tg:items-center tg:gap-x-3",
1259
- children: [
1260
- /* @__PURE__ */ x(ut, { className: "tg:my-8 tg:flex-1" }),
1261
- /* @__PURE__ */ x("h4", {
1262
- className: "tg:font-semibold tg:text-sm",
1263
- children: t
1264
- }),
1265
- /* @__PURE__ */ x(ut, { className: "tg:my-8 tg:flex-1" })
1266
- ]
1267
- }) : /* @__PURE__ */ x(ut, { className: "tg:my-8" });
1268
- }, ft = ({ node: e }) => {
1269
- let { edges: n } = a(), r = d();
1270
- return /* @__PURE__ */ x("h2", {
1271
- className: W("tg:mb-5 tg:font-bold tg:text-2xl", !t(e.id, n) && "tg:mt-10"),
1272
- children: r(e.data?.label)
1273
- });
1274
- }, pt = {
1275
- divider: dt,
1276
- title: ft
1277
- }, mt = ({ children: e, missingFields: t = [] }) => {
1278
- let n = t.length > 0, r = d();
1279
- return n ? /* @__PURE__ */ x(Ke, { children: /* @__PURE__ */ S(qe, { children: [/* @__PURE__ */ x(Je, {
1280
- asChild: !0,
1281
- children: e
1282
- }), /* @__PURE__ */ x(Ye, { children: /* @__PURE__ */ S("div", {
1283
- className: "tg:space-y-1",
1284
- children: [/* @__PURE__ */ S("p", {
1285
- className: "tg:font-semibold",
1286
- children: [r("renderer.defaultSubmitButton.requiredFieldsMissing"), ":"]
1287
- }), /* @__PURE__ */ x("ul", {
1288
- className: "tg:list-inside tg:list-disc",
1289
- children: t.map((e, t) => /* @__PURE__ */ x("li", { children: e }, t))
1290
- })]
1291
- }) })] }) }) : e;
1292
- }, ht = ({ components: e, className: t, flows: n, googleApiKey: r, language: a, onChange: o, onSubmit: l, theme: d, validate: f, validationMode: p, initialValues: m = {} }) => {
1293
- let { canSubmit: g, clearSubmitMessage: _, config: v, firstErrorFieldId: y, formErrors: b, formValues: C, handleSubmit: w, inputNodes: T, isSubmitting: E, mergedFlow: D, missingRequiredFields: ee, setFieldValue: te, submitMessage: O, t: k, visibleNodes: ne, visibleRootNodes: re } = i({
1294
- components: e,
1295
- flows: n,
1296
- googleApiKey: r,
1297
- initialValues: m,
1298
- language: a,
1299
- onChange: o,
1300
- onSubmit: l,
1301
- theme: d,
1302
- validate: f,
1303
- validationMode: p
1304
- }), { FormWrapper: ie, SubmitButton: A, SubmitButtonWrapper: j, renderNode: M } = c({
1305
- config: v,
1306
- DefaultFormWrapper: st,
1307
- DefaultGroup: ct,
1308
- DefaultSubmitButton: lt,
1309
- DefaultSubmitButtonWrapper: mt,
1310
- defaultInputRenderers: wt,
1311
- defaultUI: pt,
1312
- formErrors: b,
1313
- formValues: C,
1314
- missingRequiredFields: ee,
1315
- setFieldValue: te,
1316
- visibleNodes: ne
1317
- }), N = h(async (e) => {
1318
- e.preventDefault(), !await w() && y && document.getElementById(y)?.focus();
1319
- }, [w, y]);
1320
- return /* @__PURE__ */ x("div", {
1321
- className: W("treege", t),
1322
- children: /* @__PURE__ */ x(u, {
1323
- theme: v.theme,
1324
- storageKey: "treege-renderer-theme",
1325
- children: /* @__PURE__ */ S(s, {
1326
- value: {
1327
- flows: D,
1328
- formErrors: b,
1329
- formValues: C,
1330
- googleApiKey: v.googleApiKey,
1331
- inputNodes: T,
1332
- language: v.language,
1333
- setFieldValue: te
1334
- },
1335
- children: [/* @__PURE__ */ S(ie, {
1336
- onSubmit: N,
1337
- children: [
1338
- re.map((e) => M(e)),
1339
- g && /* @__PURE__ */ x(j, {
1340
- missingFields: ee,
1341
- children: /* @__PURE__ */ x(A, {
1342
- label: k("renderer.defaultSubmitButton.submit"),
1343
- disabled: E
1344
- })
1345
- }),
1346
- /* @__PURE__ */ x("p", {
1347
- className: "tg:py-2 tg:text-muted-foreground tg:text-xs",
1348
- children: "Powered by Treege"
1349
- })
1350
- ]
1351
- }), O && /* @__PURE__ */ x("div", {
1352
- className: `tg:my-4 tg:rounded-md tg:p-4 ${O.type === "success" ? "bg-green-50 text-green-800 dark:bg-green-900/20 dark:text-green-300" : "bg-red-50 text-red-800 dark:bg-red-900/20 dark:text-red-300"}`,
1353
- role: "alert",
1354
- children: /* @__PURE__ */ S("div", {
1355
- className: "tg:flex tg:items-center tg:justify-between",
1356
- children: [/* @__PURE__ */ x("p", {
1357
- className: "tg:font-medium tg:text-sm",
1358
- children: O.message
1359
- }), /* @__PURE__ */ x("button", {
1360
- type: "button",
1361
- onClick: _,
1362
- className: "tg:ml-4 tg:font-medium tg:text-sm tg:underline tg:hover:no-underline tg:focus:outline-none",
1363
- children: k("common.close")
1364
- })]
1365
- })
1366
- })]
1367
- })
1368
- })
1369
- });
1370
- }, gt = ({ missingRequiredFields: e, isSubmitting: t, label: n }) => {
1371
- let r = o(), i = r?.components?.submitButton, a = r?.components?.submitButtonWrapper;
1372
- return /* @__PURE__ */ x(a || mt, {
1373
- missingFields: e,
1374
- children: /* @__PURE__ */ x(i || lt, {
1375
- label: n,
1376
- disabled: t
1377
- })
1378
- });
1379
- };
1380
- //#endregion
1381
- //#region src/shared/components/ui/switch.tsx
1382
- function _t({ className: e, ...t }) {
1383
- return /* @__PURE__ */ x(H.Root, {
1384
- "data-slot": "switch",
1385
- className: W("tg:peer tg:inline-flex tg:h-[1.15rem] tg:w-8 tg:shrink-0 tg:items-center tg:rounded-full tg:border tg:border-transparent tg:shadow-xs tg:outline-none tg:transition-all tg:focus-visible:border-ring tg:focus-visible:ring-[3px] tg:focus-visible:ring-ring/50 tg:disabled:cursor-not-allowed tg:disabled:opacity-50 tg:data-[state=checked]:bg-primary tg:data-[state=unchecked]:bg-input tg:dark:data-[state=unchecked]:bg-input/80", e),
1386
- ...t,
1387
- children: /* @__PURE__ */ x(H.Thumb, {
1388
- "data-slot": "switch-thumb",
1389
- className: W("tg:pointer-events-none tg:block tg:size-4 tg:rounded-full tg:bg-background tg:ring-0 tg:transition-transform tg:data-[state=checked]:translate-x-[calc(100%-2px)] tg:data-[state=unchecked]:translate-x-0 tg:dark:data-[state=checked]:bg-primary-foreground tg:dark:data-[state=unchecked]:bg-foreground")
1390
- })
1391
- });
1392
- }
1393
- //#endregion
1394
- //#region src/renderer/features/TreegeRenderer/web/components/inputs/DefaultSwitchInput.tsx
1395
- var vt = ({ node: e, value: t, setValue: n, error: r, label: i, helperText: a, name: o, id: s }) => /* @__PURE__ */ S(K, {
1396
- className: "tg:mb-4",
1397
- children: [
1398
- /* @__PURE__ */ S(X, {
1399
- htmlFor: s,
1400
- children: [i || e.data.name, e.data.required && /* @__PURE__ */ x("span", {
1401
- className: "tg:text-red-500",
1402
- children: "*"
1403
- })]
1404
- }),
1405
- /* @__PURE__ */ x(_t, {
1406
- id: s,
1407
- name: o,
1408
- checked: t,
1409
- onCheckedChange: n
1410
- }),
1411
- a && !r && /* @__PURE__ */ x(q, { children: a }),
1412
- r && /* @__PURE__ */ x(J, { children: r })
1413
- ]
1414
- });
1415
- //#endregion
1416
- //#region src/shared/components/ui/textarea.tsx
1417
- function yt({ className: e, ...t }) {
1418
- return /* @__PURE__ */ x("textarea", {
1419
- "data-slot": "textarea",
1420
- className: W("tg:field-sizing-content tg:flex tg:min-h-16 tg:w-full tg:rounded-md tg:border tg:border-input tg:bg-transparent tg:px-3 tg:py-2 tg:text-base tg:shadow-xs tg:outline-none tg:transition-[color,box-shadow] tg:placeholder:text-muted-foreground tg:focus-visible:border-ring tg:focus-visible:ring-[3px] tg:focus-visible:ring-ring/50 tg:disabled:cursor-not-allowed tg:disabled:opacity-50 tg:aria-invalid:border-destructive tg:aria-invalid:ring-destructive/20 tg:md:text-sm tg:dark:bg-input/30 tg:dark:aria-invalid:ring-destructive/40", e),
1421
- ...t
1422
- });
1423
- }
1424
- //#endregion
1425
- //#region src/renderer/features/TreegeRenderer/web/components/inputs/DefaultTextAreaInput.tsx
1426
- var bt = ({ node: e, value: t, setValue: n, error: r, label: i, placeholder: a, helperText: o, name: s, id: c }) => /* @__PURE__ */ S(K, {
1427
- className: "tg:mb-4",
1428
- children: [
1429
- /* @__PURE__ */ S(X, {
1430
- htmlFor: c,
1431
- children: [i || e.data.name, e.data.required && /* @__PURE__ */ x("span", {
1432
- className: "tg:text-red-500",
1433
- children: "*"
1434
- })]
1435
- }),
1436
- /* @__PURE__ */ x(yt, {
1437
- id: c,
1438
- name: s,
1439
- value: t ?? "",
1440
- onChange: (e) => n(e.target.value),
1441
- placeholder: a,
1442
- className: "tg:w-full tg:rounded-md tg:border tg:px-3 tg:py-2",
1443
- rows: 4
1444
- }),
1445
- r && /* @__PURE__ */ x(J, { children: r }),
1446
- o && !r && /* @__PURE__ */ x(q, { children: o })
1447
- ]
1448
- }), xt = ({ node: e, value: t, setValue: n, error: r, label: i, placeholder: a, helperText: o, name: s, id: c }) => /* @__PURE__ */ S(K, {
1449
- className: "tg:mb-4",
1450
- children: [
1451
- /* @__PURE__ */ S(X, {
1452
- htmlFor: c,
1453
- children: [i || e.data.name, e.data.required && /* @__PURE__ */ x("span", {
1454
- className: "tg:text-red-500",
1455
- children: "*"
1456
- })]
1457
- }),
1458
- /* @__PURE__ */ x(Y, {
1459
- type: "text",
1460
- id: c,
1461
- name: s,
1462
- value: t ?? "",
1463
- onChange: (e) => n(e.target.value),
1464
- placeholder: a
1465
- }),
1466
- r && /* @__PURE__ */ x(J, { children: r }),
1467
- o && !r && /* @__PURE__ */ x(q, { children: o })
1468
- ]
1469
- }), St = ({ node: e, value: t, setValue: n, error: r, label: i, placeholder: a, helperText: o, name: s, id: c }) => /* @__PURE__ */ S(K, {
1470
- className: "tg:mb-4",
1471
- children: [
1472
- /* @__PURE__ */ S(X, {
1473
- htmlFor: c,
1474
- children: [i || e.data.name, e.data.required && /* @__PURE__ */ x("span", {
1475
- className: "tg:text-red-500",
1476
- children: "*"
1477
- })]
1478
- }),
1479
- /* @__PURE__ */ x(Y, {
1480
- type: "time",
1481
- id: c,
1482
- name: s,
1483
- value: t ?? "",
1484
- onChange: (e) => n(e.target.value),
1485
- placeholder: a,
1486
- className: "tg:bg-background tg:[color-scheme:light] tg:dark:[color-scheme:dark]"
1487
- }),
1488
- r && /* @__PURE__ */ x(J, { children: r }),
1489
- o && !r && /* @__PURE__ */ x(q, { children: o })
1490
- ]
1491
- }), Ct = ({ node: e, value: t, setValue: n, error: r, label: i, helperText: a, id: o, name: s }) => {
1492
- let c = d(), l = Array.isArray(t) ? t : [], u = l[0] || "", f = l[1] || "", p = (e) => {
1493
- n([e, f]);
1494
- }, m = (e) => {
1495
- n([u, e]);
1496
- };
1497
- return /* @__PURE__ */ S(K, {
1498
- className: "tg:mb-4",
1499
- children: [
1500
- /* @__PURE__ */ S(X, {
1501
- htmlFor: `${o}-start`,
1502
- children: [i || e.data.name, e.data.required && /* @__PURE__ */ x("span", {
1503
- className: "tg:text-red-500",
1504
- children: "*"
1505
- })]
1506
- }),
1507
- /* @__PURE__ */ S("div", {
1508
- className: "tg:flex tg:gap-2",
1509
- children: [/* @__PURE__ */ x(Y, {
1510
- id: `${o}-start`,
1511
- name: `${s}-start`,
1512
- "aria-label": `${i || e.data.name} - ${c("renderer.defaultInputs.startTime")}`,
1513
- "aria-invalid": !!r,
1514
- "aria-describedby": r ? `${e.id}-error` : void 0,
1515
- type: "time",
1516
- value: u,
1517
- onChange: (e) => p(e.target.value),
1518
- placeholder: c("renderer.defaultInputs.startTime"),
1519
- className: "tg:flex-1 tg:bg-background tg:[color-scheme:light] tg:dark:[color-scheme:dark]"
1520
- }), /* @__PURE__ */ x(Y, {
1521
- id: `${o}-end`,
1522
- name: `${s}-end`,
1523
- "aria-label": `${i || e.data.name} - ${c("renderer.defaultInputs.endTime")}`,
1524
- "aria-invalid": !!r,
1525
- "aria-describedby": r ? `${e.id}-error` : void 0,
1526
- type: "time",
1527
- value: f,
1528
- onChange: (e) => m(e.target.value),
1529
- placeholder: c("renderer.defaultInputs.endTime"),
1530
- className: "tg:flex-1 tg:bg-background tg:[color-scheme:light] tg:dark:[color-scheme:dark]"
1531
- })]
1532
- }),
1533
- r && /* @__PURE__ */ x(J, { children: r }),
1534
- a && !r && /* @__PURE__ */ x(q, { children: a })
1535
- ]
1536
- });
1537
- }, wt = {
1538
- address: Le,
1539
- autocomplete: Re,
1540
- checkbox: ze,
1541
- date: He,
1542
- daterange: Ue,
1543
- file: We,
1544
- hidden: Ge,
1545
- http: et,
1546
- number: tt,
1547
- password: nt,
1548
- radio: at,
1549
- select: ot,
1550
- submit: gt,
1551
- switch: vt,
1552
- text: xt,
1553
- textarea: bt,
1554
- time: St,
1555
- timerange: Ct
1556
- };
1557
- //#endregion
1558
- export { X as $, Me as A, De as B, We as C, Re as D, ze as E, be as F, ge as G, ue as H, we as I, pe as J, he as K, Oe as L, Ae as M, Pe as N, Le as O, je as P, Q, Ee as R, Ge as S, He as T, me as U, xe as V, de as W, Z as X, fe as Y, $ as Z, rt as _, bt as a, W as at, tt as b, _t as c, ft as d, Y as et, pt as f, at as g, ot as h, xt as i, G as it, Ne as j, ke as k, ht as l, ct as m, Ct as n, K as nt, yt as o, ut as p, _e as q, St as r, le as rt, vt as s, wt as t, q as tt, dt as u, it as v, Ue as w, et as x, nt as y, Te as z };