@apipass/design-system 7.4.7 → 8.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/lib/embedded-styles.js +2 -2
- package/dist/lib/lib.index.cjs +1 -1
- package/dist/lib/lib.index.js +809 -795
- package/dist/lib/lib.index.js.map +1 -1
- package/dist/lib/style.css +1 -1
- package/dist/lib/ui/components/ConfirmDialog/ConfirmDialog.cjs +1 -1
- package/dist/lib/ui/components/ConfirmDialog/ConfirmDialog.cjs.map +1 -1
- package/dist/lib/ui/components/ConfirmDialog/ConfirmDialog.js +27 -25
- package/dist/lib/ui/components/ConfirmDialog/ConfirmDialog.js.map +1 -1
- package/dist/lib/ui/components/DataTable/DataTable.cjs +1 -1
- package/dist/lib/ui/components/DataTable/DataTable.cjs.map +1 -1
- package/dist/lib/ui/components/DataTable/DataTable.js +210 -174
- package/dist/lib/ui/components/DataTable/DataTable.js.map +1 -1
- package/dist/lib/ui/components/FormModal/FormModal.cjs +1 -1
- package/dist/lib/ui/components/FormModal/FormModal.cjs.map +1 -1
- package/dist/lib/ui/components/FormModal/FormModal.js +22 -21
- package/dist/lib/ui/components/FormModal/FormModal.js.map +1 -1
- package/dist/lib/ui/components/LoadingOverlay/LoadingOverlay.cjs +2 -0
- package/dist/lib/ui/components/LoadingOverlay/LoadingOverlay.cjs.map +1 -0
- package/dist/lib/ui/components/LoadingOverlay/LoadingOverlay.js +36 -0
- package/dist/lib/ui/components/LoadingOverlay/LoadingOverlay.js.map +1 -0
- package/dist/lib/ui/components/PageLoadingState/PageLoadingState.cjs +2 -0
- package/dist/lib/ui/components/PageLoadingState/PageLoadingState.cjs.map +1 -0
- package/dist/lib/ui/components/PageLoadingState/PageLoadingState.js +18 -0
- package/dist/lib/ui/components/PageLoadingState/PageLoadingState.js.map +1 -0
- package/dist/lib/ui/hooks/useAnimationFrame.cjs +2 -0
- package/dist/lib/ui/hooks/useAnimationFrame.cjs.map +1 -0
- package/dist/lib/ui/hooks/useAnimationFrame.js +24 -0
- package/dist/lib/ui/hooks/useAnimationFrame.js.map +1 -0
- package/dist/lib/ui/hooks/useLoadingVisibility.cjs +2 -0
- package/dist/lib/ui/hooks/useLoadingVisibility.cjs.map +1 -0
- package/dist/lib/ui/hooks/useLoadingVisibility.js +34 -0
- package/dist/lib/ui/hooks/useLoadingVisibility.js.map +1 -0
- package/dist/lib/ui/hooks/useMediaQuery.cjs +1 -1
- package/dist/lib/ui/hooks/useMediaQuery.cjs.map +1 -1
- package/dist/lib/ui/hooks/useMediaQuery.js +5 -2
- package/dist/lib/ui/hooks/useMediaQuery.js.map +1 -1
- package/dist/lib/ui/primitives/BrandLoader/BrandLoader.cjs +2 -0
- package/dist/lib/ui/primitives/BrandLoader/BrandLoader.cjs.map +1 -0
- package/dist/lib/ui/primitives/BrandLoader/BrandLoader.js +165 -0
- package/dist/lib/ui/primitives/BrandLoader/BrandLoader.js.map +1 -0
- package/dist/lib/ui/primitives/BrandLoader/BrandLoaderProvider.cjs +2 -0
- package/dist/lib/ui/primitives/BrandLoader/BrandLoaderProvider.cjs.map +1 -0
- package/dist/lib/ui/primitives/BrandLoader/BrandLoaderProvider.js +9 -0
- package/dist/lib/ui/primitives/BrandLoader/BrandLoaderProvider.js.map +1 -0
- package/dist/lib/ui/primitives/BrandLoader/brandLoaderSymbolContext.cjs +2 -0
- package/dist/lib/ui/primitives/BrandLoader/brandLoaderSymbolContext.cjs.map +1 -0
- package/dist/lib/ui/primitives/BrandLoader/brandLoaderSymbolContext.js +10 -0
- package/dist/lib/ui/primitives/BrandLoader/brandLoaderSymbolContext.js.map +1 -0
- package/dist/lib/ui/primitives/BrandLoader/brandLoaderVariants.cjs +2 -0
- package/dist/lib/ui/primitives/BrandLoader/brandLoaderVariants.cjs.map +1 -0
- package/dist/lib/ui/primitives/BrandLoader/brandLoaderVariants.js +166 -0
- package/dist/lib/ui/primitives/BrandLoader/brandLoaderVariants.js.map +1 -0
- package/dist/lib/ui/primitives/Button/Button.cjs +1 -1
- package/dist/lib/ui/primitives/Button/Button.cjs.map +1 -1
- package/dist/lib/ui/primitives/Button/Button.js +72 -49
- package/dist/lib/ui/primitives/Button/Button.js.map +1 -1
- package/dist/lib/ui/primitives/DateRangePicker/DateRangePicker.cjs +1 -1
- package/dist/lib/ui/primitives/DateRangePicker/DateRangePicker.cjs.map +1 -1
- package/dist/lib/ui/primitives/DateRangePicker/DateRangePicker.js +235 -229
- package/dist/lib/ui/primitives/DateRangePicker/DateRangePicker.js.map +1 -1
- package/dist/lib/ui/primitives/DateRangePicker/dateRangePresets.cjs +1 -1
- package/dist/lib/ui/primitives/DateRangePicker/dateRangePresets.cjs.map +1 -1
- package/dist/lib/ui/primitives/DateRangePicker/dateRangePresets.js +26 -21
- package/dist/lib/ui/primitives/DateRangePicker/dateRangePresets.js.map +1 -1
- package/dist/lib/ui/primitives/IconButton/IconButton.cjs +1 -1
- package/dist/lib/ui/primitives/IconButton/IconButton.cjs.map +1 -1
- package/dist/lib/ui/primitives/IconButton/IconButton.js +11 -11
- package/dist/lib/ui/primitives/IconButton/IconButton.js.map +1 -1
- package/dist/lib/ui/primitives/LoadingState/LoadingState.cjs +2 -0
- package/dist/lib/ui/primitives/LoadingState/LoadingState.cjs.map +1 -0
- package/dist/lib/ui/primitives/LoadingState/LoadingState.js +33 -0
- package/dist/lib/ui/primitives/LoadingState/LoadingState.js.map +1 -0
- package/dist/lib/ui/primitives/PermissionGate/PermissionGate.cjs +1 -1
- package/dist/lib/ui/primitives/PermissionGate/PermissionGate.cjs.map +1 -1
- package/dist/lib/ui/primitives/PermissionGate/PermissionGate.js +14 -9
- package/dist/lib/ui/primitives/PermissionGate/PermissionGate.js.map +1 -1
- package/dist/lib/ui/primitives/Tree/Tree.cjs +1 -1
- package/dist/lib/ui/primitives/Tree/Tree.cjs.map +1 -1
- package/dist/lib/ui/primitives/Tree/Tree.js +31 -24
- package/dist/lib/ui/primitives/Tree/Tree.js.map +1 -1
- package/dist/types/ui/components/DataTable/DataTable.d.ts +31 -8
- package/dist/types/ui/components/LoadingOverlay/LoadingOverlay.d.ts +13 -0
- package/dist/types/ui/components/PageLoadingState/PageLoadingState.d.ts +4 -0
- package/dist/types/ui/components/index.d.ts +2 -1
- package/dist/types/ui/hooks/index.d.ts +1 -0
- package/dist/types/ui/hooks/useAnimationFrame.d.ts +3 -0
- package/dist/types/ui/hooks/useLoadingVisibility.d.ts +7 -0
- package/dist/types/ui/primitives/BrandLoader/BrandLoader.d.ts +25 -0
- package/dist/types/ui/primitives/BrandLoader/BrandLoaderProvider.d.ts +7 -0
- package/dist/types/ui/primitives/BrandLoader/brandLoaderSymbolContext.d.ts +3 -0
- package/dist/types/ui/primitives/BrandLoader/brandLoaderVariants.d.ts +33 -0
- package/dist/types/ui/primitives/Button/Button.d.ts +1 -0
- package/dist/types/ui/primitives/DateRangePicker/DateRangePicker.d.ts +3 -2
- package/dist/types/ui/primitives/DateRangePicker/dateRangePresets.d.ts +5 -0
- package/dist/types/ui/primitives/LoadingState/LoadingState.d.ts +10 -0
- package/dist/types/ui/primitives/PermissionGate/PermissionGate.d.ts +16 -6
- package/dist/types/ui/primitives/index.d.ts +2 -0
- package/package.json +4 -2
- package/dist/lib/ui/components/WidgetLoadingState/WidgetLoadingState.cjs +0 -2
- package/dist/lib/ui/components/WidgetLoadingState/WidgetLoadingState.cjs.map +0 -1
- package/dist/lib/ui/components/WidgetLoadingState/WidgetLoadingState.js +0 -27
- package/dist/lib/ui/components/WidgetLoadingState/WidgetLoadingState.js.map +0 -1
- package/dist/types/ui/components/WidgetLoadingState/WidgetLoadingState.d.ts +0 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateRangePicker.cjs","sources":["../../../../../src/ui/primitives/DateRangePicker/DateRangePicker.tsx"],"sourcesContent":["import {\n Time,\n getLocalTimeZone,\n toCalendarDate,\n toCalendarDateTime,\n type DateValue,\n} from \"@internationalized/date\";\nimport { clsx } from \"clsx\";\nimport { useOverlayPortalContainer } from \"hooks\";\nimport {\n IconCalendar,\n IconCheck,\n IconChevronDown,\n IconChevronLeft,\n IconChevronRight,\n} from \"icons\";\nimport {\n Button,\n Description,\n Field,\n Label,\n ListBox,\n ListBoxItem,\n Text,\n TextSmallStrong,\n} from \"primitives\";\nimport { useContext, useEffect, useMemo, useState } from \"react\";\nimport {\n Button as RACButton,\n CalendarCell as RACCalendarCell,\n CalendarGrid as RACCalendarGrid,\n DateField as RACDateField,\n DateInput as RACDateInput,\n DateSegment as RACDateSegment,\n Dialog as RACDialog,\n DialogTrigger as RACDialogTrigger,\n Group as RACGroup,\n Heading as RACHeading,\n I18nProvider as RACI18nProvider,\n Label as RACLabel,\n Popover as RACPopover,\n RangeCalendar as RACRangeCalendar,\n RangeCalendarStateContext,\n useLocale,\n type TimeValue,\n} from \"react-aria-components\";\nimport {\n createDateRangePresets,\n type DateRangePresetKey,\n} from \"./dateRangePresets\";\nimport \"./daterangepicker.css\";\n\nconst dayStartTime = () => new Time(0, 0, 0);\nconst dayEndTime = () => new Time(23, 59, 59);\n\nfunction CalendarAnchorSync({\n onAnchorChange,\n}: {\n onAnchorChange: (anchor: DateValue | null) => void;\n}) {\n const state = useContext(RangeCalendarStateContext);\n const anchor = state?.anchorDate ?? null;\n const anchorKey = anchor?.toString();\n useEffect(() => {\n onAnchorChange(anchor);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [anchorKey]);\n return null;\n}\n\nexport interface DateRangePreset {\n id: string;\n label: string;\n getValue: () => { start: DateValue; end: DateValue };\n}\n\nexport interface DateRangePickerValue {\n preset?: DateRangePreset;\n start: DateValue | null;\n end: DateValue | null;\n}\n\nexport interface DateRangePickerLabels {\n placeholder: string;\n relativeLabel: string;\n absoluteLabel: string;\n startDateLabel: string;\n endDateLabel: string;\n cancelLabel?: string | null;\n applyLabel?: string | null;\n}\n\nexport interface DateRangePickerProps {\n className?: string;\n locale?: string;\n label?: string;\n \"aria-label\"?: string;\n description?: string;\n errorMessage?: string;\n labels: DateRangePickerLabels;\n intervals?: DateRangePreset[];\n presetKeys?: DateRangePresetKey[];\n presetLabels?: Record<DateRangePresetKey, string>;\n hideTime?: boolean;\n minValue?: DateValue;\n maxValue?: DateValue;\n timezone?: string;\n isDisabled?: boolean;\n isRequired?: boolean;\n value?: DateRangePickerValue;\n defaultValue?: DateRangePickerValue;\n onChange?: (value: DateRangePickerValue) => void;\n}\n\ntype DateRange = { start: DateValue; end: DateValue };\n\ntype DraftState = {\n range: DateRange | null;\n startTime: TimeValue | null;\n endTime: TimeValue | null;\n preset?: DateRangePreset;\n};\n\nconst timeFromDateValue = (date: DateValue | null): TimeValue | null =>\n date && \"hour\" in date ? new Time(date.hour, date.minute, date.second) : null;\n\nconst toDraftState = (value?: DateRangePickerValue): DraftState => {\n if (!value || (!value.start && !value.end)) {\n return { range: null, startTime: null, endTime: null, preset: value?.preset };\n }\n const range =\n value.start && value.end\n ? { start: toCalendarDate(value.start), end: toCalendarDate(value.end) }\n : null;\n return {\n range,\n startTime: timeFromDateValue(value.start),\n endTime: timeFromDateValue(value.end),\n preset: value.preset,\n };\n};\n\nconst combineDateAndTime = (\n date: DateValue | undefined,\n time: TimeValue | null,\n hideTime: boolean,\n): DateValue | null => {\n if (!date) return null;\n const calendarDate = toCalendarDate(date);\n if (hideTime || !time) return calendarDate;\n return toCalendarDateTime(calendarDate, time);\n};\n\nconst draftToValue = (\n draft: DraftState,\n hideTime: boolean,\n): DateRangePickerValue => ({\n preset: draft.preset,\n start: combineDateAndTime(draft.range?.start, draft.startTime, hideTime),\n end: combineDateAndTime(draft.range?.end, draft.endTime, hideTime),\n});\n\nexport function DateRangePicker({\n className,\n locale: localeProp,\n label,\n \"aria-label\": ariaLabel,\n description,\n errorMessage,\n labels,\n intervals: intervalsProp,\n presetKeys,\n presetLabels,\n hideTime = false,\n minValue,\n maxValue,\n timezone: timezoneProp,\n isDisabled = false,\n isRequired = false,\n value,\n defaultValue,\n onChange,\n}: DateRangePickerProps) {\n // Sem container explícito o popover faz portal no document.body — fora da\n // shadow root do MFE, sem CSS. Ver ui/hooks/useOverlayPortal.\n const portalContainer = useOverlayPortalContainer();\n const { locale: ambientLocale } = useLocale();\n const locale = localeProp ?? ambientLocale ?? \"pt-BR\";\n const timezone = timezoneProp ?? getLocalTimeZone();\n const {\n placeholder,\n relativeLabel,\n absoluteLabel,\n startDateLabel,\n endDateLabel,\n cancelLabel,\n applyLabel,\n } = labels;\n\n const intervals = useMemo(() => {\n if (intervalsProp) return intervalsProp;\n if (!presetKeys) return undefined;\n if (!presetLabels) {\n throw new Error(\n \"DateRangePicker: `presetLabels` is required when `presetKeys` is provided.\",\n );\n }\n return createDateRangePresets({\n locale,\n timezone,\n include: presetKeys,\n labels: presetLabels,\n });\n }, [intervalsProp, presetKeys, presetLabels, locale, timezone]);\n\n const [committed, setCommitted] = useState<DraftState>(() =>\n toDraftState(value ?? defaultValue),\n );\n const [draft, setDraft] = useState<DraftState>(committed);\n const [previewStart, setPreviewStart] = useState<DateValue | null>(null);\n const [isOpen, setIsOpen] = useState(false);\n\n useEffect(() => {\n if (value !== undefined) setCommitted(toDraftState(value));\n }, [value]);\n\n const clearPreset = (next: DraftState): DraftState => ({\n ...next,\n preset: undefined,\n });\n\n const withDefaultTimes = (next: DraftState): DraftState =>\n hideTime\n ? next\n : {\n ...next,\n startTime: next.startTime ?? dayStartTime(),\n endTime: next.endTime ?? dayEndTime(),\n };\n\n const handleOpenChange = (open: boolean) => {\n if (open) {\n setDraft(committed);\n setPreviewStart(null);\n }\n setIsOpen(open);\n };\n\n const selectPreset = (preset: DateRangePreset) => {\n setPreviewStart(null);\n const { start, end } = preset.getValue();\n setDraft({\n range: { start: toCalendarDate(start), end: toCalendarDate(end) },\n startTime: timeFromDateValue(start),\n endTime: timeFromDateValue(end),\n preset,\n });\n };\n\n const handleAnchorChange = (anchor: DateValue | null) => {\n setPreviewStart(anchor);\n if (anchor && !hideTime) {\n setDraft((current) =>\n clearPreset({\n ...current,\n startTime: current.startTime ?? dayStartTime(),\n }),\n );\n }\n };\n\n const setRange = (range: DateRange | null) => {\n setPreviewStart(null);\n setDraft((current) => withDefaultTimes(clearPreset({ ...current, range })));\n };\n\n const setStartField = (dateTime: DateValue | null) => {\n if (!dateTime) return;\n setPreviewStart(null);\n const date = toCalendarDate(dateTime);\n const time = timeFromDateValue(dateTime);\n setDraft((current) => {\n const nextStartTime = hideTime\n ? current.startTime\n : (time ?? current.startTime ?? dayStartTime());\n const start = combineDateAndTime(date, nextStartTime, hideTime);\n const currentEnd = combineDateAndTime(\n current.range?.end,\n current.endTime,\n hideTime,\n );\n const pushEnd = Boolean(start && currentEnd && currentEnd.compare(start) < 0);\n return clearPreset({\n ...current,\n range: {\n start: date,\n end: pushEnd || !current.range?.end ? date : current.range.end,\n },\n startTime: nextStartTime,\n endTime: pushEnd ? nextStartTime : current.endTime,\n });\n });\n };\n\n const setEndField = (dateTime: DateValue | null) => {\n if (!dateTime) return;\n const date = toCalendarDate(dateTime);\n const time = timeFromDateValue(dateTime);\n setDraft((current) => {\n const nextEndTime = hideTime\n ? current.endTime\n : (time ?? current.endTime ?? dayEndTime());\n const end = combineDateAndTime(date, nextEndTime, hideTime);\n const start = combineDateAndTime(\n current.range?.start,\n current.startTime,\n hideTime,\n );\n if (start && end && end.compare(start) < 0) return current;\n return clearPreset({\n ...current,\n range: { start: current.range?.start ?? date, end: date },\n endTime: nextEndTime,\n });\n });\n };\n\n const apply = () => {\n setCommitted(draft);\n onChange?.(draftToValue(draft, hideTime));\n setIsOpen(false);\n };\n\n const cancel = () => setIsOpen(false);\n\n const showFooter = Boolean(cancelLabel || applyLabel);\n\n const triggerText = () => {\n if (committed.preset) return committed.preset.label;\n if (committed.range) {\n const format = (date: DateValue) =>\n date\n .toDate(timezone)\n .toLocaleString(locale, {\n day: \"2-digit\",\n month: \"2-digit\",\n year: \"numeric\",\n ...(hideTime\n ? {}\n : { hour: \"2-digit\", minute: \"2-digit\", second: \"2-digit\" }),\n });\n const start = combineDateAndTime(\n committed.range.start,\n committed.startTime,\n hideTime,\n );\n const end = combineDateAndTime(\n committed.range.end,\n committed.endTime,\n hideTime,\n );\n if (start && end) return `${format(start)} — ${format(end)}`;\n }\n return null;\n };\n\n const selectedText = triggerText();\n const hasPresets = Boolean(intervals && intervals.length > 0);\n const fieldGranularity = hideTime ? \"day\" : \"second\";\n const startFieldValue = combineDateAndTime(\n draft.range?.start ?? previewStart ?? undefined,\n draft.startTime,\n hideTime,\n );\n const endFieldValue = combineDateAndTime(\n draft.range?.end ?? undefined,\n draft.endTime,\n hideTime,\n );\n\n const content = (\n <Field className={clsx(className, \"date-range-picker\")}>\n {label && <Label>{label}</Label>}\n <RACDialogTrigger isOpen={isOpen} onOpenChange={handleOpenChange}>\n <RACButton\n className=\"date-range-picker-trigger\"\n isDisabled={isDisabled}\n aria-label={label ? undefined : (ariaLabel ?? placeholder)}\n aria-required={isRequired || undefined}\n data-invalid={errorMessage ? true : undefined}\n >\n {committed.preset ? (\n <span className=\"date-range-picker-preset-badge\">\n <IconCalendar aria-hidden=\"true\" />\n {committed.preset.label}\n </span>\n ) : (\n <span\n className=\"date-range-picker-value\"\n data-placeholder={selectedText ? undefined : true}\n >\n {selectedText ?? placeholder}\n </span>\n )}\n <IconChevronDown aria-hidden=\"true\" />\n </RACButton>\n <RACPopover\n className=\"date-range-picker-popover\"\n placement=\"bottom start\"\n UNSTABLE_portalContainer={portalContainer}\n >\n <RACDialog className=\"date-range-picker-dialog\">\n <div className=\"date-range-picker-body\">\n {hasPresets && (\n <div className=\"date-range-picker-presets\">\n <TextSmallStrong className=\"date-range-picker-section-title\">\n {relativeLabel}\n </TextSmallStrong>\n <ListBox\n aria-label={relativeLabel}\n className=\"date-range-picker-presets-list\"\n selectionMode=\"single\"\n selectedKeys={draft.preset ? [draft.preset.id] : []}\n items={intervals}\n onSelectionChange={(keys) => {\n const [id] = [...keys];\n const preset = intervals?.find((item) => item.id === id);\n if (preset) selectPreset(preset);\n }}\n >\n {(item) => (\n <ListBoxItem\n id={item.id}\n textValue={item.label}\n className=\"date-range-picker-preset-item\"\n >\n <span>{item.label}</span>\n <IconCheck\n aria-hidden=\"true\"\n className=\"date-range-picker-preset-check\"\n />\n </ListBoxItem>\n )}\n </ListBox>\n </div>\n )}\n\n <div className=\"date-range-picker-absolute\">\n <TextSmallStrong className=\"date-range-picker-section-title\">\n {absoluteLabel}\n </TextSmallStrong>\n\n <div className=\"date-range-picker-fields\">\n <RACDateField\n className=\"date-range-picker-datefield\"\n granularity={fieldGranularity}\n value={startFieldValue}\n minValue={minValue}\n maxValue={endFieldValue ?? maxValue}\n onChange={setStartField}\n >\n <RACLabel className=\"date-range-picker-field-label\">\n {startDateLabel}\n </RACLabel>\n <RACGroup className=\"date-range-picker-input\">\n <RACDateInput>\n {(segment) => <RACDateSegment segment={segment} />}\n </RACDateInput>\n <IconCalendar aria-hidden=\"true\" />\n </RACGroup>\n </RACDateField>\n\n <RACDateField\n className=\"date-range-picker-datefield\"\n granularity={fieldGranularity}\n value={endFieldValue}\n minValue={startFieldValue ?? minValue}\n maxValue={maxValue}\n onChange={setEndField}\n >\n <RACLabel className=\"date-range-picker-field-label\">\n {endDateLabel}\n </RACLabel>\n <RACGroup className=\"date-range-picker-input\">\n <RACDateInput>\n {(segment) => <RACDateSegment segment={segment} />}\n </RACDateInput>\n <IconCalendar aria-hidden=\"true\" />\n </RACGroup>\n </RACDateField>\n </div>\n\n <RACRangeCalendar\n className=\"date-range-picker-calendar\"\n aria-label={absoluteLabel}\n value={draft.range}\n minValue={minValue}\n maxValue={maxValue}\n onChange={setRange}\n >\n <CalendarAnchorSync onAnchorChange={handleAnchorChange} />\n <header className=\"date-range-picker-calendar-header\">\n <RACButton\n slot=\"previous\"\n className=\"date-range-picker-calendar-nav\"\n >\n <IconChevronLeft aria-hidden=\"true\" />\n </RACButton>\n <RACHeading className=\"date-range-picker-calendar-heading\" />\n <RACButton\n slot=\"next\"\n className=\"date-range-picker-calendar-nav\"\n >\n <IconChevronRight aria-hidden=\"true\" />\n </RACButton>\n </header>\n <RACCalendarGrid className=\"date-range-picker-calendar-grid\">\n {(date) => (\n <RACCalendarCell\n date={date}\n className=\"date-range-picker-calendar-cell\"\n />\n )}\n </RACCalendarGrid>\n </RACRangeCalendar>\n </div>\n </div>\n\n {showFooter && (\n <div className=\"date-range-picker-actions\">\n {cancelLabel && (\n <Button variant=\"neutral\" size=\"small\" onPress={cancel}>\n {cancelLabel}\n </Button>\n )}\n {applyLabel && (\n <Button variant=\"primary\" size=\"small\" onPress={apply}>\n {applyLabel}\n </Button>\n )}\n </div>\n )}\n </RACDialog>\n </RACPopover>\n </RACDialogTrigger>\n {description && <Description>{description}</Description>}\n {errorMessage && (\n <Text className=\"date-range-picker-error\" elementType=\"span\">\n {errorMessage}\n </Text>\n )}\n </Field>\n );\n\n return localeProp ? (\n <RACI18nProvider locale={localeProp}>{content}</RACI18nProvider>\n ) : (\n content\n );\n}\n"],"names":["dayStartTime","Time","dayEndTime","CalendarAnchorSync","onAnchorChange","state","useContext","RangeCalendarStateContext","anchor","anchorKey","useEffect","timeFromDateValue","date","toDraftState","value","toCalendarDate","combineDateAndTime","time","hideTime","calendarDate","toCalendarDateTime","draftToValue","draft","_a","_b","DateRangePicker","className","localeProp","label","ariaLabel","description","errorMessage","labels","intervalsProp","presetKeys","presetLabels","minValue","maxValue","timezoneProp","isDisabled","isRequired","defaultValue","onChange","portalContainer","useOverlayPortalContainer","ambientLocale","useLocale","locale","timezone","getLocalTimeZone","placeholder","relativeLabel","absoluteLabel","startDateLabel","endDateLabel","cancelLabel","applyLabel","intervals","useMemo","createDateRangePresets","committed","setCommitted","useState","setDraft","previewStart","setPreviewStart","isOpen","setIsOpen","clearPreset","next","withDefaultTimes","handleOpenChange","open","selectPreset","preset","start","end","handleAnchorChange","current","setRange","range","setStartField","dateTime","nextStartTime","currentEnd","pushEnd","setEndField","nextEndTime","apply","cancel","showFooter","selectedText","format","hasPresets","fieldGranularity","startFieldValue","endFieldValue","content","jsxs","Field","clsx","jsx","Label","RACDialogTrigger","RACButton","IconCalendar","IconChevronDown","RACPopover","RACDialog","TextSmallStrong","ListBox","keys","id","item","ListBoxItem","IconCheck","RACDateField","RACLabel","RACGroup","RACDateInput","segment","RACDateSegment","RACRangeCalendar","IconChevronLeft","RACHeading","IconChevronRight","RACCalendarGrid","RACCalendarCell","Button","Description","Text","RACI18nProvider"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DateRangePicker.cjs","sources":["../../../../../src/ui/primitives/DateRangePicker/DateRangePicker.tsx"],"sourcesContent":["import {\n Time,\n getLocalTimeZone,\n toCalendarDate,\n toCalendarDateTime,\n toTimeZone,\n type DateValue,\n type ZonedDateTime,\n} from \"@internationalized/date\";\nimport { clsx } from \"clsx\";\nimport { useOverlayPortalContainer } from \"hooks\";\nimport {\n IconCalendar,\n IconCheck,\n IconChevronDown,\n IconChevronLeft,\n IconChevronRight,\n} from \"icons\";\nimport {\n Button,\n Description,\n Field,\n Label,\n ListBox,\n ListBoxItem,\n Text,\n TextSmallStrong,\n} from \"primitives\";\nimport { useContext, useEffect, useMemo, useState } from \"react\";\nimport {\n Button as RACButton,\n CalendarCell as RACCalendarCell,\n CalendarGrid as RACCalendarGrid,\n DateField as RACDateField,\n DateInput as RACDateInput,\n DateSegment as RACDateSegment,\n Dialog as RACDialog,\n DialogTrigger as RACDialogTrigger,\n Group as RACGroup,\n Heading as RACHeading,\n I18nProvider as RACI18nProvider,\n Label as RACLabel,\n Popover as RACPopover,\n RangeCalendar as RACRangeCalendar,\n RangeCalendarStateContext,\n useLocale,\n type TimeValue,\n} from \"react-aria-components\";\nimport {\n createDateRangePresets,\n type DateRangePresetKey,\n type FirstDayOfWeek,\n} from \"./dateRangePresets\";\nimport \"./daterangepicker.css\";\n\nconst dayStartTime = () => new Time(0, 0, 0);\nconst dayEndTime = () => new Time(23, 59, 59);\n\nfunction CalendarAnchorSync({\n onAnchorChange,\n}: {\n onAnchorChange: (anchor: DateValue | null) => void;\n}) {\n const state = useContext(RangeCalendarStateContext);\n const anchor = state?.anchorDate ?? null;\n const anchorKey = anchor?.toString();\n useEffect(() => {\n onAnchorChange(anchor);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [anchorKey]);\n return null;\n}\n\nexport interface DateRangePreset {\n id: string;\n label: string;\n getValue: () => { start: DateValue; end: DateValue };\n}\n\nexport interface DateRangePickerValue {\n preset?: DateRangePreset;\n start: DateValue | null;\n end: DateValue | null;\n}\n\nexport interface DateRangePickerLabels {\n placeholder: string;\n relativeLabel: string;\n absoluteLabel: string;\n startDateLabel: string;\n endDateLabel: string;\n cancelLabel?: string | null;\n applyLabel?: string | null;\n}\n\nexport interface DateRangePickerProps {\n className?: string;\n locale?: string;\n label?: string;\n \"aria-label\"?: string;\n description?: string;\n errorMessage?: string;\n labels: DateRangePickerLabels;\n intervals?: DateRangePreset[];\n presetKeys?: DateRangePresetKey[];\n presetLabels?: Record<DateRangePresetKey, string>;\n hideTime?: boolean;\n minValue?: DateValue;\n maxValue?: DateValue;\n timezone?: string;\n firstDayOfWeek?: FirstDayOfWeek;\n isDisabled?: boolean;\n isRequired?: boolean;\n value?: DateRangePickerValue;\n defaultValue?: DateRangePickerValue;\n onChange?: (value: DateRangePickerValue) => void;\n}\n\ntype DateRange = { start: DateValue; end: DateValue };\n\ntype DraftState = {\n range: DateRange | null;\n startTime: TimeValue | null;\n endTime: TimeValue | null;\n preset?: DateRangePreset;\n};\n\nconst timeFromDateValue = (date: DateValue | null): TimeValue | null =>\n date && \"hour\" in date ? new Time(date.hour, date.minute, date.second) : null;\n\nconst inTimeZone = (date: DateValue, timezone: string): DateValue =>\n \"timeZone\" in date ? toTimeZone(date as ZonedDateTime, timezone) : date;\n\nconst toDraftState = (value: DateRangePickerValue | undefined, timezone: string): DraftState => {\n if (!value || (!value.start && !value.end)) {\n return { range: null, startTime: null, endTime: null, preset: value?.preset };\n }\n const start: DateValue | null = value.start && inTimeZone(value.start, timezone);\n const end: DateValue | null = value.end && inTimeZone(value.end, timezone);\n const range =\n start && end ? { start: toCalendarDate(start), end: toCalendarDate(end) } : null;\n return {\n range,\n startTime: timeFromDateValue(start),\n endTime: timeFromDateValue(end),\n preset: value.preset,\n };\n};\n\nconst combineDateAndTime = (\n date: DateValue | undefined,\n time: TimeValue | null,\n hideTime: boolean,\n): DateValue | null => {\n if (!date) return null;\n const calendarDate = toCalendarDate(date);\n if (hideTime || !time) return calendarDate;\n return toCalendarDateTime(calendarDate, time);\n};\n\nconst draftToValue = (\n draft: DraftState,\n hideTime: boolean,\n): DateRangePickerValue => ({\n preset: draft.preset,\n start: combineDateAndTime(draft.range?.start, draft.startTime, hideTime),\n end: combineDateAndTime(draft.range?.end, draft.endTime, hideTime),\n});\n\nexport function DateRangePicker({\n className,\n locale: localeProp,\n label,\n \"aria-label\": ariaLabel,\n description,\n errorMessage,\n labels,\n intervals: intervalsProp,\n presetKeys,\n presetLabels,\n hideTime = false,\n minValue,\n maxValue,\n timezone: timezoneProp,\n firstDayOfWeek,\n isDisabled = false,\n isRequired = false,\n value,\n defaultValue,\n onChange,\n}: DateRangePickerProps) {\n // Sem container explícito o popover faz portal no document.body — fora da\n // shadow root do MFE, sem CSS. Ver ui/hooks/useOverlayPortal.\n const portalContainer = useOverlayPortalContainer();\n const { locale: ambientLocale } = useLocale();\n const locale = localeProp ?? ambientLocale ?? \"pt-BR\";\n const timezone = timezoneProp ?? getLocalTimeZone();\n const {\n placeholder,\n relativeLabel,\n absoluteLabel,\n startDateLabel,\n endDateLabel,\n cancelLabel,\n applyLabel,\n } = labels;\n\n const intervals = useMemo(() => {\n if (intervalsProp) return intervalsProp;\n if (!presetKeys) return undefined;\n if (!presetLabels) {\n throw new Error(\n \"DateRangePicker: `presetLabels` is required when `presetKeys` is provided.\",\n );\n }\n return createDateRangePresets({\n timezone: timezoneProp,\n firstDayOfWeek,\n include: presetKeys,\n labels: presetLabels,\n });\n }, [intervalsProp, presetKeys, presetLabels, firstDayOfWeek, timezoneProp]);\n\n const [committed, setCommitted] = useState<DraftState>(() =>\n toDraftState(value ?? defaultValue, timezone),\n );\n const [draft, setDraft] = useState<DraftState>(committed);\n const [previewStart, setPreviewStart] = useState<DateValue | null>(null);\n const [isOpen, setIsOpen] = useState(false);\n\n useEffect(() => {\n if (value !== undefined) setCommitted(toDraftState(value, timezone));\n }, [value, timezone]);\n\n const clearPreset = (next: DraftState): DraftState => ({\n ...next,\n preset: undefined,\n });\n\n const withDefaultTimes = (next: DraftState): DraftState =>\n hideTime\n ? next\n : {\n ...next,\n startTime: next.startTime ?? dayStartTime(),\n endTime: next.endTime ?? dayEndTime(),\n };\n\n const handleOpenChange = (open: boolean) => {\n if (open) {\n setDraft(committed);\n setPreviewStart(null);\n }\n setIsOpen(open);\n };\n\n const selectPreset = (preset: DateRangePreset) => {\n setPreviewStart(null);\n const presetRange = preset.getValue();\n const start: DateValue = inTimeZone(presetRange.start, timezone);\n const end: DateValue = inTimeZone(presetRange.end, timezone);\n setDraft({\n range: { start: toCalendarDate(start), end: toCalendarDate(end) },\n startTime: timeFromDateValue(start),\n endTime: timeFromDateValue(end),\n preset,\n });\n };\n\n const handleAnchorChange = (anchor: DateValue | null) => {\n setPreviewStart(anchor);\n if (anchor && !hideTime) {\n setDraft((current) =>\n clearPreset({\n ...current,\n startTime: current.startTime ?? dayStartTime(),\n }),\n );\n }\n };\n\n const setRange = (range: DateRange | null) => {\n setPreviewStart(null);\n setDraft((current) => withDefaultTimes(clearPreset({ ...current, range })));\n };\n\n const setStartField = (dateTime: DateValue | null) => {\n if (!dateTime) return;\n setPreviewStart(null);\n const date = toCalendarDate(dateTime);\n const time = timeFromDateValue(dateTime);\n setDraft((current) => {\n const nextStartTime = hideTime\n ? current.startTime\n : (time ?? current.startTime ?? dayStartTime());\n const start = combineDateAndTime(date, nextStartTime, hideTime);\n const currentEnd = combineDateAndTime(\n current.range?.end,\n current.endTime,\n hideTime,\n );\n const pushEnd = Boolean(start && currentEnd && currentEnd.compare(start) < 0);\n return clearPreset({\n ...current,\n range: {\n start: date,\n end: pushEnd || !current.range?.end ? date : current.range.end,\n },\n startTime: nextStartTime,\n endTime: pushEnd ? nextStartTime : current.endTime,\n });\n });\n };\n\n const setEndField = (dateTime: DateValue | null) => {\n if (!dateTime) return;\n const date = toCalendarDate(dateTime);\n const time = timeFromDateValue(dateTime);\n setDraft((current) => {\n const nextEndTime = hideTime\n ? current.endTime\n : (time ?? current.endTime ?? dayEndTime());\n const end = combineDateAndTime(date, nextEndTime, hideTime);\n const start = combineDateAndTime(\n current.range?.start,\n current.startTime,\n hideTime,\n );\n if (start && end && end.compare(start) < 0) return current;\n return clearPreset({\n ...current,\n range: { start: current.range?.start ?? date, end: date },\n endTime: nextEndTime,\n });\n });\n };\n\n const apply = () => {\n setCommitted(draft);\n onChange?.(draftToValue(draft, hideTime));\n setIsOpen(false);\n };\n\n const cancel = () => setIsOpen(false);\n\n const showFooter = Boolean(cancelLabel || applyLabel);\n\n const triggerText = () => {\n if (committed.preset) return committed.preset.label;\n if (committed.range) {\n const format = (date: DateValue) =>\n date\n .toDate(timezone)\n .toLocaleString(locale, {\n day: \"2-digit\",\n month: \"2-digit\",\n year: \"numeric\",\n ...(hideTime\n ? {}\n : { hour: \"2-digit\", minute: \"2-digit\", second: \"2-digit\" }),\n });\n const start = combineDateAndTime(\n committed.range.start,\n committed.startTime,\n hideTime,\n );\n const end = combineDateAndTime(\n committed.range.end,\n committed.endTime,\n hideTime,\n );\n if (start && end) return `${format(start)} — ${format(end)}`;\n }\n return null;\n };\n\n const selectedText = triggerText();\n const hasPresets = Boolean(intervals && intervals.length > 0);\n const fieldGranularity = hideTime ? \"day\" : \"second\";\n const startFieldValue = combineDateAndTime(\n draft.range?.start ?? previewStart ?? undefined,\n draft.startTime,\n hideTime,\n );\n const endFieldValue = combineDateAndTime(\n draft.range?.end ?? undefined,\n draft.endTime,\n hideTime,\n );\n\n const content = (\n <Field className={clsx(className, \"date-range-picker\")}>\n {label && <Label>{label}</Label>}\n <RACDialogTrigger isOpen={isOpen} onOpenChange={handleOpenChange}>\n <RACButton\n className=\"date-range-picker-trigger\"\n isDisabled={isDisabled}\n aria-label={label ? undefined : (ariaLabel ?? placeholder)}\n aria-required={isRequired || undefined}\n data-invalid={errorMessage ? true : undefined}\n >\n {committed.preset ? (\n <span className=\"date-range-picker-preset-badge\">\n <IconCalendar aria-hidden=\"true\" />\n {committed.preset.label}\n </span>\n ) : (\n <span\n className=\"date-range-picker-value\"\n data-placeholder={selectedText ? undefined : true}\n >\n {selectedText ?? placeholder}\n </span>\n )}\n <IconChevronDown aria-hidden=\"true\" />\n </RACButton>\n <RACPopover\n className=\"date-range-picker-popover\"\n placement=\"bottom start\"\n UNSTABLE_portalContainer={portalContainer}\n >\n <RACDialog className=\"date-range-picker-dialog\">\n <div className=\"date-range-picker-body\">\n {hasPresets && (\n <div className=\"date-range-picker-presets\">\n <TextSmallStrong className=\"date-range-picker-section-title\">\n {relativeLabel}\n </TextSmallStrong>\n <ListBox\n aria-label={relativeLabel}\n className=\"date-range-picker-presets-list\"\n selectionMode=\"single\"\n selectedKeys={draft.preset ? [draft.preset.id] : []}\n items={intervals}\n onSelectionChange={(keys) => {\n const [id] = [...keys];\n const preset = intervals?.find((item) => item.id === id);\n if (preset) selectPreset(preset);\n }}\n >\n {(item) => (\n <ListBoxItem\n id={item.id}\n textValue={item.label}\n className=\"date-range-picker-preset-item\"\n >\n <span>{item.label}</span>\n <IconCheck\n aria-hidden=\"true\"\n className=\"date-range-picker-preset-check\"\n />\n </ListBoxItem>\n )}\n </ListBox>\n </div>\n )}\n\n <div className=\"date-range-picker-absolute\">\n <TextSmallStrong className=\"date-range-picker-section-title\">\n {absoluteLabel}\n </TextSmallStrong>\n\n <div className=\"date-range-picker-fields\">\n <RACDateField\n className=\"date-range-picker-datefield\"\n granularity={fieldGranularity}\n value={startFieldValue}\n minValue={minValue}\n maxValue={endFieldValue ?? maxValue}\n onChange={setStartField}\n >\n <RACLabel className=\"date-range-picker-field-label\">\n {startDateLabel}\n </RACLabel>\n <RACGroup className=\"date-range-picker-input\">\n <RACDateInput>\n {(segment) => <RACDateSegment segment={segment} />}\n </RACDateInput>\n <IconCalendar aria-hidden=\"true\" />\n </RACGroup>\n </RACDateField>\n\n <RACDateField\n className=\"date-range-picker-datefield\"\n granularity={fieldGranularity}\n value={endFieldValue}\n minValue={startFieldValue ?? minValue}\n maxValue={maxValue}\n onChange={setEndField}\n >\n <RACLabel className=\"date-range-picker-field-label\">\n {endDateLabel}\n </RACLabel>\n <RACGroup className=\"date-range-picker-input\">\n <RACDateInput>\n {(segment) => <RACDateSegment segment={segment} />}\n </RACDateInput>\n <IconCalendar aria-hidden=\"true\" />\n </RACGroup>\n </RACDateField>\n </div>\n\n <RACRangeCalendar\n className=\"date-range-picker-calendar\"\n aria-label={absoluteLabel}\n value={draft.range}\n minValue={minValue}\n maxValue={maxValue}\n onChange={setRange}\n >\n <CalendarAnchorSync onAnchorChange={handleAnchorChange} />\n <header className=\"date-range-picker-calendar-header\">\n <RACButton\n slot=\"previous\"\n className=\"date-range-picker-calendar-nav\"\n >\n <IconChevronLeft aria-hidden=\"true\" />\n </RACButton>\n <RACHeading className=\"date-range-picker-calendar-heading\" />\n <RACButton\n slot=\"next\"\n className=\"date-range-picker-calendar-nav\"\n >\n <IconChevronRight aria-hidden=\"true\" />\n </RACButton>\n </header>\n <RACCalendarGrid className=\"date-range-picker-calendar-grid\">\n {(date) => (\n <RACCalendarCell\n date={date}\n className=\"date-range-picker-calendar-cell\"\n />\n )}\n </RACCalendarGrid>\n </RACRangeCalendar>\n </div>\n </div>\n\n {showFooter && (\n <div className=\"date-range-picker-actions\">\n {cancelLabel && (\n <Button variant=\"neutral\" size=\"small\" onPress={cancel}>\n {cancelLabel}\n </Button>\n )}\n {applyLabel && (\n <Button variant=\"primary\" size=\"small\" onPress={apply}>\n {applyLabel}\n </Button>\n )}\n </div>\n )}\n </RACDialog>\n </RACPopover>\n </RACDialogTrigger>\n {description && <Description>{description}</Description>}\n {errorMessage && (\n <Text className=\"date-range-picker-error\" elementType=\"span\">\n {errorMessage}\n </Text>\n )}\n </Field>\n );\n\n return localeProp ? (\n <RACI18nProvider locale={localeProp}>{content}</RACI18nProvider>\n ) : (\n content\n );\n}\n"],"names":["dayStartTime","Time","dayEndTime","CalendarAnchorSync","onAnchorChange","state","useContext","RangeCalendarStateContext","anchor","anchorKey","useEffect","timeFromDateValue","date","inTimeZone","timezone","toTimeZone","toDraftState","value","start","end","toCalendarDate","combineDateAndTime","time","hideTime","calendarDate","toCalendarDateTime","draftToValue","draft","_a","_b","DateRangePicker","className","localeProp","label","ariaLabel","description","errorMessage","labels","intervalsProp","presetKeys","presetLabels","minValue","maxValue","timezoneProp","firstDayOfWeek","isDisabled","isRequired","defaultValue","onChange","portalContainer","useOverlayPortalContainer","ambientLocale","useLocale","locale","getLocalTimeZone","placeholder","relativeLabel","absoluteLabel","startDateLabel","endDateLabel","cancelLabel","applyLabel","intervals","useMemo","createDateRangePresets","committed","setCommitted","useState","setDraft","previewStart","setPreviewStart","isOpen","setIsOpen","clearPreset","next","withDefaultTimes","handleOpenChange","open","selectPreset","preset","presetRange","handleAnchorChange","current","setRange","range","setStartField","dateTime","nextStartTime","currentEnd","pushEnd","setEndField","nextEndTime","apply","cancel","showFooter","selectedText","format","hasPresets","fieldGranularity","startFieldValue","endFieldValue","content","jsxs","Field","clsx","jsx","Label","RACDialogTrigger","RACButton","IconCalendar","IconChevronDown","RACPopover","RACDialog","TextSmallStrong","ListBox","keys","id","item","ListBoxItem","IconCheck","RACDateField","RACLabel","RACGroup","RACDateInput","segment","RACDateSegment","RACRangeCalendar","IconChevronLeft","RACHeading","IconChevronRight","RACCalendarGrid","RACCalendarCell","Button","Description","Text","RACI18nProvider"],"mappings":"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"}
|