@soft-stech/bootsman-ui-shadcn 1.1.35 → 1.1.37
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/{BuiAccordion.vue_vue_type_script_setup_true_lang-BfKSXvSH.js → BuiAccordion.vue_vue_type_script_setup_true_lang-D6NZ2Glm.js} +1 -1
- package/dist/{BuiAccordionContent.vue_vue_type_script_setup_true_lang-BbhnWn3N.js → BuiAccordionContent.vue_vue_type_script_setup_true_lang-DWgwTZC3.js} +2 -2
- package/dist/{BuiAccordionItem.vue_vue_type_script_setup_true_lang-DxH0uB8i.js → BuiAccordionItem.vue_vue_type_script_setup_true_lang-VmckedPQ.js} +2 -2
- package/dist/{BuiAccordionTrigger.vue_vue_type_script_setup_true_lang-Brr7tYY4.js → BuiAccordionTrigger.vue_vue_type_script_setup_true_lang-CvrPKvEn.js} +3 -3
- package/dist/{BuiAlertDescription.vue_vue_type_script_setup_true_lang--5lclQDt.js → BuiAlertDescription.vue_vue_type_script_setup_true_lang-JGl4jOiY.js} +1 -1
- package/dist/{BuiAlertDialog.vue_vue_type_script_setup_true_lang-D8w0vAwB.js → BuiAlertDialog.vue_vue_type_script_setup_true_lang-CYOmW_Y5.js} +1 -1
- package/dist/{BuiAlertDialogAction.vue_vue_type_script_setup_true_lang-CiyEUlrT.js → BuiAlertDialogAction.vue_vue_type_script_setup_true_lang-B68AKQif.js} +2 -2
- package/dist/{BuiAlertDialogCancel.vue_vue_type_script_setup_true_lang-DGOF3es1.js → BuiAlertDialogCancel.vue_vue_type_script_setup_true_lang-Dwqlf8oj.js} +2 -2
- package/dist/{BuiAlertDialogContent.vue_vue_type_script_setup_true_lang-BbmS5S_E.js → BuiAlertDialogContent.vue_vue_type_script_setup_true_lang-DQ3MO21t.js} +2 -2
- package/dist/{BuiAlertDialogDescription.vue_vue_type_script_setup_true_lang-CH61yTmR.js → BuiAlertDialogDescription.vue_vue_type_script_setup_true_lang-C0nmsUbU.js} +2 -2
- package/dist/{BuiAlertDialogFooter.vue_vue_type_script_setup_true_lang-iuAyMnVQ.js → BuiAlertDialogFooter.vue_vue_type_script_setup_true_lang-Bwp16uCV.js} +1 -1
- package/dist/{BuiAlertDialogHeader.vue_vue_type_script_setup_true_lang-D0DhqzGI.js → BuiAlertDialogHeader.vue_vue_type_script_setup_true_lang-C9SdCMGG.js} +1 -1
- package/dist/{BuiAlertDialogTitle.vue_vue_type_script_setup_true_lang-JzKWF3os.js → BuiAlertDialogTitle.vue_vue_type_script_setup_true_lang-Dnbl9EtZ.js} +2 -2
- package/dist/{BuiAlertDialogTrigger.vue_vue_type_script_setup_true_lang-C3jyJvAh.js → BuiAlertDialogTrigger.vue_vue_type_script_setup_true_lang-DALyN6MC.js} +1 -1
- package/dist/{BuiAlertTitle.vue_vue_type_script_setup_true_lang-Ds0SdqSj.js → BuiAlertTitle.vue_vue_type_script_setup_true_lang-CgpdlY3s.js} +1 -1
- package/dist/{BuiAspectRatio.vue_vue_type_script_setup_true_lang-Dtn1AIPx.js → BuiAspectRatio.vue_vue_type_script_setup_true_lang-DfbboEQK.js} +1 -1
- package/dist/BuiAutoForm.vue_vue_type_script_setup_true_lang-CKS23plt.js +206 -0
- package/dist/BuiAutoFormField.vue_vue_type_script_setup_true_lang-DwgVv_fo.js +3062 -0
- package/dist/BuiAutoFormFieldBoolean.vue_vue_type_script_setup_true_lang-BKT85fgx.js +66 -0
- package/dist/BuiAutoFormFieldDate.vue_vue_type_script_setup_true_lang-DWyKdzS5.js +223 -0
- package/dist/BuiAutoFormFieldEnum.vue_vue_type_script_setup_true_lang-BECJ52JQ.js +120 -0
- package/dist/BuiAutoFormFieldFile.vue_vue_type_script_setup_true_lang-BFuZvVOr.js +114 -0
- package/dist/BuiAutoFormFieldInput.vue_vue_type_script_setup_true_lang-DGI0ZobZ.js +60 -0
- package/dist/BuiAutoFormFieldNumber.vue_vue_type_script_setup_true_lang-DmjImgRr.js +59 -0
- package/dist/BuiAutoFormLabel.vue_vue_type_script_setup_true_lang-Cnb5VI3E.js +23 -0
- package/dist/{BuiAvatarFallback.vue_vue_type_script_setup_true_lang-BZTk1ZO8.js → BuiAvatarFallback.vue_vue_type_script_setup_true_lang-jsKtoJ8h.js} +1 -1
- package/dist/{BuiAvatarImage.vue_vue_type_script_setup_true_lang-TPs2An4d.js → BuiAvatarImage.vue_vue_type_script_setup_true_lang-ZeFLLZLS.js} +1 -1
- package/dist/{BuiCalendar.vue_vue_type_style_index_0_lang-BWeH1wsj.js → BuiCalendar.vue_vue_type_style_index_0_lang-D428Q6Nh.js} +1 -1
- package/dist/{BuiCard.vue_vue_type_script_setup_true_lang-BMW80jD9.js → BuiCard.vue_vue_type_script_setup_true_lang-BdNbxFvi.js} +1 -1
- package/dist/{BuiCardContent.vue_vue_type_script_setup_true_lang-DKxhoB3d.js → BuiCardContent.vue_vue_type_script_setup_true_lang--U7YuaQv.js} +1 -1
- package/dist/{BuiCardDescription.vue_vue_type_script_setup_true_lang-D_7eKbkg.js → BuiCardDescription.vue_vue_type_script_setup_true_lang-CWcDrner.js} +1 -1
- package/dist/{BuiCardFooter.vue_vue_type_script_setup_true_lang-BY-01BUB.js → BuiCardFooter.vue_vue_type_script_setup_true_lang-DTYkTHzY.js} +1 -1
- package/dist/{BuiCardHeader.vue_vue_type_script_setup_true_lang-1Mhatm4p.js → BuiCardHeader.vue_vue_type_script_setup_true_lang-7H4mP92e.js} +1 -1
- package/dist/{BuiCardTitle.vue_vue_type_script_setup_true_lang-B_Y19N7R.js → BuiCardTitle.vue_vue_type_script_setup_true_lang-DR6fWGz9.js} +1 -1
- package/dist/{BuiCheckbox.vue_vue_type_script_setup_true_lang-DVGDSThf.js → BuiCheckbox.vue_vue_type_script_setup_true_lang-CyxEbO5t.js} +3 -3
- package/dist/{BuiCollapsible.vue_vue_type_script_setup_true_lang-mS4zvM_P.js → BuiCollapsible.vue_vue_type_script_setup_true_lang-x_Glw-gh.js} +1 -1
- package/dist/{BuiCollapsibleContent.vue_vue_type_script_setup_true_lang-DbI-Bsc-.js → BuiCollapsibleContent.vue_vue_type_script_setup_true_lang-B72_xwvG.js} +1 -1
- package/dist/{BuiCollapsibleTrigger.vue_vue_type_script_setup_true_lang-r01DxQ2Q.js → BuiCollapsibleTrigger.vue_vue_type_script_setup_true_lang-ByrCdFCy.js} +1 -1
- package/dist/{BuiCommand.vue_vue_type_script_setup_true_lang-vCZthg7w.js → BuiCommand.vue_vue_type_script_setup_true_lang-C1O7IDvd.js} +2 -2
- package/dist/{BuiCommandDialog.vue_vue_type_script_setup_true_lang-DCThty8N.js → BuiCommandDialog.vue_vue_type_script_setup_true_lang-BYYdrUJm.js} +4 -4
- package/dist/{BuiCommandEmpty.vue_vue_type_script_setup_true_lang-CLQ-baFY.js → BuiCommandEmpty.vue_vue_type_script_setup_true_lang-dM0MIDwK.js} +2 -2
- package/dist/{BuiCommandGroup.vue_vue_type_script_setup_true_lang-lLiGoA_4.js → BuiCommandGroup.vue_vue_type_script_setup_true_lang--JVL30Bq.js} +2 -2
- package/dist/{BuiCommandInput.vue_vue_type_script_setup_true_lang-CLrBYVpQ.js → BuiCommandInput.vue_vue_type_script_setup_true_lang-td41Iq0J.js} +2 -2
- package/dist/{BuiCommandItem.vue_vue_type_script_setup_true_lang-CnebUcLW.js → BuiCommandItem.vue_vue_type_script_setup_true_lang-Co-lQQqw.js} +2 -2
- package/dist/{BuiCommandList.vue_vue_type_script_setup_true_lang-CibMa0o2.js → BuiCommandList.vue_vue_type_script_setup_true_lang-Bp0LuoaV.js} +2 -2
- package/dist/{BuiCommandSeparator.vue_vue_type_script_setup_true_lang-BzrpvBvu.js → BuiCommandSeparator.vue_vue_type_script_setup_true_lang-ClosG8me.js} +2 -2
- package/dist/{BuiCommandShortcut.vue_vue_type_script_setup_true_lang-BaVBsojk.js → BuiCommandShortcut.vue_vue_type_script_setup_true_lang-DGMEA91e.js} +1 -1
- package/dist/{BuiContextMenu.vue_vue_type_script_setup_true_lang-PrqR-Z4o.js → BuiContextMenu.vue_vue_type_script_setup_true_lang-Bh8oJUyh.js} +1 -1
- package/dist/{BuiContextMenuCheckboxItem.vue_vue_type_script_setup_true_lang-B0Q6XLM9.js → BuiContextMenuCheckboxItem.vue_vue_type_script_setup_true_lang-BL5Zlqy2.js} +3 -3
- package/dist/{BuiContextMenuContent.vue_vue_type_script_setup_true_lang-CNzFm5sV.js → BuiContextMenuContent.vue_vue_type_script_setup_true_lang-DtIN0awe.js} +2 -2
- package/dist/{BuiContextMenuGroup.vue_vue_type_script_setup_true_lang-fvcZ-f6-.js → BuiContextMenuGroup.vue_vue_type_script_setup_true_lang-BUlkesJX.js} +1 -1
- package/dist/{BuiContextMenuItem.vue_vue_type_script_setup_true_lang-BpbecxMw.js → BuiContextMenuItem.vue_vue_type_script_setup_true_lang-BbuySkF5.js} +2 -2
- package/dist/{BuiContextMenuLabel.vue_vue_type_script_setup_true_lang-Ba0zgmX1.js → BuiContextMenuLabel.vue_vue_type_script_setup_true_lang-DQ3a_SwA.js} +2 -2
- package/dist/{BuiContextMenuRadioGroup.vue_vue_type_script_setup_true_lang-D3CJCQDQ.js → BuiContextMenuRadioGroup.vue_vue_type_script_setup_true_lang-CucdMx7c.js} +1 -1
- package/dist/{BuiContextMenuRadioItem.vue_vue_type_script_setup_true_lang-xJBxOtef.js → BuiContextMenuRadioItem.vue_vue_type_script_setup_true_lang-aA32tkEA.js} +3 -3
- package/dist/{BuiContextMenuSeparator.vue_vue_type_script_setup_true_lang-Da9k9Xjv.js → BuiContextMenuSeparator.vue_vue_type_script_setup_true_lang-DNb1vb3q.js} +2 -2
- package/dist/{BuiContextMenuShortcut.vue_vue_type_script_setup_true_lang-taRHZa-r.js → BuiContextMenuShortcut.vue_vue_type_script_setup_true_lang-ExJmRXvx.js} +1 -1
- package/dist/{BuiContextMenuSub.vue_vue_type_script_setup_true_lang-DJK6Y2q7.js → BuiContextMenuSub.vue_vue_type_script_setup_true_lang-CfEN3NAs.js} +1 -1
- package/dist/{BuiContextMenuSubContent.vue_vue_type_script_setup_true_lang-C_w8SnYz.js → BuiContextMenuSubContent.vue_vue_type_script_setup_true_lang-BZxR0wIO.js} +2 -2
- package/dist/{BuiContextMenuSubTrigger.vue_vue_type_script_setup_true_lang-F5AWjMF3.js → BuiContextMenuSubTrigger.vue_vue_type_script_setup_true_lang-CFcwqUKs.js} +3 -3
- package/dist/{BuiContextMenuTrigger.vue_vue_type_script_setup_true_lang-eoWRCIPI.js → BuiContextMenuTrigger.vue_vue_type_script_setup_true_lang-Bc2IaG-4.js} +1 -1
- package/dist/{BuiDataTable.vue_vue_type_script_setup_true_lang-Re8FHMAA.js → BuiDataTable.vue_vue_type_script_setup_true_lang-BWEYe7eA.js} +15 -15
- package/dist/{BuiDialog.vue_vue_type_script_setup_true_lang-BWW5P0oc.js → BuiDialog.vue_vue_type_script_setup_true_lang-BCbOviQn.js} +1 -1
- package/dist/{BuiDialogClose.vue_vue_type_script_setup_true_lang-Ci6G4VA5.js → BuiDialogClose.vue_vue_type_script_setup_true_lang-Fdp24YHC.js} +1 -1
- package/dist/{BuiDialogContent.vue_vue_type_script_setup_true_lang-CLUgaeYF.js → BuiDialogContent.vue_vue_type_script_setup_true_lang-DTS5OB86.js} +3 -3
- package/dist/{BuiDialogDescription.vue_vue_type_script_setup_true_lang-Dr-dU1PB.js → BuiDialogDescription.vue_vue_type_script_setup_true_lang-CPGwGG27.js} +2 -2
- package/dist/{BuiDialogFooter.vue_vue_type_script_setup_true_lang-Bv3lHEiX.js → BuiDialogFooter.vue_vue_type_script_setup_true_lang-Blm8xAsp.js} +1 -1
- package/dist/{BuiDialogHeader.vue_vue_type_script_setup_true_lang-D_9wEIjp.js → BuiDialogHeader.vue_vue_type_script_setup_true_lang-DIxMSIbx.js} +1 -1
- package/dist/{BuiDialogTitle.vue_vue_type_script_setup_true_lang-CBuggL21.js → BuiDialogTitle.vue_vue_type_script_setup_true_lang-Dw4OSpt_.js} +2 -2
- package/dist/{BuiDialogTrigger.vue_vue_type_script_setup_true_lang-CTPbIWJP.js → BuiDialogTrigger.vue_vue_type_script_setup_true_lang-C58hpmhT.js} +1 -1
- package/dist/{BuiDropdownMenu.vue_vue_type_script_setup_true_lang-DezLXrmo.js → BuiDropdownMenu.vue_vue_type_script_setup_true_lang-BV70HeIN.js} +1 -1
- package/dist/{BuiDropdownMenuCheckboxItem.vue_vue_type_script_setup_true_lang-B3n4HvKD.js → BuiDropdownMenuCheckboxItem.vue_vue_type_script_setup_true_lang-yS6gA48j.js} +3 -3
- package/dist/{BuiDropdownMenuContent.vue_vue_type_script_setup_true_lang-DZ_M0Jkq.js → BuiDropdownMenuContent.vue_vue_type_script_setup_true_lang-Bb4Q6tSz.js} +2 -2
- package/dist/{BuiDropdownMenuGroup.vue_vue_type_script_setup_true_lang-CZDidzDB.js → BuiDropdownMenuGroup.vue_vue_type_script_setup_true_lang-DfNb5nUo.js} +1 -1
- package/dist/{BuiDropdownMenuItem.vue_vue_type_script_setup_true_lang-DdB_o2Eh.js → BuiDropdownMenuItem.vue_vue_type_script_setup_true_lang--QP6Nby4.js} +2 -2
- package/dist/{BuiDropdownMenuLabel.vue_vue_type_script_setup_true_lang-CVo9G-zN.js → BuiDropdownMenuLabel.vue_vue_type_script_setup_true_lang-Dh1TMw9d.js} +2 -2
- package/dist/{BuiDropdownMenuRadioGroup.vue_vue_type_script_setup_true_lang-CAWGTQp0.js → BuiDropdownMenuRadioGroup.vue_vue_type_script_setup_true_lang-DTcNorlM.js} +1 -1
- package/dist/{BuiDropdownMenuRadioItem.vue_vue_type_script_setup_true_lang-Cim9HybM.js → BuiDropdownMenuRadioItem.vue_vue_type_script_setup_true_lang-ToMKHcEm.js} +3 -3
- package/dist/{BuiDropdownMenuSeparator.vue_vue_type_script_setup_true_lang-BQkOcCsm.js → BuiDropdownMenuSeparator.vue_vue_type_script_setup_true_lang-BbepqtDL.js} +1 -1
- package/dist/{BuiDropdownMenuShortcut.vue_vue_type_script_setup_true_lang-Dz8Ikto7.js → BuiDropdownMenuShortcut.vue_vue_type_script_setup_true_lang-BWgELWFx.js} +1 -1
- package/dist/{BuiDropdownMenuSub.vue_vue_type_script_setup_true_lang-C0dWO8aw.js → BuiDropdownMenuSub.vue_vue_type_script_setup_true_lang-Dnqs62GK.js} +1 -1
- package/dist/{BuiDropdownMenuSubContent.vue_vue_type_script_setup_true_lang-1QJ2MRDh.js → BuiDropdownMenuSubContent.vue_vue_type_script_setup_true_lang-DlTXSDu5.js} +2 -2
- package/dist/{BuiDropdownMenuSubTrigger.vue_vue_type_script_setup_true_lang-AiLl3Pzs.js → BuiDropdownMenuSubTrigger.vue_vue_type_script_setup_true_lang-B_LMNZ3o.js} +3 -3
- package/dist/{BuiDropdownMenuTrigger.vue_vue_type_script_setup_true_lang-BS0cV8wr.js → BuiDropdownMenuTrigger.vue_vue_type_script_setup_true_lang-CCSql0mq.js} +1 -1
- package/dist/{BuiFormControl.vue_vue_type_script_setup_true_lang-BkvrIzuO.js → BuiFormControl.vue_vue_type_script_setup_true_lang-DVx9ZDv-.js} +5 -5
- package/dist/BuiFormDescription.vue_vue_type_script_setup_true_lang-BPSgWb0t.js +19 -0
- package/dist/{BuiFormItem.vue_vue_type_script_setup_true_lang-DQtpoiOP.js → BuiFormItem.vue_vue_type_script_setup_true_lang-CP1K61n9.js} +2 -2
- package/dist/{BuiFormLabel.vue_vue_type_script_setup_true_lang-C6Rzvbdb.js → BuiFormLabel.vue_vue_type_script_setup_true_lang-BpCjAbUu.js} +10 -10
- package/dist/BuiFormMessage.vue_vue_type_script_setup_true_lang-CD9in3nQ.js +18 -0
- package/dist/{BuiHoverCard.vue_vue_type_script_setup_true_lang-DpR4myB6.js → BuiHoverCard.vue_vue_type_script_setup_true_lang-B4EJAZ1v.js} +1 -1
- package/dist/{BuiHoverCardContent.vue_vue_type_script_setup_true_lang-CN3tuOjB.js → BuiHoverCardContent.vue_vue_type_script_setup_true_lang-RFeTYn_w.js} +2 -2
- package/dist/{BuiHoverCardTrigger.vue_vue_type_script_setup_true_lang-BQQYYkqh.js → BuiHoverCardTrigger.vue_vue_type_script_setup_true_lang-DRHctQMn.js} +1 -1
- package/dist/{BuiLabel.vue_vue_type_script_setup_true_lang-1HYZx0Dk.js → BuiLabel.vue_vue_type_script_setup_true_lang-DIgQTfIk.js} +2 -2
- package/dist/{BuiPaginationCommon.vue_vue_type_script_setup_true_lang-BF-zRWuU.js → BuiPaginationCommon.vue_vue_type_script_setup_true_lang-VNCFXArM.js} +11 -11
- package/dist/{BuiPaginationEllipsis.vue_vue_type_script_setup_true_lang-C6Vso03Z.js → BuiPaginationEllipsis.vue_vue_type_script_setup_true_lang-sLLjg6Lo.js} +7 -7
- package/dist/{BuiPaginationFirst.vue_vue_type_script_setup_true_lang-DMZ4CAsc.js → BuiPaginationFirst.vue_vue_type_script_setup_true_lang-C1v4DiC-.js} +4 -4
- package/dist/{BuiPaginationLast.vue_vue_type_script_setup_true_lang-Bcz8UoI9.js → BuiPaginationLast.vue_vue_type_script_setup_true_lang-DU5XYLV2.js} +5 -5
- package/dist/{BuiPaginationNext.vue_vue_type_script_setup_true_lang-C4e2l3-p.js → BuiPaginationNext.vue_vue_type_script_setup_true_lang-vH3Cu1pW.js} +3 -3
- package/dist/{BuiPaginationPrev.vue_vue_type_script_setup_true_lang-hw27m8cJ.js → BuiPaginationPrev.vue_vue_type_script_setup_true_lang-CTNwqcX0.js} +3 -3
- package/dist/{BuiPopover.vue_vue_type_script_setup_true_lang-UcSh_GiH.js → BuiPopover.vue_vue_type_script_setup_true_lang-zW4DPswi.js} +1 -1
- package/dist/{BuiPopoverContent.vue_vue_type_script_setup_true_lang-Bn6LAyum.js → BuiPopoverContent.vue_vue_type_script_setup_true_lang-DmZlmmde.js} +2 -2
- package/dist/{BuiPopoverTrigger.vue_vue_type_script_setup_true_lang-Dw8pc308.js → BuiPopoverTrigger.vue_vue_type_script_setup_true_lang-BzLHQJIv.js} +1 -1
- package/dist/{BuiRadioGroup.vue_vue_type_script_setup_true_lang-_Hvn6kqs.js → BuiRadioGroup.vue_vue_type_script_setup_true_lang-Dyyf8FoV.js} +2 -2
- package/dist/{BuiRadioGroupItem.vue_vue_type_script_setup_true_lang-DEHQlTTt.js → BuiRadioGroupItem.vue_vue_type_script_setup_true_lang-CeYEovBc.js} +3 -3
- package/dist/{BuiScrollArea.vue_vue_type_script_setup_true_lang-CYaScauh.js → BuiScrollArea.vue_vue_type_script_setup_true_lang-C6sBLycG.js} +3 -3
- package/dist/{BuiScrollBar.vue_vue_type_script_setup_true_lang-upk9Vx_2.js → BuiScrollBar.vue_vue_type_script_setup_true_lang-D2FLjGPC.js} +2 -2
- package/dist/{BuiSelect.vue_vue_type_script_setup_true_lang-BRQVqTNO.js → BuiSelect.vue_vue_type_script_setup_true_lang-m2Wvc7wn.js} +1 -1
- package/dist/{BuiSelectContent.vue_vue_type_script_setup_true_lang-DIAEg4c7.js → BuiSelectContent.vue_vue_type_script_setup_true_lang-D10Iiz4m.js} +2 -2
- package/dist/{BuiSelectGroup.vue_vue_type_script_setup_true_lang-BzqDI83c.js → BuiSelectGroup.vue_vue_type_script_setup_true_lang-D_fNFsNW.js} +2 -2
- package/dist/{BuiSelectItem.vue_vue_type_script_setup_true_lang-CcUNDMwy.js → BuiSelectItem.vue_vue_type_script_setup_true_lang-DtVOu1-z.js} +3 -3
- package/dist/{BuiSelectItemText.vue_vue_type_script_setup_true_lang-D0U9ILtf.js → BuiSelectItemText.vue_vue_type_script_setup_true_lang-DnGPz6Zk.js} +1 -1
- package/dist/{BuiSelectLabel.vue_vue_type_script_setup_true_lang-nFBlYqoq.js → BuiSelectLabel.vue_vue_type_script_setup_true_lang-DScZZcu2.js} +2 -2
- package/dist/{BuiSelectSeparator.vue_vue_type_script_setup_true_lang-l0ZLnMbK.js → BuiSelectSeparator.vue_vue_type_script_setup_true_lang-BdOmkbIv.js} +2 -2
- package/dist/{BuiSelectTrigger.vue_vue_type_script_setup_true_lang-bVw81gmB.js → BuiSelectTrigger.vue_vue_type_script_setup_true_lang-B3jcBhnj.js} +3 -3
- package/dist/{BuiSelectValue.vue_vue_type_script_setup_true_lang-Do2Xen84.js → BuiSelectValue.vue_vue_type_script_setup_true_lang-Dj1zDTaG.js} +1 -1
- package/dist/{BuiSeparator.vue_vue_type_script_setup_true_lang-BOWDo0Nu.js → BuiSeparator.vue_vue_type_script_setup_true_lang-DdQNHu4h.js} +2 -2
- package/dist/{BuiSlider.vue_vue_type_script_setup_true_lang-DezjEUdU.js → BuiSlider.vue_vue_type_script_setup_true_lang-pzAiX1XP.js} +2 -2
- package/dist/{BuiSwitch.vue_vue_type_script_setup_true_lang-DDm9OTdj.js → BuiSwitch.vue_vue_type_script_setup_true_lang-C9ShckgE.js} +2 -2
- package/dist/{BuiTable.vue_vue_type_script_setup_true_lang-E1m-B1AB.js → BuiTable.vue_vue_type_script_setup_true_lang-DtvBDBVo.js} +3 -3
- package/dist/{BuiTableBody.vue_vue_type_script_setup_true_lang-063mcE3N.js → BuiTableBody.vue_vue_type_script_setup_true_lang-C8xJ4jmB.js} +1 -1
- package/dist/{BuiTableCaption.vue_vue_type_script_setup_true_lang-D0ip6gs5.js → BuiTableCaption.vue_vue_type_script_setup_true_lang-akgSakue.js} +1 -1
- package/dist/{BuiTableCell.vue_vue_type_script_setup_true_lang-BHXAudzN.js → BuiTableCell.vue_vue_type_script_setup_true_lang-Bg3H27w9.js} +1 -1
- package/dist/{BuiTableEmpty.vue_vue_type_script_setup_true_lang-BR_xIv44.js → BuiTableEmpty.vue_vue_type_script_setup_true_lang-DdNjsCQp.js} +3 -3
- package/dist/{BuiTableFooter.vue_vue_type_script_setup_true_lang-BmdXpa_A.js → BuiTableFooter.vue_vue_type_script_setup_true_lang-BBpzOKn2.js} +1 -1
- package/dist/{BuiTableHead.vue_vue_type_script_setup_true_lang-D6Im2R68.js → BuiTableHead.vue_vue_type_script_setup_true_lang-fjU0tzXQ.js} +1 -1
- package/dist/{BuiTableHeader.vue_vue_type_script_setup_true_lang-DDh2V0u_.js → BuiTableHeader.vue_vue_type_script_setup_true_lang-DPm0jnLo.js} +1 -1
- package/dist/{BuiTableRow.vue_vue_type_script_setup_true_lang-BmBGYRXt.js → BuiTableRow.vue_vue_type_script_setup_true_lang-BtsefcWm.js} +1 -1
- package/dist/{BuiTableRowSubrow.vue_vue_type_script_setup_true_lang-DgWwCXx7.js → BuiTableRowSubrow.vue_vue_type_script_setup_true_lang-o7uq1Evp.js} +4 -4
- package/dist/{BuiTabs.vue_vue_type_script_setup_true_lang-DG5EZdGM.js → BuiTabs.vue_vue_type_script_setup_true_lang-Bx9h7mN7.js} +1 -1
- package/dist/{BuiTabsContent.vue_vue_type_script_setup_true_lang-c2XxFeZy.js → BuiTabsContent.vue_vue_type_script_setup_true_lang-fhGgOsCb.js} +2 -2
- package/dist/{BuiToastAction.vue_vue_type_script_setup_true_lang-B6RTCAOj.js → BuiToastAction.vue_vue_type_script_setup_true_lang-CQdfsCpV.js} +2 -2
- package/dist/{BuiToastClose.vue_vue_type_script_setup_true_lang-DhZPWmS-.js → BuiToastClose.vue_vue_type_script_setup_true_lang-DKcinPYL.js} +3 -3
- package/dist/{BuiToastDescription.vue_vue_type_script_setup_true_lang-BM2gWJdK.js → BuiToastDescription.vue_vue_type_script_setup_true_lang-DilPK4c7.js} +2 -2
- package/dist/{BuiToastProvider.vue_vue_type_script_setup_true_lang-CYbeWPdz.js → BuiToastProvider.vue_vue_type_script_setup_true_lang-D6BsFeKl.js} +1 -1
- package/dist/{BuiToastTitle.vue_vue_type_script_setup_true_lang-DqCHgJnz.js → BuiToastTitle.vue_vue_type_script_setup_true_lang-DKYb0KDP.js} +2 -2
- package/dist/{BuiToastViewport.vue_vue_type_script_setup_true_lang-ClgIsZyT.js → BuiToastViewport.vue_vue_type_script_setup_true_lang-CNJXlkVy.js} +2 -2
- package/dist/{BuiToggleGroup.vue_vue_type_script_setup_true_lang-CKqhaBlv.js → BuiToggleGroup.vue_vue_type_script_setup_true_lang-BVLWma8L.js} +2 -2
- package/dist/{BuiToggleGroupItem.vue_vue_type_script_setup_true_lang-CSKN2QRX.js → BuiToggleGroupItem.vue_vue_type_script_setup_true_lang-CxIsZIZP.js} +2 -2
- package/dist/{BuiTooltip.vue_vue_type_script_setup_true_lang-C22CLrvM.js → BuiTooltip.vue_vue_type_script_setup_true_lang-BUpZD1YF.js} +1 -1
- package/dist/{BuiTooltipContent.vue_vue_type_script_setup_true_lang-HvNHYj5F.js → BuiTooltipContent.vue_vue_type_script_setup_true_lang-BlJipdor.js} +2 -2
- package/dist/{BuiTooltipProvider.vue_vue_type_script_setup_true_lang-C_LH0pQ_.js → BuiTooltipProvider.vue_vue_type_script_setup_true_lang-BPhsWP8Y.js} +1 -1
- package/dist/{BuiTooltipTrigger.vue_vue_type_script_setup_true_lang-C6uB9b0L.js → BuiTooltipTrigger.vue_vue_type_script_setup_true_lang-BQG5Ssoc.js} +1 -1
- package/dist/{Skeleton.vue_vue_type_script_setup_true_lang-FYrckmcu.js → Skeleton.vue_vue_type_script_setup_true_lang-D5EVQxHg.js} +1 -1
- package/dist/assets/main.css +1 -1
- package/dist/{check-DU1dhTDR.js → check-DKcXJk1r.js} +1 -1
- package/dist/{chevron-down-AGPTmzx5.js → chevron-down-C5w5Vj70.js} +1 -1
- package/dist/{chevron-left-Dv6tDY3b.js → chevron-left-BqvZOD-Y.js} +1 -1
- package/dist/{chevron-right-BccHqh0e.js → chevron-right-ZmwmaSAu.js} +1 -1
- package/dist/{circle-BzFWsvRX.js → circle-Da-wgB2G.js} +1 -1
- package/dist/components/ui/accordion/BuiAccordion.js +1 -1
- package/dist/components/ui/accordion/BuiAccordionContent.js +1 -1
- package/dist/components/ui/accordion/BuiAccordionItem.js +1 -1
- package/dist/components/ui/accordion/BuiAccordionTrigger.js +1 -1
- package/dist/components/ui/accordion/index.js +4 -4
- package/dist/components/ui/alert/BuiAlertDescription.js +1 -1
- package/dist/components/ui/alert/BuiAlertTitle.js +1 -1
- package/dist/components/ui/alert/index.js +3 -3
- package/dist/components/ui/alert-dialog/BuiAlertDialog.js +1 -1
- package/dist/components/ui/alert-dialog/BuiAlertDialogAction.js +1 -1
- package/dist/components/ui/alert-dialog/BuiAlertDialogCancel.js +1 -1
- package/dist/components/ui/alert-dialog/BuiAlertDialogContent.js +1 -1
- package/dist/components/ui/alert-dialog/BuiAlertDialogDescription.js +1 -1
- package/dist/components/ui/alert-dialog/BuiAlertDialogFooter.js +1 -1
- package/dist/components/ui/alert-dialog/BuiAlertDialogHeader.js +1 -1
- package/dist/components/ui/alert-dialog/BuiAlertDialogTitle.js +1 -1
- package/dist/components/ui/alert-dialog/BuiAlertDialogTrigger.js +1 -1
- package/dist/components/ui/alert-dialog/index.js +9 -9
- package/dist/components/ui/aspect-ratio/BuiAspectRatio.js +1 -1
- package/dist/components/ui/aspect-ratio/index.js +1 -1
- package/dist/components/ui/auto-form/BuiAutoForm.js +4 -0
- package/dist/components/ui/auto-form/BuiAutoForm.vue.d.ts +90 -0
- package/dist/components/ui/auto-form/BuiAutoFormField.js +4 -0
- package/dist/components/ui/auto-form/BuiAutoFormField.vue.d.ts +43 -0
- package/dist/components/ui/auto-form/BuiAutoFormFieldArray.js +4 -0
- package/dist/components/ui/auto-form/BuiAutoFormFieldBoolean.js +4 -0
- package/dist/components/ui/auto-form/BuiAutoFormFieldBoolean.vue.d.ts +36 -0
- package/dist/components/ui/auto-form/BuiAutoFormFieldDate.js +4 -0
- package/dist/components/ui/auto-form/BuiAutoFormFieldDate.vue.d.ts +36 -0
- package/dist/components/ui/auto-form/BuiAutoFormFieldEnum.js +4 -0
- package/dist/components/ui/auto-form/BuiAutoFormFieldEnum.vue.d.ts +40 -0
- package/dist/components/ui/auto-form/BuiAutoFormFieldFile.js +4 -0
- package/dist/components/ui/auto-form/BuiAutoFormFieldFile.vue.d.ts +36 -0
- package/dist/components/ui/auto-form/BuiAutoFormFieldInput.js +4 -0
- package/dist/components/ui/auto-form/BuiAutoFormFieldInput.vue.d.ts +36 -0
- package/dist/components/ui/auto-form/BuiAutoFormFieldNumber.js +4 -0
- package/dist/components/ui/auto-form/BuiAutoFormFieldNumber.vue.d.ts +36 -0
- package/dist/components/ui/auto-form/BuiAutoFormFieldObject.js +4 -0
- package/dist/components/ui/auto-form/BuiAutoFormLabel.js +4 -0
- package/dist/components/ui/auto-form/BuiAutoFormLabel.vue.d.ts +22 -0
- package/dist/components/ui/auto-form/constant.js +11 -0
- package/dist/components/ui/auto-form/dependencies.d.ts +22 -0
- package/dist/components/ui/auto-form/dependencies.js +60 -0
- package/dist/components/ui/auto-form/index.d.ts +13 -0
- package/dist/components/ui/auto-form/index.js +26 -0
- package/dist/components/ui/auto-form/interface.d.ts +55 -0
- package/dist/components/ui/auto-form/interface.js +4 -0
- package/dist/components/ui/auto-form/utils.d.ts +46 -0
- package/dist/components/ui/auto-form/utils.js +74 -0
- package/dist/components/ui/avatar/BuiAvatarFallback.js +1 -1
- package/dist/components/ui/avatar/BuiAvatarImage.js +1 -1
- package/dist/components/ui/avatar/index.js +4 -4
- package/dist/components/ui/badge/index.js +2 -2
- package/dist/components/ui/button/BuiButton.js +1 -1
- package/dist/components/ui/button/BuiButton.vue.d.ts +4 -0
- package/dist/components/ui/button/index.js +1 -1
- package/dist/components/ui/calendar/BuiCalendar.js +1 -1
- package/dist/components/ui/calendar/index.js +5 -5
- package/dist/components/ui/card/BuiCard.js +1 -1
- package/dist/components/ui/card/BuiCardContent.js +1 -1
- package/dist/components/ui/card/BuiCardDescription.js +1 -1
- package/dist/components/ui/card/BuiCardFooter.js +1 -1
- package/dist/components/ui/card/BuiCardHeader.js +1 -1
- package/dist/components/ui/card/BuiCardTitle.js +1 -1
- package/dist/components/ui/card/index.js +6 -6
- package/dist/components/ui/checkbox/BuiCheckbox.js +1 -1
- package/dist/components/ui/checkbox/index.js +1 -1
- package/dist/components/ui/collapsible/BuiCollapsible.js +1 -1
- package/dist/components/ui/collapsible/BuiCollapsibleContent.js +1 -1
- package/dist/components/ui/collapsible/BuiCollapsibleTrigger.js +1 -1
- package/dist/components/ui/collapsible/index.js +3 -3
- package/dist/components/ui/command/BuiCommand.js +1 -1
- package/dist/components/ui/command/BuiCommandDialog.js +1 -1
- package/dist/components/ui/command/BuiCommandEmpty.js +1 -1
- package/dist/components/ui/command/BuiCommandGroup.js +1 -1
- package/dist/components/ui/command/BuiCommandInput.js +1 -1
- package/dist/components/ui/command/BuiCommandItem.js +1 -1
- package/dist/components/ui/command/BuiCommandList.js +1 -1
- package/dist/components/ui/command/BuiCommandSeparator.js +1 -1
- package/dist/components/ui/command/BuiCommandShortcut.js +1 -1
- package/dist/components/ui/command/index.js +9 -9
- package/dist/components/ui/context-menu/BuiContextMenu.js +1 -1
- package/dist/components/ui/context-menu/BuiContextMenuCheckboxItem.js +1 -1
- package/dist/components/ui/context-menu/BuiContextMenuContent.js +1 -1
- package/dist/components/ui/context-menu/BuiContextMenuGroup.js +1 -1
- package/dist/components/ui/context-menu/BuiContextMenuItem.js +1 -1
- package/dist/components/ui/context-menu/BuiContextMenuLabel.js +1 -1
- package/dist/components/ui/context-menu/BuiContextMenuPortal.js +1 -1
- package/dist/components/ui/context-menu/BuiContextMenuRadioGroup.js +1 -1
- package/dist/components/ui/context-menu/BuiContextMenuRadioItem.js +1 -1
- package/dist/components/ui/context-menu/BuiContextMenuSeparator.js +1 -1
- package/dist/components/ui/context-menu/BuiContextMenuShortcut.js +1 -1
- package/dist/components/ui/context-menu/BuiContextMenuSub.js +1 -1
- package/dist/components/ui/context-menu/BuiContextMenuSubContent.js +1 -1
- package/dist/components/ui/context-menu/BuiContextMenuSubTrigger.js +1 -1
- package/dist/components/ui/context-menu/BuiContextMenuTrigger.js +1 -1
- package/dist/components/ui/context-menu/index.js +14 -14
- package/dist/components/ui/dialog/BuiDialog.js +1 -1
- package/dist/components/ui/dialog/BuiDialogClose.js +1 -1
- package/dist/components/ui/dialog/BuiDialogContent.js +1 -1
- package/dist/components/ui/dialog/BuiDialogDescription.js +1 -1
- package/dist/components/ui/dialog/BuiDialogFooter.js +1 -1
- package/dist/components/ui/dialog/BuiDialogHeader.js +1 -1
- package/dist/components/ui/dialog/BuiDialogTitle.js +1 -1
- package/dist/components/ui/dialog/BuiDialogTrigger.js +1 -1
- package/dist/components/ui/dialog/index.js +8 -8
- package/dist/components/ui/dropdown-menu/BuiDropdownMenu.js +1 -1
- package/dist/components/ui/dropdown-menu/BuiDropdownMenuCheckboxItem.js +1 -1
- package/dist/components/ui/dropdown-menu/BuiDropdownMenuContent.js +1 -1
- package/dist/components/ui/dropdown-menu/BuiDropdownMenuGroup.js +1 -1
- package/dist/components/ui/dropdown-menu/BuiDropdownMenuItem.js +1 -1
- package/dist/components/ui/dropdown-menu/BuiDropdownMenuLabel.js +1 -1
- package/dist/components/ui/dropdown-menu/BuiDropdownMenuRadioGroup.js +1 -1
- package/dist/components/ui/dropdown-menu/BuiDropdownMenuRadioItem.js +1 -1
- package/dist/components/ui/dropdown-menu/BuiDropdownMenuSeparator.js +1 -1
- package/dist/components/ui/dropdown-menu/BuiDropdownMenuShortcut.js +1 -1
- package/dist/components/ui/dropdown-menu/BuiDropdownMenuSub.js +1 -1
- package/dist/components/ui/dropdown-menu/BuiDropdownMenuSubContent.js +1 -1
- package/dist/components/ui/dropdown-menu/BuiDropdownMenuSubTrigger.js +1 -1
- package/dist/components/ui/dropdown-menu/BuiDropdownMenuTrigger.js +1 -1
- package/dist/components/ui/dropdown-menu/index.js +15 -15
- package/dist/components/ui/form/BuiFormControl.js +1 -1
- package/dist/components/ui/form/BuiFormDescription.js +1 -1
- package/dist/components/ui/form/BuiFormItem.js +2 -2
- package/dist/components/ui/form/BuiFormLabel.js +1 -1
- package/dist/components/ui/form/BuiFormMessage.js +1 -1
- package/dist/components/ui/form/index.js +6 -6
- package/dist/components/ui/form/useFormField.js +23 -4
- package/dist/components/ui/health/index.js +1 -1
- package/dist/components/ui/hover-card/BuiHoverCard.js +1 -1
- package/dist/components/ui/hover-card/BuiHoverCardContent.js +1 -1
- package/dist/components/ui/hover-card/BuiHoverCardTrigger.js +1 -1
- package/dist/components/ui/hover-card/index.js +3 -3
- package/dist/components/ui/input/index.js +2 -2
- package/dist/components/ui/label/BuiLabel.js +1 -1
- package/dist/components/ui/label/index.js +1 -1
- package/dist/components/ui/pagination/BuiPaginationCommon.js +1 -1
- package/dist/components/ui/pagination/BuiPaginationEllipsis.js +1 -1
- package/dist/components/ui/pagination/BuiPaginationFirst.js +1 -1
- package/dist/components/ui/pagination/BuiPaginationLast.js +1 -1
- package/dist/components/ui/pagination/BuiPaginationNext.js +1 -1
- package/dist/components/ui/pagination/BuiPaginationPrev.js +1 -1
- package/dist/components/ui/pagination/index.js +7 -7
- package/dist/components/ui/popover/BuiPopover.js +1 -1
- package/dist/components/ui/popover/BuiPopoverContent.js +1 -1
- package/dist/components/ui/popover/BuiPopoverTrigger.js +1 -1
- package/dist/components/ui/popover/index.js +3 -3
- package/dist/components/ui/progress/index.js +2 -2
- package/dist/components/ui/radio-group/BuiRadioGroup.js +1 -1
- package/dist/components/ui/radio-group/BuiRadioGroupItem.js +1 -1
- package/dist/components/ui/radio-group/index.js +2 -2
- package/dist/components/ui/scroll-area/BuiScrollArea.js +1 -1
- package/dist/components/ui/scroll-area/BuiScrollBar.js +1 -1
- package/dist/components/ui/scroll-area/index.js +2 -2
- package/dist/components/ui/select/Bui.js +2 -2
- package/dist/components/ui/select/Bui.vue.d.ts +1 -1
- package/dist/components/ui/select/BuiSelect.js +1 -1
- package/dist/components/ui/select/BuiSelectContent.js +1 -1
- package/dist/components/ui/select/BuiSelectContent.vue.d.ts +1 -1
- package/dist/components/ui/select/BuiSelectGroup.js +1 -1
- package/dist/components/ui/select/BuiSelectItem.js +1 -1
- package/dist/components/ui/select/BuiSelectItemText.js +1 -1
- package/dist/components/ui/select/BuiSelectLabel.js +1 -1
- package/dist/components/ui/select/BuiSelectSeparator.js +1 -1
- package/dist/components/ui/select/BuiSelectTrigger.js +1 -1
- package/dist/components/ui/select/BuiSelectValue.js +1 -1
- package/dist/components/ui/select/index.js +9 -9
- package/dist/components/ui/separator/BuiSeparator.js +1 -1
- package/dist/components/ui/separator/index.js +1 -1
- package/dist/components/ui/skeleton/Skeleton.js +1 -1
- package/dist/components/ui/skeleton/index.js +1 -1
- package/dist/components/ui/slider/BuiSlider.js +1 -1
- package/dist/components/ui/slider/index.js +1 -1
- package/dist/components/ui/switch/BuiSwitch.js +1 -1
- package/dist/components/ui/switch/index.js +1 -1
- package/dist/components/ui/table/BuiDataTable.js +1 -1
- package/dist/components/ui/table/BuiTable.js +1 -1
- package/dist/components/ui/table/BuiTableBody.js +1 -1
- package/dist/components/ui/table/BuiTableCaption.js +1 -1
- package/dist/components/ui/table/BuiTableCell.js +1 -1
- package/dist/components/ui/table/BuiTableEmpty.js +1 -1
- package/dist/components/ui/table/BuiTableFooter.js +1 -1
- package/dist/components/ui/table/BuiTableHead.js +1 -1
- package/dist/components/ui/table/BuiTableHeader.js +1 -1
- package/dist/components/ui/table/BuiTableRow.js +1 -1
- package/dist/components/ui/table/BuiTableRowSubrow.js +1 -1
- package/dist/components/ui/table/index.js +11 -11
- package/dist/components/ui/tabs/BuiTabs.js +1 -1
- package/dist/components/ui/tabs/BuiTabsContent.js +1 -1
- package/dist/components/ui/tabs/index.js +10 -10
- package/dist/components/ui/textarea/index.js +2 -2
- package/dist/components/ui/toast/BuiToastAction.js +1 -1
- package/dist/components/ui/toast/BuiToastClose.js +1 -1
- package/dist/components/ui/toast/BuiToastDescription.js +1 -1
- package/dist/components/ui/toast/BuiToastProvider.js +1 -1
- package/dist/components/ui/toast/BuiToastTitle.js +1 -1
- package/dist/components/ui/toast/BuiToastViewport.js +1 -1
- package/dist/components/ui/toast/index.js +12 -12
- package/dist/components/ui/toggle/index.js +2 -2
- package/dist/components/ui/toggle-group/BuiToggleGroup.js +1 -1
- package/dist/components/ui/toggle-group/BuiToggleGroupItem.js +1 -1
- package/dist/components/ui/toggle-group/index.js +2 -2
- package/dist/components/ui/tooltip/BuiTooltip.js +1 -1
- package/dist/components/ui/tooltip/BuiTooltipContent.js +1 -1
- package/dist/components/ui/tooltip/BuiTooltipProvider.js +1 -1
- package/dist/components/ui/tooltip/BuiTooltipTrigger.js +1 -1
- package/dist/components/ui/tooltip/index.js +4 -4
- package/dist/{index-D3xpR8yT.js → index-BX_xuhSi.js} +1928 -1910
- package/dist/{index-DlKyQJKc.js → index-DBFwX7-c.js} +41 -41
- package/dist/index.js +137 -137
- package/dist/lib/utils.js +1 -1
- package/dist/{utils-C9G8Xvqo.js → utils-BNc3Bzhq.js} +15 -13
- package/dist/{useFormField-DauRmNq-.js → vee-validate.esm-BSPEJ8Vl.js} +440 -442
- package/dist/{x-tjPysJ-8.js → x-qxSNtB0B.js} +1 -1
- package/package.json +4 -3
- package/src/components/stories/BuiAutoForm.story.vue +98 -0
- package/src/components/ui/auto-form/BuiAutoForm.vue +109 -0
- package/src/components/ui/auto-form/BuiAutoFormField.vue +45 -0
- package/src/components/ui/auto-form/BuiAutoFormFieldArray.vue +105 -0
- package/src/components/ui/auto-form/BuiAutoFormFieldBoolean.vue +47 -0
- package/src/components/ui/auto-form/BuiAutoFormFieldDate.vue +73 -0
- package/src/components/ui/auto-form/BuiAutoFormFieldEnum.vue +75 -0
- package/src/components/ui/auto-form/BuiAutoFormFieldFile.vue +87 -0
- package/src/components/ui/auto-form/BuiAutoFormFieldInput.vue +42 -0
- package/src/components/ui/auto-form/BuiAutoFormFieldNumber.vue +42 -0
- package/src/components/ui/auto-form/BuiAutoFormFieldObject.vue +81 -0
- package/src/components/ui/auto-form/BuiAutoFormLabel.vue +14 -0
- package/src/components/ui/auto-form/constant.ts +39 -0
- package/src/components/ui/auto-form/dependencies.ts +95 -0
- package/src/components/ui/auto-form/index.ts +15 -0
- package/src/components/ui/auto-form/interface.ts +81 -0
- package/src/components/ui/auto-form/utils.ts +171 -0
- package/src/components/ui/button/BuiButton.vue +3 -0
- package/dist/BuiFormDescription.vue_vue_type_script_setup_true_lang-B6rDOqQf.js +0 -19
- package/dist/BuiFormMessage.vue_vue_type_script_setup_true_lang-CHvvMerX.js +0 -17
@@ -0,0 +1,42 @@
|
|
1
|
+
<script setup lang="ts">
|
2
|
+
import { computed } from 'vue'
|
3
|
+
import AutoFormLabel from './BuiAutoFormLabel.vue'
|
4
|
+
import { beautifyObjectName } from './utils'
|
5
|
+
import type { FieldProps } from './interface'
|
6
|
+
import {
|
7
|
+
BuiFormControl as FormControl,
|
8
|
+
BuiFormDescription as FormDescription,
|
9
|
+
BuiFormField as FormField,
|
10
|
+
BuiFormItem as FormItem,
|
11
|
+
BuiFormMessage as FormMessage
|
12
|
+
} from '@/components/ui/form'
|
13
|
+
import { BuiInput as Input } from '@/components/ui/input'
|
14
|
+
import { BuiTextarea as Textarea } from '@/components/ui/textarea'
|
15
|
+
|
16
|
+
const props = defineProps<FieldProps>()
|
17
|
+
const inputComponent = computed(() => (props.config?.component === 'textarea' ? Textarea : Input))
|
18
|
+
</script>
|
19
|
+
|
20
|
+
<template>
|
21
|
+
<FormField v-slot="slotProps" :name="fieldName">
|
22
|
+
<FormItem v-bind="$attrs">
|
23
|
+
<AutoFormLabel v-if="!config?.hideLabel" :required="required">
|
24
|
+
{{ config?.label || beautifyObjectName(label ?? fieldName) }}
|
25
|
+
</AutoFormLabel>
|
26
|
+
<FormControl>
|
27
|
+
<slot v-bind="slotProps">
|
28
|
+
<component
|
29
|
+
:is="inputComponent"
|
30
|
+
type="text"
|
31
|
+
v-bind="{ ...slotProps.componentField, ...config?.inputProps }"
|
32
|
+
:disabled="disabled"
|
33
|
+
/>
|
34
|
+
</slot>
|
35
|
+
</FormControl>
|
36
|
+
<FormDescription v-if="config?.description">
|
37
|
+
{{ config.description }}
|
38
|
+
</FormDescription>
|
39
|
+
<FormMessage />
|
40
|
+
</FormItem>
|
41
|
+
</FormField>
|
42
|
+
</template>
|
@@ -0,0 +1,42 @@
|
|
1
|
+
<script setup lang="ts">
|
2
|
+
import AutoFormLabel from './BuiAutoFormLabel.vue'
|
3
|
+
import { beautifyObjectName } from './utils'
|
4
|
+
import type { FieldProps } from './interface'
|
5
|
+
import {
|
6
|
+
BuiFormControl as FormControl,
|
7
|
+
BuiFormDescription as FormDescription,
|
8
|
+
BuiFormField as FormField,
|
9
|
+
BuiFormItem as FormItem,
|
10
|
+
BuiFormMessage as FormMessage
|
11
|
+
} from '@/components/ui/form'
|
12
|
+
import { BuiInput as Input } from '@/components/ui/input'
|
13
|
+
|
14
|
+
defineOptions({
|
15
|
+
inheritAttrs: false
|
16
|
+
})
|
17
|
+
|
18
|
+
defineProps<FieldProps>()
|
19
|
+
</script>
|
20
|
+
|
21
|
+
<template>
|
22
|
+
<FormField v-slot="slotProps" :name="fieldName">
|
23
|
+
<FormItem>
|
24
|
+
<AutoFormLabel v-if="!config?.hideLabel" :required="required">
|
25
|
+
{{ config?.label || beautifyObjectName(label ?? fieldName) }}
|
26
|
+
</AutoFormLabel>
|
27
|
+
<FormControl>
|
28
|
+
<slot v-bind="slotProps">
|
29
|
+
<Input
|
30
|
+
type="number"
|
31
|
+
v-bind="{ ...slotProps.componentField, ...config?.inputProps }"
|
32
|
+
:disabled="disabled"
|
33
|
+
/>
|
34
|
+
</slot>
|
35
|
+
</FormControl>
|
36
|
+
<FormDescription v-if="config?.description">
|
37
|
+
{{ config.description }}
|
38
|
+
</FormDescription>
|
39
|
+
<FormMessage />
|
40
|
+
</FormItem>
|
41
|
+
</FormField>
|
42
|
+
</template>
|
@@ -0,0 +1,81 @@
|
|
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 AutoFormLabel from './BuiAutoFormLabel.vue'
|
9
|
+
import {
|
10
|
+
BuiAccordion as Accordion,
|
11
|
+
BuiAccordionContent as AccordionContent,
|
12
|
+
BuiAccordionItem as AccordionItem,
|
13
|
+
BuiAccordionTrigger as AccordionTrigger
|
14
|
+
} from '@/components/ui/accordion'
|
15
|
+
import { BuiFormItem as FormItem } from '@/components/ui/form'
|
16
|
+
|
17
|
+
const props = defineProps<{
|
18
|
+
fieldName: string
|
19
|
+
required?: boolean
|
20
|
+
config?: Config<T>
|
21
|
+
schema?: ZodObject<T>
|
22
|
+
disabled?: boolean
|
23
|
+
}>()
|
24
|
+
|
25
|
+
const shapes = computed(() => {
|
26
|
+
// @ts-expect-error ignore {} not assignable to object
|
27
|
+
const val: { [key in keyof T]: Shape } = {}
|
28
|
+
|
29
|
+
if (!props.schema) return
|
30
|
+
const shape = getBaseSchema(props.schema)?.shape
|
31
|
+
if (!shape) return
|
32
|
+
Object.keys(shape).forEach((name) => {
|
33
|
+
const item = shape[name] as ZodAny
|
34
|
+
const baseItem = getBaseSchema(item) as ZodAny
|
35
|
+
let options =
|
36
|
+
baseItem && 'values' in baseItem._def ? (baseItem._def.values as string[]) : undefined
|
37
|
+
if (!Array.isArray(options) && typeof options === 'object') options = Object.values(options)
|
38
|
+
|
39
|
+
val[name as keyof T] = {
|
40
|
+
type: getBaseType(item),
|
41
|
+
default: getDefaultValueInZodStack(item),
|
42
|
+
options,
|
43
|
+
required: !['ZodOptional', 'ZodNullable'].includes(item._def.typeName),
|
44
|
+
schema: item
|
45
|
+
}
|
46
|
+
})
|
47
|
+
return val
|
48
|
+
})
|
49
|
+
|
50
|
+
const fieldContext = useField(props.fieldName)
|
51
|
+
// @ts-expect-error ignore missing `id`
|
52
|
+
provide(FieldContextKey, fieldContext)
|
53
|
+
</script>
|
54
|
+
|
55
|
+
<template>
|
56
|
+
<section>
|
57
|
+
<slot v-bind="props">
|
58
|
+
<Accordion type="single" as-child class="w-full" collapsible :disabled="disabled">
|
59
|
+
<FormItem>
|
60
|
+
<AccordionItem :value="fieldName" class="border-none">
|
61
|
+
<AccordionTrigger>
|
62
|
+
<AutoFormLabel class="text-base" :required="required">
|
63
|
+
{{ schema?.description || beautifyObjectName(fieldName) }}
|
64
|
+
</AutoFormLabel>
|
65
|
+
</AccordionTrigger>
|
66
|
+
<AccordionContent class="space-y-5 p-1">
|
67
|
+
<template v-for="(shape, key) in shapes" :key="key">
|
68
|
+
<AutoFormField
|
69
|
+
:config="config?.[key as keyof typeof config] as ConfigItem"
|
70
|
+
:field-name="`${fieldName}.${key.toString()}`"
|
71
|
+
:label="key.toString()"
|
72
|
+
:shape="shape"
|
73
|
+
/>
|
74
|
+
</template>
|
75
|
+
</AccordionContent>
|
76
|
+
</AccordionItem>
|
77
|
+
</FormItem>
|
78
|
+
</Accordion>
|
79
|
+
</slot>
|
80
|
+
</section>
|
81
|
+
</template>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<script setup lang="ts">
|
2
|
+
import { BuiFormLabel as FormLabel } from '@/components/ui/form'
|
3
|
+
|
4
|
+
defineProps<{
|
5
|
+
required?: boolean
|
6
|
+
}>()
|
7
|
+
</script>
|
8
|
+
|
9
|
+
<template>
|
10
|
+
<FormLabel>
|
11
|
+
<slot />
|
12
|
+
<span v-if="required" class="text-destructive"> *</span>
|
13
|
+
</FormLabel>
|
14
|
+
</template>
|
@@ -0,0 +1,39 @@
|
|
1
|
+
import BuiAutoFormFieldArray from './BuiAutoFormFieldArray.vue'
|
2
|
+
import BuiAutoFormFieldBoolean from './BuiAutoFormFieldBoolean.vue'
|
3
|
+
import BuiAutoFormFieldDate from './BuiAutoFormFieldDate.vue'
|
4
|
+
import BuiAutoFormFieldEnum from './BuiAutoFormFieldEnum.vue'
|
5
|
+
import BuiAutoFormFieldFile from './BuiAutoFormFieldFile.vue'
|
6
|
+
import BuiAutoFormFieldInput from './BuiAutoFormFieldInput.vue'
|
7
|
+
import BuiAutoFormFieldNumber from './BuiAutoFormFieldNumber.vue'
|
8
|
+
import BuiAutoFormFieldObject from './BuiAutoFormFieldObject.vue'
|
9
|
+
|
10
|
+
export const INPUT_COMPONENTS = {
|
11
|
+
date: BuiAutoFormFieldDate,
|
12
|
+
select: BuiAutoFormFieldEnum,
|
13
|
+
radio: BuiAutoFormFieldEnum,
|
14
|
+
checkbox: BuiAutoFormFieldBoolean,
|
15
|
+
switch: BuiAutoFormFieldBoolean,
|
16
|
+
textarea: BuiAutoFormFieldInput,
|
17
|
+
number: BuiAutoFormFieldNumber,
|
18
|
+
string: BuiAutoFormFieldInput,
|
19
|
+
file: BuiAutoFormFieldFile,
|
20
|
+
array: BuiAutoFormFieldArray,
|
21
|
+
object: BuiAutoFormFieldObject
|
22
|
+
}
|
23
|
+
|
24
|
+
/**
|
25
|
+
* Define handlers for specific Zod types.
|
26
|
+
* You can expand this object to support more types.
|
27
|
+
*/
|
28
|
+
export const DEFAULT_ZOD_HANDLERS: {
|
29
|
+
[key: string]: keyof typeof INPUT_COMPONENTS
|
30
|
+
} = {
|
31
|
+
ZodString: 'string',
|
32
|
+
ZodBoolean: 'checkbox',
|
33
|
+
ZodDate: 'date',
|
34
|
+
ZodEnum: 'select',
|
35
|
+
ZodNativeEnum: 'select',
|
36
|
+
ZodNumber: 'number',
|
37
|
+
ZodArray: 'array',
|
38
|
+
ZodObject: 'object'
|
39
|
+
}
|
@@ -0,0 +1,95 @@
|
|
1
|
+
import type * as z from 'zod'
|
2
|
+
import type { Ref } from 'vue'
|
3
|
+
import { computed, ref, watch } from 'vue'
|
4
|
+
import { useFieldValue, useFormValues } from 'vee-validate'
|
5
|
+
import { createContext } from 'radix-vue'
|
6
|
+
import { type Dependency, DependencyType, type EnumValues } from './interface'
|
7
|
+
import { getFromPath, getIndexIfArray } from './utils'
|
8
|
+
|
9
|
+
export const [injectDependencies, provideDependencies] =
|
10
|
+
createContext<Ref<Dependency<z.infer<z.ZodObject<any>>>[] | undefined>>('AutoFormDependencies')
|
11
|
+
|
12
|
+
export default function useDependencies(fieldName: string) {
|
13
|
+
const form = useFormValues()
|
14
|
+
// parsed test[0].age => test.age
|
15
|
+
const currentFieldName = fieldName.replace(/\[\d+\]/g, '')
|
16
|
+
const currentFieldValue = useFieldValue<any>(fieldName)
|
17
|
+
|
18
|
+
if (!form) throw new Error('useDependencies should be used within <AutoForm>')
|
19
|
+
|
20
|
+
const dependencies = injectDependencies()
|
21
|
+
const isDisabled = ref(false)
|
22
|
+
const isHidden = ref(false)
|
23
|
+
const isRequired = ref(false)
|
24
|
+
const overrideOptions = ref<EnumValues | undefined>()
|
25
|
+
|
26
|
+
const currentFieldDependencies = computed(() =>
|
27
|
+
dependencies.value?.filter((dependency) => dependency.targetField === currentFieldName)
|
28
|
+
)
|
29
|
+
|
30
|
+
function getSourceValue(dep: Dependency<any>) {
|
31
|
+
const source = dep.sourceField as string
|
32
|
+
const index = getIndexIfArray(fieldName) ?? -1
|
33
|
+
//@ts-ignore
|
34
|
+
const [sourceLast, ...sourceInitial] = source.split('.').toReversed()
|
35
|
+
//@ts-ignore
|
36
|
+
const [_targetLast, ...targetInitial] = (dep.targetField as string).split('.').toReversed()
|
37
|
+
|
38
|
+
if (index >= 0 && sourceInitial.join(',') === targetInitial.join(',')) {
|
39
|
+
//@ts-ignore
|
40
|
+
const [_currentLast, ...currentInitial] = fieldName.split('.').toReversed()
|
41
|
+
return getFromPath(form.value, currentInitial.join('.') + sourceLast)
|
42
|
+
}
|
43
|
+
|
44
|
+
return getFromPath(form.value, source)
|
45
|
+
}
|
46
|
+
|
47
|
+
const sourceFieldValues = computed(() =>
|
48
|
+
currentFieldDependencies.value?.map((dep) => getSourceValue(dep))
|
49
|
+
)
|
50
|
+
|
51
|
+
const resetConditionState = () => {
|
52
|
+
isDisabled.value = false
|
53
|
+
isHidden.value = false
|
54
|
+
isRequired.value = false
|
55
|
+
overrideOptions.value = undefined
|
56
|
+
}
|
57
|
+
|
58
|
+
watch(
|
59
|
+
[sourceFieldValues, dependencies],
|
60
|
+
() => {
|
61
|
+
resetConditionState()
|
62
|
+
currentFieldDependencies.value?.forEach((dep) => {
|
63
|
+
const sourceValue = getSourceValue(dep)
|
64
|
+
const conditionMet = dep.when(sourceValue, currentFieldValue.value)
|
65
|
+
|
66
|
+
switch (dep.type) {
|
67
|
+
case DependencyType.DISABLES:
|
68
|
+
if (conditionMet) isDisabled.value = true
|
69
|
+
|
70
|
+
break
|
71
|
+
case DependencyType.REQUIRES:
|
72
|
+
if (conditionMet) isRequired.value = true
|
73
|
+
|
74
|
+
break
|
75
|
+
case DependencyType.HIDES:
|
76
|
+
if (conditionMet) isHidden.value = true
|
77
|
+
|
78
|
+
break
|
79
|
+
case DependencyType.SETS_OPTIONS:
|
80
|
+
if (conditionMet) overrideOptions.value = dep.options
|
81
|
+
|
82
|
+
break
|
83
|
+
}
|
84
|
+
})
|
85
|
+
},
|
86
|
+
{ immediate: true, deep: true }
|
87
|
+
)
|
88
|
+
|
89
|
+
return {
|
90
|
+
isDisabled,
|
91
|
+
isHidden,
|
92
|
+
isRequired,
|
93
|
+
overrideOptions
|
94
|
+
}
|
95
|
+
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
export { getObjectFormSchema, getBaseSchema, getBaseType } from './utils'
|
2
|
+
export type { Config, ConfigItem, FieldProps } from './interface'
|
3
|
+
|
4
|
+
export { default as BuiAutoForm } from './BuiAutoForm.vue'
|
5
|
+
export { default as BuiAutoFormField } from './BuiAutoFormField.vue'
|
6
|
+
export { default as BuiAutoFormLabel } from './BuiAutoFormLabel.vue'
|
7
|
+
|
8
|
+
export { default as BuiAutoFormFieldArray } from './BuiAutoFormFieldArray.vue'
|
9
|
+
export { default as BuiAutoFormFieldBoolean } from './BuiAutoFormFieldBoolean.vue'
|
10
|
+
export { default as BuiAutoFormFieldDate } from './BuiAutoFormFieldDate.vue'
|
11
|
+
export { default as BuiAutoFormFieldEnum } from './BuiAutoFormFieldEnum.vue'
|
12
|
+
export { default as BuiAutoFormFieldFile } from './BuiAutoFormFieldFile.vue'
|
13
|
+
export { default as BuiAutoFormFieldInput } from './BuiAutoFormFieldInput.vue'
|
14
|
+
export { default as BuiAutoFormFieldNumber } from './BuiAutoFormFieldNumber.vue'
|
15
|
+
export { default as BuiAutoFormFieldObject } from './BuiAutoFormFieldObject.vue'
|
@@ -0,0 +1,81 @@
|
|
1
|
+
import type { Component, InputHTMLAttributes } from 'vue'
|
2
|
+
import type { ZodAny, z } from 'zod'
|
3
|
+
import type { INPUT_COMPONENTS } from './constant'
|
4
|
+
|
5
|
+
export interface FieldProps {
|
6
|
+
fieldName: string
|
7
|
+
label?: string
|
8
|
+
required?: boolean
|
9
|
+
config?: ConfigItem
|
10
|
+
disabled?: boolean
|
11
|
+
}
|
12
|
+
|
13
|
+
export interface Shape {
|
14
|
+
type: string
|
15
|
+
default?: any
|
16
|
+
required?: boolean
|
17
|
+
options?: string[]
|
18
|
+
schema?: ZodAny
|
19
|
+
}
|
20
|
+
|
21
|
+
export interface ConfigItem {
|
22
|
+
/** Value for the `FormLabel` */
|
23
|
+
label?: string
|
24
|
+
/** Value for the `FormDescription` */
|
25
|
+
description?: string
|
26
|
+
/** Pick which component to be rendered. */
|
27
|
+
component?: keyof typeof INPUT_COMPONENTS | Component
|
28
|
+
/** Hide `FormLabel`. */
|
29
|
+
hideLabel?: boolean
|
30
|
+
inputProps?: InputHTMLAttributes
|
31
|
+
}
|
32
|
+
|
33
|
+
// Define a type to unwrap an array
|
34
|
+
type UnwrapArray<T> = T extends (infer U)[] ? U : never
|
35
|
+
|
36
|
+
export type Config<SchemaType extends object> = {
|
37
|
+
// If SchemaType.key is an object, create a nested Config, otherwise ConfigItem
|
38
|
+
[Key in keyof SchemaType]?:
|
39
|
+
SchemaType[Key] extends any[]
|
40
|
+
? UnwrapArray<Config<SchemaType[Key]>>
|
41
|
+
: SchemaType[Key] extends object
|
42
|
+
? Config<SchemaType[Key]>
|
43
|
+
: ConfigItem;
|
44
|
+
}
|
45
|
+
|
46
|
+
export enum DependencyType {
|
47
|
+
DISABLES,
|
48
|
+
REQUIRES,
|
49
|
+
HIDES,
|
50
|
+
SETS_OPTIONS,
|
51
|
+
}
|
52
|
+
|
53
|
+
interface BaseDependency<SchemaType extends z.infer<z.ZodObject<any, any>>> {
|
54
|
+
sourceField: keyof SchemaType
|
55
|
+
type: DependencyType
|
56
|
+
targetField: keyof SchemaType
|
57
|
+
when: (sourceFieldValue: any, targetFieldValue: any) => boolean
|
58
|
+
}
|
59
|
+
|
60
|
+
export type ValueDependency<SchemaType extends z.infer<z.ZodObject<any, any>>> =
|
61
|
+
BaseDependency<SchemaType> & {
|
62
|
+
type:
|
63
|
+
| DependencyType.DISABLES
|
64
|
+
| DependencyType.REQUIRES
|
65
|
+
| DependencyType.HIDES
|
66
|
+
}
|
67
|
+
|
68
|
+
export type EnumValues = readonly [string, ...string[]]
|
69
|
+
|
70
|
+
export type OptionsDependency<
|
71
|
+
SchemaType extends z.infer<z.ZodObject<any, any>>,
|
72
|
+
> = BaseDependency<SchemaType> & {
|
73
|
+
type: DependencyType.SETS_OPTIONS
|
74
|
+
|
75
|
+
// Partial array of values from sourceField that will trigger the dependency
|
76
|
+
options: EnumValues
|
77
|
+
}
|
78
|
+
|
79
|
+
export type Dependency<SchemaType extends z.infer<z.ZodObject<any, any>>> =
|
80
|
+
| ValueDependency<SchemaType>
|
81
|
+
| OptionsDependency<SchemaType>
|
@@ -0,0 +1,171 @@
|
|
1
|
+
import type { z } from 'zod'
|
2
|
+
|
3
|
+
// TODO: This should support recursive ZodEffects but TypeScript doesn't allow circular type definitions.
|
4
|
+
export type ZodObjectOrWrapped =
|
5
|
+
| z.ZodObject<any, any>
|
6
|
+
| z.ZodEffects<z.ZodObject<any, any>>
|
7
|
+
|
8
|
+
/**
|
9
|
+
* Beautify a camelCase string.
|
10
|
+
* e.g. "myString" -> "My String"
|
11
|
+
*/
|
12
|
+
export function beautifyObjectName(string: string) {
|
13
|
+
// Remove bracketed indices
|
14
|
+
// if numbers only return the string
|
15
|
+
let output = string.replace(/\[\d+\]/g, '').replace(/([A-Z])/g, ' $1')
|
16
|
+
output = output.charAt(0).toUpperCase() + output.slice(1)
|
17
|
+
return output
|
18
|
+
}
|
19
|
+
|
20
|
+
/**
|
21
|
+
* Parse string and extract the index
|
22
|
+
* @param string
|
23
|
+
* @returns index or undefined
|
24
|
+
*/
|
25
|
+
export function getIndexIfArray(string: string) {
|
26
|
+
const indexRegex = /\[(\d+)\]/
|
27
|
+
// Match the index
|
28
|
+
const match = string.match(indexRegex)
|
29
|
+
// Extract the index (number)
|
30
|
+
const index = match ? Number.parseInt(match[1]) : undefined
|
31
|
+
return index
|
32
|
+
}
|
33
|
+
|
34
|
+
/**
|
35
|
+
* Get the lowest level Zod type.
|
36
|
+
* This will unpack optionals, refinements, etc.
|
37
|
+
*/
|
38
|
+
export function getBaseSchema<
|
39
|
+
ChildType extends z.ZodAny | z.AnyZodObject = z.ZodAny,
|
40
|
+
>(schema: ChildType | z.ZodEffects<ChildType>): ChildType | null {
|
41
|
+
if (!schema)
|
42
|
+
return null
|
43
|
+
if ('innerType' in schema._def)
|
44
|
+
return getBaseSchema(schema._def.innerType as ChildType)
|
45
|
+
|
46
|
+
if ('schema' in schema._def)
|
47
|
+
return getBaseSchema(schema._def.schema as ChildType)
|
48
|
+
|
49
|
+
return schema as ChildType
|
50
|
+
}
|
51
|
+
|
52
|
+
/**
|
53
|
+
* Get the type name of the lowest level Zod type.
|
54
|
+
* This will unpack optionals, refinements, etc.
|
55
|
+
*/
|
56
|
+
export function getBaseType(schema: z.ZodAny) {
|
57
|
+
const baseSchema = getBaseSchema(schema)
|
58
|
+
return baseSchema ? baseSchema._def.typeName : ''
|
59
|
+
}
|
60
|
+
|
61
|
+
/**
|
62
|
+
* Search for a "ZodDefault" in the Zod stack and return its value.
|
63
|
+
*/
|
64
|
+
export function getDefaultValueInZodStack(schema: z.ZodAny): any {
|
65
|
+
const typedSchema = schema as unknown as z.ZodDefault<
|
66
|
+
z.ZodNumber | z.ZodString
|
67
|
+
>
|
68
|
+
|
69
|
+
if (typedSchema._def.typeName === 'ZodDefault')
|
70
|
+
return typedSchema._def.defaultValue()
|
71
|
+
|
72
|
+
if ('innerType' in typedSchema._def) {
|
73
|
+
return getDefaultValueInZodStack(
|
74
|
+
typedSchema._def.innerType as unknown as z.ZodAny,
|
75
|
+
)
|
76
|
+
}
|
77
|
+
if ('schema' in typedSchema._def) {
|
78
|
+
return getDefaultValueInZodStack(
|
79
|
+
(typedSchema._def as any).schema as z.ZodAny,
|
80
|
+
)
|
81
|
+
}
|
82
|
+
|
83
|
+
return undefined
|
84
|
+
}
|
85
|
+
|
86
|
+
export function getObjectFormSchema(
|
87
|
+
schema: ZodObjectOrWrapped,
|
88
|
+
): z.ZodObject<any, any> {
|
89
|
+
if (schema?._def.typeName === 'ZodEffects') {
|
90
|
+
const typedSchema = schema as z.ZodEffects<z.ZodObject<any, any>>
|
91
|
+
return getObjectFormSchema(typedSchema._def.schema)
|
92
|
+
}
|
93
|
+
return schema as z.ZodObject<any, any>
|
94
|
+
}
|
95
|
+
|
96
|
+
function isIndex(value: unknown): value is number {
|
97
|
+
return Number(value) >= 0
|
98
|
+
}
|
99
|
+
/**
|
100
|
+
* Constructs a path with dot paths for arrays to use brackets to be compatible with vee-validate path syntax
|
101
|
+
*/
|
102
|
+
export function normalizeFormPath(path: string): string {
|
103
|
+
const pathArr = path.split('.')
|
104
|
+
if (!pathArr.length)
|
105
|
+
return ''
|
106
|
+
|
107
|
+
let fullPath = String(pathArr[0])
|
108
|
+
for (let i = 1; i < pathArr.length; i++) {
|
109
|
+
if (isIndex(pathArr[i])) {
|
110
|
+
fullPath += `[${pathArr[i]}]`
|
111
|
+
continue
|
112
|
+
}
|
113
|
+
|
114
|
+
fullPath += `.${pathArr[i]}`
|
115
|
+
}
|
116
|
+
|
117
|
+
return fullPath
|
118
|
+
}
|
119
|
+
|
120
|
+
type NestedRecord = Record<string, unknown> | { [k: string]: NestedRecord }
|
121
|
+
/**
|
122
|
+
* Checks if the path opted out of nested fields using `[fieldName]` syntax
|
123
|
+
*/
|
124
|
+
export function isNotNestedPath(path: string) {
|
125
|
+
return /^\[.+\]$/.test(path)
|
126
|
+
}
|
127
|
+
function isObject(obj: unknown): obj is Record<string, unknown> {
|
128
|
+
return obj !== null && !!obj && typeof obj === 'object' && !Array.isArray(obj)
|
129
|
+
}
|
130
|
+
function isContainerValue(value: unknown): value is Record<string, unknown> {
|
131
|
+
return isObject(value) || Array.isArray(value)
|
132
|
+
}
|
133
|
+
function cleanupNonNestedPath(path: string) {
|
134
|
+
if (isNotNestedPath(path))
|
135
|
+
return path.replace(/\[|\]/g, '')
|
136
|
+
|
137
|
+
return path
|
138
|
+
}
|
139
|
+
|
140
|
+
/**
|
141
|
+
* Gets a nested property value from an object
|
142
|
+
*/
|
143
|
+
export function getFromPath<TValue = unknown>(object: NestedRecord | undefined, path: string): TValue | undefined
|
144
|
+
export function getFromPath<TValue = unknown, TFallback = TValue>(
|
145
|
+
object: NestedRecord | undefined,
|
146
|
+
path: string,
|
147
|
+
fallback?: TFallback,
|
148
|
+
): TValue | TFallback
|
149
|
+
export function getFromPath<TValue = unknown, TFallback = TValue>(
|
150
|
+
object: NestedRecord | undefined,
|
151
|
+
path: string,
|
152
|
+
fallback?: TFallback,
|
153
|
+
): TValue | TFallback | undefined {
|
154
|
+
if (!object)
|
155
|
+
return fallback
|
156
|
+
|
157
|
+
if (isNotNestedPath(path))
|
158
|
+
return object[cleanupNonNestedPath(path)] as TValue | undefined
|
159
|
+
|
160
|
+
const resolvedValue = (path || '')
|
161
|
+
.split(/\.|\[(\d+)\]/)
|
162
|
+
.filter(Boolean)
|
163
|
+
.reduce((acc, propKey) => {
|
164
|
+
if (isContainerValue(acc) && propKey in acc)
|
165
|
+
return acc[propKey]
|
166
|
+
|
167
|
+
return fallback
|
168
|
+
}, object as unknown)
|
169
|
+
|
170
|
+
return resolvedValue as TValue | undefined
|
171
|
+
}
|
@@ -7,10 +7,12 @@ interface Props extends PrimitiveProps {
|
|
7
7
|
variant?: NonNullable<Parameters<typeof buttonVariants>[0]>['variant']
|
8
8
|
size?: NonNullable<Parameters<typeof buttonVariants>[0]>['size']
|
9
9
|
as?: string
|
10
|
+
type?: string
|
10
11
|
}
|
11
12
|
|
12
13
|
withDefaults(defineProps<Props>(), {
|
13
14
|
as: 'button',
|
15
|
+
type: 'button'
|
14
16
|
})
|
15
17
|
</script>
|
16
18
|
|
@@ -19,6 +21,7 @@ withDefaults(defineProps<Props>(), {
|
|
19
21
|
:as="as"
|
20
22
|
:as-child="asChild"
|
21
23
|
:class="cn(buttonVariants({ variant, size }), $attrs.class ?? '')"
|
24
|
+
:type="type"
|
22
25
|
>
|
23
26
|
<slot />
|
24
27
|
</Primitive>
|
@@ -1,19 +0,0 @@
|
|
1
|
-
import { defineComponent as n, useAttrs as c, openBlock as m, createElementBlock as i, mergeProps as a, unref as e, renderSlot as p } from "vue";
|
2
|
-
import { e as l } from "./useFormField-DauRmNq-.js";
|
3
|
-
import { c as d } from "./utils-C9G8Xvqo.js";
|
4
|
-
const f = ["id"], F = /* @__PURE__ */ n({
|
5
|
-
inheritAttrs: !1,
|
6
|
-
__name: "BuiFormDescription",
|
7
|
-
setup(u) {
|
8
|
-
const { formDescriptionId: t } = l(), { class: r, ...s } = c();
|
9
|
-
return (o, _) => (m(), i("p", a({
|
10
|
-
id: e(t),
|
11
|
-
class: e(d)("text-sm text-muted-foreground", e(r) ?? "")
|
12
|
-
}, s), [
|
13
|
-
p(o.$slots, "default")
|
14
|
-
], 16, f));
|
15
|
-
}
|
16
|
-
});
|
17
|
-
export {
|
18
|
-
F as _
|
19
|
-
};
|
@@ -1,17 +0,0 @@
|
|
1
|
-
import { defineComponent as s, openBlock as t, createBlock as n, unref as e, toValue as a } from "vue";
|
2
|
-
import { e as m, E as c } from "./useFormField-DauRmNq-.js";
|
3
|
-
const f = /* @__PURE__ */ s({
|
4
|
-
__name: "BuiFormMessage",
|
5
|
-
setup(u) {
|
6
|
-
const { name: o, formMessageId: r } = m();
|
7
|
-
return (i, p) => (t(), n(e(c), {
|
8
|
-
id: e(r),
|
9
|
-
as: "p",
|
10
|
-
name: a(e(o)),
|
11
|
-
class: "text-sm font-medium text-destructive-foreground"
|
12
|
-
}, null, 8, ["id", "name"]));
|
13
|
-
}
|
14
|
-
});
|
15
|
-
export {
|
16
|
-
f as _
|
17
|
-
};
|