jvetrau-ds 0.1.10 → 0.1.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/index.cjs CHANGED
@@ -1304,7 +1304,11 @@ var Panel = ({
1304
1304
  var panel_default = Panel;
1305
1305
 
1306
1306
  // src/lib/resolve-asset.ts
1307
- function resolveAsset(packageAssetPath) {
1307
+ function resolveAsset(packageAssetPath, sourceAssetUrl) {
1308
+ const isSourceRuntime = (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href)).includes("/src/");
1309
+ if (isSourceRuntime && sourceAssetUrl) {
1310
+ return sourceAssetUrl;
1311
+ }
1308
1312
  return new URL(
1309
1313
  `./${packageAssetPath}`,
1310
1314
  (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href))
@@ -1312,10 +1316,12 @@ function resolveAsset(packageAssetPath) {
1312
1316
  }
1313
1317
  var logoUrls = {
1314
1318
  symbol: resolveAsset(
1315
- "assets/components/logo/logo-symbol.svg"
1319
+ "assets/components/logo/logo-symbol.svg",
1320
+ new URL("./assets/logo-symbol.svg", (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href))).toString()
1316
1321
  ),
1317
1322
  wordmark: resolveAsset(
1318
- "assets/components/logo/logo-wordmark.svg"
1323
+ "assets/components/logo/logo-wordmark.svg",
1324
+ new URL("./assets/logo-wordmark.svg", (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href))).toString()
1319
1325
  )
1320
1326
  };
1321
1327
  var Logo = ({
@@ -1615,7 +1621,7 @@ var Attach = ({
1615
1621
  };
1616
1622
  var attach_default = Attach;
1617
1623
 
1618
- exports.Attachment = attach_default;
1624
+ exports.Attach = attach_default;
1619
1625
  exports.Avatar = avatar_default;
1620
1626
  exports.Button = button_default;
1621
1627
  exports.ButtonIcon = button_icon_default;
package/index.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/helpers/classnames.ts","../src/icons/assets/arrow-link.tsx","../src/icons/assets/arrow-right.tsx","../src/icons/assets/chevron-right.tsx","../src/icons/assets/fullscreen.tsx","../src/icons/assets/pause.tsx","../src/icons/assets/play.tsx","../src/icons/assets/settings.tsx","../src/icons/assets/sound.tsx","../src/icons/assets/sound-off.tsx","../src/icons/manifest.ts","../src/icons/registry.ts","../src/tokens/helpers/create-scale-tokens.ts","../src/tokens/scales/size.ts","../src/icons/icon.tsx","../src/components/button/button.tsx","../src/components/button-icon/button-icon.tsx","../src/components/input/input.tsx","../src/components/textarea/textarea.tsx","../src/components/select/select.tsx","../src/components/dropdown/dropdown.tsx","../src/components/checkbox/checkbox.tsx","../src/components/radio/radio.tsx","../src/components/field/field.tsx","../src/components/menu/menu.tsx","../src/components/tabs/tabs.tsx","../src/components/progressbar/progressbar.tsx","../src/components/video/video.tsx","../src/components/search/search.tsx","../src/components/richedit/richedit.tsx","../src/components/tag/tag.tsx","../src/components/card/card.tsx","../src/components/panel/panel.tsx","../src/lib/resolve-asset.ts","../src/components/logo/logo.tsx","../src/components/avatar/avatar.tsx","../src/patterns/header/header.tsx","../src/patterns/footer/footer.tsx","../src/patterns/screen-header/screen-header.tsx","../src/layouts/foundation/foundation.tsx","../src/layouts/base/base.tsx","../src/layouts/sidebar/sidebar.tsx","../src/components/attach/attach.tsx"],"names":["jsx","isValidElement","cloneElement","jsxs","useRef","useState","useEffect","React","ratio","getClampedValue","Hls"],"mappings":"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","file":"index.cjs","sourcesContent":["type ClassValue = string | undefined | null | false;\n\nexport function classnames(\n ...args: (ClassValue | Record<string, boolean | undefined | null>)[]\n) {\n const classes: string[] = [];\n\n args.forEach(arg => {\n if (!arg) return;\n\n if (typeof arg === 'string') {\n classes.push(arg);\n return;\n }\n\n for (const key in arg) {\n if (arg[key]) {\n classes.push(key);\n }\n }\n });\n\n return classes.join(' ');\n}","import type { IconGlyph } from '../types';\n\nexport const arrowLink: IconGlyph = {\n xs: <path d=\"M4 8H10M8 4H12V8M12 4L7 9\" />,\n s: <path d=\"M5 10H12M10 5H15V10M15 5L9 11\" />,\n m: <path d=\"M6 12H14M12 6H18V12M18 6L11 13\" />,\n l: <path d=\"M8 16H19M16 8H24V16M24 8L15 17\" />,\n};","import type { IconGlyph } from '../types';\n\nexport const arrowRight: IconGlyph = {\n xs: <path d=\"M4 8H12M9 5L12 8L9 11\" />,\n s: <path d=\"M5 10H15M11 6L15 10L11 14\" />,\n m: <path d=\"M6 12H18M13 7L18 12L13 17\" />,\n l: <path d=\"M8 16H24M18 10L24 16L18 22\" />,\n};","import type { IconGlyph } from '../types';\n\nexport const chevronRight: IconGlyph = {\n xs: <path d=\"M6 4.5L9.5 8L6 11.5\" />,\n s: <path d=\"M8 5.5L12.5 10L8 14.5\" />,\n m: <path d=\"M9.5 6.5L15 12L9.5 17.5\" />,\n l: <path d=\"M13 9L20 16L13 23\" />,\n};","import type { IconGlyph } from '../types';\n\nexport const fullscreen: IconGlyph = {\n xs: <path d=\"M5 7V5H7M11 5H13V7M13 11V13H11M7 13H5V11\" />,\n s: <path d=\"M6 8V6H8M14 6H16V8M16 14V16H14M8 16H6V14\" />,\n m: <path d=\"M7 10V7H10M14 7H17V10M17 14V17H14M10 17H7V14\" />,\n l: <path d=\"M9 13V9H13M19 9H23V13M23 19V23H19M13 23H9V19\" />,\n};","import type { IconGlyph } from '../types';\n\nexport const pause: IconGlyph = {\n xs: <path d=\"M5 4V12M11 4V12\" />,\n s: <path d=\"M7 5V15M13 5V15\" />,\n m: <path d=\"M9 6V18M15 6V18\" />,\n l: <path d=\"M11 8V24M21 8V24\" />,\n};","import type { IconGlyph } from '../types';\n\nexport const play: IconGlyph = {\n xs: <path d=\"M6 5.5L11 8L6 10.5Z\" />,\n s: <path d=\"M7 6.5L13.5 10L7 13.5Z\" />,\n m: <path d=\"M8 7L16 12L8 17Z\" />,\n l: <path d=\"M11 9L21 16L11 23Z\" />,\n};","import type { IconGlyph } from '../types';\n\nexport const settings: IconGlyph = {\n xs: <path d=\"M8 5V3.5M8 12.5V11M5.9 5.9L4.8 4.8M11.2 11.2L10.1 10.1M5 8H3.5M12.5 8H11M5.9 10.1L4.8 11.2M11.2 4.8L10.1 5.9M8 6.5A1.5 1.5 0 1 1 8 9.5A1.5 1.5 0 0 1 8 6.5Z\" />,\n s: <path d=\"M10 6V4M10 16V14M7.2 7.2L5.8 5.8M14.2 14.2L12.8 12.8M6 10H4M16 10H14M7.2 12.8L5.8 14.2M14.2 5.8L12.8 7.2M10 8A2 2 0 1 1 10 12A2 2 0 0 1 10 8Z\" />,\n m: <path d=\"M12 7V4M12 20V17M8.5 8.5L6.4 6.4M17.6 17.6L15.5 15.5M7 12H4M20 12H17M8.5 15.5L6.4 17.6M17.6 6.4L15.5 8.5M12 9A3 3 0 1 1 12 15A3 3 0 0 1 12 9Z\" />,\n l: <path d=\"M16 9V5M16 27V23M11 11L8 8M24 24L21 21M9 16H5M27 16H23M11 21L8 24M24 8L21 11M16 12A4 4 0 1 1 16 20A4 4 0 0 1 16 12Z\" />,\n};","import type { IconGlyph } from '../types';\n\nexport const sound: IconGlyph = {\n xs: <path d=\"M3.5 9.5H6L9.5 12.5V3.5L6 6.5H3.5V9.5ZM11 6.5C11.7 7.2 11.7 8.8 11 9.5\" />,\n s: <path d=\"M4.5 12H7.5L12 16V4L7.5 8H4.5V12ZM14 7.5C15 8.5 15 11.5 14 12.5\" />,\n m: <path d=\"M5.5 14.5H9L15 19V5L9 9.5H5.5V14.5ZM17 8.5C18.5 10 18.5 14 17 15.5\" />,\n l: <path d=\"M7 19H12L20 25V7L12 13H7V19ZM23 11C25 13 25 19 23 21\" />,\n};","import type { IconGlyph } from '../types';\n\nexport const soundOff: IconGlyph = {\n xs: <path d=\"M3.5 9.5H6L9.5 12.5V3.5L6 6.5H3.5V9.5ZM11 6.5L13 8.5M13 6.5L11 8.5\" />,\n s: <path d=\"M4.5 12H7.5L12 16V4L7.5 8H4.5V12ZM14 8L17 11M17 8L14 11\" />,\n m: <path d=\"M5.5 14.5H9L15 19V5L9 9.5H5.5V14.5ZM17 9L21 13M21 9L17 13\" />,\n l: <path d=\"M7 19H12L20 25V7L12 13H7V19ZM23 12L27 16M27 12L23 16\" />,\n};","import { arrowLink } from './assets/arrow-link';\nimport { arrowRight } from './assets/arrow-right';\nimport { chevronRight } from './assets/chevron-right';\nimport { fullscreen } from './assets/fullscreen';\nimport { pause } from './assets/pause';\nimport { play } from './assets/play';\nimport { settings } from './assets/settings';\nimport { sound } from './assets/sound';\nimport { soundOff } from './assets/sound-off';\n\nexport const iconManifest = {\n 'arrow-link': {\n glyph: arrowLink,\n category: 'navigation',\n tags: ['arrow', 'link', 'external'],\n },\n 'arrow-right': {\n glyph: arrowRight,\n category: 'navigation',\n tags: ['arrow', 'right', 'next'],\n },\n 'chevron-right': {\n glyph: chevronRight,\n category: 'navigation',\n tags: ['chevron', 'right', 'next'],\n },\n fullscreen: {\n glyph: fullscreen,\n category: 'media',\n tags: ['fullscreen', 'expand', 'player'],\n },\n pause: {\n glyph: pause,\n category: 'media',\n tags: ['pause', 'video', 'player'],\n },\n play: {\n glyph: play,\n category: 'media',\n tags: ['play', 'video', 'player'],\n },\n settings: {\n glyph: settings,\n category: 'interface',\n tags: ['settings', 'preferences', 'controls'],\n },\n sound: {\n glyph: sound,\n category: 'media',\n tags: ['sound', 'volume', 'audio'],\n },\n 'sound-off': {\n glyph: soundOff,\n category: 'media',\n tags: ['sound', 'volume', 'audio', 'mute'],\n },\n} as const;","import { iconManifest } from './manifest';\nimport type { IconGlyph, IconName } from './types';\n\nexport const iconRegistry = Object.fromEntries(\n Object.entries(iconManifest).map(([name, item]) => [name, item.glyph]),\n) as Record<IconName, IconGlyph>;","import type { TokenDefinition } from '../schema';\n\ntype ScaleValue = number | string | boolean;\n\ntype TokenType = 'float' | 'string' | 'boolean';\n\nfunction detectTokenType(value: ScaleValue): TokenType {\n if (typeof value === 'number') return 'float';\n if (typeof value === 'string') return 'string';\n return 'boolean';\n}\n\nexport function createScaleTokens(\n tokenPathPrefix: string,\n values: Record<string, ScaleValue>\n): TokenDefinition[] {\n return Object.entries(values).map(([step, value]) => ({\n collection: 'scales',\n name: `${tokenPathPrefix}/${step}`,\n type: detectTokenType(value),\n values: {\n value,\n },\n })) as TokenDefinition[];\n}","import { createScaleTokens } from '../helpers/create-scale-tokens';\nimport type { TokenDefinition } from '../schema';\n\nconst sizeX = {\n \"0\": 0,\n \"025\": 1,\n \"05\": 2,\n \"1\": 4,\n \"2\": 8,\n \"3\": 12,\n \"4\": 16,\n \"5\": 20,\n \"6\": 24,\n \"8\": 32,\n \"10\": 40,\n \"12\": 48,\n} as const;\n\nconst sizeGrid = {\n s: 12,\n m: 20,\n l: 40,\n xl: 60,\n xxl: 80,\n xxxl: 100,\n} as const;\n\nexport const sizeIcon = {\n xs: 16,\n s: 20,\n m: 24,\n l: 32,\n} as const;\n\nexport const scalesSize: TokenDefinition[] = [\n ...createScaleTokens('size/x', sizeX),\n ...createScaleTokens('size/grid', sizeGrid),\n ...createScaleTokens('size/icon', sizeIcon),\n];","import React, { type FC } from 'react';\nimport './icon.css';\nimport { iconRegistry } from './registry';\nimport type { IconName, IconSize } from './types';\nimport { sizeIcon } from '../tokens/scales/size';\n\n/*import {\n sizeIconXS,\n sizeIconS,\n sizeIconM,\n sizeIconL,\n} from '../tokens/scales/size';*/\n\nexport interface IconProps\n extends Omit<React.SVGAttributes<SVGSVGElement>, 'size'> {\n name: IconName;\n size?: IconSize;\n}\n\n/*const iconSizeMap: Record<IconSize, number> = {\n xs: sizeIconXS,\n s: sizeIconS,\n m: sizeIconM,\n l: sizeIconL,\n};*/\n\nconst iconSizeMap: Record<IconSize, number> = sizeIcon;\n\nconst Icon: FC<IconProps> = ({\n name,\n size: iconSize = 'm',\n className,\n ...props\n}) => {\n const glyph = iconRegistry[name];\n const size = iconSizeMap[iconSize];\n const viewBox = `0 0 ${size} ${size}`;\n const classes = ['icon', className].filter(Boolean).join(' ');\n\n return (\n <svg\n className={classes}\n width={size}\n height={size}\n viewBox={viewBox}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n stroke=\"currentColor\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n {...props}\n >\n {glyph[iconSize]}\n </svg>\n );\n};\n\nexport default Icon;","import React, {\n cloneElement,\n isValidElement,\n type ReactElement,\n} from 'react';\nimport './button.css';\nimport { classnames } from '../helpers/classnames';\nimport Icon, { type IconProps } from '../../icons/icon';\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n state?: 'default' | 'primary';\n icon?: React.ReactNode;\n}\n\nconst Button: React.FC<ButtonProps> = ({\n state = 'default',\n icon,\n className = '',\n disabled = false,\n children,\n ...props\n}) => {\n const isIconOnly = !!icon && !children;\n\n const classes = classnames('button', className, {\n 'button--primary': state === 'primary',\n 'button--disabled': disabled,\n 'button--icon-only': isIconOnly,\n });\n\n let resolvedIcon = icon;\n\n if (isValidElement(icon) && icon.type === Icon) {\n const iconElement = icon as ReactElement<IconProps>;\n\n resolvedIcon = cloneElement(iconElement, {\n size: iconElement.props.size ?? 's',\n className: classnames('button__icon', iconElement.props.className),\n 'aria-hidden': iconElement.props['aria-hidden'] ?? true,\n focusable: iconElement.props.focusable ?? false,\n });\n }\n\n return (\n <button\n className={classes}\n disabled={disabled}\n {...props}\n >\n {resolvedIcon}\n {children}\n </button>\n );\n};\n\nexport default Button;","import React from 'react';\nimport './button-icon.css';\nimport { classnames } from '../helpers/classnames';\nimport Icon from '../../icons/icon';\nimport type { IconName } from '../../icons/types';\n\nexport interface ButtonIconProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n icon: IconName;\n state?: 'default' | 'disabled';\n label: string;\n}\n\nconst ButtonIcon: React.FC<ButtonIconProps> = ({\n state = 'default',\n icon,\n label,\n className = '',\n disabled = false,\n ...props\n}) => {\n const isDisabled =\n disabled ||\n state === 'disabled';\n\n const classes = classnames('button-icon', className, {\n 'button-icon--disabled': isDisabled,\n });\n\n return (\n <button\n className={classes}\n disabled={isDisabled}\n aria-label={label}\n title={label}\n {...props}\n >\n <Icon\n name={icon}\n className=\"button-icon__icon\"\n aria-hidden\n focusable={false}\n />\n </button>\n );\n};\n\nexport default ButtonIcon;","import React from 'react';\n//import './input.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n state?: 'default' | 'error' | 'success';\n}\n\nconst Input: React.FC<InputProps> = ({\n state = 'default',\n className = '',\n disabled = false,\n ...props\n}) => {\n const classes = classnames('input', className, {\n error: state === 'error',\n success: state === 'success',\n });\n\n return (\n <input\n className={classes}\n disabled={disabled}\n {...props}\n />\n );\n};\n\nexport default Input;","import React from 'react';\n// import './textarea.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n state?: 'default' | 'error' | 'success';\n}\n\nconst Textarea: React.FC<TextareaProps> = ({\n state = 'default',\n className = '',\n disabled = false,\n ...props\n}) => {\n const classes = classnames('textarea', className, {\n error: state === 'error',\n success: state === 'success',\n });\n\n return (\n <textarea\n className={classes}\n disabled={disabled}\n {...props}\n />\n );\n};\n\nexport default Textarea;","import React from 'react';\n//import './select.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface SelectProps\n extends React.SelectHTMLAttributes<HTMLSelectElement> {\n state?: 'default' | 'error' | 'success';\n}\n\nconst Select: React.FC<SelectProps> = ({\n state = 'default',\n className = '',\n disabled = false,\n children,\n ...props\n}) => {\n const classes = classnames('select', className, {\n error: state === 'error',\n success: state === 'success',\n });\n\n return (\n <div className={classes}>\n <select\n className=\"select__field\"\n disabled={disabled}\n {...props}\n >\n {children}\n </select>\n </div>\n );\n};\n\nexport default Select;","import React, {\n cloneElement,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport './dropdown.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface DropdownOption {\n value: string;\n label: string;\n disabled?: boolean;\n}\n\ntype DropdownTriggerProps = {\n className?: string;\n onClick?: (event: React.MouseEvent) => void;\n 'aria-haspopup'?: string;\n 'aria-expanded'?: boolean;\n};\n\ntype DropdownTriggerElement =\n React.ReactElement<DropdownTriggerProps>;\n\nexport interface DropdownProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {\n options: DropdownOption[];\n value?: string;\n defaultValue?: string;\n label?: string;\n align?: 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end';\n trigger: DropdownTriggerElement;\n onChange?: (value: string) => void;\n}\n\nconst Dropdown: React.FC<DropdownProps> = ({\n options,\n value,\n defaultValue,\n label = 'Dropdown',\n align = 'bottom-start',\n trigger,\n onChange,\n className = '',\n ...props\n}) => {\n const dropdownRef = useRef<HTMLDivElement>(null);\n\n const [isOpen, setIsOpen] = useState(false);\n const [internalValue, setInternalValue] = useState(defaultValue);\n\n const selectedValue =\n value ?? internalValue;\n\n const classes = classnames('dropdown', className, {\n 'dropdown--open': isOpen,\n 'dropdown--top-start': align === 'top-start',\n 'dropdown--top-end': align === 'top-end',\n 'dropdown--bottom-start': align === 'bottom-start',\n 'dropdown--bottom-end': align === 'bottom-end',\n });\n\n const triggerElement =\n trigger as DropdownTriggerElement;\n\n const triggerClasses = classnames(\n 'dropdown__trigger',\n triggerElement.props.className,\n );\n\n const resolvedTrigger = cloneElement(triggerElement, {\n className: triggerClasses,\n 'aria-haspopup': 'menu',\n 'aria-expanded': isOpen,\n onClick: (event: React.MouseEvent) => {\n triggerElement.props.onClick?.(event);\n\n setIsOpen((currentValue) => !currentValue);\n },\n });\n\n const handleOptionClick = (option: DropdownOption) => {\n if (option.disabled) {\n return;\n }\n\n if (value === undefined) {\n setInternalValue(option.value);\n }\n\n onChange?.(option.value);\n setIsOpen(false);\n };\n\n useEffect(() => {\n if (!isOpen) {\n return;\n }\n\n const handleDocumentClick = (event: MouseEvent) => {\n const dropdown = dropdownRef.current;\n\n if (!dropdown || dropdown.contains(event.target as Node)) {\n return;\n }\n\n setIsOpen(false);\n };\n\n const handleDocumentKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n setIsOpen(false);\n }\n };\n\n document.addEventListener('mousedown', handleDocumentClick);\n document.addEventListener('keydown', handleDocumentKeyDown);\n\n return () => {\n document.removeEventListener('mousedown', handleDocumentClick);\n document.removeEventListener('keydown', handleDocumentKeyDown);\n };\n }, [isOpen]);\n\n return (\n <div\n ref={dropdownRef}\n className={classes}\n {...props}\n >\n {resolvedTrigger}\n\n {isOpen && (\n <div\n className=\"dropdown__menu\"\n role=\"menu\"\n aria-label={label}\n >\n {options.map((option) => {\n const isSelected =\n option.value === selectedValue;\n\n const itemClasses = classnames('dropdown__item', {\n 'dropdown__item--selected': isSelected,\n 'dropdown__item--disabled': option.disabled,\n });\n\n return (\n <button\n key={option.value}\n className={itemClasses}\n type=\"button\"\n role=\"menuitemradio\"\n aria-checked={isSelected}\n aria-disabled={option.disabled}\n disabled={option.disabled}\n onClick={() => handleOptionClick(option)}\n >\n {option.label}\n </button>\n );\n })}\n </div>\n )}\n </div>\n );\n};\n\nexport default Dropdown;","import React from 'react';\n//import './checkbox.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface CheckboxProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: React.ReactNode;\n}\n\nconst Checkbox: React.FC<CheckboxProps> = ({\n label,\n className = '',\n disabled = false,\n ...props\n}) => {\n const classes = classnames(\n 'checkbox',\n className,\n {\n 'checkbox--disabled': disabled,\n }\n );\n\n return (\n <label className={classes}>\n <input\n className=\"checkbox__input\"\n type=\"checkbox\"\n disabled={disabled}\n {...props}\n />\n {label && <span className=\"checkbox__label\">{label}</span>}\n </label>\n );\n};\n\nexport default Checkbox;","import React from 'react';\n//import './radio.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface RadioProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: React.ReactNode;\n}\n\nconst Radio: React.FC<RadioProps> = ({\n label,\n className = '',\n disabled = false,\n ...props\n}) => {\n const classes = classnames(\n 'radio',\n className,\n {\n 'radio--disabled': disabled,\n }\n );\n\n return (\n <label className={classes}>\n <input\n className=\"radio__input\"\n type=\"radio\"\n disabled={disabled}\n {...props}\n />\n {label && <span className=\"radio__label\">{label}</span>}\n </label>\n );\n};\n\nexport default Radio;","import React from 'react';\n//import './field.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface FieldProps {\n label?: React.ReactNode;\n hint?: React.ReactNode;\n error?: React.ReactNode;\n required?: boolean;\n disabled?: boolean;\n htmlFor?: string;\n className?: string;\n children: React.ReactNode;\n}\n\nconst Field: React.FC<FieldProps> = ({\n label,\n hint,\n error,\n required = false,\n disabled = false,\n htmlFor,\n className = '',\n children,\n}) => {\n const classes = classnames(\n 'field',\n className,\n {\n 'field--disabled': disabled,\n 'field--error': !!error,\n }\n );\n\n return (\n <div className={classes}>\n {label && (\n <label\n className=\"field__label\"\n htmlFor={htmlFor}\n >\n {label}\n {required && <span className=\"field__required\"> *</span>}\n </label>\n )}\n\n <div className=\"field__control\">\n {children}\n </div>\n\n {error ? (\n <div className=\"field__message field__message--error\">\n {error}\n </div>\n ) : hint ? (\n <div className=\"field__message\">\n {hint}\n </div>\n ) : null}\n </div>\n );\n};\n\nexport default Field;","import React from 'react';\nimport './menu.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface MenuItem {\n value: string;\n label: React.ReactNode;\n href?: string;\n disabled?: boolean;\n}\n\nexport interface MenuProps\n extends React.HTMLAttributes<HTMLElement> {\n items: MenuItem[];\n value?: string;\n defaultValue?: string;\n label?: string;\n onValueChange?: (value: string) => void;\n}\n\nfunction getInitialValue(\n value: string | undefined,\n defaultValue: string | undefined,\n items: MenuItem[],\n) {\n if (value !== undefined) {\n return value;\n }\n\n if (defaultValue !== undefined) {\n return defaultValue;\n }\n\n return items[0]?.value;\n}\n\nconst Menu: React.FC<MenuProps> = ({\n items,\n value,\n defaultValue,\n label = 'Menu',\n className = '',\n onValueChange,\n ...props\n}) => {\n const [internalValue, setInternalValue] = React.useState(\n getInitialValue(value, defaultValue, items),\n );\n\n const currentValue = value ?? internalValue;\n\n React.useEffect(() => {\n if (value !== undefined) {\n return;\n }\n\n setInternalValue(getInitialValue(value, defaultValue, items));\n }, [value, defaultValue, items]);\n\n const handleItemClick = (\n itemValue: string,\n disabled?: boolean,\n ) => {\n if (disabled) {\n return;\n }\n\n if (value === undefined) {\n setInternalValue(itemValue);\n }\n\n onValueChange?.(itemValue);\n };\n\n const classes = classnames('menu', className, {});\n\n return (\n <nav\n className={classes}\n aria-label={label}\n {...props}\n >\n <ul className=\"menu__list\">\n {items.map((item) => {\n const isActive = item.value === currentValue;\n\n const itemClasses = classnames('menu__control', {\n 'menu__control--active': isActive,\n 'menu__control--disabled': item.disabled,\n });\n\n return (\n <li\n key={item.value}\n className=\"menu__item\"\n >\n {item.href ? (\n <a\n className={itemClasses}\n href={item.href}\n aria-current={isActive ? 'page' : undefined}\n aria-disabled={item.disabled || undefined}\n onClick={(event) => {\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n\n handleItemClick(item.value);\n }}\n >\n {item.label}\n </a>\n ) : (\n <button\n className={itemClasses}\n type=\"button\"\n disabled={item.disabled}\n onClick={() => handleItemClick(\n item.value,\n item.disabled,\n )}\n >\n {item.label}\n </button>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n );\n};\n\nexport default Menu;","import React from 'react';\nimport { classnames } from '../helpers/classnames';\nimport './tabs.css';\n\nexport interface TabsProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst Tabs: React.FC<TabsProps> = ({\n className = '',\n children,\n ...props\n}) => {\n const classes = classnames('tabs', className);\n\n return (\n <div className={classes} {...props}>\n {children}\n </div>\n );\n};\n\nexport default Tabs;","import React, { useRef } from 'react';\nimport './progressbar.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface ProgressBarProps\n extends React.HTMLAttributes<HTMLDivElement> {\n mode?: 'player' | 'diagram' | 'level';\n value?: number;\n buffered?: number;\n max?: number;\n orientation?: 'horizontal' | 'vertical';\n step?: number;\n interactive?: boolean;\n label?: string;\n onValueChange?: (value: number) => void;\n onValueCommit?: (value: number) => void;\n}\n\nfunction getClampedValue(\n value: number,\n max: number,\n) {\n return Math.min(\n Math.max(value, 0),\n max,\n );\n}\n\nfunction getPercent(\n value: number,\n max: number,\n) {\n if (max <= 0) {\n return 0;\n }\n\n return (\n getClampedValue(value, max) /\n max\n ) * 100;\n}\n\nfunction getValueFromPointer(\n event: React.PointerEvent<HTMLDivElement>,\n track: HTMLDivElement,\n max: number,\n isVertical: boolean,\n) {\n const rect = track.getBoundingClientRect();\n\n if (isVertical) {\n const y =\n rect.bottom -\n event.clientY;\n\n const ratio =\n y / rect.height;\n\n return getClampedValue(\n ratio * max,\n max,\n );\n }\n\n const x =\n event.clientX -\n rect.left;\n\n const ratio =\n x / rect.width;\n\n return getClampedValue(\n ratio * max,\n max,\n );\n}\n\nfunction getNextKeyboardValue(\n key: string,\n value: number,\n max: number,\n step: number,\n) {\n if (\n key === 'ArrowRight' ||\n key === 'ArrowUp'\n ) {\n return getClampedValue(\n value + step,\n max,\n );\n }\n\n if (\n key === 'ArrowLeft' ||\n key === 'ArrowDown'\n ) {\n return getClampedValue(\n value - step,\n max,\n );\n }\n\n if (key === 'Home') {\n return 0;\n }\n\n if (key === 'End') {\n return max;\n }\n\n return value;\n}\n\nconst ProgressBar: React.FC<\n ProgressBarProps\n> = ({\n mode = 'player',\n value = 0,\n buffered = 0,\n max = 100,\n orientation = 'horizontal',\n step = 1,\n interactive,\n label = 'Progress',\n className = '',\n style,\n onValueChange,\n onValueCommit,\n ...props\n}) => {\n const trackRef =\n useRef<HTMLDivElement>(null);\n\n const safeValue =\n getClampedValue(\n value,\n max,\n );\n\n const valuePercent =\n getPercent(\n value,\n max,\n );\n\n const bufferedPercent =\n getPercent(\n buffered,\n max,\n );\n\n const isInteractive =\n interactive ??\n mode !== 'diagram';\n\n const isVertical =\n orientation ===\n 'vertical' ||\n mode === 'level';\n\n const hasBuffered =\n mode === 'player' &&\n buffered > value;\n\n const hasValue =\n mode === 'diagram';\n\n const classes =\n classnames(\n 'progressbar',\n className,\n {\n 'progressbar--vertical':\n isVertical,\n\n 'progressbar--level':\n mode === 'level',\n\n 'progressbar--interactive':\n isInteractive,\n },\n );\n\n const progressStyle = {\n ...style,\n '--progressbar-value':\n `${valuePercent}%`,\n '--progressbar-buffered':\n `${bufferedPercent}%`,\n '--progressbar-buffered-offset':\n `${valuePercent}%`,\n } as React.CSSProperties;\n\n const updateValueFromPointer = (\n event: React.PointerEvent<HTMLDivElement>,\n shouldCommit = false,\n ) => {\n const track =\n trackRef.current;\n\n if (\n !isInteractive ||\n !track\n ) {\n return;\n }\n\n const nextValue =\n getValueFromPointer(\n event,\n track,\n max,\n isVertical,\n );\n\n onValueChange?.(\n nextValue,\n );\n\n if (shouldCommit) {\n onValueCommit?.(\n nextValue,\n );\n }\n };\n\n const handlePointerDown = (\n event: React.PointerEvent<HTMLDivElement>,\n ) => {\n if (!isInteractive) {\n return;\n }\n\n event.currentTarget\n .setPointerCapture(\n event.pointerId,\n );\n\n updateValueFromPointer(\n event,\n );\n };\n\n const handlePointerMove = (\n event: React.PointerEvent<HTMLDivElement>,\n ) => {\n if (\n !isInteractive ||\n !event.currentTarget\n .hasPointerCapture(\n event.pointerId,\n )\n ) {\n return;\n }\n\n updateValueFromPointer(\n event,\n );\n };\n\n const handlePointerUp = (\n event: React.PointerEvent<HTMLDivElement>,\n ) => {\n if (!isInteractive) {\n return;\n }\n\n updateValueFromPointer(\n event,\n true,\n );\n\n event.currentTarget\n .releasePointerCapture(\n event.pointerId,\n );\n };\n\n const handleKeyDown = (\n event: React.KeyboardEvent<HTMLDivElement>,\n ) => {\n if (!isInteractive) {\n return;\n }\n\n const nextValue =\n getNextKeyboardValue(\n event.key,\n safeValue,\n max,\n step,\n );\n\n if (\n nextValue ===\n safeValue\n ) {\n return;\n }\n\n event.preventDefault();\n\n onValueChange?.(\n nextValue,\n );\n\n onValueCommit?.(\n nextValue,\n );\n };\n\n return (\n <div\n className={classes}\n role={\n isInteractive\n ? 'slider'\n : 'progressbar'\n }\n aria-label={label}\n aria-valuemin={0}\n aria-valuemax={max}\n aria-valuenow={safeValue}\n aria-orientation={\n isInteractive &&\n isVertical\n ? 'vertical'\n : undefined\n }\n tabIndex={\n isInteractive\n ? 0\n : undefined\n }\n style={progressStyle}\n onPointerDown={\n handlePointerDown\n }\n onPointerMove={\n handlePointerMove\n }\n onPointerUp={\n handlePointerUp\n }\n onKeyDown={\n handleKeyDown\n }\n {...props}\n >\n <div\n ref={trackRef}\n className=\"progressbar__track\"\n >\n <div className=\"progressbar__value\" />\n\n {hasBuffered && (\n <div className=\"progressbar__buffered\" />\n )}\n\n {hasValue && (\n <span className=\"progressbar__label\">\n {Math.round(\n valuePercent,\n )}\n %\n </span>\n )}\n </div>\n </div>\n );\n};\n\nexport default ProgressBar;","import React, { useEffect, useRef, useState } from 'react';\nimport Hls from 'hls.js';\n\nimport './video.css';\nimport { classnames } from '../helpers/classnames';\nimport ButtonIcon from '../button-icon';\nimport ProgressBar from '../progressbar';\nimport Dropdown, { type DropdownOption } from '../dropdown';\n\nexport interface VideoQuality {\n value: string;\n label: string;\n src?: string;\n disabled?: boolean;\n}\n\nexport interface VideoProgressState {\n currentTime: number;\n duration: number;\n completed: boolean;\n}\n\nexport interface VideoProps\n extends Omit<React.VideoHTMLAttributes<HTMLVideoElement>, 'controls' | 'src' | 'poster'> {\n src?: string;\n cover?: string;\n qualities?: VideoQuality[];\n defaultQuality?: string;\n label?: string;\n initialVolume?: number;\n initialMuted?: boolean;\n initialTime?: number;\n progressCommitIntervalSec?: number;\n onProgressCommit?: (state: VideoProgressState) => void;\n onQualityChange?: (quality: string) => void;\n}\n\nfunction getClampedValue(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max);\n}\n\nfunction formatTime(value: number) {\n if (!Number.isFinite(value)) return '0:00';\n\n const minutes = Math.floor(value / 60);\n const seconds = Math.floor(value % 60);\n\n return `${minutes}:${String(seconds).padStart(2, '0')}`;\n}\n\nfunction getBufferedEnd(video: HTMLVideoElement) {\n if (video.buffered.length === 0) return 0;\n\n return video.buffered.end(video.buffered.length - 1);\n}\n\nfunction getVideoSource(src: string | undefined, qualities: VideoQuality[], selectedQuality: string) {\n const selectedQualityItem = qualities.find((quality) => quality.value === selectedQuality);\n\n return selectedQualityItem?.src ?? src;\n}\n\nfunction getQualityOptions(qualities: VideoQuality[]): DropdownOption[] {\n return qualities.map((quality) => ({\n value: quality.value,\n label: quality.label,\n disabled: quality.disabled,\n }));\n}\n\nfunction getVideoProgressState(\n video: HTMLVideoElement,\n): VideoProgressState {\n const duration = video.duration || 0;\n const currentTime = video.currentTime || 0;\n\n return {\n currentTime,\n duration,\n\n completed:\n video.ended ||\n (\n duration > 0 &&\n currentTime >= duration * 0.9\n ),\n };\n}\n\nconst defaultQualities: VideoQuality[] = [];\n\nconst Video: React.FC<VideoProps> = ({\n src,\n cover,\n qualities = defaultQualities,\n defaultQuality = '',\n label = 'Video player',\n initialVolume = 1,\n initialMuted = false,\n initialTime = 0,\n progressCommitIntervalSec = 15,\n className = '',\n autoPlay,\n loop,\n muted,\n playsInline = true,\n preload = 'metadata',\n onQualityChange,\n onPlay,\n onPause,\n onEnded,\n onLoadedMetadata,\n onTimeUpdate,\n onProgress,\n onVolumeChange,\n onProgressCommit,\n children,\n ...props\n}) => {\n const videoRef = useRef<HTMLVideoElement>(null);\n\n const [isPlaying, setIsPlaying] = useState(false);\n const [isVolumeOpen, setIsVolumeOpen] = useState(false);\n const [selectedQuality, setSelectedQuality] = useState(defaultQuality);\n const [currentTime, setCurrentTime] = useState(0);\n const [duration, setDuration] = useState(0);\n const [buffered, setBuffered] = useState(0);\n const [volume, setVolume] = useState(initialVolume);\n const [isMuted, setIsMuted] = useState(muted ?? initialMuted);\n\n const hasAppliedInitialTimeRef = useRef(false);\n const lastProgressCommitAtRef = useRef(0);\n\n const videoSrc = getVideoSource(src, qualities, selectedQuality);\n const qualityOptions = getQualityOptions(qualities);\n const hasQualityOptions = qualityOptions.length > 0;\n\n useEffect(() => {\n const video = videoRef.current;\n\n hasAppliedInitialTimeRef.current = false;\n lastProgressCommitAtRef.current = 0;\n\n if (!video || !videoSrc) return;\n\n video.removeAttribute('src');\n video.load();\n\n if (video.canPlayType('application/vnd.apple.mpegurl')) {\n video.src = videoSrc;\n return;\n }\n\n if (!Hls.isSupported()) {\n video.src = videoSrc;\n return;\n }\n\n const hls = new Hls();\n\n hls.on(Hls.Events.ERROR, (_, data) => {\n console.error('HLS error', data);\n });\n\n hls.loadSource(videoSrc);\n hls.attachMedia(video);\n\n return () => {\n hls.destroy();\n };\n }, [videoSrc]);\n\n const hasStarted = currentTime > 0 || isPlaying;\n const hasControls = hasStarted;\n const hasVolume = isVolumeOpen;\n\n const classes = classnames('video', className, {\n 'video--with-controls': hasControls,\n 'video--with-volume': hasVolume,\n });\n\n const syncMediaState = () => {\n const video = videoRef.current;\n\n if (!video) return;\n\n setCurrentTime(video.currentTime);\n setDuration(video.duration || 0);\n setBuffered(getBufferedEnd(video));\n setVolume(video.volume);\n setIsMuted(video.muted);\n setIsPlaying(!video.paused);\n };\n\n const commitProgress = (\n video: HTMLVideoElement,\n ) => {\n if (!onProgressCommit) {\n return;\n }\n\n onProgressCommit(\n getVideoProgressState(video),\n );\n };\n\n const handlePlayToggle = async () => {\n const video = videoRef.current;\n\n if (!video) return;\n\n console.log('play click', {\n paused: video.paused,\n readyState: video.readyState,\n src: video.currentSrc,\n networkState: video.networkState,\n error: video.error,\n });\n\n if (video.paused) {\n try {\n await video.play();\n console.log('play success');\n } catch (error) {\n console.error('play failed', error);\n }\n\n return;\n }\n\n video.pause();\n };\n\n const handleSeek = (nextValue: number) => {\n const video = videoRef.current;\n\n if (!video) return;\n\n video.currentTime = getClampedValue(nextValue, 0, duration);\n setCurrentTime(video.currentTime);\n };\n\n const handleVolumeChange = (nextValue: number) => {\n const video = videoRef.current;\n\n if (!video) return;\n\n const nextVolume = getClampedValue(nextValue, 0, 1);\n\n video.volume = nextVolume;\n video.muted = nextVolume === 0;\n\n setVolume(nextVolume);\n setIsMuted(video.muted);\n };\n\n const handleSoundToggle = () => {\n const video = videoRef.current;\n\n if (!video) return;\n\n video.muted = !video.muted;\n setIsMuted(video.muted);\n };\n\n const handleFullscreen = () => {\n const video = videoRef.current;\n\n if (!video) return;\n\n video.requestFullscreen?.();\n };\n\n const handleQualityChange = (quality: string) => {\n setSelectedQuality(quality);\n onQualityChange?.(quality);\n };\n\n const handleLoadedMetadata = (\n event: React.SyntheticEvent<HTMLVideoElement>,\n ) => {\n const video = event.currentTarget;\n\n if (\n !hasAppliedInitialTimeRef.current &&\n initialTime > 0\n ) {\n video.currentTime = Math.min(\n initialTime,\n video.duration || initialTime,\n );\n\n hasAppliedInitialTimeRef.current = true;\n }\n\n syncMediaState();\n\n onLoadedMetadata?.(event);\n };\n\n const handleTimeUpdate = (\n event: React.SyntheticEvent<HTMLVideoElement>,\n ) => {\n const video = event.currentTarget;\n\n syncMediaState();\n\n if (\n onProgressCommit &&\n (\n video.currentTime -\n lastProgressCommitAtRef.current\n ) >= progressCommitIntervalSec\n ) {\n lastProgressCommitAtRef.current =\n video.currentTime;\n\n commitProgress(video);\n }\n\n onTimeUpdate?.(event);\n };\n\n const handleProgress = (event: React.SyntheticEvent<HTMLVideoElement>) => {\n syncMediaState();\n onProgress?.(event);\n };\n\n const handlePlay = (event: React.SyntheticEvent<HTMLVideoElement>) => {\n setIsPlaying(true);\n onPlay?.(event);\n };\n\n const handlePause = (\n event: React.SyntheticEvent<HTMLVideoElement>,\n ) => {\n setIsPlaying(false);\n\n commitProgress(event.currentTarget);\n\n onPause?.(event);\n };\n\n const handleEnded = (\n event: React.SyntheticEvent<HTMLVideoElement>,\n ) => {\n syncMediaState();\n\n commitProgress(event.currentTarget);\n\n onEnded?.(event);\n };\n\n const handleNativeVolumeChange = (event: React.SyntheticEvent<HTMLVideoElement>) => {\n syncMediaState();\n onVolumeChange?.(event);\n };\n\n return (\n <div className={classes} aria-label={label}>\n <div className=\"video__surface\">\n {cover && !hasStarted ? (\n <img\n className=\"video__cover\"\n src={cover}\n alt=\"\"\n aria-hidden=\"true\"\n />\n ) : null}\n\n <video\n {...props}\n ref={videoRef}\n className=\"video__media\"\n poster={cover}\n autoPlay={autoPlay}\n loop={loop}\n muted={isMuted}\n playsInline={playsInline}\n preload={preload}\n controls={false}\n onLoadedMetadata={handleLoadedMetadata}\n onTimeUpdate={handleTimeUpdate}\n onProgress={handleProgress}\n onPlay={handlePlay}\n onPause={handlePause}\n onEnded={handleEnded}\n onVolumeChange={handleNativeVolumeChange}\n >\n {children}\n </video>\n\n {!hasStarted && (\n <ButtonIcon\n className=\"video__main-action\"\n icon=\"play\"\n label=\"Play video\"\n onClick={handlePlayToggle}\n />\n )}\n </div>\n\n {hasControls && (\n <div className=\"video__controls\">\n <ButtonIcon\n icon={isPlaying ? 'pause' : 'play'}\n label={isPlaying ? 'Pause video' : 'Play video'}\n onClick={handlePlayToggle}\n />\n\n <div className=\"video__time\">{formatTime(currentTime)}</div>\n\n <ProgressBar\n className=\"video__progress\"\n mode=\"player\"\n value={currentTime}\n buffered={buffered}\n max={duration || 1}\n step={1}\n label=\"Video progress\"\n onValueChange={handleSeek}\n />\n\n <ButtonIcon icon=\"fullscreen\" label=\"Fullscreen\" onClick={handleFullscreen} />\n\n <div className=\"video__sound-control\" onMouseLeave={() => setIsVolumeOpen(false)}>\n <ButtonIcon\n icon={isMuted ? 'sound-off' : 'sound'}\n label={isMuted ? 'Unmute video' : 'Mute video'}\n onClick={handleSoundToggle}\n onMouseEnter={() => setIsVolumeOpen(true)}\n onFocus={() => setIsVolumeOpen(true)}\n />\n\n {hasVolume && (\n <div className=\"video__volume\">\n <ProgressBar\n mode=\"level\"\n value={isMuted ? 0 : volume}\n max={1}\n step={0.05}\n label=\"Volume\"\n onValueChange={handleVolumeChange}\n />\n </div>\n )}\n </div>\n\n {hasQualityOptions && (\n <Dropdown\n align=\"top-end\"\n value={selectedQuality}\n options={qualityOptions}\n label=\"Video quality\"\n onChange={handleQualityChange}\n trigger={<ButtonIcon icon=\"settings\" label=\"Video quality\" />}\n />\n )}\n </div>\n )}\n </div>\n );\n};\n\nexport default Video;","import React from 'react';\n//import './search.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface SearchProps\n extends React.HTMLAttributes<HTMLElement> {\n state?: 'default' | 'error' | 'success';\n}\n\nconst Search: React.FC<SearchProps> = ({\n state = 'default',\n className = '',\n children,\n// disabled = false,\n ...props\n}) => {\n const classes = classnames('search', className, {\n error: state === 'error',\n success: state === 'success',\n });\n\n return (\n <div\n className={classes}\n// disabled={disabled}\n {...props}\n >\n {children}\n </div>\n );\n};\n\nexport default Search;","import React from 'react';\nimport './richedit.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface RichEditProps\n extends React.HTMLAttributes<HTMLElement> {\n state?: 'default' | 'error' | 'success';\n}\n\nconst RichEdit: React.FC<RichEditProps> = ({\n state = 'default',\n className = '',\n// disabled = false,\n ...props\n}) => {\n const classes = classnames('richedit', className, {\n error: state === 'error',\n success: state === 'success',\n });\n\n return (\n <div\n className={classes}\n// disabled={disabled}\n {...props}\n />\n );\n};\n\nexport default RichEdit;","import React from 'react';\n//import './tag.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface TagProps\n extends React.HTMLAttributes<HTMLElement> {\n context?: 'success' | 'error' | 'warning';\n}\n\nconst Tag: React.FC<TagProps> = ({\n context = 'success',\n className = '',\n children,\n ...props\n}) => {\n const classes = classnames('tag', className, {\n [`tag--context-${context}`]: Boolean(context),\n });\n\n return (\n <div\n className={classes}\n {...props}\n >\n {children}\n </div>\n );\n};\n\nexport default Tag;\n","import React from 'react';\nimport './card.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface CardProps\n extends React.HTMLAttributes<HTMLElement> {\n state?: 'default';\n heading?: React.ReactNode;\n description?: React.ReactNode;\n actions?: React.ReactNode;\n}\n\nconst Card: React.FC<CardProps> = ({\n state = 'default',\n heading,\n description,\n actions,\n className = '',\n children,\n ...props\n}) => {\n const classes = classnames('card', className, {});\n\n return (\n <section\n className={classes}\n {...props}\n >\n {(heading || description) && (\n <div className=\"card__header\">\n {heading && (\n <h2 className=\"card__heading\">\n {heading}\n </h2>\n )}\n\n {description && (\n <p className=\"card__description\">\n {description}\n </p>\n )}\n </div>\n )}\n\n {children && (\n <div className=\"card__content\">\n {children}\n </div>\n )}\n\n {actions && (\n <div className=\"card__actions\">\n {actions}\n </div>\n )}\n </section>\n );\n};\n\nexport default Card;","import React from 'react';\nimport './panel.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface PanelProps\n extends React.HTMLAttributes<HTMLElement> {\n layout?: 'card' | 'transparent';\n heading?: React.ReactNode;\n description?: React.ReactNode;\n}\n\nconst Panel: React.FC<PanelProps> = ({\n layout = 'card',\n heading,\n description,\n className = '',\n children,\n ...props\n}) => {\n const classes = classnames('panel', className, {\n 'panel--transparent': layout === 'transparent',\n });\n\n return (\n <section\n className={classes}\n {...props}\n >\n {(heading || description) && (\n <div className=\"panel__header\">\n {heading && (\n <h2 className=\"panel__heading\">\n {heading}\n </h2>\n )}\n\n {description && (\n <p className=\"panel__description\">\n {description}\n </p>\n )}\n </div>\n )}\n\n {children && (\n <div className=\"panel__content\">\n {children}\n </div>\n )}\n </section>\n );\n};\n\nexport default Panel;","export function resolveAsset(\n packageAssetPath: string,\n) {\n return new URL(\n `./${packageAssetPath}`,\n import.meta.url,\n ).toString();\n}","import React from 'react';\nimport './logo.css';\nimport { classnames } from '../helpers/classnames';\n\nimport { resolveAsset } from '../../lib/resolve-asset';\n\nexport interface LogoProps\n extends React.HTMLAttributes<HTMLDivElement> {\n mode?: 'full' | 'symbol';\n label?: string;\n}\n\nconst logoUrls = {\n symbol: resolveAsset(\n 'assets/components/logo/logo-symbol.svg',\n ),\n\n wordmark: resolveAsset(\n 'assets/components/logo/logo-wordmark.svg',\n ),\n} as const;\n\nconst Logo: React.FC<LogoProps> = ({\n mode = 'full',\n label = 'Паттерны дизайн-менеджмента',\n className = '',\n ...props\n}) => {\n const classes = classnames('logo', className, {\n 'logo--symbol': mode === 'symbol',\n });\n\n return (\n <div\n className={classes}\n aria-label={label}\n {...props}\n >\n <img\n className=\"logo__symbol\"\n src={logoUrls.symbol}\n alt=\"\"\n aria-hidden=\"true\"\n />\n\n {mode === 'full' && (\n <img\n className=\"logo__wordmark\"\n src={logoUrls.wordmark}\n alt=\"\"\n aria-hidden=\"true\"\n />\n )}\n </div>\n );\n};\n\nexport default Logo;","import React from 'react';\nimport './avatar.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface AvatarBaseProps\n extends React.HTMLAttributes<HTMLDivElement> {\n src?: string;\n alt?: string;\n initials?: string;\n}\n\ntype AvatarStaticProps =\n AvatarBaseProps &\n React.HTMLAttributes<HTMLDivElement> & {\n onClick?: undefined;\n };\n\ntype AvatarButtonProps =\n AvatarBaseProps &\n React.ButtonHTMLAttributes<HTMLButtonElement> & {\n onClick: React.MouseEventHandler<HTMLButtonElement>;\n };\n\nexport type AvatarProps =\n | AvatarStaticProps\n | AvatarButtonProps;\n\nconst Avatar: React.FC<AvatarProps> = ({\n src,\n alt = '',\n initials,\n className = '',\n onClick,\n ...props\n}) => {\n const isInteractive = !!onClick;\n\n const classes = classnames('avatar', className, {\n 'avatar--button': isInteractive,\n });\n\n const content = src ? (\n <img\n className=\"avatar__image\"\n src={src}\n alt={alt}\n />\n ) : (\n <span className=\"avatar__initials\">\n {initials}\n </span>\n );\n\n if (isInteractive) {\n return (\n <button\n className={classes}\n type=\"button\"\n aria-label={props['aria-label'] ?? alt}\n onClick={onClick}\n {...props as React.ButtonHTMLAttributes<HTMLButtonElement>}\n >\n {content}\n </button>\n );\n }\n\n return (\n <div\n className={classes}\n aria-label={alt}\n {...props as React.HTMLAttributes<HTMLDivElement>}\n >\n {content}\n </div>\n );\n};\n\nexport default Avatar;","import React from 'react';\nimport './header.css';\nimport { classnames } from '../../components/helpers/classnames';\n\nexport interface HeaderProps\n extends React.HTMLAttributes<HTMLElement> {\n logo?: React.ReactNode;\n menu?: React.ReactNode;\n avatar?: React.ReactNode;\n}\n\nconst Header: React.FC<HeaderProps> = ({\n logo,\n menu,\n avatar,\n className = '',\n children,\n ...props\n}) => {\n const classes = classnames('header', className, {});\n\n return (\n <header\n className=\"header\"\n {...props}\n >\n <div className=\"header__logo\">\n {logo}\n </div>\n\n {(menu || children) && (\n <div className=\"header__menu\">\n {menu || children}\n </div>\n )}\n\n <div className=\"header__avatar\">\n {avatar}\n </div>\n </header>\n );\n};\n\nexport default Header;","import React from 'react';\nimport './footer.css';\n\nexport interface FooterProps extends React.HTMLAttributes<HTMLElement> {\n copyright?: React.ReactNode;\n links?: React.ReactNode;\n secondaryLinks?: React.ReactNode;\n}\n\nconst Footer: React.FC<FooterProps> = ({\n copyright,\n links,\n secondaryLinks,\n children,\n ...props\n}) => {\n return (\n <footer className=\"footer\" {...props}>\n {copyright && (\n <div className=\"footer__copyright\">\n {copyright}\n </div>\n )}\n\n {(links || children) && (\n <div className=\"footer__links\">\n {links || children}\n </div>\n )}\n\n {secondaryLinks && (\n <div className=\"footer__links footer__links--secondary\">\n {secondaryLinks}\n </div>\n )}\n </footer>\n );\n};\n\nexport default Footer;","import React from 'react';\nimport './screen-header.css';\n\nexport interface ScreenHeaderProps\n extends Omit<React.HTMLAttributes<HTMLElement>, 'title'> {\n eyebrow?: React.ReactNode;\n title?: React.ReactNode;\n description?: React.ReactNode;\n tabs?: React.ReactNode;\n}\n\nconst ScreenHeader: React.FC<ScreenHeaderProps> = ({\n eyebrow,\n title,\n description,\n tabs,\n children,\n ...props\n}) => {\n return (\n <section\n className=\"screen-header\"\n {...props}\n >\n <div className=\"screen-header__heading\">\n {eyebrow && (\n <p className=\"screen-header__section\">\n {eyebrow}\n </p>\n )}\n\n {title && (\n <h1 className=\"screen-header__title\">\n {title}\n </h1>\n )}\n\n {description && (\n <p className=\"screen-header__description\">\n {description}\n </p>\n )}\n </div>\n\n {(tabs || children) && (\n <div className=\"screen-header__tabs\">\n {tabs || children}\n </div>\n )}\n </section>\n );\n};\n\nexport default ScreenHeader;","import React from 'react';\nimport './foundation.css';\nimport { classnames } from '../../components/helpers/classnames';\n\nexport type LayoutFoundationWidth =\n | 'narrow'\n | 'default'\n | 'wide'\n | 'full';\n\nexport interface LayoutFoundationProps\n extends React.HTMLAttributes<HTMLDivElement> {\n width?: LayoutFoundationWidth;\n}\n\nconst LayoutFoundation: React.FC<LayoutFoundationProps> = ({\n width = 'default',\n className = '',\n children,\n ...props\n}) => {\n const classes = classnames('layout-foundation', className, {\n 'layout-foundation--narrow': width === 'narrow',\n 'layout-foundation--wide': width === 'wide',\n 'layout-foundation--full': width === 'full',\n });\n\n return (\n <div\n className={classes}\n {...props}\n >\n <div className=\"layout-foundation__grid\">\n {children}\n </div>\n </div>\n );\n};\n\nexport default LayoutFoundation;","import React from 'react';\nimport LayoutFoundation, {\n type LayoutFoundationWidth,\n} from '../foundation';\nimport './base.css';\n\nexport interface LayoutBaseProps\n extends React.HTMLAttributes<HTMLDivElement> {\n width?: LayoutFoundationWidth;\n header?: React.ReactNode;\n footer?: React.ReactNode;\n}\n\nconst LayoutBase: React.FC<LayoutBaseProps> = ({\n width = 'default',\n header,\n footer,\n children,\n className = '',\n ...props\n}) => {\n return (\n <LayoutFoundation\n width={width}\n className={className}\n {...props}\n >\n {header && (\n <div className=\"layout-base__header\">\n {header}\n </div>\n )}\n\n <main className=\"layout-base__main\">\n {children}\n </main>\n\n {footer && (\n <div className=\"layout-base__footer\">\n {footer}\n </div>\n )}\n </LayoutFoundation>\n );\n};\n\nexport default LayoutBase;","import React from 'react';\nimport LayoutFoundation, {\n type LayoutFoundationWidth,\n} from '../foundation';\nimport './sidebar.css';\n\nexport interface LayoutSidebarProps\n extends React.HTMLAttributes<HTMLDivElement> {\n width?: LayoutFoundationWidth;\n header?: React.ReactNode;\n screenHeader?: React.ReactNode;\n sidebar?: React.ReactNode;\n footer?: React.ReactNode;\n}\n\nconst LayoutSidebar: React.FC<LayoutSidebarProps> = ({\n width = 'wide',\n header,\n screenHeader,\n sidebar,\n footer,\n children,\n className = '',\n ...props\n}) => {\n return (\n <LayoutFoundation\n width={width}\n className={className}\n {...props}\n >\n {header && (\n <div className=\"layout-sidebar__header\">\n {header}\n </div>\n )}\n\n {screenHeader && (\n <div className=\"layout-sidebar__screen-header\">\n {screenHeader}\n </div>\n )}\n\n <div className=\"layout-sidebar__body\">\n <main className=\"layout-sidebar__main\">\n {children}\n </main>\n\n {sidebar && (\n <aside className=\"layout-sidebar__side\">\n {sidebar}\n </aside>\n )}\n </div>\n\n {footer && (\n <div className=\"layout-sidebar__footer\">\n {footer}\n </div>\n )}\n </LayoutFoundation>\n );\n};\n\nexport default LayoutSidebar;","import React from 'react';\nimport './attach.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface AttachItem {\n id: string;\n name: string;\n url: string;\n mimeType?: string;\n sizeBytes?: number;\n}\n\nexport interface AttachProps\n extends React.HTMLAttributes<HTMLDivElement> {\n items: AttachItem[];\n onRemove?: (id: string) => void;\n removeLabel?: string;\n emptyLabel?: string;\n}\n\nfunction isImageAttach(item: AttachItem) {\n return item.mimeType?.startsWith('image/') ?? false;\n}\n\nfunction formatFileSize(sizeBytes?: number) {\n if (sizeBytes === undefined) {\n return 'Size unknown';\n }\n\n if (sizeBytes < 1024) {\n return `${sizeBytes} B`;\n }\n\n if (sizeBytes < 1024 * 1024) {\n return `${Math.round(sizeBytes / 1024)} KB`;\n }\n\n return `${(sizeBytes / 1024 / 1024).toFixed(1)} MB`;\n}\n\nconst Attach: React.FC<AttachProps> = ({\n items,\n onRemove,\n removeLabel = 'Удалить',\n emptyLabel,\n className = '',\n ...props\n}) => {\n if (items.length === 0) {\n return null;\n }\n\n const classes = classnames('attach', className, {});\n\n return (\n <div\n className={classes}\n {...props}\n >\n <ul className=\"attach__list\">\n {items.map((item) => {\n const isImage = isImageAttach(item);\n\n return (\n <li\n key={item.id}\n className=\"attach__item\"\n >\n <a\n className=\"attach__link\"\n href={item.url}\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n {isImage ? (\n <img\n className=\"attach__preview\"\n src={item.url}\n alt={item.name}\n />\n ) : (\n <span className=\"attach__file\">\n <span className=\"attach__name\">\n {item.name}\n </span>\n\n <span className=\"attach__size\">\n {formatFileSize(item.sizeBytes)}\n </span>\n </span>\n )}\n </a>\n\n {onRemove && (\n <button\n className=\"attach__remove\"\n type=\"button\"\n aria-label={`${removeLabel} файл ${item.name}`}\n onClick={() => onRemove(item.id)}\n >\n {removeLabel}\n </button>\n )}\n </li>\n );\n })}\n </ul>\n </div>\n );\n};\n\nexport default Attach;"]}
1
+ {"version":3,"sources":["../src/components/helpers/classnames.ts","../src/icons/assets/arrow-link.tsx","../src/icons/assets/arrow-right.tsx","../src/icons/assets/chevron-right.tsx","../src/icons/assets/fullscreen.tsx","../src/icons/assets/pause.tsx","../src/icons/assets/play.tsx","../src/icons/assets/settings.tsx","../src/icons/assets/sound.tsx","../src/icons/assets/sound-off.tsx","../src/icons/manifest.ts","../src/icons/registry.ts","../src/tokens/helpers/create-scale-tokens.ts","../src/tokens/scales/size.ts","../src/icons/icon.tsx","../src/components/button/button.tsx","../src/components/button-icon/button-icon.tsx","../src/components/input/input.tsx","../src/components/textarea/textarea.tsx","../src/components/select/select.tsx","../src/components/dropdown/dropdown.tsx","../src/components/checkbox/checkbox.tsx","../src/components/radio/radio.tsx","../src/components/field/field.tsx","../src/components/menu/menu.tsx","../src/components/tabs/tabs.tsx","../src/components/progressbar/progressbar.tsx","../src/components/video/video.tsx","../src/components/search/search.tsx","../src/components/richedit/richedit.tsx","../src/components/tag/tag.tsx","../src/components/card/card.tsx","../src/components/panel/panel.tsx","../src/lib/resolve-asset.ts","../src/components/logo/logo.tsx","../src/components/avatar/avatar.tsx","../src/patterns/header/header.tsx","../src/patterns/footer/footer.tsx","../src/patterns/screen-header/screen-header.tsx","../src/layouts/foundation/foundation.tsx","../src/layouts/base/base.tsx","../src/layouts/sidebar/sidebar.tsx","../src/components/attach/attach.tsx"],"names":["jsx","isValidElement","cloneElement","jsxs","useRef","useState","useEffect","React","ratio","getClampedValue","Hls"],"mappings":"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","file":"index.cjs","sourcesContent":["type ClassValue = string | undefined | null | false;\n\nexport function classnames(\n ...args: (ClassValue | Record<string, boolean | undefined | null>)[]\n) {\n const classes: string[] = [];\n\n args.forEach(arg => {\n if (!arg) return;\n\n if (typeof arg === 'string') {\n classes.push(arg);\n return;\n }\n\n for (const key in arg) {\n if (arg[key]) {\n classes.push(key);\n }\n }\n });\n\n return classes.join(' ');\n}","import type { IconGlyph } from '../types';\n\nexport const arrowLink: IconGlyph = {\n xs: <path d=\"M4 8H10M8 4H12V8M12 4L7 9\" />,\n s: <path d=\"M5 10H12M10 5H15V10M15 5L9 11\" />,\n m: <path d=\"M6 12H14M12 6H18V12M18 6L11 13\" />,\n l: <path d=\"M8 16H19M16 8H24V16M24 8L15 17\" />,\n};","import type { IconGlyph } from '../types';\n\nexport const arrowRight: IconGlyph = {\n xs: <path d=\"M4 8H12M9 5L12 8L9 11\" />,\n s: <path d=\"M5 10H15M11 6L15 10L11 14\" />,\n m: <path d=\"M6 12H18M13 7L18 12L13 17\" />,\n l: <path d=\"M8 16H24M18 10L24 16L18 22\" />,\n};","import type { IconGlyph } from '../types';\n\nexport const chevronRight: IconGlyph = {\n xs: <path d=\"M6 4.5L9.5 8L6 11.5\" />,\n s: <path d=\"M8 5.5L12.5 10L8 14.5\" />,\n m: <path d=\"M9.5 6.5L15 12L9.5 17.5\" />,\n l: <path d=\"M13 9L20 16L13 23\" />,\n};","import type { IconGlyph } from '../types';\n\nexport const fullscreen: IconGlyph = {\n xs: <path d=\"M5 7V5H7M11 5H13V7M13 11V13H11M7 13H5V11\" />,\n s: <path d=\"M6 8V6H8M14 6H16V8M16 14V16H14M8 16H6V14\" />,\n m: <path d=\"M7 10V7H10M14 7H17V10M17 14V17H14M10 17H7V14\" />,\n l: <path d=\"M9 13V9H13M19 9H23V13M23 19V23H19M13 23H9V19\" />,\n};","import type { IconGlyph } from '../types';\n\nexport const pause: IconGlyph = {\n xs: <path d=\"M5 4V12M11 4V12\" />,\n s: <path d=\"M7 5V15M13 5V15\" />,\n m: <path d=\"M9 6V18M15 6V18\" />,\n l: <path d=\"M11 8V24M21 8V24\" />,\n};","import type { IconGlyph } from '../types';\n\nexport const play: IconGlyph = {\n xs: <path d=\"M6 5.5L11 8L6 10.5Z\" />,\n s: <path d=\"M7 6.5L13.5 10L7 13.5Z\" />,\n m: <path d=\"M8 7L16 12L8 17Z\" />,\n l: <path d=\"M11 9L21 16L11 23Z\" />,\n};","import type { IconGlyph } from '../types';\n\nexport const settings: IconGlyph = {\n xs: <path d=\"M8 5V3.5M8 12.5V11M5.9 5.9L4.8 4.8M11.2 11.2L10.1 10.1M5 8H3.5M12.5 8H11M5.9 10.1L4.8 11.2M11.2 4.8L10.1 5.9M8 6.5A1.5 1.5 0 1 1 8 9.5A1.5 1.5 0 0 1 8 6.5Z\" />,\n s: <path d=\"M10 6V4M10 16V14M7.2 7.2L5.8 5.8M14.2 14.2L12.8 12.8M6 10H4M16 10H14M7.2 12.8L5.8 14.2M14.2 5.8L12.8 7.2M10 8A2 2 0 1 1 10 12A2 2 0 0 1 10 8Z\" />,\n m: <path d=\"M12 7V4M12 20V17M8.5 8.5L6.4 6.4M17.6 17.6L15.5 15.5M7 12H4M20 12H17M8.5 15.5L6.4 17.6M17.6 6.4L15.5 8.5M12 9A3 3 0 1 1 12 15A3 3 0 0 1 12 9Z\" />,\n l: <path d=\"M16 9V5M16 27V23M11 11L8 8M24 24L21 21M9 16H5M27 16H23M11 21L8 24M24 8L21 11M16 12A4 4 0 1 1 16 20A4 4 0 0 1 16 12Z\" />,\n};","import type { IconGlyph } from '../types';\n\nexport const sound: IconGlyph = {\n xs: <path d=\"M3.5 9.5H6L9.5 12.5V3.5L6 6.5H3.5V9.5ZM11 6.5C11.7 7.2 11.7 8.8 11 9.5\" />,\n s: <path d=\"M4.5 12H7.5L12 16V4L7.5 8H4.5V12ZM14 7.5C15 8.5 15 11.5 14 12.5\" />,\n m: <path d=\"M5.5 14.5H9L15 19V5L9 9.5H5.5V14.5ZM17 8.5C18.5 10 18.5 14 17 15.5\" />,\n l: <path d=\"M7 19H12L20 25V7L12 13H7V19ZM23 11C25 13 25 19 23 21\" />,\n};","import type { IconGlyph } from '../types';\n\nexport const soundOff: IconGlyph = {\n xs: <path d=\"M3.5 9.5H6L9.5 12.5V3.5L6 6.5H3.5V9.5ZM11 6.5L13 8.5M13 6.5L11 8.5\" />,\n s: <path d=\"M4.5 12H7.5L12 16V4L7.5 8H4.5V12ZM14 8L17 11M17 8L14 11\" />,\n m: <path d=\"M5.5 14.5H9L15 19V5L9 9.5H5.5V14.5ZM17 9L21 13M21 9L17 13\" />,\n l: <path d=\"M7 19H12L20 25V7L12 13H7V19ZM23 12L27 16M27 12L23 16\" />,\n};","import { arrowLink } from './assets/arrow-link';\nimport { arrowRight } from './assets/arrow-right';\nimport { chevronRight } from './assets/chevron-right';\nimport { fullscreen } from './assets/fullscreen';\nimport { pause } from './assets/pause';\nimport { play } from './assets/play';\nimport { settings } from './assets/settings';\nimport { sound } from './assets/sound';\nimport { soundOff } from './assets/sound-off';\n\nexport const iconManifest = {\n 'arrow-link': {\n glyph: arrowLink,\n category: 'navigation',\n tags: ['arrow', 'link', 'external'],\n },\n 'arrow-right': {\n glyph: arrowRight,\n category: 'navigation',\n tags: ['arrow', 'right', 'next'],\n },\n 'chevron-right': {\n glyph: chevronRight,\n category: 'navigation',\n tags: ['chevron', 'right', 'next'],\n },\n fullscreen: {\n glyph: fullscreen,\n category: 'media',\n tags: ['fullscreen', 'expand', 'player'],\n },\n pause: {\n glyph: pause,\n category: 'media',\n tags: ['pause', 'video', 'player'],\n },\n play: {\n glyph: play,\n category: 'media',\n tags: ['play', 'video', 'player'],\n },\n settings: {\n glyph: settings,\n category: 'interface',\n tags: ['settings', 'preferences', 'controls'],\n },\n sound: {\n glyph: sound,\n category: 'media',\n tags: ['sound', 'volume', 'audio'],\n },\n 'sound-off': {\n glyph: soundOff,\n category: 'media',\n tags: ['sound', 'volume', 'audio', 'mute'],\n },\n} as const;","import { iconManifest } from './manifest';\nimport type { IconGlyph, IconName } from './types';\n\nexport const iconRegistry = Object.fromEntries(\n Object.entries(iconManifest).map(([name, item]) => [name, item.glyph]),\n) as Record<IconName, IconGlyph>;","import type { TokenDefinition } from '../schema';\n\ntype ScaleValue = number | string | boolean;\n\ntype TokenType = 'float' | 'string' | 'boolean';\n\nfunction detectTokenType(value: ScaleValue): TokenType {\n if (typeof value === 'number') return 'float';\n if (typeof value === 'string') return 'string';\n return 'boolean';\n}\n\nexport function createScaleTokens(\n tokenPathPrefix: string,\n values: Record<string, ScaleValue>\n): TokenDefinition[] {\n return Object.entries(values).map(([step, value]) => ({\n collection: 'scales',\n name: `${tokenPathPrefix}/${step}`,\n type: detectTokenType(value),\n values: {\n value,\n },\n })) as TokenDefinition[];\n}","import { createScaleTokens } from '../helpers/create-scale-tokens';\nimport type { TokenDefinition } from '../schema';\n\nconst sizeX = {\n \"0\": 0,\n \"025\": 1,\n \"05\": 2,\n \"1\": 4,\n \"2\": 8,\n \"3\": 12,\n \"4\": 16,\n \"5\": 20,\n \"6\": 24,\n \"8\": 32,\n \"10\": 40,\n \"12\": 48,\n} as const;\n\nconst sizeGrid = {\n s: 12,\n m: 20,\n l: 40,\n xl: 60,\n xxl: 80,\n xxxl: 100,\n} as const;\n\nexport const sizeIcon = {\n xs: 16,\n s: 20,\n m: 24,\n l: 32,\n} as const;\n\nexport const scalesSize: TokenDefinition[] = [\n ...createScaleTokens('size/x', sizeX),\n ...createScaleTokens('size/grid', sizeGrid),\n ...createScaleTokens('size/icon', sizeIcon),\n];","import React, { type FC } from 'react';\nimport './icon.css';\nimport { iconRegistry } from './registry';\nimport type { IconName, IconSize } from './types';\nimport { sizeIcon } from '../tokens/scales/size';\n\n/*import {\n sizeIconXS,\n sizeIconS,\n sizeIconM,\n sizeIconL,\n} from '../tokens/scales/size';*/\n\nexport interface IconProps\n extends Omit<React.SVGAttributes<SVGSVGElement>, 'size'> {\n name: IconName;\n size?: IconSize;\n}\n\n/*const iconSizeMap: Record<IconSize, number> = {\n xs: sizeIconXS,\n s: sizeIconS,\n m: sizeIconM,\n l: sizeIconL,\n};*/\n\nconst iconSizeMap: Record<IconSize, number> = sizeIcon;\n\nconst Icon: FC<IconProps> = ({\n name,\n size: iconSize = 'm',\n className,\n ...props\n}) => {\n const glyph = iconRegistry[name];\n const size = iconSizeMap[iconSize];\n const viewBox = `0 0 ${size} ${size}`;\n const classes = ['icon', className].filter(Boolean).join(' ');\n\n return (\n <svg\n className={classes}\n width={size}\n height={size}\n viewBox={viewBox}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n stroke=\"currentColor\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n {...props}\n >\n {glyph[iconSize]}\n </svg>\n );\n};\n\nexport default Icon;","import React, {\n cloneElement,\n isValidElement,\n type ReactElement,\n} from 'react';\nimport './button.css';\nimport { classnames } from '../helpers/classnames';\nimport Icon, { type IconProps } from '../../icons/icon';\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n state?: 'default' | 'primary';\n icon?: React.ReactNode;\n}\n\nconst Button: React.FC<ButtonProps> = ({\n state = 'default',\n icon,\n className = '',\n disabled = false,\n children,\n ...props\n}) => {\n const isIconOnly = !!icon && !children;\n\n const classes = classnames('button', className, {\n 'button--primary': state === 'primary',\n 'button--disabled': disabled,\n 'button--icon-only': isIconOnly,\n });\n\n let resolvedIcon = icon;\n\n if (isValidElement(icon) && icon.type === Icon) {\n const iconElement = icon as ReactElement<IconProps>;\n\n resolvedIcon = cloneElement(iconElement, {\n size: iconElement.props.size ?? 's',\n className: classnames('button__icon', iconElement.props.className),\n 'aria-hidden': iconElement.props['aria-hidden'] ?? true,\n focusable: iconElement.props.focusable ?? false,\n });\n }\n\n return (\n <button\n className={classes}\n disabled={disabled}\n {...props}\n >\n {resolvedIcon}\n {children}\n </button>\n );\n};\n\nexport default Button;","import React from 'react';\nimport './button-icon.css';\nimport { classnames } from '../helpers/classnames';\nimport Icon from '../../icons/icon';\nimport type { IconName } from '../../icons/types';\n\nexport interface ButtonIconProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n icon: IconName;\n state?: 'default' | 'disabled';\n label: string;\n}\n\nconst ButtonIcon: React.FC<ButtonIconProps> = ({\n state = 'default',\n icon,\n label,\n className = '',\n disabled = false,\n ...props\n}) => {\n const isDisabled =\n disabled ||\n state === 'disabled';\n\n const classes = classnames('button-icon', className, {\n 'button-icon--disabled': isDisabled,\n });\n\n return (\n <button\n className={classes}\n disabled={isDisabled}\n aria-label={label}\n title={label}\n {...props}\n >\n <Icon\n name={icon}\n className=\"button-icon__icon\"\n aria-hidden\n focusable={false}\n />\n </button>\n );\n};\n\nexport default ButtonIcon;","import React from 'react';\n//import './input.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n state?: 'default' | 'error' | 'success';\n}\n\nconst Input: React.FC<InputProps> = ({\n state = 'default',\n className = '',\n disabled = false,\n ...props\n}) => {\n const classes = classnames('input', className, {\n error: state === 'error',\n success: state === 'success',\n });\n\n return (\n <input\n className={classes}\n disabled={disabled}\n {...props}\n />\n );\n};\n\nexport default Input;","import React from 'react';\n// import './textarea.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n state?: 'default' | 'error' | 'success';\n}\n\nconst Textarea: React.FC<TextareaProps> = ({\n state = 'default',\n className = '',\n disabled = false,\n ...props\n}) => {\n const classes = classnames('textarea', className, {\n error: state === 'error',\n success: state === 'success',\n });\n\n return (\n <textarea\n className={classes}\n disabled={disabled}\n {...props}\n />\n );\n};\n\nexport default Textarea;","import React from 'react';\n//import './select.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface SelectProps\n extends React.SelectHTMLAttributes<HTMLSelectElement> {\n state?: 'default' | 'error' | 'success';\n}\n\nconst Select: React.FC<SelectProps> = ({\n state = 'default',\n className = '',\n disabled = false,\n children,\n ...props\n}) => {\n const classes = classnames('select', className, {\n error: state === 'error',\n success: state === 'success',\n });\n\n return (\n <div className={classes}>\n <select\n className=\"select__field\"\n disabled={disabled}\n {...props}\n >\n {children}\n </select>\n </div>\n );\n};\n\nexport default Select;","import React, {\n cloneElement,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport './dropdown.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface DropdownOption {\n value: string;\n label: string;\n disabled?: boolean;\n}\n\ntype DropdownTriggerProps = {\n className?: string;\n onClick?: (event: React.MouseEvent) => void;\n 'aria-haspopup'?: string;\n 'aria-expanded'?: boolean;\n};\n\ntype DropdownTriggerElement =\n React.ReactElement<DropdownTriggerProps>;\n\nexport interface DropdownProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {\n options: DropdownOption[];\n value?: string;\n defaultValue?: string;\n label?: string;\n align?: 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end';\n trigger: DropdownTriggerElement;\n onChange?: (value: string) => void;\n}\n\nconst Dropdown: React.FC<DropdownProps> = ({\n options,\n value,\n defaultValue,\n label = 'Dropdown',\n align = 'bottom-start',\n trigger,\n onChange,\n className = '',\n ...props\n}) => {\n const dropdownRef = useRef<HTMLDivElement>(null);\n\n const [isOpen, setIsOpen] = useState(false);\n const [internalValue, setInternalValue] = useState(defaultValue);\n\n const selectedValue =\n value ?? internalValue;\n\n const classes = classnames('dropdown', className, {\n 'dropdown--open': isOpen,\n 'dropdown--top-start': align === 'top-start',\n 'dropdown--top-end': align === 'top-end',\n 'dropdown--bottom-start': align === 'bottom-start',\n 'dropdown--bottom-end': align === 'bottom-end',\n });\n\n const triggerElement =\n trigger as DropdownTriggerElement;\n\n const triggerClasses = classnames(\n 'dropdown__trigger',\n triggerElement.props.className,\n );\n\n const resolvedTrigger = cloneElement(triggerElement, {\n className: triggerClasses,\n 'aria-haspopup': 'menu',\n 'aria-expanded': isOpen,\n onClick: (event: React.MouseEvent) => {\n triggerElement.props.onClick?.(event);\n\n setIsOpen((currentValue) => !currentValue);\n },\n });\n\n const handleOptionClick = (option: DropdownOption) => {\n if (option.disabled) {\n return;\n }\n\n if (value === undefined) {\n setInternalValue(option.value);\n }\n\n onChange?.(option.value);\n setIsOpen(false);\n };\n\n useEffect(() => {\n if (!isOpen) {\n return;\n }\n\n const handleDocumentClick = (event: MouseEvent) => {\n const dropdown = dropdownRef.current;\n\n if (!dropdown || dropdown.contains(event.target as Node)) {\n return;\n }\n\n setIsOpen(false);\n };\n\n const handleDocumentKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n setIsOpen(false);\n }\n };\n\n document.addEventListener('mousedown', handleDocumentClick);\n document.addEventListener('keydown', handleDocumentKeyDown);\n\n return () => {\n document.removeEventListener('mousedown', handleDocumentClick);\n document.removeEventListener('keydown', handleDocumentKeyDown);\n };\n }, [isOpen]);\n\n return (\n <div\n ref={dropdownRef}\n className={classes}\n {...props}\n >\n {resolvedTrigger}\n\n {isOpen && (\n <div\n className=\"dropdown__menu\"\n role=\"menu\"\n aria-label={label}\n >\n {options.map((option) => {\n const isSelected =\n option.value === selectedValue;\n\n const itemClasses = classnames('dropdown__item', {\n 'dropdown__item--selected': isSelected,\n 'dropdown__item--disabled': option.disabled,\n });\n\n return (\n <button\n key={option.value}\n className={itemClasses}\n type=\"button\"\n role=\"menuitemradio\"\n aria-checked={isSelected}\n aria-disabled={option.disabled}\n disabled={option.disabled}\n onClick={() => handleOptionClick(option)}\n >\n {option.label}\n </button>\n );\n })}\n </div>\n )}\n </div>\n );\n};\n\nexport default Dropdown;","import React from 'react';\n//import './checkbox.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface CheckboxProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: React.ReactNode;\n}\n\nconst Checkbox: React.FC<CheckboxProps> = ({\n label,\n className = '',\n disabled = false,\n ...props\n}) => {\n const classes = classnames(\n 'checkbox',\n className,\n {\n 'checkbox--disabled': disabled,\n }\n );\n\n return (\n <label className={classes}>\n <input\n className=\"checkbox__input\"\n type=\"checkbox\"\n disabled={disabled}\n {...props}\n />\n {label && <span className=\"checkbox__label\">{label}</span>}\n </label>\n );\n};\n\nexport default Checkbox;","import React from 'react';\n//import './radio.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface RadioProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: React.ReactNode;\n}\n\nconst Radio: React.FC<RadioProps> = ({\n label,\n className = '',\n disabled = false,\n ...props\n}) => {\n const classes = classnames(\n 'radio',\n className,\n {\n 'radio--disabled': disabled,\n }\n );\n\n return (\n <label className={classes}>\n <input\n className=\"radio__input\"\n type=\"radio\"\n disabled={disabled}\n {...props}\n />\n {label && <span className=\"radio__label\">{label}</span>}\n </label>\n );\n};\n\nexport default Radio;","import React from 'react';\n//import './field.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface FieldProps {\n label?: React.ReactNode;\n hint?: React.ReactNode;\n error?: React.ReactNode;\n required?: boolean;\n disabled?: boolean;\n htmlFor?: string;\n className?: string;\n children: React.ReactNode;\n}\n\nconst Field: React.FC<FieldProps> = ({\n label,\n hint,\n error,\n required = false,\n disabled = false,\n htmlFor,\n className = '',\n children,\n}) => {\n const classes = classnames(\n 'field',\n className,\n {\n 'field--disabled': disabled,\n 'field--error': !!error,\n }\n );\n\n return (\n <div className={classes}>\n {label && (\n <label\n className=\"field__label\"\n htmlFor={htmlFor}\n >\n {label}\n {required && <span className=\"field__required\"> *</span>}\n </label>\n )}\n\n <div className=\"field__control\">\n {children}\n </div>\n\n {error ? (\n <div className=\"field__message field__message--error\">\n {error}\n </div>\n ) : hint ? (\n <div className=\"field__message\">\n {hint}\n </div>\n ) : null}\n </div>\n );\n};\n\nexport default Field;","import React from 'react';\nimport './menu.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface MenuItem {\n value: string;\n label: React.ReactNode;\n href?: string;\n disabled?: boolean;\n}\n\nexport interface MenuProps\n extends React.HTMLAttributes<HTMLElement> {\n items: MenuItem[];\n value?: string;\n defaultValue?: string;\n label?: string;\n onValueChange?: (value: string) => void;\n}\n\nfunction getInitialValue(\n value: string | undefined,\n defaultValue: string | undefined,\n items: MenuItem[],\n) {\n if (value !== undefined) {\n return value;\n }\n\n if (defaultValue !== undefined) {\n return defaultValue;\n }\n\n return items[0]?.value;\n}\n\nconst Menu: React.FC<MenuProps> = ({\n items,\n value,\n defaultValue,\n label = 'Menu',\n className = '',\n onValueChange,\n ...props\n}) => {\n const [internalValue, setInternalValue] = React.useState(\n getInitialValue(value, defaultValue, items),\n );\n\n const currentValue = value ?? internalValue;\n\n React.useEffect(() => {\n if (value !== undefined) {\n return;\n }\n\n setInternalValue(getInitialValue(value, defaultValue, items));\n }, [value, defaultValue, items]);\n\n const handleItemClick = (\n itemValue: string,\n disabled?: boolean,\n ) => {\n if (disabled) {\n return;\n }\n\n if (value === undefined) {\n setInternalValue(itemValue);\n }\n\n onValueChange?.(itemValue);\n };\n\n const classes = classnames('menu', className, {});\n\n return (\n <nav\n className={classes}\n aria-label={label}\n {...props}\n >\n <ul className=\"menu__list\">\n {items.map((item) => {\n const isActive = item.value === currentValue;\n\n const itemClasses = classnames('menu__control', {\n 'menu__control--active': isActive,\n 'menu__control--disabled': item.disabled,\n });\n\n return (\n <li\n key={item.value}\n className=\"menu__item\"\n >\n {item.href ? (\n <a\n className={itemClasses}\n href={item.href}\n aria-current={isActive ? 'page' : undefined}\n aria-disabled={item.disabled || undefined}\n onClick={(event) => {\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n\n handleItemClick(item.value);\n }}\n >\n {item.label}\n </a>\n ) : (\n <button\n className={itemClasses}\n type=\"button\"\n disabled={item.disabled}\n onClick={() => handleItemClick(\n item.value,\n item.disabled,\n )}\n >\n {item.label}\n </button>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n );\n};\n\nexport default Menu;","import React from 'react';\nimport { classnames } from '../helpers/classnames';\nimport './tabs.css';\n\nexport interface TabsProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst Tabs: React.FC<TabsProps> = ({\n className = '',\n children,\n ...props\n}) => {\n const classes = classnames('tabs', className);\n\n return (\n <div className={classes} {...props}>\n {children}\n </div>\n );\n};\n\nexport default Tabs;","import React, { useRef } from 'react';\nimport './progressbar.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface ProgressBarProps\n extends React.HTMLAttributes<HTMLDivElement> {\n mode?: 'player' | 'diagram' | 'level';\n value?: number;\n buffered?: number;\n max?: number;\n orientation?: 'horizontal' | 'vertical';\n step?: number;\n interactive?: boolean;\n label?: string;\n onValueChange?: (value: number) => void;\n onValueCommit?: (value: number) => void;\n}\n\nfunction getClampedValue(\n value: number,\n max: number,\n) {\n return Math.min(\n Math.max(value, 0),\n max,\n );\n}\n\nfunction getPercent(\n value: number,\n max: number,\n) {\n if (max <= 0) {\n return 0;\n }\n\n return (\n getClampedValue(value, max) /\n max\n ) * 100;\n}\n\nfunction getValueFromPointer(\n event: React.PointerEvent<HTMLDivElement>,\n track: HTMLDivElement,\n max: number,\n isVertical: boolean,\n) {\n const rect = track.getBoundingClientRect();\n\n if (isVertical) {\n const y =\n rect.bottom -\n event.clientY;\n\n const ratio =\n y / rect.height;\n\n return getClampedValue(\n ratio * max,\n max,\n );\n }\n\n const x =\n event.clientX -\n rect.left;\n\n const ratio =\n x / rect.width;\n\n return getClampedValue(\n ratio * max,\n max,\n );\n}\n\nfunction getNextKeyboardValue(\n key: string,\n value: number,\n max: number,\n step: number,\n) {\n if (\n key === 'ArrowRight' ||\n key === 'ArrowUp'\n ) {\n return getClampedValue(\n value + step,\n max,\n );\n }\n\n if (\n key === 'ArrowLeft' ||\n key === 'ArrowDown'\n ) {\n return getClampedValue(\n value - step,\n max,\n );\n }\n\n if (key === 'Home') {\n return 0;\n }\n\n if (key === 'End') {\n return max;\n }\n\n return value;\n}\n\nconst ProgressBar: React.FC<\n ProgressBarProps\n> = ({\n mode = 'player',\n value = 0,\n buffered = 0,\n max = 100,\n orientation = 'horizontal',\n step = 1,\n interactive,\n label = 'Progress',\n className = '',\n style,\n onValueChange,\n onValueCommit,\n ...props\n}) => {\n const trackRef =\n useRef<HTMLDivElement>(null);\n\n const safeValue =\n getClampedValue(\n value,\n max,\n );\n\n const valuePercent =\n getPercent(\n value,\n max,\n );\n\n const bufferedPercent =\n getPercent(\n buffered,\n max,\n );\n\n const isInteractive =\n interactive ??\n mode !== 'diagram';\n\n const isVertical =\n orientation ===\n 'vertical' ||\n mode === 'level';\n\n const hasBuffered =\n mode === 'player' &&\n buffered > value;\n\n const hasValue =\n mode === 'diagram';\n\n const classes =\n classnames(\n 'progressbar',\n className,\n {\n 'progressbar--vertical':\n isVertical,\n\n 'progressbar--level':\n mode === 'level',\n\n 'progressbar--interactive':\n isInteractive,\n },\n );\n\n const progressStyle = {\n ...style,\n '--progressbar-value':\n `${valuePercent}%`,\n '--progressbar-buffered':\n `${bufferedPercent}%`,\n '--progressbar-buffered-offset':\n `${valuePercent}%`,\n } as React.CSSProperties;\n\n const updateValueFromPointer = (\n event: React.PointerEvent<HTMLDivElement>,\n shouldCommit = false,\n ) => {\n const track =\n trackRef.current;\n\n if (\n !isInteractive ||\n !track\n ) {\n return;\n }\n\n const nextValue =\n getValueFromPointer(\n event,\n track,\n max,\n isVertical,\n );\n\n onValueChange?.(\n nextValue,\n );\n\n if (shouldCommit) {\n onValueCommit?.(\n nextValue,\n );\n }\n };\n\n const handlePointerDown = (\n event: React.PointerEvent<HTMLDivElement>,\n ) => {\n if (!isInteractive) {\n return;\n }\n\n event.currentTarget\n .setPointerCapture(\n event.pointerId,\n );\n\n updateValueFromPointer(\n event,\n );\n };\n\n const handlePointerMove = (\n event: React.PointerEvent<HTMLDivElement>,\n ) => {\n if (\n !isInteractive ||\n !event.currentTarget\n .hasPointerCapture(\n event.pointerId,\n )\n ) {\n return;\n }\n\n updateValueFromPointer(\n event,\n );\n };\n\n const handlePointerUp = (\n event: React.PointerEvent<HTMLDivElement>,\n ) => {\n if (!isInteractive) {\n return;\n }\n\n updateValueFromPointer(\n event,\n true,\n );\n\n event.currentTarget\n .releasePointerCapture(\n event.pointerId,\n );\n };\n\n const handleKeyDown = (\n event: React.KeyboardEvent<HTMLDivElement>,\n ) => {\n if (!isInteractive) {\n return;\n }\n\n const nextValue =\n getNextKeyboardValue(\n event.key,\n safeValue,\n max,\n step,\n );\n\n if (\n nextValue ===\n safeValue\n ) {\n return;\n }\n\n event.preventDefault();\n\n onValueChange?.(\n nextValue,\n );\n\n onValueCommit?.(\n nextValue,\n );\n };\n\n return (\n <div\n className={classes}\n role={\n isInteractive\n ? 'slider'\n : 'progressbar'\n }\n aria-label={label}\n aria-valuemin={0}\n aria-valuemax={max}\n aria-valuenow={safeValue}\n aria-orientation={\n isInteractive &&\n isVertical\n ? 'vertical'\n : undefined\n }\n tabIndex={\n isInteractive\n ? 0\n : undefined\n }\n style={progressStyle}\n onPointerDown={\n handlePointerDown\n }\n onPointerMove={\n handlePointerMove\n }\n onPointerUp={\n handlePointerUp\n }\n onKeyDown={\n handleKeyDown\n }\n {...props}\n >\n <div\n ref={trackRef}\n className=\"progressbar__track\"\n >\n <div className=\"progressbar__value\" />\n\n {hasBuffered && (\n <div className=\"progressbar__buffered\" />\n )}\n\n {hasValue && (\n <span className=\"progressbar__label\">\n {Math.round(\n valuePercent,\n )}\n %\n </span>\n )}\n </div>\n </div>\n );\n};\n\nexport default ProgressBar;","import React, { useEffect, useRef, useState } from 'react';\nimport Hls from 'hls.js';\n\nimport './video.css';\nimport { classnames } from '../helpers/classnames';\nimport ButtonIcon from '../button-icon';\nimport ProgressBar from '../progressbar';\nimport Dropdown, { type DropdownOption } from '../dropdown';\n\nexport interface VideoQuality {\n value: string;\n label: string;\n src?: string;\n disabled?: boolean;\n}\n\nexport interface VideoProgressState {\n currentTime: number;\n duration: number;\n completed: boolean;\n}\n\nexport interface VideoProps\n extends Omit<React.VideoHTMLAttributes<HTMLVideoElement>, 'controls' | 'src' | 'poster'> {\n src?: string;\n cover?: string;\n qualities?: VideoQuality[];\n defaultQuality?: string;\n label?: string;\n initialVolume?: number;\n initialMuted?: boolean;\n initialTime?: number;\n progressCommitIntervalSec?: number;\n onProgressCommit?: (state: VideoProgressState) => void;\n onQualityChange?: (quality: string) => void;\n}\n\nfunction getClampedValue(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max);\n}\n\nfunction formatTime(value: number) {\n if (!Number.isFinite(value)) return '0:00';\n\n const minutes = Math.floor(value / 60);\n const seconds = Math.floor(value % 60);\n\n return `${minutes}:${String(seconds).padStart(2, '0')}`;\n}\n\nfunction getBufferedEnd(video: HTMLVideoElement) {\n if (video.buffered.length === 0) return 0;\n\n return video.buffered.end(video.buffered.length - 1);\n}\n\nfunction getVideoSource(src: string | undefined, qualities: VideoQuality[], selectedQuality: string) {\n const selectedQualityItem = qualities.find((quality) => quality.value === selectedQuality);\n\n return selectedQualityItem?.src ?? src;\n}\n\nfunction getQualityOptions(qualities: VideoQuality[]): DropdownOption[] {\n return qualities.map((quality) => ({\n value: quality.value,\n label: quality.label,\n disabled: quality.disabled,\n }));\n}\n\nfunction getVideoProgressState(\n video: HTMLVideoElement,\n): VideoProgressState {\n const duration = video.duration || 0;\n const currentTime = video.currentTime || 0;\n\n return {\n currentTime,\n duration,\n\n completed:\n video.ended ||\n (\n duration > 0 &&\n currentTime >= duration * 0.9\n ),\n };\n}\n\nconst defaultQualities: VideoQuality[] = [];\n\nconst Video: React.FC<VideoProps> = ({\n src,\n cover,\n qualities = defaultQualities,\n defaultQuality = '',\n label = 'Video player',\n initialVolume = 1,\n initialMuted = false,\n initialTime = 0,\n progressCommitIntervalSec = 15,\n className = '',\n autoPlay,\n loop,\n muted,\n playsInline = true,\n preload = 'metadata',\n onQualityChange,\n onPlay,\n onPause,\n onEnded,\n onLoadedMetadata,\n onTimeUpdate,\n onProgress,\n onVolumeChange,\n onProgressCommit,\n children,\n ...props\n}) => {\n const videoRef = useRef<HTMLVideoElement>(null);\n\n const [isPlaying, setIsPlaying] = useState(false);\n const [isVolumeOpen, setIsVolumeOpen] = useState(false);\n const [selectedQuality, setSelectedQuality] = useState(defaultQuality);\n const [currentTime, setCurrentTime] = useState(0);\n const [duration, setDuration] = useState(0);\n const [buffered, setBuffered] = useState(0);\n const [volume, setVolume] = useState(initialVolume);\n const [isMuted, setIsMuted] = useState(muted ?? initialMuted);\n\n const hasAppliedInitialTimeRef = useRef(false);\n const lastProgressCommitAtRef = useRef(0);\n\n const videoSrc = getVideoSource(src, qualities, selectedQuality);\n const qualityOptions = getQualityOptions(qualities);\n const hasQualityOptions = qualityOptions.length > 0;\n\n useEffect(() => {\n const video = videoRef.current;\n\n hasAppliedInitialTimeRef.current = false;\n lastProgressCommitAtRef.current = 0;\n\n if (!video || !videoSrc) return;\n\n video.removeAttribute('src');\n video.load();\n\n if (video.canPlayType('application/vnd.apple.mpegurl')) {\n video.src = videoSrc;\n return;\n }\n\n if (!Hls.isSupported()) {\n video.src = videoSrc;\n return;\n }\n\n const hls = new Hls();\n\n hls.on(Hls.Events.ERROR, (_, data) => {\n console.error('HLS error', data);\n });\n\n hls.loadSource(videoSrc);\n hls.attachMedia(video);\n\n return () => {\n hls.destroy();\n };\n }, [videoSrc]);\n\n const hasStarted = currentTime > 0 || isPlaying;\n const hasControls = hasStarted;\n const hasVolume = isVolumeOpen;\n\n const classes = classnames('video', className, {\n 'video--with-controls': hasControls,\n 'video--with-volume': hasVolume,\n });\n\n const syncMediaState = () => {\n const video = videoRef.current;\n\n if (!video) return;\n\n setCurrentTime(video.currentTime);\n setDuration(video.duration || 0);\n setBuffered(getBufferedEnd(video));\n setVolume(video.volume);\n setIsMuted(video.muted);\n setIsPlaying(!video.paused);\n };\n\n const commitProgress = (\n video: HTMLVideoElement,\n ) => {\n if (!onProgressCommit) {\n return;\n }\n\n onProgressCommit(\n getVideoProgressState(video),\n );\n };\n\n const handlePlayToggle = async () => {\n const video = videoRef.current;\n\n if (!video) return;\n\n console.log('play click', {\n paused: video.paused,\n readyState: video.readyState,\n src: video.currentSrc,\n networkState: video.networkState,\n error: video.error,\n });\n\n if (video.paused) {\n try {\n await video.play();\n console.log('play success');\n } catch (error) {\n console.error('play failed', error);\n }\n\n return;\n }\n\n video.pause();\n };\n\n const handleSeek = (nextValue: number) => {\n const video = videoRef.current;\n\n if (!video) return;\n\n video.currentTime = getClampedValue(nextValue, 0, duration);\n setCurrentTime(video.currentTime);\n };\n\n const handleVolumeChange = (nextValue: number) => {\n const video = videoRef.current;\n\n if (!video) return;\n\n const nextVolume = getClampedValue(nextValue, 0, 1);\n\n video.volume = nextVolume;\n video.muted = nextVolume === 0;\n\n setVolume(nextVolume);\n setIsMuted(video.muted);\n };\n\n const handleSoundToggle = () => {\n const video = videoRef.current;\n\n if (!video) return;\n\n video.muted = !video.muted;\n setIsMuted(video.muted);\n };\n\n const handleFullscreen = () => {\n const video = videoRef.current;\n\n if (!video) return;\n\n video.requestFullscreen?.();\n };\n\n const handleQualityChange = (quality: string) => {\n setSelectedQuality(quality);\n onQualityChange?.(quality);\n };\n\n const handleLoadedMetadata = (\n event: React.SyntheticEvent<HTMLVideoElement>,\n ) => {\n const video = event.currentTarget;\n\n if (\n !hasAppliedInitialTimeRef.current &&\n initialTime > 0\n ) {\n video.currentTime = Math.min(\n initialTime,\n video.duration || initialTime,\n );\n\n hasAppliedInitialTimeRef.current = true;\n }\n\n syncMediaState();\n\n onLoadedMetadata?.(event);\n };\n\n const handleTimeUpdate = (\n event: React.SyntheticEvent<HTMLVideoElement>,\n ) => {\n const video = event.currentTarget;\n\n syncMediaState();\n\n if (\n onProgressCommit &&\n (\n video.currentTime -\n lastProgressCommitAtRef.current\n ) >= progressCommitIntervalSec\n ) {\n lastProgressCommitAtRef.current =\n video.currentTime;\n\n commitProgress(video);\n }\n\n onTimeUpdate?.(event);\n };\n\n const handleProgress = (event: React.SyntheticEvent<HTMLVideoElement>) => {\n syncMediaState();\n onProgress?.(event);\n };\n\n const handlePlay = (event: React.SyntheticEvent<HTMLVideoElement>) => {\n setIsPlaying(true);\n onPlay?.(event);\n };\n\n const handlePause = (\n event: React.SyntheticEvent<HTMLVideoElement>,\n ) => {\n setIsPlaying(false);\n\n commitProgress(event.currentTarget);\n\n onPause?.(event);\n };\n\n const handleEnded = (\n event: React.SyntheticEvent<HTMLVideoElement>,\n ) => {\n syncMediaState();\n\n commitProgress(event.currentTarget);\n\n onEnded?.(event);\n };\n\n const handleNativeVolumeChange = (event: React.SyntheticEvent<HTMLVideoElement>) => {\n syncMediaState();\n onVolumeChange?.(event);\n };\n\n return (\n <div className={classes} aria-label={label}>\n <div className=\"video__surface\">\n {cover && !hasStarted ? (\n <img\n className=\"video__cover\"\n src={cover}\n alt=\"\"\n aria-hidden=\"true\"\n />\n ) : null}\n\n <video\n {...props}\n ref={videoRef}\n className=\"video__media\"\n poster={cover}\n autoPlay={autoPlay}\n loop={loop}\n muted={isMuted}\n playsInline={playsInline}\n preload={preload}\n controls={false}\n onLoadedMetadata={handleLoadedMetadata}\n onTimeUpdate={handleTimeUpdate}\n onProgress={handleProgress}\n onPlay={handlePlay}\n onPause={handlePause}\n onEnded={handleEnded}\n onVolumeChange={handleNativeVolumeChange}\n >\n {children}\n </video>\n\n {!hasStarted && (\n <ButtonIcon\n className=\"video__main-action\"\n icon=\"play\"\n label=\"Play video\"\n onClick={handlePlayToggle}\n />\n )}\n </div>\n\n {hasControls && (\n <div className=\"video__controls\">\n <ButtonIcon\n icon={isPlaying ? 'pause' : 'play'}\n label={isPlaying ? 'Pause video' : 'Play video'}\n onClick={handlePlayToggle}\n />\n\n <div className=\"video__time\">{formatTime(currentTime)}</div>\n\n <ProgressBar\n className=\"video__progress\"\n mode=\"player\"\n value={currentTime}\n buffered={buffered}\n max={duration || 1}\n step={1}\n label=\"Video progress\"\n onValueChange={handleSeek}\n />\n\n <ButtonIcon icon=\"fullscreen\" label=\"Fullscreen\" onClick={handleFullscreen} />\n\n <div className=\"video__sound-control\" onMouseLeave={() => setIsVolumeOpen(false)}>\n <ButtonIcon\n icon={isMuted ? 'sound-off' : 'sound'}\n label={isMuted ? 'Unmute video' : 'Mute video'}\n onClick={handleSoundToggle}\n onMouseEnter={() => setIsVolumeOpen(true)}\n onFocus={() => setIsVolumeOpen(true)}\n />\n\n {hasVolume && (\n <div className=\"video__volume\">\n <ProgressBar\n mode=\"level\"\n value={isMuted ? 0 : volume}\n max={1}\n step={0.05}\n label=\"Volume\"\n onValueChange={handleVolumeChange}\n />\n </div>\n )}\n </div>\n\n {hasQualityOptions && (\n <Dropdown\n align=\"top-end\"\n value={selectedQuality}\n options={qualityOptions}\n label=\"Video quality\"\n onChange={handleQualityChange}\n trigger={<ButtonIcon icon=\"settings\" label=\"Video quality\" />}\n />\n )}\n </div>\n )}\n </div>\n );\n};\n\nexport default Video;","import React from 'react';\n//import './search.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface SearchProps\n extends React.HTMLAttributes<HTMLElement> {\n state?: 'default' | 'error' | 'success';\n}\n\nconst Search: React.FC<SearchProps> = ({\n state = 'default',\n className = '',\n children,\n// disabled = false,\n ...props\n}) => {\n const classes = classnames('search', className, {\n error: state === 'error',\n success: state === 'success',\n });\n\n return (\n <div\n className={classes}\n// disabled={disabled}\n {...props}\n >\n {children}\n </div>\n );\n};\n\nexport default Search;","import React from 'react';\nimport './richedit.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface RichEditProps\n extends React.HTMLAttributes<HTMLElement> {\n state?: 'default' | 'error' | 'success';\n}\n\nconst RichEdit: React.FC<RichEditProps> = ({\n state = 'default',\n className = '',\n// disabled = false,\n ...props\n}) => {\n const classes = classnames('richedit', className, {\n error: state === 'error',\n success: state === 'success',\n });\n\n return (\n <div\n className={classes}\n// disabled={disabled}\n {...props}\n />\n );\n};\n\nexport default RichEdit;","import React from 'react';\n//import './tag.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface TagProps\n extends React.HTMLAttributes<HTMLElement> {\n context?: 'success' | 'error' | 'warning';\n}\n\nconst Tag: React.FC<TagProps> = ({\n context = 'success',\n className = '',\n children,\n ...props\n}) => {\n const classes = classnames('tag', className, {\n [`tag--context-${context}`]: Boolean(context),\n });\n\n return (\n <div\n className={classes}\n {...props}\n >\n {children}\n </div>\n );\n};\n\nexport default Tag;\n","import React from 'react';\nimport './card.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface CardProps\n extends React.HTMLAttributes<HTMLElement> {\n state?: 'default';\n heading?: React.ReactNode;\n description?: React.ReactNode;\n actions?: React.ReactNode;\n}\n\nconst Card: React.FC<CardProps> = ({\n state = 'default',\n heading,\n description,\n actions,\n className = '',\n children,\n ...props\n}) => {\n const classes = classnames('card', className, {});\n\n return (\n <section\n className={classes}\n {...props}\n >\n {(heading || description) && (\n <div className=\"card__header\">\n {heading && (\n <h2 className=\"card__heading\">\n {heading}\n </h2>\n )}\n\n {description && (\n <p className=\"card__description\">\n {description}\n </p>\n )}\n </div>\n )}\n\n {children && (\n <div className=\"card__content\">\n {children}\n </div>\n )}\n\n {actions && (\n <div className=\"card__actions\">\n {actions}\n </div>\n )}\n </section>\n );\n};\n\nexport default Card;","import React from 'react';\nimport './panel.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface PanelProps\n extends React.HTMLAttributes<HTMLElement> {\n layout?: 'card' | 'transparent';\n heading?: React.ReactNode;\n description?: React.ReactNode;\n}\n\nconst Panel: React.FC<PanelProps> = ({\n layout = 'card',\n heading,\n description,\n className = '',\n children,\n ...props\n}) => {\n const classes = classnames('panel', className, {\n 'panel--transparent': layout === 'transparent',\n });\n\n return (\n <section\n className={classes}\n {...props}\n >\n {(heading || description) && (\n <div className=\"panel__header\">\n {heading && (\n <h2 className=\"panel__heading\">\n {heading}\n </h2>\n )}\n\n {description && (\n <p className=\"panel__description\">\n {description}\n </p>\n )}\n </div>\n )}\n\n {children && (\n <div className=\"panel__content\">\n {children}\n </div>\n )}\n </section>\n );\n};\n\nexport default Panel;","export function resolveAsset(\n packageAssetPath: string,\n sourceAssetUrl?: string,\n) {\n const isSourceRuntime =\n import.meta.url.includes('/src/');\n\n if (isSourceRuntime && sourceAssetUrl) {\n return sourceAssetUrl;\n }\n\n return new URL(\n `./${packageAssetPath}`,\n import.meta.url,\n ).toString();\n}","import React from 'react';\nimport './logo.css';\nimport { classnames } from '../helpers/classnames';\n\nimport { resolveAsset } from '../../lib/resolve-asset';\n\nexport interface LogoProps\n extends React.HTMLAttributes<HTMLDivElement> {\n mode?: 'full' | 'symbol';\n label?: string;\n}\n\nconst logoUrls = {\n symbol: resolveAsset(\n 'assets/components/logo/logo-symbol.svg',\n new URL('./assets/logo-symbol.svg', import.meta.url).toString(),\n ),\n\n wordmark: resolveAsset(\n 'assets/components/logo/logo-wordmark.svg',\n new URL('./assets/logo-wordmark.svg', import.meta.url).toString(),\n ),\n} as const;\n\nconst Logo: React.FC<LogoProps> = ({\n mode = 'full',\n label = 'Паттерны дизайн-менеджмента',\n className = '',\n ...props\n}) => {\n const classes = classnames('logo', className, {\n 'logo--symbol': mode === 'symbol',\n });\n\n return (\n <div\n className={classes}\n aria-label={label}\n {...props}\n >\n <img\n className=\"logo__symbol\"\n src={logoUrls.symbol}\n alt=\"\"\n aria-hidden=\"true\"\n />\n\n {mode === 'full' && (\n <img\n className=\"logo__wordmark\"\n src={logoUrls.wordmark}\n alt=\"\"\n aria-hidden=\"true\"\n />\n )}\n </div>\n );\n};\n\nexport default Logo;","import React from 'react';\nimport './avatar.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface AvatarBaseProps\n extends React.HTMLAttributes<HTMLDivElement> {\n src?: string;\n alt?: string;\n initials?: string;\n}\n\ntype AvatarStaticProps =\n AvatarBaseProps &\n React.HTMLAttributes<HTMLDivElement> & {\n onClick?: undefined;\n };\n\ntype AvatarButtonProps =\n AvatarBaseProps &\n React.ButtonHTMLAttributes<HTMLButtonElement> & {\n onClick: React.MouseEventHandler<HTMLButtonElement>;\n };\n\nexport type AvatarProps =\n | AvatarStaticProps\n | AvatarButtonProps;\n\nconst Avatar: React.FC<AvatarProps> = ({\n src,\n alt = '',\n initials,\n className = '',\n onClick,\n ...props\n}) => {\n const isInteractive = !!onClick;\n\n const classes = classnames('avatar', className, {\n 'avatar--button': isInteractive,\n });\n\n const content = src ? (\n <img\n className=\"avatar__image\"\n src={src}\n alt={alt}\n />\n ) : (\n <span className=\"avatar__initials\">\n {initials}\n </span>\n );\n\n if (isInteractive) {\n return (\n <button\n className={classes}\n type=\"button\"\n aria-label={props['aria-label'] ?? alt}\n onClick={onClick}\n {...props as React.ButtonHTMLAttributes<HTMLButtonElement>}\n >\n {content}\n </button>\n );\n }\n\n return (\n <div\n className={classes}\n aria-label={alt}\n {...props as React.HTMLAttributes<HTMLDivElement>}\n >\n {content}\n </div>\n );\n};\n\nexport default Avatar;","import React from 'react';\nimport './header.css';\nimport { classnames } from '../../components/helpers/classnames';\n\nexport interface HeaderProps\n extends React.HTMLAttributes<HTMLElement> {\n logo?: React.ReactNode;\n menu?: React.ReactNode;\n avatar?: React.ReactNode;\n}\n\nconst Header: React.FC<HeaderProps> = ({\n logo,\n menu,\n avatar,\n className = '',\n children,\n ...props\n}) => {\n const classes = classnames('header', className, {});\n\n return (\n <header\n className=\"header\"\n {...props}\n >\n <div className=\"header__logo\">\n {logo}\n </div>\n\n {(menu || children) && (\n <div className=\"header__menu\">\n {menu || children}\n </div>\n )}\n\n <div className=\"header__avatar\">\n {avatar}\n </div>\n </header>\n );\n};\n\nexport default Header;","import React from 'react';\nimport './footer.css';\n\nexport interface FooterProps extends React.HTMLAttributes<HTMLElement> {\n copyright?: React.ReactNode;\n links?: React.ReactNode;\n secondaryLinks?: React.ReactNode;\n}\n\nconst Footer: React.FC<FooterProps> = ({\n copyright,\n links,\n secondaryLinks,\n children,\n ...props\n}) => {\n return (\n <footer className=\"footer\" {...props}>\n {copyright && (\n <div className=\"footer__copyright\">\n {copyright}\n </div>\n )}\n\n {(links || children) && (\n <div className=\"footer__links\">\n {links || children}\n </div>\n )}\n\n {secondaryLinks && (\n <div className=\"footer__links footer__links--secondary\">\n {secondaryLinks}\n </div>\n )}\n </footer>\n );\n};\n\nexport default Footer;","import React from 'react';\nimport './screen-header.css';\n\nexport interface ScreenHeaderProps\n extends Omit<React.HTMLAttributes<HTMLElement>, 'title'> {\n eyebrow?: React.ReactNode;\n title?: React.ReactNode;\n description?: React.ReactNode;\n tabs?: React.ReactNode;\n}\n\nconst ScreenHeader: React.FC<ScreenHeaderProps> = ({\n eyebrow,\n title,\n description,\n tabs,\n children,\n ...props\n}) => {\n return (\n <section\n className=\"screen-header\"\n {...props}\n >\n <div className=\"screen-header__heading\">\n {eyebrow && (\n <p className=\"screen-header__section\">\n {eyebrow}\n </p>\n )}\n\n {title && (\n <h1 className=\"screen-header__title\">\n {title}\n </h1>\n )}\n\n {description && (\n <p className=\"screen-header__description\">\n {description}\n </p>\n )}\n </div>\n\n {(tabs || children) && (\n <div className=\"screen-header__tabs\">\n {tabs || children}\n </div>\n )}\n </section>\n );\n};\n\nexport default ScreenHeader;","import React from 'react';\nimport './foundation.css';\nimport { classnames } from '../../components/helpers/classnames';\n\nexport type LayoutFoundationWidth =\n | 'narrow'\n | 'default'\n | 'wide'\n | 'full';\n\nexport interface LayoutFoundationProps\n extends React.HTMLAttributes<HTMLDivElement> {\n width?: LayoutFoundationWidth;\n}\n\nconst LayoutFoundation: React.FC<LayoutFoundationProps> = ({\n width = 'default',\n className = '',\n children,\n ...props\n}) => {\n const classes = classnames('layout-foundation', className, {\n 'layout-foundation--narrow': width === 'narrow',\n 'layout-foundation--wide': width === 'wide',\n 'layout-foundation--full': width === 'full',\n });\n\n return (\n <div\n className={classes}\n {...props}\n >\n <div className=\"layout-foundation__grid\">\n {children}\n </div>\n </div>\n );\n};\n\nexport default LayoutFoundation;","import React from 'react';\nimport LayoutFoundation, {\n type LayoutFoundationWidth,\n} from '../foundation';\nimport './base.css';\n\nexport interface LayoutBaseProps\n extends React.HTMLAttributes<HTMLDivElement> {\n width?: LayoutFoundationWidth;\n header?: React.ReactNode;\n footer?: React.ReactNode;\n}\n\nconst LayoutBase: React.FC<LayoutBaseProps> = ({\n width = 'default',\n header,\n footer,\n children,\n className = '',\n ...props\n}) => {\n return (\n <LayoutFoundation\n width={width}\n className={className}\n {...props}\n >\n {header && (\n <div className=\"layout-base__header\">\n {header}\n </div>\n )}\n\n <main className=\"layout-base__main\">\n {children}\n </main>\n\n {footer && (\n <div className=\"layout-base__footer\">\n {footer}\n </div>\n )}\n </LayoutFoundation>\n );\n};\n\nexport default LayoutBase;","import React from 'react';\nimport LayoutFoundation, {\n type LayoutFoundationWidth,\n} from '../foundation';\nimport './sidebar.css';\n\nexport interface LayoutSidebarProps\n extends React.HTMLAttributes<HTMLDivElement> {\n width?: LayoutFoundationWidth;\n header?: React.ReactNode;\n screenHeader?: React.ReactNode;\n sidebar?: React.ReactNode;\n footer?: React.ReactNode;\n}\n\nconst LayoutSidebar: React.FC<LayoutSidebarProps> = ({\n width = 'wide',\n header,\n screenHeader,\n sidebar,\n footer,\n children,\n className = '',\n ...props\n}) => {\n return (\n <LayoutFoundation\n width={width}\n className={className}\n {...props}\n >\n {header && (\n <div className=\"layout-sidebar__header\">\n {header}\n </div>\n )}\n\n {screenHeader && (\n <div className=\"layout-sidebar__screen-header\">\n {screenHeader}\n </div>\n )}\n\n <div className=\"layout-sidebar__body\">\n <main className=\"layout-sidebar__main\">\n {children}\n </main>\n\n {sidebar && (\n <aside className=\"layout-sidebar__side\">\n {sidebar}\n </aside>\n )}\n </div>\n\n {footer && (\n <div className=\"layout-sidebar__footer\">\n {footer}\n </div>\n )}\n </LayoutFoundation>\n );\n};\n\nexport default LayoutSidebar;","import React from 'react';\nimport './attach.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface AttachItem {\n id: string;\n name: string;\n url: string;\n mimeType?: string;\n sizeBytes?: number;\n}\n\nexport interface AttachProps\n extends React.HTMLAttributes<HTMLDivElement> {\n items: AttachItem[];\n onRemove?: (id: string) => void;\n removeLabel?: string;\n emptyLabel?: string;\n}\n\nfunction isImageAttach(item: AttachItem) {\n return item.mimeType?.startsWith('image/') ?? false;\n}\n\nfunction formatFileSize(sizeBytes?: number) {\n if (sizeBytes === undefined) {\n return 'Size unknown';\n }\n\n if (sizeBytes < 1024) {\n return `${sizeBytes} B`;\n }\n\n if (sizeBytes < 1024 * 1024) {\n return `${Math.round(sizeBytes / 1024)} KB`;\n }\n\n return `${(sizeBytes / 1024 / 1024).toFixed(1)} MB`;\n}\n\nconst Attach: React.FC<AttachProps> = ({\n items,\n onRemove,\n removeLabel = 'Удалить',\n emptyLabel,\n className = '',\n ...props\n}) => {\n if (items.length === 0) {\n return null;\n }\n\n const classes = classnames('attach', className, {});\n\n return (\n <div\n className={classes}\n {...props}\n >\n <ul className=\"attach__list\">\n {items.map((item) => {\n const isImage = isImageAttach(item);\n\n return (\n <li\n key={item.id}\n className=\"attach__item\"\n >\n <a\n className=\"attach__link\"\n href={item.url}\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n {isImage ? (\n <img\n className=\"attach__preview\"\n src={item.url}\n alt={item.name}\n />\n ) : (\n <span className=\"attach__file\">\n <span className=\"attach__name\">\n {item.name}\n </span>\n\n <span className=\"attach__size\">\n {formatFileSize(item.sizeBytes)}\n </span>\n </span>\n )}\n </a>\n\n {onRemove && (\n <button\n className=\"attach__remove\"\n type=\"button\"\n aria-label={`${removeLabel} файл ${item.name}`}\n onClick={() => onRemove(item.id)}\n >\n {removeLabel}\n </button>\n )}\n </li>\n );\n })}\n </ul>\n </div>\n );\n};\n\nexport default Attach;"]}
package/index.d.cts CHANGED
@@ -200,4 +200,4 @@ interface AttachProps extends React.HTMLAttributes<HTMLDivElement> {
200
200
  }
201
201
  declare const Attach: React.FC<AttachProps>;
202
202
 
203
- export { type AttachItem, type AttachProps, Attach as Attachment, Avatar, type AvatarProps, Button, ButtonIcon, type ButtonIconProps, type ButtonProps, Card, type CardProps, Checkbox, type CheckboxProps, Dropdown, type DropdownProps, Field, type FieldProps, Input, type InputProps, Logo, type LogoProps, Menu, type MenuProps, Panel, type PanelProps, ProgressBar, type ProgressBarProps, Radio, type RadioProps, RichEdit, type RichEditProps, Search, type SearchProps, Select, type SelectProps, Tabs, type TabsProps, Tag, type TagProps, Textarea, type TextareaProps, Video, type VideoProps };
203
+ export { Attach, type AttachItem, type AttachProps, Avatar, type AvatarProps, Button, ButtonIcon, type ButtonIconProps, type ButtonProps, Card, type CardProps, Checkbox, type CheckboxProps, Dropdown, type DropdownProps, Field, type FieldProps, Input, type InputProps, Logo, type LogoProps, Menu, type MenuProps, Panel, type PanelProps, ProgressBar, type ProgressBarProps, Radio, type RadioProps, RichEdit, type RichEditProps, Search, type SearchProps, Select, type SelectProps, Tabs, type TabsProps, Tag, type TagProps, Textarea, type TextareaProps, Video, type VideoProps };
package/index.d.ts CHANGED
@@ -200,4 +200,4 @@ interface AttachProps extends React.HTMLAttributes<HTMLDivElement> {
200
200
  }
201
201
  declare const Attach: React.FC<AttachProps>;
202
202
 
203
- export { type AttachItem, type AttachProps, Attach as Attachment, Avatar, type AvatarProps, Button, ButtonIcon, type ButtonIconProps, type ButtonProps, Card, type CardProps, Checkbox, type CheckboxProps, Dropdown, type DropdownProps, Field, type FieldProps, Input, type InputProps, Logo, type LogoProps, Menu, type MenuProps, Panel, type PanelProps, ProgressBar, type ProgressBarProps, Radio, type RadioProps, RichEdit, type RichEditProps, Search, type SearchProps, Select, type SelectProps, Tabs, type TabsProps, Tag, type TagProps, Textarea, type TextareaProps, Video, type VideoProps };
203
+ export { Attach, type AttachItem, type AttachProps, Avatar, type AvatarProps, Button, ButtonIcon, type ButtonIconProps, type ButtonProps, Card, type CardProps, Checkbox, type CheckboxProps, Dropdown, type DropdownProps, Field, type FieldProps, Input, type InputProps, Logo, type LogoProps, Menu, type MenuProps, Panel, type PanelProps, ProgressBar, type ProgressBarProps, Radio, type RadioProps, RichEdit, type RichEditProps, Search, type SearchProps, Select, type SelectProps, Tabs, type TabsProps, Tag, type TagProps, Textarea, type TextareaProps, Video, type VideoProps };
package/index.js CHANGED
@@ -1296,7 +1296,11 @@ var Panel = ({
1296
1296
  var panel_default = Panel;
1297
1297
 
1298
1298
  // src/lib/resolve-asset.ts
1299
- function resolveAsset(packageAssetPath) {
1299
+ function resolveAsset(packageAssetPath, sourceAssetUrl) {
1300
+ const isSourceRuntime = import.meta.url.includes("/src/");
1301
+ if (isSourceRuntime && sourceAssetUrl) {
1302
+ return sourceAssetUrl;
1303
+ }
1300
1304
  return new URL(
1301
1305
  `./${packageAssetPath}`,
1302
1306
  import.meta.url
@@ -1304,10 +1308,12 @@ function resolveAsset(packageAssetPath) {
1304
1308
  }
1305
1309
  var logoUrls = {
1306
1310
  symbol: resolveAsset(
1307
- "assets/components/logo/logo-symbol.svg"
1311
+ "assets/components/logo/logo-symbol.svg",
1312
+ new URL("./assets/logo-symbol.svg", import.meta.url).toString()
1308
1313
  ),
1309
1314
  wordmark: resolveAsset(
1310
- "assets/components/logo/logo-wordmark.svg"
1315
+ "assets/components/logo/logo-wordmark.svg",
1316
+ new URL("./assets/logo-wordmark.svg", import.meta.url).toString()
1311
1317
  )
1312
1318
  };
1313
1319
  var Logo = ({
@@ -1607,6 +1613,6 @@ var Attach = ({
1607
1613
  };
1608
1614
  var attach_default = Attach;
1609
1615
 
1610
- export { attach_default as Attachment, avatar_default as Avatar, button_default as Button, button_icon_default as ButtonIcon, card_default as Card, checkbox_default as Checkbox, dropdown_default as Dropdown, field_default as Field, footer_default as Footer, header_default as Header, input_default as Input, base_default as LayoutBase, foundation_default as LayoutFoundation, sidebar_default as LayoutSidebar, logo_default as Logo, menu_default as Menu, panel_default as Panel, progressbar_default as ProgressBar, radio_default as Radio, richedit_default as RichEdit, screen_header_default as ScreenHeader, search_default as Search, select_default as Select, tabs_default as Tabs, tag_default as Tag, textarea_default as Textarea, video_default as Video };
1616
+ export { attach_default as Attach, avatar_default as Avatar, button_default as Button, button_icon_default as ButtonIcon, card_default as Card, checkbox_default as Checkbox, dropdown_default as Dropdown, field_default as Field, footer_default as Footer, header_default as Header, input_default as Input, base_default as LayoutBase, foundation_default as LayoutFoundation, sidebar_default as LayoutSidebar, logo_default as Logo, menu_default as Menu, panel_default as Panel, progressbar_default as ProgressBar, radio_default as Radio, richedit_default as RichEdit, screen_header_default as ScreenHeader, search_default as Search, select_default as Select, tabs_default as Tabs, tag_default as Tag, textarea_default as Textarea, video_default as Video };
1611
1617
  //# sourceMappingURL=index.js.map
1612
1618
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/helpers/classnames.ts","../src/icons/assets/arrow-link.tsx","../src/icons/assets/arrow-right.tsx","../src/icons/assets/chevron-right.tsx","../src/icons/assets/fullscreen.tsx","../src/icons/assets/pause.tsx","../src/icons/assets/play.tsx","../src/icons/assets/settings.tsx","../src/icons/assets/sound.tsx","../src/icons/assets/sound-off.tsx","../src/icons/manifest.ts","../src/icons/registry.ts","../src/tokens/helpers/create-scale-tokens.ts","../src/tokens/scales/size.ts","../src/icons/icon.tsx","../src/components/button/button.tsx","../src/components/button-icon/button-icon.tsx","../src/components/input/input.tsx","../src/components/textarea/textarea.tsx","../src/components/select/select.tsx","../src/components/dropdown/dropdown.tsx","../src/components/checkbox/checkbox.tsx","../src/components/radio/radio.tsx","../src/components/field/field.tsx","../src/components/menu/menu.tsx","../src/components/tabs/tabs.tsx","../src/components/progressbar/progressbar.tsx","../src/components/video/video.tsx","../src/components/search/search.tsx","../src/components/richedit/richedit.tsx","../src/components/tag/tag.tsx","../src/components/card/card.tsx","../src/components/panel/panel.tsx","../src/lib/resolve-asset.ts","../src/components/logo/logo.tsx","../src/components/avatar/avatar.tsx","../src/patterns/header/header.tsx","../src/patterns/footer/footer.tsx","../src/patterns/screen-header/screen-header.tsx","../src/layouts/foundation/foundation.tsx","../src/layouts/base/base.tsx","../src/layouts/sidebar/sidebar.tsx","../src/components/attach/attach.tsx"],"names":["jsx","cloneElement","jsxs","React","ratio","useRef","getClampedValue","useState","useEffect"],"mappings":"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","file":"index.js","sourcesContent":["type ClassValue = string | undefined | null | false;\n\nexport function classnames(\n ...args: (ClassValue | Record<string, boolean | undefined | null>)[]\n) {\n const classes: string[] = [];\n\n args.forEach(arg => {\n if (!arg) return;\n\n if (typeof arg === 'string') {\n classes.push(arg);\n return;\n }\n\n for (const key in arg) {\n if (arg[key]) {\n classes.push(key);\n }\n }\n });\n\n return classes.join(' ');\n}","import type { IconGlyph } from '../types';\n\nexport const arrowLink: IconGlyph = {\n xs: <path d=\"M4 8H10M8 4H12V8M12 4L7 9\" />,\n s: <path d=\"M5 10H12M10 5H15V10M15 5L9 11\" />,\n m: <path d=\"M6 12H14M12 6H18V12M18 6L11 13\" />,\n l: <path d=\"M8 16H19M16 8H24V16M24 8L15 17\" />,\n};","import type { IconGlyph } from '../types';\n\nexport const arrowRight: IconGlyph = {\n xs: <path d=\"M4 8H12M9 5L12 8L9 11\" />,\n s: <path d=\"M5 10H15M11 6L15 10L11 14\" />,\n m: <path d=\"M6 12H18M13 7L18 12L13 17\" />,\n l: <path d=\"M8 16H24M18 10L24 16L18 22\" />,\n};","import type { IconGlyph } from '../types';\n\nexport const chevronRight: IconGlyph = {\n xs: <path d=\"M6 4.5L9.5 8L6 11.5\" />,\n s: <path d=\"M8 5.5L12.5 10L8 14.5\" />,\n m: <path d=\"M9.5 6.5L15 12L9.5 17.5\" />,\n l: <path d=\"M13 9L20 16L13 23\" />,\n};","import type { IconGlyph } from '../types';\n\nexport const fullscreen: IconGlyph = {\n xs: <path d=\"M5 7V5H7M11 5H13V7M13 11V13H11M7 13H5V11\" />,\n s: <path d=\"M6 8V6H8M14 6H16V8M16 14V16H14M8 16H6V14\" />,\n m: <path d=\"M7 10V7H10M14 7H17V10M17 14V17H14M10 17H7V14\" />,\n l: <path d=\"M9 13V9H13M19 9H23V13M23 19V23H19M13 23H9V19\" />,\n};","import type { IconGlyph } from '../types';\n\nexport const pause: IconGlyph = {\n xs: <path d=\"M5 4V12M11 4V12\" />,\n s: <path d=\"M7 5V15M13 5V15\" />,\n m: <path d=\"M9 6V18M15 6V18\" />,\n l: <path d=\"M11 8V24M21 8V24\" />,\n};","import type { IconGlyph } from '../types';\n\nexport const play: IconGlyph = {\n xs: <path d=\"M6 5.5L11 8L6 10.5Z\" />,\n s: <path d=\"M7 6.5L13.5 10L7 13.5Z\" />,\n m: <path d=\"M8 7L16 12L8 17Z\" />,\n l: <path d=\"M11 9L21 16L11 23Z\" />,\n};","import type { IconGlyph } from '../types';\n\nexport const settings: IconGlyph = {\n xs: <path d=\"M8 5V3.5M8 12.5V11M5.9 5.9L4.8 4.8M11.2 11.2L10.1 10.1M5 8H3.5M12.5 8H11M5.9 10.1L4.8 11.2M11.2 4.8L10.1 5.9M8 6.5A1.5 1.5 0 1 1 8 9.5A1.5 1.5 0 0 1 8 6.5Z\" />,\n s: <path d=\"M10 6V4M10 16V14M7.2 7.2L5.8 5.8M14.2 14.2L12.8 12.8M6 10H4M16 10H14M7.2 12.8L5.8 14.2M14.2 5.8L12.8 7.2M10 8A2 2 0 1 1 10 12A2 2 0 0 1 10 8Z\" />,\n m: <path d=\"M12 7V4M12 20V17M8.5 8.5L6.4 6.4M17.6 17.6L15.5 15.5M7 12H4M20 12H17M8.5 15.5L6.4 17.6M17.6 6.4L15.5 8.5M12 9A3 3 0 1 1 12 15A3 3 0 0 1 12 9Z\" />,\n l: <path d=\"M16 9V5M16 27V23M11 11L8 8M24 24L21 21M9 16H5M27 16H23M11 21L8 24M24 8L21 11M16 12A4 4 0 1 1 16 20A4 4 0 0 1 16 12Z\" />,\n};","import type { IconGlyph } from '../types';\n\nexport const sound: IconGlyph = {\n xs: <path d=\"M3.5 9.5H6L9.5 12.5V3.5L6 6.5H3.5V9.5ZM11 6.5C11.7 7.2 11.7 8.8 11 9.5\" />,\n s: <path d=\"M4.5 12H7.5L12 16V4L7.5 8H4.5V12ZM14 7.5C15 8.5 15 11.5 14 12.5\" />,\n m: <path d=\"M5.5 14.5H9L15 19V5L9 9.5H5.5V14.5ZM17 8.5C18.5 10 18.5 14 17 15.5\" />,\n l: <path d=\"M7 19H12L20 25V7L12 13H7V19ZM23 11C25 13 25 19 23 21\" />,\n};","import type { IconGlyph } from '../types';\n\nexport const soundOff: IconGlyph = {\n xs: <path d=\"M3.5 9.5H6L9.5 12.5V3.5L6 6.5H3.5V9.5ZM11 6.5L13 8.5M13 6.5L11 8.5\" />,\n s: <path d=\"M4.5 12H7.5L12 16V4L7.5 8H4.5V12ZM14 8L17 11M17 8L14 11\" />,\n m: <path d=\"M5.5 14.5H9L15 19V5L9 9.5H5.5V14.5ZM17 9L21 13M21 9L17 13\" />,\n l: <path d=\"M7 19H12L20 25V7L12 13H7V19ZM23 12L27 16M27 12L23 16\" />,\n};","import { arrowLink } from './assets/arrow-link';\nimport { arrowRight } from './assets/arrow-right';\nimport { chevronRight } from './assets/chevron-right';\nimport { fullscreen } from './assets/fullscreen';\nimport { pause } from './assets/pause';\nimport { play } from './assets/play';\nimport { settings } from './assets/settings';\nimport { sound } from './assets/sound';\nimport { soundOff } from './assets/sound-off';\n\nexport const iconManifest = {\n 'arrow-link': {\n glyph: arrowLink,\n category: 'navigation',\n tags: ['arrow', 'link', 'external'],\n },\n 'arrow-right': {\n glyph: arrowRight,\n category: 'navigation',\n tags: ['arrow', 'right', 'next'],\n },\n 'chevron-right': {\n glyph: chevronRight,\n category: 'navigation',\n tags: ['chevron', 'right', 'next'],\n },\n fullscreen: {\n glyph: fullscreen,\n category: 'media',\n tags: ['fullscreen', 'expand', 'player'],\n },\n pause: {\n glyph: pause,\n category: 'media',\n tags: ['pause', 'video', 'player'],\n },\n play: {\n glyph: play,\n category: 'media',\n tags: ['play', 'video', 'player'],\n },\n settings: {\n glyph: settings,\n category: 'interface',\n tags: ['settings', 'preferences', 'controls'],\n },\n sound: {\n glyph: sound,\n category: 'media',\n tags: ['sound', 'volume', 'audio'],\n },\n 'sound-off': {\n glyph: soundOff,\n category: 'media',\n tags: ['sound', 'volume', 'audio', 'mute'],\n },\n} as const;","import { iconManifest } from './manifest';\nimport type { IconGlyph, IconName } from './types';\n\nexport const iconRegistry = Object.fromEntries(\n Object.entries(iconManifest).map(([name, item]) => [name, item.glyph]),\n) as Record<IconName, IconGlyph>;","import type { TokenDefinition } from '../schema';\n\ntype ScaleValue = number | string | boolean;\n\ntype TokenType = 'float' | 'string' | 'boolean';\n\nfunction detectTokenType(value: ScaleValue): TokenType {\n if (typeof value === 'number') return 'float';\n if (typeof value === 'string') return 'string';\n return 'boolean';\n}\n\nexport function createScaleTokens(\n tokenPathPrefix: string,\n values: Record<string, ScaleValue>\n): TokenDefinition[] {\n return Object.entries(values).map(([step, value]) => ({\n collection: 'scales',\n name: `${tokenPathPrefix}/${step}`,\n type: detectTokenType(value),\n values: {\n value,\n },\n })) as TokenDefinition[];\n}","import { createScaleTokens } from '../helpers/create-scale-tokens';\nimport type { TokenDefinition } from '../schema';\n\nconst sizeX = {\n \"0\": 0,\n \"025\": 1,\n \"05\": 2,\n \"1\": 4,\n \"2\": 8,\n \"3\": 12,\n \"4\": 16,\n \"5\": 20,\n \"6\": 24,\n \"8\": 32,\n \"10\": 40,\n \"12\": 48,\n} as const;\n\nconst sizeGrid = {\n s: 12,\n m: 20,\n l: 40,\n xl: 60,\n xxl: 80,\n xxxl: 100,\n} as const;\n\nexport const sizeIcon = {\n xs: 16,\n s: 20,\n m: 24,\n l: 32,\n} as const;\n\nexport const scalesSize: TokenDefinition[] = [\n ...createScaleTokens('size/x', sizeX),\n ...createScaleTokens('size/grid', sizeGrid),\n ...createScaleTokens('size/icon', sizeIcon),\n];","import React, { type FC } from 'react';\nimport './icon.css';\nimport { iconRegistry } from './registry';\nimport type { IconName, IconSize } from './types';\nimport { sizeIcon } from '../tokens/scales/size';\n\n/*import {\n sizeIconXS,\n sizeIconS,\n sizeIconM,\n sizeIconL,\n} from '../tokens/scales/size';*/\n\nexport interface IconProps\n extends Omit<React.SVGAttributes<SVGSVGElement>, 'size'> {\n name: IconName;\n size?: IconSize;\n}\n\n/*const iconSizeMap: Record<IconSize, number> = {\n xs: sizeIconXS,\n s: sizeIconS,\n m: sizeIconM,\n l: sizeIconL,\n};*/\n\nconst iconSizeMap: Record<IconSize, number> = sizeIcon;\n\nconst Icon: FC<IconProps> = ({\n name,\n size: iconSize = 'm',\n className,\n ...props\n}) => {\n const glyph = iconRegistry[name];\n const size = iconSizeMap[iconSize];\n const viewBox = `0 0 ${size} ${size}`;\n const classes = ['icon', className].filter(Boolean).join(' ');\n\n return (\n <svg\n className={classes}\n width={size}\n height={size}\n viewBox={viewBox}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n stroke=\"currentColor\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n {...props}\n >\n {glyph[iconSize]}\n </svg>\n );\n};\n\nexport default Icon;","import React, {\n cloneElement,\n isValidElement,\n type ReactElement,\n} from 'react';\nimport './button.css';\nimport { classnames } from '../helpers/classnames';\nimport Icon, { type IconProps } from '../../icons/icon';\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n state?: 'default' | 'primary';\n icon?: React.ReactNode;\n}\n\nconst Button: React.FC<ButtonProps> = ({\n state = 'default',\n icon,\n className = '',\n disabled = false,\n children,\n ...props\n}) => {\n const isIconOnly = !!icon && !children;\n\n const classes = classnames('button', className, {\n 'button--primary': state === 'primary',\n 'button--disabled': disabled,\n 'button--icon-only': isIconOnly,\n });\n\n let resolvedIcon = icon;\n\n if (isValidElement(icon) && icon.type === Icon) {\n const iconElement = icon as ReactElement<IconProps>;\n\n resolvedIcon = cloneElement(iconElement, {\n size: iconElement.props.size ?? 's',\n className: classnames('button__icon', iconElement.props.className),\n 'aria-hidden': iconElement.props['aria-hidden'] ?? true,\n focusable: iconElement.props.focusable ?? false,\n });\n }\n\n return (\n <button\n className={classes}\n disabled={disabled}\n {...props}\n >\n {resolvedIcon}\n {children}\n </button>\n );\n};\n\nexport default Button;","import React from 'react';\nimport './button-icon.css';\nimport { classnames } from '../helpers/classnames';\nimport Icon from '../../icons/icon';\nimport type { IconName } from '../../icons/types';\n\nexport interface ButtonIconProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n icon: IconName;\n state?: 'default' | 'disabled';\n label: string;\n}\n\nconst ButtonIcon: React.FC<ButtonIconProps> = ({\n state = 'default',\n icon,\n label,\n className = '',\n disabled = false,\n ...props\n}) => {\n const isDisabled =\n disabled ||\n state === 'disabled';\n\n const classes = classnames('button-icon', className, {\n 'button-icon--disabled': isDisabled,\n });\n\n return (\n <button\n className={classes}\n disabled={isDisabled}\n aria-label={label}\n title={label}\n {...props}\n >\n <Icon\n name={icon}\n className=\"button-icon__icon\"\n aria-hidden\n focusable={false}\n />\n </button>\n );\n};\n\nexport default ButtonIcon;","import React from 'react';\n//import './input.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n state?: 'default' | 'error' | 'success';\n}\n\nconst Input: React.FC<InputProps> = ({\n state = 'default',\n className = '',\n disabled = false,\n ...props\n}) => {\n const classes = classnames('input', className, {\n error: state === 'error',\n success: state === 'success',\n });\n\n return (\n <input\n className={classes}\n disabled={disabled}\n {...props}\n />\n );\n};\n\nexport default Input;","import React from 'react';\n// import './textarea.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n state?: 'default' | 'error' | 'success';\n}\n\nconst Textarea: React.FC<TextareaProps> = ({\n state = 'default',\n className = '',\n disabled = false,\n ...props\n}) => {\n const classes = classnames('textarea', className, {\n error: state === 'error',\n success: state === 'success',\n });\n\n return (\n <textarea\n className={classes}\n disabled={disabled}\n {...props}\n />\n );\n};\n\nexport default Textarea;","import React from 'react';\n//import './select.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface SelectProps\n extends React.SelectHTMLAttributes<HTMLSelectElement> {\n state?: 'default' | 'error' | 'success';\n}\n\nconst Select: React.FC<SelectProps> = ({\n state = 'default',\n className = '',\n disabled = false,\n children,\n ...props\n}) => {\n const classes = classnames('select', className, {\n error: state === 'error',\n success: state === 'success',\n });\n\n return (\n <div className={classes}>\n <select\n className=\"select__field\"\n disabled={disabled}\n {...props}\n >\n {children}\n </select>\n </div>\n );\n};\n\nexport default Select;","import React, {\n cloneElement,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport './dropdown.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface DropdownOption {\n value: string;\n label: string;\n disabled?: boolean;\n}\n\ntype DropdownTriggerProps = {\n className?: string;\n onClick?: (event: React.MouseEvent) => void;\n 'aria-haspopup'?: string;\n 'aria-expanded'?: boolean;\n};\n\ntype DropdownTriggerElement =\n React.ReactElement<DropdownTriggerProps>;\n\nexport interface DropdownProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {\n options: DropdownOption[];\n value?: string;\n defaultValue?: string;\n label?: string;\n align?: 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end';\n trigger: DropdownTriggerElement;\n onChange?: (value: string) => void;\n}\n\nconst Dropdown: React.FC<DropdownProps> = ({\n options,\n value,\n defaultValue,\n label = 'Dropdown',\n align = 'bottom-start',\n trigger,\n onChange,\n className = '',\n ...props\n}) => {\n const dropdownRef = useRef<HTMLDivElement>(null);\n\n const [isOpen, setIsOpen] = useState(false);\n const [internalValue, setInternalValue] = useState(defaultValue);\n\n const selectedValue =\n value ?? internalValue;\n\n const classes = classnames('dropdown', className, {\n 'dropdown--open': isOpen,\n 'dropdown--top-start': align === 'top-start',\n 'dropdown--top-end': align === 'top-end',\n 'dropdown--bottom-start': align === 'bottom-start',\n 'dropdown--bottom-end': align === 'bottom-end',\n });\n\n const triggerElement =\n trigger as DropdownTriggerElement;\n\n const triggerClasses = classnames(\n 'dropdown__trigger',\n triggerElement.props.className,\n );\n\n const resolvedTrigger = cloneElement(triggerElement, {\n className: triggerClasses,\n 'aria-haspopup': 'menu',\n 'aria-expanded': isOpen,\n onClick: (event: React.MouseEvent) => {\n triggerElement.props.onClick?.(event);\n\n setIsOpen((currentValue) => !currentValue);\n },\n });\n\n const handleOptionClick = (option: DropdownOption) => {\n if (option.disabled) {\n return;\n }\n\n if (value === undefined) {\n setInternalValue(option.value);\n }\n\n onChange?.(option.value);\n setIsOpen(false);\n };\n\n useEffect(() => {\n if (!isOpen) {\n return;\n }\n\n const handleDocumentClick = (event: MouseEvent) => {\n const dropdown = dropdownRef.current;\n\n if (!dropdown || dropdown.contains(event.target as Node)) {\n return;\n }\n\n setIsOpen(false);\n };\n\n const handleDocumentKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n setIsOpen(false);\n }\n };\n\n document.addEventListener('mousedown', handleDocumentClick);\n document.addEventListener('keydown', handleDocumentKeyDown);\n\n return () => {\n document.removeEventListener('mousedown', handleDocumentClick);\n document.removeEventListener('keydown', handleDocumentKeyDown);\n };\n }, [isOpen]);\n\n return (\n <div\n ref={dropdownRef}\n className={classes}\n {...props}\n >\n {resolvedTrigger}\n\n {isOpen && (\n <div\n className=\"dropdown__menu\"\n role=\"menu\"\n aria-label={label}\n >\n {options.map((option) => {\n const isSelected =\n option.value === selectedValue;\n\n const itemClasses = classnames('dropdown__item', {\n 'dropdown__item--selected': isSelected,\n 'dropdown__item--disabled': option.disabled,\n });\n\n return (\n <button\n key={option.value}\n className={itemClasses}\n type=\"button\"\n role=\"menuitemradio\"\n aria-checked={isSelected}\n aria-disabled={option.disabled}\n disabled={option.disabled}\n onClick={() => handleOptionClick(option)}\n >\n {option.label}\n </button>\n );\n })}\n </div>\n )}\n </div>\n );\n};\n\nexport default Dropdown;","import React from 'react';\n//import './checkbox.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface CheckboxProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: React.ReactNode;\n}\n\nconst Checkbox: React.FC<CheckboxProps> = ({\n label,\n className = '',\n disabled = false,\n ...props\n}) => {\n const classes = classnames(\n 'checkbox',\n className,\n {\n 'checkbox--disabled': disabled,\n }\n );\n\n return (\n <label className={classes}>\n <input\n className=\"checkbox__input\"\n type=\"checkbox\"\n disabled={disabled}\n {...props}\n />\n {label && <span className=\"checkbox__label\">{label}</span>}\n </label>\n );\n};\n\nexport default Checkbox;","import React from 'react';\n//import './radio.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface RadioProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: React.ReactNode;\n}\n\nconst Radio: React.FC<RadioProps> = ({\n label,\n className = '',\n disabled = false,\n ...props\n}) => {\n const classes = classnames(\n 'radio',\n className,\n {\n 'radio--disabled': disabled,\n }\n );\n\n return (\n <label className={classes}>\n <input\n className=\"radio__input\"\n type=\"radio\"\n disabled={disabled}\n {...props}\n />\n {label && <span className=\"radio__label\">{label}</span>}\n </label>\n );\n};\n\nexport default Radio;","import React from 'react';\n//import './field.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface FieldProps {\n label?: React.ReactNode;\n hint?: React.ReactNode;\n error?: React.ReactNode;\n required?: boolean;\n disabled?: boolean;\n htmlFor?: string;\n className?: string;\n children: React.ReactNode;\n}\n\nconst Field: React.FC<FieldProps> = ({\n label,\n hint,\n error,\n required = false,\n disabled = false,\n htmlFor,\n className = '',\n children,\n}) => {\n const classes = classnames(\n 'field',\n className,\n {\n 'field--disabled': disabled,\n 'field--error': !!error,\n }\n );\n\n return (\n <div className={classes}>\n {label && (\n <label\n className=\"field__label\"\n htmlFor={htmlFor}\n >\n {label}\n {required && <span className=\"field__required\"> *</span>}\n </label>\n )}\n\n <div className=\"field__control\">\n {children}\n </div>\n\n {error ? (\n <div className=\"field__message field__message--error\">\n {error}\n </div>\n ) : hint ? (\n <div className=\"field__message\">\n {hint}\n </div>\n ) : null}\n </div>\n );\n};\n\nexport default Field;","import React from 'react';\nimport './menu.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface MenuItem {\n value: string;\n label: React.ReactNode;\n href?: string;\n disabled?: boolean;\n}\n\nexport interface MenuProps\n extends React.HTMLAttributes<HTMLElement> {\n items: MenuItem[];\n value?: string;\n defaultValue?: string;\n label?: string;\n onValueChange?: (value: string) => void;\n}\n\nfunction getInitialValue(\n value: string | undefined,\n defaultValue: string | undefined,\n items: MenuItem[],\n) {\n if (value !== undefined) {\n return value;\n }\n\n if (defaultValue !== undefined) {\n return defaultValue;\n }\n\n return items[0]?.value;\n}\n\nconst Menu: React.FC<MenuProps> = ({\n items,\n value,\n defaultValue,\n label = 'Menu',\n className = '',\n onValueChange,\n ...props\n}) => {\n const [internalValue, setInternalValue] = React.useState(\n getInitialValue(value, defaultValue, items),\n );\n\n const currentValue = value ?? internalValue;\n\n React.useEffect(() => {\n if (value !== undefined) {\n return;\n }\n\n setInternalValue(getInitialValue(value, defaultValue, items));\n }, [value, defaultValue, items]);\n\n const handleItemClick = (\n itemValue: string,\n disabled?: boolean,\n ) => {\n if (disabled) {\n return;\n }\n\n if (value === undefined) {\n setInternalValue(itemValue);\n }\n\n onValueChange?.(itemValue);\n };\n\n const classes = classnames('menu', className, {});\n\n return (\n <nav\n className={classes}\n aria-label={label}\n {...props}\n >\n <ul className=\"menu__list\">\n {items.map((item) => {\n const isActive = item.value === currentValue;\n\n const itemClasses = classnames('menu__control', {\n 'menu__control--active': isActive,\n 'menu__control--disabled': item.disabled,\n });\n\n return (\n <li\n key={item.value}\n className=\"menu__item\"\n >\n {item.href ? (\n <a\n className={itemClasses}\n href={item.href}\n aria-current={isActive ? 'page' : undefined}\n aria-disabled={item.disabled || undefined}\n onClick={(event) => {\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n\n handleItemClick(item.value);\n }}\n >\n {item.label}\n </a>\n ) : (\n <button\n className={itemClasses}\n type=\"button\"\n disabled={item.disabled}\n onClick={() => handleItemClick(\n item.value,\n item.disabled,\n )}\n >\n {item.label}\n </button>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n );\n};\n\nexport default Menu;","import React from 'react';\nimport { classnames } from '../helpers/classnames';\nimport './tabs.css';\n\nexport interface TabsProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst Tabs: React.FC<TabsProps> = ({\n className = '',\n children,\n ...props\n}) => {\n const classes = classnames('tabs', className);\n\n return (\n <div className={classes} {...props}>\n {children}\n </div>\n );\n};\n\nexport default Tabs;","import React, { useRef } from 'react';\nimport './progressbar.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface ProgressBarProps\n extends React.HTMLAttributes<HTMLDivElement> {\n mode?: 'player' | 'diagram' | 'level';\n value?: number;\n buffered?: number;\n max?: number;\n orientation?: 'horizontal' | 'vertical';\n step?: number;\n interactive?: boolean;\n label?: string;\n onValueChange?: (value: number) => void;\n onValueCommit?: (value: number) => void;\n}\n\nfunction getClampedValue(\n value: number,\n max: number,\n) {\n return Math.min(\n Math.max(value, 0),\n max,\n );\n}\n\nfunction getPercent(\n value: number,\n max: number,\n) {\n if (max <= 0) {\n return 0;\n }\n\n return (\n getClampedValue(value, max) /\n max\n ) * 100;\n}\n\nfunction getValueFromPointer(\n event: React.PointerEvent<HTMLDivElement>,\n track: HTMLDivElement,\n max: number,\n isVertical: boolean,\n) {\n const rect = track.getBoundingClientRect();\n\n if (isVertical) {\n const y =\n rect.bottom -\n event.clientY;\n\n const ratio =\n y / rect.height;\n\n return getClampedValue(\n ratio * max,\n max,\n );\n }\n\n const x =\n event.clientX -\n rect.left;\n\n const ratio =\n x / rect.width;\n\n return getClampedValue(\n ratio * max,\n max,\n );\n}\n\nfunction getNextKeyboardValue(\n key: string,\n value: number,\n max: number,\n step: number,\n) {\n if (\n key === 'ArrowRight' ||\n key === 'ArrowUp'\n ) {\n return getClampedValue(\n value + step,\n max,\n );\n }\n\n if (\n key === 'ArrowLeft' ||\n key === 'ArrowDown'\n ) {\n return getClampedValue(\n value - step,\n max,\n );\n }\n\n if (key === 'Home') {\n return 0;\n }\n\n if (key === 'End') {\n return max;\n }\n\n return value;\n}\n\nconst ProgressBar: React.FC<\n ProgressBarProps\n> = ({\n mode = 'player',\n value = 0,\n buffered = 0,\n max = 100,\n orientation = 'horizontal',\n step = 1,\n interactive,\n label = 'Progress',\n className = '',\n style,\n onValueChange,\n onValueCommit,\n ...props\n}) => {\n const trackRef =\n useRef<HTMLDivElement>(null);\n\n const safeValue =\n getClampedValue(\n value,\n max,\n );\n\n const valuePercent =\n getPercent(\n value,\n max,\n );\n\n const bufferedPercent =\n getPercent(\n buffered,\n max,\n );\n\n const isInteractive =\n interactive ??\n mode !== 'diagram';\n\n const isVertical =\n orientation ===\n 'vertical' ||\n mode === 'level';\n\n const hasBuffered =\n mode === 'player' &&\n buffered > value;\n\n const hasValue =\n mode === 'diagram';\n\n const classes =\n classnames(\n 'progressbar',\n className,\n {\n 'progressbar--vertical':\n isVertical,\n\n 'progressbar--level':\n mode === 'level',\n\n 'progressbar--interactive':\n isInteractive,\n },\n );\n\n const progressStyle = {\n ...style,\n '--progressbar-value':\n `${valuePercent}%`,\n '--progressbar-buffered':\n `${bufferedPercent}%`,\n '--progressbar-buffered-offset':\n `${valuePercent}%`,\n } as React.CSSProperties;\n\n const updateValueFromPointer = (\n event: React.PointerEvent<HTMLDivElement>,\n shouldCommit = false,\n ) => {\n const track =\n trackRef.current;\n\n if (\n !isInteractive ||\n !track\n ) {\n return;\n }\n\n const nextValue =\n getValueFromPointer(\n event,\n track,\n max,\n isVertical,\n );\n\n onValueChange?.(\n nextValue,\n );\n\n if (shouldCommit) {\n onValueCommit?.(\n nextValue,\n );\n }\n };\n\n const handlePointerDown = (\n event: React.PointerEvent<HTMLDivElement>,\n ) => {\n if (!isInteractive) {\n return;\n }\n\n event.currentTarget\n .setPointerCapture(\n event.pointerId,\n );\n\n updateValueFromPointer(\n event,\n );\n };\n\n const handlePointerMove = (\n event: React.PointerEvent<HTMLDivElement>,\n ) => {\n if (\n !isInteractive ||\n !event.currentTarget\n .hasPointerCapture(\n event.pointerId,\n )\n ) {\n return;\n }\n\n updateValueFromPointer(\n event,\n );\n };\n\n const handlePointerUp = (\n event: React.PointerEvent<HTMLDivElement>,\n ) => {\n if (!isInteractive) {\n return;\n }\n\n updateValueFromPointer(\n event,\n true,\n );\n\n event.currentTarget\n .releasePointerCapture(\n event.pointerId,\n );\n };\n\n const handleKeyDown = (\n event: React.KeyboardEvent<HTMLDivElement>,\n ) => {\n if (!isInteractive) {\n return;\n }\n\n const nextValue =\n getNextKeyboardValue(\n event.key,\n safeValue,\n max,\n step,\n );\n\n if (\n nextValue ===\n safeValue\n ) {\n return;\n }\n\n event.preventDefault();\n\n onValueChange?.(\n nextValue,\n );\n\n onValueCommit?.(\n nextValue,\n );\n };\n\n return (\n <div\n className={classes}\n role={\n isInteractive\n ? 'slider'\n : 'progressbar'\n }\n aria-label={label}\n aria-valuemin={0}\n aria-valuemax={max}\n aria-valuenow={safeValue}\n aria-orientation={\n isInteractive &&\n isVertical\n ? 'vertical'\n : undefined\n }\n tabIndex={\n isInteractive\n ? 0\n : undefined\n }\n style={progressStyle}\n onPointerDown={\n handlePointerDown\n }\n onPointerMove={\n handlePointerMove\n }\n onPointerUp={\n handlePointerUp\n }\n onKeyDown={\n handleKeyDown\n }\n {...props}\n >\n <div\n ref={trackRef}\n className=\"progressbar__track\"\n >\n <div className=\"progressbar__value\" />\n\n {hasBuffered && (\n <div className=\"progressbar__buffered\" />\n )}\n\n {hasValue && (\n <span className=\"progressbar__label\">\n {Math.round(\n valuePercent,\n )}\n %\n </span>\n )}\n </div>\n </div>\n );\n};\n\nexport default ProgressBar;","import React, { useEffect, useRef, useState } from 'react';\nimport Hls from 'hls.js';\n\nimport './video.css';\nimport { classnames } from '../helpers/classnames';\nimport ButtonIcon from '../button-icon';\nimport ProgressBar from '../progressbar';\nimport Dropdown, { type DropdownOption } from '../dropdown';\n\nexport interface VideoQuality {\n value: string;\n label: string;\n src?: string;\n disabled?: boolean;\n}\n\nexport interface VideoProgressState {\n currentTime: number;\n duration: number;\n completed: boolean;\n}\n\nexport interface VideoProps\n extends Omit<React.VideoHTMLAttributes<HTMLVideoElement>, 'controls' | 'src' | 'poster'> {\n src?: string;\n cover?: string;\n qualities?: VideoQuality[];\n defaultQuality?: string;\n label?: string;\n initialVolume?: number;\n initialMuted?: boolean;\n initialTime?: number;\n progressCommitIntervalSec?: number;\n onProgressCommit?: (state: VideoProgressState) => void;\n onQualityChange?: (quality: string) => void;\n}\n\nfunction getClampedValue(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max);\n}\n\nfunction formatTime(value: number) {\n if (!Number.isFinite(value)) return '0:00';\n\n const minutes = Math.floor(value / 60);\n const seconds = Math.floor(value % 60);\n\n return `${minutes}:${String(seconds).padStart(2, '0')}`;\n}\n\nfunction getBufferedEnd(video: HTMLVideoElement) {\n if (video.buffered.length === 0) return 0;\n\n return video.buffered.end(video.buffered.length - 1);\n}\n\nfunction getVideoSource(src: string | undefined, qualities: VideoQuality[], selectedQuality: string) {\n const selectedQualityItem = qualities.find((quality) => quality.value === selectedQuality);\n\n return selectedQualityItem?.src ?? src;\n}\n\nfunction getQualityOptions(qualities: VideoQuality[]): DropdownOption[] {\n return qualities.map((quality) => ({\n value: quality.value,\n label: quality.label,\n disabled: quality.disabled,\n }));\n}\n\nfunction getVideoProgressState(\n video: HTMLVideoElement,\n): VideoProgressState {\n const duration = video.duration || 0;\n const currentTime = video.currentTime || 0;\n\n return {\n currentTime,\n duration,\n\n completed:\n video.ended ||\n (\n duration > 0 &&\n currentTime >= duration * 0.9\n ),\n };\n}\n\nconst defaultQualities: VideoQuality[] = [];\n\nconst Video: React.FC<VideoProps> = ({\n src,\n cover,\n qualities = defaultQualities,\n defaultQuality = '',\n label = 'Video player',\n initialVolume = 1,\n initialMuted = false,\n initialTime = 0,\n progressCommitIntervalSec = 15,\n className = '',\n autoPlay,\n loop,\n muted,\n playsInline = true,\n preload = 'metadata',\n onQualityChange,\n onPlay,\n onPause,\n onEnded,\n onLoadedMetadata,\n onTimeUpdate,\n onProgress,\n onVolumeChange,\n onProgressCommit,\n children,\n ...props\n}) => {\n const videoRef = useRef<HTMLVideoElement>(null);\n\n const [isPlaying, setIsPlaying] = useState(false);\n const [isVolumeOpen, setIsVolumeOpen] = useState(false);\n const [selectedQuality, setSelectedQuality] = useState(defaultQuality);\n const [currentTime, setCurrentTime] = useState(0);\n const [duration, setDuration] = useState(0);\n const [buffered, setBuffered] = useState(0);\n const [volume, setVolume] = useState(initialVolume);\n const [isMuted, setIsMuted] = useState(muted ?? initialMuted);\n\n const hasAppliedInitialTimeRef = useRef(false);\n const lastProgressCommitAtRef = useRef(0);\n\n const videoSrc = getVideoSource(src, qualities, selectedQuality);\n const qualityOptions = getQualityOptions(qualities);\n const hasQualityOptions = qualityOptions.length > 0;\n\n useEffect(() => {\n const video = videoRef.current;\n\n hasAppliedInitialTimeRef.current = false;\n lastProgressCommitAtRef.current = 0;\n\n if (!video || !videoSrc) return;\n\n video.removeAttribute('src');\n video.load();\n\n if (video.canPlayType('application/vnd.apple.mpegurl')) {\n video.src = videoSrc;\n return;\n }\n\n if (!Hls.isSupported()) {\n video.src = videoSrc;\n return;\n }\n\n const hls = new Hls();\n\n hls.on(Hls.Events.ERROR, (_, data) => {\n console.error('HLS error', data);\n });\n\n hls.loadSource(videoSrc);\n hls.attachMedia(video);\n\n return () => {\n hls.destroy();\n };\n }, [videoSrc]);\n\n const hasStarted = currentTime > 0 || isPlaying;\n const hasControls = hasStarted;\n const hasVolume = isVolumeOpen;\n\n const classes = classnames('video', className, {\n 'video--with-controls': hasControls,\n 'video--with-volume': hasVolume,\n });\n\n const syncMediaState = () => {\n const video = videoRef.current;\n\n if (!video) return;\n\n setCurrentTime(video.currentTime);\n setDuration(video.duration || 0);\n setBuffered(getBufferedEnd(video));\n setVolume(video.volume);\n setIsMuted(video.muted);\n setIsPlaying(!video.paused);\n };\n\n const commitProgress = (\n video: HTMLVideoElement,\n ) => {\n if (!onProgressCommit) {\n return;\n }\n\n onProgressCommit(\n getVideoProgressState(video),\n );\n };\n\n const handlePlayToggle = async () => {\n const video = videoRef.current;\n\n if (!video) return;\n\n console.log('play click', {\n paused: video.paused,\n readyState: video.readyState,\n src: video.currentSrc,\n networkState: video.networkState,\n error: video.error,\n });\n\n if (video.paused) {\n try {\n await video.play();\n console.log('play success');\n } catch (error) {\n console.error('play failed', error);\n }\n\n return;\n }\n\n video.pause();\n };\n\n const handleSeek = (nextValue: number) => {\n const video = videoRef.current;\n\n if (!video) return;\n\n video.currentTime = getClampedValue(nextValue, 0, duration);\n setCurrentTime(video.currentTime);\n };\n\n const handleVolumeChange = (nextValue: number) => {\n const video = videoRef.current;\n\n if (!video) return;\n\n const nextVolume = getClampedValue(nextValue, 0, 1);\n\n video.volume = nextVolume;\n video.muted = nextVolume === 0;\n\n setVolume(nextVolume);\n setIsMuted(video.muted);\n };\n\n const handleSoundToggle = () => {\n const video = videoRef.current;\n\n if (!video) return;\n\n video.muted = !video.muted;\n setIsMuted(video.muted);\n };\n\n const handleFullscreen = () => {\n const video = videoRef.current;\n\n if (!video) return;\n\n video.requestFullscreen?.();\n };\n\n const handleQualityChange = (quality: string) => {\n setSelectedQuality(quality);\n onQualityChange?.(quality);\n };\n\n const handleLoadedMetadata = (\n event: React.SyntheticEvent<HTMLVideoElement>,\n ) => {\n const video = event.currentTarget;\n\n if (\n !hasAppliedInitialTimeRef.current &&\n initialTime > 0\n ) {\n video.currentTime = Math.min(\n initialTime,\n video.duration || initialTime,\n );\n\n hasAppliedInitialTimeRef.current = true;\n }\n\n syncMediaState();\n\n onLoadedMetadata?.(event);\n };\n\n const handleTimeUpdate = (\n event: React.SyntheticEvent<HTMLVideoElement>,\n ) => {\n const video = event.currentTarget;\n\n syncMediaState();\n\n if (\n onProgressCommit &&\n (\n video.currentTime -\n lastProgressCommitAtRef.current\n ) >= progressCommitIntervalSec\n ) {\n lastProgressCommitAtRef.current =\n video.currentTime;\n\n commitProgress(video);\n }\n\n onTimeUpdate?.(event);\n };\n\n const handleProgress = (event: React.SyntheticEvent<HTMLVideoElement>) => {\n syncMediaState();\n onProgress?.(event);\n };\n\n const handlePlay = (event: React.SyntheticEvent<HTMLVideoElement>) => {\n setIsPlaying(true);\n onPlay?.(event);\n };\n\n const handlePause = (\n event: React.SyntheticEvent<HTMLVideoElement>,\n ) => {\n setIsPlaying(false);\n\n commitProgress(event.currentTarget);\n\n onPause?.(event);\n };\n\n const handleEnded = (\n event: React.SyntheticEvent<HTMLVideoElement>,\n ) => {\n syncMediaState();\n\n commitProgress(event.currentTarget);\n\n onEnded?.(event);\n };\n\n const handleNativeVolumeChange = (event: React.SyntheticEvent<HTMLVideoElement>) => {\n syncMediaState();\n onVolumeChange?.(event);\n };\n\n return (\n <div className={classes} aria-label={label}>\n <div className=\"video__surface\">\n {cover && !hasStarted ? (\n <img\n className=\"video__cover\"\n src={cover}\n alt=\"\"\n aria-hidden=\"true\"\n />\n ) : null}\n\n <video\n {...props}\n ref={videoRef}\n className=\"video__media\"\n poster={cover}\n autoPlay={autoPlay}\n loop={loop}\n muted={isMuted}\n playsInline={playsInline}\n preload={preload}\n controls={false}\n onLoadedMetadata={handleLoadedMetadata}\n onTimeUpdate={handleTimeUpdate}\n onProgress={handleProgress}\n onPlay={handlePlay}\n onPause={handlePause}\n onEnded={handleEnded}\n onVolumeChange={handleNativeVolumeChange}\n >\n {children}\n </video>\n\n {!hasStarted && (\n <ButtonIcon\n className=\"video__main-action\"\n icon=\"play\"\n label=\"Play video\"\n onClick={handlePlayToggle}\n />\n )}\n </div>\n\n {hasControls && (\n <div className=\"video__controls\">\n <ButtonIcon\n icon={isPlaying ? 'pause' : 'play'}\n label={isPlaying ? 'Pause video' : 'Play video'}\n onClick={handlePlayToggle}\n />\n\n <div className=\"video__time\">{formatTime(currentTime)}</div>\n\n <ProgressBar\n className=\"video__progress\"\n mode=\"player\"\n value={currentTime}\n buffered={buffered}\n max={duration || 1}\n step={1}\n label=\"Video progress\"\n onValueChange={handleSeek}\n />\n\n <ButtonIcon icon=\"fullscreen\" label=\"Fullscreen\" onClick={handleFullscreen} />\n\n <div className=\"video__sound-control\" onMouseLeave={() => setIsVolumeOpen(false)}>\n <ButtonIcon\n icon={isMuted ? 'sound-off' : 'sound'}\n label={isMuted ? 'Unmute video' : 'Mute video'}\n onClick={handleSoundToggle}\n onMouseEnter={() => setIsVolumeOpen(true)}\n onFocus={() => setIsVolumeOpen(true)}\n />\n\n {hasVolume && (\n <div className=\"video__volume\">\n <ProgressBar\n mode=\"level\"\n value={isMuted ? 0 : volume}\n max={1}\n step={0.05}\n label=\"Volume\"\n onValueChange={handleVolumeChange}\n />\n </div>\n )}\n </div>\n\n {hasQualityOptions && (\n <Dropdown\n align=\"top-end\"\n value={selectedQuality}\n options={qualityOptions}\n label=\"Video quality\"\n onChange={handleQualityChange}\n trigger={<ButtonIcon icon=\"settings\" label=\"Video quality\" />}\n />\n )}\n </div>\n )}\n </div>\n );\n};\n\nexport default Video;","import React from 'react';\n//import './search.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface SearchProps\n extends React.HTMLAttributes<HTMLElement> {\n state?: 'default' | 'error' | 'success';\n}\n\nconst Search: React.FC<SearchProps> = ({\n state = 'default',\n className = '',\n children,\n// disabled = false,\n ...props\n}) => {\n const classes = classnames('search', className, {\n error: state === 'error',\n success: state === 'success',\n });\n\n return (\n <div\n className={classes}\n// disabled={disabled}\n {...props}\n >\n {children}\n </div>\n );\n};\n\nexport default Search;","import React from 'react';\nimport './richedit.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface RichEditProps\n extends React.HTMLAttributes<HTMLElement> {\n state?: 'default' | 'error' | 'success';\n}\n\nconst RichEdit: React.FC<RichEditProps> = ({\n state = 'default',\n className = '',\n// disabled = false,\n ...props\n}) => {\n const classes = classnames('richedit', className, {\n error: state === 'error',\n success: state === 'success',\n });\n\n return (\n <div\n className={classes}\n// disabled={disabled}\n {...props}\n />\n );\n};\n\nexport default RichEdit;","import React from 'react';\n//import './tag.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface TagProps\n extends React.HTMLAttributes<HTMLElement> {\n context?: 'success' | 'error' | 'warning';\n}\n\nconst Tag: React.FC<TagProps> = ({\n context = 'success',\n className = '',\n children,\n ...props\n}) => {\n const classes = classnames('tag', className, {\n [`tag--context-${context}`]: Boolean(context),\n });\n\n return (\n <div\n className={classes}\n {...props}\n >\n {children}\n </div>\n );\n};\n\nexport default Tag;\n","import React from 'react';\nimport './card.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface CardProps\n extends React.HTMLAttributes<HTMLElement> {\n state?: 'default';\n heading?: React.ReactNode;\n description?: React.ReactNode;\n actions?: React.ReactNode;\n}\n\nconst Card: React.FC<CardProps> = ({\n state = 'default',\n heading,\n description,\n actions,\n className = '',\n children,\n ...props\n}) => {\n const classes = classnames('card', className, {});\n\n return (\n <section\n className={classes}\n {...props}\n >\n {(heading || description) && (\n <div className=\"card__header\">\n {heading && (\n <h2 className=\"card__heading\">\n {heading}\n </h2>\n )}\n\n {description && (\n <p className=\"card__description\">\n {description}\n </p>\n )}\n </div>\n )}\n\n {children && (\n <div className=\"card__content\">\n {children}\n </div>\n )}\n\n {actions && (\n <div className=\"card__actions\">\n {actions}\n </div>\n )}\n </section>\n );\n};\n\nexport default Card;","import React from 'react';\nimport './panel.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface PanelProps\n extends React.HTMLAttributes<HTMLElement> {\n layout?: 'card' | 'transparent';\n heading?: React.ReactNode;\n description?: React.ReactNode;\n}\n\nconst Panel: React.FC<PanelProps> = ({\n layout = 'card',\n heading,\n description,\n className = '',\n children,\n ...props\n}) => {\n const classes = classnames('panel', className, {\n 'panel--transparent': layout === 'transparent',\n });\n\n return (\n <section\n className={classes}\n {...props}\n >\n {(heading || description) && (\n <div className=\"panel__header\">\n {heading && (\n <h2 className=\"panel__heading\">\n {heading}\n </h2>\n )}\n\n {description && (\n <p className=\"panel__description\">\n {description}\n </p>\n )}\n </div>\n )}\n\n {children && (\n <div className=\"panel__content\">\n {children}\n </div>\n )}\n </section>\n );\n};\n\nexport default Panel;","export function resolveAsset(\n packageAssetPath: string,\n) {\n return new URL(\n `./${packageAssetPath}`,\n import.meta.url,\n ).toString();\n}","import React from 'react';\nimport './logo.css';\nimport { classnames } from '../helpers/classnames';\n\nimport { resolveAsset } from '../../lib/resolve-asset';\n\nexport interface LogoProps\n extends React.HTMLAttributes<HTMLDivElement> {\n mode?: 'full' | 'symbol';\n label?: string;\n}\n\nconst logoUrls = {\n symbol: resolveAsset(\n 'assets/components/logo/logo-symbol.svg',\n ),\n\n wordmark: resolveAsset(\n 'assets/components/logo/logo-wordmark.svg',\n ),\n} as const;\n\nconst Logo: React.FC<LogoProps> = ({\n mode = 'full',\n label = 'Паттерны дизайн-менеджмента',\n className = '',\n ...props\n}) => {\n const classes = classnames('logo', className, {\n 'logo--symbol': mode === 'symbol',\n });\n\n return (\n <div\n className={classes}\n aria-label={label}\n {...props}\n >\n <img\n className=\"logo__symbol\"\n src={logoUrls.symbol}\n alt=\"\"\n aria-hidden=\"true\"\n />\n\n {mode === 'full' && (\n <img\n className=\"logo__wordmark\"\n src={logoUrls.wordmark}\n alt=\"\"\n aria-hidden=\"true\"\n />\n )}\n </div>\n );\n};\n\nexport default Logo;","import React from 'react';\nimport './avatar.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface AvatarBaseProps\n extends React.HTMLAttributes<HTMLDivElement> {\n src?: string;\n alt?: string;\n initials?: string;\n}\n\ntype AvatarStaticProps =\n AvatarBaseProps &\n React.HTMLAttributes<HTMLDivElement> & {\n onClick?: undefined;\n };\n\ntype AvatarButtonProps =\n AvatarBaseProps &\n React.ButtonHTMLAttributes<HTMLButtonElement> & {\n onClick: React.MouseEventHandler<HTMLButtonElement>;\n };\n\nexport type AvatarProps =\n | AvatarStaticProps\n | AvatarButtonProps;\n\nconst Avatar: React.FC<AvatarProps> = ({\n src,\n alt = '',\n initials,\n className = '',\n onClick,\n ...props\n}) => {\n const isInteractive = !!onClick;\n\n const classes = classnames('avatar', className, {\n 'avatar--button': isInteractive,\n });\n\n const content = src ? (\n <img\n className=\"avatar__image\"\n src={src}\n alt={alt}\n />\n ) : (\n <span className=\"avatar__initials\">\n {initials}\n </span>\n );\n\n if (isInteractive) {\n return (\n <button\n className={classes}\n type=\"button\"\n aria-label={props['aria-label'] ?? alt}\n onClick={onClick}\n {...props as React.ButtonHTMLAttributes<HTMLButtonElement>}\n >\n {content}\n </button>\n );\n }\n\n return (\n <div\n className={classes}\n aria-label={alt}\n {...props as React.HTMLAttributes<HTMLDivElement>}\n >\n {content}\n </div>\n );\n};\n\nexport default Avatar;","import React from 'react';\nimport './header.css';\nimport { classnames } from '../../components/helpers/classnames';\n\nexport interface HeaderProps\n extends React.HTMLAttributes<HTMLElement> {\n logo?: React.ReactNode;\n menu?: React.ReactNode;\n avatar?: React.ReactNode;\n}\n\nconst Header: React.FC<HeaderProps> = ({\n logo,\n menu,\n avatar,\n className = '',\n children,\n ...props\n}) => {\n const classes = classnames('header', className, {});\n\n return (\n <header\n className=\"header\"\n {...props}\n >\n <div className=\"header__logo\">\n {logo}\n </div>\n\n {(menu || children) && (\n <div className=\"header__menu\">\n {menu || children}\n </div>\n )}\n\n <div className=\"header__avatar\">\n {avatar}\n </div>\n </header>\n );\n};\n\nexport default Header;","import React from 'react';\nimport './footer.css';\n\nexport interface FooterProps extends React.HTMLAttributes<HTMLElement> {\n copyright?: React.ReactNode;\n links?: React.ReactNode;\n secondaryLinks?: React.ReactNode;\n}\n\nconst Footer: React.FC<FooterProps> = ({\n copyright,\n links,\n secondaryLinks,\n children,\n ...props\n}) => {\n return (\n <footer className=\"footer\" {...props}>\n {copyright && (\n <div className=\"footer__copyright\">\n {copyright}\n </div>\n )}\n\n {(links || children) && (\n <div className=\"footer__links\">\n {links || children}\n </div>\n )}\n\n {secondaryLinks && (\n <div className=\"footer__links footer__links--secondary\">\n {secondaryLinks}\n </div>\n )}\n </footer>\n );\n};\n\nexport default Footer;","import React from 'react';\nimport './screen-header.css';\n\nexport interface ScreenHeaderProps\n extends Omit<React.HTMLAttributes<HTMLElement>, 'title'> {\n eyebrow?: React.ReactNode;\n title?: React.ReactNode;\n description?: React.ReactNode;\n tabs?: React.ReactNode;\n}\n\nconst ScreenHeader: React.FC<ScreenHeaderProps> = ({\n eyebrow,\n title,\n description,\n tabs,\n children,\n ...props\n}) => {\n return (\n <section\n className=\"screen-header\"\n {...props}\n >\n <div className=\"screen-header__heading\">\n {eyebrow && (\n <p className=\"screen-header__section\">\n {eyebrow}\n </p>\n )}\n\n {title && (\n <h1 className=\"screen-header__title\">\n {title}\n </h1>\n )}\n\n {description && (\n <p className=\"screen-header__description\">\n {description}\n </p>\n )}\n </div>\n\n {(tabs || children) && (\n <div className=\"screen-header__tabs\">\n {tabs || children}\n </div>\n )}\n </section>\n );\n};\n\nexport default ScreenHeader;","import React from 'react';\nimport './foundation.css';\nimport { classnames } from '../../components/helpers/classnames';\n\nexport type LayoutFoundationWidth =\n | 'narrow'\n | 'default'\n | 'wide'\n | 'full';\n\nexport interface LayoutFoundationProps\n extends React.HTMLAttributes<HTMLDivElement> {\n width?: LayoutFoundationWidth;\n}\n\nconst LayoutFoundation: React.FC<LayoutFoundationProps> = ({\n width = 'default',\n className = '',\n children,\n ...props\n}) => {\n const classes = classnames('layout-foundation', className, {\n 'layout-foundation--narrow': width === 'narrow',\n 'layout-foundation--wide': width === 'wide',\n 'layout-foundation--full': width === 'full',\n });\n\n return (\n <div\n className={classes}\n {...props}\n >\n <div className=\"layout-foundation__grid\">\n {children}\n </div>\n </div>\n );\n};\n\nexport default LayoutFoundation;","import React from 'react';\nimport LayoutFoundation, {\n type LayoutFoundationWidth,\n} from '../foundation';\nimport './base.css';\n\nexport interface LayoutBaseProps\n extends React.HTMLAttributes<HTMLDivElement> {\n width?: LayoutFoundationWidth;\n header?: React.ReactNode;\n footer?: React.ReactNode;\n}\n\nconst LayoutBase: React.FC<LayoutBaseProps> = ({\n width = 'default',\n header,\n footer,\n children,\n className = '',\n ...props\n}) => {\n return (\n <LayoutFoundation\n width={width}\n className={className}\n {...props}\n >\n {header && (\n <div className=\"layout-base__header\">\n {header}\n </div>\n )}\n\n <main className=\"layout-base__main\">\n {children}\n </main>\n\n {footer && (\n <div className=\"layout-base__footer\">\n {footer}\n </div>\n )}\n </LayoutFoundation>\n );\n};\n\nexport default LayoutBase;","import React from 'react';\nimport LayoutFoundation, {\n type LayoutFoundationWidth,\n} from '../foundation';\nimport './sidebar.css';\n\nexport interface LayoutSidebarProps\n extends React.HTMLAttributes<HTMLDivElement> {\n width?: LayoutFoundationWidth;\n header?: React.ReactNode;\n screenHeader?: React.ReactNode;\n sidebar?: React.ReactNode;\n footer?: React.ReactNode;\n}\n\nconst LayoutSidebar: React.FC<LayoutSidebarProps> = ({\n width = 'wide',\n header,\n screenHeader,\n sidebar,\n footer,\n children,\n className = '',\n ...props\n}) => {\n return (\n <LayoutFoundation\n width={width}\n className={className}\n {...props}\n >\n {header && (\n <div className=\"layout-sidebar__header\">\n {header}\n </div>\n )}\n\n {screenHeader && (\n <div className=\"layout-sidebar__screen-header\">\n {screenHeader}\n </div>\n )}\n\n <div className=\"layout-sidebar__body\">\n <main className=\"layout-sidebar__main\">\n {children}\n </main>\n\n {sidebar && (\n <aside className=\"layout-sidebar__side\">\n {sidebar}\n </aside>\n )}\n </div>\n\n {footer && (\n <div className=\"layout-sidebar__footer\">\n {footer}\n </div>\n )}\n </LayoutFoundation>\n );\n};\n\nexport default LayoutSidebar;","import React from 'react';\nimport './attach.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface AttachItem {\n id: string;\n name: string;\n url: string;\n mimeType?: string;\n sizeBytes?: number;\n}\n\nexport interface AttachProps\n extends React.HTMLAttributes<HTMLDivElement> {\n items: AttachItem[];\n onRemove?: (id: string) => void;\n removeLabel?: string;\n emptyLabel?: string;\n}\n\nfunction isImageAttach(item: AttachItem) {\n return item.mimeType?.startsWith('image/') ?? false;\n}\n\nfunction formatFileSize(sizeBytes?: number) {\n if (sizeBytes === undefined) {\n return 'Size unknown';\n }\n\n if (sizeBytes < 1024) {\n return `${sizeBytes} B`;\n }\n\n if (sizeBytes < 1024 * 1024) {\n return `${Math.round(sizeBytes / 1024)} KB`;\n }\n\n return `${(sizeBytes / 1024 / 1024).toFixed(1)} MB`;\n}\n\nconst Attach: React.FC<AttachProps> = ({\n items,\n onRemove,\n removeLabel = 'Удалить',\n emptyLabel,\n className = '',\n ...props\n}) => {\n if (items.length === 0) {\n return null;\n }\n\n const classes = classnames('attach', className, {});\n\n return (\n <div\n className={classes}\n {...props}\n >\n <ul className=\"attach__list\">\n {items.map((item) => {\n const isImage = isImageAttach(item);\n\n return (\n <li\n key={item.id}\n className=\"attach__item\"\n >\n <a\n className=\"attach__link\"\n href={item.url}\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n {isImage ? (\n <img\n className=\"attach__preview\"\n src={item.url}\n alt={item.name}\n />\n ) : (\n <span className=\"attach__file\">\n <span className=\"attach__name\">\n {item.name}\n </span>\n\n <span className=\"attach__size\">\n {formatFileSize(item.sizeBytes)}\n </span>\n </span>\n )}\n </a>\n\n {onRemove && (\n <button\n className=\"attach__remove\"\n type=\"button\"\n aria-label={`${removeLabel} файл ${item.name}`}\n onClick={() => onRemove(item.id)}\n >\n {removeLabel}\n </button>\n )}\n </li>\n );\n })}\n </ul>\n </div>\n );\n};\n\nexport default Attach;"]}
1
+ {"version":3,"sources":["../src/components/helpers/classnames.ts","../src/icons/assets/arrow-link.tsx","../src/icons/assets/arrow-right.tsx","../src/icons/assets/chevron-right.tsx","../src/icons/assets/fullscreen.tsx","../src/icons/assets/pause.tsx","../src/icons/assets/play.tsx","../src/icons/assets/settings.tsx","../src/icons/assets/sound.tsx","../src/icons/assets/sound-off.tsx","../src/icons/manifest.ts","../src/icons/registry.ts","../src/tokens/helpers/create-scale-tokens.ts","../src/tokens/scales/size.ts","../src/icons/icon.tsx","../src/components/button/button.tsx","../src/components/button-icon/button-icon.tsx","../src/components/input/input.tsx","../src/components/textarea/textarea.tsx","../src/components/select/select.tsx","../src/components/dropdown/dropdown.tsx","../src/components/checkbox/checkbox.tsx","../src/components/radio/radio.tsx","../src/components/field/field.tsx","../src/components/menu/menu.tsx","../src/components/tabs/tabs.tsx","../src/components/progressbar/progressbar.tsx","../src/components/video/video.tsx","../src/components/search/search.tsx","../src/components/richedit/richedit.tsx","../src/components/tag/tag.tsx","../src/components/card/card.tsx","../src/components/panel/panel.tsx","../src/lib/resolve-asset.ts","../src/components/logo/logo.tsx","../src/components/avatar/avatar.tsx","../src/patterns/header/header.tsx","../src/patterns/footer/footer.tsx","../src/patterns/screen-header/screen-header.tsx","../src/layouts/foundation/foundation.tsx","../src/layouts/base/base.tsx","../src/layouts/sidebar/sidebar.tsx","../src/components/attach/attach.tsx"],"names":["jsx","cloneElement","jsxs","React","ratio","useRef","getClampedValue","useState","useEffect"],"mappings":";;;;;;;AAEO,SAAS,cACX,IAAA,EACH;AACA,EAAA,MAAM,UAAoB,EAAC;AAE3B,EAAA,IAAA,CAAK,QAAQ,CAAA,GAAA,KAAO;AAClB,IAAA,IAAI,CAAC,GAAA,EAAK;AAEV,IAAA,IAAI,OAAO,QAAQ,QAAA,EAAU;AAC3B,MAAA,OAAA,CAAQ,KAAK,GAAG,CAAA;AAChB,MAAA;AAAA,IACF;AAEA,IAAA,KAAA,MAAW,OAAO,GAAA,EAAK;AACrB,MAAA,IAAI,GAAA,CAAI,GAAG,CAAA,EAAG;AACZ,QAAA,OAAA,CAAQ,KAAK,GAAG,CAAA;AAAA,MAClB;AAAA,IACF;AAAA,EACF,CAAC,CAAA;AAED,EAAA,OAAO,OAAA,CAAQ,KAAK,GAAG,CAAA;AACzB;ACrBO,IAAM,SAAA,GAAuB;AAAA,EAClC,EAAA,kBAAI,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,2BAAA,EAA4B,CAAA;AAAA,EACxC,CAAA,kBAAG,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,+BAAA,EAAgC,CAAA;AAAA,EAC3C,CAAA,kBAAG,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,gCAAA,EAAiC,CAAA;AAAA,EAC5C,CAAA,kBAAG,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,gCAAA,EAAiC;AAC9C,CAAA;ACLO,IAAM,UAAA,GAAwB;AAAA,EACnC,EAAA,kBAAIA,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAE,uBAAA,EAAwB,CAAA;AAAA,EACpC,CAAA,kBAAGA,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAE,2BAAA,EAA4B,CAAA;AAAA,EACvC,CAAA,kBAAGA,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAE,2BAAA,EAA4B,CAAA;AAAA,EACvC,CAAA,kBAAGA,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAE,4BAAA,EAA6B;AAC1C,CAAA;ACLO,IAAM,YAAA,GAA0B;AAAA,EACrC,EAAA,kBAAIA,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAE,qBAAA,EAAsB,CAAA;AAAA,EAClC,CAAA,kBAAGA,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAE,uBAAA,EAAwB,CAAA;AAAA,EACnC,CAAA,kBAAGA,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAE,yBAAA,EAA0B,CAAA;AAAA,EACrC,CAAA,kBAAGA,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAE,mBAAA,EAAoB;AACjC,CAAA;ACLO,IAAM,UAAA,GAAwB;AAAA,EACnC,EAAA,kBAAIA,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAE,0CAAA,EAA2C,CAAA;AAAA,EACvD,CAAA,kBAAGA,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAE,0CAAA,EAA2C,CAAA;AAAA,EACtD,CAAA,kBAAGA,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAE,8CAAA,EAA+C,CAAA;AAAA,EAC1D,CAAA,kBAAGA,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAE,8CAAA,EAA+C;AAC5D,CAAA;ACLO,IAAM,KAAA,GAAmB;AAAA,EAC9B,EAAA,kBAAIA,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAE,iBAAA,EAAkB,CAAA;AAAA,EAC9B,CAAA,kBAAGA,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAE,iBAAA,EAAkB,CAAA;AAAA,EAC7B,CAAA,kBAAGA,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAE,iBAAA,EAAkB,CAAA;AAAA,EAC7B,CAAA,kBAAGA,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAE,kBAAA,EAAmB;AAChC,CAAA;ACLO,IAAM,IAAA,GAAkB;AAAA,EAC7B,EAAA,kBAAIA,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAE,qBAAA,EAAsB,CAAA;AAAA,EAClC,CAAA,kBAAGA,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAE,wBAAA,EAAyB,CAAA;AAAA,EACpC,CAAA,kBAAGA,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAE,kBAAA,EAAmB,CAAA;AAAA,EAC9B,CAAA,kBAAGA,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAE,oBAAA,EAAqB;AAClC,CAAA;ACLO,IAAM,QAAA,GAAsB;AAAA,EACjC,EAAA,kBAAIA,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAE,6JAAA,EAA8J,CAAA;AAAA,EAC1K,CAAA,kBAAGA,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAE,+IAAA,EAAgJ,CAAA;AAAA,EAC3J,CAAA,kBAAGA,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAE,+IAAA,EAAgJ,CAAA;AAAA,EAC3J,CAAA,kBAAGA,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAE,qHAAA,EAAsH;AACnI,CAAA;ACLO,IAAM,KAAA,GAAmB;AAAA,EAC9B,EAAA,kBAAIA,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAE,wEAAA,EAAyE,CAAA;AAAA,EACrF,CAAA,kBAAGA,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAE,iEAAA,EAAkE,CAAA;AAAA,EAC7E,CAAA,kBAAGA,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAE,oEAAA,EAAqE,CAAA;AAAA,EAChF,CAAA,kBAAGA,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAE,sDAAA,EAAuD;AACpE,CAAA;ACLO,IAAM,QAAA,GAAsB;AAAA,EACjC,EAAA,kBAAIA,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAE,oEAAA,EAAqE,CAAA;AAAA,EACjF,CAAA,kBAAGA,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAE,yDAAA,EAA0D,CAAA;AAAA,EACrE,CAAA,kBAAGA,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAE,2DAAA,EAA4D,CAAA;AAAA,EACvE,CAAA,kBAAGA,GAAAA,CAAC,MAAA,EAAA,EAAK,GAAE,sDAAA,EAAuD;AACpE,CAAA;;;ACGO,IAAM,YAAA,GAAe;AAAA,EAC1B,YAAA,EAAc;AAAA,IACZ,KAAA,EAAO,SAAA;AAAA,IACP,QAAA,EAAU,YAAA;AAAA,IACV,IAAA,EAAM,CAAC,OAAA,EAAS,MAAA,EAAQ,UAAU;AAAA,GACpC;AAAA,EACA,aAAA,EAAe;AAAA,IACb,KAAA,EAAO,UAAA;AAAA,IACP,QAAA,EAAU,YAAA;AAAA,IACV,IAAA,EAAM,CAAC,OAAA,EAAS,OAAA,EAAS,MAAM;AAAA,GACjC;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,KAAA,EAAO,YAAA;AAAA,IACP,QAAA,EAAU,YAAA;AAAA,IACV,IAAA,EAAM,CAAC,SAAA,EAAW,OAAA,EAAS,MAAM;AAAA,GACnC;AAAA,EACA,UAAA,EAAY;AAAA,IACV,KAAA,EAAO,UAAA;AAAA,IACP,QAAA,EAAU,OAAA;AAAA,IACV,IAAA,EAAM,CAAC,YAAA,EAAc,QAAA,EAAU,QAAQ;AAAA,GACzC;AAAA,EACA,KAAA,EAAO;AAAA,IACL,KAAA,EAAO,KAAA;AAAA,IACP,QAAA,EAAU,OAAA;AAAA,IACV,IAAA,EAAM,CAAC,OAAA,EAAS,OAAA,EAAS,QAAQ;AAAA,GACnC;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,KAAA,EAAO,IAAA;AAAA,IACP,QAAA,EAAU,OAAA;AAAA,IACV,IAAA,EAAM,CAAC,MAAA,EAAQ,OAAA,EAAS,QAAQ;AAAA,GAClC;AAAA,EACA,QAAA,EAAU;AAAA,IACR,KAAA,EAAO,QAAA;AAAA,IACP,QAAA,EAAU,WAAA;AAAA,IACV,IAAA,EAAM,CAAC,UAAA,EAAY,aAAA,EAAe,UAAU;AAAA,GAC9C;AAAA,EACA,KAAA,EAAO;AAAA,IACL,KAAA,EAAO,KAAA;AAAA,IACP,QAAA,EAAU,OAAA;AAAA,IACV,IAAA,EAAM,CAAC,OAAA,EAAS,QAAA,EAAU,OAAO;AAAA,GACnC;AAAA,EACA,WAAA,EAAa;AAAA,IACX,KAAA,EAAO,QAAA;AAAA,IACP,QAAA,EAAU,OAAA;AAAA,IACV,IAAA,EAAM,CAAC,OAAA,EAAS,QAAA,EAAU,SAAS,MAAM;AAAA;AAE7C,CAAA;;;ACrDO,IAAM,eAAe,MAAA,CAAO,WAAA;AAAA,EACjC,MAAA,CAAO,OAAA,CAAQ,YAAY,CAAA,CAAE,IAAI,CAAC,CAAC,IAAA,EAAM,IAAI,CAAA,KAAM,CAAC,IAAA,EAAM,IAAA,CAAK,KAAK,CAAC;AACvE,CAAA;;;ACCA,SAAS,gBAAgB,KAAA,EAA8B;AACrD,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,EAAU,OAAO,OAAA;AACtC,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,EAAU,OAAO,QAAA;AACtC,EAAA,OAAO,SAAA;AACT;AAEO,SAAS,iBAAA,CACd,iBACA,MAAA,EACmB;AACnB,EAAA,OAAO,MAAA,CAAO,QAAQ,MAAM,CAAA,CAAE,IAAI,CAAC,CAAC,IAAA,EAAM,KAAK,CAAA,MAAO;AAAA,IACpD,UAAA,EAAY,QAAA;AAAA,IACZ,IAAA,EAAM,CAAA,EAAG,eAAe,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA;AAAA,IAChC,IAAA,EAAM,gBAAgB,KAAK,CAAA;AAAA,IAC3B,MAAA,EAAQ;AAAA,MACN;AAAA;AACF,GACF,CAAE,CAAA;AACJ;;;ACrBA,IAAM,KAAA,GAAQ;AAAA,EACZ,GAAA,EAAK,CAAA;AAAA,EACL,KAAA,EAAO,CAAA;AAAA,EACP,IAAA,EAAM,CAAA;AAAA,EACN,GAAA,EAAK,CAAA;AAAA,EACL,GAAA,EAAK,CAAA;AAAA,EACL,GAAA,EAAK,EAAA;AAAA,EACL,GAAA,EAAK,EAAA;AAAA,EACL,GAAA,EAAK,EAAA;AAAA,EACL,GAAA,EAAK,EAAA;AAAA,EACL,GAAA,EAAK,EAAA;AAAA,EACL,IAAA,EAAM,EAAA;AAAA,EACN,IAAA,EAAM;AACR,CAAA;AAEA,IAAM,QAAA,GAAW;AAAA,EACf,CAAA,EAAG,EAAA;AAAA,EACH,CAAA,EAAG,EAAA;AAAA,EACH,CAAA,EAAG,EAAA;AAAA,EACH,EAAA,EAAI,EAAA;AAAA,EACJ,GAAA,EAAK,EAAA;AAAA,EACL,IAAA,EAAM;AACR,CAAA;AAEO,IAAM,QAAA,GAAW;AAAA,EACtB,EAAA,EAAI,EAAA;AAAA,EACJ,CAAA,EAAG,EAAA;AAAA,EACH,CAAA,EAAG,EAAA;AAAA,EACH,CAAA,EAAG;AACL,CAAA;AAE6C;AAAA,EAC3C,GAAG,iBAAA,CAAkB,QAAA,EAAU,KAAK,CAAA;AAAA,EACpC,GAAG,iBAAA,CAAkB,WAAA,EAAa,QAAQ,CAAA;AAAA,EAC1C,GAAG,iBAAA,CAAkB,WAAA,EAAa,QAAQ;AAC5C;ACZA,IAAM,WAAA,GAAwC,QAAA;AAE9C,IAAM,OAAsB,CAAC;AAAA,EAC3B,IAAA;AAAA,EACA,MAAM,QAAA,GAAW,GAAA;AAAA,EACjB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,KAAA,GAAQ,aAAa,IAAI,CAAA;AAC/B,EAAA,MAAM,IAAA,GAAO,YAAY,QAAQ,CAAA;AACjC,EAAA,MAAM,OAAA,GAAU,CAAA,IAAA,EAAO,IAAI,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA;AACnC,EAAA,MAAM,OAAA,GAAU,CAAC,MAAA,EAAQ,SAAS,EAAE,MAAA,CAAO,OAAO,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA;AAE5D,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,OAAA;AAAA,MACX,KAAA,EAAO,IAAA;AAAA,MACP,MAAA,EAAQ,IAAA;AAAA,MACR,OAAA;AAAA,MACA,IAAA,EAAK,MAAA;AAAA,MACL,KAAA,EAAM,4BAAA;AAAA,MACN,MAAA,EAAO,cAAA;AAAA,MACP,WAAA,EAAa,GAAA;AAAA,MACb,aAAA,EAAc,OAAA;AAAA,MACd,cAAA,EAAe,OAAA;AAAA,MACf,aAAA,EAAY,MAAA;AAAA,MACZ,SAAA,EAAU,OAAA;AAAA,MACT,GAAG,KAAA;AAAA,MAEH,gBAAM,QAAQ;AAAA;AAAA,GACjB;AAEJ,CAAA;AAEA,IAAO,YAAA,GAAQ,IAAA;AC7Cf,IAAM,SAAgC,CAAC;AAAA,EACrC,KAAA,GAAQ,SAAA;AAAA,EACR,IAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA,GAAW,KAAA;AAAA,EACX,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,UAAA,GAAa,CAAC,CAAC,IAAA,IAAQ,CAAC,QAAA;AAE9B,EAAA,MAAM,OAAA,GAAU,UAAA,CAAW,QAAA,EAAU,SAAA,EAAW;AAAA,IAC9C,mBAAmB,KAAA,KAAU,SAAA;AAAA,IAC7B,kBAAA,EAAoB,QAAA;AAAA,IACpB,mBAAA,EAAqB;AAAA,GACtB,CAAA;AAED,EAAA,IAAI,YAAA,GAAe,IAAA;AAEnB,EAAA,IAAI,cAAA,CAAe,IAAI,CAAA,IAAK,IAAA,CAAK,SAAS,YAAA,EAAM;AAC9C,IAAA,MAAM,WAAA,GAAc,IAAA;AAEpB,IAAA,YAAA,GAAe,aAAa,WAAA,EAAa;AAAA,MACvC,IAAA,EAAM,WAAA,CAAY,KAAA,CAAM,IAAA,IAAQ,GAAA;AAAA,MAChC,SAAA,EAAW,UAAA,CAAW,cAAA,EAAgB,WAAA,CAAY,MAAM,SAAS,CAAA;AAAA,MACjE,aAAA,EAAe,WAAA,CAAY,KAAA,CAAM,aAAa,CAAA,IAAK,IAAA;AAAA,MACnD,SAAA,EAAW,WAAA,CAAY,KAAA,CAAM,SAAA,IAAa;AAAA,KAC3C,CAAA;AAAA,EACH;AAEA,EAAA,uBACE,IAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,OAAA;AAAA,MACX,QAAA;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,YAAA;AAAA,QACA;AAAA;AAAA;AAAA,GACH;AAEJ,CAAA;AAEA,IAAO,cAAA,GAAQ;AC3Cf,IAAM,aAAwC,CAAC;AAAA,EAC7C,KAAA,GAAQ,SAAA;AAAA,EACR,IAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA,GAAW,KAAA;AAAA,EACX,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,UAAA,GACJ,YACA,KAAA,KAAU,UAAA;AAEZ,EAAA,MAAM,OAAA,GAAU,UAAA,CAAW,aAAA,EAAe,SAAA,EAAW;AAAA,IACnD,uBAAA,EAAyB;AAAA,GAC1B,CAAA;AAED,EAAA,uBACEA,GAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,OAAA;AAAA,MACX,QAAA,EAAU,UAAA;AAAA,MACV,YAAA,EAAY,KAAA;AAAA,MACZ,KAAA,EAAO,KAAA;AAAA,MACN,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAAA,GAAAA;AAAA,QAAC,YAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAM,IAAA;AAAA,UACN,SAAA,EAAU,mBAAA;AAAA,UACV,aAAA,EAAW,IAAA;AAAA,UACX,SAAA,EAAW;AAAA;AAAA;AACb;AAAA,GACF;AAEJ,CAAA;AAEA,IAAO,mBAAA,GAAQ;ACtCf,IAAM,QAA8B,CAAC;AAAA,EACnC,KAAA,GAAQ,SAAA;AAAA,EACR,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA,GAAW,KAAA;AAAA,EACX,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAU,UAAA,CAAW,OAAA,EAAS,SAAA,EAAW;AAAA,IAC7C,OAAO,KAAA,KAAU,OAAA;AAAA,IACjB,SAAS,KAAA,KAAU;AAAA,GACpB,CAAA;AAED,EAAA,uBACEA,GAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,OAAA;AAAA,MACX,QAAA;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ,CAAA;AAEA,IAAO,aAAA,GAAQ;ACpBf,IAAM,WAAoC,CAAC;AAAA,EACzC,KAAA,GAAQ,SAAA;AAAA,EACR,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA,GAAW,KAAA;AAAA,EACX,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAU,UAAA,CAAW,UAAA,EAAY,SAAA,EAAW;AAAA,IAChD,OAAO,KAAA,KAAU,OAAA;AAAA,IACjB,SAAS,KAAA,KAAU;AAAA,GAClB,CAAA;AAEH,EAAA,uBACEA,GAAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,OAAA;AAAA,MACX,QAAA;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ,CAAA;AAEA,IAAO,gBAAA,GAAQ;ACpBf,IAAM,SAAgC,CAAC;AAAA,EACrC,KAAA,GAAQ,SAAA;AAAA,EACR,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA,GAAW,KAAA;AAAA,EACX,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAU,UAAA,CAAW,QAAA,EAAU,SAAA,EAAW;AAAA,IAC9C,OAAO,KAAA,KAAU,OAAA;AAAA,IACjB,SAAS,KAAA,KAAU;AAAA,GAClB,CAAA;AAEH,EAAA,uBACEA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,SACd,QAAA,kBAAAA,GAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,eAAA;AAAA,MACV,QAAA;AAAA,MACC,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH,EACF,CAAA;AAEJ,CAAA;AAEA,IAAO,cAAA,GAAQ;ACEf,IAAM,WAAoC,CAAC;AAAA,EACzC,OAAA;AAAA,EACA,KAAA;AAAA,EACA,YAAA;AAAA,EACA,KAAA,GAAQ,UAAA;AAAA,EACR,KAAA,GAAQ,cAAA;AAAA,EACR,OAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,WAAA,GAAc,OAAuB,IAAI,CAAA;AAE/C,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,SAAS,KAAK,CAAA;AAC1C,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,SAAS,YAAY,CAAA;AAE/D,EAAA,MAAM,gBACJ,KAAA,IAAS,aAAA;AAEX,EAAA,MAAM,OAAA,GAAU,UAAA,CAAW,UAAA,EAAY,SAAA,EAAW;AAAA,IAChD,gBAAA,EAAkB,MAAA;AAAA,IAClB,uBAAuB,KAAA,KAAU,WAAA;AAAA,IACjC,qBAAqB,KAAA,KAAU,SAAA;AAAA,IAC/B,0BAA0B,KAAA,KAAU,cAAA;AAAA,IACpC,wBAAwB,KAAA,KAAU;AAAA,GACnC,CAAA;AAED,EAAA,MAAM,cAAA,GACJ,OAAA;AAEF,EAAA,MAAM,cAAA,GAAiB,UAAA;AAAA,IACrB,mBAAA;AAAA,IACA,eAAe,KAAA,CAAM;AAAA,GACvB;AAEA,EAAA,MAAM,eAAA,GAAkBC,aAAa,cAAA,EAAgB;AAAA,IACnD,SAAA,EAAW,cAAA;AAAA,IACX,eAAA,EAAiB,MAAA;AAAA,IACjB,eAAA,EAAiB,MAAA;AAAA,IACjB,OAAA,EAAS,CAAC,KAAA,KAA4B;AACpC,MAAA,cAAA,CAAe,KAAA,CAAM,UAAU,KAAK,CAAA;AAEpC,MAAA,SAAA,CAAU,CAAC,YAAA,KAAiB,CAAC,YAAY,CAAA;AAAA,IAC3C;AAAA,GACD,CAAA;AAED,EAAA,MAAM,iBAAA,GAAoB,CAAC,MAAA,KAA2B;AACpD,IAAA,IAAI,OAAO,QAAA,EAAU;AACnB,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,UAAU,MAAA,EAAW;AACvB,MAAA,gBAAA,CAAiB,OAAO,KAAK,CAAA;AAAA,IAC/B;AAEA,IAAA,QAAA,GAAW,OAAO,KAAK,CAAA;AACvB,IAAA,SAAA,CAAU,KAAK,CAAA;AAAA,EACjB,CAAA;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,MAAA,EAAQ;AACX,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,mBAAA,GAAsB,CAAC,KAAA,KAAsB;AACjD,MAAA,MAAM,WAAW,WAAA,CAAY,OAAA;AAE7B,MAAA,IAAI,CAAC,QAAA,IAAY,QAAA,CAAS,QAAA,CAAS,KAAA,CAAM,MAAc,CAAA,EAAG;AACxD,QAAA;AAAA,MACF;AAEA,MAAA,SAAA,CAAU,KAAK,CAAA;AAAA,IACjB,CAAA;AAEA,IAAA,MAAM,qBAAA,GAAwB,CAAC,KAAA,KAAyB;AACtD,MAAA,IAAI,KAAA,CAAM,QAAQ,QAAA,EAAU;AAC1B,QAAA,SAAA,CAAU,KAAK,CAAA;AAAA,MACjB;AAAA,IACF,CAAA;AAEA,IAAA,QAAA,CAAS,gBAAA,CAAiB,aAAa,mBAAmB,CAAA;AAC1D,IAAA,QAAA,CAAS,gBAAA,CAAiB,WAAW,qBAAqB,CAAA;AAE1D,IAAA,OAAO,MAAM;AACX,MAAA,QAAA,CAAS,mBAAA,CAAoB,aAAa,mBAAmB,CAAA;AAC7D,MAAA,QAAA,CAAS,mBAAA,CAAoB,WAAW,qBAAqB,CAAA;AAAA,IAC/D,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,MAAM,CAAC,CAAA;AAEX,EAAA,uBACEC,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA,EAAK,WAAA;AAAA,MACL,SAAA,EAAW,OAAA;AAAA,MACV,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,eAAA;AAAA,QAEA,0BACCF,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,gBAAA;AAAA,YACV,IAAA,EAAK,MAAA;AAAA,YACL,YAAA,EAAY,KAAA;AAAA,YAEX,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,KAAW;AACvB,cAAA,MAAM,UAAA,GACJ,OAAO,KAAA,KAAU,aAAA;AAEnB,cAAA,MAAM,WAAA,GAAc,WAAW,gBAAA,EAAkB;AAAA,gBAC/C,0BAAA,EAA4B,UAAA;AAAA,gBAC5B,4BAA4B,MAAA,CAAO;AAAA,eACpC,CAAA;AAED,cAAA,uBACEA,GAAAA;AAAA,gBAAC,QAAA;AAAA,gBAAA;AAAA,kBAEC,SAAA,EAAW,WAAA;AAAA,kBACX,IAAA,EAAK,QAAA;AAAA,kBACL,IAAA,EAAK,eAAA;AAAA,kBACL,cAAA,EAAc,UAAA;AAAA,kBACd,iBAAe,MAAA,CAAO,QAAA;AAAA,kBACtB,UAAU,MAAA,CAAO,QAAA;AAAA,kBACjB,OAAA,EAAS,MAAM,iBAAA,CAAkB,MAAM,CAAA;AAAA,kBAEtC,QAAA,EAAA,MAAA,CAAO;AAAA,iBAAA;AAAA,gBATH,MAAA,CAAO;AAAA,eAUd;AAAA,YAEJ,CAAC;AAAA;AAAA;AACH;AAAA;AAAA,GAEJ;AAEJ,CAAA;AAEA,IAAO,gBAAA,GAAQ;AChKf,IAAM,WAAoC,CAAC;AAAA,EACzC,KAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA,GAAW,KAAA;AAAA,EACX,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAU,UAAA;AAAA,IACd,UAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,MACE,oBAAA,EAAsB;AAAA;AACxB,GACF;AAEA,EAAA,uBACEE,IAAAA,CAAC,OAAA,EAAA,EAAM,SAAA,EAAW,OAAA,EAChB,QAAA,EAAA;AAAA,oBAAAF,GAAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,iBAAA;AAAA,QACV,IAAA,EAAK,UAAA;AAAA,QACL,QAAA;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAAA,IACC,yBAASA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mBAAmB,QAAA,EAAA,KAAA,EAAM;AAAA,GAAA,EACrD,CAAA;AAEJ,CAAA;AAEA,IAAO,gBAAA,GAAQ;AC3Bf,IAAM,QAA8B,CAAC;AAAA,EACnC,KAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA,GAAW,KAAA;AAAA,EACX,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAU,UAAA;AAAA,IACd,OAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,MACE,iBAAA,EAAmB;AAAA;AACrB,GACF;AAEA,EAAA,uBACEE,IAAAA,CAAC,OAAA,EAAA,EAAM,SAAA,EAAW,OAAA,EAChB,QAAA,EAAA;AAAA,oBAAAF,GAAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,cAAA;AAAA,QACV,IAAA,EAAK,OAAA;AAAA,QACL,QAAA;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAAA,IACC,yBAASA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,gBAAgB,QAAA,EAAA,KAAA,EAAM;AAAA,GAAA,EAClD,CAAA;AAEJ,CAAA;AAEA,IAAO,aAAA,GAAQ;ACrBf,IAAM,QAA8B,CAAC;AAAA,EACnC,KAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,QAAA,GAAW,KAAA;AAAA,EACX,OAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ;AACF,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAU,UAAA;AAAA,IACd,OAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,MACE,iBAAA,EAAmB,QAAA;AAAA,MACnB,cAAA,EAAgB,CAAC,CAAC;AAAA;AACpB,GACF;AAEA,EAAA,uBACEE,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAA,EACb,QAAA,EAAA;AAAA,IAAA,KAAA,oBACCA,IAAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,cAAA;AAAA,QACV,OAAA;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,KAAA;AAAA,UACA,4BAAYF,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mBAAkB,QAAA,EAAA,IAAA,EAAE;AAAA;AAAA;AAAA,KACnD;AAAA,oBAGFA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kBACZ,QAAA,EACH,CAAA;AAAA,IAEC,KAAA,mBACCA,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,sCAAA,EACZ,QAAA,EAAA,KAAA,EACH,CAAA,GACE,IAAA,mBACFA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACZ,gBACH,CAAA,GACE;AAAA,GAAA,EACN,CAAA;AAEJ,CAAA;AAEA,IAAO,aAAA,GAAQ;AC3Cf,SAAS,eAAA,CACP,KAAA,EACA,YAAA,EACA,KAAA,EACA;AACA,EAAA,IAAI,UAAU,MAAA,EAAW;AACvB,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,IAAI,iBAAiB,MAAA,EAAW;AAC9B,IAAA,OAAO,YAAA;AAAA,EACT;AAEA,EAAA,OAAO,KAAA,CAAM,CAAC,CAAA,EAAG,KAAA;AACnB;AAEA,IAAM,OAA4B,CAAC;AAAA,EACjC,KAAA;AAAA,EACA,KAAA;AAAA,EACA,YAAA;AAAA,EACA,KAAA,GAAQ,MAAA;AAAA,EACR,SAAA,GAAY,EAAA;AAAA,EACZ,aAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAIG,MAAAA,CAAM,QAAA;AAAA,IAC9C,eAAA,CAAgB,KAAA,EAAO,YAAA,EAAc,KAAK;AAAA,GAC5C;AAEA,EAAA,MAAM,eAAe,KAAA,IAAS,aAAA;AAE9B,EAAAA,MAAAA,CAAM,UAAU,MAAM;AACpB,IAAA,IAAI,UAAU,MAAA,EAAW;AACvB,MAAA;AAAA,IACF;AAEA,IAAA,gBAAA,CAAiB,eAAA,CAAgB,KAAA,EAAO,YAAA,EAAc,KAAK,CAAC,CAAA;AAAA,EAC9D,CAAA,EAAG,CAAC,KAAA,EAAO,YAAA,EAAc,KAAK,CAAC,CAAA;AAE/B,EAAA,MAAM,eAAA,GAAkB,CACtB,SAAA,EACA,QAAA,KACG;AACH,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,UAAU,MAAA,EAAW;AACvB,MAAA,gBAAA,CAAiB,SAAS,CAAA;AAAA,IAC5B;AAEA,IAAA,aAAA,GAAgB,SAAS,CAAA;AAAA,EAC3B,CAAA;AAEA,EAAA,MAAM,OAAA,GAAU,UAAA,CAAW,MAAA,EAAQ,SAAA,EAAW,EAAE,CAAA;AAEhD,EAAA,uBACEH,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,OAAA;AAAA,MACX,YAAA,EAAY,KAAA;AAAA,MACX,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAAA,IAAC,IAAA,EAAA,EAAG,SAAA,EAAU,cACX,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,KAAS;AACnB,QAAA,MAAM,QAAA,GAAW,KAAK,KAAA,KAAU,YAAA;AAEhC,QAAA,MAAM,WAAA,GAAc,WAAW,eAAA,EAAiB;AAAA,UAC9C,uBAAA,EAAyB,QAAA;AAAA,UACzB,2BAA2B,IAAA,CAAK;AAAA,SACjC,CAAA;AAED,QAAA,uBACEA,GAAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YAEC,SAAA,EAAU,YAAA;AAAA,YAET,QAAA,EAAA,IAAA,CAAK,uBACJA,GAAAA;AAAA,cAAC,GAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,WAAA;AAAA,gBACX,MAAM,IAAA,CAAK,IAAA;AAAA,gBACX,cAAA,EAAc,WAAW,MAAA,GAAS,MAAA;AAAA,gBAClC,eAAA,EAAe,KAAK,QAAA,IAAY,MAAA;AAAA,gBAChC,OAAA,EAAS,CAAC,KAAA,KAAU;AAClB,kBAAA,IAAI,KAAK,QAAA,EAAU;AACjB,oBAAA,KAAA,CAAM,cAAA,EAAe;AACrB,oBAAA;AAAA,kBACF;AAEA,kBAAA,eAAA,CAAgB,KAAK,KAAK,CAAA;AAAA,gBAC5B,CAAA;AAAA,gBAEC,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA,gCAGRA,GAAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,WAAA;AAAA,gBACX,IAAA,EAAK,QAAA;AAAA,gBACL,UAAU,IAAA,CAAK,QAAA;AAAA,gBACf,SAAS,MAAM,eAAA;AAAA,kBACb,IAAA,CAAK,KAAA;AAAA,kBACL,IAAA,CAAK;AAAA,iBACP;AAAA,gBAEC,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA;AACR,WAAA;AAAA,UA/BG,IAAA,CAAK;AAAA,SAiCZ;AAAA,MAEJ,CAAC,CAAA,EACH;AAAA;AAAA,GACF;AAEJ,CAAA;AAEA,IAAO,YAAA,GAAQ;AChIf,IAAM,OAA4B,CAAC;AAAA,EACjC,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAU,UAAA,CAAW,MAAA,EAAQ,SAAS,CAAA;AAE5C,EAAA,uBACEA,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAW,OAAA,EAAU,GAAG,OAC1B,QAAA,EACH,CAAA;AAEJ,CAAA;AAEA,IAAO,YAAA,GAAQ;ACFf,SAAS,eAAA,CACP,OACA,GAAA,EACA;AACA,EAAA,OAAO,IAAA,CAAK,GAAA;AAAA,IACV,IAAA,CAAK,GAAA,CAAI,KAAA,EAAO,CAAC,CAAA;AAAA,IACjB;AAAA,GACF;AACF;AAEA,SAAS,UAAA,CACP,OACA,GAAA,EACA;AACA,EAAA,IAAI,OAAO,CAAA,EAAG;AACZ,IAAA,OAAO,CAAA;AAAA,EACT;AAEA,EAAA,OACE,eAAA,CAAgB,KAAA,EAAO,GAAG,CAAA,GAC1B,GAAA,GACE,GAAA;AACN;AAEA,SAAS,mBAAA,CACP,KAAA,EACA,KAAA,EACA,GAAA,EACA,UAAA,EACA;AACA,EAAA,MAAM,IAAA,GAAO,MAAM,qBAAA,EAAsB;AAEzC,EAAA,IAAI,UAAA,EAAY;AACd,IAAA,MAAM,CAAA,GACJ,IAAA,CAAK,MAAA,GACL,KAAA,CAAM,OAAA;AAER,IAAA,MAAMI,MAAAA,GACJ,IAAI,IAAA,CAAK,MAAA;AAEX,IAAA,OAAO,eAAA;AAAA,MACLA,MAAAA,GAAQ,GAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AAEA,EAAA,MAAM,CAAA,GACJ,KAAA,CAAM,OAAA,GACN,IAAA,CAAK,IAAA;AAEP,EAAA,MAAM,KAAA,GACJ,IAAI,IAAA,CAAK,KAAA;AAEX,EAAA,OAAO,eAAA;AAAA,IACL,KAAA,GAAQ,GAAA;AAAA,IACR;AAAA,GACF;AACF;AAEA,SAAS,oBAAA,CACP,GAAA,EACA,KAAA,EACA,GAAA,EACA,IAAA,EACA;AACA,EAAA,IACE,GAAA,KAAQ,YAAA,IACR,GAAA,KAAQ,SAAA,EACR;AACA,IAAA,OAAO,eAAA;AAAA,MACL,KAAA,GAAQ,IAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AAEA,EAAA,IACE,GAAA,KAAQ,WAAA,IACR,GAAA,KAAQ,WAAA,EACR;AACA,IAAA,OAAO,eAAA;AAAA,MACL,KAAA,GAAQ,IAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AAEA,EAAA,IAAI,QAAQ,MAAA,EAAQ;AAClB,IAAA,OAAO,CAAA;AAAA,EACT;AAEA,EAAA,IAAI,QAAQ,KAAA,EAAO;AACjB,IAAA,OAAO,GAAA;AAAA,EACT;AAEA,EAAA,OAAO,KAAA;AACT;AAEA,IAAM,cAEF,CAAC;AAAA,EACH,IAAA,GAAO,QAAA;AAAA,EACP,KAAA,GAAQ,CAAA;AAAA,EACR,QAAA,GAAW,CAAA;AAAA,EACX,GAAA,GAAM,GAAA;AAAA,EACN,WAAA,GAAc,YAAA;AAAA,EACd,IAAA,GAAO,CAAA;AAAA,EACP,WAAA;AAAA,EACA,KAAA,GAAQ,UAAA;AAAA,EACR,SAAA,GAAY,EAAA;AAAA,EACZ,KAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,QAAA,GACJC,OAAuB,IAAI,CAAA;AAE7B,EAAA,MAAM,SAAA,GACJ,eAAA;AAAA,IACE,KAAA;AAAA,IACA;AAAA,GACF;AAEF,EAAA,MAAM,YAAA,GACJ,UAAA;AAAA,IACE,KAAA;AAAA,IACA;AAAA,GACF;AAEF,EAAA,MAAM,eAAA,GACJ,UAAA;AAAA,IACE,QAAA;AAAA,IACA;AAAA,GACF;AAEF,EAAA,MAAM,aAAA,GACJ,eACA,IAAA,KAAS,SAAA;AAEX,EAAA,MAAM,UAAA,GACJ,WAAA,KACE,UAAA,IACF,IAAA,KAAS,OAAA;AAEX,EAAA,MAAM,WAAA,GACJ,IAAA,KAAS,QAAA,IACT,QAAA,GAAW,KAAA;AAEb,EAAA,MAAM,WACJ,IAAA,KAAS,SAAA;AAEX,EAAA,MAAM,OAAA,GACJ,UAAA;AAAA,IACE,aAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,MACE,uBAAA,EACE,UAAA;AAAA,MAEF,sBACE,IAAA,KAAS,OAAA;AAAA,MAEX,0BAAA,EACE;AAAA;AACJ,GACF;AAEF,EAAA,MAAM,aAAA,GAAgB;AAAA,IACpB,GAAG,KAAA;AAAA,IACH,qBAAA,EACE,GAAG,YAAY,CAAA,CAAA,CAAA;AAAA,IACjB,wBAAA,EACE,GAAG,eAAe,CAAA,CAAA,CAAA;AAAA,IACpB,+BAAA,EACE,GAAG,YAAY,CAAA,CAAA;AAAA,GACnB;AAEA,EAAA,MAAM,sBAAA,GAAyB,CAC7B,KAAA,EACA,YAAA,GAAe,KAAA,KACZ;AACH,IAAA,MAAM,QACJ,QAAA,CAAS,OAAA;AAEX,IAAA,IACE,CAAC,aAAA,IACD,CAAC,KAAA,EACD;AACA,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,SAAA,GACJ,mBAAA;AAAA,MACE,KAAA;AAAA,MACA,KAAA;AAAA,MACA,GAAA;AAAA,MACA;AAAA,KACF;AAEF,IAAA,aAAA;AAAA,MACE;AAAA,KACF;AAEA,IAAA,IAAI,YAAA,EAAc;AAChB,MAAA,aAAA;AAAA,QACE;AAAA,OACF;AAAA,IACF;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,iBAAA,GAAoB,CACxB,KAAA,KACG;AACH,IAAA,IAAI,CAAC,aAAA,EAAe;AAClB,MAAA;AAAA,IACF;AAEA,IAAA,KAAA,CAAM,aAAA,CACH,iBAAA;AAAA,MACC,KAAA,CAAM;AAAA,KACR;AAEF,IAAA,sBAAA;AAAA,MACE;AAAA,KACF;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,iBAAA,GAAoB,CACxB,KAAA,KACG;AACH,IAAA,IACE,CAAC,aAAA,IACD,CAAC,KAAA,CAAM,aAAA,CACJ,iBAAA;AAAA,MACC,KAAA,CAAM;AAAA,KACR,EACF;AACA,MAAA;AAAA,IACF;AAEA,IAAA,sBAAA;AAAA,MACE;AAAA,KACF;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,eAAA,GAAkB,CACtB,KAAA,KACG;AACH,IAAA,IAAI,CAAC,aAAA,EAAe;AAClB,MAAA;AAAA,IACF;AAEA,IAAA,sBAAA;AAAA,MACE,KAAA;AAAA,MACA;AAAA,KACF;AAEA,IAAA,KAAA,CAAM,aAAA,CACH,qBAAA;AAAA,MACC,KAAA,CAAM;AAAA,KACR;AAAA,EACJ,CAAA;AAEA,EAAA,MAAM,aAAA,GAAgB,CACpB,KAAA,KACG;AACH,IAAA,IAAI,CAAC,aAAA,EAAe;AAClB,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,SAAA,GACJ,oBAAA;AAAA,MACE,KAAA,CAAM,GAAA;AAAA,MACN,SAAA;AAAA,MACA,GAAA;AAAA,MACA;AAAA,KACF;AAEF,IAAA,IACE,cACA,SAAA,EACA;AACA,MAAA;AAAA,IACF;AAEA,IAAA,KAAA,CAAM,cAAA,EAAe;AAErB,IAAA,aAAA;AAAA,MACE;AAAA,KACF;AAEA,IAAA,aAAA;AAAA,MACE;AAAA,KACF;AAAA,EACF,CAAA;AAEA,EAAA,uBACEL,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,OAAA;AAAA,MACX,IAAA,EACE,gBACI,QAAA,GACA,aAAA;AAAA,MAEN,YAAA,EAAY,KAAA;AAAA,MACZ,eAAA,EAAe,CAAA;AAAA,MACf,eAAA,EAAe,GAAA;AAAA,MACf,eAAA,EAAe,SAAA;AAAA,MACf,kBAAA,EACE,aAAA,IACA,UAAA,GACI,UAAA,GACA,MAAA;AAAA,MAEN,QAAA,EACE,gBACI,CAAA,GACA,MAAA;AAAA,MAEN,KAAA,EAAO,aAAA;AAAA,MACP,aAAA,EACE,iBAAA;AAAA,MAEF,aAAA,EACE,iBAAA;AAAA,MAEF,WAAA,EACE,eAAA;AAAA,MAEF,SAAA,EACE,aAAA;AAAA,MAED,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAAE,IAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,GAAA,EAAK,QAAA;AAAA,UACL,SAAA,EAAU,oBAAA;AAAA,UAEV,QAAA,EAAA;AAAA,4BAAAF,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oBAAA,EAAqB,CAAA;AAAA,YAEnC,WAAA,oBACCA,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,uBAAA,EAAwB,CAAA;AAAA,YAGxC,QAAA,oBACCE,IAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,oBAAA,EACb,QAAA,EAAA;AAAA,cAAA,IAAA,CAAK,KAAA;AAAA,gBACJ;AAAA,eACF;AAAA,cAAE;AAAA,aAAA,EAEJ;AAAA;AAAA;AAAA;AAEJ;AAAA,GACF;AAEJ,CAAA;AAEA,IAAO,mBAAA,GAAQ;ACjVf,SAASI,gBAAAA,CAAgB,KAAA,EAAe,GAAA,EAAa,GAAA,EAAa;AAChE,EAAA,OAAO,KAAK,GAAA,CAAI,IAAA,CAAK,IAAI,KAAA,EAAO,GAAG,GAAG,GAAG,CAAA;AAC3C;AAEA,SAAS,WAAW,KAAA,EAAe;AACjC,EAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,KAAK,GAAG,OAAO,MAAA;AAEpC,EAAA,MAAM,OAAA,GAAU,IAAA,CAAK,KAAA,CAAM,KAAA,GAAQ,EAAE,CAAA;AACrC,EAAA,MAAM,OAAA,GAAU,IAAA,CAAK,KAAA,CAAM,KAAA,GAAQ,EAAE,CAAA;AAErC,EAAA,OAAO,CAAA,EAAG,OAAO,CAAA,CAAA,EAAI,MAAA,CAAO,OAAO,CAAA,CAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA,CAAA;AACvD;AAEA,SAAS,eAAe,KAAA,EAAyB;AAC/C,EAAA,IAAI,KAAA,CAAM,QAAA,CAAS,MAAA,KAAW,CAAA,EAAG,OAAO,CAAA;AAExC,EAAA,OAAO,MAAM,QAAA,CAAS,GAAA,CAAI,KAAA,CAAM,QAAA,CAAS,SAAS,CAAC,CAAA;AACrD;AAEA,SAAS,cAAA,CAAe,GAAA,EAAyB,SAAA,EAA2B,eAAA,EAAyB;AACnG,EAAA,MAAM,sBAAsB,SAAA,CAAU,IAAA,CAAK,CAAC,OAAA,KAAY,OAAA,CAAQ,UAAU,eAAe,CAAA;AAEzF,EAAA,OAAO,qBAAqB,GAAA,IAAO,GAAA;AACrC;AAEA,SAAS,kBAAkB,SAAA,EAA6C;AACtE,EAAA,OAAO,SAAA,CAAU,GAAA,CAAI,CAAC,OAAA,MAAa;AAAA,IACjC,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,UAAU,OAAA,CAAQ;AAAA,GACpB,CAAE,CAAA;AACJ;AAEA,SAAS,sBACP,KAAA,EACoB;AACpB,EAAA,MAAM,QAAA,GAAW,MAAM,QAAA,IAAY,CAAA;AACnC,EAAA,MAAM,WAAA,GAAc,MAAM,WAAA,IAAe,CAAA;AAEzC,EAAA,OAAO;AAAA,IACL,WAAA;AAAA,IACA,QAAA;AAAA,IAEA,WACE,KAAA,CAAM,KAAA,IAEJ,QAAA,GAAW,CAAA,IACX,eAAe,QAAA,GAAW;AAAA,GAEhC;AACF;AAEA,IAAM,mBAAmC,EAAC;AAE1C,IAAM,QAA8B,CAAC;AAAA,EACnC,GAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA,GAAY,gBAAA;AAAA,EACZ,cAAA,GAAiB,EAAA;AAAA,EACjB,KAAA,GAAQ,cAAA;AAAA,EACR,aAAA,GAAgB,CAAA;AAAA,EAChB,YAAA,GAAe,KAAA;AAAA,EACf,WAAA,GAAc,CAAA;AAAA,EACd,yBAAA,GAA4B,EAAA;AAAA,EAC5B,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA,GAAc,IAAA;AAAA,EACd,OAAA,GAAU,UAAA;AAAA,EACV,eAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,gBAAA;AAAA,EACA,YAAA;AAAA,EACA,UAAA;AAAA,EACA,cAAA;AAAA,EACA,gBAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,QAAA,GAAWD,OAAyB,IAAI,CAAA;AAE9C,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIE,SAAS,KAAK,CAAA;AAChD,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAIA,SAAS,KAAK,CAAA;AACtD,EAAA,MAAM,CAAC,eAAA,EAAiB,kBAAkB,CAAA,GAAIA,SAAS,cAAc,CAAA;AACrE,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAIA,SAAS,CAAC,CAAA;AAChD,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIA,SAAS,CAAC,CAAA;AAC1C,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIA,SAAS,CAAC,CAAA;AAC1C,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIA,SAAS,aAAa,CAAA;AAClD,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIA,QAAAA,CAAS,SAAS,YAAY,CAAA;AAE5D,EAAA,MAAM,wBAAA,GAA2BF,OAAO,KAAK,CAAA;AAC7C,EAAA,MAAM,uBAAA,GAA0BA,OAAO,CAAC,CAAA;AAExC,EAAA,MAAM,QAAA,GAAW,cAAA,CAAe,GAAA,EAAK,SAAA,EAAW,eAAe,CAAA;AAC/D,EAAA,MAAM,cAAA,GAAiB,kBAAkB,SAAS,CAAA;AAClD,EAAA,MAAM,iBAAA,GAAoB,eAAe,MAAA,GAAS,CAAA;AAElD,EAAAG,UAAU,MAAM;AACd,IAAA,MAAM,QAAQ,QAAA,CAAS,OAAA;AAEvB,IAAA,wBAAA,CAAyB,OAAA,GAAU,KAAA;AACnC,IAAA,uBAAA,CAAwB,OAAA,GAAU,CAAA;AAElC,IAAA,IAAI,CAAC,KAAA,IAAS,CAAC,QAAA,EAAU;AAEzB,IAAA,KAAA,CAAM,gBAAgB,KAAK,CAAA;AAC3B,IAAA,KAAA,CAAM,IAAA,EAAK;AAEX,IAAA,IAAI,KAAA,CAAM,WAAA,CAAY,+BAA+B,CAAA,EAAG;AACtD,MAAA,KAAA,CAAM,GAAA,GAAM,QAAA;AACZ,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,CAAC,GAAA,CAAI,WAAA,EAAY,EAAG;AACtB,MAAA,KAAA,CAAM,GAAA,GAAM,QAAA;AACZ,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,GAAA,GAAM,IAAI,GAAA,EAAI;AAEpB,IAAA,GAAA,CAAI,GAAG,GAAA,CAAI,MAAA,CAAO,KAAA,EAAO,CAAC,GAAG,IAAA,KAAS;AACpC,MAAA,OAAA,CAAQ,KAAA,CAAM,aAAa,IAAI,CAAA;AAAA,IACjC,CAAC,CAAA;AAED,IAAA,GAAA,CAAI,WAAW,QAAQ,CAAA;AACvB,IAAA,GAAA,CAAI,YAAY,KAAK,CAAA;AAErB,IAAA,OAAO,MAAM;AACX,MAAA,GAAA,CAAI,OAAA,EAAQ;AAAA,IACd,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,QAAQ,CAAC,CAAA;AAEb,EAAA,MAAM,UAAA,GAAa,cAAc,CAAA,IAAK,SAAA;AACtC,EAAA,MAAM,WAAA,GAAc,UAAA;AACpB,EAAA,MAAM,SAAA,GAAY,YAAA;AAElB,EAAA,MAAM,OAAA,GAAU,UAAA,CAAW,OAAA,EAAS,SAAA,EAAW;AAAA,IAC7C,sBAAA,EAAwB,WAAA;AAAA,IACxB,oBAAA,EAAsB;AAAA,GACvB,CAAA;AAED,EAAA,MAAM,iBAAiB,MAAM;AAC3B,IAAA,MAAM,QAAQ,QAAA,CAAS,OAAA;AAEvB,IAAA,IAAI,CAAC,KAAA,EAAO;AAEZ,IAAA,cAAA,CAAe,MAAM,WAAW,CAAA;AAChC,IAAA,WAAA,CAAY,KAAA,CAAM,YAAY,CAAC,CAAA;AAC/B,IAAA,WAAA,CAAY,cAAA,CAAe,KAAK,CAAC,CAAA;AACjC,IAAA,SAAA,CAAU,MAAM,MAAM,CAAA;AACtB,IAAA,UAAA,CAAW,MAAM,KAAK,CAAA;AACtB,IAAA,YAAA,CAAa,CAAC,MAAM,MAAM,CAAA;AAAA,EAC5B,CAAA;AAEA,EAAA,MAAM,cAAA,GAAiB,CACrB,KAAA,KACG;AACH,IAAA,IAAI,CAAC,gBAAA,EAAkB;AACrB,MAAA;AAAA,IACF;AAEA,IAAA,gBAAA;AAAA,MACE,sBAAsB,KAAK;AAAA,KAC7B;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,mBAAmB,YAAY;AACnC,IAAA,MAAM,QAAQ,QAAA,CAAS,OAAA;AAEvB,IAAA,IAAI,CAAC,KAAA,EAAO;AAEZ,IAAA,OAAA,CAAQ,IAAI,YAAA,EAAc;AAAA,MACxB,QAAQ,KAAA,CAAM,MAAA;AAAA,MACd,YAAY,KAAA,CAAM,UAAA;AAAA,MAClB,KAAK,KAAA,CAAM,UAAA;AAAA,MACX,cAAc,KAAA,CAAM,YAAA;AAAA,MACpB,OAAO,KAAA,CAAM;AAAA,KACd,CAAA;AAED,IAAA,IAAI,MAAM,MAAA,EAAQ;AAChB,MAAA,IAAI;AACF,QAAA,MAAM,MAAM,IAAA,EAAK;AACjB,QAAA,OAAA,CAAQ,IAAI,cAAc,CAAA;AAAA,MAC5B,SAAS,KAAA,EAAO;AACd,QAAA,OAAA,CAAQ,KAAA,CAAM,eAAe,KAAK,CAAA;AAAA,MACpC;AAEA,MAAA;AAAA,IACF;AAEA,IAAA,KAAA,CAAM,KAAA,EAAM;AAAA,EACd,CAAA;AAEA,EAAA,MAAM,UAAA,GAAa,CAAC,SAAA,KAAsB;AACxC,IAAA,MAAM,QAAQ,QAAA,CAAS,OAAA;AAEvB,IAAA,IAAI,CAAC,KAAA,EAAO;AAEZ,IAAA,KAAA,CAAM,WAAA,GAAcF,gBAAAA,CAAgB,SAAA,EAAW,CAAA,EAAG,QAAQ,CAAA;AAC1D,IAAA,cAAA,CAAe,MAAM,WAAW,CAAA;AAAA,EAClC,CAAA;AAEA,EAAA,MAAM,kBAAA,GAAqB,CAAC,SAAA,KAAsB;AAChD,IAAA,MAAM,QAAQ,QAAA,CAAS,OAAA;AAEvB,IAAA,IAAI,CAAC,KAAA,EAAO;AAEZ,IAAA,MAAM,UAAA,GAAaA,gBAAAA,CAAgB,SAAA,EAAW,CAAA,EAAG,CAAC,CAAA;AAElD,IAAA,KAAA,CAAM,MAAA,GAAS,UAAA;AACf,IAAA,KAAA,CAAM,QAAQ,UAAA,KAAe,CAAA;AAE7B,IAAA,SAAA,CAAU,UAAU,CAAA;AACpB,IAAA,UAAA,CAAW,MAAM,KAAK,CAAA;AAAA,EACxB,CAAA;AAEA,EAAA,MAAM,oBAAoB,MAAM;AAC9B,IAAA,MAAM,QAAQ,QAAA,CAAS,OAAA;AAEvB,IAAA,IAAI,CAAC,KAAA,EAAO;AAEZ,IAAA,KAAA,CAAM,KAAA,GAAQ,CAAC,KAAA,CAAM,KAAA;AACrB,IAAA,UAAA,CAAW,MAAM,KAAK,CAAA;AAAA,EACxB,CAAA;AAEA,EAAA,MAAM,mBAAmB,MAAM;AAC7B,IAAA,MAAM,QAAQ,QAAA,CAAS,OAAA;AAEvB,IAAA,IAAI,CAAC,KAAA,EAAO;AAEZ,IAAA,KAAA,CAAM,iBAAA,IAAoB;AAAA,EAC5B,CAAA;AAEA,EAAA,MAAM,mBAAA,GAAsB,CAAC,OAAA,KAAoB;AAC/C,IAAA,kBAAA,CAAmB,OAAO,CAAA;AAC1B,IAAA,eAAA,GAAkB,OAAO,CAAA;AAAA,EAC3B,CAAA;AAEA,EAAA,MAAM,oBAAA,GAAuB,CAC3B,KAAA,KACG;AACH,IAAA,MAAM,QAAQ,KAAA,CAAM,aAAA;AAEpB,IAAA,IACE,CAAC,wBAAA,CAAyB,OAAA,IAC1B,WAAA,GAAc,CAAA,EACd;AACA,MAAA,KAAA,CAAM,cAAc,IAAA,CAAK,GAAA;AAAA,QACvB,WAAA;AAAA,QACA,MAAM,QAAA,IAAY;AAAA,OACpB;AAEA,MAAA,wBAAA,CAAyB,OAAA,GAAU,IAAA;AAAA,IACrC;AAEA,IAAA,cAAA,EAAe;AAEf,IAAA,gBAAA,GAAmB,KAAK,CAAA;AAAA,EAC1B,CAAA;AAEA,EAAA,MAAM,gBAAA,GAAmB,CACvB,KAAA,KACG;AACH,IAAA,MAAM,QAAQ,KAAA,CAAM,aAAA;AAEpB,IAAA,cAAA,EAAe;AAEf,IAAA,IACE,gBAAA,IAEE,KAAA,CAAM,WAAA,GACN,uBAAA,CAAwB,WACrB,yBAAA,EACL;AACA,MAAA,uBAAA,CAAwB,UACtB,KAAA,CAAM,WAAA;AAER,MAAA,cAAA,CAAe,KAAK,CAAA;AAAA,IACtB;AAEA,IAAA,YAAA,GAAe,KAAK,CAAA;AAAA,EACtB,CAAA;AAEA,EAAA,MAAM,cAAA,GAAiB,CAAC,KAAA,KAAkD;AACxE,IAAA,cAAA,EAAe;AACf,IAAA,UAAA,GAAa,KAAK,CAAA;AAAA,EACpB,CAAA;AAEA,EAAA,MAAM,UAAA,GAAa,CAAC,KAAA,KAAkD;AACpE,IAAA,YAAA,CAAa,IAAI,CAAA;AACjB,IAAA,MAAA,GAAS,KAAK,CAAA;AAAA,EAChB,CAAA;AAEA,EAAA,MAAM,WAAA,GAAc,CAClB,KAAA,KACG;AACH,IAAA,YAAA,CAAa,KAAK,CAAA;AAElB,IAAA,cAAA,CAAe,MAAM,aAAa,CAAA;AAElC,IAAA,OAAA,GAAU,KAAK,CAAA;AAAA,EACjB,CAAA;AAEA,EAAA,MAAM,WAAA,GAAc,CAClB,KAAA,KACG;AACH,IAAA,cAAA,EAAe;AAEf,IAAA,cAAA,CAAe,MAAM,aAAa,CAAA;AAElC,IAAA,OAAA,GAAU,KAAK,CAAA;AAAA,EACjB,CAAA;AAEA,EAAA,MAAM,wBAAA,GAA2B,CAAC,KAAA,KAAkD;AAClF,IAAA,cAAA,EAAe;AACf,IAAA,cAAA,GAAiB,KAAK,CAAA;AAAA,EACxB,CAAA;AAEA,EAAA,uBACEJ,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAA,EAAS,cAAY,KAAA,EACnC,QAAA,EAAA;AAAA,oBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,gBAAA,EACZ,QAAA,EAAA;AAAA,MAAA,KAAA,IAAS,CAAC,6BACTF,GAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,cAAA;AAAA,UACV,GAAA,EAAK,KAAA;AAAA,UACL,GAAA,EAAI,EAAA;AAAA,UACJ,aAAA,EAAY;AAAA;AAAA,OACd,GACE,IAAA;AAAA,sBAEJA,GAAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACE,GAAG,KAAA;AAAA,UACJ,GAAA,EAAK,QAAA;AAAA,UACL,SAAA,EAAU,cAAA;AAAA,UACV,MAAA,EAAQ,KAAA;AAAA,UACR,QAAA;AAAA,UACA,IAAA;AAAA,UACA,KAAA,EAAO,OAAA;AAAA,UACP,WAAA;AAAA,UACA,OAAA;AAAA,UACA,QAAA,EAAU,KAAA;AAAA,UACV,gBAAA,EAAkB,oBAAA;AAAA,UAClB,YAAA,EAAc,gBAAA;AAAA,UACd,UAAA,EAAY,cAAA;AAAA,UACZ,MAAA,EAAQ,UAAA;AAAA,UACR,OAAA,EAAS,WAAA;AAAA,UACT,OAAA,EAAS,WAAA;AAAA,UACT,cAAA,EAAgB,wBAAA;AAAA,UAEf;AAAA;AAAA,OACH;AAAA,MAEC,CAAC,8BACAA,GAAAA;AAAA,QAAC,mBAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,oBAAA;AAAA,UACV,IAAA,EAAK,MAAA;AAAA,UACL,KAAA,EAAM,YAAA;AAAA,UACN,OAAA,EAAS;AAAA;AAAA;AACX,KAAA,EAEJ,CAAA;AAAA,IAEC,WAAA,oBACCE,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,iBAAA,EACb,QAAA,EAAA;AAAA,sBAAAF,GAAAA;AAAA,QAAC,mBAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAM,YAAY,OAAA,GAAU,MAAA;AAAA,UAC5B,KAAA,EAAO,YAAY,aAAA,GAAgB,YAAA;AAAA,UACnC,OAAA,EAAS;AAAA;AAAA,OACX;AAAA,sBAEAA,GAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,aAAA,EAAe,QAAA,EAAA,UAAA,CAAW,WAAW,CAAA,EAAE,CAAA;AAAA,sBAEtDA,GAAAA;AAAA,QAAC,mBAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,iBAAA;AAAA,UACV,IAAA,EAAK,QAAA;AAAA,UACL,KAAA,EAAO,WAAA;AAAA,UACP,QAAA;AAAA,UACA,KAAK,QAAA,IAAY,CAAA;AAAA,UACjB,IAAA,EAAM,CAAA;AAAA,UACN,KAAA,EAAM,gBAAA;AAAA,UACN,aAAA,EAAe;AAAA;AAAA,OACjB;AAAA,sBAEAA,IAAC,mBAAA,EAAA,EAAW,IAAA,EAAK,cAAa,KAAA,EAAM,YAAA,EAAa,SAAS,gBAAA,EAAkB,CAAA;AAAA,sBAE5EE,KAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wBAAuB,YAAA,EAAc,MAAM,eAAA,CAAgB,KAAK,CAAA,EAC7E,QAAA,EAAA;AAAA,wBAAAF,GAAAA;AAAA,UAAC,mBAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAM,UAAU,WAAA,GAAc,OAAA;AAAA,YAC9B,KAAA,EAAO,UAAU,cAAA,GAAiB,YAAA;AAAA,YAClC,OAAA,EAAS,iBAAA;AAAA,YACT,YAAA,EAAc,MAAM,eAAA,CAAgB,IAAI,CAAA;AAAA,YACxC,OAAA,EAAS,MAAM,eAAA,CAAgB,IAAI;AAAA;AAAA,SACrC;AAAA,QAEC,6BACCA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBACb,QAAA,kBAAAA,GAAAA;AAAA,UAAC,mBAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,OAAA;AAAA,YACL,KAAA,EAAO,UAAU,CAAA,GAAI,MAAA;AAAA,YACrB,GAAA,EAAK,CAAA;AAAA,YACL,IAAA,EAAM,IAAA;AAAA,YACN,KAAA,EAAM,QAAA;AAAA,YACN,aAAA,EAAe;AAAA;AAAA,SACjB,EACF;AAAA,OAAA,EAEJ,CAAA;AAAA,MAEC,qCACCA,GAAAA;AAAA,QAAC,gBAAA;AAAA,QAAA;AAAA,UACC,KAAA,EAAM,SAAA;AAAA,UACN,KAAA,EAAO,eAAA;AAAA,UACP,OAAA,EAAS,cAAA;AAAA,UACT,KAAA,EAAM,eAAA;AAAA,UACN,QAAA,EAAU,mBAAA;AAAA,UACV,yBAASA,GAAAA,CAAC,uBAAW,IAAA,EAAK,UAAA,EAAW,OAAM,eAAA,EAAgB;AAAA;AAAA;AAC7D,KAAA,EAEJ;AAAA,GAAA,EAEJ,CAAA;AAEJ,CAAA;AAEA,IAAO,aAAA,GAAQ;ACvcf,IAAM,SAAgC,CAAC;AAAA,EACrC,KAAA,GAAQ,SAAA;AAAA,EACR,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA;AAAA,EAEA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAU,UAAA,CAAW,QAAA,EAAU,SAAA,EAAW;AAAA,IAC9C,OAAO,KAAA,KAAU,OAAA;AAAA,IACjB,SAAS,KAAA,KAAU;AAAA,GAClB,CAAA;AAEH,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,OAAA;AAAA,MAEV,GAAG,KAAA;AAAA,MAED;AAAA;AAAA,GACL;AAEJ,CAAA;AAEA,IAAO,cAAA,GAAQ;ACvBf,IAAM,WAAoC,CAAC;AAAA,EACzC,KAAA,GAAQ,SAAA;AAAA,EACR,SAAA,GAAY,EAAA;AAAA;AAAA,EAEZ,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAU,UAAA,CAAW,UAAA,EAAY,SAAA,EAAW;AAAA,IAChD,OAAO,KAAA,KAAU,OAAA;AAAA,IACjB,SAAS,KAAA,KAAU;AAAA,GAClB,CAAA;AAEH,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,OAAA;AAAA,MAEV,GAAG;AAAA;AAAA,GACN;AAEJ,CAAA;AAEA,IAAO,gBAAA,GAAQ;ACpBf,IAAM,MAA0B,CAAC;AAAA,EAC/B,OAAA,GAAU,SAAA;AAAA,EACV,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAU,UAAA,CAAW,KAAA,EAAO,SAAA,EAAW;AAAA,IAC3C,CAAC,CAAA,aAAA,EAAgB,OAAO,CAAA,CAAE,GAAG,QAAQ,OAAO;AAAA,GAC7C,CAAA;AAED,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,OAAA;AAAA,MACV,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAA;AAEA,IAAO,WAAA,GAAQ;ACjBf,IAAM,OAA4B,CAAC;AAAA,EACjC,KAAA,GAAQ,SAAA;AAAA,EACR,OAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAU,UAAA,CAAW,MAAA,EAAQ,SAAA,EAAW,EAAE,CAAA;AAEhD,EAAA,uBACEE,IAAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,OAAA;AAAA,MACV,GAAG,KAAA;AAAA,MAEF,QAAA,EAAA;AAAA,QAAA,CAAA,OAAA,IAAW,WAAA,qBACXA,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,cAAA,EACZ,QAAA,EAAA;AAAA,UAAA,OAAA,oBACCF,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,iBACX,QAAA,EAAA,OAAA,EACH,CAAA;AAAA,UAGD,+BACCA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,qBACV,QAAA,EAAA,WAAA,EACH;AAAA,SAAA,EAEJ,CAAA;AAAA,QAGD,4BACCA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBACZ,QAAA,EACH,CAAA;AAAA,QAGD,2BACCA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBACZ,QAAA,EAAA,OAAA,EACH;AAAA;AAAA;AAAA,GAEJ;AAEJ,CAAA;AAEA,IAAO,YAAA,GAAQ;AChDf,IAAM,QAA8B,CAAC;AAAA,EACnC,MAAA,GAAS,MAAA;AAAA,EACT,OAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAU,UAAA,CAAW,OAAA,EAAS,SAAA,EAAW;AAAA,IAC7C,sBAAsB,MAAA,KAAW;AAAA,GAClC,CAAA;AAED,EAAA,uBACEE,IAAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,OAAA;AAAA,MACV,GAAG,KAAA;AAAA,MAEF,QAAA,EAAA;AAAA,QAAA,CAAA,OAAA,IAAW,WAAA,qBACXA,IAAAA,CAAC,KAAA,EAAA,EAAI,WAAU,eAAA,EACZ,QAAA,EAAA;AAAA,UAAA,OAAA,oBACCF,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,kBACX,QAAA,EAAA,OAAA,EACH,CAAA;AAAA,UAGD,+BACCA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,sBACV,QAAA,EAAA,WAAA,EACH;AAAA,SAAA,EAEJ,CAAA;AAAA,QAGD,4BACCA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kBACZ,QAAA,EACH;AAAA;AAAA;AAAA,GAEJ;AAEJ,CAAA;AAEA,IAAO,aAAA,GAAQ;;;ACrDR,SAAS,YAAA,CACd,kBACA,cAAA,EACA;AACA,EAAA,MAAM,eAAA,GACJ,MAAA,CAAA,IAAA,CAAY,GAAA,CAAI,QAAA,CAAS,OAAO,CAAA;AAElC,EAAA,IAAI,mBAAmB,cAAA,EAAgB;AACrC,IAAA,OAAO,cAAA;AAAA,EACT;AAEA,EAAA,OAAO,IAAI,GAAA;AAAA,IACT,KAAK,gBAAgB,CAAA,CAAA;AAAA,IACrB,MAAA,CAAA,IAAA,CAAY;AAAA,IACZ,QAAA,EAAS;AACb;ACHA,IAAM,QAAA,GAAW;AAAA,EACf,MAAA,EAAQ,YAAA;AAAA,IACN,wCAAA;AAAA,IACA,IAAI,GAAA,CAAI,0BAAA,EAA4B,MAAA,CAAA,IAAA,CAAY,GAAG,EAAE,QAAA;AAAS,GAChE;AAAA,EAEA,QAAA,EAAU,YAAA;AAAA,IACR,0CAAA;AAAA,IACA,IAAI,GAAA,CAAI,4BAAA,EAA8B,MAAA,CAAA,IAAA,CAAY,GAAG,EAAE,QAAA;AAAS;AAEpE,CAAA;AAEA,IAAM,OAA4B,CAAC;AAAA,EACjC,IAAA,GAAO,MAAA;AAAA,EACP,KAAA,GAAQ,0JAAA;AAAA,EACR,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAU,UAAA,CAAW,MAAA,EAAQ,SAAA,EAAW;AAAA,IAC5C,gBAAgB,IAAA,KAAS;AAAA,GAC1B,CAAA;AAED,EAAA,uBACEE,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,OAAA;AAAA,MACX,YAAA,EAAY,KAAA;AAAA,MACX,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAF,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,cAAA;AAAA,YACV,KAAK,QAAA,CAAS,MAAA;AAAA,YACd,GAAA,EAAI,EAAA;AAAA,YACJ,aAAA,EAAY;AAAA;AAAA,SACd;AAAA,QAEC,IAAA,KAAS,0BACRA,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,gBAAA;AAAA,YACV,KAAK,QAAA,CAAS,QAAA;AAAA,YACd,GAAA,EAAI,EAAA;AAAA,YACJ,aAAA,EAAY;AAAA;AAAA;AACd;AAAA;AAAA,GAEJ;AAEJ,CAAA;AAEA,IAAO,YAAA,GAAQ;AChCf,IAAM,SAAgC,CAAC;AAAA,EACrC,GAAA;AAAA,EACA,GAAA,GAAM,EAAA;AAAA,EACN,QAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,OAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,aAAA,GAAgB,CAAC,CAAC,OAAA;AAExB,EAAA,MAAM,OAAA,GAAU,UAAA,CAAW,QAAA,EAAU,SAAA,EAAW;AAAA,IAC9C,gBAAA,EAAkB;AAAA,GACnB,CAAA;AAED,EAAA,MAAM,OAAA,GAAU,sBACdA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,eAAA;AAAA,MACV,GAAA;AAAA,MACA;AAAA;AAAA,sBAGFA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oBACb,QAAA,EAAA,QAAA,EACH,CAAA;AAGF,EAAA,IAAI,aAAA,EAAe;AACjB,IAAA,uBACEA,GAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,OAAA;AAAA,QACX,IAAA,EAAK,QAAA;AAAA,QACL,YAAA,EAAY,KAAA,CAAM,YAAY,CAAA,IAAK,GAAA;AAAA,QACnC,OAAA;AAAA,QACC,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AAEA,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,OAAA;AAAA,MACX,YAAA,EAAY,GAAA;AAAA,MACX,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA;AAAA,GACH;AAEJ,CAAA;AAEA,IAAO,cAAA,GAAQ;ACnEf,IAAM,SAAgC,CAAC;AAAA,EACrC,IAAA;AAAA,EACA,IAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAgB,UAAA,CAAW,QAAA,EAAU,SAAA,EAAW,EAAE;AAElD,EAAA,uBACEE,IAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,QAAA;AAAA,MACT,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAF,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,cAAA,EACZ,QAAA,EAAA,IAAA,EACH,CAAA;AAAA,QAAA,CAEE,IAAA,IAAQ,6BACRA,GAAAA,CAAC,SAAI,SAAA,EAAU,cAAA,EACZ,kBAAQ,QAAA,EACX,CAAA;AAAA,wBAGFA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kBACZ,QAAA,EAAA,MAAA,EACH;AAAA;AAAA;AAAA,GACF;AAEJ,CAAA;AAEA,IAAO,cAAA,GAAQ;AClCf,IAAM,SAAgC,CAAC;AAAA,EACrC,SAAA;AAAA,EACA,KAAA;AAAA,EACA,cAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,uBACEE,IAAAA,CAAC,QAAA,EAAA,EAAO,SAAA,EAAU,QAAA,EAAU,GAAG,KAAA,EAC5B,QAAA,EAAA;AAAA,IAAA,SAAA,oBACCF,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,qBACZ,QAAA,EAAA,SAAA,EACH,CAAA;AAAA,IAAA,CAGA,KAAA,IAAS,6BACTA,GAAAA,CAAC,SAAI,SAAA,EAAU,eAAA,EACZ,mBAAS,QAAA,EACZ,CAAA;AAAA,IAGD,kCACCA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0CACZ,QAAA,EAAA,cAAA,EACH;AAAA,GAAA,EAEJ,CAAA;AAEJ,CAAA;AAEA,IAAO,cAAA,GAAQ;AC5Bf,IAAM,eAA4C,CAAC;AAAA,EACjD,OAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,IAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,uBACEE,IAAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,eAAA;AAAA,MACT,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wBAAA,EACZ,QAAA,EAAA;AAAA,UAAA,OAAA,oBACCF,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,0BACV,QAAA,EAAA,OAAA,EACH,CAAA;AAAA,UAGD,yBACCA,GAAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,wBACX,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,UAGD,+BACCA,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,8BACV,QAAA,EAAA,WAAA,EACH;AAAA,SAAA,EAEJ,CAAA;AAAA,QAAA,CAEE,IAAA,IAAQ,6BACRA,GAAAA,CAAC,SAAI,SAAA,EAAU,qBAAA,EACZ,kBAAQ,QAAA,EACX;AAAA;AAAA;AAAA,GAEJ;AAEJ,CAAA;AAEA,IAAO,qBAAA,GAAQ;ACtCf,IAAM,mBAAoD,CAAC;AAAA,EACzD,KAAA,GAAQ,SAAA;AAAA,EACR,SAAA,GAAY,EAAA;AAAA,EACZ,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,OAAA,GAAU,UAAA,CAAW,mBAAA,EAAqB,SAAA,EAAW;AAAA,IACzD,6BAA6B,KAAA,KAAU,QAAA;AAAA,IACvC,2BAA2B,KAAA,KAAU,MAAA;AAAA,IACrC,2BAA2B,KAAA,KAAU;AAAA,GACtC,CAAA;AAED,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,OAAA;AAAA,MACV,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2BACZ,QAAA,EACH;AAAA;AAAA,GACF;AAEJ,CAAA;AAEA,IAAO,kBAAA,GAAQ;AC1Bf,IAAM,aAAwC,CAAC;AAAA,EAC7C,KAAA,GAAQ,SAAA;AAAA,EACR,MAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,uBACEE,IAAAA;AAAA,IAAC,kBAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,SAAA;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,MAAA,oBACCF,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uBACZ,QAAA,EAAA,MAAA,EACH,CAAA;AAAA,wBAGFA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,qBACb,QAAA,EACH,CAAA;AAAA,QAEC,0BACCA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uBACZ,QAAA,EAAA,MAAA,EACH;AAAA;AAAA;AAAA,GAEJ;AAEJ,CAAA;AAEA,IAAO,YAAA,GAAQ;AC/Bf,IAAM,gBAA8C,CAAC;AAAA,EACnD,KAAA,GAAQ,MAAA;AAAA,EACR,MAAA;AAAA,EACA,YAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,uBACEE,IAAAA;AAAA,IAAC,kBAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,SAAA;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,MAAA,oBACCF,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0BACZ,QAAA,EAAA,MAAA,EACH,CAAA;AAAA,QAGD,gCACCA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iCACZ,QAAA,EAAA,YAAA,EACH,CAAA;AAAA,wBAGFE,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,sBAAA,EACb,QAAA,EAAA;AAAA,0BAAAF,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,sBAAA,EACb,QAAA,EACH,CAAA;AAAA,UAEC,2BACCA,GAAAA,CAAC,OAAA,EAAA,EAAM,SAAA,EAAU,wBACd,QAAA,EAAA,OAAA,EACH;AAAA,SAAA,EAEJ,CAAA;AAAA,QAEC,0BACCA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0BACZ,QAAA,EAAA,MAAA,EACH;AAAA;AAAA;AAAA,GAEJ;AAEJ,CAAA;AAEA,IAAO,eAAA,GAAQ;AC5Cf,SAAS,cAAc,IAAA,EAAkB;AACvC,EAAA,OAAO,IAAA,CAAK,QAAA,EAAU,UAAA,CAAW,QAAQ,CAAA,IAAK,KAAA;AAChD;AAEA,SAAS,eAAe,SAAA,EAAoB;AAC1C,EAAA,IAAI,cAAc,MAAA,EAAW;AAC3B,IAAA,OAAO,cAAA;AAAA,EACT;AAEA,EAAA,IAAI,YAAY,IAAA,EAAM;AACpB,IAAA,OAAO,GAAG,SAAS,CAAA,EAAA,CAAA;AAAA,EACrB;AAEA,EAAA,IAAI,SAAA,GAAY,OAAO,IAAA,EAAM;AAC3B,IAAA,OAAO,CAAA,EAAG,IAAA,CAAK,KAAA,CAAM,SAAA,GAAY,IAAI,CAAC,CAAA,GAAA,CAAA;AAAA,EACxC;AAEA,EAAA,OAAO,IAAI,SAAA,GAAY,IAAA,GAAO,IAAA,EAAM,OAAA,CAAQ,CAAC,CAAC,CAAA,GAAA,CAAA;AAChD;AAEA,IAAM,SAAgC,CAAC;AAAA,EACrC,KAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA,GAAc,4CAAA;AAAA,EACd,UAAA;AAAA,EACA,SAAA,GAAY,EAAA;AAAA,EACZ,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,IAAI,KAAA,CAAM,WAAW,CAAA,EAAG;AACtB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM,OAAA,GAAU,UAAA,CAAW,QAAA,EAAU,SAAA,EAAW,EAAE,CAAA;AAElD,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,OAAA;AAAA,MACV,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAAA,IAAC,IAAA,EAAA,EAAG,SAAA,EAAU,gBACX,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,KAAS;AACnB,QAAA,MAAM,OAAA,GAAU,cAAc,IAAI,CAAA;AAElC,QAAA,uBACEE,IAAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YAEC,SAAA,EAAU,cAAA;AAAA,YAEV,QAAA,EAAA;AAAA,8BAAAF,GAAAA;AAAA,gBAAC,GAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAU,cAAA;AAAA,kBACV,MAAM,IAAA,CAAK,GAAA;AAAA,kBACX,MAAA,EAAO,QAAA;AAAA,kBACP,GAAA,EAAI,YAAA;AAAA,kBAEH,oCACCA,GAAAA;AAAA,oBAAC,KAAA;AAAA,oBAAA;AAAA,sBACC,SAAA,EAAU,iBAAA;AAAA,sBACV,KAAK,IAAA,CAAK,GAAA;AAAA,sBACV,KAAK,IAAA,CAAK;AAAA;AAAA,mBACZ,mBAEAE,IAAAA,CAAC,MAAA,EAAA,EAAK,WAAU,cAAA,EACd,QAAA,EAAA;AAAA,oCAAAF,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,cAAA,EACb,eAAK,IAAA,EACR,CAAA;AAAA,oCAEAA,IAAC,MAAA,EAAA,EAAK,SAAA,EAAU,gBACb,QAAA,EAAA,cAAA,CAAe,IAAA,CAAK,SAAS,CAAA,EAChC;AAAA,mBAAA,EACF;AAAA;AAAA,eAEJ;AAAA,cAEC,4BACCA,GAAAA;AAAA,gBAAC,QAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAU,gBAAA;AAAA,kBACV,IAAA,EAAK,QAAA;AAAA,kBACL,YAAA,EAAY,CAAA,EAAG,WAAW,CAAA,0BAAA,EAAS,KAAK,IAAI,CAAA,CAAA;AAAA,kBAC5C,OAAA,EAAS,MAAM,QAAA,CAAS,IAAA,CAAK,EAAE,CAAA;AAAA,kBAE9B,QAAA,EAAA;AAAA;AAAA;AACH;AAAA,WAAA;AAAA,UApCG,IAAA,CAAK;AAAA,SAsCZ;AAAA,MAEJ,CAAC,CAAA,EACH;AAAA;AAAA,GACF;AAEJ,CAAA;AAEA,IAAO,cAAA,GAAQ","file":"index.js","sourcesContent":["type ClassValue = string | undefined | null | false;\n\nexport function classnames(\n ...args: (ClassValue | Record<string, boolean | undefined | null>)[]\n) {\n const classes: string[] = [];\n\n args.forEach(arg => {\n if (!arg) return;\n\n if (typeof arg === 'string') {\n classes.push(arg);\n return;\n }\n\n for (const key in arg) {\n if (arg[key]) {\n classes.push(key);\n }\n }\n });\n\n return classes.join(' ');\n}","import type { IconGlyph } from '../types';\n\nexport const arrowLink: IconGlyph = {\n xs: <path d=\"M4 8H10M8 4H12V8M12 4L7 9\" />,\n s: <path d=\"M5 10H12M10 5H15V10M15 5L9 11\" />,\n m: <path d=\"M6 12H14M12 6H18V12M18 6L11 13\" />,\n l: <path d=\"M8 16H19M16 8H24V16M24 8L15 17\" />,\n};","import type { IconGlyph } from '../types';\n\nexport const arrowRight: IconGlyph = {\n xs: <path d=\"M4 8H12M9 5L12 8L9 11\" />,\n s: <path d=\"M5 10H15M11 6L15 10L11 14\" />,\n m: <path d=\"M6 12H18M13 7L18 12L13 17\" />,\n l: <path d=\"M8 16H24M18 10L24 16L18 22\" />,\n};","import type { IconGlyph } from '../types';\n\nexport const chevronRight: IconGlyph = {\n xs: <path d=\"M6 4.5L9.5 8L6 11.5\" />,\n s: <path d=\"M8 5.5L12.5 10L8 14.5\" />,\n m: <path d=\"M9.5 6.5L15 12L9.5 17.5\" />,\n l: <path d=\"M13 9L20 16L13 23\" />,\n};","import type { IconGlyph } from '../types';\n\nexport const fullscreen: IconGlyph = {\n xs: <path d=\"M5 7V5H7M11 5H13V7M13 11V13H11M7 13H5V11\" />,\n s: <path d=\"M6 8V6H8M14 6H16V8M16 14V16H14M8 16H6V14\" />,\n m: <path d=\"M7 10V7H10M14 7H17V10M17 14V17H14M10 17H7V14\" />,\n l: <path d=\"M9 13V9H13M19 9H23V13M23 19V23H19M13 23H9V19\" />,\n};","import type { IconGlyph } from '../types';\n\nexport const pause: IconGlyph = {\n xs: <path d=\"M5 4V12M11 4V12\" />,\n s: <path d=\"M7 5V15M13 5V15\" />,\n m: <path d=\"M9 6V18M15 6V18\" />,\n l: <path d=\"M11 8V24M21 8V24\" />,\n};","import type { IconGlyph } from '../types';\n\nexport const play: IconGlyph = {\n xs: <path d=\"M6 5.5L11 8L6 10.5Z\" />,\n s: <path d=\"M7 6.5L13.5 10L7 13.5Z\" />,\n m: <path d=\"M8 7L16 12L8 17Z\" />,\n l: <path d=\"M11 9L21 16L11 23Z\" />,\n};","import type { IconGlyph } from '../types';\n\nexport const settings: IconGlyph = {\n xs: <path d=\"M8 5V3.5M8 12.5V11M5.9 5.9L4.8 4.8M11.2 11.2L10.1 10.1M5 8H3.5M12.5 8H11M5.9 10.1L4.8 11.2M11.2 4.8L10.1 5.9M8 6.5A1.5 1.5 0 1 1 8 9.5A1.5 1.5 0 0 1 8 6.5Z\" />,\n s: <path d=\"M10 6V4M10 16V14M7.2 7.2L5.8 5.8M14.2 14.2L12.8 12.8M6 10H4M16 10H14M7.2 12.8L5.8 14.2M14.2 5.8L12.8 7.2M10 8A2 2 0 1 1 10 12A2 2 0 0 1 10 8Z\" />,\n m: <path d=\"M12 7V4M12 20V17M8.5 8.5L6.4 6.4M17.6 17.6L15.5 15.5M7 12H4M20 12H17M8.5 15.5L6.4 17.6M17.6 6.4L15.5 8.5M12 9A3 3 0 1 1 12 15A3 3 0 0 1 12 9Z\" />,\n l: <path d=\"M16 9V5M16 27V23M11 11L8 8M24 24L21 21M9 16H5M27 16H23M11 21L8 24M24 8L21 11M16 12A4 4 0 1 1 16 20A4 4 0 0 1 16 12Z\" />,\n};","import type { IconGlyph } from '../types';\n\nexport const sound: IconGlyph = {\n xs: <path d=\"M3.5 9.5H6L9.5 12.5V3.5L6 6.5H3.5V9.5ZM11 6.5C11.7 7.2 11.7 8.8 11 9.5\" />,\n s: <path d=\"M4.5 12H7.5L12 16V4L7.5 8H4.5V12ZM14 7.5C15 8.5 15 11.5 14 12.5\" />,\n m: <path d=\"M5.5 14.5H9L15 19V5L9 9.5H5.5V14.5ZM17 8.5C18.5 10 18.5 14 17 15.5\" />,\n l: <path d=\"M7 19H12L20 25V7L12 13H7V19ZM23 11C25 13 25 19 23 21\" />,\n};","import type { IconGlyph } from '../types';\n\nexport const soundOff: IconGlyph = {\n xs: <path d=\"M3.5 9.5H6L9.5 12.5V3.5L6 6.5H3.5V9.5ZM11 6.5L13 8.5M13 6.5L11 8.5\" />,\n s: <path d=\"M4.5 12H7.5L12 16V4L7.5 8H4.5V12ZM14 8L17 11M17 8L14 11\" />,\n m: <path d=\"M5.5 14.5H9L15 19V5L9 9.5H5.5V14.5ZM17 9L21 13M21 9L17 13\" />,\n l: <path d=\"M7 19H12L20 25V7L12 13H7V19ZM23 12L27 16M27 12L23 16\" />,\n};","import { arrowLink } from './assets/arrow-link';\nimport { arrowRight } from './assets/arrow-right';\nimport { chevronRight } from './assets/chevron-right';\nimport { fullscreen } from './assets/fullscreen';\nimport { pause } from './assets/pause';\nimport { play } from './assets/play';\nimport { settings } from './assets/settings';\nimport { sound } from './assets/sound';\nimport { soundOff } from './assets/sound-off';\n\nexport const iconManifest = {\n 'arrow-link': {\n glyph: arrowLink,\n category: 'navigation',\n tags: ['arrow', 'link', 'external'],\n },\n 'arrow-right': {\n glyph: arrowRight,\n category: 'navigation',\n tags: ['arrow', 'right', 'next'],\n },\n 'chevron-right': {\n glyph: chevronRight,\n category: 'navigation',\n tags: ['chevron', 'right', 'next'],\n },\n fullscreen: {\n glyph: fullscreen,\n category: 'media',\n tags: ['fullscreen', 'expand', 'player'],\n },\n pause: {\n glyph: pause,\n category: 'media',\n tags: ['pause', 'video', 'player'],\n },\n play: {\n glyph: play,\n category: 'media',\n tags: ['play', 'video', 'player'],\n },\n settings: {\n glyph: settings,\n category: 'interface',\n tags: ['settings', 'preferences', 'controls'],\n },\n sound: {\n glyph: sound,\n category: 'media',\n tags: ['sound', 'volume', 'audio'],\n },\n 'sound-off': {\n glyph: soundOff,\n category: 'media',\n tags: ['sound', 'volume', 'audio', 'mute'],\n },\n} as const;","import { iconManifest } from './manifest';\nimport type { IconGlyph, IconName } from './types';\n\nexport const iconRegistry = Object.fromEntries(\n Object.entries(iconManifest).map(([name, item]) => [name, item.glyph]),\n) as Record<IconName, IconGlyph>;","import type { TokenDefinition } from '../schema';\n\ntype ScaleValue = number | string | boolean;\n\ntype TokenType = 'float' | 'string' | 'boolean';\n\nfunction detectTokenType(value: ScaleValue): TokenType {\n if (typeof value === 'number') return 'float';\n if (typeof value === 'string') return 'string';\n return 'boolean';\n}\n\nexport function createScaleTokens(\n tokenPathPrefix: string,\n values: Record<string, ScaleValue>\n): TokenDefinition[] {\n return Object.entries(values).map(([step, value]) => ({\n collection: 'scales',\n name: `${tokenPathPrefix}/${step}`,\n type: detectTokenType(value),\n values: {\n value,\n },\n })) as TokenDefinition[];\n}","import { createScaleTokens } from '../helpers/create-scale-tokens';\nimport type { TokenDefinition } from '../schema';\n\nconst sizeX = {\n \"0\": 0,\n \"025\": 1,\n \"05\": 2,\n \"1\": 4,\n \"2\": 8,\n \"3\": 12,\n \"4\": 16,\n \"5\": 20,\n \"6\": 24,\n \"8\": 32,\n \"10\": 40,\n \"12\": 48,\n} as const;\n\nconst sizeGrid = {\n s: 12,\n m: 20,\n l: 40,\n xl: 60,\n xxl: 80,\n xxxl: 100,\n} as const;\n\nexport const sizeIcon = {\n xs: 16,\n s: 20,\n m: 24,\n l: 32,\n} as const;\n\nexport const scalesSize: TokenDefinition[] = [\n ...createScaleTokens('size/x', sizeX),\n ...createScaleTokens('size/grid', sizeGrid),\n ...createScaleTokens('size/icon', sizeIcon),\n];","import React, { type FC } from 'react';\nimport './icon.css';\nimport { iconRegistry } from './registry';\nimport type { IconName, IconSize } from './types';\nimport { sizeIcon } from '../tokens/scales/size';\n\n/*import {\n sizeIconXS,\n sizeIconS,\n sizeIconM,\n sizeIconL,\n} from '../tokens/scales/size';*/\n\nexport interface IconProps\n extends Omit<React.SVGAttributes<SVGSVGElement>, 'size'> {\n name: IconName;\n size?: IconSize;\n}\n\n/*const iconSizeMap: Record<IconSize, number> = {\n xs: sizeIconXS,\n s: sizeIconS,\n m: sizeIconM,\n l: sizeIconL,\n};*/\n\nconst iconSizeMap: Record<IconSize, number> = sizeIcon;\n\nconst Icon: FC<IconProps> = ({\n name,\n size: iconSize = 'm',\n className,\n ...props\n}) => {\n const glyph = iconRegistry[name];\n const size = iconSizeMap[iconSize];\n const viewBox = `0 0 ${size} ${size}`;\n const classes = ['icon', className].filter(Boolean).join(' ');\n\n return (\n <svg\n className={classes}\n width={size}\n height={size}\n viewBox={viewBox}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n stroke=\"currentColor\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n {...props}\n >\n {glyph[iconSize]}\n </svg>\n );\n};\n\nexport default Icon;","import React, {\n cloneElement,\n isValidElement,\n type ReactElement,\n} from 'react';\nimport './button.css';\nimport { classnames } from '../helpers/classnames';\nimport Icon, { type IconProps } from '../../icons/icon';\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n state?: 'default' | 'primary';\n icon?: React.ReactNode;\n}\n\nconst Button: React.FC<ButtonProps> = ({\n state = 'default',\n icon,\n className = '',\n disabled = false,\n children,\n ...props\n}) => {\n const isIconOnly = !!icon && !children;\n\n const classes = classnames('button', className, {\n 'button--primary': state === 'primary',\n 'button--disabled': disabled,\n 'button--icon-only': isIconOnly,\n });\n\n let resolvedIcon = icon;\n\n if (isValidElement(icon) && icon.type === Icon) {\n const iconElement = icon as ReactElement<IconProps>;\n\n resolvedIcon = cloneElement(iconElement, {\n size: iconElement.props.size ?? 's',\n className: classnames('button__icon', iconElement.props.className),\n 'aria-hidden': iconElement.props['aria-hidden'] ?? true,\n focusable: iconElement.props.focusable ?? false,\n });\n }\n\n return (\n <button\n className={classes}\n disabled={disabled}\n {...props}\n >\n {resolvedIcon}\n {children}\n </button>\n );\n};\n\nexport default Button;","import React from 'react';\nimport './button-icon.css';\nimport { classnames } from '../helpers/classnames';\nimport Icon from '../../icons/icon';\nimport type { IconName } from '../../icons/types';\n\nexport interface ButtonIconProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n icon: IconName;\n state?: 'default' | 'disabled';\n label: string;\n}\n\nconst ButtonIcon: React.FC<ButtonIconProps> = ({\n state = 'default',\n icon,\n label,\n className = '',\n disabled = false,\n ...props\n}) => {\n const isDisabled =\n disabled ||\n state === 'disabled';\n\n const classes = classnames('button-icon', className, {\n 'button-icon--disabled': isDisabled,\n });\n\n return (\n <button\n className={classes}\n disabled={isDisabled}\n aria-label={label}\n title={label}\n {...props}\n >\n <Icon\n name={icon}\n className=\"button-icon__icon\"\n aria-hidden\n focusable={false}\n />\n </button>\n );\n};\n\nexport default ButtonIcon;","import React from 'react';\n//import './input.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n state?: 'default' | 'error' | 'success';\n}\n\nconst Input: React.FC<InputProps> = ({\n state = 'default',\n className = '',\n disabled = false,\n ...props\n}) => {\n const classes = classnames('input', className, {\n error: state === 'error',\n success: state === 'success',\n });\n\n return (\n <input\n className={classes}\n disabled={disabled}\n {...props}\n />\n );\n};\n\nexport default Input;","import React from 'react';\n// import './textarea.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n state?: 'default' | 'error' | 'success';\n}\n\nconst Textarea: React.FC<TextareaProps> = ({\n state = 'default',\n className = '',\n disabled = false,\n ...props\n}) => {\n const classes = classnames('textarea', className, {\n error: state === 'error',\n success: state === 'success',\n });\n\n return (\n <textarea\n className={classes}\n disabled={disabled}\n {...props}\n />\n );\n};\n\nexport default Textarea;","import React from 'react';\n//import './select.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface SelectProps\n extends React.SelectHTMLAttributes<HTMLSelectElement> {\n state?: 'default' | 'error' | 'success';\n}\n\nconst Select: React.FC<SelectProps> = ({\n state = 'default',\n className = '',\n disabled = false,\n children,\n ...props\n}) => {\n const classes = classnames('select', className, {\n error: state === 'error',\n success: state === 'success',\n });\n\n return (\n <div className={classes}>\n <select\n className=\"select__field\"\n disabled={disabled}\n {...props}\n >\n {children}\n </select>\n </div>\n );\n};\n\nexport default Select;","import React, {\n cloneElement,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport './dropdown.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface DropdownOption {\n value: string;\n label: string;\n disabled?: boolean;\n}\n\ntype DropdownTriggerProps = {\n className?: string;\n onClick?: (event: React.MouseEvent) => void;\n 'aria-haspopup'?: string;\n 'aria-expanded'?: boolean;\n};\n\ntype DropdownTriggerElement =\n React.ReactElement<DropdownTriggerProps>;\n\nexport interface DropdownProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {\n options: DropdownOption[];\n value?: string;\n defaultValue?: string;\n label?: string;\n align?: 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end';\n trigger: DropdownTriggerElement;\n onChange?: (value: string) => void;\n}\n\nconst Dropdown: React.FC<DropdownProps> = ({\n options,\n value,\n defaultValue,\n label = 'Dropdown',\n align = 'bottom-start',\n trigger,\n onChange,\n className = '',\n ...props\n}) => {\n const dropdownRef = useRef<HTMLDivElement>(null);\n\n const [isOpen, setIsOpen] = useState(false);\n const [internalValue, setInternalValue] = useState(defaultValue);\n\n const selectedValue =\n value ?? internalValue;\n\n const classes = classnames('dropdown', className, {\n 'dropdown--open': isOpen,\n 'dropdown--top-start': align === 'top-start',\n 'dropdown--top-end': align === 'top-end',\n 'dropdown--bottom-start': align === 'bottom-start',\n 'dropdown--bottom-end': align === 'bottom-end',\n });\n\n const triggerElement =\n trigger as DropdownTriggerElement;\n\n const triggerClasses = classnames(\n 'dropdown__trigger',\n triggerElement.props.className,\n );\n\n const resolvedTrigger = cloneElement(triggerElement, {\n className: triggerClasses,\n 'aria-haspopup': 'menu',\n 'aria-expanded': isOpen,\n onClick: (event: React.MouseEvent) => {\n triggerElement.props.onClick?.(event);\n\n setIsOpen((currentValue) => !currentValue);\n },\n });\n\n const handleOptionClick = (option: DropdownOption) => {\n if (option.disabled) {\n return;\n }\n\n if (value === undefined) {\n setInternalValue(option.value);\n }\n\n onChange?.(option.value);\n setIsOpen(false);\n };\n\n useEffect(() => {\n if (!isOpen) {\n return;\n }\n\n const handleDocumentClick = (event: MouseEvent) => {\n const dropdown = dropdownRef.current;\n\n if (!dropdown || dropdown.contains(event.target as Node)) {\n return;\n }\n\n setIsOpen(false);\n };\n\n const handleDocumentKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n setIsOpen(false);\n }\n };\n\n document.addEventListener('mousedown', handleDocumentClick);\n document.addEventListener('keydown', handleDocumentKeyDown);\n\n return () => {\n document.removeEventListener('mousedown', handleDocumentClick);\n document.removeEventListener('keydown', handleDocumentKeyDown);\n };\n }, [isOpen]);\n\n return (\n <div\n ref={dropdownRef}\n className={classes}\n {...props}\n >\n {resolvedTrigger}\n\n {isOpen && (\n <div\n className=\"dropdown__menu\"\n role=\"menu\"\n aria-label={label}\n >\n {options.map((option) => {\n const isSelected =\n option.value === selectedValue;\n\n const itemClasses = classnames('dropdown__item', {\n 'dropdown__item--selected': isSelected,\n 'dropdown__item--disabled': option.disabled,\n });\n\n return (\n <button\n key={option.value}\n className={itemClasses}\n type=\"button\"\n role=\"menuitemradio\"\n aria-checked={isSelected}\n aria-disabled={option.disabled}\n disabled={option.disabled}\n onClick={() => handleOptionClick(option)}\n >\n {option.label}\n </button>\n );\n })}\n </div>\n )}\n </div>\n );\n};\n\nexport default Dropdown;","import React from 'react';\n//import './checkbox.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface CheckboxProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: React.ReactNode;\n}\n\nconst Checkbox: React.FC<CheckboxProps> = ({\n label,\n className = '',\n disabled = false,\n ...props\n}) => {\n const classes = classnames(\n 'checkbox',\n className,\n {\n 'checkbox--disabled': disabled,\n }\n );\n\n return (\n <label className={classes}>\n <input\n className=\"checkbox__input\"\n type=\"checkbox\"\n disabled={disabled}\n {...props}\n />\n {label && <span className=\"checkbox__label\">{label}</span>}\n </label>\n );\n};\n\nexport default Checkbox;","import React from 'react';\n//import './radio.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface RadioProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: React.ReactNode;\n}\n\nconst Radio: React.FC<RadioProps> = ({\n label,\n className = '',\n disabled = false,\n ...props\n}) => {\n const classes = classnames(\n 'radio',\n className,\n {\n 'radio--disabled': disabled,\n }\n );\n\n return (\n <label className={classes}>\n <input\n className=\"radio__input\"\n type=\"radio\"\n disabled={disabled}\n {...props}\n />\n {label && <span className=\"radio__label\">{label}</span>}\n </label>\n );\n};\n\nexport default Radio;","import React from 'react';\n//import './field.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface FieldProps {\n label?: React.ReactNode;\n hint?: React.ReactNode;\n error?: React.ReactNode;\n required?: boolean;\n disabled?: boolean;\n htmlFor?: string;\n className?: string;\n children: React.ReactNode;\n}\n\nconst Field: React.FC<FieldProps> = ({\n label,\n hint,\n error,\n required = false,\n disabled = false,\n htmlFor,\n className = '',\n children,\n}) => {\n const classes = classnames(\n 'field',\n className,\n {\n 'field--disabled': disabled,\n 'field--error': !!error,\n }\n );\n\n return (\n <div className={classes}>\n {label && (\n <label\n className=\"field__label\"\n htmlFor={htmlFor}\n >\n {label}\n {required && <span className=\"field__required\"> *</span>}\n </label>\n )}\n\n <div className=\"field__control\">\n {children}\n </div>\n\n {error ? (\n <div className=\"field__message field__message--error\">\n {error}\n </div>\n ) : hint ? (\n <div className=\"field__message\">\n {hint}\n </div>\n ) : null}\n </div>\n );\n};\n\nexport default Field;","import React from 'react';\nimport './menu.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface MenuItem {\n value: string;\n label: React.ReactNode;\n href?: string;\n disabled?: boolean;\n}\n\nexport interface MenuProps\n extends React.HTMLAttributes<HTMLElement> {\n items: MenuItem[];\n value?: string;\n defaultValue?: string;\n label?: string;\n onValueChange?: (value: string) => void;\n}\n\nfunction getInitialValue(\n value: string | undefined,\n defaultValue: string | undefined,\n items: MenuItem[],\n) {\n if (value !== undefined) {\n return value;\n }\n\n if (defaultValue !== undefined) {\n return defaultValue;\n }\n\n return items[0]?.value;\n}\n\nconst Menu: React.FC<MenuProps> = ({\n items,\n value,\n defaultValue,\n label = 'Menu',\n className = '',\n onValueChange,\n ...props\n}) => {\n const [internalValue, setInternalValue] = React.useState(\n getInitialValue(value, defaultValue, items),\n );\n\n const currentValue = value ?? internalValue;\n\n React.useEffect(() => {\n if (value !== undefined) {\n return;\n }\n\n setInternalValue(getInitialValue(value, defaultValue, items));\n }, [value, defaultValue, items]);\n\n const handleItemClick = (\n itemValue: string,\n disabled?: boolean,\n ) => {\n if (disabled) {\n return;\n }\n\n if (value === undefined) {\n setInternalValue(itemValue);\n }\n\n onValueChange?.(itemValue);\n };\n\n const classes = classnames('menu', className, {});\n\n return (\n <nav\n className={classes}\n aria-label={label}\n {...props}\n >\n <ul className=\"menu__list\">\n {items.map((item) => {\n const isActive = item.value === currentValue;\n\n const itemClasses = classnames('menu__control', {\n 'menu__control--active': isActive,\n 'menu__control--disabled': item.disabled,\n });\n\n return (\n <li\n key={item.value}\n className=\"menu__item\"\n >\n {item.href ? (\n <a\n className={itemClasses}\n href={item.href}\n aria-current={isActive ? 'page' : undefined}\n aria-disabled={item.disabled || undefined}\n onClick={(event) => {\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n\n handleItemClick(item.value);\n }}\n >\n {item.label}\n </a>\n ) : (\n <button\n className={itemClasses}\n type=\"button\"\n disabled={item.disabled}\n onClick={() => handleItemClick(\n item.value,\n item.disabled,\n )}\n >\n {item.label}\n </button>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n );\n};\n\nexport default Menu;","import React from 'react';\nimport { classnames } from '../helpers/classnames';\nimport './tabs.css';\n\nexport interface TabsProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst Tabs: React.FC<TabsProps> = ({\n className = '',\n children,\n ...props\n}) => {\n const classes = classnames('tabs', className);\n\n return (\n <div className={classes} {...props}>\n {children}\n </div>\n );\n};\n\nexport default Tabs;","import React, { useRef } from 'react';\nimport './progressbar.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface ProgressBarProps\n extends React.HTMLAttributes<HTMLDivElement> {\n mode?: 'player' | 'diagram' | 'level';\n value?: number;\n buffered?: number;\n max?: number;\n orientation?: 'horizontal' | 'vertical';\n step?: number;\n interactive?: boolean;\n label?: string;\n onValueChange?: (value: number) => void;\n onValueCommit?: (value: number) => void;\n}\n\nfunction getClampedValue(\n value: number,\n max: number,\n) {\n return Math.min(\n Math.max(value, 0),\n max,\n );\n}\n\nfunction getPercent(\n value: number,\n max: number,\n) {\n if (max <= 0) {\n return 0;\n }\n\n return (\n getClampedValue(value, max) /\n max\n ) * 100;\n}\n\nfunction getValueFromPointer(\n event: React.PointerEvent<HTMLDivElement>,\n track: HTMLDivElement,\n max: number,\n isVertical: boolean,\n) {\n const rect = track.getBoundingClientRect();\n\n if (isVertical) {\n const y =\n rect.bottom -\n event.clientY;\n\n const ratio =\n y / rect.height;\n\n return getClampedValue(\n ratio * max,\n max,\n );\n }\n\n const x =\n event.clientX -\n rect.left;\n\n const ratio =\n x / rect.width;\n\n return getClampedValue(\n ratio * max,\n max,\n );\n}\n\nfunction getNextKeyboardValue(\n key: string,\n value: number,\n max: number,\n step: number,\n) {\n if (\n key === 'ArrowRight' ||\n key === 'ArrowUp'\n ) {\n return getClampedValue(\n value + step,\n max,\n );\n }\n\n if (\n key === 'ArrowLeft' ||\n key === 'ArrowDown'\n ) {\n return getClampedValue(\n value - step,\n max,\n );\n }\n\n if (key === 'Home') {\n return 0;\n }\n\n if (key === 'End') {\n return max;\n }\n\n return value;\n}\n\nconst ProgressBar: React.FC<\n ProgressBarProps\n> = ({\n mode = 'player',\n value = 0,\n buffered = 0,\n max = 100,\n orientation = 'horizontal',\n step = 1,\n interactive,\n label = 'Progress',\n className = '',\n style,\n onValueChange,\n onValueCommit,\n ...props\n}) => {\n const trackRef =\n useRef<HTMLDivElement>(null);\n\n const safeValue =\n getClampedValue(\n value,\n max,\n );\n\n const valuePercent =\n getPercent(\n value,\n max,\n );\n\n const bufferedPercent =\n getPercent(\n buffered,\n max,\n );\n\n const isInteractive =\n interactive ??\n mode !== 'diagram';\n\n const isVertical =\n orientation ===\n 'vertical' ||\n mode === 'level';\n\n const hasBuffered =\n mode === 'player' &&\n buffered > value;\n\n const hasValue =\n mode === 'diagram';\n\n const classes =\n classnames(\n 'progressbar',\n className,\n {\n 'progressbar--vertical':\n isVertical,\n\n 'progressbar--level':\n mode === 'level',\n\n 'progressbar--interactive':\n isInteractive,\n },\n );\n\n const progressStyle = {\n ...style,\n '--progressbar-value':\n `${valuePercent}%`,\n '--progressbar-buffered':\n `${bufferedPercent}%`,\n '--progressbar-buffered-offset':\n `${valuePercent}%`,\n } as React.CSSProperties;\n\n const updateValueFromPointer = (\n event: React.PointerEvent<HTMLDivElement>,\n shouldCommit = false,\n ) => {\n const track =\n trackRef.current;\n\n if (\n !isInteractive ||\n !track\n ) {\n return;\n }\n\n const nextValue =\n getValueFromPointer(\n event,\n track,\n max,\n isVertical,\n );\n\n onValueChange?.(\n nextValue,\n );\n\n if (shouldCommit) {\n onValueCommit?.(\n nextValue,\n );\n }\n };\n\n const handlePointerDown = (\n event: React.PointerEvent<HTMLDivElement>,\n ) => {\n if (!isInteractive) {\n return;\n }\n\n event.currentTarget\n .setPointerCapture(\n event.pointerId,\n );\n\n updateValueFromPointer(\n event,\n );\n };\n\n const handlePointerMove = (\n event: React.PointerEvent<HTMLDivElement>,\n ) => {\n if (\n !isInteractive ||\n !event.currentTarget\n .hasPointerCapture(\n event.pointerId,\n )\n ) {\n return;\n }\n\n updateValueFromPointer(\n event,\n );\n };\n\n const handlePointerUp = (\n event: React.PointerEvent<HTMLDivElement>,\n ) => {\n if (!isInteractive) {\n return;\n }\n\n updateValueFromPointer(\n event,\n true,\n );\n\n event.currentTarget\n .releasePointerCapture(\n event.pointerId,\n );\n };\n\n const handleKeyDown = (\n event: React.KeyboardEvent<HTMLDivElement>,\n ) => {\n if (!isInteractive) {\n return;\n }\n\n const nextValue =\n getNextKeyboardValue(\n event.key,\n safeValue,\n max,\n step,\n );\n\n if (\n nextValue ===\n safeValue\n ) {\n return;\n }\n\n event.preventDefault();\n\n onValueChange?.(\n nextValue,\n );\n\n onValueCommit?.(\n nextValue,\n );\n };\n\n return (\n <div\n className={classes}\n role={\n isInteractive\n ? 'slider'\n : 'progressbar'\n }\n aria-label={label}\n aria-valuemin={0}\n aria-valuemax={max}\n aria-valuenow={safeValue}\n aria-orientation={\n isInteractive &&\n isVertical\n ? 'vertical'\n : undefined\n }\n tabIndex={\n isInteractive\n ? 0\n : undefined\n }\n style={progressStyle}\n onPointerDown={\n handlePointerDown\n }\n onPointerMove={\n handlePointerMove\n }\n onPointerUp={\n handlePointerUp\n }\n onKeyDown={\n handleKeyDown\n }\n {...props}\n >\n <div\n ref={trackRef}\n className=\"progressbar__track\"\n >\n <div className=\"progressbar__value\" />\n\n {hasBuffered && (\n <div className=\"progressbar__buffered\" />\n )}\n\n {hasValue && (\n <span className=\"progressbar__label\">\n {Math.round(\n valuePercent,\n )}\n %\n </span>\n )}\n </div>\n </div>\n );\n};\n\nexport default ProgressBar;","import React, { useEffect, useRef, useState } from 'react';\nimport Hls from 'hls.js';\n\nimport './video.css';\nimport { classnames } from '../helpers/classnames';\nimport ButtonIcon from '../button-icon';\nimport ProgressBar from '../progressbar';\nimport Dropdown, { type DropdownOption } from '../dropdown';\n\nexport interface VideoQuality {\n value: string;\n label: string;\n src?: string;\n disabled?: boolean;\n}\n\nexport interface VideoProgressState {\n currentTime: number;\n duration: number;\n completed: boolean;\n}\n\nexport interface VideoProps\n extends Omit<React.VideoHTMLAttributes<HTMLVideoElement>, 'controls' | 'src' | 'poster'> {\n src?: string;\n cover?: string;\n qualities?: VideoQuality[];\n defaultQuality?: string;\n label?: string;\n initialVolume?: number;\n initialMuted?: boolean;\n initialTime?: number;\n progressCommitIntervalSec?: number;\n onProgressCommit?: (state: VideoProgressState) => void;\n onQualityChange?: (quality: string) => void;\n}\n\nfunction getClampedValue(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max);\n}\n\nfunction formatTime(value: number) {\n if (!Number.isFinite(value)) return '0:00';\n\n const minutes = Math.floor(value / 60);\n const seconds = Math.floor(value % 60);\n\n return `${minutes}:${String(seconds).padStart(2, '0')}`;\n}\n\nfunction getBufferedEnd(video: HTMLVideoElement) {\n if (video.buffered.length === 0) return 0;\n\n return video.buffered.end(video.buffered.length - 1);\n}\n\nfunction getVideoSource(src: string | undefined, qualities: VideoQuality[], selectedQuality: string) {\n const selectedQualityItem = qualities.find((quality) => quality.value === selectedQuality);\n\n return selectedQualityItem?.src ?? src;\n}\n\nfunction getQualityOptions(qualities: VideoQuality[]): DropdownOption[] {\n return qualities.map((quality) => ({\n value: quality.value,\n label: quality.label,\n disabled: quality.disabled,\n }));\n}\n\nfunction getVideoProgressState(\n video: HTMLVideoElement,\n): VideoProgressState {\n const duration = video.duration || 0;\n const currentTime = video.currentTime || 0;\n\n return {\n currentTime,\n duration,\n\n completed:\n video.ended ||\n (\n duration > 0 &&\n currentTime >= duration * 0.9\n ),\n };\n}\n\nconst defaultQualities: VideoQuality[] = [];\n\nconst Video: React.FC<VideoProps> = ({\n src,\n cover,\n qualities = defaultQualities,\n defaultQuality = '',\n label = 'Video player',\n initialVolume = 1,\n initialMuted = false,\n initialTime = 0,\n progressCommitIntervalSec = 15,\n className = '',\n autoPlay,\n loop,\n muted,\n playsInline = true,\n preload = 'metadata',\n onQualityChange,\n onPlay,\n onPause,\n onEnded,\n onLoadedMetadata,\n onTimeUpdate,\n onProgress,\n onVolumeChange,\n onProgressCommit,\n children,\n ...props\n}) => {\n const videoRef = useRef<HTMLVideoElement>(null);\n\n const [isPlaying, setIsPlaying] = useState(false);\n const [isVolumeOpen, setIsVolumeOpen] = useState(false);\n const [selectedQuality, setSelectedQuality] = useState(defaultQuality);\n const [currentTime, setCurrentTime] = useState(0);\n const [duration, setDuration] = useState(0);\n const [buffered, setBuffered] = useState(0);\n const [volume, setVolume] = useState(initialVolume);\n const [isMuted, setIsMuted] = useState(muted ?? initialMuted);\n\n const hasAppliedInitialTimeRef = useRef(false);\n const lastProgressCommitAtRef = useRef(0);\n\n const videoSrc = getVideoSource(src, qualities, selectedQuality);\n const qualityOptions = getQualityOptions(qualities);\n const hasQualityOptions = qualityOptions.length > 0;\n\n useEffect(() => {\n const video = videoRef.current;\n\n hasAppliedInitialTimeRef.current = false;\n lastProgressCommitAtRef.current = 0;\n\n if (!video || !videoSrc) return;\n\n video.removeAttribute('src');\n video.load();\n\n if (video.canPlayType('application/vnd.apple.mpegurl')) {\n video.src = videoSrc;\n return;\n }\n\n if (!Hls.isSupported()) {\n video.src = videoSrc;\n return;\n }\n\n const hls = new Hls();\n\n hls.on(Hls.Events.ERROR, (_, data) => {\n console.error('HLS error', data);\n });\n\n hls.loadSource(videoSrc);\n hls.attachMedia(video);\n\n return () => {\n hls.destroy();\n };\n }, [videoSrc]);\n\n const hasStarted = currentTime > 0 || isPlaying;\n const hasControls = hasStarted;\n const hasVolume = isVolumeOpen;\n\n const classes = classnames('video', className, {\n 'video--with-controls': hasControls,\n 'video--with-volume': hasVolume,\n });\n\n const syncMediaState = () => {\n const video = videoRef.current;\n\n if (!video) return;\n\n setCurrentTime(video.currentTime);\n setDuration(video.duration || 0);\n setBuffered(getBufferedEnd(video));\n setVolume(video.volume);\n setIsMuted(video.muted);\n setIsPlaying(!video.paused);\n };\n\n const commitProgress = (\n video: HTMLVideoElement,\n ) => {\n if (!onProgressCommit) {\n return;\n }\n\n onProgressCommit(\n getVideoProgressState(video),\n );\n };\n\n const handlePlayToggle = async () => {\n const video = videoRef.current;\n\n if (!video) return;\n\n console.log('play click', {\n paused: video.paused,\n readyState: video.readyState,\n src: video.currentSrc,\n networkState: video.networkState,\n error: video.error,\n });\n\n if (video.paused) {\n try {\n await video.play();\n console.log('play success');\n } catch (error) {\n console.error('play failed', error);\n }\n\n return;\n }\n\n video.pause();\n };\n\n const handleSeek = (nextValue: number) => {\n const video = videoRef.current;\n\n if (!video) return;\n\n video.currentTime = getClampedValue(nextValue, 0, duration);\n setCurrentTime(video.currentTime);\n };\n\n const handleVolumeChange = (nextValue: number) => {\n const video = videoRef.current;\n\n if (!video) return;\n\n const nextVolume = getClampedValue(nextValue, 0, 1);\n\n video.volume = nextVolume;\n video.muted = nextVolume === 0;\n\n setVolume(nextVolume);\n setIsMuted(video.muted);\n };\n\n const handleSoundToggle = () => {\n const video = videoRef.current;\n\n if (!video) return;\n\n video.muted = !video.muted;\n setIsMuted(video.muted);\n };\n\n const handleFullscreen = () => {\n const video = videoRef.current;\n\n if (!video) return;\n\n video.requestFullscreen?.();\n };\n\n const handleQualityChange = (quality: string) => {\n setSelectedQuality(quality);\n onQualityChange?.(quality);\n };\n\n const handleLoadedMetadata = (\n event: React.SyntheticEvent<HTMLVideoElement>,\n ) => {\n const video = event.currentTarget;\n\n if (\n !hasAppliedInitialTimeRef.current &&\n initialTime > 0\n ) {\n video.currentTime = Math.min(\n initialTime,\n video.duration || initialTime,\n );\n\n hasAppliedInitialTimeRef.current = true;\n }\n\n syncMediaState();\n\n onLoadedMetadata?.(event);\n };\n\n const handleTimeUpdate = (\n event: React.SyntheticEvent<HTMLVideoElement>,\n ) => {\n const video = event.currentTarget;\n\n syncMediaState();\n\n if (\n onProgressCommit &&\n (\n video.currentTime -\n lastProgressCommitAtRef.current\n ) >= progressCommitIntervalSec\n ) {\n lastProgressCommitAtRef.current =\n video.currentTime;\n\n commitProgress(video);\n }\n\n onTimeUpdate?.(event);\n };\n\n const handleProgress = (event: React.SyntheticEvent<HTMLVideoElement>) => {\n syncMediaState();\n onProgress?.(event);\n };\n\n const handlePlay = (event: React.SyntheticEvent<HTMLVideoElement>) => {\n setIsPlaying(true);\n onPlay?.(event);\n };\n\n const handlePause = (\n event: React.SyntheticEvent<HTMLVideoElement>,\n ) => {\n setIsPlaying(false);\n\n commitProgress(event.currentTarget);\n\n onPause?.(event);\n };\n\n const handleEnded = (\n event: React.SyntheticEvent<HTMLVideoElement>,\n ) => {\n syncMediaState();\n\n commitProgress(event.currentTarget);\n\n onEnded?.(event);\n };\n\n const handleNativeVolumeChange = (event: React.SyntheticEvent<HTMLVideoElement>) => {\n syncMediaState();\n onVolumeChange?.(event);\n };\n\n return (\n <div className={classes} aria-label={label}>\n <div className=\"video__surface\">\n {cover && !hasStarted ? (\n <img\n className=\"video__cover\"\n src={cover}\n alt=\"\"\n aria-hidden=\"true\"\n />\n ) : null}\n\n <video\n {...props}\n ref={videoRef}\n className=\"video__media\"\n poster={cover}\n autoPlay={autoPlay}\n loop={loop}\n muted={isMuted}\n playsInline={playsInline}\n preload={preload}\n controls={false}\n onLoadedMetadata={handleLoadedMetadata}\n onTimeUpdate={handleTimeUpdate}\n onProgress={handleProgress}\n onPlay={handlePlay}\n onPause={handlePause}\n onEnded={handleEnded}\n onVolumeChange={handleNativeVolumeChange}\n >\n {children}\n </video>\n\n {!hasStarted && (\n <ButtonIcon\n className=\"video__main-action\"\n icon=\"play\"\n label=\"Play video\"\n onClick={handlePlayToggle}\n />\n )}\n </div>\n\n {hasControls && (\n <div className=\"video__controls\">\n <ButtonIcon\n icon={isPlaying ? 'pause' : 'play'}\n label={isPlaying ? 'Pause video' : 'Play video'}\n onClick={handlePlayToggle}\n />\n\n <div className=\"video__time\">{formatTime(currentTime)}</div>\n\n <ProgressBar\n className=\"video__progress\"\n mode=\"player\"\n value={currentTime}\n buffered={buffered}\n max={duration || 1}\n step={1}\n label=\"Video progress\"\n onValueChange={handleSeek}\n />\n\n <ButtonIcon icon=\"fullscreen\" label=\"Fullscreen\" onClick={handleFullscreen} />\n\n <div className=\"video__sound-control\" onMouseLeave={() => setIsVolumeOpen(false)}>\n <ButtonIcon\n icon={isMuted ? 'sound-off' : 'sound'}\n label={isMuted ? 'Unmute video' : 'Mute video'}\n onClick={handleSoundToggle}\n onMouseEnter={() => setIsVolumeOpen(true)}\n onFocus={() => setIsVolumeOpen(true)}\n />\n\n {hasVolume && (\n <div className=\"video__volume\">\n <ProgressBar\n mode=\"level\"\n value={isMuted ? 0 : volume}\n max={1}\n step={0.05}\n label=\"Volume\"\n onValueChange={handleVolumeChange}\n />\n </div>\n )}\n </div>\n\n {hasQualityOptions && (\n <Dropdown\n align=\"top-end\"\n value={selectedQuality}\n options={qualityOptions}\n label=\"Video quality\"\n onChange={handleQualityChange}\n trigger={<ButtonIcon icon=\"settings\" label=\"Video quality\" />}\n />\n )}\n </div>\n )}\n </div>\n );\n};\n\nexport default Video;","import React from 'react';\n//import './search.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface SearchProps\n extends React.HTMLAttributes<HTMLElement> {\n state?: 'default' | 'error' | 'success';\n}\n\nconst Search: React.FC<SearchProps> = ({\n state = 'default',\n className = '',\n children,\n// disabled = false,\n ...props\n}) => {\n const classes = classnames('search', className, {\n error: state === 'error',\n success: state === 'success',\n });\n\n return (\n <div\n className={classes}\n// disabled={disabled}\n {...props}\n >\n {children}\n </div>\n );\n};\n\nexport default Search;","import React from 'react';\nimport './richedit.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface RichEditProps\n extends React.HTMLAttributes<HTMLElement> {\n state?: 'default' | 'error' | 'success';\n}\n\nconst RichEdit: React.FC<RichEditProps> = ({\n state = 'default',\n className = '',\n// disabled = false,\n ...props\n}) => {\n const classes = classnames('richedit', className, {\n error: state === 'error',\n success: state === 'success',\n });\n\n return (\n <div\n className={classes}\n// disabled={disabled}\n {...props}\n />\n );\n};\n\nexport default RichEdit;","import React from 'react';\n//import './tag.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface TagProps\n extends React.HTMLAttributes<HTMLElement> {\n context?: 'success' | 'error' | 'warning';\n}\n\nconst Tag: React.FC<TagProps> = ({\n context = 'success',\n className = '',\n children,\n ...props\n}) => {\n const classes = classnames('tag', className, {\n [`tag--context-${context}`]: Boolean(context),\n });\n\n return (\n <div\n className={classes}\n {...props}\n >\n {children}\n </div>\n );\n};\n\nexport default Tag;\n","import React from 'react';\nimport './card.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface CardProps\n extends React.HTMLAttributes<HTMLElement> {\n state?: 'default';\n heading?: React.ReactNode;\n description?: React.ReactNode;\n actions?: React.ReactNode;\n}\n\nconst Card: React.FC<CardProps> = ({\n state = 'default',\n heading,\n description,\n actions,\n className = '',\n children,\n ...props\n}) => {\n const classes = classnames('card', className, {});\n\n return (\n <section\n className={classes}\n {...props}\n >\n {(heading || description) && (\n <div className=\"card__header\">\n {heading && (\n <h2 className=\"card__heading\">\n {heading}\n </h2>\n )}\n\n {description && (\n <p className=\"card__description\">\n {description}\n </p>\n )}\n </div>\n )}\n\n {children && (\n <div className=\"card__content\">\n {children}\n </div>\n )}\n\n {actions && (\n <div className=\"card__actions\">\n {actions}\n </div>\n )}\n </section>\n );\n};\n\nexport default Card;","import React from 'react';\nimport './panel.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface PanelProps\n extends React.HTMLAttributes<HTMLElement> {\n layout?: 'card' | 'transparent';\n heading?: React.ReactNode;\n description?: React.ReactNode;\n}\n\nconst Panel: React.FC<PanelProps> = ({\n layout = 'card',\n heading,\n description,\n className = '',\n children,\n ...props\n}) => {\n const classes = classnames('panel', className, {\n 'panel--transparent': layout === 'transparent',\n });\n\n return (\n <section\n className={classes}\n {...props}\n >\n {(heading || description) && (\n <div className=\"panel__header\">\n {heading && (\n <h2 className=\"panel__heading\">\n {heading}\n </h2>\n )}\n\n {description && (\n <p className=\"panel__description\">\n {description}\n </p>\n )}\n </div>\n )}\n\n {children && (\n <div className=\"panel__content\">\n {children}\n </div>\n )}\n </section>\n );\n};\n\nexport default Panel;","export function resolveAsset(\n packageAssetPath: string,\n sourceAssetUrl?: string,\n) {\n const isSourceRuntime =\n import.meta.url.includes('/src/');\n\n if (isSourceRuntime && sourceAssetUrl) {\n return sourceAssetUrl;\n }\n\n return new URL(\n `./${packageAssetPath}`,\n import.meta.url,\n ).toString();\n}","import React from 'react';\nimport './logo.css';\nimport { classnames } from '../helpers/classnames';\n\nimport { resolveAsset } from '../../lib/resolve-asset';\n\nexport interface LogoProps\n extends React.HTMLAttributes<HTMLDivElement> {\n mode?: 'full' | 'symbol';\n label?: string;\n}\n\nconst logoUrls = {\n symbol: resolveAsset(\n 'assets/components/logo/logo-symbol.svg',\n new URL('./assets/logo-symbol.svg', import.meta.url).toString(),\n ),\n\n wordmark: resolveAsset(\n 'assets/components/logo/logo-wordmark.svg',\n new URL('./assets/logo-wordmark.svg', import.meta.url).toString(),\n ),\n} as const;\n\nconst Logo: React.FC<LogoProps> = ({\n mode = 'full',\n label = 'Паттерны дизайн-менеджмента',\n className = '',\n ...props\n}) => {\n const classes = classnames('logo', className, {\n 'logo--symbol': mode === 'symbol',\n });\n\n return (\n <div\n className={classes}\n aria-label={label}\n {...props}\n >\n <img\n className=\"logo__symbol\"\n src={logoUrls.symbol}\n alt=\"\"\n aria-hidden=\"true\"\n />\n\n {mode === 'full' && (\n <img\n className=\"logo__wordmark\"\n src={logoUrls.wordmark}\n alt=\"\"\n aria-hidden=\"true\"\n />\n )}\n </div>\n );\n};\n\nexport default Logo;","import React from 'react';\nimport './avatar.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface AvatarBaseProps\n extends React.HTMLAttributes<HTMLDivElement> {\n src?: string;\n alt?: string;\n initials?: string;\n}\n\ntype AvatarStaticProps =\n AvatarBaseProps &\n React.HTMLAttributes<HTMLDivElement> & {\n onClick?: undefined;\n };\n\ntype AvatarButtonProps =\n AvatarBaseProps &\n React.ButtonHTMLAttributes<HTMLButtonElement> & {\n onClick: React.MouseEventHandler<HTMLButtonElement>;\n };\n\nexport type AvatarProps =\n | AvatarStaticProps\n | AvatarButtonProps;\n\nconst Avatar: React.FC<AvatarProps> = ({\n src,\n alt = '',\n initials,\n className = '',\n onClick,\n ...props\n}) => {\n const isInteractive = !!onClick;\n\n const classes = classnames('avatar', className, {\n 'avatar--button': isInteractive,\n });\n\n const content = src ? (\n <img\n className=\"avatar__image\"\n src={src}\n alt={alt}\n />\n ) : (\n <span className=\"avatar__initials\">\n {initials}\n </span>\n );\n\n if (isInteractive) {\n return (\n <button\n className={classes}\n type=\"button\"\n aria-label={props['aria-label'] ?? alt}\n onClick={onClick}\n {...props as React.ButtonHTMLAttributes<HTMLButtonElement>}\n >\n {content}\n </button>\n );\n }\n\n return (\n <div\n className={classes}\n aria-label={alt}\n {...props as React.HTMLAttributes<HTMLDivElement>}\n >\n {content}\n </div>\n );\n};\n\nexport default Avatar;","import React from 'react';\nimport './header.css';\nimport { classnames } from '../../components/helpers/classnames';\n\nexport interface HeaderProps\n extends React.HTMLAttributes<HTMLElement> {\n logo?: React.ReactNode;\n menu?: React.ReactNode;\n avatar?: React.ReactNode;\n}\n\nconst Header: React.FC<HeaderProps> = ({\n logo,\n menu,\n avatar,\n className = '',\n children,\n ...props\n}) => {\n const classes = classnames('header', className, {});\n\n return (\n <header\n className=\"header\"\n {...props}\n >\n <div className=\"header__logo\">\n {logo}\n </div>\n\n {(menu || children) && (\n <div className=\"header__menu\">\n {menu || children}\n </div>\n )}\n\n <div className=\"header__avatar\">\n {avatar}\n </div>\n </header>\n );\n};\n\nexport default Header;","import React from 'react';\nimport './footer.css';\n\nexport interface FooterProps extends React.HTMLAttributes<HTMLElement> {\n copyright?: React.ReactNode;\n links?: React.ReactNode;\n secondaryLinks?: React.ReactNode;\n}\n\nconst Footer: React.FC<FooterProps> = ({\n copyright,\n links,\n secondaryLinks,\n children,\n ...props\n}) => {\n return (\n <footer className=\"footer\" {...props}>\n {copyright && (\n <div className=\"footer__copyright\">\n {copyright}\n </div>\n )}\n\n {(links || children) && (\n <div className=\"footer__links\">\n {links || children}\n </div>\n )}\n\n {secondaryLinks && (\n <div className=\"footer__links footer__links--secondary\">\n {secondaryLinks}\n </div>\n )}\n </footer>\n );\n};\n\nexport default Footer;","import React from 'react';\nimport './screen-header.css';\n\nexport interface ScreenHeaderProps\n extends Omit<React.HTMLAttributes<HTMLElement>, 'title'> {\n eyebrow?: React.ReactNode;\n title?: React.ReactNode;\n description?: React.ReactNode;\n tabs?: React.ReactNode;\n}\n\nconst ScreenHeader: React.FC<ScreenHeaderProps> = ({\n eyebrow,\n title,\n description,\n tabs,\n children,\n ...props\n}) => {\n return (\n <section\n className=\"screen-header\"\n {...props}\n >\n <div className=\"screen-header__heading\">\n {eyebrow && (\n <p className=\"screen-header__section\">\n {eyebrow}\n </p>\n )}\n\n {title && (\n <h1 className=\"screen-header__title\">\n {title}\n </h1>\n )}\n\n {description && (\n <p className=\"screen-header__description\">\n {description}\n </p>\n )}\n </div>\n\n {(tabs || children) && (\n <div className=\"screen-header__tabs\">\n {tabs || children}\n </div>\n )}\n </section>\n );\n};\n\nexport default ScreenHeader;","import React from 'react';\nimport './foundation.css';\nimport { classnames } from '../../components/helpers/classnames';\n\nexport type LayoutFoundationWidth =\n | 'narrow'\n | 'default'\n | 'wide'\n | 'full';\n\nexport interface LayoutFoundationProps\n extends React.HTMLAttributes<HTMLDivElement> {\n width?: LayoutFoundationWidth;\n}\n\nconst LayoutFoundation: React.FC<LayoutFoundationProps> = ({\n width = 'default',\n className = '',\n children,\n ...props\n}) => {\n const classes = classnames('layout-foundation', className, {\n 'layout-foundation--narrow': width === 'narrow',\n 'layout-foundation--wide': width === 'wide',\n 'layout-foundation--full': width === 'full',\n });\n\n return (\n <div\n className={classes}\n {...props}\n >\n <div className=\"layout-foundation__grid\">\n {children}\n </div>\n </div>\n );\n};\n\nexport default LayoutFoundation;","import React from 'react';\nimport LayoutFoundation, {\n type LayoutFoundationWidth,\n} from '../foundation';\nimport './base.css';\n\nexport interface LayoutBaseProps\n extends React.HTMLAttributes<HTMLDivElement> {\n width?: LayoutFoundationWidth;\n header?: React.ReactNode;\n footer?: React.ReactNode;\n}\n\nconst LayoutBase: React.FC<LayoutBaseProps> = ({\n width = 'default',\n header,\n footer,\n children,\n className = '',\n ...props\n}) => {\n return (\n <LayoutFoundation\n width={width}\n className={className}\n {...props}\n >\n {header && (\n <div className=\"layout-base__header\">\n {header}\n </div>\n )}\n\n <main className=\"layout-base__main\">\n {children}\n </main>\n\n {footer && (\n <div className=\"layout-base__footer\">\n {footer}\n </div>\n )}\n </LayoutFoundation>\n );\n};\n\nexport default LayoutBase;","import React from 'react';\nimport LayoutFoundation, {\n type LayoutFoundationWidth,\n} from '../foundation';\nimport './sidebar.css';\n\nexport interface LayoutSidebarProps\n extends React.HTMLAttributes<HTMLDivElement> {\n width?: LayoutFoundationWidth;\n header?: React.ReactNode;\n screenHeader?: React.ReactNode;\n sidebar?: React.ReactNode;\n footer?: React.ReactNode;\n}\n\nconst LayoutSidebar: React.FC<LayoutSidebarProps> = ({\n width = 'wide',\n header,\n screenHeader,\n sidebar,\n footer,\n children,\n className = '',\n ...props\n}) => {\n return (\n <LayoutFoundation\n width={width}\n className={className}\n {...props}\n >\n {header && (\n <div className=\"layout-sidebar__header\">\n {header}\n </div>\n )}\n\n {screenHeader && (\n <div className=\"layout-sidebar__screen-header\">\n {screenHeader}\n </div>\n )}\n\n <div className=\"layout-sidebar__body\">\n <main className=\"layout-sidebar__main\">\n {children}\n </main>\n\n {sidebar && (\n <aside className=\"layout-sidebar__side\">\n {sidebar}\n </aside>\n )}\n </div>\n\n {footer && (\n <div className=\"layout-sidebar__footer\">\n {footer}\n </div>\n )}\n </LayoutFoundation>\n );\n};\n\nexport default LayoutSidebar;","import React from 'react';\nimport './attach.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface AttachItem {\n id: string;\n name: string;\n url: string;\n mimeType?: string;\n sizeBytes?: number;\n}\n\nexport interface AttachProps\n extends React.HTMLAttributes<HTMLDivElement> {\n items: AttachItem[];\n onRemove?: (id: string) => void;\n removeLabel?: string;\n emptyLabel?: string;\n}\n\nfunction isImageAttach(item: AttachItem) {\n return item.mimeType?.startsWith('image/') ?? false;\n}\n\nfunction formatFileSize(sizeBytes?: number) {\n if (sizeBytes === undefined) {\n return 'Size unknown';\n }\n\n if (sizeBytes < 1024) {\n return `${sizeBytes} B`;\n }\n\n if (sizeBytes < 1024 * 1024) {\n return `${Math.round(sizeBytes / 1024)} KB`;\n }\n\n return `${(sizeBytes / 1024 / 1024).toFixed(1)} MB`;\n}\n\nconst Attach: React.FC<AttachProps> = ({\n items,\n onRemove,\n removeLabel = 'Удалить',\n emptyLabel,\n className = '',\n ...props\n}) => {\n if (items.length === 0) {\n return null;\n }\n\n const classes = classnames('attach', className, {});\n\n return (\n <div\n className={classes}\n {...props}\n >\n <ul className=\"attach__list\">\n {items.map((item) => {\n const isImage = isImageAttach(item);\n\n return (\n <li\n key={item.id}\n className=\"attach__item\"\n >\n <a\n className=\"attach__link\"\n href={item.url}\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n {isImage ? (\n <img\n className=\"attach__preview\"\n src={item.url}\n alt={item.name}\n />\n ) : (\n <span className=\"attach__file\">\n <span className=\"attach__name\">\n {item.name}\n </span>\n\n <span className=\"attach__size\">\n {formatFileSize(item.sizeBytes)}\n </span>\n </span>\n )}\n </a>\n\n {onRemove && (\n <button\n className=\"attach__remove\"\n type=\"button\"\n aria-label={`${removeLabel} файл ${item.name}`}\n onClick={() => onRemove(item.id)}\n >\n {removeLabel}\n </button>\n )}\n </li>\n );\n })}\n </ul>\n </div>\n );\n};\n\nexport default Attach;"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jvetrau-ds",
3
- "version": "0.1.10",
3
+ "version": "0.1.12",
4
4
  "description": "Multi-brand React design system with semantic tokens",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",