@cocso-ui/react 0.2.9 → 0.2.11

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.
@@ -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 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(--color-background-white);border-radius:var(--ds-spacing-3);box-shadow:var(--shadow-1);display:flex;flex-direction:column;will-change:transform,opacity;z-index:var(--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}";
5
+ var css_248z = "@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}";
6
6
  var styles = {"content":"Dropdown-module_content__S3TRi","item":"Dropdown-module_item__MIltz"};
7
7
  styleInject_es(css_248z);
8
8
 
@@ -5,6 +5,7 @@ export { Checkbox, CheckboxProps, CheckboxSize, CheckboxStatus } from './checkbo
5
5
  export { Dropdown } from './dropdown/Dropdown.js';
6
6
  export { Link, LinkProps, LinkSize } from './link/Link.js';
7
7
  export { Modal } from './modal/Modal.js';
8
+ export { MonthPicker, MonthPickerProps } from './month-picker/MonthPicker.js';
8
9
  export { OneTimePasswordField } from './one-time-password-field/OneTimePasswordField.js';
9
10
  export { Pagination, PaginationProps } from './pagination/Pagination.js';
10
11
  export { Popover } from './popover/Popover.js';
package/dist/cjs/index.js CHANGED
@@ -7,6 +7,7 @@ var Checkbox = require('./checkbox/Checkbox.js');
7
7
  var Dropdown = require('./dropdown/Dropdown.js');
8
8
  var Link = require('./link/Link.js');
9
9
  var Modal = require('./modal/Modal.js');
10
+ var MonthPicker = require('./month-picker/MonthPicker.js');
10
11
  var OneTimePasswordField = require('./one-time-password-field/OneTimePasswordField.js');
11
12
  var Pagination = require('./pagination/Pagination.js');
12
13
  var Popover = require('./popover/Popover.js');
@@ -30,6 +31,7 @@ exports.Checkbox = Checkbox.Checkbox;
30
31
  exports.Dropdown = Dropdown.Dropdown;
31
32
  exports.Link = Link.Link;
32
33
  exports.Modal = Modal.Modal;
34
+ exports.MonthPicker = MonthPicker.MonthPicker;
33
35
  exports.OneTimePasswordField = OneTimePasswordField.OneTimePasswordField;
34
36
  exports.Pagination = Pagination.Pagination;
35
37
  exports.Popover = Popover.Popover;
@@ -0,0 +1,13 @@
1
+ import * as react from 'react';
2
+ import { ComponentPropsWithoutRef } from 'react';
3
+
4
+ interface MonthPickerProps extends ComponentPropsWithoutRef<'div'> {
5
+ value?: Date;
6
+ onValueChange?: (value: Date | undefined) => void;
7
+ minYear?: number;
8
+ maxYear?: number;
9
+ }
10
+ declare const MonthPicker: react.ForwardRefExoticComponent<MonthPickerProps & react.RefAttributes<HTMLDivElement>>;
11
+
12
+ export { MonthPicker };
13
+ export type { MonthPickerProps };
@@ -0,0 +1,104 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ var reactIcons = require('@cocso-ui/react-icons');
5
+ var clsx = require('clsx');
6
+ var react = require('react');
7
+ var MonthPicker_module = require('./MonthPicker.module.css.js');
8
+ var jsxRuntime = require('react/jsx-runtime');
9
+ var Dropdown = require('../dropdown/Dropdown.js');
10
+ var Button = require('../button/Button.js');
11
+ var Typography = require('../typography/Typography.js');
12
+
13
+ const MONTHS = ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'];
14
+ const MonthPicker = /*#__PURE__*/react.forwardRef(({
15
+ className,
16
+ value,
17
+ onValueChange,
18
+ minYear = 1900,
19
+ maxYear = 2100,
20
+ children,
21
+ ...props
22
+ }, ref) => {
23
+ const [open, setOpen] = react.useState(false);
24
+ const [displayYear, setDisplayYear] = react.useState(value?.getFullYear() ?? new Date().getFullYear());
25
+ const handleMonthSelect = month => {
26
+ const newValue = new Date(displayYear, month - 1, 1);
27
+ onValueChange?.(newValue);
28
+ setOpen(false);
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
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
41
+ ref: ref,
42
+ className: clsx.clsx(MonthPicker_module.root, className),
43
+ ...props,
44
+ children: /*#__PURE__*/jsxRuntime.jsxs(Dropdown.Dropdown, {
45
+ open: open,
46
+ onOpenChange: handleOpenChange,
47
+ children: [/*#__PURE__*/jsxRuntime.jsx(Dropdown.Dropdown.Trigger, {
48
+ asChild: true,
49
+ children: children
50
+ }), /*#__PURE__*/jsxRuntime.jsx(Dropdown.Dropdown.Portal, {
51
+ children: /*#__PURE__*/jsxRuntime.jsxs(Dropdown.Dropdown.Content, {
52
+ className: MonthPicker_module.content,
53
+ role: "listbox",
54
+ "aria-label": "\uC6D4 \uC120\uD0DD",
55
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
56
+ className: MonthPicker_module.header,
57
+ children: [/*#__PURE__*/jsxRuntime.jsx(Button.Button, {
58
+ type: "button",
59
+ size: "xs",
60
+ variant: "secondary",
61
+ onClick: () => handleYearChange(displayYear - 1),
62
+ disabled: displayYear <= minYear,
63
+ svgOnly: true,
64
+ "aria-label": "\uC774\uC804 \uB144\uB3C4",
65
+ children: /*#__PURE__*/jsxRuntime.jsx(reactIcons.ArrowIOSForwardIcon, {
66
+ className: MonthPicker_module.rotate
67
+ })
68
+ }), /*#__PURE__*/jsxRuntime.jsxs(Typography.Typography, {
69
+ type: "body",
70
+ weight: "semibold",
71
+ children: [displayYear, "\uB144"]
72
+ }), /*#__PURE__*/jsxRuntime.jsx(Button.Button, {
73
+ type: "button",
74
+ size: "xs",
75
+ variant: "secondary",
76
+ onClick: () => handleYearChange(displayYear + 1),
77
+ disabled: displayYear >= maxYear,
78
+ "aria-label": "\uB2E4\uC74C \uB144\uB3C4",
79
+ children: /*#__PURE__*/jsxRuntime.jsx(reactIcons.ArrowIOSForwardIcon, {})
80
+ })]
81
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
82
+ className: MonthPicker_module.grid,
83
+ children: MONTHS.map((month, index) => {
84
+ const monthNumber = index + 1;
85
+ const isSelected = value?.getFullYear() === displayYear && value?.getMonth() === monthNumber - 1;
86
+ return /*#__PURE__*/jsxRuntime.jsx(Button.Button, {
87
+ type: "button",
88
+ variant: isSelected ? 'tertiary' : 'secondary',
89
+ onClick: () => handleMonthSelect(monthNumber),
90
+ role: "option",
91
+ "aria-selected": isSelected,
92
+ "aria-label": `${month} 선택`,
93
+ children: month
94
+ }, month);
95
+ })
96
+ })]
97
+ })
98
+ })]
99
+ })
100
+ });
101
+ });
102
+ MonthPicker.displayName = 'MonthPicker';
103
+
104
+ exports.MonthPicker = MonthPicker;
@@ -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 = ".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)}";
6
+ var styles = {"root":"MonthPicker-module_root__my2Kl","content":"MonthPicker-module_content__6glhz","header":"MonthPicker-module_header__7QguI","rotate":"MonthPicker-module_rotate__Y0yed","grid":"MonthPicker-module_grid__kkn0v"};
7
+ styleInject_es(css_248z);
8
+
9
+ module.exports = styles;
@@ -2,7 +2,7 @@ import * as react from 'react';
2
2
  import { ComponentPropsWithoutRef } from 'react';
3
3
  import * as SwitchPrimitive from '@radix-ui/react-switch';
4
4
 
5
- type SwitchSize = 'lg' | 'md';
5
+ type SwitchSize = 'sm' | 'md';
6
6
  interface SwitchProps extends ComponentPropsWithoutRef<typeof SwitchPrimitive.Root> {
7
7
  id?: string;
8
8
  size?: SwitchSize;
@@ -82,8 +82,8 @@ const Switch = /*#__PURE__*/react.forwardRef(({
82
82
  })]
83
83
  });
84
84
  });
85
- const getSwitchWidth = size => tsPattern.match(size).with('lg', () => spacing.spacing.s14).with('md', () => spacing.spacing.s12).exhaustive();
86
- const getSwitchHeight = size => tsPattern.match(size).with('lg', () => spacing.spacing.s10).with('md', () => spacing.spacing.s9).exhaustive();
87
- const getThumbSize = size => tsPattern.match(size).with('lg', () => spacing.spacing.s9).with('md', () => spacing.spacing.s8).exhaustive();
85
+ const getSwitchWidth = size => tsPattern.match(size).with('md', () => spacing.spacing.s14).with('sm', () => spacing.spacing.s12).exhaustive();
86
+ const getSwitchHeight = size => tsPattern.match(size).with('md', () => spacing.spacing.s10).with('sm', () => spacing.spacing.s9).exhaustive();
87
+ const getThumbSize = size => tsPattern.match(size).with('md', () => spacing.spacing.s9).with('sm', () => spacing.spacing.s8).exhaustive();
88
88
 
89
89
  exports.Switch = Switch;
@@ -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(--color-background-white);border-radius:var(--ds-spacing-3);box-shadow:var(--shadow-1);display:flex;flex-direction:column;will-change:transform,opacity;z-index:var(--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)}.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}.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)))}
@@ -5,6 +5,7 @@ export { Checkbox, CheckboxProps, CheckboxSize, CheckboxStatus } from './checkbo
5
5
  export { Dropdown } from './dropdown/Dropdown.mjs';
6
6
  export { Link, LinkProps, LinkSize } from './link/Link.mjs';
7
7
  export { Modal } from './modal/Modal.mjs';
8
+ export { MonthPicker, MonthPickerProps } from './month-picker/MonthPicker.mjs';
8
9
  export { OneTimePasswordField } from './one-time-password-field/OneTimePasswordField.mjs';
9
10
  export { Pagination, PaginationProps } from './pagination/Pagination.mjs';
10
11
  export { Popover } from './popover/Popover.mjs';
@@ -5,6 +5,7 @@ export { Checkbox } from './checkbox/Checkbox.mjs';
5
5
  export { Dropdown } from './dropdown/Dropdown.mjs';
6
6
  export { Link } from './link/Link.mjs';
7
7
  export { Modal } from './modal/Modal.mjs';
8
+ export { MonthPicker } from './month-picker/MonthPicker.mjs';
8
9
  export { OneTimePasswordField } from './one-time-password-field/OneTimePasswordField.mjs';
9
10
  export { Pagination } from './pagination/Pagination.mjs';
10
11
  export { Popover } from './popover/Popover.mjs';
@@ -0,0 +1,13 @@
1
+ import * as react from 'react';
2
+ import { ComponentPropsWithoutRef } from 'react';
3
+
4
+ interface MonthPickerProps extends ComponentPropsWithoutRef<'div'> {
5
+ value?: Date;
6
+ onValueChange?: (value: Date | undefined) => void;
7
+ minYear?: number;
8
+ maxYear?: number;
9
+ }
10
+ declare const MonthPicker: react.ForwardRefExoticComponent<MonthPickerProps & react.RefAttributes<HTMLDivElement>>;
11
+
12
+ export { MonthPicker };
13
+ export type { MonthPickerProps };
@@ -0,0 +1,102 @@
1
+ "use client";
2
+ import { ArrowIOSForwardIcon } from '@cocso-ui/react-icons';
3
+ import { clsx } from 'clsx';
4
+ import { forwardRef, useState } from 'react';
5
+ import styles from './MonthPicker.module.css.mjs';
6
+ import { jsx, jsxs } from 'react/jsx-runtime';
7
+ import { Dropdown } from '../dropdown/Dropdown.mjs';
8
+ import { Button } from '../button/Button.mjs';
9
+ import { Typography } from '../typography/Typography.mjs';
10
+
11
+ const MONTHS = ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'];
12
+ const MonthPicker = /*#__PURE__*/forwardRef(({
13
+ className,
14
+ value,
15
+ onValueChange,
16
+ minYear = 1900,
17
+ maxYear = 2100,
18
+ children,
19
+ ...props
20
+ }, ref) => {
21
+ const [open, setOpen] = useState(false);
22
+ const [displayYear, setDisplayYear] = useState(value?.getFullYear() ?? new Date().getFullYear());
23
+ const handleMonthSelect = month => {
24
+ const newValue = new Date(displayYear, month - 1, 1);
25
+ onValueChange?.(newValue);
26
+ setOpen(false);
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
+ return /*#__PURE__*/jsx("div", {
39
+ ref: ref,
40
+ className: clsx(styles.root, className),
41
+ ...props,
42
+ children: /*#__PURE__*/jsxs(Dropdown, {
43
+ open: open,
44
+ onOpenChange: handleOpenChange,
45
+ children: [/*#__PURE__*/jsx(Dropdown.Trigger, {
46
+ asChild: true,
47
+ children: children
48
+ }), /*#__PURE__*/jsx(Dropdown.Portal, {
49
+ children: /*#__PURE__*/jsxs(Dropdown.Content, {
50
+ className: styles.content,
51
+ role: "listbox",
52
+ "aria-label": "\uC6D4 \uC120\uD0DD",
53
+ children: [/*#__PURE__*/jsxs("div", {
54
+ className: styles.header,
55
+ children: [/*#__PURE__*/jsx(Button, {
56
+ type: "button",
57
+ size: "xs",
58
+ variant: "secondary",
59
+ onClick: () => handleYearChange(displayYear - 1),
60
+ disabled: displayYear <= minYear,
61
+ svgOnly: true,
62
+ "aria-label": "\uC774\uC804 \uB144\uB3C4",
63
+ children: /*#__PURE__*/jsx(ArrowIOSForwardIcon, {
64
+ className: styles.rotate
65
+ })
66
+ }), /*#__PURE__*/jsxs(Typography, {
67
+ type: "body",
68
+ weight: "semibold",
69
+ children: [displayYear, "\uB144"]
70
+ }), /*#__PURE__*/jsx(Button, {
71
+ type: "button",
72
+ size: "xs",
73
+ variant: "secondary",
74
+ onClick: () => handleYearChange(displayYear + 1),
75
+ disabled: displayYear >= maxYear,
76
+ "aria-label": "\uB2E4\uC74C \uB144\uB3C4",
77
+ children: /*#__PURE__*/jsx(ArrowIOSForwardIcon, {})
78
+ })]
79
+ }), /*#__PURE__*/jsx("div", {
80
+ className: styles.grid,
81
+ children: MONTHS.map((month, index) => {
82
+ const monthNumber = index + 1;
83
+ const isSelected = value?.getFullYear() === displayYear && value?.getMonth() === monthNumber - 1;
84
+ return /*#__PURE__*/jsx(Button, {
85
+ type: "button",
86
+ variant: isSelected ? 'tertiary' : 'secondary',
87
+ onClick: () => handleMonthSelect(monthNumber),
88
+ role: "option",
89
+ "aria-selected": isSelected,
90
+ "aria-label": `${month} 선택`,
91
+ children: month
92
+ }, month);
93
+ })
94
+ })]
95
+ })
96
+ })]
97
+ })
98
+ });
99
+ });
100
+ MonthPicker.displayName = 'MonthPicker';
101
+
102
+ export { MonthPicker };
@@ -0,0 +1,3 @@
1
+ var styles = {"root":"MonthPicker-module_root__my2Kl","content":"MonthPicker-module_content__6glhz","header":"MonthPicker-module_header__7QguI","rotate":"MonthPicker-module_rotate__Y0yed","grid":"MonthPicker-module_grid__kkn0v"};
2
+
3
+ export { styles as default };
@@ -2,7 +2,7 @@ import * as react from 'react';
2
2
  import { ComponentPropsWithoutRef } from 'react';
3
3
  import * as SwitchPrimitive from '@radix-ui/react-switch';
4
4
 
5
- type SwitchSize = 'lg' | 'md';
5
+ type SwitchSize = 'sm' | 'md';
6
6
  interface SwitchProps extends ComponentPropsWithoutRef<typeof SwitchPrimitive.Root> {
7
7
  id?: string;
8
8
  size?: SwitchSize;
@@ -61,8 +61,8 @@ const Switch = /*#__PURE__*/forwardRef(({
61
61
  })]
62
62
  });
63
63
  });
64
- const getSwitchWidth = size => match(size).with('lg', () => spacing.s14).with('md', () => spacing.s12).exhaustive();
65
- const getSwitchHeight = size => match(size).with('lg', () => spacing.s10).with('md', () => spacing.s9).exhaustive();
66
- const getThumbSize = size => match(size).with('lg', () => spacing.s9).with('md', () => spacing.s8).exhaustive();
64
+ const getSwitchWidth = size => match(size).with('md', () => spacing.s14).with('sm', () => spacing.s12).exhaustive();
65
+ const getSwitchHeight = size => match(size).with('md', () => spacing.s10).with('sm', () => spacing.s9).exhaustive();
66
+ const getThumbSize = size => match(size).with('md', () => spacing.s9).with('sm', () => spacing.s8).exhaustive();
67
67
 
68
68
  export { Switch };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cocso-ui/react",
3
- "version": "0.2.9",
3
+ "version": "0.2.11",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/cocso/cocso-ui.git",
@@ -37,6 +37,7 @@
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
+ "rollup-plugin-preserve-directives": "^0.4.0",
40
41
  "sonner": "^2.0.7",
41
42
  "ts-pattern": "^5.8.0",
42
43
  "@cocso-ui/react-icons": "^0.1.1"