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
@@ -0,0 +1,127 @@
1
+ import { n as mergeClassNames } from "./utils-ati1KkDb.mjs";
2
+ import { t as TruncatedText } from "./truncated-text-DTgks5yS.mjs";
3
+ import { J as CheckIcon, N as ChevronDownIcon } from "./icons-bx3nrxNv.mjs";
4
+ import { t as DropdownMenu } from "./DropdownMenu-C17Zqu_E.mjs";
5
+ import { useState } from "react";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ import { motion, useMotionTemplate, useMotionValue } from "framer-motion";
8
+ //#region src/components/forms/combobox/Combobox.tsx
9
+ var Combobox = ({ options, value, onChange, placeholder = "Select...", searchPlaceholder = "Type to search...", noOptionsText = "No options", className, bgClassName = "bg-ds-surface-1", createOptionLabel, onCreateOption }) => {
10
+ const [open, setOpen] = useState(false);
11
+ const [search, setSearch] = useState("");
12
+ const [visible, setVisible] = useState(false);
13
+ const mouseX = useMotionValue(0);
14
+ const mouseY = useMotionValue(0);
15
+ const radius = 100;
16
+ const filteredOptions = options.filter((opt) => opt.label.toLowerCase().includes(search.toLowerCase()));
17
+ const handleMouseMove = (event) => {
18
+ const { left, top } = event.currentTarget.getBoundingClientRect();
19
+ mouseX.set(event.clientX - left);
20
+ mouseY.set(event.clientY - top);
21
+ };
22
+ return /* @__PURE__ */ jsxs(DropdownMenu, {
23
+ className: mergeClassNames("w-full", className),
24
+ open,
25
+ onOpenChange: (nextOpen) => {
26
+ setOpen(nextOpen);
27
+ if (!nextOpen) setSearch("");
28
+ },
29
+ animationClassName: "origin-top-left",
30
+ panelClassName: " left-0 top-[40px] z-20 mt-1 flex max-h-60 flex-col rounded-lg border border-ds-border-2 bg-ds-surface-1 shadow-3 backdrop-blur-xl transition",
31
+ trigger: /* @__PURE__ */ jsx(motion.div, {
32
+ style: { backgroundImage: useMotionTemplate`
33
+ radial-gradient(
34
+ ${visible ? `${radius}px` : "0px"} circle at ${mouseX}px ${mouseY}px,
35
+ var(--ds-color-accent),
36
+ transparent 90%
37
+ )
38
+ ` },
39
+ onMouseMove: handleMouseMove,
40
+ onMouseEnter: () => setVisible(true),
41
+ onMouseLeave: () => setVisible(false),
42
+ className: "group/combobox w-full rounded-lg border-ds-border-2 p-[2px] transition duration-300 hover:border-ds-border-accent",
43
+ children: /* @__PURE__ */ jsxs("div", {
44
+ className: mergeClassNames("flex h-10 w-full cursor-pointer items-center justify-between rounded-md border border-ds-border-field px-3 py-2 text-sm text-ds-1 transition duration-400 ease-in-out focus-visible:ring-2 focus-visible:ring-ds-focus focus-visible:outline-none", bgClassName),
45
+ children: [value ? /* @__PURE__ */ jsx(TruncatedText, {
46
+ as: "span",
47
+ showTitleOnHover: true,
48
+ className: "flex-1 text-ds-1",
49
+ children: options.find((opt) => opt.value === value)?.label
50
+ }) : /* @__PURE__ */ jsx(TruncatedText, {
51
+ as: "span",
52
+ className: "flex-1 text-ds-2",
53
+ children: placeholder
54
+ }), /* @__PURE__ */ jsx("span", {
55
+ className: mergeClassNames("ml-2 text-ds-2 transition-transform duration-300", open ? "rotate-180" : "rotate-0"),
56
+ children: /* @__PURE__ */ jsx(ChevronDownIcon, {
57
+ width: 24,
58
+ height: 24,
59
+ color: "currentColor",
60
+ className: "h-5 w-5"
61
+ })
62
+ })]
63
+ })
64
+ }),
65
+ children: [
66
+ /* @__PURE__ */ jsx("div", {
67
+ className: "sticky top-0 z-10 rounded-t-lg border-b border-ds-border-2/30 bg-ds-surface-1/95 backdrop-blur-sm",
68
+ children: /* @__PURE__ */ jsx("input", {
69
+ autoFocus: true,
70
+ className: "w-full bg-transparent px-3 py-2 text-sm text-ds-1 outline-none placeholder:text-ds-2 focus-visible:ring-2 focus-visible:ring-ds-focus/30 rounded-t-lg",
71
+ placeholder: searchPlaceholder,
72
+ value: search,
73
+ onChange: (e) => setSearch(e.target.value),
74
+ onClick: (e) => e.stopPropagation()
75
+ })
76
+ }),
77
+ /* @__PURE__ */ jsxs("div", {
78
+ className: "max-h-80 flex-1 overflow-auto",
79
+ children: [filteredOptions.length === 0 && !createOptionLabel && /* @__PURE__ */ jsx("div", {
80
+ className: "px-3 py-2 text-ds-2",
81
+ children: noOptionsText
82
+ }), filteredOptions.map((opt) => /* @__PURE__ */ jsxs("div", {
83
+ className: mergeClassNames("mx-1 my-1 flex cursor-pointer items-center gap-2 rounded-md px-3 py-2 text-sm text-ds-1 transition", opt.value === value ? "bg-ds-accent-subtle text-ds-1 font-semibold" : "", "hover:bg-ds-accent hover:text-ds-on-accent"),
84
+ onClick: () => {
85
+ onChange(opt.value);
86
+ setSearch("");
87
+ setOpen(false);
88
+ },
89
+ children: [/* @__PURE__ */ jsx("span", {
90
+ className: "flex w-5 items-center justify-center",
91
+ children: opt.value === value && /* @__PURE__ */ jsx(CheckIcon, {
92
+ className: "text-ds-1",
93
+ width: 18,
94
+ height: 18
95
+ })
96
+ }), /* @__PURE__ */ jsx(TruncatedText, {
97
+ as: "span",
98
+ showTitleOnHover: true,
99
+ className: "flex-1",
100
+ children: opt.label
101
+ })]
102
+ }, opt.value))]
103
+ }),
104
+ createOptionLabel && onCreateOption && /* @__PURE__ */ jsx("div", {
105
+ className: "sticky bottom-0 z-10 rounded-b-lg border-t border-ds-border-3 bg-ds-surface-1/95 backdrop-blur-sm",
106
+ children: /* @__PURE__ */ jsxs("div", {
107
+ className: "mx-1 my-1 flex cursor-pointer items-center gap-2 rounded-md px-3 py-2 text-sm font-semibold text-ds-1 transition hover:bg-ds-accent hover:text-ds-on-accent",
108
+ onClick: () => {
109
+ onCreateOption();
110
+ setSearch("");
111
+ setOpen(false);
112
+ },
113
+ children: [/* @__PURE__ */ jsx("span", { className: "flex w-5 items-center justify-center" }), /* @__PURE__ */ jsx(TruncatedText, {
114
+ as: "span",
115
+ showTitleOnHover: true,
116
+ className: "flex-1",
117
+ children: createOptionLabel
118
+ })]
119
+ })
120
+ })
121
+ ]
122
+ });
123
+ };
124
+ //#endregion
125
+ export { Combobox as t };
126
+
127
+ //# sourceMappingURL=combobox-Bcwi33Qx.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combobox-Bcwi33Qx.mjs","names":[],"sources":["../../src/components/forms/combobox/Combobox.tsx"],"sourcesContent":["import React, { useState } 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\";\n\nexport interface ComboboxOption {\n label: string;\n value: string;\n}\n\nexport interface ComboboxProps {\n options: ComboboxOption[];\n value: string;\n onChange: (value: string) => void;\n placeholder?: string;\n searchPlaceholder?: string;\n noOptionsText?: string;\n className?: string;\n bgClassName?: string;\n createOptionLabel?: string;\n onCreateOption?: () => void;\n}\n\nconst Combobox: React.FC<ComboboxProps> = ({\n options,\n value,\n onChange,\n placeholder = \"Select...\",\n searchPlaceholder = \"Type to search...\",\n noOptionsText = \"No options\",\n className,\n bgClassName = \"bg-ds-surface-1\",\n createOptionLabel,\n onCreateOption,\n}) => {\n const [open, setOpen] = useState(false);\n const [search, setSearch] = useState(\"\");\n const [visible, setVisible] = useState(false);\n const mouseX = useMotionValue(0);\n const mouseY = useMotionValue(0);\n const radius = 100;\n\n // Filter options by search\n const filteredOptions = options.filter((opt) =>\n opt.label.toLowerCase().includes(search.toLowerCase()),\n );\n\n const handleMouseMove = (event: React.MouseEvent<HTMLDivElement>) => {\n const { left, top } = event.currentTarget.getBoundingClientRect();\n mouseX.set(event.clientX - left);\n mouseY.set(event.clientY - top);\n };\n\n return (\n <DropdownMenu\n className={mergeClassNames(\"w-full\", className)}\n open={open}\n onOpenChange={(nextOpen) => {\n setOpen(nextOpen);\n if (!nextOpen) {\n setSearch(\"\");\n }\n }}\n animationClassName=\"origin-top-left\"\n panelClassName=\" left-0 top-[40px] z-20 mt-1 flex max-h-60 flex-col rounded-lg border border-ds-border-2 bg-ds-surface-1 shadow-3 backdrop-blur-xl transition\"\n trigger={\n <motion.div\n style={{\n backgroundImage: 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={handleMouseMove}\n onMouseEnter={() => setVisible(true)}\n onMouseLeave={() => setVisible(false)}\n className=\"group/combobox w-full rounded-lg border-ds-border-2 p-[2px] transition duration-300 hover:border-ds-border-accent\"\n >\n <div\n className={mergeClassNames(\n \"flex h-10 w-full cursor-pointer items-center justify-between rounded-md border border-ds-border-field px-3 py-2 text-sm text-ds-1 transition duration-400 ease-in-out focus-visible:ring-2 focus-visible:ring-ds-focus focus-visible:outline-none\",\n bgClassName,\n )}\n >\n {value ? (\n <TruncatedText\n as=\"span\"\n showTitleOnHover\n className=\"flex-1 text-ds-1\"\n >\n {options.find((opt) => opt.value === value)?.label}\n </TruncatedText>\n ) : (\n <TruncatedText as=\"span\" className=\"flex-1 text-ds-2\">\n {placeholder}\n </TruncatedText>\n )}\n <span\n className={mergeClassNames(\n \"ml-2 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=\"h-5 w-5\"\n />\n </span>\n </div>\n </motion.div>\n }\n >\n {/* Sticky search input */}\n <div className=\"sticky top-0 z-10 rounded-t-lg border-b border-ds-border-2/30 bg-ds-surface-1/95 backdrop-blur-sm\">\n <input\n autoFocus\n className=\"w-full bg-transparent px-3 py-2 text-sm text-ds-1 outline-none placeholder:text-ds-2 focus-visible:ring-2 focus-visible:ring-ds-focus/30 rounded-t-lg\"\n placeholder={searchPlaceholder}\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n onClick={(e) => e.stopPropagation()}\n />\n </div>\n {/* Scrollable options */}\n <div className=\"max-h-80 flex-1 overflow-auto\">\n {filteredOptions.length === 0 && !createOptionLabel && (\n <div className=\"px-3 py-2 text-ds-2\">{noOptionsText}</div>\n )}\n {filteredOptions.map((opt) => (\n <div\n key={opt.value}\n className={mergeClassNames(\n \"mx-1 my-1 flex cursor-pointer items-center gap-2 rounded-md px-3 py-2 text-sm text-ds-1 transition\",\n opt.value === value\n ? \"bg-ds-accent-subtle text-ds-1 font-semibold\"\n : \"\",\n \"hover:bg-ds-accent hover:text-ds-on-accent\",\n )}\n onClick={() => {\n onChange(opt.value);\n setSearch(\"\");\n setOpen(false);\n }}\n >\n <span className=\"flex w-5 items-center justify-center\">\n {opt.value === value && (\n <CheckIcon className=\"text-ds-1\" width={18} height={18} />\n )}\n </span>\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {opt.label}\n </TruncatedText>\n </div>\n ))}\n </div>\n {/* Sticky create option */}\n {createOptionLabel && onCreateOption && (\n <div className=\"sticky bottom-0 z-10 rounded-b-lg border-t border-ds-border-3 bg-ds-surface-1/95 backdrop-blur-sm\">\n <div\n className=\"mx-1 my-1 flex cursor-pointer items-center gap-2 rounded-md px-3 py-2 text-sm font-semibold text-ds-1 transition hover:bg-ds-accent hover:text-ds-on-accent\"\n onClick={() => {\n onCreateOption();\n setSearch(\"\");\n setOpen(false);\n }}\n >\n <span className=\"flex w-5 items-center justify-center\">\n {/* Optionally add an icon here */}\n </span>\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {createOptionLabel}\n </TruncatedText>\n </div>\n </div>\n )}\n </DropdownMenu>\n );\n};\n\nexport default Combobox;\n"],"mappings":"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"}
@@ -0,0 +1,134 @@
1
+ const require_chunk = require("./chunk-B_GkZjkl.cjs");
2
+ const require_utils = require("./utils-B4SmmY4J.cjs");
3
+ const require_truncated_text = require("./truncated-text-istgJRUq.cjs");
4
+ const require_icons = require("./icons-CRanVZB1.cjs");
5
+ const require_DropdownMenu = require("./DropdownMenu-DOvo5pV_.cjs");
6
+ let react = require("react");
7
+ react = require_chunk.__toESM(react, 1);
8
+ let react_jsx_runtime = require("react/jsx-runtime");
9
+ let framer_motion = require("framer-motion");
10
+ //#region src/components/forms/combobox/Combobox.tsx
11
+ var Combobox = ({ options, value, onChange, placeholder = "Select...", searchPlaceholder = "Type to search...", noOptionsText = "No options", className, bgClassName = "bg-ds-surface-1", createOptionLabel, onCreateOption }) => {
12
+ const [open, setOpen] = (0, react.useState)(false);
13
+ const [search, setSearch] = (0, react.useState)("");
14
+ const [visible, setVisible] = (0, react.useState)(false);
15
+ const mouseX = (0, framer_motion.useMotionValue)(0);
16
+ const mouseY = (0, framer_motion.useMotionValue)(0);
17
+ const radius = 100;
18
+ const filteredOptions = options.filter((opt) => opt.label.toLowerCase().includes(search.toLowerCase()));
19
+ const handleMouseMove = (event) => {
20
+ const { left, top } = event.currentTarget.getBoundingClientRect();
21
+ mouseX.set(event.clientX - left);
22
+ mouseY.set(event.clientY - top);
23
+ };
24
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_DropdownMenu.DropdownMenu, {
25
+ className: require_utils.mergeClassNames("w-full", className),
26
+ open,
27
+ onOpenChange: (nextOpen) => {
28
+ setOpen(nextOpen);
29
+ if (!nextOpen) setSearch("");
30
+ },
31
+ animationClassName: "origin-top-left",
32
+ panelClassName: " left-0 top-[40px] z-20 mt-1 flex max-h-60 flex-col rounded-lg border border-ds-border-2 bg-ds-surface-1 shadow-3 backdrop-blur-xl transition",
33
+ trigger: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(framer_motion.motion.div, {
34
+ style: { backgroundImage: framer_motion.useMotionTemplate`
35
+ radial-gradient(
36
+ ${visible ? `${radius}px` : "0px"} circle at ${mouseX}px ${mouseY}px,
37
+ var(--ds-color-accent),
38
+ transparent 90%
39
+ )
40
+ ` },
41
+ onMouseMove: handleMouseMove,
42
+ onMouseEnter: () => setVisible(true),
43
+ onMouseLeave: () => setVisible(false),
44
+ className: "group/combobox w-full rounded-lg border-ds-border-2 p-[2px] transition duration-300 hover:border-ds-border-accent",
45
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
46
+ className: require_utils.mergeClassNames("flex h-10 w-full cursor-pointer items-center justify-between rounded-md border border-ds-border-field px-3 py-2 text-sm text-ds-1 transition duration-400 ease-in-out focus-visible:ring-2 focus-visible:ring-ds-focus focus-visible:outline-none", bgClassName),
47
+ children: [value ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_truncated_text.TruncatedText, {
48
+ as: "span",
49
+ showTitleOnHover: true,
50
+ className: "flex-1 text-ds-1",
51
+ children: options.find((opt) => opt.value === value)?.label
52
+ }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_truncated_text.TruncatedText, {
53
+ as: "span",
54
+ className: "flex-1 text-ds-2",
55
+ children: placeholder
56
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
57
+ className: require_utils.mergeClassNames("ml-2 text-ds-2 transition-transform duration-300", open ? "rotate-180" : "rotate-0"),
58
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.ChevronDownIcon, {
59
+ width: 24,
60
+ height: 24,
61
+ color: "currentColor",
62
+ className: "h-5 w-5"
63
+ })
64
+ })]
65
+ })
66
+ }),
67
+ children: [
68
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
69
+ className: "sticky top-0 z-10 rounded-t-lg border-b border-ds-border-2/30 bg-ds-surface-1/95 backdrop-blur-sm",
70
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
71
+ autoFocus: true,
72
+ className: "w-full bg-transparent px-3 py-2 text-sm text-ds-1 outline-none placeholder:text-ds-2 focus-visible:ring-2 focus-visible:ring-ds-focus/30 rounded-t-lg",
73
+ placeholder: searchPlaceholder,
74
+ value: search,
75
+ onChange: (e) => setSearch(e.target.value),
76
+ onClick: (e) => e.stopPropagation()
77
+ })
78
+ }),
79
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
80
+ className: "max-h-80 flex-1 overflow-auto",
81
+ children: [filteredOptions.length === 0 && !createOptionLabel && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
82
+ className: "px-3 py-2 text-ds-2",
83
+ children: noOptionsText
84
+ }), filteredOptions.map((opt) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
85
+ className: require_utils.mergeClassNames("mx-1 my-1 flex cursor-pointer items-center gap-2 rounded-md px-3 py-2 text-sm text-ds-1 transition", opt.value === value ? "bg-ds-accent-subtle text-ds-1 font-semibold" : "", "hover:bg-ds-accent hover:text-ds-on-accent"),
86
+ onClick: () => {
87
+ onChange(opt.value);
88
+ setSearch("");
89
+ setOpen(false);
90
+ },
91
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
92
+ className: "flex w-5 items-center justify-center",
93
+ children: opt.value === value && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.CheckIcon, {
94
+ className: "text-ds-1",
95
+ width: 18,
96
+ height: 18
97
+ })
98
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_truncated_text.TruncatedText, {
99
+ as: "span",
100
+ showTitleOnHover: true,
101
+ className: "flex-1",
102
+ children: opt.label
103
+ })]
104
+ }, opt.value))]
105
+ }),
106
+ createOptionLabel && onCreateOption && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
107
+ className: "sticky bottom-0 z-10 rounded-b-lg border-t border-ds-border-3 bg-ds-surface-1/95 backdrop-blur-sm",
108
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
109
+ className: "mx-1 my-1 flex cursor-pointer items-center gap-2 rounded-md px-3 py-2 text-sm font-semibold text-ds-1 transition hover:bg-ds-accent hover:text-ds-on-accent",
110
+ onClick: () => {
111
+ onCreateOption();
112
+ setSearch("");
113
+ setOpen(false);
114
+ },
115
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className: "flex w-5 items-center justify-center" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_truncated_text.TruncatedText, {
116
+ as: "span",
117
+ showTitleOnHover: true,
118
+ className: "flex-1",
119
+ children: createOptionLabel
120
+ })]
121
+ })
122
+ })
123
+ ]
124
+ });
125
+ };
126
+ //#endregion
127
+ Object.defineProperty(exports, "Combobox", {
128
+ enumerable: true,
129
+ get: function() {
130
+ return Combobox;
131
+ }
132
+ });
133
+
134
+ //# sourceMappingURL=combobox-DRiHHhXL.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combobox-DRiHHhXL.cjs","names":[],"sources":["../../src/components/forms/combobox/Combobox.tsx"],"sourcesContent":["import React, { useState } 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\";\n\nexport interface ComboboxOption {\n label: string;\n value: string;\n}\n\nexport interface ComboboxProps {\n options: ComboboxOption[];\n value: string;\n onChange: (value: string) => void;\n placeholder?: string;\n searchPlaceholder?: string;\n noOptionsText?: string;\n className?: string;\n bgClassName?: string;\n createOptionLabel?: string;\n onCreateOption?: () => void;\n}\n\nconst Combobox: React.FC<ComboboxProps> = ({\n options,\n value,\n onChange,\n placeholder = \"Select...\",\n searchPlaceholder = \"Type to search...\",\n noOptionsText = \"No options\",\n className,\n bgClassName = \"bg-ds-surface-1\",\n createOptionLabel,\n onCreateOption,\n}) => {\n const [open, setOpen] = useState(false);\n const [search, setSearch] = useState(\"\");\n const [visible, setVisible] = useState(false);\n const mouseX = useMotionValue(0);\n const mouseY = useMotionValue(0);\n const radius = 100;\n\n // Filter options by search\n const filteredOptions = options.filter((opt) =>\n opt.label.toLowerCase().includes(search.toLowerCase()),\n );\n\n const handleMouseMove = (event: React.MouseEvent<HTMLDivElement>) => {\n const { left, top } = event.currentTarget.getBoundingClientRect();\n mouseX.set(event.clientX - left);\n mouseY.set(event.clientY - top);\n };\n\n return (\n <DropdownMenu\n className={mergeClassNames(\"w-full\", className)}\n open={open}\n onOpenChange={(nextOpen) => {\n setOpen(nextOpen);\n if (!nextOpen) {\n setSearch(\"\");\n }\n }}\n animationClassName=\"origin-top-left\"\n panelClassName=\" left-0 top-[40px] z-20 mt-1 flex max-h-60 flex-col rounded-lg border border-ds-border-2 bg-ds-surface-1 shadow-3 backdrop-blur-xl transition\"\n trigger={\n <motion.div\n style={{\n backgroundImage: 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={handleMouseMove}\n onMouseEnter={() => setVisible(true)}\n onMouseLeave={() => setVisible(false)}\n className=\"group/combobox w-full rounded-lg border-ds-border-2 p-[2px] transition duration-300 hover:border-ds-border-accent\"\n >\n <div\n className={mergeClassNames(\n \"flex h-10 w-full cursor-pointer items-center justify-between rounded-md border border-ds-border-field px-3 py-2 text-sm text-ds-1 transition duration-400 ease-in-out focus-visible:ring-2 focus-visible:ring-ds-focus focus-visible:outline-none\",\n bgClassName,\n )}\n >\n {value ? (\n <TruncatedText\n as=\"span\"\n showTitleOnHover\n className=\"flex-1 text-ds-1\"\n >\n {options.find((opt) => opt.value === value)?.label}\n </TruncatedText>\n ) : (\n <TruncatedText as=\"span\" className=\"flex-1 text-ds-2\">\n {placeholder}\n </TruncatedText>\n )}\n <span\n className={mergeClassNames(\n \"ml-2 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=\"h-5 w-5\"\n />\n </span>\n </div>\n </motion.div>\n }\n >\n {/* Sticky search input */}\n <div className=\"sticky top-0 z-10 rounded-t-lg border-b border-ds-border-2/30 bg-ds-surface-1/95 backdrop-blur-sm\">\n <input\n autoFocus\n className=\"w-full bg-transparent px-3 py-2 text-sm text-ds-1 outline-none placeholder:text-ds-2 focus-visible:ring-2 focus-visible:ring-ds-focus/30 rounded-t-lg\"\n placeholder={searchPlaceholder}\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n onClick={(e) => e.stopPropagation()}\n />\n </div>\n {/* Scrollable options */}\n <div className=\"max-h-80 flex-1 overflow-auto\">\n {filteredOptions.length === 0 && !createOptionLabel && (\n <div className=\"px-3 py-2 text-ds-2\">{noOptionsText}</div>\n )}\n {filteredOptions.map((opt) => (\n <div\n key={opt.value}\n className={mergeClassNames(\n \"mx-1 my-1 flex cursor-pointer items-center gap-2 rounded-md px-3 py-2 text-sm text-ds-1 transition\",\n opt.value === value\n ? \"bg-ds-accent-subtle text-ds-1 font-semibold\"\n : \"\",\n \"hover:bg-ds-accent hover:text-ds-on-accent\",\n )}\n onClick={() => {\n onChange(opt.value);\n setSearch(\"\");\n setOpen(false);\n }}\n >\n <span className=\"flex w-5 items-center justify-center\">\n {opt.value === value && (\n <CheckIcon className=\"text-ds-1\" width={18} height={18} />\n )}\n </span>\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {opt.label}\n </TruncatedText>\n </div>\n ))}\n </div>\n {/* Sticky create option */}\n {createOptionLabel && onCreateOption && (\n <div className=\"sticky bottom-0 z-10 rounded-b-lg border-t border-ds-border-3 bg-ds-surface-1/95 backdrop-blur-sm\">\n <div\n className=\"mx-1 my-1 flex cursor-pointer items-center gap-2 rounded-md px-3 py-2 text-sm font-semibold text-ds-1 transition hover:bg-ds-accent hover:text-ds-on-accent\"\n onClick={() => {\n onCreateOption();\n setSearch(\"\");\n setOpen(false);\n }}\n >\n <span className=\"flex w-5 items-center justify-center\">\n {/* Optionally add an icon here */}\n </span>\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {createOptionLabel}\n </TruncatedText>\n </div>\n </div>\n )}\n </DropdownMenu>\n );\n};\n\nexport default Combobox;\n"],"mappings":"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"}