@loword/loword-design-system 0.0.4 → 0.0.6

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 (254) hide show
  1. package/dist/index.css +9 -0
  2. package/package.json +6 -3
  3. package/src/styles/carousel.css +9 -0
  4. package/src/styles/color.css +185 -0
  5. package/src/styles/components/badge.css +41 -0
  6. package/src/styles/components/bread-crumb.css +23 -0
  7. package/src/styles/components/button.css +183 -0
  8. package/src/styles/components/editor.css +147 -0
  9. package/src/styles/components/icon.css +29 -0
  10. package/src/styles/components/index.css +9 -0
  11. package/src/styles/components/input.css +52 -0
  12. package/src/styles/components/modal.css +25 -0
  13. package/src/styles/components/shared.css +52 -0
  14. package/src/styles/components/spinner.css +38 -0
  15. package/src/styles/focus.css +12 -0
  16. package/src/styles/gradient.css +41 -0
  17. package/src/styles/layout.css +19 -0
  18. package/src/styles/motion.css +235 -0
  19. package/src/styles/radius.css +8 -0
  20. package/src/styles/responsive.css +42 -0
  21. package/src/styles/scrollbar.css +59 -0
  22. package/src/styles/slider.css +65 -0
  23. package/src/styles/spacing.css +592 -0
  24. package/src/styles/text-utils.css +7 -0
  25. package/src/styles/typography.css +171 -0
  26. package/src/theme.css +19 -0
  27. package/dist/components/Avatar/Avatar.d.ts +0 -11
  28. package/dist/components/Avatar/Avatar.d.ts.map +0 -1
  29. package/dist/components/Avatar/Avatar.js +0 -24
  30. package/dist/components/Avatar/AvatarBase.d.ts +0 -32
  31. package/dist/components/Avatar/AvatarBase.d.ts.map +0 -1
  32. package/dist/components/Avatar/AvatarBase.js +0 -49
  33. package/dist/components/Badge/Badge.d.ts +0 -25
  34. package/dist/components/Badge/Badge.d.ts.map +0 -1
  35. package/dist/components/Badge/Badge.js +0 -36
  36. package/dist/components/Badge/BadgeBase.d.ts +0 -10
  37. package/dist/components/Badge/BadgeBase.d.ts.map +0 -1
  38. package/dist/components/Badge/BadgeBase.js +0 -9
  39. package/dist/components/BreadCrumb/BreadCrumb.d.ts +0 -17
  40. package/dist/components/BreadCrumb/BreadCrumb.d.ts.map +0 -1
  41. package/dist/components/BreadCrumb/BreadCrumb.js +0 -37
  42. package/dist/components/BreadCrumb/BreadCrumbBase.d.ts +0 -9
  43. package/dist/components/BreadCrumb/BreadCrumbBase.d.ts.map +0 -1
  44. package/dist/components/BreadCrumb/BreadCrumbBase.js +0 -17
  45. package/dist/components/Button/Button.d.ts +0 -26
  46. package/dist/components/Button/Button.d.ts.map +0 -1
  47. package/dist/components/Button/Button.js +0 -102
  48. package/dist/components/Button/ButtonBase.d.ts +0 -5
  49. package/dist/components/Button/ButtonBase.d.ts.map +0 -1
  50. package/dist/components/Button/ButtonBase.js +0 -10
  51. package/dist/components/Button/ButtonSpinner.d.ts +0 -8
  52. package/dist/components/Button/ButtonSpinner.d.ts.map +0 -1
  53. package/dist/components/Button/ButtonSpinner.js +0 -15
  54. package/dist/components/Calendar/Calendar.d.ts +0 -16
  55. package/dist/components/Calendar/Calendar.d.ts.map +0 -1
  56. package/dist/components/Calendar/Calendar.js +0 -75
  57. package/dist/components/Callout/Callout.d.ts +0 -10
  58. package/dist/components/Callout/Callout.d.ts.map +0 -1
  59. package/dist/components/Callout/Callout.js +0 -6
  60. package/dist/components/Callout/CalloutBase.d.ts +0 -18
  61. package/dist/components/Callout/CalloutBase.d.ts.map +0 -1
  62. package/dist/components/Callout/CalloutBase.js +0 -21
  63. package/dist/components/Carousel/Carousel.d.ts +0 -50
  64. package/dist/components/Carousel/Carousel.d.ts.map +0 -1
  65. package/dist/components/Carousel/Carousel.js +0 -22
  66. package/dist/components/Carousel/CarouselBase.d.ts +0 -98
  67. package/dist/components/Carousel/CarouselBase.d.ts.map +0 -1
  68. package/dist/components/Carousel/CarouselBase.js +0 -144
  69. package/dist/components/Checkbox/Checkbox.d.ts +0 -27
  70. package/dist/components/Checkbox/Checkbox.d.ts.map +0 -1
  71. package/dist/components/Checkbox/Checkbox.js +0 -30
  72. package/dist/components/Checkbox/CheckboxBase.d.ts +0 -40
  73. package/dist/components/Checkbox/CheckboxBase.d.ts.map +0 -1
  74. package/dist/components/Checkbox/CheckboxBase.js +0 -57
  75. package/dist/components/Checkbox/CheckboxGroup.d.ts +0 -22
  76. package/dist/components/Checkbox/CheckboxGroup.d.ts.map +0 -1
  77. package/dist/components/Checkbox/CheckboxGroup.js +0 -13
  78. package/dist/components/Checkbox/FormCheckbox.d.ts +0 -14
  79. package/dist/components/Checkbox/FormCheckbox.d.ts.map +0 -1
  80. package/dist/components/Checkbox/FormCheckbox.js +0 -9
  81. package/dist/components/Checkbox/FormCheckboxGroup.d.ts +0 -13
  82. package/dist/components/Checkbox/FormCheckboxGroup.d.ts.map +0 -1
  83. package/dist/components/Checkbox/FormCheckboxGroup.js +0 -9
  84. package/dist/components/DataCalendar/DataCalendar.d.ts +0 -12
  85. package/dist/components/DataCalendar/DataCalendar.d.ts.map +0 -1
  86. package/dist/components/DataCalendar/DataCalendar.js +0 -13
  87. package/dist/components/DataCalendar/DataCalendarBase.d.ts +0 -45
  88. package/dist/components/DataCalendar/DataCalendarBase.d.ts.map +0 -1
  89. package/dist/components/DataCalendar/DataCalendarBase.js +0 -57
  90. package/dist/components/DatePicker/DatePicker.d.ts +0 -34
  91. package/dist/components/DatePicker/DatePicker.d.ts.map +0 -1
  92. package/dist/components/DatePicker/DatePicker.js +0 -44
  93. package/dist/components/DatePicker/FormDatePicker.d.ts +0 -12
  94. package/dist/components/DatePicker/FormDatePicker.d.ts.map +0 -1
  95. package/dist/components/DatePicker/FormDatePicker.js +0 -12
  96. package/dist/components/DateRangePicker/DateRangePicker.d.ts +0 -49
  97. package/dist/components/DateRangePicker/DateRangePicker.d.ts.map +0 -1
  98. package/dist/components/DateRangePicker/DateRangePicker.js +0 -197
  99. package/dist/components/DateRangePicker/FormDateRangePicker.d.ts +0 -12
  100. package/dist/components/DateRangePicker/FormDateRangePicker.d.ts.map +0 -1
  101. package/dist/components/DateRangePicker/FormDateRangePicker.js +0 -10
  102. package/dist/components/Divider/Divider.d.ts +0 -9
  103. package/dist/components/Divider/Divider.d.ts.map +0 -1
  104. package/dist/components/Divider/Divider.js +0 -11
  105. package/dist/components/Divider/DividerBase.d.ts +0 -9
  106. package/dist/components/Divider/DividerBase.d.ts.map +0 -1
  107. package/dist/components/Divider/DividerBase.js +0 -9
  108. package/dist/components/Drawer/Drawer.d.ts +0 -51
  109. package/dist/components/Drawer/Drawer.d.ts.map +0 -1
  110. package/dist/components/Drawer/Drawer.js +0 -30
  111. package/dist/components/Drawer/DrawerBase.d.ts +0 -52
  112. package/dist/components/Drawer/DrawerBase.d.ts.map +0 -1
  113. package/dist/components/Drawer/DrawerBase.js +0 -38
  114. package/dist/components/Editor/Editor.d.ts +0 -12
  115. package/dist/components/Editor/Editor.d.ts.map +0 -1
  116. package/dist/components/Editor/Editor.js +0 -162
  117. package/dist/components/Editor/EditorBase.d.ts +0 -52
  118. package/dist/components/Editor/EditorBase.d.ts.map +0 -1
  119. package/dist/components/Editor/EditorBase.js +0 -89
  120. package/dist/components/Editor/Viewer.d.ts +0 -7
  121. package/dist/components/Editor/Viewer.d.ts.map +0 -1
  122. package/dist/components/Editor/Viewer.js +0 -9
  123. package/dist/components/Editor/extensions.d.ts +0 -6
  124. package/dist/components/Editor/extensions.d.ts.map +0 -1
  125. package/dist/components/Editor/extensions.js +0 -38
  126. package/dist/components/FileUpload/FileUploadBase.d.ts +0 -50
  127. package/dist/components/FileUpload/FileUploadBase.d.ts.map +0 -1
  128. package/dist/components/FileUpload/FileUploadBase.js +0 -102
  129. package/dist/components/Input/FormInput.d.ts +0 -15
  130. package/dist/components/Input/FormInput.d.ts.map +0 -1
  131. package/dist/components/Input/FormInput.js +0 -19
  132. package/dist/components/Input/Input.d.ts +0 -24
  133. package/dist/components/Input/Input.d.ts.map +0 -1
  134. package/dist/components/Input/Input.js +0 -71
  135. package/dist/components/Input/InputBase.d.ts +0 -22
  136. package/dist/components/Input/InputBase.d.ts.map +0 -1
  137. package/dist/components/Input/InputBase.js +0 -17
  138. package/dist/components/LNB/LNBBase.d.ts +0 -82
  139. package/dist/components/LNB/LNBBase.d.ts.map +0 -1
  140. package/dist/components/LNB/LNBBase.js +0 -108
  141. package/dist/components/LoadingDots/LoadingDots.d.ts +0 -8
  142. package/dist/components/LoadingDots/LoadingDots.d.ts.map +0 -1
  143. package/dist/components/LoadingDots/LoadingDots.js +0 -29
  144. package/dist/components/MenuBar/MenuBar.d.ts +0 -21
  145. package/dist/components/MenuBar/MenuBar.d.ts.map +0 -1
  146. package/dist/components/MenuBar/MenuBar.js +0 -33
  147. package/dist/components/MenuBar/MenuBarBase.d.ts +0 -43
  148. package/dist/components/MenuBar/MenuBarBase.d.ts.map +0 -1
  149. package/dist/components/MenuBar/MenuBarBase.js +0 -69
  150. package/dist/components/Modal/Modal.d.ts +0 -51
  151. package/dist/components/Modal/Modal.d.ts.map +0 -1
  152. package/dist/components/Modal/Modal.js +0 -72
  153. package/dist/components/Modal/ModalBase.d.ts +0 -42
  154. package/dist/components/Modal/ModalBase.d.ts.map +0 -1
  155. package/dist/components/Modal/ModalBase.js +0 -30
  156. package/dist/components/Modal/openModal.d.ts +0 -24
  157. package/dist/components/Modal/openModal.d.ts.map +0 -1
  158. package/dist/components/Modal/openModal.js +0 -52
  159. package/dist/components/OTPInput/OTPInput.d.ts +0 -46
  160. package/dist/components/OTPInput/OTPInput.d.ts.map +0 -1
  161. package/dist/components/OTPInput/OTPInput.js +0 -87
  162. package/dist/components/Pagination/Pagination.d.ts +0 -12
  163. package/dist/components/Pagination/Pagination.d.ts.map +0 -1
  164. package/dist/components/Pagination/Pagination.js +0 -5
  165. package/dist/components/Pagination/PaginationBase.d.ts +0 -36
  166. package/dist/components/Pagination/PaginationBase.d.ts.map +0 -1
  167. package/dist/components/Pagination/PaginationBase.js +0 -44
  168. package/dist/components/Pagination/paginationUtils.d.ts +0 -2
  169. package/dist/components/Pagination/paginationUtils.d.ts.map +0 -1
  170. package/dist/components/Pagination/paginationUtils.js +0 -18
  171. package/dist/components/Popover/Popover.d.ts +0 -42
  172. package/dist/components/Popover/Popover.d.ts.map +0 -1
  173. package/dist/components/Popover/Popover.js +0 -31
  174. package/dist/components/Popover/PopoverBase.d.ts +0 -31
  175. package/dist/components/Popover/PopoverBase.d.ts.map +0 -1
  176. package/dist/components/Popover/PopoverBase.js +0 -18
  177. package/dist/components/Radio/FormRadioGroup.d.ts +0 -13
  178. package/dist/components/Radio/FormRadioGroup.d.ts.map +0 -1
  179. package/dist/components/Radio/FormRadioGroup.js +0 -9
  180. package/dist/components/Radio/Radio.d.ts +0 -24
  181. package/dist/components/Radio/Radio.d.ts.map +0 -1
  182. package/dist/components/Radio/Radio.js +0 -39
  183. package/dist/components/Radio/RadioBase.d.ts +0 -38
  184. package/dist/components/Radio/RadioBase.d.ts.map +0 -1
  185. package/dist/components/Radio/RadioBase.js +0 -46
  186. package/dist/components/Radio/RadioGroup.d.ts +0 -22
  187. package/dist/components/Radio/RadioGroup.d.ts.map +0 -1
  188. package/dist/components/Radio/RadioGroup.js +0 -7
  189. package/dist/components/ScrollArea/ScrollArea.d.ts +0 -15
  190. package/dist/components/ScrollArea/ScrollArea.d.ts.map +0 -1
  191. package/dist/components/ScrollArea/ScrollArea.js +0 -10
  192. package/dist/components/Select/FormMultiSelect.d.ts +0 -13
  193. package/dist/components/Select/FormMultiSelect.d.ts.map +0 -1
  194. package/dist/components/Select/FormMultiSelect.js +0 -14
  195. package/dist/components/Select/FormSelect.d.ts +0 -13
  196. package/dist/components/Select/FormSelect.d.ts.map +0 -1
  197. package/dist/components/Select/FormSelect.js +0 -10
  198. package/dist/components/Select/MultiSelect.d.ts +0 -31
  199. package/dist/components/Select/MultiSelect.d.ts.map +0 -1
  200. package/dist/components/Select/MultiSelect.js +0 -59
  201. package/dist/components/Select/Select.d.ts +0 -41
  202. package/dist/components/Select/Select.d.ts.map +0 -1
  203. package/dist/components/Select/Select.js +0 -55
  204. package/dist/components/Select/SelectBase.d.ts +0 -59
  205. package/dist/components/Select/SelectBase.d.ts.map +0 -1
  206. package/dist/components/Select/SelectBase.js +0 -211
  207. package/dist/components/Skeleton/Skeleton.d.ts +0 -10
  208. package/dist/components/Skeleton/Skeleton.d.ts.map +0 -1
  209. package/dist/components/Skeleton/Skeleton.js +0 -8
  210. package/dist/components/Slider/Slider.d.ts +0 -23
  211. package/dist/components/Slider/Slider.d.ts.map +0 -1
  212. package/dist/components/Slider/Slider.js +0 -195
  213. package/dist/components/Spinner/Spinner.d.ts +0 -25
  214. package/dist/components/Spinner/Spinner.d.ts.map +0 -1
  215. package/dist/components/Spinner/Spinner.js +0 -20
  216. package/dist/components/Table/Table.d.ts +0 -34
  217. package/dist/components/Table/Table.d.ts.map +0 -1
  218. package/dist/components/Table/Table.js +0 -29
  219. package/dist/components/Table/TableBase.d.ts +0 -37
  220. package/dist/components/Table/TableBase.d.ts.map +0 -1
  221. package/dist/components/Table/TableBase.js +0 -39
  222. package/dist/components/Table/TableField.d.ts +0 -64
  223. package/dist/components/Table/TableField.d.ts.map +0 -1
  224. package/dist/components/Table/TableField.js +0 -87
  225. package/dist/components/Table/TanstackTable.d.ts +0 -23
  226. package/dist/components/Table/TanstackTable.d.ts.map +0 -1
  227. package/dist/components/Table/TanstackTable.js +0 -35
  228. package/dist/components/TimePicker/FormTimePicker.d.ts +0 -12
  229. package/dist/components/TimePicker/FormTimePicker.d.ts.map +0 -1
  230. package/dist/components/TimePicker/FormTimePicker.js +0 -12
  231. package/dist/components/TimePicker/TimePicker.d.ts +0 -27
  232. package/dist/components/TimePicker/TimePicker.d.ts.map +0 -1
  233. package/dist/components/TimePicker/TimePicker.js +0 -120
  234. package/dist/components/Toast/Toast.d.ts +0 -18
  235. package/dist/components/Toast/Toast.d.ts.map +0 -1
  236. package/dist/components/Toast/Toast.js +0 -42
  237. package/dist/components/Toast/Toaster.d.ts +0 -7
  238. package/dist/components/Toast/Toaster.d.ts.map +0 -1
  239. package/dist/components/Toast/Toaster.js +0 -7
  240. package/dist/components/ToggleButton/FormToggleButton.d.ts +0 -12
  241. package/dist/components/ToggleButton/FormToggleButton.d.ts.map +0 -1
  242. package/dist/components/ToggleButton/FormToggleButton.js +0 -9
  243. package/dist/components/ToggleButton/ToggleButton.d.ts +0 -31
  244. package/dist/components/ToggleButton/ToggleButton.d.ts.map +0 -1
  245. package/dist/components/ToggleButton/ToggleButton.js +0 -42
  246. package/dist/components/ToggleButton/ToggleButtonBase.d.ts +0 -41
  247. package/dist/components/ToggleButton/ToggleButtonBase.d.ts.map +0 -1
  248. package/dist/components/ToggleButton/ToggleButtonBase.js +0 -59
  249. package/dist/components/Tooltip/Tooltip.d.ts +0 -18
  250. package/dist/components/Tooltip/Tooltip.d.ts.map +0 -1
  251. package/dist/components/Tooltip/Tooltip.js +0 -13
  252. package/dist/components/Tooltip/TooltipBase.d.ts +0 -39
  253. package/dist/components/Tooltip/TooltipBase.d.ts.map +0 -1
  254. package/dist/components/Tooltip/TooltipBase.js +0 -46
@@ -1,40 +0,0 @@
1
- import { type ReactNode, type Ref } from 'react';
2
- import { type IconName } from '../Icon/LucideIcon.js';
3
- interface CheckboxContextType {
4
- checked: boolean;
5
- onCheckedChange: (checked: boolean) => void;
6
- disabled: boolean;
7
- isFocused: boolean;
8
- setIsFocused: (focused: boolean) => void;
9
- }
10
- export declare const useCheckboxContext: () => CheckboxContextType;
11
- interface RootProps {
12
- checked?: boolean;
13
- defaultChecked?: boolean;
14
- onCheckedChange?: (checked: boolean) => void;
15
- disabled?: boolean;
16
- className?: string | ((checked: boolean) => string);
17
- style?: React.CSSProperties;
18
- children?: ReactNode;
19
- }
20
- interface HiddenInputProps extends React.InputHTMLAttributes<HTMLInputElement> {
21
- ref?: Ref<HTMLInputElement>;
22
- }
23
- interface IndicatorProps {
24
- icon?: IconName;
25
- iconSize?: number;
26
- className?: string;
27
- iconClassName?: string;
28
- }
29
- interface LabelProps {
30
- className?: string;
31
- children?: ReactNode;
32
- }
33
- export declare const CheckboxBase: {
34
- Root: ({ checked, defaultChecked, onCheckedChange, disabled, className, style, children, }: RootProps) => import("react/jsx-runtime").JSX.Element;
35
- HiddenInput: ({ ref, onFocus, onBlur, onChange, ...props }: HiddenInputProps) => import("react/jsx-runtime").JSX.Element;
36
- Indicator: ({ icon, iconSize, className, iconClassName, }: IndicatorProps) => import("react/jsx-runtime").JSX.Element;
37
- Label: ({ className, children }: LabelProps) => import("react/jsx-runtime").JSX.Element;
38
- };
39
- export default CheckboxBase;
40
- //# sourceMappingURL=CheckboxBase.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CheckboxBase.d.ts","sourceRoot":"","sources":["../../../src/components/Checkbox/CheckboxBase.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,KAAK,GAAG,EAIT,MAAM,OAAO,CAAC;AACf,OAAmB,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAI/D,UAAU,mBAAmB;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1C;AAID,eAAO,MAAM,kBAAkB,2BAO9B,CAAC;AAGF,UAAU,SAAS;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC,CAAC;IACpD,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAiDD,UAAU,gBAAiB,SAAQ,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC;IAC5E,GAAG,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;CAC7B;AAqCD,UAAU,cAAc;IACtB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAgBD,UAAU,UAAU;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAMD,eAAO,MAAM,YAAY;gGA5GtB,SAAS;gEAiDT,gBAAgB;+DAyChB,cAAc;qCAcuB,UAAU;CASjD,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1,57 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { createContext, useContext, useState, } from 'react';
3
- import LucideIcon from '../Icon/LucideIcon.js';
4
- import cn from '../../utils/cn.js';
5
- const CheckboxContext = createContext(null);
6
- export const useCheckboxContext = () => {
7
- const ctx = useContext(CheckboxContext);
8
- if (!ctx)
9
- throw new Error('CheckboxBase 하위 컴포넌트는 Root 내부에서 사용해야 합니다.');
10
- return ctx;
11
- };
12
- const Root = ({ checked, defaultChecked = false, onCheckedChange, disabled = false, className, style, children, }) => {
13
- const [internal, setInternal] = useState(defaultChecked);
14
- const [isFocused, setIsFocused] = useState(false);
15
- const isControlled = checked !== undefined;
16
- const resolved = isControlled ? checked : internal;
17
- const handleChange = (val) => {
18
- if (!isControlled)
19
- setInternal(val);
20
- onCheckedChange?.(val);
21
- };
22
- const resolvedClassName = typeof className === 'function' ? className(resolved) : className;
23
- return (_jsx(CheckboxContext, { value: {
24
- checked: resolved,
25
- onCheckedChange: handleChange,
26
- disabled,
27
- isFocused,
28
- setIsFocused,
29
- }, children: _jsx("label", { style: style, onClick: (e) => e.stopPropagation(), className: cn('flex flex-row w-fit gap-2.5 shrink-0', disabled ? 'cursor-not-allowed' : 'cursor-pointer', resolvedClassName), children: children }) }));
30
- };
31
- const HiddenInput = ({ ref, onFocus, onBlur, onChange, ...props }) => {
32
- const { checked, onCheckedChange, disabled, setIsFocused } = useCheckboxContext();
33
- return (_jsx("input", { type: "checkbox", ref: ref, className: "sr-only peer", checked: checked, disabled: disabled, onChange: (e) => {
34
- e.stopPropagation(); // 이벤트 전파 중단
35
- onCheckedChange(e.target.checked);
36
- onChange?.(e);
37
- }, onFocus: (e) => {
38
- setIsFocused(true);
39
- onFocus?.(e);
40
- }, onBlur: (e) => {
41
- setIsFocused(false);
42
- onBlur?.(e);
43
- }, ...props }));
44
- };
45
- const Indicator = ({ icon = 'check', iconSize = 24, className, iconClassName, }) => {
46
- return (_jsx("div", { className: className, children: _jsx(LucideIcon, { name: icon, size: iconSize, className: iconClassName }) }));
47
- };
48
- const Label = ({ className, children }) => {
49
- return _jsx("span", { className: className, children: children });
50
- };
51
- export const CheckboxBase = {
52
- Root,
53
- HiddenInput,
54
- Indicator,
55
- Label,
56
- };
57
- export default CheckboxBase;
@@ -1,22 +0,0 @@
1
- import type React from 'react';
2
- export interface CheckboxGroupOption {
3
- label: string;
4
- value: string;
5
- sub?: string;
6
- disabled?: boolean;
7
- }
8
- export interface CheckboxGroupProps {
9
- items: CheckboxGroupOption[];
10
- value?: string[];
11
- onChange?: (value: string[]) => void;
12
- disabled?: boolean;
13
- type?: 'default' | 'checkbox' | 'pill';
14
- size?: 'small';
15
- fontSize?: 'small' | 'regular';
16
- orientation?: 'horizontal' | 'vertical';
17
- className?: string;
18
- style?: React.CSSProperties;
19
- }
20
- declare const CheckboxGroup: ({ items, value, onChange, disabled, type, size, fontSize, orientation, className, style, }: CheckboxGroupProps) => import("react/jsx-runtime").JSX.Element;
21
- export default CheckboxGroup;
22
- //# sourceMappingURL=CheckboxGroup.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CheckboxGroup.d.ts","sourceRoot":"","sources":["../../../src/components/Checkbox/CheckboxGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAGD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;IACvC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,QAAA,MAAM,aAAa,GAAI,4FAWpB,kBAAkB,4CA+BpB,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -1,13 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import Checkbox from './Checkbox.js';
3
- import cn from '../../utils/cn.js';
4
- const CheckboxGroup = ({ items, value = [], onChange, disabled = false, type = 'pill', size = 'small', fontSize = 'small', orientation = 'horizontal', className, style, }) => {
5
- const handleChange = (target) => {
6
- const arr = value.includes(target)
7
- ? value.filter((v) => v !== target)
8
- : [...value, target];
9
- onChange?.(arr);
10
- };
11
- return (_jsx("div", { className: cn('flex gap-2.5', orientation === 'vertical' ? 'flex-col' : 'flex-row', className), style: style, children: items.map((option) => (_jsx(Checkbox, { type: type, size: size, fontSize: fontSize, checked: value.includes(option.value), onCheckedChange: () => handleChange(option.value), label: option.label, disabled: disabled || option.disabled }, option.value))) }));
12
- };
13
- export default CheckboxGroup;
@@ -1,14 +0,0 @@
1
- import { type Ref } from 'react';
2
- import { type RegisterOptions } from 'react-hook-form';
3
- import { type CheckboxProps } from './Checkbox.js';
4
- interface FormCheckboxProps extends Omit<CheckboxProps, 'checked' | 'name' | 'onCheckedChange'> {
5
- name: string;
6
- options?: RegisterOptions;
7
- ref?: Ref<HTMLInputElement>;
8
- customErrorMessage?: string;
9
- isHiddenErrorMessage?: boolean;
10
- errorClassName?: string;
11
- }
12
- declare const FormCheckbox: ({ name, options, ref, customErrorMessage, isHiddenErrorMessage, errorClassName, disabled, ...props }: FormCheckboxProps) => import("react/jsx-runtime").JSX.Element;
13
- export default FormCheckbox;
14
- //# sourceMappingURL=FormCheckbox.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormCheckbox.d.ts","sourceRoot":"","sources":["../../../src/components/Checkbox/FormCheckbox.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAI1D,UAAU,iBAAkB,SAAQ,IAAI,CACtC,aAAa,EACb,SAAS,GAAG,MAAM,GAAG,iBAAiB,CACvC;IACC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,GAAG,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,QAAA,MAAM,YAAY,GAAI,sGASnB,iBAAiB,4CA8BnB,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1,9 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import Checkbox from './Checkbox.js';
4
- import FormField from '../Form/FormField.js';
5
- import FormErrorMessage from '../Form/FormErrorMessage.js';
6
- const FormCheckbox = ({ name, options, ref, customErrorMessage = '', isHiddenErrorMessage = false, errorClassName, disabled = false, ...props }) => {
7
- return (_jsx(FormField, { name: name, options: options, customErrorMessage: customErrorMessage, disabled: disabled, ref: ref, children: ({ field, fieldState }) => (_jsxs("div", { className: "relative", children: [_jsx(Checkbox, { ...props, checked: !!field.value, onCheckedChange: field.onChange, onBlur: field.onBlur, disabled: disabled, ref: field.ref }), !isHiddenErrorMessage && (_jsx(FormErrorMessage, { error: fieldState.error, disabled: disabled, className: errorClassName }))] })) }));
8
- };
9
- export default FormCheckbox;
@@ -1,13 +0,0 @@
1
- import { type RegisterOptions } from 'react-hook-form';
2
- import { type CheckboxGroupProps } from './CheckboxGroup.js';
3
- interface FormCheckboxGroupProps extends Omit<CheckboxGroupProps, 'value' | 'onChange'> {
4
- name: string;
5
- options?: RegisterOptions;
6
- customErrorMessage?: string;
7
- isHiddenErrorMessage?: boolean;
8
- errorClassName?: string;
9
- disabled?: boolean;
10
- }
11
- declare const FormCheckboxGroup: ({ name, options, customErrorMessage, isHiddenErrorMessage, errorClassName, disabled, ...props }: FormCheckboxGroupProps) => import("react/jsx-runtime").JSX.Element;
12
- export default FormCheckboxGroup;
13
- //# sourceMappingURL=FormCheckboxGroup.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormCheckboxGroup.d.ts","sourceRoot":"","sources":["../../../src/components/Checkbox/FormCheckboxGroup.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAsB,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAIzE,UAAU,sBAAuB,SAAQ,IAAI,CAC3C,kBAAkB,EAClB,OAAO,GAAG,UAAU,CACrB;IACC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,QAAA,MAAM,iBAAiB,GAAI,iGAQxB,sBAAsB,4CA2BxB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -1,9 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import CheckboxGroup from './CheckboxGroup.js';
4
- import FormField from '../Form/FormField.js';
5
- import FormErrorMessage from '../Form/FormErrorMessage.js';
6
- const FormCheckboxGroup = ({ name, options, customErrorMessage = '', isHiddenErrorMessage = true, errorClassName, disabled = false, ...props }) => {
7
- return (_jsx(FormField, { name: name, options: options, customErrorMessage: customErrorMessage, disabled: disabled, children: ({ field, fieldState }) => (_jsxs("div", { className: "relative", children: [_jsx(CheckboxGroup, { ...props, value: field.value ?? [], onChange: field.onChange, disabled: disabled }), !isHiddenErrorMessage && (_jsx(FormErrorMessage, { error: fieldState.error, disabled: disabled, className: errorClassName }))] })) }));
8
- };
9
- export default FormCheckboxGroup;
@@ -1,12 +0,0 @@
1
- import type { ComponentProps } from 'react';
2
- import DataCalendarBase from './DataCalendarBase.js';
3
- declare const DataCalendar: {
4
- Root: ({ className, ...props }: ComponentProps<typeof DataCalendarBase.Root>) => import("react/jsx-runtime").JSX.Element;
5
- Title: ({ className, ...props }: ComponentProps<typeof DataCalendarBase.Title>) => import("react/jsx-runtime").JSX.Element;
6
- Prev: ({ className, children, ...props }: ComponentProps<typeof DataCalendarBase.Prev>) => import("react/jsx-runtime").JSX.Element;
7
- Next: ({ className, children, ...props }: ComponentProps<typeof DataCalendarBase.Next>) => import("react/jsx-runtime").JSX.Element;
8
- Grid: ({ className, weekdayClassName, ...props }: ComponentProps<typeof DataCalendarBase.Grid>) => import("react/jsx-runtime").JSX.Element;
9
- Cell: ({ className, dateClassName, ...props }: ComponentProps<typeof DataCalendarBase.Cell>) => import("react/jsx-runtime").JSX.Element;
10
- };
11
- export default DataCalendar;
12
- //# sourceMappingURL=DataCalendar.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DataCalendar.d.ts","sourceRoot":"","sources":["../../../src/components/DataCalendar/DataCalendar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAG5C,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAoFlD,QAAA,MAAM,YAAY;oCA/Ef,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC;qCAU5C,cAAc,CAAC,OAAO,gBAAgB,CAAC,KAAK,CAAC;8CAW7C,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC;8CAgB5C,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC;sDAgB5C,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC;mDAY5C,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC;CAca,CAAC;AAE7D,eAAe,YAAY,CAAC"}
@@ -1,13 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx } from "react/jsx-runtime";
3
- import { ChevronLeft, ChevronRight } from 'lucide-react';
4
- import cn from '../../utils/cn.js';
5
- import DataCalendarBase from './DataCalendarBase.js';
6
- const Root = ({ className, ...props }) => (_jsx(DataCalendarBase.Root, { className: cn('w-full select-none', className), ...props }));
7
- const Title = ({ className, ...props }) => (_jsx(DataCalendarBase.Title, { className: cn('display32 bold flex justify-center', className), ...props }));
8
- const Prev = ({ className, children, ...props }) => (_jsx(DataCalendarBase.Prev, { className: cn('flex items-center justify-center rounded-full size-[30px] bg-neutral100 hover:bg-mono400 text-neutral500 ld-transition cursor-pointer', className), ...props, children: children ?? _jsx(ChevronLeft, { size: 15 }) }));
9
- const Next = ({ className, children, ...props }) => (_jsx(DataCalendarBase.Next, { className: cn('flex items-center justify-center rounded-full size-[30px] bg-neutral100 hover:bg-mono400 text-neutral500 ld-transition cursor-pointer', className), ...props, children: children ?? _jsx(ChevronRight, { size: 16 }) }));
10
- const Grid = ({ className, weekdayClassName, ...props }) => (_jsx(DataCalendarBase.Grid, { className: className, weekdayClassName: cn('display14 text-mono500 py-[10px] ', weekdayClassName), ...props }));
11
- const Cell = ({ className, dateClassName, ...props }) => (_jsx(DataCalendarBase.Cell, { className: cn('min-h-[100px] py-[10px] flex flex-col gap-[15px] data-outside:*:text-mono400', className), dateClassName: cn('display16 font-normal self-start leading-none data-[outside]:text-mono400 data-[outside]:font-normal data-[weekend]:text-danger600 data-[outside]:data-[weekend]:text-danger200', dateClassName), ...props }));
12
- const DataCalendar = { Root, Title, Prev, Next, Grid, Cell };
13
- export default DataCalendar;
@@ -1,45 +0,0 @@
1
- import { type Dayjs } from 'dayjs';
2
- import type { ReactNode } from 'react';
3
- interface DataCalendarContextType {
4
- month: Dayjs;
5
- changeMonth: (delta: number) => void;
6
- }
7
- export declare const useDataCalendarContext: () => DataCalendarContextType;
8
- interface RootProps {
9
- children?: ReactNode;
10
- className?: string;
11
- defaultMonth?: Dayjs;
12
- onMonthChange?: (month: Dayjs) => void;
13
- }
14
- interface TitleProps {
15
- className?: string;
16
- format?: string;
17
- }
18
- interface NavButtonProps {
19
- children?: ReactNode;
20
- className?: string;
21
- }
22
- interface GridProps {
23
- renderCell: (date: Dayjs, index: number, isOutside: boolean) => ReactNode;
24
- weekdays?: string[];
25
- className?: string;
26
- weekdayClassName?: string;
27
- }
28
- interface CellProps {
29
- date: Dayjs;
30
- /** 현재 표시 중인 월과 다른 달 날짜 여부 (이전/다음 달) */
31
- isOutside?: boolean;
32
- children?: ReactNode;
33
- className?: string;
34
- dateClassName?: string;
35
- }
36
- declare const DataCalendarBase: {
37
- Root: ({ children, className, defaultMonth, onMonthChange, }: RootProps) => import("react/jsx-runtime").JSX.Element;
38
- Title: ({ className, format }: TitleProps) => import("react/jsx-runtime").JSX.Element;
39
- Prev: ({ children, className }: NavButtonProps) => import("react/jsx-runtime").JSX.Element;
40
- Next: ({ children, className }: NavButtonProps) => import("react/jsx-runtime").JSX.Element;
41
- Grid: ({ renderCell, weekdays, className, weekdayClassName, }: GridProps) => import("react/jsx-runtime").JSX.Element;
42
- Cell: ({ date, isOutside, children, className, dateClassName, }: CellProps) => import("react/jsx-runtime").JSX.Element;
43
- };
44
- export default DataCalendarBase;
45
- //# sourceMappingURL=DataCalendarBase.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DataCalendarBase.d.ts","sourceRoot":"","sources":["../../../src/components/DataCalendar/DataCalendarBase.tsx"],"names":[],"mappings":"AAEA,OAAc,EAAE,KAAK,KAAK,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,UAAU,uBAAuB;IAC/B,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;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;CACxC;AA2BD,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;AA6BD,QAAA,MAAM,gBAAgB;kEApJnB,SAAS;mCAyBuC,UAAU;oCAYtB,cAAc;oCASd,cAAc;mEAyBlD,SAAS;qEAwDT,SAAS;CAqBoD,CAAC;AAEjE,eAAe,gBAAgB,CAAC"}
@@ -1,57 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import dayjs from 'dayjs';
4
- import { createContext, useContext, useState } from 'react';
5
- const DataCalendarContext = createContext(null);
6
- export const useDataCalendarContext = () => {
7
- const ctx = useContext(DataCalendarContext);
8
- if (!ctx)
9
- throw new Error('DataCalendarBase 서브컴포넌트는 DataCalendarBase.Root 내부에서 사용해야 합니다.');
10
- return ctx;
11
- };
12
- const Root = ({ children, className, defaultMonth, onMonthChange, }) => {
13
- const [month, setMonth] = useState((defaultMonth ?? dayjs()).startOf('month'));
14
- const changeMonth = (delta) => {
15
- const next = month.add(delta, 'month');
16
- setMonth(next);
17
- onMonthChange?.(next);
18
- };
19
- return (_jsx(DataCalendarContext, { value: { month, changeMonth }, children: _jsx("div", { className: className, children: children }) }));
20
- };
21
- const Title = ({ className, format = 'YYYY년 M월' }) => {
22
- const { month } = useDataCalendarContext();
23
- return _jsx("span", { className: className, children: month.format(format) });
24
- };
25
- const Prev = ({ children, className }) => {
26
- const { changeMonth } = useDataCalendarContext();
27
- return (_jsx("button", { type: "button", onClick: () => changeMonth(-1), className: className, children: children }));
28
- };
29
- const Next = ({ children, className }) => {
30
- const { changeMonth } = useDataCalendarContext();
31
- return (_jsx("button", { type: "button", onClick: () => changeMonth(1), className: className, children: children }));
32
- };
33
- // ── Grid ──
34
- const DEFAULT_WEEKDAYS = ['일', '월', '화', '수', '목', '금', '토'];
35
- const Grid = ({ renderCell, weekdays = DEFAULT_WEEKDAYS, className, weekdayClassName, }) => {
36
- const { month } = useDataCalendarContext();
37
- const startOffset = month.startOf('month').day();
38
- const daysInMonth = month.daysInMonth();
39
- const prevMonth = month.subtract(1, 'month');
40
- const nextMonth = month.add(1, 'month');
41
- const prevDays = prevMonth.daysInMonth();
42
- const cells = Array.from({ length: startOffset + daysInMonth }, (_, i) => i < startOffset
43
- ? prevMonth.date(prevDays - startOffset + i + 1)
44
- : month.date(i - startOffset + 1));
45
- let nextDay = 1;
46
- while (cells.length % 7 !== 0)
47
- cells.push(nextMonth.date(nextDay++));
48
- return (_jsxs("div", { className: className, children: [_jsx("div", { className: "grid grid-cols-7", children: weekdays.map((d) => (_jsx("span", { className: weekdayClassName, children: d }, d))) }), _jsx("div", { className: "grid grid-cols-7", children: cells.map((date, i) => renderCell(date, i, !date.isSame(month, 'month'))) })] }));
49
- };
50
- const Cell = ({ date, isOutside, children, className, dateClassName, }) => {
51
- const isToday = date.isSame(dayjs(), 'day');
52
- const isWeekend = date.day() === 0 || date.day() === 6;
53
- return (_jsxs("div", { className: className, "data-outside": isOutside || undefined, children: [_jsx("span", { "data-today": isToday || undefined, "data-outside": isOutside || undefined, "data-weekend": isWeekend || undefined, className: dateClassName, children: date.date() }), children] }));
54
- };
55
- // ── Export ──
56
- const DataCalendarBase = { Root, Title, Prev, Next, Grid, Cell };
57
- export default DataCalendarBase;
@@ -1,34 +0,0 @@
1
- import { type ReactNode } from 'react';
2
- export interface DatePickerProps {
3
- /** 선택된 날짜 (controlled) */
4
- value?: Date;
5
- /** 초기 선택 날짜 (uncontrolled) */
6
- defaultValue?: Date;
7
- /** 날짜 변경 시 호출되는 콜백 */
8
- onChange?: (value: Date | undefined) => void;
9
- /** 미선택 시 표시할 텍스트 */
10
- placeholder?: string;
11
- /** 비활성화 여부 */
12
- disabled?: boolean;
13
- /** true 시 너비 100% */
14
- block?: boolean;
15
- /** 색상 테마 (danger 시 에러 스타일) */
16
- color?: 'neutral' | 'danger';
17
- /** 현재 시점 이후 날짜 선택 비활성화 */
18
- isDisableAfterNow?: boolean;
19
- /** 최소 선택 가능 날짜 */
20
- minDate?: Date;
21
- /** 트리거 우측 아이콘 */
22
- trailingIcon?: ReactNode;
23
- /** 날짜 초기화 버튼 표시 여부 */
24
- showReset?: boolean;
25
- /** 추가 CSS 클래스 */
26
- className?: string;
27
- /** 인라인 스타일 (트리거 버튼에 적용) */
28
- style?: React.CSSProperties;
29
- /** 트리거 버튼 className */
30
- triggerClassName?: string;
31
- }
32
- declare const DatePicker: ({ value, defaultValue, onChange, placeholder, disabled, block, color, isDisableAfterNow, minDate, trailingIcon, showReset, className, style, triggerClassName, }: DatePickerProps) => import("react/jsx-runtime").JSX.Element;
33
- export default DatePicker;
34
- //# sourceMappingURL=DatePicker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../../src/components/DatePicker/DatePicker.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;AASjD,MAAM,WAAW,eAAe;IAC9B,0BAA0B;IAC1B,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,8BAA8B;IAC9B,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,cAAc;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC7B,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;CAC3B;AAED,QAAA,MAAM,UAAU,GAAI,kKAiBjB,eAAe,4CA4FjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -1,44 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { useState } from 'react';
4
- import dayjs from 'dayjs';
5
- import { ko } from 'react-day-picker/locale';
6
- import PopoverBase from '../Popover/PopoverBase.js';
7
- import Calendar from '../Calendar/Calendar.js';
8
- import LucideIcon from '../Icon/LucideIcon.js';
9
- import cn from '../../utils/cn.js';
10
- const DatePicker = ({ value, defaultValue, onChange, placeholder = 'YYYY-MM-DD', disabled = false, block = false, color = 'neutral', isDisableAfterNow = false, minDate, trailingIcon = (_jsx(LucideIcon, { name: "calendar", size: 15, className: "text-mono400" })), showReset = true, className, style, triggerClassName, }) => {
11
- const [open, setOpen] = useState(false);
12
- const [internal, setInternal] = useState(defaultValue);
13
- const isControlled = value !== undefined;
14
- const resolved = isControlled ? value : internal;
15
- const handleSelect = (date) => {
16
- if (!isControlled)
17
- setInternal(date);
18
- onChange?.(date);
19
- setOpen(false);
20
- };
21
- const handleReset = (e) => {
22
- e.stopPropagation();
23
- if (!isControlled)
24
- setInternal(undefined);
25
- onChange?.(undefined);
26
- };
27
- return (_jsx("div", { className: cn(block ? 'w-full' : 'w-auto', className), children: _jsxs(PopoverBase.Root, { open: open, onOpenChange: setOpen, children: [_jsxs(PopoverBase.Trigger, { disabled: disabled, style: style, className: cn('border border-neutral100 h-[38px] w-full display14 px-4 rounded-[5px]', 'flex flex-row items-center justify-between gap-4', 'outline-2 outline-transparent ld-transition', disabled && 'cursor-not-allowed opacity-50', color === 'danger'
28
- ? 'bg-tintRed outline-red500'
29
- : 'focus:bg-tintBlue focus:outline-lb500', triggerClassName), children: [resolved ? (_jsx("span", { children: dayjs(resolved).format('YYYY-MM-DD') })) : (_jsx("span", { className: "text-mono400", children: placeholder })), _jsxs("div", { className: "flex gap-[6px]", children: [trailingIcon, showReset && resolved && (_jsx("span", { role: "button", tabIndex: 0, className: "text-mono400 cursor-pointer", onClick: handleReset, onKeyDown: (e) => {
30
- if (e.key === 'Enter' || e.key === ' ') {
31
- e.preventDefault();
32
- handleReset(e);
33
- }
34
- }, children: _jsx(LucideIcon, { name: "rotateCw", size: 14 }) }))] })] }), _jsx(PopoverBase.Content, { className: "rounded-md border border-neutral-200 bg-white shadow-md p-0 min-w-[280px] w-[var(--radix-popover-trigger-width)]", children: _jsx(Calendar, { className: "w-full", captionLayout: "dropdown", mode: "single", locale: ko, selected: resolved, onSelect: handleSelect, disabled: isDisableAfterNow
35
- ? (date) => date > new Date()
36
- : minDate
37
- ? (date) => {
38
- const dateOnly = new Date(date.getFullYear(), date.getMonth(), date.getDate());
39
- const minDateOnly = new Date(minDate.getFullYear(), minDate.getMonth(), minDate.getDate());
40
- return dateOnly < minDateOnly;
41
- }
42
- : false }) })] }) }));
43
- };
44
- export default DatePicker;
@@ -1,12 +0,0 @@
1
- import { type RegisterOptions } from 'react-hook-form';
2
- import { type DatePickerProps } from './DatePicker.js';
3
- interface FormDatePickerProps extends Omit<DatePickerProps, 'value' | 'onChange'> {
4
- name: string;
5
- options?: RegisterOptions;
6
- customErrorMessage?: string;
7
- isHiddenErrorMessage?: boolean;
8
- errorClassName?: string;
9
- }
10
- declare const FormDatePicker: ({ name, options, customErrorMessage, isHiddenErrorMessage, errorClassName, disabled, block, ...props }: FormDatePickerProps) => import("react/jsx-runtime").JSX.Element;
11
- export default FormDatePicker;
12
- //# sourceMappingURL=FormDatePicker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormDatePicker.d.ts","sourceRoot":"","sources":["../../../src/components/DatePicker/FormDatePicker.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAKhE,UAAU,mBAAoB,SAAQ,IAAI,CACxC,eAAe,EACf,OAAO,GAAG,UAAU,CACrB;IACC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,QAAA,MAAM,cAAc,GAAI,wGASrB,mBAAmB,4CAoCrB,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -1,12 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import DatePicker from './DatePicker.js';
4
- import FormField from '../Form/FormField.js';
5
- import FormErrorMessage from '../Form/FormErrorMessage.js';
6
- import cn from '../../utils/cn.js';
7
- const FormDatePicker = ({ name, options, customErrorMessage = '', isHiddenErrorMessage = false, errorClassName, disabled = false, block = false, ...props }) => {
8
- return (_jsx(FormField, { name: name, options: options, customErrorMessage: customErrorMessage, disabled: disabled, children: ({ field, fieldState }) => (_jsxs("div", { className: cn('relative border-2 border-transparent', block ? 'w-full' : 'w-auto'), children: [_jsx(DatePicker, { ...props, block: block, value: field.value ?? undefined, onChange: (date) => {
9
- field.onChange(date);
10
- }, disabled: disabled, color: fieldState.hasError ? 'danger' : 'neutral' }), !isHiddenErrorMessage && (_jsx(FormErrorMessage, { error: fieldState.error, disabled: disabled, className: errorClassName }))] })) }));
11
- };
12
- export default FormDatePicker;
@@ -1,49 +0,0 @@
1
- import { type ReactNode } from 'react';
2
- type DateRange = {
3
- from: Date;
4
- to?: Date;
5
- };
6
- type ViewMode = 'daily' | 'monthly' | 'yearly';
7
- export interface DateRangePickerProps {
8
- /** 선택된 날짜 범위 ({ from, to? }) */
9
- value?: DateRange;
10
- /** 날짜 범위 변경 시 호출되는 콜백 */
11
- onChange?: (value: DateRange | undefined) => void;
12
- /** 비활성화 여부 */
13
- disabled?: boolean;
14
- /** true 시 너비 100% */
15
- block?: boolean;
16
- /** 색상 테마 (danger 시 에러 스타일) */
17
- color?: 'neutral' | 'danger';
18
- /** 현재 시점 이후 날짜 선택 비활성화 */
19
- isDisableAfterNow?: boolean;
20
- /** 날짜 범위 완성 시 팝오버 자동 닫힘 */
21
- isAutoClose?: boolean;
22
- /** 선택 모드 (daily: 일별, monthly: 월별, yearly: 연별) */
23
- viewMode?: ViewMode;
24
- /** 초기 선택 날짜 범위 (uncontrolled) */
25
- defaultValue?: DateRange;
26
- /** 초기값 (리셋 시 이 값으로 복원) */
27
- initialValue?: {
28
- from: string;
29
- to: string;
30
- };
31
- /** 트리거 우측 아이콘 */
32
- trailingIcon?: ReactNode;
33
- /** 날짜 범위 선택 완료 시 호출되는 콜백 */
34
- onRangeComplete?: (range: {
35
- from: Date;
36
- to: Date;
37
- }) => void;
38
- /** 날짜 초기화 완료 시 호출되는 콜백 */
39
- onResetComplete?: () => void;
40
- /** 추가 CSS 클래스 */
41
- className?: string;
42
- /** 인라인 스타일 (트리거 버튼에 적용) */
43
- style?: React.CSSProperties;
44
- /** 트리거 버튼 className */
45
- triggerClassName?: string;
46
- }
47
- declare const DateRangePicker: ({ value, onChange, disabled, block, color, isDisableAfterNow, isAutoClose, viewMode, defaultValue, initialValue, trailingIcon, onRangeComplete, onResetComplete, className, style, triggerClassName, }: DateRangePickerProps) => import("react/jsx-runtime").JSX.Element;
48
- export default DateRangePicker;
49
- //# sourceMappingURL=DateRangePicker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DateRangePicker.d.ts","sourceRoot":"","sources":["../../../src/components/DateRangePicker/DateRangePicker.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;AASjD,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;AAe/C,MAAM,WAAW,oBAAoB;IACnC,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,SAAS,GAAG,QAAQ,CAAC;IAC7B,0BAA0B;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,2BAA2B;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,iCAAiC;IACjC,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,0BAA0B;IAC1B,YAAY,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,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;AAED,QAAA,MAAM,eAAe,GAAI,wMAmBtB,oBAAoB,4CAiLtB,CAAC;AA6LF,eAAe,eAAe,CAAC"}