@bigbinary/neeto-atoms 1.0.131 → 1.0.132
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/{DatePicker-Bt2KabJm.js → DatePicker-B3kUEuKH.js} +2 -2
- package/dist/{DatePicker-Bt2KabJm.js.map → DatePicker-B3kUEuKH.js.map} +1 -1
- package/dist/{TimePicker-BpdNIhWb.js → TimePicker-BA7JhrYd.js} +2 -2
- package/dist/TimePicker-BA7JhrYd.js.map +1 -0
- package/dist/{TimePickerPanel--KDX5QwS.js → TimePickerPanel-n-Dz1p5N.js} +13 -7
- package/dist/TimePickerPanel-n-Dz1p5N.js.map +1 -0
- package/dist/cjs/{DatePicker-Cu6g5I9O.js → DatePicker-Da8-hSjF.js} +2 -2
- package/dist/cjs/{DatePicker-Cu6g5I9O.js.map → DatePicker-Da8-hSjF.js.map} +1 -1
- package/dist/cjs/{TimePicker-BPe5rQ66.js → TimePicker-CVGXEgk5.js} +2 -2
- package/dist/cjs/TimePicker-CVGXEgk5.js.map +1 -0
- package/dist/cjs/{TimePickerPanel-DX6cjrSN.js → TimePickerPanel-DvVRLqeM.js} +13 -7
- package/dist/cjs/TimePickerPanel-DvVRLqeM.js.map +1 -0
- package/dist/cjs/components/DatePicker.js +2 -2
- package/dist/cjs/components/TimePicker.js +2 -2
- package/dist/cjs/components/index.js +3 -3
- package/dist/cjs/index.js +3 -3
- package/dist/cjs/primitives/AlertDialog.js +7 -39
- package/dist/cjs/primitives/AlertDialog.js.map +1 -1
- package/dist/cjs/primitives/index.js +1 -1
- package/dist/components/DatePicker.js +2 -2
- package/dist/components/TimePicker/types.d.ts +4 -1
- package/dist/components/TimePicker/utils.d.ts +1 -1
- package/dist/components/TimePicker.js +2 -2
- package/dist/components/index.js +3 -3
- package/dist/index.js +3 -3
- package/package.json +1 -1
- package/dist/TimePicker-BpdNIhWb.js.map +0 -1
- package/dist/TimePickerPanel--KDX5QwS.js.map +0 -1
- package/dist/cjs/TimePicker-BPe5rQ66.js.map +0 -1
- package/dist/cjs/TimePickerPanel-DX6cjrSN.js.map +0 -1
|
@@ -295,6 +295,15 @@ const dateToTimeValue = (date) => ({
|
|
|
295
295
|
const coerceToTimeValue = (value) => {
|
|
296
296
|
if (!value) return null;
|
|
297
297
|
if (value instanceof Date) return dateToTimeValue(value);
|
|
298
|
+
if (typeof value === "string") {
|
|
299
|
+
const parsed = utils.dayjs(value);
|
|
300
|
+
if (!parsed.isValid()) return null;
|
|
301
|
+
return {
|
|
302
|
+
hours: parsed.hour(),
|
|
303
|
+
minutes: parsed.minute(),
|
|
304
|
+
seconds: parsed.second()
|
|
305
|
+
};
|
|
306
|
+
}
|
|
298
307
|
const dayjsLike = value;
|
|
299
308
|
if (typeof dayjsLike.hour === "function") {
|
|
300
309
|
return {
|
|
@@ -306,12 +315,9 @@ const coerceToTimeValue = (value) => {
|
|
|
306
315
|
if (typeof dayjsLike.toDate === "function") {
|
|
307
316
|
return dateToTimeValue(dayjsLike.toDate());
|
|
308
317
|
}
|
|
309
|
-
const
|
|
310
|
-
return
|
|
311
|
-
|
|
312
|
-
minutes: timeValue.minutes,
|
|
313
|
-
seconds: timeValue.seconds ?? 0
|
|
314
|
-
};
|
|
318
|
+
const { hours, minutes, seconds } = value;
|
|
319
|
+
if (typeof hours !== "number" || typeof minutes !== "number") return null;
|
|
320
|
+
return { hours, minutes, seconds: seconds ?? 0 };
|
|
315
321
|
};
|
|
316
322
|
const timeValueEquals = (a, b) => {
|
|
317
323
|
if (a === null && b === null) return true;
|
|
@@ -568,4 +574,4 @@ exports.timeValueToDayjs = timeValueToDayjs;
|
|
|
568
574
|
exports.useControlledOpen = useControlledOpen;
|
|
569
575
|
exports.useCursorRestore = useCursorRestore;
|
|
570
576
|
exports.useOutsideClickClose = useOutsideClickClose;
|
|
571
|
-
//# sourceMappingURL=TimePickerPanel-
|
|
577
|
+
//# sourceMappingURL=TimePickerPanel-DvVRLqeM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TimePickerPanel-DvVRLqeM.js","sources":["../../src/hooks/useControlledOpen.ts","../../src/hooks/useCursorRestore.ts","../../src/hooks/useOutsideClickClose.ts","../../src/utils/inputMask.ts","../../src/components/TimePicker/constants.ts","../../src/components/TimePicker/utils.ts","../../src/components/TimePicker/TimeColumn.tsx","../../src/components/TimePicker/TimePickerPanel.tsx"],"sourcesContent":["import { useCallback, useState } from \"react\";\n\n/** Manages popover open state, supporting both controlled and uncontrolled modes. */\nexport function useControlledOpen(\n controlledOpen: boolean | undefined,\n onOpenChange?: (open: boolean) => void\n): { open: boolean; setOpen: (next: boolean) => void } {\n const [internalOpen, setInternalOpen] = useState(false);\n\n const isControlled = controlledOpen !== undefined;\n const open = isControlled ? controlledOpen : internalOpen;\n\n const setOpen = useCallback(\n (next: boolean) => {\n if (!isControlled) setInternalOpen(next);\n onOpenChange?.(next);\n },\n [isControlled, onOpenChange]\n );\n\n return { open, setOpen };\n}\n","import { MutableRefObject, RefObject, useLayoutEffect } from \"react\";\n\ntype CursorTarget = {\n inputRef: RefObject<HTMLInputElement | null>;\n cursorRef: MutableRefObject<number | null>;\n};\n\n/** Restores cursor selection range on the active input after each render, then clears the stored position. */\nexport function useCursorRestore(targets: CursorTarget[]): void {\n useLayoutEffect(() => {\n for (const { inputRef, cursorRef } of targets) {\n const inputEl = inputRef.current;\n const cursor = cursorRef.current;\n\n if (cursor !== null && inputEl && document.activeElement === inputEl) {\n inputEl.setSelectionRange(cursor, cursor);\n cursorRef.current = null;\n }\n }\n });\n}\n","import { RefObject, useEffect } from \"react\";\n\n/** Calls onClose when a pointerdown occurs outside both the container ref and a popover element. */\nexport function useOutsideClickClose({\n enabled,\n containerRef,\n popoverElementId,\n onClose,\n}: {\n enabled: boolean;\n containerRef: RefObject<HTMLElement | null>;\n popoverElementId: string;\n onClose: () => void;\n}): void {\n useEffect(() => {\n if (!enabled) return;\n\n const handlePointerDown = (e: PointerEvent) => {\n const target = e.target as HTMLElement;\n if (containerRef.current?.contains(target)) return;\n\n const popoverEl = document.getElementById(popoverElementId);\n if (popoverEl?.contains(target)) return;\n\n onClose();\n };\n\n document.addEventListener(\"pointerdown\", handlePointerDown);\n\n return () => document.removeEventListener(\"pointerdown\", handlePointerDown);\n }, [enabled, containerRef, popoverElementId, onClose]);\n}\n","export interface MaskTemplate {\n pattern: string;\n hasAmPm: boolean;\n}\n\nconst FORMAT_CHARS = new Set([\"d\", \"M\", \"y\", \"H\", \"h\", \"m\", \"s\"]);\n\nconst DIGIT = /\\d/;\nconst AMPM_CHAR = /[APM]/;\nconst VALID_CHAR = /[\\dAPM]/i;\n\nconst isSlot = (ch: string) => ch === \"#\" || ch === \"@\";\n\nconst isValidChar = (ch: string, hasAmPm: boolean) =>\n DIGIT.test(ch) || (hasAmPm && AMPM_CHAR.test(ch));\n\n/**\n * Convert a display format string into a mask template.\n *\n * Format chars (d, M, y, H, h, m, s) → digit slots (#).\n * A (from AA) → ampm letter slots (@).\n * Everything else → literal separators.\n *\n * Examples:\n * \"dd/MM/yyyy\" → \"##/##/####\"\n * \"hh:mm AA\" → \"##:## @@\"\n */\nexport const buildMaskTemplate = (format: string): MaskTemplate => {\n let pattern = \"\";\n let hasAmPm = false;\n\n for (const char of format) {\n if (FORMAT_CHARS.has(char)) {\n pattern += \"#\";\n } else if (char === \"A\") {\n pattern += \"@\";\n hasAmPm = true;\n } else {\n pattern += char;\n }\n }\n\n return { pattern, hasAmPm };\n};\n\n/**\n * Build a range mask template: two single-date templates joined by \" - \".\n */\nexport const buildRangeMaskTemplate = (format: string): MaskTemplate => {\n const single = buildMaskTemplate(format);\n\n return {\n pattern: `${single.pattern} - ${single.pattern}`,\n hasAmPm: single.hasAmPm,\n };\n};\n\n// Tokens like MMM/MMMM produce textual output (month names), not digits.\nconst TEXTUAL_WHEN_LONG = new Set([\"M\", \"d\"]);\n\n/**\n * Check if a format string uses only fixed-width numeric tokens (dd, MM, yyyy, etc).\n * Returns false for single-char tokens (d, M) and textual tokens (MMM, MMMM).\n */\nexport const isFixedWidthFormat = (format: string): boolean => {\n let i = 0;\n while (i < format.length) {\n const char = format[i];\n if (!FORMAT_CHARS.has(char)) {\n i++;\n continue;\n }\n\n let count = 0;\n while (i + count < format.length && format[i + count] === char) count++;\n\n if (count === 1) return false;\n if (count >= 3 && TEXTUAL_WHEN_LONG.has(char)) return false;\n\n i += count;\n }\n\n return true;\n};\n\nconst findDeletionPoint = (prev: string, input: string): number => {\n for (let i = 0; i < prev.length; i++) {\n if (i >= input.length || input[i] !== prev[i]) return i;\n }\n\n return prev.length - 1;\n};\n\nconst hasDigitsAfter = (\n text: string,\n pos: number,\n pattern: string\n): boolean => {\n for (let i = pos + 1; i < text.length && i < pattern.length; i++) {\n if (isSlot(pattern[i]) && text[i] !== \"_\") return true;\n }\n\n return false;\n};\n\nconst countValidBefore = (\n text: string,\n pos: number,\n hasAmPm: boolean\n): number => {\n let count = 0;\n for (let i = 0; i < pos && i < text.length; i++) {\n if (isValidChar(text[i].toUpperCase(), hasAmPm)) count++;\n }\n\n return count;\n};\n\nconst extractWithPattern = (text: string, pattern: string): string[] => {\n const chars: string[] = [];\n const upper = text.toUpperCase();\n let pIdx = 0;\n\n for (let i = 0; i < upper.length; i++) {\n const ch = upper[i];\n while (pIdx < pattern.length && !isSlot(pattern[pIdx])) pIdx++;\n if (pIdx >= pattern.length) break;\n\n if (pattern[pIdx] === \"#\" && DIGIT.test(ch)) {\n chars.push(ch);\n pIdx++;\n } else if (pattern[pIdx] === \"@\" && AMPM_CHAR.test(ch)) {\n chars.push(ch);\n pIdx++;\n }\n }\n\n return chars;\n};\n\nconst rebuildFromChars = (validChars: string[], pattern: string): string => {\n let result = \"\";\n let charIdx = 0;\n\n for (let i = 0; i < pattern.length && charIdx < validChars.length; i++) {\n if (!isSlot(pattern[i])) continue;\n\n result += validChars[charIdx];\n charIdx++;\n\n let nextSlot = i + 1;\n while (nextSlot < pattern.length && !isSlot(pattern[nextSlot])) nextSlot++;\n\n const hasMoreChars = charIdx < validChars.length;\n const hasMoreSlots = nextSlot < pattern.length;\n\n if (hasMoreChars || hasMoreSlots) {\n for (let s = i + 1; s < nextSlot; s++) result += pattern[s];\n }\n\n if (hasMoreChars) i = nextSlot - 1;\n }\n\n return result;\n};\n\nconst stripTrailingSeparators = (text: string): string => {\n let end = text.length;\n while (end > 0 && !VALID_CHAR.test(text[end - 1])) end--;\n\n return text.slice(0, end);\n};\n\nconst cursorSlotToDisplayPos = (\n result: string,\n cursorSlot: number,\n pattern: string,\n skipSeparators: boolean\n): number => {\n if (cursorSlot <= 0) return 0;\n\n let slotsFound = 0;\n for (let i = 0; i < result.length; i++) {\n if (!VALID_CHAR.test(result[i])) continue;\n\n slotsFound++;\n if (slotsFound !== cursorSlot) continue;\n\n let pos = i + 1;\n if (skipSeparators) {\n while (\n pos < result.length &&\n pos < pattern.length &&\n !isSlot(pattern[pos])\n ) {\n pos++;\n }\n }\n\n return pos;\n }\n\n return result.length;\n};\n\nconst isValidForSlot = (ch: string, slotChar: string): boolean =>\n slotChar === \"#\"\n ? DIGIT.test(ch)\n : slotChar === \"@\"\n ? AMPM_CHAR.test(ch)\n : false;\n\n/**\n * Apply the mask template to raw input text.\n *\n * - Auto-inserts separators as the user types.\n * - When the mask is full, typing in the middle replaces the digit at cursor.\n * - Backspacing in the middle replaces the digit with '_' placeholder\n * instead of shifting subsequent digits.\n * - AM/PM auto-completes: typing \"A\" or \"P\" expands to \"AM\" or \"PM\".\n */\nexport const applyMask = (\n inputText: string,\n template: MaskTemplate,\n previousText = \"\",\n nativeCursorPos?: number | null\n): { text: string; cursorPosition: number } => {\n const { pattern, hasAmPm } = template;\n\n if (!inputText) return { text: \"\", cursorPosition: 0 };\n\n const isDeleting = inputText.length < previousText.length;\n\n // When backspacing from a full mask, replace the deleted digit with '_'\n // instead of shifting. This keeps other fields (day/month/year) intact.\n if (isDeleting && previousText.length >= pattern.length) {\n const delPos = findDeletionPoint(previousText, inputText);\n\n if (\n !hasDigitsAfter(previousText, delPos, pattern) ||\n delPos >= pattern.length\n ) {\n // Deletion at or near the end — fall through to normal rebuild\n } else if (isSlot(pattern[delPos])) {\n return {\n text:\n previousText.substring(0, delPos) +\n \"_\" +\n previousText.substring(delPos + 1),\n cursorPosition: delPos,\n };\n } else {\n // Separator deleted — restore it\n return { text: previousText, cursorPosition: delPos };\n }\n }\n\n const totalSlots = [...pattern].filter(isSlot).length;\n const slotPatternPositions = [...pattern].reduce<number[]>(\n (acc, ch, i) => (isSlot(ch) ? [...acc, i] : acc),\n []\n );\n\n const cursorInInput = nativeCursorPos ?? inputText.length;\n const cursorSlot = countValidBefore(inputText, cursorInInput, hasAmPm);\n const prevChars = extractWithPattern(previousText, pattern);\n let validChars: string[];\n\n // Replace mode: single char typed on a full mask replaces the digit at cursor.\n const isSingleCharInsert =\n !isDeleting &&\n prevChars.length >= totalSlots &&\n inputText.length - previousText.length === 1;\n\n if (isSingleCharInsert) {\n const insertSlot = cursorSlot - 1;\n const typedChar = inputText[cursorInInput - 1]?.toUpperCase() ?? \"\";\n const slotChar =\n slotPatternPositions[insertSlot] != null\n ? pattern[slotPatternPositions[insertSlot]]\n : null;\n\n if (!slotChar || !isValidForSlot(typedChar, slotChar)) {\n return {\n text: previousText,\n cursorPosition: Math.min(cursorInInput, previousText.length),\n };\n }\n\n validChars = [...prevChars];\n validChars[insertSlot] = typedChar;\n } else {\n validChars = extractWithPattern(inputText, pattern).slice(0, totalSlots);\n }\n\n let result = rebuildFromChars(validChars, pattern);\n\n if (isDeleting) {\n result = stripTrailingSeparators(result);\n }\n\n if (hasAmPm && !isDeleting) {\n const ampmStart = pattern.indexOf(\"@\");\n if (ampmStart >= 0 && result.length > ampmStart) {\n const ampmPortion = result.slice(ampmStart);\n if (ampmPortion === \"A\") result = result.slice(0, ampmStart) + \"AM\";\n else if (ampmPortion === \"P\") result = result.slice(0, ampmStart) + \"PM\";\n }\n }\n\n return {\n text: result,\n cursorPosition: cursorSlotToDisplayPos(\n result,\n cursorSlot,\n pattern,\n !isDeleting\n ),\n };\n};\n","export const COLUMN_HEIGHT = 224;\nexport const ITEM_HEIGHT = 32;\nexport const PERIODS = [\"AM\", \"PM\"] as const;\n\nexport const SIZE_CONFIG = {\n small: {\n trigger: \"h-8 md:h-7\",\n input: \"text-base md:text-xs\",\n icon: \"size-3.5\",\n },\n medium: {\n trigger: \"h-8\",\n input: \"text-base md:text-sm\",\n icon: \"size-4\",\n },\n large: {\n trigger: \"h-10\",\n input: \"text-base md:text-sm\",\n icon: \"size-5\",\n },\n} as const;\n","import pureDayjs from \"dayjs\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat\";\nimport type { Dayjs } from \"dayjs\";\nimport { dayjs } from \"@bigbinary/neeto-commons-frontend/utils\";\n\nimport type { TimeValue } from \"./types\";\n\npureDayjs.extend(customParseFormat);\n\nexport const generateRange = (\n start: number,\n end: number,\n step = 1\n): number[] => {\n const result: number[] = [];\n for (let i = start; i <= end; i += step) {\n result.push(i);\n }\n\n return result;\n};\n\nexport const to12Hour = (\n hour24: number\n): { hour12: number; period: \"AM\" | \"PM\" } => {\n const period = hour24 >= 12 ? \"PM\" : \"AM\";\n const hour12 = hour24 % 12 || 12;\n\n return { hour12, period };\n};\n\nexport const to24Hour = (hour12: number, period: \"AM\" | \"PM\"): number => {\n if (period === \"AM\") {\n return hour12 === 12 ? 0 : hour12;\n }\n\n return hour12 === 12 ? 12 : hour12 + 12;\n};\n\nexport const dateToTimeValue = (date: Date): TimeValue => ({\n hours: date.getHours(),\n minutes: date.getMinutes(),\n seconds: date.getSeconds(),\n});\n\nexport const coerceToTimeValue = (\n value: TimeValue | Date | Dayjs | string | null | undefined\n): TimeValue | null => {\n if (!value) return null;\n if (value instanceof Date) return dateToTimeValue(value);\n\n if (typeof value === \"string\") {\n const parsed = dayjs(value);\n if (!parsed.isValid()) return null;\n\n return {\n hours: parsed.hour(),\n minutes: parsed.minute(),\n seconds: parsed.second(),\n };\n }\n\n const dayjsLike = value as {\n toDate?: () => Date;\n hour?: () => number;\n minute?: () => number;\n second?: () => number;\n };\n\n if (typeof dayjsLike.hour === \"function\") {\n return {\n hours: dayjsLike.hour!(),\n minutes: dayjsLike.minute!(),\n seconds: dayjsLike.second?.() ?? 0,\n };\n }\n\n if (typeof dayjsLike.toDate === \"function\") {\n return dateToTimeValue(dayjsLike.toDate());\n }\n\n const { hours, minutes, seconds } = value as TimeValue;\n\n if (typeof hours !== \"number\" || typeof minutes !== \"number\") return null;\n\n return { hours, minutes, seconds: seconds ?? 0 };\n};\n\nexport const timeValueEquals = (\n a: TimeValue | null,\n b: TimeValue | null\n): boolean => {\n if (a === null && b === null) return true;\n if (!a || !b) return false;\n\n return (\n a.hours === b.hours &&\n a.minutes === b.minutes &&\n (a.seconds ?? 0) === (b.seconds ?? 0)\n );\n};\n\nexport const getDefaultTimeMaskFormat = (\n format: \"12\" | \"24\",\n showSeconds: boolean\n): string => {\n if (format === \"12\") return showSeconds ? \"hh:mm:ss AA\" : \"hh:mm AA\";\n\n return showSeconds ? \"HH:mm:ss\" : \"HH:mm\";\n};\n\nexport const getTimePlaceholder = (\n format: \"12\" | \"24\",\n showSeconds: boolean,\n displayFormat?: string\n): string => displayFormat ?? getDefaultTimeMaskFormat(format, showSeconds);\n\nexport const padNumber = (num: number, length = 2): string =>\n String(num).padStart(length, \"0\");\n\nexport const formatTimeDisplay = (\n time: TimeValue | null,\n format: \"12\" | \"24\",\n showSeconds: boolean\n): string => {\n if (!time) return \"\";\n\n if (format === \"12\") {\n const { hour12, period } = to12Hour(time.hours);\n const parts = [padNumber(hour12), padNumber(time.minutes)];\n if (showSeconds) parts.push(padNumber(time.seconds ?? 0));\n\n return `${parts.join(\":\")} ${period}`;\n }\n\n const parts = [padNumber(time.hours), padNumber(time.minutes)];\n if (showSeconds) parts.push(padNumber(time.seconds ?? 0));\n\n return parts.join(\":\");\n};\n\nexport const parseTimeString = (\n input: string,\n format: \"12\" | \"24\"\n): TimeValue | null => {\n const trimmed = input.trim();\n if (!trimmed) return null;\n\n if (format === \"12\") {\n const match = trimmed.match(\n /^(\\d{1,2}):(\\d{1,2})(?::(\\d{1,2}))?\\s*(AM|PM)$/i\n );\n if (!match) return null;\n\n const hour12 = parseInt(match[1], 10);\n const minutes = parseInt(match[2], 10);\n const seconds = match[3] ? parseInt(match[3], 10) : 0;\n const period = match[4].toUpperCase() as \"AM\" | \"PM\";\n\n if (hour12 < 1 || hour12 > 12 || minutes > 59 || seconds > 59) return null;\n\n return { hours: to24Hour(hour12, period), minutes, seconds };\n }\n\n const match = trimmed.match(/^(\\d{1,2}):(\\d{1,2})(?::(\\d{1,2}))?$/);\n if (!match) return null;\n\n const hours = parseInt(match[1], 10);\n const minutes = parseInt(match[2], 10);\n const seconds = match[3] ? parseInt(match[3], 10) : 0;\n\n if (hours > 23 || minutes > 59 || seconds > 59) return null;\n\n return { hours, minutes, seconds };\n};\n\n/**\n * Format a TimeValue using a dayjs-style format string (e.g. \"h:mm A\").\n */\nexport const formatTimeWithPattern = (\n time: TimeValue | null,\n pattern: string\n): string => {\n if (!time) return \"\";\n\n return pureDayjs(\"2000-01-01T00:00:00\")\n .hour(time.hours)\n .minute(time.minutes)\n .second(time.seconds ?? 0)\n .format(pattern);\n};\n\n/**\n * Parse a time string against a dayjs-style format pattern.\n * Returns null if the string does not match the pattern.\n */\nexport const parseTimeWithPattern = (\n input: string,\n pattern: string\n): TimeValue | null => {\n const trimmed = input.trim();\n if (!trimmed) return null;\n\n const parsed = pureDayjs(trimmed, pattern, true);\n if (!parsed.isValid()) return null;\n\n return {\n hours: parsed.hour(),\n minutes: parsed.minute(),\n seconds: parsed.second(),\n };\n};\n\n/**\n * Convert TimeValue to a timezone-aware Dayjs.\n * Formats in browser-local time, then reparses through timezone-aware dayjs.\n */\nexport const timeValueToDayjs = (time: TimeValue): Dayjs => {\n const h = padNumber(time.hours);\n const m = padNumber(time.minutes);\n const s = padNumber(time.seconds ?? 0);\n const today = dayjs(new Date()).format(\"YYYY-MM-DD\");\n\n return dayjs(`${today} ${h}:${m}:${s}`);\n};\n","import React, { useEffect, useRef } from \"react\";\n\nimport { Button } from \"src/primitives/Button\";\nimport { ScrollArea } from \"src/primitives/ScrollArea\";\nimport { cn } from \"src/shadcn/lib/utils\";\n\nimport { COLUMN_HEIGHT, ITEM_HEIGHT } from \"./constants\";\nimport { padNumber } from \"./utils\";\n\ninterface TimeColumnProps {\n items: (number | string)[];\n selected: number | string;\n onSelect: (value: number | string) => void;\n disabled?: boolean;\n className?: string;\n padStart?: number;\n}\n\nconst TimeColumn: React.FC<TimeColumnProps> = ({\n items,\n selected,\n onSelect,\n disabled = false,\n className,\n padStart = 2,\n}) => {\n const selectedRef = useRef<HTMLButtonElement>(null);\n\n useEffect(() => {\n if (selectedRef.current) {\n selectedRef.current.scrollIntoView({\n block: \"center\",\n behavior: \"smooth\",\n });\n }\n }, [selected]);\n\n return (\n <ScrollArea\n className={cn(\"w-16\", className)}\n style={{ height: COLUMN_HEIGHT }}\n >\n <div\n className=\"flex flex-col items-center py-2\"\n role=\"listbox\"\n aria-label=\"Time selection\"\n >\n {items.map(item => {\n const isSelected = item === selected;\n const displayValue =\n typeof item === \"number\" ? padNumber(item, padStart) : item;\n\n return (\n <Button\n key={item}\n ref={isSelected ? selectedRef : undefined}\n variant={isSelected ? \"default\" : \"ghost\"}\n size=\"sm\"\n role=\"option\"\n aria-selected={isSelected}\n disabled={disabled}\n className={cn(\n \"w-12 justify-center font-mono text-sm\",\n !isSelected && \"text-muted-foreground\"\n )}\n style={{ height: ITEM_HEIGHT }}\n onClick={() => onSelect(item)}\n >\n {displayValue}\n </Button>\n );\n })}\n </div>\n </ScrollArea>\n );\n};\n\nTimeColumn.displayName = \"TimeColumn\";\n\nexport { TimeColumn };\n","import { forwardRef, useCallback, useEffect, useState } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\n\nimport { PERIODS } from \"./constants\";\nimport { TimeColumn } from \"./TimeColumn\";\nimport type { TimePickerPanelProps, TimeValue } from \"./types\";\nimport { generateRange, to12Hour, to24Hour } from \"./utils\";\n\nconst TimePickerPanel = forwardRef<HTMLDivElement, TimePickerPanelProps>(\n (\n {\n value,\n onChange,\n format = \"24\",\n showSeconds = false,\n minuteStep = 1,\n secondStep = 1,\n disabled = false,\n className,\n },\n ref\n ) => {\n const getInitialTime = useCallback(\n (): TimeValue => ({\n hours: value?.hours ?? 0,\n minutes: value?.minutes ?? 0,\n seconds: value?.seconds ?? 0,\n }),\n [value]\n );\n\n const [internalTime, setInternalTime] = useState<TimeValue>(getInitialTime);\n\n useEffect(() => {\n setInternalTime(getInitialTime());\n }, [getInitialTime]);\n\n const hours = format === \"12\" ? generateRange(1, 12) : generateRange(0, 23);\n const minutes = generateRange(0, 59, minuteStep);\n const seconds = generateRange(0, 59, secondStep);\n\n const { hour12, period } =\n format === \"12\"\n ? to12Hour(internalTime.hours)\n : { hour12: internalTime.hours, period: \"AM\" as const };\n\n const handleHourSelect = (hourValue: number | string) => {\n const hour = Number(hourValue);\n const newHours = format === \"12\" ? to24Hour(hour, period) : hour;\n const newTime = { ...internalTime, hours: newHours };\n setInternalTime(newTime);\n onChange?.(newTime);\n };\n\n const handleMinuteSelect = (minuteValue: number | string) => {\n const newTime = { ...internalTime, minutes: Number(minuteValue) };\n setInternalTime(newTime);\n onChange?.(newTime);\n };\n\n const handleSecondSelect = (secondValue: number | string) => {\n const newTime = { ...internalTime, seconds: Number(secondValue) };\n setInternalTime(newTime);\n onChange?.(newTime);\n };\n\n const handlePeriodSelect = (newPeriod: number | string) => {\n const newHours = to24Hour(hour12, newPeriod as \"AM\" | \"PM\");\n const newTime = { ...internalTime, hours: newHours };\n setInternalTime(newTime);\n onChange?.(newTime);\n };\n\n return (\n <div\n ref={ref}\n className={cn(\"flex\", className)}\n role=\"group\"\n aria-label=\"Time picker\"\n >\n <TimeColumn\n items={hours}\n selected={format === \"12\" ? hour12 : internalTime.hours}\n onSelect={handleHourSelect}\n disabled={disabled}\n />\n <div className=\"border-inline-end border-border\" />\n <TimeColumn\n items={minutes}\n selected={internalTime.minutes}\n onSelect={handleMinuteSelect}\n disabled={disabled}\n />\n {showSeconds && (\n <>\n <div className=\"border-inline-end border-border\" />\n <TimeColumn\n items={seconds}\n selected={internalTime.seconds ?? 0}\n onSelect={handleSecondSelect}\n disabled={disabled}\n />\n </>\n )}\n {format === \"12\" && (\n <>\n <div className=\"border-inline-end border-border\" />\n <TimeColumn\n items={[...PERIODS]}\n selected={period}\n onSelect={handlePeriodSelect}\n disabled={disabled}\n padStart={0}\n />\n </>\n )}\n </div>\n );\n }\n);\n\nTimePickerPanel.displayName = \"TimePickerPanel\";\n\nexport { TimePickerPanel };\n"],"names":["useState","useCallback","useLayoutEffect","useEffect","pureDayjs","customParseFormat","dayjs","parts","match","minutes","seconds","useRef","jsx","ScrollArea","cn","Button","forwardRef","jsxs","Fragment"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var DatePicker = require('../DatePicker-
|
|
3
|
+
var DatePicker = require('../DatePicker-Da8-hSjF.js');
|
|
4
4
|
require('react/jsx-runtime');
|
|
5
5
|
require('react');
|
|
6
6
|
require('../primitives/Calendar.js');
|
|
@@ -30,7 +30,7 @@ require('../index-Bf0WsHta.js');
|
|
|
30
30
|
require('../index-Df-Ffa3s.js');
|
|
31
31
|
require('../index-DcCSSgb7.js');
|
|
32
32
|
require('../index-CyrAgb4H.js');
|
|
33
|
-
require('../TimePickerPanel-
|
|
33
|
+
require('../TimePickerPanel-DvVRLqeM.js');
|
|
34
34
|
require('../primitives/Button.js');
|
|
35
35
|
require('../primitives/ScrollArea.js');
|
|
36
36
|
require('../index-BY6wgiQV.js');
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var TimePicker = require('../TimePicker-
|
|
4
|
-
var TimePickerPanel = require('../TimePickerPanel-
|
|
3
|
+
var TimePicker = require('../TimePicker-CVGXEgk5.js');
|
|
4
|
+
var TimePickerPanel = require('../TimePickerPanel-DvVRLqeM.js');
|
|
5
5
|
require('react/jsx-runtime');
|
|
6
6
|
require('react');
|
|
7
7
|
require('../primitives/Popover.js');
|
|
@@ -10,7 +10,7 @@ var Callout = require('../Callout-Bci3POCo.js');
|
|
|
10
10
|
var Checkbox = require('../Checkbox-83g1FDsc.js');
|
|
11
11
|
var ColorPicker = require('../ColorPicker-rhCnblTv.js');
|
|
12
12
|
var DataTable = require('../DataTable-BXNU34g-.js');
|
|
13
|
-
var DatePicker = require('../DatePicker-
|
|
13
|
+
var DatePicker = require('../DatePicker-Da8-hSjF.js');
|
|
14
14
|
var Dialog = require('../Dialog-ZUHGaoAE.js');
|
|
15
15
|
var Empty = require('../Empty-DGvhPdiG.js');
|
|
16
16
|
var Input = require('../Input-DFvMBpiU.js');
|
|
@@ -29,8 +29,8 @@ var Stepper = require('../Stepper-BZBdL6JW.js');
|
|
|
29
29
|
var Switch = require('../Switch-BbRK3HUZ.js');
|
|
30
30
|
var Tabs = require('../Tabs-BQl63Ewe.js');
|
|
31
31
|
var Textarea = require('../Textarea-bxleSw86.js');
|
|
32
|
-
var TimePicker = require('../TimePicker-
|
|
33
|
-
var TimePickerPanel = require('../TimePickerPanel-
|
|
32
|
+
var TimePicker = require('../TimePicker-CVGXEgk5.js');
|
|
33
|
+
var TimePickerPanel = require('../TimePickerPanel-DvVRLqeM.js');
|
|
34
34
|
var Toastr = require('../Toastr-DgllCbfd.js');
|
|
35
35
|
var Tooltip = require('../Tooltip-B6uv_2Jz.js');
|
|
36
36
|
var TranslationProvider = require('../TranslationProvider-DOeyGtbV.js');
|
package/dist/cjs/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var Callout = require('./Callout-Bci3POCo.js');
|
|
|
14
14
|
var Checkbox = require('./Checkbox-83g1FDsc.js');
|
|
15
15
|
var ColorPicker = require('./ColorPicker-rhCnblTv.js');
|
|
16
16
|
var DataTable = require('./DataTable-BXNU34g-.js');
|
|
17
|
-
var DatePicker = require('./DatePicker-
|
|
17
|
+
var DatePicker = require('./DatePicker-Da8-hSjF.js');
|
|
18
18
|
var Dialog = require('./Dialog-ZUHGaoAE.js');
|
|
19
19
|
var DirectionProvider = require('./DirectionProvider-BTtE4FcN.js');
|
|
20
20
|
var Empty = require('./Empty-DGvhPdiG.js');
|
|
@@ -34,7 +34,7 @@ var Stepper = require('./Stepper-BZBdL6JW.js');
|
|
|
34
34
|
var Switch = require('./Switch-BbRK3HUZ.js');
|
|
35
35
|
var Tabs = require('./Tabs-BQl63Ewe.js');
|
|
36
36
|
var Textarea = require('./Textarea-bxleSw86.js');
|
|
37
|
-
var TimePicker = require('./TimePicker-
|
|
37
|
+
var TimePicker = require('./TimePicker-CVGXEgk5.js');
|
|
38
38
|
var Toastr = require('./Toastr-DgllCbfd.js');
|
|
39
39
|
var Tooltip = require('./Tooltip-B6uv_2Jz.js');
|
|
40
40
|
var Tree = require('./Tree-BCeV70TF.js');
|
|
@@ -115,7 +115,7 @@ require('./primitives/Pagination.js');
|
|
|
115
115
|
require('./chevron-left-BldoOh5p.js');
|
|
116
116
|
require('./ellipsis-4aubOI2n.js');
|
|
117
117
|
require('./primitives/Calendar.js');
|
|
118
|
-
require('./TimePickerPanel-
|
|
118
|
+
require('./TimePickerPanel-DvVRLqeM.js');
|
|
119
119
|
require('./primitives/ScrollArea.js');
|
|
120
120
|
require('./index-EyWRfsCG.js');
|
|
121
121
|
require('dayjs');
|
|
@@ -2,19 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
var utils = require('../utils-BhM0B89p.js');
|
|
5
|
-
var React = require('react');
|
|
6
|
-
var DialogTrigger = require('../DialogTrigger-B0Q6yIrx.js');
|
|
7
|
-
var useOpenInteractionType = require('../useOpenInteractionType-D4z6FTrA.js');
|
|
8
5
|
var button = require('../button-CDZTqJzs.js');
|
|
9
6
|
var useAriaHiddenCleanup = require('../useAriaHiddenCleanup-CT0To2AH.js');
|
|
10
|
-
require('react
|
|
7
|
+
var React = require('react');
|
|
8
|
+
var DialogTrigger = require('../DialogTrigger-B0Q6yIrx.js');
|
|
9
|
+
require('../index-vioSzJOw.js');
|
|
10
|
+
require('../index-DuNgWCXZ.js');
|
|
11
|
+
require('../index-D-iDn9RI.js');
|
|
12
|
+
require('../useOpenInteractionType-D4z6FTrA.js');
|
|
11
13
|
require('../floating-ui.utils.dom-BGEmL7pd.js');
|
|
14
|
+
require('react-dom');
|
|
12
15
|
require('../index-DnKJmaCq.js');
|
|
13
16
|
require('../index-BrpkRQoS.js');
|
|
14
17
|
require('../with-selector-DeKHbQY7.js');
|
|
15
|
-
require('../index-vioSzJOw.js');
|
|
16
|
-
require('../index-DuNgWCXZ.js');
|
|
17
|
-
require('../index-D-iDn9RI.js');
|
|
18
18
|
|
|
19
19
|
function _interopNamespace(e) {
|
|
20
20
|
if (e && e.__esModule) return e;
|
|
@@ -36,38 +36,6 @@ function _interopNamespace(e) {
|
|
|
36
36
|
|
|
37
37
|
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
38
38
|
|
|
39
|
-
(function (DialogViewportDataAttributes) {
|
|
40
|
-
/**
|
|
41
|
-
* Present when the dialog is open.
|
|
42
|
-
*/
|
|
43
|
-
DialogViewportDataAttributes[DialogViewportDataAttributes["open"] = useOpenInteractionType.CommonPopupDataAttributes.open] = "open";
|
|
44
|
-
/**
|
|
45
|
-
* Present when the dialog is closed.
|
|
46
|
-
*/
|
|
47
|
-
DialogViewportDataAttributes[DialogViewportDataAttributes["closed"] = useOpenInteractionType.CommonPopupDataAttributes.closed] = "closed";
|
|
48
|
-
/**
|
|
49
|
-
* Present when the dialog is animating in.
|
|
50
|
-
*/
|
|
51
|
-
DialogViewportDataAttributes[DialogViewportDataAttributes["startingStyle"] = useOpenInteractionType.CommonPopupDataAttributes.startingStyle] = "startingStyle";
|
|
52
|
-
/**
|
|
53
|
-
* Present when the dialog is animating out.
|
|
54
|
-
*/
|
|
55
|
-
DialogViewportDataAttributes[DialogViewportDataAttributes["endingStyle"] = useOpenInteractionType.CommonPopupDataAttributes.endingStyle] = "endingStyle";
|
|
56
|
-
/**
|
|
57
|
-
* Present when the dialog is nested within another dialog.
|
|
58
|
-
*/
|
|
59
|
-
DialogViewportDataAttributes["nested"] = "data-nested";
|
|
60
|
-
/**
|
|
61
|
-
* Present when the dialog has other open dialogs nested within it.
|
|
62
|
-
*/
|
|
63
|
-
DialogViewportDataAttributes["nestedDialogOpen"] = "data-nested-dialog-open";
|
|
64
|
-
return DialogViewportDataAttributes;
|
|
65
|
-
})({});
|
|
66
|
-
|
|
67
|
-
({
|
|
68
|
-
...useOpenInteractionType.popupStateMapping,
|
|
69
|
-
...useOpenInteractionType.transitionStatusMapping});
|
|
70
|
-
|
|
71
39
|
/**
|
|
72
40
|
* Groups all parts of the alert dialog.
|
|
73
41
|
* Doesn't render its own HTML element.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AlertDialog.js","sources":["../../../node_modules/@base-ui/react/esm/dialog/viewport/DialogViewportDataAttributes.js","../../../node_modules/@base-ui/react/esm/dialog/viewport/DialogViewport.js","../../../node_modules/@base-ui/react/esm/alert-dialog/root/AlertDialogRoot.js","../../../src/shadcn/components/alert-dialog.tsx","../../../src/primitives/AlertDialog.tsx"],"sourcesContent":["import { CommonPopupDataAttributes } from \"../../utils/popupStateMapping.js\";\nexport let DialogViewportDataAttributes = function (DialogViewportDataAttributes) {\n /**\n * Present when the dialog is open.\n */\n DialogViewportDataAttributes[DialogViewportDataAttributes[\"open\"] = CommonPopupDataAttributes.open] = \"open\";\n /**\n * Present when the dialog is closed.\n */\n DialogViewportDataAttributes[DialogViewportDataAttributes[\"closed\"] = CommonPopupDataAttributes.closed] = \"closed\";\n /**\n * Present when the dialog is animating in.\n */\n DialogViewportDataAttributes[DialogViewportDataAttributes[\"startingStyle\"] = CommonPopupDataAttributes.startingStyle] = \"startingStyle\";\n /**\n * Present when the dialog is animating out.\n */\n DialogViewportDataAttributes[DialogViewportDataAttributes[\"endingStyle\"] = CommonPopupDataAttributes.endingStyle] = \"endingStyle\";\n /**\n * Present when the dialog is nested within another dialog.\n */\n DialogViewportDataAttributes[\"nested\"] = \"data-nested\";\n /**\n * Present when the dialog has other open dialogs nested within it.\n */\n DialogViewportDataAttributes[\"nestedDialogOpen\"] = \"data-nested-dialog-open\";\n return DialogViewportDataAttributes;\n}({});","'use client';\n\nimport * as React from 'react';\nimport { useRenderElement } from \"../../utils/useRenderElement.js\";\nimport { popupStateMapping as baseMapping } from \"../../utils/popupStateMapping.js\";\nimport { transitionStatusMapping } from \"../../utils/stateAttributesMapping.js\";\nimport { useDialogRootContext } from \"../root/DialogRootContext.js\";\nimport { useDialogPortalContext } from \"../portal/DialogPortalContext.js\";\nimport { DialogViewportDataAttributes } from \"./DialogViewportDataAttributes.js\";\nconst stateAttributesMapping = {\n ...baseMapping,\n ...transitionStatusMapping,\n nested(value) {\n return value ? {\n [DialogViewportDataAttributes.nested]: ''\n } : null;\n },\n nestedDialogOpen(value) {\n return value ? {\n [DialogViewportDataAttributes.nestedDialogOpen]: ''\n } : null;\n }\n};\n\n/**\n * A positioning container for the dialog popup that can be made scrollable.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Dialog](https://base-ui.com/react/components/dialog)\n */\nexport const DialogViewport = /*#__PURE__*/React.forwardRef(function DialogViewport(componentProps, forwardedRef) {\n const {\n className,\n render,\n children,\n style,\n ...elementProps\n } = componentProps;\n const keepMounted = useDialogPortalContext();\n const {\n store\n } = useDialogRootContext();\n const open = store.useState('open');\n const nested = store.useState('nested');\n const transitionStatus = store.useState('transitionStatus');\n const nestedOpenDialogCount = store.useState('nestedOpenDialogCount');\n const mounted = store.useState('mounted');\n const nestedDialogOpen = nestedOpenDialogCount > 0;\n const state = {\n open,\n nested,\n transitionStatus,\n nestedDialogOpen\n };\n const shouldRender = keepMounted || mounted;\n return useRenderElement('div', componentProps, {\n enabled: shouldRender,\n state,\n ref: [forwardedRef, store.useStateSetter('viewportElement')],\n stateAttributesMapping,\n props: [{\n role: 'presentation',\n hidden: !mounted,\n style: {\n pointerEvents: !open ? 'none' : undefined\n },\n children\n }, elementProps]\n });\n});\nif (process.env.NODE_ENV !== \"production\") DialogViewport.displayName = \"DialogViewport\";","'use client';\n\nimport * as React from 'react';\nimport { IsDrawerContext } from \"../../dialog/root/DialogRoot.js\";\nimport { useDialogRoot } from \"../../dialog/root/useDialogRoot.js\";\nimport { DialogRootContext, useDialogRootContext } from \"../../dialog/root/DialogRootContext.js\";\nimport { DialogStore } from \"../../dialog/store/DialogStore.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Groups all parts of the alert dialog.\n * Doesn't render its own HTML element.\n *\n * Documentation: [Base UI Alert Dialog](https://base-ui.com/react/components/alert-dialog)\n */\nexport function AlertDialogRoot(props) {\n const {\n children,\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n onOpenChangeComplete,\n actionsRef,\n handle,\n triggerId: triggerIdProp,\n defaultTriggerId: defaultTriggerIdProp = null\n } = props;\n const parentDialogRootContext = useDialogRootContext(true);\n const nested = Boolean(parentDialogRootContext);\n const store = DialogStore.useStore(handle?.store, {\n open: defaultOpen,\n openProp,\n activeTriggerId: defaultTriggerIdProp,\n triggerIdProp,\n modal: true,\n disablePointerDismissal: true,\n nested,\n role: 'alertdialog'\n });\n store.useControlledProp('openProp', openProp);\n store.useControlledProp('triggerIdProp', triggerIdProp);\n store.useSyncedValue('nested', nested);\n store.useContextCallback('onOpenChange', onOpenChange);\n store.useContextCallback('onOpenChangeComplete', onOpenChangeComplete);\n const payload = store.useState('payload');\n useDialogRoot({\n store,\n actionsRef,\n parentContext: parentDialogRootContext?.store.context,\n isDrawer: false,\n onOpenChange,\n triggerIdProp\n });\n const contextValue = React.useMemo(() => ({\n store\n }), [store]);\n return /*#__PURE__*/_jsx(IsDrawerContext.Provider, {\n value: false,\n children: /*#__PURE__*/_jsx(DialogRootContext.Provider, {\n value: contextValue,\n children: typeof children === 'function' ? children({\n payload\n }) : children\n })\n });\n}","\"use client\"\n\nimport * as React from \"react\"\nimport { AlertDialog as AlertDialogPrimitive } from \"@base-ui/react/alert-dialog\"\n\nimport { cn } from \"src/shadcn/lib/utils\"\nimport { Button } from \"src/shadcn/components/button\"\nimport { AriaHiddenCleanup } from \"src/hooks/useAriaHiddenCleanup\"\n\nfunction AlertDialog({ ...props }: AlertDialogPrimitive.Root.Props) {\n return <AlertDialogPrimitive.Root data-slot=\"alert-dialog\" {...props} />\n}\n\nfunction AlertDialogTrigger({ ...props }: AlertDialogPrimitive.Trigger.Props) {\n return (\n <AlertDialogPrimitive.Trigger data-slot=\"alert-dialog-trigger\" {...props} />\n )\n}\n\nfunction AlertDialogPortal({ ...props }: AlertDialogPrimitive.Portal.Props) {\n return (\n <AlertDialogPrimitive.Portal data-slot=\"alert-dialog-portal\" {...props} />\n )\n}\n\nfunction AlertDialogOverlay({\n className,\n ...props\n}: AlertDialogPrimitive.Backdrop.Props) {\n return (\n <AlertDialogPrimitive.Backdrop\n data-slot=\"alert-dialog-overlay\"\n className={cn(\n \"fixed inset-0 isolate z-50 bg-black/50 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogContent({\n className,\n size = \"default\",\n ...props\n}: AlertDialogPrimitive.Popup.Props & {\n size?: \"default\" | \"sm\"\n}) {\n return (\n <AlertDialogPortal>\n <AriaHiddenCleanup />\n <AlertDialogOverlay forceRender />\n <AlertDialogPrimitive.Popup\n data-slot=\"alert-dialog-content\"\n data-size={size}\n className={cn(\n \"group/alert-dialog-content fixed top-1/2 start-1/2 z-50 grid w-full -translate-x-1/2 rtl:translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\",\n className\n )}\n {...props}\n />\n </AlertDialogPortal>\n )\n}\n\nfunction AlertDialogHeader({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-header\"\n className={cn(\n \"grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-4 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-start sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogFooter({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-footer\"\n className={cn(\n \"-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogMedia({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-media\"\n className={cn(\n \"mb-2 inline-flex size-10 items-center justify-center rounded-md bg-muted sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-6\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Title>) {\n return (\n <AlertDialogPrimitive.Title\n data-slot=\"alert-dialog-title\"\n className={cn(\n \"text-base font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Description>) {\n return (\n <AlertDialogPrimitive.Description\n data-slot=\"alert-dialog-description\"\n className={cn(\n \"text-sm text-balance text-muted-foreground md:text-pretty *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogAction({\n className,\n ...props\n}: React.ComponentProps<typeof Button>) {\n return (\n <Button\n data-slot=\"alert-dialog-action\"\n className={cn(className)}\n {...props}\n />\n )\n}\n\nfunction AlertDialogCancel({\n className,\n variant = \"outline\",\n size = \"default\",\n ...props\n}: AlertDialogPrimitive.Close.Props &\n Pick<React.ComponentProps<typeof Button>, \"variant\" | \"size\">) {\n return (\n <AlertDialogPrimitive.Close\n data-slot=\"alert-dialog-cancel\"\n className={cn(className)}\n render={<Button variant={variant} size={size} />}\n {...props}\n />\n )\n}\n\nexport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogMedia,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n}\n","import type React from \"react\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n AlertDialog as ShadcnAlertDialog,\n AlertDialogAction as ShadcnAlertDialogAction,\n AlertDialogCancel as ShadcnAlertDialogCancel,\n AlertDialogContent as ShadcnAlertDialogContent,\n AlertDialogDescription as ShadcnAlertDialogDescription,\n AlertDialogFooter as ShadcnAlertDialogFooter,\n AlertDialogHeader as ShadcnAlertDialogHeader,\n AlertDialogMedia as ShadcnAlertDialogMedia,\n AlertDialogOverlay as ShadcnAlertDialogOverlay,\n AlertDialogPortal as ShadcnAlertDialogPortal,\n AlertDialogTitle as ShadcnAlertDialogTitle,\n AlertDialogTrigger as ShadcnAlertDialogTrigger,\n} from \"src/shadcn/components/alert-dialog\";\n\nconst AlertDialog = (props: React.ComponentProps<typeof ShadcnAlertDialog>) => (\n <ShadcnAlertDialog {...props} />\n);\n\nconst AlertDialogAction = (\n props: React.ComponentProps<typeof ShadcnAlertDialogAction>\n) => <ShadcnAlertDialogAction {...props} />;\n\nconst AlertDialogCancel = (\n props: React.ComponentProps<typeof ShadcnAlertDialogCancel>\n) => <ShadcnAlertDialogCancel {...props} />;\n\nconst AlertDialogContent = (\n props: React.ComponentProps<typeof ShadcnAlertDialogContent>\n) => <ShadcnAlertDialogContent {...props} />;\n\nconst AlertDialogDescription = (\n props: React.ComponentProps<typeof ShadcnAlertDialogDescription>\n) => <ShadcnAlertDialogDescription {...props} />;\n\nconst AlertDialogFooter = ({\n className,\n ...props\n}: React.ComponentProps<typeof ShadcnAlertDialogFooter>) => (\n <ShadcnAlertDialogFooter\n className={cn(\"border-border\", className)}\n {...props}\n />\n);\n\nconst AlertDialogHeader = (\n props: React.ComponentProps<typeof ShadcnAlertDialogHeader>\n) => <ShadcnAlertDialogHeader {...props} />;\n\nconst AlertDialogMedia = (\n props: React.ComponentProps<typeof ShadcnAlertDialogMedia>\n) => <ShadcnAlertDialogMedia {...props} />;\n\nconst AlertDialogOverlay = (\n props: React.ComponentProps<typeof ShadcnAlertDialogOverlay>\n) => <ShadcnAlertDialogOverlay {...props} />;\n\nconst AlertDialogPortal = (\n props: React.ComponentProps<typeof ShadcnAlertDialogPortal>\n) => <ShadcnAlertDialogPortal {...props} />;\n\nconst AlertDialogTitle = (\n props: React.ComponentProps<typeof ShadcnAlertDialogTitle>\n) => <ShadcnAlertDialogTitle {...props} />;\n\nconst AlertDialogTrigger = (\n props: React.ComponentProps<typeof ShadcnAlertDialogTrigger>\n) => <ShadcnAlertDialogTrigger {...props} />;\n\nexport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogMedia,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n};\n"],"names":["CommonPopupDataAttributes","baseMapping","transitionStatusMapping","useDialogRootContext","DialogStore","useDialogRoot","React","_jsx","IsDrawerContext","DialogRootContext","AlertDialog","AlertDialogPrimitive.Root","AlertDialogTrigger","AlertDialogPrimitive.Trigger","AlertDialogPortal","AlertDialogPrimitive.Portal","AlertDialogOverlay","jsx","AlertDialogPrimitive.Backdrop","cn","AlertDialogContent","AriaHiddenCleanup","AlertDialogPrimitive.Popup","AlertDialogHeader","AlertDialogFooter","AlertDialogMedia","AlertDialogTitle","AlertDialogPrimitive.Title","AlertDialogDescription","AlertDialogPrimitive.Description","AlertDialogAction","Button","AlertDialogCancel","AlertDialogPrimitive.Close","ShadcnAlertDialog","ShadcnAlertDialogAction","ShadcnAlertDialogCancel","ShadcnAlertDialogContent","ShadcnAlertDialogDescription","ShadcnAlertDialogFooter","ShadcnAlertDialogHeader","ShadcnAlertDialogMedia","ShadcnAlertDialogOverlay","ShadcnAlertDialogPortal","ShadcnAlertDialogTitle","ShadcnAlertDialogTrigger"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAC0C,UAAU,4BAA4B,EAAE;AAClF;AACA;AACA;AACA,EAAE,4BAA4B,CAAC,4BAA4B,CAAC,MAAM,CAAC,GAAGA,gDAAyB,CAAC,IAAI,CAAC,GAAG,MAAM;AAC9G;AACA;AACA;AACA,EAAE,4BAA4B,CAAC,4BAA4B,CAAC,QAAQ,CAAC,GAAGA,gDAAyB,CAAC,MAAM,CAAC,GAAG,QAAQ;AACpH;AACA;AACA;AACA,EAAE,4BAA4B,CAAC,4BAA4B,CAAC,eAAe,CAAC,GAAGA,gDAAyB,CAAC,aAAa,CAAC,GAAG,eAAe;AACzI;AACA;AACA;AACA,EAAE,4BAA4B,CAAC,4BAA4B,CAAC,aAAa,CAAC,GAAGA,gDAAyB,CAAC,WAAW,CAAC,GAAG,aAAa;AACnI;AACA;AACA;AACA,EAAE,4BAA4B,CAAC,QAAQ,CAAC,GAAG,aAAa;AACxD;AACA;AACA;AACA,EAAE,4BAA4B,CAAC,kBAAkB,CAAC,GAAG,yBAAyB;AAC9E,EAAE,OAAO,4BAA4B;AACrC,EAAC,CAAC,EAAE;;CClB2B;AAC/B,EAAE,GAAGC,wCAAW;AAChB,EAAE,GAAGC,8CAWL;;ACdA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,eAAe,CAAC,KAAK,EAAE;AACvC,EAAE,MAAM;AACR,IAAI,QAAQ;AACZ,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,WAAW,GAAG,KAAK;AACvB,IAAI,YAAY;AAChB,IAAI,oBAAoB;AACxB,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,SAAS,EAAE,aAAa;AAC5B,IAAI,gBAAgB,EAAE,oBAAoB,GAAG;AAC7C,GAAG,GAAG,KAAK;AACX,EAAE,MAAM,uBAAuB,GAAGC,kCAAoB,CAAC,IAAI,CAAC;AAC5D,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;AACjD,EAAE,MAAM,KAAK,GAAGC,yBAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE;AACpD,IAAI,IAAI,EAAE,WAAW;AACrB,IAAI,QAAQ;AACZ,IAAI,eAAe,EAAE,oBAAoB;AACzC,IAAI,aAAa;AACjB,IAAI,KAAK,EAAE,IAAI;AACf,IAAI,uBAAuB,EAAE,IAAI;AACjC,IAAI,MAAM;AACV,IAAI,IAAI,EAAE;AACV,GAAG,CAAC;AACJ,EAAE,KAAK,CAAC,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC;AAC/C,EAAE,KAAK,CAAC,iBAAiB,CAAC,eAAe,EAAE,aAAa,CAAC;AACzD,EAAE,KAAK,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC;AACxC,EAAE,KAAK,CAAC,kBAAkB,CAAC,cAAc,EAAE,YAAY,CAAC;AACxD,EAAE,KAAK,CAAC,kBAAkB,CAAC,sBAAsB,EAAE,oBAAoB,CAAC;AACxE,EAAE,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;AAC3C,EAAEC,2BAAa,CAAC;AAChB,IAAI,KAAK;AACT,IAAI,UAAU;AACd,IAAI,aAAa,EAAE,uBAAuB,EAAE,KAAK,CAAC,OAAO;AACzD,IAAI,QAAQ,EAAE,KAGZ,CAAC,CAAC;AACJ,EAAE,MAAM,YAAY,GAAGC,gBAAK,CAAC,OAAO,CAAC,OAAO;AAC5C,IAAI;AACJ,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACd,EAAE,oBAAoBC,cAAI,CAACC,6BAAe,CAAC,QAAQ,EAAE;AACrD,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,QAAQ,eAAeD,cAAI,CAACE,+BAAiB,CAAC,QAAQ,EAAE;AAC5D,MAAM,KAAK,EAAE,YAAY;AACzB,MAAM,QAAQ,EAAE,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC;AAC1D,QAAQ;AACR,OAAO,CAAC,GAAG;AACX,KAAK;AACL,GAAG,CAAC;AACJ;;ACvDA,SAASC,aAAA,CAAY,EAAE,GAAG,KAAA,EAAM,EAAoC;AAClE,EAAA,sCAAQC,eAAqB,EAArB,EAA0B,WAAA,EAAU,cAAA,EAAgB,GAAG,KAAA,EAAO,CAAA;AACxE;AAEA,SAASC,oBAAA,CAAmB,EAAE,GAAG,KAAA,EAAM,EAAuC;AAC5E,EAAA,sCACGC,2BAAqB,EAArB,EAA6B,WAAA,EAAU,sBAAA,EAAwB,GAAG,KAAA,EAAO,CAAA;AAE9E;AAEA,SAASC,mBAAA,CAAkB,EAAE,GAAG,KAAA,EAAM,EAAsC;AAC1E,EAAA,sCACGC,0BAAqB,EAArB,EAA4B,WAAA,EAAU,qBAAA,EAAuB,GAAG,KAAA,EAAO,CAAA;AAE5E;AAEA,SAASC,oBAAA,CAAmB;AAAA,EAC1B,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAwC;AACtC,EAAA,uBACEC,cAAA;AAAA,IAACC,4BAAqB;AAAA,IAArB;AAAA,MACC,WAAA,EAAU,sBAAA;AAAA,MACV,SAAA,EAAWC,QAAA;AAAA,QACT,uLAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAASC,oBAAA,CAAmB;AAAA,EAC1B,SAAA;AAAA,EACA,IAAA,GAAO,SAAA;AAAA,EACP,GAAG;AACL,CAAA,EAEG;AACD,EAAA,uCACGN,mBAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAAG,cAAA,CAACI,sCAAA,EAAA,EAAkB,CAAA;AAAA,oBACnBJ,cAAA,CAACD,oBAAA,EAAA,EAAmB,WAAA,EAAW,IAAA,EAAC,CAAA;AAAA,oBAChCC,cAAA;AAAA,MAACK,yBAAqB;AAAA,MAArB;AAAA,QACC,WAAA,EAAU,sBAAA;AAAA,QACV,WAAA,EAAW,IAAA;AAAA,QACX,SAAA,EAAWH,QAAA;AAAA,UACT,icAAA;AAAA,UACA;AAAA,SACF;AAAA,QACC,GAAG;AAAA;AAAA;AACN,GAAA,EACF,CAAA;AAEJ;AAEA,SAASI,mBAAA,CAAkB;AAAA,EACzB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAgC;AAC9B,EAAA,uBACEN,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,qBAAA;AAAA,MACV,SAAA,EAAWE,QAAA;AAAA,QACT,qZAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAASK,mBAAA,CAAkB;AAAA,EACzB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAgC;AAC9B,EAAA,uBACEP,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,qBAAA;AAAA,MACV,SAAA,EAAWE,QAAA;AAAA,QACT,+MAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAASM,kBAAA,CAAiB;AAAA,EACxB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAgC;AAC9B,EAAA,uBACER,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,oBAAA;AAAA,MACV,SAAA,EAAWE,QAAA;AAAA,QACT,4KAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAASO,kBAAA,CAAiB;AAAA,EACxB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA4D;AAC1D,EAAA,uBACET,cAAA;AAAA,IAACU,yBAAqB;AAAA,IAArB;AAAA,MACC,WAAA,EAAU,oBAAA;AAAA,MACV,SAAA,EAAWR,QAAA;AAAA,QACT,mJAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAASS,wBAAA,CAAuB;AAAA,EAC9B,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAkE;AAChE,EAAA,uBACEX,cAAA;AAAA,IAACY,+BAAqB;AAAA,IAArB;AAAA,MACC,WAAA,EAAU,0BAAA;AAAA,MACV,SAAA,EAAWV,QAAA;AAAA,QACT,gIAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAASW,mBAAA,CAAkB;AAAA,EACzB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAwC;AACtC,EAAA,uBACEb,cAAA;AAAA,IAACc,aAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,qBAAA;AAAA,MACV,SAAA,EAAWZ,SAAG,SAAS,CAAA;AAAA,MACtB,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAASa,mBAAA,CAAkB;AAAA,EACzB,SAAA;AAAA,EACA,OAAA,GAAU,SAAA;AAAA,EACV,IAAA,GAAO,SAAA;AAAA,EACP,GAAG;AACL,CAAA,EACiE;AAC/D,EAAA,uBACEf,cAAA;AAAA,IAACgB,yBAAqB;AAAA,IAArB;AAAA,MACC,WAAA,EAAU,qBAAA;AAAA,MACV,SAAA,EAAWd,SAAG,SAAS,CAAA;AAAA,MACvB,MAAA,kBAAQF,cAAA,CAACc,aAAA,EAAA,EAAO,OAAA,EAAkB,IAAA,EAAY,CAAA;AAAA,MAC7C,GAAG;AAAA;AAAA,GACN;AAEJ;;AC5JA,MAAM,cAAc,CAAC,KAAA,qBACnBd,cAAA,CAACiB,aAAA,EAAA,EAAmB,GAAG,KAAA,EAAO;AAGhC,MAAM,oBAAoB,CACxB,KAAA,qBACGjB,cAAA,CAACkB,mBAAA,EAAA,EAAyB,GAAG,KAAA,EAAO;AAEzC,MAAM,oBAAoB,CACxB,KAAA,qBACGlB,cAAA,CAACmB,mBAAA,EAAA,EAAyB,GAAG,KAAA,EAAO;AAEzC,MAAM,qBAAqB,CACzB,KAAA,qBACGnB,cAAA,CAACoB,oBAAA,EAAA,EAA0B,GAAG,KAAA,EAAO;AAE1C,MAAM,yBAAyB,CAC7B,KAAA,qBACGpB,cAAA,CAACqB,wBAAA,EAAA,EAA8B,GAAG,KAAA,EAAO;AAE9C,MAAM,oBAAoB,CAAC;AAAA,EACzB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,qBACErB,cAAA;AAAA,EAACsB,mBAAA;AAAA,EAAA;AAAA,IACC,SAAA,EAAWpB,QAAA,CAAG,eAAA,EAAiB,SAAS,CAAA;AAAA,IACvC,GAAG;AAAA;AACN;AAGF,MAAM,oBAAoB,CACxB,KAAA,qBACGF,cAAA,CAACuB,mBAAA,EAAA,EAAyB,GAAG,KAAA,EAAO;AAEzC,MAAM,mBAAmB,CACvB,KAAA,qBACGvB,cAAA,CAACwB,kBAAA,EAAA,EAAwB,GAAG,KAAA,EAAO;AAExC,MAAM,qBAAqB,CACzB,KAAA,qBACGxB,cAAA,CAACyB,oBAAA,EAAA,EAA0B,GAAG,KAAA,EAAO;AAE1C,MAAM,oBAAoB,CACxB,KAAA,qBACGzB,cAAA,CAAC0B,mBAAA,EAAA,EAAyB,GAAG,KAAA,EAAO;AAEzC,MAAM,mBAAmB,CACvB,KAAA,qBACG1B,cAAA,CAAC2B,kBAAA,EAAA,EAAwB,GAAG,KAAA,EAAO;AAExC,MAAM,qBAAqB,CACzB,KAAA,qBACG3B,cAAA,CAAC4B,oBAAA,EAAA,EAA0B,GAAG,KAAA,EAAO;;;;;;;;;;;;;;;","x_google_ignoreList":[0,1,2]}
|
|
1
|
+
{"version":3,"file":"AlertDialog.js","sources":["../../../node_modules/@base-ui/react/esm/alert-dialog/root/AlertDialogRoot.js","../../../src/shadcn/components/alert-dialog.tsx","../../../src/primitives/AlertDialog.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { IsDrawerContext } from \"../../dialog/root/DialogRoot.js\";\nimport { useDialogRoot } from \"../../dialog/root/useDialogRoot.js\";\nimport { DialogRootContext, useDialogRootContext } from \"../../dialog/root/DialogRootContext.js\";\nimport { DialogStore } from \"../../dialog/store/DialogStore.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Groups all parts of the alert dialog.\n * Doesn't render its own HTML element.\n *\n * Documentation: [Base UI Alert Dialog](https://base-ui.com/react/components/alert-dialog)\n */\nexport function AlertDialogRoot(props) {\n const {\n children,\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n onOpenChangeComplete,\n actionsRef,\n handle,\n triggerId: triggerIdProp,\n defaultTriggerId: defaultTriggerIdProp = null\n } = props;\n const parentDialogRootContext = useDialogRootContext(true);\n const nested = Boolean(parentDialogRootContext);\n const store = DialogStore.useStore(handle?.store, {\n open: defaultOpen,\n openProp,\n activeTriggerId: defaultTriggerIdProp,\n triggerIdProp,\n modal: true,\n disablePointerDismissal: true,\n nested,\n role: 'alertdialog'\n });\n store.useControlledProp('openProp', openProp);\n store.useControlledProp('triggerIdProp', triggerIdProp);\n store.useSyncedValue('nested', nested);\n store.useContextCallback('onOpenChange', onOpenChange);\n store.useContextCallback('onOpenChangeComplete', onOpenChangeComplete);\n const payload = store.useState('payload');\n useDialogRoot({\n store,\n actionsRef,\n parentContext: parentDialogRootContext?.store.context,\n isDrawer: false,\n onOpenChange,\n triggerIdProp\n });\n const contextValue = React.useMemo(() => ({\n store\n }), [store]);\n return /*#__PURE__*/_jsx(IsDrawerContext.Provider, {\n value: false,\n children: /*#__PURE__*/_jsx(DialogRootContext.Provider, {\n value: contextValue,\n children: typeof children === 'function' ? children({\n payload\n }) : children\n })\n });\n}","\"use client\"\n\nimport * as React from \"react\"\nimport { AlertDialog as AlertDialogPrimitive } from \"@base-ui/react/alert-dialog\"\n\nimport { cn } from \"src/shadcn/lib/utils\"\nimport { Button } from \"src/shadcn/components/button\"\nimport { AriaHiddenCleanup } from \"src/hooks/useAriaHiddenCleanup\"\n\nfunction AlertDialog({ ...props }: AlertDialogPrimitive.Root.Props) {\n return <AlertDialogPrimitive.Root data-slot=\"alert-dialog\" {...props} />\n}\n\nfunction AlertDialogTrigger({ ...props }: AlertDialogPrimitive.Trigger.Props) {\n return (\n <AlertDialogPrimitive.Trigger data-slot=\"alert-dialog-trigger\" {...props} />\n )\n}\n\nfunction AlertDialogPortal({ ...props }: AlertDialogPrimitive.Portal.Props) {\n return (\n <AlertDialogPrimitive.Portal data-slot=\"alert-dialog-portal\" {...props} />\n )\n}\n\nfunction AlertDialogOverlay({\n className,\n ...props\n}: AlertDialogPrimitive.Backdrop.Props) {\n return (\n <AlertDialogPrimitive.Backdrop\n data-slot=\"alert-dialog-overlay\"\n className={cn(\n \"fixed inset-0 isolate z-50 bg-black/50 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogContent({\n className,\n size = \"default\",\n ...props\n}: AlertDialogPrimitive.Popup.Props & {\n size?: \"default\" | \"sm\"\n}) {\n return (\n <AlertDialogPortal>\n <AriaHiddenCleanup />\n <AlertDialogOverlay forceRender />\n <AlertDialogPrimitive.Popup\n data-slot=\"alert-dialog-content\"\n data-size={size}\n className={cn(\n \"group/alert-dialog-content fixed top-1/2 start-1/2 z-50 grid w-full -translate-x-1/2 rtl:translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\",\n className\n )}\n {...props}\n />\n </AlertDialogPortal>\n )\n}\n\nfunction AlertDialogHeader({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-header\"\n className={cn(\n \"grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-4 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-start sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogFooter({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-footer\"\n className={cn(\n \"-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogMedia({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-media\"\n className={cn(\n \"mb-2 inline-flex size-10 items-center justify-center rounded-md bg-muted sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-6\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Title>) {\n return (\n <AlertDialogPrimitive.Title\n data-slot=\"alert-dialog-title\"\n className={cn(\n \"text-base font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Description>) {\n return (\n <AlertDialogPrimitive.Description\n data-slot=\"alert-dialog-description\"\n className={cn(\n \"text-sm text-balance text-muted-foreground md:text-pretty *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogAction({\n className,\n ...props\n}: React.ComponentProps<typeof Button>) {\n return (\n <Button\n data-slot=\"alert-dialog-action\"\n className={cn(className)}\n {...props}\n />\n )\n}\n\nfunction AlertDialogCancel({\n className,\n variant = \"outline\",\n size = \"default\",\n ...props\n}: AlertDialogPrimitive.Close.Props &\n Pick<React.ComponentProps<typeof Button>, \"variant\" | \"size\">) {\n return (\n <AlertDialogPrimitive.Close\n data-slot=\"alert-dialog-cancel\"\n className={cn(className)}\n render={<Button variant={variant} size={size} />}\n {...props}\n />\n )\n}\n\nexport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogMedia,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n}\n","import type React from \"react\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n AlertDialog as ShadcnAlertDialog,\n AlertDialogAction as ShadcnAlertDialogAction,\n AlertDialogCancel as ShadcnAlertDialogCancel,\n AlertDialogContent as ShadcnAlertDialogContent,\n AlertDialogDescription as ShadcnAlertDialogDescription,\n AlertDialogFooter as ShadcnAlertDialogFooter,\n AlertDialogHeader as ShadcnAlertDialogHeader,\n AlertDialogMedia as ShadcnAlertDialogMedia,\n AlertDialogOverlay as ShadcnAlertDialogOverlay,\n AlertDialogPortal as ShadcnAlertDialogPortal,\n AlertDialogTitle as ShadcnAlertDialogTitle,\n AlertDialogTrigger as ShadcnAlertDialogTrigger,\n} from \"src/shadcn/components/alert-dialog\";\n\nconst AlertDialog = (props: React.ComponentProps<typeof ShadcnAlertDialog>) => (\n <ShadcnAlertDialog {...props} />\n);\n\nconst AlertDialogAction = (\n props: React.ComponentProps<typeof ShadcnAlertDialogAction>\n) => <ShadcnAlertDialogAction {...props} />;\n\nconst AlertDialogCancel = (\n props: React.ComponentProps<typeof ShadcnAlertDialogCancel>\n) => <ShadcnAlertDialogCancel {...props} />;\n\nconst AlertDialogContent = (\n props: React.ComponentProps<typeof ShadcnAlertDialogContent>\n) => <ShadcnAlertDialogContent {...props} />;\n\nconst AlertDialogDescription = (\n props: React.ComponentProps<typeof ShadcnAlertDialogDescription>\n) => <ShadcnAlertDialogDescription {...props} />;\n\nconst AlertDialogFooter = ({\n className,\n ...props\n}: React.ComponentProps<typeof ShadcnAlertDialogFooter>) => (\n <ShadcnAlertDialogFooter\n className={cn(\"border-border\", className)}\n {...props}\n />\n);\n\nconst AlertDialogHeader = (\n props: React.ComponentProps<typeof ShadcnAlertDialogHeader>\n) => <ShadcnAlertDialogHeader {...props} />;\n\nconst AlertDialogMedia = (\n props: React.ComponentProps<typeof ShadcnAlertDialogMedia>\n) => <ShadcnAlertDialogMedia {...props} />;\n\nconst AlertDialogOverlay = (\n props: React.ComponentProps<typeof ShadcnAlertDialogOverlay>\n) => <ShadcnAlertDialogOverlay {...props} />;\n\nconst AlertDialogPortal = (\n props: React.ComponentProps<typeof ShadcnAlertDialogPortal>\n) => <ShadcnAlertDialogPortal {...props} />;\n\nconst AlertDialogTitle = (\n props: React.ComponentProps<typeof ShadcnAlertDialogTitle>\n) => <ShadcnAlertDialogTitle {...props} />;\n\nconst AlertDialogTrigger = (\n props: React.ComponentProps<typeof ShadcnAlertDialogTrigger>\n) => <ShadcnAlertDialogTrigger {...props} />;\n\nexport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogMedia,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n};\n"],"names":["useDialogRootContext","DialogStore","useDialogRoot","React","_jsx","IsDrawerContext","DialogRootContext","AlertDialog","AlertDialogPrimitive.Root","AlertDialogTrigger","AlertDialogPrimitive.Trigger","AlertDialogPortal","AlertDialogPrimitive.Portal","AlertDialogOverlay","jsx","AlertDialogPrimitive.Backdrop","cn","AlertDialogContent","AriaHiddenCleanup","AlertDialogPrimitive.Popup","AlertDialogHeader","AlertDialogFooter","AlertDialogMedia","AlertDialogTitle","AlertDialogPrimitive.Title","AlertDialogDescription","AlertDialogPrimitive.Description","AlertDialogAction","Button","AlertDialogCancel","AlertDialogPrimitive.Close","ShadcnAlertDialog","ShadcnAlertDialogAction","ShadcnAlertDialogCancel","ShadcnAlertDialogContent","ShadcnAlertDialogDescription","ShadcnAlertDialogFooter","ShadcnAlertDialogHeader","ShadcnAlertDialogMedia","ShadcnAlertDialogOverlay","ShadcnAlertDialogPortal","ShadcnAlertDialogTitle","ShadcnAlertDialogTrigger"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -75,13 +75,13 @@ require('../index-DcCSSgb7.js');
|
|
|
75
75
|
require('../index-BwAq9ba8.js');
|
|
76
76
|
require('../index-BY6wgiQV.js');
|
|
77
77
|
require('../index-vioSzJOw.js');
|
|
78
|
+
require('../useAriaHiddenCleanup-CT0To2AH.js');
|
|
78
79
|
require('../DialogTrigger-B0Q6yIrx.js');
|
|
79
80
|
require('../useOpenInteractionType-D4z6FTrA.js');
|
|
80
81
|
require('../floating-ui.utils.dom-BGEmL7pd.js');
|
|
81
82
|
require('../index-DnKJmaCq.js');
|
|
82
83
|
require('../index-BrpkRQoS.js');
|
|
83
84
|
require('../with-selector-DeKHbQY7.js');
|
|
84
|
-
require('../useAriaHiddenCleanup-CT0To2AH.js');
|
|
85
85
|
require('../index-lWVw05cs.js');
|
|
86
86
|
require('../index-DuNgWCXZ.js');
|
|
87
87
|
require('react-i18next');
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { D as DatePicker } from '../DatePicker-
|
|
1
|
+
export { D as DatePicker } from '../DatePicker-B3kUEuKH.js';
|
|
2
2
|
import 'react/jsx-runtime';
|
|
3
3
|
import 'react';
|
|
4
4
|
import '../primitives/Calendar.js';
|
|
@@ -28,7 +28,7 @@ import '../index-BYZaLNq1.js';
|
|
|
28
28
|
import '../index-fV_U4ZJM.js';
|
|
29
29
|
import '../index-yFgkK_AM.js';
|
|
30
30
|
import '../index-Cor698lu.js';
|
|
31
|
-
import '../TimePickerPanel
|
|
31
|
+
import '../TimePickerPanel-n-Dz1p5N.js';
|
|
32
32
|
import '../primitives/Button.js';
|
|
33
33
|
import '../primitives/ScrollArea.js';
|
|
34
34
|
import '../index-d0BBQf5t.js';
|
|
@@ -29,7 +29,10 @@ export interface TimePickerPanelProps {
|
|
|
29
29
|
export type TimePickerType = "time" | "range";
|
|
30
30
|
export interface TimePickerProps {
|
|
31
31
|
/** Current time value. TimeValue/Date/Dayjs for single, [TimeValue|Date|Dayjs, TimeValue|Date|Dayjs] for range. */
|
|
32
|
-
value?: TimeValue | Date | Dayjs |
|
|
32
|
+
value?: TimeValue | Date | Dayjs | string | [
|
|
33
|
+
TimeValue | Date | Dayjs | string | null,
|
|
34
|
+
TimeValue | Date | Dayjs | string | null
|
|
35
|
+
] | null;
|
|
33
36
|
/** Callback when time changes. Returns Dayjs object (or [Dayjs, Dayjs] for range) and formatted string. */
|
|
34
37
|
onChange?: (value: unknown, timeString: string | [string, string]) => void;
|
|
35
38
|
/** Callback when the trigger input(s) lose focus. */
|
|
@@ -7,7 +7,7 @@ export declare const to12Hour: (hour24: number) => {
|
|
|
7
7
|
};
|
|
8
8
|
export declare const to24Hour: (hour12: number, period: "AM" | "PM") => number;
|
|
9
9
|
export declare const dateToTimeValue: (date: Date) => TimeValue;
|
|
10
|
-
export declare const coerceToTimeValue: (value: TimeValue | Date | Dayjs | null | undefined) => TimeValue | null;
|
|
10
|
+
export declare const coerceToTimeValue: (value: TimeValue | Date | Dayjs | string | null | undefined) => TimeValue | null;
|
|
11
11
|
export declare const timeValueEquals: (a: TimeValue | null, b: TimeValue | null) => boolean;
|
|
12
12
|
export declare const getDefaultTimeMaskFormat: (format: "12" | "24", showSeconds: boolean) => string;
|
|
13
13
|
export declare const getTimePlaceholder: (format: "12" | "24", showSeconds: boolean, displayFormat?: string) => string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { T as TimePicker } from '../TimePicker-
|
|
2
|
-
export { T as TimePickerPanel } from '../TimePickerPanel
|
|
1
|
+
export { T as TimePicker } from '../TimePicker-BA7JhrYd.js';
|
|
2
|
+
export { T as TimePickerPanel } from '../TimePickerPanel-n-Dz1p5N.js';
|
|
3
3
|
import 'react/jsx-runtime';
|
|
4
4
|
import 'react';
|
|
5
5
|
import '../primitives/Popover.js';
|
package/dist/components/index.js
CHANGED
|
@@ -8,7 +8,7 @@ export { C as Callout } from '../Callout-DJGi3MQR.js';
|
|
|
8
8
|
export { C as Checkbox } from '../Checkbox-BalUzegZ.js';
|
|
9
9
|
export { C as ColorPicker } from '../ColorPicker-ClnRUq9y.js';
|
|
10
10
|
export { D as DataTable, u as useColumnOrdering, a as useColumnPinning, b as useColumnVisibility, c as useTablePagination, d as useTableSelection, e as useTableSort } from '../DataTable-DKYkrFfk.js';
|
|
11
|
-
export { D as DatePicker } from '../DatePicker-
|
|
11
|
+
export { D as DatePicker } from '../DatePicker-B3kUEuKH.js';
|
|
12
12
|
export { D as Dialog } from '../Dialog-Yw34WDqY.js';
|
|
13
13
|
export { E as Empty } from '../Empty-XqdCD2dj.js';
|
|
14
14
|
export { I as Input } from '../Input-Dm5ILPH3.js';
|
|
@@ -27,8 +27,8 @@ export { S as Stepper } from '../Stepper-GK8gDn-s.js';
|
|
|
27
27
|
export { S as Switch } from '../Switch-C9fqpoNR.js';
|
|
28
28
|
export { T as Tabs } from '../Tabs-DaXiF_67.js';
|
|
29
29
|
export { T as Textarea } from '../Textarea-CUe09-sr.js';
|
|
30
|
-
export { T as TimePicker } from '../TimePicker-
|
|
31
|
-
export { T as TimePickerPanel } from '../TimePickerPanel
|
|
30
|
+
export { T as TimePicker } from '../TimePicker-BA7JhrYd.js';
|
|
31
|
+
export { T as TimePickerPanel } from '../TimePickerPanel-n-Dz1p5N.js';
|
|
32
32
|
export { T as Toastr } from '../Toastr-Dhl8V1V2.js';
|
|
33
33
|
export { T as Tooltip } from '../Tooltip-DWDsgyx7.js';
|
|
34
34
|
export { T as TranslationProvider } from '../TranslationProvider-Dd0ITHC0.js';
|
package/dist/index.js
CHANGED
|
@@ -13,7 +13,7 @@ export { C as Callout } from './Callout-DJGi3MQR.js';
|
|
|
13
13
|
export { C as Checkbox } from './Checkbox-BalUzegZ.js';
|
|
14
14
|
export { C as ColorPicker } from './ColorPicker-ClnRUq9y.js';
|
|
15
15
|
export { D as DataTable, u as useColumnOrdering, a as useColumnPinning, b as useColumnVisibility, c as useTablePagination, d as useTableSelection, e as useTableSort } from './DataTable-DKYkrFfk.js';
|
|
16
|
-
export { D as DatePicker } from './DatePicker-
|
|
16
|
+
export { D as DatePicker } from './DatePicker-B3kUEuKH.js';
|
|
17
17
|
export { D as Dialog } from './Dialog-Yw34WDqY.js';
|
|
18
18
|
export { D as DirectionProvider } from './DirectionProvider-weqLz_BJ.js';
|
|
19
19
|
export { E as Empty } from './Empty-XqdCD2dj.js';
|
|
@@ -33,7 +33,7 @@ export { S as Stepper } from './Stepper-GK8gDn-s.js';
|
|
|
33
33
|
export { S as Switch } from './Switch-C9fqpoNR.js';
|
|
34
34
|
export { T as Tabs } from './Tabs-DaXiF_67.js';
|
|
35
35
|
export { T as Textarea } from './Textarea-CUe09-sr.js';
|
|
36
|
-
export { T as TimePicker } from './TimePicker-
|
|
36
|
+
export { T as TimePicker } from './TimePicker-BA7JhrYd.js';
|
|
37
37
|
export { T as Toastr } from './Toastr-Dhl8V1V2.js';
|
|
38
38
|
export { T as Tooltip } from './Tooltip-DWDsgyx7.js';
|
|
39
39
|
export { T as Tree } from './Tree-D95PpI3W.js';
|
|
@@ -114,7 +114,7 @@ import './primitives/Pagination.js';
|
|
|
114
114
|
import './chevron-left-BDoT8E2-.js';
|
|
115
115
|
import './ellipsis-lb8Ws6br.js';
|
|
116
116
|
import './primitives/Calendar.js';
|
|
117
|
-
import './TimePickerPanel
|
|
117
|
+
import './TimePickerPanel-n-Dz1p5N.js';
|
|
118
118
|
import './primitives/ScrollArea.js';
|
|
119
119
|
import './index-BfAAoDv6.js';
|
|
120
120
|
import 'dayjs';
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TimePicker-BpdNIhWb.js","sources":["../node_modules/lucide-react/dist/esm/icons/clock.js","../src/components/TimePicker/TimePicker.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.577.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M12 6v6l4 2\", key: \"mmk7yg\" }]\n];\nconst Clock = createLucideIcon(\"clock\", __iconNode);\n\nexport { __iconNode, Clock as default };\n//# sourceMappingURL=clock.js.map\n","import React, {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport { Clock, X } from \"lucide-react\";\nimport { Popover, PopoverAnchor, PopoverContent } from \"src/primitives/Popover\";\nimport {\n Field,\n FieldLabel,\n FieldContent,\n FieldDescription,\n FieldError,\n} from \"src/primitives/Field\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { buildTestIdPrefix } from \"src/utils/fieldIds\";\nimport { useControlledOpen } from \"src/hooks/useControlledOpen\";\nimport { useCursorRestore } from \"src/hooks/useCursorRestore\";\nimport { useOutsideClickClose } from \"src/hooks/useOutsideClickClose\";\n\nimport type { Dayjs } from \"dayjs\";\n\nimport { TimePickerPanel } from \"./TimePickerPanel\";\nimport { SIZE_CONFIG } from \"./constants\";\nimport type { TimePickerProps, TimeValue } from \"./types\";\nimport {\n coerceToTimeValue,\n formatTimeDisplay,\n formatTimeWithPattern,\n getDefaultTimeMaskFormat,\n getTimePlaceholder,\n parseTimeString,\n parseTimeWithPattern,\n timeValueEquals,\n timeValueToDayjs,\n} from \"./utils\";\nimport { applyMask, buildMaskTemplate } from \"src/utils/inputMask\";\n\ntype RangeSide = \"from\" | \"to\";\n\nconst TimePicker = forwardRef<HTMLDivElement, TimePickerProps>(\n (\n {\n value,\n onChange,\n onBlur,\n type = \"time\",\n format = \"24\",\n displayFormat,\n showSeconds = false,\n minuteStep = 1,\n secondStep = 1,\n disabled = false,\n placeholder,\n label,\n error,\n helpText,\n size = \"medium\",\n required = false,\n timezone,\n open: openProp,\n onOpenChange,\n needConfirm = true,\n onOk,\n labelProps,\n className,\n dataTestId,\n },\n ref\n ) => {\n const generatedId = useId();\n const errorId = `error_${generatedId}`;\n const helpTextId = `helpText_${generatedId}`;\n const testIdPrefix = buildTestIdPrefix(dataTestId, label);\n const containerRef = useRef<HTMLDivElement>(null);\n const fromInputRef = useRef<HTMLInputElement>(null);\n const toInputRef = useRef<HTMLInputElement>(null);\n const fromCursorRef = useRef<number | null>(null);\n const toCursorRef = useRef<number | null>(null);\n\n const popoverContentId = useRef(\n `timepicker-popover-${generatedId}`\n ).current;\n\n const committedRef = useRef<{\n from: TimeValue | null;\n to: TimeValue | null;\n }>({ from: null, to: null });\n\n const { open, setOpen } = useControlledOpen(openProp, onOpenChange);\n\n const isRange = type === \"range\";\n\n const getInitialTimes = useCallback(() => {\n if (isRange) {\n if (!value || !Array.isArray(value)) {\n return { from: null, to: null };\n }\n\n return {\n from: coerceToTimeValue(value[0] as TimeValue | Date | Dayjs | null),\n to: coerceToTimeValue(value[1] as TimeValue | Date | Dayjs | null),\n };\n }\n\n return {\n from: coerceToTimeValue(\n value as TimeValue | Date | Dayjs | null | undefined\n ),\n to: null,\n };\n }, [value, isRange]);\n\n const formatOne = useCallback(\n (time: TimeValue | null) =>\n displayFormat\n ? formatTimeWithPattern(time, displayFormat)\n : formatTimeDisplay(time, format, showSeconds),\n [displayFormat, format, showSeconds]\n );\n\n const [activeSide, setActiveSide] = useState<RangeSide>(\"from\");\n const [fromTime, setFromTime] = useState(() => getInitialTimes().from);\n const [toTime, setToTime] = useState(() => getInitialTimes().to);\n\n const [fromText, setFromText] = useState(() =>\n formatOne(getInitialTimes().from)\n );\n const [toText, setToText] = useState(() => formatOne(getInitialTimes().to));\n\n const parseOne = (text: string): TimeValue | null =>\n displayFormat\n ? parseTimeWithPattern(text, displayFormat)\n : parseTimeString(text, format);\n\n const emitChange = (from: TimeValue | null, to: TimeValue | null) => {\n if (isRange) {\n if (!from || !to) {\n onChange?.(null, [\"\", \"\"]);\n\n return;\n }\n\n onChange?.(\n [timeValueToDayjs(from), timeValueToDayjs(to)],\n [formatOne(from), formatOne(to)]\n );\n\n return;\n }\n\n if (!from) {\n onChange?.(null, \"\");\n\n return;\n }\n\n onChange?.(timeValueToDayjs(from), formatOne(from));\n };\n\n const commitPendingOnClose = useCallback(() => {\n if (!needConfirm) {\n setFromText(formatOne(fromTime));\n setToText(formatOne(toTime));\n\n return;\n }\n\n const { from: committedFrom, to: committedTo } = committedRef.current;\n const unchanged =\n timeValueEquals(fromTime, committedFrom) &&\n timeValueEquals(toTime, committedTo);\n if (unchanged) return;\n\n emitChange(fromTime, toTime);\n committedRef.current = { from: fromTime, to: toTime };\n }, [needConfirm, fromTime, toTime, formatOne, isRange, onChange]);\n\n const closePopover = useCallback(() => {\n commitPendingOnClose();\n setOpen(false);\n }, [commitPendingOnClose, setOpen]);\n\n useOutsideClickClose({\n enabled: open,\n containerRef,\n popoverElementId: popoverContentId,\n onClose: closePopover,\n });\n\n const maskTemplate = useMemo(\n () =>\n displayFormat\n ? null\n : buildMaskTemplate(getDefaultTimeMaskFormat(format, showSeconds)),\n [displayFormat, format, showSeconds]\n );\n\n const handleOk = () => {\n if (isRange && activeSide === \"from\" && fromTime && !toTime) {\n setActiveSide(\"to\");\n toInputRef.current?.focus();\n\n return;\n }\n\n committedRef.current = { from: fromTime, to: toTime };\n emitChange(fromTime, toTime);\n\n if (isRange) {\n if (fromTime && toTime) {\n onOk?.([timeValueToDayjs(fromTime), timeValueToDayjs(toTime)]);\n } else {\n onOk?.(null);\n }\n } else {\n onOk?.(fromTime ? timeValueToDayjs(fromTime) : null);\n }\n\n setOpen(false);\n };\n\n const handlePanelChange = (time: TimeValue) => {\n if (!isRange) {\n setFromTime(time);\n setFromText(formatOne(time));\n if (!needConfirm) emitChange(time, null);\n\n return;\n }\n\n if (activeSide === \"from\") {\n setFromTime(time);\n setFromText(formatOne(time));\n if (!needConfirm) emitChange(time, toTime);\n\n return;\n }\n\n setToTime(time);\n setToText(formatOne(time));\n if (!needConfirm) emitChange(fromTime, time);\n };\n\n const buildInputChangeHandler =\n (side: RangeSide) => (e: React.ChangeEvent<HTMLInputElement>) => {\n let text = e.target.value;\n const previousText = side === \"from\" ? fromText : toText;\n\n if (maskTemplate) {\n const masked = applyMask(\n text,\n maskTemplate,\n previousText,\n e.target.selectionStart\n );\n text = masked.text;\n\n if (side === \"from\") fromCursorRef.current = masked.cursorPosition;\n else toCursorRef.current = masked.cursorPosition;\n }\n\n if (side === \"from\") setFromText(text);\n else setToText(text);\n\n const parsed = parseOne(text);\n if (!parsed) return;\n\n if (side === \"from\") {\n setFromTime(parsed);\n if (!needConfirm) emitChange(parsed, toTime);\n } else {\n setToTime(parsed);\n if (!needConfirm) emitChange(fromTime, parsed);\n }\n };\n\n const handleInputKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Escape\") {\n const { from, to } = committedRef.current;\n setFromTime(from);\n setToTime(to);\n setFromText(formatOne(from));\n setToText(formatOne(to));\n setOpen(false);\n\n return;\n }\n\n if (e.key !== \"Enter\") return;\n\n if (needConfirm) {\n handleOk();\n\n return;\n }\n\n setFromText(formatOne(fromTime));\n setToText(formatOne(toTime));\n setOpen(false);\n };\n\n const handleInputFocus = (side: RangeSide) => {\n setActiveSide(side);\n if (!open) setOpen(true);\n };\n\n const handleInputBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n const next = e.relatedTarget as HTMLElement | null;\n if (next && containerRef.current?.contains(next)) return;\n\n const popoverEl = document.getElementById(popoverContentId);\n if (next && popoverEl?.contains(next)) return;\n\n onBlur?.(e);\n };\n\n const handleClear = (e: React.MouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n\n setFromTime(null);\n setToTime(null);\n setFromText(\"\");\n setToText(\"\");\n\n committedRef.current = { from: null, to: null };\n onChange?.(null, isRange ? [\"\", \"\"] : \"\");\n };\n\n useEffect(() => {\n if (value === undefined) return;\n\n const next = getInitialTimes();\n setFromTime(next.from);\n setToTime(next.to);\n if (open) return;\n\n setFromText(formatOne(next.from));\n setToText(formatOne(next.to));\n committedRef.current = { from: next.from, to: next.to };\n }, [value, getInitialTimes, formatOne, open]);\n\n useEffect(() => {\n if (!open) return;\n\n committedRef.current = { from: fromTime, to: toTime };\n }, [open]);\n\n useCursorRestore([\n { inputRef: fromInputRef, cursorRef: fromCursorRef },\n { inputRef: toInputRef, cursorRef: toCursorRef },\n ]);\n\n const singlePlaceholder = getTimePlaceholder(\n format,\n showSeconds,\n displayFormat\n );\n\n const hasField = !!(label || error || helpText);\n const sizeConfig = SIZE_CONFIG[size];\n const hasAnyValue = !!(fromText || toText);\n const activeTime = activeSide === \"from\" ? fromTime : toTime;\n\n const ariaDescribedBy =\n [error ? errorId : null, helpText ? helpTextId : null]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n const inputBaseClass = cn(\n \"min-w-0 bg-transparent outline-none placeholder:text-placeholder\",\n \"disabled:cursor-not-allowed\",\n sizeConfig.input\n );\n\n const triggerContent = (\n <Popover open={open}>\n <PopoverAnchor asChild>\n <div\n ref={containerRef}\n className={cn(\n \"relative flex w-full items-center gap-2 rounded-md border border-input bg-transparent pe-8 ps-3\",\n \"focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2\",\n disabled && \"cursor-not-allowed opacity-50\",\n !!error && \"border-destructive ring-destructive/20 ring-3\",\n sizeConfig.trigger,\n !hasField && className\n )}\n >\n {timezone ? (\n <span className=\"shrink-0 rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground\">\n {timezone.toUpperCase()}\n </span>\n ) : (\n <Clock\n className={cn(\n \"shrink-0 text-muted-foreground\",\n sizeConfig.icon\n )}\n />\n )}\n {isRange ? (\n <>\n <input\n ref={fromInputRef}\n type=\"text\"\n disabled={disabled}\n aria-label={\n label ? `${label} start time` : \"Pick a start time\"\n }\n aria-describedby={ariaDescribedBy}\n aria-invalid={!!error || undefined}\n placeholder={placeholder ?? singlePlaceholder}\n value={fromText}\n onChange={buildInputChangeHandler(\"from\")}\n onKeyDown={handleInputKeyDown}\n onFocus={() => handleInputFocus(\"from\")}\n onBlur={handleInputBlur}\n className={cn(inputBaseClass, \"flex-1\")}\n />\n <span\n aria-hidden=\"true\"\n className=\"shrink-0 text-muted-foreground\"\n >\n ~\n </span>\n <input\n ref={toInputRef}\n type=\"text\"\n disabled={disabled}\n aria-label={label ? `${label} end time` : \"Pick an end time\"}\n aria-describedby={ariaDescribedBy}\n aria-invalid={!!error || undefined}\n placeholder={placeholder ?? singlePlaceholder}\n value={toText}\n onChange={buildInputChangeHandler(\"to\")}\n onKeyDown={handleInputKeyDown}\n onFocus={() => handleInputFocus(\"to\")}\n onBlur={handleInputBlur}\n className={cn(inputBaseClass, \"flex-1\")}\n />\n </>\n ) : (\n <input\n ref={fromInputRef}\n type=\"text\"\n disabled={disabled}\n aria-label={label || \"Pick a time\"}\n aria-describedby={ariaDescribedBy}\n aria-invalid={!!error || undefined}\n placeholder={placeholder ?? singlePlaceholder}\n value={fromText}\n onChange={buildInputChangeHandler(\"from\")}\n onKeyDown={handleInputKeyDown}\n onFocus={() => handleInputFocus(\"from\")}\n onBlur={handleInputBlur}\n className={cn(inputBaseClass, \"flex-1\")}\n />\n )}\n <button\n type=\"button\"\n onPointerDown={e => e.preventDefault()}\n onClick={handleClear}\n className={cn(\n \"absolute inset-y-0 end-2 flex items-center text-muted-foreground hover:text-foreground focus:outline-none\",\n !(hasAnyValue && !disabled) && \"invisible\"\n )}\n aria-label={isRange ? \"Clear time range\" : \"Clear time\"}\n tabIndex={-1}\n >\n <X className={sizeConfig.icon} />\n </button>\n </div>\n </PopoverAnchor>\n {open && (\n <PopoverContent\n id={popoverContentId}\n className=\"w-auto p-0\"\n align=\"start\"\n onOpenAutoFocus={e => e.preventDefault()}\n onCloseAutoFocus={e => e.preventDefault()}\n onPointerDownOutside={e => e.preventDefault()}\n onInteractOutside={e => e.preventDefault()}\n >\n <TimePickerPanel\n value={activeTime ?? undefined}\n onChange={handlePanelChange}\n format={format}\n showSeconds={showSeconds}\n minuteStep={minuteStep}\n secondStep={secondStep}\n disabled={disabled}\n />\n {needConfirm && (\n <div className=\"flex items-center justify-end border-t border-border px-3 py-2\">\n <button\n type=\"button\"\n onClick={handleOk}\n className=\"rounded bg-primary px-3 py-1 text-sm font-medium text-primary-foreground hover:bg-primary/90 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n >\n OK\n </button>\n </div>\n )}\n </PopoverContent>\n )}\n </Popover>\n );\n\n if (!hasField) {\n return (\n <div ref={ref} className={className}>\n {triggerContent}\n </div>\n );\n }\n\n return (\n <Field\n ref={ref}\n data-disabled={disabled || undefined}\n data-invalid={!!error || undefined}\n className={className}\n >\n {label && (\n <FieldLabel\n {...(labelProps as React.ComponentProps<typeof FieldLabel>)}\n >\n {label}\n {required && (\n <span aria-hidden=\"true\" className=\"text-destructive\">\n *\n </span>\n )}\n </FieldLabel>\n )}\n <FieldContent>\n {triggerContent}\n {!!error && (\n <FieldError\n id={errorId}\n data-testid={`${testIdPrefix}-input-error`}\n >\n {error}\n </FieldError>\n )}\n {helpText && (\n <FieldDescription\n id={helpTextId}\n data-testid={`${testIdPrefix}-input-help`}\n >\n {helpText}\n </FieldDescription>\n )}\n </FieldContent>\n </Field>\n );\n }\n);\n\nTimePicker.displayName = \"TimePicker\";\n\nexport { TimePicker };\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|