erp-pro-ui 0.1.7 → 0.1.8

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 (329) hide show
  1. package/README.md +102 -0
  2. package/dist/ascii-text.cjs +1 -1
  3. package/dist/ascii-text.mjs +1 -1
  4. package/dist/calendar.cjs +1 -1
  5. package/dist/calendar.mjs +1 -1
  6. package/dist/card.cjs +1 -1
  7. package/dist/card.mjs +1 -1
  8. package/dist/carousel.cjs +1 -1
  9. package/dist/carousel.mjs +1 -1
  10. package/dist/catalog.cjs +6 -0
  11. package/dist/catalog.cjs.map +1 -1
  12. package/dist/catalog.d.ts +11 -1
  13. package/dist/catalog.d.ts.map +1 -1
  14. package/dist/catalog.mjs +6 -0
  15. package/dist/catalog.mjs.map +1 -1
  16. package/dist/checkbox.cjs +1 -1
  17. package/dist/checkbox.mjs +1 -1
  18. package/dist/chip.cjs +1 -1
  19. package/dist/chip.mjs +1 -1
  20. package/dist/chroma-grid.cjs +1 -1
  21. package/dist/chroma-grid.mjs +1 -1
  22. package/dist/chunks/DropdownMenu-C17Zqu_E.mjs +51 -0
  23. package/dist/chunks/DropdownMenu-C17Zqu_E.mjs.map +1 -0
  24. package/dist/chunks/DropdownMenu-DOvo5pV_.cjs +57 -0
  25. package/dist/chunks/DropdownMenu-DOvo5pV_.cjs.map +1 -0
  26. package/dist/chunks/{sun-to-moon-button-CBbDar4k.mjs → SunToMoonButton-BkEfkElJ.mjs} +2 -115
  27. package/dist/chunks/SunToMoonButton-BkEfkElJ.mjs.map +1 -0
  28. package/dist/chunks/{sun-to-moon-button-BOx1n6nk.cjs → SunToMoonButton-jS4BJD9q.cjs} +1 -120
  29. package/dist/chunks/SunToMoonButton-jS4BJD9q.cjs.map +1 -0
  30. package/dist/chunks/{ascii-text-RJxX3wCC.mjs → ascii-text-OBwVLFDC.mjs} +1 -1
  31. package/dist/chunks/{ascii-text-RJxX3wCC.mjs.map → ascii-text-OBwVLFDC.mjs.map} +1 -1
  32. package/dist/chunks/{ascii-text-BP-BBy0-.cjs → ascii-text-OnPOTd2I.cjs} +1 -1
  33. package/dist/chunks/{ascii-text-BP-BBy0-.cjs.map → ascii-text-OnPOTd2I.cjs.map} +1 -1
  34. package/dist/chunks/{calendar-Cp84V2rY.mjs → calendar-BOBm3dFA.mjs} +2 -2
  35. package/dist/chunks/{calendar-Cp84V2rY.mjs.map → calendar-BOBm3dFA.mjs.map} +1 -1
  36. package/dist/chunks/{calendar-DuCKr6b7.cjs → calendar-DJkfDhQA.cjs} +2 -2
  37. package/dist/chunks/{calendar-DuCKr6b7.cjs.map → calendar-DJkfDhQA.cjs.map} +1 -1
  38. package/dist/chunks/{card-SpHHNB0c.mjs → card-BId1_zHw.mjs} +1 -1
  39. package/dist/chunks/{card-SpHHNB0c.mjs.map → card-BId1_zHw.mjs.map} +1 -1
  40. package/dist/chunks/{card-CqPDr6Tt.cjs → card-RrT68nvu.cjs} +1 -1
  41. package/dist/chunks/{card-CqPDr6Tt.cjs.map → card-RrT68nvu.cjs.map} +1 -1
  42. package/dist/chunks/{carousel-C1skQ65z.mjs → carousel-DUqOaYvs.mjs} +1 -1
  43. package/dist/chunks/{carousel-C1skQ65z.mjs.map → carousel-DUqOaYvs.mjs.map} +1 -1
  44. package/dist/chunks/{carousel-YlRLOGkM.cjs → carousel-F4drTOr6.cjs} +1 -1
  45. package/dist/chunks/{carousel-YlRLOGkM.cjs.map → carousel-F4drTOr6.cjs.map} +1 -1
  46. package/dist/chunks/{checkbox-DjGpvMyo.mjs → checkbox-3aB7XC9_.mjs} +2 -2
  47. package/dist/chunks/checkbox-3aB7XC9_.mjs.map +1 -0
  48. package/dist/chunks/{checkbox-NM_iPd6S.cjs → checkbox-D8ivRZ1x.cjs} +2 -2
  49. package/dist/chunks/checkbox-D8ivRZ1x.cjs.map +1 -0
  50. package/dist/chunks/{chip-CbO8-1lK.mjs → chip-BFg3DJx6.mjs} +1 -1
  51. package/dist/chunks/{chip-CbO8-1lK.mjs.map → chip-BFg3DJx6.mjs.map} +1 -1
  52. package/dist/chunks/{chip-BY83_HK7.cjs → chip-CMs73sc5.cjs} +1 -1
  53. package/dist/chunks/{chip-BY83_HK7.cjs.map → chip-CMs73sc5.cjs.map} +1 -1
  54. package/dist/chunks/{chroma-grid-CexX28VQ.mjs → chroma-grid-DlY9hIRI.mjs} +1 -1
  55. package/dist/chunks/{chroma-grid-CexX28VQ.mjs.map → chroma-grid-DlY9hIRI.mjs.map} +1 -1
  56. package/dist/chunks/{chroma-grid-DP__XtmV.cjs → chroma-grid-tJX7CzCS.cjs} +1 -1
  57. package/dist/chunks/{chroma-grid-DP__XtmV.cjs.map → chroma-grid-tJX7CzCS.cjs.map} +1 -1
  58. package/dist/chunks/{color-palette-ThIKMhT1.cjs → color-palette-BmQC14gE.cjs} +1 -1
  59. package/dist/chunks/{color-palette-ThIKMhT1.cjs.map → color-palette-BmQC14gE.cjs.map} +1 -1
  60. package/dist/chunks/{color-palette-BU1cI6XP.mjs → color-palette-DnX1sODj.mjs} +1 -1
  61. package/dist/chunks/{color-palette-BU1cI6XP.mjs.map → color-palette-DnX1sODj.mjs.map} +1 -1
  62. package/dist/chunks/combobox-Bcwi33Qx.mjs +127 -0
  63. package/dist/chunks/combobox-Bcwi33Qx.mjs.map +1 -0
  64. package/dist/chunks/combobox-DRiHHhXL.cjs +134 -0
  65. package/dist/chunks/combobox-DRiHHhXL.cjs.map +1 -0
  66. package/dist/chunks/{data-table-B2r5OUFX.mjs → data-table-Biom5rvs.mjs} +189 -159
  67. package/dist/chunks/data-table-Biom5rvs.mjs.map +1 -0
  68. package/dist/chunks/{data-table-BLt8DTVy.cjs → data-table-D0BD2sFz.cjs} +189 -159
  69. package/dist/chunks/data-table-D0BD2sFz.cjs.map +1 -0
  70. package/dist/chunks/{date-picker-Bh6_p4bD.mjs → date-picker-CXGwnrLr.mjs} +8 -5
  71. package/dist/chunks/date-picker-CXGwnrLr.mjs.map +1 -0
  72. package/dist/chunks/{date-picker-CfCvp6Tj.cjs → date-picker-Cw_tZGuk.cjs} +8 -5
  73. package/dist/chunks/date-picker-Cw_tZGuk.cjs.map +1 -0
  74. package/dist/chunks/{dialog-BibwiFLY.mjs → dialog-CanVyiAD.mjs} +2 -2
  75. package/dist/chunks/{dialog-BibwiFLY.mjs.map → dialog-CanVyiAD.mjs.map} +1 -1
  76. package/dist/chunks/{dialog-I141I0nc.cjs → dialog-fffx1-4D.cjs} +2 -2
  77. package/dist/chunks/{dialog-I141I0nc.cjs.map → dialog-fffx1-4D.cjs.map} +1 -1
  78. package/dist/chunks/{drawer-DsE8Pb8e.mjs → drawer-BJsBK6cP.mjs} +2 -2
  79. package/dist/chunks/{drawer-DsE8Pb8e.mjs.map → drawer-BJsBK6cP.mjs.map} +1 -1
  80. package/dist/chunks/{drawer-EC9eopGX.cjs → drawer-DTRnKChF.cjs} +2 -2
  81. package/dist/chunks/{drawer-EC9eopGX.cjs.map → drawer-DTRnKChF.cjs.map} +1 -1
  82. package/dist/chunks/{form-DaGyqM97.cjs → form-C_JxqsSZ.cjs} +1 -1
  83. package/dist/chunks/{form-DaGyqM97.cjs.map → form-C_JxqsSZ.cjs.map} +1 -1
  84. package/dist/chunks/{form-CRwpjFWu.mjs → form-CvNNjA1i.mjs} +1 -1
  85. package/dist/chunks/{form-CRwpjFWu.mjs.map → form-CvNNjA1i.mjs.map} +1 -1
  86. package/dist/chunks/{gradual-blur-Di7MBs7M.cjs → gradual-blur-BB-8oKX6.cjs} +1 -1
  87. package/dist/chunks/{gradual-blur-Di7MBs7M.cjs.map → gradual-blur-BB-8oKX6.cjs.map} +1 -1
  88. package/dist/chunks/{gradual-blur-pt0UiMEy.mjs → gradual-blur-BR06yO3Y.mjs} +1 -1
  89. package/dist/chunks/{gradual-blur-pt0UiMEy.mjs.map → gradual-blur-BR06yO3Y.mjs.map} +1 -1
  90. package/dist/chunks/{hover-card-D78E07hk.cjs → hover-card--rplmsA_.cjs} +1 -1
  91. package/dist/chunks/{hover-card-D78E07hk.cjs.map → hover-card--rplmsA_.cjs.map} +1 -1
  92. package/dist/chunks/{hover-card-C3Xa18Ov.mjs → hover-card-C88rU-nW.mjs} +1 -1
  93. package/dist/chunks/{hover-card-C3Xa18Ov.mjs.map → hover-card-C88rU-nW.mjs.map} +1 -1
  94. package/dist/chunks/{input-CpARxvFi.mjs → input-Dox16Ozo.mjs} +17 -5
  95. package/dist/chunks/input-Dox16Ozo.mjs.map +1 -0
  96. package/dist/chunks/{input-DTW_8EwG.cjs → input-T4OlFhBc.cjs} +17 -5
  97. package/dist/chunks/input-T4OlFhBc.cjs.map +1 -0
  98. package/dist/chunks/{label-BVH02Yvq.mjs → label-C1Ekt3j2.mjs} +1 -1
  99. package/dist/chunks/{label-BVH02Yvq.mjs.map → label-C1Ekt3j2.mjs.map} +1 -1
  100. package/dist/chunks/{label-DN-Bg5i8.cjs → label-CxmbGh0l.cjs} +1 -1
  101. package/dist/chunks/{label-DN-Bg5i8.cjs.map → label-CxmbGh0l.cjs.map} +1 -1
  102. package/dist/chunks/{loading-B1yrR3KX.cjs → loading-BiM4mKh6.cjs} +1 -1
  103. package/dist/chunks/{loading-B1yrR3KX.cjs.map → loading-BiM4mKh6.cjs.map} +1 -1
  104. package/dist/chunks/{loading-B2Ron0Fd.mjs → loading-Dtosnb4A.mjs} +1 -1
  105. package/dist/chunks/{loading-B2Ron0Fd.mjs.map → loading-Dtosnb4A.mjs.map} +1 -1
  106. package/dist/chunks/multi-select-combobox-BrFtvCrS.mjs +120 -0
  107. package/dist/chunks/multi-select-combobox-BrFtvCrS.mjs.map +1 -0
  108. package/dist/chunks/{multi-select-combobox-FEbMAPEg.cjs → multi-select-combobox-BzqYLVpV.cjs} +54 -66
  109. package/dist/chunks/multi-select-combobox-BzqYLVpV.cjs.map +1 -0
  110. package/dist/chunks/{otp-input-B6nJC-Fl.cjs → otp-input-CkhV-sGl.cjs} +1 -1
  111. package/dist/chunks/{otp-input-B6nJC-Fl.cjs.map → otp-input-CkhV-sGl.cjs.map} +1 -1
  112. package/dist/chunks/{otp-input-B7DhhsMe.mjs → otp-input-JOysxKfD.mjs} +1 -1
  113. package/dist/chunks/{otp-input-B7DhhsMe.mjs.map → otp-input-JOysxKfD.mjs.map} +1 -1
  114. package/dist/chunks/{overlay-C58wXorc.mjs → overlay-BzkUmjQ-.mjs} +1 -1
  115. package/dist/chunks/{overlay-C58wXorc.mjs.map → overlay-BzkUmjQ-.mjs.map} +1 -1
  116. package/dist/chunks/{overlay-DwJgjJuu.cjs → overlay-DNnZywyR.cjs} +1 -1
  117. package/dist/chunks/{overlay-DwJgjJuu.cjs.map → overlay-DNnZywyR.cjs.map} +1 -1
  118. package/dist/chunks/{password-strength-meter-D7gmZNjp.mjs → password-strength-meter-BEx94cfy.mjs} +2 -2
  119. package/dist/chunks/{password-strength-meter-D7gmZNjp.mjs.map → password-strength-meter-BEx94cfy.mjs.map} +1 -1
  120. package/dist/chunks/{password-strength-meter-6vNu6p19.cjs → password-strength-meter-BNnmSgLh.cjs} +2 -2
  121. package/dist/chunks/{password-strength-meter-6vNu6p19.cjs.map → password-strength-meter-BNnmSgLh.cjs.map} +1 -1
  122. package/dist/chunks/{progress-bar-D6Q9Di7D.mjs → progress-bar-C9O0tuZf.mjs} +1 -1
  123. package/dist/chunks/{progress-bar-D6Q9Di7D.mjs.map → progress-bar-C9O0tuZf.mjs.map} +1 -1
  124. package/dist/chunks/{progress-bar-CbsCItvv.cjs → progress-bar-DS8KZ7eO.cjs} +1 -1
  125. package/dist/chunks/{progress-bar-CbsCItvv.cjs.map → progress-bar-DS8KZ7eO.cjs.map} +1 -1
  126. package/dist/chunks/{radio-DxakS7iD.cjs → radio-BiD1ofmq.cjs} +2 -2
  127. package/dist/chunks/radio-BiD1ofmq.cjs.map +1 -0
  128. package/dist/chunks/{radio-C6Meq2iz.mjs → radio-C7Eg3FEp.mjs} +2 -2
  129. package/dist/chunks/radio-C7Eg3FEp.mjs.map +1 -0
  130. package/dist/chunks/{select-SOmIt-BD.cjs → select-CORFYTvs.cjs} +39 -44
  131. package/dist/chunks/select-CORFYTvs.cjs.map +1 -0
  132. package/dist/chunks/{select-1rSJeUBQ.mjs → select-D0GOBB-b.mjs} +40 -45
  133. package/dist/chunks/select-D0GOBB-b.mjs.map +1 -0
  134. package/dist/chunks/sidebar-BrOLz89T.mjs +508 -0
  135. package/dist/chunks/sidebar-BrOLz89T.mjs.map +1 -0
  136. package/dist/chunks/sidebar-D9D651F6.cjs +538 -0
  137. package/dist/chunks/sidebar-D9D651F6.cjs.map +1 -0
  138. package/dist/chunks/{skeleton-BRx-80dg.mjs → skeleton-BdijDxP6.mjs} +1 -1
  139. package/dist/chunks/{skeleton-BRx-80dg.mjs.map → skeleton-BdijDxP6.mjs.map} +1 -1
  140. package/dist/chunks/{skeleton-o7DlA5yl.cjs → skeleton-wQOE-pRg.cjs} +1 -1
  141. package/dist/chunks/{skeleton-o7DlA5yl.cjs.map → skeleton-wQOE-pRg.cjs.map} +1 -1
  142. package/dist/chunks/{spinners-BylPf0uk.cjs → spinners-C9acUulz.cjs} +1 -1
  143. package/dist/chunks/{spinners-BylPf0uk.cjs.map → spinners-C9acUulz.cjs.map} +1 -1
  144. package/dist/chunks/{spinners-hJaI_cBH.mjs → spinners-g6_Up5Rb.mjs} +1 -1
  145. package/dist/chunks/{spinners-hJaI_cBH.mjs.map → spinners-g6_Up5Rb.mjs.map} +1 -1
  146. package/dist/chunks/{splash-cursor-CmqkSl6m.cjs → splash-cursor-CCi5n3O-.cjs} +1 -1
  147. package/dist/chunks/{splash-cursor-CmqkSl6m.cjs.map → splash-cursor-CCi5n3O-.cjs.map} +1 -1
  148. package/dist/chunks/{splash-cursor-Cxouip_h.mjs → splash-cursor-CDHTm5vA.mjs} +1 -1
  149. package/dist/chunks/{splash-cursor-Cxouip_h.mjs.map → splash-cursor-CDHTm5vA.mjs.map} +1 -1
  150. package/dist/chunks/{spotlight-card-B3L3K21T.cjs → spotlight-card-Bh7KG0vZ.cjs} +1 -1
  151. package/dist/chunks/{spotlight-card-B3L3K21T.cjs.map → spotlight-card-Bh7KG0vZ.cjs.map} +1 -1
  152. package/dist/chunks/{spotlight-card-DIgacTxA.mjs → spotlight-card-D0uTxfPZ.mjs} +1 -1
  153. package/dist/chunks/{spotlight-card-DIgacTxA.mjs.map → spotlight-card-D0uTxfPZ.mjs.map} +1 -1
  154. package/dist/chunks/{stepper-JD4ZHT-b.mjs → stepper-BMKxjCdm.mjs} +24 -17
  155. package/dist/chunks/stepper-BMKxjCdm.mjs.map +1 -0
  156. package/dist/chunks/{stepper-BpjKyemI.cjs → stepper-Z_7ugZJN.cjs} +24 -17
  157. package/dist/chunks/stepper-Z_7ugZJN.cjs.map +1 -0
  158. package/dist/chunks/sun-to-moon-button-DcRX0obV.mjs +118 -0
  159. package/dist/chunks/sun-to-moon-button-DcRX0obV.mjs.map +1 -0
  160. package/dist/chunks/sun-to-moon-button-De0_Sf01.cjs +124 -0
  161. package/dist/chunks/sun-to-moon-button-De0_Sf01.cjs.map +1 -0
  162. package/dist/chunks/{switch-hd7zTBD_.mjs → switch-C1gKE0m0.mjs} +22 -6
  163. package/dist/chunks/switch-C1gKE0m0.mjs.map +1 -0
  164. package/dist/chunks/{switch-C9suGEWg.cjs → switch-DPyzVrNh.cjs} +22 -6
  165. package/dist/chunks/switch-DPyzVrNh.cjs.map +1 -0
  166. package/dist/chunks/{textarea-Cu26uKqq.mjs → textarea-BY5-J9No.mjs} +1 -1
  167. package/dist/chunks/{textarea-Cu26uKqq.mjs.map → textarea-BY5-J9No.mjs.map} +1 -1
  168. package/dist/chunks/{textarea-cXgKzluG.cjs → textarea-D-oBQ3IZ.cjs} +1 -1
  169. package/dist/chunks/{textarea-cXgKzluG.cjs.map → textarea-D-oBQ3IZ.cjs.map} +1 -1
  170. package/dist/chunks/{toast-CpX-22n2.mjs → toast-BcBidy5n.mjs} +1 -1
  171. package/dist/chunks/{toast-CpX-22n2.mjs.map → toast-BcBidy5n.mjs.map} +1 -1
  172. package/dist/chunks/{toast-REa6FRBc.cjs → toast-DiFgv3IL.cjs} +1 -1
  173. package/dist/chunks/{toast-REa6FRBc.cjs.map → toast-DiFgv3IL.cjs.map} +1 -1
  174. package/dist/chunks/{tooltip-CASvQiFQ.mjs → tooltip-CmB8xKOF.mjs} +1 -1
  175. package/dist/chunks/{tooltip-CASvQiFQ.mjs.map → tooltip-CmB8xKOF.mjs.map} +1 -1
  176. package/dist/chunks/{tooltip-CKF78rni.cjs → tooltip-PJaQa8_l.cjs} +1 -1
  177. package/dist/chunks/{tooltip-CKF78rni.cjs.map → tooltip-PJaQa8_l.cjs.map} +1 -1
  178. package/dist/chunks/{typography-KxLf6Td8.mjs → typography-C_IanU4b.mjs} +1 -1
  179. package/dist/chunks/{typography-KxLf6Td8.mjs.map → typography-C_IanU4b.mjs.map} +1 -1
  180. package/dist/chunks/{typography-sGmh0gZ_.cjs → typography-DUD6Dzd5.cjs} +1 -1
  181. package/dist/chunks/{typography-sGmh0gZ_.cjs.map → typography-DUD6Dzd5.cjs.map} +1 -1
  182. package/dist/color-palette.cjs +1 -1
  183. package/dist/color-palette.mjs +1 -1
  184. package/dist/combobox.cjs +1 -1
  185. package/dist/combobox.mjs +1 -1
  186. package/dist/components/data-display/data-table/DataTable.d.ts +6 -1
  187. package/dist/components/data-display/data-table/DataTable.d.ts.map +1 -1
  188. package/dist/components/data-display/data-table/DataTableControls.d.ts +3 -2
  189. package/dist/components/data-display/data-table/DataTableControls.d.ts.map +1 -1
  190. package/dist/components/data-display/data-table/DataTableFilters.d.ts +2 -1
  191. package/dist/components/data-display/data-table/DataTableFilters.d.ts.map +1 -1
  192. package/dist/components/data-display/data-table/DataTableRows.d.ts +6 -1
  193. package/dist/components/data-display/data-table/DataTableRows.d.ts.map +1 -1
  194. package/dist/components/data-display/data-table/DataTableToolbar.d.ts.map +1 -1
  195. package/dist/components/forms/combobox/Combobox.d.ts +2 -0
  196. package/dist/components/forms/combobox/Combobox.d.ts.map +1 -1
  197. package/dist/components/forms/date-picker/DatePicker.d.ts.map +1 -1
  198. package/dist/components/forms/input/Input.d.ts.map +1 -1
  199. package/dist/components/forms/multi-select-combobox/MultiSelectCombobox.d.ts +2 -0
  200. package/dist/components/forms/multi-select-combobox/MultiSelectCombobox.d.ts.map +1 -1
  201. package/dist/components/forms/select/Select.d.ts.map +1 -1
  202. package/dist/components/forms/select/types.d.ts +1 -0
  203. package/dist/components/forms/select/types.d.ts.map +1 -1
  204. package/dist/components/forms/switch/Switch.d.ts.map +1 -1
  205. package/dist/components/navigation/index.d.ts +1 -0
  206. package/dist/components/navigation/index.d.ts.map +1 -1
  207. package/dist/components/navigation/sidebar/DashboardSidebarShell.d.ts +27 -0
  208. package/dist/components/navigation/sidebar/DashboardSidebarShell.d.ts.map +1 -0
  209. package/dist/components/navigation/sidebar/HamburgerIcon.d.ts +6 -0
  210. package/dist/components/navigation/sidebar/HamburgerIcon.d.ts.map +1 -0
  211. package/dist/components/navigation/sidebar/NavLink.d.ts +3 -0
  212. package/dist/components/navigation/sidebar/NavLink.d.ts.map +1 -0
  213. package/dist/components/navigation/sidebar/Sidebar.d.ts +3 -0
  214. package/dist/components/navigation/sidebar/Sidebar.d.ts.map +1 -0
  215. package/dist/components/navigation/sidebar/SidebarLinks.d.ts +3 -0
  216. package/dist/components/navigation/sidebar/SidebarLinks.d.ts.map +1 -0
  217. package/dist/components/navigation/sidebar/index.d.ts +8 -0
  218. package/dist/components/navigation/sidebar/index.d.ts.map +1 -0
  219. package/dist/components/navigation/sidebar/types.d.ts +53 -0
  220. package/dist/components/navigation/sidebar/types.d.ts.map +1 -0
  221. package/dist/components/navigation/stepper/Stepper.d.ts +1 -1
  222. package/dist/components/navigation/stepper/Stepper.d.ts.map +1 -1
  223. package/dist/components/navigation/stepper/index.d.ts +1 -1
  224. package/dist/components/navigation/stepper/index.d.ts.map +1 -1
  225. package/dist/components/navigation/stepper/types.d.ts +5 -0
  226. package/dist/components/navigation/stepper/types.d.ts.map +1 -1
  227. package/dist/components/overlays/dropdown-menu/DropdownMenu.d.ts +3 -0
  228. package/dist/components/overlays/dropdown-menu/DropdownMenu.d.ts.map +1 -0
  229. package/dist/components/overlays/dropdown-menu/index.d.ts +3 -0
  230. package/dist/components/overlays/dropdown-menu/index.d.ts.map +1 -0
  231. package/dist/components/overlays/dropdown-menu/types.d.ts +12 -0
  232. package/dist/components/overlays/dropdown-menu/types.d.ts.map +1 -0
  233. package/dist/components/overlays/index.d.ts +1 -0
  234. package/dist/components/overlays/index.d.ts.map +1 -1
  235. package/dist/data-table.cjs +1 -1
  236. package/dist/data-table.mjs +1 -1
  237. package/dist/date-picker.cjs +1 -1
  238. package/dist/date-picker.mjs +1 -1
  239. package/dist/dialog.cjs +1 -1
  240. package/dist/dialog.mjs +1 -1
  241. package/dist/docs.cjs +12 -0
  242. package/dist/docs.cjs.map +1 -1
  243. package/dist/docs.d.ts.map +1 -1
  244. package/dist/docs.mjs +12 -0
  245. package/dist/docs.mjs.map +1 -1
  246. package/dist/drawer.cjs +1 -1
  247. package/dist/drawer.mjs +1 -1
  248. package/dist/form.cjs +1 -1
  249. package/dist/form.mjs +1 -1
  250. package/dist/gradual-blur.cjs +1 -1
  251. package/dist/gradual-blur.mjs +1 -1
  252. package/dist/hover-card.cjs +1 -1
  253. package/dist/hover-card.mjs +1 -1
  254. package/dist/index.cjs +46 -37
  255. package/dist/index.cjs.map +1 -1
  256. package/dist/index.d.ts +4 -0
  257. package/dist/index.d.ts.map +1 -1
  258. package/dist/index.mjs +40 -37
  259. package/dist/index.mjs.map +1 -1
  260. package/dist/input.cjs +1 -1
  261. package/dist/input.mjs +1 -1
  262. package/dist/label.cjs +1 -1
  263. package/dist/label.mjs +1 -1
  264. package/dist/loading.cjs +1 -1
  265. package/dist/loading.mjs +1 -1
  266. package/dist/multi-select-combobox.cjs +1 -1
  267. package/dist/multi-select-combobox.mjs +1 -1
  268. package/dist/otp-input.cjs +1 -1
  269. package/dist/otp-input.mjs +1 -1
  270. package/dist/password-strength-meter.cjs +1 -1
  271. package/dist/password-strength-meter.mjs +1 -1
  272. package/dist/progress-bar.cjs +1 -1
  273. package/dist/progress-bar.mjs +1 -1
  274. package/dist/radio.cjs +1 -1
  275. package/dist/radio.mjs +1 -1
  276. package/dist/select.cjs +1 -1
  277. package/dist/select.mjs +1 -1
  278. package/dist/sidebar.cjs +7 -0
  279. package/dist/sidebar.d.ts +2 -0
  280. package/dist/sidebar.mjs +2 -0
  281. package/dist/skeleton.cjs +1 -1
  282. package/dist/skeleton.mjs +1 -1
  283. package/dist/spinners.cjs +1 -1
  284. package/dist/spinners.mjs +1 -1
  285. package/dist/splash-cursor.cjs +1 -1
  286. package/dist/splash-cursor.mjs +1 -1
  287. package/dist/spotlight-card.cjs +1 -1
  288. package/dist/spotlight-card.mjs +1 -1
  289. package/dist/stepper.cjs +1 -1
  290. package/dist/stepper.mjs +1 -1
  291. package/dist/sun-to-moon-button.cjs +3 -2
  292. package/dist/sun-to-moon-button.mjs +2 -1
  293. package/dist/switch.cjs +1 -1
  294. package/dist/switch.mjs +1 -1
  295. package/dist/textarea.cjs +1 -1
  296. package/dist/textarea.mjs +1 -1
  297. package/dist/toast.cjs +1 -1
  298. package/dist/toast.mjs +1 -1
  299. package/dist/tokens.css +9 -9
  300. package/dist/tooltip.cjs +1 -1
  301. package/dist/tooltip.mjs +1 -1
  302. package/dist/typography.cjs +1 -1
  303. package/dist/typography.mjs +1 -1
  304. package/package.json +7 -1
  305. package/dist/chunks/checkbox-DjGpvMyo.mjs.map +0 -1
  306. package/dist/chunks/checkbox-NM_iPd6S.cjs.map +0 -1
  307. package/dist/chunks/combobox-B7UIcjsI.cjs +0 -147
  308. package/dist/chunks/combobox-B7UIcjsI.cjs.map +0 -1
  309. package/dist/chunks/combobox-D6WnThIQ.mjs +0 -140
  310. package/dist/chunks/combobox-D6WnThIQ.mjs.map +0 -1
  311. package/dist/chunks/data-table-B2r5OUFX.mjs.map +0 -1
  312. package/dist/chunks/data-table-BLt8DTVy.cjs.map +0 -1
  313. package/dist/chunks/date-picker-Bh6_p4bD.mjs.map +0 -1
  314. package/dist/chunks/date-picker-CfCvp6Tj.cjs.map +0 -1
  315. package/dist/chunks/input-CpARxvFi.mjs.map +0 -1
  316. package/dist/chunks/input-DTW_8EwG.cjs.map +0 -1
  317. package/dist/chunks/multi-select-combobox-CMhAXEGZ.mjs +0 -132
  318. package/dist/chunks/multi-select-combobox-CMhAXEGZ.mjs.map +0 -1
  319. package/dist/chunks/multi-select-combobox-FEbMAPEg.cjs.map +0 -1
  320. package/dist/chunks/radio-C6Meq2iz.mjs.map +0 -1
  321. package/dist/chunks/radio-DxakS7iD.cjs.map +0 -1
  322. package/dist/chunks/select-1rSJeUBQ.mjs.map +0 -1
  323. package/dist/chunks/select-SOmIt-BD.cjs.map +0 -1
  324. package/dist/chunks/stepper-BpjKyemI.cjs.map +0 -1
  325. package/dist/chunks/stepper-JD4ZHT-b.mjs.map +0 -1
  326. package/dist/chunks/sun-to-moon-button-BOx1n6nk.cjs.map +0 -1
  327. package/dist/chunks/sun-to-moon-button-CBbDar4k.mjs.map +0 -1
  328. package/dist/chunks/switch-C9suGEWg.cjs.map +0 -1
  329. package/dist/chunks/switch-hd7zTBD_.mjs.map +0 -1
@@ -2,14 +2,14 @@ require("./chunk-B_GkZjkl.cjs");
2
2
  const require_utils = require("./utils-B4SmmY4J.cjs");
3
3
  const require_truncated_text = require("./truncated-text-istgJRUq.cjs");
4
4
  const require_icons = require("./icons-CRanVZB1.cjs");
5
+ const require_DropdownMenu = require("./DropdownMenu-DOvo5pV_.cjs");
5
6
  let react = require("react");
6
7
  let react_jsx_runtime = require("react/jsx-runtime");
7
8
  let framer_motion = require("framer-motion");
8
9
  //#region src/components/forms/select/Select.tsx
9
- var Select = (0, react.forwardRef)(function SelectComponent({ className = "", containerClassName = "", triggerClassName = "", dropdownClassName = "", optionClassName = "", label, error, helperText, options, value, onChange, placeholder = "Select...", disabled, bgClassName = "bg-ds-surface-1", size = "default", selectionIndicator = "check", ...props }, ref) {
10
+ var Select = (0, react.forwardRef)(function SelectComponent({ className = "", containerClassName = "", triggerClassName = "", dropdownClassName = "", optionClassName = "", label, error, helperText, options, value, onChange, placeholder = "Select...", noOptionsText = "No options", disabled, bgClassName = "bg-ds-surface-1", size = "default", selectionIndicator = "check", ...props }, ref) {
10
11
  const [open, setOpen] = (0, react.useState)(false);
11
12
  const [visible, setVisible] = (0, react.useState)(false);
12
- const containerRef = (0, react.useRef)(null);
13
13
  const hiddenSelectRef = (0, react.useRef)(null);
14
14
  const selectedOptionRef = (0, react.useRef)(null);
15
15
  const mouseX = (0, framer_motion.useMotionValue)(0);
@@ -24,15 +24,6 @@ var Select = (0, react.forwardRef)(function SelectComponent({ className = "", co
24
24
  }
25
25
  if (ref) ref.current = hiddenSelectRef.current;
26
26
  }, [ref]);
27
- (0, react.useEffect)(() => {
28
- const handleClick = (event) => {
29
- if (containerRef.current && !containerRef.current.contains(event.target)) setOpen(false);
30
- };
31
- if (open) document.addEventListener("mousedown", handleClick);
32
- return () => {
33
- document.removeEventListener("mousedown", handleClick);
34
- };
35
- }, [open]);
36
27
  (0, react.useEffect)(() => {
37
28
  if (!open || !selectedOptionRef.current) return;
38
29
  const frameId = window.requestAnimationFrame(() => {
@@ -90,10 +81,19 @@ var Select = (0, react.forwardRef)(function SelectComponent({ className = "", co
90
81
  children: option.label
91
82
  }, option.value))]
92
83
  }),
93
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
94
- ref: containerRef,
95
- className: require_utils.mergeClassNames("relative w-full", className),
96
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(framer_motion.motion.div, {
84
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_DropdownMenu.DropdownMenu, {
85
+ className: require_utils.mergeClassNames("w-full", className),
86
+ open,
87
+ onOpenChange: (nextOpen) => {
88
+ if (disabled) {
89
+ setOpen(false);
90
+ return;
91
+ }
92
+ setOpen(nextOpen);
93
+ },
94
+ panelClassName: require_utils.mergeClassNames(" left-0 top-[40px] z-20 mt-1 flex flex-col overflow-auto rounded-lg border border-ds-border-2 bg-ds-surface-1 shadow-3 backdrop-blur-xl transition", isCompact ? "max-h-56" : "max-h-60", dropdownClassName),
95
+ animationClassName: "origin-top-left",
96
+ trigger: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(framer_motion.motion.div, {
97
97
  style: { backgroundImage: disabled ? "none" : framer_motion.useMotionTemplate`
98
98
  radial-gradient(
99
99
  ${visible ? `${radius}px` : "0px"} circle at ${mouseX}px ${mouseY}px,
@@ -104,12 +104,9 @@ var Select = (0, react.forwardRef)(function SelectComponent({ className = "", co
104
104
  onMouseMove: !disabled ? handleMouseMove : void 0,
105
105
  onMouseEnter: !disabled ? () => setVisible(true) : void 0,
106
106
  onMouseLeave: !disabled ? () => setVisible(false) : void 0,
107
- className: require_utils.mergeClassNames("group/select rounded-lg p-[2px] transition duration-300 hover:border-ds-border-accent", disabled ? "border-none bg-ds-surface-1" : error ? "border-ds-state-error-border" : "border-ds-border-2"),
107
+ className: require_utils.mergeClassNames("group/select w-full rounded-lg p-[2px] transition duration-300 hover:border-ds-border-accent", disabled ? "border-none bg-ds-surface-1" : error ? "border-ds-state-error-border" : "border-ds-border-2"),
108
108
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
109
109
  className: require_utils.mergeClassNames("flex w-full cursor-pointer items-center justify-between rounded-md border border-ds-border-field transition duration-400 ease-in-out", isCompact ? "h-9 px-2.5 py-2 text-sm" : "h-10 px-3 py-2 text-sm", bgClassName, disabled ? "cursor-not-allowed opacity-50" : "text-ds-1", error ? "border-ds-state-error-border text-ds-state-error-text focus-visible:ring-ds-state-error-border" : "", triggerClassName),
110
- onClick: () => {
111
- if (!disabled) setOpen((current) => !current);
112
- },
113
110
  onKeyDown: handleKeyDown,
114
111
  role: "button",
115
112
  tabIndex: disabled ? -1 : 0,
@@ -134,30 +131,28 @@ var Select = (0, react.forwardRef)(function SelectComponent({ className = "", co
134
131
  })
135
132
  })]
136
133
  })
137
- }), open && !disabled ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
138
- className: require_utils.mergeClassNames("absolute right-0 left-0 z-20 mt-1 flex flex-col overflow-auto rounded-lg border border-ds-border-2 bg-ds-surface-1 shadow-3 backdrop-blur-xl transition", isCompact ? "max-h-56" : "max-h-60", dropdownClassName),
139
- children: [options.length === 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
140
- className: "px-3 py-2 text-ds-2",
141
- children: "No options"
142
- }) : null, options.map((option) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
143
- ref: option.value === value ? selectedOptionRef : null,
144
- className: require_utils.mergeClassNames("mx-1 my-1 flex cursor-pointer items-center rounded-md text-ds-1 transition", isCompact ? "gap-1.5 px-2.5 py-2 text-sm" : "gap-2 px-3 py-2 text-sm", option.value === value ? "bg-ds-accent-subtle font-semibold text-ds-1" : "", "hover:bg-ds-accent hover:text-ds-on-accent", optionClassName),
145
- onClick: () => handleSelect(option.value),
146
- children: [selectionIndicator === "check" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
147
- className: require_utils.mergeClassNames("flex items-center justify-center", isCompact ? "w-4" : "w-5"),
148
- children: option.value === value ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.CheckIcon, {
149
- className: "text-ds-1",
150
- width: isCompact ? 16 : 18,
151
- height: isCompact ? 16 : 18
152
- }) : null
153
- }) : null, /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_truncated_text.TruncatedText, {
154
- as: "span",
155
- showTitleOnHover: true,
156
- className: "flex-1",
157
- children: option.label
158
- })]
159
- }, option.value))]
160
- }) : null]
134
+ }),
135
+ children: !disabled ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [options.length === 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
136
+ className: "px-3 py-2 text-ds-2",
137
+ children: noOptionsText
138
+ }) : null, options.map((option) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
139
+ ref: option.value === value ? selectedOptionRef : null,
140
+ className: require_utils.mergeClassNames("mx-1 my-1 flex cursor-pointer items-center rounded-md text-ds-1 transition", isCompact ? "gap-1.5 px-2.5 py-2 text-sm" : "gap-2 px-3 py-2 text-sm", option.value === value ? "bg-ds-accent-subtle font-semibold text-ds-1" : "", "hover:bg-ds-accent hover:text-ds-on-accent", optionClassName),
141
+ onClick: () => handleSelect(option.value),
142
+ children: [selectionIndicator === "check" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
143
+ className: require_utils.mergeClassNames("flex items-center justify-center", isCompact ? "w-4" : "w-5"),
144
+ children: option.value === value ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.CheckIcon, {
145
+ className: "text-ds-1",
146
+ width: isCompact ? 16 : 18,
147
+ height: isCompact ? 16 : 18
148
+ }) : null
149
+ }) : null, /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_truncated_text.TruncatedText, {
150
+ as: "span",
151
+ showTitleOnHover: true,
152
+ className: "flex-1",
153
+ children: option.label
154
+ })]
155
+ }, option.value))] }) : null
161
156
  }),
162
157
  error ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
163
158
  className: "mt-1 text-sm font-medium text-ds-state-error-text",
@@ -179,4 +174,4 @@ Object.defineProperty(exports, "Select", {
179
174
  }
180
175
  });
181
176
 
182
- //# sourceMappingURL=select-SOmIt-BD.cjs.map
177
+ //# sourceMappingURL=select-CORFYTvs.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-CORFYTvs.cjs","names":[],"sources":["../../src/components/forms/select/Select.tsx"],"sourcesContent":["import {\n forwardRef,\n useEffect,\n useRef,\n useState,\n type ChangeEvent,\n type ForwardedRef,\n type KeyboardEvent,\n type MouseEvent as ReactMouseEvent,\n} from \"react\";\nimport { motion, useMotionTemplate, useMotionValue } from \"framer-motion\";\n\nimport { CheckIcon, ChevronDownIcon } from \"../../icons\";\nimport { DropdownMenu } from \"../../overlays/dropdown-menu\";\nimport { TruncatedText } from \"../../typography/truncated-text\";\nimport { mergeClassNames } from \"../../../utils\";\nimport type { SelectProps } from \"./types\";\n\nexport const Select = forwardRef(function SelectComponent(\n {\n className = \"\",\n containerClassName = \"\",\n triggerClassName = \"\",\n dropdownClassName = \"\",\n optionClassName = \"\",\n label,\n error,\n helperText,\n options,\n value,\n onChange,\n placeholder = \"Select...\",\n noOptionsText = \"No options\",\n disabled,\n bgClassName = \"bg-ds-surface-1\",\n size = \"default\",\n selectionIndicator = \"check\",\n ...props\n }: SelectProps,\n ref: ForwardedRef<HTMLSelectElement>,\n) {\n const [open, setOpen] = useState(false);\n const [visible, setVisible] = useState(false);\n const hiddenSelectRef = useRef<HTMLSelectElement>(null);\n const selectedOptionRef = useRef<HTMLDivElement>(null);\n const mouseX = useMotionValue(0);\n const mouseY = useMotionValue(0);\n const radius = 100;\n const isCompact = size === \"compact\";\n const selectedOption = options.find((option) => option.value === value);\n\n useEffect(() => {\n if (typeof ref === \"function\") {\n ref(hiddenSelectRef.current);\n return;\n }\n\n if (ref) {\n ref.current = hiddenSelectRef.current;\n }\n }, [ref]);\n\n useEffect(() => {\n if (!open || !selectedOptionRef.current) {\n return;\n }\n\n const frameId = window.requestAnimationFrame(() => {\n selectedOptionRef.current?.scrollIntoView({ block: \"nearest\" });\n });\n\n return () => {\n window.cancelAnimationFrame(frameId);\n };\n }, [open, value]);\n\n const handleMouseMove = (event: ReactMouseEvent<HTMLDivElement>) => {\n const { left, top } = event.currentTarget.getBoundingClientRect();\n mouseX.set(event.clientX - left);\n mouseY.set(event.clientY - top);\n };\n\n const handleSelect = (optionValue: string) => {\n if (onChange && hiddenSelectRef.current) {\n const syntheticEvent = {\n target: { value: optionValue, name: props.name },\n currentTarget: { value: optionValue, name: props.name },\n } as ChangeEvent<HTMLSelectElement>;\n\n onChange(syntheticEvent);\n }\n\n setOpen(false);\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (disabled) {\n return;\n }\n\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n setOpen((current) => !current);\n }\n\n if (event.key === \"Escape\") {\n setOpen(false);\n }\n };\n\n return (\n <div\n className={mergeClassNames(\n \"w-full\",\n isCompact ? \"min-w-0\" : \"min-w-48\",\n containerClassName,\n )}\n >\n {label ? (\n <label className=\"mb-2 block text-sm leading-none font-medium text-ds-1 peer-disabled:cursor-not-allowed peer-disabled:opacity-70\">\n {label}\n </label>\n ) : null}\n\n <select\n ref={hiddenSelectRef}\n className=\"sr-only\"\n value={value}\n onChange={onChange}\n disabled={disabled}\n {...props}\n >\n <option value=\"\">{placeholder}</option>\n {options.map((option) => (\n <option key={option.value} value={option.value}>\n {option.label}\n </option>\n ))}\n </select>\n\n <DropdownMenu\n className={mergeClassNames(\"w-full\", className)}\n open={open}\n onOpenChange={(nextOpen) => {\n if (disabled) {\n setOpen(false);\n return;\n }\n\n setOpen(nextOpen);\n }}\n panelClassName={mergeClassNames(\n \" left-0 top-[40px] z-20 mt-1 flex flex-col overflow-auto rounded-lg border border-ds-border-2 bg-ds-surface-1 shadow-3 backdrop-blur-xl transition\",\n isCompact ? \"max-h-56\" : \"max-h-60\",\n dropdownClassName,\n )}\n animationClassName=\"origin-top-left\"\n trigger={\n <motion.div\n style={{\n backgroundImage: disabled\n ? \"none\"\n : useMotionTemplate`\n radial-gradient(\n ${visible ? `${radius}px` : \"0px\"} circle at ${mouseX}px ${mouseY}px,\n var(--ds-color-accent),\n transparent 90%\n )\n `,\n }}\n onMouseMove={!disabled ? handleMouseMove : undefined}\n onMouseEnter={!disabled ? () => setVisible(true) : undefined}\n onMouseLeave={!disabled ? () => setVisible(false) : undefined}\n className={mergeClassNames(\n \"group/select w-full rounded-lg p-[2px] transition duration-300 hover:border-ds-border-accent\",\n disabled\n ? \"border-none bg-ds-surface-1\"\n : error\n ? \"border-ds-state-error-border\"\n : \"border-ds-border-2\",\n )}\n >\n <div\n className={mergeClassNames(\n \"flex w-full cursor-pointer items-center justify-between rounded-md border border-ds-border-field transition duration-400 ease-in-out\",\n isCompact\n ? \"h-9 px-2.5 py-2 text-sm\"\n : \"h-10 px-3 py-2 text-sm\",\n bgClassName,\n disabled ? \"cursor-not-allowed opacity-50\" : \"text-ds-1\",\n error\n ? \"border-ds-state-error-border text-ds-state-error-text focus-visible:ring-ds-state-error-border\"\n : \"\",\n triggerClassName,\n )}\n onKeyDown={handleKeyDown}\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n >\n {selectedOption ? (\n <TruncatedText\n as=\"span\"\n showTitleOnHover\n className=\"flex-1 text-ds-1\"\n >\n {selectedOption.label}\n </TruncatedText>\n ) : (\n <TruncatedText as=\"span\" className=\"flex-1 text-ds-2\">\n {placeholder}\n </TruncatedText>\n )}\n\n <span\n className={mergeClassNames(\n \"ml-2 shrink-0 text-ds-2 transition-transform duration-300\",\n open ? \"rotate-180\" : \"rotate-0\",\n )}\n >\n <ChevronDownIcon\n width={24}\n height={24}\n color=\"currentColor\"\n className={isCompact ? \"h-4 w-4\" : \"h-5 w-5\"}\n />\n </span>\n </div>\n </motion.div>\n }\n >\n {!disabled ? (\n <>\n {options.length === 0 ? (\n <div className=\"px-3 py-2 text-ds-2\">{noOptionsText}</div>\n ) : null}\n\n {options.map((option) => (\n <div\n key={option.value}\n ref={option.value === value ? selectedOptionRef : null}\n className={mergeClassNames(\n \"mx-1 my-1 flex cursor-pointer items-center rounded-md text-ds-1 transition\",\n isCompact\n ? \"gap-1.5 px-2.5 py-2 text-sm\"\n : \"gap-2 px-3 py-2 text-sm\",\n option.value === value\n ? \"bg-ds-accent-subtle font-semibold text-ds-1\"\n : \"\",\n \"hover:bg-ds-accent hover:text-ds-on-accent\",\n optionClassName,\n )}\n onClick={() => handleSelect(option.value)}\n >\n {selectionIndicator === \"check\" ? (\n <span\n className={mergeClassNames(\n \"flex items-center justify-center\",\n isCompact ? \"w-4\" : \"w-5\",\n )}\n >\n {option.value === value ? (\n <CheckIcon\n className=\"text-ds-1\"\n width={isCompact ? 16 : 18}\n height={isCompact ? 16 : 18}\n />\n ) : null}\n </span>\n ) : null}\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {option.label}\n </TruncatedText>\n </div>\n ))}\n </>\n ) : null}\n </DropdownMenu>\n\n {error ? (\n <p className=\"mt-1 text-sm font-medium text-ds-state-error-text\">\n {error}\n </p>\n ) : null}\n {helperText && !error ? (\n <p className=\"mt-1 text-sm text-ds-2\">{helperText}</p>\n ) : null}\n </div>\n );\n});\n\nSelect.displayName = \"Select\";\n"],"mappings":"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"}
@@ -1,14 +1,14 @@
1
1
  import { n as mergeClassNames } from "./utils-ati1KkDb.mjs";
2
2
  import { t as TruncatedText } from "./truncated-text-DTgks5yS.mjs";
3
3
  import { J as CheckIcon, N as ChevronDownIcon } from "./icons-bx3nrxNv.mjs";
4
+ import { t as DropdownMenu } from "./DropdownMenu-C17Zqu_E.mjs";
4
5
  import { forwardRef, useEffect, useRef, useState } from "react";
5
- import { jsx, jsxs } from "react/jsx-runtime";
6
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
6
7
  import { motion, useMotionTemplate, useMotionValue } from "framer-motion";
7
8
  //#region src/components/forms/select/Select.tsx
8
- var Select = forwardRef(function SelectComponent({ className = "", containerClassName = "", triggerClassName = "", dropdownClassName = "", optionClassName = "", label, error, helperText, options, value, onChange, placeholder = "Select...", disabled, bgClassName = "bg-ds-surface-1", size = "default", selectionIndicator = "check", ...props }, ref) {
9
+ var Select = forwardRef(function SelectComponent({ className = "", containerClassName = "", triggerClassName = "", dropdownClassName = "", optionClassName = "", label, error, helperText, options, value, onChange, placeholder = "Select...", noOptionsText = "No options", disabled, bgClassName = "bg-ds-surface-1", size = "default", selectionIndicator = "check", ...props }, ref) {
9
10
  const [open, setOpen] = useState(false);
10
11
  const [visible, setVisible] = useState(false);
11
- const containerRef = useRef(null);
12
12
  const hiddenSelectRef = useRef(null);
13
13
  const selectedOptionRef = useRef(null);
14
14
  const mouseX = useMotionValue(0);
@@ -23,15 +23,6 @@ var Select = forwardRef(function SelectComponent({ className = "", containerClas
23
23
  }
24
24
  if (ref) ref.current = hiddenSelectRef.current;
25
25
  }, [ref]);
26
- useEffect(() => {
27
- const handleClick = (event) => {
28
- if (containerRef.current && !containerRef.current.contains(event.target)) setOpen(false);
29
- };
30
- if (open) document.addEventListener("mousedown", handleClick);
31
- return () => {
32
- document.removeEventListener("mousedown", handleClick);
33
- };
34
- }, [open]);
35
26
  useEffect(() => {
36
27
  if (!open || !selectedOptionRef.current) return;
37
28
  const frameId = window.requestAnimationFrame(() => {
@@ -89,10 +80,19 @@ var Select = forwardRef(function SelectComponent({ className = "", containerClas
89
80
  children: option.label
90
81
  }, option.value))]
91
82
  }),
92
- /* @__PURE__ */ jsxs("div", {
93
- ref: containerRef,
94
- className: mergeClassNames("relative w-full", className),
95
- children: [/* @__PURE__ */ jsx(motion.div, {
83
+ /* @__PURE__ */ jsx(DropdownMenu, {
84
+ className: mergeClassNames("w-full", className),
85
+ open,
86
+ onOpenChange: (nextOpen) => {
87
+ if (disabled) {
88
+ setOpen(false);
89
+ return;
90
+ }
91
+ setOpen(nextOpen);
92
+ },
93
+ panelClassName: mergeClassNames(" left-0 top-[40px] z-20 mt-1 flex flex-col overflow-auto rounded-lg border border-ds-border-2 bg-ds-surface-1 shadow-3 backdrop-blur-xl transition", isCompact ? "max-h-56" : "max-h-60", dropdownClassName),
94
+ animationClassName: "origin-top-left",
95
+ trigger: /* @__PURE__ */ jsx(motion.div, {
96
96
  style: { backgroundImage: disabled ? "none" : useMotionTemplate`
97
97
  radial-gradient(
98
98
  ${visible ? `${radius}px` : "0px"} circle at ${mouseX}px ${mouseY}px,
@@ -103,12 +103,9 @@ var Select = forwardRef(function SelectComponent({ className = "", containerClas
103
103
  onMouseMove: !disabled ? handleMouseMove : void 0,
104
104
  onMouseEnter: !disabled ? () => setVisible(true) : void 0,
105
105
  onMouseLeave: !disabled ? () => setVisible(false) : void 0,
106
- className: mergeClassNames("group/select rounded-lg p-[2px] transition duration-300 hover:border-ds-border-accent", disabled ? "border-none bg-ds-surface-1" : error ? "border-ds-state-error-border" : "border-ds-border-2"),
106
+ className: mergeClassNames("group/select w-full rounded-lg p-[2px] transition duration-300 hover:border-ds-border-accent", disabled ? "border-none bg-ds-surface-1" : error ? "border-ds-state-error-border" : "border-ds-border-2"),
107
107
  children: /* @__PURE__ */ jsxs("div", {
108
108
  className: mergeClassNames("flex w-full cursor-pointer items-center justify-between rounded-md border border-ds-border-field transition duration-400 ease-in-out", isCompact ? "h-9 px-2.5 py-2 text-sm" : "h-10 px-3 py-2 text-sm", bgClassName, disabled ? "cursor-not-allowed opacity-50" : "text-ds-1", error ? "border-ds-state-error-border text-ds-state-error-text focus-visible:ring-ds-state-error-border" : "", triggerClassName),
109
- onClick: () => {
110
- if (!disabled) setOpen((current) => !current);
111
- },
112
109
  onKeyDown: handleKeyDown,
113
110
  role: "button",
114
111
  tabIndex: disabled ? -1 : 0,
@@ -133,30 +130,28 @@ var Select = forwardRef(function SelectComponent({ className = "", containerClas
133
130
  })
134
131
  })]
135
132
  })
136
- }), open && !disabled ? /* @__PURE__ */ jsxs("div", {
137
- className: mergeClassNames("absolute right-0 left-0 z-20 mt-1 flex flex-col overflow-auto rounded-lg border border-ds-border-2 bg-ds-surface-1 shadow-3 backdrop-blur-xl transition", isCompact ? "max-h-56" : "max-h-60", dropdownClassName),
138
- children: [options.length === 0 ? /* @__PURE__ */ jsx("div", {
139
- className: "px-3 py-2 text-ds-2",
140
- children: "No options"
141
- }) : null, options.map((option) => /* @__PURE__ */ jsxs("div", {
142
- ref: option.value === value ? selectedOptionRef : null,
143
- className: mergeClassNames("mx-1 my-1 flex cursor-pointer items-center rounded-md text-ds-1 transition", isCompact ? "gap-1.5 px-2.5 py-2 text-sm" : "gap-2 px-3 py-2 text-sm", option.value === value ? "bg-ds-accent-subtle font-semibold text-ds-1" : "", "hover:bg-ds-accent hover:text-ds-on-accent", optionClassName),
144
- onClick: () => handleSelect(option.value),
145
- children: [selectionIndicator === "check" ? /* @__PURE__ */ jsx("span", {
146
- className: mergeClassNames("flex items-center justify-center", isCompact ? "w-4" : "w-5"),
147
- children: option.value === value ? /* @__PURE__ */ jsx(CheckIcon, {
148
- className: "text-ds-1",
149
- width: isCompact ? 16 : 18,
150
- height: isCompact ? 16 : 18
151
- }) : null
152
- }) : null, /* @__PURE__ */ jsx(TruncatedText, {
153
- as: "span",
154
- showTitleOnHover: true,
155
- className: "flex-1",
156
- children: option.label
157
- })]
158
- }, option.value))]
159
- }) : null]
133
+ }),
134
+ children: !disabled ? /* @__PURE__ */ jsxs(Fragment$1, { children: [options.length === 0 ? /* @__PURE__ */ jsx("div", {
135
+ className: "px-3 py-2 text-ds-2",
136
+ children: noOptionsText
137
+ }) : null, options.map((option) => /* @__PURE__ */ jsxs("div", {
138
+ ref: option.value === value ? selectedOptionRef : null,
139
+ className: mergeClassNames("mx-1 my-1 flex cursor-pointer items-center rounded-md text-ds-1 transition", isCompact ? "gap-1.5 px-2.5 py-2 text-sm" : "gap-2 px-3 py-2 text-sm", option.value === value ? "bg-ds-accent-subtle font-semibold text-ds-1" : "", "hover:bg-ds-accent hover:text-ds-on-accent", optionClassName),
140
+ onClick: () => handleSelect(option.value),
141
+ children: [selectionIndicator === "check" ? /* @__PURE__ */ jsx("span", {
142
+ className: mergeClassNames("flex items-center justify-center", isCompact ? "w-4" : "w-5"),
143
+ children: option.value === value ? /* @__PURE__ */ jsx(CheckIcon, {
144
+ className: "text-ds-1",
145
+ width: isCompact ? 16 : 18,
146
+ height: isCompact ? 16 : 18
147
+ }) : null
148
+ }) : null, /* @__PURE__ */ jsx(TruncatedText, {
149
+ as: "span",
150
+ showTitleOnHover: true,
151
+ className: "flex-1",
152
+ children: option.label
153
+ })]
154
+ }, option.value))] }) : null
160
155
  }),
161
156
  error ? /* @__PURE__ */ jsx("p", {
162
157
  className: "mt-1 text-sm font-medium text-ds-state-error-text",
@@ -173,4 +168,4 @@ Select.displayName = "Select";
173
168
  //#endregion
174
169
  export { Select as t };
175
170
 
176
- //# sourceMappingURL=select-1rSJeUBQ.mjs.map
171
+ //# sourceMappingURL=select-D0GOBB-b.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-D0GOBB-b.mjs","names":[],"sources":["../../src/components/forms/select/Select.tsx"],"sourcesContent":["import {\n forwardRef,\n useEffect,\n useRef,\n useState,\n type ChangeEvent,\n type ForwardedRef,\n type KeyboardEvent,\n type MouseEvent as ReactMouseEvent,\n} from \"react\";\nimport { motion, useMotionTemplate, useMotionValue } from \"framer-motion\";\n\nimport { CheckIcon, ChevronDownIcon } from \"../../icons\";\nimport { DropdownMenu } from \"../../overlays/dropdown-menu\";\nimport { TruncatedText } from \"../../typography/truncated-text\";\nimport { mergeClassNames } from \"../../../utils\";\nimport type { SelectProps } from \"./types\";\n\nexport const Select = forwardRef(function SelectComponent(\n {\n className = \"\",\n containerClassName = \"\",\n triggerClassName = \"\",\n dropdownClassName = \"\",\n optionClassName = \"\",\n label,\n error,\n helperText,\n options,\n value,\n onChange,\n placeholder = \"Select...\",\n noOptionsText = \"No options\",\n disabled,\n bgClassName = \"bg-ds-surface-1\",\n size = \"default\",\n selectionIndicator = \"check\",\n ...props\n }: SelectProps,\n ref: ForwardedRef<HTMLSelectElement>,\n) {\n const [open, setOpen] = useState(false);\n const [visible, setVisible] = useState(false);\n const hiddenSelectRef = useRef<HTMLSelectElement>(null);\n const selectedOptionRef = useRef<HTMLDivElement>(null);\n const mouseX = useMotionValue(0);\n const mouseY = useMotionValue(0);\n const radius = 100;\n const isCompact = size === \"compact\";\n const selectedOption = options.find((option) => option.value === value);\n\n useEffect(() => {\n if (typeof ref === \"function\") {\n ref(hiddenSelectRef.current);\n return;\n }\n\n if (ref) {\n ref.current = hiddenSelectRef.current;\n }\n }, [ref]);\n\n useEffect(() => {\n if (!open || !selectedOptionRef.current) {\n return;\n }\n\n const frameId = window.requestAnimationFrame(() => {\n selectedOptionRef.current?.scrollIntoView({ block: \"nearest\" });\n });\n\n return () => {\n window.cancelAnimationFrame(frameId);\n };\n }, [open, value]);\n\n const handleMouseMove = (event: ReactMouseEvent<HTMLDivElement>) => {\n const { left, top } = event.currentTarget.getBoundingClientRect();\n mouseX.set(event.clientX - left);\n mouseY.set(event.clientY - top);\n };\n\n const handleSelect = (optionValue: string) => {\n if (onChange && hiddenSelectRef.current) {\n const syntheticEvent = {\n target: { value: optionValue, name: props.name },\n currentTarget: { value: optionValue, name: props.name },\n } as ChangeEvent<HTMLSelectElement>;\n\n onChange(syntheticEvent);\n }\n\n setOpen(false);\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (disabled) {\n return;\n }\n\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n setOpen((current) => !current);\n }\n\n if (event.key === \"Escape\") {\n setOpen(false);\n }\n };\n\n return (\n <div\n className={mergeClassNames(\n \"w-full\",\n isCompact ? \"min-w-0\" : \"min-w-48\",\n containerClassName,\n )}\n >\n {label ? (\n <label className=\"mb-2 block text-sm leading-none font-medium text-ds-1 peer-disabled:cursor-not-allowed peer-disabled:opacity-70\">\n {label}\n </label>\n ) : null}\n\n <select\n ref={hiddenSelectRef}\n className=\"sr-only\"\n value={value}\n onChange={onChange}\n disabled={disabled}\n {...props}\n >\n <option value=\"\">{placeholder}</option>\n {options.map((option) => (\n <option key={option.value} value={option.value}>\n {option.label}\n </option>\n ))}\n </select>\n\n <DropdownMenu\n className={mergeClassNames(\"w-full\", className)}\n open={open}\n onOpenChange={(nextOpen) => {\n if (disabled) {\n setOpen(false);\n return;\n }\n\n setOpen(nextOpen);\n }}\n panelClassName={mergeClassNames(\n \" left-0 top-[40px] z-20 mt-1 flex flex-col overflow-auto rounded-lg border border-ds-border-2 bg-ds-surface-1 shadow-3 backdrop-blur-xl transition\",\n isCompact ? \"max-h-56\" : \"max-h-60\",\n dropdownClassName,\n )}\n animationClassName=\"origin-top-left\"\n trigger={\n <motion.div\n style={{\n backgroundImage: disabled\n ? \"none\"\n : useMotionTemplate`\n radial-gradient(\n ${visible ? `${radius}px` : \"0px\"} circle at ${mouseX}px ${mouseY}px,\n var(--ds-color-accent),\n transparent 90%\n )\n `,\n }}\n onMouseMove={!disabled ? handleMouseMove : undefined}\n onMouseEnter={!disabled ? () => setVisible(true) : undefined}\n onMouseLeave={!disabled ? () => setVisible(false) : undefined}\n className={mergeClassNames(\n \"group/select w-full rounded-lg p-[2px] transition duration-300 hover:border-ds-border-accent\",\n disabled\n ? \"border-none bg-ds-surface-1\"\n : error\n ? \"border-ds-state-error-border\"\n : \"border-ds-border-2\",\n )}\n >\n <div\n className={mergeClassNames(\n \"flex w-full cursor-pointer items-center justify-between rounded-md border border-ds-border-field transition duration-400 ease-in-out\",\n isCompact\n ? \"h-9 px-2.5 py-2 text-sm\"\n : \"h-10 px-3 py-2 text-sm\",\n bgClassName,\n disabled ? \"cursor-not-allowed opacity-50\" : \"text-ds-1\",\n error\n ? \"border-ds-state-error-border text-ds-state-error-text focus-visible:ring-ds-state-error-border\"\n : \"\",\n triggerClassName,\n )}\n onKeyDown={handleKeyDown}\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n >\n {selectedOption ? (\n <TruncatedText\n as=\"span\"\n showTitleOnHover\n className=\"flex-1 text-ds-1\"\n >\n {selectedOption.label}\n </TruncatedText>\n ) : (\n <TruncatedText as=\"span\" className=\"flex-1 text-ds-2\">\n {placeholder}\n </TruncatedText>\n )}\n\n <span\n className={mergeClassNames(\n \"ml-2 shrink-0 text-ds-2 transition-transform duration-300\",\n open ? \"rotate-180\" : \"rotate-0\",\n )}\n >\n <ChevronDownIcon\n width={24}\n height={24}\n color=\"currentColor\"\n className={isCompact ? \"h-4 w-4\" : \"h-5 w-5\"}\n />\n </span>\n </div>\n </motion.div>\n }\n >\n {!disabled ? (\n <>\n {options.length === 0 ? (\n <div className=\"px-3 py-2 text-ds-2\">{noOptionsText}</div>\n ) : null}\n\n {options.map((option) => (\n <div\n key={option.value}\n ref={option.value === value ? selectedOptionRef : null}\n className={mergeClassNames(\n \"mx-1 my-1 flex cursor-pointer items-center rounded-md text-ds-1 transition\",\n isCompact\n ? \"gap-1.5 px-2.5 py-2 text-sm\"\n : \"gap-2 px-3 py-2 text-sm\",\n option.value === value\n ? \"bg-ds-accent-subtle font-semibold text-ds-1\"\n : \"\",\n \"hover:bg-ds-accent hover:text-ds-on-accent\",\n optionClassName,\n )}\n onClick={() => handleSelect(option.value)}\n >\n {selectionIndicator === \"check\" ? (\n <span\n className={mergeClassNames(\n \"flex items-center justify-center\",\n isCompact ? \"w-4\" : \"w-5\",\n )}\n >\n {option.value === value ? (\n <CheckIcon\n className=\"text-ds-1\"\n width={isCompact ? 16 : 18}\n height={isCompact ? 16 : 18}\n />\n ) : null}\n </span>\n ) : null}\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {option.label}\n </TruncatedText>\n </div>\n ))}\n </>\n ) : null}\n </DropdownMenu>\n\n {error ? (\n <p className=\"mt-1 text-sm font-medium text-ds-state-error-text\">\n {error}\n </p>\n ) : null}\n {helperText && !error ? (\n <p className=\"mt-1 text-sm text-ds-2\">{helperText}</p>\n ) : null}\n </div>\n );\n});\n\nSelect.displayName = \"Select\";\n"],"mappings":"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"}