@soft-stech/bootsman-ui-shadcn 1.4.37 → 1.4.38

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 (400) hide show
  1. package/dist/{BuiAccordion.vue_vue_type_script_setup_true_lang-Bga9YJNb.js → BuiAccordion.vue_vue_type_script_setup_true_lang-BLEAcKBo.js} +1 -1
  2. package/dist/{BuiAccordionContent.vue_vue_type_script_setup_true_lang-Bg2UJYf9.js → BuiAccordionContent.vue_vue_type_script_setup_true_lang-BldlPWCI.js} +2 -2
  3. package/dist/{BuiAccordionItem.vue_vue_type_script_setup_true_lang-CiFbAf_1.js → BuiAccordionItem.vue_vue_type_script_setup_true_lang-CRUQzvln.js} +2 -2
  4. package/dist/{BuiAccordionTrigger.vue_vue_type_script_setup_true_lang-aFFJ3tuo.js → BuiAccordionTrigger.vue_vue_type_script_setup_true_lang-Cm0FBaWl.js} +3 -3
  5. package/dist/{BuiAdvancedAccordionTrigger.vue_vue_type_script_setup_true_lang-BG9umQaz.js → BuiAdvancedAccordionTrigger.vue_vue_type_script_setup_true_lang-ScVVN3bv.js} +3 -3
  6. package/dist/{BuiAlertDescription.vue_vue_type_script_setup_true_lang-D2aRMrjC.js → BuiAlertDescription.vue_vue_type_script_setup_true_lang-BbPINpRG.js} +1 -1
  7. package/dist/{BuiAlertDialog.vue_vue_type_script_setup_true_lang-Dul30BC6.js → BuiAlertDialog.vue_vue_type_script_setup_true_lang-CfaX71Xc.js} +1 -1
  8. package/dist/{BuiAlertDialogAction.vue_vue_type_script_setup_true_lang-DBbjw0lw.js → BuiAlertDialogAction.vue_vue_type_script_setup_true_lang-Bf0mXkre.js} +2 -2
  9. package/dist/{BuiAlertDialogCancel.vue_vue_type_script_setup_true_lang-DE9DbnHa.js → BuiAlertDialogCancel.vue_vue_type_script_setup_true_lang-BpdVy1qs.js} +2 -2
  10. package/dist/{BuiAlertDialogContent.vue_vue_type_script_setup_true_lang-B9P6SIUv.js → BuiAlertDialogContent.vue_vue_type_script_setup_true_lang-DgfCzorw.js} +2 -2
  11. package/dist/{BuiAlertDialogDescription.vue_vue_type_script_setup_true_lang-CxE38rlt.js → BuiAlertDialogDescription.vue_vue_type_script_setup_true_lang-C5yxrSPc.js} +2 -2
  12. package/dist/{BuiAlertDialogFooter.vue_vue_type_script_setup_true_lang-Dol_uqw5.js → BuiAlertDialogFooter.vue_vue_type_script_setup_true_lang-Ej087faI.js} +1 -1
  13. package/dist/{BuiAlertDialogHeader.vue_vue_type_script_setup_true_lang-fI7StmUp.js → BuiAlertDialogHeader.vue_vue_type_script_setup_true_lang-BQKKzeVf.js} +1 -1
  14. package/dist/{BuiAlertDialogTitle.vue_vue_type_script_setup_true_lang-Dd_d1Dd7.js → BuiAlertDialogTitle.vue_vue_type_script_setup_true_lang-BPhECYX2.js} +2 -2
  15. package/dist/{BuiAlertDialogTrigger.vue_vue_type_script_setup_true_lang-CPFDF5F6.js → BuiAlertDialogTrigger.vue_vue_type_script_setup_true_lang-CBy4OSSY.js} +1 -1
  16. package/dist/{BuiAlertTitle.vue_vue_type_script_setup_true_lang-DoUWBb9E.js → BuiAlertTitle.vue_vue_type_script_setup_true_lang-C5LJBA-Y.js} +1 -1
  17. package/dist/{BuiAspectRatio.vue_vue_type_script_setup_true_lang-YRUJc58r.js → BuiAspectRatio.vue_vue_type_script_setup_true_lang-lfdBK85u.js} +1 -1
  18. package/dist/{BuiAutoForm.vue_vue_type_script_setup_true_lang-ndXR7BaI.js → BuiAutoForm.vue_vue_type_script_setup_true_lang-NgH9DwLC.js} +1 -1
  19. package/dist/{BuiAutoFormField.vue_vue_type_script_setup_true_lang-K954j-e6.js → BuiAutoFormField.vue_vue_type_script_setup_true_lang-sQMSYv4x.js} +12 -12
  20. package/dist/{BuiAutoFormFieldArray.vue_vue_type_script_setup_true_lang-Qt_aDHEi.js → BuiAutoFormFieldArray.vue_vue_type_script_setup_true_lang-Ca127sig.js} +9 -9
  21. package/dist/{BuiAutoFormFieldBoolean.vue_vue_type_script_setup_true_lang-B_e0vuhI.js → BuiAutoFormFieldBoolean.vue_vue_type_script_setup_true_lang-BTEIebnv.js} +4 -4
  22. package/dist/{BuiAutoFormFieldDate.vue_vue_type_script_setup_true_lang-iaXvL6_3.js → BuiAutoFormFieldDate.vue_vue_type_script_setup_true_lang-Dw_hNSai.js} +5 -5
  23. package/dist/{BuiAutoFormFieldEnum.vue_vue_type_script_setup_true_lang-B8Os94cq.js → BuiAutoFormFieldEnum.vue_vue_type_script_setup_true_lang-DCYnQdGU.js} +10 -10
  24. package/dist/{BuiAutoFormFieldFile.vue_vue_type_script_setup_true_lang-_tNiMC5y.js → BuiAutoFormFieldFile.vue_vue_type_script_setup_true_lang-CF2OEO3g.js} +45 -36
  25. package/dist/BuiAutoFormFieldInput.vue_vue_type_script_setup_true_lang-DJLIoCbs.js +67 -0
  26. package/dist/BuiAutoFormFieldNumber.vue_vue_type_script_setup_true_lang-CkG97QVf.js +66 -0
  27. package/dist/{BuiAutoFormFieldObject.vue_vue_type_script_setup_true_lang-DtIuWqJR.js → BuiAutoFormFieldObject.vue_vue_type_script_setup_true_lang-D46XtQz6.js} +7 -7
  28. package/dist/{BuiAutoFormLabel.vue_vue_type_script_setup_true_lang-NhOJHYJA.js → BuiAutoFormLabel.vue_vue_type_script_setup_true_lang-uIlCGBKL.js} +1 -1
  29. package/dist/{BuiAvatarFallback.vue_vue_type_script_setup_true_lang-B1ncuXZ0.js → BuiAvatarFallback.vue_vue_type_script_setup_true_lang-g14aRUjN.js} +1 -1
  30. package/dist/{BuiAvatarImage.vue_vue_type_script_setup_true_lang-DELf2i8H.js → BuiAvatarImage.vue_vue_type_script_setup_true_lang-DYb6srge.js} +1 -1
  31. package/dist/{BuiCard.vue_vue_type_script_setup_true_lang-CkC8lrvx.js → BuiCard.vue_vue_type_script_setup_true_lang-C-NC5FnP.js} +1 -1
  32. package/dist/{BuiCardContent.vue_vue_type_script_setup_true_lang-CRBn-mRv.js → BuiCardContent.vue_vue_type_script_setup_true_lang-DGCThPoW.js} +1 -1
  33. package/dist/{BuiCardDescription.vue_vue_type_script_setup_true_lang-wKx4DSsC.js → BuiCardDescription.vue_vue_type_script_setup_true_lang-5SKfKpRo.js} +1 -1
  34. package/dist/{BuiCardFooter.vue_vue_type_script_setup_true_lang-84LmO9Ee.js → BuiCardFooter.vue_vue_type_script_setup_true_lang-Bo4HiivM.js} +1 -1
  35. package/dist/{BuiCardHeader.vue_vue_type_script_setup_true_lang-Cpd-7BZn.js → BuiCardHeader.vue_vue_type_script_setup_true_lang-CSALfpK1.js} +1 -1
  36. package/dist/{BuiCardTitle.vue_vue_type_script_setup_true_lang-DgFhKXA_.js → BuiCardTitle.vue_vue_type_script_setup_true_lang-BxJh7xYB.js} +1 -1
  37. package/dist/{BuiCheckbox.vue_vue_type_script_setup_true_lang-_VPumFYO.js → BuiCheckbox.vue_vue_type_script_setup_true_lang-CwWzuDlS.js} +3 -3
  38. package/dist/{BuiCollapsible.vue_vue_type_script_setup_true_lang-DjuQBjGZ.js → BuiCollapsible.vue_vue_type_script_setup_true_lang-GUBvaqXL.js} +1 -1
  39. package/dist/{BuiCollapsibleContent.vue_vue_type_script_setup_true_lang-BiD89zzH.js → BuiCollapsibleContent.vue_vue_type_script_setup_true_lang-CLcdIcH8.js} +1 -1
  40. package/dist/{BuiCollapsibleTrigger.vue_vue_type_script_setup_true_lang-l-nmwAwq.js → BuiCollapsibleTrigger.vue_vue_type_script_setup_true_lang-vXX5X3aX.js} +1 -1
  41. package/dist/{BuiCommand.vue_vue_type_script_setup_true_lang-C8UkqTiX.js → BuiCommand.vue_vue_type_script_setup_true_lang-0R3Mg1Vm.js} +2 -2
  42. package/dist/{BuiCommandDialog.vue_vue_type_script_setup_true_lang-BOewkM56.js → BuiCommandDialog.vue_vue_type_script_setup_true_lang-CbO9pczK.js} +4 -4
  43. package/dist/{BuiCommandEmpty.vue_vue_type_script_setup_true_lang-CSwCtbz1.js → BuiCommandEmpty.vue_vue_type_script_setup_true_lang-6eCvzOuB.js} +2 -2
  44. package/dist/{BuiCommandGroup.vue_vue_type_script_setup_true_lang-BGdSDDso.js → BuiCommandGroup.vue_vue_type_script_setup_true_lang-CU6eJehW.js} +2 -2
  45. package/dist/{BuiCommandInput.vue_vue_type_script_setup_true_lang-3c9TjWnY.js → BuiCommandInput.vue_vue_type_script_setup_true_lang-DMgDCk3Z.js} +2 -2
  46. package/dist/{BuiCommandItem.vue_vue_type_script_setup_true_lang-BdkpK55i.js → BuiCommandItem.vue_vue_type_script_setup_true_lang-BhlMWNxj.js} +2 -2
  47. package/dist/{BuiCommandList.vue_vue_type_script_setup_true_lang-C77MBwCW.js → BuiCommandList.vue_vue_type_script_setup_true_lang-B7dvoeeu.js} +2 -2
  48. package/dist/{BuiCommandSeparator.vue_vue_type_script_setup_true_lang-CemQWp-m.js → BuiCommandSeparator.vue_vue_type_script_setup_true_lang-Bfedew-C.js} +2 -2
  49. package/dist/{BuiCommandShortcut.vue_vue_type_script_setup_true_lang-C8jdlkgh.js → BuiCommandShortcut.vue_vue_type_script_setup_true_lang-BQ5oVZCO.js} +1 -1
  50. package/dist/{BuiContextMenu.vue_vue_type_script_setup_true_lang-CQSZ3Xgr.js → BuiContextMenu.vue_vue_type_script_setup_true_lang-BHEOJokN.js} +1 -1
  51. package/dist/{BuiContextMenuCheckboxItem.vue_vue_type_script_setup_true_lang-DzNtry8B.js → BuiContextMenuCheckboxItem.vue_vue_type_script_setup_true_lang-CQf2wvKs.js} +3 -3
  52. package/dist/{BuiContextMenuContent.vue_vue_type_script_setup_true_lang-BNauHWov.js → BuiContextMenuContent.vue_vue_type_script_setup_true_lang-D2Jy0d8l.js} +2 -2
  53. package/dist/{BuiContextMenuGroup.vue_vue_type_script_setup_true_lang-2FAxkxhs.js → BuiContextMenuGroup.vue_vue_type_script_setup_true_lang-BxkX1T2H.js} +1 -1
  54. package/dist/{BuiContextMenuItem.vue_vue_type_script_setup_true_lang-DXWkF81C.js → BuiContextMenuItem.vue_vue_type_script_setup_true_lang-Bg6SyQYg.js} +2 -2
  55. package/dist/{BuiContextMenuLabel.vue_vue_type_script_setup_true_lang-B6GiPS1D.js → BuiContextMenuLabel.vue_vue_type_script_setup_true_lang-Ba21QBGl.js} +2 -2
  56. package/dist/{BuiContextMenuRadioGroup.vue_vue_type_script_setup_true_lang-Bho33BlA.js → BuiContextMenuRadioGroup.vue_vue_type_script_setup_true_lang-B1vQZgiu.js} +1 -1
  57. package/dist/{BuiContextMenuRadioItem.vue_vue_type_script_setup_true_lang-D5sqVpvN.js → BuiContextMenuRadioItem.vue_vue_type_script_setup_true_lang-_BCptaO2.js} +3 -3
  58. package/dist/{BuiContextMenuSeparator.vue_vue_type_script_setup_true_lang-CHoJ3KU6.js → BuiContextMenuSeparator.vue_vue_type_script_setup_true_lang-BZV5rOeE.js} +2 -2
  59. package/dist/{BuiContextMenuShortcut.vue_vue_type_script_setup_true_lang-yH0VcLKG.js → BuiContextMenuShortcut.vue_vue_type_script_setup_true_lang-Dd4h7LNZ.js} +1 -1
  60. package/dist/{BuiContextMenuSub.vue_vue_type_script_setup_true_lang-C5aJ4x6u.js → BuiContextMenuSub.vue_vue_type_script_setup_true_lang-C5C0CTx9.js} +1 -1
  61. package/dist/{BuiContextMenuSubContent.vue_vue_type_script_setup_true_lang-B8VKgMrH.js → BuiContextMenuSubContent.vue_vue_type_script_setup_true_lang-ClL2CXxN.js} +2 -2
  62. package/dist/{BuiContextMenuSubTrigger.vue_vue_type_script_setup_true_lang-uLf_ZAR-.js → BuiContextMenuSubTrigger.vue_vue_type_script_setup_true_lang-BjKc7g6B.js} +3 -3
  63. package/dist/{BuiContextMenuTrigger.vue_vue_type_script_setup_true_lang-ZkJmsdNR.js → BuiContextMenuTrigger.vue_vue_type_script_setup_true_lang-BlVoDozF.js} +1 -1
  64. package/dist/{BuiDataTableColumnList.vue_vue_type_script_setup_true_lang-Dof0WsTF.js → BuiDataTableColumnList.vue_vue_type_script_setup_true_lang-CGkGNd8n.js} +2 -2
  65. package/dist/{BuiDialog.vue_vue_type_script_setup_true_lang-C0gpUi9x.js → BuiDialog.vue_vue_type_script_setup_true_lang-CJJVDYCE.js} +1 -1
  66. package/dist/{BuiDialogClose.vue_vue_type_script_setup_true_lang-C3HmqVNq.js → BuiDialogClose.vue_vue_type_script_setup_true_lang-DOxxXvFQ.js} +1 -1
  67. package/dist/{BuiDialogContent.vue_vue_type_script_setup_true_lang-jRVT38WW.js → BuiDialogContent.vue_vue_type_script_setup_true_lang-Cqcid_YW.js} +3 -3
  68. package/dist/{BuiDialogDescription.vue_vue_type_script_setup_true_lang-NEx7XT06.js → BuiDialogDescription.vue_vue_type_script_setup_true_lang-B38yBITg.js} +2 -2
  69. package/dist/{BuiDialogFooter.vue_vue_type_script_setup_true_lang-DxEV03yz.js → BuiDialogFooter.vue_vue_type_script_setup_true_lang-DPEuULOy.js} +1 -1
  70. package/dist/{BuiDialogHeader.vue_vue_type_script_setup_true_lang-BHkrgEzv.js → BuiDialogHeader.vue_vue_type_script_setup_true_lang-IBlxCtbz.js} +1 -1
  71. package/dist/{BuiDialogTitle.vue_vue_type_script_setup_true_lang-UrHtBmeC.js → BuiDialogTitle.vue_vue_type_script_setup_true_lang-DLEgWeL0.js} +2 -2
  72. package/dist/{BuiDialogTrigger.vue_vue_type_script_setup_true_lang-k6NUSYQE.js → BuiDialogTrigger.vue_vue_type_script_setup_true_lang-Buv7JnRO.js} +1 -1
  73. package/dist/{BuiDropdownMenu.vue_vue_type_script_setup_true_lang-B49IHHTX.js → BuiDropdownMenu.vue_vue_type_script_setup_true_lang-wpyH5buy.js} +1 -1
  74. package/dist/{BuiDropdownMenuCheckboxItem.vue_vue_type_script_setup_true_lang-C-7pTJQN.js → BuiDropdownMenuCheckboxItem.vue_vue_type_script_setup_true_lang-B2cSMw-D.js} +3 -3
  75. package/dist/{BuiDropdownMenuContent.vue_vue_type_script_setup_true_lang-CQF24scG.js → BuiDropdownMenuContent.vue_vue_type_script_setup_true_lang-D-Ze2xZO.js} +2 -2
  76. package/dist/{BuiDropdownMenuGroup.vue_vue_type_script_setup_true_lang-DXpaKYVo.js → BuiDropdownMenuGroup.vue_vue_type_script_setup_true_lang-Dr838upo.js} +1 -1
  77. package/dist/{BuiDropdownMenuItem.vue_vue_type_script_setup_true_lang-DSiuZJTA.js → BuiDropdownMenuItem.vue_vue_type_script_setup_true_lang-76Q_2WwU.js} +2 -2
  78. package/dist/{BuiDropdownMenuLabel.vue_vue_type_script_setup_true_lang-Bo-j_hpy.js → BuiDropdownMenuLabel.vue_vue_type_script_setup_true_lang-4wD26pmn.js} +2 -2
  79. package/dist/{BuiDropdownMenuRadioGroup.vue_vue_type_script_setup_true_lang-CCHHYM9w.js → BuiDropdownMenuRadioGroup.vue_vue_type_script_setup_true_lang-hXdpiaP9.js} +1 -1
  80. package/dist/{BuiDropdownMenuRadioItem.vue_vue_type_script_setup_true_lang-C9pplVtc.js → BuiDropdownMenuRadioItem.vue_vue_type_script_setup_true_lang-CEACxTnN.js} +3 -3
  81. package/dist/{BuiDropdownMenuSeparator.vue_vue_type_script_setup_true_lang-DOltiP6i.js → BuiDropdownMenuSeparator.vue_vue_type_script_setup_true_lang-BgHzxV6A.js} +1 -1
  82. package/dist/{BuiDropdownMenuShortcut.vue_vue_type_script_setup_true_lang-suBUkaYq.js → BuiDropdownMenuShortcut.vue_vue_type_script_setup_true_lang-BCJJ1vsm.js} +1 -1
  83. package/dist/{BuiDropdownMenuSub.vue_vue_type_script_setup_true_lang-DPSBU6W_.js → BuiDropdownMenuSub.vue_vue_type_script_setup_true_lang-Cb6VQMiR.js} +1 -1
  84. package/dist/{BuiDropdownMenuSubContent.vue_vue_type_script_setup_true_lang-C_aQh-88.js → BuiDropdownMenuSubContent.vue_vue_type_script_setup_true_lang-Bxp9a15Q.js} +2 -2
  85. package/dist/{BuiDropdownMenuSubTrigger.vue_vue_type_script_setup_true_lang-CiUQhfg1.js → BuiDropdownMenuSubTrigger.vue_vue_type_script_setup_true_lang-BJjtJkji.js} +3 -3
  86. package/dist/{BuiDropdownMenuTrigger.vue_vue_type_script_setup_true_lang-BMYtK5S3.js → BuiDropdownMenuTrigger.vue_vue_type_script_setup_true_lang-x3lb2Yn0.js} +1 -1
  87. package/dist/{BuiHoverCard.vue_vue_type_script_setup_true_lang-DxzXiXRP.js → BuiHoverCard.vue_vue_type_script_setup_true_lang-C9CMI-qF.js} +1 -1
  88. package/dist/{BuiHoverCardContent.vue_vue_type_script_setup_true_lang-Cg24xBED.js → BuiHoverCardContent.vue_vue_type_script_setup_true_lang-D9sIqiC7.js} +2 -2
  89. package/dist/{BuiHoverCardTrigger.vue_vue_type_script_setup_true_lang-eQB7XEG9.js → BuiHoverCardTrigger.vue_vue_type_script_setup_true_lang-DoYcpFwj.js} +1 -1
  90. package/dist/{BuiLabel.vue_vue_type_script_setup_true_lang-Sma4vbSS.js → BuiLabel.vue_vue_type_script_setup_true_lang-DzHXKk00.js} +2 -2
  91. package/dist/{variables-4ez0MWno.js → BuiPaginationCommon.vue_vue_type_script_setup_true_lang-D1L6JoMY.js} +27 -25
  92. package/dist/{BuiPaginationEllipsis.vue_vue_type_script_setup_true_lang-B-z2JZSt.js → BuiPaginationEllipsis.vue_vue_type_script_setup_true_lang-D5Ycxgjy.js} +2 -2
  93. package/dist/{BuiPaginationFirst.vue_vue_type_script_setup_true_lang-Cldzpica.js → BuiPaginationFirst.vue_vue_type_script_setup_true_lang-CHelKqv_.js} +2 -2
  94. package/dist/{BuiPaginationLast.vue_vue_type_script_setup_true_lang-DAMRrI27.js → BuiPaginationLast.vue_vue_type_script_setup_true_lang-rql1-Zd3.js} +2 -2
  95. package/dist/{BuiPaginationNext.vue_vue_type_script_setup_true_lang-CQ0gejml.js → BuiPaginationNext.vue_vue_type_script_setup_true_lang-DC70ZlaP.js} +3 -3
  96. package/dist/{BuiPaginationPrev.vue_vue_type_script_setup_true_lang-DuI0BC1U.js → BuiPaginationPrev.vue_vue_type_script_setup_true_lang-jyVlL9j2.js} +3 -3
  97. package/dist/{BuiPopover.vue_vue_type_script_setup_true_lang-CGkz30K2.js → BuiPopover.vue_vue_type_script_setup_true_lang-DXPGjQrK.js} +1 -1
  98. package/dist/{BuiPopoverContent.vue_vue_type_script_setup_true_lang-CEFHTgEu.js → BuiPopoverContent.vue_vue_type_script_setup_true_lang-DzIsHB39.js} +2 -2
  99. package/dist/{BuiPopoverTrigger.vue_vue_type_script_setup_true_lang-Du2ZN56l.js → BuiPopoverTrigger.vue_vue_type_script_setup_true_lang-CdjF4hNu.js} +1 -1
  100. package/dist/{BuiRadioGroup.vue_vue_type_script_setup_true_lang-CynC3r6y.js → BuiRadioGroup.vue_vue_type_script_setup_true_lang-BwmCEH6i.js} +2 -2
  101. package/dist/{BuiRadioGroupItem.vue_vue_type_script_setup_true_lang-CpV7MqXa.js → BuiRadioGroupItem.vue_vue_type_script_setup_true_lang-D-K5wOr2.js} +3 -3
  102. package/dist/{BuiScrollArea.vue_vue_type_script_setup_true_lang-BNcd3g6x.js → BuiScrollArea.vue_vue_type_script_setup_true_lang-D65DkxX6.js} +3 -3
  103. package/dist/{BuiScrollBar.vue_vue_type_script_setup_true_lang-DQzqNxV2.js → BuiScrollBar.vue_vue_type_script_setup_true_lang-phzlPbQ4.js} +2 -2
  104. package/dist/{BuiSelect.vue_vue_type_script_setup_true_lang-CFmk7_AN.js → BuiSelect.vue_vue_type_script_setup_true_lang-oyJut_cr.js} +2 -2
  105. package/dist/{BuiSelectContent.vue_vue_type_script_setup_true_lang-C191NkOr.js → BuiSelectContent.vue_vue_type_script_setup_true_lang-DNcVLPpU.js} +2 -2
  106. package/dist/{BuiSelectGroup.vue_vue_type_script_setup_true_lang-C_rwHrji.js → BuiSelectGroup.vue_vue_type_script_setup_true_lang-CIAH9LZN.js} +2 -2
  107. package/dist/{BuiSelectItem.vue_vue_type_script_setup_true_lang-CLHtKjGO.js → BuiSelectItem.vue_vue_type_script_setup_true_lang-BiU7FbGO.js} +3 -3
  108. package/dist/{BuiSelectItemText.vue_vue_type_script_setup_true_lang-C2GNX_B1.js → BuiSelectItemText.vue_vue_type_script_setup_true_lang-B6WH4e84.js} +1 -1
  109. package/dist/{BuiSelectLabel.vue_vue_type_script_setup_true_lang-CbZI5whs.js → BuiSelectLabel.vue_vue_type_script_setup_true_lang-XpwsZc80.js} +2 -2
  110. package/dist/{BuiSelectSeparator.vue_vue_type_script_setup_true_lang-qOpsZuYc.js → BuiSelectSeparator.vue_vue_type_script_setup_true_lang-tLcazDyd.js} +2 -2
  111. package/dist/{BuiSelectTrigger.vue_vue_type_script_setup_true_lang-BPAHSkB4.js → BuiSelectTrigger.vue_vue_type_script_setup_true_lang-dLg5MNQu.js} +3 -3
  112. package/dist/{BuiSelectValue.vue_vue_type_script_setup_true_lang-BNN6bEtZ.js → BuiSelectValue.vue_vue_type_script_setup_true_lang-DF1vCT-w.js} +1 -1
  113. package/dist/{BuiSeparator.vue_vue_type_script_setup_true_lang-5hWFGBxJ.js → BuiSeparator.vue_vue_type_script_setup_true_lang-CemFspqw.js} +2 -2
  114. package/dist/{BuiSheet.vue_vue_type_script_setup_true_lang-BskbnSm5.js → BuiSheet.vue_vue_type_script_setup_true_lang-C5hlNduO.js} +1 -1
  115. package/dist/{BuiSheetClose.vue_vue_type_script_setup_true_lang-BYXhp7zs.js → BuiSheetClose.vue_vue_type_script_setup_true_lang-BWjGy1Jz.js} +1 -1
  116. package/dist/{BuiSheetDescription.vue_vue_type_script_setup_true_lang-C_Nel6rW.js → BuiSheetDescription.vue_vue_type_script_setup_true_lang-DKxj7UHE.js} +2 -2
  117. package/dist/{BuiSheetFooter.vue_vue_type_script_setup_true_lang-DvNSpoj6.js → BuiSheetFooter.vue_vue_type_script_setup_true_lang-6AyhlY6p.js} +1 -1
  118. package/dist/{BuiSheetHeader.vue_vue_type_script_setup_true_lang-BV7JBZ6e.js → BuiSheetHeader.vue_vue_type_script_setup_true_lang-CkAwcvYa.js} +1 -1
  119. package/dist/{BuiSheetTitle.vue_vue_type_script_setup_true_lang-DWRSvHfG.js → BuiSheetTitle.vue_vue_type_script_setup_true_lang-C5-FbS3P.js} +2 -2
  120. package/dist/{BuiSheetTrigger.vue_vue_type_script_setup_true_lang-Bo3F1V-i.js → BuiSheetTrigger.vue_vue_type_script_setup_true_lang-BJ9LPDdb.js} +1 -1
  121. package/dist/{BuiSlider.vue_vue_type_script_setup_true_lang-DueApe2a.js → BuiSlider.vue_vue_type_script_setup_true_lang-B8wGel7J.js} +2 -2
  122. package/dist/{BuiStepper.vue_vue_type_script_setup_true_lang-CZ1jkRxs.js → BuiStepper.vue_vue_type_script_setup_true_lang-DXDEcxPs.js} +2 -2
  123. package/dist/{BuiStepperDescription.vue_vue_type_script_setup_true_lang-NL_1yflc.js → BuiStepperDescription.vue_vue_type_script_setup_true_lang-BgrvqIfS.js} +2 -2
  124. package/dist/{BuiStepperIndicator.vue_vue_type_script_setup_true_lang-4suJBD-d.js → BuiStepperIndicator.vue_vue_type_script_setup_true_lang-BaWaZloG.js} +2 -2
  125. package/dist/{BuiStepperItem.vue_vue_type_script_setup_true_lang-Br89cNz8.js → BuiStepperItem.vue_vue_type_script_setup_true_lang-BifgtMsp.js} +2 -2
  126. package/dist/{BuiStepperSeparator.vue_vue_type_script_setup_true_lang-CEqzYqhs.js → BuiStepperSeparator.vue_vue_type_script_setup_true_lang-CJEPLjNt.js} +2 -2
  127. package/dist/{BuiStepperTitle.vue_vue_type_script_setup_true_lang-CXeu0Wwu.js → BuiStepperTitle.vue_vue_type_script_setup_true_lang-Ci-7h-Nu.js} +2 -2
  128. package/dist/{BuiStepperTrigger.vue_vue_type_script_setup_true_lang-B_YjAeAX.js → BuiStepperTrigger.vue_vue_type_script_setup_true_lang-BkKjTzdd.js} +2 -2
  129. package/dist/{BuiSwitch.vue_vue_type_script_setup_true_lang-C0UTTrRZ.js → BuiSwitch.vue_vue_type_script_setup_true_lang-aYfKXtwg.js} +2 -2
  130. package/dist/{BuiTable.vue_vue_type_script_setup_true_lang-Z45MrzQA.js → BuiTable.vue_vue_type_script_setup_true_lang-DI9xOLmn.js} +3 -3
  131. package/dist/{BuiTableBody.vue_vue_type_script_setup_true_lang-BGWE-WLM.js → BuiTableBody.vue_vue_type_script_setup_true_lang-B-3x1Qq7.js} +1 -1
  132. package/dist/{BuiTableCaption.vue_vue_type_script_setup_true_lang-C9PP4Fcx.js → BuiTableCaption.vue_vue_type_script_setup_true_lang-xqs_Oz8_.js} +1 -1
  133. package/dist/{BuiTableCell.vue_vue_type_script_setup_true_lang-BMPBnL81.js → BuiTableCell.vue_vue_type_script_setup_true_lang-BqQC1ZW3.js} +1 -1
  134. package/dist/{BuiTableEmpty.vue_vue_type_script_setup_true_lang-BxUialLd.js → BuiTableEmpty.vue_vue_type_script_setup_true_lang-Dsuc3SUK.js} +3 -3
  135. package/dist/{BuiTableFooter.vue_vue_type_script_setup_true_lang-k053xTES.js → BuiTableFooter.vue_vue_type_script_setup_true_lang-CM3A5YV0.js} +1 -1
  136. package/dist/{BuiTableHead.vue_vue_type_script_setup_true_lang-JNDLoSoG.js → BuiTableHead.vue_vue_type_script_setup_true_lang-7Lueg0eT.js} +1 -1
  137. package/dist/{BuiTableHeader.vue_vue_type_script_setup_true_lang-18MBtNeo.js → BuiTableHeader.vue_vue_type_script_setup_true_lang-CuFM-eKt.js} +1 -1
  138. package/dist/{BuiTableRow.vue_vue_type_script_setup_true_lang-f1ZCSbzt.js → BuiTableRow.vue_vue_type_script_setup_true_lang-B7mv21Nn.js} +3 -3
  139. package/dist/{BuiTabs.vue_vue_type_script_setup_true_lang-Bp869I4W.js → BuiTabs.vue_vue_type_script_setup_true_lang-DOMi5Ruu.js} +1 -1
  140. package/dist/{BuiTabsContent.vue_vue_type_script_setup_true_lang-BpaSDCqQ.js → BuiTabsContent.vue_vue_type_script_setup_true_lang-w1_jLAJo.js} +2 -2
  141. package/dist/{BuiToastAction.vue_vue_type_script_setup_true_lang-Dk8A0zz2.js → BuiToastAction.vue_vue_type_script_setup_true_lang-DjtvDYVA.js} +2 -2
  142. package/dist/{BuiToastClose.vue_vue_type_script_setup_true_lang-B3oilMCp.js → BuiToastClose.vue_vue_type_script_setup_true_lang-BXy_GTOb.js} +3 -3
  143. package/dist/{BuiToastDescription.vue_vue_type_script_setup_true_lang-BrSg0VRX.js → BuiToastDescription.vue_vue_type_script_setup_true_lang-Bv9rABPq.js} +2 -2
  144. package/dist/{BuiToastProvider.vue_vue_type_script_setup_true_lang-ZXzJkgBD.js → BuiToastProvider.vue_vue_type_script_setup_true_lang-BW4gPE11.js} +1 -1
  145. package/dist/{BuiToastTitle.vue_vue_type_script_setup_true_lang-Cqz61UTY.js → BuiToastTitle.vue_vue_type_script_setup_true_lang-VfdJTEOM.js} +2 -2
  146. package/dist/{BuiToastViewport.vue_vue_type_script_setup_true_lang-bfIyhbsq.js → BuiToastViewport.vue_vue_type_script_setup_true_lang-Bg4rKMJe.js} +2 -2
  147. package/dist/{BuiToggleGroup.vue_vue_type_script_setup_true_lang-BUIfYPz8.js → BuiToggleGroup.vue_vue_type_script_setup_true_lang-YC1aSpLX.js} +2 -2
  148. package/dist/{BuiToggleGroupItem.vue_vue_type_script_setup_true_lang-Fkd-GbM8.js → BuiToggleGroupItem.vue_vue_type_script_setup_true_lang-99EnNOQy.js} +2 -2
  149. package/dist/{BuiTooltip.vue_vue_type_script_setup_true_lang-Cas1FHjM.js → BuiTooltip.vue_vue_type_script_setup_true_lang-OsjAtJQg.js} +1 -1
  150. package/dist/{BuiTooltipContent.vue_vue_type_script_setup_true_lang-DMaUr0Py.js → BuiTooltipContent.vue_vue_type_script_setup_true_lang-BrV2UqB6.js} +2 -2
  151. package/dist/{BuiTooltipProvider.vue_vue_type_script_setup_true_lang-CCOYEiUg.js → BuiTooltipProvider.vue_vue_type_script_setup_true_lang-C0f8Ccsa.js} +1 -1
  152. package/dist/{BuiTooltipTrigger.vue_vue_type_script_setup_true_lang-CnGv207Y.js → BuiTooltipTrigger.vue_vue_type_script_setup_true_lang-g1qQh676.js} +1 -1
  153. package/dist/{Skeleton.vue_vue_type_script_setup_true_lang-DxJwlH68.js → Skeleton.vue_vue_type_script_setup_true_lang-D__3e-bn.js} +1 -1
  154. package/dist/assets/main.css +1 -1
  155. package/dist/{check-Udt21v9L.js → check-CkPugLmW.js} +1 -1
  156. package/dist/{chevron-down-DWtY5lSf.js → chevron-down-CHlNoqz_.js} +1 -1
  157. package/dist/{chevron-left-OASNjVKd.js → chevron-left-AaaNigbW.js} +1 -1
  158. package/dist/{chevron-right-C8C-EeB3.js → chevron-right-BTrPAYy6.js} +1 -1
  159. package/dist/{circle-iHvJKCQ5.js → circle-BgXC6iSS.js} +1 -1
  160. package/dist/colorUtils-DLz-Bcdu.js +1189 -0
  161. package/dist/components/ui/accordion/BuiAccordion.js +1 -1
  162. package/dist/components/ui/accordion/BuiAccordionContent.js +1 -1
  163. package/dist/components/ui/accordion/BuiAccordionItem.js +1 -1
  164. package/dist/components/ui/accordion/BuiAccordionTrigger.js +1 -1
  165. package/dist/components/ui/accordion/BuiAdvancedAccordionTrigger.js +1 -1
  166. package/dist/components/ui/accordion/index.js +5 -5
  167. package/dist/components/ui/alert/BuiAlertDescription.js +1 -1
  168. package/dist/components/ui/alert/BuiAlertTitle.js +1 -1
  169. package/dist/components/ui/alert/index.js +3 -3
  170. package/dist/components/ui/alert-dialog/BuiAlertDialog.js +1 -1
  171. package/dist/components/ui/alert-dialog/BuiAlertDialogAction.js +1 -1
  172. package/dist/components/ui/alert-dialog/BuiAlertDialogCancel.js +1 -1
  173. package/dist/components/ui/alert-dialog/BuiAlertDialogContent.js +1 -1
  174. package/dist/components/ui/alert-dialog/BuiAlertDialogDescription.js +1 -1
  175. package/dist/components/ui/alert-dialog/BuiAlertDialogFooter.js +1 -1
  176. package/dist/components/ui/alert-dialog/BuiAlertDialogHeader.js +1 -1
  177. package/dist/components/ui/alert-dialog/BuiAlertDialogTitle.js +1 -1
  178. package/dist/components/ui/alert-dialog/BuiAlertDialogTrigger.js +1 -1
  179. package/dist/components/ui/alert-dialog/index.js +9 -9
  180. package/dist/components/ui/aspect-ratio/BuiAspectRatio.js +1 -1
  181. package/dist/components/ui/aspect-ratio/index.js +1 -1
  182. package/dist/components/ui/auto-form/BuiAutoForm.js +1 -1
  183. package/dist/components/ui/auto-form/BuiAutoFormField.js +1 -1
  184. package/dist/components/ui/auto-form/BuiAutoFormFieldArray.js +1 -1
  185. package/dist/components/ui/auto-form/BuiAutoFormFieldArrayCard.js +1 -1
  186. package/dist/components/ui/auto-form/BuiAutoFormFieldBoolean.js +1 -1
  187. package/dist/components/ui/auto-form/BuiAutoFormFieldDate.js +1 -1
  188. package/dist/components/ui/auto-form/BuiAutoFormFieldEnum.js +1 -1
  189. package/dist/components/ui/auto-form/BuiAutoFormFieldFile.js +1 -1
  190. package/dist/components/ui/auto-form/BuiAutoFormFieldInput.js +1 -1
  191. package/dist/components/ui/auto-form/BuiAutoFormFieldNumber.js +1 -1
  192. package/dist/components/ui/auto-form/BuiAutoFormFieldObject.js +1 -1
  193. package/dist/components/ui/auto-form/BuiAutoFormFieldObjectCard.js +1 -1
  194. package/dist/components/ui/auto-form/BuiAutoFormLabel.js +1 -1
  195. package/dist/components/ui/auto-form/constant.js +7 -7
  196. package/dist/components/ui/auto-form/dependencies.js +1 -1
  197. package/dist/components/ui/auto-form/index.js +11 -11
  198. package/dist/components/ui/avatar/BuiAvatarFallback.js +1 -1
  199. package/dist/components/ui/avatar/BuiAvatarImage.js +1 -1
  200. package/dist/components/ui/avatar/index.js +4 -4
  201. package/dist/components/ui/badge/index.js +2 -2
  202. package/dist/components/ui/button/BuiButton.js +1 -1
  203. package/dist/components/ui/button/index.js +1 -1
  204. package/dist/components/ui/calendar/index.js +3 -3
  205. package/dist/components/ui/card/BuiCard.js +1 -1
  206. package/dist/components/ui/card/BuiCardContent.js +1 -1
  207. package/dist/components/ui/card/BuiCardDescription.js +1 -1
  208. package/dist/components/ui/card/BuiCardFooter.js +1 -1
  209. package/dist/components/ui/card/BuiCardHeader.js +1 -1
  210. package/dist/components/ui/card/BuiCardTitle.js +1 -1
  211. package/dist/components/ui/card/index.js +6 -6
  212. package/dist/components/ui/checkbox/BuiCheckbox.js +1 -1
  213. package/dist/components/ui/checkbox/index.js +1 -1
  214. package/dist/components/ui/collapsible/BuiCollapsible.js +1 -1
  215. package/dist/components/ui/collapsible/BuiCollapsibleContent.js +1 -1
  216. package/dist/components/ui/collapsible/BuiCollapsibleTrigger.js +1 -1
  217. package/dist/components/ui/collapsible/index.js +3 -3
  218. package/dist/components/ui/color-picker/BuiColorPicker.js +4 -0
  219. package/dist/components/ui/color-picker/BuiColorPicker.vue.d.ts +27 -0
  220. package/dist/components/ui/color-picker/index.d.ts +7 -0
  221. package/dist/components/ui/color-picker/index.js +201 -0
  222. package/dist/components/ui/command/BuiCommand.js +1 -1
  223. package/dist/components/ui/command/BuiCommandDialog.js +1 -1
  224. package/dist/components/ui/command/BuiCommandEmpty.js +1 -1
  225. package/dist/components/ui/command/BuiCommandGroup.js +1 -1
  226. package/dist/components/ui/command/BuiCommandInput.js +1 -1
  227. package/dist/components/ui/command/BuiCommandItem.js +1 -1
  228. package/dist/components/ui/command/BuiCommandList.js +1 -1
  229. package/dist/components/ui/command/BuiCommandSeparator.js +1 -1
  230. package/dist/components/ui/command/BuiCommandShortcut.js +1 -1
  231. package/dist/components/ui/command/index.js +9 -9
  232. package/dist/components/ui/context-menu/BuiContextMenu.js +1 -1
  233. package/dist/components/ui/context-menu/BuiContextMenuCheckboxItem.js +1 -1
  234. package/dist/components/ui/context-menu/BuiContextMenuContent.js +1 -1
  235. package/dist/components/ui/context-menu/BuiContextMenuGroup.js +1 -1
  236. package/dist/components/ui/context-menu/BuiContextMenuItem.js +1 -1
  237. package/dist/components/ui/context-menu/BuiContextMenuLabel.js +1 -1
  238. package/dist/components/ui/context-menu/BuiContextMenuPortal.js +1 -1
  239. package/dist/components/ui/context-menu/BuiContextMenuRadioGroup.js +1 -1
  240. package/dist/components/ui/context-menu/BuiContextMenuRadioItem.js +1 -1
  241. package/dist/components/ui/context-menu/BuiContextMenuSeparator.js +1 -1
  242. package/dist/components/ui/context-menu/BuiContextMenuShortcut.js +1 -1
  243. package/dist/components/ui/context-menu/BuiContextMenuSub.js +1 -1
  244. package/dist/components/ui/context-menu/BuiContextMenuSubContent.js +1 -1
  245. package/dist/components/ui/context-menu/BuiContextMenuSubTrigger.js +1 -1
  246. package/dist/components/ui/context-menu/BuiContextMenuTrigger.js +1 -1
  247. package/dist/components/ui/context-menu/index.js +14 -14
  248. package/dist/components/ui/dialog/BuiDialog.js +1 -1
  249. package/dist/components/ui/dialog/BuiDialogClose.js +1 -1
  250. package/dist/components/ui/dialog/BuiDialogContent.js +1 -1
  251. package/dist/components/ui/dialog/BuiDialogDescription.js +1 -1
  252. package/dist/components/ui/dialog/BuiDialogFooter.js +1 -1
  253. package/dist/components/ui/dialog/BuiDialogHeader.js +1 -1
  254. package/dist/components/ui/dialog/BuiDialogTitle.js +1 -1
  255. package/dist/components/ui/dialog/BuiDialogTrigger.js +1 -1
  256. package/dist/components/ui/dialog/index.js +8 -8
  257. package/dist/components/ui/dropdown-menu/BuiDropdownMenu.js +1 -1
  258. package/dist/components/ui/dropdown-menu/BuiDropdownMenuCheckboxItem.js +1 -1
  259. package/dist/components/ui/dropdown-menu/BuiDropdownMenuContent.js +1 -1
  260. package/dist/components/ui/dropdown-menu/BuiDropdownMenuGroup.js +1 -1
  261. package/dist/components/ui/dropdown-menu/BuiDropdownMenuItem.js +1 -1
  262. package/dist/components/ui/dropdown-menu/BuiDropdownMenuLabel.js +1 -1
  263. package/dist/components/ui/dropdown-menu/BuiDropdownMenuRadioGroup.js +1 -1
  264. package/dist/components/ui/dropdown-menu/BuiDropdownMenuRadioItem.js +1 -1
  265. package/dist/components/ui/dropdown-menu/BuiDropdownMenuSeparator.js +1 -1
  266. package/dist/components/ui/dropdown-menu/BuiDropdownMenuShortcut.js +1 -1
  267. package/dist/components/ui/dropdown-menu/BuiDropdownMenuSub.js +1 -1
  268. package/dist/components/ui/dropdown-menu/BuiDropdownMenuSubContent.js +1 -1
  269. package/dist/components/ui/dropdown-menu/BuiDropdownMenuSubTrigger.js +1 -1
  270. package/dist/components/ui/dropdown-menu/BuiDropdownMenuTrigger.js +1 -1
  271. package/dist/components/ui/dropdown-menu/index.js +15 -15
  272. package/dist/components/ui/form/BuiFormControl.js +1 -1
  273. package/dist/components/ui/form/BuiFormDescription.js +1 -1
  274. package/dist/components/ui/form/BuiFormItem.js +2 -2
  275. package/dist/components/ui/form/BuiFormLabel.js +1 -1
  276. package/dist/components/ui/form/BuiFormMessage.js +1 -1
  277. package/dist/components/ui/form/index.js +1 -1
  278. package/dist/components/ui/form/useFormField.js +1 -1
  279. package/dist/components/ui/health/index.js +1 -1
  280. package/dist/components/ui/hover-card/BuiHoverCard.js +1 -1
  281. package/dist/components/ui/hover-card/BuiHoverCardContent.js +1 -1
  282. package/dist/components/ui/hover-card/BuiHoverCardTrigger.js +1 -1
  283. package/dist/components/ui/hover-card/index.js +3 -3
  284. package/dist/components/ui/input/BuiColorInput.js +4 -0
  285. package/dist/components/ui/input/BuiColorInput.vue.d.ts +21 -0
  286. package/dist/components/ui/input/index.d.ts +1 -0
  287. package/dist/components/ui/input/index.js +148 -50
  288. package/dist/components/ui/label/BuiLabel.js +1 -1
  289. package/dist/components/ui/label/index.js +1 -1
  290. package/dist/components/ui/pagination/BuiPaginationCommon.js +1 -1
  291. package/dist/components/ui/pagination/BuiPaginationCommon.vue.d.ts +2 -2
  292. package/dist/components/ui/pagination/BuiPaginationEllipsis.js +1 -1
  293. package/dist/components/ui/pagination/BuiPaginationFirst.js +1 -1
  294. package/dist/components/ui/pagination/BuiPaginationLast.js +1 -1
  295. package/dist/components/ui/pagination/BuiPaginationNext.js +1 -1
  296. package/dist/components/ui/pagination/BuiPaginationPrev.js +1 -1
  297. package/dist/components/ui/pagination/index.js +7 -7
  298. package/dist/components/ui/popover/BuiPopover.js +1 -1
  299. package/dist/components/ui/popover/BuiPopoverContent.js +1 -1
  300. package/dist/components/ui/popover/BuiPopoverTrigger.js +1 -1
  301. package/dist/components/ui/popover/index.js +3 -3
  302. package/dist/components/ui/progress/BuiProgress.vue.d.ts +1 -1
  303. package/dist/components/ui/progress/index.d.ts +1 -1
  304. package/dist/components/ui/progress/index.js +2 -2
  305. package/dist/components/ui/radio-group/BuiRadioGroup.js +1 -1
  306. package/dist/components/ui/radio-group/BuiRadioGroupItem.js +1 -1
  307. package/dist/components/ui/radio-group/index.js +2 -2
  308. package/dist/components/ui/scroll-area/BuiScrollArea.js +1 -1
  309. package/dist/components/ui/scroll-area/BuiScrollBar.js +1 -1
  310. package/dist/components/ui/scroll-area/index.js +2 -2
  311. package/dist/components/ui/select/Bui.js +2 -2
  312. package/dist/components/ui/select/BuiSelect.js +1 -1
  313. package/dist/components/ui/select/BuiSelectContent.js +1 -1
  314. package/dist/components/ui/select/BuiSelectGroup.js +1 -1
  315. package/dist/components/ui/select/BuiSelectItem.js +1 -1
  316. package/dist/components/ui/select/BuiSelectItemText.js +1 -1
  317. package/dist/components/ui/select/BuiSelectLabel.js +1 -1
  318. package/dist/components/ui/select/BuiSelectSeparator.js +1 -1
  319. package/dist/components/ui/select/BuiSelectTrigger.js +1 -1
  320. package/dist/components/ui/select/BuiSelectValue.js +1 -1
  321. package/dist/components/ui/select/index.js +9 -9
  322. package/dist/components/ui/separator/BuiSeparator.js +1 -1
  323. package/dist/components/ui/separator/index.js +1 -1
  324. package/dist/components/ui/sheet/BuiSheet.js +1 -1
  325. package/dist/components/ui/sheet/BuiSheetClose.js +1 -1
  326. package/dist/components/ui/sheet/BuiSheetDescription.js +1 -1
  327. package/dist/components/ui/sheet/BuiSheetFooter.js +1 -1
  328. package/dist/components/ui/sheet/BuiSheetHeader.js +1 -1
  329. package/dist/components/ui/sheet/BuiSheetTitle.js +1 -1
  330. package/dist/components/ui/sheet/BuiSheetTrigger.js +1 -1
  331. package/dist/components/ui/sheet/index.js +10 -10
  332. package/dist/components/ui/skeleton/Skeleton.js +1 -1
  333. package/dist/components/ui/skeleton/index.js +1 -1
  334. package/dist/components/ui/slider/BuiSlider.js +1 -1
  335. package/dist/components/ui/slider/index.js +1 -1
  336. package/dist/components/ui/stepper/BuiStepper.js +1 -1
  337. package/dist/components/ui/stepper/BuiStepperDescription.js +1 -1
  338. package/dist/components/ui/stepper/BuiStepperIndicator.js +1 -1
  339. package/dist/components/ui/stepper/BuiStepperItem.js +1 -1
  340. package/dist/components/ui/stepper/BuiStepperSeparator.js +1 -1
  341. package/dist/components/ui/stepper/BuiStepperTitle.js +1 -1
  342. package/dist/components/ui/stepper/BuiStepperTrigger.js +1 -1
  343. package/dist/components/ui/stepper/index.js +7 -7
  344. package/dist/components/ui/switch/BuiSwitch.js +1 -1
  345. package/dist/components/ui/switch/index.js +1 -1
  346. package/dist/components/ui/table/BuiDataTableColumnList.js +1 -1
  347. package/dist/components/ui/table/BuiTable.js +1 -1
  348. package/dist/components/ui/table/BuiTableBody.js +1 -1
  349. package/dist/components/ui/table/BuiTableCaption.js +1 -1
  350. package/dist/components/ui/table/BuiTableCell.js +1 -1
  351. package/dist/components/ui/table/BuiTableEmpty.js +1 -1
  352. package/dist/components/ui/table/BuiTableFooter.js +1 -1
  353. package/dist/components/ui/table/BuiTableHead.js +1 -1
  354. package/dist/components/ui/table/BuiTableHeader.js +1 -1
  355. package/dist/components/ui/table/BuiTableRow.js +1 -1
  356. package/dist/components/ui/table/index.js +24 -24
  357. package/dist/components/ui/tabs/BuiTabs.js +1 -1
  358. package/dist/components/ui/tabs/BuiTabsContent.js +1 -1
  359. package/dist/components/ui/tabs/index.js +4 -4
  360. package/dist/components/ui/textarea/index.js +1 -1
  361. package/dist/components/ui/toast/BuiToastAction.js +1 -1
  362. package/dist/components/ui/toast/BuiToastClose.js +1 -1
  363. package/dist/components/ui/toast/BuiToastDescription.js +1 -1
  364. package/dist/components/ui/toast/BuiToastProvider.js +1 -1
  365. package/dist/components/ui/toast/BuiToastTitle.js +1 -1
  366. package/dist/components/ui/toast/BuiToastViewport.js +1 -1
  367. package/dist/components/ui/toast/index.js +8 -8
  368. package/dist/components/ui/toggle/index.js +2 -2
  369. package/dist/components/ui/toggle-group/BuiToggleGroup.js +1 -1
  370. package/dist/components/ui/toggle-group/BuiToggleGroupItem.js +1 -1
  371. package/dist/components/ui/toggle-group/index.js +2 -2
  372. package/dist/components/ui/tooltip/BuiTooltip.js +1 -1
  373. package/dist/components/ui/tooltip/BuiTooltipContent.js +1 -1
  374. package/dist/components/ui/tooltip/BuiTooltipProvider.js +1 -1
  375. package/dist/components/ui/tooltip/BuiTooltipTrigger.js +1 -1
  376. package/dist/components/ui/tooltip/index.js +4 -4
  377. package/dist/{index-DKlaqzM0.js → index-0I6LZbPQ.js} +3 -3
  378. package/dist/index.css +1 -0
  379. package/dist/index.d.ts +1 -0
  380. package/dist/index.js +303 -298
  381. package/dist/lib/colorUtils.d.ts +12 -0
  382. package/dist/lib/colorUtils.js +9 -0
  383. package/dist/lib/useColorDraggable.d.ts +16 -0
  384. package/dist/lib/useColorDraggable.js +31 -0
  385. package/dist/lib/utils.js +1 -1
  386. package/dist/{utils-C11OfLQK.js → utils-Dn2Y7TRK.js} +1 -1
  387. package/dist/{x-BCuyj3Zc.js → x-Cujd6KIO.js} +1 -1
  388. package/package.json +2 -1
  389. package/src/components/stories/BuiColorPicker.story.vue +107 -0
  390. package/src/components/stories/BuiInput.story.vue +10 -0
  391. package/src/components/ui/color-picker/BuiColorPicker.vue +215 -0
  392. package/src/components/ui/color-picker/index.ts +33 -0
  393. package/src/components/ui/input/BuiColorInput.vue +86 -0
  394. package/src/components/ui/input/index.ts +1 -0
  395. package/src/index.ts +1 -0
  396. package/src/lib/colorUtils.ts +43 -0
  397. package/src/lib/useColorDraggable.ts +75 -0
  398. package/dist/BuiAutoFormFieldInput.vue_vue_type_script_setup_true_lang-D4RSWQ2a.js +0 -58
  399. package/dist/BuiAutoFormFieldNumber.vue_vue_type_script_setup_true_lang-Db9bTqM3.js +0 -57
  400. /package/dist/{variables.css → index2.css} +0 -0
@@ -0,0 +1,12 @@
1
+ import { HSLObject } from 'colortranslator';
2
+ export declare const HEX_REGEXP: RegExp;
3
+ export declare const HEX_REGEXP_NO_POUND: RegExp;
4
+ export type HSVColor = {
5
+ h: number;
6
+ s: number;
7
+ v: number;
8
+ };
9
+ export declare function HSLtoHSV(hsl: HSLObject): HSVColor;
10
+ export declare function HSVtoHSL(hsv: HSVColor): HSLObject;
11
+ export declare function normalizeHue(hue: number, dir?: 'left' | 'right'): number;
12
+ export declare function normalizeBrightness(brightness: number): number;
@@ -0,0 +1,9 @@
1
+ import { d as H, c as o, H as E, a as e, n as r, b as n } from "../colorUtils-DLz-Bcdu.js";
2
+ export {
3
+ H as HEX_REGEXP,
4
+ o as HEX_REGEXP_NO_POUND,
5
+ E as HSLtoHSV,
6
+ e as HSVtoHSL,
7
+ r as normalizeBrightness,
8
+ n as normalizeHue
9
+ };
@@ -0,0 +1,16 @@
1
+ import { MaybeRefOrGetter } from 'vue';
2
+ export declare function useColorDraggable(targetElement: MaybeRefOrGetter<HTMLElement | null>, containerElement: MaybeRefOrGetter<HTMLElement | null>, axis?: 'x' | 'y' | 'both', initialPosition?: {
3
+ x: number;
4
+ y: number;
5
+ }, disabled?: MaybeRefOrGetter<boolean | undefined>): {
6
+ position: import('vue').Ref<{
7
+ x: number;
8
+ y: number;
9
+ }, {
10
+ x: number;
11
+ y: number;
12
+ } | {
13
+ x: number;
14
+ y: number;
15
+ }>;
16
+ };
@@ -0,0 +1,31 @@
1
+ import { ref as f } from "vue";
2
+ import { isClient as g, useEventListener as u, toValue as c, useElementBounding as p } from "@vueuse/core";
3
+ function M(h, i, r = "both", v = { x: 0, y: 0 }, d) {
4
+ const a = f(v), e = f(), m = (t) => {
5
+ if (c(d)) return t.preventDefault();
6
+ const o = c(i), l = p(h), n = p(i);
7
+ e.value = {
8
+ x: t.clientX - (o ? t.clientX - n.left.value + o.scrollLeft : l.left.value),
9
+ y: t.clientY - (o ? t.clientY - n.top.value + o.scrollTop : l.top.value)
10
+ }, s(t);
11
+ }, s = (t) => {
12
+ if (!e.value) return;
13
+ const o = c(i);
14
+ let { x: l, y: n } = a.value;
15
+ o && (r === "x" || r === "both") && (l = Math.min(
16
+ Math.max(0, (t.clientX - e.value.x) / o.scrollWidth * 100),
17
+ 100
18
+ )), o && (r === "y" || r === "both") && (n = Math.min(
19
+ Math.max(0, (t.clientY - e.value.y) / o.scrollHeight * 100),
20
+ 100
21
+ )), a.value = { x: l, y: n };
22
+ }, w = () => {
23
+ e.value && (e.value = void 0);
24
+ };
25
+ return g && (u(i, "pointerdown", m), u(window, "pointermove", s), u(window, "pointerup", w)), {
26
+ position: a
27
+ };
28
+ }
29
+ export {
30
+ M as useColorDraggable
31
+ };
package/dist/lib/utils.js CHANGED
@@ -1,4 +1,4 @@
1
- import { g as m, t as r, v as e } from "../utils-C11OfLQK.js";
1
+ import { g as m, t as r, v as e } from "../utils-Dn2Y7TRK.js";
2
2
  import "vue";
3
3
  export {
4
4
  m as cn,
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as N, provide as Ce, useAttrs as H, openBlock as $, createElementBlock as fe, mergeProps as Q, unref as f, renderSlot as F, inject as X, createBlock as O, withCtx as ee, toValue as _e, toRef as Ie, normalizeClass as ze, h as S } from "vue";
2
2
  import { FieldContextKey as Ae, useIsFieldValid as Se, useIsFieldDirty as Me, useIsFieldTouched as Ne, useFieldError as $e, ErrorMessage as Re } from "vee-validate";
3
- import { bs as je, bt as Ee, av as Ge, bu as Pe } from "./index-DKlaqzM0.js";
3
+ import { bt as je, bu as Ee, av as Ge, bs as Pe } from "./index-0I6LZbPQ.js";
4
4
  function ge(e) {
5
5
  var t, r, o = "";
6
6
  if (typeof e == "string" || typeof e == "number") o += e;
@@ -1,4 +1,4 @@
1
- import { h as e } from "./utils-C11OfLQK.js";
1
+ import { h as e } from "./utils-Dn2Y7TRK.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.37",
3
+ "version": "1.4.38",
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
+ "colortranslator": "^5.0.0",
30
31
  "lodash-es": "^4.17.21",
31
32
  "lucide-vue-next": "0.441.0",
32
33
  "radix-vue": "1.9.8",
@@ -0,0 +1,107 @@
1
+ <script setup lang="ts">
2
+ import BuiColorPicker from '@/components/ui/color-picker/BuiColorPicker.vue'
3
+ import {
4
+ BuiButton,
5
+ BuiPopover,
6
+ BuiPopoverTrigger,
7
+ BuiPopoverContent,
8
+ BuiSelect,
9
+ BuiSelectContent,
10
+ BuiSelectGroup,
11
+ BuiSelectItem,
12
+ BuiSelectTrigger,
13
+ BuiSelectValue
14
+ } from '@/index'
15
+ import { ref } from 'vue'
16
+
17
+ const sizes: {
18
+ name: string
19
+ value: 'lg' | 'sm' | 'xs' | 'md' | 'xl'
20
+ }[] = [
21
+ {
22
+ name: 'Extra Small',
23
+ value: 'xs'
24
+ },
25
+ {
26
+ name: 'Small',
27
+ value: 'sm'
28
+ },
29
+ {
30
+ name: 'Medium',
31
+ value: 'md'
32
+ },
33
+ {
34
+ name: 'Large',
35
+ value: 'lg'
36
+ },
37
+ {
38
+ name: 'Extra Large',
39
+ value: 'xl'
40
+ }
41
+ ]
42
+
43
+ const pickedColor = ref<string>('#29CCFF')
44
+ const currentSize = ref<'lg' | 'sm' | 'xs' | 'md' | 'xl' | undefined>(undefined)
45
+ </script>
46
+
47
+ <template>
48
+ <Story title="BuiColorPicker" autoPropsDisabled :layout="{ type: 'grid', width: '33%' }">
49
+ <Variant key="basic" title="Basic">
50
+ <div class="flex flex-col gap-4 p-4">
51
+ <BuiColorPicker />
52
+ </div>
53
+ </Variant>
54
+
55
+ <Variant key="defaultColor" title="Default color">
56
+ <div class="flex flex-col gap-4 p-4">
57
+ <BuiColorPicker :defaultValue="'#29CCFF'" />
58
+ </div>
59
+ </Variant>
60
+
61
+ <Variant key="disabled" title="Disabled">
62
+ <div class="flex flex-col gap-4 p-4">
63
+ <BuiColorPicker disabled />
64
+ </div>
65
+ </Variant>
66
+
67
+ <Variant key="sizes" title="Available sizes">
68
+ <div class="flex flex-col gap-4 p-4">
69
+ <BuiSelect v-model="currentSize">
70
+ <BuiSelectTrigger class="w-[180px]">
71
+ <BuiSelectValue placeholder="Select size" />
72
+ </BuiSelectTrigger>
73
+ <BuiSelectContent>
74
+ <BuiSelectGroup>
75
+ <BuiSelectItem v-for="size in sizes" :key="size.value" :value="size.value">
76
+ {{ size.name }}
77
+ </BuiSelectItem>
78
+ </BuiSelectGroup>
79
+ </BuiSelectContent>
80
+ </BuiSelect>
81
+
82
+ <BuiColorPicker :size="currentSize" :defaultValue="'#008422'" />
83
+ </div>
84
+ </Variant>
85
+ <Variant key="withPopover" title="With Popover">
86
+ <div class="flex w-full flex-row justify-center pt-4">
87
+ <BuiPopover>
88
+ <BuiPopoverTrigger>
89
+ <BuiButton
90
+ variant="outline"
91
+ class="flex flex-row gap-2 text-sm"
92
+ :style="{ color: pickedColor, borderColor: pickedColor }"
93
+ >
94
+ <span :style="{ backgroundColor: pickedColor }" class="size-3 rounded-full" />
95
+ <span>Pick a color</span>
96
+ </BuiButton>
97
+ </BuiPopoverTrigger>
98
+ <BuiPopoverContent class="w-80">
99
+ <div class="flex flex-col gap-4 p-4">
100
+ <BuiColorPicker v-model="pickedColor" />
101
+ </div>
102
+ </BuiPopoverContent>
103
+ </BuiPopover>
104
+ </div>
105
+ </Variant>
106
+ </Story>
107
+ </template>
@@ -3,6 +3,7 @@ import BuiInput from '@/components/ui/input/BuiInput.vue'
3
3
  import BuiLabel from '@/components/ui/label/BuiLabel.vue'
4
4
  import { BuiPasswordInput } from '@/components/ui/input'
5
5
  import { BuiBadgedInput } from '@/components/ui/input'
6
+ import { BuiColorInput } from '@/components/ui/input'
6
7
  </script>
7
8
 
8
9
  <template>
@@ -81,5 +82,14 @@ import { BuiBadgedInput } from '@/components/ui/input'
81
82
  </div>
82
83
  </div>
83
84
  </Variant>
85
+
86
+ <Variant title="Color picker">
87
+ <div class="flex items-center space-x-2 p-1">
88
+ <div class="grid w-full max-w-sm items-center gap-1.5">
89
+ <BuiLabel for="colorPicker">Color</BuiLabel>
90
+ <BuiColorInput id="colorPicker" :defaultValue="'#E05FA3'" />
91
+ </div>
92
+ </div>
93
+ </Variant>
84
94
  </Story>
85
95
  </template>
@@ -0,0 +1,215 @@
1
+ <script setup lang="ts">
2
+ import { ref, computed, nextTick } from 'vue'
3
+ import { watchThrottled, watchPausable } from '@vueuse/core'
4
+ import { Primitive } from 'radix-vue'
5
+ import { ColorTranslator } from 'colortranslator'
6
+ import { colorPickerSelectorVariants, colorPickerTrackVariants } from '.'
7
+ import {
8
+ type HSVColor,
9
+ HSLtoHSV,
10
+ HSVtoHSL,
11
+ normalizeBrightness,
12
+ normalizeHue
13
+ } from '@/lib/colorUtils'
14
+ import { useColorDraggable } from '@/lib/useColorDraggable'
15
+ import { cn } from '@/lib/utils'
16
+
17
+ const props = withDefaults(
18
+ defineProps<{
19
+ as?: string
20
+ disabled?: boolean
21
+ size?: NonNullable<Parameters<typeof colorPickerSelectorVariants>[0]>['size']
22
+ defaultValue?: string
23
+ format?: 'hex' | 'rgb' | 'hsl' | 'cmyk' | 'lab'
24
+ throttle?: number
25
+ ui?: {
26
+ selectorClass?: string
27
+ trackClass?: string
28
+ }
29
+ }>(),
30
+ {
31
+ as: 'div',
32
+ format: 'hex',
33
+ defaultValue: '#FFFFFF',
34
+ throttle: 50
35
+ }
36
+ )
37
+
38
+ const modelValue = defineModel<string>(undefined)
39
+
40
+ const pickedColor = computed<HSVColor>({
41
+ get() {
42
+ try {
43
+ const color = new ColorTranslator(modelValue.value || props.defaultValue)
44
+
45
+ return HSLtoHSV(color.HSLObject)
46
+ } catch (_) {
47
+ return { h: 0, s: 0, v: 100 }
48
+ }
49
+ },
50
+
51
+ set(value) {
52
+ const color = new ColorTranslator(HSVtoHSL(value), {
53
+ labUnit: 'percent',
54
+ cmykUnit: 'percent',
55
+ cmykFunction: 'cmyk'
56
+ })
57
+
58
+ switch (props.format) {
59
+ case 'rgb':
60
+ modelValue.value = color.RGB
61
+ break
62
+ case 'hsl':
63
+ modelValue.value = color.HSL
64
+ break
65
+ case 'cmyk':
66
+ modelValue.value = color.CMYK
67
+ break
68
+ case 'lab':
69
+ modelValue.value = color.CIELab
70
+ break
71
+ case 'hex':
72
+ default:
73
+ modelValue.value = color.HEX
74
+ }
75
+ }
76
+ })
77
+
78
+ const selectorRef = ref<HTMLDivElement | null>(null)
79
+ const selectorThumbRef = ref<HTMLDivElement | null>(null)
80
+ const trackRef = ref<HTMLDivElement | null>(null)
81
+ const trackThumbRef = ref<HTMLDivElement | null>(null)
82
+
83
+ const { position: selectorThumbPosition } = useColorDraggable(
84
+ selectorThumbRef,
85
+ selectorRef,
86
+ 'both',
87
+ {
88
+ x: pickedColor.value.s,
89
+ y: normalizeBrightness(pickedColor.value.v)
90
+ },
91
+ props.disabled
92
+ )
93
+
94
+ const { position: trackThumbPosition } = useColorDraggable(
95
+ trackThumbRef,
96
+ trackRef,
97
+ 'y',
98
+ {
99
+ x: 0,
100
+ y: normalizeHue(pickedColor.value.h, 'right')
101
+ },
102
+ props.disabled
103
+ )
104
+
105
+ const trackThumbColor = computed(
106
+ () =>
107
+ new ColorTranslator(
108
+ HSVtoHSL({
109
+ h: normalizeHue(trackThumbPosition.value.y),
110
+ s: 100,
111
+ v: 100
112
+ })
113
+ ).HEX
114
+ )
115
+
116
+ const selectorStyle = computed(() => ({
117
+ backgroundColor: trackThumbColor.value
118
+ }))
119
+
120
+ const selectorThumbStyle = computed(() => ({
121
+ backgroundColor: new ColorTranslator(modelValue.value || props.defaultValue).HEX,
122
+ left: `${selectorThumbPosition.value.x}%`,
123
+ top: `${selectorThumbPosition.value.y}%`
124
+ }))
125
+
126
+ const trackThumbStyle = computed(() => ({
127
+ backgroundColor: trackThumbColor.value,
128
+ top: `${trackThumbPosition.value.y}%`
129
+ }))
130
+
131
+ const { pause: pauseWatchColor, resume: resumeWatchColor } = watchPausable(pickedColor, (hsv) => {
132
+ selectorThumbPosition.value = {
133
+ x: hsv.s,
134
+ y: normalizeBrightness(hsv.v)
135
+ }
136
+ trackThumbPosition.value = {
137
+ x: 0,
138
+ y: normalizeHue(hsv.h, 'right')
139
+ }
140
+ })
141
+
142
+ watchThrottled(
143
+ [selectorThumbPosition, trackThumbPosition],
144
+ () => {
145
+ pauseWatchColor()
146
+
147
+ pickedColor.value = {
148
+ h: normalizeHue(trackThumbPosition.value.y),
149
+ s: selectorThumbPosition.value.x,
150
+ v: normalizeBrightness(selectorThumbPosition.value.y)
151
+ }
152
+
153
+ nextTick(resumeWatchColor)
154
+ },
155
+ { throttle: () => props.throttle }
156
+ )
157
+ </script>
158
+ <template>
159
+ <Primitive
160
+ :as="as"
161
+ class="data-[disabled]:opacity-75"
162
+ :data-disabled="disabled ? true : undefined"
163
+ >
164
+ <div class="flex gap-4">
165
+ <div ref="selectorRef" :class="colorPickerSelectorVariants({ size })" :style="selectorStyle">
166
+ <div class="relative h-full w-full rounded-md" data-color-picker-background>
167
+ <div
168
+ ref="selectorThumbRef"
169
+ :class="
170
+ cn(
171
+ 'absolute size-4 -translate-x-1/2 -translate-y-1/2 cursor-pointer rounded-full ring-2 ring-background data-[disabled]:cursor-not-allowed',
172
+ ui?.selectorClass
173
+ )
174
+ "
175
+ :style="selectorThumbStyle"
176
+ :data-disabled="disabled ? true : undefined"
177
+ ></div>
178
+ </div>
179
+ </div>
180
+ <div ref="trackRef" :class="colorPickerTrackVariants({ size })" data-color-picker-track>
181
+ <div
182
+ ref="trackThumbRef"
183
+ :class="
184
+ cn(
185
+ 'absolute size-4 -translate-x-[4px] -translate-y-1/2 transform cursor-pointer rounded-full ring-2 ring-background data-[disabled]:cursor-not-allowed rtl:translate-x-[4px]',
186
+ ui?.trackClass
187
+ )
188
+ "
189
+ :style="trackThumbStyle"
190
+ :data-disabled="disabled ? true : undefined"
191
+ ></div>
192
+ </div>
193
+ </div>
194
+ </Primitive>
195
+ </template>
196
+
197
+ <style scoped>
198
+ [data-color-picker-background] {
199
+ background-image: linear-gradient(to top, #000 0%, rgba(0, 0, 0, 0) 100%),
200
+ linear-gradient(to right, #fff 0%, rgba(255, 255, 255, 0) 100%);
201
+ }
202
+
203
+ [data-color-picker-track] {
204
+ background-image: linear-gradient(
205
+ 0deg,
206
+ red 0,
207
+ #f0f 17%,
208
+ #00f 33%,
209
+ #0ff 50%,
210
+ #0f0 67%,
211
+ #ff0 83%,
212
+ red
213
+ );
214
+ }
215
+ </style>
@@ -0,0 +1,33 @@
1
+ import { cva } from 'class-variance-authority'
2
+
3
+ export { default as BuiColorPicker } from './BuiColorPicker.vue'
4
+
5
+ export const colorPickerSelectorVariants = cva('touch-none rounded-md', {
6
+ variants: {
7
+ size: {
8
+ xs: 'w-32 h-32',
9
+ sm: 'w-36 h-36',
10
+ md: 'w-40 h-40',
11
+ lg: 'w-44 h-44',
12
+ xl: 'w-48 h-48'
13
+ }
14
+ },
15
+ defaultVariants: {
16
+ size: 'md'
17
+ }
18
+ })
19
+
20
+ export const colorPickerTrackVariants = cva('relative w-[8px] touch-none rounded-md', {
21
+ variants: {
22
+ size: {
23
+ xs: 'h-32',
24
+ sm: 'h-36',
25
+ md: 'h-40',
26
+ lg: 'h-44',
27
+ xl: 'h-48'
28
+ }
29
+ },
30
+ defaultVariants: {
31
+ size: 'md'
32
+ }
33
+ })
@@ -0,0 +1,86 @@
1
+ <script setup lang="ts">
2
+ import { BuiInput, BuiPopover, BuiPopoverTrigger, BuiPopoverContent } from '@/index'
3
+ import { useElementBounding } from '@vueuse/core'
4
+ import { ref, watch } from 'vue'
5
+ import { Palette as PaletteIcon } from 'lucide-vue-next'
6
+ import BuiColorPicker from '../color-picker/BuiColorPicker.vue'
7
+ import { HEX_REGEXP, HEX_REGEXP_NO_POUND } from '@/lib/colorUtils'
8
+ import { cn } from '@/lib/utils'
9
+
10
+ const props = withDefaults(
11
+ defineProps<{
12
+ id?: string
13
+ defaultValue?: string
14
+ disabled?: boolean
15
+ ui?: {
16
+ badgeClass?: string
17
+ inputClass?: string
18
+ }
19
+ }>(),
20
+ {
21
+ defaultValue: '#FFFFFF',
22
+ disabled: false
23
+ }
24
+ )
25
+
26
+ const modelValue = defineModel<string>(undefined)
27
+
28
+ const paletteBadge = ref<HTMLDivElement | null>(null)
29
+ const { width } = useElementBounding(paletteBadge)
30
+ const MAGIC_NUMBER = 12 // 8 (right-2) + 4 (just some offset)
31
+
32
+ const validatedDefaultValue = () => {
33
+ if (modelValue.value && HEX_REGEXP.test(modelValue.value)) return modelValue.value
34
+
35
+ if (props.defaultValue && HEX_REGEXP.test(props.defaultValue)) return props.defaultValue
36
+
37
+ return '#FFFFFF'
38
+ }
39
+
40
+ const writtenColor = ref<string>(validatedDefaultValue().substring(1))
41
+ const pickedColor = ref<string>(validatedDefaultValue())
42
+
43
+ watch(writtenColor, () => {
44
+ if (HEX_REGEXP_NO_POUND.test(writtenColor.value)) {
45
+ modelValue.value = `#${writtenColor.value}`
46
+ pickedColor.value = `#${writtenColor.value}`
47
+ }
48
+ })
49
+
50
+ watch(pickedColor, () => {
51
+ modelValue.value = pickedColor.value
52
+ writtenColor.value = pickedColor.value.substring(1)
53
+ })
54
+ </script>
55
+
56
+ <template>
57
+ <BuiPopover>
58
+ <BuiPopoverTrigger>
59
+ <div class="nowrap relative flex w-32 flex-row font-medium uppercase text-foreground">
60
+ <div
61
+ ref="paletteBadge"
62
+ :class="cn('absolute left-2 top-1.5 flex flex-row items-center gap-1', ui?.badgeClass)"
63
+ >
64
+ <PaletteIcon class="h-4 w-4 shrink-0" />
65
+ <div class="h-4 w-4 rounded" :style="{ backgroundColor: pickedColor }"></div>
66
+ <div class="font-bold text-foreground/[.56]">#</div>
67
+ </div>
68
+ <BuiInput
69
+ v-model="writtenColor"
70
+ :id="id"
71
+ :style="{ paddingLeft: width + MAGIC_NUMBER + 'px' }"
72
+ :disabled="disabled"
73
+ :class="ui?.inputClass"
74
+ />
75
+ </div>
76
+ </BuiPopoverTrigger>
77
+ <BuiPopoverContent class="w-fit" align="start">
78
+ <BuiColorPicker
79
+ v-model="pickedColor"
80
+ format="hex"
81
+ :disabled="disabled"
82
+ :ui="{ selectorClass: 'ring-popover', trackClass: 'ring-popover' }"
83
+ />
84
+ </BuiPopoverContent>
85
+ </BuiPopover>
86
+ </template>
@@ -3,6 +3,7 @@ import { cva } from 'class-variance-authority'
3
3
  export { default as BuiInput } from './BuiInput.vue'
4
4
  export { default as BuiPasswordInput } from './BuiPasswordInput.vue'
5
5
  export { default as BuiBadgedInput } from './BuiBadgedInput.vue'
6
+ export { default as BuiColorInput } from './BuiColorInput.vue'
6
7
 
7
8
  export const inputVariants = cva(
8
9
  'flex h-8 w-full rounded bg-background border px-2 py-1 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-30 dark:disabled:opacity-55 read-only:opacity-30 dark:read-only:opacity-55 aria-[invalid=true]:border-destructive-foreground',
package/src/index.ts CHANGED
@@ -40,6 +40,7 @@ export * from './components/ui/scroll-area/index'
40
40
  export * from './components/ui/collapsible/index'
41
41
  export * from './components/ui/auto-form/index'
42
42
  export * from './components/ui/sheet/index'
43
+ export * from './components/ui/color-picker/index'
43
44
 
44
45
  export * from './lib/utils'
45
46
  export { default as tailwind } from './tailwind-preset'
@@ -0,0 +1,43 @@
1
+ import { type HSLObject } from 'colortranslator'
2
+
3
+ export const HEX_REGEXP = /^#(?:(?:[\da-f]{3}){1,2}|(?:[\da-f]{4}){1,2})$/i
4
+ export const HEX_REGEXP_NO_POUND = /^(?:(?:[\da-f]{3}){1,2}|(?:[\da-f]{4}){1,2})$/i
5
+
6
+ export type HSVColor = {
7
+ h: number
8
+ s: number
9
+ v: number
10
+ }
11
+
12
+ export function HSLtoHSV(hsl: HSLObject): HSVColor {
13
+ const x = hsl.S * (hsl.L < 50 ? hsl.L : 100 - hsl.L)
14
+ const v = hsl.L + x / 100
15
+
16
+ return {
17
+ h: hsl.H,
18
+ s: hsl.L === 0 ? hsl.S : (2 * x) / v,
19
+ v
20
+ }
21
+ }
22
+
23
+ export function HSVtoHSL(hsv: HSVColor): HSLObject {
24
+ const x = ((200 - hsv.s) * hsv.v) / 100
25
+
26
+ return {
27
+ H: hsv.h,
28
+ S: x === 0 || x === 200 ? 0 : Math.round((hsv.s * hsv.v) / (x <= 100 ? x : 200 - x)),
29
+ L: x / 2
30
+ }
31
+ }
32
+
33
+ export function normalizeHue(hue: number, dir: 'left' | 'right' = 'left'): number {
34
+ if (dir === 'right') {
35
+ return (hue * 100) / 360
36
+ }
37
+
38
+ return (hue / 100) * 360
39
+ }
40
+
41
+ export function normalizeBrightness(brightness: number): number {
42
+ return 100 - brightness
43
+ }