ics-ui-kit 0.1.2 → 0.1.3
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/README.md +36 -36
- package/dist/AlertContext-CxjW1LVL.js.map +1 -1
- package/dist/AlertIcon-5B6AgZpe.js.map +1 -1
- package/dist/Button-Dg89xRSi.js.map +1 -1
- package/dist/ButtonBase-e6qyv6mD.js.map +1 -1
- package/dist/CheckboxField-cX09-eBX.js.map +1 -1
- package/dist/Command-BhbfL5wm.js.map +1 -1
- package/dist/ComponentVariantProvider-B0SFUaXB.js.map +1 -1
- package/dist/Description-BTPMlTT-.js.map +1 -1
- package/dist/Dialog-ByiJIDhl.js.map +1 -1
- package/dist/Divider-DPW5ZhZ8.js.map +1 -1
- package/dist/EmptyState-DRKjscH-.js.map +1 -1
- package/dist/ErrorState-B26k67-z.js.map +1 -1
- package/dist/FeatureIcon-BGE0Orkc.js.map +1 -1
- package/dist/{Field-CKl59qUB.js → Field-BiIWtq9o.js} +13 -13
- package/dist/Field-BiIWtq9o.js.map +1 -0
- package/dist/FieldLabel-QJ4rJFOi.js.map +1 -1
- package/dist/FolderSvg-cw0DxNVy.js.map +1 -1
- package/dist/FormFooterTemplate-DPB6Dkxn.js.map +1 -1
- package/dist/FormHeader--F6b2aRk.js.map +1 -1
- package/dist/{FormStack-B4QOuYgO.js → FormStack-DO15vBgd.js} +2 -2
- package/dist/FormStack-DO15vBgd.js.map +1 -0
- package/dist/HintState-BxrCAWqq.js.map +1 -1
- package/dist/Icon-DH3ev9GK.js.map +1 -1
- package/dist/IconButton-DwkpNgn3.js.map +1 -1
- package/dist/IconTooltip-CKJKGHbk.js.map +1 -1
- package/dist/Indicator-AqxHWPA9.js.map +1 -1
- package/dist/InputGroup-BvD9Igmt.js.map +1 -1
- package/dist/InputOTP-B2e1nfSO.js.map +1 -1
- package/dist/Loader-BpHiL6W-.js.map +1 -1
- package/dist/MenuItem-pvsONHlh.js.map +1 -1
- package/dist/MenuItemShortcut-DgPol9Nz.js.map +1 -1
- package/dist/MenuItemText-7uPl9P3z.js.map +1 -1
- package/dist/Overlay-2XMlxApi.js.map +1 -1
- package/dist/Popover-Dvr7y0YY.js.map +1 -1
- package/dist/RichButton-DuPTenmS.js.map +1 -1
- package/dist/ScrollArea-CuuTeDn3.js.map +1 -1
- package/dist/ScrollShadowContainer-DdrnF8qU.js.map +1 -1
- package/dist/SearchSelectTag-DFCX9zT1.js.map +1 -1
- package/dist/Select-DRwv6-eZ.js.map +1 -1
- package/dist/Sheet-rtwmzm2-.js.map +1 -1
- package/dist/Shortcut-D8L15_ed.js.map +1 -1
- package/dist/Skeleton-y6I-i9q5.js.map +1 -1
- package/dist/Tag-DdHXTyKF.js.map +1 -1
- package/dist/Text-DeBE8AKl.js.map +1 -1
- package/dist/TextInput-Cj50ImXi.js.map +1 -1
- package/dist/TextOverflowTooltip-DlUgic5y.js.map +1 -1
- package/dist/Toggle-v_HT3Gm2.js.map +1 -1
- package/dist/Tooltip-C4rVuWr4.js.map +1 -1
- package/dist/TriggerButton-CfDObWP9.js.map +1 -1
- package/dist/blocks/auth/otp-form.js +1 -1
- package/dist/blocks/auth/otp-form.js.map +1 -1
- package/dist/cn-dsXlqdJg.js.map +1 -1
- package/dist/components/alert-dialog.js.map +1 -1
- package/dist/components/alert.js.map +1 -1
- package/dist/components/avatar.js.map +1 -1
- package/dist/components/badge.js.map +1 -1
- package/dist/components/banner.js.map +1 -1
- package/dist/components/breadcrumb.js.map +1 -1
- package/dist/components/button.js.map +1 -1
- package/dist/components/calendar.js.map +1 -1
- package/dist/components/card.js.map +1 -1
- package/dist/components/carousel.js.map +1 -1
- package/dist/components/collapsible.js.map +1 -1
- package/dist/components/color-tile.js.map +1 -1
- package/dist/components/container.js.map +1 -1
- package/dist/components/counter.js.map +1 -1
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/divider.js.map +1 -1
- package/dist/components/drawer.js.map +1 -1
- package/dist/components/dropdown.js.map +1 -1
- package/dist/components/error-state.js.map +1 -1
- package/dist/components/field.js +1 -1
- package/dist/components/file-upload.js.map +1 -1
- package/dist/components/form.js +2 -2
- package/dist/components/form.js.map +1 -1
- package/dist/components/image-placeholder.js.map +1 -1
- package/dist/components/image-preview.js.map +1 -1
- package/dist/components/image-uploader.js.map +1 -1
- package/dist/components/input.js.map +1 -1
- package/dist/components/menu-item.js.map +1 -1
- package/dist/components/page-state.js.map +1 -1
- package/dist/components/portal-container.js.map +1 -1
- package/dist/components/progress-circle.js.map +1 -1
- package/dist/components/progress.js.map +1 -1
- package/dist/components/prose.js.map +1 -1
- package/dist/components/radio-group.js.map +1 -1
- package/dist/components/resizable.js.map +1 -1
- package/dist/components/scheduler.js.map +1 -1
- package/dist/components/search-select.js.map +1 -1
- package/dist/components/sidebar.js.map +1 -1
- package/dist/components/slider.js.map +1 -1
- package/dist/components/stepper.js.map +1 -1
- package/dist/components/switch.js.map +1 -1
- package/dist/components/system-state.js.map +1 -1
- package/dist/components/table.js.map +1 -1
- package/dist/components/tabs.js.map +1 -1
- package/dist/components/tag-input.js.map +1 -1
- package/dist/components/textarea.js.map +1 -1
- package/dist/components/timer.js.map +1 -1
- package/dist/components/toast.js.map +1 -1
- package/dist/components/toggle-group.js.map +1 -1
- package/dist/components/toolbar.js.map +1 -1
- package/dist/index-0ioNhtNM.js.map +1 -1
- package/dist/index-437EL2iq.js.map +1 -1
- package/dist/index-BGQepRFJ.js.map +1 -1
- package/dist/index-BVqs-uqP.js.map +1 -1
- package/dist/index-BZPx6jYI.js.map +1 -1
- package/dist/index-Bb23HztA.js.map +1 -1
- package/dist/index-BpWB3aFK.js.map +1 -1
- package/dist/index-ByaXH_ih.js.map +1 -1
- package/dist/index-BzCriPiK.js.map +1 -1
- package/dist/index-CCKe-Mpx.js.map +1 -1
- package/dist/index-CFaU3UXv.js.map +1 -1
- package/dist/index-CLuiUUQ8.js.map +1 -1
- package/dist/index-CQD-Njgt.js.map +1 -1
- package/dist/index-CmBeyp2d.js.map +1 -1
- package/dist/index-DFZozV_h.js.map +1 -1
- package/dist/index-DHsfW5Rj.js.map +1 -1
- package/dist/index-DHyZ_0Ut.js.map +1 -1
- package/dist/index-DLcqcWxM.js.map +1 -1
- package/dist/index-DRo26PBK.js.map +1 -1
- package/dist/index-DnnQs07z.js.map +1 -1
- package/dist/index-Uiy0Xwy2.js.map +1 -1
- package/dist/index-_ITz1IyW.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/inputBaseStyles-DbzD_jvq.js.map +1 -1
- package/dist/lib/utils.js.map +1 -1
- package/dist/styles-scoped.css +6293 -6265
- package/dist/styles.css +6032 -6004
- package/dist/theme.css +356 -329
- package/dist/types/css.d.ts +4 -4
- package/dist/useBreakpoints-D8wKOvil.js.map +1 -1
- package/dist/useDebounce-BRah78CF.js.map +1 -1
- package/dist/useFileUpload-iDag0iqM.js.map +1 -1
- package/dist/useItemsKeyboardNavigation-CmeOR30y.js.map +1 -1
- package/dist/useMergeRefs-qoKniYqT.js.map +1 -1
- package/dist/usePortalContainer-ae6EzS08.js.map +1 -1
- package/dist/vendors/tanstack/react-table.js.map +1 -1
- package/dist/zod-BMNoK3aM.js.map +1 -1
- package/package.json +1 -1
- package/tailwind.preset.js +444 -444
- package/dist/Field-CKl59qUB.js.map +0 -1
- package/dist/FormStack-B4QOuYgO.js.map +0 -1
- package/dist/design-tokens.source.json +0 -1
package/dist/Tag-DdHXTyKF.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tag-DdHXTyKF.js","sources":["../src/components/tag/Tag.tsx"],"sourcesContent":["import React, { PropsWithChildren } from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { Slot } from \"@radix-ui/react-slot\";\r\nimport { LucideIcon, X } from \"lucide-react\";\r\nimport { Icon } from \"../icon\";\r\nimport { ButtonProps } from \"../button/button/Button\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\n\r\nexport interface TagBaseVariants {\r\n\tstatus?: \"default\" | \"info\" | \"success\" | \"warning\" | \"error\";\r\n\tfocus?: \"low\" | \"high\";\r\n\tsize?: \"sm\" | \"md\" | \"lg\";\r\n}\r\n\r\nconst tagBaseStyles = tv({\r\n\tbase: \"inline-flex items-center justify-center overflow-hidden font-medium transition-colors\",\r\n\tvariants: {\r\n\t\tstatus: {\r\n\t\t\tdefault: \"border-primary-border bg-status-neutral-bg text-primary-fg hover:bg-status-neutral-bg-hover\",\r\n\t\t\tinfo: \"border-status-info-primary-border bg-status-info-bg text-status-info-fg hover:bg-status-info-bg-hover\",\r\n\t\t\tsuccess:\r\n\t\t\t\t\"border-status-success-primary-border bg-status-success-bg text-status-success-fg hover:bg-status-success-bg-hover\",\r\n\t\t\twarning:\r\n\t\t\t\t\"border-status-warning-primary-border bg-status-warning-bg text-status-warning-fg hover:bg-status-warning-bg-hover\",\r\n\t\t\terror: \"border-status-error-primary-border bg-status-error-bg text-status-error-fg hover:bg-status-error-bg-hover\"\r\n\t\t},\r\n\t\tfocus: {\r\n\t\t\tlow: \"\",\r\n\t\t\thigh: \"\"\r\n\t\t},\r\n\t\tsize: {\r\n\t\t\tsm: \"h-5 px-1.5 py-1 text-xs leading-none\",\r\n\t\t\tmd: \"h-6 px-1.5 py-1 text-sm leading-none\",\r\n\t\t\tlg: \"h-7 px-2 py-1 text-base leading-none\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<TagBaseVariants>,\r\n\tdefaultVariants: {\r\n\t\tstatus: \"default\",\r\n\t\tfocus: \"low\",\r\n\t\tsize: \"md\"\r\n\t},\r\n\tcompoundVariants: [\r\n\t\t{\r\n\t\t\tstatus: [\"info\", \"success\", \"warning\", \"error\"],\r\n\t\t\tfocus: \"high\",\r\n\t\t\tclass: \"text-white\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tstatus: \"default\",\r\n\t\t\tfocus: \"high\",\r\n\t\t\tclass: \"border-transparent bg-status-neutral text-primary-bg hover:bg-status-neutral-hover\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tstatus: \"info\",\r\n\t\t\tfocus: \"high\",\r\n\t\t\tclass: \"border-transparent bg-status-info hover:bg-status-info-hover\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tstatus: \"success\",\r\n\t\t\tfocus: \"high\",\r\n\t\t\tclass: \"border-transparent bg-status-success hover:bg-status-success-hover\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tstatus: \"warning\",\r\n\t\t\tfocus: \"high\",\r\n\t\t\tclass: \"border-transparent bg-status-warning hover:bg-status-warning-hover\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tstatus: \"error\",\r\n\t\t\tfocus: \"high\",\r\n\t\t\tclass: \"border-transparent bg-status-error hover:bg-status-error-hover\"\r\n\t\t}\r\n\t]\r\n});\r\n\r\nexport type TagBaseProps = React.HTMLAttributes<HTMLElement> &\r\n\tTagBaseVariants & {\r\n\t\tasChild?: boolean;\r\n\t};\r\n\r\nexport const TagBase = ({ asChild = false, children, ...props }: PropsWithChildren<TagBaseProps>) => {\r\n\tconst Comp = asChild ? Slot : \"span\";\r\n\treturn (\r\n\t\t<Comp className={tagBaseStyles(props)} {...props}>\r\n\t\t\t{children}\r\n\t\t</Comp>\r\n\t);\r\n};\r\n\r\nTagBase.displayName = \"TagBase\";\r\n\r\nexport interface TagButtonVariants {\r\n\tsize?: \"sm\" | \"md\" | \"lg\";\r\n\tclickable?: boolean;\r\n\tposition?: \"standalone\" | \"left\" | \"right\" | \"middle\";\r\n}\r\n\r\nconst tagButtonStyles = tv({\r\n\textend: tagBaseStyles,\r\n\tbase: \"z-10 flex cursor-pointer items-center justify-center whitespace-nowrap rounded-sm border focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary\",\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\tsm: \"gap-1\",\r\n\t\t\tmd: \"gap-1\",\r\n\t\t\tlg: \"gap-1.5\"\r\n\t\t},\r\n\t\tclickable: {\r\n\t\t\tfalse: \"cursor-default\"\r\n\t\t},\r\n\t\tposition: {\r\n\t\t\tstandalone: \"\",\r\n\t\t\tleft: \"rounded-r-none border-r-0\",\r\n\t\t\tright: \"rounded-l-none border-l-0\",\r\n\t\t\tmiddle: \"rounded-none border-l-0 border-r-0\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<TagButtonVariants>,\r\n\tdefaultVariants: {\r\n\t\tclickable: true,\r\n\t\tposition: \"standalone\"\r\n\t}\r\n});\r\n\r\nexport type TagButtonProps = React.HTMLAttributes<HTMLElement> &\r\n\tTagButtonVariants &\r\n\tOmit<TagBaseVariants, \"size\"> & {\r\n\t\tasChild?: boolean;\r\n\t};\r\n\r\nexport const TagButton = (props: PropsWithChildren<TagButtonProps>) => {\r\n\tconst { asChild = false, children, className, ...rest } = props;\r\n\tconst Comp = asChild ? Slot : \"button\";\r\n\tconst styles = tagButtonStyles({ className, ...rest });\r\n\treturn (\r\n\t\t<Comp className={styles} {...rest}>\r\n\t\t\t{children}\r\n\t\t</Comp>\r\n\t);\r\n};\r\n\r\nTagButton.displayName = \"TagButton\";\r\n\r\nexport interface TagCloseVariants {\r\n\tsize?: \"sm\" | \"md\" | \"lg\";\r\n\tfocus?: \"low\" | \"high\";\r\n}\r\n\r\nconst tagCloseStyles = tv({\r\n\textend: tagBaseStyles,\r\n\tbase: \"aspect-square cursor-pointer rounded-l-none rounded-r-sm border border-l-0 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary\",\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\tsm: \"h-5 p-1 text-xs\",\r\n\t\t\tmd: \"h-6 p-1 text-sm\",\r\n\t\t\tlg: \"h-7 p-1.5 text-base\"\r\n\t\t},\r\n\t\tfocus: {\r\n\t\t\tlow: \"\",\r\n\t\t\thigh: \"\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<TagCloseVariants>\r\n});\r\n\r\nconst tagIconStyles = tv({\r\n\tbase: \"aspect-square flex-shrink-0\",\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\tsm: \"h-3 w-3\",\r\n\t\t\tmd: \"h-3.5 w-3.5\",\r\n\t\t\tlg: \"h-4 w-4\"\r\n\t\t}\r\n\t}\r\n});\r\n\r\nexport type TagCloseProps = React.ButtonHTMLAttributes<HTMLButtonElement> &\r\n\tTagCloseVariants &\r\n\tOmit<TagBaseVariants, \"size\"> & {\r\n\t\ticon?: LucideIcon;\r\n\t\ttag?: React.ElementType;\r\n\t};\r\n\r\nexport const TagClose = (props: TagCloseProps) => {\r\n\tconst { icon = X, size, tag: Tag = \"button\", className, ...rest } = props;\r\n\tconst styles = tagCloseStyles({ className, size, ...rest });\r\n\treturn (\r\n\t\t<Tag type=\"button\" className={styles} aria-label=\"Удалить\" size={size} {...rest}>\r\n\t\t\t<Icon icon={icon} className={tagIconStyles({ size })} />\r\n\t\t</Tag>\r\n\t);\r\n};\r\n\r\nTagClose.displayName = \"TagClose\";\r\n\r\nexport interface TagDividerVariants {\r\n\tstatus?: \"default\" | \"info\" | \"success\" | \"warning\" | \"error\";\r\n}\r\n\r\nconst tagDividerStyles = tv({\r\n\tbase: \"self-stretch border-l border-primary-border\",\r\n\tvariants: {\r\n\t\tstatus: {\r\n\t\t\tdefault: \"\",\r\n\t\t\tinfo: \"border-status-info-primary-border\",\r\n\t\t\tsuccess: \"border-status-success-primary-border\",\r\n\t\t\twarning: \"border-status-warning-primary-border\",\r\n\t\t\terror: \"border-status-error-primary-border\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<TagDividerVariants>,\r\n\tdefaultVariants: {\r\n\t\tstatus: \"default\"\r\n\t}\r\n});\r\n\r\nexport type TagDividerProps = React.HTMLAttributes<HTMLDivElement> & TagDividerVariants;\r\n\r\nexport const TagDivider = (props: TagDividerProps) => {\r\n\tconst { status, className, ...rest } = props;\r\n\treturn <div className={tagDividerStyles({ status, className })} {...rest} />;\r\n};\r\n\r\nTagDivider.displayName = \"TagDivider\";\r\n\r\nexport interface TagWrapperVariants {\r\n\tsize?: \"sm\" | \"md\" | \"lg\";\r\n}\r\n\r\nconst tagWrapperStyles = tv({\r\n\tbase: \"inline-flex items-center rounded-sm\",\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\tsm: \"h-5\",\r\n\t\t\tmd: \"h-6\",\r\n\t\t\tlg: \"h-7\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<TagWrapperVariants>\r\n});\r\n\r\nexport type TagWrapperProps = React.HTMLAttributes<HTMLDivElement> & TagWrapperVariants;\r\n\r\nexport const TagWrapper = (props: TagWrapperProps) => {\r\n\tconst { children, className, size, ...rest } = props;\r\n\tconst styles = tagWrapperStyles({ className, size });\r\n\treturn (\r\n\t\t<div className={styles} {...rest}>\r\n\t\t\t{children}\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport type TagProps = PropsWithChildren<\r\n\tPick<TagBaseVariants, \"focus\" | \"size\"> &\r\n\t\tButtonProps & {\r\n\t\t\tonLabelClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\r\n\t\t\tonClose?: (e: React.MouseEvent<HTMLButtonElement>) => void;\r\n\t\t\tclassName?: string;\r\n\t\t\tbuttonClassName?: string;\r\n\t\t}\r\n>;\r\n\r\nexport const Tag = (props: TagProps) => {\r\n\tconst {\r\n\t\tstartIcon: StartIcon,\r\n\t\tendIcon: EndIcon,\r\n\t\tchildren,\r\n\t\tonLabelClick,\r\n\t\tonClose,\r\n\t\tstatus,\r\n\t\tfocus,\r\n\t\tsize = \"md\",\r\n\t\tclassName,\r\n\t\tbuttonClassName,\r\n\t\t...rest\r\n\t} = props;\r\n\tconst hasClose = Boolean(onClose);\r\n\r\n\tconst startIconEl = StartIcon && <StartIcon className={tagIconStyles({ size })} />;\r\n\tconst endIconEl = EndIcon && <EndIcon className={tagIconStyles({ size })} />;\r\n\r\n\treturn (\r\n\t\t<TagWrapper size={size} className={className}>\r\n\t\t\t<TagButton\r\n\t\t\t\tposition={hasClose ? \"left\" : undefined}\r\n\t\t\t\tstatus={status}\r\n\t\t\t\tfocus={focus}\r\n\t\t\t\tsize={size}\r\n\t\t\t\tonClick={onLabelClick}\r\n\t\t\t\tclassName={buttonClassName}\r\n\t\t\t\t{...rest}\r\n\t\t\t>\r\n\t\t\t\t{startIconEl}\r\n\t\t\t\t{children}\r\n\t\t\t\t{endIconEl}\r\n\t\t\t</TagButton>\r\n\r\n\t\t\t{hasClose && (\r\n\t\t\t\t<>\r\n\t\t\t\t\t<TagDivider status={status} />\r\n\t\t\t\t\t<TagClose status={status} focus={focus} size={size} onClick={onClose} />\r\n\t\t\t\t</>\r\n\t\t\t)}\r\n\t\t</TagWrapper>\r\n\t);\r\n};\r\n\r\nTag.displayName = \"Tag\";\r\n"],"names":["tagBaseStyles","tv","TagBase","asChild","children","props","jsx","Slot","tagButtonStyles","TagButton","className","rest","Comp","styles","tagCloseStyles","tagIconStyles","TagClose","icon","X","size","Tag","Icon","tagDividerStyles","TagDivider","status","tagWrapperStyles","TagWrapper","StartIcon","EndIcon","onLabelClick","onClose","focus","buttonClassName","hasClose","startIconEl","endIconEl","jsxs","Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Tag-DdHXTyKF.js","sources":["../src/components/tag/Tag.tsx"],"sourcesContent":["import React, { PropsWithChildren } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { LucideIcon, X } from \"lucide-react\";\nimport { Icon } from \"../icon\";\nimport { ButtonProps } from \"../button/button/Button\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nexport interface TagBaseVariants {\n\tstatus?: \"default\" | \"info\" | \"success\" | \"warning\" | \"error\";\n\tfocus?: \"low\" | \"high\";\n\tsize?: \"sm\" | \"md\" | \"lg\";\n}\n\nconst tagBaseStyles = tv({\n\tbase: \"inline-flex items-center justify-center overflow-hidden font-medium transition-colors\",\n\tvariants: {\n\t\tstatus: {\n\t\t\tdefault: \"border-primary-border bg-status-neutral-bg text-primary-fg hover:bg-status-neutral-bg-hover\",\n\t\t\tinfo: \"border-status-info-primary-border bg-status-info-bg text-status-info-fg hover:bg-status-info-bg-hover\",\n\t\t\tsuccess:\n\t\t\t\t\"border-status-success-primary-border bg-status-success-bg text-status-success-fg hover:bg-status-success-bg-hover\",\n\t\t\twarning:\n\t\t\t\t\"border-status-warning-primary-border bg-status-warning-bg text-status-warning-fg hover:bg-status-warning-bg-hover\",\n\t\t\terror: \"border-status-error-primary-border bg-status-error-bg text-status-error-fg hover:bg-status-error-bg-hover\"\n\t\t},\n\t\tfocus: {\n\t\t\tlow: \"\",\n\t\t\thigh: \"\"\n\t\t},\n\t\tsize: {\n\t\t\tsm: \"h-5 px-1.5 py-1 text-xs leading-none\",\n\t\t\tmd: \"h-6 px-1.5 py-1 text-sm leading-none\",\n\t\t\tlg: \"h-7 px-2 py-1 text-base leading-none\"\n\t\t}\n\t} satisfies VariantsConfig<TagBaseVariants>,\n\tdefaultVariants: {\n\t\tstatus: \"default\",\n\t\tfocus: \"low\",\n\t\tsize: \"md\"\n\t},\n\tcompoundVariants: [\n\t\t{\n\t\t\tstatus: [\"info\", \"success\", \"warning\", \"error\"],\n\t\t\tfocus: \"high\",\n\t\t\tclass: \"text-white\"\n\t\t},\n\t\t{\n\t\t\tstatus: \"default\",\n\t\t\tfocus: \"high\",\n\t\t\tclass: \"border-transparent bg-status-neutral text-primary-bg hover:bg-status-neutral-hover\"\n\t\t},\n\t\t{\n\t\t\tstatus: \"info\",\n\t\t\tfocus: \"high\",\n\t\t\tclass: \"border-transparent bg-status-info hover:bg-status-info-hover\"\n\t\t},\n\t\t{\n\t\t\tstatus: \"success\",\n\t\t\tfocus: \"high\",\n\t\t\tclass: \"border-transparent bg-status-success hover:bg-status-success-hover\"\n\t\t},\n\t\t{\n\t\t\tstatus: \"warning\",\n\t\t\tfocus: \"high\",\n\t\t\tclass: \"border-transparent bg-status-warning hover:bg-status-warning-hover\"\n\t\t},\n\t\t{\n\t\t\tstatus: \"error\",\n\t\t\tfocus: \"high\",\n\t\t\tclass: \"border-transparent bg-status-error hover:bg-status-error-hover\"\n\t\t}\n\t]\n});\n\nexport type TagBaseProps = React.HTMLAttributes<HTMLElement> &\n\tTagBaseVariants & {\n\t\tasChild?: boolean;\n\t};\n\nexport const TagBase = ({ asChild = false, children, ...props }: PropsWithChildren<TagBaseProps>) => {\n\tconst Comp = asChild ? Slot : \"span\";\n\treturn (\n\t\t<Comp className={tagBaseStyles(props)} {...props}>\n\t\t\t{children}\n\t\t</Comp>\n\t);\n};\n\nTagBase.displayName = \"TagBase\";\n\nexport interface TagButtonVariants {\n\tsize?: \"sm\" | \"md\" | \"lg\";\n\tclickable?: boolean;\n\tposition?: \"standalone\" | \"left\" | \"right\" | \"middle\";\n}\n\nconst tagButtonStyles = tv({\n\textend: tagBaseStyles,\n\tbase: \"z-10 flex cursor-pointer items-center justify-center whitespace-nowrap rounded-sm border focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary\",\n\tvariants: {\n\t\tsize: {\n\t\t\tsm: \"gap-1\",\n\t\t\tmd: \"gap-1\",\n\t\t\tlg: \"gap-1.5\"\n\t\t},\n\t\tclickable: {\n\t\t\tfalse: \"cursor-default\"\n\t\t},\n\t\tposition: {\n\t\t\tstandalone: \"\",\n\t\t\tleft: \"rounded-r-none border-r-0\",\n\t\t\tright: \"rounded-l-none border-l-0\",\n\t\t\tmiddle: \"rounded-none border-l-0 border-r-0\"\n\t\t}\n\t} satisfies VariantsConfig<TagButtonVariants>,\n\tdefaultVariants: {\n\t\tclickable: true,\n\t\tposition: \"standalone\"\n\t}\n});\n\nexport type TagButtonProps = React.HTMLAttributes<HTMLElement> &\n\tTagButtonVariants &\n\tOmit<TagBaseVariants, \"size\"> & {\n\t\tasChild?: boolean;\n\t};\n\nexport const TagButton = (props: PropsWithChildren<TagButtonProps>) => {\n\tconst { asChild = false, children, className, ...rest } = props;\n\tconst Comp = asChild ? Slot : \"button\";\n\tconst styles = tagButtonStyles({ className, ...rest });\n\treturn (\n\t\t<Comp className={styles} {...rest}>\n\t\t\t{children}\n\t\t</Comp>\n\t);\n};\n\nTagButton.displayName = \"TagButton\";\n\nexport interface TagCloseVariants {\n\tsize?: \"sm\" | \"md\" | \"lg\";\n\tfocus?: \"low\" | \"high\";\n}\n\nconst tagCloseStyles = tv({\n\textend: tagBaseStyles,\n\tbase: \"aspect-square cursor-pointer rounded-l-none rounded-r-sm border border-l-0 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary\",\n\tvariants: {\n\t\tsize: {\n\t\t\tsm: \"h-5 p-1 text-xs\",\n\t\t\tmd: \"h-6 p-1 text-sm\",\n\t\t\tlg: \"h-7 p-1.5 text-base\"\n\t\t},\n\t\tfocus: {\n\t\t\tlow: \"\",\n\t\t\thigh: \"\"\n\t\t}\n\t} satisfies VariantsConfig<TagCloseVariants>\n});\n\nconst tagIconStyles = tv({\n\tbase: \"aspect-square flex-shrink-0\",\n\tvariants: {\n\t\tsize: {\n\t\t\tsm: \"h-3 w-3\",\n\t\t\tmd: \"h-3.5 w-3.5\",\n\t\t\tlg: \"h-4 w-4\"\n\t\t}\n\t}\n});\n\nexport type TagCloseProps = React.ButtonHTMLAttributes<HTMLButtonElement> &\n\tTagCloseVariants &\n\tOmit<TagBaseVariants, \"size\"> & {\n\t\ticon?: LucideIcon;\n\t\ttag?: React.ElementType;\n\t};\n\nexport const TagClose = (props: TagCloseProps) => {\n\tconst { icon = X, size, tag: Tag = \"button\", className, ...rest } = props;\n\tconst styles = tagCloseStyles({ className, size, ...rest });\n\treturn (\n\t\t<Tag type=\"button\" className={styles} aria-label=\"Удалить\" size={size} {...rest}>\n\t\t\t<Icon icon={icon} className={tagIconStyles({ size })} />\n\t\t</Tag>\n\t);\n};\n\nTagClose.displayName = \"TagClose\";\n\nexport interface TagDividerVariants {\n\tstatus?: \"default\" | \"info\" | \"success\" | \"warning\" | \"error\";\n}\n\nconst tagDividerStyles = tv({\n\tbase: \"self-stretch border-l border-primary-border\",\n\tvariants: {\n\t\tstatus: {\n\t\t\tdefault: \"\",\n\t\t\tinfo: \"border-status-info-primary-border\",\n\t\t\tsuccess: \"border-status-success-primary-border\",\n\t\t\twarning: \"border-status-warning-primary-border\",\n\t\t\terror: \"border-status-error-primary-border\"\n\t\t}\n\t} satisfies VariantsConfig<TagDividerVariants>,\n\tdefaultVariants: {\n\t\tstatus: \"default\"\n\t}\n});\n\nexport type TagDividerProps = React.HTMLAttributes<HTMLDivElement> & TagDividerVariants;\n\nexport const TagDivider = (props: TagDividerProps) => {\n\tconst { status, className, ...rest } = props;\n\treturn <div className={tagDividerStyles({ status, className })} {...rest} />;\n};\n\nTagDivider.displayName = \"TagDivider\";\n\nexport interface TagWrapperVariants {\n\tsize?: \"sm\" | \"md\" | \"lg\";\n}\n\nconst tagWrapperStyles = tv({\n\tbase: \"inline-flex items-center rounded-sm\",\n\tvariants: {\n\t\tsize: {\n\t\t\tsm: \"h-5\",\n\t\t\tmd: \"h-6\",\n\t\t\tlg: \"h-7\"\n\t\t}\n\t} satisfies VariantsConfig<TagWrapperVariants>\n});\n\nexport type TagWrapperProps = React.HTMLAttributes<HTMLDivElement> & TagWrapperVariants;\n\nexport const TagWrapper = (props: TagWrapperProps) => {\n\tconst { children, className, size, ...rest } = props;\n\tconst styles = tagWrapperStyles({ className, size });\n\treturn (\n\t\t<div className={styles} {...rest}>\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n\nexport type TagProps = PropsWithChildren<\n\tPick<TagBaseVariants, \"focus\" | \"size\"> &\n\t\tButtonProps & {\n\t\t\tonLabelClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\n\t\t\tonClose?: (e: React.MouseEvent<HTMLButtonElement>) => void;\n\t\t\tclassName?: string;\n\t\t\tbuttonClassName?: string;\n\t\t}\n>;\n\nexport const Tag = (props: TagProps) => {\n\tconst {\n\t\tstartIcon: StartIcon,\n\t\tendIcon: EndIcon,\n\t\tchildren,\n\t\tonLabelClick,\n\t\tonClose,\n\t\tstatus,\n\t\tfocus,\n\t\tsize = \"md\",\n\t\tclassName,\n\t\tbuttonClassName,\n\t\t...rest\n\t} = props;\n\tconst hasClose = Boolean(onClose);\n\n\tconst startIconEl = StartIcon && <StartIcon className={tagIconStyles({ size })} />;\n\tconst endIconEl = EndIcon && <EndIcon className={tagIconStyles({ size })} />;\n\n\treturn (\n\t\t<TagWrapper size={size} className={className}>\n\t\t\t<TagButton\n\t\t\t\tposition={hasClose ? \"left\" : undefined}\n\t\t\t\tstatus={status}\n\t\t\t\tfocus={focus}\n\t\t\t\tsize={size}\n\t\t\t\tonClick={onLabelClick}\n\t\t\t\tclassName={buttonClassName}\n\t\t\t\t{...rest}\n\t\t\t>\n\t\t\t\t{startIconEl}\n\t\t\t\t{children}\n\t\t\t\t{endIconEl}\n\t\t\t</TagButton>\n\n\t\t\t{hasClose && (\n\t\t\t\t<>\n\t\t\t\t\t<TagDivider status={status} />\n\t\t\t\t\t<TagClose status={status} focus={focus} size={size} onClick={onClose} />\n\t\t\t\t</>\n\t\t\t)}\n\t\t</TagWrapper>\n\t);\n};\n\nTag.displayName = \"Tag\";\n"],"names":["tagBaseStyles","tv","TagBase","asChild","children","props","jsx","Slot","tagButtonStyles","TagButton","className","rest","Comp","styles","tagCloseStyles","tagIconStyles","TagClose","icon","X","size","Tag","Icon","tagDividerStyles","TagDivider","status","tagWrapperStyles","TagWrapper","StartIcon","EndIcon","onLabelClick","onClose","focus","buttonClassName","hasClose","startIconEl","endIconEl","jsxs","Fragment"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text-DeBE8AKl.js","sources":["../src/components/text/Text.tsx"],"sourcesContent":["import { VariantsConfig } from \"@/lib/utils/variants\";\
|
|
1
|
+
{"version":3,"file":"Text-DeBE8AKl.js","sources":["../src/components/text/Text.tsx"],"sourcesContent":["import { VariantsConfig } from \"@/lib/utils/variants\";\nimport React from \"react\";\nimport { tv } from \"tailwind-variants\";\n\ntype TextVariants = {\n\tsize?: \"xs\" | \"sm\";\n};\n\nconst textStyles = tv({\n\tbase: \"font-normal text-secondary-fg\",\n\tvariants: {\n\t\tsize: {\n\t\t\txs: \"text-xs\",\n\t\t\tsm: \"text-sm\"\n\t\t}\n\t} satisfies VariantsConfig<TextVariants>,\n\tdefaultVariants: {\n\t\tsize: \"sm\"\n\t}\n});\n\nexport type TextProps = React.HTMLAttributes<HTMLDivElement> & React.PropsWithChildren & TextVariants;\n\nexport const Text = React.forwardRef<HTMLDivElement, TextProps>(\n\t({ className, children, size = \"sm\", ...props }, ref) => {\n\t\treturn (\n\t\t\t<span ref={ref} className={textStyles({ class: className, size })} {...props}>\n\t\t\t\t{children}\n\t\t\t</span>\n\t\t);\n\t}\n);\n\nText.displayName = \"Text\";\n"],"names":["textStyles","tv","Text","React","className","children","size","props","ref","jsx"],"mappings":";;;AAQA,MAAMA,IAAaC,EAAG;AAAA,EACrB,MAAM;AAAA,EACN,UAAU;AAAA,IACT,MAAM;AAAA,MACL,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA;AAAA,EAEN;AAAA,EACA,iBAAiB;AAAA,IAChB,MAAM;AAAA,EAAA;AAER,CAAC,GAIYC,IAAOC,EAAM;AAAA,EACzB,CAAC,EAAE,WAAAC,GAAW,UAAAC,GAAU,MAAAC,IAAO,MAAM,GAAGC,EAAM,GAAGC,MAE9C,gBAAAC,EAAA,QAAA,EAAK,KAAAD,GAAU,WAAWR,EAAW,EAAE,OAAOI,GAAW,MAAAE,EAAM,CAAA,GAAI,GAAGC,GACrE,UAAAF,EACF,CAAA;AAGH;AAEAH,EAAK,cAAc;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextInput-Cj50ImXi.js","sources":["../node_modules/.pnpm/lucide-react@0.460.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/copy.js","../src/hooks/useControlledValue.ts","../src/hooks/useCopyAction.ts","../src/hooks/useAutofill.ts","../src/hooks/useInputWithActions.ts","../src/components/input/text-input/TextInput.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.460.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 Copy = createLucideIcon(\"Copy\", [\n [\"rect\", { width: \"14\", height: \"14\", x: \"8\", y: \"8\", rx: \"2\", ry: \"2\", key: \"17jyea\" }],\n [\"path\", { d: \"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\", key: \"zix9uf\" }]\n]);\n\nexport { Copy as default };\n//# sourceMappingURL=copy.js.map\n","import { useCallback, useEffect, useRef, useState } from \"react\";\r\n\r\n/**\r\n * Хук для управления контролируемым и неконтролируемым состоянием\r\n */\r\nexport function useControlledValue(\r\n\tvalue: string | number | readonly string[] | undefined,\r\n\tdefaultValue: string | number | readonly string[] | undefined,\r\n\tonChange?: (value: string | null) => void\r\n) {\r\n\tconst [uncontrolledValue, setUncontrolledValue] = useState(\r\n\t\ttypeof defaultValue === \"string\" ? defaultValue : String(defaultValue ?? \"\")\r\n\t);\r\n\tconst inputRef = useRef<HTMLInputElement>(null);\r\n\r\n\t// Добавляем обработчик для отслеживания изменений в uncontrolled режиме\r\n\tuseEffect(() => {\r\n\t\tif (value !== undefined) return;\r\n\r\n\t\tconst input = inputRef.current;\r\n\t\tif (!input) return;\r\n\r\n\t\tconst handleInput = () => {\r\n\t\t\tsetUncontrolledValue(input.value);\r\n\t\t};\r\n\r\n\t\tinput.addEventListener(\"input\", handleInput);\r\n\t\treturn () => input.removeEventListener(\"input\", handleInput);\r\n\t}, [value, inputRef]);\r\n\r\n\tconst getCurrentValue = useCallback(() => {\r\n\t\tif (value !== undefined) return String(value);\r\n\t\treturn uncontrolledValue;\r\n\t}, [value, uncontrolledValue]);\r\n\r\n\tconst handleChange = useCallback(\r\n\t\t(e: React.ChangeEvent<HTMLInputElement>) => {\r\n\t\t\tonChange?.(e.target.value);\r\n\t\t},\r\n\t\t[onChange]\r\n\t);\r\n\r\n\treturn {\r\n\t\tinputRef,\r\n\t\tgetCurrentValue,\r\n\t\thandleChange,\r\n\t\tcurrentValue: getCurrentValue()\r\n\t};\r\n}\r\n","import { useCallback, useEffect, useState } from \"react\";\r\n\r\n/**\r\n * Хук для копирования содержимого в буфер обмена\r\n */\r\nexport function useCopyAction() {\r\n\tconst [hasCopied, setHasCopied] = useState(false);\r\n\r\n\t// Эффект для сброса статуса копирования\r\n\tuseEffect(() => {\r\n\t\tif (!hasCopied) return;\r\n\t\tconst timeout = setTimeout(() => {\r\n\t\t\tsetHasCopied(false);\r\n\t\t}, 2000);\r\n\t\treturn () => clearTimeout(timeout);\r\n\t}, [hasCopied]);\r\n\r\n\tconst handleCopy = useCallback((value: string) => {\r\n\t\tif (value) {\r\n\t\t\tnavigator.clipboard.writeText(value);\r\n\t\t\tsetHasCopied(true);\r\n\t\t}\r\n\t}, []);\r\n\r\n\treturn {\r\n\t\thasCopied,\r\n\t\thandleCopy\r\n\t};\r\n}\r\n","import { useEffect, useRef, useState } from \"react\";\r\n\r\n/**\r\n * Хук для определения состояния автозаполнения input'а\r\n */\r\nexport function useAutofill() {\r\n\tconst [isAutofilled, setIsAutofilled] = useState(false);\r\n\tconst inputRef = useRef<HTMLInputElement>(null);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst input = inputRef.current;\r\n\t\tif (!input) return;\r\n\r\n\t\tconst checkAutofill = (element: Element): boolean => {\r\n\t\t\ttry {\r\n\t\t\t\treturn element.matches(\":-webkit-autofill\");\r\n\t\t\t} catch {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tconst updateAutofillState = () => {\r\n\t\t\tconst autofilled = checkAutofill(input);\r\n\t\t\tsetIsAutofilled(autofilled);\r\n\t\t};\r\n\r\n\t\tinput.addEventListener(\"input\", updateAutofillState);\r\n\r\n\t\tlet intervalCounter = 0;\r\n\t\tconst intervalTime = 25;\r\n\t\t// Максимальное время ожидания появления autofill, в ms\r\n\t\tconst intervalTimeLimit = 1000;\r\n\r\n\t\tconst interval = setInterval(() => {\r\n\t\t\tintervalCounter += intervalTime;\r\n\t\t\tif (intervalCounter > intervalTimeLimit) {\r\n\t\t\t\tclearInterval(interval);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (checkAutofill(input)) {\r\n\t\t\t\tsetIsAutofilled(true);\r\n\t\t\t\tclearInterval(interval);\r\n\t\t\t}\r\n\t\t}, intervalTime);\r\n\r\n\t\tupdateAutofillState();\r\n\r\n\t\treturn () => {\r\n\t\t\tclearInterval(interval);\r\n\t\t\tinput.removeEventListener(\"input\", updateAutofillState);\r\n\t\t};\r\n\t}, []);\r\n\r\n\treturn {\r\n\t\tisAutofilled,\r\n\t\tinputRef\r\n\t};\r\n}\r\n","import { useCallback, useMemo } from \"react\";\r\nimport { useControlledValue } from \"./useControlledValue\";\r\nimport { useCopyAction } from \"./useCopyAction\";\r\nimport { useAutofill } from \"./useAutofill\";\r\n\r\nexport interface UseInputWithActionsOptions {\r\n\t/** Значение input (для контролируемого режима) */\r\n\tvalue?: string | number | readonly string[];\r\n\t/** Значение по умолчанию (для неконтролируемого режима) */\r\n\tdefaultValue?: string | number | readonly string[];\r\n\t/** Колбэк на изменение значения */\r\n\tonChange?: (value: string | null) => void;\r\n\t/** Флаг только для чтения */\r\n\treadOnly?: boolean;\r\n\t/** Флаг отключения */\r\n\tdisabled?: boolean;\r\n\t/** Флаг для отображения кнопки очистки */\r\n\tshowClearIcon?: boolean;\r\n\t/** Флаг для отображения кнопки копирования */\r\n\tshowCopyIcon?: boolean;\r\n}\r\n\r\n/**\r\n * Общий хук для input с полным функционалом копирования и очистки\r\n */\r\nexport function useInputWithActions({\r\n\tvalue,\r\n\tdefaultValue,\r\n\tonChange,\r\n\treadOnly,\r\n\tdisabled,\r\n\tshowClearIcon = false,\r\n\tshowCopyIcon = false\r\n}: UseInputWithActionsOptions) {\r\n\tconst controlledValue = useControlledValue(value, defaultValue, onChange);\r\n\tconst copyAction = useCopyAction();\r\n\tconst { isAutofilled } = useAutofill();\r\n\r\n\tconst isEditable = useMemo(() => {\r\n\t\treturn !readOnly && !disabled;\r\n\t}, [readOnly, disabled]);\r\n\r\n\tconst handleClear = useCallback(() => {\r\n\t\tif (value !== undefined) {\r\n\t\t\t// Controlled mode\r\n\t\t\tonChange?.(\"\");\r\n\t\t} else {\r\n\t\t\t// Uncontrolled mode\r\n\t\t\tif (controlledValue.inputRef.current) {\r\n\t\t\t\tcontrolledValue.inputRef.current.value = \"\";\r\n\t\t\t\tcontrolledValue.inputRef.current.dispatchEvent(new Event(\"input\", { bubbles: true }));\r\n\t\t\t}\r\n\t\t}\r\n\t}, [onChange, value, controlledValue.inputRef]);\r\n\r\n\tconst handleCopyValue = useCallback(() => {\r\n\t\tcopyAction.handleCopy(String(controlledValue.currentValue));\r\n\t}, [copyAction.handleCopy, controlledValue.currentValue]);\r\n\r\n\tconst shouldShowClearIcon = showClearIcon && isEditable && controlledValue.currentValue;\r\n\tconst shouldShowCopyIcon = showCopyIcon && controlledValue.currentValue;\r\n\r\n\treturn {\r\n\t\t// Значения и состояние\r\n\t\tcurrentValue: controlledValue.currentValue,\r\n\t\tinputRef: controlledValue.inputRef,\r\n\t\tisEditable,\r\n\r\n\t\t// Обработчики\r\n\t\thandleChange: controlledValue.handleChange,\r\n\t\thandleClear,\r\n\t\thandleCopy: handleCopyValue,\r\n\r\n\t\t// Состояние копирования\r\n\t\thasCopied: copyAction.hasCopied,\r\n\r\n\t\t// Состояние автозаполнения\r\n\t\tisAutofilled,\r\n\r\n\t\t// Флаги видимости кнопок\r\n\t\tshouldShowClearIcon,\r\n\t\tshouldShowCopyIcon\r\n\t};\r\n}\r\n","import React, { HTMLAttributes } from \"react\";\r\nimport { useMergeRefs } from \"@/hooks/useMergeRefs\";\r\nimport { useInputWithActions } from \"@/hooks/useInputWithActions\";\r\nimport { InputGroup, InputGroupInput, InputGroupButton, InputGroupText } from \"../input-group/InputGroup\";\r\nimport { CircleX, Copy, Check } from \"lucide-react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { InputProps } from \"../input/Input\";\r\n\r\nconst textInputStyles = tv({\r\n\tbase: \"\",\r\n\tslots: {\r\n\t\taction: \"hidden group-focus-within/input-group:block group-hover/input-group:block\",\r\n\t\tstartIcon: \"!border-r-0 pr-0 text-muted\",\r\n\t\tendIcon: \"border-l-0 pl-0 text-muted\",\r\n\t\tinput: \"\"\r\n\t},\r\n\tvariants: {\r\n\t\thasStartIcon: { true: { input: \"pl-2\" } }\r\n\t}\r\n});\r\n\r\nexport interface TextInputProps\r\n\textends Omit<InputProps, \"onChange\">,\r\n\t\tOmit<HTMLAttributes<HTMLInputElement>, \"onChange\"> {\r\n\t/** Иконка, отображаемая в начале текстового поля */\r\n\tstartIcon?: React.ReactNode;\r\n\t/** Иконка, отображаемая в конце текстового поля */\r\n\tendIcon?: React.ReactNode;\r\n\t/** Флаг для отображения кнопки очистки значения */\r\n\tshowClearIcon?: boolean;\r\n\t/** Флаг для отображения кнопки копирования значения */\r\n\tshowCopyIcon?: boolean;\r\n\t/** Колбэк на изменение значения */\r\n\tonChange?: (value: string | null) => void;\r\n}\r\n\r\n/**\r\n * Компонент текстового поля ввода с поддержкой иконок и дополнительных действий.\r\n */\r\nexport const TextInput = React.forwardRef<HTMLInputElement, TextInputProps>(\r\n\t(\r\n\t\t{\r\n\t\t\tstartIcon,\r\n\t\t\tendIcon,\r\n\t\t\tshowClearIcon,\r\n\t\t\tshowCopyIcon,\r\n\t\t\tvalue,\r\n\t\t\tdefaultValue,\r\n\t\t\tonChange,\r\n\t\t\treadOnly,\r\n\t\t\tdisabled,\r\n\t\t\terror,\r\n\t\t\tclassName,\r\n\t\t\t...props\r\n\t\t},\r\n\t\tref\r\n\t) => {\r\n\t\tconst styles = textInputStyles();\r\n\r\n\t\tconst inputActions = useInputWithActions({\r\n\t\t\tvalue,\r\n\t\t\tdefaultValue,\r\n\t\t\tonChange,\r\n\t\t\treadOnly,\r\n\t\t\tdisabled,\r\n\t\t\tshowClearIcon,\r\n\t\t\tshowCopyIcon\r\n\t\t});\r\n\r\n\t\tconst mergedRef = useMergeRefs(ref, inputActions.inputRef);\r\n\r\n\t\treturn (\r\n\t\t\t<InputGroup className={styles.base({ className })}>\r\n\t\t\t\t{startIcon && <InputGroupText className={styles.startIcon()}>{startIcon}</InputGroupText>}\r\n\r\n\t\t\t\t<InputGroupInput\r\n\t\t\t\t\tref={mergedRef}\r\n\t\t\t\t\tvalue={value}\r\n\t\t\t\t\tdefaultValue={defaultValue}\r\n\t\t\t\t\tonChange={inputActions.handleChange}\r\n\t\t\t\t\treadOnly={readOnly}\r\n\t\t\t\t\tdisabled={disabled}\r\n\t\t\t\t\terror={error}\r\n\t\t\t\t\tclassName={styles.input({ hasStartIcon: !!startIcon })}\r\n\t\t\t\t\t{...props}\r\n\t\t\t\t/>\r\n\r\n\t\t\t\t{inputActions.shouldShowClearIcon && (\r\n\t\t\t\t\t<InputGroupButton\r\n\t\t\t\t\t\ticon={CircleX}\r\n\t\t\t\t\t\tonClick={inputActions.handleClear}\r\n\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\tclassName={styles.action()}\r\n\t\t\t\t\t/>\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{inputActions.shouldShowCopyIcon && (\r\n\t\t\t\t\t<InputGroupButton\r\n\t\t\t\t\t\ticon={inputActions.hasCopied ? Check : Copy}\r\n\t\t\t\t\t\tonClick={inputActions.handleCopy}\r\n\t\t\t\t\t\ttype=\"button\"\r\n\t\t\t\t\t\tclassName={styles.action()}\r\n\t\t\t\t\t/>\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{endIcon && <InputGroupText className={styles.endIcon()}>{endIcon}</InputGroupText>}\r\n\t\t\t</InputGroup>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nTextInput.displayName = \"TextInput\";\r\n\r\nexport default TextInput;\r\n"],"names":["Copy","createLucideIcon","useControlledValue","value","defaultValue","onChange","uncontrolledValue","setUncontrolledValue","useState","inputRef","useRef","useEffect","input","handleInput","getCurrentValue","useCallback","handleChange","e","useCopyAction","hasCopied","setHasCopied","timeout","handleCopy","useAutofill","isAutofilled","setIsAutofilled","checkAutofill","element","updateAutofillState","autofilled","intervalCounter","intervalTime","intervalTimeLimit","interval","useInputWithActions","readOnly","disabled","showClearIcon","showCopyIcon","controlledValue","copyAction","isEditable","useMemo","handleClear","handleCopyValue","shouldShowClearIcon","shouldShowCopyIcon","textInputStyles","tv","TextInput","React","startIcon","endIcon","error","className","props","ref","styles","inputActions","mergedRef","useMergeRefs","jsxs","InputGroup","InputGroupText","jsx","InputGroupInput","InputGroupButton","CircleX","Check"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"TextInput-Cj50ImXi.js","sources":["../node_modules/.pnpm/lucide-react@0.460.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/copy.js","../src/hooks/useControlledValue.ts","../src/hooks/useCopyAction.ts","../src/hooks/useAutofill.ts","../src/hooks/useInputWithActions.ts","../src/components/input/text-input/TextInput.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.460.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 Copy = createLucideIcon(\"Copy\", [\n [\"rect\", { width: \"14\", height: \"14\", x: \"8\", y: \"8\", rx: \"2\", ry: \"2\", key: \"17jyea\" }],\n [\"path\", { d: \"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\", key: \"zix9uf\" }]\n]);\n\nexport { Copy as default };\n//# sourceMappingURL=copy.js.map\n","import { useCallback, useEffect, useRef, useState } from \"react\";\n\n/**\n * Хук для управления контролируемым и неконтролируемым состоянием\n */\nexport function useControlledValue(\n\tvalue: string | number | readonly string[] | undefined,\n\tdefaultValue: string | number | readonly string[] | undefined,\n\tonChange?: (value: string | null) => void\n) {\n\tconst [uncontrolledValue, setUncontrolledValue] = useState(\n\t\ttypeof defaultValue === \"string\" ? defaultValue : String(defaultValue ?? \"\")\n\t);\n\tconst inputRef = useRef<HTMLInputElement>(null);\n\n\t// Добавляем обработчик для отслеживания изменений в uncontrolled режиме\n\tuseEffect(() => {\n\t\tif (value !== undefined) return;\n\n\t\tconst input = inputRef.current;\n\t\tif (!input) return;\n\n\t\tconst handleInput = () => {\n\t\t\tsetUncontrolledValue(input.value);\n\t\t};\n\n\t\tinput.addEventListener(\"input\", handleInput);\n\t\treturn () => input.removeEventListener(\"input\", handleInput);\n\t}, [value, inputRef]);\n\n\tconst getCurrentValue = useCallback(() => {\n\t\tif (value !== undefined) return String(value);\n\t\treturn uncontrolledValue;\n\t}, [value, uncontrolledValue]);\n\n\tconst handleChange = useCallback(\n\t\t(e: React.ChangeEvent<HTMLInputElement>) => {\n\t\t\tonChange?.(e.target.value);\n\t\t},\n\t\t[onChange]\n\t);\n\n\treturn {\n\t\tinputRef,\n\t\tgetCurrentValue,\n\t\thandleChange,\n\t\tcurrentValue: getCurrentValue()\n\t};\n}\n","import { useCallback, useEffect, useState } from \"react\";\n\n/**\n * Хук для копирования содержимого в буфер обмена\n */\nexport function useCopyAction() {\n\tconst [hasCopied, setHasCopied] = useState(false);\n\n\t// Эффект для сброса статуса копирования\n\tuseEffect(() => {\n\t\tif (!hasCopied) return;\n\t\tconst timeout = setTimeout(() => {\n\t\t\tsetHasCopied(false);\n\t\t}, 2000);\n\t\treturn () => clearTimeout(timeout);\n\t}, [hasCopied]);\n\n\tconst handleCopy = useCallback((value: string) => {\n\t\tif (value) {\n\t\t\tnavigator.clipboard.writeText(value);\n\t\t\tsetHasCopied(true);\n\t\t}\n\t}, []);\n\n\treturn {\n\t\thasCopied,\n\t\thandleCopy\n\t};\n}\n","import { useEffect, useRef, useState } from \"react\";\n\n/**\n * Хук для определения состояния автозаполнения input'а\n */\nexport function useAutofill() {\n\tconst [isAutofilled, setIsAutofilled] = useState(false);\n\tconst inputRef = useRef<HTMLInputElement>(null);\n\n\tuseEffect(() => {\n\t\tconst input = inputRef.current;\n\t\tif (!input) return;\n\n\t\tconst checkAutofill = (element: Element): boolean => {\n\t\t\ttry {\n\t\t\t\treturn element.matches(\":-webkit-autofill\");\n\t\t\t} catch {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t};\n\n\t\tconst updateAutofillState = () => {\n\t\t\tconst autofilled = checkAutofill(input);\n\t\t\tsetIsAutofilled(autofilled);\n\t\t};\n\n\t\tinput.addEventListener(\"input\", updateAutofillState);\n\n\t\tlet intervalCounter = 0;\n\t\tconst intervalTime = 25;\n\t\t// Максимальное время ожидания появления autofill, в ms\n\t\tconst intervalTimeLimit = 1000;\n\n\t\tconst interval = setInterval(() => {\n\t\t\tintervalCounter += intervalTime;\n\t\t\tif (intervalCounter > intervalTimeLimit) {\n\t\t\t\tclearInterval(interval);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (checkAutofill(input)) {\n\t\t\t\tsetIsAutofilled(true);\n\t\t\t\tclearInterval(interval);\n\t\t\t}\n\t\t}, intervalTime);\n\n\t\tupdateAutofillState();\n\n\t\treturn () => {\n\t\t\tclearInterval(interval);\n\t\t\tinput.removeEventListener(\"input\", updateAutofillState);\n\t\t};\n\t}, []);\n\n\treturn {\n\t\tisAutofilled,\n\t\tinputRef\n\t};\n}\n","import { useCallback, useMemo } from \"react\";\nimport { useControlledValue } from \"./useControlledValue\";\nimport { useCopyAction } from \"./useCopyAction\";\nimport { useAutofill } from \"./useAutofill\";\n\nexport interface UseInputWithActionsOptions {\n\t/** Значение input (для контролируемого режима) */\n\tvalue?: string | number | readonly string[];\n\t/** Значение по умолчанию (для неконтролируемого режима) */\n\tdefaultValue?: string | number | readonly string[];\n\t/** Колбэк на изменение значения */\n\tonChange?: (value: string | null) => void;\n\t/** Флаг только для чтения */\n\treadOnly?: boolean;\n\t/** Флаг отключения */\n\tdisabled?: boolean;\n\t/** Флаг для отображения кнопки очистки */\n\tshowClearIcon?: boolean;\n\t/** Флаг для отображения кнопки копирования */\n\tshowCopyIcon?: boolean;\n}\n\n/**\n * Общий хук для input с полным функционалом копирования и очистки\n */\nexport function useInputWithActions({\n\tvalue,\n\tdefaultValue,\n\tonChange,\n\treadOnly,\n\tdisabled,\n\tshowClearIcon = false,\n\tshowCopyIcon = false\n}: UseInputWithActionsOptions) {\n\tconst controlledValue = useControlledValue(value, defaultValue, onChange);\n\tconst copyAction = useCopyAction();\n\tconst { isAutofilled } = useAutofill();\n\n\tconst isEditable = useMemo(() => {\n\t\treturn !readOnly && !disabled;\n\t}, [readOnly, disabled]);\n\n\tconst handleClear = useCallback(() => {\n\t\tif (value !== undefined) {\n\t\t\t// Controlled mode\n\t\t\tonChange?.(\"\");\n\t\t} else {\n\t\t\t// Uncontrolled mode\n\t\t\tif (controlledValue.inputRef.current) {\n\t\t\t\tcontrolledValue.inputRef.current.value = \"\";\n\t\t\t\tcontrolledValue.inputRef.current.dispatchEvent(new Event(\"input\", { bubbles: true }));\n\t\t\t}\n\t\t}\n\t}, [onChange, value, controlledValue.inputRef]);\n\n\tconst handleCopyValue = useCallback(() => {\n\t\tcopyAction.handleCopy(String(controlledValue.currentValue));\n\t}, [copyAction.handleCopy, controlledValue.currentValue]);\n\n\tconst shouldShowClearIcon = showClearIcon && isEditable && controlledValue.currentValue;\n\tconst shouldShowCopyIcon = showCopyIcon && controlledValue.currentValue;\n\n\treturn {\n\t\t// Значения и состояние\n\t\tcurrentValue: controlledValue.currentValue,\n\t\tinputRef: controlledValue.inputRef,\n\t\tisEditable,\n\n\t\t// Обработчики\n\t\thandleChange: controlledValue.handleChange,\n\t\thandleClear,\n\t\thandleCopy: handleCopyValue,\n\n\t\t// Состояние копирования\n\t\thasCopied: copyAction.hasCopied,\n\n\t\t// Состояние автозаполнения\n\t\tisAutofilled,\n\n\t\t// Флаги видимости кнопок\n\t\tshouldShowClearIcon,\n\t\tshouldShowCopyIcon\n\t};\n}\n","import React, { HTMLAttributes } from \"react\";\nimport { useMergeRefs } from \"@/hooks/useMergeRefs\";\nimport { useInputWithActions } from \"@/hooks/useInputWithActions\";\nimport { InputGroup, InputGroupInput, InputGroupButton, InputGroupText } from \"../input-group/InputGroup\";\nimport { CircleX, Copy, Check } from \"lucide-react\";\nimport { tv } from \"tailwind-variants\";\nimport { InputProps } from \"../input/Input\";\n\nconst textInputStyles = tv({\n\tbase: \"\",\n\tslots: {\n\t\taction: \"hidden group-focus-within/input-group:block group-hover/input-group:block\",\n\t\tstartIcon: \"!border-r-0 pr-0 text-muted\",\n\t\tendIcon: \"border-l-0 pl-0 text-muted\",\n\t\tinput: \"\"\n\t},\n\tvariants: {\n\t\thasStartIcon: { true: { input: \"pl-2\" } }\n\t}\n});\n\nexport interface TextInputProps\n\textends Omit<InputProps, \"onChange\">,\n\t\tOmit<HTMLAttributes<HTMLInputElement>, \"onChange\"> {\n\t/** Иконка, отображаемая в начале текстового поля */\n\tstartIcon?: React.ReactNode;\n\t/** Иконка, отображаемая в конце текстового поля */\n\tendIcon?: React.ReactNode;\n\t/** Флаг для отображения кнопки очистки значения */\n\tshowClearIcon?: boolean;\n\t/** Флаг для отображения кнопки копирования значения */\n\tshowCopyIcon?: boolean;\n\t/** Колбэк на изменение значения */\n\tonChange?: (value: string | null) => void;\n}\n\n/**\n * Компонент текстового поля ввода с поддержкой иконок и дополнительных действий.\n */\nexport const TextInput = React.forwardRef<HTMLInputElement, TextInputProps>(\n\t(\n\t\t{\n\t\t\tstartIcon,\n\t\t\tendIcon,\n\t\t\tshowClearIcon,\n\t\t\tshowCopyIcon,\n\t\t\tvalue,\n\t\t\tdefaultValue,\n\t\t\tonChange,\n\t\t\treadOnly,\n\t\t\tdisabled,\n\t\t\terror,\n\t\t\tclassName,\n\t\t\t...props\n\t\t},\n\t\tref\n\t) => {\n\t\tconst styles = textInputStyles();\n\n\t\tconst inputActions = useInputWithActions({\n\t\t\tvalue,\n\t\t\tdefaultValue,\n\t\t\tonChange,\n\t\t\treadOnly,\n\t\t\tdisabled,\n\t\t\tshowClearIcon,\n\t\t\tshowCopyIcon\n\t\t});\n\n\t\tconst mergedRef = useMergeRefs(ref, inputActions.inputRef);\n\n\t\treturn (\n\t\t\t<InputGroup className={styles.base({ className })}>\n\t\t\t\t{startIcon && <InputGroupText className={styles.startIcon()}>{startIcon}</InputGroupText>}\n\n\t\t\t\t<InputGroupInput\n\t\t\t\t\tref={mergedRef}\n\t\t\t\t\tvalue={value}\n\t\t\t\t\tdefaultValue={defaultValue}\n\t\t\t\t\tonChange={inputActions.handleChange}\n\t\t\t\t\treadOnly={readOnly}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\terror={error}\n\t\t\t\t\tclassName={styles.input({ hasStartIcon: !!startIcon })}\n\t\t\t\t\t{...props}\n\t\t\t\t/>\n\n\t\t\t\t{inputActions.shouldShowClearIcon && (\n\t\t\t\t\t<InputGroupButton\n\t\t\t\t\t\ticon={CircleX}\n\t\t\t\t\t\tonClick={inputActions.handleClear}\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={styles.action()}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t{inputActions.shouldShowCopyIcon && (\n\t\t\t\t\t<InputGroupButton\n\t\t\t\t\t\ticon={inputActions.hasCopied ? Check : Copy}\n\t\t\t\t\t\tonClick={inputActions.handleCopy}\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={styles.action()}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t{endIcon && <InputGroupText className={styles.endIcon()}>{endIcon}</InputGroupText>}\n\t\t\t</InputGroup>\n\t\t);\n\t}\n);\n\nTextInput.displayName = \"TextInput\";\n\nexport default TextInput;\n"],"names":["Copy","createLucideIcon","useControlledValue","value","defaultValue","onChange","uncontrolledValue","setUncontrolledValue","useState","inputRef","useRef","useEffect","input","handleInput","getCurrentValue","useCallback","handleChange","e","useCopyAction","hasCopied","setHasCopied","timeout","handleCopy","useAutofill","isAutofilled","setIsAutofilled","checkAutofill","element","updateAutofillState","autofilled","intervalCounter","intervalTime","intervalTimeLimit","interval","useInputWithActions","readOnly","disabled","showClearIcon","showCopyIcon","controlledValue","copyAction","isEditable","useMemo","handleClear","handleCopyValue","shouldShowClearIcon","shouldShowCopyIcon","textInputStyles","tv","TextInput","React","startIcon","endIcon","error","className","props","ref","styles","inputActions","mergedRef","useMergeRefs","jsxs","InputGroup","InputGroupText","jsx","InputGroupInput","InputGroupButton","CircleX","Check"],"mappings":";;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASK,MAACA,IAAOC,EAAiB,QAAQ;AAAA,EACpC,CAAC,QAAQ,EAAE,OAAO,MAAM,QAAQ,MAAM,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,UAAU;AAAA,EACvF,CAAC,QAAQ,EAAE,GAAG,2DAA2D,KAAK,SAAU,CAAA;AAC1F,CAAC;ACPe,SAAAC,EACfC,GACAC,GACAC,GACC;AACK,QAAA,CAACC,GAAmBC,CAAoB,IAAIC;AAAA,IACjD,OAAOJ,KAAiB,WAAWA,IAAe,OAAOA,KAAgB,EAAE;AAAA,EAC5E,GACMK,IAAWC,EAAyB,IAAI;AAG9C,EAAAC,EAAU,MAAM;AACf,QAAIR,MAAU,OAAW;AAEzB,UAAMS,IAAQH,EAAS;AACvB,QAAI,CAACG,EAAO;AAEZ,UAAMC,IAAc,MAAM;AACzB,MAAAN,EAAqBK,EAAM,KAAK;AAAA,IACjC;AAEM,WAAAA,EAAA,iBAAiB,SAASC,CAAW,GACpC,MAAMD,EAAM,oBAAoB,SAASC,CAAW;AAAA,EAAA,GACzD,CAACV,GAAOM,CAAQ,CAAC;AAEd,QAAAK,IAAkBC,EAAY,MAC/BZ,MAAU,SAAkB,OAAOA,CAAK,IACrCG,GACL,CAACH,GAAOG,CAAiB,CAAC,GAEvBU,IAAeD;AAAA,IACpB,CAACE,MAA2C;AAChC,MAAAZ,IAAAY,EAAE,OAAO,KAAK;AAAA,IAC1B;AAAA,IACA,CAACZ,CAAQ;AAAA,EACV;AAEO,SAAA;AAAA,IACN,UAAAI;AAAA,IACA,iBAAAK;AAAA,IACA,cAAAE;AAAA,IACA,cAAcF,EAAgB;AAAA,EAC/B;AACD;AC3CO,SAASI,IAAgB;AAC/B,QAAM,CAACC,GAAWC,CAAY,IAAIZ,EAAS,EAAK;AAGhD,EAAAG,EAAU,MAAM;AACf,QAAI,CAACQ,EAAW;AACV,UAAAE,IAAU,WAAW,MAAM;AAChC,MAAAD,EAAa,EAAK;AAAA,OAChB,GAAI;AACA,WAAA,MAAM,aAAaC,CAAO;AAAA,EAAA,GAC/B,CAACF,CAAS,CAAC;AAER,QAAAG,IAAaP,EAAY,CAACZ,MAAkB;AACjD,IAAIA,MACO,UAAA,UAAU,UAAUA,CAAK,GACnCiB,EAAa,EAAI;AAAA,EAEnB,GAAG,EAAE;AAEE,SAAA;AAAA,IACN,WAAAD;AAAA,IACA,YAAAG;AAAA,EACD;AACD;ACvBO,SAASC,IAAc;AAC7B,QAAM,CAACC,GAAcC,CAAe,IAAIjB,EAAS,EAAK,GAChDC,IAAWC,EAAyB,IAAI;AAE9C,SAAAC,EAAU,MAAM;AACf,UAAMC,IAAQH,EAAS;AACvB,QAAI,CAACG,EAAO;AAEN,UAAAc,IAAgB,CAACC,MAA8B;AAChD,UAAA;AACI,eAAAA,EAAQ,QAAQ,mBAAmB;AAAA,MAAA,QACnC;AACA,eAAA;AAAA,MAAA;AAAA,IAET,GAEMC,IAAsB,MAAM;AAC3B,YAAAC,IAAaH,EAAcd,CAAK;AACtC,MAAAa,EAAgBI,CAAU;AAAA,IAC3B;AAEM,IAAAjB,EAAA,iBAAiB,SAASgB,CAAmB;AAEnD,QAAIE,IAAkB;AACtB,UAAMC,IAAe,IAEfC,IAAoB,KAEpBC,IAAW,YAAY,MAAM;AAElC,UADmBH,KAAAC,GACfD,IAAkBE,GAAmB;AACxC,sBAAcC,CAAQ;AACtB;AAAA,MAAA;AAGG,MAAAP,EAAcd,CAAK,MACtBa,EAAgB,EAAI,GACpB,cAAcQ,CAAQ;AAAA,OAErBF,CAAY;AAEK,WAAAH,EAAA,GAEb,MAAM;AACZ,oBAAcK,CAAQ,GAChBrB,EAAA,oBAAoB,SAASgB,CAAmB;AAAA,IACvD;AAAA,EACD,GAAG,EAAE,GAEE;AAAA,IACN,cAAAJ;AAAA,IACA,UAAAf;AAAA,EACD;AACD;ACjCO,SAASyB,EAAoB;AAAA,EACnC,OAAA/B;AAAA,EACA,cAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAA8B;AAAA,EACA,UAAAC;AAAA,EACA,eAAAC,IAAgB;AAAA,EAChB,cAAAC,IAAe;AAChB,GAA+B;AAC9B,QAAMC,IAAkBrC,EAAmBC,GAAOC,GAAcC,CAAQ,GAClEmC,IAAatB,EAAc,GAC3B,EAAE,cAAAM,EAAa,IAAID,EAAY,GAE/BkB,IAAaC,EAAQ,MACnB,CAACP,KAAY,CAACC,GACnB,CAACD,GAAUC,CAAQ,CAAC,GAEjBO,IAAc5B,EAAY,MAAM;AACrC,IAAIZ,MAAU,SAEbE,IAAW,EAAE,IAGTkC,EAAgB,SAAS,YACZA,EAAA,SAAS,QAAQ,QAAQ,IACzBA,EAAA,SAAS,QAAQ,cAAc,IAAI,MAAM,SAAS,EAAE,SAAS,GAAK,CAAC,CAAC;AAAA,KAGpF,CAAClC,GAAUF,GAAOoC,EAAgB,QAAQ,CAAC,GAExCK,IAAkB7B,EAAY,MAAM;AACzC,IAAAyB,EAAW,WAAW,OAAOD,EAAgB,YAAY,CAAC;AAAA,KACxD,CAACC,EAAW,YAAYD,EAAgB,YAAY,CAAC,GAElDM,IAAsBR,KAAiBI,KAAcF,EAAgB,cACrEO,IAAqBR,KAAgBC,EAAgB;AAEpD,SAAA;AAAA;AAAA,IAEN,cAAcA,EAAgB;AAAA,IAC9B,UAAUA,EAAgB;AAAA,IAC1B,YAAAE;AAAA;AAAA,IAGA,cAAcF,EAAgB;AAAA,IAC9B,aAAAI;AAAA,IACA,YAAYC;AAAA;AAAA,IAGZ,WAAWJ,EAAW;AAAA;AAAA,IAGtB,cAAAhB;AAAA;AAAA,IAGA,qBAAAqB;AAAA,IACA,oBAAAC;AAAA,EACD;AACD;AC3EA,MAAMC,IAAkBC,EAAG;AAAA,EAC1B,MAAM;AAAA,EACN,OAAO;AAAA,IACN,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,SAAS;AAAA,IACT,OAAO;AAAA,EACR;AAAA,EACA,UAAU;AAAA,IACT,cAAc,EAAE,MAAM,EAAE,OAAO,OAAS,EAAA;AAAA,EAAA;AAE1C,CAAC,GAoBYC,IAAYC,EAAM;AAAA,EAC9B,CACC;AAAA,IACC,WAAAC;AAAA,IACA,SAAAC;AAAA,IACA,eAAAf;AAAA,IACA,cAAAC;AAAA,IACA,OAAAnC;AAAA,IACA,cAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAA8B;AAAA,IACA,UAAAC;AAAA,IACA,OAAAiB;AAAA,IACA,WAAAC;AAAA,IACA,GAAGC;AAAA,KAEJC,MACI;AACJ,UAAMC,IAASV,EAAgB,GAEzBW,IAAexB,EAAoB;AAAA,MACxC,OAAA/B;AAAA,MACA,cAAAC;AAAA,MACA,UAAAC;AAAA,MACA,UAAA8B;AAAA,MACA,UAAAC;AAAA,MACA,eAAAC;AAAA,MACA,cAAAC;AAAA,IAAA,CACA,GAEKqB,IAAYC,EAAaJ,GAAKE,EAAa,QAAQ;AAGxD,WAAA,gBAAAG,EAACC,KAAW,WAAWL,EAAO,KAAK,EAAE,WAAAH,GAAW,GAC9C,UAAA;AAAA,MAAAH,uBAAcY,GAAe,EAAA,WAAWN,EAAO,aAAc,UAAUN,GAAA;AAAA,MAExE,gBAAAa;AAAA,QAACC;AAAA,QAAA;AAAA,UACA,KAAKN;AAAA,UACL,OAAAxD;AAAA,UACA,cAAAC;AAAA,UACA,UAAUsD,EAAa;AAAA,UACvB,UAAAvB;AAAA,UACA,UAAAC;AAAA,UACA,OAAAiB;AAAA,UACA,WAAWI,EAAO,MAAM,EAAE,cAAc,CAAC,CAACN,GAAW;AAAA,UACpD,GAAGI;AAAA,QAAA;AAAA,MACL;AAAA,MAECG,EAAa,uBACb,gBAAAM;AAAA,QAACE;AAAA,QAAA;AAAA,UACA,MAAMC;AAAA,UACN,SAAST,EAAa;AAAA,UACtB,MAAK;AAAA,UACL,WAAWD,EAAO,OAAO;AAAA,QAAA;AAAA,MAC1B;AAAA,MAGAC,EAAa,sBACb,gBAAAM;AAAA,QAACE;AAAA,QAAA;AAAA,UACA,MAAMR,EAAa,YAAYU,IAAQpE;AAAA,UACvC,SAAS0D,EAAa;AAAA,UACtB,MAAK;AAAA,UACL,WAAWD,EAAO,OAAO;AAAA,QAAA;AAAA,MAC1B;AAAA,MAGAL,KAAY,gBAAAY,EAAAD,GAAA,EAAe,WAAWN,EAAO,QAAA,GAAY,UAAQL,EAAA,CAAA;AAAA,IAAA,GACnE;AAAA,EAAA;AAGH;AAEAH,EAAU,cAAc;","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextOverflowTooltip-DlUgic5y.js","sources":["../src/lib/utils/dom.ts","../src/components/overflow-tooltip/useOverflowTooltip.ts","../src/components/overflow-tooltip/OverflowTooltip.tsx","../src/components/overflow-tooltip/TextOverflowTooltip.tsx"],"sourcesContent":["/**\
|
|
1
|
+
{"version":3,"file":"TextOverflowTooltip-DlUgic5y.js","sources":["../src/lib/utils/dom.ts","../src/components/overflow-tooltip/useOverflowTooltip.ts","../src/components/overflow-tooltip/OverflowTooltip.tsx","../src/components/overflow-tooltip/TextOverflowTooltip.tsx"],"sourcesContent":["/**\n * Проверяет, переполнен ли элемент (дочерние элементы выходят за пределы родительского элемента)\n * @param element - HTML элемент для проверки\n * @returns true, если элемент переполнен по ширине или высоте\n */\nexport const isElementOverflowing = (element: HTMLElement): boolean => {\n\treturn element.scrollWidth > element.offsetWidth || element.scrollHeight > element.offsetHeight;\n};\n","import { useCallback, useRef, useState } from \"react\";\nimport { isElementOverflowing } from \"../../lib/utils/dom\";\n\nexport const useOverflowTooltip = <T extends HTMLElement>() => {\n\tconst [open, setOpen] = useState(false);\n\tconst ref = useRef<T>(null);\n\n\tconst onOpenChange = useCallback((newOpen: boolean) => {\n\t\tif (newOpen === false) {\n\t\t\tsetOpen(false);\n\t\t\treturn;\n\t\t}\n\t\tif (!ref.current) return;\n\t\tif (isElementOverflowing(ref.current)) {\n\t\t\tsetOpen(true);\n\t\t}\n\t}, []);\n\n\treturn { open, onOpenChange, ref };\n};\n","import { cn } from \"@/lib/utils\";\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from \"../tooltip\";\nimport { useOverflowTooltip } from \"./useOverflowTooltip\";\nimport React from \"react\";\n\ntype OverflowTooltipProps = {\n\tchildren: React.ReactNode;\n\t/**\n\t * HTML-элемент для обертки содержимого.\n\t * Используется для соблюдения правильной HTML-семантики.\n\t * Например:\n\t * - span (по умолчанию) для текста и инлайн-элементов\n\t * - div для блочного содержимого и сложных структур\n\t * @default span\n\t */\n\ttriggerTag?: React.ElementType;\n\t/**\n\t * Классы для обработки переполненного содержимого.\n\t * Например: \"truncate\", \"line-clamp-3\" и т.д.\n\t */\n\tclassName?: string;\n\t/**\n\t * Классы для содержимого тултипа.\n\t * С помощью них можно управлять стилями тултипа, например шириной, переносом текста и т.д.\n\t */\n\ttooltipClassName?: string;\n\tfocus?: \"high\";\n};\n\nexport const OverflowTooltip = ({ children, className, focus, triggerTag, tooltipClassName }: OverflowTooltipProps) => {\n\tconst { open, onOpenChange, ref } = useOverflowTooltip<HTMLDivElement>();\n\tconst TriggerTag = triggerTag || \"span\";\n\treturn (\n\t\t<TooltipProvider>\n\t\t\t<Tooltip open={open} onOpenChange={onOpenChange}>\n\t\t\t\t<TooltipTrigger asChild>\n\t\t\t\t\t<TriggerTag ref={ref} className={cn(className)}>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</TriggerTag>\n\t\t\t\t</TooltipTrigger>\n\t\t\t\t<TooltipContent focus={focus} className={cn(\"max-w-xs\", tooltipClassName)}>\n\t\t\t\t\t{children}\n\t\t\t\t</TooltipContent>\n\t\t\t</Tooltip>\n\t\t</TooltipProvider>\n\t);\n};\n\nOverflowTooltip.displayName = \"OverflowTooltip\";\n","import { cn } from \"@/lib/utils\";\nimport React from \"react\";\nimport { OverflowTooltip } from \"./OverflowTooltip\";\n\ntype TextOverflowTooltipProps = {\n\tchildren?: React.ReactNode;\n\tclassName?: string;\n\ttooltipClassName?: string;\n};\n\nexport const TextOverflowTooltip = ({ children, className, tooltipClassName }: TextOverflowTooltipProps) => {\n\treturn (\n\t\t<OverflowTooltip\n\t\t\tclassName={cn(\"inline-block max-w-full truncate\", className)}\n\t\t\ttooltipClassName={tooltipClassName}\n\t\t>\n\t\t\t{children}\n\t\t</OverflowTooltip>\n\t);\n};\n\nTextOverflowTooltip.displayName = \"TextOverflowTooltip\";\n"],"names":["isElementOverflowing","element","useOverflowTooltip","open","setOpen","useState","ref","useRef","onOpenChange","useCallback","newOpen","OverflowTooltip","children","className","focus","triggerTag","tooltipClassName","jsx","TooltipProvider","jsxs","Tooltip","TooltipTrigger","cn","TooltipContent","TextOverflowTooltip"],"mappings":";;;;AAKa,MAAAA,IAAuB,CAACC,MAC7BA,EAAQ,cAAcA,EAAQ,eAAeA,EAAQ,eAAeA,EAAQ,cCHvEC,IAAqB,MAA6B;AAC9D,QAAM,CAACC,GAAMC,CAAO,IAAIC,EAAS,EAAK,GAChCC,IAAMC,EAAU,IAAI,GAEpBC,IAAeC,EAAY,CAACC,MAAqB;AACtD,QAAIA,MAAY,IAAO;AACtB,MAAAN,EAAQ,EAAK;AACb;AAAA,IAAA;AAEG,IAACE,EAAI,WACLN,EAAqBM,EAAI,OAAO,KACnCF,EAAQ,EAAI;AAAA,EAEd,GAAG,EAAE;AAEE,SAAA,EAAE,MAAAD,GAAM,cAAAK,GAAc,KAAAF,EAAI;AAClC,GCUaK,IAAkB,CAAC,EAAE,UAAAC,GAAU,WAAAC,GAAW,OAAAC,GAAO,YAAAC,GAAY,kBAAAC,QAA6C;AACtH,QAAM,EAAE,MAAAb,GAAM,cAAAK,GAAc,KAAAF,EAAA,IAAQJ,EAAmC;AAEvE,SACE,gBAAAe,EAAAC,GAAA,EACA,UAAC,gBAAAC,EAAAC,GAAA,EAAQ,MAAAjB,GAAY,cAAAK,GACpB,UAAA;AAAA,IAAC,gBAAAS,EAAAI,GAAA,EAAe,SAAO,IACtB,UAAC,gBAAAJ,EALcF,KAAc,QAK5B,EAAW,KAAAT,GAAU,WAAWgB,EAAGT,CAAS,GAC3C,UAAAD,EACF,CAAA,GACD;AAAA,IACA,gBAAAK,EAACM,KAAe,OAAAT,GAAc,WAAWQ,EAAG,YAAYN,CAAgB,GACtE,UAAAJ,EACF,CAAA;AAAA,EAAA,EAAA,CACD,EACD,CAAA;AAEF;AAEAD,EAAgB,cAAc;ACtCvB,MAAMa,IAAsB,CAAC,EAAE,UAAAZ,GAAU,WAAAC,GAAW,kBAAAG,QAEzD,gBAAAC;AAAA,EAACN;AAAA,EAAA;AAAA,IACA,WAAWW,EAAG,oCAAoCT,CAAS;AAAA,IAC3D,kBAAAG;AAAA,IAEC,UAAAJ;AAAA,EAAA;AACF;AAIFY,EAAoB,cAAc;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toggle-v_HT3Gm2.js","sources":["../src/components/toggle/Toggle.tsx"],"sourcesContent":["import * as React from \"react\";\
|
|
1
|
+
{"version":3,"file":"Toggle-v_HT3Gm2.js","sources":["../src/components/toggle/Toggle.tsx"],"sourcesContent":["import * as React from \"react\";\nimport * as TogglePrimitive from \"@radix-ui/react-toggle\";\nimport { cn } from \"@/lib/utils\";\nimport { tv } from \"tailwind-variants\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nexport interface ToggleVariants {\n\tvariant?: \"default\" | \"outline\" | \"ghost\";\n\tsize?: \"2xs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n}\n\nconst toggleStyles = tv({\n\tbase: [\n\t\t\"inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium leading-none text-primary-fg transition-colors\",\n\t\t\"hover:bg-secondary-bg-hover hover:text-muted\",\n\t\t\"focus-visible:border-secondary-border focus-visible:shadow-focus focus-visible:outline-none\",\n\t\t\"disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50\",\n\t\t\"data-[state=on]:bg-primary-bg-hover data-[state=on]:text-primary-fg\",\n\t\t\"[&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\"\n\t],\n\tvariants: {\n\t\tvariant: {\n\t\t\tdefault: \"bg-transparent\",\n\t\t\toutline:\n\t\t\t\t\"border border-secondary-border bg-secondary-bg shadow-soft-sm data-[state=on]:border-primary-border\",\n\t\t\tghost: \"bg-transparent hover:text-primary-fg hover:opacity-65 data-[state=on]:bg-secondary-bg-hover\"\n\t\t},\n\t\tsize: {\n\t\t\t\"2xs\": \"h-6 min-w-6 gap-1 rounded-sm p-1\",\n\t\t\txs: \"h-7 min-w-7 gap-1.5 rounded-sm p-1.5\",\n\t\t\tsm: \"h-8 min-w-8 rounded-sm p-2\",\n\t\t\tmd: \"h-9 min-w-9 p-2.5\",\n\t\t\tlg: \"h-10 min-w-10 px-3 py-2\",\n\t\t\txl: \"h-11 min-w-11 px-4 py-3 text-base leading-none [&_svg]:size-5\"\n\t\t}\n\t} satisfies VariantsConfig<ToggleVariants>,\n\tdefaultVariants: {\n\t\tvariant: \"default\",\n\t\tsize: \"md\"\n\t}\n});\n\nconst Toggle = React.forwardRef<\n\tReact.ElementRef<typeof TogglePrimitive.Root>,\n\tReact.ComponentPropsWithoutRef<typeof TogglePrimitive.Root> & ToggleVariants\n>(({ className, variant, size, ...props }, ref) => (\n\t<TogglePrimitive.Root ref={ref} className={cn(toggleStyles({ variant, size, className }))} {...props} />\n));\n\nToggle.displayName = TogglePrimitive.Root.displayName;\n\nexport { Toggle, toggleStyles as toggleVariants };\n"],"names":["toggleStyles","tv","Toggle","React","className","variant","size","props","ref","jsx","TogglePrimitive.Root","cn"],"mappings":";;;;;AAWA,MAAMA,IAAeC,EAAG;AAAA,EACvB,MAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA,UAAU;AAAA,IACT,SAAS;AAAA,MACR,SAAS;AAAA,MACT,SACC;AAAA,MACD,OAAO;AAAA,IACR;AAAA,IACA,MAAM;AAAA,MACL,OAAO;AAAA,MACP,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA;AAAA,EAEN;AAAA,EACA,iBAAiB;AAAA,IAChB,SAAS;AAAA,IACT,MAAM;AAAA,EAAA;AAER,CAAC,GAEKC,IAASC,EAAM,WAGnB,CAAC,EAAE,WAAAC,GAAW,SAAAC,GAAS,MAAAC,GAAM,GAAGC,KAASC,MACzC,gBAAAC,EAAAC,GAAA,EAAqB,KAAAF,GAAU,WAAWG,EAAGX,EAAa,EAAE,SAAAK,GAAS,MAAAC,GAAM,WAAAF,EAAW,CAAA,CAAC,GAAI,GAAGG,GAAO,CACtG;AAEDL,EAAO,cAAcQ,EAAqB;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip-C4rVuWr4.js","sources":["../node_modules/.pnpm/@radix-ui+react-tooltip@1.2_c0a573e5fee67df1b7628ac6f2833e9e/node_modules/@radix-ui/react-tooltip/dist/index.mjs","../src/components/tooltip/useTooltipContext.ts","../src/components/tooltip/Tooltip.tsx"],"sourcesContent":["\"use client\";\n\n// src/tooltip.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createSlottable } from \"@radix-ui/react-slot\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport * as VisuallyHiddenPrimitive from \"@radix-ui/react-visually-hidden\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar [createTooltipContext, createTooltipScope] = createContextScope(\"Tooltip\", [\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar PROVIDER_NAME = \"TooltipProvider\";\nvar DEFAULT_DELAY_DURATION = 700;\nvar TOOLTIP_OPEN = \"tooltip.open\";\nvar [TooltipProviderContextProvider, useTooltipProviderContext] = createTooltipContext(PROVIDER_NAME);\nvar TooltipProvider = (props) => {\n const {\n __scopeTooltip,\n delayDuration = DEFAULT_DELAY_DURATION,\n skipDelayDuration = 300,\n disableHoverableContent = false,\n children\n } = props;\n const isOpenDelayedRef = React.useRef(true);\n const isPointerInTransitRef = React.useRef(false);\n const skipDelayTimerRef = React.useRef(0);\n React.useEffect(() => {\n const skipDelayTimer = skipDelayTimerRef.current;\n return () => window.clearTimeout(skipDelayTimer);\n }, []);\n return /* @__PURE__ */ jsx(\n TooltipProviderContextProvider,\n {\n scope: __scopeTooltip,\n isOpenDelayedRef,\n delayDuration,\n onOpen: React.useCallback(() => {\n window.clearTimeout(skipDelayTimerRef.current);\n isOpenDelayedRef.current = false;\n }, []),\n onClose: React.useCallback(() => {\n window.clearTimeout(skipDelayTimerRef.current);\n skipDelayTimerRef.current = window.setTimeout(\n () => isOpenDelayedRef.current = true,\n skipDelayDuration\n );\n }, [skipDelayDuration]),\n isPointerInTransitRef,\n onPointerInTransitChange: React.useCallback((inTransit) => {\n isPointerInTransitRef.current = inTransit;\n }, []),\n disableHoverableContent,\n children\n }\n );\n};\nTooltipProvider.displayName = PROVIDER_NAME;\nvar TOOLTIP_NAME = \"Tooltip\";\nvar [TooltipContextProvider, useTooltipContext] = createTooltipContext(TOOLTIP_NAME);\nvar Tooltip = (props) => {\n const {\n __scopeTooltip,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n disableHoverableContent: disableHoverableContentProp,\n delayDuration: delayDurationProp\n } = props;\n const providerContext = useTooltipProviderContext(TOOLTIP_NAME, props.__scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const [trigger, setTrigger] = React.useState(null);\n const contentId = useId();\n const openTimerRef = React.useRef(0);\n const disableHoverableContent = disableHoverableContentProp ?? providerContext.disableHoverableContent;\n const delayDuration = delayDurationProp ?? providerContext.delayDuration;\n const wasOpenDelayedRef = React.useRef(false);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: (open2) => {\n if (open2) {\n providerContext.onOpen();\n document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));\n } else {\n providerContext.onClose();\n }\n onOpenChange?.(open2);\n },\n caller: TOOLTIP_NAME\n });\n const stateAttribute = React.useMemo(() => {\n return open ? wasOpenDelayedRef.current ? \"delayed-open\" : \"instant-open\" : \"closed\";\n }, [open]);\n const handleOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n wasOpenDelayedRef.current = false;\n setOpen(true);\n }, [setOpen]);\n const handleClose = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n setOpen(false);\n }, [setOpen]);\n const handleDelayedOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = window.setTimeout(() => {\n wasOpenDelayedRef.current = true;\n setOpen(true);\n openTimerRef.current = 0;\n }, delayDuration);\n }, [delayDuration, setOpen]);\n React.useEffect(() => {\n return () => {\n if (openTimerRef.current) {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n };\n }, []);\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n TooltipContextProvider,\n {\n scope: __scopeTooltip,\n contentId,\n open,\n stateAttribute,\n trigger,\n onTriggerChange: setTrigger,\n onTriggerEnter: React.useCallback(() => {\n if (providerContext.isOpenDelayedRef.current) handleDelayedOpen();\n else handleOpen();\n }, [providerContext.isOpenDelayedRef, handleDelayedOpen, handleOpen]),\n onTriggerLeave: React.useCallback(() => {\n if (disableHoverableContent) {\n handleClose();\n } else {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n }, [handleClose, disableHoverableContent]),\n onOpen: handleOpen,\n onClose: handleClose,\n disableHoverableContent,\n children\n }\n ) });\n};\nTooltip.displayName = TOOLTIP_NAME;\nvar TRIGGER_NAME = \"TooltipTrigger\";\nvar TooltipTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTooltip, ...triggerProps } = props;\n const context = useTooltipContext(TRIGGER_NAME, __scopeTooltip);\n const providerContext = useTooltipProviderContext(TRIGGER_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, context.onTriggerChange);\n const isPointerDownRef = React.useRef(false);\n const hasPointerMoveOpenedRef = React.useRef(false);\n const handlePointerUp = React.useCallback(() => isPointerDownRef.current = false, []);\n React.useEffect(() => {\n return () => document.removeEventListener(\"pointerup\", handlePointerUp);\n }, [handlePointerUp]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n \"aria-describedby\": context.open ? context.contentId : void 0,\n \"data-state\": context.stateAttribute,\n ...triggerProps,\n ref: composedRefs,\n onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {\n if (event.pointerType === \"touch\") return;\n if (!hasPointerMoveOpenedRef.current && !providerContext.isPointerInTransitRef.current) {\n context.onTriggerEnter();\n hasPointerMoveOpenedRef.current = true;\n }\n }),\n onPointerLeave: composeEventHandlers(props.onPointerLeave, () => {\n context.onTriggerLeave();\n hasPointerMoveOpenedRef.current = false;\n }),\n onPointerDown: composeEventHandlers(props.onPointerDown, () => {\n if (context.open) {\n context.onClose();\n }\n isPointerDownRef.current = true;\n document.addEventListener(\"pointerup\", handlePointerUp, { once: true });\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n if (!isPointerDownRef.current) context.onOpen();\n }),\n onBlur: composeEventHandlers(props.onBlur, context.onClose),\n onClick: composeEventHandlers(props.onClick, context.onClose)\n }\n ) });\n }\n);\nTooltipTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"TooltipPortal\";\nvar [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar TooltipPortal = (props) => {\n const { __scopeTooltip, forceMount, children, container } = props;\n const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeTooltip, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nTooltipPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"TooltipContent\";\nvar TooltipContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);\n const { forceMount = portalContext.forceMount, side = \"top\", ...contentProps } = props;\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.disableHoverableContent ? /* @__PURE__ */ jsx(TooltipContentImpl, { side, ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(TooltipContentHoverable, { side, ...contentProps, ref: forwardedRef }) });\n }\n);\nvar TooltipContentHoverable = React.forwardRef((props, forwardedRef) => {\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n const providerContext = useTooltipProviderContext(CONTENT_NAME, props.__scopeTooltip);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [pointerGraceArea, setPointerGraceArea] = React.useState(null);\n const { trigger, onClose } = context;\n const content = ref.current;\n const { onPointerInTransitChange } = providerContext;\n const handleRemoveGraceArea = React.useCallback(() => {\n setPointerGraceArea(null);\n onPointerInTransitChange(false);\n }, [onPointerInTransitChange]);\n const handleCreateGraceArea = React.useCallback(\n (event, hoverTarget) => {\n const currentTarget = event.currentTarget;\n const exitPoint = { x: event.clientX, y: event.clientY };\n const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());\n const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide);\n const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());\n const graceArea = getHull([...paddedExitPoints, ...hoverTargetPoints]);\n setPointerGraceArea(graceArea);\n onPointerInTransitChange(true);\n },\n [onPointerInTransitChange]\n );\n React.useEffect(() => {\n return () => handleRemoveGraceArea();\n }, [handleRemoveGraceArea]);\n React.useEffect(() => {\n if (trigger && content) {\n const handleTriggerLeave = (event) => handleCreateGraceArea(event, content);\n const handleContentLeave = (event) => handleCreateGraceArea(event, trigger);\n trigger.addEventListener(\"pointerleave\", handleTriggerLeave);\n content.addEventListener(\"pointerleave\", handleContentLeave);\n return () => {\n trigger.removeEventListener(\"pointerleave\", handleTriggerLeave);\n content.removeEventListener(\"pointerleave\", handleContentLeave);\n };\n }\n }, [trigger, content, handleCreateGraceArea, handleRemoveGraceArea]);\n React.useEffect(() => {\n if (pointerGraceArea) {\n const handleTrackPointerGrace = (event) => {\n const target = event.target;\n const pointerPosition = { x: event.clientX, y: event.clientY };\n const hasEnteredTarget = trigger?.contains(target) || content?.contains(target);\n const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea);\n if (hasEnteredTarget) {\n handleRemoveGraceArea();\n } else if (isPointerOutsideGraceArea) {\n handleRemoveGraceArea();\n onClose();\n }\n };\n document.addEventListener(\"pointermove\", handleTrackPointerGrace);\n return () => document.removeEventListener(\"pointermove\", handleTrackPointerGrace);\n }\n }, [trigger, content, pointerGraceArea, onClose, handleRemoveGraceArea]);\n return /* @__PURE__ */ jsx(TooltipContentImpl, { ...props, ref: composedRefs });\n});\nvar [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] = createTooltipContext(TOOLTIP_NAME, { isInside: false });\nvar Slottable = createSlottable(\"TooltipContent\");\nvar TooltipContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeTooltip,\n children,\n \"aria-label\": ariaLabel,\n onEscapeKeyDown,\n onPointerDownOutside,\n ...contentProps\n } = props;\n const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const { onClose } = context;\n React.useEffect(() => {\n document.addEventListener(TOOLTIP_OPEN, onClose);\n return () => document.removeEventListener(TOOLTIP_OPEN, onClose);\n }, [onClose]);\n React.useEffect(() => {\n if (context.trigger) {\n const handleScroll = (event) => {\n const target = event.target;\n if (target?.contains(context.trigger)) onClose();\n };\n window.addEventListener(\"scroll\", handleScroll, { capture: true });\n return () => window.removeEventListener(\"scroll\", handleScroll, { capture: true });\n }\n }, [context.trigger, onClose]);\n return /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents: false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event) => event.preventDefault(),\n onDismiss: onClose,\n children: /* @__PURE__ */ jsxs(\n PopperPrimitive.Content,\n {\n \"data-state\": context.stateAttribute,\n ...popperScope,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...contentProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-tooltip-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-tooltip-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-tooltip-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-tooltip-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-tooltip-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n },\n children: [\n /* @__PURE__ */ jsx(Slottable, { children }),\n /* @__PURE__ */ jsx(VisuallyHiddenContentContextProvider, { scope: __scopeTooltip, isInside: true, children: /* @__PURE__ */ jsx(VisuallyHiddenPrimitive.Root, { id: context.contentId, role: \"tooltip\", children: ariaLabel || children }) })\n ]\n }\n )\n }\n );\n }\n);\nTooltipContent.displayName = CONTENT_NAME;\nvar ARROW_NAME = \"TooltipArrow\";\nvar TooltipArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTooltip, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeTooltip);\n const visuallyHiddenContentContext = useVisuallyHiddenContentContext(\n ARROW_NAME,\n __scopeTooltip\n );\n return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nTooltipArrow.displayName = ARROW_NAME;\nfunction getExitSideFromRect(point, rect) {\n const top = Math.abs(rect.top - point.y);\n const bottom = Math.abs(rect.bottom - point.y);\n const right = Math.abs(rect.right - point.x);\n const left = Math.abs(rect.left - point.x);\n switch (Math.min(top, bottom, right, left)) {\n case left:\n return \"left\";\n case right:\n return \"right\";\n case top:\n return \"top\";\n case bottom:\n return \"bottom\";\n default:\n throw new Error(\"unreachable\");\n }\n}\nfunction getPaddedExitPoints(exitPoint, exitSide, padding = 5) {\n const paddedExitPoints = [];\n switch (exitSide) {\n case \"top\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y + padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case \"bottom\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y - padding }\n );\n break;\n case \"left\":\n paddedExitPoints.push(\n { x: exitPoint.x + padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case \"right\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x - padding, y: exitPoint.y + padding }\n );\n break;\n }\n return paddedExitPoints;\n}\nfunction getPointsFromRect(rect) {\n const { top, right, bottom, left } = rect;\n return [\n { x: left, y: top },\n { x: right, y: top },\n { x: right, y: bottom },\n { x: left, y: bottom }\n ];\n}\nfunction isPointInPolygon(point, polygon) {\n const { x, y } = point;\n let inside = false;\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const ii = polygon[i];\n const jj = polygon[j];\n const xi = ii.x;\n const yi = ii.y;\n const xj = jj.x;\n const yj = jj.y;\n const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) inside = !inside;\n }\n return inside;\n}\nfunction getHull(points) {\n const newPoints = points.slice();\n newPoints.sort((a, b) => {\n if (a.x < b.x) return -1;\n else if (a.x > b.x) return 1;\n else if (a.y < b.y) return -1;\n else if (a.y > b.y) return 1;\n else return 0;\n });\n return getHullPresorted(newPoints);\n}\nfunction getHullPresorted(points) {\n if (points.length <= 1) return points.slice();\n const upperHull = [];\n for (let i = 0; i < points.length; i++) {\n const p = points[i];\n while (upperHull.length >= 2) {\n const q = upperHull[upperHull.length - 1];\n const r = upperHull[upperHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) upperHull.pop();\n else break;\n }\n upperHull.push(p);\n }\n upperHull.pop();\n const lowerHull = [];\n for (let i = points.length - 1; i >= 0; i--) {\n const p = points[i];\n while (lowerHull.length >= 2) {\n const q = lowerHull[lowerHull.length - 1];\n const r = lowerHull[lowerHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) lowerHull.pop();\n else break;\n }\n lowerHull.push(p);\n }\n lowerHull.pop();\n if (upperHull.length === 1 && lowerHull.length === 1 && upperHull[0].x === lowerHull[0].x && upperHull[0].y === lowerHull[0].y) {\n return upperHull;\n } else {\n return upperHull.concat(lowerHull);\n }\n}\nvar Provider = TooltipProvider;\nvar Root3 = Tooltip;\nvar Trigger = TooltipTrigger;\nvar Portal = TooltipPortal;\nvar Content2 = TooltipContent;\nvar Arrow2 = TooltipArrow;\nexport {\n Arrow2 as Arrow,\n Content2 as Content,\n Portal,\n Provider,\n Root3 as Root,\n Tooltip,\n TooltipArrow,\n TooltipContent,\n TooltipPortal,\n TooltipProvider,\n TooltipTrigger,\n Trigger,\n createTooltipScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\";\r\n\r\nexport type TooltipVariants = {\r\n\tfocus?: \"high\";\r\n};\r\n\r\nexport const TooltipContext = React.createContext<TooltipVariants>({});\r\n\r\nexport const useTooltipContext = () => {\r\n\tconst context = React.useContext(TooltipContext);\r\n\treturn context;\r\n};\r\n","import * as React from \"react\";\r\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { Icon, IconProps } from \"../icon/Icon\";\r\nimport { Shortcut } from \"../shortcut\";\r\nimport { usePortalContainer } from \"../portal-container\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\nimport { TooltipContext, TooltipVariants, useTooltipContext } from \"./useTooltipContext\";\r\nimport { Text } from \"@/components/text\";\r\n\r\nconst TooltipProvider = TooltipPrimitive.Provider;\r\n\r\nconst Tooltip = TooltipPrimitive.Root;\r\n\r\nconst TooltipTrigger = TooltipPrimitive.Trigger;\r\n\r\nconst tooltipArrowStyles = tv({\r\n\tslots: {\r\n\t\tfill: \"fill-status-neutral-fg\",\r\n\t\tstroke: \"stroke-primary-border stroke-[0.5px]\",\r\n\t\tsvg: \"rotate-180\"\r\n\t},\r\n\tvariants: {\r\n\t\tfocus: {\r\n\t\t\thigh: {\r\n\t\t\t\tfill: \"fill-alpha-high-20\",\r\n\t\t\t\tstroke: \"stroke-none\"\r\n\t\t\t}\r\n\t\t}\r\n\t} satisfies VariantsConfig<TooltipVariants>\r\n});\r\n\r\ntype TooltipArrowProps = React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Arrow>;\r\n\r\nconst TooltipArrow = React.forwardRef<React.ElementRef<typeof TooltipPrimitive.Arrow>, TooltipArrowProps>(\r\n\t({ width, height, className, ...props }, ref) => {\r\n\t\tconst { focus } = useTooltipContext();\r\n\t\tconst styles = tooltipArrowStyles({ focus });\r\n\r\n\t\treturn (\r\n\t\t\t<TooltipPrimitive.Arrow ref={ref} asChild {...props}>\r\n\t\t\t\t<svg\r\n\t\t\t\t\twidth={width || \"10\"}\r\n\t\t\t\t\theight={height || \"5\"}\r\n\t\t\t\t\tviewBox=\"0 0 10 5\"\r\n\t\t\t\t\tfill=\"none\"\r\n\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\r\n\t\t\t\t\tclassName={styles.svg({ className })}\r\n\t\t\t\t>\r\n\t\t\t\t\t<path d=\"M5.00082 0.248638L10 5.99523L0 6.00001L5.00082 0.248638Z\" className={styles.fill()} />\r\n\t\t\t\t\t<path\r\n\t\t\t\t\t\td=\"M9.57422 5.25L5.37732 0.433047C5.17793 0.204195 4.82228 0.204345 4.62308 0.433365L0.433594 5.25\"\r\n\t\t\t\t\t\tclassName={styles.stroke()}\r\n\t\t\t\t\t\tstrokeLinecap=\"round\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t</svg>\r\n\t\t\t</TooltipPrimitive.Arrow>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nTooltipArrow.displayName = TooltipPrimitive.Arrow.displayName;\r\n\r\nconst tooltipContentStyles = tv({\r\n\tbase: [\r\n\t\t\"z-50 rounded-lg border-[0.5px] px-2 py-1.5 text-xs backdrop-blur animate-in fade-in-0 zoom-in-95\",\r\n\t\t\"border-primary-border bg-alpha-30 text-primary-fg shadow-soft-sm\",\r\n\t\t\"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\r\n\t\t\"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\"\r\n\t],\r\n\tvariants: {\r\n\t\tfocus: {\r\n\t\t\thigh: \"border-0 bg-alpha-high-20 text-inverse-primary-fg shadow-soft-base\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<TooltipVariants>\r\n});\r\n\r\nexport type TooltipContentProps = React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content> &\r\n\tTooltipVariants & {\r\n\t\t/**\r\n\t\t * Контейнер для портала. Если не указан, используется хук usePortalContainer\r\n\t\t * для поиска PortalContainer\r\n\t\t */\r\n\t\tportalContainer?: HTMLElement;\r\n\t};\r\n\r\nconst TooltipContent = React.forwardRef<React.ElementRef<typeof TooltipPrimitive.Content>, TooltipContentProps>(\r\n\t({ className, sideOffset = 8, portalContainer, focus, ...props }, ref) => {\r\n\t\tconst container = usePortalContainer(portalContainer);\r\n\r\n\t\treturn (\r\n\t\t\t<TooltipContext.Provider value={{ focus }}>\r\n\t\t\t\t<TooltipPrimitive.Portal container={container}>\r\n\t\t\t\t\t<TooltipPrimitive.Content\r\n\t\t\t\t\t\tref={ref}\r\n\t\t\t\t\t\tsideOffset={sideOffset}\r\n\t\t\t\t\t\tclassName={tooltipContentStyles({ className, focus })}\r\n\t\t\t\t\t\t{...props}\r\n\t\t\t\t\t/>\r\n\t\t\t\t</TooltipPrimitive.Portal>\r\n\t\t\t</TooltipContext.Provider>\r\n\t\t);\r\n\t}\r\n);\r\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\r\n\r\nconst tooltipTitleStyles = tv({\r\n\tbase: \"text-sm font-medium text-primary-fg\",\r\n\tvariants: {\r\n\t\tfocus: {\r\n\t\t\thigh: \"text-inverse-primary-fg\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<TooltipVariants>\r\n});\r\n\r\ntype TooltipTitleProps = React.HTMLAttributes<HTMLDivElement>;\r\n\r\nconst TooltipTitle = React.forwardRef<HTMLDivElement, TooltipTitleProps>(({ className, children, ...props }, ref) => {\r\n\tconst { focus } = useTooltipContext();\r\n\treturn (\r\n\t\t<div ref={ref} className={tooltipTitleStyles({ className, focus })} {...props}>\r\n\t\t\t{children}\r\n\t\t</div>\r\n\t);\r\n});\r\nTooltipTitle.displayName = \"TooltipTitle\";\r\n\r\nconst tooltipTextStyles = tv({\r\n\tbase: \"\",\r\n\tvariants: {\r\n\t\tfocus: {\r\n\t\t\thigh: \"text-inverse-secondary-fg\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<TooltipVariants>\r\n});\r\n\r\ntype TooltipTextProps = React.HTMLAttributes<HTMLDivElement>;\r\n\r\nconst TooltipText = React.forwardRef<HTMLDivElement, TooltipTextProps>(({ className, children, ...props }, ref) => {\r\n\tconst { focus } = useTooltipContext();\r\n\treturn (\r\n\t\t<Text ref={ref} size=\"xs\" className={tooltipTextStyles({ className, focus })} {...props}>\r\n\t\t\t{children}\r\n\t\t</Text>\r\n\t);\r\n});\r\nTooltipText.displayName = \"TooltipText\";\r\n\r\nconst tooltipIconStyles = tv({\r\n\tbase: \"flex-shrink-0 text-xs text-primary-fg\",\r\n\tvariants: {\r\n\t\tfocus: {\r\n\t\t\thigh: \"text-inverse-primary-fg\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<TooltipVariants>\r\n});\r\n\r\ntype TooltipIconProps = IconProps;\r\n\r\nconst TooltipIcon = React.forwardRef<SVGSVGElement, TooltipIconProps>(({ className, ...props }, ref) => {\r\n\tconst { focus } = useTooltipContext();\r\n\treturn <Icon size=\"lg\" className={tooltipIconStyles({ className, focus })} ref={ref} {...props} />;\r\n});\r\nTooltipIcon.displayName = \"TooltipIcon\";\r\n\r\nconst tooltipShortcutStyles = tv({\r\n\tbase: \"h-auto p-0 text-xs text-muted\",\r\n\tvariants: {\r\n\t\tfocus: {\r\n\t\t\thigh: \"text-inverse-secondary-fg opacity-70\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<TooltipVariants>\r\n});\r\n\r\ntype TooltipShortcutProps = React.HTMLAttributes<HTMLDivElement>;\r\n\r\nconst TooltipShortcut = React.forwardRef<HTMLDivElement, TooltipShortcutProps>(({ className, ...props }, ref) => {\r\n\tconst { focus } = useTooltipContext();\r\n\treturn <Shortcut variant=\"ghost\" className={tooltipShortcutStyles({ className, focus })} ref={ref} {...props} />;\r\n});\r\nTooltipShortcut.displayName = \"TooltipShortcut\";\r\n\r\nexport {\r\n\tTooltip,\r\n\tTooltipTrigger,\r\n\tTooltipContent,\r\n\tTooltipArrow,\r\n\tTooltipProvider,\r\n\tTooltipTitle,\r\n\tTooltipText,\r\n\tTooltipIcon,\r\n\tTooltipShortcut\r\n};\r\n"],"names":["createTooltipContext","createTooltipScope","createContextScope","createPopperScope","usePopperScope","PROVIDER_NAME","DEFAULT_DELAY_DURATION","TOOLTIP_OPEN","TooltipProviderContextProvider","useTooltipProviderContext","TooltipProvider","props","__scopeTooltip","delayDuration","skipDelayDuration","disableHoverableContent","children","isOpenDelayedRef","React","isPointerInTransitRef","skipDelayTimerRef","skipDelayTimer","jsx","inTransit","TOOLTIP_NAME","TooltipContextProvider","useTooltipContext","Tooltip","openProp","defaultOpen","onOpenChange","disableHoverableContentProp","delayDurationProp","providerContext","popperScope","trigger","setTrigger","contentId","useId","openTimerRef","wasOpenDelayedRef","open","setOpen","useControllableState","open2","stateAttribute","handleOpen","handleClose","handleDelayedOpen","PopperPrimitive.Root","TRIGGER_NAME","TooltipTrigger","forwardedRef","triggerProps","context","ref","composedRefs","useComposedRefs","isPointerDownRef","hasPointerMoveOpenedRef","handlePointerUp","PopperPrimitive.Anchor","Primitive","composeEventHandlers","event","PORTAL_NAME","PortalProvider","usePortalContext","TooltipPortal","forceMount","container","Presence","PortalPrimitive","CONTENT_NAME","TooltipContent","portalContext","side","contentProps","TooltipContentImpl","TooltipContentHoverable","pointerGraceArea","setPointerGraceArea","onClose","content","onPointerInTransitChange","handleRemoveGraceArea","handleCreateGraceArea","hoverTarget","currentTarget","exitPoint","exitSide","getExitSideFromRect","paddedExitPoints","getPaddedExitPoints","hoverTargetPoints","getPointsFromRect","graceArea","getHull","handleTriggerLeave","handleContentLeave","handleTrackPointerGrace","target","pointerPosition","hasEnteredTarget","isPointerOutsideGraceArea","isPointInPolygon","VisuallyHiddenContentContextProvider","useVisuallyHiddenContentContext","Slottable","createSlottable","ariaLabel","onEscapeKeyDown","onPointerDownOutside","handleScroll","DismissableLayer","jsxs","PopperPrimitive.Content","VisuallyHiddenPrimitive.Root","ARROW_NAME","TooltipArrow","arrowProps","PopperPrimitive.Arrow","point","rect","top","bottom","right","left","padding","polygon","x","y","inside","j","ii","jj","xi","yi","xj","yj","points","newPoints","a","b","getHullPresorted","upperHull","i","p","q","r","lowerHull","Provider","Root3","Trigger","Portal","Content2","Arrow2","TooltipContext","TooltipPrimitive.Provider","TooltipPrimitive.Root","TooltipPrimitive.Trigger","tooltipArrowStyles","tv","width","height","className","focus","styles","TooltipPrimitive.Arrow","tooltipContentStyles","sideOffset","portalContainer","usePortalContainer","TooltipPrimitive.Portal","TooltipPrimitive.Content","tooltipTitleStyles","TooltipTitle","tooltipTextStyles","TooltipText","Text","tooltipIconStyles","TooltipIcon","Icon","tooltipShortcutStyles","TooltipShortcut","Shortcut"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"Tooltip-C4rVuWr4.js","sources":["../node_modules/.pnpm/@radix-ui+react-tooltip@1.2.8_@types+react-dom@18.3.6_@types+react@18.3.20__@types+reac_c0a573e5fee67df1b7628ac6f2833e9e/node_modules/@radix-ui/react-tooltip/dist/index.mjs","../src/components/tooltip/useTooltipContext.ts","../src/components/tooltip/Tooltip.tsx"],"sourcesContent":["\"use client\";\n\n// src/tooltip.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createSlottable } from \"@radix-ui/react-slot\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport * as VisuallyHiddenPrimitive from \"@radix-ui/react-visually-hidden\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar [createTooltipContext, createTooltipScope] = createContextScope(\"Tooltip\", [\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar PROVIDER_NAME = \"TooltipProvider\";\nvar DEFAULT_DELAY_DURATION = 700;\nvar TOOLTIP_OPEN = \"tooltip.open\";\nvar [TooltipProviderContextProvider, useTooltipProviderContext] = createTooltipContext(PROVIDER_NAME);\nvar TooltipProvider = (props) => {\n const {\n __scopeTooltip,\n delayDuration = DEFAULT_DELAY_DURATION,\n skipDelayDuration = 300,\n disableHoverableContent = false,\n children\n } = props;\n const isOpenDelayedRef = React.useRef(true);\n const isPointerInTransitRef = React.useRef(false);\n const skipDelayTimerRef = React.useRef(0);\n React.useEffect(() => {\n const skipDelayTimer = skipDelayTimerRef.current;\n return () => window.clearTimeout(skipDelayTimer);\n }, []);\n return /* @__PURE__ */ jsx(\n TooltipProviderContextProvider,\n {\n scope: __scopeTooltip,\n isOpenDelayedRef,\n delayDuration,\n onOpen: React.useCallback(() => {\n window.clearTimeout(skipDelayTimerRef.current);\n isOpenDelayedRef.current = false;\n }, []),\n onClose: React.useCallback(() => {\n window.clearTimeout(skipDelayTimerRef.current);\n skipDelayTimerRef.current = window.setTimeout(\n () => isOpenDelayedRef.current = true,\n skipDelayDuration\n );\n }, [skipDelayDuration]),\n isPointerInTransitRef,\n onPointerInTransitChange: React.useCallback((inTransit) => {\n isPointerInTransitRef.current = inTransit;\n }, []),\n disableHoverableContent,\n children\n }\n );\n};\nTooltipProvider.displayName = PROVIDER_NAME;\nvar TOOLTIP_NAME = \"Tooltip\";\nvar [TooltipContextProvider, useTooltipContext] = createTooltipContext(TOOLTIP_NAME);\nvar Tooltip = (props) => {\n const {\n __scopeTooltip,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n disableHoverableContent: disableHoverableContentProp,\n delayDuration: delayDurationProp\n } = props;\n const providerContext = useTooltipProviderContext(TOOLTIP_NAME, props.__scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const [trigger, setTrigger] = React.useState(null);\n const contentId = useId();\n const openTimerRef = React.useRef(0);\n const disableHoverableContent = disableHoverableContentProp ?? providerContext.disableHoverableContent;\n const delayDuration = delayDurationProp ?? providerContext.delayDuration;\n const wasOpenDelayedRef = React.useRef(false);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: (open2) => {\n if (open2) {\n providerContext.onOpen();\n document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));\n } else {\n providerContext.onClose();\n }\n onOpenChange?.(open2);\n },\n caller: TOOLTIP_NAME\n });\n const stateAttribute = React.useMemo(() => {\n return open ? wasOpenDelayedRef.current ? \"delayed-open\" : \"instant-open\" : \"closed\";\n }, [open]);\n const handleOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n wasOpenDelayedRef.current = false;\n setOpen(true);\n }, [setOpen]);\n const handleClose = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n setOpen(false);\n }, [setOpen]);\n const handleDelayedOpen = React.useCallback(() => {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = window.setTimeout(() => {\n wasOpenDelayedRef.current = true;\n setOpen(true);\n openTimerRef.current = 0;\n }, delayDuration);\n }, [delayDuration, setOpen]);\n React.useEffect(() => {\n return () => {\n if (openTimerRef.current) {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n };\n }, []);\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n TooltipContextProvider,\n {\n scope: __scopeTooltip,\n contentId,\n open,\n stateAttribute,\n trigger,\n onTriggerChange: setTrigger,\n onTriggerEnter: React.useCallback(() => {\n if (providerContext.isOpenDelayedRef.current) handleDelayedOpen();\n else handleOpen();\n }, [providerContext.isOpenDelayedRef, handleDelayedOpen, handleOpen]),\n onTriggerLeave: React.useCallback(() => {\n if (disableHoverableContent) {\n handleClose();\n } else {\n window.clearTimeout(openTimerRef.current);\n openTimerRef.current = 0;\n }\n }, [handleClose, disableHoverableContent]),\n onOpen: handleOpen,\n onClose: handleClose,\n disableHoverableContent,\n children\n }\n ) });\n};\nTooltip.displayName = TOOLTIP_NAME;\nvar TRIGGER_NAME = \"TooltipTrigger\";\nvar TooltipTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTooltip, ...triggerProps } = props;\n const context = useTooltipContext(TRIGGER_NAME, __scopeTooltip);\n const providerContext = useTooltipProviderContext(TRIGGER_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref, context.onTriggerChange);\n const isPointerDownRef = React.useRef(false);\n const hasPointerMoveOpenedRef = React.useRef(false);\n const handlePointerUp = React.useCallback(() => isPointerDownRef.current = false, []);\n React.useEffect(() => {\n return () => document.removeEventListener(\"pointerup\", handlePointerUp);\n }, [handlePointerUp]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n \"aria-describedby\": context.open ? context.contentId : void 0,\n \"data-state\": context.stateAttribute,\n ...triggerProps,\n ref: composedRefs,\n onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {\n if (event.pointerType === \"touch\") return;\n if (!hasPointerMoveOpenedRef.current && !providerContext.isPointerInTransitRef.current) {\n context.onTriggerEnter();\n hasPointerMoveOpenedRef.current = true;\n }\n }),\n onPointerLeave: composeEventHandlers(props.onPointerLeave, () => {\n context.onTriggerLeave();\n hasPointerMoveOpenedRef.current = false;\n }),\n onPointerDown: composeEventHandlers(props.onPointerDown, () => {\n if (context.open) {\n context.onClose();\n }\n isPointerDownRef.current = true;\n document.addEventListener(\"pointerup\", handlePointerUp, { once: true });\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n if (!isPointerDownRef.current) context.onOpen();\n }),\n onBlur: composeEventHandlers(props.onBlur, context.onClose),\n onClick: composeEventHandlers(props.onClick, context.onClose)\n }\n ) });\n }\n);\nTooltipTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"TooltipPortal\";\nvar [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar TooltipPortal = (props) => {\n const { __scopeTooltip, forceMount, children, container } = props;\n const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeTooltip, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nTooltipPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"TooltipContent\";\nvar TooltipContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);\n const { forceMount = portalContext.forceMount, side = \"top\", ...contentProps } = props;\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.disableHoverableContent ? /* @__PURE__ */ jsx(TooltipContentImpl, { side, ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(TooltipContentHoverable, { side, ...contentProps, ref: forwardedRef }) });\n }\n);\nvar TooltipContentHoverable = React.forwardRef((props, forwardedRef) => {\n const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n const providerContext = useTooltipProviderContext(CONTENT_NAME, props.__scopeTooltip);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const [pointerGraceArea, setPointerGraceArea] = React.useState(null);\n const { trigger, onClose } = context;\n const content = ref.current;\n const { onPointerInTransitChange } = providerContext;\n const handleRemoveGraceArea = React.useCallback(() => {\n setPointerGraceArea(null);\n onPointerInTransitChange(false);\n }, [onPointerInTransitChange]);\n const handleCreateGraceArea = React.useCallback(\n (event, hoverTarget) => {\n const currentTarget = event.currentTarget;\n const exitPoint = { x: event.clientX, y: event.clientY };\n const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());\n const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide);\n const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());\n const graceArea = getHull([...paddedExitPoints, ...hoverTargetPoints]);\n setPointerGraceArea(graceArea);\n onPointerInTransitChange(true);\n },\n [onPointerInTransitChange]\n );\n React.useEffect(() => {\n return () => handleRemoveGraceArea();\n }, [handleRemoveGraceArea]);\n React.useEffect(() => {\n if (trigger && content) {\n const handleTriggerLeave = (event) => handleCreateGraceArea(event, content);\n const handleContentLeave = (event) => handleCreateGraceArea(event, trigger);\n trigger.addEventListener(\"pointerleave\", handleTriggerLeave);\n content.addEventListener(\"pointerleave\", handleContentLeave);\n return () => {\n trigger.removeEventListener(\"pointerleave\", handleTriggerLeave);\n content.removeEventListener(\"pointerleave\", handleContentLeave);\n };\n }\n }, [trigger, content, handleCreateGraceArea, handleRemoveGraceArea]);\n React.useEffect(() => {\n if (pointerGraceArea) {\n const handleTrackPointerGrace = (event) => {\n const target = event.target;\n const pointerPosition = { x: event.clientX, y: event.clientY };\n const hasEnteredTarget = trigger?.contains(target) || content?.contains(target);\n const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea);\n if (hasEnteredTarget) {\n handleRemoveGraceArea();\n } else if (isPointerOutsideGraceArea) {\n handleRemoveGraceArea();\n onClose();\n }\n };\n document.addEventListener(\"pointermove\", handleTrackPointerGrace);\n return () => document.removeEventListener(\"pointermove\", handleTrackPointerGrace);\n }\n }, [trigger, content, pointerGraceArea, onClose, handleRemoveGraceArea]);\n return /* @__PURE__ */ jsx(TooltipContentImpl, { ...props, ref: composedRefs });\n});\nvar [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] = createTooltipContext(TOOLTIP_NAME, { isInside: false });\nvar Slottable = createSlottable(\"TooltipContent\");\nvar TooltipContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeTooltip,\n children,\n \"aria-label\": ariaLabel,\n onEscapeKeyDown,\n onPointerDownOutside,\n ...contentProps\n } = props;\n const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);\n const popperScope = usePopperScope(__scopeTooltip);\n const { onClose } = context;\n React.useEffect(() => {\n document.addEventListener(TOOLTIP_OPEN, onClose);\n return () => document.removeEventListener(TOOLTIP_OPEN, onClose);\n }, [onClose]);\n React.useEffect(() => {\n if (context.trigger) {\n const handleScroll = (event) => {\n const target = event.target;\n if (target?.contains(context.trigger)) onClose();\n };\n window.addEventListener(\"scroll\", handleScroll, { capture: true });\n return () => window.removeEventListener(\"scroll\", handleScroll, { capture: true });\n }\n }, [context.trigger, onClose]);\n return /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents: false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside: (event) => event.preventDefault(),\n onDismiss: onClose,\n children: /* @__PURE__ */ jsxs(\n PopperPrimitive.Content,\n {\n \"data-state\": context.stateAttribute,\n ...popperScope,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...contentProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-tooltip-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-tooltip-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-tooltip-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-tooltip-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-tooltip-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n },\n children: [\n /* @__PURE__ */ jsx(Slottable, { children }),\n /* @__PURE__ */ jsx(VisuallyHiddenContentContextProvider, { scope: __scopeTooltip, isInside: true, children: /* @__PURE__ */ jsx(VisuallyHiddenPrimitive.Root, { id: context.contentId, role: \"tooltip\", children: ariaLabel || children }) })\n ]\n }\n )\n }\n );\n }\n);\nTooltipContent.displayName = CONTENT_NAME;\nvar ARROW_NAME = \"TooltipArrow\";\nvar TooltipArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTooltip, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopeTooltip);\n const visuallyHiddenContentContext = useVisuallyHiddenContentContext(\n ARROW_NAME,\n __scopeTooltip\n );\n return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nTooltipArrow.displayName = ARROW_NAME;\nfunction getExitSideFromRect(point, rect) {\n const top = Math.abs(rect.top - point.y);\n const bottom = Math.abs(rect.bottom - point.y);\n const right = Math.abs(rect.right - point.x);\n const left = Math.abs(rect.left - point.x);\n switch (Math.min(top, bottom, right, left)) {\n case left:\n return \"left\";\n case right:\n return \"right\";\n case top:\n return \"top\";\n case bottom:\n return \"bottom\";\n default:\n throw new Error(\"unreachable\");\n }\n}\nfunction getPaddedExitPoints(exitPoint, exitSide, padding = 5) {\n const paddedExitPoints = [];\n switch (exitSide) {\n case \"top\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y + padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case \"bottom\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y - padding }\n );\n break;\n case \"left\":\n paddedExitPoints.push(\n { x: exitPoint.x + padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding }\n );\n break;\n case \"right\":\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x - padding, y: exitPoint.y + padding }\n );\n break;\n }\n return paddedExitPoints;\n}\nfunction getPointsFromRect(rect) {\n const { top, right, bottom, left } = rect;\n return [\n { x: left, y: top },\n { x: right, y: top },\n { x: right, y: bottom },\n { x: left, y: bottom }\n ];\n}\nfunction isPointInPolygon(point, polygon) {\n const { x, y } = point;\n let inside = false;\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const ii = polygon[i];\n const jj = polygon[j];\n const xi = ii.x;\n const yi = ii.y;\n const xj = jj.x;\n const yj = jj.y;\n const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) inside = !inside;\n }\n return inside;\n}\nfunction getHull(points) {\n const newPoints = points.slice();\n newPoints.sort((a, b) => {\n if (a.x < b.x) return -1;\n else if (a.x > b.x) return 1;\n else if (a.y < b.y) return -1;\n else if (a.y > b.y) return 1;\n else return 0;\n });\n return getHullPresorted(newPoints);\n}\nfunction getHullPresorted(points) {\n if (points.length <= 1) return points.slice();\n const upperHull = [];\n for (let i = 0; i < points.length; i++) {\n const p = points[i];\n while (upperHull.length >= 2) {\n const q = upperHull[upperHull.length - 1];\n const r = upperHull[upperHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) upperHull.pop();\n else break;\n }\n upperHull.push(p);\n }\n upperHull.pop();\n const lowerHull = [];\n for (let i = points.length - 1; i >= 0; i--) {\n const p = points[i];\n while (lowerHull.length >= 2) {\n const q = lowerHull[lowerHull.length - 1];\n const r = lowerHull[lowerHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) lowerHull.pop();\n else break;\n }\n lowerHull.push(p);\n }\n lowerHull.pop();\n if (upperHull.length === 1 && lowerHull.length === 1 && upperHull[0].x === lowerHull[0].x && upperHull[0].y === lowerHull[0].y) {\n return upperHull;\n } else {\n return upperHull.concat(lowerHull);\n }\n}\nvar Provider = TooltipProvider;\nvar Root3 = Tooltip;\nvar Trigger = TooltipTrigger;\nvar Portal = TooltipPortal;\nvar Content2 = TooltipContent;\nvar Arrow2 = TooltipArrow;\nexport {\n Arrow2 as Arrow,\n Content2 as Content,\n Portal,\n Provider,\n Root3 as Root,\n Tooltip,\n TooltipArrow,\n TooltipContent,\n TooltipPortal,\n TooltipProvider,\n TooltipTrigger,\n Trigger,\n createTooltipScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\";\n\nexport type TooltipVariants = {\n\tfocus?: \"high\";\n};\n\nexport const TooltipContext = React.createContext<TooltipVariants>({});\n\nexport const useTooltipContext = () => {\n\tconst context = React.useContext(TooltipContext);\n\treturn context;\n};\n","import * as React from \"react\";\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport { tv } from \"tailwind-variants\";\nimport { Icon, IconProps } from \"../icon/Icon\";\nimport { Shortcut } from \"../shortcut\";\nimport { usePortalContainer } from \"../portal-container\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\nimport { TooltipContext, TooltipVariants, useTooltipContext } from \"./useTooltipContext\";\nimport { Text } from \"@/components/text\";\n\nconst TooltipProvider = TooltipPrimitive.Provider;\n\nconst Tooltip = TooltipPrimitive.Root;\n\nconst TooltipTrigger = TooltipPrimitive.Trigger;\n\nconst tooltipArrowStyles = tv({\n\tslots: {\n\t\tfill: \"fill-status-neutral-fg\",\n\t\tstroke: \"stroke-primary-border stroke-[0.5px]\",\n\t\tsvg: \"rotate-180\"\n\t},\n\tvariants: {\n\t\tfocus: {\n\t\t\thigh: {\n\t\t\t\tfill: \"fill-alpha-high-20\",\n\t\t\t\tstroke: \"stroke-none\"\n\t\t\t}\n\t\t}\n\t} satisfies VariantsConfig<TooltipVariants>\n});\n\ntype TooltipArrowProps = React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Arrow>;\n\nconst TooltipArrow = React.forwardRef<React.ElementRef<typeof TooltipPrimitive.Arrow>, TooltipArrowProps>(\n\t({ width, height, className, ...props }, ref) => {\n\t\tconst { focus } = useTooltipContext();\n\t\tconst styles = tooltipArrowStyles({ focus });\n\n\t\treturn (\n\t\t\t<TooltipPrimitive.Arrow ref={ref} asChild {...props}>\n\t\t\t\t<svg\n\t\t\t\t\twidth={width || \"10\"}\n\t\t\t\t\theight={height || \"5\"}\n\t\t\t\t\tviewBox=\"0 0 10 5\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\tclassName={styles.svg({ className })}\n\t\t\t\t>\n\t\t\t\t\t<path d=\"M5.00082 0.248638L10 5.99523L0 6.00001L5.00082 0.248638Z\" className={styles.fill()} />\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M9.57422 5.25L5.37732 0.433047C5.17793 0.204195 4.82228 0.204345 4.62308 0.433365L0.433594 5.25\"\n\t\t\t\t\t\tclassName={styles.stroke()}\n\t\t\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\t\t/>\n\t\t\t\t</svg>\n\t\t\t</TooltipPrimitive.Arrow>\n\t\t);\n\t}\n);\n\nTooltipArrow.displayName = TooltipPrimitive.Arrow.displayName;\n\nconst tooltipContentStyles = tv({\n\tbase: [\n\t\t\"z-50 rounded-lg border-[0.5px] px-2 py-1.5 text-xs backdrop-blur animate-in fade-in-0 zoom-in-95\",\n\t\t\"border-primary-border bg-alpha-30 text-primary-fg shadow-soft-sm\",\n\t\t\"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n\t\t\"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\"\n\t],\n\tvariants: {\n\t\tfocus: {\n\t\t\thigh: \"border-0 bg-alpha-high-20 text-inverse-primary-fg shadow-soft-base\"\n\t\t}\n\t} satisfies VariantsConfig<TooltipVariants>\n});\n\nexport type TooltipContentProps = React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content> &\n\tTooltipVariants & {\n\t\t/**\n\t\t * Контейнер для портала. Если не указан, используется хук usePortalContainer\n\t\t * для поиска PortalContainer\n\t\t */\n\t\tportalContainer?: HTMLElement;\n\t};\n\nconst TooltipContent = React.forwardRef<React.ElementRef<typeof TooltipPrimitive.Content>, TooltipContentProps>(\n\t({ className, sideOffset = 8, portalContainer, focus, ...props }, ref) => {\n\t\tconst container = usePortalContainer(portalContainer);\n\n\t\treturn (\n\t\t\t<TooltipContext.Provider value={{ focus }}>\n\t\t\t\t<TooltipPrimitive.Portal container={container}>\n\t\t\t\t\t<TooltipPrimitive.Content\n\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\tsideOffset={sideOffset}\n\t\t\t\t\t\tclassName={tooltipContentStyles({ className, focus })}\n\t\t\t\t\t\t{...props}\n\t\t\t\t\t/>\n\t\t\t\t</TooltipPrimitive.Portal>\n\t\t\t</TooltipContext.Provider>\n\t\t);\n\t}\n);\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\n\nconst tooltipTitleStyles = tv({\n\tbase: \"text-sm font-medium text-primary-fg\",\n\tvariants: {\n\t\tfocus: {\n\t\t\thigh: \"text-inverse-primary-fg\"\n\t\t}\n\t} satisfies VariantsConfig<TooltipVariants>\n});\n\ntype TooltipTitleProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst TooltipTitle = React.forwardRef<HTMLDivElement, TooltipTitleProps>(({ className, children, ...props }, ref) => {\n\tconst { focus } = useTooltipContext();\n\treturn (\n\t\t<div ref={ref} className={tooltipTitleStyles({ className, focus })} {...props}>\n\t\t\t{children}\n\t\t</div>\n\t);\n});\nTooltipTitle.displayName = \"TooltipTitle\";\n\nconst tooltipTextStyles = tv({\n\tbase: \"\",\n\tvariants: {\n\t\tfocus: {\n\t\t\thigh: \"text-inverse-secondary-fg\"\n\t\t}\n\t} satisfies VariantsConfig<TooltipVariants>\n});\n\ntype TooltipTextProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst TooltipText = React.forwardRef<HTMLDivElement, TooltipTextProps>(({ className, children, ...props }, ref) => {\n\tconst { focus } = useTooltipContext();\n\treturn (\n\t\t<Text ref={ref} size=\"xs\" className={tooltipTextStyles({ className, focus })} {...props}>\n\t\t\t{children}\n\t\t</Text>\n\t);\n});\nTooltipText.displayName = \"TooltipText\";\n\nconst tooltipIconStyles = tv({\n\tbase: \"flex-shrink-0 text-xs text-primary-fg\",\n\tvariants: {\n\t\tfocus: {\n\t\t\thigh: \"text-inverse-primary-fg\"\n\t\t}\n\t} satisfies VariantsConfig<TooltipVariants>\n});\n\ntype TooltipIconProps = IconProps;\n\nconst TooltipIcon = React.forwardRef<SVGSVGElement, TooltipIconProps>(({ className, ...props }, ref) => {\n\tconst { focus } = useTooltipContext();\n\treturn <Icon size=\"lg\" className={tooltipIconStyles({ className, focus })} ref={ref} {...props} />;\n});\nTooltipIcon.displayName = \"TooltipIcon\";\n\nconst tooltipShortcutStyles = tv({\n\tbase: \"h-auto p-0 text-xs text-muted\",\n\tvariants: {\n\t\tfocus: {\n\t\t\thigh: \"text-inverse-secondary-fg opacity-70\"\n\t\t}\n\t} satisfies VariantsConfig<TooltipVariants>\n});\n\ntype TooltipShortcutProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst TooltipShortcut = React.forwardRef<HTMLDivElement, TooltipShortcutProps>(({ className, ...props }, ref) => {\n\tconst { focus } = useTooltipContext();\n\treturn <Shortcut variant=\"ghost\" className={tooltipShortcutStyles({ className, focus })} ref={ref} {...props} />;\n});\nTooltipShortcut.displayName = \"TooltipShortcut\";\n\nexport {\n\tTooltip,\n\tTooltipTrigger,\n\tTooltipContent,\n\tTooltipArrow,\n\tTooltipProvider,\n\tTooltipTitle,\n\tTooltipText,\n\tTooltipIcon,\n\tTooltipShortcut\n};\n"],"names":["createTooltipContext","createTooltipScope","createContextScope","createPopperScope","usePopperScope","PROVIDER_NAME","DEFAULT_DELAY_DURATION","TOOLTIP_OPEN","TooltipProviderContextProvider","useTooltipProviderContext","TooltipProvider","props","__scopeTooltip","delayDuration","skipDelayDuration","disableHoverableContent","children","isOpenDelayedRef","React","isPointerInTransitRef","skipDelayTimerRef","skipDelayTimer","jsx","inTransit","TOOLTIP_NAME","TooltipContextProvider","useTooltipContext","Tooltip","openProp","defaultOpen","onOpenChange","disableHoverableContentProp","delayDurationProp","providerContext","popperScope","trigger","setTrigger","contentId","useId","openTimerRef","wasOpenDelayedRef","open","setOpen","useControllableState","open2","stateAttribute","handleOpen","handleClose","handleDelayedOpen","PopperPrimitive.Root","TRIGGER_NAME","TooltipTrigger","forwardedRef","triggerProps","context","ref","composedRefs","useComposedRefs","isPointerDownRef","hasPointerMoveOpenedRef","handlePointerUp","PopperPrimitive.Anchor","Primitive","composeEventHandlers","event","PORTAL_NAME","PortalProvider","usePortalContext","TooltipPortal","forceMount","container","Presence","PortalPrimitive","CONTENT_NAME","TooltipContent","portalContext","side","contentProps","TooltipContentImpl","TooltipContentHoverable","pointerGraceArea","setPointerGraceArea","onClose","content","onPointerInTransitChange","handleRemoveGraceArea","handleCreateGraceArea","hoverTarget","currentTarget","exitPoint","exitSide","getExitSideFromRect","paddedExitPoints","getPaddedExitPoints","hoverTargetPoints","getPointsFromRect","graceArea","getHull","handleTriggerLeave","handleContentLeave","handleTrackPointerGrace","target","pointerPosition","hasEnteredTarget","isPointerOutsideGraceArea","isPointInPolygon","VisuallyHiddenContentContextProvider","useVisuallyHiddenContentContext","Slottable","createSlottable","ariaLabel","onEscapeKeyDown","onPointerDownOutside","handleScroll","DismissableLayer","jsxs","PopperPrimitive.Content","VisuallyHiddenPrimitive.Root","ARROW_NAME","TooltipArrow","arrowProps","PopperPrimitive.Arrow","point","rect","top","bottom","right","left","padding","polygon","x","y","inside","j","ii","jj","xi","yi","xj","yj","points","newPoints","a","b","getHullPresorted","upperHull","i","p","q","r","lowerHull","Provider","Root3","Trigger","Portal","Content2","Arrow2","TooltipContext","TooltipPrimitive.Provider","TooltipPrimitive.Root","TooltipPrimitive.Trigger","tooltipArrowStyles","tv","width","height","className","focus","styles","TooltipPrimitive.Arrow","tooltipContentStyles","sideOffset","portalContainer","usePortalContainer","TooltipPrimitive.Portal","TooltipPrimitive.Content","tooltipTitleStyles","TooltipTitle","tooltipTextStyles","TooltipText","Text","tooltipIconStyles","TooltipIcon","Icon","tooltipShortcutStyles","TooltipShortcut","Shortcut"],"mappings":";;;;;;;;;;;;;;;;AAkBA,IAAI,CAACA,GAAsBC,EAAkB,IAAIC,GAAmB,WAAW;AAAA,EAC7EC;AACF,CAAC,GACGC,IAAiBD,EAAmB,GACpCE,IAAgB,mBAChBC,KAAyB,KACzBC,IAAe,gBACf,CAACC,IAAgCC,CAAyB,IAAIT,EAAqBK,CAAa,GAChGK,IAAkB,CAACC,MAAU;AAC/B,QAAM;AAAA,IACJ,gBAAAC;AAAA,IACA,eAAAC,IAAgBP;AAAA,IAChB,mBAAAQ,IAAoB;AAAA,IACpB,yBAAAC,IAA0B;AAAA,IAC1B,UAAAC;AAAA,EACJ,IAAML,GACEM,IAAmBC,EAAM,OAAO,EAAI,GACpCC,IAAwBD,EAAM,OAAO,EAAK,GAC1CE,IAAoBF,EAAM,OAAO,CAAC;AACxC,SAAAA,EAAM,UAAU,MAAM;AACpB,UAAMG,IAAiBD,EAAkB;AACzC,WAAO,MAAM,OAAO,aAAaC,CAAc;AAAA,EAChD,GAAE,EAAE,GACkB,gBAAAC;AAAA,IACrBd;AAAA,IACA;AAAA,MACE,OAAOI;AAAA,MACP,kBAAAK;AAAA,MACA,eAAAJ;AAAA,MACA,QAAQK,EAAM,YAAY,MAAM;AAC9B,eAAO,aAAaE,EAAkB,OAAO,GAC7CH,EAAiB,UAAU;AAAA,MAC5B,GAAE,EAAE;AAAA,MACL,SAASC,EAAM,YAAY,MAAM;AAC/B,eAAO,aAAaE,EAAkB,OAAO,GAC7CA,EAAkB,UAAU,OAAO;AAAA,UACjC,MAAMH,EAAiB,UAAU;AAAA,UACjCH;AAAA,QACD;AAAA,MACT,GAAS,CAACA,CAAiB,CAAC;AAAA,MACtB,uBAAAK;AAAA,MACA,0BAA0BD,EAAM,YAAY,CAACK,MAAc;AACzD,QAAAJ,EAAsB,UAAUI;AAAA,MACjC,GAAE,EAAE;AAAA,MACL,yBAAAR;AAAA,MACA,UAAAC;AAAA,IACN;AAAA,EACG;AACH;AACAN,EAAgB,cAAcL;AAC9B,IAAImB,IAAe,WACf,CAACC,IAAwBC,CAAiB,IAAI1B,EAAqBwB,CAAY,GAC/EG,IAAU,CAAChB,MAAU;AACvB,QAAM;AAAA,IACJ,gBAAAC;AAAA,IACA,UAAAI;AAAA,IACA,MAAMY;AAAA,IACN,aAAAC;AAAA,IACA,cAAAC;AAAA,IACA,yBAAyBC;AAAA,IACzB,eAAeC;AAAA,EACnB,IAAMrB,GACEsB,IAAkBxB,EAA0Be,GAAcb,EAAM,cAAc,GAC9EuB,IAAc9B,EAAeQ,CAAc,GAC3C,CAACuB,GAASC,CAAU,IAAIlB,EAAM,SAAS,IAAI,GAC3CmB,IAAYC,GAAO,GACnBC,IAAerB,EAAM,OAAO,CAAC,GAC7BH,IAA0BgB,KAA+BE,EAAgB,yBACzEpB,IAAgBmB,KAAqBC,EAAgB,eACrDO,IAAoBtB,EAAM,OAAO,EAAK,GACtC,CAACuB,GAAMC,CAAO,IAAIC,GAAqB;AAAA,IAC3C,MAAMf;AAAA,IACN,aAAaC,KAAe;AAAA,IAC5B,UAAU,CAACe,MAAU;AACnB,MAAIA,KACFX,EAAgB,OAAQ,GACxB,SAAS,cAAc,IAAI,YAAY1B,CAAY,CAAC,KAEpD0B,EAAgB,QAAS,GAE3BH,IAAec,CAAK;AAAA,IACrB;AAAA,IACD,QAAQpB;AAAA,EACZ,CAAG,GACKqB,IAAiB3B,EAAM,QAAQ,MAC5BuB,IAAOD,EAAkB,UAAU,iBAAiB,iBAAiB,UAC3E,CAACC,CAAI,CAAC,GACHK,IAAa5B,EAAM,YAAY,MAAM;AACzC,WAAO,aAAaqB,EAAa,OAAO,GACxCA,EAAa,UAAU,GACvBC,EAAkB,UAAU,IAC5BE,EAAQ,EAAI;AAAA,EAChB,GAAK,CAACA,CAAO,CAAC,GACNK,IAAc7B,EAAM,YAAY,MAAM;AAC1C,WAAO,aAAaqB,EAAa,OAAO,GACxCA,EAAa,UAAU,GACvBG,EAAQ,EAAK;AAAA,EACjB,GAAK,CAACA,CAAO,CAAC,GACNM,IAAoB9B,EAAM,YAAY,MAAM;AAChD,WAAO,aAAaqB,EAAa,OAAO,GACxCA,EAAa,UAAU,OAAO,WAAW,MAAM;AAC7C,MAAAC,EAAkB,UAAU,IAC5BE,EAAQ,EAAI,GACZH,EAAa,UAAU;AAAA,IACxB,GAAE1B,CAAa;AAAA,EACpB,GAAK,CAACA,GAAe6B,CAAO,CAAC;AAC3B,SAAAxB,EAAM,UAAU,MACP,MAAM;AACX,IAAIqB,EAAa,YACf,OAAO,aAAaA,EAAa,OAAO,GACxCA,EAAa,UAAU;AAAA,EAE1B,GACA,EAAE,GACkB,gBAAAjB,EAAI2B,IAAsB,EAAE,GAAGf,GAAa,UAA0B,gBAAAZ;AAAA,IAC3FG;AAAA,IACA;AAAA,MACE,OAAOb;AAAA,MACP,WAAAyB;AAAA,MACA,MAAAI;AAAA,MACA,gBAAAI;AAAA,MACA,SAAAV;AAAA,MACA,iBAAiBC;AAAA,MACjB,gBAAgBlB,EAAM,YAAY,MAAM;AACtC,QAAIe,EAAgB,iBAAiB,UAASe,EAAmB,IAC5DF,EAAY;AAAA,MAClB,GAAE,CAACb,EAAgB,kBAAkBe,GAAmBF,CAAU,CAAC;AAAA,MACpE,gBAAgB5B,EAAM,YAAY,MAAM;AACtC,QAAIH,IACFgC,EAAa,KAEb,OAAO,aAAaR,EAAa,OAAO,GACxCA,EAAa,UAAU;AAAA,MAEjC,GAAS,CAACQ,GAAahC,CAAuB,CAAC;AAAA,MACzC,QAAQ+B;AAAA,MACR,SAASC;AAAA,MACT,yBAAAhC;AAAA,MACA,UAAAC;AAAA,IACN;AAAA,EACA,GAAK;AACL;AACAW,EAAQ,cAAcH;AACtB,IAAI0B,IAAe,kBACfC,IAAiBjC,EAAM;AAAA,EACzB,CAACP,GAAOyC,MAAiB;AACvB,UAAM,EAAE,gBAAAxC,GAAgB,GAAGyC,EAAY,IAAK1C,GACtC2C,IAAU5B,EAAkBwB,GAActC,CAAc,GACxDqB,IAAkBxB,EAA0ByC,GAActC,CAAc,GACxEsB,IAAc9B,EAAeQ,CAAc,GAC3C2C,IAAMrC,EAAM,OAAO,IAAI,GACvBsC,IAAeC,EAAgBL,GAAcG,GAAKD,EAAQ,eAAe,GACzEI,IAAmBxC,EAAM,OAAO,EAAK,GACrCyC,IAA0BzC,EAAM,OAAO,EAAK,GAC5C0C,IAAkB1C,EAAM,YAAY,MAAMwC,EAAiB,UAAU,IAAO,EAAE;AACpF,WAAAxC,EAAM,UAAU,MACP,MAAM,SAAS,oBAAoB,aAAa0C,CAAe,GACrE,CAACA,CAAe,CAAC,GACG,gBAAAtC,EAAIuC,IAAwB,EAAE,SAAS,IAAM,GAAG3B,GAAa,UAA0B,gBAAAZ;AAAA,MAC5GwC,GAAU;AAAA,MACV;AAAA,QACE,oBAAoBR,EAAQ,OAAOA,EAAQ,YAAY;AAAA,QACvD,cAAcA,EAAQ;AAAA,QACtB,GAAGD;AAAA,QACH,KAAKG;AAAA,QACL,eAAeO,EAAqBpD,EAAM,eAAe,CAACqD,MAAU;AAClE,UAAIA,EAAM,gBAAgB,WACtB,CAACL,EAAwB,WAAW,CAAC1B,EAAgB,sBAAsB,YAC7EqB,EAAQ,eAAgB,GACxBK,EAAwB,UAAU;AAAA,QAE9C,CAAS;AAAA,QACD,gBAAgBI,EAAqBpD,EAAM,gBAAgB,MAAM;AAC/D,UAAA2C,EAAQ,eAAgB,GACxBK,EAAwB,UAAU;AAAA,QAC5C,CAAS;AAAA,QACD,eAAeI,EAAqBpD,EAAM,eAAe,MAAM;AAC7D,UAAI2C,EAAQ,QACVA,EAAQ,QAAS,GAEnBI,EAAiB,UAAU,IAC3B,SAAS,iBAAiB,aAAaE,GAAiB,EAAE,MAAM,IAAM;AAAA,QAChF,CAAS;AAAA,QACD,SAASG,EAAqBpD,EAAM,SAAS,MAAM;AACjD,UAAK+C,EAAiB,WAASJ,EAAQ,OAAQ;AAAA,QACzD,CAAS;AAAA,QACD,QAAQS,EAAqBpD,EAAM,QAAQ2C,EAAQ,OAAO;AAAA,QAC1D,SAASS,EAAqBpD,EAAM,SAAS2C,EAAQ,OAAO;AAAA,MACpE;AAAA,IACA,GAAO;AAAA,EACP;AACA;AACAH,EAAe,cAAcD;AAC7B,IAAIe,IAAc,iBACd,CAACC,IAAgBC,EAAgB,IAAInE,EAAqBiE,GAAa;AAAA,EACzE,YAAY;AACd,CAAC,GACGG,IAAgB,CAACzD,MAAU;AAC7B,QAAM,EAAE,gBAAAC,GAAgB,YAAAyD,GAAY,UAAArD,GAAU,WAAAsD,EAAW,IAAG3D,GACtD2C,IAAU5B,EAAkBuC,GAAarD,CAAc;AAC7D,SAAuB,gBAAAU,EAAI4C,IAAgB,EAAE,OAAOtD,GAAgB,YAAAyD,GAAY,UAA0B,gBAAA/C,EAAIiD,GAAU,EAAE,SAASF,KAAcf,EAAQ,MAAM,UAA0B,gBAAAhC,EAAIkD,IAAiB,EAAE,SAAS,IAAM,WAAAF,GAAW,UAAAtD,GAAU,EAAC,CAAE,EAAC,CAAE;AAC5P;AACAoD,EAAc,cAAcH;AAC5B,IAAIQ,IAAe,kBACfC,IAAiBxD,EAAM;AAAA,EACzB,CAACP,GAAOyC,MAAiB;AACvB,UAAMuB,IAAgBR,GAAiBM,GAAc9D,EAAM,cAAc,GACnE,EAAE,YAAA0D,IAAaM,EAAc,YAAY,MAAAC,IAAO,OAAO,GAAGC,EAAY,IAAKlE,GAC3E2C,IAAU5B,EAAkB+C,GAAc9D,EAAM,cAAc;AACpE,WAAuB,gBAAAW,EAAIiD,GAAU,EAAE,SAASF,KAAcf,EAAQ,MAAM,UAAUA,EAAQ,0BAA0C,gBAAAhC,EAAIwD,GAAoB,EAAE,MAAAF,GAAM,GAAGC,GAAc,KAAKzB,GAAc,IAAoB,gBAAA9B,EAAIyD,IAAyB,EAAE,MAAAH,GAAM,GAAGC,GAAc,KAAKzB,EAAY,CAAE,EAAC,CAAE;AAAA,EAChT;AACA,GACI2B,KAA0B7D,EAAM,WAAW,CAACP,GAAOyC,MAAiB;AACtE,QAAME,IAAU5B,EAAkB+C,GAAc9D,EAAM,cAAc,GAC9DsB,IAAkBxB,EAA0BgE,GAAc9D,EAAM,cAAc,GAC9E4C,IAAMrC,EAAM,OAAO,IAAI,GACvBsC,IAAeC,EAAgBL,GAAcG,CAAG,GAChD,CAACyB,GAAkBC,CAAmB,IAAI/D,EAAM,SAAS,IAAI,GAC7D,EAAE,SAAAiB,GAAS,SAAA+C,EAAO,IAAK5B,GACvB6B,IAAU5B,EAAI,SACd,EAAE,0BAAA6B,EAAwB,IAAKnD,GAC/BoD,IAAwBnE,EAAM,YAAY,MAAM;AACpD,IAAA+D,EAAoB,IAAI,GACxBG,EAAyB,EAAK;AAAA,EAClC,GAAK,CAACA,CAAwB,CAAC,GACvBE,IAAwBpE,EAAM;AAAA,IAClC,CAAC8C,GAAOuB,MAAgB;AACtB,YAAMC,IAAgBxB,EAAM,eACtByB,IAAY,EAAE,GAAGzB,EAAM,SAAS,GAAGA,EAAM,QAAS,GAClD0B,IAAWC,GAAoBF,GAAWD,EAAc,sBAAqB,CAAE,GAC/EI,IAAmBC,GAAoBJ,GAAWC,CAAQ,GAC1DI,IAAoBC,GAAkBR,EAAY,sBAAqB,CAAE,GACzES,IAAYC,GAAQ,CAAC,GAAGL,GAAkB,GAAGE,CAAiB,CAAC;AACrE,MAAAb,EAAoBe,CAAS,GAC7BZ,EAAyB,EAAI;AAAA,IAC9B;AAAA,IACD,CAACA,CAAwB;AAAA,EAC1B;AACD,SAAAlE,EAAM,UAAU,MACP,MAAMmE,EAAuB,GACnC,CAACA,CAAqB,CAAC,GAC1BnE,EAAM,UAAU,MAAM;AACpB,QAAIiB,KAAWgD,GAAS;AACtB,YAAMe,IAAqB,CAAClC,MAAUsB,EAAsBtB,GAAOmB,CAAO,GACpEgB,IAAqB,CAACnC,MAAUsB,EAAsBtB,GAAO7B,CAAO;AAC1E,aAAAA,EAAQ,iBAAiB,gBAAgB+D,CAAkB,GAC3Df,EAAQ,iBAAiB,gBAAgBgB,CAAkB,GACpD,MAAM;AACX,QAAAhE,EAAQ,oBAAoB,gBAAgB+D,CAAkB,GAC9Df,EAAQ,oBAAoB,gBAAgBgB,CAAkB;AAAA,MAC/D;AAAA,IACP;AAAA,EACG,GAAE,CAAChE,GAASgD,GAASG,GAAuBD,CAAqB,CAAC,GACnEnE,EAAM,UAAU,MAAM;AACpB,QAAI8D,GAAkB;AACpB,YAAMoB,IAA0B,CAACpC,MAAU;AACzC,cAAMqC,IAASrC,EAAM,QACfsC,IAAkB,EAAE,GAAGtC,EAAM,SAAS,GAAGA,EAAM,QAAS,GACxDuC,IAAmBpE,GAAS,SAASkE,CAAM,KAAKlB,GAAS,SAASkB,CAAM,GACxEG,IAA4B,CAACC,GAAiBH,GAAiBtB,CAAgB;AACrF,QAAIuB,IACFlB,EAAuB,IACdmB,MACTnB,EAAuB,GACvBH,EAAS;AAAA,MAEZ;AACD,sBAAS,iBAAiB,eAAekB,CAAuB,GACzD,MAAM,SAAS,oBAAoB,eAAeA,CAAuB;AAAA,IACtF;AAAA,EACA,GAAK,CAACjE,GAASgD,GAASH,GAAkBE,GAASG,CAAqB,CAAC,GAChD,gBAAA/D,EAAIwD,GAAoB,EAAE,GAAGnE,GAAO,KAAK6C,GAAc;AAChF,CAAC,GACG,CAACkD,IAAsCC,EAA+B,IAAI3G,EAAqBwB,GAAc,EAAE,UAAU,IAAO,GAChIoF,KAAYC,GAAgB,gBAAgB,GAC5C/B,IAAqB5D,EAAM;AAAA,EAC7B,CAACP,GAAOyC,MAAiB;AACvB,UAAM;AAAA,MACJ,gBAAAxC;AAAA,MACA,UAAAI;AAAA,MACA,cAAc8F;AAAA,MACd,iBAAAC;AAAA,MACA,sBAAAC;AAAA,MACA,GAAGnC;AAAA,IACT,IAAQlE,GACE2C,IAAU5B,EAAkB+C,GAAc7D,CAAc,GACxDsB,IAAc9B,EAAeQ,CAAc,GAC3C,EAAE,SAAAsE,EAAO,IAAK5B;AACpB,WAAApC,EAAM,UAAU,OACd,SAAS,iBAAiBX,GAAc2E,CAAO,GACxC,MAAM,SAAS,oBAAoB3E,GAAc2E,CAAO,IAC9D,CAACA,CAAO,CAAC,GACZhE,EAAM,UAAU,MAAM;AACpB,UAAIoC,EAAQ,SAAS;AACnB,cAAM2D,IAAe,CAACjD,MAAU;AAE9B,UADeA,EAAM,QACT,SAASV,EAAQ,OAAO,KAAG4B,EAAS;AAAA,QACjD;AACD,sBAAO,iBAAiB,UAAU+B,GAAc,EAAE,SAAS,IAAM,GAC1D,MAAM,OAAO,oBAAoB,UAAUA,GAAc,EAAE,SAAS,IAAM;AAAA,MACzF;AAAA,IACK,GAAE,CAAC3D,EAAQ,SAAS4B,CAAO,CAAC,GACN,gBAAA5D;AAAA,MACrB4F;AAAA,MACA;AAAA,QACE,SAAS;AAAA,QACT,6BAA6B;AAAA,QAC7B,iBAAAH;AAAA,QACA,sBAAAC;AAAA,QACA,gBAAgB,CAAChD,MAAUA,EAAM,eAAgB;AAAA,QACjD,WAAWkB;AAAA,QACX,UAA0B,gBAAAiC;AAAA,UACxBC;AAAAA,UACA;AAAA,YACE,cAAc9D,EAAQ;AAAA,YACtB,GAAGpB;AAAA,YACH,GAAG2C;AAAA,YACH,KAAKzB;AAAA,YACL,OAAO;AAAA,cACL,GAAGyB,EAAa;AAAA,cAGd,4CAA4C;AAAA,cAC5C,2CAA2C;AAAA,cAC3C,4CAA4C;AAAA,cAC5C,iCAAiC;AAAA,cACjC,kCAAkC;AAAA,YAErC;AAAA,YACD,UAAU;AAAA,cACQ,gBAAAvD,EAAIsF,IAAW,EAAE,UAAA5F,GAAU;AAAA,cAC3B,gBAAAM,EAAIoF,IAAsC,EAAE,OAAO9F,GAAgB,UAAU,IAAM,UAA0B,gBAAAU,EAAI+F,IAA8B,EAAE,IAAI/D,EAAQ,WAAW,MAAM,WAAW,UAAUwD,KAAa9F,EAAQ,CAAE,EAAG,CAAA;AAAA,YAC3P;AAAA,UACA;AAAA,QACA;AAAA,MACA;AAAA,IACK;AAAA,EACL;AACA;AACA0D,EAAe,cAAcD;AAC7B,IAAI6C,IAAa,gBACbC,IAAerG,EAAM;AAAA,EACvB,CAACP,GAAOyC,MAAiB;AACvB,UAAM,EAAE,gBAAAxC,GAAgB,GAAG4G,EAAU,IAAK7G,GACpCuB,IAAc9B,EAAeQ,CAAc;AAKjD,WAJqC+F;AAAA,MACnCW;AAAA,MACA1G;AAAA,IACD,EACmC,WAAW,OAAuB,gBAAAU,EAAImG,IAAuB,EAAE,GAAGvF,GAAa,GAAGsF,GAAY,KAAKpE,EAAY,CAAE;AAAA,EACzJ;AACA;AACAmE,EAAa,cAAcD;AAC3B,SAAS3B,GAAoB+B,GAAOC,GAAM;AACxC,QAAMC,IAAM,KAAK,IAAID,EAAK,MAAMD,EAAM,CAAC,GACjCG,IAAS,KAAK,IAAIF,EAAK,SAASD,EAAM,CAAC,GACvCI,IAAQ,KAAK,IAAIH,EAAK,QAAQD,EAAM,CAAC,GACrCK,IAAO,KAAK,IAAIJ,EAAK,OAAOD,EAAM,CAAC;AACzC,UAAQ,KAAK,IAAIE,GAAKC,GAAQC,GAAOC,CAAI,GAAC;AAAA,IACxC,KAAKA;AACH,aAAO;AAAA,IACT,KAAKD;AACH,aAAO;AAAA,IACT,KAAKF;AACH,aAAO;AAAA,IACT,KAAKC;AACH,aAAO;AAAA,IACT;AACE,YAAM,IAAI,MAAM,aAAa;AAAA,EACnC;AACA;AACA,SAAShC,GAAoBJ,GAAWC,GAAUsC,IAAU,GAAG;AAC7D,QAAMpC,IAAmB,CAAE;AAC3B,UAAQF,GAAQ;AAAA,IACd,KAAK;AACH,MAAAE,EAAiB;AAAA,QACf,EAAE,GAAGH,EAAU,IAAIuC,GAAS,GAAGvC,EAAU,IAAIuC,EAAS;AAAA,QACtD,EAAE,GAAGvC,EAAU,IAAIuC,GAAS,GAAGvC,EAAU,IAAIuC,EAAO;AAAA,MACrD;AACD;AAAA,IACF,KAAK;AACH,MAAApC,EAAiB;AAAA,QACf,EAAE,GAAGH,EAAU,IAAIuC,GAAS,GAAGvC,EAAU,IAAIuC,EAAS;AAAA,QACtD,EAAE,GAAGvC,EAAU,IAAIuC,GAAS,GAAGvC,EAAU,IAAIuC,EAAO;AAAA,MACrD;AACD;AAAA,IACF,KAAK;AACH,MAAApC,EAAiB;AAAA,QACf,EAAE,GAAGH,EAAU,IAAIuC,GAAS,GAAGvC,EAAU,IAAIuC,EAAS;AAAA,QACtD,EAAE,GAAGvC,EAAU,IAAIuC,GAAS,GAAGvC,EAAU,IAAIuC,EAAO;AAAA,MACrD;AACD;AAAA,IACF,KAAK;AACH,MAAApC,EAAiB;AAAA,QACf,EAAE,GAAGH,EAAU,IAAIuC,GAAS,GAAGvC,EAAU,IAAIuC,EAAS;AAAA,QACtD,EAAE,GAAGvC,EAAU,IAAIuC,GAAS,GAAGvC,EAAU,IAAIuC,EAAO;AAAA,MACrD;AACD;AAAA,EACN;AACE,SAAOpC;AACT;AACA,SAASG,GAAkB4B,GAAM;AAC/B,QAAM,EAAE,KAAAC,GAAK,OAAAE,GAAO,QAAAD,GAAQ,MAAAE,EAAM,IAAGJ;AACrC,SAAO;AAAA,IACL,EAAE,GAAGI,GAAM,GAAGH,EAAK;AAAA,IACnB,EAAE,GAAGE,GAAO,GAAGF,EAAK;AAAA,IACpB,EAAE,GAAGE,GAAO,GAAGD,EAAQ;AAAA,IACvB,EAAE,GAAGE,GAAM,GAAGF,EAAM;AAAA,EACrB;AACH;AACA,SAASpB,GAAiBiB,GAAOO,GAAS;AACxC,QAAM,EAAE,GAAAC,GAAG,GAAAC,EAAC,IAAKT;AACjB,MAAIU,IAAS;AACb,WAAS,IAAI,GAAGC,IAAIJ,EAAQ,SAAS,GAAG,IAAIA,EAAQ,QAAQI,IAAI,KAAK;AACnE,UAAMC,IAAKL,EAAQ,CAAC,GACdM,IAAKN,EAAQI,CAAC,GACdG,IAAKF,EAAG,GACRG,IAAKH,EAAG,GACRI,IAAKH,EAAG,GACRI,IAAKJ,EAAG;AAEd,IADkBE,IAAKN,KAAMQ,IAAKR,KAAKD,KAAKQ,IAAKF,MAAOL,IAAIM,MAAOE,IAAKF,KAAMD,MAC/DJ,IAAS,CAACA;AAAA,EAC7B;AACE,SAAOA;AACT;AACA,SAASnC,GAAQ2C,GAAQ;AACvB,QAAMC,IAAYD,EAAO,MAAO;AAChC,SAAAC,EAAU,KAAK,CAACC,GAAGC,MACbD,EAAE,IAAIC,EAAE,IAAU,KACbD,EAAE,IAAIC,EAAE,IAAU,IAClBD,EAAE,IAAIC,EAAE,IAAU,KAClBD,EAAE,IAAIC,EAAE,IAAU,IACf,CACb,GACMC,GAAiBH,CAAS;AACnC;AACA,SAASG,GAAiBJ,GAAQ;AAChC,MAAIA,EAAO,UAAU,EAAG,QAAOA,EAAO,MAAO;AAC7C,QAAMK,IAAY,CAAE;AACpB,WAASC,IAAI,GAAGA,IAAIN,EAAO,QAAQM,KAAK;AACtC,UAAMC,IAAIP,EAAOM,CAAC;AAClB,WAAOD,EAAU,UAAU,KAAG;AAC5B,YAAMG,IAAIH,EAAUA,EAAU,SAAS,CAAC,GAClCI,IAAIJ,EAAUA,EAAU,SAAS,CAAC;AACxC,WAAKG,EAAE,IAAIC,EAAE,MAAMF,EAAE,IAAIE,EAAE,OAAOD,EAAE,IAAIC,EAAE,MAAMF,EAAE,IAAIE,EAAE,GAAI,CAAAJ,EAAU,IAAK;AAAA,UACtE;AAAA,IACX;AACI,IAAAA,EAAU,KAAKE,CAAC;AAAA,EACpB;AACE,EAAAF,EAAU,IAAK;AACf,QAAMK,IAAY,CAAE;AACpB,WAASJ,IAAIN,EAAO,SAAS,GAAGM,KAAK,GAAGA,KAAK;AAC3C,UAAMC,IAAIP,EAAOM,CAAC;AAClB,WAAOI,EAAU,UAAU,KAAG;AAC5B,YAAMF,IAAIE,EAAUA,EAAU,SAAS,CAAC,GAClCD,IAAIC,EAAUA,EAAU,SAAS,CAAC;AACxC,WAAKF,EAAE,IAAIC,EAAE,MAAMF,EAAE,IAAIE,EAAE,OAAOD,EAAE,IAAIC,EAAE,MAAMF,EAAE,IAAIE,EAAE,GAAI,CAAAC,EAAU,IAAK;AAAA,UACtE;AAAA,IACX;AACI,IAAAA,EAAU,KAAKH,CAAC;AAAA,EACpB;AAEE,SADAG,EAAU,IAAK,GACXL,EAAU,WAAW,KAAKK,EAAU,WAAW,KAAKL,EAAU,CAAC,EAAE,MAAMK,EAAU,CAAC,EAAE,KAAKL,EAAU,CAAC,EAAE,MAAMK,EAAU,CAAC,EAAE,IACpHL,IAEAA,EAAU,OAAOK,CAAS;AAErC;AACA,IAAIC,IAAW7I,GACX8I,KAAQ7H,GACR8H,KAAUtG,GACVuG,KAAStF,GACTuF,IAAWjF,GACXkF,IAASrC;;;;;;;;;;;;;;;;8CCreAsC,KAAiB3I,EAAM,cAA+B,CAAE,CAAA,GAExDQ,IAAoB,MAChBR,EAAM,WAAW2I,EAAc,GCC1CnJ,KAAkBoJ,GAElBnI,KAAUoI,IAEV5G,KAAiB6G,IAEjBC,KAAqBC,EAAG;AAAA,EAC7B,OAAO;AAAA,IACN,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,KAAK;AAAA,EACN;AAAA,EACA,UAAU;AAAA,IACT,OAAO;AAAA,MACN,MAAM;AAAA,QACL,MAAM;AAAA,QACN,QAAQ;AAAA,MAAA;AAAA,IACT;AAAA,EACD;AAEF,CAAC,GAIK3C,KAAerG,EAAM;AAAA,EAC1B,CAAC,EAAE,OAAAiJ,GAAO,QAAAC,GAAQ,WAAAC,GAAW,GAAG1J,KAAS4C,MAAQ;AAC1C,UAAA,EAAE,OAAA+G,EAAM,IAAI5I,EAAkB,GAC9B6I,IAASN,GAAmB,EAAE,OAAAK,GAAO;AAG1C,WAAA,gBAAAhJ,EAACkJ,GAAA,EAAuB,KAAAjH,GAAU,SAAO,IAAE,GAAG5C,GAC7C,UAAA,gBAAAwG;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,OAAOgD,KAAS;AAAA,QAChB,QAAQC,KAAU;AAAA,QAClB,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,OAAM;AAAA,QACN,WAAWG,EAAO,IAAI,EAAE,WAAAF,GAAW;AAAA,QAEnC,UAAA;AAAA,UAAA,gBAAA/I,EAAC,UAAK,GAAE,4DAA2D,WAAWiJ,EAAO,QAAQ;AAAA,UAC7F,gBAAAjJ;AAAA,YAAC;AAAA,YAAA;AAAA,cACA,GAAE;AAAA,cACF,WAAWiJ,EAAO,OAAO;AAAA,cACzB,eAAc;AAAA,YAAA;AAAA,UAAA;AAAA,QACf;AAAA,MAAA;AAAA,IAAA,GAEF;AAAA,EAAA;AAGH;AAEAhD,GAAa,cAAciD,EAAuB;AAElD,MAAMC,KAAuBP,EAAG;AAAA,EAC/B,MAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA,UAAU;AAAA,IACT,OAAO;AAAA,MACN,MAAM;AAAA,IAAA;AAAA,EACP;AAEF,CAAC,GAWKxF,KAAiBxD,EAAM;AAAA,EAC5B,CAAC,EAAE,WAAAmJ,GAAW,YAAAK,IAAa,GAAG,iBAAAC,GAAiB,OAAAL,GAAO,GAAG3J,EAAM,GAAG4C,MAAQ;AACnE,UAAAe,IAAYsG,GAAmBD,CAAe;AAEpD,WACE,gBAAArJ,EAAAuI,GAAe,UAAf,EAAwB,OAAO,EAAE,OAAAS,KACjC,UAAC,gBAAAhJ,EAAAuJ,IAAA,EAAwB,WAAAvG,GACxB,UAAA,gBAAAhD;AAAA,MAACwJ;AAAAA,MAAA;AAAA,QACA,KAAAvH;AAAA,QACA,YAAAmH;AAAA,QACA,WAAWD,GAAqB,EAAE,WAAAJ,GAAW,OAAAC,GAAO;AAAA,QACnD,GAAG3J;AAAA,MAAA;AAAA,OAEN,EACD,CAAA;AAAA,EAAA;AAGH;AACA+D,GAAe,cAAcoG,EAAyB;AAEtD,MAAMC,KAAqBb,EAAG;AAAA,EAC7B,MAAM;AAAA,EACN,UAAU;AAAA,IACT,OAAO;AAAA,MACN,MAAM;AAAA,IAAA;AAAA,EACP;AAEF,CAAC,GAIKc,KAAe9J,EAAM,WAA8C,CAAC,EAAE,WAAAmJ,GAAW,UAAArJ,GAAU,GAAGL,EAAM,GAAG4C,MAAQ;AAC9G,QAAA,EAAE,OAAA+G,EAAM,IAAI5I,EAAkB;AACpC,SACE,gBAAAJ,EAAA,OAAA,EAAI,KAAAiC,GAAU,WAAWwH,GAAmB,EAAE,WAAAV,GAAW,OAAAC,EAAA,CAAO,GAAI,GAAG3J,GACtE,UAAAK,EACF,CAAA;AAEF,CAAC;AACDgK,GAAa,cAAc;AAE3B,MAAMC,KAAoBf,EAAG;AAAA,EAC5B,MAAM;AAAA,EACN,UAAU;AAAA,IACT,OAAO;AAAA,MACN,MAAM;AAAA,IAAA;AAAA,EACP;AAEF,CAAC,GAIKgB,KAAchK,EAAM,WAA6C,CAAC,EAAE,WAAAmJ,GAAW,UAAArJ,GAAU,GAAGL,EAAM,GAAG4C,MAAQ;AAC5G,QAAA,EAAE,OAAA+G,EAAM,IAAI5I,EAAkB;AACpC,SACE,gBAAAJ,EAAA6J,IAAA,EAAK,KAAA5H,GAAU,MAAK,MAAK,WAAW0H,GAAkB,EAAE,WAAAZ,GAAW,OAAAC,EAAO,CAAA,GAAI,GAAG3J,GAChF,UAAAK,EACF,CAAA;AAEF,CAAC;AACDkK,GAAY,cAAc;AAE1B,MAAME,KAAoBlB,EAAG;AAAA,EAC5B,MAAM;AAAA,EACN,UAAU;AAAA,IACT,OAAO;AAAA,MACN,MAAM;AAAA,IAAA;AAAA,EACP;AAEF,CAAC,GAIKmB,KAAcnK,EAAM,WAA4C,CAAC,EAAE,WAAAmJ,GAAW,GAAG1J,EAAM,GAAG4C,MAAQ;AACjG,QAAA,EAAE,OAAA+G,EAAM,IAAI5I,EAAkB;AACpC,SAAQ,gBAAAJ,EAAAgK,IAAA,EAAK,MAAK,MAAK,WAAWF,GAAkB,EAAE,WAAAf,GAAW,OAAAC,EAAO,CAAA,GAAG,KAAA/G,GAAW,GAAG5C,EAAO,CAAA;AACjG,CAAC;AACD0K,GAAY,cAAc;AAE1B,MAAME,KAAwBrB,EAAG;AAAA,EAChC,MAAM;AAAA,EACN,UAAU;AAAA,IACT,OAAO;AAAA,MACN,MAAM;AAAA,IAAA;AAAA,EACP;AAEF,CAAC,GAIKsB,KAAkBtK,EAAM,WAAiD,CAAC,EAAE,WAAAmJ,GAAW,GAAG1J,EAAM,GAAG4C,MAAQ;AAC1G,QAAA,EAAE,OAAA+G,EAAM,IAAI5I,EAAkB;AACpC,SAAQ,gBAAAJ,EAAAmK,IAAA,EAAS,SAAQ,SAAQ,WAAWF,GAAsB,EAAE,WAAAlB,GAAW,OAAAC,EAAO,CAAA,GAAG,KAAA/G,GAAW,GAAG5C,EAAO,CAAA;AAC/G,CAAC;AACD6K,GAAgB,cAAc;","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TriggerButton-CfDObWP9.js","sources":["../src/components/button/trigger-button/TriggerButton.tsx"],"sourcesContent":["import React, { PropsWithChildren } from \"react\";\
|
|
1
|
+
{"version":3,"file":"TriggerButton-CfDObWP9.js","sources":["../src/components/button/trigger-button/TriggerButton.tsx"],"sourcesContent":["import React, { PropsWithChildren } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\nimport { Button, ButtonProps } from \"../button/Button\";\n\nexport interface TriggerButtonVariants {\n\tvariant?: \"outline\" | \"ghost\" | \"text\";\n}\n\nconst triggerButtonVariants = tv({\n\tbase: \"\",\n\tvariants: {\n\t\tvariant: {\n\t\t\toutline:\n\t\t\t\t\"data-[state=open]:bg-secondary-bg-hover data-[state=open]:shadow-none active:data-[state=open]:bg-secondary-bg-hover lg:hover:data-[state=open]:bg-secondary-bg-hover\",\n\t\t\tghost:\n\t\t\t\t\"data-[state=open]:bg-secondary-bg-hover data-[state=open]:shadow-none active:data-[state=open]:bg-secondary-bg-hover lg:hover:data-[state=open]:bg-secondary-bg-hover\",\n\t\t\ttext: \"data-[state=open]:text-secondary-fg\"\n\t\t}\n\t} satisfies VariantsConfig<TriggerButtonVariants>,\n\tdefaultVariants: {\n\t\tvariant: \"outline\"\n\t}\n});\n\nexport type TriggerButtonProps = Omit<ButtonProps, \"variant\" | \"status\"> &\n\tTriggerButtonVariants & {\n\t\t\"data-state\"?: \"open\" | \"closed\";\n\t};\n\nexport const TriggerButton = React.forwardRef<HTMLButtonElement, PropsWithChildren<TriggerButtonProps>>(\n\t({ className, children, variant, ...props }, ref) => {\n\t\treturn (\n\t\t\t<Button\n\t\t\t\tvariant={variant || \"outline\"}\n\t\t\t\tclassName={triggerButtonVariants({ className, variant })}\n\t\t\t\tref={ref}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</Button>\n\t\t);\n\t}\n);\n\nTriggerButton.displayName = \"TriggerButton\";\n"],"names":["triggerButtonVariants","tv","TriggerButton","React","className","children","variant","props","ref","jsx","Button"],"mappings":";;;;AASA,MAAMA,IAAwBC,EAAG;AAAA,EAChC,MAAM;AAAA,EACN,UAAU;AAAA,IACT,SAAS;AAAA,MACR,SACC;AAAA,MACD,OACC;AAAA,MACD,MAAM;AAAA,IAAA;AAAA,EAER;AAAA,EACA,iBAAiB;AAAA,IAChB,SAAS;AAAA,EAAA;AAEX,CAAC,GAOYC,IAAgBC,EAAM;AAAA,EAClC,CAAC,EAAE,WAAAC,GAAW,UAAAC,GAAU,SAAAC,GAAS,GAAGC,KAASC,MAE3C,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACA,SAASJ,KAAW;AAAA,MACpB,WAAWN,EAAsB,EAAE,WAAAI,GAAW,SAAAE,GAAS;AAAA,MACvD,KAAAE;AAAA,MACC,GAAGD;AAAA,MAEH,UAAAF;AAAA,IAAA;AAAA,EACF;AAGH;AAEAH,EAAc,cAAc;"}
|
|
@@ -3,7 +3,7 @@ var z = (t, o, n) => o in t ? $(t, o, { enumerable: !0, configurable: !0, writab
|
|
|
3
3
|
var P = (t, o, n) => z(t, typeof o != "symbol" ? o + "" : o, n);
|
|
4
4
|
import { jsx as a, jsxs as x } from "react/jsx-runtime";
|
|
5
5
|
import S, { useMemo as N, useState as O, useCallback as B } from "react";
|
|
6
|
-
import { a as D, F as L, g as R } from "../../FormStack-
|
|
6
|
+
import { a as D, F as L, g as R } from "../../FormStack-DO15vBgd.js";
|
|
7
7
|
import { s as G } from "../../zod-BMNoK3aM.js";
|
|
8
8
|
import { e as V } from "../../index.esm-CXA6i4d7.js";
|
|
9
9
|
import { z as v } from "../../vendors/zod.js";
|