@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.
Files changed (303) hide show
  1. package/dist/{BuiAccordionContent.vue_vue_type_script_setup_true_lang-DCiVOSEG.js → BuiAccordionContent.vue_vue_type_script_setup_true_lang-Bg2UJYf9.js} +1 -1
  2. 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
  3. package/dist/{BuiAccordionTrigger.vue_vue_type_script_setup_true_lang-BY3DjbUd.js → BuiAccordionTrigger.vue_vue_type_script_setup_true_lang-aFFJ3tuo.js} +2 -2
  4. package/dist/{BuiAdvancedAccordionTrigger.vue_vue_type_script_setup_true_lang-B9RTJBaS.js → BuiAdvancedAccordionTrigger.vue_vue_type_script_setup_true_lang-BG9umQaz.js} +2 -2
  5. package/dist/{BuiAlertDescription.vue_vue_type_script_setup_true_lang-CNA6Hqd_.js → BuiAlertDescription.vue_vue_type_script_setup_true_lang-D2aRMrjC.js} +1 -1
  6. package/dist/{BuiAlertDialogAction.vue_vue_type_script_setup_true_lang-BLdAXAZ8.js → BuiAlertDialogAction.vue_vue_type_script_setup_true_lang-DBbjw0lw.js} +1 -1
  7. package/dist/{BuiAlertDialogCancel.vue_vue_type_script_setup_true_lang-3Qy5WdDY.js → BuiAlertDialogCancel.vue_vue_type_script_setup_true_lang-DE9DbnHa.js} +1 -1
  8. 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
  9. package/dist/{BuiAlertDialogDescription.vue_vue_type_script_setup_true_lang-Bcv9P4hK.js → BuiAlertDialogDescription.vue_vue_type_script_setup_true_lang-CxE38rlt.js} +1 -1
  10. 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
  11. package/dist/{BuiAlertDialogHeader.vue_vue_type_script_setup_true_lang-CcAfgtej.js → BuiAlertDialogHeader.vue_vue_type_script_setup_true_lang-fI7StmUp.js} +1 -1
  12. 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
  13. package/dist/{BuiAlertTitle.vue_vue_type_script_setup_true_lang-DAUjTcCq.js → BuiAlertTitle.vue_vue_type_script_setup_true_lang-DoUWBb9E.js} +1 -1
  14. package/dist/{BuiAutoForm.vue_vue_type_script_setup_true_lang-CR29Ijgr.js → BuiAutoForm.vue_vue_type_script_setup_true_lang-ndXR7BaI.js} +1 -1
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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
  22. package/dist/{BuiAutoFormFieldNumber.vue_vue_type_script_setup_true_lang-BNh80niQ.js → BuiAutoFormFieldNumber.vue_vue_type_script_setup_true_lang-Db9bTqM3.js} +2 -2
  23. package/dist/{BuiAutoFormFieldObject.vue_vue_type_script_setup_true_lang-jcyRGscR.js → BuiAutoFormFieldObject.vue_vue_type_script_setup_true_lang-DtIuWqJR.js} +6 -6
  24. package/dist/{BuiAutoFormLabel.vue_vue_type_script_setup_true_lang-Dy3NHHRP.js → BuiAutoFormLabel.vue_vue_type_script_setup_true_lang-NhOJHYJA.js} +1 -1
  25. package/dist/{BuiCard.vue_vue_type_script_setup_true_lang-si8NLO0N.js → BuiCard.vue_vue_type_script_setup_true_lang-CkC8lrvx.js} +1 -1
  26. 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
  27. package/dist/{BuiCardDescription.vue_vue_type_script_setup_true_lang-CrWrAyyK.js → BuiCardDescription.vue_vue_type_script_setup_true_lang-wKx4DSsC.js} +1 -1
  28. package/dist/{BuiCardFooter.vue_vue_type_script_setup_true_lang-BUcRZITy.js → BuiCardFooter.vue_vue_type_script_setup_true_lang-84LmO9Ee.js} +1 -1
  29. 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
  30. package/dist/{BuiCardTitle.vue_vue_type_script_setup_true_lang-B7AHN7C6.js → BuiCardTitle.vue_vue_type_script_setup_true_lang-DgFhKXA_.js} +1 -1
  31. package/dist/{BuiCheckbox.vue_vue_type_script_setup_true_lang-Cf6LNc8s.js → BuiCheckbox.vue_vue_type_script_setup_true_lang-_VPumFYO.js} +2 -2
  32. package/dist/{BuiCommand.vue_vue_type_script_setup_true_lang-CGmy09vy.js → BuiCommand.vue_vue_type_script_setup_true_lang-C8UkqTiX.js} +1 -1
  33. package/dist/{BuiCommandDialog.vue_vue_type_script_setup_true_lang-CwtRVyVt.js → BuiCommandDialog.vue_vue_type_script_setup_true_lang-BOewkM56.js} +2 -2
  34. package/dist/{BuiCommandEmpty.vue_vue_type_script_setup_true_lang-CDb5wrs6.js → BuiCommandEmpty.vue_vue_type_script_setup_true_lang-CSwCtbz1.js} +1 -1
  35. package/dist/{BuiCommandGroup.vue_vue_type_script_setup_true_lang-_7UZpUo4.js → BuiCommandGroup.vue_vue_type_script_setup_true_lang-BGdSDDso.js} +1 -1
  36. package/dist/{BuiCommandInput.vue_vue_type_script_setup_true_lang-DrFTiPJ0.js → BuiCommandInput.vue_vue_type_script_setup_true_lang-3c9TjWnY.js} +1 -1
  37. package/dist/{BuiCommandItem.vue_vue_type_script_setup_true_lang-KKt0oedQ.js → BuiCommandItem.vue_vue_type_script_setup_true_lang-BdkpK55i.js} +1 -1
  38. package/dist/{BuiCommandList.vue_vue_type_script_setup_true_lang-CYs3s89x.js → BuiCommandList.vue_vue_type_script_setup_true_lang-C77MBwCW.js} +1 -1
  39. 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
  40. 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
  41. 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
  42. package/dist/{BuiContextMenuContent.vue_vue_type_script_setup_true_lang-9FgwL93A.js → BuiContextMenuContent.vue_vue_type_script_setup_true_lang-BNauHWov.js} +1 -1
  43. package/dist/{BuiContextMenuItem.vue_vue_type_script_setup_true_lang--I1Hb1ON.js → BuiContextMenuItem.vue_vue_type_script_setup_true_lang-DXWkF81C.js} +1 -1
  44. package/dist/{BuiContextMenuLabel.vue_vue_type_script_setup_true_lang-DH6f7cIJ.js → BuiContextMenuLabel.vue_vue_type_script_setup_true_lang-B6GiPS1D.js} +1 -1
  45. package/dist/{BuiContextMenuRadioItem.vue_vue_type_script_setup_true_lang-DSk9YxfP.js → BuiContextMenuRadioItem.vue_vue_type_script_setup_true_lang-D5sqVpvN.js} +2 -2
  46. 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
  47. package/dist/{BuiContextMenuShortcut.vue_vue_type_script_setup_true_lang-CrBwUUzZ.js → BuiContextMenuShortcut.vue_vue_type_script_setup_true_lang-yH0VcLKG.js} +1 -1
  48. package/dist/{BuiContextMenuSubContent.vue_vue_type_script_setup_true_lang-DXxqIszE.js → BuiContextMenuSubContent.vue_vue_type_script_setup_true_lang-B8VKgMrH.js} +1 -1
  49. 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
  50. package/dist/{BuiDataTableColumnList.vue_vue_type_script_setup_true_lang-BQQrZqqV.js → BuiDataTableColumnList.vue_vue_type_script_setup_true_lang-Dof0WsTF.js} +2 -2
  51. package/dist/{BuiDialogContent.vue_vue_type_script_setup_true_lang-B5Sw6gTE.js → BuiDialogContent.vue_vue_type_script_setup_true_lang-jRVT38WW.js} +2 -2
  52. package/dist/{BuiDialogDescription.vue_vue_type_script_setup_true_lang-DBDeKtQn.js → BuiDialogDescription.vue_vue_type_script_setup_true_lang-NEx7XT06.js} +1 -1
  53. package/dist/{BuiDialogFooter.vue_vue_type_script_setup_true_lang-awHabrax.js → BuiDialogFooter.vue_vue_type_script_setup_true_lang-DxEV03yz.js} +1 -1
  54. package/dist/{BuiDialogHeader.vue_vue_type_script_setup_true_lang-CBaDgz8m.js → BuiDialogHeader.vue_vue_type_script_setup_true_lang-BHkrgEzv.js} +1 -1
  55. package/dist/{BuiDialogTitle.vue_vue_type_script_setup_true_lang-JjARAb1H.js → BuiDialogTitle.vue_vue_type_script_setup_true_lang-UrHtBmeC.js} +1 -1
  56. 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
  57. package/dist/{BuiDropdownMenuContent.vue_vue_type_script_setup_true_lang-CydSDN8W.js → BuiDropdownMenuContent.vue_vue_type_script_setup_true_lang-CQF24scG.js} +1 -1
  58. package/dist/{BuiDropdownMenuItem.vue_vue_type_script_setup_true_lang-BwerFDRg.js → BuiDropdownMenuItem.vue_vue_type_script_setup_true_lang-DSiuZJTA.js} +1 -1
  59. 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
  60. package/dist/{BuiDropdownMenuRadioItem.vue_vue_type_script_setup_true_lang-DPXF7kYv.js → BuiDropdownMenuRadioItem.vue_vue_type_script_setup_true_lang-C9pplVtc.js} +2 -2
  61. package/dist/{BuiDropdownMenuShortcut.vue_vue_type_script_setup_true_lang-CyeDBIAi.js → BuiDropdownMenuShortcut.vue_vue_type_script_setup_true_lang-suBUkaYq.js} +1 -1
  62. 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
  63. package/dist/{BuiDropdownMenuSubTrigger.vue_vue_type_script_setup_true_lang-BpXV01N4.js → BuiDropdownMenuSubTrigger.vue_vue_type_script_setup_true_lang-CiUQhfg1.js} +2 -2
  64. package/dist/{BuiHoverCardContent.vue_vue_type_script_setup_true_lang-SnFnIS59.js → BuiHoverCardContent.vue_vue_type_script_setup_true_lang-Cg24xBED.js} +1 -1
  65. package/dist/{BuiLabel.vue_vue_type_script_setup_true_lang-DAat9ciZ.js → BuiLabel.vue_vue_type_script_setup_true_lang-Sma4vbSS.js} +1 -1
  66. 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
  67. package/dist/{BuiPaginationFirst.vue_vue_type_script_setup_true_lang-DdBOGHt6.js → BuiPaginationFirst.vue_vue_type_script_setup_true_lang-Cldzpica.js} +1 -1
  68. package/dist/{BuiPaginationLast.vue_vue_type_script_setup_true_lang-CUk7ZCnP.js → BuiPaginationLast.vue_vue_type_script_setup_true_lang-DAMRrI27.js} +1 -1
  69. 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
  70. package/dist/{BuiPaginationPrev.vue_vue_type_script_setup_true_lang-BtRpcXGP.js → BuiPaginationPrev.vue_vue_type_script_setup_true_lang-DuI0BC1U.js} +2 -2
  71. package/dist/{BuiPopoverContent.vue_vue_type_script_setup_true_lang-YZbWOBbY.js → BuiPopoverContent.vue_vue_type_script_setup_true_lang-CEFHTgEu.js} +1 -1
  72. package/dist/{BuiRadioGroup.vue_vue_type_script_setup_true_lang-CmhK6evO.js → BuiRadioGroup.vue_vue_type_script_setup_true_lang-CynC3r6y.js} +1 -1
  73. package/dist/{BuiRadioGroupItem.vue_vue_type_script_setup_true_lang-BR8kwcIm.js → BuiRadioGroupItem.vue_vue_type_script_setup_true_lang-CpV7MqXa.js} +2 -2
  74. package/dist/{BuiScrollArea.vue_vue_type_script_setup_true_lang-Cp3RbJG6.js → BuiScrollArea.vue_vue_type_script_setup_true_lang-BNcd3g6x.js} +2 -2
  75. package/dist/{BuiScrollBar.vue_vue_type_script_setup_true_lang-k4UBsgd7.js → BuiScrollBar.vue_vue_type_script_setup_true_lang-DQzqNxV2.js} +1 -1
  76. 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
  77. package/dist/{BuiSelectContent.vue_vue_type_script_setup_true_lang-BCXA7689.js → BuiSelectContent.vue_vue_type_script_setup_true_lang-C191NkOr.js} +1 -1
  78. 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
  79. package/dist/{BuiSelectItem.vue_vue_type_script_setup_true_lang-B1Xy1bfi.js → BuiSelectItem.vue_vue_type_script_setup_true_lang-CLHtKjGO.js} +2 -2
  80. package/dist/{BuiSelectLabel.vue_vue_type_script_setup_true_lang-BFy9JSFe.js → BuiSelectLabel.vue_vue_type_script_setup_true_lang-CbZI5whs.js} +1 -1
  81. 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
  82. package/dist/{BuiSelectTrigger.vue_vue_type_script_setup_true_lang-bER8QXmg.js → BuiSelectTrigger.vue_vue_type_script_setup_true_lang-BPAHSkB4.js} +2 -2
  83. 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
  84. 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
  85. 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
  86. package/dist/{BuiSheetHeader.vue_vue_type_script_setup_true_lang-CtcRbBTs.js → BuiSheetHeader.vue_vue_type_script_setup_true_lang-BV7JBZ6e.js} +1 -1
  87. package/dist/{BuiSheetTitle.vue_vue_type_script_setup_true_lang-BVBXWrNc.js → BuiSheetTitle.vue_vue_type_script_setup_true_lang-DWRSvHfG.js} +1 -1
  88. package/dist/{BuiSlider.vue_vue_type_script_setup_true_lang-COfmj5l0.js → BuiSlider.vue_vue_type_script_setup_true_lang-DueApe2a.js} +1 -1
  89. package/dist/{BuiStepper.vue_vue_type_script_setup_true_lang-qEbJFXrj.js → BuiStepper.vue_vue_type_script_setup_true_lang-CZ1jkRxs.js} +1 -1
  90. 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
  91. 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
  92. package/dist/{BuiStepperItem.vue_vue_type_script_setup_true_lang-DGvfm0mP.js → BuiStepperItem.vue_vue_type_script_setup_true_lang-Br89cNz8.js} +1 -1
  93. 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
  94. 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
  95. 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
  96. package/dist/{BuiSwitch.vue_vue_type_script_setup_true_lang-CMYlfld7.js → BuiSwitch.vue_vue_type_script_setup_true_lang-C0UTTrRZ.js} +1 -1
  97. package/dist/{BuiTable.vue_vue_type_script_setup_true_lang-DMK8B7es.js → BuiTable.vue_vue_type_script_setup_true_lang-Z45MrzQA.js} +3 -3
  98. 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
  99. package/dist/{BuiTableCaption.vue_vue_type_script_setup_true_lang-jp5eofCd.js → BuiTableCaption.vue_vue_type_script_setup_true_lang-C9PP4Fcx.js} +1 -1
  100. package/dist/{BuiTableCell.vue_vue_type_script_setup_true_lang-GS1yOmsT.js → BuiTableCell.vue_vue_type_script_setup_true_lang-BMPBnL81.js} +1 -1
  101. package/dist/{BuiTableEmpty.vue_vue_type_script_setup_true_lang-BfNvMZNq.js → BuiTableEmpty.vue_vue_type_script_setup_true_lang-BxUialLd.js} +3 -3
  102. package/dist/{BuiTableFooter.vue_vue_type_script_setup_true_lang-DPiMNCsQ.js → BuiTableFooter.vue_vue_type_script_setup_true_lang-k053xTES.js} +1 -1
  103. package/dist/BuiTableHead.vue_vue_type_script_setup_true_lang-JNDLoSoG.js +37 -0
  104. package/dist/BuiTableHeader.vue_vue_type_script_setup_true_lang-18MBtNeo.js +30 -0
  105. package/dist/{BuiTableRow.vue_vue_type_script_setup_true_lang-C86fLmLF.js → BuiTableRow.vue_vue_type_script_setup_true_lang-f1ZCSbzt.js} +1 -1
  106. 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
  107. package/dist/{BuiToastAction.vue_vue_type_script_setup_true_lang-BFD6Tqtl.js → BuiToastAction.vue_vue_type_script_setup_true_lang-Dk8A0zz2.js} +1 -1
  108. package/dist/{BuiToastClose.vue_vue_type_script_setup_true_lang-7Y2BVPr8.js → BuiToastClose.vue_vue_type_script_setup_true_lang-B3oilMCp.js} +2 -2
  109. package/dist/{BuiToastDescription.vue_vue_type_script_setup_true_lang-DE7h5Geh.js → BuiToastDescription.vue_vue_type_script_setup_true_lang-BrSg0VRX.js} +1 -1
  110. package/dist/{BuiToastTitle.vue_vue_type_script_setup_true_lang-zYQ4l8eW.js → BuiToastTitle.vue_vue_type_script_setup_true_lang-Cqz61UTY.js} +1 -1
  111. package/dist/{BuiToastViewport.vue_vue_type_script_setup_true_lang-C3UycVRz.js → BuiToastViewport.vue_vue_type_script_setup_true_lang-bfIyhbsq.js} +1 -1
  112. package/dist/{BuiToggleGroup.vue_vue_type_script_setup_true_lang-DQyk0K4w.js → BuiToggleGroup.vue_vue_type_script_setup_true_lang-BUIfYPz8.js} +1 -1
  113. 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
  114. package/dist/{BuiTooltipContent.vue_vue_type_script_setup_true_lang-Cj2ORDNZ.js → BuiTooltipContent.vue_vue_type_script_setup_true_lang-DMaUr0Py.js} +1 -1
  115. package/dist/{Skeleton.vue_vue_type_script_setup_true_lang-CXBaId50.js → Skeleton.vue_vue_type_script_setup_true_lang-DxJwlH68.js} +1 -1
  116. package/dist/{check-DXPVXmv4.js → check-Udt21v9L.js} +1 -1
  117. package/dist/{chevron-down-D2S1WAKN.js → chevron-down-DWtY5lSf.js} +1 -1
  118. package/dist/{chevron-left-BunhF8It.js → chevron-left-OASNjVKd.js} +1 -1
  119. package/dist/{chevron-right-Cs86raoF.js → chevron-right-C8C-EeB3.js} +1 -1
  120. package/dist/{circle-Dj_4u70g.js → circle-iHvJKCQ5.js} +1 -1
  121. package/dist/components/ui/accordion/BuiAccordionContent.js +1 -1
  122. package/dist/components/ui/accordion/BuiAccordionItem.js +1 -1
  123. package/dist/components/ui/accordion/BuiAccordionTrigger.js +1 -1
  124. package/dist/components/ui/accordion/BuiAdvancedAccordionTrigger.js +1 -1
  125. package/dist/components/ui/accordion/index.js +4 -4
  126. package/dist/components/ui/alert/BuiAlertDescription.js +1 -1
  127. package/dist/components/ui/alert/BuiAlertTitle.js +1 -1
  128. package/dist/components/ui/alert/index.js +3 -3
  129. package/dist/components/ui/alert-dialog/BuiAlertDialogAction.js +1 -1
  130. package/dist/components/ui/alert-dialog/BuiAlertDialogCancel.js +1 -1
  131. package/dist/components/ui/alert-dialog/BuiAlertDialogContent.js +1 -1
  132. package/dist/components/ui/alert-dialog/BuiAlertDialogDescription.js +1 -1
  133. package/dist/components/ui/alert-dialog/BuiAlertDialogFooter.js +1 -1
  134. package/dist/components/ui/alert-dialog/BuiAlertDialogHeader.js +1 -1
  135. package/dist/components/ui/alert-dialog/BuiAlertDialogTitle.js +1 -1
  136. package/dist/components/ui/alert-dialog/index.js +7 -7
  137. package/dist/components/ui/auto-form/BuiAutoForm.js +1 -1
  138. package/dist/components/ui/auto-form/BuiAutoFormField.js +1 -1
  139. package/dist/components/ui/auto-form/BuiAutoFormFieldArray.js +1 -1
  140. package/dist/components/ui/auto-form/BuiAutoFormFieldArrayCard.js +1 -1
  141. package/dist/components/ui/auto-form/BuiAutoFormFieldBoolean.js +1 -1
  142. package/dist/components/ui/auto-form/BuiAutoFormFieldDate.js +1 -1
  143. package/dist/components/ui/auto-form/BuiAutoFormFieldEnum.js +1 -1
  144. package/dist/components/ui/auto-form/BuiAutoFormFieldFile.js +1 -1
  145. package/dist/components/ui/auto-form/BuiAutoFormFieldInput.js +1 -1
  146. package/dist/components/ui/auto-form/BuiAutoFormFieldNumber.js +1 -1
  147. package/dist/components/ui/auto-form/BuiAutoFormFieldObject.js +1 -1
  148. package/dist/components/ui/auto-form/BuiAutoFormFieldObjectCard.js +1 -1
  149. package/dist/components/ui/auto-form/BuiAutoFormLabel.js +1 -1
  150. package/dist/components/ui/auto-form/constant.js +7 -7
  151. package/dist/components/ui/auto-form/index.js +11 -11
  152. package/dist/components/ui/avatar/index.js +1 -1
  153. package/dist/components/ui/badge/index.js +2 -2
  154. package/dist/components/ui/button/BuiButton.js +1 -1
  155. package/dist/components/ui/button/index.js +1 -1
  156. package/dist/components/ui/calendar/index.js +3 -3
  157. package/dist/components/ui/card/BuiCard.js +1 -1
  158. package/dist/components/ui/card/BuiCardContent.js +1 -1
  159. package/dist/components/ui/card/BuiCardDescription.js +1 -1
  160. package/dist/components/ui/card/BuiCardFooter.js +1 -1
  161. package/dist/components/ui/card/BuiCardHeader.js +1 -1
  162. package/dist/components/ui/card/BuiCardTitle.js +1 -1
  163. package/dist/components/ui/card/index.js +6 -6
  164. package/dist/components/ui/checkbox/BuiCheckbox.js +1 -1
  165. package/dist/components/ui/checkbox/index.js +1 -1
  166. package/dist/components/ui/command/BuiCommand.js +1 -1
  167. package/dist/components/ui/command/BuiCommandDialog.js +1 -1
  168. package/dist/components/ui/command/BuiCommandEmpty.js +1 -1
  169. package/dist/components/ui/command/BuiCommandGroup.js +1 -1
  170. package/dist/components/ui/command/BuiCommandInput.js +1 -1
  171. package/dist/components/ui/command/BuiCommandItem.js +1 -1
  172. package/dist/components/ui/command/BuiCommandList.js +1 -1
  173. package/dist/components/ui/command/BuiCommandSeparator.js +1 -1
  174. package/dist/components/ui/command/BuiCommandShortcut.js +1 -1
  175. package/dist/components/ui/command/index.js +9 -9
  176. package/dist/components/ui/context-menu/BuiContextMenuCheckboxItem.js +1 -1
  177. package/dist/components/ui/context-menu/BuiContextMenuContent.js +1 -1
  178. package/dist/components/ui/context-menu/BuiContextMenuItem.js +1 -1
  179. package/dist/components/ui/context-menu/BuiContextMenuLabel.js +1 -1
  180. package/dist/components/ui/context-menu/BuiContextMenuRadioItem.js +1 -1
  181. package/dist/components/ui/context-menu/BuiContextMenuSeparator.js +1 -1
  182. package/dist/components/ui/context-menu/BuiContextMenuShortcut.js +1 -1
  183. package/dist/components/ui/context-menu/BuiContextMenuSubContent.js +1 -1
  184. package/dist/components/ui/context-menu/BuiContextMenuSubTrigger.js +1 -1
  185. package/dist/components/ui/context-menu/index.js +9 -9
  186. package/dist/components/ui/dialog/BuiDialogContent.js +1 -1
  187. package/dist/components/ui/dialog/BuiDialogDescription.js +1 -1
  188. package/dist/components/ui/dialog/BuiDialogFooter.js +1 -1
  189. package/dist/components/ui/dialog/BuiDialogHeader.js +1 -1
  190. package/dist/components/ui/dialog/BuiDialogTitle.js +1 -1
  191. package/dist/components/ui/dialog/index.js +5 -5
  192. package/dist/components/ui/dropdown-menu/BuiDropdownMenuCheckboxItem.js +1 -1
  193. package/dist/components/ui/dropdown-menu/BuiDropdownMenuContent.js +1 -1
  194. package/dist/components/ui/dropdown-menu/BuiDropdownMenuItem.js +1 -1
  195. package/dist/components/ui/dropdown-menu/BuiDropdownMenuLabel.js +1 -1
  196. package/dist/components/ui/dropdown-menu/BuiDropdownMenuRadioItem.js +1 -1
  197. package/dist/components/ui/dropdown-menu/BuiDropdownMenuShortcut.js +1 -1
  198. package/dist/components/ui/dropdown-menu/BuiDropdownMenuSubContent.js +1 -1
  199. package/dist/components/ui/dropdown-menu/BuiDropdownMenuSubTrigger.js +1 -1
  200. package/dist/components/ui/dropdown-menu/index.js +8 -8
  201. package/dist/components/ui/form/BuiFormControl.js +1 -1
  202. package/dist/components/ui/form/BuiFormDescription.js +1 -1
  203. package/dist/components/ui/form/BuiFormItem.js +2 -2
  204. package/dist/components/ui/form/BuiFormLabel.js +1 -1
  205. package/dist/components/ui/form/BuiFormMessage.js +1 -1
  206. package/dist/components/ui/form/index.js +1 -1
  207. package/dist/components/ui/form/useFormField.js +1 -1
  208. package/dist/components/ui/health/index.js +1 -1
  209. package/dist/components/ui/hover-card/BuiHoverCardContent.js +1 -1
  210. package/dist/components/ui/hover-card/index.js +1 -1
  211. package/dist/components/ui/input/index.js +1 -1
  212. package/dist/components/ui/label/BuiLabel.js +1 -1
  213. package/dist/components/ui/label/index.js +1 -1
  214. package/dist/components/ui/pagination/BuiPaginationCommon.js +1 -1
  215. package/dist/components/ui/pagination/BuiPaginationEllipsis.js +1 -1
  216. package/dist/components/ui/pagination/BuiPaginationFirst.js +1 -1
  217. package/dist/components/ui/pagination/BuiPaginationLast.js +1 -1
  218. package/dist/components/ui/pagination/BuiPaginationNext.js +1 -1
  219. package/dist/components/ui/pagination/BuiPaginationPrev.js +1 -1
  220. package/dist/components/ui/pagination/index.js +6 -6
  221. package/dist/components/ui/popover/BuiPopoverContent.js +1 -1
  222. package/dist/components/ui/popover/index.js +1 -1
  223. package/dist/components/ui/progress/index.js +1 -1
  224. package/dist/components/ui/radio-group/BuiRadioGroup.js +1 -1
  225. package/dist/components/ui/radio-group/BuiRadioGroupItem.js +1 -1
  226. package/dist/components/ui/radio-group/index.js +2 -2
  227. package/dist/components/ui/scroll-area/BuiScrollArea.js +1 -1
  228. package/dist/components/ui/scroll-area/BuiScrollBar.js +1 -1
  229. package/dist/components/ui/scroll-area/index.js +2 -2
  230. package/dist/components/ui/select/Bui.js +1 -1
  231. package/dist/components/ui/select/BuiSelect.js +1 -1
  232. package/dist/components/ui/select/BuiSelectContent.js +1 -1
  233. package/dist/components/ui/select/BuiSelectGroup.js +1 -1
  234. package/dist/components/ui/select/BuiSelectItem.js +1 -1
  235. package/dist/components/ui/select/BuiSelectLabel.js +1 -1
  236. package/dist/components/ui/select/BuiSelectSeparator.js +1 -1
  237. package/dist/components/ui/select/BuiSelectTrigger.js +1 -1
  238. package/dist/components/ui/select/index.js +7 -7
  239. package/dist/components/ui/separator/BuiSeparator.js +1 -1
  240. package/dist/components/ui/separator/index.js +1 -1
  241. package/dist/components/ui/sheet/BuiSheetDescription.js +1 -1
  242. package/dist/components/ui/sheet/BuiSheetFooter.js +1 -1
  243. package/dist/components/ui/sheet/BuiSheetHeader.js +1 -1
  244. package/dist/components/ui/sheet/BuiSheetTitle.js +1 -1
  245. package/dist/components/ui/sheet/index.js +6 -6
  246. package/dist/components/ui/skeleton/Skeleton.js +1 -1
  247. package/dist/components/ui/skeleton/index.js +1 -1
  248. package/dist/components/ui/slider/BuiSlider.js +1 -1
  249. package/dist/components/ui/slider/index.js +1 -1
  250. package/dist/components/ui/stepper/BuiStepper.js +1 -1
  251. package/dist/components/ui/stepper/BuiStepperDescription.js +1 -1
  252. package/dist/components/ui/stepper/BuiStepperIndicator.js +1 -1
  253. package/dist/components/ui/stepper/BuiStepperItem.js +1 -1
  254. package/dist/components/ui/stepper/BuiStepperSeparator.js +1 -1
  255. package/dist/components/ui/stepper/BuiStepperTitle.js +1 -1
  256. package/dist/components/ui/stepper/BuiStepperTrigger.js +1 -1
  257. package/dist/components/ui/stepper/index.js +7 -7
  258. package/dist/components/ui/switch/BuiSwitch.js +1 -1
  259. package/dist/components/ui/switch/index.js +1 -1
  260. package/dist/components/ui/table/BuiDataTable.vue.d.ts +7 -6
  261. package/dist/components/ui/table/BuiDataTableColumnList.js +1 -1
  262. package/dist/components/ui/table/BuiTable.js +1 -1
  263. package/dist/components/ui/table/BuiTableBody.js +1 -1
  264. package/dist/components/ui/table/BuiTableCaption.js +1 -1
  265. package/dist/components/ui/table/BuiTableCell.js +1 -1
  266. package/dist/components/ui/table/BuiTableEmpty.js +1 -1
  267. package/dist/components/ui/table/BuiTableFooter.js +1 -1
  268. package/dist/components/ui/table/BuiTableHead.js +1 -1
  269. package/dist/components/ui/table/BuiTableHeader.js +1 -1
  270. package/dist/components/ui/table/BuiTableHeader.vue.d.ts +6 -2
  271. package/dist/components/ui/table/BuiTableRow.js +1 -1
  272. package/dist/components/ui/table/index.js +815 -275
  273. package/dist/components/ui/tabs/BuiTabsContent.js +1 -1
  274. package/dist/components/ui/tabs/index.js +2 -2
  275. package/dist/components/ui/textarea/index.js +1 -1
  276. package/dist/components/ui/toast/BuiToastAction.js +1 -1
  277. package/dist/components/ui/toast/BuiToastClose.js +1 -1
  278. package/dist/components/ui/toast/BuiToastDescription.js +1 -1
  279. package/dist/components/ui/toast/BuiToastTitle.js +1 -1
  280. package/dist/components/ui/toast/BuiToastViewport.js +1 -1
  281. package/dist/components/ui/toast/index.js +6 -6
  282. package/dist/components/ui/toggle/index.js +1 -1
  283. package/dist/components/ui/toggle-group/BuiToggleGroup.js +1 -1
  284. package/dist/components/ui/toggle-group/BuiToggleGroupItem.js +1 -1
  285. package/dist/components/ui/toggle-group/index.js +2 -2
  286. package/dist/components/ui/tooltip/BuiTooltipContent.js +1 -1
  287. package/dist/components/ui/tooltip/index.js +1 -1
  288. package/dist/index.js +117 -117
  289. package/dist/lib/useResizeColumns.d.ts +127 -0
  290. package/dist/lib/useResizeColumns.js +89 -0
  291. package/dist/lib/utils.js +1 -1
  292. package/dist/{utils-wXObAngY.js → utils-C11OfLQK.js} +2 -2
  293. package/dist/{variables-D2BA1gyr.js → variables-4ez0MWno.js} +8 -8
  294. package/dist/{x-CQmEIBuk.js → x-BCuyj3Zc.js} +1 -1
  295. package/package.json +3 -1
  296. package/src/components/stories/BuiDataTable.story.vue +5 -5
  297. package/src/components/ui/table/BuiDataTable.vue +64 -21
  298. package/src/components/ui/table/BuiTableHead.vue +7 -3
  299. package/src/components/ui/table/BuiTableHeader.vue +6 -0
  300. package/src/lib/useResizeColumns.ts +202 -0
  301. package/src/lib/utils.ts +2 -2
  302. package/dist/BuiTableHead.vue_vue_type_script_setup_true_lang-Cv-vWpBR.js +0 -32
  303. 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
@@ -1,4 +1,4 @@
1
- import { g as m, t as r, v as e } from "../utils-wXObAngY.js";
1
+ import { g as m, t as r, v as e } from "../utils-C11OfLQK.js";
2
2
  import "vue";
3
3
  export {
4
4
  m as cn,
@@ -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-2 h-4 w-4 text-muted-foreground" })
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-BTaLx9te.js";
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-bER8QXmg.js";
11
- import { _ as b } from "./BuiSelectContent.vue_vue_type_script_setup_true_lang-BCXA7689.js";
12
- import { _ as h } from "./BuiSelectItem.vue_vue_type_script_setup_true_lang-B1Xy1bfi.js";
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-DdBOGHt6.js";
19
- import { _ as E } from "./BuiPaginationLast.vue_vue_type_script_setup_true_lang-CUk7ZCnP.js";
20
- import { _ as j } from "./BuiPaginationNext.vue_vue_type_script_setup_true_lang-B0Z-kfzf.js";
21
- import { _ as D } from "./BuiPaginationPrev.vue_vue_type_script_setup_true_lang-BtRpcXGP.js";
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__ */ $({
@@ -1,4 +1,4 @@
1
- import { h as e } from "./utils-wXObAngY.js";
1
+ import { h as e } from "./utils-C11OfLQK.js";
2
2
  /**
3
3
  * @license lucide-vue-next v0.441.0 - ISC
4
4
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@soft-stech/bootsman-ui-shadcn",
3
- "version": "1.4.35",
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, 'Status'),
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<ColumnSizingState>({ title: 300 })
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 class="absolute right-0 top-0 z-10 h-10 bg-background">
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="(event) => (searchColumn = event.target.value)"
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
- :style="{ ...getPinningStyle(header.column), width: header.getSize() + 'px' }"
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
- @dblclick="() => header.column.resetSize()"
303
- @mousedown="header.getResizeHandler()?.($event)"
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.column.getIsResizing() ? 'bg-primary opacity-50' : ''
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="{ 'bg-foreground/[0.04]': props.freezeHeader }"
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-8 w-full items-center whitespace-nowrap border-r border-border/[0.16] px-2 text-sm font-semibold"
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-2 h-4 w-4 text-muted-foreground' })
38
+ h(icon, { class: 'ml-1 h-4 w-4 text-muted-foreground shrink-0' })
39
39
  ]
40
40
  )
41
41
  }