treege 3.0.0-beta.3 → 3.0.0-beta.31

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 (133) hide show
  1. package/LICENSE +18 -12
  2. package/README.md +306 -52
  3. package/dist/ThemeContext-Cw-S1U8B.js +990 -0
  4. package/dist/editor/components/input/ComboboxWithCreate.d.ts +2 -1
  5. package/dist/editor/constants/defaultNode.d.ts +1 -1
  6. package/dist/editor/constants/edgeTypes.d.ts +3 -2
  7. package/dist/editor/constants/inputTypeIcons.d.ts +3 -0
  8. package/dist/editor/constants/nodeSpacing.d.ts +20 -0
  9. package/dist/editor/constants/nodeTypes.d.ts +5 -5
  10. package/dist/editor/context/TreegeEditorContext.d.ts +24 -1
  11. package/dist/editor/features/TreegeEditor/TreegeEditor.d.ts +1 -1
  12. package/dist/editor/features/TreegeEditor/edges/ConditionalEdge.d.ts +2 -2
  13. package/dist/editor/features/TreegeEditor/edges/DefaultEdge.d.ts +3 -0
  14. package/dist/editor/features/TreegeEditor/forms/SubmitConfigForm.d.ts +7 -0
  15. package/dist/editor/features/TreegeEditor/inputs/ComboboxPattern.d.ts +2 -1
  16. package/dist/editor/features/TreegeEditor/inputs/OptionImageField.d.ts +6 -0
  17. package/dist/editor/features/TreegeEditor/nodes/GroupNode.d.ts +2 -2
  18. package/dist/editor/features/TreegeEditor/nodes/TreegeNode.d.ts +6 -0
  19. package/dist/editor/features/TreegeEditor/nodes/components/BottomHandleDropdown.d.ts +6 -0
  20. package/dist/editor/features/TreegeEditor/nodes/components/InputTypeBadge.d.ts +7 -0
  21. package/dist/editor/features/TreegeEditor/nodes/components/NodeLabelInput.d.ts +9 -0
  22. package/dist/editor/features/TreegeEditor/nodes/components/NodeMoreMenu.d.ts +6 -0
  23. package/dist/editor/features/TreegeEditor/nodes/components/OptionsEditor.d.ts +7 -0
  24. package/dist/editor/features/TreegeEditor/nodes/components/RequiredBadge.d.ts +6 -0
  25. package/dist/editor/features/TreegeEditor/nodes/layout/NodeWrapper.d.ts +2 -1
  26. package/dist/editor/features/TreegeEditor/panel/AIGeneratorDialog.d.ts +16 -0
  27. package/dist/editor/hooks/useFlowActions.d.ts +3 -0
  28. package/dist/editor/hooks/useFlowConnections.d.ts +4 -0
  29. package/dist/editor/hooks/useNodesSelection.d.ts +5 -5
  30. package/dist/editor/types/ai.d.ts +65 -0
  31. package/dist/editor/types/editor.d.ts +9 -8
  32. package/dist/editor/utils/aiFlowGenerator.d.ts +5 -0
  33. package/dist/editor/utils/image.d.ts +7 -0
  34. package/dist/editor/utils/inputTypeIcon.d.ts +6 -0
  35. package/dist/editor-Bs1sHj4p.js +3751 -0
  36. package/dist/editor.js +3 -7
  37. package/dist/main.js +5 -52
  38. package/dist/renderer/context/TreegeRendererContext.d.ts +4 -1
  39. package/dist/renderer/features/TreegeRenderer/native/TreegeRenderer.d.ts +19 -11
  40. package/dist/renderer/features/TreegeRenderer/native/components/DefaultFormWrapper.d.ts +7 -7
  41. package/dist/renderer/features/TreegeRenderer/native/components/DefaultGroup.d.ts +7 -7
  42. package/dist/renderer/features/TreegeRenderer/native/components/DefaultInputs.d.ts +21 -15
  43. package/dist/renderer/features/TreegeRenderer/native/components/DefaultSubmitButton.d.ts +9 -7
  44. package/dist/renderer/features/TreegeRenderer/native/components/DefaultSubmitButtonWrapper.d.ts +11 -0
  45. package/dist/renderer/features/TreegeRenderer/native/components/DefaultUI.d.ts +8 -7
  46. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultAddressInput.d.ts +3 -0
  47. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultAutocompleteInput.d.ts +3 -0
  48. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultCheckboxInput.d.ts +3 -0
  49. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultDateInput.d.ts +3 -0
  50. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultDateRangeInput.d.ts +3 -0
  51. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultFileInput.d.ts +3 -0
  52. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultHiddenInput.d.ts +3 -0
  53. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultHttpInput.d.ts +3 -0
  54. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultNumberInput.d.ts +3 -0
  55. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultPasswordInput.d.ts +3 -0
  56. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultRadioInput.d.ts +3 -0
  57. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultSelectInput.d.ts +3 -0
  58. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultSwitchInput.d.ts +3 -0
  59. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultTextInput.d.ts +3 -0
  60. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultTextareaInput.d.ts +3 -0
  61. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultTimeInput.d.ts +3 -0
  62. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultTimeRangeInput.d.ts +3 -0
  63. package/dist/renderer/features/TreegeRenderer/useTreegeRenderer.d.ts +84 -24
  64. package/dist/renderer/features/TreegeRenderer/web/TreegeRenderer.d.ts +1 -1
  65. package/dist/renderer/features/TreegeRenderer/web/components/DefaultSubmitButton.d.ts +1 -1
  66. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultAddressInput.d.ts +1 -1
  67. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultAutocompleteInput.d.ts +1 -1
  68. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultCheckboxInput.d.ts +1 -1
  69. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultDateInput.d.ts +1 -1
  70. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultDateRangeInput.d.ts +1 -1
  71. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultFileInput.d.ts +1 -1
  72. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultHiddenInput.d.ts +1 -1
  73. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultHttpInput.d.ts +1 -1
  74. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultNumberInput.d.ts +1 -1
  75. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultPasswordInput.d.ts +1 -1
  76. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultRadioInput.d.ts +1 -1
  77. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultSelectInput.d.ts +1 -1
  78. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultSubmitInput.d.ts +3 -0
  79. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultSwitchInput.d.ts +1 -1
  80. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultTextAreaInput.d.ts +1 -1
  81. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultTextInput.d.ts +1 -1
  82. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultTimeInput.d.ts +1 -1
  83. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultTimeRangeInput.d.ts +1 -1
  84. package/dist/renderer/hooks/useRenderNode.d.ts +55 -0
  85. package/dist/renderer/hooks/useSubmitHandler.d.ts +34 -0
  86. package/dist/renderer/hooks/useTranslate.d.ts +6 -4
  87. package/dist/renderer/index.d.ts +2 -0
  88. package/dist/renderer/index.native.d.ts +19 -0
  89. package/dist/renderer/types/renderer.d.ts +60 -6
  90. package/dist/renderer/utils/form.d.ts +22 -2
  91. package/dist/renderer/utils/http.d.ts +101 -0
  92. package/dist/renderer/utils/node.d.ts +9 -1
  93. package/dist/renderer/utils/sanitize.d.ts +85 -0
  94. package/dist/renderer/utils/sanitize.native.d.ts +69 -0
  95. package/dist/renderer/utils/submit.d.ts +47 -0
  96. package/dist/renderer-CsU2Y0iu.js +1204 -0
  97. package/dist/renderer-native.d.ts +2 -0
  98. package/dist/renderer-native.js +3496 -0
  99. package/dist/renderer.js +4 -45
  100. package/dist/separator-B9rc85M6.js +351 -0
  101. package/dist/shared/components/ui/alert-dialog.d.ts +14 -0
  102. package/dist/shared/components/ui/badge.d.ts +2 -2
  103. package/dist/shared/components/ui/button.d.ts +2 -2
  104. package/dist/shared/components/ui/collapsible.d.ts +1 -1
  105. package/dist/shared/components/ui/command.d.ts +1 -1
  106. package/dist/shared/components/ui/dropdown-menu.d.ts +1 -1
  107. package/dist/shared/components/ui/form.d.ts +1 -1
  108. package/dist/shared/components/ui/popover.d.ts +4 -2
  109. package/dist/shared/components/ui/select.d.ts +3 -1
  110. package/dist/shared/components/ui/sheet.d.ts +1 -1
  111. package/dist/shared/components/ui/tooltip.d.ts +1 -1
  112. package/dist/shared/constants/colors.d.ts +45 -0
  113. package/dist/shared/constants/inputType.d.ts +1 -0
  114. package/dist/shared/context/ThemeContext.d.ts +2 -0
  115. package/dist/shared/context/ThemeContext.native.d.ts +22 -0
  116. package/dist/shared/hooks/useThemeColors.d.ts +37 -0
  117. package/dist/shared/locales/ar.json.d.ts +109 -10
  118. package/dist/shared/locales/de.json.d.ts +110 -11
  119. package/dist/shared/locales/en.json.d.ts +111 -12
  120. package/dist/shared/locales/es.json.d.ts +110 -11
  121. package/dist/shared/locales/fr.json.d.ts +110 -11
  122. package/dist/shared/locales/it.json.d.ts +110 -11
  123. package/dist/shared/locales/pt.json.d.ts +110 -11
  124. package/dist/shared/types/node.d.ts +64 -0
  125. package/dist/useRenderNode-IL6mmCOS.js +774 -0
  126. package/package.json +39 -12
  127. package/dist/ThemeContext-BIvs8Kw-.js +0 -758
  128. package/dist/TreegeEditor-BSPfQQk3.js +0 -2151
  129. package/dist/TreegeRenderer-D3EvsEfJ.js +0 -1413
  130. package/dist/_name_.css +0 -1
  131. package/dist/editor/features/TreegeEditor/nodes/FlowNode.d.ts +0 -6
  132. package/dist/editor/features/TreegeEditor/nodes/InputNode.d.ts +0 -6
  133. package/dist/editor/features/TreegeEditor/nodes/UINode.d.ts +0 -6
package/dist/renderer.js CHANGED
@@ -1,45 +1,4 @@
1
- import { c as t, d as s, e as u, f as l, g as r, h as n, D as i, i as o, j as f, k as d, l as p, m as D, n as I, o as T, p as m, q as g, r as F, s as c, v, w as x, T as R, b as S, J as b, K as h, t as C, x as w, y as z, z as A, A as H, C as N, F as k, G as P, I as y, E, H as G, B as V, u as j, a as q } from "./TreegeRenderer-D3EvsEfJ.js";
2
- import { T as J, g as K, u as U } from "./ThemeContext-BIvs8Kw-.js";
3
- export {
4
- t as DefaultAddressInput,
5
- s as DefaultAutocompleteInput,
6
- u as DefaultCheckboxInput,
7
- l as DefaultDateInput,
8
- r as DefaultDateRangeInput,
9
- n as DefaultFileInput,
10
- i as DefaultGroup,
11
- o as DefaultHiddenInput,
12
- f as DefaultHttpInput,
13
- d as DefaultNumberInput,
14
- p as DefaultPasswordInput,
15
- D as DefaultRadioInput,
16
- I as DefaultSelectInput,
17
- T as DefaultSwitchInput,
18
- m as DefaultTextAreaInput,
19
- g as DefaultTextInput,
20
- F as DefaultTimeInput,
21
- c as DefaultTimeRangeInput,
22
- v as Divider,
23
- J as ThemeProvider,
24
- x as Title,
25
- R as TreegeConfigProvider,
26
- S as TreegeRenderer,
27
- b as checkFormFieldHasValue,
28
- h as convertFormValuesToNamedFormat,
29
- C as defaultInputRenderers,
30
- w as defaultUI,
31
- z as evaluateCondition,
32
- A as evaluateConditions,
33
- H as fileToSerializable,
34
- N as filesToSerializable,
35
- k as findStartNode,
36
- P as getFlowRenderState,
37
- K as getTranslatedText,
38
- y as isFieldEmpty,
39
- E as isStartNode,
40
- G as mergeFlows,
41
- V as serializableToFile,
42
- U as useTheme,
43
- j as useTreegeConfig,
44
- q as useTreegeRenderer
45
- };
1
+ import { n as e, s as t, t as n } from "./ThemeContext-Cw-S1U8B.js";
2
+ import { C as r, _ as i, a, b as o, d as s, f as c, g as l, h as u, i as d, l as f, m as p, n as m, p as h, r as g, u as _, v, w as y, x as b, y as x } from "./useRenderNode-IL6mmCOS.js";
3
+ import { C as S, S as C, _ as w, a as T, b as E, c as D, d as O, f as k, g as A, h as j, i as M, l as N, m as P, n as F, o as I, p as L, r as R, s as z, t as B, u as V, v as H, x as U, y as W } from "./renderer-CsU2Y0iu.js";
4
+ export { C as DefaultAddressInput, U as DefaultAutocompleteInput, E as DefaultCheckboxInput, W as DefaultDateInput, H as DefaultDateRangeInput, w as DefaultFileInput, S as DefaultGroup, A as DefaultHiddenInput, j as DefaultHttpInput, P as DefaultNumberInput, L as DefaultPasswordInput, k as DefaultRadioInput, O as DefaultSelectInput, V as DefaultSwitchInput, N as DefaultTextAreaInput, D as DefaultTextInput, z as DefaultTimeInput, I as DefaultTimeRangeInput, F as Divider, n as ThemeProvider, R as Title, r as TreegeConfigProvider, B as TreegeRenderer, i as applyReferenceTransformation, v as calculateReferenceFieldUpdates, x as checkFormFieldHasValue, o as convertFormValuesToNamedFormat, T as defaultInputRenderers, M as defaultUI, h as evaluateCondition, p as evaluateConditions, m as fileToSerializable, g as filesToSerializable, f as findStartNode, _ as getFlowRenderState, t as getTranslatedText, b as isFieldEmpty, s as isStartNode, c as mergeFlows, u as sanitize, l as sanitizeHttpResponse, d as serializableToFile, e as useTheme, y as useTreegeConfig, a as useTreegeRenderer };
@@ -0,0 +1,351 @@
1
+ import { f as e } from "./ThemeContext-Cw-S1U8B.js";
2
+ import "react";
3
+ import { CheckIcon as t, ChevronDownIcon as n, ChevronUpIcon as r, SearchIcon as i, XIcon as a } from "lucide-react";
4
+ import { Slot as o } from "@radix-ui/react-slot";
5
+ import { cva as s } from "class-variance-authority";
6
+ import { clsx as c } from "clsx";
7
+ import { twMerge as l } from "tailwind-merge";
8
+ import * as u from "@radix-ui/react-checkbox";
9
+ import * as d from "@radix-ui/react-label";
10
+ import * as f from "@radix-ui/react-popover";
11
+ import * as p from "@radix-ui/react-select";
12
+ import * as m from "@radix-ui/react-dialog";
13
+ import * as h from "@radix-ui/react-switch";
14
+ import { Command as g } from "cmdk";
15
+ import * as _ from "@radix-ui/react-separator";
16
+ //#region src/shared/lib/utils.ts
17
+ function v(...e) {
18
+ return l(c(e));
19
+ }
20
+ //#endregion
21
+ //#region src/shared/components/ui/button.tsx
22
+ var y = e(), b = s("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", {
23
+ defaultVariants: {
24
+ size: "default",
25
+ variant: "default"
26
+ },
27
+ variants: {
28
+ size: {
29
+ default: "h-9 px-4 py-2 has-[>svg]:px-3",
30
+ icon: "size-9",
31
+ "icon-lg": "size-10",
32
+ "icon-sm": "size-8",
33
+ lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
34
+ sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
35
+ xs: "h-6 rounded-md gap-1 px-2 text-xs has-[>svg]:px-1.5"
36
+ },
37
+ variant: {
38
+ default: "bg-primary text-primary-foreground hover:bg-primary/90",
39
+ destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
40
+ ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
41
+ link: "text-primary underline-offset-4 hover:underline",
42
+ outline: "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
43
+ secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80"
44
+ }
45
+ }
46
+ });
47
+ function x({ className: e, variant: t, size: n, asChild: r = !1, ...i }) {
48
+ return /* @__PURE__ */ (0, y.jsx)(r ? o : "button", {
49
+ "data-slot": "button",
50
+ className: v(b({
51
+ className: e,
52
+ size: n,
53
+ variant: t
54
+ })),
55
+ ...i
56
+ });
57
+ }
58
+ //#endregion
59
+ //#region src/shared/components/ui/checkbox.tsx
60
+ function S({ className: e, ...n }) {
61
+ return /* @__PURE__ */ (0, y.jsx)(u.Root, {
62
+ "data-slot": "checkbox",
63
+ className: v("peer size-4 shrink-0 rounded-[4px] border border-input shadow-xs outline-none transition-shadow focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=checked]:border-primary data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:bg-input/30 dark:data-[state=checked]:bg-primary dark:aria-invalid:ring-destructive/40", e),
64
+ ...n,
65
+ children: /* @__PURE__ */ (0, y.jsx)(u.Indicator, {
66
+ "data-slot": "checkbox-indicator",
67
+ className: "grid place-content-center text-current transition-none",
68
+ children: /* @__PURE__ */ (0, y.jsx)(t, { className: "size-3.5" })
69
+ })
70
+ });
71
+ }
72
+ //#endregion
73
+ //#region src/shared/components/ui/form.tsx
74
+ function C({ className: e, ...t }) {
75
+ return /* @__PURE__ */ (0, y.jsx)("div", {
76
+ "data-slot": "form-item",
77
+ className: v("grid gap-2", e),
78
+ ...t
79
+ });
80
+ }
81
+ function w({ className: e, ...t }) {
82
+ return /* @__PURE__ */ (0, y.jsx)("p", {
83
+ "data-slot": "form-description",
84
+ className: v("text-muted-foreground text-xs", e),
85
+ ...t
86
+ });
87
+ }
88
+ function T({ className: e, ...t }) {
89
+ return /* @__PURE__ */ (0, y.jsx)("p", {
90
+ "data-slot": "form-error",
91
+ className: v("text-destructive text-xs", e),
92
+ ...t
93
+ });
94
+ }
95
+ //#endregion
96
+ //#region src/shared/components/ui/input.tsx
97
+ function E({ className: e, type: t, ...n }) {
98
+ return /* @__PURE__ */ (0, y.jsx)("input", {
99
+ type: t,
100
+ "data-slot": "input",
101
+ className: v("h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs outline-none transition-[color,box-shadow] selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:font-medium file:text-foreground file:text-sm placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30", "focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50", "aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40", e),
102
+ ...n
103
+ });
104
+ }
105
+ //#endregion
106
+ //#region src/shared/components/ui/label.tsx
107
+ var D = ({ className: e, ...t }) => /* @__PURE__ */ (0, y.jsx)(d.Root, {
108
+ "data-slot": "label",
109
+ className: v("flex select-none items-center gap-2 font-medium text-muted-foreground text-sm leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-50 group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50", e),
110
+ ...t
111
+ });
112
+ //#endregion
113
+ //#region src/shared/components/ui/popover.tsx
114
+ function O({ ...e }) {
115
+ return /* @__PURE__ */ (0, y.jsx)(f.Root, {
116
+ "data-slot": "popover",
117
+ ...e
118
+ });
119
+ }
120
+ function k({ ...e }) {
121
+ return /* @__PURE__ */ (0, y.jsx)(f.Trigger, {
122
+ "data-slot": "popover-trigger",
123
+ ...e
124
+ });
125
+ }
126
+ function A({ className: e, align: t = "center", sideOffset: n = 4, disablePortal: r = !1, ...i }) {
127
+ let a = /* @__PURE__ */ (0, y.jsx)(f.Content, {
128
+ "data-slot": "popover-content",
129
+ align: t,
130
+ sideOffset: n,
131
+ className: v("data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-hidden data-[state=closed]:animate-out data-[state=open]:animate-in", e),
132
+ ...i
133
+ });
134
+ return r ? a : /* @__PURE__ */ (0, y.jsx)(f.Portal, { children: a });
135
+ }
136
+ //#endregion
137
+ //#region src/shared/components/ui/select.tsx
138
+ var j = ({ ...e }) => /* @__PURE__ */ (0, y.jsx)(p.Root, {
139
+ "data-slot": "select",
140
+ ...e
141
+ }), M = ({ ...e }) => /* @__PURE__ */ (0, y.jsx)(p.Group, {
142
+ "data-slot": "select-group",
143
+ ...e
144
+ }), N = ({ ...e }) => /* @__PURE__ */ (0, y.jsx)(p.Value, {
145
+ "data-slot": "select-value",
146
+ ...e
147
+ }), P = ({ className: e, size: t = "default", children: r, ...i }) => /* @__PURE__ */ (0, y.jsxs)(p.Trigger, {
148
+ "data-slot": "select-trigger",
149
+ "data-size": t,
150
+ className: v("flex w-fit items-center justify-between gap-2 whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs outline-none transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[size=default]:h-9 data-[size=sm]:h-8 data-[placeholder]:text-muted-foreground *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 dark:bg-input/30 dark:aria-invalid:ring-destructive/40 dark:hover:bg-input/50 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0", e),
151
+ ...i,
152
+ children: [r, /* @__PURE__ */ (0, y.jsx)(p.Icon, {
153
+ asChild: !0,
154
+ children: /* @__PURE__ */ (0, y.jsx)(n, { className: "size-4 opacity-50" })
155
+ })]
156
+ }), F = ({ className: e, children: t, position: n = "popper", ...r }) => /* @__PURE__ */ (0, y.jsx)(p.Portal, { children: /* @__PURE__ */ (0, y.jsxs)(p.Content, {
157
+ "data-slot": "select-content",
158
+ className: v("data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-y-auto overflow-x-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=closed]:animate-out data-[state=open]:animate-in", n === "popper" && "data-[side=left]:-translate-x-1 data-[side=top]:-translate-y-1 data-[side=right]:translate-x-1 data-[side=bottom]:translate-y-1", e),
159
+ position: n,
160
+ ...r,
161
+ children: [
162
+ /* @__PURE__ */ (0, y.jsx)(L, {}),
163
+ /* @__PURE__ */ (0, y.jsx)(p.Viewport, {
164
+ className: v("p-1", n === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),
165
+ children: t
166
+ }),
167
+ /* @__PURE__ */ (0, y.jsx)(R, {})
168
+ ]
169
+ }) }), ee = ({ className: e, htmlFor: t, children: n, ...r }) => /* @__PURE__ */ (0, y.jsx)(p.Label, {
170
+ "data-slot": "select-label",
171
+ className: v("pb-1.5 font-medium text-muted-foreground text-sm", e),
172
+ ...r,
173
+ children: /* @__PURE__ */ (0, y.jsx)("label", {
174
+ htmlFor: t,
175
+ children: n
176
+ })
177
+ }), I = ({ className: e, children: n, ...r }) => /* @__PURE__ */ (0, y.jsxs)(p.Item, {
178
+ "data-slot": "select-item",
179
+ className: v("relative flex w-full cursor-pointer select-none items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2", e),
180
+ ...r,
181
+ children: [/* @__PURE__ */ (0, y.jsx)("span", {
182
+ className: "absolute right-2 flex size-3.5 items-center justify-center",
183
+ children: /* @__PURE__ */ (0, y.jsx)(p.ItemIndicator, { children: /* @__PURE__ */ (0, y.jsx)(t, { className: "size-4" }) })
184
+ }), /* @__PURE__ */ (0, y.jsx)(p.ItemText, { children: n })]
185
+ }), L = ({ className: e, ...t }) => /* @__PURE__ */ (0, y.jsx)(p.ScrollUpButton, {
186
+ "data-slot": "select-scroll-up-button",
187
+ className: v("flex cursor-default items-center justify-center py-1", e),
188
+ ...t,
189
+ children: /* @__PURE__ */ (0, y.jsx)(r, { className: "size-4" })
190
+ }), R = ({ className: e, ...t }) => /* @__PURE__ */ (0, y.jsx)(p.ScrollDownButton, {
191
+ "data-slot": "select-scroll-down-button",
192
+ className: v("flex cursor-default items-center justify-center py-1", e),
193
+ ...t,
194
+ children: /* @__PURE__ */ (0, y.jsx)(n, { className: "size-4" })
195
+ });
196
+ //#endregion
197
+ //#region src/shared/components/ui/dialog.tsx
198
+ function z({ ...e }) {
199
+ return /* @__PURE__ */ (0, y.jsx)(m.Root, {
200
+ "data-slot": "dialog",
201
+ ...e
202
+ });
203
+ }
204
+ function B({ ...e }) {
205
+ return /* @__PURE__ */ (0, y.jsx)(m.Trigger, {
206
+ "data-slot": "dialog-trigger",
207
+ ...e
208
+ });
209
+ }
210
+ function V({ ...e }) {
211
+ return /* @__PURE__ */ (0, y.jsx)(m.Portal, {
212
+ "data-slot": "dialog-portal",
213
+ ...e
214
+ });
215
+ }
216
+ function H({ className: e, ...t }) {
217
+ return /* @__PURE__ */ (0, y.jsx)(m.Overlay, {
218
+ "data-slot": "dialog-overlay",
219
+ className: v("data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50 data-[state=closed]:animate-out data-[state=open]:animate-in", e),
220
+ ...t
221
+ });
222
+ }
223
+ function U({ className: e, children: t, showCloseButton: n = !0, ...r }) {
224
+ return /* @__PURE__ */ (0, y.jsxs)(V, {
225
+ "data-slot": "dialog-portal",
226
+ children: [/* @__PURE__ */ (0, y.jsx)(H, {}), /* @__PURE__ */ (0, y.jsxs)(m.Content, {
227
+ "data-slot": "dialog-content",
228
+ className: v("data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border bg-background p-6 shadow-lg duration-200 data-[state=closed]:animate-out data-[state=open]:animate-in sm:max-w-lg", e),
229
+ ...r,
230
+ children: [t, n && /* @__PURE__ */ (0, y.jsxs)(m.Close, {
231
+ "data-slot": "dialog-close",
232
+ className: "absolute top-4 right-4 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0",
233
+ children: [/* @__PURE__ */ (0, y.jsx)(a, {}), /* @__PURE__ */ (0, y.jsx)("span", {
234
+ className: "sr-only",
235
+ children: "Close"
236
+ })]
237
+ })]
238
+ })]
239
+ });
240
+ }
241
+ function W({ className: e, ...t }) {
242
+ return /* @__PURE__ */ (0, y.jsx)("div", {
243
+ "data-slot": "dialog-header",
244
+ className: v("flex flex-col gap-2 text-center sm:text-left", e),
245
+ ...t
246
+ });
247
+ }
248
+ function G({ className: e, ...t }) {
249
+ return /* @__PURE__ */ (0, y.jsx)("div", {
250
+ "data-slot": "dialog-footer",
251
+ className: v("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", e),
252
+ ...t
253
+ });
254
+ }
255
+ function K({ className: e, ...t }) {
256
+ return /* @__PURE__ */ (0, y.jsx)(m.Title, {
257
+ "data-slot": "dialog-title",
258
+ className: v("font-semibold text-lg leading-none", e),
259
+ ...t
260
+ });
261
+ }
262
+ function q({ className: e, ...t }) {
263
+ return /* @__PURE__ */ (0, y.jsx)(m.Description, {
264
+ "data-slot": "dialog-description",
265
+ className: v("text-muted-foreground text-sm", e),
266
+ ...t
267
+ });
268
+ }
269
+ //#endregion
270
+ //#region src/shared/components/ui/textarea.tsx
271
+ function J({ className: e, ...t }) {
272
+ return /* @__PURE__ */ (0, y.jsx)("textarea", {
273
+ "data-slot": "textarea",
274
+ className: v("field-sizing-content flex min-h-16 w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-xs outline-none transition-[color,box-shadow] placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:aria-invalid:ring-destructive/40", e),
275
+ ...t
276
+ });
277
+ }
278
+ //#endregion
279
+ //#region src/shared/components/ui/switch.tsx
280
+ function Y({ className: e, ...t }) {
281
+ return /* @__PURE__ */ (0, y.jsx)(h.Root, {
282
+ "data-slot": "switch",
283
+ className: v("peer inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs outline-none transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80", e),
284
+ ...t,
285
+ children: /* @__PURE__ */ (0, y.jsx)(h.Thumb, {
286
+ "data-slot": "switch-thumb",
287
+ className: v("pointer-events-none block size-4 rounded-full bg-background ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0 dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground")
288
+ })
289
+ });
290
+ }
291
+ //#endregion
292
+ //#region src/shared/components/ui/command.tsx
293
+ function X({ className: e, ...t }) {
294
+ return /* @__PURE__ */ (0, y.jsx)(g, {
295
+ "data-slot": "command",
296
+ className: v("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground", e),
297
+ ...t
298
+ });
299
+ }
300
+ function Z({ className: e, ...t }) {
301
+ return /* @__PURE__ */ (0, y.jsxs)("div", {
302
+ "data-slot": "command-input-wrapper",
303
+ className: "flex h-9 items-center gap-2 border-b px-3",
304
+ children: [/* @__PURE__ */ (0, y.jsx)(i, { className: "size-4 shrink-0 opacity-50" }), /* @__PURE__ */ (0, y.jsx)(g.Input, {
305
+ "data-slot": "command-input",
306
+ className: v("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50", e),
307
+ ...t
308
+ })]
309
+ });
310
+ }
311
+ function Q({ className: e, ...t }) {
312
+ return /* @__PURE__ */ (0, y.jsx)(g.List, {
313
+ "data-slot": "command-list",
314
+ className: v("max-h-[300px] scroll-py-1 overflow-y-auto overflow-x-hidden", e),
315
+ ...t
316
+ });
317
+ }
318
+ function $({ ...e }) {
319
+ return /* @__PURE__ */ (0, y.jsx)(g.Empty, {
320
+ "data-slot": "command-empty",
321
+ className: "py-6 text-center text-sm",
322
+ ...e
323
+ });
324
+ }
325
+ function te({ className: e, ...t }) {
326
+ return /* @__PURE__ */ (0, y.jsx)(g.Group, {
327
+ "data-slot": "command-group",
328
+ className: v("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group-heading]]:text-xs", e),
329
+ ...t
330
+ });
331
+ }
332
+ function ne({ className: e, ...t }) {
333
+ return /* @__PURE__ */ (0, y.jsx)(g.Item, {
334
+ "data-slot": "command-item",
335
+ className: v("relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0", e),
336
+ ...t
337
+ });
338
+ }
339
+ //#endregion
340
+ //#region src/shared/components/ui/separator.tsx
341
+ function re({ className: e, orientation: t = "horizontal", decorative: n = !0, ...r }) {
342
+ return /* @__PURE__ */ (0, y.jsx)(_.Root, {
343
+ "data-slot": "separator",
344
+ decorative: n,
345
+ orientation: t,
346
+ className: v("shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=vertical]:h-full data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-px", e),
347
+ ...r
348
+ });
349
+ }
350
+ //#endregion
351
+ export { T as A, N as C, D, k as E, v as F, S as M, x as N, E as O, b as P, P as S, A as T, j as _, Z as a, I as b, Y as c, U as d, q as f, B as g, K as h, te as i, C as j, w as k, J as l, W as m, X as n, ne as o, G as p, $ as r, Q as s, re as t, z as u, F as v, O as w, ee as x, M as y };
@@ -0,0 +1,14 @@
1
+ import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
2
+ import * as React from "react";
3
+ declare function AlertDialog({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ declare function AlertDialogTrigger({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
5
+ declare function AlertDialogPortal({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Portal>): import("react/jsx-runtime").JSX.Element;
6
+ declare function AlertDialogOverlay({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Overlay>): import("react/jsx-runtime").JSX.Element;
7
+ declare function AlertDialogContent({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
8
+ declare function AlertDialogHeader({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
9
+ declare function AlertDialogFooter({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
10
+ declare function AlertDialogTitle({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Title>): import("react/jsx-runtime").JSX.Element;
11
+ declare function AlertDialogDescription({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Description>): import("react/jsx-runtime").JSX.Element;
12
+ declare function AlertDialogAction({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Action>): import("react/jsx-runtime").JSX.Element;
13
+ declare function AlertDialogCancel({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Cancel>): import("react/jsx-runtime").JSX.Element;
14
+ export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, };
@@ -1,8 +1,8 @@
1
1
  import { VariantProps } from 'class-variance-authority';
2
2
  import * as React from "react";
3
3
  declare const badgeVariants: (props?: ({
4
- variant?: "default" | "destructive" | "outline" | "secondary" | "purple" | null | undefined;
5
- } & import('class-variance-authority/dist/types').ClassProp) | undefined) => string;
4
+ variant?: "default" | "destructive" | "outline" | "secondary" | "blue" | "purple" | null | undefined;
5
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
6
6
  declare function Badge({ className, variant, asChild, ...props }: React.ComponentProps<"span"> & VariantProps<typeof badgeVariants> & {
7
7
  asChild?: boolean;
8
8
  }): import("react/jsx-runtime").JSX.Element;
@@ -1,9 +1,9 @@
1
1
  import { VariantProps } from 'class-variance-authority';
2
2
  import * as React from "react";
3
3
  declare const buttonVariants: (props?: ({
4
- size?: "default" | "icon" | "icon-lg" | "icon-sm" | "lg" | "sm" | null | undefined;
4
+ size?: "default" | "icon" | "icon-lg" | "icon-sm" | "lg" | "sm" | "xs" | null | undefined;
5
5
  variant?: "default" | "link" | "destructive" | "ghost" | "outline" | "secondary" | null | undefined;
6
- } & import('class-variance-authority/dist/types').ClassProp) | undefined) => string;
6
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
7
  declare function Button({ className, variant, size, asChild, ...props }: React.ComponentProps<"button"> & VariantProps<typeof buttonVariants> & {
8
8
  asChild?: boolean;
9
9
  }): import("react/jsx-runtime").JSX.Element;
@@ -2,4 +2,4 @@ import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
2
2
  declare function Collapsible({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.Root>): import("react/jsx-runtime").JSX.Element;
3
3
  declare function CollapsibleTrigger({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>): import("react/jsx-runtime").JSX.Element;
4
4
  declare function CollapsibleContent({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>): import("react/jsx-runtime").JSX.Element;
5
- export { Collapsible, CollapsibleTrigger, CollapsibleContent };
5
+ export { Collapsible, CollapsibleContent, CollapsibleTrigger };
@@ -15,4 +15,4 @@ declare function CommandGroup({ className, ...props }: React.ComponentProps<type
15
15
  declare function CommandSeparator({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Separator>): import("react/jsx-runtime").JSX.Element;
16
16
  declare function CommandItem({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Item>): import("react/jsx-runtime").JSX.Element;
17
17
  declare function CommandShortcut({ className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
18
- export { Command, CommandDialog, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, CommandShortcut, CommandSeparator };
18
+ export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut };
@@ -22,4 +22,4 @@ declare function DropdownMenuSubTrigger({ className, inset, children, ...props }
22
22
  inset?: boolean;
23
23
  }): import("react/jsx-runtime").JSX.Element;
24
24
  declare function DropdownMenuSubContent({ className, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>): import("react/jsx-runtime").JSX.Element;
25
- export { DropdownMenu, DropdownMenuPortal, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuGroup, DropdownMenuLabel, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubTrigger, DropdownMenuSubContent, };
25
+ export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, };
@@ -2,4 +2,4 @@ import * as React from "react";
2
2
  declare function FormItem({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
3
3
  declare function FormDescription({ className, ...props }: React.ComponentProps<"p">): import("react/jsx-runtime").JSX.Element;
4
4
  declare function FormError({ className, ...props }: React.ComponentProps<"p">): import("react/jsx-runtime").JSX.Element;
5
- export { FormError, FormItem, FormDescription };
5
+ export { FormDescription, FormError, FormItem };
@@ -2,6 +2,8 @@ import * as PopoverPrimitive from "@radix-ui/react-popover";
2
2
  import * as React from "react";
3
3
  declare function Popover({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
4
  declare function PopoverTrigger({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
5
- declare function PopoverContent({ className, align, sideOffset, ...props }: React.ComponentProps<typeof PopoverPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
5
+ declare function PopoverContent({ className, align, sideOffset, disablePortal, ...props }: React.ComponentProps<typeof PopoverPrimitive.Content> & {
6
+ disablePortal?: boolean;
7
+ }): import("react/jsx-runtime").JSX.Element;
6
8
  declare function PopoverAnchor({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Anchor>): import("react/jsx-runtime").JSX.Element;
7
- export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor };
9
+ export { Popover, PopoverAnchor, PopoverContent, PopoverTrigger };
@@ -7,7 +7,9 @@ declare const SelectTrigger: ({ className, size, children, ...props }: React.Com
7
7
  size?: "sm" | "default";
8
8
  }) => import("react/jsx-runtime").JSX.Element;
9
9
  declare const SelectContent: ({ className, children, position, ...props }: React.ComponentProps<typeof SelectPrimitive.Content>) => import("react/jsx-runtime").JSX.Element;
10
- declare const SelectLabel: ({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Label>) => import("react/jsx-runtime").JSX.Element;
10
+ declare const SelectLabel: ({ className, htmlFor, children, ...props }: React.ComponentProps<typeof SelectPrimitive.Label> & {
11
+ htmlFor?: string;
12
+ }) => import("react/jsx-runtime").JSX.Element;
11
13
  declare const SelectItem: ({ className, children, ...props }: React.ComponentProps<typeof SelectPrimitive.Item>) => import("react/jsx-runtime").JSX.Element;
12
14
  declare const SelectSeparator: ({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Separator>) => import("react/jsx-runtime").JSX.Element;
13
15
  declare const SelectScrollUpButton: ({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) => import("react/jsx-runtime").JSX.Element;
@@ -10,4 +10,4 @@ declare function SheetHeader({ className, ...props }: React.ComponentProps<"div"
10
10
  declare function SheetFooter({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
11
11
  declare function SheetTitle({ className, ...props }: React.ComponentProps<typeof SheetPrimitive.Title>): import("react/jsx-runtime").JSX.Element;
12
12
  declare function SheetDescription({ className, ...props }: React.ComponentProps<typeof SheetPrimitive.Description>): import("react/jsx-runtime").JSX.Element;
13
- export { Sheet, SheetTrigger, SheetClose, SheetContent, SheetHeader, SheetFooter, SheetTitle, SheetDescription };
13
+ export { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger };
@@ -4,4 +4,4 @@ declare function TooltipProvider({ delayDuration, ...props }: React.ComponentPro
4
4
  declare function Tooltip({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
5
5
  declare function TooltipTrigger({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
6
6
  declare function TooltipContent({ className, sideOffset, children, ...props }: React.ComponentProps<typeof TooltipPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
7
- export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };
7
+ export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
@@ -0,0 +1,45 @@
1
+ export declare const COLORS: {
2
+ dark: {
3
+ background: string;
4
+ border: string;
5
+ borderFocus: string;
6
+ card: string;
7
+ error: string;
8
+ errorBg: string;
9
+ errorLight: string;
10
+ input: string;
11
+ muted: string;
12
+ primary: string;
13
+ primaryDisabled: string;
14
+ primaryForeground: string;
15
+ primaryLight: string;
16
+ separator: string;
17
+ success: string;
18
+ successBg: string;
19
+ text: string;
20
+ textMuted: string;
21
+ textSecondary: string;
22
+ };
23
+ light: {
24
+ background: string;
25
+ border: string;
26
+ borderFocus: string;
27
+ card: string;
28
+ error: string;
29
+ errorBg: string;
30
+ errorLight: string;
31
+ input: string;
32
+ muted: string;
33
+ primary: string;
34
+ primaryDisabled: string;
35
+ primaryForeground: string;
36
+ primaryLight: string;
37
+ separator: string;
38
+ success: string;
39
+ successBg: string;
40
+ text: string;
41
+ textMuted: string;
42
+ textSecondary: string;
43
+ };
44
+ };
45
+ export type ThemeColors = typeof COLORS.light;
@@ -11,6 +11,7 @@ export declare const INPUT_TYPE: {
11
11
  readonly password: "password";
12
12
  readonly radio: "radio";
13
13
  readonly select: "select";
14
+ readonly submit: "submit";
14
15
  readonly switch: "switch";
15
16
  readonly text: "text";
16
17
  readonly textarea: "textarea";
@@ -1,4 +1,5 @@
1
1
  import { ReactNode } from 'react';
2
+ import { ThemeColors } from '../constants/colors';
2
3
  type Theme = "dark" | "light" | "system";
3
4
  interface ThemeProviderProps {
4
5
  children: ReactNode;
@@ -7,6 +8,7 @@ interface ThemeProviderProps {
7
8
  theme?: "dark" | "light";
8
9
  }
9
10
  interface ThemeProviderState {
11
+ colors: ThemeColors;
10
12
  theme: Theme;
11
13
  setTheme: (theme: Theme) => void;
12
14
  }
@@ -0,0 +1,22 @@
1
+ import { ReactNode } from 'react';
2
+ import { ThemeColors } from '../constants/colors';
3
+ type Theme = "dark" | "light" | "system";
4
+ interface ThemeProviderProps {
5
+ children: ReactNode;
6
+ defaultTheme?: Theme;
7
+ storageKey?: string;
8
+ theme?: "dark" | "light";
9
+ }
10
+ interface ThemeProviderState {
11
+ colors: ThemeColors;
12
+ theme: Theme;
13
+ setTheme: (theme: Theme) => void;
14
+ }
15
+ /**
16
+ * ThemeProvider for React Native
17
+ * Unlike the web version, this doesn't manipulate DOM classes
18
+ * Provides theme colors directly through the context
19
+ */
20
+ export declare const ThemeProvider: ({ children, defaultTheme, theme: controlledTheme, ...props }: ThemeProviderProps) => import("react/jsx-runtime").JSX.Element;
21
+ export declare const useTheme: () => ThemeProviderState;
22
+ export {};
@@ -0,0 +1,37 @@
1
+ /**
2
+ * useThemeColors hook for Web
3
+ *
4
+ * On web, theming is handled via CSS classes and CSS variables in the global stylesheet.
5
+ * This hook provides color values that map to CSS variables or returns empty strings
6
+ * since actual colors are defined in the CSS theme.
7
+ *
8
+ * React Native uses this same interface but returns actual color values.
9
+ */
10
+ export type ThemeColors = {
11
+ background: string;
12
+ card: string;
13
+ input: string;
14
+ border: string;
15
+ borderFocus: string;
16
+ error: string;
17
+ errorBg: string;
18
+ errorLight: string;
19
+ muted: string;
20
+ primary: string;
21
+ primaryDisabled: string;
22
+ primaryLight: string;
23
+ success: string;
24
+ successBg: string;
25
+ text: string;
26
+ textMuted: string;
27
+ textSecondary: string;
28
+ separator: string;
29
+ };
30
+ /**
31
+ * For web, we don't need to return actual color values since theming
32
+ * is handled via CSS classes (`.light` / `.dark`) and CSS variables.
33
+ *
34
+ * Components should use CSS classes for styling on web instead of inline styles.
35
+ * This hook exists for API compatibility with React Native.
36
+ */
37
+ export declare const useThemeColors: () => ThemeColors;