@bigbinary/neeto-atoms 1.0.51 → 1.0.53
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/{Alert-bS5M631u.js → Alert-e3-iV-6f.js} +2 -2
- package/dist/{Alert-bS5M631u.js.map → Alert-e3-iV-6f.js.map} +1 -1
- package/dist/{Button-BCWJgHDy.js → Button-DwiKU1ab.js} +24 -3
- package/dist/Button-DwiKU1ab.js.map +1 -0
- package/dist/{Callout-ClNFeMbn.js → Callout-NVYmCwJL.js} +3 -2
- package/dist/{Callout-ClNFeMbn.js.map → Callout-NVYmCwJL.js.map} +1 -1
- package/dist/{DataTable-CHxdhAU2.js → DataTable-DuHFwJj9.js} +47 -9
- package/dist/DataTable-DuHFwJj9.js.map +1 -0
- package/dist/{Empty-DdthjwJz.js → Empty-CfakG-QT.js} +2 -2
- package/dist/{Empty-DdthjwJz.js.map → Empty-CfakG-QT.js.map} +1 -1
- package/dist/{Input-C_aFPEXD.js → Input-Bxs8n6xp.js} +2 -2
- package/dist/Input-Bxs8n6xp.js.map +1 -0
- package/dist/{Kbd-CJOM9x4C.js → Kbd-CAIAs4OO.js} +11 -4
- package/dist/Kbd-CAIAs4OO.js.map +1 -0
- package/dist/{Label-CS8ErCaf.js → Label-Vpj3xsO2.js} +2 -2
- package/dist/{Label-CS8ErCaf.js.map → Label-Vpj3xsO2.js.map} +1 -1
- package/dist/{MultiEmailInput-DhjSEXbS.js → MultiEmailInput-Du1964Ka.js} +2 -2
- package/dist/{MultiEmailInput-DhjSEXbS.js.map → MultiEmailInput-Du1964Ka.js.map} +1 -1
- package/dist/Toastr-tmAtpmwv.js +182 -0
- package/dist/Toastr-tmAtpmwv.js.map +1 -0
- package/dist/cjs/{Alert-_TPuVqa5.js → Alert-Bo3a2nZt.js} +2 -2
- package/dist/cjs/{Alert-_TPuVqa5.js.map → Alert-Bo3a2nZt.js.map} +1 -1
- package/dist/cjs/{Button-BlNtYr1w.js → Button-DiBYVj5m.js} +25 -2
- package/dist/cjs/Button-DiBYVj5m.js.map +1 -0
- package/dist/cjs/{Callout-_XBx1JHL.js → Callout-CYIrflF1.js} +4 -3
- package/dist/cjs/{Callout-_XBx1JHL.js.map → Callout-CYIrflF1.js.map} +1 -1
- package/dist/cjs/{DataTable-CgQRfaIc.js → DataTable-DjQJLAya.js} +47 -9
- package/dist/cjs/DataTable-DjQJLAya.js.map +1 -0
- package/dist/cjs/{Empty-AEIH-jLF.js → Empty-D8g97TNM.js} +2 -2
- package/dist/cjs/{Empty-AEIH-jLF.js.map → Empty-D8g97TNM.js.map} +1 -1
- package/dist/cjs/{Input-BngZja62.js → Input-BQh-GS_w.js} +2 -2
- package/dist/cjs/Input-BQh-GS_w.js.map +1 -0
- package/dist/cjs/{Kbd-D2nELu5m.js → Kbd-BvC3VSNb.js} +11 -4
- package/dist/cjs/Kbd-BvC3VSNb.js.map +1 -0
- package/dist/cjs/{Label-OpNoSl0F.js → Label-DFLFi0tH.js} +2 -2
- package/dist/cjs/{Label-OpNoSl0F.js.map → Label-DFLFi0tH.js.map} +1 -1
- package/dist/cjs/{MultiEmailInput-BZtzoX7D.js → MultiEmailInput-KmN2BSaX.js} +2 -2
- package/dist/cjs/{MultiEmailInput-BZtzoX7D.js.map → MultiEmailInput-KmN2BSaX.js.map} +1 -1
- package/dist/cjs/Toastr-CQ-R8VcZ.js +184 -0
- package/dist/cjs/Toastr-CQ-R8VcZ.js.map +1 -0
- package/dist/cjs/components/Alert.js +2 -2
- package/dist/cjs/components/Button.js +3 -1
- package/dist/cjs/components/Button.js.map +1 -1
- package/dist/cjs/components/Callout.js +3 -2
- package/dist/cjs/components/Callout.js.map +1 -1
- package/dist/cjs/components/DataTable.js +6 -2
- package/dist/cjs/components/DataTable.js.map +1 -1
- package/dist/cjs/components/DropdownMenu.js +34 -72
- package/dist/cjs/components/DropdownMenu.js.map +1 -1
- package/dist/cjs/components/Empty.js +2 -2
- package/dist/cjs/components/Input.js +2 -2
- package/dist/cjs/components/Kbd.js +1 -1
- package/dist/cjs/components/Label.js +2 -2
- package/dist/cjs/components/MultiEmailInput.js +2 -2
- package/dist/cjs/components/Toastr.js +8 -2
- package/dist/cjs/components/Toastr.js.map +1 -1
- package/dist/cjs/components/index.js +19 -16
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/cjs/formik/ActionBlock.js +1 -1
- package/dist/cjs/formik/BlockNavigation.js +1 -1
- package/dist/cjs/formik/Button.js +1 -1
- package/dist/cjs/formik/Input.js +2 -2
- package/dist/cjs/formik/MultiEmailInput.js +2 -2
- package/dist/cjs/formik/index.js +4 -4
- package/dist/cjs/{index-Vlwnyfvs.js → index-CPmGpPzg.js} +39 -1
- package/dist/cjs/index-CPmGpPzg.js.map +1 -0
- package/dist/cjs/index.js +15 -14
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/info-DGfDptn1.js +21 -0
- package/dist/cjs/info-DGfDptn1.js.map +1 -0
- package/dist/cjs/primitives/Kbd.js +39 -10
- package/dist/cjs/primitives/Kbd.js.map +1 -1
- package/dist/cjs/primitives/Sonner.js +7 -41
- package/dist/cjs/primitives/Sonner.js.map +1 -1
- package/dist/cjs/primitives/index.js +3 -2
- package/dist/cjs/primitives/index.js.map +1 -1
- package/dist/cjs/{triangle-alert-ZUMRpmzW.js → triangle-alert-CC-cck8p.js} +1 -17
- package/dist/cjs/triangle-alert-CC-cck8p.js.map +1 -0
- package/dist/cjs/{withIconSize-BKUwVY6t.js → withIconSize-C6LP0R7o.js} +5 -1
- package/dist/cjs/withIconSize-C6LP0R7o.js.map +1 -0
- package/dist/components/Alert.js +2 -2
- package/dist/components/Button/Button.d.ts +10 -2
- package/dist/components/Button/index.d.ts +2 -2
- package/dist/components/Button.js +1 -1
- package/dist/components/Callout.js +3 -2
- package/dist/components/Callout.js.map +1 -1
- package/dist/components/DataTable/components/HeaderDescription.d.ts +6 -0
- package/dist/components/DataTable.js +6 -2
- package/dist/components/DataTable.js.map +1 -1
- package/dist/components/DropdownMenu/DropdownBase.d.ts +1 -1
- package/dist/components/DropdownMenu/constants.d.ts +0 -5
- package/dist/components/DropdownMenu/types.d.ts +32 -16
- package/dist/components/DropdownMenu.js +34 -72
- package/dist/components/DropdownMenu.js.map +1 -1
- package/dist/components/Empty.js +2 -2
- package/dist/components/Input/Input.d.ts +7 -4
- package/dist/components/Input.js +2 -2
- package/dist/components/Kbd/Kbd.d.ts +1 -1
- package/dist/components/Kbd.js +1 -1
- package/dist/components/Label.js +2 -2
- package/dist/components/MultiEmailInput/types.d.ts +7 -4
- package/dist/components/MultiEmailInput.js +2 -2
- package/dist/components/Toastr/Toastr.d.ts +3 -1
- package/dist/components/Toastr/ToastrBody.d.ts +12 -0
- package/dist/components/Toastr/utils.d.ts +1 -3
- package/dist/components/Toastr.js +8 -2
- package/dist/components/Toastr.js.map +1 -1
- package/dist/components/Typography/Typography.d.ts +2 -2
- package/dist/components/index.js +16 -15
- package/dist/components/index.js.map +1 -1
- package/dist/formik/ActionBlock.js +1 -1
- package/dist/formik/BlockNavigation.js +1 -1
- package/dist/formik/Button.js +1 -1
- package/dist/formik/Input.js +2 -2
- package/dist/formik/MultiEmailInput.js +2 -2
- package/dist/formik/index.js +4 -4
- package/dist/{index-D_roZz8G.js → index-CDo_esrR.js} +38 -2
- package/dist/index-CDo_esrR.js.map +1 -0
- package/dist/index.css +3 -0
- package/dist/index.js +15 -14
- package/dist/index.js.map +1 -1
- package/dist/info-BlwkmMZr.js +19 -0
- package/dist/info-BlwkmMZr.js.map +1 -0
- package/dist/primitives/Kbd.d.ts +3 -4
- package/dist/primitives/Kbd.js +20 -10
- package/dist/primitives/Kbd.js.map +1 -1
- package/dist/primitives/Sonner.js +4 -38
- package/dist/primitives/Sonner.js.map +1 -1
- package/dist/primitives/index.js +3 -2
- package/dist/primitives/index.js.map +1 -1
- package/dist/shadcn/components/kbd.d.ts +3 -2
- package/dist/{triangle-alert-PXnNWQy_.js → triangle-alert-C434HydH.js} +2 -17
- package/dist/triangle-alert-C434HydH.js.map +1 -0
- package/dist/utils/withIconSize.d.ts +10 -6
- package/dist/{withIconSize-Czt1EelO.js → withIconSize-BonoFXeH.js} +5 -1
- package/dist/withIconSize-BonoFXeH.js.map +1 -0
- package/package.json +1 -1
- package/dist/Button-BCWJgHDy.js.map +0 -1
- package/dist/DataTable-CHxdhAU2.js.map +0 -1
- package/dist/Input-C_aFPEXD.js.map +0 -1
- package/dist/Kbd-CJOM9x4C.js.map +0 -1
- package/dist/Toastr-BimwuEnS.js +0 -95
- package/dist/Toastr-BimwuEnS.js.map +0 -1
- package/dist/cjs/Button-BlNtYr1w.js.map +0 -1
- package/dist/cjs/DataTable-CgQRfaIc.js.map +0 -1
- package/dist/cjs/Input-BngZja62.js.map +0 -1
- package/dist/cjs/Kbd-D2nELu5m.js.map +0 -1
- package/dist/cjs/Toastr-DYWd66L7.js +0 -97
- package/dist/cjs/Toastr-DYWd66L7.js.map +0 -1
- package/dist/cjs/index-Vlwnyfvs.js.map +0 -1
- package/dist/cjs/triangle-alert-ZUMRpmzW.js.map +0 -1
- package/dist/cjs/withIconSize-BKUwVY6t.js.map +0 -1
- package/dist/index-D_roZz8G.js.map +0 -1
- package/dist/triangle-alert-PXnNWQy_.js.map +0 -1
- package/dist/withIconSize-Czt1EelO.js.map +0 -1
|
@@ -3,7 +3,7 @@ import { forwardRef, useId, useRef } from 'react';
|
|
|
3
3
|
import { useTranslation } from 'react-i18next';
|
|
4
4
|
import { c as cn } from './utils-BJnb9o5c.js';
|
|
5
5
|
import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter } from './primitives/Dialog.js';
|
|
6
|
-
import {
|
|
6
|
+
import { b as Button } from './Button-DwiKU1ab.js';
|
|
7
7
|
|
|
8
8
|
const SIZE_CLASS_MAP = {
|
|
9
9
|
small: "sm:max-w-xs",
|
|
@@ -147,4 +147,4 @@ const Alert = forwardRef(
|
|
|
147
147
|
Alert.displayName = "Alert";
|
|
148
148
|
|
|
149
149
|
export { Alert as A };
|
|
150
|
-
//# sourceMappingURL=Alert-
|
|
150
|
+
//# sourceMappingURL=Alert-e3-iV-6f.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Alert-bS5M631u.js","sources":["../src/components/Alert/constants.ts","../src/components/Alert/Alert.tsx"],"sourcesContent":["import type { AlertSize, AlertStyle } from \"./Alert\";\n\nexport const SIZE_CLASS_MAP: Record<AlertSize, string> = {\n small: \"sm:max-w-xs\",\n medium: \"sm:max-w-sm\",\n large: \"sm:max-w-md\",\n};\n\nexport const STYLE_VARIANT_MAP: Record<AlertStyle, \"destructive\" | \"default\"> =\n {\n danger: \"destructive\",\n warning: \"default\",\n };\n","import {\n forwardRef,\n useId,\n useRef,\n type ReactNode,\n type RefObject,\n} from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from \"src/primitives/Dialog\";\nimport { Button } from \"src/components/Button\";\n\nimport { SIZE_CLASS_MAP, STYLE_VARIANT_MAP } from \"./constants\";\n\nexport type AlertStyle = \"danger\" | \"warning\";\nexport type AlertSize = \"small\" | \"medium\" | \"large\";\ntype InitialFocusElement = \"submit\" | \"cancel\";\n\n/** Radix Dialog.Content props we forward via ...otherProps. */\ntype DialogContentProps = React.ComponentProps<typeof DialogContent>;\n\nexport interface AlertProps extends Omit<\n DialogContentProps,\n | \"children\"\n | \"role\"\n | \"showCloseButton\"\n | \"className\"\n | \"style\"\n | \"onEscapeKeyDown\"\n | \"onInteractOutside\"\n> {\n /** Size of the alert dialog. */\n size?: AlertSize;\n /** Whether the alert is open. */\n isOpen?: boolean;\n /** Whether the submit action is in progress. */\n isSubmitting?: boolean;\n /** Additional CSS class names applied to the dialog content. */\n className?: string;\n /** Close on pressing the Esc key. */\n closeOnEsc?: boolean;\n /** Show the close button. */\n closeButton?: boolean;\n /** Additional CSS class names applied to the backdrop/overlay. */\n backdropClassName?: string;\n /** Close on clicking outside the dialog. */\n closeOnOutsideClick?: boolean;\n /** Callback invoked when the alert is closed. */\n onClose?: () => void;\n /** Callback invoked when the submit button is clicked. */\n onSubmit?: () => void;\n /** Title text of the alert. */\n title?: string;\n /** Message content of the alert. */\n message?: ReactNode;\n /** Label for the submit button. */\n submitButtonLabel?: string;\n /** Label for the cancel button. */\n cancelButtonLabel?: string;\n /** Hide the cancel button. */\n hideCancelButton?: boolean;\n /** Visual style of the submit button. */\n style?: AlertStyle;\n /** Ref of the element to receive focus when the alert opens. */\n initialFocusRef?: RefObject<HTMLElement | null>;\n /** Which built-in button receives focus on open: \"submit\" or \"cancel\". */\n initialFocusElement?: InitialFocusElement;\n /** Radix Dialog `modal` prop — controls modal vs non-modal behaviour. */\n modal?: boolean;\n /** Radix Dialog `defaultOpen` prop. */\n defaultOpen?: boolean;\n}\n\nconst Alert = forwardRef<HTMLDivElement, AlertProps>(\n (\n {\n size = \"medium\",\n isOpen = false,\n isSubmitting = false,\n className,\n closeOnEsc = true,\n closeButton = true,\n backdropClassName,\n closeOnOutsideClick = true,\n onClose = () => {},\n onSubmit = () => {},\n title = \"\",\n message = \"\",\n submitButtonLabel: submitButtonLabelProp,\n cancelButtonLabel: cancelButtonLabelProp,\n hideCancelButton = false,\n style = \"danger\",\n initialFocusRef,\n initialFocusElement,\n modal,\n defaultOpen,\n // Radix content handlers — we intercept and merge\n onOpenAutoFocus: onOpenAutoFocusProp,\n onCloseAutoFocus: onCloseAutoFocusProp,\n ...otherProps\n },\n ref\n ) => {\n const { t } = useTranslation();\n const submitButtonLabel =\n submitButtonLabelProp ?? t(\"neetoatoms.alert.continue\", \"Continue\");\n const cancelButtonLabel =\n cancelButtonLabelProp ?? t(\"neetoatoms.alert.cancel\", \"Cancel\");\n const baseId = useId();\n const titleId = `alert-title-${baseId}`;\n const messageId = `alert-message-${baseId}`;\n const submitButtonRef = useRef<HTMLButtonElement>(null);\n const cancelButtonRef = useRef<HTMLButtonElement>(null);\n\n const handleOpenChange = (open: boolean) => {\n if (!open) onClose();\n };\n\n const handleInteractOutside = (e: Event) => {\n if (!closeOnOutsideClick) e.preventDefault();\n };\n\n const handleEscapeKeyDown = (e: KeyboardEvent) => {\n if (!closeOnEsc) e.preventDefault();\n };\n\n const handleOpenAutoFocus = (e: Event) => {\n // Custom focus ref takes highest priority\n if (initialFocusRef?.current) {\n e.preventDefault();\n initialFocusRef.current.focus();\n } else if (initialFocusElement === \"submit\" && submitButtonRef.current) {\n e.preventDefault();\n submitButtonRef.current.focus();\n } else if (initialFocusElement === \"cancel\" && cancelButtonRef.current) {\n e.preventDefault();\n cancelButtonRef.current.focus();\n }\n onOpenAutoFocusProp?.(e);\n };\n\n const handleCloseAutoFocus = (e: Event) => {\n onCloseAutoFocusProp?.(e);\n };\n\n return (\n <Dialog\n open={isOpen}\n onOpenChange={handleOpenChange}\n modal={modal}\n defaultOpen={defaultOpen}\n >\n <DialogContent\n ref={ref}\n role=\"alertdialog\"\n aria-labelledby={title ? titleId : undefined}\n aria-describedby={message ? messageId : undefined}\n showCloseButton={closeButton}\n overlayClassName={backdropClassName}\n onInteractOutside={handleInteractOutside}\n onEscapeKeyDown={handleEscapeKeyDown}\n onOpenAutoFocus={handleOpenAutoFocus}\n onCloseAutoFocus={handleCloseAutoFocus}\n className={cn(SIZE_CLASS_MAP[size], className)}\n data-testid=\"alert-box\"\n {...otherProps}\n >\n <DialogHeader>\n <DialogTitle\n id={titleId}\n data-testid=\"alert-title\"\n className=\"text-2xl font-semibold\"\n >\n {title}\n </DialogTitle>\n {message && (\n <DialogDescription id={messageId} data-testid=\"alert-message\">\n {message}\n </DialogDescription>\n )}\n </DialogHeader>\n <DialogFooter>\n {!hideCancelButton && (\n <Button\n ref={cancelButtonRef}\n variant=\"outline\"\n label={cancelButtonLabel}\n onClick={onClose}\n data-testid=\"alert-cancel-button\"\n />\n )}\n <Button\n ref={submitButtonRef}\n variant={STYLE_VARIANT_MAP[style]}\n label={submitButtonLabel}\n loading={isSubmitting}\n disabled={isSubmitting || !isOpen}\n onClick={onSubmit}\n data-testid=\"alert-submit-button\"\n />\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n }\n);\n\nAlert.displayName = \"Alert\";\n\nexport { Alert };\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Alert-e3-iV-6f.js","sources":["../src/components/Alert/constants.ts","../src/components/Alert/Alert.tsx"],"sourcesContent":["import type { AlertSize, AlertStyle } from \"./Alert\";\n\nexport const SIZE_CLASS_MAP: Record<AlertSize, string> = {\n small: \"sm:max-w-xs\",\n medium: \"sm:max-w-sm\",\n large: \"sm:max-w-md\",\n};\n\nexport const STYLE_VARIANT_MAP: Record<AlertStyle, \"destructive\" | \"default\"> =\n {\n danger: \"destructive\",\n warning: \"default\",\n };\n","import {\n forwardRef,\n useId,\n useRef,\n type ReactNode,\n type RefObject,\n} from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from \"src/primitives/Dialog\";\nimport { Button } from \"src/components/Button\";\n\nimport { SIZE_CLASS_MAP, STYLE_VARIANT_MAP } from \"./constants\";\n\nexport type AlertStyle = \"danger\" | \"warning\";\nexport type AlertSize = \"small\" | \"medium\" | \"large\";\ntype InitialFocusElement = \"submit\" | \"cancel\";\n\n/** Radix Dialog.Content props we forward via ...otherProps. */\ntype DialogContentProps = React.ComponentProps<typeof DialogContent>;\n\nexport interface AlertProps extends Omit<\n DialogContentProps,\n | \"children\"\n | \"role\"\n | \"showCloseButton\"\n | \"className\"\n | \"style\"\n | \"onEscapeKeyDown\"\n | \"onInteractOutside\"\n> {\n /** Size of the alert dialog. */\n size?: AlertSize;\n /** Whether the alert is open. */\n isOpen?: boolean;\n /** Whether the submit action is in progress. */\n isSubmitting?: boolean;\n /** Additional CSS class names applied to the dialog content. */\n className?: string;\n /** Close on pressing the Esc key. */\n closeOnEsc?: boolean;\n /** Show the close button. */\n closeButton?: boolean;\n /** Additional CSS class names applied to the backdrop/overlay. */\n backdropClassName?: string;\n /** Close on clicking outside the dialog. */\n closeOnOutsideClick?: boolean;\n /** Callback invoked when the alert is closed. */\n onClose?: () => void;\n /** Callback invoked when the submit button is clicked. */\n onSubmit?: () => void;\n /** Title text of the alert. */\n title?: string;\n /** Message content of the alert. */\n message?: ReactNode;\n /** Label for the submit button. */\n submitButtonLabel?: string;\n /** Label for the cancel button. */\n cancelButtonLabel?: string;\n /** Hide the cancel button. */\n hideCancelButton?: boolean;\n /** Visual style of the submit button. */\n style?: AlertStyle;\n /** Ref of the element to receive focus when the alert opens. */\n initialFocusRef?: RefObject<HTMLElement | null>;\n /** Which built-in button receives focus on open: \"submit\" or \"cancel\". */\n initialFocusElement?: InitialFocusElement;\n /** Radix Dialog `modal` prop — controls modal vs non-modal behaviour. */\n modal?: boolean;\n /** Radix Dialog `defaultOpen` prop. */\n defaultOpen?: boolean;\n}\n\nconst Alert = forwardRef<HTMLDivElement, AlertProps>(\n (\n {\n size = \"medium\",\n isOpen = false,\n isSubmitting = false,\n className,\n closeOnEsc = true,\n closeButton = true,\n backdropClassName,\n closeOnOutsideClick = true,\n onClose = () => {},\n onSubmit = () => {},\n title = \"\",\n message = \"\",\n submitButtonLabel: submitButtonLabelProp,\n cancelButtonLabel: cancelButtonLabelProp,\n hideCancelButton = false,\n style = \"danger\",\n initialFocusRef,\n initialFocusElement,\n modal,\n defaultOpen,\n // Radix content handlers — we intercept and merge\n onOpenAutoFocus: onOpenAutoFocusProp,\n onCloseAutoFocus: onCloseAutoFocusProp,\n ...otherProps\n },\n ref\n ) => {\n const { t } = useTranslation();\n const submitButtonLabel =\n submitButtonLabelProp ?? t(\"neetoatoms.alert.continue\", \"Continue\");\n const cancelButtonLabel =\n cancelButtonLabelProp ?? t(\"neetoatoms.alert.cancel\", \"Cancel\");\n const baseId = useId();\n const titleId = `alert-title-${baseId}`;\n const messageId = `alert-message-${baseId}`;\n const submitButtonRef = useRef<HTMLButtonElement>(null);\n const cancelButtonRef = useRef<HTMLButtonElement>(null);\n\n const handleOpenChange = (open: boolean) => {\n if (!open) onClose();\n };\n\n const handleInteractOutside = (e: Event) => {\n if (!closeOnOutsideClick) e.preventDefault();\n };\n\n const handleEscapeKeyDown = (e: KeyboardEvent) => {\n if (!closeOnEsc) e.preventDefault();\n };\n\n const handleOpenAutoFocus = (e: Event) => {\n // Custom focus ref takes highest priority\n if (initialFocusRef?.current) {\n e.preventDefault();\n initialFocusRef.current.focus();\n } else if (initialFocusElement === \"submit\" && submitButtonRef.current) {\n e.preventDefault();\n submitButtonRef.current.focus();\n } else if (initialFocusElement === \"cancel\" && cancelButtonRef.current) {\n e.preventDefault();\n cancelButtonRef.current.focus();\n }\n onOpenAutoFocusProp?.(e);\n };\n\n const handleCloseAutoFocus = (e: Event) => {\n onCloseAutoFocusProp?.(e);\n };\n\n return (\n <Dialog\n open={isOpen}\n onOpenChange={handleOpenChange}\n modal={modal}\n defaultOpen={defaultOpen}\n >\n <DialogContent\n ref={ref}\n role=\"alertdialog\"\n aria-labelledby={title ? titleId : undefined}\n aria-describedby={message ? messageId : undefined}\n showCloseButton={closeButton}\n overlayClassName={backdropClassName}\n onInteractOutside={handleInteractOutside}\n onEscapeKeyDown={handleEscapeKeyDown}\n onOpenAutoFocus={handleOpenAutoFocus}\n onCloseAutoFocus={handleCloseAutoFocus}\n className={cn(SIZE_CLASS_MAP[size], className)}\n data-testid=\"alert-box\"\n {...otherProps}\n >\n <DialogHeader>\n <DialogTitle\n id={titleId}\n data-testid=\"alert-title\"\n className=\"text-2xl font-semibold\"\n >\n {title}\n </DialogTitle>\n {message && (\n <DialogDescription id={messageId} data-testid=\"alert-message\">\n {message}\n </DialogDescription>\n )}\n </DialogHeader>\n <DialogFooter>\n {!hideCancelButton && (\n <Button\n ref={cancelButtonRef}\n variant=\"outline\"\n label={cancelButtonLabel}\n onClick={onClose}\n data-testid=\"alert-cancel-button\"\n />\n )}\n <Button\n ref={submitButtonRef}\n variant={STYLE_VARIANT_MAP[style]}\n label={submitButtonLabel}\n loading={isSubmitting}\n disabled={isSubmitting || !isOpen}\n onClick={onSubmit}\n data-testid=\"alert-submit-button\"\n />\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n }\n);\n\nAlert.displayName = \"Alert\";\n\nexport { Alert };\n"],"names":[],"mappings":"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"}
|
|
@@ -38,6 +38,25 @@ const TOOLTIP_SIDE_MAP = {
|
|
|
38
38
|
"right-end": "right"
|
|
39
39
|
};
|
|
40
40
|
|
|
41
|
+
const BUTTON_VARIANTS = [
|
|
42
|
+
"default",
|
|
43
|
+
"secondary",
|
|
44
|
+
"destructive",
|
|
45
|
+
"destructive-soft",
|
|
46
|
+
"outline",
|
|
47
|
+
"ghost",
|
|
48
|
+
"link"
|
|
49
|
+
];
|
|
50
|
+
const BUTTON_SIZES = [
|
|
51
|
+
"default",
|
|
52
|
+
"xs",
|
|
53
|
+
"sm",
|
|
54
|
+
"lg",
|
|
55
|
+
"icon",
|
|
56
|
+
"icon-xs",
|
|
57
|
+
"icon-sm",
|
|
58
|
+
"icon-lg"
|
|
59
|
+
];
|
|
41
60
|
const Button = forwardRef(
|
|
42
61
|
({
|
|
43
62
|
variant = "default",
|
|
@@ -55,6 +74,7 @@ const Button = forwardRef(
|
|
|
55
74
|
className,
|
|
56
75
|
tooltipProps = null,
|
|
57
76
|
asChild = false,
|
|
77
|
+
trailing,
|
|
58
78
|
children,
|
|
59
79
|
...otherProps
|
|
60
80
|
}, ref) => {
|
|
@@ -89,7 +109,8 @@ const Button = forwardRef(
|
|
|
89
109
|
children: [
|
|
90
110
|
iconPosition === "left" && iconElement && /* @__PURE__ */ jsx("span", { "data-icon": "inline-start", children: iconElement }),
|
|
91
111
|
renderLabel && /* @__PURE__ */ jsx("span", { children: renderLabel }),
|
|
92
|
-
iconPosition === "right" && iconElement && /* @__PURE__ */ jsx("span", { "data-icon": "inline-end", children: iconElement })
|
|
112
|
+
iconPosition === "right" && iconElement && /* @__PURE__ */ jsx("span", { "data-icon": "inline-end", children: iconElement }),
|
|
113
|
+
trailing && /* @__PURE__ */ jsx("span", { "data-icon": "inline-end", children: trailing })
|
|
93
114
|
]
|
|
94
115
|
}
|
|
95
116
|
)
|
|
@@ -189,5 +210,5 @@ const Button = forwardRef(
|
|
|
189
210
|
);
|
|
190
211
|
Button.displayName = "Button";
|
|
191
212
|
|
|
192
|
-
export {
|
|
193
|
-
//# sourceMappingURL=Button-
|
|
213
|
+
export { BUTTON_SIZES as B, BUTTON_VARIANTS as a, Button as b };
|
|
214
|
+
//# sourceMappingURL=Button-DwiKU1ab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button-DwiKU1ab.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 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":["PrimitiveButton"],"mappings":"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"}
|
|
@@ -4,7 +4,8 @@ import { Alert, AlertTitle, AlertDescription } from './primitives/Alert.js';
|
|
|
4
4
|
import { c as cn } from './utils-BJnb9o5c.js';
|
|
5
5
|
import { r as renderIcon } from './renderIcon-C6twJSqH.js';
|
|
6
6
|
import { c as createLucideIcon } from './createLucideIcon-C8ycilSN.js';
|
|
7
|
-
import { T as TriangleAlert
|
|
7
|
+
import { T as TriangleAlert } from './triangle-alert-C434HydH.js';
|
|
8
|
+
import { I as Info } from './info-BlwkmMZr.js';
|
|
8
9
|
|
|
9
10
|
/**
|
|
10
11
|
* @license lucide-react v0.577.0 - ISC
|
|
@@ -76,4 +77,4 @@ const Callout = forwardRef(
|
|
|
76
77
|
Callout.displayName = "Callout";
|
|
77
78
|
|
|
78
79
|
export { Callout as C };
|
|
79
|
-
//# sourceMappingURL=Callout-
|
|
80
|
+
//# sourceMappingURL=Callout-NVYmCwJL.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Callout-
|
|
1
|
+
{"version":3,"file":"Callout-NVYmCwJL.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","InfoIcon","AlertTriangleIcon","AlertCircleIcon","CheckCircleIcon","PrimitiveAlert"],"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,GAAG,gBAAgB,CAAC,cAAc,EAAEA,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,GAAG,gBAAgB,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,GAAU,UAAA;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,uBACE,IAAA;AAAA,MAACC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,EAAA,CAAG,MAAA,CAAO,SAAA,EAAW,SAAS,CAAA;AAAA,QACxC,GAAG,UAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,UAAA,CAAW,cAAc,iBAAiB,CAAA;AAAA,UAC1C,KAAA,oBAAS,GAAA,CAAC,UAAA,EAAA,EAAW,SAAA,EAAU,iBAAiB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,UACtD,QAAA,oBACC,GAAA,CAAC,gBAAA,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]}
|
|
@@ -10,9 +10,11 @@ import { c as createLucideIcon } from './createLucideIcon-C8ycilSN.js';
|
|
|
10
10
|
import { Button } from './primitives/Button.js';
|
|
11
11
|
import { Pagination, PaginationContent, PaginationItem, PaginationPrevious, PaginationEllipsis, PaginationLink, PaginationNext } from './primitives/Pagination.js';
|
|
12
12
|
import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem } from './primitives/DropdownMenu.js';
|
|
13
|
-
import {
|
|
13
|
+
import { b as Button$1 } from './Button-DwiKU1ab.js';
|
|
14
14
|
import { E as Ellipsis } from './ellipsis-lb8Ws6br.js';
|
|
15
15
|
import { C as Check } from './check-Cpkv29p1.js';
|
|
16
|
+
import { P as Popover } from './Popover-C1FNlRtU.js';
|
|
17
|
+
import { I as Info } from './info-BlwkmMZr.js';
|
|
16
18
|
|
|
17
19
|
/**
|
|
18
20
|
* @license lucide-react v0.577.0 - ISC
|
|
@@ -3981,6 +3983,36 @@ const HeaderCellMenu = ({
|
|
|
3981
3983
|
] }) });
|
|
3982
3984
|
};
|
|
3983
3985
|
|
|
3986
|
+
const HeaderDescription = ({
|
|
3987
|
+
column
|
|
3988
|
+
}) => {
|
|
3989
|
+
const meta = column.columnDef.meta;
|
|
3990
|
+
const description = meta?.description;
|
|
3991
|
+
if (!description) return null;
|
|
3992
|
+
return /* @__PURE__ */ jsx(
|
|
3993
|
+
Popover,
|
|
3994
|
+
{
|
|
3995
|
+
position: "bottom",
|
|
3996
|
+
trigger: /* @__PURE__ */ jsx(
|
|
3997
|
+
"span",
|
|
3998
|
+
{
|
|
3999
|
+
className: "ml-1 inline-flex",
|
|
4000
|
+
onClick: (e) => e.stopPropagation(),
|
|
4001
|
+
"data-testid": `column-description-${column.id}`,
|
|
4002
|
+
children: /* @__PURE__ */ jsx(
|
|
4003
|
+
Info,
|
|
4004
|
+
{
|
|
4005
|
+
"aria-hidden": "true",
|
|
4006
|
+
className: "size-4 text-muted-foreground"
|
|
4007
|
+
}
|
|
4008
|
+
)
|
|
4009
|
+
}
|
|
4010
|
+
),
|
|
4011
|
+
children: description
|
|
4012
|
+
}
|
|
4013
|
+
);
|
|
4014
|
+
};
|
|
4015
|
+
|
|
3984
4016
|
const DataTable = ({
|
|
3985
4017
|
columns,
|
|
3986
4018
|
data,
|
|
@@ -4270,11 +4302,17 @@ const DataTable = ({
|
|
|
4270
4302
|
}),
|
|
4271
4303
|
onClick: header.column.getCanSort() ? header.column.getToggleSortingHandler() : void 0,
|
|
4272
4304
|
children: [
|
|
4273
|
-
header.isPlaceholder ? null :
|
|
4274
|
-
|
|
4275
|
-
|
|
4276
|
-
|
|
4277
|
-
|
|
4305
|
+
header.isPlaceholder ? null : isSelectionCol ? flexRender(
|
|
4306
|
+
header.column.columnDef.header,
|
|
4307
|
+
header.getContext()
|
|
4308
|
+
) : /* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
|
|
4309
|
+
/* @__PURE__ */ jsxs("div", { className: "me-auto flex min-w-0 items-center", children: [
|
|
4310
|
+
/* @__PURE__ */ jsx("span", { className: "truncate", children: flexRender(
|
|
4311
|
+
header.column.columnDef.header,
|
|
4312
|
+
header.getContext()
|
|
4313
|
+
) }),
|
|
4314
|
+
/* @__PURE__ */ jsx(HeaderDescription, { column: header.column })
|
|
4315
|
+
] }),
|
|
4278
4316
|
/* @__PURE__ */ jsx(SortIndicator, { column: header.column }),
|
|
4279
4317
|
showHeaderMenu && !isSelectionCol && /* @__PURE__ */ jsx(
|
|
4280
4318
|
HeaderCellMenu,
|
|
@@ -4316,7 +4354,7 @@ const DataTable = ({
|
|
|
4316
4354
|
{
|
|
4317
4355
|
"data-state": row.getIsSelected() ? "selected" : void 0,
|
|
4318
4356
|
className: cn(
|
|
4319
|
-
"group data-[state=selected]:bg-
|
|
4357
|
+
"group hover:bg-muted data-[state=selected]:bg-row-selected",
|
|
4320
4358
|
allowRowClick && onRowClick && "cursor-pointer"
|
|
4321
4359
|
),
|
|
4322
4360
|
onClick: allowRowClick && onRowClick ? (event) => onRowClick(event, row.original, row.index) : void 0,
|
|
@@ -4328,7 +4366,7 @@ const DataTable = ({
|
|
|
4328
4366
|
{
|
|
4329
4367
|
className: cn(
|
|
4330
4368
|
isSelCell && "!pe-2",
|
|
4331
|
-
isPinned && "sticky z-10 bg-background group-hover:bg-muted group-data-[state=selected]:bg-
|
|
4369
|
+
isPinned && "sticky z-10 bg-background transition-colors group-hover:bg-muted group-data-[state=selected]:bg-row-selected",
|
|
4332
4370
|
cell.column.id === lastLeftPinnedId && "after:pointer-events-none after:absolute after:inset-y-0 after:-right-2 after:w-2 after:bg-gradient-to-r after:from-black/6 after:to-transparent after:opacity-0 after:transition-opacity after:duration-200 after:content-[''] group-data-[scrolled-start]/scroll:after:opacity-100 dark:after:from-white/6",
|
|
4333
4371
|
cell.column.id === firstRightPinnedId && "before:pointer-events-none before:absolute before:inset-y-0 before:-left-2 before:w-2 before:bg-gradient-to-l before:from-black/6 before:to-transparent before:opacity-0 before:transition-opacity before:duration-200 before:content-[''] group-data-[scrolled-end]/scroll:before:opacity-100 dark:before:from-white/6"
|
|
4334
4372
|
),
|
|
@@ -4368,4 +4406,4 @@ const DataTable = ({
|
|
|
4368
4406
|
};
|
|
4369
4407
|
|
|
4370
4408
|
export { DataTable as D, useColumnPinning as a, useColumnVisibility as b, useTablePagination as c, useTableSelection as d, useTableSort as e, useColumnOrdering as u };
|
|
4371
|
-
//# sourceMappingURL=DataTable-
|
|
4409
|
+
//# sourceMappingURL=DataTable-DuHFwJj9.js.map
|