@bigbinary/neeto-atoms 1.0.117 → 1.0.119

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 (202) hide show
  1. package/dist/{Alert-BN00VOZx.js → Alert-D5GO59Aj.js} +2 -2
  2. package/dist/{Alert-BN00VOZx.js.map → Alert-D5GO59Aj.js.map} +1 -1
  3. package/dist/{Button-C4c_dj-f.js → Button-DkIQvxAe.js} +2 -1
  4. package/dist/Button-DkIQvxAe.js.map +1 -0
  5. package/dist/{Combobox-NgubHftk.js → Combobox-CCstgdEa.js} +27 -23
  6. package/dist/{Combobox-NgubHftk.js.map → Combobox-CCstgdEa.js.map} +1 -1
  7. package/dist/{DataTable-X455U4hi.js → DataTable-Dd2QcXL-.js} +2 -2
  8. package/dist/{DataTable-X455U4hi.js.map → DataTable-Dd2QcXL-.js.map} +1 -1
  9. package/dist/{DatePicker-BoXx1Wve.js → DatePicker-Ds_csFkl.js} +25 -2
  10. package/dist/DatePicker-Ds_csFkl.js.map +1 -0
  11. package/dist/{Empty-DINS0Uu4.js → Empty-Rbdjvttt.js} +2 -2
  12. package/dist/{Empty-DINS0Uu4.js.map → Empty-Rbdjvttt.js.map} +1 -1
  13. package/dist/{HelpIcon-xh488VXs.js → HelpIcon-EjtPpYCx.js} +2 -2
  14. package/dist/{HelpIcon-xh488VXs.js.map → HelpIcon-EjtPpYCx.js.map} +1 -1
  15. package/dist/{Input-W8foyOcS.js → Input-Dm5ILPH3.js} +10 -13
  16. package/dist/Input-Dm5ILPH3.js.map +1 -0
  17. package/dist/{Label-B-R4PNNq.js → Label-Cr83bru_.js} +2 -2
  18. package/dist/{Label-B-R4PNNq.js.map → Label-Cr83bru_.js.map} +1 -1
  19. package/dist/{Select-CLfVAG_p.js → Select-CLSJgvl6.js} +2 -2
  20. package/dist/{Select-CLfVAG_p.js.map → Select-CLSJgvl6.js.map} +1 -1
  21. package/dist/{button-CePY5zne.js → button-DTkEk06V.js} +2 -1
  22. package/dist/button-DTkEk06V.js.map +1 -0
  23. package/dist/cjs/{Alert-BTheamzj.js → Alert-CXPGm6RG.js} +2 -2
  24. package/dist/cjs/{Alert-BTheamzj.js.map → Alert-CXPGm6RG.js.map} +1 -1
  25. package/dist/cjs/{Button-DJSysuyG.js → Button-CeSFPW-p.js} +2 -1
  26. package/dist/cjs/Button-CeSFPW-p.js.map +1 -0
  27. package/dist/cjs/{Combobox-PAGcNUr6.js → Combobox-ChwUxTXb.js} +27 -23
  28. package/dist/cjs/{Combobox-PAGcNUr6.js.map → Combobox-ChwUxTXb.js.map} +1 -1
  29. package/dist/cjs/{DataTable-CnMgor8P.js → DataTable-DQXIJu3I.js} +2 -2
  30. package/dist/cjs/{DataTable-CnMgor8P.js.map → DataTable-DQXIJu3I.js.map} +1 -1
  31. package/dist/cjs/{DatePicker-DtmJ-VkV.js → DatePicker-ErDXIHLu.js} +25 -2
  32. package/dist/cjs/DatePicker-ErDXIHLu.js.map +1 -0
  33. package/dist/cjs/{Empty-Bqt-TucD.js → Empty-CPyvZsWq.js} +2 -2
  34. package/dist/cjs/{Empty-Bqt-TucD.js.map → Empty-CPyvZsWq.js.map} +1 -1
  35. package/dist/cjs/{HelpIcon-BF1ePUQf.js → HelpIcon-CmaOmNLN.js} +2 -2
  36. package/dist/cjs/{HelpIcon-BF1ePUQf.js.map → HelpIcon-CmaOmNLN.js.map} +1 -1
  37. package/dist/cjs/{Input-DIq7T9D0.js → Input-DFvMBpiU.js} +8 -11
  38. package/dist/cjs/Input-DFvMBpiU.js.map +1 -0
  39. package/dist/cjs/{Label-CpsdGBV8.js → Label-BVVCdGCQ.js} +2 -2
  40. package/dist/cjs/{Label-CpsdGBV8.js.map → Label-BVVCdGCQ.js.map} +1 -1
  41. package/dist/cjs/{Select-DFz2VIUv.js → Select-BjWAZwbk.js} +2 -2
  42. package/dist/cjs/{Select-DFz2VIUv.js.map → Select-BjWAZwbk.js.map} +1 -1
  43. package/dist/cjs/{button-CSBhDSDJ.js → button-CDZTqJzs.js} +2 -1
  44. package/dist/cjs/button-CDZTqJzs.js.map +1 -0
  45. package/dist/cjs/components/Alert.js +5 -4
  46. package/dist/cjs/components/Alert.js.map +1 -1
  47. package/dist/cjs/components/Button.js +2 -2
  48. package/dist/cjs/components/Checkbox.js +3 -3
  49. package/dist/cjs/components/ColorPicker.js +1 -1
  50. package/dist/cjs/components/DataTable.js +3 -3
  51. package/dist/cjs/components/DatePicker.js +4 -4
  52. package/dist/cjs/components/Dialog.js +3 -2
  53. package/dist/cjs/components/Dialog.js.map +1 -1
  54. package/dist/cjs/components/DropdownMenu.js +2 -2
  55. package/dist/cjs/components/Empty.js +3 -3
  56. package/dist/cjs/components/Input.js +5 -5
  57. package/dist/cjs/components/Label.js +4 -4
  58. package/dist/cjs/components/MultiEmailInput.js +3 -3
  59. package/dist/cjs/components/Pagination.js +1 -1
  60. package/dist/cjs/components/RadioGroup.js +3 -3
  61. package/dist/cjs/components/Select.js +7 -6
  62. package/dist/cjs/components/Select.js.map +1 -1
  63. package/dist/cjs/components/Sheet.js +3 -2
  64. package/dist/cjs/components/Sheet.js.map +1 -1
  65. package/dist/cjs/components/Slider.js +3 -3
  66. package/dist/cjs/components/Switch.js +3 -3
  67. package/dist/cjs/components/Textarea.js +3 -3
  68. package/dist/cjs/components/TimePicker.js +3 -3
  69. package/dist/cjs/components/TreeSelect.js +3 -3
  70. package/dist/cjs/components/index.js +15 -14
  71. package/dist/cjs/components/index.js.map +1 -1
  72. package/dist/cjs/{dialog-CGblgaX5.js → dialog-Bnk4GUFC.js} +2 -2
  73. package/dist/cjs/{dialog-CGblgaX5.js.map → dialog-Bnk4GUFC.js.map} +1 -1
  74. package/dist/cjs/formik/ActionBlock.js +2 -2
  75. package/dist/cjs/formik/BlockNavigation.js +4 -3
  76. package/dist/cjs/formik/BlockNavigation.js.map +1 -1
  77. package/dist/cjs/formik/Button.js +2 -2
  78. package/dist/cjs/formik/Checkbox.js +3 -3
  79. package/dist/cjs/formik/Input.js +5 -5
  80. package/dist/cjs/formik/MultiEmailInput.js +3 -3
  81. package/dist/cjs/formik/RadioGroup.js +3 -3
  82. package/dist/cjs/formik/Select.js +7 -6
  83. package/dist/cjs/formik/Select.js.map +1 -1
  84. package/dist/cjs/formik/Slider.js +3 -3
  85. package/dist/cjs/formik/Switch.js +3 -3
  86. package/dist/cjs/formik/Textarea.js +3 -3
  87. package/dist/cjs/formik/TreeSelect.js +3 -3
  88. package/dist/cjs/formik/index.js +9 -8
  89. package/dist/cjs/formik/index.js.map +1 -1
  90. package/dist/cjs/index.js +15 -14
  91. package/dist/cjs/index.js.map +1 -1
  92. package/dist/cjs/{input-group-DZ-c2jRZ.js → input-group-BQqwtQF2.js} +2 -2
  93. package/dist/cjs/{input-group-DZ-c2jRZ.js.map → input-group-BQqwtQF2.js.map} +1 -1
  94. package/dist/cjs/primitives/AlertDialog.js +8 -38
  95. package/dist/cjs/primitives/AlertDialog.js.map +1 -1
  96. package/dist/cjs/primitives/Button.js +1 -1
  97. package/dist/cjs/primitives/Calendar.js +1 -1
  98. package/dist/cjs/primitives/Carousel.js +1 -1
  99. package/dist/cjs/primitives/Combobox.js +4 -3
  100. package/dist/cjs/primitives/Combobox.js.map +1 -1
  101. package/dist/cjs/primitives/Command.js +3 -3
  102. package/dist/cjs/primitives/Dialog.js +4 -2
  103. package/dist/cjs/primitives/Dialog.js.map +1 -1
  104. package/dist/cjs/primitives/Field.js +3 -3
  105. package/dist/cjs/primitives/InputGroup.js +2 -2
  106. package/dist/cjs/primitives/Pagination.js +1 -1
  107. package/dist/cjs/primitives/Sheet.js +4 -2
  108. package/dist/cjs/primitives/Sheet.js.map +1 -1
  109. package/dist/cjs/primitives/Sidebar.js +2 -2
  110. package/dist/cjs/primitives/index.js +8 -7
  111. package/dist/cjs/primitives/index.js.map +1 -1
  112. package/dist/cjs/{sheet-BMQ9juND.js → sheet-CQ82jJkC.js} +2 -2
  113. package/dist/cjs/{sheet-BMQ9juND.js.map → sheet-CQ82jJkC.js.map} +1 -1
  114. package/dist/cjs/useAriaHiddenCleanup-CT0To2AH.js +47 -0
  115. package/dist/cjs/useAriaHiddenCleanup-CT0To2AH.js.map +1 -0
  116. package/dist/components/Alert.js +5 -4
  117. package/dist/components/Alert.js.map +1 -1
  118. package/dist/components/Button/Button.d.ts +1 -1
  119. package/dist/components/Button.js +2 -2
  120. package/dist/components/Checkbox.js +3 -3
  121. package/dist/components/ColorPicker.js +1 -1
  122. package/dist/components/DataTable.js +3 -3
  123. package/dist/components/DatePicker/DatePickerFooter.d.ts +1 -0
  124. package/dist/components/DatePicker.js +4 -4
  125. package/dist/components/Dialog.js +3 -2
  126. package/dist/components/Dialog.js.map +1 -1
  127. package/dist/components/DropdownMenu.js +2 -2
  128. package/dist/components/Empty.js +3 -3
  129. package/dist/components/Input/Input.d.ts +6 -1
  130. package/dist/components/Input.js +5 -5
  131. package/dist/components/Label.js +4 -4
  132. package/dist/components/MultiEmailInput.js +3 -3
  133. package/dist/components/Pagination.js +1 -1
  134. package/dist/components/RadioGroup.js +3 -3
  135. package/dist/components/Select.js +7 -6
  136. package/dist/components/Select.js.map +1 -1
  137. package/dist/components/Sheet.js +3 -2
  138. package/dist/components/Sheet.js.map +1 -1
  139. package/dist/components/Slider.js +3 -3
  140. package/dist/components/Switch.js +3 -3
  141. package/dist/components/Textarea.js +3 -3
  142. package/dist/components/TimePicker.js +3 -3
  143. package/dist/components/TreeSelect.js +3 -3
  144. package/dist/components/index.js +15 -14
  145. package/dist/components/index.js.map +1 -1
  146. package/dist/{dialog-CqXuhXNS.js → dialog-BG8Tjl78.js} +2 -2
  147. package/dist/{dialog-CqXuhXNS.js.map → dialog-BG8Tjl78.js.map} +1 -1
  148. package/dist/formik/ActionBlock.js +2 -2
  149. package/dist/formik/BlockNavigation.js +4 -3
  150. package/dist/formik/BlockNavigation.js.map +1 -1
  151. package/dist/formik/Button.js +2 -2
  152. package/dist/formik/Checkbox.js +3 -3
  153. package/dist/formik/Input.js +5 -5
  154. package/dist/formik/MultiEmailInput.js +3 -3
  155. package/dist/formik/RadioGroup.js +3 -3
  156. package/dist/formik/Select.js +7 -6
  157. package/dist/formik/Select.js.map +1 -1
  158. package/dist/formik/Slider.js +3 -3
  159. package/dist/formik/Switch.js +3 -3
  160. package/dist/formik/Textarea.js +3 -3
  161. package/dist/formik/TreeSelect.js +3 -3
  162. package/dist/formik/index.js +9 -8
  163. package/dist/formik/index.js.map +1 -1
  164. package/dist/hooks/useAriaHiddenCleanup.d.ts +20 -0
  165. package/dist/index.css +6 -0
  166. package/dist/index.js +15 -14
  167. package/dist/index.js.map +1 -1
  168. package/dist/{input-group-DuITGkyB.js → input-group-Ba2bJ2DW.js} +2 -2
  169. package/dist/{input-group-DuITGkyB.js.map → input-group-Ba2bJ2DW.js.map} +1 -1
  170. package/dist/primitives/AlertDialog.js +8 -38
  171. package/dist/primitives/AlertDialog.js.map +1 -1
  172. package/dist/primitives/Button.d.ts +1 -1
  173. package/dist/primitives/Button.js +2 -2
  174. package/dist/primitives/Calendar.js +1 -1
  175. package/dist/primitives/Carousel.js +1 -1
  176. package/dist/primitives/Combobox.js +4 -3
  177. package/dist/primitives/Combobox.js.map +1 -1
  178. package/dist/primitives/Command.js +3 -3
  179. package/dist/primitives/Dialog.js +4 -2
  180. package/dist/primitives/Dialog.js.map +1 -1
  181. package/dist/primitives/Field.js +3 -3
  182. package/dist/primitives/InputGroup.js +2 -2
  183. package/dist/primitives/Pagination.js +1 -1
  184. package/dist/primitives/Sheet.js +4 -2
  185. package/dist/primitives/Sheet.js.map +1 -1
  186. package/dist/primitives/Sidebar.js +2 -2
  187. package/dist/primitives/index.js +8 -7
  188. package/dist/primitives/index.js.map +1 -1
  189. package/dist/shadcn/components/button.d.ts +2 -2
  190. package/dist/{sheet-B9oDGvvX.js → sheet-BD8c3_Va.js} +2 -2
  191. package/dist/{sheet-B9oDGvvX.js.map → sheet-BD8c3_Va.js.map} +1 -1
  192. package/dist/useAriaHiddenCleanup-BIUbPJ6V.js +45 -0
  193. package/dist/useAriaHiddenCleanup-BIUbPJ6V.js.map +1 -0
  194. package/package.json +2 -1
  195. package/dist/Button-C4c_dj-f.js.map +0 -1
  196. package/dist/DatePicker-BoXx1Wve.js.map +0 -1
  197. package/dist/Input-W8foyOcS.js.map +0 -1
  198. package/dist/button-CePY5zne.js.map +0 -1
  199. package/dist/cjs/Button-DJSysuyG.js.map +0 -1
  200. package/dist/cjs/DatePicker-DtmJ-VkV.js.map +0 -1
  201. package/dist/cjs/Input-DIq7T9D0.js.map +0 -1
  202. package/dist/cjs/button-CSBhDSDJ.js.map +0 -1
@@ -3,7 +3,7 @@ import { forwardRef, useId, useRef } from 'react';
3
3
  import { useTranslation } from 'react-i18next';
4
4
  import { c as cn } from './utils-BJnb9o5c.js';
5
5
  import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter } from './primitives/Dialog.js';
6
- import { b as Button } from './Button-C4c_dj-f.js';
6
+ import { b as Button } from './Button-DkIQvxAe.js';
7
7
 
8
8
  const SIZE_CLASS_MAP = {
9
9
  small: "sm:max-w-xs",
@@ -125,4 +125,4 @@ const Alert = forwardRef(
125
125
  Alert.displayName = "Alert";
126
126
 
127
127
  export { Alert as A };
128
- //# sourceMappingURL=Alert-BN00VOZx.js.map
128
+ //# sourceMappingURL=Alert-D5GO59Aj.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Alert-BN00VOZx.js","sources":["../src/components/Alert/constants.ts","../src/components/Alert/Alert.tsx"],"sourcesContent":["import type { AlertSize, AlertStyle } from \"./Alert\";\n\nexport const SIZE_CLASS_MAP: Record<AlertSize, string> = {\n small: \"sm:max-w-xs\",\n medium: \"sm:max-w-sm\",\n large: \"sm:max-w-md\",\n};\n\nexport const STYLE_VARIANT_MAP: Record<AlertStyle, \"destructive\" | \"default\"> =\n {\n danger: \"destructive\",\n warning: \"default\",\n };\n","import {\n forwardRef,\n useId,\n useRef,\n type ReactNode,\n type RefObject,\n} from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from \"src/primitives/Dialog\";\nimport { Button } from \"src/components/Button\";\n\nimport { SIZE_CLASS_MAP, STYLE_VARIANT_MAP } from \"./constants\";\n\nexport type AlertStyle = \"danger\" | \"warning\";\nexport type AlertSize = \"small\" | \"medium\" | \"large\";\ntype InitialFocusElement = \"submit\" | \"cancel\";\n\n/** Radix Dialog.Content props we forward via ...otherProps. */\ntype DialogContentProps = React.ComponentProps<typeof DialogContent>;\n\nexport interface AlertProps extends Omit<\n DialogContentProps,\n | \"children\"\n | \"role\"\n | \"showCloseButton\"\n | \"className\"\n | \"style\"\n | \"onEscapeKeyDown\"\n | \"onInteractOutside\"\n> {\n /** Size of the alert dialog. */\n size?: AlertSize;\n /** Whether the alert is open. */\n isOpen?: boolean;\n /** Whether the submit action is in progress. */\n isSubmitting?: boolean;\n /** Additional CSS class names applied to the dialog content. */\n className?: string;\n /** Close on pressing the Esc key. */\n closeOnEsc?: boolean;\n /** Show the close button. */\n closeButton?: boolean;\n /** Additional CSS class names applied to the backdrop/overlay. */\n backdropClassName?: string;\n /** Close on clicking outside the dialog. */\n closeOnOutsideClick?: boolean;\n /** Callback invoked when the alert is closed. */\n onClose?: () => void;\n /** Callback invoked when the submit button is clicked. */\n onSubmit?: () => void;\n /** Title text of the alert. */\n title?: string;\n /** Message content of the alert. */\n message?: ReactNode;\n /** Label for the submit button. */\n submitButtonLabel?: string;\n /** Label for the cancel button. */\n cancelButtonLabel?: string;\n /** Hide the cancel button. */\n hideCancelButton?: boolean;\n /** Visual style of the submit button. */\n style?: AlertStyle;\n /** Ref of the element to receive focus when the alert opens. */\n initialFocusRef?: RefObject<HTMLElement | null>;\n /** Which built-in button receives focus on open: \"submit\" or \"cancel\". */\n initialFocusElement?: InitialFocusElement;\n /** Radix Dialog `modal` prop — controls modal vs non-modal behaviour. */\n modal?: boolean;\n /** Radix Dialog `defaultOpen` prop. */\n defaultOpen?: boolean;\n}\n\nconst Alert = forwardRef<HTMLDivElement, AlertProps>(\n (\n {\n size = \"medium\",\n isOpen = false,\n isSubmitting = false,\n className,\n closeOnEsc = true,\n closeButton = true,\n backdropClassName,\n closeOnOutsideClick = true,\n onClose = () => {},\n onSubmit = () => {},\n title = \"\",\n message = \"\",\n submitButtonLabel: submitButtonLabelProp,\n cancelButtonLabel: cancelButtonLabelProp,\n hideCancelButton = false,\n style = \"danger\",\n initialFocusRef,\n initialFocusElement,\n modal,\n defaultOpen,\n ...otherProps\n },\n ref\n ) => {\n const { t } = useTranslation();\n const submitButtonLabel =\n submitButtonLabelProp ?? t(\"neetoatoms.alert.continue\", \"Continue\");\n const cancelButtonLabel =\n cancelButtonLabelProp ?? t(\"neetoatoms.alert.cancel\", \"Cancel\");\n const baseId = useId();\n const titleId = `alert-title-${baseId}`;\n const messageId = `alert-message-${baseId}`;\n const submitButtonRef = useRef<HTMLButtonElement>(null);\n const cancelButtonRef = useRef<HTMLButtonElement>(null);\n\n // Base UI consolidates the per-interaction dismiss callbacks into\n // onOpenChange's eventDetails, and takes initial focus as a ref.\n const handleOpenChange: React.ComponentProps<\n typeof Dialog\n >[\"onOpenChange\"] = (open, eventDetails) => {\n if (open) return;\n if (\n (eventDetails.reason === \"escape-key\" && !closeOnEsc) ||\n (eventDetails.reason === \"outside-press\" && !closeOnOutsideClick)\n ) {\n eventDetails.cancel();\n\n return;\n }\n onClose();\n };\n\n // Custom focus ref takes highest priority, then the named button\n const initialFocus =\n initialFocusRef ??\n (initialFocusElement === \"submit\"\n ? submitButtonRef\n : initialFocusElement === \"cancel\"\n ? cancelButtonRef\n : undefined);\n\n return (\n <Dialog\n open={isOpen}\n onOpenChange={handleOpenChange}\n modal={modal}\n defaultOpen={defaultOpen}\n >\n <DialogContent\n ref={ref}\n role=\"alertdialog\"\n aria-labelledby={title ? titleId : undefined}\n aria-describedby={message ? messageId : undefined}\n showCloseButton={closeButton}\n overlayClassName={backdropClassName}\n initialFocus={initialFocus ?? undefined}\n className={cn(SIZE_CLASS_MAP[size], className)}\n data-testid=\"alert-box\"\n {...otherProps}\n >\n <DialogHeader>\n <DialogTitle\n id={titleId}\n data-testid=\"alert-title\"\n className=\"text-2xl font-semibold\"\n >\n {title}\n </DialogTitle>\n {message && (\n <DialogDescription id={messageId} data-testid=\"alert-message\">\n {message}\n </DialogDescription>\n )}\n </DialogHeader>\n <DialogFooter>\n {!hideCancelButton && (\n <Button\n ref={cancelButtonRef}\n variant=\"outline\"\n label={cancelButtonLabel}\n onClick={onClose}\n data-testid=\"alert-cancel-button\"\n />\n )}\n <Button\n ref={submitButtonRef}\n variant={STYLE_VARIANT_MAP[style]}\n label={submitButtonLabel}\n loading={isSubmitting}\n disabled={isSubmitting || !isOpen}\n onClick={onSubmit}\n data-testid=\"alert-submit-button\"\n />\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n }\n);\n\nAlert.displayName = \"Alert\";\n\nexport { Alert };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Alert-D5GO59Aj.js","sources":["../src/components/Alert/constants.ts","../src/components/Alert/Alert.tsx"],"sourcesContent":["import type { AlertSize, AlertStyle } from \"./Alert\";\n\nexport const SIZE_CLASS_MAP: Record<AlertSize, string> = {\n small: \"sm:max-w-xs\",\n medium: \"sm:max-w-sm\",\n large: \"sm:max-w-md\",\n};\n\nexport const STYLE_VARIANT_MAP: Record<AlertStyle, \"destructive\" | \"default\"> =\n {\n danger: \"destructive\",\n warning: \"default\",\n };\n","import {\n forwardRef,\n useId,\n useRef,\n type ReactNode,\n type RefObject,\n} from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from \"src/primitives/Dialog\";\nimport { Button } from \"src/components/Button\";\n\nimport { SIZE_CLASS_MAP, STYLE_VARIANT_MAP } from \"./constants\";\n\nexport type AlertStyle = \"danger\" | \"warning\";\nexport type AlertSize = \"small\" | \"medium\" | \"large\";\ntype InitialFocusElement = \"submit\" | \"cancel\";\n\n/** Radix Dialog.Content props we forward via ...otherProps. */\ntype DialogContentProps = React.ComponentProps<typeof DialogContent>;\n\nexport interface AlertProps extends Omit<\n DialogContentProps,\n | \"children\"\n | \"role\"\n | \"showCloseButton\"\n | \"className\"\n | \"style\"\n | \"onEscapeKeyDown\"\n | \"onInteractOutside\"\n> {\n /** Size of the alert dialog. */\n size?: AlertSize;\n /** Whether the alert is open. */\n isOpen?: boolean;\n /** Whether the submit action is in progress. */\n isSubmitting?: boolean;\n /** Additional CSS class names applied to the dialog content. */\n className?: string;\n /** Close on pressing the Esc key. */\n closeOnEsc?: boolean;\n /** Show the close button. */\n closeButton?: boolean;\n /** Additional CSS class names applied to the backdrop/overlay. */\n backdropClassName?: string;\n /** Close on clicking outside the dialog. */\n closeOnOutsideClick?: boolean;\n /** Callback invoked when the alert is closed. */\n onClose?: () => void;\n /** Callback invoked when the submit button is clicked. */\n onSubmit?: () => void;\n /** Title text of the alert. */\n title?: string;\n /** Message content of the alert. */\n message?: ReactNode;\n /** Label for the submit button. */\n submitButtonLabel?: string;\n /** Label for the cancel button. */\n cancelButtonLabel?: string;\n /** Hide the cancel button. */\n hideCancelButton?: boolean;\n /** Visual style of the submit button. */\n style?: AlertStyle;\n /** Ref of the element to receive focus when the alert opens. */\n initialFocusRef?: RefObject<HTMLElement | null>;\n /** Which built-in button receives focus on open: \"submit\" or \"cancel\". */\n initialFocusElement?: InitialFocusElement;\n /** Radix Dialog `modal` prop — controls modal vs non-modal behaviour. */\n modal?: boolean;\n /** Radix Dialog `defaultOpen` prop. */\n defaultOpen?: boolean;\n}\n\nconst Alert = forwardRef<HTMLDivElement, AlertProps>(\n (\n {\n size = \"medium\",\n isOpen = false,\n isSubmitting = false,\n className,\n closeOnEsc = true,\n closeButton = true,\n backdropClassName,\n closeOnOutsideClick = true,\n onClose = () => {},\n onSubmit = () => {},\n title = \"\",\n message = \"\",\n submitButtonLabel: submitButtonLabelProp,\n cancelButtonLabel: cancelButtonLabelProp,\n hideCancelButton = false,\n style = \"danger\",\n initialFocusRef,\n initialFocusElement,\n modal,\n defaultOpen,\n ...otherProps\n },\n ref\n ) => {\n const { t } = useTranslation();\n const submitButtonLabel =\n submitButtonLabelProp ?? t(\"neetoatoms.alert.continue\", \"Continue\");\n const cancelButtonLabel =\n cancelButtonLabelProp ?? t(\"neetoatoms.alert.cancel\", \"Cancel\");\n const baseId = useId();\n const titleId = `alert-title-${baseId}`;\n const messageId = `alert-message-${baseId}`;\n const submitButtonRef = useRef<HTMLButtonElement>(null);\n const cancelButtonRef = useRef<HTMLButtonElement>(null);\n\n // Base UI consolidates the per-interaction dismiss callbacks into\n // onOpenChange's eventDetails, and takes initial focus as a ref.\n const handleOpenChange: React.ComponentProps<\n typeof Dialog\n >[\"onOpenChange\"] = (open, eventDetails) => {\n if (open) return;\n if (\n (eventDetails.reason === \"escape-key\" && !closeOnEsc) ||\n (eventDetails.reason === \"outside-press\" && !closeOnOutsideClick)\n ) {\n eventDetails.cancel();\n\n return;\n }\n onClose();\n };\n\n // Custom focus ref takes highest priority, then the named button\n const initialFocus =\n initialFocusRef ??\n (initialFocusElement === \"submit\"\n ? submitButtonRef\n : initialFocusElement === \"cancel\"\n ? cancelButtonRef\n : undefined);\n\n return (\n <Dialog\n open={isOpen}\n onOpenChange={handleOpenChange}\n modal={modal}\n defaultOpen={defaultOpen}\n >\n <DialogContent\n ref={ref}\n role=\"alertdialog\"\n aria-labelledby={title ? titleId : undefined}\n aria-describedby={message ? messageId : undefined}\n showCloseButton={closeButton}\n overlayClassName={backdropClassName}\n initialFocus={initialFocus ?? undefined}\n className={cn(SIZE_CLASS_MAP[size], className)}\n data-testid=\"alert-box\"\n {...otherProps}\n >\n <DialogHeader>\n <DialogTitle\n id={titleId}\n data-testid=\"alert-title\"\n className=\"text-2xl font-semibold\"\n >\n {title}\n </DialogTitle>\n {message && (\n <DialogDescription id={messageId} data-testid=\"alert-message\">\n {message}\n </DialogDescription>\n )}\n </DialogHeader>\n <DialogFooter>\n {!hideCancelButton && (\n <Button\n ref={cancelButtonRef}\n variant=\"outline\"\n label={cancelButtonLabel}\n onClick={onClose}\n data-testid=\"alert-cancel-button\"\n />\n )}\n <Button\n ref={submitButtonRef}\n variant={STYLE_VARIANT_MAP[style]}\n label={submitButtonLabel}\n loading={isSubmitting}\n disabled={isSubmitting || !isOpen}\n onClick={onSubmit}\n data-testid=\"alert-submit-button\"\n />\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n }\n);\n\nAlert.displayName = \"Alert\";\n\nexport { Alert };\n"],"names":[],"mappings":"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"}
@@ -40,6 +40,7 @@ const TOOLTIP_SIDE_MAP = {
40
40
 
41
41
  const BUTTON_VARIANTS = [
42
42
  "default",
43
+ "brand",
43
44
  "secondary",
44
45
  "destructive",
45
46
  "destructive-soft",
@@ -212,4 +213,4 @@ const Button = forwardRef(
212
213
  Button.displayName = "Button";
213
214
 
214
215
  export { BUTTON_SIZES as B, BUTTON_VARIANTS as a, Button as b };
215
- //# sourceMappingURL=Button-C4c_dj-f.js.map
216
+ //# sourceMappingURL=Button-DkIQvxAe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button-DkIQvxAe.js","sources":["../src/components/Button/constants.ts","../src/components/Button/Button.tsx"],"sourcesContent":["type ButtonSize =\n | \"default\"\n | \"xs\"\n | \"sm\"\n | \"lg\"\n | \"icon\"\n | \"icon-xs\"\n | \"icon-sm\"\n | \"icon-lg\";\n\nexport const ICON_ONLY_SIZE_MAP: Partial<Record<ButtonSize, ButtonSize>> = {\n xs: \"icon-xs\",\n sm: \"icon-sm\",\n default: \"icon\",\n lg: \"icon-lg\",\n};\n\nexport const SPINNER_SIZE_MAP: Record<ButtonSize, string> = {\n xs: \"size-3\",\n sm: \"size-3.5\",\n default: \"size-3.5\",\n lg: \"size-4\",\n icon: \"size-3.5\",\n \"icon-xs\": \"size-3\",\n \"icon-sm\": \"size-3.5\",\n \"icon-lg\": \"size-4\",\n};\n\n// Map NeetoUI tooltip `position` values to Radix side values\nexport const TOOLTIP_SIDE_MAP: Record<\n string,\n \"top\" | \"right\" | \"bottom\" | \"left\"\n> = {\n top: \"top\",\n bottom: \"bottom\",\n left: \"left\",\n right: \"right\",\n \"top-start\": \"top\",\n \"top-end\": \"top\",\n \"bottom-start\": \"bottom\",\n \"bottom-end\": \"bottom\",\n \"left-start\": \"left\",\n \"left-end\": \"left\",\n \"right-start\": \"right\",\n \"right-end\": \"right\",\n};\n","import React, { forwardRef, type ReactNode, type MouseEvent } from \"react\";\n\nimport { Link } from \"react-router-dom\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { renderIcon, type IconProp } from \"src/shared/renderIcon\";\nimport { Button as PrimitiveButton } from \"src/primitives/Button\";\nimport { Spinner } from \"src/primitives/Spinner\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"src/primitives/Tooltip\";\n\nimport {\n ICON_ONLY_SIZE_MAP,\n SPINNER_SIZE_MAP,\n TOOLTIP_SIDE_MAP,\n} from \"./constants\";\n\nexport const BUTTON_VARIANTS = [\n \"default\",\n \"brand\",\n \"secondary\",\n \"destructive\",\n \"destructive-soft\",\n \"outline\",\n \"ghost\",\n \"link\",\n] as const;\n\nexport const BUTTON_SIZES = [\n \"default\",\n \"xs\",\n \"sm\",\n \"lg\",\n \"icon\",\n \"icon-xs\",\n \"icon-sm\",\n \"icon-lg\",\n] as const;\n\nexport type ButtonVariant = (typeof BUTTON_VARIANTS)[number];\nexport type ButtonSize = (typeof BUTTON_SIZES)[number];\n\ntype IconPosition = \"left\" | \"right\";\n\ntype ButtonType = \"button\" | \"reset\" | \"submit\";\n\ninterface ButtonTooltipProps {\n content?: ReactNode;\n position?: string;\n disabled?: boolean;\n}\n\nexport interface ButtonProps extends Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n \"type\" | \"disabled\" | \"className\" | \"children\" | \"onClick\"\n> {\n /** Visual variant of the button. */\n variant?: ButtonVariant;\n /** Size of the button. */\n size?: ButtonSize;\n /** Text label rendered inside the button. */\n label?: string;\n /** Icon component, element, or class-name string. */\n icon?: IconProp;\n /** Placement of the icon relative to the label. */\n iconPosition?: IconPosition;\n /** Show a loading spinner and prevent clicks. */\n loading?: boolean;\n /** Disable the button. */\n disabled?: boolean;\n /** Click handler. */\n onClick?: (e: MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void;\n /** Internal route (react-router `Link`). */\n to?: string;\n /** External URL (renders an anchor tag). */\n href?: string;\n /** HTML button type attribute. */\n type?: ButtonType;\n /** Stretch the button to fill its container. */\n fullWidth?: boolean;\n /** Additional CSS class names. */\n className?: string;\n /** Props forwarded to a wrapping Tooltip. */\n tooltipProps?: ButtonTooltipProps | null;\n /** Render as a custom element (polymorphic). */\n asChild?: boolean;\n /**\n * Content rendered after the label and any right-side icon (e.g., a trailing\n * chevron, badge, or shortcut indicator). Auto-wrapped with\n * `data-icon=\"inline-end\"` so the button's compact end-padding kicks in.\n */\n trailing?: ReactNode;\n /** Children rendered inside the button (fallback for `label`). */\n children?: ReactNode;\n}\n\nconst Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n variant = \"default\",\n size = \"default\",\n label,\n icon = null,\n iconPosition = \"right\",\n loading = false,\n disabled = false,\n onClick,\n to,\n href,\n type = \"button\",\n fullWidth = false,\n className,\n tooltipProps = null,\n asChild = false,\n trailing,\n children,\n ...otherProps\n },\n ref\n ) => {\n const isIconSize = size.startsWith(\"icon\");\n const renderLabel = isIconSize ? null : label || children;\n const isIconOnly = !renderLabel && !!icon;\n const resolvedSize = isIconOnly ? (ICON_ONLY_SIZE_MAP[size] ?? size) : size;\n\n // --- Loading / disabled state ---\n const isDisabled = disabled || loading;\n\n // --- Click handler ---\n const handleClick = (\n e: MouseEvent<HTMLButtonElement | HTMLAnchorElement>\n ) => {\n if (loading || disabled) {\n e.preventDefault();\n return;\n }\n onClick?.(e);\n };\n\n // --- Icon elements ---\n const iconElement = icon ? renderIcon(icon) : null;\n\n // --- Build the inner content ---\n const buttonContent = (\n <>\n {loading && (\n <span className=\"absolute inset-0 flex items-center justify-center\">\n <Spinner\n aria-hidden=\"true\"\n className={SPINNER_SIZE_MAP[resolvedSize]}\n />\n </span>\n )}\n <span\n className={cn(\n \"inline-flex items-center gap-1.5\",\n loading && \"invisible\"\n )}\n >\n {iconPosition === \"left\" && iconElement && (\n <span data-icon=\"inline-start\">{iconElement}</span>\n )}\n {renderLabel && <span>{renderLabel}</span>}\n {iconPosition === \"right\" && iconElement && (\n <span data-icon=\"inline-end\">{iconElement}</span>\n )}\n {trailing && <span data-icon=\"inline-end\">{trailing}</span>}\n </span>\n </>\n );\n\n // --- Merged className ---\n const mergedClassName = cn(\n fullWidth && \"w-full\",\n loading && \"relative pointer-events-none\",\n variant === \"link\" && \"[table_&]:max-w-full [table_&]:whitespace-normal\",\n className\n );\n\n // --- Determine render element ---\n let buttonElement: ReactNode;\n\n if (asChild) {\n buttonElement = (\n <PrimitiveButton\n ref={ref}\n asChild\n variant={variant}\n size={resolvedSize}\n className={mergedClassName}\n disabled={isDisabled}\n {...otherProps}\n >\n {children}\n </PrimitiveButton>\n );\n } else if (!disabled && to) {\n buttonElement = (\n <PrimitiveButton\n asChild\n variant={variant}\n size={resolvedSize}\n className={mergedClassName}\n disabled={isDisabled}\n {...otherProps}\n >\n <Link\n innerRef={ref as React.Ref<HTMLAnchorElement>}\n to={to}\n onClick={handleClick}\n >\n {buttonContent}\n </Link>\n </PrimitiveButton>\n );\n } else if (!disabled && href) {\n buttonElement = (\n <PrimitiveButton\n asChild\n variant={variant}\n size={resolvedSize}\n className={mergedClassName}\n disabled={isDisabled}\n {...otherProps}\n >\n <a\n ref={ref as React.Ref<HTMLAnchorElement>}\n href={href}\n onClick={handleClick}\n >\n {buttonContent}\n </a>\n </PrimitiveButton>\n );\n } else {\n buttonElement = (\n <PrimitiveButton\n ref={ref}\n type={type}\n variant={variant}\n size={resolvedSize}\n className={mergedClassName}\n disabled={isDisabled}\n onClick={handleClick}\n {...otherProps}\n >\n {buttonContent}\n </PrimitiveButton>\n );\n }\n\n // --- Tooltip wrapper ---\n if (tooltipProps) {\n const { content, position, disabled: tooltipDisabled } = tooltipProps;\n\n if (tooltipDisabled || !content) {\n return <>{buttonElement}</>;\n }\n\n const side = position ? TOOLTIP_SIDE_MAP[position] : undefined;\n\n // Wrap disabled buttons in a span so tooltip still triggers\n const triggerContent = isDisabled ? (\n <span className=\"inline-flex\">{buttonElement}</span>\n ) : (\n buttonElement\n );\n\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>{triggerContent}</TooltipTrigger>\n <TooltipContent data-testid=\"tooltip-box\" side={side}>\n {content}\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n }\n\n return <>{buttonElement}</>;\n }\n);\n\nButton.displayName = \"Button\";\n\nexport { Button };\n"],"names":["PrimitiveButton"],"mappings":"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"}
@@ -2,8 +2,9 @@ import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import React__default from 'react';
4
4
  import { c as cn } from './utils-BJnb9o5c.js';
5
- import { B as Button } from './button-CePY5zne.js';
6
- import { b as InputGroup, I as InputGroupInput, c as InputGroupAddon, e as InputGroupButton } from './input-group-DuITGkyB.js';
5
+ import { B as Button } from './button-DTkEk06V.js';
6
+ import { A as AriaHiddenCleanup } from './useAriaHiddenCleanup-BIUbPJ6V.js';
7
+ import { b as InputGroup, I as InputGroupInput, c as InputGroupAddon, e as InputGroupButton } from './input-group-Ba2bJ2DW.js';
7
8
  import { C as ChevronDown } from './chevron-down-BNi0ntys.js';
8
9
  import { X } from './x-_o2T3n6D.js';
9
10
  import { C as Check } from './check-Cpkv29p1.js';
@@ -5250,26 +5251,29 @@ function ComboboxContent$1({
5250
5251
  anchor,
5251
5252
  ...props
5252
5253
  }) {
5253
- return /* @__PURE__ */ jsx(ComboboxPortal, { children: /* @__PURE__ */ jsx(
5254
- ComboboxPositioner,
5255
- {
5256
- side,
5257
- sideOffset,
5258
- align,
5259
- alignOffset,
5260
- anchor,
5261
- className: "pointer-events-auto isolate z-50",
5262
- children: /* @__PURE__ */ jsx(
5263
- ComboboxPopup,
5264
- {
5265
- "data-slot": "combobox-content",
5266
- "data-chips": !!anchor,
5267
- className: cn("group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[chips=true]:min-w-(--anchor-width) data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className),
5268
- ...props
5269
- }
5270
- )
5271
- }
5272
- ) });
5254
+ return /* @__PURE__ */ jsxs(ComboboxPortal, { children: [
5255
+ /* @__PURE__ */ jsx(AriaHiddenCleanup, {}),
5256
+ /* @__PURE__ */ jsx(
5257
+ ComboboxPositioner,
5258
+ {
5259
+ side,
5260
+ sideOffset,
5261
+ align,
5262
+ alignOffset,
5263
+ anchor,
5264
+ className: "pointer-events-auto isolate z-50",
5265
+ children: /* @__PURE__ */ jsx(
5266
+ ComboboxPopup,
5267
+ {
5268
+ "data-slot": "combobox-content",
5269
+ "data-chips": !!anchor,
5270
+ className: cn("group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[chips=true]:min-w-(--anchor-width) data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className),
5271
+ ...props
5272
+ }
5273
+ )
5274
+ }
5275
+ )
5276
+ ] });
5273
5277
  }
5274
5278
  function ComboboxList$1({ className, ...props }) {
5275
5279
  return /* @__PURE__ */ jsx(
@@ -5460,4 +5464,4 @@ const ComboboxTrigger = ({
5460
5464
  const ComboboxValue = (props) => /* @__PURE__ */ jsx(ComboboxValue$1, { ...props });
5461
5465
 
5462
5466
  export { Combobox as C, ComboboxChip as a, ComboboxChips as b, ComboboxChipsInput as c, ComboboxCollection as d, ComboboxContent as e, ComboboxEmpty as f, ComboboxGroup as g, ComboboxInput as h, ComboboxItem as i, ComboboxLabel as j, ComboboxList as k, ComboboxSeparator as l, ComboboxTrigger as m, ComboboxValue as n, ComboboxTrigger$2 as o, useComboboxAnchor as u };
5463
- //# sourceMappingURL=Combobox-NgubHftk.js.map
5467
+ //# sourceMappingURL=Combobox-CCstgdEa.js.map