@yourbestsoft/studio-screen-ui-kit 0.0.10 → 0.0.12

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/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/components/buttons-group/ButtonsGroup.tsx","../src/utils/colorUtils.ts","../src/components/color-button/ColorButton.tsx","../src/components/color-picker/colors.ts","../src/components/color-picker/hooks/usePalette.ts","../src/hooks/useSelect.ts","../src/hooks/useKeyboardControls.ts","../src/components/color-picker/hooks/usePaletteControls.ts","../src/components/icon-button/IconButton.tsx","../src/components/color-picker/parts/hex-input/HexInput.tsx","../src/components/color-picker/parts/palette/Palette.tsx","../src/components/color-picker/parts/shadow-list/ShadesList.tsx","../src/components/color-picker/ColorPicker.tsx","../src/components/pagination/utils/getPagesArray.ts","../src/components/pagination/Pagination.tsx","../src/components/select/Select.tsx","../src/components/shortcut/Shortcut.tsx","../src/components/slider/Slider.tsx","../src/components/theme-switcher/ThemeSwitcher.tsx","../src/components/toggle-switch/ToggleSwitch.tsx","../src/components/toolbar/Toolbar.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport { HTMLAttributes, ReactNode } from 'react'\n\nimport styles from './buttons-group.module.scss'\n\ninterface ButtonProps extends HTMLAttributes<HTMLButtonElement> {\n label?: string\n icon?: ReactNode\n onClick?: () => void\n disabled?: boolean\n selected?: boolean\n}\n\ninterface Props {\n buttons: ButtonProps[]\n className?: string\n}\n\nexport const ButtonsGroup = ({ buttons, className }: Props) => {\n return (\n <div className={classNames(styles.buttonGroup, className)}>\n {buttons.map((button, index) => {\n const isSingle = buttons.length === 1\n const isFirst = index === 0 && !isSingle\n const isLast = index === buttons.length - 1 && !isSingle\n\n return (\n <button\n key={index}\n onClick={button.onClick}\n disabled={button.disabled}\n className={classNames(styles.button, {\n [styles.first]: isFirst,\n [styles.last]: isLast,\n [styles.selected]: button.selected,\n [styles.single]: isSingle,\n })}\n {...button}\n >\n {button.icon && button.icon}\n {button.label && (\n <span className={styles.label}>{button.label}</span>\n )}\n </button>\n )\n })}\n </div>\n )\n}\n","const lightenColor = (\n r: number,\n g: number,\n b: number,\n percentage: number\n): [number, number, number] => {\n return [\n Math.min(255, Math.round(r + (255 - r) * percentage)),\n Math.min(255, Math.round(g + (255 - g) * percentage)),\n Math.min(255, Math.round(b + (255 - b) * percentage)),\n ]\n}\n\nexport const getShadow = (baseColor: string, targetIndex: number): string => {\n if (targetIndex === 5) {\n return baseColor\n }\n\n if (\n baseColor === 'transparent' ||\n baseColor === '#ffffff' ||\n baseColor === '#1e1e1e'\n ) {\n return baseColor\n }\n\n const [r, g, b] = hexToRgb(baseColor)\n\n const percentage = (5 - targetIndex) * 0.2\n const [newR, newG, newB] = lightenColor(r, g, b, percentage)\n\n return rgbToHex(newR, newG, newB)\n}\nconst hexToRgb = (hex: string): [number, number, number] => {\n const normalizedHex = hex.replace('#', '')\n const bigint = parseInt(normalizedHex, 16)\n return [(bigint >> 16) & 255, (bigint >> 8) & 255, bigint & 255]\n}\n\nconst rgbToHex = (r: number, g: number, b: number): string => {\n return (\n '#' +\n [r, g, b]\n .map((value) => {\n const hex = value.toString(16)\n return hex.length === 1 ? '0' + hex : hex\n })\n .join('')\n )\n}\n\nexport const getContrastingColor = (hexColor: string): string => {\n if (hexColor === 'transparent') {\n return '#000'\n }\n\n const [r, g, b] = hexToRgb(hexColor)\n const brightness = (r * 299 + g * 587 + b * 114) / 1000\n return brightness > 128 ? '#000' : '#fff'\n}\n","import classNames from 'classnames'\nimport { CSSProperties, HTMLAttributes } from 'react'\n\nimport { getContrastingColor } from '../../utils'\nimport s from './color-button.module.scss'\n\ninterface ColorButtonProps extends HTMLAttributes<HTMLButtonElement> {\n color: string\n disabled?: boolean\n selected?: boolean\n hotkey?: string\n size?: 'small' | 'medium' | 'large'\n}\n\nexport const ColorButton = (props: ColorButtonProps) => {\n const {\n className,\n color,\n disabled,\n hotkey,\n selected,\n size = 'small',\n ...buttonProps\n } = props\n\n return (\n <button\n className={classNames(\n s.colorButton,\n s[size],\n disabled && s.disabled,\n selected && s.selected,\n color === 'transparent' && s.transparent,\n className\n )}\n style={{ '--swatch-color': color } as CSSProperties}\n disabled={disabled}\n {...buttonProps}\n >\n <p className={s.hotkey} style={{ color: getContrastingColor(color) }}>\n {hotkey}\n </p>\n </button>\n )\n}\n","import { ColorItem } from './types'\n\nexport const defaultColors: ColorItem[] = [\n {\n color: 'transparent',\n hotkey: 'q',\n name: 'transparent',\n },\n {\n color: '#ffffff',\n hotkey: 'w',\n name: 'white',\n },\n {\n color: '#343a40',\n hotkey: 'e',\n name: 'gray',\n },\n {\n color: '#1e1e1e',\n hotkey: 'r',\n name: 'black',\n },\n {\n color: '#846358',\n hotkey: 't',\n name: 'bronze',\n },\n {\n color: '#0c8599',\n hotkey: 'a',\n name: 'cyan',\n },\n {\n color: '#1971c2',\n hotkey: 's',\n name: 'blue',\n },\n {\n color: '#6741d9',\n hotkey: 'd',\n name: 'violet',\n },\n {\n color: '#9c36b5',\n hotkey: 'f',\n name: 'grape',\n },\n {\n color: '#c2255c',\n hotkey: 'g',\n name: 'pink',\n },\n {\n color: '#2f9e44',\n hotkey: 'z',\n name: 'green',\n },\n {\n color: '#099268',\n hotkey: 'x',\n name: 'teal',\n },\n {\n color: '#f08c00',\n hotkey: 'c',\n name: 'yellow',\n },\n {\n color: '#e8590c',\n hotkey: 'v',\n name: 'orange',\n },\n {\n color: '#e03131',\n hotkey: 'b',\n name: 'red',\n },\n]\n","import { useEffect, useState } from 'react'\n\nimport { getShadow } from '../../../utils'\nimport { ActiveColor, ColorItem, ShadesIndex } from '../types'\n\ninterface Props {\n selectedShadeIndex: ShadesIndex\n selectedColor?: ActiveColor\n colors: ColorItem[]\n}\n\nexport const usePalette = ({\n colors,\n selectedColor,\n selectedShadeIndex,\n}: Props) => {\n const [activeShade, setActiveShade] = useState(selectedShadeIndex)\n const [palette, setPalette] = useState(() =>\n updatePalette(colors, selectedShadeIndex)\n )\n const [activeColor, setActiveColor] = useState<ActiveColor>(() => ({\n ...(selectedColor ?? { ...colors[0], index: 0 }),\n index: selectedColor?.index ?? 0,\n }))\n\n const handleUpdatePalette = (shade: ShadesIndex): void => {\n const updatedPalette = updatePalette(colors, shade)\n console.log(updatedPalette)\n setPalette(updatedPalette)\n setActiveColor(updateActiveColor(updatedPalette, activeColor))\n }\n\n const handleSetActiveColor = (color: ColorItem, index = 999) => {\n setActiveColor({ ...applyShade(color, activeShade), index })\n }\n\n useEffect(() => {\n handleUpdatePalette(activeShade)\n }, [activeShade, colors, activeColor.index])\n\n return {\n activeColor,\n activeShade,\n palette,\n setActiveColorHandler: handleSetActiveColor,\n setActiveShade,\n }\n}\n\nconst applyShade = (color: ColorItem, shade: ShadesIndex) => ({\n ...color,\n color: getShadow(color.color, shade),\n})\n\nconst updatePalette = (colors: ColorItem[], shade: ShadesIndex) =>\n colors.map((color) => applyShade(color, shade))\n\nconst updateActiveColor = (\n palette: ColorItem[],\n activeColor: ActiveColor\n): ActiveColor => ({\n ...(palette[activeColor.index] ?? palette[0]),\n index: activeColor.index ?? 0,\n})\n","import React, { useCallback, useState, useEffect } from 'react'\n\nimport { SelectItem } from '../components'\n\ninterface UseSelectProps {\n options: SelectItem[]\n onSelect?: (value: string) => void\n selectedId?: string\n}\n\nexport const useSelect = ({\n onSelect,\n options,\n selectedId,\n}: UseSelectProps) => {\n const [isOpen, setIsOpen] = useState(false)\n const [highlightedIndex, setHighlightedIndex] = useState<number | null>(null)\n const [selectedItem, setSelectedItem] = useState<SelectItem | null>(\n selectedId\n ? options.find((item) => item.value === selectedId) || null\n : null\n )\n\n useEffect(() => {\n if (selectedId) {\n const newSelectedItem = options.find((item) => item.value === selectedId)\n setSelectedItem(newSelectedItem || null)\n }\n }, [selectedId, options])\n\n const handleChange = useCallback(\n (item: SelectItem) => {\n setSelectedItem(item)\n if (onSelect) {\n onSelect(item.value)\n }\n setIsOpen(false)\n setHighlightedIndex(null)\n },\n [onSelect]\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (!isOpen) {\n if (event.key === 'Enter' || event.key === ' ') {\n setIsOpen(true)\n setHighlightedIndex(0)\n }\n return\n }\n\n switch (event.key) {\n case 'ArrowDown': {\n setHighlightedIndex((prev) =>\n prev === null ? 0 : Math.min(prev + 1, options.length - 1)\n )\n break\n }\n case 'ArrowUp': {\n setHighlightedIndex((prev) =>\n prev === null ? options.length - 1 : Math.max(prev - 1, 0)\n )\n break\n }\n case 'Enter': {\n if (highlightedIndex !== null) {\n handleChange(options[highlightedIndex])\n }\n break\n }\n case 'Escape': {\n setIsOpen(false)\n break\n }\n }\n },\n [isOpen, highlightedIndex, options, handleChange]\n )\n\n const handleOutsideClick = useCallback(() => {\n setIsOpen(false)\n setHighlightedIndex(null)\n }, [])\n\n return {\n handleChange,\n handleKeyDown,\n handleOutsideClick,\n highlightedIndex,\n isOpen,\n selectedItem,\n setIsOpen,\n }\n}\n","import { useEffect } from 'react'\n\ntype KeyHandler = (event: KeyboardEvent) => void\n\nexport const useKeyboardControls = (handlers: KeyHandler[]) => {\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n handlers.forEach((handler) => handler(event))\n }\n\n window.addEventListener('keydown', handleKeyDown)\n return () => {\n window.removeEventListener('keydown', handleKeyDown)\n }\n }, [handlers])\n}\n","import { useKeyboardControls } from '../../../hooks'\nimport { ColorItem, ShadesIndex } from '../types'\n\ninterface Props {\n palette: ColorItem[]\n setActiveShade: (shade: ShadesIndex) => void\n setActiveColorHandler: (color: ColorItem, index?: number) => void\n}\n\nexport const usePaletteControls = (props: Props) => {\n const { palette, setActiveColorHandler, setActiveShade } = props\n\n const handleShadeKey = (event: KeyboardEvent) => {\n if (event.shiftKey && event.code.startsWith('Digit')) {\n const shadeIndex = parseInt(event.code.replace('Digit', ''), 10)\n if (shadeIndex >= 1 && shadeIndex <= 5) {\n setActiveShade(shadeIndex as ShadesIndex)\n }\n }\n }\n\n const handleColorKey = (event: KeyboardEvent) => {\n const pressedKey = event.key.toLowerCase()\n const index = palette.findIndex(\n (color) => color?.hotkey?.toLowerCase() === pressedKey\n )\n const updatedColor = palette[index]\n\n if (index !== -1) {\n setActiveColorHandler(updatedColor, index)\n }\n }\n useKeyboardControls([handleShadeKey, handleColorKey])\n}\n","import classNames from 'classnames'\nimport { HTMLAttributes, ReactNode } from 'react'\n\nimport s from './icon-button.module.scss'\n\ninterface IconButtonProps\n extends Omit<HTMLAttributes<HTMLButtonElement>, 'className'> {\n className?: string\n variants?: 'primary' | 'secondary' | 'transparent'\n icon: ReactNode\n selected?: boolean\n disabled?: boolean\n}\n\nexport const IconButton = (props: IconButtonProps) => {\n const {\n className,\n disabled,\n icon,\n selected,\n variants = 'primary',\n ...buttonsProps\n } = props\n\n return (\n <button\n className={classNames(\n s.iconButton,\n s[variants],\n selected && s.selected,\n disabled && s.disabled,\n className\n )}\n disabled={disabled}\n {...buttonsProps}\n >\n {icon}\n </button>\n )\n}\n","import classNames from 'classnames'\nimport { ClipboardCopy } from 'lucide-react'\nimport React, { HTMLAttributes, ReactNode, useEffect, useState } from 'react'\n\nimport { IconButton } from '../../../icon-button'\nimport style from './hex-input.module.scss'\n\ntype Props = {\n color: string\n onChange: (color: string) => void\n placeholder?: string\n children?: ReactNode\n} & Omit<HTMLAttributes<HTMLInputElement>, 'onChange'>\n\nexport const HexInput = (props: Props) => {\n const {\n children: slot,\n className,\n color,\n onChange,\n placeholder = 'RRGGBB',\n ...rest\n } = props\n\n const [inputValue, setInputValue] = useState(\n color.startsWith('#') ? color.slice(1) : color\n )\n const [copied, setCopied] = useState(false)\n\n useEffect(() => {\n setInputValue(color.startsWith('#') ? color.slice(1) : color)\n }, [color])\n\n const isValidHex = (value: string) =>\n /^#([0-9A-F]{3}|[0-9A-F]{6})$/i.test('#' + value)\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const newHex = event.target.value\n setInputValue(newHex)\n\n if (isValidHex(newHex)) {\n onChange('#' + newHex)\n }\n }\n\n const handleCopy = () => {\n const fullHex = '#' + inputValue\n navigator.clipboard.writeText(fullHex)\n setCopied(true)\n setTimeout(() => setCopied(false), 1000)\n }\n\n return (\n <div className={style.hexInput}>\n <IconButton\n icon={<ClipboardCopy />}\n onClick={handleCopy}\n className={style.copyButton}\n />\n <div className={style.inputContainer}>\n <span className={style.hash}>#</span>\n <input\n {...rest}\n className={classNames(\n style.input,\n isValidHex(inputValue) ? '' : style.error,\n className\n )}\n value={inputValue}\n onChange={handleChange}\n placeholder={placeholder}\n aria-label=\"Hex code\"\n />\n </div>\n {copied && (\n <div className={style.copiedMessage}>\n <span>Copied!</span>\n </div>\n )}\n {slot && <div className={style.slot}>{slot}</div>}\n </div>\n )\n}\n","import { ColorButton } from '../../../color-button'\nimport { ActiveColor, ColorItem } from '../../types'\nimport style from './palette.module.scss'\n\ninterface PaletteProps {\n palette: ColorItem[]\n activeColor: ActiveColor\n setActiveColorHandler: (color: ColorItem, index: number) => void\n}\n\nexport const Palette = ({\n activeColor,\n palette,\n setActiveColorHandler,\n}: PaletteProps) => (\n <div className={style.colorsList}>\n {palette.map((color, index) => (\n <ColorButton\n key={color.name}\n color={color.color}\n hotkey={color.hotkey}\n selected={activeColor.index === index}\n onClick={() => setActiveColorHandler(color, index)}\n size={'large'}\n />\n ))}\n </div>\n)\n","import { getShadow } from '../../../../utils'\nimport { ColorButton } from '../../../color-button'\nimport { ActiveColor, ColorItem, ShadesIndex } from '../../types'\nimport style from './shadow-list.module.scss'\n\ninterface ShadesListProps {\n activeShade: ShadesIndex\n activeColor: ActiveColor\n colors: ColorItem[]\n setActiveShade: (shade: ShadesIndex) => void\n}\n\nexport const ShadesList = ({\n activeColor,\n activeShade,\n colors,\n setActiveShade,\n}: ShadesListProps) => {\n const shades: ShadesIndex[] = [1, 2, 3, 4, 5]\n const defaultColor = colors[activeColor.index]\n\n if (\n ['#ffffff', 'transparent', '#000000', '#1e1e1e'].includes(\n activeColor?.color\n ) ||\n !colors[activeColor.index]\n ) {\n return (\n <div className={style.shadowText}>\n <p>No shades available for this color</p>\n </div>\n )\n }\n\n return (\n <div className={style.shadowList}>\n {shades.map((shade) => (\n <ColorButton\n key={shade}\n color={getShadow(defaultColor.color, shade)}\n hotkey={`⇧+${shade}`}\n selected={activeShade === shade}\n onClick={() => setActiveShade(shade)}\n size={'large'}\n />\n ))}\n </div>\n )\n}\n","import { ColorButton } from '../color-button'\nimport { DropDown } from '../drop-down'\nimport style from './color-picker.module.scss'\nimport { defaultColors } from './colors'\nimport { usePalette } from './hooks/usePalette'\nimport { usePaletteControls } from './hooks/usePaletteControls'\nimport { HexInput } from './parts/hex-input/HexInput'\nimport { Palette } from './parts/palette/Palette'\nimport { ShadesList } from './parts/shadow-list/ShadesList'\nimport { ActiveColor, ColorItem, ShadesIndex } from './types'\n\ninterface Props {\n selectedColor?: ActiveColor\n colors: ColorItem[]\n selectedShadeIndex?: ShadesIndex\n changeColor?: (color: ColorItem) => void\n}\n\nexport const ColorPicker = (props: Props) => {\n const { changeColor, colors, selectedColor, selectedShadeIndex = 5 } = props\n const initialColors = defaultColors || colors\n\n const {\n activeColor,\n activeShade,\n palette,\n setActiveColorHandler,\n setActiveShade,\n } = usePalette({ colors: initialColors, selectedColor, selectedShadeIndex })\n\n usePaletteControls({\n palette,\n setActiveColorHandler,\n setActiveShade,\n })\n\n return (\n <DropDown.Root>\n <DropDown.Trigger>\n <ColorButton size=\"medium\" color={activeColor.color} />\n </DropDown.Trigger>\n <DropDown.Content className={style.content}>\n <div className={style.section}>\n <h3 className={style.title}>Colors</h3>\n <Palette\n palette={palette}\n activeColor={activeColor}\n setActiveColorHandler={(color, index: number) => {\n setActiveColorHandler(color, index)\n if (changeColor) changeColor(color)\n }}\n />\n </div>\n <div className={style.section}>\n <h3 className={style.title}>Shades</h3>\n <ShadesList\n colors={initialColors}\n activeShade={activeShade}\n activeColor={activeColor}\n setActiveShade={setActiveShade}\n />\n </div>\n <div className={style.section}>\n <h3 className={style.title}>Hex code</h3>\n <HexInput\n color={activeColor.color}\n onChange={(newHex) => {\n setActiveColorHandler({ ...activeColor, color: newHex })\n if (changeColor) changeColor({ ...activeColor, color: newHex })\n }}\n />\n </div>\n </DropDown.Content>\n </DropDown.Root>\n )\n}\n","export function getPagesArray({\n boundaryCount,\n currentPage,\n siblingCount,\n totalPages,\n}: {\n currentPage: number\n totalPages: number\n boundaryCount: number\n siblingCount: number\n}): Array<number | '...'> {\n const totalDisplayed = boundaryCount * 2 + siblingCount * 2 + 1\n if (totalPages <= totalDisplayed) {\n return Array.from({ length: totalPages }, (_, i) => i + 1)\n }\n\n const pages: Array<number | '...'> = []\n\n const leftBoundary = Array.from({ length: boundaryCount }, (_, i) => i + 1)\n const rightBoundary = Array.from(\n { length: boundaryCount },\n (_, i) => totalPages - boundaryCount + i + 1\n )\n\n const leftSibling = Math.max(currentPage - siblingCount, boundaryCount + 1)\n const rightSibling = Math.min(\n currentPage + siblingCount,\n totalPages - boundaryCount\n )\n\n pages.push(...leftBoundary)\n\n if (leftSibling > boundaryCount + 1) {\n pages.push('...')\n }\n\n for (let page = leftSibling; page <= rightSibling; page++) {\n pages.push(page)\n }\n\n if (rightSibling < totalPages - boundaryCount) {\n pages.push('...')\n }\n\n pages.push(...rightBoundary)\n\n return pages\n}\n","import { ChevronLeft, ChevronRight } from 'lucide-react'\n\nimport { IconButton } from '../icon-button'\nimport style from './pagination.module.scss'\nimport { getPagesArray } from './utils/getPagesArray'\n\ntype Props = {\n currentPage: number\n totalPages: number\n onPageChange: (page: number) => void\n siblingCount?: number\n boundaryCount?: number\n}\n\nexport const Pagination = (props: Props) => {\n const {\n boundaryCount = 2,\n currentPage,\n onPageChange,\n siblingCount = 1,\n totalPages,\n } = props\n\n const pagesToRender = getPagesArray({\n boundaryCount,\n currentPage,\n siblingCount,\n totalPages,\n })\n\n const handlePrev = () => {\n if (currentPage > 1) {\n onPageChange(currentPage - 1)\n }\n }\n\n const handleNext = () => {\n if (currentPage < totalPages) {\n onPageChange(currentPage + 1)\n }\n }\n\n return (\n <div className={style.pagination}>\n <IconButton\n onClick={handlePrev}\n disabled={currentPage === 1}\n icon={<ChevronLeft size={16} />}\n variants=\"transparent\"\n />\n\n <div className={style.pages}>\n {pagesToRender.map((page, index) => {\n if (page === '...') {\n return (\n <span className={style.ellipsis} key={`ellipsis-${index}`}>\n ...\n </span>\n )\n }\n\n return (\n <IconButton\n key={page}\n onClick={() => onPageChange(Number(page))}\n icon={page}\n selected={currentPage === page}\n />\n )\n })}\n </div>\n\n <IconButton\n onClick={handleNext}\n disabled={currentPage === totalPages}\n className={style.nextButton}\n icon={<ChevronRight size={16} />}\n variants=\"transparent\"\n />\n </div>\n )\n}\n","import classNames from 'classnames'\nimport { ChevronDown } from 'lucide-react'\nimport { ReactNode, useEffect, useRef } from 'react'\n\nimport { useSelect } from '../../hooks'\nimport { Button } from '../button'\nimport styles from './select.module.scss'\n\nexport interface SelectItem {\n value: string\n label: string\n imageUrl?: string\n}\n\ninterface SelectProps {\n value: string\n title?: string\n options: SelectItem[]\n position?:\n | 'bottom-right'\n | 'bottom-left'\n | 'top-right'\n | 'top-left'\n | 'top'\n | 'left'\n | 'right'\n | 'bottom'\n slot_left?: ReactNode\n slot_right?: ReactNode\n style?: string\n selectedId?: string\n onSelect?: (value: string) => void\n fullWidth?: boolean\n}\n\nexport const Select = ({\n fullWidth = true,\n onSelect,\n options,\n position = 'bottom-left',\n selectedId,\n slot_left,\n slot_right,\n style,\n title = 'Select',\n value,\n}: SelectProps) => {\n const selectRef = useRef<HTMLDivElement | null>(null)\n\n const {\n handleChange,\n handleKeyDown,\n handleOutsideClick,\n highlightedIndex,\n isOpen,\n selectedItem,\n setIsOpen,\n } = useSelect({ onSelect, options, selectedId })\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (\n selectRef.current &&\n !selectRef.current.contains(event.target as Node)\n ) {\n handleOutsideClick()\n }\n }\n document.addEventListener('mousedown', handleClickOutside)\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n }\n }, [handleOutsideClick])\n\n const selectClass = classNames(styles.selectMenu, {\n [styles.positionBottom]: position === 'bottom',\n [styles.positionBottomLeft]: position === 'bottom-left',\n [styles.positionBottomRight]: position === 'bottom-right',\n [styles.positionLeft]: position === 'left',\n [styles.positionRight]: position === 'right',\n [styles.positionTop]: position === 'top',\n [styles.positionTopLeft]: position === 'top-left',\n [styles.positionTopRight]: position === 'top-right',\n })\n\n return (\n <div\n ref={selectRef}\n className={styles.selectContainer}\n onKeyDown={handleKeyDown}\n tabIndex={0}\n >\n <Button\n id={value}\n aria-label=\"Toggle select\"\n variant={'tertiary'}\n aria-haspopup=\"true\"\n aria-expanded={isOpen}\n type=\"button\"\n onClick={() => setIsOpen(!isOpen)}\n className={classNames(styles.selectButton, style)}\n fullWidth={fullWidth}\n >\n <span>{selectedItem?.label || title}</span>\n <ChevronDown\n size={20}\n className={classNames(styles.selectIcon, {\n [styles.selectIconOpen]: isOpen,\n })}\n />\n </Button>\n {isOpen && (\n <div aria-label=\"Select menu\" className={selectClass}>\n <ul role=\"menu\" aria-labelledby={value} aria-orientation=\"vertical\">\n {options?.map((item, index) => (\n <li\n key={item.value}\n onClick={() => handleChange(item)}\n className={classNames(styles.menuItem, styles.menuItemHover, {\n [styles.menuItemHighlighted]: highlightedIndex === index,\n [styles.menuItemSelected]: selectedItem?.value === item.value,\n })}\n >\n {slot_left}\n <span>{item.label}</span>\n {slot_right}\n </li>\n ))}\n </ul>\n </div>\n )}\n </div>\n )\n}\n","import classNames from 'classnames'\nimport { ReactNode } from 'react'\n\nimport style from './shortcut.module.scss'\n\ninterface GroupProps {\n className?: string\n title?: string\n children: ReactNode\n}\n\nconst Group = (props: GroupProps) => {\n const { children, className, title } = props\n\n return (\n <div className={classNames(style.group, className)}>\n <h4 className={style.groupTitle}>{title}</h4>\n {children}\n </div>\n )\n}\n\ninterface ListProps {\n className?: string\n children: ReactNode\n}\n\nconst List = (props: ListProps) => {\n const { children, className } = props\n\n return <div className={classNames(style.list, className)}>{children}</div>\n}\n\ntype Keys = string[]\ninterface ItemProps {\n className?: string\n description: string\n keysVariants: Keys[]\n}\n\nconst Item = (props: ItemProps) => {\n const { className, description, keysVariants } = props\n\n const mapKeys = (keys: Keys) => {\n return keys.map((key, index) => (\n <span className={style.itemKey} key={index}>\n {key}\n </span>\n ))\n }\n\n return (\n <div className={classNames(style.item, className)}>\n <div className={style.itemDescription}>{description}</div>\n <div className={style.itemKeysVariants}>\n {keysVariants.map((keys, keysVariantsIndex) =>\n keysVariantsIndex === 0 ? (\n mapKeys(keys)\n ) : (\n <>\n <span className={style.itemKeysSeparator}>or</span>\n {mapKeys(keys)}\n </>\n )\n )}\n </div>\n </div>\n )\n}\n\nexport const Shortcut = { Group, Item, List }\n","import classNames from 'classnames'\nimport React, { useRef, useState } from 'react'\n\nimport s from './slider.module.scss'\n\ninterface Props {\n min?: number\n max?: number\n step?: number\n initialValue?: number\n onChange?: (value: number) => void\n}\n\nexport const Slider = (props: Props) => {\n const { initialValue = 50, max = 100, min = 0, onChange, step = 1 } = props\n const [value, setValue] = useState<number>(initialValue)\n const [isFocused, setIsFocused] = useState<boolean>(false)\n const sliderRef = useRef<HTMLInputElement>(null)\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = Number(event.target.value)\n setValue(newValue)\n if (onChange) {\n onChange(newValue)\n }\n }\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'ArrowRight') {\n setValue((prevValue) => Math.min(prevValue + step, max))\n } else if (event.key === 'ArrowLeft') {\n setValue((prevValue) => Math.max(prevValue - step, min))\n }\n }\n\n const handleFocus = () => setIsFocused(true)\n const handleBlur = () => setIsFocused(false)\n\n const progressPercentage = ((value - min) / (max - min)) * 100\n\n return (\n <div className={classNames(s.container, isFocused && s.focused)}>\n <input\n type=\"range\"\n min={min}\n max={max}\n step={step}\n value={value}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n ref={sliderRef}\n onFocus={handleFocus}\n onBlur={handleBlur}\n tabIndex={0}\n className={s.slider}\n style={\n {\n '--slider-background-color': '#ddd',\n '--slider-fill-color': '#6965db',\n background: isFocused\n ? `linear-gradient(to right, #363399 ${progressPercentage}%, #ccc ${progressPercentage}%)`\n : `linear-gradient(to right, var(--slider-fill-color) ${progressPercentage}%, var(--slider-background-color) ${progressPercentage}%)`,\n } as React.CSSProperties\n }\n />\n </div>\n )\n}\n\nexport default Slider\n","import classNames from 'classnames'\nimport { Computer, Moon, Sun } from 'lucide-react'\nimport { ReactNode } from 'react'\n\nimport { ThemeValue, useTheme } from '../../features'\nimport { IconButton } from '../icon-button'\nimport style from './theme-switcher.module.scss'\n\ninterface ThemeOption {\n value: ThemeValue\n label: string\n icon: ReactNode\n}\n\nexport const ThemeSwitcher = () => {\n const { setTheme, theme } = useTheme()\n\n const themes: ThemeOption[] = [\n { icon: <Sun />, label: 'Light', value: 'light' },\n { icon: <Moon />, label: 'Dark', value: 'dark' },\n { icon: <Computer />, label: 'System', value: 'system' },\n ]\n\n return (\n <div className={style.themeSwitcher}>\n {themes.map((themeOption) => (\n <IconButton\n icon={themeOption.icon}\n key={themeOption.value}\n variants={'transparent'}\n onClick={() => setTheme(themeOption.value)}\n aria-label={themeOption.label}\n selected={themeOption.value === theme}\n className={classNames(\n style.themeButton,\n themeOption.value === theme && style.selectedButton\n )}\n />\n ))}\n </div>\n )\n}\n","import classNames from 'classnames'\nimport { HTMLAttributes, ReactNode, useState } from 'react'\n\nimport { Button } from '../button'\nimport { IconButton } from '../icon-button'\nimport style from './toggle-switch.module.scss'\n\ntype Value = string | number | readonly string[] | undefined\n\ninterface OptionI extends HTMLAttributes<HTMLButtonElement> {\n value: Value\n leftSlot?: ReactNode\n rightSlot?: ReactNode\n icon?: ReactNode\n}\n\ninterface Props extends HTMLAttributes<HTMLDivElement> {\n options: OptionI[]\n defaultValue?: Value\n}\n\nexport const ToggleSwitch = (props: Props) => {\n const { defaultValue, options, ...divProps } = props\n const [selectedValue, setSelectedValue] = useState<Value>(\n defaultValue || options[0].value\n )\n\n const onClickHandler = (value: Value) => {\n setSelectedValue(value)\n }\n\n return (\n <div className={classNames(style.toggleSwitch)} {...divProps}>\n {options.map(({ icon, leftSlot, rightSlot, value, ...buttonProps }) => {\n return leftSlot || rightSlot ? (\n <Button\n variant={'text'}\n className={classNames(\n style.button,\n selectedValue === value && style.selected\n )}\n onClick={() => onClickHandler(value)}\n >\n {leftSlot}\n {icon}\n {rightSlot}\n </Button>\n ) : (\n <IconButton\n variants={'transparent'}\n className={classNames(\n style.button,\n selectedValue === value && style.selected\n )}\n onClick={() => onClickHandler(value)}\n icon={icon}\n {...buttonProps}\n />\n )\n })}\n </div>\n )\n}\n","import classNames from 'classnames'\nimport { ReactNode } from 'react'\n\nimport s from './toolbar.module.scss'\n\ninterface RootProps {\n children: ReactNode\n direction?: 'horizontal' | 'vertical'\n className?: string\n}\n\nconst Root = (props: RootProps) => {\n const { children, className, direction = 'horizontal' } = props\n return (\n <div\n className={classNames(s.toolbar, direction && s[direction], className)}\n >\n {children}\n </div>\n )\n}\n\ninterface SeparatorProps {}\n\nconst Separator = ({}: SeparatorProps) => {\n return <div className={s.separator}></div>\n}\n\nexport const Toolbar = { Root, Separator }\n"],"names":["ButtonsGroup","buttons","className","jsx","classNames","styles","button","index","isSingle","isFirst","isLast","jsxs","lightenColor","r","g","b","percentage","getShadow","baseColor","targetIndex","hexToRgb","newR","newG","newB","rgbToHex","hex","normalizedHex","bigint","value","getContrastingColor","hexColor","ColorButton","props","color","disabled","hotkey","selected","size","buttonProps","s","defaultColors","usePalette","colors","selectedColor","selectedShadeIndex","activeShade","setActiveShade","useState","palette","setPalette","updatePalette","activeColor","setActiveColor","handleUpdatePalette","shade","updatedPalette","updateActiveColor","handleSetActiveColor","applyShade","useEffect","useSelect","onSelect","options","selectedId","isOpen","setIsOpen","highlightedIndex","setHighlightedIndex","selectedItem","setSelectedItem","item","newSelectedItem","handleChange","useCallback","handleKeyDown","event","prev","handleOutsideClick","useKeyboardControls","handlers","handler","usePaletteControls","setActiveColorHandler","shadeIndex","pressedKey","updatedColor","IconButton","icon","variants","buttonsProps","HexInput","slot","onChange","placeholder","rest","inputValue","setInputValue","copied","setCopied","isValidHex","newHex","handleCopy","fullHex","style","ClipboardCopy","Palette","ShadesList","shades","defaultColor","ColorPicker","changeColor","initialColors","DropDown","getPagesArray","boundaryCount","currentPage","siblingCount","totalPages","totalDisplayed","_","i","pages","leftBoundary","rightBoundary","leftSibling","rightSibling","page","Pagination","onPageChange","pagesToRender","handlePrev","handleNext","ChevronLeft","ChevronRight","Select","fullWidth","position","slot_left","slot_right","title","selectRef","useRef","handleClickOutside","selectClass","Button","ChevronDown","Group","children","List","Item","description","keysVariants","mapKeys","keys","key","keysVariantsIndex","Fragment","Shortcut","Slider","initialValue","max","min","step","setValue","isFocused","setIsFocused","sliderRef","newValue","prevValue","handleFocus","handleBlur","progressPercentage","ThemeSwitcher","setTheme","theme","useTheme","themes","Sun","Moon","Computer","themeOption","ToggleSwitch","defaultValue","divProps","selectedValue","setSelectedValue","onClickHandler","leftSlot","rightSlot","Root","direction","Separator","Toolbar"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/components/buttons-group/ButtonsGroup.tsx","../src/utils/colorUtils.ts","../src/components/color-button/ColorButton.tsx","../src/components/color-picker/colors.ts","../src/components/color-picker/hooks/usePalette.ts","../src/hooks/useSelect.ts","../src/components/color-picker/hooks/usePaletteControls.ts","../src/components/icon-button/IconButton.tsx","../src/components/color-picker/parts/hex-input/HexInput.tsx","../src/components/color-picker/parts/palette/Palette.tsx","../src/components/color-picker/parts/shadow-list/ShadesList.tsx","../src/components/color-picker/ColorPicker.tsx","../src/components/pagination/utils/getPagesArray.ts","../src/components/pagination/Pagination.tsx","../src/components/select/Select.tsx","../src/components/shortcut/Shortcut.tsx","../src/components/slider/Slider.tsx","../src/components/theme-switcher/ThemeSwitcher.tsx","../src/components/toggle-switch/ToggleSwitch.tsx","../src/components/toolbar/Toolbar.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport { HTMLAttributes, ReactNode } from 'react'\n\nimport styles from './buttons-group.module.scss'\n\ninterface ButtonProps extends HTMLAttributes<HTMLButtonElement> {\n label?: string\n icon?: ReactNode\n onClick?: () => void\n disabled?: boolean\n selected?: boolean\n}\n\ninterface Props {\n buttons: ButtonProps[]\n className?: string\n}\n\nexport const ButtonsGroup = ({ buttons, className }: Props) => {\n return (\n <div className={classNames(styles.buttonGroup, className)}>\n {buttons.map((button, index) => {\n const isSingle = buttons.length === 1\n const isFirst = index === 0 && !isSingle\n const isLast = index === buttons.length - 1 && !isSingle\n\n return (\n <button\n key={index}\n onClick={button.onClick}\n disabled={button.disabled}\n className={classNames(styles.button, {\n [styles.first]: isFirst,\n [styles.last]: isLast,\n [styles.selected]: button.selected,\n [styles.single]: isSingle,\n })}\n {...button}\n >\n {button.icon && button.icon}\n {button.label && (\n <span className={styles.label}>{button.label}</span>\n )}\n </button>\n )\n })}\n </div>\n )\n}\n","const lightenColor = (\n r: number,\n g: number,\n b: number,\n percentage: number\n): [number, number, number] => {\n return [\n Math.min(255, Math.round(r + (255 - r) * percentage)),\n Math.min(255, Math.round(g + (255 - g) * percentage)),\n Math.min(255, Math.round(b + (255 - b) * percentage)),\n ]\n}\n\nexport const getShadow = (baseColor: string, targetIndex: number): string => {\n if (targetIndex === 5) {\n return baseColor\n }\n\n if (\n baseColor === 'transparent' ||\n baseColor === '#ffffff' ||\n baseColor === '#1e1e1e'\n ) {\n return baseColor\n }\n\n const [r, g, b] = hexToRgb(baseColor)\n\n const percentage = (5 - targetIndex) * 0.2\n const [newR, newG, newB] = lightenColor(r, g, b, percentage)\n\n return rgbToHex(newR, newG, newB)\n}\nconst hexToRgb = (hex: string): [number, number, number] => {\n const normalizedHex = hex.replace('#', '')\n const bigint = parseInt(normalizedHex, 16)\n return [(bigint >> 16) & 255, (bigint >> 8) & 255, bigint & 255]\n}\n\nconst rgbToHex = (r: number, g: number, b: number): string => {\n return (\n '#' +\n [r, g, b]\n .map((value) => {\n const hex = value.toString(16)\n return hex.length === 1 ? '0' + hex : hex\n })\n .join('')\n )\n}\n\nexport const getContrastingColor = (hexColor: string): string => {\n if (hexColor === 'transparent') {\n return '#000'\n }\n\n const [r, g, b] = hexToRgb(hexColor)\n const brightness = (r * 299 + g * 587 + b * 114) / 1000\n return brightness > 128 ? '#000' : '#fff'\n}\n","import classNames from 'classnames'\nimport { CSSProperties, HTMLAttributes } from 'react'\n\nimport { getContrastingColor } from '../../utils'\nimport s from './color-button.module.scss'\n\ninterface ColorButtonProps extends HTMLAttributes<HTMLButtonElement> {\n color: string\n disabled?: boolean\n selected?: boolean\n hotkey?: string\n size?: 'small' | 'medium' | 'large'\n}\n\nexport const ColorButton = (props: ColorButtonProps) => {\n const {\n className,\n color,\n disabled,\n hotkey,\n selected,\n size = 'small',\n ...buttonProps\n } = props\n\n return (\n <button\n className={classNames(\n s.colorButton,\n s[size],\n disabled && s.disabled,\n selected && s.selected,\n color === 'transparent' && s.transparent,\n className\n )}\n style={{ '--swatch-color': color } as CSSProperties}\n disabled={disabled}\n {...buttonProps}\n >\n <p className={s.hotkey} style={{ color: getContrastingColor(color) }}>\n {hotkey}\n </p>\n </button>\n )\n}\n","import { ColorItem } from './types'\n\nexport const defaultColors: ColorItem[] = [\n {\n color: 'transparent',\n hotkey: 'q',\n name: 'transparent',\n },\n {\n color: '#ffffff',\n hotkey: 'w',\n name: 'white',\n },\n {\n color: '#343a40',\n hotkey: 'e',\n name: 'gray',\n },\n {\n color: '#1e1e1e',\n hotkey: 'r',\n name: 'black',\n },\n {\n color: '#846358',\n hotkey: 't',\n name: 'bronze',\n },\n {\n color: '#0c8599',\n hotkey: 'a',\n name: 'cyan',\n },\n {\n color: '#1971c2',\n hotkey: 's',\n name: 'blue',\n },\n {\n color: '#6741d9',\n hotkey: 'd',\n name: 'violet',\n },\n {\n color: '#9c36b5',\n hotkey: 'f',\n name: 'grape',\n },\n {\n color: '#c2255c',\n hotkey: 'g',\n name: 'pink',\n },\n {\n color: '#2f9e44',\n hotkey: 'z',\n name: 'green',\n },\n {\n color: '#099268',\n hotkey: 'x',\n name: 'teal',\n },\n {\n color: '#f08c00',\n hotkey: 'c',\n name: 'yellow',\n },\n {\n color: '#e8590c',\n hotkey: 'v',\n name: 'orange',\n },\n {\n color: '#e03131',\n hotkey: 'b',\n name: 'red',\n },\n]\n","import { useEffect, useState } from 'react'\n\nimport { getShadow } from '../../../utils'\nimport { ActiveColor, ColorItem, ShadesIndex } from '../types'\n\ninterface Props {\n selectedShadeIndex: ShadesIndex\n selectedColor?: ActiveColor\n colors: ColorItem[]\n}\n\nexport const usePalette = ({\n colors,\n selectedColor,\n selectedShadeIndex,\n}: Props) => {\n const [activeShade, setActiveShade] = useState(selectedShadeIndex)\n const [palette, setPalette] = useState(() =>\n updatePalette(colors, selectedShadeIndex)\n )\n const [activeColor, setActiveColor] = useState<ActiveColor>(() => ({\n ...(selectedColor ?? { ...colors[0], index: 0 }),\n index: selectedColor?.index ?? 0,\n }))\n\n const handleUpdatePalette = (shade: ShadesIndex): void => {\n const updatedPalette = updatePalette(colors, shade)\n console.log(updatedPalette)\n setPalette(updatedPalette)\n setActiveColor(updateActiveColor(updatedPalette, activeColor))\n }\n\n const handleSetActiveColor = (color: ColorItem, index = 999) => {\n setActiveColor({ ...applyShade(color, activeShade), index })\n }\n\n useEffect(() => {\n handleUpdatePalette(activeShade)\n }, [activeShade, colors, activeColor.index])\n\n return {\n activeColor,\n activeShade,\n palette,\n setActiveColorHandler: handleSetActiveColor,\n setActiveShade,\n }\n}\n\nconst applyShade = (color: ColorItem, shade: ShadesIndex) => ({\n ...color,\n color: getShadow(color.color, shade),\n})\n\nconst updatePalette = (colors: ColorItem[], shade: ShadesIndex) =>\n colors.map((color) => applyShade(color, shade))\n\nconst updateActiveColor = (\n palette: ColorItem[],\n activeColor: ActiveColor\n): ActiveColor => ({\n ...(palette[activeColor.index] ?? palette[0]),\n index: activeColor.index ?? 0,\n})\n","import React, { useCallback, useState, useEffect } from 'react'\n\nimport { SelectItem } from '../components'\n\ninterface UseSelectProps {\n options: SelectItem[]\n onSelect?: (value: string) => void\n selectedId?: string\n}\n\nexport const useSelect = ({\n onSelect,\n options,\n selectedId,\n}: UseSelectProps) => {\n const [isOpen, setIsOpen] = useState(false)\n const [highlightedIndex, setHighlightedIndex] = useState<number | null>(null)\n const [selectedItem, setSelectedItem] = useState<SelectItem | null>(\n selectedId\n ? options.find((item) => item.value === selectedId) || null\n : null\n )\n\n useEffect(() => {\n if (selectedId) {\n const newSelectedItem = options.find((item) => item.value === selectedId)\n setSelectedItem(newSelectedItem || null)\n }\n }, [selectedId, options])\n\n const handleChange = useCallback(\n (item: SelectItem) => {\n setSelectedItem(item)\n if (onSelect) {\n onSelect(item.value)\n }\n setIsOpen(false)\n setHighlightedIndex(null)\n },\n [onSelect]\n )\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (!isOpen) {\n if (event.key === 'Enter' || event.key === ' ') {\n setIsOpen(true)\n setHighlightedIndex(0)\n }\n return\n }\n\n switch (event.key) {\n case 'ArrowDown': {\n setHighlightedIndex((prev) =>\n prev === null ? 0 : Math.min(prev + 1, options.length - 1)\n )\n break\n }\n case 'ArrowUp': {\n setHighlightedIndex((prev) =>\n prev === null ? options.length - 1 : Math.max(prev - 1, 0)\n )\n break\n }\n case 'Enter': {\n if (highlightedIndex !== null) {\n handleChange(options[highlightedIndex])\n }\n break\n }\n case 'Escape': {\n setIsOpen(false)\n break\n }\n }\n },\n [isOpen, highlightedIndex, options, handleChange]\n )\n\n const handleOutsideClick = useCallback(() => {\n setIsOpen(false)\n setHighlightedIndex(null)\n }, [])\n\n return {\n handleChange,\n handleKeyDown,\n handleOutsideClick,\n highlightedIndex,\n isOpen,\n selectedItem,\n setIsOpen,\n }\n}\n","import { useKeyboardControls } from '../../../hooks'\nimport { ColorItem, ShadesIndex } from '../types'\n\ninterface Props {\n palette: ColorItem[]\n setActiveShade: (shade: ShadesIndex) => void\n setActiveColorHandler: (color: ColorItem, index?: number) => void\n}\n\nexport const usePaletteControls = (props: Props) => {\n const { palette, setActiveColorHandler, setActiveShade } = props\n\n const handleShadeKey = (event: KeyboardEvent) => {\n if (event.shiftKey && event.code.startsWith('Digit')) {\n const shadeIndex = parseInt(event.code.replace('Digit', ''), 10)\n if (shadeIndex >= 1 && shadeIndex <= 5) {\n setActiveShade(shadeIndex as ShadesIndex)\n }\n }\n }\n\n const handleColorKey = (event: KeyboardEvent) => {\n const pressedKey = event.key.toLowerCase()\n const index = palette.findIndex(\n (color) => color?.hotkey?.toLowerCase() === pressedKey\n )\n const updatedColor = palette[index]\n\n if (index !== -1) {\n setActiveColorHandler(updatedColor, index)\n }\n }\n useKeyboardControls([handleShadeKey, handleColorKey])\n}\n","import classNames from 'classnames'\nimport { HTMLAttributes, ReactNode } from 'react'\n\nimport s from './icon-button.module.scss'\n\ninterface IconButtonProps\n extends Omit<HTMLAttributes<HTMLButtonElement>, 'className'> {\n className?: string\n variants?: 'primary' | 'secondary' | 'transparent'\n icon: ReactNode\n selected?: boolean\n disabled?: boolean\n}\n\nexport const IconButton = (props: IconButtonProps) => {\n const {\n className,\n disabled,\n icon,\n selected,\n variants = 'primary',\n ...buttonsProps\n } = props\n\n return (\n <button\n className={classNames(\n s.iconButton,\n s[variants],\n selected && s.selected,\n disabled && s.disabled,\n className\n )}\n disabled={disabled}\n {...buttonsProps}\n >\n {icon}\n </button>\n )\n}\n","import classNames from 'classnames'\nimport { ClipboardCopy } from 'lucide-react'\nimport React, { HTMLAttributes, ReactNode, useEffect, useState } from 'react'\n\nimport { IconButton } from '../../../icon-button'\nimport style from './hex-input.module.scss'\n\ntype Props = {\n color: string\n onChange: (color: string) => void\n placeholder?: string\n children?: ReactNode\n} & Omit<HTMLAttributes<HTMLInputElement>, 'onChange'>\n\nexport const HexInput = (props: Props) => {\n const {\n children: slot,\n className,\n color,\n onChange,\n placeholder = 'RRGGBB',\n ...rest\n } = props\n\n const [inputValue, setInputValue] = useState(\n color.startsWith('#') ? color.slice(1) : color\n )\n const [copied, setCopied] = useState(false)\n\n useEffect(() => {\n setInputValue(color.startsWith('#') ? color.slice(1) : color)\n }, [color])\n\n const isValidHex = (value: string) =>\n /^#([0-9A-F]{3}|[0-9A-F]{6})$/i.test('#' + value)\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const newHex = event.target.value\n setInputValue(newHex)\n\n if (isValidHex(newHex)) {\n onChange('#' + newHex)\n }\n }\n\n const handleCopy = () => {\n const fullHex = '#' + inputValue\n navigator.clipboard.writeText(fullHex)\n setCopied(true)\n setTimeout(() => setCopied(false), 1000)\n }\n\n return (\n <div className={style.hexInput}>\n <IconButton\n icon={<ClipboardCopy />}\n onClick={handleCopy}\n className={style.copyButton}\n />\n <div className={style.inputContainer}>\n <span className={style.hash}>#</span>\n <input\n {...rest}\n className={classNames(\n style.input,\n isValidHex(inputValue) ? '' : style.error,\n className\n )}\n value={inputValue}\n onChange={handleChange}\n placeholder={placeholder}\n aria-label=\"Hex code\"\n />\n </div>\n {copied && (\n <div className={style.copiedMessage}>\n <span>Copied!</span>\n </div>\n )}\n {slot && <div className={style.slot}>{slot}</div>}\n </div>\n )\n}\n","import { ColorButton } from '../../../color-button'\nimport { ActiveColor, ColorItem } from '../../types'\nimport style from './palette.module.scss'\n\ninterface PaletteProps {\n palette: ColorItem[]\n activeColor: ActiveColor\n setActiveColorHandler: (color: ColorItem, index: number) => void\n}\n\nexport const Palette = ({\n activeColor,\n palette,\n setActiveColorHandler,\n}: PaletteProps) => (\n <div className={style.colorsList}>\n {palette.map((color, index) => (\n <ColorButton\n key={color.name}\n color={color.color}\n hotkey={color.hotkey}\n selected={activeColor.index === index}\n onClick={() => setActiveColorHandler(color, index)}\n size={'large'}\n />\n ))}\n </div>\n)\n","import { getShadow } from '../../../../utils'\nimport { ColorButton } from '../../../color-button'\nimport { ActiveColor, ColorItem, ShadesIndex } from '../../types'\nimport style from './shadow-list.module.scss'\n\ninterface ShadesListProps {\n activeShade: ShadesIndex\n activeColor: ActiveColor\n colors: ColorItem[]\n setActiveShade: (shade: ShadesIndex) => void\n}\n\nexport const ShadesList = ({\n activeColor,\n activeShade,\n colors,\n setActiveShade,\n}: ShadesListProps) => {\n const shades: ShadesIndex[] = [1, 2, 3, 4, 5]\n const defaultColor = colors[activeColor.index]\n\n if (\n ['#ffffff', 'transparent', '#000000', '#1e1e1e'].includes(\n activeColor?.color\n ) ||\n !colors[activeColor.index]\n ) {\n return (\n <div className={style.shadowText}>\n <p>No shades available for this color</p>\n </div>\n )\n }\n\n return (\n <div className={style.shadowList}>\n {shades.map((shade) => (\n <ColorButton\n key={shade}\n color={getShadow(defaultColor.color, shade)}\n hotkey={`⇧+${shade}`}\n selected={activeShade === shade}\n onClick={() => setActiveShade(shade)}\n size={'large'}\n />\n ))}\n </div>\n )\n}\n","import { ColorButton } from '../color-button'\nimport { DropDown } from '../drop-down'\nimport style from './color-picker.module.scss'\nimport { defaultColors } from './colors'\nimport { usePalette } from './hooks/usePalette'\nimport { usePaletteControls } from './hooks/usePaletteControls'\nimport { HexInput } from './parts/hex-input/HexInput'\nimport { Palette } from './parts/palette/Palette'\nimport { ShadesList } from './parts/shadow-list/ShadesList'\nimport { ActiveColor, ColorItem, ShadesIndex } from './types'\n\ninterface Props {\n selectedColor?: ActiveColor\n colors: ColorItem[]\n selectedShadeIndex?: ShadesIndex\n changeColor?: (color: ColorItem) => void\n}\n\nexport const ColorPicker = (props: Props) => {\n const { changeColor, colors, selectedColor, selectedShadeIndex = 5 } = props\n const initialColors = defaultColors || colors\n\n const {\n activeColor,\n activeShade,\n palette,\n setActiveColorHandler,\n setActiveShade,\n } = usePalette({ colors: initialColors, selectedColor, selectedShadeIndex })\n\n usePaletteControls({\n palette,\n setActiveColorHandler,\n setActiveShade,\n })\n\n return (\n <DropDown.Root>\n <DropDown.Trigger>\n <ColorButton size=\"medium\" color={activeColor.color} />\n </DropDown.Trigger>\n <DropDown.Content className={style.content}>\n <div className={style.section}>\n <h3 className={style.title}>Colors</h3>\n <Palette\n palette={palette}\n activeColor={activeColor}\n setActiveColorHandler={(color, index: number) => {\n setActiveColorHandler(color, index)\n if (changeColor) changeColor(color)\n }}\n />\n </div>\n <div className={style.section}>\n <h3 className={style.title}>Shades</h3>\n <ShadesList\n colors={initialColors}\n activeShade={activeShade}\n activeColor={activeColor}\n setActiveShade={setActiveShade}\n />\n </div>\n <div className={style.section}>\n <h3 className={style.title}>Hex code</h3>\n <HexInput\n color={activeColor.color}\n onChange={(newHex) => {\n setActiveColorHandler({ ...activeColor, color: newHex })\n if (changeColor) changeColor({ ...activeColor, color: newHex })\n }}\n />\n </div>\n </DropDown.Content>\n </DropDown.Root>\n )\n}\n","export function getPagesArray({\n boundaryCount,\n currentPage,\n siblingCount,\n totalPages,\n}: {\n currentPage: number\n totalPages: number\n boundaryCount: number\n siblingCount: number\n}): Array<number | '...'> {\n const totalDisplayed = boundaryCount * 2 + siblingCount * 2 + 1\n if (totalPages <= totalDisplayed) {\n return Array.from({ length: totalPages }, (_, i) => i + 1)\n }\n\n const pages: Array<number | '...'> = []\n\n const leftBoundary = Array.from({ length: boundaryCount }, (_, i) => i + 1)\n const rightBoundary = Array.from(\n { length: boundaryCount },\n (_, i) => totalPages - boundaryCount + i + 1\n )\n\n const leftSibling = Math.max(currentPage - siblingCount, boundaryCount + 1)\n const rightSibling = Math.min(\n currentPage + siblingCount,\n totalPages - boundaryCount\n )\n\n pages.push(...leftBoundary)\n\n if (leftSibling > boundaryCount + 1) {\n pages.push('...')\n }\n\n for (let page = leftSibling; page <= rightSibling; page++) {\n pages.push(page)\n }\n\n if (rightSibling < totalPages - boundaryCount) {\n pages.push('...')\n }\n\n pages.push(...rightBoundary)\n\n return pages\n}\n","import { ChevronLeft, ChevronRight } from 'lucide-react'\n\nimport { IconButton } from '../icon-button'\nimport style from './pagination.module.scss'\nimport { getPagesArray } from './utils/getPagesArray'\n\ntype Props = {\n currentPage: number\n totalPages: number\n onPageChange: (page: number) => void\n siblingCount?: number\n boundaryCount?: number\n}\n\nexport const Pagination = (props: Props) => {\n const {\n boundaryCount = 2,\n currentPage,\n onPageChange,\n siblingCount = 1,\n totalPages,\n } = props\n\n const pagesToRender = getPagesArray({\n boundaryCount,\n currentPage,\n siblingCount,\n totalPages,\n })\n\n const handlePrev = () => {\n if (currentPage > 1) {\n onPageChange(currentPage - 1)\n }\n }\n\n const handleNext = () => {\n if (currentPage < totalPages) {\n onPageChange(currentPage + 1)\n }\n }\n\n return (\n <div className={style.pagination}>\n <IconButton\n onClick={handlePrev}\n disabled={currentPage === 1}\n icon={<ChevronLeft size={16} />}\n variants=\"transparent\"\n />\n\n <div className={style.pages}>\n {pagesToRender.map((page, index) => {\n if (page === '...') {\n return (\n <span className={style.ellipsis} key={`ellipsis-${index}`}>\n ...\n </span>\n )\n }\n\n return (\n <IconButton\n key={page}\n onClick={() => onPageChange(Number(page))}\n icon={page}\n selected={currentPage === page}\n />\n )\n })}\n </div>\n\n <IconButton\n onClick={handleNext}\n disabled={currentPage === totalPages}\n className={style.nextButton}\n icon={<ChevronRight size={16} />}\n variants=\"transparent\"\n />\n </div>\n )\n}\n","import classNames from 'classnames'\nimport { ChevronDown } from 'lucide-react'\nimport { ReactNode, useEffect, useRef } from 'react'\n\nimport { useSelect } from '../../hooks'\nimport { Button } from '../button'\nimport styles from './select.module.scss'\n\nexport interface SelectItem {\n value: string\n label: string\n imageUrl?: string\n}\n\ninterface SelectProps {\n value: string\n title?: string\n options: SelectItem[]\n position?:\n | 'bottom-right'\n | 'bottom-left'\n | 'top-right'\n | 'top-left'\n | 'top'\n | 'left'\n | 'right'\n | 'bottom'\n slot_left?: ReactNode\n slot_right?: ReactNode\n style?: string\n selectedId?: string\n onSelect?: (value: string) => void\n fullWidth?: boolean\n}\n\nexport const Select = ({\n fullWidth = true,\n onSelect,\n options,\n position = 'bottom-left',\n selectedId,\n slot_left,\n slot_right,\n style,\n title = 'Select',\n value,\n}: SelectProps) => {\n const selectRef = useRef<HTMLDivElement | null>(null)\n\n const {\n handleChange,\n handleKeyDown,\n handleOutsideClick,\n highlightedIndex,\n isOpen,\n selectedItem,\n setIsOpen,\n } = useSelect({ onSelect, options, selectedId })\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (\n selectRef.current &&\n !selectRef.current.contains(event.target as Node)\n ) {\n handleOutsideClick()\n }\n }\n document.addEventListener('mousedown', handleClickOutside)\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n }\n }, [handleOutsideClick])\n\n const selectClass = classNames(styles.selectMenu, {\n [styles.positionBottom]: position === 'bottom',\n [styles.positionBottomLeft]: position === 'bottom-left',\n [styles.positionBottomRight]: position === 'bottom-right',\n [styles.positionLeft]: position === 'left',\n [styles.positionRight]: position === 'right',\n [styles.positionTop]: position === 'top',\n [styles.positionTopLeft]: position === 'top-left',\n [styles.positionTopRight]: position === 'top-right',\n })\n\n return (\n <div\n ref={selectRef}\n className={styles.selectContainer}\n onKeyDown={handleKeyDown}\n tabIndex={0}\n >\n <Button\n id={value}\n aria-label=\"Toggle select\"\n variant={'tertiary'}\n aria-haspopup=\"true\"\n aria-expanded={isOpen}\n type=\"button\"\n onClick={() => setIsOpen(!isOpen)}\n className={classNames(styles.selectButton, style)}\n fullWidth={fullWidth}\n >\n <span>{selectedItem?.label || title}</span>\n <ChevronDown\n size={20}\n className={classNames(styles.selectIcon, {\n [styles.selectIconOpen]: isOpen,\n })}\n />\n </Button>\n {isOpen && (\n <div aria-label=\"Select menu\" className={selectClass}>\n <ul role=\"menu\" aria-labelledby={value} aria-orientation=\"vertical\">\n {options?.map((item, index) => (\n <li\n key={item.value}\n onClick={() => handleChange(item)}\n className={classNames(styles.menuItem, styles.menuItemHover, {\n [styles.menuItemHighlighted]: highlightedIndex === index,\n [styles.menuItemSelected]: selectedItem?.value === item.value,\n })}\n >\n {slot_left}\n <span>{item.label}</span>\n {slot_right}\n </li>\n ))}\n </ul>\n </div>\n )}\n </div>\n )\n}\n","import classNames from 'classnames'\nimport { ReactNode } from 'react'\n\nimport style from './shortcut.module.scss'\n\ninterface GroupProps {\n className?: string\n title?: string\n children: ReactNode\n}\n\nconst Group = (props: GroupProps) => {\n const { children, className, title } = props\n\n return (\n <div className={classNames(style.group, className)}>\n <h4 className={style.groupTitle}>{title}</h4>\n {children}\n </div>\n )\n}\n\ninterface ListProps {\n className?: string\n children: ReactNode\n}\n\nconst List = (props: ListProps) => {\n const { children, className } = props\n\n return <div className={classNames(style.list, className)}>{children}</div>\n}\n\ntype Keys = string[]\ninterface ItemProps {\n className?: string\n description: string\n keysVariants: Keys[]\n}\n\nconst Item = (props: ItemProps) => {\n const { className, description, keysVariants } = props\n\n const mapKeys = (keys: Keys) => {\n return keys.map((key, index) => (\n <span className={style.itemKey} key={index}>\n {key}\n </span>\n ))\n }\n\n return (\n <div className={classNames(style.item, className)}>\n <div className={style.itemDescription}>{description}</div>\n <div className={style.itemKeysVariants}>\n {keysVariants.map((keys, keysVariantsIndex) =>\n keysVariantsIndex === 0 ? (\n mapKeys(keys)\n ) : (\n <>\n <span className={style.itemKeysSeparator}>or</span>\n {mapKeys(keys)}\n </>\n )\n )}\n </div>\n </div>\n )\n}\n\nexport const Shortcut = { Group, Item, List }\n","import classNames from 'classnames'\nimport React, { useRef, useState } from 'react'\n\nimport s from './slider.module.scss'\n\ninterface Props {\n min?: number\n max?: number\n step?: number\n initialValue?: number\n onChange?: (value: number) => void\n}\n\nexport const Slider = (props: Props) => {\n const { initialValue = 50, max = 100, min = 0, onChange, step = 1 } = props\n const [value, setValue] = useState<number>(initialValue)\n const [isFocused, setIsFocused] = useState<boolean>(false)\n const sliderRef = useRef<HTMLInputElement>(null)\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = Number(event.target.value)\n setValue(newValue)\n if (onChange) {\n onChange(newValue)\n }\n }\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'ArrowRight') {\n setValue((prevValue) => Math.min(prevValue + step, max))\n } else if (event.key === 'ArrowLeft') {\n setValue((prevValue) => Math.max(prevValue - step, min))\n }\n }\n\n const handleFocus = () => setIsFocused(true)\n const handleBlur = () => setIsFocused(false)\n\n const progressPercentage = ((value - min) / (max - min)) * 100\n\n return (\n <div className={classNames(s.container, isFocused && s.focused)}>\n <input\n type=\"range\"\n min={min}\n max={max}\n step={step}\n value={value}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n ref={sliderRef}\n onFocus={handleFocus}\n onBlur={handleBlur}\n tabIndex={0}\n className={s.slider}\n style={\n {\n '--slider-background-color': '#ddd',\n '--slider-fill-color': '#6965db',\n background: isFocused\n ? `linear-gradient(to right, #363399 ${progressPercentage}%, #ccc ${progressPercentage}%)`\n : `linear-gradient(to right, var(--slider-fill-color) ${progressPercentage}%, var(--slider-background-color) ${progressPercentage}%)`,\n } as React.CSSProperties\n }\n />\n </div>\n )\n}\n\nexport default Slider\n","import classNames from 'classnames'\nimport { Computer, Moon, Sun } from 'lucide-react'\nimport { ReactNode } from 'react'\n\nimport { ThemeValue, useTheme } from '../../features'\nimport { IconButton } from '../icon-button'\nimport style from './theme-switcher.module.scss'\n\ninterface ThemeOption {\n value: ThemeValue\n label: string\n icon: ReactNode\n}\n\nexport const ThemeSwitcher = () => {\n const { setTheme, theme } = useTheme()\n\n const themes: ThemeOption[] = [\n { icon: <Sun />, label: 'Light', value: 'light' },\n { icon: <Moon />, label: 'Dark', value: 'dark' },\n { icon: <Computer />, label: 'System', value: 'system' },\n ]\n\n return (\n <div className={style.themeSwitcher}>\n {themes.map((themeOption) => (\n <IconButton\n icon={themeOption.icon}\n key={themeOption.value}\n variants={'transparent'}\n onClick={() => setTheme(themeOption.value)}\n aria-label={themeOption.label}\n selected={themeOption.value === theme}\n className={classNames(\n style.themeButton,\n themeOption.value === theme && style.selectedButton\n )}\n />\n ))}\n </div>\n )\n}\n","import classNames from 'classnames'\nimport { HTMLAttributes, ReactNode, useState } from 'react'\n\nimport { Button } from '../button'\nimport { IconButton } from '../icon-button'\nimport style from './toggle-switch.module.scss'\n\ntype Value = string | number | readonly string[] | undefined\n\ninterface OptionI extends HTMLAttributes<HTMLButtonElement> {\n value: Value\n leftSlot?: ReactNode\n rightSlot?: ReactNode\n icon?: ReactNode\n}\n\ninterface Props extends HTMLAttributes<HTMLDivElement> {\n options: OptionI[]\n defaultValue?: Value\n}\n\nexport const ToggleSwitch = (props: Props) => {\n const { defaultValue, options, ...divProps } = props\n const [selectedValue, setSelectedValue] = useState<Value>(\n defaultValue || options[0].value\n )\n\n const onClickHandler = (value: Value) => {\n setSelectedValue(value)\n }\n\n return (\n <div className={classNames(style.toggleSwitch)} {...divProps}>\n {options.map(({ icon, leftSlot, rightSlot, value, ...buttonProps }) => {\n return leftSlot || rightSlot ? (\n <Button\n variant={'text'}\n className={classNames(\n style.button,\n selectedValue === value && style.selected\n )}\n onClick={() => onClickHandler(value)}\n >\n {leftSlot}\n {icon}\n {rightSlot}\n </Button>\n ) : (\n <IconButton\n variants={'transparent'}\n className={classNames(\n style.button,\n selectedValue === value && style.selected\n )}\n onClick={() => onClickHandler(value)}\n icon={icon}\n {...buttonProps}\n />\n )\n })}\n </div>\n )\n}\n","import classNames from 'classnames'\nimport { ReactNode } from 'react'\n\nimport s from './toolbar.module.scss'\n\ninterface RootProps {\n children: ReactNode\n direction?: 'horizontal' | 'vertical'\n className?: string\n}\n\nconst Root = (props: RootProps) => {\n const { children, className, direction = 'horizontal' } = props\n return (\n <div\n className={classNames(s.toolbar, direction && s[direction], className)}\n >\n {children}\n </div>\n )\n}\n\ninterface SeparatorProps {}\n\nconst Separator = ({}: SeparatorProps) => {\n return <div className={s.separator}></div>\n}\n\nexport const Toolbar = { Root, Separator }\n"],"names":["ButtonsGroup","buttons","className","jsx","classNames","styles","button","index","isSingle","isFirst","isLast","jsxs","lightenColor","r","g","b","percentage","getShadow","baseColor","targetIndex","hexToRgb","newR","newG","newB","rgbToHex","hex","normalizedHex","bigint","value","getContrastingColor","hexColor","ColorButton","props","color","disabled","hotkey","selected","size","buttonProps","s","defaultColors","usePalette","colors","selectedColor","selectedShadeIndex","activeShade","setActiveShade","useState","palette","setPalette","updatePalette","activeColor","setActiveColor","handleUpdatePalette","shade","updatedPalette","updateActiveColor","handleSetActiveColor","applyShade","useEffect","useSelect","onSelect","options","selectedId","isOpen","setIsOpen","highlightedIndex","setHighlightedIndex","selectedItem","setSelectedItem","item","newSelectedItem","handleChange","useCallback","handleKeyDown","event","prev","handleOutsideClick","usePaletteControls","setActiveColorHandler","useKeyboardControls","shadeIndex","pressedKey","updatedColor","IconButton","icon","variants","buttonsProps","HexInput","slot","onChange","placeholder","rest","inputValue","setInputValue","copied","setCopied","isValidHex","newHex","handleCopy","fullHex","style","ClipboardCopy","Palette","ShadesList","shades","defaultColor","ColorPicker","changeColor","initialColors","DropDown","getPagesArray","boundaryCount","currentPage","siblingCount","totalPages","totalDisplayed","_","i","pages","leftBoundary","rightBoundary","leftSibling","rightSibling","page","Pagination","onPageChange","pagesToRender","handlePrev","handleNext","ChevronLeft","ChevronRight","Select","fullWidth","position","slot_left","slot_right","title","selectRef","useRef","handleClickOutside","selectClass","Button","ChevronDown","Group","children","List","Item","description","keysVariants","mapKeys","keys","key","keysVariantsIndex","Fragment","Shortcut","Slider","initialValue","max","min","step","setValue","isFocused","setIsFocused","sliderRef","newValue","prevValue","handleFocus","handleBlur","progressPercentage","ThemeSwitcher","setTheme","theme","useTheme","themes","Sun","Moon","Computer","themeOption","ToggleSwitch","defaultValue","divProps","selectedValue","setSelectedValue","onClickHandler","leftSlot","rightSlot","Root","direction","Separator","Toolbar"],"mappings":"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"}
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
- import { Image as h, Video as g, FileQuestion as p, HardDriveDownload as u, Share2 as y, PencilRuler as I } from "lucide-react";
4
- import { d as l, e as o, B as v } from "./ToolIconButton-CKUWpXoL.js";
5
- import { k as U, u as X } from "./ToolIconButton-CKUWpXoL.js";
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-BezvcpMB.js";
5
+ import { l as U, a as X } from "./ToolIconButton-BezvcpMB.js";
6
6
  import "react";
7
7
  const f = [
8
8
  "png",
@@ -61,7 +61,7 @@ const H = "_root_y0usf_1", b = "_cardList_y0usf_5", S = "_cardItemHeader_y0usf_1
61
61
  ) }),
62
62
  t.footerSection && /* @__PURE__ */ e("div", { className: i.cardItemFooter, children: t.footerSection })
63
63
  ] }) });
64
- }, w = "_content_1iqyy_1", L = "_card_1iqyy_5", D = "_cardList_1iqyy_12", P = "_cardIcon_1iqyy_19", A = "_cardTitle_1iqyy_28", E = "_cardDescription_1iqyy_33", j = "_red_1iqyy_41", R = "_green_1iqyy_45", z = "_primary_1iqyy_49", c = {
64
+ }, w = "_content_1iqyy_1", L = "_card_1iqyy_5", D = "_cardList_1iqyy_12", P = "_cardIcon_1iqyy_19", A = "_cardTitle_1iqyy_28", E = "_cardDescription_1iqyy_33", j = "_red_1iqyy_41", R = "_green_1iqyy_45", z = "_primary_1iqyy_49", a = {
65
65
  content: w,
66
66
  card: L,
67
67
  cardList: D,
@@ -80,7 +80,7 @@ const H = "_root_y0usf_1", b = "_cardList_y0usf_5", S = "_cardItemHeader_y0usf_1
80
80
  bgColor: "green",
81
81
  buttonName: "Save file",
82
82
  description: "Export scene data to a file that can be imported later.",
83
- icon: /* @__PURE__ */ e(u, { size: 45 }),
83
+ icon: /* @__PURE__ */ e(y, { size: 45 }),
84
84
  title: "Save to disk"
85
85
  },
86
86
  {
@@ -90,7 +90,7 @@ const H = "_root_y0usf_1", b = "_cardList_y0usf_5", S = "_cardItemHeader_y0usf_1
90
90
  bgColor: "red",
91
91
  buttonName: "Share link",
92
92
  description: "Export a link to share your scene with others.",
93
- icon: /* @__PURE__ */ e(y, { size: 45 }),
93
+ icon: /* @__PURE__ */ e(I, { size: 45 }),
94
94
  title: "Share via link"
95
95
  },
96
96
  {
@@ -100,24 +100,24 @@ const H = "_root_y0usf_1", b = "_cardList_y0usf_5", S = "_cardItemHeader_y0usf_1
100
100
  bgColor: "primary",
101
101
  buttonName: "Primer+",
102
102
  description: "Save the scene in your Primer+ workspace.",
103
- icon: /* @__PURE__ */ e(I, { size: 45 }),
103
+ icon: /* @__PURE__ */ e(u, { size: 45 }),
104
104
  title: "Primer+"
105
105
  }
106
106
  ];
107
107
  return /* @__PURE__ */ s(o.Root, { children: [
108
108
  /* @__PURE__ */ e(o.Trigger, { children: r }),
109
- /* @__PURE__ */ s(o.Content, { className: c.content, children: [
109
+ /* @__PURE__ */ s(o.Content, { className: a.content, children: [
110
110
  /* @__PURE__ */ e(o.Title, { children: "Save as..." }),
111
111
  /* @__PURE__ */ e(o.Separator, {}),
112
- /* @__PURE__ */ e("div", { className: c.cardList, children: n.map((a, d) => /* @__PURE__ */ e(
112
+ /* @__PURE__ */ e("div", { className: a.cardList, children: n.map((c, d) => /* @__PURE__ */ e(
113
113
  B,
114
114
  {
115
- icon: a.icon,
116
- title: a.title,
117
- bgColor: a.bgColor,
118
- description: a.description,
119
- action: a.action,
120
- buttonName: a.buttonName
115
+ icon: c.icon,
116
+ title: c.title,
117
+ bgColor: c.bgColor,
118
+ description: c.description,
119
+ action: c.action,
120
+ buttonName: c.buttonName
121
121
  },
122
122
  d
123
123
  )) })
@@ -127,19 +127,19 @@ const H = "_root_y0usf_1", b = "_cardList_y0usf_5", S = "_cardItemHeader_y0usf_1
127
127
  action: t,
128
128
  bgColor: r = "primary",
129
129
  buttonName: n,
130
- description: a,
130
+ description: c,
131
131
  icon: d,
132
132
  title: _
133
- }) => /* @__PURE__ */ s("div", { className: c.card, children: [
134
- /* @__PURE__ */ e("div", { className: m(c.cardIcon, c[r]), children: d }),
135
- /* @__PURE__ */ e("h3", { className: c.cardTitle, children: _ }),
136
- /* @__PURE__ */ e("p", { className: c.cardDescription, children: a }),
133
+ }) => /* @__PURE__ */ s("div", { className: a.card, children: [
134
+ /* @__PURE__ */ e("div", { className: m(a.cardIcon, a[r]), children: d }),
135
+ /* @__PURE__ */ e("h3", { className: a.cardTitle, children: _ }),
136
+ /* @__PURE__ */ e("p", { className: a.cardDescription, children: c }),
137
137
  /* @__PURE__ */ e(
138
138
  v,
139
139
  {
140
140
  onClick: t,
141
141
  fullWidth: !0,
142
- className: m(c.button, c[r]),
142
+ className: m(a.button, a[r]),
143
143
  children: n
144
144
  }
145
145
  )
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_1xfv8_1{display:inline-block;position:relative}._dropdownContent_1xfv8_6{position:absolute;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}._left_1xfv8_17{left:0}._center_1xfv8_21{left:50%;transform:translate(-50%)}._right_1xfv8_26{right:20%}._top_1xfv8_30{bottom:100%}._bottom_1xfv8_34{top:100%}._fixedPosition_1xfv8_38{position:fixed;left:5%}._dialogRoot_c30vs_1{position:relative}._dialogTrigger_c30vs_5{border:none;background:none;padding:0;cursor:pointer;font:inherit}._dialogContent_c30vs_13{padding:.5rem;background-color:var(--bg-modal-color);border-radius:8px;border:none;box-shadow:var(--box-shadow)}._dialogContent_c30vs_13::backdrop{background-color:#00000080}._dialogClose_c30vs_25{border:none;background:none;padding:0;cursor:pointer;font:inherit}._dialogTitle_c30vs_33{font-size:1.5rem;padding-block:.5rem}._dialogSeparator_c30vs_38{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
+ @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_1xfv8_1{display:inline-block;position:relative}._dropdownContent_1xfv8_6{position:absolute;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}._left_1xfv8_17{left:0}._center_1xfv8_21{left:50%;transform:translate(-50%)}._right_1xfv8_26{right:20%}._top_1xfv8_30{bottom:100%}._bottom_1xfv8_34{top:100%}._fixedPosition_1xfv8_38{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)}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@yourbestsoft/studio-screen-ui-kit",
3
3
  "private": false,
4
- "version": "0.0.10",
4
+ "version": "0.0.12",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",