@soft-stech/bootsman-ui-shadcn 1.3.8 → 1.3.9

Sign up to get free protection for your applications and to get access to all the features.
package/dist/index.js CHANGED
@@ -1,9 +1,9 @@
1
1
  /* empty css */
2
2
  import { _ as i } from "./BuiAccordion.vue_vue_type_script_setup_true_lang-nxe3iIoM.js";
3
- import { _ as s } from "./BuiAccordionContent.vue_vue_type_script_setup_true_lang-pCTYRg2Z.js";
3
+ import { _ as m } from "./BuiAccordionContent.vue_vue_type_script_setup_true_lang-pCTYRg2Z.js";
4
4
  import { _ as p } from "./BuiAccordionItem.vue_vue_type_script_setup_true_lang-Dp-3E0FN.js";
5
5
  import { _ as B } from "./BuiAccordionTrigger.vue_vue_type_script_setup_true_lang-CtFZfwMC.js";
6
- import { _ as f } from "./BuiAlertDialog.vue_vue_type_script_setup_true_lang-CKpn0FlQ.js";
6
+ import { _ as n } from "./BuiAlertDialog.vue_vue_type_script_setup_true_lang-CKpn0FlQ.js";
7
7
  import { _ as l } from "./BuiAlertDialogTrigger.vue_vue_type_script_setup_true_lang-Cz4RKkoF.js";
8
8
  import { _ as g } from "./BuiAlertDialogContent.vue_vue_type_script_setup_true_lang-DFUbXcoh.js";
9
9
  import { _ as T } from "./BuiAlertDialogHeader.vue_vue_type_script_setup_true_lang-7Dx74gxo.js";
@@ -23,10 +23,10 @@ import { _ as $ } from "./BuiCardHeader.vue_vue_type_script_setup_true_lang-D9mi
23
23
  import { _ as ro } from "./BuiCardTitle.vue_vue_type_script_setup_true_lang-B6T0EtFW.js";
24
24
  import { _ as to } from "./BuiCardDescription.vue_vue_type_script_setup_true_lang-Bf_1xgzn.js";
25
25
  import { _ as io } from "./BuiCardContent.vue_vue_type_script_setup_true_lang-B6clSivQ.js";
26
- import { _ as so } from "./BuiCardFooter.vue_vue_type_script_setup_true_lang-Bxt8PufJ.js";
26
+ import { _ as mo } from "./BuiCardFooter.vue_vue_type_script_setup_true_lang-Bxt8PufJ.js";
27
27
  import { _ as po } from "./BuiCheckbox.vue_vue_type_script_setup_true_lang-B0K_SUAC.js";
28
28
  import { _ as Bo } from "./BuiCommand.vue_vue_type_script_setup_true_lang-P_fz9PPV.js";
29
- import { _ as fo } from "./BuiCommandDialog.vue_vue_type_script_setup_true_lang-CEnlCiUo.js";
29
+ import { _ as no } from "./BuiCommandDialog.vue_vue_type_script_setup_true_lang-CEnlCiUo.js";
30
30
  import { _ as lo } from "./BuiCommandEmpty.vue_vue_type_script_setup_true_lang--AzKirWT.js";
31
31
  import { _ as Co } from "./BuiCommandGroup.vue_vue_type_script_setup_true_lang-oAo3VvXV.js";
32
32
  import { _ as Fo } from "./BuiCommandInput.vue_vue_type_script_setup_true_lang-BEhdQsvD.js";
@@ -50,9 +50,9 @@ import { _ as or } from "./BuiContextMenuSubTrigger.vue_vue_type_script_setup_tr
50
50
  import { _ as er } from "./BuiContextMenuSubContent.vue_vue_type_script_setup_true_lang-CvYcdr9E.js";
51
51
  import { _ as ar } from "./BuiDialog.vue_vue_type_script_setup_true_lang-DGrI65dh.js";
52
52
  import { _ as ur } from "./BuiDialogClose.vue_vue_type_script_setup_true_lang-D9w-FsVq.js";
53
- import { _ as mr } from "./BuiDialogTrigger.vue_vue_type_script_setup_true_lang-Czib4PX-.js";
53
+ import { _ as sr } from "./BuiDialogTrigger.vue_vue_type_script_setup_true_lang-Czib4PX-.js";
54
54
  import { _ as xr } from "./BuiDialogHeader.vue_vue_type_script_setup_true_lang-2BA5kKFA.js";
55
- import { _ as nr } from "./BuiDialogTitle.vue_vue_type_script_setup_true_lang-D4lcU_Gz.js";
55
+ import { _ as fr } from "./BuiDialogTitle.vue_vue_type_script_setup_true_lang-D4lcU_Gz.js";
56
56
  import { _ as _r } from "./BuiDialogDescription.vue_vue_type_script_setup_true_lang-B6RlWji2.js";
57
57
  import { _ as dr } from "./BuiDialogContent.vue_vue_type_script_setup_true_lang-3DBhO_IA.js";
58
58
  import { _ as Cr } from "./BuiDialogFooter.vue_vue_type_script_setup_true_lang-B89so9mg.js";
@@ -73,9 +73,9 @@ import { _ as Wr } from "./BuiDropdownMenuSubTrigger.vue_vue_type_script_setup_t
73
73
  import { _ as Yr } from "./BuiDropdownMenuSubContent.vue_vue_type_script_setup_true_lang-mMWlAm-h.js";
74
74
  import { Form as $r, Field as oe, FieldArray as re, useField as ee, useFieldArray as te, useForm as ae } from "vee-validate";
75
75
  import { _ as ue } from "./BuiFormItem.vue_vue_type_script_setup_true_lang-COw7Rwow.js";
76
- import { _ as me } from "./BuiFormLabel.vue_vue_type_script_setup_true_lang-ClJ8XVcR.js";
76
+ import { _ as se } from "./BuiFormLabel.vue_vue_type_script_setup_true_lang-ClJ8XVcR.js";
77
77
  import { _ as xe } from "./BuiFormControl.vue_vue_type_script_setup_true_lang-CCJS2wc1.js";
78
- import { _ as ne } from "./BuiFormMessage.vue_vue_type_script_setup_true_lang-DTdflpS8.js";
78
+ import { _ as fe } from "./BuiFormMessage.vue_vue_type_script_setup_true_lang-DTdflpS8.js";
79
79
  import { _ as _e } from "./BuiFormDescription.vue_vue_type_script_setup_true_lang-CeQSv28t.js";
80
80
  import { _ as de } from "./BuiHoverCard.vue_vue_type_script_setup_true_lang-UvgUvVQh.js";
81
81
  import { _ as Ce } from "./BuiHoverCardTrigger.vue_vue_type_script_setup_true_lang-Cw-9ABpN.js";
@@ -96,9 +96,9 @@ import { BuiHealth as Ze, capHealthVariants as $e, healthVariants as ot } from "
96
96
  import { _ as et } from "./BuiRadioGroup.vue_vue_type_script_setup_true_lang-Bzefyzga.js";
97
97
  import { _ as at } from "./BuiRadioGroupItem.vue_vue_type_script_setup_true_lang-D1w59zx2.js";
98
98
  import { _ as ut } from "./BuiSelect.vue_vue_type_script_setup_true_lang-YVZaZc0x.js";
99
- import { _ as mt } from "./BuiSelectValue.vue_vue_type_script_setup_true_lang-CseYU299.js";
99
+ import { _ as st } from "./BuiSelectValue.vue_vue_type_script_setup_true_lang-CseYU299.js";
100
100
  import { _ as xt } from "./BuiSelectTrigger.vue_vue_type_script_setup_true_lang-Dh-1xzuh.js";
101
- import { _ as nt } from "./BuiSelectContent.vue_vue_type_script_setup_true_lang-CX82dW-X.js";
101
+ import { _ as ft } from "./BuiSelectContent.vue_vue_type_script_setup_true_lang-CX82dW-X.js";
102
102
  import { _ as _t } from "./BuiSelectGroup.vue_vue_type_script_setup_true_lang-B7bT-kcN.js";
103
103
  import { _ as dt } from "./BuiSelectItem.vue_vue_type_script_setup_true_lang-DsWD84S8.js";
104
104
  import { _ as Ct } from "./BuiSelectItemText.vue_vue_type_script_setup_true_lang-CMBf17fE.js";
@@ -120,9 +120,9 @@ import { _ as Qt } from "./BuiDataTable.vue_vue_type_script_setup_true_lang-Bzw8
120
120
  import { BuiTabsList as Xt, BuiTabsTrigger as Yt, tabsListVariants as Zt, tabsTriggerVariants as $t } from "./components/ui/tabs/index.js";
121
121
  import { BuiTextarea as ra, textareaVariants as ea } from "./components/ui/textarea/index.js";
122
122
  import { BuiToast as aa, BuiToaster as ia, toastVariants as ua } from "./components/ui/toast/index.js";
123
- import { _ as ma } from "./BuiTooltip.vue_vue_type_script_setup_true_lang-CsOjyqI1.js";
123
+ import { _ as sa } from "./BuiTooltip.vue_vue_type_script_setup_true_lang-CsOjyqI1.js";
124
124
  import { _ as xa } from "./BuiTooltipContent.vue_vue_type_script_setup_true_lang-DeCynYsO.js";
125
- import { _ as na } from "./BuiTooltipTrigger.vue_vue_type_script_setup_true_lang-Bb8h7e0Q.js";
125
+ import { _ as fa } from "./BuiTooltipTrigger.vue_vue_type_script_setup_true_lang-Bb8h7e0Q.js";
126
126
  import { _ as _a } from "./BuiTooltipProvider.vue_vue_type_script_setup_true_lang-DE2Dcdd0.js";
127
127
  import { BuiToggle as da, toggleVariants as ga } from "./components/ui/toggle/index.js";
128
128
  import { _ as Ta } from "./BuiToggleGroup.vue_vue_type_script_setup_true_lang-D4bAsz99.js";
@@ -135,39 +135,40 @@ import { _ as va } from "./BuiCollapsible.vue_vue_type_script_setup_true_lang-Bf
135
135
  import { _ as La } from "./BuiCollapsibleTrigger.vue_vue_type_script_setup_true_lang-DJ8YMCCp.js";
136
136
  import { _ as Ga } from "./BuiCollapsibleContent.vue_vue_type_script_setup_true_lang-eieHE5yV.js";
137
137
  import { getBaseSchema as Ra, getBaseType as ka, getObjectFormSchema as Ea } from "./components/ui/auto-form/utils.js";
138
- import { _ as Na } from "./BuiAutoForm.vue_vue_type_script_setup_true_lang-BWWNpH1I.js";
139
- import { _ as Ua, a as qa, b as za } from "./BuiAutoFormField.vue_vue_type_script_setup_true_lang-xmzLQDzl.js";
140
- import { _ as Ka } from "./BuiAutoFormLabel.vue_vue_type_script_setup_true_lang-DzpWjTLE.js";
141
- import { _ as Wa } from "./BuiAutoFormFieldBoolean.vue_vue_type_script_setup_true_lang-tuxavlOe.js";
142
- import { _ as Ya } from "./BuiAutoFormFieldDate.vue_vue_type_script_setup_true_lang-Bzg1m-ii.js";
143
- import { _ as $a } from "./BuiAutoFormFieldEnum.vue_vue_type_script_setup_true_lang-Bqe8Rt85.js";
144
- import { _ as ri } from "./BuiAutoFormFieldFile.vue_vue_type_script_setup_true_lang-DrJwn66q.js";
145
- import { _ as ti } from "./BuiAutoFormFieldInput.vue_vue_type_script_setup_true_lang-DtBFfiOK.js";
146
- import { _ as ii } from "./BuiAutoFormFieldNumber.vue_vue_type_script_setup_true_lang-ClLqHM1Y.js";
138
+ import { _ as Na } from "./BuiAutoForm.vue_vue_type_script_setup_true_lang-DyG1WRf2.js";
139
+ import { _ as Ua, a as qa } from "./BuiAutoFormField.vue_vue_type_script_setup_true_lang-D0xFhEmy.js";
140
+ import { _ as Ja } from "./BuiAutoFormLabel.vue_vue_type_script_setup_true_lang-DzpWjTLE.js";
141
+ import { _ as Qa } from "./BuiAutoFormFieldBoolean.vue_vue_type_script_setup_true_lang-tuxavlOe.js";
142
+ import { _ as Xa } from "./BuiAutoFormFieldDate.vue_vue_type_script_setup_true_lang-Bzg1m-ii.js";
143
+ import { _ as Za } from "./BuiAutoFormFieldEnum.vue_vue_type_script_setup_true_lang-Bqe8Rt85.js";
144
+ import { _ as oi } from "./BuiAutoFormFieldFile.vue_vue_type_script_setup_true_lang-DrJwn66q.js";
145
+ import { _ as ei } from "./BuiAutoFormFieldInput.vue_vue_type_script_setup_true_lang-DtBFfiOK.js";
146
+ import { _ as ai } from "./BuiAutoFormFieldNumber.vue_vue_type_script_setup_true_lang-ClLqHM1Y.js";
147
+ import { _ as ui } from "./BuiAutoFormFieldObject.vue_vue_type_script_setup_true_lang-C7URAPKt.js";
147
148
  import { default as si } from "./tailwind-preset.js";
148
149
  /* empty css */
149
- import { _ as pi } from "./BuiAlertTitle.vue_vue_type_script_setup_true_lang-BvU1UhRc.js";
150
- import { _ as Bi } from "./BuiAlertDescription.vue_vue_type_script_setup_true_lang-CVBdwmJq.js";
151
- import { _ as fi } from "./BuiAvatarImage.vue_vue_type_script_setup_true_lang-CpDtlLee.js";
152
- import { _ as li } from "./BuiAvatarFallback.vue_vue_type_script_setup_true_lang-DM4kyiXi.js";
150
+ import { _ as xi } from "./BuiAlertTitle.vue_vue_type_script_setup_true_lang-BvU1UhRc.js";
151
+ import { _ as fi } from "./BuiAlertDescription.vue_vue_type_script_setup_true_lang-CVBdwmJq.js";
152
+ import { _ as _i } from "./BuiAvatarImage.vue_vue_type_script_setup_true_lang-CpDtlLee.js";
153
+ import { _ as di } from "./BuiAvatarFallback.vue_vue_type_script_setup_true_lang-DM4kyiXi.js";
153
154
  import "./BuiCalendar.vue_vue_type_style_index_0_lang-DK4yUiXC.js";
154
- import { _ as gi } from "./BuiTabs.vue_vue_type_script_setup_true_lang-DZavy0KI.js";
155
- import { _ as Ti } from "./BuiTabsContent.vue_vue_type_script_setup_true_lang-BGARj0PN.js";
156
- import { _ as ci } from "./BuiToastAction.vue_vue_type_script_setup_true_lang-BnduHxHU.js";
157
- import { _ as Di } from "./BuiToastViewport.vue_vue_type_script_setup_true_lang-DGcOPCBU.js";
158
- import { _ as Si } from "./BuiToastClose.vue_vue_type_script_setup_true_lang-D8a4DIAU.js";
159
- import { _ as wi } from "./BuiToastTitle.vue_vue_type_script_setup_true_lang-BTPprH2k.js";
160
- import { _ as Pi } from "./BuiToastDescription.vue_vue_type_script_setup_true_lang-DttuuxON.js";
161
- import { _ as vi } from "./BuiToastProvider.vue_vue_type_script_setup_true_lang-V09S1Ros.js";
162
- import { toast as Li, useToast as yi } from "./components/ui/toast/use-toast.js";
155
+ import { _ as Ci } from "./BuiTabs.vue_vue_type_script_setup_true_lang-DZavy0KI.js";
156
+ import { _ as Fi } from "./BuiTabsContent.vue_vue_type_script_setup_true_lang-BGARj0PN.js";
157
+ import { _ as bi } from "./BuiToastAction.vue_vue_type_script_setup_true_lang-BnduHxHU.js";
158
+ import { _ as Ai } from "./BuiToastViewport.vue_vue_type_script_setup_true_lang-DGcOPCBU.js";
159
+ import { _ as Mi } from "./BuiToastClose.vue_vue_type_script_setup_true_lang-D8a4DIAU.js";
160
+ import { _ as Ii } from "./BuiToastTitle.vue_vue_type_script_setup_true_lang-BTPprH2k.js";
161
+ import { _ as Vi } from "./BuiToastDescription.vue_vue_type_script_setup_true_lang-DttuuxON.js";
162
+ import { _ as hi } from "./BuiToastProvider.vue_vue_type_script_setup_true_lang-V09S1Ros.js";
163
+ import { toast as yi, useToast as Gi } from "./components/ui/toast/use-toast.js";
163
164
  export {
164
165
  i as BuiAccordion,
165
- s as BuiAccordionContent,
166
+ m as BuiAccordionContent,
166
167
  p as BuiAccordionItem,
167
168
  B as BuiAccordionTrigger,
168
169
  v as BuiAlert,
169
- Bi as BuiAlertDescription,
170
- f as BuiAlertDialog,
170
+ fi as BuiAlertDescription,
171
+ n as BuiAlertDialog,
171
172
  w as BuiAlertDialogAction,
172
173
  P as BuiAlertDialogCancel,
173
174
  g as BuiAlertDialogContent,
@@ -176,22 +177,22 @@ export {
176
177
  T as BuiAlertDialogHeader,
177
178
  c as BuiAlertDialogTitle,
178
179
  l as BuiAlertDialogTrigger,
179
- pi as BuiAlertTitle,
180
+ xi as BuiAlertTitle,
180
181
  y as BuiAspectRatio,
181
182
  Na as BuiAutoForm,
182
183
  Ua as BuiAutoFormField,
183
184
  qa as BuiAutoFormFieldArray,
184
- Wa as BuiAutoFormFieldBoolean,
185
- Ya as BuiAutoFormFieldDate,
186
- $a as BuiAutoFormFieldEnum,
187
- ri as BuiAutoFormFieldFile,
188
- ti as BuiAutoFormFieldInput,
189
- ii as BuiAutoFormFieldNumber,
190
- za as BuiAutoFormFieldObject,
191
- Ka as BuiAutoFormLabel,
185
+ Qa as BuiAutoFormFieldBoolean,
186
+ Xa as BuiAutoFormFieldDate,
187
+ Za as BuiAutoFormFieldEnum,
188
+ oi as BuiAutoFormFieldFile,
189
+ ei as BuiAutoFormFieldInput,
190
+ ai as BuiAutoFormFieldNumber,
191
+ ui as BuiAutoFormFieldObject,
192
+ Ja as BuiAutoFormLabel,
192
193
  H as BuiAvatar,
193
- li as BuiAvatarFallback,
194
- fi as BuiAvatarImage,
194
+ di as BuiAvatarFallback,
195
+ _i as BuiAvatarImage,
195
196
  E as BuiBadge,
196
197
  be as BuiBadgedInput,
197
198
  O as BuiButton,
@@ -199,7 +200,7 @@ export {
199
200
  Y as BuiCard,
200
201
  io as BuiCardContent,
201
202
  to as BuiCardDescription,
202
- so as BuiCardFooter,
203
+ mo as BuiCardFooter,
203
204
  $ as BuiCardHeader,
204
205
  ro as BuiCardTitle,
205
206
  po as BuiCheckbox,
@@ -207,7 +208,7 @@ export {
207
208
  Ga as BuiCollapsibleContent,
208
209
  La as BuiCollapsibleTrigger,
209
210
  Bo as BuiCommand,
210
- fo as BuiCommandDialog,
211
+ no as BuiCommandDialog,
211
212
  lo as BuiCommandEmpty,
212
213
  Co as BuiCommandGroup,
213
214
  Fo as BuiCommandInput,
@@ -236,8 +237,8 @@ export {
236
237
  _r as BuiDialogDescription,
237
238
  Cr as BuiDialogFooter,
238
239
  xr as BuiDialogHeader,
239
- nr as BuiDialogTitle,
240
- mr as BuiDialogTrigger,
240
+ fr as BuiDialogTitle,
241
+ sr as BuiDialogTrigger,
241
242
  Sr as BuiDropdownMenu,
242
243
  Rr as BuiDropdownMenuCheckboxItem,
243
244
  Pr as BuiDropdownMenuContent,
@@ -259,8 +260,8 @@ export {
259
260
  oe as BuiFormField,
260
261
  re as BuiFormFieldArray,
261
262
  ue as BuiFormItem,
262
- me as BuiFormLabel,
263
- ne as BuiFormMessage,
263
+ se as BuiFormLabel,
264
+ fe as BuiFormMessage,
264
265
  Ze as BuiHealth,
265
266
  de as BuiHoverCard,
266
267
  Fe as BuiHoverCardContent,
@@ -286,14 +287,14 @@ export {
286
287
  wa as BuiScrollArea,
287
288
  Pa as BuiScrollBar,
288
289
  ut as BuiSelect,
289
- nt as BuiSelectContent,
290
+ ft as BuiSelectContent,
290
291
  _t as BuiSelectGroup,
291
292
  dt as BuiSelectItem,
292
293
  Ct as BuiSelectItemText,
293
294
  Ft as BuiSelectLabel,
294
295
  bt as BuiSelectSeparator,
295
296
  xt as BuiSelectTrigger,
296
- mt as BuiSelectValue,
297
+ st as BuiSelectValue,
297
298
  At as BuiSeparator,
298
299
  Da as BuiSlider,
299
300
  Mt as BuiSwitch,
@@ -307,26 +308,26 @@ export {
307
308
  Ht as BuiTableHeader,
308
309
  kt as BuiTableRow,
309
310
  jt as BuiTableRowSubrow,
310
- gi as BuiTabs,
311
- Ti as BuiTabsContent,
311
+ Ci as BuiTabs,
312
+ Fi as BuiTabsContent,
312
313
  Xt as BuiTabsList,
313
314
  Yt as BuiTabsTrigger,
314
315
  ra as BuiTextarea,
315
316
  aa as BuiToast,
316
- ci as BuiToastAction,
317
- Si as BuiToastClose,
318
- Pi as BuiToastDescription,
319
- vi as BuiToastProvider,
320
- wi as BuiToastTitle,
321
- Di as BuiToastViewport,
317
+ bi as BuiToastAction,
318
+ Mi as BuiToastClose,
319
+ Vi as BuiToastDescription,
320
+ hi as BuiToastProvider,
321
+ Ii as BuiToastTitle,
322
+ Ai as BuiToastViewport,
322
323
  ia as BuiToaster,
323
324
  da as BuiToggle,
324
325
  Ta as BuiToggleGroup,
325
326
  ca as BuiToggleGroupItem,
326
- ma as BuiTooltip,
327
+ sa as BuiTooltip,
327
328
  xa as BuiTooltipContent,
328
329
  _a as BuiTooltipProvider,
329
- na as BuiTooltipTrigger,
330
+ fa as BuiTooltipTrigger,
330
331
  Sa as Skeleton,
331
332
  h as alertVariants,
332
333
  R as avatarVariant,
@@ -348,12 +349,12 @@ export {
348
349
  $t as tabsTriggerVariants,
349
350
  si as tailwind,
350
351
  ea as textareaVariants,
351
- Li as toast,
352
+ yi as toast,
352
353
  ua as toastVariants,
353
354
  ga as toggleVariants,
354
355
  ee as useBuiField,
355
356
  te as useBuiFieldArray,
356
357
  ae as useBuiForm,
357
- yi as useToast,
358
+ Gi as useToast,
358
359
  J as valueUpdater
359
360
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@soft-stech/bootsman-ui-shadcn",
3
- "version": "1.3.8",
3
+ "version": "1.3.9",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist",
@@ -23,6 +23,16 @@ const schema = z.object({
23
23
  })
24
24
  .describe('Addon')
25
25
  ),
26
+ level1: z
27
+ .object({
28
+ level2: z.object({
29
+ level3: z.object({
30
+ test: z.string().min(1),
31
+ something: z.boolean()
32
+ })
33
+ })
34
+ })
35
+ .describe('Level 1'),
26
36
  username: z
27
37
  .string({
28
38
  required_error: 'Username is required.'
@@ -86,7 +86,7 @@ const formComponentProps = computed(() => {
86
86
  </script>
87
87
 
88
88
  <template>
89
- <component :is="formComponent" v-bind="formComponentProps">
89
+ <component :is="formComponent" v-bind="formComponentProps" class="flex flex-col gap-5">
90
90
  <slot name="customAutoForm" :fields="fields">
91
91
  <template v-for="(shape, key) of shapes" :key="key">
92
92
  <slot
@@ -0,0 +1,73 @@
1
+ <script setup lang="ts" generic="T extends ZodRawShape">
2
+ import type { ZodAny, ZodObject, ZodRawShape } from 'zod'
3
+ import { computed, provide } from 'vue'
4
+ import { FieldContextKey, useField } from 'vee-validate'
5
+ import AutoFormField from './BuiAutoFormField.vue'
6
+ import type { Config, ConfigItem, Shape } from './interface'
7
+ import { beautifyObjectName, getBaseSchema, getBaseType, getDefaultValueInZodStack } from './utils'
8
+ import { BuiCard, BuiCardContent, BuiCardHeader, BuiCardTitle } from '@/components/ui/card'
9
+ import { BuiFormItem as FormItem } from '@/components/ui/form'
10
+
11
+ const props = defineProps<{
12
+ fieldName: string
13
+ required?: boolean
14
+ config?: Config<T>
15
+ schema?: ZodObject<T>
16
+ disabled?: boolean
17
+ }>()
18
+
19
+ const shapes = computed(() => {
20
+ // @ts-expect-error ignore {} not assignable to object
21
+ const val: { [key in keyof T]: Shape } = {}
22
+
23
+ if (!props.schema) return
24
+ const shape = getBaseSchema(props.schema)?.shape
25
+ if (!shape) return
26
+ Object.keys(shape).forEach((name) => {
27
+ const item = shape[name] as ZodAny
28
+ const baseItem = getBaseSchema(item) as ZodAny
29
+ let options =
30
+ baseItem && 'values' in baseItem._def ? (baseItem._def.values as string[]) : undefined
31
+ if (!Array.isArray(options) && typeof options === 'object') options = Object.values(options)
32
+
33
+ val[name as keyof T] = {
34
+ type: getBaseType(item),
35
+ default: getDefaultValueInZodStack(item),
36
+ options,
37
+ required: !['ZodOptional', 'ZodNullable'].includes(item._def.typeName),
38
+ schema: item
39
+ }
40
+ })
41
+ return val
42
+ })
43
+
44
+ const fieldContext = useField(props.fieldName)
45
+ // @ts-expect-error ignore missing `id`
46
+ provide(FieldContextKey, fieldContext)
47
+ </script>
48
+
49
+ <template>
50
+ <section>
51
+ <slot v-bind="props">
52
+ <BuiCard as-child class="w-full border-0 shadow-none">
53
+ <FormItem>
54
+ <BuiCardHeader class="border-b-[1px] border-b-border/[0.16] py-1">
55
+ <BuiCardTitle class="py-0 text-base">
56
+ {{ schema?.description || fieldName.split('.')[fieldName.split('.').length - 1] }}
57
+ </BuiCardTitle>
58
+ </BuiCardHeader>
59
+ <BuiCardContent class="flex flex-col gap-5 pb-0 pr-0">
60
+ <template v-for="(shape, key) in shapes" :key="key">
61
+ <AutoFormField
62
+ :config="config?.[key as keyof typeof config] as ConfigItem"
63
+ :field-name="`${fieldName}.${key.toString()}`"
64
+ :label="key.toString()"
65
+ :shape="shape"
66
+ />
67
+ </template>
68
+ </BuiCardContent>
69
+ </FormItem>
70
+ </BuiCard>
71
+ </slot>
72
+ </section>
73
+ </template>
@@ -6,6 +6,7 @@ import BuiAutoFormFieldFile from './BuiAutoFormFieldFile.vue'
6
6
  import BuiAutoFormFieldInput from './BuiAutoFormFieldInput.vue'
7
7
  import BuiAutoFormFieldNumber from './BuiAutoFormFieldNumber.vue'
8
8
  import BuiAutoFormFieldObject from './BuiAutoFormFieldObject.vue'
9
+ import BuiAutoFormFieldObjectCard from '@/components/ui/auto-form/BuiAutoFormFieldObjectCard.vue'
9
10
 
10
11
  export const INPUT_COMPONENTS = {
11
12
  date: BuiAutoFormFieldDate,
@@ -18,7 +19,7 @@ export const INPUT_COMPONENTS = {
18
19
  string: BuiAutoFormFieldInput,
19
20
  file: BuiAutoFormFieldFile,
20
21
  array: BuiAutoFormFieldArray,
21
- object: BuiAutoFormFieldObject
22
+ object: BuiAutoFormFieldObjectCard
22
23
  }
23
24
 
24
25
  /**