@deepnoid/ui 0.1.29 → 0.1.31

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 (122) hide show
  1. package/.turbo/turbo-build.log +183 -173
  2. package/dist/chunk-62X5AX5B.mjs +297 -0
  3. package/dist/chunk-6PN3DGOE.mjs +77 -0
  4. package/dist/{chunk-EHRFXDSN.mjs → chunk-AIIMJZ7L.mjs} +72 -42
  5. package/dist/{chunk-3KVZDFMV.mjs → chunk-BCMVEGJG.mjs} +3 -3
  6. package/dist/{chunk-QJJKJYNR.mjs → chunk-BFOK4HVC.mjs} +2 -2
  7. package/dist/{chunk-KXA73VTJ.mjs → chunk-CVQM3T2X.mjs} +4 -4
  8. package/dist/{chunk-RCJOJPRS.mjs → chunk-EBRCE7XY.mjs} +40 -30
  9. package/dist/{chunk-III2QUWF.mjs → chunk-G67WUZO3.mjs} +1 -1
  10. package/dist/{chunk-BB7MFKNQ.mjs → chunk-IBI3OVQI.mjs} +1 -1
  11. package/dist/{chunk-LR3SWRB4.mjs → chunk-IC25OKBJ.mjs} +5 -5
  12. package/dist/{chunk-KLUC2BV6.mjs → chunk-IEJRE6LT.mjs} +10 -7
  13. package/dist/{chunk-ECMBAKSJ.mjs → chunk-K7V4VE7R.mjs} +5 -5
  14. package/dist/chunk-LWRK5TPZ.mjs +80 -0
  15. package/dist/chunk-MZ76AA76.mjs +1 -0
  16. package/dist/{chunk-X4F7JYBA.mjs → chunk-NFQMXW4Z.mjs} +36 -14
  17. package/dist/chunk-P7YYNA6L.mjs +67 -0
  18. package/dist/components/backdrop/backdrop.mjs +2 -2
  19. package/dist/components/backdrop/index.mjs +2 -2
  20. package/dist/components/breadcrumb/breadcrumb.mjs +5 -5
  21. package/dist/components/breadcrumb/index.mjs +5 -5
  22. package/dist/components/button/button.mjs +2 -2
  23. package/dist/components/button/icon-button.mjs +2 -2
  24. package/dist/components/button/index.mjs +4 -4
  25. package/dist/components/button/text-button.mjs +2 -2
  26. package/dist/components/checkbox/checkbox.mjs +2 -2
  27. package/dist/components/checkbox/index.mjs +2 -2
  28. package/dist/components/chip/chip.mjs +2 -2
  29. package/dist/components/chip/index.mjs +2 -2
  30. package/dist/components/dateTimePicker/calendar.mjs +2 -2
  31. package/dist/components/dateTimePicker/dateTimePicker.mjs +6 -6
  32. package/dist/components/dateTimePicker/index.mjs +6 -6
  33. package/dist/components/dateTimePicker/timePicker.mjs +4 -4
  34. package/dist/components/fileUpload/fileUpload.js +62 -39
  35. package/dist/components/fileUpload/fileUpload.mjs +6 -6
  36. package/dist/components/fileUpload/index.js +62 -39
  37. package/dist/components/fileUpload/index.mjs +6 -6
  38. package/dist/components/input/index.js +62 -39
  39. package/dist/components/input/index.mjs +2 -2
  40. package/dist/components/input/input.d.mts +21 -14
  41. package/dist/components/input/input.d.ts +21 -14
  42. package/dist/components/input/input.js +62 -39
  43. package/dist/components/input/input.mjs +2 -2
  44. package/dist/components/list/index.mjs +3 -3
  45. package/dist/components/list/list.mjs +2 -2
  46. package/dist/components/list/listItem.mjs +2 -2
  47. package/dist/components/modal/index.mjs +6 -6
  48. package/dist/components/modal/modal.mjs +6 -6
  49. package/dist/components/pagination/index.js +62 -39
  50. package/dist/components/pagination/index.mjs +3 -3
  51. package/dist/components/pagination/pagination.js +62 -39
  52. package/dist/components/pagination/pagination.mjs +3 -3
  53. package/dist/components/radio/index.mjs +2 -2
  54. package/dist/components/radio/radio.mjs +2 -2
  55. package/dist/components/select/index.js +7 -4
  56. package/dist/components/select/index.mjs +2 -2
  57. package/dist/components/select/select.d.mts +9 -0
  58. package/dist/components/select/select.d.ts +9 -0
  59. package/dist/components/select/select.js +7 -4
  60. package/dist/components/select/select.mjs +2 -2
  61. package/dist/components/skeleton/index.d.mts +2 -0
  62. package/dist/components/skeleton/index.d.ts +2 -0
  63. package/dist/components/skeleton/index.js +141 -0
  64. package/dist/components/skeleton/index.mjs +10 -0
  65. package/dist/components/skeleton/skeleton.d.mts +14 -0
  66. package/dist/components/skeleton/skeleton.d.ts +14 -0
  67. package/dist/components/skeleton/skeleton.js +135 -0
  68. package/dist/components/skeleton/skeleton.mjs +9 -0
  69. package/dist/components/table/index.js +748 -646
  70. package/dist/components/table/index.mjs +11 -9
  71. package/dist/components/table/table-body.d.mts +6 -4
  72. package/dist/components/table/table-body.d.ts +6 -4
  73. package/dist/components/table/table-body.js +115 -63
  74. package/dist/components/table/table-body.mjs +5 -3
  75. package/dist/components/table/table-head.d.mts +3 -1
  76. package/dist/components/table/table-head.d.ts +3 -1
  77. package/dist/components/table/table-head.js +107 -21
  78. package/dist/components/table/table-head.mjs +5 -3
  79. package/dist/components/table/table.d.mts +3 -1
  80. package/dist/components/table/table.d.ts +3 -1
  81. package/dist/components/table/table.js +739 -637
  82. package/dist/components/table/table.mjs +9 -7
  83. package/dist/components/tabs/index.mjs +2 -2
  84. package/dist/components/tabs/tabs.mjs +2 -2
  85. package/dist/components/textarea/index.js +255 -138
  86. package/dist/components/textarea/index.mjs +2 -1
  87. package/dist/components/textarea/textarea.d.mts +157 -150
  88. package/dist/components/textarea/textarea.d.ts +157 -150
  89. package/dist/components/textarea/textarea.js +255 -138
  90. package/dist/components/textarea/textarea.mjs +2 -1
  91. package/dist/components/toast/index.mjs +3 -3
  92. package/dist/components/toast/toast.mjs +2 -2
  93. package/dist/components/toast/use-toast.mjs +3 -3
  94. package/dist/components/tooltip/index.mjs +2 -2
  95. package/dist/components/tooltip/tooltip.mjs +2 -2
  96. package/dist/components/tree/index.js +33 -11
  97. package/dist/components/tree/index.mjs +2 -2
  98. package/dist/components/tree/tree.d.mts +10 -8
  99. package/dist/components/tree/tree.d.ts +10 -8
  100. package/dist/components/tree/tree.js +33 -11
  101. package/dist/components/tree/tree.mjs +2 -2
  102. package/dist/index.d.mts +1 -0
  103. package/dist/index.d.ts +1 -0
  104. package/dist/index.js +799 -593
  105. package/dist/index.mjs +52 -47
  106. package/package.json +1 -1
  107. package/dist/chunk-26MNALVL.mjs +0 -47
  108. package/dist/chunk-A5KQHWS3.mjs +0 -94
  109. package/dist/chunk-BKE6QF6W.mjs +0 -209
  110. package/dist/{chunk-SSMMWMQC.mjs → chunk-2YMAKIZ6.mjs} +3 -3
  111. package/dist/{chunk-6K3E5BVO.mjs → chunk-7TAGGLNY.mjs} +3 -3
  112. package/dist/{chunk-X6D7C7QZ.mjs → chunk-A7RU3FU5.mjs} +3 -3
  113. package/dist/{chunk-YLRYHUTW.mjs → chunk-D6QI3DJG.mjs} +3 -3
  114. package/dist/{chunk-UFVQPPPW.mjs → chunk-HIVPDIEP.mjs} +3 -3
  115. package/dist/{chunk-P5QCU457.mjs → chunk-LL6F3WDX.mjs} +3 -3
  116. package/dist/{chunk-7W2ZI2DD.mjs → chunk-MEY4IL7D.mjs} +3 -3
  117. package/dist/{chunk-33LANVZV.mjs → chunk-QIRL6HY6.mjs} +3 -3
  118. package/dist/{chunk-W45H2ZMW.mjs → chunk-RT3S3VVJ.mjs} +3 -3
  119. package/dist/{chunk-7J3KVOTS.mjs → chunk-UB4YBFOT.mjs} +3 -3
  120. package/dist/{chunk-2PKM7SLZ.mjs → chunk-WFMFC7R6.mjs} +3 -3
  121. package/dist/{chunk-Y6XQTWB5.mjs → chunk-WLNLVX7Q.mjs} +3 -3
  122. package/dist/{chunk-IL5ENWCR.mjs → chunk-Z2537DF6.mjs} +3 -3
package/dist/index.js CHANGED
@@ -122,6 +122,7 @@ __export(index_exports, {
122
122
  Radio: () => radio_default,
123
123
  ScrollArea: () => scrollArea_default,
124
124
  Select: () => select_default,
125
+ Skeleton: () => skeleton_default,
125
126
  Switch: () => switch_default,
126
127
  Table: () => table_default,
127
128
  Tabs: () => tabs_default,
@@ -5868,7 +5869,7 @@ var breadcrumbStyle = tv({
5868
5869
  });
5869
5870
 
5870
5871
  // src/components/input/input.tsx
5871
- var import_react9 = __toESM(require("react"));
5872
+ var import_react9 = require("react");
5872
5873
  var import_jsx_runtime11 = require("react/jsx-runtime");
5873
5874
  var Input = (0, import_react9.forwardRef)((originalProps, ref) => {
5874
5875
  const [props, variantProps] = mapPropsVariants(originalProps, inputStyle.variantKeys);
@@ -5877,19 +5878,22 @@ var Input = (0, import_react9.forwardRef)((originalProps, ref) => {
5877
5878
  const slots = (0, import_react9.useMemo)(() => inputStyle({ ...variantProps }), [variantProps]);
5878
5879
  const getContentProps = (0, import_react9.useCallback)(
5879
5880
  () => ({
5880
- className: slots.content({ class: classNames == null ? void 0 : classNames.content }),
5881
+ className: clsx(
5882
+ slots.content({ class: classNames == null ? void 0 : classNames.content }),
5883
+ inputProps.readOnly ? slots.readonly({ class: classNames == null ? void 0 : classNames.readonly }) : ""
5884
+ ),
5881
5885
  size: originalProps.size
5882
5886
  }),
5883
5887
  [slots, classNames, originalProps.size]
5884
5888
  );
5885
5889
  const renderStartContent = () => {
5886
- if (import_react9.default.isValidElement(startContent)) {
5890
+ if ((0, import_react9.isValidElement)(startContent)) {
5887
5891
  const existingProps = startContent.props;
5888
5892
  const mergedProps = {
5889
5893
  ...getContentProps(),
5890
5894
  className: `${getContentProps().className || ""} ${existingProps.className || ""}`.trim()
5891
5895
  };
5892
- return import_react9.default.cloneElement(startContent, mergedProps);
5896
+ return (0, import_react9.cloneElement)(startContent, mergedProps);
5893
5897
  } else {
5894
5898
  const contentProps = getContentProps();
5895
5899
  return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { ...contentProps, children: startContent });
@@ -5908,13 +5912,13 @@ var Input = (0, import_react9.forwardRef)((originalProps, ref) => {
5908
5912
  }
5909
5913
  );
5910
5914
  const renderContentWithIcon = () => {
5911
- if (import_react9.default.isValidElement(endContent)) {
5915
+ if ((0, import_react9.isValidElement)(endContent)) {
5912
5916
  const existingProps = endContent.props;
5913
5917
  const mergedProps = {
5914
5918
  ...getContentProps(),
5915
5919
  className: `${getContentProps().className || ""} ${existingProps.className || ""}`.trim()
5916
5920
  };
5917
- return import_react9.default.cloneElement(endContent, mergedProps);
5921
+ return (0, import_react9.cloneElement)(endContent, mergedProps);
5918
5922
  } else if (errorMessage) {
5919
5923
  const iconProps = { ...getContentProps(), className: getContentProps().className };
5920
5924
  return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { ...iconProps, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Icon_default, { name: "exclamation-circle", fill: true, size: originalProps.size }) });
@@ -5949,20 +5953,17 @@ var Input = (0, import_react9.forwardRef)((originalProps, ref) => {
5949
5953
  {
5950
5954
  className: clsx(
5951
5955
  slots.inputWrapper({ class: classNames == null ? void 0 : classNames.inputWrapper }),
5952
- inputProps.readOnly ? slots.readonly({ class: classNames == null ? void 0 : classNames.readonly }) : ""
5956
+ inputProps.readOnly ? slots.readonlyWrapper({ class: classNames == null ? void 0 : classNames.readonlyWrapper }) : ""
5953
5957
  ),
5954
5958
  children: [
5955
5959
  startContent && renderStartContent(),
5956
5960
  /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
5957
5961
  "input",
5958
5962
  {
5959
- ...inputProps,
5960
5963
  ref: ref || inputRef,
5964
+ ...inputProps,
5961
5965
  readOnly: props.readOnly,
5962
- className: clsx(
5963
- slots.input({ class: classNames == null ? void 0 : classNames.input }),
5964
- inputProps.readOnly ? "!text-body-foreground placeholder:!text-body-foreground" : ""
5965
- ),
5966
+ className: clsx(slots.input({ class: classNames == null ? void 0 : classNames.input })),
5966
5967
  size: 0
5967
5968
  }
5968
5969
  ),
@@ -5970,7 +5971,16 @@ var Input = (0, import_react9.forwardRef)((originalProps, ref) => {
5970
5971
  ]
5971
5972
  }
5972
5973
  ),
5973
- helperMessage && !errorMessage && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("p", { className: slots.helperMessage({ class: classNames == null ? void 0 : classNames.helperMessage }), children: helperMessage }),
5974
+ helperMessage && !errorMessage && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
5975
+ "p",
5976
+ {
5977
+ className: clsx(
5978
+ slots.helperMessage({ class: classNames == null ? void 0 : classNames.helperMessage }),
5979
+ inputProps.readOnly ? slots.readonly({ class: classNames == null ? void 0 : classNames.readonly }) : ""
5980
+ ),
5981
+ children: helperMessage
5982
+ }
5983
+ ),
5974
5984
  errorMessage && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("p", { className: clsx("error", slots.errorMessage({ class: classNames == null ? void 0 : classNames.errorMessage })), children: errorMessage })
5975
5985
  ] })
5976
5986
  ]
@@ -5982,12 +5992,12 @@ var input_default = Input;
5982
5992
  var inputStyle = tv(
5983
5993
  {
5984
5994
  slots: {
5985
- base: ["group/input", "flex select-none"],
5995
+ base: ["group/input", "flex", "select-none"],
5986
5996
  vertical: ["flex-col"],
5987
5997
  horizon: ["flex-row", "gap-0"],
5988
5998
  label: ["flex", "items-center", "font-bold", "text-body-foreground", "min-w-[80px]"],
5989
5999
  innerWrapper: ["flex", "flex-col"],
5990
- inputWrapper: ["flex", "items-center", "duration-200", "group-has-[p.error]/input:bg-danger-soft"],
6000
+ inputWrapper: ["flex", "items-center", "duration-200", "group-has-[p.error]/input:!bg-danger-soft"],
5991
6001
  input: [
5992
6002
  "w-full",
5993
6003
  "h-full",
@@ -5996,8 +6006,8 @@ var inputStyle = tv(
5996
6006
  "placeholder:text-neutral-main",
5997
6007
  "outline-none",
5998
6008
  "focus:ring-0",
5999
- "group-has-[:hover]/input:text-neutral-dark",
6000
- "group-has-[:hover]/input:placeholder:text-neutral-dark",
6009
+ "group-has-[:hover]/input:!text-neutral-dark",
6010
+ "group-has-[:hover]/input:placeholder:!text-neutral-dark",
6001
6011
  "group-has-[:focus]/input:text-neutral-dark",
6002
6012
  "group-has-[:focus]/input:placeholder:text-neutral-dark",
6003
6013
  "group-has-[p.error]/input:text-danger-main",
@@ -6013,13 +6023,22 @@ var inputStyle = tv(
6013
6023
  ],
6014
6024
  helperMessage: ["text-neutral-main", "group-has-[:hover]/input:text-neutral-dark"],
6015
6025
  errorMessage: ["text-danger-main"],
6016
- readonly: ["pointer-events-none", "!text-body-foreground"]
6026
+ readonlyWrapper: [
6027
+ "pointer-events-none",
6028
+ "!text-body-foreground",
6029
+ "placeholder:!text-body-foreground",
6030
+ "group-has-[p.error]/input:!text-danger-main",
6031
+ "group-has-[p.error]/input:placeholder:!text-danger-main",
6032
+ "[&>input]:!text-body-foreground",
6033
+ "[&>input]:placeholder:!text-body-foreground"
6034
+ ],
6035
+ readonly: []
6017
6036
  },
6018
6037
  variants: {
6019
6038
  variant: {
6020
6039
  solid: {
6021
6040
  inputWrapper: ["border-transparent", "bg-trans-soft"],
6022
- readonly: ["!bg-trans-light"]
6041
+ readonlyWrapper: ["!bg-trans-light"]
6023
6042
  },
6024
6043
  outline: {
6025
6044
  inputWrapper: [
@@ -6028,7 +6047,7 @@ var inputStyle = tv(
6028
6047
  "group-has-[:focus]/input:bg-body-background",
6029
6048
  "group-has-[p.error]/input:border-danger-main"
6030
6049
  ],
6031
- readonly: ["!bg-trans-soft"]
6050
+ readonlyWrapper: ["!bg-trans-soft"]
6032
6051
  },
6033
6052
  underline: {
6034
6053
  inputWrapper: [
@@ -6038,30 +6057,31 @@ var inputStyle = tv(
6038
6057
  "group-has-[:focus]/input:bg-body-background",
6039
6058
  "group-has-[p.error]/input:border-danger-main"
6040
6059
  ],
6041
- readonly: ["!bg-trans-soft"]
6060
+ readonlyWrapper: ["!bg-trans-soft"]
6042
6061
  }
6043
6062
  },
6044
6063
  color: {
6045
6064
  primary: {
6046
6065
  content: [
6047
- "group-has-[:focus]/input:text-primary-main",
6048
- "!group-has-[p.error]:not(input:focus):hover/input:text-primary-main"
6066
+ "group-has-[:focus]/input:!text-primary-main",
6067
+ "group-has-[p.error]:not(input:focus):hover/input:!text-primary-main"
6049
6068
  ],
6050
6069
  helperMessage: [
6051
- "group-has-[:focus]/input:text-primary-main",
6052
- "group-has-[:focus:hover]/input:text-primary-main",
6053
- "group-has-[:focus]/input:hover:text-primary-main"
6054
- ]
6070
+ "group-has-[:focus]/input:!text-primary-main",
6071
+ "group-has-[:focus:hover]/input:!text-primary-main",
6072
+ "group-has-[:focus]/input:hover:!text-primary-main"
6073
+ ],
6074
+ readonly: ["!text-primary-main"]
6055
6075
  },
6056
6076
  secondary: {
6057
6077
  content: [
6058
- "group-has-[:focus]/input:text-secondary-main",
6059
- "!group-has-[p.error]:not(input:focus):hover/input:text-secondary-main"
6078
+ "group-has-[:focus]/input:!text-secondary-main",
6079
+ "group-has-[p.error]:not(input:focus):hover/input:!text-secondary-main"
6060
6080
  ],
6061
6081
  helperMessage: [
6062
- "group-has-[:focus]/input:text-secondary-main",
6063
- "group-has-[:focus:hover]/input:text-secondary-main",
6064
- "group-has-[:focus]/input:hover:text-secondary-main"
6082
+ "group-has-[:focus]/input:!text-secondary-main",
6083
+ "group-has-[:focus:hover]/input:!text-secondary-main",
6084
+ "group-has-[:focus]/input:hover:!text-secondary-main"
6065
6085
  ]
6066
6086
  }
6067
6087
  },
@@ -6112,14 +6132,14 @@ var inputStyle = tv(
6112
6132
  },
6113
6133
  disabled: {
6114
6134
  true: {
6115
- inputWrapper: ["!bg-neutral-soft", "pointer-events-none", "!group-has-[p.error]/input:text-danger-light"],
6135
+ inputWrapper: ["!bg-neutral-soft", "pointer-events-none", "group-has-[p.error]/input:!text-danger-light"],
6116
6136
  input: [
6117
- "text-neutral-light",
6118
- "placeholder:text-neutral-light",
6119
- "group-has-[p.error]/input:text-danger-light",
6120
- "group-has-[p.error]/input:placeholder:text-danger-light"
6137
+ "!text-neutral-light",
6138
+ "placeholder:!text-neutral-light",
6139
+ "group-has-[p.error]/input:!text-danger-light",
6140
+ "group-has-[p.error]/input:placeholder:!text-danger-light"
6121
6141
  ],
6122
- content: ["text-neutral-light", "group-has-[p.error]/input:text-danger-light"],
6142
+ content: ["!text-neutral-light", "group-has-[p.error]/input:text-danger-light"],
6123
6143
  helperMessage: ["!text-neutral-light"],
6124
6144
  errorMessage: ["!text-danger-light"]
6125
6145
  }
@@ -6186,7 +6206,11 @@ var inputStyle = tv(
6186
6206
  disabled: true,
6187
6207
  variant: ["outline", "underline"],
6188
6208
  class: {
6189
- inputWrapper: ["!bg-body-background", "group-has-[p.error]/input:border-danger-light"]
6209
+ inputWrapper: ["!bg-body-background", "group-has-[p.error]/input:!border-danger-light"],
6210
+ content: [
6211
+ "group-has-[p.error]/input:!text-danger-light",
6212
+ "group-has-[p.error]/input:placeholder:!text-danger-light"
6213
+ ]
6190
6214
  }
6191
6215
  }
6192
6216
  ],
@@ -6417,205 +6441,282 @@ var import_react11 = require("react");
6417
6441
  var import_tailwind_variants11 = require("tailwind-variants");
6418
6442
  var import_jsx_runtime13 = require("react/jsx-runtime");
6419
6443
  var Textarea = (0, import_react11.forwardRef)((originalProps, ref) => {
6444
+ var _a, _b;
6420
6445
  const [props, variantProps] = mapPropsVariants(originalProps, textareaStyle.variantKeys);
6421
- const { classNames, label, errorMessage, ...textareaProps } = props;
6422
- const slots = (0, import_react11.useMemo)(() => textareaStyle({ ...variantProps }), [variantProps]);
6423
- const getBaseProps = (0, import_react11.useCallback)(
6424
- () => ({
6425
- className: slots.base({ class: classNames == null ? void 0 : classNames.base })
6426
- }),
6427
- [slots, classNames]
6428
- );
6429
- const getLabelProps = (0, import_react11.useCallback)(
6430
- () => ({
6431
- className: slots.label({ class: classNames == null ? void 0 : classNames.label })
6432
- }),
6433
- [slots, classNames]
6434
- );
6435
- const getInnerWrapperProps = (0, import_react11.useCallback)(
6436
- () => ({
6437
- className: slots.innerWrapper({ class: classNames == null ? void 0 : classNames.innerWrapper })
6438
- }),
6439
- [slots, classNames]
6440
- );
6441
- const getTextareaWrapperProps = (0, import_react11.useCallback)(
6442
- () => ({
6443
- className: slots.textareaWrapper({ class: classNames == null ? void 0 : classNames.textareaWrapper })
6444
- }),
6445
- [slots, classNames]
6446
- );
6447
- const getTextareaProps = (0, import_react11.useCallback)(
6448
- () => ({
6449
- ...textareaProps,
6450
- ref,
6451
- className: slots.textarea({ class: classNames == null ? void 0 : classNames.textarea }),
6452
- disabled: originalProps.isDisabled,
6453
- required: originalProps.isRequired,
6454
- size: 0
6455
- }),
6456
- [textareaProps, ref, slots, classNames == null ? void 0 : classNames.textarea, originalProps.isDisabled, originalProps.isRequired]
6446
+ const { classNames, label, helperMessage, errorMessage, ...textareaProps } = props;
6447
+ const [length, setLength] = (0, import_react11.useState)(((_b = (_a = originalProps.value) == null ? void 0 : _a.toString()) != null ? _b : "").length);
6448
+ const innerRef = (0, import_react11.useRef)(null);
6449
+ (0, import_react11.useImperativeHandle)(ref, () => innerRef.current);
6450
+ const autoResize = (0, import_react11.useCallback)(() => {
6451
+ const el = innerRef.current;
6452
+ if (el) {
6453
+ el.style.height = "auto";
6454
+ el.style.height = el.scrollHeight + "px";
6455
+ }
6456
+ }, []);
6457
+ const handleChange = (0, import_react11.useCallback)(
6458
+ (e) => {
6459
+ var _a2;
6460
+ setLength(e.target.value.length);
6461
+ (_a2 = originalProps.onChange) == null ? void 0 : _a2.call(originalProps, e);
6462
+ autoResize();
6463
+ },
6464
+ [originalProps, autoResize]
6457
6465
  );
6458
- const getErrorMessageProps = (0, import_react11.useCallback)(
6459
- () => ({
6460
- className: slots.errorMessage({ class: classNames == null ? void 0 : classNames.errorMessage })
6461
- }),
6462
- [slots, classNames]
6466
+ (0, import_react11.useEffect)(() => {
6467
+ autoResize();
6468
+ }, [originalProps.value, autoResize]);
6469
+ const slots = (0, import_react11.useMemo)(() => textareaStyle({ ...variantProps }), [variantProps]);
6470
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
6471
+ "div",
6472
+ {
6473
+ className: clsx(
6474
+ slots.base({ class: classNames == null ? void 0 : classNames.base }),
6475
+ variantProps.direction === "horizon" ? slots.horizon({ class: classNames == null ? void 0 : classNames.horizon }) : slots.vertical({ class: classNames == null ? void 0 : classNames.vertical })
6476
+ ),
6477
+ children: [
6478
+ label && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("label", { className: slots.label({ class: classNames == null ? void 0 : classNames.label }), children: label }),
6479
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
6480
+ "div",
6481
+ {
6482
+ className: clsx(
6483
+ slots.wrapper({ class: classNames == null ? void 0 : classNames.wrapper }),
6484
+ textareaProps.readOnly ? slots.readonlyWrapper({ class: classNames == null ? void 0 : classNames.readonlyWrapper }) : ""
6485
+ ),
6486
+ children: [
6487
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
6488
+ "textarea",
6489
+ {
6490
+ ref: innerRef,
6491
+ ...textareaProps,
6492
+ readOnly: props.readOnly,
6493
+ onChange: handleChange,
6494
+ className: slots.textarea({ class: classNames == null ? void 0 : classNames.textarea })
6495
+ }
6496
+ ),
6497
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "flex justify-between", children: [
6498
+ helperMessage && !errorMessage && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
6499
+ "p",
6500
+ {
6501
+ className: clsx(
6502
+ slots.helperMessage({ class: classNames == null ? void 0 : classNames.helperMessage }),
6503
+ textareaProps.readOnly ? slots.readonly({ class: classNames == null ? void 0 : classNames.readonly }) : ""
6504
+ ),
6505
+ children: helperMessage
6506
+ }
6507
+ ),
6508
+ errorMessage && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("p", { className: clsx("error", slots.errorMessage({ class: classNames == null ? void 0 : classNames.errorMessage })), children: errorMessage }),
6509
+ textareaProps.maxLength !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
6510
+ "p",
6511
+ {
6512
+ className: clsx(
6513
+ slots.helperMessage({ class: classNames == null ? void 0 : classNames.helperMessage }),
6514
+ textareaProps.readOnly ? slots.readonly({ class: classNames == null ? void 0 : classNames.readonly }) : ""
6515
+ ),
6516
+ children: [
6517
+ length,
6518
+ " / ",
6519
+ textareaProps.maxLength
6520
+ ]
6521
+ }
6522
+ )
6523
+ ] })
6524
+ ]
6525
+ }
6526
+ )
6527
+ ]
6528
+ }
6463
6529
  );
6464
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { ...getBaseProps(), children: [
6465
- props.label && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("label", { ...getLabelProps(), children: props.label }),
6466
- /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { ...getInnerWrapperProps(), children: [
6467
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { ...getTextareaWrapperProps(), children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("textarea", { ...getTextareaProps() }) }),
6468
- props.errorMessage && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("p", { ...getErrorMessageProps(), children: props.errorMessage })
6469
- ] })
6470
- ] });
6471
6530
  });
6472
6531
  Textarea.displayName = "Textarea";
6473
6532
  var textarea_default = Textarea;
6474
6533
  var textareaStyle = (0, import_tailwind_variants11.tv)({
6475
6534
  slots: {
6476
- base: ["group/textarea", "flex", "flex-col", "gap-[10px]", "select-none"],
6477
- label: ["flex", "items-center"],
6478
- innerWrapper: ["flex", "flex-col", "gap-[6px]"],
6479
- textareaWrapper: [
6480
- "flex",
6481
- "bg-transparent",
6482
- "border-neutral-main",
6483
- "group-has-[p]/textarea:border-danger-main",
6484
- "group-has-[p]/textarea:bg-danger-soft",
6485
- "transition duration-200"
6486
- ],
6535
+ base: ["group/textarea", "flex", "select-none"],
6536
+ vertical: ["flex-col"],
6537
+ horizon: ["flex-row", "gap-0"],
6538
+ label: ["flex", "items-center", "font-bold", "text-body-foreground", "min-w-[80px]"],
6539
+ wrapper: ["flex", "flex-col"],
6487
6540
  textarea: [
6488
6541
  "w-full",
6542
+ "h-full",
6489
6543
  "bg-transparent",
6490
- "placeholder:text-neutral-main",
6491
- "focus-visible:outline-none",
6492
- "resize-none"
6544
+ "text-neutral-main",
6545
+ "placeholder:!text-neutral-main",
6546
+ "outline-none",
6547
+ "resize-none",
6548
+ "focus:ring-0",
6549
+ "group-has-[:hover]/textarea:!text-neutral-dark",
6550
+ "group-has-[:hover]/textarea:placeholder:!text-neutral-dark",
6551
+ "group-has-[:focus]/textarea:!text-neutral-dark",
6552
+ "group-has-[:focus]/textarea:placeholder:!text-neutral-dark",
6553
+ "group-has-[p.error]/textarea:bg-danger-soft",
6554
+ "group-has-[p.error]/textarea:text-danger-main",
6555
+ "group-has-[p.error]/textarea:placeholder:!text-danger-main"
6493
6556
  ],
6494
- errorMessage: ["text-danger-main"]
6557
+ helperMessage: [
6558
+ "text-neutral-main",
6559
+ "group-has-[:hover]/textarea:text-neutral-dark",
6560
+ "group-has-[p.error]/textarea:text-danger-main"
6561
+ ],
6562
+ errorMessage: ["text-danger-main"],
6563
+ readonlyWrapper: [
6564
+ "pointer-events-none",
6565
+ "[&>textarea]:!text-body-foreground",
6566
+ "[&>textarea]:placeholder:!text-body-foreground"
6567
+ ],
6568
+ readonly: []
6495
6569
  },
6496
6570
  variants: {
6497
6571
  variant: {
6498
6572
  solid: {
6499
- textareaWrapper: ["bg-trans-soft", "hover:bg-trans-light", "has-[:focus]:bg-trans-light"]
6573
+ textarea: ["border-transparent", "bg-trans-soft"],
6574
+ readonlyWrapper: ["[&>textarea]:!bg-trans-light"]
6500
6575
  },
6501
- line: {
6502
- textareaWrapper: ["border", "hover:bg-trans-soft", "has-[:focus]:bg-trans-soft"]
6576
+ outline: {
6577
+ textarea: [
6578
+ "border-neutral-light",
6579
+ "group-has-[:hover]/textarea:bg-trans-soft",
6580
+ "group-has-[:focus]/textarea:bg-body-background",
6581
+ "group-has-[p.error]/textarea:border-danger-main"
6582
+ ],
6583
+ readonlyWrapper: ["[&>textarea]:!bg-trans-soft"]
6503
6584
  }
6504
6585
  },
6505
6586
  color: {
6506
- primary: {},
6507
- secondary: {}
6587
+ primary: {
6588
+ helperMessage: [
6589
+ "group-has-[:focus]/textarea:!text-primary-main",
6590
+ "group-has-[:focus]/textarea:!text-primary-main",
6591
+ "group-has-[:focus]/textarea:hover:!text-primary-main",
6592
+ "group-has-[:focus:hover]/textarea:!text-primary-main",
6593
+ "group-has-[p.error]:not(textarea:focus):hover/textarea:!text-primary-main"
6594
+ ],
6595
+ readonly: ["!text-primary-main"]
6596
+ },
6597
+ secondary: {
6598
+ helperMessage: [
6599
+ "group-has-[:focus]/textarea:text-secondary-main",
6600
+ "group-has-[:focus]/textarea:text-secondary-main",
6601
+ "group-has-[:focus]/textarea:hover:text-secondary-main",
6602
+ "group-has-[:focus:hover]/textarea:text-secondary-main",
6603
+ "group-has-[p.error]:not(textarea:focus):hover/textarea:!text-secondary-main"
6604
+ ],
6605
+ readonly: ["!text-secondary-main"]
6606
+ }
6508
6607
  },
6509
6608
  size: {
6510
6609
  sm: {
6511
- base: "gap-[6px]",
6512
- textareaWrapper: "w-[240px] rounded-sm p-[6px]",
6513
- textarea: "text-sm rounded-sm",
6514
- label: "text-sm",
6515
- errorMessage: "text-sm"
6610
+ base: ["text-sm", "gap-[4px]"],
6611
+ label: ["text-sm"],
6612
+ wrapper: ["gap-[4px]"],
6613
+ textarea: ["w-[240px]", "h-[24px]", "rounded-sm", "p-[8px]", "gap-[4px]"],
6614
+ helperMessage: ["text-sm"],
6615
+ errorMessage: ["text-sm"]
6516
6616
  },
6517
6617
  md: {
6518
- base: "gap-[8px]",
6519
- textareaWrapper: "w-[240px] rounded-md p-[8px]",
6520
- textarea: "text-md rounded-md",
6521
- label: "text-md",
6522
- errorMessage: "text-md"
6618
+ base: ["text-md", "gap-[6px]"],
6619
+ label: ["text-md"],
6620
+ wrapper: ["gap-[6px]"],
6621
+ textarea: ["w-[240px]", "h-[32px]", "rounded-md", "p-[8px]", "gap-[6px]"],
6622
+ helperMessage: ["text-sm"],
6623
+ errorMessage: ["text-sm"]
6523
6624
  },
6524
6625
  lg: {
6525
- base: "gap-[10px]",
6526
- textareaWrapper: "w-[240px] rounded-lg p-[10px]",
6527
- textarea: "text-lg rounded-lg",
6528
- label: "text-lg",
6529
- errorMessage: "text-lg"
6626
+ base: ["text-lg", "gap-[8px]"],
6627
+ label: ["text-lg"],
6628
+ wrapper: ["gap-[8px]"],
6629
+ textarea: ["w-[240px]", "h-[40px]", "rounded-lg", "p-[10px]", "gap-[8px]"],
6630
+ helperMessage: ["text-md"],
6631
+ errorMessage: ["text-md"]
6530
6632
  },
6531
6633
  xl: {
6532
- base: "gap-[10px]",
6533
- textareaWrapper: "w-[240px] rounded-xl p-[10px]",
6534
- textarea: "text-xl rounded-xl",
6535
- label: "text-xl",
6536
- errorMessage: "text-xl"
6537
- }
6538
- },
6539
- radius: {
6540
- default: {},
6541
- none: {
6542
- textareaWrapper: "rounded-none",
6543
- textarea: "rounded-none"
6544
- },
6545
- full: {
6546
- textareaWrapper: "rounded-full",
6547
- textarea: "rounded-full"
6634
+ base: ["text-xl", "gap-[10px]"],
6635
+ label: ["text-xl"],
6636
+ wrapper: ["gap-[10px]"],
6637
+ textarea: ["w-[240px]", "h-[50px]", "rounded-lg", "p-[10px]", "gap-[10px]"],
6638
+ helperMessage: ["text-md"],
6639
+ errorMessage: ["text-md"]
6548
6640
  }
6549
6641
  },
6550
- fullWidth: {
6551
- true: {
6552
- base: "w-full",
6553
- textareaWrapper: "w-full",
6554
- textarea: "w-full"
6555
- }
6642
+ direction: {
6643
+ vertical: "",
6644
+ horizon: ""
6556
6645
  },
6557
- isDisabled: {
6646
+ full: {
6558
6647
  true: {
6559
- base: ["opacity-disabled", "pointer-events-none"],
6560
- textareaWrapper: ["bg-neutral-soft", "border-neutral-light", "pointer-events-none"],
6561
- textarea: ["text-neutral-light placeholder:text-neutral-light", "border-neutral-light"],
6562
- label: ["text-neutral-light", "pointer-events-none"],
6563
- errorMessage: "text-danger-light"
6648
+ base: ["w-full"],
6649
+ wrapper: ["flex-1"],
6650
+ textarea: ["w-full"]
6564
6651
  }
6565
6652
  },
6566
- isRequired: {
6653
+ disabled: {
6567
6654
  true: {
6568
- label: ["after:content-['*']", "after:text-danger-main", "after:ml-0.5"]
6655
+ textarea: [
6656
+ "bg-neutral-soft",
6657
+ "pointer-events-none",
6658
+ "text-neutral-light",
6659
+ "placeholder:!text-neutral-light",
6660
+ "group-has-[p.error]/textarea:text-danger-light",
6661
+ "group-has-[p.error]/textarea:border-danger-light",
6662
+ "group-has-[p.error]/textarea:placeholder:!text-danger-light"
6663
+ ],
6664
+ helperMessage: ["!text-neutral-light", "group-has-[p.error]/textarea:!text-danger-light"],
6665
+ errorMessage: ["!text-danger-light"]
6569
6666
  }
6570
6667
  }
6571
6668
  },
6572
- defaultVariants: {
6573
- variant: "solid",
6574
- color: "primary",
6575
- size: "md",
6576
- fullWidth: false,
6577
- isDisabled: false,
6578
- isRequired: false
6579
- },
6580
6669
  compoundVariants: [
6581
- // variants & color
6582
6670
  {
6583
- variant: "line",
6584
- color: "primary",
6671
+ variant: "outline",
6672
+ size: "sm",
6585
6673
  class: {
6586
- textareaWrapper: "has-[:focus]:border-primary-main"
6674
+ textarea: ["border-sm"]
6587
6675
  }
6588
6676
  },
6589
6677
  {
6590
- variant: "line",
6591
- color: "secondary",
6678
+ variant: "outline",
6679
+ size: "md",
6592
6680
  class: {
6593
- textareaWrapper: "has-[:focus]:border-secondary-main",
6594
- textarea: "focus:bg-secondary-main"
6681
+ textarea: ["border-md"]
6595
6682
  }
6596
6683
  },
6597
- // Variants & isDisabled
6598
6684
  {
6599
- variant: "line",
6600
- isDisabled: true,
6685
+ variant: "outline",
6686
+ size: "lg",
6601
6687
  class: {
6602
- textareaWrapper: "bg-neutral-soft"
6688
+ textarea: ["border-lg"]
6603
6689
  }
6604
6690
  },
6605
- // isRequired & isDisabled
6606
6691
  {
6607
- isRequired: true,
6608
- isDisabled: true,
6692
+ variant: "outline",
6693
+ size: "xl",
6694
+ class: {
6695
+ textarea: ["border-xl"]
6696
+ }
6697
+ },
6698
+ {
6699
+ disabled: true,
6700
+ variant: ["outline"],
6609
6701
  class: {
6610
- label: "after:text-danger-light"
6702
+ textarea: ["!bg-body-background", "group-has-[p.error]/input:border-danger-light"]
6611
6703
  }
6612
6704
  }
6613
- ]
6705
+ ],
6706
+ defaultVariants: {
6707
+ variant: "solid",
6708
+ color: "primary",
6709
+ size: "md",
6710
+ direction: "vertical",
6711
+ fullWidth: false,
6712
+ disabled: false,
6713
+ readonly: false
6714
+ }
6614
6715
  });
6615
6716
 
6616
6717
  // src/components/table/table.tsx
6617
- var import_react17 = require("react");
6618
- var import_tailwind_variants15 = require("tailwind-variants");
6718
+ var import_react15 = require("react");
6719
+ var import_tailwind_variants16 = require("tailwind-variants");
6619
6720
 
6620
6721
  // src/components/checkbox/checkbox.tsx
6621
6722
  var import_react12 = require("react");
@@ -6824,138 +6925,207 @@ var checkboxStyle = tv({
6824
6925
  }
6825
6926
  });
6826
6927
 
6827
- // src/components/table/table-head.tsx
6928
+ // src/components/skeleton/skeleton.tsx
6929
+ var import_tailwind_variants13 = require("tailwind-variants");
6828
6930
  var import_jsx_runtime15 = require("react/jsx-runtime");
6829
- var TableHead = ({ columns, slots, size, rowCheckbox, isCheckedAll, classNames, onCheckAll }) => {
6931
+ var Skeleton = ({ color = "primary", className, speed = "normal", rounded = "md" }) => {
6932
+ const speedMap = {
6933
+ fast: "0.7s",
6934
+ normal: "1.2s",
6935
+ slow: "2s"
6936
+ };
6937
+ const slots = skeletonStyle();
6938
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
6939
+ "div",
6940
+ {
6941
+ className: clsx(slots.base({ color, rounded }), className),
6942
+ style: {
6943
+ "--shimmer-duration": speedMap[speed]
6944
+ },
6945
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("style", { children: `@keyframes shimmer {
6946
+ 100% {
6947
+ transform: translateX(100%);
6948
+ }
6949
+ }
6950
+ .skeleton-shimmer::before {
6951
+ animation: shimmer var(--shimmer-duration) infinite linear;
6952
+ }
6953
+ ` })
6954
+ }
6955
+ );
6956
+ };
6957
+ Skeleton.displayName = "Skeleton";
6958
+ var skeleton_default = Skeleton;
6959
+ var skeletonStyle = (0, import_tailwind_variants13.tv)({
6960
+ slots: {
6961
+ base: [
6962
+ "relative",
6963
+ "overflow-hidden",
6964
+ "w-full",
6965
+ "h-[18px]",
6966
+ "skeleton-shimmer",
6967
+ "before:absolute",
6968
+ "before:inset-0",
6969
+ "before:-translate-x-full",
6970
+ "before:bg-gradient-to-r",
6971
+ "before:from-transparent",
6972
+ "before:via-white/40",
6973
+ "before:to-transparent",
6974
+ "before:content-['']"
6975
+ ]
6976
+ },
6977
+ variants: {
6978
+ color: {
6979
+ primary: { base: "bg-primary-soft" },
6980
+ secondary: { base: "bg-secondary-soft" },
6981
+ neutral: { base: "bg-neutral-soft" }
6982
+ },
6983
+ rounded: {
6984
+ sm: { base: "rounded-sm" },
6985
+ md: { base: "rounded-md" },
6986
+ lg: { base: "rounded-lg" },
6987
+ xl: { base: "rounded-xl" },
6988
+ full: { base: "rounded-full" }
6989
+ }
6990
+ },
6991
+ defaultVariants: {
6992
+ color: "primary",
6993
+ rounded: "md"
6994
+ }
6995
+ });
6996
+
6997
+ // src/components/table/table-head.tsx
6998
+ var import_jsx_runtime16 = require("react/jsx-runtime");
6999
+ var TableHead = ({
7000
+ slots,
7001
+ columns,
7002
+ color,
7003
+ size,
7004
+ rowCheckbox = false,
7005
+ isCheckedAll,
7006
+ isLoading = false,
7007
+ classNames,
7008
+ onCheckAll
7009
+ }) => {
6830
7010
  const handleClickCheckAll = (e) => {
6831
7011
  e.preventDefault();
6832
7012
  onCheckAll(!isCheckedAll);
6833
7013
  };
6834
- const renderColumnHeaders = () => columns.map((column, index) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
7014
+ const renderTh = (content, key, column) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
6835
7015
  "th",
6836
7016
  {
6837
7017
  className: clsx(slots.th({ class: classNames == null ? void 0 : classNames.th }), column),
6838
7018
  style: {
6839
- width: column.width ? `${column.width}px` : void 0,
6840
- minWidth: column.minWidth ? `${column.minWidth}px` : void 0,
6841
- maxWidth: column.maxWidth ? `${column.maxWidth}px` : void 0,
6842
- height: column.height ? `${column.height}px` : void 0
7019
+ width: (column == null ? void 0 : column.width) ? `${column.width}px` : void 0,
7020
+ minWidth: (column == null ? void 0 : column.minWidth) ? `${column.minWidth}px` : void 0,
7021
+ maxWidth: (column == null ? void 0 : column.maxWidth) ? `${column.maxWidth}px` : void 0,
7022
+ height: (column == null ? void 0 : column.height) ? `${column.height}px` : void 0
6843
7023
  },
6844
- children: column.headerName
7024
+ children: content
6845
7025
  },
6846
- `${column.field}${index}thead`
6847
- ));
6848
- const renderSelectAllCheckbox = () => rowCheckbox && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("th", { className: slots.th({ class: classNames == null ? void 0 : classNames.th }), onClick: handleClickCheckAll, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
6849
- checkbox_default,
6850
- {
6851
- size,
6852
- checked: isCheckedAll,
6853
- onChange: (e) => onCheckAll(e.target.checked)
6854
- }
6855
- ) }) });
6856
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("thead", { className: slots.thead({ class: classNames == null ? void 0 : classNames.thead }), children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("tr", { className: slots.tr({ class: classNames == null ? void 0 : classNames.tr }), children: [
6857
- renderColumnHeaders(),
6858
- renderSelectAllCheckbox()
7026
+ key
7027
+ );
7028
+ const renderSkeletonRow = () => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("thead", { className: slots.thead({ class: classNames == null ? void 0 : classNames.thead }), children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("tr", { className: clsx(slots.tr({ class: classNames == null ? void 0 : classNames.tr }), "[&>th]:border-0"), children: [
7029
+ columns.map((_, idx) => renderTh(/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(skeleton_default, { color, rounded: "lg", speed: "fast" }), `skeleton-${idx}`)),
7030
+ rowCheckbox && renderTh(/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(skeleton_default, { color, rounded: "lg", speed: "fast" }), "checkbox-skeleton")
7031
+ ] }) });
7032
+ const renderContentRow = () => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("thead", { className: slots.thead({ class: classNames == null ? void 0 : classNames.thead }), children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("tr", { className: slots.tr({ class: classNames == null ? void 0 : classNames.tr }), children: [
7033
+ columns.map((column, idx) => renderTh(column.headerName, `${column.field}-${idx}`, column)),
7034
+ rowCheckbox && renderTh(
7035
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "flex items-center justify-center", onClick: handleClickCheckAll, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
7036
+ checkbox_default,
7037
+ {
7038
+ size,
7039
+ checked: isCheckedAll,
7040
+ onChange: (e) => onCheckAll(e.target.checked)
7041
+ }
7042
+ ) }),
7043
+ "checkbox"
7044
+ )
6859
7045
  ] }) });
7046
+ return isLoading ? renderSkeletonRow() : renderContentRow();
6860
7047
  };
6861
7048
  var table_head_default = TableHead;
6862
7049
 
6863
7050
  // src/components/table/table-body.tsx
6864
- var import_react13 = require("react");
6865
- var import_jsx_runtime16 = require("react/jsx-runtime");
6866
- var import_react14 = require("react");
7051
+ var import_jsx_runtime17 = require("react/jsx-runtime");
6867
7052
  var TableBody = ({
6868
7053
  slots,
6869
- columns,
6870
7054
  rows,
7055
+ columns,
6871
7056
  size,
6872
- rowCheckbox,
7057
+ color,
7058
+ rowCheckbox = false,
6873
7059
  checkedRows,
6874
7060
  onCheckRow,
6875
7061
  onRowClick,
7062
+ isLoading = false,
6876
7063
  emptyContent,
6877
- isLoading,
7064
+ skeletonRow,
6878
7065
  classNames,
6879
7066
  className
6880
7067
  }) => {
6881
- const generateColumnStyles = (0, import_react13.useCallback)((column) => {
6882
- const alignClass = column.align ? `text-${column.align}` : "text-left";
6883
- return clsx(alignClass, column.className);
6884
- }, []);
6885
- const getCellProps = (0, import_react13.useCallback)(
6886
- (column, row) => {
6887
- if (!column || !row) {
6888
- return {
6889
- className: slots.td({ class: classNames == null ? void 0 : classNames.td })
6890
- };
6891
- }
7068
+ const getCellStyle = (column) => ({
7069
+ width: column.width ? `${column.width}px` : void 0,
7070
+ minWidth: column.minWidth ? `${column.minWidth}px` : void 0,
7071
+ maxWidth: column.maxWidth ? `${column.maxWidth}px` : void 0,
7072
+ height: column.height ? `${column.height}px` : void 0,
7073
+ textAlign: column.align || "center"
7074
+ });
7075
+ const renderTdSkeleton = (key) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("td", { className: slots.td({ class: classNames == null ? void 0 : classNames.td }), children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(skeleton_default, { color, className: "h-full w-full", rounded: "lg", speed: "fast" }) }, key);
7076
+ const renderCheckboxCell = (rowIndex) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("td", { className: clsx(slots.td({ class: classNames == null ? void 0 : classNames.td }), "text-center"), children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
7077
+ checkbox_default,
7078
+ {
7079
+ size,
7080
+ checked: checkedRows.has(rowIndex),
7081
+ onChange: (e) => onCheckRow(rowIndex, e.target.checked)
7082
+ }
7083
+ ) });
7084
+ const renderSkeletonRow = (rowIndex) => /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("tr", { className: slots.tr({ class: classNames == null ? void 0 : classNames.tr }), children: [
7085
+ columns.map((_, colIdx) => renderTdSkeleton(`skeleton-${rowIndex}-${colIdx}`)),
7086
+ rowCheckbox && renderTdSkeleton(`skeleton-checkbox-${rowIndex}`)
7087
+ ] }, `skeleton-${rowIndex}`);
7088
+ const renderEmptyRow = () => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("tr", { className: slots.tr({ class: classNames == null ? void 0 : classNames.tr }), children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("td", { colSpan: columns.length + (rowCheckbox ? 1 : 0), className: slots.empty({ class: classNames == null ? void 0 : classNames.empty }), children: emptyContent }) });
7089
+ const renderDataRow = (row, rowIndex) => /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("tr", { className: slots.tr({ class: classNames == null ? void 0 : classNames.tr }), onClick: () => onRowClick == null ? void 0 : onRowClick(row), children: [
7090
+ columns.map((column, colIdx) => {
7091
+ var _a;
6892
7092
  const value = row[column.field];
6893
- const formattedValue = column.valueFormatter ? column.valueFormatter({ id: column.field, field: column.field, value }) : value;
6894
- const children = column.renderCell ? column.renderCell({
6895
- id: column.field,
6896
- field: column.field,
6897
- value,
6898
- formattedValue,
6899
- row
6900
- }) : formattedValue;
6901
- const columnStyles = generateColumnStyles(column);
6902
- return {
6903
- children,
6904
- className: clsx(slots.td({ class: classNames == null ? void 0 : classNames.td }), columnStyles),
6905
- style: {
6906
- width: column.width ? `${column.width}px` : void 0,
6907
- minWidth: column.minWidth ? `${column.minWidth}px` : void 0,
6908
- maxWidth: column.maxWidth ? `${column.maxWidth}px` : void 0,
6909
- height: column.height ? `${column.height}px` : void 0
6910
- }
6911
- };
6912
- },
6913
- [classNames == null ? void 0 : classNames.td, generateColumnStyles, slots]
6914
- );
6915
- const hasRows = rows.length > 0;
6916
- const colSpan = (columns.length || 1) + (rowCheckbox ? 1 : 0);
6917
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("tbody", { className: clsx(slots.tbody({ class: classNames == null ? void 0 : classNames.tbody }), className), children: [
6918
- !isLoading && hasRows && rows.map((row, rowIndex) => {
6919
- const isRowChecked = checkedRows.has(rowIndex);
6920
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
6921
- "tr",
7093
+ const formattedValue = ((_a = column.valueFormatter) == null ? void 0 : _a.call(column, { value, field: column.field })) || value;
7094
+ const content = column.renderCell ? column.renderCell({ id: row.id, field: column.field, value, formattedValue, row }) : formattedValue;
7095
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
7096
+ "td",
6922
7097
  {
6923
- className: slots.tr({ class: classNames == null ? void 0 : classNames.tr }),
6924
- "aria-checked": isRowChecked,
6925
- onClick: () => onRowClick ? onRowClick(row) : void 0,
6926
- children: [
6927
- columns.map((column) => /* @__PURE__ */ (0, import_react14.createElement)("td", { ...getCellProps(column, row), key: column.field })),
6928
- rowCheckbox && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("td", { className: slots.td({ class: classNames == null ? void 0 : classNames.td }), children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
6929
- checkbox_default,
6930
- {
6931
- size,
6932
- checked: isRowChecked,
6933
- onChange: (e) => onCheckRow(rowIndex, e.target.checked)
6934
- }
6935
- ) }) })
6936
- ]
7098
+ className: clsx(slots.td({ class: classNames == null ? void 0 : classNames.td }), column.className),
7099
+ style: getCellStyle(column),
7100
+ children: content
6937
7101
  },
6938
- rowIndex
7102
+ `${rowIndex}-${colIdx}`
6939
7103
  );
6940
7104
  }),
6941
- !isLoading && !hasRows && emptyContent && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("tr", { className: clsx(slots.tr({ class: classNames == null ? void 0 : classNames.tr }), "border-none"), children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("td", { colSpan, className: slots.empty({ class: classNames == null ? void 0 : classNames.empty }), children: emptyContent }) })
6942
- ] });
7105
+ rowCheckbox && renderCheckboxCell(rowIndex)
7106
+ ] }, rowIndex);
7107
+ const renderRows = () => {
7108
+ if (isLoading) return skeletonRow ? Array.from({ length: skeletonRow }, (_, idx) => renderSkeletonRow(idx)) : /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_jsx_runtime17.Fragment, {});
7109
+ if (!rows.length && emptyContent) return renderEmptyRow();
7110
+ return rows.map((row, index) => renderDataRow(row, index));
7111
+ };
7112
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("tbody", { className: `${slots.tbody({ class: classNames == null ? void 0 : classNames.tbody })} ${className || ""}`, children: renderRows() });
6943
7113
  };
6944
7114
  var table_body_default = TableBody;
6945
7115
 
6946
7116
  // src/components/pagination/pagination.tsx
6947
- var import_react16 = require("react");
7117
+ var import_react14 = require("react");
6948
7118
 
6949
7119
  // src/components/pagination/usePagination.ts
6950
- var import_react15 = require("react");
7120
+ var import_react13 = require("react");
6951
7121
  var usePagination = ({ currentPage, totalPage, groupSize, handleChangePage }) => {
6952
- const startPage = (0, import_react15.useMemo)(() => Math.floor((currentPage - 1) / groupSize) * groupSize + 1, [currentPage, groupSize]);
6953
- const endPage = (0, import_react15.useMemo)(() => Math.min(startPage + groupSize - 1, totalPage), [startPage, groupSize, totalPage]);
6954
- const pageList = (0, import_react15.useMemo)(
7122
+ const startPage = (0, import_react13.useMemo)(() => Math.floor((currentPage - 1) / groupSize) * groupSize + 1, [currentPage, groupSize]);
7123
+ const endPage = (0, import_react13.useMemo)(() => Math.min(startPage + groupSize - 1, totalPage), [startPage, groupSize, totalPage]);
7124
+ const pageList = (0, import_react13.useMemo)(
6955
7125
  () => Array.from({ length: endPage - startPage + 1 }, (_, i) => startPage + i),
6956
7126
  [startPage, endPage]
6957
7127
  );
6958
- const handleClickMovePage = (0, import_react15.useCallback)(
7128
+ const handleClickMovePage = (0, import_react13.useCallback)(
6959
7129
  (page) => (event) => {
6960
7130
  event.preventDefault();
6961
7131
  handleChangePage == null ? void 0 : handleChangePage(page);
@@ -6972,8 +7142,8 @@ var usePagination = ({ currentPage, totalPage, groupSize, handleChangePage }) =>
6972
7142
  var usePagination_default = usePagination;
6973
7143
 
6974
7144
  // src/components/pagination/pagination.tsx
6975
- var import_jsx_runtime17 = require("react/jsx-runtime");
6976
- var Pagination = (0, import_react16.forwardRef)((originalProps, ref) => {
7145
+ var import_jsx_runtime18 = require("react/jsx-runtime");
7146
+ var Pagination = (0, import_react14.forwardRef)((originalProps, ref) => {
6977
7147
  const [props, variantProps] = mapPropsVariants(originalProps, paginationStyle.variantKeys);
6978
7148
  const {
6979
7149
  classNames,
@@ -6987,8 +7157,8 @@ var Pagination = (0, import_react16.forwardRef)((originalProps, ref) => {
6987
7157
  variant,
6988
7158
  size
6989
7159
  } = { ...props, ...variantProps };
6990
- const [inputPage, setInputPage] = (0, import_react16.useState)(currentPage);
6991
- const slots = (0, import_react16.useMemo)(() => paginationStyle(variantProps), [variantProps]);
7160
+ const [inputPage, setInputPage] = (0, import_react14.useState)(currentPage);
7161
+ const slots = (0, import_react14.useMemo)(() => paginationStyle(variantProps), [variantProps]);
6992
7162
  const { pageList, handleClickMovePage } = usePagination_default({
6993
7163
  currentPage,
6994
7164
  totalPage,
@@ -7003,29 +7173,29 @@ var Pagination = (0, import_react16.forwardRef)((originalProps, ref) => {
7003
7173
  }
7004
7174
  }
7005
7175
  };
7006
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: slots.base({ class: classNames == null ? void 0 : classNames.base }), ref, children: [
7007
- /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: slots.wrapper({ class: classNames == null ? void 0 : classNames.wrapper }), children: [
7008
- showFirstLastButtons && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
7176
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: slots.base({ class: classNames == null ? void 0 : classNames.base }), ref, children: [
7177
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: slots.wrapper({ class: classNames == null ? void 0 : classNames.wrapper }), children: [
7178
+ showFirstLastButtons && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
7009
7179
  "div",
7010
7180
  {
7011
7181
  "aria-label": "firstPage",
7012
7182
  "data-is-active": currentPage > 1,
7013
7183
  className: slots.icon({ class: classNames == null ? void 0 : classNames.icon }),
7014
7184
  onClick: currentPage > 1 ? handleClickMovePage(1) : void 0,
7015
- children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Icon_default, { name: "left-double-chevron" })
7185
+ children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Icon_default, { name: "left-double-chevron" })
7016
7186
  }
7017
7187
  ),
7018
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
7188
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
7019
7189
  "div",
7020
7190
  {
7021
7191
  "aria-label": "prevPage",
7022
7192
  "data-is-active": currentPage > 1,
7023
7193
  className: slots.icon({ class: classNames == null ? void 0 : classNames.icon }),
7024
7194
  onClick: currentPage > 1 ? handleClickMovePage(currentPage - 1) : void 0,
7025
- children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Icon_default, { name: "left-chevron" })
7195
+ children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Icon_default, { name: "left-chevron" })
7026
7196
  }
7027
7197
  ),
7028
- showPageNumber && pageList.map((page, index) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
7198
+ showPageNumber && pageList.map((page, index) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
7029
7199
  "div",
7030
7200
  {
7031
7201
  className: slots.button({ class: classNames == null ? void 0 : classNames.button }),
@@ -7035,29 +7205,29 @@ var Pagination = (0, import_react16.forwardRef)((originalProps, ref) => {
7035
7205
  },
7036
7206
  index
7037
7207
  )),
7038
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
7208
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
7039
7209
  "div",
7040
7210
  {
7041
7211
  "aria-label": "nextPage",
7042
7212
  "data-is-active": currentPage < totalPage,
7043
7213
  className: slots.icon({ class: classNames == null ? void 0 : classNames.icon }),
7044
7214
  onClick: currentPage < totalPage ? handleClickMovePage(currentPage + 1) : void 0,
7045
- children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Icon_default, { name: "right-chevron" })
7215
+ children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Icon_default, { name: "right-chevron" })
7046
7216
  }
7047
7217
  ),
7048
- showFirstLastButtons && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
7218
+ showFirstLastButtons && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
7049
7219
  "div",
7050
7220
  {
7051
7221
  "aria-label": "lastPage",
7052
7222
  "data-is-active": currentPage < totalPage,
7053
7223
  className: slots.icon({ class: classNames == null ? void 0 : classNames.icon }),
7054
7224
  onClick: currentPage < totalPage ? handleClickMovePage(totalPage) : void 0,
7055
- children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Icon_default, { name: "right-double-chevron" })
7225
+ children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Icon_default, { name: "right-double-chevron" })
7056
7226
  }
7057
7227
  )
7058
7228
  ] }),
7059
- showPageLabel && /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("span", { className: slots.label({ class: classNames == null ? void 0 : classNames.label }), children: [
7060
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
7229
+ showPageLabel && /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("span", { className: slots.label({ class: classNames == null ? void 0 : classNames.label }), children: [
7230
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
7061
7231
  input_default,
7062
7232
  {
7063
7233
  value: inputPage || 1,
@@ -7230,14 +7400,14 @@ var paginationStyle = tv(
7230
7400
  );
7231
7401
 
7232
7402
  // src/components/scroll/scrollArea.tsx
7233
- var import_tailwind_variants14 = require("tailwind-variants");
7234
- var import_jsx_runtime18 = require("react/jsx-runtime");
7403
+ var import_tailwind_variants15 = require("tailwind-variants");
7404
+ var import_jsx_runtime19 = require("react/jsx-runtime");
7235
7405
  var ScrollArea = ({ children, className, direction, size }) => {
7236
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: clsx(scrollAreaStyle({ direction, size }), className), children });
7406
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: clsx(scrollAreaStyle({ direction, size }), className), children });
7237
7407
  };
7238
7408
  ScrollArea.displayName = "ScrollArea";
7239
7409
  var scrollArea_default = ScrollArea;
7240
- var scrollAreaStyle = (0, import_tailwind_variants14.tv)({
7410
+ var scrollAreaStyle = (0, import_tailwind_variants15.tv)({
7241
7411
  base: [
7242
7412
  "h-full",
7243
7413
  "x-full",
@@ -7266,95 +7436,105 @@ var scrollAreaStyle = (0, import_tailwind_variants14.tv)({
7266
7436
  });
7267
7437
 
7268
7438
  // src/components/table/table.tsx
7269
- var import_jsx_runtime19 = require("react/jsx-runtime");
7270
- var Table = (0, import_react17.forwardRef)((originalProps, ref) => {
7439
+ var import_jsx_runtime20 = require("react/jsx-runtime");
7440
+ var Table = (0, import_react15.forwardRef)((originalProps, ref) => {
7271
7441
  const [props, variantProps] = mapPropsVariants(originalProps, tableStyle.variantKeys);
7272
7442
  const {
7273
- classNames,
7274
7443
  rows,
7275
7444
  columns,
7276
- size,
7277
- rowCheckbox,
7445
+ rowCheckbox = false,
7278
7446
  onRowClick,
7279
7447
  totalData,
7280
7448
  pagination,
7281
7449
  onPageChange,
7282
7450
  emptyContent,
7283
- isLoading,
7284
- className,
7285
- color
7451
+ isLoading = false,
7452
+ classNames,
7453
+ color,
7454
+ size,
7455
+ skeletonRow
7286
7456
  } = { ...props, ...variantProps };
7287
- const [checkedRows, setCheckedRows] = (0, import_react17.useState)(/* @__PURE__ */ new Set());
7288
- const divRef = (0, import_react17.useRef)(null);
7289
- const { page, perPage } = pagination || { page: 1, perPage: 10 };
7457
+ const { page = 1, perPage = 10 } = pagination || {};
7290
7458
  const showPagination = pagination && typeof totalData === "number" && !isLoading;
7291
- (0, import_react17.useImperativeHandle)(ref, () => ({
7292
- checkedRows,
7293
- setCheckedRows
7294
- }));
7295
- (0, import_react17.useEffect)(() => {
7459
+ const [checkedRows, setCheckedRows] = (0, import_react15.useState)(/* @__PURE__ */ new Set());
7460
+ const divRef = (0, import_react15.useRef)(null);
7461
+ (0, import_react15.useImperativeHandle)(
7462
+ ref,
7463
+ () => ({
7464
+ checkedRows,
7465
+ setCheckedRows
7466
+ }),
7467
+ [checkedRows]
7468
+ );
7469
+ (0, import_react15.useEffect)(() => {
7296
7470
  setCheckedRows(/* @__PURE__ */ new Set());
7297
7471
  }, [rows]);
7298
- const handleCheckAll = (isChecked) => {
7299
- const newCheckedRows = isChecked ? new Set(rows.map((_, index) => index)) : /* @__PURE__ */ new Set();
7300
- setCheckedRows(newCheckedRows);
7472
+ const handleAllRowCheck = (checked) => {
7473
+ const updated = checked ? new Set(rows.map((_, i) => i)) : /* @__PURE__ */ new Set();
7474
+ setCheckedRows(updated);
7301
7475
  };
7302
- const handleCheck = (rowIndex, isChecked) => {
7303
- const newChecked = new Set(checkedRows);
7304
- isChecked ? newChecked.add(rowIndex) : newChecked.delete(rowIndex);
7305
- setCheckedRows(newChecked);
7476
+ const handleRowCheck = (index, checked) => {
7477
+ setCheckedRows((prev) => {
7478
+ const updated = new Set(prev);
7479
+ checked ? updated.add(index) : updated.delete(index);
7480
+ return updated;
7481
+ });
7306
7482
  };
7307
- const slots = (0, import_react17.useMemo)(() => tableStyle(variantProps), [variantProps]);
7308
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { ref: divRef, "data-table": "base", className: slots.base({ class: classNames == null ? void 0 : classNames.base }), children: [
7309
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(scrollArea_default, { direction: "x", size: size === "xl" ? "lg" : size, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("table", { className: slots.table({ class: classNames == null ? void 0 : classNames.table }), children: [
7310
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
7483
+ const slots = (0, import_react15.useMemo)(() => tableStyle(variantProps), [variantProps]);
7484
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { ref: divRef, "data-table": "base", className: slots.base({ class: classNames == null ? void 0 : classNames.base }), children: [
7485
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(scrollArea_default, { direction: "x", size: size === "xl" ? "lg" : size, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("table", { className: slots.table({ class: classNames == null ? void 0 : classNames.table }), children: [
7486
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
7311
7487
  table_head_default,
7312
7488
  {
7313
7489
  columns,
7314
7490
  size,
7491
+ color,
7315
7492
  rowCheckbox,
7316
7493
  isCheckedAll: checkedRows.size === rows.length && rows.length > 0,
7317
- onCheckAll: handleCheckAll,
7494
+ onCheckAll: handleAllRowCheck,
7495
+ isLoading,
7318
7496
  classNames,
7319
7497
  slots
7320
7498
  }
7321
7499
  ),
7322
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
7500
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
7323
7501
  table_body_default,
7324
7502
  {
7325
7503
  slots,
7326
7504
  rows,
7327
7505
  columns,
7328
7506
  size,
7507
+ color,
7329
7508
  rowCheckbox,
7330
7509
  checkedRows,
7331
7510
  onRowClick,
7332
- onCheckRow: handleCheck,
7511
+ onCheckRow: handleRowCheck,
7333
7512
  emptyContent,
7334
7513
  isLoading,
7335
- classNames,
7514
+ skeletonRow,
7336
7515
  className: clsx(
7337
7516
  "transition-all duration-150 ease-out",
7338
- isLoading ? "-translate-y-2 opacity-0" : "translate-y-0 opacity-100"
7517
+ isLoading ? "-translate-y-2 opacity-0" : "translate-y-0 opacity-100",
7518
+ classNames
7339
7519
  )
7340
7520
  }
7341
7521
  )
7342
7522
  ] }) }),
7343
- showPagination && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { className: "flex justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
7523
+ showPagination && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "flex justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
7344
7524
  pagination_default,
7345
7525
  {
7346
7526
  color,
7347
7527
  currentPage: page,
7348
7528
  totalPage: Math.ceil(totalData / perPage),
7349
7529
  groupSize: 10,
7350
- handleChangePage: (currentPage) => onPageChange && onPageChange({ page: currentPage, perPage })
7530
+ handleChangePage: (newPage) => onPageChange == null ? void 0 : onPageChange({ page: newPage, perPage })
7351
7531
  }
7352
7532
  ) })
7353
7533
  ] });
7354
7534
  });
7355
7535
  Table.displayName = "Table";
7356
7536
  var table_default = Table;
7357
- var tableStyle = (0, import_tailwind_variants15.tv)({
7537
+ var tableStyle = (0, import_tailwind_variants16.tv)({
7358
7538
  slots: {
7359
7539
  base: ["flex", "flex-col", "relative", "select-none", "gap-[20px]"],
7360
7540
  table: ["w-full", "h-auto"],
@@ -7571,21 +7751,21 @@ var tableStyle = (0, import_tailwind_variants15.tv)({
7571
7751
  });
7572
7752
 
7573
7753
  // src/components/table/definition-table.tsx
7574
- var import_react18 = require("react");
7575
- var import_jsx_runtime20 = require("react/jsx-runtime");
7754
+ var import_react16 = require("react");
7755
+ var import_jsx_runtime21 = require("react/jsx-runtime");
7576
7756
  var DEFAULT_COLUMN_CLASSES = [
7577
7757
  "w-[120px] px-[10px] py-[9.5px] font-bold text-md text-body-foreground border-r border-neutral-light",
7578
7758
  "px-[10px] py-[9.5px]"
7579
7759
  ];
7580
- var DefinitionTableRow = ({ columns, columnClasses = [] }) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("tr", { className: "border-neutral-light min-h-[50px] border-b", children: columns.map((col, index) => {
7760
+ var DefinitionTableRow = ({ columns, columnClasses = [] }) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("tr", { className: "border-neutral-light min-h-[50px] border-b", children: columns.map((col, index) => {
7581
7761
  var _a;
7582
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("td", { className: (_a = columnClasses[index]) != null ? _a : DEFAULT_COLUMN_CLASSES[index], children: col }, index);
7762
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("td", { className: (_a = columnClasses[index]) != null ? _a : DEFAULT_COLUMN_CLASSES[index], children: col }, index);
7583
7763
  }) });
7584
- var DefinitionTable = (0, import_react18.forwardRef)(({ rows, footer, classNames }, ref) => {
7585
- const slots = (0, import_react18.useMemo)(() => DefinitionTableStyle(), []);
7586
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { ref, className: slots.base({ class: classNames == null ? void 0 : classNames.base }), children: [
7587
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("table", { className: slots.table({ class: classNames == null ? void 0 : classNames.table }), children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("tbody", { children: rows.map((row, i) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(DefinitionTableRow, { ...row }, i)) }) }),
7588
- footer && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { children: footer })
7764
+ var DefinitionTable = (0, import_react16.forwardRef)(({ rows, footer, classNames }, ref) => {
7765
+ const slots = (0, import_react16.useMemo)(() => DefinitionTableStyle(), []);
7766
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { ref, className: slots.base({ class: classNames == null ? void 0 : classNames.base }), children: [
7767
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("table", { className: slots.table({ class: classNames == null ? void 0 : classNames.table }), children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("tbody", { children: rows.map((row, i) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(DefinitionTableRow, { ...row }, i)) }) }),
7768
+ footer && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { children: footer })
7589
7769
  ] });
7590
7770
  });
7591
7771
  DefinitionTable.displayName = "DefinitionTable";
@@ -7598,10 +7778,10 @@ var DefinitionTableStyle = tv({
7598
7778
  });
7599
7779
 
7600
7780
  // src/components/select/select.tsx
7601
- var import_react19 = require("react");
7781
+ var import_react17 = require("react");
7602
7782
  var import_react_dom = require("react-dom");
7603
- var import_jsx_runtime21 = require("react/jsx-runtime");
7604
- var Select = (0, import_react19.forwardRef)((originalProps, ref) => {
7783
+ var import_jsx_runtime22 = require("react/jsx-runtime");
7784
+ var Select = (0, import_react17.forwardRef)((originalProps, ref) => {
7605
7785
  var _a;
7606
7786
  const [props, variantProps] = mapPropsVariants(originalProps, select.variantKeys);
7607
7787
  const {
@@ -7615,14 +7795,14 @@ var Select = (0, import_react19.forwardRef)((originalProps, ref) => {
7615
7795
  multiple,
7616
7796
  ...inputProps
7617
7797
  } = props;
7618
- const slots = (0, import_react19.useMemo)(() => select({ ...variantProps }), [variantProps]);
7619
- const [selectedOptions, setSelectedOptions] = (0, import_react19.useState)(defaultSelectedOptions);
7620
- const [targetRect, setTargetRect] = (0, import_react19.useState)(null);
7621
- const [optionWrapperHeight, setOptionWrapperHeight] = (0, import_react19.useState)(0);
7622
- const [isVisible, setIsVisible] = (0, import_react19.useState)(false);
7623
- const [isOpen, setIsOpen] = (0, import_react19.useState)(false);
7624
- const selectWrapperRef = (0, import_react19.useRef)(null);
7625
- const optionWrapperRef = (0, import_react19.useRef)(null);
7798
+ const slots = (0, import_react17.useMemo)(() => select({ ...variantProps }), [variantProps]);
7799
+ const [selectedOptions, setSelectedOptions] = (0, import_react17.useState)(defaultSelectedOptions);
7800
+ const [targetRect, setTargetRect] = (0, import_react17.useState)(null);
7801
+ const [optionWrapperHeight, setOptionWrapperHeight] = (0, import_react17.useState)(0);
7802
+ const [isVisible, setIsVisible] = (0, import_react17.useState)(false);
7803
+ const [isOpen, setIsOpen] = (0, import_react17.useState)(false);
7804
+ const selectWrapperRef = (0, import_react17.useRef)(null);
7805
+ const optionWrapperRef = (0, import_react17.useRef)(null);
7626
7806
  const handleToggleSelect = () => {
7627
7807
  if (isOpen) {
7628
7808
  setIsOpen(false);
@@ -7660,7 +7840,7 @@ var Select = (0, import_react19.forwardRef)((originalProps, ref) => {
7660
7840
  setSelectedOptions(nextOptions);
7661
7841
  onChange == null ? void 0 : onChange(nextOptions);
7662
7842
  };
7663
- (0, import_react19.useEffect)(() => {
7843
+ (0, import_react17.useEffect)(() => {
7664
7844
  const handleClickOutside = (e) => {
7665
7845
  var _a2;
7666
7846
  if (optionWrapperRef.current && !optionWrapperRef.current.contains(e.target) && !((_a2 = selectWrapperRef.current) == null ? void 0 : _a2.contains(e.target))) {
@@ -7671,7 +7851,7 @@ var Select = (0, import_react19.forwardRef)((originalProps, ref) => {
7671
7851
  window.addEventListener("mousedown", handleClickOutside);
7672
7852
  return () => window.removeEventListener("mousedown", handleClickOutside);
7673
7853
  }, []);
7674
- (0, import_react19.useEffect)(() => {
7854
+ (0, import_react17.useEffect)(() => {
7675
7855
  if (optionWrapperRef.current) {
7676
7856
  setOptionWrapperHeight(optionWrapperRef.current.getBoundingClientRect().height);
7677
7857
  }
@@ -7684,13 +7864,13 @@ var Select = (0, import_react19.forwardRef)((originalProps, ref) => {
7684
7864
  onClick
7685
7865
  }) => {
7686
7866
  const slot = select({ ...variantProps, isSelected });
7687
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { title: option.value, onClick, className: clsx(slot.option({ class: classNames == null ? void 0 : classNames.option })), children: [
7867
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { title: option.value, onClick, className: clsx(slot.option({ class: classNames == null ? void 0 : classNames.option })), children: [
7688
7868
  option.value,
7689
- isSelected && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Icon_default, { name: "check", size: originalProps.size })
7869
+ isSelected && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Icon_default, { name: "check", size: originalProps.size })
7690
7870
  ] });
7691
7871
  };
7692
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_jsx_runtime21.Fragment, { children: [
7693
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
7872
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
7873
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
7694
7874
  "div",
7695
7875
  {
7696
7876
  className: clsx(
@@ -7698,9 +7878,9 @@ var Select = (0, import_react19.forwardRef)((originalProps, ref) => {
7698
7878
  variantProps.direction === "horizon" ? slots.horizon({ class: classNames == null ? void 0 : classNames.horizon }) : slots.vertical({ class: classNames == null ? void 0 : classNames.vertical })
7699
7879
  ),
7700
7880
  children: [
7701
- label && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("label", { className: slots.label({ class: classNames == null ? void 0 : classNames.label }), children: label }),
7702
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: slots.wrapper({ class: classNames == null ? void 0 : classNames.wrapper }), children: [
7703
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
7881
+ label && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("label", { className: slots.label({ class: classNames == null ? void 0 : classNames.label }), children: label }),
7882
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: slots.wrapper({ class: classNames == null ? void 0 : classNames.wrapper }), children: [
7883
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
7704
7884
  "div",
7705
7885
  {
7706
7886
  "data-expanded": isOpen,
@@ -7711,7 +7891,7 @@ var Select = (0, import_react19.forwardRef)((originalProps, ref) => {
7711
7891
  ref: selectWrapperRef,
7712
7892
  onClick: handleToggleSelect,
7713
7893
  children: [
7714
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
7894
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
7715
7895
  "input",
7716
7896
  {
7717
7897
  ...inputProps,
@@ -7725,7 +7905,7 @@ var Select = (0, import_react19.forwardRef)((originalProps, ref) => {
7725
7905
  size: 0
7726
7906
  }
7727
7907
  ),
7728
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
7908
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
7729
7909
  Icon_default,
7730
7910
  {
7731
7911
  name: "brace-up",
@@ -7736,14 +7916,14 @@ var Select = (0, import_react19.forwardRef)((originalProps, ref) => {
7736
7916
  ]
7737
7917
  }
7738
7918
  ),
7739
- helperMessage && !errorMessage && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { className: slots.helperMessage({ class: classNames == null ? void 0 : classNames.helperMessage }), children: helperMessage }),
7740
- errorMessage && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { className: clsx("error", slots.errorMessage({ class: classNames == null ? void 0 : classNames.errorMessage })), children: errorMessage })
7919
+ helperMessage && !errorMessage && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("p", { className: slots.helperMessage({ class: classNames == null ? void 0 : classNames.helperMessage }), children: helperMessage }),
7920
+ errorMessage && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("p", { className: clsx("error", slots.errorMessage({ class: classNames == null ? void 0 : classNames.errorMessage })), children: errorMessage })
7741
7921
  ] })
7742
7922
  ]
7743
7923
  }
7744
7924
  ),
7745
7925
  isVisible && (0, import_react_dom.createPortal)(
7746
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
7926
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
7747
7927
  "div",
7748
7928
  {
7749
7929
  ref: optionWrapperRef,
@@ -7760,7 +7940,7 @@ var Select = (0, import_react19.forwardRef)((originalProps, ref) => {
7760
7940
  },
7761
7941
  children: options.map((option) => {
7762
7942
  const isSelected = selectedOptions.some((o) => o.key === option.key);
7763
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
7943
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
7764
7944
  Option,
7765
7945
  {
7766
7946
  option,
@@ -7816,13 +7996,16 @@ var select = tv({
7816
7996
  variants: {
7817
7997
  color: {
7818
7998
  primary: {
7819
- selectWrapper: ["hover:text-primary-main"],
7820
- option: ["hover:bg-primary-soft", "hover:text-primary-main"]
7999
+ selectWrapper: ["text-primary-main"],
8000
+ select: ["text-primary-main"],
8001
+ option: ["hover:bg-primary-soft", "hover:text-primary-main"],
8002
+ helperMessage: ["text-primary-main"]
7821
8003
  },
7822
8004
  secondary: {
7823
- selectWrapper: ["hover:text-secondary-main"],
8005
+ selectWrapper: ["text-secondary-main"],
7824
8006
  select: ["text-secondary-main"],
7825
- option: ["hover:bg-secondary-soft", "hover:text-secondary-main"]
8007
+ option: ["hover:bg-secondary-soft", "hover:text-secondary-main"],
8008
+ helperMessage: ["text-secondary-main"]
7826
8009
  }
7827
8010
  },
7828
8011
  size: {
@@ -7929,16 +8112,16 @@ var select = tv({
7929
8112
  });
7930
8113
 
7931
8114
  // src/components/chip/chip.tsx
7932
- var import_react20 = require("react");
7933
- var import_jsx_runtime22 = require("react/jsx-runtime");
7934
- var Chip = (0, import_react20.forwardRef)((originalProps, ref) => {
8115
+ var import_react18 = require("react");
8116
+ var import_jsx_runtime23 = require("react/jsx-runtime");
8117
+ var Chip = (0, import_react18.forwardRef)((originalProps, ref) => {
7935
8118
  var _a;
7936
8119
  const [rawProps, variantProps] = mapPropsVariants(originalProps, chipStyle.variantKeys);
7937
8120
  const props = { ...rawProps, ...variantProps };
7938
8121
  const Component = props.onClick ? "button" : "div";
7939
- const slots = (0, import_react20.useMemo)(() => chipStyle({ ...variantProps }), [variantProps]);
7940
- const renderIcon = (name) => name ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Icon_default, { name, fill: true, size: props.size, className: slots.icon() }) : null;
7941
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
8122
+ const slots = (0, import_react18.useMemo)(() => chipStyle({ ...variantProps }), [variantProps]);
8123
+ const renderIcon = (name) => name ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Icon_default, { name, fill: true, size: props.size, className: slots.icon() }) : null;
8124
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
7942
8125
  Component,
7943
8126
  {
7944
8127
  ref,
@@ -8114,13 +8297,13 @@ var chipStyle = tv({
8114
8297
  });
8115
8298
 
8116
8299
  // src/components/radio/radio.tsx
8117
- var import_react21 = require("react");
8118
- var import_jsx_runtime23 = require("react/jsx-runtime");
8119
- var Radio = (0, import_react21.forwardRef)((originalProps, ref) => {
8300
+ var import_react19 = require("react");
8301
+ var import_jsx_runtime24 = require("react/jsx-runtime");
8302
+ var Radio = (0, import_react19.forwardRef)((originalProps, ref) => {
8120
8303
  const [props, variantProps] = mapPropsVariants(originalProps, radioStyle.variantKeys);
8121
8304
  const { children, classNames, labelPosition = "end", ...inputProps } = props;
8122
- const slots = (0, import_react21.useMemo)(() => radioStyle({ ...variantProps }), [variantProps]);
8123
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
8305
+ const slots = (0, import_react19.useMemo)(() => radioStyle({ ...variantProps }), [variantProps]);
8306
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
8124
8307
  "label",
8125
8308
  {
8126
8309
  className: clsx(
@@ -8128,9 +8311,9 @@ var Radio = (0, import_react21.forwardRef)((originalProps, ref) => {
8128
8311
  labelPosition === "start" && slots.labelReverse({ class: classNames == null ? void 0 : classNames.labelReverse })
8129
8312
  ),
8130
8313
  children: [
8131
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "hidden", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("input", { ...inputProps, type: "radio", ref }) }),
8132
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: slots.outerDot({ class: classNames == null ? void 0 : classNames.outerDot }), children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: slots.innerDot({ class: classNames == null ? void 0 : classNames.innerDot }) }) }),
8133
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: slots.labelWrapper({ class: classNames == null ? void 0 : classNames.labelWrapper }), children: children && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: slots.label({ class: classNames == null ? void 0 : classNames.label }), children }) })
8314
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "hidden", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("input", { ...inputProps, type: "radio", ref }) }),
8315
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: slots.outerDot({ class: classNames == null ? void 0 : classNames.outerDot }), children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: slots.innerDot({ class: classNames == null ? void 0 : classNames.innerDot }) }) }),
8316
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: slots.labelWrapper({ class: classNames == null ? void 0 : classNames.labelWrapper }), children: children && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: slots.label({ class: classNames == null ? void 0 : classNames.label }), children }) })
8134
8317
  ]
8135
8318
  }
8136
8319
  );
@@ -8270,21 +8453,21 @@ var radioStyle = tv({
8270
8453
  });
8271
8454
 
8272
8455
  // src/components/switch/switch.tsx
8273
- var import_react22 = require("react");
8274
- var import_tailwind_variants20 = require("tailwind-variants");
8275
- var import_jsx_runtime24 = require("react/jsx-runtime");
8276
- var Switch = (0, import_react22.forwardRef)((originalProps, ref) => {
8456
+ var import_react20 = require("react");
8457
+ var import_tailwind_variants21 = require("tailwind-variants");
8458
+ var import_jsx_runtime25 = require("react/jsx-runtime");
8459
+ var Switch = (0, import_react20.forwardRef)((originalProps, ref) => {
8277
8460
  const [rawProps, variantProps] = mapPropsVariants(originalProps, switchStyle.variantKeys);
8278
8461
  const { size, color, isDisabled, disableAnimation, id, classNames, ...inputProps } = { ...rawProps, ...variantProps };
8279
- const slots = (0, import_react22.useMemo)(() => switchStyle({ ...variantProps }), [variantProps]);
8280
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("label", { className: slots.base({ class: classNames == null ? void 0 : classNames.base }), children: [
8281
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("input", { ...inputProps, id, ref, type: "checkbox", disabled: isDisabled, className: "hidden" }),
8282
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: slots.outerWrapper({ class: classNames == null ? void 0 : classNames.outerWrapper }), children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: slots.wrapper({ class: classNames == null ? void 0 : classNames.wrapper }), children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: slots.thumb({ class: classNames == null ? void 0 : classNames.thumb }) }) }) })
8462
+ const slots = (0, import_react20.useMemo)(() => switchStyle({ ...variantProps }), [variantProps]);
8463
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("label", { className: slots.base({ class: classNames == null ? void 0 : classNames.base }), children: [
8464
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("input", { ...inputProps, id, ref, type: "checkbox", disabled: isDisabled, className: "hidden" }),
8465
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: slots.outerWrapper({ class: classNames == null ? void 0 : classNames.outerWrapper }), children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: slots.wrapper({ class: classNames == null ? void 0 : classNames.wrapper }), children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: slots.thumb({ class: classNames == null ? void 0 : classNames.thumb }) }) }) })
8283
8466
  ] });
8284
8467
  });
8285
8468
  Switch.displayName = "Switch";
8286
8469
  var switch_default = Switch;
8287
- var switchStyle = (0, import_tailwind_variants20.tv)({
8470
+ var switchStyle = (0, import_tailwind_variants21.tv)({
8288
8471
  slots: {
8289
8472
  base: ["group/switch", "relative", "max-w-fit", "inline-flex", "items-center", "justify-start", "cursor-pointer"],
8290
8473
  outerWrapper: [
@@ -8389,7 +8572,7 @@ var switchStyle = (0, import_tailwind_variants20.tv)({
8389
8572
  });
8390
8573
 
8391
8574
  // src/components/tooltip/tooltip.tsx
8392
- var import_react24 = require("react");
8575
+ var import_react22 = require("react");
8393
8576
  var import_react_dom2 = require("react-dom");
8394
8577
 
8395
8578
  // src/components/tooltip/tooltip-utils.ts
@@ -8512,11 +8695,11 @@ var getTailStyles = (placement) => {
8512
8695
  };
8513
8696
 
8514
8697
  // src/components/tooltip/useTooltip.ts
8515
- var import_react23 = require("react");
8698
+ var import_react21 = require("react");
8516
8699
  var useTooltip = ({ placement, offset, targetRect }) => {
8517
- const [tooltipPosition, setTooltipPosition] = (0, import_react23.useState)({ x: 0, y: 0 });
8518
- const tooltipRef = (0, import_react23.useRef)(null);
8519
- (0, import_react23.useEffect)(() => {
8700
+ const [tooltipPosition, setTooltipPosition] = (0, import_react21.useState)({ x: 0, y: 0 });
8701
+ const tooltipRef = (0, import_react21.useRef)(null);
8702
+ (0, import_react21.useEffect)(() => {
8520
8703
  if (targetRect && tooltipRef.current) {
8521
8704
  const { width, height } = tooltipRef.current.getBoundingClientRect();
8522
8705
  const scrollX = window.scrollX;
@@ -8546,29 +8729,29 @@ var useTooltip = ({ placement, offset, targetRect }) => {
8546
8729
  };
8547
8730
 
8548
8731
  // src/components/tooltip/tooltip.tsx
8549
- var import_jsx_runtime25 = require("react/jsx-runtime");
8550
- var Tooltip = (0, import_react24.forwardRef)((originalProps, ref) => {
8732
+ var import_jsx_runtime26 = require("react/jsx-runtime");
8733
+ var Tooltip = (0, import_react22.forwardRef)((originalProps, ref) => {
8551
8734
  const [props, variantProps] = mapPropsVariants(originalProps, tooltipStyle.variantKeys);
8552
8735
  const { placement = "top", offset = 5, delay = 100, persistent = false, classNames } = props;
8553
- const slots = (0, import_react24.useMemo)(() => tooltipStyle({ ...variantProps }), [variantProps]);
8554
- const [targetRect, setTargetRect] = (0, import_react24.useState)(null);
8736
+ const slots = (0, import_react22.useMemo)(() => tooltipStyle({ ...variantProps }), [variantProps]);
8737
+ const [targetRect, setTargetRect] = (0, import_react22.useState)(null);
8555
8738
  const { tooltipPosition, tooltipRef } = useTooltip({
8556
8739
  placement,
8557
8740
  offset,
8558
8741
  delay,
8559
8742
  targetRect
8560
8743
  });
8561
- const childrenRef = (0, import_react24.useRef)(null);
8562
- const delayTimeoutRef = (0, import_react24.useRef)(null);
8563
- const getProps = (0, import_react24.useCallback)(
8744
+ const childrenRef = (0, import_react22.useRef)(null);
8745
+ const delayTimeoutRef = (0, import_react22.useRef)(null);
8746
+ const getProps = (0, import_react22.useCallback)(
8564
8747
  (slotKey, classNameKey) => ({
8565
8748
  className: slots[slotKey]({ class: classNames == null ? void 0 : classNames[classNameKey] })
8566
8749
  }),
8567
8750
  [slots, classNames]
8568
8751
  );
8569
- const getBaseProps = (0, import_react24.useCallback)(() => getProps("base", "base"), [getProps]);
8570
- const getContentProps = (0, import_react24.useCallback)(() => getProps("content", "content"), [getProps]);
8571
- const showTooltip = (0, import_react24.useCallback)(() => {
8752
+ const getBaseProps = (0, import_react22.useCallback)(() => getProps("base", "base"), [getProps]);
8753
+ const getContentProps = (0, import_react22.useCallback)(() => getProps("content", "content"), [getProps]);
8754
+ const showTooltip = (0, import_react22.useCallback)(() => {
8572
8755
  if (childrenRef.current) {
8573
8756
  const rect = childrenRef.current.getBoundingClientRect();
8574
8757
  setTargetRect({
@@ -8581,16 +8764,16 @@ var Tooltip = (0, import_react24.forwardRef)((originalProps, ref) => {
8581
8764
  });
8582
8765
  }
8583
8766
  }, []);
8584
- const hideTooltip = (0, import_react24.useCallback)(() => {
8767
+ const hideTooltip = (0, import_react22.useCallback)(() => {
8585
8768
  if (!persistent) {
8586
8769
  delayTimeoutRef.current = window.setTimeout(() => setTargetRect(null), delay);
8587
8770
  }
8588
8771
  }, [persistent, delay]);
8589
- (0, import_react24.useEffect)(() => {
8772
+ (0, import_react22.useEffect)(() => {
8590
8773
  if (persistent) showTooltip();
8591
8774
  }, [persistent, showTooltip]);
8592
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_jsx_runtime25.Fragment, { children: [
8593
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
8775
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_jsx_runtime26.Fragment, { children: [
8776
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
8594
8777
  "div",
8595
8778
  {
8596
8779
  ref: (node) => {
@@ -8607,7 +8790,7 @@ var Tooltip = (0, import_react24.forwardRef)((originalProps, ref) => {
8607
8790
  }
8608
8791
  ),
8609
8792
  targetRect && (0, import_react_dom2.createPortal)(
8610
- /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
8793
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
8611
8794
  "div",
8612
8795
  {
8613
8796
  ref: tooltipRef,
@@ -8620,7 +8803,7 @@ var Tooltip = (0, import_react24.forwardRef)((originalProps, ref) => {
8620
8803
  },
8621
8804
  children: [
8622
8805
  props.content,
8623
- variantProps.tail && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
8806
+ variantProps.tail && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
8624
8807
  "div",
8625
8808
  {
8626
8809
  className: `absolute h-2 w-2 rotate-45 bg-inherit ${getTailClassName(placement)}`,
@@ -8671,10 +8854,10 @@ var tooltipStyle = tv({
8671
8854
  });
8672
8855
 
8673
8856
  // src/components/modal/modal.tsx
8674
- var import_react25 = require("react");
8857
+ var import_react23 = require("react");
8675
8858
  var import_react_dom3 = require("react-dom");
8676
- var import_jsx_runtime26 = require("react/jsx-runtime");
8677
- var Modal = (0, import_react25.forwardRef)((props, ref) => {
8859
+ var import_jsx_runtime27 = require("react/jsx-runtime");
8860
+ var Modal = (0, import_react23.forwardRef)((props, ref) => {
8678
8861
  const [localProps, variantProps] = mapPropsVariants(props, modal.variantKeys);
8679
8862
  const {
8680
8863
  classNames,
@@ -8688,8 +8871,8 @@ var Modal = (0, import_react25.forwardRef)((props, ref) => {
8688
8871
  onConfirm,
8689
8872
  onCancel
8690
8873
  } = localProps;
8691
- const slots = (0, import_react25.useMemo)(() => modal(variantProps), [variantProps]);
8692
- (0, import_react25.useEffect)(() => {
8874
+ const slots = (0, import_react23.useMemo)(() => modal(variantProps), [variantProps]);
8875
+ (0, import_react23.useEffect)(() => {
8693
8876
  document.body.classList.toggle("overflow-hidden", !!isOpen);
8694
8877
  if (!isOpen || isKeyboardDismissDisabled) return;
8695
8878
  const handleKeyDown = (e) => {
@@ -8703,10 +8886,10 @@ var Modal = (0, import_react25.forwardRef)((props, ref) => {
8703
8886
  }, [isOpen, isKeyboardDismissDisabled, onCancel]);
8704
8887
  if (!isOpen) return null;
8705
8888
  return (0, import_react_dom3.createPortal)(
8706
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_jsx_runtime26.Fragment, { children: [
8707
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(backdrop_default, { open: true }),
8708
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { ref, className: slots.base({ class: classNames == null ? void 0 : classNames.base }), children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: slots.modalWrapper({ class: classNames == null ? void 0 : classNames.modalWrapper }), children: [
8709
- showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
8889
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(import_jsx_runtime27.Fragment, { children: [
8890
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(backdrop_default, { open: true }),
8891
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { ref, className: slots.base({ class: classNames == null ? void 0 : classNames.base }), children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: slots.modalWrapper({ class: classNames == null ? void 0 : classNames.modalWrapper }), children: [
8892
+ showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
8710
8893
  Icon_default,
8711
8894
  {
8712
8895
  size: "xl",
@@ -8715,12 +8898,12 @@ var Modal = (0, import_react25.forwardRef)((props, ref) => {
8715
8898
  onClick: onCancel
8716
8899
  }
8717
8900
  ),
8718
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: slots.wrapper({ class: classNames == null ? void 0 : classNames.wrapper }), children: [
8719
- title && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: slots.title({ class: classNames == null ? void 0 : classNames.title }), children: title }),
8720
- typeof content === "string" ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: slots.content({ class: classNames == null ? void 0 : classNames.content }), children: content }) : content,
8721
- (cancelButtonText || confirmButtonText) && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: slots.footer({ class: classNames == null ? void 0 : classNames.footer }), children: [
8722
- cancelButtonText && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(button_default, { variant: "soft", color: "neutral", fullWidth: true, onClick: onCancel, children: cancelButtonText }),
8723
- confirmButtonText && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(button_default, { color: props.color, fullWidth: true, onClick: onConfirm, children: confirmButtonText })
8901
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: slots.wrapper({ class: classNames == null ? void 0 : classNames.wrapper }), children: [
8902
+ title && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: slots.title({ class: classNames == null ? void 0 : classNames.title }), children: title }),
8903
+ typeof content === "string" ? /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: slots.content({ class: classNames == null ? void 0 : classNames.content }), children: content }) : content,
8904
+ (cancelButtonText || confirmButtonText) && /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: slots.footer({ class: classNames == null ? void 0 : classNames.footer }), children: [
8905
+ cancelButtonText && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(button_default, { variant: "soft", color: "neutral", fullWidth: true, onClick: onCancel, children: cancelButtonText }),
8906
+ confirmButtonText && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(button_default, { color: props.color, fullWidth: true, onClick: onConfirm, children: confirmButtonText })
8724
8907
  ] })
8725
8908
  ] })
8726
8909
  ] }) })
@@ -8786,15 +8969,15 @@ var modal = tv({
8786
8969
  });
8787
8970
 
8788
8971
  // src/components/list/list.tsx
8789
- var import_react26 = require("react");
8790
- var import_jsx_runtime27 = require("react/jsx-runtime");
8791
- var List = (0, import_react26.forwardRef)((originalProps, ref) => {
8972
+ var import_react24 = require("react");
8973
+ var import_jsx_runtime28 = require("react/jsx-runtime");
8974
+ var List = (0, import_react24.forwardRef)((originalProps, ref) => {
8792
8975
  const [props, variantProps] = mapPropsVariants(originalProps, listStyle.variantKeys);
8793
8976
  const { children, classNames } = props;
8794
- const slots = (0, import_react26.useMemo)(() => listStyle(variantProps), [variantProps]);
8795
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { ref, className: slots.base({ class: classNames == null ? void 0 : classNames.base }), children: import_react26.Children.map(children, (child) => {
8796
- if (!(0, import_react26.isValidElement)(child)) return child;
8797
- return (0, import_react26.cloneElement)(child, {
8977
+ const slots = (0, import_react24.useMemo)(() => listStyle(variantProps), [variantProps]);
8978
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("div", { ref, className: slots.base({ class: classNames == null ? void 0 : classNames.base }), children: import_react24.Children.map(children, (child) => {
8979
+ if (!(0, import_react24.isValidElement)(child)) return child;
8980
+ return (0, import_react24.cloneElement)(child, {
8798
8981
  ...variantProps,
8799
8982
  ...child.props
8800
8983
  });
@@ -8831,9 +9014,9 @@ var listStyle = tv({
8831
9014
  });
8832
9015
 
8833
9016
  // src/components/list/listItem.tsx
8834
- var import_react27 = require("react");
8835
- var import_jsx_runtime28 = require("react/jsx-runtime");
8836
- var ListItem = (0, import_react27.forwardRef)((props, ref) => {
9017
+ var import_react25 = require("react");
9018
+ var import_jsx_runtime29 = require("react/jsx-runtime");
9019
+ var ListItem = (0, import_react25.forwardRef)((props, ref) => {
8837
9020
  const [rawProps, variantProps] = mapPropsVariants(props, listItemStyle.variantKeys);
8838
9021
  const {
8839
9022
  title,
@@ -8845,19 +9028,19 @@ var ListItem = (0, import_react27.forwardRef)((props, ref) => {
8845
9028
  classNames,
8846
9029
  onClick
8847
9030
  } = { ...rawProps, ...variantProps };
8848
- const slots = (0, import_react27.useMemo)(() => listItemStyle(variantProps), [variantProps]);
9031
+ const slots = (0, import_react25.useMemo)(() => listItemStyle(variantProps), [variantProps]);
8849
9032
  const iconSize = ["lg", "xl"].includes(size) ? "lg" : "md";
8850
9033
  const avatarSize = iconSize;
8851
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { ref, className: slots.base({ class: classNames == null ? void 0 : classNames.base }), "data-selected": selected, onClick, children: [
8852
- /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: slots.wrapper({ class: classNames == null ? void 0 : classNames.wrapper }), children: [
8853
- avatar && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(avatar_default, { ...avatar, variant: "round", size: avatarSize }),
8854
- startIconName && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Icon_default, { name: startIconName, fill: true, size, className: slots.startIcon({ class: classNames == null ? void 0 : classNames.startIcon }) }),
8855
- /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: slots.titleWrapper({ class: classNames == null ? void 0 : classNames.titleWrapper }), children: [
8856
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: slots.title({ class: classNames == null ? void 0 : classNames.title }), children: title }),
8857
- subTitle && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: slots.subTitle({ class: classNames == null ? void 0 : classNames.subTitle }), children: subTitle })
9034
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { ref, className: slots.base({ class: classNames == null ? void 0 : classNames.base }), "data-selected": selected, onClick, children: [
9035
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: slots.wrapper({ class: classNames == null ? void 0 : classNames.wrapper }), children: [
9036
+ avatar && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(avatar_default, { ...avatar, variant: "round", size: avatarSize }),
9037
+ startIconName && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Icon_default, { name: startIconName, fill: true, size, className: slots.startIcon({ class: classNames == null ? void 0 : classNames.startIcon }) }),
9038
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: slots.titleWrapper({ class: classNames == null ? void 0 : classNames.titleWrapper }), children: [
9039
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: slots.title({ class: classNames == null ? void 0 : classNames.title }), children: title }),
9040
+ subTitle && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: slots.subTitle({ class: classNames == null ? void 0 : classNames.subTitle }), children: subTitle })
8858
9041
  ] })
8859
9042
  ] }),
8860
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Icon_default, { name: "right-chevron", size: iconSize, className: slots.icon({ class: classNames == null ? void 0 : classNames.icon }) })
9043
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Icon_default, { name: "right-chevron", size: iconSize, className: slots.icon({ class: classNames == null ? void 0 : classNames.icon }) })
8861
9044
  ] });
8862
9045
  });
8863
9046
  ListItem.displayName = "ListItem";
@@ -9025,9 +9208,9 @@ var listItemStyle = tv({
9025
9208
  });
9026
9209
 
9027
9210
  // src/components/toast/toast.tsx
9028
- var import_react28 = require("react");
9029
- var import_jsx_runtime29 = require("react/jsx-runtime");
9030
- var Toast = (0, import_react28.forwardRef)((originalProps, ref) => {
9211
+ var import_react26 = require("react");
9212
+ var import_jsx_runtime30 = require("react/jsx-runtime");
9213
+ var Toast = (0, import_react26.forwardRef)((originalProps, ref) => {
9031
9214
  const [props, variantProps] = mapPropsVariants(originalProps, toast.variantKeys);
9032
9215
  const {
9033
9216
  title,
@@ -9041,9 +9224,9 @@ var Toast = (0, import_react28.forwardRef)((originalProps, ref) => {
9041
9224
  disableAnimation,
9042
9225
  onClose
9043
9226
  } = { ...props, ...variantProps };
9044
- const slots = (0, import_react28.useMemo)(() => toast({ ...variantProps }), [variantProps]);
9045
- const toastRef = (0, import_react28.useRef)(null);
9046
- (0, import_react28.useImperativeHandle)(
9227
+ const slots = (0, import_react26.useMemo)(() => toast({ ...variantProps }), [variantProps]);
9228
+ const toastRef = (0, import_react26.useRef)(null);
9229
+ (0, import_react26.useImperativeHandle)(
9047
9230
  ref,
9048
9231
  () => ({
9049
9232
  getWidth: () => {
@@ -9054,7 +9237,7 @@ var Toast = (0, import_react28.forwardRef)((originalProps, ref) => {
9054
9237
  []
9055
9238
  );
9056
9239
  const animationClass = (placement == null ? void 0 : placement.includes("top")) ? "animate-slideInFromTop" : "animate-slideInFromBottom";
9057
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
9240
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
9058
9241
  "div",
9059
9242
  {
9060
9243
  ref: toastRef,
@@ -9066,12 +9249,12 @@ var Toast = (0, import_react28.forwardRef)((originalProps, ref) => {
9066
9249
  ),
9067
9250
  style: hasShadow ? { boxShadow: "0px 6px 18px rgba(0, 0, 0, 0.10)" } : {},
9068
9251
  children: [
9069
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: slots.wrapper({ class: classNames == null ? void 0 : classNames.wrapper }), children: [
9070
- showIcon && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Icon_default, { name: originalProps.icon || "info-circle", fill: true, className: "mt-[2px]" }),
9071
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: slots.title({ class: classNames == null ? void 0 : classNames.title }), children: title }),
9072
- showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(Icon_default, { name: "close", className: "cursor-pointer", onClick: onClose })
9252
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: slots.wrapper({ class: classNames == null ? void 0 : classNames.wrapper }), children: [
9253
+ showIcon && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Icon_default, { name: originalProps.icon || "info-circle", fill: true, className: "mt-[2px]" }),
9254
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: slots.title({ class: classNames == null ? void 0 : classNames.title }), children: title }),
9255
+ showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Icon_default, { name: "close", className: "cursor-pointer", onClick: onClose })
9073
9256
  ] }),
9074
- content && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { children: content })
9257
+ content && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { children: content })
9075
9258
  ]
9076
9259
  }
9077
9260
  );
@@ -9176,7 +9359,7 @@ var toast = tv({
9176
9359
  });
9177
9360
 
9178
9361
  // src/components/toast/use-toast.tsx
9179
- var import_react29 = require("react");
9362
+ var import_react27 = require("react");
9180
9363
 
9181
9364
  // src/components/toast/toast-utils.ts
9182
9365
  var getToastPosition = (placement, width, offset) => {
@@ -9215,10 +9398,10 @@ var getToastPosition = (placement, width, offset) => {
9215
9398
  };
9216
9399
 
9217
9400
  // src/components/toast/use-toast.tsx
9218
- var import_jsx_runtime30 = require("react/jsx-runtime");
9219
- var ToastContext = (0, import_react29.createContext)(null);
9401
+ var import_jsx_runtime31 = require("react/jsx-runtime");
9402
+ var ToastContext = (0, import_react27.createContext)(null);
9220
9403
  var useToast = () => {
9221
- const context = (0, import_react29.useContext)(ToastContext);
9404
+ const context = (0, import_react27.useContext)(ToastContext);
9222
9405
  if (!context) {
9223
9406
  throw new Error("useToast must be used within a ToastProvider");
9224
9407
  }
@@ -9228,10 +9411,10 @@ var ToastProvider = ({
9228
9411
  globalOptions,
9229
9412
  children
9230
9413
  }) => {
9231
- const [toasts, setToasts] = (0, import_react29.useState)([]);
9232
- const [containerStyle, setContainerStyle] = (0, import_react29.useState)({});
9233
- const toastRef = (0, import_react29.useRef)(null);
9234
- const addToast = (0, import_react29.useCallback)(
9414
+ const [toasts, setToasts] = (0, import_react27.useState)([]);
9415
+ const [containerStyle, setContainerStyle] = (0, import_react27.useState)({});
9416
+ const toastRef = (0, import_react27.useRef)(null);
9417
+ const addToast = (0, import_react27.useCallback)(
9235
9418
  (title, options = {}) => {
9236
9419
  const id = Date.now() + Math.floor(Math.random() * 1e5);
9237
9420
  const newToast = {
@@ -9248,11 +9431,11 @@ var ToastProvider = ({
9248
9431
  },
9249
9432
  [globalOptions]
9250
9433
  );
9251
- const removeToast = (0, import_react29.useCallback)((id) => {
9434
+ const removeToast = (0, import_react27.useCallback)((id) => {
9252
9435
  setToasts((prevToasts) => prevToasts.filter((toast2) => toast2.id !== id));
9253
9436
  }, []);
9254
9437
  const contextValue = addToast;
9255
- (0, import_react29.useEffect)(() => {
9438
+ (0, import_react27.useEffect)(() => {
9256
9439
  var _a;
9257
9440
  const width = (globalOptions == null ? void 0 : globalOptions.width) ? globalOptions.width : typeof ((_a = toastRef.current) == null ? void 0 : _a.getWidth) === "function" ? toastRef.current.getWidth() : 300;
9258
9441
  const offset = 20;
@@ -9266,18 +9449,18 @@ var ToastProvider = ({
9266
9449
  right: right !== void 0 ? `${right}px` : void 0
9267
9450
  });
9268
9451
  }, [globalOptions == null ? void 0 : globalOptions.placement, globalOptions == null ? void 0 : globalOptions.width]);
9269
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(ToastContext.Provider, { value: contextValue, children: [
9452
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(ToastContext.Provider, { value: contextValue, children: [
9270
9453
  children,
9271
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { id: "deepnoid-toast-container", className: "flex flex-col gap-[10px]", style: containerStyle, children: toasts.map((toast2) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(toast_default, { ref: toastRef, onClose: () => removeToast(toast2.id), ...toast2 }, toast2.id)) })
9454
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { id: "deepnoid-toast-container", className: "flex flex-col gap-[10px]", style: containerStyle, children: toasts.map((toast2) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(toast_default, { ref: toastRef, onClose: () => removeToast(toast2.id), ...toast2 }, toast2.id)) })
9272
9455
  ] });
9273
9456
  };
9274
9457
 
9275
9458
  // src/components/dateTimePicker/dateTimePicker.tsx
9276
- var import_react33 = __toESM(require("react"));
9459
+ var import_react31 = __toESM(require("react"));
9277
9460
  var import_react_dom4 = require("react-dom");
9278
9461
 
9279
9462
  // src/components/dateTimePicker/useDateTimePicker.tsx
9280
- var import_react30 = require("react");
9463
+ var import_react28 = require("react");
9281
9464
 
9282
9465
  // src/components/dateTimePicker/util.ts
9283
9466
  var formatDateToString = (date) => {
@@ -9293,17 +9476,17 @@ var formatStringToDate = (date) => {
9293
9476
 
9294
9477
  // src/components/dateTimePicker/useDateTimePicker.tsx
9295
9478
  var useDatePicker = ({ initialDate, initialTime }) => {
9296
- const [selectedDate, setSelectedDate] = (0, import_react30.useState)(
9479
+ const [selectedDate, setSelectedDate] = (0, import_react28.useState)(
9297
9480
  initialDate ? formatDateToString(initialDate) : ""
9298
9481
  );
9299
- const [selectedTime, setSelectedTime] = (0, import_react30.useState)(initialTime ? initialTime : "");
9300
- const [targetRect, setTargetRect] = (0, import_react30.useState)(null);
9301
- const [popupWidth, setPopupWidth] = (0, import_react30.useState)(0);
9302
- const [popupHeight, setPopupHeight] = (0, import_react30.useState)(0);
9303
- const [isFocusInput, setIsFocusInput] = (0, import_react30.useState)(false);
9304
- const dateInputRef = (0, import_react30.useRef)(null);
9305
- const datePickerWrapperRef = (0, import_react30.useRef)(null);
9306
- const datePickerRef = (0, import_react30.useRef)(null);
9482
+ const [selectedTime, setSelectedTime] = (0, import_react28.useState)(initialTime ? initialTime : "");
9483
+ const [targetRect, setTargetRect] = (0, import_react28.useState)(null);
9484
+ const [popupWidth, setPopupWidth] = (0, import_react28.useState)(0);
9485
+ const [popupHeight, setPopupHeight] = (0, import_react28.useState)(0);
9486
+ const [isFocusInput, setIsFocusInput] = (0, import_react28.useState)(false);
9487
+ const dateInputRef = (0, import_react28.useRef)(null);
9488
+ const datePickerWrapperRef = (0, import_react28.useRef)(null);
9489
+ const datePickerRef = (0, import_react28.useRef)(null);
9307
9490
  const DATE_PICKER_GAP = 4;
9308
9491
  const calculatePositionWithScroll = (targetRect2) => {
9309
9492
  if (targetRect2 && popupWidth && popupHeight) {
@@ -9336,7 +9519,7 @@ var useDatePicker = ({ initialDate, initialTime }) => {
9336
9519
  const handleBlueInput = () => {
9337
9520
  setIsFocusInput(false);
9338
9521
  };
9339
- (0, import_react30.useEffect)(() => {
9522
+ (0, import_react28.useEffect)(() => {
9340
9523
  const onClickOutside = (e) => {
9341
9524
  if (datePickerRef.current && !datePickerRef.current.contains(e.target) && datePickerWrapperRef.current && !datePickerWrapperRef.current.contains(e.target)) {
9342
9525
  setTargetRect(null);
@@ -9345,7 +9528,7 @@ var useDatePicker = ({ initialDate, initialTime }) => {
9345
9528
  window.addEventListener("mousedown", onClickOutside);
9346
9529
  return () => window.removeEventListener("mousedown", onClickOutside);
9347
9530
  }, []);
9348
- (0, import_react30.useEffect)(() => {
9531
+ (0, import_react28.useEffect)(() => {
9349
9532
  if (datePickerWrapperRef.current) {
9350
9533
  setPopupHeight(datePickerWrapperRef.current.getBoundingClientRect().height);
9351
9534
  setPopupWidth(datePickerWrapperRef.current.getBoundingClientRect().width);
@@ -9370,19 +9553,19 @@ var useDatePicker = ({ initialDate, initialTime }) => {
9370
9553
  };
9371
9554
 
9372
9555
  // src/components/dateTimePicker/calendar.tsx
9373
- var import_react31 = __toESM(require("react"));
9374
- var import_jsx_runtime31 = require("react/jsx-runtime");
9375
- var Calendar = (0, import_react31.forwardRef)((originalProps, ref) => {
9556
+ var import_react29 = __toESM(require("react"));
9557
+ var import_jsx_runtime32 = require("react/jsx-runtime");
9558
+ var Calendar = (0, import_react29.forwardRef)((originalProps, ref) => {
9376
9559
  const [props, variantProps] = mapPropsVariants(originalProps, calendarStyle.variantKeys);
9377
9560
  const { selectedDate, classNames, highlightWeekend = true, onChangeDate, ...inputProps } = props;
9378
- const [currentDate, setCurrentDate] = (0, import_react31.useState)(selectedDate ? new Date(selectedDate) : /* @__PURE__ */ new Date());
9561
+ const [currentDate, setCurrentDate] = (0, import_react29.useState)(selectedDate ? new Date(selectedDate) : /* @__PURE__ */ new Date());
9379
9562
  const daysOfWeek = ["S", "M", "T", "W", "T", "F", "S"];
9380
- (0, import_react31.useEffect)(() => {
9563
+ (0, import_react29.useEffect)(() => {
9381
9564
  if (selectedDate) {
9382
9565
  setCurrentDate(new Date(selectedDate));
9383
9566
  }
9384
9567
  }, [selectedDate]);
9385
- const getCalendarDates = (0, import_react31.useCallback)(() => {
9568
+ const getCalendarDates = (0, import_react29.useCallback)(() => {
9386
9569
  const year = currentDate.getFullYear();
9387
9570
  const month = currentDate.getMonth();
9388
9571
  const firstDayOfMonth = new Date(year, month, 1).getDay();
@@ -9428,17 +9611,17 @@ var Calendar = (0, import_react31.forwardRef)((originalProps, ref) => {
9428
9611
  onChangeDate(formatted);
9429
9612
  }
9430
9613
  };
9431
- (0, import_react31.useImperativeHandle)(ref, () => ({
9614
+ (0, import_react29.useImperativeHandle)(ref, () => ({
9432
9615
  getSelectedDate: () => selectedDate
9433
9616
  }));
9434
- const slots = (0, import_react31.useMemo)(() => calendarStyle({ ...variantProps }), [variantProps]);
9435
- const getBaseProps = (0, import_react31.useCallback)(
9617
+ const slots = (0, import_react29.useMemo)(() => calendarStyle({ ...variantProps }), [variantProps]);
9618
+ const getBaseProps = (0, import_react29.useCallback)(
9436
9619
  () => ({
9437
9620
  className: `${slots.base({ class: classNames == null ? void 0 : classNames.base })}`
9438
9621
  }),
9439
9622
  [slots, classNames]
9440
9623
  );
9441
- const getDateTitleProps = (0, import_react31.useCallback)(
9624
+ const getDateTitleProps = (0, import_react29.useCallback)(
9442
9625
  (index) => {
9443
9626
  return {
9444
9627
  className: `${slots.dateTitle({
@@ -9450,7 +9633,7 @@ var Calendar = (0, import_react31.forwardRef)((originalProps, ref) => {
9450
9633
  },
9451
9634
  [slots, classNames, highlightWeekend]
9452
9635
  );
9453
- const getDateProps = (0, import_react31.useCallback)(
9636
+ const getDateProps = (0, import_react29.useCallback)(
9454
9637
  (dateObj) => {
9455
9638
  const today = /* @__PURE__ */ new Date();
9456
9639
  const isToday = today.getDate() === dateObj.date && today.getMonth() === currentDate.getMonth() && today.getFullYear() === currentDate.getFullYear();
@@ -9472,18 +9655,18 @@ var Calendar = (0, import_react31.forwardRef)((originalProps, ref) => {
9472
9655
  [slots, classNames, selectedDate, currentDate, highlightWeekend]
9473
9656
  );
9474
9657
  const calendarDates = getCalendarDates();
9475
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_jsx_runtime31.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { ...getBaseProps(), children: [
9476
- /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: "calendar-header flex justify-between items-center mb-4", children: [
9477
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Icon_default, { name: "brace-left", size: "md", className: "cursor-pointer", onClick: handlePrevMonth }),
9478
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { className: "text-h6 font-semibold", children: currentDate.toLocaleString("default", { year: "numeric", month: "2-digit" }) }),
9479
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Icon_default, { name: "brace-right", size: "md", className: "cursor-pointer", onClick: handleNextMonth })
9658
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_jsx_runtime32.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { ...getBaseProps(), children: [
9659
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "calendar-header flex justify-between items-center mb-4", children: [
9660
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Icon_default, { name: "brace-left", size: "md", className: "cursor-pointer", onClick: handlePrevMonth }),
9661
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "text-h6 font-semibold", children: currentDate.toLocaleString("default", { year: "numeric", month: "2-digit" }) }),
9662
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Icon_default, { name: "brace-right", size: "md", className: "cursor-pointer", onClick: handleNextMonth })
9480
9663
  ] }),
9481
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: "grid grid-cols-7 gap-2 text-center", children: daysOfWeek.map((day, index) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { ...getDateTitleProps(index), children: day }, `${day}-${index}`)) }),
9482
- /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: "grid grid-cols-7 gap-[5px] text-center mt-2", children: calendarDates.map((week, weekIndex) => {
9664
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: "grid grid-cols-7 gap-2 text-center", children: daysOfWeek.map((day, index) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { ...getDateTitleProps(index), children: day }, `${day}-${index}`)) }),
9665
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: "grid grid-cols-7 gap-[5px] text-center mt-2", children: calendarDates.map((week, weekIndex) => {
9483
9666
  const hasCurrentMonthDates = week.some((dateObj) => dateObj.currentMonth);
9484
9667
  if (!hasCurrentMonthDates) return null;
9485
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_react31.default.Fragment, { children: week.map((dateObj, index) => {
9486
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { ...getDateProps(dateObj), children: dateObj.date }, index);
9668
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(import_react29.default.Fragment, { children: week.map((dateObj, index) => {
9669
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { ...getDateProps(dateObj), children: dateObj.date }, index);
9487
9670
  }) }, weekIndex);
9488
9671
  }) })
9489
9672
  ] }) });
@@ -9554,22 +9737,22 @@ var calendarStyle = tv({
9554
9737
  });
9555
9738
 
9556
9739
  // src/components/dateTimePicker/timePicker.tsx
9557
- var import_react32 = require("react");
9558
- var import_jsx_runtime32 = require("react/jsx-runtime");
9740
+ var import_react30 = require("react");
9741
+ var import_jsx_runtime33 = require("react/jsx-runtime");
9559
9742
  var TimePicker = ({ color = "primary", selectedTime, isFocusInput, onChangeTime }) => {
9560
9743
  const TOTAL_HOURS = 12;
9561
9744
  const TOTAL_MINUTES = 60;
9562
9745
  const ITEM_HEIGHT = 30;
9563
9746
  const PERIODS = ["AM", "PM"];
9564
- const [selectedHour, setSelectedHour] = (0, import_react32.useState)("01");
9565
- const [selectedMinute, setSelectedMinute] = (0, import_react32.useState)("00");
9566
- const [selectedPeriod, setSelectedPeriod] = (0, import_react32.useState)("AM");
9567
- const hourRef = (0, import_react32.useRef)(null);
9568
- const minuteRef = (0, import_react32.useRef)(null);
9569
- const periodRef = (0, import_react32.useRef)(null);
9747
+ const [selectedHour, setSelectedHour] = (0, import_react30.useState)("01");
9748
+ const [selectedMinute, setSelectedMinute] = (0, import_react30.useState)("00");
9749
+ const [selectedPeriod, setSelectedPeriod] = (0, import_react30.useState)("AM");
9750
+ const hourRef = (0, import_react30.useRef)(null);
9751
+ const minuteRef = (0, import_react30.useRef)(null);
9752
+ const periodRef = (0, import_react30.useRef)(null);
9570
9753
  const hoursArray = [...Array(TOTAL_HOURS).keys()].map((i) => (i + 1).toString().padStart(2, "0"));
9571
9754
  const minutesArray = [...Array(TOTAL_MINUTES).keys()].map((i) => i.toString().padStart(2, "0"));
9572
- (0, import_react32.useEffect)(() => {
9755
+ (0, import_react30.useEffect)(() => {
9573
9756
  if (selectedTime) {
9574
9757
  const { formattedHour, minute, period } = parseAndFormatTime(selectedTime);
9575
9758
  setSelectedHour(formattedHour);
@@ -9580,7 +9763,7 @@ var TimePicker = ({ color = "primary", selectedTime, isFocusInput, onChangeTime
9580
9763
  scrollToSelectedTime();
9581
9764
  }
9582
9765
  }, [selectedTime, isFocusInput]);
9583
- (0, import_react32.useEffect)(() => {
9766
+ (0, import_react30.useEffect)(() => {
9584
9767
  scrollToSelectedTime();
9585
9768
  }, []);
9586
9769
  const parseAndFormatTime = (time) => {
@@ -9617,8 +9800,8 @@ var TimePicker = ({ color = "primary", selectedTime, isFocusInput, onChangeTime
9617
9800
  onChangeTime(formattedTime);
9618
9801
  }
9619
9802
  };
9620
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "flex h-[200px] p-[10px] gap-[5px] border border-neutral-main rounded-md bg-background shadow-lg", children: [
9621
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(list_default, { ref: periodRef, classNames: { base: "overflow-y-auto scrollbar-hide" }, children: PERIODS.map((period, index) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
9803
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "flex h-[200px] p-[10px] gap-[5px] border border-neutral-main rounded-md bg-background shadow-lg", children: [
9804
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(list_default, { ref: periodRef, classNames: { base: "overflow-y-auto scrollbar-hide" }, children: PERIODS.map((period, index) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
9622
9805
  listItem_default,
9623
9806
  {
9624
9807
  color,
@@ -9632,7 +9815,7 @@ var TimePicker = ({ color = "primary", selectedTime, isFocusInput, onChangeTime
9632
9815
  },
9633
9816
  `${period}-${index}`
9634
9817
  )) }),
9635
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(list_default, { ref: hourRef, classNames: { base: "overflow-y-auto scrollbar-hide" }, children: hoursArray.map((hour, index) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
9818
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(list_default, { ref: hourRef, classNames: { base: "overflow-y-auto scrollbar-hide" }, children: hoursArray.map((hour, index) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
9636
9819
  listItem_default,
9637
9820
  {
9638
9821
  color,
@@ -9646,7 +9829,7 @@ var TimePicker = ({ color = "primary", selectedTime, isFocusInput, onChangeTime
9646
9829
  },
9647
9830
  `${hour}-${index}`
9648
9831
  )) }),
9649
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(list_default, { ref: minuteRef, classNames: { base: "overflow-y-auto scrollbar-hide" }, children: minutesArray.map((minute, index) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
9832
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(list_default, { ref: minuteRef, classNames: { base: "overflow-y-auto scrollbar-hide" }, children: minutesArray.map((minute, index) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
9650
9833
  listItem_default,
9651
9834
  {
9652
9835
  color,
@@ -9665,8 +9848,8 @@ var TimePicker = ({ color = "primary", selectedTime, isFocusInput, onChangeTime
9665
9848
  var timePicker_default = TimePicker;
9666
9849
 
9667
9850
  // src/components/dateTimePicker/dateTimePicker.tsx
9668
- var import_jsx_runtime33 = require("react/jsx-runtime");
9669
- var DatePicker = (0, import_react33.forwardRef)((originalProps, ref) => {
9851
+ var import_jsx_runtime34 = require("react/jsx-runtime");
9852
+ var DatePicker = (0, import_react31.forwardRef)((originalProps, ref) => {
9670
9853
  const [props, variantProps] = mapPropsVariants(originalProps, dateTimePickerStyle.variantKeys);
9671
9854
  const {
9672
9855
  classNames,
@@ -9680,7 +9863,7 @@ var DatePicker = (0, import_react33.forwardRef)((originalProps, ref) => {
9680
9863
  onChangeTime,
9681
9864
  ...inputProps
9682
9865
  } = props;
9683
- const slots = (0, import_react33.useMemo)(() => dateTimePickerStyle({ ...variantProps }), [variantProps]);
9866
+ const slots = (0, import_react31.useMemo)(() => dateTimePickerStyle({ ...variantProps }), [variantProps]);
9684
9867
  const {
9685
9868
  selectedDate,
9686
9869
  selectedTime,
@@ -9701,32 +9884,32 @@ var DatePicker = (0, import_react33.forwardRef)((originalProps, ref) => {
9701
9884
  initialTime: typeof value === "string" ? value : void 0
9702
9885
  });
9703
9886
  const position = targetRect ? calculatePositionWithScroll(targetRect) : null;
9704
- const getBaseProps = (0, import_react33.useCallback)(
9887
+ const getBaseProps = (0, import_react31.useCallback)(
9705
9888
  () => ({
9706
9889
  className: slots.base({ class: classNames == null ? void 0 : classNames.base })
9707
9890
  }),
9708
9891
  [slots, classNames]
9709
9892
  );
9710
- const getLabelProps = (0, import_react33.useCallback)(
9893
+ const getLabelProps = (0, import_react31.useCallback)(
9711
9894
  () => ({
9712
9895
  className: slots.label({ class: classNames == null ? void 0 : classNames.label })
9713
9896
  }),
9714
9897
  [slots, classNames]
9715
9898
  );
9716
- const getInnerWrapperProps = (0, import_react33.useCallback)(
9899
+ const getInnerWrapperProps = (0, import_react31.useCallback)(
9717
9900
  () => ({
9718
9901
  className: slots.innerWrapper({ class: classNames == null ? void 0 : classNames.innerWrapper })
9719
9902
  }),
9720
9903
  [slots, classNames]
9721
9904
  );
9722
- const getInputWrapperProps = (0, import_react33.useCallback)(
9905
+ const getInputWrapperProps = (0, import_react31.useCallback)(
9723
9906
  () => ({
9724
9907
  className: slots.inputWrapper({ class: classNames == null ? void 0 : classNames.inputWrapper }),
9725
9908
  ref: datePickerRef
9726
9909
  }),
9727
9910
  [slots, classNames]
9728
9911
  );
9729
- const getInputProps = (0, import_react33.useCallback)(
9912
+ const getInputProps = (0, import_react31.useCallback)(
9730
9913
  () => ({
9731
9914
  ...inputProps,
9732
9915
  ref: ref || dateInputRef,
@@ -9757,33 +9940,33 @@ var DatePicker = (0, import_react33.forwardRef)((originalProps, ref) => {
9757
9940
  }),
9758
9941
  [inputProps, ref, dateInputRef, slots, classNames == null ? void 0 : classNames.input, selectedDate, selectedTime, type, value]
9759
9942
  );
9760
- const getContentProps = (0, import_react33.useCallback)(
9943
+ const getContentProps = (0, import_react31.useCallback)(
9761
9944
  () => ({
9762
9945
  className: slots.content({ class: classNames == null ? void 0 : classNames.content }),
9763
9946
  size: originalProps.size
9764
9947
  }),
9765
9948
  [slots, classNames, originalProps.size]
9766
9949
  );
9767
- const getErrorMessageProps = (0, import_react33.useCallback)(
9950
+ const getErrorMessageProps = (0, import_react31.useCallback)(
9768
9951
  () => ({
9769
9952
  className: slots.errorMessage({ class: classNames == null ? void 0 : classNames.errorMessage })
9770
9953
  }),
9771
9954
  [slots, classNames]
9772
9955
  );
9773
9956
  const renderStartContent = () => {
9774
- if (import_react33.default.isValidElement(startContent)) {
9957
+ if (import_react31.default.isValidElement(startContent)) {
9775
9958
  const existingProps = startContent.props;
9776
9959
  const mergedProps = {
9777
9960
  ...getContentProps(),
9778
9961
  className: `${getContentProps().className || ""} ${existingProps.className || ""}`.trim()
9779
9962
  };
9780
- return import_react33.default.cloneElement(startContent, mergedProps);
9963
+ return import_react31.default.cloneElement(startContent, mergedProps);
9781
9964
  } else {
9782
9965
  const contentProps = getContentProps();
9783
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { ...contentProps, children: startContent });
9966
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { ...contentProps, children: startContent });
9784
9967
  }
9785
9968
  };
9786
- const renderDateTimePickerIcon = () => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { ...getContentProps(), onClick: handleToggleDatePicker, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
9969
+ const renderDateTimePickerIcon = () => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { ...getContentProps(), onClick: handleToggleDatePicker, children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
9787
9970
  Icon_default,
9788
9971
  {
9789
9972
  name: type === "time" ? "clock" : "calendar",
@@ -9793,18 +9976,18 @@ var DatePicker = (0, import_react33.forwardRef)((originalProps, ref) => {
9793
9976
  }
9794
9977
  ) });
9795
9978
  const renderContentWithIcon = () => {
9796
- if (import_react33.default.isValidElement(endContent)) {
9979
+ if (import_react31.default.isValidElement(endContent)) {
9797
9980
  const existingProps = endContent.props;
9798
9981
  const mergedProps = {
9799
9982
  ...getContentProps(),
9800
9983
  className: `${getContentProps().className || ""} ${existingProps.className || ""}`.trim()
9801
9984
  };
9802
- return import_react33.default.cloneElement(endContent, mergedProps);
9985
+ return import_react31.default.cloneElement(endContent, mergedProps);
9803
9986
  } else if (errorMessage) {
9804
9987
  const iconProps = { ...getContentProps(), className: getContentProps().className };
9805
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { ...iconProps, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Icon_default, { name: "exclamation-circle", fill: true, size: originalProps.size }) });
9988
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { ...iconProps, children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Icon_default, { name: "exclamation-circle", fill: true, size: originalProps.size }) });
9806
9989
  } else {
9807
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_jsx_runtime33.Fragment, {});
9990
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_jsx_runtime34.Fragment, {});
9808
9991
  }
9809
9992
  };
9810
9993
  const renderEndContent = () => {
@@ -9819,20 +10002,20 @@ var DatePicker = (0, import_react33.forwardRef)((originalProps, ref) => {
9819
10002
  return renderContentWithIcon();
9820
10003
  }
9821
10004
  };
9822
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_jsx_runtime33.Fragment, { children: [
9823
- /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { ...getBaseProps(), children: [
9824
- label && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("label", { ...getLabelProps(), children: label }),
9825
- /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { ...getInnerWrapperProps(), children: [
9826
- /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { ...getInputWrapperProps(), children: [
10005
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(import_jsx_runtime34.Fragment, { children: [
10006
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { ...getBaseProps(), children: [
10007
+ label && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("label", { ...getLabelProps(), children: label }),
10008
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { ...getInnerWrapperProps(), children: [
10009
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { ...getInputWrapperProps(), children: [
9827
10010
  startContent && renderStartContent(),
9828
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("input", { ...getInputProps() }),
10011
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("input", { ...getInputProps() }),
9829
10012
  renderEndContent()
9830
10013
  ] }),
9831
- errorMessage && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("p", { ...getErrorMessageProps(), children: errorMessage })
10014
+ errorMessage && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("p", { ...getErrorMessageProps(), children: errorMessage })
9832
10015
  ] })
9833
10016
  ] }),
9834
- targetRect && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_jsx_runtime33.Fragment, { children: (0, import_react_dom4.createPortal)(
9835
- /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
10017
+ targetRect && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_jsx_runtime34.Fragment, { children: (0, import_react_dom4.createPortal)(
10018
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
9836
10019
  "div",
9837
10020
  {
9838
10021
  ref: datePickerWrapperRef,
@@ -9843,7 +10026,7 @@ var DatePicker = (0, import_react33.forwardRef)((originalProps, ref) => {
9843
10026
  zIndex: 1e3
9844
10027
  },
9845
10028
  children: [
9846
- type === "date" && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
10029
+ type === "date" && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
9847
10030
  calendar_default,
9848
10031
  {
9849
10032
  color: originalProps.color,
@@ -9855,7 +10038,7 @@ var DatePicker = (0, import_react33.forwardRef)((originalProps, ref) => {
9855
10038
  }
9856
10039
  }
9857
10040
  ),
9858
- type === "time" && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
10041
+ type === "time" && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
9859
10042
  timePicker_default,
9860
10043
  {
9861
10044
  color: originalProps.color,
@@ -10005,20 +10188,20 @@ var dateTimePickerStyle = tv({
10005
10188
  });
10006
10189
 
10007
10190
  // src/components/tree/tree.tsx
10008
- var import_react34 = require("react");
10009
- var import_jsx_runtime34 = require("react/jsx-runtime");
10010
- var TreeNodeItem = (0, import_react34.forwardRef)(
10191
+ var import_react32 = require("react");
10192
+ var import_jsx_runtime35 = require("react/jsx-runtime");
10193
+ var TreeNodeItem = (0, import_react32.forwardRef)(
10011
10194
  ({ node, depth, fileIcon, selectedId, isLoading, classNames, onExpand }, ref) => {
10012
- const [isOpen, setIsOpen] = (0, import_react34.useState)(false);
10013
- const [children, setChildren] = (0, import_react34.useState)(node.children);
10014
- const [isLoadingChildren, setIsLoadingChildren] = (0, import_react34.useState)(false);
10015
- const slots = (0, import_react34.useMemo)(() => treeStyle(), []);
10016
- const hasMore = (0, import_react34.useMemo)(() => {
10195
+ const [isOpen, setIsOpen] = (0, import_react32.useState)(false);
10196
+ const [children, setChildren] = (0, import_react32.useState)(node.children);
10197
+ const [isLoadingChildren, setIsLoadingChildren] = (0, import_react32.useState)(false);
10198
+ const slots = (0, import_react32.useMemo)(() => treeStyle(), []);
10199
+ const hasMore = (0, import_react32.useMemo)(() => {
10017
10200
  if (node.isLeaf) return false;
10018
10201
  if (Array.isArray(children)) return children.length > 0;
10019
10202
  return typeof onExpand === "function";
10020
10203
  }, [node.isLeaf, children, onExpand]);
10021
- const toggleOpen = (0, import_react34.useCallback)(async () => {
10204
+ const toggleOpen = (0, import_react32.useCallback)(async () => {
10022
10205
  if (!isOpen && !children && onExpand && !node.isLeaf) {
10023
10206
  setIsLoadingChildren(true);
10024
10207
  try {
@@ -10043,7 +10226,7 @@ var TreeNodeItem = (0, import_react34.forwardRef)(
10043
10226
  (_a = node.onRightClick) == null ? void 0 : _a.call(node, e);
10044
10227
  };
10045
10228
  const marginClass = depth > 1 ? hasMore ? "ml-[30px]" : "ml-[55px]" : hasMore ? "" : "ml-[25px]";
10046
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
10229
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
10047
10230
  "div",
10048
10231
  {
10049
10232
  ref,
@@ -10053,14 +10236,18 @@ var TreeNodeItem = (0, import_react34.forwardRef)(
10053
10236
  isLoading ? "-translate-y-2 opacity-0" : "translate-y-0 opacity-100"
10054
10237
  ),
10055
10238
  children: [
10056
- /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
10239
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
10057
10240
  "div",
10058
10241
  {
10059
- className: clsx(slots.node({ class: classNames == null ? void 0 : classNames.node }), selectedId == node.id ? "bg-neutral-soft" : ""),
10242
+ className: clsx(
10243
+ slots.node({ class: classNames == null ? void 0 : classNames.node }),
10244
+ slots.clickable({ class: classNames == null ? void 0 : classNames.clickable }),
10245
+ selectedId == node.id ? "bg-neutral-soft" : ""
10246
+ ),
10060
10247
  onClick: handleClick,
10061
10248
  onContextMenu: handleRightClick,
10062
10249
  children: [
10063
- hasMore && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
10250
+ hasMore && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
10064
10251
  Icon_default,
10065
10252
  {
10066
10253
  name: "right-chevron",
@@ -10071,13 +10258,13 @@ var TreeNodeItem = (0, import_react34.forwardRef)(
10071
10258
  }
10072
10259
  ),
10073
10260
  fileIcon,
10074
- node.label
10261
+ node.content
10075
10262
  ]
10076
10263
  }
10077
10264
  ),
10078
- isOpen && /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { children: [
10079
- isLoadingChildren && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: "text-neutral py-1 text-sm", children: "loading..." }),
10080
- children == null ? void 0 : children.map((child) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
10265
+ isOpen && /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { children: [
10266
+ isLoadingChildren && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "text-neutral py-1 text-sm", children: "loading..." }),
10267
+ children == null ? void 0 : children.map((child) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
10081
10268
  TreeNodeItem,
10082
10269
  {
10083
10270
  node: child,
@@ -10106,15 +10293,35 @@ var Tree = ({
10106
10293
  classNames,
10107
10294
  onExpand
10108
10295
  }) => {
10109
- const slots = (0, import_react34.useMemo)(() => treeStyle(), []);
10110
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: slots.base({ class: classNames == null ? void 0 : classNames.base }), children: [
10111
- headerContent && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { children: headerContent }),
10112
- /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: slots.wrapper({ class: classNames == null ? void 0 : classNames.wrapper }), children: [
10113
- /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: slots.group({ class: classNames == null ? void 0 : classNames.group }), children: [
10114
- groupIcon,
10115
- group.label
10116
- ] }),
10117
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { children: group.data.map((node) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
10296
+ const slots = (0, import_react32.useMemo)(() => treeStyle(), []);
10297
+ const handleClick = (e) => {
10298
+ var _a;
10299
+ (_a = group.onClick) == null ? void 0 : _a.call(group, e);
10300
+ };
10301
+ const handleRightClick = (e) => {
10302
+ var _a;
10303
+ e.preventDefault();
10304
+ (_a = group.onRightClick) == null ? void 0 : _a.call(group, e);
10305
+ };
10306
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: slots.base({ class: classNames == null ? void 0 : classNames.base }), children: [
10307
+ headerContent && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { children: headerContent }),
10308
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: slots.wrapper({ class: classNames == null ? void 0 : classNames.wrapper }), children: [
10309
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
10310
+ "div",
10311
+ {
10312
+ className: clsx(
10313
+ slots.node({ class: classNames == null ? void 0 : classNames.node }),
10314
+ group.onClick || group.onRightClick ? slots.clickable({ class: classNames == null ? void 0 : classNames.clickable }) : ""
10315
+ ),
10316
+ onClick: handleClick,
10317
+ onContextMenu: handleRightClick,
10318
+ children: [
10319
+ groupIcon,
10320
+ group.content
10321
+ ]
10322
+ }
10323
+ ),
10324
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { children: group.data.map((node) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
10118
10325
  TreeNodeItem,
10119
10326
  {
10120
10327
  node,
@@ -10136,7 +10343,6 @@ var treeStyle = tv({
10136
10343
  slots: {
10137
10344
  base: ["border", "border-neutral-light", "rounded-xl", "p-[20px]", "flex", "flex-col", "gap-[20px]", "select-none"],
10138
10345
  wrapper: ["flex", "flex-col", "gap-[5px]"],
10139
- group: ["flex", "items-center", "gap-[5px]", "text-md", "font-bold", "text-body-foreground", "p-[5px]"],
10140
10346
  node: [
10141
10347
  "flex",
10142
10348
  "items-center",
@@ -10144,18 +10350,17 @@ var treeStyle = tv({
10144
10350
  "text-md",
10145
10351
  "font-bold",
10146
10352
  "text-body-foreground",
10147
- "hover:bg-neutral-soft",
10148
- "p-[5px]",
10149
10353
  "rounded-[5px]",
10150
- "cursor-pointer"
10151
- ]
10354
+ "p-[5px]"
10355
+ ],
10356
+ clickable: ["hover:bg-neutral-soft", "cursor-pointer"]
10152
10357
  }
10153
10358
  });
10154
10359
 
10155
10360
  // src/components/fileUpload/fileUpload.tsx
10156
- var import_react35 = require("react");
10157
- var import_tailwind_variants29 = require("tailwind-variants");
10158
- var import_jsx_runtime35 = require("react/jsx-runtime");
10361
+ var import_react33 = require("react");
10362
+ var import_tailwind_variants30 = require("tailwind-variants");
10363
+ var import_jsx_runtime36 = require("react/jsx-runtime");
10159
10364
  function FileUpload({
10160
10365
  buttonText,
10161
10366
  maxSizeMB = 10,
@@ -10168,11 +10373,11 @@ function FileUpload({
10168
10373
  showProgress,
10169
10374
  classNames
10170
10375
  }) {
10171
- const fileInputRef = (0, import_react35.useRef)(null);
10172
- const uploadIntervalRef = (0, import_react35.useRef)(null);
10173
- const [file, setFile] = (0, import_react35.useState)(null);
10174
- const [uploadProgress, setUploadProgress] = (0, import_react35.useState)(0);
10175
- const [errorMessage, setErrorMessage] = (0, import_react35.useState)("");
10376
+ const fileInputRef = (0, import_react33.useRef)(null);
10377
+ const uploadIntervalRef = (0, import_react33.useRef)(null);
10378
+ const [file, setFile] = (0, import_react33.useState)(null);
10379
+ const [uploadProgress, setUploadProgress] = (0, import_react33.useState)(0);
10380
+ const [errorMessage, setErrorMessage] = (0, import_react33.useState)("");
10176
10381
  const slots = fileUploadStyle();
10177
10382
  const handleButtonClick = () => {
10178
10383
  var _a;
@@ -10222,18 +10427,18 @@ function FileUpload({
10222
10427
  setUploadProgress(0);
10223
10428
  setErrorMessage("");
10224
10429
  };
10225
- (0, import_react35.useEffect)(() => {
10430
+ (0, import_react33.useEffect)(() => {
10226
10431
  return () => {
10227
10432
  if (uploadIntervalRef.current) {
10228
10433
  clearInterval(uploadIntervalRef.current);
10229
10434
  }
10230
10435
  };
10231
10436
  }, []);
10232
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: slots.base({ class: classNames == null ? void 0 : classNames.base }), children: [
10233
- /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: slots.container({ class: classNames == null ? void 0 : classNames.container }), children: [
10234
- /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: slots.inputWrapper(), children: [
10235
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(input_default, { name: "file", readOnly: true, variant: "outline", full: true, placeholder, defaultValue: file == null ? void 0 : file.name }),
10236
- file && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
10437
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: slots.base({ class: classNames == null ? void 0 : classNames.base }), children: [
10438
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: slots.container({ class: classNames == null ? void 0 : classNames.container }), children: [
10439
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: slots.inputWrapper(), children: [
10440
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(input_default, { name: "file", readOnly: true, variant: "outline", full: true, placeholder, defaultValue: file == null ? void 0 : file.name }),
10441
+ file && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
10237
10442
  icon_button_default,
10238
10443
  {
10239
10444
  name: "close",
@@ -10245,17 +10450,17 @@ function FileUpload({
10245
10450
  }
10246
10451
  )
10247
10452
  ] }),
10248
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(button_default, { type: "button", variant: "outline", onClick: handleButtonClick, children: buttonText }),
10249
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("input", { ref: fileInputRef, type: "file", hidden: true, accept: accept.join(","), onChange: handleFileChange })
10453
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(button_default, { type: "button", variant: "outline", onClick: handleButtonClick, children: buttonText }),
10454
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("input", { ref: fileInputRef, type: "file", hidden: true, accept: accept.join(","), onChange: handleFileChange })
10250
10455
  ] }),
10251
- showProgress && file && uploadProgress < 100 && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: slots.progressBarContainer(), children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: slots.progressBar(), style: { width: `${uploadProgress}%` } }) }),
10252
- !errorMessage && helperMessage && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("p", { className: slots.helperMessage(), children: helperMessage }),
10253
- errorMessage && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("p", { className: slots.errorMessage(), children: errorMessage })
10456
+ showProgress && file && uploadProgress < 100 && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: slots.progressBarContainer(), children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: slots.progressBar(), style: { width: `${uploadProgress}%` } }) }),
10457
+ !errorMessage && helperMessage && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("p", { className: slots.helperMessage(), children: helperMessage }),
10458
+ errorMessage && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("p", { className: slots.errorMessage(), children: errorMessage })
10254
10459
  ] });
10255
10460
  }
10256
10461
  FileUpload.displayName = "FileUpload";
10257
10462
  var fileUpload_default = FileUpload;
10258
- var fileUploadStyle = (0, import_tailwind_variants29.tv)({
10463
+ var fileUploadStyle = (0, import_tailwind_variants30.tv)({
10259
10464
  slots: {
10260
10465
  base: ["flex", "flex-col", "gap-[5px]"],
10261
10466
  container: ["flex", "items-center", "gap-[10px]"],
@@ -10289,6 +10494,7 @@ var fileUploadStyle = (0, import_tailwind_variants29.tv)({
10289
10494
  Radio,
10290
10495
  ScrollArea,
10291
10496
  Select,
10497
+ Skeleton,
10292
10498
  Switch,
10293
10499
  Table,
10294
10500
  Tabs,