@yourbestsoft/studio-screen-ui-kit 0.0.15 → 0.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ToolIconButton-COS9gEWi.js +775 -0
- package/dist/ToolIconButton-COS9gEWi.js.map +1 -0
- package/dist/components/sidebar/Sidebar.d.ts +22 -7
- package/dist/index.js +2 -2
- package/dist/index2.js +2 -2
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/dist/ToolIconButton--CJQ-oPC.js +0 -690
- package/dist/ToolIconButton--CJQ-oPC.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolIconButton-COS9gEWi.js","sources":["../src/components/button/Button.tsx","../src/components/card/Card.tsx","../src/hooks/useKeyboardControls.ts","../src/hooks/useEscapeKey.ts","../src/hooks/useWindowEvents.ts","../src/components/drop-down/hooks/useDropdownPosition.ts","../src/components/drop-down/hooks/useDropDownStack.ts","../src/components/drop-down/DropDown.tsx","../src/components/dialog/Dialog.tsx","../src/components/sidebar/Sidebar.tsx","../src/components/switcher-buttons/SwitcherButtons.tsx","../src/components/table/Table.tsx","../src/components/text-field/text-field.tsx","../src/features/theme-provider/ThemeProvider.tsx","../src/components/toolbar/tool-icon-button/ToolIconButton.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport {\n ComponentPropsWithoutRef,\n ElementRef,\n ElementType,\n ForwardedRef,\n ReactNode,\n forwardRef,\n} from 'react'\n\nimport { Replace } from '../../utils'\nimport s from './button.module.scss'\n\nexport type ButtonVariant = 'primary' | 'secondary' | 'tertiary' | 'text'\ntype OwnProps<T extends ElementType> = {\n children?: ReactNode\n className?: string\n component?: T\n disabled?: boolean\n fullWidth?: boolean\n variant?: ButtonVariant\n icon?: ReactNode\n shortcut?: string\n}\n\nexport type ButtonProps<T extends ElementType> = Replace<\n ComponentPropsWithoutRef<T>,\n OwnProps<T>\n>\n\ntype ButtonRenderType = {\n (\n props: ButtonProps<'button'>,\n ref?: ForwardedRef<ElementRef<'button'>>\n ): ReactNode\n (\n props: ButtonProps<ElementType>,\n ref?: ForwardedRef<ElementRef<ElementType>>\n ): ReactNode\n}\n\nexport type ButtonComponent = {\n <T extends ElementType = 'button'>(\n props: ButtonProps<T> & { ref?: ForwardedRef<ElementRef<T>> }\n ): ReactNode\n}\n\nexport const ButtonRender: ButtonRenderType = (\n {\n children,\n className,\n component: Component = 'button',\n disabled,\n fullWidth,\n icon,\n shortcut,\n variant = 'primary',\n ...props\n },\n ref\n) => {\n const content = (\n <div className={s.buttonWithIcon}>\n <div className={s.content}>\n {icon}\n {children}\n </div>\n <div className={s.shortcut}>{shortcut}</div>\n </div>\n )\n\n return (\n <Component\n className={classNames(\n s[variant],\n fullWidth && s.fullWidth,\n disabled && s.disabled,\n icon && s.icon,\n className\n )}\n children={icon ? content : children}\n disabled={disabled}\n ref={ref}\n {...props}\n />\n )\n}\n\nexport const Button: ButtonComponent = forwardRef(ButtonRender)\n","import classNames from 'classnames'\nimport { ComponentPropsWithoutRef, ElementRef, forwardRef } from 'react'\n\nimport s from './card.module.scss'\n\nexport type CardProps = ComponentPropsWithoutRef<'div'>\n\nexport const CardRoot = forwardRef<ElementRef<'div'>, CardProps>(\n ({ className, ...props }, ref) => (\n <div className={classNames(s.root, className)} ref={ref} {...props} />\n )\n)\n\nexport type CardContentProps = CardProps & { ignoreHeader?: boolean }\n\nexport const CardContent = forwardRef<ElementRef<'div'>, CardContentProps>(\n ({ className, ignoreHeader, ...props }, ref) => (\n <div\n className={classNames(\n s.content,\n !ignoreHeader && s.contentAfterHeader,\n className\n )}\n ref={ref}\n {...props}\n />\n )\n)\n\nexport const CardHeader = forwardRef<ElementRef<'div'>, CardProps>(\n ({ className, ...props }, ref) => (\n <div className={classNames(s.header, className)} ref={ref} {...props} />\n )\n)\n\nexport const Card = Object.assign(CardRoot, {\n Content: CardContent,\n Header: CardHeader,\n Root: CardRoot,\n})\n","import { useEffect } from 'react'\n\ntype KeyHandler = (event: KeyboardEvent) => void\n\ninterface KeyboardControlsOptions {\n enabled?: boolean\n preventDefault?: boolean\n stopPropagation?: boolean\n}\n\nexport const useKeyboardControls = (\n handlers: KeyHandler[],\n options: KeyboardControlsOptions = {}\n) => {\n const {\n enabled = true,\n preventDefault = false,\n stopPropagation = false,\n } = options\n\n useEffect(() => {\n if (!enabled) return\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (preventDefault) event.preventDefault()\n if (stopPropagation) event.stopPropagation()\n\n handlers.forEach((handler) => handler(event))\n }\n\n window.addEventListener('keydown', handleKeyDown)\n return () => {\n window.removeEventListener('keydown', handleKeyDown)\n }\n }, [handlers, enabled, preventDefault, stopPropagation])\n}\n\n// Удобные хелперы для создания handlers\nexport const createKeyHandler = (\n key: string,\n callback: (event: KeyboardEvent) => void,\n options: {\n ctrlKey?: boolean\n shiftKey?: boolean\n altKey?: boolean\n metaKey?: boolean\n } = {}\n): KeyHandler => {\n return (event: KeyboardEvent) => {\n const {\n ctrlKey = false,\n shiftKey = false,\n altKey = false,\n metaKey = false,\n } = options\n\n if (\n event.key === key &&\n event.ctrlKey === ctrlKey &&\n event.shiftKey === shiftKey &&\n event.altKey === altKey &&\n event.metaKey === metaKey\n ) {\n callback(event)\n }\n }\n}\n\nexport const createEscapeHandler = (callback: () => void): KeyHandler => {\n return createKeyHandler('Escape', callback)\n}\n\n// Хелпер для создания tab trap handler\nexport const createTabTrapHandler = (\n containerRef: React.RefObject<HTMLElement>,\n enabled: boolean = true\n): KeyHandler => {\n return (event: KeyboardEvent) => {\n if (!enabled || event.key !== 'Tab' || !containerRef.current) return\n\n const focusableElements = containerRef.current.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n )\n const firstElement = focusableElements[0] as HTMLElement\n const lastElement = focusableElements[\n focusableElements.length - 1\n ] as HTMLElement\n\n if (event.shiftKey) {\n if (document.activeElement === firstElement) {\n event.preventDefault()\n lastElement?.focus()\n }\n } else {\n if (document.activeElement === lastElement) {\n event.preventDefault()\n firstElement?.focus()\n }\n }\n }\n}\n","import { useEffect } from 'react'\n\nexport const useEscapeKey = (\n handler: () => void,\n enabled: boolean,\n shouldHandle: () => boolean\n) => {\n useEffect(() => {\n if (!enabled) return\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape' && shouldHandle()) {\n handler()\n }\n }\n\n document.addEventListener('keydown', handleKeyDown)\n return () => {\n document.removeEventListener('keydown', handleKeyDown)\n }\n }, [handler, enabled, shouldHandle])\n}\n","import { useEffect } from 'react'\n\nexport const useWindowEvents = (\n handler: () => void,\n onScroll: () => void,\n enabled: boolean\n) => {\n useEffect(() => {\n if (!enabled) return\n\n window.addEventListener('resize', handler)\n window.addEventListener('scroll', onScroll, true)\n\n return () => {\n window.removeEventListener('resize', handler)\n window.removeEventListener('scroll', onScroll, true)\n }\n }, [handler, onScroll, enabled])\n}\n","import { useCallback, useLayoutEffect, useState } from 'react'\n\ninterface Position {\n top: number\n left: number\n}\n\ninterface CalculatedPosition extends Position {\n vertical: 'top' | 'bottom'\n horizontal: 'left' | 'center' | 'right'\n}\n\nexport const useDropdownPosition = (\n contentRef: React.RefObject<HTMLDivElement>,\n rootRef: React.RefObject<HTMLDivElement>,\n visible: boolean,\n horizontal: 'left' | 'center' | 'right' = 'left',\n vertical: 'top' | 'bottom' = 'bottom',\n offset: number = 8\n) => {\n const [position, setPosition] = useState<CalculatedPosition>({\n horizontal,\n left: 0,\n top: 0,\n vertical,\n })\n\n const calculatePosition = useCallback(() => {\n const content = contentRef.current\n const trigger = rootRef.current\n\n if (!content || !trigger) return\n\n const triggerRect = trigger.getBoundingClientRect()\n const contentRect = content.getBoundingClientRect()\n const viewportWidth = window.innerWidth\n const viewportHeight = window.innerHeight\n const padding = 16\n\n let finalVertical = vertical\n let finalHorizontal = horizontal\n let top = 0\n let left = 0\n\n // Вычисление вертикальной позиции\n const spaceBelow = viewportHeight - triggerRect.bottom\n const spaceAbove = triggerRect.top\n\n if (vertical === 'bottom') {\n if (spaceBelow >= contentRect.height + offset + padding) {\n finalVertical = 'bottom'\n top = triggerRect.bottom + offset\n } else if (spaceAbove >= contentRect.height + offset + padding) {\n finalVertical = 'top'\n top = triggerRect.top - contentRect.height - offset\n } else {\n // Контент не помещается — выбрать сторону с больше места\n finalVertical = spaceBelow > spaceAbove ? 'bottom' : 'top'\n top =\n finalVertical === 'bottom'\n ? triggerRect.bottom + offset\n : triggerRect.top - contentRect.height - offset\n }\n } else {\n // vertical === 'top'\n if (spaceAbove >= contentRect.height + offset + padding) {\n finalVertical = 'top'\n top = triggerRect.top - contentRect.height - offset\n } else if (spaceBelow >= contentRect.height + offset + padding) {\n finalVertical = 'bottom'\n top = triggerRect.bottom + offset\n } else {\n finalVertical = spaceAbove > spaceBelow ? 'top' : 'bottom'\n top =\n finalVertical === 'top'\n ? triggerRect.top - contentRect.height - offset\n : triggerRect.bottom + offset\n }\n }\n\n // Вычисление горизонтальной позиции\n if (horizontal === 'left') {\n left = triggerRect.left\n if (left + contentRect.width > viewportWidth - padding) {\n left = viewportWidth - contentRect.width - padding\n finalHorizontal = 'right'\n }\n if (left < padding) {\n left = padding\n finalHorizontal = 'left'\n }\n } else if (horizontal === 'right') {\n left = triggerRect.right - contentRect.width\n if (left < padding) {\n left = padding\n finalHorizontal = 'left'\n }\n if (left + contentRect.width > viewportWidth - padding) {\n left = viewportWidth - contentRect.width - padding\n finalHorizontal = 'right'\n }\n } else {\n // horizontal === 'center'\n left = triggerRect.left + (triggerRect.width - contentRect.width) / 2\n if (left < padding) {\n left = padding\n finalHorizontal = 'left'\n } else if (left + contentRect.width > viewportWidth - padding) {\n left = viewportWidth - contentRect.width - padding\n finalHorizontal = 'right'\n }\n }\n\n // Финальная коррекция top с учётом viewport\n top = Math.max(\n padding,\n Math.min(top, viewportHeight - contentRect.height - padding)\n )\n\n setPosition({\n horizontal: finalHorizontal,\n left,\n top,\n vertical: finalVertical,\n })\n }, [contentRef, rootRef, vertical, horizontal, offset])\n\n useLayoutEffect(() => {\n if (!visible) return\n calculatePosition()\n }, [visible, calculatePosition])\n\n return { calculatePosition, position }\n}\n","import { useCallback, useEffect } from 'react'\n\nconst openDropDownStack: HTMLElement[] = []\n\nexport const useDropDownStack = (\n rootRef: React.RefObject<HTMLElement>,\n visible: boolean\n) => {\n useEffect(() => {\n if (visible && rootRef.current) {\n openDropDownStack.push(rootRef.current)\n return () => {\n const index = openDropDownStack.indexOf(rootRef.current!)\n if (index !== -1) {\n openDropDownStack.splice(index, 1)\n }\n }\n }\n }, [visible, rootRef])\n\n const isTopOfStack = useCallback(() => {\n if (!rootRef.current) return false\n return openDropDownStack[openDropDownStack.length - 1] === rootRef.current\n }, [rootRef])\n\n return { isTopOfStack }\n}\n","import classNames from 'classnames'\nimport React, {\n createContext,\n ReactElement,\n ReactNode,\n RefObject,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport { createPortal } from 'react-dom'\n\nimport { useEscapeKey, useWindowEvents } from '../../hooks'\nimport styles from './drop-down.module.scss'\nimport { useDropdownPosition } from './hooks'\nimport { useDropDownStack } from './hooks/useDropDownStack'\n\nconst swallow = (e: React.SyntheticEvent) => {\n e.stopPropagation()\n const ne = e.nativeEvent as any\n ne?.stopImmediatePropagation?.()\n}\n\nconst mergeClassName = (a?: string, b?: string) => {\n if (!a) return b\n if (!b) return a\n return `${a} ${b}`\n}\n\nconst mergeStyle = (\n a?: React.CSSProperties,\n b?: React.CSSProperties\n): React.CSSProperties | undefined => {\n if (!a) return b\n if (!b) return a\n return { ...a, ...b }\n}\n\nfunction mergeRefs<T>(...refs: Array<React.Ref<T> | undefined>) {\n return (node: T) => {\n refs.forEach((ref) => {\n if (!ref) return\n if (typeof ref === 'function') ref(node)\n else (ref as React.MutableRefObject<T | null>).current = node\n })\n }\n}\n\ntype SlotProps = React.HTMLAttributes<HTMLElement> & {\n children: ReactElement\n}\n\nconst Slot = React.forwardRef<HTMLElement, SlotProps>(\n ({ children, className, style, ...slotProps }, forwardedRef) => {\n if (!React.isValidElement(children)) return null\n\n const childProps = children.props as Record<string, any>\n\n const composedProps: Record<string, any> = { ...childProps, ...slotProps }\n\n for (const key of Object.keys(slotProps)) {\n if (!key.startsWith('on')) continue\n const ours = (slotProps as any)[key]\n const theirs = childProps[key]\n if (typeof ours === 'function' && typeof theirs === 'function') {\n composedProps[key] = (event: any) => {\n theirs(event)\n ours(event)\n }\n }\n }\n\n composedProps.className = mergeClassName(childProps.className, className)\n composedProps.style = mergeStyle(childProps.style, style)\n\n composedProps.ref = mergeRefs((children as any).ref, forwardedRef)\n\n return React.cloneElement(children, composedProps)\n }\n)\nSlot.displayName = 'Slot'\n\ninterface DropDownContextType {\n visible: boolean\n toggle: () => void\n close: () => void\n rootRef: RefObject<HTMLDivElement>\n contentRef: RefObject<HTMLDivElement>\n}\n\nconst DropDownContext = createContext<DropDownContextType | undefined>(\n undefined\n)\n\nconst useDropDownContext = (): DropDownContextType => {\n const ctx = useContext(DropDownContext)\n if (!ctx) {\n throw new Error('useDropDownContext must be used within a DropDown.Root')\n }\n return ctx\n}\n\ninterface RootProps {\n children: ReactNode\n defaultVisible?: boolean\n closeOnOutsideClick?: boolean\n closeOnEsc?: boolean\n consumeOutsideClick?: boolean\n}\n\nconst Root = ({\n children,\n closeOnEsc = true,\n closeOnOutsideClick = true,\n consumeOutsideClick = true,\n defaultVisible = false,\n}: RootProps) => {\n const [visible, setVisible] = useState(defaultVisible)\n const rootRef = useRef<HTMLDivElement>(null)\n const contentRef = useRef<HTMLDivElement>(null)\n\n const close = useCallback(() => setVisible(false), [])\n const toggle = useCallback(() => setVisible((p) => !p), [])\n\n const { isTopOfStack } = useDropDownStack(rootRef, visible)\n\n useEffect(() => {\n if (!visible || !closeOnOutsideClick) return\n\n const onPointerDownCapture = (e: PointerEvent) => {\n if (!isTopOfStack) return\n if (typeof e.button === 'number' && e.button !== 0) return\n\n const root = rootRef.current\n const content = contentRef.current\n const target = e.target as Node | null\n const path = (e.composedPath?.() ?? []) as EventTarget[]\n\n const insideRoot =\n !!root && (path.includes(root) || (!!target && root.contains(target)))\n const insideContent =\n !!content &&\n (path.includes(content) || (!!target && content.contains(target)))\n\n if (insideRoot || insideContent) return\n\n if (consumeOutsideClick) {\n e.preventDefault()\n e.stopPropagation()\n ;(e as any).stopImmediatePropagation?.()\n }\n\n close()\n }\n\n document.addEventListener('pointerdown', onPointerDownCapture, true)\n return () => {\n document.removeEventListener('pointerdown', onPointerDownCapture, true)\n }\n }, [visible, closeOnOutsideClick, consumeOutsideClick, close, isTopOfStack])\n\n useEscapeKey(close, closeOnEsc && visible, isTopOfStack)\n\n const ctx = useMemo<DropDownContextType>(\n () => ({ close, contentRef, rootRef, toggle, visible }),\n [close, toggle, visible]\n )\n\n return (\n <DropDownContext.Provider value={ctx}>\n <div ref={rootRef} className={styles.root}>\n {children}\n </div>\n </DropDownContext.Provider>\n )\n}\n\ninterface TriggerProps {\n children: ReactNode\n asChild?: boolean\n}\n\nconst Trigger = ({ asChild = false, children }: TriggerProps) => {\n const { toggle } = useDropDownContext()\n\n const onPointerDown = useCallback((e: React.PointerEvent) => {\n swallow(e)\n }, [])\n\n const onClick = useCallback(\n (e: React.MouseEvent) => {\n swallow(e)\n toggle()\n },\n [toggle]\n )\n\n const onKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n swallow(e)\n toggle()\n }\n },\n [toggle]\n )\n\n if (asChild) {\n return (\n <Slot onPointerDown={onPointerDown} onClick={onClick}>\n {children as ReactElement}\n </Slot>\n )\n }\n\n return (\n <div\n role=\"button\"\n tabIndex={0}\n onPointerDown={onPointerDown}\n onClick={onClick}\n onKeyDown={onKeyDown}\n >\n {children}\n </div>\n )\n}\n\ninterface ContentProps {\n children: ReactNode\n horizontal?: 'left' | 'center' | 'right'\n vertical?: 'top' | 'bottom'\n className?: string\n offset?: number\n asChild?: boolean\n}\n\nconst Content = ({\n asChild = false,\n children,\n className,\n horizontal = 'left',\n offset = 8,\n vertical = 'bottom',\n}: ContentProps) => {\n const { close, contentRef, rootRef, visible } = useDropDownContext()\n\n const { calculatePosition, position } = useDropdownPosition(\n contentRef,\n rootRef,\n visible,\n horizontal,\n vertical,\n offset\n )\n\n useEffect(() => {\n const content = contentRef.current\n if (!content) return\n const observer = new ResizeObserver(() => calculatePosition())\n observer.observe(content)\n return () => observer.disconnect()\n }, [calculatePosition])\n\n useWindowEvents(calculatePosition, close, visible)\n\n if (!visible) return null\n\n const commonProps = {\n className: classNames(styles.dropdownContent, className),\n onClick: swallow as any,\n onPointerDown: swallow as any,\n style: { left: `${position.left}px`, top: `${position.top}px` },\n tabIndex: -1,\n }\n\n return createPortal(\n asChild ? (\n <Slot ref={contentRef as any} {...commonProps}>\n {children as ReactElement}\n </Slot>\n ) : (\n <div ref={contentRef} {...commonProps}>\n {children}\n </div>\n ),\n document.body\n )\n}\n\ninterface CloseProps {\n children: ReactNode\n onClick?: (event: React.MouseEvent) => void\n asChild?: boolean\n}\n\nconst Close = ({ asChild = false, children, onClick }: CloseProps) => {\n const { close } = useDropDownContext()\n\n const handleClick = useCallback(\n (event: React.MouseEvent) => {\n swallow(event)\n onClick?.(event)\n close()\n },\n [onClick, close]\n )\n\n if (asChild) {\n return <Slot onClick={handleClick}>{children as ReactElement}</Slot>\n }\n\n return <div onClick={handleClick}>{children}</div>\n}\n\nexport const DropDown = { Close, Content, Root, Trigger }\n","import classNames from 'classnames'\nimport React, {\n useState,\n useRef,\n ReactNode,\n forwardRef,\n MouseEvent,\n ElementType,\n useContext,\n useEffect,\n} from 'react'\n\nimport styles from './dialog.module.scss'\nimport {\n createEscapeHandler,\n createTabTrapHandler,\n useKeyboardControls,\n} from '../../hooks'\n\ninterface RootProps {\n children: React.ReactNode\n isOpen?: boolean\n onStateChange?: (isOpen: boolean) => void\n}\n\ninterface DialogContextProps {\n dialogRef: React.RefObject<HTMLDivElement>\n isOpen: boolean\n setIsOpen: (state: boolean) => void\n}\nconst DialogContext = React.createContext<DialogContextProps | null>(null)\n\nconst Root = ({\n children,\n isOpen: externalIsOpen,\n onStateChange,\n}: RootProps) => {\n const dialogRef = useRef<HTMLDivElement | null>(null)\n const [internalIsOpen, setInternalIsOpen] = useState(false)\n\n const isOpen = externalIsOpen !== undefined ? externalIsOpen : internalIsOpen\n const setIsOpen = (state: boolean) => {\n if (externalIsOpen === undefined) {\n setInternalIsOpen(state)\n }\n if (onStateChange) {\n onStateChange(state)\n }\n }\n\n const keyboardHandlers = [\n createEscapeHandler(() => setIsOpen(false)),\n createTabTrapHandler(dialogRef, isOpen),\n ]\n\n useKeyboardControls(keyboardHandlers, { enabled: isOpen })\n\n useEffect(() => {\n if (isOpen) {\n document.body.style.overflow = 'hidden'\n } else {\n document.body.style.overflow = 'unset'\n }\n\n return () => {\n document.body.style.overflow = 'unset'\n }\n }, [isOpen])\n\n useEffect(() => {\n if (isOpen && dialogRef.current) {\n const focusableElements = dialogRef.current.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n )\n const firstElement = focusableElements[0] as HTMLElement\n if (firstElement) {\n firstElement.focus()\n }\n }\n }, [isOpen])\n\n return (\n <DialogContext.Provider value={{ dialogRef, isOpen, setIsOpen }}>\n <div>{children}</div>\n </DialogContext.Provider>\n )\n}\n\ninterface TriggerProps<T extends ElementType = 'button'> {\n as?: T\n children: ReactNode\n}\n\nconst Trigger = <T extends ElementType = 'button'>({\n as,\n children,\n ...props\n}: TriggerProps<T> & React.ComponentPropsWithoutRef<T>) => {\n const context = useContext(DialogContext)\n if (!context) throw new Error('Trigger must be used within a Dialog.Root')\n\n const { setIsOpen } = context\n const Component = as || 'button'\n\n const handleClick = () => {\n setIsOpen(true)\n }\n\n return (\n <Component\n onClick={handleClick}\n {...props}\n className={styles.dialogTrigger}\n role={as && as !== 'button' ? 'button' : undefined}\n >\n {children}\n </Component>\n )\n}\n\ninterface ContentProps {\n children: ReactNode\n classNameOverlay?: string\n className?: string\n closeOnBackdropClick?: boolean\n}\n\nconst Content = forwardRef<HTMLDivElement, ContentProps>(\n (\n { children, classNameOverlay, className, closeOnBackdropClick = true },\n _\n ) => {\n const context = useContext(DialogContext)\n if (!context) throw new Error('Content must be used within a Dialog.Root')\n\n const { dialogRef, isOpen, setIsOpen } = context\n\n const handleBackdropClick = (event: MouseEvent<HTMLDivElement>) => {\n if (closeOnBackdropClick && event.target === event.currentTarget) {\n setIsOpen(false)\n }\n }\n\n if (!isOpen) return null\n\n return (\n <div\n ref={dialogRef}\n className={classNames(styles.dialogOverlay, classNameOverlay)}\n onClick={handleBackdropClick}\n role=\"dialog\"\n aria-modal=\"true\"\n >\n <div\n className={classNames(styles.dialogContent, className)}\n onClick={(e) => e.stopPropagation()}\n >\n {children}\n </div>\n </div>\n )\n }\n)\n\ninterface CloseProps<T extends ElementType = 'button'> {\n as?: T\n children?: ReactNode\n}\n\nconst Close = <T extends ElementType = 'button'>({\n as,\n children,\n ...props\n}: CloseProps<T> & React.ComponentPropsWithoutRef<T>) => {\n const context = useContext(DialogContext)\n if (!context) throw new Error('Close must be used within a Dialog.Root')\n\n const { setIsOpen } = context\n const Component = as || 'button'\n\n const handleClick = () => {\n setIsOpen(false)\n }\n\n return (\n <Component\n onClick={handleClick}\n {...props}\n className={classNames(styles.dialogClose, props.className)}\n role={as && as !== 'button' ? 'button' : undefined}\n >\n {children}\n </Component>\n )\n}\n\ninterface TitleProps {\n children: ReactNode\n className?: string\n}\n\nconst Title = ({ children, className }: TitleProps) => {\n return (\n <h2 className={classNames(styles.dialogTitle, className)}>{children}</h2>\n )\n}\n\ninterface SeparatorProps {}\n\nconst Separator = ({}: SeparatorProps) => {\n return <div className={styles.dialogSeparator} />\n}\n\nexport const Dialog = {\n Close,\n Content,\n Root,\n Separator,\n Title,\n Trigger,\n}\n","import classNames from 'classnames'\nimport {\n createContext,\n ReactNode,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport { createPortal } from 'react-dom'\n\nimport styles from './sidebar.module.scss'\n\ntype SidebarPosition = 'left' | 'right' | 'bottom' | 'top'\n\ntype SidebarContextProps = {\n isOpen: boolean\n position: SidebarPosition\n setPosition: (position: SidebarPosition) => void\n\n setOpen: (open: boolean) => void\n open: () => void\n close: () => void\n toggle: () => void\n}\n\nexport const SidebarContext = createContext<SidebarContextProps | undefined>(\n undefined\n)\n\nexport const useSidebarContext = () => {\n const context = useContext(SidebarContext)\n if (!context) {\n throw new Error('useSidebarContext must be used within a SidebarProvider')\n }\n return context\n}\n\nconst canUseDOM =\n typeof window !== 'undefined' && typeof document !== 'undefined'\n\nconst useLockBodyScroll = (locked: boolean) => {\n useEffect(() => {\n if (!canUseDOM) return\n if (!locked) return\n\n const body = document.body\n const scrollY = window.scrollY\n const prev = {\n left: body.style.left,\n overflow: body.style.overflow,\n paddingRight: body.style.paddingRight,\n position: body.style.position,\n right: body.style.right,\n top: body.style.top,\n width: body.style.width,\n }\n\n const scrollbarWidth =\n window.innerWidth - document.documentElement.clientWidth\n\n body.style.position = 'fixed'\n body.style.top = `-${scrollY}px`\n body.style.left = '0'\n body.style.right = '0'\n body.style.width = '100%'\n body.style.overflow = 'hidden'\n if (scrollbarWidth > 0) body.style.paddingRight = `${scrollbarWidth}px`\n\n return () => {\n body.style.position = prev.position\n body.style.top = prev.top\n body.style.left = prev.left\n body.style.right = prev.right\n body.style.width = prev.width\n body.style.paddingRight = prev.paddingRight\n body.style.overflow = prev.overflow\n\n window.scrollTo(0, scrollY)\n }\n }, [locked])\n}\n\ntype SidebarRootProps = {\n isOpen: boolean\n setIsOpen: (isOpen: boolean) => void\n children: ReactNode\n position?: SidebarPosition\n}\n\nconst Root = ({\n children,\n isOpen,\n position: initialPosition = 'right',\n setIsOpen,\n}: SidebarRootProps) => {\n const [position, setPosition] = useState<SidebarPosition>(initialPosition)\n\n useEffect(() => {\n setPosition(initialPosition)\n }, [initialPosition])\n\n useLockBodyScroll(isOpen)\n\n const setOpen = useCallback(\n (open: boolean) => {\n setIsOpen(open)\n },\n [setIsOpen]\n )\n\n const open = useCallback(() => setOpen(true), [setOpen])\n const close = useCallback(() => setOpen(false), [setOpen])\n const toggle = useCallback(() => setOpen(!isOpen), [setOpen, isOpen])\n\n const value = useMemo<SidebarContextProps>(\n () => ({\n close,\n isOpen,\n open,\n position,\n setOpen,\n setPosition,\n toggle,\n }),\n [isOpen, position, setPosition, setOpen, open, close, toggle]\n )\n\n return (\n <SidebarContext.Provider value={value}>{children}</SidebarContext.Provider>\n )\n}\n\ntype SidebarTriggerProps = {\n children: ReactNode\n className?: string\n}\n\nconst Trigger = ({ children, className }: SidebarTriggerProps) => {\n const { open } = useSidebarContext()\n\n return (\n <button\n type=\"button\"\n className={classNames(styles.trigger, className)}\n onClick={open}\n aria-haspopup=\"dialog\"\n >\n {children}\n </button>\n )\n}\n\ntype SidebarOverlayProps = {\n className?: string\n children?: ReactNode\n closeOnClick?: boolean\n}\n\nconst Overlay = ({\n children,\n className,\n closeOnClick = true,\n}: SidebarOverlayProps) => {\n const { close, isOpen, position } = useSidebarContext()\n\n if (!canUseDOM) return null\n\n const overlayNode = (\n <div\n className={classNames(\n styles.overlay,\n styles[`overlay_${position}`],\n { [styles.overlayOpen]: isOpen },\n className\n )}\n onMouseDown={(e) => {\n e.preventDefault()\n if (closeOnClick) close()\n }}\n aria-hidden={!isOpen}\n >\n {children}\n </div>\n )\n\n return createPortal(overlayNode, document.body)\n}\n\ntype SidebarContentProps = {\n position?: SidebarPosition\n children: ReactNode\n className?: string\n closeOnEsc?: boolean\n}\n\nconst Content = ({\n children,\n className,\n closeOnEsc = true,\n position: positionProp,\n}: SidebarContentProps) => {\n const {\n close,\n isOpen,\n position: ctxPosition,\n setPosition,\n } = useSidebarContext()\n const position = positionProp ?? ctxPosition\n\n const contentRef = useRef<HTMLDivElement | null>(null)\n\n useEffect(() => {\n setPosition(position)\n }, [position, setPosition])\n\n useEffect(() => {\n if (!closeOnEsc) return\n if (!isOpen) return\n\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') close()\n }\n\n document.addEventListener('keydown', onKeyDown)\n return () => document.removeEventListener('keydown', onKeyDown)\n }, [isOpen, closeOnEsc, close])\n\n useEffect(() => {\n if (isOpen) contentRef.current?.focus()\n }, [isOpen])\n\n return (\n <div\n ref={contentRef}\n tabIndex={-1}\n role=\"dialog\"\n aria-modal=\"true\"\n className={classNames(\n styles.content,\n styles[position],\n {\n [styles.isClosed]: !isOpen,\n [styles.isOpen]: isOpen,\n },\n className\n )}\n >\n {children}\n </div>\n )\n}\n\ntype SidebarCloseProps = {\n children: ReactNode\n className?: string\n}\n\nconst Close = ({ children, className }: SidebarCloseProps) => {\n const { close } = useSidebarContext()\n\n return (\n <button\n type=\"button\"\n className={classNames(styles.closeButton, className)}\n onClick={close}\n >\n {children}\n </button>\n )\n}\n\nexport const Sidebar = {\n Close,\n Content,\n Overlay,\n Root,\n Trigger,\n}\n","import classNames from 'classnames'\nimport React, { ElementType, forwardRef, ReactNode, useState } from 'react'\n\nimport style from './switcher-buttons.module.scss'\n\ninterface ComponentValues {\n value: string\n [key: string]: any\n}\n\ninterface SwitcherProps {\n componentValues: ComponentValues[]\n defaultValue?: string\n onChange?: (value: string) => void\n selectedValue?: string\n component: ElementType\n containerProps?: React.HTMLAttributes<HTMLDivElement>\n slot?: ReactNode\n className?: string\n}\n\nexport const SwitcherButtons = forwardRef<HTMLDivElement, SwitcherProps>(\n (\n {\n className,\n component: Component,\n componentValues,\n containerProps,\n onChange,\n selectedValue,\n slot,\n },\n ref\n ) => {\n const [activeValue, setActiveValue] = useState<string>(\n selectedValue || componentValues[0].value\n )\n\n const onChangeHandler = (value: string) => {\n setActiveValue(value)\n if (onChange) onChange(value)\n }\n\n return (\n <div ref={ref} className={style.switcher} {...containerProps}>\n <div className={classNames(style.buttons, className)}>\n {componentValues.map((button, index) => (\n <Component\n key={index}\n {...button}\n selected={activeValue === button.value}\n onClick={() => onChangeHandler(button.value)}\n />\n ))}\n </div>\n {slot && (\n <>\n <div className={style.separator} />\n {slot}\n </>\n )}\n </div>\n )\n }\n)\n","import classNames from 'classnames'\nimport { FocusEventHandler, MouseEventHandler, ReactNode } from 'react'\n\nimport s from './table.module.scss'\n\ninterface Props {\n children: ReactNode\n className?: string\n}\n\ntype RootProps = Props\nconst Root = ({ children, className }: RootProps) => {\n return <table className={classNames(s.root, className)}>{children}</table>\n}\n\ntype CaptionProps = Props\nconst Caption = ({ children, className }: CaptionProps) => {\n return (\n <caption className={classNames(s.caption, className)}>{children}</caption>\n )\n}\n\ntype HeaderProps = Props\nconst Header = ({ children, className }: HeaderProps) => {\n return <thead className={classNames(s.header, className)}>{children}</thead>\n}\n\ninterface RowProps extends Props {\n onClick?: MouseEventHandler<HTMLTableRowElement> | undefined\n onDoubleClick?: MouseEventHandler<HTMLTableRowElement> | undefined\n onBlur?: FocusEventHandler<HTMLTableRowElement> | undefined\n}\nconst Row = ({\n children,\n className,\n onBlur,\n onClick,\n onDoubleClick,\n}: RowProps) => {\n return (\n <tr\n className={classNames(s.row, className)}\n onClick={onClick}\n onDoubleClick={onDoubleClick}\n onBlur={onBlur}\n >\n {children}\n </tr>\n )\n}\n\ntype HeadProps = Props\nconst Head = ({ children, className }: HeadProps) => {\n return <th className={classNames(s.head, className)}>{children}</th>\n}\n\ntype BodyProps = Props\nconst Body = ({ children, className }: BodyProps) => {\n return <tbody className={classNames(s.body, className)}>{children}</tbody>\n}\n\ntype CellProps = Props\nconst Cell = ({ children, className }: CellProps) => {\n return <td className={classNames(s.cell, className)}>{children}</td>\n}\n\ntype FooterProps = Props\nconst Footer = ({ children, className }: FooterProps) => {\n return <tfoot className={classNames(s.footer, className)}>{children}</tfoot>\n}\n\nexport const Table = Object.assign(Root, {\n Body,\n Caption,\n Cell,\n Footer,\n Head,\n Header,\n Root,\n Row,\n})\n","import classNames from 'classnames'\nimport { X, Eye, Search, EyeOff } from 'lucide-react'\nimport {\n ChangeEvent,\n ForwardedRef,\n ReactNode,\n forwardRef,\n useState,\n} from 'react'\n\nimport s from './text-field.module.scss'\n\ntype SharedProps = {\n className?: string\n disabled?: boolean\n error?: string\n label?: string\n onBlur?: () => void\n onChange: (value: string) => void\n onFocus?: () => void\n placeholder?: string\n required?: boolean\n type?: 'text' | 'password' | 'email' | 'url' | string\n value: string\n}\n\nexport type TextFieldProps =\n | (SharedProps & {\n as?: 'input'\n inputType?: 'password' | 'search' | 'text'\n })\n | (SharedProps & { as: 'textarea' })\n\nexport type TextFieldComponent = {\n (\n props: Extract<TextFieldProps, { as: 'textarea' }> & {\n ref?: ForwardedRef<HTMLTextAreaElement>\n }\n ): ReactNode\n (\n props: Extract<TextFieldProps, { as?: 'input' }> & {\n ref?: ForwardedRef<HTMLInputElement>\n }\n ): ReactNode\n}\n\nexport const TextField: TextFieldComponent = forwardRef<\n HTMLInputElement | HTMLTextAreaElement,\n TextFieldProps\n>(({ className, error, label, onChange, required, ...props }, ref) => {\n const [showPassword, setShowPassword] = useState(false)\n\n const handleChange = (\n e: ChangeEvent<HTMLInputElement | HTMLTextAreaElement>\n ) => onChange(e.currentTarget.value)\n\n const sharedClassName = classNames(s.input, error && s.error, className)\n let resolvedFragment: ReactNode\n\n if (!props.as || props.as === 'input') {\n const { inputType, ...restProps } = props\n const isSearch = inputType === 'search'\n const isPassword = inputType === 'password'\n const passwordFieldNextType = showPassword ? 'text' : 'password'\n\n resolvedFragment = (\n <>\n <input\n className={classNames(sharedClassName, isSearch && s.inputSearch)}\n onChange={handleChange}\n ref={ref as unknown as ForwardedRef<HTMLInputElement>}\n type={isPassword ? passwordFieldNextType : inputType}\n {...restProps}\n />\n {isPassword &&\n (showPassword ? (\n <Eye\n strokeWidth={2.5}\n width={20}\n className={classNames(s.button, label && s.buttonWithLabel)}\n onClick={() => setShowPassword((prev) => !prev)}\n />\n ) : (\n <EyeOff\n strokeWidth={2.5}\n width={20}\n className={classNames(s.button, label && s.buttonWithLabel)}\n onClick={() => setShowPassword((prev) => !prev)}\n />\n ))}\n {isSearch && props.value && (\n <X\n onClick={() => onChange('')}\n className={classNames(\n s.button,\n label && s.buttonWithLabel,\n s.resetSearchValue\n )}\n strokeWidth={2.5}\n size={24}\n />\n )}\n {isSearch && (\n <Search\n className={classNames(\n s.searchOutline,\n label && s.searchOutlineWithLabel\n )}\n size={20}\n />\n )}\n </>\n )\n }\n\n if (props.as === 'textarea') {\n resolvedFragment = (\n <textarea\n className={sharedClassName}\n onChange={handleChange}\n ref={ref as unknown as ForwardedRef<HTMLTextAreaElement>}\n {...props}\n />\n )\n }\n\n return (\n <div className={s.root}>\n <span className={s.title}>\n {label}\n {required && <span className={s.titleError}>*</span>}\n </span>\n <div className={s.inputContainer}>{resolvedFragment}</div>\n <div className={s.errorMessage}>{error}</div>\n </div>\n )\n})\n","import { createContext, useContext, useState, ReactNode } from 'react'\n\nexport type Theme = 'light' | 'dark'\nexport type ThemeValue = Theme | 'system'\n\ninterface ThemeContextType {\n theme: ThemeValue\n setTheme: (theme: ThemeValue) => void\n}\n\nconst ThemeContext = createContext<ThemeContextType | undefined>(undefined)\n\nexport const ThemeProvider = ({ children }: { children: ReactNode }) => {\n const defaultTheme = getTheme() || 'system'\n const [theme, setTheme] = useState<ThemeValue>(defaultTheme)\n\n return (\n <ThemeContext.Provider value={{ setTheme, theme }}>\n {children}\n </ThemeContext.Provider>\n )\n}\n\nexport const useTheme = () => {\n const context = useContext(ThemeContext)\n\n if (!context) {\n throw new Error('useTheme must be used within a ThemeProvider')\n }\n\n setDataThemeHandler(context.theme)\n\n return context\n}\n\nconst setDataThemeHandler = (value: ThemeValue) => {\n const savedTheme = getTheme()\n\n saveTheme(value || savedTheme)\n}\n\nconst saveTheme = (theme: ThemeValue) => {\n const prefersDarkScheme = window.matchMedia('(prefers-color-scheme: dark)')\n\n if (theme === 'system') {\n const defaultTheme = prefersDarkScheme.matches ? 'dark' : 'light'\n localStorage.setItem('theme', theme)\n setTheme(defaultTheme)\n } else {\n localStorage.setItem('theme', theme)\n setTheme(theme)\n }\n}\n\nconst setTheme = (theme: Theme) => {\n document.documentElement.setAttribute('data-theme', theme)\n}\n\nconst getTheme = () => {\n const theme = localStorage.getItem('theme')\n if (theme) return theme as ThemeValue\n}\n","import classNames from 'classnames'\nimport { ReactNode, forwardRef } from 'react'\n\nimport s from './tool-icon-button.module.scss'\n\nexport type ToolbarSlot = 'icon' | 'keybinding'\nexport type ToolbarClasses = { [P in ToolbarSlot]?: string }\n\ninterface Props {\n title?: string\n icon: ReactNode\n keybinding?: string\n aria_label?: string\n aria_keyshortcuts?: string\n classes?: ToolbarClasses\n name?: string\n id?: string\n isActive?: boolean\n disabled?: boolean\n onClick?: () => void\n}\n\nexport const ToolIconButton = forwardRef<HTMLDivElement, Props>(\n (props, ref) => {\n const { classes, disabled, icon, isActive, keybinding, onClick, title } =\n props\n\n const styles = getClasses(classes, isActive, disabled)\n\n return (\n <label className={s.root} title={title}>\n <div\n className={styles.icon}\n ref={ref}\n tabIndex={disabled ? -1 : 0}\n role=\"button\"\n aria-pressed={isActive}\n aria-disabled={disabled}\n onClick={!disabled ? onClick : undefined}\n >\n {icon}\n </div>\n {keybinding && <span className={styles.keybinding}>{keybinding}</span>}\n </label>\n )\n }\n)\n\nconst getClasses = (\n classes?: ToolbarClasses,\n isActive?: boolean,\n disabled?: boolean\n): Required<ToolbarClasses> => ({\n icon: classNames(\n s.icon,\n {\n [s.active]: isActive,\n [s.disabled]: disabled,\n },\n classes?.icon\n ),\n keybinding: classNames(s.keybinding, classes?.keybinding),\n})\n"],"names":["ButtonRender","children","className","Component","disabled","fullWidth","icon","shortcut","variant","props","ref","content","jsxs","s","jsx","classNames","Button","forwardRef","CardRoot","CardContent","ignoreHeader","CardHeader","Card","useKeyboardControls","handlers","options","enabled","preventDefault","stopPropagation","useEffect","handleKeyDown","event","handler","createKeyHandler","key","callback","ctrlKey","shiftKey","altKey","metaKey","createEscapeHandler","createTabTrapHandler","containerRef","focusableElements","firstElement","lastElement","useEscapeKey","shouldHandle","useWindowEvents","onScroll","useDropdownPosition","contentRef","rootRef","visible","horizontal","vertical","offset","position","setPosition","useState","calculatePosition","useCallback","trigger","triggerRect","contentRect","viewportWidth","viewportHeight","padding","finalVertical","finalHorizontal","top","left","spaceBelow","spaceAbove","useLayoutEffect","openDropDownStack","useDropDownStack","index","swallow","e","mergeClassName","a","b","mergeStyle","mergeRefs","refs","node","Slot","React","style","slotProps","forwardedRef","childProps","composedProps","ours","theirs","DropDownContext","createContext","useDropDownContext","ctx","useContext","Root","closeOnEsc","closeOnOutsideClick","consumeOutsideClick","defaultVisible","setVisible","useRef","close","toggle","p","isTopOfStack","onPointerDownCapture","root","target","path","insideRoot","insideContent","useMemo","styles","Trigger","asChild","onPointerDown","onClick","onKeyDown","Content","observer","commonProps","createPortal","Close","handleClick","DropDown","DialogContext","externalIsOpen","onStateChange","dialogRef","internalIsOpen","setInternalIsOpen","isOpen","setIsOpen","state","keyboardHandlers","as","context","classNameOverlay","closeOnBackdropClick","_","handleBackdropClick","Title","Separator","Dialog","SidebarContext","useSidebarContext","canUseDOM","useLockBodyScroll","locked","body","scrollY","prev","scrollbarWidth","initialPosition","setOpen","open","value","Overlay","closeOnClick","overlayNode","positionProp","ctxPosition","Sidebar","SwitcherButtons","componentValues","containerProps","onChange","selectedValue","slot","activeValue","setActiveValue","onChangeHandler","button","Fragment","Caption","Header","Row","onBlur","onDoubleClick","Head","Body","Cell","Footer","Table","TextField","error","label","required","showPassword","setShowPassword","handleChange","sharedClassName","resolvedFragment","inputType","restProps","isSearch","isPassword","passwordFieldNextType","Eye","EyeOff","X","Search","ThemeContext","ThemeProvider","defaultTheme","getTheme","theme","setTheme","useTheme","setDataThemeHandler","savedTheme","saveTheme","prefersDarkScheme","ToolIconButton","classes","isActive","keybinding","title","getClasses"],"mappings":"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"}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
+
type SidebarPosition = 'left' | 'right' | 'bottom' | 'top';
|
|
2
3
|
type SidebarContextProps = {
|
|
3
4
|
isOpen: boolean;
|
|
4
|
-
|
|
5
|
+
position: SidebarPosition;
|
|
6
|
+
setPosition: (position: SidebarPosition) => void;
|
|
7
|
+
setOpen: (open: boolean) => void;
|
|
8
|
+
open: () => void;
|
|
9
|
+
close: () => void;
|
|
10
|
+
toggle: () => void;
|
|
5
11
|
};
|
|
6
12
|
export declare const SidebarContext: import("react").Context<SidebarContextProps | undefined>;
|
|
7
13
|
export declare const useSidebarContext: () => SidebarContextProps;
|
|
@@ -9,23 +15,32 @@ type SidebarRootProps = {
|
|
|
9
15
|
isOpen: boolean;
|
|
10
16
|
setIsOpen: (isOpen: boolean) => void;
|
|
11
17
|
children: ReactNode;
|
|
18
|
+
position?: SidebarPosition;
|
|
12
19
|
};
|
|
13
20
|
type SidebarTriggerProps = {
|
|
14
21
|
children: ReactNode;
|
|
22
|
+
className?: string;
|
|
23
|
+
};
|
|
24
|
+
type SidebarOverlayProps = {
|
|
25
|
+
className?: string;
|
|
26
|
+
children?: ReactNode;
|
|
27
|
+
closeOnClick?: boolean;
|
|
15
28
|
};
|
|
16
29
|
type SidebarContentProps = {
|
|
17
|
-
position?:
|
|
30
|
+
position?: SidebarPosition;
|
|
18
31
|
children: ReactNode;
|
|
19
32
|
className?: string;
|
|
20
|
-
|
|
33
|
+
closeOnEsc?: boolean;
|
|
21
34
|
};
|
|
22
35
|
type SidebarCloseProps = {
|
|
23
36
|
children: ReactNode;
|
|
37
|
+
className?: string;
|
|
24
38
|
};
|
|
25
39
|
export declare const Sidebar: {
|
|
26
|
-
Close: ({ children }: SidebarCloseProps) => import("react/jsx-runtime").JSX.Element;
|
|
27
|
-
Content: ({ children, className,
|
|
28
|
-
|
|
29
|
-
|
|
40
|
+
Close: ({ children, className }: SidebarCloseProps) => import("react/jsx-runtime").JSX.Element;
|
|
41
|
+
Content: ({ children, className, closeOnEsc, position: positionProp, }: SidebarContentProps) => import("react/jsx-runtime").JSX.Element;
|
|
42
|
+
Overlay: ({ children, className, closeOnClick, }: SidebarOverlayProps) => import("react").ReactPortal | null;
|
|
43
|
+
Root: ({ children, isOpen, position: initialPosition, setIsOpen, }: SidebarRootProps) => import("react/jsx-runtime").JSX.Element;
|
|
44
|
+
Trigger: ({ children, className }: SidebarTriggerProps) => import("react/jsx-runtime").JSX.Element;
|
|
30
45
|
};
|
|
31
46
|
export {};
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { u as J, D as H, B as G, a as Q } from "./ToolIconButton
|
|
2
|
-
import { b as an, e as ln, c as rn, d as dn, C as hn, f as _n, h as un, S as mn, i as pn, T as gn, j as fn, k as yn, g as kn } from "./ToolIconButton
|
|
1
|
+
import { u as J, D as H, B as G, a as Q } from "./ToolIconButton-COS9gEWi.js";
|
|
2
|
+
import { b as an, e as ln, c as rn, d as dn, C as hn, f as _n, h as un, S as mn, i as pn, T as gn, j as fn, k as yn, g as kn } from "./ToolIconButton-COS9gEWi.js";
|
|
3
3
|
import { jsx as s, jsxs as g, Fragment as X } from "react/jsx-runtime";
|
|
4
4
|
import m from "classnames";
|
|
5
5
|
import { useState as k, useEffect as $, useCallback as M, useRef as O } from "react";
|
package/dist/index2.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx as e, jsxs as s } from "react/jsx-runtime";
|
|
2
2
|
import m from "classnames";
|
|
3
3
|
import { Image as h, Video as g, FileQuestion as p, HardDriveDownload as y, Share2 as I, PencilRuler as u } from "lucide-react";
|
|
4
|
-
import { e as l, f as o, B as v } from "./ToolIconButton
|
|
5
|
-
import { l as U, a as X } from "./ToolIconButton
|
|
4
|
+
import { e as l, f as o, B as v } from "./ToolIconButton-COS9gEWi.js";
|
|
5
|
+
import { l as U, a as X } from "./ToolIconButton-COS9gEWi.js";
|
|
6
6
|
import "react";
|
|
7
7
|
const f = [
|
|
8
8
|
"png",
|
package/dist/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@charset "UTF-8";@import"https://fonts.googleapis.com/css2?family=Assistant:wght@400..700&display=swap";@import"https://fonts.googleapis.com/css2?family=Inter:opsz,wght@14..32,100..900&display=swap";@import"https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap";._text_4m304_1,._tertiary_4m304_1,._secondary_4m304_1,._primary_4m304_1{display:inline-flex;justify-content:center;cursor:pointer;user-select:none;width:fit-content;gap:.625em;min-height:2.25em;padding:.625em;font-weight:var(--font-weight-medium);text-align:center;border-radius:var(--border-radius-m)}._text_4m304_1:focus,._tertiary_4m304_1:focus,._secondary_4m304_1:focus,._primary_4m304_1:focus{outline:none}._text_4m304_1:focus-visible,._tertiary_4m304_1:focus-visible,._secondary_4m304_1:focus-visible,._primary_4m304_1:focus-visible{outline:2px solid var(--color-accent-700)}._primary_4m304_1{color:var(--color-light-100);background-color:var(--color-accent-500)}._primary_4m304_1:hover{background-color:var(--color-accent-300)}._primary_4m304_1:active{background-color:var(--color-accent-700)}._secondary_4m304_1{color:var(--color-light-100);background-color:var(--color-dark-300)}._secondary_4m304_1:focus-visible{outline:1px solid var(--color-accent-300)}._secondary_4m304_1:hover{background-color:var(--color-dark-100)}._secondary_4m304_1:active{background-color:var(--color-dark-400)}._tertiary_4m304_1{border:1px solid currentcolor}._fullWidth_4m304_50{width:100%}._buttonWithIcon_4m304_54{display:flex;justify-content:space-between;align-items:center;gap:.625em;width:100%}._buttonWithIcon_4m304_54 ._content_4m304_61{display:flex;align-items:center;gap:.625em}._buttonWithIcon_4m304_54 svg{width:var(--icon-size-lg);height:var(--icon-size-lg)}._buttonWithIcon_4m304_54 ._shortcut_4m304_70{opacity:.6}._text_4m304_1:hover,._tertiary_4m304_1:hover{background-color:var(--color-accent-100)}._text_4m304_1:active,._tertiary_4m304_1:active{background-color:var(--color-accent-300);outline:1px solid var(--color-accent-700)}._disabled_4m304_82{cursor:not-allowed;pointer-events:none;opacity:.65}._content_23x5h_1,._header_23x5h_1{display:flex;flex-direction:column;gap:.75rem}._root_23x5h_7{background-color:var(--bg-color);box-shadow:var(--box-shadow);border-radius:.125rem;padding:.75rem}._header_23x5h_1{display:flex;align-items:flex-start;gap:.75rem;font-size:1.25rem;border-bottom:1px solid var(--dialog-border-color);padding:0 0 .75rem}._header_23x5h_1+._contentAfterHeader_23x5h_22{padding-top:1.125rem}._root_ibcdq_1{display:inline-block;position:relative}._dropdownContent_ibcdq_6{position:fixed;background-color:var(--bg-modal-color);border-radius:var(--border-radius-lg);margin-top:.5rem;padding:.5rem;box-shadow:var(--box-shadow);z-index:1000;min-width:200px;max-width:calc(100vw - 32px)}@media (max-width: 768px){._dropdownContent_ibcdq_6{min-width:150px;max-width:calc(100vw - 32px)}}@media (max-width: 480px){._dropdownContent_ibcdq_6{min-width:120px;max-width:calc(100vw - 24px)}}._left_ibcdq_30{left:0}._center_ibcdq_34{left:50%;transform:translate(-50%)}._right_ibcdq_39{right:20%}._top_ibcdq_43{bottom:100%}._bottom_ibcdq_47{top:100%}._fixedPosition_ibcdq_51{position:fixed;left:5%}._dialogOverlay_1h2c4_1{position:fixed;display:flex;align-items:center;justify-content:center;top:0;left:0;width:100vw;height:100vh;background-color:#00000080}._dialogTrigger_1h2c4_13{border:none;background:none;padding:0;cursor:pointer;font:inherit}._dialogContent_1h2c4_21{padding:.5rem;background-color:var(--bg-modal-color);border-radius:8px;border:none;box-shadow:var(--box-shadow);width:fit-content}._dialogContent_1h2c4_21::backdrop{background-color:#00000080}._dialogClose_1h2c4_34{border:none;background:none;padding:0;cursor:pointer;font:inherit}._dialogTitle_1h2c4_42{font-size:1.5rem;padding-block:.5rem}._dialogSeparator_1h2c4_47{height:1px;background-color:var(--color-light-500);margin:10px 0}:root{--sidebar-width: 250px;--sidebar-height: 100vh;--sidebar-bg: var(--color-dark-300);--sidebar-color: var(--color-light-500);--animation-duration: .3s;--sidebar-zIndex-trigger: 10;--sidebar-zIndex-content: 100}._sidebar_dg2au_12{width:100%}._trigger_dg2au_16{position:relative;z-index:var(--sidebar-zIndex-trigger)}._content_dg2au_21{width:var(--sidebar-width);height:var(--sidebar-height);background:var(--sidebar-bg);color:var(--sidebar-color);padding:1rem;box-shadow:var(--box-shadow, 0 4px 6px rgba(0, 0, 0, .1));position:fixed;top:0;transition:transform var(--animation-duration) ease-in-out;z-index:var(--sidebar-zIndex-content)}._left_dg2au_34{left:0;transform:translate(-100%)}._left_dg2au_34._open_dg2au_38{transform:translate(0)}._right_dg2au_42{right:0;transform:translate(100%)}._right_dg2au_42._open_dg2au_38{transform:translate(0)}._bottom_dg2au_50{inset:auto 0 0;height:fit-content;width:100%;transform:translateY(100%)}._bottom_dg2au_50._open_dg2au_38{transform:translateY(0)}._top_dg2au_63{inset:0 0 auto;height:fit-content;width:100%;transform:translateY(-100%)}._top_dg2au_63._open_dg2au_38{transform:translateY(0)}._switcher_k6tdq_1{display:flex;gap:.5rem;align-items:center}._switcher_k6tdq_1 ._buttons_k6tdq_6{display:flex;gap:.5rem}._switcher_k6tdq_1 ._separator_k6tdq_10{width:1px;height:1.5rem;border-radius:var(--border-radius-lg);background-color:var(--color-light-700)}:root{--head-color: var(--color-dark-300);--cell-color: var(--color-dark-900);--footer-background: var(--color-light-900)}:root[data-theme=dark]{--head-color: var(--color-light-900);--cell-color: var(--color-light-100);--caption-color: var(--color-light-700);--footer-background: var(--color-dark-100)}._root_1b0i5_13{width:100%;border-spacing:0;caption-side:bottom}._header_1b0i5_19{border-bottom:1px solid var(--color-dark-100)}._footer_1b0i5_23{width:100%;background-color:var(--color-dark-100)}._row_1b0i5_28{border-bottom:1px solid var(--color-dark-100);display:flex;flex-direction:row;justify-content:space-between;align-items:center;width:100%}._row_1b0i5_28:hover{background-color:var(--color-dark-300);color:var(--color-light-100)}._body_1b0i5_41{display:flex;flex-direction:column;justify-content:center}._head_1b0i5_19,._cell_1b0i5_48{justify-items:flex-start;padding:.5rem;font-size:14px;width:100%}._cell_1b0i5_48{color:var(--cell-color)}._head_1b0i5_19{color:var(--head-color);font-weight:500;text-align:start}._caption_1b0i5_65{margin-top:1rem;color:var(--caption-color)}._storiesFooterCellOne_1b0i5_70{vertical-align:middle}._storiesFooterCellTwo_1b0i5_73{text-align:end}._inputContainer_iqbs3_1{position:relative;width:100%;background-color:inherit}._inputContainer_iqbs3_1 input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}._input_iqbs3_1{display:flex;width:100%;padding-inline:16px;padding-block:12px;color:var(--color-dark-100);background-color:var(--color-light-500);border:1px solid transparent;border-radius:16px;font-size:var(--font-weight-bold);line-height:var(--line-height-m)}._input_iqbs3_1:disabled{color:var(--color-dark-300)}._input_iqbs3_1:focus{color:var(--color-dark-300);border-color:var(--color-accent-500)}._input_iqbs3_1:hover{color:var(--color-dark-100);border-color:var(--color-dark-100)}._input_iqbs3_1:active:enabled{border-color:var(--color-light-100)}._input_iqbs3_1:focus-visible{border-color:var(--color-dark-100)}._input_iqbs3_1._inputSearch_iqbs3_40{padding-inline:50px 34px}._input_iqbs3_1._inputSearch_iqbs3_40._error_iqbs3_43{color:var(--color-danger-300);border-color:var(--color-danger-300)}._input_iqbs3_1._inputSearch_iqbs3_40._error_iqbs3_43::placeholder{color:red}._input_iqbs3_1._error_iqbs3_43{color:var(--color-danger-300);border-color:var(--color-danger-300)}._input_iqbs3_1._error_iqbs3_43::placeholder{color:red}._button_iqbs3_58{position:absolute;top:16px;right:15px;width:20px;height:20px;padding:0;background-color:inherit;border:0}._button_iqbs3_58._buttonWithLabel_iqbs3_68{cursor:pointer;bottom:8px}._resetSearchValue_iqbs3_73{color:var(--color-dark-100)}._resetSearchValue_iqbs3_73:hover{color:var(--color-danger-300)}._searchOutline_iqbs3_80{position:absolute;top:14px;left:16px;color:var(--color-dark-100)}._errorMessage_iqbs3_87{position:absolute;font-size:var(--font-size-s);line-height:var(--line-height-m);color:var(--color-danger-300)}._root_17w6h_1{position:relative;display:inline-flex;align-items:center;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}._icon_17w6h_11{display:flex;justify-content:center;align-items:center;border-radius:var(--border-radius-lg);width:var(--button-size-lg);height:var(--button-size-lg);transition:background-color .2s ease}._icon_17w6h_11:hover{background-color:var(--color-accent-100)}._icon_17w6h_11:active,._icon_17w6h_11._active_17w6h_27{background-color:var(--color-accent-300);border:1px solid var(--color-accent-300)}._icon_17w6h_11._disabled_17w6h_31{opacity:.6;cursor:not-allowed;background-color:var(--color-light-700)}._icon_17w6h_11._disabled_17w6h_31:hover{background-color:var(--color-light-700)}._icon_17w6h_11 svg{width:var(--icon-size-lg);height:var(--icon-size-lg)}._keybinding_17w6h_44{position:absolute;bottom:4px;right:2px;font-size:.625rem;color:var(--color-dark-300);-webkit-user-select:none;user-select:none}._buttonGroup_ejhd6_1{display:flex;gap:0;border-radius:var(--border-radius-lg);width:fit-content;overflow:hidden}._button_ejhd6_1{display:flex;align-items:center;padding:.5rem;border:none;background-color:var(--color-dark-100);color:#fff;transition:background-color .3s;cursor:pointer}._button_ejhd6_1:hover:not(:disabled){background-color:var(--color-dark-300)}._button_ejhd6_1:active:not(:disabled){background-color:var(--color-dark-500)}._button_ejhd6_1:disabled{background-color:#555;cursor:not-allowed}._button_ejhd6_1 button:focus-visible{outline:2px solid var(--color-dark-500);outline-offset:2px}._button_ejhd6_1 svg{height:var(--icon-size-lg);width:var(--icon-size-lg)}._button_ejhd6_1 ._label_ejhd6_37{height:var(--icon-size-lg);line-height:1rem}._single_ejhd6_42{border-radius:var(--border-radius-lg)}._first_ejhd6_46{border-radius:var(--border-radius-lg) 0 0 var(--border-radius-lg)}._last_ejhd6_50{border-radius:0 var(--border-radius-lg) var(--border-radius-lg) 0}._selected_ejhd6_54{background-color:var(--color-dark-500)}._colorButton_wldf2_1{filter:none;transition:background-color .2s ease;display:flex;justify-content:flex-end;align-items:end;padding-right:.25rem;border:.4px solid var(--color-light-700);font-size:var(--font-size-xs);background-color:var(--swatch-color)}._colorButton_wldf2_1:hover{box-shadow:0 0 0 1px var(--color-light-900)}._colorButton_wldf2_1:active{box-shadow:0 0 0 .5px var(--color-accent-700)}._colorButton_wldf2_1:disabled{opacity:.6;cursor:not-allowed}._colorButton_wldf2_1 ._hotkey_wldf2_22{user-select:none}._selected_wldf2_26,._selected_wldf2_26:hover{box-shadow:0 0 0 1px var(--color-accent-700)}._disabled_wldf2_33{opacity:.6;cursor:not-allowed}._disabled_wldf2_33:hover{border-color:transparent}._transparent_wldf2_41{background:url(data:image/png;base64,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) center center;background-size:cover}._small_wldf2_46{width:var(--button-size-xs);height:var(--button-size-xs);border-radius:var(--border-radius-m)}._medium_wldf2_52{width:var(--button-size-m);height:var(--button-size-m);border-radius:var(--border-radius-m)}._large_wldf2_58{width:var(--button-size-xl);height:var(--button-size-xl);border-radius:var(--border-radius-lg)}._content_1ybrq_1{top:-.5rem;left:3rem;max-width:210px;padding-inline:1rem;padding-block:.5rem 1rem;display:flex;flex-direction:column;gap:.5rem}._content_1ybrq_1 ._section_1ybrq_11{display:flex;flex-direction:column;gap:.25rem}._title_1ybrq_17{font-size:var(--font-size-small);font-weight:var(--font-weight-regular)}@media (max-width: 738px){._content_1ybrq_1{top:2rem;left:-5rem}}:root{--iconButton-border: 1px solid var(--color-accent-100);--iconButton-color: var(--color-dark-900)}:root[data-theme=light]{--iconButton-border: 1px solid var(--color-accent-100);--iconButton-color: var(--color-dark-900)}:root[data-theme=dark]{--iconButton-border: 1px solid var(--color-accent-100);--iconButton-color: var(--color-light-500)}._iconButton_yk1r1_14{color:var(--iconButton-color);display:flex;align-items:center;justify-content:center;width:var(--button-size-lg);height:var(--button-size-lg);border-radius:var(--border-radius-lg);transition:background-color .2s ease;border:var(--iconButton-border)}._iconButton_yk1r1_14:disabled{cursor:not-allowed;border:1px solid transparent}._iconButton_yk1r1_14 svg{width:var(--icon-size-lg);height:var(--icon-size-lg)}._primary_yk1r1_34{background-color:var(--color-light-500);border:1px solid var(--color-light-500)}._primary_yk1r1_34:hover{background-color:var(--color-accent-300)}._primary_yk1r1_34:active{background-color:var(--color-accent-300);border-color:var(--color-accent-500)}._secondary_yk1r1_46:hover{background-color:var(--color-accent-100)}._secondary_yk1r1_46:active{background-color:var(--color-accent-500);border-color:var(--color-accent-500)}._transparent_yk1r1_54{border-color:transparent}._transparent_yk1r1_54:hover{background-color:var(--color-accent-100)}._transparent_yk1r1_54:active{background-color:var(--color-accent-300);border-color:var(--color-accent-500)}._selected_yk1r1_65{background-color:var(--color-accent-300);border:1px solid var(--color-accent-300)}._selected_yk1r1_65 ._transparent_yk1r1_54{background-color:var(--color-accent-500);border-color:var(--color-accent-500)}._disabled_yk1r1_74{opacity:.6;cursor:not-allowed;background-color:var(--color-light-700)}._disabled_yk1r1_74:hover{background-color:var(--color-light-700)}._disabled_yk1r1_74:active{border-color:var(--color-light-700);background-color:var(--color-light-700)}._hexInput_x3rtz_1{position:relative;box-sizing:border-box;display:grid;grid-template-columns:auto 1fr;max-width:200px;gap:.25rem;align-items:center;overflow:hidden}._hexInput_x3rtz_1 ._inputContainer_x3rtz_11{position:relative;display:flex;align-items:center;max-width:100%;overflow:hidden}._hexInput_x3rtz_1 ._hash_x3rtz_18{position:absolute;left:.5rem;color:var(--color-light-900);pointer-events:none;font-size:var(--font-size-xl)}._hexInput_x3rtz_1 ._input_x3rtz_11{flex:1;padding-left:1.5rem;height:1.875rem;border-radius:var(--border-radius-m);border:1px solid var(--color-light-700);padding-block:.25rem;padding-right:.5rem;max-width:100%;font-size:var(--font-size-m)}._hexInput_x3rtz_1 ._input_x3rtz_11:focus-visible,._hexInput_x3rtz_1 ._input_x3rtz_11:focus{border:1px solid var(--color-accent-700)}._hexInput_x3rtz_1 ._input_x3rtz_11._error_x3rtz_39{border-color:var(--color-error)}._hexInput_x3rtz_1 ._copyButton_x3rtz_42{width:1.875rem;height:1.875rem;align-self:flex-start;border-radius:var(--border-radius-m)}._hexInput_x3rtz_1 ._slot_x3rtz_48{border-left:1px solid var(--color-light-700);position:absolute;right:.5rem;bottom:.22rem;padding-inline:.5rem}._hexInput_x3rtz_1 ._copiedMessage_x3rtz_55{height:1.875rem;position:absolute;display:flex;align-items:center;justify-content:center;top:0;left:2rem;background-color:var(--color-dark-300);color:#fff;padding:4px 8px;border-radius:var(--border-radius-m);font-size:var(--font-size-xs);animation:_fadeInOut_x3rtz_1 2s ease-out}@keyframes _fadeInOut_x3rtz_1{0%{opacity:0}20%{opacity:1}80%{opacity:1}to{opacity:0}}._colorsList_1brrj_1{display:grid;grid-template-columns:1fr 1fr 1fr 1fr 1fr;grid-auto-rows:auto;grid-column-gap:.25rem;grid-row-gap:.25rem}._shadowList_1srdv_1{display:grid;grid-template-columns:1fr 1fr 1fr 1fr 1fr}._shadowText_1srdv_6{display:flex;justify-content:center;align-items:center;font-size:var(--font-size-xs);height:var(--button-size-xl)}._pagination_3kmd4_1{width:100%;max-width:800px;margin:0 auto;padding:20px 15px;user-select:none;display:flex;justify-content:space-between;align-items:center;gap:2rem}._pages_3kmd4_13{display:flex;align-items:center;gap:.5rem}._selectContainer_1kdni_1{position:relative}._selectButton_1kdni_5{display:flex;justify-content:space-between}._selectIcon_1kdni_10{transition:transform 2ms ease-in-out}._selectIconOpen_1kdni_14{transform:rotate(180deg)}._selectMenu_1kdni_18{position:absolute;background-color:var(--bg-modal-color);max-width:max-content;max-height:13rem;overflow-y:auto;overflow-x:hidden;border-radius:var(--border-radius-m);box-shadow:var(--box-shadow);z-index:10}._selectMenu_1kdni_18::-webkit-scrollbar{width:var(--scrollbar-width)}._selectMenu_1kdni_18::-webkit-scrollbar-track{background:var(--scrollbar-track-bg);border-radius:var(--border-radius-m)}._selectMenu_1kdni_18::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-bg);border-radius:4px}._selectMenu_1kdni_18::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover-bg)}._positionBottomRight_1kdni_44{top:100%;right:0;margin-top:.5rem}._positionBottomLeft_1kdni_50{top:100%;left:0;margin-top:.5rem}._positionTopRight_1kdni_56{bottom:100%;right:0;margin-bottom:.5rem}._positionTopLeft_1kdni_62{bottom:100%;left:0;margin-bottom:.5rem}._positionRight_1kdni_68{top:0;left:100%;margin-left:.5rem}._positionLeft_1kdni_74{top:0;right:100%;margin-right:.5rem}._positionBottom_1kdni_44{top:100%;left:0;margin-top:.5rem}._positionTop_1kdni_56{bottom:100%;left:0;margin-bottom:.5rem}._menuItem_1kdni_92{display:flex;width:200px;align-items:center;cursor:pointer;padding:.5rem 1rem;transition:background-color .2s;border-radius:var(--border-radius-m)}._menuItemSelected_1kdni_102{background-color:var(--color-light-900)}._menuItemHover_1kdni_106:hover{background-color:var(--color-light-700)}._menuItemHighlighted_1kdni_110{background-color:var(--color-light-700);outline:none}:root{--shourtcut-border: 1px solid var(--color-light-700);--shourtcut-title-color: var(--color-dark-900);--shourtcut-item-key-background: var(--color-accent-300);--shourtcut-item-key-color: var(--color-dark-900);--shourtcut-item-description-color: var(--color-dark-900)}:root[data-theme=light]{--shourtcut-border: 1px solid var(--color-light-700);--shourtcut-title-color: var(--color-dark-900);--shourtcut-item-key-background: var(--color-accent-300);--shourtcut-item-key-color: var(--color-dark-900);--shourtcut-item-description-color: var(--color-dark-900)}:root[data-theme=dark]{--shourtcut-border: 1px solid var(--color-light-900);--shourtcut-title-color: var(--color-light-100);--shourtcut-item-key-background: var(--color-accent-500);--shourtcut-item-key-color: var(--color-light-700);--shourtcut-item-description-color: var(--color-light-100)}._groupTitle_eelpn_23{font-size:var(--font-size-m);font-weight:var(--font-weight-bold);color:var(--shourtcut-title-color);margin-bottom:.625rem}._list_eelpn_30{border:var(--shourtcut-border);border-radius:var(--border-radius-m)}._item_eelpn_35{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding:.375rem .75rem}._item_eelpn_35:not(:last-child){border-bottom:var(--shourtcut-border)}._itemKeysVariants_eelpn_45{display:flex;align-items:center;gap:.25rem}._itemKeysSeparator_eelpn_50{color:var(--shourtcut-item-key-color);font-size:var(--font-size-s)}._itemDescription_eelpn_54{font-size:var(--font-size-s);color:var(--shourtcut-item-description-color);white-space:nowrap}._itemKey_eelpn_45{font-size:var(--font-size-xs);line-height:var(--line-height-s);padding:.5rem;background:var(--shourtcut-item-key-background);color:var(--shourtcut-item-key-color);border-radius:var(--border-radius-lg)}._slider-container_1b9o2_1{max-width:300px;outline:none}._slider_1b9o2_1{width:100%;appearance:none;height:6px;border-radius:5px;outline:none;transition:background .3s}._slider_1b9o2_1::-webkit-slider-thumb{appearance:none;width:15px;height:15px;background:var(--color-accent-500);border-radius:50%;cursor:pointer;transition:background .3s}._slider_1b9o2_1::-webkit-slider-thumb:hover{background:var(--color-accent-700)}._slider_1b9o2_1::-webkit-slider-thumb:active{background:var(--color-accent-700)}._slider_1b9o2_1::-moz-range-thumb{width:15px;height:15px;background:var(--color-accent-700);border-radius:50%;cursor:pointer}._focused_1b9o2_37 ._slider_1b9o2_1::-webkit-slider-thumb{background:var(--color-accent-700)}:root{--themeSwitcher-background: var(--color-dark-100);--themeSwitcher-background-btn: var(--color-accent-300);--themeSwitcher-background-btn-selected: var(--color-accent-300);--themeSwitcher-border: var(--color-light-900);--themeSwitcher-selected-color: var(--color-dark-700);--themeSwitcher-color: var(--color-accent-300)}:root[data-theme=light]{--themeSwitcher-background: var(--color-light-100);--themeSwitcher-background-btn: var(--color-accent-500);--themeSwitcher-background-btn-selected: var(--color-accent-500);--themeSwitcher-color: var(--color-accent-500);--themeSwitcher-selected-color: var(--color-light-100);--themeSwitcher-border: var(--color-light-700)}._themeSwitcher_11ggx_18{display:flex;padding:.188rem;border-radius:var(--border-radius-lg);border:.5px solid var(--themeSwitcher-border);width:fit-content;background-color:var(--themeSwitcher-background);color:var(--themeSwitcher-color)}._themeSwitcher_11ggx_18 ._themeButton_11ggx_27{width:2rem;height:1.5rem}._themeSwitcher_11ggx_18 ._themeButton_11ggx_27 ._background_11ggx_31{background-color:var(--bg-color);width:100%;height:30vh;display:flex;align-items:center;justify-content:center}._themeSwitcher_11ggx_18 ._themeButton_11ggx_27:hover{background:none}._themeSwitcher_11ggx_18 ._selectedButton_11ggx_42{background:var(--themeSwitcher-background-btn-selected);color:var(--themeSwitcher-selected-color)}._themeSwitcher_11ggx_18 ._selectedButton_11ggx_42:hover{background:var(--themeSwitcher-background-btn-selected)}:root{--toggleSwitcher-background-color: var(--color-light-500);--toggleSwitcher-border-color: var(--color-light-500);--toggleSwitcher-selected-background: var(--color-accent-500);--toggleSwitcher-selected-color: var(--color-light-500)}:root[data-theme=dark]{--toggleSwitcher-background-color: var(--color-dark-500);--toggleSwitcher-border-color: var(--color-dark-100);--toggleSwitcher-selected-background: var(--color-accent-300);--toggleSwitcher-selected-color: var(--color-dark-500)}._toggleSwitch_1w0s9_14{display:flex;padding:.13rem;border:1px solid var(--toggleSwitcher-border-color);background-color:var(--toggleSwitcher-background-color);border-radius:var(--border-radius-lg);box-shadow:var(--box-shadow);width:fit-content}._button_1w0s9_24{height:var(--button-size-lg);display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius-lg)}._button_1w0s9_24:hover{background-color:transparent}._button_1w0s9_24:active{border-color:transparent}._button_1w0s9_24 svg{width:var(--icon-size-lg)}._selected_1w0s9_41{background-color:var(--toggleSwitcher-selected-background);color:var(--toggleSwitcher-selected-color)}._selected_1w0s9_41:hover{background-color:var(--toggleSwitcher-selected-background)}._selected_1w0s9_41:focus{background-color:var(--toggleSwitcher-selected-background)}._toolbar_18q11_1{padding:4px;border-radius:var(--border-radius-lg);background-color:var(--bg-color);box-shadow:var(--box-shadow);grid-auto-rows:min-content;display:grid;width:min-content}._separator_18q11_11{background-color:var(--color-light-500);margin:0 .25rem}._vertical_18q11_16{grid-template-columns:auto;grid-auto-rows:min-content;grid-auto-flow:row;gap:.25rem}._vertical_18q11_16 ._separator_18q11_11{width:1.5rem;height:1px;justify-self:center}._horizontal_18q11_28{grid-template-rows:auto;grid-auto-columns:min-content;grid-auto-flow:column;gap:.25rem}._horizontal_18q11_28 ._separator_18q11_11{width:1px;height:1.5rem;align-self:center}._root_y0usf_1{border-radius:var(--border-radius-lg)}._cardList_y0usf_5{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}@media (max-width: 770px){._cardList_y0usf_5{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}._cardItemHeader_y0usf_16{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:1rem}._cardItemHeaderIcon_y0usf_23{height:100%;display:flex;align-self:center}._cardItemHeaderTitle_y0usf_28{font-size:.95rem;font-weight:var(--font-weight-regular);text-wrap:nowrap;overflow-x:hidden}._cardItemHeaderAction_y0usf_34{margin-left:auto;display:flex}._cardItemContentImg_y0usf_38{width:100%;border-radius:var(--border-radius-lg)}._content_1iqyy_1{padding:2.5rem}._card_1iqyy_5{display:flex;align-items:center;flex-direction:column;gap:1.5rem;padding:1rem}._cardList_1iqyy_12{margin-top:1rem;display:grid;grid-template-columns:auto auto auto;gap:1rem;max-width:800px}._cardIcon_1iqyy_19{width:90px;height:90px;display:flex;align-items:center;justify-content:center;color:var(--color-light-100);border-radius:50%}._cardTitle_1iqyy_28{font-size:var(--font-size-xxl);text-align:center;font-weight:var(--font-weight-bold)}._cardDescription_1iqyy_33{margin-bottom:auto;text-align:center;font-size:var(--font-size-m);min-height:90px;padding:0 1rem}._red_1iqyy_41{background-color:var(--color-danger-300)}._green_1iqyy_45{background-color:var(--color-success-700)}._primary_1iqyy_49{background-color:var(--color-accent-500)}@media (max-width: 768px){._content_1iqyy_1{width:100vw;height:100vh}._cardList_1iqyy_12{grid-template-columns:1fr}}:root{--color-accent-100: #e3e2fe;--color-accent-300: #cecdff;--color-accent-500: #6965db;--color-accent-700: #363399;--color-accent-900: #292673;--color-success-100: #80ffbf;--color-success-300: #22e584;--color-success-500: #14cc70;--color-success-700: #0f9954;--color-success-900: #0a6638;--color-danger-100: #ff8099;--color-danger-300: #f23d61;--color-danger-500: #cc1439;--color-danger-700: #990f2b;--color-danger-900: #660a1d;--color-warning-100: #ffd073;--color-warning-300: #e5ac39;--color-warning-500: #d99000;--color-warning-700: #960;--color-warning-900: #640;--color-light-100: #fff;--color-light-300: #f7fbff;--color-light-500: #edf3fa;--color-light-700: #d5dae0;--color-light-900: #8d9094;--color-dark-100: #4c4c4c;--color-dark-300: #333;--color-dark-400: #212121;--color-dark-500: #171717;--color-dark-700: #0d0d0d;--color-dark-900: #000}:root{--font-family-primary: "Assistant", "Inter", "Roboto", -apple-system, sans-serif;--line-height-s: 1;--line-height-m: 1.5;--line-height-l: 2;--font-size-xs: .75rem;--font-size-s: .875rem;--font-size-m: 1rem;--font-size-l: 1.125rem;--font-size-xl: 1.25rem;--font-size-xxl: 1.625rem;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-bold: 700}html{font-size:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent}*,*:before,*:after{box-sizing:border-box}h1,h2,h3,h4,h5,h6,p,ul,li{padding:0;margin:0}input,button,select,textarea,optgroup,option{font-family:inherit;font-size:inherit;font-weight:inherit;font-style:inherit;color:inherit}button{padding:0;background-color:transparent;border:none}a{text-decoration:none}:where(a:visited){color:inherit}body{margin:0;padding:0;font-family:var(--font-family-primary),sans-serif;line-height:var(--line-height-m);background-color:var(--bg-color)}:root{--button-size-xs: 1.35rem;--button-size-m: 1.625rem;--button-size-xl: 1.85rem;--button-size-lg: 2.25rem;--icon-size-lg: 1rem;--border-radius-m: .25rem;--border-radius-lg: .5rem;--bg-color: var(--color-light-100);--bg-modal-color: var(--color-light-100);--font-color: var(--color-dark-900);--box-shadow: 0px 0px .9310142993927002px 0px rgba(0, 0, 0, .17), 0px 0px 3.1270833015441895px 0px rgba(0, 0, 0, .08), 0px 7px 14px 0px rgba(0, 0, 0, .05);--dialog-border-color: var(--color-light-500);--swatch-color: var(--color-light-100);--scrollbar-width: .5rem;--scrollbar-track-bg: var(--color-light-100);--scrollbar-thumb-bg: var(--color-light-900);--scrollbar-thumb-hover-bg: var(--color-dark-100);--scrollbar-border-radius: 4px}:root[data-theme=dark]{--bg-color: var(--color-dark-400);--bg-modal-color: var(--color-dark-400);--font-color: var(--color-light-100)}
|
|
1
|
+
@import"https://fonts.googleapis.com/css2?family=Assistant:wght@400..700&display=swap";@import"https://fonts.googleapis.com/css2?family=Inter:opsz,wght@14..32,100..900&display=swap";@import"https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap";._text_4m304_1,._tertiary_4m304_1,._secondary_4m304_1,._primary_4m304_1{display:inline-flex;justify-content:center;cursor:pointer;user-select:none;width:fit-content;gap:.625em;min-height:2.25em;padding:.625em;font-weight:var(--font-weight-medium);text-align:center;border-radius:var(--border-radius-m)}._text_4m304_1:focus,._tertiary_4m304_1:focus,._secondary_4m304_1:focus,._primary_4m304_1:focus{outline:none}._text_4m304_1:focus-visible,._tertiary_4m304_1:focus-visible,._secondary_4m304_1:focus-visible,._primary_4m304_1:focus-visible{outline:2px solid var(--color-accent-700)}._primary_4m304_1{color:var(--color-light-100);background-color:var(--color-accent-500)}._primary_4m304_1:hover{background-color:var(--color-accent-300)}._primary_4m304_1:active{background-color:var(--color-accent-700)}._secondary_4m304_1{color:var(--color-light-100);background-color:var(--color-dark-300)}._secondary_4m304_1:focus-visible{outline:1px solid var(--color-accent-300)}._secondary_4m304_1:hover{background-color:var(--color-dark-100)}._secondary_4m304_1:active{background-color:var(--color-dark-400)}._tertiary_4m304_1{border:1px solid currentcolor}._fullWidth_4m304_50{width:100%}._buttonWithIcon_4m304_54{display:flex;justify-content:space-between;align-items:center;gap:.625em;width:100%}._buttonWithIcon_4m304_54 ._content_4m304_61{display:flex;align-items:center;gap:.625em}._buttonWithIcon_4m304_54 svg{width:var(--icon-size-lg);height:var(--icon-size-lg)}._buttonWithIcon_4m304_54 ._shortcut_4m304_70{opacity:.6}._text_4m304_1:hover,._tertiary_4m304_1:hover{background-color:var(--color-accent-100)}._text_4m304_1:active,._tertiary_4m304_1:active{background-color:var(--color-accent-300);outline:1px solid var(--color-accent-700)}._disabled_4m304_82{cursor:not-allowed;pointer-events:none;opacity:.65}._content_23x5h_1,._header_23x5h_1{display:flex;flex-direction:column;gap:.75rem}._root_23x5h_7{background-color:var(--bg-color);box-shadow:var(--box-shadow);border-radius:.125rem;padding:.75rem}._header_23x5h_1{display:flex;align-items:flex-start;gap:.75rem;font-size:1.25rem;border-bottom:1px solid var(--dialog-border-color);padding:0 0 .75rem}._header_23x5h_1+._contentAfterHeader_23x5h_22{padding-top:1.125rem}._root_ibcdq_1{display:inline-block;position:relative}._dropdownContent_ibcdq_6{position:fixed;background-color:var(--bg-modal-color);border-radius:var(--border-radius-lg);margin-top:.5rem;padding:.5rem;box-shadow:var(--box-shadow);z-index:1000;min-width:200px;max-width:calc(100vw - 32px)}@media (max-width: 768px){._dropdownContent_ibcdq_6{min-width:150px;max-width:calc(100vw - 32px)}}@media (max-width: 480px){._dropdownContent_ibcdq_6{min-width:120px;max-width:calc(100vw - 24px)}}._left_ibcdq_30{left:0}._center_ibcdq_34{left:50%;transform:translate(-50%)}._right_ibcdq_39{right:20%}._top_ibcdq_43{bottom:100%}._bottom_ibcdq_47{top:100%}._fixedPosition_ibcdq_51{position:fixed;left:5%}._dialogOverlay_1h2c4_1{position:fixed;display:flex;align-items:center;justify-content:center;top:0;left:0;width:100vw;height:100vh;background-color:#00000080}._dialogTrigger_1h2c4_13{border:none;background:none;padding:0;cursor:pointer;font:inherit}._dialogContent_1h2c4_21{padding:.5rem;background-color:var(--bg-modal-color);border-radius:8px;border:none;box-shadow:var(--box-shadow);width:fit-content}._dialogContent_1h2c4_21::backdrop{background-color:#00000080}._dialogClose_1h2c4_34{border:none;background:none;padding:0;cursor:pointer;font:inherit}._dialogTitle_1h2c4_42{font-size:1.5rem;padding-block:.5rem}._dialogSeparator_1h2c4_47{height:1px;background-color:var(--color-light-500);margin:10px 0}:root{--sidebar-width: 250px;--sidebar-height: 100vh;--sidebar-bg: var(--color-dark-300);--sidebar-color: var(--color-light-500);--animation-duration: .3s;--sidebar-zIndex-trigger: 10;--sidebar-zIndex-overlay: 90;--sidebar-zIndex-content: 100;--sidebar-overlay-bg: rgba(0, 0, 0, .5)}._trigger_8raq4_13{position:relative;z-index:var(--sidebar-zIndex-trigger);background:transparent;border:0;padding:0;cursor:pointer}._overlay_8raq4_22{position:fixed;inset:0;background:var(--sidebar-overlay-bg);opacity:0;pointer-events:none;transition:opacity var(--animation-duration) ease-in-out;z-index:var(--sidebar-zIndex-overlay)}._overlayOpen_8raq4_32{opacity:1;pointer-events:auto}._content_8raq4_37{width:var(--sidebar-width);height:var(--sidebar-height);background:var(--sidebar-bg);color:var(--sidebar-color);padding:1rem;box-shadow:var(--box-shadow, 0 4px 6px rgba(0, 0, 0, .1));position:fixed;top:0;transition:transform var(--animation-duration) ease-in-out;z-index:var(--sidebar-zIndex-content);outline:none}._left_8raq4_51{left:0;transform:translate(-100%)}._left_8raq4_51._isOpen_8raq4_55{transform:translate(0)}._right_8raq4_59{right:0;transform:translate(100%)}._right_8raq4_59._isOpen_8raq4_55{transform:translate(0)}._bottom_8raq4_67{inset:auto 0 0;height:fit-content;width:100%;transform:translateY(100%)}._bottom_8raq4_67._isOpen_8raq4_55{transform:translateY(0)}._top_8raq4_80{inset:0 0 auto;height:fit-content;width:100%;transform:translateY(-100%)}._top_8raq4_80._isOpen_8raq4_55{transform:translateY(0)}._closeButton_8raq4_93{background:transparent;border:0;cursor:pointer}._switcher_k6tdq_1{display:flex;gap:.5rem;align-items:center}._switcher_k6tdq_1 ._buttons_k6tdq_6{display:flex;gap:.5rem}._switcher_k6tdq_1 ._separator_k6tdq_10{width:1px;height:1.5rem;border-radius:var(--border-radius-lg);background-color:var(--color-light-700)}:root{--head-color: var(--color-dark-300);--cell-color: var(--color-dark-900);--footer-background: var(--color-light-900)}:root[data-theme=dark]{--head-color: var(--color-light-900);--cell-color: var(--color-light-100);--caption-color: var(--color-light-700);--footer-background: var(--color-dark-100)}._root_1b0i5_13{width:100%;border-spacing:0;caption-side:bottom}._header_1b0i5_19{border-bottom:1px solid var(--color-dark-100)}._footer_1b0i5_23{width:100%;background-color:var(--color-dark-100)}._row_1b0i5_28{border-bottom:1px solid var(--color-dark-100);display:flex;flex-direction:row;justify-content:space-between;align-items:center;width:100%}._row_1b0i5_28:hover{background-color:var(--color-dark-300);color:var(--color-light-100)}._body_1b0i5_41{display:flex;flex-direction:column;justify-content:center}._head_1b0i5_19,._cell_1b0i5_48{justify-items:flex-start;padding:.5rem;font-size:14px;width:100%}._cell_1b0i5_48{color:var(--cell-color)}._head_1b0i5_19{color:var(--head-color);font-weight:500;text-align:start}._caption_1b0i5_65{margin-top:1rem;color:var(--caption-color)}._storiesFooterCellOne_1b0i5_70{vertical-align:middle}._storiesFooterCellTwo_1b0i5_73{text-align:end}._inputContainer_iqbs3_1{position:relative;width:100%;background-color:inherit}._inputContainer_iqbs3_1 input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}._input_iqbs3_1{display:flex;width:100%;padding-inline:16px;padding-block:12px;color:var(--color-dark-100);background-color:var(--color-light-500);border:1px solid transparent;border-radius:16px;font-size:var(--font-weight-bold);line-height:var(--line-height-m)}._input_iqbs3_1:disabled{color:var(--color-dark-300)}._input_iqbs3_1:focus{color:var(--color-dark-300);border-color:var(--color-accent-500)}._input_iqbs3_1:hover{color:var(--color-dark-100);border-color:var(--color-dark-100)}._input_iqbs3_1:active:enabled{border-color:var(--color-light-100)}._input_iqbs3_1:focus-visible{border-color:var(--color-dark-100)}._input_iqbs3_1._inputSearch_iqbs3_40{padding-inline:50px 34px}._input_iqbs3_1._inputSearch_iqbs3_40._error_iqbs3_43{color:var(--color-danger-300);border-color:var(--color-danger-300)}._input_iqbs3_1._inputSearch_iqbs3_40._error_iqbs3_43::placeholder{color:red}._input_iqbs3_1._error_iqbs3_43{color:var(--color-danger-300);border-color:var(--color-danger-300)}._input_iqbs3_1._error_iqbs3_43::placeholder{color:red}._button_iqbs3_58{position:absolute;top:16px;right:15px;width:20px;height:20px;padding:0;background-color:inherit;border:0}._button_iqbs3_58._buttonWithLabel_iqbs3_68{cursor:pointer;bottom:8px}._resetSearchValue_iqbs3_73{color:var(--color-dark-100)}._resetSearchValue_iqbs3_73:hover{color:var(--color-danger-300)}._searchOutline_iqbs3_80{position:absolute;top:14px;left:16px;color:var(--color-dark-100)}._errorMessage_iqbs3_87{position:absolute;font-size:var(--font-size-s);line-height:var(--line-height-m);color:var(--color-danger-300)}._root_17w6h_1{position:relative;display:inline-flex;align-items:center;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}._icon_17w6h_11{display:flex;justify-content:center;align-items:center;border-radius:var(--border-radius-lg);width:var(--button-size-lg);height:var(--button-size-lg);transition:background-color .2s ease}._icon_17w6h_11:hover{background-color:var(--color-accent-100)}._icon_17w6h_11:active,._icon_17w6h_11._active_17w6h_27{background-color:var(--color-accent-300);border:1px solid var(--color-accent-300)}._icon_17w6h_11._disabled_17w6h_31{opacity:.6;cursor:not-allowed;background-color:var(--color-light-700)}._icon_17w6h_11._disabled_17w6h_31:hover{background-color:var(--color-light-700)}._icon_17w6h_11 svg{width:var(--icon-size-lg);height:var(--icon-size-lg)}._keybinding_17w6h_44{position:absolute;bottom:4px;right:2px;font-size:.625rem;color:var(--color-dark-300);-webkit-user-select:none;user-select:none}._buttonGroup_ejhd6_1{display:flex;gap:0;border-radius:var(--border-radius-lg);width:fit-content;overflow:hidden}._button_ejhd6_1{display:flex;align-items:center;padding:.5rem;border:none;background-color:var(--color-dark-100);color:#fff;transition:background-color .3s;cursor:pointer}._button_ejhd6_1:hover:not(:disabled){background-color:var(--color-dark-300)}._button_ejhd6_1:active:not(:disabled){background-color:var(--color-dark-500)}._button_ejhd6_1:disabled{background-color:#555;cursor:not-allowed}._button_ejhd6_1 button:focus-visible{outline:2px solid var(--color-dark-500);outline-offset:2px}._button_ejhd6_1 svg{height:var(--icon-size-lg);width:var(--icon-size-lg)}._button_ejhd6_1 ._label_ejhd6_37{height:var(--icon-size-lg);line-height:1rem}._single_ejhd6_42{border-radius:var(--border-radius-lg)}._first_ejhd6_46{border-radius:var(--border-radius-lg) 0 0 var(--border-radius-lg)}._last_ejhd6_50{border-radius:0 var(--border-radius-lg) var(--border-radius-lg) 0}._selected_ejhd6_54{background-color:var(--color-dark-500)}._colorButton_wldf2_1{filter:none;transition:background-color .2s ease;display:flex;justify-content:flex-end;align-items:end;padding-right:.25rem;border:.4px solid var(--color-light-700);font-size:var(--font-size-xs);background-color:var(--swatch-color)}._colorButton_wldf2_1:hover{box-shadow:0 0 0 1px var(--color-light-900)}._colorButton_wldf2_1:active{box-shadow:0 0 0 .5px var(--color-accent-700)}._colorButton_wldf2_1:disabled{opacity:.6;cursor:not-allowed}._colorButton_wldf2_1 ._hotkey_wldf2_22{user-select:none}._selected_wldf2_26,._selected_wldf2_26:hover{box-shadow:0 0 0 1px var(--color-accent-700)}._disabled_wldf2_33{opacity:.6;cursor:not-allowed}._disabled_wldf2_33:hover{border-color:transparent}._transparent_wldf2_41{background:url(data:image/png;base64,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) center center;background-size:cover}._small_wldf2_46{width:var(--button-size-xs);height:var(--button-size-xs);border-radius:var(--border-radius-m)}._medium_wldf2_52{width:var(--button-size-m);height:var(--button-size-m);border-radius:var(--border-radius-m)}._large_wldf2_58{width:var(--button-size-xl);height:var(--button-size-xl);border-radius:var(--border-radius-lg)}._content_1ybrq_1{top:-.5rem;left:3rem;max-width:210px;padding-inline:1rem;padding-block:.5rem 1rem;display:flex;flex-direction:column;gap:.5rem}._content_1ybrq_1 ._section_1ybrq_11{display:flex;flex-direction:column;gap:.25rem}._title_1ybrq_17{font-size:var(--font-size-small);font-weight:var(--font-weight-regular)}@media (max-width: 738px){._content_1ybrq_1{top:2rem;left:-5rem}}:root{--iconButton-border: 1px solid var(--color-accent-100);--iconButton-color: var(--color-dark-900)}:root[data-theme=light]{--iconButton-border: 1px solid var(--color-accent-100);--iconButton-color: var(--color-dark-900)}:root[data-theme=dark]{--iconButton-border: 1px solid var(--color-accent-100);--iconButton-color: var(--color-light-500)}._iconButton_yk1r1_14{color:var(--iconButton-color);display:flex;align-items:center;justify-content:center;width:var(--button-size-lg);height:var(--button-size-lg);border-radius:var(--border-radius-lg);transition:background-color .2s ease;border:var(--iconButton-border)}._iconButton_yk1r1_14:disabled{cursor:not-allowed;border:1px solid transparent}._iconButton_yk1r1_14 svg{width:var(--icon-size-lg);height:var(--icon-size-lg)}._primary_yk1r1_34{background-color:var(--color-light-500);border:1px solid var(--color-light-500)}._primary_yk1r1_34:hover{background-color:var(--color-accent-300)}._primary_yk1r1_34:active{background-color:var(--color-accent-300);border-color:var(--color-accent-500)}._secondary_yk1r1_46:hover{background-color:var(--color-accent-100)}._secondary_yk1r1_46:active{background-color:var(--color-accent-500);border-color:var(--color-accent-500)}._transparent_yk1r1_54{border-color:transparent}._transparent_yk1r1_54:hover{background-color:var(--color-accent-100)}._transparent_yk1r1_54:active{background-color:var(--color-accent-300);border-color:var(--color-accent-500)}._selected_yk1r1_65{background-color:var(--color-accent-300);border:1px solid var(--color-accent-300)}._selected_yk1r1_65 ._transparent_yk1r1_54{background-color:var(--color-accent-500);border-color:var(--color-accent-500)}._disabled_yk1r1_74{opacity:.6;cursor:not-allowed;background-color:var(--color-light-700)}._disabled_yk1r1_74:hover{background-color:var(--color-light-700)}._disabled_yk1r1_74:active{border-color:var(--color-light-700);background-color:var(--color-light-700)}._hexInput_x3rtz_1{position:relative;box-sizing:border-box;display:grid;grid-template-columns:auto 1fr;max-width:200px;gap:.25rem;align-items:center;overflow:hidden}._hexInput_x3rtz_1 ._inputContainer_x3rtz_11{position:relative;display:flex;align-items:center;max-width:100%;overflow:hidden}._hexInput_x3rtz_1 ._hash_x3rtz_18{position:absolute;left:.5rem;color:var(--color-light-900);pointer-events:none;font-size:var(--font-size-xl)}._hexInput_x3rtz_1 ._input_x3rtz_11{flex:1;padding-left:1.5rem;height:1.875rem;border-radius:var(--border-radius-m);border:1px solid var(--color-light-700);padding-block:.25rem;padding-right:.5rem;max-width:100%;font-size:var(--font-size-m)}._hexInput_x3rtz_1 ._input_x3rtz_11:focus-visible,._hexInput_x3rtz_1 ._input_x3rtz_11:focus{border:1px solid var(--color-accent-700)}._hexInput_x3rtz_1 ._input_x3rtz_11._error_x3rtz_39{border-color:var(--color-error)}._hexInput_x3rtz_1 ._copyButton_x3rtz_42{width:1.875rem;height:1.875rem;align-self:flex-start;border-radius:var(--border-radius-m)}._hexInput_x3rtz_1 ._slot_x3rtz_48{border-left:1px solid var(--color-light-700);position:absolute;right:.5rem;bottom:.22rem;padding-inline:.5rem}._hexInput_x3rtz_1 ._copiedMessage_x3rtz_55{height:1.875rem;position:absolute;display:flex;align-items:center;justify-content:center;top:0;left:2rem;background-color:var(--color-dark-300);color:#fff;padding:4px 8px;border-radius:var(--border-radius-m);font-size:var(--font-size-xs);animation:_fadeInOut_x3rtz_1 2s ease-out}@keyframes _fadeInOut_x3rtz_1{0%{opacity:0}20%{opacity:1}80%{opacity:1}to{opacity:0}}._colorsList_1brrj_1{display:grid;grid-template-columns:1fr 1fr 1fr 1fr 1fr;grid-auto-rows:auto;grid-column-gap:.25rem;grid-row-gap:.25rem}._shadowList_1srdv_1{display:grid;grid-template-columns:1fr 1fr 1fr 1fr 1fr}._shadowText_1srdv_6{display:flex;justify-content:center;align-items:center;font-size:var(--font-size-xs);height:var(--button-size-xl)}._pagination_3kmd4_1{width:100%;max-width:800px;margin:0 auto;padding:20px 15px;user-select:none;display:flex;justify-content:space-between;align-items:center;gap:2rem}._pages_3kmd4_13{display:flex;align-items:center;gap:.5rem}._selectContainer_1kdni_1{position:relative}._selectButton_1kdni_5{display:flex;justify-content:space-between}._selectIcon_1kdni_10{transition:transform 2ms ease-in-out}._selectIconOpen_1kdni_14{transform:rotate(180deg)}._selectMenu_1kdni_18{position:absolute;background-color:var(--bg-modal-color);max-width:max-content;max-height:13rem;overflow-y:auto;overflow-x:hidden;border-radius:var(--border-radius-m);box-shadow:var(--box-shadow);z-index:10}._selectMenu_1kdni_18::-webkit-scrollbar{width:var(--scrollbar-width)}._selectMenu_1kdni_18::-webkit-scrollbar-track{background:var(--scrollbar-track-bg);border-radius:var(--border-radius-m)}._selectMenu_1kdni_18::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-bg);border-radius:4px}._selectMenu_1kdni_18::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover-bg)}._positionBottomRight_1kdni_44{top:100%;right:0;margin-top:.5rem}._positionBottomLeft_1kdni_50{top:100%;left:0;margin-top:.5rem}._positionTopRight_1kdni_56{bottom:100%;right:0;margin-bottom:.5rem}._positionTopLeft_1kdni_62{bottom:100%;left:0;margin-bottom:.5rem}._positionRight_1kdni_68{top:0;left:100%;margin-left:.5rem}._positionLeft_1kdni_74{top:0;right:100%;margin-right:.5rem}._positionBottom_1kdni_44{top:100%;left:0;margin-top:.5rem}._positionTop_1kdni_56{bottom:100%;left:0;margin-bottom:.5rem}._menuItem_1kdni_92{display:flex;width:200px;align-items:center;cursor:pointer;padding:.5rem 1rem;transition:background-color .2s;border-radius:var(--border-radius-m)}._menuItemSelected_1kdni_102{background-color:var(--color-light-900)}._menuItemHover_1kdni_106:hover{background-color:var(--color-light-700)}._menuItemHighlighted_1kdni_110{background-color:var(--color-light-700);outline:none}:root{--shourtcut-border: 1px solid var(--color-light-700);--shourtcut-title-color: var(--color-dark-900);--shourtcut-item-key-background: var(--color-accent-300);--shourtcut-item-key-color: var(--color-dark-900);--shourtcut-item-description-color: var(--color-dark-900)}:root[data-theme=light]{--shourtcut-border: 1px solid var(--color-light-700);--shourtcut-title-color: var(--color-dark-900);--shourtcut-item-key-background: var(--color-accent-300);--shourtcut-item-key-color: var(--color-dark-900);--shourtcut-item-description-color: var(--color-dark-900)}:root[data-theme=dark]{--shourtcut-border: 1px solid var(--color-light-900);--shourtcut-title-color: var(--color-light-100);--shourtcut-item-key-background: var(--color-accent-500);--shourtcut-item-key-color: var(--color-light-700);--shourtcut-item-description-color: var(--color-light-100)}._groupTitle_eelpn_23{font-size:var(--font-size-m);font-weight:var(--font-weight-bold);color:var(--shourtcut-title-color);margin-bottom:.625rem}._list_eelpn_30{border:var(--shourtcut-border);border-radius:var(--border-radius-m)}._item_eelpn_35{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding:.375rem .75rem}._item_eelpn_35:not(:last-child){border-bottom:var(--shourtcut-border)}._itemKeysVariants_eelpn_45{display:flex;align-items:center;gap:.25rem}._itemKeysSeparator_eelpn_50{color:var(--shourtcut-item-key-color);font-size:var(--font-size-s)}._itemDescription_eelpn_54{font-size:var(--font-size-s);color:var(--shourtcut-item-description-color);white-space:nowrap}._itemKey_eelpn_45{font-size:var(--font-size-xs);line-height:var(--line-height-s);padding:.5rem;background:var(--shourtcut-item-key-background);color:var(--shourtcut-item-key-color);border-radius:var(--border-radius-lg)}._slider-container_1b9o2_1{max-width:300px;outline:none}._slider_1b9o2_1{width:100%;appearance:none;height:6px;border-radius:5px;outline:none;transition:background .3s}._slider_1b9o2_1::-webkit-slider-thumb{appearance:none;width:15px;height:15px;background:var(--color-accent-500);border-radius:50%;cursor:pointer;transition:background .3s}._slider_1b9o2_1::-webkit-slider-thumb:hover{background:var(--color-accent-700)}._slider_1b9o2_1::-webkit-slider-thumb:active{background:var(--color-accent-700)}._slider_1b9o2_1::-moz-range-thumb{width:15px;height:15px;background:var(--color-accent-700);border-radius:50%;cursor:pointer}._focused_1b9o2_37 ._slider_1b9o2_1::-webkit-slider-thumb{background:var(--color-accent-700)}:root{--themeSwitcher-background: var(--color-dark-100);--themeSwitcher-background-btn: var(--color-accent-300);--themeSwitcher-background-btn-selected: var(--color-accent-300);--themeSwitcher-border: var(--color-light-900);--themeSwitcher-selected-color: var(--color-dark-700);--themeSwitcher-color: var(--color-accent-300)}:root[data-theme=light]{--themeSwitcher-background: var(--color-light-100);--themeSwitcher-background-btn: var(--color-accent-500);--themeSwitcher-background-btn-selected: var(--color-accent-500);--themeSwitcher-color: var(--color-accent-500);--themeSwitcher-selected-color: var(--color-light-100);--themeSwitcher-border: var(--color-light-700)}._themeSwitcher_11ggx_18{display:flex;padding:.188rem;border-radius:var(--border-radius-lg);border:.5px solid var(--themeSwitcher-border);width:fit-content;background-color:var(--themeSwitcher-background);color:var(--themeSwitcher-color)}._themeSwitcher_11ggx_18 ._themeButton_11ggx_27{width:2rem;height:1.5rem}._themeSwitcher_11ggx_18 ._themeButton_11ggx_27 ._background_11ggx_31{background-color:var(--bg-color);width:100%;height:30vh;display:flex;align-items:center;justify-content:center}._themeSwitcher_11ggx_18 ._themeButton_11ggx_27:hover{background:none}._themeSwitcher_11ggx_18 ._selectedButton_11ggx_42{background:var(--themeSwitcher-background-btn-selected);color:var(--themeSwitcher-selected-color)}._themeSwitcher_11ggx_18 ._selectedButton_11ggx_42:hover{background:var(--themeSwitcher-background-btn-selected)}:root{--toggleSwitcher-background-color: var(--color-light-500);--toggleSwitcher-border-color: var(--color-light-500);--toggleSwitcher-selected-background: var(--color-accent-500);--toggleSwitcher-selected-color: var(--color-light-500)}:root[data-theme=dark]{--toggleSwitcher-background-color: var(--color-dark-500);--toggleSwitcher-border-color: var(--color-dark-100);--toggleSwitcher-selected-background: var(--color-accent-300);--toggleSwitcher-selected-color: var(--color-dark-500)}._toggleSwitch_1w0s9_14{display:flex;padding:.13rem;border:1px solid var(--toggleSwitcher-border-color);background-color:var(--toggleSwitcher-background-color);border-radius:var(--border-radius-lg);box-shadow:var(--box-shadow);width:fit-content}._button_1w0s9_24{height:var(--button-size-lg);display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius-lg)}._button_1w0s9_24:hover{background-color:transparent}._button_1w0s9_24:active{border-color:transparent}._button_1w0s9_24 svg{width:var(--icon-size-lg)}._selected_1w0s9_41{background-color:var(--toggleSwitcher-selected-background);color:var(--toggleSwitcher-selected-color)}._selected_1w0s9_41:hover{background-color:var(--toggleSwitcher-selected-background)}._selected_1w0s9_41:focus{background-color:var(--toggleSwitcher-selected-background)}._toolbar_18q11_1{padding:4px;border-radius:var(--border-radius-lg);background-color:var(--bg-color);box-shadow:var(--box-shadow);grid-auto-rows:min-content;display:grid;width:min-content}._separator_18q11_11{background-color:var(--color-light-500);margin:0 .25rem}._vertical_18q11_16{grid-template-columns:auto;grid-auto-rows:min-content;grid-auto-flow:row;gap:.25rem}._vertical_18q11_16 ._separator_18q11_11{width:1.5rem;height:1px;justify-self:center}._horizontal_18q11_28{grid-template-rows:auto;grid-auto-columns:min-content;grid-auto-flow:column;gap:.25rem}._horizontal_18q11_28 ._separator_18q11_11{width:1px;height:1.5rem;align-self:center}._root_y0usf_1{border-radius:var(--border-radius-lg)}._cardList_y0usf_5{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}@media (max-width: 770px){._cardList_y0usf_5{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}._cardItemHeader_y0usf_16{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:1rem}._cardItemHeaderIcon_y0usf_23{height:100%;display:flex;align-self:center}._cardItemHeaderTitle_y0usf_28{font-size:.95rem;font-weight:var(--font-weight-regular);text-wrap:nowrap;overflow-x:hidden}._cardItemHeaderAction_y0usf_34{margin-left:auto;display:flex}._cardItemContentImg_y0usf_38{width:100%;border-radius:var(--border-radius-lg)}._content_1iqyy_1{padding:2.5rem}._card_1iqyy_5{display:flex;align-items:center;flex-direction:column;gap:1.5rem;padding:1rem}._cardList_1iqyy_12{margin-top:1rem;display:grid;grid-template-columns:auto auto auto;gap:1rem;max-width:800px}._cardIcon_1iqyy_19{width:90px;height:90px;display:flex;align-items:center;justify-content:center;color:var(--color-light-100);border-radius:50%}._cardTitle_1iqyy_28{font-size:var(--font-size-xxl);text-align:center;font-weight:var(--font-weight-bold)}._cardDescription_1iqyy_33{margin-bottom:auto;text-align:center;font-size:var(--font-size-m);min-height:90px;padding:0 1rem}._red_1iqyy_41{background-color:var(--color-danger-300)}._green_1iqyy_45{background-color:var(--color-success-700)}._primary_1iqyy_49{background-color:var(--color-accent-500)}@media (max-width: 768px){._content_1iqyy_1{width:100vw;height:100vh}._cardList_1iqyy_12{grid-template-columns:1fr}}:root{--color-accent-100: #e3e2fe;--color-accent-300: #cecdff;--color-accent-500: #6965db;--color-accent-700: #363399;--color-accent-900: #292673;--color-success-100: #80ffbf;--color-success-300: #22e584;--color-success-500: #14cc70;--color-success-700: #0f9954;--color-success-900: #0a6638;--color-danger-100: #ff8099;--color-danger-300: #f23d61;--color-danger-500: #cc1439;--color-danger-700: #990f2b;--color-danger-900: #660a1d;--color-warning-100: #ffd073;--color-warning-300: #e5ac39;--color-warning-500: #d99000;--color-warning-700: #960;--color-warning-900: #640;--color-light-100: #fff;--color-light-300: #f7fbff;--color-light-500: #edf3fa;--color-light-700: #d5dae0;--color-light-900: #8d9094;--color-dark-100: #4c4c4c;--color-dark-300: #333;--color-dark-400: #212121;--color-dark-500: #171717;--color-dark-700: #0d0d0d;--color-dark-900: #000}:root{--font-family-primary: "Assistant", "Inter", "Roboto", -apple-system, sans-serif;--line-height-s: 1;--line-height-m: 1.5;--line-height-l: 2;--font-size-xs: .75rem;--font-size-s: .875rem;--font-size-m: 1rem;--font-size-l: 1.125rem;--font-size-xl: 1.25rem;--font-size-xxl: 1.625rem;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-bold: 700}html{font-size:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent}*,*:before,*:after{box-sizing:border-box}h1,h2,h3,h4,h5,h6,p,ul,li{padding:0;margin:0}input,button,select,textarea,optgroup,option{font-family:inherit;font-size:inherit;font-weight:inherit;font-style:inherit;color:inherit}button{padding:0;background-color:transparent;border:none}a{text-decoration:none}:where(a:visited){color:inherit}body{margin:0;padding:0;font-family:var(--font-family-primary),sans-serif;line-height:var(--line-height-m);background-color:var(--bg-color)}:root{--button-size-xs: 1.35rem;--button-size-m: 1.625rem;--button-size-xl: 1.85rem;--button-size-lg: 2.25rem;--icon-size-lg: 1rem;--border-radius-m: .25rem;--border-radius-lg: .5rem;--bg-color: var(--color-light-100);--bg-modal-color: var(--color-light-100);--font-color: var(--color-dark-900);--box-shadow: 0px 0px .9310142993927002px 0px rgba(0, 0, 0, .17), 0px 0px 3.1270833015441895px 0px rgba(0, 0, 0, .08), 0px 7px 14px 0px rgba(0, 0, 0, .05);--dialog-border-color: var(--color-light-500);--swatch-color: var(--color-light-100);--scrollbar-width: .5rem;--scrollbar-track-bg: var(--color-light-100);--scrollbar-thumb-bg: var(--color-light-900);--scrollbar-thumb-hover-bg: var(--color-dark-100);--scrollbar-border-radius: 4px}:root[data-theme=dark]{--bg-color: var(--color-dark-400);--bg-modal-color: var(--color-dark-400);--font-color: var(--color-light-100)}
|