jvetrau-ds 0.1.9 → 0.1.10

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,21 +1304,18 @@ var Panel = ({
1304
1304
  var panel_default = Panel;
1305
1305
 
1306
1306
  // src/lib/resolve-asset.ts
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/") || undefined?.DEV === true;
1309
- if (isSourceRuntime && sourceAssetUrl) {
1310
- return sourceAssetUrl;
1311
- }
1312
- return new URL(`./${packageAssetPath}`, (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href))).toString();
1307
+ function resolveAsset(packageAssetPath) {
1308
+ return new URL(
1309
+ `./${packageAssetPath}`,
1310
+ (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href))
1311
+ ).toString();
1313
1312
  }
1314
1313
  var logoUrls = {
1315
1314
  symbol: resolveAsset(
1316
- "assets/components/logo/logo-symbol.svg",
1317
- 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()
1315
+ "assets/components/logo/logo-symbol.svg"
1318
1316
  ),
1319
1317
  wordmark: resolveAsset(
1320
- "assets/components/logo/logo-wordmark.svg",
1321
- 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()
1318
+ "assets/components/logo/logo-wordmark.svg"
1322
1319
  )
1323
1320
  };
1324
1321
  var Logo = ({
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 sourceAssetUrl?: string\n) {\n const isSourceRuntime =\n import.meta.url.includes('/src/') ||\n import.meta.env?.DEV === true;\n\n if (isSourceRuntime && sourceAssetUrl) {\n return sourceAssetUrl;\n }\n\n return new URL(`./${packageAssetPath}`, import.meta.url).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 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;"]}
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;"]}
package/index.js CHANGED
@@ -1296,21 +1296,18 @@ var Panel = ({
1296
1296
  var panel_default = Panel;
1297
1297
 
1298
1298
  // src/lib/resolve-asset.ts
1299
- function resolveAsset(packageAssetPath, sourceAssetUrl) {
1300
- const isSourceRuntime = import.meta.url.includes("/src/") || import.meta.env?.DEV === true;
1301
- if (isSourceRuntime && sourceAssetUrl) {
1302
- return sourceAssetUrl;
1303
- }
1304
- return new URL(`./${packageAssetPath}`, import.meta.url).toString();
1299
+ function resolveAsset(packageAssetPath) {
1300
+ return new URL(
1301
+ `./${packageAssetPath}`,
1302
+ import.meta.url
1303
+ ).toString();
1305
1304
  }
1306
1305
  var logoUrls = {
1307
1306
  symbol: resolveAsset(
1308
- "assets/components/logo/logo-symbol.svg",
1309
- new URL("./assets/logo-symbol.svg", import.meta.url).toString()
1307
+ "assets/components/logo/logo-symbol.svg"
1310
1308
  ),
1311
1309
  wordmark: resolveAsset(
1312
- "assets/components/logo/logo-wordmark.svg",
1313
- new URL("./assets/logo-wordmark.svg", import.meta.url).toString()
1310
+ "assets/components/logo/logo-wordmark.svg"
1314
1311
  )
1315
1312
  };
1316
1313
  var Logo = ({
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 sourceAssetUrl?: string\n) {\n const isSourceRuntime =\n import.meta.url.includes('/src/') ||\n import.meta.env?.DEV === true;\n\n if (isSourceRuntime && sourceAssetUrl) {\n return sourceAssetUrl;\n }\n\n return new URL(`./${packageAssetPath}`, import.meta.url).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 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;"]}
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;"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jvetrau-ds",
3
- "version": "0.1.9",
3
+ "version": "0.1.10",
4
4
  "description": "Multi-brand React design system with semantic tokens",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",