@bigbinary/neeto-atoms 1.0.27 → 1.0.28

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.
@@ -40,6 +40,10 @@ const TimePicker = React.forwardRef(({ value, onChange, format = "24", showSecon
40
40
  return null;
41
41
  if (value instanceof Date)
42
42
  return TimePickerPanel.dateToTimeValue(value);
43
+ if (typeof value.toDate ===
44
+ "function") {
45
+ return TimePickerPanel.dateToTimeValue(value.toDate());
46
+ }
43
47
  return {
44
48
  hours: value.hours,
45
49
  minutes: value.minutes,
@@ -141,4 +145,4 @@ const TimePicker = React.forwardRef(({ value, onChange, format = "24", showSecon
141
145
  TimePicker.displayName = "TimePicker";
142
146
 
143
147
  exports.TimePicker = TimePicker;
144
- //# sourceMappingURL=TimePicker-Ba2FdT1O.js.map
148
+ //# sourceMappingURL=TimePicker-DReL0GSv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimePicker-DReL0GSv.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 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\";\n\nimport { TimePickerPanel } from \"./TimePickerPanel\";\nimport type { TimePickerProps, TimeValue } from \"./types\";\nimport { dateToTimeValue, padNumber, parseTimeString, to12Hour } from \"./utils\";\n\nconst SIZE_CONFIG = {\n small: { trigger: \"h-7 text-xs\", icon: \"size-3.5\" },\n medium: { trigger: \"h-8 text-sm\", icon: \"size-4\" },\n large: { trigger: \"h-10 text-sm\", icon: \"size-4\" },\n} as const;\n\nconst TimePicker = forwardRef<HTMLDivElement, TimePickerProps>(\n (\n {\n value,\n onChange,\n format = \"24\",\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 labelProps,\n className,\n },\n ref\n ) => {\n const generatedId = useId();\n const errorId = `error_${generatedId}`;\n const helpTextId = `helpText_${generatedId}`;\n const containerRef = useRef<HTMLDivElement>(null);\n const popoverContentId = useRef(\n `timepicker-popover-${generatedId}`\n ).current;\n\n const [open, setOpen] = useState(false);\n\n const getInitialTime = useCallback((): TimeValue | null => {\n if (!value) return null;\n if (value instanceof Date) return dateToTimeValue(value);\n if (\n typeof (value as unknown as { toDate?: () => Date }).toDate ===\n \"function\"\n ) {\n return dateToTimeValue(\n (value as unknown as { toDate: () => Date }).toDate()\n );\n }\n\n return {\n hours: (value as TimeValue).hours,\n minutes: (value as TimeValue).minutes,\n seconds: (value as TimeValue).seconds ?? 0,\n };\n }, [value]);\n\n const [internalTime, setInternalTime] = useState<TimeValue | null>(\n getInitialTime\n );\n const [inputText, setInputText] = useState(\"\");\n\n const formatTimeDisplay = useCallback(\n (time: TimeValue | null): 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 [format, showSeconds]\n );\n\n useEffect(() => {\n const newTime = getInitialTime();\n setInternalTime(newTime);\n setInputText(formatTimeDisplay(newTime));\n }, [getInitialTime, formatTimeDisplay]);\n\n // Close on outside click\n useEffect(() => {\n if (!open) 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(popoverContentId);\n if (popoverEl?.contains(target)) return;\n\n setOpen(false);\n setInputText(formatTimeDisplay(internalTime));\n };\n\n document.addEventListener(\"pointerdown\", handlePointerDown);\n\n return () =>\n document.removeEventListener(\"pointerdown\", handlePointerDown);\n }, [open, internalTime, formatTimeDisplay]);\n\n const defaultPlaceholder = showSeconds\n ? format === \"12\"\n ? \"hh:mm:ss AA\"\n : \"HH:mm:ss\"\n : format === \"12\"\n ? \"hh:mm AA\"\n : \"HH:mm\";\n\n const handlePanelChange = (time: TimeValue) => {\n setInternalTime(time);\n setInputText(formatTimeDisplay(time));\n onChange?.(time);\n };\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const text = e.target.value;\n setInputText(text);\n\n const parsed = parseTimeString(text, format);\n if (parsed) {\n setInternalTime(parsed);\n onChange?.(parsed);\n }\n };\n\n const handleInputKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Enter\") {\n setInputText(formatTimeDisplay(internalTime));\n setOpen(false);\n } else if (e.key === \"Escape\") {\n setInputText(formatTimeDisplay(internalTime));\n setOpen(false);\n }\n };\n\n const handleInputFocus = () => {\n if (!open) setOpen(true);\n };\n\n const handleClear = (e: React.MouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n setInternalTime(null);\n setInputText(\"\");\n onChange?.({ hours: 0, minutes: 0, seconds: 0 });\n };\n\n const hasField = !!(label || error || helpText);\n const sizeConfig = SIZE_CONFIG[size];\n\n const ariaDescribedBy =\n [error ? errorId : null, helpText ? helpTextId : null]\n .filter(Boolean)\n .join(\" \") || undefined;\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-background 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 <input\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 ?? defaultPlaceholder}\n value={inputText}\n onChange={handleInputChange}\n onKeyDown={handleInputKeyDown}\n onFocus={handleInputFocus}\n className={cn(\n \"min-w-0 flex-1 bg-transparent outline-none placeholder:text-muted-foreground\",\n \"disabled:cursor-not-allowed\",\n sizeConfig.trigger.split(\" \").find(c => c.startsWith(\"text-\"))\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 !(inputText && !disabled) && \"invisible\"\n )}\n aria-label=\"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={internalTime ?? undefined}\n onChange={handlePanelChange}\n format={format}\n showSeconds={showSeconds}\n minuteStep={minuteStep}\n secondStep={secondStep}\n disabled={disabled}\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 && <FieldError id={errorId}>{error}</FieldError>}\n {helpText && (\n <FieldDescription id={helpTextId}>{helpText}</FieldDescription>\n )}\n </FieldContent>\n </Field>\n );\n }\n);\n\nTimePicker.displayName = \"TimePicker\";\n\nexport { TimePicker };\n"],"names":["createLucideIcon","forwardRef","useId","useRef","useState","useCallback","dateToTimeValue","to12Hour","padNumber","useEffect","parseTimeString","_jsxs","Popover","_jsx","PopoverAnchor","cn","X","PopoverContent","TimePickerPanel","Field","FieldLabel","FieldContent","FieldError","FieldDescription"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var DataTable = require('../DataTable-DhWDzUWw.js');
3
+ var DataTable = require('../DataTable-XA82zdPA.js');
4
4
  require('react/jsx-runtime');
5
5
  require('react');
6
6
  require('../primitives/Table.js');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var DatePicker = require('../DatePicker-CA113xZV.js');
3
+ var DatePicker = require('../DatePicker-aFQ4yEf1.js');
4
4
  require('react/jsx-runtime');
5
5
  require('react');
6
6
  require('../Calendar-RRA-wKOF.js');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var TimePicker = require('../TimePicker-Ba2FdT1O.js');
3
+ var TimePicker = require('../TimePicker-DReL0GSv.js');
4
4
  var TimePickerPanel = require('../TimePickerPanel-DGNr97cj.js');
5
5
  require('react/jsx-runtime');
6
6
  require('react');
@@ -8,8 +8,8 @@ var Button = require('../Button-Bt_AElge.js');
8
8
  var Callout = require('../Callout-CVNpjTde.js');
9
9
  var Checkbox = require('../Checkbox-DOlS2oCD.js');
10
10
  var ColorPicker = require('../ColorPicker-Uxgn8U0h.js');
11
- var DataTable = require('../DataTable-DhWDzUWw.js');
12
- var DatePicker = require('../DatePicker-CA113xZV.js');
11
+ var DataTable = require('../DataTable-XA82zdPA.js');
12
+ var DatePicker = require('../DatePicker-aFQ4yEf1.js');
13
13
  var Dialog = require('../Dialog-CtI_yWsJ.js');
14
14
  var components_DropdownMenu = require('./DropdownMenu.js');
15
15
  var Empty = require('../Empty-qzle6YvT.js');
@@ -29,7 +29,7 @@ var Stepper = require('../Stepper-DCoLl2ZS.js');
29
29
  var Switch = require('../Switch-CFf8DtB_.js');
30
30
  var Tabs = require('../Tabs-D2247rd7.js');
31
31
  var Textarea = require('../Textarea-BfdlAJ59.js');
32
- var TimePicker = require('../TimePicker-Ba2FdT1O.js');
32
+ var TimePicker = require('../TimePicker-DReL0GSv.js');
33
33
  var TimePickerPanel = require('../TimePickerPanel-DGNr97cj.js');
34
34
  var Toastr = require('../Toastr-BGp7-kmf.js');
35
35
  var Tooltip = require('../Tooltip-criVUtIg.js');
package/dist/cjs/index.js CHANGED
@@ -8,8 +8,8 @@ var Button = require('./Button-Bt_AElge.js');
8
8
  var Callout = require('./Callout-CVNpjTde.js');
9
9
  var Checkbox = require('./Checkbox-DOlS2oCD.js');
10
10
  var ColorPicker = require('./ColorPicker-Uxgn8U0h.js');
11
- var DatePicker = require('./DatePicker-CA113xZV.js');
12
- var TimePicker = require('./TimePicker-Ba2FdT1O.js');
11
+ var DatePicker = require('./DatePicker-aFQ4yEf1.js');
12
+ var TimePicker = require('./TimePicker-DReL0GSv.js');
13
13
  require('./TimePickerPanel-DGNr97cj.js');
14
14
  var pureDayjs = require('dayjs');
15
15
  var localeData = require('dayjs/plugin/localeData');
@@ -40,7 +40,7 @@ var Tabs = require('./Tabs-D2247rd7.js');
40
40
  var Textarea = require('./Textarea-BfdlAJ59.js');
41
41
  var Tooltip = require('./Tooltip-criVUtIg.js');
42
42
  var Typography = require('./Typography-DaZ0HTha.js');
43
- var DataTable = require('./DataTable-DhWDzUWw.js');
43
+ var DataTable = require('./DataTable-XA82zdPA.js');
44
44
  var Tree = require('./Tree-BPd0DuLh.js');
45
45
  var TreeSelect = require('./TreeSelect-BoffO6qD.js');
46
46
  var useMobile = require('./use-mobile-B-UYxtqX.js');
@@ -1,4 +1,4 @@
1
- export { D as DataTable, u as useColumnOrdering, a as useColumnPinning, b as useColumnVisibility, c as useTablePagination, d as useTableSelection, e as useTableSort } from '../DataTable-DbSFUmLd.js';
1
+ export { D as DataTable, u as useColumnOrdering, a as useColumnPinning, b as useColumnVisibility, c as useTablePagination, d as useTableSelection, e as useTableSort } from '../DataTable-pZm7R5rm.js';
2
2
  import 'react/jsx-runtime';
3
3
  import 'react';
4
4
  import '../primitives/Table.js';
@@ -1,4 +1,8 @@
1
1
  import type { TimeValue } from "../TimePicker/types";
2
+ /** Coerce dayjs/moment-like objects or date strings to native Date. */
3
+ export declare const toNativeDate: (value: unknown) => Date | null;
4
+ /** Coerce a single or range value to native Date(s). */
5
+ export declare const coerceDateValue: (value: unknown, type: "date" | "range") => Date | [Date | null, Date | null] | null;
2
6
  export declare const formatDate: (date: Date | null, formatStr: string) => string;
3
7
  export declare const parseDate: (str: string, formatStr: string) => Date | null;
4
8
  export declare const clampDate: (date: Date, min?: Date, max?: Date) => Date;
@@ -1,4 +1,4 @@
1
- export { D as DatePicker } from '../DatePicker-RvdQv1LE.js';
1
+ export { D as DatePicker } from '../DatePicker-C5DROLCX.js';
2
2
  import 'react/jsx-runtime';
3
3
  import 'react';
4
4
  import '../Calendar-C4fe-WIS.js';
@@ -1,4 +1,4 @@
1
- export { T as TimePicker } from '../TimePicker-C4x62jI1.js';
1
+ export { T as TimePicker } from '../TimePicker-2vhf5yYK.js';
2
2
  export { T as TimePickerPanel } from '../TimePickerPanel-CiF0RExY.js';
3
3
  import 'react/jsx-runtime';
4
4
  import 'react';
@@ -6,8 +6,8 @@ export { B as Button } from '../Button-Q7MPG6ph.js';
6
6
  export { C as Callout } from '../Callout-CTr3dhBe.js';
7
7
  export { C as Checkbox } from '../Checkbox-zCxgcZiC.js';
8
8
  export { C as ColorPicker } from '../ColorPicker-DtOvy0Gy.js';
9
- export { D as DataTable, u as useColumnOrdering, a as useColumnPinning, b as useColumnVisibility, c as useTablePagination, d as useTableSelection, e as useTableSort } from '../DataTable-DbSFUmLd.js';
10
- export { D as DatePicker } from '../DatePicker-RvdQv1LE.js';
9
+ export { D as DataTable, u as useColumnOrdering, a as useColumnPinning, b as useColumnVisibility, c as useTablePagination, d as useTableSelection, e as useTableSort } from '../DataTable-pZm7R5rm.js';
10
+ export { D as DatePicker } from '../DatePicker-C5DROLCX.js';
11
11
  export { D as Dialog } from '../Dialog-BURSzxaP.js';
12
12
  export { DropdownMenu } from './DropdownMenu.js';
13
13
  export { E as Empty } from '../Empty-B2JwFmru.js';
@@ -27,7 +27,7 @@ export { S as Stepper } from '../Stepper-BoGkmkY0.js';
27
27
  export { S as Switch } from '../Switch-B83TGxJ_.js';
28
28
  export { T as Tabs } from '../Tabs-DWfKnl3S.js';
29
29
  export { T as Textarea } from '../Textarea-C0z50h0N.js';
30
- export { T as TimePicker } from '../TimePicker-C4x62jI1.js';
30
+ export { T as TimePicker } from '../TimePicker-2vhf5yYK.js';
31
31
  export { T as TimePickerPanel } from '../TimePickerPanel-CiF0RExY.js';
32
32
  export { T as Toastr } from '../Toastr-DYqpSaMd.js';
33
33
  export { T as Tooltip } from '../Tooltip-3ZzQyaDV.js';
package/dist/index.js CHANGED
@@ -6,8 +6,8 @@ export { B as Button } from './Button-Q7MPG6ph.js';
6
6
  export { C as Callout } from './Callout-CTr3dhBe.js';
7
7
  export { C as Checkbox } from './Checkbox-zCxgcZiC.js';
8
8
  export { C as ColorPicker } from './ColorPicker-DtOvy0Gy.js';
9
- export { D as DatePicker } from './DatePicker-RvdQv1LE.js';
10
- export { T as TimePicker } from './TimePicker-C4x62jI1.js';
9
+ export { D as DatePicker } from './DatePicker-C5DROLCX.js';
10
+ export { T as TimePicker } from './TimePicker-2vhf5yYK.js';
11
11
  import './TimePickerPanel-CiF0RExY.js';
12
12
  import pureDayjs from 'dayjs';
13
13
  import localeData from 'dayjs/plugin/localeData';
@@ -38,7 +38,7 @@ export { T as Tabs } from './Tabs-DWfKnl3S.js';
38
38
  export { T as Textarea } from './Textarea-C0z50h0N.js';
39
39
  export { T as Tooltip } from './Tooltip-3ZzQyaDV.js';
40
40
  export { T as Typography, t as typographyVariants } from './Typography-ClPJbLjP.js';
41
- export { D as DataTable, u as useColumnOrdering, a as useColumnPinning, b as useColumnVisibility, c as useTablePagination, d as useTableSelection, e as useTableSort } from './DataTable-DbSFUmLd.js';
41
+ export { D as DataTable, u as useColumnOrdering, a as useColumnPinning, b as useColumnVisibility, c as useTablePagination, d as useTableSelection, e as useTableSort } from './DataTable-pZm7R5rm.js';
42
42
  export { T as Tree } from './Tree-C7r10UY5.js';
43
43
  export { T as TreeSelect } from './TreeSelect-BxsQrdjf.js';
44
44
  export { u as useIsMobile } from './use-mobile-IRjN_mlT.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-atoms",
3
- "version": "1.0.27",
3
+ "version": "1.0.28",
4
4
  "author": "BigBinary",
5
5
  "license": "MIT",
6
6
  "engines": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"TimePicker-C4x62jI1.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 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\";\n\nimport { TimePickerPanel } from \"./TimePickerPanel\";\nimport type { TimePickerProps, TimeValue } from \"./types\";\nimport { dateToTimeValue, padNumber, parseTimeString, to12Hour } from \"./utils\";\n\nconst SIZE_CONFIG = {\n small: { trigger: \"h-7 text-xs\", icon: \"size-3.5\" },\n medium: { trigger: \"h-8 text-sm\", icon: \"size-4\" },\n large: { trigger: \"h-10 text-sm\", icon: \"size-4\" },\n} as const;\n\nconst TimePicker = forwardRef<HTMLDivElement, TimePickerProps>(\n (\n {\n value,\n onChange,\n format = \"24\",\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 labelProps,\n className,\n },\n ref\n ) => {\n const generatedId = useId();\n const errorId = `error_${generatedId}`;\n const helpTextId = `helpText_${generatedId}`;\n const containerRef = useRef<HTMLDivElement>(null);\n const popoverContentId = useRef(\n `timepicker-popover-${generatedId}`\n ).current;\n\n const [open, setOpen] = useState(false);\n\n const getInitialTime = useCallback((): TimeValue | null => {\n if (!value) return null;\n if (value instanceof Date) return dateToTimeValue(value);\n\n return {\n hours: value.hours,\n minutes: value.minutes,\n seconds: value.seconds ?? 0,\n };\n }, [value]);\n\n const [internalTime, setInternalTime] = useState<TimeValue | null>(\n getInitialTime\n );\n const [inputText, setInputText] = useState(\"\");\n\n const formatTimeDisplay = useCallback(\n (time: TimeValue | null): 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 [format, showSeconds]\n );\n\n useEffect(() => {\n const newTime = getInitialTime();\n setInternalTime(newTime);\n setInputText(formatTimeDisplay(newTime));\n }, [getInitialTime, formatTimeDisplay]);\n\n // Close on outside click\n useEffect(() => {\n if (!open) 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(popoverContentId);\n if (popoverEl?.contains(target)) return;\n\n setOpen(false);\n setInputText(formatTimeDisplay(internalTime));\n };\n\n document.addEventListener(\"pointerdown\", handlePointerDown);\n\n return () =>\n document.removeEventListener(\"pointerdown\", handlePointerDown);\n }, [open, internalTime, formatTimeDisplay]);\n\n const defaultPlaceholder = showSeconds\n ? format === \"12\"\n ? \"hh:mm:ss AA\"\n : \"HH:mm:ss\"\n : format === \"12\"\n ? \"hh:mm AA\"\n : \"HH:mm\";\n\n const handlePanelChange = (time: TimeValue) => {\n setInternalTime(time);\n setInputText(formatTimeDisplay(time));\n onChange?.(time);\n };\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const text = e.target.value;\n setInputText(text);\n\n const parsed = parseTimeString(text, format);\n if (parsed) {\n setInternalTime(parsed);\n onChange?.(parsed);\n }\n };\n\n const handleInputKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Enter\") {\n setInputText(formatTimeDisplay(internalTime));\n setOpen(false);\n } else if (e.key === \"Escape\") {\n setInputText(formatTimeDisplay(internalTime));\n setOpen(false);\n }\n };\n\n const handleInputFocus = () => {\n if (!open) setOpen(true);\n };\n\n const handleClear = (e: React.MouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n setInternalTime(null);\n setInputText(\"\");\n onChange?.({ hours: 0, minutes: 0, seconds: 0 });\n };\n\n const hasField = !!(label || error || helpText);\n const sizeConfig = SIZE_CONFIG[size];\n\n const ariaDescribedBy =\n [error ? errorId : null, helpText ? helpTextId : null]\n .filter(Boolean)\n .join(\" \") || undefined;\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-background 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 <input\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 ?? defaultPlaceholder}\n value={inputText}\n onChange={handleInputChange}\n onKeyDown={handleInputKeyDown}\n onFocus={handleInputFocus}\n className={cn(\n \"min-w-0 flex-1 bg-transparent outline-none placeholder:text-muted-foreground\",\n \"disabled:cursor-not-allowed\",\n sizeConfig.trigger.split(\" \").find(c => c.startsWith(\"text-\"))\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 !(inputText && !disabled) && \"invisible\"\n )}\n aria-label=\"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={internalTime ?? undefined}\n onChange={handlePanelChange}\n format={format}\n showSeconds={showSeconds}\n minuteStep={minuteStep}\n secondStep={secondStep}\n disabled={disabled}\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 && <FieldError id={errorId}>{error}</FieldError>}\n {helpText && (\n <FieldDescription id={helpTextId}>{helpText}</FieldDescription>\n )}\n </FieldContent>\n </Field>\n );\n }\n);\n\nTimePicker.displayName = \"TimePicker\";\n\nexport { TimePicker };\n"],"names":["_jsxs","_jsx"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TimePicker-Ba2FdT1O.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 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\";\n\nimport { TimePickerPanel } from \"./TimePickerPanel\";\nimport type { TimePickerProps, TimeValue } from \"./types\";\nimport { dateToTimeValue, padNumber, parseTimeString, to12Hour } from \"./utils\";\n\nconst SIZE_CONFIG = {\n small: { trigger: \"h-7 text-xs\", icon: \"size-3.5\" },\n medium: { trigger: \"h-8 text-sm\", icon: \"size-4\" },\n large: { trigger: \"h-10 text-sm\", icon: \"size-4\" },\n} as const;\n\nconst TimePicker = forwardRef<HTMLDivElement, TimePickerProps>(\n (\n {\n value,\n onChange,\n format = \"24\",\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 labelProps,\n className,\n },\n ref\n ) => {\n const generatedId = useId();\n const errorId = `error_${generatedId}`;\n const helpTextId = `helpText_${generatedId}`;\n const containerRef = useRef<HTMLDivElement>(null);\n const popoverContentId = useRef(\n `timepicker-popover-${generatedId}`\n ).current;\n\n const [open, setOpen] = useState(false);\n\n const getInitialTime = useCallback((): TimeValue | null => {\n if (!value) return null;\n if (value instanceof Date) return dateToTimeValue(value);\n\n return {\n hours: value.hours,\n minutes: value.minutes,\n seconds: value.seconds ?? 0,\n };\n }, [value]);\n\n const [internalTime, setInternalTime] = useState<TimeValue | null>(\n getInitialTime\n );\n const [inputText, setInputText] = useState(\"\");\n\n const formatTimeDisplay = useCallback(\n (time: TimeValue | null): 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 [format, showSeconds]\n );\n\n useEffect(() => {\n const newTime = getInitialTime();\n setInternalTime(newTime);\n setInputText(formatTimeDisplay(newTime));\n }, [getInitialTime, formatTimeDisplay]);\n\n // Close on outside click\n useEffect(() => {\n if (!open) 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(popoverContentId);\n if (popoverEl?.contains(target)) return;\n\n setOpen(false);\n setInputText(formatTimeDisplay(internalTime));\n };\n\n document.addEventListener(\"pointerdown\", handlePointerDown);\n\n return () =>\n document.removeEventListener(\"pointerdown\", handlePointerDown);\n }, [open, internalTime, formatTimeDisplay]);\n\n const defaultPlaceholder = showSeconds\n ? format === \"12\"\n ? \"hh:mm:ss AA\"\n : \"HH:mm:ss\"\n : format === \"12\"\n ? \"hh:mm AA\"\n : \"HH:mm\";\n\n const handlePanelChange = (time: TimeValue) => {\n setInternalTime(time);\n setInputText(formatTimeDisplay(time));\n onChange?.(time);\n };\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const text = e.target.value;\n setInputText(text);\n\n const parsed = parseTimeString(text, format);\n if (parsed) {\n setInternalTime(parsed);\n onChange?.(parsed);\n }\n };\n\n const handleInputKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Enter\") {\n setInputText(formatTimeDisplay(internalTime));\n setOpen(false);\n } else if (e.key === \"Escape\") {\n setInputText(formatTimeDisplay(internalTime));\n setOpen(false);\n }\n };\n\n const handleInputFocus = () => {\n if (!open) setOpen(true);\n };\n\n const handleClear = (e: React.MouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n setInternalTime(null);\n setInputText(\"\");\n onChange?.({ hours: 0, minutes: 0, seconds: 0 });\n };\n\n const hasField = !!(label || error || helpText);\n const sizeConfig = SIZE_CONFIG[size];\n\n const ariaDescribedBy =\n [error ? errorId : null, helpText ? helpTextId : null]\n .filter(Boolean)\n .join(\" \") || undefined;\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-background 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 <input\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 ?? defaultPlaceholder}\n value={inputText}\n onChange={handleInputChange}\n onKeyDown={handleInputKeyDown}\n onFocus={handleInputFocus}\n className={cn(\n \"min-w-0 flex-1 bg-transparent outline-none placeholder:text-muted-foreground\",\n \"disabled:cursor-not-allowed\",\n sizeConfig.trigger.split(\" \").find(c => c.startsWith(\"text-\"))\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 !(inputText && !disabled) && \"invisible\"\n )}\n aria-label=\"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={internalTime ?? undefined}\n onChange={handlePanelChange}\n format={format}\n showSeconds={showSeconds}\n minuteStep={minuteStep}\n secondStep={secondStep}\n disabled={disabled}\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 && <FieldError id={errorId}>{error}</FieldError>}\n {helpText && (\n <FieldDescription id={helpTextId}>{helpText}</FieldDescription>\n )}\n </FieldContent>\n </Field>\n );\n }\n);\n\nTimePicker.displayName = \"TimePicker\";\n\nexport { TimePicker };\n"],"names":["createLucideIcon","forwardRef","useId","useRef","useState","useCallback","dateToTimeValue","to12Hour","padNumber","useEffect","parseTimeString","_jsxs","Popover","_jsx","PopoverAnchor","cn","X","PopoverContent","TimePickerPanel","Field","FieldLabel","FieldContent","FieldError","FieldDescription"],"mappings":"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","x_google_ignoreList":[0]}