@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
@@ -5,7 +5,7 @@ import { Empty as Empty$1, EmptyHeader, EmptyMedia, EmptyTitle, EmptyDescription
5
5
  import { TooltipProvider, Tooltip, TooltipTrigger, TooltipContent } from './primitives/Tooltip.js';
6
6
  import { r as renderIcon } from './renderIcon-C6twJSqH.js';
7
7
  import { T as Typography } from './Typography-CmILccNh.js';
8
- import { b as Button } from './Button-C4c_dj-f.js';
8
+ import { b as Button } from './Button-DkIQvxAe.js';
9
9
 
10
10
  function MaybeTooltipButton({
11
11
  buttonProps,
@@ -83,4 +83,4 @@ const Empty = forwardRef(
83
83
  Empty.displayName = "Empty";
84
84
 
85
85
  export { Empty as E };
86
- //# sourceMappingURL=Empty-DINS0Uu4.js.map
86
+ //# sourceMappingURL=Empty-Rbdjvttt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Empty-DINS0Uu4.js","sources":["../src/components/Empty/Empty.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Empty as PrimitiveEmpty,\n EmptyHeader,\n EmptyTitle,\n EmptyDescription,\n EmptyContent,\n EmptyMedia,\n} from \"src/primitives/Empty\";\nimport { Button } from \"src/components/Button\";\nimport { Typography } from \"src/components/Typography\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"src/primitives/Tooltip\";\nimport { renderIcon, type IconProp } from \"src/shared/renderIcon\";\n\nexport interface EmptyProps extends React.ComponentProps<\"div\"> {\n /** Image URL or JSX for the media area. */\n image?: string | React.ReactNode;\n /** Icon for the media area (rendered inside EmptyMedia with variant=\"icon\"). */\n icon?: IconProp;\n /** Empty state title. */\n title?: string;\n /** Description text or JSX. */\n description?: React.ReactNode;\n /** Additional help text below the description. */\n helpText?: React.ReactNode;\n /** Props forwarded to the primary action Button. */\n primaryButtonProps?: React.ComponentProps<typeof Button>;\n /** Props forwarded to the secondary action Button. */\n secondaryButtonProps?: React.ComponentProps<typeof Button>;\n /** Text displayed between the primary and secondary buttons (e.g., \"or\"). */\n buttonSeparatorText?: string;\n /** Show tooltip on disabled buttons using their label as content. */\n showTooltipWhenButtonDisabled?: boolean;\n /** Additional CSS class names. */\n className?: string;\n /** Custom data-testid attribute for the title. */\n dataTestid?: string;\n /** Class applied to inner slots (header/content); overrides default max-width if a `max-w-*` token is provided. */\n innerClassName?: string;\n}\n\nfunction MaybeTooltipButton({\n buttonProps,\n showTooltipWhenDisabled,\n defaultVariant,\n dataTestid,\n}: {\n buttonProps: React.ComponentProps<typeof Button>;\n showTooltipWhenDisabled: boolean;\n defaultVariant: \"default\" | \"outline\";\n dataTestid: string;\n}) {\n const button = (\n <Button\n data-testid={dataTestid}\n variant={defaultVariant}\n {...buttonProps}\n />\n );\n\n if (showTooltipWhenDisabled && buttonProps.disabled && buttonProps.label) {\n return (\n <TooltipProvider delayDuration={0}>\n <Tooltip>\n <TooltipTrigger asChild>\n <span className=\"inline-flex\">{button}</span>\n </TooltipTrigger>\n <TooltipContent data-testid=\"tooltip-box\">\n {buttonProps.label}\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n }\n\n return button;\n}\n\nconst Empty = forwardRef<HTMLDivElement, EmptyProps>(\n (\n {\n image,\n icon,\n title,\n description,\n helpText,\n primaryButtonProps,\n secondaryButtonProps,\n buttonSeparatorText,\n showTooltipWhenButtonDisabled = false,\n className,\n dataTestid,\n ...otherProps\n },\n ref\n ) => {\n const hasMedia = image || icon;\n const hasButtons = primaryButtonProps || secondaryButtonProps;\n\n return (\n <PrimitiveEmpty ref={ref} className={cn(className)} {...otherProps}>\n <EmptyHeader>\n {hasMedia && (\n <>\n {image && (\n <EmptyMedia>\n {typeof image === \"string\" ? (\n <img src={image} alt={title ?? \"\"} />\n ) : (\n image\n )}\n </EmptyMedia>\n )}\n {!image && icon && (\n <EmptyMedia variant=\"icon\">{renderIcon(icon)}</EmptyMedia>\n )}\n </>\n )}\n {title && (\n <Typography variant=\"h4\" asChild>\n <EmptyTitle data-testid={dataTestid ?? \"empty-state-title\"}>\n {title}\n </EmptyTitle>\n </Typography>\n )}\n {description && (\n <Typography variant=\"body3\" color=\"muted\" asChild>\n <EmptyDescription data-testid=\"empty-state-description\">\n {description}\n </EmptyDescription>\n </Typography>\n )}\n {helpText && (\n <Typography variant=\"body3\" color=\"muted\" asChild>\n <p data-testid=\"empty-state-help-text\">{helpText}</p>\n </Typography>\n )}\n </EmptyHeader>\n\n {hasButtons && (\n <EmptyContent>\n <div className=\"flex flex-wrap items-center justify-center gap-2\">\n {primaryButtonProps && (\n <MaybeTooltipButton\n buttonProps={primaryButtonProps}\n dataTestid=\"empty-state-primary-button\"\n showTooltipWhenDisabled={showTooltipWhenButtonDisabled}\n defaultVariant=\"default\"\n />\n )}\n {buttonSeparatorText &&\n primaryButtonProps &&\n secondaryButtonProps && (\n <Typography variant=\"body3\" color=\"muted\" asChild>\n <span>{buttonSeparatorText}</span>\n </Typography>\n )}\n {secondaryButtonProps && (\n <MaybeTooltipButton\n buttonProps={secondaryButtonProps}\n dataTestid=\"empty-state-secondary-button\"\n showTooltipWhenDisabled={showTooltipWhenButtonDisabled}\n defaultVariant=\"outline\"\n />\n )}\n </div>\n </EmptyContent>\n )}\n </PrimitiveEmpty>\n );\n }\n);\n\nEmpty.displayName = \"Empty\";\n\nexport { Empty };\n"],"names":["PrimitiveEmpty"],"mappings":"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"}
1
+ {"version":3,"file":"Empty-Rbdjvttt.js","sources":["../src/components/Empty/Empty.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Empty as PrimitiveEmpty,\n EmptyHeader,\n EmptyTitle,\n EmptyDescription,\n EmptyContent,\n EmptyMedia,\n} from \"src/primitives/Empty\";\nimport { Button } from \"src/components/Button\";\nimport { Typography } from \"src/components/Typography\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"src/primitives/Tooltip\";\nimport { renderIcon, type IconProp } from \"src/shared/renderIcon\";\n\nexport interface EmptyProps extends React.ComponentProps<\"div\"> {\n /** Image URL or JSX for the media area. */\n image?: string | React.ReactNode;\n /** Icon for the media area (rendered inside EmptyMedia with variant=\"icon\"). */\n icon?: IconProp;\n /** Empty state title. */\n title?: string;\n /** Description text or JSX. */\n description?: React.ReactNode;\n /** Additional help text below the description. */\n helpText?: React.ReactNode;\n /** Props forwarded to the primary action Button. */\n primaryButtonProps?: React.ComponentProps<typeof Button>;\n /** Props forwarded to the secondary action Button. */\n secondaryButtonProps?: React.ComponentProps<typeof Button>;\n /** Text displayed between the primary and secondary buttons (e.g., \"or\"). */\n buttonSeparatorText?: string;\n /** Show tooltip on disabled buttons using their label as content. */\n showTooltipWhenButtonDisabled?: boolean;\n /** Additional CSS class names. */\n className?: string;\n /** Custom data-testid attribute for the title. */\n dataTestid?: string;\n /** Class applied to inner slots (header/content); overrides default max-width if a `max-w-*` token is provided. */\n innerClassName?: string;\n}\n\nfunction MaybeTooltipButton({\n buttonProps,\n showTooltipWhenDisabled,\n defaultVariant,\n dataTestid,\n}: {\n buttonProps: React.ComponentProps<typeof Button>;\n showTooltipWhenDisabled: boolean;\n defaultVariant: \"default\" | \"outline\";\n dataTestid: string;\n}) {\n const button = (\n <Button\n data-testid={dataTestid}\n variant={defaultVariant}\n {...buttonProps}\n />\n );\n\n if (showTooltipWhenDisabled && buttonProps.disabled && buttonProps.label) {\n return (\n <TooltipProvider delayDuration={0}>\n <Tooltip>\n <TooltipTrigger asChild>\n <span className=\"inline-flex\">{button}</span>\n </TooltipTrigger>\n <TooltipContent data-testid=\"tooltip-box\">\n {buttonProps.label}\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n }\n\n return button;\n}\n\nconst Empty = forwardRef<HTMLDivElement, EmptyProps>(\n (\n {\n image,\n icon,\n title,\n description,\n helpText,\n primaryButtonProps,\n secondaryButtonProps,\n buttonSeparatorText,\n showTooltipWhenButtonDisabled = false,\n className,\n dataTestid,\n ...otherProps\n },\n ref\n ) => {\n const hasMedia = image || icon;\n const hasButtons = primaryButtonProps || secondaryButtonProps;\n\n return (\n <PrimitiveEmpty ref={ref} className={cn(className)} {...otherProps}>\n <EmptyHeader>\n {hasMedia && (\n <>\n {image && (\n <EmptyMedia>\n {typeof image === \"string\" ? (\n <img src={image} alt={title ?? \"\"} />\n ) : (\n image\n )}\n </EmptyMedia>\n )}\n {!image && icon && (\n <EmptyMedia variant=\"icon\">{renderIcon(icon)}</EmptyMedia>\n )}\n </>\n )}\n {title && (\n <Typography variant=\"h4\" asChild>\n <EmptyTitle data-testid={dataTestid ?? \"empty-state-title\"}>\n {title}\n </EmptyTitle>\n </Typography>\n )}\n {description && (\n <Typography variant=\"body3\" color=\"muted\" asChild>\n <EmptyDescription data-testid=\"empty-state-description\">\n {description}\n </EmptyDescription>\n </Typography>\n )}\n {helpText && (\n <Typography variant=\"body3\" color=\"muted\" asChild>\n <p data-testid=\"empty-state-help-text\">{helpText}</p>\n </Typography>\n )}\n </EmptyHeader>\n\n {hasButtons && (\n <EmptyContent>\n <div className=\"flex flex-wrap items-center justify-center gap-2\">\n {primaryButtonProps && (\n <MaybeTooltipButton\n buttonProps={primaryButtonProps}\n dataTestid=\"empty-state-primary-button\"\n showTooltipWhenDisabled={showTooltipWhenButtonDisabled}\n defaultVariant=\"default\"\n />\n )}\n {buttonSeparatorText &&\n primaryButtonProps &&\n secondaryButtonProps && (\n <Typography variant=\"body3\" color=\"muted\" asChild>\n <span>{buttonSeparatorText}</span>\n </Typography>\n )}\n {secondaryButtonProps && (\n <MaybeTooltipButton\n buttonProps={secondaryButtonProps}\n dataTestid=\"empty-state-secondary-button\"\n showTooltipWhenDisabled={showTooltipWhenButtonDisabled}\n defaultVariant=\"outline\"\n />\n )}\n </div>\n </EmptyContent>\n )}\n </PrimitiveEmpty>\n );\n }\n);\n\nEmpty.displayName = \"Empty\";\n\nexport { Empty };\n"],"names":["PrimitiveEmpty"],"mappings":"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"}
@@ -4,7 +4,7 @@ import { r as renderIcon } from './renderIcon-C6twJSqH.js';
4
4
  import { c as cn } from './utils-BJnb9o5c.js';
5
5
  import { c as createLucideIcon } from './createLucideIcon-C8ycilSN.js';
6
6
  import { P as Popover } from './Popover-BHGvcdV2.js';
7
- import { b as Button } from './Button-C4c_dj-f.js';
7
+ import { b as Button } from './Button-DkIQvxAe.js';
8
8
 
9
9
  /**
10
10
  * @license lucide-react v0.577.0 - ISC
@@ -78,4 +78,4 @@ const HelpIcon = (helpIconProps) => {
78
78
  };
79
79
 
80
80
  export { HelpIcon as H };
81
- //# sourceMappingURL=HelpIcon-xh488VXs.js.map
81
+ //# sourceMappingURL=HelpIcon-EjtPpYCx.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HelpIcon-xh488VXs.js","sources":["../node_modules/lucide-react/dist/esm/icons/circle-question-mark.js","../src/shared/HelpIcon.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.577.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\", key: \"1u773s\" }],\n [\"path\", { d: \"M12 17h.01\", key: \"p32p05\" }]\n];\nconst CircleQuestionMark = createLucideIcon(\"circle-question-mark\", __iconNode);\n\nexport { __iconNode, CircleQuestionMark as default };\n//# sourceMappingURL=circle-question-mark.js.map\n","import type React from \"react\";\n\nimport { CircleHelpIcon } from \"lucide-react\";\n\nimport { Button, type ButtonProps } from \"src/components/Button\";\nimport { Popover } from \"src/components/Popover\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"src/primitives/Tooltip\";\nimport { renderIcon, type IconProp } from \"src/shared/renderIcon\";\nimport { cn } from \"src/shadcn/lib/utils\";\n\nconst SIDE_MAP: Record<string, \"top\" | \"right\" | \"bottom\" | \"left\"> = {\n top: \"top\",\n bottom: \"bottom\",\n left: \"left\",\n right: \"right\",\n auto: \"top\",\n};\n\nexport interface HelpIconTooltipProps {\n /** Tooltip content. */\n content?: React.ReactNode;\n /** Tooltip position. */\n position?: string;\n}\n\nexport interface HelpIconPopoverProps {\n /** Popover title. */\n title?: React.ReactNode;\n /** Popover description. */\n description?: React.ReactNode;\n /** Props for an optional help link button inside the popover. */\n helpLinkProps?: ButtonProps;\n}\n\nexport interface HelpIconProps {\n /** Click handler on the help icon. */\n onClick?: () => void;\n /** Custom icon. Defaults to CircleHelpIcon. */\n icon?: IconProp;\n /** Show a tooltip on hover. */\n tooltipProps?: HelpIconTooltipProps;\n /** Show a popover on hover with title, description, and optional link. */\n popoverProps?: HelpIconPopoverProps;\n /** Additional class name for the help icon. */\n className?: string;\n}\n\nexport const HelpIcon = (helpIconProps: HelpIconProps) => {\n const icon = helpIconProps.icon ?? CircleHelpIcon;\n\n const iconElement = (\n <span\n className={cn(\n \"inline-flex cursor-help text-muted-foreground transition-colors hover:text-foreground\",\n helpIconProps.onClick && \"cursor-pointer\",\n helpIconProps.className\n )}\n onClick={helpIconProps.onClick}\n >\n {renderIcon(icon, \"size-3.5\")}\n </span>\n );\n\n if (helpIconProps.popoverProps) {\n const { title, description, helpLinkProps } = helpIconProps.popoverProps;\n\n return (\n <Popover trigger={iconElement}>\n {title && (\n <Popover.Title data-testid=\"help-popover-title\">\n {title}\n </Popover.Title>\n )}\n {description && (\n <p\n className=\"text-sm text-muted-foreground\"\n data-testid=\"help-popover-description\"\n >\n {description}\n </p>\n )}\n {helpLinkProps && (\n <Button\n variant=\"link\"\n size=\"sm\"\n className=\"mt-1 h-auto self-start p-0\"\n data-testid=\"help-popover-link-button\"\n {...helpLinkProps}\n href={helpLinkProps.href}\n />\n )}\n </Popover>\n );\n }\n\n if (helpIconProps.tooltipProps?.content) {\n const side =\n SIDE_MAP[helpIconProps.tooltipProps.position ?? \"auto\"] ?? \"top\";\n\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>{iconElement}</TooltipTrigger>\n <TooltipContent side={side}>\n {helpIconProps.tooltipProps.content}\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n }\n\n return iconElement;\n};\n"],"names":["CircleHelpIcon"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;;;AAIA,MAAM,UAAU,GAAG;AACnB,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AAC5D,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,sCAAsC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AACxE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE;AAC7C,CAAC;AACD,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,sBAAsB,EAAE,UAAU,CAAC;;ACC/E,MAAM,QAAA,GAAgE;AAAA,EACpE,GAAA,EAAK,KAAA;AAAA,EACL,MAAA,EAAQ,QAAA;AAAA,EACR,IAAA,EAAM,MAAA;AAAA,EACN,KAAA,EAAO,OAAA;AAAA,EACP,IAAA,EAAM;AACR,CAAA;AA+BO,MAAM,QAAA,GAAW,CAAC,aAAA,KAAiC;AACxD,EAAA,MAAM,IAAA,GAAO,cAAc,IAAA,IAAQA,kBAAA;AAEnC,EAAA,MAAM,WAAA,mBACJ,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,uFAAA;AAAA,QACA,cAAc,OAAA,IAAW,gBAAA;AAAA,QACzB,aAAA,CAAc;AAAA,OAChB;AAAA,MACA,SAAS,aAAA,CAAc,OAAA;AAAA,MAEtB,QAAA,EAAA,UAAA,CAAW,MAAM,UAAU;AAAA;AAAA,GAC9B;AAGF,EAAA,IAAI,cAAc,YAAA,EAAc;AAC9B,IAAA,MAAM,EAAE,KAAA,EAAO,WAAA,EAAa,aAAA,KAAkB,aAAA,CAAc,YAAA;AAE5D,IAAA,uBACE,IAAA,CAAC,OAAA,EAAA,EAAQ,OAAA,EAAS,WAAA,EACf,QAAA,EAAA;AAAA,MAAA,KAAA,wBACE,OAAA,CAAQ,KAAA,EAAR,EAAc,aAAA,EAAY,sBACxB,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,MAED,WAAA,oBACC,GAAA;AAAA,QAAC,GAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,+BAAA;AAAA,UACV,aAAA,EAAY,0BAAA;AAAA,UAEX,QAAA,EAAA;AAAA;AAAA,OACH;AAAA,MAED,aAAA,oBACC,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAK,IAAA;AAAA,UACL,SAAA,EAAU,4BAAA;AAAA,UACV,aAAA,EAAY,0BAAA;AAAA,UACX,GAAG,aAAA;AAAA,UACJ,MAAM,aAAA,CAAc;AAAA;AAAA;AACtB,KAAA,EAEJ,CAAA;AAAA,EAEJ;AAEA,EAAA,IAAI,aAAA,CAAc,cAAc,OAAA,EAAS;AACvC,IAAA,MAAM,OACJ,QAAA,CAAS,aAAA,CAAc,YAAA,CAAa,QAAA,IAAY,MAAM,CAAA,IAAK,KAAA;AAE7D,IAAA,uBACE,GAAA,CAAC,eAAA,EAAA,EACC,QAAA,kBAAA,IAAA,CAAC,OAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,cAAA,EAAA,EAAe,OAAA,EAAO,IAAA,EAAE,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,sBACrC,GAAA,CAAC,cAAA,EAAA,EAAe,IAAA,EACb,QAAA,EAAA,aAAA,CAAc,aAAa,OAAA,EAC9B;AAAA,KAAA,EACF,CAAA,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,OAAO,WAAA;AACT;;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"HelpIcon-EjtPpYCx.js","sources":["../node_modules/lucide-react/dist/esm/icons/circle-question-mark.js","../src/shared/HelpIcon.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.577.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\", key: \"1u773s\" }],\n [\"path\", { d: \"M12 17h.01\", key: \"p32p05\" }]\n];\nconst CircleQuestionMark = createLucideIcon(\"circle-question-mark\", __iconNode);\n\nexport { __iconNode, CircleQuestionMark as default };\n//# sourceMappingURL=circle-question-mark.js.map\n","import type React from \"react\";\n\nimport { CircleHelpIcon } from \"lucide-react\";\n\nimport { Button, type ButtonProps } from \"src/components/Button\";\nimport { Popover } from \"src/components/Popover\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"src/primitives/Tooltip\";\nimport { renderIcon, type IconProp } from \"src/shared/renderIcon\";\nimport { cn } from \"src/shadcn/lib/utils\";\n\nconst SIDE_MAP: Record<string, \"top\" | \"right\" | \"bottom\" | \"left\"> = {\n top: \"top\",\n bottom: \"bottom\",\n left: \"left\",\n right: \"right\",\n auto: \"top\",\n};\n\nexport interface HelpIconTooltipProps {\n /** Tooltip content. */\n content?: React.ReactNode;\n /** Tooltip position. */\n position?: string;\n}\n\nexport interface HelpIconPopoverProps {\n /** Popover title. */\n title?: React.ReactNode;\n /** Popover description. */\n description?: React.ReactNode;\n /** Props for an optional help link button inside the popover. */\n helpLinkProps?: ButtonProps;\n}\n\nexport interface HelpIconProps {\n /** Click handler on the help icon. */\n onClick?: () => void;\n /** Custom icon. Defaults to CircleHelpIcon. */\n icon?: IconProp;\n /** Show a tooltip on hover. */\n tooltipProps?: HelpIconTooltipProps;\n /** Show a popover on hover with title, description, and optional link. */\n popoverProps?: HelpIconPopoverProps;\n /** Additional class name for the help icon. */\n className?: string;\n}\n\nexport const HelpIcon = (helpIconProps: HelpIconProps) => {\n const icon = helpIconProps.icon ?? CircleHelpIcon;\n\n const iconElement = (\n <span\n className={cn(\n \"inline-flex cursor-help text-muted-foreground transition-colors hover:text-foreground\",\n helpIconProps.onClick && \"cursor-pointer\",\n helpIconProps.className\n )}\n onClick={helpIconProps.onClick}\n >\n {renderIcon(icon, \"size-3.5\")}\n </span>\n );\n\n if (helpIconProps.popoverProps) {\n const { title, description, helpLinkProps } = helpIconProps.popoverProps;\n\n return (\n <Popover trigger={iconElement}>\n {title && (\n <Popover.Title data-testid=\"help-popover-title\">\n {title}\n </Popover.Title>\n )}\n {description && (\n <p\n className=\"text-sm text-muted-foreground\"\n data-testid=\"help-popover-description\"\n >\n {description}\n </p>\n )}\n {helpLinkProps && (\n <Button\n variant=\"link\"\n size=\"sm\"\n className=\"mt-1 h-auto self-start p-0\"\n data-testid=\"help-popover-link-button\"\n {...helpLinkProps}\n href={helpLinkProps.href}\n />\n )}\n </Popover>\n );\n }\n\n if (helpIconProps.tooltipProps?.content) {\n const side =\n SIDE_MAP[helpIconProps.tooltipProps.position ?? \"auto\"] ?? \"top\";\n\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>{iconElement}</TooltipTrigger>\n <TooltipContent side={side}>\n {helpIconProps.tooltipProps.content}\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n }\n\n return iconElement;\n};\n"],"names":["CircleHelpIcon"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;;;AAIA,MAAM,UAAU,GAAG;AACnB,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AAC5D,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,sCAAsC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AACxE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE;AAC7C,CAAC;AACD,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,sBAAsB,EAAE,UAAU,CAAC;;ACC/E,MAAM,QAAA,GAAgE;AAAA,EACpE,GAAA,EAAK,KAAA;AAAA,EACL,MAAA,EAAQ,QAAA;AAAA,EACR,IAAA,EAAM,MAAA;AAAA,EACN,KAAA,EAAO,OAAA;AAAA,EACP,IAAA,EAAM;AACR,CAAA;AA+BO,MAAM,QAAA,GAAW,CAAC,aAAA,KAAiC;AACxD,EAAA,MAAM,IAAA,GAAO,cAAc,IAAA,IAAQA,kBAAA;AAEnC,EAAA,MAAM,WAAA,mBACJ,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,uFAAA;AAAA,QACA,cAAc,OAAA,IAAW,gBAAA;AAAA,QACzB,aAAA,CAAc;AAAA,OAChB;AAAA,MACA,SAAS,aAAA,CAAc,OAAA;AAAA,MAEtB,QAAA,EAAA,UAAA,CAAW,MAAM,UAAU;AAAA;AAAA,GAC9B;AAGF,EAAA,IAAI,cAAc,YAAA,EAAc;AAC9B,IAAA,MAAM,EAAE,KAAA,EAAO,WAAA,EAAa,aAAA,KAAkB,aAAA,CAAc,YAAA;AAE5D,IAAA,uBACE,IAAA,CAAC,OAAA,EAAA,EAAQ,OAAA,EAAS,WAAA,EACf,QAAA,EAAA;AAAA,MAAA,KAAA,wBACE,OAAA,CAAQ,KAAA,EAAR,EAAc,aAAA,EAAY,sBACxB,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,MAED,WAAA,oBACC,GAAA;AAAA,QAAC,GAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,+BAAA;AAAA,UACV,aAAA,EAAY,0BAAA;AAAA,UAEX,QAAA,EAAA;AAAA;AAAA,OACH;AAAA,MAED,aAAA,oBACC,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAK,IAAA;AAAA,UACL,SAAA,EAAU,4BAAA;AAAA,UACV,aAAA,EAAY,0BAAA;AAAA,UACX,GAAG,aAAA;AAAA,UACJ,MAAM,aAAA,CAAc;AAAA;AAAA;AACtB,KAAA,EAEJ,CAAA;AAAA,EAEJ;AAEA,EAAA,IAAI,aAAA,CAAc,cAAc,OAAA,EAAS;AACvC,IAAA,MAAM,OACJ,QAAA,CAAS,aAAA,CAAc,YAAA,CAAa,QAAA,IAAY,MAAM,CAAA,IAAK,KAAA;AAE7D,IAAA,uBACE,GAAA,CAAC,eAAA,EAAA,EACC,QAAA,kBAAA,IAAA,CAAC,OAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,cAAA,EAAA,EAAe,OAAA,EAAO,IAAA,EAAE,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,sBACrC,GAAA,CAAC,cAAA,EAAA,EAAe,IAAA,EACb,QAAA,EAAA,aAAA,CAAc,aAAa,OAAA,EAC9B;AAAA,KAAA,EACF,CAAA,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,OAAO,WAAA;AACT;;;;","x_google_ignoreList":[0]}
@@ -1,7 +1,7 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
1
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
2
  import { forwardRef, useId, useState } from 'react';
3
3
  import { c as cn } from './utils-BJnb9o5c.js';
4
- import { Field, FieldLabel, FieldContent, FieldError, FieldDescription } from './primitives/Field.js';
4
+ import { Field, FieldLabel, FieldContent, FieldDescription, FieldError } from './primitives/Field.js';
5
5
  import { InputGroup, InputGroupAddon, InputGroupText, InputGroupInput } from './primitives/InputGroup.js';
6
6
  import { b as buildTestIdPrefix } from './fieldIds-VpluAAMl.js';
7
7
  import { w as withIconSize } from './withIconSize-BonoFXeH.js';
@@ -165,7 +165,7 @@ const Input = forwardRef(
165
165
  if (type === "number") e.target.blur();
166
166
  };
167
167
  const ariaDescribedBy = [error ? errorId : null, helpText ? helpTextId : null].filter(Boolean).join(" ") || void 0;
168
- const hasField = !!(label || error || helpText);
168
+ const hasField = !!(label || helpText);
169
169
  const sizeConfig = SIZE_CONFIG[size];
170
170
  const testIdPrefix = buildTestIdPrefix(dataTestId, label);
171
171
  const inputGroup = /* @__PURE__ */ jsxs(
@@ -212,8 +212,12 @@ const Input = forwardRef(
212
212
  ]
213
213
  }
214
214
  );
215
+ const errorMessage = !!error && /* @__PURE__ */ jsx(FieldError, { id: errorId, "data-testid": `${testIdPrefix}-input-error`, children: error });
215
216
  if (!hasField) {
216
- return inputGroup;
217
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
218
+ inputGroup,
219
+ errorMessage
220
+ ] });
217
221
  }
218
222
  return /* @__PURE__ */ jsxs(
219
223
  Field,
@@ -253,14 +257,7 @@ const Input = forwardRef(
253
257
  ] }),
254
258
  /* @__PURE__ */ jsxs(FieldContent, { children: [
255
259
  inputGroup,
256
- !!error && /* @__PURE__ */ jsx(
257
- FieldError,
258
- {
259
- id: errorId,
260
- "data-testid": `${testIdPrefix}-input-error`,
261
- children: error
262
- }
263
- ),
260
+ errorMessage,
264
261
  helpText && /* @__PURE__ */ jsx(
265
262
  FieldDescription,
266
263
  {
@@ -278,4 +275,4 @@ const Input = forwardRef(
278
275
  Input.displayName = "Input";
279
276
 
280
277
  export { Input as I };
281
- //# sourceMappingURL=Input-W8foyOcS.js.map
278
+ //# sourceMappingURL=Input-Dm5ILPH3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Input-Dm5ILPH3.js","sources":["../src/components/Input/constants.ts","../src/components/Input/utils.ts","../src/components/Input/Input.tsx"],"sourcesContent":["// Mobile (<768px) uses 16px input font-size to prevent iOS Safari auto-zoom\n// on focus. Desktop (md+) keeps the original text sizes. Small variant also\n// bumps its height on mobile so 16px text doesn't look cramped in a 28px\n// container; medium and large keep their desktop heights.\nexport const SIZE_CONFIG = {\n small: {\n group: \"h-8 md:h-7\",\n input: \"text-base md:text-xs px-2\",\n addonStart: \"ps-1.5\",\n addonEnd: \"pe-1.5\",\n icon: \"size-3.5\",\n },\n medium: {\n group: \"h-8\",\n input: \"text-base md:text-sm\",\n addonStart: \"ps-2\",\n addonEnd: \"pe-2\",\n icon: \"size-4\",\n },\n large: {\n group: \"h-10\",\n input: \"text-base md:text-sm\",\n addonStart: \"ps-2.5\",\n addonEnd: \"pe-2.5\",\n icon: \"size-5\",\n },\n};\n","import React from \"react\";\n\nexport function toFixed(numStr: string, prec: number): string {\n const num = Number(numStr);\n if (Number.isNaN(num)) return numStr;\n\n return num.toFixed(prec);\n}\n\nexport function formatWithPrecision(\n value: string | number | undefined,\n precision: number\n): string | undefined {\n if (precision < 0 || !value) return value as string | undefined;\n\n const str = value.toString();\n const trimmed = str.trim();\n if (trimmed !== \"\" && !Number.isNaN(Number(trimmed)))\n return toFixed(str, precision);\n\n return str;\n}\n\nexport function enforceDecimalPrecision(\n value: string,\n precision: number\n): string {\n if (precision < 0 || !value) return value;\n\n const valueStr = value.toString();\n if (precision === 0) return valueStr.split(\".\")[0];\n\n const regex = new RegExp(`^\\\\d*\\\\.?\\\\d{0,${precision}}$`);\n if (regex.test(valueStr)) return value;\n\n const parts = valueStr.split(\".\");\n if (parts.length === 1) return parts[0];\n\n return `${parts[0]}.${parts[1].substring(0, precision)}`;\n}\n\nexport function formatWithRejectCharsRegex(\n value: string,\n rejectCharsRegex?: RegExp\n): string {\n if (!rejectCharsRegex) return value;\n\n const globalRegex = new RegExp(rejectCharsRegex, \"g\");\n\n return value.replace(globalRegex, \"\");\n}\n\nexport function getTrimmedValue(\n value: string | number,\n disableTrimOnBlur: boolean\n): string | number {\n if (disableTrimOnBlur || typeof value !== \"string\") return value;\n\n return value.trim();\n}\n\nexport function preserveCursor(\n e: React.ChangeEvent<HTMLInputElement>,\n updateValueFn: () => React.ChangeEvent<HTMLInputElement>\n) {\n const input = e.target;\n const prevCursor = input.selectionStart;\n const prevValue = input.value;\n\n const updatedEvent = updateValueFn();\n\n const lengthDiff = input.value.length - prevValue.length;\n const newCursor = Math.max(0, (prevCursor ?? 0) + lengthDiff);\n\n const restore = () => {\n if (document.activeElement !== input) return;\n if (input.type === \"number\") return;\n\n input.setSelectionRange(newCursor, newCursor);\n };\n\n // Schedule via microtask (fires before paint, before any other event handlers run)\n // and fall back to RAF only if the microtask didn't run for some reason.\n // Leaving both armed races stale RAFs against subsequent keystrokes' onChange,\n // which corrupts cursor position under fast typing (jsdom + user-event).\n const rafId = requestAnimationFrame(restore);\n queueMicrotask(() => {\n cancelAnimationFrame(rafId);\n restore();\n });\n\n return updatedEvent;\n}\n","import React, { forwardRef, useId, useState } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Field,\n FieldLabel,\n FieldContent,\n FieldDescription,\n FieldError,\n} from \"src/primitives/Field\";\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupText,\n InputGroupInput,\n} from \"src/primitives/InputGroup\";\nimport { buildTestIdPrefix } from \"src/utils/fieldIds\";\nimport { withIconSize, type IconLike } from \"src/utils/withIconSize\";\n\nimport { SIZE_CONFIG } from \"./constants\";\nimport {\n formatWithPrecision,\n enforceDecimalPrecision,\n formatWithRejectCharsRegex,\n getTrimmedValue,\n preserveCursor,\n} from \"./utils\";\n\ntype InputSize = \"small\" | \"medium\" | \"large\";\n\nexport interface InputProps extends Omit<\n React.ComponentProps<\"input\">,\n \"size\" | \"prefix\" | \"value\"\n> {\n /** Controlled value. */\n value?: string | number;\n /** Size of the input. */\n size?: InputSize;\n /** Input type. */\n type?: string;\n /** Label displayed above the input. */\n label?: string;\n /** Error message displayed below the input. */\n error?: string;\n /** Help text displayed below the input. Accepts string or ReactNode. */\n helpText?: React.ReactNode;\n /** Content rendered before the input. Accepts an element, a component\n * reference (e.g. `Search` from lucide-react), or any other React node. */\n prefix?: IconLike;\n /** Content rendered after the input. Accepts an element, a component\n * reference (e.g. `Search` from lucide-react), or any other React node. */\n suffix?: IconLike;\n /** Removes borders from the input. */\n nakedInput?: boolean;\n /** HTML size attribute for the input element. */\n contentSize?: number;\n /** Maximum character limit. Counter visible at 85%. */\n maxLength?: number;\n /** Allow typing past maxLength, show error styling on count. */\n unlimitedChars?: boolean;\n /** Regex to reject matching characters from input. */\n rejectCharsRegex?: RegExp;\n /** Prevent trimming whitespace on blur. */\n disableTrimOnBlur?: boolean;\n /** Decimal places for number formatting. -1 to disable. */\n precision?: number;\n /** Props forwarded to the Label element. */\n labelProps?: React.ComponentProps<typeof FieldLabel>;\n /**\n * Additional class name. Lands on the outer `Field` wrapper when `label` or\n * `helpText` is set, and on the input container otherwise. `error` does not\n * affect the target, so the class never jumps between elements as validation\n * toggles.\n */\n className?: string;\n /** Prefix for the field's testid family(label, input, error, help). Falls back to the hyphenized label. */\n dataTestId?: string;\n}\n\nconst Input = forwardRef<HTMLInputElement, InputProps>(\n (\n {\n size = \"medium\",\n type = \"text\",\n label = \"\",\n error = \"\",\n helpText = \"\",\n prefix = null,\n suffix = null,\n disabled = false,\n nakedInput = false,\n contentSize,\n required = false,\n maxLength,\n unlimitedChars = false,\n rejectCharsRegex,\n disableTrimOnBlur = false,\n precision = -1,\n labelProps,\n className = \"\",\n dataTestId,\n onBlur,\n onChange,\n value: controlledValue,\n ...otherProps\n },\n ref\n ) => {\n const generatedId = useId();\n const id = otherProps.id ?? generatedId;\n const errorId = `error_${id}`;\n const helpTextId = `helpText_${id}`;\n\n // Controlled / uncontrolled value tracking\n const [valueInternal, setValueInternal] = useState(controlledValue);\n const isControlled = controlledValue !== undefined;\n\n const value =\n formatWithPrecision(controlledValue, precision) ?? valueInternal ?? \"\";\n const valueLength = value?.toString().length || 0;\n\n const isMaxLengthPresent = !!maxLength || maxLength === 0;\n const isCharacterLimitVisible =\n isMaxLengthPresent && valueLength >= maxLength! * 0.85;\n const maxLengthError = unlimitedChars && valueLength > maxLength!;\n\n // --- Handlers ---\n\n const onChangeInternal = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (!isControlled) {\n setValueInternal(e.target.value);\n }\n onChange?.(e);\n };\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (type === \"file\") {\n onChangeInternal(e);\n\n return;\n }\n\n let formattedValue = formatWithRejectCharsRegex(\n e.target.value,\n rejectCharsRegex\n );\n formattedValue = enforceDecimalPrecision(formattedValue, precision);\n\n if (formattedValue !== e.target.value) {\n preserveCursor(e, () => {\n const syntheticEvent = Object.create(e, {\n target: { value: { ...e.target, value: formattedValue } },\n });\n e.target.value = formattedValue;\n onChangeInternal(syntheticEvent);\n\n return syntheticEvent;\n });\n } else {\n onChangeInternal(e);\n }\n };\n\n const handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n if (type === \"file\") {\n onBlur?.(e);\n\n return;\n }\n\n const trimmedValue = getTrimmedValue(value, disableTrimOnBlur);\n const formattedValue = formatWithPrecision(trimmedValue, precision);\n\n if (formattedValue !== undefined && formattedValue !== value) {\n e.target.value = formattedValue.toString();\n handleChange(e as unknown as React.ChangeEvent<HTMLInputElement>);\n }\n\n onBlur?.(e);\n };\n\n const handleWheel = (e: React.WheelEvent<HTMLInputElement>) => {\n if (type === \"number\") (e.target as HTMLInputElement).blur();\n };\n\n // --- aria-describedby ---\n\n const ariaDescribedBy =\n [error ? errorId : null, helpText ? helpTextId : null]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n // --- Render ---\n\n // Derived from `label`/`helpText` only. Including `error` would flip the\n // returned root between InputGroup and Field as validation toggles, and\n // React cannot reconcile across element types — it remounts the subtree,\n // destroying the <input> and dropping focus mid-typing. neetoFields hits\n // this on every keystroke: it renders the label in its own MetadataBlock\n // and passes none here, so `error` alone would decide the shape.\n const hasField = !!(label || helpText);\n const sizeConfig = SIZE_CONFIG[size];\n const testIdPrefix = buildTestIdPrefix(dataTestId, label);\n\n const inputGroup = (\n <InputGroup\n data-testid={`${testIdPrefix}-input`}\n className={cn(\n sizeConfig.group,\n nakedInput &&\n \"border-0 shadow-none has-[[data-slot=input-group-control]:focus-visible]:ring-0 has-[[data-slot=input-group-control]:focus-visible]:border-transparent\",\n !!error &&\n !nakedInput &&\n \"border-destructive ring-destructive/20 ring-3\",\n !hasField && className\n )}\n >\n {prefix && (\n <InputGroupAddon\n align=\"inline-start\"\n className={sizeConfig.addonStart}\n >\n <InputGroupText>\n {withIconSize(prefix, sizeConfig.icon)}\n </InputGroupText>\n </InputGroupAddon>\n )}\n <InputGroupInput\n ref={ref}\n id={id}\n type={type}\n disabled={disabled}\n required={required}\n size={contentSize}\n aria-invalid={!!error || undefined}\n aria-describedby={ariaDescribedBy}\n className={cn(sizeConfig.input, nakedInput && \"px-0\")}\n data-testid={`${testIdPrefix}-input-field`}\n value={value}\n onBlur={handleBlur}\n onChange={handleChange}\n onWheel={handleWheel}\n {...(isMaxLengthPresent && !unlimitedChars ? { maxLength } : {})}\n {...otherProps}\n />\n {suffix && (\n <InputGroupAddon align=\"inline-end\" className={sizeConfig.addonEnd}>\n <InputGroupText>\n {withIconSize(suffix, sizeConfig.icon)}\n </InputGroupText>\n </InputGroupAddon>\n )}\n </InputGroup>\n );\n\n const errorMessage = !!error && (\n <FieldError id={errorId} data-testid={`${testIdPrefix}-input-error`}>\n {error}\n </FieldError>\n );\n\n // Both branches keep `inputGroup` at a fixed child position, so toggling\n // the error never remounts it.\n if (!hasField) {\n return (\n <>\n {inputGroup}\n {errorMessage}\n </>\n );\n }\n\n return (\n <Field\n data-testid=\"nui-input-wrapper\"\n data-disabled={disabled || undefined}\n data-invalid={!!error || undefined}\n className={className}\n >\n {(label || isCharacterLimitVisible) && (\n <div className=\"flex items-center justify-between\">\n {label && (\n <FieldLabel\n htmlFor={id}\n data-testid={`${testIdPrefix}-input-label`}\n {...labelProps}\n >\n {label}\n {required && (\n <span aria-hidden=\"true\" className=\"text-destructive\">\n *\n </span>\n )}\n </FieldLabel>\n )}\n {isCharacterLimitVisible && (\n <span\n className={cn(\n \"text-xs tabular-nums\",\n maxLengthError ? \"text-destructive\" : \"text-muted-foreground\"\n )}\n >\n {valueLength}/{maxLength}\n </span>\n )}\n </div>\n )}\n <FieldContent>\n {inputGroup}\n {errorMessage}\n {helpText && (\n <FieldDescription\n id={helpTextId}\n data-testid={`${testIdPrefix}-input-help`}\n >\n {helpText}\n </FieldDescription>\n )}\n </FieldContent>\n </Field>\n );\n }\n);\n\nInput.displayName = \"Input\";\n\nexport { Input };\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { forwardRef } from 'react';
3
- import { H as HelpIcon } from './HelpIcon-xh488VXs.js';
3
+ import { H as HelpIcon } from './HelpIcon-EjtPpYCx.js';
4
4
  import { Label as Label$1 } from './primitives/Label.js';
5
5
  import { c as cn } from './utils-BJnb9o5c.js';
6
6
 
@@ -14,4 +14,4 @@ const Label = forwardRef(
14
14
  Label.displayName = "Label";
15
15
 
16
16
  export { Label as L };
17
- //# sourceMappingURL=Label-B-R4PNNq.js.map
17
+ //# sourceMappingURL=Label-Cr83bru_.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Label-B-R4PNNq.js","sources":["../src/components/Label/Label.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\n\nimport { HelpIcon, type HelpIconProps } from \"src/shared/HelpIcon\";\nimport { Label as PrimitiveLabel } from \"src/primitives/Label\";\nimport { cn } from \"src/shadcn/lib/utils\";\n\nexport type { HelpIconProps };\n\nexport interface LabelProps extends React.ComponentProps<\n typeof PrimitiveLabel\n> {\n /** Shows a red asterisk after the label text. */\n required?: boolean;\n /** Props for the help icon (tooltip or popover mode). */\n helpIconProps?: HelpIconProps;\n /** Additional CSS class names. */\n className?: string;\n}\n\nconst Label = forwardRef<HTMLLabelElement, LabelProps>(\n ({ required, helpIconProps, className, children, ...otherProps }, ref) => (\n <PrimitiveLabel ref={ref} className={cn(className)} {...otherProps}>\n {children}\n {required && (\n <span aria-hidden=\"true\" className=\"text-destructive\">\n *\n </span>\n )}\n {helpIconProps && <HelpIcon {...helpIconProps} />}\n </PrimitiveLabel>\n )\n);\n\nLabel.displayName = \"Label\";\n\nexport { Label };\n"],"names":["PrimitiveLabel"],"mappings":";;;;;;AAmBA,MAAM,KAAA,GAAQ,UAAA;AAAA,EACZ,CAAC,EAAE,QAAA,EAAU,eAAe,SAAA,EAAW,QAAA,EAAU,GAAG,UAAA,EAAW,EAAG,GAAA,qBAChE,IAAA,CAACA,WAAe,GAAA,EAAU,SAAA,EAAW,GAAG,SAAS,CAAA,EAAI,GAAG,UAAA,EACrD,QAAA,EAAA;AAAA,IAAA,QAAA;AAAA,IACA,4BACC,GAAA,CAAC,MAAA,EAAA,EAAK,eAAY,MAAA,EAAO,SAAA,EAAU,oBAAmB,QAAA,EAAA,GAAA,EAEtD,CAAA;AAAA,IAED,aAAA,oBAAiB,GAAA,CAAC,QAAA,EAAA,EAAU,GAAG,aAAA,EAAe;AAAA,GAAA,EACjD;AAEJ;AAEA,KAAA,CAAM,WAAA,GAAc,OAAA;;;;"}
1
+ {"version":3,"file":"Label-Cr83bru_.js","sources":["../src/components/Label/Label.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\n\nimport { HelpIcon, type HelpIconProps } from \"src/shared/HelpIcon\";\nimport { Label as PrimitiveLabel } from \"src/primitives/Label\";\nimport { cn } from \"src/shadcn/lib/utils\";\n\nexport type { HelpIconProps };\n\nexport interface LabelProps extends React.ComponentProps<\n typeof PrimitiveLabel\n> {\n /** Shows a red asterisk after the label text. */\n required?: boolean;\n /** Props for the help icon (tooltip or popover mode). */\n helpIconProps?: HelpIconProps;\n /** Additional CSS class names. */\n className?: string;\n}\n\nconst Label = forwardRef<HTMLLabelElement, LabelProps>(\n ({ required, helpIconProps, className, children, ...otherProps }, ref) => (\n <PrimitiveLabel ref={ref} className={cn(className)} {...otherProps}>\n {children}\n {required && (\n <span aria-hidden=\"true\" className=\"text-destructive\">\n *\n </span>\n )}\n {helpIconProps && <HelpIcon {...helpIconProps} />}\n </PrimitiveLabel>\n )\n);\n\nLabel.displayName = \"Label\";\n\nexport { Label };\n"],"names":["PrimitiveLabel"],"mappings":";;;;;;AAmBA,MAAM,KAAA,GAAQ,UAAA;AAAA,EACZ,CAAC,EAAE,QAAA,EAAU,eAAe,SAAA,EAAW,QAAA,EAAU,GAAG,UAAA,EAAW,EAAG,GAAA,qBAChE,IAAA,CAACA,WAAe,GAAA,EAAU,SAAA,EAAW,GAAG,SAAS,CAAA,EAAI,GAAG,UAAA,EACrD,QAAA,EAAA;AAAA,IAAA,QAAA;AAAA,IACA,4BACC,GAAA,CAAC,MAAA,EAAA,EAAK,eAAY,MAAA,EAAO,SAAA,EAAU,oBAAmB,QAAA,EAAA,GAAA,EAEtD,CAAA;AAAA,IAED,aAAA,oBAAiB,GAAA,CAAC,QAAA,EAAA,EAAU,GAAG,aAAA,EAAe;AAAA,GAAA,EACjD;AAEJ;AAEA,KAAA,CAAM,WAAA,GAAc,OAAA;;;;"}
@@ -3,7 +3,7 @@ import React__default, { useState, useRef, useEffect, useCallback, useMemo, useI
3
3
  import { b as buildTestIdPrefix, a as buildAriaDescribedBy } from './fieldIds-VpluAAMl.js';
4
4
  import { S as SelectFieldWrapper } from './SelectFieldWrapper-D370CD4o.js';
5
5
  import { c as cn } from './utils-BJnb9o5c.js';
6
- import { i as ComboboxItem, k as ComboboxList, f as ComboboxEmpty, d as ComboboxCollection, g as ComboboxGroup, j as ComboboxLabel, o as ComboboxTrigger, C as Combobox, b as ComboboxChips, c as ComboboxChipsInput, m as ComboboxTrigger$1, e as ComboboxContent, h as ComboboxInput, a as ComboboxChip } from './Combobox-NgubHftk.js';
6
+ import { i as ComboboxItem, k as ComboboxList, f as ComboboxEmpty, d as ComboboxCollection, g as ComboboxGroup, j as ComboboxLabel, o as ComboboxTrigger, C as Combobox, b as ComboboxChips, c as ComboboxChipsInput, m as ComboboxTrigger$1, e as ComboboxContent, h as ComboboxInput, a as ComboboxChip } from './Combobox-CCstgdEa.js';
7
7
  import { Spinner } from './primitives/Spinner.js';
8
8
  import { X } from './x-_o2T3n6D.js';
9
9
  import { C as ChevronDown } from './chevron-down-BNi0ntys.js';
@@ -1362,4 +1362,4 @@ const Select = forwardRef((props, ref) => {
1362
1362
  Select.displayName = "Select";
1363
1363
 
1364
1364
  export { Select as S };
1365
- //# sourceMappingURL=Select-CLfVAG_p.js.map
1365
+ //# sourceMappingURL=Select-CLSJgvl6.js.map