@bigbinary/neeto-atoms 1.0.58 → 1.0.60

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 (171) hide show
  1. package/dist/Badge-DC6zxOwS.js.map +1 -1
  2. package/dist/Button-DV9xCqlc.js.map +1 -1
  3. package/dist/Callout-NVYmCwJL.js.map +1 -1
  4. package/dist/{Checkbox-C_Rd2-8Z.js → Checkbox-m4rEnxUz.js} +3 -2
  5. package/dist/Checkbox-m4rEnxUz.js.map +1 -0
  6. package/dist/Empty-Bfido_mq.js.map +1 -1
  7. package/dist/HelpIcon-Cm3ZgoCx.js +73 -0
  8. package/dist/HelpIcon-Cm3ZgoCx.js.map +1 -0
  9. package/dist/Label-mrNM2drW.js +17 -0
  10. package/dist/Label-mrNM2drW.js.map +1 -0
  11. package/dist/{RadioGroup-BTemSonO.js → RadioGroup-BRAVPPc3.js} +3 -2
  12. package/dist/RadioGroup-BRAVPPc3.js.map +1 -0
  13. package/dist/{Switch-OAB7pfNn.js → Switch-b4ZAjhRy.js} +7 -4
  14. package/dist/Switch-b4ZAjhRy.js.map +1 -0
  15. package/dist/Tabs-DTbbJITd.js.map +1 -1
  16. package/dist/cjs/Badge-Dz_Kb49L.js.map +1 -1
  17. package/dist/cjs/Button-8VH9p9RB.js.map +1 -1
  18. package/dist/cjs/Callout-CYIrflF1.js.map +1 -1
  19. package/dist/cjs/{Checkbox-CxqWOvFN.js → Checkbox-CymHP7QE.js} +3 -2
  20. package/dist/cjs/Checkbox-CymHP7QE.js.map +1 -0
  21. package/dist/cjs/Empty-aQaWK0p4.js.map +1 -1
  22. package/dist/cjs/HelpIcon-CIkKt2uy.js +75 -0
  23. package/dist/cjs/HelpIcon-CIkKt2uy.js.map +1 -0
  24. package/dist/cjs/Label-Dt7K54Ly.js +19 -0
  25. package/dist/cjs/Label-Dt7K54Ly.js.map +1 -0
  26. package/dist/cjs/{RadioGroup-CkKlLHnR.js → RadioGroup-6mpFVQr8.js} +3 -2
  27. package/dist/cjs/RadioGroup-6mpFVQr8.js.map +1 -0
  28. package/dist/cjs/{Switch-BTkncHw2.js → Switch-bY6bZw78.js} +7 -4
  29. package/dist/cjs/Switch-bY6bZw78.js.map +1 -0
  30. package/dist/cjs/Tabs-YPRmLtUM.js.map +1 -1
  31. package/dist/cjs/components/Checkbox.js +23 -1
  32. package/dist/cjs/components/Checkbox.js.map +1 -1
  33. package/dist/cjs/components/DatePicker.js +14 -1
  34. package/dist/cjs/components/DatePicker.js.map +1 -1
  35. package/dist/cjs/components/DropdownMenu.js.map +1 -1
  36. package/dist/cjs/components/Input.js +32 -5
  37. package/dist/cjs/components/Input.js.map +1 -1
  38. package/dist/cjs/components/Label.js +9 -8
  39. package/dist/cjs/components/Label.js.map +1 -1
  40. package/dist/cjs/components/MultiEmailInput.js +32 -4
  41. package/dist/cjs/components/MultiEmailInput.js.map +1 -1
  42. package/dist/cjs/components/RadioGroup.js +22 -1
  43. package/dist/cjs/components/RadioGroup.js.map +1 -1
  44. package/dist/cjs/components/Select.js +32 -10
  45. package/dist/cjs/components/Select.js.map +1 -1
  46. package/dist/cjs/components/Slider.js +24 -0
  47. package/dist/cjs/components/Slider.js.map +1 -1
  48. package/dist/cjs/components/Switch.js +33 -7
  49. package/dist/cjs/components/Switch.js.map +1 -1
  50. package/dist/cjs/components/Textarea.js +32 -3
  51. package/dist/cjs/components/Textarea.js.map +1 -1
  52. package/dist/cjs/components/TimePicker.js +17 -4
  53. package/dist/cjs/components/TimePicker.js.map +1 -1
  54. package/dist/cjs/components/TreeSelect.js +17 -2
  55. package/dist/cjs/components/TreeSelect.js.map +1 -1
  56. package/dist/cjs/components/index.js +5 -4
  57. package/dist/cjs/components/index.js.map +1 -1
  58. package/dist/cjs/formik/Checkbox.js +23 -1
  59. package/dist/cjs/formik/Checkbox.js.map +1 -1
  60. package/dist/cjs/formik/Input.js +32 -5
  61. package/dist/cjs/formik/Input.js.map +1 -1
  62. package/dist/cjs/formik/MultiEmailInput.js +32 -4
  63. package/dist/cjs/formik/MultiEmailInput.js.map +1 -1
  64. package/dist/cjs/formik/RadioGroup.js +22 -1
  65. package/dist/cjs/formik/RadioGroup.js.map +1 -1
  66. package/dist/cjs/formik/Select.js +32 -10
  67. package/dist/cjs/formik/Select.js.map +1 -1
  68. package/dist/cjs/formik/Slider.js +24 -0
  69. package/dist/cjs/formik/Slider.js.map +1 -1
  70. package/dist/cjs/formik/Switch.js +33 -7
  71. package/dist/cjs/formik/Switch.js.map +1 -1
  72. package/dist/cjs/formik/Textarea.js +32 -3
  73. package/dist/cjs/formik/Textarea.js.map +1 -1
  74. package/dist/cjs/formik/TreeSelect.js +17 -2
  75. package/dist/cjs/formik/TreeSelect.js.map +1 -1
  76. package/dist/cjs/formik/index.js +35 -31
  77. package/dist/cjs/formik/index.js.map +1 -1
  78. package/dist/cjs/index.js +5 -4
  79. package/dist/cjs/index.js.map +1 -1
  80. package/dist/cjs/primitives/Checkbox.js +1 -1
  81. package/dist/cjs/primitives/Checkbox.js.map +1 -1
  82. package/dist/cjs/primitives/Field.js +34 -2
  83. package/dist/cjs/primitives/Field.js.map +1 -1
  84. package/dist/cjs/primitives/RadioGroup.js +1 -1
  85. package/dist/cjs/primitives/RadioGroup.js.map +1 -1
  86. package/dist/cjs/primitives/index.js +6 -0
  87. package/dist/cjs/primitives/index.js.map +1 -1
  88. package/dist/cjs/renderIcon-BRrpZu9a.js.map +1 -1
  89. package/dist/components/Badge/Badge.d.ts +1 -1
  90. package/dist/components/Button/Button.d.ts +1 -1
  91. package/dist/components/Callout/Callout.d.ts +1 -1
  92. package/dist/components/Checkbox/Checkbox.d.ts +3 -0
  93. package/dist/components/Checkbox.js +23 -1
  94. package/dist/components/Checkbox.js.map +1 -1
  95. package/dist/components/DatePicker.js +14 -1
  96. package/dist/components/DatePicker.js.map +1 -1
  97. package/dist/components/DropdownMenu/SubMenu.d.ts +1 -1
  98. package/dist/components/DropdownMenu/types.d.ts +1 -1
  99. package/dist/components/DropdownMenu.js.map +1 -1
  100. package/dist/components/Empty/Empty.d.ts +1 -1
  101. package/dist/components/Input.js +32 -5
  102. package/dist/components/Input.js.map +1 -1
  103. package/dist/components/Label/Label.d.ts +2 -28
  104. package/dist/components/Label.js +9 -8
  105. package/dist/components/Label.js.map +1 -1
  106. package/dist/components/MultiEmailInput.js +32 -4
  107. package/dist/components/MultiEmailInput.js.map +1 -1
  108. package/dist/components/RadioGroup/RadioGroup.d.ts +3 -0
  109. package/dist/components/RadioGroup.js +22 -1
  110. package/dist/components/RadioGroup.js.map +1 -1
  111. package/dist/components/Select.js +32 -10
  112. package/dist/components/Select.js.map +1 -1
  113. package/dist/components/Slider.js +24 -0
  114. package/dist/components/Slider.js.map +1 -1
  115. package/dist/components/Switch/Switch.d.ts +3 -0
  116. package/dist/components/Switch.js +33 -7
  117. package/dist/components/Switch.js.map +1 -1
  118. package/dist/components/Tabs/Tabs.d.ts +1 -1
  119. package/dist/components/Textarea.js +32 -3
  120. package/dist/components/Textarea.js.map +1 -1
  121. package/dist/components/TimePicker.js +17 -4
  122. package/dist/components/TimePicker.js.map +1 -1
  123. package/dist/components/TreeSelect.js +17 -2
  124. package/dist/components/TreeSelect.js.map +1 -1
  125. package/dist/components/index.js +5 -4
  126. package/dist/components/index.js.map +1 -1
  127. package/dist/formik/Checkbox.js +23 -1
  128. package/dist/formik/Checkbox.js.map +1 -1
  129. package/dist/formik/Input.js +32 -5
  130. package/dist/formik/Input.js.map +1 -1
  131. package/dist/formik/MultiEmailInput.js +32 -4
  132. package/dist/formik/MultiEmailInput.js.map +1 -1
  133. package/dist/formik/RadioGroup.js +22 -1
  134. package/dist/formik/RadioGroup.js.map +1 -1
  135. package/dist/formik/Select.js +32 -10
  136. package/dist/formik/Select.js.map +1 -1
  137. package/dist/formik/Slider.js +24 -0
  138. package/dist/formik/Slider.js.map +1 -1
  139. package/dist/formik/Switch.js +33 -7
  140. package/dist/formik/Switch.js.map +1 -1
  141. package/dist/formik/Textarea.js +32 -3
  142. package/dist/formik/Textarea.js.map +1 -1
  143. package/dist/formik/TreeSelect.js +17 -2
  144. package/dist/formik/TreeSelect.js.map +1 -1
  145. package/dist/formik/index.js +35 -31
  146. package/dist/formik/index.js.map +1 -1
  147. package/dist/index.js +5 -4
  148. package/dist/index.js.map +1 -1
  149. package/dist/primitives/Checkbox.js +1 -1
  150. package/dist/primitives/Checkbox.js.map +1 -1
  151. package/dist/primitives/Field.d.ts +6 -1
  152. package/dist/primitives/Field.js +34 -2
  153. package/dist/primitives/Field.js.map +1 -1
  154. package/dist/primitives/RadioGroup.js +1 -1
  155. package/dist/primitives/RadioGroup.js.map +1 -1
  156. package/dist/primitives/index.js +6 -0
  157. package/dist/primitives/index.js.map +1 -1
  158. package/dist/renderIcon-C6twJSqH.js.map +1 -1
  159. package/dist/shared/HelpIcon.d.ts +30 -0
  160. package/package.json +1 -1
  161. package/dist/Checkbox-C_Rd2-8Z.js.map +0 -1
  162. package/dist/Label-DndePzSD.js +0 -87
  163. package/dist/Label-DndePzSD.js.map +0 -1
  164. package/dist/RadioGroup-BTemSonO.js.map +0 -1
  165. package/dist/Switch-OAB7pfNn.js.map +0 -1
  166. package/dist/cjs/Checkbox-CxqWOvFN.js.map +0 -1
  167. package/dist/cjs/Label-vpiQQn2A.js +0 -89
  168. package/dist/cjs/Label-vpiQQn2A.js.map +0 -1
  169. package/dist/cjs/RadioGroup-CkKlLHnR.js.map +0 -1
  170. package/dist/cjs/Switch-BTkncHw2.js.map +0 -1
  171. /package/dist/{lib → shared}/renderIcon.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Button-8VH9p9RB.js","sources":["../../src/components/Button/constants.ts","../../src/components/Button/Button.tsx"],"sourcesContent":["type ButtonSize =\n | \"default\"\n | \"xs\"\n | \"sm\"\n | \"lg\"\n | \"icon\"\n | \"icon-xs\"\n | \"icon-sm\"\n | \"icon-lg\";\n\nexport const ICON_ONLY_SIZE_MAP: Partial<Record<ButtonSize, ButtonSize>> = {\n xs: \"icon-xs\",\n sm: \"icon-sm\",\n default: \"icon\",\n lg: \"icon-lg\",\n};\n\nexport const SPINNER_SIZE_MAP: Record<ButtonSize, string> = {\n xs: \"size-3\",\n sm: \"size-3.5\",\n default: \"size-3.5\",\n lg: \"size-4\",\n icon: \"size-3.5\",\n \"icon-xs\": \"size-3\",\n \"icon-sm\": \"size-3.5\",\n \"icon-lg\": \"size-4\",\n};\n\n// Map NeetoUI tooltip `position` values to Radix side values\nexport const TOOLTIP_SIDE_MAP: Record<\n string,\n \"top\" | \"right\" | \"bottom\" | \"left\"\n> = {\n top: \"top\",\n bottom: \"bottom\",\n left: \"left\",\n right: \"right\",\n \"top-start\": \"top\",\n \"top-end\": \"top\",\n \"bottom-start\": \"bottom\",\n \"bottom-end\": \"bottom\",\n \"left-start\": \"left\",\n \"left-end\": \"left\",\n \"right-start\": \"right\",\n \"right-end\": \"right\",\n};\n","import React, { forwardRef, type ReactNode, type MouseEvent } from \"react\";\n\nimport { Link } from \"react-router-dom\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { renderIcon, type IconProp } from \"src/lib/renderIcon\";\nimport { Button as PrimitiveButton } from \"src/primitives/Button\";\nimport { Spinner } from \"src/primitives/Spinner\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"src/primitives/Tooltip\";\n\nimport {\n ICON_ONLY_SIZE_MAP,\n SPINNER_SIZE_MAP,\n TOOLTIP_SIDE_MAP,\n} from \"./constants\";\n\nexport const BUTTON_VARIANTS = [\n \"default\",\n \"secondary\",\n \"destructive\",\n \"destructive-soft\",\n \"outline\",\n \"ghost\",\n \"link\",\n] as const;\n\nexport const BUTTON_SIZES = [\n \"default\",\n \"xs\",\n \"sm\",\n \"lg\",\n \"icon\",\n \"icon-xs\",\n \"icon-sm\",\n \"icon-lg\",\n] as const;\n\nexport type ButtonVariant = (typeof BUTTON_VARIANTS)[number];\nexport type ButtonSize = (typeof BUTTON_SIZES)[number];\n\ntype IconPosition = \"left\" | \"right\";\n\ntype ButtonType = \"button\" | \"reset\" | \"submit\";\n\ninterface ButtonTooltipProps {\n content?: ReactNode;\n position?: string;\n disabled?: boolean;\n}\n\nexport interface ButtonProps extends Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n \"type\" | \"disabled\" | \"className\" | \"children\" | \"onClick\"\n> {\n /** Visual variant of the button. */\n variant?: ButtonVariant;\n /** Size of the button. */\n size?: ButtonSize;\n /** Text label rendered inside the button. */\n label?: string;\n /** Icon component, element, or class-name string. */\n icon?: IconProp;\n /** Placement of the icon relative to the label. */\n iconPosition?: IconPosition;\n /** Show a loading spinner and prevent clicks. */\n loading?: boolean;\n /** Disable the button. */\n disabled?: boolean;\n /** Click handler. */\n onClick?: (e: MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void;\n /** Internal route (react-router `Link`). */\n to?: string;\n /** External URL (renders an anchor tag). */\n href?: string;\n /** HTML button type attribute. */\n type?: ButtonType;\n /** Stretch the button to fill its container. */\n fullWidth?: boolean;\n /** Additional CSS class names. */\n className?: string;\n /** Props forwarded to a wrapping Tooltip. */\n tooltipProps?: ButtonTooltipProps | null;\n /** Render as a custom element (polymorphic). */\n asChild?: boolean;\n /**\n * Content rendered after the label and any right-side icon (e.g., a trailing\n * chevron, badge, or shortcut indicator). Auto-wrapped with\n * `data-icon=\"inline-end\"` so the button's compact end-padding kicks in.\n */\n trailing?: ReactNode;\n /** Children rendered inside the button (fallback for `label`). */\n children?: ReactNode;\n}\n\nconst Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n variant = \"default\",\n size = \"default\",\n label,\n icon = null,\n iconPosition = \"right\",\n loading = false,\n disabled = false,\n onClick,\n to,\n href,\n type = \"button\",\n fullWidth = false,\n className,\n tooltipProps = null,\n asChild = false,\n trailing,\n children,\n ...otherProps\n },\n ref\n ) => {\n const isIconSize = size.startsWith(\"icon\");\n const renderLabel = isIconSize ? null : label || children;\n const isIconOnly = !renderLabel && !!icon;\n const resolvedSize = isIconOnly ? (ICON_ONLY_SIZE_MAP[size] ?? size) : size;\n\n // --- Loading / disabled state ---\n const isDisabled = disabled || loading;\n\n // --- Click handler ---\n const handleClick = (\n e: MouseEvent<HTMLButtonElement | HTMLAnchorElement>\n ) => {\n if (loading || disabled) {\n e.preventDefault();\n return;\n }\n onClick?.(e);\n };\n\n // --- Icon elements ---\n const iconElement = icon ? renderIcon(icon) : null;\n\n // --- Build the inner content ---\n const buttonContent = (\n <>\n {loading && (\n <span className=\"absolute inset-0 flex items-center justify-center\">\n <Spinner\n aria-hidden=\"true\"\n className={SPINNER_SIZE_MAP[resolvedSize]}\n />\n </span>\n )}\n <span\n className={cn(\n \"inline-flex items-center gap-1.5\",\n loading && \"invisible\"\n )}\n >\n {iconPosition === \"left\" && iconElement && (\n <span data-icon=\"inline-start\">{iconElement}</span>\n )}\n {renderLabel && <span>{renderLabel}</span>}\n {iconPosition === \"right\" && iconElement && (\n <span data-icon=\"inline-end\">{iconElement}</span>\n )}\n {trailing && <span data-icon=\"inline-end\">{trailing}</span>}\n </span>\n </>\n );\n\n // --- Merged className ---\n const mergedClassName = cn(\n fullWidth && \"w-full\",\n loading && \"relative pointer-events-none\",\n variant === \"link\" && \"[table_&]:max-w-full [table_&]:whitespace-normal\",\n className\n );\n\n // --- Determine render element ---\n let buttonElement: ReactNode;\n\n if (asChild) {\n buttonElement = (\n <PrimitiveButton\n ref={ref}\n asChild\n variant={variant}\n size={resolvedSize}\n className={mergedClassName}\n disabled={isDisabled}\n {...otherProps}\n >\n {children}\n </PrimitiveButton>\n );\n } else if (!disabled && to) {\n buttonElement = (\n <PrimitiveButton\n asChild\n variant={variant}\n size={resolvedSize}\n className={mergedClassName}\n disabled={isDisabled}\n {...otherProps}\n >\n <Link\n innerRef={ref as React.Ref<HTMLAnchorElement>}\n to={to}\n onClick={handleClick}\n >\n {buttonContent}\n </Link>\n </PrimitiveButton>\n );\n } else if (!disabled && href) {\n buttonElement = (\n <PrimitiveButton\n asChild\n variant={variant}\n size={resolvedSize}\n className={mergedClassName}\n disabled={isDisabled}\n {...otherProps}\n >\n <a\n ref={ref as React.Ref<HTMLAnchorElement>}\n href={href}\n onClick={handleClick}\n >\n {buttonContent}\n </a>\n </PrimitiveButton>\n );\n } else {\n buttonElement = (\n <PrimitiveButton\n ref={ref}\n type={type}\n variant={variant}\n size={resolvedSize}\n className={mergedClassName}\n disabled={isDisabled}\n onClick={handleClick}\n {...otherProps}\n >\n {buttonContent}\n </PrimitiveButton>\n );\n }\n\n // --- Tooltip wrapper ---\n if (tooltipProps) {\n const { content, position, disabled: tooltipDisabled } = tooltipProps;\n\n if (tooltipDisabled || !content) {\n return <>{buttonElement}</>;\n }\n\n const side = position ? TOOLTIP_SIDE_MAP[position] : undefined;\n\n // Wrap disabled buttons in a span so tooltip still triggers\n const triggerContent = isDisabled ? (\n <span className=\"inline-flex\">{buttonElement}</span>\n ) : (\n buttonElement\n );\n\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>{triggerContent}</TooltipTrigger>\n <TooltipContent side={side}>{content}</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n }\n\n return <>{buttonElement}</>;\n }\n);\n\nButton.displayName = \"Button\";\n\nexport { Button };\n"],"names":["forwardRef","renderIcon","jsxs","Fragment","jsx","Spinner","cn","PrimitiveButton","Link","TooltipProvider","Tooltip","TooltipTrigger","TooltipContent"],"mappings":"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"}
1
+ {"version":3,"file":"Button-8VH9p9RB.js","sources":["../../src/components/Button/constants.ts","../../src/components/Button/Button.tsx"],"sourcesContent":["type ButtonSize =\n | \"default\"\n | \"xs\"\n | \"sm\"\n | \"lg\"\n | \"icon\"\n | \"icon-xs\"\n | \"icon-sm\"\n | \"icon-lg\";\n\nexport const ICON_ONLY_SIZE_MAP: Partial<Record<ButtonSize, ButtonSize>> = {\n xs: \"icon-xs\",\n sm: \"icon-sm\",\n default: \"icon\",\n lg: \"icon-lg\",\n};\n\nexport const SPINNER_SIZE_MAP: Record<ButtonSize, string> = {\n xs: \"size-3\",\n sm: \"size-3.5\",\n default: \"size-3.5\",\n lg: \"size-4\",\n icon: \"size-3.5\",\n \"icon-xs\": \"size-3\",\n \"icon-sm\": \"size-3.5\",\n \"icon-lg\": \"size-4\",\n};\n\n// Map NeetoUI tooltip `position` values to Radix side values\nexport const TOOLTIP_SIDE_MAP: Record<\n string,\n \"top\" | \"right\" | \"bottom\" | \"left\"\n> = {\n top: \"top\",\n bottom: \"bottom\",\n left: \"left\",\n right: \"right\",\n \"top-start\": \"top\",\n \"top-end\": \"top\",\n \"bottom-start\": \"bottom\",\n \"bottom-end\": \"bottom\",\n \"left-start\": \"left\",\n \"left-end\": \"left\",\n \"right-start\": \"right\",\n \"right-end\": \"right\",\n};\n","import React, { forwardRef, type ReactNode, type MouseEvent } from \"react\";\n\nimport { Link } from \"react-router-dom\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { renderIcon, type IconProp } from \"src/shared/renderIcon\";\nimport { Button as PrimitiveButton } from \"src/primitives/Button\";\nimport { Spinner } from \"src/primitives/Spinner\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"src/primitives/Tooltip\";\n\nimport {\n ICON_ONLY_SIZE_MAP,\n SPINNER_SIZE_MAP,\n TOOLTIP_SIDE_MAP,\n} from \"./constants\";\n\nexport const BUTTON_VARIANTS = [\n \"default\",\n \"secondary\",\n \"destructive\",\n \"destructive-soft\",\n \"outline\",\n \"ghost\",\n \"link\",\n] as const;\n\nexport const BUTTON_SIZES = [\n \"default\",\n \"xs\",\n \"sm\",\n \"lg\",\n \"icon\",\n \"icon-xs\",\n \"icon-sm\",\n \"icon-lg\",\n] as const;\n\nexport type ButtonVariant = (typeof BUTTON_VARIANTS)[number];\nexport type ButtonSize = (typeof BUTTON_SIZES)[number];\n\ntype IconPosition = \"left\" | \"right\";\n\ntype ButtonType = \"button\" | \"reset\" | \"submit\";\n\ninterface ButtonTooltipProps {\n content?: ReactNode;\n position?: string;\n disabled?: boolean;\n}\n\nexport interface ButtonProps extends Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n \"type\" | \"disabled\" | \"className\" | \"children\" | \"onClick\"\n> {\n /** Visual variant of the button. */\n variant?: ButtonVariant;\n /** Size of the button. */\n size?: ButtonSize;\n /** Text label rendered inside the button. */\n label?: string;\n /** Icon component, element, or class-name string. */\n icon?: IconProp;\n /** Placement of the icon relative to the label. */\n iconPosition?: IconPosition;\n /** Show a loading spinner and prevent clicks. */\n loading?: boolean;\n /** Disable the button. */\n disabled?: boolean;\n /** Click handler. */\n onClick?: (e: MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void;\n /** Internal route (react-router `Link`). */\n to?: string;\n /** External URL (renders an anchor tag). */\n href?: string;\n /** HTML button type attribute. */\n type?: ButtonType;\n /** Stretch the button to fill its container. */\n fullWidth?: boolean;\n /** Additional CSS class names. */\n className?: string;\n /** Props forwarded to a wrapping Tooltip. */\n tooltipProps?: ButtonTooltipProps | null;\n /** Render as a custom element (polymorphic). */\n asChild?: boolean;\n /**\n * Content rendered after the label and any right-side icon (e.g., a trailing\n * chevron, badge, or shortcut indicator). Auto-wrapped with\n * `data-icon=\"inline-end\"` so the button's compact end-padding kicks in.\n */\n trailing?: ReactNode;\n /** Children rendered inside the button (fallback for `label`). */\n children?: ReactNode;\n}\n\nconst Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n variant = \"default\",\n size = \"default\",\n label,\n icon = null,\n iconPosition = \"right\",\n loading = false,\n disabled = false,\n onClick,\n to,\n href,\n type = \"button\",\n fullWidth = false,\n className,\n tooltipProps = null,\n asChild = false,\n trailing,\n children,\n ...otherProps\n },\n ref\n ) => {\n const isIconSize = size.startsWith(\"icon\");\n const renderLabel = isIconSize ? null : label || children;\n const isIconOnly = !renderLabel && !!icon;\n const resolvedSize = isIconOnly ? (ICON_ONLY_SIZE_MAP[size] ?? size) : size;\n\n // --- Loading / disabled state ---\n const isDisabled = disabled || loading;\n\n // --- Click handler ---\n const handleClick = (\n e: MouseEvent<HTMLButtonElement | HTMLAnchorElement>\n ) => {\n if (loading || disabled) {\n e.preventDefault();\n return;\n }\n onClick?.(e);\n };\n\n // --- Icon elements ---\n const iconElement = icon ? renderIcon(icon) : null;\n\n // --- Build the inner content ---\n const buttonContent = (\n <>\n {loading && (\n <span className=\"absolute inset-0 flex items-center justify-center\">\n <Spinner\n aria-hidden=\"true\"\n className={SPINNER_SIZE_MAP[resolvedSize]}\n />\n </span>\n )}\n <span\n className={cn(\n \"inline-flex items-center gap-1.5\",\n loading && \"invisible\"\n )}\n >\n {iconPosition === \"left\" && iconElement && (\n <span data-icon=\"inline-start\">{iconElement}</span>\n )}\n {renderLabel && <span>{renderLabel}</span>}\n {iconPosition === \"right\" && iconElement && (\n <span data-icon=\"inline-end\">{iconElement}</span>\n )}\n {trailing && <span data-icon=\"inline-end\">{trailing}</span>}\n </span>\n </>\n );\n\n // --- Merged className ---\n const mergedClassName = cn(\n fullWidth && \"w-full\",\n loading && \"relative pointer-events-none\",\n variant === \"link\" && \"[table_&]:max-w-full [table_&]:whitespace-normal\",\n className\n );\n\n // --- Determine render element ---\n let buttonElement: ReactNode;\n\n if (asChild) {\n buttonElement = (\n <PrimitiveButton\n ref={ref}\n asChild\n variant={variant}\n size={resolvedSize}\n className={mergedClassName}\n disabled={isDisabled}\n {...otherProps}\n >\n {children}\n </PrimitiveButton>\n );\n } else if (!disabled && to) {\n buttonElement = (\n <PrimitiveButton\n asChild\n variant={variant}\n size={resolvedSize}\n className={mergedClassName}\n disabled={isDisabled}\n {...otherProps}\n >\n <Link\n innerRef={ref as React.Ref<HTMLAnchorElement>}\n to={to}\n onClick={handleClick}\n >\n {buttonContent}\n </Link>\n </PrimitiveButton>\n );\n } else if (!disabled && href) {\n buttonElement = (\n <PrimitiveButton\n asChild\n variant={variant}\n size={resolvedSize}\n className={mergedClassName}\n disabled={isDisabled}\n {...otherProps}\n >\n <a\n ref={ref as React.Ref<HTMLAnchorElement>}\n href={href}\n onClick={handleClick}\n >\n {buttonContent}\n </a>\n </PrimitiveButton>\n );\n } else {\n buttonElement = (\n <PrimitiveButton\n ref={ref}\n type={type}\n variant={variant}\n size={resolvedSize}\n className={mergedClassName}\n disabled={isDisabled}\n onClick={handleClick}\n {...otherProps}\n >\n {buttonContent}\n </PrimitiveButton>\n );\n }\n\n // --- Tooltip wrapper ---\n if (tooltipProps) {\n const { content, position, disabled: tooltipDisabled } = tooltipProps;\n\n if (tooltipDisabled || !content) {\n return <>{buttonElement}</>;\n }\n\n const side = position ? TOOLTIP_SIDE_MAP[position] : undefined;\n\n // Wrap disabled buttons in a span so tooltip still triggers\n const triggerContent = isDisabled ? (\n <span className=\"inline-flex\">{buttonElement}</span>\n ) : (\n buttonElement\n );\n\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>{triggerContent}</TooltipTrigger>\n <TooltipContent side={side}>{content}</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n }\n\n return <>{buttonElement}</>;\n }\n);\n\nButton.displayName = \"Button\";\n\nexport { Button };\n"],"names":["forwardRef","renderIcon","jsxs","Fragment","jsx","Spinner","cn","PrimitiveButton","Link","TooltipProvider","Tooltip","TooltipTrigger","TooltipContent"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Callout-CYIrflF1.js","sources":["../../node_modules/lucide-react/dist/esm/icons/circle-alert.js","../../node_modules/lucide-react/dist/esm/icons/circle-check-big.js","../../src/components/Callout/constants.ts","../../src/components/Callout/Callout.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 [\"line\", { x1: \"12\", x2: \"12\", y1: \"8\", y2: \"12\", key: \"1pkeuh\" }],\n [\"line\", { x1: \"12\", x2: \"12.01\", y1: \"16\", y2: \"16\", key: \"4dfq90\" }]\n];\nconst CircleAlert = createLucideIcon(\"circle-alert\", __iconNode);\n\nexport { __iconNode, CircleAlert as default };\n//# sourceMappingURL=circle-alert.js.map\n","/**\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 [\"path\", { d: \"M21.801 10A10 10 0 1 1 17 3.335\", key: \"yps3ct\" }],\n [\"path\", { d: \"m9 11 3 3L22 4\", key: \"1pflzl\" }]\n];\nconst CircleCheckBig = createLucideIcon(\"circle-check-big\", __iconNode);\n\nexport { __iconNode, CircleCheckBig as default };\n//# sourceMappingURL=circle-check-big.js.map\n","import React from \"react\";\n\nimport {\n InfoIcon,\n AlertTriangleIcon,\n AlertCircleIcon,\n CheckCircleIcon,\n} from \"lucide-react\";\n\nimport type { CalloutVariant } from \"./Callout\";\n\nexport const VARIANT_CONFIG: Record<\n CalloutVariant,\n {\n container: string;\n icon: React.ComponentType<{ className?: string }>;\n }\n> = {\n info: {\n container: \"border border-info-border bg-info text-info-foreground\",\n icon: InfoIcon,\n },\n warning: {\n container:\n \"border border-warning-border bg-warning text-warning-foreground\",\n icon: AlertTriangleIcon,\n },\n danger: {\n container: \"border border-error-border bg-error text-error-foreground\",\n icon: AlertCircleIcon,\n },\n success: {\n container:\n \"border border-success-border bg-success text-success-foreground\",\n icon: CheckCircleIcon,\n },\n};\n","import React, { forwardRef } from \"react\";\n\nimport {\n Alert as PrimitiveAlert,\n AlertTitle,\n AlertDescription,\n} from \"src/primitives/Alert\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { renderIcon, type IconProp } from \"src/lib/renderIcon\";\n\nimport { VARIANT_CONFIG } from \"./constants\";\n\nexport type CalloutVariant = \"info\" | \"warning\" | \"danger\" | \"success\";\n\ntype PrimitiveAlertProps = React.ComponentProps<typeof PrimitiveAlert>;\n\nexport interface CalloutProps extends Omit<PrimitiveAlertProps, \"variant\"> {\n /** Visual style of the callout. */\n variant?: CalloutVariant;\n /** Custom icon. Defaults to a variant-specific icon. */\n icon?: IconProp;\n /** Optional title rendered as AlertTitle. */\n title?: string;\n /** Content rendered as AlertDescription. */\n children?: React.ReactNode;\n}\n\nconst Callout = forwardRef<HTMLDivElement, CalloutProps>(\n (\n { variant = \"info\", icon, title, children, className, ...otherProps },\n ref\n ) => {\n const config = VARIANT_CONFIG[variant];\n const resolvedIcon = icon ?? config.icon;\n\n return (\n <PrimitiveAlert\n ref={ref}\n className={cn(config.container, className)}\n {...otherProps}\n >\n {renderIcon(resolvedIcon, \"size-4 shrink-0\")}\n {title && <AlertTitle className=\"font-semibold\">{title}</AlertTitle>}\n {children && (\n <AlertDescription className=\"text-current\">\n {children}\n </AlertDescription>\n )}\n </PrimitiveAlert>\n );\n }\n);\n\nCallout.displayName = \"Callout\";\n\nexport { Callout };\n"],"names":["__iconNode","createLucideIcon","InfoIcon","AlertTriangleIcon","AlertCircleIcon","CheckCircleIcon","forwardRef","jsxs","PrimitiveAlert","cn","renderIcon","jsx","AlertTitle","AlertDescription"],"mappings":";;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;;;AAIA,MAAMA,YAAU,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,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AACpE,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE;AACvE,CAAC;AACD,MAAM,WAAW,GAAGC,iCAAgB,CAAC,cAAc,EAAED,YAAU,CAAC;;ACdhE;AACA;AACA;AACA;AACA;AACA;;;AAIA,MAAM,UAAU,GAAG;AACnB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,iCAAiC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AACnE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,gBAAgB,EAAE,GAAG,EAAE,QAAQ,EAAE;AACjD,CAAC;AACD,MAAM,cAAc,GAAGC,iCAAgB,CAAC,kBAAkB,EAAE,UAAU,CAAC;;ACFhE,MAAM,cAAA,GAMT;AAAA,EACF,IAAA,EAAM;AAAA,IACJ,SAAA,EAAW,wDAAA;AAAA,IACX,IAAA,EAAMC;AAAA,GACR;AAAA,EACA,OAAA,EAAS;AAAA,IACP,SAAA,EACE,iEAAA;AAAA,IACF,IAAA,EAAMC;AAAA,GACR;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,SAAA,EAAW,2DAAA;AAAA,IACX,IAAA,EAAMC;AAAA,GACR;AAAA,EACA,OAAA,EAAS;AAAA,IACP,SAAA,EACE,iEAAA;AAAA,IACF,IAAA,EAAMC;AAAA;AAEV,CAAA;;ACTA,MAAM,OAAA,GAAUC,gBAAA;AAAA,EACd,CACE,EAAE,OAAA,GAAU,MAAA,EAAQ,IAAA,EAAM,KAAA,EAAO,QAAA,EAAU,SAAA,EAAW,GAAG,UAAA,EAAW,EACpE,GAAA,KACG;AACH,IAAA,MAAM,MAAA,GAAS,eAAe,OAAO,CAAA;AACrC,IAAA,MAAM,YAAA,GAAe,QAAQ,MAAA,CAAO,IAAA;AAEpC,IAAA,uBACEC,eAAA;AAAA,MAACC,sBAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAWC,QAAA,CAAG,MAAA,CAAO,SAAA,EAAW,SAAS,CAAA;AAAA,QACxC,GAAG,UAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAAC,qBAAA,CAAW,cAAc,iBAAiB,CAAA;AAAA,UAC1C,KAAA,oBAASC,cAAA,CAACC,2BAAA,EAAA,EAAW,SAAA,EAAU,iBAAiB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,UACtD,QAAA,oBACCD,cAAA,CAACE,iCAAA,EAAA,EAAiB,SAAA,EAAU,gBACzB,QAAA,EACH;AAAA;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AAEA,OAAA,CAAQ,WAAA,GAAc,SAAA;;;;","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"Callout-CYIrflF1.js","sources":["../../node_modules/lucide-react/dist/esm/icons/circle-alert.js","../../node_modules/lucide-react/dist/esm/icons/circle-check-big.js","../../src/components/Callout/constants.ts","../../src/components/Callout/Callout.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 [\"line\", { x1: \"12\", x2: \"12\", y1: \"8\", y2: \"12\", key: \"1pkeuh\" }],\n [\"line\", { x1: \"12\", x2: \"12.01\", y1: \"16\", y2: \"16\", key: \"4dfq90\" }]\n];\nconst CircleAlert = createLucideIcon(\"circle-alert\", __iconNode);\n\nexport { __iconNode, CircleAlert as default };\n//# sourceMappingURL=circle-alert.js.map\n","/**\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 [\"path\", { d: \"M21.801 10A10 10 0 1 1 17 3.335\", key: \"yps3ct\" }],\n [\"path\", { d: \"m9 11 3 3L22 4\", key: \"1pflzl\" }]\n];\nconst CircleCheckBig = createLucideIcon(\"circle-check-big\", __iconNode);\n\nexport { __iconNode, CircleCheckBig as default };\n//# sourceMappingURL=circle-check-big.js.map\n","import React from \"react\";\n\nimport {\n InfoIcon,\n AlertTriangleIcon,\n AlertCircleIcon,\n CheckCircleIcon,\n} from \"lucide-react\";\n\nimport type { CalloutVariant } from \"./Callout\";\n\nexport const VARIANT_CONFIG: Record<\n CalloutVariant,\n {\n container: string;\n icon: React.ComponentType<{ className?: string }>;\n }\n> = {\n info: {\n container: \"border border-info-border bg-info text-info-foreground\",\n icon: InfoIcon,\n },\n warning: {\n container:\n \"border border-warning-border bg-warning text-warning-foreground\",\n icon: AlertTriangleIcon,\n },\n danger: {\n container: \"border border-error-border bg-error text-error-foreground\",\n icon: AlertCircleIcon,\n },\n success: {\n container:\n \"border border-success-border bg-success text-success-foreground\",\n icon: CheckCircleIcon,\n },\n};\n","import React, { forwardRef } from \"react\";\n\nimport {\n Alert as PrimitiveAlert,\n AlertTitle,\n AlertDescription,\n} from \"src/primitives/Alert\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { renderIcon, type IconProp } from \"src/shared/renderIcon\";\n\nimport { VARIANT_CONFIG } from \"./constants\";\n\nexport type CalloutVariant = \"info\" | \"warning\" | \"danger\" | \"success\";\n\ntype PrimitiveAlertProps = React.ComponentProps<typeof PrimitiveAlert>;\n\nexport interface CalloutProps extends Omit<PrimitiveAlertProps, \"variant\"> {\n /** Visual style of the callout. */\n variant?: CalloutVariant;\n /** Custom icon. Defaults to a variant-specific icon. */\n icon?: IconProp;\n /** Optional title rendered as AlertTitle. */\n title?: string;\n /** Content rendered as AlertDescription. */\n children?: React.ReactNode;\n}\n\nconst Callout = forwardRef<HTMLDivElement, CalloutProps>(\n (\n { variant = \"info\", icon, title, children, className, ...otherProps },\n ref\n ) => {\n const config = VARIANT_CONFIG[variant];\n const resolvedIcon = icon ?? config.icon;\n\n return (\n <PrimitiveAlert\n ref={ref}\n className={cn(config.container, className)}\n {...otherProps}\n >\n {renderIcon(resolvedIcon, \"size-4 shrink-0\")}\n {title && <AlertTitle className=\"font-semibold\">{title}</AlertTitle>}\n {children && (\n <AlertDescription className=\"text-current\">\n {children}\n </AlertDescription>\n )}\n </PrimitiveAlert>\n );\n }\n);\n\nCallout.displayName = \"Callout\";\n\nexport { Callout };\n"],"names":["__iconNode","createLucideIcon","InfoIcon","AlertTriangleIcon","AlertCircleIcon","CheckCircleIcon","forwardRef","jsxs","PrimitiveAlert","cn","renderIcon","jsx","AlertTitle","AlertDescription"],"mappings":";;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;;;AAIA,MAAMA,YAAU,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,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AACpE,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE;AACvE,CAAC;AACD,MAAM,WAAW,GAAGC,iCAAgB,CAAC,cAAc,EAAED,YAAU,CAAC;;ACdhE;AACA;AACA;AACA;AACA;AACA;;;AAIA,MAAM,UAAU,GAAG;AACnB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,iCAAiC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AACnE,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,gBAAgB,EAAE,GAAG,EAAE,QAAQ,EAAE;AACjD,CAAC;AACD,MAAM,cAAc,GAAGC,iCAAgB,CAAC,kBAAkB,EAAE,UAAU,CAAC;;ACFhE,MAAM,cAAA,GAMT;AAAA,EACF,IAAA,EAAM;AAAA,IACJ,SAAA,EAAW,wDAAA;AAAA,IACX,IAAA,EAAMC;AAAA,GACR;AAAA,EACA,OAAA,EAAS;AAAA,IACP,SAAA,EACE,iEAAA;AAAA,IACF,IAAA,EAAMC;AAAA,GACR;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,SAAA,EAAW,2DAAA;AAAA,IACX,IAAA,EAAMC;AAAA,GACR;AAAA,EACA,OAAA,EAAS;AAAA,IACP,SAAA,EACE,iEAAA;AAAA,IACF,IAAA,EAAMC;AAAA;AAEV,CAAA;;ACTA,MAAM,OAAA,GAAUC,gBAAA;AAAA,EACd,CACE,EAAE,OAAA,GAAU,MAAA,EAAQ,IAAA,EAAM,KAAA,EAAO,QAAA,EAAU,SAAA,EAAW,GAAG,UAAA,EAAW,EACpE,GAAA,KACG;AACH,IAAA,MAAM,MAAA,GAAS,eAAe,OAAO,CAAA;AACrC,IAAA,MAAM,YAAA,GAAe,QAAQ,MAAA,CAAO,IAAA;AAEpC,IAAA,uBACEC,eAAA;AAAA,MAACC,sBAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAWC,QAAA,CAAG,MAAA,CAAO,SAAA,EAAW,SAAS,CAAA;AAAA,QACxC,GAAG,UAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAAC,qBAAA,CAAW,cAAc,iBAAiB,CAAA;AAAA,UAC1C,KAAA,oBAASC,cAAA,CAACC,2BAAA,EAAA,EAAW,SAAA,EAAU,iBAAiB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,UACtD,QAAA,oBACCD,cAAA,CAACE,iCAAA,EAAA,EAAiB,SAAA,EAAU,gBACzB,QAAA,EACH;AAAA;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AAEA,OAAA,CAAQ,WAAA,GAAc,SAAA;;;;","x_google_ignoreList":[0,1]}
@@ -14,6 +14,7 @@ const Checkbox = React.forwardRef(
14
14
  required = false,
15
15
  disabled = false,
16
16
  className,
17
+ labelProps,
17
18
  ...otherProps
18
19
  }, ref) => {
19
20
  const generatedId = React.useId();
@@ -58,7 +59,7 @@ const Checkbox = React.forwardRef(
58
59
  }
59
60
  ),
60
61
  /* @__PURE__ */ jsxRuntime.jsxs(primitives_Field.FieldContent, { children: [
61
- label && /* @__PURE__ */ jsxRuntime.jsxs(primitives_Field.FieldLabel, { htmlFor: id, children: [
62
+ label && /* @__PURE__ */ jsxRuntime.jsxs(primitives_Field.FieldLabel, { htmlFor: id, ...labelProps, children: [
62
63
  label,
63
64
  required && /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", className: "text-destructive", children: "*" })
64
65
  ] }),
@@ -74,4 +75,4 @@ const Checkbox = React.forwardRef(
74
75
  Checkbox.displayName = "Checkbox";
75
76
 
76
77
  exports.Checkbox = Checkbox;
77
- //# sourceMappingURL=Checkbox-CxqWOvFN.js.map
78
+ //# sourceMappingURL=Checkbox-CymHP7QE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Checkbox-CymHP7QE.js","sources":["../../src/components/Checkbox/Checkbox.tsx"],"sourcesContent":["import React, { forwardRef, useId } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { Checkbox as PrimitiveCheckbox } from \"src/primitives/Checkbox\";\nimport {\n Field,\n FieldContent,\n FieldLabel,\n FieldDescription,\n FieldError,\n} from \"src/primitives/Field\";\n\nexport interface CheckboxProps extends React.ComponentProps<\n typeof PrimitiveCheckbox\n> {\n /** Text displayed next to the checkbox. */\n label?: string;\n /** Error message displayed below the checkbox. */\n error?: string;\n /** Helper text displayed below the label. Accepts string or ReactNode. */\n helpText?: React.ReactNode;\n /** Shows a required indicator next to the label. */\n required?: boolean;\n /** Additional class name for the outermost wrapper. */\n className?: string;\n /** Props forwarded to the Label element. */\n labelProps?: React.ComponentProps<typeof FieldLabel>;\n}\n\nconst Checkbox = forwardRef<\n React.ComponentRef<typeof PrimitiveCheckbox>,\n CheckboxProps\n>(\n (\n {\n label,\n error,\n helpText,\n required = false,\n disabled = false,\n className,\n labelProps,\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 const ariaDescribedBy =\n [error ? errorId : null, helpText ? helpTextId : null]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n const hasField = !!(label || error || helpText);\n\n if (!hasField) {\n return (\n <PrimitiveCheckbox\n ref={ref}\n id={id}\n disabled={disabled}\n aria-invalid={!!error || undefined}\n aria-required={required || undefined}\n aria-describedby={ariaDescribedBy}\n className={className}\n {...otherProps}\n />\n );\n }\n\n return (\n <div\n className={cn(\"flex flex-col gap-1\", className)}\n data-disabled={disabled || undefined}\n data-invalid={!!error || undefined}\n >\n <Field orientation=\"horizontal\">\n <PrimitiveCheckbox\n ref={ref}\n id={id}\n disabled={disabled}\n aria-invalid={!!error || undefined}\n aria-required={required || undefined}\n aria-describedby={ariaDescribedBy}\n {...otherProps}\n />\n <FieldContent>\n {label && (\n <FieldLabel htmlFor={id} {...labelProps}>\n {label}\n {required && (\n <span aria-hidden=\"true\" className=\"text-destructive\">\n *\n </span>\n )}\n </FieldLabel>\n )}\n {helpText && (\n <FieldDescription id={helpTextId}>{helpText}</FieldDescription>\n )}\n </FieldContent>\n </Field>\n {error && <FieldError id={errorId}>{error}</FieldError>}\n </div>\n );\n }\n);\n\nCheckbox.displayName = \"Checkbox\";\n\nexport { Checkbox };\n"],"names":["forwardRef","useId","jsx","PrimitiveCheckbox","jsxs","cn","Field","FieldContent","FieldLabel","FieldDescription","FieldError"],"mappings":";;;;;;;;AA6BA,MAAM,QAAA,GAAWA,gBAAA;AAAA,EAIf,CACE;AAAA,IACE,KAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA,GAAW,KAAA;AAAA,IACX,QAAA,GAAW,KAAA;AAAA,IACX,SAAA;AAAA,IACA,UAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,cAAcC,WAAA,EAAM;AAC1B,IAAA,MAAM,EAAA,GAAK,WAAW,EAAA,IAAM,WAAA;AAC5B,IAAA,MAAM,OAAA,GAAU,SAAS,EAAE,CAAA,CAAA;AAC3B,IAAA,MAAM,UAAA,GAAa,YAAY,EAAE,CAAA,CAAA;AAEjC,IAAA,MAAM,eAAA,GACJ,CAAC,KAAA,GAAQ,OAAA,GAAU,MAAM,QAAA,GAAW,UAAA,GAAa,IAAI,CAAA,CAClD,MAAA,CAAO,OAAO,CAAA,CACd,IAAA,CAAK,GAAG,CAAA,IAAK,MAAA;AAElB,IAAA,MAAM,QAAA,GAAW,CAAC,EAAE,KAAA,IAAS,KAAA,IAAS,QAAA,CAAA;AAEtC,IAAA,IAAI,CAAC,QAAA,EAAU;AACb,MAAA,uBACEC,cAAA;AAAA,QAACC,4BAAA;AAAA,QAAA;AAAA,UACC,GAAA;AAAA,UACA,EAAA;AAAA,UACA,QAAA;AAAA,UACA,cAAA,EAAc,CAAC,CAAC,KAAA,IAAS,MAAA;AAAA,UACzB,iBAAe,QAAA,IAAY,MAAA;AAAA,UAC3B,kBAAA,EAAkB,eAAA;AAAA,UAClB,SAAA;AAAA,UACC,GAAG;AAAA;AAAA,OACN;AAAA,IAEJ;AAEA,IAAA,uBACEC,eAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAWC,QAAA,CAAG,qBAAA,EAAuB,SAAS,CAAA;AAAA,QAC9C,iBAAe,QAAA,IAAY,MAAA;AAAA,QAC3B,cAAA,EAAc,CAAC,CAAC,KAAA,IAAS,MAAA;AAAA,QAEzB,QAAA,EAAA;AAAA,0BAAAD,eAAA,CAACE,sBAAA,EAAA,EAAM,aAAY,YAAA,EACjB,QAAA,EAAA;AAAA,4BAAAJ,cAAA;AAAA,cAACC,4BAAA;AAAA,cAAA;AAAA,gBACC,GAAA;AAAA,gBACA,EAAA;AAAA,gBACA,QAAA;AAAA,gBACA,cAAA,EAAc,CAAC,CAAC,KAAA,IAAS,MAAA;AAAA,gBACzB,iBAAe,QAAA,IAAY,MAAA;AAAA,gBAC3B,kBAAA,EAAkB,eAAA;AAAA,gBACjB,GAAG;AAAA;AAAA,aACN;AAAA,4CACCI,6BAAA,EAAA,EACE,QAAA,EAAA;AAAA,cAAA,KAAA,oBACCH,eAAA,CAACI,2BAAA,EAAA,EAAW,OAAA,EAAS,EAAA,EAAK,GAAG,UAAA,EAC1B,QAAA,EAAA;AAAA,gBAAA,KAAA;AAAA,gBACA,4BACCN,cAAA,CAAC,MAAA,EAAA,EAAK,eAAY,MAAA,EAAO,SAAA,EAAU,oBAAmB,QAAA,EAAA,GAAA,EAEtD;AAAA,eAAA,EAEJ,CAAA;AAAA,cAED,QAAA,oBACCA,cAAA,CAACO,iCAAA,EAAA,EAAiB,EAAA,EAAI,YAAa,QAAA,EAAA,QAAA,EAAS;AAAA,aAAA,EAEhD;AAAA,WAAA,EACF,CAAA;AAAA,UACC,KAAA,oBAASP,cAAA,CAACQ,2BAAA,EAAA,EAAW,EAAA,EAAI,SAAU,QAAA,EAAA,KAAA,EAAM;AAAA;AAAA;AAAA,KAC5C;AAAA,EAEJ;AACF;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Empty-aQaWK0p4.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/lib/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}\n\nfunction MaybeTooltipButton({\n buttonProps,\n showTooltipWhenDisabled,\n defaultVariant,\n}: {\n buttonProps: React.ComponentProps<typeof Button>;\n showTooltipWhenDisabled: boolean;\n defaultVariant: \"default\" | \"outline\";\n}) {\n const button = <Button variant={defaultVariant} {...buttonProps} />;\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>{buttonProps.label}</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 ...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>{title}</EmptyTitle>\n </Typography>\n )}\n {description && (\n <Typography variant=\"body3\" color=\"muted\" asChild>\n <EmptyDescription>{description}</EmptyDescription>\n </Typography>\n )}\n {helpText && (\n <Typography variant=\"body3\" color=\"muted\" asChild>\n <p>{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 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 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":["jsx","Button","TooltipProvider","Tooltip","TooltipTrigger","TooltipContent","forwardRef","jsxs","PrimitiveEmpty","cn","EmptyHeader","Fragment","EmptyMedia","renderIcon","Typography","EmptyTitle","EmptyDescription","EmptyContent"],"mappings":"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"}
1
+ {"version":3,"file":"Empty-aQaWK0p4.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}\n\nfunction MaybeTooltipButton({\n buttonProps,\n showTooltipWhenDisabled,\n defaultVariant,\n}: {\n buttonProps: React.ComponentProps<typeof Button>;\n showTooltipWhenDisabled: boolean;\n defaultVariant: \"default\" | \"outline\";\n}) {\n const button = <Button variant={defaultVariant} {...buttonProps} />;\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>{buttonProps.label}</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 ...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>{title}</EmptyTitle>\n </Typography>\n )}\n {description && (\n <Typography variant=\"body3\" color=\"muted\" asChild>\n <EmptyDescription>{description}</EmptyDescription>\n </Typography>\n )}\n {helpText && (\n <Typography variant=\"body3\" color=\"muted\" asChild>\n <p>{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 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 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":["jsx","Button","TooltipProvider","Tooltip","TooltipTrigger","TooltipContent","forwardRef","jsxs","PrimitiveEmpty","cn","EmptyHeader","Fragment","EmptyMedia","renderIcon","Typography","EmptyTitle","EmptyDescription","EmptyContent"],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var primitives_Tooltip = require('./primitives/Tooltip.js');
5
+ var renderIcon = require('./renderIcon-BRrpZu9a.js');
6
+ var utils = require('./utils-BhM0B89p.js');
7
+ var createLucideIcon = require('./createLucideIcon-D0tRgV6l.js');
8
+ var Popover = require('./Popover-DuRSsDHz.js');
9
+ var Button = require('./Button-8VH9p9RB.js');
10
+
11
+ /**
12
+ * @license lucide-react v0.577.0 - ISC
13
+ *
14
+ * This source code is licensed under the ISC license.
15
+ * See the LICENSE file in the root directory of this source tree.
16
+ */
17
+
18
+
19
+ const __iconNode = [
20
+ ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
21
+ ["path", { d: "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3", key: "1u773s" }],
22
+ ["path", { d: "M12 17h.01", key: "p32p05" }]
23
+ ];
24
+ const CircleQuestionMark = createLucideIcon.createLucideIcon("circle-question-mark", __iconNode);
25
+
26
+ const SIDE_MAP = {
27
+ top: "top",
28
+ bottom: "bottom",
29
+ left: "left",
30
+ right: "right",
31
+ auto: "top"
32
+ };
33
+ const HelpIcon = (helpIconProps) => {
34
+ const icon = helpIconProps.icon ?? CircleQuestionMark;
35
+ const iconElement = /* @__PURE__ */ jsxRuntime.jsx(
36
+ "span",
37
+ {
38
+ className: utils.cn(
39
+ "inline-flex cursor-help text-muted-foreground transition-colors hover:text-foreground",
40
+ helpIconProps.onClick && "cursor-pointer",
41
+ helpIconProps.className
42
+ ),
43
+ onClick: helpIconProps.onClick,
44
+ children: renderIcon.renderIcon(icon, "size-3.5")
45
+ }
46
+ );
47
+ if (helpIconProps.popoverProps) {
48
+ const { title, description, helpLinkProps } = helpIconProps.popoverProps;
49
+ return /* @__PURE__ */ jsxRuntime.jsxs(Popover.Popover, { trigger: iconElement, children: [
50
+ title && /* @__PURE__ */ jsxRuntime.jsx(Popover.Popover.Title, { children: title }),
51
+ description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: description }),
52
+ helpLinkProps && /* @__PURE__ */ jsxRuntime.jsx(
53
+ Button.Button,
54
+ {
55
+ variant: "link",
56
+ size: "sm",
57
+ className: "mt-1 h-auto self-start p-0",
58
+ ...helpLinkProps,
59
+ href: helpLinkProps.href
60
+ }
61
+ )
62
+ ] });
63
+ }
64
+ if (helpIconProps.tooltipProps?.content) {
65
+ const side = SIDE_MAP[helpIconProps.tooltipProps.position ?? "auto"] ?? "top";
66
+ return /* @__PURE__ */ jsxRuntime.jsx(primitives_Tooltip.TooltipProvider, { children: /* @__PURE__ */ jsxRuntime.jsxs(primitives_Tooltip.Tooltip, { children: [
67
+ /* @__PURE__ */ jsxRuntime.jsx(primitives_Tooltip.TooltipTrigger, { asChild: true, children: iconElement }),
68
+ /* @__PURE__ */ jsxRuntime.jsx(primitives_Tooltip.TooltipContent, { side, children: helpIconProps.tooltipProps.content })
69
+ ] }) });
70
+ }
71
+ return iconElement;
72
+ };
73
+
74
+ exports.HelpIcon = HelpIcon;
75
+ //# sourceMappingURL=HelpIcon-CIkKt2uy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HelpIcon-CIkKt2uy.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 && <Popover.Title>{title}</Popover.Title>}\n {description && (\n <p className=\"text-sm text-muted-foreground\">{description}</p>\n )}\n {helpLinkProps && (\n <Button\n variant=\"link\"\n size=\"sm\"\n className=\"mt-1 h-auto self-start p-0\"\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":["createLucideIcon","CircleHelpIcon","jsx","cn","renderIcon","jsxs","Popover","Button","TooltipProvider","Tooltip","TooltipTrigger","TooltipContent"],"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,GAAGA,iCAAgB,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,IAAQC,kBAAA;AAEnC,EAAA,MAAM,WAAA,mBACJC,cAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWC,QAAA;AAAA,QACT,uFAAA;AAAA,QACA,cAAc,OAAA,IAAW,gBAAA;AAAA,QACzB,aAAA,CAAc;AAAA,OAChB;AAAA,MACA,SAAS,aAAA,CAAc,OAAA;AAAA,MAEtB,QAAA,EAAAC,qBAAA,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,uBACEC,eAAA,CAACC,eAAA,EAAA,EAAQ,OAAA,EAAS,WAAA,EACf,QAAA,EAAA;AAAA,MAAA,KAAA,oBAASJ,cAAA,CAACI,eAAA,CAAQ,KAAA,EAAR,EAAe,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,MAC/B,WAAA,oBACCJ,cAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,iCAAiC,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,MAE3D,aAAA,oBACCA,cAAA;AAAA,QAACK,aAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAQ,MAAA;AAAA,UACR,IAAA,EAAK,IAAA;AAAA,UACL,SAAA,EAAU,4BAAA;AAAA,UACT,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,uBACEL,cAAA,CAACM,kCAAA,EAAA,EACC,QAAA,kBAAAH,eAAA,CAACI,0BAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAAP,cAAA,CAACQ,iCAAA,EAAA,EAAe,OAAA,EAAO,IAAA,EAAE,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,sBACrCR,cAAA,CAACS,iCAAA,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]}
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var HelpIcon = require('./HelpIcon-CIkKt2uy.js');
6
+ var primitives_Label = require('./primitives/Label.js');
7
+ var utils = require('./utils-BhM0B89p.js');
8
+
9
+ const Label = React.forwardRef(
10
+ ({ required, helpIconProps, className, children, ...otherProps }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(primitives_Label.Label, { ref, className: utils.cn(className), ...otherProps, children: [
11
+ children,
12
+ required && /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", className: "text-destructive", children: "*" }),
13
+ helpIconProps && /* @__PURE__ */ jsxRuntime.jsx(HelpIcon.HelpIcon, { ...helpIconProps })
14
+ ] })
15
+ );
16
+ Label.displayName = "Label";
17
+
18
+ exports.Label = Label;
19
+ //# sourceMappingURL=Label-Dt7K54Ly.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Label-Dt7K54Ly.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":["forwardRef","jsxs","PrimitiveLabel","cn","jsx","HelpIcon"],"mappings":";;;;;;;;AAmBA,MAAM,KAAA,GAAQA,gBAAA;AAAA,EACZ,CAAC,EAAE,QAAA,EAAU,eAAe,SAAA,EAAW,QAAA,EAAU,GAAG,UAAA,EAAW,EAAG,GAAA,qBAChEC,eAAA,CAACC,0BAAe,GAAA,EAAU,SAAA,EAAWC,SAAG,SAAS,CAAA,EAAI,GAAG,UAAA,EACrD,QAAA,EAAA;AAAA,IAAA,QAAA;AAAA,IACA,4BACCC,cAAA,CAAC,MAAA,EAAA,EAAK,eAAY,MAAA,EAAO,SAAA,EAAU,oBAAmB,QAAA,EAAA,GAAA,EAEtD,CAAA;AAAA,IAED,aAAA,oBAAiBA,cAAA,CAACC,iBAAA,EAAA,EAAU,GAAG,aAAA,EAAe;AAAA,GAAA,EACjD;AAEJ;AAEA,KAAA,CAAM,WAAA,GAAc,OAAA;;;;"}
@@ -50,6 +50,7 @@ const RadioGroupRoot = React.forwardRef(
50
50
  disabled,
51
51
  required,
52
52
  children,
53
+ labelProps,
53
54
  ...props
54
55
  }, ref) => {
55
56
  const generatedId = React.useId();
@@ -84,7 +85,7 @@ const RadioGroupRoot = React.forwardRef(
84
85
  className,
85
86
  children: [
86
87
  (label || helpText) && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
87
- label && /* @__PURE__ */ jsxRuntime.jsxs(primitives_Field.FieldLabel, { children: [
88
+ label && /* @__PURE__ */ jsxRuntime.jsxs(primitives_Field.FieldLabel, { ...labelProps, children: [
88
89
  label,
89
90
  required && /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", className: "text-destructive", children: "*" })
90
91
  ] }),
@@ -105,4 +106,4 @@ const RadioGroup = Object.assign(RadioGroupRoot, {
105
106
  });
106
107
 
107
108
  exports.RadioGroup = RadioGroup;
108
- //# sourceMappingURL=RadioGroup-CkKlLHnR.js.map
109
+ //# sourceMappingURL=RadioGroup-6mpFVQr8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioGroup-6mpFVQr8.js","sources":["../../src/components/RadioGroup/RadioGroup.tsx"],"sourcesContent":["import React, { forwardRef, useId } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n RadioGroup as PrimitiveRadioGroup,\n RadioGroupItem as PrimitiveRadioGroupItem,\n} from \"src/primitives/RadioGroup\";\nimport { Label } from \"src/primitives/Label\";\nimport {\n Field,\n FieldLabel,\n FieldContent,\n FieldDescription,\n FieldError,\n} from \"src/primitives/Field\";\n\nexport interface RadioGroupProps extends Omit<\n React.ComponentProps<typeof PrimitiveRadioGroup>,\n \"children\"\n> {\n /** Group label displayed above the radio items. */\n label?: string;\n /** Error message displayed below the group. */\n error?: string;\n /** Helper text displayed below the group label. Accepts string or ReactNode. */\n helpText?: React.ReactNode;\n /** Layout orientation. Defaults to \"horizontal\". */\n orientation?: \"horizontal\" | \"vertical\";\n /** Additional class name for the outermost wrapper. */\n className?: string;\n /** RadioGroup.Item children. */\n children?: React.ReactNode;\n /** Props forwarded to the group Label element. */\n labelProps?: React.ComponentProps<typeof FieldLabel>;\n}\n\nexport interface RadioGroupItemProps extends React.ComponentProps<\n typeof PrimitiveRadioGroupItem\n> {\n /** Label displayed next to the radio. */\n label?: string;\n /** Helper text displayed below the item label. Accepts string or ReactNode. */\n helpText?: React.ReactNode;\n /** Radio value (required). */\n value: string;\n /** Additional class name for the item wrapper. */\n className?: string;\n /** Optional id override; auto-generated if omitted. */\n id?: string;\n}\n\nconst RadioGroupItem = forwardRef<\n React.ComponentRef<typeof PrimitiveRadioGroupItem>,\n RadioGroupItemProps\n>(({ label, helpText, value, className, id: idProp, ...props }, ref) => {\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const helpTextId = `helpText_${id}`;\n\n return (\n <div\n className={cn(\n \"flex gap-2\",\n helpText ? \"items-start\" : \"items-center\",\n className\n )}\n >\n <PrimitiveRadioGroupItem\n ref={ref}\n id={id}\n value={value}\n aria-describedby={helpText ? helpTextId : undefined}\n className={helpText ? \"mt-0.5\" : undefined}\n {...props}\n />\n {(label || helpText) && (\n <div className=\"flex flex-col gap-0.5\">\n {label && (\n <Label htmlFor={id} className=\"cursor-pointer font-normal\">\n {label}\n </Label>\n )}\n {helpText && (\n <FieldDescription id={helpTextId}>{helpText}</FieldDescription>\n )}\n </div>\n )}\n </div>\n );\n});\n\nRadioGroupItem.displayName = \"RadioGroup.Item\";\n\nconst RadioGroupRoot = forwardRef<\n React.ComponentRef<typeof PrimitiveRadioGroup>,\n RadioGroupProps\n>(\n (\n {\n label,\n error,\n helpText,\n orientation = \"horizontal\",\n className,\n disabled,\n required,\n children,\n labelProps,\n ...props\n },\n ref\n ) => {\n const generatedId = useId();\n const errorId = `error_${generatedId}`;\n const helpTextId = `helpText_${generatedId}`;\n\n const hasField = !!(label || error || helpText);\n\n const radioGroup = (\n <PrimitiveRadioGroup\n ref={ref}\n disabled={disabled}\n required={required}\n aria-invalid={!!error || undefined}\n aria-describedby={\n [error ? errorId : null, helpText ? helpTextId : null]\n .filter(Boolean)\n .join(\" \") || undefined\n }\n orientation={orientation}\n className={cn(\n \"data-[orientation=vertical]:grid data-[orientation=vertical]:gap-2 data-[orientation=horizontal]:flex data-[orientation=horizontal]:flex-row data-[orientation=horizontal]:flex-wrap data-[orientation=horizontal]:items-center data-[orientation=horizontal]:gap-4\",\n !hasField && className\n )}\n {...props}\n >\n {children}\n </PrimitiveRadioGroup>\n );\n\n if (!hasField) {\n return radioGroup;\n }\n\n return (\n <Field\n data-disabled={disabled || undefined}\n data-invalid={!!error || undefined}\n className={className}\n >\n {(label || helpText) && (\n <div>\n {label && (\n <FieldLabel {...labelProps}>\n {label}\n {required && (\n <span aria-hidden=\"true\" className=\"text-destructive\">\n *\n </span>\n )}\n </FieldLabel>\n )}\n {helpText && (\n <FieldDescription id={helpTextId}>{helpText}</FieldDescription>\n )}\n </div>\n )}\n <FieldContent>\n {radioGroup}\n {!!error && <FieldError id={errorId}>{error}</FieldError>}\n </FieldContent>\n </Field>\n );\n }\n);\n\nRadioGroupRoot.displayName = \"RadioGroup\";\n\nconst RadioGroup = Object.assign(RadioGroupRoot, {\n Item: RadioGroupItem,\n});\n\nexport { RadioGroup };\n"],"names":["forwardRef","useId","jsxs","cn","jsx","PrimitiveRadioGroupItem","Label","FieldDescription","PrimitiveRadioGroup","Field","FieldLabel","FieldContent","FieldError"],"mappings":";;;;;;;;;AAmDA,MAAM,cAAA,GAAiBA,gBAAA,CAGrB,CAAC,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,SAAA,EAAW,EAAA,EAAI,MAAA,EAAQ,GAAG,KAAA,IAAS,GAAA,KAAQ;AACtE,EAAA,MAAM,cAAcC,WAAA,EAAM;AAC1B,EAAA,MAAM,KAAK,MAAA,IAAU,WAAA;AACrB,EAAA,MAAM,UAAA,GAAa,YAAY,EAAE,CAAA,CAAA;AAEjC,EAAA,uBACEC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWC,QAAA;AAAA,QACT,YAAA;AAAA,QACA,WAAW,aAAA,GAAgB,cAAA;AAAA,QAC3B;AAAA,OACF;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAC,cAAA;AAAA,UAACC,oCAAA;AAAA,UAAA;AAAA,YACC,GAAA;AAAA,YACA,EAAA;AAAA,YACA,KAAA;AAAA,YACA,kBAAA,EAAkB,WAAW,UAAA,GAAa,MAAA;AAAA,YAC1C,SAAA,EAAW,WAAW,QAAA,GAAW,MAAA;AAAA,YAChC,GAAG;AAAA;AAAA,SACN;AAAA,QAAA,CACE,KAAA,IAAS,QAAA,qBACTH,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,uBAAA,EACZ,QAAA,EAAA;AAAA,UAAA,KAAA,mCACEI,sBAAA,EAAA,EAAM,OAAA,EAAS,EAAA,EAAI,SAAA,EAAU,8BAC3B,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,UAED,QAAA,oBACCF,cAAA,CAACG,iCAAA,EAAA,EAAiB,EAAA,EAAI,YAAa,QAAA,EAAA,QAAA,EAAS;AAAA,SAAA,EAEhD;AAAA;AAAA;AAAA,GAEJ;AAEJ,CAAC,CAAA;AAED,cAAA,CAAe,WAAA,GAAc,iBAAA;AAE7B,MAAM,cAAA,GAAiBP,gBAAA;AAAA,EAIrB,CACE;AAAA,IACE,KAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA;AAAA,IACA,WAAA,GAAc,YAAA;AAAA,IACd,SAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,UAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,cAAcC,WAAA,EAAM;AAC1B,IAAA,MAAM,OAAA,GAAU,SAAS,WAAW,CAAA,CAAA;AACpC,IAAA,MAAM,UAAA,GAAa,YAAY,WAAW,CAAA,CAAA;AAE1C,IAAA,MAAM,QAAA,GAAW,CAAC,EAAE,KAAA,IAAS,KAAA,IAAS,QAAA,CAAA;AAEtC,IAAA,MAAM,UAAA,mBACJG,cAAA;AAAA,MAACI,gCAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,QAAA;AAAA,QACA,QAAA;AAAA,QACA,cAAA,EAAc,CAAC,CAAC,KAAA,IAAS,MAAA;AAAA,QACzB,kBAAA,EACE,CAAC,KAAA,GAAQ,OAAA,GAAU,MAAM,QAAA,GAAW,UAAA,GAAa,IAAI,CAAA,CAClD,MAAA,CAAO,OAAO,CAAA,CACd,IAAA,CAAK,GAAG,CAAA,IAAK,MAAA;AAAA,QAElB,WAAA;AAAA,QACA,SAAA,EAAWL,QAAA;AAAA,UACT,qQAAA;AAAA,UACA,CAAC,QAAA,IAAY;AAAA,SACf;AAAA,QACC,GAAG,KAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAGF,IAAA,IAAI,CAAC,QAAA,EAAU;AACb,MAAA,OAAO,UAAA;AAAA,IACT;AAEA,IAAA,uBACED,eAAA;AAAA,MAACO,sBAAA;AAAA,MAAA;AAAA,QACC,iBAAe,QAAA,IAAY,MAAA;AAAA,QAC3B,cAAA,EAAc,CAAC,CAAC,KAAA,IAAS,MAAA;AAAA,QACzB,SAAA;AAAA,QAEE,QAAA,EAAA;AAAA,UAAA,CAAA,KAAA,IAAS,QAAA,qCACR,KAAA,EAAA,EACE,QAAA,EAAA;AAAA,YAAA,KAAA,oBACCP,eAAA,CAACQ,2BAAA,EAAA,EAAY,GAAG,UAAA,EACb,QAAA,EAAA;AAAA,cAAA,KAAA;AAAA,cACA,4BACCN,cAAA,CAAC,MAAA,EAAA,EAAK,eAAY,MAAA,EAAO,SAAA,EAAU,oBAAmB,QAAA,EAAA,GAAA,EAEtD;AAAA,aAAA,EAEJ,CAAA;AAAA,YAED,QAAA,oBACCA,cAAA,CAACG,iCAAA,EAAA,EAAiB,EAAA,EAAI,YAAa,QAAA,EAAA,QAAA,EAAS;AAAA,WAAA,EAEhD,CAAA;AAAA,0CAEDI,6BAAA,EAAA,EACE,QAAA,EAAA;AAAA,YAAA,UAAA;AAAA,YACA,CAAC,CAAC,KAAA,mCAAUC,2BAAA,EAAA,EAAW,EAAA,EAAI,SAAU,QAAA,EAAA,KAAA,EAAM;AAAA,WAAA,EAC9C;AAAA;AAAA;AAAA,KACF;AAAA,EAEJ;AACF,CAAA;AAEA,cAAA,CAAe,WAAA,GAAc,YAAA;AAE7B,MAAM,UAAA,GAAa,MAAA,CAAO,MAAA,CAAO,cAAA,EAAgB;AAAA,EAC/C,IAAA,EAAM;AACR,CAAC;;;;"}
@@ -2,8 +2,8 @@
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var React = require('react');
5
+ var primitives_Field = require('./primitives/Field.js');
5
6
  var primitives_Switch = require('./primitives/Switch.js');
6
- var primitives_Label = require('./primitives/Label.js');
7
7
  var utils = require('./utils-BhM0B89p.js');
8
8
 
9
9
  const Switch = React.forwardRef(
@@ -16,6 +16,7 @@ const Switch = React.forwardRef(
16
16
  size = "default",
17
17
  disabled,
18
18
  id: idProp,
19
+ labelProps,
19
20
  ...otherProps
20
21
  }, ref) => {
21
22
  const generatedId = React.useId();
@@ -54,12 +55,14 @@ const Switch = React.forwardRef(
54
55
  ),
55
56
  (label || helpText) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-0.5", children: [
56
57
  label && /* @__PURE__ */ jsxRuntime.jsxs(
57
- primitives_Label.Label,
58
+ primitives_Field.FieldLabel,
58
59
  {
59
60
  htmlFor: id,
61
+ ...labelProps,
60
62
  className: utils.cn(
61
63
  "cursor-pointer",
62
- disabled && "cursor-not-allowed opacity-50"
64
+ disabled && "cursor-not-allowed opacity-50",
65
+ labelProps?.className
63
66
  ),
64
67
  children: [
65
68
  label,
@@ -81,4 +84,4 @@ const Switch = React.forwardRef(
81
84
  Switch.displayName = "Switch";
82
85
 
83
86
  exports.Switch = Switch;
84
- //# sourceMappingURL=Switch-BTkncHw2.js.map
87
+ //# sourceMappingURL=Switch-bY6bZw78.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Switch-bY6bZw78.js","sources":["../../src/components/Switch/Switch.tsx"],"sourcesContent":["import React, { forwardRef, useId } from \"react\";\n\nimport { FieldLabel } from \"src/primitives/Field\";\nimport { Switch as PrimitiveSwitch } from \"src/primitives/Switch\";\nimport { cn } from \"src/shadcn/lib/utils\";\n\nexport interface SwitchProps extends Omit<\n React.ComponentProps<typeof PrimitiveSwitch>,\n \"children\"\n> {\n /** Text label displayed next to the switch. */\n label?: string;\n /** Error message displayed below the switch. */\n error?: string;\n /** Helper text displayed below the label. Accepts string or ReactNode. */\n helpText?: React.ReactNode;\n /** Shows a required indicator next to the label. */\n required?: boolean;\n /** Additional class name for the outermost wrapper. */\n className?: string;\n /** Size of the switch. */\n size?: \"sm\" | \"default\" | \"lg\";\n /** Props forwarded to the Label element. */\n labelProps?: React.ComponentProps<typeof FieldLabel>;\n}\n\nconst Switch = forwardRef<\n React.ComponentRef<typeof PrimitiveSwitch>,\n SwitchProps\n>(\n (\n {\n label,\n error,\n helpText,\n required = false,\n className,\n size = \"default\",\n disabled,\n id: idProp,\n labelProps,\n ...otherProps\n },\n ref\n ) => {\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const errorId = `error_${id}`;\n const helpTextId = `helpText_${id}`;\n\n const ariaDescribedBy =\n [error ? errorId : null, helpText ? helpTextId : null]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n return (\n <div\n className={cn(\"inline-flex flex-col gap-1.5\", className)}\n data-disabled={disabled || undefined}\n data-invalid={!!error || undefined}\n >\n <div\n className={cn(\n \"inline-flex gap-2\",\n helpText ? \"items-start\" : \"items-center\"\n )}\n >\n <PrimitiveSwitch\n ref={ref}\n id={id}\n size={size}\n disabled={disabled}\n aria-invalid={!!error || undefined}\n aria-describedby={ariaDescribedBy}\n aria-required={required || undefined}\n className={helpText ? \"mt-0.5\" : undefined}\n {...otherProps}\n />\n {(label || helpText) && (\n <div className=\"flex flex-col gap-0.5\">\n {label && (\n <FieldLabel\n htmlFor={id}\n {...labelProps}\n className={cn(\n \"cursor-pointer\",\n disabled && \"cursor-not-allowed opacity-50\",\n labelProps?.className\n )}\n >\n {label}\n {required && (\n <span aria-hidden=\"true\" className=\"text-destructive\">\n *\n </span>\n )}\n </FieldLabel>\n )}\n {helpText && (\n <p id={helpTextId} className=\"text-sm text-muted-foreground\">\n {helpText}\n </p>\n )}\n </div>\n )}\n </div>\n {error && (\n <p id={errorId} role=\"alert\" className=\"text-xs text-destructive\">\n {error}\n </p>\n )}\n </div>\n );\n }\n);\n\nSwitch.displayName = \"Switch\";\n\nexport { Switch };\n"],"names":["forwardRef","useId","jsxs","cn","jsx","PrimitiveSwitch","FieldLabel"],"mappings":";;;;;;;;AA0BA,MAAM,MAAA,GAASA,gBAAA;AAAA,EAIb,CACE;AAAA,IACE,KAAA;AAAA,IACA,KAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA,GAAW,KAAA;AAAA,IACX,SAAA;AAAA,IACA,IAAA,GAAO,SAAA;AAAA,IACP,QAAA;AAAA,IACA,EAAA,EAAI,MAAA;AAAA,IACJ,UAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,cAAcC,WAAA,EAAM;AAC1B,IAAA,MAAM,KAAK,MAAA,IAAU,WAAA;AACrB,IAAA,MAAM,OAAA,GAAU,SAAS,EAAE,CAAA,CAAA;AAC3B,IAAA,MAAM,UAAA,GAAa,YAAY,EAAE,CAAA,CAAA;AAEjC,IAAA,MAAM,eAAA,GACJ,CAAC,KAAA,GAAQ,OAAA,GAAU,MAAM,QAAA,GAAW,UAAA,GAAa,IAAI,CAAA,CAClD,MAAA,CAAO,OAAO,CAAA,CACd,IAAA,CAAK,GAAG,CAAA,IAAK,MAAA;AAElB,IAAA,uBACEC,eAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAWC,QAAA,CAAG,8BAAA,EAAgC,SAAS,CAAA;AAAA,QACvD,iBAAe,QAAA,IAAY,MAAA;AAAA,QAC3B,cAAA,EAAc,CAAC,CAAC,KAAA,IAAS,MAAA;AAAA,QAEzB,QAAA,EAAA;AAAA,0BAAAD,eAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAWC,QAAA;AAAA,gBACT,mBAAA;AAAA,gBACA,WAAW,aAAA,GAAgB;AAAA,eAC7B;AAAA,cAEA,QAAA,EAAA;AAAA,gCAAAC,cAAA;AAAA,kBAACC,wBAAA;AAAA,kBAAA;AAAA,oBACC,GAAA;AAAA,oBACA,EAAA;AAAA,oBACA,IAAA;AAAA,oBACA,QAAA;AAAA,oBACA,cAAA,EAAc,CAAC,CAAC,KAAA,IAAS,MAAA;AAAA,oBACzB,kBAAA,EAAkB,eAAA;AAAA,oBAClB,iBAAe,QAAA,IAAY,MAAA;AAAA,oBAC3B,SAAA,EAAW,WAAW,QAAA,GAAW,MAAA;AAAA,oBAChC,GAAG;AAAA;AAAA,iBACN;AAAA,gBAAA,CACE,KAAA,IAAS,QAAA,qBACTH,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,uBAAA,EACZ,QAAA,EAAA;AAAA,kBAAA,KAAA,oBACCA,eAAA;AAAA,oBAACI,2BAAA;AAAA,oBAAA;AAAA,sBACC,OAAA,EAAS,EAAA;AAAA,sBACR,GAAG,UAAA;AAAA,sBACJ,SAAA,EAAWH,QAAA;AAAA,wBACT,gBAAA;AAAA,wBACA,QAAA,IAAY,+BAAA;AAAA,wBACZ,UAAA,EAAY;AAAA,uBACd;AAAA,sBAEC,QAAA,EAAA;AAAA,wBAAA,KAAA;AAAA,wBACA,4BACCC,cAAA,CAAC,MAAA,EAAA,EAAK,eAAY,MAAA,EAAO,SAAA,EAAU,oBAAmB,QAAA,EAAA,GAAA,EAEtD;AAAA;AAAA;AAAA,mBAEJ;AAAA,kBAED,4BACCA,cAAA,CAAC,GAAA,EAAA,EAAE,IAAI,UAAA,EAAY,SAAA,EAAU,iCAC1B,QAAA,EAAA,QAAA,EACH;AAAA,iBAAA,EAEJ;AAAA;AAAA;AAAA,WAEJ;AAAA,UACC,KAAA,mCACE,GAAA,EAAA,EAAE,EAAA,EAAI,SAAS,IAAA,EAAK,OAAA,EAAQ,SAAA,EAAU,0BAAA,EACpC,QAAA,EAAA,KAAA,EACH;AAAA;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AAEA,MAAA,CAAO,WAAA,GAAc,QAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs-YPRmLtUM.js","sources":["../../src/components/Tabs/constants.ts","../../src/components/Tabs/Tabs.tsx"],"sourcesContent":["import { createContext } from \"react\";\n\ntype TabsSize = \"default\" | \"lg\";\n\nexport const SIZE_CLASSES: Record<TabsSize, string> = {\n default: \"\",\n lg: \"text-[15px] px-3 py-1.5\",\n};\n\nexport const LIST_HEIGHT: Record<TabsSize, string> = {\n default: \"\",\n lg: \"group-data-horizontal/tabs:h-10\",\n};\n\nexport const TabsSizeContext = createContext<TabsSize>(\"default\");\n","import React, { forwardRef, useContext } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { renderIcon, type IconProp } from \"src/lib/renderIcon\";\nimport {\n Tabs as PrimitiveTabs,\n TabsList as PrimitiveTabsList,\n TabsTrigger as PrimitiveTabsTrigger,\n TabsContent as PrimitiveTabsContent,\n} from \"src/primitives/Tabs\";\n\nimport { SIZE_CLASSES, LIST_HEIGHT, TabsSizeContext } from \"./constants\";\n\ntype TabsSize = \"default\" | \"lg\";\n\nexport interface TabsProps extends React.ComponentProps<typeof PrimitiveTabs> {\n /** Size of tab triggers. Applied to all Tabs.Item children. */\n size?: TabsSize;\n}\n\ntype TabsListProps = React.ComponentProps<typeof PrimitiveTabsList>;\n\ninterface TabsItemProps extends React.ComponentProps<\n typeof PrimitiveTabsTrigger\n> {\n /** Icon component, element, or class-name string rendered before the label. */\n icon?: IconProp;\n}\n\ntype TabsContentProps = React.ComponentProps<typeof PrimitiveTabsContent>;\n\nconst TabsRoot = forwardRef<HTMLDivElement, TabsProps>(\n ({ size = \"default\", children, ...props }, ref) => (\n <TabsSizeContext.Provider value={size}>\n <PrimitiveTabs ref={ref} {...props}>\n {children}\n </PrimitiveTabs>\n </TabsSizeContext.Provider>\n )\n);\nTabsRoot.displayName = \"Tabs\";\n\nconst TabsListComponent = forwardRef<HTMLDivElement, TabsListProps>(\n ({ className, ...props }, ref) => {\n const size = useContext(TabsSizeContext);\n\n return (\n <PrimitiveTabsList\n ref={ref}\n className={cn(LIST_HEIGHT[size], className)}\n {...props}\n />\n );\n }\n);\nTabsListComponent.displayName = \"Tabs.List\";\n\nconst TabsItemComponent = forwardRef<HTMLButtonElement, TabsItemProps>(\n ({ icon, className, children, ...otherProps }, ref) => {\n const size = useContext(TabsSizeContext);\n\n return (\n <PrimitiveTabsTrigger\n ref={ref}\n className={cn(SIZE_CLASSES[size], icon && \"gap-1.5\", className)}\n {...otherProps}\n >\n {icon && renderIcon(icon, size === \"lg\" ? \"size-5\" : \"size-4\")}\n {children}\n </PrimitiveTabsTrigger>\n );\n }\n);\nTabsItemComponent.displayName = \"Tabs.Item\";\n\nconst TabsContentComponent = forwardRef<HTMLDivElement, TabsContentProps>(\n (props, ref) => <PrimitiveTabsContent ref={ref} {...props} />\n);\nTabsContentComponent.displayName = \"Tabs.Content\";\n\nconst Tabs = Object.assign(TabsRoot, {\n List: TabsListComponent,\n Item: TabsItemComponent,\n Content: TabsContentComponent,\n});\n\nexport { Tabs };\n"],"names":["createContext","forwardRef","jsx","PrimitiveTabs","useContext","PrimitiveTabsList","cn","jsxs","PrimitiveTabsTrigger","renderIcon","PrimitiveTabsContent"],"mappings":";;;;;;;;AAIO,MAAM,YAAA,GAAyC;AAAA,EACpD,OAAA,EAAS,EAAA;AAAA,EACT,EAAA,EAAI;AACN,CAAA;AAEO,MAAM,WAAA,GAAwC;AAAA,EACnD,OAAA,EAAS,EAAA;AAAA,EACT,EAAA,EAAI;AACN,CAAA;AAEO,MAAM,eAAA,GAAkBA,oBAAwB,SAAS,CAAA;;ACiBhE,MAAM,QAAA,GAAWC,gBAAA;AAAA,EACf,CAAC,EAAE,IAAA,GAAO,SAAA,EAAW,UAAU,GAAG,KAAA,IAAS,GAAA,qBACzCC,cAAA,CAAC,gBAAgB,QAAA,EAAhB,EAAyB,OAAO,IAAA,EAC/B,QAAA,kBAAAA,cAAA,CAACC,wBAAc,GAAA,EAAW,GAAG,KAAA,EAC1B,QAAA,EACH,CAAA,EACF;AAEJ,CAAA;AACA,QAAA,CAAS,WAAA,GAAc,MAAA;AAEvB,MAAM,iBAAA,GAAoBF,gBAAA;AAAA,EACxB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAChC,IAAA,MAAM,IAAA,GAAOG,iBAAW,eAAe,CAAA;AAEvC,IAAA,uBACEF,cAAA;AAAA,MAACG,wBAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAWC,QAAA,CAAG,WAAA,CAAY,IAAI,GAAG,SAAS,CAAA;AAAA,QACzC,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF,CAAA;AACA,iBAAA,CAAkB,WAAA,GAAc,WAAA;AAEhC,MAAM,iBAAA,GAAoBL,gBAAA;AAAA,EACxB,CAAC,EAAE,IAAA,EAAM,SAAA,EAAW,UAAU,GAAG,UAAA,IAAc,GAAA,KAAQ;AACrD,IAAA,MAAM,IAAA,GAAOG,iBAAW,eAAe,CAAA;AAEvC,IAAA,uBACEG,eAAA;AAAA,MAACC,2BAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,WAAWF,QAAA,CAAG,YAAA,CAAa,IAAI,CAAA,EAAG,IAAA,IAAQ,WAAW,SAAS,CAAA;AAAA,QAC7D,GAAG,UAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,IAAA,IAAQG,qBAAA,CAAW,IAAA,EAAM,IAAA,KAAS,IAAA,GAAO,WAAW,QAAQ,CAAA;AAAA,UAC5D;AAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AACF,CAAA;AACA,iBAAA,CAAkB,WAAA,GAAc,WAAA;AAEhC,MAAM,oBAAA,GAAuBR,gBAAA;AAAA,EAC3B,CAAC,KAAA,EAAO,GAAA,oCAASS,2BAAA,EAAA,EAAqB,GAAA,EAAW,GAAG,KAAA,EAAO;AAC7D,CAAA;AACA,oBAAA,CAAqB,WAAA,GAAc,cAAA;AAEnC,MAAM,IAAA,GAAO,MAAA,CAAO,MAAA,CAAO,QAAA,EAAU;AAAA,EACnC,IAAA,EAAM,iBAAA;AAAA,EACN,IAAA,EAAM,iBAAA;AAAA,EACN,OAAA,EAAS;AACX,CAAC;;;;"}
1
+ {"version":3,"file":"Tabs-YPRmLtUM.js","sources":["../../src/components/Tabs/constants.ts","../../src/components/Tabs/Tabs.tsx"],"sourcesContent":["import { createContext } from \"react\";\n\ntype TabsSize = \"default\" | \"lg\";\n\nexport const SIZE_CLASSES: Record<TabsSize, string> = {\n default: \"\",\n lg: \"text-[15px] px-3 py-1.5\",\n};\n\nexport const LIST_HEIGHT: Record<TabsSize, string> = {\n default: \"\",\n lg: \"group-data-horizontal/tabs:h-10\",\n};\n\nexport const TabsSizeContext = createContext<TabsSize>(\"default\");\n","import React, { forwardRef, useContext } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { renderIcon, type IconProp } from \"src/shared/renderIcon\";\nimport {\n Tabs as PrimitiveTabs,\n TabsList as PrimitiveTabsList,\n TabsTrigger as PrimitiveTabsTrigger,\n TabsContent as PrimitiveTabsContent,\n} from \"src/primitives/Tabs\";\n\nimport { SIZE_CLASSES, LIST_HEIGHT, TabsSizeContext } from \"./constants\";\n\ntype TabsSize = \"default\" | \"lg\";\n\nexport interface TabsProps extends React.ComponentProps<typeof PrimitiveTabs> {\n /** Size of tab triggers. Applied to all Tabs.Item children. */\n size?: TabsSize;\n}\n\ntype TabsListProps = React.ComponentProps<typeof PrimitiveTabsList>;\n\ninterface TabsItemProps extends React.ComponentProps<\n typeof PrimitiveTabsTrigger\n> {\n /** Icon component, element, or class-name string rendered before the label. */\n icon?: IconProp;\n}\n\ntype TabsContentProps = React.ComponentProps<typeof PrimitiveTabsContent>;\n\nconst TabsRoot = forwardRef<HTMLDivElement, TabsProps>(\n ({ size = \"default\", children, ...props }, ref) => (\n <TabsSizeContext.Provider value={size}>\n <PrimitiveTabs ref={ref} {...props}>\n {children}\n </PrimitiveTabs>\n </TabsSizeContext.Provider>\n )\n);\nTabsRoot.displayName = \"Tabs\";\n\nconst TabsListComponent = forwardRef<HTMLDivElement, TabsListProps>(\n ({ className, ...props }, ref) => {\n const size = useContext(TabsSizeContext);\n\n return (\n <PrimitiveTabsList\n ref={ref}\n className={cn(LIST_HEIGHT[size], className)}\n {...props}\n />\n );\n }\n);\nTabsListComponent.displayName = \"Tabs.List\";\n\nconst TabsItemComponent = forwardRef<HTMLButtonElement, TabsItemProps>(\n ({ icon, className, children, ...otherProps }, ref) => {\n const size = useContext(TabsSizeContext);\n\n return (\n <PrimitiveTabsTrigger\n ref={ref}\n className={cn(SIZE_CLASSES[size], icon && \"gap-1.5\", className)}\n {...otherProps}\n >\n {icon && renderIcon(icon, size === \"lg\" ? \"size-5\" : \"size-4\")}\n {children}\n </PrimitiveTabsTrigger>\n );\n }\n);\nTabsItemComponent.displayName = \"Tabs.Item\";\n\nconst TabsContentComponent = forwardRef<HTMLDivElement, TabsContentProps>(\n (props, ref) => <PrimitiveTabsContent ref={ref} {...props} />\n);\nTabsContentComponent.displayName = \"Tabs.Content\";\n\nconst Tabs = Object.assign(TabsRoot, {\n List: TabsListComponent,\n Item: TabsItemComponent,\n Content: TabsContentComponent,\n});\n\nexport { Tabs };\n"],"names":["createContext","forwardRef","jsx","PrimitiveTabs","useContext","PrimitiveTabsList","cn","jsxs","PrimitiveTabsTrigger","renderIcon","PrimitiveTabsContent"],"mappings":";;;;;;;;AAIO,MAAM,YAAA,GAAyC;AAAA,EACpD,OAAA,EAAS,EAAA;AAAA,EACT,EAAA,EAAI;AACN,CAAA;AAEO,MAAM,WAAA,GAAwC;AAAA,EACnD,OAAA,EAAS,EAAA;AAAA,EACT,EAAA,EAAI;AACN,CAAA;AAEO,MAAM,eAAA,GAAkBA,oBAAwB,SAAS,CAAA;;ACiBhE,MAAM,QAAA,GAAWC,gBAAA;AAAA,EACf,CAAC,EAAE,IAAA,GAAO,SAAA,EAAW,UAAU,GAAG,KAAA,IAAS,GAAA,qBACzCC,cAAA,CAAC,gBAAgB,QAAA,EAAhB,EAAyB,OAAO,IAAA,EAC/B,QAAA,kBAAAA,cAAA,CAACC,wBAAc,GAAA,EAAW,GAAG,KAAA,EAC1B,QAAA,EACH,CAAA,EACF;AAEJ,CAAA;AACA,QAAA,CAAS,WAAA,GAAc,MAAA;AAEvB,MAAM,iBAAA,GAAoBF,gBAAA;AAAA,EACxB,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAChC,IAAA,MAAM,IAAA,GAAOG,iBAAW,eAAe,CAAA;AAEvC,IAAA,uBACEF,cAAA;AAAA,MAACG,wBAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAWC,QAAA,CAAG,WAAA,CAAY,IAAI,GAAG,SAAS,CAAA;AAAA,QACzC,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF,CAAA;AACA,iBAAA,CAAkB,WAAA,GAAc,WAAA;AAEhC,MAAM,iBAAA,GAAoBL,gBAAA;AAAA,EACxB,CAAC,EAAE,IAAA,EAAM,SAAA,EAAW,UAAU,GAAG,UAAA,IAAc,GAAA,KAAQ;AACrD,IAAA,MAAM,IAAA,GAAOG,iBAAW,eAAe,CAAA;AAEvC,IAAA,uBACEG,eAAA;AAAA,MAACC,2BAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,WAAWF,QAAA,CAAG,YAAA,CAAa,IAAI,CAAA,EAAG,IAAA,IAAQ,WAAW,SAAS,CAAA;AAAA,QAC7D,GAAG,UAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,IAAA,IAAQG,qBAAA,CAAW,IAAA,EAAM,IAAA,KAAS,IAAA,GAAO,WAAW,QAAQ,CAAA;AAAA,UAC5D;AAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AACF,CAAA;AACA,iBAAA,CAAkB,WAAA,GAAc,WAAA;AAEhC,MAAM,oBAAA,GAAuBR,gBAAA;AAAA,EAC3B,CAAC,KAAA,EAAO,GAAA,oCAASS,2BAAA,EAAA,EAAqB,GAAA,EAAW,GAAG,KAAA,EAAO;AAC7D,CAAA;AACA,oBAAA,CAAqB,WAAA,GAAc,cAAA;AAEnC,MAAM,IAAA,GAAO,MAAA,CAAO,MAAA,CAAO,QAAA,EAAU;AAAA,EACnC,IAAA,EAAM,iBAAA;AAAA,EACN,IAAA,EAAM,iBAAA;AAAA,EACN,OAAA,EAAS;AACX,CAAC;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var Checkbox = require('../Checkbox-CxqWOvFN.js');
3
+ var Checkbox = require('../Checkbox-CymHP7QE.js');
4
4
  require('react/jsx-runtime');
5
5
  require('react');
6
6
  require('../utils-BhM0B89p.js');
@@ -18,7 +18,29 @@ require('../index-DcCSSgb7.js');
18
18
  require('../index-DMbj7vXd.js');
19
19
  require('react-dom');
20
20
  require('../primitives/Field.js');
21
+ require('../HelpIcon-CIkKt2uy.js');
22
+ require('../primitives/Tooltip.js');
23
+ require('../tooltip-BYCcUMZn.js');
24
+ require('../index-Bvu9MiFi.js');
25
+ require('../index-lWVw05cs.js');
26
+ require('../index-BwAq9ba8.js');
27
+ require('../index-C9ICrOhM.js');
28
+ require('../floating-ui.react-dom-B4Aw6O7R.js');
29
+ require('../index-Df-Ffa3s.js');
30
+ require('../index-CB9xFokC.js');
31
+ require('../renderIcon-BRrpZu9a.js');
32
+ require('../Popover-DuRSsDHz.js');
21
33
  require('../index-vioSzJOw.js');
34
+ require('../primitives/HoverCard.js');
35
+ require('../Typography-BW6xEk10.js');
36
+ require('../index-DuNgWCXZ.js');
37
+ require('../Button-8VH9p9RB.js');
38
+ require('react-router-dom');
39
+ require('../primitives/Button.js');
40
+ require('../button-CMl9rLXi.js');
41
+ require('../primitives/Spinner.js');
42
+ require('react-i18next');
43
+ require('../loader-circle-Bw7zP2Gn.js');
22
44
  require('../label-DJ7KkKYy.js');
23
45
  require('../separator-DSL-aG1J.js');
24
46
 
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Checkbox.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -30,10 +30,23 @@ require('../index-Df-Ffa3s.js');
30
30
  require('../index-DcCSSgb7.js');
31
31
  require('../index-CyrAgb4H.js');
32
32
  require('../primitives/Field.js');
33
+ require('../HelpIcon-CIkKt2uy.js');
34
+ require('../primitives/Tooltip.js');
35
+ require('../tooltip-BYCcUMZn.js');
36
+ require('../index-CB9xFokC.js');
37
+ require('../renderIcon-BRrpZu9a.js');
38
+ require('../Popover-DuRSsDHz.js');
39
+ require('../primitives/HoverCard.js');
40
+ require('../Typography-BW6xEk10.js');
41
+ require('../Button-8VH9p9RB.js');
42
+ require('react-router-dom');
43
+ require('../primitives/Button.js');
44
+ require('../primitives/Spinner.js');
45
+ require('react-i18next');
46
+ require('../loader-circle-Bw7zP2Gn.js');
33
47
  require('../label-DJ7KkKYy.js');
34
48
  require('../separator-DSL-aG1J.js');
35
49
  require('../TimePickerPanel-DX6cjrSN.js');
36
- require('../primitives/Button.js');
37
50
  require('../primitives/ScrollArea.js');
38
51
  require('../index-BY6wgiQV.js');
39
52
  require('../index-EyWRfsCG.js');
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"DatePicker.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}