erp-pro-ui 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (400) hide show
  1. package/README.md +512 -288
  2. package/dist/accordion.cjs +1 -1
  3. package/dist/accordion.mjs +1 -1
  4. package/dist/alert.cjs +1 -1
  5. package/dist/alert.mjs +1 -1
  6. package/dist/ascii-text.cjs +1 -1
  7. package/dist/ascii-text.mjs +1 -1
  8. package/dist/button.cjs +1 -1
  9. package/dist/button.mjs +1 -1
  10. package/dist/card.cjs +1 -1
  11. package/dist/card.mjs +1 -1
  12. package/dist/carousel.cjs +1 -1
  13. package/dist/carousel.mjs +1 -1
  14. package/dist/catalog.cjs +6 -0
  15. package/dist/catalog.cjs.map +1 -1
  16. package/dist/catalog.d.ts +11 -1
  17. package/dist/catalog.d.ts.map +1 -1
  18. package/dist/catalog.mjs +6 -0
  19. package/dist/catalog.mjs.map +1 -1
  20. package/dist/charts.cjs +4 -1
  21. package/dist/charts.mjs +2 -2
  22. package/dist/checkbox.cjs +1 -1
  23. package/dist/checkbox.mjs +1 -1
  24. package/dist/chip.cjs +1 -1
  25. package/dist/chip.mjs +1 -1
  26. package/dist/chroma-grid.cjs +1 -1
  27. package/dist/chroma-grid.mjs +1 -1
  28. package/dist/chunks/{accordion-C_0oGZkZ.mjs → accordion-Cbt-SJhj.mjs} +4 -4
  29. package/dist/chunks/accordion-Cbt-SJhj.mjs.map +1 -0
  30. package/dist/chunks/{accordion-BZ5hyz0_.cjs → accordion-pfJR8YYA.cjs} +4 -4
  31. package/dist/chunks/accordion-pfJR8YYA.cjs.map +1 -0
  32. package/dist/chunks/{alert-DeVa-NR1.mjs → alert-CtdLy4Hv.mjs} +6 -6
  33. package/dist/chunks/alert-CtdLy4Hv.mjs.map +1 -0
  34. package/dist/chunks/{alert-BdBDWqBN.cjs → alert-Dvz1GoL5.cjs} +6 -6
  35. package/dist/chunks/alert-Dvz1GoL5.cjs.map +1 -0
  36. package/dist/chunks/{ascii-text-BzQCLfya.mjs → ascii-text-C5tyNsR3.mjs} +32 -5
  37. package/dist/chunks/ascii-text-C5tyNsR3.mjs.map +1 -0
  38. package/dist/chunks/{ascii-text-D6lVHWph.cjs → ascii-text-DlmArZXh.cjs} +32 -5
  39. package/dist/chunks/ascii-text-DlmArZXh.cjs.map +1 -0
  40. package/dist/chunks/background-gradient-animation-BL-lnrJe.mjs.map +1 -1
  41. package/dist/chunks/background-gradient-animation-CXV9GDH8.cjs.map +1 -1
  42. package/dist/chunks/{button-CmNEMp_O.mjs → button-B0Lhj0AS.mjs} +3 -3
  43. package/dist/chunks/button-B0Lhj0AS.mjs.map +1 -0
  44. package/dist/chunks/{button-BH1eUjae.cjs → button-CZL6kFzT.cjs} +3 -3
  45. package/dist/chunks/button-CZL6kFzT.cjs.map +1 -0
  46. package/dist/chunks/{card-CzstAQYy.mjs → card-CcIF6z2H.mjs} +2 -2
  47. package/dist/chunks/card-CcIF6z2H.mjs.map +1 -0
  48. package/dist/chunks/{card-DZGM4zLx.cjs → card-gt-HZh0h.cjs} +2 -2
  49. package/dist/chunks/card-gt-HZh0h.cjs.map +1 -0
  50. package/dist/chunks/{carousel-47Eiyzwg.cjs → carousel-Cq5uwqQt.cjs} +3 -3
  51. package/dist/chunks/{carousel-BJ3nm2bw.mjs.map → carousel-Cq5uwqQt.cjs.map} +1 -1
  52. package/dist/chunks/{carousel-BJ3nm2bw.mjs → carousel-DJdqBVRK.mjs} +3 -3
  53. package/dist/chunks/{carousel-47Eiyzwg.cjs.map → carousel-DJdqBVRK.mjs.map} +1 -1
  54. package/dist/chunks/charts-BpElnsoR.cjs +687 -0
  55. package/dist/chunks/charts-BpElnsoR.cjs.map +1 -0
  56. package/dist/chunks/charts-DugYWvEf.mjs +632 -0
  57. package/dist/chunks/charts-DugYWvEf.mjs.map +1 -0
  58. package/dist/chunks/{checkbox-B3eIojWs.mjs → checkbox-DvwlGwWe.mjs} +8 -8
  59. package/dist/chunks/checkbox-DvwlGwWe.mjs.map +1 -0
  60. package/dist/chunks/{checkbox-DQmZwRTt.cjs → checkbox-yHuSw-hV.cjs} +8 -8
  61. package/dist/chunks/checkbox-yHuSw-hV.cjs.map +1 -0
  62. package/dist/chunks/{chip-cZ7-HmWw.mjs → chip-BGSUmnlO.mjs} +12 -12
  63. package/dist/chunks/chip-BGSUmnlO.mjs.map +1 -0
  64. package/dist/chunks/{chip-BH6wzwat.cjs → chip-DcBji__g.cjs} +12 -12
  65. package/dist/chunks/chip-DcBji__g.cjs.map +1 -0
  66. package/dist/chunks/{chroma-grid-DtsqM4LW.cjs → chroma-grid-9E9j1s9I.cjs} +10 -10
  67. package/dist/chunks/chroma-grid-9E9j1s9I.cjs.map +1 -0
  68. package/dist/chunks/{chroma-grid-CC_fFzxO.mjs → chroma-grid-Cdeql_2C.mjs} +10 -10
  69. package/dist/chunks/chroma-grid-Cdeql_2C.mjs.map +1 -0
  70. package/dist/chunks/color-palette-BLvDnCOD.cjs +754 -0
  71. package/dist/chunks/color-palette-BLvDnCOD.cjs.map +1 -0
  72. package/dist/chunks/color-palette-CXlCDiZz.mjs +748 -0
  73. package/dist/chunks/color-palette-CXlCDiZz.mjs.map +1 -0
  74. package/dist/chunks/{combobox-mAvOcg-E.cjs → combobox-BXu3s0dt.cjs} +56 -32
  75. package/dist/chunks/combobox-BXu3s0dt.cjs.map +1 -0
  76. package/dist/chunks/combobox-CjK-qG4k.mjs +132 -0
  77. package/dist/chunks/combobox-CjK-qG4k.mjs.map +1 -0
  78. package/dist/chunks/{data-table-BRcGhJDf.cjs → data-table-9HELVsYR.cjs} +197 -292
  79. package/dist/chunks/data-table-9HELVsYR.cjs.map +1 -0
  80. package/dist/chunks/{data-table-Dp0t_I_z.mjs → data-table-DyEQn9Yj.mjs} +197 -292
  81. package/dist/chunks/data-table-DyEQn9Yj.mjs.map +1 -0
  82. package/dist/chunks/{date-picker-BWBkr6LG.mjs → date-picker-D8gaaMlJ.mjs} +39 -16
  83. package/dist/chunks/date-picker-D8gaaMlJ.mjs.map +1 -0
  84. package/dist/chunks/{date-picker-DooielHi.cjs → date-picker-W9om1j7A.cjs} +39 -16
  85. package/dist/chunks/date-picker-W9om1j7A.cjs.map +1 -0
  86. package/dist/chunks/{dialog-Cbuf8V0g.cjs → dialog-CYFiWN8M.cjs} +20 -20
  87. package/dist/chunks/dialog-CYFiWN8M.cjs.map +1 -0
  88. package/dist/chunks/{dialog-C6nxSfIl.mjs → dialog-DUWnV9tN.mjs} +20 -20
  89. package/dist/chunks/dialog-DUWnV9tN.mjs.map +1 -0
  90. package/dist/chunks/{drawer-Dn0u8Sck.cjs → drawer-CLjsYdxN.cjs} +39 -22
  91. package/dist/chunks/drawer-CLjsYdxN.cjs.map +1 -0
  92. package/dist/chunks/drawer-D82Jz6KO.mjs +122 -0
  93. package/dist/chunks/drawer-D82Jz6KO.mjs.map +1 -0
  94. package/dist/chunks/{form-TwlDrshv.mjs → form-B2vcaHwh.mjs} +4 -4
  95. package/dist/chunks/form-B2vcaHwh.mjs.map +1 -0
  96. package/dist/chunks/{form-DcEuk721.cjs → form-CzH9GQc6.cjs} +4 -4
  97. package/dist/chunks/form-CzH9GQc6.cjs.map +1 -0
  98. package/dist/chunks/{gradual-blur-2jVhPcND.cjs → gradual-blur-B9GoY8o1.cjs} +1 -1
  99. package/dist/chunks/{gradual-blur-2jVhPcND.cjs.map → gradual-blur-B9GoY8o1.cjs.map} +1 -1
  100. package/dist/chunks/{gradual-blur-jTzKCmAV.mjs → gradual-blur-Bl3dOMEz.mjs} +1 -1
  101. package/dist/chunks/{gradual-blur-jTzKCmAV.mjs.map → gradual-blur-Bl3dOMEz.mjs.map} +1 -1
  102. package/dist/chunks/{hover-card-KjWMnvt_.cjs → hover-card-v0QwmVBU.cjs} +9 -4
  103. package/dist/chunks/hover-card-v0QwmVBU.cjs.map +1 -0
  104. package/dist/chunks/{hover-card-DwTVfjgN.mjs → hover-card-xqwpmZNm.mjs} +9 -4
  105. package/dist/chunks/{hover-card-KjWMnvt_.cjs.map → hover-card-xqwpmZNm.mjs.map} +1 -1
  106. package/dist/chunks/{icons-DYkpqWYG.cjs → icons-BxIzP2jd.cjs} +131 -8
  107. package/dist/chunks/icons-BxIzP2jd.cjs.map +1 -0
  108. package/dist/chunks/{icons-CrM6pFkv.mjs → icons-DuumN7z-.mjs} +108 -9
  109. package/dist/chunks/icons-DuumN7z-.mjs.map +1 -0
  110. package/dist/chunks/{input-CoRHoZkB.cjs → input-D9qZNqXV.cjs} +8 -8
  111. package/dist/chunks/input-D9qZNqXV.cjs.map +1 -0
  112. package/dist/chunks/{input-ChhwdNGk.mjs → input-wNqevfQ4.mjs} +8 -8
  113. package/dist/chunks/input-wNqevfQ4.mjs.map +1 -0
  114. package/dist/chunks/{label-EciNc4hO.cjs → label-BWPEGVam.cjs} +1 -1
  115. package/dist/chunks/{label-EciNc4hO.cjs.map → label-BWPEGVam.cjs.map} +1 -1
  116. package/dist/chunks/{label-JZn7PmtR.mjs → label-KPA-yYOF.mjs} +1 -1
  117. package/dist/chunks/{label-JZn7PmtR.mjs.map → label-KPA-yYOF.mjs.map} +1 -1
  118. package/dist/chunks/{loading-DPNa_X3c.mjs → loading-S1TdIrbB.mjs} +2 -2
  119. package/dist/chunks/{loading-DPNa_X3c.mjs.map → loading-S1TdIrbB.mjs.map} +1 -1
  120. package/dist/chunks/{loading-Cqgps3nf.cjs → loading-q7IEg56I.cjs} +2 -2
  121. package/dist/chunks/{loading-Cqgps3nf.cjs.map → loading-q7IEg56I.cjs.map} +1 -1
  122. package/dist/chunks/multi-select-combobox-ELSH_Xr4.mjs +132 -0
  123. package/dist/chunks/multi-select-combobox-ELSH_Xr4.mjs.map +1 -0
  124. package/dist/chunks/multi-select-combobox-UW0X15W7.cjs +139 -0
  125. package/dist/chunks/multi-select-combobox-UW0X15W7.cjs.map +1 -0
  126. package/dist/chunks/{otp-input-DaQDfI9C.cjs → otp-input-B6zzOEqw.cjs} +13 -14
  127. package/dist/chunks/otp-input-B6zzOEqw.cjs.map +1 -0
  128. package/dist/chunks/{otp-input-CNungc1j.mjs → otp-input-Bg4nQG6x.mjs} +13 -14
  129. package/dist/chunks/otp-input-Bg4nQG6x.mjs.map +1 -0
  130. package/dist/chunks/{overlay-BfUR77DT.cjs → overlay-DWNTyQzK.cjs} +1 -1
  131. package/dist/chunks/{overlay-BfUR77DT.cjs.map → overlay-DWNTyQzK.cjs.map} +1 -1
  132. package/dist/chunks/{overlay-CpdakhXI.mjs → overlay-TycCIFOu.mjs} +1 -1
  133. package/dist/chunks/{overlay-CpdakhXI.mjs.map → overlay-TycCIFOu.mjs.map} +1 -1
  134. package/dist/chunks/{password-strength-meter-xtMqhhFg.mjs → password-strength-meter-CbNSBuh_.mjs} +10 -10
  135. package/dist/chunks/password-strength-meter-CbNSBuh_.mjs.map +1 -0
  136. package/dist/chunks/{password-strength-meter-u4YI00zE.cjs → password-strength-meter-DxMV6GAs.cjs} +10 -10
  137. package/dist/chunks/password-strength-meter-DxMV6GAs.cjs.map +1 -0
  138. package/dist/chunks/progress-bar-C1OvQ-NI.cjs +96 -0
  139. package/dist/chunks/progress-bar-C1OvQ-NI.cjs.map +1 -0
  140. package/dist/chunks/progress-bar-C9FZDrju.mjs +89 -0
  141. package/dist/chunks/progress-bar-C9FZDrju.mjs.map +1 -0
  142. package/dist/chunks/{radio-C-fPZgSY.mjs → radio-C9w_CoiY.mjs} +9 -9
  143. package/dist/chunks/radio-C9w_CoiY.mjs.map +1 -0
  144. package/dist/chunks/{radio-mCgvEhOR.cjs → radio-jMHDvaMY.cjs} +9 -9
  145. package/dist/chunks/radio-jMHDvaMY.cjs.map +1 -0
  146. package/dist/chunks/select-D71tk6-I.mjs +152 -0
  147. package/dist/chunks/select-D71tk6-I.mjs.map +1 -0
  148. package/dist/chunks/select-WC_kPqUP.cjs +158 -0
  149. package/dist/chunks/select-WC_kPqUP.cjs.map +1 -0
  150. package/dist/chunks/{skeleton-D1S4RyeL.mjs → skeleton-BhYWOp0Q.mjs} +1 -1
  151. package/dist/chunks/{skeleton-D1S4RyeL.mjs.map → skeleton-BhYWOp0Q.mjs.map} +1 -1
  152. package/dist/chunks/{skeleton-C-NHrM-w.cjs → skeleton-DTXpHYYB.cjs} +1 -1
  153. package/dist/chunks/{skeleton-C-NHrM-w.cjs.map → skeleton-DTXpHYYB.cjs.map} +1 -1
  154. package/dist/chunks/{spinners-hf553hP9.mjs → spinners-BBCWD2gw.mjs} +2 -2
  155. package/dist/chunks/{spinners-hf553hP9.mjs.map → spinners-BBCWD2gw.mjs.map} +1 -1
  156. package/dist/chunks/{spinners-CU3bLaoo.cjs → spinners-BL4ERCCw.cjs} +2 -2
  157. package/dist/chunks/{spinners-CU3bLaoo.cjs.map → spinners-BL4ERCCw.cjs.map} +1 -1
  158. package/dist/chunks/{splash-cursor-Dpzl_YXx.cjs → splash-cursor-BVSmbcIX.cjs} +9 -8
  159. package/dist/chunks/splash-cursor-BVSmbcIX.cjs.map +1 -0
  160. package/dist/chunks/{splash-cursor-9BsoQZl0.mjs → splash-cursor-rSrTnawZ.mjs} +9 -8
  161. package/dist/chunks/splash-cursor-rSrTnawZ.mjs.map +1 -0
  162. package/dist/chunks/{spotlight-card-Bl0aXnT4.mjs → spotlight-card-BpZLMOp6.mjs} +1 -1
  163. package/dist/chunks/{spotlight-card-Bl0aXnT4.mjs.map → spotlight-card-BpZLMOp6.mjs.map} +1 -1
  164. package/dist/chunks/{spotlight-card-SUhrgstF.cjs → spotlight-card-DS1dy1W3.cjs} +1 -1
  165. package/dist/chunks/{spotlight-card-SUhrgstF.cjs.map → spotlight-card-DS1dy1W3.cjs.map} +1 -1
  166. package/dist/chunks/{stepper-uz8iRzlY.mjs → stepper-D4yQsQB0.mjs} +14 -14
  167. package/dist/chunks/stepper-D4yQsQB0.mjs.map +1 -0
  168. package/dist/chunks/{stepper-BDz6PkjV.cjs → stepper-fY-Sx72k.cjs} +14 -14
  169. package/dist/chunks/stepper-fY-Sx72k.cjs.map +1 -0
  170. package/dist/chunks/{sun-to-moon-button-3E6qah0o.mjs → sun-to-moon-button-B2Aje05o.mjs} +3 -3
  171. package/dist/chunks/{sun-to-moon-button-3E6qah0o.mjs.map → sun-to-moon-button-B2Aje05o.mjs.map} +1 -1
  172. package/dist/chunks/{sun-to-moon-button-B__3FWnK.cjs → sun-to-moon-button-BmFwRBye.cjs} +3 -3
  173. package/dist/chunks/{sun-to-moon-button-B__3FWnK.cjs.map → sun-to-moon-button-BmFwRBye.cjs.map} +1 -1
  174. package/dist/chunks/{switch-y8oWcyLp.cjs → switch-C5otDb4c.cjs} +3 -3
  175. package/dist/chunks/switch-C5otDb4c.cjs.map +1 -0
  176. package/dist/chunks/{switch-DYLavKgf.mjs → switch-DOVl_i_s.mjs} +3 -3
  177. package/dist/chunks/switch-DOVl_i_s.mjs.map +1 -0
  178. package/dist/chunks/textarea-CAUsyu4-.cjs +63 -0
  179. package/dist/chunks/textarea-CAUsyu4-.cjs.map +1 -0
  180. package/dist/chunks/textarea-CU5C-Zw9.mjs +57 -0
  181. package/dist/chunks/textarea-CU5C-Zw9.mjs.map +1 -0
  182. package/dist/chunks/{theme-CBtWIFMT.cjs → theme-7DWLxJK_.cjs} +4 -2
  183. package/dist/chunks/theme-7DWLxJK_.cjs.map +1 -0
  184. package/dist/chunks/{theme-Bwu0HKqZ.mjs → theme-BceKeYhw.mjs} +4 -2
  185. package/dist/chunks/theme-BceKeYhw.mjs.map +1 -0
  186. package/dist/chunks/{toast-C8JRhbSo.mjs → toast-CvfP7PUP.mjs} +20 -20
  187. package/dist/chunks/toast-CvfP7PUP.mjs.map +1 -0
  188. package/dist/chunks/{toast-DWOwpD2F.cjs → toast-Ds7_19Ap.cjs} +20 -20
  189. package/dist/chunks/toast-Ds7_19Ap.cjs.map +1 -0
  190. package/dist/chunks/{tooltip-YtA_66_1.mjs → tooltip-efHETBo1.mjs} +1 -1
  191. package/dist/chunks/{tooltip-YtA_66_1.mjs.map → tooltip-efHETBo1.mjs.map} +1 -1
  192. package/dist/chunks/{tooltip-BHXNmXsa.cjs → tooltip-nkIqViGk.cjs} +1 -1
  193. package/dist/chunks/{tooltip-BHXNmXsa.cjs.map → tooltip-nkIqViGk.cjs.map} +1 -1
  194. package/dist/chunks/{typography-BzprBnQc.mjs → typography-CLu6Hx9j.mjs} +7 -3
  195. package/dist/chunks/{typography-BzprBnQc.mjs.map → typography-CLu6Hx9j.mjs.map} +1 -1
  196. package/dist/chunks/{typography-3wSx67DZ.cjs → typography-DaLu9tty.cjs} +7 -3
  197. package/dist/chunks/{typography-3wSx67DZ.cjs.map → typography-DaLu9tty.cjs.map} +1 -1
  198. package/dist/color-palette.cjs +1 -1
  199. package/dist/color-palette.mjs +1 -1
  200. package/dist/colors.css +121 -186
  201. package/dist/combobox.cjs +1 -1
  202. package/dist/combobox.mjs +1 -1
  203. package/dist/components/data-display/charts/AreaChart.d.ts.map +1 -1
  204. package/dist/components/data-display/charts/BarChart.d.ts.map +1 -1
  205. package/dist/components/data-display/charts/NeonLineChart.d.ts.map +1 -1
  206. package/dist/components/data-display/charts/PieChart.d.ts.map +1 -1
  207. package/dist/components/data-display/charts/StackedBarChart.d.ts.map +1 -1
  208. package/dist/components/data-display/charts/ThinBreakdownBar.d.ts.map +1 -1
  209. package/dist/components/data-display/charts/chartPalette.d.ts +10 -0
  210. package/dist/components/data-display/charts/chartPalette.d.ts.map +1 -0
  211. package/dist/components/data-display/charts/index.d.ts +2 -0
  212. package/dist/components/data-display/charts/index.d.ts.map +1 -1
  213. package/dist/components/data-display/chip/Chip.d.ts.map +1 -1
  214. package/dist/components/data-display/color-palette/ColorPalette.d.ts.map +1 -1
  215. package/dist/components/data-display/data-table/DataTable.d.ts +17 -10
  216. package/dist/components/data-display/data-table/DataTable.d.ts.map +1 -1
  217. package/dist/components/data-display/data-table/index.d.ts +1 -1
  218. package/dist/components/data-display/data-table/index.d.ts.map +1 -1
  219. package/dist/components/data-display/index.d.ts +1 -0
  220. package/dist/components/data-display/index.d.ts.map +1 -1
  221. package/dist/components/data-display/progress-bar/ProgressBar.d.ts +18 -0
  222. package/dist/components/data-display/progress-bar/ProgressBar.d.ts.map +1 -0
  223. package/dist/components/data-display/progress-bar/index.d.ts +3 -0
  224. package/dist/components/data-display/progress-bar/index.d.ts.map +1 -0
  225. package/dist/components/effects/ascii-text/ASCIIText.d.ts.map +1 -1
  226. package/dist/components/effects/border-beam/BorderBeam.d.ts.map +1 -1
  227. package/dist/components/effects/chroma-grid/ChromaGrid.d.ts.map +1 -1
  228. package/dist/components/effects/splash-cursor/SplashCursor.d.ts.map +1 -1
  229. package/dist/components/forms/combobox/Combobox.d.ts.map +1 -1
  230. package/dist/components/forms/date-picker/DatePicker.d.ts.map +1 -1
  231. package/dist/components/forms/input/Input.d.ts.map +1 -1
  232. package/dist/components/forms/multi-select-combobox/MultiSelectCombobox.d.ts.map +1 -1
  233. package/dist/components/forms/otp-input/OTPInput.d.ts.map +1 -1
  234. package/dist/components/forms/password-strength-meter/PasswordCriteria.d.ts.map +1 -1
  235. package/dist/components/forms/select/Select.d.ts.map +1 -1
  236. package/dist/components/forms/select/types.d.ts +2 -0
  237. package/dist/components/forms/select/types.d.ts.map +1 -1
  238. package/dist/components/forms/textarea/Textarea.d.ts.map +1 -1
  239. package/dist/components/icons/ColumnsIcon.d.ts +9 -0
  240. package/dist/components/icons/ColumnsIcon.d.ts.map +1 -0
  241. package/dist/components/icons/MailIcon.d.ts +9 -0
  242. package/dist/components/icons/MailIcon.d.ts.map +1 -0
  243. package/dist/components/icons/PlayIcon.d.ts +9 -0
  244. package/dist/components/icons/PlayIcon.d.ts.map +1 -0
  245. package/dist/components/icons/ZapIcon.d.ts +9 -0
  246. package/dist/components/icons/ZapIcon.d.ts.map +1 -0
  247. package/dist/components/icons/index.d.ts +4 -0
  248. package/dist/components/icons/index.d.ts.map +1 -1
  249. package/dist/components/navigation/accordion/Accordion.d.ts.map +1 -1
  250. package/dist/components/overlays/drawer/Drawer.d.ts.map +1 -1
  251. package/dist/components/overlays/hover-card/HoverCard.d.ts.map +1 -1
  252. package/dist/components/typography/Typography.d.ts.map +1 -1
  253. package/dist/data-table.cjs +1 -1
  254. package/dist/data-table.mjs +1 -1
  255. package/dist/date-picker.cjs +1 -1
  256. package/dist/date-picker.mjs +1 -1
  257. package/dist/dialog.cjs +1 -1
  258. package/dist/dialog.mjs +1 -1
  259. package/dist/docs.cjs +50 -4
  260. package/dist/docs.cjs.map +1 -1
  261. package/dist/docs.d.ts +59 -9
  262. package/dist/docs.d.ts.map +1 -1
  263. package/dist/docs.mjs +50 -4
  264. package/dist/docs.mjs.map +1 -1
  265. package/dist/drawer.cjs +1 -1
  266. package/dist/drawer.mjs +1 -1
  267. package/dist/fonts.css +5 -0
  268. package/dist/form.cjs +1 -1
  269. package/dist/form.mjs +1 -1
  270. package/dist/foundation.css +3 -3
  271. package/dist/foundations/theme/ThemeProvider.d.ts +1 -0
  272. package/dist/foundations/theme/ThemeProvider.d.ts.map +1 -1
  273. package/dist/gradual-blur.cjs +1 -1
  274. package/dist/gradual-blur.mjs +1 -1
  275. package/dist/hover-card.cjs +1 -1
  276. package/dist/hover-card.mjs +1 -1
  277. package/dist/icons.cjs +5 -1
  278. package/dist/icons.mjs +2 -2
  279. package/dist/index.cjs +50 -41
  280. package/dist/index.cjs.map +1 -1
  281. package/dist/index.d.ts +5 -3
  282. package/dist/index.d.ts.map +1 -1
  283. package/dist/index.mjs +43 -42
  284. package/dist/index.mjs.map +1 -1
  285. package/dist/input.cjs +1 -1
  286. package/dist/input.mjs +1 -1
  287. package/dist/label.cjs +1 -1
  288. package/dist/label.mjs +1 -1
  289. package/dist/loading.cjs +1 -1
  290. package/dist/loading.mjs +1 -1
  291. package/dist/multi-select-combobox.cjs +1 -1
  292. package/dist/multi-select-combobox.mjs +1 -1
  293. package/dist/otp-input.cjs +1 -1
  294. package/dist/otp-input.mjs +1 -1
  295. package/dist/password-strength-meter.cjs +1 -1
  296. package/dist/password-strength-meter.mjs +1 -1
  297. package/dist/progress-bar.cjs +3 -0
  298. package/dist/progress-bar.d.ts +2 -0
  299. package/dist/progress-bar.mjs +2 -0
  300. package/dist/radio.cjs +1 -1
  301. package/dist/radio.mjs +1 -1
  302. package/dist/select.cjs +1 -1
  303. package/dist/select.mjs +1 -1
  304. package/dist/skeleton.cjs +1 -1
  305. package/dist/skeleton.mjs +1 -1
  306. package/dist/spinners.cjs +1 -1
  307. package/dist/spinners.mjs +1 -1
  308. package/dist/splash-cursor.cjs +1 -1
  309. package/dist/splash-cursor.mjs +1 -1
  310. package/dist/spotlight-card.cjs +1 -1
  311. package/dist/spotlight-card.mjs +1 -1
  312. package/dist/stepper.cjs +1 -1
  313. package/dist/stepper.mjs +1 -1
  314. package/dist/sun-to-moon-button.cjs +1 -1
  315. package/dist/sun-to-moon-button.mjs +1 -1
  316. package/dist/switch.cjs +1 -1
  317. package/dist/switch.mjs +1 -1
  318. package/dist/textarea.cjs +1 -1
  319. package/dist/textarea.mjs +1 -1
  320. package/dist/theme.cjs +1 -1
  321. package/dist/theme.mjs +1 -1
  322. package/dist/toast.cjs +1 -1
  323. package/dist/toast.mjs +1 -1
  324. package/dist/tokens.css +592 -0
  325. package/dist/tooltip.cjs +1 -1
  326. package/dist/tooltip.mjs +1 -1
  327. package/dist/typography.cjs +1 -1
  328. package/dist/typography.mjs +1 -1
  329. package/package.json +19 -5
  330. package/dist/chunks/accordion-BZ5hyz0_.cjs.map +0 -1
  331. package/dist/chunks/accordion-C_0oGZkZ.mjs.map +0 -1
  332. package/dist/chunks/alert-BdBDWqBN.cjs.map +0 -1
  333. package/dist/chunks/alert-DeVa-NR1.mjs.map +0 -1
  334. package/dist/chunks/ascii-text-BzQCLfya.mjs.map +0 -1
  335. package/dist/chunks/ascii-text-D6lVHWph.cjs.map +0 -1
  336. package/dist/chunks/button-BH1eUjae.cjs.map +0 -1
  337. package/dist/chunks/button-CmNEMp_O.mjs.map +0 -1
  338. package/dist/chunks/card-CzstAQYy.mjs.map +0 -1
  339. package/dist/chunks/card-DZGM4zLx.cjs.map +0 -1
  340. package/dist/chunks/charts-Bynf6x07.mjs +0 -448
  341. package/dist/chunks/charts-Bynf6x07.mjs.map +0 -1
  342. package/dist/chunks/charts-UYl7Ecqv.cjs +0 -485
  343. package/dist/chunks/charts-UYl7Ecqv.cjs.map +0 -1
  344. package/dist/chunks/checkbox-B3eIojWs.mjs.map +0 -1
  345. package/dist/chunks/checkbox-DQmZwRTt.cjs.map +0 -1
  346. package/dist/chunks/chip-BH6wzwat.cjs.map +0 -1
  347. package/dist/chunks/chip-cZ7-HmWw.mjs.map +0 -1
  348. package/dist/chunks/chroma-grid-CC_fFzxO.mjs.map +0 -1
  349. package/dist/chunks/chroma-grid-DtsqM4LW.cjs.map +0 -1
  350. package/dist/chunks/color-palette-Cz7vqbil.cjs +0 -1156
  351. package/dist/chunks/color-palette-Cz7vqbil.cjs.map +0 -1
  352. package/dist/chunks/color-palette-yadpDCUw.mjs +0 -1150
  353. package/dist/chunks/color-palette-yadpDCUw.mjs.map +0 -1
  354. package/dist/chunks/combobox-B9Nzlhu3.mjs +0 -108
  355. package/dist/chunks/combobox-B9Nzlhu3.mjs.map +0 -1
  356. package/dist/chunks/combobox-mAvOcg-E.cjs.map +0 -1
  357. package/dist/chunks/data-table-BRcGhJDf.cjs.map +0 -1
  358. package/dist/chunks/data-table-Dp0t_I_z.mjs.map +0 -1
  359. package/dist/chunks/date-picker-BWBkr6LG.mjs.map +0 -1
  360. package/dist/chunks/date-picker-DooielHi.cjs.map +0 -1
  361. package/dist/chunks/dialog-C6nxSfIl.mjs.map +0 -1
  362. package/dist/chunks/dialog-Cbuf8V0g.cjs.map +0 -1
  363. package/dist/chunks/drawer-DIuvgqTA.mjs +0 -105
  364. package/dist/chunks/drawer-DIuvgqTA.mjs.map +0 -1
  365. package/dist/chunks/drawer-Dn0u8Sck.cjs.map +0 -1
  366. package/dist/chunks/form-DcEuk721.cjs.map +0 -1
  367. package/dist/chunks/form-TwlDrshv.mjs.map +0 -1
  368. package/dist/chunks/hover-card-DwTVfjgN.mjs.map +0 -1
  369. package/dist/chunks/icons-CrM6pFkv.mjs.map +0 -1
  370. package/dist/chunks/icons-DYkpqWYG.cjs.map +0 -1
  371. package/dist/chunks/input-ChhwdNGk.mjs.map +0 -1
  372. package/dist/chunks/input-CoRHoZkB.cjs.map +0 -1
  373. package/dist/chunks/multi-select-combobox-BPRTZVF6.mjs +0 -108
  374. package/dist/chunks/multi-select-combobox-BPRTZVF6.mjs.map +0 -1
  375. package/dist/chunks/multi-select-combobox-DiMwJxj_.cjs +0 -115
  376. package/dist/chunks/multi-select-combobox-DiMwJxj_.cjs.map +0 -1
  377. package/dist/chunks/otp-input-CNungc1j.mjs.map +0 -1
  378. package/dist/chunks/otp-input-DaQDfI9C.cjs.map +0 -1
  379. package/dist/chunks/password-strength-meter-u4YI00zE.cjs.map +0 -1
  380. package/dist/chunks/password-strength-meter-xtMqhhFg.mjs.map +0 -1
  381. package/dist/chunks/radio-C-fPZgSY.mjs.map +0 -1
  382. package/dist/chunks/radio-mCgvEhOR.cjs.map +0 -1
  383. package/dist/chunks/select-BB-pOzI2.mjs +0 -116
  384. package/dist/chunks/select-BB-pOzI2.mjs.map +0 -1
  385. package/dist/chunks/select-BwelAQc1.cjs +0 -122
  386. package/dist/chunks/select-BwelAQc1.cjs.map +0 -1
  387. package/dist/chunks/splash-cursor-9BsoQZl0.mjs.map +0 -1
  388. package/dist/chunks/splash-cursor-Dpzl_YXx.cjs.map +0 -1
  389. package/dist/chunks/stepper-BDz6PkjV.cjs.map +0 -1
  390. package/dist/chunks/stepper-uz8iRzlY.mjs.map +0 -1
  391. package/dist/chunks/switch-DYLavKgf.mjs.map +0 -1
  392. package/dist/chunks/switch-y8oWcyLp.cjs.map +0 -1
  393. package/dist/chunks/textarea-BWkUVpm3.cjs +0 -66
  394. package/dist/chunks/textarea-BWkUVpm3.cjs.map +0 -1
  395. package/dist/chunks/textarea-Bxqe70TW.mjs +0 -60
  396. package/dist/chunks/textarea-Bxqe70TW.mjs.map +0 -1
  397. package/dist/chunks/theme-Bwu0HKqZ.mjs.map +0 -1
  398. package/dist/chunks/theme-CBtWIFMT.cjs.map +0 -1
  399. package/dist/chunks/toast-C8JRhbSo.mjs.map +0 -1
  400. package/dist/chunks/toast-DWOwpD2F.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-palette-CXlCDiZz.mjs","names":[],"sources":["../../src/components/data-display/color-palette/ColorPalette.tsx"],"sourcesContent":["export interface ColorSwatch {\n name: string;\n value: string;\n textColor?: \"light\" | \"dark\";\n}\n\nexport interface ColorGroup {\n name: string;\n colors: ColorSwatch[];\n}\n\nexport interface ColorPaletteProps {\n groups?: ColorGroup[];\n theme?: \"light\" | \"dark\" | \"all\";\n showGradients?: boolean;\n showUsageExamples?: boolean;\n className?: string;\n}\n\nconst lightThemeGroups: ColorGroup[] = [\n {\n name: \"Active Accent Scale\",\n colors: [\n { name: \"primary-50\", value: \"#f6efff\", textColor: \"dark\" },\n { name: \"primary-100\", value: \"#ead9fd\", textColor: \"dark\" },\n { name: \"primary-200\", value: \"#d8b3fb\", textColor: \"dark\" },\n { name: \"primary-300\", value: \"#c084fc\", textColor: \"dark\" },\n { name: \"primary-400\", value: \"#a855f7\", textColor: \"light\" },\n { name: \"primary-500\", value: \"#9333ea\", textColor: \"light\" },\n { name: \"primary-600\", value: \"#7e22ce\", textColor: \"light\" },\n { name: \"primary-700\", value: \"#6b21a8\", textColor: \"light\" },\n { name: \"primary-800\", value: \"#581c87\", textColor: \"light\" },\n { name: \"primary-900\", value: \"#3b0764\", textColor: \"light\" },\n ],\n },\n {\n name: \"Semantic Surfaces\",\n colors: [\n { name: \"bg-canvas\", value: \"#f4f7fe\", textColor: \"dark\" },\n { name: \"bg-surface\", value: \"#ffffff\", textColor: \"dark\" },\n { name: \"bg-elevated\", value: \"#ffffff\", textColor: \"dark\" },\n { name: \"bg-muted\", value: \"#f4f3f8\", textColor: \"dark\" },\n { name: \"accent-subtle\", value: \"#f3e8fd\", textColor: \"dark\" },\n ],\n },\n {\n name: \"Semantic Foreground\",\n colors: [\n { name: \"fg\", value: \"#1e293b\", textColor: \"light\" },\n { name: \"fg-muted\", value: \"#475467\", textColor: \"light\" },\n { name: \"fg-subtle\", value: \"#64748b\", textColor: \"light\" },\n { name: \"on-accent\", value: \"#ffffff\", textColor: \"dark\" },\n ],\n },\n {\n name: \"Semantic Borders\",\n colors: [\n { name: \"border\", value: \"#e5e7eb\", textColor: \"dark\" },\n { name: \"border-strong\", value: \"#d1d5db\", textColor: \"dark\" },\n { name: \"border-muted\", value: \"#f3f4f6\", textColor: \"dark\" },\n { name: \"border-field\", value: \"#e9e8e8\", textColor: \"dark\" },\n { name: \"focus-ring\", value: \"#c595f2\", textColor: \"dark\" },\n ],\n },\n {\n name: \"Semantic Status\",\n colors: [\n { name: \"success\", value: \"#1eb564\", textColor: \"light\" },\n { name: \"warning\", value: \"#ff9500\", textColor: \"dark\" },\n { name: \"danger\", value: \"#e31d1c\", textColor: \"light\" },\n { name: \"info\", value: \"#0085c4\", textColor: \"light\" },\n { name: \"disabled\", value: \"#d2d2d3\", textColor: \"dark\" },\n ],\n },\n {\n name: \"Compatibility Aliases\",\n colors: [\n { name: \"--color-primary\", value: \"#4318ff\", textColor: \"light\" },\n {\n name: \"--color-background-primary\",\n value: \"#f4f7fe\",\n textColor: \"dark\",\n },\n {\n name: \"--color-background-secondary\",\n value: \"#ffffff\",\n textColor: \"dark\",\n },\n { name: \"--color-text-primary\", value: \"#1e293b\", textColor: \"light\" },\n { name: \"--color-border-primary\", value: \"#d1d5db\", textColor: \"dark\" },\n ],\n },\n];\n\nconst darkThemeGroups: ColorGroup[] = [\n {\n name: \"Active Accent Scale (Dark)\",\n colors: [\n { name: \"primary-50\", value: \"#f6efff\", textColor: \"dark\" },\n { name: \"primary-100\", value: \"#ead9fd\", textColor: \"dark\" },\n { name: \"primary-200\", value: \"#d8b3fb\", textColor: \"dark\" },\n { name: \"primary-300\", value: \"#c084fc\", textColor: \"dark\" },\n { name: \"primary-400\", value: \"#a855f7\", textColor: \"light\" },\n { name: \"primary-500\", value: \"#9333ea\", textColor: \"light\" },\n { name: \"primary-600\", value: \"#7e22ce\", textColor: \"light\" },\n { name: \"primary-700\", value: \"#6b21a8\", textColor: \"light\" },\n { name: \"primary-800\", value: \"#581c87\", textColor: \"light\" },\n { name: \"primary-900\", value: \"#3b0764\", textColor: \"light\" },\n ],\n },\n {\n name: \"Semantic Surfaces (Dark)\",\n colors: [\n { name: \"bg-canvas\", value: \"#070f2e\", textColor: \"light\" },\n { name: \"bg-surface\", value: \"#111c44\", textColor: \"light\" },\n { name: \"bg-elevated\", value: \"#111c44\", textColor: \"light\" },\n { name: \"bg-muted\", value: \"#18254f\", textColor: \"light\" },\n { name: \"accent-subtle\", value: \"#24194b\", textColor: \"light\" },\n ],\n },\n {\n name: \"Semantic Foreground (Dark)\",\n colors: [\n { name: \"fg\", value: \"#f1f5f9\", textColor: \"dark\" },\n { name: \"fg-muted\", value: \"#cbd5e1\", textColor: \"dark\" },\n { name: \"fg-subtle\", value: \"#94a3b8\", textColor: \"dark\" },\n { name: \"on-accent\", value: \"#ffffff\", textColor: \"dark\" },\n ],\n },\n {\n name: \"Semantic Borders (Dark)\",\n colors: [\n { name: \"border\", value: \"#4b5563\", textColor: \"light\" },\n { name: \"border-strong\", value: \"#374151\", textColor: \"light\" },\n { name: \"border-muted\", value: \"#6b7280\", textColor: \"light\" },\n { name: \"border-field\", value: \"#545b58\", textColor: \"light\" },\n { name: \"focus-ring\", value: \"#b57fe7\", textColor: \"dark\" },\n ],\n },\n {\n name: \"Semantic Status (Dark)\",\n colors: [\n { name: \"success\", value: \"#22c55e\", textColor: \"light\" },\n { name: \"warning\", value: \"#f59e42\", textColor: \"dark\" },\n { name: \"danger\", value: \"#ef4444\", textColor: \"light\" },\n { name: \"info\", value: \"#38bdf8\", textColor: \"dark\" },\n { name: \"disabled\", value: \"#4b5563\", textColor: \"light\" },\n ],\n },\n {\n name: \"Compatibility Aliases (Dark)\",\n colors: [\n { name: \"--color-primary\", value: \"#4318ff\", textColor: \"light\" },\n {\n name: \"--color-background-primary\",\n value: \"#070f2e\",\n textColor: \"light\",\n },\n {\n name: \"--color-background-secondary\",\n value: \"#111c44\",\n textColor: \"light\",\n },\n { name: \"--color-text-primary\", value: \"#f1f5f9\", textColor: \"dark\" },\n { name: \"--color-border-primary\", value: \"#374151\", textColor: \"light\" },\n ],\n },\n];\n\nconst gradientGroups: ColorGroup[] = [\n {\n name: \"Semantic Gradients\",\n colors: [\n { name: \"accent-gradient-start\", value: \"#9333ea\", textColor: \"light\" },\n { name: \"accent-gradient-end\", value: \"#7e22ce\", textColor: \"light\" },\n { name: \"accent-secondary\", value: \"#4318ff\", textColor: \"light\" },\n ],\n },\n {\n name: \"Status Gradients\",\n colors: [\n { name: \"success-gradient-start\", value: \"#22c55e\", textColor: \"light\" },\n { name: \"success-gradient-end\", value: \"#16a34a\", textColor: \"light\" },\n { name: \"warning-gradient-start\", value: \"#f59e0b\", textColor: \"dark\" },\n { name: \"warning-gradient-end\", value: \"#d97706\", textColor: \"light\" },\n { name: \"error-gradient-start\", value: \"#ef4444\", textColor: \"light\" },\n { name: \"error-gradient-end\", value: \"#dc2626\", textColor: \"light\" },\n ],\n },\n {\n name: \"Glass / Opacity\",\n colors: [\n {\n name: \"glass-white-90\",\n value: \"rgba(255,255,255,0.9)\",\n textColor: \"dark\",\n },\n {\n name: \"glass-white-70\",\n value: \"rgba(255,255,255,0.7)\",\n textColor: \"dark\",\n },\n {\n name: \"glass-white-50\",\n value: \"rgba(255,255,255,0.5)\",\n textColor: \"dark\",\n },\n {\n name: \"glass-white-20\",\n value: \"rgba(255,255,255,0.2)\",\n textColor: \"dark\",\n },\n {\n name: \"glass-white-10\",\n value: \"rgba(255,255,255,0.1)\",\n textColor: \"dark\",\n },\n { name: \"glass-black-90\", value: \"rgba(0,0,0,0.9)\", textColor: \"light\" },\n { name: \"glass-black-70\", value: \"rgba(0,0,0,0.7)\", textColor: \"light\" },\n { name: \"glass-black-50\", value: \"rgba(0,0,0,0.5)\", textColor: \"light\" },\n { name: \"glass-black-20\", value: \"rgba(0,0,0,0.2)\", textColor: \"light\" },\n { name: \"glass-black-10\", value: \"rgba(0,0,0,0.1)\", textColor: \"light\" },\n ],\n },\n];\n\n// Default groups (backwards compatibility)\nconst defaultGroups: ColorGroup[] = lightThemeGroups;\n\nfunction ColorSwatchItem({ color }: { color: ColorSwatch }) {\n const copyToClipboard = () => {\n navigator.clipboard.writeText(color.value);\n };\n\n return (\n <div\n className=\"flex flex-col items-center gap-2 cursor-pointer transition-transform hover:scale-105\"\n onClick={copyToClipboard}\n title=\"Click to copy\"\n >\n <div\n className=\"w-20 h-20 rounded-lg shadow-md border border-neutral-200 dark:border-neutral-700 flex items-center justify-center text-xs font-mono\"\n style={{ backgroundColor: color.value }}\n >\n <span\n className={\n color.textColor === \"light\" ? \"text-white\" : \"text-neutral-900\"\n }\n >\n {color.value.length <= 9 ? color.value.toUpperCase() : \"RGBA\"}\n </span>\n </div>\n <span className=\"text-xs font-medium text-neutral-700 dark:text-neutral-300 text-center max-w-20\">\n {color.name}\n </span>\n </div>\n );\n}\n\nfunction GradientPreview() {\n return (\n <div className=\"mt-8\">\n <h3 className=\"text-lg font-semibold text-neutral-900 dark:text-white mb-4\">\n Semantic Gradient Examples\n </h3>\n <div className=\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4\">\n <div className=\"flex flex-col gap-2\">\n <div\n className=\"h-24 rounded-lg flex items-center justify-center text-white font-medium\"\n style={{\n background: \"linear-gradient(135deg, #9333ea, #7e22ce)\",\n }}\n >\n Accent Gradient\n </div>\n <code className=\"text-xs text-neutral-500\">\n linear-gradient(135deg, #9333ea, #7e22ce)\n </code>\n </div>\n\n <div className=\"flex flex-col gap-2\">\n <div\n className=\"h-24 rounded-lg flex items-center justify-center text-white font-medium\"\n style={{\n background: \"linear-gradient(135deg, #9333ea, #4318ff)\",\n }}\n >\n Accent to Brand Primary\n </div>\n <code className=\"text-xs text-neutral-500\">\n linear-gradient(135deg, #9333ea, #4318ff)\n </code>\n </div>\n\n <div className=\"flex flex-col gap-2\">\n <div\n className=\"h-24 rounded-lg flex items-center justify-center text-white font-medium\"\n style={{\n background: \"linear-gradient(135deg, #22c55e, #16a34a)\",\n }}\n >\n Success Gradient\n </div>\n <code className=\"text-xs text-neutral-500\">\n linear-gradient(135deg, #22c55e, #16a34a)\n </code>\n </div>\n\n <div className=\"flex flex-col gap-2\">\n <div\n className=\"h-24 rounded-lg flex items-center justify-center text-neutral-900 font-medium\"\n style={{\n background: \"linear-gradient(135deg, #fbbf24, #f59e0b)\",\n }}\n >\n Warning Gradient\n </div>\n <code className=\"text-xs text-neutral-500\">\n linear-gradient(135deg, #fbbf24, #f59e0b)\n </code>\n </div>\n\n <div className=\"flex flex-col gap-2\">\n <div\n className=\"h-24 rounded-lg flex items-center justify-center text-white font-medium\"\n style={{\n background: \"linear-gradient(135deg, #ef4444, #dc2626)\",\n }}\n >\n Error Gradient\n </div>\n <code className=\"text-xs text-neutral-500\">\n linear-gradient(135deg, #ef4444, #dc2626)\n </code>\n </div>\n\n <div className=\"flex flex-col gap-2\">\n <div\n className=\"h-24 rounded-lg flex items-center justify-center text-white font-medium backdrop-blur-xl border border-white/20\"\n style={{\n background: \"rgba(147, 51, 234, 0.7)\",\n }}\n >\n Glass Effect\n </div>\n <code className=\"text-xs text-neutral-500\">\n rgba(147, 51, 234, 0.7) + backdrop-blur\n </code>\n </div>\n </div>\n </div>\n );\n}\n\nfunction UsageExamples() {\n return (\n <div className=\"mt-8 p-6 bg-neutral-50 dark:bg-neutral-800/50 rounded-xl\">\n <h3 className=\"text-lg font-semibold text-neutral-900 dark:text-white mb-4\">\n Recommended Usage\n </h3>\n <div className=\"space-y-4\">\n <div className=\"p-4 bg-white dark:bg-neutral-900 rounded-lg border border-neutral-200 dark:border-neutral-700\">\n <h4 className=\"font-medium text-neutral-900 dark:text-white mb-2\">\n Semantic utilities first\n </h4>\n <pre className=\"text-xs font-mono text-neutral-600 dark:text-neutral-400 overflow-x-auto\">\n {`import { Button } from \"erp-pro-ui\";\n\n<section className=\"bg-surface text-fg border border-border rounded-2xl p-6\">\n <h2 className=\"text-accent text-xl font-semibold\">Semantic theme</h2>\n <p className=\"text-fg-muted\">Use utilities generated by colors.css.</p>\n <Button label=\"Save changes\" primary />\n</section>`}\n </pre>\n </div>\n\n <div className=\"p-4 bg-white dark:bg-neutral-900 rounded-lg border border-neutral-200 dark:border-neutral-700\">\n <h4 className=\"font-medium text-neutral-900 dark:text-white mb-2\">\n Raw design-system variables\n </h4>\n <pre className=\"text-xs font-mono text-neutral-600 dark:text-neutral-400 overflow-x-auto\">\n {`.dashboard-shell {\n background: var(--ds-color-bg-surface);\n color: var(--ds-color-fg);\n border: 1px solid var(--ds-color-border);\n}\n\n.dashboard-shell a {\n color: var(--ds-color-accent);\n}\n\nhtml[data-brand=\"teal\"][data-mode=\"dark\"] {\n color-scheme: dark;\n}`}\n </pre>\n </div>\n\n <div className=\"p-4 bg-white dark:bg-neutral-900 rounded-lg border border-neutral-200 dark:border-neutral-700\">\n <h4 className=\"font-medium text-neutral-900 dark:text-white mb-2\">\n Compatibility aliases for migration\n </h4>\n <pre className=\"text-xs font-mono text-neutral-600 dark:text-neutral-400 overflow-x-auto\">\n {`:root {\n --color-primary: #4318ff;\n --color-background-primary: #f4f7fe;\n --color-text-primary: #1e293b;\n}\n\n/* Supported for migration. Prefer semantic utilities or --ds-* in new code. */`}\n </pre>\n </div>\n </div>\n </div>\n );\n}\n\nexport default function ColorPalette({\n groups,\n theme = \"all\",\n showGradients = true,\n showUsageExamples = true,\n className,\n}: ColorPaletteProps) {\n // Determine which groups to show\n let displayGroups: ColorGroup[];\n if (groups) {\n displayGroups = groups;\n } else if (theme === \"light\") {\n displayGroups = lightThemeGroups;\n } else if (theme === \"dark\") {\n displayGroups = darkThemeGroups;\n } else {\n // Show all\n displayGroups = [...lightThemeGroups, ...darkThemeGroups];\n }\n\n // Add gradients if requested and no custom groups\n if (showGradients && !groups) {\n displayGroups = [...displayGroups, ...gradientGroups];\n }\n\n return (\n <div\n className={`p-6 bg-white dark:bg-neutral-900 rounded-xl ${\n className || \"\"\n }`}\n >\n <h2 className=\"text-2xl font-bold text-neutral-900 dark:text-white mb-2\">\n Color Palette\n </h2>\n <p className=\"text-sm text-neutral-600 dark:text-neutral-400 mb-6\">\n Preferred contract:{\" \"}\n <code className=\"font-mono bg-neutral-100 dark:bg-neutral-800 px-2 py-1 rounded\">\n semantic utilities and --ds-* tokens\n </code>{\" \"}\n • Compatibility aliases remain available for migration. Click any swatch\n to copy the color value.\n </p>\n\n <div className=\"mb-6 flex flex-wrap gap-2\">\n <span\n className={`px-3 py-1 rounded-full text-xs font-medium ${\n theme === \"light\" || theme === \"all\"\n ? \"bg-accent-subtle text-accent\"\n : \"bg-neutral-100 text-neutral-500\"\n }`}\n >\n Light Theme\n </span>\n <span\n className={`px-3 py-1 rounded-full text-xs font-medium ${\n theme === \"dark\" || theme === \"all\"\n ? \"bg-accent-subtle text-accent\"\n : \"bg-neutral-100 text-neutral-500\"\n }`}\n >\n Dark Theme\n </span>\n {showGradients && (\n <span className=\"px-3 py-1 rounded-full text-xs font-medium bg-accent-subtle text-accent\">\n Gradients\n </span>\n )}\n </div>\n\n {displayGroups.map((group) => (\n <div key={group.name} className=\"mb-8\">\n <h3 className=\"text-lg font-semibold text-neutral-900 dark:text-white mb-4\">\n {group.name}\n </h3>\n <div className=\"flex flex-wrap gap-4\">\n {group.colors.map((color) => (\n <ColorSwatchItem key={color.name} color={color} />\n ))}\n </div>\n </div>\n ))}\n\n {showGradients && <GradientPreview />}\n {showUsageExamples && <UsageExamples />}\n </div>\n );\n}\n\n// Export color groups for external use\nexport { lightThemeGroups, darkThemeGroups, gradientGroups, defaultGroups };\n"],"mappings":"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"}
@@ -1,14 +1,19 @@
1
1
  const require_chunk = require("./chunk-B_GkZjkl.cjs");
2
2
  const require_utils = require("./utils-B4SmmY4J.cjs");
3
- const require_icons = require("./icons-DYkpqWYG.cjs");
3
+ const require_icons = require("./icons-BxIzP2jd.cjs");
4
4
  let react = require("react");
5
5
  react = require_chunk.__toESM(react);
6
6
  let react_jsx_runtime = require("react/jsx-runtime");
7
+ let framer_motion = require("framer-motion");
7
8
  //#region src/components/forms/combobox/Combobox.tsx
8
- var Combobox = ({ options, value, onChange, placeholder = "Select...", className, bgClassName = "bg-white/40 dark:bg-zinc-950/40 backdrop-blur-xl", createOptionLabel, onCreateOption }) => {
9
+ var Combobox = ({ options, value, onChange, placeholder = "Select...", className, bgClassName = "bg-background-secondary", createOptionLabel, onCreateOption }) => {
9
10
  const [open, setOpen] = (0, react.useState)(false);
10
11
  const [search, setSearch] = (0, react.useState)("");
12
+ const [visible, setVisible] = (0, react.useState)(false);
11
13
  const ref = (0, react.useRef)(null);
14
+ const mouseX = (0, framer_motion.useMotionValue)(0);
15
+ const mouseY = (0, framer_motion.useMotionValue)(0);
16
+ const radius = 100;
12
17
  const filteredOptions = options.filter((opt) => opt.label.toLowerCase().includes(search.toLowerCase()));
13
18
  (0, react.useEffect)(() => {
14
19
  const handleClick = (e) => {
@@ -20,40 +25,59 @@ var Combobox = ({ options, value, onChange, placeholder = "Select...", className
20
25
  if (open) document.addEventListener("mousedown", handleClick);
21
26
  return () => document.removeEventListener("mousedown", handleClick);
22
27
  }, [open]);
28
+ const handleMouseMove = (event) => {
29
+ const { left, top } = event.currentTarget.getBoundingClientRect();
30
+ mouseX.set(event.clientX - left);
31
+ mouseY.set(event.clientY - top);
32
+ };
23
33
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
24
34
  ref,
25
35
  className: require_utils.mergeClassNames("relative w-full", className),
26
36
  tabIndex: 0,
27
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
28
- className: require_utils.mergeClassNames("flex h-10 w-full cursor-pointer items-center justify-between rounded-md border border-black/5 dark:border-white/10 px-3 py-2 text-sm text-foreground transition focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 shadow-sm", bgClassName, "hover:bg-white/60 dark:hover:bg-white/10"),
29
- onClick: () => {
30
- setOpen((o) => {
31
- if (o) setSearch("");
32
- return !o;
33
- });
34
- },
35
- children: [value ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
36
- className: "text-foreground dark:text-white flex-1 truncate",
37
- children: options.find((opt) => opt.value === value)?.label
38
- }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
39
- className: "text-muted-foreground flex-1",
40
- children: placeholder
41
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
42
- className: require_utils.mergeClassNames("ml-2 transition-transform duration-300", open ? "rotate-180" : "rotate-0"),
43
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.ChevronDownIcon, {
44
- width: 24,
45
- height: 24,
46
- color: "#a1a1a1"
47
- })
48
- })]
37
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(framer_motion.motion.div, {
38
+ style: { backgroundImage: framer_motion.useMotionTemplate`
39
+ radial-gradient(
40
+ ${visible ? `${radius}px` : "0px"} circle at ${mouseX}px ${mouseY}px,
41
+ var(--ds-color-accent),
42
+ transparent 90%
43
+ )
44
+ ` },
45
+ onMouseMove: handleMouseMove,
46
+ onMouseEnter: () => setVisible(true),
47
+ onMouseLeave: () => setVisible(false),
48
+ className: "group/combobox rounded-lg border-border p-[2px] transition duration-300 hover:border-accent",
49
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
50
+ className: require_utils.mergeClassNames("shadow-input flex h-10 w-full cursor-pointer items-center justify-between rounded-md border border-input px-3 py-2 text-sm text-foreground transition duration-400 ease-in-out group-hover/combobox:shadow-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:outline-none", bgClassName),
51
+ onClick: () => {
52
+ setOpen((current) => {
53
+ if (current) setSearch("");
54
+ return !current;
55
+ });
56
+ },
57
+ children: [value ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
58
+ className: "flex-1 truncate text-foreground",
59
+ children: options.find((opt) => opt.value === value)?.label
60
+ }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
61
+ className: "flex-1 text-muted-foreground",
62
+ children: placeholder
63
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
64
+ className: require_utils.mergeClassNames("ml-2 text-muted-foreground transition-transform duration-300", open ? "rotate-180" : "rotate-0"),
65
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.ChevronDownIcon, {
66
+ width: 24,
67
+ height: 24,
68
+ color: "currentColor",
69
+ className: "h-5 w-5"
70
+ })
71
+ })]
72
+ })
49
73
  }), open && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
50
- className: "absolute right-0 left-0 z-20 mt-1 flex max-h-60 flex-col rounded-md border border-white/20 dark:border-white/10 bg-white/80 dark:bg-neutral-900/80 backdrop-blur-xl shadow-xl transition",
74
+ className: "absolute right-0 left-0 z-20 mt-1 flex max-h-60 flex-col rounded-lg border border-border bg-background-secondary shadow-3 backdrop-blur-xl transition",
51
75
  children: [
52
76
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
53
- className: "sticky top-0 z-10 bg-white/50 dark:bg-neutral-900/50 backdrop-blur-sm rounded-t-md",
77
+ className: "sticky top-0 z-10 rounded-t-lg border-b border-border-muted bg-elevated/95 backdrop-blur-sm",
54
78
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
55
79
  autoFocus: true,
56
- className: "w-full border-b border-white/20 dark:border-white/10 bg-transparent px-3 py-2 text-sm text-foreground dark:text-white outline-none placeholder:text-muted-foreground",
80
+ className: "w-full bg-transparent px-3 py-2 text-sm text-foreground outline-none placeholder:text-muted-foreground focus-visible:ring-2 focus-visible:ring-accent",
57
81
  placeholder: "Type to search...",
58
82
  value: search,
59
83
  onChange: (e) => setSearch(e.target.value),
@@ -66,7 +90,7 @@ var Combobox = ({ options, value, onChange, placeholder = "Select...", className
66
90
  className: "px-3 py-2 text-muted-foreground",
67
91
  children: "No options"
68
92
  }), filteredOptions.map((opt) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
69
- className: require_utils.mergeClassNames("mx-1 my-1 flex cursor-pointer items-center gap-2 rounded-md px-3 py-2 text-sm text-foreground dark:text-white transition", opt.value === value ? "bg-primary/20 font-semibold" : "", "hover:bg-primary hover:text-white"),
93
+ className: require_utils.mergeClassNames("mx-1 my-1 flex cursor-pointer items-center gap-2 rounded-md px-3 py-2 text-sm text-foreground transition", opt.value === value ? "bg-accent-subtle text-accent font-semibold" : "", "hover:bg-accent hover:text-on-accent"),
70
94
  onClick: () => {
71
95
  onChange(opt.value);
72
96
  setSearch("");
@@ -75,7 +99,7 @@ var Combobox = ({ options, value, onChange, placeholder = "Select...", className
75
99
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
76
100
  className: "flex w-5 items-center justify-center",
77
101
  children: opt.value === value && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.CheckIcon, {
78
- className: "text-primary",
102
+ className: "text-accent",
79
103
  width: 18,
80
104
  height: 18
81
105
  })
@@ -86,9 +110,9 @@ var Combobox = ({ options, value, onChange, placeholder = "Select...", className
86
110
  }, opt.value))]
87
111
  }),
88
112
  createOptionLabel && onCreateOption && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
89
- className: "sticky bottom-0 z-10 border-t border-white/20 dark:border-white/10 bg-white/50 dark:bg-neutral-900/50 backdrop-blur-sm rounded-b-md",
113
+ className: "sticky bottom-0 z-10 rounded-b-lg border-t border-border-muted bg-elevated/95 backdrop-blur-sm",
90
114
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
91
- className: "mx-1 my-1 flex cursor-pointer items-center gap-2 rounded-md px-3 py-2 text-sm font-semibold text-foreground dark:text-white transition hover:bg-primary hover:text-white",
115
+ className: "mx-1 my-1 flex cursor-pointer items-center gap-2 rounded-md px-3 py-2 text-sm font-semibold text-foreground transition hover:bg-accent hover:text-on-accent",
92
116
  onClick: () => {
93
117
  onCreateOption();
94
118
  setSearch("");
@@ -112,4 +136,4 @@ Object.defineProperty(exports, "Combobox", {
112
136
  }
113
137
  });
114
138
 
115
- //# sourceMappingURL=combobox-mAvOcg-E.cjs.map
139
+ //# sourceMappingURL=combobox-BXu3s0dt.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combobox-BXu3s0dt.cjs","names":[],"sources":["../../src/components/forms/combobox/Combobox.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from \"react\";\nimport { motion, useMotionTemplate, useMotionValue } from \"framer-motion\";\n\nimport { CheckIcon, ChevronDownIcon } from \"../../icons\";\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 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 className,\n bgClassName = \"bg-background-secondary\",\n createOptionLabel,\n onCreateOption,\n}) => {\n const [open, setOpen] = useState(false);\n const [search, setSearch] = useState(\"\");\n const [visible, setVisible] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\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 // Close dropdown on outside click\n useEffect(() => {\n const handleClick = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) {\n setOpen(false);\n setSearch(\"\");\n }\n };\n if (open) {\n document.addEventListener(\"mousedown\", handleClick);\n }\n return () => document.removeEventListener(\"mousedown\", handleClick);\n }, [open]);\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 <div\n ref={ref}\n className={mergeClassNames(\"relative w-full\", className)}\n tabIndex={0}\n >\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 rounded-lg border-border p-[2px] transition duration-300 hover:border-accent\"\n >\n <div\n className={mergeClassNames(\n \"shadow-input flex h-10 w-full cursor-pointer items-center justify-between rounded-md border border-input px-3 py-2 text-sm text-foreground transition duration-400 ease-in-out group-hover/combobox:shadow-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:outline-none\",\n bgClassName,\n )}\n onClick={() => {\n setOpen((current) => {\n if (current) {\n setSearch(\"\");\n }\n\n return !current;\n });\n }}\n >\n {value ? (\n <span className=\"flex-1 truncate text-foreground\">\n {options.find((opt) => opt.value === value)?.label}\n </span>\n ) : (\n <span className=\"flex-1 text-muted-foreground\">{placeholder}</span>\n )}\n <span\n className={mergeClassNames(\n \"ml-2 text-muted-foreground 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 {open && (\n <div className=\"absolute right-0 left-0 z-20 mt-1 flex max-h-60 flex-col rounded-lg border border-border bg-background-secondary shadow-3 backdrop-blur-xl transition\">\n {/* Sticky search input */}\n <div className=\"sticky top-0 z-10 rounded-t-lg border-b border-border-muted bg-elevated/95 backdrop-blur-sm\">\n <input\n autoFocus\n className=\"w-full bg-transparent px-3 py-2 text-sm text-foreground outline-none placeholder:text-muted-foreground focus-visible:ring-2 focus-visible:ring-accent\"\n placeholder=\"Type to search...\"\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-muted-foreground\">No options</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-foreground transition\",\n opt.value === value\n ? \"bg-accent-subtle text-accent font-semibold\"\n : \"\",\n \"hover:bg-accent hover:text-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-accent\" width={18} height={18} />\n )}\n </span>\n <span className=\"min-w-0 flex-1 truncate\">{opt.label}</span>\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-border-muted bg-elevated/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-foreground transition hover:bg-accent hover:text-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 <span className=\"min-w-0 flex-1 truncate\">\n {createOptionLabel}\n </span>\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n );\n};\n\nexport default Combobox;\n"],"mappings":"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"}
@@ -0,0 +1,132 @@
1
+ import { n as mergeClassNames } from "./utils-ati1KkDb.mjs";
2
+ import { J as CheckIcon, N as ChevronDownIcon } from "./icons-DuumN7z-.mjs";
3
+ import { useEffect, useRef, useState } from "react";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import { motion, useMotionTemplate, useMotionValue } from "framer-motion";
6
+ //#region src/components/forms/combobox/Combobox.tsx
7
+ var Combobox = ({ options, value, onChange, placeholder = "Select...", className, bgClassName = "bg-background-secondary", createOptionLabel, onCreateOption }) => {
8
+ const [open, setOpen] = useState(false);
9
+ const [search, setSearch] = useState("");
10
+ const [visible, setVisible] = useState(false);
11
+ const ref = useRef(null);
12
+ const mouseX = useMotionValue(0);
13
+ const mouseY = useMotionValue(0);
14
+ const radius = 100;
15
+ const filteredOptions = options.filter((opt) => opt.label.toLowerCase().includes(search.toLowerCase()));
16
+ useEffect(() => {
17
+ const handleClick = (e) => {
18
+ if (ref.current && !ref.current.contains(e.target)) {
19
+ setOpen(false);
20
+ setSearch("");
21
+ }
22
+ };
23
+ if (open) document.addEventListener("mousedown", handleClick);
24
+ return () => document.removeEventListener("mousedown", handleClick);
25
+ }, [open]);
26
+ const handleMouseMove = (event) => {
27
+ const { left, top } = event.currentTarget.getBoundingClientRect();
28
+ mouseX.set(event.clientX - left);
29
+ mouseY.set(event.clientY - top);
30
+ };
31
+ return /* @__PURE__ */ jsxs("div", {
32
+ ref,
33
+ className: mergeClassNames("relative w-full", className),
34
+ tabIndex: 0,
35
+ children: [/* @__PURE__ */ jsx(motion.div, {
36
+ style: { backgroundImage: useMotionTemplate`
37
+ radial-gradient(
38
+ ${visible ? `${radius}px` : "0px"} circle at ${mouseX}px ${mouseY}px,
39
+ var(--ds-color-accent),
40
+ transparent 90%
41
+ )
42
+ ` },
43
+ onMouseMove: handleMouseMove,
44
+ onMouseEnter: () => setVisible(true),
45
+ onMouseLeave: () => setVisible(false),
46
+ className: "group/combobox rounded-lg border-border p-[2px] transition duration-300 hover:border-accent",
47
+ children: /* @__PURE__ */ jsxs("div", {
48
+ className: mergeClassNames("shadow-input flex h-10 w-full cursor-pointer items-center justify-between rounded-md border border-input px-3 py-2 text-sm text-foreground transition duration-400 ease-in-out group-hover/combobox:shadow-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:outline-none", bgClassName),
49
+ onClick: () => {
50
+ setOpen((current) => {
51
+ if (current) setSearch("");
52
+ return !current;
53
+ });
54
+ },
55
+ children: [value ? /* @__PURE__ */ jsx("span", {
56
+ className: "flex-1 truncate text-foreground",
57
+ children: options.find((opt) => opt.value === value)?.label
58
+ }) : /* @__PURE__ */ jsx("span", {
59
+ className: "flex-1 text-muted-foreground",
60
+ children: placeholder
61
+ }), /* @__PURE__ */ jsx("span", {
62
+ className: mergeClassNames("ml-2 text-muted-foreground transition-transform duration-300", open ? "rotate-180" : "rotate-0"),
63
+ children: /* @__PURE__ */ jsx(ChevronDownIcon, {
64
+ width: 24,
65
+ height: 24,
66
+ color: "currentColor",
67
+ className: "h-5 w-5"
68
+ })
69
+ })]
70
+ })
71
+ }), open && /* @__PURE__ */ jsxs("div", {
72
+ className: "absolute right-0 left-0 z-20 mt-1 flex max-h-60 flex-col rounded-lg border border-border bg-background-secondary shadow-3 backdrop-blur-xl transition",
73
+ children: [
74
+ /* @__PURE__ */ jsx("div", {
75
+ className: "sticky top-0 z-10 rounded-t-lg border-b border-border-muted bg-elevated/95 backdrop-blur-sm",
76
+ children: /* @__PURE__ */ jsx("input", {
77
+ autoFocus: true,
78
+ className: "w-full bg-transparent px-3 py-2 text-sm text-foreground outline-none placeholder:text-muted-foreground focus-visible:ring-2 focus-visible:ring-accent",
79
+ placeholder: "Type to search...",
80
+ value: search,
81
+ onChange: (e) => setSearch(e.target.value),
82
+ onClick: (e) => e.stopPropagation()
83
+ })
84
+ }),
85
+ /* @__PURE__ */ jsxs("div", {
86
+ className: "max-h-80 flex-1 overflow-auto",
87
+ children: [filteredOptions.length === 0 && !createOptionLabel && /* @__PURE__ */ jsx("div", {
88
+ className: "px-3 py-2 text-muted-foreground",
89
+ children: "No options"
90
+ }), filteredOptions.map((opt) => /* @__PURE__ */ jsxs("div", {
91
+ className: mergeClassNames("mx-1 my-1 flex cursor-pointer items-center gap-2 rounded-md px-3 py-2 text-sm text-foreground transition", opt.value === value ? "bg-accent-subtle text-accent font-semibold" : "", "hover:bg-accent hover:text-on-accent"),
92
+ onClick: () => {
93
+ onChange(opt.value);
94
+ setSearch("");
95
+ setOpen(false);
96
+ },
97
+ children: [/* @__PURE__ */ jsx("span", {
98
+ className: "flex w-5 items-center justify-center",
99
+ children: opt.value === value && /* @__PURE__ */ jsx(CheckIcon, {
100
+ className: "text-accent",
101
+ width: 18,
102
+ height: 18
103
+ })
104
+ }), /* @__PURE__ */ jsx("span", {
105
+ className: "min-w-0 flex-1 truncate",
106
+ children: opt.label
107
+ })]
108
+ }, opt.value))]
109
+ }),
110
+ createOptionLabel && onCreateOption && /* @__PURE__ */ jsx("div", {
111
+ className: "sticky bottom-0 z-10 rounded-b-lg border-t border-border-muted bg-elevated/95 backdrop-blur-sm",
112
+ children: /* @__PURE__ */ jsxs("div", {
113
+ className: "mx-1 my-1 flex cursor-pointer items-center gap-2 rounded-md px-3 py-2 text-sm font-semibold text-foreground transition hover:bg-accent hover:text-on-accent",
114
+ onClick: () => {
115
+ onCreateOption();
116
+ setSearch("");
117
+ setOpen(false);
118
+ },
119
+ children: [/* @__PURE__ */ jsx("span", { className: "flex w-5 items-center justify-center" }), /* @__PURE__ */ jsx("span", {
120
+ className: "min-w-0 flex-1 truncate",
121
+ children: createOptionLabel
122
+ })]
123
+ })
124
+ })
125
+ ]
126
+ })]
127
+ });
128
+ };
129
+ //#endregion
130
+ export { Combobox as t };
131
+
132
+ //# sourceMappingURL=combobox-CjK-qG4k.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combobox-CjK-qG4k.mjs","names":[],"sources":["../../src/components/forms/combobox/Combobox.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from \"react\";\nimport { motion, useMotionTemplate, useMotionValue } from \"framer-motion\";\n\nimport { CheckIcon, ChevronDownIcon } from \"../../icons\";\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 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 className,\n bgClassName = \"bg-background-secondary\",\n createOptionLabel,\n onCreateOption,\n}) => {\n const [open, setOpen] = useState(false);\n const [search, setSearch] = useState(\"\");\n const [visible, setVisible] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\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 // Close dropdown on outside click\n useEffect(() => {\n const handleClick = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) {\n setOpen(false);\n setSearch(\"\");\n }\n };\n if (open) {\n document.addEventListener(\"mousedown\", handleClick);\n }\n return () => document.removeEventListener(\"mousedown\", handleClick);\n }, [open]);\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 <div\n ref={ref}\n className={mergeClassNames(\"relative w-full\", className)}\n tabIndex={0}\n >\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 rounded-lg border-border p-[2px] transition duration-300 hover:border-accent\"\n >\n <div\n className={mergeClassNames(\n \"shadow-input flex h-10 w-full cursor-pointer items-center justify-between rounded-md border border-input px-3 py-2 text-sm text-foreground transition duration-400 ease-in-out group-hover/combobox:shadow-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:outline-none\",\n bgClassName,\n )}\n onClick={() => {\n setOpen((current) => {\n if (current) {\n setSearch(\"\");\n }\n\n return !current;\n });\n }}\n >\n {value ? (\n <span className=\"flex-1 truncate text-foreground\">\n {options.find((opt) => opt.value === value)?.label}\n </span>\n ) : (\n <span className=\"flex-1 text-muted-foreground\">{placeholder}</span>\n )}\n <span\n className={mergeClassNames(\n \"ml-2 text-muted-foreground 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 {open && (\n <div className=\"absolute right-0 left-0 z-20 mt-1 flex max-h-60 flex-col rounded-lg border border-border bg-background-secondary shadow-3 backdrop-blur-xl transition\">\n {/* Sticky search input */}\n <div className=\"sticky top-0 z-10 rounded-t-lg border-b border-border-muted bg-elevated/95 backdrop-blur-sm\">\n <input\n autoFocus\n className=\"w-full bg-transparent px-3 py-2 text-sm text-foreground outline-none placeholder:text-muted-foreground focus-visible:ring-2 focus-visible:ring-accent\"\n placeholder=\"Type to search...\"\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-muted-foreground\">No options</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-foreground transition\",\n opt.value === value\n ? \"bg-accent-subtle text-accent font-semibold\"\n : \"\",\n \"hover:bg-accent hover:text-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-accent\" width={18} height={18} />\n )}\n </span>\n <span className=\"min-w-0 flex-1 truncate\">{opt.label}</span>\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-border-muted bg-elevated/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-foreground transition hover:bg-accent hover:text-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 <span className=\"min-w-0 flex-1 truncate\">\n {createOptionLabel}\n </span>\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n );\n};\n\nexport default Combobox;\n"],"mappings":";;;;;;AAsBA,IAAM,YAAqC,EACzC,SACA,OACA,UACA,cAAc,aACd,WACA,cAAc,2BACd,mBACA,qBACI;CACJ,MAAM,CAAC,MAAM,WAAW,SAAS,MAAM;CACvC,MAAM,CAAC,QAAQ,aAAa,SAAS,GAAG;CACxC,MAAM,CAAC,SAAS,cAAc,SAAS,MAAM;CAC7C,MAAM,MAAM,OAAuB,KAAK;CACxC,MAAM,SAAS,eAAe,EAAE;CAChC,MAAM,SAAS,eAAe,EAAE;CAChC,MAAM,SAAS;CAGf,MAAM,kBAAkB,QAAQ,QAAQ,QACtC,IAAI,MAAM,aAAa,CAAC,SAAS,OAAO,aAAa,CAAC,CACvD;AAGD,iBAAgB;EACd,MAAM,eAAe,MAAkB;AACrC,OAAI,IAAI,WAAW,CAAC,IAAI,QAAQ,SAAS,EAAE,OAAe,EAAE;AAC1D,YAAQ,MAAM;AACd,cAAU,GAAG;;;AAGjB,MAAI,KACF,UAAS,iBAAiB,aAAa,YAAY;AAErD,eAAa,SAAS,oBAAoB,aAAa,YAAY;IAClE,CAAC,KAAK,CAAC;CAEV,MAAM,mBAAmB,UAA4C;EACnE,MAAM,EAAE,MAAM,QAAQ,MAAM,cAAc,uBAAuB;AACjE,SAAO,IAAI,MAAM,UAAU,KAAK;AAChC,SAAO,IAAI,MAAM,UAAU,IAAI;;AAGjC,QACE,qBAAC,OAAD;EACO;EACL,WAAW,gBAAgB,mBAAmB,UAAU;EACxD,UAAU;YAHZ,CAKE,oBAAC,OAAO,KAAR;GACE,OAAO,EACL,iBAAiB,iBAAiB;;gBAE5B,UAAU,GAAG,OAAO,MAAM,MAAM,aAAa,OAAO,KAAK,OAAO;;;;aAKvE;GACD,aAAa;GACb,oBAAoB,WAAW,KAAK;GACpC,oBAAoB,WAAW,MAAM;GACrC,WAAU;aAEV,qBAAC,OAAD;IACE,WAAW,gBACT,6RACA,YACD;IACD,eAAe;AACb,cAAS,YAAY;AACnB,UAAI,QACF,WAAU,GAAG;AAGf,aAAO,CAAC;OACR;;cAZN,CAeG,QACC,oBAAC,QAAD;KAAM,WAAU;eACb,QAAQ,MAAM,QAAQ,IAAI,UAAU,MAAM,EAAE;KACxC,CAAA,GAEP,oBAAC,QAAD;KAAM,WAAU;eAAgC;KAAmB,CAAA,EAErE,oBAAC,QAAD;KACE,WAAW,gBACT,gEACA,OAAO,eAAe,WACvB;eAED,oBAAC,iBAAD;MACE,OAAO;MACP,QAAQ;MACR,OAAM;MACN,WAAU;MACV,CAAA;KACG,CAAA,CACH;;GACK,CAAA,EACZ,QACC,qBAAC,OAAD;GAAK,WAAU;aAAf;IAEE,oBAAC,OAAD;KAAK,WAAU;eACb,oBAAC,SAAD;MACE,WAAA;MACA,WAAU;MACV,aAAY;MACZ,OAAO;MACP,WAAW,MAAM,UAAU,EAAE,OAAO,MAAM;MAC1C,UAAU,MAAM,EAAE,iBAAiB;MACnC,CAAA;KACE,CAAA;IAEN,qBAAC,OAAD;KAAK,WAAU;eAAf,CACG,gBAAgB,WAAW,KAAK,CAAC,qBAChC,oBAAC,OAAD;MAAK,WAAU;gBAAkC;MAAgB,CAAA,EAElE,gBAAgB,KAAK,QACpB,qBAAC,OAAD;MAEE,WAAW,gBACT,4GACA,IAAI,UAAU,QACV,+CACA,IACJ,uCACD;MACD,eAAe;AACb,gBAAS,IAAI,MAAM;AACnB,iBAAU,GAAG;AACb,eAAQ,MAAM;;gBAZlB,CAeE,oBAAC,QAAD;OAAM,WAAU;iBACb,IAAI,UAAU,SACb,oBAAC,WAAD;QAAW,WAAU;QAAc,OAAO;QAAI,QAAQ;QAAM,CAAA;OAEzD,CAAA,EACP,oBAAC,QAAD;OAAM,WAAU;iBAA2B,IAAI;OAAa,CAAA,CACxD;QApBC,IAAI,MAoBL,CACN,CACE;;IAEL,qBAAqB,kBACpB,oBAAC,OAAD;KAAK,WAAU;eACb,qBAAC,OAAD;MACE,WAAU;MACV,eAAe;AACb,uBAAgB;AAChB,iBAAU,GAAG;AACb,eAAQ,MAAM;;gBALlB,CAQE,oBAAC,QAAD,EAAM,WAAU,wCAET,CAAA,EACP,oBAAC,QAAD;OAAM,WAAU;iBACb;OACI,CAAA,CACH;;KACF,CAAA;IAEJ;KAEJ"}