@loword/loword-design-system 0.0.17 → 0.0.18

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 (85) hide show
  1. package/dist/components/LDAutoComplete/AutoCompleteBase.d.ts +1 -1
  2. package/dist/components/LDAutoComplete/AutoCompleteBase.d.ts.map +1 -1
  3. package/dist/components/LDAutoComplete/AutoCompleteBase.js +13 -4
  4. package/dist/components/LDBadge/LDBadge.d.ts +4 -6
  5. package/dist/components/LDBadge/LDBadge.d.ts.map +1 -1
  6. package/dist/components/LDBadge/LDBadge.js +1 -2
  7. package/dist/components/LDButton/LDButton.d.ts +0 -1
  8. package/dist/components/LDButton/LDButton.d.ts.map +1 -1
  9. package/dist/components/LDButton/LDButton.js +230 -91
  10. package/dist/components/LDCarousel/CarouselBase.d.ts +2 -2
  11. package/dist/components/LDCarousel/CarouselBase.d.ts.map +1 -1
  12. package/dist/components/LDCarousel/CarouselBase.js +5 -5
  13. package/dist/components/LDDataCalendar/LDDataCalendar.js +2 -2
  14. package/dist/components/LDDataCalendar/{DataCalendarBase.d.ts → LDDataCalendarBase.d.ts} +3 -3
  15. package/dist/components/LDDataCalendar/LDDataCalendarBase.d.ts.map +1 -0
  16. package/dist/components/LDDataCalendar/{DataCalendarBase.js → LDDataCalendarBase.js} +2 -2
  17. package/dist/components/LDDatePicker/LDDatePicker.d.ts.map +1 -1
  18. package/dist/components/LDDatePicker/LDDatePicker.js +2 -2
  19. package/dist/components/LDDateRangePicker/LDDateRangePicker.d.ts.map +1 -1
  20. package/dist/components/LDDateRangePicker/LDDateRangePicker.js +12 -2
  21. package/dist/components/LDEmpty/LDEmpty.d.ts.map +1 -1
  22. package/dist/components/LDEmpty/LDEmpty.js +16 -12
  23. package/dist/components/LDFileUpload/LDFileUploadList.d.ts +1 -1
  24. package/dist/components/LDFileUpload/LDFileUploadList.d.ts.map +1 -1
  25. package/dist/components/LDFileUpload/LDImageUpload.d.ts +1 -1
  26. package/dist/components/LDFileUpload/LDImageUpload.d.ts.map +1 -1
  27. package/dist/components/LDFileUpload/LDImageUploadList.d.ts +1 -1
  28. package/dist/components/LDFileUpload/LDImageUploadList.d.ts.map +1 -1
  29. package/dist/components/LDInput/LDFormInput.d.ts.map +1 -1
  30. package/dist/components/LDInput/LDFormInput.js +5 -7
  31. package/dist/components/LDInput/LDInput.d.ts +0 -1
  32. package/dist/components/LDInput/LDInput.d.ts.map +1 -1
  33. package/dist/components/LDInput/LDInput.js +161 -62
  34. package/dist/components/LDModal/LDModalView.d.ts.map +1 -1
  35. package/dist/components/LDModal/LDModalView.js +1 -2
  36. package/dist/components/LDNotification/LDNotification.d.ts.map +1 -1
  37. package/dist/components/LDNotification/LDNotification.js +27 -7
  38. package/dist/components/LDRadio/RadioBase.d.ts.map +1 -1
  39. package/dist/components/LDRadio/RadioBase.js +2 -2
  40. package/dist/components/LDRate/LDFormRate.d.ts +2 -2
  41. package/dist/components/LDRate/LDFormRate.d.ts.map +1 -1
  42. package/dist/components/LDRate/LDFormRate.js +3 -3
  43. package/dist/components/LDRate/LDRate.d.ts +4 -2
  44. package/dist/components/LDRate/LDRate.d.ts.map +1 -1
  45. package/dist/components/LDRate/LDRate.js +36 -22
  46. package/dist/components/LDSegmented/LDSegmented.d.ts.map +1 -1
  47. package/dist/components/LDSegmented/LDSegmented.js +62 -34
  48. package/dist/components/LDSegmented/useIsomorphicLayoutEffect.d.ts +2 -2
  49. package/dist/components/LDSegmented/useIsomorphicLayoutEffect.d.ts.map +1 -1
  50. package/dist/components/LDSelect/LDMultiSelect.d.ts.map +1 -1
  51. package/dist/components/LDSelect/LDMultiSelect.js +132 -39
  52. package/dist/components/LDSelect/LDSelect.d.ts.map +1 -1
  53. package/dist/components/LDSelect/LDSelect.js +109 -45
  54. package/dist/components/LDTable/LDCollapsibleTanstackTable.d.ts.map +1 -1
  55. package/dist/components/LDTable/LDCollapsibleTanstackTable.js +16 -5
  56. package/dist/components/LDTable/LDTanstackTable.d.ts.map +1 -1
  57. package/dist/components/LDTable/LDTanstackTable.js +10 -5
  58. package/dist/components/LDTable/TableField.d.ts +5 -2
  59. package/dist/components/LDTable/TableField.d.ts.map +1 -1
  60. package/dist/components/LDTable/TableField.js +54 -3
  61. package/dist/components/LDTabs/LDTabs.d.ts +11 -10
  62. package/dist/components/LDTabs/LDTabs.d.ts.map +1 -1
  63. package/dist/components/LDTabs/LDTabs.js +108 -108
  64. package/dist/components/LDTabs/TabsBase.d.ts +1 -1
  65. package/dist/components/LDTabs/TabsBase.d.ts.map +1 -1
  66. package/dist/components/LDTextarea/LDTextarea.d.ts.map +1 -1
  67. package/dist/components/LDTextarea/LDTextarea.js +103 -72
  68. package/dist/index.css +73 -68
  69. package/dist/index.d.ts +4 -3
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +1 -0
  72. package/dist/types/common.d.ts +13 -0
  73. package/dist/types/common.d.ts.map +1 -0
  74. package/dist/types/common.js +1 -0
  75. package/dist/types/subset.d.ts +17 -0
  76. package/dist/types/subset.d.ts.map +1 -0
  77. package/dist/types/subset.js +1 -0
  78. package/dist/utils/cn.d.ts.map +1 -1
  79. package/dist/utils/cn.js +33 -4
  80. package/dist/utils/tv.d.ts +27 -1
  81. package/dist/utils/tv.d.ts.map +1 -1
  82. package/dist/utils/tv.js +11 -1
  83. package/package.json +16 -12
  84. package/src/styles/components/input.css +25 -0
  85. package/dist/components/LDDataCalendar/DataCalendarBase.d.ts.map +0 -1
@@ -1,5 +1,4 @@
1
1
  import { type ReactNode, type Ref } from 'react';
2
- import { type InputSize } from '../../components/LDInput/LDInput.js';
3
2
  export interface IAutoCompleteItem {
4
3
  id: string | number;
5
4
  }
@@ -12,6 +11,7 @@ interface RootProps<T extends IAutoCompleteItem> {
12
11
  children?: ReactNode;
13
12
  ref?: Ref<HTMLDivElement>;
14
13
  }
14
+ type InputSize = '2xsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge';
15
15
  interface InputProps {
16
16
  placeholder?: string;
17
17
  size?: InputSize;
@@ -1 +1 @@
1
- {"version":3,"file":"AutoCompleteBase.d.ts","sourceRoot":"","sources":["../../../src/components/LDAutoComplete/AutoCompleteBase.tsx"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,GAAG,EAST,MAAM,OAAO,CAAC;AAEf,OAAO,EAEL,KAAK,SAAS,EACf,MAAM,kCAAkC,CAAC;AAG1C,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;CACrB;AA4CD,UAAU,SAAS,CAAC,CAAC,SAAS,iBAAiB;IAC7C,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC;IACvC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1C,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;CAC3B;AAwJD,UAAU,UAAU;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAsCD,UAAU,SAAS;IACjB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,SAAS,CAAC;CAC1B;AAgDD,UAAU,SAAS;IACjB,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;AAuCD,eAAO,MAAM,kBAAkB;WA9RjB,CAAC,SAAS,iBAAiB,oFAQtC,SAAS,CAAC,CAAC,CAAC;+CAwJZ,UAAU;+CA0CV,SAAS;4BA+CmB,SAAS;CA0CvC,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"AutoCompleteBase.d.ts","sourceRoot":"","sources":["../../../src/components/LDAutoComplete/AutoCompleteBase.tsx"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,GAAG,EAST,MAAM,OAAO,CAAC;AAIf,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;CACrB;AA4CD,UAAU,SAAS,CAAC,CAAC,SAAS,iBAAiB;IAC7C,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC;IACvC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1C,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;CAC3B;AAyJD,KAAK,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;AAYhF,UAAU,UAAU;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAsCD,UAAU,SAAS;IACjB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,SAAS,CAAC;CAC1B;AAgDD,UAAU,SAAS;IACjB,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;AAuCD,eAAO,MAAM,kBAAkB;WA3SjB,CAAC,SAAS,iBAAiB,oFAQtC,SAAS,CAAC,CAAC,CAAC;+CAqKZ,UAAU;+CA0CV,SAAS;4BA+CmB,SAAS;CA0CvC,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -2,15 +2,14 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { createContext, useCallback, useContext, useEffect, useRef, useState, } from 'react';
4
4
  import LDSpinner from '../../components/LDSpinner/LDSpinner.js';
5
- import { inputSizeClasses, } from '../../components/LDInput/LDInput.js';
6
5
  import cn from '../../utils/cn.js';
7
6
  const getItemValue = (item, field) => item[field];
8
7
  const AutoCompleteContext = createContext(null);
9
8
  const useAutoCompleteContext = () => {
10
- const autoCompeleteContext = useContext(AutoCompleteContext);
11
- if (!autoCompeleteContext)
9
+ const autoCompleteContext = useContext(AutoCompleteContext);
10
+ if (!autoCompleteContext)
12
11
  throw new Error('LDAutoComplete 하위 컴포넌트는 Root 내부에서 사용해야 합니다.');
13
- return autoCompeleteContext;
12
+ return autoCompleteContext;
14
13
  };
15
14
  const autoCompleteSizeClasses = {
16
15
  '2xsmall': 'autocomplete-2xs',
@@ -105,6 +104,7 @@ const Root = ({ displayField, subFields, onSelectedItem, onChange, className, ch
105
104
  setIsOpen(true);
106
105
  }
107
106
  setFocusedIdx(-1);
107
+ // eslint-disable-next-line react-hooks/exhaustive-deps
108
108
  }, [query]);
109
109
  useEffect(() => {
110
110
  const handleClickOverlay = (e) => {
@@ -142,6 +142,15 @@ const Root = ({ displayField, subFields, onSelectedItem, onChange, className, ch
142
142
  itemRefs,
143
143
  }, children: _jsx("div", { ref: combinedRef, className: cn('relative z-40 w-full', className), children: children }) }));
144
144
  };
145
+ // ── 스타일 매핑 ──
146
+ const inputSizeClasses = {
147
+ '2xsmall': 'input-2xs',
148
+ xsmall: 'input-xs',
149
+ small: 'input-sm',
150
+ medium: 'input-md',
151
+ large: 'input-lg',
152
+ xlarge: 'input-xl',
153
+ };
145
154
  const Input = ({ placeholder = '검색어를 입력하세요', size = 'medium', className, }) => {
146
155
  const { query, isOpen, handleChange, handleKeyDown, setIsComposing, setIsOpen, } = useAutoCompleteContext();
147
156
  return (_jsx("input", { type: "text", placeholder: placeholder, value: query, onChange: (e) => handleChange(e.target.value), onKeyDown: handleKeyDown, onCompositionStart: () => setIsComposing(true), onCompositionEnd: () => setIsComposing(false), onFocus: () => {
@@ -1,13 +1,11 @@
1
1
  import { type ReactNode } from 'react';
2
2
  type BadgeSize = 'xsmall' | 'small' | 'medium' | 'large';
3
3
  type BadgeColor = 'orange' | 'fillOrange' | 'red' | 'fillRed' | 'green' | 'fillGreen' | 'blue' | 'fillBlue' | 'yellow' | 'fillYellow' | 'gray' | 'fillGray';
4
- export interface LDBadgeProps<T extends string> {
5
- /** 뱃지 유형 키 (colorsMap의 키와 매칭) */
6
- type: T;
4
+ export interface LDBadgeProps {
7
5
  /** 뱃지 사이즈 */
8
6
  size?: BadgeSize;
9
- /** type별 색상 매핑 객체 (프리셋 BadgeColor 또는 커스텀 Tailwind 클래스) */
10
- colorsMap: Record<T, BadgeColor | string>;
7
+ /** 뱃지 사이즈 */
8
+ color: BadgeColor;
11
9
  /** 왼쪽 아이콘 (ReactNode) */
12
10
  leftIcon?: ReactNode;
13
11
  /** 오른쪽 아이콘 (ReactNode) */
@@ -19,6 +17,6 @@ export interface LDBadgeProps<T extends string> {
19
17
  /** 인라인 스타일 */
20
18
  style?: React.CSSProperties;
21
19
  }
22
- declare const LDBadge: <T extends string>({ type, size, colorsMap, leftIcon, rightIcon, children, className, style, }: LDBadgeProps<T>) => import("react/jsx-runtime").JSX.Element;
20
+ declare const LDBadge: ({ size, color, leftIcon, rightIcon, children, className, style, }: LDBadgeProps) => import("react/jsx-runtime").JSX.Element;
23
21
  export default LDBadge;
24
22
  //# sourceMappingURL=LDBadge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LDBadge.d.ts","sourceRoot":"","sources":["../../../src/components/LDBadge/LDBadge.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,KAAK,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AACzD,KAAK,UAAU,GACX,QAAQ,GACR,YAAY,GACZ,KAAK,GACL,SAAS,GACT,OAAO,GACP,WAAW,GACX,MAAM,GACN,UAAU,GACV,QAAQ,GACR,YAAY,GACZ,MAAM,GACN,UAAU,CAAC;AAEf,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,MAAM;IAC5C,iCAAiC;IACjC,IAAI,EAAE,CAAC,CAAC;IACR,aAAa;IACb,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC,CAAC;IAC1C,yBAAyB;IACzB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY;IACZ,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc;IACd,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AA+BD,QAAA,MAAM,OAAO,GAAI,CAAC,SAAS,MAAM,EAAE,6EAShC,YAAY,CAAC,CAAC,CAAC,4CAmBjB,CAAC;AAEF,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"LDBadge.d.ts","sourceRoot":"","sources":["../../../src/components/LDBadge/LDBadge.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,KAAK,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AACzD,KAAK,UAAU,GACX,QAAQ,GACR,YAAY,GACZ,KAAK,GACL,SAAS,GACT,OAAO,GACP,WAAW,GACX,MAAM,GACN,UAAU,GACV,QAAQ,GACR,YAAY,GACZ,MAAM,GACN,UAAU,CAAC;AAEf,MAAM,WAAW,YAAY;IAC3B,aAAa;IACb,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,aAAa;IACb,KAAK,EAAE,UAAU,CAAC;IAClB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY;IACZ,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc;IACd,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AA+BD,QAAA,MAAM,OAAO,GAAI,mEAQd,YAAY,4CAkBd,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -28,8 +28,7 @@ const iconSizes = {
28
28
  medium: 'icon-md',
29
29
  large: 'icon-lg',
30
30
  };
31
- const LDBadge = ({ type, size = 'small', colorsMap, leftIcon, rightIcon, children, className, style, }) => {
32
- const color = colorsMap[type];
31
+ const LDBadge = ({ size = 'small', color = 'blue', leftIcon, rightIcon, children, className, style, }) => {
33
32
  const iconSize = iconSizes[size];
34
33
  return (_jsxs(BadgeBase.Root, { className: cn('w-auto text-center whitespace-nowrap border border-transparent', colorClasses[color] ?? color, sizeClasses[size], className), style: style, children: [renderIcon(leftIcon, iconSize), children, renderIcon(rightIcon, iconSize)] }));
35
34
  };
@@ -6,7 +6,6 @@ type ButtonColor = 'neutral' | 'point' | 'danger';
6
6
  export type ButtonSize = '2xsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge';
7
7
  type ButtonShape = 'default' | 'capsule';
8
8
  type ButtonAlign = 'left' | 'center' | 'right';
9
- export declare const iconSizeClasses: Record<ButtonSize, string>;
10
9
  type _ButtonProps = {
11
10
  variant?: ButtonVariant;
12
11
  color?: ButtonColor;
@@ -1 +1 @@
1
- {"version":3,"file":"LDButton.d.ts","sourceRoot":"","sources":["../../../src/components/LDButton/LDButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAQpE,KAAK,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAC5D,KAAK,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAClD,MAAM,MAAM,UAAU,GAClB,SAAS,GACT,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,OAAO,GACP,QAAQ,CAAC;AACb,KAAK,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;AACzC,KAAK,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AA+E/C,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAOtD,CAAC;AAcF,KAAK,YAAY,GAAG;IAClB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,WAAW,IAAI,yBAAyB,CAC1E,CAAC,EACD,YAAY,CACb,CAAC;AAEF,KAAK,eAAe,GAAG,CAAC,CAAC,SAAS,KAAK,CAAC,WAAW,GAAG,QAAQ,EAC5D,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,KACpB,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;AAE/B,QAAA,MAAM,QAAQ,EAAE,eAoEf,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"LDButton.d.ts","sourceRoot":"","sources":["../../../src/components/LDButton/LDButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AASpE,KAAK,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAC5D,KAAK,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAClD,MAAM,MAAM,UAAU,GAClB,SAAS,GACT,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,OAAO,GACP,QAAQ,CAAC;AACb,KAAK,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;AACzC,KAAK,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAoO/C,KAAK,YAAY,GAAG;IAClB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,WAAW,IAAI,yBAAyB,CAC1E,CAAC,EACD,YAAY,CACb,CAAC;AAEF,KAAK,eAAe,GAAG,CAAC,CAAC,SAAS,KAAK,CAAC,WAAW,GAAG,QAAQ,EAC5D,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,KACpB,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;AAE/B,QAAA,MAAM,QAAQ,EAAE,eAwDf,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -1,102 +1,241 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import cn from '../../utils/cn.js';
3
3
  import { renderIcon } from '../../utils/renderIcon.js';
4
+ import tv from '../../utils/tv.js';
4
5
  import ButtonBase from './ButtonBase.js';
5
6
  import ButtonSpinner from './ButtonSpinner.js';
6
7
  // ── 스타일 매핑 (static) ──
7
- const variantBaseClasses = {
8
- solid: {
9
- neutral: 'bg-neutral800 text-white',
10
- point: 'bg-lb500 text-white',
11
- danger: 'bg-danger500 text-white',
8
+ // 배경·테두리·텍스트 색은 variant × color 조합에서 갈리고, 거기에 disabled/loading 상태까지
9
+ // 얹혀야 하므로 compoundVariants가 담당한다. 축 하나로 결정되는 값만 variants에 둔다.
10
+ const buttonVariants = tv({
11
+ base: 'relative ld-transition',
12
+ variants: {
13
+ // 색과 무관하게 variant만 보면 정해지는 조각 — outline의 선 굵기/오프셋, link의 밑줄,
14
+ // focus 링을 안쪽에 그릴지 바깥쪽에 그릴지. 선·글자 색은 compoundVariants에 있다.
15
+ variant: {
16
+ solid: 'focus-visible:ring-offset-2',
17
+ outline: 'outline -outline-offset-1 focus-visible:ring-inset',
18
+ ghost: 'focus-visible:ring-inset',
19
+ link: 'underline underline-offset-4 focus-visible:ring-inset',
20
+ },
21
+ // focus 링 색은 variant와 무관하게 color만 본다 (disabled일 때도 유지).
22
+ color: {
23
+ neutral: 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-neutral800',
24
+ point: 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-lb500',
25
+ danger: 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-danger500',
26
+ },
27
+ size: {
28
+ '2xsmall': 'btn-2xs',
29
+ xsmall: 'btn-xs',
30
+ small: 'btn-sm',
31
+ medium: 'btn-md',
32
+ large: 'btn-lg',
33
+ xlarge: 'btn-xl',
34
+ },
35
+ shape: {
36
+ default: 'rounded-[5px]',
37
+ capsule: 'rounded-full',
38
+ },
39
+ align: {
40
+ left: 'justify-start',
41
+ center: 'justify-center',
42
+ right: 'justify-end',
43
+ },
44
+ block: { true: 'w-full' },
45
+ // compact는 size 프리셋(btn-*)의 좌우 여백을 지우므로 size 뒤에 선언한다.
46
+ compact: { true: 'px-0 min-w-0 aspect-square' },
47
+ loading: { true: 'cursor-wait', false: 'cursor-pointer' },
48
+ // disabled 커서가 loading 커서를 이겨야 하므로 loading 뒤에 선언한다.
49
+ disabled: { true: 'cursor-not-allowed' },
12
50
  },
13
- outline: {
14
- neutral: 'bg-white outline -outline-offset-1 outline-neutral100 text-neutral900',
15
- point: 'bg-white outline -outline-offset-1 outline-lb500 text-lb500',
16
- danger: 'bg-white outline -outline-offset-1 outline-danger500 text-danger500',
51
+ compoundVariants: [
52
+ // ── 기본 (disabled 아닐 때만. loading 중에도 유지된다)
53
+ {
54
+ variant: 'solid',
55
+ color: 'neutral',
56
+ disabled: false,
57
+ className: 'bg-neutral800 text-white',
58
+ },
59
+ {
60
+ variant: 'solid',
61
+ color: 'point',
62
+ disabled: false,
63
+ className: 'bg-lb500 text-white',
64
+ },
65
+ {
66
+ variant: 'solid',
67
+ color: 'danger',
68
+ disabled: false,
69
+ className: 'bg-danger500 text-white',
70
+ },
71
+ {
72
+ variant: 'outline',
73
+ color: 'neutral',
74
+ disabled: false,
75
+ className: 'bg-white outline-neutral100 text-neutral900',
76
+ },
77
+ {
78
+ variant: 'outline',
79
+ color: 'point',
80
+ disabled: false,
81
+ className: 'bg-white outline-lb500 text-lb500',
82
+ },
83
+ {
84
+ variant: 'outline',
85
+ color: 'danger',
86
+ disabled: false,
87
+ className: 'bg-white outline-danger500 text-danger500',
88
+ },
89
+ // ghost와 link는 배경이 없어 기본 색이 동일하다 (link의 밑줄은 variant 축이 담당)
90
+ {
91
+ variant: ['ghost', 'link'],
92
+ color: 'neutral',
93
+ disabled: false,
94
+ className: 'bg-transparent text-neutral900',
95
+ },
96
+ {
97
+ variant: ['ghost', 'link'],
98
+ color: 'point',
99
+ disabled: false,
100
+ className: 'bg-transparent text-lb500',
101
+ },
102
+ {
103
+ variant: ['ghost', 'link'],
104
+ color: 'danger',
105
+ disabled: false,
106
+ className: 'bg-transparent text-danger500',
107
+ },
108
+ // ── hover/active (상호작용 가능할 때만 — loading 중엔 붙지 않는다)
109
+ // ghost는 outline과 같은 hover 배경을 쓰지만 active 유지 색이 없다.
110
+ {
111
+ variant: 'solid',
112
+ color: 'neutral',
113
+ disabled: false,
114
+ loading: false,
115
+ className: 'hover:bg-neutral900 active:bg-neutral900',
116
+ },
117
+ {
118
+ variant: 'solid',
119
+ color: 'point',
120
+ disabled: false,
121
+ loading: false,
122
+ className: 'hover:bg-lb700 active:bg-lb700',
123
+ },
124
+ {
125
+ variant: 'solid',
126
+ color: 'danger',
127
+ disabled: false,
128
+ loading: false,
129
+ className: 'hover:bg-danger700 active:bg-danger700',
130
+ },
131
+ {
132
+ variant: 'outline',
133
+ color: 'neutral',
134
+ disabled: false,
135
+ loading: false,
136
+ className: 'hover:bg-mono100 active:bg-mono100',
137
+ },
138
+ {
139
+ variant: 'outline',
140
+ color: 'point',
141
+ disabled: false,
142
+ loading: false,
143
+ className: 'hover:bg-accept50 active:bg-accept50',
144
+ },
145
+ {
146
+ variant: 'outline',
147
+ color: 'danger',
148
+ disabled: false,
149
+ loading: false,
150
+ className: 'hover:bg-danger50 active:bg-danger50',
151
+ },
152
+ {
153
+ variant: 'ghost',
154
+ color: 'neutral',
155
+ disabled: false,
156
+ loading: false,
157
+ className: 'hover:bg-mono100',
158
+ },
159
+ {
160
+ variant: 'ghost',
161
+ color: 'point',
162
+ disabled: false,
163
+ loading: false,
164
+ className: 'hover:bg-accept50',
165
+ },
166
+ {
167
+ variant: 'ghost',
168
+ color: 'danger',
169
+ disabled: false,
170
+ loading: false,
171
+ className: 'hover:bg-danger50',
172
+ },
173
+ {
174
+ variant: 'link',
175
+ color: 'neutral',
176
+ disabled: false,
177
+ loading: false,
178
+ className: 'hover:text-neutral900 active:text-neutral900',
179
+ },
180
+ {
181
+ variant: 'link',
182
+ color: 'point',
183
+ disabled: false,
184
+ loading: false,
185
+ className: 'hover:text-lb700 active:text-lb700',
186
+ },
187
+ {
188
+ variant: 'link',
189
+ color: 'danger',
190
+ disabled: false,
191
+ loading: false,
192
+ className: 'hover:text-danger600 active:text-danger600',
193
+ },
194
+ // ── disabled 색 (color와 무관하게 회색 고정)
195
+ {
196
+ variant: 'solid',
197
+ disabled: true,
198
+ className: 'bg-mono300 text-white',
199
+ },
200
+ {
201
+ variant: 'outline',
202
+ disabled: true,
203
+ className: 'text-mono300 outline-neutral100',
204
+ },
205
+ {
206
+ variant: ['ghost', 'link'],
207
+ disabled: true,
208
+ className: 'text-mono300',
209
+ },
210
+ ],
211
+ });
212
+ // leftIcon/rightIcon(svg) 크기. 버튼 자체가 아니라 아이콘 엘리먼트에 붙으므로 별도 tv()다.
213
+ const iconVariants = tv({
214
+ variants: {
215
+ size: {
216
+ '2xsmall': 'icon-2xs',
217
+ xsmall: 'icon-xs',
218
+ small: 'icon-sm',
219
+ medium: 'icon-md',
220
+ large: 'icon-lg',
221
+ xlarge: 'icon-xl',
222
+ },
17
223
  },
18
- ghost: {
19
- neutral: 'bg-transparent text-neutral900',
20
- point: 'bg-transparent text-lb500',
21
- danger: 'bg-transparent text-danger500',
22
- },
23
- link: {
24
- neutral: 'bg-transparent underline underline-offset-[4px] text-neutral900',
25
- point: 'bg-transparent text-lb500 underline underline-offset-[4px]',
26
- danger: 'bg-transparent text-danger500 underline underline-offset-[4px]',
27
- },
28
- };
29
- const variantHoverClasses = {
30
- solid: {
31
- neutral: 'hover:bg-neutral900 active:bg-neutral900',
32
- point: 'hover:bg-lb700 active:bg-lb700',
33
- danger: 'hover:bg-danger700 active:bg-danger700',
34
- },
35
- outline: {
36
- neutral: 'hover:bg-mono100 active:bg-mono100',
37
- point: 'hover:bg-accept50 active:bg-accept50',
38
- danger: 'hover:bg-danger50 active:bg-danger50',
39
- },
40
- ghost: {
41
- neutral: 'hover:bg-mono100',
42
- point: 'hover:bg-accept50',
43
- danger: 'hover:bg-danger50',
44
- },
45
- link: {
46
- neutral: 'hover:text-neutral900 active:text-neutral900',
47
- point: 'hover:text-lb700 active:text-lb700',
48
- danger: 'hover:text-danger600 active:text-danger600',
49
- },
50
- };
51
- const variantDisabledClasses = {
52
- solid: 'bg-mono300 text-white',
53
- outline: 'text-mono300 outline -outline-offset-1 outline-neutral100',
54
- ghost: 'text-mono300',
55
- link: 'text-mono300 underline underline-offset-[4px]',
56
- };
57
- const colorFocusClasses = {
58
- neutral: 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-neutral800',
59
- point: 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-lb500',
60
- danger: 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-danger500',
61
- };
62
- const sizeClasses = {
63
- '2xsmall': 'btn-2xs',
64
- xsmall: 'btn-xs',
65
- small: 'btn-sm',
66
- medium: 'btn-md',
67
- large: 'btn-lg',
68
- xlarge: 'btn-xl',
69
- };
70
- export const iconSizeClasses = {
71
- '2xsmall': 'icon-2xs',
72
- xsmall: 'icon-xs',
73
- small: 'icon-sm',
74
- medium: 'icon-md',
75
- large: 'icon-lg',
76
- xlarge: 'icon-xl',
77
- };
78
- const alignClasses = {
79
- left: 'justify-start',
80
- center: 'justify-center',
81
- right: 'justify-end',
82
- };
83
- const shapeClasses = {
84
- default: 'rounded-[5px]',
85
- capsule: 'rounded-full',
86
- };
224
+ });
87
225
  const LDButton = ({ as, variant = 'solid', color = 'point', size = 'small', shape = 'default', align = 'center', loading = false, block = false, children, className, leftIcon, rightIcon, compact = false, ref, ...props }) => {
88
- const iconSize = iconSizeClasses[size];
89
- return (_jsxs(ButtonBase.Root, { as: as, ref: ref, className: cn('relative ld-transition', {
90
- [variantBaseClasses[variant][color]]: !props.disabled,
91
- [variantHoverClasses[variant][color]]: !props.disabled && !loading,
92
- [variantDisabledClasses[variant]]: props.disabled,
93
- }, {
94
- [`${colorFocusClasses[color]} focus-visible:ring-offset-2`]: variant === 'solid',
95
- [`${colorFocusClasses[color]} focus-visible:ring-inset`]: variant !== 'solid',
96
- }, {
97
- ['cursor-pointer']: !props.disabled && !loading,
98
- ['cursor-wait']: !props.disabled && loading,
99
- ['cursor-not-allowed']: props.disabled,
100
- }, block && 'w-full', sizeClasses[size], shapeClasses[shape], alignClasses[align], compact && 'px-0 min-w-0 aspect-square', className), ...props, disabled: props.disabled || loading, children: [loading ? (_jsx(ButtonSpinner, { size: size, className: "mobile:absolute mobile:left-1/2 mobile:top-1/2 mobile:-translate-x-1/2 mobile:-translate-y-1/2" })) : (renderIcon(leftIcon, iconSize)), children && (_jsx("span", { className: cn('shrink-0', loading && 'mobile:invisible'), children: children })), renderIcon(rightIcon, iconSize, loading && 'mobile:invisible')] }));
226
+ const iconSize = iconVariants({ size });
227
+ return (_jsxs(ButtonBase.Root, { as: as, ref: ref, className: buttonVariants({
228
+ variant,
229
+ color,
230
+ size,
231
+ shape,
232
+ align,
233
+ block,
234
+ compact,
235
+ loading,
236
+ // 미지정도 false 분기(기본 색·hover)를 타야 하므로 boolean으로 좁혀 넘긴다.
237
+ disabled: !!props.disabled,
238
+ className,
239
+ }), ...props, disabled: props.disabled || loading, children: [loading ? (_jsx(ButtonSpinner, { size: size, className: "mobile:absolute mobile:left-1/2 mobile:top-1/2 mobile:-translate-x-1/2 mobile:-translate-y-1/2" })) : (renderIcon(leftIcon, iconSize)), children && (_jsx("span", { className: cn('shrink-0', loading && 'mobile:invisible'), children: children })), renderIcon(rightIcon, iconSize, loading && 'mobile:invisible')] }));
101
240
  };
102
241
  export default LDButton;
@@ -1,6 +1,6 @@
1
- import { type CSSProperties, type ReactNode } from 'react';
2
- import useEmblaCarousel from 'embla-carousel-react';
3
1
  import type { EmblaCarouselType, EmblaOptionsType } from 'embla-carousel';
2
+ import useEmblaCarousel from 'embla-carousel-react';
3
+ import { type CSSProperties, type ReactNode } from 'react';
4
4
  export type CarouselOrientation = 'horizontal' | 'vertical';
5
5
  interface AutoplayConfig {
6
6
  /** 자동 전환 간격(ms). 기본 4000 */
@@ -1 +1 @@
1
- {"version":3,"file":"CarouselBase.d.ts","sourceRoot":"","sources":["../../../src/components/LDCarousel/CarouselBase.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CarouselBase.d.ts","sourceRoot":"","sources":["../../../src/components/LDCarousel/CarouselBase.tsx"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { createContext, useCallback, useContext, useEffect, useState, } from 'react';
4
- import useEmblaCarousel from 'embla-carousel-react';
5
- import Autoplay from 'embla-carousel-autoplay';
6
3
  import AutoScroll from 'embla-carousel-auto-scroll';
7
- import cn from '../../utils/cn.js';
4
+ import Autoplay from 'embla-carousel-autoplay';
5
+ import useEmblaCarousel from 'embla-carousel-react';
8
6
  import { ChevronDown, ChevronLeft, ChevronRight, ChevronUp, } from 'lucide-react';
7
+ import { createContext, useCallback, useContext, useEffect, useState, } from 'react';
8
+ import cn from '../../utils/cn.js';
9
9
  const CarouselContext = createContext(null);
10
10
  const useCarouselContext = () => {
11
11
  const ctx = useContext(CarouselContext);
@@ -128,7 +128,7 @@ const Next = ({ className, children, ...props }) => {
128
128
  (orientation === 'vertical' ? (_jsx(ChevronDown, { size: 28, strokeWidth: 1.4 })) : (_jsx(ChevronRight, { size: 28, strokeWidth: 1.4 }))) }));
129
129
  };
130
130
  const TopArrows = ({ className, children, ...props }) => {
131
- const { scrollNext, scrollPrev, canScrollNext, canScrollPrev, orientation } = useCarouselContext();
131
+ const { scrollNext, scrollPrev, canScrollNext, canScrollPrev } = useCarouselContext();
132
132
  return (
133
133
  // ld-carousel__nav-top: 상단 화살표 영역의 고정 훅.
134
134
  // side 화살표의 .ld-carousel__nav 와 같은 역할 — 소비측에서 반응형 제어(예: 모바일에서만 숨김)를
@@ -2,12 +2,12 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { ChevronLeft, ChevronRight } from 'lucide-react';
4
4
  import cn from '../../utils/cn.js';
5
- import DataCalendarBase from './DataCalendarBase.js';
5
+ import LDDataCalendarBase from './LDDataCalendarBase.js';
6
6
  const navButtonClass = 'flex items-center justify-center rounded-full size-[30px] bg-neutral100 hover:bg-mono400 text-neutral500 hover:text-neutral900 ld-transition cursor-pointer';
7
7
  /**
8
8
  * LDDataCalendar — DataCalendarBase 컴파운드를 조립한 표시 전용 데이터 달력.
9
9
  * 헤더(Prev·Title·Next)·그리드·셀 스타일은 컴포넌트가 제공하고,
10
10
  * 날짜별 데이터는 `renderCell`, 선택 상세는 `renderDetail`로 주입한다.
11
11
  */
12
- const LDDataCalendar = ({ className, defaultMonth, onMonthChange, selectable, defaultSelectedDate, onSelectDate, weekdays, renderCell, renderDetail, }) => (_jsxs(DataCalendarBase.Root, { className: cn('w-full select-none', className), defaultMonth: defaultMonth, onMonthChange: onMonthChange, selectable: selectable, defaultSelectedDate: defaultSelectedDate, onSelectDate: onSelectDate, children: [_jsxs("div", { className: "flex items-center justify-between mb-md", children: [_jsx(DataCalendarBase.Prev, { className: navButtonClass, children: _jsx(ChevronLeft, { size: 15 }) }), _jsx(DataCalendarBase.Title, { className: "display32 mobile:display20 bold flex justify-center" }), _jsx(DataCalendarBase.Next, { className: navButtonClass, children: _jsx(ChevronRight, { size: 16 }) })] }), _jsx(DataCalendarBase.Grid, { weekdays: weekdays, weekdayClassName: "display14 mobile:display12 text-mono500 py-[10px] mobile:py-1", renderCell: (date, _i, isOutside) => (_jsx(DataCalendarBase.Cell, { date: date, isOutside: isOutside, className: cn('min-h-[100px] mobile:min-h-13 py-[10px] mobile:py-1 flex flex-col gap-[15px] mobile:gap-1 data-outside:*:text-mono400', 'data-selectable:cursor-pointer data-selectable:hover:bg-mono100 data-selectable:rounded-[5px] ld-transition', 'data-[selected=true]:bg-tintBlue data-[selected=true]:hover:bg-tintBlue'), dateClassName: "display16 mobile:display12 font-normal self-start leading-none data-[outside]:text-mono400 data-[outside]:font-normal data-[weekend]:text-danger600 data-[outside]:data-[weekend]:text-danger200", children: renderCell?.(date, isOutside) }, date.format('YYYY-MM-DD'))) }), renderDetail && (_jsx(DataCalendarBase.Detail, { className: "hidden mobile:block mt-md p-md rounded-[10px] bg-mono50", children: renderDetail }))] }));
12
+ const LDDataCalendar = ({ className, defaultMonth, onMonthChange, selectable, defaultSelectedDate, onSelectDate, weekdays, renderCell, renderDetail, }) => (_jsxs(LDDataCalendarBase.Root, { className: cn('w-full select-none', className), defaultMonth: defaultMonth, onMonthChange: onMonthChange, selectable: selectable, defaultSelectedDate: defaultSelectedDate, onSelectDate: onSelectDate, children: [_jsxs("div", { className: "flex items-center justify-between mb-md", children: [_jsx(LDDataCalendarBase.Prev, { className: navButtonClass, children: _jsx(ChevronLeft, { size: 15 }) }), _jsx(LDDataCalendarBase.Title, { className: "display32 mobile:display20 bold flex justify-center" }), _jsx(LDDataCalendarBase.Next, { className: navButtonClass, children: _jsx(ChevronRight, { size: 16 }) })] }), _jsx(LDDataCalendarBase.Grid, { weekdays: weekdays, weekdayClassName: "display14 mobile:display12 text-mono500 py-[10px] mobile:py-1", renderCell: (date, _i, isOutside) => (_jsx(LDDataCalendarBase.Cell, { date: date, isOutside: isOutside, className: cn('min-h-[100px] mobile:min-h-13 py-[10px] mobile:py-1 flex flex-col gap-[15px] mobile:gap-1 data-outside:*:text-mono400', 'data-selectable:cursor-pointer data-selectable:hover:bg-mono100 data-selectable:rounded-[5px] ld-transition', 'data-[selected=true]:bg-tintBlue data-[selected=true]:hover:bg-tintBlue'), dateClassName: "display16 mobile:display12 font-normal self-start leading-none data-[outside]:text-mono400 data-[outside]:font-normal data-[weekend]:text-danger600 data-[outside]:data-[weekend]:text-danger200", children: renderCell?.(date, isOutside) }, date.format('YYYY-MM-DD'))) }), renderDetail && (_jsx(LDDataCalendarBase.Detail, { className: "hidden mobile:block mt-md p-md rounded-[10px] bg-mono50", children: renderDetail }))] }));
13
13
  export default LDDataCalendar;
@@ -48,7 +48,7 @@ interface DetailProps {
48
48
  children: (selectedDate: Dayjs | null) => ReactNode;
49
49
  className?: string;
50
50
  }
51
- declare const DataCalendarBase: {
51
+ declare const LDDataCalendarBase: {
52
52
  Root: ({ children, className, defaultMonth, onMonthChange, selectable, defaultSelectedDate, onSelectDate, }: RootProps) => import("react/jsx-runtime").JSX.Element;
53
53
  Title: ({ className, format }: TitleProps) => import("react/jsx-runtime").JSX.Element;
54
54
  Prev: ({ children, className }: NavButtonProps) => import("react/jsx-runtime").JSX.Element;
@@ -57,5 +57,5 @@ declare const DataCalendarBase: {
57
57
  Cell: ({ date, isOutside, children, className, dateClassName, }: CellProps) => import("react/jsx-runtime").JSX.Element;
58
58
  Detail: ({ children, className }: DetailProps) => import("react/jsx-runtime").JSX.Element;
59
59
  };
60
- export default DataCalendarBase;
61
- //# sourceMappingURL=DataCalendarBase.d.ts.map
60
+ export default LDDataCalendarBase;
61
+ //# sourceMappingURL=LDDataCalendarBase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LDDataCalendarBase.d.ts","sourceRoot":"","sources":["../../../src/components/LDDataCalendar/LDDataCalendarBase.tsx"],"names":[],"mappings":"AAEA,OAAc,EAAE,KAAK,KAAK,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAC;AAItD,UAAU,uBAAuB;IAC/B,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,8DAA8D;IAC9D,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,oDAAoD;IACpD,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;CACpC;AAID,eAAO,MAAM,sBAAsB,+BAOlC,CAAC;AAIF,UAAU,SAAS;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACvC,6CAA6C;IAC7C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe;IACf,mBAAmB,CAAC,EAAE,KAAK,CAAC;IAC5B,iBAAiB;IACjB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;CACtC;AA6CD,UAAU,UAAU;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AASD,UAAU,cAAc;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAwBD,UAAU,SAAS;IACjB,UAAU,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,SAAS,CAAC;IAC1E,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAgDD,UAAU,SAAS;IACjB,IAAI,EAAE,KAAK,CAAC;IACZ,uCAAuC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAoDD,UAAU,WAAW;IACnB,wCAAwC;IACxC,QAAQ,EAAE,CAAC,YAAY,EAAE,KAAK,GAAG,IAAI,KAAK,SAAS,CAAC;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AASD,QAAA,MAAM,kBAAkB;iHAvMrB,SAAS;mCAwCuC,UAAU;oCAYtB,cAAc;oCASd,cAAc;mEAyBlD,SAAS;qEAwDT,SAAS;sCAkD6B,WAAW;CAOsB,CAAC;AAE3E,eAAe,kBAAkB,CAAC"}
@@ -83,5 +83,5 @@ const Detail = ({ children, className }) => {
83
83
  return _jsx("div", { className: className, children: children(selectedDate ?? null) });
84
84
  };
85
85
  // ── Export ──
86
- const DataCalendarBase = { Root, Title, Prev, Next, Grid, Cell, Detail };
87
- export default DataCalendarBase;
86
+ const LDDataCalendarBase = { Root, Title, Prev, Next, Grid, Cell, Detail };
87
+ export default LDDataCalendarBase;
@@ -1 +1 @@
1
- {"version":3,"file":"LDDatePicker.d.ts","sourceRoot":"","sources":["../../../src/components/LDDatePicker/LDDatePicker.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AASf,KAAK,iBAAiB,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC9C,KAAK,eAAe,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAYtD,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,0BAA0B;IAC1B,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,mEAAmE;IACnE,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC;IAC7C,oBAAoB;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,8BAA8B;IAC9B,0BAA0B;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kBAAkB;IAClB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,iBAAiB;IACjB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,sBAAsB;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,uBAAuB;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAyBD,QAAA,MAAM,YAAY,GAAI,gNAmBnB,iBAAiB,4CA6KnB,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"LDDatePicker.d.ts","sourceRoot":"","sources":["../../../src/components/LDDatePicker/LDDatePicker.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AASf,KAAK,iBAAiB,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC9C,KAAK,eAAe,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAYtD,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,0BAA0B;IAC1B,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,mEAAmE;IACnE,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC;IAC7C,oBAAoB;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,8BAA8B;IAC9B,0BAA0B;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kBAAkB;IAClB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,iBAAiB;IACjB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,sBAAsB;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,uBAAuB;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAyBD,QAAA,MAAM,YAAY,GAAI,gNAmBnB,iBAAiB,4CA0KnB,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -102,11 +102,11 @@ const LDDatePicker = ({ variant = 'filled', color = 'neutral', value, defaultVal
102
102
  ? 'cursor-not-allowed opacity-50'
103
103
  : variantColorClasses[variant][color], triggerClassName), children: [displayDate ? (_jsx("span", { children: !isExistTime
104
104
  ? `${dayjs(displayDate).format(dateFormat)}`
105
- : `${dayjs(displayDate).format(`${dateFormat} ${timeFormat.replaceAll('M', 'm').replaceAll('S', 's')}`)}` })) : (_jsx("span", { className: "text-mono400 whitespace-nowrap", children: placeholderText })), _jsxs("div", { className: "flex items-center gap-xs", children: [_jsx("span", { role: "button", tabIndex: showRotate ? 0 : -1, "aria-hidden": !showRotate, className: cn('flex items-center text-mono400 cursor-pointer ld-transition', !showRotate ? 'opacity-0' : 'opacity-100'), onClick: handleReset, onKeyDown: (e) => {
105
+ : `${dayjs(displayDate).format(`${dateFormat} ${timeFormat.replaceAll('M', 'm').replaceAll('S', 's')}`)}` })) : (_jsx("span", { className: "text-mono400", children: placeholderText })), _jsxs("div", { className: "flex items-center gap-xs", children: [showRotate && (_jsx("span", { role: "button", tabIndex: showRotate ? 0 : -1, "aria-hidden": !showRotate, className: "flex items-center text-mono400 cursor-pointer ld-transition", onClick: handleReset, onKeyDown: (e) => {
106
106
  if (e.key === 'Enter' || e.key === ' ') {
107
107
  e.preventDefault();
108
108
  handleReset(e);
109
109
  }
110
- }, children: _jsx(RotateCw, { size: 15 }) }), trailingIcon] })] }), _jsx(PopoverBase.Content, { className: "rounded-md border border-neutral-200 bg-white shadow-md p-0", children: _jsxs("div", { className: "flex flex-col", children: [_jsxs("div", { className: "flex flex-row max-h-90", children: [_jsx(LDCalendar, { captionLayout: "dropdown", mode: "single", locale: ko, selected: selectedDate, onSelect: handleSelect, disabled: isDateDisabled }), isExistTime && (_jsx(TimePicker, { value: selectedTime, onChange: handleSelectedTime, className: "shrink-0" }))] }), _jsxs("div", { className: "flex items-center justify-end gap-sm py-xs px-sm border-t border-neutral100", children: [_jsx(LDButton, { variant: "outline", color: "neutral", onClick: handleCancel, children: "\uCDE8\uC18C" }), _jsx(LDButton, { onClick: handleConfirm, children: "\uD655\uC778" })] })] }) })] }) }));
110
+ }, children: _jsx(RotateCw, { size: 15 }) })), trailingIcon] })] }), _jsx(PopoverBase.Content, { className: "rounded-md border border-neutral-200 bg-white shadow-md p-0", children: _jsxs("div", { className: "flex flex-col", children: [_jsxs("div", { className: "flex flex-row max-h-90", children: [_jsx(LDCalendar, { captionLayout: "dropdown", mode: "single", locale: ko, selected: selectedDate, onSelect: handleSelect, disabled: isDateDisabled }), isExistTime && (_jsx(TimePicker, { value: selectedTime, onChange: handleSelectedTime, className: "shrink-0" }))] }), _jsxs("div", { className: "flex items-center justify-end gap-sm py-xs px-sm border-t border-neutral100", children: [_jsx(LDButton, { variant: "outline", color: "neutral", onClick: handleCancel, children: "\uCDE8\uC18C" }), _jsx(LDButton, { onClick: handleConfirm, children: "\uD655\uC778" })] })] }) })] }) }));
111
111
  };
112
112
  export default LDDatePicker;
@@ -1 +1 @@
1
- {"version":3,"file":"LDDateRangePicker.d.ts","sourceRoot":"","sources":["../../../src/components/LDDateRangePicker/LDDateRangePicker.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,SAAS,EAMf,MAAM,OAAO,CAAC;AAWf,KAAK,SAAS,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,EAAE,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAC3C,KAAK,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;AAC/C,KAAK,sBAAsB,GAAG,QAAQ,GAAG,SAAS,CAAC;AACnD,KAAK,oBAAoB,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAqB3D,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,gCAAgC;IAChC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,KAAK,IAAI,CAAC;IAClD,cAAc;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,oBAAoB;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,2BAA2B;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,0BAA0B;IAC1B,YAAY,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAC3D,iBAAiB;IACjB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,4BAA4B;IAC5B,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,EAAE,EAAE,IAAI,CAAA;KAAE,KAAK,IAAI,CAAC;IAC5D,0BAA0B;IAC1B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,uBAAuB;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAwBD,QAAA,MAAM,iBAAiB,GAAI,wOAoBxB,sBAAsB,4CA4SxB,CAAC;AA6LF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"LDDateRangePicker.d.ts","sourceRoot":"","sources":["../../../src/components/LDDateRangePicker/LDDateRangePicker.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,SAAS,EAMf,MAAM,OAAO,CAAC;AAWf,KAAK,SAAS,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,EAAE,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAC3C,KAAK,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;AAC/C,KAAK,sBAAsB,GAAG,QAAQ,GAAG,SAAS,CAAC;AACnD,KAAK,oBAAoB,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAyB3D,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,gCAAgC;IAChC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,KAAK,IAAI,CAAC;IAClD,cAAc;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,oBAAoB;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,2BAA2B;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,0BAA0B;IAC1B,YAAY,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAC3D,iBAAiB;IACjB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,4BAA4B;IAC5B,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,EAAE,EAAE,IAAI,CAAA;KAAE,KAAK,IAAI,CAAC;IAC5D,0BAA0B;IAC1B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,uBAAuB;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAwBD,QAAA,MAAM,iBAAiB,GAAI,wOAoBxB,sBAAsB,4CAyTxB,CAAC;AA6LF,eAAe,iBAAiB,CAAC"}