@bigbinary/neeto-atoms 1.0.59 → 1.0.61

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 (85) hide show
  1. package/dist/{DataTable-BTdSpJfs.js → DataTable-DP06B8C7.js} +140 -124
  2. package/dist/{DataTable-BTdSpJfs.js.map → DataTable-DP06B8C7.js.map} +1 -1
  3. package/dist/{DatePicker-kulToqfM.js → DatePicker-mdjh5u40.js} +422 -157
  4. package/dist/DatePicker-mdjh5u40.js.map +1 -0
  5. package/dist/{Input-Bxs8n6xp.js → Input-B7twzkUr.js} +5 -3
  6. package/dist/Input-B7twzkUr.js.map +1 -0
  7. package/dist/{Pagination-C_X9kgc8.js → Pagination-BRd3WPJ_.js} +15 -4
  8. package/dist/Pagination-BRd3WPJ_.js.map +1 -0
  9. package/dist/{Select-BiyQTuiQ.js → Select-Zr8sFnAC.js} +46 -14
  10. package/dist/Select-Zr8sFnAC.js.map +1 -0
  11. package/dist/cjs/{DataTable-CCIIXb4B.js → DataTable-CXjAvPHV.js} +140 -124
  12. package/dist/cjs/{DataTable-CCIIXb4B.js.map → DataTable-CXjAvPHV.js.map} +1 -1
  13. package/dist/cjs/{DatePicker-BZd4rM2R.js → DatePicker-DpyYPJfR.js} +420 -155
  14. package/dist/cjs/DatePicker-DpyYPJfR.js.map +1 -0
  15. package/dist/cjs/{Input-BQh-GS_w.js → Input-Dwl5OhCq.js} +5 -3
  16. package/dist/cjs/Input-Dwl5OhCq.js.map +1 -0
  17. package/dist/cjs/{Pagination-DeWfLAq5.js → Pagination-8yFg8xR2.js} +15 -4
  18. package/dist/cjs/Pagination-8yFg8xR2.js.map +1 -0
  19. package/dist/cjs/{Select-DC23xcMU.js → Select-BJs-J8fs.js} +45 -13
  20. package/dist/cjs/Select-BJs-J8fs.js.map +1 -0
  21. package/dist/cjs/components/DataTable.js +1 -1
  22. package/dist/cjs/components/DatePicker.js +9 -9
  23. package/dist/cjs/components/Input.js +1 -1
  24. package/dist/cjs/components/Pagination.js +2 -1
  25. package/dist/cjs/components/Pagination.js.map +1 -1
  26. package/dist/cjs/components/Select.js +2 -2
  27. package/dist/cjs/components/index.js +15 -15
  28. package/dist/cjs/formik/ActionBlock.js +10 -4
  29. package/dist/cjs/formik/ActionBlock.js.map +1 -1
  30. package/dist/cjs/formik/Input.js +1 -1
  31. package/dist/cjs/formik/Select.js +2 -2
  32. package/dist/cjs/formik/index.js +3 -3
  33. package/dist/cjs/index.js +15 -15
  34. package/dist/cjs/primitives/Checkbox.js +1 -1
  35. package/dist/cjs/primitives/Checkbox.js.map +1 -1
  36. package/dist/cjs/primitives/Combobox.js +14 -2
  37. package/dist/cjs/primitives/Combobox.js.map +1 -1
  38. package/dist/cjs/primitives/RadioGroup.js +1 -1
  39. package/dist/cjs/primitives/RadioGroup.js.map +1 -1
  40. package/dist/components/DataTable/DataTable.d.ts +1 -1
  41. package/dist/components/DataTable/types.d.ts +1 -0
  42. package/dist/components/DataTable.js +1 -1
  43. package/dist/components/DatePicker/DatePickerField.d.ts +15 -0
  44. package/dist/components/DatePicker/DatePickerTrigger.d.ts +25 -0
  45. package/dist/components/DatePicker/RangeCalendar.d.ts +17 -0
  46. package/dist/components/DatePicker/types.d.ts +3 -3
  47. package/dist/components/DatePicker/useRangePicker.d.ts +28 -0
  48. package/dist/components/DatePicker/utils.d.ts +15 -0
  49. package/dist/components/DatePicker.js +9 -9
  50. package/dist/components/Input.js +1 -1
  51. package/dist/components/Pagination/Pagination.d.ts +5 -1
  52. package/dist/components/Pagination/hooks/usePaginationQueryParams.d.ts +11 -0
  53. package/dist/components/Pagination.js +2 -1
  54. package/dist/components/Pagination.js.map +1 -1
  55. package/dist/components/Select/MultiSelectCombobox.types.d.ts +1 -0
  56. package/dist/components/Select/MultiSelectDropdown.d.ts +2 -2
  57. package/dist/components/Select/OptionItem.d.ts +3 -2
  58. package/dist/components/Select/SelectCombobox.types.d.ts +2 -0
  59. package/dist/components/Select/hooks/useMultiSelectState.d.ts +3 -1
  60. package/dist/components/Select/hooks/useSelectState.d.ts +3 -1
  61. package/dist/components/Select/types.d.ts +7 -0
  62. package/dist/components/Select.js +2 -2
  63. package/dist/components/index.js +5 -5
  64. package/dist/formik/ActionBlock.js +10 -4
  65. package/dist/formik/ActionBlock.js.map +1 -1
  66. package/dist/formik/Input.js +1 -1
  67. package/dist/formik/Select.js +2 -2
  68. package/dist/formik/index.js +3 -3
  69. package/dist/index.js +5 -5
  70. package/dist/primitives/Checkbox.js +1 -1
  71. package/dist/primitives/Checkbox.js.map +1 -1
  72. package/dist/primitives/Combobox.d.ts +1 -1
  73. package/dist/primitives/Combobox.js +14 -2
  74. package/dist/primitives/Combobox.js.map +1 -1
  75. package/dist/primitives/RadioGroup.js +1 -1
  76. package/dist/primitives/RadioGroup.js.map +1 -1
  77. package/package.json +1 -1
  78. package/dist/DatePicker-kulToqfM.js.map +0 -1
  79. package/dist/Input-Bxs8n6xp.js.map +0 -1
  80. package/dist/Pagination-C_X9kgc8.js.map +0 -1
  81. package/dist/Select-BiyQTuiQ.js.map +0 -1
  82. package/dist/cjs/DatePicker-BZd4rM2R.js.map +0 -1
  83. package/dist/cjs/Input-BQh-GS_w.js.map +0 -1
  84. package/dist/cjs/Pagination-DeWfLAq5.js.map +0 -1
  85. package/dist/cjs/Select-DC23xcMU.js.map +0 -1
@@ -330,7 +330,7 @@ const RadioGroupItem = ({
330
330
  {
331
331
  "data-slot": "radio-group-item",
332
332
  className: utils.cn(
333
- "group/radio-group-item peer relative flex aspect-square size-4 shrink-0 rounded-full border border-input outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary",
333
+ "group/radio-group-item peer relative flex aspect-square size-4 shrink-0 rounded-full border border-neutral-400 outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:border-neutral-500 dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary",
334
334
  className
335
335
  ),
336
336
  ...props,
@@ -1 +1 @@
1
- {"version":3,"file":"RadioGroup.js","sources":["../../../node_modules/@radix-ui/react-radio-group/dist/index.mjs","../../../src/shadcn/components/radio-group.tsx","../../../src/primitives/RadioGroup.tsx"],"sourcesContent":["\"use client\";\n\n// src/radio-group.tsx\nimport * as React2 from \"react\";\nimport { composeEventHandlers as composeEventHandlers2 } from \"@radix-ui/primitive\";\nimport { useComposedRefs as useComposedRefs2 } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope as createContextScope2 } from \"@radix-ui/react-context\";\nimport { Primitive as Primitive2 } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\n\n// src/radio.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar RADIO_NAME = \"Radio\";\nvar [createRadioContext, createRadioScope] = createContextScope(RADIO_NAME);\nvar [RadioProvider, useRadioContext] = createRadioContext(RADIO_NAME);\nvar Radio = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRadio,\n name,\n checked = false,\n required,\n disabled,\n value = \"on\",\n onCheck,\n form,\n ...radioProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n return /* @__PURE__ */ jsxs(RadioProvider, { scope: __scopeRadio, checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"radio\",\n \"aria-checked\": checked,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...radioProps,\n ref: composedRefs,\n onClick: composeEventHandlers(props.onClick, (event) => {\n if (!checked) onCheck?.();\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n RadioBubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" }\n }\n )\n ] });\n }\n);\nRadio.displayName = RADIO_NAME;\nvar INDICATOR_NAME = \"RadioIndicator\";\nvar RadioIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadio, forceMount, ...indicatorProps } = props;\n const context = useRadioContext(INDICATOR_NAME, __scopeRadio);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.checked, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef\n }\n ) });\n }\n);\nRadioIndicator.displayName = INDICATOR_NAME;\nvar BUBBLE_INPUT_NAME = \"RadioBubbleInput\";\nvar RadioBubbleInput = React.forwardRef(\n ({\n __scopeRadio,\n control,\n checked,\n bubbles = true,\n ...props\n }, forwardedRef) => {\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n \"checked\"\n );\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n return /* @__PURE__ */ jsx(\n Primitive.input,\n {\n type: \"radio\",\n \"aria-hidden\": true,\n defaultChecked: checked,\n ...props,\n tabIndex: -1,\n ref: composedRefs,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n }\n);\nRadioBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\n\n// src/radio-group.tsx\nimport { jsx as jsx2 } from \"react/jsx-runtime\";\nvar ARROW_KEYS = [\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"];\nvar RADIO_GROUP_NAME = \"RadioGroup\";\nvar [createRadioGroupContext, createRadioGroupScope] = createContextScope2(RADIO_GROUP_NAME, [\n createRovingFocusGroupScope,\n createRadioScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar useRadioScope = createRadioScope();\nvar [RadioGroupProvider, useRadioGroupContext] = createRadioGroupContext(RADIO_GROUP_NAME);\nvar RadioGroup = React2.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRadioGroup,\n name,\n defaultValue,\n value: valueProp,\n required = false,\n disabled = false,\n orientation,\n dir,\n loop = true,\n onValueChange,\n ...groupProps\n } = props;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? null,\n onChange: onValueChange,\n caller: RADIO_GROUP_NAME\n });\n return /* @__PURE__ */ jsx2(\n RadioGroupProvider,\n {\n scope: __scopeRadioGroup,\n name,\n required,\n disabled,\n value,\n onValueChange: setValue,\n children: /* @__PURE__ */ jsx2(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation,\n dir: direction,\n loop,\n children: /* @__PURE__ */ jsx2(\n Primitive2.div,\n {\n role: \"radiogroup\",\n \"aria-required\": required,\n \"aria-orientation\": orientation,\n \"data-disabled\": disabled ? \"\" : void 0,\n dir: direction,\n ...groupProps,\n ref: forwardedRef\n }\n )\n }\n )\n }\n );\n }\n);\nRadioGroup.displayName = RADIO_GROUP_NAME;\nvar ITEM_NAME = \"RadioGroupItem\";\nvar RadioGroupItem = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadioGroup, disabled, ...itemProps } = props;\n const context = useRadioGroupContext(ITEM_NAME, __scopeRadioGroup);\n const isDisabled = context.disabled || disabled;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);\n const radioScope = useRadioScope(__scopeRadioGroup);\n const ref = React2.useRef(null);\n const composedRefs = useComposedRefs2(forwardedRef, ref);\n const checked = context.value === itemProps.value;\n const isArrowKeyPressedRef = React2.useRef(false);\n React2.useEffect(() => {\n const handleKeyDown = (event) => {\n if (ARROW_KEYS.includes(event.key)) {\n isArrowKeyPressedRef.current = true;\n }\n };\n const handleKeyUp = () => isArrowKeyPressedRef.current = false;\n document.addEventListener(\"keydown\", handleKeyDown);\n document.addEventListener(\"keyup\", handleKeyUp);\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n document.removeEventListener(\"keyup\", handleKeyUp);\n };\n }, []);\n return /* @__PURE__ */ jsx2(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !isDisabled,\n active: checked,\n children: /* @__PURE__ */ jsx2(\n Radio,\n {\n disabled: isDisabled,\n required: context.required,\n checked,\n ...radioScope,\n ...itemProps,\n name: context.name,\n ref: composedRefs,\n onCheck: () => context.onValueChange(itemProps.value),\n onKeyDown: composeEventHandlers2((event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onFocus: composeEventHandlers2(itemProps.onFocus, () => {\n if (isArrowKeyPressedRef.current) ref.current?.click();\n })\n }\n )\n }\n );\n }\n);\nRadioGroupItem.displayName = ITEM_NAME;\nvar INDICATOR_NAME2 = \"RadioGroupIndicator\";\nvar RadioGroupIndicator = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadioGroup, ...indicatorProps } = props;\n const radioScope = useRadioScope(__scopeRadioGroup);\n return /* @__PURE__ */ jsx2(RadioIndicator, { ...radioScope, ...indicatorProps, ref: forwardedRef });\n }\n);\nRadioGroupIndicator.displayName = INDICATOR_NAME2;\nvar Root2 = RadioGroup;\nvar Item2 = RadioGroupItem;\nvar Indicator = RadioGroupIndicator;\nexport {\n Indicator,\n Item2 as Item,\n RadioGroup,\n RadioGroupIndicator,\n RadioGroupItem,\n Root2 as Root,\n createRadioGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\"\n\nimport * as React from \"react\"\nimport { RadioGroup as RadioGroupPrimitive } from \"radix-ui\"\n\nimport { cn } from \"src/shadcn/lib/utils\"\n\nfunction RadioGroup({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {\n return (\n <RadioGroupPrimitive.Root\n data-slot=\"radio-group\"\n className={cn(\"grid w-full gap-2\", className)}\n {...props}\n />\n )\n}\n\nfunction RadioGroupItem({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n className={cn(\n \"group/radio-group-item peer relative flex aspect-square size-4 shrink-0 rounded-full border border-input outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary\",\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"flex size-4 items-center justify-center\"\n >\n <span className=\"absolute top-1/2 start-1/2 size-2 -translate-x-1/2 rtl:translate-x-1/2 -translate-y-1/2 rounded-full bg-primary-foreground\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n )\n}\n\nexport { RadioGroup, RadioGroupItem }\n","import * as React from \"react\";\nimport { RadioGroup as RadioGroupPrimitive } from \"radix-ui\";\nimport { cn } from \"src/shadcn/lib/utils\";\n\nimport { RadioGroup as ShadcnRadioGroup } from \"src/shadcn/components/radio-group\";\n\nconst RadioGroup = (props: React.ComponentProps<typeof ShadcnRadioGroup>) => (\n <ShadcnRadioGroup {...props} />\n);\n\n/**\n * RadioGroupItem re-composed from Radix primitives with the inner dot\n * using flex centering instead of absolute + translate, fixing RTL alignment.\n */\nconst RadioGroupItem = ({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Item>) => (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n className={cn(\n \"group/radio-group-item peer relative flex aspect-square size-4 shrink-0 rounded-full border border-input outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary\",\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"flex size-full items-center justify-center\"\n >\n <span className=\"size-2 rounded-full bg-primary-foreground\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n);\n\nexport { RadioGroup, RadioGroupItem };\n"],"names":["createContextScope","React","useComposedRefs","jsxs","jsx","Primitive","composeEventHandlers","Presence","usePrevious","useSize","createContextScope2","createRovingFocusGroupScope","RadioGroup","React2","useDirection","useControllableState","jsx2","RovingFocusGroup.Root","Primitive2","RadioGroupItem","useComposedRefs2","RovingFocusGroup.Item","composeEventHandlers2","RadioGroupPrimitive.Root","cn","ShadcnRadioGroup","RadioGroupPrimitive.Item","RadioGroupPrimitive.Indicator"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"RadioGroup.js","sources":["../../../node_modules/@radix-ui/react-radio-group/dist/index.mjs","../../../src/shadcn/components/radio-group.tsx","../../../src/primitives/RadioGroup.tsx"],"sourcesContent":["\"use client\";\n\n// src/radio-group.tsx\nimport * as React2 from \"react\";\nimport { composeEventHandlers as composeEventHandlers2 } from \"@radix-ui/primitive\";\nimport { useComposedRefs as useComposedRefs2 } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope as createContextScope2 } from \"@radix-ui/react-context\";\nimport { Primitive as Primitive2 } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\n\n// src/radio.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar RADIO_NAME = \"Radio\";\nvar [createRadioContext, createRadioScope] = createContextScope(RADIO_NAME);\nvar [RadioProvider, useRadioContext] = createRadioContext(RADIO_NAME);\nvar Radio = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRadio,\n name,\n checked = false,\n required,\n disabled,\n value = \"on\",\n onCheck,\n form,\n ...radioProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n return /* @__PURE__ */ jsxs(RadioProvider, { scope: __scopeRadio, checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"radio\",\n \"aria-checked\": checked,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...radioProps,\n ref: composedRefs,\n onClick: composeEventHandlers(props.onClick, (event) => {\n if (!checked) onCheck?.();\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n RadioBubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" }\n }\n )\n ] });\n }\n);\nRadio.displayName = RADIO_NAME;\nvar INDICATOR_NAME = \"RadioIndicator\";\nvar RadioIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadio, forceMount, ...indicatorProps } = props;\n const context = useRadioContext(INDICATOR_NAME, __scopeRadio);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.checked, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef\n }\n ) });\n }\n);\nRadioIndicator.displayName = INDICATOR_NAME;\nvar BUBBLE_INPUT_NAME = \"RadioBubbleInput\";\nvar RadioBubbleInput = React.forwardRef(\n ({\n __scopeRadio,\n control,\n checked,\n bubbles = true,\n ...props\n }, forwardedRef) => {\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n \"checked\"\n );\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n return /* @__PURE__ */ jsx(\n Primitive.input,\n {\n type: \"radio\",\n \"aria-hidden\": true,\n defaultChecked: checked,\n ...props,\n tabIndex: -1,\n ref: composedRefs,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n }\n);\nRadioBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\n\n// src/radio-group.tsx\nimport { jsx as jsx2 } from \"react/jsx-runtime\";\nvar ARROW_KEYS = [\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"];\nvar RADIO_GROUP_NAME = \"RadioGroup\";\nvar [createRadioGroupContext, createRadioGroupScope] = createContextScope2(RADIO_GROUP_NAME, [\n createRovingFocusGroupScope,\n createRadioScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar useRadioScope = createRadioScope();\nvar [RadioGroupProvider, useRadioGroupContext] = createRadioGroupContext(RADIO_GROUP_NAME);\nvar RadioGroup = React2.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRadioGroup,\n name,\n defaultValue,\n value: valueProp,\n required = false,\n disabled = false,\n orientation,\n dir,\n loop = true,\n onValueChange,\n ...groupProps\n } = props;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? null,\n onChange: onValueChange,\n caller: RADIO_GROUP_NAME\n });\n return /* @__PURE__ */ jsx2(\n RadioGroupProvider,\n {\n scope: __scopeRadioGroup,\n name,\n required,\n disabled,\n value,\n onValueChange: setValue,\n children: /* @__PURE__ */ jsx2(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation,\n dir: direction,\n loop,\n children: /* @__PURE__ */ jsx2(\n Primitive2.div,\n {\n role: \"radiogroup\",\n \"aria-required\": required,\n \"aria-orientation\": orientation,\n \"data-disabled\": disabled ? \"\" : void 0,\n dir: direction,\n ...groupProps,\n ref: forwardedRef\n }\n )\n }\n )\n }\n );\n }\n);\nRadioGroup.displayName = RADIO_GROUP_NAME;\nvar ITEM_NAME = \"RadioGroupItem\";\nvar RadioGroupItem = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadioGroup, disabled, ...itemProps } = props;\n const context = useRadioGroupContext(ITEM_NAME, __scopeRadioGroup);\n const isDisabled = context.disabled || disabled;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);\n const radioScope = useRadioScope(__scopeRadioGroup);\n const ref = React2.useRef(null);\n const composedRefs = useComposedRefs2(forwardedRef, ref);\n const checked = context.value === itemProps.value;\n const isArrowKeyPressedRef = React2.useRef(false);\n React2.useEffect(() => {\n const handleKeyDown = (event) => {\n if (ARROW_KEYS.includes(event.key)) {\n isArrowKeyPressedRef.current = true;\n }\n };\n const handleKeyUp = () => isArrowKeyPressedRef.current = false;\n document.addEventListener(\"keydown\", handleKeyDown);\n document.addEventListener(\"keyup\", handleKeyUp);\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n document.removeEventListener(\"keyup\", handleKeyUp);\n };\n }, []);\n return /* @__PURE__ */ jsx2(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !isDisabled,\n active: checked,\n children: /* @__PURE__ */ jsx2(\n Radio,\n {\n disabled: isDisabled,\n required: context.required,\n checked,\n ...radioScope,\n ...itemProps,\n name: context.name,\n ref: composedRefs,\n onCheck: () => context.onValueChange(itemProps.value),\n onKeyDown: composeEventHandlers2((event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onFocus: composeEventHandlers2(itemProps.onFocus, () => {\n if (isArrowKeyPressedRef.current) ref.current?.click();\n })\n }\n )\n }\n );\n }\n);\nRadioGroupItem.displayName = ITEM_NAME;\nvar INDICATOR_NAME2 = \"RadioGroupIndicator\";\nvar RadioGroupIndicator = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadioGroup, ...indicatorProps } = props;\n const radioScope = useRadioScope(__scopeRadioGroup);\n return /* @__PURE__ */ jsx2(RadioIndicator, { ...radioScope, ...indicatorProps, ref: forwardedRef });\n }\n);\nRadioGroupIndicator.displayName = INDICATOR_NAME2;\nvar Root2 = RadioGroup;\nvar Item2 = RadioGroupItem;\nvar Indicator = RadioGroupIndicator;\nexport {\n Indicator,\n Item2 as Item,\n RadioGroup,\n RadioGroupIndicator,\n RadioGroupItem,\n Root2 as Root,\n createRadioGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\"\n\nimport * as React from \"react\"\nimport { RadioGroup as RadioGroupPrimitive } from \"radix-ui\"\n\nimport { cn } from \"src/shadcn/lib/utils\"\n\nfunction RadioGroup({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {\n return (\n <RadioGroupPrimitive.Root\n data-slot=\"radio-group\"\n className={cn(\"grid w-full gap-2\", className)}\n {...props}\n />\n )\n}\n\nfunction RadioGroupItem({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n className={cn(\n \"group/radio-group-item peer relative flex aspect-square size-4 shrink-0 rounded-full border border-neutral-400 outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:border-neutral-500 dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary\",\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"flex size-4 items-center justify-center\"\n >\n <span className=\"absolute top-1/2 start-1/2 size-2 -translate-x-1/2 rtl:translate-x-1/2 -translate-y-1/2 rounded-full bg-primary-foreground\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n )\n}\n\nexport { RadioGroup, RadioGroupItem }\n","import * as React from \"react\";\nimport { RadioGroup as RadioGroupPrimitive } from \"radix-ui\";\nimport { cn } from \"src/shadcn/lib/utils\";\n\nimport { RadioGroup as ShadcnRadioGroup } from \"src/shadcn/components/radio-group\";\n\nconst RadioGroup = (props: React.ComponentProps<typeof ShadcnRadioGroup>) => (\n <ShadcnRadioGroup {...props} />\n);\n\n/**\n * RadioGroupItem re-composed from Radix primitives with the inner dot\n * using flex centering instead of absolute + translate, fixing RTL alignment.\n */\nconst RadioGroupItem = ({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Item>) => (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n className={cn(\n \"group/radio-group-item peer relative flex aspect-square size-4 shrink-0 rounded-full border border-neutral-400 outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:border-neutral-500 dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary\",\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"flex size-full items-center justify-center\"\n >\n <span className=\"size-2 rounded-full bg-primary-foreground\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n);\n\nexport { RadioGroup, RadioGroupItem };\n"],"names":["createContextScope","React","useComposedRefs","jsxs","jsx","Primitive","composeEventHandlers","Presence","usePrevious","useSize","createContextScope2","createRovingFocusGroupScope","RadioGroup","React2","useDirection","useControllableState","jsx2","RovingFocusGroup.Root","Primitive2","RadioGroupItem","useComposedRefs2","RovingFocusGroup.Item","composeEventHandlers2","RadioGroupPrimitive.Root","cn","ShadcnRadioGroup","RadioGroupPrimitive.Item","RadioGroupPrimitive.Indicator"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,2 +1,2 @@
1
1
  import type { DataTableProps } from "./types";
2
- export declare const DataTable: <TData>({ columns, data, getRowId: getRowIdProp, sorting: sortingProp, onSortingChange: onSortingChangeProp, onSort: onSortProp, enableSorting, enableURLSort, totalCount, pageSize, currentPage: currentPageProp, onPageChange: onPageChangeProp, enableURLPagination, enableRowSelection: enableRowSelectionProp, selectedRowKeys, onRowSelect, bulkSelectAllRowsProps, enableColumnResize, enableColumnFreeze, columnPinning: columnPinningProp, onColumnPinningChange: onColumnPinningChangeProp, localStorageKeyPrefix, columnVisibility: columnVisibilityProp, onColumnVisibilityChange: onColumnVisibilityChangeProp, onColumnHide: onColumnHideProp, enableColumnReorder, columnOrder: columnOrderProp, onColumnOrderChange: onColumnOrderChangeProp, enableAddColumn, onColumnAdd, onColumnDelete, onColumnUpdate, onMoreActionClick, enableHeaderMenu, loading, bordered, className, emptyMessage, onRowClick, allowRowClick, }: DataTableProps<TData>) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const DataTable: <TData>({ columns, data, getRowId: getRowIdProp, sorting: sortingProp, onSortingChange: onSortingChangeProp, onSort: onSortProp, enableSorting, enableURLSort, totalCount, pageSize, currentPage: currentPageProp, onPageChange: onPageChangeProp, enableURLPagination, enableRowSelection: enableRowSelectionProp, selectedRowKeys, onRowSelect, bulkSelectAllRowsProps, enableColumnResize, enableColumnFreeze, columnPinning: columnPinningProp, onColumnPinningChange: onColumnPinningChangeProp, localStorageKeyPrefix, columnVisibility: columnVisibilityProp, onColumnVisibilityChange: onColumnVisibilityChangeProp, onColumnHide: onColumnHideProp, enableColumnReorder, columnOrder: columnOrderProp, onColumnOrderChange: onColumnOrderChangeProp, enableAddColumn, onColumnAdd, onColumnDelete, onColumnUpdate, onMoreActionClick, enableHeaderMenu, loading, bordered, className, emptyMessage, onRowClick, allowRowClick, renderBody, }: DataTableProps<TData>) => import("react/jsx-runtime").JSX.Element;
@@ -62,4 +62,5 @@ export interface DataTableProps<TData> {
62
62
  emptyMessage?: string | React.ReactNode;
63
63
  onRowClick?: (event: React.MouseEvent, row: TData, index: number) => void;
64
64
  allowRowClick?: boolean;
65
+ renderBody?: () => React.ReactNode;
65
66
  }
@@ -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-BTdSpJfs.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-DP06B8C7.js';
2
2
  import 'react/jsx-runtime';
3
3
  import 'react';
4
4
  import '../primitives/Table.js';
@@ -0,0 +1,15 @@
1
+ import React from "react";
2
+ interface DatePickerFieldProps {
3
+ disabled: boolean;
4
+ error: React.ReactNode | undefined;
5
+ className?: string;
6
+ label?: React.ReactNode;
7
+ required?: boolean;
8
+ helpText?: React.ReactNode;
9
+ labelProps?: Record<string, unknown>;
10
+ errorId: string;
11
+ helpTextId: string;
12
+ children: React.ReactNode;
13
+ }
14
+ export declare const DatePickerField: React.ForwardRefExoticComponent<DatePickerFieldProps & React.RefAttributes<HTMLDivElement>>;
15
+ export {};
@@ -0,0 +1,25 @@
1
+ import React from "react";
2
+ interface DatePickerTriggerProps {
3
+ containerRef: React.RefObject<HTMLDivElement | null>;
4
+ inputRef: React.RefObject<HTMLInputElement | null>;
5
+ disabled: boolean;
6
+ error: React.ReactNode | undefined;
7
+ hasField: boolean;
8
+ className?: string;
9
+ triggerSizeClass: string;
10
+ inputSizeClass: string;
11
+ iconSizeClass: string;
12
+ label?: React.ReactNode;
13
+ ariaDescribedBy?: string;
14
+ placeholder: string;
15
+ inputText: string;
16
+ allowClear: boolean;
17
+ timezone?: string;
18
+ onInputChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
19
+ onInputKeyDown: (e: React.KeyboardEvent<HTMLInputElement>) => void;
20
+ onInputFocus: () => void;
21
+ onInputBlur: (e: React.FocusEvent<HTMLInputElement>) => void;
22
+ onClear: (e: React.MouseEvent) => void;
23
+ }
24
+ export declare const DatePickerTrigger: React.ForwardRefExoticComponent<DatePickerTriggerProps & React.RefAttributes<HTMLDivElement>>;
25
+ export {};
@@ -0,0 +1,17 @@
1
+ import type React from "react";
2
+ import type { DateRange } from "react-day-picker";
3
+ interface RangeCalendarProps {
4
+ todayDate: Date;
5
+ weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6;
6
+ month: Date;
7
+ onMonthChange: (date: Date) => void;
8
+ selected: DateRange | undefined;
9
+ onSelect: (range: DateRange | undefined, triggerDate: Date) => void;
10
+ disabled: (date: Date) => boolean;
11
+ fromDate?: Date;
12
+ toDate?: Date;
13
+ onHoverIn: (e: React.MouseEvent<HTMLElement>) => void;
14
+ onHoverOut: () => void;
15
+ }
16
+ export declare const RangeCalendar: ({ todayDate, weekStartsOn, month, onMonthChange, selected, onSelect, disabled, fromDate, toDate, onHoverIn, onHoverOut, }: RangeCalendarProps) => import("react/jsx-runtime").JSX.Element;
17
+ export {};
@@ -12,7 +12,7 @@ export interface DatePickerProps {
12
12
  /** Default value (uncontrolled). */
13
13
  defaultValue?: DateValue | [DateValue | null, DateValue | null];
14
14
  /** Callback on date change. Returns Dayjs objects for neeto ecosystem compatibility. */
15
- onChange?: (value: Dayjs | [Dayjs, Dayjs] | null, formatted: string | [string, string]) => void;
15
+ onChange?: (value: Dayjs | [Dayjs | null, Dayjs | null] | null, formatted: string | [string, string]) => void;
16
16
  /** Callback when the trigger input loses focus. */
17
17
  onBlur?: (e: React.FocusEvent<HTMLInputElement>) => void;
18
18
  /** Single date or range selection. */
@@ -28,9 +28,9 @@ export interface DatePickerProps {
28
28
  /** Show seconds in time picker. */
29
29
  showSeconds?: boolean;
30
30
  /** Minimum selectable date. */
31
- minDate?: Date;
31
+ minDate?: DateValue;
32
32
  /** Maximum selectable date. */
33
- maxDate?: Date;
33
+ maxDate?: DateValue;
34
34
  /** Predicate to disable arbitrary dates beyond minDate/maxDate. */
35
35
  disabledDate?: (date: Date) => boolean;
36
36
  /** Placeholder text for the trigger input. */
@@ -0,0 +1,28 @@
1
+ import type { DateRange } from "react-day-picker";
2
+ type RangeTuple = [Date | null, Date | null];
3
+ interface UseRangePickerOptions {
4
+ currentValue: unknown;
5
+ showTime: boolean;
6
+ needConfirm: boolean;
7
+ commitValue: (value: Date | [Date, Date] | null) => void;
8
+ setPendingDate: (date: Date | null) => void;
9
+ setOpen: (open: boolean) => void;
10
+ }
11
+ export declare const useRangePicker: ({ currentValue, showTime, needConfirm, commitValue, setPendingDate, setOpen, }: UseRangePickerOptions) => {
12
+ pendingRange: RangeTuple | null;
13
+ rangeSelectionStep: "from" | "to";
14
+ hoveredDate: Date | null;
15
+ handleRangeSelect: (_range: {
16
+ from?: Date;
17
+ to?: Date;
18
+ } | undefined, triggerDate: Date) => void;
19
+ handleHoverIn: (e: React.MouseEvent<HTMLElement>) => void;
20
+ handleHoverOut: () => void;
21
+ memoizedRangeSelected: DateRange | undefined;
22
+ getPreviewParts: () => {
23
+ from: Date | null;
24
+ to: Date | null;
25
+ };
26
+ resetTransientState: () => void;
27
+ };
28
+ export {};
@@ -6,7 +6,9 @@ import type { TimeValue } from "../TimePicker/types";
6
6
  * Calendar and input display the correct date after a controlled round-trip.
7
7
  */
8
8
  export declare const toBrowserLocalDate: (date: Date) => Date;
9
+ export declare const toNativeDate: (value: unknown) => Date | null;
9
10
  export declare const coerceDateValue: (value: unknown, type: "date" | "range") => Date | [Date | null, Date | null] | null;
11
+ export declare const getInitialCalendarMonth: (value: unknown, defaultValue: unknown, type: "date" | "range") => Date;
10
12
  /**
11
13
  * Format a date for display using browser-local time.
12
14
  * Calendar and input always show browser-local dates.
@@ -25,6 +27,7 @@ export declare const applyTimeToDate: (date: Date, time: TimeValue) => Date;
25
27
  * Matches neetoUI's getTimezoneAppliedDateTime behavior.
26
28
  */
27
29
  export declare const applyTimezone: (date: Date) => Date;
30
+ export declare const toUserTzDayjs: (date: Date) => Dayjs;
28
31
  export declare const toDayjs: (date: Date) => Dayjs;
29
32
  export declare const getDisplayFormat: (dateFormat: string, timeFormat: string, showTime: boolean) => string;
30
33
  export declare const getDatePlaceholder: (dateFormat: string, timeFormat: string, showTime: boolean, type: "date" | "range") => string;
@@ -36,4 +39,16 @@ export declare const isMonthDisabled: (monthDate: Date, minDate?: Date, maxDate?
36
39
  export declare const isYearDisabled: (yearDate: Date, minDate?: Date, maxDate?: Date) => boolean;
37
40
  export declare const buildMonth: (year: number, month: number) => Date;
38
41
  export declare const isSameMonth: (a: Date | null, b: Date) => boolean;
42
+ export declare const isSameDay: (a: Date | null, b: Date | null) => boolean;
43
+ export declare const orderRange: (from: Date | null, to: Date | null) => [Date | null, Date | null];
44
+ export declare const parseGridcellDay: (target: EventTarget | null) => Date | null;
45
+ export declare const computeRangePreview: ({ pendingRange, committed, hoveredDate, rangeStep, }: {
46
+ pendingRange: [Date | null, Date | null] | null;
47
+ committed: [Date | null, Date | null] | null;
48
+ hoveredDate: Date | null;
49
+ rangeStep: "from" | "to";
50
+ }) => {
51
+ from: Date | null;
52
+ to: Date | null;
53
+ };
39
54
  export declare const decadeStartFor: (year: number) => number;
@@ -1,4 +1,4 @@
1
- export { D as DatePicker } from '../DatePicker-kulToqfM.js';
1
+ export { D as DatePicker } from '../DatePicker-mdjh5u40.js';
2
2
  import 'react/jsx-runtime';
3
3
  import 'react';
4
4
  import '../primitives/Calendar.js';
@@ -27,6 +27,14 @@ import '../index-BYZaLNq1.js';
27
27
  import '../index-fV_U4ZJM.js';
28
28
  import '../index-yFgkK_AM.js';
29
29
  import '../index-Cor698lu.js';
30
+ import '../TimePickerPanel--KDX5QwS.js';
31
+ import '../primitives/Button.js';
32
+ import '../primitives/ScrollArea.js';
33
+ import '../index-d0BBQf5t.js';
34
+ import '../index-BfAAoDv6.js';
35
+ import 'dayjs';
36
+ import 'dayjs/plugin/customParseFormat';
37
+ import '@bigbinary/neeto-commons-frontend/utils';
30
38
  import '../primitives/Field.js';
31
39
  import '../HelpIcon-Cm3ZgoCx.js';
32
40
  import '../primitives/Tooltip.js';
@@ -38,18 +46,10 @@ import '../primitives/HoverCard.js';
38
46
  import '../Typography-CmILccNh.js';
39
47
  import '../Button-DV9xCqlc.js';
40
48
  import 'react-router-dom';
41
- import '../primitives/Button.js';
42
49
  import '../primitives/Spinner.js';
43
50
  import 'react-i18next';
44
51
  import '../loader-circle-DycHUAWN.js';
45
52
  import '../label-BgLSVt4u.js';
46
53
  import '../separator-ByRsc-y-.js';
47
- import '../TimePickerPanel--KDX5QwS.js';
48
- import '../primitives/ScrollArea.js';
49
- import '../index-d0BBQf5t.js';
50
- import '../index-BfAAoDv6.js';
51
- import 'dayjs';
52
- import 'dayjs/plugin/customParseFormat';
53
- import '@bigbinary/neeto-commons-frontend/utils';
54
54
  import '../x-_o2T3n6D.js';
55
55
  //# sourceMappingURL=DatePicker.js.map
@@ -1,4 +1,4 @@
1
- export { I as Input } from '../Input-Bxs8n6xp.js';
1
+ export { I as Input } from '../Input-B7twzkUr.js';
2
2
  import 'react/jsx-runtime';
3
3
  import 'react';
4
4
  import '../utils-BJnb9o5c.js';
@@ -9,7 +9,11 @@ export interface PaginationProps extends Omit<React.ComponentProps<typeof Primit
9
9
  pageSize: number;
10
10
  /** Number of sibling pages to show around the current page. */
11
11
  siblingCount?: number;
12
- /** Callback when a page is selected. */
12
+ /**
13
+ * Callback when a page is selected. When omitted, Pagination falls back
14
+ * to updating `?page=` in the URL via react-router history (matches v1
15
+ * neeto-ui behavior).
16
+ */
13
17
  navigate?: (page: number) => void;
14
18
  /** Additional CSS class names. */
15
19
  className?: string;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Returns a navigate callback that updates the `?page=` query param while
3
+ * preserving every other search param. Used as the default `navigate`
4
+ * for Pagination when the consumer doesn't pass one explicitly.
5
+ *
6
+ * Mirrors v1 neeto-ui Pagination's auto URL sync behavior. Must be
7
+ * rendered inside a react-router-dom v5 history context.
8
+ */
9
+ export declare const usePaginationQueryParams: () => {
10
+ updatePageInQueryParam: (page: number) => void;
11
+ };
@@ -1,4 +1,4 @@
1
- export { P as Pagination } from '../Pagination-C_X9kgc8.js';
1
+ export { P as Pagination } from '../Pagination-BRd3WPJ_.js';
2
2
  import 'react/jsx-runtime';
3
3
  import 'react';
4
4
  import '../utils-BJnb9o5c.js';
@@ -12,4 +12,5 @@ import '../chevron-left-BDoT8E2-.js';
12
12
  import '../createLucideIcon-C8ycilSN.js';
13
13
  import '../ellipsis-lb8Ws6br.js';
14
14
  import '../chevron-right-DQnrO-ek.js';
15
+ import 'react-router-dom';
15
16
  //# sourceMappingURL=Pagination.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Pagination.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;"}
@@ -10,6 +10,7 @@ export interface MultiSelectComboboxProps {
10
10
  items: string[];
11
11
  }[];
12
12
  labelForValue: (val: string) => string;
13
+ renderOption: (val: string) => React.ReactNode;
13
14
  isSearchable: boolean;
14
15
  isAsync: boolean;
15
16
  isCreatable: boolean;
@@ -1,9 +1,9 @@
1
1
  import type React from "react";
2
2
  import type { DropdownPassthroughProps } from "./MultiSelectCombobox.types";
3
3
  interface MultiSelectDropdownProps extends DropdownPassthroughProps {
4
- labelForValue: (val: string) => string;
4
+ renderOption: (val: string) => React.ReactNode;
5
5
  testIdPrefix?: string;
6
6
  children?: React.ReactNode;
7
7
  }
8
- export declare function MultiSelectDropdown({ resolvedOptions, flatOptionsMap, isGrouped, isLoading, loadingMessage, emptyMessage, showCreateOption, labelForValue, testIdPrefix, hasMoreLazy, loaderCallbackRef, children, }: MultiSelectDropdownProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare function MultiSelectDropdown({ resolvedOptions, flatOptionsMap, isGrouped, isLoading, loadingMessage, emptyMessage, showCreateOption, renderOption, testIdPrefix, hasMoreLazy, loaderCallbackRef, children, }: MultiSelectDropdownProps): import("react/jsx-runtime").JSX.Element;
9
9
  export {};
@@ -1,9 +1,10 @@
1
+ import type React from "react";
1
2
  import type { OptionBase } from "./types";
2
3
  interface OptionItemProps {
3
4
  val: string;
4
5
  flatOptionsMap: Map<string, OptionBase>;
5
- labelForValue: (val: string) => string;
6
+ renderOption: (val: string) => React.ReactNode;
6
7
  testIdPrefix?: string;
7
8
  }
8
- export declare function OptionItem({ val, flatOptionsMap, labelForValue, testIdPrefix, }: OptionItemProps): import("react/jsx-runtime").JSX.Element;
9
+ export declare function OptionItem({ val, flatOptionsMap, renderOption, testIdPrefix, }: OptionItemProps): import("react/jsx-runtime").JSX.Element;
9
10
  export {};
@@ -14,6 +14,8 @@ export interface SelectComboboxProps {
14
14
  }[];
15
15
  /** Returns the display label for a given value string. */
16
16
  labelForValue: (val: string) => string;
17
+ /** Returns the ReactNode for rendering a value (dropdown row & trigger). */
18
+ renderOption: (val: string) => React.ReactNode;
17
19
  /** Whether the search input is visible. */
18
20
  isSearchable: boolean;
19
21
  /** Whether options are loaded asynchronously. */
@@ -1,3 +1,4 @@
1
+ import type React from "react";
1
2
  import type { MultiSelectProps } from "src/components/Select/types";
2
3
  export declare function useMultiSelectState(props: MultiSelectProps): {
3
4
  id: string;
@@ -22,10 +23,11 @@ export declare function useMultiSelectState(props: MultiSelectProps): {
22
23
  ariaDescribedBy: string | undefined;
23
24
  testIdPrefix: string | undefined;
24
25
  labelForValue: (val: string) => string;
26
+ renderOption: (val: string) => React.ReactNode;
25
27
  flatOptionsMap: Map<string, import("src/components/Select/types").OptionBase>;
26
28
  label: string;
27
29
  error: string;
28
- helpText: string | number | bigint | boolean | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | null | undefined> | null;
30
+ helpText: string | number | bigint | boolean | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | null;
29
31
  isAsync: boolean;
30
32
  resolvedOptions: import("src/components/Select/types").Option[];
31
33
  flatOptions: import("src/components/Select/types").OptionBase[];
@@ -1,3 +1,4 @@
1
+ import type React from "react";
1
2
  import type { SelectProps } from "src/components/Select/types";
2
3
  type SingleSelectProps = Extract<SelectProps, {
3
4
  isMulti?: false;
@@ -27,10 +28,11 @@ export declare function useSelectState(props: SingleSelectProps): {
27
28
  ariaDescribedBy: string | undefined;
28
29
  testIdPrefix: string | undefined;
29
30
  labelForValue: (val: string) => string;
31
+ renderOption: (val: string) => React.ReactNode;
30
32
  flatOptionsMap: Map<string, import("src/components/Select/types").OptionBase>;
31
33
  label: string;
32
34
  error: string;
33
- helpText: string | number | bigint | boolean | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | null | undefined> | null;
35
+ helpText: string | number | bigint | boolean | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | null;
34
36
  isDisabled: boolean;
35
37
  required: boolean;
36
38
  isSearchable: boolean;
@@ -116,6 +116,13 @@ interface SelectSharedProps {
116
116
  inputClassName?: string;
117
117
  /** Children rendered inside the dropdown (overrides `options`). */
118
118
  children?: React.ReactNode;
119
+ /**
120
+ * Customize how each option is rendered. Receives the matched option (looked
121
+ * up from `options` by value) and returns a ReactNode. Used in the dropdown
122
+ * list and in the trigger (single-select label / multi-select chips).
123
+ * String filtering still uses `option.label` for searchable behavior.
124
+ */
125
+ formatOptionLabel?: (option: SelectOptionBase) => React.ReactNode;
119
126
  }
120
127
  interface SingleSelectProps extends SelectSharedProps {
121
128
  /** When true, multiple values can be selected and the trigger shows chips. @default false */
@@ -1,4 +1,4 @@
1
- export { S as Select } from '../Select-BiyQTuiQ.js';
1
+ export { S as Select } from '../Select-Zr8sFnAC.js';
2
2
  import 'react/jsx-runtime';
3
3
  import 'react';
4
4
  import '../SelectFieldWrapper-CiBARDsn.js';
@@ -43,9 +43,9 @@ import '../primitives/Combobox.js';
43
43
  import '../input-group-BKkj65Uq.js';
44
44
  import '../input-1J5oQa1u.js';
45
45
  import '../textarea-B0vzA497.js';
46
+ import '../chevron-down-BNi0ntys.js';
46
47
  import '../check-Cpkv29p1.js';
47
48
  import '../x-_o2T3n6D.js';
48
- import '../chevron-down-BNi0ntys.js';
49
49
  import '../index-DZXbzIgC.js';
50
50
  import '../index-CSMSzzKM.js';
51
51
  import '../with-selector-Dv0G_V_o.js';
@@ -7,19 +7,19 @@ export { B as Badge } from '../Badge-DC6zxOwS.js';
7
7
  export { C as Callout } from '../Callout-NVYmCwJL.js';
8
8
  export { C as Checkbox } from '../Checkbox-m4rEnxUz.js';
9
9
  export { C as ColorPicker } from '../ColorPicker-ClnRUq9y.js';
10
- export { D as DataTable, u as useColumnOrdering, a as useColumnPinning, b as useColumnVisibility, c as useTablePagination, d as useTableSelection, e as useTableSort } from '../DataTable-BTdSpJfs.js';
11
- export { D as DatePicker } from '../DatePicker-kulToqfM.js';
10
+ export { D as DataTable, u as useColumnOrdering, a as useColumnPinning, b as useColumnVisibility, c as useTablePagination, d as useTableSelection, e as useTableSort } from '../DataTable-DP06B8C7.js';
11
+ export { D as DatePicker } from '../DatePicker-mdjh5u40.js';
12
12
  export { D as Dialog } from '../Dialog-BOcBeB8v.js';
13
13
  export { E as Empty } from '../Empty-Bfido_mq.js';
14
- export { I as Input } from '../Input-Bxs8n6xp.js';
14
+ export { I as Input } from '../Input-B7twzkUr.js';
15
15
  export { K as Kbd } from '../Kbd-CAIAs4OO.js';
16
16
  export { L as Label } from '../Label-mrNM2drW.js';
17
17
  export { M as MultiEmailInput } from '../MultiEmailInput-Du1964Ka.js';
18
- export { P as Pagination } from '../Pagination-C_X9kgc8.js';
18
+ export { P as Pagination } from '../Pagination-BRd3WPJ_.js';
19
19
  export { P as Popover } from '../Popover-C1FNlRtU.js';
20
20
  export { P as Progress } from '../Progress-DURemsl_.js';
21
21
  export { R as RadioGroup } from '../RadioGroup-BRAVPPc3.js';
22
- export { S as Select } from '../Select-BiyQTuiQ.js';
22
+ export { S as Select } from '../Select-Zr8sFnAC.js';
23
23
  export { S as Sheet } from '../Sheet-Bw8GVQPS.js';
24
24
  export { S as Slider } from '../Slider-DNcH5X7b.js';
25
25
  export { S as Spinner } from '../Spinner-DgV3mILN.js';
@@ -1,6 +1,7 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { forwardRef } from 'react';
3
3
  import { useFormikContext } from 'formik';
4
+ import { useTranslation } from 'react-i18next';
4
5
  import { c as cn } from '../utils-BJnb9o5c.js';
5
6
  import { FormikButton } from './Button.js';
6
7
  import { b as Button } from '../Button-DV9xCqlc.js';
@@ -13,7 +14,6 @@ import '../index-Bo3AAQJp.js';
13
14
  import '../index-CfriMyrd.js';
14
15
  import '../index-BtkPdosV.js';
15
16
  import '../primitives/Spinner.js';
16
- import 'react-i18next';
17
17
  import '../loader-circle-DycHUAWN.js';
18
18
  import '../createLucideIcon-C8ycilSN.js';
19
19
  import '../primitives/Tooltip.js';
@@ -42,14 +42,19 @@ const FormikActionBlock = forwardRef(
42
42
  isSubmitting: isSubmittingProp,
43
43
  position = "left"
44
44
  }, ref) => {
45
- const { handleReset, isSubmitting: isFormikSubmitting } = useFormikContext();
45
+ const { t } = useTranslation();
46
+ const {
47
+ handleReset,
48
+ isSubmitting: isFormikSubmitting,
49
+ dirty
50
+ } = useFormikContext();
46
51
  const isSubmitting = isSubmittingProp ?? isFormikSubmitting;
47
52
  const cancelButton = /* @__PURE__ */ jsx(
48
53
  Button,
49
54
  {
50
55
  "data-testid": "cancel-button",
51
56
  disabled: isSubmitting,
52
- label: "Cancel",
57
+ label: t("neetoui.actionBlock.cancel", "Cancel"),
53
58
  variant: "ghost",
54
59
  onClick: handleReset,
55
60
  onMouseDown: (e) => e.preventDefault(),
@@ -60,7 +65,8 @@ const FormikActionBlock = forwardRef(
60
65
  FormikButton,
61
66
  {
62
67
  "data-testid": "save-changes-button",
63
- label: "Save changes",
68
+ disabled: isSubmitting || !dirty,
69
+ label: t("neetoui.actionBlock.saveChanges", "Save changes"),
64
70
  type: "submit",
65
71
  ...submitButtonProps
66
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ActionBlock.js","sources":["../../src/formik/ActionBlock.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\n\nimport { useFormikContext } from \"formik\";\n\nimport { Button, type ButtonProps } from \"src/components/Button\";\nimport { cn } from \"src/shadcn/lib/utils\";\n\nimport { FormikButton } from \"./Button\";\n\nexport interface FormikActionBlockProps {\n /** Additional CSS class names for the wrapper. */\n className?: string;\n /** Props forwarded to the submit button. */\n submitButtonProps?: ButtonProps;\n /** Props forwarded to the cancel button. */\n cancelButtonProps?: ButtonProps;\n /**\n * Override the auto-computed submitting state (e.g. from React Query mutation).\n * Falls back to Formik's `isSubmitting` when not provided.\n */\n isSubmitting?: boolean;\n /** Alignment of the buttons. */\n position?: \"left\" | \"right\";\n}\n\nconst FormikActionBlock = forwardRef<HTMLDivElement, FormikActionBlockProps>(\n (\n {\n className,\n submitButtonProps,\n cancelButtonProps,\n isSubmitting: isSubmittingProp,\n position = \"left\",\n },\n ref\n ) => {\n const { handleReset, isSubmitting: isFormikSubmitting } =\n useFormikContext();\n\n const isSubmitting = isSubmittingProp ?? isFormikSubmitting;\n\n const cancelButton = (\n <Button\n data-testid=\"cancel-button\"\n disabled={isSubmitting}\n label=\"Cancel\"\n variant=\"ghost\"\n onClick={handleReset}\n onMouseDown={(e: React.MouseEvent) => e.preventDefault()}\n {...cancelButtonProps}\n />\n );\n\n const submitButton = (\n <FormikButton\n data-testid=\"save-changes-button\"\n label=\"Save changes\"\n type=\"submit\"\n {...submitButtonProps}\n />\n );\n\n return (\n <div\n ref={ref}\n className={cn(\n \"flex items-center gap-2\",\n position === \"right\" && \"justify-end\",\n className\n )}\n >\n {position === \"right\" ? (\n <>\n {cancelButton}\n {submitButton}\n </>\n ) : (\n <>\n {submitButton}\n {cancelButton}\n </>\n )}\n </div>\n );\n }\n);\n\nFormikActionBlock.displayName = \"FormikActionBlock\";\n\nexport { FormikActionBlock };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,MAAM,iBAAA,GAAoB,UAAA;AAAA,EACxB,CACE;AAAA,IACE,SAAA;AAAA,IACA,iBAAA;AAAA,IACA,iBAAA;AAAA,IACA,YAAA,EAAc,gBAAA;AAAA,IACd,QAAA,GAAW;AAAA,KAEb,GAAA,KACG;AACH,IAAA,MAAM,EAAE,WAAA,EAAa,YAAA,EAAc,kBAAA,KACjC,gBAAA,EAAiB;AAEnB,IAAA,MAAM,eAAe,gBAAA,IAAoB,kBAAA;AAEzC,IAAA,MAAM,YAAA,mBACJ,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,aAAA,EAAY,eAAA;AAAA,QACZ,QAAA,EAAU,YAAA;AAAA,QACV,KAAA,EAAM,QAAA;AAAA,QACN,OAAA,EAAQ,OAAA;AAAA,QACR,OAAA,EAAS,WAAA;AAAA,QACT,WAAA,EAAa,CAAC,CAAA,KAAwB,CAAA,CAAE,cAAA,EAAe;AAAA,QACtD,GAAG;AAAA;AAAA,KACN;AAGF,IAAA,MAAM,YAAA,mBACJ,GAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,aAAA,EAAY,qBAAA;AAAA,QACZ,KAAA,EAAM,cAAA;AAAA,QACN,IAAA,EAAK,QAAA;AAAA,QACJ,GAAG;AAAA;AAAA,KACN;AAGF,IAAA,uBACE,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA;AAAA,UACT,yBAAA;AAAA,UACA,aAAa,OAAA,IAAW,aAAA;AAAA,UACxB;AAAA,SACF;AAAA,QAEC,QAAA,EAAA,QAAA,KAAa,0BACZ,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,UAAA,YAAA;AAAA,UACA;AAAA,SAAA,EACH,oBAEA,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,UAAA,YAAA;AAAA,UACA;AAAA,SAAA,EACH;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AAEA,iBAAA,CAAkB,WAAA,GAAc,mBAAA;;;;"}
1
+ {"version":3,"file":"ActionBlock.js","sources":["../../src/formik/ActionBlock.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { Button, type ButtonProps } from \"src/components/Button\";\nimport { cn } from \"src/shadcn/lib/utils\";\n\nimport { FormikButton } from \"./Button\";\n\nexport interface FormikActionBlockProps {\n /** Additional CSS class names for the wrapper. */\n className?: string;\n /** Props forwarded to the submit button. */\n submitButtonProps?: ButtonProps;\n /** Props forwarded to the cancel button. */\n cancelButtonProps?: ButtonProps;\n /**\n * Override the auto-computed submitting state (e.g. from React Query mutation).\n * Falls back to Formik's `isSubmitting` when not provided.\n */\n isSubmitting?: boolean;\n /** Alignment of the buttons. */\n position?: \"left\" | \"right\";\n}\n\nconst FormikActionBlock = forwardRef<HTMLDivElement, FormikActionBlockProps>(\n (\n {\n className,\n submitButtonProps,\n cancelButtonProps,\n isSubmitting: isSubmittingProp,\n position = \"left\",\n },\n ref\n ) => {\n const { t } = useTranslation();\n const {\n handleReset,\n isSubmitting: isFormikSubmitting,\n dirty,\n } = useFormikContext();\n\n const isSubmitting = isSubmittingProp ?? isFormikSubmitting;\n\n const cancelButton = (\n <Button\n data-testid=\"cancel-button\"\n disabled={isSubmitting}\n label={t(\"neetoui.actionBlock.cancel\", \"Cancel\")}\n variant=\"ghost\"\n onClick={handleReset}\n onMouseDown={(e: React.MouseEvent) => e.preventDefault()}\n {...cancelButtonProps}\n />\n );\n\n const submitButton = (\n <FormikButton\n data-testid=\"save-changes-button\"\n disabled={isSubmitting || !dirty}\n label={t(\"neetoui.actionBlock.saveChanges\", \"Save changes\")}\n type=\"submit\"\n {...submitButtonProps}\n />\n );\n\n return (\n <div\n ref={ref}\n className={cn(\n \"flex items-center gap-2\",\n position === \"right\" && \"justify-end\",\n className\n )}\n >\n {position === \"right\" ? (\n <>\n {cancelButton}\n {submitButton}\n </>\n ) : (\n <>\n {submitButton}\n {cancelButton}\n </>\n )}\n </div>\n );\n }\n);\n\nFormikActionBlock.displayName = \"FormikActionBlock\";\n\nexport { FormikActionBlock };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,MAAM,iBAAA,GAAoB,UAAA;AAAA,EACxB,CACE;AAAA,IACE,SAAA;AAAA,IACA,iBAAA;AAAA,IACA,iBAAA;AAAA,IACA,YAAA,EAAc,gBAAA;AAAA,IACd,QAAA,GAAW;AAAA,KAEb,GAAA,KACG;AACH,IAAA,MAAM,EAAE,CAAA,EAAE,GAAI,cAAA,EAAe;AAC7B,IAAA,MAAM;AAAA,MACJ,WAAA;AAAA,MACA,YAAA,EAAc,kBAAA;AAAA,MACd;AAAA,QACE,gBAAA,EAAiB;AAErB,IAAA,MAAM,eAAe,gBAAA,IAAoB,kBAAA;AAEzC,IAAA,MAAM,YAAA,mBACJ,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,aAAA,EAAY,eAAA;AAAA,QACZ,QAAA,EAAU,YAAA;AAAA,QACV,KAAA,EAAO,CAAA,CAAE,4BAAA,EAA8B,QAAQ,CAAA;AAAA,QAC/C,OAAA,EAAQ,OAAA;AAAA,QACR,OAAA,EAAS,WAAA;AAAA,QACT,WAAA,EAAa,CAAC,CAAA,KAAwB,CAAA,CAAE,cAAA,EAAe;AAAA,QACtD,GAAG;AAAA;AAAA,KACN;AAGF,IAAA,MAAM,YAAA,mBACJ,GAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,aAAA,EAAY,qBAAA;AAAA,QACZ,QAAA,EAAU,gBAAgB,CAAC,KAAA;AAAA,QAC3B,KAAA,EAAO,CAAA,CAAE,iCAAA,EAAmC,cAAc,CAAA;AAAA,QAC1D,IAAA,EAAK,QAAA;AAAA,QACJ,GAAG;AAAA;AAAA,KACN;AAGF,IAAA,uBACE,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA;AAAA,UACT,yBAAA;AAAA,UACA,aAAa,OAAA,IAAW,aAAA;AAAA,UACxB;AAAA,SACF;AAAA,QAEC,QAAA,EAAA,QAAA,KAAa,0BACZ,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,UAAA,YAAA;AAAA,UACA;AAAA,SAAA,EACH,oBAEA,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,UAAA,YAAA;AAAA,UACA;AAAA,SAAA,EACH;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AAEA,iBAAA,CAAkB,WAAA,GAAc,mBAAA;;;;"}
@@ -2,7 +2,7 @@ import { jsx } from 'react/jsx-runtime';
2
2
  import { forwardRef } from 'react';
3
3
  import { Field, getIn } from 'formik';
4
4
  import { dissoc } from 'ramda';
5
- import { I as Input } from '../Input-Bxs8n6xp.js';
5
+ import { I as Input } from '../Input-B7twzkUr.js';
6
6
  import '../utils-BJnb9o5c.js';
7
7
  import '../primitives/Field.js';
8
8
  import '../HelpIcon-Cm3ZgoCx.js';