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.js.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","cloneElement","jsxs","ratio","useRef","getClampedValue","useState","React"],"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 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/package.json ADDED
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "jvetrau-ds",
3
+ "version": "0.1.0",
4
+ "description": "Multi-brand React design system with semantic tokens",
5
+ "license": "UNLICENSED",
6
+ "type": "module",
7
+ "private": false,
8
+ "sideEffects": [
9
+ "*.css",
10
+ "**/*.css"
11
+ ],
12
+ "main": "./index.cjs",
13
+ "module": "./index.js",
14
+ "types": "./index.d.ts",
15
+ "exports": {
16
+ ".": {
17
+ "types": "./index.d.ts",
18
+ "import": "./index.js",
19
+ "require": "./index.cjs"
20
+ },
21
+ "./patterns": {
22
+ "types": "./patterns.d.ts",
23
+ "import": "./patterns.js",
24
+ "require": "./patterns.cjs"
25
+ },
26
+ "./icons": {
27
+ "types": "./icons.d.ts",
28
+ "import": "./icons.js",
29
+ "require": "./icons.cjs"
30
+ },
31
+ "./tokens": {
32
+ "types": "./tokens.d.ts",
33
+ "import": "./tokens.js",
34
+ "require": "./tokens.cjs"
35
+ },
36
+ "./styles.css": "./styles.css",
37
+ "./themes/*.css": "./themes/*.css",
38
+ "./themes/*.scoped.css": "./themes/*.scoped.css",
39
+ "./package.json": "./package.json"
40
+ },
41
+ "peerDependencies": {
42
+ "react": "^18.0.0 || ^19.0.0",
43
+ "react-dom": "^18.0.0 || ^19.0.0"
44
+ },
45
+ "dependencies": {
46
+ "hls.js": "^1.6.16"
47
+ }
48
+ }
package/patterns.cjs ADDED
@@ -0,0 +1,4 @@
1
+ 'use strict';
2
+
3
+ //# sourceMappingURL=patterns.cjs.map
4
+ //# sourceMappingURL=patterns.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"patterns.cjs"}
package/patterns.d.cts ADDED
@@ -0,0 +1,2 @@
1
+
2
+ export { }
package/patterns.d.ts ADDED
@@ -0,0 +1,2 @@
1
+
2
+ export { }
package/patterns.js ADDED
@@ -0,0 +1,3 @@
1
+
2
+ //# sourceMappingURL=patterns.js.map
3
+ //# sourceMappingURL=patterns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"patterns.js"}