jvetrau-ds 0.1.0

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.
Files changed (71) hide show
  1. package/icons.cjs +160 -0
  2. package/icons.cjs.map +1 -0
  3. package/icons.d.cts +2 -0
  4. package/icons.d.ts +2 -0
  5. package/icons.js +158 -0
  6. package/icons.js.map +1 -0
  7. package/index.cjs +1193 -0
  8. package/index.cjs.map +1 -0
  9. package/index.d.cts +141 -0
  10. package/index.d.ts +141 -0
  11. package/index.js +1170 -0
  12. package/index.js.map +1 -0
  13. package/package.json +48 -0
  14. package/patterns.cjs +4 -0
  15. package/patterns.cjs.map +1 -0
  16. package/patterns.d.cts +2 -0
  17. package/patterns.d.ts +2 -0
  18. package/patterns.js +3 -0
  19. package/patterns.js.map +1 -0
  20. package/styles.css +1905 -0
  21. package/themes/base/desktop.css +149 -0
  22. package/themes/base/desktop.md +188 -0
  23. package/themes/base/desktop.scoped.css +149 -0
  24. package/themes/base/diagram.css +149 -0
  25. package/themes/base/diagram.md +188 -0
  26. package/themes/base/diagram.scoped.css +149 -0
  27. package/themes/base/mobile.css +149 -0
  28. package/themes/base/mobile.md +188 -0
  29. package/themes/base/mobile.scoped.css +149 -0
  30. package/themes/brandcopilot/desktop.css +149 -0
  31. package/themes/brandcopilot/desktop.md +188 -0
  32. package/themes/brandcopilot/desktop.scoped.css +149 -0
  33. package/themes/brandcopilot/diagram.css +149 -0
  34. package/themes/brandcopilot/diagram.md +188 -0
  35. package/themes/brandcopilot/diagram.scoped.css +149 -0
  36. package/themes/brandcopilot/mobile.css +149 -0
  37. package/themes/brandcopilot/mobile.md +188 -0
  38. package/themes/brandcopilot/mobile.scoped.css +149 -0
  39. package/themes/dmpatterns/desktop.css +149 -0
  40. package/themes/dmpatterns/desktop.md +188 -0
  41. package/themes/dmpatterns/desktop.scoped.css +149 -0
  42. package/themes/dmpatterns/diagram.css +149 -0
  43. package/themes/dmpatterns/diagram.md +188 -0
  44. package/themes/dmpatterns/diagram.scoped.css +149 -0
  45. package/themes/dmpatterns/mobile.css +149 -0
  46. package/themes/dmpatterns/mobile.md +188 -0
  47. package/themes/dmpatterns/mobile.scoped.css +149 -0
  48. package/themes/pdigest/desktop.css +149 -0
  49. package/themes/pdigest/desktop.md +188 -0
  50. package/themes/pdigest/desktop.scoped.css +149 -0
  51. package/themes/pdigest/diagram.css +149 -0
  52. package/themes/pdigest/diagram.md +188 -0
  53. package/themes/pdigest/diagram.scoped.css +149 -0
  54. package/themes/pdigest/mobile.css +149 -0
  55. package/themes/pdigest/mobile.md +188 -0
  56. package/themes/pdigest/mobile.scoped.css +149 -0
  57. package/themes/redesigntrack/desktop.css +149 -0
  58. package/themes/redesigntrack/desktop.md +188 -0
  59. package/themes/redesigntrack/desktop.scoped.css +149 -0
  60. package/themes/redesigntrack/diagram.css +149 -0
  61. package/themes/redesigntrack/diagram.md +188 -0
  62. package/themes/redesigntrack/diagram.scoped.css +149 -0
  63. package/themes/redesigntrack/mobile.css +149 -0
  64. package/themes/redesigntrack/mobile.md +188 -0
  65. package/themes/redesigntrack/mobile.scoped.css +149 -0
  66. package/tokens.cjs +17734 -0
  67. package/tokens.cjs.map +1 -0
  68. package/tokens.d.cts +27 -0
  69. package/tokens.d.ts +27 -0
  70. package/tokens.js +17732 -0
  71. package/tokens.js.map +1 -0
package/index.cjs.map ADDED
@@ -0,0 +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/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"],"names":["jsx","isValidElement","cloneElement","jsxs","useRef","useState","useEffect","ratio","getClampedValue","React","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 type { IconGlyph } from './types';\n\nimport { 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 iconRegistry = {\n 'arrow-link': arrowLink,\n 'arrow-right': arrowRight,\n 'chevron-right': chevronRight,\n fullscreen,\n pause,\n play,\n settings,\n sound,\n 'sound-off': soundOff,\n} satisfies Record<string, 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';\n//import './icon.css';\nimport { iconRegistry } from './registry';\nimport type { 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 type IconName = keyof typeof iconRegistry;\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, { type IconName } from '../../icons/icon';\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';\n//import './menu.css';\nimport { classnames } from '../helpers/classnames';\n\nexport interface MenuProps\n extends React.HTMLAttributes<HTMLElement> {\n state?: 'default' | 'error' | 'success';\n}\n\nconst Menu: React.FC<MenuProps> = ({\n state = 'default',\n className = '',\n children,\n// disabled = false,\n ...props\n}) => {\n const classes = classnames('menu', 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 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, {\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport './video.css';\nimport { classnames } from '../helpers/classnames';\nimport Hls from 'hls.js';\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 VideoProps\n extends Omit<\n React.VideoHTMLAttributes<HTMLVideoElement>,\n 'controls' | 'src' | 'poster'\n > {\n src?: string;\n cover?: string;\n qualities?: VideoQuality[];\n defaultQuality?: string;\n label?: string;\n initialVolume?: number;\n initialMuted?: boolean;\n onQualityChange?: (quality: string) => void;\n}\n\nfunction getClampedValue(\n value: number,\n min: number,\n max: number,\n) {\n return Math.min(\n Math.max(value, min),\n max,\n );\n}\n\nfunction formatTime(value: number) {\n if (!Number.isFinite(value)) {\n return '0:00';\n }\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) {\n return 0;\n }\n\n return video.buffered.end(video.buffered.length - 1);\n}\n\nfunction getVideoSource(\n src: string | undefined,\n qualities: VideoQuality[],\n selectedQuality: string,\n) {\n const selectedQualityItem = qualities.find(\n (quality) => quality.value === selectedQuality,\n );\n\n return selectedQualityItem?.src ?? src;\n}\n\nfunction getQualityOptions(\n qualities: VideoQuality[],\n): DropdownOption[] {\n return qualities.map((quality) => ({\n value: quality.value,\n label: quality.label,\n disabled: quality.disabled,\n }));\n}\n\nconst defaultQualities: VideoQuality[] = [\n {\n value: '360p',\n label: '360p',\n },\n {\n value: '720p',\n label: '720p',\n },\n {\n value: '1080p',\n label: '1080p',\n },\n];\n\nconst Video: React.FC<VideoProps> = ({\n src,\n cover,\n qualities = defaultQualities,\n defaultQuality = '1080p',\n label = 'Video player',\n initialVolume = 1,\n initialMuted = false,\n className = '',\n autoPlay,\n loop,\n muted,\n playsInline = true,\n preload = 'metadata',\n onQualityChange,\n onPlay,\n onPause,\n onLoadedMetadata,\n onTimeUpdate,\n onProgress,\n onVolumeChange,\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 videoSrc = getVideoSource(\n src,\n qualities,\n selectedQuality,\n );\n\nReact.useEffect(() => {\n const video = videoRef.current\n\n if (!video || !videoSrc) {\n return\n }\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 qualityOptions = getQualityOptions(\n qualities,\n );\n\n const hasStarted =\n currentTime > 0 ||\n isPlaying;\n\n const hasControls =\n hasStarted;\n\n const hasVolume =\n 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) {\n return;\n }\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 handlePlayToggle = () => {\n const video = videoRef.current;\n\n if (!video) {\n return;\n }\n\n if (video.paused) {\n video.play().catch(() => undefined);\n return;\n }\n\n video.pause();\n };\n\n const handleSeek = (nextValue: number) => {\n const video = videoRef.current;\n\n if (!video) {\n return;\n }\n\n video.currentTime = getClampedValue(\n nextValue,\n 0,\n duration,\n );\n\n setCurrentTime(video.currentTime);\n };\n\n const handleVolumeChange = (nextValue: number) => {\n const video = videoRef.current;\n\n if (!video) {\n return;\n }\n\n const nextVolume = getClampedValue(\n nextValue,\n 0,\n 1,\n );\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) {\n return;\n }\n\n video.muted = !video.muted;\n setIsMuted(video.muted);\n };\n\n const handleFullscreen = () => {\n const video = videoRef.current;\n\n if (!video) {\n return;\n }\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 syncMediaState();\n onLoadedMetadata?.(event);\n };\n\n const handleTimeUpdate = (\n event: React.SyntheticEvent<HTMLVideoElement>,\n ) => {\n syncMediaState();\n onTimeUpdate?.(event);\n };\n\n const handleProgress = (\n event: React.SyntheticEvent<HTMLVideoElement>,\n ) => {\n syncMediaState();\n onProgress?.(event);\n };\n\n const handlePlay = (\n event: React.SyntheticEvent<HTMLVideoElement>,\n ) => {\n setIsPlaying(true);\n onPlay?.(event);\n };\n\n const handlePause = (\n event: React.SyntheticEvent<HTMLVideoElement>,\n ) => {\n setIsPlaying(false);\n onPause?.(event);\n };\n\n const handleNativeVolumeChange = (\n event: React.SyntheticEvent<HTMLVideoElement>,\n ) => {\n syncMediaState();\n onVolumeChange?.(event);\n };\n\n return (\n <div\n className={classes}\n aria-label={label}\n >\n <div className=\"video__surface\">\n <video\n {...props}\n ref={videoRef}\n className=\"video__media\"\n// src={videoSrc}\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 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\">\n {formatTime(currentTime)}\n </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\n icon=\"fullscreen\"\n label=\"Fullscreen\"\n onClick={handleFullscreen}\n />\n\n <div\n className=\"video__sound-control\"\n onMouseLeave={() => setIsVolumeOpen(false)}\n >\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 <Dropdown\n align=\"top-end\"\n value={selectedQuality}\n options={qualityOptions}\n label=\"Video quality\"\n onChange={handleQualityChange}\n trigger={\n <ButtonIcon\n icon=\"settings\"\n label=\"Video quality\"\n />\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';\n//import './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;"]}
package/index.d.cts ADDED
@@ -0,0 +1,141 @@
1
+ import React from 'react';
2
+ import { I as IconName } from './public-BFgsu4P2.cjs';
3
+
4
+ interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
5
+ state?: 'default' | 'primary';
6
+ icon?: React.ReactNode;
7
+ }
8
+ declare const Button: React.FC<ButtonProps>;
9
+
10
+ interface ButtonIconProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
11
+ icon: IconName;
12
+ state?: 'default' | 'disabled';
13
+ label: string;
14
+ }
15
+ declare const ButtonIcon: React.FC<ButtonIconProps>;
16
+
17
+ interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {
18
+ state?: 'default' | 'error' | 'success';
19
+ }
20
+ declare const Input: React.FC<InputProps>;
21
+
22
+ interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {
23
+ state?: 'default' | 'error' | 'success';
24
+ }
25
+ declare const Textarea: React.FC<TextareaProps>;
26
+
27
+ interface SelectProps extends React.SelectHTMLAttributes<HTMLSelectElement> {
28
+ state?: 'default' | 'error' | 'success';
29
+ }
30
+ declare const Select: React.FC<SelectProps>;
31
+
32
+ interface DropdownOption {
33
+ value: string;
34
+ label: string;
35
+ disabled?: boolean;
36
+ }
37
+ type DropdownTriggerProps = {
38
+ className?: string;
39
+ onClick?: (event: React.MouseEvent) => void;
40
+ 'aria-haspopup'?: string;
41
+ 'aria-expanded'?: boolean;
42
+ };
43
+ type DropdownTriggerElement = React.ReactElement<DropdownTriggerProps>;
44
+ interface DropdownProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {
45
+ options: DropdownOption[];
46
+ value?: string;
47
+ defaultValue?: string;
48
+ label?: string;
49
+ align?: 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end';
50
+ trigger: DropdownTriggerElement;
51
+ onChange?: (value: string) => void;
52
+ }
53
+ declare const Dropdown: React.FC<DropdownProps>;
54
+
55
+ interface CheckboxProps extends React.InputHTMLAttributes<HTMLInputElement> {
56
+ label?: React.ReactNode;
57
+ }
58
+ declare const Checkbox: React.FC<CheckboxProps>;
59
+
60
+ interface RadioProps extends React.InputHTMLAttributes<HTMLInputElement> {
61
+ label?: React.ReactNode;
62
+ }
63
+ declare const Radio: React.FC<RadioProps>;
64
+
65
+ interface FieldProps {
66
+ label?: React.ReactNode;
67
+ hint?: React.ReactNode;
68
+ error?: React.ReactNode;
69
+ required?: boolean;
70
+ disabled?: boolean;
71
+ htmlFor?: string;
72
+ className?: string;
73
+ children: React.ReactNode;
74
+ }
75
+ declare const Field: React.FC<FieldProps>;
76
+
77
+ interface MenuProps extends React.HTMLAttributes<HTMLElement> {
78
+ state?: 'default' | 'error' | 'success';
79
+ }
80
+ declare const Menu: React.FC<MenuProps>;
81
+
82
+ interface TabsProps extends React.HTMLAttributes<HTMLDivElement> {
83
+ }
84
+ declare const Tabs: React.FC<TabsProps>;
85
+
86
+ interface VideoQuality {
87
+ value: string;
88
+ label: string;
89
+ src?: string;
90
+ disabled?: boolean;
91
+ }
92
+ interface VideoProps extends Omit<React.VideoHTMLAttributes<HTMLVideoElement>, 'controls' | 'src' | 'poster'> {
93
+ src?: string;
94
+ cover?: string;
95
+ qualities?: VideoQuality[];
96
+ defaultQuality?: string;
97
+ label?: string;
98
+ initialVolume?: number;
99
+ initialMuted?: boolean;
100
+ onQualityChange?: (quality: string) => void;
101
+ }
102
+ declare const Video: React.FC<VideoProps>;
103
+
104
+ interface SearchProps extends React.HTMLAttributes<HTMLElement> {
105
+ state?: 'default' | 'error' | 'success';
106
+ }
107
+ declare const Search: React.FC<SearchProps>;
108
+
109
+ interface RichEditProps extends React.HTMLAttributes<HTMLElement> {
110
+ state?: 'default' | 'error' | 'success';
111
+ }
112
+ declare const RichEdit: React.FC<RichEditProps>;
113
+
114
+ interface TagProps extends React.HTMLAttributes<HTMLElement> {
115
+ context?: 'success' | 'error' | 'warning';
116
+ }
117
+ declare const Tag: React.FC<TagProps>;
118
+
119
+ interface ProgressBarProps extends React.HTMLAttributes<HTMLDivElement> {
120
+ mode?: 'player' | 'diagram' | 'level';
121
+ value?: number;
122
+ buffered?: number;
123
+ max?: number;
124
+ orientation?: 'horizontal' | 'vertical';
125
+ step?: number;
126
+ interactive?: boolean;
127
+ label?: string;
128
+ onValueChange?: (value: number) => void;
129
+ onValueCommit?: (value: number) => void;
130
+ }
131
+ declare const ProgressBar: React.FC<ProgressBarProps>;
132
+
133
+ interface CardProps extends React.HTMLAttributes<HTMLElement> {
134
+ state?: 'default';
135
+ heading?: React.ReactNode;
136
+ description?: React.ReactNode;
137
+ actions?: React.ReactNode;
138
+ }
139
+ declare const Card: React.FC<CardProps>;
140
+
141
+ export { Button, ButtonIcon, type ButtonIconProps, type ButtonProps, Card, type CardProps, Checkbox, type CheckboxProps, Dropdown, type DropdownProps, Field, type FieldProps, Input, type InputProps, Menu, type MenuProps, ProgressBar, type ProgressBarProps, Radio, type RadioProps, RichEdit, type RichEditProps, Search, type SearchProps, Select, type SelectProps, Tabs, type TabsProps, Tag, type TagProps, Textarea, type TextareaProps, Video, type VideoProps };
package/index.d.ts ADDED
@@ -0,0 +1,141 @@
1
+ import React from 'react';
2
+ import { I as IconName } from './public-BFgsu4P2.js';
3
+
4
+ interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
5
+ state?: 'default' | 'primary';
6
+ icon?: React.ReactNode;
7
+ }
8
+ declare const Button: React.FC<ButtonProps>;
9
+
10
+ interface ButtonIconProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
11
+ icon: IconName;
12
+ state?: 'default' | 'disabled';
13
+ label: string;
14
+ }
15
+ declare const ButtonIcon: React.FC<ButtonIconProps>;
16
+
17
+ interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {
18
+ state?: 'default' | 'error' | 'success';
19
+ }
20
+ declare const Input: React.FC<InputProps>;
21
+
22
+ interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {
23
+ state?: 'default' | 'error' | 'success';
24
+ }
25
+ declare const Textarea: React.FC<TextareaProps>;
26
+
27
+ interface SelectProps extends React.SelectHTMLAttributes<HTMLSelectElement> {
28
+ state?: 'default' | 'error' | 'success';
29
+ }
30
+ declare const Select: React.FC<SelectProps>;
31
+
32
+ interface DropdownOption {
33
+ value: string;
34
+ label: string;
35
+ disabled?: boolean;
36
+ }
37
+ type DropdownTriggerProps = {
38
+ className?: string;
39
+ onClick?: (event: React.MouseEvent) => void;
40
+ 'aria-haspopup'?: string;
41
+ 'aria-expanded'?: boolean;
42
+ };
43
+ type DropdownTriggerElement = React.ReactElement<DropdownTriggerProps>;
44
+ interface DropdownProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {
45
+ options: DropdownOption[];
46
+ value?: string;
47
+ defaultValue?: string;
48
+ label?: string;
49
+ align?: 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end';
50
+ trigger: DropdownTriggerElement;
51
+ onChange?: (value: string) => void;
52
+ }
53
+ declare const Dropdown: React.FC<DropdownProps>;
54
+
55
+ interface CheckboxProps extends React.InputHTMLAttributes<HTMLInputElement> {
56
+ label?: React.ReactNode;
57
+ }
58
+ declare const Checkbox: React.FC<CheckboxProps>;
59
+
60
+ interface RadioProps extends React.InputHTMLAttributes<HTMLInputElement> {
61
+ label?: React.ReactNode;
62
+ }
63
+ declare const Radio: React.FC<RadioProps>;
64
+
65
+ interface FieldProps {
66
+ label?: React.ReactNode;
67
+ hint?: React.ReactNode;
68
+ error?: React.ReactNode;
69
+ required?: boolean;
70
+ disabled?: boolean;
71
+ htmlFor?: string;
72
+ className?: string;
73
+ children: React.ReactNode;
74
+ }
75
+ declare const Field: React.FC<FieldProps>;
76
+
77
+ interface MenuProps extends React.HTMLAttributes<HTMLElement> {
78
+ state?: 'default' | 'error' | 'success';
79
+ }
80
+ declare const Menu: React.FC<MenuProps>;
81
+
82
+ interface TabsProps extends React.HTMLAttributes<HTMLDivElement> {
83
+ }
84
+ declare const Tabs: React.FC<TabsProps>;
85
+
86
+ interface VideoQuality {
87
+ value: string;
88
+ label: string;
89
+ src?: string;
90
+ disabled?: boolean;
91
+ }
92
+ interface VideoProps extends Omit<React.VideoHTMLAttributes<HTMLVideoElement>, 'controls' | 'src' | 'poster'> {
93
+ src?: string;
94
+ cover?: string;
95
+ qualities?: VideoQuality[];
96
+ defaultQuality?: string;
97
+ label?: string;
98
+ initialVolume?: number;
99
+ initialMuted?: boolean;
100
+ onQualityChange?: (quality: string) => void;
101
+ }
102
+ declare const Video: React.FC<VideoProps>;
103
+
104
+ interface SearchProps extends React.HTMLAttributes<HTMLElement> {
105
+ state?: 'default' | 'error' | 'success';
106
+ }
107
+ declare const Search: React.FC<SearchProps>;
108
+
109
+ interface RichEditProps extends React.HTMLAttributes<HTMLElement> {
110
+ state?: 'default' | 'error' | 'success';
111
+ }
112
+ declare const RichEdit: React.FC<RichEditProps>;
113
+
114
+ interface TagProps extends React.HTMLAttributes<HTMLElement> {
115
+ context?: 'success' | 'error' | 'warning';
116
+ }
117
+ declare const Tag: React.FC<TagProps>;
118
+
119
+ interface ProgressBarProps extends React.HTMLAttributes<HTMLDivElement> {
120
+ mode?: 'player' | 'diagram' | 'level';
121
+ value?: number;
122
+ buffered?: number;
123
+ max?: number;
124
+ orientation?: 'horizontal' | 'vertical';
125
+ step?: number;
126
+ interactive?: boolean;
127
+ label?: string;
128
+ onValueChange?: (value: number) => void;
129
+ onValueCommit?: (value: number) => void;
130
+ }
131
+ declare const ProgressBar: React.FC<ProgressBarProps>;
132
+
133
+ interface CardProps extends React.HTMLAttributes<HTMLElement> {
134
+ state?: 'default';
135
+ heading?: React.ReactNode;
136
+ description?: React.ReactNode;
137
+ actions?: React.ReactNode;
138
+ }
139
+ declare const Card: React.FC<CardProps>;
140
+
141
+ export { Button, ButtonIcon, type ButtonIconProps, type ButtonProps, Card, type CardProps, Checkbox, type CheckboxProps, Dropdown, type DropdownProps, Field, type FieldProps, Input, type InputProps, Menu, type MenuProps, ProgressBar, type ProgressBarProps, Radio, type RadioProps, RichEdit, type RichEditProps, Search, type SearchProps, Select, type SelectProps, Tabs, type TabsProps, Tag, type TagProps, Textarea, type TextareaProps, Video, type VideoProps };