@bigbinary/neeto-atoms 1.0.30 → 1.0.32
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.
- package/dist/Button-DSvnInaL.js.map +1 -1
- package/dist/{Calendar-C4fe-WIS.js → Calendar-gPWbQa_c.js} +2 -2
- package/dist/{Calendar-C4fe-WIS.js.map → Calendar-gPWbQa_c.js.map} +1 -1
- package/dist/{DatePicker-C5DROLCX.js → DatePicker-B7SYjsog.js} +2 -2
- package/dist/{DatePicker-C5DROLCX.js.map → DatePicker-B7SYjsog.js.map} +1 -1
- package/dist/{Label-CryFO2yq.js → Label-DAFESZOG.js} +2 -2
- package/dist/{Label-CryFO2yq.js.map → Label-DAFESZOG.js.map} +1 -1
- package/dist/{Popover-dib6elwS.js → Popover-Dmq-xK_a.js} +4 -3
- package/dist/Popover-Dmq-xK_a.js.map +1 -0
- package/dist/{button-Dn5ffsMK.js → button-D6uWDFCs.js} +3 -2
- package/dist/button-D6uWDFCs.js.map +1 -0
- package/dist/cjs/Button-BniJ4TT_.js.map +1 -1
- package/dist/cjs/{Calendar-RRA-wKOF.js → Calendar-jVF8fRaS.js} +2 -2
- package/dist/cjs/{Calendar-RRA-wKOF.js.map → Calendar-jVF8fRaS.js.map} +1 -1
- package/dist/cjs/{DatePicker-aFQ4yEf1.js → DatePicker-C0BwxIh8.js} +2 -2
- package/dist/cjs/{DatePicker-aFQ4yEf1.js.map → DatePicker-C0BwxIh8.js.map} +1 -1
- package/dist/cjs/{Label-BHFmdHwe.js → Label-B7FbeB5i.js} +2 -2
- package/dist/cjs/{Label-BHFmdHwe.js.map → Label-B7FbeB5i.js.map} +1 -1
- package/dist/cjs/{Popover-B1d4URJl.js → Popover-DRT0YYzK.js} +4 -3
- package/dist/cjs/Popover-DRT0YYzK.js.map +1 -0
- package/dist/cjs/{button-CKlGvVqQ.js → button--P7-oIJb.js} +3 -2
- package/dist/cjs/button--P7-oIJb.js.map +1 -0
- package/dist/cjs/components/Alert.js +2 -2
- package/dist/cjs/components/Button.js +1 -1
- package/dist/cjs/components/ColorPicker.js +1 -1
- package/dist/cjs/components/DataTable.js +1 -1
- package/dist/cjs/components/DatePicker.js +3 -3
- package/dist/cjs/components/Dialog.js +2 -2
- package/dist/cjs/components/DropdownMenu.js +1 -1
- package/dist/cjs/components/Empty.js +1 -1
- package/dist/cjs/components/Input.js +2 -2
- package/dist/cjs/components/Label.js +5 -4
- package/dist/cjs/components/Label.js.map +1 -1
- package/dist/cjs/components/Pagination.js +1 -1
- package/dist/cjs/components/Popover.js +4 -2
- package/dist/cjs/components/Popover.js.map +1 -1
- package/dist/cjs/components/Select.js +2 -2
- package/dist/cjs/components/Sheet.js +2 -2
- package/dist/cjs/components/TimePicker.js +1 -1
- package/dist/cjs/components/index.js +8 -8
- package/dist/cjs/{dialog-3nRssoAl.js → dialog-CWSpiRjk.js} +2 -2
- package/dist/cjs/{dialog-3nRssoAl.js.map → dialog-CWSpiRjk.js.map} +1 -1
- package/dist/cjs/formik/ActionBlock.js +1 -1
- package/dist/cjs/formik/BlockNavigation.js +2 -2
- package/dist/cjs/formik/Button.js +1 -1
- package/dist/cjs/formik/Input.js +2 -2
- package/dist/cjs/formik/Select.js +2 -2
- package/dist/cjs/formik/index.js +3 -3
- package/dist/cjs/index.js +8 -8
- package/dist/cjs/{input-group-DRgJde06.js → input-group-CFZl_aQS.js} +2 -2
- package/dist/cjs/{input-group-DRgJde06.js.map → input-group-CFZl_aQS.js.map} +1 -1
- package/dist/cjs/primitives/AlertDialog.js +1 -1
- package/dist/cjs/primitives/Button.js +1 -1
- package/dist/cjs/primitives/Calendar.js +2 -2
- package/dist/cjs/primitives/Carousel.js +1 -1
- package/dist/cjs/primitives/Combobox.js +2 -2
- package/dist/cjs/primitives/Command.js +3 -3
- package/dist/cjs/primitives/Dialog.js +2 -2
- package/dist/cjs/primitives/InputGroup.js +2 -2
- package/dist/cjs/primitives/Pagination.js +1 -1
- package/dist/cjs/primitives/Sheet.js +2 -2
- package/dist/cjs/primitives/Sidebar.js +2 -2
- package/dist/cjs/primitives/index.js +5 -5
- package/dist/cjs/{sheet-BG5iB_da.js → sheet-BZt84aab.js} +2 -2
- package/dist/cjs/{sheet-BG5iB_da.js.map → sheet-BZt84aab.js.map} +1 -1
- package/dist/components/Alert.js +2 -2
- package/dist/components/Button/Button.d.ts +1 -1
- package/dist/components/Button.js +1 -1
- package/dist/components/ColorPicker.js +1 -1
- package/dist/components/DataTable.js +1 -1
- package/dist/components/DatePicker.js +3 -3
- package/dist/components/Dialog.js +2 -2
- package/dist/components/DropdownMenu.js +1 -1
- package/dist/components/Empty.js +1 -1
- package/dist/components/Input.js +2 -2
- package/dist/components/Label.js +5 -4
- package/dist/components/Label.js.map +1 -1
- package/dist/components/Pagination.js +1 -1
- package/dist/components/Popover.js +4 -2
- package/dist/components/Popover.js.map +1 -1
- package/dist/components/Select.js +2 -2
- package/dist/components/Sheet.js +2 -2
- package/dist/components/TimePicker.js +1 -1
- package/dist/components/index.js +8 -8
- package/dist/{dialog-C6LY-ud7.js → dialog-DK71SlsS.js} +2 -2
- package/dist/{dialog-C6LY-ud7.js.map → dialog-DK71SlsS.js.map} +1 -1
- package/dist/formik/ActionBlock.js +1 -1
- package/dist/formik/BlockNavigation.js +2 -2
- package/dist/formik/Button.js +1 -1
- package/dist/formik/Input.js +2 -2
- package/dist/formik/Select.js +2 -2
- package/dist/formik/index.js +3 -3
- package/dist/index.js +8 -8
- package/dist/{input-group-DxqtSMEV.js → input-group-C_qKMibX.js} +2 -2
- package/dist/{input-group-DxqtSMEV.js.map → input-group-C_qKMibX.js.map} +1 -1
- package/dist/primitives/AlertDialog.js +1 -1
- package/dist/primitives/Button.d.ts +1 -1
- package/dist/primitives/Button.js +2 -2
- package/dist/primitives/Calendar.js +2 -2
- package/dist/primitives/Carousel.js +1 -1
- package/dist/primitives/Combobox.js +2 -2
- package/dist/primitives/Command.js +3 -3
- package/dist/primitives/Dialog.js +2 -2
- package/dist/primitives/InputGroup.js +2 -2
- package/dist/primitives/Pagination.js +1 -1
- package/dist/primitives/Sheet.js +2 -2
- package/dist/primitives/Sidebar.js +2 -2
- package/dist/primitives/index.js +5 -5
- package/dist/shadcn/components/button.d.ts +2 -2
- package/dist/{sheet-BbO8NwBJ.js → sheet-DVTG6X82.js} +2 -2
- package/dist/{sheet-BbO8NwBJ.js.map → sheet-DVTG6X82.js.map} +1 -1
- package/package.json +1 -1
- package/dist/Popover-dib6elwS.js.map +0 -1
- package/dist/button-Dn5ffsMK.js.map +0 -1
- package/dist/cjs/Popover-B1d4URJl.js.map +0 -1
- package/dist/cjs/button-CKlGvVqQ.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button-DSvnInaL.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\ntype ButtonVariant =\n | \"default\"\n | \"secondary\"\n | \"destructive\"\n | \"outline\"\n | \"ghost\"\n | \"link\";\n\ntype ButtonSize =\n | \"default\"\n | \"xs\"\n | \"sm\"\n | \"lg\"\n | \"icon\"\n | \"icon-xs\"\n | \"icon-sm\"\n | \"icon-lg\";\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 {\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 /** 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 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 </span>\n </>\n );\n\n // --- Merged className ---\n const mergedClassName = cn(\n fullWidth && \"w-full\",\n loading && \"relative pointer-events-none\",\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":["_jsxs","_Fragment","_jsx","PrimitiveButton"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Button-DSvnInaL.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\ntype ButtonVariant =\n | \"default\"\n | \"secondary\"\n | \"destructive\"\n | \"destructive-soft\"\n | \"outline\"\n | \"ghost\"\n | \"link\";\n\ntype ButtonSize =\n | \"default\"\n | \"xs\"\n | \"sm\"\n | \"lg\"\n | \"icon\"\n | \"icon-xs\"\n | \"icon-sm\"\n | \"icon-lg\";\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 {\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 /** 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 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 </span>\n </>\n );\n\n // --- Merged className ---\n const mergedClassName = cn(\n fullWidth && \"w-full\",\n loading && \"relative pointer-events-none\",\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":["_jsxs","_Fragment","_jsx","PrimitiveButton"],"mappings":";;;;;;;;;AAUO,MAAM,kBAAkB,GAA4C;AACzE,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,OAAO,EAAE,MAAM;AACf,IAAA,EAAE,EAAE,SAAS;CACd;AAEM,MAAM,gBAAgB,GAA+B;AAC1D,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,EAAE,EAAE,UAAU;AACd,IAAA,OAAO,EAAE,UAAU;AACnB,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,SAAS,EAAE,QAAQ;AACnB,IAAA,SAAS,EAAE,UAAU;AACrB,IAAA,SAAS,EAAE,QAAQ;CACpB;AAED;AACO,MAAM,gBAAgB,GAGzB;AACF,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,WAAW,EAAE,KAAK;AAClB,IAAA,SAAS,EAAE,KAAK;AAChB,IAAA,cAAc,EAAE,QAAQ;AACxB,IAAA,YAAY,EAAE,QAAQ;AACtB,IAAA,YAAY,EAAE,MAAM;AACpB,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,aAAa,EAAE,OAAO;AACtB,IAAA,WAAW,EAAE,OAAO;CACrB;;ACuCD,MAAM,MAAM,GAAG,UAAU,CACvB,CACE,EACE,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,SAAS,EAChB,KAAK,EACL,IAAI,GAAG,IAAI,EACX,YAAY,GAAG,OAAO,EACtB,OAAO,GAAG,KAAK,EACf,QAAQ,GAAG,KAAK,EAChB,OAAO,EACP,EAAE,EACF,IAAI,EACJ,IAAI,GAAG,QAAQ,EACf,SAAS,GAAG,KAAK,EACjB,SAAS,EACT,YAAY,GAAG,IAAI,EACnB,OAAO,GAAG,KAAK,EACf,QAAQ,EACR,GAAG,UAAU,EACd,EACD,GAAG,KACD;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;AAC1C,IAAA,MAAM,WAAW,GAAG,UAAU,GAAG,IAAI,GAAG,KAAK,IAAI,QAAQ;IACzD,MAAM,UAAU,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI;AACzC,IAAA,MAAM,YAAY,GAAG,UAAU,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI;;AAG3E,IAAA,MAAM,UAAU,GAAG,QAAQ,IAAI,OAAO;;AAGtC,IAAA,MAAM,WAAW,GAAG,CAClB,CAAoD,KAClD;AACF,QAAA,IAAI,OAAO,IAAI,QAAQ,EAAE;YACvB,CAAC,CAAC,cAAc,EAAE;YAClB;QACF;AACA,QAAA,OAAO,GAAG,CAAC,CAAC;AACd,IAAA,CAAC;;AAGD,IAAA,MAAM,WAAW,GAAG,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI;;AAGlD,IAAA,MAAM,aAAa,IACjBA,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACG,OAAO,KACNC,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,mDAAmD,EAAA,QAAA,EACjEA,GAAA,CAAC,OAAO,mBACM,MAAM,EAClB,SAAS,EAAE,gBAAgB,CAAC,YAAY,CAAC,EAAA,CACzC,GACG,CACR,EACDF,IAAA,CAAA,MAAA,EAAA,EACE,SAAS,EAAE,EAAE,CACX,kCAAkC,EAClC,OAAO,IAAI,WAAW,CACvB,EAAA,QAAA,EAAA,CAEA,YAAY,KAAK,MAAM,IAAI,WAAW,KACrCE,GAAA,CAAA,MAAA,EAAA,EAAA,WAAA,EAAgB,cAAc,EAAA,QAAA,EAAE,WAAW,EAAA,CAAQ,CACpD,EACA,WAAW,IAAIA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,WAAW,EAAA,CAAQ,EACzC,YAAY,KAAK,OAAO,IAAI,WAAW,KACtCA,GAAA,CAAA,MAAA,EAAA,EAAA,WAAA,EAAgB,YAAY,EAAA,QAAA,EAAE,WAAW,EAAA,CAAQ,CAClD,CAAA,EAAA,CACI,CAAA,EAAA,CACN,CACJ;;AAGD,IAAA,MAAM,eAAe,GAAG,EAAE,CACxB,SAAS,IAAI,QAAQ,EACrB,OAAO,IAAI,8BAA8B,EACzC,SAAS,CACV;;AAGD,IAAA,IAAI,aAAwB;IAE5B,IAAI,OAAO,EAAE;AACX,QAAA,aAAa,IACXA,GAAA,CAACC,QAAe,IACd,GAAG,EAAE,GAAG,EACR,OAAO,EAAA,IAAA,EACP,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,eAAe,EAC1B,QAAQ,EAAE,UAAU,EAAA,GAChB,UAAU,EAAA,QAAA,EAEb,QAAQ,EAAA,CACO,CACnB;IACH;AAAO,SAAA,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE;QAC1B,aAAa,IACXD,GAAA,CAACC,QAAe,IACd,OAAO,EAAA,IAAA,EACP,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,eAAe,EAC1B,QAAQ,EAAE,UAAU,KAChB,UAAU,EAAA,QAAA,EAEdD,IAAC,IAAI,EAAA,EACH,QAAQ,EAAE,GAAmC,EAC7C,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,WAAW,EAAA,QAAA,EAEnB,aAAa,EAAA,CACT,EAAA,CACS,CACnB;IACH;AAAO,SAAA,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;AAC5B,QAAA,aAAa,IACXA,GAAA,CAACC,QAAe,EAAA,EACd,OAAO,QACP,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,eAAe,EAC1B,QAAQ,EAAE,UAAU,EAAA,GAChB,UAAU,EAAA,QAAA,EAEdD,GAAA,CAAA,GAAA,EAAA,EACE,GAAG,EAAE,GAAmC,EACxC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,WAAW,EAAA,QAAA,EAEnB,aAAa,EAAA,CACZ,EAAA,CACY,CACnB;IACH;SAAO;AACL,QAAA,aAAa,IACXA,GAAA,CAACC,QAAe,EAAA,EACd,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,eAAe,EAC1B,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,WAAW,EAAA,GAChB,UAAU,YAEb,aAAa,EAAA,CACE,CACnB;IACH;;IAGA,IAAI,YAAY,EAAE;QAChB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,YAAY;AAErE,QAAA,IAAI,eAAe,IAAI,CAAC,OAAO,EAAE;YAC/B,OAAOD,GAAA,CAAAD,QAAA,EAAA,EAAA,QAAA,EAAG,aAAa,EAAA,CAAI;QAC7B;AAEA,QAAA,MAAM,IAAI,GAAG,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,GAAG,SAAS;;QAG9D,MAAM,cAAc,GAAG,UAAU,IAC/BC,cAAM,SAAS,EAAC,aAAa,EAAA,QAAA,EAAE,aAAa,GAAQ,KAEpD,aAAa,CACd;QAED,QACEA,GAAA,CAAC,eAAe,EAAA,EAAA,QAAA,EACdF,IAAA,CAAC,OAAO,EAAA,EAAA,QAAA,EAAA,CACNE,GAAA,CAAC,cAAc,EAAA,EAAC,OAAO,EAAA,IAAA,EAAA,QAAA,EAAE,cAAc,EAAA,CAAkB,EACzDA,GAAA,CAAC,cAAc,EAAA,EAAC,IAAI,EAAE,IAAI,EAAA,QAAA,EAAG,OAAO,EAAA,CAAkB,CAAA,EAAA,CAC9C,EAAA,CACM;IAEtB;IAEA,OAAOA,GAAA,CAAAD,QAAA,EAAA,EAAA,QAAA,EAAG,aAAa,EAAA,CAAI;AAC7B,CAAC;AAGH,MAAM,CAAC,WAAW,GAAG,QAAQ;;;;"}
|
|
@@ -2,7 +2,7 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import React__default, { createContext, useContext, useCallback, useRef, useLayoutEffect, useState, useEffect, useMemo } from 'react';
|
|
4
4
|
import { c as cn } from './utils-DdHUxIdC.js';
|
|
5
|
-
import { b as buttonVariants, B as Button$1 } from './button-
|
|
5
|
+
import { b as buttonVariants, B as Button$1 } from './button-D6uWDFCs.js';
|
|
6
6
|
import { C as ChevronLeft } from './chevron-left-BDoT8E2-.js';
|
|
7
7
|
import { C as ChevronRight } from './chevron-right-DQnrO-ek.js';
|
|
8
8
|
import { C as ChevronDown } from './chevron-down-BNi0ntys.js';
|
|
@@ -8022,4 +8022,4 @@ const Calendar = (props) => (jsx(Calendar$1, { ...props }));
|
|
|
8022
8022
|
const CalendarDayButton = (props) => jsx(CalendarDayButton$1, { ...props });
|
|
8023
8023
|
|
|
8024
8024
|
export { Calendar as C, CalendarDayButton as a, millisecondsInMinute as b, constructFrom as c, millisecondsInSecond as d, getWeekYear as e, startOfISOWeek as f, getDefaultOptions as g, getWeek as h, getISOWeek as i, addDays as j, getTimezoneOffsetInMilliseconds as k, enUS$1 as l, millisecondsInHour as m, longFormatters as n, isProtectedWeekYearToken as o, isProtectedDayOfYearToken as p, format as q, startOfWeek as s, toDate as t, warnOrThrowProtectedError as w };
|
|
8025
|
-
//# sourceMappingURL=Calendar-
|
|
8025
|
+
//# sourceMappingURL=Calendar-gPWbQa_c.js.map
|