@loword/loword-design-system 0.0.4 → 0.0.5

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 (229) hide show
  1. package/package.json +2 -2
  2. package/dist/components/Avatar/Avatar.d.ts +0 -11
  3. package/dist/components/Avatar/Avatar.d.ts.map +0 -1
  4. package/dist/components/Avatar/Avatar.js +0 -24
  5. package/dist/components/Avatar/AvatarBase.d.ts +0 -32
  6. package/dist/components/Avatar/AvatarBase.d.ts.map +0 -1
  7. package/dist/components/Avatar/AvatarBase.js +0 -49
  8. package/dist/components/Badge/Badge.d.ts +0 -25
  9. package/dist/components/Badge/Badge.d.ts.map +0 -1
  10. package/dist/components/Badge/Badge.js +0 -36
  11. package/dist/components/Badge/BadgeBase.d.ts +0 -10
  12. package/dist/components/Badge/BadgeBase.d.ts.map +0 -1
  13. package/dist/components/Badge/BadgeBase.js +0 -9
  14. package/dist/components/BreadCrumb/BreadCrumb.d.ts +0 -17
  15. package/dist/components/BreadCrumb/BreadCrumb.d.ts.map +0 -1
  16. package/dist/components/BreadCrumb/BreadCrumb.js +0 -37
  17. package/dist/components/BreadCrumb/BreadCrumbBase.d.ts +0 -9
  18. package/dist/components/BreadCrumb/BreadCrumbBase.d.ts.map +0 -1
  19. package/dist/components/BreadCrumb/BreadCrumbBase.js +0 -17
  20. package/dist/components/Button/Button.d.ts +0 -26
  21. package/dist/components/Button/Button.d.ts.map +0 -1
  22. package/dist/components/Button/Button.js +0 -102
  23. package/dist/components/Button/ButtonBase.d.ts +0 -5
  24. package/dist/components/Button/ButtonBase.d.ts.map +0 -1
  25. package/dist/components/Button/ButtonBase.js +0 -10
  26. package/dist/components/Button/ButtonSpinner.d.ts +0 -8
  27. package/dist/components/Button/ButtonSpinner.d.ts.map +0 -1
  28. package/dist/components/Button/ButtonSpinner.js +0 -15
  29. package/dist/components/Calendar/Calendar.d.ts +0 -16
  30. package/dist/components/Calendar/Calendar.d.ts.map +0 -1
  31. package/dist/components/Calendar/Calendar.js +0 -75
  32. package/dist/components/Callout/Callout.d.ts +0 -10
  33. package/dist/components/Callout/Callout.d.ts.map +0 -1
  34. package/dist/components/Callout/Callout.js +0 -6
  35. package/dist/components/Callout/CalloutBase.d.ts +0 -18
  36. package/dist/components/Callout/CalloutBase.d.ts.map +0 -1
  37. package/dist/components/Callout/CalloutBase.js +0 -21
  38. package/dist/components/Carousel/Carousel.d.ts +0 -50
  39. package/dist/components/Carousel/Carousel.d.ts.map +0 -1
  40. package/dist/components/Carousel/Carousel.js +0 -22
  41. package/dist/components/Carousel/CarouselBase.d.ts +0 -98
  42. package/dist/components/Carousel/CarouselBase.d.ts.map +0 -1
  43. package/dist/components/Carousel/CarouselBase.js +0 -144
  44. package/dist/components/Checkbox/Checkbox.d.ts +0 -27
  45. package/dist/components/Checkbox/Checkbox.d.ts.map +0 -1
  46. package/dist/components/Checkbox/Checkbox.js +0 -30
  47. package/dist/components/Checkbox/CheckboxBase.d.ts +0 -40
  48. package/dist/components/Checkbox/CheckboxBase.d.ts.map +0 -1
  49. package/dist/components/Checkbox/CheckboxBase.js +0 -57
  50. package/dist/components/Checkbox/CheckboxGroup.d.ts +0 -22
  51. package/dist/components/Checkbox/CheckboxGroup.d.ts.map +0 -1
  52. package/dist/components/Checkbox/CheckboxGroup.js +0 -13
  53. package/dist/components/Checkbox/FormCheckbox.d.ts +0 -14
  54. package/dist/components/Checkbox/FormCheckbox.d.ts.map +0 -1
  55. package/dist/components/Checkbox/FormCheckbox.js +0 -9
  56. package/dist/components/Checkbox/FormCheckboxGroup.d.ts +0 -13
  57. package/dist/components/Checkbox/FormCheckboxGroup.d.ts.map +0 -1
  58. package/dist/components/Checkbox/FormCheckboxGroup.js +0 -9
  59. package/dist/components/DataCalendar/DataCalendar.d.ts +0 -12
  60. package/dist/components/DataCalendar/DataCalendar.d.ts.map +0 -1
  61. package/dist/components/DataCalendar/DataCalendar.js +0 -13
  62. package/dist/components/DataCalendar/DataCalendarBase.d.ts +0 -45
  63. package/dist/components/DataCalendar/DataCalendarBase.d.ts.map +0 -1
  64. package/dist/components/DataCalendar/DataCalendarBase.js +0 -57
  65. package/dist/components/DatePicker/DatePicker.d.ts +0 -34
  66. package/dist/components/DatePicker/DatePicker.d.ts.map +0 -1
  67. package/dist/components/DatePicker/DatePicker.js +0 -44
  68. package/dist/components/DatePicker/FormDatePicker.d.ts +0 -12
  69. package/dist/components/DatePicker/FormDatePicker.d.ts.map +0 -1
  70. package/dist/components/DatePicker/FormDatePicker.js +0 -12
  71. package/dist/components/DateRangePicker/DateRangePicker.d.ts +0 -49
  72. package/dist/components/DateRangePicker/DateRangePicker.d.ts.map +0 -1
  73. package/dist/components/DateRangePicker/DateRangePicker.js +0 -197
  74. package/dist/components/DateRangePicker/FormDateRangePicker.d.ts +0 -12
  75. package/dist/components/DateRangePicker/FormDateRangePicker.d.ts.map +0 -1
  76. package/dist/components/DateRangePicker/FormDateRangePicker.js +0 -10
  77. package/dist/components/Divider/Divider.d.ts +0 -9
  78. package/dist/components/Divider/Divider.d.ts.map +0 -1
  79. package/dist/components/Divider/Divider.js +0 -11
  80. package/dist/components/Divider/DividerBase.d.ts +0 -9
  81. package/dist/components/Divider/DividerBase.d.ts.map +0 -1
  82. package/dist/components/Divider/DividerBase.js +0 -9
  83. package/dist/components/Drawer/Drawer.d.ts +0 -51
  84. package/dist/components/Drawer/Drawer.d.ts.map +0 -1
  85. package/dist/components/Drawer/Drawer.js +0 -30
  86. package/dist/components/Drawer/DrawerBase.d.ts +0 -52
  87. package/dist/components/Drawer/DrawerBase.d.ts.map +0 -1
  88. package/dist/components/Drawer/DrawerBase.js +0 -38
  89. package/dist/components/Editor/Editor.d.ts +0 -12
  90. package/dist/components/Editor/Editor.d.ts.map +0 -1
  91. package/dist/components/Editor/Editor.js +0 -162
  92. package/dist/components/Editor/EditorBase.d.ts +0 -52
  93. package/dist/components/Editor/EditorBase.d.ts.map +0 -1
  94. package/dist/components/Editor/EditorBase.js +0 -89
  95. package/dist/components/Editor/Viewer.d.ts +0 -7
  96. package/dist/components/Editor/Viewer.d.ts.map +0 -1
  97. package/dist/components/Editor/Viewer.js +0 -9
  98. package/dist/components/Editor/extensions.d.ts +0 -6
  99. package/dist/components/Editor/extensions.d.ts.map +0 -1
  100. package/dist/components/Editor/extensions.js +0 -38
  101. package/dist/components/FileUpload/FileUploadBase.d.ts +0 -50
  102. package/dist/components/FileUpload/FileUploadBase.d.ts.map +0 -1
  103. package/dist/components/FileUpload/FileUploadBase.js +0 -102
  104. package/dist/components/Input/FormInput.d.ts +0 -15
  105. package/dist/components/Input/FormInput.d.ts.map +0 -1
  106. package/dist/components/Input/FormInput.js +0 -19
  107. package/dist/components/Input/Input.d.ts +0 -24
  108. package/dist/components/Input/Input.d.ts.map +0 -1
  109. package/dist/components/Input/Input.js +0 -71
  110. package/dist/components/Input/InputBase.d.ts +0 -22
  111. package/dist/components/Input/InputBase.d.ts.map +0 -1
  112. package/dist/components/Input/InputBase.js +0 -17
  113. package/dist/components/LNB/LNBBase.d.ts +0 -82
  114. package/dist/components/LNB/LNBBase.d.ts.map +0 -1
  115. package/dist/components/LNB/LNBBase.js +0 -108
  116. package/dist/components/LoadingDots/LoadingDots.d.ts +0 -8
  117. package/dist/components/LoadingDots/LoadingDots.d.ts.map +0 -1
  118. package/dist/components/LoadingDots/LoadingDots.js +0 -29
  119. package/dist/components/MenuBar/MenuBar.d.ts +0 -21
  120. package/dist/components/MenuBar/MenuBar.d.ts.map +0 -1
  121. package/dist/components/MenuBar/MenuBar.js +0 -33
  122. package/dist/components/MenuBar/MenuBarBase.d.ts +0 -43
  123. package/dist/components/MenuBar/MenuBarBase.d.ts.map +0 -1
  124. package/dist/components/MenuBar/MenuBarBase.js +0 -69
  125. package/dist/components/Modal/Modal.d.ts +0 -51
  126. package/dist/components/Modal/Modal.d.ts.map +0 -1
  127. package/dist/components/Modal/Modal.js +0 -72
  128. package/dist/components/Modal/ModalBase.d.ts +0 -42
  129. package/dist/components/Modal/ModalBase.d.ts.map +0 -1
  130. package/dist/components/Modal/ModalBase.js +0 -30
  131. package/dist/components/Modal/openModal.d.ts +0 -24
  132. package/dist/components/Modal/openModal.d.ts.map +0 -1
  133. package/dist/components/Modal/openModal.js +0 -52
  134. package/dist/components/OTPInput/OTPInput.d.ts +0 -46
  135. package/dist/components/OTPInput/OTPInput.d.ts.map +0 -1
  136. package/dist/components/OTPInput/OTPInput.js +0 -87
  137. package/dist/components/Pagination/Pagination.d.ts +0 -12
  138. package/dist/components/Pagination/Pagination.d.ts.map +0 -1
  139. package/dist/components/Pagination/Pagination.js +0 -5
  140. package/dist/components/Pagination/PaginationBase.d.ts +0 -36
  141. package/dist/components/Pagination/PaginationBase.d.ts.map +0 -1
  142. package/dist/components/Pagination/PaginationBase.js +0 -44
  143. package/dist/components/Pagination/paginationUtils.d.ts +0 -2
  144. package/dist/components/Pagination/paginationUtils.d.ts.map +0 -1
  145. package/dist/components/Pagination/paginationUtils.js +0 -18
  146. package/dist/components/Popover/Popover.d.ts +0 -42
  147. package/dist/components/Popover/Popover.d.ts.map +0 -1
  148. package/dist/components/Popover/Popover.js +0 -31
  149. package/dist/components/Popover/PopoverBase.d.ts +0 -31
  150. package/dist/components/Popover/PopoverBase.d.ts.map +0 -1
  151. package/dist/components/Popover/PopoverBase.js +0 -18
  152. package/dist/components/Radio/FormRadioGroup.d.ts +0 -13
  153. package/dist/components/Radio/FormRadioGroup.d.ts.map +0 -1
  154. package/dist/components/Radio/FormRadioGroup.js +0 -9
  155. package/dist/components/Radio/Radio.d.ts +0 -24
  156. package/dist/components/Radio/Radio.d.ts.map +0 -1
  157. package/dist/components/Radio/Radio.js +0 -39
  158. package/dist/components/Radio/RadioBase.d.ts +0 -38
  159. package/dist/components/Radio/RadioBase.d.ts.map +0 -1
  160. package/dist/components/Radio/RadioBase.js +0 -46
  161. package/dist/components/Radio/RadioGroup.d.ts +0 -22
  162. package/dist/components/Radio/RadioGroup.d.ts.map +0 -1
  163. package/dist/components/Radio/RadioGroup.js +0 -7
  164. package/dist/components/ScrollArea/ScrollArea.d.ts +0 -15
  165. package/dist/components/ScrollArea/ScrollArea.d.ts.map +0 -1
  166. package/dist/components/ScrollArea/ScrollArea.js +0 -10
  167. package/dist/components/Select/FormMultiSelect.d.ts +0 -13
  168. package/dist/components/Select/FormMultiSelect.d.ts.map +0 -1
  169. package/dist/components/Select/FormMultiSelect.js +0 -14
  170. package/dist/components/Select/FormSelect.d.ts +0 -13
  171. package/dist/components/Select/FormSelect.d.ts.map +0 -1
  172. package/dist/components/Select/FormSelect.js +0 -10
  173. package/dist/components/Select/MultiSelect.d.ts +0 -31
  174. package/dist/components/Select/MultiSelect.d.ts.map +0 -1
  175. package/dist/components/Select/MultiSelect.js +0 -59
  176. package/dist/components/Select/Select.d.ts +0 -41
  177. package/dist/components/Select/Select.d.ts.map +0 -1
  178. package/dist/components/Select/Select.js +0 -55
  179. package/dist/components/Select/SelectBase.d.ts +0 -59
  180. package/dist/components/Select/SelectBase.d.ts.map +0 -1
  181. package/dist/components/Select/SelectBase.js +0 -211
  182. package/dist/components/Skeleton/Skeleton.d.ts +0 -10
  183. package/dist/components/Skeleton/Skeleton.d.ts.map +0 -1
  184. package/dist/components/Skeleton/Skeleton.js +0 -8
  185. package/dist/components/Slider/Slider.d.ts +0 -23
  186. package/dist/components/Slider/Slider.d.ts.map +0 -1
  187. package/dist/components/Slider/Slider.js +0 -195
  188. package/dist/components/Spinner/Spinner.d.ts +0 -25
  189. package/dist/components/Spinner/Spinner.d.ts.map +0 -1
  190. package/dist/components/Spinner/Spinner.js +0 -20
  191. package/dist/components/Table/Table.d.ts +0 -34
  192. package/dist/components/Table/Table.d.ts.map +0 -1
  193. package/dist/components/Table/Table.js +0 -29
  194. package/dist/components/Table/TableBase.d.ts +0 -37
  195. package/dist/components/Table/TableBase.d.ts.map +0 -1
  196. package/dist/components/Table/TableBase.js +0 -39
  197. package/dist/components/Table/TableField.d.ts +0 -64
  198. package/dist/components/Table/TableField.d.ts.map +0 -1
  199. package/dist/components/Table/TableField.js +0 -87
  200. package/dist/components/Table/TanstackTable.d.ts +0 -23
  201. package/dist/components/Table/TanstackTable.d.ts.map +0 -1
  202. package/dist/components/Table/TanstackTable.js +0 -35
  203. package/dist/components/TimePicker/FormTimePicker.d.ts +0 -12
  204. package/dist/components/TimePicker/FormTimePicker.d.ts.map +0 -1
  205. package/dist/components/TimePicker/FormTimePicker.js +0 -12
  206. package/dist/components/TimePicker/TimePicker.d.ts +0 -27
  207. package/dist/components/TimePicker/TimePicker.d.ts.map +0 -1
  208. package/dist/components/TimePicker/TimePicker.js +0 -120
  209. package/dist/components/Toast/Toast.d.ts +0 -18
  210. package/dist/components/Toast/Toast.d.ts.map +0 -1
  211. package/dist/components/Toast/Toast.js +0 -42
  212. package/dist/components/Toast/Toaster.d.ts +0 -7
  213. package/dist/components/Toast/Toaster.d.ts.map +0 -1
  214. package/dist/components/Toast/Toaster.js +0 -7
  215. package/dist/components/ToggleButton/FormToggleButton.d.ts +0 -12
  216. package/dist/components/ToggleButton/FormToggleButton.d.ts.map +0 -1
  217. package/dist/components/ToggleButton/FormToggleButton.js +0 -9
  218. package/dist/components/ToggleButton/ToggleButton.d.ts +0 -31
  219. package/dist/components/ToggleButton/ToggleButton.d.ts.map +0 -1
  220. package/dist/components/ToggleButton/ToggleButton.js +0 -42
  221. package/dist/components/ToggleButton/ToggleButtonBase.d.ts +0 -41
  222. package/dist/components/ToggleButton/ToggleButtonBase.d.ts.map +0 -1
  223. package/dist/components/ToggleButton/ToggleButtonBase.js +0 -59
  224. package/dist/components/Tooltip/Tooltip.d.ts +0 -18
  225. package/dist/components/Tooltip/Tooltip.d.ts.map +0 -1
  226. package/dist/components/Tooltip/Tooltip.js +0 -13
  227. package/dist/components/Tooltip/TooltipBase.d.ts +0 -39
  228. package/dist/components/Tooltip/TooltipBase.d.ts.map +0 -1
  229. package/dist/components/Tooltip/TooltipBase.js +0 -46
@@ -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"}
@@ -1,197 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } 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 dateFormats = {
11
- daily: 'YYYY-MM-DD',
12
- monthly: 'YYYY-MM',
13
- yearly: 'YYYY',
14
- };
15
- const placeholders = {
16
- daily: 'YYYY-MM-DD ~ YYYY-MM-DD',
17
- monthly: 'YYYY-MM ~ YYYY-MM',
18
- yearly: 'YYYY ~ YYYY',
19
- };
20
- const DateRangePicker = ({ value, onChange, disabled = false, block = false, color = 'neutral', isDisableAfterNow = false, isAutoClose = false, viewMode = 'daily', defaultValue, initialValue, trailingIcon = (_jsx(LucideIcon, { name: "calendar", size: 15, className: "text-mono40" })), onRangeComplete, onResetComplete, className, style, triggerClassName, }) => {
21
- const [open, setOpen] = useState(false);
22
- const [internal, setInternal] = useState(defaultValue);
23
- const isControlled = value !== undefined;
24
- const resolved = isControlled ? value : internal;
25
- const fmt = dateFormats[viewMode];
26
- const renderDateRange = () => {
27
- if (!resolved?.from) {
28
- return _jsx("span", { className: "text-mono40", children: placeholders[viewMode] });
29
- }
30
- if (!resolved.to) {
31
- return (_jsxs("span", { className: "text-mono40", children: [dayjs(resolved.from).format(fmt), " ~", ' ', placeholders[viewMode].split(' ~ ')[1]] }));
32
- }
33
- return (_jsxs(_Fragment, { children: [dayjs(resolved.from).format(fmt), " ~ ", dayjs(resolved.to).format(fmt)] }));
34
- };
35
- const handleReset = (e) => {
36
- e.stopPropagation();
37
- const resetValue = initialValue
38
- ? {
39
- from: dayjs(initialValue.from).toDate(),
40
- to: dayjs(initialValue.to).toDate(),
41
- }
42
- : undefined;
43
- if (!isControlled)
44
- setInternal(resetValue);
45
- onChange?.(resetValue);
46
- onResetComplete?.();
47
- };
48
- const isResetAvailable = initialValue?.from
49
- ? dayjs(resolved?.from).format(fmt) !== initialValue.from ||
50
- dayjs(resolved?.to).format(fmt) !== initialValue.to
51
- : !!resolved?.from;
52
- const handleRangeSelect = (range) => {
53
- if (!range)
54
- return;
55
- if (!isControlled)
56
- setInternal(range);
57
- onChange?.(range);
58
- if (range.from && range.to) {
59
- onRangeComplete?.(range);
60
- if (isAutoClose)
61
- setOpen(false);
62
- }
63
- };
64
- const handleDailySelect = (selected) => {
65
- if (!selected)
66
- return;
67
- const current = resolved;
68
- // from만 있는 상태에서 두 번째 클릭
69
- if (current?.from && !current?.to && selected?.from && selected?.to) {
70
- handleRangeSelect(selected);
71
- return;
72
- }
73
- // 완전한 범위가 이미 있는 상태에서 클릭
74
- if (current?.from && current?.to) {
75
- if (selected?.from &&
76
- selected?.to &&
77
- selected.from.getTime() === selected.to.getTime()) {
78
- if (!isControlled)
79
- setInternal({ from: selected.from, to: undefined });
80
- onChange?.({ from: selected.from, to: undefined });
81
- return;
82
- }
83
- if (selected?.from && selected?.to) {
84
- const clickedDate = selected.from.getTime() !== current.from.getTime() &&
85
- selected.from.getTime() !== current.to.getTime()
86
- ? selected.from
87
- : selected.to.getTime() !== current.from.getTime() &&
88
- selected.to.getTime() !== current.to.getTime()
89
- ? selected.to
90
- : selected.from;
91
- if (!isControlled)
92
- setInternal({ from: clickedDate, to: undefined });
93
- onChange?.({ from: clickedDate, to: undefined });
94
- return;
95
- }
96
- }
97
- // 기본 동작
98
- if (selected?.from &&
99
- selected?.to &&
100
- selected.from.getTime() === selected.to.getTime()) {
101
- if (!isControlled)
102
- setInternal({ from: selected.from, to: undefined });
103
- onChange?.({ from: selected.from, to: undefined });
104
- }
105
- else {
106
- if (!isControlled)
107
- setInternal(selected);
108
- onChange?.(selected);
109
- }
110
- };
111
- 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-neutral10 h-[38px] w-full display14 px-4 rounded-[5px]', 'flex flex-row items-center justify-between gap-4', 'whitespace-nowrap outline-2 outline-transparent ld-transition', disabled && 'cursor-not-allowed opacity-50', color === 'danger'
112
- ? 'bg-tintRed outline-red500'
113
- : 'focus:bg-tintBlue focus:outline-lb500', triggerClassName), children: [renderDateRange(), _jsxs("div", { className: "shrink-0 flex gap-1.5", children: [trailingIcon, isResetAvailable && (_jsx("span", { role: "button", tabIndex: 0, className: "text-mono40 cursor-pointer", onClick: handleReset, onKeyDown: (e) => {
114
- if (e.key === 'Enter' || e.key === ' ') {
115
- e.preventDefault();
116
- handleReset(e);
117
- }
118
- }, children: _jsx(LucideIcon, { name: "rotateCw", size: 14 }) }))] })] }), _jsxs(PopoverBase.Content, { className: "rounded-md border border-neutral-200 bg-white shadow-md p-0", children: [viewMode === 'daily' && (_jsx(Calendar, { captionLayout: "dropdown", mode: "range", locale: ko, selected: resolved, onSelect: handleDailySelect, disabled: isDisableAfterNow ? (date) => date > new Date() : false, numberOfMonths: 2 })), viewMode === 'monthly' && (_jsx(MonthRangePicker, { value: resolved, onChange: handleRangeSelect, isDisableAfterNow: isDisableAfterNow })), viewMode === 'yearly' && (_jsx(YearRangePicker, { value: resolved, onChange: handleRangeSelect, isDisableAfterNow: isDisableAfterNow }))] })] }) }));
119
- };
120
- // ── MonthRangePicker ──
121
- const MonthRangePicker = ({ value, onChange, isDisableAfterNow, }) => {
122
- const [currentYear, setCurrentYear] = useState(value?.from ? value.from.getFullYear() : new Date().getFullYear());
123
- const now = new Date();
124
- const handleMonthClick = (month) => {
125
- const clickedDate = new Date(currentYear, month, 1);
126
- if (!value?.from || (value.from && value.to)) {
127
- onChange({ from: clickedDate, to: undefined });
128
- }
129
- else if (clickedDate < value.from) {
130
- onChange({ from: clickedDate, to: undefined });
131
- }
132
- else {
133
- onChange({
134
- from: value.from,
135
- to: dayjs(clickedDate).endOf('month').toDate(),
136
- });
137
- }
138
- };
139
- const isSelected = (month) => {
140
- if (!value?.from)
141
- return false;
142
- const date = new Date(currentYear, month, 1);
143
- if (value.to) {
144
- return (date >= dayjs(value.from).startOf('month').toDate() && date <= value.to);
145
- }
146
- return (date.getFullYear() === value.from.getFullYear() &&
147
- date.getMonth() === value.from.getMonth());
148
- };
149
- const isDisabled = (month) => {
150
- if (!isDisableAfterNow)
151
- return false;
152
- return new Date(currentYear, month, 1) > dayjs(now).endOf('month').toDate();
153
- };
154
- return (_jsxs("div", { className: "p-3 w-[280px]", children: [_jsxs("div", { className: "flex items-center justify-between mb-4 px-2", children: [_jsx("button", { type: "button", className: "inline-flex items-center justify-center size-8 rounded-md hover:bg-neutral-100 cursor-pointer", onClick: () => setCurrentYear((prev) => prev - 1), children: _jsx(LucideIcon, { name: "chevronLeft", size: 16 }) }), _jsxs("span", { className: "display14 bold", children: [currentYear, "\uB144"] }), _jsx("button", { type: "button", className: "inline-flex items-center justify-center size-8 rounded-md hover:bg-neutral-100 cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed", onClick: () => setCurrentYear((prev) => prev + 1), disabled: isDisableAfterNow && currentYear >= now.getFullYear(), children: _jsx(LucideIcon, { name: "chevronRight", size: 16 }) })] }), _jsx("div", { className: "grid grid-cols-3 gap-2", children: Array.from({ length: 12 }, (_, m) => (_jsxs("button", { type: "button", onClick: () => handleMonthClick(m), disabled: isDisabled(m), className: cn('h-10 rounded-md display12 ld-transition cursor-pointer', isSelected(m)
155
- ? 'bg-lb500 text-white bold'
156
- : 'hover:bg-neutral10 text-mono60', isDisabled(m) && 'opacity-30 cursor-not-allowed'), children: [m + 1, "\uC6D4"] }, m))) })] }));
157
- };
158
- // ── YearRangePicker ──
159
- const YearRangePicker = ({ value, onChange, isDisableAfterNow, }) => {
160
- const [startYearPage, setStartYearPage] = useState(Math.floor((value?.from ? value.from.getFullYear() : new Date().getFullYear()) / 12) * 12);
161
- const years = Array.from({ length: 12 }, (_, i) => startYearPage + i);
162
- const now = new Date();
163
- const handleYearClick = (year) => {
164
- const clickedDate = new Date(year, 0, 1);
165
- if (!value?.from || (value.from && value.to)) {
166
- onChange({ from: clickedDate, to: undefined });
167
- }
168
- else if (clickedDate < value.from) {
169
- onChange({ from: clickedDate, to: undefined });
170
- }
171
- else {
172
- onChange({
173
- from: value.from,
174
- to: dayjs(clickedDate).endOf('year').toDate(),
175
- });
176
- }
177
- };
178
- const isSelected = (year) => {
179
- if (!value?.from)
180
- return false;
181
- const date = new Date(year, 0, 1);
182
- if (value.to) {
183
- return (date >= dayjs(value.from).startOf('year').toDate() && date <= value.to);
184
- }
185
- return date.getFullYear() === value.from.getFullYear();
186
- };
187
- const isDisabled = (year) => {
188
- if (!isDisableAfterNow)
189
- return false;
190
- return year > now.getFullYear();
191
- };
192
- return (_jsxs("div", { className: "p-3 w-[280px]", children: [_jsxs("div", { className: "flex items-center justify-between mb-4 px-2", children: [_jsx("button", { type: "button", className: "inline-flex items-center justify-center size-8 rounded-md hover:bg-neutral-100 cursor-pointer", onClick: () => setStartYearPage((prev) => prev - 12), children: _jsx(LucideIcon, { name: "chevronLeft", size: 16 }) }), _jsxs("span", { className: "display14 bold", children: [years[0], " - ", years[years.length - 1]] }), _jsx("button", { type: "button", className: "inline-flex items-center justify-center size-8 rounded-md hover:bg-neutral-100 cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed", onClick: () => setStartYearPage((prev) => prev + 12), disabled: isDisableAfterNow &&
193
- (years[years.length - 1] ?? 0) >= now.getFullYear(), children: _jsx(LucideIcon, { name: "chevronRight", size: 16 }) })] }), _jsx("div", { className: "grid grid-cols-3 gap-2", children: years.map((y) => (_jsxs("button", { type: "button", onClick: () => handleYearClick(y), disabled: isDisabled(y), className: cn('h-10 rounded-md display12 ld-transition cursor-pointer', isSelected(y)
194
- ? 'bg-lb500 text-white bold'
195
- : 'hover:bg-neutral10 text-mono60', isDisabled(y) && 'opacity-30 cursor-not-allowed'), children: [y, "\uB144"] }, y))) })] }));
196
- };
197
- export default DateRangePicker;
@@ -1,12 +0,0 @@
1
- import { type RegisterOptions } from 'react-hook-form';
2
- import { type DateRangePickerProps } from './DateRangePicker.js';
3
- interface FormDateRangePickerProps extends Omit<DateRangePickerProps, 'value' | 'onChange'> {
4
- name: string;
5
- options?: RegisterOptions;
6
- customErrorMessage?: string;
7
- isHiddenErrorMessage?: boolean;
8
- errorClassName?: string;
9
- }
10
- declare const FormDateRangePicker: ({ name, options, customErrorMessage, isHiddenErrorMessage, errorClassName, disabled, block, ...props }: FormDateRangePickerProps) => import("react/jsx-runtime").JSX.Element;
11
- export default FormDateRangePicker;
12
- //# sourceMappingURL=FormDateRangePicker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormDateRangePicker.d.ts","sourceRoot":"","sources":["../../../src/components/DateRangePicker/FormDateRangePicker.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAwB,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAK/E,UAAU,wBAAyB,SAAQ,IAAI,CAC7C,oBAAoB,EACpB,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,mBAAmB,GAAI,wGAS1B,wBAAwB,4CAkC1B,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -1,10 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import DateRangePicker from './DateRangePicker.js';
4
- import FormField from '../Form/FormField.js';
5
- import FormErrorMessage from '../Form/FormErrorMessage.js';
6
- import cn from '../../utils/cn.js';
7
- const FormDateRangePicker = ({ name, options, customErrorMessage = '', isHiddenErrorMessage = true, 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(DateRangePicker, { ...props, block: block, value: field.value ?? undefined, onChange: field.onChange, disabled: disabled, color: fieldState.hasError ? 'danger' : 'neutral' }), !isHiddenErrorMessage && (_jsx(FormErrorMessage, { error: fieldState.error, disabled: disabled, className: errorClassName }))] })) }));
9
- };
10
- export default FormDateRangePicker;
@@ -1,9 +0,0 @@
1
- import { type DividerBaseRootProps } from './DividerBase.js';
2
- export type TOrientation = 'horizontal' | 'vertical';
3
- export interface DividerProps extends Omit<DividerBaseRootProps, 'children'> {
4
- orientation?: TOrientation;
5
- decorative?: boolean;
6
- }
7
- declare const Divider: ({ orientation, decorative, className, ...props }: DividerProps) => import("react/jsx-runtime").JSX.Element;
8
- export default Divider;
9
- //# sourceMappingURL=Divider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Divider.d.ts","sourceRoot":"","sources":["../../../src/components/Divider/Divider.tsx"],"names":[],"mappings":"AACA,OAAoB,EAAE,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAEvE,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,UAAU,CAAC;AAErD,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,oBAAoB,EAAE,UAAU,CAAC;IAC1E,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAOD,QAAA,MAAM,OAAO,GAAI,kDAKd,YAAY,4CASd,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -1,11 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import cn from '../../utils/cn.js';
3
- import DividerBase from './DividerBase.js';
4
- const orientationClasses = {
5
- horizontal: 'w-full h-px',
6
- vertical: 'h-full w-px',
7
- };
8
- const Divider = ({ orientation = 'horizontal', decorative = true, className, ...props }) => {
9
- return (_jsx(DividerBase.Root, { role: decorative ? 'undefined' : 'separator', "aria-orientation": decorative ? undefined : orientation, className: cn(orientationClasses[orientation], className), ...props }));
10
- };
11
- export default Divider;
@@ -1,9 +0,0 @@
1
- import { type HTMLAttributes, type Ref } from 'react';
2
- export interface DividerBaseRootProps extends HTMLAttributes<HTMLDivElement> {
3
- ref?: Ref<HTMLDivElement>;
4
- }
5
- export declare const DividerBase: {
6
- Root: ({ ref, className, ...props }: DividerBaseRootProps) => import("react/jsx-runtime").JSX.Element;
7
- };
8
- export default DividerBase;
9
- //# sourceMappingURL=DividerBase.d.ts.map