@lobehub/ui 5.63.4 → 5.64.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/es/base-ui/DatePicker/DatePicker.d.mts +7 -2
  2. package/es/base-ui/DatePicker/DatePicker.mjs +13 -83
  3. package/es/base-ui/DatePicker/DatePicker.mjs.map +1 -1
  4. package/es/base-ui/DatePicker/DateRangePicker.d.mts +3 -2
  5. package/es/base-ui/DatePicker/DateRangePicker.mjs +3 -123
  6. package/es/base-ui/DatePicker/DateRangePicker.mjs.map +1 -1
  7. package/es/base-ui/DatePicker/PurePanel.mjs +80 -0
  8. package/es/base-ui/DatePicker/PurePanel.mjs.map +1 -0
  9. package/es/base-ui/DatePicker/RangePicker.mjs +120 -0
  10. package/es/base-ui/DatePicker/RangePicker.mjs.map +1 -0
  11. package/es/base-ui/DatePicker/SinglePicker.mjs +143 -0
  12. package/es/base-ui/DatePicker/SinglePicker.mjs.map +1 -0
  13. package/es/base-ui/DatePicker/generateConfig.mjs +12 -0
  14. package/es/base-ui/DatePicker/generateConfig.mjs.map +1 -0
  15. package/es/base-ui/DatePicker/generatePicker.d.mts +12 -0
  16. package/es/base-ui/DatePicker/generatePicker.mjs +22 -0
  17. package/es/base-ui/DatePicker/generatePicker.mjs.map +1 -0
  18. package/es/base-ui/DatePicker/index.d.mts +4 -3
  19. package/es/base-ui/DatePicker/locale.d.mts +16 -0
  20. package/es/base-ui/DatePicker/locale.mjs +136 -0
  21. package/es/base-ui/DatePicker/locale.mjs.map +1 -0
  22. package/es/base-ui/DatePicker/semantic.mjs +34 -0
  23. package/es/base-ui/DatePicker/semantic.mjs.map +1 -0
  24. package/es/base-ui/DatePicker/style.mjs +990 -139
  25. package/es/base-ui/DatePicker/style.mjs.map +1 -1
  26. package/es/base-ui/DatePicker/type.d.mts +281 -25
  27. package/es/base-ui/DatePicker/usePanelKeyboard.mjs +230 -0
  28. package/es/base-ui/DatePicker/usePanelKeyboard.mjs.map +1 -0
  29. package/es/base-ui/DatePicker/usePickerShared.mjs +136 -0
  30. package/es/base-ui/DatePicker/usePickerShared.mjs.map +1 -0
  31. package/es/base-ui/DatePicker/usePresetActive.mjs +48 -0
  32. package/es/base-ui/DatePicker/usePresetActive.mjs.map +1 -0
  33. package/es/base-ui/Text/style.d.mts +1 -1
  34. package/es/base-ui/index.d.mts +4 -3
  35. package/es/base-ui/index.mjs +3 -1
  36. package/es/i18n/resources/en/datePicker.d.mts +47 -0
  37. package/es/i18n/resources/en/datePicker.mjs +48 -1
  38. package/es/i18n/resources/en/datePicker.mjs.map +1 -1
  39. package/es/i18n/resources/zhCn/datePicker.d.mts +47 -0
  40. package/es/i18n/resources/zhCn/datePicker.mjs +48 -1
  41. package/es/i18n/resources/zhCn/datePicker.mjs.map +1 -1
  42. package/es/i18n/resources/zhCn/index.mjs +1 -1
  43. package/es/utils/styleEngine.mjs +1 -0
  44. package/package.json +2 -1
  45. package/es/base-ui/DatePicker/CalendarPanel.mjs +0 -188
  46. package/es/base-ui/DatePicker/CalendarPanel.mjs.map +0 -1
  47. package/es/base-ui/DatePicker/PickerShell.mjs +0 -43
  48. package/es/base-ui/DatePicker/PickerShell.mjs.map +0 -1
  49. package/es/base-ui/DatePicker/calendar.d.mts +0 -5
  50. package/es/base-ui/DatePicker/calendar.mjs +0 -46
  51. package/es/base-ui/DatePicker/calendar.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SinglePicker.mjs","names":[],"sources":["../../../src/base-ui/DatePicker/SinglePicker.tsx"],"sourcesContent":["'use client';\n\nimport RcPicker from '@rc-component/picker';\nimport type { GenerateConfig } from '@rc-component/picker/generate';\nimport type { PickerMode } from '@rc-component/picker/interface';\nimport { X } from 'lucide-react';\n\nimport Icon from '@/Icon';\nimport { cx } from '@/utils/styleEngine';\n\nimport { usePickerLocale } from './locale';\nimport { PREFIX_CLS } from './style';\nimport type { GeneratedDatePicker, PickerProps, SinglePickerComponent } from './type';\nimport { usePanelKeyboard } from './usePanelKeyboard';\nimport { usePickerShared, withDefault } from './usePickerShared';\nimport { usePresetActive } from './usePresetActive';\n\nconst defaultRemoveIcon = <Icon icon={X} size={10} style={{ strokeWidth: 3 }} />;\n\n/**\n * antd `generateSinglePicker`: DatePicker over `generateConfig`'s date type, plus the\n * pickers whose `picker` is fixed (`DatePicker.WeekPicker`, …, `DatePicker.TimePicker`).\n */\nconst generateSinglePicker = <DateType extends object>(\n generateConfig: GenerateConfig<DateType>,\n) => {\n const getPicker = (presetPicker?: PickerMode, displayName = 'DatePicker') => {\n const Picker = (props: PickerProps<DateType, any>) => {\n const {\n allowClear,\n bordered,\n cellRender,\n changeOnBlur,\n className,\n clearIcon,\n classNames,\n components,\n dateRender,\n defaultOpen,\n defaultPickerValue,\n defaultValue,\n dropdownClassName,\n direction,\n footer,\n getPopupContainer,\n locale: localeOverride,\n max,\n maxDate,\n min,\n minDate,\n mode,\n monthCellRender,\n multiple,\n needConfirm,\n nextIcon,\n onKeyDown,\n onCalendarChange,\n onChange,\n onFocus,\n onOk,\n onOpenChange,\n onPanelChange,\n onPickerValueChange,\n onSelect,\n open,\n picker: pickerProp,\n pickerValue,\n placeholder,\n popupClassName,\n popupStyle,\n prevIcon,\n ref,\n removeIcon,\n renderExtraFooter,\n rootClassName,\n shadow,\n size,\n status,\n styles,\n suffixIcon,\n superNextIcon,\n superPrevIcon,\n transitionName,\n value,\n variant,\n ...rest\n } = props;\n const picker = presetPicker ?? pickerProp ?? 'date';\n const { locale, placeholder: defaultPlaceholder } = usePickerLocale(localeOverride);\n const keyboard = usePanelKeyboard({\n cellRender,\n dateRender,\n defaultOpen,\n defaultPickerValue,\n defaultValue,\n direction,\n generateConfig,\n mode,\n monthCellRender,\n onChange,\n onFocus,\n onOpenChange,\n onPanelChange,\n onPickerValueChange,\n open,\n picker,\n pickerValue,\n value,\n });\n const shared = usePickerShared({\n allowClear,\n bordered,\n changeOnBlur,\n className,\n clearIcon,\n classNames,\n components,\n defaultOpen,\n dropdownClassName,\n generateConfig,\n getPopupContainer,\n max,\n maxDate,\n min,\n minDate,\n needConfirm,\n nextIcon,\n onKeyDown,\n onOpenChange: keyboard.onOpenChange,\n open,\n picker,\n popupClassName,\n popupStyle,\n prevIcon,\n rootClassName: cx(keyboard.scopeClassName, rootClassName),\n semanticProps: props,\n shadow,\n size,\n status,\n styles,\n suffixIcon,\n superNextIcon,\n superPrevIcon,\n transitionName,\n variant,\n });\n\n const presetActive = usePresetActive(\n (rest as any).presets,\n multiple ? undefined : value,\n multiple ? undefined : defaultValue,\n );\n\n return (\n <RcPicker<DateType>\n {...rest}\n {...shared}\n presets={presetActive.presets as any}\n // No footer row by default: Today / Now only when asked for (showNow or the\n // deprecated showToday); showTime + needConfirm still shows OK.\n cellRender={keyboard.cellRender}\n dateRender={dateRender}\n defaultPickerValue={defaultPickerValue as any}\n defaultValue={defaultValue ?? undefined}\n direction={direction}\n locale={locale.lang}\n mode={mode as any}\n monthCellRender={monthCellRender}\n multiple={multiple}\n picker={picker}\n pickerValue={keyboard.pickerValue}\n placeholder={placeholder ?? defaultPlaceholder(picker)}\n ref={ref}\n removeIcon={withDefault(removeIcon, defaultRemoveIcon)}\n renderExtraFooter={renderExtraFooter ?? (footer ? () => footer : undefined)}\n showNow={(rest as any).showNow ?? (rest as any).showToday ?? false}\n value={value as any}\n classNames={\n multiple\n ? {\n ...shared.classNames,\n popup: {\n ...shared.classNames.popup,\n root: cx(shared.classNames.popup.root, `${PREFIX_CLS}-dropdown-multiple`),\n },\n }\n : shared.classNames\n }\n onFocus={keyboard.onFocus}\n onOk={onOk as any}\n onPanelChange={keyboard.onPanelChange}\n onPickerValueChange={keyboard.onPickerValueChange}\n onCalendarChange={\n onCalendarChange || onSelect\n ? (date, dateString, info) => {\n onCalendarChange?.(date, dateString as any, info);\n if (date && !Array.isArray(date)) onSelect?.(date);\n }\n : undefined\n }\n onChange={(...args: any[]) => {\n presetActive.track(args[0]);\n (keyboard.onChange as any)(...args);\n }}\n />\n );\n };\n Picker.displayName = displayName;\n return Picker as SinglePickerComponent<DateType, any>;\n };\n\n return {\n DatePicker: getPicker() as GeneratedDatePicker<DateType>,\n MonthPicker: getPicker('month', 'MonthPicker'),\n QuarterPicker: getPicker('quarter', 'QuarterPicker'),\n TimePicker: getPicker('time', 'TimePicker'),\n WeekPicker: getPicker('week', 'WeekPicker'),\n YearPicker: getPicker('year', 'YearPicker'),\n };\n};\n\nexport default generateSinglePicker;\n"],"mappings":";;;;;;;;;;;;AAiBA,MAAM,oBAAoB,oBAAC,MAAD;CAAM,MAAM;CAAG,MAAM;CAAI,OAAO,EAAE,aAAa,EAAE;AAAI,CAAA;;;;;AAM/E,MAAM,wBACJ,mBACG;CACH,MAAM,aAAa,cAA2B,cAAc,iBAAiB;EAC3E,MAAM,UAAU,UAAsC;GACpD,MAAM,EACJ,YACA,UACA,YACA,cACA,WACA,WACA,YACA,YACA,YACA,aACA,oBACA,cACA,mBACA,WACA,QACA,mBACA,QAAQ,gBACR,KACA,SACA,KACA,SACA,MACA,iBACA,UACA,aACA,UACA,WACA,kBACA,UACA,SACA,MACA,cACA,eACA,qBACA,UACA,MACA,QAAQ,YACR,aACA,aACA,gBACA,YACA,UACA,KACA,YACA,mBACA,eACA,QACA,MACA,QACA,QACA,YACA,eACA,eACA,gBACA,OACA,SACA,GAAG,SACD;GACJ,MAAM,SAAS,gBAAgB,cAAc;GAC7C,MAAM,EAAE,QAAQ,aAAa,uBAAuB,gBAAgB,cAAc;GAClF,MAAM,WAAW,iBAAiB;IAChC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GACF,CAAC;GACD,MAAM,SAAS,gBAAgB;IAC7B;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,cAAc,SAAS;IACvB;IACA;IACA;IACA;IACA;IACA,eAAe,GAAG,SAAS,gBAAgB,aAAa;IACxD,eAAe;IACf;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GACF,CAAC;GAED,MAAM,eAAe,gBAClB,KAAa,SACd,WAAW,KAAA,IAAY,OACvB,WAAW,KAAA,IAAY,YACzB;GAEA,OACE,oBAAC,UAAD;IACE,GAAI;IACJ,GAAI;IACJ,SAAS,aAAa;IAGtB,YAAY,SAAS;IACT;IACQ;IACpB,cAAc,gBAAgB,KAAA;IACnB;IACX,QAAQ,OAAO;IACT;IACW;IACP;IACF;IACR,aAAa,SAAS;IACtB,aAAa,eAAe,mBAAmB,MAAM;IAChD;IACL,YAAY,YAAY,YAAY,iBAAiB;IACrD,mBAAmB,sBAAsB,eAAe,SAAS,KAAA;IACjE,SAAU,KAAa,WAAY,KAAa,aAAa;IACtD;IACP,YACE,WACI;KACE,GAAG,OAAO;KACV,OAAO;MACL,GAAG,OAAO,WAAW;MACrB,MAAM,GAAG,OAAO,WAAW,MAAM,MAAM,GAAG,WAAW,mBAAmB;KAC1E;IACF,IACA,OAAO;IAEb,SAAS,SAAS;IACZ;IACN,eAAe,SAAS;IACxB,qBAAqB,SAAS;IAC9B,kBACE,oBAAoB,YACf,MAAM,YAAY,SAAS;KAC1B,mBAAmB,MAAM,YAAmB,IAAI;KAChD,IAAI,QAAQ,CAAC,MAAM,QAAQ,IAAI,GAAG,WAAW,IAAI;IACnD,IACA,KAAA;IAEN,WAAW,GAAG,SAAgB;KAC5B,aAAa,MAAM,KAAK,EAAE;KAC1B,SAAU,SAAiB,GAAG,IAAI;IACpC;GACD,CAAA;EAEL;EACA,OAAO,cAAc;EACrB,OAAO;CACT;CAEA,OAAO;EACL,YAAY,UAAU;EACtB,aAAa,UAAU,SAAS,aAAa;EAC7C,eAAe,UAAU,WAAW,eAAe;EACnD,YAAY,UAAU,QAAQ,YAAY;EAC1C,YAAY,UAAU,QAAQ,YAAY;EAC1C,YAAY,UAAU,QAAQ,YAAY;CAC5C;AACF"}
@@ -0,0 +1,12 @@
1
+ import dayjsGenerateConfig from "@rc-component/picker/generate/dayjs";
2
+ //#region src/base-ui/DatePicker/generateConfig.ts
3
+ /**
4
+ * The dayjs adapter rc-picker reads and writes values through — the same one antd uses.
5
+ * Importing it extends dayjs with customParseFormat / advancedFormat / weekday /
6
+ * localeData / weekOfYear / weekYear.
7
+ */
8
+ const generateConfig = dayjsGenerateConfig;
9
+ //#endregion
10
+ export { generateConfig as default };
11
+
12
+ //# sourceMappingURL=generateConfig.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateConfig.mjs","names":[],"sources":["../../../src/base-ui/DatePicker/generateConfig.ts"],"sourcesContent":["import dayjsGenerateConfig from '@rc-component/picker/generate/dayjs';\nimport type { Dayjs } from 'dayjs';\n\n/**\n * The dayjs adapter rc-picker reads and writes values through — the same one antd uses.\n * Importing it extends dayjs with customParseFormat / advancedFormat / weekday /\n * localeData / weekOfYear / weekYear.\n */\nconst generateConfig = dayjsGenerateConfig;\n\nexport type { Dayjs };\n\nexport default generateConfig;\n"],"mappings":";;;;;;;AAQA,MAAM,iBAAiB"}
@@ -0,0 +1,12 @@
1
+ import { GeneratedDatePicker } from "./type.mjs";
2
+ import { GenerateConfig } from "@rc-component/picker/generate";
3
+ //#region src/base-ui/DatePicker/generatePicker.d.ts
4
+ /**
5
+ * antd `generatePicker`: a DatePicker (with `RangePicker`, `WeekPicker`, `MonthPicker`,
6
+ * `YearPicker`, `QuarterPicker` and `TimePicker` statics) over another date library, given
7
+ * its rc-picker `generateConfig` — e.g. `@rc-component/picker/generate/dateFns`.
8
+ */
9
+ declare const generatePicker: <DateType extends object>(generateConfig: GenerateConfig<DateType>) => GeneratedDatePicker<DateType>;
10
+ //#endregion
11
+ export { generatePicker as default };
12
+ //# sourceMappingURL=generatePicker.d.mts.map
@@ -0,0 +1,22 @@
1
+ import generateRangePicker from "./RangePicker.mjs";
2
+ import generateSinglePicker from "./SinglePicker.mjs";
3
+ //#region src/base-ui/DatePicker/generatePicker.tsx
4
+ /**
5
+ * antd `generatePicker`: a DatePicker (with `RangePicker`, `WeekPicker`, `MonthPicker`,
6
+ * `YearPicker`, `QuarterPicker` and `TimePicker` statics) over another date library, given
7
+ * its rc-picker `generateConfig` — e.g. `@rc-component/picker/generate/dateFns`.
8
+ */
9
+ const generatePicker = (generateConfig) => {
10
+ const { DatePicker, WeekPicker, MonthPicker, YearPicker, QuarterPicker, TimePicker } = generateSinglePicker(generateConfig);
11
+ DatePicker.WeekPicker = WeekPicker;
12
+ DatePicker.MonthPicker = MonthPicker;
13
+ DatePicker.YearPicker = YearPicker;
14
+ DatePicker.QuarterPicker = QuarterPicker;
15
+ DatePicker.TimePicker = TimePicker;
16
+ DatePicker.RangePicker = generateRangePicker(generateConfig);
17
+ return DatePicker;
18
+ };
19
+ //#endregion
20
+ export { generatePicker as default };
21
+
22
+ //# sourceMappingURL=generatePicker.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generatePicker.mjs","names":[],"sources":["../../../src/base-ui/DatePicker/generatePicker.tsx"],"sourcesContent":["import type { GenerateConfig } from '@rc-component/picker/generate';\n\nimport generateRangePicker from './RangePicker';\nimport generateSinglePicker from './SinglePicker';\nimport type { GeneratedDatePicker } from './type';\n\n/**\n * antd `generatePicker`: a DatePicker (with `RangePicker`, `WeekPicker`, `MonthPicker`,\n * `YearPicker`, `QuarterPicker` and `TimePicker` statics) over another date library, given\n * its rc-picker `generateConfig` — e.g. `@rc-component/picker/generate/dateFns`.\n */\nconst generatePicker = <DateType extends object>(\n generateConfig: GenerateConfig<DateType>,\n): GeneratedDatePicker<DateType> => {\n const { DatePicker, WeekPicker, MonthPicker, YearPicker, QuarterPicker, TimePicker } =\n generateSinglePicker(generateConfig);\n\n DatePicker.WeekPicker = WeekPicker;\n DatePicker.MonthPicker = MonthPicker;\n DatePicker.YearPicker = YearPicker;\n DatePicker.QuarterPicker = QuarterPicker;\n DatePicker.TimePicker = TimePicker;\n DatePicker.RangePicker = generateRangePicker(generateConfig);\n\n return DatePicker;\n};\n\nexport default generatePicker;\n"],"mappings":";;;;;;;;AAWA,MAAM,kBACJ,mBACkC;CAClC,MAAM,EAAE,YAAY,YAAY,aAAa,YAAY,eAAe,eACtE,qBAAqB,cAAc;CAErC,WAAW,aAAa;CACxB,WAAW,cAAc;CACzB,WAAW,aAAa;CACxB,WAAW,gBAAgB;CAC3B,WAAW,aAAa;CACxB,WAAW,cAAc,oBAAoB,cAAc;CAE3D,OAAO;AACT"}
@@ -1,5 +1,6 @@
1
- import { CalendarMode } from "./calendar.mjs";
2
- import { DatePickerProps, DateRangePickerProps, DateRangeValue } from "./type.mjs";
1
+ import { CalendarMode, CellRender, CellRenderInfo, DatePickerBaseProps, DatePickerProps, DatePickerSemanticType, DatePickerType, DateRangePickerProps, DateRangeValue, GeneratedDatePicker, GenericTimePickerProps, MonthPickerProps, PanelMode, PickerClassNames, PickerComponents, PickerDateStrings, PickerLocale, PickerLocaleInput, PickerLocaleLang, PickerMode, PickerPanelProps, PickerPlacement, PickerPopupSemanticName, PickerProps, PickerPropsWithMultiple, PickerRef, PickerSemanticClassNames, PickerSemanticName, PickerSemanticStyles, PickerSize, PickerStatus, PickerStyles, PickerTagProps, PickerVariant, PresetDate, PresetPickerProps, QuarterPickerProps, RangeDisabledDate, RangeInfo, RangePickerComponent, RangePickerProps, RangePickerRef, SinglePickerComponent, TimePickerLocale, TimePickerProps, WeekPickerProps, YearPickerProps } from "./type.mjs";
3
2
  import DatePicker from "./DatePicker.mjs";
4
3
  import DateRangePicker from "./DateRangePicker.mjs";
5
- export { type CalendarMode, DatePicker, type DatePickerProps, DateRangePicker, type DateRangePickerProps, type DateRangeValue };
4
+ import generatePicker from "./generatePicker.mjs";
5
+ import { createPickerLocale, datePickerLocaleEnUS, datePickerLocaleZhCN } from "./locale.mjs";
6
+ export { type CalendarMode, type CellRender, type CellRenderInfo, DatePicker, type DatePickerBaseProps, type DatePickerProps, type DatePickerSemanticType, type DatePickerType, DateRangePicker, type DateRangePickerProps, type DateRangeValue, type GeneratedDatePicker, type GenericTimePickerProps, type MonthPickerProps, type PanelMode, type PickerClassNames, type PickerComponents, type PickerDateStrings, type PickerLocale, type PickerLocaleInput, type PickerLocaleLang, type PickerMode, type PickerPanelProps, type PickerPlacement, type PickerPopupSemanticName, type PickerProps, type PickerPropsWithMultiple, type PickerRef, type PickerSemanticClassNames, type PickerSemanticName, type PickerSemanticStyles, type PickerSize, type PickerStatus, type PickerStyles, type PickerTagProps, type PickerVariant, type PresetDate, type PresetPickerProps, type QuarterPickerProps, type RangeDisabledDate, type RangeInfo, type RangePickerComponent, type RangePickerProps, type RangePickerRef, type SinglePickerComponent, type TimePickerLocale, type TimePickerProps, type WeekPickerProps, type YearPickerProps, createPickerLocale, datePickerLocaleEnUS, datePickerLocaleZhCN, generatePicker };
@@ -0,0 +1,16 @@
1
+ import { TranslationResources } from "../../i18n/types.mjs";
2
+ import { PickerLocale } from "./type.mjs";
3
+ //#region src/base-ui/DatePicker/locale.d.ts
4
+ /**
5
+ * Builds a complete `PickerLocale` (incl. `shortWeekDays` / `shortMonths`) from
6
+ * `@lobehub/ui/i18n` `datePicker.*` resources; missing keys fall back to English. `locale` is
7
+ * the rc-picker locale code (`en_US`, `zh_CN`, …) that picks the dayjs locale for week start.
8
+ */
9
+ declare const createPickerLocale: (resources: TranslationResources, locale?: string) => PickerLocale;
10
+ /** Default English locale, the counterpart of antd's `date-picker/locale/en_US`. */
11
+ declare const datePickerLocaleEnUS: PickerLocale;
12
+ /** Default Simplified Chinese locale, the counterpart of antd's `date-picker/locale/zh_CN`. */
13
+ declare const datePickerLocaleZhCN: PickerLocale;
14
+ //#endregion
15
+ export { createPickerLocale, datePickerLocaleEnUS, datePickerLocaleZhCN };
16
+ //# sourceMappingURL=locale.d.mts.map
@@ -0,0 +1,136 @@
1
+ import { useTranslation } from "../../i18n/useTranslation.mjs";
2
+ import datePicker_default from "../../i18n/resources/en/datePicker.mjs";
3
+ import datePicker_default$1 from "../../i18n/resources/zhCn/datePicker.mjs";
4
+ import { useMemo } from "react";
5
+ import dayjs from "dayjs";
6
+ import enUS from "@rc-component/picker/locale/en_US";
7
+ //#region src/base-ui/DatePicker/locale.ts
8
+ const englishMessages = datePicker_default;
9
+ const pair = (t, start, end) => [t(start), t(end)];
10
+ const list = (value) => value.split(",").map((item) => item.trim());
11
+ /**
12
+ * Every text of antd's `locale/example.json` plus the input / header / cell formats.
13
+ * `fieldTimeFormat` / `fieldDateTimeFormat` stay unset: rc-picker derives them from
14
+ * `showTime` (`use12Hours`, `showSecond`, …). With `names`, `shortWeekDays` / `shortMonths`
15
+ * come from i18n too; without, they follow the dayjs locale of `locale`.
16
+ */
17
+ const buildPickerLocale = (t, locale, names) => ({
18
+ lang: {
19
+ ...enUS,
20
+ ...names && {
21
+ shortMonths: list(t("datePicker.shortMonths")),
22
+ shortWeekDays: list(t("datePicker.shortWeekDays"))
23
+ },
24
+ backToToday: t("datePicker.backToToday"),
25
+ cellDateFormat: t("datePicker.cellDateFormat"),
26
+ cellQuarterFormat: t("datePicker.cellQuarterFormat"),
27
+ cellYearFormat: t("datePicker.cellYearFormat"),
28
+ clear: t("datePicker.clear"),
29
+ dateSelect: t("datePicker.dateSelect"),
30
+ decadeSelect: t("datePicker.decadeSelect"),
31
+ fieldDateFormat: t("datePicker.fieldDateFormat"),
32
+ fieldMonthFormat: t("datePicker.fieldMonthFormat"),
33
+ fieldQuarterFormat: t("datePicker.fieldQuarterFormat"),
34
+ fieldWeekFormat: t("datePicker.fieldWeekFormat"),
35
+ fieldYearFormat: t("datePicker.fieldYearFormat"),
36
+ locale,
37
+ month: t("datePicker.month"),
38
+ monthBeforeYear: t("datePicker.monthBeforeYear") !== "false",
39
+ monthPlaceholder: t("datePicker.monthPlaceholder"),
40
+ monthSelect: t("datePicker.monthSelect"),
41
+ nextCentury: t("datePicker.nextCentury"),
42
+ nextDecade: t("datePicker.nextDecade"),
43
+ nextMonth: t("datePicker.nextMonth"),
44
+ nextYear: t("datePicker.nextYear"),
45
+ now: t("datePicker.now"),
46
+ ok: t("datePicker.ok"),
47
+ placeholder: t("datePicker.placeholder"),
48
+ previousCentury: t("datePicker.previousCentury"),
49
+ previousDecade: t("datePicker.previousDecade"),
50
+ previousMonth: t("datePicker.previousMonth"),
51
+ previousYear: t("datePicker.previousYear"),
52
+ quarterPlaceholder: t("datePicker.quarterPlaceholder"),
53
+ rangeMonthPlaceholder: pair(t, "datePicker.rangeMonthPlaceholder.start", "datePicker.rangeMonthPlaceholder.end"),
54
+ rangePlaceholder: pair(t, "datePicker.startPlaceholder", "datePicker.endPlaceholder"),
55
+ rangeQuarterPlaceholder: pair(t, "datePicker.rangeQuarterPlaceholder.start", "datePicker.rangeQuarterPlaceholder.end"),
56
+ rangeWeekPlaceholder: pair(t, "datePicker.rangeWeekPlaceholder.start", "datePicker.rangeWeekPlaceholder.end"),
57
+ rangeYearPlaceholder: pair(t, "datePicker.rangeYearPlaceholder.start", "datePicker.rangeYearPlaceholder.end"),
58
+ timeSelect: t("datePicker.timeSelect"),
59
+ today: t("datePicker.today"),
60
+ week: t("datePicker.week"),
61
+ weekPlaceholder: t("datePicker.weekPlaceholder"),
62
+ weekSelect: t("datePicker.weekSelect"),
63
+ year: t("datePicker.year"),
64
+ yearFormat: t("datePicker.yearFormat"),
65
+ yearPlaceholder: t("datePicker.yearPlaceholder"),
66
+ yearSelect: t("datePicker.yearSelect")
67
+ },
68
+ timePickerLocale: {
69
+ placeholder: t("datePicker.timePlaceholder"),
70
+ rangePlaceholder: pair(t, "datePicker.rangeTimePlaceholder.start", "datePicker.rangeTimePlaceholder.end")
71
+ }
72
+ });
73
+ /**
74
+ * Builds a complete `PickerLocale` (incl. `shortWeekDays` / `shortMonths`) from
75
+ * `@lobehub/ui/i18n` `datePicker.*` resources; missing keys fall back to English. `locale` is
76
+ * the rc-picker locale code (`en_US`, `zh_CN`, …) that picks the dayjs locale for week start.
77
+ */
78
+ const createPickerLocale = (resources, locale = "en_US") => buildPickerLocale((key) => resources[key] || englishMessages[key] || key, locale, true);
79
+ /** Default English locale, the counterpart of antd's `date-picker/locale/en_US`. */
80
+ const datePickerLocaleEnUS = createPickerLocale(datePicker_default, "en_US");
81
+ /** Default Simplified Chinese locale, the counterpart of antd's `date-picker/locale/zh_CN`. */
82
+ const datePickerLocaleZhCN = createPickerLocale(datePicker_default$1, "zh_CN");
83
+ /** `lang` and `timePickerLocale` are merged field by field, so a partial override is enough. */
84
+ const mergePickerLocale = (base, override) => override ? {
85
+ ...base,
86
+ ...override,
87
+ lang: {
88
+ ...base.lang,
89
+ ...override.lang
90
+ },
91
+ timePickerLocale: {
92
+ ...base.timePickerLocale,
93
+ ...override.timePickerLocale
94
+ }
95
+ } : base;
96
+ /** antd's `getPlaceholder`: one default per `picker`. */
97
+ const getPlaceholder = ({ lang, timePickerLocale }, picker = "date") => {
98
+ if (picker === "year" && lang.yearPlaceholder) return lang.yearPlaceholder;
99
+ if (picker === "quarter" && lang.quarterPlaceholder) return lang.quarterPlaceholder;
100
+ if (picker === "month" && lang.monthPlaceholder) return lang.monthPlaceholder;
101
+ if (picker === "week" && lang.weekPlaceholder) return lang.weekPlaceholder;
102
+ if (picker === "time" && timePickerLocale.placeholder) return timePickerLocale.placeholder;
103
+ return lang.placeholder;
104
+ };
105
+ /** antd's `getRangePlaceholder`: a `[start, end]` pair per `picker`. */
106
+ const getRangePlaceholder = ({ lang, timePickerLocale }, picker = "date") => {
107
+ if (picker === "year" && lang.rangeYearPlaceholder) return lang.rangeYearPlaceholder;
108
+ if (picker === "quarter" && lang.rangeQuarterPlaceholder) return lang.rangeQuarterPlaceholder;
109
+ if (picker === "month" && lang.rangeMonthPlaceholder) return lang.rangeMonthPlaceholder;
110
+ if (picker === "week" && lang.rangeWeekPlaceholder) return lang.rangeWeekPlaceholder;
111
+ if (picker === "time" && timePickerLocale.rangePlaceholder) return timePickerLocale.rangePlaceholder;
112
+ return lang.rangePlaceholder;
113
+ };
114
+ /**
115
+ * The default locale comes from the `@/i18n` resources in context, with `lang.locale`
116
+ * following the active dayjs locale so week start and week / month names track
117
+ * `dayjs.locale()` as in antd; the `locale` prop is merged over it.
118
+ */
119
+ const usePickerLocale = (override) => {
120
+ const { t } = useTranslation(datePicker_default);
121
+ const dayjsLocale = dayjs.locale();
122
+ const locale = useMemo(() => mergePickerLocale(buildPickerLocale(t, dayjsLocale, false), override), [
123
+ t,
124
+ dayjsLocale,
125
+ override
126
+ ]);
127
+ return {
128
+ locale,
129
+ placeholder: (picker) => getPlaceholder(locale, picker),
130
+ rangePlaceholder: (picker) => getRangePlaceholder(locale, picker)
131
+ };
132
+ };
133
+ //#endregion
134
+ export { createPickerLocale, datePickerLocaleEnUS, datePickerLocaleZhCN, mergePickerLocale, usePickerLocale };
135
+
136
+ //# sourceMappingURL=locale.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locale.mjs","names":["datePickerMessages","zhCnDatePickerMessages"],"sources":["../../../src/base-ui/DatePicker/locale.ts"],"sourcesContent":["import enUS from '@rc-component/picker/locale/en_US';\nimport dayjs from 'dayjs';\nimport { useMemo } from 'react';\n\nimport datePickerMessages from '@/i18n/resources/en/datePicker';\nimport zhCnDatePickerMessages from '@/i18n/resources/zhCn/datePicker';\nimport type { TranslationKey, TranslationResources } from '@/i18n/types';\nimport { useTranslation } from '@/i18n/useTranslation';\n\nimport type { PickerLocale, PickerLocaleInput, PickerMode } from './type';\n\ntype Translate = (key: TranslationKey) => string;\n\nconst englishMessages: TranslationResources = datePickerMessages;\n\nconst pair = (t: Translate, start: TranslationKey, end: TranslationKey): [string, string] => [\n t(start),\n t(end),\n];\n\nconst list = (value: string) => value.split(',').map((item) => item.trim());\n\n/**\n * Every text of antd's `locale/example.json` plus the input / header / cell formats.\n * `fieldTimeFormat` / `fieldDateTimeFormat` stay unset: rc-picker derives them from\n * `showTime` (`use12Hours`, `showSecond`, …). With `names`, `shortWeekDays` / `shortMonths`\n * come from i18n too; without, they follow the dayjs locale of `locale`.\n */\nconst buildPickerLocale = (t: Translate, locale: string, names: boolean): PickerLocale => ({\n lang: {\n ...enUS,\n ...(names && {\n shortMonths: list(t('datePicker.shortMonths')),\n shortWeekDays: list(t('datePicker.shortWeekDays')),\n }),\n backToToday: t('datePicker.backToToday'),\n cellDateFormat: t('datePicker.cellDateFormat'),\n cellQuarterFormat: t('datePicker.cellQuarterFormat'),\n cellYearFormat: t('datePicker.cellYearFormat'),\n clear: t('datePicker.clear'),\n dateSelect: t('datePicker.dateSelect'),\n decadeSelect: t('datePicker.decadeSelect'),\n fieldDateFormat: t('datePicker.fieldDateFormat'),\n fieldMonthFormat: t('datePicker.fieldMonthFormat'),\n fieldQuarterFormat: t('datePicker.fieldQuarterFormat'),\n fieldWeekFormat: t('datePicker.fieldWeekFormat'),\n fieldYearFormat: t('datePicker.fieldYearFormat'),\n locale,\n month: t('datePicker.month'),\n monthBeforeYear: t('datePicker.monthBeforeYear') !== 'false',\n monthPlaceholder: t('datePicker.monthPlaceholder'),\n monthSelect: t('datePicker.monthSelect'),\n nextCentury: t('datePicker.nextCentury'),\n nextDecade: t('datePicker.nextDecade'),\n nextMonth: t('datePicker.nextMonth'),\n nextYear: t('datePicker.nextYear'),\n now: t('datePicker.now'),\n ok: t('datePicker.ok'),\n placeholder: t('datePicker.placeholder'),\n previousCentury: t('datePicker.previousCentury'),\n previousDecade: t('datePicker.previousDecade'),\n previousMonth: t('datePicker.previousMonth'),\n previousYear: t('datePicker.previousYear'),\n quarterPlaceholder: t('datePicker.quarterPlaceholder'),\n rangeMonthPlaceholder: pair(\n t,\n 'datePicker.rangeMonthPlaceholder.start',\n 'datePicker.rangeMonthPlaceholder.end',\n ),\n rangePlaceholder: pair(t, 'datePicker.startPlaceholder', 'datePicker.endPlaceholder'),\n rangeQuarterPlaceholder: pair(\n t,\n 'datePicker.rangeQuarterPlaceholder.start',\n 'datePicker.rangeQuarterPlaceholder.end',\n ),\n rangeWeekPlaceholder: pair(\n t,\n 'datePicker.rangeWeekPlaceholder.start',\n 'datePicker.rangeWeekPlaceholder.end',\n ),\n rangeYearPlaceholder: pair(\n t,\n 'datePicker.rangeYearPlaceholder.start',\n 'datePicker.rangeYearPlaceholder.end',\n ),\n timeSelect: t('datePicker.timeSelect'),\n today: t('datePicker.today'),\n week: t('datePicker.week'),\n weekPlaceholder: t('datePicker.weekPlaceholder'),\n weekSelect: t('datePicker.weekSelect'),\n year: t('datePicker.year'),\n yearFormat: t('datePicker.yearFormat'),\n yearPlaceholder: t('datePicker.yearPlaceholder'),\n yearSelect: t('datePicker.yearSelect'),\n },\n timePickerLocale: {\n placeholder: t('datePicker.timePlaceholder'),\n rangePlaceholder: pair(\n t,\n 'datePicker.rangeTimePlaceholder.start',\n 'datePicker.rangeTimePlaceholder.end',\n ),\n },\n});\n\n/**\n * Builds a complete `PickerLocale` (incl. `shortWeekDays` / `shortMonths`) from\n * `@lobehub/ui/i18n` `datePicker.*` resources; missing keys fall back to English. `locale` is\n * the rc-picker locale code (`en_US`, `zh_CN`, …) that picks the dayjs locale for week start.\n */\nexport const createPickerLocale = (\n resources: TranslationResources,\n locale: string = 'en_US',\n): PickerLocale =>\n buildPickerLocale((key) => resources[key] || englishMessages[key] || key, locale, true);\n\n/** Default English locale, the counterpart of antd's `date-picker/locale/en_US`. */\nexport const datePickerLocaleEnUS: PickerLocale = createPickerLocale(datePickerMessages, 'en_US');\n\n/** Default Simplified Chinese locale, the counterpart of antd's `date-picker/locale/zh_CN`. */\nexport const datePickerLocaleZhCN: PickerLocale = createPickerLocale(\n zhCnDatePickerMessages,\n 'zh_CN',\n);\n\n/** `lang` and `timePickerLocale` are merged field by field, so a partial override is enough. */\nexport const mergePickerLocale = (\n base: PickerLocale,\n override?: PickerLocaleInput,\n): PickerLocale =>\n override\n ? {\n ...base,\n ...override,\n lang: { ...base.lang, ...override.lang },\n timePickerLocale: { ...base.timePickerLocale, ...override.timePickerLocale },\n }\n : base;\n\n/** antd's `getPlaceholder`: one default per `picker`. */\nconst getPlaceholder = ({ lang, timePickerLocale }: PickerLocale, picker: PickerMode = 'date') => {\n if (picker === 'year' && lang.yearPlaceholder) return lang.yearPlaceholder;\n if (picker === 'quarter' && lang.quarterPlaceholder) return lang.quarterPlaceholder;\n if (picker === 'month' && lang.monthPlaceholder) return lang.monthPlaceholder;\n if (picker === 'week' && lang.weekPlaceholder) return lang.weekPlaceholder;\n if (picker === 'time' && timePickerLocale.placeholder) return timePickerLocale.placeholder;\n return lang.placeholder;\n};\n\n/** antd's `getRangePlaceholder`: a `[start, end]` pair per `picker`. */\nconst getRangePlaceholder = (\n { lang, timePickerLocale }: PickerLocale,\n picker: PickerMode = 'date',\n) => {\n if (picker === 'year' && lang.rangeYearPlaceholder) return lang.rangeYearPlaceholder;\n if (picker === 'quarter' && lang.rangeQuarterPlaceholder) return lang.rangeQuarterPlaceholder;\n if (picker === 'month' && lang.rangeMonthPlaceholder) return lang.rangeMonthPlaceholder;\n if (picker === 'week' && lang.rangeWeekPlaceholder) return lang.rangeWeekPlaceholder;\n if (picker === 'time' && timePickerLocale.rangePlaceholder) {\n return timePickerLocale.rangePlaceholder;\n }\n return lang.rangePlaceholder;\n};\n\n/**\n * The default locale comes from the `@/i18n` resources in context, with `lang.locale`\n * following the active dayjs locale so week start and week / month names track\n * `dayjs.locale()` as in antd; the `locale` prop is merged over it.\n */\nexport const usePickerLocale = (override?: PickerLocaleInput) => {\n const { t } = useTranslation(datePickerMessages);\n const dayjsLocale = dayjs.locale();\n\n const locale = useMemo(\n () => mergePickerLocale(buildPickerLocale(t, dayjsLocale, false), override),\n [t, dayjsLocale, override],\n );\n\n return {\n locale,\n placeholder: (picker?: PickerMode) => getPlaceholder(locale, picker),\n rangePlaceholder: (picker?: PickerMode) => getRangePlaceholder(locale, picker),\n };\n};\n"],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { cx } from "../../utils/styleEngine.mjs";
2
+ //#region src/base-ui/DatePicker/semantic.ts
3
+ const resolve = (value, props) => typeof value === "function" ? value({ props }) : value;
4
+ /**
5
+ * antd's `useMergedPickerSemantic`: resolves the function forms with `{ props }`, expands a
6
+ * `classNames.popup` string to `popup.root`, and merges the deprecated `popupClassName` /
7
+ * `dropdownClassName` / `popupStyle` into `popup.root`.
8
+ */
9
+ const mergePickerSemantic = ({ classNames, popupClassName, popupStyle, props, styles }) => {
10
+ const resolvedClassNames = resolve(classNames, props) ?? {};
11
+ const resolvedStyles = resolve(styles, props) ?? {};
12
+ const { popup, ...rootClassNames } = resolvedClassNames;
13
+ const popupClassNames = typeof popup === "string" ? { root: popup } : popup;
14
+ return [{
15
+ ...rootClassNames,
16
+ popup: {
17
+ ...popupClassNames,
18
+ root: cx(popupClassNames?.root, popupClassName) || void 0
19
+ }
20
+ }, {
21
+ ...resolvedStyles,
22
+ popup: {
23
+ ...resolvedStyles.popup,
24
+ root: {
25
+ ...resolvedStyles.popup?.root,
26
+ ...popupStyle
27
+ }
28
+ }
29
+ }];
30
+ };
31
+ //#endregion
32
+ export { mergePickerSemantic };
33
+
34
+ //# sourceMappingURL=semantic.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic.mjs","names":[],"sources":["../../../src/base-ui/DatePicker/semantic.ts"],"sourcesContent":["import type { CSSProperties } from 'react';\n\nimport { cx } from '@/utils/styleEngine';\n\nimport type {\n PickerClassNames,\n PickerPopupSemanticName,\n PickerSemanticClassNames,\n PickerSemanticName,\n PickerSemanticStyles,\n PickerStyles,\n} from './type';\n\n/** What rc-picker reads: every popup entry is an object. */\nexport interface FilledPickerClassNames extends Partial<Record<PickerSemanticName, string>> {\n popup: Partial<Record<PickerPopupSemanticName, string>>;\n}\n\nexport interface FilledPickerStyles extends Partial<Record<PickerSemanticName, CSSProperties>> {\n popup: Partial<Record<PickerPopupSemanticName, CSSProperties>>;\n}\n\nconst resolve = <T, P>(value: T | ((info: { props: P }) => T) | undefined, props: P) =>\n typeof value === 'function' ? (value as (info: { props: P }) => T)({ props }) : value;\n\n/**\n * antd's `useMergedPickerSemantic`: resolves the function forms with `{ props }`, expands a\n * `classNames.popup` string to `popup.root`, and merges the deprecated `popupClassName` /\n * `dropdownClassName` / `popupStyle` into `popup.root`.\n */\nexport const mergePickerSemantic = <P>({\n classNames,\n popupClassName,\n popupStyle,\n props,\n styles,\n}: {\n classNames?: PickerClassNames<P>;\n popupClassName?: string;\n popupStyle?: CSSProperties;\n props: P;\n styles?: PickerStyles<P>;\n}): [FilledPickerClassNames, FilledPickerStyles] => {\n const resolvedClassNames: PickerSemanticClassNames = resolve(classNames, props) ?? {};\n const resolvedStyles: PickerSemanticStyles = resolve(styles, props) ?? {};\n const { popup, ...rootClassNames } = resolvedClassNames;\n const popupClassNames = typeof popup === 'string' ? { root: popup } : popup;\n\n return [\n {\n ...rootClassNames,\n popup: { ...popupClassNames, root: cx(popupClassNames?.root, popupClassName) || undefined },\n },\n {\n ...resolvedStyles,\n popup: { ...resolvedStyles.popup, root: { ...resolvedStyles.popup?.root, ...popupStyle } },\n },\n ];\n};\n"],"mappings":";;AAsBA,MAAM,WAAiB,OAAoD,UACzE,OAAO,UAAU,aAAc,MAAoC,EAAE,MAAM,CAAC,IAAI;;;;;;AAOlF,MAAa,uBAA0B,EACrC,YACA,gBACA,YACA,OACA,aAOkD;CAClD,MAAM,qBAA+C,QAAQ,YAAY,KAAK,KAAK,CAAC;CACpF,MAAM,iBAAuC,QAAQ,QAAQ,KAAK,KAAK,CAAC;CACxE,MAAM,EAAE,OAAO,GAAG,mBAAmB;CACrC,MAAM,kBAAkB,OAAO,UAAU,WAAW,EAAE,MAAM,MAAM,IAAI;CAEtE,OAAO,CACL;EACE,GAAG;EACH,OAAO;GAAE,GAAG;GAAiB,MAAM,GAAG,iBAAiB,MAAM,cAAc,KAAK,KAAA;EAAU;CAC5F,GACA;EACE,GAAG;EACH,OAAO;GAAE,GAAG,eAAe;GAAO,MAAM;IAAE,GAAG,eAAe,OAAO;IAAM,GAAG;GAAW;EAAE;CAC3F,CACF;AACF"}