@soft-stech/bootsman-ui-shadcn 1.3.9 → 1.3.11
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/{BuiAccordionContent.vue_vue_type_script_setup_true_lang-pCTYRg2Z.js → BuiAccordionContent.vue_vue_type_script_setup_true_lang-CsM9Fc2W.js} +1 -1
- package/dist/{BuiAccordionItem.vue_vue_type_script_setup_true_lang-Dp-3E0FN.js → BuiAccordionItem.vue_vue_type_script_setup_true_lang-S8lOZt7U.js} +1 -1
- package/dist/{BuiAccordionTrigger.vue_vue_type_script_setup_true_lang-CtFZfwMC.js → BuiAccordionTrigger.vue_vue_type_script_setup_true_lang-BImthsDR.js} +2 -2
- package/dist/{BuiAlertDescription.vue_vue_type_script_setup_true_lang-CVBdwmJq.js → BuiAlertDescription.vue_vue_type_script_setup_true_lang-fMus08NR.js} +1 -1
- package/dist/{BuiAlertDialogAction.vue_vue_type_script_setup_true_lang-evBkU3SL.js → BuiAlertDialogAction.vue_vue_type_script_setup_true_lang-CfBuUJM6.js} +1 -1
- package/dist/{BuiAlertDialogCancel.vue_vue_type_script_setup_true_lang-ZNOYeYWA.js → BuiAlertDialogCancel.vue_vue_type_script_setup_true_lang-lrNxDg43.js} +1 -1
- package/dist/{BuiAlertDialogContent.vue_vue_type_script_setup_true_lang-DFUbXcoh.js → BuiAlertDialogContent.vue_vue_type_script_setup_true_lang-DtKt3Kef.js} +1 -1
- package/dist/{BuiAlertDialogDescription.vue_vue_type_script_setup_true_lang-BNFeSGFa.js → BuiAlertDialogDescription.vue_vue_type_script_setup_true_lang-DsHWM87l.js} +1 -1
- package/dist/{BuiAlertDialogFooter.vue_vue_type_script_setup_true_lang-kJr2Plgw.js → BuiAlertDialogFooter.vue_vue_type_script_setup_true_lang-BDB05TyD.js} +1 -1
- package/dist/{BuiAlertDialogHeader.vue_vue_type_script_setup_true_lang-7Dx74gxo.js → BuiAlertDialogHeader.vue_vue_type_script_setup_true_lang-DHCzx4Qr.js} +1 -1
- package/dist/{BuiAlertDialogTitle.vue_vue_type_script_setup_true_lang-CLxf_ipo.js → BuiAlertDialogTitle.vue_vue_type_script_setup_true_lang-BcaTU1Rn.js} +1 -1
- package/dist/{BuiAlertTitle.vue_vue_type_script_setup_true_lang-BvU1UhRc.js → BuiAlertTitle.vue_vue_type_script_setup_true_lang-Dtl0Igf0.js} +1 -1
- package/dist/{BuiAutoForm.vue_vue_type_script_setup_true_lang-DyG1WRf2.js → BuiAutoForm.vue_vue_type_script_setup_true_lang-DUfCDDuE.js} +1 -1
- package/dist/BuiAutoFormField.vue_vue_type_script_setup_true_lang-Bdl3Ylfq.js +265 -0
- package/dist/BuiAutoFormFieldArray.vue_vue_type_script_setup_true_lang-B6PvCQjI.js +142 -0
- package/dist/{BuiAutoFormFieldBoolean.vue_vue_type_script_setup_true_lang-tuxavlOe.js → BuiAutoFormFieldBoolean.vue_vue_type_script_setup_true_lang-DH7HzVif.js} +5 -5
- package/dist/{BuiAutoFormFieldDate.vue_vue_type_script_setup_true_lang-Bzg1m-ii.js → BuiAutoFormFieldDate.vue_vue_type_script_setup_true_lang-CCNjm2DU.js} +5 -5
- package/dist/{BuiAutoFormFieldEnum.vue_vue_type_script_setup_true_lang-Bqe8Rt85.js → BuiAutoFormFieldEnum.vue_vue_type_script_setup_true_lang-D_YpnGuN.js} +9 -9
- package/dist/{BuiAutoFormFieldFile.vue_vue_type_script_setup_true_lang-DrJwn66q.js → BuiAutoFormFieldFile.vue_vue_type_script_setup_true_lang-B8i8Ir5W.js} +4 -4
- package/dist/{BuiAutoFormFieldInput.vue_vue_type_script_setup_true_lang-DtBFfiOK.js → BuiAutoFormFieldInput.vue_vue_type_script_setup_true_lang-yvygH0sB.js} +3 -3
- package/dist/{BuiAutoFormFieldNumber.vue_vue_type_script_setup_true_lang-ClLqHM1Y.js → BuiAutoFormFieldNumber.vue_vue_type_script_setup_true_lang-CCb-ZY6d.js} +3 -3
- package/dist/{BuiAutoFormFieldObject.vue_vue_type_script_setup_true_lang-C7URAPKt.js → BuiAutoFormFieldObject.vue_vue_type_script_setup_true_lang-BTcxOSjI.js} +6 -6
- package/dist/{BuiAutoFormLabel.vue_vue_type_script_setup_true_lang-DzpWjTLE.js → BuiAutoFormLabel.vue_vue_type_script_setup_true_lang-DEwvUmJl.js} +1 -1
- package/dist/{BuiCard.vue_vue_type_script_setup_true_lang-CN_UnmV6.js → BuiCard.vue_vue_type_script_setup_true_lang-Bl8b-jaK.js} +1 -1
- package/dist/{BuiCardContent.vue_vue_type_script_setup_true_lang-B6clSivQ.js → BuiCardContent.vue_vue_type_script_setup_true_lang-yTo41EtD.js} +1 -1
- package/dist/{BuiCardDescription.vue_vue_type_script_setup_true_lang-Bf_1xgzn.js → BuiCardDescription.vue_vue_type_script_setup_true_lang-DdWWn0eX.js} +1 -1
- package/dist/{BuiCardFooter.vue_vue_type_script_setup_true_lang-Bxt8PufJ.js → BuiCardFooter.vue_vue_type_script_setup_true_lang-CRwWKVX2.js} +1 -1
- package/dist/{BuiCardHeader.vue_vue_type_script_setup_true_lang-D9miAvuh.js → BuiCardHeader.vue_vue_type_script_setup_true_lang-ykcg7I9p.js} +1 -1
- package/dist/{BuiCardTitle.vue_vue_type_script_setup_true_lang-B6T0EtFW.js → BuiCardTitle.vue_vue_type_script_setup_true_lang-CL0yCRVO.js} +1 -1
- package/dist/{BuiCheckbox.vue_vue_type_script_setup_true_lang-B0K_SUAC.js → BuiCheckbox.vue_vue_type_script_setup_true_lang-x7tPq0sI.js} +2 -2
- package/dist/{BuiCommand.vue_vue_type_script_setup_true_lang-P_fz9PPV.js → BuiCommand.vue_vue_type_script_setup_true_lang-B-eT5H50.js} +1 -1
- package/dist/{BuiCommandDialog.vue_vue_type_script_setup_true_lang-CEnlCiUo.js → BuiCommandDialog.vue_vue_type_script_setup_true_lang-IgntvnEa.js} +2 -2
- package/dist/{BuiCommandEmpty.vue_vue_type_script_setup_true_lang--AzKirWT.js → BuiCommandEmpty.vue_vue_type_script_setup_true_lang-BzBiava_.js} +1 -1
- package/dist/{BuiCommandGroup.vue_vue_type_script_setup_true_lang-oAo3VvXV.js → BuiCommandGroup.vue_vue_type_script_setup_true_lang-CLpue8q9.js} +1 -1
- package/dist/{BuiCommandInput.vue_vue_type_script_setup_true_lang-BEhdQsvD.js → BuiCommandInput.vue_vue_type_script_setup_true_lang-B4MetWSb.js} +1 -1
- package/dist/{BuiCommandItem.vue_vue_type_script_setup_true_lang-uxCefFTc.js → BuiCommandItem.vue_vue_type_script_setup_true_lang-Bf6e2OVS.js} +1 -1
- package/dist/{BuiCommandList.vue_vue_type_script_setup_true_lang-bwZcHGfM.js → BuiCommandList.vue_vue_type_script_setup_true_lang-CJmqDHBU.js} +1 -1
- package/dist/{BuiCommandSeparator.vue_vue_type_script_setup_true_lang-DbZAlodh.js → BuiCommandSeparator.vue_vue_type_script_setup_true_lang-BfClvslq.js} +1 -1
- package/dist/{BuiCommandShortcut.vue_vue_type_script_setup_true_lang-DBIJCtZe.js → BuiCommandShortcut.vue_vue_type_script_setup_true_lang-C5PW7zGY.js} +1 -1
- package/dist/{BuiContextMenuCheckboxItem.vue_vue_type_script_setup_true_lang-D0miFbPB.js → BuiContextMenuCheckboxItem.vue_vue_type_script_setup_true_lang-Rzx1_IXP.js} +2 -2
- package/dist/{BuiContextMenuContent.vue_vue_type_script_setup_true_lang-aP3_J9bg.js → BuiContextMenuContent.vue_vue_type_script_setup_true_lang-BP4icmQn.js} +1 -1
- package/dist/{BuiContextMenuItem.vue_vue_type_script_setup_true_lang-D8vfxO74.js → BuiContextMenuItem.vue_vue_type_script_setup_true_lang-E-WQjTz6.js} +1 -1
- package/dist/{BuiContextMenuLabel.vue_vue_type_script_setup_true_lang-DqPKAvyw.js → BuiContextMenuLabel.vue_vue_type_script_setup_true_lang-CY5M3c8E.js} +1 -1
- package/dist/{BuiContextMenuRadioItem.vue_vue_type_script_setup_true_lang-CVenpxL9.js → BuiContextMenuRadioItem.vue_vue_type_script_setup_true_lang-iW5w7cBi.js} +2 -2
- package/dist/{BuiContextMenuSeparator.vue_vue_type_script_setup_true_lang-CKN8RXqL.js → BuiContextMenuSeparator.vue_vue_type_script_setup_true_lang-BZcY4ybR.js} +1 -1
- package/dist/{BuiContextMenuShortcut.vue_vue_type_script_setup_true_lang-DPh99A_h.js → BuiContextMenuShortcut.vue_vue_type_script_setup_true_lang-Z5xamWaW.js} +1 -1
- package/dist/{BuiContextMenuSubContent.vue_vue_type_script_setup_true_lang-CvYcdr9E.js → BuiContextMenuSubContent.vue_vue_type_script_setup_true_lang-BDPlFXHa.js} +1 -1
- package/dist/{BuiContextMenuSubTrigger.vue_vue_type_script_setup_true_lang-CF8EBUaF.js → BuiContextMenuSubTrigger.vue_vue_type_script_setup_true_lang-dMer7U6a.js} +2 -2
- package/dist/{BuiDialogContent.vue_vue_type_script_setup_true_lang-3DBhO_IA.js → BuiDialogContent.vue_vue_type_script_setup_true_lang-CoYni5ZE.js} +2 -2
- package/dist/{BuiDialogDescription.vue_vue_type_script_setup_true_lang-B6RlWji2.js → BuiDialogDescription.vue_vue_type_script_setup_true_lang-AZvLsUhP.js} +1 -1
- package/dist/{BuiDialogFooter.vue_vue_type_script_setup_true_lang-B89so9mg.js → BuiDialogFooter.vue_vue_type_script_setup_true_lang-Gdistk45.js} +1 -1
- package/dist/{BuiDialogHeader.vue_vue_type_script_setup_true_lang-2BA5kKFA.js → BuiDialogHeader.vue_vue_type_script_setup_true_lang-DrrM8FF9.js} +1 -1
- package/dist/{BuiDialogTitle.vue_vue_type_script_setup_true_lang-D4lcU_Gz.js → BuiDialogTitle.vue_vue_type_script_setup_true_lang-BjOooJiL.js} +1 -1
- package/dist/{BuiDropdownMenuCheckboxItem.vue_vue_type_script_setup_true_lang-8u8u19G1.js → BuiDropdownMenuCheckboxItem.vue_vue_type_script_setup_true_lang-CIrGjflD.js} +2 -2
- package/dist/{BuiDropdownMenuContent.vue_vue_type_script_setup_true_lang-6K_84IX2.js → BuiDropdownMenuContent.vue_vue_type_script_setup_true_lang-wnqHJshI.js} +1 -1
- package/dist/{BuiDropdownMenuItem.vue_vue_type_script_setup_true_lang-CU4I3eC4.js → BuiDropdownMenuItem.vue_vue_type_script_setup_true_lang-DWtCBqnC.js} +1 -1
- package/dist/{BuiDropdownMenuLabel.vue_vue_type_script_setup_true_lang-BPGNHYh4.js → BuiDropdownMenuLabel.vue_vue_type_script_setup_true_lang-CKOGRDPr.js} +1 -1
- package/dist/{BuiDropdownMenuRadioItem.vue_vue_type_script_setup_true_lang-CxyoF0q7.js → BuiDropdownMenuRadioItem.vue_vue_type_script_setup_true_lang-C3ygwtWi.js} +2 -2
- package/dist/{BuiDropdownMenuShortcut.vue_vue_type_script_setup_true_lang-FqWOStNT.js → BuiDropdownMenuShortcut.vue_vue_type_script_setup_true_lang-DwtFUBQO.js} +1 -1
- package/dist/{BuiDropdownMenuSubContent.vue_vue_type_script_setup_true_lang-mMWlAm-h.js → BuiDropdownMenuSubContent.vue_vue_type_script_setup_true_lang-CLJh9AYe.js} +1 -1
- package/dist/{BuiDropdownMenuSubTrigger.vue_vue_type_script_setup_true_lang-DTUQqTHr.js → BuiDropdownMenuSubTrigger.vue_vue_type_script_setup_true_lang-BRT7uSry.js} +2 -2
- package/dist/{BuiFormDescription.vue_vue_type_script_setup_true_lang-CeQSv28t.js → BuiFormDescription.vue_vue_type_script_setup_true_lang-DGuyppmR.js} +1 -1
- package/dist/{BuiFormItem.vue_vue_type_script_setup_true_lang-COw7Rwow.js → BuiFormItem.vue_vue_type_script_setup_true_lang-BO2x6ix7.js} +1 -1
- package/dist/{BuiFormLabel.vue_vue_type_script_setup_true_lang-ClJ8XVcR.js → BuiFormLabel.vue_vue_type_script_setup_true_lang-t1UbDmIt.js} +1 -1
- package/dist/{BuiHoverCardContent.vue_vue_type_script_setup_true_lang-DsSfafrp.js → BuiHoverCardContent.vue_vue_type_script_setup_true_lang-DKV43MR3.js} +1 -1
- package/dist/{BuiLabel.vue_vue_type_script_setup_true_lang-DQH-AF9N.js → BuiLabel.vue_vue_type_script_setup_true_lang-BIDUqVTa.js} +1 -1
- package/dist/{BuiPaginationEllipsis.vue_vue_type_script_setup_true_lang-2v3zIYpf.js → BuiPaginationEllipsis.vue_vue_type_script_setup_true_lang-DdylqU4n.js} +1 -1
- package/dist/{BuiPaginationFirst.vue_vue_type_script_setup_true_lang-CvMVo3wC.js → BuiPaginationFirst.vue_vue_type_script_setup_true_lang-cuz9cUp5.js} +1 -1
- package/dist/{BuiPaginationLast.vue_vue_type_script_setup_true_lang-BTNEZSgQ.js → BuiPaginationLast.vue_vue_type_script_setup_true_lang-CsK-C9uA.js} +1 -1
- package/dist/{BuiPaginationNext.vue_vue_type_script_setup_true_lang-DcwRaAYo.js → BuiPaginationNext.vue_vue_type_script_setup_true_lang-JZ3UV6RU.js} +2 -2
- package/dist/{BuiPaginationPrev.vue_vue_type_script_setup_true_lang-DkK8mnKY.js → BuiPaginationPrev.vue_vue_type_script_setup_true_lang-CKnyfhRi.js} +2 -2
- package/dist/{BuiPopoverContent.vue_vue_type_script_setup_true_lang-R7bk_E6m.js → BuiPopoverContent.vue_vue_type_script_setup_true_lang-DwnkcbMZ.js} +1 -1
- package/dist/{BuiRadioGroup.vue_vue_type_script_setup_true_lang-Bzefyzga.js → BuiRadioGroup.vue_vue_type_script_setup_true_lang-BdBINyzH.js} +1 -1
- package/dist/{BuiRadioGroupItem.vue_vue_type_script_setup_true_lang-D1w59zx2.js → BuiRadioGroupItem.vue_vue_type_script_setup_true_lang-VaUKyvrN.js} +2 -2
- package/dist/{BuiScrollArea.vue_vue_type_script_setup_true_lang-DN5hbjJX.js → BuiScrollArea.vue_vue_type_script_setup_true_lang-DhjfN7B6.js} +2 -2
- package/dist/{BuiScrollBar.vue_vue_type_script_setup_true_lang-CnsvRIhs.js → BuiScrollBar.vue_vue_type_script_setup_true_lang-DFIxoVX9.js} +1 -1
- package/dist/{BuiSelectContent.vue_vue_type_script_setup_true_lang-CX82dW-X.js → BuiSelectContent.vue_vue_type_script_setup_true_lang-eDJphqEz.js} +1 -1
- package/dist/{BuiSelectGroup.vue_vue_type_script_setup_true_lang-B7bT-kcN.js → BuiSelectGroup.vue_vue_type_script_setup_true_lang-D9z6okPE.js} +1 -1
- package/dist/{BuiSelectItem.vue_vue_type_script_setup_true_lang-DsWD84S8.js → BuiSelectItem.vue_vue_type_script_setup_true_lang-C9vpPsde.js} +2 -2
- package/dist/{BuiSelectLabel.vue_vue_type_script_setup_true_lang-Cif3hoiO.js → BuiSelectLabel.vue_vue_type_script_setup_true_lang-Coo1JTtb.js} +1 -1
- package/dist/{BuiSelectSeparator.vue_vue_type_script_setup_true_lang-Bkm9mitz.js → BuiSelectSeparator.vue_vue_type_script_setup_true_lang-C6rdMN-F.js} +1 -1
- package/dist/{BuiSelectTrigger.vue_vue_type_script_setup_true_lang-Dh-1xzuh.js → BuiSelectTrigger.vue_vue_type_script_setup_true_lang-C5NwnaUZ.js} +2 -2
- package/dist/{BuiSeparator.vue_vue_type_script_setup_true_lang-DbN8eyHh.js → BuiSeparator.vue_vue_type_script_setup_true_lang-DGWsHdhN.js} +1 -1
- package/dist/{BuiSlider.vue_vue_type_script_setup_true_lang-BrTF_gnp.js → BuiSlider.vue_vue_type_script_setup_true_lang-JfAQUqCR.js} +1 -1
- package/dist/{BuiSwitch.vue_vue_type_script_setup_true_lang-VtywyEjw.js → BuiSwitch.vue_vue_type_script_setup_true_lang-BzeuUuqE.js} +1 -1
- package/dist/{BuiTable.vue_vue_type_script_setup_true_lang-CUPSwE5z.js → BuiTable.vue_vue_type_script_setup_true_lang-DKUGwLgq.js} +3 -3
- package/dist/{BuiTableBody.vue_vue_type_script_setup_true_lang-CWT4u-Ma.js → BuiTableBody.vue_vue_type_script_setup_true_lang-DycW6Hah.js} +1 -1
- package/dist/{BuiTableCaption.vue_vue_type_script_setup_true_lang-053YvtXp.js → BuiTableCaption.vue_vue_type_script_setup_true_lang-DjGqifvz.js} +1 -1
- package/dist/{BuiTableCell.vue_vue_type_script_setup_true_lang-BrTQJCiZ.js → BuiTableCell.vue_vue_type_script_setup_true_lang-Bgr16B4x.js} +1 -1
- package/dist/{BuiTableEmpty.vue_vue_type_script_setup_true_lang-BJDYHpRG.js → BuiTableEmpty.vue_vue_type_script_setup_true_lang-lmZcHxEU.js} +3 -3
- package/dist/{BuiTableFooter.vue_vue_type_script_setup_true_lang-Cfxlxsbh.js → BuiTableFooter.vue_vue_type_script_setup_true_lang-DlmRmju0.js} +1 -1
- package/dist/{BuiTableHead.vue_vue_type_script_setup_true_lang-CCXONmtG.js → BuiTableHead.vue_vue_type_script_setup_true_lang-BH9h0zO7.js} +1 -1
- package/dist/{BuiTableHeader.vue_vue_type_script_setup_true_lang-DZOqi3dp.js → BuiTableHeader.vue_vue_type_script_setup_true_lang-DaG4PEC2.js} +1 -1
- package/dist/{BuiTableRow.vue_vue_type_script_setup_true_lang-CpEilJsW.js → BuiTableRow.vue_vue_type_script_setup_true_lang-Cko6SXNX.js} +6 -6
- package/dist/{BuiTabsContent.vue_vue_type_script_setup_true_lang-BGARj0PN.js → BuiTabsContent.vue_vue_type_script_setup_true_lang-Blf2WWIV.js} +1 -1
- package/dist/{BuiToastAction.vue_vue_type_script_setup_true_lang-BnduHxHU.js → BuiToastAction.vue_vue_type_script_setup_true_lang-ClSGYXHn.js} +1 -1
- package/dist/{BuiToastClose.vue_vue_type_script_setup_true_lang-D8a4DIAU.js → BuiToastClose.vue_vue_type_script_setup_true_lang-D6ifdNTL.js} +2 -2
- package/dist/{BuiToastDescription.vue_vue_type_script_setup_true_lang-DttuuxON.js → BuiToastDescription.vue_vue_type_script_setup_true_lang-Bu8cyZ1N.js} +1 -1
- package/dist/{BuiToastTitle.vue_vue_type_script_setup_true_lang-BTPprH2k.js → BuiToastTitle.vue_vue_type_script_setup_true_lang-CDsu5wPz.js} +1 -1
- package/dist/{BuiToastViewport.vue_vue_type_script_setup_true_lang-DGcOPCBU.js → BuiToastViewport.vue_vue_type_script_setup_true_lang-Cq7UY6Jn.js} +1 -1
- package/dist/{BuiToggleGroup.vue_vue_type_script_setup_true_lang-D4bAsz99.js → BuiToggleGroup.vue_vue_type_script_setup_true_lang-BWg3Fhur.js} +1 -1
- package/dist/{BuiToggleGroupItem.vue_vue_type_script_setup_true_lang-BoEvQmPy.js → BuiToggleGroupItem.vue_vue_type_script_setup_true_lang-BQIVJ_ur.js} +1 -1
- package/dist/{BuiTooltipContent.vue_vue_type_script_setup_true_lang-DeCynYsO.js → BuiTooltipContent.vue_vue_type_script_setup_true_lang-CtN91Yxh.js} +1 -1
- package/dist/{Skeleton.vue_vue_type_script_setup_true_lang-BA2fwC6Z.js → Skeleton.vue_vue_type_script_setup_true_lang-DekVOk7m.js} +1 -1
- package/dist/assets/main.css +1 -1
- package/dist/{check-npU4Mr7d.js → check-DKdrsX4M.js} +1 -1
- package/dist/{chevron-down-ILJn0W7E.js → chevron-down-S6Q29a3D.js} +1 -1
- package/dist/{chevron-left-1MnPaUDG.js → chevron-left-ChczLQDn.js} +1 -1
- package/dist/{chevron-right-D6qOvvY2.js → chevron-right-B-nGfIPY.js} +1 -1
- package/dist/{circle-DfMTPWb6.js → circle-Dcn_0Ti6.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 +3 -3
- 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/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/index.js +7 -7
- package/dist/components/ui/auto-form/BuiAutoForm.js +1 -1
- package/dist/components/ui/auto-form/BuiAutoFormField.js +1 -1
- package/dist/components/ui/auto-form/BuiAutoFormFieldArray.js +1 -1
- package/dist/components/ui/auto-form/BuiAutoFormFieldArrayCard.js +4 -0
- package/dist/components/ui/auto-form/BuiAutoFormFieldBoolean.js +1 -1
- package/dist/components/ui/auto-form/BuiAutoFormFieldDate.js +1 -1
- package/dist/components/ui/auto-form/BuiAutoFormFieldEnum.js +1 -1
- package/dist/components/ui/auto-form/BuiAutoFormFieldFile.js +1 -1
- package/dist/components/ui/auto-form/BuiAutoFormFieldInput.js +1 -1
- package/dist/components/ui/auto-form/BuiAutoFormFieldNumber.js +1 -1
- package/dist/components/ui/auto-form/BuiAutoFormFieldObject.js +1 -1
- package/dist/components/ui/auto-form/BuiAutoFormFieldObjectCard.js +1 -1
- package/dist/components/ui/auto-form/BuiAutoFormLabel.js +1 -1
- package/dist/components/ui/auto-form/constant.js +10 -9
- package/dist/components/ui/auto-form/index.d.ts +2 -0
- package/dist/components/ui/auto-form/index.js +23 -20
- package/dist/components/ui/avatar/index.js +1 -1
- 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 +3 -0
- package/dist/components/ui/button/index.js +1 -1
- package/dist/components/ui/calendar/index.js +3 -3
- 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/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/BuiContextMenuCheckboxItem.js +1 -1
- package/dist/components/ui/context-menu/BuiContextMenuContent.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/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/BuiContextMenuSubContent.js +1 -1
- package/dist/components/ui/context-menu/BuiContextMenuSubTrigger.js +1 -1
- package/dist/components/ui/context-menu/index.js +9 -9
- 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/index.js +5 -5
- 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/BuiDropdownMenuItem.js +1 -1
- package/dist/components/ui/dropdown-menu/BuiDropdownMenuLabel.js +1 -1
- package/dist/components/ui/dropdown-menu/BuiDropdownMenuRadioItem.js +1 -1
- package/dist/components/ui/dropdown-menu/BuiDropdownMenuShortcut.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/index.js +8 -8
- 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/index.js +3 -3
- package/dist/components/ui/form/useFormField.js +1 -1
- package/dist/components/ui/health/index.js +1 -1
- package/dist/components/ui/hover-card/BuiHoverCardContent.js +1 -1
- package/dist/components/ui/hover-card/index.js +1 -1
- package/dist/components/ui/input/BuiPasswordInput.vue.d.ts +5 -1
- package/dist/components/ui/input/index.js +37 -34
- 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 +6 -6
- package/dist/components/ui/popover/BuiPopoverContent.js +1 -1
- package/dist/components/ui/popover/index.js +1 -1
- package/dist/components/ui/progress/index.js +25 -23
- 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 +1 -1
- package/dist/components/ui/select/BuiSelectContent.js +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/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/index.js +6 -6
- 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 +2 -2
- 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 +2 -2
- package/dist/components/ui/table/index.d.ts +3 -0
- package/dist/components/ui/table/index.js +320 -22
- package/dist/components/ui/tabs/BuiTabsContent.js +1 -1
- package/dist/components/ui/tabs/index.js +24 -22
- package/dist/components/ui/textarea/index.js +1 -1
- 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/BuiToastTitle.js +1 -1
- package/dist/components/ui/toast/BuiToastViewport.js +1 -1
- package/dist/components/ui/toast/index.js +6 -6
- package/dist/components/ui/toggle/index.js +1 -1
- 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/BuiTooltipContent.js +1 -1
- package/dist/components/ui/tooltip/index.js +1 -1
- package/dist/index.js +347 -345
- package/dist/lib/utils.js +1 -1
- package/dist/tailwind-preset.js +4 -3
- package/dist/{utils-DPuEjrVV.js → utils-D2UeooB9.js} +103 -101
- package/dist/variables-DhOfRYaj.js +106 -0
- package/dist/{x-BMfRYQ91.js → x-C1AY2GMM.js} +1 -1
- package/package.json +1 -1
- package/src/components/stories/BuiAutoForm.story.vue +7 -1
- package/src/components/stories/BuiDataTable.story.vue +5 -6
- package/src/components/stories/BuiInput.story.vue +9 -0
- package/src/components/ui/auto-form/BuiAutoFormFieldArrayCard.vue +97 -0
- package/src/components/ui/auto-form/BuiAutoFormFieldObjectCard.vue +4 -1
- package/src/components/ui/auto-form/constant.ts +3 -2
- package/src/components/ui/auto-form/index.ts +2 -0
- package/src/components/ui/button/BuiButton.vue +5 -2
- package/src/components/ui/input/BuiPasswordInput.vue +10 -3
- package/src/components/ui/pagination/BuiPaginationCommon.vue +28 -34
- package/src/components/ui/progress/BuiProgress.vue +5 -2
- package/src/components/ui/progress/index.ts +4 -3
- package/src/components/ui/table/BuiDataTable.vue +39 -18
- package/src/components/ui/table/BuiTableRow.vue +1 -1
- package/src/components/ui/table/BuiTableRowSubrow.vue +6 -1
- package/src/components/ui/table/index.ts +12 -0
- package/src/components/ui/tabs/BuiTabsTrigger.vue +3 -1
- package/src/components/ui/tabs/index.ts +3 -3
- package/src/tailwind-preset.ts +2 -1
- package/dist/BuiAutoFormField.vue_vue_type_script_setup_true_lang-D0xFhEmy.js +0 -284
- package/dist/BuiDataTable.vue_vue_type_script_setup_true_lang-Bzw8CawP.js +0 -255
- package/dist/BuiPaginationCommon.vue_vue_type_script_setup_true_lang-DjLAqoa-.js +0 -109
- package/dist/BuiTableRowSubrow.vue_vue_type_script_setup_true_lang-Ch5gemw2.js +0 -65
@@ -28,6 +28,7 @@ const taskSchema = z.object({
|
|
28
28
|
type Task = z.infer<typeof taskSchema>
|
29
29
|
const columns: ColumnDef<Task>[] = [
|
30
30
|
{
|
31
|
+
id: 'id',
|
31
32
|
accessorKey: 'id',
|
32
33
|
header: ({ table, column }) => {
|
33
34
|
return h('div', { class: 'flex items-center gap-2' }, [
|
@@ -175,14 +176,12 @@ function groupName(group: string | number) {
|
|
175
176
|
<BuiButton variant="outline" @click="deleteRow"> Update rows </BuiButton>
|
176
177
|
|
177
178
|
<BuiTabs v-model="groupBy">
|
178
|
-
<BuiTabsList class="grid w-full grid-cols-3"
|
179
|
-
<BuiTabsTrigger value="none"
|
180
|
-
|
181
|
-
/></BuiTabsTrigger>
|
182
|
-
<BuiTabsTrigger value="status" :variant="'default'">
|
179
|
+
<BuiTabsList class="grid w-full grid-cols-3" variant="default">
|
180
|
+
<BuiTabsTrigger value="none" variant="default"><AlignJustifyIcon /></BuiTabsTrigger>
|
181
|
+
<BuiTabsTrigger value="status" variant="default">
|
183
182
|
<FolderIcon />
|
184
183
|
</BuiTabsTrigger>
|
185
|
-
<BuiTabsTrigger value="priority"
|
184
|
+
<BuiTabsTrigger value="priority" variant="default">
|
186
185
|
<ArrowUpNarrowWideIcon />
|
187
186
|
</BuiTabsTrigger>
|
188
187
|
</BuiTabsList>
|
@@ -64,6 +64,15 @@ import { BuiBadgedInput } from '@/components/ui/input'
|
|
64
64
|
</div>
|
65
65
|
</Variant>
|
66
66
|
|
67
|
+
<Variant title="Password with default value">
|
68
|
+
<div class="flex items-center space-x-2 p-1">
|
69
|
+
<div class="grid w-full max-w-sm items-center gap-1.5">
|
70
|
+
<BuiLabel for="email">Password</BuiLabel>
|
71
|
+
<BuiPasswordInput default-value="text" placeholder="Password" />
|
72
|
+
</div>
|
73
|
+
</div>
|
74
|
+
</Variant>
|
75
|
+
|
67
76
|
<Variant title="With units">
|
68
77
|
<div class="flex items-center space-x-2 p-1">
|
69
78
|
<div class="grid w-full max-w-sm items-center gap-1.5">
|
@@ -0,0 +1,97 @@
|
|
1
|
+
<script setup lang="ts" generic="T extends z.ZodAny">
|
2
|
+
import * as z from 'zod'
|
3
|
+
import { computed, provide } from 'vue'
|
4
|
+
import { PlusIcon, TrashIcon } from 'lucide-vue-next'
|
5
|
+
import { FieldArray, FieldContextKey, useField } from 'vee-validate'
|
6
|
+
import type { Config, ConfigItem } from './interface'
|
7
|
+
import { beautifyObjectName, getBaseType } from './utils'
|
8
|
+
import AutoFormField from './BuiAutoFormField.vue'
|
9
|
+
import { BuiButton as Button } from '@/components/ui/button'
|
10
|
+
import { BuiSeparator as Separator } from '@/components/ui/separator'
|
11
|
+
import { BuiFormItem as FormItem, BuiFormMessage as FormMessage } from '@/components/ui/form'
|
12
|
+
import { BuiCard, BuiCardContent, BuiCardHeader, BuiCardTitle } from '@/components/ui/card'
|
13
|
+
|
14
|
+
const props = defineProps<{
|
15
|
+
fieldName: string
|
16
|
+
required?: boolean
|
17
|
+
config?: Config<T>
|
18
|
+
schema?: z.ZodArray<T>
|
19
|
+
disabled?: boolean
|
20
|
+
}>()
|
21
|
+
|
22
|
+
function isZodArray(item: z.ZodArray<any> | z.ZodDefault<any>): item is z.ZodArray<any> {
|
23
|
+
return item instanceof z.ZodArray
|
24
|
+
}
|
25
|
+
|
26
|
+
function isZodDefault(item: z.ZodArray<any> | z.ZodDefault<any>): item is z.ZodDefault<any> {
|
27
|
+
return item instanceof z.ZodDefault
|
28
|
+
}
|
29
|
+
|
30
|
+
const itemShape = computed(() => {
|
31
|
+
if (!props.schema) return
|
32
|
+
|
33
|
+
const schema: z.ZodAny = isZodArray(props.schema)
|
34
|
+
? props.schema._def.type
|
35
|
+
: isZodDefault(props.schema)
|
36
|
+
? // @ts-expect-error missing schema
|
37
|
+
props.schema._def.innerType._def.type
|
38
|
+
: null
|
39
|
+
|
40
|
+
return {
|
41
|
+
type: getBaseType(schema),
|
42
|
+
schema
|
43
|
+
}
|
44
|
+
})
|
45
|
+
|
46
|
+
const fieldContext = useField(props.fieldName)
|
47
|
+
// @ts-expect-error ignore missing `id`
|
48
|
+
provide(FieldContextKey, fieldContext)
|
49
|
+
</script>
|
50
|
+
|
51
|
+
<template>
|
52
|
+
<FieldArray v-slot="{ fields, remove, push }" as="section" :name="fieldName">
|
53
|
+
<slot v-bind="props">
|
54
|
+
<BuiCard as-child class="w-full border-0 shadow-none">
|
55
|
+
<FormItem>
|
56
|
+
<BuiCardHeader class="border-b-[1px] border-b-border/[0.16] py-1">
|
57
|
+
<BuiCardTitle class="py-0 text-base">
|
58
|
+
{{
|
59
|
+
schema?.description ||
|
60
|
+
beautifyObjectName(fieldName.split('.')[fieldName.split('.').length - 1])
|
61
|
+
}}
|
62
|
+
</BuiCardTitle>
|
63
|
+
</BuiCardHeader>
|
64
|
+
<BuiCardContent class="flex flex-col gap-5 pb-0 pr-0">
|
65
|
+
<template v-for="(field, index) of fields" :key="field.key">
|
66
|
+
<div class="mb-4 p-1">
|
67
|
+
<AutoFormField
|
68
|
+
:field-name="`${fieldName}[${index}]`"
|
69
|
+
:label="fieldName"
|
70
|
+
:shape="itemShape!"
|
71
|
+
:config="config as ConfigItem"
|
72
|
+
/>
|
73
|
+
|
74
|
+
<div class="!my-4 flex justify-end">
|
75
|
+
<Button type="button" size="icon" variant="secondary" @click="remove(index)">
|
76
|
+
<TrashIcon :size="16" />
|
77
|
+
</Button>
|
78
|
+
</div>
|
79
|
+
<Separator v-if="!field.isLast" />
|
80
|
+
</div>
|
81
|
+
</template>
|
82
|
+
|
83
|
+
<Button
|
84
|
+
type="button"
|
85
|
+
variant="secondary"
|
86
|
+
class="mt-4 flex items-center"
|
87
|
+
@click="push(null)"
|
88
|
+
>
|
89
|
+
<PlusIcon class="mr-2" :size="16" />
|
90
|
+
</Button>
|
91
|
+
<FormMessage />
|
92
|
+
</BuiCardContent>
|
93
|
+
</FormItem>
|
94
|
+
</BuiCard>
|
95
|
+
</slot>
|
96
|
+
</FieldArray>
|
97
|
+
</template>
|
@@ -53,7 +53,10 @@ provide(FieldContextKey, fieldContext)
|
|
53
53
|
<FormItem>
|
54
54
|
<BuiCardHeader class="border-b-[1px] border-b-border/[0.16] py-1">
|
55
55
|
<BuiCardTitle class="py-0 text-base">
|
56
|
-
{{
|
56
|
+
{{
|
57
|
+
schema?.description ||
|
58
|
+
beautifyObjectName(fieldName.split('.')[fieldName.split('.').length - 1])
|
59
|
+
}}
|
57
60
|
</BuiCardTitle>
|
58
61
|
</BuiCardHeader>
|
59
62
|
<BuiCardContent class="flex flex-col gap-5 pb-0 pr-0">
|
@@ -6,7 +6,8 @@ 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 '
|
9
|
+
import BuiAutoFormFieldObjectCard from './BuiAutoFormFieldObjectCard.vue'
|
10
|
+
import BuiAutoFormFieldArrayCard from './BuiAutoFormFieldArrayCard.vue'
|
10
11
|
|
11
12
|
export const INPUT_COMPONENTS = {
|
12
13
|
date: BuiAutoFormFieldDate,
|
@@ -18,7 +19,7 @@ export const INPUT_COMPONENTS = {
|
|
18
19
|
number: BuiAutoFormFieldNumber,
|
19
20
|
string: BuiAutoFormFieldInput,
|
20
21
|
file: BuiAutoFormFieldFile,
|
21
|
-
array:
|
22
|
+
array: BuiAutoFormFieldArrayCard,
|
22
23
|
object: BuiAutoFormFieldObjectCard
|
23
24
|
}
|
24
25
|
|
@@ -13,3 +13,5 @@ export { default as BuiAutoFormFieldFile } from './BuiAutoFormFieldFile.vue'
|
|
13
13
|
export { default as BuiAutoFormFieldInput } from './BuiAutoFormFieldInput.vue'
|
14
14
|
export { default as BuiAutoFormFieldNumber } from './BuiAutoFormFieldNumber.vue'
|
15
15
|
export { default as BuiAutoFormFieldObject } from './BuiAutoFormFieldObject.vue'
|
16
|
+
export { default as BuiAutoFormFieldObjectCard } from './BuiAutoFormFieldObjectCard.vue'
|
17
|
+
export { default as BuiAutoFormFieldArrayCard } from './BuiAutoFormFieldArrayCard.vue'
|
@@ -2,15 +2,18 @@
|
|
2
2
|
import { Primitive, type PrimitiveProps } from 'radix-vue'
|
3
3
|
import { buttonVariants } from '.'
|
4
4
|
import { cn } from '@/lib/utils'
|
5
|
+
import { type HTMLAttributes } from 'vue'
|
5
6
|
|
6
7
|
interface Props extends PrimitiveProps {
|
8
|
+
class?: HTMLAttributes['class']
|
7
9
|
variant?: NonNullable<Parameters<typeof buttonVariants>[0]>['variant']
|
8
10
|
size?: NonNullable<Parameters<typeof buttonVariants>[0]>['size']
|
9
11
|
as?: string
|
10
12
|
type?: string
|
11
13
|
}
|
12
14
|
|
13
|
-
withDefaults(defineProps<Props>(), {
|
15
|
+
const props = withDefaults(defineProps<Props>(), {
|
16
|
+
class: '',
|
14
17
|
as: 'button',
|
15
18
|
type: 'button'
|
16
19
|
})
|
@@ -20,7 +23,7 @@ withDefaults(defineProps<Props>(), {
|
|
20
23
|
<Primitive
|
21
24
|
:as="as"
|
22
25
|
:as-child="asChild"
|
23
|
-
:class="cn(buttonVariants({ variant, size }),
|
26
|
+
:class="cn(buttonVariants({ variant, size }), props.class)"
|
24
27
|
:type="type"
|
25
28
|
>
|
26
29
|
<slot />
|
@@ -4,11 +4,15 @@ import { cn } from '@/lib/utils'
|
|
4
4
|
import { EyeIcon, EyeOffIcon } from 'lucide-vue-next'
|
5
5
|
import { ref } from 'vue'
|
6
6
|
|
7
|
+
const props = defineProps<{
|
8
|
+
defaultValue?: 'password' | 'text'
|
9
|
+
}>()
|
10
|
+
|
7
11
|
defineOptions({
|
8
12
|
inheritAttrs: false
|
9
13
|
})
|
10
14
|
|
11
|
-
const type = ref('password')
|
15
|
+
const type = ref(props.defaultValue ?? 'password')
|
12
16
|
function togglePasswordShow() {
|
13
17
|
if (type.value === 'password') {
|
14
18
|
type.value = 'text'
|
@@ -25,8 +29,11 @@ function togglePasswordShow() {
|
|
25
29
|
@click="togglePasswordShow"
|
26
30
|
class="absolute right-3 top-0 flex h-full items-center justify-center"
|
27
31
|
>
|
28
|
-
<EyeIcon
|
29
|
-
|
32
|
+
<EyeIcon
|
33
|
+
v-if="type === 'password'"
|
34
|
+
class="h-4 w-4 cursor-pointer opacity-[0.56] hover:opacity-100"
|
35
|
+
/>
|
36
|
+
<EyeOffIcon v-else class="h-4 w-4 cursor-pointer opacity-[0.56] hover:opacity-100" />
|
30
37
|
</span>
|
31
38
|
</div>
|
32
39
|
</template>
|
@@ -39,38 +39,32 @@ const pageSizeString = computed({
|
|
39
39
|
</script>
|
40
40
|
|
41
41
|
<template>
|
42
|
-
<
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
>
|
49
|
-
<
|
50
|
-
|
51
|
-
<
|
52
|
-
<
|
53
|
-
|
54
|
-
|
55
|
-
<
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
<
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
<BuiPaginationNext />
|
71
|
-
<BuiPaginationLast />
|
72
|
-
</template>
|
73
|
-
</BuiPaginationList>
|
74
|
-
</BuiPagination>
|
75
|
-
</div>
|
42
|
+
<BuiPagination
|
43
|
+
v-slot="{ page }"
|
44
|
+
:total="props.total"
|
45
|
+
:itemsPerPage="pageSize"
|
46
|
+
v-model:page="pageIndex"
|
47
|
+
>
|
48
|
+
<BuiPaginationList class="relative flex items-center justify-center gap-2">
|
49
|
+
<p class="text-sm text-muted-foreground">Items per page</p>
|
50
|
+
<BuiSelect v-model.number="pageSizeString">
|
51
|
+
<BuiSelectTrigger class="mr-2 w-[70px]">
|
52
|
+
<BuiSelectValue :placeholder="pageSize.toString()" />
|
53
|
+
</BuiSelectTrigger>
|
54
|
+
<BuiSelectContent side="top">
|
55
|
+
<BuiSelectItem v-for="pageSize in pageSizes" :key="pageSize" :value="pageSize.toString()">
|
56
|
+
{{ pageSize }}
|
57
|
+
</BuiSelectItem>
|
58
|
+
</BuiSelectContent>
|
59
|
+
</BuiSelect>
|
60
|
+
<template v-if="totalPages > 1">
|
61
|
+
<p class="text-sm text-muted-foreground">Page {{ page }} of {{ totalPages }}</p>
|
62
|
+
<BuiPaginationFirst />
|
63
|
+
<BuiPaginationPrev />
|
64
|
+
<BuiInput v-model="pageIndex" class="w-28" placeholder="Page number" />
|
65
|
+
<BuiPaginationNext />
|
66
|
+
<BuiPaginationLast />
|
67
|
+
</template>
|
68
|
+
</BuiPaginationList>
|
69
|
+
</BuiPagination>
|
76
70
|
</template>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<script setup lang="ts">
|
2
2
|
import { ProgressIndicator, ProgressRoot, type ProgressRootProps } from 'radix-vue'
|
3
3
|
import { cn } from '@/lib/utils'
|
4
|
-
import type
|
4
|
+
import { type HTMLAttributes, computed } from 'vue'
|
5
5
|
|
6
6
|
import { progressVariants, capVariants, indicatorVariants } from '.'
|
7
7
|
|
@@ -20,6 +20,9 @@ const props = withDefaults(
|
|
20
20
|
variant: 'default'
|
21
21
|
}
|
22
22
|
)
|
23
|
+
const indicatorClass = computed(() =>
|
24
|
+
!props.modelValue || props.modelValue < 100 ? 'rounded-r-none border-r-2' : ''
|
25
|
+
)
|
23
26
|
</script>
|
24
27
|
|
25
28
|
<template>
|
@@ -34,7 +37,7 @@ const props = withDefaults(
|
|
34
37
|
v-bind="props"
|
35
38
|
>
|
36
39
|
<ProgressIndicator
|
37
|
-
:class="cn(indicatorVariants({ color, variant }), props.class)"
|
40
|
+
:class="cn(indicatorVariants({ color, variant }), indicatorClass, props.class)"
|
38
41
|
:style="`width: calc(calc(100% - ${capVariants[variant ?? 'default']}) * ${
|
39
42
|
(props.modelValue ?? 0) * 0.01
|
40
43
|
})`"
|
@@ -25,9 +25,10 @@ export const indicatorVariants = cva(
|
|
25
25
|
lg: 'rounded-[16px]'
|
26
26
|
},
|
27
27
|
color: {
|
28
|
-
primary:
|
29
|
-
|
30
|
-
|
28
|
+
primary:
|
29
|
+
'from-[rgba(115,113,249,0.80)] to-[rgba(115,113,249,0.24)] border-[rgb(115,113,249)]',
|
30
|
+
red: 'from-[rgba(224,95,163,0.8)] to-[rgba(224,95,163,0.24)] border-[rgb(224,95,163)]',
|
31
|
+
orange: 'from-[rgba(255,167,139,0.8)] to-[rgba(255,167,139,0.24)] border-[rgb(255,167,139)]'
|
31
32
|
}
|
32
33
|
},
|
33
34
|
defaultVariants: {
|
@@ -28,10 +28,10 @@ import {
|
|
28
28
|
BuiTableBody,
|
29
29
|
BuiTableCell,
|
30
30
|
BuiTableEmpty,
|
31
|
-
BuiTableFooter,
|
32
31
|
BuiTableHead,
|
33
32
|
BuiTableHeader,
|
34
|
-
BuiTableRow
|
33
|
+
BuiTableRow,
|
34
|
+
getPinningStyle
|
35
35
|
} from './'
|
36
36
|
|
37
37
|
const NO_GROUP_KEY = '#UNDEFINED#'
|
@@ -61,7 +61,11 @@ const computedItems = computed(() =>
|
|
61
61
|
props.manualPagination ? props.totalItems : props.data.length
|
62
62
|
)
|
63
63
|
const table = useVueTable({
|
64
|
-
initialState: {
|
64
|
+
initialState: {
|
65
|
+
// TODO: column freeze
|
66
|
+
//columnPinning: { left: ['id'] },
|
67
|
+
pagination: { pageSize: props.pageSize }
|
68
|
+
},
|
65
69
|
get data() {
|
66
70
|
return props.data
|
67
71
|
},
|
@@ -154,7 +158,11 @@ function getGroupLabel(index: number) {
|
|
154
158
|
<BuiTable>
|
155
159
|
<BuiTableHeader>
|
156
160
|
<BuiTableRow v-for="headerGroup in table.getHeaderGroups()" :key="headerGroup.id">
|
157
|
-
<BuiTableHead
|
161
|
+
<BuiTableHead
|
162
|
+
v-for="header in headerGroup.headers"
|
163
|
+
:key="header.id"
|
164
|
+
:style="{ ...getPinningStyle(header.column) }"
|
165
|
+
>
|
158
166
|
<FlexRender
|
159
167
|
v-if="!header.isPlaceholder"
|
160
168
|
:render="header.column.columnDef.header"
|
@@ -171,7 +179,22 @@ function getGroupLabel(index: number) {
|
|
171
179
|
<BuiTableRow class="bg-foreground/[0.04]">
|
172
180
|
<BuiTableCell :colspan="columns.length" class="!pb-0">
|
173
181
|
<div class="flex w-full items-center justify-between">
|
174
|
-
<div
|
182
|
+
<div
|
183
|
+
class="shadow-top-shadow relative -mb-[1px] inline-block rounded-t-lg bg-background px-4 py-3 text-base font-semibold"
|
184
|
+
>
|
185
|
+
<div class="absolute -left-2 bottom-0 h-2 w-2 bg-background"></div>
|
186
|
+
<div class="absolute -left-4 bottom-0 h-4 w-4 rounded-lg bg-background"></div>
|
187
|
+
<div
|
188
|
+
class="absolute -left-4 bottom-0 h-4 w-4 rounded-lg bg-foreground/[0.04]"
|
189
|
+
></div>
|
190
|
+
<div class="absolute -right-2 bottom-0 h-2 w-2 bg-background"></div>
|
191
|
+
<div
|
192
|
+
class="absolute -right-4 bottom-0 h-4 w-4 rounded-lg bg-background"
|
193
|
+
></div>
|
194
|
+
<div
|
195
|
+
class="absolute -right-4 bottom-0 h-4 w-4 rounded-lg bg-foreground/[0.04]"
|
196
|
+
></div>
|
197
|
+
<div></div>
|
175
198
|
<template v-if="key === NO_GROUP_KEY">
|
176
199
|
{{ getGroupLabel(1) }}
|
177
200
|
</template>
|
@@ -216,18 +239,16 @@ function getGroupLabel(index: number) {
|
|
216
239
|
</BuiTableEmpty>
|
217
240
|
</template>
|
218
241
|
</BuiTableBody>
|
219
|
-
<BuiTableFooter v-if="showPagination && computedItems > 0">
|
220
|
-
<BuiTableRow>
|
221
|
-
<BuiTableCell :colspan="columns.length">
|
222
|
-
<BuiPaginationCommon
|
223
|
-
class="float-right"
|
224
|
-
:total="computedItems"
|
225
|
-
v-model:pageIndex="pageIndex"
|
226
|
-
v-model:pageSize="tablePageSize"
|
227
|
-
>
|
228
|
-
</BuiPaginationCommon>
|
229
|
-
</BuiTableCell>
|
230
|
-
</BuiTableRow>
|
231
|
-
</BuiTableFooter>
|
232
242
|
</BuiTable>
|
243
|
+
<div
|
244
|
+
v-if="showPagination && computedItems > 0"
|
245
|
+
class="flex w-full justify-end border-x border-b border-border/[0.16] bg-primary/[0.04] p-4 text-base text-muted-foreground"
|
246
|
+
>
|
247
|
+
<BuiPaginationCommon
|
248
|
+
:total="computedItems"
|
249
|
+
v-model:pageIndex="pageIndex"
|
250
|
+
v-model:pageSize="tablePageSize"
|
251
|
+
>
|
252
|
+
</BuiPaginationCommon>
|
253
|
+
</div>
|
233
254
|
</template>
|
@@ -8,7 +8,7 @@ const props = defineProps<{ class?: string }>()
|
|
8
8
|
<tr
|
9
9
|
:class="
|
10
10
|
cn(
|
11
|
-
'border-b border-border/[0.08] transition-colors data-[state=selected]:bg-
|
11
|
+
'border-b border-border/[0.08] transition-colors data-[state=selected]:bg-accent/[0.04]',
|
12
12
|
props.class
|
13
13
|
)
|
14
14
|
"
|
@@ -1,6 +1,7 @@
|
|
1
1
|
<script setup lang="ts" generic="TData, TValue">
|
2
2
|
import { BuiTableCell, BuiTableRow } from '@/components/ui/table'
|
3
3
|
import { FlexRender, type ColumnDef, type Row } from '@tanstack/vue-table'
|
4
|
+
import { getPinningStyle } from './'
|
4
5
|
|
5
6
|
const props = defineProps<{
|
6
7
|
row: Row<TData>
|
@@ -14,7 +15,11 @@ const props = defineProps<{
|
|
14
15
|
:data-state="row.getIsSelected() ? 'selected' : undefined"
|
15
16
|
:class="props.renderSubComponent?.(row) ? 'border-b-0' : ''"
|
16
17
|
>
|
17
|
-
<BuiTableCell
|
18
|
+
<BuiTableCell
|
19
|
+
v-for="cell in row.getVisibleCells()"
|
20
|
+
:key="cell.id"
|
21
|
+
:style="{ ...getPinningStyle(cell.column) }"
|
22
|
+
>
|
18
23
|
<FlexRender :render="cell.column.columnDef.cell" :props="cell.getContext()" />
|
19
24
|
</BuiTableCell>
|
20
25
|
</BuiTableRow>
|
@@ -1,3 +1,6 @@
|
|
1
|
+
import type { Column } from '@tanstack/vue-table'
|
2
|
+
import type { CSSProperties } from 'vue'
|
3
|
+
|
1
4
|
export { default as BuiTable } from './BuiTable.vue'
|
2
5
|
export { default as BuiTableBody } from './BuiTableBody.vue'
|
3
6
|
export { default as BuiTableCell } from './BuiTableCell.vue'
|
@@ -9,3 +12,12 @@ export { default as BuiTableCaption } from './BuiTableCaption.vue'
|
|
9
12
|
export { default as BuiTableEmpty } from './BuiTableEmpty.vue'
|
10
13
|
export { default as BuiTableFooter } from './BuiTableFooter.vue'
|
11
14
|
export { default as BuiDataTable } from './BuiDataTable.vue'
|
15
|
+
|
16
|
+
export function getPinningStyle<TData>(column: Column<TData, unknown>): CSSProperties {
|
17
|
+
const isPinned = column.getIsPinned()
|
18
|
+
return {
|
19
|
+
left: isPinned === 'left' ? '0' : undefined,
|
20
|
+
position: isPinned ? 'sticky' : 'relative',
|
21
|
+
zIndex: isPinned ? '1' : '0'
|
22
|
+
}
|
23
|
+
}
|
@@ -19,14 +19,14 @@ export const tabsListVariants = cva('inline-flex items-center justify-center rou
|
|
19
19
|
})
|
20
20
|
|
21
21
|
export const tabsTriggerVariants = cva(
|
22
|
-
'inline-flex items-center justify-center whitespace-nowrap px-3 py-1.5 text-
|
22
|
+
'inline-flex items-center justify-center whitespace-nowrap px-3 py-1.5 text-lg font-semibold ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:text-foreground',
|
23
23
|
{
|
24
24
|
variants: {
|
25
25
|
variant: {
|
26
26
|
default:
|
27
|
-
'rounded-sm data-[state=active]:bg-background data-[state=active]:border border-primary/[0.16] text-
|
27
|
+
'rounded-sm data-[state=active]:bg-background data-[state=active]:border border-primary/[0.16] text-foreground opacity-[0.56] hover:opacity-100 data-[state=active]:opacity-100 data-[state=active]:shadow-tab-shadow',
|
28
28
|
ghost:
|
29
|
-
'border-transparent text-muted-foreground border-b-2 data-[state=active]:border-primary',
|
29
|
+
'border-transparent text-muted-foreground pb-0 [&_div]:pb-1.5 [&_div]:border-b-2 [&_div]:data-[state=active]:border-primary',
|
30
30
|
vertical:
|
31
31
|
'border-transparent text-primary data-[state=active]:border-primary data-[state=active]:bg-background border-l-2 border-b-0 w-full justify-start pl-6'
|
32
32
|
}
|
package/src/tailwind-preset.ts
CHANGED
@@ -79,7 +79,8 @@ export default {
|
|
79
79
|
boxShadow: {
|
80
80
|
'card-shadow': '0px 4px 8px 0px hsl(var(--card-shadow))',
|
81
81
|
'tab-shadow':
|
82
|
-
'0px 2px 4px 0px hsl(var(--tab-shadow)), 0px 4px 4px 0px hsl(var(--tab-shadow))'
|
82
|
+
'0px 2px 4px 0px hsl(var(--tab-shadow)), 0px 4px 4px 0px hsl(var(--tab-shadow))',
|
83
|
+
'top-shadow': '0px -2px 4px 0px hsl(var(--tab-shadow))'
|
83
84
|
},
|
84
85
|
keyframes: {
|
85
86
|
'accordion-down': {
|