@cocso-ui/react 0.2.11 → 0.2.13
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.
- package/dist/cjs/day-picker/DayPicker.d.ts +14 -0
- package/dist/cjs/day-picker/DayPicker.js +99 -0
- package/dist/cjs/day-picker/DayPicker.module.css.js +9 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/modal/Modal.module.css.js +1 -1
- package/dist/cjs/month-picker/MonthPicker.d.ts +4 -3
- package/dist/cjs/month-picker/MonthPicker.js +50 -62
- package/dist/cjs/month-picker/MonthPicker.module.css.js +2 -2
- package/dist/esm/day-picker/DayPicker.d.mts +14 -0
- package/dist/esm/day-picker/DayPicker.mjs +97 -0
- package/dist/esm/day-picker/DayPicker.module.css.mjs +3 -0
- package/dist/esm/index.css +1 -1
- package/dist/esm/index.d.mts +1 -0
- package/dist/esm/index.mjs +1 -0
- package/dist/esm/month-picker/MonthPicker.d.mts +4 -3
- package/dist/esm/month-picker/MonthPicker.mjs +51 -63
- package/dist/esm/month-picker/MonthPicker.module.css.mjs +1 -1
- package/package.json +9 -8
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import { ComponentPropsWithoutRef } from 'react';
|
|
3
|
+
|
|
4
|
+
interface DayPickerProps extends ComponentPropsWithoutRef<'div'> {
|
|
5
|
+
value?: Date;
|
|
6
|
+
onValueChange?: (value: Date | null) => void;
|
|
7
|
+
minDate?: Date;
|
|
8
|
+
maxDate?: Date;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
}
|
|
11
|
+
declare const DayPicker: react.ForwardRefExoticComponent<DayPickerProps & react.RefAttributes<HTMLDivElement>>;
|
|
12
|
+
|
|
13
|
+
export { DayPicker };
|
|
14
|
+
export type { DayPickerProps };
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var reactIcons = require('@cocso-ui/react-icons');
|
|
5
|
+
var clsx = require('clsx');
|
|
6
|
+
var locale = require('date-fns/locale');
|
|
7
|
+
var react = require('react');
|
|
8
|
+
var DatePicker = require('react-datepicker');
|
|
9
|
+
var DayPicker_module = require('./DayPicker.module.css.js');
|
|
10
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
11
|
+
var Dropdown = require('../dropdown/Dropdown.js');
|
|
12
|
+
var Button = require('../button/Button.js');
|
|
13
|
+
var Typography = require('../typography/Typography.js');
|
|
14
|
+
|
|
15
|
+
const DayPicker = /*#__PURE__*/react.forwardRef(({
|
|
16
|
+
className,
|
|
17
|
+
value,
|
|
18
|
+
onValueChange,
|
|
19
|
+
disabled,
|
|
20
|
+
children,
|
|
21
|
+
minDate,
|
|
22
|
+
maxDate,
|
|
23
|
+
...props
|
|
24
|
+
}, ref) => {
|
|
25
|
+
const [open, setOpen] = react.useState(false);
|
|
26
|
+
const handleChange = date => {
|
|
27
|
+
onValueChange?.(date);
|
|
28
|
+
setOpen(false);
|
|
29
|
+
};
|
|
30
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
31
|
+
ref: ref,
|
|
32
|
+
className: clsx.clsx(DayPicker_module.root, className),
|
|
33
|
+
...props,
|
|
34
|
+
children: /*#__PURE__*/jsxRuntime.jsxs(Dropdown.Dropdown, {
|
|
35
|
+
open: open,
|
|
36
|
+
onOpenChange: setOpen,
|
|
37
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Dropdown.Dropdown.Trigger, {
|
|
38
|
+
asChild: true,
|
|
39
|
+
children: children
|
|
40
|
+
}), /*#__PURE__*/jsxRuntime.jsx(Dropdown.Dropdown.Portal, {
|
|
41
|
+
children: /*#__PURE__*/jsxRuntime.jsx(Dropdown.Dropdown.Content, {
|
|
42
|
+
className: DayPicker_module.content,
|
|
43
|
+
"aria-label": "\uB0A0\uC9DC \uC120\uD0DD",
|
|
44
|
+
children: /*#__PURE__*/jsxRuntime.jsx(DatePicker, {
|
|
45
|
+
selected: value,
|
|
46
|
+
onChange: handleChange,
|
|
47
|
+
disabled: disabled,
|
|
48
|
+
locale: locale.ko,
|
|
49
|
+
minDate: minDate,
|
|
50
|
+
maxDate: maxDate,
|
|
51
|
+
dateFormat: "yyyy\uB144 MM\uC6D4 dd\uC77C",
|
|
52
|
+
showPopperArrow: false,
|
|
53
|
+
dayClassName: date => {
|
|
54
|
+
const day = date.getDay();
|
|
55
|
+
if (day === 0) return DayPicker_module.sunday;
|
|
56
|
+
if (day === 6) return DayPicker_module.saturday;
|
|
57
|
+
return '';
|
|
58
|
+
},
|
|
59
|
+
renderCustomHeader: ({
|
|
60
|
+
date,
|
|
61
|
+
decreaseMonth,
|
|
62
|
+
increaseMonth,
|
|
63
|
+
prevMonthButtonDisabled,
|
|
64
|
+
nextMonthButtonDisabled
|
|
65
|
+
}) => /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
66
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Button.Button, {
|
|
67
|
+
type: "button",
|
|
68
|
+
variant: "secondary",
|
|
69
|
+
size: "xs",
|
|
70
|
+
onClick: decreaseMonth,
|
|
71
|
+
disabled: prevMonthButtonDisabled,
|
|
72
|
+
className: DayPicker_module.backButton,
|
|
73
|
+
children: /*#__PURE__*/jsxRuntime.jsx(reactIcons.ArrowIOSForwardIcon, {})
|
|
74
|
+
}), /*#__PURE__*/jsxRuntime.jsx(Typography.Typography, {
|
|
75
|
+
type: "body",
|
|
76
|
+
weight: "semibold",
|
|
77
|
+
children: date.toLocaleDateString('ko-KR', {
|
|
78
|
+
year: 'numeric',
|
|
79
|
+
month: 'long'
|
|
80
|
+
})
|
|
81
|
+
}), /*#__PURE__*/jsxRuntime.jsx(Button.Button, {
|
|
82
|
+
type: "button",
|
|
83
|
+
variant: "secondary",
|
|
84
|
+
size: "xs",
|
|
85
|
+
onClick: increaseMonth,
|
|
86
|
+
disabled: nextMonthButtonDisabled,
|
|
87
|
+
children: /*#__PURE__*/jsxRuntime.jsx(reactIcons.ArrowIOSForwardIcon, {})
|
|
88
|
+
})]
|
|
89
|
+
}),
|
|
90
|
+
inline: true
|
|
91
|
+
})
|
|
92
|
+
})
|
|
93
|
+
})]
|
|
94
|
+
})
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
DayPicker.displayName = 'DayPicker';
|
|
98
|
+
|
|
99
|
+
exports.DayPicker = DayPicker;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var styleInject_es = require('../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js');
|
|
4
|
+
|
|
5
|
+
var css_248z = ".DayPicker-module_root__lDrAw{display:inline-block;transform:translateZ(0)}.DayPicker-module_content__VVh4Y{min-width:260px;overflow:hidden}.DayPicker-module_backButton__jYW7L{transform:rotate(180deg)}.DayPicker-module_sunday__RaZuV{color:var(--ds-color-danger-600)!important}.DayPicker-module_saturday__e-AQO{color:var(--ds-color-primary-600)!important}.react-datepicker{background-color:var(--ds-color-white);color:var(--ds-color-text-primary);display:inline-block;font-size:.8rem;position:relative}.react-datepicker__aria-live{height:1px;left:-10000px;overflow:hidden;position:absolute;top:auto;width:1px}.react-datepicker__sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.react-datepicker__month-container{padding-block:var(--ds-spacing-8);width:100%}.react-datepicker__header--custom{align-items:center;display:flex;justify-content:space-between;padding-bottom:var(--ds-spacing-5);width:100%}.react-datepicker__day-names,.react-datepicker__week{text-align:center;white-space:nowrap}.react-datepicker__day,.react-datepicker__day-name{color:var(--ds-color-text-primary);display:inline-block;line-height:1.7rem;margin:.166rem;text-align:center;width:1.7rem}.react-datepicker__day{border-radius:8px;cursor:pointer;font-weight:500}.react-datepicker__day:hover{background-color:var(--ds-color-neutral-50)}.react-datepicker__day--selected{background-color:var(--ds-color-primary-500);color:var(--ds-color-white)!important}.react-datepicker__day--selected:hover{background-color:var(--ds-color-primary-600)!important}.react-datepicker__day-name:first-child{color:var(--ds-color-danger-600)}.react-datepicker__day-name:nth-child(7){color:var(--ds-color-primary-600)}";
|
|
6
|
+
var styles = {"root":"DayPicker-module_root__lDrAw","content":"DayPicker-module_content__VVh4Y","backButton":"DayPicker-module_backButton__jYW7L","sunday":"DayPicker-module_sunday__RaZuV","saturday":"DayPicker-module_saturday__e-AQO"};
|
|
7
|
+
styleInject_es(css_248z);
|
|
8
|
+
|
|
9
|
+
module.exports = styles;
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export { Accordion } from './accordion/Accordion.js';
|
|
|
2
2
|
export { Badge, BadgeProps } from './badge/Badge.js';
|
|
3
3
|
export { Button, ButtonProps, ButtonShape, ButtonSize, ButtonVariant } from './button/Button.js';
|
|
4
4
|
export { Checkbox, CheckboxProps, CheckboxSize, CheckboxStatus } from './checkbox/Checkbox.js';
|
|
5
|
+
export { DayPicker, DayPickerProps } from './day-picker/DayPicker.js';
|
|
5
6
|
export { Dropdown } from './dropdown/Dropdown.js';
|
|
6
7
|
export { Link, LinkProps, LinkSize } from './link/Link.js';
|
|
7
8
|
export { Modal } from './modal/Modal.js';
|
package/dist/cjs/index.js
CHANGED
|
@@ -4,6 +4,7 @@ var Accordion = require('./accordion/Accordion.js');
|
|
|
4
4
|
var Badge = require('./badge/Badge.js');
|
|
5
5
|
var Button = require('./button/Button.js');
|
|
6
6
|
var Checkbox = require('./checkbox/Checkbox.js');
|
|
7
|
+
var DayPicker = require('./day-picker/DayPicker.js');
|
|
7
8
|
var Dropdown = require('./dropdown/Dropdown.js');
|
|
8
9
|
var Link = require('./link/Link.js');
|
|
9
10
|
var Modal = require('./modal/Modal.js');
|
|
@@ -28,6 +29,7 @@ exports.Accordion = Accordion.Accordion;
|
|
|
28
29
|
exports.Badge = Badge.Badge;
|
|
29
30
|
exports.Button = Button.Button;
|
|
30
31
|
exports.Checkbox = Checkbox.Checkbox;
|
|
32
|
+
exports.DayPicker = DayPicker.DayPicker;
|
|
31
33
|
exports.Dropdown = Dropdown.Dropdown;
|
|
32
34
|
exports.Link = Link.Link;
|
|
33
35
|
exports.Modal = Modal.Modal;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var styleInject_es = require('../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js');
|
|
4
4
|
|
|
5
|
-
var css_248z = "@keyframes Modal-module_overlay-show__zyvAx{0%{opacity:0}to{opacity:1}}.Modal-module_overlay__7ZBDB{animation:Modal-module_overlay-show__zyvAx .15s cubic-bezier(.16,1,.3,1);background-color:var(--ds-color-black-alpha-30);inset:0;position:fixed;z-index:var(--z-index-overlay)}@keyframes Modal-module_content-show__anq3d{0%{opacity:0;transform:translate(-50%,-48%) scale(.997)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.Modal-module_content__M1b6Q{animation:Modal-module_content-show__anq3d .15s cubic-bezier(.16,1,.3,1);background-color:var(--ds-color-white);border-radius:8px;display:flex;flex-direction:column;left:50%;max-height:85vh;max-width:380px;padding:var(--ds-spacing-9);position:fixed;top:50%;transform:translate(-50%,-50%);width:90vw;z-index:var(--z-index-modal)}.Modal-module_close__UbAF7{align-items:center;align-self:flex-end;cursor:pointer;display:flex;height:var(--ds-spacing-10);justify-content:center;width:var(--ds-spacing-10)}.Modal-module_title__oTluo{word-break:keep-all}.Modal-module_description__RgMC5{margin-top:var(--ds-spacing-5)}";
|
|
5
|
+
var css_248z = "@keyframes Modal-module_overlay-show__zyvAx{0%{opacity:0}to{opacity:1}}.Modal-module_overlay__7ZBDB{animation:Modal-module_overlay-show__zyvAx .15s cubic-bezier(.16,1,.3,1);background-color:var(--ds-color-black-alpha-30);inset:0;position:fixed;z-index:var(--ds-z-index-overlay)}@keyframes Modal-module_content-show__anq3d{0%{opacity:0;transform:translate(-50%,-48%) scale(.997)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.Modal-module_content__M1b6Q{animation:Modal-module_content-show__anq3d .15s cubic-bezier(.16,1,.3,1);background-color:var(--ds-color-white);border-radius:8px;display:flex;flex-direction:column;left:50%;max-height:85vh;max-width:380px;padding:var(--ds-spacing-9);position:fixed;top:50%;transform:translate(-50%,-50%);width:90vw;z-index:var(--ds-z-index-modal)}.Modal-module_close__UbAF7{align-items:center;align-self:flex-end;cursor:pointer;display:flex;height:var(--ds-spacing-10);justify-content:center;width:var(--ds-spacing-10)}.Modal-module_title__oTluo{word-break:keep-all}.Modal-module_description__RgMC5{margin-top:var(--ds-spacing-5)}";
|
|
6
6
|
var styles = {"overlay":"Modal-module_overlay__7ZBDB","content":"Modal-module_content__M1b6Q","close":"Modal-module_close__UbAF7","title":"Modal-module_title__oTluo","description":"Modal-module_description__RgMC5"};
|
|
7
7
|
styleInject_es(css_248z);
|
|
8
8
|
|
|
@@ -3,9 +3,10 @@ import { ComponentPropsWithoutRef } from 'react';
|
|
|
3
3
|
|
|
4
4
|
interface MonthPickerProps extends ComponentPropsWithoutRef<'div'> {
|
|
5
5
|
value?: Date;
|
|
6
|
-
onValueChange?: (value: Date |
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
onValueChange?: (value: Date | null) => void;
|
|
7
|
+
minDate?: Date;
|
|
8
|
+
maxDate?: Date;
|
|
9
|
+
disabled?: boolean;
|
|
9
10
|
}
|
|
10
11
|
declare const MonthPicker: react.ForwardRefExoticComponent<MonthPickerProps & react.RefAttributes<HTMLDivElement>>;
|
|
11
12
|
|
|
@@ -3,97 +3,85 @@
|
|
|
3
3
|
|
|
4
4
|
var reactIcons = require('@cocso-ui/react-icons');
|
|
5
5
|
var clsx = require('clsx');
|
|
6
|
+
var locale = require('date-fns/locale');
|
|
6
7
|
var react = require('react');
|
|
8
|
+
var DatePicker = require('react-datepicker');
|
|
7
9
|
var MonthPicker_module = require('./MonthPicker.module.css.js');
|
|
8
10
|
var jsxRuntime = require('react/jsx-runtime');
|
|
9
11
|
var Dropdown = require('../dropdown/Dropdown.js');
|
|
10
12
|
var Button = require('../button/Button.js');
|
|
11
13
|
var Typography = require('../typography/Typography.js');
|
|
12
14
|
|
|
13
|
-
const MONTHS = ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'];
|
|
14
15
|
const MonthPicker = /*#__PURE__*/react.forwardRef(({
|
|
15
16
|
className,
|
|
16
17
|
value,
|
|
17
18
|
onValueChange,
|
|
18
|
-
minYear = 1900,
|
|
19
|
-
maxYear = 2100,
|
|
20
19
|
children,
|
|
20
|
+
minDate,
|
|
21
|
+
maxDate,
|
|
22
|
+
disabled,
|
|
21
23
|
...props
|
|
22
24
|
}, ref) => {
|
|
23
25
|
const [open, setOpen] = react.useState(false);
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
const newValue = new Date(displayYear, month - 1, 1);
|
|
27
|
-
onValueChange?.(newValue);
|
|
26
|
+
const handleChange = date => {
|
|
27
|
+
onValueChange?.(date);
|
|
28
28
|
setOpen(false);
|
|
29
29
|
};
|
|
30
|
-
const handleYearChange = year => {
|
|
31
|
-
const clampedYear = Math.max(minYear, Math.min(maxYear, year));
|
|
32
|
-
setDisplayYear(clampedYear);
|
|
33
|
-
};
|
|
34
|
-
const handleOpenChange = isOpen => {
|
|
35
|
-
if (isOpen) {
|
|
36
|
-
setDisplayYear(value?.getFullYear() ?? new Date().getFullYear());
|
|
37
|
-
}
|
|
38
|
-
setOpen(isOpen);
|
|
39
|
-
};
|
|
40
30
|
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
41
31
|
ref: ref,
|
|
42
32
|
className: clsx.clsx(MonthPicker_module.root, className),
|
|
43
33
|
...props,
|
|
44
34
|
children: /*#__PURE__*/jsxRuntime.jsxs(Dropdown.Dropdown, {
|
|
45
35
|
open: open,
|
|
46
|
-
onOpenChange:
|
|
36
|
+
onOpenChange: setOpen,
|
|
47
37
|
children: [/*#__PURE__*/jsxRuntime.jsx(Dropdown.Dropdown.Trigger, {
|
|
48
38
|
asChild: true,
|
|
49
39
|
children: children
|
|
50
40
|
}), /*#__PURE__*/jsxRuntime.jsx(Dropdown.Dropdown.Portal, {
|
|
51
|
-
children: /*#__PURE__*/jsxRuntime.
|
|
41
|
+
children: /*#__PURE__*/jsxRuntime.jsx(Dropdown.Dropdown.Content, {
|
|
52
42
|
className: MonthPicker_module.content,
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
})
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
const monthNumber = index + 1;
|
|
85
|
-
const isSelected = value?.getFullYear() === displayYear && value?.getMonth() === monthNumber - 1;
|
|
86
|
-
return /*#__PURE__*/jsxRuntime.jsx(Button.Button, {
|
|
43
|
+
children: /*#__PURE__*/jsxRuntime.jsx(DatePicker, {
|
|
44
|
+
selected: value,
|
|
45
|
+
onChange: handleChange,
|
|
46
|
+
disabled: disabled,
|
|
47
|
+
locale: locale.ko,
|
|
48
|
+
minDate: minDate,
|
|
49
|
+
maxDate: maxDate,
|
|
50
|
+
dateFormat: "yyyy\uB144 MM\uC6D4 dd\uC77C",
|
|
51
|
+
showPopperArrow: false,
|
|
52
|
+
renderCustomHeader: ({
|
|
53
|
+
date,
|
|
54
|
+
decreaseYear,
|
|
55
|
+
increaseYear,
|
|
56
|
+
prevYearButtonDisabled,
|
|
57
|
+
nextYearButtonDisabled
|
|
58
|
+
}) => /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
59
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Button.Button, {
|
|
60
|
+
type: "button",
|
|
61
|
+
variant: "secondary",
|
|
62
|
+
size: "xs",
|
|
63
|
+
onClick: decreaseYear,
|
|
64
|
+
disabled: prevYearButtonDisabled,
|
|
65
|
+
className: MonthPicker_module.backButton,
|
|
66
|
+
children: /*#__PURE__*/jsxRuntime.jsx(reactIcons.ArrowIOSForwardIcon, {})
|
|
67
|
+
}), /*#__PURE__*/jsxRuntime.jsx(Typography.Typography, {
|
|
68
|
+
type: "body",
|
|
69
|
+
weight: "semibold",
|
|
70
|
+
children: date.toLocaleDateString('ko-KR', {
|
|
71
|
+
year: 'numeric'
|
|
72
|
+
})
|
|
73
|
+
}), /*#__PURE__*/jsxRuntime.jsx(Button.Button, {
|
|
87
74
|
type: "button",
|
|
88
|
-
variant:
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
75
|
+
variant: "secondary",
|
|
76
|
+
size: "xs",
|
|
77
|
+
onClick: increaseYear,
|
|
78
|
+
disabled: nextYearButtonDisabled,
|
|
79
|
+
children: /*#__PURE__*/jsxRuntime.jsx(reactIcons.ArrowIOSForwardIcon, {})
|
|
80
|
+
})]
|
|
81
|
+
}),
|
|
82
|
+
inline: true,
|
|
83
|
+
showMonthYearPicker: true
|
|
84
|
+
})
|
|
97
85
|
})
|
|
98
86
|
})]
|
|
99
87
|
})
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
var styleInject_es = require('../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js');
|
|
4
4
|
|
|
5
|
-
var css_248z = ".MonthPicker-module_root__my2Kl{display:inline-block;transform:translateZ(0)}.MonthPicker-module_content__6glhz{
|
|
6
|
-
var styles = {"root":"MonthPicker-module_root__my2Kl","content":"MonthPicker-module_content__6glhz","
|
|
5
|
+
var css_248z = ".MonthPicker-module_root__my2Kl{display:inline-block;transform:translateZ(0)}.MonthPicker-module_content__6glhz{min-width:260px;overflow:hidden}.MonthPicker-module_backButton__Mplxj{transform:rotate(180deg)}.react-datepicker{background-color:var(--ds-color-white);color:var(--ds-color-text-primary);display:inline-block;font-size:.8rem;padding-inline:var(--ds-spacing-8);position:relative}.react-datepicker__aria-live{height:1px;left:-10000px;overflow:hidden;position:absolute;top:auto;width:1px}.react-datepicker__sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.react-datepicker__header--custom{align-items:center;display:flex;justify-content:space-between;padding-bottom:var(--ds-spacing-5);width:100%}.react-datepicker__week{text-align:center;white-space:nowrap}.react-datepicker__month{display:flex;flex-direction:column;gap:var(--ds-spacing-5)}.react-datepicker__month-wrapper{align-items:center;display:flex;gap:var(--ds-spacing-5);justify-content:space-between}.react-datepicker__month-text{align-items:center;border-radius:8px;color:var(--ds-color-text-primary);cursor:pointer;display:flex;flex:1;font-size:14px;font-weight:500;height:40px;justify-content:center}.react-datepicker__month-text:hover{background-color:var(--ds-color-neutral-50)}.react-datepicker__month-text--selected{background-color:var(--ds-color-primary-500);color:var(--ds-color-white);font-weight:600}";
|
|
6
|
+
var styles = {"root":"MonthPicker-module_root__my2Kl","content":"MonthPicker-module_content__6glhz","backButton":"MonthPicker-module_backButton__Mplxj"};
|
|
7
7
|
styleInject_es(css_248z);
|
|
8
8
|
|
|
9
9
|
module.exports = styles;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import { ComponentPropsWithoutRef } from 'react';
|
|
3
|
+
|
|
4
|
+
interface DayPickerProps extends ComponentPropsWithoutRef<'div'> {
|
|
5
|
+
value?: Date;
|
|
6
|
+
onValueChange?: (value: Date | null) => void;
|
|
7
|
+
minDate?: Date;
|
|
8
|
+
maxDate?: Date;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
}
|
|
11
|
+
declare const DayPicker: react.ForwardRefExoticComponent<DayPickerProps & react.RefAttributes<HTMLDivElement>>;
|
|
12
|
+
|
|
13
|
+
export { DayPicker };
|
|
14
|
+
export type { DayPickerProps };
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { ArrowIOSForwardIcon } from '@cocso-ui/react-icons';
|
|
3
|
+
import { clsx } from 'clsx';
|
|
4
|
+
import { ko } from 'date-fns/locale';
|
|
5
|
+
import { forwardRef, useState } from 'react';
|
|
6
|
+
import DatePicker from 'react-datepicker';
|
|
7
|
+
import styles from './DayPicker.module.css.mjs';
|
|
8
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
9
|
+
import { Dropdown } from '../dropdown/Dropdown.mjs';
|
|
10
|
+
import { Button } from '../button/Button.mjs';
|
|
11
|
+
import { Typography } from '../typography/Typography.mjs';
|
|
12
|
+
|
|
13
|
+
const DayPicker = /*#__PURE__*/forwardRef(({
|
|
14
|
+
className,
|
|
15
|
+
value,
|
|
16
|
+
onValueChange,
|
|
17
|
+
disabled,
|
|
18
|
+
children,
|
|
19
|
+
minDate,
|
|
20
|
+
maxDate,
|
|
21
|
+
...props
|
|
22
|
+
}, ref) => {
|
|
23
|
+
const [open, setOpen] = useState(false);
|
|
24
|
+
const handleChange = date => {
|
|
25
|
+
onValueChange?.(date);
|
|
26
|
+
setOpen(false);
|
|
27
|
+
};
|
|
28
|
+
return /*#__PURE__*/jsx("div", {
|
|
29
|
+
ref: ref,
|
|
30
|
+
className: clsx(styles.root, className),
|
|
31
|
+
...props,
|
|
32
|
+
children: /*#__PURE__*/jsxs(Dropdown, {
|
|
33
|
+
open: open,
|
|
34
|
+
onOpenChange: setOpen,
|
|
35
|
+
children: [/*#__PURE__*/jsx(Dropdown.Trigger, {
|
|
36
|
+
asChild: true,
|
|
37
|
+
children: children
|
|
38
|
+
}), /*#__PURE__*/jsx(Dropdown.Portal, {
|
|
39
|
+
children: /*#__PURE__*/jsx(Dropdown.Content, {
|
|
40
|
+
className: styles.content,
|
|
41
|
+
"aria-label": "\uB0A0\uC9DC \uC120\uD0DD",
|
|
42
|
+
children: /*#__PURE__*/jsx(DatePicker, {
|
|
43
|
+
selected: value,
|
|
44
|
+
onChange: handleChange,
|
|
45
|
+
disabled: disabled,
|
|
46
|
+
locale: ko,
|
|
47
|
+
minDate: minDate,
|
|
48
|
+
maxDate: maxDate,
|
|
49
|
+
dateFormat: "yyyy\uB144 MM\uC6D4 dd\uC77C",
|
|
50
|
+
showPopperArrow: false,
|
|
51
|
+
dayClassName: date => {
|
|
52
|
+
const day = date.getDay();
|
|
53
|
+
if (day === 0) return styles.sunday;
|
|
54
|
+
if (day === 6) return styles.saturday;
|
|
55
|
+
return '';
|
|
56
|
+
},
|
|
57
|
+
renderCustomHeader: ({
|
|
58
|
+
date,
|
|
59
|
+
decreaseMonth,
|
|
60
|
+
increaseMonth,
|
|
61
|
+
prevMonthButtonDisabled,
|
|
62
|
+
nextMonthButtonDisabled
|
|
63
|
+
}) => /*#__PURE__*/jsxs(Fragment, {
|
|
64
|
+
children: [/*#__PURE__*/jsx(Button, {
|
|
65
|
+
type: "button",
|
|
66
|
+
variant: "secondary",
|
|
67
|
+
size: "xs",
|
|
68
|
+
onClick: decreaseMonth,
|
|
69
|
+
disabled: prevMonthButtonDisabled,
|
|
70
|
+
className: styles.backButton,
|
|
71
|
+
children: /*#__PURE__*/jsx(ArrowIOSForwardIcon, {})
|
|
72
|
+
}), /*#__PURE__*/jsx(Typography, {
|
|
73
|
+
type: "body",
|
|
74
|
+
weight: "semibold",
|
|
75
|
+
children: date.toLocaleDateString('ko-KR', {
|
|
76
|
+
year: 'numeric',
|
|
77
|
+
month: 'long'
|
|
78
|
+
})
|
|
79
|
+
}), /*#__PURE__*/jsx(Button, {
|
|
80
|
+
type: "button",
|
|
81
|
+
variant: "secondary",
|
|
82
|
+
size: "xs",
|
|
83
|
+
onClick: increaseMonth,
|
|
84
|
+
disabled: nextMonthButtonDisabled,
|
|
85
|
+
children: /*#__PURE__*/jsx(ArrowIOSForwardIcon, {})
|
|
86
|
+
})]
|
|
87
|
+
}),
|
|
88
|
+
inline: true
|
|
89
|
+
})
|
|
90
|
+
})
|
|
91
|
+
})]
|
|
92
|
+
})
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
DayPicker.displayName = 'DayPicker';
|
|
96
|
+
|
|
97
|
+
export { DayPicker };
|
package/dist/esm/index.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.Accordion-module_content__V9Ftc,.Accordion-module_item__iE3dq{overflow:hidden}.Accordion-module_content__V9Ftc[data-state=open]{animation:Accordion-module_slide-down__88c3a .3s cubic-bezier(.87,0,.13,1)}.Accordion-module_content__V9Ftc[data-state=closed]{animation:Accordion-module_slide-up__hbYw7 .3s cubic-bezier(.87,0,.13,1)}.Accordion-module_trigger__6nu7o{cursor:pointer;display:flex;justify-content:space-between;width:100%}.Accordion-module_chevron__oFGVg{display:inline-block;height:var(--ds-spacing-10);transition:transform .2s ease-in-out;width:var(--ds-spacing-10)}.Accordion-module_trigger__6nu7o[data-state=closed]>.Accordion-module_chevron__oFGVg{transform:rotate(0deg)}.Accordion-module_trigger__6nu7o[data-state=open]>.Accordion-module_chevron__oFGVg{transform:rotate(180deg)}@keyframes Accordion-module_slide-up__hbYw7{0%{height:var(--radix-accordion-content-height)}to{height:0}}@keyframes Accordion-module_slide-down__88c3a{0%{height:0}to{height:var(--radix-accordion-content-height)}}.Typography-module_typography__45lnt{--cocso-typography-font-color:inherit;--cocso-typography-font-size:inherit;--cocso-typography-font-weight:inherit;--cocso-typography-line-height:inherit;color:var(--cocso-typography-font-color);font-size:var(--cocso-typography-font-size);font-weight:var(--cocso-typography-font-weight);line-height:var(--cocso-typography-line-height)}.Typography-module_typography__45lnt[aria-disabled=true]{cursor:not-allowed;opacity:.4}@media (min-width:768px){.Typography-module_typography__45lnt{font-size:var(--cocso-tablet-typography-font-size,var(--cocso-typography-font-size))}}@media (min-width:1024px){.Typography-module_typography__45lnt{font-size:var(--cocso-desktop-typography-font-size,var(--cocso-tablet-typography-font-size,var(--cocso-typography-font-size)))}}.Badge-module_badge__ikDSa{--cocso-badge-padding:inherit;--cocso-badge-border-radius:inherit;--cocso-badge-bg-color:inherit;background-color:var(--cocso-badge-bg-color);border-radius:var(--cocso-badge-border-radius);display:inline-flex;padding:var(--cocso-badge-padding);user-select:none;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}@keyframes Spinner-module_donut-spin__cBa-F{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.Spinner-module_spinner__iIx6p{--cocso-spinner-size:inherit;--cocso-spinner-border-width:inherit;--cocso-spinner-border-color:inherit;--cocso-spinner-bg-color:inherit;animation:Spinner-module_donut-spin__cBa-F .5s linear infinite;border:var(--cocso-spinner-border-width) solid var(--cocso-spinner-bg-color);border-radius:50%;border-top-color:var(--cocso-spinner-border-color);display:inline-block;height:var(--cocso-spinner-size);position:relative;transform-origin:center center;width:var(--cocso-spinner-size)}.Button-module_button__eiKKZ{--cocso-button-height:inherit;--cocso-button-padding-inline:inherit;--cocso-button-content-padding:inherit;--cocso-button-font-color:inherit;--cocso-button-font-size:inherit;--cocso-button-font-weight:inherit;--cocso-button-border:inherit;--cocso-button-border-radius:inherit;--cocso-button-bg-color:inherit;align-items:center;background-color:var(--cocso-button-bg-color);border:var(--cocso-button-border);border-radius:var(--cocso-button-border-radius);color:var(--cocso-button-font-color);cursor:pointer;display:inline-flex;font-size:var(--cocso-button-font-size);font-weight:var(--cocso-button-font-weight);height:var(--cocso-button-height);justify-content:center;opacity:1;padding-inline:var(--cocso-button-padding-inline);position:relative;transform:translateZ(0);transition:background-color .15s ease-in-out}.Button-module_button__eiKKZ:not(.Button-module_disabled__M6r1w):hover{--cocso-button-bg-color-hover:inherit;background-color:var(--cocso-button-bg-color-hover)}.Button-module_button__eiKKZ:not(.Button-module_disabled__M6r1w):active{--cocso-button-bg-color-active:inherit;background-color:var(--cocso-button-bg-color-active)}.Button-module_content__SVjwi{padding:var(--cocso-button-content-padding)}.Button-module_prefix__d7ljt{margin-right:2px}.Button-module_prefix__d7ljt,.Button-module_suffix__9oysT{align-items:center;display:inline-flex;flex-shrink:0;justify-content:center}.Button-module_suffix__9oysT{margin-left:2px}.Button-module_disabled__M6r1w{cursor:not-allowed;opacity:.4}.Button-module_svgOnly__8RcZ7{aspect-ratio:1/1;padding:0}.Checkbox-module_wrapper__5uqJp{align-items:center;display:flex;gap:var(--ds-spacing-5)}.Checkbox-module_checkbox__05Z5t{--cocso-checkbox-size:inherit;--cocso-checkbox-color:inherit;--cocso-checkbox-border-color:inherit;--cocso-checkbox-bg-color:inherit;align-items:center;background-color:var(--cocso-checkbox-bg-color);border:1px solid var(--cocso-checkbox-border-color);border-radius:4px;color:var(--cocso-checkbox-color);cursor:pointer;display:inline-flex;height:var(--cocso-checkbox-size);justify-content:center;opacity:1;position:relative;transition:color .15s ease-in-out,border-color .15s ease-in-out,background-color .15s ease-in-out;width:var(--cocso-checkbox-size)}.Checkbox-module_checkbox__05Z5t>svg{stroke:var(--cocso-checkbox-color);display:block;height:auto;max-width:100%;transition:stroke .15s ease-in-out}.Checkbox-module_checkbox__05Z5t input[type=checkbox]{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.Checkbox-module_indicator__MLpNt{bottom:var(--number-1);left:var(--number-1);position:absolute;right:var(--number-1);top:var(--number-1);transition:opacity .15s ease-in-out}.Checkbox-module_label__ubb5U{cursor:pointer;opacity:1}.Checkbox-module_checkbox__05Z5t[disabled],.Checkbox-module_label__ubb5U[aria-disabled=true]{cursor:not-allowed;opacity:.5}@keyframes Dropdown-module_dropdown-slide-up__2uVH3{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@keyframes Dropdown-module_dropdown-slide-down__T5LLc{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.Dropdown-module_content__S3TRi{background-color:var(--ds-color-white);border-radius:var(--ds-spacing-3);box-shadow:var(--ds-shadow-2);display:flex;flex-direction:column;will-change:transform,opacity;z-index:var(--ds-z-index-overlay)}.Dropdown-module_content__S3TRi[data-side=top]{animation:Dropdown-module_dropdown-slide-up__2uVH3 .4s cubic-bezier(.16,1,.3,1)}.Dropdown-module_content__S3TRi[data-side=bottom]{animation:Dropdown-module_dropdown-slide-down__T5LLc .4s cubic-bezier(.16,1,.3,1)}.Dropdown-module_item__MIltz{display:flex;flex-direction:column}.Link-module_link__J9CFb{align-items:center;cursor:pointer;display:inline-flex;gap:var(--ds-spacing-2);justify-content:center;text-decoration:none;transition:color .15s ease-in-out;width:fit-content}.Link-module_link__J9CFb>svg{flex-shrink:0;height:var(--ds-spacing-8);width:var(--ds-spacing-8)}.Link-module_indicator__DIUaW{text-decoration:underline}@keyframes Modal-module_overlay-show__zyvAx{0%{opacity:0}to{opacity:1}}.Modal-module_overlay__7ZBDB{animation:Modal-module_overlay-show__zyvAx .15s cubic-bezier(.16,1,.3,1);background-color:var(--ds-color-black-alpha-30);inset:0;position:fixed;z-index:var(--z-index-overlay)}@keyframes Modal-module_content-show__anq3d{0%{opacity:0;transform:translate(-50%,-48%) scale(.997)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.Modal-module_content__M1b6Q{animation:Modal-module_content-show__anq3d .15s cubic-bezier(.16,1,.3,1);background-color:var(--ds-color-white);border-radius:8px;display:flex;flex-direction:column;left:50%;max-height:85vh;max-width:380px;padding:var(--ds-spacing-9);position:fixed;top:50%;transform:translate(-50%,-50%);width:90vw;z-index:var(--z-index-modal)}.Modal-module_close__UbAF7{align-items:center;align-self:flex-end;cursor:pointer;display:flex;height:var(--ds-spacing-10);justify-content:center;width:var(--ds-spacing-10)}.Modal-module_title__oTluo{word-break:keep-all}.Modal-module_description__RgMC5{margin-top:var(--ds-spacing-5)}.MonthPicker-module_root__my2Kl{display:inline-block;transform:translateZ(0)}.MonthPicker-module_content__6glhz{gap:var(--ds-spacing-8);min-width:280px;padding:var(--ds-spacing-8)}.MonthPicker-module_header__7QguI{align-items:center;display:flex;justify-content:space-between}.MonthPicker-module_rotate__Y0yed{transform:rotate(180deg)}.MonthPicker-module_grid__kkn0v{border:none;display:grid;gap:var(--ds-spacing-5);grid-template-columns:repeat(3,1fr)}.OneTimePasswordField-module_otp__zoWO7{align-items:center;display:flex;gap:var(--ds-spacing-5)}.OneTimePasswordField-module_input__owV9H{align-items:center;background-color:var(--ds-color-neutral-50);border:none;border-radius:var(--ds-spacing-2);box-shadow:0 0 0 var(--ds-spacing-1,1px) var(--ds-color-neutral-50);color:var(--ds-color-neutral-950);display:inline-flex;flex:1;font-size:16px;font-weight:500;height:100%;justify-content:center;line-height:1;outline:none;text-align:center;text-transform:uppercase;transition:background-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}.OneTimePasswordField-module_input__owV9H:focus,.OneTimePasswordField-module_input__owV9H:hover{box-shadow:0 0 0 var(--ds-spacing-1,1px) var(--ds-color-neutral-200)}.OneTimePasswordField-module_input__owV9H::selection{background-color:var(--ds-color-neutral-400)}.Pagination-module_pagination__viYLy{align-items:center;display:flex;gap:var(--ds-spacing-2);justify-content:center;margin-inline:auto}.Pagination-module_arrow__YYkob,.Pagination-module_item__uVIra{--cocso-pagination-font-color:var(--ds-color-text-primary);--cocso-pagination-font-weight:inherit;--cocso-pagination-bg-color:inherit;align-items:center;background-color:var(--cocso-pagination-bg-color);border-radius:var(--ds-spacing-5);color:var(--cocso-pagination-font-color);cursor:pointer;display:inline-flex;font-size:14px;font-weight:var(--cocso-pagination-font-weight);height:var(--ds-spacing-12);justify-content:center;transition:background-color .15s ease-in-out;width:var(--ds-spacing-12)}.Pagination-module_arrow__YYkob:disabled{cursor:not-allowed;opacity:.4}.Pagination-module_arrow__YYkob:not([disabled]):hover{--cocso-pagination-bg-color:var(--ds-color-neutral-50)}.Pagination-module_arrow__YYkob:not([disabled]):active{--cocso-pagination-bg-color:var(--ds-color-neutral-100)}.Pagination-module_arrow__YYkob>svg{flex-shrink:0;height:var(--ds-spacing-8);width:var(--ds-spacing-8)}.Pagination-module_item__uVIra[data-active=true]{--cocso-pagination-font-color:var(--ds-color-white);--cocso-pagination-bg-color:var(--ds-color-primary-500);--cocso-pagination-font-weight:600}.Pagination-module_item__uVIra[data-active=false]:hover{--cocso-pagination-bg-color:var(--ds-color-neutral-50)}.Pagination-module_item__uVIra[data-active=false]:active{--cocso-pagination-bg-color:var(--ds-color-neutral-100)}.Pagination-module_trunc__-ZgYQ{align-items:center;color:var(--ds-color-text-primary);display:inline-flex;font-size:16px;height:var(--ds-spacing-13);justify-content:center;width:var(--ds-spacing-13)}@keyframes Popover-module_slide-up-and-fade__adQar{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@keyframes Popover-module_slide-right-and-fade__br3DV{0%{opacity:0;transform:translateX(-2px)}to{opacity:1;transform:translateX(0)}}@keyframes Popover-module_slide-down-and-fade__Lkl4N{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}@keyframes Popover-module_slide-left-and-fade__yHinG{0%{opacity:0;transform:translateX(2px)}to{opacity:1;transform:translateX(0)}}.Popover-module_content__ry9PF{animation-duration:.4s;animation-timing-function:cubic-bezier(.16,1,.3,1);background-color:var(--ds-color-white);border:1px solid var(--ds-color-neutral-100);border-radius:var(--ds-spacing-4);box-shadow:var(--ds-shadow-2);padding-block:var(--ds-spacing-6);padding-inline:var(--ds-spacing-8);will-change:transform,opacity}.Popover-module_content__ry9PF[data-state=open][data-side=top]{animation-name:Popover-module_slide-down-and-fade__Lkl4N}.Popover-module_content__ry9PF[data-state=open][data-side=right]{animation-name:Popover-module_slide-left-and-fade__yHinG}.Popover-module_content__ry9PF[data-state=open][data-side=bottom]{animation-name:Popover-module_slide-up-and-fade__adQar}.Popover-module_content__ry9PF[data-state=open][data-side=left]{animation-name:Popover-module_slide-right-and-fade__br3DV}.Select-module_wrapper__4k8By{cursor:pointer;position:relative;width:fit-content}.Select-module_wrapper__4k8By.Select-module_stretch__2KlaW,.Select-module_wrapper__4k8By.Select-module_stretch__2KlaW .Select-module_select__MUUdH{width:100%}.Select-module_select__MUUdH{--cocso-select-min-width:inherit;--cocso-select-height:inherit;--cocso-select-padding-left:inherit;--cocso-select-padding-right:inherit;--cocso-select-font-size:inherit;--cocso-select-border-radius:inherit;--cocso-select-bg-color:var(--ds-color-white);appearance:none;-o-appearance:none;-moz-appearance:none;-webkit-appearance:none;background-color:var(--cocso-select-bg-color);border:1px solid var(--ds-color-neutral-100);border-radius:var(--cocso-select-border-radius);color:var(--ds-color-neutral-950);font-size:var(--cocso-select-font-size);height:var(--cocso-select-height);min-width:var(--cocso-select-min-width);padding-left:var(--cocso-select-padding-left);padding-right:var(--cocso-select-padding-right)}.Select-module_wrapper__4k8By.Select-module_disabled__JO7OG{cursor:not-allowed}.Select-module_wrapper__4k8By.Select-module_disabled__JO7OG .Select-module_select__MUUdH{cursor:not-allowed;opacity:.4}.Select-module_icon__EuBJI{color:var(--ds-color-neutral-500);pointer-events:none;position:absolute;right:var(--ds-spacing-5);top:50%;transform:translateY(-50%)}.Select-module_wrapper__4k8By.Select-module_disabled__JO7OG .Select-module_icon__EuBJI{cursor:not-allowed;opacity:.4}.StockQuantityStatus-module_stock__mWbqI{--cocso-stock-quantity-status-color:inherit;align-items:center;color:var(--cocso-stock-quantity-status-color);display:inline-flex;gap:var(--ds-spacing-2)}.StockQuantityStatus-module_indicator__inaKv{--cocso-stock-quantity-status-indicator-width:inherit;flex-shrink:0;height:auto;width:var(--cocso-stock-quantity-status-indicator-width)}.StockQuantityStatus-module_indicator__inaKv>svg{height:100%;width:100%}.Switch-module_wrapper__qcI9-{align-items:center;display:flex;gap:var(--ds-spacing-5)}.Switch-module_wrapper__qcI9-[aria-disabled=true]{cursor:not-allowed;opacity:.4}.Switch-module_switch__pwmft{--cocso-switch-width:inherit;--cocso-switch-height:inherit;--cocso-switch-bg-color:inherit;background-color:var(--cocso-switch-bg-color);border-radius:var(--ds-spacing-max);cursor:pointer;height:var(--cocso-switch-height);opacity:1;position:relative;width:var(--cocso-switch-width)}.Switch-module_switch__pwmft[data-disabled=true],.Switch-module_switch__pwmft[disabled]{cursor:not-allowed;opacity:.4}.Switch-module_switch__pwmft[data-state=checked]{--cocso-switch-bg-color:var(--ds-color-primary-500)}.Switch-module_thumb__pQGDy{--cocso-switch-thumb-width:inherit;--cocso-switch-thumb-height:inherit;background-color:var(--ds-color-white);border-radius:var(--ds-spacing-max);display:block;height:var(--cocso-switch-thumb-width);transform:translateX(var(--ds-spacing-2));transition:transform .15s ease;width:var(--cocso-switch-thumb-width);will-change:transform}.Switch-module_thumb__pQGDy[data-state=checked]{transform:translateX(calc(var(--cocso-switch-width) - var(--cocso-switch-thumb-width) - var(--ds-spacing-2)))}
|
|
1
|
+
.Accordion-module_content__V9Ftc,.Accordion-module_item__iE3dq{overflow:hidden}.Accordion-module_content__V9Ftc[data-state=open]{animation:Accordion-module_slide-down__88c3a .3s cubic-bezier(.87,0,.13,1)}.Accordion-module_content__V9Ftc[data-state=closed]{animation:Accordion-module_slide-up__hbYw7 .3s cubic-bezier(.87,0,.13,1)}.Accordion-module_trigger__6nu7o{cursor:pointer;display:flex;justify-content:space-between;width:100%}.Accordion-module_chevron__oFGVg{display:inline-block;height:var(--ds-spacing-10);transition:transform .2s ease-in-out;width:var(--ds-spacing-10)}.Accordion-module_trigger__6nu7o[data-state=closed]>.Accordion-module_chevron__oFGVg{transform:rotate(0deg)}.Accordion-module_trigger__6nu7o[data-state=open]>.Accordion-module_chevron__oFGVg{transform:rotate(180deg)}@keyframes Accordion-module_slide-up__hbYw7{0%{height:var(--radix-accordion-content-height)}to{height:0}}@keyframes Accordion-module_slide-down__88c3a{0%{height:0}to{height:var(--radix-accordion-content-height)}}.Typography-module_typography__45lnt{--cocso-typography-font-color:inherit;--cocso-typography-font-size:inherit;--cocso-typography-font-weight:inherit;--cocso-typography-line-height:inherit;color:var(--cocso-typography-font-color);font-size:var(--cocso-typography-font-size);font-weight:var(--cocso-typography-font-weight);line-height:var(--cocso-typography-line-height)}.Typography-module_typography__45lnt[aria-disabled=true]{cursor:not-allowed;opacity:.4}@media (min-width:768px){.Typography-module_typography__45lnt{font-size:var(--cocso-tablet-typography-font-size,var(--cocso-typography-font-size))}}@media (min-width:1024px){.Typography-module_typography__45lnt{font-size:var(--cocso-desktop-typography-font-size,var(--cocso-tablet-typography-font-size,var(--cocso-typography-font-size)))}}.Badge-module_badge__ikDSa{--cocso-badge-padding:inherit;--cocso-badge-border-radius:inherit;--cocso-badge-bg-color:inherit;background-color:var(--cocso-badge-bg-color);border-radius:var(--cocso-badge-border-radius);display:inline-flex;padding:var(--cocso-badge-padding);user-select:none;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}@keyframes Spinner-module_donut-spin__cBa-F{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.Spinner-module_spinner__iIx6p{--cocso-spinner-size:inherit;--cocso-spinner-border-width:inherit;--cocso-spinner-border-color:inherit;--cocso-spinner-bg-color:inherit;animation:Spinner-module_donut-spin__cBa-F .5s linear infinite;border:var(--cocso-spinner-border-width) solid var(--cocso-spinner-bg-color);border-radius:50%;border-top-color:var(--cocso-spinner-border-color);display:inline-block;height:var(--cocso-spinner-size);position:relative;transform-origin:center center;width:var(--cocso-spinner-size)}.Button-module_button__eiKKZ{--cocso-button-height:inherit;--cocso-button-padding-inline:inherit;--cocso-button-content-padding:inherit;--cocso-button-font-color:inherit;--cocso-button-font-size:inherit;--cocso-button-font-weight:inherit;--cocso-button-border:inherit;--cocso-button-border-radius:inherit;--cocso-button-bg-color:inherit;align-items:center;background-color:var(--cocso-button-bg-color);border:var(--cocso-button-border);border-radius:var(--cocso-button-border-radius);color:var(--cocso-button-font-color);cursor:pointer;display:inline-flex;font-size:var(--cocso-button-font-size);font-weight:var(--cocso-button-font-weight);height:var(--cocso-button-height);justify-content:center;opacity:1;padding-inline:var(--cocso-button-padding-inline);position:relative;transform:translateZ(0);transition:background-color .15s ease-in-out}.Button-module_button__eiKKZ:not(.Button-module_disabled__M6r1w):hover{--cocso-button-bg-color-hover:inherit;background-color:var(--cocso-button-bg-color-hover)}.Button-module_button__eiKKZ:not(.Button-module_disabled__M6r1w):active{--cocso-button-bg-color-active:inherit;background-color:var(--cocso-button-bg-color-active)}.Button-module_content__SVjwi{padding:var(--cocso-button-content-padding)}.Button-module_prefix__d7ljt{margin-right:2px}.Button-module_prefix__d7ljt,.Button-module_suffix__9oysT{align-items:center;display:inline-flex;flex-shrink:0;justify-content:center}.Button-module_suffix__9oysT{margin-left:2px}.Button-module_disabled__M6r1w{cursor:not-allowed;opacity:.4}.Button-module_svgOnly__8RcZ7{aspect-ratio:1/1;padding:0}.Checkbox-module_wrapper__5uqJp{align-items:center;display:flex;gap:var(--ds-spacing-5)}.Checkbox-module_checkbox__05Z5t{--cocso-checkbox-size:inherit;--cocso-checkbox-color:inherit;--cocso-checkbox-border-color:inherit;--cocso-checkbox-bg-color:inherit;align-items:center;background-color:var(--cocso-checkbox-bg-color);border:1px solid var(--cocso-checkbox-border-color);border-radius:4px;color:var(--cocso-checkbox-color);cursor:pointer;display:inline-flex;height:var(--cocso-checkbox-size);justify-content:center;opacity:1;position:relative;transition:color .15s ease-in-out,border-color .15s ease-in-out,background-color .15s ease-in-out;width:var(--cocso-checkbox-size)}.Checkbox-module_checkbox__05Z5t>svg{stroke:var(--cocso-checkbox-color);display:block;height:auto;max-width:100%;transition:stroke .15s ease-in-out}.Checkbox-module_checkbox__05Z5t input[type=checkbox]{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.Checkbox-module_indicator__MLpNt{bottom:var(--number-1);left:var(--number-1);position:absolute;right:var(--number-1);top:var(--number-1);transition:opacity .15s ease-in-out}.Checkbox-module_label__ubb5U{cursor:pointer;opacity:1}.Checkbox-module_checkbox__05Z5t[disabled],.Checkbox-module_label__ubb5U[aria-disabled=true]{cursor:not-allowed;opacity:.5}@keyframes Dropdown-module_dropdown-slide-up__2uVH3{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@keyframes Dropdown-module_dropdown-slide-down__T5LLc{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.Dropdown-module_content__S3TRi{background-color:var(--ds-color-white);border-radius:var(--ds-spacing-3);box-shadow:var(--ds-shadow-2);display:flex;flex-direction:column;will-change:transform,opacity;z-index:var(--ds-z-index-overlay)}.Dropdown-module_content__S3TRi[data-side=top]{animation:Dropdown-module_dropdown-slide-up__2uVH3 .4s cubic-bezier(.16,1,.3,1)}.Dropdown-module_content__S3TRi[data-side=bottom]{animation:Dropdown-module_dropdown-slide-down__T5LLc .4s cubic-bezier(.16,1,.3,1)}.Dropdown-module_item__MIltz{display:flex;flex-direction:column}.DayPicker-module_root__lDrAw{display:inline-block;transform:translateZ(0)}.DayPicker-module_content__VVh4Y{min-width:260px;overflow:hidden}.DayPicker-module_backButton__jYW7L{transform:rotate(180deg)}.DayPicker-module_sunday__RaZuV{color:var(--ds-color-danger-600)!important}.DayPicker-module_saturday__e-AQO{color:var(--ds-color-primary-600)!important}.react-datepicker__month-container{padding-block:var(--ds-spacing-8);width:100%}.react-datepicker__day-names{text-align:center;white-space:nowrap}.react-datepicker__day,.react-datepicker__day-name{color:var(--ds-color-text-primary);display:inline-block;line-height:1.7rem;margin:.166rem;text-align:center;width:1.7rem}.react-datepicker__day{border-radius:8px;cursor:pointer;font-weight:500}.react-datepicker__day:hover{background-color:var(--ds-color-neutral-50)}.react-datepicker__day--selected{background-color:var(--ds-color-primary-500);color:var(--ds-color-white)!important}.react-datepicker__day--selected:hover{background-color:var(--ds-color-primary-600)!important}.react-datepicker__day-name:first-child{color:var(--ds-color-danger-600)}.react-datepicker__day-name:nth-child(7){color:var(--ds-color-primary-600)}.Link-module_link__J9CFb{align-items:center;cursor:pointer;display:inline-flex;gap:var(--ds-spacing-2);justify-content:center;text-decoration:none;transition:color .15s ease-in-out;width:fit-content}.Link-module_link__J9CFb>svg{flex-shrink:0;height:var(--ds-spacing-8);width:var(--ds-spacing-8)}.Link-module_indicator__DIUaW{text-decoration:underline}@keyframes Modal-module_overlay-show__zyvAx{0%{opacity:0}to{opacity:1}}.Modal-module_overlay__7ZBDB{animation:Modal-module_overlay-show__zyvAx .15s cubic-bezier(.16,1,.3,1);background-color:var(--ds-color-black-alpha-30);inset:0;position:fixed;z-index:var(--ds-z-index-overlay)}@keyframes Modal-module_content-show__anq3d{0%{opacity:0;transform:translate(-50%,-48%) scale(.997)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.Modal-module_content__M1b6Q{animation:Modal-module_content-show__anq3d .15s cubic-bezier(.16,1,.3,1);background-color:var(--ds-color-white);border-radius:8px;display:flex;flex-direction:column;left:50%;max-height:85vh;max-width:380px;padding:var(--ds-spacing-9);position:fixed;top:50%;transform:translate(-50%,-50%);width:90vw;z-index:var(--ds-z-index-modal)}.Modal-module_close__UbAF7{align-items:center;align-self:flex-end;cursor:pointer;display:flex;height:var(--ds-spacing-10);justify-content:center;width:var(--ds-spacing-10)}.Modal-module_title__oTluo{word-break:keep-all}.Modal-module_description__RgMC5{margin-top:var(--ds-spacing-5)}.MonthPicker-module_root__my2Kl{display:inline-block;transform:translateZ(0)}.MonthPicker-module_content__6glhz{min-width:260px;overflow:hidden}.MonthPicker-module_backButton__Mplxj{transform:rotate(180deg)}.react-datepicker{background-color:var(--ds-color-white);color:var(--ds-color-text-primary);display:inline-block;font-size:.8rem;padding-inline:var(--ds-spacing-8);position:relative}.react-datepicker__aria-live{height:1px;left:-10000px;overflow:hidden;position:absolute;top:auto;width:1px}.react-datepicker__sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.react-datepicker__header--custom{align-items:center;display:flex;justify-content:space-between;padding-bottom:var(--ds-spacing-5);width:100%}.react-datepicker__week{text-align:center;white-space:nowrap}.react-datepicker__month{display:flex;flex-direction:column;gap:var(--ds-spacing-5)}.react-datepicker__month-wrapper{align-items:center;display:flex;gap:var(--ds-spacing-5);justify-content:space-between}.react-datepicker__month-text{align-items:center;border-radius:8px;color:var(--ds-color-text-primary);cursor:pointer;display:flex;flex:1;font-size:14px;font-weight:500;height:40px;justify-content:center}.react-datepicker__month-text:hover{background-color:var(--ds-color-neutral-50)}.react-datepicker__month-text--selected{background-color:var(--ds-color-primary-500);color:var(--ds-color-white);font-weight:600}.OneTimePasswordField-module_otp__zoWO7{align-items:center;display:flex;gap:var(--ds-spacing-5)}.OneTimePasswordField-module_input__owV9H{align-items:center;background-color:var(--ds-color-neutral-50);border:none;border-radius:var(--ds-spacing-2);box-shadow:0 0 0 var(--ds-spacing-1,1px) var(--ds-color-neutral-50);color:var(--ds-color-neutral-950);display:inline-flex;flex:1;font-size:16px;font-weight:500;height:100%;justify-content:center;line-height:1;outline:none;text-align:center;text-transform:uppercase;transition:background-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}.OneTimePasswordField-module_input__owV9H:focus,.OneTimePasswordField-module_input__owV9H:hover{box-shadow:0 0 0 var(--ds-spacing-1,1px) var(--ds-color-neutral-200)}.OneTimePasswordField-module_input__owV9H::selection{background-color:var(--ds-color-neutral-400)}.Pagination-module_pagination__viYLy{align-items:center;display:flex;gap:var(--ds-spacing-2);justify-content:center;margin-inline:auto}.Pagination-module_arrow__YYkob,.Pagination-module_item__uVIra{--cocso-pagination-font-color:var(--ds-color-text-primary);--cocso-pagination-font-weight:inherit;--cocso-pagination-bg-color:inherit;align-items:center;background-color:var(--cocso-pagination-bg-color);border-radius:var(--ds-spacing-5);color:var(--cocso-pagination-font-color);cursor:pointer;display:inline-flex;font-size:14px;font-weight:var(--cocso-pagination-font-weight);height:var(--ds-spacing-12);justify-content:center;transition:background-color .15s ease-in-out;width:var(--ds-spacing-12)}.Pagination-module_arrow__YYkob:disabled{cursor:not-allowed;opacity:.4}.Pagination-module_arrow__YYkob:not([disabled]):hover{--cocso-pagination-bg-color:var(--ds-color-neutral-50)}.Pagination-module_arrow__YYkob:not([disabled]):active{--cocso-pagination-bg-color:var(--ds-color-neutral-100)}.Pagination-module_arrow__YYkob>svg{flex-shrink:0;height:var(--ds-spacing-8);width:var(--ds-spacing-8)}.Pagination-module_item__uVIra[data-active=true]{--cocso-pagination-font-color:var(--ds-color-white);--cocso-pagination-bg-color:var(--ds-color-primary-500);--cocso-pagination-font-weight:600}.Pagination-module_item__uVIra[data-active=false]:hover{--cocso-pagination-bg-color:var(--ds-color-neutral-50)}.Pagination-module_item__uVIra[data-active=false]:active{--cocso-pagination-bg-color:var(--ds-color-neutral-100)}.Pagination-module_trunc__-ZgYQ{align-items:center;color:var(--ds-color-text-primary);display:inline-flex;font-size:16px;height:var(--ds-spacing-13);justify-content:center;width:var(--ds-spacing-13)}@keyframes Popover-module_slide-up-and-fade__adQar{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@keyframes Popover-module_slide-right-and-fade__br3DV{0%{opacity:0;transform:translateX(-2px)}to{opacity:1;transform:translateX(0)}}@keyframes Popover-module_slide-down-and-fade__Lkl4N{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}@keyframes Popover-module_slide-left-and-fade__yHinG{0%{opacity:0;transform:translateX(2px)}to{opacity:1;transform:translateX(0)}}.Popover-module_content__ry9PF{animation-duration:.4s;animation-timing-function:cubic-bezier(.16,1,.3,1);background-color:var(--ds-color-white);border:1px solid var(--ds-color-neutral-100);border-radius:var(--ds-spacing-4);box-shadow:var(--ds-shadow-2);padding-block:var(--ds-spacing-6);padding-inline:var(--ds-spacing-8);will-change:transform,opacity}.Popover-module_content__ry9PF[data-state=open][data-side=top]{animation-name:Popover-module_slide-down-and-fade__Lkl4N}.Popover-module_content__ry9PF[data-state=open][data-side=right]{animation-name:Popover-module_slide-left-and-fade__yHinG}.Popover-module_content__ry9PF[data-state=open][data-side=bottom]{animation-name:Popover-module_slide-up-and-fade__adQar}.Popover-module_content__ry9PF[data-state=open][data-side=left]{animation-name:Popover-module_slide-right-and-fade__br3DV}.Select-module_wrapper__4k8By{cursor:pointer;position:relative;width:fit-content}.Select-module_wrapper__4k8By.Select-module_stretch__2KlaW,.Select-module_wrapper__4k8By.Select-module_stretch__2KlaW .Select-module_select__MUUdH{width:100%}.Select-module_select__MUUdH{--cocso-select-min-width:inherit;--cocso-select-height:inherit;--cocso-select-padding-left:inherit;--cocso-select-padding-right:inherit;--cocso-select-font-size:inherit;--cocso-select-border-radius:inherit;--cocso-select-bg-color:var(--ds-color-white);appearance:none;-o-appearance:none;-moz-appearance:none;-webkit-appearance:none;background-color:var(--cocso-select-bg-color);border:1px solid var(--ds-color-neutral-100);border-radius:var(--cocso-select-border-radius);color:var(--ds-color-neutral-950);font-size:var(--cocso-select-font-size);height:var(--cocso-select-height);min-width:var(--cocso-select-min-width);padding-left:var(--cocso-select-padding-left);padding-right:var(--cocso-select-padding-right)}.Select-module_wrapper__4k8By.Select-module_disabled__JO7OG{cursor:not-allowed}.Select-module_wrapper__4k8By.Select-module_disabled__JO7OG .Select-module_select__MUUdH{cursor:not-allowed;opacity:.4}.Select-module_icon__EuBJI{color:var(--ds-color-neutral-500);pointer-events:none;position:absolute;right:var(--ds-spacing-5);top:50%;transform:translateY(-50%)}.Select-module_wrapper__4k8By.Select-module_disabled__JO7OG .Select-module_icon__EuBJI{cursor:not-allowed;opacity:.4}.StockQuantityStatus-module_stock__mWbqI{--cocso-stock-quantity-status-color:inherit;align-items:center;color:var(--cocso-stock-quantity-status-color);display:inline-flex;gap:var(--ds-spacing-2)}.StockQuantityStatus-module_indicator__inaKv{--cocso-stock-quantity-status-indicator-width:inherit;flex-shrink:0;height:auto;width:var(--cocso-stock-quantity-status-indicator-width)}.StockQuantityStatus-module_indicator__inaKv>svg{height:100%;width:100%}.Switch-module_wrapper__qcI9-{align-items:center;display:flex;gap:var(--ds-spacing-5)}.Switch-module_wrapper__qcI9-[aria-disabled=true]{cursor:not-allowed;opacity:.4}.Switch-module_switch__pwmft{--cocso-switch-width:inherit;--cocso-switch-height:inherit;--cocso-switch-bg-color:inherit;background-color:var(--cocso-switch-bg-color);border-radius:var(--ds-spacing-max);cursor:pointer;height:var(--cocso-switch-height);opacity:1;position:relative;width:var(--cocso-switch-width)}.Switch-module_switch__pwmft[data-disabled=true],.Switch-module_switch__pwmft[disabled]{cursor:not-allowed;opacity:.4}.Switch-module_switch__pwmft[data-state=checked]{--cocso-switch-bg-color:var(--ds-color-primary-500)}.Switch-module_thumb__pQGDy{--cocso-switch-thumb-width:inherit;--cocso-switch-thumb-height:inherit;background-color:var(--ds-color-white);border-radius:var(--ds-spacing-max);display:block;height:var(--cocso-switch-thumb-width);transform:translateX(var(--ds-spacing-2));transition:transform .15s ease;width:var(--cocso-switch-thumb-width);will-change:transform}.Switch-module_thumb__pQGDy[data-state=checked]{transform:translateX(calc(var(--cocso-switch-width) - var(--cocso-switch-thumb-width) - var(--ds-spacing-2)))}
|
package/dist/esm/index.d.mts
CHANGED
|
@@ -2,6 +2,7 @@ export { Accordion } from './accordion/Accordion.mjs';
|
|
|
2
2
|
export { Badge, BadgeProps } from './badge/Badge.mjs';
|
|
3
3
|
export { Button, ButtonProps, ButtonShape, ButtonSize, ButtonVariant } from './button/Button.mjs';
|
|
4
4
|
export { Checkbox, CheckboxProps, CheckboxSize, CheckboxStatus } from './checkbox/Checkbox.mjs';
|
|
5
|
+
export { DayPicker, DayPickerProps } from './day-picker/DayPicker.mjs';
|
|
5
6
|
export { Dropdown } from './dropdown/Dropdown.mjs';
|
|
6
7
|
export { Link, LinkProps, LinkSize } from './link/Link.mjs';
|
|
7
8
|
export { Modal } from './modal/Modal.mjs';
|
package/dist/esm/index.mjs
CHANGED
|
@@ -2,6 +2,7 @@ export { Accordion } from './accordion/Accordion.mjs';
|
|
|
2
2
|
export { Badge } from './badge/Badge.mjs';
|
|
3
3
|
export { Button } from './button/Button.mjs';
|
|
4
4
|
export { Checkbox } from './checkbox/Checkbox.mjs';
|
|
5
|
+
export { DayPicker } from './day-picker/DayPicker.mjs';
|
|
5
6
|
export { Dropdown } from './dropdown/Dropdown.mjs';
|
|
6
7
|
export { Link } from './link/Link.mjs';
|
|
7
8
|
export { Modal } from './modal/Modal.mjs';
|
|
@@ -3,9 +3,10 @@ import { ComponentPropsWithoutRef } from 'react';
|
|
|
3
3
|
|
|
4
4
|
interface MonthPickerProps extends ComponentPropsWithoutRef<'div'> {
|
|
5
5
|
value?: Date;
|
|
6
|
-
onValueChange?: (value: Date |
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
onValueChange?: (value: Date | null) => void;
|
|
7
|
+
minDate?: Date;
|
|
8
|
+
maxDate?: Date;
|
|
9
|
+
disabled?: boolean;
|
|
9
10
|
}
|
|
10
11
|
declare const MonthPicker: react.ForwardRefExoticComponent<MonthPickerProps & react.RefAttributes<HTMLDivElement>>;
|
|
11
12
|
|
|
@@ -1,97 +1,85 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { ArrowIOSForwardIcon } from '@cocso-ui/react-icons';
|
|
3
3
|
import { clsx } from 'clsx';
|
|
4
|
+
import { ko } from 'date-fns/locale';
|
|
4
5
|
import { forwardRef, useState } from 'react';
|
|
6
|
+
import DatePicker from 'react-datepicker';
|
|
5
7
|
import styles from './MonthPicker.module.css.mjs';
|
|
6
|
-
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
8
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
7
9
|
import { Dropdown } from '../dropdown/Dropdown.mjs';
|
|
8
10
|
import { Button } from '../button/Button.mjs';
|
|
9
11
|
import { Typography } from '../typography/Typography.mjs';
|
|
10
12
|
|
|
11
|
-
const MONTHS = ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'];
|
|
12
13
|
const MonthPicker = /*#__PURE__*/forwardRef(({
|
|
13
14
|
className,
|
|
14
15
|
value,
|
|
15
16
|
onValueChange,
|
|
16
|
-
minYear = 1900,
|
|
17
|
-
maxYear = 2100,
|
|
18
17
|
children,
|
|
18
|
+
minDate,
|
|
19
|
+
maxDate,
|
|
20
|
+
disabled,
|
|
19
21
|
...props
|
|
20
22
|
}, ref) => {
|
|
21
23
|
const [open, setOpen] = useState(false);
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
const newValue = new Date(displayYear, month - 1, 1);
|
|
25
|
-
onValueChange?.(newValue);
|
|
24
|
+
const handleChange = date => {
|
|
25
|
+
onValueChange?.(date);
|
|
26
26
|
setOpen(false);
|
|
27
27
|
};
|
|
28
|
-
const handleYearChange = year => {
|
|
29
|
-
const clampedYear = Math.max(minYear, Math.min(maxYear, year));
|
|
30
|
-
setDisplayYear(clampedYear);
|
|
31
|
-
};
|
|
32
|
-
const handleOpenChange = isOpen => {
|
|
33
|
-
if (isOpen) {
|
|
34
|
-
setDisplayYear(value?.getFullYear() ?? new Date().getFullYear());
|
|
35
|
-
}
|
|
36
|
-
setOpen(isOpen);
|
|
37
|
-
};
|
|
38
28
|
return /*#__PURE__*/jsx("div", {
|
|
39
29
|
ref: ref,
|
|
40
30
|
className: clsx(styles.root, className),
|
|
41
31
|
...props,
|
|
42
32
|
children: /*#__PURE__*/jsxs(Dropdown, {
|
|
43
33
|
open: open,
|
|
44
|
-
onOpenChange:
|
|
34
|
+
onOpenChange: setOpen,
|
|
45
35
|
children: [/*#__PURE__*/jsx(Dropdown.Trigger, {
|
|
46
36
|
asChild: true,
|
|
47
37
|
children: children
|
|
48
38
|
}), /*#__PURE__*/jsx(Dropdown.Portal, {
|
|
49
|
-
children: /*#__PURE__*/
|
|
39
|
+
children: /*#__PURE__*/jsx(Dropdown.Content, {
|
|
50
40
|
className: styles.content,
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
})
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
const monthNumber = index + 1;
|
|
83
|
-
const isSelected = value?.getFullYear() === displayYear && value?.getMonth() === monthNumber - 1;
|
|
84
|
-
return /*#__PURE__*/jsx(Button, {
|
|
41
|
+
children: /*#__PURE__*/jsx(DatePicker, {
|
|
42
|
+
selected: value,
|
|
43
|
+
onChange: handleChange,
|
|
44
|
+
disabled: disabled,
|
|
45
|
+
locale: ko,
|
|
46
|
+
minDate: minDate,
|
|
47
|
+
maxDate: maxDate,
|
|
48
|
+
dateFormat: "yyyy\uB144 MM\uC6D4 dd\uC77C",
|
|
49
|
+
showPopperArrow: false,
|
|
50
|
+
renderCustomHeader: ({
|
|
51
|
+
date,
|
|
52
|
+
decreaseYear,
|
|
53
|
+
increaseYear,
|
|
54
|
+
prevYearButtonDisabled,
|
|
55
|
+
nextYearButtonDisabled
|
|
56
|
+
}) => /*#__PURE__*/jsxs(Fragment, {
|
|
57
|
+
children: [/*#__PURE__*/jsx(Button, {
|
|
58
|
+
type: "button",
|
|
59
|
+
variant: "secondary",
|
|
60
|
+
size: "xs",
|
|
61
|
+
onClick: decreaseYear,
|
|
62
|
+
disabled: prevYearButtonDisabled,
|
|
63
|
+
className: styles.backButton,
|
|
64
|
+
children: /*#__PURE__*/jsx(ArrowIOSForwardIcon, {})
|
|
65
|
+
}), /*#__PURE__*/jsx(Typography, {
|
|
66
|
+
type: "body",
|
|
67
|
+
weight: "semibold",
|
|
68
|
+
children: date.toLocaleDateString('ko-KR', {
|
|
69
|
+
year: 'numeric'
|
|
70
|
+
})
|
|
71
|
+
}), /*#__PURE__*/jsx(Button, {
|
|
85
72
|
type: "button",
|
|
86
|
-
variant:
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
73
|
+
variant: "secondary",
|
|
74
|
+
size: "xs",
|
|
75
|
+
onClick: increaseYear,
|
|
76
|
+
disabled: nextYearButtonDisabled,
|
|
77
|
+
children: /*#__PURE__*/jsx(ArrowIOSForwardIcon, {})
|
|
78
|
+
})]
|
|
79
|
+
}),
|
|
80
|
+
inline: true,
|
|
81
|
+
showMonthYearPicker: true
|
|
82
|
+
})
|
|
95
83
|
})
|
|
96
84
|
})]
|
|
97
85
|
})
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var styles = {"root":"MonthPicker-module_root__my2Kl","content":"MonthPicker-module_content__6glhz","
|
|
1
|
+
var styles = {"root":"MonthPicker-module_root__my2Kl","content":"MonthPicker-module_content__6glhz","backButton":"MonthPicker-module_backButton__Mplxj"};
|
|
2
2
|
|
|
3
3
|
export { styles as default };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cocso-ui/react",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.13",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/cocso/cocso-ui.git",
|
|
@@ -37,10 +37,11 @@
|
|
|
37
37
|
"@radix-ui/react-switch": "^1.2.6",
|
|
38
38
|
"@radix-ui/react-tabs": "^1.1.13",
|
|
39
39
|
"clsx": "^2.1.1",
|
|
40
|
-
"
|
|
40
|
+
"date-fns": "^4.1.0",
|
|
41
|
+
"react-datepicker": "^8.7.0",
|
|
41
42
|
"sonner": "^2.0.7",
|
|
42
43
|
"ts-pattern": "^5.8.0",
|
|
43
|
-
"@cocso-ui/react-icons": "^0.1.
|
|
44
|
+
"@cocso-ui/react-icons": "^0.1.3"
|
|
44
45
|
},
|
|
45
46
|
"devDependencies": {
|
|
46
47
|
"@babel/preset-react": "^7.27.1",
|
|
@@ -48,18 +49,18 @@
|
|
|
48
49
|
"@rollup/plugin-babel": "^6.0.4",
|
|
49
50
|
"@rollup/plugin-commonjs": "^28.0.6",
|
|
50
51
|
"@rollup/plugin-node-resolve": "^16.0.1",
|
|
51
|
-
"@storybook/react": "^9.1.
|
|
52
|
-
"@types/react": "^19.1.
|
|
52
|
+
"@storybook/react": "^9.1.6",
|
|
53
|
+
"@types/react": "^19.1.13",
|
|
53
54
|
"@types/react-dom": "^19.1.9",
|
|
54
55
|
"react": "^19.1.1",
|
|
55
|
-
"rollup": "^4.50.
|
|
56
|
+
"rollup": "^4.50.2",
|
|
56
57
|
"rollup-plugin-dts": "^6.2.3",
|
|
57
58
|
"rollup-plugin-postcss": "^4.0.2",
|
|
59
|
+
"rollup-plugin-preserve-directives": "^0.4.0",
|
|
58
60
|
"typescript": "^5.9.2"
|
|
59
61
|
},
|
|
60
62
|
"peerDependencies": {
|
|
61
|
-
"react": "^19.1.1"
|
|
62
|
-
"react-dom": "^19.1.1"
|
|
63
|
+
"react": "^19.1.1"
|
|
63
64
|
},
|
|
64
65
|
"publishConfig": {
|
|
65
66
|
"access": "public"
|