@bigbinary/neeto-atoms 1.0.118 → 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 (195) 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/{Empty-DINS0Uu4.js → Empty-Rbdjvttt.js} +2 -2
  10. package/dist/{Empty-DINS0Uu4.js.map → Empty-Rbdjvttt.js.map} +1 -1
  11. package/dist/{HelpIcon-xh488VXs.js → HelpIcon-EjtPpYCx.js} +2 -2
  12. package/dist/{HelpIcon-xh488VXs.js.map → HelpIcon-EjtPpYCx.js.map} +1 -1
  13. package/dist/{Input-W8foyOcS.js → Input-Dm5ILPH3.js} +10 -13
  14. package/dist/Input-Dm5ILPH3.js.map +1 -0
  15. package/dist/{Label-B-R4PNNq.js → Label-Cr83bru_.js} +2 -2
  16. package/dist/{Label-B-R4PNNq.js.map → Label-Cr83bru_.js.map} +1 -1
  17. package/dist/{Select-CLfVAG_p.js → Select-CLSJgvl6.js} +2 -2
  18. package/dist/{Select-CLfVAG_p.js.map → Select-CLSJgvl6.js.map} +1 -1
  19. package/dist/{button-CePY5zne.js → button-DTkEk06V.js} +2 -1
  20. package/dist/button-DTkEk06V.js.map +1 -0
  21. package/dist/cjs/{Alert-BTheamzj.js → Alert-CXPGm6RG.js} +2 -2
  22. package/dist/cjs/{Alert-BTheamzj.js.map → Alert-CXPGm6RG.js.map} +1 -1
  23. package/dist/cjs/{Button-DJSysuyG.js → Button-CeSFPW-p.js} +2 -1
  24. package/dist/cjs/Button-CeSFPW-p.js.map +1 -0
  25. package/dist/cjs/{Combobox-PAGcNUr6.js → Combobox-ChwUxTXb.js} +27 -23
  26. package/dist/cjs/{Combobox-PAGcNUr6.js.map → Combobox-ChwUxTXb.js.map} +1 -1
  27. package/dist/cjs/{DataTable-CnMgor8P.js → DataTable-DQXIJu3I.js} +2 -2
  28. package/dist/cjs/{DataTable-CnMgor8P.js.map → DataTable-DQXIJu3I.js.map} +1 -1
  29. package/dist/cjs/{Empty-Bqt-TucD.js → Empty-CPyvZsWq.js} +2 -2
  30. package/dist/cjs/{Empty-Bqt-TucD.js.map → Empty-CPyvZsWq.js.map} +1 -1
  31. package/dist/cjs/{HelpIcon-BF1ePUQf.js → HelpIcon-CmaOmNLN.js} +2 -2
  32. package/dist/cjs/{HelpIcon-BF1ePUQf.js.map → HelpIcon-CmaOmNLN.js.map} +1 -1
  33. package/dist/cjs/{Input-DIq7T9D0.js → Input-DFvMBpiU.js} +8 -11
  34. package/dist/cjs/Input-DFvMBpiU.js.map +1 -0
  35. package/dist/cjs/{Label-CpsdGBV8.js → Label-BVVCdGCQ.js} +2 -2
  36. package/dist/cjs/{Label-CpsdGBV8.js.map → Label-BVVCdGCQ.js.map} +1 -1
  37. package/dist/cjs/{Select-DFz2VIUv.js → Select-BjWAZwbk.js} +2 -2
  38. package/dist/cjs/{Select-DFz2VIUv.js.map → Select-BjWAZwbk.js.map} +1 -1
  39. package/dist/cjs/{button-CSBhDSDJ.js → button-CDZTqJzs.js} +2 -1
  40. package/dist/cjs/button-CDZTqJzs.js.map +1 -0
  41. package/dist/cjs/components/Alert.js +5 -4
  42. package/dist/cjs/components/Alert.js.map +1 -1
  43. package/dist/cjs/components/Button.js +2 -2
  44. package/dist/cjs/components/Checkbox.js +3 -3
  45. package/dist/cjs/components/ColorPicker.js +1 -1
  46. package/dist/cjs/components/DataTable.js +3 -3
  47. package/dist/cjs/components/DatePicker.js +3 -3
  48. package/dist/cjs/components/Dialog.js +3 -2
  49. package/dist/cjs/components/Dialog.js.map +1 -1
  50. package/dist/cjs/components/DropdownMenu.js +2 -2
  51. package/dist/cjs/components/Empty.js +3 -3
  52. package/dist/cjs/components/Input.js +5 -5
  53. package/dist/cjs/components/Label.js +4 -4
  54. package/dist/cjs/components/MultiEmailInput.js +3 -3
  55. package/dist/cjs/components/Pagination.js +1 -1
  56. package/dist/cjs/components/RadioGroup.js +3 -3
  57. package/dist/cjs/components/Select.js +7 -6
  58. package/dist/cjs/components/Select.js.map +1 -1
  59. package/dist/cjs/components/Sheet.js +3 -2
  60. package/dist/cjs/components/Sheet.js.map +1 -1
  61. package/dist/cjs/components/Slider.js +3 -3
  62. package/dist/cjs/components/Switch.js +3 -3
  63. package/dist/cjs/components/Textarea.js +3 -3
  64. package/dist/cjs/components/TimePicker.js +3 -3
  65. package/dist/cjs/components/TreeSelect.js +3 -3
  66. package/dist/cjs/components/index.js +14 -13
  67. package/dist/cjs/components/index.js.map +1 -1
  68. package/dist/cjs/{dialog-CGblgaX5.js → dialog-Bnk4GUFC.js} +2 -2
  69. package/dist/cjs/{dialog-CGblgaX5.js.map → dialog-Bnk4GUFC.js.map} +1 -1
  70. package/dist/cjs/formik/ActionBlock.js +2 -2
  71. package/dist/cjs/formik/BlockNavigation.js +4 -3
  72. package/dist/cjs/formik/BlockNavigation.js.map +1 -1
  73. package/dist/cjs/formik/Button.js +2 -2
  74. package/dist/cjs/formik/Checkbox.js +3 -3
  75. package/dist/cjs/formik/Input.js +5 -5
  76. package/dist/cjs/formik/MultiEmailInput.js +3 -3
  77. package/dist/cjs/formik/RadioGroup.js +3 -3
  78. package/dist/cjs/formik/Select.js +7 -6
  79. package/dist/cjs/formik/Select.js.map +1 -1
  80. package/dist/cjs/formik/Slider.js +3 -3
  81. package/dist/cjs/formik/Switch.js +3 -3
  82. package/dist/cjs/formik/Textarea.js +3 -3
  83. package/dist/cjs/formik/TreeSelect.js +3 -3
  84. package/dist/cjs/formik/index.js +9 -8
  85. package/dist/cjs/formik/index.js.map +1 -1
  86. package/dist/cjs/index.js +14 -13
  87. package/dist/cjs/index.js.map +1 -1
  88. package/dist/cjs/{input-group-DZ-c2jRZ.js → input-group-BQqwtQF2.js} +2 -2
  89. package/dist/cjs/{input-group-DZ-c2jRZ.js.map → input-group-BQqwtQF2.js.map} +1 -1
  90. package/dist/cjs/primitives/AlertDialog.js +8 -38
  91. package/dist/cjs/primitives/AlertDialog.js.map +1 -1
  92. package/dist/cjs/primitives/Button.js +1 -1
  93. package/dist/cjs/primitives/Calendar.js +1 -1
  94. package/dist/cjs/primitives/Carousel.js +1 -1
  95. package/dist/cjs/primitives/Combobox.js +4 -3
  96. package/dist/cjs/primitives/Combobox.js.map +1 -1
  97. package/dist/cjs/primitives/Command.js +3 -3
  98. package/dist/cjs/primitives/Dialog.js +4 -2
  99. package/dist/cjs/primitives/Dialog.js.map +1 -1
  100. package/dist/cjs/primitives/Field.js +3 -3
  101. package/dist/cjs/primitives/InputGroup.js +2 -2
  102. package/dist/cjs/primitives/Pagination.js +1 -1
  103. package/dist/cjs/primitives/Sheet.js +4 -2
  104. package/dist/cjs/primitives/Sheet.js.map +1 -1
  105. package/dist/cjs/primitives/Sidebar.js +2 -2
  106. package/dist/cjs/primitives/index.js +8 -7
  107. package/dist/cjs/primitives/index.js.map +1 -1
  108. package/dist/cjs/{sheet-BMQ9juND.js → sheet-CQ82jJkC.js} +2 -2
  109. package/dist/cjs/{sheet-BMQ9juND.js.map → sheet-CQ82jJkC.js.map} +1 -1
  110. package/dist/cjs/useAriaHiddenCleanup-CT0To2AH.js +47 -0
  111. package/dist/cjs/useAriaHiddenCleanup-CT0To2AH.js.map +1 -0
  112. package/dist/components/Alert.js +5 -4
  113. package/dist/components/Alert.js.map +1 -1
  114. package/dist/components/Button/Button.d.ts +1 -1
  115. package/dist/components/Button.js +2 -2
  116. package/dist/components/Checkbox.js +3 -3
  117. package/dist/components/ColorPicker.js +1 -1
  118. package/dist/components/DataTable.js +3 -3
  119. package/dist/components/DatePicker.js +3 -3
  120. package/dist/components/Dialog.js +3 -2
  121. package/dist/components/Dialog.js.map +1 -1
  122. package/dist/components/DropdownMenu.js +2 -2
  123. package/dist/components/Empty.js +3 -3
  124. package/dist/components/Input/Input.d.ts +6 -1
  125. package/dist/components/Input.js +5 -5
  126. package/dist/components/Label.js +4 -4
  127. package/dist/components/MultiEmailInput.js +3 -3
  128. package/dist/components/Pagination.js +1 -1
  129. package/dist/components/RadioGroup.js +3 -3
  130. package/dist/components/Select.js +7 -6
  131. package/dist/components/Select.js.map +1 -1
  132. package/dist/components/Sheet.js +3 -2
  133. package/dist/components/Sheet.js.map +1 -1
  134. package/dist/components/Slider.js +3 -3
  135. package/dist/components/Switch.js +3 -3
  136. package/dist/components/Textarea.js +3 -3
  137. package/dist/components/TimePicker.js +3 -3
  138. package/dist/components/TreeSelect.js +3 -3
  139. package/dist/components/index.js +14 -13
  140. package/dist/components/index.js.map +1 -1
  141. package/dist/{dialog-CqXuhXNS.js → dialog-BG8Tjl78.js} +2 -2
  142. package/dist/{dialog-CqXuhXNS.js.map → dialog-BG8Tjl78.js.map} +1 -1
  143. package/dist/formik/ActionBlock.js +2 -2
  144. package/dist/formik/BlockNavigation.js +4 -3
  145. package/dist/formik/BlockNavigation.js.map +1 -1
  146. package/dist/formik/Button.js +2 -2
  147. package/dist/formik/Checkbox.js +3 -3
  148. package/dist/formik/Input.js +5 -5
  149. package/dist/formik/MultiEmailInput.js +3 -3
  150. package/dist/formik/RadioGroup.js +3 -3
  151. package/dist/formik/Select.js +7 -6
  152. package/dist/formik/Select.js.map +1 -1
  153. package/dist/formik/Slider.js +3 -3
  154. package/dist/formik/Switch.js +3 -3
  155. package/dist/formik/Textarea.js +3 -3
  156. package/dist/formik/TreeSelect.js +3 -3
  157. package/dist/formik/index.js +9 -8
  158. package/dist/formik/index.js.map +1 -1
  159. package/dist/hooks/useAriaHiddenCleanup.d.ts +20 -0
  160. package/dist/index.css +6 -0
  161. package/dist/index.js +14 -13
  162. package/dist/index.js.map +1 -1
  163. package/dist/{input-group-DuITGkyB.js → input-group-Ba2bJ2DW.js} +2 -2
  164. package/dist/{input-group-DuITGkyB.js.map → input-group-Ba2bJ2DW.js.map} +1 -1
  165. package/dist/primitives/AlertDialog.js +8 -38
  166. package/dist/primitives/AlertDialog.js.map +1 -1
  167. package/dist/primitives/Button.d.ts +1 -1
  168. package/dist/primitives/Button.js +2 -2
  169. package/dist/primitives/Calendar.js +1 -1
  170. package/dist/primitives/Carousel.js +1 -1
  171. package/dist/primitives/Combobox.js +4 -3
  172. package/dist/primitives/Combobox.js.map +1 -1
  173. package/dist/primitives/Command.js +3 -3
  174. package/dist/primitives/Dialog.js +4 -2
  175. package/dist/primitives/Dialog.js.map +1 -1
  176. package/dist/primitives/Field.js +3 -3
  177. package/dist/primitives/InputGroup.js +2 -2
  178. package/dist/primitives/Pagination.js +1 -1
  179. package/dist/primitives/Sheet.js +4 -2
  180. package/dist/primitives/Sheet.js.map +1 -1
  181. package/dist/primitives/Sidebar.js +2 -2
  182. package/dist/primitives/index.js +8 -7
  183. package/dist/primitives/index.js.map +1 -1
  184. package/dist/shadcn/components/button.d.ts +2 -2
  185. package/dist/{sheet-B9oDGvvX.js → sheet-BD8c3_Va.js} +2 -2
  186. package/dist/{sheet-B9oDGvvX.js.map → sheet-BD8c3_Va.js.map} +1 -1
  187. package/dist/useAriaHiddenCleanup-BIUbPJ6V.js +45 -0
  188. package/dist/useAriaHiddenCleanup-BIUbPJ6V.js.map +1 -0
  189. package/package.json +2 -1
  190. package/dist/Button-C4c_dj-f.js.map +0 -1
  191. package/dist/Input-W8foyOcS.js.map +0 -1
  192. package/dist/button-CePY5zne.js.map +0 -1
  193. package/dist/cjs/Button-DJSysuyG.js.map +0 -1
  194. package/dist/cjs/Input-DIq7T9D0.js.map +0 -1
  195. package/dist/cjs/button-CSBhDSDJ.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"BlockNavigation.js","sources":["../../src/formik/BlockNavigation/hooks/useNavPrompt.ts","../../src/formik/BlockNavigation/BlockNavigationAlert.tsx","../../src/formik/BlockNavigation/index.tsx"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"react\";\n\nimport { useHistory } from \"react-router-dom\";\n\ninterface UseNavPromptOptions {\n /** Whether navigation should be blocked. */\n shouldBlock?: boolean;\n}\n\ninterface UseNavPromptReturn {\n /** Whether a navigation attempt is currently blocked. */\n isBlocked: boolean;\n /** Unblock and continue the pending navigation. */\n continueNavigation: () => void;\n /** Dismiss the prompt without navigating. */\n hidePrompt: () => void;\n}\n\nconst useNavPrompt = ({\n shouldBlock = true,\n}: UseNavPromptOptions): UseNavPromptReturn => {\n const [isBlocked, setIsBlocked] = useState(false);\n\n const history = useHistory();\n\n const unblockRef = useRef<(() => void) | undefined>(undefined);\n const navRef = useRef<{ transition: string; action: string } | null>(null);\n\n const handleNavigation = useCallback(\n (action: string, transition: string) => {\n switch (action) {\n case \"PUSH\":\n history.push(transition);\n break;\n case \"REPLACE\":\n history.replace(transition);\n break;\n case \"POP\":\n history.goBack();\n break;\n }\n },\n [history]\n );\n\n const continueNavigation = useCallback(() => {\n if (isBlocked && unblockRef.current) {\n unblockRef.current();\n setIsBlocked(false);\n if (navRef.current) {\n const { action, transition } = navRef.current;\n handleNavigation(action, transition);\n }\n }\n }, [isBlocked, handleNavigation]);\n\n const hidePrompt = useCallback(() => setIsBlocked(false), []);\n\n useEffect(() => {\n if (shouldBlock) {\n unblockRef.current = history.block(\n (transition: { pathname: string }, action: string) => {\n setIsBlocked(true);\n navRef.current = { transition: transition.pathname, action };\n\n return false;\n }\n ) as unknown as () => void;\n\n return () => {\n unblockRef.current?.();\n };\n }\n\n return undefined;\n }, [shouldBlock, history]);\n\n return { isBlocked, continueNavigation, hidePrompt };\n};\n\nexport { useNavPrompt };\nexport type { UseNavPromptOptions, UseNavPromptReturn };\n","import { useRef } from \"react\";\n\nimport { Button } from \"src/components/Button\";\nimport { Dialog } from \"src/components/Dialog\";\n\nexport interface BlockNavigationAlertProps {\n /** Whether the alert dialog is open. */\n isOpen?: boolean;\n /** Called when the dialog should close. */\n onClose?: () => void;\n /** Called when the user chooses to stay. */\n onSubmit?: () => void;\n /** Called when the user chooses to discard and leave. */\n onDiscardChanges?: () => void;\n /** Custom title for the alert. */\n title?: string;\n /** Custom message for the alert body. */\n message?: string;\n /** Custom label for the discard/cancel button. */\n cancelButtonLabel?: string;\n /** Custom label for the stay/submit button. */\n submitButtonLabel?: string;\n}\n\nconst BlockNavigationAlert = ({\n isOpen = false,\n onClose,\n onSubmit,\n onDiscardChanges,\n title = \"You have unsaved changes\",\n message = \"Are you sure you want to leave? All unsaved changes will be lost.\",\n cancelButtonLabel = \"Discard and leave\",\n submitButtonLabel = \"Stay on this page\",\n}: BlockNavigationAlertProps) => {\n const submitButtonRef = useRef<HTMLButtonElement>(null);\n\n return (\n <Dialog\n isOpen={isOpen}\n onClose={onClose ?? (() => {})}\n closeButton\n closeOnEsc\n closeOnOutsideClick\n initialFocusRef={submitButtonRef}\n size=\"medium\"\n data-testid=\"alert-box\"\n >\n <Dialog.Header>\n <Dialog.Title data-testid=\"alert-title\">{title}</Dialog.Title>\n </Dialog.Header>\n <Dialog.Body>\n <p\n data-testid=\"alert-message\"\n className=\"text-sm text-muted-foreground\"\n >\n {message}\n </p>\n </Dialog.Body>\n <Dialog.Footer className=\"flex items-center justify-end gap-2\">\n <Button\n data-testid=\"alert-cancel-button\"\n label={cancelButtonLabel}\n variant=\"destructive\"\n onClick={onDiscardChanges}\n />\n <Button\n data-testid=\"alert-submit-button\"\n label={submitButtonLabel}\n ref={submitButtonRef}\n onClick={onSubmit}\n />\n </Dialog.Footer>\n </Dialog>\n );\n};\n\nBlockNavigationAlert.displayName = \"BlockNavigationAlert\";\n\nexport { BlockNavigationAlert };\n","import { useFormikContext } from \"formik\";\n\nimport { useNavPrompt } from \"./hooks/useNavPrompt\";\n\nimport {\n BlockNavigationAlert,\n type BlockNavigationAlertProps,\n} from \"./BlockNavigationAlert\";\n\nexport interface FormikBlockNavigationProps extends Omit<\n BlockNavigationAlertProps,\n \"isOpen\" | \"onClose\" | \"onSubmit\" | \"onDiscardChanges\"\n> {\n /** Force the navigation block regardless of Formik dirty state. */\n isDirty?: boolean;\n}\n\nconst FormikBlockNavigation = ({\n isDirty = false,\n ...otherProps\n}: FormikBlockNavigationProps) => {\n const formikContext = useFormikContext();\n const shouldBlock =\n isDirty || (Boolean(formikContext) && Boolean(formikContext.dirty));\n\n const { isBlocked, continueNavigation, hidePrompt } = useNavPrompt({\n shouldBlock,\n });\n\n const handleDiscardChanges = () => {\n if (formikContext) formikContext.resetForm();\n hidePrompt();\n continueNavigation();\n };\n\n return (\n <BlockNavigationAlert\n isOpen={isBlocked}\n onClose={hidePrompt}\n onDiscardChanges={handleDiscardChanges}\n onSubmit={hidePrompt}\n {...otherProps}\n />\n );\n};\n\nFormikBlockNavigation.displayName = \"FormikBlockNavigation\";\n\nexport { FormikBlockNavigation };\nexport type { BlockNavigationAlertProps };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BlockNavigation.js","sources":["../../src/formik/BlockNavigation/hooks/useNavPrompt.ts","../../src/formik/BlockNavigation/BlockNavigationAlert.tsx","../../src/formik/BlockNavigation/index.tsx"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"react\";\n\nimport { useHistory } from \"react-router-dom\";\n\ninterface UseNavPromptOptions {\n /** Whether navigation should be blocked. */\n shouldBlock?: boolean;\n}\n\ninterface UseNavPromptReturn {\n /** Whether a navigation attempt is currently blocked. */\n isBlocked: boolean;\n /** Unblock and continue the pending navigation. */\n continueNavigation: () => void;\n /** Dismiss the prompt without navigating. */\n hidePrompt: () => void;\n}\n\nconst useNavPrompt = ({\n shouldBlock = true,\n}: UseNavPromptOptions): UseNavPromptReturn => {\n const [isBlocked, setIsBlocked] = useState(false);\n\n const history = useHistory();\n\n const unblockRef = useRef<(() => void) | undefined>(undefined);\n const navRef = useRef<{ transition: string; action: string } | null>(null);\n\n const handleNavigation = useCallback(\n (action: string, transition: string) => {\n switch (action) {\n case \"PUSH\":\n history.push(transition);\n break;\n case \"REPLACE\":\n history.replace(transition);\n break;\n case \"POP\":\n history.goBack();\n break;\n }\n },\n [history]\n );\n\n const continueNavigation = useCallback(() => {\n if (isBlocked && unblockRef.current) {\n unblockRef.current();\n setIsBlocked(false);\n if (navRef.current) {\n const { action, transition } = navRef.current;\n handleNavigation(action, transition);\n }\n }\n }, [isBlocked, handleNavigation]);\n\n const hidePrompt = useCallback(() => setIsBlocked(false), []);\n\n useEffect(() => {\n if (shouldBlock) {\n unblockRef.current = history.block(\n (transition: { pathname: string }, action: string) => {\n setIsBlocked(true);\n navRef.current = { transition: transition.pathname, action };\n\n return false;\n }\n ) as unknown as () => void;\n\n return () => {\n unblockRef.current?.();\n };\n }\n\n return undefined;\n }, [shouldBlock, history]);\n\n return { isBlocked, continueNavigation, hidePrompt };\n};\n\nexport { useNavPrompt };\nexport type { UseNavPromptOptions, UseNavPromptReturn };\n","import { useRef } from \"react\";\n\nimport { Button } from \"src/components/Button\";\nimport { Dialog } from \"src/components/Dialog\";\n\nexport interface BlockNavigationAlertProps {\n /** Whether the alert dialog is open. */\n isOpen?: boolean;\n /** Called when the dialog should close. */\n onClose?: () => void;\n /** Called when the user chooses to stay. */\n onSubmit?: () => void;\n /** Called when the user chooses to discard and leave. */\n onDiscardChanges?: () => void;\n /** Custom title for the alert. */\n title?: string;\n /** Custom message for the alert body. */\n message?: string;\n /** Custom label for the discard/cancel button. */\n cancelButtonLabel?: string;\n /** Custom label for the stay/submit button. */\n submitButtonLabel?: string;\n}\n\nconst BlockNavigationAlert = ({\n isOpen = false,\n onClose,\n onSubmit,\n onDiscardChanges,\n title = \"You have unsaved changes\",\n message = \"Are you sure you want to leave? All unsaved changes will be lost.\",\n cancelButtonLabel = \"Discard and leave\",\n submitButtonLabel = \"Stay on this page\",\n}: BlockNavigationAlertProps) => {\n const submitButtonRef = useRef<HTMLButtonElement>(null);\n\n return (\n <Dialog\n isOpen={isOpen}\n onClose={onClose ?? (() => {})}\n closeButton\n closeOnEsc\n closeOnOutsideClick\n initialFocusRef={submitButtonRef}\n size=\"medium\"\n data-testid=\"alert-box\"\n >\n <Dialog.Header>\n <Dialog.Title data-testid=\"alert-title\">{title}</Dialog.Title>\n </Dialog.Header>\n <Dialog.Body>\n <p\n data-testid=\"alert-message\"\n className=\"text-sm text-muted-foreground\"\n >\n {message}\n </p>\n </Dialog.Body>\n <Dialog.Footer className=\"flex items-center justify-end gap-2\">\n <Button\n data-testid=\"alert-cancel-button\"\n label={cancelButtonLabel}\n variant=\"destructive\"\n onClick={onDiscardChanges}\n />\n <Button\n data-testid=\"alert-submit-button\"\n label={submitButtonLabel}\n ref={submitButtonRef}\n onClick={onSubmit}\n />\n </Dialog.Footer>\n </Dialog>\n );\n};\n\nBlockNavigationAlert.displayName = \"BlockNavigationAlert\";\n\nexport { BlockNavigationAlert };\n","import { useFormikContext } from \"formik\";\n\nimport { useNavPrompt } from \"./hooks/useNavPrompt\";\n\nimport {\n BlockNavigationAlert,\n type BlockNavigationAlertProps,\n} from \"./BlockNavigationAlert\";\n\nexport interface FormikBlockNavigationProps extends Omit<\n BlockNavigationAlertProps,\n \"isOpen\" | \"onClose\" | \"onSubmit\" | \"onDiscardChanges\"\n> {\n /** Force the navigation block regardless of Formik dirty state. */\n isDirty?: boolean;\n}\n\nconst FormikBlockNavigation = ({\n isDirty = false,\n ...otherProps\n}: FormikBlockNavigationProps) => {\n const formikContext = useFormikContext();\n const shouldBlock =\n isDirty || (Boolean(formikContext) && Boolean(formikContext.dirty));\n\n const { isBlocked, continueNavigation, hidePrompt } = useNavPrompt({\n shouldBlock,\n });\n\n const handleDiscardChanges = () => {\n if (formikContext) formikContext.resetForm();\n hidePrompt();\n continueNavigation();\n };\n\n return (\n <BlockNavigationAlert\n isOpen={isBlocked}\n onClose={hidePrompt}\n onDiscardChanges={handleDiscardChanges}\n onSubmit={hidePrompt}\n {...otherProps}\n />\n );\n};\n\nFormikBlockNavigation.displayName = \"FormikBlockNavigation\";\n\nexport { FormikBlockNavigation };\nexport type { BlockNavigationAlertProps };\n"],"names":[],"mappings":"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"}
@@ -2,12 +2,12 @@ import { jsx } from 'react/jsx-runtime';
2
2
  import { forwardRef } from 'react';
3
3
  import { useFormikContext } from 'formik';
4
4
  import { equals } from 'ramda';
5
- import { b as Button } from '../Button-C4c_dj-f.js';
5
+ import { b as Button } from '../Button-DkIQvxAe.js';
6
6
  import 'react-router-dom';
7
7
  import '../utils-BJnb9o5c.js';
8
8
  import '../renderIcon-C6twJSqH.js';
9
9
  import '../primitives/Button.js';
10
- import '../button-CePY5zne.js';
10
+ import '../button-DTkEk06V.js';
11
11
  import '../index-Bo3AAQJp.js';
12
12
  import '../index-CfriMyrd.js';
13
13
  import '../index-BtkPdosV.js';
@@ -20,7 +20,7 @@ import 'react-dom';
20
20
  import '../fieldIds-VpluAAMl.js';
21
21
  import '../hyphenize-TRhMI0tl.js';
22
22
  import '../primitives/Field.js';
23
- import '../HelpIcon-xh488VXs.js';
23
+ import '../HelpIcon-EjtPpYCx.js';
24
24
  import '../primitives/Tooltip.js';
25
25
  import '../tooltip-BUYRFmEv.js';
26
26
  import '../index-BNPynZWM.js';
@@ -37,10 +37,10 @@ import '../index-Bo3AAQJp.js';
37
37
  import '../primitives/HoverCard.js';
38
38
  import '../Typography-CmILccNh.js';
39
39
  import '../index-CfriMyrd.js';
40
- import '../Button-C4c_dj-f.js';
40
+ import '../Button-DkIQvxAe.js';
41
41
  import 'react-router-dom';
42
42
  import '../primitives/Button.js';
43
- import '../button-CePY5zne.js';
43
+ import '../button-DTkEk06V.js';
44
44
  import '../primitives/Spinner.js';
45
45
  import 'react-i18next';
46
46
  import '../loader-circle-DycHUAWN.js';
@@ -2,10 +2,10 @@ 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-W8foyOcS.js';
5
+ import { I as Input } from '../Input-Dm5ILPH3.js';
6
6
  import '../utils-BJnb9o5c.js';
7
7
  import '../primitives/Field.js';
8
- import '../HelpIcon-xh488VXs.js';
8
+ import '../HelpIcon-EjtPpYCx.js';
9
9
  import '../primitives/Tooltip.js';
10
10
  import '../tooltip-BUYRFmEv.js';
11
11
  import '../index-DNzunGHb.js';
@@ -32,17 +32,17 @@ import '../index-Bo3AAQJp.js';
32
32
  import '../primitives/HoverCard.js';
33
33
  import '../Typography-CmILccNh.js';
34
34
  import '../index-CfriMyrd.js';
35
- import '../Button-C4c_dj-f.js';
35
+ import '../Button-DkIQvxAe.js';
36
36
  import 'react-router-dom';
37
37
  import '../primitives/Button.js';
38
- import '../button-CePY5zne.js';
38
+ import '../button-DTkEk06V.js';
39
39
  import '../primitives/Spinner.js';
40
40
  import 'react-i18next';
41
41
  import '../loader-circle-DycHUAWN.js';
42
42
  import '../label-YEsizr2c.js';
43
43
  import '../separator-ByRsc-y-.js';
44
44
  import '../primitives/InputGroup.js';
45
- import '../input-group-DuITGkyB.js';
45
+ import '../input-group-Ba2bJ2DW.js';
46
46
  import '../input-CNbQc_tG.js';
47
47
  import '../textarea-BZIsQ5UD.js';
48
48
  import '../fieldIds-VpluAAMl.js';
@@ -6,7 +6,7 @@ import { M as MultiEmailInput } from '../MultiEmailInput-D2uHxkeV.js';
6
6
  import 'react-i18next';
7
7
  import '../utils-BJnb9o5c.js';
8
8
  import '../primitives/Field.js';
9
- import '../HelpIcon-xh488VXs.js';
9
+ import '../HelpIcon-EjtPpYCx.js';
10
10
  import '../primitives/Tooltip.js';
11
11
  import '../tooltip-BUYRFmEv.js';
12
12
  import '../index-DNzunGHb.js';
@@ -33,10 +33,10 @@ import '../index-Bo3AAQJp.js';
33
33
  import '../primitives/HoverCard.js';
34
34
  import '../Typography-CmILccNh.js';
35
35
  import '../index-CfriMyrd.js';
36
- import '../Button-C4c_dj-f.js';
36
+ import '../Button-DkIQvxAe.js';
37
37
  import 'react-router-dom';
38
38
  import '../primitives/Button.js';
39
- import '../button-CePY5zne.js';
39
+ import '../button-DTkEk06V.js';
40
40
  import '../primitives/Spinner.js';
41
41
  import '../loader-circle-DycHUAWN.js';
42
42
  import '../label-YEsizr2c.js';
@@ -23,7 +23,7 @@ import '../index-yFgkK_AM.js';
23
23
  import '../primitives/Label.js';
24
24
  import '../label-YEsizr2c.js';
25
25
  import '../primitives/Field.js';
26
- import '../HelpIcon-xh488VXs.js';
26
+ import '../HelpIcon-EjtPpYCx.js';
27
27
  import '../primitives/Tooltip.js';
28
28
  import '../tooltip-BUYRFmEv.js';
29
29
  import '../index-BNPynZWM.js';
@@ -39,10 +39,10 @@ import '../index-Bo3AAQJp.js';
39
39
  import '../primitives/HoverCard.js';
40
40
  import '../Typography-CmILccNh.js';
41
41
  import '../index-CfriMyrd.js';
42
- import '../Button-C4c_dj-f.js';
42
+ import '../Button-DkIQvxAe.js';
43
43
  import 'react-router-dom';
44
44
  import '../primitives/Button.js';
45
- import '../button-CePY5zne.js';
45
+ import '../button-DTkEk06V.js';
46
46
  import '../primitives/Spinner.js';
47
47
  import 'react-i18next';
48
48
  import '../loader-circle-DycHUAWN.js';
@@ -2,13 +2,13 @@ import { jsx } from 'react/jsx-runtime';
2
2
  import { forwardRef } from 'react';
3
3
  import { useField, useFormikContext, getIn } from 'formik';
4
4
  import { dissoc } from 'ramda';
5
- import { S as Select } from '../Select-CLfVAG_p.js';
5
+ import { S as Select } from '../Select-CLSJgvl6.js';
6
6
  import '../fieldIds-VpluAAMl.js';
7
7
  import '../hyphenize-TRhMI0tl.js';
8
8
  import '../SelectFieldWrapper-D370CD4o.js';
9
9
  import '../primitives/Field.js';
10
10
  import '../utils-BJnb9o5c.js';
11
- import '../HelpIcon-xh488VXs.js';
11
+ import '../HelpIcon-EjtPpYCx.js';
12
12
  import '../primitives/Tooltip.js';
13
13
  import '../tooltip-BUYRFmEv.js';
14
14
  import '../index-DNzunGHb.js';
@@ -35,17 +35,18 @@ import '../index-Bo3AAQJp.js';
35
35
  import '../primitives/HoverCard.js';
36
36
  import '../Typography-CmILccNh.js';
37
37
  import '../index-CfriMyrd.js';
38
- import '../Button-C4c_dj-f.js';
38
+ import '../Button-DkIQvxAe.js';
39
39
  import 'react-router-dom';
40
40
  import '../primitives/Button.js';
41
- import '../button-CePY5zne.js';
41
+ import '../button-DTkEk06V.js';
42
42
  import '../primitives/Spinner.js';
43
43
  import 'react-i18next';
44
44
  import '../loader-circle-DycHUAWN.js';
45
45
  import '../label-YEsizr2c.js';
46
46
  import '../separator-ByRsc-y-.js';
47
- import '../Combobox-NgubHftk.js';
48
- import '../input-group-DuITGkyB.js';
47
+ import '../Combobox-CCstgdEa.js';
48
+ import '../useAriaHiddenCleanup-BIUbPJ6V.js';
49
+ import '../input-group-Ba2bJ2DW.js';
49
50
  import '../input-CNbQc_tG.js';
50
51
  import '../textarea-BZIsQ5UD.js';
51
52
  import '../chevron-down-BNi0ntys.js';
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","sources":["../../src/formik/Select.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\n\nimport { useField, useFormikContext, getIn } from \"formik\";\nimport { dissoc } from \"ramda\";\n\nimport { Select, SelectProps } from \"src/components/Select\";\n\nexport type FormikSelectProps = SelectProps & {\n /** Formik field name. */\n name: string;\n};\n\nconst FormikSelect = forwardRef<HTMLInputElement, FormikSelectProps>(\n (props, ref) => {\n const { name, onOpenChange, onChange: onChangeProp, ...otherProps } = props;\n const [field, meta, { setValue, setTouched }] = useField(name);\n const { status = {}, setStatus } = useFormikContext();\n const fieldStatus = getIn(status, name);\n\n const selectProps = {\n ...otherProps,\n ref,\n error: meta.touched ? meta.error || fieldStatus : \"\",\n name: field.name,\n value: field.value,\n onOpenChange: (open: boolean) => {\n if (!open) setTouched(true, false);\n onOpenChange?.(open);\n },\n onChange: (value: unknown) => {\n setStatus(dissoc(name, status));\n setValue(value);\n (onChangeProp as ((v: unknown) => void) | undefined)?.(value);\n },\n };\n\n return <Select {...(selectProps as SelectProps)} />;\n }\n);\n\nFormikSelect.displayName = \"FormikSelect\";\n\nexport { FormikSelect };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,MAAM,YAAA,GAAe,UAAA;AAAA,EACnB,CAAC,OAAO,GAAA,KAAQ;AACd,IAAA,MAAM,EAAE,IAAA,EAAM,YAAA,EAAc,UAAU,YAAA,EAAc,GAAG,YAAW,GAAI,KAAA;AACtE,IAAA,MAAM,CAAC,OAAO,IAAA,EAAM,EAAE,UAAU,UAAA,EAAY,CAAA,GAAI,QAAA,CAAS,IAAI,CAAA;AAC7D,IAAA,MAAM,EAAE,MAAA,GAAS,EAAC,EAAG,SAAA,KAAc,gBAAA,EAAiB;AACpD,IAAA,MAAM,WAAA,GAAc,KAAA,CAAM,MAAA,EAAQ,IAAI,CAAA;AAEtC,IAAA,MAAM,WAAA,GAAc;AAAA,MAClB,GAAG,UAAA;AAAA,MACH,GAAA;AAAA,MACA,KAAA,EAAO,IAAA,CAAK,OAAA,GAAU,IAAA,CAAK,SAAS,WAAA,GAAc,EAAA;AAAA,MAClD,MAAM,KAAA,CAAM,IAAA;AAAA,MACZ,OAAO,KAAA,CAAM,KAAA;AAAA,MACb,YAAA,EAAc,CAAC,IAAA,KAAkB;AAC/B,QAAA,IAAI,CAAC,IAAA,EAAM,UAAA,CAAW,IAAA,EAAM,KAAK,CAAA;AACjC,QAAA,YAAA,GAAe,IAAI,CAAA;AAAA,MACrB,CAAA;AAAA,MACA,QAAA,EAAU,CAAC,KAAA,KAAmB;AAC5B,QAAA,SAAA,CAAU,MAAA,CAAO,IAAA,EAAM,MAAM,CAAC,CAAA;AAC9B,QAAA,QAAA,CAAS,KAAK,CAAA;AACd,QAAC,eAAsD,KAAK,CAAA;AAAA,MAC9D;AAAA,KACF;AAEA,IAAA,uBAAO,GAAA,CAAC,MAAA,EAAA,EAAQ,GAAI,WAAA,EAA6B,CAAA;AAAA,EACnD;AACF;AAEA,YAAA,CAAa,WAAA,GAAc,cAAA;;;;"}
1
+ {"version":3,"file":"Select.js","sources":["../../src/formik/Select.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\n\nimport { useField, useFormikContext, getIn } from \"formik\";\nimport { dissoc } from \"ramda\";\n\nimport { Select, SelectProps } from \"src/components/Select\";\n\nexport type FormikSelectProps = SelectProps & {\n /** Formik field name. */\n name: string;\n};\n\nconst FormikSelect = forwardRef<HTMLInputElement, FormikSelectProps>(\n (props, ref) => {\n const { name, onOpenChange, onChange: onChangeProp, ...otherProps } = props;\n const [field, meta, { setValue, setTouched }] = useField(name);\n const { status = {}, setStatus } = useFormikContext();\n const fieldStatus = getIn(status, name);\n\n const selectProps = {\n ...otherProps,\n ref,\n error: meta.touched ? meta.error || fieldStatus : \"\",\n name: field.name,\n value: field.value,\n onOpenChange: (open: boolean) => {\n if (!open) setTouched(true, false);\n onOpenChange?.(open);\n },\n onChange: (value: unknown) => {\n setStatus(dissoc(name, status));\n setValue(value);\n (onChangeProp as ((v: unknown) => void) | undefined)?.(value);\n },\n };\n\n return <Select {...(selectProps as SelectProps)} />;\n }\n);\n\nFormikSelect.displayName = \"FormikSelect\";\n\nexport { FormikSelect };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,MAAM,YAAA,GAAe,UAAA;AAAA,EACnB,CAAC,OAAO,GAAA,KAAQ;AACd,IAAA,MAAM,EAAE,IAAA,EAAM,YAAA,EAAc,UAAU,YAAA,EAAc,GAAG,YAAW,GAAI,KAAA;AACtE,IAAA,MAAM,CAAC,OAAO,IAAA,EAAM,EAAE,UAAU,UAAA,EAAY,CAAA,GAAI,QAAA,CAAS,IAAI,CAAA;AAC7D,IAAA,MAAM,EAAE,MAAA,GAAS,EAAC,EAAG,SAAA,KAAc,gBAAA,EAAiB;AACpD,IAAA,MAAM,WAAA,GAAc,KAAA,CAAM,MAAA,EAAQ,IAAI,CAAA;AAEtC,IAAA,MAAM,WAAA,GAAc;AAAA,MAClB,GAAG,UAAA;AAAA,MACH,GAAA;AAAA,MACA,KAAA,EAAO,IAAA,CAAK,OAAA,GAAU,IAAA,CAAK,SAAS,WAAA,GAAc,EAAA;AAAA,MAClD,MAAM,KAAA,CAAM,IAAA;AAAA,MACZ,OAAO,KAAA,CAAM,KAAA;AAAA,MACb,YAAA,EAAc,CAAC,IAAA,KAAkB;AAC/B,QAAA,IAAI,CAAC,IAAA,EAAM,UAAA,CAAW,IAAA,EAAM,KAAK,CAAA;AACjC,QAAA,YAAA,GAAe,IAAI,CAAA;AAAA,MACrB,CAAA;AAAA,MACA,QAAA,EAAU,CAAC,KAAA,KAAmB;AAC5B,QAAA,SAAA,CAAU,MAAA,CAAO,IAAA,EAAM,MAAM,CAAC,CAAA;AAC9B,QAAA,QAAA,CAAS,KAAK,CAAA;AACd,QAAC,eAAsD,KAAK,CAAA;AAAA,MAC9D;AAAA,KACF;AAEA,IAAA,uBAAO,GAAA,CAAC,MAAA,EAAA,EAAQ,GAAI,WAAA,EAA6B,CAAA;AAAA,EACnD;AACF;AAEA,YAAA,CAAa,WAAA,GAAc,cAAA;;;;"}
@@ -18,7 +18,7 @@ import '../index-DhnfW8wQ.js';
18
18
  import 'react-dom';
19
19
  import '../index-Dd1i1d2M.js';
20
20
  import '../primitives/Field.js';
21
- import '../HelpIcon-xh488VXs.js';
21
+ import '../HelpIcon-EjtPpYCx.js';
22
22
  import '../primitives/Tooltip.js';
23
23
  import '../tooltip-BUYRFmEv.js';
24
24
  import '../index-BNPynZWM.js';
@@ -37,10 +37,10 @@ import '../index-Bo3AAQJp.js';
37
37
  import '../primitives/HoverCard.js';
38
38
  import '../Typography-CmILccNh.js';
39
39
  import '../index-CfriMyrd.js';
40
- import '../Button-C4c_dj-f.js';
40
+ import '../Button-DkIQvxAe.js';
41
41
  import 'react-router-dom';
42
42
  import '../primitives/Button.js';
43
- import '../button-CePY5zne.js';
43
+ import '../button-DTkEk06V.js';
44
44
  import '../primitives/Spinner.js';
45
45
  import 'react-i18next';
46
46
  import '../loader-circle-DycHUAWN.js';
@@ -5,7 +5,7 @@ import { S as Switch } from '../Switch-C9fqpoNR.js';
5
5
  import 'react';
6
6
  import '../primitives/Field.js';
7
7
  import '../utils-BJnb9o5c.js';
8
- import '../HelpIcon-xh488VXs.js';
8
+ import '../HelpIcon-EjtPpYCx.js';
9
9
  import '../primitives/Tooltip.js';
10
10
  import '../tooltip-BUYRFmEv.js';
11
11
  import '../index-DNzunGHb.js';
@@ -32,10 +32,10 @@ import '../index-Bo3AAQJp.js';
32
32
  import '../primitives/HoverCard.js';
33
33
  import '../Typography-CmILccNh.js';
34
34
  import '../index-CfriMyrd.js';
35
- import '../Button-C4c_dj-f.js';
35
+ import '../Button-DkIQvxAe.js';
36
36
  import 'react-router-dom';
37
37
  import '../primitives/Button.js';
38
- import '../button-CePY5zne.js';
38
+ import '../button-DTkEk06V.js';
39
39
  import '../primitives/Spinner.js';
40
40
  import 'react-i18next';
41
41
  import '../loader-circle-DycHUAWN.js';
@@ -5,7 +5,7 @@ import { dissoc } from 'ramda';
5
5
  import { T as Textarea } from '../Textarea-CUe09-sr.js';
6
6
  import '../utils-BJnb9o5c.js';
7
7
  import '../primitives/Field.js';
8
- import '../HelpIcon-xh488VXs.js';
8
+ import '../HelpIcon-EjtPpYCx.js';
9
9
  import '../primitives/Tooltip.js';
10
10
  import '../tooltip-BUYRFmEv.js';
11
11
  import '../index-DNzunGHb.js';
@@ -32,10 +32,10 @@ import '../index-Bo3AAQJp.js';
32
32
  import '../primitives/HoverCard.js';
33
33
  import '../Typography-CmILccNh.js';
34
34
  import '../index-CfriMyrd.js';
35
- import '../Button-C4c_dj-f.js';
35
+ import '../Button-DkIQvxAe.js';
36
36
  import 'react-router-dom';
37
37
  import '../primitives/Button.js';
38
- import '../button-CePY5zne.js';
38
+ import '../button-DTkEk06V.js';
39
39
  import '../primitives/Spinner.js';
40
40
  import 'react-i18next';
41
41
  import '../loader-circle-DycHUAWN.js';
@@ -24,7 +24,7 @@ import '../index-yFgkK_AM.js';
24
24
  import '../index-Cor698lu.js';
25
25
  import '../SelectFieldWrapper-D370CD4o.js';
26
26
  import '../primitives/Field.js';
27
- import '../HelpIcon-xh488VXs.js';
27
+ import '../HelpIcon-EjtPpYCx.js';
28
28
  import '../primitives/Tooltip.js';
29
29
  import '../tooltip-BUYRFmEv.js';
30
30
  import '../index-CSggBaQF.js';
@@ -35,10 +35,10 @@ import '../index-Bo3AAQJp.js';
35
35
  import '../primitives/HoverCard.js';
36
36
  import '../Typography-CmILccNh.js';
37
37
  import '../index-CfriMyrd.js';
38
- import '../Button-C4c_dj-f.js';
38
+ import '../Button-DkIQvxAe.js';
39
39
  import 'react-router-dom';
40
40
  import '../primitives/Button.js';
41
- import '../button-CePY5zne.js';
41
+ import '../button-DTkEk06V.js';
42
42
  import '../primitives/Spinner.js';
43
43
  import 'react-i18next';
44
44
  import '../loader-circle-DycHUAWN.js';
@@ -15,10 +15,10 @@ import 'react/jsx-runtime';
15
15
  import 'react';
16
16
  import 'formik';
17
17
  import 'ramda';
18
- import '../Input-W8foyOcS.js';
18
+ import '../Input-Dm5ILPH3.js';
19
19
  import '../utils-BJnb9o5c.js';
20
20
  import '../primitives/Field.js';
21
- import '../HelpIcon-xh488VXs.js';
21
+ import '../HelpIcon-EjtPpYCx.js';
22
22
  import '../primitives/Tooltip.js';
23
23
  import '../tooltip-BUYRFmEv.js';
24
24
  import '../index-DNzunGHb.js';
@@ -45,17 +45,17 @@ import '../index-Bo3AAQJp.js';
45
45
  import '../primitives/HoverCard.js';
46
46
  import '../Typography-CmILccNh.js';
47
47
  import '../index-CfriMyrd.js';
48
- import '../Button-C4c_dj-f.js';
48
+ import '../Button-DkIQvxAe.js';
49
49
  import 'react-router-dom';
50
50
  import '../primitives/Button.js';
51
- import '../button-CePY5zne.js';
51
+ import '../button-DTkEk06V.js';
52
52
  import '../primitives/Spinner.js';
53
53
  import 'react-i18next';
54
54
  import '../loader-circle-DycHUAWN.js';
55
55
  import '../label-YEsizr2c.js';
56
56
  import '../separator-ByRsc-y-.js';
57
57
  import '../primitives/InputGroup.js';
58
- import '../input-group-DuITGkyB.js';
58
+ import '../input-group-Ba2bJ2DW.js';
59
59
  import '../input-CNbQc_tG.js';
60
60
  import '../textarea-BZIsQ5UD.js';
61
61
  import '../fieldIds-VpluAAMl.js';
@@ -63,9 +63,10 @@ import '../hyphenize-TRhMI0tl.js';
63
63
  import '../withIconSize-BonoFXeH.js';
64
64
  import '../Textarea-CUe09-sr.js';
65
65
  import '../primitives/Textarea.js';
66
- import '../Select-CLfVAG_p.js';
66
+ import '../Select-CLSJgvl6.js';
67
67
  import '../SelectFieldWrapper-D370CD4o.js';
68
- import '../Combobox-NgubHftk.js';
68
+ import '../Combobox-CCstgdEa.js';
69
+ import '../useAriaHiddenCleanup-BIUbPJ6V.js';
69
70
  import '../chevron-down-BNi0ntys.js';
70
71
  import '../x-_o2T3n6D.js';
71
72
  import '../check-Cpkv29p1.js';
@@ -96,6 +97,6 @@ import '../redux-BKH6DnBB.js';
96
97
  import '../MultiEmailInput-D2uHxkeV.js';
97
98
  import '../Dialog-Yw34WDqY.js';
98
99
  import '../primitives/Dialog.js';
99
- import '../dialog-CqXuhXNS.js';
100
+ import '../dialog-BG8Tjl78.js';
100
101
  import '../DialogTrigger-a3diAOif.js';
101
102
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * neeto-atoms ships two independent `aria-hidden` lock systems: Base UI's
3
+ * `markOthers` (Dialog, Sheet, Combobox) and the `aria-hidden` package pulled in
4
+ * by the Radix based primitives (Popover, Menu, Drawer, …). Each keeps its own
5
+ * reference counts, so when a Radix popup hides the page first and Base UI opens
6
+ * on top of it, Base UI records the page as "hidden by someone else" and skips
7
+ * removing `aria-hidden` when its own last popup closes. The page then stays out
8
+ * of the accessibility tree with nothing open.
9
+ *
10
+ * Mount this alongside a Base UI popup. It watches for `aria-hidden` being
11
+ * applied by a lock and clears those, and only those, once every lock has let go
12
+ * — an `aria-hidden` the page put there itself is never observed being applied
13
+ * and so is never touched.
14
+ */
15
+ export declare const useAriaHiddenCleanup: () => void;
16
+ /**
17
+ * Renders nothing; mount it inside the portal so the cleanup is scoped to the
18
+ * lifetime of the popup rather than to the component that declares it.
19
+ */
20
+ export declare const AriaHiddenCleanup: () => null;
package/dist/index.css CHANGED
@@ -22,6 +22,8 @@
22
22
  --color-popover-foreground: var(--popover-foreground);
23
23
  --color-primary: var(--primary);
24
24
  --color-primary-foreground: var(--primary-foreground);
25
+ --color-brand: var(--brand);
26
+ --color-brand-foreground: var(--brand-foreground);
25
27
  --color-secondary: var(--secondary);
26
28
  --color-secondary-foreground: var(--secondary-foreground);
27
29
  --color-muted: var(--muted);
@@ -93,6 +95,8 @@
93
95
  --popover-foreground: oklch(0.145 0 0);
94
96
  --primary: oklch(0.205 0 0);
95
97
  --primary-foreground: oklch(0.985 0 0);
98
+ --brand: oklch(0.5349 0.1023 173.46);
99
+ --brand-foreground: oklch(1 0 0);
96
100
  --secondary: oklch(0.97 0 0);
97
101
  --secondary-foreground: oklch(0.205 0 0);
98
102
  --muted: oklch(0.97 0 0);
@@ -153,6 +157,8 @@
153
157
  --popover-foreground: oklch(0.985 0 0);
154
158
  --primary: oklch(0.922 0 0);
155
159
  --primary-foreground: oklch(0.205 0 0);
160
+ --brand: oklch(0.55 0.102 173.46);
161
+ --brand-foreground: oklch(1 0 0);
156
162
  --secondary: oklch(0.269 0 0);
157
163
  --secondary-foreground: oklch(0.985 0 0);
158
164
  --muted: oklch(0.269 0 0);
package/dist/index.js CHANGED
@@ -5,27 +5,27 @@ export { DropdownMenu } from './components/DropdownMenu.js';
5
5
  export { u as useIsMobile } from './use-mobile-QbHL72cX.js';
6
6
  export { c as cn } from './utils-BJnb9o5c.js';
7
7
  export { A as Accordion } from './Accordion-DVMgPBum.js';
8
- export { A as Alert } from './Alert-BN00VOZx.js';
8
+ export { A as Alert } from './Alert-D5GO59Aj.js';
9
9
  export { A as Avatar } from './Avatar-Dg5-X_dH.js';
10
10
  export { B as Badge } from './Badge-Bl5cyQ5Q.js';
11
- export { b as Button } from './Button-C4c_dj-f.js';
11
+ export { b as Button } from './Button-DkIQvxAe.js';
12
12
  export { C as Callout } from './Callout-DJGi3MQR.js';
13
13
  export { C as Checkbox } from './Checkbox-BalUzegZ.js';
14
14
  export { C as ColorPicker } from './ColorPicker-ClnRUq9y.js';
15
- export { D as DataTable, u as useColumnOrdering, a as useColumnPinning, b as useColumnVisibility, c as useTablePagination, d as useTableSelection, e as useTableSort } from './DataTable-X455U4hi.js';
15
+ export { D as DataTable, u as useColumnOrdering, a as useColumnPinning, b as useColumnVisibility, c as useTablePagination, d as useTableSelection, e as useTableSort } from './DataTable-Dd2QcXL-.js';
16
16
  export { D as DatePicker } from './DatePicker-Ds_csFkl.js';
17
17
  export { D as Dialog } from './Dialog-Yw34WDqY.js';
18
18
  export { D as DirectionProvider } from './DirectionProvider-weqLz_BJ.js';
19
- export { E as Empty } from './Empty-DINS0Uu4.js';
20
- export { I as Input } from './Input-W8foyOcS.js';
19
+ export { E as Empty } from './Empty-Rbdjvttt.js';
20
+ export { I as Input } from './Input-Dm5ILPH3.js';
21
21
  export { K as Kbd } from './Kbd-CKfR8HlC.js';
22
- export { L as Label } from './Label-B-R4PNNq.js';
22
+ export { L as Label } from './Label-Cr83bru_.js';
23
23
  export { M as MultiEmailInput } from './MultiEmailInput-D2uHxkeV.js';
24
24
  export { P as Pagination } from './Pagination-yjG8uCpV.js';
25
25
  export { P as Popover } from './Popover-BHGvcdV2.js';
26
26
  export { P as Progress } from './Progress-DbtLbWf8.js';
27
27
  export { R as RadioGroup } from './RadioGroup-CBXByAMW.js';
28
- export { S as Select } from './Select-CLfVAG_p.js';
28
+ export { S as Select } from './Select-CLSJgvl6.js';
29
29
  export { S as Sheet } from './Sheet-D1MWtg1q.js';
30
30
  export { S as Slider } from './Slider-CxQdlyHZ.js';
31
31
  export { S as Spinner } from './Spinner-vfggfvEp.js';
@@ -70,7 +70,7 @@ import './index-yFgkK_AM.js';
70
70
  import './index-DT56XkyA.js';
71
71
  import './hyphenize-TRhMI0tl.js';
72
72
  import './primitives/Button.js';
73
- import './button-CePY5zne.js';
73
+ import './button-DTkEk06V.js';
74
74
  import './index-Bo3AAQJp.js';
75
75
  import './index-CfriMyrd.js';
76
76
  import './primitives/ButtonGroup.js';
@@ -81,7 +81,8 @@ import './primitives/Accordion.js';
81
81
  import './chevron-up-Bf2G3AAU.js';
82
82
  import './index-0o2E3Cnw.js';
83
83
  import './primitives/Dialog.js';
84
- import './dialog-CqXuhXNS.js';
84
+ import './useAriaHiddenCleanup-BIUbPJ6V.js';
85
+ import './dialog-BG8Tjl78.js';
85
86
  import './x-_o2T3n6D.js';
86
87
  import './DialogTrigger-a3diAOif.js';
87
88
  import './useOpenInteractionType-CVfxIsuz.js';
@@ -103,7 +104,7 @@ import './primitives/Checkbox.js';
103
104
  import './index-30QpKM0j.js';
104
105
  import './fieldIds-VpluAAMl.js';
105
106
  import './primitives/Field.js';
106
- import './HelpIcon-xh488VXs.js';
107
+ import './HelpIcon-EjtPpYCx.js';
107
108
  import './label-YEsizr2c.js';
108
109
  import 'react-colorful';
109
110
  import './primitives/Popover.js';
@@ -119,7 +120,7 @@ import 'dayjs';
119
120
  import 'dayjs/plugin/customParseFormat';
120
121
  import './primitives/Empty.js';
121
122
  import './primitives/InputGroup.js';
122
- import './input-group-DuITGkyB.js';
123
+ import './input-group-Ba2bJ2DW.js';
123
124
  import './input-CNbQc_tG.js';
124
125
  import './textarea-BZIsQ5UD.js';
125
126
  import './withIconSize-BonoFXeH.js';
@@ -129,9 +130,9 @@ import './primitives/HoverCard.js';
129
130
  import './primitives/Progress.js';
130
131
  import './primitives/RadioGroup.js';
131
132
  import './SelectFieldWrapper-D370CD4o.js';
132
- import './Combobox-NgubHftk.js';
133
+ import './Combobox-CCstgdEa.js';
133
134
  import './primitives/Sheet.js';
134
- import './sheet-B9oDGvvX.js';
135
+ import './sheet-BD8c3_Va.js';
135
136
  import './primitives/Slider.js';
136
137
  import './primitives/Switch.js';
137
138
  import './primitives/Tabs.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/utils/timezone.ts"],"sourcesContent":["import type { Dayjs } from \"dayjs\";\nimport { dayjs } from \"@bigbinary/neeto-commons-frontend/utils\";\n\n/**\n * Apply the configured timezone to a date value.\n * Strips the original timezone and reinterprets via neetocommons' dayjs wrapper.\n * Handles both single dates and arrays (for date ranges).\n */\nexport const getTimezoneAppliedDateTime = (\n inputDateTime: Dayjs | Dayjs[] | null\n): Dayjs | (Dayjs | null)[] | null => {\n const apply = (date: Dayjs | null): Dayjs | null =>\n date && typeof date.format === \"function\"\n ? dayjs(date.format(\"YYYY-MM-DD HH:mm:ss\"))\n : null;\n\n return Array.isArray(inputDateTime)\n ? inputDateTime.map(apply)\n : apply(inputDateTime);\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQO,MAAM,0BAAA,GAA6B,CACxC,aAAA,KACoC;AACpC,EAAA,MAAM,KAAA,GAAQ,CAAC,IAAA,KACb,IAAA,IAAQ,OAAO,IAAA,CAAK,MAAA,KAAW,UAAA,GAC3B,KAAA,CAAM,IAAA,CAAK,MAAA,CAAO,qBAAqB,CAAC,CAAA,GACxC,IAAA;AAEN,EAAA,OAAO,KAAA,CAAM,QAAQ,aAAa,CAAA,GAC9B,cAAc,GAAA,CAAI,KAAK,CAAA,GACvB,KAAA,CAAM,aAAa,CAAA;AACzB;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../src/utils/timezone.ts"],"sourcesContent":["import type { Dayjs } from \"dayjs\";\nimport { dayjs } from \"@bigbinary/neeto-commons-frontend/utils\";\n\n/**\n * Apply the configured timezone to a date value.\n * Strips the original timezone and reinterprets via neetocommons' dayjs wrapper.\n * Handles both single dates and arrays (for date ranges).\n */\nexport const getTimezoneAppliedDateTime = (\n inputDateTime: Dayjs | Dayjs[] | null\n): Dayjs | (Dayjs | null)[] | null => {\n const apply = (date: Dayjs | null): Dayjs | null =>\n date && typeof date.format === \"function\"\n ? dayjs(date.format(\"YYYY-MM-DD HH:mm:ss\"))\n : null;\n\n return Array.isArray(inputDateTime)\n ? inputDateTime.map(apply)\n : apply(inputDateTime);\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQO,MAAM,0BAAA,GAA6B,CACxC,aAAA,KACoC;AACpC,EAAA,MAAM,KAAA,GAAQ,CAAC,IAAA,KACb,IAAA,IAAQ,OAAO,IAAA,CAAK,MAAA,KAAW,UAAA,GAC3B,KAAA,CAAM,IAAA,CAAK,MAAA,CAAO,qBAAqB,CAAC,CAAA,GACxC,IAAA;AAEN,EAAA,OAAO,KAAA,CAAM,QAAQ,aAAa,CAAA,GAC9B,cAAc,GAAA,CAAI,KAAK,CAAA,GACvB,KAAA,CAAM,aAAa,CAAA;AACzB;;;;"}
@@ -2,7 +2,7 @@ import { jsx } from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import { c as cva } from './index-Bo3AAQJp.js';
4
4
  import { c as cn } from './utils-BJnb9o5c.js';
5
- import { B as Button } from './button-CePY5zne.js';
5
+ import { B as Button } from './button-DTkEk06V.js';
6
6
  import { I as Input } from './input-CNbQc_tG.js';
7
7
  import { T as Textarea } from './textarea-BZIsQ5UD.js';
8
8
 
@@ -132,4 +132,4 @@ const InputGroupTextarea = React.forwardRef(({ className, ...props }, ref) => /*
132
132
  InputGroupTextarea.displayName = "InputGroupTextarea";
133
133
 
134
134
  export { InputGroupInput as I, InputGroupTextarea as a, InputGroup as b, InputGroupAddon as c, InputGroupText as d, InputGroupButton as e };
135
- //# sourceMappingURL=input-group-DuITGkyB.js.map
135
+ //# sourceMappingURL=input-group-Ba2bJ2DW.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"input-group-DuITGkyB.js","sources":["../src/shadcn/components/input-group.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"src/shadcn/lib/utils\"\nimport { Button } from \"src/shadcn/components/button\"\nimport { Input } from \"src/shadcn/components/input\"\nimport { Textarea } from \"src/shadcn/components/textarea\"\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n \"group/input-group relative flex h-8 w-full min-w-0 items-center rounded-lg border border-input transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:bg-input/50 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:bg-input/30 dark:has-disabled:bg-input/80 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pe-1.5 has-[>[data-align=inline-start]]:[&>input]:ps-1.5\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst inputGroupAddonVariants = cva(\n \"flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n align: {\n \"inline-start\":\n \"order-first ps-2 has-[>button]:ms-[-0.3rem] has-[>kbd]:ms-[-0.15rem]\",\n \"inline-end\":\n \"order-last pe-2 has-[>button]:me-[-0.3rem] has-[>kbd]:me-[-0.15rem]\",\n \"block-start\":\n \"order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2\",\n \"block-end\":\n \"order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n }\n)\n\nfunction InputGroupAddon({\n className,\n align = \"inline-start\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus()\n }}\n {...props}\n />\n )\n}\n\nconst inputGroupButtonVariants = cva(\n \"flex items-center gap-2 text-sm shadow-none\",\n {\n variants: {\n size: {\n xs: \"h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: \"\",\n \"icon-xs\":\n \"size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0\",\n \"icon-sm\": \"size-8 p-0 has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n }\n)\n\nfunction InputGroupButton({\n className,\n type = \"button\",\n variant = \"ghost\",\n size = \"xs\",\n ...props\n}: Omit<React.ComponentProps<typeof Button>, \"size\"> &\n VariantProps<typeof inputGroupButtonVariants>) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n )\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n className={cn(\n \"flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst InputGroupInput = React.forwardRef<\n HTMLInputElement,\n React.ComponentProps<\"input\">\n>(({ className, ...props }, ref) => (\n <Input\n ref={ref}\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent\",\n className\n )}\n {...props}\n />\n))\n\nInputGroupInput.displayName = \"InputGroupInput\"\n\nconst InputGroupTextarea = React.forwardRef<\n HTMLTextAreaElement,\n React.ComponentProps<\"textarea\">\n>(({ className, ...props }, ref) => (\n <Textarea\n ref={ref}\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent\",\n className\n )}\n {...props}\n />\n))\n\nInputGroupTextarea.displayName = \"InputGroupTextarea\"\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"input-group-Ba2bJ2DW.js","sources":["../src/shadcn/components/input-group.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"src/shadcn/lib/utils\"\nimport { Button } from \"src/shadcn/components/button\"\nimport { Input } from \"src/shadcn/components/input\"\nimport { Textarea } from \"src/shadcn/components/textarea\"\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n \"group/input-group relative flex h-8 w-full min-w-0 items-center rounded-lg border border-input transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:bg-input/50 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:bg-input/30 dark:has-disabled:bg-input/80 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pe-1.5 has-[>[data-align=inline-start]]:[&>input]:ps-1.5\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst inputGroupAddonVariants = cva(\n \"flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n align: {\n \"inline-start\":\n \"order-first ps-2 has-[>button]:ms-[-0.3rem] has-[>kbd]:ms-[-0.15rem]\",\n \"inline-end\":\n \"order-last pe-2 has-[>button]:me-[-0.3rem] has-[>kbd]:me-[-0.15rem]\",\n \"block-start\":\n \"order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2\",\n \"block-end\":\n \"order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n }\n)\n\nfunction InputGroupAddon({\n className,\n align = \"inline-start\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus()\n }}\n {...props}\n />\n )\n}\n\nconst inputGroupButtonVariants = cva(\n \"flex items-center gap-2 text-sm shadow-none\",\n {\n variants: {\n size: {\n xs: \"h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: \"\",\n \"icon-xs\":\n \"size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0\",\n \"icon-sm\": \"size-8 p-0 has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n }\n)\n\nfunction InputGroupButton({\n className,\n type = \"button\",\n variant = \"ghost\",\n size = \"xs\",\n ...props\n}: Omit<React.ComponentProps<typeof Button>, \"size\"> &\n VariantProps<typeof inputGroupButtonVariants>) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n )\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n className={cn(\n \"flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst InputGroupInput = React.forwardRef<\n HTMLInputElement,\n React.ComponentProps<\"input\">\n>(({ className, ...props }, ref) => (\n <Input\n ref={ref}\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent\",\n className\n )}\n {...props}\n />\n))\n\nInputGroupInput.displayName = \"InputGroupInput\"\n\nconst InputGroupTextarea = React.forwardRef<\n HTMLTextAreaElement,\n React.ComponentProps<\"textarea\">\n>(({ className, ...props }, ref) => (\n <Textarea\n ref={ref}\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent\",\n className\n )}\n {...props}\n />\n))\n\nInputGroupTextarea.displayName = \"InputGroupTextarea\"\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n}\n"],"names":[],"mappings":"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"}