@soft-stech/bootsman-ui-shadcn 1.4.35 → 1.4.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{BuiAccordionContent.vue_vue_type_script_setup_true_lang-DCiVOSEG.js → BuiAccordionContent.vue_vue_type_script_setup_true_lang-Bg2UJYf9.js} +1 -1
- package/dist/{BuiAccordionItem.vue_vue_type_script_setup_true_lang-D5_vJW2z.js → BuiAccordionItem.vue_vue_type_script_setup_true_lang-CiFbAf_1.js} +1 -1
- package/dist/{BuiAccordionTrigger.vue_vue_type_script_setup_true_lang-BY3DjbUd.js → BuiAccordionTrigger.vue_vue_type_script_setup_true_lang-aFFJ3tuo.js} +2 -2
- package/dist/{BuiAdvancedAccordionTrigger.vue_vue_type_script_setup_true_lang-B9RTJBaS.js → BuiAdvancedAccordionTrigger.vue_vue_type_script_setup_true_lang-BG9umQaz.js} +2 -2
- package/dist/{BuiAlertDescription.vue_vue_type_script_setup_true_lang-CNA6Hqd_.js → BuiAlertDescription.vue_vue_type_script_setup_true_lang-D2aRMrjC.js} +1 -1
- package/dist/{BuiAlertDialogAction.vue_vue_type_script_setup_true_lang-BLdAXAZ8.js → BuiAlertDialogAction.vue_vue_type_script_setup_true_lang-DBbjw0lw.js} +1 -1
- package/dist/{BuiAlertDialogCancel.vue_vue_type_script_setup_true_lang-3Qy5WdDY.js → BuiAlertDialogCancel.vue_vue_type_script_setup_true_lang-DE9DbnHa.js} +1 -1
- package/dist/{BuiAlertDialogContent.vue_vue_type_script_setup_true_lang-fXfqq_TB.js → BuiAlertDialogContent.vue_vue_type_script_setup_true_lang-B9P6SIUv.js} +1 -1
- package/dist/{BuiAlertDialogDescription.vue_vue_type_script_setup_true_lang-Bcv9P4hK.js → BuiAlertDialogDescription.vue_vue_type_script_setup_true_lang-CxE38rlt.js} +1 -1
- package/dist/{BuiAlertDialogFooter.vue_vue_type_script_setup_true_lang-Ce-LCONh.js → BuiAlertDialogFooter.vue_vue_type_script_setup_true_lang-Dol_uqw5.js} +1 -1
- package/dist/{BuiAlertDialogHeader.vue_vue_type_script_setup_true_lang-CcAfgtej.js → BuiAlertDialogHeader.vue_vue_type_script_setup_true_lang-fI7StmUp.js} +1 -1
- package/dist/{BuiAlertDialogTitle.vue_vue_type_script_setup_true_lang-BmpoyLAI.js → BuiAlertDialogTitle.vue_vue_type_script_setup_true_lang-Dd_d1Dd7.js} +1 -1
- package/dist/{BuiAlertTitle.vue_vue_type_script_setup_true_lang-DAUjTcCq.js → BuiAlertTitle.vue_vue_type_script_setup_true_lang-DoUWBb9E.js} +1 -1
- package/dist/{BuiAutoForm.vue_vue_type_script_setup_true_lang-CR29Ijgr.js → BuiAutoForm.vue_vue_type_script_setup_true_lang-ndXR7BaI.js} +1 -1
- package/dist/{BuiAutoFormField.vue_vue_type_script_setup_true_lang-BXyvpF52.js → BuiAutoFormField.vue_vue_type_script_setup_true_lang-K954j-e6.js} +12 -12
- package/dist/{BuiAutoFormFieldArray.vue_vue_type_script_setup_true_lang-BcozwIJO.js → BuiAutoFormFieldArray.vue_vue_type_script_setup_true_lang-Qt_aDHEi.js} +8 -8
- package/dist/{BuiAutoFormFieldBoolean.vue_vue_type_script_setup_true_lang-B3FtfxO0.js → BuiAutoFormFieldBoolean.vue_vue_type_script_setup_true_lang-B_e0vuhI.js} +4 -4
- package/dist/{BuiAutoFormFieldDate.vue_vue_type_script_setup_true_lang-XzlTL98G.js → BuiAutoFormFieldDate.vue_vue_type_script_setup_true_lang-iaXvL6_3.js} +3 -3
- package/dist/{BuiAutoFormFieldEnum.vue_vue_type_script_setup_true_lang-B-Mjgwn4.js → BuiAutoFormFieldEnum.vue_vue_type_script_setup_true_lang-B8Os94cq.js} +9 -9
- package/dist/{BuiAutoFormFieldFile.vue_vue_type_script_setup_true_lang-Dw-p4FMQ.js → BuiAutoFormFieldFile.vue_vue_type_script_setup_true_lang-_tNiMC5y.js} +2 -2
- package/dist/{BuiAutoFormFieldInput.vue_vue_type_script_setup_true_lang-BDT_-KUa.js → BuiAutoFormFieldInput.vue_vue_type_script_setup_true_lang-D4RSWQ2a.js} +2 -2
- package/dist/{BuiAutoFormFieldNumber.vue_vue_type_script_setup_true_lang-BNh80niQ.js → BuiAutoFormFieldNumber.vue_vue_type_script_setup_true_lang-Db9bTqM3.js} +2 -2
- package/dist/{BuiAutoFormFieldObject.vue_vue_type_script_setup_true_lang-jcyRGscR.js → BuiAutoFormFieldObject.vue_vue_type_script_setup_true_lang-DtIuWqJR.js} +6 -6
- package/dist/{BuiAutoFormLabel.vue_vue_type_script_setup_true_lang-Dy3NHHRP.js → BuiAutoFormLabel.vue_vue_type_script_setup_true_lang-NhOJHYJA.js} +1 -1
- package/dist/{BuiCard.vue_vue_type_script_setup_true_lang-si8NLO0N.js → BuiCard.vue_vue_type_script_setup_true_lang-CkC8lrvx.js} +1 -1
- package/dist/{BuiCardContent.vue_vue_type_script_setup_true_lang-BHdJ-vzY.js → BuiCardContent.vue_vue_type_script_setup_true_lang-CRBn-mRv.js} +1 -1
- package/dist/{BuiCardDescription.vue_vue_type_script_setup_true_lang-CrWrAyyK.js → BuiCardDescription.vue_vue_type_script_setup_true_lang-wKx4DSsC.js} +1 -1
- package/dist/{BuiCardFooter.vue_vue_type_script_setup_true_lang-BUcRZITy.js → BuiCardFooter.vue_vue_type_script_setup_true_lang-84LmO9Ee.js} +1 -1
- package/dist/{BuiCardHeader.vue_vue_type_script_setup_true_lang-Br341T3G.js → BuiCardHeader.vue_vue_type_script_setup_true_lang-Cpd-7BZn.js} +1 -1
- package/dist/{BuiCardTitle.vue_vue_type_script_setup_true_lang-B7AHN7C6.js → BuiCardTitle.vue_vue_type_script_setup_true_lang-DgFhKXA_.js} +1 -1
- package/dist/{BuiCheckbox.vue_vue_type_script_setup_true_lang-Cf6LNc8s.js → BuiCheckbox.vue_vue_type_script_setup_true_lang-_VPumFYO.js} +2 -2
- package/dist/{BuiCommand.vue_vue_type_script_setup_true_lang-CGmy09vy.js → BuiCommand.vue_vue_type_script_setup_true_lang-C8UkqTiX.js} +1 -1
- package/dist/{BuiCommandDialog.vue_vue_type_script_setup_true_lang-CwtRVyVt.js → BuiCommandDialog.vue_vue_type_script_setup_true_lang-BOewkM56.js} +2 -2
- package/dist/{BuiCommandEmpty.vue_vue_type_script_setup_true_lang-CDb5wrs6.js → BuiCommandEmpty.vue_vue_type_script_setup_true_lang-CSwCtbz1.js} +1 -1
- package/dist/{BuiCommandGroup.vue_vue_type_script_setup_true_lang-_7UZpUo4.js → BuiCommandGroup.vue_vue_type_script_setup_true_lang-BGdSDDso.js} +1 -1
- package/dist/{BuiCommandInput.vue_vue_type_script_setup_true_lang-DrFTiPJ0.js → BuiCommandInput.vue_vue_type_script_setup_true_lang-3c9TjWnY.js} +1 -1
- package/dist/{BuiCommandItem.vue_vue_type_script_setup_true_lang-KKt0oedQ.js → BuiCommandItem.vue_vue_type_script_setup_true_lang-BdkpK55i.js} +1 -1
- package/dist/{BuiCommandList.vue_vue_type_script_setup_true_lang-CYs3s89x.js → BuiCommandList.vue_vue_type_script_setup_true_lang-C77MBwCW.js} +1 -1
- package/dist/{BuiCommandSeparator.vue_vue_type_script_setup_true_lang-BKJ4DJE1.js → BuiCommandSeparator.vue_vue_type_script_setup_true_lang-CemQWp-m.js} +1 -1
- package/dist/{BuiCommandShortcut.vue_vue_type_script_setup_true_lang-Cj_jdgwC.js → BuiCommandShortcut.vue_vue_type_script_setup_true_lang-C8jdlkgh.js} +1 -1
- package/dist/{BuiContextMenuCheckboxItem.vue_vue_type_script_setup_true_lang-CYo4-hBh.js → BuiContextMenuCheckboxItem.vue_vue_type_script_setup_true_lang-DzNtry8B.js} +2 -2
- package/dist/{BuiContextMenuContent.vue_vue_type_script_setup_true_lang-9FgwL93A.js → BuiContextMenuContent.vue_vue_type_script_setup_true_lang-BNauHWov.js} +1 -1
- package/dist/{BuiContextMenuItem.vue_vue_type_script_setup_true_lang--I1Hb1ON.js → BuiContextMenuItem.vue_vue_type_script_setup_true_lang-DXWkF81C.js} +1 -1
- package/dist/{BuiContextMenuLabel.vue_vue_type_script_setup_true_lang-DH6f7cIJ.js → BuiContextMenuLabel.vue_vue_type_script_setup_true_lang-B6GiPS1D.js} +1 -1
- package/dist/{BuiContextMenuRadioItem.vue_vue_type_script_setup_true_lang-DSk9YxfP.js → BuiContextMenuRadioItem.vue_vue_type_script_setup_true_lang-D5sqVpvN.js} +2 -2
- package/dist/{BuiContextMenuSeparator.vue_vue_type_script_setup_true_lang-B6i_AxYn.js → BuiContextMenuSeparator.vue_vue_type_script_setup_true_lang-CHoJ3KU6.js} +1 -1
- package/dist/{BuiContextMenuShortcut.vue_vue_type_script_setup_true_lang-CrBwUUzZ.js → BuiContextMenuShortcut.vue_vue_type_script_setup_true_lang-yH0VcLKG.js} +1 -1
- package/dist/{BuiContextMenuSubContent.vue_vue_type_script_setup_true_lang-DXxqIszE.js → BuiContextMenuSubContent.vue_vue_type_script_setup_true_lang-B8VKgMrH.js} +1 -1
- package/dist/{BuiContextMenuSubTrigger.vue_vue_type_script_setup_true_lang-DSaoCBjV.js → BuiContextMenuSubTrigger.vue_vue_type_script_setup_true_lang-uLf_ZAR-.js} +2 -2
- package/dist/{BuiDataTableColumnList.vue_vue_type_script_setup_true_lang-BQQrZqqV.js → BuiDataTableColumnList.vue_vue_type_script_setup_true_lang-Dof0WsTF.js} +2 -2
- package/dist/{BuiDialogContent.vue_vue_type_script_setup_true_lang-B5Sw6gTE.js → BuiDialogContent.vue_vue_type_script_setup_true_lang-jRVT38WW.js} +2 -2
- package/dist/{BuiDialogDescription.vue_vue_type_script_setup_true_lang-DBDeKtQn.js → BuiDialogDescription.vue_vue_type_script_setup_true_lang-NEx7XT06.js} +1 -1
- package/dist/{BuiDialogFooter.vue_vue_type_script_setup_true_lang-awHabrax.js → BuiDialogFooter.vue_vue_type_script_setup_true_lang-DxEV03yz.js} +1 -1
- package/dist/{BuiDialogHeader.vue_vue_type_script_setup_true_lang-CBaDgz8m.js → BuiDialogHeader.vue_vue_type_script_setup_true_lang-BHkrgEzv.js} +1 -1
- package/dist/{BuiDialogTitle.vue_vue_type_script_setup_true_lang-JjARAb1H.js → BuiDialogTitle.vue_vue_type_script_setup_true_lang-UrHtBmeC.js} +1 -1
- package/dist/{BuiDropdownMenuCheckboxItem.vue_vue_type_script_setup_true_lang-DDLxRL-w.js → BuiDropdownMenuCheckboxItem.vue_vue_type_script_setup_true_lang-C-7pTJQN.js} +2 -2
- package/dist/{BuiDropdownMenuContent.vue_vue_type_script_setup_true_lang-CydSDN8W.js → BuiDropdownMenuContent.vue_vue_type_script_setup_true_lang-CQF24scG.js} +1 -1
- package/dist/{BuiDropdownMenuItem.vue_vue_type_script_setup_true_lang-BwerFDRg.js → BuiDropdownMenuItem.vue_vue_type_script_setup_true_lang-DSiuZJTA.js} +1 -1
- package/dist/{BuiDropdownMenuLabel.vue_vue_type_script_setup_true_lang-BekFjAzm.js → BuiDropdownMenuLabel.vue_vue_type_script_setup_true_lang-Bo-j_hpy.js} +1 -1
- package/dist/{BuiDropdownMenuRadioItem.vue_vue_type_script_setup_true_lang-DPXF7kYv.js → BuiDropdownMenuRadioItem.vue_vue_type_script_setup_true_lang-C9pplVtc.js} +2 -2
- package/dist/{BuiDropdownMenuShortcut.vue_vue_type_script_setup_true_lang-CyeDBIAi.js → BuiDropdownMenuShortcut.vue_vue_type_script_setup_true_lang-suBUkaYq.js} +1 -1
- package/dist/{BuiDropdownMenuSubContent.vue_vue_type_script_setup_true_lang-CjM8kw0w.js → BuiDropdownMenuSubContent.vue_vue_type_script_setup_true_lang-C_aQh-88.js} +1 -1
- package/dist/{BuiDropdownMenuSubTrigger.vue_vue_type_script_setup_true_lang-BpXV01N4.js → BuiDropdownMenuSubTrigger.vue_vue_type_script_setup_true_lang-CiUQhfg1.js} +2 -2
- package/dist/{BuiHoverCardContent.vue_vue_type_script_setup_true_lang-SnFnIS59.js → BuiHoverCardContent.vue_vue_type_script_setup_true_lang-Cg24xBED.js} +1 -1
- package/dist/{BuiLabel.vue_vue_type_script_setup_true_lang-DAat9ciZ.js → BuiLabel.vue_vue_type_script_setup_true_lang-Sma4vbSS.js} +1 -1
- package/dist/{BuiPaginationEllipsis.vue_vue_type_script_setup_true_lang-BMnejzPl.js → BuiPaginationEllipsis.vue_vue_type_script_setup_true_lang-B-z2JZSt.js} +1 -1
- package/dist/{BuiPaginationFirst.vue_vue_type_script_setup_true_lang-DdBOGHt6.js → BuiPaginationFirst.vue_vue_type_script_setup_true_lang-Cldzpica.js} +1 -1
- package/dist/{BuiPaginationLast.vue_vue_type_script_setup_true_lang-CUk7ZCnP.js → BuiPaginationLast.vue_vue_type_script_setup_true_lang-DAMRrI27.js} +1 -1
- package/dist/{BuiPaginationNext.vue_vue_type_script_setup_true_lang-B0Z-kfzf.js → BuiPaginationNext.vue_vue_type_script_setup_true_lang-CQ0gejml.js} +2 -2
- package/dist/{BuiPaginationPrev.vue_vue_type_script_setup_true_lang-BtRpcXGP.js → BuiPaginationPrev.vue_vue_type_script_setup_true_lang-DuI0BC1U.js} +2 -2
- package/dist/{BuiPopoverContent.vue_vue_type_script_setup_true_lang-YZbWOBbY.js → BuiPopoverContent.vue_vue_type_script_setup_true_lang-CEFHTgEu.js} +1 -1
- package/dist/{BuiRadioGroup.vue_vue_type_script_setup_true_lang-CmhK6evO.js → BuiRadioGroup.vue_vue_type_script_setup_true_lang-CynC3r6y.js} +1 -1
- package/dist/{BuiRadioGroupItem.vue_vue_type_script_setup_true_lang-BR8kwcIm.js → BuiRadioGroupItem.vue_vue_type_script_setup_true_lang-CpV7MqXa.js} +2 -2
- package/dist/{BuiScrollArea.vue_vue_type_script_setup_true_lang-Cp3RbJG6.js → BuiScrollArea.vue_vue_type_script_setup_true_lang-BNcd3g6x.js} +2 -2
- package/dist/{BuiScrollBar.vue_vue_type_script_setup_true_lang-k4UBsgd7.js → BuiScrollBar.vue_vue_type_script_setup_true_lang-DQzqNxV2.js} +1 -1
- package/dist/{BuiSelect.vue_vue_type_script_setup_true_lang-BTaLx9te.js → BuiSelect.vue_vue_type_script_setup_true_lang-CFmk7_AN.js} +1 -1
- package/dist/{BuiSelectContent.vue_vue_type_script_setup_true_lang-BCXA7689.js → BuiSelectContent.vue_vue_type_script_setup_true_lang-C191NkOr.js} +1 -1
- package/dist/{BuiSelectGroup.vue_vue_type_script_setup_true_lang-BohzNSEb.js → BuiSelectGroup.vue_vue_type_script_setup_true_lang-C_rwHrji.js} +1 -1
- package/dist/{BuiSelectItem.vue_vue_type_script_setup_true_lang-B1Xy1bfi.js → BuiSelectItem.vue_vue_type_script_setup_true_lang-CLHtKjGO.js} +2 -2
- package/dist/{BuiSelectLabel.vue_vue_type_script_setup_true_lang-BFy9JSFe.js → BuiSelectLabel.vue_vue_type_script_setup_true_lang-CbZI5whs.js} +1 -1
- package/dist/{BuiSelectSeparator.vue_vue_type_script_setup_true_lang-iCs_Gb6J.js → BuiSelectSeparator.vue_vue_type_script_setup_true_lang-qOpsZuYc.js} +1 -1
- package/dist/{BuiSelectTrigger.vue_vue_type_script_setup_true_lang-bER8QXmg.js → BuiSelectTrigger.vue_vue_type_script_setup_true_lang-BPAHSkB4.js} +2 -2
- package/dist/{BuiSeparator.vue_vue_type_script_setup_true_lang-B7C2_r61.js → BuiSeparator.vue_vue_type_script_setup_true_lang-5hWFGBxJ.js} +1 -1
- package/dist/{BuiSheetDescription.vue_vue_type_script_setup_true_lang-Bdi3Zrgs.js → BuiSheetDescription.vue_vue_type_script_setup_true_lang-C_Nel6rW.js} +1 -1
- package/dist/{BuiSheetFooter.vue_vue_type_script_setup_true_lang-C-50iHpH.js → BuiSheetFooter.vue_vue_type_script_setup_true_lang-DvNSpoj6.js} +1 -1
- package/dist/{BuiSheetHeader.vue_vue_type_script_setup_true_lang-CtcRbBTs.js → BuiSheetHeader.vue_vue_type_script_setup_true_lang-BV7JBZ6e.js} +1 -1
- package/dist/{BuiSheetTitle.vue_vue_type_script_setup_true_lang-BVBXWrNc.js → BuiSheetTitle.vue_vue_type_script_setup_true_lang-DWRSvHfG.js} +1 -1
- package/dist/{BuiSlider.vue_vue_type_script_setup_true_lang-COfmj5l0.js → BuiSlider.vue_vue_type_script_setup_true_lang-DueApe2a.js} +1 -1
- package/dist/{BuiStepper.vue_vue_type_script_setup_true_lang-qEbJFXrj.js → BuiStepper.vue_vue_type_script_setup_true_lang-CZ1jkRxs.js} +1 -1
- package/dist/{BuiStepperDescription.vue_vue_type_script_setup_true_lang-BD8Z4PMA.js → BuiStepperDescription.vue_vue_type_script_setup_true_lang-NL_1yflc.js} +1 -1
- package/dist/{BuiStepperIndicator.vue_vue_type_script_setup_true_lang-Bf67w1xZ.js → BuiStepperIndicator.vue_vue_type_script_setup_true_lang-4suJBD-d.js} +1 -1
- package/dist/{BuiStepperItem.vue_vue_type_script_setup_true_lang-DGvfm0mP.js → BuiStepperItem.vue_vue_type_script_setup_true_lang-Br89cNz8.js} +1 -1
- package/dist/{BuiStepperSeparator.vue_vue_type_script_setup_true_lang-DJM_fePi.js → BuiStepperSeparator.vue_vue_type_script_setup_true_lang-CEqzYqhs.js} +1 -1
- package/dist/{BuiStepperTitle.vue_vue_type_script_setup_true_lang-33Yx6H_N.js → BuiStepperTitle.vue_vue_type_script_setup_true_lang-CXeu0Wwu.js} +1 -1
- package/dist/{BuiStepperTrigger.vue_vue_type_script_setup_true_lang-CN3ZDsNp.js → BuiStepperTrigger.vue_vue_type_script_setup_true_lang-B_YjAeAX.js} +1 -1
- package/dist/{BuiSwitch.vue_vue_type_script_setup_true_lang-CMYlfld7.js → BuiSwitch.vue_vue_type_script_setup_true_lang-C0UTTrRZ.js} +1 -1
- package/dist/{BuiTable.vue_vue_type_script_setup_true_lang-DMK8B7es.js → BuiTable.vue_vue_type_script_setup_true_lang-Z45MrzQA.js} +3 -3
- package/dist/{BuiTableBody.vue_vue_type_script_setup_true_lang-B46Up1oR.js → BuiTableBody.vue_vue_type_script_setup_true_lang-BGWE-WLM.js} +1 -1
- package/dist/{BuiTableCaption.vue_vue_type_script_setup_true_lang-jp5eofCd.js → BuiTableCaption.vue_vue_type_script_setup_true_lang-C9PP4Fcx.js} +1 -1
- package/dist/{BuiTableCell.vue_vue_type_script_setup_true_lang-GS1yOmsT.js → BuiTableCell.vue_vue_type_script_setup_true_lang-BMPBnL81.js} +1 -1
- package/dist/{BuiTableEmpty.vue_vue_type_script_setup_true_lang-BfNvMZNq.js → BuiTableEmpty.vue_vue_type_script_setup_true_lang-BxUialLd.js} +3 -3
- package/dist/{BuiTableFooter.vue_vue_type_script_setup_true_lang-DPiMNCsQ.js → BuiTableFooter.vue_vue_type_script_setup_true_lang-k053xTES.js} +1 -1
- package/dist/BuiTableHead.vue_vue_type_script_setup_true_lang-JNDLoSoG.js +37 -0
- package/dist/BuiTableHeader.vue_vue_type_script_setup_true_lang-18MBtNeo.js +30 -0
- package/dist/{BuiTableRow.vue_vue_type_script_setup_true_lang-C86fLmLF.js → BuiTableRow.vue_vue_type_script_setup_true_lang-f1ZCSbzt.js} +1 -1
- package/dist/{BuiTabsContent.vue_vue_type_script_setup_true_lang-BGBWw-H4.js → BuiTabsContent.vue_vue_type_script_setup_true_lang-BpaSDCqQ.js} +1 -1
- package/dist/{BuiToastAction.vue_vue_type_script_setup_true_lang-BFD6Tqtl.js → BuiToastAction.vue_vue_type_script_setup_true_lang-Dk8A0zz2.js} +1 -1
- package/dist/{BuiToastClose.vue_vue_type_script_setup_true_lang-7Y2BVPr8.js → BuiToastClose.vue_vue_type_script_setup_true_lang-B3oilMCp.js} +2 -2
- package/dist/{BuiToastDescription.vue_vue_type_script_setup_true_lang-DE7h5Geh.js → BuiToastDescription.vue_vue_type_script_setup_true_lang-BrSg0VRX.js} +1 -1
- package/dist/{BuiToastTitle.vue_vue_type_script_setup_true_lang-zYQ4l8eW.js → BuiToastTitle.vue_vue_type_script_setup_true_lang-Cqz61UTY.js} +1 -1
- package/dist/{BuiToastViewport.vue_vue_type_script_setup_true_lang-C3UycVRz.js → BuiToastViewport.vue_vue_type_script_setup_true_lang-bfIyhbsq.js} +1 -1
- package/dist/{BuiToggleGroup.vue_vue_type_script_setup_true_lang-DQyk0K4w.js → BuiToggleGroup.vue_vue_type_script_setup_true_lang-BUIfYPz8.js} +1 -1
- package/dist/{BuiToggleGroupItem.vue_vue_type_script_setup_true_lang-BjR25EuS.js → BuiToggleGroupItem.vue_vue_type_script_setup_true_lang-Fkd-GbM8.js} +1 -1
- package/dist/{BuiTooltipContent.vue_vue_type_script_setup_true_lang-Cj2ORDNZ.js → BuiTooltipContent.vue_vue_type_script_setup_true_lang-DMaUr0Py.js} +1 -1
- package/dist/{Skeleton.vue_vue_type_script_setup_true_lang-CXBaId50.js → Skeleton.vue_vue_type_script_setup_true_lang-DxJwlH68.js} +1 -1
- package/dist/{check-DXPVXmv4.js → check-Udt21v9L.js} +1 -1
- package/dist/{chevron-down-D2S1WAKN.js → chevron-down-DWtY5lSf.js} +1 -1
- package/dist/{chevron-left-BunhF8It.js → chevron-left-OASNjVKd.js} +1 -1
- package/dist/{chevron-right-Cs86raoF.js → chevron-right-C8C-EeB3.js} +1 -1
- package/dist/{circle-Dj_4u70g.js → circle-iHvJKCQ5.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/BuiAdvancedAccordionTrigger.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/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 +1 -1
- 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 +7 -7
- package/dist/components/ui/auto-form/index.js +11 -11
- 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/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/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 +1 -1
- 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/index.js +1 -1
- 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 +1 -1
- 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/BuiSelect.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 +7 -7
- package/dist/components/ui/separator/BuiSeparator.js +1 -1
- package/dist/components/ui/separator/index.js +1 -1
- package/dist/components/ui/sheet/BuiSheetDescription.js +1 -1
- package/dist/components/ui/sheet/BuiSheetFooter.js +1 -1
- package/dist/components/ui/sheet/BuiSheetHeader.js +1 -1
- package/dist/components/ui/sheet/BuiSheetTitle.js +1 -1
- package/dist/components/ui/sheet/index.js +6 -6
- 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/stepper/BuiStepper.js +1 -1
- package/dist/components/ui/stepper/BuiStepperDescription.js +1 -1
- package/dist/components/ui/stepper/BuiStepperIndicator.js +1 -1
- package/dist/components/ui/stepper/BuiStepperItem.js +1 -1
- package/dist/components/ui/stepper/BuiStepperSeparator.js +1 -1
- package/dist/components/ui/stepper/BuiStepperTitle.js +1 -1
- package/dist/components/ui/stepper/BuiStepperTrigger.js +1 -1
- package/dist/components/ui/stepper/index.js +7 -7
- package/dist/components/ui/switch/BuiSwitch.js +1 -1
- package/dist/components/ui/switch/index.js +1 -1
- package/dist/components/ui/table/BuiDataTable.vue.d.ts +7 -6
- package/dist/components/ui/table/BuiDataTableColumnList.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/BuiTableHeader.vue.d.ts +6 -2
- package/dist/components/ui/table/BuiTableRow.js +1 -1
- package/dist/components/ui/table/index.js +815 -275
- package/dist/components/ui/tabs/BuiTabsContent.js +1 -1
- package/dist/components/ui/tabs/index.js +2 -2
- 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 +117 -117
- package/dist/lib/useResizeColumns.d.ts +127 -0
- package/dist/lib/useResizeColumns.js +89 -0
- package/dist/lib/utils.js +1 -1
- package/dist/{utils-wXObAngY.js → utils-C11OfLQK.js} +2 -2
- package/dist/{variables-D2BA1gyr.js → variables-4ez0MWno.js} +8 -8
- package/dist/{x-CQmEIBuk.js → x-BCuyj3Zc.js} +1 -1
- package/package.json +3 -1
- package/src/components/stories/BuiDataTable.story.vue +5 -5
- package/src/components/ui/table/BuiDataTable.vue +64 -21
- package/src/components/ui/table/BuiTableHead.vue +7 -3
- package/src/components/ui/table/BuiTableHeader.vue +6 -0
- package/src/lib/useResizeColumns.ts +202 -0
- package/src/lib/utils.ts +2 -2
- package/dist/BuiTableHead.vue_vue_type_script_setup_true_lang-Cv-vWpBR.js +0 -32
- package/dist/BuiTableHeader.vue_vue_type_script_setup_true_lang-CqRFxosb.js +0 -26
@@ -0,0 +1,89 @@
|
|
1
|
+
import { ref as n } from "vue";
|
2
|
+
import "vee-validate";
|
3
|
+
import { useEventListener as R } from "@vueuse/core";
|
4
|
+
function A() {
|
5
|
+
const u = n(!1), o = n(""), r = n(""), i = n(void 0), d = n(90), m = n(void 0), a = n(null), v = n(void 0), w = (e) => {
|
6
|
+
a.value && a.value.headRef && [...a.value.headRef.querySelectorAll("th")].forEach((l) => {
|
7
|
+
const s = l.id.split("_")[0];
|
8
|
+
e && e[s] && (l.style.width = e[s] + "px");
|
9
|
+
});
|
10
|
+
}, W = () => {
|
11
|
+
if (a.value && a.value.headRef)
|
12
|
+
return [...a.value.headRef.querySelectorAll("th")].reduce((l, s) => {
|
13
|
+
const h = s.id.split("_")[0];
|
14
|
+
return {
|
15
|
+
...l,
|
16
|
+
[h]: {
|
17
|
+
cell: s,
|
18
|
+
initialWidth: s.offsetWidth
|
19
|
+
}
|
20
|
+
};
|
21
|
+
}, {});
|
22
|
+
}, g = (e, t) => {
|
23
|
+
if (t && (u.value = !0, o.value = e, i.value)) {
|
24
|
+
const l = i.value[e].cell;
|
25
|
+
let s = l.nextElementSibling;
|
26
|
+
s || (s = l.previousElementSibling), r.value = s ? s.id.split("_")[0] : "", v.value = R(document, "mousemove", z);
|
27
|
+
}
|
28
|
+
}, x = () => {
|
29
|
+
if (u.value && (u.value = !1, o.value = "", r.value = "", v.value && v.value(), i.value)) {
|
30
|
+
const e = {};
|
31
|
+
for (let t in i.value) {
|
32
|
+
const l = i.value[t], s = l.cell.hasAttribute("can-resize") ? Math.floor(l.cell.offsetWidth) <= d.value ? d.value : l.cell.offsetWidth : l.initialWidth;
|
33
|
+
l.cell.style.width = s + "px", e[t] = s;
|
34
|
+
}
|
35
|
+
m.value = e;
|
36
|
+
}
|
37
|
+
}, y = (e) => {
|
38
|
+
if (!e.nextElementSibling) {
|
39
|
+
const t = e.querySelector(".header-cell_wrapper");
|
40
|
+
if (t)
|
41
|
+
return parseInt(window.getComputedStyle(t).paddingRight);
|
42
|
+
}
|
43
|
+
return 0;
|
44
|
+
}, c = (e, t, l) => {
|
45
|
+
if (!e || !t) {
|
46
|
+
o.value = "", r.value = "";
|
47
|
+
return;
|
48
|
+
}
|
49
|
+
const s = l.movementX, h = s < 0 ? "left" : "right", f = Math.floor(parseInt(e.style.width)) + s, p = Math.floor(parseInt(t.style.width)) - s;
|
50
|
+
if (h === "left")
|
51
|
+
if (f <= d.value || !e.hasAttribute("can-resize")) {
|
52
|
+
const C = e.previousElementSibling;
|
53
|
+
c(C, t, l);
|
54
|
+
} else
|
55
|
+
e.style.width = f + "px", t.style.width = p + "px";
|
56
|
+
else if (p <= d.value + y(t) || !t.hasAttribute("can-resize")) {
|
57
|
+
const C = t.nextElementSibling;
|
58
|
+
c(e, C, l);
|
59
|
+
} else
|
60
|
+
e.style.width = f + "px", t.style.width = p + "px";
|
61
|
+
}, z = (e) => {
|
62
|
+
if (e.preventDefault(), i.value) {
|
63
|
+
const t = i.value[o.value]?.cell, l = i.value[r.value]?.cell;
|
64
|
+
c(t, l, e);
|
65
|
+
}
|
66
|
+
};
|
67
|
+
return {
|
68
|
+
tableHeaderElement: a,
|
69
|
+
calculatedColumnSizing: m,
|
70
|
+
isResizing: u,
|
71
|
+
resizingCellId: o,
|
72
|
+
handleResizeControlMouseDown: g,
|
73
|
+
handleResizeControlMouseUp: x,
|
74
|
+
resetCells: () => {
|
75
|
+
if (i.value)
|
76
|
+
for (let e in i.value)
|
77
|
+
i.value[e].cell.style.width = i.value[e].initialWidth + "px";
|
78
|
+
},
|
79
|
+
setInitialColumnWidths: () => {
|
80
|
+
if (i.value = W(), i.value)
|
81
|
+
for (let e in i.value)
|
82
|
+
i.value[e].cell.style.width || (i.value[e].cell.style.width = i.value[e].initialWidth + "px");
|
83
|
+
},
|
84
|
+
setProvidedCellWidths: w
|
85
|
+
};
|
86
|
+
}
|
87
|
+
export {
|
88
|
+
A as useResizeColumns
|
89
|
+
};
|
package/dist/lib/utils.js
CHANGED
@@ -2564,12 +2564,12 @@ const Pt = (e, t) => {
|
|
2564
2564
|
xt,
|
2565
2565
|
{
|
2566
2566
|
variant: "none",
|
2567
|
-
class: "text-foreground px-0 text-sm font-semibold",
|
2567
|
+
class: "text-foreground px-0 text-sm font-semibold h-full",
|
2568
2568
|
onClick: () => e.toggleSorting(e.getIsSorted() === "asc")
|
2569
2569
|
},
|
2570
2570
|
() => [
|
2571
2571
|
S("div", { class: "whitespace-normal break-normal" }, [t]),
|
2572
|
-
S(r, { class: "ml-
|
2572
|
+
S(r, { class: "ml-1 h-4 w-4 text-muted-foreground shrink-0" })
|
2573
2573
|
]
|
2574
2574
|
);
|
2575
2575
|
};
|
@@ -5,20 +5,20 @@ import "vee-validate";
|
|
5
5
|
import "@vueuse/core";
|
6
6
|
import "./BuiCalendar.vue_vue_type_style_index_0_lang-DK4yUiXC.js";
|
7
7
|
import { BuiInput as C } from "./components/ui/input/index.js";
|
8
|
-
import { _ as N } from "./BuiSelect.vue_vue_type_script_setup_true_lang-
|
8
|
+
import { _ as N } from "./BuiSelect.vue_vue_type_script_setup_true_lang-CFmk7_AN.js";
|
9
9
|
import { _ as w } from "./BuiSelectValue.vue_vue_type_script_setup_true_lang-BNN6bEtZ.js";
|
10
|
-
import { _ as U } from "./BuiSelectTrigger.vue_vue_type_script_setup_true_lang-
|
11
|
-
import { _ as b } from "./BuiSelectContent.vue_vue_type_script_setup_true_lang-
|
12
|
-
import { _ as h } from "./BuiSelectItem.vue_vue_type_script_setup_true_lang-
|
10
|
+
import { _ as U } from "./BuiSelectTrigger.vue_vue_type_script_setup_true_lang-BPAHSkB4.js";
|
11
|
+
import { _ as b } from "./BuiSelectContent.vue_vue_type_script_setup_true_lang-C191NkOr.js";
|
12
|
+
import { _ as h } from "./BuiSelectItem.vue_vue_type_script_setup_true_lang-CLHtKjGO.js";
|
13
13
|
import "@tanstack/vue-table";
|
14
14
|
import "./components/ui/toast/use-toast.js";
|
15
15
|
import "@vee-validate/zod";
|
16
16
|
import "zod";
|
17
17
|
import "./index-BGsblnmA.js";
|
18
|
-
import { _ as q } from "./BuiPaginationFirst.vue_vue_type_script_setup_true_lang-
|
19
|
-
import { _ as E } from "./BuiPaginationLast.vue_vue_type_script_setup_true_lang-
|
20
|
-
import { _ as j } from "./BuiPaginationNext.vue_vue_type_script_setup_true_lang-
|
21
|
-
import { _ as D } from "./BuiPaginationPrev.vue_vue_type_script_setup_true_lang-
|
18
|
+
import { _ as q } from "./BuiPaginationFirst.vue_vue_type_script_setup_true_lang-Cldzpica.js";
|
19
|
+
import { _ as E } from "./BuiPaginationLast.vue_vue_type_script_setup_true_lang-DAMRrI27.js";
|
20
|
+
import { _ as j } from "./BuiPaginationNext.vue_vue_type_script_setup_true_lang-CQ0gejml.js";
|
21
|
+
import { _ as D } from "./BuiPaginationPrev.vue_vue_type_script_setup_true_lang-DuI0BC1U.js";
|
22
22
|
const F = { class: "text-sm text-muted-foreground" }, L = { class: "text-sm text-muted-foreground" }, ie = /* @__PURE__ */ V({
|
23
23
|
__name: "BuiPaginationCommon",
|
24
24
|
props: /* @__PURE__ */ $({
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@soft-stech/bootsman-ui-shadcn",
|
3
|
-
"version": "1.4.
|
3
|
+
"version": "1.4.37",
|
4
4
|
"type": "module",
|
5
5
|
"files": [
|
6
6
|
"dist",
|
@@ -27,6 +27,7 @@
|
|
27
27
|
"@vueuse/integrations": "^13.0.0",
|
28
28
|
"class-variance-authority": "0.7.0",
|
29
29
|
"clsx": "2.1.1",
|
30
|
+
"lodash-es": "^4.17.21",
|
30
31
|
"lucide-vue-next": "0.441.0",
|
31
32
|
"radix-vue": "1.9.8",
|
32
33
|
"sortablejs": "^1",
|
@@ -40,6 +41,7 @@
|
|
40
41
|
"@rushstack/eslint-patch": "1.10.4",
|
41
42
|
"@tsconfig/node18": "18.2.4",
|
42
43
|
"@types/jsdom": "21.1.7",
|
44
|
+
"@types/lodash-es": "^4.17.12",
|
43
45
|
"@types/node": "20.12.14",
|
44
46
|
"@vitejs/plugin-vue": "5.1.3",
|
45
47
|
"@vitest/coverage-v8": "2.1.1",
|
@@ -8,7 +8,6 @@ import type {
|
|
8
8
|
PaginationState,
|
9
9
|
Row,
|
10
10
|
RowSelectionState,
|
11
|
-
ColumnSizingState,
|
12
11
|
VisibilityState,
|
13
12
|
ColumnOrderState
|
14
13
|
} from '@tanstack/vue-table'
|
@@ -69,11 +68,12 @@ const columns: ColumnDef<Task>[] = [
|
|
69
68
|
},
|
70
69
|
{
|
71
70
|
accessorKey: 'title',
|
72
|
-
header: 'Title'
|
71
|
+
header: 'Title',
|
72
|
+
enableResizing: false
|
73
73
|
},
|
74
74
|
{
|
75
75
|
accessorKey: 'status',
|
76
|
-
header: ({ column }) => tableColumnSortCommon(column, '
|
76
|
+
header: ({ column }) => tableColumnSortCommon(column, 'Очень длинный заголовок для статуса'),
|
77
77
|
meta: { title: 'Статус таска' }
|
78
78
|
},
|
79
79
|
{
|
@@ -108,7 +108,7 @@ function updateSelection(val: RowSelectionState) {
|
|
108
108
|
}
|
109
109
|
|
110
110
|
const columnVisibility = ref<VisibilityState>({ hiddenColumn: false })
|
111
|
-
const columnSizing = ref<
|
111
|
+
const columnSizing = ref<Record<string, number>>({ title: 350, status: 200 })
|
112
112
|
const columnOrder = ref<ColumnOrderState>()
|
113
113
|
|
114
114
|
type GroupBy = 'none' | 'status' | 'priority'
|
@@ -190,8 +190,8 @@ function groupName(group: string | number) {
|
|
190
190
|
:data="sortedData"
|
191
191
|
v-model:sorting="sorting"
|
192
192
|
v-model:pagination="pagination"
|
193
|
-
v-model:column-sizing="columnSizing"
|
194
193
|
v-model:column-visibility="columnVisibility"
|
194
|
+
v-model:column-sizing="columnSizing"
|
195
195
|
v-model:column-order="columnOrder"
|
196
196
|
@update:selection="updateSelection"
|
197
197
|
:total-items="totalItems"
|
@@ -11,7 +11,6 @@ import type {
|
|
11
11
|
Column,
|
12
12
|
ColumnDef,
|
13
13
|
ColumnOrderState,
|
14
|
-
ColumnSizingState,
|
15
14
|
PaginationState,
|
16
15
|
Row,
|
17
16
|
RowSelectionState,
|
@@ -25,7 +24,7 @@ import {
|
|
25
24
|
getSortedRowModel,
|
26
25
|
useVueTable
|
27
26
|
} from '@tanstack/vue-table'
|
28
|
-
import { computed, watchEffect, ref, watch } from 'vue'
|
27
|
+
import { computed, watchEffect, ref, watch, onMounted, onBeforeMount, onUnmounted } from 'vue'
|
29
28
|
import {
|
30
29
|
BuiTable,
|
31
30
|
BuiTableBody,
|
@@ -48,6 +47,9 @@ import { BuiPopover, BuiPopoverContent, BuiPopoverTrigger } from '@/components/u
|
|
48
47
|
import { BuiScrollArea } from '@/components/ui/scroll-area'
|
49
48
|
import { BuiButton } from '@/components/ui/button'
|
50
49
|
import { Settings2Icon } from 'lucide-vue-next'
|
50
|
+
import { useElementSize, useEventListener } from '@vueuse/core'
|
51
|
+
import { useResizeColumns } from '@/lib/useResizeColumns'
|
52
|
+
import { isEqual } from 'lodash-es'
|
51
53
|
|
52
54
|
const NO_GROUP_KEY = '#UNDEFINED#'
|
53
55
|
|
@@ -66,6 +68,7 @@ const props = withDefaults(
|
|
66
68
|
renderSubComponent?: (row: Row<TData>) => (() => any) | undefined
|
67
69
|
freezeHeader?: boolean
|
68
70
|
enableColumnListControl?: boolean
|
71
|
+
enableColumnResizing?: boolean
|
69
72
|
columnSearchPlaceholder?: string
|
70
73
|
columnSearchNotFound?: string
|
71
74
|
columnResetVisibility?: string
|
@@ -83,7 +86,8 @@ const props = withDefaults(
|
|
83
86
|
totalItems: 0,
|
84
87
|
columnSearchPlaceholder: 'Column name',
|
85
88
|
columnSearchNotFound: 'Not found',
|
86
|
-
columnResetVisibility: 'Reset column visibility'
|
89
|
+
columnResetVisibility: 'Reset column visibility',
|
90
|
+
enableColumnResizing: true
|
87
91
|
}
|
88
92
|
)
|
89
93
|
|
@@ -91,8 +95,8 @@ const sorting = defineModel<SortingState>('sorting')
|
|
91
95
|
const pagination = defineModel<PaginationState>('pagination')
|
92
96
|
const rowSelection = defineModel<RowSelectionState>('selection')
|
93
97
|
const columnVisibility = defineModel<VisibilityState>('columnVisibility')
|
94
|
-
const columnSizing = defineModel<ColumnSizingState>('columnSizing')
|
95
98
|
const columnOrder = defineModel<ColumnOrderState>('columnOrder')
|
99
|
+
const columnSizing = defineModel<Record<string, number>>('columnSizing')
|
96
100
|
const computedItems = computed(() =>
|
97
101
|
props.manualPagination ? props.totalItems : props.data.length
|
98
102
|
)
|
@@ -127,18 +131,12 @@ const table = useVueTable({
|
|
127
131
|
onColumnVisibilityChange: (updaterOrValue) => {
|
128
132
|
valueUpdater(updaterOrValue, columnVisibility)
|
129
133
|
},
|
130
|
-
onColumnSizingChange: (updaterOrValue) => {
|
131
|
-
valueUpdater(updaterOrValue, columnSizing)
|
132
|
-
},
|
133
134
|
onColumnOrderChange: (updaterOrValue) => {
|
134
135
|
valueUpdater(updaterOrValue, columnOrder)
|
135
136
|
},
|
136
137
|
autoResetPageIndex: false,
|
137
138
|
manualPagination: props.manualPagination, // set to false to enable client-side pagination
|
138
139
|
manualSorting: props.manualSorting,
|
139
|
-
enableColumnResizing: true,
|
140
|
-
columnResizeMode: 'onChange',
|
141
|
-
columnResizeDirection: 'ltr',
|
142
140
|
state: {
|
143
141
|
get sorting() {
|
144
142
|
return sorting.value
|
@@ -152,9 +150,6 @@ const table = useVueTable({
|
|
152
150
|
get columnVisibility() {
|
153
151
|
return columnVisibility.value
|
154
152
|
},
|
155
|
-
get columnSizing() {
|
156
|
-
return columnSizing.value
|
157
|
-
},
|
158
153
|
get columnOrder() {
|
159
154
|
return columnOrder.value
|
160
155
|
}
|
@@ -237,6 +232,42 @@ const tableHeaders = computed(() =>
|
|
237
232
|
watch(columnsListIds, () => {
|
238
233
|
table.setColumnOrder(columnsListIds.value)
|
239
234
|
})
|
235
|
+
|
236
|
+
const tableHeaderRef = ref<InstanceType<typeof BuiTableHeader> | null>(null)
|
237
|
+
const { height } = useElementSize(tableHeaderRef)
|
238
|
+
|
239
|
+
const {
|
240
|
+
tableHeaderElement,
|
241
|
+
calculatedColumnSizing,
|
242
|
+
isResizing,
|
243
|
+
resizingCellId,
|
244
|
+
resetCells,
|
245
|
+
handleResizeControlMouseDown,
|
246
|
+
handleResizeControlMouseUp,
|
247
|
+
setInitialColumnWidths,
|
248
|
+
setProvidedCellWidths
|
249
|
+
} = useResizeColumns()
|
250
|
+
|
251
|
+
onBeforeMount(() => {
|
252
|
+
calculatedColumnSizing.value = columnSizing.value
|
253
|
+
})
|
254
|
+
|
255
|
+
onMounted(() => {
|
256
|
+
if (tableHeaderRef.value) {
|
257
|
+
tableHeaderElement.value = tableHeaderRef.value
|
258
|
+
|
259
|
+
setProvidedCellWidths(columnSizing.value)
|
260
|
+
setInitialColumnWidths()
|
261
|
+
}
|
262
|
+
})
|
263
|
+
|
264
|
+
watchEffect(() => {
|
265
|
+
if (!isEqual(calculatedColumnSizing.value, columnSizing.value)) {
|
266
|
+
columnSizing.value = calculatedColumnSizing.value
|
267
|
+
}
|
268
|
+
})
|
269
|
+
|
270
|
+
useEventListener(document, 'mouseup', handleResizeControlMouseUp)
|
240
271
|
</script>
|
241
272
|
|
242
273
|
<template>
|
@@ -247,7 +278,10 @@ watch(columnsListIds, () => {
|
|
247
278
|
<template v-if="enableColumnListControl" #columnVisibility>
|
248
279
|
<BuiPopover v-model:open="open">
|
249
280
|
<BuiPopoverTrigger as-child>
|
250
|
-
<div
|
281
|
+
<div
|
282
|
+
class="absolute right-0 top-0 z-10 bg-background"
|
283
|
+
:style="{ height: `${height.toFixed(1)}px` }"
|
284
|
+
>
|
251
285
|
<div
|
252
286
|
class="flex h-full items-center border-b border-l border-border/[0.16] bg-foreground/[0.04] px-1"
|
253
287
|
>
|
@@ -265,7 +299,9 @@ watch(columnsListIds, () => {
|
|
265
299
|
<BuiCommandInput
|
266
300
|
:placeholder="columnSearchPlaceholder"
|
267
301
|
v-model="searchColumn"
|
268
|
-
@input="
|
302
|
+
@input="
|
303
|
+
(event: InputEvent) => (searchColumn = (event.target as HTMLInputElement)?.value)
|
304
|
+
"
|
269
305
|
/>
|
270
306
|
<BuiCommandList>
|
271
307
|
<BuiScrollArea class="h-[300px]">
|
@@ -286,12 +322,16 @@ watch(columnsListIds, () => {
|
|
286
322
|
</BuiPopoverContent>
|
287
323
|
</BuiPopover>
|
288
324
|
</template>
|
289
|
-
<BuiTableHeader v-if="tableHeaders" :freeze-header="props.freezeHeader">
|
325
|
+
<BuiTableHeader v-if="tableHeaders" :freeze-header="props.freezeHeader" ref="tableHeaderRef">
|
290
326
|
<BuiTableHead
|
291
|
-
v-for="header in tableHeaders"
|
327
|
+
v-for="(header, index) in tableHeaders"
|
292
328
|
:key="header.id"
|
293
|
-
:
|
329
|
+
:id="`${header.id}_cell`"
|
330
|
+
:style="{
|
331
|
+
...getPinningStyle(header.column)
|
332
|
+
}"
|
294
333
|
:freeze-header="props.freezeHeader"
|
334
|
+
:can-resize="header.column.getCanResize() ? true : undefined"
|
295
335
|
>
|
296
336
|
<FlexRender
|
297
337
|
v-if="!header.isPlaceholder"
|
@@ -299,12 +339,15 @@ watch(columnsListIds, () => {
|
|
299
339
|
:props="header.getContext()"
|
300
340
|
/>
|
301
341
|
<div
|
302
|
-
|
303
|
-
|
342
|
+
v-if="
|
343
|
+
enableColumnResizing && index < tableHeaders.length - 1 && header.column.getCanResize()
|
344
|
+
"
|
345
|
+
@dblclick="resetCells"
|
346
|
+
@mousedown="() => handleResizeControlMouseDown(header.id, props.enableColumnResizing)"
|
304
347
|
:className="
|
305
348
|
cn(
|
306
349
|
'absolute top-0 right-0 h-full w-1 bg-muted-foreground opacity-0 cursor-col-resize select-none touch-none hover:opacity-50',
|
307
|
-
header.
|
350
|
+
isResizing && resizingCellId === header.id ? 'bg-primary opacity-50' : ''
|
308
351
|
)
|
309
352
|
"
|
310
353
|
/>
|
@@ -11,7 +11,7 @@ const props = defineProps<{
|
|
11
11
|
<th
|
12
12
|
:class="
|
13
13
|
cn(
|
14
|
-
'h-10 text-left align-middle text-foreground [&:has([role=checkbox])]:pr-0 ',
|
14
|
+
'relative h-10 text-left align-middle text-foreground [&:has([role=checkbox])]:pr-0 ',
|
15
15
|
props.class,
|
16
16
|
props.freezeHeader ? 'bg-background p-0' : 'bg-foreground/[0.04] p-0'
|
17
17
|
)
|
@@ -19,10 +19,14 @@ const props = defineProps<{
|
|
19
19
|
>
|
20
20
|
<div
|
21
21
|
class="flex h-full items-center !border-b !border-border/[0.16]"
|
22
|
-
:class="{
|
22
|
+
:class="{
|
23
|
+
'bg-foreground/[0.04]': props.freezeHeader,
|
24
|
+
'header-cell_wrapper': !props.freezeHeader
|
25
|
+
}"
|
23
26
|
>
|
24
27
|
<div
|
25
|
-
class="flex h-
|
28
|
+
class="flex h-full w-full items-center whitespace-nowrap border-r border-border/[0.16] px-2 text-sm font-semibold"
|
29
|
+
:class="{ 'header-cell_wrapper': props.freezeHeader }"
|
26
30
|
>
|
27
31
|
<slot />
|
28
32
|
</div>
|
@@ -1,5 +1,10 @@
|
|
1
1
|
<script setup lang="ts">
|
2
2
|
import { cn } from '@/lib/utils'
|
3
|
+
import { ref } from 'vue'
|
4
|
+
|
5
|
+
const headRef = ref<HTMLElement | null>(null)
|
6
|
+
|
7
|
+
defineExpose({ headRef })
|
3
8
|
|
4
9
|
const props = defineProps<{
|
5
10
|
class?: string
|
@@ -9,6 +14,7 @@ const props = defineProps<{
|
|
9
14
|
|
10
15
|
<template>
|
11
16
|
<thead
|
17
|
+
ref="headRef"
|
12
18
|
:class="
|
13
19
|
cn(
|
14
20
|
'[&_tr]:border-border/[0.16]',
|
@@ -0,0 +1,202 @@
|
|
1
|
+
import { ref } from 'vue'
|
2
|
+
import BuiTableHeader from '@/components/ui/table/BuiTableHeader.vue'
|
3
|
+
import { useEventListener } from '@vueuse/core'
|
4
|
+
|
5
|
+
export function useResizeColumns() {
|
6
|
+
const isResizing = ref<boolean>(false)
|
7
|
+
const resizingCellId = ref<string>('')
|
8
|
+
const neighborCellId = ref<string>('')
|
9
|
+
const cells = ref<
|
10
|
+
| {
|
11
|
+
[key: string]: { cell: HTMLTableCellElement; initialWidth: number }
|
12
|
+
}
|
13
|
+
| undefined
|
14
|
+
>(undefined)
|
15
|
+
const minCellWidth = ref<number>(90)
|
16
|
+
const calculatedColumnSizing = ref<Record<string, number> | undefined>(undefined)
|
17
|
+
const tableHeaderElement = ref<InstanceType<typeof BuiTableHeader> | null>(null)
|
18
|
+
const unregisterMouseMove = ref<Function | undefined>(undefined)
|
19
|
+
|
20
|
+
const setProvidedCellWidths = (columnSizing: Record<string, number> | undefined) => {
|
21
|
+
if (tableHeaderElement.value && tableHeaderElement.value.headRef) {
|
22
|
+
const headerCells = [...tableHeaderElement.value.headRef.querySelectorAll('th')]
|
23
|
+
|
24
|
+
//установить заданные как модель изначальные размеры
|
25
|
+
headerCells.forEach((cell) => {
|
26
|
+
const cellId = cell.id.split('_')[0]
|
27
|
+
|
28
|
+
if (columnSizing && columnSizing[cellId]) {
|
29
|
+
cell.style.width = columnSizing[cellId] + 'px'
|
30
|
+
}
|
31
|
+
})
|
32
|
+
}
|
33
|
+
}
|
34
|
+
|
35
|
+
const getCells = () => {
|
36
|
+
if (tableHeaderElement.value && tableHeaderElement.value.headRef) {
|
37
|
+
const headerCells = [...tableHeaderElement.value.headRef.querySelectorAll('th')]
|
38
|
+
const headerCellsWidths: {
|
39
|
+
[key: string]: { cell: HTMLTableCellElement; initialWidth: number }
|
40
|
+
} = headerCells.reduce((acc, cell) => {
|
41
|
+
const cellId = cell.id.split('_')[0]
|
42
|
+
return {
|
43
|
+
...acc,
|
44
|
+
[cellId]: {
|
45
|
+
cell: cell,
|
46
|
+
initialWidth: cell.offsetWidth
|
47
|
+
}
|
48
|
+
}
|
49
|
+
}, {})
|
50
|
+
|
51
|
+
return headerCellsWidths
|
52
|
+
}
|
53
|
+
|
54
|
+
return undefined
|
55
|
+
}
|
56
|
+
|
57
|
+
const handleResizeControlMouseDown = (cellId: string, enableColumnResizing: boolean) => {
|
58
|
+
if (!enableColumnResizing) return
|
59
|
+
|
60
|
+
isResizing.value = true
|
61
|
+
resizingCellId.value = cellId
|
62
|
+
|
63
|
+
if (cells.value) {
|
64
|
+
const resizingCell = cells.value[cellId].cell
|
65
|
+
let neighborCell = resizingCell.nextElementSibling as HTMLTableCellElement
|
66
|
+
|
67
|
+
if (!neighborCell) {
|
68
|
+
neighborCell = resizingCell.previousElementSibling as HTMLTableCellElement
|
69
|
+
}
|
70
|
+
|
71
|
+
neighborCellId.value = neighborCell ? neighborCell.id.split('_')[0] : ''
|
72
|
+
|
73
|
+
unregisterMouseMove.value = useEventListener(document, 'mousemove', handleCellResize)
|
74
|
+
}
|
75
|
+
}
|
76
|
+
|
77
|
+
const handleResizeControlMouseUp = () => {
|
78
|
+
if (!isResizing.value) return
|
79
|
+
|
80
|
+
isResizing.value = false
|
81
|
+
resizingCellId.value = ''
|
82
|
+
neighborCellId.value = ''
|
83
|
+
|
84
|
+
if (unregisterMouseMove.value) {
|
85
|
+
unregisterMouseMove.value()
|
86
|
+
}
|
87
|
+
|
88
|
+
if (cells.value) {
|
89
|
+
const updatedColumnSizingValue: Record<string, number> = {}
|
90
|
+
|
91
|
+
for (let cell in cells.value) {
|
92
|
+
const currentCell = cells.value[cell]
|
93
|
+
const newWidth = !currentCell.cell.hasAttribute('can-resize')
|
94
|
+
? currentCell.initialWidth
|
95
|
+
: Math.floor(currentCell.cell.offsetWidth) <= minCellWidth.value
|
96
|
+
? minCellWidth.value
|
97
|
+
: currentCell.cell.offsetWidth
|
98
|
+
|
99
|
+
currentCell.cell.style.width = newWidth + 'px'
|
100
|
+
updatedColumnSizingValue[cell] = newWidth
|
101
|
+
}
|
102
|
+
|
103
|
+
calculatedColumnSizing.value = updatedColumnSizingValue
|
104
|
+
}
|
105
|
+
}
|
106
|
+
const getLastCellOnTheRightExtraSpace = (cell: HTMLTableCellElement) => {
|
107
|
+
if (!cell.nextElementSibling) {
|
108
|
+
const cellWrapperElement = cell.querySelector('.header-cell_wrapper') as HTMLElement | null
|
109
|
+
|
110
|
+
if (cellWrapperElement) {
|
111
|
+
return parseInt(window.getComputedStyle(cellWrapperElement).paddingRight)
|
112
|
+
}
|
113
|
+
}
|
114
|
+
|
115
|
+
return 0
|
116
|
+
}
|
117
|
+
|
118
|
+
const resizeCells = (
|
119
|
+
cell: HTMLTableCellElement | null,
|
120
|
+
neighborCell: HTMLTableCellElement | null,
|
121
|
+
e: MouseEvent
|
122
|
+
) => {
|
123
|
+
if (!cell || !neighborCell) {
|
124
|
+
resizingCellId.value = ''
|
125
|
+
neighborCellId.value = ''
|
126
|
+
|
127
|
+
return
|
128
|
+
}
|
129
|
+
|
130
|
+
const movementX = e.movementX
|
131
|
+
const direction: 'left' | 'right' = movementX < 0 ? 'left' : 'right'
|
132
|
+
const newCellWidth = Math.floor(parseInt(cell.style.width)) + movementX
|
133
|
+
const newNeighborCellWidth = Math.floor(parseInt(neighborCell.style.width)) - movementX
|
134
|
+
|
135
|
+
if (direction === 'left') {
|
136
|
+
if (newCellWidth <= minCellWidth.value || !cell.hasAttribute('can-resize')) {
|
137
|
+
const nextCell = cell.previousElementSibling as HTMLTableCellElement | null
|
138
|
+
|
139
|
+
resizeCells(nextCell, neighborCell, e)
|
140
|
+
} else {
|
141
|
+
cell.style.width = newCellWidth + 'px'
|
142
|
+
neighborCell.style.width = newNeighborCellWidth + 'px'
|
143
|
+
}
|
144
|
+
} else {
|
145
|
+
if (
|
146
|
+
newNeighborCellWidth <=
|
147
|
+
minCellWidth.value + getLastCellOnTheRightExtraSpace(neighborCell) ||
|
148
|
+
!neighborCell.hasAttribute('can-resize')
|
149
|
+
) {
|
150
|
+
const nextNeighborCell = neighborCell.nextElementSibling as HTMLTableCellElement | null
|
151
|
+
|
152
|
+
resizeCells(cell, nextNeighborCell, e)
|
153
|
+
} else {
|
154
|
+
cell.style.width = newCellWidth + 'px'
|
155
|
+
neighborCell.style.width = newNeighborCellWidth + 'px'
|
156
|
+
}
|
157
|
+
}
|
158
|
+
}
|
159
|
+
|
160
|
+
const handleCellResize = (e: MouseEvent) => {
|
161
|
+
e.preventDefault()
|
162
|
+
|
163
|
+
if (cells.value) {
|
164
|
+
const resizingCell = cells.value[resizingCellId.value]?.cell
|
165
|
+
const neighborCell = cells.value[neighborCellId.value]?.cell
|
166
|
+
|
167
|
+
resizeCells(resizingCell, neighborCell, e)
|
168
|
+
}
|
169
|
+
}
|
170
|
+
|
171
|
+
const resetCells = () => {
|
172
|
+
if (cells.value) {
|
173
|
+
for (let cell in cells.value) {
|
174
|
+
cells.value[cell].cell.style.width = cells.value[cell].initialWidth + 'px'
|
175
|
+
}
|
176
|
+
}
|
177
|
+
}
|
178
|
+
|
179
|
+
const setInitialColumnWidths = () => {
|
180
|
+
cells.value = getCells()
|
181
|
+
|
182
|
+
if (cells.value) {
|
183
|
+
for (let cell in cells.value) {
|
184
|
+
if (!cells.value[cell].cell.style.width) {
|
185
|
+
cells.value[cell].cell.style.width = cells.value[cell].initialWidth + 'px'
|
186
|
+
}
|
187
|
+
}
|
188
|
+
}
|
189
|
+
}
|
190
|
+
|
191
|
+
return {
|
192
|
+
tableHeaderElement,
|
193
|
+
calculatedColumnSizing,
|
194
|
+
isResizing,
|
195
|
+
resizingCellId,
|
196
|
+
handleResizeControlMouseDown,
|
197
|
+
handleResizeControlMouseUp,
|
198
|
+
resetCells,
|
199
|
+
setInitialColumnWidths,
|
200
|
+
setProvidedCellWidths
|
201
|
+
}
|
202
|
+
}
|
package/src/lib/utils.ts
CHANGED
@@ -30,12 +30,12 @@ export const tableColumnSortCommon = (column: Column<any>, name: string) => {
|
|
30
30
|
BuiButton,
|
31
31
|
{
|
32
32
|
variant: 'none',
|
33
|
-
class: 'text-foreground px-0 text-sm font-semibold',
|
33
|
+
class: 'text-foreground px-0 text-sm font-semibold h-full',
|
34
34
|
onClick: () => column.toggleSorting(column.getIsSorted() === 'asc')
|
35
35
|
},
|
36
36
|
() => [
|
37
37
|
h('div', { class: 'whitespace-normal break-normal' }, [name]),
|
38
|
-
h(icon, { class: 'ml-
|
38
|
+
h(icon, { class: 'ml-1 h-4 w-4 text-muted-foreground shrink-0' })
|
39
39
|
]
|
40
40
|
)
|
41
41
|
}
|