@deepnoid/ui 0.1.19 → 0.1.21

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 (178) hide show
  1. package/.turbo/turbo-build.log +202 -183
  2. package/dist/assets/images/cogwheel.d.mts +2 -0
  3. package/dist/assets/images/cogwheel.d.ts +2 -0
  4. package/dist/assets/images/cogwheel.js +4 -0
  5. package/dist/assets/images/cogwheel.mjs +8 -0
  6. package/dist/assets/images/folder.d.mts +2 -0
  7. package/dist/assets/images/folder.d.ts +2 -0
  8. package/dist/assets/images/folder.js +4 -0
  9. package/dist/assets/images/folder.mjs +8 -0
  10. package/dist/chunk-2DLKV6TT.mjs +168 -0
  11. package/dist/{chunk-7TXQPX4O.mjs → chunk-2Y7IBUAZ.mjs} +19 -8
  12. package/dist/chunk-3BKCODIL.mjs +49 -0
  13. package/dist/{chunk-A7OXEUCC.mjs → chunk-3IU2RPSM.mjs} +75 -9
  14. package/dist/{chunk-3TJAGKKY.mjs → chunk-7CFOD7G4.mjs} +11 -9
  15. package/dist/chunk-7KUFDVGL.mjs +71 -0
  16. package/dist/chunk-7USF56CT.mjs +8 -0
  17. package/dist/{chunk-5ANQDLRS.mjs → chunk-DUPQBPI2.mjs} +4 -4
  18. package/dist/{chunk-K7Z6PVXE.mjs → chunk-EWZAHXN7.mjs} +7 -7
  19. package/dist/{chunk-BFM3LPBK.mjs → chunk-FBAR75U4.mjs} +4 -4
  20. package/dist/{chunk-RPDPB4JP.mjs → chunk-HQLSHEK6.mjs} +4 -4
  21. package/dist/{chunk-DADMVOYI.mjs → chunk-HWL7TPUN.mjs} +1 -1
  22. package/dist/chunk-IZM66FHP.mjs +8 -0
  23. package/dist/{chunk-QIDZXCYP.mjs → chunk-JHDYQCEE.mjs} +6 -6
  24. package/dist/chunk-MBLZYQCN.mjs +1 -0
  25. package/dist/{chunk-7A5M7DRD.mjs → chunk-MQI5SZWO.mjs} +7 -7
  26. package/dist/{chunk-3DPVPTHL.mjs → chunk-MV7RSV4D.mjs} +3 -3
  27. package/dist/chunk-MW7CSRIE.mjs +348 -0
  28. package/dist/chunk-OV7CZNXU.mjs +135 -0
  29. package/dist/{chunk-AG7AWQKH.mjs → chunk-Q6BZ76DI.mjs} +4 -4
  30. package/dist/{chunk-63WXGSTV.mjs → chunk-QHWFHOW2.mjs} +24 -14
  31. package/dist/{chunk-FONJYZKH.mjs → chunk-SDHQUYFI.mjs} +7 -7
  32. package/dist/{chunk-UHFJ7ZFM.mjs → chunk-UTC2D6GV.mjs} +6 -6
  33. package/dist/chunk-XGYQ6D3S.mjs +82 -0
  34. package/dist/{chunk-UYPVP36M.mjs → chunk-XQGD4ZIX.mjs} +1 -1
  35. package/dist/cogwheel-U2B3CWEL.png +0 -0
  36. package/dist/components/avatar/avatar.js +75 -9
  37. package/dist/components/avatar/avatar.mjs +2 -2
  38. package/dist/components/avatar/index.js +75 -9
  39. package/dist/components/avatar/index.mjs +2 -2
  40. package/dist/components/backdrop/backdrop.mjs +2 -2
  41. package/dist/components/backdrop/index.mjs +2 -2
  42. package/dist/components/breadcrumb/breadcrumb.js +75 -9
  43. package/dist/components/breadcrumb/breadcrumb.mjs +9 -9
  44. package/dist/components/breadcrumb/index.js +75 -9
  45. package/dist/components/breadcrumb/index.mjs +9 -9
  46. package/dist/components/button/button.js +75 -9
  47. package/dist/components/button/button.mjs +5 -5
  48. package/dist/components/button/icon-button.js +75 -9
  49. package/dist/components/button/icon-button.mjs +5 -5
  50. package/dist/components/button/index.js +75 -9
  51. package/dist/components/button/index.mjs +9 -9
  52. package/dist/components/button/text-button.mjs +3 -3
  53. package/dist/components/checkbox/checkbox.mjs +3 -3
  54. package/dist/components/checkbox/index.mjs +3 -3
  55. package/dist/components/chip/chip.js +75 -9
  56. package/dist/components/chip/chip.mjs +4 -4
  57. package/dist/components/chip/index.js +75 -9
  58. package/dist/components/chip/index.mjs +4 -4
  59. package/dist/components/dateTimePicker/calendar.js +75 -9
  60. package/dist/components/dateTimePicker/calendar.mjs +4 -4
  61. package/dist/components/dateTimePicker/dateTimePicker.js +75 -9
  62. package/dist/components/dateTimePicker/dateTimePicker.mjs +9 -9
  63. package/dist/components/dateTimePicker/index.js +75 -9
  64. package/dist/components/dateTimePicker/index.mjs +9 -9
  65. package/dist/components/dateTimePicker/timePicker.js +75 -9
  66. package/dist/components/dateTimePicker/timePicker.mjs +7 -7
  67. package/dist/components/icon/Icon.d.mts +6 -2
  68. package/dist/components/icon/Icon.d.ts +6 -2
  69. package/dist/components/icon/Icon.js +75 -9
  70. package/dist/components/icon/Icon.mjs +2 -2
  71. package/dist/components/icon/index.js +75 -9
  72. package/dist/components/icon/index.mjs +2 -2
  73. package/dist/components/icon/template.d.mts +2 -1
  74. package/dist/components/icon/template.d.ts +2 -1
  75. package/dist/components/icon/template.js +75 -9
  76. package/dist/components/icon/template.mjs +1 -1
  77. package/dist/components/input/index.js +89 -12
  78. package/dist/components/input/index.mjs +5 -5
  79. package/dist/components/input/input.js +89 -12
  80. package/dist/components/input/input.mjs +5 -5
  81. package/dist/components/list/index.js +75 -9
  82. package/dist/components/list/index.mjs +8 -8
  83. package/dist/components/list/list.mjs +2 -2
  84. package/dist/components/list/listItem.js +75 -9
  85. package/dist/components/list/listItem.mjs +5 -5
  86. package/dist/components/modal/index.d.mts +0 -3
  87. package/dist/components/modal/index.d.ts +0 -3
  88. package/dist/components/modal/index.js +205 -158
  89. package/dist/components/modal/index.mjs +11 -9
  90. package/dist/components/modal/modal.d.mts +43 -105
  91. package/dist/components/modal/modal.d.ts +43 -105
  92. package/dist/components/modal/modal.js +206 -164
  93. package/dist/components/modal/modal.mjs +12 -12
  94. package/dist/components/pagination/index.js +89 -12
  95. package/dist/components/pagination/index.mjs +6 -6
  96. package/dist/components/pagination/pagination.js +89 -12
  97. package/dist/components/pagination/pagination.mjs +6 -6
  98. package/dist/components/radio/index.mjs +3 -3
  99. package/dist/components/radio/radio.mjs +3 -3
  100. package/dist/components/ripple/index.mjs +3 -3
  101. package/dist/components/select/index.d.mts +1 -1
  102. package/dist/components/select/index.d.ts +1 -1
  103. package/dist/components/select/index.js +376 -295
  104. package/dist/components/select/index.mjs +5 -6
  105. package/dist/components/select/select.d.mts +190 -177
  106. package/dist/components/select/select.d.ts +190 -177
  107. package/dist/components/select/select.js +376 -295
  108. package/dist/components/select/select.mjs +5 -6
  109. package/dist/components/table/form-table.d.mts +52 -0
  110. package/dist/components/table/form-table.d.ts +52 -0
  111. package/dist/components/table/form-table.js +365 -0
  112. package/dist/components/table/form-table.mjs +9 -0
  113. package/dist/components/table/index.d.mts +2 -0
  114. package/dist/components/table/index.d.ts +2 -0
  115. package/dist/components/table/index.js +162 -30
  116. package/dist/components/table/index.mjs +15 -11
  117. package/dist/components/table/table-body.d.mts +3 -2
  118. package/dist/components/table/table-body.d.ts +3 -2
  119. package/dist/components/table/table-body.js +23 -13
  120. package/dist/components/table/table-body.mjs +4 -4
  121. package/dist/components/table/table-head.d.mts +2 -2
  122. package/dist/components/table/table-head.d.ts +2 -2
  123. package/dist/components/table/table-head.js +2 -2
  124. package/dist/components/table/table-head.mjs +4 -4
  125. package/dist/components/table/table.d.mts +2 -1
  126. package/dist/components/table/table.d.ts +2 -1
  127. package/dist/components/table/table.js +119 -30
  128. package/dist/components/table/table.mjs +10 -10
  129. package/dist/components/tabs/index.mjs +2 -2
  130. package/dist/components/tabs/tabs.mjs +2 -2
  131. package/dist/components/toast/index.js +239 -97
  132. package/dist/components/toast/index.mjs +6 -5
  133. package/dist/components/toast/toast.d.mts +40 -81
  134. package/dist/components/toast/toast.d.ts +40 -81
  135. package/dist/components/toast/toast.js +210 -56
  136. package/dist/components/toast/toast.mjs +5 -4
  137. package/dist/components/toast/use-toast.d.mts +6 -10
  138. package/dist/components/toast/use-toast.d.ts +6 -10
  139. package/dist/components/toast/use-toast.js +239 -97
  140. package/dist/components/toast/use-toast.mjs +6 -5
  141. package/dist/components/tooltip/index.mjs +2 -2
  142. package/dist/components/tooltip/tooltip.mjs +2 -2
  143. package/dist/components/tree/index.d.mts +2 -0
  144. package/dist/components/tree/index.d.ts +2 -0
  145. package/dist/components/tree/index.js +4371 -0
  146. package/dist/components/tree/index.mjs +15 -0
  147. package/dist/components/tree/tree.d.mts +20 -0
  148. package/dist/components/tree/tree.d.ts +20 -0
  149. package/dist/components/{select/option.js → tree/tree.js} +146 -74
  150. package/dist/components/tree/tree.mjs +14 -0
  151. package/dist/folder-RO3QTLGS.svg +9 -0
  152. package/dist/index.d.mts +3 -0
  153. package/dist/index.d.ts +3 -0
  154. package/dist/index.js +681 -545
  155. package/dist/index.mjs +71 -62
  156. package/package.json +1 -1
  157. package/types/images.d.ts +14 -0
  158. package/dist/chunk-5OBP42D6.mjs +0 -117
  159. package/dist/chunk-HDNQOLUJ.mjs +0 -83
  160. package/dist/chunk-MJT6ZW4C.mjs +0 -255
  161. package/dist/chunk-P6NVCCBZ.mjs +0 -76
  162. package/dist/chunk-RXIFDECK.mjs +0 -213
  163. package/dist/chunk-S3QS5B7F.mjs +0 -61
  164. package/dist/components/select/option.d.mts +0 -17
  165. package/dist/components/select/option.d.ts +0 -17
  166. package/dist/components/select/option.mjs +0 -12
  167. package/dist/components/select/useSelect.d.mts +0 -31
  168. package/dist/components/select/useSelect.d.ts +0 -31
  169. package/dist/components/select/useSelect.js +0 -84
  170. package/dist/components/select/useSelect.mjs +0 -8
  171. package/dist/{chunk-D6QI3DJG.mjs → chunk-7H5XPHY6.mjs} +4 -4
  172. package/dist/{chunk-2UUH2MBF.mjs → chunk-DX3KXNP6.mjs} +0 -0
  173. package/dist/{chunk-Z2537DF6.mjs → chunk-IL5ENWCR.mjs} +3 -3
  174. package/dist/{chunk-WFMFC7R6.mjs → chunk-KCOHU7X7.mjs} +4 -4
  175. package/dist/{chunk-LL6F3WDX.mjs → chunk-P5QCU457.mjs} +3 -3
  176. package/dist/{chunk-2YMAKIZ6.mjs → chunk-SSMMWMQC.mjs} +3 -3
  177. package/dist/{chunk-HIVPDIEP.mjs → chunk-UFVQPPPW.mjs} +3 -3
  178. package/dist/{chunk-QIRL6HY6.mjs → chunk-YIIFWADW.mjs} +4 -4
@@ -105,7 +105,7 @@ __export(select_exports, {
105
105
  default: () => select_default
106
106
  });
107
107
  module.exports = __toCommonJS(select_exports);
108
- var import_react2 = require("react");
108
+ var import_react = require("react");
109
109
  var import_react_dom = require("react-dom");
110
110
 
111
111
  // src/utils/tailwind-variants.ts
@@ -345,62 +345,6 @@ var mapPropsVariants = (props, variantKeys, removeVariantProps = true) => {
345
345
  }
346
346
  };
347
347
 
348
- // src/components/select/useSelect.tsx
349
- var import_react = require("react");
350
- var useSelect = ({ options, defaultOption, onChange }) => {
351
- const [selectedOption, setSelectedOption] = (0, import_react.useState)(defaultOption);
352
- const [targetRect, setTargetRect] = (0, import_react.useState)(null);
353
- const [optionWrapperHeight, setOptionWrapperHeight] = (0, import_react.useState)(0);
354
- const selectWrapperRef = (0, import_react.useRef)(null);
355
- const optionWrapperRef = (0, import_react.useRef)(null);
356
- const calculatePositionWithScroll = (targetRect2, optionWrapperHeight2) => {
357
- const scrollTop = window.scrollY || document.documentElement.scrollTop || document.body.scrollTop;
358
- const scrollLeft = window.scrollX || document.documentElement.scrollLeft || document.body.scrollLeft;
359
- const spaceBelow = window.innerHeight - (targetRect2.y + targetRect2.height + 4);
360
- const spaceAbove = targetRect2.y - 4;
361
- const top = spaceBelow < optionWrapperHeight2 && spaceAbove > optionWrapperHeight2 ? targetRect2.y - optionWrapperHeight2 - 4 : targetRect2.y + targetRect2.height + 4;
362
- return {
363
- top: top + scrollTop,
364
- left: targetRect2.x + scrollLeft
365
- };
366
- };
367
- const handleToggleSelect = () => {
368
- if (selectWrapperRef.current) {
369
- const rect = selectWrapperRef.current.getBoundingClientRect();
370
- setTargetRect((prevRect) => prevRect ? null : { x: rect.x, y: rect.y, width: rect.width, height: rect.height });
371
- }
372
- };
373
- const handleChangeOption = (option) => {
374
- onChange == null ? void 0 : onChange(option);
375
- setSelectedOption(option);
376
- handleToggleSelect();
377
- };
378
- (0, import_react.useEffect)(() => {
379
- const onClickOutside = (e) => {
380
- if (optionWrapperRef.current && !optionWrapperRef.current.contains(e.target)) {
381
- setTargetRect(null);
382
- }
383
- };
384
- window.addEventListener("mousedown", onClickOutside);
385
- return () => window.removeEventListener("mousedown", onClickOutside);
386
- }, []);
387
- (0, import_react.useEffect)(() => {
388
- if (optionWrapperRef.current) {
389
- setOptionWrapperHeight(optionWrapperRef.current.getBoundingClientRect().height);
390
- }
391
- }, [targetRect]);
392
- return {
393
- selectedOption,
394
- targetRect,
395
- optionWrapperHeight,
396
- selectWrapperRef,
397
- optionWrapperRef,
398
- handleToggleSelect,
399
- handleChangeOption,
400
- calculatePositionWithScroll
401
- };
402
- };
403
-
404
348
  // src/components/icon/template.tsx
405
349
  var import_jsx_runtime = require("react/jsx-runtime");
406
350
  var template = {
@@ -839,23 +783,89 @@ var template = {
839
783
  }
840
784
  );
841
785
  },
842
- // ----------------------------------- old ---------------------------------
843
- // ** Status **
844
- plus: ({ className, fill }) => {
786
+ exclamation: ({ className, fill }) => {
845
787
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
846
788
  "svg",
847
789
  {
848
- width: "24",
849
- height: "24",
850
- viewBox: "0 0 24 24",
790
+ xmlns: "http://www.w3.org/2000/svg",
791
+ width: "18",
792
+ height: "18",
793
+ viewBox: "0 0 18 18",
851
794
  fill: "none",
795
+ className,
796
+ children: fill ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
797
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
798
+ "path",
799
+ {
800
+ d: "M11.264 2.37077C11.2832 2.37715 11.3024 2.38353 11.3223 2.3901C12.3182 2.72483 13.1824 3.30575 13.9306 4.03468C13.9575 4.06039 13.9843 4.08609 14.0119 4.11257C14.1806 4.27693 14.33 4.45208 14.4754 4.63713C14.4981 4.66509 14.5208 4.69305 14.5442 4.72185C15.0188 5.31801 15.3774 6.01161 15.6224 6.73137C15.6303 6.75453 15.6382 6.77768 15.6464 6.80155C16.1308 8.2413 16.1125 9.82918 15.6224 11.2641C15.6105 11.2995 15.6105 11.2995 15.5983 11.3356C15.3948 11.9315 15.1066 12.5059 14.7335 13.0141C14.7221 13.0297 14.7107 13.0453 14.6989 13.0614C14.313 13.5865 13.8736 14.0779 13.3571 14.4772C13.3155 14.5109 13.3155 14.5109 13.273 14.5454C12.6801 15.0224 11.982 15.3801 11.264 15.6247C11.2408 15.6326 11.2177 15.6406 11.1938 15.6487C9.43757 16.2402 7.50979 16.0678 5.85241 15.2592C4.96204 14.8102 4.13267 14.1489 3.52213 13.3583C3.49962 13.3305 3.47711 13.3028 3.45392 13.2742C2.32855 11.8738 1.85507 9.99621 2.03839 8.22438C2.17342 7.0638 2.58402 5.9339 3.26407 4.98139C3.27714 4.96288 3.29022 4.94436 3.30369 4.92529C3.51689 4.62523 3.75292 4.35545 4.00958 4.09206C4.03773 4.06274 4.06588 4.03342 4.09403 4.00409C4.26597 3.8279 4.44681 3.67012 4.6404 3.5183C4.6683 3.49563 4.69621 3.47296 4.72496 3.4496C6.54339 2.00006 9.08031 1.63201 11.264 2.37077Z",
801
+ fill: "currentColor"
802
+ }
803
+ ),
804
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
805
+ "path",
806
+ {
807
+ d: "M9.36648 5.85289C9.53634 5.9647 9.6533 6.12598 9.71812 6.32867C9.73452 6.40467 9.74201 6.47516 9.74238 6.55312C9.74254 6.57462 9.74269 6.59612 9.74284 6.61826C9.7429 6.64157 9.74296 6.66489 9.74302 6.68891C9.74315 6.71368 9.74329 6.73845 9.74344 6.76397C9.74385 6.84591 9.7441 6.92785 9.74431 7.00979C9.7444 7.03785 9.74448 7.06592 9.74457 7.09484C9.74497 7.22817 9.74528 7.3615 9.74545 7.49483C9.74568 7.66315 9.74639 7.83146 9.74732 7.99978C9.74787 8.11787 9.74805 8.23596 9.74812 8.35405C9.74823 8.41042 9.74847 8.46679 9.74886 8.52316C9.75351 9.23268 9.75351 9.23268 9.54833 9.48966C9.39246 9.65505 9.20768 9.73677 8.98973 9.75C8.78199 9.74035 8.59485 9.64627 8.44906 9.48814C8.28258 9.27909 8.24899 9.03597 8.25049 8.7678C8.25038 8.7429 8.25027 8.718 8.25015 8.69234C8.24987 8.61081 8.25006 8.5293 8.25027 8.44777C8.25023 8.39068 8.25017 8.33358 8.25009 8.27649C8.24999 8.15716 8.25013 8.03783 8.25043 7.9185C8.25079 7.76594 8.25058 7.6134 8.2502 7.46085C8.24997 7.34306 8.25004 7.22527 8.25021 7.10748C8.25025 7.05125 8.2502 6.99501 8.25005 6.93877C8.24989 6.86005 8.25014 6.78135 8.25049 6.70263C8.25036 6.67965 8.25023 6.65668 8.2501 6.63301C8.25225 6.37163 8.32078 6.1648 8.48128 5.96879C8.72644 5.71507 9.07274 5.68973 9.36648 5.85289Z",
808
+ fill: "white"
809
+ }
810
+ ),
811
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
812
+ "path",
813
+ {
814
+ d: "M9.34541 10.8369C9.52938 10.9471 9.67125 11.1068 9.73271 11.3148C9.77656 11.529 9.73613 11.7317 9.62145 11.916C9.49889 12.0867 9.3528 12.1846 9.14957 12.2412C8.92053 12.2704 8.73922 12.2283 8.55045 12.0972C8.38043 11.959 8.27865 11.7781 8.25072 11.5592C8.24266 11.3506 8.30179 11.162 8.43381 10.9998C8.68322 10.7451 9.02878 10.6749 9.34541 10.8369Z",
815
+ fill: "white"
816
+ }
817
+ )
818
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
819
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
820
+ "path",
821
+ {
822
+ d: "M5.03711 3.84082C6.60875 2.5881 8.77805 2.2038 10.7188 2.72754L11.1035 2.84473L11.1064 2.8457C11.125 2.85187 11.144 2.85694 11.1631 2.86328V2.86426C11.9606 3.13233 12.6739 3.57547 13.3125 4.14258L13.582 4.39258L13.585 4.39551L13.666 4.47363C13.7385 4.54442 13.8078 4.61844 13.876 4.69629L14.082 4.94629L14.0869 4.95215L14.1562 5.03711C14.5346 5.51326 14.8361 6.06221 15.0586 6.6416L15.1494 6.89258V6.89355L15.1738 6.96387C15.5931 8.21222 15.6047 9.58552 15.2295 10.8506L15.1494 11.1025L15.1484 11.1045C15.1368 11.1391 15.1363 11.1401 15.125 11.1738C14.9596 11.6581 14.7354 12.1232 14.4541 12.542L14.3301 12.7178L14.3291 12.7197C14.3181 12.7348 14.3072 12.7501 14.2959 12.7656C13.9281 13.2659 13.5205 13.7197 13.0518 14.082L13.3457 14.4629L13.0508 14.0811L13.042 14.0889L12.958 14.1572C12.4859 14.5367 11.9342 14.8378 11.3535 15.0605L11.1025 15.1514H11.1016C11.0793 15.159 11.0571 15.1669 11.0342 15.1748C9.51234 15.6873 7.84224 15.5817 6.36426 14.9443L6.07129 14.8096C5.3482 14.4439 4.67072 13.9288 4.1377 13.3203L3.91797 13.0527L3.91016 13.0439L3.84277 12.959H3.8418C2.81057 11.6744 2.36571 9.93549 2.53516 8.28223C2.64545 7.33424 2.95228 6.41319 3.44727 5.60938L3.6709 5.27148L3.67285 5.26953C3.6858 5.2512 3.69858 5.23275 3.71191 5.21387L3.71094 5.21289C3.85636 5.00834 4.01615 4.81758 4.18945 4.62891L4.36816 4.44141L4.37012 4.43848C4.39734 4.41013 4.42493 4.38187 4.45215 4.35352C4.52879 4.27498 4.60794 4.19996 4.69043 4.12695L4.94922 3.91211L4.95605 3.90625C4.98272 3.88459 5.00872 3.86211 5.03613 3.83984L5.03711 3.84082Z",
823
+ stroke: "currentColor"
824
+ }
825
+ ),
826
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
827
+ "path",
828
+ {
829
+ d: "M9.36648 5.85289C9.53634 5.9647 9.6533 6.12598 9.71812 6.32867C9.73452 6.40467 9.74201 6.47516 9.74238 6.55312C9.74254 6.57462 9.74269 6.59612 9.74284 6.61826C9.7429 6.64157 9.74296 6.66489 9.74302 6.68891C9.74315 6.71368 9.74329 6.73845 9.74344 6.76397C9.74385 6.84591 9.7441 6.92785 9.74431 7.00979C9.7444 7.03785 9.74448 7.06592 9.74457 7.09484C9.74497 7.22817 9.74528 7.3615 9.74545 7.49483C9.74568 7.66315 9.74639 7.83146 9.74732 7.99978C9.74787 8.11787 9.74805 8.23596 9.74812 8.35405C9.74823 8.41042 9.74847 8.46679 9.74886 8.52316C9.75351 9.23268 9.75351 9.23268 9.54833 9.48966C9.39246 9.65505 9.20768 9.73677 8.98973 9.75C8.78199 9.74035 8.59485 9.64627 8.44906 9.48814C8.28258 9.27909 8.24899 9.03597 8.25049 8.7678C8.25038 8.7429 8.25027 8.718 8.25015 8.69234C8.24987 8.61081 8.25006 8.5293 8.25027 8.44777C8.25023 8.39068 8.25017 8.33358 8.25009 8.27649C8.24999 8.15716 8.25013 8.03783 8.25043 7.9185C8.25079 7.76594 8.25058 7.6134 8.2502 7.46085C8.24997 7.34306 8.25004 7.22527 8.25021 7.10748C8.25025 7.05125 8.2502 6.99501 8.25005 6.93877C8.24989 6.86005 8.25014 6.78135 8.25049 6.70263C8.25036 6.67965 8.25023 6.65668 8.2501 6.63301C8.25225 6.37163 8.32078 6.1648 8.48128 5.96879C8.72644 5.71507 9.07274 5.68973 9.36648 5.85289Z",
830
+ fill: "currentColor"
831
+ }
832
+ ),
833
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
834
+ "path",
835
+ {
836
+ d: "M9.34541 10.8369C9.52938 10.9471 9.67125 11.1068 9.73271 11.3148C9.77656 11.529 9.73613 11.7317 9.62145 11.916C9.49889 12.0867 9.3528 12.1846 9.14957 12.2412C8.92053 12.2704 8.73922 12.2283 8.55045 12.0972C8.38043 11.959 8.27865 11.7781 8.25072 11.5592C8.24266 11.3506 8.30179 11.162 8.43381 10.9998C8.68322 10.7451 9.02878 10.6749 9.34541 10.8369Z",
837
+ fill: "currentColor"
838
+ }
839
+ )
840
+ ] })
841
+ }
842
+ );
843
+ },
844
+ close: ({ className }) => {
845
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
846
+ "svg",
847
+ {
852
848
  xmlns: "http://www.w3.org/2000/svg",
849
+ width: "27",
850
+ height: "27",
851
+ viewBox: "0 0 27 27",
852
+ fill: "none",
853
853
  className,
854
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M12 4.5V19.5M19.5 12H4.5", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round" })
854
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
855
+ "path",
856
+ {
857
+ fillRule: "evenodd",
858
+ clipRule: "evenodd",
859
+ d: "M6.24339 6.2645C6.39943 6.10887 6.61095 6.02146 6.83149 6.02146C7.05203 6.02146 7.26355 6.10887 7.41959 6.2645L13.4893 12.3255L19.5589 6.2645C19.6351 6.18285 19.727 6.11736 19.8291 6.07194C19.9312 6.02652 20.0414 6.0021 20.1531 6.00013C20.2648 5.99816 20.3758 6.01869 20.4795 6.06048C20.5831 6.10228 20.6772 6.16449 20.7562 6.2434C20.8353 6.32232 20.8976 6.41632 20.9394 6.51979C20.9813 6.62327 21.0018 6.73411 20.9999 6.84569C20.9979 6.95727 20.9734 7.06732 20.928 7.16926C20.8825 7.27119 20.8169 7.36294 20.7351 7.43902L14.6655 13.5L20.7351 19.561C20.8169 19.6371 20.8825 19.7288 20.928 19.8307C20.9734 19.9327 20.9979 20.0427 20.9999 20.1543C21.0018 20.2659 20.9813 20.3767 20.9394 20.4802C20.8976 20.5837 20.8353 20.6777 20.7562 20.7566C20.6772 20.8355 20.5831 20.8977 20.4795 20.9395C20.3758 20.9813 20.2648 21.0018 20.1531 20.9999C20.0414 20.9979 19.9312 20.9735 19.8291 20.9281C19.727 20.8826 19.6351 20.8172 19.5589 20.7355L13.4893 14.6745L7.41959 20.7355C7.26183 20.8823 7.05317 20.9622 6.83757 20.9584C6.62196 20.9546 6.41626 20.8674 6.26378 20.7151C6.1113 20.5629 6.02396 20.3575 6.02016 20.1422C6.01635 19.9269 6.09638 19.7185 6.24339 19.561L12.313 13.5L6.24339 7.43902C6.08754 7.2832 6 7.07198 6 6.85176C6 6.63154 6.08754 6.42032 6.24339 6.2645Z",
860
+ fill: "currentColor"
861
+ }
862
+ )
855
863
  }
856
864
  );
857
865
  },
858
- close: ({ className, fill }) => {
866
+ // ----------------------------------- old ---------------------------------
867
+ // ** Status **
868
+ plus: ({ className, fill }) => {
859
869
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
860
870
  "svg",
861
871
  {
@@ -865,7 +875,7 @@ var template = {
865
875
  fill: "none",
866
876
  xmlns: "http://www.w3.org/2000/svg",
867
877
  className,
868
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M6 18L18 6M6 6L18 18", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round" })
878
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M12 4.5V19.5M19.5 12H4.5", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round" })
869
879
  }
870
880
  );
871
881
  },
@@ -4305,300 +4315,371 @@ var Icon = ({ name, size = "md", fill = false, className, onClick, ...props }) =
4305
4315
  };
4306
4316
  var Icon_default = Icon;
4307
4317
 
4308
- // src/components/select/option.tsx
4309
- var import_jsx_runtime3 = require("react/jsx-runtime");
4310
- var Option = (props) => {
4311
- const { base, option, icon } = optionStyle(props);
4312
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
4313
- "div",
4314
- {
4315
- title: props.option.value,
4316
- className: base(),
4317
- onClick: () => props.onClick(props.option),
4318
- ref: (node) => {
4319
- props.isSelected && (node == null ? void 0 : node.scrollIntoView());
4320
- },
4321
- children: [
4322
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: option(), children: props.children }),
4323
- props.isSelected && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: icon(), children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Icon_default, { name: "check", size: props.size }) })
4324
- ]
4318
+ // src/utils/clsx.ts
4319
+ function clsx(...args) {
4320
+ var i = 0, tmp, x, str = "";
4321
+ while (i < args.length) {
4322
+ if (tmp = args[i++]) {
4323
+ if (x = toVal(tmp)) {
4324
+ str && (str += " ");
4325
+ str += x;
4326
+ }
4325
4327
  }
4326
- );
4327
- };
4328
- var option_default = Option;
4329
- var optionStyle = tv({
4330
- slots: {
4331
- base: ["w-full", "flex", "items-center", "justify-between", , "overflow-hidden"],
4332
- option: ["text-ellipsis overflow-hidden "],
4333
- icon: ""
4334
- },
4335
- variants: {
4336
- variant: {
4337
- solid: {},
4338
- normal: {},
4339
- line: {}
4340
- },
4341
- color: {
4342
- primary: {
4343
- base: ["border-primary-main", "hover:bg-primary-soft", "hover:text-primary-main"],
4344
- icon: "text-primary-main"
4345
- },
4346
- secondary: {
4347
- base: ["border-secondary-main", "hover:bg-secondary-soft", "hover:text-secondary-main"],
4348
- icon: "text-secondary-main"
4328
+ }
4329
+ return str;
4330
+ }
4331
+ function toVal(mix) {
4332
+ var k, y, str = "";
4333
+ if (typeof mix === "string" || typeof mix === "number") {
4334
+ str += mix;
4335
+ } else if (typeof mix === "object") {
4336
+ if (Array.isArray(mix)) {
4337
+ var len = mix.length;
4338
+ for (k = 0; k < len; k++) {
4339
+ if (mix[k]) {
4340
+ if (y = toVal(mix[k])) {
4341
+ str && (str += " ");
4342
+ str += y;
4343
+ }
4344
+ }
4349
4345
  }
4350
- },
4351
- size: {
4352
- sm: {
4353
- base: "text-sm px-[6px] py-[4.5px]"
4354
- },
4355
- md: {
4356
- base: "text-md px-[8px] py-[6.5px]"
4357
- },
4358
- lg: {
4359
- base: "text-lg px-[10px] py-[8px]"
4360
- },
4361
- xl: {
4362
- base: "text-xl px-[10px] py-[8px]"
4346
+ } else {
4347
+ for (y in mix) {
4348
+ if (mix[y]) {
4349
+ str && (str += " ");
4350
+ str += y;
4351
+ }
4363
4352
  }
4364
4353
  }
4365
- },
4366
- defaultVariants: {
4367
- variant: "normal",
4368
- color: "primary",
4369
- size: "md"
4370
4354
  }
4371
- });
4355
+ return str;
4356
+ }
4372
4357
 
4373
4358
  // src/components/select/select.tsx
4374
- var import_jsx_runtime4 = require("react/jsx-runtime");
4375
- var Select = (0, import_react2.forwardRef)((originalProps, ref) => {
4359
+ var import_jsx_runtime3 = require("react/jsx-runtime");
4360
+ var Select = (0, import_react.forwardRef)((originalProps, ref) => {
4361
+ var _a;
4376
4362
  const [props, variantProps] = mapPropsVariants(originalProps, select.variantKeys);
4377
- const { classNames, options, defaultOption, onChange, ...inputProps } = props;
4378
- const slots = (0, import_react2.useMemo)(() => select({ ...variantProps }), [variantProps]);
4379
4363
  const {
4380
- targetRect,
4381
- selectedOption,
4382
- optionWrapperHeight,
4383
- selectWrapperRef,
4384
- optionWrapperRef,
4385
- handleToggleSelect,
4386
- handleChangeOption,
4387
- calculatePositionWithScroll
4388
- } = useSelect({
4364
+ label,
4389
4365
  options,
4390
- defaultOption,
4391
- onChange
4392
- });
4366
+ helperText,
4367
+ errorText,
4368
+ classNames,
4369
+ defaultSelectedOptions = [],
4370
+ onChange,
4371
+ multiple,
4372
+ ...inputProps
4373
+ } = props;
4374
+ const slots = (0, import_react.useMemo)(() => select({ ...variantProps }), [variantProps]);
4375
+ const [selectedOptions, setSelectedOptions] = (0, import_react.useState)(defaultSelectedOptions);
4376
+ const [targetRect, setTargetRect] = (0, import_react.useState)(null);
4377
+ const [optionWrapperHeight, setOptionWrapperHeight] = (0, import_react.useState)(0);
4378
+ const [isVisible, setIsVisible] = (0, import_react.useState)(false);
4379
+ const [isOpen, setIsOpen] = (0, import_react.useState)(false);
4380
+ const selectWrapperRef = (0, import_react.useRef)(null);
4381
+ const optionWrapperRef = (0, import_react.useRef)(null);
4382
+ const handleToggleSelect = () => {
4383
+ if (isOpen) {
4384
+ setIsOpen(false);
4385
+ setTimeout(() => setIsVisible(false), 150);
4386
+ } else {
4387
+ if (selectWrapperRef.current) {
4388
+ const rect = selectWrapperRef.current.getBoundingClientRect();
4389
+ setTargetRect(rect);
4390
+ setIsVisible(true);
4391
+ requestAnimationFrame(() => setIsOpen(true));
4392
+ }
4393
+ }
4394
+ };
4395
+ const calculatePositionWithScroll = (rect, height) => {
4396
+ const scrollTop = window.scrollY;
4397
+ const scrollLeft = window.scrollX;
4398
+ const spaceBelow = window.innerHeight - (rect.y + rect.height + 4);
4399
+ const spaceAbove = rect.y - 4;
4400
+ const top = spaceBelow < height && spaceAbove > height ? rect.y - height - 4 : rect.y + rect.height + 4;
4401
+ return {
4402
+ top: top + scrollTop,
4403
+ left: rect.x + scrollLeft
4404
+ };
4405
+ };
4406
+ const handleChangeOption = (option) => {
4407
+ let nextOptions;
4408
+ if (multiple) {
4409
+ const exists = selectedOptions.some((o) => o.key === option.key);
4410
+ nextOptions = exists ? selectedOptions.filter((o) => o.key !== option.key) : [...selectedOptions, option];
4411
+ } else {
4412
+ nextOptions = [option];
4413
+ setIsOpen(false);
4414
+ setTimeout(() => setIsVisible(false), 150);
4415
+ }
4416
+ setSelectedOptions(nextOptions);
4417
+ onChange == null ? void 0 : onChange(nextOptions);
4418
+ };
4419
+ (0, import_react.useEffect)(() => {
4420
+ const handleClickOutside = (e) => {
4421
+ var _a2;
4422
+ if (optionWrapperRef.current && !optionWrapperRef.current.contains(e.target) && !((_a2 = selectWrapperRef.current) == null ? void 0 : _a2.contains(e.target))) {
4423
+ setIsOpen(false);
4424
+ setTimeout(() => setIsVisible(false), 150);
4425
+ }
4426
+ };
4427
+ window.addEventListener("mousedown", handleClickOutside);
4428
+ return () => window.removeEventListener("mousedown", handleClickOutside);
4429
+ }, []);
4430
+ (0, import_react.useEffect)(() => {
4431
+ if (optionWrapperRef.current) {
4432
+ setOptionWrapperHeight(optionWrapperRef.current.getBoundingClientRect().height);
4433
+ }
4434
+ }, [targetRect]);
4393
4435
  const position = targetRect ? calculatePositionWithScroll(targetRect, optionWrapperHeight) : null;
4394
- const getBaseProps = (0, import_react2.useCallback)(
4395
- () => ({
4396
- className: slots.base({ class: classNames == null ? void 0 : classNames.base })
4397
- }),
4398
- [slots, classNames]
4399
- );
4400
- const getLabelProps = (0, import_react2.useCallback)(
4401
- () => ({
4402
- className: slots.label({ class: classNames == null ? void 0 : classNames.label })
4403
- }),
4404
- [slots, classNames]
4405
- );
4406
- const getSelectWrapperProps = (0, import_react2.useCallback)(
4407
- () => ({
4408
- className: slots.selectWrapper({ class: classNames == null ? void 0 : classNames.selectWrapper }),
4409
- ref: selectWrapperRef,
4410
- onClick: handleToggleSelect
4411
- }),
4412
- [slots, classNames]
4413
- );
4414
- const getSelectProps = (0, import_react2.useCallback)(
4415
- () => ({
4416
- ...inputProps,
4417
- ref,
4418
- className: slots.select({ class: classNames == null ? void 0 : classNames.select }),
4419
- value: (selectedOption == null ? void 0 : selectedOption.value) || "",
4420
- readOnly: true,
4421
- size: 0
4422
- }),
4423
- [slots, classNames, inputProps, selectedOption, ref]
4424
- );
4425
- const getOptionsWrapperProps = (0, import_react2.useCallback)(
4426
- () => ({
4427
- className: slots.optionsWrapper({ class: classNames == null ? void 0 : classNames.optionsWrapper }),
4428
- ref: optionWrapperRef
4429
- }),
4430
- [slots, classNames]
4431
- );
4432
- const getErrorMessageProps = (0, import_react2.useCallback)(
4433
- () => ({
4434
- className: slots.errorMessage({ class: classNames == null ? void 0 : classNames.errorMessage })
4435
- }),
4436
- [slots, classNames]
4437
- );
4438
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
4439
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { ...getBaseProps(), children: [
4440
- props.label && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("label", { ...getLabelProps(), children: props.label }),
4441
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { "data-expanded": !!targetRect, ...getSelectWrapperProps(), children: [
4442
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("input", { ...getSelectProps() }),
4443
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Icon_default, { name: !!targetRect ? "arrow-triangle-up" : "arrow-triangle-down", size: originalProps.size, fill: true })
4444
- ] }),
4445
- props.errorMessage && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { ...getErrorMessageProps(), children: props.errorMessage })
4446
- ] }),
4447
- targetRect && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_jsx_runtime4.Fragment, { children: (0, import_react_dom.createPortal)(
4448
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
4436
+ const displayValue = multiple ? selectedOptions.map((opt) => opt.value).join(", ") : ((_a = selectedOptions[0]) == null ? void 0 : _a.value) || "";
4437
+ const Option = ({
4438
+ option,
4439
+ isSelected,
4440
+ onClick
4441
+ }) => {
4442
+ const slot = select({ ...variantProps, isSelected });
4443
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { title: option.value, onClick, className: clsx(slot.option({ class: classNames == null ? void 0 : classNames.option })), children: [
4444
+ option.value,
4445
+ isSelected && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Icon_default, { name: "check", size: originalProps.size })
4446
+ ] });
4447
+ };
4448
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_jsx_runtime3.Fragment, { children: [
4449
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
4450
+ "div",
4451
+ {
4452
+ className: clsx(
4453
+ slots.base({ class: classNames == null ? void 0 : classNames.base }),
4454
+ variantProps.direction === "horizon" ? slots.horizon({ class: classNames == null ? void 0 : classNames.horizon }) : slots.vertical({ class: classNames == null ? void 0 : classNames.vertical })
4455
+ ),
4456
+ children: [
4457
+ label && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("label", { className: slots.label({ class: classNames == null ? void 0 : classNames.label }), children: label }),
4458
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: slots.wrapper({ class: classNames == null ? void 0 : classNames.wrapper }), children: [
4459
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
4460
+ "div",
4461
+ {
4462
+ "data-expanded": isOpen,
4463
+ className: clsx(
4464
+ slots.selectWrapper({ class: classNames == null ? void 0 : classNames.selectWrapper }),
4465
+ inputProps.readOnly ? slots.readonly({ class: classNames == null ? void 0 : classNames.readonly }) : ""
4466
+ ),
4467
+ ref: selectWrapperRef,
4468
+ onClick: handleToggleSelect,
4469
+ children: [
4470
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
4471
+ "input",
4472
+ {
4473
+ ...inputProps,
4474
+ ref,
4475
+ className: clsx(
4476
+ slots.select({ class: classNames == null ? void 0 : classNames.select }),
4477
+ inputProps.readOnly ? "!text-body-foreground placeholder:text-body-foreground" : ""
4478
+ ),
4479
+ value: displayValue,
4480
+ readOnly: true,
4481
+ size: 0
4482
+ }
4483
+ ),
4484
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
4485
+ Icon_default,
4486
+ {
4487
+ name: "brace-up",
4488
+ size: originalProps.size,
4489
+ className: `transition-transform duration-200 ${isOpen ? "rotate-0" : "rotate-180"}`
4490
+ }
4491
+ )
4492
+ ]
4493
+ }
4494
+ ),
4495
+ helperText && !errorText && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { className: slots.helperText({ class: classNames == null ? void 0 : classNames.helperText }), children: helperText }),
4496
+ errorText && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { className: clsx("error", slots.errorText({ class: classNames == null ? void 0 : classNames.errorText })), children: errorText })
4497
+ ] })
4498
+ ]
4499
+ }
4500
+ ),
4501
+ isVisible && (0, import_react_dom.createPortal)(
4502
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
4449
4503
  "div",
4450
4504
  {
4451
- ...getOptionsWrapperProps(),
4505
+ ref: optionWrapperRef,
4506
+ className: slots.optionsWrapper({ class: classNames == null ? void 0 : classNames.optionsWrapper }),
4452
4507
  style: {
4453
4508
  position: "absolute",
4454
4509
  top: position == null ? void 0 : position.top,
4455
4510
  left: position == null ? void 0 : position.left,
4456
- width: targetRect.width
4511
+ width: targetRect == null ? void 0 : targetRect.width,
4512
+ zIndex: 1e3,
4513
+ opacity: isOpen ? 1 : 0,
4514
+ transform: isOpen ? "translateY(0)" : "translateY(-0.25rem)",
4515
+ transition: "opacity 150ms ease-out, transform 150ms ease-out"
4457
4516
  },
4458
- children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
4459
- option_default,
4460
- {
4461
- variant: originalProps.variant,
4462
- size: originalProps.size,
4463
- color: originalProps.color,
4464
- option,
4465
- isSelected: (selectedOption == null ? void 0 : selectedOption.key) === option.key,
4466
- onClick: () => handleChangeOption(option),
4467
- children: option.value
4468
- },
4469
- option.key
4470
- ))
4517
+ children: options.map((option) => {
4518
+ const isSelected = selectedOptions.some((o) => o.key === option.key);
4519
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
4520
+ Option,
4521
+ {
4522
+ option,
4523
+ isSelected,
4524
+ onClick: () => handleChangeOption(option)
4525
+ },
4526
+ option.key
4527
+ );
4528
+ })
4471
4529
  }
4472
4530
  ),
4473
4531
  document.body
4474
- ) })
4532
+ )
4475
4533
  ] });
4476
4534
  });
4477
4535
  Select.displayName = "Select";
4478
4536
  var select_default = Select;
4479
4537
  var select = tv({
4480
4538
  slots: {
4481
- base: ["group/select", "flex flex-col"],
4482
- label: ["flex", "items-center"],
4539
+ base: ["group/select", "flex"],
4540
+ vertical: ["flex-col"],
4541
+ horizon: ["flex-row", "gap-0"],
4542
+ label: ["flex", "items-center", "font-bold", "text-body-foreground", "min-w-[80px]"],
4543
+ wrapper: ["flex", "flex-col"],
4483
4544
  selectWrapper: [
4484
4545
  "flex",
4485
4546
  "items-center",
4486
- "bg-transparent",
4487
- "border-neutral-main",
4488
- "transition duration-200",
4489
- "group-has-[p]/select:border-danger-main",
4490
- "group-has-[p]/select:text-danger-main",
4491
- "group-has-[p]/select:bg-danger-soft"
4547
+ "justify-between",
4548
+ "border",
4549
+ "cursor-pointer",
4550
+ "text-neutral-main",
4551
+ "hover:bg-trans-soft",
4552
+ "group-has-[p.error]/select:border-danger-main",
4553
+ "group-has-[p.error]/select:bg-danger-soft",
4554
+ "group-has-[p.error]/select:text-danger-main",
4555
+ "group-has-[p.error]/select:hover:bg-danger-soft"
4492
4556
  ],
4493
4557
  select: [
4494
- "w-full",
4495
4558
  "bg-transparent",
4496
- "text-foreground",
4497
- "cursor-inherit",
4498
- "cursor-pointer",
4559
+ "w-full",
4560
+ "outline-none",
4499
4561
  "placeholder:text-neutral-main",
4500
- "group-has-[p]/select:text-danger-main",
4501
- "focus-visible:outline-none"
4562
+ "text-neutral-dark",
4563
+ "group-has-[p.error]/select:text-danger-main",
4564
+ "group-has-[p.error]/select:placeholder:text-danger-main"
4502
4565
  ],
4503
- optionsWrapper: ["w-[240px]", "border", "bg-background", "cursor-pointer", "overflow-y-auto"],
4504
- errorMessage: ["text-danger-main"]
4566
+ optionsWrapper: ["border", "rounded", "bg-white", "shadow", "overflow-auto"],
4567
+ option: ["flex", "justify-between", "items-center", "cursor-pointer"],
4568
+ helperText: ["text-neutral-main"],
4569
+ errorText: ["text-danger-main"],
4570
+ readonly: ["pointer-events-none", "!bg-trans-soft"]
4505
4571
  },
4506
4572
  variants: {
4507
- variant: {
4508
- solid: {
4509
- selectWrapper: "bg-trans-soft hover:bg-trans-light data-[expanded=true]:bg-trans-light group-has-[p]/select:bg-danger-soft"
4510
- },
4511
- normal: {
4512
- selectWrapper: "border hover:bg-trans-soft data-[expanded=true]:bg-trans-soft"
4513
- },
4514
- line: {
4515
- selectWrapper: "border-b !rounded-none hover:bg-trans-soft data-[expanded=true]:bg-trans-soft",
4516
- optionsWrapper: "!rounded-none"
4517
- }
4518
- },
4519
4573
  color: {
4520
4574
  primary: {
4521
- selectWrapper: "data-[expanded=true]:border-primary-main text-primary-main",
4522
- optionsWrapper: "border-primary-main",
4523
- select: "data-[expanded=true]:text-primary-main"
4575
+ selectWrapper: ["hover:text-primary-main"],
4576
+ option: ["hover:bg-primary-soft", "hover:text-primary-main"]
4524
4577
  },
4525
4578
  secondary: {
4526
- selectWrapper: "data-[expanded=true]:border-secondary-main text-secondary-main",
4527
- optionsWrapper: "border-secondary-main",
4528
- select: "data-[expanded=true]:text-secondary-main"
4579
+ selectWrapper: ["hover:text-secondary-main"],
4580
+ select: ["text-secondary-main"],
4581
+ option: ["hover:bg-secondary-soft", "hover:text-secondary-main"]
4529
4582
  }
4530
4583
  },
4531
4584
  size: {
4532
4585
  sm: {
4533
- base: "text-sm gap-[6px]",
4534
- selectWrapper: "w-[240px] h-[24px] px-[6px] py-[4.5px] gap-[6px] rounded-sm",
4535
- optionsWrapper: "max-h-[96px] rounded-sm",
4536
- errorMessage: "text-sm"
4586
+ base: ["text-sm", "gap-[4px]"],
4587
+ label: ["text-sm"],
4588
+ wrapper: ["gap-[4px]"],
4589
+ selectWrapper: ["w-[240px]", "h-[24px]", "rounded-sm", "px-[4px]"],
4590
+ select: ["text-sm"],
4591
+ option: ["px-[4px]", "py-[3px]", "text-sm"],
4592
+ helperText: ["text-sm"],
4593
+ errorText: ["text-sm"]
4537
4594
  },
4538
4595
  md: {
4539
- base: "text-md gap-[8px]",
4540
- selectWrapper: "w-[240px] h-[30px] px-[8px] py-[6.5px] gap-[8px] rounded-md",
4541
- optionsWrapper: "max-h-[120px] rounded-md",
4542
- errorMessage: "text-md"
4596
+ base: ["text-md", "gap-[6px]", "rounded-md"],
4597
+ label: ["text-md"],
4598
+ wrapper: ["gap-[6px]"],
4599
+ selectWrapper: ["w-[240px]", "h-[32px]", "rounded-md", "px-[6px]"],
4600
+ select: ["text-md"],
4601
+ option: ["px-[6px]", "py-[5.5px]", "text-md"],
4602
+ helperText: ["text-sm"],
4603
+ errorText: ["text-sm"]
4543
4604
  },
4544
4605
  lg: {
4545
- base: "text-lg gap-[10px]",
4546
- selectWrapper: "w-[240px] h-[36px] px-[10px] py-[8px] gap-[10px] rounded-lg",
4547
- optionsWrapper: "max-h-[144px] rounded-lg",
4548
- errorMessage: "text-lg"
4606
+ base: ["text-lg", "gap-[8px]"],
4607
+ label: ["text-lg"],
4608
+ wrapper: ["gap-[8px]"],
4609
+ selectWrapper: ["w-[240px]", "h-[40px]", "rounded-lg", "px-[8px]"],
4610
+ select: ["text-lg"],
4611
+ option: ["px-[8px]", "py-[8px]", "text-lg"],
4612
+ helperText: ["text-md"],
4613
+ errorText: ["text-md"]
4549
4614
  },
4550
4615
  xl: {
4551
- base: "text-lg gap-[10px]",
4552
- selectWrapper: "w-[240px] h-[36px] px-[10px] py-[8px] gap-[10px] rounded-xl",
4553
- optionsWrapper: "max-h-[144px] rounded-xl",
4554
- errorMessage: "text-xl"
4616
+ base: ["text-xl", "gap-[10px]"],
4617
+ label: ["text-xl"],
4618
+ wrapper: ["gap-[10px]"],
4619
+ selectWrapper: ["w-[240px]", "h-[50px]", "rounded-lg", "px-[10px]"],
4620
+ select: ["text-xl"],
4621
+ option: ["px-[10px]", "py-[11.5px]"],
4622
+ helperText: ["text-md"],
4623
+ errorText: ["text-md"]
4555
4624
  }
4556
4625
  },
4557
- radius: {
4558
- default: "",
4559
- none: {
4560
- selectWrapper: "rounded-none",
4561
- optionsWrapper: "rounded-none"
4562
- },
4563
- full: {
4564
- selectWrapper: "rounded-full"
4565
- }
4626
+ direction: {
4627
+ vertical: "",
4628
+ horizon: ""
4566
4629
  },
4567
- fullWidth: {
4630
+ full: {
4568
4631
  true: {
4569
- selectWrapper: "w-full",
4570
- optionsWrapper: "w-full"
4632
+ base: ["w-full"],
4633
+ wrapper: ["w-full"],
4634
+ selectWrapper: ["w-full"]
4571
4635
  }
4572
4636
  },
4573
- isDisabled: {
4637
+ disabled: {
4574
4638
  true: {
4575
- base: "cursor-default",
4576
- selectWrapper: "bg-neutral-soft border-neutral-light text-neutral-light pointer-events-none",
4577
- select: "text-neutral-light focus:text-neutral-light",
4578
- label: "text-neutral-light"
4639
+ base: ["pointer-events-none"],
4640
+ selectWrapper: [
4641
+ "bg-neutral-soft",
4642
+ "border-neutral-light",
4643
+ "group-has-[p.error]/select:text-danger-light",
4644
+ "group-has-[p.error]/select:bg-danger-soft",
4645
+ "group-has-[p.error]/select:border-danger-light"
4646
+ ],
4647
+ select: [
4648
+ "text-neutral-light",
4649
+ "placeholder:text-neutral-light",
4650
+ "group-has-[p.error]/select:text-danger-light",
4651
+ "group-has-[p.error]/select:placeholder:text-danger-light"
4652
+ ],
4653
+ helperText: ["!text-neutral-light"],
4654
+ errorText: ["!text-danger-light"]
4579
4655
  }
4580
4656
  },
4581
- isRequired: {
4582
- true: {
4583
- label: "after:content-['*'] after:text-danger-main after:ml-0.5"
4584
- }
4657
+ isSelected: {
4658
+ true: "",
4659
+ false: ""
4585
4660
  }
4586
4661
  },
4587
- defaultVariants: {
4588
- variant: "solid",
4589
- color: "primary",
4590
- size: "md",
4591
- fullWidth: false,
4592
- isDisabled: false,
4593
- isRequired: false
4594
- },
4595
4662
  compoundVariants: [
4596
4663
  {
4597
- isDisabled: true,
4598
- isRequired: true,
4664
+ color: "primary",
4665
+ isSelected: true,
4666
+ class: {
4667
+ option: "bg-primary-soft text-primary-main"
4668
+ }
4669
+ },
4670
+ {
4671
+ color: "secondary",
4672
+ isSelected: true,
4599
4673
  class: {
4600
- label: "after:text-danger-light"
4674
+ option: "bg-secondary-soft text-secondary-main"
4601
4675
  }
4602
4676
  }
4603
- ]
4677
+ ],
4678
+ defaultVariants: {
4679
+ color: "primary",
4680
+ size: "md",
4681
+ direction: "vertical",
4682
+ disabled: false,
4683
+ readonly: false
4684
+ }
4604
4685
  });