@oneb/ui-vue 0.3.32 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. package/dist/ChevronLeftIcon-7505e081.cjs +1 -0
  2. package/dist/ChevronLeftIcon-bb9adb5b.js +20 -0
  3. package/dist/ChevronRightIcon-2992cf0d.cjs +1 -0
  4. package/dist/ChevronRightIcon-b0585768.js +20 -0
  5. package/dist/ChevronUpIcon-64a673e1.cjs +1 -0
  6. package/dist/{ChevronRightIcon-4549a26b.js → ChevronUpIcon-c43f27a9.js} +2 -19
  7. package/dist/MagnifyingGlassIcon-adf871ba.cjs +1 -0
  8. package/dist/MagnifyingGlassIcon-ca213d3d.js +20 -0
  9. package/dist/OneDropdownAuto.vue_vue_type_script_setup_true_lang-2c508e8a.js +79 -0
  10. package/dist/OneDropdownAuto.vue_vue_type_script_setup_true_lang-bf923b04.cjs +1 -0
  11. package/dist/OneFormInput.vue_vue_type_script_setup_true_lang-b89117e7.js +521 -0
  12. package/dist/OneFormInput.vue_vue_type_script_setup_true_lang-f6f7cd96.cjs +1 -0
  13. package/dist/OneHelpMenu-6ec63535.cjs +1 -0
  14. package/dist/{OneHelpMenu-73817f8a.js → OneHelpMenu-d5182c78.js} +118 -213
  15. package/dist/OneMarkdown.vue_vue_type_script_setup_true_lang-05266fc3.cjs +1 -0
  16. package/dist/OneMarkdown.vue_vue_type_script_setup_true_lang-bb2219c7.js +18 -0
  17. package/dist/OneModal-02a9a173.js +189 -0
  18. package/dist/OneModal-0e92c039.cjs +1 -0
  19. package/dist/OneTooltip.vue_vue_type_script_setup_true_lang-c492c128.js +25 -0
  20. package/dist/OneTooltip.vue_vue_type_script_setup_true_lang-e83a81ea.cjs +1 -0
  21. package/dist/SpinnerIcon-01be39fe.cjs +1 -0
  22. package/dist/{SpinnerIcon-74648c98.js → SpinnerIcon-516264ba.js} +5 -6
  23. package/dist/button/index.cjs +1 -1
  24. package/dist/button/index.d.ts +1 -1
  25. package/dist/button/index.js +3 -4
  26. package/dist/checkbox/checkbox.d.ts +5 -0
  27. package/dist/checkbox/index.cjs +1 -1
  28. package/dist/checkbox/index.js +40 -34
  29. package/dist/chips/OneChips.vue.d.ts +2 -0
  30. package/dist/chips/chips.d.ts +25 -0
  31. package/dist/chips/index.cjs +1 -0
  32. package/dist/chips/index.d.ts +3 -0
  33. package/dist/chips/index.js +62 -0
  34. package/dist/clipboard-494e1513.cjs +1 -0
  35. package/dist/clipboard-733b79a1.js +22 -0
  36. package/dist/common/OneDetailsList.vue.d.ts +2 -0
  37. package/dist/common/OneDetailsRow.vue.d.ts +2 -0
  38. package/dist/common/index.cjs +1 -1
  39. package/dist/common/index.d.ts +2 -0
  40. package/dist/common/index.js +68 -16
  41. package/dist/composables/index.cjs +1 -0
  42. package/dist/composables/index.d.ts +18 -0
  43. package/dist/composables/index.js +91 -0
  44. package/dist/composables/useAsyncMethod.d.ts +17 -0
  45. package/dist/composables/useAsyncSelect.d.ts +26 -0
  46. package/dist/composables/useConfirm.d.ts +27 -0
  47. package/dist/composables/useCursorList.d.ts +42 -0
  48. package/dist/composables/useDebouncedRef.d.ts +6 -0
  49. package/dist/composables/useFileUpload.d.ts +21 -0
  50. package/dist/composables/useFormSubmit.d.ts +23 -0
  51. package/dist/composables/useIsMobile.d.ts +8 -0
  52. package/dist/confirm/OneConfirmHost.vue.d.ts +2 -0
  53. package/dist/confirm/confirm.d.ts +10 -0
  54. package/dist/confirm/index.cjs +1 -0
  55. package/dist/confirm/index.d.ts +5 -0
  56. package/dist/confirm/index.js +59 -0
  57. package/dist/cursorList/OneCursorList.vue.d.ts +2 -0
  58. package/dist/cursorList/index.cjs +1 -0
  59. package/dist/cursorList/index.d.ts +3 -0
  60. package/dist/cursorList/index.js +78 -0
  61. package/dist/dataTable/index.cjs +1 -1
  62. package/dist/dataTable/index.js +256 -301
  63. package/dist/dateTime/OneDateTime.vue.d.ts +2 -0
  64. package/dist/dateTime/dateTime.d.ts +43 -0
  65. package/dist/dateTime/index.cjs +1 -0
  66. package/dist/dateTime/index.d.ts +3 -0
  67. package/dist/dateTime/index.js +66 -0
  68. package/dist/dropdown/index.cjs +1 -1
  69. package/dist/dropdown/index.js +302 -376
  70. package/dist/dropdown-5cb64ab7.cjs +1 -0
  71. package/dist/dropdown-c81fb945.js +101 -0
  72. package/dist/entityPicker/index.cjs +1 -1
  73. package/dist/entityPicker/index.js +57 -57
  74. package/dist/entityPicker/useEntityModal.d.ts +7 -3
  75. package/dist/errorsPage/OneCrashScreen.vue.d.ts +2 -0
  76. package/dist/errorsPage/OneErrorHero.vue.d.ts +2 -0
  77. package/dist/errorsPage/OneNotFoundPage.vue.d.ts +2 -0
  78. package/dist/errorsPage/OneServerErrorPage.vue.d.ts +2 -0
  79. package/dist/errorsPage/OneSnakeGame.vue.d.ts +2 -0
  80. package/dist/errorsPage/createAppErrorHandler.d.ts +24 -0
  81. package/dist/errorsPage/errorsType.d.ts +5 -0
  82. package/dist/errorsPage/index.cjs +1 -1
  83. package/dist/errorsPage/index.d.ts +8 -0
  84. package/dist/errorsPage/index.js +557 -28
  85. package/dist/errorsPage/useCrashState.d.ts +10 -0
  86. package/dist/fileUpload/OneDropzone.vue.d.ts +2 -0
  87. package/dist/fileUpload/OneFileUpload.vue.d.ts +2 -0
  88. package/dist/fileUpload/fileUpload.d.ts +17 -0
  89. package/dist/fileUpload/index.cjs +1 -0
  90. package/dist/fileUpload/index.d.ts +6 -0
  91. package/dist/fileUpload/index.js +228 -0
  92. package/dist/filterBuilder/OneFilterBuilder.vue.d.ts +2 -0
  93. package/dist/filterBuilder/OneFilterGroup.vue.d.ts +2 -0
  94. package/dist/filterBuilder/OneFilterRule.vue.d.ts +2 -0
  95. package/dist/filterBuilder/filterBuilder.d.ts +17 -0
  96. package/dist/filterBuilder/index.cjs +1 -0
  97. package/dist/filterBuilder/index.d.ts +5 -0
  98. package/dist/filterBuilder/index.js +257 -0
  99. package/dist/form/form.d.ts +1 -1
  100. package/dist/form/index.cjs +1 -1
  101. package/dist/form/index.js +66 -574
  102. package/dist/i18n/index.cjs +1 -1
  103. package/dist/i18n/index.js +99 -15
  104. package/dist/index.cjs +1 -1
  105. package/dist/index.d.ts +18 -0
  106. package/dist/index.js +242 -104
  107. package/dist/indicators/OneStatCard.vue.d.ts +2 -0
  108. package/dist/indicators/index.cjs +1 -1
  109. package/dist/indicators/index.d.ts +1 -0
  110. package/dist/indicators/index.js +66 -29
  111. package/dist/label/index.cjs +1 -1
  112. package/dist/label/index.js +5 -5
  113. package/dist/layout/OneAuthLayout.vue.d.ts +2 -0
  114. package/dist/layout/OneBackButton.vue.d.ts +2 -0
  115. package/dist/layout/OneBreadcrumbs.vue.d.ts +2 -0
  116. package/dist/layout/OneEmptyLayout.vue.d.ts +6 -0
  117. package/dist/layout/OneGridLayout.vue.d.ts +2 -0
  118. package/dist/layout/index.cjs +1 -1
  119. package/dist/layout/index.d.ts +6 -1
  120. package/dist/layout/index.js +1057 -765
  121. package/dist/layout/layout.d.ts +11 -0
  122. package/dist/modal/OneModalHost.vue.d.ts +2 -0
  123. package/dist/modal/index.cjs +1 -1
  124. package/dist/modal/index.d.ts +3 -0
  125. package/dist/modal/index.js +84 -27
  126. package/dist/modal/modal.d.ts +9 -0
  127. package/dist/modal/useModalStack.d.ts +20 -0
  128. package/dist/notifications/OneNotificationItem.vue.d.ts +2 -0
  129. package/dist/notifications/OneNotificationsBell.vue.d.ts +2 -0
  130. package/dist/notifications/OneNotificationsPanel.vue.d.ts +2 -0
  131. package/dist/notifications/index.cjs +1 -0
  132. package/dist/notifications/index.d.ts +7 -0
  133. package/dist/notifications/index.js +477 -0
  134. package/dist/notifications/notifications.d.ts +53 -0
  135. package/dist/notifications/useNotifyfeed.d.ts +32 -0
  136. package/dist/periodPicker/index.cjs +1 -1
  137. package/dist/periodPicker/index.js +126 -139
  138. package/dist/popover/OnePopover.vue.d.ts +2 -0
  139. package/dist/popover/index.cjs +1 -0
  140. package/dist/popover/index.d.ts +3 -0
  141. package/dist/popover/index.js +102 -0
  142. package/dist/popover/popover.d.ts +31 -0
  143. package/dist/progress/OneProgress.vue.d.ts +2 -0
  144. package/dist/progress/index.cjs +1 -0
  145. package/dist/progress/index.d.ts +3 -0
  146. package/dist/progress/index.js +74 -0
  147. package/dist/progress/progress.d.ts +32 -0
  148. package/dist/searchInput/OneSearchInput.vue.d.ts +2 -0
  149. package/dist/searchInput/index.cjs +1 -0
  150. package/dist/searchInput/index.d.ts +3 -0
  151. package/dist/searchInput/index.js +103 -0
  152. package/dist/searchInput/searchInput.d.ts +39 -0
  153. package/dist/settings/OneSettingsLayout.vue.d.ts +2 -0
  154. package/dist/settings/OneSettingsRow.vue.d.ts +2 -0
  155. package/dist/settings/OneSettingsSection.vue.d.ts +2 -0
  156. package/dist/settings/index.cjs +1 -0
  157. package/dist/settings/index.d.ts +4 -0
  158. package/dist/settings/index.js +116 -0
  159. package/dist/spinner/OneSpinner.vue.d.ts +2 -0
  160. package/dist/spinner/index.cjs +1 -0
  161. package/dist/spinner/index.d.ts +3 -0
  162. package/dist/spinner/index.js +30 -0
  163. package/dist/spinner/spinner.d.ts +10 -0
  164. package/dist/stageBadge/index.cjs +1 -1
  165. package/dist/stageBadge/index.js +18 -16
  166. package/dist/stepper/OneStepper.vue.d.ts +2 -0
  167. package/dist/stepper/index.cjs +1 -0
  168. package/dist/stepper/index.d.ts +3 -0
  169. package/dist/stepper/index.js +53 -0
  170. package/dist/stepper/stepper.d.ts +24 -0
  171. package/dist/style.css +1 -1
  172. package/dist/switch/index.cjs +1 -1
  173. package/dist/switch/index.js +3 -4
  174. package/dist/tabs/OneTab.vue.d.ts +2 -0
  175. package/dist/tabs/OneTabs.vue.d.ts +2 -0
  176. package/dist/tabs/index.cjs +1 -0
  177. package/dist/tabs/index.d.ts +4 -0
  178. package/dist/tabs/index.js +64 -0
  179. package/dist/tabs/tabs.d.ts +7 -0
  180. package/dist/toast/OneMascotToast.vue.d.ts +2 -0
  181. package/dist/toast/RabbitIcon.vue.d.ts +2 -0
  182. package/dist/toast/index.cjs +1 -1
  183. package/dist/toast/index.d.ts +4 -0
  184. package/dist/toast/index.js +139 -74
  185. package/dist/toast/useMascotToast.d.ts +12 -0
  186. package/dist/tooltip/OneTooltip.vue.d.ts +2 -0
  187. package/dist/tooltip/index.cjs +2 -2
  188. package/dist/tooltip/index.d.ts +1 -0
  189. package/dist/tooltip/index.js +33 -30
  190. package/dist/useConfirm-6344b49d.cjs +1 -0
  191. package/dist/useConfirm-74e99a5c.js +23 -0
  192. package/dist/useCursorList-5c1b57aa.js +62 -0
  193. package/dist/useCursorList-e1cb41e7.cjs +1 -0
  194. package/dist/useElementWidth-b36a7ce9.js +40 -0
  195. package/dist/useElementWidth-b3e53f48.cjs +1 -0
  196. package/dist/useFileUpload-228dbc07.js +24 -0
  197. package/dist/useFileUpload-f47622bb.cjs +1 -0
  198. package/dist/useIsMobile-7b1f08cf.cjs +1 -0
  199. package/dist/useIsMobile-98fc0cf9.js +7 -0
  200. package/dist/useMediaQuery-1d87df02.cjs +1 -0
  201. package/dist/useMediaQuery-77a19b18.js +37 -0
  202. package/dist/useModal-6a5d870b.js +30 -0
  203. package/dist/useModal-aa6f4a57.cjs +1 -0
  204. package/dist/userList/OneUserInviteModal.vue.d.ts +2 -0
  205. package/dist/userList/OneUserList.vue.d.ts +2 -0
  206. package/dist/userList/OneUserListItem.vue.d.ts +2 -0
  207. package/dist/userList/index.cjs +1 -0
  208. package/dist/userList/index.d.ts +4 -0
  209. package/dist/userList/index.js +559 -0
  210. package/dist/utils/clipboard.d.ts +6 -0
  211. package/dist/utils/format.d.ts +17 -0
  212. package/dist/utils/index.cjs +1 -0
  213. package/dist/utils/index.d.ts +4 -0
  214. package/dist/utils/index.js +125 -0
  215. package/dist/utils/string.d.ts +25 -0
  216. package/dist/utils/versionChecker.d.ts +26 -0
  217. package/package.json +215 -24
  218. package/dist/ChevronRightIcon-7a2f0c20.cjs +0 -1
  219. package/dist/OneHelpMenu-c6e88d8f.cjs +0 -1
  220. package/dist/OneMarkdown.vue_vue_type_style_index_0_lang-0ea8fbf8.cjs +0 -1
  221. package/dist/OneMarkdown.vue_vue_type_style_index_0_lang-4ed993c7.js +0 -1
  222. package/dist/SpinnerIcon-ccb6f3fc.cjs +0 -1
  223. package/dist/SpinnerIcon.vue_vue_type_style_index_0_lang-0ea8fbf8.cjs +0 -1
  224. package/dist/SpinnerIcon.vue_vue_type_style_index_0_lang-4ed993c7.js +0 -1
  225. package/dist/useModal-0c73777f.cjs +0 -1
  226. package/dist/useModal-7fe9444b.js +0 -194
@@ -0,0 +1,228 @@
1
+ import { u as ae } from "../useFileUpload-228dbc07.js";
2
+ import { openBlock as r, createElementBlock as p, createElementVNode as c, defineComponent as C, computed as k, normalizeClass as D, createBlock as B, unref as w, toDisplayString as f, ref as S, renderSlot as $, createVNode as L, createTextVNode as N, createCommentVNode as j } from "vue";
3
+ import { OneSpinner as A } from "../spinner/index.js";
4
+ import { useOnebI18n as M } from "../i18n/index.js";
5
+ import { OneButton as V } from "../button/index.js";
6
+ import "../SpinnerIcon-516264ba.js";
7
+ import "../_plugin-vue_export-helper-dad06003.js";
8
+ function E(e, n) {
9
+ return r(), p("svg", {
10
+ xmlns: "http://www.w3.org/2000/svg",
11
+ fill: "none",
12
+ viewBox: "0 0 24 24",
13
+ "stroke-width": "1.8",
14
+ stroke: "currentColor",
15
+ "aria-hidden": "true"
16
+ }, [
17
+ c("path", {
18
+ "stroke-linecap": "round",
19
+ "stroke-linejoin": "round",
20
+ d: "M3 16.5v2.25A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75V16.5m-13.5-9L12 3m0 0l4.5 4.5M12 3v13.5"
21
+ })
22
+ ]);
23
+ }
24
+ const T = (e, n) => n ? n.split(",").map((t) => t.trim().toLowerCase()).some((t) => t ? t.startsWith(".") ? e.name.toLowerCase().endsWith(t) : t.endsWith("/*") ? e.type.toLowerCase().startsWith(t.slice(0, -1)) : e.type.toLowerCase() === t : !1) : !0, F = (e, n) => {
25
+ const t = [], o = [], m = n.multiple ? e : e.slice(0, 1);
26
+ for (const l of m) {
27
+ if (!T(l, n.accept)) {
28
+ o.push({ code: "type", file: l });
29
+ continue;
30
+ }
31
+ if (n.maxSizeMb != null && l.size > n.maxSizeMb * 1024 * 1024) {
32
+ o.push({ code: "size", file: l });
33
+ continue;
34
+ }
35
+ t.push(l);
36
+ }
37
+ return { accepted: t, errors: o };
38
+ }, W = {
39
+ key: 2,
40
+ class: "text-[#525B66] font-medium"
41
+ }, U = {
42
+ key: 3,
43
+ class: "text-[#525B66]"
44
+ }, R = ["accept", "multiple", "disabled"], _ = /* @__PURE__ */ C({
45
+ __name: "OneFileUpload",
46
+ props: {
47
+ label: {
48
+ type: String,
49
+ default: ""
50
+ },
51
+ accept: {
52
+ type: String,
53
+ default: void 0
54
+ },
55
+ multiple: {
56
+ type: Boolean,
57
+ default: !1
58
+ },
59
+ maxSizeMb: {
60
+ type: Number,
61
+ default: void 0
62
+ },
63
+ disabled: {
64
+ type: Boolean,
65
+ default: !1
66
+ },
67
+ loading: {
68
+ type: Boolean,
69
+ default: !1
70
+ },
71
+ t: {
72
+ type: Function,
73
+ default: void 0
74
+ }
75
+ },
76
+ emits: ["files", "error"],
77
+ setup(e, { emit: n }) {
78
+ const t = e, o = n, m = M(), l = k(() => t.t ?? m), s = (d) => {
79
+ const u = d.target, b = Array.from(u.files ?? []);
80
+ if (u.value = "", b.length === 0)
81
+ return;
82
+ const { accepted: h, errors: v } = F(b, {
83
+ accept: t.accept,
84
+ maxSizeMb: t.maxSizeMb,
85
+ multiple: t.multiple
86
+ });
87
+ v.forEach((y) => o("error", y)), h.length > 0 && o("files", h);
88
+ };
89
+ return (d, u) => (r(), p("label", {
90
+ class: D(["hover:text-blue-500 cursor-pointer text-sm w-full h-full flex items-center border hover:bg-gray-50 px-3 py-2 rounded-md gap-3", { "opacity-60 cursor-not-allowed pointer-events-none": e.disabled }])
91
+ }, [
92
+ e.loading ? (r(), B(w(A), {
93
+ key: 0,
94
+ size: "sm"
95
+ })) : (r(), B(w(E), {
96
+ key: 1,
97
+ class: "w-4 h-4 text-[#525B66]"
98
+ })),
99
+ e.loading ? (r(), p("span", U, f(l.value("ui.file_upload.uploading")) + "...", 1)) : (r(), p("span", W, f(e.label || l.value("ui.file_upload.select")), 1)),
100
+ c("input", {
101
+ class: "hidden",
102
+ type: "file",
103
+ accept: e.accept,
104
+ multiple: e.multiple,
105
+ disabled: e.disabled,
106
+ onChange: s
107
+ }, null, 40, R)
108
+ ], 2));
109
+ }
110
+ }), I = ["accept", "multiple", "disabled"], P = { class: "text-base font-medium text-gray-900" }, q = { class: "text-xs text-gray-500" }, G = {
111
+ key: 0,
112
+ class: "mt-4 text-sm text-gray-700"
113
+ }, H = { class: "font-semibold" }, ee = /* @__PURE__ */ C({
114
+ __name: "OneDropzone",
115
+ props: {
116
+ accept: {
117
+ type: String,
118
+ default: void 0
119
+ },
120
+ multiple: {
121
+ type: Boolean,
122
+ default: !1
123
+ },
124
+ maxSizeMb: {
125
+ type: Number,
126
+ default: void 0
127
+ },
128
+ disabled: {
129
+ type: Boolean,
130
+ default: !1
131
+ },
132
+ hint: {
133
+ type: String,
134
+ default: ""
135
+ },
136
+ help: {
137
+ type: String,
138
+ default: ""
139
+ },
140
+ buttonLabel: {
141
+ type: String,
142
+ default: ""
143
+ },
144
+ t: {
145
+ type: Function,
146
+ default: void 0
147
+ }
148
+ },
149
+ emits: ["files", "error"],
150
+ setup(e, { emit: n }) {
151
+ const t = e, o = n, m = M(), l = k(() => t.t ?? m), s = S(!1), d = S([]), u = S(null), b = (a) => {
152
+ const i = Array.from(a ?? []);
153
+ if (i.length === 0)
154
+ return;
155
+ const { accepted: g, errors: O } = F(i, {
156
+ accept: t.accept,
157
+ maxSizeMb: t.maxSizeMb,
158
+ multiple: t.multiple
159
+ });
160
+ O.forEach((z) => o("error", z)), g.length > 0 && (d.value = g.map((z) => z.name), o("files", g));
161
+ }, h = (a) => {
162
+ var i;
163
+ a.preventDefault(), s.value = !1, !t.disabled && b(((i = a.dataTransfer) == null ? void 0 : i.files) ?? null);
164
+ }, v = (a) => {
165
+ a.preventDefault(), !t.disabled && (s.value = !0);
166
+ }, y = (a) => {
167
+ if (t.disabled)
168
+ return;
169
+ const i = a.target;
170
+ b(i.files), i.value = "";
171
+ }, x = () => {
172
+ var a;
173
+ t.disabled || (a = u.value) == null || a.click();
174
+ };
175
+ return (a, i) => (r(), p("div", {
176
+ class: D(["border-2 border-dashed rounded-xl bg-white p-6 flex flex-col items-center justify-center text-center transition-colors", {
177
+ "border-blue-500 bg-blue-50": s.value && !e.disabled,
178
+ "border-gray-300": !s.value || e.disabled,
179
+ "opacity-60 cursor-not-allowed": e.disabled
180
+ }]),
181
+ "data-test": "dropzone",
182
+ onDrop: h,
183
+ onDragover: v,
184
+ onDragleave: i[0] || (i[0] = (g) => s.value = !1)
185
+ }, [
186
+ c("input", {
187
+ ref_key: "inputRef",
188
+ ref: u,
189
+ type: "file",
190
+ accept: e.accept,
191
+ multiple: e.multiple,
192
+ class: "hidden",
193
+ disabled: e.disabled,
194
+ onChange: y
195
+ }, null, 40, I),
196
+ $(a.$slots, "default", {
197
+ isDragging: s.value,
198
+ openPicker: x
199
+ }, () => [
200
+ c("div", {
201
+ class: "cursor-pointer flex flex-col items-center gap-2",
202
+ onClick: x
203
+ }, [
204
+ c("span", P, f(e.hint || l.value("ui.dropzone.hint")), 1),
205
+ c("span", q, f(e.help || l.value("ui.dropzone.help")), 1)
206
+ ]),
207
+ L(w(V), {
208
+ type: "button",
209
+ variant: "primary",
210
+ class: "mt-3",
211
+ label: e.buttonLabel || l.value("ui.dropzone.choose"),
212
+ disabled: e.disabled,
213
+ onClick: x
214
+ }, null, 8, ["label", "disabled"]),
215
+ d.value.length ? (r(), p("div", G, [
216
+ N(f(l.value("ui.dropzone.selected")) + ": ", 1),
217
+ c("span", H, f(d.value.join(", ")), 1)
218
+ ])) : j("", !0)
219
+ ])
220
+ ], 34));
221
+ }
222
+ });
223
+ export {
224
+ ee as OneDropzone,
225
+ _ as OneFileUpload,
226
+ ae as useFileUpload,
227
+ F as validateFiles
228
+ };
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: any;
2
+ export default _default;
@@ -0,0 +1,17 @@
1
+ export type FilterFieldType = 'string' | 'int' | 'bool';
2
+ export interface FilterFieldConfig {
3
+ field: string;
4
+ label: string;
5
+ type: FilterFieldType;
6
+ }
7
+ export interface FilterRuleNode {
8
+ field: string;
9
+ operator: string;
10
+ value: string | number;
11
+ }
12
+ export interface FilterGroupNode {
13
+ operator: 'and' | 'or';
14
+ conditions: (FilterRuleNode | FilterGroupNode)[];
15
+ }
16
+ export declare const isFilterGroup: (node: FilterRuleNode | FilterGroupNode | undefined | null) => node is FilterGroupNode;
17
+ export declare const operatorsForType: (type: FilterFieldType | undefined) => string[];
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),k=require("../i18n/index.cjs"),f=t=>t!=null&&t.conditions!==void 0,B=t=>t==="bool"?["1","0"]:t==="int"?["=","!=","<",">","<=",">="]:t==="string"?["=","!=","*","!*"]:[],E={class:"flex gap-2 items-center hover:bg-gray-100 py-1 px-1 rounded-md","data-test":"filter-rule"},C=["disabled"],x={disabled:"",value:""},h=["value"],F=["disabled"],N={disabled:"",value:""},D=["disabled"],$=["disabled"],V=e.defineComponent({__name:"OneFilterRule",props:{rule:{type:Object,default:()=>({field:"",operator:"",value:""})},config:{type:Array,required:!0},readonly:{type:Boolean,default:!1},t:{type:Function,default:void 0}},emits:["update:rule","remove"],setup(t,{emit:s}){const r=t,c=s,p=k.useOnebI18n(),a=e.computed(()=>r.t??p),o=e.reactive({...r.rule});e.watch(o,()=>{c("update:rule",{...o})},{deep:!0});const i=e.computed(()=>{var u;return(u=r.config.find(n=>n.field===o.field))==null?void 0:u.type}),g=e.computed(()=>B(i.value)),m=()=>{o.operator="",o.value=""};return(u,n)=>(e.openBlock(),e.createElementBlock("div",E,[e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":n[0]||(n[0]=l=>o.field=l),class:e.normalizeClass(["pl-2 py-2 pr-6 rounded text-sm flex-shrink flex-grow border",o.field?"":"text-gray-400"]),disabled:t.readonly,"data-test":"rule-field",onChange:m},[e.createElementVNode("option",x,e.toDisplayString(a.value("ui.filter.field")),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.config,l=>(e.openBlock(),e.createElementBlock("option",{key:l.field,value:l.field},e.toDisplayString(l.label),9,h))),128))],42,C),[[e.vModelSelect,o.field]]),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":n[1]||(n[1]=l=>o.operator=l),class:e.normalizeClass(["pl-2 py-2 pr-6 rounded text-sm min-w-20 border",o.operator?"":"text-gray-400"]),disabled:t.readonly,"data-test":"rule-operator"},[e.createElementVNode("option",N,e.toDisplayString(a.value("ui.filter.operator")),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.value,l=>(e.openBlock(),e.createElementBlock("option",{key:l},e.toDisplayString(l),1))),128))],10,F),[[e.vModelSelect,o.operator]]),i.value==="int"?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,"onUpdate:modelValue":n[2]||(n[2]=l=>o.value=l),type:"number",step:"1",class:"rounded text-sm border px-2 py-2",disabled:t.readonly,"data-test":"rule-value"},null,8,D)),[[e.vModelText,o.value]]):i.value==="string"?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:1,"onUpdate:modelValue":n[3]||(n[3]=l=>o.value=l),type:"text",class:"rounded text-sm border px-2 py-2",disabled:t.readonly,"data-test":"rule-value"},null,8,$)),[[e.vModelText,o.value]]):e.createCommentVNode("",!0),t.readonly?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",class:"p-2","data-test":"rule-remove",onClick:n[4]||(n[4]=l=>u.$emit("remove"))}," ✕ "))]))}}),S={class:"flex justify-between items-center border-b-2 gap-5 p-1"},w={class:"w-full"},O=["disabled"],U={value:"and"},T={value:"or"},j={class:"space-y-2"},G={key:0,class:"flex gap-2 p-2"},b=e.defineComponent({__name:"OneFilterGroup",props:{group:{type:Object,default:()=>({operator:"and",conditions:[]})},config:{type:Array,required:!0},readonly:{type:Boolean,default:!1},level:{type:Number,default:0},t:{type:Function,default:void 0}},emits:["update:group","remove"],setup(t,{emit:s}){const r=t,c=s,p=k.useOnebI18n(),a=e.computed(()=>r.t??p),o=e.reactive({operator:r.group.operator??"and",conditions:[...r.group.conditions??[]]});e.watch(o,()=>{c("update:group",{operator:o.operator,conditions:[...o.conditions]})},{deep:!0});const i=()=>{o.conditions.push({field:"",operator:"",value:""})},g=()=>{o.conditions.push({operator:"and",conditions:[]})},m=(n,l)=>{o.conditions[n]=l},u=n=>{o.conditions.splice(n,1)};return(n,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["border-l-4 pl-2 py-2 rounded space-y-2",{"border-violet-500":t.level===0,"border-blue-500":t.level===1,"border-green-500":t.level===2,"border-orange-500":t.level===3}]),"data-test":"filter-group"},[e.createElementVNode("div",S,[e.createElementVNode("label",w,[e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":l[0]||(l[0]=d=>o.operator=d),class:"py-2 pr-10 border-none w-full",disabled:t.readonly,"data-test":"group-operator"},[e.createElementVNode("option",U,e.toDisplayString(a.value("ui.filter.and")),1),e.createElementVNode("option",T,e.toDisplayString(a.value("ui.filter.or")),1)],8,O),[[e.vModelSelect,o.operator]])]),!t.readonly&&t.level>0?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"p-2","data-test":"group-remove",onClick:l[1]||(l[1]=d=>n.$emit("remove"))}," ✕ ")):e.createCommentVNode("",!0)]),e.createElementVNode("div",j,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.conditions,(d,y)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(f)(d)?b:V),{key:y,rule:e.unref(f)(d)?void 0:d,group:e.unref(f)(d)?d:void 0,config:t.config,level:t.level+1,readonly:t.readonly,t:r.t,"onUpdate:rule":v=>m(y,v),"onUpdate:group":v=>m(y,v),onRemove:v=>u(y)},null,40,["rule","group","config","level","readonly","t","onUpdate:rule","onUpdate:group","onRemove"]))),128))]),t.readonly?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",G,[e.createElementVNode("button",{type:"button",class:"px-2 py-1 bg-gray-100 rounded-md text-sm hover:bg-gray-200","data-test":"add-rule",onClick:i},e.toDisplayString(a.value("ui.filter.add_rule")),1),t.level<3?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"px-2 py-1 bg-gray-100 rounded-md text-sm hover:bg-gray-200","data-test":"add-group",onClick:g},e.toDisplayString(a.value("ui.filter.add_group")),1)):e.createCommentVNode("",!0)]))],2))}}),M=e.defineComponent({__name:"OneFilterBuilder",props:{modelValue:{type:Object,default:null},config:{type:Array,required:!0},readonly:{type:Boolean,default:!1},t:{type:Function,default:void 0}},emits:["update:modelValue"],setup(t,{emit:s}){const r=t,c=s,p=e.computed(()=>r.modelValue??{operator:"and",conditions:[]});return(a,o)=>(e.openBlock(),e.createBlock(b,{group:p.value,config:t.config,readonly:t.readonly,t:r.t,"onUpdate:group":o[0]||(o[0]=i=>c("update:modelValue",i))},null,8,["group","config","readonly","t"]))}});exports.OneFilterBuilder=M;exports.OneFilterGroup=b;exports.OneFilterRule=V;exports.isFilterGroup=f;exports.operatorsForType=B;
@@ -0,0 +1,5 @@
1
+ export { default as OneFilterBuilder } from './OneFilterBuilder.vue';
2
+ export { default as OneFilterGroup } from './OneFilterGroup.vue';
3
+ export { default as OneFilterRule } from './OneFilterRule.vue';
4
+ export { isFilterGroup, operatorsForType } from './filterBuilder';
5
+ export type { FilterFieldConfig, FilterFieldType, FilterRuleNode, FilterGroupNode } from './filterBuilder';
@@ -0,0 +1,257 @@
1
+ import { defineComponent as w, computed as g, reactive as R, watch as G, openBlock as r, createElementBlock as n, withDirectives as m, createElementVNode as a, normalizeClass as V, toDisplayString as s, Fragment as O, renderList as U, vModelSelect as B, vModelText as j, createCommentVNode as b, createBlock as T, resolveDynamicComponent as D, unref as h } from "vue";
2
+ import { useOnebI18n as q } from "../i18n/index.js";
3
+ const C = (e) => e != null && e.conditions !== void 0, N = (e) => e === "bool" ? ["1", "0"] : e === "int" ? ["=", "!=", "<", ">", "<=", ">="] : e === "string" ? ["=", "!=", "*", "!*"] : [], E = {
4
+ class: "flex gap-2 items-center hover:bg-gray-100 py-1 px-1 rounded-md",
5
+ "data-test": "filter-rule"
6
+ }, M = ["disabled"], S = {
7
+ disabled: "",
8
+ value: ""
9
+ }, z = ["value"], I = ["disabled"], L = {
10
+ disabled: "",
11
+ value: ""
12
+ }, H = ["disabled"], J = ["disabled"], K = /* @__PURE__ */ w({
13
+ __name: "OneFilterRule",
14
+ props: {
15
+ rule: {
16
+ type: Object,
17
+ default: () => ({ field: "", operator: "", value: "" })
18
+ },
19
+ config: {
20
+ type: Array,
21
+ required: !0
22
+ },
23
+ readonly: {
24
+ type: Boolean,
25
+ default: !1
26
+ },
27
+ t: {
28
+ type: Function,
29
+ default: void 0
30
+ }
31
+ },
32
+ emits: ["update:rule", "remove"],
33
+ setup(e, { emit: y }) {
34
+ const d = e, v = y, f = q(), u = g(() => d.t ?? f), t = R({ ...d.rule });
35
+ G(
36
+ t,
37
+ () => {
38
+ v("update:rule", { ...t });
39
+ },
40
+ { deep: !0 }
41
+ );
42
+ const p = g(
43
+ () => {
44
+ var c;
45
+ return (c = d.config.find((l) => l.field === t.field)) == null ? void 0 : c.type;
46
+ }
47
+ ), F = g(() => N(p.value)), x = () => {
48
+ t.operator = "", t.value = "";
49
+ };
50
+ return (c, l) => (r(), n("div", E, [
51
+ m(a("select", {
52
+ "onUpdate:modelValue": l[0] || (l[0] = (o) => t.field = o),
53
+ class: V(["pl-2 py-2 pr-6 rounded text-sm flex-shrink flex-grow border", t.field ? "" : "text-gray-400"]),
54
+ disabled: e.readonly,
55
+ "data-test": "rule-field",
56
+ onChange: x
57
+ }, [
58
+ a("option", S, s(u.value("ui.filter.field")), 1),
59
+ (r(!0), n(O, null, U(e.config, (o) => (r(), n("option", {
60
+ key: o.field,
61
+ value: o.field
62
+ }, s(o.label), 9, z))), 128))
63
+ ], 42, M), [
64
+ [B, t.field]
65
+ ]),
66
+ m(a("select", {
67
+ "onUpdate:modelValue": l[1] || (l[1] = (o) => t.operator = o),
68
+ class: V(["pl-2 py-2 pr-6 rounded text-sm min-w-20 border", t.operator ? "" : "text-gray-400"]),
69
+ disabled: e.readonly,
70
+ "data-test": "rule-operator"
71
+ }, [
72
+ a("option", L, s(u.value("ui.filter.operator")), 1),
73
+ (r(!0), n(O, null, U(F.value, (o) => (r(), n("option", { key: o }, s(o), 1))), 128))
74
+ ], 10, I), [
75
+ [B, t.operator]
76
+ ]),
77
+ p.value === "int" ? m((r(), n("input", {
78
+ key: 0,
79
+ "onUpdate:modelValue": l[2] || (l[2] = (o) => t.value = o),
80
+ type: "number",
81
+ step: "1",
82
+ class: "rounded text-sm border px-2 py-2",
83
+ disabled: e.readonly,
84
+ "data-test": "rule-value"
85
+ }, null, 8, H)), [
86
+ [j, t.value]
87
+ ]) : p.value === "string" ? m((r(), n("input", {
88
+ key: 1,
89
+ "onUpdate:modelValue": l[3] || (l[3] = (o) => t.value = o),
90
+ type: "text",
91
+ class: "rounded text-sm border px-2 py-2",
92
+ disabled: e.readonly,
93
+ "data-test": "rule-value"
94
+ }, null, 8, J)), [
95
+ [j, t.value]
96
+ ]) : b("", !0),
97
+ e.readonly ? b("", !0) : (r(), n("button", {
98
+ key: 2,
99
+ type: "button",
100
+ class: "p-2",
101
+ "data-test": "rule-remove",
102
+ onClick: l[4] || (l[4] = (o) => c.$emit("remove"))
103
+ }, " ✕ "))
104
+ ]));
105
+ }
106
+ }), P = { class: "flex justify-between items-center border-b-2 gap-5 p-1" }, Q = { class: "w-full" }, W = ["disabled"], X = { value: "and" }, Y = { value: "or" }, Z = { class: "space-y-2" }, _ = {
107
+ key: 0,
108
+ class: "flex gap-2 p-2"
109
+ }, A = /* @__PURE__ */ w({
110
+ __name: "OneFilterGroup",
111
+ props: {
112
+ group: {
113
+ type: Object,
114
+ default: () => ({ operator: "and", conditions: [] })
115
+ },
116
+ config: {
117
+ type: Array,
118
+ required: !0
119
+ },
120
+ readonly: {
121
+ type: Boolean,
122
+ default: !1
123
+ },
124
+ level: {
125
+ type: Number,
126
+ default: 0
127
+ },
128
+ t: {
129
+ type: Function,
130
+ default: void 0
131
+ }
132
+ },
133
+ emits: ["update:group", "remove"],
134
+ setup(e, { emit: y }) {
135
+ const d = e, v = y, f = q(), u = g(() => d.t ?? f), t = R({
136
+ operator: d.group.operator ?? "and",
137
+ conditions: [...d.group.conditions ?? []]
138
+ });
139
+ G(
140
+ t,
141
+ () => {
142
+ v("update:group", { operator: t.operator, conditions: [...t.conditions] });
143
+ },
144
+ { deep: !0 }
145
+ );
146
+ const p = () => {
147
+ t.conditions.push({ field: "", operator: "", value: "" });
148
+ }, F = () => {
149
+ t.conditions.push({ operator: "and", conditions: [] });
150
+ }, x = (l, o) => {
151
+ t.conditions[l] = o;
152
+ }, c = (l) => {
153
+ t.conditions.splice(l, 1);
154
+ };
155
+ return (l, o) => (r(), n("div", {
156
+ class: V(["border-l-4 pl-2 py-2 rounded space-y-2", {
157
+ "border-violet-500": e.level === 0,
158
+ "border-blue-500": e.level === 1,
159
+ "border-green-500": e.level === 2,
160
+ "border-orange-500": e.level === 3
161
+ }]),
162
+ "data-test": "filter-group"
163
+ }, [
164
+ a("div", P, [
165
+ a("label", Q, [
166
+ m(a("select", {
167
+ "onUpdate:modelValue": o[0] || (o[0] = (i) => t.operator = i),
168
+ class: "py-2 pr-10 border-none w-full",
169
+ disabled: e.readonly,
170
+ "data-test": "group-operator"
171
+ }, [
172
+ a("option", X, s(u.value("ui.filter.and")), 1),
173
+ a("option", Y, s(u.value("ui.filter.or")), 1)
174
+ ], 8, W), [
175
+ [B, t.operator]
176
+ ])
177
+ ]),
178
+ !e.readonly && e.level > 0 ? (r(), n("button", {
179
+ key: 0,
180
+ type: "button",
181
+ class: "p-2",
182
+ "data-test": "group-remove",
183
+ onClick: o[1] || (o[1] = (i) => l.$emit("remove"))
184
+ }, " ✕ ")) : b("", !0)
185
+ ]),
186
+ a("div", Z, [
187
+ (r(!0), n(O, null, U(t.conditions, (i, k) => (r(), T(D(h(C)(i) ? A : K), {
188
+ key: k,
189
+ rule: h(C)(i) ? void 0 : i,
190
+ group: h(C)(i) ? i : void 0,
191
+ config: e.config,
192
+ level: e.level + 1,
193
+ readonly: e.readonly,
194
+ t: d.t,
195
+ "onUpdate:rule": ($) => x(k, $),
196
+ "onUpdate:group": ($) => x(k, $),
197
+ onRemove: ($) => c(k)
198
+ }, null, 40, ["rule", "group", "config", "level", "readonly", "t", "onUpdate:rule", "onUpdate:group", "onRemove"]))), 128))
199
+ ]),
200
+ e.readonly ? b("", !0) : (r(), n("div", _, [
201
+ a("button", {
202
+ type: "button",
203
+ class: "px-2 py-1 bg-gray-100 rounded-md text-sm hover:bg-gray-200",
204
+ "data-test": "add-rule",
205
+ onClick: p
206
+ }, s(u.value("ui.filter.add_rule")), 1),
207
+ e.level < 3 ? (r(), n("button", {
208
+ key: 0,
209
+ type: "button",
210
+ class: "px-2 py-1 bg-gray-100 rounded-md text-sm hover:bg-gray-200",
211
+ "data-test": "add-group",
212
+ onClick: F
213
+ }, s(u.value("ui.filter.add_group")), 1)) : b("", !0)
214
+ ]))
215
+ ], 2));
216
+ }
217
+ }), oe = /* @__PURE__ */ w({
218
+ __name: "OneFilterBuilder",
219
+ props: {
220
+ modelValue: {
221
+ type: Object,
222
+ default: null
223
+ },
224
+ config: {
225
+ type: Array,
226
+ required: !0
227
+ },
228
+ readonly: {
229
+ type: Boolean,
230
+ default: !1
231
+ },
232
+ t: {
233
+ type: Function,
234
+ default: void 0
235
+ }
236
+ },
237
+ emits: ["update:modelValue"],
238
+ setup(e, { emit: y }) {
239
+ const d = e, v = y, f = g(
240
+ () => d.modelValue ?? { operator: "and", conditions: [] }
241
+ );
242
+ return (u, t) => (r(), T(A, {
243
+ group: f.value,
244
+ config: e.config,
245
+ readonly: e.readonly,
246
+ t: d.t,
247
+ "onUpdate:group": t[0] || (t[0] = (p) => v("update:modelValue", p))
248
+ }, null, 8, ["group", "config", "readonly", "t"]));
249
+ }
250
+ });
251
+ export {
252
+ oe as OneFilterBuilder,
253
+ A as OneFilterGroup,
254
+ K as OneFilterRule,
255
+ C as isFilterGroup,
256
+ N as operatorsForType
257
+ };
@@ -101,7 +101,7 @@ export declare const formInputProps: {
101
101
  };
102
102
  /** Type of input field */
103
103
  type: {
104
- type: PropType<"number" | "checkbox" | "text" | "search" | "select" | "color" | "password" | "email" | "tel" | "url" | "radio" | "range" | "textarea" | "date" | "time" | "datetime-local" | "month" | "week">;
104
+ type: PropType<"number" | "checkbox" | "text" | "textarea" | "select" | "time" | "search" | "color" | "password" | "email" | "tel" | "url" | "radio" | "range" | "date" | "datetime-local" | "month" | "week">;
105
105
  default: string;
106
106
  };
107
107
  /** Additional CSS classes to apply to the input element */
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),j=require("../XMarkIcon-f94baa4c.cjs"),I={id:{type:String,required:!1},validation:{type:Object,required:!1}},L={id:{type:String,required:!1},label:{type:String,required:!1},name:{type:String,required:!1},required:{required:!1,type:Boolean,default:!1},hint:{type:String,required:!1,default:""},errors:{type:Array,required:!1}},D={name:{type:String,required:!1},errors:{type:Array,required:!1}},A={label:{type:String,required:!1}},M={id:{type:String,required:!1},name:{type:String,required:!1},placeholder:{type:String,default:""},icon:{type:[Function,Object]},type:{type:String,default:"text"},inputClass:{required:!1,type:[Array,String]},modelValue:{required:!1,type:[String,Number,Array,Boolean,Object,null]},autofocus:{type:Boolean,default:!1},required:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},rounded:{type:Boolean,default:!1},large:{type:Boolean,default:!1},invalid:{type:Boolean,required:!1,default:!1},options:{type:Array,required:!1,default:[]},autocomplete:{type:String,required:!1,default:""},maxlength:{type:Number,required:!1},minlength:{type:Number,required:!1},min:{type:[Number,String],required:!1},max:{type:[Number,String],required:!1},step:{type:[Number,String],required:!1},pattern:{type:String,required:!1},rows:{type:Number,default:3},cols:{type:Number,required:!1},resize:{type:String,default:"vertical"},spellcheck:{type:Boolean,required:!1},inputmode:{type:String,required:!1},tabindex:{type:Number,required:!1},ariaLabel:{type:String,required:!1},ariaDescribedby:{type:String,required:!1}},V=()=>e.inject("BaseForm",()=>({formId:e.computed(()=>{}),validation:e.computed(()=>{})}),!0),w=()=>e.inject("BaseFormField",()=>({inputId:e.computed(()=>{}),inputName:e.computed(()=>{}),hasError:e.computed(()=>!1)}),!0),P=["id"],K=e.defineComponent({__name:"OneForm",props:I,emits:["submit"],setup(i,{emit:n}){const a=i,l=n;e.provide("BaseForm",{formId:e.computed(()=>a.id),validation:e.computed(()=>a.validation)});const t=()=>{l("submit")};return(o,c)=>(e.openBlock(),e.createElementBlock("form",{onSubmit:e.withModifiers(t,["prevent"]),id:o.id,class:"space-y-3"},[e.renderSlot(o.$slots,"default")],40,P))}}),T=["for"],q=e.defineComponent({__name:"OneFormLabel",props:A,setup(i){const{inputId:n}=w();return(a,l)=>(e.openBlock(),e.createElementBlock("label",{for:e.unref(n),class:"text-sm font-medium text-primary-content select-none flex justify-between"},[e.createElementVNode("span",null,[e.renderSlot(a.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(a.label),1)])]),e.renderSlot(a.$slots,"right")],8,T))}}),X={key:0,class:"text-danger-content text-xs space-y-1"},C=e.defineComponent({__name:"OneFormFeedback",props:D,setup(i){const n=i,{validation:a}=V(),{inputName:l}=w(),t=e.computed(()=>l.value==null&&n.name==null?n.errors??[]:a.value==null?n.errors??[]:(a.value??{})[n.name||l.value]??n.errors??[]);return(o,c)=>t.value.length>0?(e.openBlock(),e.createElementBlock("div",X,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.value,u=>(e.openBlock(),e.createElementBlock("div",{key:u},e.toDisplayString(u),1))),128))])):e.createCommentVNode("",!0)}});function G(i,n){return e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.8",stroke:"currentColor","aria-hidden":"true"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M2.036 12.322a1.012 1.012 0 010-.639C3.423 7.51 7.36 4.5 12 4.5c4.638 0 8.573 3.007 9.963 7.178.07.207.07.431 0 .639C20.577 16.49 16.64 19.5 12 19.5c-4.638 0-8.573-3.007-9.963-7.178z"}),e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"})])}function H(i,n){return e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.8",stroke:"currentColor","aria-hidden":"true"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M3.98 8.223A10.477 10.477 0 001.934 12C3.226 16.338 7.244 19.5 12 19.5c.993 0 1.953-.138 2.863-.395M6.228 6.228A10.45 10.45 0 0112 4.5c4.756 0 8.773 3.162 10.065 7.498a10.523 10.523 0 01-4.293 5.774M6.228 6.228L3 3m3.228 3.228l3.65 3.65m7.894 7.894L21 21m-3.228-3.228l-3.65-3.65m0 0a3 3 0 10-4.243-4.243m4.242 4.242L9.88 9.88"})])}const J=["id","disabled","tabindex"],Q=["selected"],R=["selected","value"],U=["name","id","value","rows","cols","maxlength","minlength","spellcheck","placeholder","disabled","readonly","tabindex","aria-label","aria-describedby"],W={key:2,class:"flex w-full space-x-3 items-center"},Y=["type","name","id","disabled","readonly","tabindex","aria-label","aria-describedby","checked"],Z=["for"],x={key:3,class:"w-full space-y-1"},_=["name","id","value","disabled","readonly","tabindex","checked"],ee=["for"],re={key:4,class:"relative"},le={class:"absolute p-2 px-3 rounded-md h-full flex items-center select-none pointer-events-none"},ne=["type","name","id","value","placeholder","disabled","readonly","maxlength","minlength","min","max","step","pattern","spellcheck","inputmode","tabindex","autocomplete","aria-label","aria-describedby"],N=e.defineComponent({__name:"OneFormInput",props:M,emits:["update:modelValue","focus","blur","change","input","keydown","keyup","keypress","clear","toggle-password"],setup(i,{expose:n,emit:a}){const l=i,t=a,{inputId:o,inputName:c,hasError:u}=w(),s=e.ref(null),m=e.ref(!1);e.onMounted(()=>{l.autofocus&&s.value&&s.value.focus()});const F=e.computed(()=>l.modelValue!=null&&l.modelValue!==""),p=e.computed(()=>{if(l.id)return l.id;const r=(o==null?void 0:o.value)||"";return l.name?`${r}-${l.name}`:r||""}),$=()=>{t("update:modelValue",""),t("clear"),E()},z=()=>{m.value=!m.value,t("toggle-password",m.value)},E=()=>{if(s.value){const r=Array.isArray(s.value)?s.value[0]:s.value;r==null||r.focus()}},O=e.computed(()=>{const r={"shadow-sm":l.type!=="range","border-danger-base":u.value||l.invalid,"pl-10":l.icon!=null,"pr-10":l.type==="password","rounded-full":l.rounded,"rounded-md":!l.rounded,"text-lg":l.large,"py-2.5":l.large,"py-2":!l.large};return l.inputClass!=null&&(typeof l.inputClass=="string"?r[l.inputClass]=!0:l.inputClass instanceof Array&&l.inputClass.forEach(h=>{r[h]=!0})),r}),y=r=>{const h=r.target;if(l.type==="checkbox"){const d=h.checked;t("update:modelValue",d),t("input",r)}else t("update:modelValue",h.value),t("input",r)},f=r=>t("focus",r),b=r=>t("blur",r),k=r=>t("change",r),g=r=>t("keydown",r),v=r=>t("keyup",r),B=r=>t("keypress",r);return n({focus:E}),(r,h)=>r.type==="select"?(e.openBlock(),e.createElementBlock("select",{key:0,id:p.value,ref_key:"inputElement",ref:s,class:e.normalizeClass(["border border-primary-stroke px-3 w-full",{"border-danger-base":e.unref(u)||r.invalid,"text-secondary-content":r.modelValue===""||r.modelValue==null,"rounded-full":r.rounded,"rounded-md":!r.rounded,"text-lg":r.large,"py-2.5":r.large,"py-2":!r.large}]),disabled:r.disabled,tabindex:r.tabindex,onInput:y,onFocus:f,onBlur:b,onChange:k,onKeydown:g,onKeyup:v,onKeypress:B},[r.placeholder?(e.openBlock(),e.createElementBlock("option",{key:0,selected:r.modelValue===""||r.modelValue==null,disabled:"",hidden:""},e.toDisplayString(r.placeholder),9,Q)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.options,d=>(e.openBlock(),e.createElementBlock("option",{selected:d.key===r.modelValue,key:d.key,value:d.key},e.toDisplayString(d.value),9,R))),128))],42,J)):r.type==="textarea"?(e.openBlock(),e.createElementBlock("textarea",{key:1,name:r.name||e.unref(c),id:p.value,value:r.modelValue,rows:r.rows,cols:r.cols,maxlength:r.maxlength,minlength:r.minlength,spellcheck:r.spellcheck,placeholder:r.placeholder,disabled:r.disabled,readonly:r.readonly,tabindex:r.tabindex,"aria-label":r.ariaLabel,"aria-describedby":r.ariaDescribedby,onInput:y,onFocus:f,onBlur:b,onChange:k,onKeydown:g,onKeyup:v,onKeypress:B,class:e.normalizeClass(["border border-primary-stroke px-3 w-full placeholder-gray-400",{"border-danger-base":e.unref(u),"rounded-3xl":r.rounded,"rounded-md":!r.rounded,"text-lg":r.large,"py-2.5":r.large,"py-2":!r.large,"resize-none":r.resize==="none","resize-both":r.resize==="both","resize-x":r.resize==="horizontal","resize-y":r.resize==="vertical"}]),ref_key:"inputElement",ref:s},null,42,U)):r.type==="checkbox"?(e.openBlock(),e.createElementBlock("div",W,[e.createElementVNode("input",{type:r.type,name:r.name||e.unref(c),id:p.value,value:!0,disabled:r.disabled,readonly:r.readonly,tabindex:r.tabindex,"aria-label":r.ariaLabel,"aria-describedby":r.ariaDescribedby,checked:r.modelValue===!0,onInput:y,onFocus:f,onBlur:b,onChange:k,class:e.normalizeClass(["rounded-md border border-primary-stroke px-2 py-2 shadow-sm",{"border-danger-base":e.unref(u)||r.invalid}]),ref_key:"inputElement",ref:s},null,42,Y),e.createElementVNode("label",{for:p.value,class:"text-primary-content select-none"},e.toDisplayString(r.placeholder),9,Z)])):r.type==="radio"?(e.openBlock(),e.createElementBlock("div",x,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.options,(d,S)=>(e.openBlock(),e.createElementBlock("div",{key:d.key,class:"flex w-full space-x-3 items-center"},[e.createElementVNode("input",{type:"radio",name:r.name||e.unref(c),id:`${p.value}-${S}`,value:d.key,disabled:r.disabled,readonly:r.readonly,tabindex:r.tabindex,checked:d.key===r.modelValue,onInput:y,onFocus:f,onBlur:b,onChange:k,class:e.normalizeClass(["rounded-md border border-primary-stroke px-3 py-2 shadow-sm",{"border-danger-base":e.unref(u)||r.invalid}]),ref_for:!0,ref_key:"inputElement",ref:s},null,42,_),e.createElementVNode("label",{for:`${p.value}-${S}`,class:"text-primary-content select-none"},e.toDisplayString(d.value),9,ee)]))),128))])):(e.openBlock(),e.createElementBlock("div",re,[e.createElementVNode("div",le,[r.icon?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.icon),{key:0,class:"w-5 h-5 text-primary-content"})):e.createCommentVNode("",!0)]),e.createElementVNode("input",{type:m.value?"text":r.type,name:r.name||e.unref(c),id:p.value,value:r.modelValue,placeholder:r.placeholder,disabled:r.disabled,readonly:r.readonly,maxlength:r.maxlength,minlength:r.minlength,min:r.min,max:r.max,step:r.step,pattern:r.pattern,spellcheck:r.spellcheck,inputmode:r.inputmode,tabindex:r.tabindex,autocomplete:r.autocomplete,"aria-label":r.ariaLabel,"aria-describedby":r.ariaDescribedby,onInput:y,onFocus:f,onBlur:b,onChange:k,onKeydown:g,onKeyup:v,onKeypress:B,class:e.normalizeClass(["border border-primary-stroke w-full px-3 placeholder-gray-400 disabled:bg-gray-50",O.value]),ref_key:"inputElement",ref:s},null,42,ne),r.clearable&&F.value?(e.openBlock(),e.createElementBlock("div",{key:0,onClick:$,class:"absolute p-2 px-3 rounded-md h-full flex items-center right-0 top-0 hover:cursor-pointer select-none"},[e.createVNode(e.unref(j.render),{class:"w-5 h-5 text-secondary-content hover:text-primary-base"})])):r.type==="password"?(e.openBlock(),e.createElementBlock("div",{key:1,onClick:z,class:"absolute p-2 px-3 rounded-md h-full flex items-center right-0 top-0 hover:cursor-pointer select-none"},[m.value?(e.openBlock(),e.createBlock(e.unref(H),{key:0,class:"w-5 h-5 text-primary-content hover:text-primary-base"})):(e.openBlock(),e.createBlock(e.unref(G),{key:1,class:"w-5 h-5 text-secondary-content hover:text-primary-base"}))])):e.createCommentVNode("",!0)]))}}),te={class:"space-y-1"},oe={key:2,class:"text-xs text-secondary-content select-none"},ae=e.defineComponent({__name:"OneFormField",props:L,setup(i){const n=i,{formId:a,validation:l}=V(),t=e.computed(()=>n.errors!=null&&n.errors.length>0?!0:n.name==null?!1:(l.value??{})[n.name]!=null);return e.provide("BaseFormField",{inputId:e.computed(()=>{const o=a.value||"form";if(n.id!=null)return`${o}-${n.id}`;if(n.name!=null)return`${o}-field-${n.name}`}),inputName:e.computed(()=>n.name),hasError:t}),(o,c)=>(e.openBlock(),e.createElementBlock("div",te,[o.label?(e.openBlock(),e.createBlock(q,{key:0,label:o.label},{right:e.withCtx(()=>[e.renderSlot(o.$slots,"right")]),_:3},8,["label"])):e.createCommentVNode("",!0),e.renderSlot(o.$slots,"default",{},()=>[e.createVNode(N)]),t.value?(e.openBlock(),e.createBlock(C,{key:1,errors:o.errors},null,8,["errors"])):o.hint.length>0?(e.openBlock(),e.createElementBlock("p",oe,e.toDisplayString(o.hint),1)):e.createCommentVNode("",!0)]))}});exports.OneForm=K;exports.OneFormFeedback=C;exports.OneFormField=ae;exports.OneFormInput=N;exports.OneFormLabel=q;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),n=require("../OneFormInput.vue_vue_type_script_setup_true_lang-f6f7cd96.cjs");require("../XMarkIcon-f94baa4c.cjs");const d=["id"],p=e.defineComponent({__name:"OneForm",props:n.formProps,emits:["submit"],setup(a,{emit:t}){const o=a,l=t;e.provide("BaseForm",{formId:e.computed(()=>o.id),validation:e.computed(()=>o.validation)});const s=()=>{l("submit")};return(r,i)=>(e.openBlock(),e.createElementBlock("form",{onSubmit:e.withModifiers(s,["prevent"]),id:r.id,class:"space-y-3"},[e.renderSlot(r.$slots,"default")],40,d))}}),f=["for"],m=e.defineComponent({__name:"OneFormLabel",props:n.formLabelProps,setup(a){const{inputId:t}=n.injectFormField();return(o,l)=>(e.openBlock(),e.createElementBlock("label",{for:e.unref(t),class:"text-sm font-medium text-primary-content select-none flex justify-between"},[e.createElementVNode("span",null,[e.renderSlot(o.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(o.label),1)])]),e.renderSlot(o.$slots,"right")],8,f))}}),_={key:0,class:"text-danger-content text-xs space-y-1"},u=e.defineComponent({__name:"OneFormFeedback",props:n.formFeedbackProps,setup(a){const t=a,{validation:o}=n.injectForm(),{inputName:l}=n.injectFormField(),s=e.computed(()=>l.value==null&&t.name==null?t.errors??[]:o.value==null?t.errors??[]:(o.value??{})[t.name||l.value]??t.errors??[]);return(r,i)=>s.value.length>0?(e.openBlock(),e.createElementBlock("div",_,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,c=>(e.openBlock(),e.createElementBlock("div",{key:c},e.toDisplayString(c),1))),128))])):e.createCommentVNode("",!0)}}),v={class:"space-y-1"},k={key:2,class:"text-xs text-secondary-content select-none"},F=e.defineComponent({__name:"OneFormField",props:n.formFieldProps,setup(a){const t=a,{formId:o,validation:l}=n.injectForm(),s=e.computed(()=>t.errors!=null&&t.errors.length>0?!0:t.name==null?!1:(l.value??{})[t.name]!=null);return e.provide("BaseFormField",{inputId:e.computed(()=>{const r=o.value||"form";if(t.id!=null)return`${r}-${t.id}`;if(t.name!=null)return`${r}-field-${t.name}`}),inputName:e.computed(()=>t.name),hasError:s}),(r,i)=>(e.openBlock(),e.createElementBlock("div",v,[r.label?(e.openBlock(),e.createBlock(m,{key:0,label:r.label},{right:e.withCtx(()=>[e.renderSlot(r.$slots,"right")]),_:3},8,["label"])):e.createCommentVNode("",!0),e.renderSlot(r.$slots,"default",{},()=>[e.createVNode(n._sfc_main)]),s.value?(e.openBlock(),e.createBlock(u,{key:1,errors:r.errors},null,8,["errors"])):r.hint.length>0?(e.openBlock(),e.createElementBlock("p",k,e.toDisplayString(r.hint),1)):e.createCommentVNode("",!0)]))}});exports.OneFormInput=n._sfc_main;exports.OneForm=p;exports.OneFormFeedback=u;exports.OneFormField=F;exports.OneFormLabel=m;