@bigbinary/neeto-atoms 1.0.44 → 1.0.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/dist/{ColorPicker-D7Y1gZNn.js → ColorPicker-ClnRUq9y.js} +2 -2
  2. package/dist/{ColorPicker-D7Y1gZNn.js.map → ColorPicker-ClnRUq9y.js.map} +1 -1
  3. package/dist/{DatePicker-CV3nsugu.js → DatePicker-D-0HMiNG.js} +17 -5
  4. package/dist/DatePicker-D-0HMiNG.js.map +1 -0
  5. package/dist/{Input-xjYQfsaz.js → Input-DrpfsLAw.js} +22 -6
  6. package/dist/Input-DrpfsLAw.js.map +1 -0
  7. package/dist/{MultiEmailInput-L-QJg0hh.js → MultiEmailInput-DhjSEXbS.js} +6 -5
  8. package/dist/MultiEmailInput-DhjSEXbS.js.map +1 -0
  9. package/dist/{Select-o0yJaN0P.js → Select-BiyQTuiQ.js} +20 -12
  10. package/dist/Select-BiyQTuiQ.js.map +1 -0
  11. package/dist/{TimePicker-XE0sCXE6.js → TimePicker-CSjiggpr.js} +17 -5
  12. package/dist/TimePicker-CSjiggpr.js.map +1 -0
  13. package/dist/{TreeSelect-Dk299XMv.js → TreeSelect-BwF2rY6f.js} +7 -4
  14. package/dist/{TreeSelect-Dk299XMv.js.map → TreeSelect-BwF2rY6f.js.map} +1 -1
  15. package/dist/cjs/{ColorPicker-Co1Gffsu.js → ColorPicker-rhCnblTv.js} +2 -2
  16. package/dist/cjs/{ColorPicker-Co1Gffsu.js.map → ColorPicker-rhCnblTv.js.map} +1 -1
  17. package/dist/cjs/{DatePicker-CqnlwzLe.js → DatePicker-JhQ7D2bu.js} +17 -5
  18. package/dist/cjs/DatePicker-JhQ7D2bu.js.map +1 -0
  19. package/dist/cjs/{Input-CpuJXazH.js → Input-Lc77SV8e.js} +22 -6
  20. package/dist/cjs/Input-Lc77SV8e.js.map +1 -0
  21. package/dist/cjs/{MultiEmailInput-CPXODFvs.js → MultiEmailInput-BZtzoX7D.js} +6 -5
  22. package/dist/cjs/MultiEmailInput-BZtzoX7D.js.map +1 -0
  23. package/dist/cjs/{Select-DbfPhEu0.js → Select-DC23xcMU.js} +20 -12
  24. package/dist/cjs/Select-DC23xcMU.js.map +1 -0
  25. package/dist/cjs/{TimePicker-BGWNGfVR.js → TimePicker-CU7qJpoT.js} +17 -5
  26. package/dist/cjs/TimePicker-CU7qJpoT.js.map +1 -0
  27. package/dist/cjs/{TreeSelect-Cmm5yYq3.js → TreeSelect-qLtRIP-s.js} +7 -4
  28. package/dist/cjs/{TreeSelect-Cmm5yYq3.js.map → TreeSelect-qLtRIP-s.js.map} +1 -1
  29. package/dist/cjs/components/ColorPicker.js +1 -1
  30. package/dist/cjs/components/DatePicker.js +1 -1
  31. package/dist/cjs/components/Input.js +2 -1
  32. package/dist/cjs/components/Input.js.map +1 -1
  33. package/dist/cjs/components/MultiEmailInput.js +2 -1
  34. package/dist/cjs/components/MultiEmailInput.js.map +1 -1
  35. package/dist/cjs/components/Select.js +1 -1
  36. package/dist/cjs/components/TimePicker.js +1 -1
  37. package/dist/cjs/components/TreeSelect.js +1 -1
  38. package/dist/cjs/components/index.js +8 -7
  39. package/dist/cjs/components/index.js.map +1 -1
  40. package/dist/cjs/formik/Input.js +2 -1
  41. package/dist/cjs/formik/Input.js.map +1 -1
  42. package/dist/cjs/formik/MultiEmailInput.js +2 -1
  43. package/dist/cjs/formik/MultiEmailInput.js.map +1 -1
  44. package/dist/cjs/formik/Select.js +1 -1
  45. package/dist/cjs/formik/TreeSelect.js +1 -1
  46. package/dist/cjs/formik/index.js +5 -4
  47. package/dist/cjs/formik/index.js.map +1 -1
  48. package/dist/cjs/index.js +8 -7
  49. package/dist/cjs/index.js.map +1 -1
  50. package/dist/cjs/withIconSize-BKUwVY6t.js +19 -0
  51. package/dist/cjs/withIconSize-BKUwVY6t.js.map +1 -0
  52. package/dist/components/ColorPicker.js +1 -1
  53. package/dist/components/DatePicker/constants.d.ts +7 -4
  54. package/dist/components/DatePicker.js +1 -1
  55. package/dist/components/Input/constants.d.ts +3 -0
  56. package/dist/components/Input.js +2 -1
  57. package/dist/components/Input.js.map +1 -1
  58. package/dist/components/MultiEmailInput.js +2 -1
  59. package/dist/components/MultiEmailInput.js.map +1 -1
  60. package/dist/components/Select/MultiSelectCombobox.types.d.ts +1 -0
  61. package/dist/components/Select/SelectCombobox.types.d.ts +1 -0
  62. package/dist/components/Select/constants.d.ts +1 -0
  63. package/dist/components/Select.js +1 -1
  64. package/dist/components/TimePicker.js +1 -1
  65. package/dist/components/TreeSelect.js +1 -1
  66. package/dist/components/index.js +8 -7
  67. package/dist/components/index.js.map +1 -1
  68. package/dist/formik/Input.js +2 -1
  69. package/dist/formik/Input.js.map +1 -1
  70. package/dist/formik/MultiEmailInput.js +2 -1
  71. package/dist/formik/MultiEmailInput.js.map +1 -1
  72. package/dist/formik/Select.js +1 -1
  73. package/dist/formik/TreeSelect.js +1 -1
  74. package/dist/formik/index.js +5 -4
  75. package/dist/formik/index.js.map +1 -1
  76. package/dist/hooks/useMultiSelectState.d.ts +1 -0
  77. package/dist/hooks/useSelectState.d.ts +1 -0
  78. package/dist/index.js +8 -7
  79. package/dist/index.js.map +1 -1
  80. package/dist/utils/withIconSize.d.ts +12 -0
  81. package/dist/withIconSize-Czt1EelO.js +13 -0
  82. package/dist/withIconSize-Czt1EelO.js.map +1 -0
  83. package/package.json +1 -1
  84. package/dist/DatePicker-CV3nsugu.js.map +0 -1
  85. package/dist/Input-xjYQfsaz.js.map +0 -1
  86. package/dist/MultiEmailInput-L-QJg0hh.js.map +0 -1
  87. package/dist/Select-o0yJaN0P.js.map +0 -1
  88. package/dist/TimePicker-XE0sCXE6.js.map +0 -1
  89. package/dist/cjs/DatePicker-CqnlwzLe.js.map +0 -1
  90. package/dist/cjs/Input-CpuJXazH.js.map +0 -1
  91. package/dist/cjs/MultiEmailInput-CPXODFvs.js.map +0 -1
  92. package/dist/cjs/Select-DbfPhEu0.js.map +0 -1
  93. package/dist/cjs/TimePicker-BGWNGfVR.js.map +0 -1
@@ -24,9 +24,21 @@ const __iconNode = [
24
24
  const Clock = createLucideIcon.createLucideIcon("clock", __iconNode);
25
25
 
26
26
  const SIZE_CONFIG = {
27
- small: { trigger: "h-7 text-xs", icon: "size-3.5" },
28
- medium: { trigger: "h-8 text-sm", icon: "size-4" },
29
- large: { trigger: "h-10 text-sm", icon: "size-4" }
27
+ small: {
28
+ trigger: "h-8 md:h-7",
29
+ input: "text-base md:text-xs",
30
+ icon: "size-3.5"
31
+ },
32
+ medium: {
33
+ trigger: "h-8",
34
+ input: "text-base md:text-sm",
35
+ icon: "size-4"
36
+ },
37
+ large: {
38
+ trigger: "h-10",
39
+ input: "text-base md:text-sm",
40
+ icon: "size-5"
41
+ }
30
42
  };
31
43
  const TimePicker = React.forwardRef(
32
44
  ({
@@ -207,7 +219,7 @@ const TimePicker = React.forwardRef(
207
219
  className: utils.cn(
208
220
  "min-w-0 flex-1 bg-transparent outline-none placeholder:text-muted-foreground",
209
221
  "disabled:cursor-not-allowed",
210
- sizeConfig.trigger.split(" ").find((c) => c.startsWith("text-"))
222
+ sizeConfig.input
211
223
  )
212
224
  }
213
225
  ),
@@ -288,4 +300,4 @@ const TimePicker = React.forwardRef(
288
300
  TimePicker.displayName = "TimePicker";
289
301
 
290
302
  exports.TimePicker = TimePicker;
291
- //# sourceMappingURL=TimePicker-BGWNGfVR.js.map
303
+ //# sourceMappingURL=TimePicker-CU7qJpoT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimePicker-CU7qJpoT.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 useLayoutEffect,\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\";\n\nimport { TimePickerPanel } from \"./TimePickerPanel\";\nimport type { TimePickerProps, TimeValue } from \"./types\";\nimport {\n dateToTimeValue,\n formatTimeDisplay,\n parseTimeString,\n timeValueToDayjs,\n} from \"./utils\";\nimport { applyMask, buildMaskTemplate } from \"src/utils/inputMask\";\n\nconst 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\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 inputRef = useRef<HTMLInputElement>(null);\n const cursorPosRef = useRef<number | null>(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 // Dayjs-like objects: extract time via .hour()/.minute()/.second()\n // to preserve timezone context (native .getHours() would give browser-local).\n const dayjsLike = value as {\n toDate?: () => Date;\n hour?: () => number;\n minute?: () => number;\n second?: () => number;\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 timeValue = value as TimeValue;\n\n return {\n hours: timeValue.hours,\n minutes: timeValue.minutes,\n seconds: 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 displayTime = useCallback(\n (time: TimeValue | null) => formatTimeDisplay(time, format, showSeconds),\n [format, showSeconds]\n );\n\n useEffect(() => {\n const newTime = getInitialTime();\n setInternalTime(newTime);\n if (!open) setInputText(displayTime(newTime));\n }, [getInitialTime, displayTime, open]);\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(displayTime(internalTime));\n };\n\n document.addEventListener(\"pointerdown\", handlePointerDown);\n\n return () =>\n document.removeEventListener(\"pointerdown\", handlePointerDown);\n }, [open, internalTime, displayTime]);\n\n const maskFormatStr = useMemo(() => {\n if (format === \"12\") {\n return showSeconds ? \"hh:mm:ss AA\" : \"hh:mm AA\";\n }\n\n return showSeconds ? \"HH:mm:ss\" : \"HH:mm\";\n }, [format, showSeconds]);\n\n const maskTemplate = useMemo(\n () => buildMaskTemplate(maskFormatStr),\n [maskFormatStr]\n );\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 emitChange = (time: TimeValue) => {\n onChange?.(timeValueToDayjs(time), displayTime(time));\n };\n\n const handlePanelChange = (time: TimeValue) => {\n setInternalTime(time);\n setInputText(displayTime(time));\n emitChange(time);\n };\n\n useLayoutEffect(() => {\n if (\n cursorPosRef.current !== null &&\n inputRef.current &&\n document.activeElement === inputRef.current\n ) {\n inputRef.current.setSelectionRange(\n cursorPosRef.current,\n cursorPosRef.current\n );\n cursorPosRef.current = null;\n }\n });\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const masked = applyMask(\n e.target.value,\n maskTemplate,\n inputText,\n e.target.selectionStart\n );\n const text = masked.text;\n cursorPosRef.current = masked.cursorPosition;\n\n setInputText(text);\n\n const parsed = parseTimeString(text, format);\n if (parsed) {\n setInternalTime(parsed);\n emitChange(parsed);\n }\n };\n\n const handleInputKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key !== \"Enter\" && e.key !== \"Escape\") return;\n\n setInputText(displayTime(internalTime));\n setOpen(false);\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 const cleared = { hours: 0, minutes: 0, seconds: 0 };\n setInternalTime(null);\n setInputText(\"\");\n emitChange(cleared);\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 ref={inputRef}\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.input\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","formatTimeDisplay","useEffect","useMemo","buildMaskTemplate","timeValueToDayjs","useLayoutEffect","applyMask","parseTimeString","jsxs","Popover","jsx","PopoverAnchor","cn","X","PopoverContent","TimePickerPanel","Field","FieldLabel","FieldContent","FieldError","FieldDescription"],"mappings":"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","x_google_ignoreList":[0]}
@@ -170,9 +170,12 @@ function useTreeSelectState(props) {
170
170
 
171
171
  const DROPDOWN_HEIGHT = 256;
172
172
  const SIZE_CONFIG = {
173
- small: { trigger: "min-h-7 px-2 py-0.5", text: "text-xs" },
174
- medium: { trigger: "min-h-8 px-2.5 py-1", text: "text-sm" },
175
- large: { trigger: "min-h-10 px-2.5 py-1.5", text: "text-sm" }
173
+ small: {
174
+ trigger: "min-h-8 md:min-h-7 px-2 py-0.5",
175
+ text: "text-base md:text-xs"
176
+ },
177
+ medium: { trigger: "min-h-8 px-2.5 py-1", text: "text-base md:text-sm" },
178
+ large: { trigger: "min-h-10 px-2.5 py-1.5", text: "text-base md:text-sm" }
176
179
  };
177
180
 
178
181
  const TreeSelectTrigger = React.forwardRef(
@@ -334,4 +337,4 @@ const TreeSelect = React.forwardRef(
334
337
  TreeSelect.displayName = "TreeSelect";
335
338
 
336
339
  exports.TreeSelect = TreeSelect;
337
- //# sourceMappingURL=TreeSelect-Cmm5yYq3.js.map
340
+ //# sourceMappingURL=TreeSelect-qLtRIP-s.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TreeSelect-Cmm5yYq3.js","sources":["../../src/components/TreeSelect/utils/pruneTree.ts","../../src/components/TreeSelect/utils/resolveFieldNames.ts","../../src/components/TreeSelect/hooks/useTreeSelectValue.ts","../../src/components/TreeSelect/hooks/useTreeSelectState.ts","../../src/components/TreeSelect/constants.ts","../../src/components/TreeSelect/TreeSelectTrigger.tsx","../../src/components/TreeSelect/TreeSelect.tsx"],"sourcesContent":["import type { TreeNodeData } from \"../../Tree/types\";\n\nexport const pruneTree = (\n nodes: TreeNodeData[],\n searchTerm: string\n): TreeNodeData[] => {\n if (!searchTerm.trim()) return nodes;\n\n const lower = searchTerm.toLowerCase();\n\n const prune = (items: TreeNodeData[]): TreeNodeData[] =>\n items.reduce<TreeNodeData[]>((acc, node) => {\n const titleStr = typeof node.title === \"string\" ? node.title : \"\";\n const nodeMatches = titleStr.toLowerCase().includes(lower);\n\n if (nodeMatches) {\n acc.push(node);\n } else {\n const prunedChildren = node.children ? prune(node.children) : [];\n if (prunedChildren.length > 0) {\n acc.push({ ...node, children: prunedChildren });\n }\n }\n\n return acc;\n }, []);\n\n return prune(nodes);\n};\n","import type { ReactNode } from \"react\";\nimport type { TreeNodeData } from \"../../Tree/types\";\n\ninterface FieldNameMapping {\n label?: string;\n value?: string;\n}\n\nexport const resolveFieldNames = (\n nodes: TreeNodeData[],\n fieldNames: FieldNameMapping\n): TreeNodeData[] => {\n const labelKey = fieldNames.label ?? \"title\";\n const valueKey = fieldNames.value ?? \"key\";\n\n const remap = (items: TreeNodeData[]): TreeNodeData[] =>\n items.map(item => {\n const record = item as unknown as Record<string, unknown>;\n\n return {\n key: String(record[valueKey] ?? \"\"),\n title: record[labelKey] as ReactNode,\n disabled: record.disabled as boolean | undefined,\n children: Array.isArray(item.children)\n ? remap(item.children)\n : undefined,\n };\n });\n\n return remap(nodes);\n};\n","import { useCallback, useId, useMemo, useState } from \"react\";\nimport { findNode } from \"../../Tree/utils/adapter\";\nimport type { TreeSelectProps } from \"../types\";\nimport { resolveFieldNames } from \"../utils/resolveFieldNames\";\n\nexport function useTreeSelectValue(props: TreeSelectProps) {\n const {\n value: valueProp,\n defaultValue,\n onChange,\n treeData: rawTreeData,\n fieldNames,\n isClearable = false,\n isDisabled = false,\n size = \"medium\",\n label = \"\",\n error = \"\",\n helpText = \"\",\n required = false,\n } = props;\n\n const id = useId();\n const errorId = `error_${id}`;\n const helpTextId = `helpText_${id}`;\n\n const treeData = useMemo(() => {\n if (!fieldNames) return rawTreeData;\n\n return resolveFieldNames(rawTreeData, fieldNames);\n }, [rawTreeData, fieldNames?.label, fieldNames?.value]);\n\n const isControlled = valueProp !== undefined;\n const [internalValue, setInternalValue] = useState(defaultValue ?? \"\");\n const currentValue = isControlled ? (valueProp ?? \"\") : internalValue;\n\n const applyValue = useCallback(\n (next: string) => {\n if (!isControlled) setInternalValue(next);\n onChange?.(next);\n },\n [isControlled, onChange]\n );\n\n const selectedLabel = useMemo(() => {\n if (!currentValue) return \"\";\n const node = findNode(currentValue, treeData);\n if (!node) return currentValue;\n\n return typeof node.title === \"string\" ? node.title : \"\";\n }, [currentValue, treeData]);\n\n const handleClear = useCallback(\n (e: React.MouseEvent) => {\n e.stopPropagation();\n applyValue(\"\");\n },\n [applyValue]\n );\n\n const showClearButton = isClearable && !!currentValue && !isDisabled;\n\n return {\n id,\n errorId,\n helpTextId,\n label,\n error,\n helpText,\n required,\n isDisabled,\n size,\n treeData,\n currentValue,\n selectedLabel,\n applyValue,\n handleClear,\n showClearButton,\n };\n}\n","import { useCallback, useMemo, useRef, useState } from \"react\";\nimport type { TreeNodeData } from \"../../Tree/types\";\nimport { walkTree } from \"../../Tree/utils/adapter\";\nimport type { TreeSelectProps } from \"../types\";\nimport { pruneTree } from \"../utils/pruneTree\";\nimport { useTreeSelectValue } from \"./useTreeSelectValue\";\n\nexport function useTreeSelectState(props: TreeSelectProps) {\n const { isSearchable = false, defaultExpandedKeys } = props;\n const defaultExpandedKeysRef = useRef(defaultExpandedKeys);\n defaultExpandedKeysRef.current = defaultExpandedKeys;\n const value = useTreeSelectValue(props);\n\n const [isOpen, setIsOpen] = useState(false);\n const [searchTerm, setSearchTerm] = useState(\"\");\n const [expandedKeys, setExpandedKeys] = useState<string[]>(\n defaultExpandedKeys ?? []\n );\n\n const prunedTreeData = useMemo(\n () =>\n searchTerm.trim()\n ? pruneTree(value.treeData, searchTerm)\n : value.treeData,\n [value.treeData, searchTerm]\n );\n\n const effectiveExpandedKeys = useMemo(() => {\n if (!searchTerm) return expandedKeys;\n\n const allKeys: string[] = [];\n walkTree(prunedTreeData, node => {\n if (node.children?.length) allKeys.push(node.key);\n });\n\n return allKeys;\n }, [searchTerm, prunedTreeData]);\n\n const handleSelect = useCallback(\n (keys: string[], info: { node: TreeNodeData }) => {\n if (value.isDisabled || info.node.disabled) return;\n value.applyValue(keys[0] ?? \"\");\n setIsOpen(false);\n setSearchTerm(\"\");\n },\n [value.applyValue, value.isDisabled]\n );\n\n const handleOpenChange = useCallback(\n (open: boolean) => {\n if (value.isDisabled) return;\n setIsOpen(open);\n if (!open) {\n setSearchTerm(\"\");\n setExpandedKeys(defaultExpandedKeysRef.current ?? []);\n }\n },\n [value.isDisabled]\n );\n\n const handleExpand = useCallback(\n (keys: string[]) => setExpandedKeys(keys),\n []\n );\n\n return {\n ...value,\n isSearchable,\n isOpen,\n handleOpenChange,\n searchTerm,\n setSearchTerm,\n prunedTreeData,\n effectiveExpandedKeys,\n handleSelect,\n handleExpand,\n };\n}\n","export const DROPDOWN_HEIGHT = 256;\n\nexport const SIZE_CONFIG: Record<\n \"small\" | \"medium\" | \"large\",\n { trigger: string; text: string }\n> = {\n small: { trigger: \"min-h-7 px-2 py-0.5\", text: \"text-xs\" },\n medium: { trigger: \"min-h-8 px-2.5 py-1\", text: \"text-sm\" },\n large: { trigger: \"min-h-10 px-2.5 py-1.5\", text: \"text-sm\" },\n};\n","import { forwardRef, type ReactNode } from \"react\";\nimport { ChevronDown, X } from \"lucide-react\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { SIZE_CONFIG } from \"./constants\";\n\ninterface TreeSelectTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n size: \"small\" | \"medium\" | \"large\";\n currentValue: string;\n selectedLabel: string;\n placeholder?: string;\n isDisabled: boolean;\n error: string;\n showClearButton: boolean;\n handleClear: (e: React.MouseEvent) => void;\n suffixIcon?: ReactNode;\n}\n\nexport const TreeSelectTrigger = forwardRef<\n HTMLButtonElement,\n TreeSelectTriggerProps\n>(\n (\n {\n size,\n currentValue,\n selectedLabel,\n placeholder,\n isDisabled,\n error,\n showClearButton,\n handleClear,\n suffixIcon,\n className,\n ...rest\n },\n ref\n ) => (\n <button\n ref={ref}\n type=\"button\"\n disabled={isDisabled}\n {...rest}\n className={cn(\n \"inline-flex w-full items-center gap-1 rounded-md border border-input bg-background outline-none\",\n \"hover:bg-accent focus:ring-1 focus:ring-ring\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n error && \"border-destructive\",\n SIZE_CONFIG[size].trigger,\n SIZE_CONFIG[size].text,\n className\n )}\n >\n <span\n className={cn(\n \"flex-1 truncate text-left\",\n !currentValue && \"text-muted-foreground\"\n )}\n >\n {selectedLabel || placeholder || \"\"}\n </span>\n {showClearButton && (\n <span\n role=\"button\"\n tabIndex={-1}\n aria-label=\"Clear selection\"\n className=\"shrink-0 text-muted-foreground hover:text-foreground\"\n onClick={handleClear}\n >\n <X className=\"size-3.5\" />\n </span>\n )}\n {suffixIcon ?? <ChevronDown className=\"size-4 shrink-0 opacity-50\" />}\n </button>\n )\n);\n\nTreeSelectTrigger.displayName = \"TreeSelectTrigger\";\n","import { forwardRef } from \"react\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"src/primitives/Popover\";\nimport { SelectFieldWrapper } from \"../Select/SelectFieldWrapper\";\nimport { Tree } from \"../Tree\";\nimport { useTreeSelectState } from \"./hooks/useTreeSelectState\";\nimport { TreeSelectTrigger } from \"./TreeSelectTrigger\";\nimport { SIZE_CONFIG, DROPDOWN_HEIGHT } from \"./constants\";\nimport type { TreeSelectProps } from \"./types\";\n\nconst TreeSelect = forwardRef<HTMLButtonElement, TreeSelectProps>(\n (props, ref) => {\n const {\n id,\n label,\n error,\n helpText,\n errorId,\n helpTextId,\n isDisabled,\n required,\n isOpen,\n handleOpenChange,\n currentValue,\n handleClear,\n selectedLabel,\n showClearButton,\n size,\n isSearchable,\n searchTerm,\n setSearchTerm,\n prunedTreeData,\n effectiveExpandedKeys,\n handleSelect,\n handleExpand,\n } = useTreeSelectState(props);\n const { suffixIcon, switcherIcon, autoExpandParent, className } = props;\n\n return (\n <SelectFieldWrapper\n id={id}\n label={label}\n error={error}\n helpText={helpText}\n errorId={errorId}\n helpTextId={helpTextId}\n isDisabled={isDisabled}\n required={required}\n className={className}\n >\n <Popover open={isOpen} onOpenChange={handleOpenChange}>\n <PopoverTrigger asChild>\n <TreeSelectTrigger\n ref={ref}\n currentValue={currentValue}\n error={error}\n handleClear={handleClear}\n isDisabled={isDisabled}\n placeholder={props.placeholder}\n selectedLabel={selectedLabel}\n showClearButton={showClearButton}\n size={size}\n suffixIcon={suffixIcon}\n />\n </PopoverTrigger>\n <PopoverContent\n align=\"start\"\n className=\"w-[var(--radix-popover-trigger-width)] p-0\"\n onOpenAutoFocus={e => {\n if (isSearchable) e.preventDefault();\n }}\n >\n {isSearchable && (\n <div className=\"border-b border-border px-2 py-1.5\">\n <input\n autoFocus\n type=\"text\"\n className={cn(\n \"w-full bg-transparent outline-none placeholder:text-muted-foreground\",\n SIZE_CONFIG[size].text\n )}\n placeholder=\"Search...\"\n value={searchTerm}\n onChange={e => setSearchTerm(e.target.value)}\n />\n </div>\n )}\n {prunedTreeData.length > 0 ? (\n <div className=\"p-1\">\n <Tree\n autoExpandParent={autoExpandParent}\n expandedKeys={effectiveExpandedKeys}\n height={DROPDOWN_HEIGHT}\n switcherIcon={switcherIcon}\n treeData={prunedTreeData}\n onExpand={handleExpand}\n onSelect={handleSelect}\n />\n </div>\n ) : (\n <div className=\"py-6 text-center text-sm text-muted-foreground\">\n No results found.\n </div>\n )}\n </PopoverContent>\n </Popover>\n </SelectFieldWrapper>\n );\n }\n);\n\nTreeSelect.displayName = \"TreeSelect\";\n\nexport { TreeSelect };\n"],"names":["useId","useMemo","useState","useCallback","findNode","useRef","walkTree","forwardRef","jsxs","cn","jsx","X","ChevronDown","SelectFieldWrapper","Popover","PopoverTrigger","PopoverContent","Tree"],"mappings":"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"}
1
+ {"version":3,"file":"TreeSelect-qLtRIP-s.js","sources":["../../src/components/TreeSelect/utils/pruneTree.ts","../../src/components/TreeSelect/utils/resolveFieldNames.ts","../../src/components/TreeSelect/hooks/useTreeSelectValue.ts","../../src/components/TreeSelect/hooks/useTreeSelectState.ts","../../src/components/TreeSelect/constants.ts","../../src/components/TreeSelect/TreeSelectTrigger.tsx","../../src/components/TreeSelect/TreeSelect.tsx"],"sourcesContent":["import type { TreeNodeData } from \"../../Tree/types\";\n\nexport const pruneTree = (\n nodes: TreeNodeData[],\n searchTerm: string\n): TreeNodeData[] => {\n if (!searchTerm.trim()) return nodes;\n\n const lower = searchTerm.toLowerCase();\n\n const prune = (items: TreeNodeData[]): TreeNodeData[] =>\n items.reduce<TreeNodeData[]>((acc, node) => {\n const titleStr = typeof node.title === \"string\" ? node.title : \"\";\n const nodeMatches = titleStr.toLowerCase().includes(lower);\n\n if (nodeMatches) {\n acc.push(node);\n } else {\n const prunedChildren = node.children ? prune(node.children) : [];\n if (prunedChildren.length > 0) {\n acc.push({ ...node, children: prunedChildren });\n }\n }\n\n return acc;\n }, []);\n\n return prune(nodes);\n};\n","import type { ReactNode } from \"react\";\nimport type { TreeNodeData } from \"../../Tree/types\";\n\ninterface FieldNameMapping {\n label?: string;\n value?: string;\n}\n\nexport const resolveFieldNames = (\n nodes: TreeNodeData[],\n fieldNames: FieldNameMapping\n): TreeNodeData[] => {\n const labelKey = fieldNames.label ?? \"title\";\n const valueKey = fieldNames.value ?? \"key\";\n\n const remap = (items: TreeNodeData[]): TreeNodeData[] =>\n items.map(item => {\n const record = item as unknown as Record<string, unknown>;\n\n return {\n key: String(record[valueKey] ?? \"\"),\n title: record[labelKey] as ReactNode,\n disabled: record.disabled as boolean | undefined,\n children: Array.isArray(item.children)\n ? remap(item.children)\n : undefined,\n };\n });\n\n return remap(nodes);\n};\n","import { useCallback, useId, useMemo, useState } from \"react\";\nimport { findNode } from \"../../Tree/utils/adapter\";\nimport type { TreeSelectProps } from \"../types\";\nimport { resolveFieldNames } from \"../utils/resolveFieldNames\";\n\nexport function useTreeSelectValue(props: TreeSelectProps) {\n const {\n value: valueProp,\n defaultValue,\n onChange,\n treeData: rawTreeData,\n fieldNames,\n isClearable = false,\n isDisabled = false,\n size = \"medium\",\n label = \"\",\n error = \"\",\n helpText = \"\",\n required = false,\n } = props;\n\n const id = useId();\n const errorId = `error_${id}`;\n const helpTextId = `helpText_${id}`;\n\n const treeData = useMemo(() => {\n if (!fieldNames) return rawTreeData;\n\n return resolveFieldNames(rawTreeData, fieldNames);\n }, [rawTreeData, fieldNames?.label, fieldNames?.value]);\n\n const isControlled = valueProp !== undefined;\n const [internalValue, setInternalValue] = useState(defaultValue ?? \"\");\n const currentValue = isControlled ? (valueProp ?? \"\") : internalValue;\n\n const applyValue = useCallback(\n (next: string) => {\n if (!isControlled) setInternalValue(next);\n onChange?.(next);\n },\n [isControlled, onChange]\n );\n\n const selectedLabel = useMemo(() => {\n if (!currentValue) return \"\";\n const node = findNode(currentValue, treeData);\n if (!node) return currentValue;\n\n return typeof node.title === \"string\" ? node.title : \"\";\n }, [currentValue, treeData]);\n\n const handleClear = useCallback(\n (e: React.MouseEvent) => {\n e.stopPropagation();\n applyValue(\"\");\n },\n [applyValue]\n );\n\n const showClearButton = isClearable && !!currentValue && !isDisabled;\n\n return {\n id,\n errorId,\n helpTextId,\n label,\n error,\n helpText,\n required,\n isDisabled,\n size,\n treeData,\n currentValue,\n selectedLabel,\n applyValue,\n handleClear,\n showClearButton,\n };\n}\n","import { useCallback, useMemo, useRef, useState } from \"react\";\nimport type { TreeNodeData } from \"../../Tree/types\";\nimport { walkTree } from \"../../Tree/utils/adapter\";\nimport type { TreeSelectProps } from \"../types\";\nimport { pruneTree } from \"../utils/pruneTree\";\nimport { useTreeSelectValue } from \"./useTreeSelectValue\";\n\nexport function useTreeSelectState(props: TreeSelectProps) {\n const { isSearchable = false, defaultExpandedKeys } = props;\n const defaultExpandedKeysRef = useRef(defaultExpandedKeys);\n defaultExpandedKeysRef.current = defaultExpandedKeys;\n const value = useTreeSelectValue(props);\n\n const [isOpen, setIsOpen] = useState(false);\n const [searchTerm, setSearchTerm] = useState(\"\");\n const [expandedKeys, setExpandedKeys] = useState<string[]>(\n defaultExpandedKeys ?? []\n );\n\n const prunedTreeData = useMemo(\n () =>\n searchTerm.trim()\n ? pruneTree(value.treeData, searchTerm)\n : value.treeData,\n [value.treeData, searchTerm]\n );\n\n const effectiveExpandedKeys = useMemo(() => {\n if (!searchTerm) return expandedKeys;\n\n const allKeys: string[] = [];\n walkTree(prunedTreeData, node => {\n if (node.children?.length) allKeys.push(node.key);\n });\n\n return allKeys;\n }, [searchTerm, prunedTreeData]);\n\n const handleSelect = useCallback(\n (keys: string[], info: { node: TreeNodeData }) => {\n if (value.isDisabled || info.node.disabled) return;\n value.applyValue(keys[0] ?? \"\");\n setIsOpen(false);\n setSearchTerm(\"\");\n },\n [value.applyValue, value.isDisabled]\n );\n\n const handleOpenChange = useCallback(\n (open: boolean) => {\n if (value.isDisabled) return;\n setIsOpen(open);\n if (!open) {\n setSearchTerm(\"\");\n setExpandedKeys(defaultExpandedKeysRef.current ?? []);\n }\n },\n [value.isDisabled]\n );\n\n const handleExpand = useCallback(\n (keys: string[]) => setExpandedKeys(keys),\n []\n );\n\n return {\n ...value,\n isSearchable,\n isOpen,\n handleOpenChange,\n searchTerm,\n setSearchTerm,\n prunedTreeData,\n effectiveExpandedKeys,\n handleSelect,\n handleExpand,\n };\n}\n","export const DROPDOWN_HEIGHT = 256;\n\nexport const SIZE_CONFIG: Record<\n \"small\" | \"medium\" | \"large\",\n { trigger: string; text: string }\n> = {\n small: {\n trigger: \"min-h-8 md:min-h-7 px-2 py-0.5\",\n text: \"text-base md:text-xs\",\n },\n medium: { trigger: \"min-h-8 px-2.5 py-1\", text: \"text-base md:text-sm\" },\n large: { trigger: \"min-h-10 px-2.5 py-1.5\", text: \"text-base md:text-sm\" },\n};\n","import { forwardRef, type ReactNode } from \"react\";\nimport { ChevronDown, X } from \"lucide-react\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { SIZE_CONFIG } from \"./constants\";\n\ninterface TreeSelectTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n size: \"small\" | \"medium\" | \"large\";\n currentValue: string;\n selectedLabel: string;\n placeholder?: string;\n isDisabled: boolean;\n error: string;\n showClearButton: boolean;\n handleClear: (e: React.MouseEvent) => void;\n suffixIcon?: ReactNode;\n}\n\nexport const TreeSelectTrigger = forwardRef<\n HTMLButtonElement,\n TreeSelectTriggerProps\n>(\n (\n {\n size,\n currentValue,\n selectedLabel,\n placeholder,\n isDisabled,\n error,\n showClearButton,\n handleClear,\n suffixIcon,\n className,\n ...rest\n },\n ref\n ) => (\n <button\n ref={ref}\n type=\"button\"\n disabled={isDisabled}\n {...rest}\n className={cn(\n \"inline-flex w-full items-center gap-1 rounded-md border border-input bg-background outline-none\",\n \"hover:bg-accent focus:ring-1 focus:ring-ring\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n error && \"border-destructive\",\n SIZE_CONFIG[size].trigger,\n SIZE_CONFIG[size].text,\n className\n )}\n >\n <span\n className={cn(\n \"flex-1 truncate text-left\",\n !currentValue && \"text-muted-foreground\"\n )}\n >\n {selectedLabel || placeholder || \"\"}\n </span>\n {showClearButton && (\n <span\n role=\"button\"\n tabIndex={-1}\n aria-label=\"Clear selection\"\n className=\"shrink-0 text-muted-foreground hover:text-foreground\"\n onClick={handleClear}\n >\n <X className=\"size-3.5\" />\n </span>\n )}\n {suffixIcon ?? <ChevronDown className=\"size-4 shrink-0 opacity-50\" />}\n </button>\n )\n);\n\nTreeSelectTrigger.displayName = \"TreeSelectTrigger\";\n","import { forwardRef } from \"react\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"src/primitives/Popover\";\nimport { SelectFieldWrapper } from \"../Select/SelectFieldWrapper\";\nimport { Tree } from \"../Tree\";\nimport { useTreeSelectState } from \"./hooks/useTreeSelectState\";\nimport { TreeSelectTrigger } from \"./TreeSelectTrigger\";\nimport { SIZE_CONFIG, DROPDOWN_HEIGHT } from \"./constants\";\nimport type { TreeSelectProps } from \"./types\";\n\nconst TreeSelect = forwardRef<HTMLButtonElement, TreeSelectProps>(\n (props, ref) => {\n const {\n id,\n label,\n error,\n helpText,\n errorId,\n helpTextId,\n isDisabled,\n required,\n isOpen,\n handleOpenChange,\n currentValue,\n handleClear,\n selectedLabel,\n showClearButton,\n size,\n isSearchable,\n searchTerm,\n setSearchTerm,\n prunedTreeData,\n effectiveExpandedKeys,\n handleSelect,\n handleExpand,\n } = useTreeSelectState(props);\n const { suffixIcon, switcherIcon, autoExpandParent, className } = props;\n\n return (\n <SelectFieldWrapper\n id={id}\n label={label}\n error={error}\n helpText={helpText}\n errorId={errorId}\n helpTextId={helpTextId}\n isDisabled={isDisabled}\n required={required}\n className={className}\n >\n <Popover open={isOpen} onOpenChange={handleOpenChange}>\n <PopoverTrigger asChild>\n <TreeSelectTrigger\n ref={ref}\n currentValue={currentValue}\n error={error}\n handleClear={handleClear}\n isDisabled={isDisabled}\n placeholder={props.placeholder}\n selectedLabel={selectedLabel}\n showClearButton={showClearButton}\n size={size}\n suffixIcon={suffixIcon}\n />\n </PopoverTrigger>\n <PopoverContent\n align=\"start\"\n className=\"w-[var(--radix-popover-trigger-width)] p-0\"\n onOpenAutoFocus={e => {\n if (isSearchable) e.preventDefault();\n }}\n >\n {isSearchable && (\n <div className=\"border-b border-border px-2 py-1.5\">\n <input\n autoFocus\n type=\"text\"\n className={cn(\n \"w-full bg-transparent outline-none placeholder:text-muted-foreground\",\n SIZE_CONFIG[size].text\n )}\n placeholder=\"Search...\"\n value={searchTerm}\n onChange={e => setSearchTerm(e.target.value)}\n />\n </div>\n )}\n {prunedTreeData.length > 0 ? (\n <div className=\"p-1\">\n <Tree\n autoExpandParent={autoExpandParent}\n expandedKeys={effectiveExpandedKeys}\n height={DROPDOWN_HEIGHT}\n switcherIcon={switcherIcon}\n treeData={prunedTreeData}\n onExpand={handleExpand}\n onSelect={handleSelect}\n />\n </div>\n ) : (\n <div className=\"py-6 text-center text-sm text-muted-foreground\">\n No results found.\n </div>\n )}\n </PopoverContent>\n </Popover>\n </SelectFieldWrapper>\n );\n }\n);\n\nTreeSelect.displayName = \"TreeSelect\";\n\nexport { TreeSelect };\n"],"names":["useId","useMemo","useState","useCallback","findNode","useRef","walkTree","forwardRef","jsxs","cn","jsx","X","ChevronDown","SelectFieldWrapper","Popover","PopoverTrigger","PopoverContent","Tree"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var ColorPicker = require('../ColorPicker-Co1Gffsu.js');
3
+ var ColorPicker = require('../ColorPicker-rhCnblTv.js');
4
4
  require('react/jsx-runtime');
5
5
  require('react');
6
6
  require('react-i18next');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var DatePicker = require('../DatePicker-CqnlwzLe.js');
3
+ var DatePicker = require('../DatePicker-JhQ7D2bu.js');
4
4
  require('react/jsx-runtime');
5
5
  require('react');
6
6
  require('../primitives/Calendar.js');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var Input = require('../Input-CpuJXazH.js');
3
+ var Input = require('../Input-Lc77SV8e.js');
4
4
  require('react/jsx-runtime');
5
5
  require('react');
6
6
  require('../utils-BhM0B89p.js');
@@ -17,6 +17,7 @@ require('../button-CMl9rLXi.js');
17
17
  require('../index-DuNgWCXZ.js');
18
18
  require('../input-BlyvDsZ5.js');
19
19
  require('../textarea-Br-J3v7z.js');
20
+ require('../withIconSize-BKUwVY6t.js');
20
21
 
21
22
 
22
23
 
@@ -1 +1 @@
1
- {"version":3,"file":"Input.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Input.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var MultiEmailInput = require('../MultiEmailInput-CPXODFvs.js');
3
+ var MultiEmailInput = require('../MultiEmailInput-BZtzoX7D.js');
4
4
  require('react/jsx-runtime');
5
5
  require('react');
6
6
  require('../utils-BhM0B89p.js');
@@ -11,6 +11,7 @@ require('../index-DMbj7vXd.js');
11
11
  require('react-dom');
12
12
  require('../index-D-iDn9RI.js');
13
13
  require('../separator-DSL-aG1J.js');
14
+ require('../withIconSize-BKUwVY6t.js');
14
15
  require('../x-Brw3FJst.js');
15
16
  require('../createLucideIcon-D0tRgV6l.js');
16
17
 
@@ -1 +1 @@
1
- {"version":3,"file":"MultiEmailInput.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"MultiEmailInput.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var Select = require('../Select-DbfPhEu0.js');
3
+ var Select = require('../Select-DC23xcMU.js');
4
4
  require('react/jsx-runtime');
5
5
  require('react');
6
6
  require('../SelectFieldWrapper-DKkizQNM.js');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var TimePicker = require('../TimePicker-BGWNGfVR.js');
3
+ var TimePicker = require('../TimePicker-CU7qJpoT.js');
4
4
  var TimePickerPanel = require('../TimePickerPanel-B5h5khbs.js');
5
5
  require('react/jsx-runtime');
6
6
  require('react');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var TreeSelect = require('../TreeSelect-Cmm5yYq3.js');
3
+ var TreeSelect = require('../TreeSelect-qLtRIP-s.js');
4
4
  require('react/jsx-runtime');
5
5
  require('react');
6
6
  require('../utils-BhM0B89p.js');
@@ -8,20 +8,20 @@ var Badge = require('../Badge-Dz_Kb49L.js');
8
8
  var Button = require('../Button-BlNtYr1w.js');
9
9
  var Callout = require('../Callout-_XBx1JHL.js');
10
10
  var Checkbox = require('../Checkbox-CxqWOvFN.js');
11
- var ColorPicker = require('../ColorPicker-Co1Gffsu.js');
11
+ var ColorPicker = require('../ColorPicker-rhCnblTv.js');
12
12
  var DataTable = require('../DataTable-D4suNizi.js');
13
- var DatePicker = require('../DatePicker-CqnlwzLe.js');
13
+ var DatePicker = require('../DatePicker-JhQ7D2bu.js');
14
14
  var Dialog = require('../Dialog-CBSuKeu_.js');
15
15
  var Empty = require('../Empty-DqmmPlPJ.js');
16
- var Input = require('../Input-CpuJXazH.js');
16
+ var Input = require('../Input-Lc77SV8e.js');
17
17
  var Kbd = require('../Kbd-D2nELu5m.js');
18
18
  var Label = require('../Label-DFkiC2Jk.js');
19
- var MultiEmailInput = require('../MultiEmailInput-CPXODFvs.js');
19
+ var MultiEmailInput = require('../MultiEmailInput-BZtzoX7D.js');
20
20
  var Pagination = require('../Pagination-DeWfLAq5.js');
21
21
  var Popover = require('../Popover-Br9hkU5i.js');
22
22
  var Progress = require('../Progress-yBpMAzIU.js');
23
23
  var RadioGroup = require('../RadioGroup-CkKlLHnR.js');
24
- var Select = require('../Select-DbfPhEu0.js');
24
+ var Select = require('../Select-DC23xcMU.js');
25
25
  var Sheet = require('../Sheet-mJ7pJHrn.js');
26
26
  var Slider = require('../Slider-ICf2eQ6p.js');
27
27
  var Spinner = require('../Spinner-DzNBz8al.js');
@@ -29,13 +29,13 @@ var Stepper = require('../Stepper-DZb25oBH.js');
29
29
  var Switch = require('../Switch-BTkncHw2.js');
30
30
  var Tabs = require('../Tabs-YPRmLtUM.js');
31
31
  var Textarea = require('../Textarea-yWv-66yX.js');
32
- var TimePicker = require('../TimePicker-BGWNGfVR.js');
32
+ var TimePicker = require('../TimePicker-CU7qJpoT.js');
33
33
  var TimePickerPanel = require('../TimePickerPanel-B5h5khbs.js');
34
34
  var Toastr = require('../Toastr-DYWd66L7.js');
35
35
  var Tooltip = require('../Tooltip-Dph_R3Ct.js');
36
36
  var TranslationProvider = require('../TranslationProvider-Dh5_Fzzk.js');
37
37
  var Tree = require('../Tree-DAyVPLnJ.js');
38
- var TreeSelect = require('../TreeSelect-Cmm5yYq3.js');
38
+ var TreeSelect = require('../TreeSelect-qLtRIP-s.js');
39
39
  var Typography = require('../Typography-UyaYuppP.js');
40
40
  var search = require('../search-DVHH0ihN.js');
41
41
  require('react/jsx-runtime');
@@ -112,6 +112,7 @@ require('../primitives/InputGroup.js');
112
112
  require('../input-group-8TZFHzVl.js');
113
113
  require('../input-BlyvDsZ5.js');
114
114
  require('../textarea-Br-J3v7z.js');
115
+ require('../withIconSize-BKUwVY6t.js');
115
116
  require('../primitives/Kbd.js');
116
117
  require('../primitives/Label.js');
117
118
  require('../primitives/HoverCard.js');
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -4,7 +4,7 @@ var jsxRuntime = require('react/jsx-runtime');
4
4
  var React = require('react');
5
5
  var formik = require('formik');
6
6
  var ramda = require('ramda');
7
- var Input = require('../Input-CpuJXazH.js');
7
+ var Input = require('../Input-Lc77SV8e.js');
8
8
  require('../utils-BhM0B89p.js');
9
9
  require('../primitives/Field.js');
10
10
  require('../index-vioSzJOw.js');
@@ -19,6 +19,7 @@ require('../button-CMl9rLXi.js');
19
19
  require('../index-DuNgWCXZ.js');
20
20
  require('../input-BlyvDsZ5.js');
21
21
  require('../textarea-Br-J3v7z.js');
22
+ require('../withIconSize-BKUwVY6t.js');
22
23
 
23
24
  const FormikInput = React.forwardRef(
24
25
  ({ name, onChange: onChangeProp, ...rest }, ref) => /* @__PURE__ */ jsxRuntime.jsx(formik.Field, { name, children: ({ field, meta, form }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"Input.js","sources":["../../../src/formik/Input.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\n\nimport { Field, getIn, FieldProps } from \"formik\";\nimport { dissoc } from \"ramda\";\n\nimport { Input, InputProps } from \"src/components/Input\";\n\nexport interface FormikInputProps extends Omit<InputProps, \"name\"> {\n /** Formik field name. */\n name: string;\n}\n\nconst FormikInput = forwardRef<HTMLInputElement, FormikInputProps>(\n ({ name, onChange: onChangeProp, ...rest }, ref) => (\n <Field name={name}>\n {({ field, meta, form }: FieldProps) => {\n const { status = {}, setStatus } = form;\n const fieldStatus = getIn(status, name);\n\n const fieldProps = {\n ...field,\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => {\n setStatus(dissoc(name, status));\n field.onChange(e);\n onChangeProp?.(e);\n },\n };\n\n return (\n <Input\n ref={ref}\n {...fieldProps}\n error={meta.touched ? meta.error || fieldStatus : \"\"}\n {...rest}\n />\n );\n }}\n </Field>\n )\n);\n\nFormikInput.displayName = \"FormikInput\";\n\nexport { FormikInput };\n"],"names":["forwardRef","jsx","Field","getIn","dissoc","Input"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAYA,MAAM,WAAA,GAAcA,gBAAA;AAAA,EAClB,CAAC,EAAE,IAAA,EAAM,QAAA,EAAU,YAAA,EAAc,GAAG,IAAA,EAAK,EAAG,GAAA,qBAC1CC,cAAA,CAACC,gBAAM,IAAA,EACJ,QAAA,EAAA,CAAC,EAAE,KAAA,EAAO,IAAA,EAAM,MAAK,KAAkB;AACtC,IAAA,MAAM,EAAE,MAAA,GAAS,EAAC,EAAG,WAAU,GAAI,IAAA;AACnC,IAAA,MAAM,WAAA,GAAcC,YAAA,CAAM,MAAA,EAAQ,IAAI,CAAA;AAEtC,IAAA,MAAM,UAAA,GAAa;AAAA,MACjB,GAAG,KAAA;AAAA,MACH,QAAA,EAAU,CAAC,CAAA,KAA2C;AACpD,QAAA,SAAA,CAAUC,YAAA,CAAO,IAAA,EAAM,MAAM,CAAC,CAAA;AAC9B,QAAA,KAAA,CAAM,SAAS,CAAC,CAAA;AAChB,QAAA,YAAA,GAAe,CAAC,CAAA;AAAA,MAClB;AAAA,KACF;AAEA,IAAA,uBACEH,cAAA;AAAA,MAACI,WAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACC,GAAG,UAAA;AAAA,QACJ,KAAA,EAAO,IAAA,CAAK,OAAA,GAAU,IAAA,CAAK,SAAS,WAAA,GAAc,EAAA;AAAA,QACjD,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ,CAAA,EACF;AAEJ;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA;;;;"}
1
+ {"version":3,"file":"Input.js","sources":["../../../src/formik/Input.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\n\nimport { Field, getIn, FieldProps } from \"formik\";\nimport { dissoc } from \"ramda\";\n\nimport { Input, InputProps } from \"src/components/Input\";\n\nexport interface FormikInputProps extends Omit<InputProps, \"name\"> {\n /** Formik field name. */\n name: string;\n}\n\nconst FormikInput = forwardRef<HTMLInputElement, FormikInputProps>(\n ({ name, onChange: onChangeProp, ...rest }, ref) => (\n <Field name={name}>\n {({ field, meta, form }: FieldProps) => {\n const { status = {}, setStatus } = form;\n const fieldStatus = getIn(status, name);\n\n const fieldProps = {\n ...field,\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => {\n setStatus(dissoc(name, status));\n field.onChange(e);\n onChangeProp?.(e);\n },\n };\n\n return (\n <Input\n ref={ref}\n {...fieldProps}\n error={meta.touched ? meta.error || fieldStatus : \"\"}\n {...rest}\n />\n );\n }}\n </Field>\n )\n);\n\nFormikInput.displayName = \"FormikInput\";\n\nexport { FormikInput };\n"],"names":["forwardRef","jsx","Field","getIn","dissoc","Input"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAYA,MAAM,WAAA,GAAcA,gBAAA;AAAA,EAClB,CAAC,EAAE,IAAA,EAAM,QAAA,EAAU,YAAA,EAAc,GAAG,IAAA,EAAK,EAAG,GAAA,qBAC1CC,cAAA,CAACC,gBAAM,IAAA,EACJ,QAAA,EAAA,CAAC,EAAE,KAAA,EAAO,IAAA,EAAM,MAAK,KAAkB;AACtC,IAAA,MAAM,EAAE,MAAA,GAAS,EAAC,EAAG,WAAU,GAAI,IAAA;AACnC,IAAA,MAAM,WAAA,GAAcC,YAAA,CAAM,MAAA,EAAQ,IAAI,CAAA;AAEtC,IAAA,MAAM,UAAA,GAAa;AAAA,MACjB,GAAG,KAAA;AAAA,MACH,QAAA,EAAU,CAAC,CAAA,KAA2C;AACpD,QAAA,SAAA,CAAUC,YAAA,CAAO,IAAA,EAAM,MAAM,CAAC,CAAA;AAC9B,QAAA,KAAA,CAAM,SAAS,CAAC,CAAA;AAChB,QAAA,YAAA,GAAe,CAAC,CAAA;AAAA,MAClB;AAAA,KACF;AAEA,IAAA,uBACEH,cAAA;AAAA,MAACI,WAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACC,GAAG,UAAA;AAAA,QACJ,KAAA,EAAO,IAAA,CAAK,OAAA,GAAU,IAAA,CAAK,SAAS,WAAA,GAAc,EAAA;AAAA,QACjD,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ,CAAA,EACF;AAEJ;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA;;;;"}
@@ -4,7 +4,7 @@ var jsxRuntime = require('react/jsx-runtime');
4
4
  var React = require('react');
5
5
  var formik = require('formik');
6
6
  var ramda = require('ramda');
7
- var MultiEmailInput = require('../MultiEmailInput-CPXODFvs.js');
7
+ var MultiEmailInput = require('../MultiEmailInput-BZtzoX7D.js');
8
8
  require('../utils-BhM0B89p.js');
9
9
  require('../primitives/Field.js');
10
10
  require('../index-vioSzJOw.js');
@@ -13,6 +13,7 @@ require('../index-DMbj7vXd.js');
13
13
  require('react-dom');
14
14
  require('../index-D-iDn9RI.js');
15
15
  require('../separator-DSL-aG1J.js');
16
+ require('../withIconSize-BKUwVY6t.js');
16
17
  require('../x-Brw3FJst.js');
17
18
  require('../createLucideIcon-D0tRgV6l.js');
18
19
 
@@ -1 +1 @@
1
- {"version":3,"file":"MultiEmailInput.js","sources":["../../../src/formik/MultiEmailInput.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\n\nimport { useField, useFormikContext, getIn } from \"formik\";\nimport { dissoc } from \"ramda\";\n\nimport {\n MultiEmailInput,\n MultiEmailInputProps,\n} from \"src/components/MultiEmailInput\";\n\nexport interface FormikMultiEmailInputProps extends MultiEmailInputProps {\n /** Formik field name. */\n name: string;\n}\n\nconst FormikMultiEmailInput = forwardRef<\n HTMLInputElement,\n FormikMultiEmailInputProps\n>(({ name, onChange: onChangeProp, ...otherProps }, ref) => {\n const [field, meta, { setValue, setTouched }] = useField(name);\n const { status = {}, setStatus } = useFormikContext();\n const fieldStatus = getIn(status, name);\n\n return (\n <MultiEmailInput\n ref={ref}\n error={meta.touched ? meta.error || fieldStatus : \"\"}\n value={field.value}\n onBlur={() => setTouched(true)}\n onChange={value => {\n setStatus(dissoc(name, status));\n setValue(value);\n onChangeProp?.(value);\n }}\n {...otherProps}\n />\n );\n});\n\nFormikMultiEmailInput.displayName = \"FormikMultiEmailInput\";\n\nexport { FormikMultiEmailInput };\n"],"names":["forwardRef","useField","useFormikContext","getIn","jsx","MultiEmailInput","dissoc"],"mappings":";;;;;;;;;;;;;;;;;;AAeA,MAAM,qBAAA,GAAwBA,gBAAA,CAG5B,CAAC,EAAE,IAAA,EAAM,UAAU,YAAA,EAAc,GAAG,UAAA,EAAW,EAAG,GAAA,KAAQ;AAC1D,EAAA,MAAM,CAAC,OAAO,IAAA,EAAM,EAAE,UAAU,UAAA,EAAY,CAAA,GAAIC,eAAA,CAAS,IAAI,CAAA;AAC7D,EAAA,MAAM,EAAE,MAAA,GAAS,EAAC,EAAG,SAAA,KAAcC,uBAAA,EAAiB;AACpD,EAAA,MAAM,WAAA,GAAcC,YAAA,CAAM,MAAA,EAAQ,IAAI,CAAA;AAEtC,EAAA,uBACEC,cAAA;AAAA,IAACC,+BAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,KAAA,EAAO,IAAA,CAAK,OAAA,GAAU,IAAA,CAAK,SAAS,WAAA,GAAc,EAAA;AAAA,MAClD,OAAO,KAAA,CAAM,KAAA;AAAA,MACb,MAAA,EAAQ,MAAM,UAAA,CAAW,IAAI,CAAA;AAAA,MAC7B,UAAU,CAAA,KAAA,KAAS;AACjB,QAAA,SAAA,CAAUC,YAAA,CAAO,IAAA,EAAM,MAAM,CAAC,CAAA;AAC9B,QAAA,QAAA,CAAS,KAAK,CAAA;AACd,QAAA,YAAA,GAAe,KAAK,CAAA;AAAA,MACtB,CAAA;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AAED,qBAAA,CAAsB,WAAA,GAAc,uBAAA;;;;"}
1
+ {"version":3,"file":"MultiEmailInput.js","sources":["../../../src/formik/MultiEmailInput.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\n\nimport { useField, useFormikContext, getIn } from \"formik\";\nimport { dissoc } from \"ramda\";\n\nimport {\n MultiEmailInput,\n MultiEmailInputProps,\n} from \"src/components/MultiEmailInput\";\n\nexport interface FormikMultiEmailInputProps extends MultiEmailInputProps {\n /** Formik field name. */\n name: string;\n}\n\nconst FormikMultiEmailInput = forwardRef<\n HTMLInputElement,\n FormikMultiEmailInputProps\n>(({ name, onChange: onChangeProp, ...otherProps }, ref) => {\n const [field, meta, { setValue, setTouched }] = useField(name);\n const { status = {}, setStatus } = useFormikContext();\n const fieldStatus = getIn(status, name);\n\n return (\n <MultiEmailInput\n ref={ref}\n error={meta.touched ? meta.error || fieldStatus : \"\"}\n value={field.value}\n onBlur={() => setTouched(true)}\n onChange={value => {\n setStatus(dissoc(name, status));\n setValue(value);\n onChangeProp?.(value);\n }}\n {...otherProps}\n />\n );\n});\n\nFormikMultiEmailInput.displayName = \"FormikMultiEmailInput\";\n\nexport { FormikMultiEmailInput };\n"],"names":["forwardRef","useField","useFormikContext","getIn","jsx","MultiEmailInput","dissoc"],"mappings":";;;;;;;;;;;;;;;;;;;AAeA,MAAM,qBAAA,GAAwBA,gBAAA,CAG5B,CAAC,EAAE,IAAA,EAAM,UAAU,YAAA,EAAc,GAAG,UAAA,EAAW,EAAG,GAAA,KAAQ;AAC1D,EAAA,MAAM,CAAC,OAAO,IAAA,EAAM,EAAE,UAAU,UAAA,EAAY,CAAA,GAAIC,eAAA,CAAS,IAAI,CAAA;AAC7D,EAAA,MAAM,EAAE,MAAA,GAAS,EAAC,EAAG,SAAA,KAAcC,uBAAA,EAAiB;AACpD,EAAA,MAAM,WAAA,GAAcC,YAAA,CAAM,MAAA,EAAQ,IAAI,CAAA;AAEtC,EAAA,uBACEC,cAAA;AAAA,IAACC,+BAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,KAAA,EAAO,IAAA,CAAK,OAAA,GAAU,IAAA,CAAK,SAAS,WAAA,GAAc,EAAA;AAAA,MAClD,OAAO,KAAA,CAAM,KAAA;AAAA,MACb,MAAA,EAAQ,MAAM,UAAA,CAAW,IAAI,CAAA;AAAA,MAC7B,UAAU,CAAA,KAAA,KAAS;AACjB,QAAA,SAAA,CAAUC,YAAA,CAAO,IAAA,EAAM,MAAM,CAAC,CAAA;AAC9B,QAAA,QAAA,CAAS,KAAK,CAAA;AACd,QAAA,YAAA,GAAe,KAAK,CAAA;AAAA,MACtB,CAAA;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AAED,qBAAA,CAAsB,WAAA,GAAc,uBAAA;;;;"}
@@ -4,7 +4,7 @@ var jsxRuntime = require('react/jsx-runtime');
4
4
  var React = require('react');
5
5
  var formik = require('formik');
6
6
  var ramda = require('ramda');
7
- var Select = require('../Select-DbfPhEu0.js');
7
+ var Select = require('../Select-DC23xcMU.js');
8
8
  require('../SelectFieldWrapper-DKkizQNM.js');
9
9
  require('../primitives/Field.js');
10
10
  require('../index-vioSzJOw.js');
@@ -4,7 +4,7 @@ var jsxRuntime = require('react/jsx-runtime');
4
4
  var React = require('react');
5
5
  var formik = require('formik');
6
6
  var ramda = require('ramda');
7
- var TreeSelect = require('../TreeSelect-Cmm5yYq3.js');
7
+ var TreeSelect = require('../TreeSelect-qLtRIP-s.js');
8
8
  require('../utils-BhM0B89p.js');
9
9
  require('../primitives/Popover.js');
10
10
  require('../index-COPkC3I5.js');
@@ -17,7 +17,7 @@ require('react/jsx-runtime');
17
17
  require('react');
18
18
  require('formik');
19
19
  require('ramda');
20
- require('../Input-CpuJXazH.js');
20
+ require('../Input-Lc77SV8e.js');
21
21
  require('../utils-BhM0B89p.js');
22
22
  require('../primitives/Field.js');
23
23
  require('../index-vioSzJOw.js');
@@ -32,9 +32,10 @@ require('../button-CMl9rLXi.js');
32
32
  require('../index-DuNgWCXZ.js');
33
33
  require('../input-BlyvDsZ5.js');
34
34
  require('../textarea-Br-J3v7z.js');
35
+ require('../withIconSize-BKUwVY6t.js');
35
36
  require('../Textarea-yWv-66yX.js');
36
37
  require('../primitives/Textarea.js');
37
- require('../Select-DbfPhEu0.js');
38
+ require('../Select-DC23xcMU.js');
38
39
  require('../SelectFieldWrapper-DKkizQNM.js');
39
40
  require('../primitives/Combobox.js');
40
41
  require('../check-BQgcDXys.js');
@@ -70,7 +71,7 @@ require('../primitives/Switch.js');
70
71
  require('../Slider-ICf2eQ6p.js');
71
72
  require('../primitives/Slider.js');
72
73
  require('../index-EyWRfsCG.js');
73
- require('../TreeSelect-Cmm5yYq3.js');
74
+ require('../TreeSelect-qLtRIP-s.js');
74
75
  require('../primitives/Popover.js');
75
76
  require('../index-Bvu9MiFi.js');
76
77
  require('../index-CS_WSHYi.js');
@@ -79,7 +80,7 @@ require('../index-Df-Ffa3s.js');
79
80
  require('../Tree-DAyVPLnJ.js');
80
81
  require('../chevron-right-0jNdwX2Q.js');
81
82
  require('../redux-DEF7lAd1.js');
82
- require('../MultiEmailInput-CPXODFvs.js');
83
+ require('../MultiEmailInput-BZtzoX7D.js');
83
84
  require('../Button-BlNtYr1w.js');
84
85
  require('react-router-dom');
85
86
  require('../renderIcon-BRrpZu9a.js');
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/cjs/index.js CHANGED
@@ -12,21 +12,21 @@ var Badge = require('./Badge-Dz_Kb49L.js');
12
12
  var Button = require('./Button-BlNtYr1w.js');
13
13
  var Callout = require('./Callout-_XBx1JHL.js');
14
14
  var Checkbox = require('./Checkbox-CxqWOvFN.js');
15
- var ColorPicker = require('./ColorPicker-Co1Gffsu.js');
15
+ var ColorPicker = require('./ColorPicker-rhCnblTv.js');
16
16
  var DataTable = require('./DataTable-D4suNizi.js');
17
- var DatePicker = require('./DatePicker-CqnlwzLe.js');
17
+ var DatePicker = require('./DatePicker-JhQ7D2bu.js');
18
18
  var Dialog = require('./Dialog-CBSuKeu_.js');
19
19
  var DirectionProvider = require('./DirectionProvider-BTtE4FcN.js');
20
20
  var Empty = require('./Empty-DqmmPlPJ.js');
21
- var Input = require('./Input-CpuJXazH.js');
21
+ var Input = require('./Input-Lc77SV8e.js');
22
22
  var Kbd = require('./Kbd-D2nELu5m.js');
23
23
  var Label = require('./Label-DFkiC2Jk.js');
24
- var MultiEmailInput = require('./MultiEmailInput-CPXODFvs.js');
24
+ var MultiEmailInput = require('./MultiEmailInput-BZtzoX7D.js');
25
25
  var Pagination = require('./Pagination-DeWfLAq5.js');
26
26
  var Popover = require('./Popover-Br9hkU5i.js');
27
27
  var Progress = require('./Progress-yBpMAzIU.js');
28
28
  var RadioGroup = require('./RadioGroup-CkKlLHnR.js');
29
- var Select = require('./Select-DbfPhEu0.js');
29
+ var Select = require('./Select-DC23xcMU.js');
30
30
  var Sheet = require('./Sheet-mJ7pJHrn.js');
31
31
  var Slider = require('./Slider-ICf2eQ6p.js');
32
32
  var Spinner = require('./Spinner-DzNBz8al.js');
@@ -34,11 +34,11 @@ var Stepper = require('./Stepper-DZb25oBH.js');
34
34
  var Switch = require('./Switch-BTkncHw2.js');
35
35
  var Tabs = require('./Tabs-YPRmLtUM.js');
36
36
  var Textarea = require('./Textarea-yWv-66yX.js');
37
- var TimePicker = require('./TimePicker-BGWNGfVR.js');
37
+ var TimePicker = require('./TimePicker-CU7qJpoT.js');
38
38
  var Toastr = require('./Toastr-DYWd66L7.js');
39
39
  var Tooltip = require('./Tooltip-Dph_R3Ct.js');
40
40
  var Tree = require('./Tree-DAyVPLnJ.js');
41
- var TreeSelect = require('./TreeSelect-Cmm5yYq3.js');
41
+ var TreeSelect = require('./TreeSelect-qLtRIP-s.js');
42
42
  var Typography = require('./Typography-UyaYuppP.js');
43
43
  require('react/jsx-runtime');
44
44
  require('react');
@@ -116,6 +116,7 @@ require('./primitives/InputGroup.js');
116
116
  require('./input-group-8TZFHzVl.js');
117
117
  require('./input-BlyvDsZ5.js');
118
118
  require('./textarea-Br-J3v7z.js');
119
+ require('./withIconSize-BKUwVY6t.js');
119
120
  require('./primitives/Kbd.js');
120
121
  require('./primitives/Label.js');
121
122
  require('./primitives/HoverCard.js');
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/utils/timezone.ts"],"sourcesContent":["import type { Dayjs } from \"dayjs\";\nimport { dayjs } from \"@bigbinary/neeto-commons-frontend/utils\";\n\n/**\n * Apply the configured timezone to a date value.\n * Strips the original timezone and reinterprets via neetocommons' dayjs wrapper.\n * Handles both single dates and arrays (for date ranges).\n */\nexport const getTimezoneAppliedDateTime = (\n inputDateTime: Dayjs | Dayjs[] | null\n): Dayjs | (Dayjs | null)[] | null => {\n const apply = (date: Dayjs | null): Dayjs | null =>\n date && typeof date.format === \"function\"\n ? dayjs(date.format(\"YYYY-MM-DD HH:mm:ss\"))\n : null;\n\n return Array.isArray(inputDateTime)\n ? inputDateTime.map(apply)\n : apply(inputDateTime);\n};\n"],"names":["dayjs"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQO,MAAM,0BAAA,GAA6B,CACxC,aAAA,KACoC;AACpC,EAAA,MAAM,KAAA,GAAQ,CAAC,IAAA,KACb,IAAA,IAAQ,OAAO,IAAA,CAAK,MAAA,KAAW,UAAA,GAC3BA,aAAA,CAAM,IAAA,CAAK,MAAA,CAAO,qBAAqB,CAAC,CAAA,GACxC,IAAA;AAEN,EAAA,OAAO,KAAA,CAAM,QAAQ,aAAa,CAAA,GAC9B,cAAc,GAAA,CAAI,KAAK,CAAA,GACvB,KAAA,CAAM,aAAa,CAAA;AACzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/utils/timezone.ts"],"sourcesContent":["import type { Dayjs } from \"dayjs\";\nimport { dayjs } from \"@bigbinary/neeto-commons-frontend/utils\";\n\n/**\n * Apply the configured timezone to a date value.\n * Strips the original timezone and reinterprets via neetocommons' dayjs wrapper.\n * Handles both single dates and arrays (for date ranges).\n */\nexport const getTimezoneAppliedDateTime = (\n inputDateTime: Dayjs | Dayjs[] | null\n): Dayjs | (Dayjs | null)[] | null => {\n const apply = (date: Dayjs | null): Dayjs | null =>\n date && typeof date.format === \"function\"\n ? dayjs(date.format(\"YYYY-MM-DD HH:mm:ss\"))\n : null;\n\n return Array.isArray(inputDateTime)\n ? inputDateTime.map(apply)\n : apply(inputDateTime);\n};\n"],"names":["dayjs"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQO,MAAM,0BAAA,GAA6B,CACxC,aAAA,KACoC;AACpC,EAAA,MAAM,KAAA,GAAQ,CAAC,IAAA,KACb,IAAA,IAAQ,OAAO,IAAA,CAAK,MAAA,KAAW,UAAA,GAC3BA,aAAA,CAAM,IAAA,CAAK,MAAA,CAAO,qBAAqB,CAAC,CAAA,GACxC,IAAA;AAEN,EAAA,OAAO,KAAA,CAAM,QAAQ,aAAa,CAAA,GAC9B,cAAc,GAAA,CAAI,KAAK,CAAA,GACvB,KAAA,CAAM,aAAa,CAAA;AACzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var utils = require('./utils-BhM0B89p.js');
5
+
6
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
7
+
8
+ var React__default = /*#__PURE__*/_interopDefault(React);
9
+
10
+ function withIconSize(node, sizeClassName) {
11
+ if (!React__default.default.isValidElement(node)) return node;
12
+ const element = node;
13
+ return React__default.default.cloneElement(element, {
14
+ className: utils.cn(sizeClassName, element.props.className)
15
+ });
16
+ }
17
+
18
+ exports.withIconSize = withIconSize;
19
+ //# sourceMappingURL=withIconSize-BKUwVY6t.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withIconSize-BKUwVY6t.js","sources":["../../src/utils/withIconSize.ts"],"sourcesContent":["import React from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\n\n/**\n * Injects an icon size className on a React element so shadcn's\n * `[&_svg:not([class*='size-'])]:size-X` guard rules skip it and our\n * variant-aware size wins. Caller-provided classes are preserved via cn().\n *\n * - If `node` is not a valid React element (string, number, fragment,\n * null/undefined), returns it as-is. No size is injected.\n * - If `node` already has a `className` prop, the injected size is prepended\n * so tailwind-merge lets the caller's className win if it conflicts.\n */\nexport function withIconSize(\n node: React.ReactNode,\n sizeClassName: string\n): React.ReactNode {\n if (!React.isValidElement(node)) return node;\n\n const element = node as React.ReactElement<{ className?: string }>;\n\n return React.cloneElement(element, {\n className: cn(sizeClassName, element.props.className),\n });\n}\n"],"names":["React","cn"],"mappings":";;;;;;;;;AAcO,SAAS,YAAA,CACd,MACA,aAAA,EACiB;AACjB,EAAA,IAAI,CAACA,sBAAA,CAAM,cAAA,CAAe,IAAI,GAAG,OAAO,IAAA;AAExC,EAAA,MAAM,OAAA,GAAU,IAAA;AAEhB,EAAA,OAAOA,sBAAA,CAAM,aAAa,OAAA,EAAS;AAAA,IACjC,SAAA,EAAWC,QAAA,CAAG,aAAA,EAAe,OAAA,CAAQ,MAAM,SAAS;AAAA,GACrD,CAAA;AACH;;;;"}
@@ -1,4 +1,4 @@
1
- export { C as ColorPicker } from '../ColorPicker-D7Y1gZNn.js';
1
+ export { C as ColorPicker } from '../ColorPicker-ClnRUq9y.js';
2
2
  import 'react/jsx-runtime';
3
3
  import 'react';
4
4
  import 'react-i18next';
@@ -2,15 +2,18 @@ export declare const DEFAULT_DATE_FORMAT = "dd/MM/yyyy";
2
2
  export declare const DEFAULT_TIME_FORMAT = "HH:mm:ss";
3
3
  export declare const SIZE_CONFIG: {
4
4
  readonly small: {
5
- readonly trigger: "h-7 text-xs";
5
+ readonly trigger: "h-8 md:h-7";
6
+ readonly input: "text-base md:text-xs";
6
7
  readonly icon: "size-3.5";
7
8
  };
8
9
  readonly medium: {
9
- readonly trigger: "h-8 text-sm";
10
+ readonly trigger: "h-8";
11
+ readonly input: "text-base md:text-sm";
10
12
  readonly icon: "size-4";
11
13
  };
12
14
  readonly large: {
13
- readonly trigger: "h-10 text-sm";
14
- readonly icon: "size-4";
15
+ readonly trigger: "h-10";
16
+ readonly input: "text-base md:text-sm";
17
+ readonly icon: "size-5";
15
18
  };
16
19
  };