@gcsa/console-react 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/dist/ConsoleHeader.d.ts +9 -0
- package/dist/ConsoleHeader.js +21 -0
- package/dist/ConsoleHeader.js.map +1 -0
- package/dist/ConsolePage.d.ts +8 -0
- package/dist/ConsolePage.js +14 -0
- package/dist/ConsolePage.js.map +1 -0
- package/dist/ConsoleShell.d.ts +23 -0
- package/dist/ConsoleShell.js +133 -0
- package/dist/ConsoleShell.js.map +1 -0
- package/dist/ConsoleSidebar.d.ts +11 -0
- package/dist/ConsoleSidebar.js +52 -0
- package/dist/ConsoleSidebar.js.map +1 -0
- package/dist/GcsaAlert.d.ts +9 -0
- package/dist/GcsaAlert.js +24 -0
- package/dist/GcsaAlert.js.map +1 -0
- package/dist/GcsaAutoComplete.d.ts +15 -0
- package/dist/GcsaAutoComplete.js +106 -0
- package/dist/GcsaAutoComplete.js.map +1 -0
- package/dist/GcsaAvatar.d.ts +8 -0
- package/dist/GcsaAvatar.js +13 -0
- package/dist/GcsaAvatar.js.map +1 -0
- package/dist/GcsaBadge.d.ts +7 -0
- package/dist/GcsaBadge.js +8 -0
- package/dist/GcsaBadge.js.map +1 -0
- package/dist/GcsaBrandMark.d.ts +4 -0
- package/dist/GcsaBrandMark.js +21 -0
- package/dist/GcsaBrandMark.js.map +1 -0
- package/dist/GcsaBreadcrumb.d.ts +9 -0
- package/dist/GcsaBreadcrumb.js +20 -0
- package/dist/GcsaBreadcrumb.js.map +1 -0
- package/dist/GcsaButton.d.ts +8 -0
- package/dist/GcsaButton.js +38 -0
- package/dist/GcsaButton.js.map +1 -0
- package/dist/GcsaCalendar.d.ts +11 -0
- package/dist/GcsaCalendar.js +35 -0
- package/dist/GcsaCalendar.js.map +1 -0
- package/dist/GcsaCard.d.ts +8 -0
- package/dist/GcsaCard.js +11 -0
- package/dist/GcsaCard.js.map +1 -0
- package/dist/GcsaCascader.d.ts +14 -0
- package/dist/GcsaCascader.js +91 -0
- package/dist/GcsaCascader.js.map +1 -0
- package/dist/GcsaChatPanel.d.ts +43 -0
- package/dist/GcsaChatPanel.js +180 -0
- package/dist/GcsaChatPanel.js.map +1 -0
- package/dist/GcsaCheckbox.d.ts +11 -0
- package/dist/GcsaCheckbox.js +45 -0
- package/dist/GcsaCheckbox.js.map +1 -0
- package/dist/GcsaCollapse.d.ts +16 -0
- package/dist/GcsaCollapse.js +20 -0
- package/dist/GcsaCollapse.js.map +1 -0
- package/dist/GcsaConfigProvider.d.ts +13 -0
- package/dist/GcsaConfigProvider.js +68 -0
- package/dist/GcsaConfigProvider.js.map +1 -0
- package/dist/GcsaDataTable.d.ts +119 -0
- package/dist/GcsaDataTable.js +508 -0
- package/dist/GcsaDataTable.js.map +1 -0
- package/dist/GcsaDatePicker.d.ts +16 -0
- package/dist/GcsaDatePicker.js +211 -0
- package/dist/GcsaDatePicker.js.map +1 -0
- package/dist/GcsaDateRangePicker.d.ts +17 -0
- package/dist/GcsaDateRangePicker.js +222 -0
- package/dist/GcsaDateRangePicker.js.map +1 -0
- package/dist/GcsaDateTimePicker.d.ts +13 -0
- package/dist/GcsaDateTimePicker.js +300 -0
- package/dist/GcsaDateTimePicker.js.map +1 -0
- package/dist/GcsaDescriptions.d.ts +9 -0
- package/dist/GcsaDescriptions.js +11 -0
- package/dist/GcsaDescriptions.js.map +1 -0
- package/dist/GcsaDivider.d.ts +4 -0
- package/dist/GcsaDivider.js +8 -0
- package/dist/GcsaDivider.js.map +1 -0
- package/dist/GcsaDrawer.d.ts +15 -0
- package/dist/GcsaDrawer.js +68 -0
- package/dist/GcsaDrawer.js.map +1 -0
- package/dist/GcsaDropdown.d.ts +20 -0
- package/dist/GcsaDropdown.js +46 -0
- package/dist/GcsaDropdown.js.map +1 -0
- package/dist/GcsaEmpty.d.ts +9 -0
- package/dist/GcsaEmpty.js +16 -0
- package/dist/GcsaEmpty.js.map +1 -0
- package/dist/GcsaField.d.ts +11 -0
- package/dist/GcsaField.js +26 -0
- package/dist/GcsaField.js.map +1 -0
- package/dist/GcsaForm.d.ts +13 -0
- package/dist/GcsaForm.js +60 -0
- package/dist/GcsaForm.js.map +1 -0
- package/dist/GcsaFormField.d.ts +16 -0
- package/dist/GcsaFormField.js +39 -0
- package/dist/GcsaFormField.js.map +1 -0
- package/dist/GcsaIcon.d.ts +7 -0
- package/dist/GcsaIcon.js +17 -0
- package/dist/GcsaIcon.js.map +1 -0
- package/dist/GcsaImagePreview.d.ts +8 -0
- package/dist/GcsaImagePreview.js +18 -0
- package/dist/GcsaImagePreview.js.map +1 -0
- package/dist/GcsaInput.d.ts +13 -0
- package/dist/GcsaInput.js +76 -0
- package/dist/GcsaInput.js.map +1 -0
- package/dist/GcsaInputGroup.d.ts +11 -0
- package/dist/GcsaInputGroup.js +27 -0
- package/dist/GcsaInputGroup.js.map +1 -0
- package/dist/GcsaInputNumber.d.ts +18 -0
- package/dist/GcsaInputNumber.js +108 -0
- package/dist/GcsaInputNumber.js.map +1 -0
- package/dist/GcsaLoading.d.ts +24 -0
- package/dist/GcsaLoading.js +101 -0
- package/dist/GcsaLoading.js.map +1 -0
- package/dist/GcsaLoadingMask.d.ts +8 -0
- package/dist/GcsaLoadingMask.js +39 -0
- package/dist/GcsaLoadingMask.js.map +1 -0
- package/dist/GcsaMarkdownRenderer.d.ts +6 -0
- package/dist/GcsaMarkdownRenderer.js +32 -0
- package/dist/GcsaMarkdownRenderer.js.map +1 -0
- package/dist/GcsaMenu.d.ts +16 -0
- package/dist/GcsaMenu.js +241 -0
- package/dist/GcsaMenu.js.map +1 -0
- package/dist/GcsaModal.d.ts +10 -0
- package/dist/GcsaModal.js +45 -0
- package/dist/GcsaModal.js.map +1 -0
- package/dist/GcsaMultiSelect.d.ts +23 -0
- package/dist/GcsaMultiSelect.js +149 -0
- package/dist/GcsaMultiSelect.js.map +1 -0
- package/dist/GcsaPagination.d.ts +17 -0
- package/dist/GcsaPagination.js +108 -0
- package/dist/GcsaPagination.js.map +1 -0
- package/dist/GcsaPopconfirm.d.ts +18 -0
- package/dist/GcsaPopconfirm.js +68 -0
- package/dist/GcsaPopconfirm.js.map +1 -0
- package/dist/GcsaPopover.d.ts +30 -0
- package/dist/GcsaPopover.js +65 -0
- package/dist/GcsaPopover.js.map +1 -0
- package/dist/GcsaPopoverClose.d.ts +6 -0
- package/dist/GcsaPopoverClose.js +9 -0
- package/dist/GcsaPopoverClose.js.map +1 -0
- package/dist/GcsaProgress.d.ts +5 -0
- package/dist/GcsaProgress.js +18 -0
- package/dist/GcsaProgress.js.map +1 -0
- package/dist/GcsaRadioGroup.d.ts +9 -0
- package/dist/GcsaRadioGroup.js +37 -0
- package/dist/GcsaRadioGroup.js.map +1 -0
- package/dist/GcsaResult.d.ts +9 -0
- package/dist/GcsaResult.js +14 -0
- package/dist/GcsaResult.js.map +1 -0
- package/dist/GcsaRow.d.ts +7 -0
- package/dist/GcsaRow.js +8 -0
- package/dist/GcsaRow.js.map +1 -0
- package/dist/GcsaSelect.d.ts +20 -0
- package/dist/GcsaSelect.js +117 -0
- package/dist/GcsaSelect.js.map +1 -0
- package/dist/GcsaSkeleton.d.ts +6 -0
- package/dist/GcsaSkeleton.js +19 -0
- package/dist/GcsaSkeleton.js.map +1 -0
- package/dist/GcsaSpace.d.ts +7 -0
- package/dist/GcsaSpace.js +14 -0
- package/dist/GcsaSpace.js.map +1 -0
- package/dist/GcsaSpin.d.ts +7 -0
- package/dist/GcsaSpin.js +16 -0
- package/dist/GcsaSpin.js.map +1 -0
- package/dist/GcsaStatistic.d.ts +8 -0
- package/dist/GcsaStatistic.js +11 -0
- package/dist/GcsaStatistic.js.map +1 -0
- package/dist/GcsaSteps.d.ts +10 -0
- package/dist/GcsaSteps.js +54 -0
- package/dist/GcsaSteps.js.map +1 -0
- package/dist/GcsaSwitch.d.ts +11 -0
- package/dist/GcsaSwitch.js +36 -0
- package/dist/GcsaSwitch.js.map +1 -0
- package/dist/GcsaTabs.d.ts +15 -0
- package/dist/GcsaTabs.js +39 -0
- package/dist/GcsaTabs.js.map +1 -0
- package/dist/GcsaTag.d.ts +7 -0
- package/dist/GcsaTag.js +9 -0
- package/dist/GcsaTag.js.map +1 -0
- package/dist/GcsaTextarea.d.ts +13 -0
- package/dist/GcsaTextarea.js +76 -0
- package/dist/GcsaTextarea.js.map +1 -0
- package/dist/GcsaTimePicker.d.ts +12 -0
- package/dist/GcsaTimePicker.js +221 -0
- package/dist/GcsaTimePicker.js.map +1 -0
- package/dist/GcsaTimeline.d.ts +5 -0
- package/dist/GcsaTimeline.js +19 -0
- package/dist/GcsaTimeline.js.map +1 -0
- package/dist/GcsaToastStack.d.ts +11 -0
- package/dist/GcsaToastStack.js +45 -0
- package/dist/GcsaToastStack.js.map +1 -0
- package/dist/GcsaTooltip.d.ts +17 -0
- package/dist/GcsaTooltip.js +43 -0
- package/dist/GcsaTooltip.js.map +1 -0
- package/dist/GcsaTransfer.d.ts +11 -0
- package/dist/GcsaTransfer.js +95 -0
- package/dist/GcsaTransfer.js.map +1 -0
- package/dist/GcsaTree.d.ts +17 -0
- package/dist/GcsaTree.js +38 -0
- package/dist/GcsaTree.js.map +1 -0
- package/dist/GcsaTypography.d.ts +8 -0
- package/dist/GcsaTypography.js +14 -0
- package/dist/GcsaTypography.js.map +1 -0
- package/dist/GcsaUpload.d.ts +24 -0
- package/dist/GcsaUpload.js +146 -0
- package/dist/GcsaUpload.js.map +1 -0
- package/dist/hooks/gcsaFormTypes.d.ts +7 -0
- package/dist/hooks/useDocumentThemeSync.d.ts +3 -0
- package/dist/hooks/useDocumentThemeSync.js +7 -0
- package/dist/hooks/useDocumentThemeSync.js.map +1 -0
- package/dist/hooks/useGcsaComponentSize.d.ts +5 -0
- package/dist/hooks/useGcsaComponentSize.js +21 -0
- package/dist/hooks/useGcsaComponentSize.js.map +1 -0
- package/dist/hooks/useGcsaFormField.d.ts +26 -0
- package/dist/hooks/useGcsaFormField.js +47 -0
- package/dist/hooks/useGcsaFormField.js.map +1 -0
- package/dist/hooks/useGcsaFormSchema.d.ts +7 -0
- package/dist/hooks/useGcsaFormSchema.js +6 -0
- package/dist/hooks/useGcsaFormSchema.js.map +1 -0
- package/dist/hooks/useGcsaLocale.d.ts +4 -0
- package/dist/hooks/useGcsaLocale.js +15 -0
- package/dist/hooks/useGcsaLocale.js.map +1 -0
- package/dist/hooks/useGcsaPopupZIndex.d.ts +6 -0
- package/dist/hooks/useGcsaPopupZIndex.js +18 -0
- package/dist/hooks/useGcsaPopupZIndex.js.map +1 -0
- package/dist/hooks/useGcsaTextCount.d.ts +16 -0
- package/dist/hooks/useGcsaTextCount.js +16 -0
- package/dist/hooks/useGcsaTextCount.js.map +1 -0
- package/dist/hooks/useGcsaTheme.d.ts +7 -0
- package/dist/hooks/useGcsaTheme.js +19 -0
- package/dist/hooks/useGcsaTheme.js.map +1 -0
- package/dist/hooks/useGcsaZIndex.d.ts +13 -0
- package/dist/hooks/useGcsaZIndex.js +37 -0
- package/dist/hooks/useGcsaZIndex.js.map +1 -0
- package/dist/hooks/useMessage.d.ts +6 -0
- package/dist/hooks/useOverlayZIndex.d.ts +8 -0
- package/dist/hooks/useOverlayZIndex.js +14 -0
- package/dist/hooks/useOverlayZIndex.js.map +1 -0
- package/dist/hooks/usePreventHiddenInputScroll.d.ts +13 -0
- package/dist/hooks/usePreventHiddenInputScroll.js +124 -0
- package/dist/hooks/usePreventHiddenInputScroll.js.map +1 -0
- package/dist/icons/iconNames.d.ts +7 -0
- package/dist/icons/iconNames.js +24 -0
- package/dist/icons/iconNames.js.map +1 -0
- package/dist/icons/index.d.ts +2 -0
- package/dist/icons/registry.d.ts +3 -0
- package/dist/icons/registry.js +58 -0
- package/dist/icons/registry.js.map +1 -0
- package/dist/icons/svg/alert.svg.js +9 -0
- package/dist/icons/svg/alert.svg.js.map +1 -0
- package/dist/icons/svg/assets.svg.js +9 -0
- package/dist/icons/svg/assets.svg.js.map +1 -0
- package/dist/icons/svg/chat.svg.js +8 -0
- package/dist/icons/svg/chat.svg.js.map +1 -0
- package/dist/icons/svg/check.svg.js +8 -0
- package/dist/icons/svg/check.svg.js.map +1 -0
- package/dist/icons/svg/chevron-down.svg.js +8 -0
- package/dist/icons/svg/chevron-down.svg.js.map +1 -0
- package/dist/icons/svg/chevron-left.svg.js +8 -0
- package/dist/icons/svg/chevron-left.svg.js.map +1 -0
- package/dist/icons/svg/chevron-right.svg.js +8 -0
- package/dist/icons/svg/chevron-right.svg.js.map +1 -0
- package/dist/icons/svg/chevron-up.svg.js +8 -0
- package/dist/icons/svg/chevron-up.svg.js.map +1 -0
- package/dist/icons/svg/close.svg.js +6 -0
- package/dist/icons/svg/close.svg.js.map +1 -0
- package/dist/icons/svg/dashboard.svg.js +8 -0
- package/dist/icons/svg/dashboard.svg.js.map +1 -0
- package/dist/icons/svg/menu.svg.js +8 -0
- package/dist/icons/svg/menu.svg.js.map +1 -0
- package/dist/icons/svg/plus.svg.js +6 -0
- package/dist/icons/svg/plus.svg.js.map +1 -0
- package/dist/icons/svg/result-empty.svg.js +6 -0
- package/dist/icons/svg/result-empty.svg.js.map +1 -0
- package/dist/icons/svg/settings.svg.js +8 -0
- package/dist/icons/svg/settings.svg.js.map +1 -0
- package/dist/icons/svg/users.svg.js +11 -0
- package/dist/icons/svg/users.svg.js.map +1 -0
- package/dist/index.d.ts +151 -0
- package/dist/index.js +166 -0
- package/dist/index.js.map +1 -0
- package/dist/style.css +8028 -0
- package/dist/utils/gcsaDateValue.d.ts +25 -0
- package/dist/utils/gcsaDateValue.js +60 -0
- package/dist/utils/gcsaDateValue.js.map +1 -0
- package/dist/utils/gcsaTableColumns.d.ts +19 -0
- package/dist/utils/gcsaTableColumns.js +43 -0
- package/dist/utils/gcsaTableColumns.js.map +1 -0
- package/dist/utils/preserveDrawerScroll.d.ts +2 -0
- package/dist/utils/preserveDrawerScroll.js +13 -0
- package/dist/utils/preserveDrawerScroll.js.map +1 -0
- package/dist/utils/zodValidators.d.ts +21 -0
- package/dist/utils/zodValidators.js +35 -0
- package/dist/utils/zodValidators.js.map +1 -0
- package/package.json +58 -0
- package/src/ConsoleHeader.tsx +24 -0
- package/src/ConsolePage.tsx +22 -0
- package/src/ConsoleShell.tsx +248 -0
- package/src/ConsoleSidebar.tsx +61 -0
- package/src/GcsaAlert.tsx +29 -0
- package/src/GcsaAutoComplete.tsx +163 -0
- package/src/GcsaAvatar.tsx +21 -0
- package/src/GcsaBadge.tsx +15 -0
- package/src/GcsaBrandMark.tsx +18 -0
- package/src/GcsaBreadcrumb.tsx +35 -0
- package/src/GcsaButton.tsx +44 -0
- package/src/GcsaCalendar.tsx +14 -0
- package/src/GcsaCard.tsx +21 -0
- package/src/GcsaCascader.tsx +121 -0
- package/src/GcsaChatPanel.tsx +320 -0
- package/src/GcsaCheckbox.tsx +55 -0
- package/src/GcsaCollapse.tsx +23 -0
- package/src/GcsaConfigProvider.tsx +121 -0
- package/src/GcsaDataTable.tsx +779 -0
- package/src/GcsaDatePicker.tsx +284 -0
- package/src/GcsaDateRangePicker.tsx +310 -0
- package/src/GcsaDateTimePicker.tsx +407 -0
- package/src/GcsaDescriptions.tsx +22 -0
- package/src/GcsaDivider.tsx +7 -0
- package/src/GcsaDrawer.tsx +87 -0
- package/src/GcsaDropdown.tsx +84 -0
- package/src/GcsaEmpty.tsx +27 -0
- package/src/GcsaField.tsx +50 -0
- package/src/GcsaForm.tsx +82 -0
- package/src/GcsaFormField.tsx +67 -0
- package/src/GcsaIcon.tsx +21 -0
- package/src/GcsaImagePreview.tsx +30 -0
- package/src/GcsaInput.tsx +87 -0
- package/src/GcsaInputGroup.tsx +32 -0
- package/src/GcsaInputNumber.tsx +155 -0
- package/src/GcsaLoading.ts +206 -0
- package/src/GcsaLoadingMask.tsx +53 -0
- package/src/GcsaMarkdownRenderer.tsx +40 -0
- package/src/GcsaMenu.tsx +340 -0
- package/src/GcsaModal.tsx +68 -0
- package/src/GcsaMultiSelect.tsx +246 -0
- package/src/GcsaPagination.tsx +194 -0
- package/src/GcsaPopconfirm.tsx +104 -0
- package/src/GcsaPopover.tsx +131 -0
- package/src/GcsaPopoverClose.tsx +11 -0
- package/src/GcsaProgress.tsx +18 -0
- package/src/GcsaRadioGroup.tsx +42 -0
- package/src/GcsaResult.tsx +23 -0
- package/src/GcsaRow.tsx +13 -0
- package/src/GcsaSelect.tsx +186 -0
- package/src/GcsaSkeleton.tsx +19 -0
- package/src/GcsaSpace.tsx +17 -0
- package/src/GcsaSpin.tsx +25 -0
- package/src/GcsaStatistic.tsx +17 -0
- package/src/GcsaSteps.tsx +73 -0
- package/src/GcsaSwitch.tsx +45 -0
- package/src/GcsaTabs.tsx +53 -0
- package/src/GcsaTag.tsx +16 -0
- package/src/GcsaTextarea.tsx +87 -0
- package/src/GcsaTimePicker.tsx +298 -0
- package/src/GcsaTimeline.tsx +27 -0
- package/src/GcsaToastStack.tsx +67 -0
- package/src/GcsaTooltip.tsx +75 -0
- package/src/GcsaTransfer.tsx +129 -0
- package/src/GcsaTree.tsx +43 -0
- package/src/GcsaTypography.tsx +24 -0
- package/src/GcsaUpload.tsx +206 -0
- package/src/hooks/gcsaFormTypes.ts +23 -0
- package/src/hooks/useDocumentThemeSync.ts +6 -0
- package/src/hooks/useGcsaComponentSize.ts +24 -0
- package/src/hooks/useGcsaFormField.ts +49 -0
- package/src/hooks/useGcsaFormSchema.ts +6 -0
- package/src/hooks/useGcsaLocale.ts +16 -0
- package/src/hooks/useGcsaPopupZIndex.ts +23 -0
- package/src/hooks/useGcsaTextCount.ts +44 -0
- package/src/hooks/useGcsaTheme.ts +19 -0
- package/src/hooks/useGcsaZIndex.ts +60 -0
- package/src/hooks/useMessage.ts +7 -0
- package/src/hooks/useOverlayZIndex.ts +23 -0
- package/src/hooks/usePreventHiddenInputScroll.ts +233 -0
- package/src/icons/iconNames.ts +27 -0
- package/src/icons/index.ts +8 -0
- package/src/icons/registry.ts +38 -0
- package/src/icons/svg/alert.svg +4 -0
- package/src/icons/svg/assets.svg +4 -0
- package/src/icons/svg/chat.svg +3 -0
- package/src/icons/svg/check.svg +3 -0
- package/src/icons/svg/chevron-down.svg +3 -0
- package/src/icons/svg/chevron-left.svg +3 -0
- package/src/icons/svg/chevron-right.svg +3 -0
- package/src/icons/svg/chevron-up.svg +3 -0
- package/src/icons/svg/close.svg +1 -0
- package/src/icons/svg/dashboard.svg +3 -0
- package/src/icons/svg/menu.svg +3 -0
- package/src/icons/svg/plus.svg +1 -0
- package/src/icons/svg/result-empty.svg +1 -0
- package/src/icons/svg/settings.svg +3 -0
- package/src/icons/svg/users.svg +6 -0
- package/src/index.ts +166 -0
- package/src/utils/gcsaDateValue.ts +99 -0
- package/src/utils/gcsaTableColumns.ts +97 -0
- package/src/utils/preserveDrawerScroll.ts +20 -0
- package/src/utils/zodValidators.ts +45 -0
- package/src/vite-env.d.ts +6 -0
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import { jsxs as l, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo as N, useCallback as b } from "react";
|
|
3
|
+
import { parseDate as T, DatePicker as a } from "@ark-ui/react/date-picker";
|
|
4
|
+
import { Portal as O } from "@ark-ui/react/portal";
|
|
5
|
+
import { getGcsaLocaleMessages as S, getGcsaStartOfWeek as z, createGcsaPopupPositioning as W } from "@gcsa/console-core";
|
|
6
|
+
import { GcsaIcon as k } from "./GcsaIcon.js";
|
|
7
|
+
import { GcsaSelect as B } from "./GcsaSelect.js";
|
|
8
|
+
import { useGcsaLocale as H } from "./hooks/useGcsaLocale.js";
|
|
9
|
+
import { gcsaDateRangeToDateValues as Y, gcsaNormalizeDateBoundary as w, gcsaDatePickerFormat as E, gcsaDatePickerParse as I, gcsaDateValuesToRange as j, gcsaDatePickerCellsToOptions as F } from "./utils/gcsaDateValue.js";
|
|
10
|
+
function x({
|
|
11
|
+
dp: s,
|
|
12
|
+
monthOffset: g,
|
|
13
|
+
weekDays: h,
|
|
14
|
+
showPrev: r,
|
|
15
|
+
showNext: m,
|
|
16
|
+
navLabels: i
|
|
17
|
+
}) {
|
|
18
|
+
const p = s.getOffset({ months: g }), _ = p.weeks;
|
|
19
|
+
return /* @__PURE__ */ l("div", { className: "gcsa-date-range-picker__panel", children: [
|
|
20
|
+
/* @__PURE__ */ l("div", { className: "gcsa-date-range-picker__panel-header", children: [
|
|
21
|
+
r ? /* @__PURE__ */ e(
|
|
22
|
+
a.PrevTrigger,
|
|
23
|
+
{
|
|
24
|
+
className: "gcsa-date-picker__nav gcsa-focus-ring",
|
|
25
|
+
"aria-label": i.prevMonth,
|
|
26
|
+
children: /* @__PURE__ */ e(k, { name: "chevronLeft", size: "sm" })
|
|
27
|
+
}
|
|
28
|
+
) : /* @__PURE__ */ e("span", { className: "gcsa-date-range-picker__nav-spacer", "aria-hidden": "true" }),
|
|
29
|
+
/* @__PURE__ */ e("div", { className: "gcsa-date-range-picker__panel-label", children: p.visibleRangeText.start }),
|
|
30
|
+
m ? /* @__PURE__ */ e(
|
|
31
|
+
a.NextTrigger,
|
|
32
|
+
{
|
|
33
|
+
className: "gcsa-date-picker__nav gcsa-focus-ring",
|
|
34
|
+
"aria-label": i.nextMonth,
|
|
35
|
+
children: /* @__PURE__ */ e(k, { name: "chevronLeft", size: "sm", className: "gcsa-date-picker__nav-icon--next" })
|
|
36
|
+
}
|
|
37
|
+
) : /* @__PURE__ */ e("span", { className: "gcsa-date-range-picker__nav-spacer", "aria-hidden": "true" })
|
|
38
|
+
] }),
|
|
39
|
+
/* @__PURE__ */ l(a.Table, { className: "gcsa-date-picker__table", children: [
|
|
40
|
+
/* @__PURE__ */ e(a.TableHead, { children: /* @__PURE__ */ e(a.TableRow, { children: h.map((o, u) => /* @__PURE__ */ e(
|
|
41
|
+
a.TableHeader,
|
|
42
|
+
{
|
|
43
|
+
className: "gcsa-date-picker__weekday",
|
|
44
|
+
children: o.short
|
|
45
|
+
},
|
|
46
|
+
o.short ?? u
|
|
47
|
+
)) }) }),
|
|
48
|
+
/* @__PURE__ */ e(a.TableBody, { children: _.map((o, u) => /* @__PURE__ */ e(a.TableRow, { children: o.map((d) => /* @__PURE__ */ e(a.TableCell, { value: d, className: "gcsa-date-picker__cell", children: /* @__PURE__ */ e(a.TableCellTrigger, { className: "gcsa-date-picker__day gcsa-focus-ring", children: d.day }) }, d.toString())) }, u)) })
|
|
49
|
+
] })
|
|
50
|
+
] });
|
|
51
|
+
}
|
|
52
|
+
function $({
|
|
53
|
+
dp: s,
|
|
54
|
+
messages: g
|
|
55
|
+
}) {
|
|
56
|
+
const h = s.getMonthsGrid({ columns: 3 });
|
|
57
|
+
return /* @__PURE__ */ l("div", { className: "gcsa-date-range-picker__panel gcsa-date-range-picker__panel--month", children: [
|
|
58
|
+
/* @__PURE__ */ l("div", { className: "gcsa-date-range-picker__panel-header", children: [
|
|
59
|
+
/* @__PURE__ */ e(
|
|
60
|
+
a.PrevTrigger,
|
|
61
|
+
{
|
|
62
|
+
className: "gcsa-date-picker__nav gcsa-focus-ring",
|
|
63
|
+
"aria-label": g.prevYear,
|
|
64
|
+
children: /* @__PURE__ */ e(k, { name: "chevronLeft", size: "sm" })
|
|
65
|
+
}
|
|
66
|
+
),
|
|
67
|
+
/* @__PURE__ */ e("div", { className: "gcsa-date-picker__selects gcsa-date-range-picker__year-select", children: /* @__PURE__ */ e("div", { className: "gcsa-date-picker__filter gcsa-date-picker__filter--year", children: /* @__PURE__ */ e(
|
|
68
|
+
B,
|
|
69
|
+
{
|
|
70
|
+
value: String(s.focusedValue.year),
|
|
71
|
+
options: F(s.getYears()),
|
|
72
|
+
portalled: !1,
|
|
73
|
+
sameWidth: !1,
|
|
74
|
+
listMaxHeight: 240,
|
|
75
|
+
listHintThreshold: 100,
|
|
76
|
+
onValueChange: (r) => s.focusYear(Number(r))
|
|
77
|
+
}
|
|
78
|
+
) }) }),
|
|
79
|
+
/* @__PURE__ */ e(
|
|
80
|
+
a.NextTrigger,
|
|
81
|
+
{
|
|
82
|
+
className: "gcsa-date-picker__nav gcsa-focus-ring",
|
|
83
|
+
"aria-label": g.nextYear,
|
|
84
|
+
children: /* @__PURE__ */ e(k, { name: "chevronLeft", size: "sm", className: "gcsa-date-picker__nav-icon--next" })
|
|
85
|
+
}
|
|
86
|
+
)
|
|
87
|
+
] }),
|
|
88
|
+
/* @__PURE__ */ e(a.Table, { className: "gcsa-date-picker__table gcsa-date-picker__table--month", columns: 3, children: /* @__PURE__ */ e(a.TableBody, { children: h.map((r, m) => /* @__PURE__ */ e(a.TableRow, { children: r.map((i) => /* @__PURE__ */ e(a.TableCell, { value: i.value, className: "gcsa-date-picker__cell", children: /* @__PURE__ */ e(a.TableCellTrigger, { className: "gcsa-date-picker__month gcsa-focus-ring", children: i.label }) }, i.value)) }, m)) }) })
|
|
89
|
+
] });
|
|
90
|
+
}
|
|
91
|
+
function ae({
|
|
92
|
+
value: s,
|
|
93
|
+
placeholderStart: g,
|
|
94
|
+
placeholderEnd: h,
|
|
95
|
+
picker: r = "date",
|
|
96
|
+
locale: m,
|
|
97
|
+
disabled: i,
|
|
98
|
+
invalid: p,
|
|
99
|
+
min: _,
|
|
100
|
+
max: o,
|
|
101
|
+
className: u,
|
|
102
|
+
onValueChange: d
|
|
103
|
+
}) {
|
|
104
|
+
const P = H(), f = m ?? P, t = S(f).datePicker, D = z(f), n = r === "month", M = g ?? (n ? t.placeholderStartMonth : t.placeholderStart), y = h ?? (n ? t.placeholderEndMonth : t.placeholderEnd), V = N(() => Y(s, r), [s, r]), C = N(
|
|
105
|
+
() => _ ? T(w(_, r)) : void 0,
|
|
106
|
+
[_, r]
|
|
107
|
+
), G = N(
|
|
108
|
+
() => o ? T(w(o, r)) : void 0,
|
|
109
|
+
[o, r]
|
|
110
|
+
), L = b(
|
|
111
|
+
(c, v) => E(c, v, r),
|
|
112
|
+
[r]
|
|
113
|
+
), R = b(
|
|
114
|
+
(c, v) => I(c, v, r),
|
|
115
|
+
[r]
|
|
116
|
+
);
|
|
117
|
+
return /* @__PURE__ */ l(
|
|
118
|
+
a.Root,
|
|
119
|
+
{
|
|
120
|
+
value: V,
|
|
121
|
+
locale: f,
|
|
122
|
+
startOfWeek: D,
|
|
123
|
+
positioning: W({ fitViewport: !0 }),
|
|
124
|
+
selectionMode: "range",
|
|
125
|
+
numOfMonths: n ? 1 : 2,
|
|
126
|
+
openOnClick: !0,
|
|
127
|
+
closeOnSelect: !0,
|
|
128
|
+
disabled: i,
|
|
129
|
+
invalid: p,
|
|
130
|
+
min: C,
|
|
131
|
+
max: G,
|
|
132
|
+
minView: n ? "month" : void 0,
|
|
133
|
+
maxView: n ? "month" : void 0,
|
|
134
|
+
defaultView: n ? "month" : void 0,
|
|
135
|
+
format: L,
|
|
136
|
+
parse: R,
|
|
137
|
+
className: u,
|
|
138
|
+
onValueChange: (c) => {
|
|
139
|
+
d == null || d(j(c.value, r));
|
|
140
|
+
},
|
|
141
|
+
children: [
|
|
142
|
+
/* @__PURE__ */ l(
|
|
143
|
+
a.Control,
|
|
144
|
+
{
|
|
145
|
+
className: "gcsa-date-range-picker__control gcsa-date-picker__control",
|
|
146
|
+
"data-invalid": p || void 0,
|
|
147
|
+
children: [
|
|
148
|
+
/* @__PURE__ */ e(
|
|
149
|
+
a.Input,
|
|
150
|
+
{
|
|
151
|
+
index: 0,
|
|
152
|
+
className: "gcsa-date-picker__input gcsa-input",
|
|
153
|
+
placeholder: M
|
|
154
|
+
}
|
|
155
|
+
),
|
|
156
|
+
/* @__PURE__ */ e("span", { className: "gcsa-date-range-picker__separator", "aria-hidden": "true", children: t.rangeSeparator }),
|
|
157
|
+
/* @__PURE__ */ e(
|
|
158
|
+
a.Input,
|
|
159
|
+
{
|
|
160
|
+
index: 1,
|
|
161
|
+
className: "gcsa-date-picker__input gcsa-input",
|
|
162
|
+
placeholder: y
|
|
163
|
+
}
|
|
164
|
+
),
|
|
165
|
+
/* @__PURE__ */ e(
|
|
166
|
+
a.Trigger,
|
|
167
|
+
{
|
|
168
|
+
className: "gcsa-date-picker__trigger gcsa-focus-ring",
|
|
169
|
+
"aria-label": t.openCalendar,
|
|
170
|
+
children: /* @__PURE__ */ l("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
|
|
171
|
+
/* @__PURE__ */ e("rect", { x: "2", y: "3", width: "12", height: "11", rx: "1.5", stroke: "currentColor", strokeWidth: "1.2" }),
|
|
172
|
+
/* @__PURE__ */ e(
|
|
173
|
+
"path",
|
|
174
|
+
{
|
|
175
|
+
d: "M2 6.5h12M5.5 1.5v2M10.5 1.5v2",
|
|
176
|
+
stroke: "currentColor",
|
|
177
|
+
strokeWidth: "1.2",
|
|
178
|
+
strokeLinecap: "round"
|
|
179
|
+
}
|
|
180
|
+
)
|
|
181
|
+
] })
|
|
182
|
+
}
|
|
183
|
+
)
|
|
184
|
+
]
|
|
185
|
+
}
|
|
186
|
+
),
|
|
187
|
+
/* @__PURE__ */ e(O, { children: /* @__PURE__ */ e(a.Positioner, { className: "gcsa-date-picker__positioner", children: /* @__PURE__ */ e(
|
|
188
|
+
a.Content,
|
|
189
|
+
{
|
|
190
|
+
className: `gcsa-date-range-picker__content gcsa-date-picker__content gcsa-ui-surface${n ? " gcsa-date-range-picker__content--month" : ""}`,
|
|
191
|
+
children: /* @__PURE__ */ e(a.View, { view: n ? "month" : "day", children: /* @__PURE__ */ e(a.Context, { children: (c) => n ? /* @__PURE__ */ e($, { dp: c, messages: t }) : /* @__PURE__ */ l("div", { className: "gcsa-date-range-picker__panels", children: [
|
|
192
|
+
/* @__PURE__ */ e(
|
|
193
|
+
x,
|
|
194
|
+
{
|
|
195
|
+
dp: c,
|
|
196
|
+
monthOffset: 0,
|
|
197
|
+
weekDays: c.weekDays,
|
|
198
|
+
showPrev: !0,
|
|
199
|
+
navLabels: t
|
|
200
|
+
}
|
|
201
|
+
),
|
|
202
|
+
/* @__PURE__ */ e(
|
|
203
|
+
x,
|
|
204
|
+
{
|
|
205
|
+
dp: c,
|
|
206
|
+
monthOffset: 1,
|
|
207
|
+
weekDays: c.weekDays,
|
|
208
|
+
showNext: !0,
|
|
209
|
+
navLabels: t
|
|
210
|
+
}
|
|
211
|
+
)
|
|
212
|
+
] }) }) })
|
|
213
|
+
}
|
|
214
|
+
) }) })
|
|
215
|
+
]
|
|
216
|
+
}
|
|
217
|
+
);
|
|
218
|
+
}
|
|
219
|
+
export {
|
|
220
|
+
ae as GcsaDateRangePicker
|
|
221
|
+
};
|
|
222
|
+
//# sourceMappingURL=GcsaDateRangePicker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GcsaDateRangePicker.js","sources":["../src/GcsaDateRangePicker.tsx"],"sourcesContent":["import { useCallback, useMemo } from 'react';\nimport { DatePicker, parseDate, type UseDatePickerContext } from '@ark-ui/react/date-picker';\nimport { Portal } from '@ark-ui/react/portal';\nimport {\n getGcsaLocaleMessages,\n getGcsaStartOfWeek,\n createGcsaPopupPositioning,\n type GcsaConsoleLocale,\n type GcsaDatePickerMode,\n type GcsaDateRangeValue,\n type GcsaMonthRangeValue\n} from '@gcsa/console-core';\nimport { GcsaIcon } from './GcsaIcon';\nimport { GcsaSelect } from './GcsaSelect';\nimport { useGcsaLocale } from './hooks/useGcsaLocale';\nimport {\n gcsaDatePickerCellsToOptions,\n gcsaDatePickerFormat,\n gcsaDatePickerParse,\n gcsaDateRangeToDateValues,\n gcsaDateValuesToRange,\n gcsaNormalizeDateBoundary\n} from './utils/gcsaDateValue';\n\nexport type GcsaDateRangePickerProps = {\n value?: GcsaDateRangeValue | GcsaMonthRangeValue;\n placeholderStart?: string;\n placeholderEnd?: string;\n /** 选择粒度:`date` 为 YYYY-MM-DD,`month` 为 YYYY-MM */\n picker?: GcsaDatePickerMode;\n /** 语言;未传时读取 GcsaConfigProvider */\n locale?: GcsaConsoleLocale;\n disabled?: boolean;\n invalid?: boolean;\n min?: string;\n max?: string;\n className?: string;\n onValueChange?: (value: GcsaDateRangeValue | GcsaMonthRangeValue) => void;\n};\n\ntype DatePickerContext = UseDatePickerContext;\n\nfunction GcsaDateRangeDayPanel({\n dp,\n monthOffset,\n weekDays,\n showPrev,\n showNext,\n navLabels\n}: {\n dp: DatePickerContext;\n monthOffset: number;\n weekDays: DatePickerContext['weekDays'];\n showPrev?: boolean;\n showNext?: boolean;\n navLabels: { prevMonth: string; nextMonth: string };\n}) {\n const offset = dp.getOffset({ months: monthOffset });\n const weeks = offset.weeks;\n\n return (\n <div className=\"gcsa-date-range-picker__panel\">\n <div className=\"gcsa-date-range-picker__panel-header\">\n {showPrev ? (\n <DatePicker.PrevTrigger\n className=\"gcsa-date-picker__nav gcsa-focus-ring\"\n aria-label={navLabels.prevMonth}\n >\n <GcsaIcon name=\"chevronLeft\" size=\"sm\" />\n </DatePicker.PrevTrigger>\n ) : (\n <span className=\"gcsa-date-range-picker__nav-spacer\" aria-hidden=\"true\" />\n )}\n <div className=\"gcsa-date-range-picker__panel-label\">{offset.visibleRangeText.start}</div>\n {showNext ? (\n <DatePicker.NextTrigger\n className=\"gcsa-date-picker__nav gcsa-focus-ring\"\n aria-label={navLabels.nextMonth}\n >\n <GcsaIcon name=\"chevronLeft\" size=\"sm\" className=\"gcsa-date-picker__nav-icon--next\" />\n </DatePicker.NextTrigger>\n ) : (\n <span className=\"gcsa-date-range-picker__nav-spacer\" aria-hidden=\"true\" />\n )}\n </div>\n <DatePicker.Table className=\"gcsa-date-picker__table\">\n <DatePicker.TableHead>\n <DatePicker.TableRow>\n {weekDays.map((weekDay, weekDayIndex) => (\n <DatePicker.TableHeader\n key={weekDay.short ?? weekDayIndex}\n className=\"gcsa-date-picker__weekday\"\n >\n {weekDay.short}\n </DatePicker.TableHeader>\n ))}\n </DatePicker.TableRow>\n </DatePicker.TableHead>\n <DatePicker.TableBody>\n {weeks.map((week, weekIndex) => (\n <DatePicker.TableRow key={weekIndex}>\n {week.map(day => (\n <DatePicker.TableCell key={day.toString()} value={day} className=\"gcsa-date-picker__cell\">\n <DatePicker.TableCellTrigger className=\"gcsa-date-picker__day gcsa-focus-ring\">\n {day.day}\n </DatePicker.TableCellTrigger>\n </DatePicker.TableCell>\n ))}\n </DatePicker.TableRow>\n ))}\n </DatePicker.TableBody>\n </DatePicker.Table>\n </div>\n );\n}\n\nfunction GcsaDateRangeMonthView({\n dp,\n messages\n}: {\n dp: DatePickerContext;\n messages: ReturnType<typeof getGcsaLocaleMessages>['datePicker'];\n}) {\n const monthsGrid = dp.getMonthsGrid({ columns: 3 });\n\n return (\n <div className=\"gcsa-date-range-picker__panel gcsa-date-range-picker__panel--month\">\n <div className=\"gcsa-date-range-picker__panel-header\">\n <DatePicker.PrevTrigger\n className=\"gcsa-date-picker__nav gcsa-focus-ring\"\n aria-label={messages.prevYear}\n >\n <GcsaIcon name=\"chevronLeft\" size=\"sm\" />\n </DatePicker.PrevTrigger>\n <div className=\"gcsa-date-picker__selects gcsa-date-range-picker__year-select\">\n <div className=\"gcsa-date-picker__filter gcsa-date-picker__filter--year\">\n <GcsaSelect\n value={String(dp.focusedValue.year)}\n options={gcsaDatePickerCellsToOptions(dp.getYears())}\n portalled={false}\n sameWidth={false}\n listMaxHeight={240}\n listHintThreshold={100}\n onValueChange={v => dp.focusYear(Number(v))}\n />\n </div>\n </div>\n <DatePicker.NextTrigger\n className=\"gcsa-date-picker__nav gcsa-focus-ring\"\n aria-label={messages.nextYear}\n >\n <GcsaIcon name=\"chevronLeft\" size=\"sm\" className=\"gcsa-date-picker__nav-icon--next\" />\n </DatePicker.NextTrigger>\n </div>\n <DatePicker.Table className=\"gcsa-date-picker__table gcsa-date-picker__table--month\" columns={3}>\n <DatePicker.TableBody>\n {monthsGrid.map((row, rowIndex) => (\n <DatePicker.TableRow key={rowIndex}>\n {row.map(month => (\n <DatePicker.TableCell key={month.value} value={month.value} className=\"gcsa-date-picker__cell\">\n <DatePicker.TableCellTrigger className=\"gcsa-date-picker__month gcsa-focus-ring\">\n {month.label}\n </DatePicker.TableCellTrigger>\n </DatePicker.TableCell>\n ))}\n </DatePicker.TableRow>\n ))}\n </DatePicker.TableBody>\n </DatePicker.Table>\n </div>\n );\n}\n\nexport function GcsaDateRangePicker({\n value,\n placeholderStart,\n placeholderEnd,\n picker = 'date',\n locale: localeProp,\n disabled,\n invalid,\n min,\n max,\n className,\n onValueChange\n}: GcsaDateRangePickerProps) {\n const configLocale = useGcsaLocale();\n const resolvedLocale = localeProp ?? configLocale;\n const messages = getGcsaLocaleMessages(resolvedLocale).datePicker;\n const startOfWeek = getGcsaStartOfWeek(resolvedLocale);\n const isMonthPicker = picker === 'month';\n const resolvedPlaceholderStart =\n placeholderStart ?? (isMonthPicker ? messages.placeholderStartMonth : messages.placeholderStart);\n const resolvedPlaceholderEnd =\n placeholderEnd ?? (isMonthPicker ? messages.placeholderEndMonth : messages.placeholderEnd);\n\n const pickerValue = useMemo(() => gcsaDateRangeToDateValues(value, picker), [value, picker]);\n const minValue = useMemo(\n () => (min ? parseDate(gcsaNormalizeDateBoundary(min, picker)!) : undefined),\n [min, picker]\n );\n const maxValue = useMemo(\n () => (max ? parseDate(gcsaNormalizeDateBoundary(max, picker)!) : undefined),\n [max, picker]\n );\n\n const formatValue = useCallback(\n (date: Parameters<typeof gcsaDatePickerFormat>[0], details: Parameters<typeof gcsaDatePickerFormat>[1]) =>\n gcsaDatePickerFormat(date, details, picker),\n [picker]\n );\n const parseValue = useCallback(\n (input: string, details: Parameters<typeof gcsaDatePickerParse>[1]) =>\n gcsaDatePickerParse(input, details, picker),\n [picker]\n );\n\n return (\n <DatePicker.Root\n value={pickerValue}\n locale={resolvedLocale}\n startOfWeek={startOfWeek}\n positioning={createGcsaPopupPositioning({ fitViewport: true })}\n selectionMode=\"range\"\n numOfMonths={isMonthPicker ? 1 : 2}\n openOnClick\n closeOnSelect\n disabled={disabled}\n invalid={invalid}\n min={minValue}\n max={maxValue}\n minView={isMonthPicker ? 'month' : undefined}\n maxView={isMonthPicker ? 'month' : undefined}\n defaultView={isMonthPicker ? 'month' : undefined}\n format={formatValue}\n parse={parseValue}\n className={className}\n onValueChange={details => {\n onValueChange?.(gcsaDateValuesToRange(details.value, picker));\n }}\n >\n <DatePicker.Control\n className=\"gcsa-date-range-picker__control gcsa-date-picker__control\"\n data-invalid={invalid || undefined}\n >\n <DatePicker.Input\n index={0}\n className=\"gcsa-date-picker__input gcsa-input\"\n placeholder={resolvedPlaceholderStart}\n />\n <span className=\"gcsa-date-range-picker__separator\" aria-hidden=\"true\">\n {messages.rangeSeparator}\n </span>\n <DatePicker.Input\n index={1}\n className=\"gcsa-date-picker__input gcsa-input\"\n placeholder={resolvedPlaceholderEnd}\n />\n <DatePicker.Trigger\n className=\"gcsa-date-picker__trigger gcsa-focus-ring\"\n aria-label={messages.openCalendar}\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"2\" y=\"3\" width=\"12\" height=\"11\" rx=\"1.5\" stroke=\"currentColor\" strokeWidth=\"1.2\" />\n <path\n d=\"M2 6.5h12M5.5 1.5v2M10.5 1.5v2\"\n stroke=\"currentColor\"\n strokeWidth=\"1.2\"\n strokeLinecap=\"round\"\n />\n </svg>\n </DatePicker.Trigger>\n </DatePicker.Control>\n <Portal>\n <DatePicker.Positioner className=\"gcsa-date-picker__positioner\">\n <DatePicker.Content\n className={`gcsa-date-range-picker__content gcsa-date-picker__content gcsa-ui-surface${isMonthPicker ? ' gcsa-date-range-picker__content--month' : ''}`}\n >\n <DatePicker.View view={isMonthPicker ? 'month' : 'day'}>\n <DatePicker.Context>\n {dp =>\n isMonthPicker ? (\n <GcsaDateRangeMonthView dp={dp} messages={messages} />\n ) : (\n <div className=\"gcsa-date-range-picker__panels\">\n <GcsaDateRangeDayPanel\n dp={dp}\n monthOffset={0}\n weekDays={dp.weekDays}\n showPrev\n navLabels={messages}\n />\n <GcsaDateRangeDayPanel\n dp={dp}\n monthOffset={1}\n weekDays={dp.weekDays}\n showNext\n navLabels={messages}\n />\n </div>\n )\n }\n </DatePicker.Context>\n </DatePicker.View>\n </DatePicker.Content>\n </DatePicker.Positioner>\n </Portal>\n </DatePicker.Root>\n );\n}\n"],"names":["GcsaDateRangeDayPanel","dp","monthOffset","weekDays","showPrev","showNext","navLabels","offset","weeks","jsxs","jsx","DatePicker","GcsaIcon","weekDay","weekDayIndex","week","weekIndex","day","GcsaDateRangeMonthView","messages","monthsGrid","GcsaSelect","gcsaDatePickerCellsToOptions","v","row","rowIndex","month","GcsaDateRangePicker","value","placeholderStart","placeholderEnd","picker","localeProp","disabled","invalid","min","max","className","onValueChange","configLocale","useGcsaLocale","resolvedLocale","getGcsaLocaleMessages","startOfWeek","getGcsaStartOfWeek","isMonthPicker","resolvedPlaceholderStart","resolvedPlaceholderEnd","pickerValue","useMemo","gcsaDateRangeToDateValues","minValue","parseDate","gcsaNormalizeDateBoundary","maxValue","formatValue","useCallback","date","details","gcsaDatePickerFormat","parseValue","input","gcsaDatePickerParse","createGcsaPopupPositioning","gcsaDateValuesToRange","Portal"],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { GcsaConsoleLocale } from '@gcsa/console-core';
|
|
2
|
+
export type GcsaDateTimePickerProps = {
|
|
3
|
+
value?: string;
|
|
4
|
+
placeholder?: string;
|
|
5
|
+
locale?: GcsaConsoleLocale;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
invalid?: boolean;
|
|
8
|
+
min?: string;
|
|
9
|
+
max?: string;
|
|
10
|
+
className?: string;
|
|
11
|
+
onValueChange?: (value: string) => void;
|
|
12
|
+
};
|
|
13
|
+
export declare function GcsaDateTimePicker({ value, placeholder, locale: localeProp, disabled, invalid, min, max, className, onValueChange }: GcsaDateTimePickerProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
import { jsxs as n, jsx as t, Fragment as ue } from "react/jsx-runtime";
|
|
2
|
+
import { useState as f, useRef as b, useCallback as _, useEffect as ge, useMemo as H } from "react";
|
|
3
|
+
import { parseDate as J, DatePicker as r } from "@ark-ui/react/date-picker";
|
|
4
|
+
import { Portal as pe } from "@ark-ui/react/portal";
|
|
5
|
+
import { getGcsaLocaleMessages as K, getGcsaStartOfWeek as fe, gcsaSplitDateTime as v, gcsaTimePickerScrollTop as F, gcsaJoinDateTime as Q, createGcsaPopupPositioning as _e, gcsaTimePickerScrollIndex as he } from "@gcsa/console-core";
|
|
6
|
+
import { useGcsaLocale as ke } from "./hooks/useGcsaLocale.js";
|
|
7
|
+
import { gcsaStringToDateValues as Se, gcsaNormalizeDateBoundary as X, gcsaDatePickerFormat as De, gcsaDatePickerParse as be, gcsaDateValueToOutputString as ve } from "./utils/gcsaDateValue.js";
|
|
8
|
+
const G = Array.from({ length: 24 }, (i, l) => String(l).padStart(2, "0")), L = Array.from({ length: 60 }, (i, l) => String(l).padStart(2, "0")), R = Array.from({ length: 60 }, (i, l) => String(l).padStart(2, "0"));
|
|
9
|
+
function Ne(i) {
|
|
10
|
+
return `${i.year} - ${String(i.month).padStart(2, "0")}`;
|
|
11
|
+
}
|
|
12
|
+
function Oe({
|
|
13
|
+
value: i,
|
|
14
|
+
placeholder: l,
|
|
15
|
+
locale: Z,
|
|
16
|
+
disabled: Y,
|
|
17
|
+
invalid: A,
|
|
18
|
+
min: W,
|
|
19
|
+
max: z,
|
|
20
|
+
className: ee,
|
|
21
|
+
onValueChange: N
|
|
22
|
+
}) {
|
|
23
|
+
const te = ke(), h = Z ?? te, s = K(h).datePicker, k = K(h), ae = fe(h), re = l ?? s.placeholderDateTime, [T, B] = f(!1), [S, M] = f(""), [d, w] = f("00"), [m, x] = f("00"), [u, C] = f("00"), y = b(null), P = b(null), O = b(null), E = b({}), I = () => `${d}:${m}:${u}`, D = _((e) => {
|
|
24
|
+
const [a = "00", c = "00", o = "00"] = e.split(":");
|
|
25
|
+
w(a.padStart(2, "0")), x(c.padStart(2, "0")), C(o.padStart(2, "0").slice(0, 2));
|
|
26
|
+
}, []), V = _(
|
|
27
|
+
(e = i) => {
|
|
28
|
+
const { date: a, time: c } = v(e);
|
|
29
|
+
M(a), D(c);
|
|
30
|
+
},
|
|
31
|
+
[D, i]
|
|
32
|
+
), p = _(() => {
|
|
33
|
+
requestAnimationFrame(() => {
|
|
34
|
+
y.current && (y.current.scrollTop = F(G.indexOf(d))), P.current && (P.current.scrollTop = F(L.indexOf(m))), O.current && (O.current.scrollTop = F(R.indexOf(u)));
|
|
35
|
+
});
|
|
36
|
+
}, [d, m, u]);
|
|
37
|
+
ge(() => {
|
|
38
|
+
T || V();
|
|
39
|
+
}, [T, V]);
|
|
40
|
+
const ce = H(() => Se(S, "date"), [S]), ne = H(() => {
|
|
41
|
+
const e = X(v(W).date, "date");
|
|
42
|
+
return e ? J(e) : void 0;
|
|
43
|
+
}, [W]), ie = H(() => {
|
|
44
|
+
const e = X(v(z).date, "date");
|
|
45
|
+
return e ? J(e) : void 0;
|
|
46
|
+
}, [z]), oe = _(
|
|
47
|
+
(e, a) => {
|
|
48
|
+
const c = De(e, a, "date");
|
|
49
|
+
return c ? Q(c, I()) : i ?? "";
|
|
50
|
+
},
|
|
51
|
+
[d, m, u, i]
|
|
52
|
+
), se = _(
|
|
53
|
+
(e, a) => {
|
|
54
|
+
const { date: c, time: o } = v(e);
|
|
55
|
+
return o && D(o), be(c, a, "date");
|
|
56
|
+
},
|
|
57
|
+
[D]
|
|
58
|
+
), le = (e) => {
|
|
59
|
+
Y || (B(e.open), e.open && (V(), p()));
|
|
60
|
+
}, j = (e) => {
|
|
61
|
+
w(e), p();
|
|
62
|
+
}, U = (e) => {
|
|
63
|
+
x(e), p();
|
|
64
|
+
}, q = (e) => {
|
|
65
|
+
C(e), p();
|
|
66
|
+
}, $ = (e, a) => {
|
|
67
|
+
clearTimeout(E.current[e]), E.current[e] = setTimeout(() => {
|
|
68
|
+
const c = e === "hour" ? G : e === "minute" ? L : R, o = he(a.scrollTop, c.length), g = c[o];
|
|
69
|
+
e === "hour" && g && j(g), e === "minute" && g && U(g), e === "second" && g && q(g);
|
|
70
|
+
}, 80);
|
|
71
|
+
}, de = () => {
|
|
72
|
+
const e = /* @__PURE__ */ new Date();
|
|
73
|
+
M(
|
|
74
|
+
`${e.getFullYear()}-${String(e.getMonth() + 1).padStart(2, "0")}-${String(e.getDate()).padStart(2, "0")}`
|
|
75
|
+
), w(String(e.getHours()).padStart(2, "0")), x(String(e.getMinutes()).padStart(2, "0")), C(String(e.getSeconds()).padStart(2, "0")), p();
|
|
76
|
+
}, me = () => {
|
|
77
|
+
S && (N == null || N(Q(S, I())), B(!1));
|
|
78
|
+
};
|
|
79
|
+
return /* @__PURE__ */ n(
|
|
80
|
+
r.Root,
|
|
81
|
+
{
|
|
82
|
+
open: T,
|
|
83
|
+
value: ce,
|
|
84
|
+
locale: h,
|
|
85
|
+
startOfWeek: ae,
|
|
86
|
+
positioning: _e({ fitViewport: !0 }),
|
|
87
|
+
closeOnSelect: !1,
|
|
88
|
+
disabled: Y,
|
|
89
|
+
invalid: A,
|
|
90
|
+
min: ne,
|
|
91
|
+
max: ie,
|
|
92
|
+
format: oe,
|
|
93
|
+
parse: se,
|
|
94
|
+
className: ee,
|
|
95
|
+
onOpenChange: le,
|
|
96
|
+
onValueChange: (e) => {
|
|
97
|
+
var a;
|
|
98
|
+
M(ve((a = e.value) == null ? void 0 : a[0], "date"));
|
|
99
|
+
},
|
|
100
|
+
children: [
|
|
101
|
+
/* @__PURE__ */ n(r.Control, { className: "gcsa-date-picker__control", "data-invalid": A || void 0, children: [
|
|
102
|
+
/* @__PURE__ */ t(
|
|
103
|
+
r.Input,
|
|
104
|
+
{
|
|
105
|
+
className: "gcsa-date-picker__input gcsa-input",
|
|
106
|
+
placeholder: re,
|
|
107
|
+
readOnly: !0
|
|
108
|
+
}
|
|
109
|
+
),
|
|
110
|
+
/* @__PURE__ */ t(
|
|
111
|
+
r.Trigger,
|
|
112
|
+
{
|
|
113
|
+
className: "gcsa-date-picker__trigger gcsa-focus-ring",
|
|
114
|
+
"aria-label": s.openCalendar,
|
|
115
|
+
children: /* @__PURE__ */ n("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
|
|
116
|
+
/* @__PURE__ */ t("rect", { x: "2", y: "3", width: "12", height: "11", rx: "1.5", stroke: "currentColor", strokeWidth: "1.2" }),
|
|
117
|
+
/* @__PURE__ */ t(
|
|
118
|
+
"path",
|
|
119
|
+
{
|
|
120
|
+
d: "M2 6.5h12M5.5 1.5v2M10.5 1.5v2",
|
|
121
|
+
stroke: "currentColor",
|
|
122
|
+
strokeWidth: "1.2",
|
|
123
|
+
strokeLinecap: "round"
|
|
124
|
+
}
|
|
125
|
+
)
|
|
126
|
+
] })
|
|
127
|
+
}
|
|
128
|
+
)
|
|
129
|
+
] }),
|
|
130
|
+
/* @__PURE__ */ t(pe, { children: /* @__PURE__ */ t(r.Positioner, { className: "gcsa-date-picker__positioner", children: /* @__PURE__ */ n(r.Content, { className: "gcsa-date-picker__content gcsa-datetime-picker__content gcsa-ui-surface", children: [
|
|
131
|
+
/* @__PURE__ */ n("div", { className: "gcsa-datetime-picker__body", children: [
|
|
132
|
+
/* @__PURE__ */ t("div", { className: "gcsa-datetime-picker__calendar", children: /* @__PURE__ */ t(r.View, { view: "day", children: /* @__PURE__ */ t(r.Context, { children: (e) => /* @__PURE__ */ n(ue, { children: [
|
|
133
|
+
/* @__PURE__ */ n("div", { className: "gcsa-datetime-picker__header", children: [
|
|
134
|
+
/* @__PURE__ */ t(
|
|
135
|
+
"button",
|
|
136
|
+
{
|
|
137
|
+
type: "button",
|
|
138
|
+
className: "gcsa-datetime-picker__nav gcsa-focus-ring",
|
|
139
|
+
"aria-label": s.prevYear,
|
|
140
|
+
onMouseDown: (a) => a.preventDefault(),
|
|
141
|
+
onClick: () => e.focusYear(e.focusedValue.year - 1),
|
|
142
|
+
children: "«"
|
|
143
|
+
}
|
|
144
|
+
),
|
|
145
|
+
/* @__PURE__ */ t(
|
|
146
|
+
r.PrevTrigger,
|
|
147
|
+
{
|
|
148
|
+
className: "gcsa-datetime-picker__nav gcsa-focus-ring",
|
|
149
|
+
"aria-label": s.prevMonth,
|
|
150
|
+
children: "‹"
|
|
151
|
+
}
|
|
152
|
+
),
|
|
153
|
+
/* @__PURE__ */ t("div", { className: "gcsa-datetime-picker__title", children: Ne(e.focusedValue) }),
|
|
154
|
+
/* @__PURE__ */ t(
|
|
155
|
+
r.NextTrigger,
|
|
156
|
+
{
|
|
157
|
+
className: "gcsa-datetime-picker__nav gcsa-focus-ring",
|
|
158
|
+
"aria-label": s.nextMonth,
|
|
159
|
+
children: "›"
|
|
160
|
+
}
|
|
161
|
+
),
|
|
162
|
+
/* @__PURE__ */ t(
|
|
163
|
+
"button",
|
|
164
|
+
{
|
|
165
|
+
type: "button",
|
|
166
|
+
className: "gcsa-datetime-picker__nav gcsa-focus-ring",
|
|
167
|
+
"aria-label": s.nextYear,
|
|
168
|
+
onMouseDown: (a) => a.preventDefault(),
|
|
169
|
+
onClick: () => e.focusYear(e.focusedValue.year + 1),
|
|
170
|
+
children: "»"
|
|
171
|
+
}
|
|
172
|
+
)
|
|
173
|
+
] }),
|
|
174
|
+
/* @__PURE__ */ n(r.Table, { className: "gcsa-date-picker__table", children: [
|
|
175
|
+
/* @__PURE__ */ t(r.TableHead, { children: /* @__PURE__ */ t(r.TableRow, { children: e.weekDays.map((a, c) => /* @__PURE__ */ t(
|
|
176
|
+
r.TableHeader,
|
|
177
|
+
{
|
|
178
|
+
className: "gcsa-date-picker__weekday",
|
|
179
|
+
children: a.short
|
|
180
|
+
},
|
|
181
|
+
a.short ?? c
|
|
182
|
+
)) }) }),
|
|
183
|
+
/* @__PURE__ */ t(r.TableBody, { children: e.weeks.map((a, c) => /* @__PURE__ */ t(r.TableRow, { children: a.map((o) => /* @__PURE__ */ t(
|
|
184
|
+
r.TableCell,
|
|
185
|
+
{
|
|
186
|
+
value: o,
|
|
187
|
+
className: "gcsa-date-picker__cell",
|
|
188
|
+
children: /* @__PURE__ */ t(r.TableCellTrigger, { className: "gcsa-date-picker__day gcsa-focus-ring", children: o.day })
|
|
189
|
+
},
|
|
190
|
+
o.toString()
|
|
191
|
+
)) }, c)) })
|
|
192
|
+
] })
|
|
193
|
+
] }) }) }) }),
|
|
194
|
+
/* @__PURE__ */ n("div", { className: "gcsa-datetime-picker__time", children: [
|
|
195
|
+
/* @__PURE__ */ t("div", { className: "gcsa-datetime-picker__time-title", children: s.selectTime }),
|
|
196
|
+
/* @__PURE__ */ n("div", { className: "gcsa-time-picker__spinner gcsa-datetime-picker__spinner", children: [
|
|
197
|
+
/* @__PURE__ */ t(
|
|
198
|
+
"div",
|
|
199
|
+
{
|
|
200
|
+
ref: y,
|
|
201
|
+
className: "gcsa-time-picker__column",
|
|
202
|
+
role: "listbox",
|
|
203
|
+
"aria-label": k.timeHour,
|
|
204
|
+
onScroll: (e) => $("hour", e.currentTarget),
|
|
205
|
+
children: G.map((e) => /* @__PURE__ */ t(
|
|
206
|
+
"button",
|
|
207
|
+
{
|
|
208
|
+
type: "button",
|
|
209
|
+
className: `gcsa-time-picker__cell${e === d ? " gcsa-time-picker__cell--selected" : ""}`,
|
|
210
|
+
role: "option",
|
|
211
|
+
"aria-selected": e === d,
|
|
212
|
+
onMouseDown: (a) => a.preventDefault(),
|
|
213
|
+
onClick: () => j(e),
|
|
214
|
+
children: e
|
|
215
|
+
},
|
|
216
|
+
e
|
|
217
|
+
))
|
|
218
|
+
}
|
|
219
|
+
),
|
|
220
|
+
/* @__PURE__ */ t(
|
|
221
|
+
"div",
|
|
222
|
+
{
|
|
223
|
+
ref: P,
|
|
224
|
+
className: "gcsa-time-picker__column",
|
|
225
|
+
role: "listbox",
|
|
226
|
+
"aria-label": k.timeMinute,
|
|
227
|
+
onScroll: (e) => $("minute", e.currentTarget),
|
|
228
|
+
children: L.map((e) => /* @__PURE__ */ t(
|
|
229
|
+
"button",
|
|
230
|
+
{
|
|
231
|
+
type: "button",
|
|
232
|
+
className: `gcsa-time-picker__cell${e === m ? " gcsa-time-picker__cell--selected" : ""}`,
|
|
233
|
+
role: "option",
|
|
234
|
+
"aria-selected": e === m,
|
|
235
|
+
onMouseDown: (a) => a.preventDefault(),
|
|
236
|
+
onClick: () => U(e),
|
|
237
|
+
children: e
|
|
238
|
+
},
|
|
239
|
+
e
|
|
240
|
+
))
|
|
241
|
+
}
|
|
242
|
+
),
|
|
243
|
+
/* @__PURE__ */ t(
|
|
244
|
+
"div",
|
|
245
|
+
{
|
|
246
|
+
ref: O,
|
|
247
|
+
className: "gcsa-time-picker__column",
|
|
248
|
+
role: "listbox",
|
|
249
|
+
"aria-label": k.timeSecond,
|
|
250
|
+
onScroll: (e) => $("second", e.currentTarget),
|
|
251
|
+
children: R.map((e) => /* @__PURE__ */ t(
|
|
252
|
+
"button",
|
|
253
|
+
{
|
|
254
|
+
type: "button",
|
|
255
|
+
className: `gcsa-time-picker__cell${e === u ? " gcsa-time-picker__cell--selected" : ""}`,
|
|
256
|
+
role: "option",
|
|
257
|
+
"aria-selected": e === u,
|
|
258
|
+
onMouseDown: (a) => a.preventDefault(),
|
|
259
|
+
onClick: () => q(e),
|
|
260
|
+
children: e
|
|
261
|
+
},
|
|
262
|
+
e
|
|
263
|
+
))
|
|
264
|
+
}
|
|
265
|
+
),
|
|
266
|
+
/* @__PURE__ */ t("div", { className: "gcsa-time-picker__selection", "aria-hidden": "true" })
|
|
267
|
+
] })
|
|
268
|
+
] })
|
|
269
|
+
] }),
|
|
270
|
+
/* @__PURE__ */ n("div", { className: "gcsa-datetime-picker__footer", children: [
|
|
271
|
+
/* @__PURE__ */ t(
|
|
272
|
+
"button",
|
|
273
|
+
{
|
|
274
|
+
type: "button",
|
|
275
|
+
className: "gcsa-datetime-picker__now",
|
|
276
|
+
onMouseDown: (e) => e.preventDefault(),
|
|
277
|
+
onClick: de,
|
|
278
|
+
children: s.now
|
|
279
|
+
}
|
|
280
|
+
),
|
|
281
|
+
/* @__PURE__ */ t(
|
|
282
|
+
"button",
|
|
283
|
+
{
|
|
284
|
+
type: "button",
|
|
285
|
+
className: "gcsa-datetime-picker__confirm",
|
|
286
|
+
onMouseDown: (e) => e.preventDefault(),
|
|
287
|
+
onClick: me,
|
|
288
|
+
children: k.confirm
|
|
289
|
+
}
|
|
290
|
+
)
|
|
291
|
+
] })
|
|
292
|
+
] }) }) })
|
|
293
|
+
]
|
|
294
|
+
}
|
|
295
|
+
);
|
|
296
|
+
}
|
|
297
|
+
export {
|
|
298
|
+
Oe as GcsaDateTimePicker
|
|
299
|
+
};
|
|
300
|
+
//# sourceMappingURL=GcsaDateTimePicker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GcsaDateTimePicker.js","sources":["../src/GcsaDateTimePicker.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { DatePicker, parseDate, type DateValue } from '@ark-ui/react/date-picker';\nimport { Portal } from '@ark-ui/react/portal';\nimport {\n createGcsaPopupPositioning,\n gcsaTimePickerScrollIndex,\n gcsaTimePickerScrollTop,\n getGcsaLocaleMessages,\n getGcsaStartOfWeek,\n type GcsaConsoleLocale\n} from '@gcsa/console-core';\nimport { useGcsaLocale } from './hooks/useGcsaLocale';\nimport {\n gcsaDatePickerFormat,\n gcsaDatePickerParse,\n gcsaDateValueToOutputString,\n gcsaJoinDateTime,\n gcsaNormalizeDateBoundary,\n gcsaSplitDateTime,\n gcsaStringToDateValues\n} from './utils/gcsaDateValue';\n\nexport type GcsaDateTimePickerProps = {\n value?: string;\n placeholder?: string;\n locale?: GcsaConsoleLocale;\n disabled?: boolean;\n invalid?: boolean;\n min?: string;\n max?: string;\n className?: string;\n onValueChange?: (value: string) => void;\n};\n\nconst HOURS = Array.from({ length: 24 }, (_, index) => String(index).padStart(2, '0'));\nconst MINUTES = Array.from({ length: 60 }, (_, index) => String(index).padStart(2, '0'));\nconst SECONDS = Array.from({ length: 60 }, (_, index) => String(index).padStart(2, '0'));\n\nfunction formatMonthTitle(value: DateValue) {\n return `${value.year} - ${String(value.month).padStart(2, '0')}`;\n}\n\nexport function GcsaDateTimePicker({\n value,\n placeholder,\n locale: localeProp,\n disabled,\n invalid,\n min,\n max,\n className,\n onValueChange\n}: GcsaDateTimePickerProps) {\n const configLocale = useGcsaLocale();\n const resolvedLocale = localeProp ?? configLocale;\n const messages = getGcsaLocaleMessages(resolvedLocale).datePicker;\n const globalMessages = getGcsaLocaleMessages(resolvedLocale);\n const startOfWeek = getGcsaStartOfWeek(resolvedLocale);\n const resolvedPlaceholder = placeholder ?? messages.placeholderDateTime;\n\n const [open, setOpen] = useState(false);\n const [draftDate, setDraftDate] = useState('');\n const [draftHour, setDraftHour] = useState('00');\n const [draftMinute, setDraftMinute] = useState('00');\n const [draftSecond, setDraftSecond] = useState('00');\n\n const hourColumn = useRef<HTMLDivElement>(null);\n const minuteColumn = useRef<HTMLDivElement>(null);\n const secondColumn = useRef<HTMLDivElement>(null);\n const timers = useRef<{\n hour?: ReturnType<typeof setTimeout>;\n minute?: ReturnType<typeof setTimeout>;\n second?: ReturnType<typeof setTimeout>;\n }>({});\n\n const draftTimeValue = () => `${draftHour}:${draftMinute}:${draftSecond}`;\n\n const applyTimeParts = useCallback((time: string) => {\n const [hour = '00', minute = '00', second = '00'] = time.split(':');\n setDraftHour(hour.padStart(2, '0'));\n setDraftMinute(minute.padStart(2, '0'));\n setDraftSecond(second.padStart(2, '0').slice(0, 2));\n }, []);\n\n const syncDraftFromValue = useCallback(\n (nextValue = value) => {\n const { date, time } = gcsaSplitDateTime(nextValue);\n setDraftDate(date);\n applyTimeParts(time);\n },\n [applyTimeParts, value]\n );\n\n const scrollColumns = useCallback(() => {\n requestAnimationFrame(() => {\n if (hourColumn.current) {\n hourColumn.current.scrollTop = gcsaTimePickerScrollTop(HOURS.indexOf(draftHour));\n }\n if (minuteColumn.current) {\n minuteColumn.current.scrollTop = gcsaTimePickerScrollTop(MINUTES.indexOf(draftMinute));\n }\n if (secondColumn.current) {\n secondColumn.current.scrollTop = gcsaTimePickerScrollTop(SECONDS.indexOf(draftSecond));\n }\n });\n }, [draftHour, draftMinute, draftSecond]);\n\n useEffect(() => {\n if (!open) syncDraftFromValue();\n }, [open, syncDraftFromValue]);\n\n const pickerValue = useMemo(() => gcsaStringToDateValues(draftDate, 'date'), [draftDate]);\n const minDateValue = useMemo(() => {\n const normalized = gcsaNormalizeDateBoundary(gcsaSplitDateTime(min).date, 'date');\n return normalized ? parseDate(normalized) : undefined;\n }, [min]);\n const maxDateValue = useMemo(() => {\n const normalized = gcsaNormalizeDateBoundary(gcsaSplitDateTime(max).date, 'date');\n return normalized ? parseDate(normalized) : undefined;\n }, [max]);\n\n const formatValue = useCallback(\n (date: DateValue, details: { locale: string; timeZone: string }) => {\n const datePart = gcsaDatePickerFormat(date, details, 'date');\n if (!datePart) return value ?? '';\n return gcsaJoinDateTime(datePart, draftTimeValue());\n },\n [draftHour, draftMinute, draftSecond, value]\n );\n\n const parseValue = useCallback(\n (input: string, details: { locale: string; timeZone: string }) => {\n const { date, time } = gcsaSplitDateTime(input);\n if (time) applyTimeParts(time);\n return gcsaDatePickerParse(date, details, 'date');\n },\n [applyTimeParts]\n );\n\n const onOpenChange = (details: { open: boolean }) => {\n if (disabled) return;\n setOpen(details.open);\n if (details.open) {\n syncDraftFromValue();\n scrollColumns();\n }\n };\n\n const selectHour = (hour: string) => {\n setDraftHour(hour);\n scrollColumns();\n };\n\n const selectMinute = (minute: string) => {\n setDraftMinute(minute);\n scrollColumns();\n };\n\n const selectSecond = (second: string) => {\n setDraftSecond(second);\n scrollColumns();\n };\n\n const onColumnScroll = (type: 'hour' | 'minute' | 'second', element: HTMLDivElement) => {\n clearTimeout(timers.current[type]);\n timers.current[type] = setTimeout(() => {\n const values = type === 'hour' ? HOURS : type === 'minute' ? MINUTES : SECONDS;\n const index = gcsaTimePickerScrollIndex(element.scrollTop, values.length);\n const nextValue = values[index];\n if (type === 'hour' && nextValue) selectHour(nextValue);\n if (type === 'minute' && nextValue) selectMinute(nextValue);\n if (type === 'second' && nextValue) selectSecond(nextValue);\n }, 80);\n };\n\n const selectNow = () => {\n const now = new Date();\n setDraftDate(\n `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, '0')}-${String(now.getDate()).padStart(2, '0')}`\n );\n setDraftHour(String(now.getHours()).padStart(2, '0'));\n setDraftMinute(String(now.getMinutes()).padStart(2, '0'));\n setDraftSecond(String(now.getSeconds()).padStart(2, '0'));\n scrollColumns();\n };\n\n const confirm = () => {\n if (!draftDate) return;\n onValueChange?.(gcsaJoinDateTime(draftDate, draftTimeValue()));\n setOpen(false);\n };\n\n return (\n <DatePicker.Root\n open={open}\n value={pickerValue}\n locale={resolvedLocale}\n startOfWeek={startOfWeek}\n positioning={createGcsaPopupPositioning({ fitViewport: true })}\n closeOnSelect={false}\n disabled={disabled}\n invalid={invalid}\n min={minDateValue}\n max={maxDateValue}\n format={formatValue}\n parse={parseValue}\n className={className}\n onOpenChange={onOpenChange}\n onValueChange={details => {\n setDraftDate(gcsaDateValueToOutputString(details.value?.[0], 'date'));\n }}\n >\n <DatePicker.Control className=\"gcsa-date-picker__control\" data-invalid={invalid || undefined}>\n <DatePicker.Input\n className=\"gcsa-date-picker__input gcsa-input\"\n placeholder={resolvedPlaceholder}\n readOnly\n />\n <DatePicker.Trigger\n className=\"gcsa-date-picker__trigger gcsa-focus-ring\"\n aria-label={messages.openCalendar}\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"2\" y=\"3\" width=\"12\" height=\"11\" rx=\"1.5\" stroke=\"currentColor\" strokeWidth=\"1.2\" />\n <path\n d=\"M2 6.5h12M5.5 1.5v2M10.5 1.5v2\"\n stroke=\"currentColor\"\n strokeWidth=\"1.2\"\n strokeLinecap=\"round\"\n />\n </svg>\n </DatePicker.Trigger>\n </DatePicker.Control>\n <Portal>\n <DatePicker.Positioner className=\"gcsa-date-picker__positioner\">\n <DatePicker.Content className=\"gcsa-date-picker__content gcsa-datetime-picker__content gcsa-ui-surface\">\n <div className=\"gcsa-datetime-picker__body\">\n <div className=\"gcsa-datetime-picker__calendar\">\n <DatePicker.View view=\"day\">\n <DatePicker.Context>\n {dp => (\n <>\n <div className=\"gcsa-datetime-picker__header\">\n <button\n type=\"button\"\n className=\"gcsa-datetime-picker__nav gcsa-focus-ring\"\n aria-label={messages.prevYear}\n onMouseDown={event => event.preventDefault()}\n onClick={() => dp.focusYear(dp.focusedValue.year - 1)}\n >\n «\n </button>\n <DatePicker.PrevTrigger\n className=\"gcsa-datetime-picker__nav gcsa-focus-ring\"\n aria-label={messages.prevMonth}\n >\n ‹\n </DatePicker.PrevTrigger>\n <div className=\"gcsa-datetime-picker__title\">\n {formatMonthTitle(dp.focusedValue)}\n </div>\n <DatePicker.NextTrigger\n className=\"gcsa-datetime-picker__nav gcsa-focus-ring\"\n aria-label={messages.nextMonth}\n >\n ›\n </DatePicker.NextTrigger>\n <button\n type=\"button\"\n className=\"gcsa-datetime-picker__nav gcsa-focus-ring\"\n aria-label={messages.nextYear}\n onMouseDown={event => event.preventDefault()}\n onClick={() => dp.focusYear(dp.focusedValue.year + 1)}\n >\n »\n </button>\n </div>\n <DatePicker.Table className=\"gcsa-date-picker__table\">\n <DatePicker.TableHead>\n <DatePicker.TableRow>\n {dp.weekDays.map((weekDay, weekDayIndex) => (\n <DatePicker.TableHeader\n key={weekDay.short ?? weekDayIndex}\n className=\"gcsa-date-picker__weekday\"\n >\n {weekDay.short}\n </DatePicker.TableHeader>\n ))}\n </DatePicker.TableRow>\n </DatePicker.TableHead>\n <DatePicker.TableBody>\n {dp.weeks.map((week, weekIndex) => (\n <DatePicker.TableRow key={weekIndex}>\n {week.map(day => (\n <DatePicker.TableCell\n key={day.toString()}\n value={day}\n className=\"gcsa-date-picker__cell\"\n >\n <DatePicker.TableCellTrigger className=\"gcsa-date-picker__day gcsa-focus-ring\">\n {day.day}\n </DatePicker.TableCellTrigger>\n </DatePicker.TableCell>\n ))}\n </DatePicker.TableRow>\n ))}\n </DatePicker.TableBody>\n </DatePicker.Table>\n </>\n )}\n </DatePicker.Context>\n </DatePicker.View>\n </div>\n <div className=\"gcsa-datetime-picker__time\">\n <div className=\"gcsa-datetime-picker__time-title\">{messages.selectTime}</div>\n <div className=\"gcsa-time-picker__spinner gcsa-datetime-picker__spinner\">\n <div\n ref={hourColumn}\n className=\"gcsa-time-picker__column\"\n role=\"listbox\"\n aria-label={globalMessages.timeHour}\n onScroll={event => onColumnScroll('hour', event.currentTarget)}\n >\n {HOURS.map(hour => (\n <button\n key={hour}\n type=\"button\"\n className={`gcsa-time-picker__cell${hour === draftHour ? ' gcsa-time-picker__cell--selected' : ''}`}\n role=\"option\"\n aria-selected={hour === draftHour}\n onMouseDown={event => event.preventDefault()}\n onClick={() => selectHour(hour)}\n >\n {hour}\n </button>\n ))}\n </div>\n <div\n ref={minuteColumn}\n className=\"gcsa-time-picker__column\"\n role=\"listbox\"\n aria-label={globalMessages.timeMinute}\n onScroll={event => onColumnScroll('minute', event.currentTarget)}\n >\n {MINUTES.map(minute => (\n <button\n key={minute}\n type=\"button\"\n className={`gcsa-time-picker__cell${minute === draftMinute ? ' gcsa-time-picker__cell--selected' : ''}`}\n role=\"option\"\n aria-selected={minute === draftMinute}\n onMouseDown={event => event.preventDefault()}\n onClick={() => selectMinute(minute)}\n >\n {minute}\n </button>\n ))}\n </div>\n <div\n ref={secondColumn}\n className=\"gcsa-time-picker__column\"\n role=\"listbox\"\n aria-label={globalMessages.timeSecond}\n onScroll={event => onColumnScroll('second', event.currentTarget)}\n >\n {SECONDS.map(second => (\n <button\n key={second}\n type=\"button\"\n className={`gcsa-time-picker__cell${second === draftSecond ? ' gcsa-time-picker__cell--selected' : ''}`}\n role=\"option\"\n aria-selected={second === draftSecond}\n onMouseDown={event => event.preventDefault()}\n onClick={() => selectSecond(second)}\n >\n {second}\n </button>\n ))}\n </div>\n <div className=\"gcsa-time-picker__selection\" aria-hidden=\"true\" />\n </div>\n </div>\n </div>\n <div className=\"gcsa-datetime-picker__footer\">\n <button\n type=\"button\"\n className=\"gcsa-datetime-picker__now\"\n onMouseDown={event => event.preventDefault()}\n onClick={selectNow}\n >\n {messages.now}\n </button>\n <button\n type=\"button\"\n className=\"gcsa-datetime-picker__confirm\"\n onMouseDown={event => event.preventDefault()}\n onClick={confirm}\n >\n {globalMessages.confirm}\n </button>\n </div>\n </DatePicker.Content>\n </DatePicker.Positioner>\n </Portal>\n </DatePicker.Root>\n );\n}\n"],"names":["HOURS","_","index","MINUTES","SECONDS","formatMonthTitle","value","GcsaDateTimePicker","placeholder","localeProp","disabled","invalid","min","max","className","onValueChange","configLocale","useGcsaLocale","resolvedLocale","messages","getGcsaLocaleMessages","globalMessages","startOfWeek","getGcsaStartOfWeek","resolvedPlaceholder","open","setOpen","useState","draftDate","setDraftDate","draftHour","setDraftHour","draftMinute","setDraftMinute","draftSecond","setDraftSecond","hourColumn","useRef","minuteColumn","secondColumn","timers","draftTimeValue","applyTimeParts","useCallback","time","hour","minute","second","syncDraftFromValue","nextValue","date","gcsaSplitDateTime","scrollColumns","gcsaTimePickerScrollTop","useEffect","pickerValue","useMemo","gcsaStringToDateValues","minDateValue","normalized","gcsaNormalizeDateBoundary","parseDate","maxDateValue","formatValue","details","datePart","gcsaDatePickerFormat","gcsaJoinDateTime","parseValue","input","gcsaDatePickerParse","onOpenChange","selectHour","selectMinute","selectSecond","onColumnScroll","type","element","values","gcsaTimePickerScrollIndex","selectNow","now","confirm","jsxs","DatePicker","createGcsaPopupPositioning","gcsaDateValueToOutputString","_a","jsx","Portal","Fragment","event","dp","weekDay","weekDayIndex","week","weekIndex","day"],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type GcsaDescriptionsItem = {
|
|
2
|
+
label: string;
|
|
3
|
+
value: string;
|
|
4
|
+
};
|
|
5
|
+
export type GcsaDescriptionsProps = {
|
|
6
|
+
items: GcsaDescriptionsItem[];
|
|
7
|
+
className?: string;
|
|
8
|
+
};
|
|
9
|
+
export declare function GcsaDescriptions({ items, className }: GcsaDescriptionsProps): import("react").JSX.Element;
|