@loword/loword-design-system 0.0.18 → 0.1.0
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/README.md +37 -21
- package/dist/components/LDAccordion/AccordionBase.d.ts.map +1 -1
- package/dist/components/LDAccordion/AccordionBase.js +3 -4
- package/dist/components/LDAccordion/LDAccordion.d.ts +33 -2
- package/dist/components/LDAccordion/LDAccordion.d.ts.map +1 -1
- package/dist/components/LDAccordion/LDAccordion.js +70 -7
- package/dist/components/LDAutoComplete/AutoCompleteBase.d.ts +35 -21
- package/dist/components/LDAutoComplete/AutoCompleteBase.d.ts.map +1 -1
- package/dist/components/LDAutoComplete/AutoCompleteBase.js +25 -46
- package/dist/components/LDAutoComplete/LDAutoComplete.d.ts +54 -4
- package/dist/components/LDAutoComplete/LDAutoComplete.d.ts.map +1 -1
- package/dist/components/LDAutoComplete/LDAutoComplete.js +141 -4
- package/dist/components/LDAvatar/AvatarBase.d.ts.map +1 -1
- package/dist/components/LDAvatar/AvatarBase.js +3 -3
- package/dist/components/LDAvatar/LDAvatar.d.ts +3 -1
- package/dist/components/LDAvatar/LDAvatar.d.ts.map +1 -1
- package/dist/components/LDAvatar/LDAvatar.js +33 -20
- package/dist/components/LDBadge/BadgeBase.d.ts.map +1 -1
- package/dist/components/LDBadge/LDBadge.d.ts +7 -4
- package/dist/components/LDBadge/LDBadge.d.ts.map +1 -1
- package/dist/components/LDBadge/LDBadge.js +34 -32
- package/dist/components/LDBreadCrumb/BreadCrumbBase.d.ts +3 -2
- package/dist/components/LDBreadCrumb/BreadCrumbBase.d.ts.map +1 -1
- package/dist/components/LDBreadCrumb/BreadCrumbBase.js +6 -3
- package/dist/components/LDBreadCrumb/LDBreadCrumb.d.ts +26 -2
- package/dist/components/LDBreadCrumb/LDBreadCrumb.d.ts.map +1 -1
- package/dist/components/LDBreadCrumb/LDBreadCrumb.js +24 -15
- package/dist/components/LDButton/ButtonBase.d.ts.map +1 -1
- package/dist/components/LDButton/LDButton.d.ts +5 -3
- package/dist/components/LDButton/LDButton.d.ts.map +1 -1
- package/dist/components/LDButton/LDButton.js +14 -27
- package/dist/components/LDCalendar/CalendarBase.d.ts +1 -1
- package/dist/components/LDCalendar/CalendarBase.d.ts.map +1 -1
- package/dist/components/LDCalendar/CalendarBase.js +12 -11
- package/dist/components/LDCalendar/CalendarTimePicker.d.ts +11 -0
- package/dist/components/LDCalendar/CalendarTimePicker.d.ts.map +1 -0
- package/dist/components/LDCalendar/CalendarTimePicker.js +82 -0
- package/dist/components/LDCalendar/LDCalendar.d.ts +13 -8
- package/dist/components/LDCalendar/LDCalendar.d.ts.map +1 -1
- package/dist/components/LDCalendar/LDCalendar.js +48 -81
- package/dist/components/LDCallout/CalloutBase.d.ts.map +1 -1
- package/dist/components/LDCallout/CalloutBase.js +3 -3
- package/dist/components/LDCallout/LDCallout.d.ts.map +1 -1
- package/dist/components/LDCallout/LDCallout.js +1 -1
- package/dist/components/LDCarousel/CarouselBase.d.ts +6 -1
- package/dist/components/LDCarousel/CarouselBase.d.ts.map +1 -1
- package/dist/components/LDCarousel/CarouselBase.js +12 -9
- package/dist/components/LDCarousel/LDCarousel.d.ts +13 -11
- package/dist/components/LDCarousel/LDCarousel.d.ts.map +1 -1
- package/dist/components/LDCarousel/LDCarousel.js +3 -3
- package/dist/components/LDChart/LDChart.d.ts +4 -2
- package/dist/components/LDChart/LDChart.d.ts.map +1 -1
- package/dist/components/LDChart/LDChart.js +5 -5
- package/dist/components/LDCheckbox/CheckboxBase.d.ts.map +1 -1
- package/dist/components/LDCheckbox/CheckboxBase.js +3 -3
- package/dist/components/LDCheckbox/LDCheckbox.d.ts +3 -1
- package/dist/components/LDCheckbox/LDCheckbox.d.ts.map +1 -1
- package/dist/components/LDCheckbox/LDCheckbox.js +6 -6
- package/dist/components/LDCheckbox/LDCheckboxGroup.d.ts +1 -1
- package/dist/components/LDCheckbox/LDCheckboxGroup.d.ts.map +1 -1
- package/dist/components/LDCheckbox/LDCheckboxGroup.js +1 -1
- package/dist/components/LDCheckbox/LDFormCheckbox.d.ts +1 -1
- package/dist/components/LDCheckbox/LDFormCheckbox.d.ts.map +1 -1
- package/dist/components/LDCheckbox/LDFormCheckbox.js +2 -2
- package/dist/components/LDCheckbox/LDFormCheckboxGroup.d.ts +1 -1
- package/dist/components/LDCheckbox/LDFormCheckboxGroup.d.ts.map +1 -1
- package/dist/components/LDCheckbox/LDFormCheckboxGroup.js +2 -2
- package/dist/components/LDDataCalendar/LDDataCalendar.d.ts +23 -5
- package/dist/components/LDDataCalendar/LDDataCalendar.d.ts.map +1 -1
- package/dist/components/LDDataCalendar/LDDataCalendar.js +28 -5
- package/dist/components/LDDataCalendar/LDDataCalendarBase.d.ts +6 -10
- package/dist/components/LDDataCalendar/LDDataCalendarBase.d.ts.map +1 -1
- package/dist/components/LDDataCalendar/LDDataCalendarBase.js +7 -7
- package/dist/components/LDDatePicker/LDDatePicker.d.ts +11 -4
- package/dist/components/LDDatePicker/LDDatePicker.d.ts.map +1 -1
- package/dist/components/LDDatePicker/LDDatePicker.js +55 -60
- package/dist/components/LDDatePicker/LDFormDatePicker.d.ts +1 -1
- package/dist/components/LDDatePicker/LDFormDatePicker.d.ts.map +1 -1
- package/dist/components/LDDatePicker/LDFormDatePicker.js +4 -4
- package/dist/components/LDDateRangePicker/LDDateRangePicker.d.ts +15 -9
- package/dist/components/LDDateRangePicker/LDDateRangePicker.d.ts.map +1 -1
- package/dist/components/LDDateRangePicker/LDDateRangePicker.js +92 -91
- package/dist/components/LDDateRangePicker/LDFormDateRangePicker.d.ts +1 -1
- package/dist/components/LDDateRangePicker/LDFormDateRangePicker.d.ts.map +1 -1
- package/dist/components/LDDateRangePicker/LDFormDateRangePicker.js +3 -3
- package/dist/components/LDDaumPostButton/LDDaumPostButton.d.ts +1 -1
- package/dist/components/LDDaumPostButton/LDDaumPostButton.d.ts.map +1 -1
- package/dist/components/LDDaumPostButton/LDDaumPostButton.js +2 -2
- package/dist/components/LDDivider/DividerBase.d.ts.map +1 -1
- package/dist/components/LDDivider/LDDivider.js +1 -1
- package/dist/components/LDDrawer/DrawerBase.d.ts +26 -47
- package/dist/components/LDDrawer/DrawerBase.d.ts.map +1 -1
- package/dist/components/LDDrawer/DrawerBase.js +19 -25
- package/dist/components/LDDrawer/LDDrawer.d.ts +35 -5
- package/dist/components/LDDrawer/LDDrawer.d.ts.map +1 -1
- package/dist/components/LDDrawer/LDDrawer.js +47 -6
- package/dist/components/LDEditor/EditorBase.d.ts +3 -2
- package/dist/components/LDEditor/EditorBase.d.ts.map +1 -1
- package/dist/components/LDEditor/EditorBase.js +7 -5
- package/dist/components/LDEditor/LDEditor.d.ts.map +1 -1
- package/dist/components/LDEditor/LDEditor.js +37 -27
- package/dist/components/LDEditor/LDViewer.js +3 -3
- package/dist/components/LDEditor/extensions.d.ts.map +1 -1
- package/dist/components/LDEditor/extensions.js +10 -12
- package/dist/components/LDEmpty/LDEmpty.d.ts +3 -1
- package/dist/components/LDEmpty/LDEmpty.d.ts.map +1 -1
- package/dist/components/LDEmpty/LDEmpty.js +1 -1
- package/dist/components/LDFileUpload/FileUploadBase.d.ts +20 -35
- package/dist/components/LDFileUpload/FileUploadBase.d.ts.map +1 -1
- package/dist/components/LDFileUpload/FileUploadBase.js +81 -162
- package/dist/components/LDFileUpload/LDFileUpload.d.ts +31 -17
- package/dist/components/LDFileUpload/LDFileUpload.d.ts.map +1 -1
- package/dist/components/LDFileUpload/LDFileUpload.js +73 -5
- package/dist/components/LDFileUpload/LDFileUploadList.d.ts +4 -18
- package/dist/components/LDFileUpload/LDFileUploadList.d.ts.map +1 -1
- package/dist/components/LDFileUpload/LDFileUploadList.js +3 -4
- package/dist/components/LDFileUpload/LDImageUpload.d.ts +5 -19
- package/dist/components/LDFileUpload/LDImageUpload.d.ts.map +1 -1
- package/dist/components/LDFileUpload/LDImageUpload.js +4 -8
- package/dist/components/LDFileUpload/LDImageUploadList.d.ts +4 -18
- package/dist/components/LDFileUpload/LDImageUploadList.d.ts.map +1 -1
- package/dist/components/LDFileUpload/LDImageUploadList.js +4 -4
- package/dist/components/LDForm/LDForm.d.ts +1 -1
- package/dist/components/LDForm/LDForm.d.ts.map +1 -1
- package/dist/components/LDForm/LDFormErrorMessage.d.ts.map +1 -1
- package/dist/components/LDForm/LDFormErrorMessage.js +1 -1
- package/dist/components/LDInput/InputBase.d.ts.map +1 -1
- package/dist/components/LDInput/InputBase.js +1 -1
- package/dist/components/LDInput/LDFormInput.d.ts +1 -1
- package/dist/components/LDInput/LDFormInput.d.ts.map +1 -1
- package/dist/components/LDInput/LDFormInput.js +4 -4
- package/dist/components/LDInput/LDInput.d.ts +5 -3
- package/dist/components/LDInput/LDInput.d.ts.map +1 -1
- package/dist/components/LDInput/LDInput.js +18 -16
- package/dist/components/LDLNB/LDLNB.d.ts +1 -1
- package/dist/components/LDLNB/LDLNB.d.ts.map +1 -1
- package/dist/components/LDLNB/LDLNB.js +7 -7
- package/dist/components/LDLNB/{LDLNBBase.d.ts → LNBBase.d.ts} +3 -3
- package/dist/components/LDLNB/LNBBase.d.ts.map +1 -0
- package/dist/components/LDLNB/{LDLNBBase.js → LNBBase.js} +56 -39
- package/dist/components/LDLoadingDots/LDLoadingDots.d.ts +3 -1
- package/dist/components/LDLoadingDots/LDLoadingDots.d.ts.map +1 -1
- package/dist/components/LDLoadingDots/LDLoadingDots.js +3 -3
- package/dist/components/LDMenuBar/LDMenuBar.d.ts.map +1 -1
- package/dist/components/LDMenuBar/LDMenuBar.js +6 -6
- package/dist/components/LDMenuBar/MenuBarBase.d.ts.map +1 -1
- package/dist/components/LDModal/LDModal.d.ts +4 -2
- package/dist/components/LDModal/LDModal.d.ts.map +1 -1
- package/dist/components/LDModal/LDModal.js +1 -1
- package/dist/components/LDModal/LDModalView.d.ts +4 -2
- package/dist/components/LDModal/LDModalView.d.ts.map +1 -1
- package/dist/components/LDModal/LDModalView.js +7 -7
- package/dist/components/LDModal/ModalBase.d.ts.map +1 -1
- package/dist/components/LDModal/ModalBase.js +2 -2
- package/dist/components/LDNotification/LDNotification.d.ts +4 -2
- package/dist/components/LDNotification/LDNotification.d.ts.map +1 -1
- package/dist/components/LDNotification/LDNotification.js +2 -2
- package/dist/components/LDNotification/NotificationBase.d.ts.map +1 -1
- package/dist/components/LDOTPInput/LDFormOTPInput.d.ts +1 -1
- package/dist/components/LDOTPInput/LDFormOTPInput.d.ts.map +1 -1
- package/dist/components/LDOTPInput/LDFormOTPInput.js +2 -2
- package/dist/components/LDOTPInput/LDOTPInput.d.ts +29 -16
- package/dist/components/LDOTPInput/LDOTPInput.d.ts.map +1 -1
- package/dist/components/LDOTPInput/LDOTPInput.js +26 -20
- package/dist/components/LDOTPInput/OTPInputBase.d.ts +12 -12
- package/dist/components/LDOTPInput/OTPInputBase.d.ts.map +1 -1
- package/dist/components/LDOTPInput/OTPInputBase.js +11 -9
- package/dist/components/LDPagination/LDPagination.d.ts.map +1 -1
- package/dist/components/LDPagination/LDPagination.js +1 -1
- package/dist/components/LDPagination/PaginationBase.d.ts +1 -1
- package/dist/components/LDPagination/PaginationBase.d.ts.map +1 -1
- package/dist/components/LDPagination/PaginationBase.js +5 -5
- package/dist/components/LDPopover/LDPopover.d.ts +3 -1
- package/dist/components/LDPopover/LDPopover.d.ts.map +1 -1
- package/dist/components/LDPopover/LDPopover.js +5 -5
- package/dist/components/LDPopover/PopoverBase.d.ts +2 -1
- package/dist/components/LDPopover/PopoverBase.d.ts.map +1 -1
- package/dist/components/LDPopover/PopoverBase.js +2 -2
- package/dist/components/LDProgressBar/LDProgressBar.d.ts.map +1 -1
- package/dist/components/LDProgressBar/LDProgressBar.js +2 -2
- package/dist/components/LDProgressBar/ProgressBarBase.d.ts.map +1 -1
- package/dist/components/LDProgressBar/ProgressBarBase.js +1 -1
- package/dist/components/LDRadio/LDFormRadioGroup.d.ts +1 -1
- package/dist/components/LDRadio/LDFormRadioGroup.d.ts.map +1 -1
- package/dist/components/LDRadio/LDFormRadioGroup.js +2 -2
- package/dist/components/LDRadio/LDRadio.d.ts +3 -1
- package/dist/components/LDRadio/LDRadio.d.ts.map +1 -1
- package/dist/components/LDRadio/LDRadio.js +7 -7
- package/dist/components/LDRadio/LDRadioGroup.d.ts +1 -1
- package/dist/components/LDRadio/LDRadioGroup.d.ts.map +1 -1
- package/dist/components/LDRadio/LDRadioGroup.js +1 -1
- package/dist/components/LDRadio/RadioBase.d.ts.map +1 -1
- package/dist/components/LDRadio/RadioBase.js +1 -1
- package/dist/components/LDRate/LDFormRate.d.ts +1 -1
- package/dist/components/LDRate/LDFormRate.d.ts.map +1 -1
- package/dist/components/LDRate/LDRate.d.ts +1 -1
- package/dist/components/LDRate/LDRate.d.ts.map +1 -1
- package/dist/components/LDRate/LDRate.js +6 -6
- package/dist/components/LDScrollArea/LDScrollArea.d.ts.map +1 -1
- package/dist/components/LDScrollArea/LDScrollArea.js +2 -2
- package/dist/components/LDSectionNav/LDSectionNav.js +1 -1
- package/dist/components/LDSectionNav/SectionNavBase.d.ts.map +1 -1
- package/dist/components/LDSectionNav/SectionNavBase.js +1 -1
- package/dist/components/LDSegmented/LDSegmented.d.ts +5 -3
- package/dist/components/LDSegmented/LDSegmented.d.ts.map +1 -1
- package/dist/components/LDSegmented/LDSegmented.js +13 -10
- package/dist/components/LDSegmented/SegmentedBase.d.ts.map +1 -1
- package/dist/components/LDSegmented/SegmentedBase.js +1 -1
- package/dist/components/LDSelect/LDFormMultiSelect.d.ts +1 -1
- package/dist/components/LDSelect/LDFormMultiSelect.d.ts.map +1 -1
- package/dist/components/LDSelect/LDFormMultiSelect.js +3 -3
- package/dist/components/LDSelect/LDFormSelect.d.ts +1 -1
- package/dist/components/LDSelect/LDFormSelect.d.ts.map +1 -1
- package/dist/components/LDSelect/LDFormSelect.js +3 -3
- package/dist/components/LDSelect/LDMultiSelect.d.ts +6 -4
- package/dist/components/LDSelect/LDMultiSelect.d.ts.map +1 -1
- package/dist/components/LDSelect/LDMultiSelect.js +13 -13
- package/dist/components/LDSelect/LDSelect.d.ts +39 -7
- package/dist/components/LDSelect/LDSelect.d.ts.map +1 -1
- package/dist/components/LDSelect/LDSelect.js +56 -19
- package/dist/components/LDSelect/SelectBase.d.ts +25 -28
- package/dist/components/LDSelect/SelectBase.d.ts.map +1 -1
- package/dist/components/LDSelect/SelectBase.js +65 -24
- package/dist/components/LDSkeleton/LDSkeleton.d.ts.map +1 -1
- package/dist/components/LDSkeleton/LDSkeleton.js +1 -1
- package/dist/components/LDSlider/LDSlider.d.ts +31 -2
- package/dist/components/LDSlider/LDSlider.d.ts.map +1 -1
- package/dist/components/LDSlider/LDSlider.js +62 -184
- package/dist/components/LDSlider/SliderBase.d.ts +44 -0
- package/dist/components/LDSlider/SliderBase.d.ts.map +1 -0
- package/dist/components/LDSlider/SliderBase.js +145 -0
- package/dist/components/LDSpinner/LDSpinner.d.ts +1 -6
- package/dist/components/LDSpinner/LDSpinner.d.ts.map +1 -1
- package/dist/components/LDSpinner/LDSpinner.js +4 -12
- package/dist/components/LDTable/{TableField.d.ts → HeadlessTable.d.ts} +18 -23
- package/dist/components/LDTable/HeadlessTable.d.ts.map +1 -0
- package/dist/components/LDTable/{TableField.js → HeadlessTable.js} +61 -12
- package/dist/components/LDTable/LDCollapsibleTanstackTable.d.ts +4 -5
- package/dist/components/LDTable/LDCollapsibleTanstackTable.d.ts.map +1 -1
- package/dist/components/LDTable/LDCollapsibleTanstackTable.js +17 -27
- package/dist/components/LDTable/LDTable.d.ts +4 -5
- package/dist/components/LDTable/LDTable.d.ts.map +1 -1
- package/dist/components/LDTable/LDTable.js +7 -7
- package/dist/components/LDTable/LDTanstackTable.d.ts +4 -5
- package/dist/components/LDTable/LDTanstackTable.d.ts.map +1 -1
- package/dist/components/LDTable/LDTanstackTable.js +11 -18
- package/dist/components/LDTable/TableBase.d.ts +1 -1
- package/dist/components/LDTable/TableBase.d.ts.map +1 -1
- package/dist/components/LDTabs/LDTabs.d.ts +1 -1
- package/dist/components/LDTabs/LDTabs.d.ts.map +1 -1
- package/dist/components/LDTabs/LDTabs.js +15 -15
- package/dist/components/LDTabs/TabsBase.d.ts +1 -1
- package/dist/components/LDTabs/TabsBase.d.ts.map +1 -1
- package/dist/components/LDTeamHistory/LDTeamHistory.js +3 -3
- package/dist/components/LDTeamHistory/TeamHistoryBase.d.ts.map +1 -1
- package/dist/components/LDTeamHistory/TeamHistoryBase.js +19 -10
- package/dist/components/LDTextarea/LDFormTextarea.d.ts +1 -1
- package/dist/components/LDTextarea/LDFormTextarea.d.ts.map +1 -1
- package/dist/components/LDTextarea/LDFormTextarea.js +3 -3
- package/dist/components/LDTextarea/LDTextarea.d.ts +5 -3
- package/dist/components/LDTextarea/LDTextarea.d.ts.map +1 -1
- package/dist/components/LDTextarea/LDTextarea.js +7 -5
- package/dist/components/LDTimePicker/LDFormTimePicker.d.ts +1 -1
- package/dist/components/LDTimePicker/LDFormTimePicker.d.ts.map +1 -1
- package/dist/components/LDTimePicker/LDFormTimePicker.js +3 -3
- package/dist/components/LDTimePicker/LDTimePicker.d.ts.map +1 -1
- package/dist/components/LDTimePicker/LDTimePicker.js +19 -20
- package/dist/components/LDToast/LDToast.js +2 -2
- package/dist/components/LDToggleButton/LDFormToggleButton.d.ts +1 -1
- package/dist/components/LDToggleButton/LDFormToggleButton.d.ts.map +1 -1
- package/dist/components/LDToggleButton/LDFormToggleButton.js +2 -2
- package/dist/components/LDToggleButton/LDToggleButton.d.ts +3 -1
- package/dist/components/LDToggleButton/LDToggleButton.d.ts.map +1 -1
- package/dist/components/LDToggleButton/LDToggleButton.js +1 -1
- package/dist/components/LDToggleButton/ToggleButtonBase.d.ts +1 -3
- package/dist/components/LDToggleButton/ToggleButtonBase.d.ts.map +1 -1
- package/dist/components/LDToggleButton/ToggleButtonBase.js +5 -14
- package/dist/components/LDTooltip/LDTooltip.d.ts.map +1 -1
- package/dist/components/LDTooltip/LDTooltip.js +2 -2
- package/dist/components/LDTooltip/TooltipBase.d.ts.map +1 -1
- package/dist/components/LDTooltip/TooltipBase.js +1 -1
- package/dist/components/RenderIcon/RenderIcon.d.ts +16 -0
- package/dist/components/RenderIcon/RenderIcon.d.ts.map +1 -0
- package/dist/components/RenderIcon/RenderIcon.js +27 -0
- package/dist/components/RenderIcon/RenderIcon.test.d.ts +2 -0
- package/dist/components/RenderIcon/RenderIcon.test.d.ts.map +1 -0
- package/dist/components/RenderIcon/RenderIcon.test.js +38 -0
- package/dist/components/Show/Show.d.ts +57 -0
- package/dist/components/Show/Show.d.ts.map +1 -0
- package/dist/components/Show/Show.js +15 -0
- package/dist/constants/file.d.ts +2 -0
- package/dist/constants/file.d.ts.map +1 -1
- package/dist/constants/file.js +2 -0
- package/dist/index.css +513 -389
- package/dist/index.d.ts +17 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -13
- package/dist/types/common.d.ts +1 -1
- package/dist/types/common.d.ts.map +1 -1
- package/dist/utils/cn.d.ts.map +1 -1
- package/dist/utils/cn.js +10 -0
- package/dist/utils/date.d.ts +4 -0
- package/dist/utils/date.d.ts.map +1 -0
- package/dist/utils/date.js +7 -0
- package/dist/utils/file.d.ts +1 -1
- package/dist/utils/file.d.ts.map +1 -1
- package/dist/utils/file.js +6 -4
- package/dist/utils/tv.d.ts +9 -4
- package/dist/utils/tv.d.ts.map +1 -1
- package/dist/utils/tv.js +8 -3
- package/dist/utils/useIsomorphicLayoutEffect.d.ts.map +1 -0
- package/dist/utils/useIsomorphicLayoutEffect.js +7 -0
- package/package.json +36 -30
- package/src/styles/carousel.css +11 -0
- package/src/styles/color.css +5 -5
- package/src/styles/components/bread-crumb.css +0 -30
- package/src/styles/components/icon.css +23 -25
- package/src/styles/components/input.css +0 -25
- package/src/styles/motion.css +0 -27
- package/src/styles/slider.css +14 -8
- package/dist/components/LDButton/ButtonSpinner.d.ts +0 -8
- package/dist/components/LDButton/ButtonSpinner.d.ts.map +0 -1
- package/dist/components/LDButton/ButtonSpinner.js +0 -15
- package/dist/components/LDLNB/LDLNBBase.d.ts.map +0 -1
- package/dist/components/LDSegmented/useIsomorphicLayoutEffect.d.ts.map +0 -1
- package/dist/components/LDSegmented/useIsomorphicLayoutEffect.js +0 -5
- package/dist/components/LDTable/TableField.d.ts.map +0 -1
- package/dist/utils/renderIcon.d.ts +0 -3
- package/dist/utils/renderIcon.d.ts.map +0 -1
- package/dist/utils/renderIcon.js +0 -12
- /package/dist/{components/LDSegmented → utils}/useIsomorphicLayoutEffect.d.ts +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import AutoHeight from 'embla-carousel-auto-height';
|
|
3
4
|
import AutoScroll from 'embla-carousel-auto-scroll';
|
|
4
5
|
import Autoplay from 'embla-carousel-autoplay';
|
|
5
6
|
import useEmblaCarousel from 'embla-carousel-react';
|
|
@@ -15,7 +16,7 @@ const useCarouselContext = () => {
|
|
|
15
16
|
};
|
|
16
17
|
/** 외부에서 캐러셀 컨트롤(emblaApi)에 접근하고 싶을 때 사용하는 훅 */
|
|
17
18
|
export const useCarousel = useCarouselContext;
|
|
18
|
-
const Root = ({ orientation = 'horizontal', loop = false, autoplay = false, autoScroll = false, align = 'start', containScroll = 'trimSnaps', options, gap = 16, className, style, children, }) => {
|
|
19
|
+
const Root = ({ orientation = 'horizontal', loop = false, autoplay = false, autoScroll = false, autoHeight = false, align = 'start', containScroll = 'trimSnaps', options, gap = 16, className, style, children, }) => {
|
|
19
20
|
// 자동 이동 플러그인 조립. autoScroll(연속 흐름)이 설정되면 autoplay(스텝형)보다 우선.
|
|
20
21
|
const plugins = [];
|
|
21
22
|
if (autoScroll) {
|
|
@@ -34,6 +35,9 @@ const Root = ({ orientation = 'horizontal', loop = false, autoplay = false, auto
|
|
|
34
35
|
stopOnInteraction: c.stopOnInteraction ?? false,
|
|
35
36
|
}));
|
|
36
37
|
}
|
|
38
|
+
if (autoHeight) {
|
|
39
|
+
plugins.push(AutoHeight(typeof autoHeight === 'object' ? autoHeight : {}));
|
|
40
|
+
}
|
|
37
41
|
const [emblaRef, emblaApi] = useEmblaCarousel({
|
|
38
42
|
align,
|
|
39
43
|
loop,
|
|
@@ -84,7 +88,10 @@ const Root = ({ orientation = 'horizontal', loop = false, autoplay = false, auto
|
|
|
84
88
|
scrollTo,
|
|
85
89
|
orientation,
|
|
86
90
|
gap,
|
|
87
|
-
}, children: _jsx("div", { className: cn('ld-carousel relative',
|
|
91
|
+
}, children: _jsx("div", { className: cn('ld-carousel relative',
|
|
92
|
+
// 플러그인이 트랙 높이를 인라인으로 세팅하므로 슬라이드가 늘어나지 않게 해야 한다.
|
|
93
|
+
// 해당 CSS는 styles/carousel.css 의 .ld-carousel--auto-height 규칙에 있다.
|
|
94
|
+
autoHeight && 'ld-carousel--auto-height', className), style: style, role: "region", "aria-roledescription": "carousel", children: children }) }));
|
|
88
95
|
};
|
|
89
96
|
const Viewport = ({ className, children }) => {
|
|
90
97
|
const { emblaRef } = useCarouselContext();
|
|
@@ -93,7 +100,7 @@ const Viewport = ({ className, children }) => {
|
|
|
93
100
|
const Container = ({ className, style, children }) => {
|
|
94
101
|
const { orientation, gap } = useCarouselContext();
|
|
95
102
|
const isVertical = orientation === 'vertical';
|
|
96
|
-
return (_jsx("div", { className: cn('flex', isVertical ? 'flex-col
|
|
103
|
+
return (_jsx("div", { className: cn('flex', isVertical ? 'h-full flex-col' : 'flex-row', className),
|
|
97
104
|
// embla 공식 방식: 간격을 Slide 패딩으로 주고, 첫 칸 패딩만 음수 마진으로 상쇄.
|
|
98
105
|
// flex gap과 달리 loop 이음새(마지막↔처음)에도 간격이 유지됨.
|
|
99
106
|
// 세로 고정 높이에선 음수 마진(-gap)만큼 트랙 높이를 늘려야 마지막 슬라이드가 바닥까지 참.
|
|
@@ -129,17 +136,13 @@ const Next = ({ className, children, ...props }) => {
|
|
|
129
136
|
};
|
|
130
137
|
const TopArrows = ({ className, children, ...props }) => {
|
|
131
138
|
const { scrollNext, scrollPrev, canScrollNext, canScrollPrev } = useCarouselContext();
|
|
132
|
-
return (
|
|
133
|
-
// ld-carousel__nav-top: 상단 화살표 영역의 고정 훅.
|
|
134
|
-
// side 화살표의 .ld-carousel__nav 와 같은 역할 — 소비측에서 반응형 제어(예: 모바일에서만 숨김)를
|
|
135
|
-
// 할 때 마크업 구조(자식 순서 등)에 기대지 않도록 클래스를 제공한다.
|
|
136
|
-
_jsxs("div", { className: "ld-carousel__nav-top flex flex-row ml-auto", children: [_jsx("button", { type: "button", onClick: scrollPrev, disabled: !canScrollPrev, "aria-label": props['aria-label'] ?? '이전', className: cn('disabled:opacity-40 disabled:cursor-not-allowed cursor-pointer rounded-full size-8 flex justify-center items-center ld-transition', className), children: children ?? _jsx(ChevronLeft, { size: 22, strokeWidth: 1.2 }) }), _jsx("button", { type: "button", onClick: scrollNext, disabled: !canScrollNext, "aria-label": props['aria-label'] ?? '다음', className: cn('disabled:opacity-40 disabled:cursor-not-allowed cursor-pointer rounded-full size-8 flex justify-center items-center ld-transition', className), children: children ?? _jsx(ChevronRight, { size: 22, strokeWidth: 1.2 }) })] }));
|
|
139
|
+
return (_jsxs("div", { className: "ml-auto flex flex-row", children: [_jsx("button", { type: "button", onClick: scrollPrev, disabled: !canScrollPrev, "aria-label": props['aria-label'] ?? '이전', className: cn('flex size-8 cursor-pointer items-center justify-center rounded-full ld-transition disabled:cursor-not-allowed disabled:opacity-40', className), children: children ?? _jsx(ChevronLeft, { size: 22, strokeWidth: 1.2 }) }), _jsx("button", { type: "button", onClick: scrollNext, disabled: !canScrollNext, "aria-label": props['aria-label'] ?? '다음', className: cn('flex size-8 cursor-pointer items-center justify-center rounded-full ld-transition disabled:cursor-not-allowed disabled:opacity-40', className), children: children ?? _jsx(ChevronRight, { size: 22, strokeWidth: 1.2 }) })] }));
|
|
137
140
|
};
|
|
138
141
|
const Dots = ({ className, dotClassName }) => {
|
|
139
142
|
const { scrollSnaps, selectedIndex, scrollTo } = useCarouselContext();
|
|
140
143
|
return (_jsx("div", { className: cn('flex items-center justify-center gap-2', className), children: scrollSnaps.map((_, i) => {
|
|
141
144
|
const isActive = i === selectedIndex;
|
|
142
|
-
return (_jsx("button", { type: "button", onClick: () => scrollTo(i), "aria-label": `${i + 1}번째 슬라이드로 이동`, "aria-current": isActive || undefined, className: cn('rounded-full ld-transition
|
|
145
|
+
return (_jsx("button", { type: "button", onClick: () => scrollTo(i), "aria-label": `${i + 1}번째 슬라이드로 이동`, "aria-current": isActive || undefined, className: cn('cursor-pointer rounded-full ld-transition', isActive ? 'h-2 w-5 bg-lb500' : 'h-2 w-2 bg-mono200', dotClassName) }, i));
|
|
143
146
|
}) }));
|
|
144
147
|
};
|
|
145
148
|
const Counter = ({ className, format }) => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type CSSProperties, type ReactNode } from 'react';
|
|
2
|
-
import { type CarouselOrientation, type RootProps } from '
|
|
2
|
+
import { type CarouselOrientation, type RootProps } from '../../components/LDCarousel/CarouselBase.js';
|
|
3
3
|
export interface LDCarouselProps {
|
|
4
4
|
/** 슬라이드로 렌더링할 노드 배열 */
|
|
5
5
|
slides: ReactNode[];
|
|
@@ -14,6 +14,8 @@ export interface LDCarouselProps {
|
|
|
14
14
|
};
|
|
15
15
|
/** 연속 흐름(Auto Scroll). autoplay와 동시 사용 불가, loop와 함께 권장 */
|
|
16
16
|
autoScroll?: RootProps['autoScroll'];
|
|
17
|
+
/** 트랙 높이를 선택된 슬라이드 높이에 맞춘다. 슬라이드마다 높이가 다를 때 빈 공간을 없앤다 */
|
|
18
|
+
autoHeight?: RootProps['autoHeight'];
|
|
17
19
|
/** 슬라이드 정렬 위치. 기본 'start'(왼쪽 끝 붙음) */
|
|
18
20
|
align?: RootProps['align'];
|
|
19
21
|
/** 양 끝 빈 공간 처리. 기본 'trimSnaps'(끝 여백 없게 보정) / 'keepSnaps'(보정+개별 스냅 유지) / false(보정 없이 일관 정렬) */
|
|
@@ -49,16 +51,16 @@ export interface LDCarouselProps {
|
|
|
49
51
|
* 고급 커스터마이징이 필요하면 `LDCarousel.Root` 등 compound API를 직접 조합하세요.
|
|
50
52
|
*/
|
|
51
53
|
declare const LDCarousel: {
|
|
52
|
-
({ slides, orientation, loop, autoplay, autoScroll, align, containScroll, options, arrowPosition, showDots, showCounter, slidesPerView, grid, gap, className, style, viewportClassName, slideClassName, }: LDCarouselProps): import("react/jsx-runtime").JSX.Element;
|
|
53
|
-
Root: ({ orientation, loop, autoplay, autoScroll, align, containScroll, options, gap, className, style, children, }: RootProps) => import("react/jsx-runtime").JSX.Element;
|
|
54
|
-
Viewport: ({ className, children }: import("
|
|
55
|
-
Container: ({ className, style, children }: import("
|
|
56
|
-
Slide: ({ slidesPerView, index, total, className, style, children, }: import("
|
|
57
|
-
Prev: ({ className, children, ...props }: import("
|
|
58
|
-
Next: ({ className, children, ...props }: import("
|
|
59
|
-
Dots: ({ className, dotClassName }: import("
|
|
60
|
-
Counter: ({ className, format }: import("
|
|
61
|
-
TopArrows: ({ className, children, ...props }: import("
|
|
54
|
+
({ slides, orientation, loop, autoplay, autoScroll, autoHeight, align, containScroll, options, arrowPosition, showDots, showCounter, slidesPerView, grid, gap, className, style, viewportClassName, slideClassName, }: LDCarouselProps): import("react/jsx-runtime").JSX.Element;
|
|
55
|
+
Root: ({ orientation, loop, autoplay, autoScroll, autoHeight, align, containScroll, options, gap, className, style, children, }: RootProps) => import("react/jsx-runtime").JSX.Element;
|
|
56
|
+
Viewport: ({ className, children }: import("../../components/LDCarousel/CarouselBase.js").ViewportProps) => import("react/jsx-runtime").JSX.Element;
|
|
57
|
+
Container: ({ className, style, children }: import("../../components/LDCarousel/CarouselBase.js").ContainerProps) => import("react/jsx-runtime").JSX.Element;
|
|
58
|
+
Slide: ({ slidesPerView, index, total, className, style, children, }: import("../../components/LDCarousel/CarouselBase.js").SlideProps) => import("react/jsx-runtime").JSX.Element;
|
|
59
|
+
Prev: ({ className, children, ...props }: import("../../components/LDCarousel/CarouselBase.js").NavButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
60
|
+
Next: ({ className, children, ...props }: import("../../components/LDCarousel/CarouselBase.js").NavButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
61
|
+
Dots: ({ className, dotClassName }: import("../../components/LDCarousel/CarouselBase.js").DotsProps) => import("react/jsx-runtime").JSX.Element;
|
|
62
|
+
Counter: ({ className, format }: import("../../components/LDCarousel/CarouselBase.js").CounterProps) => import("react/jsx-runtime").JSX.Element;
|
|
63
|
+
TopArrows: ({ className, children, ...props }: import("../../components/LDCarousel/CarouselBase.js").NavButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
62
64
|
};
|
|
63
65
|
export default LDCarousel;
|
|
64
66
|
//# sourceMappingURL=LDCarousel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LDCarousel.d.ts","sourceRoot":"","sources":["../../../src/components/LDCarousel/LDCarousel.tsx"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"LDCarousel.d.ts","sourceRoot":"","sources":["../../../src/components/LDCarousel/LDCarousel.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAErE,OAAqB,EACnB,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACf,MAAM,sCAAsC,CAAC;AAG9C,MAAM,WAAW,eAAe;IAC9B,uBAAuB;IACvB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,gCAAgC;IAChC,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,sBAAsB;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sDAAsD;IACtD,QAAQ,CAAC,EAAE,OAAO,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACrE,0DAA0D;IAC1D,UAAU,CAAC,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;IACrC,yDAAyD;IACzD,UAAU,CAAC,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;IACrC,sCAAsC;IACtC,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAC3B,8FAA8F;IAC9F,aAAa,CAAC,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;IAC3C;+EAC2E;IAC3E,OAAO,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC/B,8DAA8D;IAC9D,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gCAAgC;IAChC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,mCAAmC;IACnC,IAAI,CAAC,EAAE;QACL;8DACsD;QACtD,IAAI,EAAE,MAAM,CAAC;QACb,8EAA8E;QAC9E,IAAI,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;KACtB,CAAC;IACF,4CAA4C;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,wCAAwC;IACxC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,QAAA,MAAM,UAAU;2NAoBb,eAAe;;;;;;;;;;CA0FjB,CAAC;AAYF,eAAe,UAAU,CAAC"}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { Fragment } from 'react';
|
|
4
|
-
import CarouselBase from '
|
|
4
|
+
import CarouselBase from '../../components/LDCarousel/CarouselBase.js';
|
|
5
5
|
import cn from '../../utils/cn.js';
|
|
6
6
|
/**
|
|
7
7
|
* embla-carousel 기반 기본 캐러셀.
|
|
8
8
|
* 고급 커스터마이징이 필요하면 `LDCarousel.Root` 등 compound API를 직접 조합하세요.
|
|
9
9
|
*/
|
|
10
|
-
const LDCarousel = ({ slides, orientation = 'horizontal', loop = false, autoplay = false, autoScroll = false, align = 'start', containScroll = 'trimSnaps', options, arrowPosition = 'top', showDots = false, showCounter = false, slidesPerView = 'auto', grid, gap = 16, className, style, viewportClassName, slideClassName, }) => {
|
|
10
|
+
const LDCarousel = ({ slides, orientation = 'horizontal', loop = false, autoplay = false, autoScroll = false, autoHeight = false, align = 'start', containScroll = 'trimSnaps', options, arrowPosition = 'top', showDots = false, showCounter = false, slidesPerView = 'auto', grid, gap = 16, className, style, viewportClassName, slideClassName, }) => {
|
|
11
11
|
const isVertical = orientation === 'vertical';
|
|
12
12
|
const rows = grid?.rows ?? 1;
|
|
13
13
|
const columnCount = Math.ceil(slides.length / rows);
|
|
14
14
|
const columns = rows <= 1
|
|
15
15
|
? slides.map((_, i) => [i])
|
|
16
16
|
: Array.from({ length: columnCount }, (_, col) => Array.from({ length: rows }, (_, row) => grid?.fill === 'col' ? col * rows + row : row * columnCount + col).filter((i) => i < slides.length));
|
|
17
|
-
return (_jsx(CarouselBase.Root, { orientation: orientation, loop: loop, autoplay: autoplay, autoScroll: autoScroll, align: align, containScroll: containScroll, options: options, gap: gap, className: cn(arrowPosition === 'side' && !isVertical && 'ld-carousel--nav-gutter-x', className), style: style, children: _jsxs("div", { className: "flex flex-col gap-3", children: [arrowPosition === 'top' && _jsx(CarouselBase.TopArrows, {}), _jsxs("div", { className: cn('flex items-center gap-3
|
|
17
|
+
return (_jsx(CarouselBase.Root, { orientation: orientation, loop: loop, autoplay: autoplay, autoScroll: autoScroll, autoHeight: autoHeight, align: align, containScroll: containScroll, options: options, gap: gap, className: cn(arrowPosition === 'side' && !isVertical && 'ld-carousel--nav-gutter-x', className), style: style, children: _jsxs("div", { className: "flex flex-col gap-3", children: [arrowPosition === 'top' && _jsx(CarouselBase.TopArrows, {}), _jsxs("div", { className: cn('relative flex w-full items-center gap-3', isVertical && 'flex-col', isVertical &&
|
|
18
18
|
arrowPosition === 'side' &&
|
|
19
19
|
'ld-carousel__nav-clearance-y'), children: [arrowPosition === 'side' && _jsx(CarouselBase.Prev, {}), _jsx(CarouselBase.Viewport, { className: cn('w-full', viewportClassName), children: _jsx(CarouselBase.Container, { children: columns.map((column, i) => (_jsx(CarouselBase.Slide, { slidesPerView: slidesPerView, index: i, total: columns.length, className: slideClassName, children: rows <= 1 ? (slides[i]) : (_jsx("div", { className: "grid h-full items-start", style: {
|
|
20
20
|
gridTemplateRows: `repeat(${rows}, minmax(0, 1fr))`,
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import type { Color, Position } from '../../types/common.js';
|
|
2
|
+
import type { Subset } from '../../types/subset.js';
|
|
1
3
|
/** label 자동 생성 단위. dayjs의 ManipulateType 중 아래 포맷이 정의된 3개만 허용한다. */
|
|
2
4
|
export type LDChartUnit = 'day' | 'month' | 'year';
|
|
3
|
-
export type LDChartPosition = 'left' | 'right'
|
|
5
|
+
export type LDChartPosition = Subset<Position, 'left' | 'right'>;
|
|
4
6
|
/** 시리즈 색상 프리셋. DS 색 팔레트의 500 단계에 대응한다. */
|
|
5
|
-
export type LDChartColor = 'lowordBlue' | 'blue' | 'red' | 'orange' | 'yellow' | 'green' | 'pink' | 'purple'
|
|
7
|
+
export type LDChartColor = Subset<Color, 'lowordBlue' | 'blue' | 'red' | 'orange' | 'yellow' | 'green' | 'pink' | 'purple'>;
|
|
6
8
|
/**
|
|
7
9
|
* LDChart의 props입니다.
|
|
8
10
|
* 원본(mono repo LDChart) 대비 `loader?: string`은 `loading?: boolean`으로,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LDChart.d.ts","sourceRoot":"","sources":["../../../src/components/LDChart/LDChart.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LDChart.d.ts","sourceRoot":"","sources":["../../../src/components/LDChart/LDChart.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAe7C,mEAAmE;AACnE,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;AAQnD,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;AAEjE,0CAA0C;AAC1C,MAAM,MAAM,YAAY,GAAG,MAAM,CAC/B,KAAK,EACH,YAAY,GACZ,MAAM,GACN,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,MAAM,GACN,QAAQ,CACX,CAAC;AAyCF;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,QAAQ,EAAE;QACR,qCAAqC;QACrC,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,cAAc;QACd,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,iDAAiD;QACjD,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;IACF,qDAAqD;IACrD,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,4CAA4C;IAC5C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0DAA0D;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,QAAA,MAAM,OAAO,GAAI,kHAYd,YAAY,4CAyLd,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -4,10 +4,10 @@ import { CategoryScale, Chart as ChartJS, Filler, Legend, LinearScale, LineEleme
|
|
|
4
4
|
import dayjs from 'dayjs';
|
|
5
5
|
import { useMemo } from 'react';
|
|
6
6
|
import { Line } from 'react-chartjs-2';
|
|
7
|
+
import ChartBase from '../../components/LDChart/ChartBase.js';
|
|
8
|
+
import LDSpinner from '../../components/LDSpinner/LDSpinner.js';
|
|
7
9
|
import cn from '../../utils/cn.js';
|
|
8
|
-
import { formatAbbreviatedNumber, formatNumberWithComma
|
|
9
|
-
import LDSpinner from '../LDSpinner/LDSpinner.js';
|
|
10
|
-
import ChartBase from './ChartBase.js';
|
|
10
|
+
import { formatAbbreviatedNumber, formatNumberWithComma } from '../../utils/utils.js';
|
|
11
11
|
// 이 컴포넌트에서만 그리는 선(라인) 차트라 BarElement는 등록하지 않는다.
|
|
12
12
|
ChartJS.register(CategoryScale, LinearScale, PointElement, LineElement, Filler, Tooltip, Legend);
|
|
13
13
|
const EMPTY_LABEL_FORMATS = {
|
|
@@ -175,9 +175,9 @@ const LDChart = ({ dataList, color = 'lowordBlue', position = 'right', reverseYA
|
|
|
175
175
|
};
|
|
176
176
|
// 배경은 기본 투명. 필요한 소비처가 rootClassName으로 지정한다.
|
|
177
177
|
// (원본의 bg-mono5는 정의되지 않은 토큰이라 실제로도 투명하게 렌더됐다.)
|
|
178
|
-
return (_jsx(ChartBase.Root, { className: cn('w-full flex
|
|
178
|
+
return (_jsx(ChartBase.Root, { className: cn('flex w-full flex-col items-start justify-start rounded-xs', rootClassName), style: rootStyle, children: _jsxs(ChartBase.Viewport, { style: viewportStyle, className: cn('relative', className), children: [_jsx(Line, { height: Number(viewportStyle.height), "aria-label": "\uCC28\uD2B8", data: {
|
|
179
179
|
labels: dataList.label.length > 0 ? dataList.label : emptyLabels,
|
|
180
180
|
datasets: dataSets,
|
|
181
|
-
}, options: options, plugins: [intersectDataVerticalLine] }), _jsx(ChartBase.Overlay, { className: cn('absolute inset-0 z-10 flex items-center justify-center', 'bg-white/70 ld-transition', loading ? 'opacity-100' : '
|
|
181
|
+
}, options: options, plugins: [intersectDataVerticalLine] }), _jsx(ChartBase.Overlay, { className: cn('absolute inset-0 z-10 flex items-center justify-center', 'bg-white/70 ld-transition', loading ? 'opacity-100' : 'pointer-events-none opacity-0'), children: _jsx(LDSpinner, { className: "size-8 text-lb500" }) })] }) }));
|
|
182
182
|
};
|
|
183
183
|
export default LDChart;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckboxBase.d.ts","sourceRoot":"","sources":["../../../src/components/LDCheckbox/CheckboxBase.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CheckboxBase.d.ts","sourceRoot":"","sources":["../../../src/components/LDCheckbox/CheckboxBase.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,GAAG,EAGT,MAAM,OAAO,CAAC;AAKf,UAAU,mBAAmB;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1C;AAID,eAAO,MAAM,kBAAkB,2BAO9B,CAAC;AAGF,UAAU,SAAS;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC,CAAC;IACpD,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAiDD,UAAU,gBAAiB,SAAQ,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC;IAC5E,GAAG,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;CAC7B;AAqCD,UAAU,cAAc;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAeD,UAAU,UAAU;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAMD,eAAO,MAAM,YAAY;gGA1GtB,SAAS;gEAiDT,gBAAgB;yDAuChB,cAAc;qCAcuB,UAAU;CASjD,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Check } from 'lucide-react';
|
|
2
3
|
import { createContext, useContext, useState, } from 'react';
|
|
3
4
|
import cn from '../../utils/cn.js';
|
|
4
|
-
import { Check } from 'lucide-react';
|
|
5
5
|
const CheckboxContext = createContext(null);
|
|
6
6
|
export const useCheckboxContext = () => {
|
|
7
7
|
const ctx = useContext(CheckboxContext);
|
|
@@ -26,11 +26,11 @@ const Root = ({ checked, defaultChecked = false, onCheckedChange, disabled = fal
|
|
|
26
26
|
disabled,
|
|
27
27
|
isFocused,
|
|
28
28
|
setIsFocused,
|
|
29
|
-
}, children: _jsx("label", { style: style, onClick: (e) => e.stopPropagation(), className: cn('flex
|
|
29
|
+
}, children: _jsx("label", { style: style, onClick: (e) => e.stopPropagation(), className: cn('flex w-fit shrink-0 flex-row', disabled ? 'cursor-not-allowed' : 'cursor-pointer', resolvedClassName), children: children }) }));
|
|
30
30
|
};
|
|
31
31
|
const HiddenInput = ({ ref, onFocus, onBlur, onChange, ...props }) => {
|
|
32
32
|
const { checked, onCheckedChange, disabled, setIsFocused } = useCheckboxContext();
|
|
33
|
-
return (_jsx("input", { type: "checkbox", ref: ref, className: "sr-only
|
|
33
|
+
return (_jsx("input", { type: "checkbox", ref: ref, className: "peer sr-only", checked: checked, disabled: disabled, onChange: (e) => {
|
|
34
34
|
e.stopPropagation(); // 이벤트 전파 중단
|
|
35
35
|
onCheckedChange(e.target.checked);
|
|
36
36
|
onChange?.(e);
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { type InputHTMLAttributes, type Ref } from 'react';
|
|
2
|
-
|
|
2
|
+
import type { Size } from '../../types/common.js';
|
|
3
|
+
import type { Subset } from '../../types/subset.js';
|
|
4
|
+
export type CheckboxSize = Subset<Size, '2xsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge'>;
|
|
3
5
|
type CheckboxType = 'default' | 'checkbox' | 'pill';
|
|
4
6
|
export interface LDCheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'size' | 'value'> {
|
|
5
7
|
/** 체크 상태 변경 콜백 (boolean) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LDCheckbox.d.ts","sourceRoot":"","sources":["../../../src/components/LDCheckbox/LDCheckbox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAK3D,MAAM,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"LDCheckbox.d.ts","sourceRoot":"","sources":["../../../src/components/LDCheckbox/LDCheckbox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAK3D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAI7C,MAAM,MAAM,YAAY,GAAG,MAAM,CAC/B,IAAI,EACJ,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAC/D,CAAC;AACF,KAAK,YAAY,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;AAgFpD,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAC3C,mBAAmB,CAAC,gBAAgB,CAAC,EACrC,MAAM,GAAG,MAAM,GAAG,OAAO,CAC1B;IACC,4BAA4B;IAC5B,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,aAAa;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6DAA6D;IAC7D,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,yBAAyB;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,mBAAmB;IACnB,GAAG,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;CAC7B;AAwGD,QAAA,MAAM,UAAU,GAAI,8IAejB,eAAe,4CAwDjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import CheckboxBase, { useCheckboxContext } from '
|
|
2
|
+
import CheckboxBase, { useCheckboxContext, } from '../../components/LDCheckbox/CheckboxBase.js';
|
|
3
3
|
import cn from '../../utils/cn.js';
|
|
4
4
|
// medium이 기존 단일 사이즈(24) 기준. 위아래로 프리셋을 확장.
|
|
5
5
|
const checkIconSizes = {
|
|
@@ -72,23 +72,23 @@ const pillCheckedPad = {
|
|
|
72
72
|
// ── Inner: Context에서 checked를 읽어 스타일 적용 ──
|
|
73
73
|
const PillInner = ({ size, label, ref, ...props }) => {
|
|
74
74
|
const { checked } = useCheckboxContext();
|
|
75
|
-
return (_jsxs(_Fragment, { children: [_jsx(CheckboxBase.HiddenInput, { ref: ref, ...props }), _jsxs("div", { className: "relative flex items-center", children: [_jsx(CheckboxBase.Indicator, { iconSize: pillIconSizes[size], className: cn('absolute left-0'), iconClassName: cn('shrink-0 ld-transition', checked ? 'opacity-100' : 'opacity-0') }), label && (_jsx(CheckboxBase.Label, { className: cn('text-nowrap ld-transition', checked ? pillCheckedPad[size] : '
|
|
75
|
+
return (_jsxs(_Fragment, { children: [_jsx(CheckboxBase.HiddenInput, { ref: ref, ...props }), _jsxs("div", { className: "relative flex items-center", children: [_jsx(CheckboxBase.Indicator, { iconSize: pillIconSizes[size], className: cn('absolute left-0'), iconClassName: cn('shrink-0 ld-transition', checked ? 'opacity-100' : 'opacity-0') }), label && (_jsx(CheckboxBase.Label, { className: cn('text-nowrap ld-transition', checked ? pillCheckedPad[size] : 'pr-sm pl-sm'), children: label }))] })] }));
|
|
76
76
|
};
|
|
77
77
|
const DefaultInner = ({ type, size, label, isRequired, ref, ...props }) => {
|
|
78
78
|
const { checked, disabled } = useCheckboxContext();
|
|
79
79
|
return (_jsxs(_Fragment, { children: [_jsx(CheckboxBase.HiddenInput, { ref: ref, ...props }), _jsx(CheckboxBase.Indicator, { iconSize: type === 'checkbox' ? checkboxIconSizes[size] : checkIconSizes[size], className: cn('ld-transition', type === 'checkbox' &&
|
|
80
|
-
'border-none outline-2
|
|
80
|
+
'rounded-[5px] border-none p-1 outline-2 -outline-offset-2 outline-mono300', type === 'checkbox' && checked && 'bg-lb500 outline-lb500', type === 'checkbox' && disabled && 'bg-mono100 outline-mono100', 'peer-focus-visible:ring-2 peer-focus-visible:ring-lb500 peer-focus-visible:ring-offset-2'), iconClassName: cn('shrink-0 ld-transition', type === 'checkbox'
|
|
81
81
|
? checked
|
|
82
82
|
? 'text-white'
|
|
83
83
|
: 'text-transparent'
|
|
84
84
|
: checked
|
|
85
85
|
? 'text-blue400'
|
|
86
|
-
: 'text-neutral500') }), isRequired && (_jsx(CheckboxBase.Label, { className: cn('
|
|
86
|
+
: 'text-neutral500') }), isRequired && (_jsx(CheckboxBase.Label, { className: cn('block shrink-0 text-blue400', labelHeight[size]), children: "\uD544\uC218" })), label && (_jsx(CheckboxBase.Label, { className: cn('block text-neutral900', labelHeight[size]), children: label }))] }));
|
|
87
87
|
};
|
|
88
88
|
const LDCheckbox = ({ checked, defaultChecked, onCheckedChange, onChange, size = 'small', label, isRequired = false, type = 'default', itemCenter = false, disabled = false, className, style, ref, ...props }) => {
|
|
89
89
|
if (type === 'pill') {
|
|
90
|
-
return (_jsx(CheckboxBase.Root, { checked: checked, defaultChecked: defaultChecked, onCheckedChange: onCheckedChange, disabled: disabled, style: style, className: (c) => cn('items-center gap-2 rounded-full ld-transition
|
|
90
|
+
return (_jsx(CheckboxBase.Root, { checked: checked, defaultChecked: defaultChecked, onCheckedChange: onCheckedChange, disabled: disabled, style: style, className: (c) => cn('items-center gap-2 rounded-full bold ld-transition', pillSizeClasses[size], c ? 'bg-tintBlue text-lb500' : 'bg-mono100 text-mono500', disabled && 'cursor-not-allowed opacity-50', className), children: _jsx(PillInner, { size: size, label: label, ref: ref, onChange: onChange, ...props }) }));
|
|
91
91
|
}
|
|
92
|
-
return (_jsx(CheckboxBase.Root, { checked: checked, defaultChecked: defaultChecked, onCheckedChange: onCheckedChange, disabled: disabled, style: style, className: cn('
|
|
92
|
+
return (_jsx(CheckboxBase.Root, { checked: checked, defaultChecked: defaultChecked, onCheckedChange: onCheckedChange, disabled: disabled, style: style, className: cn('items-center bold ld-transition', itemCenter && 'items-center', labelSizeClasses[size], gapClasses[size], className), children: _jsx(DefaultInner, { type: type, size: size, label: label, isRequired: isRequired, ref: ref, onChange: onChange, ...props }) }));
|
|
93
93
|
};
|
|
94
94
|
export default LDCheckbox;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LDCheckboxGroup.d.ts","sourceRoot":"","sources":["../../../src/components/LDCheckbox/LDCheckboxGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"LDCheckboxGroup.d.ts","sourceRoot":"","sources":["../../../src/components/LDCheckbox/LDCheckboxGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAmB,EACjB,KAAK,YAAY,EAClB,MAAM,oCAAoC,CAAC;AAI5C,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAaD,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;IACvC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,QAAA,MAAM,eAAe,GAAI,kFAUtB,oBAAoB,4CA+BtB,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import LDCheckbox from '
|
|
2
|
+
import LDCheckbox from '../../components/LDCheckbox/LDCheckbox.js';
|
|
3
3
|
import cn from '../../utils/cn.js';
|
|
4
4
|
// 아이템 간 간격을 사이즈별로 확장 (수평/수직 공통, LDRadioGroup과 동일 스케일)
|
|
5
5
|
const groupGapClasses = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Ref } from 'react';
|
|
2
2
|
import { type RegisterOptions } from 'react-hook-form';
|
|
3
|
-
import { type LDCheckboxProps } from '
|
|
3
|
+
import { type LDCheckboxProps } from '../../components/LDCheckbox/LDCheckbox.js';
|
|
4
4
|
interface LDFormCheckboxProps extends Omit<LDCheckboxProps, 'checked' | 'name' | 'onCheckedChange'> {
|
|
5
5
|
name: string;
|
|
6
6
|
options?: RegisterOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LDFormCheckbox.d.ts","sourceRoot":"","sources":["../../../src/components/LDCheckbox/LDFormCheckbox.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"LDFormCheckbox.d.ts","sourceRoot":"","sources":["../../../src/components/LDCheckbox/LDFormCheckbox.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAmB,EACjB,KAAK,eAAe,EACrB,MAAM,oCAAoC,CAAC;AAG5C,UAAU,mBAAoB,SAAQ,IAAI,CACxC,eAAe,EACf,SAAS,GAAG,MAAM,GAAG,iBAAiB,CACvC;IACC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,GAAG,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,QAAA,MAAM,cAAc,GAAI,gEAOrB,mBAAmB,4CAqBrB,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import LDCheckbox from '
|
|
4
|
-
import FormField from '
|
|
3
|
+
import LDCheckbox from '../../components/LDCheckbox/LDCheckbox.js';
|
|
4
|
+
import FormField from '../../components/LDForm/LDFormField.js';
|
|
5
5
|
const LDFormCheckbox = ({ name, options, ref, customErrorMessage = '', disabled = false, ...props }) => {
|
|
6
6
|
return (_jsx(FormField, { name: name, options: options, customErrorMessage: customErrorMessage, disabled: disabled, ref: ref, children: ({ field }) => (_jsx(LDCheckbox, { ...props, checked: !!field.value, onCheckedChange: field.onChange, onBlur: field.onBlur, disabled: disabled, ref: field.ref })) }));
|
|
7
7
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type RegisterOptions } from 'react-hook-form';
|
|
2
|
-
import { type LDCheckboxGroupProps } from '
|
|
2
|
+
import { type LDCheckboxGroupProps } from '../../components/LDCheckbox/LDCheckboxGroup.js';
|
|
3
3
|
interface LDFormCheckboxGroupProps extends Omit<LDCheckboxGroupProps, 'value' | 'onChange'> {
|
|
4
4
|
name: string;
|
|
5
5
|
options?: RegisterOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LDFormCheckboxGroup.d.ts","sourceRoot":"","sources":["../../../src/components/LDCheckbox/LDFormCheckboxGroup.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"LDFormCheckboxGroup.d.ts","sourceRoot":"","sources":["../../../src/components/LDCheckbox/LDFormCheckboxGroup.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAwB,EACtB,KAAK,oBAAoB,EAC1B,MAAM,yCAAyC,CAAC;AAGjD,UAAU,wBAAyB,SAAQ,IAAI,CAC7C,oBAAoB,EACpB,OAAO,GAAG,UAAU,CACrB;IACC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,QAAA,MAAM,mBAAmB,GAAI,2DAM1B,wBAAwB,4CAkB1B,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import LDCheckboxGroup from '
|
|
4
|
-
import FormField from '
|
|
3
|
+
import LDCheckboxGroup from '../../components/LDCheckbox/LDCheckboxGroup.js';
|
|
4
|
+
import FormField from '../../components/LDForm/LDFormField.js';
|
|
5
5
|
const LDFormCheckboxGroup = ({ name, options, customErrorMessage = '', disabled = false, ...props }) => {
|
|
6
6
|
return (_jsx(FormField, { name: name, options: options, customErrorMessage: customErrorMessage, disabled: disabled, children: ({ field }) => (_jsx(LDCheckboxGroup, { ...props, value: field.value ?? [], onChange: field.onChange, disabled: disabled })) }));
|
|
7
7
|
};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type { ReactNode } from 'react';
|
|
2
1
|
import type { Dayjs } from 'dayjs';
|
|
2
|
+
import type { ComponentProps, ReactNode } from 'react';
|
|
3
|
+
import LDDataCalendarBase from '../../components/LDDataCalendar/LDDataCalendarBase.js';
|
|
3
4
|
export interface LDDataCalendarProps {
|
|
4
5
|
className?: string;
|
|
5
6
|
/** 초기 표시 월 */
|
|
@@ -19,11 +20,28 @@ export interface LDDataCalendarProps {
|
|
|
19
20
|
/** 선택 상세(모바일 Detail 슬롯). 지정 시 그리드 아래에 Detail 렌더 */
|
|
20
21
|
renderDetail?: (date: Dayjs | null) => ReactNode;
|
|
21
22
|
}
|
|
23
|
+
export type LDDataCalendarRootProps = ComponentProps<typeof LDDataCalendarBase.Root>;
|
|
24
|
+
export type LDDataCalendarHeaderProps = ComponentProps<'div'>;
|
|
25
|
+
export type LDDataCalendarPrevProps = ComponentProps<typeof LDDataCalendarBase.Prev>;
|
|
26
|
+
export type LDDataCalendarTitleProps = ComponentProps<typeof LDDataCalendarBase.Title>;
|
|
27
|
+
export type LDDataCalendarNextProps = ComponentProps<typeof LDDataCalendarBase.Next>;
|
|
28
|
+
export type LDDataCalendarGridProps = ComponentProps<typeof LDDataCalendarBase.Grid>;
|
|
29
|
+
export type LDDataCalendarCellProps = ComponentProps<typeof LDDataCalendarBase.Cell>;
|
|
30
|
+
export type LDDataCalendarDetailProps = ComponentProps<typeof LDDataCalendarBase.Detail>;
|
|
22
31
|
/**
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
* 날짜별 데이터는 `renderCell`, 선택 상세는 `renderDetail`로 주입한다.
|
|
32
|
+
* 일반적인 데이터 달력 구성을 제공하는 Styled Single 컴포넌트입니다.
|
|
33
|
+
* 날짜별 데이터는 `renderCell`, 선택 상세는 `renderDetail`로 주입합니다.
|
|
26
34
|
*/
|
|
27
|
-
declare const LDDataCalendar:
|
|
35
|
+
declare const LDDataCalendar: {
|
|
36
|
+
({ className, defaultMonth, onMonthChange, selectable, defaultSelectedDate, onSelectDate, weekdays, renderCell, renderDetail, }: LDDataCalendarProps): import("react/jsx-runtime").JSX.Element;
|
|
37
|
+
Root: ({ className, ...props }: LDDataCalendarRootProps) => import("react/jsx-runtime").JSX.Element;
|
|
38
|
+
Header: ({ className, ...props }: LDDataCalendarHeaderProps) => import("react/jsx-runtime").JSX.Element;
|
|
39
|
+
Prev: ({ children, className, ...props }: LDDataCalendarPrevProps) => import("react/jsx-runtime").JSX.Element;
|
|
40
|
+
Title: ({ className, ...props }: LDDataCalendarTitleProps) => import("react/jsx-runtime").JSX.Element;
|
|
41
|
+
Next: ({ children, className, ...props }: LDDataCalendarNextProps) => import("react/jsx-runtime").JSX.Element;
|
|
42
|
+
Grid: ({ weekdayClassName, ...props }: LDDataCalendarGridProps) => import("react/jsx-runtime").JSX.Element;
|
|
43
|
+
Cell: ({ className, dateClassName, ...props }: LDDataCalendarCellProps) => import("react/jsx-runtime").JSX.Element;
|
|
44
|
+
Detail: ({ className, ...props }: LDDataCalendarDetailProps) => import("react/jsx-runtime").JSX.Element;
|
|
45
|
+
};
|
|
28
46
|
export default LDDataCalendar;
|
|
29
47
|
//# sourceMappingURL=LDDataCalendar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LDDataCalendar.d.ts","sourceRoot":"","sources":["../../../src/components/LDDataCalendar/LDDataCalendar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"LDDataCalendar.d.ts","sourceRoot":"","sources":["../../../src/components/LDDataCalendar/LDDataCalendar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,kBAAkB,MAAM,gDAAgD,CAAC;AAGhF,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc;IACd,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,gBAAgB;IAChB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACvC,wCAAwC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe;IACf,mBAAmB,CAAC,EAAE,KAAK,CAAC;IAC5B,iBAAiB;IACjB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;IACrC,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,wDAAwD;IACxD,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,KAAK,SAAS,CAAC;IAC5D,mDAAmD;IACnD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,KAAK,SAAS,CAAC;CAClD;AAED,MAAM,MAAM,uBAAuB,GAAG,cAAc,CAClD,OAAO,kBAAkB,CAAC,IAAI,CAC/B,CAAC;AACF,MAAM,MAAM,yBAAyB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;AAC9D,MAAM,MAAM,uBAAuB,GAAG,cAAc,CAClD,OAAO,kBAAkB,CAAC,IAAI,CAC/B,CAAC;AACF,MAAM,MAAM,wBAAwB,GAAG,cAAc,CACnD,OAAO,kBAAkB,CAAC,KAAK,CAChC,CAAC;AACF,MAAM,MAAM,uBAAuB,GAAG,cAAc,CAClD,OAAO,kBAAkB,CAAC,IAAI,CAC/B,CAAC;AACF,MAAM,MAAM,uBAAuB,GAAG,cAAc,CAClD,OAAO,kBAAkB,CAAC,IAAI,CAC/B,CAAC;AACF,MAAM,MAAM,uBAAuB,GAAG,cAAc,CAClD,OAAO,kBAAkB,CAAC,IAAI,CAC/B,CAAC;AACF,MAAM,MAAM,yBAAyB,GAAG,cAAc,CACpD,OAAO,kBAAkB,CAAC,MAAM,CACjC,CAAC;AAyFF;;;GAGG;AACH,QAAA,MAAM,cAAc;qIAUjB,mBAAmB;oCAjGiB,uBAAuB;sCAQrB,yBAAyB;8CAQjB,uBAAuB;qCAOhC,wBAAwB;8CAWf,uBAAuB;2CAO1B,uBAAuB;mDAelE,uBAAuB;sCAiBe,yBAAyB;CAgDjE,CAAC;AAWF,eAAe,cAAc,CAAC"}
|
|
@@ -1,13 +1,36 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { ChevronLeft, ChevronRight } from 'lucide-react';
|
|
4
|
+
import LDDataCalendarBase from '../../components/LDDataCalendar/LDDataCalendarBase.js';
|
|
4
5
|
import cn from '../../utils/cn.js';
|
|
5
|
-
import LDDataCalendarBase from './LDDataCalendarBase.js';
|
|
6
6
|
const navButtonClass = 'flex items-center justify-center rounded-full size-[30px] bg-neutral100 hover:bg-mono400 text-neutral500 hover:text-neutral900 ld-transition cursor-pointer';
|
|
7
|
+
/** 달력의 월과 선택 상태를 관리하는 Styled Compound 루트입니다. */
|
|
8
|
+
const Root = ({ className, ...props }) => (_jsx(LDDataCalendarBase.Root, { className: cn('w-full select-none', className), ...props }));
|
|
9
|
+
/** 월 이동 버튼과 현재 월 제목을 배치하는 헤더입니다. */
|
|
10
|
+
const Header = ({ className, ...props }) => (_jsx("div", { className: cn('mb-md flex items-center justify-between', className), ...props }));
|
|
11
|
+
/** 이전 달로 이동하는 버튼입니다. 기본 접근성 이름은 `이전 달`입니다. */
|
|
12
|
+
const Prev = ({ children, className, ...props }) => (_jsx(LDDataCalendarBase.Prev, { className: cn(navButtonClass, className), ...props, children: children === undefined ? _jsx(ChevronLeft, { size: 15, "aria-hidden": true }) : children }));
|
|
13
|
+
/** 현재 표시 중인 월 제목입니다. */
|
|
14
|
+
const Title = ({ className, ...props }) => (_jsx(LDDataCalendarBase.Title, { className: cn('flex justify-center display32 bold mobile:display20', className), ...props }));
|
|
15
|
+
/** 다음 달로 이동하는 버튼입니다. 기본 접근성 이름은 `다음 달`입니다. */
|
|
16
|
+
const Next = ({ children, className, ...props }) => (_jsx(LDDataCalendarBase.Next, { className: cn(navButtonClass, className), ...props, children: children === undefined ? _jsx(ChevronRight, { size: 16, "aria-hidden": true }) : children }));
|
|
17
|
+
/** 요일과 날짜 셀을 7열로 렌더링하는 그리드입니다. */
|
|
18
|
+
const Grid = ({ weekdayClassName, ...props }) => (_jsx(LDDataCalendarBase.Grid, { weekdayClassName: cn('py-[10px] display14 text-mono500 mobile:py-1 mobile:display12', weekdayClassName), ...props }));
|
|
19
|
+
/** 날짜와 해당 날짜의 데이터를 표시하는 셀입니다. */
|
|
20
|
+
const Cell = ({ className, dateClassName, ...props }) => (_jsx(LDDataCalendarBase.Cell, { className: cn('flex min-h-[100px] flex-col gap-[15px] py-[10px] data-outside:*:text-mono400 mobile:min-h-13 mobile:gap-1 mobile:py-1', 'ld-transition data-selectable:cursor-pointer data-selectable:rounded-[5px] data-selectable:hover:bg-mono100', 'data-[selected=true]:bg-tintBlue data-[selected=true]:hover:bg-tintBlue', className), dateClassName: cn('self-start display16 leading-none font-normal data-outside:font-normal data-outside:text-mono400 data-weekend:text-danger600 data-outside:data-weekend:text-danger400 mobile:display12', dateClassName), ...props }));
|
|
21
|
+
/** 선택한 날짜의 상세 내용을 표시하는 모바일 영역입니다. */
|
|
22
|
+
const Detail = ({ className, ...props }) => (_jsx(LDDataCalendarBase.Detail, { className: cn('mt-md hidden rounded-[10px] bg-mono50 p-md mobile:block', className), ...props }));
|
|
7
23
|
/**
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* 날짜별 데이터는 `renderCell`, 선택 상세는 `renderDetail`로 주입한다.
|
|
24
|
+
* 일반적인 데이터 달력 구성을 제공하는 Styled Single 컴포넌트입니다.
|
|
25
|
+
* 날짜별 데이터는 `renderCell`, 선택 상세는 `renderDetail`로 주입합니다.
|
|
11
26
|
*/
|
|
12
|
-
const LDDataCalendar = ({ className, defaultMonth, onMonthChange, selectable, defaultSelectedDate, onSelectDate, weekdays, renderCell, renderDetail, }) => (_jsxs(
|
|
27
|
+
const LDDataCalendar = ({ className, defaultMonth, onMonthChange, selectable, defaultSelectedDate, onSelectDate, weekdays, renderCell, renderDetail, }) => (_jsxs(Root, { className: className, defaultMonth: defaultMonth, onMonthChange: onMonthChange, selectable: selectable, defaultSelectedDate: defaultSelectedDate, onSelectDate: onSelectDate, children: [_jsxs(Header, { children: [_jsx(Prev, {}), _jsx(Title, {}), _jsx(Next, {})] }), _jsx(Grid, { weekdays: weekdays, renderCell: (date, _i, isOutside) => (_jsx(Cell, { date: date, isOutside: isOutside, children: renderCell?.(date, isOutside) }, date.format('YYYY-MM-DD'))) }), renderDetail && _jsx(Detail, { children: renderDetail })] }));
|
|
28
|
+
LDDataCalendar.Root = Root;
|
|
29
|
+
LDDataCalendar.Header = Header;
|
|
30
|
+
LDDataCalendar.Prev = Prev;
|
|
31
|
+
LDDataCalendar.Title = Title;
|
|
32
|
+
LDDataCalendar.Next = Next;
|
|
33
|
+
LDDataCalendar.Grid = Grid;
|
|
34
|
+
LDDataCalendar.Cell = Cell;
|
|
35
|
+
LDDataCalendar.Detail = Detail;
|
|
13
36
|
export default LDDataCalendar;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Dayjs } from 'dayjs';
|
|
2
|
-
import type
|
|
2
|
+
import { type ComponentPropsWithoutRef, type ReactNode } from 'react';
|
|
3
3
|
interface DataCalendarContextType {
|
|
4
4
|
month: Dayjs;
|
|
5
5
|
changeMonth: (delta: number) => void;
|
|
@@ -21,14 +21,10 @@ interface RootProps {
|
|
|
21
21
|
/** 선택 변경 시 호출 */
|
|
22
22
|
onSelectDate?: (date: Dayjs) => void;
|
|
23
23
|
}
|
|
24
|
-
interface TitleProps {
|
|
25
|
-
className?: string;
|
|
24
|
+
interface TitleProps extends Omit<ComponentPropsWithoutRef<'span'>, 'children'> {
|
|
26
25
|
format?: string;
|
|
27
26
|
}
|
|
28
|
-
|
|
29
|
-
children?: ReactNode;
|
|
30
|
-
className?: string;
|
|
31
|
-
}
|
|
27
|
+
type NavButtonProps = Omit<ComponentPropsWithoutRef<'button'>, 'type' | 'onClick'>;
|
|
32
28
|
interface GridProps {
|
|
33
29
|
renderCell: (date: Dayjs, index: number, isOutside: boolean) => ReactNode;
|
|
34
30
|
weekdays?: string[];
|
|
@@ -50,9 +46,9 @@ interface DetailProps {
|
|
|
50
46
|
}
|
|
51
47
|
declare const LDDataCalendarBase: {
|
|
52
48
|
Root: ({ children, className, defaultMonth, onMonthChange, selectable, defaultSelectedDate, onSelectDate, }: RootProps) => import("react/jsx-runtime").JSX.Element;
|
|
53
|
-
Title: ({
|
|
54
|
-
Prev: ({ children,
|
|
55
|
-
Next: ({ children,
|
|
49
|
+
Title: ({ format, "aria-live": ariaLive, ...props }: TitleProps) => import("react/jsx-runtime").JSX.Element;
|
|
50
|
+
Prev: ({ children, "aria-label": ariaLabel, ...props }: NavButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
51
|
+
Next: ({ children, "aria-label": ariaLabel, ...props }: NavButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
56
52
|
Grid: ({ renderCell, weekdays, className, weekdayClassName, }: GridProps) => import("react/jsx-runtime").JSX.Element;
|
|
57
53
|
Cell: ({ date, isOutside, children, className, dateClassName, }: CellProps) => import("react/jsx-runtime").JSX.Element;
|
|
58
54
|
Detail: ({ children, className }: DetailProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LDDataCalendarBase.d.ts","sourceRoot":"","sources":["../../../src/components/LDDataCalendar/LDDataCalendarBase.tsx"],"names":[],"mappings":"AAEA,OAAc,EAAE,KAAK,KAAK,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"LDDataCalendarBase.d.ts","sourceRoot":"","sources":["../../../src/components/LDDataCalendar/LDDataCalendarBase.tsx"],"names":[],"mappings":"AAEA,OAAc,EAAE,KAAK,KAAK,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EACL,KAAK,wBAAwB,EAG7B,KAAK,SAAS,EAGf,MAAM,OAAO,CAAC;AAIf,UAAU,uBAAuB;IAC/B,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,8DAA8D;IAC9D,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,oDAAoD;IACpD,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;CACpC;AAID,eAAO,MAAM,sBAAsB,+BAOlC,CAAC;AAIF,UAAU,SAAS;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACvC,6CAA6C;IAC7C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe;IACf,mBAAmB,CAAC,EAAE,KAAK,CAAC;IAC5B,iBAAiB;IACjB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;CACtC;AA6CD,UAAU,UAAW,SAAQ,IAAI,CAC/B,wBAAwB,CAAC,MAAM,CAAC,EAChC,UAAU,CACX;IACC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAiBD,KAAK,cAAc,GAAG,IAAI,CACxB,wBAAwB,CAAC,QAAQ,CAAC,EAClC,MAAM,GAAG,SAAS,CACnB,CAAC;AA0CF,UAAU,SAAS;IACjB,UAAU,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,SAAS,CAAC;IAC1E,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAgDD,UAAU,SAAS;IACjB,IAAI,EAAE,KAAK,CAAC;IACZ,uCAAuC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAoDD,UAAU,WAAW;IACnB,wCAAwC;IACxC,QAAQ,EAAE,CAAC,YAAY,EAAE,KAAK,GAAG,IAAI,KAAK,SAAS,CAAC;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AASD,QAAA,MAAM,kBAAkB;iHAnOrB,SAAS;yDA8CT,UAAU;4DAoBV,cAAc;4DAkBd,cAAc;mEA8Bd,SAAS;qEAwDT,SAAS;sCAkD6B,WAAW;CAOsB,CAAC;AAE3E,eAAe,kBAAkB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import dayjs from 'dayjs';
|
|
4
|
-
import { createContext, useContext, useState } from 'react';
|
|
4
|
+
import { createContext, useContext, useState, } from 'react';
|
|
5
5
|
const DataCalendarContext = createContext(null);
|
|
6
6
|
export const useDataCalendarContext = () => {
|
|
7
7
|
const ctx = useContext(DataCalendarContext);
|
|
@@ -28,17 +28,17 @@ const Root = ({ children, className, defaultMonth, onMonthChange, selectable = f
|
|
|
28
28
|
selectDate: selectable ? selectDate : undefined,
|
|
29
29
|
}, children: _jsx("div", { className: className, children: children }) }));
|
|
30
30
|
};
|
|
31
|
-
const Title = ({
|
|
31
|
+
const Title = ({ format = 'YYYY년 M월', 'aria-live': ariaLive = 'polite', ...props }) => {
|
|
32
32
|
const { month } = useDataCalendarContext();
|
|
33
|
-
return _jsx("span", {
|
|
33
|
+
return (_jsx("span", { ...props, "aria-live": ariaLive, children: month.format(format) }));
|
|
34
34
|
};
|
|
35
|
-
const Prev = ({ children,
|
|
35
|
+
const Prev = ({ children, 'aria-label': ariaLabel = '이전 달', ...props }) => {
|
|
36
36
|
const { changeMonth } = useDataCalendarContext();
|
|
37
|
-
return (_jsx("button", { type: "button", onClick: () => changeMonth(-1),
|
|
37
|
+
return (_jsx("button", { ...props, type: "button", "aria-label": ariaLabel, onClick: () => changeMonth(-1), children: children }));
|
|
38
38
|
};
|
|
39
|
-
const Next = ({ children,
|
|
39
|
+
const Next = ({ children, 'aria-label': ariaLabel = '다음 달', ...props }) => {
|
|
40
40
|
const { changeMonth } = useDataCalendarContext();
|
|
41
|
-
return (_jsx("button", { type: "button", onClick: () => changeMonth(1),
|
|
41
|
+
return (_jsx("button", { ...props, type: "button", "aria-label": ariaLabel, onClick: () => changeMonth(1), children: children }));
|
|
42
42
|
};
|
|
43
43
|
// ── Grid ──
|
|
44
44
|
const DEFAULT_WEEKDAYS = ['일', '월', '화', '수', '목', '금', '토'];
|