treege 3.0.0-beta.7 → 3.0.0-beta.71

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