@atscript/vue-form 0.1.58

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 (190) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +35 -0
  3. package/dist/as-action-71f9E_bL.cjs +208 -0
  4. package/dist/as-action-DU17rykn.mjs +203 -0
  5. package/dist/as-action.cjs +2 -0
  6. package/dist/as-action.d.cts +2 -0
  7. package/dist/as-action.d.mts +2 -0
  8. package/dist/as-action.mjs +2 -0
  9. package/dist/as-action.vue-BdbAOZCL.d.cts +13 -0
  10. package/dist/as-action.vue-CmY3eil1.d.mts +13 -0
  11. package/dist/as-adornment-shell-9UmdNIPR.cjs +97 -0
  12. package/dist/as-adornment-shell-knFiB7Ct.mjs +92 -0
  13. package/dist/as-array-Bn27x9cq.cjs +466 -0
  14. package/dist/as-array-DwarTaKP.mjs +455 -0
  15. package/dist/as-array-clear-btn-DAGervXL.cjs +48 -0
  16. package/dist/as-array-clear-btn-DIhzCKC9.mjs +43 -0
  17. package/dist/as-array.cjs +11 -0
  18. package/dist/as-array.d.cts +2 -0
  19. package/dist/as-array.d.mts +2 -0
  20. package/dist/as-array.mjs +11 -0
  21. package/dist/as-array.vue-C5r_ycIa.d.mts +9 -0
  22. package/dist/as-array.vue-CeBZRVm7.d.cts +9 -0
  23. package/dist/as-checkbox-B_9mwla6.mjs +285 -0
  24. package/dist/as-checkbox-DXGTVHPE.cjs +296 -0
  25. package/dist/as-checkbox.cjs +6 -0
  26. package/dist/as-checkbox.d.cts +2 -0
  27. package/dist/as-checkbox.d.mts +2 -0
  28. package/dist/as-checkbox.mjs +6 -0
  29. package/dist/as-checkbox.vue-BL53Xjmi.d.mts +9 -0
  30. package/dist/as-checkbox.vue-Da1KVG5J.d.cts +9 -0
  31. package/dist/as-collapsible-CqxeJut7.cjs +148 -0
  32. package/dist/as-collapsible-DtNCofNT.mjs +143 -0
  33. package/dist/as-date-C7tFQDkh.mjs +253 -0
  34. package/dist/as-date-k3MW3dmA.cjs +258 -0
  35. package/dist/as-date.cjs +8 -0
  36. package/dist/as-date.d.cts +2 -0
  37. package/dist/as-date.d.mts +2 -0
  38. package/dist/as-date.mjs +8 -0
  39. package/dist/as-date.vue-C5JaS3Sd.d.mts +9 -0
  40. package/dist/as-date.vue-e2ewS_V4.d.cts +9 -0
  41. package/dist/as-datetime-C030mzI5.cjs +258 -0
  42. package/dist/as-datetime-elcOoDT5.mjs +253 -0
  43. package/dist/as-datetime.cjs +8 -0
  44. package/dist/as-datetime.d.cts +2 -0
  45. package/dist/as-datetime.d.mts +2 -0
  46. package/dist/as-datetime.mjs +8 -0
  47. package/dist/as-datetime.vue-ClsSnJSV.d.mts +9 -0
  48. package/dist/as-datetime.vue-vfHFsby6.d.cts +9 -0
  49. package/dist/as-decimal-BJIGgPXU.cjs +711 -0
  50. package/dist/as-decimal-DtXjFPhe.mjs +694 -0
  51. package/dist/as-decimal.cjs +7 -0
  52. package/dist/as-decimal.d.cts +2 -0
  53. package/dist/as-decimal.d.mts +2 -0
  54. package/dist/as-decimal.mjs +7 -0
  55. package/dist/as-decimal.vue-B1pEKdjM.d.cts +25 -0
  56. package/dist/as-decimal.vue-CSCtYRRa.d.mts +25 -0
  57. package/dist/as-field-CXVjrEPQ.mjs +481 -0
  58. package/dist/as-field-shell-B2iTn-iM.cjs +346 -0
  59. package/dist/as-field-shell-Pdy3sAvr.mjs +341 -0
  60. package/dist/as-field-shell.cjs +5 -0
  61. package/dist/as-field-shell.d.cts +2 -0
  62. package/dist/as-field-shell.d.mts +2 -0
  63. package/dist/as-field-shell.mjs +5 -0
  64. package/dist/as-field-shell.vue-Ddnp8KxY.d.mts +37 -0
  65. package/dist/as-field-shell.vue-Dmt05vGD.d.cts +37 -0
  66. package/dist/as-field-wLYoaZnT.cjs +498 -0
  67. package/dist/as-field.cjs +4 -0
  68. package/dist/as-field.d.cts +25 -0
  69. package/dist/as-field.d.mts +26 -0
  70. package/dist/as-field.mjs +4 -0
  71. package/dist/as-form-CWwgyvfw.mjs +425 -0
  72. package/dist/as-form-DAIkyt7H.cjs +448 -0
  73. package/dist/as-form.cjs +7 -0
  74. package/dist/as-form.d.cts +2 -0
  75. package/dist/as-form.d.mts +2 -0
  76. package/dist/as-form.mjs +7 -0
  77. package/dist/as-form.vue-B4Bn0pbC.d.cts +158 -0
  78. package/dist/as-form.vue-DRrb_yoj.d.mts +158 -0
  79. package/dist/as-input-CpbV2k3s.cjs +231 -0
  80. package/dist/as-input-DIa8BzLv.mjs +226 -0
  81. package/dist/as-input-control-BzELjheN.mjs +266 -0
  82. package/dist/as-input-control-C5-DelZT.cjs +271 -0
  83. package/dist/as-input.cjs +8 -0
  84. package/dist/as-input.d.cts +2 -0
  85. package/dist/as-input.d.mts +2 -0
  86. package/dist/as-input.mjs +8 -0
  87. package/dist/as-input.vue-11ldp9uT.d.cts +17 -0
  88. package/dist/as-input.vue-fUhcvfv2.d.mts +17 -0
  89. package/dist/as-iterator-BYMNe6UJ.cjs +61 -0
  90. package/dist/as-iterator-CT5y1jyn.mjs +56 -0
  91. package/dist/as-iterator.cjs +5 -0
  92. package/dist/as-iterator.d.cts +14 -0
  93. package/dist/as-iterator.d.mts +15 -0
  94. package/dist/as-iterator.mjs +5 -0
  95. package/dist/as-number-BA55JIq1.cjs +387 -0
  96. package/dist/as-number-JPEwPK8Q.mjs +376 -0
  97. package/dist/as-number.cjs +8 -0
  98. package/dist/as-number.d.cts +2 -0
  99. package/dist/as-number.d.mts +2 -0
  100. package/dist/as-number.mjs +8 -0
  101. package/dist/as-number.vue-Bk-W7Vwv.d.mts +26 -0
  102. package/dist/as-number.vue-C2Aih98s.d.cts +26 -0
  103. package/dist/as-object-CT6lNEqt.mjs +300 -0
  104. package/dist/as-object-qUL7l8V1.cjs +305 -0
  105. package/dist/as-object.cjs +11 -0
  106. package/dist/as-object.d.cts +2 -0
  107. package/dist/as-object.d.mts +2 -0
  108. package/dist/as-object.mjs +11 -0
  109. package/dist/as-object.vue-CKwMyM_F.d.cts +13 -0
  110. package/dist/as-object.vue-Cg52b61-.d.mts +13 -0
  111. package/dist/as-paragraph-BGO-j4US.cjs +203 -0
  112. package/dist/as-paragraph-jIG_dg7_.mjs +198 -0
  113. package/dist/as-paragraph.cjs +2 -0
  114. package/dist/as-paragraph.d.cts +2 -0
  115. package/dist/as-paragraph.d.mts +2 -0
  116. package/dist/as-paragraph.mjs +2 -0
  117. package/dist/as-paragraph.vue-BDt0pBG-.d.cts +9 -0
  118. package/dist/as-paragraph.vue-C3FgTEt5.d.mts +9 -0
  119. package/dist/as-radio-B1N-gmoI.mjs +242 -0
  120. package/dist/as-radio-U3OK7bTg.cjs +247 -0
  121. package/dist/as-radio.cjs +6 -0
  122. package/dist/as-radio.d.cts +2 -0
  123. package/dist/as-radio.d.mts +2 -0
  124. package/dist/as-radio.mjs +6 -0
  125. package/dist/as-radio.vue-D_fweoN1.d.mts +9 -0
  126. package/dist/as-radio.vue-ZC4kLBnT.d.cts +9 -0
  127. package/dist/as-ref-CIifSSCQ.mjs +337 -0
  128. package/dist/as-ref-SImaIrwK.cjs +342 -0
  129. package/dist/as-ref.cjs +7 -0
  130. package/dist/as-ref.d.cts +2 -0
  131. package/dist/as-ref.d.mts +2 -0
  132. package/dist/as-ref.mjs +7 -0
  133. package/dist/as-ref.vue-BNeQeQpO.d.cts +9 -0
  134. package/dist/as-ref.vue-Cr5jeNDn.d.mts +9 -0
  135. package/dist/as-select-BB3uxACS.cjs +246 -0
  136. package/dist/as-select-UBGCVhku.mjs +241 -0
  137. package/dist/as-select.cjs +6 -0
  138. package/dist/as-select.d.cts +2 -0
  139. package/dist/as-select.d.mts +2 -0
  140. package/dist/as-select.mjs +6 -0
  141. package/dist/as-select.vue-Dd7huPq2.d.cts +9 -0
  142. package/dist/as-select.vue-RYpbZbKt.d.mts +9 -0
  143. package/dist/as-time-C24rvslH.cjs +258 -0
  144. package/dist/as-time-CQsxUs8P.mjs +253 -0
  145. package/dist/as-time.cjs +8 -0
  146. package/dist/as-time.d.cts +2 -0
  147. package/dist/as-time.d.mts +2 -0
  148. package/dist/as-time.mjs +8 -0
  149. package/dist/as-time.vue-huLx2B4l.d.mts +9 -0
  150. package/dist/as-time.vue-nMEHLXke.d.cts +9 -0
  151. package/dist/as-tuple-BU--cuuI.cjs +351 -0
  152. package/dist/as-tuple-DkI9swlW.mjs +340 -0
  153. package/dist/as-tuple.cjs +11 -0
  154. package/dist/as-tuple.d.cts +2 -0
  155. package/dist/as-tuple.d.mts +2 -0
  156. package/dist/as-tuple.mjs +11 -0
  157. package/dist/as-tuple.vue-CQhzOJsn.d.mts +9 -0
  158. package/dist/as-tuple.vue-DyskCkf-.d.cts +9 -0
  159. package/dist/as-union-BGvdxr3G.mjs +351 -0
  160. package/dist/as-union-C0btoJn3.cjs +368 -0
  161. package/dist/as-union.cjs +6 -0
  162. package/dist/as-union.d.cts +2 -0
  163. package/dist/as-union.d.mts +2 -0
  164. package/dist/as-union.mjs +6 -0
  165. package/dist/as-union.vue-BjlDPZn0.d.mts +9 -0
  166. package/dist/as-union.vue-CqjU3O10.d.cts +9 -0
  167. package/dist/as-variant-picker-BVs0AvjK.mjs +96 -0
  168. package/dist/as-variant-picker-DObQZHmm.cjs +107 -0
  169. package/dist/index.cjs +173 -0
  170. package/dist/index.d.cts +966 -0
  171. package/dist/index.d.mts +966 -0
  172. package/dist/index.mjs +105 -0
  173. package/dist/types-C4HRSxgV.d.cts +233 -0
  174. package/dist/types-Czm-Gtud.d.mts +233 -0
  175. package/dist/use-as-date-B7CtcRQd.cjs +329 -0
  176. package/dist/use-as-date-C39i9mzE.mjs +318 -0
  177. package/dist/use-as-dropdown-BMnEm6jF.mjs +82 -0
  178. package/dist/use-as-dropdown-C-Qy7Vt0.cjs +105 -0
  179. package/dist/use-as-locale-BrFdAgnU.mjs +23 -0
  180. package/dist/use-as-locale-C4z5stwD.cjs +34 -0
  181. package/dist/use-as-nested-sections-store-jdMRxjBE.cjs +80 -0
  182. package/dist/use-as-nested-sections-store-lhi0z5z1.mjs +63 -0
  183. package/dist/use-as-optional-add-flow-CuXEir_i.mjs +43 -0
  184. package/dist/use-as-optional-add-flow-STOaQWo9.cjs +48 -0
  185. package/dist/use-as-value-help-CBykDEjZ.mjs +89 -0
  186. package/dist/use-as-value-help-uANI3zWa.cjs +100 -0
  187. package/dist/use-form-context-Dwr8Ai1v.cjs +207 -0
  188. package/dist/use-form-context-bAj7UoSe.mjs +106 -0
  189. package/package.json +180 -0
  190. package/styles.d.ts +2 -0
@@ -0,0 +1,346 @@
1
+ const require_use_form_context = require("./use-form-context-Dwr8Ai1v.cjs");
2
+ const require_use_as_dropdown = require("./use-as-dropdown-C-Qy7Vt0.cjs");
3
+ const require_as_variant_picker = require("./as-variant-picker-DObQZHmm.cjs");
4
+ let vue = require("vue");
5
+ //#region src/components/internal/as-no-data.vue?vue&type=script&setup=true&lang.ts
6
+ const _hoisted_1$1 = {
7
+ class: "as-no-data-icon",
8
+ "aria-hidden": "true"
9
+ };
10
+ const _hoisted_2$1 = { class: "as-no-data-text" };
11
+ //#endregion
12
+ //#region src/components/internal/as-no-data.vue
13
+ var as_no_data_default = /* @__PURE__ */ (0, vue.defineComponent)({
14
+ __name: "as-no-data",
15
+ props: {
16
+ onEdit: {
17
+ type: Function,
18
+ required: true
19
+ },
20
+ kind: {
21
+ type: String,
22
+ required: false,
23
+ default: "input"
24
+ }
25
+ },
26
+ setup(__props) {
27
+ const props = __props;
28
+ const hovered = (0, vue.ref)(false);
29
+ const rootClass = (0, vue.computed)(() => props.kind === "textarea" ? "as-no-data-textarea" : "as-no-data");
30
+ return (_ctx, _cache) => {
31
+ return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
32
+ class: (0, vue.normalizeClass)(rootClass.value),
33
+ onMouseenter: _cache[0] || (_cache[0] = ($event) => hovered.value = true),
34
+ onMouseleave: _cache[1] || (_cache[1] = ($event) => hovered.value = false),
35
+ onClick: _cache[2] || (_cache[2] = (...args) => __props.onEdit && __props.onEdit(...args)),
36
+ role: "button",
37
+ tabindex: "0",
38
+ onKeydown: [_cache[3] || (_cache[3] = (0, vue.withKeys)((...args) => __props.onEdit && __props.onEdit(...args), ["enter"])), _cache[4] || (_cache[4] = (0, vue.withKeys)((0, vue.withModifiers)((...args) => __props.onEdit && __props.onEdit(...args), ["prevent"]), ["space"]))]
39
+ }, [(0, vue.createElementVNode)("span", _hoisted_1$1, [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)(hovered.value ? "i-as-field-fill" : "i-as-field-empty") }, null, 2)]), (0, vue.createElementVNode)("span", _hoisted_2$1, (0, vue.toDisplayString)(hovered.value ? "Click to edit" : "Not set"), 1)], 34);
40
+ };
41
+ }
42
+ });
43
+ //#endregion
44
+ //#region src/components/defaults/as-field-shell.vue?vue&type=script&setup=true&lang.ts
45
+ const _hoisted_1 = {
46
+ key: 0,
47
+ class: "as-field-header-row"
48
+ };
49
+ const _hoisted_2 = { class: "as-field-header-content" };
50
+ const _hoisted_3 = ["for"];
51
+ const _hoisted_4 = {
52
+ key: 0,
53
+ class: "as-field-label-index"
54
+ };
55
+ const _hoisted_5 = {
56
+ key: 0,
57
+ class: "as-field-header-actions"
58
+ };
59
+ const _hoisted_6 = ["disabled"];
60
+ const _hoisted_7 = ["id"];
61
+ const _hoisted_8 = { class: "as-field-input-row" };
62
+ const _hoisted_9 = ["id", "role"];
63
+ //#endregion
64
+ //#region src/components/defaults/as-field-shell.vue
65
+ var as_field_shell_default = /* @__PURE__ */ (0, vue.defineComponent)({
66
+ __name: "as-field-shell",
67
+ props: {
68
+ onBlur: {
69
+ type: Function,
70
+ required: true
71
+ },
72
+ error: {
73
+ type: String,
74
+ required: false
75
+ },
76
+ model: {
77
+ type: Object,
78
+ required: true
79
+ },
80
+ value: {
81
+ type: null,
82
+ required: false
83
+ },
84
+ label: {
85
+ type: String,
86
+ required: false
87
+ },
88
+ description: {
89
+ type: String,
90
+ required: false
91
+ },
92
+ hint: {
93
+ type: String,
94
+ required: false
95
+ },
96
+ placeholder: {
97
+ type: String,
98
+ required: false
99
+ },
100
+ prefixIcon: {
101
+ type: String,
102
+ required: false
103
+ },
104
+ suffixIcon: {
105
+ type: String,
106
+ required: false
107
+ },
108
+ class: {
109
+ type: [Object, String],
110
+ required: false
111
+ },
112
+ style: {
113
+ type: [Object, String],
114
+ required: false
115
+ },
116
+ optional: {
117
+ type: Boolean,
118
+ required: false,
119
+ skipCheck: true
120
+ },
121
+ onToggleOptional: {
122
+ type: Function,
123
+ required: false
124
+ },
125
+ required: {
126
+ type: Boolean,
127
+ required: false,
128
+ skipCheck: true
129
+ },
130
+ readonly: {
131
+ type: Boolean,
132
+ required: false,
133
+ skipCheck: true
134
+ },
135
+ type: {
136
+ type: String,
137
+ required: true
138
+ },
139
+ formAction: {
140
+ type: Object,
141
+ required: false
142
+ },
143
+ name: {
144
+ type: String,
145
+ required: false
146
+ },
147
+ field: {
148
+ type: Object,
149
+ required: false
150
+ },
151
+ options: {
152
+ type: Array,
153
+ required: false
154
+ },
155
+ maxLength: {
156
+ type: Number,
157
+ required: false
158
+ },
159
+ autocomplete: {
160
+ type: String,
161
+ required: false
162
+ },
163
+ title: {
164
+ type: String,
165
+ required: false
166
+ },
167
+ level: {
168
+ type: Number,
169
+ required: false
170
+ },
171
+ onRemove: {
172
+ type: Function,
173
+ required: false
174
+ },
175
+ canRemove: {
176
+ type: Boolean,
177
+ required: false
178
+ },
179
+ removeLabel: {
180
+ type: String,
181
+ required: false
182
+ },
183
+ arrayIndex: {
184
+ type: Number,
185
+ required: false
186
+ },
187
+ path: {
188
+ type: String,
189
+ required: true
190
+ },
191
+ valueHelp: {
192
+ type: Object,
193
+ required: false
194
+ },
195
+ singularLabel: {
196
+ type: String,
197
+ required: false
198
+ },
199
+ inputId: {
200
+ type: String,
201
+ required: true
202
+ },
203
+ errorId: {
204
+ type: String,
205
+ required: true
206
+ },
207
+ descId: {
208
+ type: String,
209
+ required: true
210
+ },
211
+ ariaDescribedBy: {
212
+ type: String,
213
+ required: false
214
+ },
215
+ currencyCode: {
216
+ type: String,
217
+ required: false
218
+ },
219
+ unitCode: {
220
+ type: String,
221
+ required: false
222
+ },
223
+ precisionScale: {
224
+ type: Number,
225
+ required: false
226
+ },
227
+ prefix: {
228
+ type: String,
229
+ required: false
230
+ },
231
+ suffix: {
232
+ type: String,
233
+ required: false
234
+ },
235
+ scale: {
236
+ type: Number,
237
+ required: false
238
+ },
239
+ hasAdornment: {
240
+ type: Boolean,
241
+ required: false
242
+ },
243
+ disabled: {
244
+ type: Boolean,
245
+ required: false
246
+ },
247
+ hidden: {
248
+ type: Boolean,
249
+ required: false
250
+ },
251
+ fieldClass: {
252
+ type: String,
253
+ required: false
254
+ },
255
+ chromeless: {
256
+ type: Boolean,
257
+ required: false
258
+ },
259
+ hideEmptyPlaceholder: {
260
+ type: Boolean,
261
+ required: false
262
+ }
263
+ },
264
+ setup(__props) {
265
+ const props = __props;
266
+ const optionalEnabled = (0, vue.computed)(() => props.model?.value != null);
267
+ const unionCtx = require_use_form_context.useAsUnionVariant();
268
+ const hasVariantPicker = unionCtx !== void 0 && unionCtx.variants.length > 1;
269
+ const labelParts = (0, vue.computed)(() => require_use_form_context.formatIndexedLabelParts(props.label, props.arrayIndex));
270
+ const { rootRef, enableOptional } = require_use_as_dropdown.useAsFocusFirstAfter(props.onToggleOptional);
271
+ const showOptionalClear = (0, vue.computed)(() => !!props.optional && optionalEnabled.value && !props.chromeless);
272
+ const showEmptyPlaceholder = (0, vue.computed)(() => !!props.optional && !optionalEnabled.value && !props.chromeless && !props.hideEmptyPlaceholder);
273
+ return (_ctx, _cache) => {
274
+ return (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
275
+ ref_key: "rootRef",
276
+ ref: rootRef,
277
+ class: (0, vue.normalizeClass)(["as-default-field", [__props.fieldClass, _ctx.$props.class]]),
278
+ style: (0, vue.normalizeStyle)(_ctx.$props.style)
279
+ }, [
280
+ (0, vue.createCommentVNode)(" Header row: label/header on left, action buttons on right "),
281
+ _ctx.$slots.header || labelParts.value && !__props.chromeless || __props.onRemove || showOptionalClear.value || (0, vue.unref)(hasVariantPicker) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_1, [(0, vue.createElementVNode)("div", _hoisted_2, [
282
+ _ctx.$slots.header ? (0, vue.renderSlot)(_ctx.$slots, "header", {
283
+ key: 0,
284
+ inputId: __props.inputId,
285
+ descId: __props.descId,
286
+ optionalEnabled: optionalEnabled.value
287
+ }) : !__props.chromeless ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, [labelParts.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("label", {
288
+ key: 0,
289
+ for: __props.inputId,
290
+ class: "as-field-label"
291
+ }, [(0, vue.createTextVNode)((0, vue.toDisplayString)(labelParts.value.base), 1), labelParts.value.suffix ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_4, "\xA0" + (0, vue.toDisplayString)(labelParts.value.suffix), 1)) : (0, vue.createCommentVNode)("v-if", true)], 8, _hoisted_3)) : (0, vue.createCommentVNode)("v-if", true)], 64)) : (0, vue.createCommentVNode)("v-if", true),
292
+ (0, vue.createCommentVNode)(" Union variant picker — inline next to label "),
293
+ (0, vue.unref)(hasVariantPicker) ? ((0, vue.openBlock)(), (0, vue.createBlock)(require_as_variant_picker.as_variant_picker_default, {
294
+ key: 2,
295
+ "union-context": (0, vue.unref)(unionCtx),
296
+ disabled: __props.disabled
297
+ }, null, 8, ["union-context", "disabled"])) : (0, vue.createCommentVNode)("v-if", true)
298
+ ]), showOptionalClear.value || __props.onRemove ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_5, [showOptionalClear.value ? ((0, vue.openBlock)(), (0, vue.createBlock)(require_as_variant_picker.as_optional_clear_default, {
299
+ key: 0,
300
+ onClear: _cache[0] || (_cache[0] = ($event) => __props.onToggleOptional?.(false))
301
+ })) : __props.onRemove ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("button", {
302
+ key: 1,
303
+ type: "button",
304
+ class: "as-field-remove-btn",
305
+ disabled: !__props.canRemove,
306
+ "aria-label": "Remove",
307
+ title: "Remove",
308
+ onClick: _cache[1] || (_cache[1] = (...args) => __props.onRemove && __props.onRemove(...args))
309
+ }, [..._cache[2] || (_cache[2] = [(0, vue.createElementVNode)("span", {
310
+ class: "as-field-remove-btn-icon",
311
+ "aria-hidden": "true"
312
+ }, null, -1)])], 8, _hoisted_6)) : (0, vue.createCommentVNode)("v-if", true)])) : (0, vue.createCommentVNode)("v-if", true)])) : (0, vue.createCommentVNode)("v-if", true),
313
+ __props.description && !__props.chromeless ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
314
+ key: 1,
315
+ id: __props.descId,
316
+ class: "as-field-description"
317
+ }, (0, vue.toDisplayString)(__props.description), 9, _hoisted_7)) : (0, vue.createCommentVNode)("v-if", true),
318
+ showEmptyPlaceholder.value ? ((0, vue.openBlock)(), (0, vue.createBlock)(as_no_data_default, {
319
+ key: 2,
320
+ kind: __props.type === "textarea" ? "textarea" : "input",
321
+ "on-edit": (0, vue.unref)(enableOptional)
322
+ }, null, 8, ["kind", "on-edit"])) : ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 3 }, [
323
+ (0, vue.createElementVNode)("div", _hoisted_8, [(0, vue.renderSlot)(_ctx.$slots, "default", {
324
+ inputId: __props.inputId,
325
+ errorId: __props.errorId,
326
+ descId: __props.descId
327
+ })]),
328
+ (0, vue.renderSlot)(_ctx.$slots, "after-input", { descId: __props.descId }),
329
+ __props.error || __props.hint ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
330
+ key: 0,
331
+ id: __props.errorId,
332
+ class: "as-error-slot",
333
+ role: __props.error ? "alert" : void 0
334
+ }, (0, vue.toDisplayString)(__props.error || __props.hint), 9, _hoisted_9)) : (0, vue.createCommentVNode)("v-if", true)
335
+ ], 64))
336
+ ], 6)), [[vue.vShow, !__props.hidden]]);
337
+ };
338
+ }
339
+ });
340
+ //#endregion
341
+ Object.defineProperty(exports, "as_field_shell_default", {
342
+ enumerable: true,
343
+ get: function() {
344
+ return as_field_shell_default;
345
+ }
346
+ });
@@ -0,0 +1,341 @@
1
+ import { n as useAsUnionVariant, t as formatIndexedLabelParts } from "./use-form-context-bAj7UoSe.mjs";
2
+ import { i as useAsFocusFirstAfter } from "./use-as-dropdown-BMnEm6jF.mjs";
3
+ import { n as as_optional_clear_default, t as as_variant_picker_default } from "./as-variant-picker-BVs0AvjK.mjs";
4
+ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, defineComponent, normalizeClass, normalizeStyle, openBlock, ref, renderSlot, toDisplayString, unref, vShow, withDirectives, withKeys, withModifiers } from "vue";
5
+ //#region src/components/internal/as-no-data.vue?vue&type=script&setup=true&lang.ts
6
+ const _hoisted_1$1 = {
7
+ class: "as-no-data-icon",
8
+ "aria-hidden": "true"
9
+ };
10
+ const _hoisted_2$1 = { class: "as-no-data-text" };
11
+ //#endregion
12
+ //#region src/components/internal/as-no-data.vue
13
+ var as_no_data_default = /* @__PURE__ */ defineComponent({
14
+ __name: "as-no-data",
15
+ props: {
16
+ onEdit: {
17
+ type: Function,
18
+ required: true
19
+ },
20
+ kind: {
21
+ type: String,
22
+ required: false,
23
+ default: "input"
24
+ }
25
+ },
26
+ setup(__props) {
27
+ const props = __props;
28
+ const hovered = ref(false);
29
+ const rootClass = computed(() => props.kind === "textarea" ? "as-no-data-textarea" : "as-no-data");
30
+ return (_ctx, _cache) => {
31
+ return openBlock(), createElementBlock("div", {
32
+ class: normalizeClass(rootClass.value),
33
+ onMouseenter: _cache[0] || (_cache[0] = ($event) => hovered.value = true),
34
+ onMouseleave: _cache[1] || (_cache[1] = ($event) => hovered.value = false),
35
+ onClick: _cache[2] || (_cache[2] = (...args) => __props.onEdit && __props.onEdit(...args)),
36
+ role: "button",
37
+ tabindex: "0",
38
+ onKeydown: [_cache[3] || (_cache[3] = withKeys((...args) => __props.onEdit && __props.onEdit(...args), ["enter"])), _cache[4] || (_cache[4] = withKeys(withModifiers((...args) => __props.onEdit && __props.onEdit(...args), ["prevent"]), ["space"]))]
39
+ }, [createElementVNode("span", _hoisted_1$1, [createElementVNode("span", { class: normalizeClass(hovered.value ? "i-as-field-fill" : "i-as-field-empty") }, null, 2)]), createElementVNode("span", _hoisted_2$1, toDisplayString(hovered.value ? "Click to edit" : "Not set"), 1)], 34);
40
+ };
41
+ }
42
+ });
43
+ //#endregion
44
+ //#region src/components/defaults/as-field-shell.vue?vue&type=script&setup=true&lang.ts
45
+ const _hoisted_1 = {
46
+ key: 0,
47
+ class: "as-field-header-row"
48
+ };
49
+ const _hoisted_2 = { class: "as-field-header-content" };
50
+ const _hoisted_3 = ["for"];
51
+ const _hoisted_4 = {
52
+ key: 0,
53
+ class: "as-field-label-index"
54
+ };
55
+ const _hoisted_5 = {
56
+ key: 0,
57
+ class: "as-field-header-actions"
58
+ };
59
+ const _hoisted_6 = ["disabled"];
60
+ const _hoisted_7 = ["id"];
61
+ const _hoisted_8 = { class: "as-field-input-row" };
62
+ const _hoisted_9 = ["id", "role"];
63
+ //#endregion
64
+ //#region src/components/defaults/as-field-shell.vue
65
+ var as_field_shell_default = /* @__PURE__ */ defineComponent({
66
+ __name: "as-field-shell",
67
+ props: {
68
+ onBlur: {
69
+ type: Function,
70
+ required: true
71
+ },
72
+ error: {
73
+ type: String,
74
+ required: false
75
+ },
76
+ model: {
77
+ type: Object,
78
+ required: true
79
+ },
80
+ value: {
81
+ type: null,
82
+ required: false
83
+ },
84
+ label: {
85
+ type: String,
86
+ required: false
87
+ },
88
+ description: {
89
+ type: String,
90
+ required: false
91
+ },
92
+ hint: {
93
+ type: String,
94
+ required: false
95
+ },
96
+ placeholder: {
97
+ type: String,
98
+ required: false
99
+ },
100
+ prefixIcon: {
101
+ type: String,
102
+ required: false
103
+ },
104
+ suffixIcon: {
105
+ type: String,
106
+ required: false
107
+ },
108
+ class: {
109
+ type: [Object, String],
110
+ required: false
111
+ },
112
+ style: {
113
+ type: [Object, String],
114
+ required: false
115
+ },
116
+ optional: {
117
+ type: Boolean,
118
+ required: false,
119
+ skipCheck: true
120
+ },
121
+ onToggleOptional: {
122
+ type: Function,
123
+ required: false
124
+ },
125
+ required: {
126
+ type: Boolean,
127
+ required: false,
128
+ skipCheck: true
129
+ },
130
+ readonly: {
131
+ type: Boolean,
132
+ required: false,
133
+ skipCheck: true
134
+ },
135
+ type: {
136
+ type: String,
137
+ required: true
138
+ },
139
+ formAction: {
140
+ type: Object,
141
+ required: false
142
+ },
143
+ name: {
144
+ type: String,
145
+ required: false
146
+ },
147
+ field: {
148
+ type: Object,
149
+ required: false
150
+ },
151
+ options: {
152
+ type: Array,
153
+ required: false
154
+ },
155
+ maxLength: {
156
+ type: Number,
157
+ required: false
158
+ },
159
+ autocomplete: {
160
+ type: String,
161
+ required: false
162
+ },
163
+ title: {
164
+ type: String,
165
+ required: false
166
+ },
167
+ level: {
168
+ type: Number,
169
+ required: false
170
+ },
171
+ onRemove: {
172
+ type: Function,
173
+ required: false
174
+ },
175
+ canRemove: {
176
+ type: Boolean,
177
+ required: false
178
+ },
179
+ removeLabel: {
180
+ type: String,
181
+ required: false
182
+ },
183
+ arrayIndex: {
184
+ type: Number,
185
+ required: false
186
+ },
187
+ path: {
188
+ type: String,
189
+ required: true
190
+ },
191
+ valueHelp: {
192
+ type: Object,
193
+ required: false
194
+ },
195
+ singularLabel: {
196
+ type: String,
197
+ required: false
198
+ },
199
+ inputId: {
200
+ type: String,
201
+ required: true
202
+ },
203
+ errorId: {
204
+ type: String,
205
+ required: true
206
+ },
207
+ descId: {
208
+ type: String,
209
+ required: true
210
+ },
211
+ ariaDescribedBy: {
212
+ type: String,
213
+ required: false
214
+ },
215
+ currencyCode: {
216
+ type: String,
217
+ required: false
218
+ },
219
+ unitCode: {
220
+ type: String,
221
+ required: false
222
+ },
223
+ precisionScale: {
224
+ type: Number,
225
+ required: false
226
+ },
227
+ prefix: {
228
+ type: String,
229
+ required: false
230
+ },
231
+ suffix: {
232
+ type: String,
233
+ required: false
234
+ },
235
+ scale: {
236
+ type: Number,
237
+ required: false
238
+ },
239
+ hasAdornment: {
240
+ type: Boolean,
241
+ required: false
242
+ },
243
+ disabled: {
244
+ type: Boolean,
245
+ required: false
246
+ },
247
+ hidden: {
248
+ type: Boolean,
249
+ required: false
250
+ },
251
+ fieldClass: {
252
+ type: String,
253
+ required: false
254
+ },
255
+ chromeless: {
256
+ type: Boolean,
257
+ required: false
258
+ },
259
+ hideEmptyPlaceholder: {
260
+ type: Boolean,
261
+ required: false
262
+ }
263
+ },
264
+ setup(__props) {
265
+ const props = __props;
266
+ const optionalEnabled = computed(() => props.model?.value != null);
267
+ const unionCtx = useAsUnionVariant();
268
+ const hasVariantPicker = unionCtx !== void 0 && unionCtx.variants.length > 1;
269
+ const labelParts = computed(() => formatIndexedLabelParts(props.label, props.arrayIndex));
270
+ const { rootRef, enableOptional } = useAsFocusFirstAfter(props.onToggleOptional);
271
+ const showOptionalClear = computed(() => !!props.optional && optionalEnabled.value && !props.chromeless);
272
+ const showEmptyPlaceholder = computed(() => !!props.optional && !optionalEnabled.value && !props.chromeless && !props.hideEmptyPlaceholder);
273
+ return (_ctx, _cache) => {
274
+ return withDirectives((openBlock(), createElementBlock("div", {
275
+ ref_key: "rootRef",
276
+ ref: rootRef,
277
+ class: normalizeClass(["as-default-field", [__props.fieldClass, _ctx.$props.class]]),
278
+ style: normalizeStyle(_ctx.$props.style)
279
+ }, [
280
+ createCommentVNode(" Header row: label/header on left, action buttons on right "),
281
+ _ctx.$slots.header || labelParts.value && !__props.chromeless || __props.onRemove || showOptionalClear.value || unref(hasVariantPicker) ? (openBlock(), createElementBlock("div", _hoisted_1, [createElementVNode("div", _hoisted_2, [
282
+ _ctx.$slots.header ? renderSlot(_ctx.$slots, "header", {
283
+ key: 0,
284
+ inputId: __props.inputId,
285
+ descId: __props.descId,
286
+ optionalEnabled: optionalEnabled.value
287
+ }) : !__props.chromeless ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [labelParts.value ? (openBlock(), createElementBlock("label", {
288
+ key: 0,
289
+ for: __props.inputId,
290
+ class: "as-field-label"
291
+ }, [createTextVNode(toDisplayString(labelParts.value.base), 1), labelParts.value.suffix ? (openBlock(), createElementBlock("span", _hoisted_4, "\xA0" + toDisplayString(labelParts.value.suffix), 1)) : createCommentVNode("v-if", true)], 8, _hoisted_3)) : createCommentVNode("v-if", true)], 64)) : createCommentVNode("v-if", true),
292
+ createCommentVNode(" Union variant picker — inline next to label "),
293
+ unref(hasVariantPicker) ? (openBlock(), createBlock(as_variant_picker_default, {
294
+ key: 2,
295
+ "union-context": unref(unionCtx),
296
+ disabled: __props.disabled
297
+ }, null, 8, ["union-context", "disabled"])) : createCommentVNode("v-if", true)
298
+ ]), showOptionalClear.value || __props.onRemove ? (openBlock(), createElementBlock("div", _hoisted_5, [showOptionalClear.value ? (openBlock(), createBlock(as_optional_clear_default, {
299
+ key: 0,
300
+ onClear: _cache[0] || (_cache[0] = ($event) => __props.onToggleOptional?.(false))
301
+ })) : __props.onRemove ? (openBlock(), createElementBlock("button", {
302
+ key: 1,
303
+ type: "button",
304
+ class: "as-field-remove-btn",
305
+ disabled: !__props.canRemove,
306
+ "aria-label": "Remove",
307
+ title: "Remove",
308
+ onClick: _cache[1] || (_cache[1] = (...args) => __props.onRemove && __props.onRemove(...args))
309
+ }, [..._cache[2] || (_cache[2] = [createElementVNode("span", {
310
+ class: "as-field-remove-btn-icon",
311
+ "aria-hidden": "true"
312
+ }, null, -1)])], 8, _hoisted_6)) : createCommentVNode("v-if", true)])) : createCommentVNode("v-if", true)])) : createCommentVNode("v-if", true),
313
+ __props.description && !__props.chromeless ? (openBlock(), createElementBlock("div", {
314
+ key: 1,
315
+ id: __props.descId,
316
+ class: "as-field-description"
317
+ }, toDisplayString(__props.description), 9, _hoisted_7)) : createCommentVNode("v-if", true),
318
+ showEmptyPlaceholder.value ? (openBlock(), createBlock(as_no_data_default, {
319
+ key: 2,
320
+ kind: __props.type === "textarea" ? "textarea" : "input",
321
+ "on-edit": unref(enableOptional)
322
+ }, null, 8, ["kind", "on-edit"])) : (openBlock(), createElementBlock(Fragment, { key: 3 }, [
323
+ createElementVNode("div", _hoisted_8, [renderSlot(_ctx.$slots, "default", {
324
+ inputId: __props.inputId,
325
+ errorId: __props.errorId,
326
+ descId: __props.descId
327
+ })]),
328
+ renderSlot(_ctx.$slots, "after-input", { descId: __props.descId }),
329
+ __props.error || __props.hint ? (openBlock(), createElementBlock("div", {
330
+ key: 0,
331
+ id: __props.errorId,
332
+ class: "as-error-slot",
333
+ role: __props.error ? "alert" : void 0
334
+ }, toDisplayString(__props.error || __props.hint), 9, _hoisted_9)) : createCommentVNode("v-if", true)
335
+ ], 64))
336
+ ], 6)), [[vShow, !__props.hidden]]);
337
+ };
338
+ }
339
+ });
340
+ //#endregion
341
+ export { as_field_shell_default as t };
@@ -0,0 +1,5 @@
1
+ require("./use-form-context-Dwr8Ai1v.cjs");
2
+ require("./use-as-dropdown-C-Qy7Vt0.cjs");
3
+ const require_as_field_shell = require("./as-field-shell-B2iTn-iM.cjs");
4
+ require("./as-variant-picker-DObQZHmm.cjs");
5
+ module.exports = require_as_field_shell.as_field_shell_default;
@@ -0,0 +1,2 @@
1
+ import { t as _default } from "./as-field-shell.vue-Dmt05vGD.cjs";
2
+ export = _default;
@@ -0,0 +1,2 @@
1
+ import { t as _default } from "./as-field-shell.vue-Ddnp8KxY.mjs";
2
+ export { _default as default };
@@ -0,0 +1,5 @@
1
+ import "./use-form-context-bAj7UoSe.mjs";
2
+ import "./use-as-dropdown-BMnEm6jF.mjs";
3
+ import { t as as_field_shell_default } from "./as-field-shell-Pdy3sAvr.mjs";
4
+ import "./as-variant-picker-BVs0AvjK.mjs";
5
+ export { as_field_shell_default as default };