@svar-ui/react-core 2.5.1 → 2.6.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.
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +1 -1
- package/dist/index.es.js +2166 -1915
- package/dist/index.es.js.map +1 -1
- package/dist-full/index.css +1 -1
- package/package.json +3 -3
- package/types/index.d.ts +72 -7
package/dist/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../src/context.js","../src/components/helpers/getInputId.js","../src/components/TextArea.jsx","../src/components/Button.jsx","../src/components/Checkbox.jsx","../src/components/CheckboxGroup.jsx","../src/components/Portal.jsx","../src/components/Popup.jsx","../src/components/helpers/InlineDropdown.jsx","../src/components/Dropdown.jsx","../src/components/ColorSelect.jsx","../src/components/helpers/sliderMove.js","../src/components/helpers/colorTransformator.js","../src/components/helpers/colorValidation.js","../src/components/helpers/locale.js","../src/components/ColorBoard.jsx","../src/components/ColorPicker.jsx","../src/components/helpers/listnav.js","../src/components/helpers/SuggestDropdown.jsx","../src/components/Combo.jsx","../src/components/Text.jsx","../src/components/calendar/Header.jsx","../src/components/calendar/Button.jsx","../src/components/calendar/Month.jsx","../src/components/calendar/Year.jsx","../src/components/calendar/Duodecade.jsx","../src/components/calendar/helpers.js","../src/components/calendar/Panel.jsx","../src/Locale.jsx","../src/components/Calendar.jsx","../src/components/helpers/dropdown.js","../src/components/DatePicker.jsx","../src/components/RangeCalendar.jsx","../src/components/DateRangePicker.jsx","../src/components/Fullscreen.jsx","../src/components/Icon.jsx","../src/components/MultiCombo.jsx","../src/components/Pager.jsx","../src/components/RadioButton.jsx","../src/components/RadioButtonGroup.jsx","../src/components/RichSelect.jsx","../src/components/Segmented.jsx","../src/components/Select.jsx","../src/components/Slider.jsx","../src/components/Switch.jsx","../src/components/Tabs.jsx","../src/components/Counter.jsx","../src/components/Notice.jsx","../src/components/Notices.jsx","../src/components/Modal.jsx","../src/components/Globals.jsx","../src/Globals.jsx","../src/components/Field.jsx","../src/components/TwoState.jsx","../src/components/TimePicker.jsx","../src/components/ModalArea.jsx","../src/components/SideArea.jsx","../src/components/Avatar.jsx","../src/themes/FontRoboto.jsx","../src/themes/Material.jsx","../src/themes/FontOpenSans.jsx","../src/themes/Willow.jsx","../src/themes/WillowDark.jsx","../src/components/helpers/popup.js","../src/index.js"],"sourcesContent":["import { createContext } from 'react';\n\nexport const theme = createContext('');\nexport const helpers = createContext({});\nexport const i18n = createContext(null);\nexport const fieldId = createContext(null);\n","import { useContext, useState } from 'react';\nimport { fieldId } from '../../context';\nimport { uid } from '@svar-ui/lib-dom';\n\nexport function useInputId(id) {\n const contextId = useContext(fieldId);\n\n const [inputId] = useState(() => id || contextId || uid());\n\n return inputId;\n}\n","import { useCallback, useEffect, useRef } from 'react';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\n\nimport './TextArea.css';\n\nexport default function TextArea({\n value: propValue = '',\n id,\n placeholder = '',\n title = '',\n disabled = false,\n error = false,\n readonly = false,\n onChange,\n}) {\n const inputId = useInputId(id);\n const [value, setValue] = useWritableProp(propValue);\n\n const handleInput = useCallback(\n (e) => {\n const newValue = e.target.value;\n setValue(newValue);\n if (onChange) {\n onChange({ value: newValue, input: true });\n }\n },\n [onChange],\n );\n\n const ontextchange = useCallback(\n (e) => {\n const newValue = e.target.value;\n setValue(newValue);\n if (onChange) {\n onChange({ value: newValue });\n }\n },\n [onChange],\n );\n\n const inputRef = useRef(null);\n useEffect(() => {\n const handler = ontextchange;\n const node = inputRef.current;\n node.addEventListener('change', handler);\n return () => {\n if (node) {\n node.removeEventListener('change', handler);\n }\n };\n }, [ontextchange]);\n\n return (\n <textarea\n className={'wx-3yFVAC' + ` wx-textarea ${error ? 'wx-error' : ''}`}\n id={inputId}\n disabled={disabled}\n placeholder={placeholder}\n readOnly={readonly}\n title={title}\n value={value}\n onInput={handleInput}\n ref={inputRef}\n />\n );\n}\n","import { useMemo } from 'react';\nimport './Button.css';\n\nexport default function Button({\n type = '',\n css = '',\n icon = '',\n disabled = false,\n title = '',\n text = '',\n children,\n onClick,\n}) {\n const buttonCss = useMemo(() => {\n let cssType = type\n ? type\n .split(' ')\n .filter((a) => a !== '')\n .map((x) => 'wx-' + x)\n .join(' ')\n : '';\n return css + (css ? ' ' : '') + cssType;\n }, [type, css]);\n\n const handleClick = (ev) => {\n onClick && onClick(ev);\n };\n\n return (\n <button\n title={title}\n className={`wx-2ZWgb4 wx-button ${buttonCss} ${icon && !children ? 'wx-icon' : ''}`}\n disabled={disabled}\n onClick={handleClick}\n >\n {icon && <i className={'wx-2ZWgb4 ' + icon}></i>}\n {children ? children : text || ' '}\n </button>\n );\n}\n","import { useWritableProp } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\nimport './Checkbox.css';\n\nexport default function Checkbox({\n id,\n label = '',\n inputValue = '',\n value: valueProp = false,\n onChange,\n disabled = false,\n style\n}) {\n\n const inputId = useInputId(id);\n const [value, setValue] = useWritableProp(valueProp);\n\n const handlerChange = ({ target }) => {\n const newValue = target.checked;\n setValue(newValue);\n onChange && onChange({ value: newValue, inputValue });\n };\n\n return (\n <div style={style} className=\"wx-2IvefP wx-checkbox\">\n <input\n type=\"checkbox\"\n id={inputId}\n disabled={disabled}\n className=\"wx-2IvefP wx-check\"\n checked={value}\n value={inputValue}\n onChange={handlerChange}\n />\n <label htmlFor={inputId} className=\"wx-2IvefP wx-label\">\n <span className=\"wx-2IvefP wx-before\"></span>\n {label && <span className=\"wx-2IvefP wx-after\">{label}</span>}\n </label>\n </div>\n );\n}\n","import { useCallback } from 'react';\nimport Checkbox from './Checkbox.jsx';\nimport './CheckboxGroup.css';\nimport { fieldId } from \"../context\";\n\nexport default function CheckboxGroup({\n options = [],\n value = [],\n type = '',\n onChange,\n}) {\n // Handle both onchange and onChange props for compatibility\n const handleChange = useCallback(\n (obj) => {\n let newValue;\n if (obj.value) newValue = [...value, obj.inputValue];\n else newValue = value.filter((a) => a !== obj.inputValue);\n\n if (onChange) onChange({ value: newValue });\n },\n [value, onChange],\n );\n\n return (\n <fieldId.Provider value={null}>\n <div className={`wx-q8xwRD wx-checkboxgroup ${type && `wx-${type}`}`}>\n {options.map((option) => (\n <div key={option.id} className=\"wx-q8xwRD wx-item\">\n <Checkbox\n label={option.label}\n inputValue={option.id}\n value={value.includes(option.id)}\n onChange={handleChange}\n />\n </div>\n ))}\n </div>\n </fieldId.Provider>\n );\n}\n","import { useContext, useRef, useEffect, useState } from 'react';\nimport { theme as themeContext } from '../context.js';\nimport { env } from '@svar-ui/lib-dom';\nimport { createPortal } from 'react-dom';\n\nfunction Portal({ theme: initialTheme = '', target, children }) {\n const portalRef = useRef(null);\n const componentRef = useRef(null);\n const [targetRef, setTargetRef] = useState(null);\n\n if (!portalRef.current) {\n portalRef.current = document.createElement('div');\n }\n\n const contextTheme = useContext(themeContext);\n\n useEffect(() => {\n setTargetRef(\n target ||\n getParentRoot(componentRef.current) ||\n env.getTopNode(componentRef.current),\n );\n }, [componentRef.current]);\n\n return (\n <>\n <span ref={componentRef} style={{ display: 'none' }} />\n {componentRef.current && targetRef\n ? createPortal(\n <div\n className={`wx-3ZWsT0 wx-${initialTheme || contextTheme}-theme`}\n >\n {children}\n </div>,\n targetRef,\n )\n : null}\n </>\n );\n}\n\nexport default Portal;\n\nfunction getParentRoot(p) {\n const root = env.getTopNode(p);\n while (p && p !== root && !p.getAttribute('data-wx-portal-root')) {\n p = p.parentNode;\n }\n return p;\n}\n","import { useState, useEffect, useRef, useCallback, useLayoutEffect } from 'react';\nimport { clickOutside, calculatePosition, getAbsParent } from '@svar-ui/lib-dom';\nimport './Popup.css';\n\nexport function Popup({\n left = 0,\n top = 0,\n at = 'bottom',\n parent = null,\n width = 'auto',\n css = '',\n onCancel,\n children,\n trackScroll = false,\n}) {\n const [x, setX] = useState(0);\n const [y, setY] = useState(0);\n const [w, setW] = useState('auto');\n const [visible, setVisible] = useState(false);\n\n const self = useRef(null);\n const portalRef = useRef(null);\n const onCancelRef = useRef(onCancel);\n\n useEffect(() => {\n onCancelRef.current = onCancel;\n }, [onCancel]);\n\n function getWidth(calcWidth) {\n if (parent && (width + '').indexOf('%') > -1) {\n return width.replace(/(\\d+)%/, (match, value) => {\n value = (value * parent.offsetWidth) / 100 + 'px';\n return width.replace(match, value);\n });\n }\n return width && width !== 'auto' ? width : calcWidth;\n }\n\n const updatePosition = useCallback(() => {\n if (!self.current) return;\n\n const result = calculatePosition(self.current, parent, at, left, top);\n if (result) {\n setX(result.x);\n setY(result.y);\n setW(getWidth(result.width));\n }\n }, [self, parent, at, left, top, width]);\n\n useLayoutEffect(() => {\n const onScroll = (e) => {\n if (onCancelRef.current && e.target !== portalRef.current && self.current && !self.current.contains(e.target))\n onCancelRef.current(e);\n };\n\n requestAnimationFrame(() => {\n updatePosition();\n setVisible(true);\n if (trackScroll && self.current) {\n portalRef.current = getAbsParent(self.current);\n if (portalRef.current)\n portalRef.current.addEventListener('scroll', onScroll, true);\n }\n });\n\n return () => {\n if (trackScroll && portalRef.current)\n portalRef.current.removeEventListener('scroll', onScroll, true);\n };\n }, []);\n\n useLayoutEffect(() => {\n updatePosition();\n }, [parent, at, left, top]);\n\n useEffect(() => {\n const down = (e) => {\n if (onCancelRef.current) {\n onCancelRef.current(e);\n }\n };\n if (self.current) {\n return clickOutside(self.current, down).destroy;\n }\n }, []);\n\n return (\n <div\n ref={self}\n className={['wx-37M6Fj', 'wx-popup', css].filter(Boolean).join(' ')}\n style={{\n position: 'absolute',\n visibility: visible ? 'visible' : 'hidden',\n top: y + 'px',\n left: x + 'px',\n width: w,\n }}\n >\n {children}\n </div>\n );\n}\n\nexport default Popup;\n","import { useState, useEffect, useRef } from 'react';\nimport { clickOutside } from '@svar-ui/lib-dom';\nimport './InlineDropdown.css';\n\nfunction InlineDropdown({\n position: positionProp = 'bottom',\n align: alignProp = 'start',\n autoFit = true,\n onCancel = null,\n width = '100%',\n css = '',\n children,\n}) {\n const nodeRef = useRef(null);\n const [position, setPosition] = useState(positionProp);\n const [align, setAlign] = useState(alignProp);\n const onCancelRef = useRef(onCancel);\n\n useEffect(() => {\n onCancelRef.current = onCancel;\n }, [onCancel]);\n\n useEffect(() => {\n if (autoFit) {\n const node = nodeRef.current;\n if (node) {\n const nodeCoords = node.getBoundingClientRect();\n const bodyCoords = document.body.getBoundingClientRect();\n\n if (nodeCoords.right >= bodyCoords.right) {\n setAlign('end');\n }\n\n if (nodeCoords.bottom >= bodyCoords.bottom) {\n setPosition('top');\n }\n }\n }\n }, []);\n\n useEffect(() => {\n if (nodeRef.current) {\n const down = (e) => {\n onCancelRef.current && onCancelRef.current(e);\n };\n return clickOutside(nodeRef.current, down).destroy;\n }\n }, []);\n\n return (\n <div\n ref={nodeRef}\n className={[\n 'wx-dropdown',\n `wx-${position}-${align}`,\n css || '',\n 'wx-aaaVytZW',\n ]\n .filter(Boolean)\n .join(' ')}\n style={{ width: width }}\n >\n {children}\n </div>\n );\n}\n\nexport default InlineDropdown;\n","import { useState, useEffect, useRef, useMemo, useLayoutEffect } from 'react';\nimport Portal from './Portal.jsx';\nimport Popup from './Popup.jsx';\nimport InlineDropdown from './helpers/InlineDropdown.jsx';\nimport './Dropdown.css';\n\nfunction Dropdown({\n position = 'bottom',\n align = 'start',\n autoFit = true,\n inline = false,\n onCancel,\n width = '100%',\n children,\n ...props\n}) {\n const [target, setTarget] = useState(undefined);\n const nodeRef = useRef(null);\n\n const at = useMemo(() => `${position}-${align}`, [position, align]);\n\n useLayoutEffect(() => {\n if (nodeRef.current) {\n setTarget(nodeRef.current.parentNode);\n }\n }, []);\n\n return (\n <>\n {target && (inline ? (\n <InlineDropdown\n onCancel={onCancel}\n position={position}\n align={align}\n autoFit={autoFit}\n width={width}\n {...props}\n >\n {children}\n </InlineDropdown>\n ) : (\n <Portal>\n <Popup parent={target} at={at} onCancel={onCancel} width={width} {...props}>\n {children}\n </Popup>\n </Portal>\n ))}\n <span ref={nodeRef} className=\"wx-portal-node wx-32GZ52\" />\n </>\n );\n}\n\nexport default Dropdown;\n","import { useState, useCallback } from 'react';\nimport { useInputId } from './helpers/getInputId.js';\nimport Dropdown from './Dropdown.jsx';\nimport './ColorSelect.css';\n\nconst defaultColors = [\n '#00a037',\n '#37a9ef',\n '#f5a623',\n '#ff4c3b',\n '#a0a0a0',\n '#000000',\n '#ffffff',\n];\n\nexport default function ColorSelect({\n colors = defaultColors,\n value = '',\n onChange,\n id,\n clear = false,\n placeholder = '',\n title = '',\n disabled = false,\n error = false,\n dropdown = {},\n}) {\n const inputId = useInputId(id);\n const [currentValue, setCurrentValue] = useState(value);\n const [popup, setPopup] = useState(false);\n\n const selectColor = useCallback(\n (ev, color) => {\n ev.stopPropagation();\n setCurrentValue(color);\n setPopup(false);\n onChange && onChange({ value: color });\n },\n [onChange],\n );\n\n const unselectColor = useCallback(\n (ev) => {\n ev.stopPropagation();\n setCurrentValue('');\n onChange && onChange({ value: '' });\n },\n [onChange],\n );\n\n const handlePopup = useCallback(() => {\n if (disabled) return false;\n setPopup(true);\n }, [disabled]);\n\n return (\n <div className=\"wx-121TgJ wx-colorselect\" onClick={handlePopup}>\n <input\n className={\n 'wx-121TgJ wx-input' +\n (error ? ' wx-error' : '') +\n (popup ? ' wx-focus' : '')\n }\n title={title}\n value={currentValue}\n readOnly\n id={inputId}\n placeholder={placeholder}\n disabled={disabled}\n />\n\n {clear && currentValue && !disabled && (\n <i className=\"wx-121TgJ wx-clear wxi-close\" onClick={unselectColor}></i>\n )}\n\n {currentValue ? (\n <div\n className=\"wx-121TgJ wx-color wx-selected\"\n style={{ backgroundColor: currentValue || '#00a037' }}\n ></div>\n ) : (\n <div className=\"wx-121TgJ wx-empty wx-selected\"></div>\n )}\n\n {popup && (\n <Dropdown onCancel={() => setPopup(false)} {...dropdown}>\n <div className=\"wx-121TgJ wx-colors\">\n <div\n className=\"wx-121TgJ wx-empty\"\n onClick={(ev) => selectColor(ev, '')}\n ></div>\n {colors.map((color, index) => (\n <div\n key={index}\n className=\"wx-121TgJ wx-color\"\n style={{ backgroundColor: color }}\n onClick={(ev) => selectColor(ev, color)}\n ></div>\n ))}\n </div>\n </Dropdown>\n )}\n </div>\n );\n}\n","export function sliderMove(node, config) {\n const slider = node.firstChild;\n const { moveBlockSlider, moveLineSlider } = config || {};\n\n function down(ev) {\n move(ev);\n\n slider.focus();\n\n window.addEventListener('mousemove', move);\n window.addEventListener('mouseup', up);\n }\n\n function move(ev) {\n let x, y, dx, dy;\n\n const coords = node.getBoundingClientRect();\n x = coords.left;\n y = coords.top;\n\n dx = ev.clientX - x;\n dy = ev.clientY - y;\n\n if (moveBlockSlider) config.moveBlockSlider(dx, dy);\n if (moveLineSlider) config.moveLineSlider(dx);\n }\n\n function up() {\n slider.blur();\n\n window.removeEventListener('mousemove', move);\n window.removeEventListener('mouseup', up);\n }\n\n node.addEventListener('mousedown', down);\n\n return {\n destroy() {\n node.removeEventListener('mousedown', down);\n },\n };\n}\n","const colorTransformator = {\n _toHex: [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n 'A',\n 'B',\n 'C',\n 'D',\n 'E',\n 'F',\n ],\n toHex(number, length) {\n number = parseInt(number, 10);\n let str = '';\n while (number > 0) {\n str = this._toHex[number % 16] + str;\n number = Math.floor(number / 16);\n }\n while (str.length < length) str = `0${str}`;\n return str;\n },\n rgbToHex(rgb) {\n let arr = [];\n if (typeof rgb === 'string')\n rgb.replace(/[\\d+.]+/g, (v) => arr.push(parseFloat(v)));\n else if (Array.isArray(rgb)) arr = rgb;\n\n //transparent\n if (arr[3] === 0) return '';\n\n return arr\n .slice(0, 3)\n .map((n) => {\n return this.toHex(Math.floor(n), 2);\n })\n .join('');\n },\n hexToDec(hex) {\n return parseInt(hex, 16);\n },\n // only handles the six-digit hex color format\n hexToRgb(hex) {\n hex = hex.charAt(0) === '#' ? hex.slice(1) : hex;\n const rgbPairs = hex.match(/.{1,2}/g);\n\n let [r, g, b] = rgbPairs;\n\n r = this.hexToDec(r);\n g = this.hexToDec(g);\n b = this.hexToDec(b);\n\n return [r, g, b];\n },\n hsvToRgb(h, s, v) {\n let hi, f, p, q, t, r, g, b;\n hi = Math.floor(h / 60) % 6;\n f = h / 60 - hi;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n r = 0;\n g = 0;\n b = 0;\n switch (hi) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n default:\n break;\n }\n r = Math.floor(r * 255);\n g = Math.floor(g * 255);\n b = Math.floor(b * 255);\n\n return [r, g, b];\n },\n rgbToHsv(r, g, b) {\n let s, h, v;\n r /= 255;\n g /= 255;\n b /= 255;\n let min = Math.min(r, g, b);\n let max = Math.max(r, g, b);\n h = 0;\n s = max === 0 ? 0 : 1 - min / max;\n v = max;\n if (max === min) {\n h = 0;\n } else if (max === r && g >= b) {\n h = (60 * (g - b)) / (max - min) + 0;\n } else if (max === r && g < b) {\n h = (60 * (g - b)) / (max - min) + 360;\n } else if (max === g) {\n h = (60 * (b - r)) / (max - min) + 120;\n } else if (max === b) {\n h = (60 * (r - g)) / (max - min) + 240;\n }\n\n return [h, s, v];\n },\n hexToHvs(hex) {\n const rgb = this.hexToRgb(hex);\n return this.rgbToHsv(...rgb);\n },\n hvsToHex(h, v, s) {\n const rgb = this.hsvToRgb(h, v, s);\n return '#' + this.rgbToHex(rgb).toUpperCase();\n },\n};\n\nexport default colorTransformator;\n","const hexValidation = (str) => /^([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/.test(str);\n\nexport function parseColor(value) {\n if (!value) return null;\n\n value = value.toString(16);\n\n if (value.charAt(0) === '#') value = value.slice(1);\n\n if (hexValidation(value)) {\n if (value.length === 3) {\n value = value\n .slice(0, 3)\n .split('')\n .reduce((a, b) => a + b + b, '');\n }\n return `#${value.toUpperCase()}`;\n }\n\n return null;\n}\n","import { locale } from '@svar-ui/lib-dom';\nimport { en } from '@svar-ui/core-locales';\n\nexport function defaultLocale() {\n return locale(en);\n}\n","import {\n useState,\n useEffect,\n useRef,\n useCallback,\n useContext,\n useMemo,\n} from 'react';\nimport Button from './Button.jsx';\nimport { sliderMove } from './helpers/sliderMove.js';\nimport colorTransformator from './helpers/colorTransformator.js';\nimport { parseColor } from './helpers/colorValidation.js';\nimport { i18n } from '../context.js';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport './ColorBoard.css';\nimport { defaultLocale } from './helpers/locale.js';\n\nconst BLOCK = 'Block';\nconst LINE = 'Line';\n\nfunction ColorBoard({\n value: valueProp = '#65D3B3',\n button = false,\n onChange,\n}) {\n const _ = (useContext(i18n) || defaultLocale()).getGroup('core');\n\n const blockRef = useRef(null);\n const colorLineRef = useRef(null);\n\n const [blockTop, setBlockTop] = useState();\n const [blockLeft, setBlockLeft] = useState();\n const [hueColor, setHueColor] = useState();\n const [lineLeft, setLineLeft] = useState();\n\n const [value, setValue] = useWritableProp(valueProp);\n const [inputValue, setInputValue] = useState(valueProp); \n\n const moveBlockSliderRef = useRef(null);\n const moveLineSliderRef = useRef(null);\n\n const color = useMemo(() => parseColor(value) || '#65D3B3', [value]);\n const blockColor = useMemo(\n () => colorTransformator.hvsToHex(hueColor || 0, 1, 1),\n [hueColor],\n );\n\n const moveBlockSlider = useCallback(\n (dx, dy) => {\n const { width, height } = blockRef.current.getBoundingClientRect();\n\n if (dy < 0) dy = 0;\n else if (dy > height) dy = height;\n\n if (dx < 0) dx = 0;\n else if (dx > width) dx = width;\n\n setBlockTop(dy);\n setBlockLeft(dx);\n\n // Call setCurrentColor\n let _sValue, _vValue;\n\n const pxX = width / 100;\n const pxY = height / 100;\n\n _sValue = Math.ceil(dx / pxX) / 100;\n _vValue = Math.ceil(Math.abs(dy / pxY - 100)) / 100;\n\n const newValue = colorTransformator.hvsToHex(\n hueColor,\n _sValue,\n _vValue,\n );\n setValue(newValue);\n setInputValue(newValue);\n onChange && onChange({ value: newValue, input: true });\n },\n [color, hueColor, onChange],\n );\n\n const moveLineSlider = useCallback(\n (dx) => {\n const width = colorLineRef.current.getBoundingClientRect().width;\n\n if (dx < 0) dx = 0;\n else if (dx > width) dx = width;\n\n const h = Math.round((dx * 359) / width);\n const newHue = Math.max(Math.min(h, 359), 0);\n setHueColor(newHue);\n setLineLeft(dx);\n\n // Call setCurrentColor with lineSliderMove=true\n let _sValue, _vValue;\n [, _sValue, _vValue] = colorTransformator.hexToHvs(color);\n const newValue = colorTransformator.hvsToHex(newHue, _sValue, _vValue);\n setValue(newValue);\n setInputValue(newValue);\n onChange && onChange({ value: newValue, input: true });\n },\n [color, onChange],\n );\n\n moveBlockSliderRef.current = moveBlockSlider;\n moveLineSliderRef.current = moveLineSlider;\n\n const setSlidersPosition = useCallback((newColor) => {\n const [h, s, v] = colorTransformator.hexToHvs(newColor || color);\n setHueColor(h);\n\n if (blockRef.current) {\n const { width, height } = blockRef.current.getBoundingClientRect();\n\n if (colorLineRef.current) {\n setLineLeft(\n (h * colorLineRef.current.getBoundingClientRect().width) / 359,\n );\n }\n setBlockLeft(s * width);\n setBlockTop(Math.abs(height * (v - 1)));\n }\n }, [color]);\n\n const handleChange = useCallback(\n ({ target }) => {\n const newColor = parseColor(target.value);\n setInputValue(target.value);\n if (newColor) {\n setValue(newColor);\n onChange && onChange({ value: newColor, input: true });\n setSlidersPosition(newColor);\n }\n },\n [onChange, setSlidersPosition],\n );\n\n const handleSelect = useCallback(\n (ev) => {\n ev.stopPropagation();\n onChange && onChange({ value: color });\n },\n [color, onChange],\n );\n\n const keydown = useCallback(\n (ev) => {\n const slider = ev.target;\n const isSliderBlock = slider.getAttribute('data-slider') === BLOCK;\n const isSliderLine = slider.getAttribute('data-slider') === LINE;\n\n let css = window.getComputedStyle(slider);\n let left = parseFloat(css.left);\n let top = parseFloat(css.top);\n const code = ev.code;\n\n if (isSliderBlock) {\n switch (code) {\n case 'ArrowLeft': {\n left--;\n break;\n }\n case 'ArrowRight': {\n left++;\n break;\n }\n case 'ArrowDown': {\n top++;\n break;\n }\n case 'ArrowUp': {\n top--;\n break;\n }\n default:\n return;\n }\n\n moveBlockSlider(left, top);\n }\n\n if (isSliderLine) {\n if (code === 'ArrowLeft' || code === 'ArrowDown') left--;\n else if (code === 'ArrowRight' || code === 'ArrowUp') left++;\n else return;\n moveLineSlider(left);\n }\n\n ev.preventDefault();\n },\n [moveBlockSlider, moveLineSlider],\n );\n \n useEffect(() => {\n const destroy = [];\n if (blockRef.current) {\n destroy.push(\n sliderMove(blockRef.current, {\n moveBlockSlider: (dx, dy) => {\n moveBlockSliderRef.current?.(dx, dy);\n },\n }).destroy,\n );\n }\n if (colorLineRef.current) {\n destroy.push(\n sliderMove(colorLineRef.current, {\n moveLineSlider: (dx) => {\n moveLineSliderRef.current?.(dx);\n },\n }).destroy,\n );\n }\n requestAnimationFrame(()=> setSlidersPosition());\n return () => {\n destroy.forEach((d) => d());\n };\n }, []);\n const cssScope = 'wx-1yoKzq';\n\n return (\n <div className={cssScope + ' wx-colorboard'}>\n <div\n className={cssScope + ' wx-color-block'}\n style={{ background: blockColor }}\n ref={blockRef}\n >\n <div\n className={cssScope + ' wx-color-block-slider wx-slider'}\n style={{\n background: color,\n top: blockTop + 'px',\n left: blockLeft + 'px',\n }}\n tabIndex={0}\n data-slider={BLOCK}\n onKeyDown={keydown}\n ></div>\n </div>\n <div className={cssScope + ' wx-color-line'} ref={colorLineRef}>\n <div\n className={cssScope + ' wx-color-line-slider wx-slider'}\n style={{ background: blockColor, left: lineLeft + 'px' }}\n tabIndex={0}\n data-slider={LINE}\n onKeyDown={keydown}\n ></div>\n </div>\n <div className={cssScope + ' wx-color-controls'}>\n <div\n className={cssScope + ' wx-color'}\n style={{ background: color }}\n ></div>\n <input\n type=\"text\"\n className={cssScope + ' wx-text'}\n value={inputValue}\n onChange={handleChange}\n />\n </div>\n {button && (\n <Button onClick={handleSelect} type=\"secondary\">\n {_('select')}\n </Button>\n )}\n </div>\n );\n}\n\nexport default ColorBoard;\n","import { useState } from 'react';\nimport Dropdown from './Dropdown.jsx';\nimport ColorBoard from './ColorBoard.jsx';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\n\nimport './ColorPicker.css';\n\nexport default function ColorPicker({\n value: propertyValue = '',\n id,\n placeholder = '',\n title = '',\n disabled = false,\n error = false,\n clear = false,\n onChange,\n dropdown = {},\n}) {\n const inputId = useInputId(id);\n let [value, setValue] = useWritableProp(propertyValue);\n const [popup, setPopup] = useState(false);\n\n function handlePopup() {\n if (disabled) return false;\n setPopup(true);\n }\n\n function selectColor(ev) {\n if (ev.input) return;\n\n setPopup(false);\n const newValue = ev.value;\n setValue(newValue);\n if (onChange) onChange({ value: newValue });\n }\n\n function unselectColor(ev) {\n ev.stopPropagation();\n setValue('');\n if (onChange) onChange({ value: '' });\n }\n\n return (\n <div className=\"wx-mmT8WH wx-colorpicker\" onClick={handlePopup}>\n <input\n className={\n 'wx-mmT8WH wx-input' +\n (error ? ' wx-error' : '') +\n (popup ? ' wx-focus' : '')\n }\n title={title}\n value={value}\n readOnly\n id={inputId}\n placeholder={placeholder}\n disabled={disabled}\n />\n <div className=\"wx-mmT8WH wx-color\" style={{ background: value }}></div>\n\n {clear && !disabled && value && (\n <i className=\"wx-mmT8WH wxi-close\" onClick={unselectColor}></i>\n )}\n\n {popup && (\n <Dropdown onCancel={() => setPopup(false)} {...dropdown}>\n <ColorBoard value={value} button=\"true\" onChange={selectColor} />\n </Dropdown>\n )}\n </div>\n );\n}\n","import { locateID } from '@svar-ui/lib-dom';\n\nexport function getListHandlers() {\n let navIndex = null;\n let isVisible = false;\n\n let virtualized = false;\n\n let list, options, navCallback, selectCallback;\n const init = (l, o, n, c, v) => {\n list = l;\n options = o;\n navCallback = n;\n selectCallback = c;\n virtualized = v;\n };\n\n const setNav = (index) => {\n navIndex = index;\n isVisible = navIndex !== null;\n navCallback(navIndex);\n };\n\n const scrollTo = (navIndex, ev) => {\n if (!virtualized && navIndex !== null && list) {\n const next = list.querySelectorAll(`.wx-list > .wx-item`)[navIndex];\n if (next) {\n next.scrollIntoView({ block: 'nearest' });\n if (ev) ev.preventDefault();\n }\n }\n };\n\n const navigate = (dir, ev) => {\n const index =\n dir === null\n ? null\n : Math.max(0, Math.min(navIndex + dir, options.length - 1));\n if (index === navIndex) return;\n setNav(index);\n\n if (list) scrollTo(index, ev);\n else requestAnimationFrame(() => scrollTo(index, ev));\n };\n\n const move = (ev) => {\n const id = locateID(ev);\n const index = options.findIndex((a) => a.id === id);\n\n if (index !== navIndex) {\n setNav(index);\n }\n };\n\n const keydown = (ev, position) => {\n switch (ev.code) {\n case 'Enter':\n if (isVisible) selectCallback();\n else setNav(0);\n break;\n\n case 'Space':\n if (!isVisible) setNav(0);\n break;\n\n case 'Escape':\n navCallback((navIndex = null));\n break;\n\n case 'Tab':\n navCallback((navIndex = null));\n break;\n\n case 'ArrowDown':\n navigate(isVisible ? 1 : position || 0, ev);\n break;\n\n case 'ArrowUp':\n navigate(isVisible ? -1 : position || 0, ev);\n break;\n\n default:\n break;\n }\n };\n\n return { move, keydown, init, navigate };\n}\n","import { useEffect, useState, useRef, useCallback, useMemo, useLayoutEffect, memo } from 'react';\nimport { useContext } from 'react';\nimport { snippet } from '@svar-ui/lib-react';\nimport { getListHandlers } from './listnav';\nimport Dropdown from '../Dropdown.jsx';\nimport Checkbox from '../Checkbox.jsx';\nimport { i18n } from '../../context.js';\nimport './SuggestDropdown.css';\nimport { defaultLocale } from './locale.js';\n\nconst overscan = 10;\n\nconst ItemContent = memo(function ItemContent({ data, checkboxes, children, value }) {\n return (\n <>\n {checkboxes && (\n <Checkbox\n id={data.id}\n style = {{marginRight: \"8px\",pointerEvents: \"none\"}}\n value={value && value.includes(data.id)}\n />\n )}\n {children ? snippet(children, { option: data }) : data.label}\n </>\n );\n});\n\nfunction ListContent({\n visibleItems,\n visibleRange,\n navIndex,\n checkboxes,\n children,\n value,\n measureRefCallback,\n}) {\n return visibleItems.map((data, visibleIndex) => {\n const index = visibleRange.start + visibleIndex;\n return <div\n key={data.id}\n ref={visibleIndex === 0 ? measureRefCallback : undefined}\n className={`wx-233fr7 wx-item ${(index) === navIndex ? 'wx-focus' : ''}`}\n data-id={data.id}\n >\n <ItemContent\n data={data}\n checkboxes={checkboxes}\n children={children}\n value={value}\n />\n </div>\n\n });\n}\n\nexport default function SuggestDropdown({\n items = [],\n children,\n onSelect,\n onReady,\n virtualized = false,\n checkboxes,\n multiselect,\n value,\n ...rest\n}) {\n const list = useRef();\n const initialScrolled = useRef(false);\n const helpers = useRef(getListHandlers());\n\n const [navIndex, setNavIndex] = useState(null);\n const navIndexRef = useRef(navIndex);\n\n const [scrollTop, setScrollTop] = useState(0);\n const [itemHeight, setItemHeight] = useState(24);\n const isItemHeightInitialized = useRef(false);\n\n const _ = (useContext(i18n) || defaultLocale()).getGroup('core');\n\n // Keep refs current for use inside callbacks\n const itemsRef = useRef(items);\n useEffect(() => {\n itemsRef.current = items;\n }, [items]);\n\n const valueRef = useRef(value);\n useEffect(() => {\n valueRef.current = value;\n }, [value]);\n\n const itemHeightRef = useRef(0);\n useEffect(() => {\n itemHeightRef.current = itemHeight;\n }, [itemHeight]);\n\n const selectItem = useCallback((ev) => {\n if (ev) ev.stopPropagation();\n const currentItems = itemsRef.current;\n const currentValue = valueRef.current;\n const currentNavIndex = navIndexRef.current;\n let nextValue;\n const nextId = currentItems[currentNavIndex]?.id;\n if (multiselect) {\n if (currentValue && currentValue.includes(nextId)) {\n nextValue = currentValue.filter(i => i !== nextId);\n } else {\n nextValue = [...(currentValue || []), nextId];\n }\n } else {\n nextValue = nextId;\n }\n onSelect && onSelect({ id: nextValue });\n }, [multiselect, onSelect]);\n\n const selectItemRef = useRef(selectItem);\n useEffect(() => {\n selectItemRef.current = selectItem;\n }, [selectItem]);\n\n const scrollToVirtualized = useCallback((idx) => {\n if (list.current) {\n let newScrollTop = idx * itemHeightRef.current - list.current.clientHeight + itemHeightRef.current;\n setScrollTop(newScrollTop);\n list.current.scrollTop = newScrollTop;\n }\n }, [itemHeightRef.current]);\n\n const listRefCallback = useCallback(\n (el) => {\n list.current = el;\n if (virtualized) {\n if (el && !initialScrolled.current && navIndexRef.current !== null) {\n requestAnimationFrame(() => {\n if (list.current) {\n scrollToVirtualized(navIndexRef.current);\n initialScrolled.current = true;\n }\n });\n }\n if (!el) {\n initialScrolled.current = false;\n }\n }\n },\n [scrollToVirtualized]\n );\n\n const measureRefCallback = useCallback((node) => {\n if (!node) return;\n if (isItemHeightInitialized.current) return;\n \n const height = node.getBoundingClientRect().height;\n \n if (height) {\n setItemHeight(height);\n itemHeightRef.current = height;\n isItemHeightInitialized.current = true;\n }\n }, []);\n \n useEffect(() => {\n helpers.current.init(\n list.current,\n items,\n (i) => {\n setNavIndex(i);\n navIndexRef.current = i;\n },\n (ev) => selectItemRef.current(ev),\n virtualized,\n );\n }, [items, list.current, virtualized]);\n\n useEffect(() => {\n const navigateVirtualized = (dir, ev) => {\n helpers.current.navigate(dir, ev);\n scrollToVirtualized(navIndexRef.current);\n };\n\n const keydownVirtualized = (ev, dir) => {\n const currentNavIndex = navIndexRef.current;\n const currentItems = itemsRef.current;\n if (\n currentNavIndex !== 0 &&\n currentNavIndex !== currentItems.length - 1 &&\n (ev.key === 'ArrowDown' || ev.key === 'ArrowUp')\n )\n ev.preventDefault();\n helpers.current.keydown(ev, dir);\n\n if (list.current) {\n const isTargetVisibleTop = list.current.scrollTop <= navIndexRef.current * itemHeightRef.current;\n const isTargetVisibleBottom =\n list.current.scrollTop + list.current.clientHeight >=\n navIndexRef.current * itemHeightRef.current + itemHeightRef.current;\n\n if (!isTargetVisibleTop) {\n list.current.scrollTop = navIndexRef.current * itemHeightRef.current;\n setScrollTop(list.current.scrollTop);\n } else if (!isTargetVisibleBottom) {\n scrollToVirtualized(navIndexRef.current);\n }\n }\n };\n\n onReady &&\n onReady({\n navigate: virtualized ? navigateVirtualized : helpers.current.navigate,\n keydown: virtualized ? keydownVirtualized : helpers.current.keydown,\n move: helpers.current.move,\n });\n }, []);\n\n const dropdownKey = useRef(0);\n const prevItemsRef = useRef(items);\n if (prevItemsRef.current !== items) {\n prevItemsRef.current = items;\n dropdownKey.current += 1;\n }\n\n const onCancel = useCallback(() => {\n helpers.current.navigate(null);\n }, [helpers]);\n\n const handleScroll = useCallback((ev) => {\n if (virtualized) {\n setScrollTop(ev.target.scrollTop);\n }\n }, [virtualized]);\n\n const displayedItemsCount = useMemo(\n () => Math.ceil((list.current?.clientHeight || 0) / itemHeight),\n [itemHeight, scrollTop],\n );\n\n const visibleRange = useMemo(() => {\n if (!virtualized) return { start: 0, end: items.length };\n if (!items.length) return { start: 0, end: 0 };\n\n const start = Math.floor(scrollTop / itemHeight);\n const end = start + displayedItemsCount;\n\n return {\n start: Math.max(0, start - overscan),\n end: Math.min(items.length, end + overscan),\n };\n }, [virtualized, items, scrollTop, itemHeight, displayedItemsCount]);\n\n const visibleItems = useMemo(() => {\n if (!virtualized) return items;\n const { start, end } = visibleRange;\n return items.slice(start, end).map((item) => ({\n ...item,\n }));\n }, [virtualized, items, visibleRange]);\n\n const offsetTop = visibleRange.start * itemHeight;\n const totalHeight = items.length * itemHeight;\n\n useEffect(() => {\n if (navIndex === null) {\n initialScrolled.current = false;\n }\n }, [navIndex]);\n\n if (navIndex === null) return null;\n\n return (\n <Dropdown key={dropdownKey.current} onCancel={onCancel} {...rest}>\n <div\n className=\"wx-233fr7 wx-list\"\n ref={listRefCallback}\n onClick={selectItem}\n onMouseMove={helpers.current.move}\n onScroll={handleScroll}\n >\n {items.length ? (\n virtualized ? (\n <div\n className=\"wx-233fr7 wx-list-wrapper\"\n style={{ height: `${totalHeight}px` }}\n >\n <div\n className=\"wx-233fr7 wx-list-content\"\n style={{ transform: `translateY(${offsetTop}px)` }}\n >\n <ListContent\n visibleRange={visibleRange}\n visibleItems={visibleItems}\n navIndex={navIndex}\n measureRefCallback={measureRefCallback}\n checkboxes={checkboxes}\n children={children}\n value={value}\n />\n </div>\n </div>\n ) : (\n <ListContent\n visibleRange={visibleRange}\n visibleItems={visibleItems}\n navIndex={navIndex}\n measureRefCallback={measureRefCallback}\n checkboxes={checkboxes}\n children={children}\n value={value}\n />\n )\n ) : (\n <div className=\"wx-233fr7 wx-no-data\">{_('No data')}</div>\n )}\n </div>\n </Dropdown>\n );\n}\n\n","import { useState, useRef, useMemo, useCallback } from 'react';\nimport List from './helpers/SuggestDropdown.jsx';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\nimport './Combo.css';\n\nexport default function Combo({\n value: valueProp = '',\n id,\n options = [],\n textOptions = null,\n textField = 'label',\n placeholder = '',\n title = '',\n disabled = false,\n error = false,\n clear = false,\n children: kids,\n onChange,\n dropdown = {},\n}) {\n const inputId = useInputId(id);\n const navigate = useRef(null);\n const keydown = useRef(null);\n\n const [value, setValue] = useWritableProp(valueProp);\n const [filterActive, setFilterActive] = useState(false);\n const [textInput, setTextInput] = useState('');\n\n const inputElement = useRef(null);\n const hasFocus = useRef(false);\n\n // calculate the derived values\n const text = useMemo(() => {\n if (filterActive) return textInput;\n if (value || value === 0) {\n const option = (textOptions || options).find((a) => a.id === value);\n if (option) return option[textField];\n }\n return '';\n }, [filterActive, textInput, value, textOptions, options, textField]);\n\n const filteredOptions = useMemo(() => {\n if (!text || !filterActive) return options;\n\n return options.filter((i) =>\n i[textField].toLowerCase().includes(text.toLowerCase()),\n );\n }, [text, filterActive, options, textField]);\n\n const index = useCallback(\n () => filteredOptions.findIndex((a) => a.id === value),\n [filteredOptions, value],\n );\n\n const ready = useCallback((ev) => {\n navigate.current = ev.navigate;\n keydown.current = ev.keydown;\n }, []);\n\n const doSelect = useCallback(\n (id, effects) => {\n if (id || id === 0) {\n let selected = options.find((a) => a.id === id);\n setFilterActive(false);\n\n if (effects) navigate.current(null);\n\n if (selected && value !== selected.id) {\n const newValue = selected.id;\n setValue(newValue);\n onChange && onChange({ value: newValue });\n }\n }\n\n if (!hasFocus.current && effects) inputElement.current.focus();\n },\n [options, value, onChange],\n );\n\n const selectByEvent = useCallback(\n ({ id }) => {\n doSelect(id, true);\n },\n [doSelect],\n );\n\n const doUnselect = useCallback(\n (ev) => {\n if (ev) ev.stopPropagation();\n\n setValue('');\n setFilterActive(false);\n onChange && onChange({ value: '' });\n },\n [onChange],\n );\n\n const selectByText = useCallback(\n (chunk) => {\n if (!options.length) return;\n if (chunk === '' && clear) {\n doUnselect();\n return;\n }\n\n let res = options.find((i) => i[textField] === chunk);\n if (!res) {\n res = options.find((i) =>\n i[textField].toLowerCase().includes(chunk.toLowerCase()),\n );\n }\n\n const id = res ? res.id : value || options[0].id;\n doSelect(id, false);\n },\n [options, textField, clear, value, doSelect, doUnselect],\n );\n\n const handleInput = useCallback(() => {\n setTextInput(inputElement.current.value);\n setFilterActive(true);\n\n if (filteredOptions.length) navigate.current(0);\n }, [filteredOptions.length, navigate]);\n\n const handleFocus = useCallback(() => {\n hasFocus.current = true;\n }, []);\n\n const handleBlur = useCallback(() => {\n hasFocus.current = false;\n setTimeout(() => {\n if (!hasFocus.current) selectByText(text);\n }, 200);\n }, [selectByText, text]);\n\n return (\n <div\n className=\"wx-1j11Jk wx-combo\"\n onClick={() => navigate.current(index())}\n onKeyDown={(ev) => keydown.current(ev, index())}\n title={title}\n >\n <input\n className={'wx-1j11Jk wx-input ' + (error ? 'wx-error' : '')}\n id={inputId}\n ref={inputElement}\n value={text}\n disabled={disabled}\n placeholder={placeholder}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onInput={handleInput}\n />\n\n {clear && !disabled && value ? (\n <i className=\"wx-1j11Jk wx-icon wxi-close\" onClick={doUnselect}></i>\n ) : (\n <i className=\"wx-1j11Jk wx-icon wxi-angle-down\"></i>\n )}\n\n {!disabled && (\n <List items={filteredOptions} onReady={ready} onSelect={selectByEvent} {...dropdown}>\n {({ option }) => <>{kids ? kids({ option }) : option[textField]}</>}\n </List>\n )}\n </div>\n );\n}\n","import { useCallback, useEffect, useRef, useMemo } from 'react';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\nimport './Text.css';\n\nexport default function Text({\n value: propsValue = '',\n id,\n readonly = false,\n focus = false,\n select = false,\n type = 'text',\n placeholder = '',\n disabled = false,\n error = false,\n inputStyle = {},\n title = '',\n css = '',\n icon = '',\n clear = false,\n onChange,\n}) {\n const inputId = useInputId(id);\n const [value, setValue] = useWritableProp(propsValue);\n const inputRef = useRef(null);\n\n const cssString = useMemo(\n () =>\n icon && css.indexOf('wx-icon-left') === -1 ? 'wx-icon-right ' + css : css,\n [icon, css],\n );\n\n const hasLeftIcon = useMemo(\n () => icon && css.indexOf('wx-icon-left') !== -1,\n [icon, css],\n );\n\n useEffect(() => {\n const timer = setTimeout(() => {\n if (focus && inputRef.current) inputRef.current.focus();\n if (select && inputRef.current) inputRef.current.select();\n }, 1);\n\n return () => clearTimeout(timer);\n }, [focus, select]);\n\n const oninput = useCallback(\n (e) => {\n const newValue = e.target.value;\n setValue(newValue);\n onChange && onChange({ value: newValue, input: true });\n },\n [onChange],\n );\n\n const ontextchange = useCallback(\n (ev) => onChange && onChange({ value: ev.target.value }),\n [onChange],\n );\n\n function clearValue(ev) {\n ev.stopPropagation();\n setValue('');\n onChange && onChange({ value: '' });\n }\n\n let inputType = type;\n if (type !== 'password' && type !== 'number') {\n inputType = 'text';\n }\n\n // MK :: EXTRACT\n useEffect(() => {\n const handler = ontextchange;\n const node = inputRef.current;\n node.addEventListener('change', handler);\n return () => {\n if (node) {\n node.removeEventListener('change', handler);\n }\n };\n }, [ontextchange]);\n\n return (\n <div\n className={`wx-hQ64J4 wx-text ${cssString} ${error ? 'wx-error' : ''} ${\n disabled ? 'wx-disabled' : ''\n } ${clear ? 'wx-clear' : ''}`}\n >\n <input\n className=\"wx-hQ64J4 wx-input\"\n ref={inputRef}\n id={inputId}\n readOnly={readonly}\n disabled={disabled}\n placeholder={placeholder}\n type={inputType}\n style={inputStyle}\n title={title}\n value={value}\n onInput={oninput}\n />\n\n {clear && !disabled && value ? (\n <>\n <i className=\"wx-hQ64J4 wx-icon wxi-close\" onClick={clearValue}></i>\n {hasLeftIcon && <i className={`wx-hQ64J4 wx-icon ${icon}`}></i>}\n </>\n ) : icon ? (\n <i className={`wx-hQ64J4 wx-icon ${icon}`}></i>\n ) : null}\n </div>\n );\n}\n","import { useContext, useMemo } from 'react';\nimport { dateToString, getDuodecade } from '@svar-ui/lib-dom';\nimport { i18n } from '../../context.js';\n\nfunction Header({ date, type, part, onShift }) {\n const { calendar, formats } = useContext(i18n).getRaw();\n\n const year = date.getFullYear();\n\n const label = useMemo(() => {\n switch (type) {\n case 'month':\n return dateToString(formats.monthYearFormat, calendar)(date);\n case 'year':\n return dateToString(formats.yearFormat, calendar)(date);\n case 'duodecade': {\n const { start, end } = getDuodecade(year);\n const yearFormat = dateToString(formats.yearFormat, calendar);\n return `${yearFormat(new Date(start, 0, 1))} - ${yearFormat(new Date(end, 11, 31))}`;\n }\n default:\n return '';\n }\n }, [date, type, year, calendar, formats]);\n\n function changeType() {\n onShift && onShift({ diff: 0, type });\n }\n\n return (\n <div className=\"wx-8HQVQV wx-header\">\n {part !== 'right' ? (\n <i\n className=\"wx-8HQVQV wx-pager wxi-angle-left\"\n onClick={() => onShift && onShift({ diff: -1, type })}\n />\n ) : (\n <span className=\"wx-8HQVQV wx-spacer\" />\n )}\n\n <span className=\"wx-8HQVQV wx-label\" onClick={changeType}>\n {label}\n </span>\n\n {part !== 'left' ? (\n <i\n className=\"wx-8HQVQV wx-pager wxi-angle-right\"\n onClick={() => onShift && onShift({ diff: 1, type })}\n />\n ) : (\n <span className=\"wx-8HQVQV wx-spacer\" />\n )}\n </div>\n );\n}\n\nimport './Header.css';\n\nexport default Header;\n","import './Button.css';\n\nexport default function Button({ onClick, children }) {\n return (\n <button className=\"wx-3s8W4d wx-button\" onClick={onClick}>\n {children}\n </button>\n );\n}\n","import { useContext, useMemo, useEffect, useRef } from 'react';\nimport { delegateClick } from '@svar-ui/lib-dom';\nimport { i18n } from '../../context.js';\nimport './Month.css';\nimport { defaultLocale } from '../helpers/locale.js';\n\nexport default function Month({\n value,\n current,\n part = '',\n markers = null,\n onCancel,\n onChange,\n}) {\n const locale = (useContext(i18n) || defaultLocale()).getRaw().calendar;\n const weekStart = (locale.weekStart || 7) % 7;\n const weekdays = locale.dayShort\n .slice(weekStart)\n .concat(locale.dayShort.slice(0, weekStart));\n\n const dv = (d, dm, dd) =>\n new Date(\n d.getFullYear(),\n d.getMonth() + (dm || 0),\n d.getDate() + (dd || 0),\n );\n let ranges = part !== 'normal';\n\n function isWeekEnd(date) {\n const d = date.getDay();\n return d === 0 || d === 6;\n }\n\n function getStart() {\n const start = dv(current, 0, 1 - current.getDate());\n start.setDate(start.getDate() - ((start.getDay() - (weekStart - 7)) % 7));\n return start;\n }\n function getEnd() {\n const end = dv(current, 1, -current.getDate());\n end.setDate(end.getDate() + ((6 - end.getDay() + weekStart) % 7));\n return end;\n }\n\n //MK : HACK\n const lastTime = useRef(0);\n function selectDate(date, e) {\n if (e.timeStamp === lastTime.current) return;\n lastTime.current = e.timeStamp;\n\n e.stopPropagation();\n if (onChange) onChange(new Date(date));\n if (onCancel) onCancel();\n }\n\n const date = useMemo(() => {\n if (part == 'normal') return [value ? dv(value).valueOf() : 0];\n return value\n ? [\n value.start ? dv(value.start).valueOf() : 0,\n value.end ? dv(value.end).valueOf() : 0,\n ]\n : [0, 0];\n }, [part, value]);\n\n const days = useMemo(() => {\n const start = getStart();\n const end = getEnd();\n const curMonth = current.getMonth();\n\n let days = [];\n for (let d = start; d <= end; d.setDate(d.getDate() + 1)) {\n const day = {\n day: d.getDate(),\n in: d.getMonth() === curMonth,\n date: d.valueOf(),\n };\n\n let css = '';\n css += !day.in ? ' wx-inactive' : '';\n css += date.indexOf(day.date) > -1 ? ' wx-selected' : '';\n\n if (ranges) {\n const s = day.date == date[0];\n const e = day.date == date[1];\n if (s && !e) css += ' wx-left';\n else if (e && !s) css += ' wx-right';\n\n if (day.date > date[0] && day.date < date[1]) css += ' wx-inrange';\n }\n\n css += isWeekEnd(d) ? ' wx-weekend' : '';\n if (markers) {\n const mark = markers(d);\n if (mark) css += ' ' + mark;\n }\n\n days.push({ ...day, css });\n }\n return days;\n }, [current, date, ranges, markers]);\n\n const delegateRef = useRef(null);\n let delegateHandler = useRef({});\n delegateHandler.current.click = selectDate;\n\n useEffect(() => {\n delegateClick(delegateRef.current, delegateHandler.current);\n }, []);\n\n return (\n <div>\n <div className=\"wx-398RBS wx-weekdays\">\n {weekdays.map((day) => (\n <div key={day} className=\"wx-398RBS wx-weekday\">\n {day}\n </div>\n ))}\n </div>\n <div className=\"wx-398RBS wx-days\" ref={delegateRef}>\n {days.map((day) => (\n <div\n key={day.date}\n className={`wx-398RBS wx-day ${day.css} ${!day.in ? 'wx-out' : ''}`}\n data-id={day.date}\n >\n {day.day}\n </div>\n ))}\n </div>\n </div>\n );\n}\n","import { useContext, useMemo, useCallback, useRef } from 'react';\nimport Button from './Button.jsx';\nimport { getPartValue } from './helpers';\nimport { i18n } from '../../context.js';\nimport './Year.css';\nimport { useWritableProp } from '@svar-ui/lib-react';\n\nexport default function Year({\n value: valueProp,\n current: currentProp,\n part,\n onCancel,\n onChange,\n onShift,\n}) {\n const defaultDate = useRef(new Date());\n const [value, setValue] = useWritableProp(valueProp || defaultDate.current);\n const [current, setCurrent] = useWritableProp(currentProp || defaultDate.current);\n\n const locale = useContext(i18n).getRaw().calendar;\n const months = locale.monthShort || [];\n\n const monthNum = useMemo(() => {\n return current.getMonth();\n }, [current]);\n\n const selectMonth = useCallback(\n (month, e) => {\n if (month !== null && month !== undefined) {\n e.stopPropagation();\n const newCurrent = new Date(current);\n newCurrent.setMonth(month);\n setCurrent(newCurrent);\n\n onShift && onShift({ current: newCurrent });\n }\n\n if (part === 'normal') setValue(new Date(current));\n\n onCancel && onCancel();\n },\n [current, part, onShift, onCancel],\n );\n\n const done = useCallback(() => {\n const date = new Date(getPartValue(value, part) || current);\n\n date.setMonth(current.getMonth());\n date.setFullYear(current.getFullYear());\n\n onChange && onChange(date);\n }, [value, current, part, onChange]);\n\n const handleMonthClick = useCallback(\n (e) => {\n const target = e.target.closest('[data-id]');\n if (target) {\n const month = parseInt(target.getAttribute('data-id'), 10);\n selectMonth(month, e);\n }\n },\n [selectMonth],\n );\n\n return (\n <>\n <div className={'wx-34U8T8 wx-months'} onClick={handleMonthClick}>\n {months.map((month, i) => (\n <div\n key={i}\n className={\n 'wx-34U8T8 wx-month' + (monthNum === i ? ' wx-current' : '')\n }\n data-id={i}\n >\n {month}\n </div>\n ))}\n </div>\n <div className={'wx-34U8T8 wx-buttons'}>\n <Button onClick={done}>{locale.done}</Button>\n </div>\n </>\n );\n}\n","import { useContext, useMemo, useRef, useEffect } from 'react';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { delegateClick, getDuodecade } from '@svar-ui/lib-dom';\nimport Button from './Button.jsx';\nimport { getPartValue } from './helpers';\nimport { i18n } from '../../context.js';\nimport './Duodecade.css';\n\nconst cssScope = 'wx-1XEF33';\n\nconst Duodecade = ({ value, current, onCancel, onChange, onShift, part }) => {\n const _ = useContext(i18n).getRaw().calendar;\n\n const [currentState, setCurrent] = useWritableProp(current);\n const [valueState, setValue] = useWritableProp(value);\n\n const year = useMemo(() => currentState.getFullYear(), [currentState]);\n\n const years = useMemo(() => {\n const { start, end } = getDuodecade(year);\n const years = [];\n for (let y = start; y <= end; ++y) {\n years.push(y);\n }\n return years;\n }, [year]);\n\n const selectYears = {\n click: selectYear,\n };\n\n function selectYear(yearVal, e) {\n if (yearVal) {\n e.stopPropagation();\n const newCurrent = new Date(currentState);\n newCurrent.setFullYear(yearVal);\n setCurrent(newCurrent);\n\n onShift && onShift({ current: newCurrent });\n }\n\n if (part === 'normal') {\n setValue(new Date(currentState));\n }\n\n onCancel && onCancel();\n }\n\n function done() {\n const date = new Date(getPartValue(valueState, part) || currentState);\n\n date.setFullYear(currentState.getFullYear());\n\n onChange && onChange(date);\n }\n\n const containerRef = useRef(null);\n\n useEffect(() => {\n if (containerRef.current) {\n delegateClick(containerRef.current, selectYears);\n }\n }, []);\n\n return (\n <>\n <div className={cssScope + ' wx-years'} ref={containerRef}>\n {years.map((y, i) => (\n <div\n key={i}\n className={\n cssScope +\n ` wx-year ${year == y ? 'wx-current' : ''} ${i === 0 ? 'wx-prev-decade' : ''} ${i === 11 ? 'wx-next-decade' : ''}`\n }\n data-id={y}\n >\n {y}\n </div>\n ))}\n </div>\n <div className={cssScope + ' wx-buttons'}>\n <Button onClick={done}>{_.done}</Button>\n </div>\n </>\n );\n};\n\nexport default Duodecade;\n","import Month from './Month.jsx';\nimport Year from './Year.jsx';\nimport Duodecade from './Duodecade.jsx';\n\nexport const configs = {\n month: {\n component: Month,\n next: nextMonth,\n prev: prevMonth,\n },\n year: {\n component: Year,\n next: nextYear,\n prev: prevYear,\n },\n duodecade: {\n component: Duodecade,\n next: nextDuodecade,\n prev: prevDuodecade,\n },\n};\n\nfunction prevMonth(current) {\n current = new Date(current);\n current.setMonth(current.getMonth() - 1);\n return current;\n}\nfunction nextMonth(current) {\n current = new Date(current);\n current.setMonth(current.getMonth() + 1);\n return current;\n}\nfunction prevYear(current) {\n current = new Date(current);\n current.setFullYear(current.getFullYear() - 1);\n return current;\n}\nfunction nextYear(current) {\n current = new Date(current);\n current.setFullYear(current.getFullYear() + 1);\n return current;\n}\nfunction prevDuodecade(current) {\n current = new Date(current);\n current.setFullYear(current.getFullYear() - 10);\n return current;\n}\nfunction nextDuodecade(current) {\n current = new Date(current);\n current.setFullYear(current.getFullYear() + 10);\n return current;\n}\n\nexport function getPartValue(value, part) {\n let date;\n if (part === 'normal') date = value;\n else {\n const { start, end } = value;\n if (part === 'left') date = start;\n else if (part == 'right') date = end;\n else date = start ? end : start;\n }\n\n return date;\n}\n","import { useContext, useState, useMemo } from 'react';\nimport Header from './Header.jsx';\nimport Button from './Button.jsx';\nimport { configs } from './helpers';\nimport { i18n } from '../../context.js';\nimport './Panel.css';\n\nconst defaultButtons = ['clear', 'today'];\n\nfunction getButtonValue(btn) {\n if (btn === 'done') return -1;\n if (btn === 'clear') return null;\n if (btn === 'today') return new Date();\n}\n\nfunction Panel({\n value,\n current,\n onCurrentChange,\n part = 'normal',\n markers = null,\n buttons,\n onShift,\n onChange,\n}) {\n const _ = useContext(i18n).getGroup('calendar');\n\n const [type, setType] = useState('month');\n\n const buttonsList = Array.isArray(buttons)\n ? buttons\n : buttons\n ? defaultButtons\n : [];\n\n const selectDate = (ev, date) => {\n ev.preventDefault();\n onChange && onChange({ value: date });\n };\n\n const oncancel = () => {\n if (type === 'duodecade') setType('year');\n else if (type === 'year') setType('month');\n };\n\n const onShiftLocal = (ev) => {\n const { diff, current: newCurrent } = ev;\n\n if (diff === 0) {\n if (type === 'month') setType('year');\n else if (type === 'year') setType('duodecade');\n return;\n }\n if (diff) {\n const obj = configs[type];\n onCurrentChange(diff > 0 ? obj.next(current) : obj.prev(current));\n } else if (newCurrent) {\n onCurrentChange(newCurrent);\n }\n\n onShift && onShift();\n };\n\n const onChangeLocal = (value) => {\n setType('month');\n onChange && onChange({ select: true, value });\n };\n\n const CalendarView = useMemo(() => configs[type].component, [type]);\n\n return (\n <div\n className={`wx-2Gr4AS wx-calendar ${part !== 'normal' && part !== 'both' ? 'wx-part' : ''}`}\n >\n <div className=\"wx-2Gr4AS wx-wrap\">\n <Header date={current} part={part} type={type} onShift={onShiftLocal} />\n <div>\n <CalendarView\n value={value}\n current={current}\n onCurrentChange={onCurrentChange}\n part={part}\n markers={markers}\n onCancel={oncancel}\n onChange={onChangeLocal}\n onShift={onShiftLocal}\n />\n {type === 'month' && buttonsList.length > 0 && (\n <div className=\"wx-2Gr4AS wx-buttons\">\n {buttonsList.map((button) => (\n <div key={button} className=\"wx-2Gr4AS wx-button-item\">\n <Button\n onClick={(e) => selectDate(e, getButtonValue(button))}\n >\n {_(button)}\n </Button>\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n </div>\n );\n}\n\nexport default Panel;\n","import { useContext, useMemo } from 'react';\nimport { i18n } from './context';\nimport { locale } from '@svar-ui/lib-dom';\nimport { en } from '@svar-ui/core-locales';\n\nexport default function Component(props) {\n let { words = null, optional = false, children } = props;\n\n let l = useContext(i18n);\n const v = useMemo(() => {\n let t = l;\n if (!t || !t.extend) t = locale(en);\n if (words !== null) t = t.extend(words, optional);\n return t;\n }, [words, optional, l]);\n\n return <i18n.Provider value={v}>{children}</i18n.Provider>;\n}\n","import { useEffect, useCallback } from 'react';\nimport Panel from './calendar/Panel.jsx';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport Locale from '../Locale.jsx';\n\nfunction fixCurrent(current, value, setCurrent, force) {\n if (!current || force) {\n const newCurrent = value ? new Date(value) : new Date();\n newCurrent.setDate(1);\n setCurrent(newCurrent);\n } else {\n if (current.getDate() !== 1) {\n const newCurrent = new Date(current);\n newCurrent.setDate(1);\n setCurrent(newCurrent);\n }\n }\n}\n\nconst defaultButtons = ['clear', 'today'];\n\nexport default function Calendar({\n value: valueProp,\n current: currentProp,\n markers = null,\n buttons = defaultButtons,\n onChange,\n}) {\n const [value, setValue] = useWritableProp(valueProp);\n const [current, setCurrent] = useWritableProp(currentProp);\n\n useEffect(() => {\n fixCurrent(current, value, setCurrent, false);\n }, [value, current]);\n\n const onChangeLocal = useCallback(\n (v) => {\n const x = v.value;\n if (x) {\n setValue(new Date(x));\n fixCurrent(current, new Date(x), setCurrent, true);\n } else {\n setValue(null);\n }\n\n onChange && onChange({ value: x ? new Date(x) : null });\n },\n [onChange, current],\n );\n\n const onCurrentChangeLocal = useCallback(\n (v) => {\n setCurrent(v);\n },\n [setCurrent],\n );\n\n if (!current) return null;\n\n return (\n <Locale>\n <Panel\n value={value}\n current={current}\n markers={markers}\n buttons={buttons}\n onChange={onChangeLocal}\n onCurrentChange={onCurrentChangeLocal}\n />\n </Locale>\n );\n}\n","export function toDateDropdown(dropdown) {\n if (!dropdown) dropdown = {};\n if (!dropdown.width) dropdown.width = 'unset';\n return dropdown;\n}\n","import { useState, useEffect, useMemo, useContext } from 'react';\nimport { dateToString } from '@svar-ui/lib-dom';\nimport { i18n } from '../context.js';\n\nimport Text from './Text.jsx';\nimport Dropdown from './Dropdown.jsx';\nimport Calendar from './Calendar.jsx';\nimport './DatePicker.css';\nimport { defaultLocale } from './helpers/locale.js';\nimport { toDateDropdown } from './helpers/dropdown.js';\n\nconst defaultButtons = ['clear', 'today'];\n\nexport default function DatePicker({\n value: propValue,\n id,\n disabled = false,\n error = false,\n placeholder = '',\n format = '',\n buttons = defaultButtons,\n css = '',\n title = '',\n editable = false,\n clear = false,\n onChange,\n dropdown = {},\n}) {\n const { calendar: calendarLocale, formats } = (\n useContext(i18n) || defaultLocale()\n ).getRaw();\n const f = format || formats?.dateFormat;\n let dateFormat =\n typeof f === 'function' ? f : dateToString(f, calendarLocale);\n\n const [value, setValue] = useState(propValue);\n const [popup, setPopup] = useState(false);\n\n // Update local value when prop value changes\n useEffect(() => {\n setValue(propValue);\n }, [propValue]);\n\n function oncancel() {\n setPopup(false);\n }\n\n function doChange(v) {\n // skip \"select\" event if the same value\n // or different objects with the same value\n const skipEvent =\n v === value ||\n (v && value && v.valueOf() === value.valueOf()) ||\n (!v && !value);\n\n setValue(v);\n if (!skipEvent) {\n onChange && onChange({ value: v });\n }\n\n // fire after on-click finished\n setTimeout(oncancel, 1);\n }\n\n const formattedValue = useMemo(\n () => (value ? dateFormat(value) : ''),\n [value, dateFormat],\n );\n\n function onchangeHandler({ value: v, input }) {\n if (!editable && !clear) return;\n if (input) return;\n\n // convert to date, but ignore empty string input\n let date =\n typeof editable === 'function' ? editable(v) : v ? new Date(v) : null;\n\n // if date is invalid ( incorrect text input ) then use old value\n // else use the entered date\n // in any case fallback to null, to prevent undefined as value\n date = isNaN(date) ? value || null : date || null;\n doChange(date);\n }\n\n // Handle scroll event on window\n useEffect(() => {\n const handleScroll = oncancel;\n window.addEventListener('scroll', handleScroll);\n return () => window.removeEventListener('scroll', handleScroll);\n }, []);\n\n return (\n <div className=\"wx-1lKOFG wx-datepicker\" onClick={() => setPopup(true)}>\n <Text\n css={css}\n title={title}\n value={formattedValue}\n id={id}\n readonly={!editable}\n disabled={disabled}\n error={error}\n placeholder={placeholder}\n onInput={oncancel}\n onChange={onchangeHandler}\n icon=\"wxi-calendar\"\n inputStyle={{\n cursor: 'pointer',\n width: '100%',\n paddingRight:\n 'calc(var(--wx-input-icon-size) + var(--wx-input-icon-indent) * 2)',\n }}\n clear={clear}\n />\n\n {popup && !disabled && (\n <Dropdown\n onCancel={oncancel}\n {...toDateDropdown(dropdown)}\n >\n <Calendar\n buttons={buttons}\n value={value}\n onChange={(e) => doChange(e.value)}\n />\n </Dropdown>\n )}\n </div>\n );\n}\n","import { useState, useEffect, useCallback } from 'react';\nimport Panel from './calendar/Panel';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport './RangeCalendar.css';\nimport Locale from '../Locale.jsx';\n\nconst defaultButtons = ['clear', 'today'];\n\nconst RangeCalendar = ({\n start: startProp,\n end: endProp,\n current,\n months = 2,\n markers = null,\n buttons = defaultButtons,\n onChange,\n}) => {\n const [start, setStart] = useWritableProp(startProp);\n const [end, setEnd] = useWritableProp(endProp);\n const [leftCurrent, setLeftCurrent] = useState();\n const [rightCurrent, setRightCurrent] = useState();\n\n const addMonth = useCallback((l, diff, rPrev) => {\n const r = new Date(l);\n r.setMonth(r.getMonth() + diff);\n if (rPrev && r.valueOf() === rPrev.valueOf()) return rPrev;\n return r;\n }, []);\n\n const onLeft = useCallback(\n (v) => {\n setLeftCurrent(() => {\n const newLeft = new Date(v);\n newLeft.setDate(1);\n setRightCurrent(addMonth(newLeft, 1));\n return newLeft;\n });\n },\n [addMonth],\n );\n\n const onRight = useCallback(\n (v) => {\n setRightCurrent(() => {\n const newRight = new Date(v);\n newRight.setDate(1);\n setLeftCurrent(addMonth(newRight, -1));\n return newRight;\n });\n },\n [addMonth],\n );\n\n // Effect for initializing leftCurrent based on start/current\n useEffect(() => {\n const startVal = start;\n const currentVal = current;\n\n if (!leftCurrent) {\n onLeft(startVal ? new Date(startVal) : currentVal || new Date());\n }\n }, [start, current, leftCurrent, onLeft]);\n\n const selectChange = useCallback(\n (ev) => {\n const v = ev.value;\n let s = start,\n e = end;\n const final = v === -1;\n if (!final) {\n if (ev.select) {\n if (!start || end) {\n setStart((s = v));\n setEnd((e = null));\n } else {\n if (start > v) {\n setEnd((e = start));\n setStart((s = v));\n } else {\n setEnd((e = v));\n }\n }\n } else {\n if (!v) {\n setStart((s = null));\n setEnd((e = null));\n } else {\n setStart((s = new Date(v)));\n setEnd((e = new Date(v)));\n }\n }\n }\n\n if (final || !buttons.includes('done'))\n onChange && onChange({ start: s, end: e });\n return [s, e];\n },\n [start, end, buttons, onChange],\n );\n\n const doChangeStart = useCallback(\n (v) => {\n const [s] = selectChange(v);\n if (s) onLeft(new Date(s));\n },\n [onLeft, start, end],\n );\n\n const doChangeEnd = useCallback(\n (v) => {\n const [, e] = selectChange(v);\n if (e) onRight(new Date(e));\n },\n [onRight, start, end],\n );\n\n if (!leftCurrent || !rightCurrent) return null;\n\n if (months === 1) {\n return (\n <Locale>\n <Panel\n value={{ start, end }}\n current={leftCurrent}\n markers={markers}\n buttons={buttons}\n part=\"both\"\n onChange={doChangeStart}\n onCurrentChange={onLeft}\n />\n </Locale>\n );\n } else {\n return (\n <Locale>\n <div className=\"wx-p2jCaW wx-rangecalendar\">\n <div className=\"wx-p2jCaW wx-half\">\n <Panel\n value={{ start, end }}\n current={leftCurrent}\n markers={markers}\n buttons={false}\n part=\"left\"\n onChange={doChangeStart}\n onCurrentChange={onLeft}\n />\n </div>\n <div className=\"wx-p2jCaW wx-half\">\n <Panel\n value={{ start, end }}\n current={rightCurrent}\n markers={markers}\n buttons={buttons}\n part=\"right\"\n onChange={doChangeEnd}\n onCurrentChange={onRight}\n />\n </div>\n </div>\n </Locale>\n );\n }\n};\n\nexport default RangeCalendar;\n","import { useState, useEffect, useMemo, useContext, useCallback } from 'react';\nimport { dateToString } from '@svar-ui/lib-dom';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { i18n } from '../context.js';\n\nimport Text from './Text.jsx';\nimport Dropdown from './Dropdown.jsx';\nimport RangeCalendar from './RangeCalendar.jsx';\nimport { defaultLocale } from './helpers/locale.js';\nimport { toDateDropdown } from './helpers/dropdown.js';\n\nconst defaultButtons = ['clear', 'today'];\n\nconst DateRangePicker = ({\n value: valueProp,\n onChange,\n id,\n disabled = false,\n error = false,\n placeholder = '',\n css = '',\n title = '',\n format = '',\n months = 2,\n buttons = defaultButtons,\n editable = false,\n clear = false,\n dropdown,\n}) => {\n const [value, setValue] = useWritableProp(valueProp);\n const { calendar: calendarLocale, formats } = (\n useContext(i18n) || defaultLocale()\n ).getRaw();\n\n const f = format || formats?.dateFormat;\n const dateFormat =\n typeof f === 'function' ? f : dateToString(f, calendarLocale);\n\n const [popup, setPopup] = useState(false);\n\n const onCancel = useCallback(() => {\n setPopup(false);\n }, []);\n\n const formattedValue = useMemo(() => {\n return value\n ? value.start\n ? dateFormat(value.start) +\n (value.end ? ` - ${dateFormat(value.end)}` : '')\n : dateFormat(value)\n : '';\n }, [value, dateFormat]);\n\n const start = useMemo(() => {\n return value ? value.start || null : null;\n }, [value]);\n\n const end = useMemo(() => {\n return value ? value.end || null : null;\n }, [value]);\n\n const doChange = useCallback(\n (d) => {\n const newValue = d.start || d.end ? { start: d.start, end: d.end } : null;\n\n // Handle both cases: either external setValue or onChange prop\n if (setValue) {\n setValue(newValue);\n } else {\n // Parent must handle value prop update via onChange\n }\n\n // fire after on-click finished\n if ((d.start && d.end) || (!d.start && !d.end)) {\n // FIXME - select event will trigger even if the same value\n if (onChange) {\n onChange({ value: newValue });\n }\n setTimeout(onCancel, 1);\n }\n },\n [onChange, onCancel, setValue],\n );\n\n const doInputChange = useCallback(\n (ev) => {\n if (!editable && !clear) return;\n\n const { value: v, input } = ev;\n if (input) return;\n\n const [s, e] = v.split(' -').map((a, i) => {\n const av = a.trim();\n let date =\n typeof editable === 'function'\n ? editable(av)\n : av\n ? new Date(av)\n : null;\n\n // if date is invalid ( incorrect text input ) then use old value\n // else use the entered date\n // in any case fallback to null, to prevent undefined as value\n let val = i === 0 ? start : end;\n return isNaN(date) ? (val ? val : null) : date || null;\n });\n\n doChange({ start: s, end: e });\n },\n [editable, clear, start, end, doChange],\n );\n\n useEffect(() => {\n const handleScroll = () => {\n onCancel();\n };\n\n window.addEventListener('scroll', handleScroll);\n return () => {\n window.removeEventListener('scroll', handleScroll);\n };\n }, [onCancel]);\n\n return (\n <div\n className={`wx-1b0WDQ wx-daterangepicker ${disabled ? 'wx-disabled' : ''} ${error ? 'wx-error' : ''}`}\n onClick={() => setPopup(true)}\n >\n <Text\n css={css}\n title={title}\n value={formattedValue}\n id={id}\n readonly={!editable}\n disabled={disabled}\n placeholder={placeholder}\n error={error}\n onChange={doInputChange}\n icon=\"wxi-calendar\"\n inputStyle={{\n cursor: 'pointer',\n width: '100%',\n paddingRight:\n 'calc(var(--wx-input-icon-size) + var(--wx-input-icon-indent) * 2)',\n }}\n clear={clear}\n />\n\n {popup && !disabled && (\n <Dropdown\n onCancel={onCancel}\n {...toDateDropdown(dropdown)}\n >\n <RangeCalendar\n onCancel={onCancel}\n buttons={buttons}\n start={start}\n end={end}\n months={months}\n onChange={doChange}\n />\n </Dropdown>\n )}\n </div>\n );\n};\n\nexport default DateRangePicker;\n\nimport './DateRangePicker.css';\n","import { useEffect, useRef, useState, useMemo } from 'react';\nimport { useHotkeys } from '@svar-ui/lib-react';\nimport Button from './Button.jsx';\nimport './Fullscreen.css';\n\nexport default function Fullscreen({\n hotkey = null,\n toggleButton,\n children,\n}) {\n const nodeRef = useRef(null);\n const [inFullscreen, setInFullscreen] = useState(false);\n\n const icon = useMemo(\n () => `wxi-${inFullscreen ? 'collapse' : 'expand'}`,\n [inFullscreen],\n );\n\n const toggleFullscreen = useRef(null);\n toggleFullscreen.current = () => {\n const node = nodeRef.current;\n if (!inFullscreen && node) {\n node.requestFullscreen();\n } else if (inFullscreen) {\n document.exitFullscreen();\n }\n setInFullscreen((prev) => !prev);\n };\n\n useHotkeys({ [hotkey]: () => toggleFullscreen.current() }, nodeRef);\n\n useEffect(() => {\n const setFullscreenState = () => {\n setInFullscreen(document.fullscreenElement === nodeRef.current);\n };\n\n document.addEventListener('fullscreenchange', setFullscreenState);\n return () => {\n document.removeEventListener('fullscreenchange', setFullscreenState);\n };\n }, []);\n\n return (\n <div className=\"wx-13aa5W wx-fullscreen\" ref={nodeRef} tabIndex={-1}>\n {children}\n {toggleButton ? (\n toggleButton(toggleFullscreen.current, inFullscreen)\n ) : (\n <Button css=\"wx-13aa5W wx-fullscreen-button\" onClick={toggleFullscreen.current}>\n <i className={`wx-13aa5W ${icon} wx-fullscreen-icon`}> </i>\n </Button>\n )}\n </div>\n );\n}\n","import './Icon.css';\n\nexport default function Icon({ css = '', title = '', children, onClick }) {\n if (children) {\n return (\n <i\n title={title}\n role=\"img\"\n className={`wx-mdnST1 wx-icon ${css}`}\n onClick={onClick}\n >\n {children}\n </i>\n );\n } else {\n return (\n <i\n title={title}\n className={`wx-mdnST1 wx-icon ${css}`}\n onClick={onClick}\n />\n );\n }\n}\n","import { useState, useMemo, useRef, useCallback } from 'react';\nimport { useWritableProp, snippet } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\nimport List from './helpers/SuggestDropdown.jsx';\nimport './MultiCombo.css';\n\nconst defaultValue = [];\n\nexport default function MultiCombo({\n id,\n value: valueProp = defaultValue,\n options = [],\n textOptions = null,\n textField = 'label',\n placeholder = '',\n title = '',\n disabled = false,\n error = false,\n checkboxes = false,\n onChange,\n children,\n dropdown = {},\n}) {\n const inputId = useInputId(id);\n const navigate = useRef(null);\n const keydown = useRef(null);\n\n const [value, setValue] = useWritableProp(valueProp);\n\n const [text, setText] = useState('');\n const [focus, setFocus] = useState(false);\n const inputElement = useRef(null);\n\n const selected = useMemo(() => {\n return value\n ? (textOptions || options).filter((i) => value.includes(i.id))\n : [];\n }, [value, textOptions, options]);\n\n const filterOptions = useMemo(() => {\n const o = options;\n return text\n ? o.filter((i) => i[textField].toLowerCase().includes(text.toLowerCase()))\n : o;\n }, [text, options, textField]);\n\n const onready = useCallback((ev) => {\n navigate.current = ev.navigate;\n keydown.current = ev.keydown;\n }, []);\n\n const input = useCallback(() => {\n if (filterOptions.length) navigate.current(0);\n else navigate.current(null);\n }, [filterOptions]);\n\n const onselect = useCallback(\n (ev) => {\n const { id } = ev;\n if (id) {\n setValue(id);\n onChange && onChange({ value: id });\n inputElement.current.focus();\n }\n },\n [onChange],\n );\n\n const remove = useCallback(\n (id, ev) => {\n if (ev) ev.stopPropagation();\n\n const next = value.filter((i) => i !== id);\n setValue(next);\n onChange && onChange({ value: next });\n },\n [value, onChange],\n );\n\n const index = useCallback(\n () =>\n value && value.length\n ? filterOptions.findIndex((i) => i.id === value[0])\n : 0,\n [value, filterOptions],\n );\n\n const onClickHandler = useCallback(() => {\n if (!disabled) {\n inputElement.current.focus();\n navigate.current(index());\n }\n }, [disabled, index]);\n\n return (\n <div\n title={title}\n className={\n 'wx-12Wj21 wx-multicombo ' +\n `${error ? 'wx-error' : ''} ${disabled ? 'wx-disabled' : ''} ${selected.length ? 'wx-not-empty' : ''} ${focus && !disabled ? 'wx-focus' : ''}`\n }\n onClick={onClickHandler}\n onKeyDown={(ev) => keydown.current(ev, index())}\n >\n <div className=\"wx-12Wj21 wx-wrapper\">\n <div className=\"wx-12Wj21 wx-tags\">\n {selected.map((tag) => (\n <div key={tag.id} className=\"wx-12Wj21 wx-tag\">\n {children ? snippet(children, { option: tag }) : tag[textField]}\n {!disabled && (\n <i\n className=\"wx-12Wj21 wx-icon wxi-close\"\n onClick={(ev) => remove(tag.id, ev)}\n ></i>\n )}\n </div>\n ))}\n </div>\n <div className=\"wx-12Wj21 wx-select\">\n <input\n className=\"wx-12Wj21 wx-input\"\n id={inputId}\n type=\"text\"\n value={text}\n onChange={(ev) => setText(ev.target.value)}\n onInput={input}\n placeholder={placeholder}\n disabled={disabled}\n onFocus={() => setFocus(true)}\n onBlur={() => setFocus(false)}\n ref={inputElement}\n />\n <i className=\"wx-12Wj21 wx-icon wxi-angle-down\"></i>\n </div>\n </div>\n\n {!disabled && (\n <List\n items={filterOptions}\n multiselect={true}\n onReady={onready}\n onSelect={onselect}\n checkboxes={checkboxes}\n value={value}\n {...dropdown}\n >\n {({ option }) => (\n <>\n {children ? snippet(children, { option }) : option[textField]}\n </>\n )}\n </List>\n )}\n </div>\n );\n}\n","import { useContext } from 'react';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { i18n } from '../context.js';\nimport './Pager.css';\nimport { defaultLocale } from './helpers/locale.js';\n\nconst Pager = ({\n total = 0,\n pageSize: initialPageSize = 20,\n value: initialValue = 1,\n onChange,\n}) => {\n const [pageSize, setPageSize] = useWritableProp(initialPageSize);\n const [value, setValue] = useWritableProp(initialValue);\n\n const _ = (useContext(i18n) || defaultLocale()).getGroup('core');\n\n const pageCount = Math.ceil(total / pageSize);\n const from = (value - 1) * pageSize;\n const to = Math.min(value * pageSize, total);\n\n const setInnerValue = (v, final) => {\n if (Number.isNaN(v)) return;\n\n if (!final) setValue(v);\n v = Math.max(1, Math.min(v, pageCount));\n if (final) setValue(v);\n\n if (v === value) return;\n setTimeout(() => {\n onChange &&\n onChange({\n value: v,\n from: (v - 1) * pageSize,\n to: Math.min(v * pageSize, total),\n pageSize: pageSize,\n });\n });\n };\n\n function setActivePage(id) {\n switch (id) {\n case 'first':\n setInnerValue(1);\n break;\n\n case 'prev':\n setInnerValue(value - 1);\n break;\n\n case 'next':\n setInnerValue(value + 1);\n break;\n\n case 'last':\n setInnerValue(pageCount);\n break;\n\n default:\n break;\n }\n }\n\n const onPageSizeInput = (e) => {\n const newValue = e.target.value * 1;\n if (Number.isNaN(newValue)) {\n return;\n }\n\n setPageSize(newValue);\n onChange && onChange({ value, from, to, pageSize: newValue });\n };\n\n return (\n <div className=\"wx-35Np0p wx-pager\">\n <div className=\"wx-35Np0p wx-left\">\n <span>{_('Rows per page')}: </span>\n <input\n type=\"number\"\n min={1}\n className=\"wx-35Np0p wx-input\"\n value={pageSize}\n onChange={onPageSizeInput}\n />\n </div>\n\n <div className=\"wx-35Np0p wx-center\">\n <i\n className={\n 'wx-35Np0p wx-icon wxi-angle-dbl-left' +\n (value === 1 ? ' wx-disabled' : '')\n }\n onClick={() => setActivePage('first')}\n ></i>\n <i\n className={\n 'wx-35Np0p wx-icon wxi-angle-left' +\n (value === 1 ? ' wx-disabled' : '')\n }\n onClick={() => setActivePage('prev')}\n ></i>\n <input\n type=\"text\"\n value={value}\n className=\"wx-35Np0p wx-input\"\n onChange={(e) => setInnerValue(e.target.value * 1)}\n onBlur={(e) => setInnerValue(e.target.value * 1, true)}\n />\n <i\n className={\n 'wx-35Np0p wx-icon wxi-angle-right' +\n (value === pageCount ? ' wx-disabled' : '')\n }\n onClick={() => setActivePage('next')}\n ></i>\n <i\n className={\n 'wx-35Np0p wx-icon wxi-angle-dbl-right' +\n (value === pageCount ? ' wx-disabled' : '')\n }\n onClick={() => setActivePage('last')}\n ></i>\n </div>\n\n <div className=\"wx-35Np0p wx-right\">\n {_('Total pages')}: {pageCount}\n </div>\n </div>\n );\n};\n\nexport default Pager;\n","import { useState } from 'react';\nimport { useInputId } from './helpers/getInputId.js';\nimport { useId } from 'react';\nimport './RadioButton.css';\n\nexport default function RadioButton({\n id,\n label = '',\n value: externalValue,\n name = '',\n inputValue = '',\n disabled = false,\n onChange,\n}) {\n const fallbackId = useId();\n const inputId = useInputId(id) || fallbackId;\n // Internal state for uncontrolled behavior\n const [internalValue, setInternalValue] = useState(false);\n\n // Determine which value to use (controlled vs uncontrolled)\n // For React, we need to handle both cases\n const isControlled = externalValue !== undefined;\n const currentValue = isControlled ? externalValue : internalValue;\n\n function handlerChange(ev) {\n const newValue = ev.target.checked;\n\n if (!isControlled) {\n setInternalValue(newValue);\n }\n\n if (newValue && onChange) {\n onChange({ value: true, inputValue });\n }\n }\n\n return (\n <div className=\"wx-3lDF1s wx-radio\">\n <input\n type=\"radio\"\n className=\"wx-3lDF1s wx-input\"\n id={inputId}\n disabled={disabled}\n name={name}\n value={inputValue}\n checked={currentValue}\n onChange={handlerChange}\n />\n <label htmlFor={inputId} className=\"wx-3lDF1s wx-label\">\n <span className=\"wx-3lDF1s wx-circle\"></span>\n {label && <span className=\"wx-3lDF1s wx-radio-text\">{label}</span>}\n </label>\n </div>\n );\n}\n","import { uid } from '@svar-ui/lib-dom';\nimport { useState, useEffect } from 'react';\nimport RadioButton from './RadioButton.jsx';\nimport { fieldId } from \"../context\";\nimport './RadioButtonGroup.css';\n\n\nexport default function RadioButtonGroup({\n options = [{}],\n value = '',\n onChange,\n type = '',\n}) {\n const name = uid();\n\n const [currentValue, setCurrentValue] = useState(value);\n\n useEffect(() => {\n setCurrentValue(value);\n }, [value]);\n\n function handleChange(ev) {\n const newValue = ev.inputValue;\n setCurrentValue(newValue);\n if (onChange) {\n onChange({ value: newValue });\n }\n }\n\n return (\n <fieldId.Provider value={null}>\n <div className={`wx-38w70j wx-radiogroup ${type && `wx-${type}`}`}>\n {options.map((option) => (\n <div key={option.id} className=\"wx-38w70j wx-item\">\n <RadioButton\n label={option.label}\n inputValue={option.id}\n value={currentValue === option.id}\n name={name}\n onChange={handleChange}\n />\n </div>\n ))}\n </div>\n </fieldId.Provider>\n );\n}\n","import { useRef, useCallback, useMemo } from 'react';\nimport List from './helpers/SuggestDropdown.jsx';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport './RichSelect.css';\n\nexport default function RichSelect({\n value: propertyValue = '',\n options = [],\n textOptions = null,\n placeholder = '',\n disabled = false,\n error = false,\n title = '',\n textField = 'label',\n clear = false,\n children: kids,\n onChange,\n dropdown = {},\n}) {\n const navigate = useRef(null);\n const keydown = useRef(null);\n let [value, setValue] = useWritableProp(propertyValue);\n\n function ready(ev) {\n navigate.current = ev.navigate;\n keydown.current = ev.keydown;\n }\n\n const selected = useMemo(() => {\n return value || value === 0\n ? (textOptions || options).find((a) => a.id === value)\n : null;\n }, [value, textOptions, options]);\n\n const select = useCallback(\n ({ id }) => {\n if (id || id === 0) {\n setValue(id);\n navigate.current(null);\n onChange && onChange({ value: id });\n }\n },\n [setValue, onChange],\n );\n\n const unselect = useCallback(\n (ev) => {\n ev.stopPropagation();\n setValue('');\n onChange && onChange({ value: '' });\n },\n [setValue, onChange],\n );\n\n const index = useCallback(() => {\n return options.findIndex((a) => a.id === value);\n }, [options, value]);\n\n return (\n <div\n className={`wx-2YgblL wx-richselect ${error ? 'wx-2YgblL wx-error' : ''} ${disabled ? 'wx-2YgblL wx-disabled' : ''} ${!kids ? 'wx-2YgblL wx-nowrap' : ''}`}\n title={title}\n onClick={() => navigate.current(index())}\n onKeyDown={(ev) => keydown.current(ev, index())}\n tabIndex={0}\n >\n <div className=\"wx-2YgblL wx-label\">\n {selected ? (\n kids ? (\n kids(selected)\n ) : (\n selected[textField]\n )\n ) : placeholder ? (\n <span className=\"wx-2YgblL wx-placeholder\">{placeholder}</span>\n ) : (\n '\\u00A0'\n )}\n </div>\n\n {clear && !disabled && value ? (\n <i className=\"wx-2YgblL wx-icon wxi-close\" onClick={unselect} />\n ) : (\n <i className=\"wx-2YgblL wx-icon wxi-angle-down\" />\n )}\n\n {!disabled && (\n <List items={options} onReady={ready} onSelect={select} {...dropdown}>\n {({ option }) => (kids ? kids(option) : option[textField])}\n </List>\n )}\n </div>\n );\n}\n","import { useState, useEffect } from 'react';\nimport { snippet } from '@svar-ui/lib-react';\nimport './Segmented.css';\n\nconst Segmented = ({\n options = [],\n value = '',\n css = '',\n children,\n onChange,\n}) => {\n // Note: Using additional state for controlled/uncontrolled handling since React doesn't allow direct prop mutation\n const [internalValue, setInternalValue] = useState(value);\n\n const handleClick = (id) => {\n setInternalValue(id);\n if (onChange) {\n onChange({ value: id });\n }\n };\n\n // Ensure internal value stays in sync with external value changes\n useEffect(() => {\n setInternalValue(value);\n }, [value]);\n\n return (\n <div className={'wx-0hMO7P' + ` wx-segmented ${css}`}>\n {options.map((option) => (\n <button\n key={option.id}\n className={\n 'wx-0hMO7P' +\n ` wx-segment ${option.css} ${option.id === internalValue ? 'wx-selected' : ''}`\n }\n title={option.title}\n onClick={() => handleClick(option.id)}\n >\n {children ? (\n snippet(children, { option })\n ) : (\n <>\n {option.icon && (\n <i\n className={\n 'wx-0hMO7P' +\n ` wx-icon ${option.icon} ${!option.label ? 'wx-only' : ''}`\n }\n ></i>\n )}\n {option.label && (\n <span className=\"wx-0hMO7P wx-label\">{option.label}</span>\n )}\n </>\n )}\n </button>\n ))}\n </div>\n );\n};\n\nexport default Segmented;\n","import { useState, useCallback } from 'react';\nimport { useInputId } from './helpers/getInputId.js';\nimport './Select.css';\n\nexport default function Select({\n value: valueProp,\n options = [],\n placeholder = '',\n title = '',\n disabled = false,\n error = false,\n textField = 'label',\n clear = false,\n id,\n onChange,\n}) {\n const inputId = useInputId(id);\n const [value, setValue] = useState(valueProp || '');\n\n const handleChange = useCallback(\n (event) => {\n const newValue = event.target.value;\n setValue(newValue);\n if (onChange) onChange({ value: newValue });\n },\n [onChange],\n );\n\n const unselect = useCallback(() => {\n setValue('');\n if (onChange) onChange({ value: '' });\n }, [onChange]);\n\n return (\n <div className=\"wx-2yx1Fo wx-select-box\">\n <select\n id={inputId}\n value={value}\n disabled={disabled}\n className={`wx-2yx1Fo wx-select ${error ? 'wx-2yx1Fo wx-error' : ''}`}\n title={title}\n onChange={handleChange}\n >\n <option value=\"\">{placeholder}</option>\n {options.map((option) => (\n <option key={option.id} value={option.id}>\n {option[textField]}\n </option>\n ))}\n </select>\n\n {clear && !disabled && value ? (\n <i className=\"wx-2yx1Fo wx-icon wxi-close\" onClick={unselect}></i>\n ) : (\n <i className=\"wx-2yx1Fo wx-icon wxi-angle-down\"></i>\n )}\n </div>\n );\n}\n","import { useEffect, useMemo, useRef } from 'react';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\nimport './Slider.css';\n\nexport default function Slider({\n id,\n label = '',\n css = '',\n min = 0,\n max = 100,\n value: initialValue = 0,\n step = 1,\n title = '',\n disabled = false,\n onChange,\n width = \"\",\n}) {\n const inputId = useInputId(id);\n const [value, setValue] = useWritableProp(initialValue);\n const previous = useRef({ value: value, input: value });\n\n const progress = useMemo(\n () => ((value - min) / (max - min)) * 100 + '%',\n [value, min, max],\n );\n\n const bgStyle = useMemo(() => {\n return disabled\n ? ''\n : `linear-gradient(90deg, var(--wx-slider-primary) 0% ${progress}, var(--wx-slider-background) ${progress} 100%)`;\n }, [disabled, progress]);\n\n function oninput({ target }) {\n const newValue = target.value * 1;\n setValue(newValue);\n onChange &&\n onChange({\n value: newValue,\n previous: previous.current.input,\n input: true,\n });\n previous.current.input = newValue;\n }\n\n function onslider({ target }) {\n const newValue = target.value * 1;\n setValue(newValue);\n onChange && onChange({ value: newValue, previous: previous.current.value });\n previous.current.value = newValue;\n }\n\n // Sync if props.value changes externally\n useEffect(() => {\n setValue(initialValue);\n }, [initialValue]);\n\n const inputRef = useRef(null);\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.addEventListener('change', onslider);\n return () => {\n if (inputRef.current) {\n inputRef.current.removeEventListener('change', onslider);\n }\n };\n }\n }, [inputRef, onslider]);\n\n const style = {...(width && { width })};\n\n return (\n <div className={`wx-2EDJ8G wx-slider ${css}`} style={style} title={title}>\n {label && (\n <label className=\"wx-2EDJ8G wx-label\" htmlFor={inputId}>\n {label}\n </label>\n )}\n <div className=\"wx-2EDJ8G wx-inner\">\n <input\n id={inputId}\n className=\"wx-2EDJ8G wx-input\"\n type=\"range\"\n min={min}\n max={max}\n step={step}\n disabled={disabled}\n value={value}\n onInput={oninput}\n style={{ background: bgStyle }}\n ref={inputRef}\n />\n </div>\n </div>\n );\n}\n","import { useCallback } from 'react';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\nimport './Switch.css';\n\nexport default function Switch({\n id,\n value: initialValue = false,\n disabled = false,\n onChange,\n}) {\n const inputId = useInputId(id);\n const [value, setValue] = useWritableProp(initialValue);\n\n const handleChange = useCallback(\n (event) => {\n const newValue = event.target.checked;\n setValue(newValue);\n onChange && onChange({ value: newValue });\n },\n [onChange],\n );\n\n return (\n <label className=\"wx-2dAR5c wx-switch\">\n <input\n className=\"wx-2dAR5c wx-input\"\n type=\"checkbox\"\n checked={value}\n onChange={handleChange}\n disabled={disabled}\n id={inputId}\n />\n <span className=\"wx-2dAR5c wx-box\" />\n </label>\n );\n}\n","import { useWritableProp } from '@svar-ui/lib-react';\nimport './Tabs.css';\n\nconst Tabs = ({\n options = [],\n value: propValue = '',\n type = 'top',\n css = '',\n onChange,\n}) => {\n const [value, setValue] = useWritableProp(propValue);\n\n const handleClick = (optionId) => {\n setValue(optionId);\n if (onChange) {\n onChange({ value: optionId });\n }\n };\n\n return (\n <div className={'wx-138fWJ ' + `wx-tabs wx-${type} ${css}`}>\n {options.map((option) => (\n <button\n key={option.id}\n className={\n 'wx-138fWJ ' +\n `wx-tab ${option.css} ${option.id === value ? 'wx-active' : ''}`\n }\n title={option.title}\n onClick={() => handleClick(option.id)}\n >\n {option.icon && (\n <i\n className={\n 'wx-138fWJ ' +\n `wx-icon ${option.icon} ${!option.label ? 'wx-only' : ''}`\n }\n ></i>\n )}\n {option.label && (\n <span className=\"wx-138fWJ wx-label\">{option.label}</span>\n )}\n </button>\n ))}\n </div>\n );\n};\n\nexport default Tabs;\n","import { useCallback } from 'react';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\nimport './Counter.css';\n\nconst Counter = ({\n id,\n value: initialValue = 0,\n step = 1,\n min = 0,\n max = Infinity,\n error = false,\n disabled = false,\n readonly = false,\n onChange,\n}) => {\n const inputId = useInputId(id);\n const [value, setValue] = useWritableProp(initialValue);\n\n const dec = useCallback(() => {\n if (readonly || value <= min) return;\n const newValue = value - step;\n setValue(newValue);\n onChange && onChange({ value: newValue });\n }, [value, readonly, min, step, onChange]);\n\n const inc = useCallback(() => {\n if (readonly || value >= max) return;\n const newValue = value + step;\n setValue(newValue);\n onChange && onChange({ value: newValue });\n }, [value, readonly, max, step, onChange]);\n\n const blur = useCallback(() => {\n if (!readonly) {\n const tValue =\n Math.round(Math.min(max, Math.max(value, min)) / step) * step;\n const newValue = isNaN(tValue) ? Math.max(min, 0) : tValue;\n setValue(newValue);\n onChange && onChange({ value: newValue });\n }\n }, [readonly, value, max, min, step, onChange]);\n\n const input = useCallback(\n (e) => {\n const newValue = e.target.value * 1;\n setValue(newValue);\n onChange && onChange({ value: newValue, input: true });\n },\n [onChange],\n );\n\n return (\n <div\n className={\n 'wx-22t21n ' +\n `wx-counter ${disabled ? 'wx-disabled' : ''} ${readonly ? 'wx-readonly' : ''} ${error ? 'wx-error' : ''}`\n }\n >\n <button\n aria-label=\"-\"\n className={'wx-22t21n ' + 'wx-btn wx-btn-dec'}\n disabled={disabled}\n onClick={dec}\n >\n <svg\n className={'wx-22t21n ' + 'wx-dec'}\n width=\"12\"\n height=\"2\"\n viewBox=\"0 0 12 2\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M11.2501 1.74994H0.750092V0.249939H11.2501V1.74994Z\" />\n </svg>\n </button>\n <input\n id={inputId}\n type=\"text\"\n className={'wx-22t21n ' + 'wx-input'}\n disabled={disabled}\n readOnly={readonly}\n required\n value={value}\n onBlur={blur}\n onInput={input}\n />\n <button\n aria-label=\"-\"\n className={'wx-22t21n ' + 'wx-btn wx-btn-inc'}\n disabled={disabled}\n onClick={inc}\n >\n <svg\n className={'wx-22t21n ' + 'wx-inc'}\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.2501\n\t\t\t\t\t\t\t\t6.74994H6.75009V11.2499H5.25009V6.74994H0.750092V5.24994H5.25009V0.749939H6.75009V5.24994H11.2501V6.74994Z\"\n />\n </svg>\n </button>\n </div>\n );\n};\n\nexport default Counter;\n","import './Notice.css';\n\nexport default function Notice({ notice = {} }) {\n function onRemove() {\n if (notice.remove) notice.remove();\n }\n\n return (\n <div\n className={`wx-11sNg5 wx-notice wx-${notice.type ? notice.type : ''}`}\n role=\"status\"\n aria-live=\"polite\"\n >\n <div className=\"wx-11sNg5 wx-text\">{notice.text}</div>\n <div className=\"wx-11sNg5 wx-button\">\n <i className=\"wx-11sNg5 wxi-close\" onClick={onRemove} />\n </div>\n </div>\n );\n}\n","import Notice from './Notice.jsx';\nimport './Notices.css';\n\nexport default function Notices({ data = [] }) {\n return (\n <div className=\"wx-3nwoO9 wx-notices\">\n {data.map((notice) => (\n <Notice key={notice.id} notice={notice} />\n ))}\n </div>\n );\n}\n","import { useRef, useEffect, useContext } from 'react';\nimport Button from './Button.jsx';\nimport { i18n } from '../context.js';\nimport './Modal.css';\nimport { defaultLocale } from './helpers/locale.js';\n\nexport default function Modal({\n title = '',\n buttons = ['cancel', 'ok'],\n header,\n children,\n footer,\n onConfirm,\n onCancel,\n}) {\n const _ = (useContext(i18n) || defaultLocale()).getGroup('core');\n const modal = useRef(null);\n\n useEffect(() => {\n modal.current?.focus();\n }, []);\n\n function keydown(ev) {\n switch (ev.code) {\n case 'Enter': {\n const from = ev.target.tagName;\n if (from === 'TEXTAREA' || from === 'BUTTON') return;\n onConfirm && onConfirm({ event: ev });\n break;\n }\n case 'Escape':\n onCancel && onCancel({ event: ev });\n break;\n }\n }\n\n function onclick(ev, button) {\n const pack = { event: ev, button };\n if (button === 'cancel') {\n onCancel && onCancel(pack);\n } else {\n onConfirm && onConfirm(pack);\n }\n }\n\n return (\n <div\n className=\"wx-1FxkZa wx-modal\"\n ref={modal}\n tabIndex={0}\n onKeyDown={keydown}\n >\n <div className=\"wx-1FxkZa wx-window\">\n {header ? (\n header\n ) : title ? (\n <div className=\"wx-1FxkZa wx-header\">{title}</div>\n ) : null}\n\n <div>{children}</div>\n\n {footer\n ? footer\n : buttons && (\n <div className=\"wx-1FxkZa wx-buttons\">\n {buttons.map((button) => (\n <div key={button} className=\"wx-1FxkZa wx-button\">\n <Button\n type={`block ${button === 'ok' ? 'primary' : 'secondary'}`}\n onClick={(ev) => onclick(ev, button)}\n >\n {_(button)}\n </Button>\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n );\n}\n","import { useState, useImperativeHandle, forwardRef } from 'react';\nimport Notices from './Notices.jsx';\nimport Modal from './Modal.jsx';\n\nimport { uid } from '@svar-ui/lib-dom';\n\nfunction Globals({ children }, apiRef) {\n const [modal, setModal] = useState(null);\n const [notices, setNotices] = useState([]);\n\n useImperativeHandle(\n apiRef,\n () => ({\n showModal: (msg) => {\n const modalObj = { ...msg };\n setModal(modalObj);\n return new Promise((res, rej) => {\n modalObj.resolve = (v) => {\n setModal(null);\n res(v);\n };\n modalObj.reject = (v) => {\n setModal(null);\n rej(v);\n };\n });\n },\n showNotice: (msg) => {\n msg = { ...msg };\n msg.id = msg.id || uid();\n msg.remove = () =>\n setNotices((prev) => prev.filter((a) => a.id !== msg.id));\n\n if (msg.expire != -1) {\n setTimeout(msg.remove, msg.expire || 5100);\n }\n setNotices((prev) => [...prev, msg]);\n },\n }),\n [],\n );\n\n return (\n <>\n {children}\n {modal && (\n <Modal\n title={modal.title}\n buttons={modal.buttons}\n onConfirm={modal.resolve}\n onCancel={modal.reject}\n >\n {modal.message}\n </Modal>\n )}\n <Notices data={notices} />\n </>\n );\n}\n\nconst GlobalsComponentWithRef = forwardRef(Globals);\nexport default GlobalsComponentWithRef;\n","import { useMemo, useRef } from 'react';\nimport { helpers } from './context';\nimport Globals from './components/Globals.jsx';\n\nexport default function Component(props) {\n let { children } = props;\n let api = useRef();\n\n const l = useMemo(() => {\n return {\n showNotice: (msg) => api.current.showNotice(msg),\n showModal: (msg) => api.current.showModal(msg),\n };\n }, []);\n\n return (\n <helpers.Provider value={l}>\n <Globals ref={api}>{children}</Globals>\n </helpers.Provider>\n );\n}\n","import { useMemo } from 'react';\nimport { uid } from '@svar-ui/lib-dom';\nimport { fieldId } from \"../context\";\nimport './Field.css';\n\nexport default function Field({\n label = '',\n position = '',\n error = false,\n type = '',\n required = false,\n id,\n children,\n width = \"\",\n}) {\n const inputId = useMemo(() => (id === undefined ? uid() : id), [id]);\n const style = {...(width && { width })};\n\n return (\n <fieldId.Provider value={inputId}>\n <div\n style={style}\n className={`wx-2oVUvC wx-field wx-${position} ${error ? 'wx-error' : ''} ${required ? 'wx-required' : ''}`.trim()}\n >\n {label && (\n inputId\n ? <label className=\"wx-2oVUvC wx-label\" htmlFor={inputId}>{label}</label>\n : <div className=\"wx-2oVUvC wx-label\">{label}</div>\n )}\n <div className={`wx-2oVUvC wx-field-control wx-${type}`}>\n {children}\n </div>\n </div>\n </fieldId.Provider>\n );\n}\n","import { useCallback, useMemo } from 'react';\nimport { snippet, useWritableProp } from '@svar-ui/lib-react';\nimport Button from './Button.jsx';\n\nconst TwoState = ({\n value: initialValue = false,\n type = '',\n icon = '',\n disabled = false,\n iconActive = '',\n onClick,\n title = '',\n css = '',\n text = '',\n textActive = '',\n children,\n active,\n onChange,\n}) => {\n const [value, setValue] = useWritableProp(initialValue);\n\n const typeStr = useMemo(() => {\n return (value ? 'pressed' : '') + (type ? ' ' + type : '');\n }, [value, type]);\n\n const handleClick = useCallback(\n (ev) => {\n let next = !value;\n if (onClick) onClick(ev);\n if (!ev.defaultPrevented) {\n setValue(next);\n onChange && onChange({ value: next });\n }\n },\n [value, onClick, onChange],\n );\n\n if (value && active) {\n return (\n <Button\n title={title}\n text={(value && textActive) || text}\n css={css}\n type={typeStr}\n icon={(value && iconActive) || icon}\n onClick={handleClick}\n disabled={disabled}\n >\n {snippet(active, { value })}\n </Button>\n );\n } else if (children) {\n return (\n <Button\n title={title}\n text={(value && textActive) || text}\n css={css}\n type={typeStr}\n icon={(value && iconActive) || icon}\n onClick={handleClick}\n disabled={disabled}\n >\n {children}\n </Button>\n );\n } else {\n return (\n <Button\n title={title}\n text={(value && textActive) || text}\n css={css}\n type={typeStr}\n icon={(value && iconActive) || icon}\n onClick={handleClick}\n disabled={disabled}\n />\n );\n }\n};\n\nexport default TwoState;\n","import { useState, useMemo, useContext, useCallback } from 'react';\nimport Field from './Field.jsx';\nimport Text from './Text.jsx';\nimport Dropdown from './Dropdown.jsx';\nimport Slider from './Slider.jsx';\nimport TwoState from './TwoState.jsx';\nimport { i18n } from '../context.js';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { dateToString } from '@svar-ui/lib-dom';\nimport './TimePicker.css';\nimport { defaultLocale } from './helpers/locale.js';\nimport { toDateDropdown } from './helpers/dropdown.js';\n\nconst defValue = new Date(0, 0, 0, 0, 0);\n\nexport default function TimePicker({\n value: propertyValue = defValue,\n id,\n title = '',\n css = '',\n disabled = false,\n error = false,\n format = '',\n onChange,\n dropdown,\n}) {\n let [value, setValue] = useWritableProp(propertyValue);\n\n const { calendar: calendarLocale, formats } = (\n useContext(i18n) || defaultLocale()\n ).getRaw();\n const h12 = calendarLocale.clockFormat == 12;\n\n const maxH = 23;\n const maxM = 59;\n\n const timeFormat = useMemo(() => {\n const f = format || formats?.timeFormat;\n return typeof f === 'function' ? f : dateToString(f, calendarLocale);\n }, [format, formats, calendarLocale]);\n\n const zeroBased = useMemo(() => {\n return timeFormat(new Date(0, 0, 0, 1)).indexOf('01') != -1;\n }, [timeFormat]);\n\n const formatTime = (v, zeroBased) => {\n return (v < 10 && zeroBased ? `0${v}` : `${v}`).slice(-2);\n };\n\n const formatM = (v) => {\n return formatTime(v, true);\n };\n\n const getNumber = (v) => {\n return `${v}`.replace(/[^\\d]/g, '') || 0;\n };\n const formatH = (v) => {\n if (h12) {\n v = v % 12;\n if (v === 0) return '12';\n }\n return formatTime(v, zeroBased);\n };\n\n const update = useCallback((v, max) => {\n v = getNumber(v);\n return Math.min(v, max);\n }, []);\n\n const [popup, setPopup] = useState(null);\n\n const safeValue = value || defValue;\n\n const h = update(safeValue.getHours(), maxH);\n const m = update(safeValue.getMinutes(), maxM);\n\n const pm = h > 12;\n\n const hText = formatH(h);\n const mText = formatM(m);\n const textValue = useMemo(\n () => timeFormat(new Date(0, 0, 0, h, m)),\n [h, m, timeFormat],\n );\n\n const click = useCallback(() => {\n setPopup(true);\n }, []);\n\n const togglePM = useCallback(() => {\n const next = new Date(safeValue);\n next.setHours(next.getHours() + (pm ? -12 : 12));\n setValue(next);\n if (onChange) onChange({ value: next });\n }, [safeValue, pm, onChange]);\n\n const setHours = useCallback(\n ({ value: v }) => {\n if (safeValue.getHours() === v) return;\n\n const next = new Date(safeValue);\n next.setHours(v);\n setValue(next);\n if (onChange) onChange({ value: next });\n },\n [safeValue, onChange],\n );\n\n const setMinutes = useCallback(\n ({ value: v }) => {\n if (safeValue.getMinutes() === v) return;\n\n const next = new Date(safeValue);\n next.setMinutes(v);\n setValue(next);\n if (onChange) onChange({ value: next });\n },\n [safeValue, onChange],\n );\n\n const updateH = useCallback(\n (v) => {\n v = update(v, maxH);\n if (h12) {\n v = v * 1;\n if (v === 12) v = 0;\n if (pm) v += 12;\n }\n return v;\n },\n [update, h12, pm],\n );\n\n const oncancel = useCallback(() => {\n setPopup(null);\n }, []);\n\n return (\n <div\n className={`wx-7f497i wx-timepicker ${error ? 'wx-7f497i wx-error' : ''} ${disabled ? 'wx-7f497i wx-disabled' : ''}`}\n onClick={disabled ? undefined : click}\n style={{ cursor: disabled ? 'default' : 'pointer' }}\n >\n <Text\n id={id}\n css={css}\n title={title}\n value={textValue}\n readonly={true}\n disabled={disabled}\n error={error}\n icon=\"wxi-clock\"\n inputStyle={{\n cursor: 'pointer',\n width: '100%',\n paddingRight:\n 'calc(var(--wx-input-icon-size) + var(--wx-input-icon-indent) * 2)',\n }}\n />\n\n {popup && !disabled && (\n <Dropdown onCancel={oncancel} {...toDateDropdown(dropdown)}>\n <div className=\"wx-7f497i wx-wrapper\">\n <div className=\"wx-7f497i wx-timer\">\n <input\n className=\"wx-7f497i wx-digit\"\n value={hText}\n onChange={(ev) => {\n const val = updateH(ev.target.value);\n setHours({ value: val });\n }}\n />\n <div className=\"wx-7f497i wx-separator\">:</div>\n <input\n className=\"wx-7f497i wx-digit\"\n value={mText}\n onChange={(ev) => {\n const val = update(ev.target.value, maxM);\n setMinutes({ value: val });\n }}\n />\n {h12 && (\n <TwoState\n value={pm}\n onClick={togglePM}\n active={() => <span>pm</span>}\n >\n <span>am</span>\n </TwoState>\n )}\n </div>\n <Field width=\"unset\">\n <Slider\n label={calendarLocale.hours}\n value={h}\n width=\"unset\"\n onChange={setHours}\n max={maxH}\n />\n </Field>\n <Field width=\"unset\">\n <Slider\n label={calendarLocale.minutes}\n value={m}\n width=\"unset\"\n onChange={setMinutes}\n max={maxM}\n />\n </Field>\n </div>\n </Dropdown>\n )}\n </div>\n );\n}\n","import './ModalArea.css';\n\nexport default function ModalArea({ children }) {\n return (\n <div className=\"wx-KgpO9N wx-modal\">\n <div className=\"wx-KgpO9N wx-window\">{children}</div>\n </div>\n );\n}\n","import { useRef, useEffect } from 'react';\nimport { clickOutside } from '@svar-ui/lib-dom';\nimport './SideArea.css';\n\nexport default function SideArea({ position = 'right', children, onCancel }) {\n const divRef = useRef(null);\n\n useEffect(() => {\n return clickOutside(divRef.current, onCancel).destroy;\n }, []);\n\n return (\n <div ref={divRef} className={`wx-2L733M wx-sidearea wx-pos-${position}`}>\n {children}\n </div>\n );\n}\n","import { useState, useEffect, useMemo, useRef } from 'react';\nimport './Avatar.css';\n\nconst DEFAULT_BG = '#dfe2e6';\nconst DEFAULT_FONT = '#2c2f3c';\n\n/** Overlap factor: each avatar after the first adds 75% of size (25% overlap). */\nconst OVERLAP_FACTOR = 0.75;\n\nfunction getInitials(name) {\n\tname = name?.trim() || '';\n\tif (!name) return '';\n\tconst words = name.split(/\\s+/);\n\treturn (words[0][0] + (words[1]?.[0] || '')).toUpperCase().slice(0, 2);\n}\n\nfunction getContrastColor(hex) {\n\tif (!hex) return DEFAULT_FONT;\n\tlet h = hex.replace('#', '');\n\tif (h.length === 3) h = h[0] + h[0] + h[1] + h[1] + h[2] + h[2];\n\tif (h.length !== 6) return DEFAULT_FONT;\n\tconst r = parseInt(h.slice(0, 2), 16) / 255;\n\tconst g = parseInt(h.slice(2, 4), 16) / 255;\n\tconst b = parseInt(h.slice(4, 6), 16) / 255;\n\tconst luminance = 0.299 * r + 0.587 * g + 0.114 * b;\n\treturn luminance > 0.5 ? DEFAULT_FONT : '#ffffff';\n}\n\nfunction Avatar(props) {\n\tconst { value, size = 32, limit } = props;\n\n\tconst containerRef = useRef(null);\n\tconst [containerWidth, setContainerWidth] = useState(null);\n\n\tconst users = useMemo(() => {\n\t\tif (!value) return [];\n\t\treturn Array.isArray(value) ? value : [value];\n\t}, [value]);\n\n\t/** Max avatars that fit in container. Formula: width = size + (n-1) * size * 0.75. */\n\tconst maxFitting = useMemo(() => {\n\t\tif (containerWidth == null || containerWidth <= 0) {\n\t\t\treturn null;\n\t\t}\n\t\tconst n = 1 + (containerWidth / size - 1) / OVERLAP_FACTOR;\n\t\treturn Math.max(1, Math.floor(n));\n\t}, [containerWidth, size]);\n\n\tconst displayCount = useMemo(() => {\n\t\tconst cap = limit != null ? Math.min(users.length, limit) : users.length;\n\t\tif (maxFitting != null) {\n\t\t\treturn Math.min(cap, maxFitting);\n\t\t}\n\t\treturn cap;\n\t}, [users, limit, maxFitting]);\n\n\tconst displayUsers = useMemo(() => users.slice(0, displayCount), [users, displayCount]);\n\tconst overflowCount = useMemo(() => Math.max(0, users.length - displayCount), [users, displayCount]);\n\n\tuseEffect(() => {\n\t\tconst el = containerRef.current;\n\t\tif (!el) return;\n\t\tconst ro = new ResizeObserver(entries => {\n\t\t\tconst entry = entries[0];\n\t\t\tif (entry) setContainerWidth(entry.contentRect.width);\n\t\t});\n\t\tro.observe(el);\n\t\treturn () => ro.disconnect();\n\t}, []);\n\n\tconst fontSize = Math.round(size * 0.4);\n\tconst avatarBaseStyle = {\n\t\twidth: size + 'px',\n\t\theight: size + 'px',\n\t\tminWidth: size + 'px',\n\t\tminHeight: size + 'px',\n\t\tfontSize: fontSize + 'px',\n\t};\n\n\tfunction getAvatarItemStyle(user, index) {\n\t\tconst margin = index === 0 ? '0' : `${size * -0.25}px`;\n\t\tconst bg = user.avatar ? 'transparent' : user.color || DEFAULT_BG;\n\t\tconst color = user.avatar\n\t\t\t? 'transparent'\n\t\t\t: getContrastColor(user.color || DEFAULT_BG);\n\t\treturn { marginLeft: margin, backgroundColor: bg, color };\n\t}\n\n\treturn (\n\t\t<div className=\"wx-avatar-root wx-aadkRiRf\" ref={containerRef}>\n\t\t\t{displayUsers.length > 0 && (\n\t\t\t\t<div className=\"wx-avatar-stack wx-aadkRiRf\">\n\t\t\t\t\t{displayUsers.map((user, index) => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={user.id}\n\t\t\t\t\t\t\tclassName={[\n\t\t\t\t\t\t\t\t'wx-avatar',\n\t\t\t\t\t\t\t\t'wx-avatar-item',\n\t\t\t\t\t\t\t\tindex === displayUsers.length - 1 && overflowCount > 0\n\t\t\t\t\t\t\t\t\t? 'wx-avatar-overflow'\n\t\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\t\t\t'wx-aadkRiRf',\n\t\t\t\t\t\t\t].filter(Boolean).join(' ')}\n\t\t\t\t\t\t\tstyle={{ ...avatarBaseStyle, ...getAvatarItemStyle(user, index) }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{user.avatar ? (\n\t\t\t\t\t\t\t\t<img src={user.avatar} alt=\"\" loading=\"lazy\" />\n\t\t\t\t\t\t\t) : getInitials(user.name) ? (\n\t\t\t\t\t\t\t\t<span className=\"wx-aadkRiRf\">{getInitials(user.name)}</span>\n\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t{index === displayUsers.length - 1 && overflowCount > 0 && (\n\t\t\t\t\t\t\t\t<span className=\"wx-avatar-overflow-badge wx-aadkRiRf\">\n\t\t\t\t\t\t\t\t\t+{overflowCount}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nexport default Avatar;\n","import './FontRoboto.css';\nexport default function render() {\n return <></>;\n}\n","import { theme } from '../context';\nimport RobotoFont from './FontRoboto';\nimport './Material.css';\nexport default function render(props) {\n const { fonts = true, children } = props;\n\n return (\n <theme.Provider value=\"material\">\n <>\n {children && <div className=\"wx-theme wx-material-theme\">{children}</div>}\n\n {fonts && (\n <>\n <link\n rel=\"preconnect\"\n href=\"https://cdn.svar.dev\"\n crossOrigin=\"true\"\n />\n <RobotoFont />\n <link\n rel=\"stylesheet\"\n href=\"https://cdn.svar.dev/fonts/wxi/wx-icons.css\"\n />\n </>\n )}\n </>\n </theme.Provider>\n );\n}\n","import './FontOpenSans.css';\nexport default function render() {\n return <></>;\n}\n","import { theme } from '../context';\nimport FontOpenSans from './FontOpenSans';\nimport './Willow.css';\nexport default function render(props) {\n const { fonts = true, children } = props;\n\n return (\n <theme.Provider value=\"willow\">\n <>\n {children && children && (\n <div className=\"wx-theme wx-willow-theme\">{children}</div>\n )}\n\n {fonts && (\n <>\n <link\n rel=\"preconnect\"\n href=\"https://cdn.svar.dev\"\n crossOrigin=\"true\"\n />\n <FontOpenSans />\n <link\n rel=\"stylesheet\"\n href=\"https://cdn.svar.dev/fonts/wxi/wx-icons.css\"\n />\n </>\n )}\n </>\n </theme.Provider>\n );\n}\n","import { theme } from '../context';\nimport FontOpenSans from './FontOpenSans';\nimport './WillowDark.css';\nexport default function render(props) {\n const { fonts = true, children } = props;\n\n return (\n <theme.Provider value=\"willow-dark\">\n <>\n {children && children && (\n <div className=\"wx-theme wx-willow-dark-theme\">{children}</div>\n )}\n\n {fonts && (\n <>\n <link\n rel=\"preconnect\"\n href=\"https://cdn.svar.dev\"\n crossOrigin=\"true\"\n />\n <FontOpenSans />\n <link\n rel=\"stylesheet\"\n href=\"https://cdn.svar.dev/fonts/wxi/wx-icons.css\"\n />\n </>\n )}\n </>\n </theme.Provider>\n );\n}\n","import { uid } from '@svar-ui/lib-dom';\n\nexport function popupContainer(node) {\n const id = uid();\n node.setAttribute('data-wx-portal-root', id);\n}\n","export { default as TextArea } from './components/TextArea.jsx';\nexport { default as Button } from './components/Button.jsx';\nexport { default as Checkbox } from './components/Checkbox.jsx';\nexport { default as CheckboxGroup } from './components/CheckboxGroup.jsx';\nexport { default as ColorSelect } from './components/ColorSelect.jsx';\nexport { default as ColorBoard } from './components/ColorBoard.jsx';\nexport { default as ColorPicker } from './components/ColorPicker.jsx';\nexport { default as Combo } from './components/Combo.jsx';\nexport { default as DatePicker } from './components/DatePicker.jsx';\nexport { default as DateRangePicker } from './components/DateRangePicker.jsx';\nexport { default as Fullscreen } from './components/Fullscreen.jsx';\nexport { default as Icon } from './components/Icon.jsx';\nexport { default as MultiCombo } from './components/MultiCombo.jsx';\nexport { default as Popup } from './components/Popup.jsx';\nexport { default as Dropdown } from './components/Dropdown.jsx';\nexport { default as Pager } from './components/Pager.jsx';\nexport { default as RadioButton } from './components/RadioButton.jsx';\nexport { default as RadioButtonGroup } from './components/RadioButtonGroup.jsx';\nexport { default as RichSelect } from './components/RichSelect.jsx';\nexport { default as Segmented } from './components/Segmented.jsx';\nexport { default as Select } from './components/Select.jsx';\nexport { default as Slider } from './components/Slider.jsx';\nexport { default as Switch } from './components/Switch.jsx';\nexport { default as Tabs } from './components/Tabs.jsx';\nexport { default as Text } from './components/Text.jsx';\nexport { default as Counter } from './components/Counter.jsx';\nexport { default as Globals } from './Globals.jsx';\nexport { default as Field } from './components/Field.jsx';\nexport { default as Calendar } from './components/Calendar.jsx';\nexport { default as Month } from './components/calendar/Month.jsx';\nexport { default as RangeCalendar } from './components/RangeCalendar.jsx';\nexport { default as TimePicker } from './components/TimePicker.jsx';\nexport { default as TwoState } from './components/TwoState.jsx';\nexport { default as Modal } from './components/Modal.jsx';\nexport { default as ModalArea } from './components/ModalArea.jsx';\nexport { default as SideArea } from './components/SideArea.jsx';\nexport { default as Portal } from './components/Portal.jsx';\nexport { default as Avatar } from './components/Avatar.jsx';\n\nexport { default as Material } from './themes/Material.jsx';\nexport { default as Willow } from './themes/Willow.jsx';\nexport { default as WillowDark } from './themes/WillowDark.jsx';\n\nexport { default as Locale } from './Locale.jsx';\nexport { locale } from '@svar-ui/lib-dom';\n\nexport { popupContainer } from './components/helpers/popup';\nexport { default as SuggestDropdown } from './components/helpers/SuggestDropdown.jsx';\n\nexport { en } from '@svar-ui/core-locales';\nexport * as context from './context.js';\n\nimport { env, setEnv } from '@svar-ui/lib-dom';\nsetEnv(env);\n"],"names":["theme","createContext","helpers","i18n","fieldId","useInputId","id","contextId","useContext","inputId","useState","uid","TextArea","propValue","placeholder","title","disabled","error","readonly","onChange","value","setValue","useWritableProp","handleInput","useCallback","e","newValue","ontextchange","inputRef","useRef","useEffect","handler","node","jsx","Button","type","css","icon","text","children","onClick","buttonCss","useMemo","cssType","a","x","handleClick","ev","jsxs","Checkbox","label","inputValue","valueProp","style","target","CheckboxGroup","options","handleChange","obj","option","Portal","initialTheme","portalRef","componentRef","targetRef","setTargetRef","contextTheme","themeContext","getParentRoot","env","Fragment","createPortal","p","root","Popup","left","top","at","parent","width","onCancel","trackScroll","setX","y","setY","w","setW","visible","setVisible","self","onCancelRef","getWidth","calcWidth","match","updatePosition","result","calculatePosition","useLayoutEffect","onScroll","getAbsParent","down","clickOutside","InlineDropdown","positionProp","alignProp","autoFit","nodeRef","position","setPosition","align","setAlign","nodeCoords","bodyCoords","Dropdown","inline","props","setTarget","defaultColors","ColorSelect","colors","clear","dropdown","currentValue","setCurrentValue","popup","setPopup","selectColor","color","unselectColor","handlePopup","index","sliderMove","config","slider","moveBlockSlider","moveLineSlider","move","up","dx","dy","coords","colorTransformator","number","length","str","rgb","arr","v","n","hex","rgbPairs","r","g","b","h","s","hi","f","q","t","min","max","hexValidation","parseColor","defaultLocale","locale","en","BLOCK","LINE","ColorBoard","button","_","blockRef","colorLineRef","blockTop","setBlockTop","blockLeft","setBlockLeft","hueColor","setHueColor","lineLeft","setLineLeft","setInputValue","moveBlockSliderRef","moveLineSliderRef","blockColor","height","_sValue","_vValue","pxX","pxY","newHue","setSlidersPosition","newColor","handleSelect","keydown","isSliderBlock","isSliderLine","code","destroy","d","cssScope","ColorPicker","propertyValue","getListHandlers","navIndex","isVisible","virtualized","list","navCallback","selectCallback","init","l","o","c","setNav","scrollTo","next","navigate","dir","locateID","overscan","ItemContent","memo","data","checkboxes","snippet","ListContent","visibleItems","visibleRange","measureRefCallback","visibleIndex","SuggestDropdown","items","onSelect","onReady","multiselect","rest","initialScrolled","setNavIndex","navIndexRef","scrollTop","setScrollTop","itemHeight","setItemHeight","isItemHeightInitialized","itemsRef","valueRef","itemHeightRef","selectItem","currentItems","currentNavIndex","nextValue","nextId","i","selectItemRef","scrollToVirtualized","idx","newScrollTop","listRefCallback","el","navigateVirtualized","keydownVirtualized","isTargetVisibleTop","isTargetVisibleBottom","dropdownKey","prevItemsRef","handleScroll","displayedItemsCount","start","end","item","offsetTop","totalHeight","Combo","textOptions","textField","kids","filterActive","setFilterActive","textInput","setTextInput","inputElement","hasFocus","filteredOptions","ready","doSelect","effects","selected","selectByEvent","doUnselect","selectByText","chunk","res","handleFocus","handleBlur","List","Text","propsValue","focus","select","inputStyle","cssString","hasLeftIcon","timer","oninput","clearValue","inputType","Header","date","part","onShift","calendar","formats","year","dateToString","getDuodecade","yearFormat","changeType","Month","current","markers","weekStart","weekdays","dv","dm","dd","ranges","isWeekEnd","getStart","getEnd","lastTime","selectDate","days","curMonth","day","mark","delegateRef","delegateHandler","delegateClick","Year","currentProp","defaultDate","setCurrent","months","monthNum","selectMonth","month","newCurrent","done","getPartValue","handleMonthClick","Duodecade","currentState","valueState","years","selectYears","selectYear","yearVal","containerRef","configs","nextMonth","prevMonth","nextYear","prevYear","nextDuodecade","prevDuodecade","defaultButtons","getButtonValue","btn","Panel","onCurrentChange","buttons","setType","buttonsList","oncancel","onShiftLocal","diff","onChangeLocal","CalendarView","Component","words","optional","fixCurrent","force","Calendar","onCurrentChangeLocal","Locale","toDateDropdown","DatePicker","format","editable","calendarLocale","dateFormat","doChange","skipEvent","formattedValue","onchangeHandler","input","RangeCalendar","startProp","endProp","setStart","setEnd","leftCurrent","setLeftCurrent","rightCurrent","setRightCurrent","addMonth","rPrev","onLeft","newLeft","onRight","newRight","startVal","selectChange","final","doChangeStart","doChangeEnd","DateRangePicker","doInputChange","av","val","Fullscreen","hotkey","toggleButton","inFullscreen","setInFullscreen","toggleFullscreen","prev","useHotkeys","setFullscreenState","Icon","defaultValue","MultiCombo","setText","setFocus","filterOptions","onready","onselect","remove","onClickHandler","tag","Pager","total","initialPageSize","initialValue","pageSize","setPageSize","pageCount","from","to","setInnerValue","setActivePage","onPageSizeInput","RadioButton","externalValue","name","fallbackId","useId","internalValue","setInternalValue","isControlled","handlerChange","RadioButtonGroup","RichSelect","unselect","Segmented","Select","event","Slider","step","previous","progress","bgStyle","onslider","Switch","Tabs","optionId","Counter","dec","inc","blur","tValue","Notice","notice","onRemove","Notices","Modal","header","footer","onConfirm","modal","onclick","pack","Globals","apiRef","setModal","notices","setNotices","useImperativeHandle","msg","modalObj","rej","GlobalsComponentWithRef","forwardRef","api","Field","required","TwoState","iconActive","textActive","active","typeStr","defValue","TimePicker","h12","maxH","maxM","timeFormat","zeroBased","formatTime","formatM","getNumber","formatH","update","safeValue","m","pm","hText","mText","textValue","click","togglePM","setHours","setMinutes","updateH","ModalArea","SideArea","divRef","DEFAULT_BG","DEFAULT_FONT","OVERLAP_FACTOR","getInitials","getContrastColor","Avatar","size","limit","containerWidth","setContainerWidth","users","maxFitting","displayCount","cap","displayUsers","overflowCount","ro","entries","entry","fontSize","avatarBaseStyle","getAvatarItemStyle","user","margin","bg","render","fonts","RobotoFont","FontOpenSans","popupContainer","setEnv"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../src/context.js","../src/components/helpers/getInputId.js","../src/components/TextArea.jsx","../src/components/Button.jsx","../src/components/Checkbox.jsx","../src/components/CheckboxGroup.jsx","../src/components/Portal.jsx","../src/components/Popup.jsx","../src/components/helpers/InlineDropdown.jsx","../src/components/Dropdown.jsx","../src/components/ColorSelect.jsx","../src/components/helpers/sliderMove.js","../src/components/helpers/colorTransformator.js","../src/components/helpers/colorValidation.js","../src/components/helpers/locale.js","../src/components/ColorBoard.jsx","../src/components/ColorPicker.jsx","../src/components/helpers/listnav.js","../src/components/helpers/SuggestDropdown.jsx","../src/components/Combo.jsx","../src/components/Text.jsx","../src/components/calendar/Header.jsx","../src/components/calendar/Button.jsx","../src/components/calendar/Month.jsx","../src/components/calendar/Year.jsx","../src/components/calendar/Duodecade.jsx","../src/components/calendar/helpers.js","../src/components/calendar/Panel.jsx","../src/Locale.jsx","../src/components/Calendar.jsx","../src/components/helpers/dropdown.js","../src/components/DatePicker.jsx","../src/components/RangeCalendar.jsx","../src/components/DateRangePicker.jsx","../src/components/Fullscreen.jsx","../src/components/Icon.jsx","../src/components/MultiCombo.jsx","../src/components/Pager.jsx","../src/components/RadioButton.jsx","../src/components/RadioButtonGroup.jsx","../src/components/RichSelect.jsx","../src/components/Segmented.jsx","../src/components/Select.jsx","../src/components/Slider.jsx","../src/components/Switch.jsx","../src/components/Tabs.jsx","../src/components/Counter.jsx","../src/components/Notice.jsx","../src/components/Notices.jsx","../src/components/Modal.jsx","../src/components/Globals.jsx","../src/Globals.jsx","../src/components/Field.jsx","../src/components/TwoState.jsx","../src/components/TimePicker.jsx","../src/components/Tooltip.jsx","../src/components/ModalArea.jsx","../src/components/SideArea.jsx","../src/components/Avatar.jsx","../src/themes/FontRoboto.jsx","../src/themes/Material.jsx","../src/themes/FontOpenSans.jsx","../src/themes/Willow.jsx","../src/themes/WillowDark.jsx","../src/components/helpers/popup.js","../src/index.js"],"sourcesContent":["import { createContext } from 'react';\n\nexport const theme = createContext('');\nexport const helpers = createContext({});\nexport const i18n = createContext(null);\nexport const fieldId = createContext(null);\n","import { useContext, useState } from 'react';\nimport { fieldId } from '../../context';\nimport { uid } from '@svar-ui/lib-dom';\n\nexport function useInputId(id) {\n const contextId = useContext(fieldId);\n\n const [inputId] = useState(() => id || contextId || uid());\n\n return inputId;\n}\n","import { useCallback, useEffect, useRef } from 'react';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\n\nimport './TextArea.css';\n\nexport default function TextArea({\n value: propValue = '',\n id,\n placeholder = '',\n title = '',\n tooltip,\n disabled = false,\n error = false,\n readonly = false,\n css = '',\n onChange,\n}) {\n const inputId = useInputId(id);\n const [value, setValue] = useWritableProp(propValue);\n\n const handleInput = useCallback(\n (e) => {\n const newValue = e.target.value;\n setValue(newValue);\n if (onChange) {\n onChange({ value: newValue, input: true });\n }\n },\n [onChange],\n );\n\n const ontextchange = useCallback(\n (e) => {\n const newValue = e.target.value;\n setValue(newValue);\n if (onChange) {\n onChange({ value: newValue });\n }\n },\n [onChange],\n );\n\n const inputRef = useRef(null);\n useEffect(() => {\n const handler = ontextchange;\n const node = inputRef.current;\n node.addEventListener('change', handler);\n return () => {\n if (node) {\n node.removeEventListener('change', handler);\n }\n };\n }, [ontextchange]);\n\n return (\n <textarea\n className={'wx-3yFVAC' + ` wx-textarea ${css} ${error ? 'wx-error' : ''}`}\n id={inputId}\n disabled={disabled}\n placeholder={placeholder}\n readOnly={readonly}\n title={title}\n value={value}\n onInput={handleInput}\n ref={inputRef}\n data-tooltip-text={tooltip}\n />\n );\n}\n","import { useMemo } from 'react';\nimport './Button.css';\n\nexport default function Button({\n type = '',\n css = '',\n icon = '',\n disabled = false,\n title = '',\n tooltip,\n text = '',\n children,\n onClick,\n}) {\n const buttonCss = useMemo(() => {\n let cssType = type\n ? type\n .split(' ')\n .filter((a) => a !== '')\n .map((x) => 'wx-' + x)\n .join(' ')\n : '';\n return css + (css ? ' ' : '') + cssType;\n }, [type, css]);\n\n const handleClick = (ev) => {\n onClick && onClick(ev);\n };\n\n return (\n <button\n title={title}\n className={`wx-2ZWgb4 wx-button ${buttonCss} ${icon && !children ? 'wx-icon' : ''}`}\n disabled={disabled}\n onClick={handleClick}\n data-tooltip-text={tooltip}\n >\n {icon && <i className={'wx-2ZWgb4 ' + icon}></i>}\n {children ? children : text || ' '}\n </button>\n );\n}\n","import { useWritableProp } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\nimport './Checkbox.css';\n\nexport default function Checkbox({\n id,\n label = '',\n inputValue = '',\n value: valueProp = false,\n onChange,\n disabled = false,\n css = ''\n}) {\n\n const inputId = useInputId(id);\n const [value, setValue] = useWritableProp(valueProp);\n\n const handlerChange = ({ target }) => {\n const newValue = target.checked;\n setValue(newValue);\n onChange && onChange({ value: newValue, inputValue });\n };\n\n return (\n <div className={`wx-2IvefP wx-checkbox ${css}`}>\n <input\n type=\"checkbox\"\n id={inputId}\n disabled={disabled}\n className=\"wx-2IvefP wx-check\"\n checked={value}\n value={inputValue}\n onChange={handlerChange}\n />\n <label htmlFor={inputId} className=\"wx-2IvefP wx-label\">\n <span className=\"wx-2IvefP wx-before\"></span>\n {label && <span className=\"wx-2IvefP wx-after\">{label}</span>}\n </label>\n </div>\n );\n}\n","import { useCallback } from 'react';\nimport Checkbox from './Checkbox.jsx';\nimport './CheckboxGroup.css';\nimport { fieldId } from \"../context\";\n\nexport default function CheckboxGroup({\n options = [],\n value = [],\n type = '',\n css = '',\n onChange,\n}) {\n // Handle both onchange and onChange props for compatibility\n const handleChange = useCallback(\n (obj) => {\n let newValue;\n if (obj.value) newValue = [...value, obj.inputValue];\n else newValue = value.filter((a) => a !== obj.inputValue);\n\n if (onChange) onChange({ value: newValue });\n },\n [value, onChange],\n );\n\n return (\n <fieldId.Provider value={null}>\n <div className={`wx-q8xwRD wx-checkboxgroup ${type && `wx-${type}`} ${css}`}>\n {options.map((option) => (\n <div key={option.id} className=\"wx-q8xwRD wx-item\">\n <Checkbox\n label={option.label}\n inputValue={option.id}\n value={value.includes(option.id)}\n onChange={handleChange}\n />\n </div>\n ))}\n </div>\n </fieldId.Provider>\n );\n}\n","import { useContext, useRef, useEffect, useState } from 'react';\nimport { theme as themeContext } from '../context.js';\nimport { env } from '@svar-ui/lib-dom';\nimport { createPortal } from 'react-dom';\n\nfunction Portal({ theme: initialTheme = '', target, children }) {\n const portalRef = useRef(null);\n const componentRef = useRef(null);\n const [targetRef, setTargetRef] = useState(null);\n\n if (!portalRef.current) {\n portalRef.current = document.createElement('div');\n }\n\n const contextTheme = useContext(themeContext);\n\n useEffect(() => {\n setTargetRef(\n target ||\n getParentRoot(componentRef.current) ||\n env.getTopNode(componentRef.current),\n );\n }, [componentRef.current]);\n\n return (\n <>\n <span ref={componentRef} style={{ display: 'none' }} />\n {componentRef.current && targetRef\n ? createPortal(\n <div\n className={`wx-3ZWsT0 wx-${initialTheme || contextTheme}-theme`}\n >\n {children}\n </div>,\n targetRef,\n )\n : null}\n </>\n );\n}\n\nexport default Portal;\n\nfunction getParentRoot(p) {\n const root = env.getTopNode(p);\n while (p && p !== root && !p.getAttribute('data-wx-portal-root')) {\n p = p.parentNode;\n }\n return p;\n}\n","import { useState, useEffect, useRef, useCallback, useLayoutEffect } from 'react';\nimport { clickOutside, calculatePosition, getAbsParent } from '@svar-ui/lib-dom';\nimport './Popup.css';\n\nexport function Popup({\n left = 0,\n top = 0,\n at = 'bottom',\n parent = null,\n width = 'auto',\n css = '',\n onCancel,\n children,\n trackScroll = false,\n}) {\n const [x, setX] = useState(0);\n const [y, setY] = useState(0);\n const [w, setW] = useState('auto');\n const [visible, setVisible] = useState(false);\n\n const self = useRef(null);\n const portalRef = useRef(null);\n const onCancelRef = useRef(onCancel);\n\n useEffect(() => {\n onCancelRef.current = onCancel;\n }, [onCancel]);\n\n function getWidth(calcWidth) {\n if (parent && (width + '').indexOf('%') > -1) {\n return width.replace(/(\\d+)%/, (match, value) => {\n value = (value * parent.offsetWidth) / 100 + 'px';\n return width.replace(match, value);\n });\n }\n return width && width !== 'auto' ? width : calcWidth;\n }\n\n const updatePosition = useCallback(() => {\n if (!self.current) return;\n\n const result = calculatePosition(self.current, parent, at, left, top);\n if (result) {\n setX(result.x);\n setY(result.y);\n setW(getWidth(result.width));\n }\n }, [self, parent, at, left, top, width]);\n\n useLayoutEffect(() => {\n const onScroll = (e) => {\n if (onCancelRef.current && e.target !== portalRef.current && self.current && !self.current.contains(e.target))\n onCancelRef.current(e);\n };\n\n let resizeObserver;\n requestAnimationFrame(() => {\n updatePosition();\n setVisible(true);\n if (trackScroll && self.current) {\n portalRef.current = getAbsParent(self.current);\n if (portalRef.current)\n portalRef.current.addEventListener('scroll', onScroll, true);\n }\n if (parent) {\n resizeObserver = new ResizeObserver(updatePosition);\n resizeObserver.observe(parent);\n }\n });\n\n return () => {\n if (trackScroll && portalRef.current)\n portalRef.current.removeEventListener('scroll', onScroll, true);\n resizeObserver?.disconnect();\n };\n }, []);\n\n useLayoutEffect(() => {\n updatePosition();\n }, [parent, at, left, top]);\n\n useEffect(() => {\n const down = (e) => {\n if (onCancelRef.current) {\n onCancelRef.current(e);\n }\n };\n if (self.current) {\n return clickOutside(self.current, { callback: down, parent: () => parent }).destroy;\n }\n }, [parent]);\n\n return (\n <div\n ref={self}\n className={['wx-37M6Fj', 'wx-popup', css].filter(Boolean).join(' ')}\n style={{\n position: 'absolute',\n visibility: visible ? 'visible' : 'hidden',\n top: y + 'px',\n left: x + 'px',\n width: w,\n }}\n >\n {children}\n </div>\n );\n}\n\nexport default Popup;\n","import { useState, useEffect, useRef } from 'react';\nimport { clickOutside } from '@svar-ui/lib-dom';\nimport './InlineDropdown.css';\n\nfunction InlineDropdown({\n position: positionProp = 'bottom',\n align: alignProp = 'start',\n autoFit = true,\n onCancel = null,\n width = '100%',\n css = '',\n children,\n}) {\n const nodeRef = useRef(null);\n const [position, setPosition] = useState(positionProp);\n const [align, setAlign] = useState(alignProp);\n const onCancelRef = useRef(onCancel);\n\n useEffect(() => {\n onCancelRef.current = onCancel;\n }, [onCancel]);\n\n useEffect(() => {\n if (autoFit) {\n const node = nodeRef.current;\n if (node) {\n const nodeCoords = node.getBoundingClientRect();\n const bodyCoords = document.body.getBoundingClientRect();\n\n if (nodeCoords.right >= bodyCoords.right) {\n setAlign('end');\n }\n\n if (nodeCoords.bottom >= bodyCoords.bottom) {\n setPosition('top');\n }\n }\n }\n }, []);\n\n useEffect(() => {\n if (nodeRef.current) {\n const down = (e) => {\n onCancelRef.current && onCancelRef.current(e);\n };\n return clickOutside(nodeRef.current, down).destroy;\n }\n }, []);\n\n return (\n <div\n ref={nodeRef}\n className={[\n 'wx-dropdown',\n `wx-${position}-${align}`,\n css || '',\n 'wx-aaaVytZW',\n ]\n .filter(Boolean)\n .join(' ')}\n style={{ width: width }}\n >\n {children}\n </div>\n );\n}\n\nexport default InlineDropdown;\n","import { useState, useRef, useMemo, useLayoutEffect } from 'react';\nimport Portal from './Portal.jsx';\nimport Popup from './Popup.jsx';\nimport InlineDropdown from './helpers/InlineDropdown.jsx';\nimport './Dropdown.css';\n\nfunction Dropdown({\n position = 'bottom',\n align = 'start',\n autoFit = true,\n inline = false,\n onCancel,\n width = '100%',\n children,\n ...props\n}) {\n const [target, setTarget] = useState(undefined);\n const nodeRef = useRef(null);\n\n const at = useMemo(() => `${position}-${align}`, [position, align]);\n\n useLayoutEffect(() => {\n if (nodeRef.current) {\n setTarget(nodeRef.current.parentNode);\n }\n }, []);\n\n return (\n <>\n {target && (inline ? (\n <InlineDropdown\n onCancel={onCancel}\n position={position}\n align={align}\n autoFit={autoFit}\n width={width}\n {...props}\n >\n {children}\n </InlineDropdown>\n ) : (\n <Portal>\n <Popup parent={target} at={at} onCancel={onCancel} width={width} {...props}>\n {children}\n </Popup>\n </Portal>\n ))}\n <span ref={nodeRef} className=\"wx-portal-node wx-32GZ52\" />\n </>\n );\n}\n\nexport default Dropdown;\n","import { useState, useCallback } from 'react';\nimport { useInputId } from './helpers/getInputId.js';\nimport Dropdown from './Dropdown.jsx';\nimport './ColorSelect.css';\n\nconst defaultColors = [\n '#00a037',\n '#37a9ef',\n '#f5a623',\n '#ff4c3b',\n '#a0a0a0',\n '#000000',\n '#ffffff',\n];\n\nexport default function ColorSelect({\n colors = defaultColors,\n value = '',\n onChange,\n id,\n clear = false,\n placeholder = '',\n title = '',\n tooltip,\n disabled = false,\n error = false,\n css = '',\n dropdown = {},\n}) {\n const inputId = useInputId(id);\n const [currentValue, setCurrentValue] = useState(value);\n const [popup, setPopup] = useState(false);\n\n const selectColor = useCallback(\n (ev, color) => {\n ev.stopPropagation();\n setCurrentValue(color);\n setPopup(false);\n onChange && onChange({ value: color });\n },\n [onChange],\n );\n\n const unselectColor = useCallback(\n (ev) => {\n ev.stopPropagation();\n setCurrentValue('');\n onChange && onChange({ value: '' });\n },\n [onChange],\n );\n\n const handlePopup = useCallback(() => {\n if (disabled) return false;\n setPopup(true);\n }, [disabled]);\n\n return (\n <div\n className={'wx-121TgJ wx-colorselect ' + css}\n onClick={handlePopup}\n data-tooltip-text={tooltip}\n >\n <input\n className={\n 'wx-121TgJ wx-input' +\n (error ? ' wx-error' : '') +\n (popup ? ' wx-focus' : '')\n }\n title={title}\n value={currentValue}\n readOnly\n id={inputId}\n placeholder={placeholder}\n disabled={disabled}\n />\n\n {clear && currentValue && !disabled && (\n <i className=\"wx-121TgJ wx-clear wxi-close\" onClick={unselectColor}></i>\n )}\n\n {currentValue ? (\n <div\n className=\"wx-121TgJ wx-color wx-selected\"\n style={{ backgroundColor: currentValue || '#00a037' }}\n ></div>\n ) : (\n <div className=\"wx-121TgJ wx-empty wx-selected\"></div>\n )}\n\n {popup && (\n <Dropdown onCancel={() => setPopup(false)} {...dropdown}>\n <div className=\"wx-121TgJ wx-colors\">\n <div\n className=\"wx-121TgJ wx-empty\"\n onClick={(ev) => selectColor(ev, '')}\n ></div>\n {colors.map((color, index) => (\n <div\n key={index}\n className=\"wx-121TgJ wx-color\"\n style={{ backgroundColor: color }}\n onClick={(ev) => selectColor(ev, color)}\n ></div>\n ))}\n </div>\n </Dropdown>\n )}\n </div>\n );\n}\n","export function sliderMove(node, config) {\n const slider = node.firstChild;\n const { moveBlockSlider, moveLineSlider } = config || {};\n\n function down(ev) {\n move(ev);\n\n slider.focus();\n\n window.addEventListener('mousemove', move);\n window.addEventListener('mouseup', up);\n }\n\n function move(ev) {\n let x, y, dx, dy;\n\n const coords = node.getBoundingClientRect();\n x = coords.left;\n y = coords.top;\n\n dx = ev.clientX - x;\n dy = ev.clientY - y;\n\n if (moveBlockSlider) config.moveBlockSlider(dx, dy);\n if (moveLineSlider) config.moveLineSlider(dx);\n }\n\n function up() {\n slider.blur();\n\n window.removeEventListener('mousemove', move);\n window.removeEventListener('mouseup', up);\n }\n\n node.addEventListener('mousedown', down);\n\n return {\n destroy() {\n node.removeEventListener('mousedown', down);\n },\n };\n}\n","const colorTransformator = {\n _toHex: [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n 'A',\n 'B',\n 'C',\n 'D',\n 'E',\n 'F',\n ],\n toHex(number, length) {\n number = parseInt(number, 10);\n let str = '';\n while (number > 0) {\n str = this._toHex[number % 16] + str;\n number = Math.floor(number / 16);\n }\n while (str.length < length) str = `0${str}`;\n return str;\n },\n rgbToHex(rgb) {\n let arr = [];\n if (typeof rgb === 'string')\n rgb.replace(/[\\d+.]+/g, (v) => arr.push(parseFloat(v)));\n else if (Array.isArray(rgb)) arr = rgb;\n\n //transparent\n if (arr[3] === 0) return '';\n\n return arr\n .slice(0, 3)\n .map((n) => {\n return this.toHex(Math.floor(n), 2);\n })\n .join('');\n },\n hexToDec(hex) {\n return parseInt(hex, 16);\n },\n // only handles the six-digit hex color format\n hexToRgb(hex) {\n hex = hex.charAt(0) === '#' ? hex.slice(1) : hex;\n const rgbPairs = hex.match(/.{1,2}/g);\n\n let [r, g, b] = rgbPairs;\n\n r = this.hexToDec(r);\n g = this.hexToDec(g);\n b = this.hexToDec(b);\n\n return [r, g, b];\n },\n hsvToRgb(h, s, v) {\n let hi, f, p, q, t, r, g, b;\n hi = Math.floor(h / 60) % 6;\n f = h / 60 - hi;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n r = 0;\n g = 0;\n b = 0;\n switch (hi) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n default:\n break;\n }\n r = Math.floor(r * 255);\n g = Math.floor(g * 255);\n b = Math.floor(b * 255);\n\n return [r, g, b];\n },\n rgbToHsv(r, g, b) {\n let s, h, v;\n r /= 255;\n g /= 255;\n b /= 255;\n let min = Math.min(r, g, b);\n let max = Math.max(r, g, b);\n h = 0;\n s = max === 0 ? 0 : 1 - min / max;\n v = max;\n if (max === min) {\n h = 0;\n } else if (max === r && g >= b) {\n h = (60 * (g - b)) / (max - min) + 0;\n } else if (max === r && g < b) {\n h = (60 * (g - b)) / (max - min) + 360;\n } else if (max === g) {\n h = (60 * (b - r)) / (max - min) + 120;\n } else if (max === b) {\n h = (60 * (r - g)) / (max - min) + 240;\n }\n\n return [h, s, v];\n },\n hexToHvs(hex) {\n const rgb = this.hexToRgb(hex);\n return this.rgbToHsv(...rgb);\n },\n hvsToHex(h, v, s) {\n const rgb = this.hsvToRgb(h, v, s);\n return '#' + this.rgbToHex(rgb).toUpperCase();\n },\n};\n\nexport default colorTransformator;\n","const hexValidation = (str) => /^([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/.test(str);\n\nexport function parseColor(value) {\n if (!value) return null;\n\n value = value.toString(16);\n\n if (value.charAt(0) === '#') value = value.slice(1);\n\n if (hexValidation(value)) {\n if (value.length === 3) {\n value = value\n .slice(0, 3)\n .split('')\n .reduce((a, b) => a + b + b, '');\n }\n return `#${value.toUpperCase()}`;\n }\n\n return null;\n}\n","import { locale } from '@svar-ui/lib-dom';\nimport { en } from '@svar-ui/core-locales';\n\nexport function defaultLocale() {\n return locale(en);\n}\n","import {\n useState,\n useEffect,\n useRef,\n useCallback,\n useContext,\n useMemo,\n} from 'react';\nimport Button from './Button.jsx';\nimport { sliderMove } from './helpers/sliderMove.js';\nimport colorTransformator from './helpers/colorTransformator.js';\nimport { parseColor } from './helpers/colorValidation.js';\nimport { i18n } from '../context.js';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport './ColorBoard.css';\nimport { defaultLocale } from './helpers/locale.js';\n\nconst BLOCK = 'Block';\nconst LINE = 'Line';\n\nfunction ColorBoard({\n value: valueProp = '#65D3B3',\n button = false,\n css = '',\n onChange,\n}) {\n const _ = (useContext(i18n) || defaultLocale()).getGroup('core');\n\n const blockRef = useRef(null);\n const colorLineRef = useRef(null);\n\n const [blockTop, setBlockTop] = useState();\n const [blockLeft, setBlockLeft] = useState();\n const [hueColor, setHueColor] = useState();\n const [lineLeft, setLineLeft] = useState();\n\n const [value, setValue] = useWritableProp(valueProp);\n const [inputValue, setInputValue] = useState(valueProp); \n\n const moveBlockSliderRef = useRef(null);\n const moveLineSliderRef = useRef(null);\n\n const color = useMemo(() => parseColor(value) || '#65D3B3', [value]);\n const blockColor = useMemo(\n () => colorTransformator.hvsToHex(hueColor || 0, 1, 1),\n [hueColor],\n );\n\n const moveBlockSlider = useCallback(\n (dx, dy) => {\n const { width, height } = blockRef.current.getBoundingClientRect();\n\n if (dy < 0) dy = 0;\n else if (dy > height) dy = height;\n\n if (dx < 0) dx = 0;\n else if (dx > width) dx = width;\n\n setBlockTop(dy);\n setBlockLeft(dx);\n\n // Call setCurrentColor\n let _sValue, _vValue;\n\n const pxX = width / 100;\n const pxY = height / 100;\n\n _sValue = Math.ceil(dx / pxX) / 100;\n _vValue = Math.ceil(Math.abs(dy / pxY - 100)) / 100;\n\n const newValue = colorTransformator.hvsToHex(\n hueColor,\n _sValue,\n _vValue,\n );\n setValue(newValue);\n setInputValue(newValue);\n onChange && onChange({ value: newValue, input: true });\n },\n [color, hueColor, onChange],\n );\n\n const moveLineSlider = useCallback(\n (dx) => {\n const width = colorLineRef.current.getBoundingClientRect().width;\n\n if (dx < 0) dx = 0;\n else if (dx > width) dx = width;\n\n const h = Math.round((dx * 359) / width);\n const newHue = Math.max(Math.min(h, 359), 0);\n setHueColor(newHue);\n setLineLeft(dx);\n\n // Call setCurrentColor with lineSliderMove=true\n let _sValue, _vValue;\n [, _sValue, _vValue] = colorTransformator.hexToHvs(color);\n const newValue = colorTransformator.hvsToHex(newHue, _sValue, _vValue);\n setValue(newValue);\n setInputValue(newValue);\n onChange && onChange({ value: newValue, input: true });\n },\n [color, onChange],\n );\n\n moveBlockSliderRef.current = moveBlockSlider;\n moveLineSliderRef.current = moveLineSlider;\n\n const setSlidersPosition = useCallback((newColor) => {\n const [h, s, v] = colorTransformator.hexToHvs(newColor || color);\n setHueColor(h);\n\n if (blockRef.current) {\n const { width, height } = blockRef.current.getBoundingClientRect();\n\n if (colorLineRef.current) {\n setLineLeft(\n (h * colorLineRef.current.getBoundingClientRect().width) / 359,\n );\n }\n setBlockLeft(s * width);\n setBlockTop(Math.abs(height * (v - 1)));\n }\n }, [color]);\n\n const handleChange = useCallback(\n ({ target }) => {\n const newColor = parseColor(target.value);\n setInputValue(target.value);\n if (newColor) {\n setValue(newColor);\n onChange && onChange({ value: newColor, input: true });\n setSlidersPosition(newColor);\n }\n },\n [onChange, setSlidersPosition],\n );\n\n const handleSelect = useCallback(\n (ev) => {\n ev.stopPropagation();\n onChange && onChange({ value: color });\n },\n [color, onChange],\n );\n\n const keydown = useCallback(\n (ev) => {\n const slider = ev.target;\n const isSliderBlock = slider.getAttribute('data-slider') === BLOCK;\n const isSliderLine = slider.getAttribute('data-slider') === LINE;\n\n let css = window.getComputedStyle(slider);\n let left = parseFloat(css.left);\n let top = parseFloat(css.top);\n const code = ev.code;\n\n if (isSliderBlock) {\n switch (code) {\n case 'ArrowLeft': {\n left--;\n break;\n }\n case 'ArrowRight': {\n left++;\n break;\n }\n case 'ArrowDown': {\n top++;\n break;\n }\n case 'ArrowUp': {\n top--;\n break;\n }\n default:\n return;\n }\n\n moveBlockSlider(left, top);\n }\n\n if (isSliderLine) {\n if (code === 'ArrowLeft' || code === 'ArrowDown') left--;\n else if (code === 'ArrowRight' || code === 'ArrowUp') left++;\n else return;\n moveLineSlider(left);\n }\n\n ev.preventDefault();\n },\n [moveBlockSlider, moveLineSlider],\n );\n \n useEffect(() => {\n const destroy = [];\n if (blockRef.current) {\n destroy.push(\n sliderMove(blockRef.current, {\n moveBlockSlider: (dx, dy) => {\n moveBlockSliderRef.current?.(dx, dy);\n },\n }).destroy,\n );\n }\n if (colorLineRef.current) {\n destroy.push(\n sliderMove(colorLineRef.current, {\n moveLineSlider: (dx) => {\n moveLineSliderRef.current?.(dx);\n },\n }).destroy,\n );\n }\n requestAnimationFrame(()=> setSlidersPosition());\n return () => {\n destroy.forEach((d) => d());\n };\n }, []);\n const cssScope = 'wx-1yoKzq';\n\n return (\n <div className={cssScope + ' wx-colorboard ' + css}>\n <div\n className={cssScope + ' wx-color-block'}\n style={{ background: blockColor }}\n ref={blockRef}\n >\n <div\n className={cssScope + ' wx-color-block-slider wx-slider'}\n style={{\n background: color,\n top: blockTop + 'px',\n left: blockLeft + 'px',\n }}\n tabIndex={0}\n data-slider={BLOCK}\n onKeyDown={keydown}\n ></div>\n </div>\n <div className={cssScope + ' wx-color-line'} ref={colorLineRef}>\n <div\n className={cssScope + ' wx-color-line-slider wx-slider'}\n style={{ background: blockColor, left: lineLeft + 'px' }}\n tabIndex={0}\n data-slider={LINE}\n onKeyDown={keydown}\n ></div>\n </div>\n <div className={cssScope + ' wx-color-controls'}>\n <div\n className={cssScope + ' wx-color'}\n style={{ background: color }}\n ></div>\n <input\n type=\"text\"\n className={cssScope + ' wx-text'}\n value={inputValue}\n onChange={handleChange}\n />\n </div>\n {button && (\n <Button onClick={handleSelect} type=\"secondary\">\n {_('select')}\n </Button>\n )}\n </div>\n );\n}\n\nexport default ColorBoard;\n","import { useState } from 'react';\nimport Dropdown from './Dropdown.jsx';\nimport ColorBoard from './ColorBoard.jsx';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\n\nimport './ColorPicker.css';\n\nexport default function ColorPicker({\n value: propertyValue = '',\n id,\n placeholder = '',\n title = '',\n tooltip,\n disabled = false,\n error = false,\n clear = false,\n css = '',\n onChange,\n dropdown = {},\n}) {\n const inputId = useInputId(id);\n let [value, setValue] = useWritableProp(propertyValue);\n const [popup, setPopup] = useState(false);\n\n function handlePopup() {\n if (disabled) return false;\n setPopup(true);\n }\n\n function selectColor(ev) {\n if (ev.input) return;\n\n setPopup(false);\n const newValue = ev.value;\n setValue(newValue);\n if (onChange) onChange({ value: newValue });\n }\n\n function unselectColor(ev) {\n ev.stopPropagation();\n setValue('');\n if (onChange) onChange({ value: '' });\n }\n\n return (\n <div\n className={'wx-mmT8WH wx-colorpicker ' + css}\n onClick={handlePopup}\n data-tooltip-text={tooltip}\n >\n <input\n className={\n 'wx-mmT8WH wx-input' +\n (error ? ' wx-error' : '') +\n (popup ? ' wx-focus' : '')\n }\n title={title}\n value={value}\n readOnly\n id={inputId}\n placeholder={placeholder}\n disabled={disabled}\n />\n <div className=\"wx-mmT8WH wx-color\" style={{ background: value }}></div>\n\n {clear && !disabled && value && (\n <i className=\"wx-mmT8WH wxi-close\" onClick={unselectColor}></i>\n )}\n\n {popup && (\n <Dropdown onCancel={() => setPopup(false)} {...dropdown}>\n <ColorBoard value={value} button=\"true\" onChange={selectColor} />\n </Dropdown>\n )}\n </div>\n );\n}\n","import { locateID } from '@svar-ui/lib-dom';\n\nexport function getListHandlers() {\n let navIndex = null;\n let isVisible = false;\n\n let virtualized = false;\n\n let list, options, navCallback, selectCallback;\n const init = (l, o, n, c, v) => {\n list = l;\n options = o;\n navCallback = n;\n selectCallback = c;\n virtualized = v;\n };\n\n const setNav = (index) => {\n navIndex = index;\n isVisible = navIndex !== null;\n navCallback(navIndex);\n };\n\n const scrollTo = (navIndex, ev) => {\n if (!virtualized && navIndex !== null && list) {\n const next = list.querySelectorAll(`.wx-list > .wx-item`)[navIndex];\n if (next) {\n next.scrollIntoView({ block: 'nearest' });\n if (ev) ev.preventDefault();\n }\n }\n };\n\n const navigate = (dir, ev) => {\n const index =\n dir === null\n ? null\n : Math.max(0, Math.min(navIndex + dir, options.length - 1));\n if (index === navIndex) return;\n setNav(index);\n\n if (list) scrollTo(index, ev);\n else requestAnimationFrame(() => scrollTo(index, ev));\n };\n\n const move = (ev) => {\n const id = locateID(ev);\n const index = options.findIndex((a) => a.id === id);\n\n if (index !== navIndex) {\n setNav(index);\n }\n };\n\n const keydown = (ev, position) => {\n switch (ev.code) {\n case 'Enter':\n if (isVisible) selectCallback();\n else setNav(0);\n break;\n\n case 'Space':\n if (!isVisible) setNav(0);\n break;\n\n case 'Escape':\n navCallback((navIndex = null));\n break;\n\n case 'Tab':\n navCallback((navIndex = null));\n break;\n\n case 'ArrowDown':\n navigate(isVisible ? 1 : position || 0, ev);\n break;\n\n case 'ArrowUp':\n navigate(isVisible ? -1 : position || 0, ev);\n break;\n\n default:\n break;\n }\n };\n\n return { move, keydown, init, navigate };\n}\n","import { useEffect, useState, useRef, useCallback, useMemo, memo } from 'react';\nimport { useContext } from 'react';\nimport { snippet } from '@svar-ui/lib-react';\nimport { getListHandlers } from './listnav';\nimport Dropdown from '../Dropdown.jsx';\nimport Checkbox from '../Checkbox.jsx';\nimport { i18n } from '../../context.js';\nimport './SuggestDropdown.css';\nimport { defaultLocale } from './locale.js';\n\nconst overscan = 10;\n\nconst ItemContent = memo(function ItemContent({ data, checkboxes, itemTemplate, value }) {\n return (\n <>\n {checkboxes && (\n <Checkbox\n id={data.id}\n css=\"wx-list-checkbox\"\n value={value && value.includes(data.id)}\n />\n )}\n {itemTemplate ? snippet(itemTemplate, { option: data }) : data.label}\n </>\n );\n});\n\nfunction ListContent({\n visibleItems,\n visibleRange,\n navIndex,\n checkboxes,\n itemTemplate,\n value,\n measureRefCallback,\n}) {\n return visibleItems.map((data, visibleIndex) => {\n const index = visibleRange.start + visibleIndex;\n return <div\n key={data.id}\n ref={visibleIndex === 0 ? measureRefCallback : undefined}\n className={`wx-233fr7 wx-item ${(index) === navIndex ? 'wx-focus' : ''}`}\n data-id={data.id}\n >\n <ItemContent\n data={data}\n checkboxes={checkboxes}\n itemTemplate={itemTemplate}\n value={value}\n />\n </div>\n\n });\n}\n\nexport default function SuggestDropdown({\n items = [],\n children,\n onSelect,\n onReady,\n virtualized = false,\n checkboxes,\n multiselect,\n value,\n ...rest\n}) {\n const list = useRef();\n const initialScrolled = useRef(false);\n const helpers = useRef(getListHandlers());\n\n const [navIndex, setNavIndex] = useState(null);\n const navIndexRef = useRef(navIndex);\n\n const [scrollTop, setScrollTop] = useState(0);\n const [itemHeight, setItemHeight] = useState(24);\n const isItemHeightInitialized = useRef(false);\n\n const _ = (useContext(i18n) || defaultLocale()).getGroup('core');\n\n // Keep refs current for use inside callbacks\n const itemsRef = useRef(items);\n useEffect(() => {\n itemsRef.current = items;\n }, [items]);\n\n const valueRef = useRef(value);\n useEffect(() => {\n valueRef.current = value;\n }, [value]);\n\n const itemHeightRef = useRef(0);\n useEffect(() => {\n itemHeightRef.current = itemHeight;\n }, [itemHeight]);\n\n const selectItem = useCallback((ev) => {\n if (ev) ev.stopPropagation();\n const currentItems = itemsRef.current;\n const currentValue = valueRef.current;\n const currentNavIndex = navIndexRef.current;\n let nextValue;\n const nextId = currentItems[currentNavIndex]?.id;\n if (multiselect) {\n if (currentValue && currentValue.includes(nextId)) {\n nextValue = currentValue.filter(i => i !== nextId);\n } else {\n nextValue = [...(currentValue || []), nextId];\n }\n } else {\n nextValue = nextId;\n }\n onSelect && onSelect({ id: nextValue });\n }, [multiselect, onSelect]);\n\n const selectItemRef = useRef(selectItem);\n useEffect(() => {\n selectItemRef.current = selectItem;\n }, [selectItem]);\n\n const scrollToVirtualized = useCallback((idx) => {\n if (list.current) {\n let newScrollTop = idx * itemHeightRef.current - list.current.clientHeight + itemHeightRef.current;\n setScrollTop(newScrollTop);\n list.current.scrollTop = newScrollTop;\n }\n }, [itemHeightRef.current]);\n\n const listRefCallback = useCallback(\n (el) => {\n list.current = el;\n if (virtualized) {\n if (el && !initialScrolled.current && navIndexRef.current !== null) {\n requestAnimationFrame(() => {\n if (list.current) {\n scrollToVirtualized(navIndexRef.current);\n initialScrolled.current = true;\n }\n });\n }\n if (!el) {\n initialScrolled.current = false;\n }\n }\n },\n [scrollToVirtualized]\n );\n\n const measureRefCallback = useCallback((node) => {\n if (!node) return;\n if (isItemHeightInitialized.current) return;\n \n const height = node.getBoundingClientRect().height;\n \n if (height) {\n setItemHeight(height);\n itemHeightRef.current = height;\n isItemHeightInitialized.current = true;\n }\n }, []);\n \n useEffect(() => {\n helpers.current.init(\n list.current,\n items,\n (i) => {\n setNavIndex(i);\n navIndexRef.current = i;\n },\n (ev) => selectItemRef.current(ev),\n virtualized,\n );\n }, [items, list.current, virtualized]);\n\n useEffect(() => {\n const navigateVirtualized = (dir, ev) => {\n helpers.current.navigate(dir, ev);\n scrollToVirtualized(navIndexRef.current);\n };\n\n const keydownVirtualized = (ev, dir) => {\n const currentNavIndex = navIndexRef.current;\n const currentItems = itemsRef.current;\n if (\n currentNavIndex !== 0 &&\n currentNavIndex !== currentItems.length - 1 &&\n (ev.key === 'ArrowDown' || ev.key === 'ArrowUp')\n )\n ev.preventDefault();\n helpers.current.keydown(ev, dir);\n\n if (list.current) {\n const isTargetVisibleTop = list.current.scrollTop <= navIndexRef.current * itemHeightRef.current;\n const isTargetVisibleBottom =\n list.current.scrollTop + list.current.clientHeight >=\n navIndexRef.current * itemHeightRef.current + itemHeightRef.current;\n\n if (!isTargetVisibleTop) {\n list.current.scrollTop = navIndexRef.current * itemHeightRef.current;\n setScrollTop(list.current.scrollTop);\n } else if (!isTargetVisibleBottom) {\n scrollToVirtualized(navIndexRef.current);\n }\n }\n };\n\n onReady &&\n onReady({\n navigate: virtualized ? navigateVirtualized : helpers.current.navigate,\n keydown: virtualized ? keydownVirtualized : helpers.current.keydown,\n move: helpers.current.move,\n });\n }, []);\n\n const dropdownKey = useRef(0);\n const prevItemsRef = useRef(items);\n if (prevItemsRef.current !== items) {\n prevItemsRef.current = items;\n dropdownKey.current += 1;\n }\n\n const onCancel = useCallback(() => {\n helpers.current.navigate(null);\n }, [helpers]);\n\n const handleScroll = useCallback((ev) => {\n if (virtualized) {\n setScrollTop(ev.target.scrollTop);\n }\n }, [virtualized]);\n\n const displayedItemsCount = useMemo(\n () => Math.ceil((list.current?.clientHeight || 0) / itemHeight),\n [itemHeight, scrollTop],\n );\n\n const visibleRange = useMemo(() => {\n if (!virtualized) return { start: 0, end: items.length };\n if (!items.length) return { start: 0, end: 0 };\n\n const start = Math.floor(scrollTop / itemHeight);\n const end = start + displayedItemsCount;\n\n return {\n start: Math.max(0, start - overscan),\n end: Math.min(items.length, end + overscan),\n };\n }, [virtualized, items, scrollTop, itemHeight, displayedItemsCount]);\n\n const visibleItems = useMemo(() => {\n if (!virtualized) return items;\n const { start, end } = visibleRange;\n return items.slice(start, end).map((item) => ({\n ...item,\n }));\n }, [virtualized, items, visibleRange]);\n\n const offsetTop = visibleRange.start * itemHeight;\n const totalHeight = items.length * itemHeight;\n\n useEffect(() => {\n if (virtualized) setScrollTop(0);\n }, [items, virtualized]);\n\n useEffect(() => {\n if (navIndex === null) {\n initialScrolled.current = false;\n }\n }, [navIndex]);\n\n if (navIndex === null) return null;\n\n return (\n <Dropdown key={dropdownKey.current} onCancel={onCancel} {...rest}>\n <div\n className=\"wx-233fr7 wx-list\"\n ref={listRefCallback}\n onClick={selectItem}\n onMouseMove={helpers.current.move}\n onScroll={handleScroll}\n >\n {items.length ? (\n virtualized ? (\n <div\n className=\"wx-233fr7 wx-list-wrapper\"\n style={{ height: `${totalHeight}px` }}\n >\n <div\n className=\"wx-233fr7 wx-list-content\"\n style={{ transform: `translateY(${offsetTop}px)` }}\n >\n <ListContent\n visibleRange={visibleRange}\n visibleItems={visibleItems}\n navIndex={navIndex}\n measureRefCallback={measureRefCallback}\n checkboxes={checkboxes}\n itemTemplate={children}\n value={value}\n />\n </div>\n </div>\n ) : (\n <ListContent\n visibleRange={visibleRange}\n visibleItems={visibleItems}\n navIndex={navIndex}\n measureRefCallback={measureRefCallback}\n checkboxes={checkboxes}\n itemTemplate={children}\n value={value}\n />\n )\n ) : (\n <div className=\"wx-233fr7 wx-no-data\">{_('No data')}</div>\n )}\n </div>\n </Dropdown>\n );\n}\n\n","import { useState, useRef, useMemo, useCallback } from 'react';\nimport List from './helpers/SuggestDropdown.jsx';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\nimport './Combo.css';\n\nexport default function Combo({\n value: valueProp = '',\n id,\n options = [],\n textOptions = null,\n textField = 'label',\n placeholder = '',\n title = '',\n tooltip,\n disabled = false,\n error = false,\n clear = false,\n css = '',\n children: kids,\n onChange,\n dropdown = {},\n}) {\n const inputId = useInputId(id);\n const navigate = useRef(null);\n const keydown = useRef(null);\n\n const [value, setValue] = useWritableProp(valueProp);\n const [filterActive, setFilterActive] = useState(false);\n const [textInput, setTextInput] = useState('');\n\n const inputElement = useRef(null);\n const hasFocus = useRef(false);\n\n // calculate the derived values\n const text = useMemo(() => {\n if (filterActive) return textInput;\n if (value || value === 0) {\n const option = (textOptions || options).find((a) => a.id === value);\n if (option) return option[textField];\n }\n return '';\n }, [filterActive, textInput, value, textOptions, options, textField]);\n\n const filteredOptions = useMemo(() => {\n if (!text || !filterActive) return options;\n\n return options.filter((i) =>\n i[textField].toLowerCase().includes(text.toLowerCase()),\n );\n }, [text, filterActive, options, textField]);\n\n const index = useCallback(\n () => filteredOptions.findIndex((a) => a.id === value),\n [filteredOptions, value],\n );\n\n const ready = useCallback((ev) => {\n navigate.current = ev.navigate;\n keydown.current = ev.keydown;\n }, []);\n\n const doSelect = useCallback(\n (id, effects) => {\n if (id || id === 0) {\n let selected = options.find((a) => a.id === id);\n setFilterActive(false);\n\n if (effects) navigate.current(null);\n\n if (selected && value !== selected.id) {\n const newValue = selected.id;\n setValue(newValue);\n onChange && onChange({ value: newValue });\n }\n }\n\n if (!hasFocus.current && effects) inputElement.current.focus();\n },\n [options, value, onChange],\n );\n\n const selectByEvent = useCallback(\n ({ id }) => {\n doSelect(id, true);\n },\n [doSelect],\n );\n\n const doUnselect = useCallback(\n (ev) => {\n if (ev) ev.stopPropagation();\n\n setValue('');\n setFilterActive(false);\n onChange && onChange({ value: '' });\n },\n [onChange],\n );\n\n const selectByText = useCallback(\n (chunk) => {\n if (!options.length) return;\n if (chunk === '' && clear) {\n doUnselect();\n return;\n }\n\n let res = options.find((i) => i[textField] === chunk);\n if (!res) {\n res = options.find((i) =>\n i[textField].toLowerCase().includes(chunk.toLowerCase()),\n );\n }\n\n const id = res ? res.id : value || options[0].id;\n doSelect(id, false);\n },\n [options, textField, clear, value, doSelect, doUnselect],\n );\n\n const handleInput = useCallback(() => {\n setTextInput(inputElement.current.value);\n setFilterActive(true);\n\n if (filteredOptions.length) navigate.current(0);\n }, [filteredOptions.length, navigate]);\n\n const handleFocus = useCallback(() => {\n hasFocus.current = true;\n }, []);\n\n const handleBlur = useCallback(() => {\n hasFocus.current = false;\n setTimeout(() => {\n if (!hasFocus.current) selectByText(text);\n }, 200);\n }, [selectByText, text]);\n\n return (\n <div\n className={'wx-1j11Jk wx-combo ' + css}\n onClick={() => navigate.current(index())}\n onKeyDown={(ev) => keydown.current(ev, index())}\n title={title}\n data-tooltip-text={tooltip}\n >\n <input\n className={'wx-1j11Jk wx-input ' + (error ? 'wx-error' : '')}\n id={inputId}\n ref={inputElement}\n value={text}\n disabled={disabled}\n placeholder={placeholder}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onInput={handleInput}\n />\n\n {clear && !disabled && value ? (\n <i className=\"wx-1j11Jk wx-icon wxi-close\" onClick={doUnselect}></i>\n ) : (\n <i className=\"wx-1j11Jk wx-icon wxi-angle-down\"></i>\n )}\n\n {!disabled && (\n <List items={filteredOptions} onReady={ready} onSelect={selectByEvent} {...dropdown}>\n {({ option }) => <>{kids ? kids({ option }) : option[textField]}</>}\n </List>\n )}\n </div>\n );\n}\n","import { useCallback, useEffect, useRef, useMemo } from 'react';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\nimport './Text.css';\n\nexport default function Text({\n value: propsValue = '',\n id,\n readonly = false,\n focus = false,\n select = false,\n type = 'text',\n placeholder = '',\n disabled = false,\n error = false,\n title = '',\n tooltip,\n css = '',\n icon = '',\n clear = false,\n onChange,\n}) {\n const inputId = useInputId(id);\n const [value, setValue] = useWritableProp(propsValue);\n const inputRef = useRef(null);\n\n const cssString = useMemo(\n () =>\n icon && css.indexOf('wx-icon-left') === -1 ? 'wx-icon-right ' + css : css,\n [icon, css],\n );\n\n const hasLeftIcon = useMemo(\n () => icon && css.indexOf('wx-icon-left') !== -1,\n [icon, css],\n );\n\n useEffect(() => {\n const timer = setTimeout(() => {\n if (focus && inputRef.current) inputRef.current.focus();\n if (select && inputRef.current) inputRef.current.select();\n }, 1);\n\n return () => clearTimeout(timer);\n }, [focus, select]);\n\n const oninput = useCallback(\n (e) => {\n const newValue = e.target.value;\n setValue(newValue);\n onChange && onChange({ value: newValue, input: true });\n },\n [onChange],\n );\n\n const ontextchange = useCallback(\n (ev) => onChange && onChange({ value: ev.target.value }),\n [onChange],\n );\n\n function clearValue(ev) {\n ev.stopPropagation();\n setValue('');\n onChange && onChange({ value: '' });\n }\n\n let inputType = type;\n if (type !== 'password' && type !== 'number') {\n inputType = 'text';\n }\n\n // MK :: EXTRACT\n useEffect(() => {\n const handler = ontextchange;\n const node = inputRef.current;\n node.addEventListener('change', handler);\n return () => {\n if (node) {\n node.removeEventListener('change', handler);\n }\n };\n }, [ontextchange]);\n\n return (\n <div\n className={`wx-hQ64J4 wx-text ${cssString} ${error ? 'wx-error' : ''} ${\n disabled ? 'wx-disabled' : ''\n } ${clear ? 'wx-clear' : ''}`}\n data-tooltip-text={tooltip}\n >\n <input\n className=\"wx-hQ64J4 wx-input\"\n ref={inputRef}\n id={inputId}\n readOnly={readonly}\n disabled={disabled}\n placeholder={placeholder}\n type={inputType}\n title={title}\n value={value}\n onInput={oninput}\n />\n\n {clear && !disabled && value ? (\n <>\n <i className=\"wx-hQ64J4 wx-icon wxi-close\" onClick={clearValue}></i>\n {hasLeftIcon && <i className={`wx-hQ64J4 wx-icon ${icon}`}></i>}\n </>\n ) : icon ? (\n <i className={`wx-hQ64J4 wx-icon ${icon}`}></i>\n ) : null}\n </div>\n );\n}\n","import { useContext, useMemo } from 'react';\nimport { dateToString, getDuodecade } from '@svar-ui/lib-dom';\nimport { i18n } from '../../context.js';\n\nfunction Header({ date, type, part, onShift }) {\n const { calendar, formats } = useContext(i18n).getRaw();\n\n const year = date.getFullYear();\n\n const label = useMemo(() => {\n switch (type) {\n case 'month':\n return dateToString(formats.monthYearFormat, calendar)(date);\n case 'year':\n return dateToString(formats.yearFormat, calendar)(date);\n case 'duodecade': {\n const { start, end } = getDuodecade(year);\n const yearFormat = dateToString(formats.yearFormat, calendar);\n return `${yearFormat(new Date(start, 0, 1))} - ${yearFormat(new Date(end, 11, 31))}`;\n }\n default:\n return '';\n }\n }, [date, type, year, calendar, formats]);\n\n function changeType() {\n onShift && onShift({ diff: 0, type });\n }\n\n return (\n <div className=\"wx-8HQVQV wx-header\">\n {part !== 'right' ? (\n <i\n className=\"wx-8HQVQV wx-pager wxi-angle-left\"\n onClick={() => onShift && onShift({ diff: -1, type })}\n />\n ) : (\n <span className=\"wx-8HQVQV wx-spacer\" />\n )}\n\n <span className=\"wx-8HQVQV wx-label\" onClick={changeType}>\n {label}\n </span>\n\n {part !== 'left' ? (\n <i\n className=\"wx-8HQVQV wx-pager wxi-angle-right\"\n onClick={() => onShift && onShift({ diff: 1, type })}\n />\n ) : (\n <span className=\"wx-8HQVQV wx-spacer\" />\n )}\n </div>\n );\n}\n\nimport './Header.css';\n\nexport default Header;\n","import './Button.css';\n\nexport default function Button({ onClick, children }) {\n return (\n <button className=\"wx-3s8W4d wx-button\" onClick={onClick}>\n {children}\n </button>\n );\n}\n","import { useContext, useMemo, useEffect, useRef } from 'react';\nimport { delegateClick } from '@svar-ui/lib-dom';\nimport { i18n } from '../../context.js';\nimport './Month.css';\nimport { defaultLocale } from '../helpers/locale.js';\n\nexport default function Month({\n value,\n current,\n part = '',\n markers = null,\n css = '',\n onCancel,\n onChange,\n}) {\n const locale = (useContext(i18n) || defaultLocale()).getRaw().calendar;\n const weekStart = (locale.weekStart || 7) % 7;\n const weekdays = locale.dayShort\n .slice(weekStart)\n .concat(locale.dayShort.slice(0, weekStart));\n\n const dv = (d, dm, dd) =>\n new Date(\n d.getFullYear(),\n d.getMonth() + (dm || 0),\n d.getDate() + (dd || 0),\n );\n let ranges = part !== 'normal';\n\n function isWeekEnd(date) {\n const d = date.getDay();\n return d === 0 || d === 6;\n }\n\n function getStart() {\n const start = dv(current, 0, 1 - current.getDate());\n start.setDate(start.getDate() - ((start.getDay() - (weekStart - 7)) % 7));\n return start;\n }\n function getEnd() {\n const end = dv(current, 1, -current.getDate());\n end.setDate(end.getDate() + ((6 - end.getDay() + weekStart) % 7));\n return end;\n }\n\n //MK : HACK\n const lastTime = useRef(0);\n function selectDate(date, e) {\n if (e.timeStamp === lastTime.current) return;\n lastTime.current = e.timeStamp;\n\n e.stopPropagation();\n if (onChange) onChange(new Date(date));\n if (onCancel) onCancel();\n }\n\n const date = useMemo(() => {\n if (part == 'normal') return [value ? dv(value).valueOf() : 0];\n return value\n ? [\n value.start ? dv(value.start).valueOf() : 0,\n value.end ? dv(value.end).valueOf() : 0,\n ]\n : [0, 0];\n }, [part, value]);\n\n const days = useMemo(() => {\n const start = getStart();\n const end = getEnd();\n const curMonth = current.getMonth();\n\n let days = [];\n for (let d = start; d <= end; d.setDate(d.getDate() + 1)) {\n const day = {\n day: d.getDate(),\n in: d.getMonth() === curMonth,\n date: d.valueOf(),\n };\n\n let css = '';\n css += !day.in ? ' wx-inactive' : '';\n css += date.indexOf(day.date) > -1 ? ' wx-selected' : '';\n\n if (ranges) {\n const s = day.date == date[0];\n const e = day.date == date[1];\n if (s && !e) css += ' wx-left';\n else if (e && !s) css += ' wx-right';\n\n if (day.date > date[0] && day.date < date[1]) css += ' wx-inrange';\n }\n\n css += isWeekEnd(d) ? ' wx-weekend' : '';\n if (markers) {\n const mark = markers(d);\n if (mark) css += ' ' + mark;\n }\n\n days.push({ ...day, css });\n }\n return days;\n }, [current, date, ranges, markers]);\n\n const delegateRef = useRef(null);\n let delegateHandler = useRef({});\n delegateHandler.current.click = selectDate;\n\n useEffect(() => {\n delegateClick(delegateRef.current, delegateHandler.current);\n }, []);\n\n return (\n <div className={`wx-398RBS wx-month ${css}`}>\n <div className=\"wx-398RBS wx-weekdays\">\n {weekdays.map((day) => (\n <div key={day} className=\"wx-398RBS wx-weekday\">\n {day}\n </div>\n ))}\n </div>\n <div className=\"wx-398RBS wx-days\" ref={delegateRef}>\n {days.map((day) => (\n <div\n key={day.date}\n className={`wx-398RBS wx-day ${day.css} ${!day.in ? 'wx-out' : ''}`}\n data-id={day.date}\n >\n {day.day}\n </div>\n ))}\n </div>\n </div>\n );\n}\n","import { useContext, useMemo, useCallback, useRef } from 'react';\nimport Button from './Button.jsx';\nimport { getPartValue } from './helpers';\nimport { i18n } from '../../context.js';\nimport './Year.css';\nimport { useWritableProp } from '@svar-ui/lib-react';\n\nexport default function Year({\n value: valueProp,\n current: currentProp,\n part,\n onCancel,\n onChange,\n onShift,\n}) {\n const defaultDate = useRef(new Date());\n const [value, setValue] = useWritableProp(valueProp || defaultDate.current);\n const [current, setCurrent] = useWritableProp(currentProp || defaultDate.current);\n\n const locale = useContext(i18n).getRaw().calendar;\n const months = locale.monthShort || [];\n\n const monthNum = useMemo(() => {\n return current.getMonth();\n }, [current]);\n\n const selectMonth = useCallback(\n (month, e) => {\n if (month !== null && month !== undefined) {\n e.stopPropagation();\n const newCurrent = new Date(current);\n newCurrent.setMonth(month);\n setCurrent(newCurrent);\n\n onShift && onShift({ current: newCurrent });\n }\n\n if (part === 'normal') setValue(new Date(current));\n\n onCancel && onCancel();\n },\n [current, part, onShift, onCancel],\n );\n\n const done = useCallback(() => {\n const date = new Date(getPartValue(value, part) || current);\n\n date.setMonth(current.getMonth());\n date.setFullYear(current.getFullYear());\n\n onChange && onChange(date);\n }, [value, current, part, onChange]);\n\n const handleMonthClick = useCallback(\n (e) => {\n const target = e.target.closest('[data-id]');\n if (target) {\n const month = parseInt(target.getAttribute('data-id'), 10);\n selectMonth(month, e);\n }\n },\n [selectMonth],\n );\n\n return (\n <>\n <div className={'wx-34U8T8 wx-months'} onClick={handleMonthClick}>\n {months.map((month, i) => (\n <div\n key={i}\n className={\n 'wx-34U8T8 wx-month' + (monthNum === i ? ' wx-current' : '')\n }\n data-id={i}\n >\n {month}\n </div>\n ))}\n </div>\n <div className={'wx-34U8T8 wx-buttons'}>\n <Button onClick={done}>{locale.done}</Button>\n </div>\n </>\n );\n}\n","import { useContext, useMemo, useRef, useEffect } from 'react';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { delegateClick, getDuodecade } from '@svar-ui/lib-dom';\nimport Button from './Button.jsx';\nimport { getPartValue } from './helpers';\nimport { i18n } from '../../context.js';\nimport './Duodecade.css';\n\nconst cssScope = 'wx-1XEF33';\n\nconst Duodecade = ({ value, current, onCancel, onChange, onShift, part }) => {\n const _ = useContext(i18n).getRaw().calendar;\n\n const [currentState, setCurrent] = useWritableProp(current);\n const [valueState, setValue] = useWritableProp(value);\n\n const year = useMemo(() => currentState.getFullYear(), [currentState]);\n\n const years = useMemo(() => {\n const { start, end } = getDuodecade(year);\n const years = [];\n for (let y = start; y <= end; ++y) {\n years.push(y);\n }\n return years;\n }, [year]);\n\n const selectYears = {\n click: selectYear,\n };\n\n function selectYear(yearVal, e) {\n if (yearVal) {\n e.stopPropagation();\n const newCurrent = new Date(currentState);\n newCurrent.setFullYear(yearVal);\n setCurrent(newCurrent);\n\n onShift && onShift({ current: newCurrent });\n }\n\n if (part === 'normal') {\n setValue(new Date(currentState));\n }\n\n onCancel && onCancel();\n }\n\n function done() {\n const date = new Date(getPartValue(valueState, part) || currentState);\n\n date.setFullYear(currentState.getFullYear());\n\n onChange && onChange(date);\n }\n\n const containerRef = useRef(null);\n\n useEffect(() => {\n if (containerRef.current) {\n delegateClick(containerRef.current, selectYears);\n }\n }, []);\n\n return (\n <>\n <div className={cssScope + ' wx-years'} ref={containerRef}>\n {years.map((y, i) => (\n <div\n key={i}\n className={\n cssScope +\n ` wx-year ${year == y ? 'wx-current' : ''} ${i === 0 ? 'wx-prev-decade' : ''} ${i === 11 ? 'wx-next-decade' : ''}`\n }\n data-id={y}\n >\n {y}\n </div>\n ))}\n </div>\n <div className={cssScope + ' wx-buttons'}>\n <Button onClick={done}>{_.done}</Button>\n </div>\n </>\n );\n};\n\nexport default Duodecade;\n","import Month from './Month.jsx';\nimport Year from './Year.jsx';\nimport Duodecade from './Duodecade.jsx';\n\nexport const configs = {\n month: {\n component: Month,\n next: nextMonth,\n prev: prevMonth,\n },\n year: {\n component: Year,\n next: nextYear,\n prev: prevYear,\n },\n duodecade: {\n component: Duodecade,\n next: nextDuodecade,\n prev: prevDuodecade,\n },\n};\n\nfunction prevMonth(current) {\n current = new Date(current);\n current.setMonth(current.getMonth() - 1);\n return current;\n}\nfunction nextMonth(current) {\n current = new Date(current);\n current.setMonth(current.getMonth() + 1);\n return current;\n}\nfunction prevYear(current) {\n current = new Date(current);\n current.setFullYear(current.getFullYear() - 1);\n return current;\n}\nfunction nextYear(current) {\n current = new Date(current);\n current.setFullYear(current.getFullYear() + 1);\n return current;\n}\nfunction prevDuodecade(current) {\n current = new Date(current);\n current.setFullYear(current.getFullYear() - 10);\n return current;\n}\nfunction nextDuodecade(current) {\n current = new Date(current);\n current.setFullYear(current.getFullYear() + 10);\n return current;\n}\n\nexport function getPartValue(value, part) {\n let date;\n if (part === 'normal') date = value;\n else {\n const { start, end } = value;\n if (part === 'left') date = start;\n else if (part == 'right') date = end;\n else date = start ? end : start;\n }\n\n return date;\n}\n","import { useContext, useState, useMemo } from 'react';\nimport Header from './Header.jsx';\nimport Button from './Button.jsx';\nimport { configs } from './helpers';\nimport { i18n } from '../../context.js';\nimport './Panel.css';\n\nconst defaultButtons = ['clear', 'today'];\n\nfunction getButtonValue(btn) {\n if (btn === 'done') return -1;\n if (btn === 'clear') return null;\n if (btn === 'today') return new Date();\n}\n\nfunction Panel({\n value,\n current,\n onCurrentChange,\n part = 'normal',\n markers = null,\n buttons,\n css = '',\n onShift,\n onChange,\n}) {\n const _ = useContext(i18n).getGroup('calendar');\n\n const [type, setType] = useState('month');\n\n const buttonsList = Array.isArray(buttons)\n ? buttons\n : buttons\n ? defaultButtons\n : [];\n\n const selectDate = (ev, date) => {\n ev.preventDefault();\n onChange && onChange({ value: date });\n };\n\n const oncancel = () => {\n if (type === 'duodecade') setType('year');\n else if (type === 'year') setType('month');\n };\n\n const onShiftLocal = (ev) => {\n const { diff, current: newCurrent } = ev;\n\n if (diff === 0) {\n if (type === 'month') setType('year');\n else if (type === 'year') setType('duodecade');\n return;\n }\n if (diff) {\n const obj = configs[type];\n onCurrentChange(diff > 0 ? obj.next(current) : obj.prev(current));\n } else if (newCurrent) {\n onCurrentChange(newCurrent);\n }\n\n onShift && onShift();\n };\n\n const onChangeLocal = (value) => {\n setType('month');\n onChange && onChange({ select: true, value });\n };\n\n const CalendarView = useMemo(() => configs[type].component, [type]);\n\n return (\n <div\n className={`wx-2Gr4AS wx-calendar ${part !== 'normal' && part !== 'both' ? 'wx-part' : ''} ${css}`}\n >\n <div className=\"wx-2Gr4AS wx-wrap\">\n <Header date={current} part={part} type={type} onShift={onShiftLocal} />\n <div>\n <CalendarView\n value={value}\n current={current}\n onCurrentChange={onCurrentChange}\n part={part}\n markers={markers}\n onCancel={oncancel}\n onChange={onChangeLocal}\n onShift={onShiftLocal}\n />\n {type === 'month' && buttonsList.length > 0 && (\n <div className=\"wx-2Gr4AS wx-buttons\">\n {buttonsList.map((button) => (\n <div key={button} className=\"wx-2Gr4AS wx-button-item\">\n <Button\n onClick={(e) => selectDate(e, getButtonValue(button))}\n >\n {_(button)}\n </Button>\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n </div>\n );\n}\n\nexport default Panel;\n","import { useContext, useMemo } from 'react';\nimport { i18n } from './context';\nimport { locale } from '@svar-ui/lib-dom';\nimport { en } from '@svar-ui/core-locales';\n\nexport default function Component(props) {\n let { words = null, optional = false, children } = props;\n\n let l = useContext(i18n);\n const v = useMemo(() => {\n let t = l;\n if (!t || !t.extend) t = locale(en);\n if (words !== null) t = t.extend(words, optional);\n return t;\n }, [words, optional, l]);\n\n return <i18n.Provider value={v}>{children}</i18n.Provider>;\n}\n","import { useEffect, useCallback } from 'react';\nimport Panel from './calendar/Panel.jsx';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport Locale from '../Locale.jsx';\n\nfunction fixCurrent(current, value, setCurrent, force) {\n if (!current || force) {\n const newCurrent = value ? new Date(value) : new Date();\n newCurrent.setDate(1);\n setCurrent(newCurrent);\n } else {\n if (current.getDate() !== 1) {\n const newCurrent = new Date(current);\n newCurrent.setDate(1);\n setCurrent(newCurrent);\n }\n }\n}\n\nconst defaultButtons = ['clear', 'today'];\n\nexport default function Calendar({\n value: valueProp,\n current: currentProp,\n markers = null,\n buttons = defaultButtons,\n css = '',\n onChange,\n}) {\n const [value, setValue] = useWritableProp(valueProp);\n const [current, setCurrent] = useWritableProp(currentProp);\n\n useEffect(() => {\n fixCurrent(current, value, setCurrent, false);\n }, [value, current]);\n\n const onChangeLocal = useCallback(\n (v) => {\n const x = v.value;\n if (x) {\n setValue(new Date(x));\n fixCurrent(current, new Date(x), setCurrent, true);\n } else {\n setValue(null);\n }\n\n onChange && onChange({ value: x ? new Date(x) : null });\n },\n [onChange, current],\n );\n\n const onCurrentChangeLocal = useCallback(\n (v) => {\n setCurrent(v);\n },\n [setCurrent],\n );\n\n if (!current) return null;\n\n return (\n <Locale>\n <Panel\n value={value}\n current={current}\n markers={markers}\n buttons={buttons}\n css={css}\n onChange={onChangeLocal}\n onCurrentChange={onCurrentChangeLocal}\n />\n </Locale>\n );\n}\n","export function toDateDropdown(dropdown) {\n if (!dropdown) dropdown = {};\n if (!dropdown.width) dropdown.width = 'unset';\n return dropdown;\n}\n","import { useState, useEffect, useMemo, useContext } from 'react';\nimport { dateToString } from '@svar-ui/lib-dom';\nimport { i18n } from '../context.js';\n\nimport Text from './Text.jsx';\nimport Dropdown from './Dropdown.jsx';\nimport Calendar from './Calendar.jsx';\nimport './DatePicker.css';\nimport { defaultLocale } from './helpers/locale.js';\nimport { toDateDropdown } from './helpers/dropdown.js';\n\nconst defaultButtons = ['clear', 'today'];\n\nexport default function DatePicker({\n value: propValue,\n id,\n disabled = false,\n error = false,\n placeholder = '',\n format = '',\n buttons = defaultButtons,\n css = '',\n title = '',\n tooltip,\n editable = false,\n clear = false,\n onChange,\n dropdown = {},\n}) {\n const { calendar: calendarLocale, formats } = (\n useContext(i18n) || defaultLocale()\n ).getRaw();\n const f = format || formats?.dateFormat;\n let dateFormat =\n typeof f === 'function' ? f : dateToString(f, calendarLocale);\n\n const [value, setValue] = useState(propValue);\n const [popup, setPopup] = useState(false);\n\n // Update local value when prop value changes\n useEffect(() => {\n setValue(propValue);\n }, [propValue]);\n\n function oncancel() {\n setPopup(false);\n }\n\n function doChange(v) {\n // skip \"select\" event if the same value\n // or different objects with the same value\n const skipEvent =\n v === value ||\n (v && value && v.valueOf() === value.valueOf()) ||\n (!v && !value);\n\n setValue(v);\n if (!skipEvent) {\n onChange && onChange({ value: v });\n }\n\n // fire after on-click finished\n setTimeout(oncancel, 1);\n }\n\n const formattedValue = useMemo(\n () => (value ? dateFormat(value) : ''),\n [value, dateFormat],\n );\n\n function onchangeHandler({ value: v, input }) {\n if (!editable && !clear) return;\n if (input) return;\n\n // convert to date, but ignore empty string input\n let date =\n typeof editable === 'function' ? editable(v) : v ? new Date(v) : null;\n\n // if date is invalid ( incorrect text input ) then use old value\n // else use the entered date\n // in any case fallback to null, to prevent undefined as value\n date = isNaN(date) ? value || null : date || null;\n doChange(date);\n }\n\n // Handle scroll event on window\n useEffect(() => {\n const handleScroll = oncancel;\n window.addEventListener('scroll', handleScroll);\n return () => window.removeEventListener('scroll', handleScroll);\n }, []);\n\n return (\n <div className=\"wx-1lKOFG wx-datepicker\" onClick={() => setPopup(true)}>\n <Text\n css={`wx-date-input ${css}`}\n title={title}\n tooltip={tooltip}\n value={formattedValue}\n id={id}\n readonly={!editable}\n disabled={disabled}\n error={error}\n placeholder={placeholder}\n onInput={oncancel}\n onChange={onchangeHandler}\n icon=\"wxi-calendar\"\n clear={clear}\n />\n\n {popup && !disabled && (\n <Dropdown\n onCancel={oncancel}\n {...toDateDropdown(dropdown)}\n >\n <Calendar\n buttons={buttons}\n value={value}\n onChange={(e) => doChange(e.value)}\n />\n </Dropdown>\n )}\n </div>\n );\n}\n","import { useState, useEffect, useCallback } from 'react';\nimport Panel from './calendar/Panel';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport './RangeCalendar.css';\nimport Locale from '../Locale.jsx';\n\nconst defaultButtons = ['clear', 'today'];\n\nconst RangeCalendar = ({\n start: startProp,\n end: endProp,\n current,\n months = 2,\n markers = null,\n buttons = defaultButtons,\n css = '',\n onChange,\n}) => {\n const [start, setStart] = useWritableProp(startProp);\n const [end, setEnd] = useWritableProp(endProp);\n const [leftCurrent, setLeftCurrent] = useState();\n const [rightCurrent, setRightCurrent] = useState();\n\n const addMonth = useCallback((l, diff, rPrev) => {\n const r = new Date(l);\n r.setMonth(r.getMonth() + diff);\n if (rPrev && r.valueOf() === rPrev.valueOf()) return rPrev;\n return r;\n }, []);\n\n const onLeft = useCallback(\n (v) => {\n setLeftCurrent(() => {\n const newLeft = new Date(v);\n newLeft.setDate(1);\n setRightCurrent(addMonth(newLeft, 1));\n return newLeft;\n });\n },\n [addMonth],\n );\n\n const onRight = useCallback(\n (v) => {\n setRightCurrent(() => {\n const newRight = new Date(v);\n newRight.setDate(1);\n setLeftCurrent(addMonth(newRight, -1));\n return newRight;\n });\n },\n [addMonth],\n );\n\n // Effect for initializing leftCurrent based on start/current\n useEffect(() => {\n const startVal = start;\n const currentVal = current;\n\n if (!leftCurrent) {\n onLeft(startVal ? new Date(startVal) : currentVal || new Date());\n }\n }, [start, current, leftCurrent, onLeft]);\n\n const selectChange = useCallback(\n (ev) => {\n const v = ev.value;\n let s = start,\n e = end;\n const final = v === -1;\n if (!final) {\n if (ev.select) {\n if (!start || end) {\n setStart((s = v));\n setEnd((e = null));\n } else {\n if (start > v) {\n setEnd((e = start));\n setStart((s = v));\n } else {\n setEnd((e = v));\n }\n }\n } else {\n if (!v) {\n setStart((s = null));\n setEnd((e = null));\n } else {\n setStart((s = new Date(v)));\n setEnd((e = new Date(v)));\n }\n }\n }\n\n if (final || !buttons.includes('done'))\n onChange && onChange({ start: s, end: e });\n return [s, e];\n },\n [start, end, buttons, onChange],\n );\n\n const doChangeStart = useCallback(\n (v) => {\n const [s] = selectChange(v);\n if (s) onLeft(new Date(s));\n },\n [onLeft, start, end],\n );\n\n const doChangeEnd = useCallback(\n (v) => {\n const [, e] = selectChange(v);\n if (e) onRight(new Date(e));\n },\n [onRight, start, end],\n );\n\n if (!leftCurrent || !rightCurrent) return null;\n\n if (months === 1) {\n return (\n <Locale>\n <Panel\n value={{ start, end }}\n current={leftCurrent}\n markers={markers}\n buttons={buttons}\n css={css}\n part=\"both\"\n onChange={doChangeStart}\n onCurrentChange={onLeft}\n />\n </Locale>\n );\n } else {\n return (\n <Locale>\n <div className={`wx-p2jCaW wx-rangecalendar ${css}`}>\n <div className=\"wx-p2jCaW wx-half\">\n <Panel\n value={{ start, end }}\n current={leftCurrent}\n markers={markers}\n buttons={false}\n part=\"left\"\n onChange={doChangeStart}\n onCurrentChange={onLeft}\n />\n </div>\n <div className=\"wx-p2jCaW wx-half\">\n <Panel\n value={{ start, end }}\n current={rightCurrent}\n markers={markers}\n buttons={buttons}\n part=\"right\"\n onChange={doChangeEnd}\n onCurrentChange={onRight}\n />\n </div>\n </div>\n </Locale>\n );\n }\n};\n\nexport default RangeCalendar;\n","import { useState, useEffect, useMemo, useContext, useCallback } from 'react';\nimport { dateToString } from '@svar-ui/lib-dom';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { i18n } from '../context.js';\n\nimport Text from './Text.jsx';\nimport Dropdown from './Dropdown.jsx';\nimport RangeCalendar from './RangeCalendar.jsx';\nimport { defaultLocale } from './helpers/locale.js';\nimport { toDateDropdown } from './helpers/dropdown.js';\n\nconst defaultButtons = ['clear', 'today'];\n\nconst DateRangePicker = ({\n value: valueProp,\n onChange,\n id,\n disabled = false,\n error = false,\n placeholder = '',\n css = '',\n title = '',\n tooltip,\n format = '',\n months = 2,\n buttons = defaultButtons,\n editable = false,\n clear = false,\n dropdown,\n}) => {\n const [value, setValue] = useWritableProp(valueProp);\n const { calendar: calendarLocale, formats } = (\n useContext(i18n) || defaultLocale()\n ).getRaw();\n\n const f = format || formats?.dateFormat;\n const dateFormat =\n typeof f === 'function' ? f : dateToString(f, calendarLocale);\n\n const [popup, setPopup] = useState(false);\n\n const onCancel = useCallback(() => {\n setPopup(false);\n }, []);\n\n const formattedValue = useMemo(() => {\n return value\n ? value.start\n ? dateFormat(value.start) +\n (value.end ? ` - ${dateFormat(value.end)}` : '')\n : dateFormat(value)\n : '';\n }, [value, dateFormat]);\n\n const start = useMemo(() => {\n return value ? value.start || null : null;\n }, [value]);\n\n const end = useMemo(() => {\n return value ? value.end || null : null;\n }, [value]);\n\n const doChange = useCallback(\n (d) => {\n const newValue = d.start || d.end ? { start: d.start, end: d.end } : null;\n\n // Handle both cases: either external setValue or onChange prop\n if (setValue) {\n setValue(newValue);\n } else {\n // Parent must handle value prop update via onChange\n }\n\n // fire after on-click finished\n if ((d.start && d.end) || (!d.start && !d.end)) {\n // FIXME - select event will trigger even if the same value\n if (onChange) {\n onChange({ value: newValue });\n }\n setTimeout(onCancel, 1);\n }\n },\n [onChange, onCancel, setValue],\n );\n\n const doInputChange = useCallback(\n (ev) => {\n if (!editable && !clear) return;\n\n const { value: v, input } = ev;\n if (input) return;\n\n const [s, e] = v.split(' -').map((a, i) => {\n const av = a.trim();\n let date =\n typeof editable === 'function'\n ? editable(av)\n : av\n ? new Date(av)\n : null;\n\n // if date is invalid ( incorrect text input ) then use old value\n // else use the entered date\n // in any case fallback to null, to prevent undefined as value\n let val = i === 0 ? start : end;\n return isNaN(date) ? (val ? val : null) : date || null;\n });\n\n doChange({ start: s, end: e });\n },\n [editable, clear, start, end, doChange],\n );\n\n useEffect(() => {\n const handleScroll = () => {\n onCancel();\n };\n\n window.addEventListener('scroll', handleScroll);\n return () => {\n window.removeEventListener('scroll', handleScroll);\n };\n }, [onCancel]);\n\n return (\n <div\n className={`wx-1b0WDQ wx-daterangepicker ${disabled ? 'wx-disabled' : ''} ${error ? 'wx-error' : ''}`}\n onClick={() => setPopup(true)}\n >\n <Text\n css={`wx-date-input ${css}`}\n title={title}\n tooltip={tooltip}\n value={formattedValue}\n id={id}\n readonly={!editable}\n disabled={disabled}\n placeholder={placeholder}\n error={error}\n onChange={doInputChange}\n icon=\"wxi-calendar\"\n clear={clear}\n />\n\n {popup && !disabled && (\n <Dropdown\n onCancel={onCancel}\n {...toDateDropdown(dropdown)}\n >\n <RangeCalendar\n onCancel={onCancel}\n buttons={buttons}\n start={start}\n end={end}\n months={months}\n onChange={doChange}\n />\n </Dropdown>\n )}\n </div>\n );\n};\n\nexport default DateRangePicker;\n\nimport './DateRangePicker.css';\n","import { useEffect, useRef, useState, useMemo } from 'react';\nimport { useHotkeys } from '@svar-ui/lib-react';\nimport Button from './Button.jsx';\nimport './Fullscreen.css';\n\nexport default function Fullscreen({\n hotkey = null,\n toggleButton,\n children,\n}) {\n const nodeRef = useRef(null);\n const [inFullscreen, setInFullscreen] = useState(false);\n\n const icon = useMemo(\n () => `wxi-${inFullscreen ? 'collapse' : 'expand'}`,\n [inFullscreen],\n );\n\n const toggleFullscreen = useRef(null);\n toggleFullscreen.current = () => {\n const node = nodeRef.current;\n if (!inFullscreen && node) {\n node.requestFullscreen();\n } else if (inFullscreen) {\n document.exitFullscreen();\n }\n setInFullscreen((prev) => !prev);\n };\n\n useHotkeys({ [hotkey]: () => toggleFullscreen.current() }, nodeRef);\n\n useEffect(() => {\n const setFullscreenState = () => {\n setInFullscreen(document.fullscreenElement === nodeRef.current);\n };\n\n document.addEventListener('fullscreenchange', setFullscreenState);\n return () => {\n document.removeEventListener('fullscreenchange', setFullscreenState);\n };\n }, []);\n\n return (\n <div className=\"wx-13aa5W wx-fullscreen\" ref={nodeRef} tabIndex={-1}>\n {children}\n {toggleButton ? (\n toggleButton(toggleFullscreen.current, inFullscreen)\n ) : (\n <Button css=\"wx-13aa5W wx-fullscreen-button\" onClick={toggleFullscreen.current}>\n <i className={`wx-13aa5W ${icon} wx-fullscreen-icon`}> </i>\n </Button>\n )}\n </div>\n );\n}\n","import './Icon.css';\n\nexport default function Icon({ css = '', title = '', tooltip, children, onClick }) {\n if (children) {\n return (\n <i\n title={title}\n role=\"img\"\n className={`wx-mdnST1 wx-icon ${css}`}\n onClick={onClick}\n data-tooltip-text={tooltip}\n >\n {children}\n </i>\n );\n } else {\n return (\n <i\n title={title}\n className={`wx-mdnST1 wx-icon ${css}`}\n onClick={onClick}\n data-tooltip-text={tooltip}\n />\n );\n }\n}\n","import { useState, useMemo, useRef, useCallback } from 'react';\nimport { useWritableProp, snippet } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\nimport List from './helpers/SuggestDropdown.jsx';\nimport './MultiCombo.css';\n\nconst defaultValue = [];\n\nexport default function MultiCombo({\n id,\n value: valueProp = defaultValue,\n options = [],\n textOptions = null,\n textField = 'label',\n keepText = false,\n placeholder = '',\n title = '',\n tooltip,\n disabled = false,\n error = false,\n checkboxes = false,\n css = '',\n onChange,\n children,\n dropdown = {},\n}) {\n const inputId = useInputId(id);\n const navigate = useRef(null);\n const keydown = useRef(null);\n\n const [value, setValue] = useWritableProp(valueProp);\n\n const [text, setText] = useState('');\n const [focus, setFocus] = useState(false);\n const inputElement = useRef(null);\n\n const selected = useMemo(() => {\n return value\n ? (textOptions || options).filter((i) => value.includes(i.id))\n : [];\n }, [value, textOptions, options]);\n\n const filterOptions = useMemo(() => {\n const o = options;\n return text\n ? o.filter((i) => i[textField].toLowerCase().includes(text.toLowerCase()))\n : o;\n }, [text, options, textField]);\n\n const onready = useCallback((ev) => {\n navigate.current = ev.navigate;\n keydown.current = ev.keydown;\n }, []);\n\n const input = useCallback(() => {\n if (filterOptions.length) navigate.current(0);\n else navigate.current(null);\n }, [filterOptions]);\n\n const onselect = useCallback(\n (ev) => {\n const { id } = ev;\n if (id) {\n setValue(id);\n if (!keepText) setText('');\n onChange && onChange({ value: id });\n inputElement.current.focus();\n }\n },\n [onChange, keepText],\n );\n\n const remove = useCallback(\n (id, ev) => {\n if (ev) ev.stopPropagation();\n\n const next = value.filter((i) => i !== id);\n setValue(next);\n onChange && onChange({ value: next });\n },\n [value, onChange],\n );\n\n const index = useCallback(\n () =>\n value && value.length\n ? filterOptions.findIndex((i) => i.id === value[0])\n : 0,\n [value, filterOptions],\n );\n\n const onClickHandler = useCallback(() => {\n if (!disabled) {\n inputElement.current.focus();\n navigate.current(index());\n }\n }, [disabled, index]);\n\n return (\n <div\n title={title}\n className={\n `wx-12Wj21 wx-multicombo ${css} ` +\n `${error ? 'wx-error' : ''} ${disabled ? 'wx-disabled' : ''} ${selected.length ? 'wx-not-empty' : ''} ${focus && !disabled ? 'wx-focus' : ''}`\n }\n onClick={onClickHandler}\n onKeyDown={(ev) => keydown.current(ev, index())}\n data-tooltip-text={tooltip}\n >\n <div className=\"wx-12Wj21 wx-wrapper\">\n <div className=\"wx-12Wj21 wx-tags\">\n {selected.map((tag) => (\n <div key={tag.id} className=\"wx-12Wj21 wx-tag\">\n {children ? snippet(children, { option: tag }) : tag[textField]}\n {!disabled && (\n <i\n className=\"wx-12Wj21 wx-icon wxi-close\"\n onClick={(ev) => remove(tag.id, ev)}\n ></i>\n )}\n </div>\n ))}\n </div>\n <div className=\"wx-12Wj21 wx-select\">\n <input\n className=\"wx-12Wj21 wx-input\"\n id={inputId}\n type=\"text\"\n value={text}\n onChange={(ev) => setText(ev.target.value)}\n onInput={input}\n placeholder={placeholder}\n disabled={disabled}\n onFocus={() => setFocus(true)}\n onBlur={() => setFocus(false)}\n ref={inputElement}\n />\n <i className=\"wx-12Wj21 wx-icon wxi-angle-down\"></i>\n </div>\n </div>\n\n {!disabled && (\n <List\n items={filterOptions}\n multiselect={true}\n onReady={onready}\n onSelect={onselect}\n checkboxes={checkboxes}\n value={value}\n {...dropdown}\n >\n {({ option }) => (\n <>\n {children ? snippet(children, { option }) : option[textField]}\n </>\n )}\n </List>\n )}\n </div>\n );\n}\n","import { useContext } from 'react';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { i18n } from '../context.js';\nimport './Pager.css';\nimport { defaultLocale } from './helpers/locale.js';\n\nconst Pager = ({\n total = 0,\n pageSize: initialPageSize = 20,\n value: initialValue = 1,\n css = '',\n onChange,\n}) => {\n const [pageSize, setPageSize] = useWritableProp(initialPageSize);\n const [value, setValue] = useWritableProp(initialValue);\n\n const _ = (useContext(i18n) || defaultLocale()).getGroup('core');\n\n const pageCount = Math.ceil(total / pageSize);\n const from = (value - 1) * pageSize;\n const to = Math.min(value * pageSize, total);\n\n const setInnerValue = (v, final) => {\n if (Number.isNaN(v)) return;\n\n if (!final) setValue(v);\n v = Math.max(1, Math.min(v, pageCount));\n if (final) setValue(v);\n\n if (v === value) return;\n setTimeout(() => {\n onChange &&\n onChange({\n value: v,\n from: (v - 1) * pageSize,\n to: Math.min(v * pageSize, total),\n pageSize: pageSize,\n });\n });\n };\n\n function setActivePage(id) {\n switch (id) {\n case 'first':\n setInnerValue(1);\n break;\n\n case 'prev':\n setInnerValue(value - 1);\n break;\n\n case 'next':\n setInnerValue(value + 1);\n break;\n\n case 'last':\n setInnerValue(pageCount);\n break;\n\n default:\n break;\n }\n }\n\n const onPageSizeInput = (e) => {\n const newValue = e.target.value * 1;\n if (Number.isNaN(newValue)) {\n return;\n }\n\n setPageSize(newValue);\n onChange && onChange({ value, from, to, pageSize: newValue });\n };\n\n return (\n <div className={`wx-35Np0p wx-pager ${css}`}>\n <div className=\"wx-35Np0p wx-left\">\n <span>{_('Rows per page')}: </span>\n <input\n type=\"number\"\n min={1}\n className=\"wx-35Np0p wx-input\"\n value={pageSize}\n onChange={onPageSizeInput}\n />\n </div>\n\n <div className=\"wx-35Np0p wx-center\">\n <i\n className={\n 'wx-35Np0p wx-icon wxi-angle-dbl-left' +\n (value === 1 ? ' wx-disabled' : '')\n }\n onClick={() => setActivePage('first')}\n ></i>\n <i\n className={\n 'wx-35Np0p wx-icon wxi-angle-left' +\n (value === 1 ? ' wx-disabled' : '')\n }\n onClick={() => setActivePage('prev')}\n ></i>\n <input\n type=\"text\"\n value={value}\n className=\"wx-35Np0p wx-input\"\n onChange={(e) => setInnerValue(e.target.value * 1)}\n onBlur={(e) => setInnerValue(e.target.value * 1, true)}\n />\n <i\n className={\n 'wx-35Np0p wx-icon wxi-angle-right' +\n (value === pageCount ? ' wx-disabled' : '')\n }\n onClick={() => setActivePage('next')}\n ></i>\n <i\n className={\n 'wx-35Np0p wx-icon wxi-angle-dbl-right' +\n (value === pageCount ? ' wx-disabled' : '')\n }\n onClick={() => setActivePage('last')}\n ></i>\n </div>\n\n <div className=\"wx-35Np0p wx-right\">\n {_('Total pages')}: {pageCount}\n </div>\n </div>\n );\n};\n\nexport default Pager;\n","import { useState } from 'react';\nimport { useInputId } from './helpers/getInputId.js';\nimport { useId } from 'react';\nimport './RadioButton.css';\n\nexport default function RadioButton({\n id,\n label = '',\n value: externalValue,\n name = '',\n inputValue = '',\n disabled = false,\n css = '',\n onChange,\n}) {\n const fallbackId = useId();\n const inputId = useInputId(id) || fallbackId;\n // Internal state for uncontrolled behavior\n const [internalValue, setInternalValue] = useState(false);\n\n // Determine which value to use (controlled vs uncontrolled)\n // For React, we need to handle both cases\n const isControlled = externalValue !== undefined;\n const currentValue = isControlled ? externalValue : internalValue;\n\n function handlerChange(ev) {\n const newValue = ev.target.checked;\n\n if (!isControlled) {\n setInternalValue(newValue);\n }\n\n if (newValue && onChange) {\n onChange({ value: true, inputValue });\n }\n }\n\n return (\n <div className={`wx-3lDF1s wx-radio ${css}`}>\n <input\n type=\"radio\"\n className=\"wx-3lDF1s wx-input\"\n id={inputId}\n disabled={disabled}\n name={name}\n value={inputValue}\n checked={currentValue}\n onChange={handlerChange}\n />\n <label htmlFor={inputId} className=\"wx-3lDF1s wx-label\">\n <span className=\"wx-3lDF1s wx-circle\"></span>\n {label && <span className=\"wx-3lDF1s wx-radio-text\">{label}</span>}\n </label>\n </div>\n );\n}\n","import { uid } from '@svar-ui/lib-dom';\nimport { useState, useEffect } from 'react';\nimport RadioButton from './RadioButton.jsx';\nimport { fieldId } from \"../context\";\nimport './RadioButtonGroup.css';\n\n\nexport default function RadioButtonGroup({\n options = [{}],\n value = '',\n onChange,\n type = '',\n css = '',\n}) {\n const name = uid();\n\n const [currentValue, setCurrentValue] = useState(value);\n\n useEffect(() => {\n setCurrentValue(value);\n }, [value]);\n\n function handleChange(ev) {\n const newValue = ev.inputValue;\n setCurrentValue(newValue);\n if (onChange) {\n onChange({ value: newValue });\n }\n }\n\n return (\n <fieldId.Provider value={null}>\n <div className={`wx-38w70j wx-radiogroup ${type && `wx-${type}`} ${css}`}>\n {options.map((option) => (\n <div key={option.id} className=\"wx-38w70j wx-item\">\n <RadioButton\n label={option.label}\n inputValue={option.id}\n value={currentValue === option.id}\n name={name}\n onChange={handleChange}\n />\n </div>\n ))}\n </div>\n </fieldId.Provider>\n );\n}\n","import { useRef, useCallback, useMemo } from 'react';\nimport List from './helpers/SuggestDropdown.jsx';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport './RichSelect.css';\n\nexport default function RichSelect({\n value: propertyValue = '',\n options = [],\n textOptions = null,\n placeholder = '',\n disabled = false,\n error = false,\n title = '',\n tooltip,\n textField = 'label',\n clear = false,\n css = '',\n children: kids,\n onChange,\n dropdown = {},\n}) {\n const navigate = useRef(null);\n const keydown = useRef(null);\n let [value, setValue] = useWritableProp(propertyValue);\n\n function ready(ev) {\n navigate.current = ev.navigate;\n keydown.current = ev.keydown;\n }\n\n const selected = useMemo(() => {\n return value || value === 0\n ? (textOptions || options).find((a) => a.id === value)\n : null;\n }, [value, textOptions, options]);\n\n const select = useCallback(\n ({ id }) => {\n if (id || id === 0) {\n setValue(id);\n navigate.current(null);\n onChange && onChange({ value: id });\n }\n },\n [setValue, onChange],\n );\n\n const unselect = useCallback(\n (ev) => {\n ev.stopPropagation();\n setValue('');\n onChange && onChange({ value: '' });\n },\n [setValue, onChange],\n );\n\n const index = useCallback(() => {\n return options.findIndex((a) => a.id === value);\n }, [options, value]);\n\n return (\n <div\n className={`wx-2YgblL wx-richselect ${css} ${error ? 'wx-2YgblL wx-error' : ''} ${disabled ? 'wx-2YgblL wx-disabled' : ''} ${!kids ? 'wx-2YgblL wx-nowrap' : ''}`}\n title={title}\n onClick={() => navigate.current(index())}\n onKeyDown={(ev) => keydown.current(ev, index())}\n tabIndex={0}\n data-tooltip-text={tooltip}\n >\n <div className=\"wx-2YgblL wx-label\">\n {selected ? (\n kids ? (\n kids(selected)\n ) : (\n selected[textField]\n )\n ) : placeholder ? (\n <span className=\"wx-2YgblL wx-placeholder\">{placeholder}</span>\n ) : (\n '\\u00A0'\n )}\n </div>\n\n {clear && !disabled && value ? (\n <i className=\"wx-2YgblL wx-icon wxi-close\" onClick={unselect} />\n ) : (\n <i className=\"wx-2YgblL wx-icon wxi-angle-down\" />\n )}\n\n {!disabled && (\n <List items={options} onReady={ready} onSelect={select} {...dropdown}>\n {({ option }) => (kids ? kids(option) : option[textField])}\n </List>\n )}\n </div>\n );\n}\n","import { useState, useEffect } from 'react';\nimport { snippet } from '@svar-ui/lib-react';\nimport './Segmented.css';\n\nconst Segmented = ({\n options = [],\n value = '',\n css = '',\n children,\n onChange,\n}) => {\n // Note: Using additional state for controlled/uncontrolled handling since React doesn't allow direct prop mutation\n const [internalValue, setInternalValue] = useState(value);\n\n const handleClick = (id) => {\n setInternalValue(id);\n if (onChange) {\n onChange({ value: id });\n }\n };\n\n // Ensure internal value stays in sync with external value changes\n useEffect(() => {\n setInternalValue(value);\n }, [value]);\n\n return (\n <div className={'wx-0hMO7P' + ` wx-segmented ${css}`}>\n {options.map((option) => (\n <button\n key={option.id}\n className={\n 'wx-0hMO7P' +\n ` wx-segment ${option.css} ${option.id === internalValue ? 'wx-selected' : ''}`\n }\n title={option.title}\n onClick={() => handleClick(option.id)}\n data-tooltip-text={option.tooltip}\n >\n {children ? (\n snippet(children, { option })\n ) : (\n <>\n {option.icon && (\n <i\n className={\n 'wx-0hMO7P' +\n ` wx-icon ${option.icon} ${!option.label ? 'wx-only' : ''}`\n }\n ></i>\n )}\n {option.label && (\n <span className=\"wx-0hMO7P wx-label\">{option.label}</span>\n )}\n </>\n )}\n </button>\n ))}\n </div>\n );\n};\n\nexport default Segmented;\n","import { useState, useCallback } from 'react';\nimport { useInputId } from './helpers/getInputId.js';\nimport './Select.css';\n\nexport default function Select({\n value: valueProp,\n options = [],\n placeholder = '',\n title = '',\n tooltip,\n disabled = false,\n error = false,\n textField = 'label',\n clear = false,\n id,\n css = '',\n onChange,\n}) {\n const inputId = useInputId(id);\n const [value, setValue] = useState(valueProp || '');\n\n const handleChange = useCallback(\n (event) => {\n const newValue = event.target.value;\n setValue(newValue);\n if (onChange) onChange({ value: newValue });\n },\n [onChange],\n );\n\n const unselect = useCallback(() => {\n setValue('');\n if (onChange) onChange({ value: '' });\n }, [onChange]);\n\n return (\n <div\n className={'wx-2yx1Fo wx-select-box ' + css}\n data-tooltip-text={tooltip}\n >\n <select\n id={inputId}\n value={value}\n disabled={disabled}\n className={`wx-2yx1Fo wx-select ${error ? 'wx-2yx1Fo wx-error' : ''}`}\n title={title}\n onChange={handleChange}\n >\n <option value=\"\">{placeholder}</option>\n {options.map((option) => (\n <option key={option.id} value={option.id}>\n {option[textField]}\n </option>\n ))}\n </select>\n\n {clear && !disabled && value ? (\n <i className=\"wx-2yx1Fo wx-icon wxi-close\" onClick={unselect}></i>\n ) : (\n <i className=\"wx-2yx1Fo wx-icon wxi-angle-down\"></i>\n )}\n </div>\n );\n}\n","import { useEffect, useMemo, useRef } from 'react';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\nimport './Slider.css';\n\nexport default function Slider({\n id,\n label = '',\n css = '',\n min = 0,\n max = 100,\n value: initialValue = 0,\n step = 1,\n title = '',\n tooltip,\n disabled = false,\n onChange,\n width = \"\",\n}) {\n const inputId = useInputId(id);\n const [value, setValue] = useWritableProp(initialValue);\n const previous = useRef({ value: value, input: value });\n\n const progress = useMemo(\n () => ((value - min) / (max - min)) * 100 + '%',\n [value, min, max],\n );\n\n const bgStyle = useMemo(() => {\n return disabled\n ? ''\n : `linear-gradient(90deg, var(--wx-slider-primary) 0% ${progress}, var(--wx-slider-background) ${progress} 100%)`;\n }, [disabled, progress]);\n\n function oninput({ target }) {\n const newValue = target.value * 1;\n setValue(newValue);\n onChange &&\n onChange({\n value: newValue,\n previous: previous.current.input,\n input: true,\n });\n previous.current.input = newValue;\n }\n\n function onslider({ target }) {\n const newValue = target.value * 1;\n setValue(newValue);\n onChange && onChange({ value: newValue, previous: previous.current.value });\n previous.current.value = newValue;\n }\n\n // Sync if props.value changes externally\n useEffect(() => {\n setValue(initialValue);\n }, [initialValue]);\n\n const inputRef = useRef(null);\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.addEventListener('change', onslider);\n return () => {\n if (inputRef.current) {\n inputRef.current.removeEventListener('change', onslider);\n }\n };\n }\n }, [inputRef, onslider]);\n\n const style = {...(width && { width })};\n\n return (\n <div\n className={`wx-2EDJ8G wx-slider ${css}`}\n style={style}\n title={title}\n data-tooltip-text={tooltip}\n >\n {label && (\n <label className=\"wx-2EDJ8G wx-label\" htmlFor={inputId}>\n {label}\n </label>\n )}\n <div className=\"wx-2EDJ8G wx-inner\">\n <input\n id={inputId}\n className=\"wx-2EDJ8G wx-input\"\n type=\"range\"\n min={min}\n max={max}\n step={step}\n disabled={disabled}\n value={value}\n onInput={oninput}\n style={{ background: bgStyle }}\n ref={inputRef}\n />\n </div>\n </div>\n );\n}\n","import { useCallback } from 'react';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\nimport './Switch.css';\n\nexport default function Switch({\n id,\n value: initialValue = false,\n disabled = false,\n css = '',\n onChange,\n}) {\n const inputId = useInputId(id);\n const [value, setValue] = useWritableProp(initialValue);\n\n const handleChange = useCallback(\n (event) => {\n const newValue = event.target.checked;\n setValue(newValue);\n onChange && onChange({ value: newValue });\n },\n [onChange],\n );\n\n return (\n <label className={`wx-2dAR5c wx-switch ${css}`}>\n <input\n className=\"wx-2dAR5c wx-input\"\n type=\"checkbox\"\n checked={value}\n onChange={handleChange}\n disabled={disabled}\n id={inputId}\n />\n <span className=\"wx-2dAR5c wx-box\" />\n </label>\n );\n}\n","import { useWritableProp } from '@svar-ui/lib-react';\nimport './Tabs.css';\n\nconst Tabs = ({\n options = [],\n value: propValue = '',\n type = 'top',\n css = '',\n onChange,\n}) => {\n const [value, setValue] = useWritableProp(propValue);\n\n const handleClick = (optionId) => {\n setValue(optionId);\n if (onChange) {\n onChange({ value: optionId });\n }\n };\n\n return (\n <div className={'wx-138fWJ ' + `wx-tabs wx-${type} ${css}`}>\n {options.map((option) => (\n <button\n key={option.id}\n className={\n 'wx-138fWJ ' +\n `wx-tab ${option.css} ${option.id === value ? 'wx-active' : ''}`\n }\n title={option.title}\n onClick={() => handleClick(option.id)}\n data-tooltip-text={option.tooltip}\n >\n {option.icon && (\n <i\n className={\n 'wx-138fWJ ' +\n `wx-icon ${option.icon} ${!option.label ? 'wx-only' : ''}`\n }\n ></i>\n )}\n {option.label && (\n <span className=\"wx-138fWJ wx-label\">{option.label}</span>\n )}\n </button>\n ))}\n </div>\n );\n};\n\nexport default Tabs;\n","import { useCallback } from 'react';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { useInputId } from './helpers/getInputId.js';\nimport './Counter.css';\n\nconst Counter = ({\n id,\n value: initialValue = 0,\n step = 1,\n min = 0,\n max = Infinity,\n error = false,\n disabled = false,\n readonly = false,\n css = '',\n tooltip,\n onChange,\n}) => {\n const inputId = useInputId(id);\n const [value, setValue] = useWritableProp(initialValue);\n\n const dec = useCallback(() => {\n if (readonly || value <= min) return;\n const newValue = value - step;\n setValue(newValue);\n onChange && onChange({ value: newValue });\n }, [value, readonly, min, step, onChange]);\n\n const inc = useCallback(() => {\n if (readonly || value >= max) return;\n const newValue = value + step;\n setValue(newValue);\n onChange && onChange({ value: newValue });\n }, [value, readonly, max, step, onChange]);\n\n const blur = useCallback(() => {\n if (!readonly) {\n const tValue =\n Math.round(Math.min(max, Math.max(value, min)) / step) * step;\n const newValue = isNaN(tValue) ? Math.max(min, 0) : tValue;\n setValue(newValue);\n onChange && onChange({ value: newValue });\n }\n }, [readonly, value, max, min, step, onChange]);\n\n const input = useCallback(\n (e) => {\n const newValue = e.target.value * 1;\n setValue(newValue);\n onChange && onChange({ value: newValue, input: true });\n },\n [onChange],\n );\n\n return (\n <div\n className={\n 'wx-22t21n ' +\n `wx-counter ${css} ${disabled ? 'wx-disabled' : ''} ${readonly ? 'wx-readonly' : ''} ${error ? 'wx-error' : ''}`\n }\n data-tooltip-text={tooltip}\n >\n <button\n aria-label=\"-\"\n className={'wx-22t21n ' + 'wx-btn wx-btn-dec'}\n disabled={disabled}\n onClick={dec}\n >\n <svg\n className={'wx-22t21n ' + 'wx-dec'}\n width=\"12\"\n height=\"2\"\n viewBox=\"0 0 12 2\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M11.2501 1.74994H0.750092V0.249939H11.2501V1.74994Z\" />\n </svg>\n </button>\n <input\n id={inputId}\n type=\"text\"\n className={'wx-22t21n ' + 'wx-input'}\n disabled={disabled}\n readOnly={readonly}\n required\n value={value}\n onBlur={blur}\n onInput={input}\n />\n <button\n aria-label=\"-\"\n className={'wx-22t21n ' + 'wx-btn wx-btn-inc'}\n disabled={disabled}\n onClick={inc}\n >\n <svg\n className={'wx-22t21n ' + 'wx-inc'}\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.2501\n\t\t\t\t\t\t\t\t6.74994H6.75009V11.2499H5.25009V6.74994H0.750092V5.24994H5.25009V0.749939H6.75009V5.24994H11.2501V6.74994Z\"\n />\n </svg>\n </button>\n </div>\n );\n};\n\nexport default Counter;\n","import './Notice.css';\n\nexport default function Notice({ notice = {} }) {\n function onRemove() {\n if (notice.remove) notice.remove();\n }\n\n return (\n <div\n className={`wx-11sNg5 wx-notice wx-${notice.type ? notice.type : ''}`}\n role=\"status\"\n aria-live=\"polite\"\n >\n <div className=\"wx-11sNg5 wx-text\">{notice.text}</div>\n <div className=\"wx-11sNg5 wx-button\">\n <i className=\"wx-11sNg5 wxi-close\" onClick={onRemove} />\n </div>\n </div>\n );\n}\n","import Notice from './Notice.jsx';\nimport './Notices.css';\n\nexport default function Notices({ data = [] }) {\n return (\n <div className=\"wx-3nwoO9 wx-notices\">\n {data.map((notice) => (\n <Notice key={notice.id} notice={notice} />\n ))}\n </div>\n );\n}\n","import { useRef, useEffect, useContext } from 'react';\nimport Button from './Button.jsx';\nimport { i18n } from '../context.js';\nimport './Modal.css';\nimport { defaultLocale } from './helpers/locale.js';\n\nexport default function Modal({\n title = '',\n buttons = ['cancel', 'ok'],\n header,\n children,\n footer,\n css = '',\n onConfirm,\n onCancel,\n}) {\n const _ = (useContext(i18n) || defaultLocale()).getGroup('core');\n const modal = useRef(null);\n\n useEffect(() => {\n modal.current?.focus();\n }, []);\n\n function keydown(ev) {\n switch (ev.code) {\n case 'Enter': {\n const from = ev.target.tagName;\n if (from === 'TEXTAREA' || from === 'BUTTON') return;\n onConfirm && onConfirm({ event: ev });\n break;\n }\n case 'Escape':\n onCancel && onCancel({ event: ev });\n break;\n }\n }\n\n function onclick(ev, button) {\n const pack = { event: ev, button };\n if (button === 'cancel') {\n onCancel && onCancel(pack);\n } else {\n onConfirm && onConfirm(pack);\n }\n }\n\n return (\n <div\n className={`wx-1FxkZa wx-modal ${css}`}\n ref={modal}\n tabIndex={0}\n onKeyDown={keydown}\n >\n <div className=\"wx-1FxkZa wx-window\">\n {header ? (\n header\n ) : title ? (\n <div className=\"wx-1FxkZa wx-header\">{title}</div>\n ) : null}\n\n <div>{children}</div>\n\n {footer\n ? footer\n : buttons && (\n <div className=\"wx-1FxkZa wx-buttons\">\n {buttons.map((button) => (\n <div key={button} className=\"wx-1FxkZa wx-button\">\n <Button\n type={`block ${button === 'ok' ? 'primary' : 'secondary'}`}\n onClick={(ev) => onclick(ev, button)}\n >\n {_(button)}\n </Button>\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n );\n}\n","import { useState, useImperativeHandle, forwardRef } from 'react';\nimport Notices from './Notices.jsx';\nimport Modal from './Modal.jsx';\n\nimport { uid } from '@svar-ui/lib-dom';\n\nfunction Globals({ children }, apiRef) {\n const [modal, setModal] = useState(null);\n const [notices, setNotices] = useState([]);\n\n useImperativeHandle(\n apiRef,\n () => ({\n showModal: (msg) => {\n const modalObj = { ...msg };\n setModal(modalObj);\n return new Promise((res, rej) => {\n modalObj.resolve = (v) => {\n setModal(null);\n res(v);\n };\n modalObj.reject = (v) => {\n setModal(null);\n rej(v);\n };\n });\n },\n showNotice: (msg) => {\n msg = { ...msg };\n msg.id = msg.id || uid();\n msg.remove = () =>\n setNotices((prev) => prev.filter((a) => a.id !== msg.id));\n\n if (msg.expire != -1) {\n setTimeout(msg.remove, msg.expire || 5100);\n }\n setNotices((prev) => [...prev, msg]);\n },\n }),\n [],\n );\n\n return (\n <>\n {children}\n {modal && (\n <Modal\n title={modal.title}\n buttons={modal.buttons}\n onConfirm={modal.resolve}\n onCancel={modal.reject}\n >\n {modal.message}\n </Modal>\n )}\n <Notices data={notices} />\n </>\n );\n}\n\nconst GlobalsComponentWithRef = forwardRef(Globals);\nexport default GlobalsComponentWithRef;\n","import { useMemo, useRef } from 'react';\nimport { helpers } from './context';\nimport Globals from './components/Globals.jsx';\n\nexport default function Component(props) {\n let { children } = props;\n let api = useRef();\n\n const l = useMemo(() => {\n return {\n showNotice: (msg) => api.current.showNotice(msg),\n showModal: (msg) => api.current.showModal(msg),\n };\n }, []);\n\n return (\n <helpers.Provider value={l}>\n <Globals ref={api}>{children}</Globals>\n </helpers.Provider>\n );\n}\n","import { useMemo } from 'react';\nimport { uid } from '@svar-ui/lib-dom';\nimport { fieldId } from \"../context\";\nimport './Field.css';\n\nexport default function Field({\n label = '',\n position = '',\n error = false,\n type = '',\n required = false,\n id,\n css = '',\n children,\n width = \"\",\n}) {\n const inputId = useMemo(() => (id === undefined ? uid() : id), [id]);\n const style = {...(width && { width })};\n\n return (\n <fieldId.Provider value={inputId}>\n <div\n style={style}\n className={`wx-2oVUvC wx-field wx-${position} ${css} ${error ? 'wx-error' : ''} ${required ? 'wx-required' : ''}`.trim()}\n >\n {label && (\n inputId\n ? <label className=\"wx-2oVUvC wx-label\" htmlFor={inputId}>{label}</label>\n : <div className=\"wx-2oVUvC wx-label\">{label}</div>\n )}\n <div className={`wx-2oVUvC wx-field-control wx-${type}`}>\n {children}\n </div>\n </div>\n </fieldId.Provider>\n );\n}\n","import { useCallback, useMemo } from 'react';\nimport { snippet, useWritableProp } from '@svar-ui/lib-react';\nimport Button from './Button.jsx';\n\nconst TwoState = ({\n value: initialValue = false,\n type = '',\n icon = '',\n disabled = false,\n iconActive = '',\n onClick,\n title = '',\n tooltip,\n css = '',\n text = '',\n textActive = '',\n children,\n active,\n onChange,\n}) => {\n const [value, setValue] = useWritableProp(initialValue);\n\n const typeStr = useMemo(() => {\n return (value ? 'pressed' : '') + (type ? ' ' + type : '');\n }, [value, type]);\n\n const handleClick = useCallback(\n (ev) => {\n let next = !value;\n if (onClick) onClick(ev);\n if (!ev.defaultPrevented) {\n setValue(next);\n onChange && onChange({ value: next });\n }\n },\n [value, onClick, onChange],\n );\n\n if (value && active) {\n return (\n <Button\n title={title}\n tooltip={tooltip}\n text={(value && textActive) || text}\n css={css}\n type={typeStr}\n icon={(value && iconActive) || icon}\n onClick={handleClick}\n disabled={disabled}\n >\n {snippet(active, { value })}\n </Button>\n );\n } else if (children) {\n return (\n <Button\n title={title}\n tooltip={tooltip}\n text={(value && textActive) || text}\n css={css}\n type={typeStr}\n icon={(value && iconActive) || icon}\n onClick={handleClick}\n disabled={disabled}\n >\n {children}\n </Button>\n );\n } else {\n return (\n <Button\n title={title}\n tooltip={tooltip}\n text={(value && textActive) || text}\n css={css}\n type={typeStr}\n icon={(value && iconActive) || icon}\n onClick={handleClick}\n disabled={disabled}\n />\n );\n }\n};\n\nexport default TwoState;\n","import { useState, useMemo, useContext, useCallback } from 'react';\nimport Field from './Field.jsx';\nimport Text from './Text.jsx';\nimport Dropdown from './Dropdown.jsx';\nimport Slider from './Slider.jsx';\nimport TwoState from './TwoState.jsx';\nimport { i18n } from '../context.js';\nimport { useWritableProp } from '@svar-ui/lib-react';\nimport { dateToString } from '@svar-ui/lib-dom';\nimport './TimePicker.css';\nimport { defaultLocale } from './helpers/locale.js';\nimport { toDateDropdown } from './helpers/dropdown.js';\n\nconst defValue = new Date(0, 0, 0, 0, 0);\n\nexport default function TimePicker({\n value: propertyValue = defValue,\n id,\n title = '',\n tooltip,\n css = '',\n disabled = false,\n error = false,\n format = '',\n onChange,\n dropdown,\n}) {\n let [value, setValue] = useWritableProp(propertyValue);\n\n const { calendar: calendarLocale, formats } = (\n useContext(i18n) || defaultLocale()\n ).getRaw();\n const h12 = calendarLocale.clockFormat == 12;\n\n const maxH = 23;\n const maxM = 59;\n\n const timeFormat = useMemo(() => {\n const f = format || formats?.timeFormat;\n return typeof f === 'function' ? f : dateToString(f, calendarLocale);\n }, [format, formats, calendarLocale]);\n\n const zeroBased = useMemo(() => {\n return timeFormat(new Date(0, 0, 0, 1)).indexOf('01') != -1;\n }, [timeFormat]);\n\n const formatTime = (v, zeroBased) => {\n return (v < 10 && zeroBased ? `0${v}` : `${v}`).slice(-2);\n };\n\n const formatM = (v) => {\n return formatTime(v, true);\n };\n\n const getNumber = (v) => {\n return `${v}`.replace(/[^\\d]/g, '') || 0;\n };\n const formatH = (v) => {\n if (h12) {\n v = v % 12;\n if (v === 0) return '12';\n }\n return formatTime(v, zeroBased);\n };\n\n const update = useCallback((v, max) => {\n v = getNumber(v);\n return Math.min(v, max);\n }, []);\n\n const [popup, setPopup] = useState(null);\n\n const safeValue = value || defValue;\n\n const h = update(safeValue.getHours(), maxH);\n const m = update(safeValue.getMinutes(), maxM);\n\n const pm = h > 12;\n\n const hText = formatH(h);\n const mText = formatM(m);\n const textValue = useMemo(\n () => timeFormat(new Date(0, 0, 0, h, m)),\n [h, m, timeFormat],\n );\n\n const click = useCallback(() => {\n setPopup(true);\n }, []);\n\n const togglePM = useCallback(() => {\n const next = new Date(safeValue);\n next.setHours(next.getHours() + (pm ? -12 : 12));\n setValue(next);\n if (onChange) onChange({ value: next });\n }, [safeValue, pm, onChange]);\n\n const setHours = useCallback(\n ({ value: v }) => {\n if (safeValue.getHours() === v) return;\n\n const next = new Date(safeValue);\n next.setHours(v);\n setValue(next);\n if (onChange) onChange({ value: next });\n },\n [safeValue, onChange],\n );\n\n const setMinutes = useCallback(\n ({ value: v }) => {\n if (safeValue.getMinutes() === v) return;\n\n const next = new Date(safeValue);\n next.setMinutes(v);\n setValue(next);\n if (onChange) onChange({ value: next });\n },\n [safeValue, onChange],\n );\n\n const updateH = useCallback(\n (v) => {\n v = update(v, maxH);\n if (h12) {\n v = v * 1;\n if (v === 12) v = 0;\n if (pm) v += 12;\n }\n return v;\n },\n [update, h12, pm],\n );\n\n const oncancel = useCallback(() => {\n setPopup(null);\n }, []);\n\n return (\n <div\n className={`wx-7f497i wx-timepicker ${error ? 'wx-7f497i wx-error' : ''} ${disabled ? 'wx-7f497i wx-disabled' : ''}`}\n onClick={disabled ? undefined : click}\n style={{ cursor: disabled ? 'default' : 'pointer' }}\n >\n <Text\n id={id}\n css={`wx-date-input ${css}`}\n title={title}\n tooltip={tooltip}\n value={textValue}\n readonly={true}\n disabled={disabled}\n error={error}\n icon=\"wxi-clock\"\n />\n\n {popup && !disabled && (\n <Dropdown onCancel={oncancel} {...toDateDropdown(dropdown)}>\n <div className=\"wx-7f497i wx-wrapper\">\n <div className=\"wx-7f497i wx-timer\">\n <input\n className=\"wx-7f497i wx-digit\"\n value={hText}\n onChange={(ev) => {\n const val = updateH(ev.target.value);\n setHours({ value: val });\n }}\n />\n <div className=\"wx-7f497i wx-separator\">:</div>\n <input\n className=\"wx-7f497i wx-digit\"\n value={mText}\n onChange={(ev) => {\n const val = update(ev.target.value, maxM);\n setMinutes({ value: val });\n }}\n />\n {h12 && (\n <TwoState\n value={pm}\n onClick={togglePM}\n active={() => <span>pm</span>}\n >\n <span>am</span>\n </TwoState>\n )}\n </div>\n <Field width=\"unset\">\n <Slider\n label={calendarLocale.hours}\n value={h}\n width=\"unset\"\n onChange={setHours}\n max={maxH}\n />\n </Field>\n <Field width=\"unset\">\n <Slider\n label={calendarLocale.minutes}\n value={m}\n width=\"unset\"\n onChange={setMinutes}\n max={maxM}\n />\n </Field>\n </div>\n </Dropdown>\n )}\n </div>\n );\n}\n","import { useState, useEffect, useMemo, useRef } from 'react';\nimport { calculatePosition, getAbsParent } from '@svar-ui/lib-dom';\nimport Portal from './Portal.jsx';\nimport './Tooltip.css';\n\nfunction getSide(at) {\n if (at === 'point') return 'point';\n const split = at.split('-');\n return split[0];\n}\n\nfunction getAlign(at) {\n if (at === 'point') return 'center';\n const split = at.split('-');\n return split.length === 1 ? 'center' : split[1];\n}\n\nfunction readCSSPropertyInt(node, property, defaultValue) {\n const value = getComputedStyle(node).getPropertyValue(property);\n return parseInt(value) || defaultValue;\n}\n\nfunction Tooltip(props) {\n const {\n at = 'top-center',\n arrow = false,\n touch = false,\n overflow = false,\n delay = 300,\n content: Content = null,\n children,\n css = '',\n } = props;\n\n function defaultResolver(element) {\n if (overflow && element.scrollWidth <= element.clientWidth) return null;\n const text = element.getAttribute?.('data-tooltip-text');\n return text ? text : null;\n }\n const resolver = props.resolver || defaultResolver;\n\n const side = useMemo(() => getSide(at), [at]);\n const align = useMemo(() => getAlign(at), [at]);\n const resolvedAt = useMemo(() => {\n if (at === 'point') return 'point';\n return `${side}-${align}`;\n }, [at, side, align]);\n\n const areaNode = useRef(null);\n const isHovered = useRef(false);\n const [tooltipNode, setTooltipNode] = useState(null);\n const [match, setMatch] = useState(null); // { result, anchor, mouseX, mouseY }\n const [position, setPosition] = useState(null); // { x, y, z, side, arrowOffset }\n const [firstAnchor, setFirstAnchor] = useState(false);\n\n // keep a fresh copy of match for long-lived handlers (avoid stale closures)\n const matchRef = useRef(match);\n useEffect(() => {\n matchRef.current = match;\n }, [match]);\n\n // render only when there is displayable content\n const shouldRender = useMemo(\n () => match !== null && (!!match.result || Content != null),\n [match, Content],\n );\n\n function getPointOffset() {\n return readCSSPropertyInt(tooltipNode, '--wx-tooltip-point-offset', 14);\n }\n\n function getArrowSize() {\n return readCSSPropertyInt(tooltipNode, '--wx-tooltip-arrow-size', 6);\n }\n\n // Compute the CSS arrow offset relative to the anchor\n function getArrowOffset(arrowSize, result, rect, body) {\n if (side === 'point') return '50%';\n const bodyRect = body?.getBoundingClientRect() ?? { top: 0, left: 0 };\n const h = arrowSize / 2;\n\n let anchorPoint;\n let tooltipEdge;\n if (side === 'top' || side === 'bottom') {\n tooltipEdge = result.x - (body?.scrollLeft ?? 0) + bodyRect.left;\n if (align === 'start') anchorPoint = rect.left + arrowSize + h;\n else if (align === 'end') anchorPoint = rect.right - arrowSize - h;\n else anchorPoint = rect.left + rect.width / 2;\n } else {\n tooltipEdge = result.y - (body?.scrollTop ?? 0) + bodyRect.top;\n if (align === 'start') anchorPoint = rect.top + arrowSize + h;\n else if (align === 'end') anchorPoint = rect.bottom - arrowSize - h;\n else anchorPoint = rect.top + rect.height / 2;\n }\n\n return `${anchorPoint - tooltipEdge}px`;\n }\n\n // Positioning of the tooltip\n useEffect(() => {\n if (!tooltipNode || !match) return void setPosition(null);\n\n // Offset from the mouse cursor when at=\"point\"\n const offset = at === 'point' ? getPointOffset() : 0;\n\n // Calculate the position of the tooltip\n const result = calculatePosition(\n tooltipNode,\n match.anchor,\n resolvedAt,\n match.mouseX + offset,\n match.mouseY + offset,\n );\n\n if (result === null) return void setPosition(null);\n\n // Detect if calculatePosition flipped to the opposite side\n const anchorRect = match.anchor.getBoundingClientRect();\n const body = getAbsParent(tooltipNode);\n const realSide = getSide(result.at);\n\n // Add gap for the arrow if needed, using realSide for direction\n let arrowOffset = '50%';\n if (result && arrow && at !== 'point') {\n const arrowSize = getArrowSize();\n if (realSide === 'top') result.y -= arrowSize;\n else if (realSide === 'bottom') result.y += arrowSize;\n else if (realSide === 'left') result.x -= arrowSize;\n else if (realSide === 'right') result.x += arrowSize;\n arrowOffset = getArrowOffset(arrowSize, result, anchorRect, body);\n }\n\n // Submit the result to the position state\n const minZ = readCSSPropertyInt(tooltipNode, '--wx-tooltip-z-index', 1002);\n\n setPosition({\n x: Math.round(result.x),\n y: Math.round(result.y),\n z: Math.max(result.z, minZ),\n side: realSide,\n arrowOffset,\n });\n }, [tooltipNode, match, at, arrow, side, align, resolvedAt]);\n\n function walk(node, ev) {\n if (!isHovered.current) return null;\n\n // Disable tooltip on touch devices if prop touch == false\n const touchD =\n 'ontouchstart' in window || window.navigator.maxTouchPoints > 0;\n if (touchD && !touch) return null;\n\n for (; node && node !== areaNode.current; node = node.parentNode) {\n if (node.nodeType !== window.Node.ELEMENT_NODE) continue;\n\n const result = resolver(node, ev);\n if (result == null) continue;\n\n return {\n result,\n anchor: node,\n mouseX: ev.clientX,\n mouseY: ev.clientY,\n };\n }\n\n return null;\n }\n\n const timer = useRef(undefined);\n const hiding = useRef(false);\n function debounce(fn, ...args) {\n clearTimeout(timer.current);\n timer.current = setTimeout(fn, delay, ...args);\n }\n\n function onMouseMove(ev) {\n // (1) Ignore if the most closely hovered tooltip area is not this one (in case of nested tooltips)\n if (ev.target.closest('.wx-tooltip-area') !== areaNode.current) {\n isHovered.current = false;\n setMatch(null);\n clearTimeout(timer.current);\n return;\n }\n isHovered.current = true;\n\n const match = matchRef.current;\n\n // (2) If the cursor is still within the anchor element\n if (match?.anchor?.contains(ev.target)) {\n clearTimeout(timer.current);\n hiding.current = false;\n const result = resolver(ev.target, ev);\n if (result != null) {\n setMatch({\n result,\n anchor: ev.target,\n mouseX: ev.clientX,\n mouseY: ev.clientY,\n });\n return;\n }\n }\n\n // (3) Cursor left the anchor - walk for a new anchor\n if (match !== null) {\n const result = walk(ev.target, ev);\n if (!result) {\n if (!hiding.current) {\n hiding.current = true;\n debounce(() => {\n hiding.current = false;\n setMatch(null);\n });\n }\n } else {\n clearTimeout(timer.current);\n hiding.current = false;\n setMatch(result);\n setFirstAnchor(false);\n }\n } else {\n debounce(() => {\n setMatch(walk(ev.target, ev));\n setFirstAnchor(true);\n });\n }\n }\n\n function onMouseLeave() {\n debounce(() => {\n hiding.current = false;\n isHovered.current = false;\n setMatch(null);\n });\n }\n\n useEffect(() => {\n function onscroll() {\n clearTimeout(timer.current);\n setMatch(null);\n }\n\n window.addEventListener('scroll', onscroll, {\n capture: true,\n passive: true,\n });\n\n return () => {\n clearTimeout(timer.current);\n window.removeEventListener('scroll', onscroll, { capture: true });\n };\n }, []);\n\n const tooltipClassName = [\n 'wx-tooltip',\n css,\n arrow && position?.side === 'top' ? 'wx-arrow-top' : '',\n arrow && position?.side === 'bottom' ? 'wx-arrow-bottom' : '',\n arrow && position?.side === 'left' ? 'wx-arrow-left' : '',\n arrow && position?.side === 'right' ? 'wx-arrow-right' : '',\n !firstAnchor ? 'wx-tooltip-transition' : '',\n 'wx-aab5ZNfz',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div\n ref={areaNode}\n className=\"wx-tooltip-area wx-aab5ZNfz\"\n role=\"none\"\n onMouseMove={onMouseMove}\n onMouseLeave={onMouseLeave}\n >\n {shouldRender ? (\n <Portal>\n <div\n className={tooltipClassName}\n role=\"tooltip\"\n ref={setTooltipNode}\n style={{\n translate: `${position?.x ?? 0}px ${position?.y ?? 0}px`,\n zIndex: position?.z ?? 20,\n visibility: !position ? 'hidden' : undefined,\n '--wx-arrow-offset': position?.arrowOffset ?? '50%',\n }}\n >\n <div className=\"wx-tooltip-wrapper wx-aab5ZNfz\">\n <div className=\"wx-tooltip-inner wx-aab5ZNfz\">\n {typeof match.result === 'string' ? (\n Content ? (\n <Content data={match.result} />\n ) : (\n <div className=\"wx-tooltip-text wx-aab5ZNfz\">\n {match.result}\n </div>\n )\n ) : Content ? (\n <Content {...match.result} />\n ) : (\n <div className=\"wx-tooltip-text wx-aab5ZNfz\">\n {match.result?.data}\n </div>\n )}\n </div>\n </div>\n </div>\n </Portal>\n ) : null}\n\n {children}\n </div>\n );\n}\n\nexport default Tooltip;\n","import './ModalArea.css';\n\nexport default function ModalArea({ children }) {\n return (\n <div className=\"wx-KgpO9N wx-modal\">\n <div className=\"wx-KgpO9N wx-window\">{children}</div>\n </div>\n );\n}\n","import { useRef, useEffect } from 'react';\nimport { clickOutside } from '@svar-ui/lib-dom';\nimport './SideArea.css';\n\nexport default function SideArea({ position = 'right', css = '', children, onCancel }) {\n const divRef = useRef(null);\n\n useEffect(() => {\n return clickOutside(divRef.current, onCancel).destroy;\n }, []);\n\n return (\n <div ref={divRef} className={`wx-2L733M wx-sidearea wx-pos-${position} ${css}`}>\n {children}\n </div>\n );\n}\n","import { useState, useEffect, useMemo, useRef } from 'react';\nimport './Avatar.css';\n\nconst DEFAULT_BG = '#dfe2e6';\nconst DEFAULT_FONT = '#2c2f3c';\n\n/** Overlap factor: each avatar after the first adds 75% of size (25% overlap). */\nconst OVERLAP_FACTOR = 0.75;\n\nfunction getInitials(name) {\n\tname = name?.trim() || '';\n\tif (!name) return '';\n\tconst words = name.split(/\\s+/);\n\treturn (words[0][0] + (words[1]?.[0] || '')).toUpperCase().slice(0, 2);\n}\n\nfunction getContrastColor(hex) {\n\tif (!hex) return DEFAULT_FONT;\n\tlet h = hex.replace('#', '');\n\tif (h.length === 3) h = h[0] + h[0] + h[1] + h[1] + h[2] + h[2];\n\tif (h.length !== 6) return DEFAULT_FONT;\n\tconst r = parseInt(h.slice(0, 2), 16) / 255;\n\tconst g = parseInt(h.slice(2, 4), 16) / 255;\n\tconst b = parseInt(h.slice(4, 6), 16) / 255;\n\tconst luminance = 0.299 * r + 0.587 * g + 0.114 * b;\n\treturn luminance > 0.5 ? DEFAULT_FONT : '#ffffff';\n}\n\nfunction Avatar(props) {\n\tconst { value, size = 32, limit, css = '' } = props;\n\n\tconst containerRef = useRef(null);\n\tconst [containerWidth, setContainerWidth] = useState(null);\n\n\tconst users = useMemo(() => {\n\t\tif (!value) return [];\n\t\treturn Array.isArray(value) ? value : [value];\n\t}, [value]);\n\n\t/** Max avatars that fit in container. Formula: width = size + (n-1) * size * 0.75. */\n\tconst maxFitting = useMemo(() => {\n\t\tif (containerWidth == null || containerWidth <= 0) {\n\t\t\treturn null;\n\t\t}\n\t\tconst n = 1 + (containerWidth / size - 1) / OVERLAP_FACTOR;\n\t\treturn Math.max(1, Math.floor(n));\n\t}, [containerWidth, size]);\n\n\tconst displayCount = useMemo(() => {\n\t\tconst cap = limit != null ? Math.min(users.length, limit) : users.length;\n\t\tif (maxFitting != null) {\n\t\t\treturn Math.min(cap, maxFitting);\n\t\t}\n\t\treturn cap;\n\t}, [users, limit, maxFitting]);\n\n\tconst displayUsers = useMemo(() => users.slice(0, displayCount), [users, displayCount]);\n\tconst overflowCount = useMemo(() => Math.max(0, users.length - displayCount), [users, displayCount]);\n\n\tuseEffect(() => {\n\t\tconst el = containerRef.current;\n\t\tif (!el) return;\n\t\tconst ro = new ResizeObserver(entries => {\n\t\t\tconst entry = entries[0];\n\t\t\tif (entry) setContainerWidth(entry.contentRect.width);\n\t\t});\n\t\tro.observe(el);\n\t\treturn () => ro.disconnect();\n\t}, []);\n\n\tconst fontSize = Math.round(size * 0.4);\n\tconst avatarBaseStyle = {\n\t\twidth: size + 'px',\n\t\theight: size + 'px',\n\t\tminWidth: size + 'px',\n\t\tminHeight: size + 'px',\n\t\tfontSize: fontSize + 'px',\n\t};\n\n\tfunction getAvatarItemStyle(user, index) {\n\t\tconst margin = index === 0 ? '0' : `${size * -0.25}px`;\n\t\tconst bg = user.avatar ? 'transparent' : user.color || DEFAULT_BG;\n\t\tconst color = user.avatar\n\t\t\t? 'transparent'\n\t\t\t: getContrastColor(user.color || DEFAULT_BG);\n\t\treturn { marginLeft: margin, backgroundColor: bg, color };\n\t}\n\n\treturn (\n\t\t<div className={`wx-avatar-root wx-aadkRiRf ${css}`} ref={containerRef}>\n\t\t\t{displayUsers.length > 0 && (\n\t\t\t\t<div className=\"wx-avatar-stack wx-aadkRiRf\">\n\t\t\t\t\t{displayUsers.map((user, index) => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={user.id}\n\t\t\t\t\t\t\tclassName={[\n\t\t\t\t\t\t\t\t'wx-avatar',\n\t\t\t\t\t\t\t\t'wx-avatar-item',\n\t\t\t\t\t\t\t\tindex === displayUsers.length - 1 && overflowCount > 0\n\t\t\t\t\t\t\t\t\t? 'wx-avatar-overflow'\n\t\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\t\t\t'wx-aadkRiRf',\n\t\t\t\t\t\t\t].filter(Boolean).join(' ')}\n\t\t\t\t\t\t\tstyle={{ ...avatarBaseStyle, ...getAvatarItemStyle(user, index) }}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{user.avatar ? (\n\t\t\t\t\t\t\t\t<img src={user.avatar} alt=\"\" loading=\"lazy\" />\n\t\t\t\t\t\t\t) : getInitials(user.name) ? (\n\t\t\t\t\t\t\t\t<span className=\"wx-aadkRiRf\">{getInitials(user.name)}</span>\n\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t{index === displayUsers.length - 1 && overflowCount > 0 && (\n\t\t\t\t\t\t\t\t<span className=\"wx-avatar-overflow-badge wx-aadkRiRf\">\n\t\t\t\t\t\t\t\t\t+{overflowCount}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nexport default Avatar;\n","import './FontRoboto.css';\nexport default function render() {\n return <></>;\n}\n","import { theme } from '../context';\nimport RobotoFont from './FontRoboto';\nimport './Material.css';\nexport default function render(props) {\n const { fonts = true, children } = props;\n\n return (\n <theme.Provider value=\"material\">\n <>\n {children && <div className=\"wx-theme wx-material-theme\">{children}</div>}\n\n {fonts && (\n <>\n <link\n rel=\"preconnect\"\n href=\"https://cdn.svar.dev\"\n crossOrigin=\"true\"\n />\n <RobotoFont />\n <link\n rel=\"stylesheet\"\n href=\"https://cdn.svar.dev/fonts/wxi/wx-icons.css\"\n />\n </>\n )}\n </>\n </theme.Provider>\n );\n}\n","import './FontOpenSans.css';\nexport default function render() {\n return <></>;\n}\n","import { theme } from '../context';\nimport FontOpenSans from './FontOpenSans';\nimport './Willow.css';\nexport default function render(props) {\n const { fonts = true, children } = props;\n\n return (\n <theme.Provider value=\"willow\">\n <>\n {children && children && (\n <div className=\"wx-theme wx-willow-theme\">{children}</div>\n )}\n\n {fonts && (\n <>\n <link\n rel=\"preconnect\"\n href=\"https://cdn.svar.dev\"\n crossOrigin=\"true\"\n />\n <FontOpenSans />\n <link\n rel=\"stylesheet\"\n href=\"https://cdn.svar.dev/fonts/wxi/wx-icons.css\"\n />\n </>\n )}\n </>\n </theme.Provider>\n );\n}\n","import { theme } from '../context';\nimport FontOpenSans from './FontOpenSans';\nimport './WillowDark.css';\nexport default function render(props) {\n const { fonts = true, children } = props;\n\n return (\n <theme.Provider value=\"willow-dark\">\n <>\n {children && children && (\n <div className=\"wx-theme wx-willow-dark-theme\">{children}</div>\n )}\n\n {fonts && (\n <>\n <link\n rel=\"preconnect\"\n href=\"https://cdn.svar.dev\"\n crossOrigin=\"true\"\n />\n <FontOpenSans />\n <link\n rel=\"stylesheet\"\n href=\"https://cdn.svar.dev/fonts/wxi/wx-icons.css\"\n />\n </>\n )}\n </>\n </theme.Provider>\n );\n}\n","import { uid } from '@svar-ui/lib-dom';\n\nexport function popupContainer(node) {\n const id = uid();\n node.setAttribute('data-wx-portal-root', id);\n}\n","export { default as TextArea } from './components/TextArea.jsx';\nexport { default as Button } from './components/Button.jsx';\nexport { default as Checkbox } from './components/Checkbox.jsx';\nexport { default as CheckboxGroup } from './components/CheckboxGroup.jsx';\nexport { default as ColorSelect } from './components/ColorSelect.jsx';\nexport { default as ColorBoard } from './components/ColorBoard.jsx';\nexport { default as ColorPicker } from './components/ColorPicker.jsx';\nexport { default as Combo } from './components/Combo.jsx';\nexport { default as DatePicker } from './components/DatePicker.jsx';\nexport { default as DateRangePicker } from './components/DateRangePicker.jsx';\nexport { default as Fullscreen } from './components/Fullscreen.jsx';\nexport { default as Icon } from './components/Icon.jsx';\nexport { default as MultiCombo } from './components/MultiCombo.jsx';\nexport { default as Popup } from './components/Popup.jsx';\nexport { default as Dropdown } from './components/Dropdown.jsx';\nexport { default as Pager } from './components/Pager.jsx';\nexport { default as RadioButton } from './components/RadioButton.jsx';\nexport { default as RadioButtonGroup } from './components/RadioButtonGroup.jsx';\nexport { default as RichSelect } from './components/RichSelect.jsx';\nexport { default as Segmented } from './components/Segmented.jsx';\nexport { default as Select } from './components/Select.jsx';\nexport { default as Slider } from './components/Slider.jsx';\nexport { default as Switch } from './components/Switch.jsx';\nexport { default as Tabs } from './components/Tabs.jsx';\nexport { default as Text } from './components/Text.jsx';\nexport { default as Counter } from './components/Counter.jsx';\nexport { default as Globals } from './Globals.jsx';\nexport { default as Field } from './components/Field.jsx';\nexport { default as Calendar } from './components/Calendar.jsx';\nexport { default as Month } from './components/calendar/Month.jsx';\nexport { default as RangeCalendar } from './components/RangeCalendar.jsx';\nexport { default as TimePicker } from './components/TimePicker.jsx';\nexport { default as Tooltip } from './components/Tooltip.jsx';\nexport { default as TwoState } from './components/TwoState.jsx';\nexport { default as Modal } from './components/Modal.jsx';\nexport { default as ModalArea } from './components/ModalArea.jsx';\nexport { default as SideArea } from './components/SideArea.jsx';\nexport { default as Portal } from './components/Portal.jsx';\nexport { default as Avatar } from './components/Avatar.jsx';\n\nexport { default as Material } from './themes/Material.jsx';\nexport { default as Willow } from './themes/Willow.jsx';\nexport { default as WillowDark } from './themes/WillowDark.jsx';\n\nexport { default as Locale } from './Locale.jsx';\nexport { locale } from '@svar-ui/lib-dom';\n\nexport { popupContainer } from './components/helpers/popup';\nexport { default as SuggestDropdown } from './components/helpers/SuggestDropdown.jsx';\n\nexport { en } from '@svar-ui/core-locales';\nexport * as context from './context.js';\n\nimport { env, setEnv } from '@svar-ui/lib-dom';\nsetEnv(env);\n"],"names":["theme","createContext","helpers","i18n","fieldId","useInputId","id","contextId","useContext","inputId","useState","uid","TextArea","propValue","placeholder","title","tooltip","disabled","error","readonly","css","onChange","value","setValue","useWritableProp","handleInput","useCallback","e","newValue","ontextchange","inputRef","useRef","useEffect","handler","node","jsx","Button","type","icon","text","children","onClick","buttonCss","useMemo","cssType","a","x","handleClick","ev","jsxs","Checkbox","label","inputValue","valueProp","handlerChange","target","CheckboxGroup","options","handleChange","obj","option","Portal","initialTheme","portalRef","componentRef","targetRef","setTargetRef","contextTheme","themeContext","getParentRoot","env","Fragment","createPortal","p","root","Popup","left","top","at","parent","width","onCancel","trackScroll","setX","y","setY","w","setW","visible","setVisible","self","onCancelRef","getWidth","calcWidth","match","updatePosition","result","calculatePosition","useLayoutEffect","onScroll","resizeObserver","getAbsParent","down","clickOutside","InlineDropdown","positionProp","alignProp","autoFit","nodeRef","position","setPosition","align","setAlign","nodeCoords","bodyCoords","Dropdown","inline","props","setTarget","defaultColors","ColorSelect","colors","clear","dropdown","currentValue","setCurrentValue","popup","setPopup","selectColor","color","unselectColor","handlePopup","index","sliderMove","config","slider","moveBlockSlider","moveLineSlider","move","up","dx","dy","coords","colorTransformator","number","length","str","rgb","arr","v","hex","rgbPairs","r","g","b","h","s","hi","f","q","t","min","max","hexValidation","parseColor","defaultLocale","locale","en","BLOCK","LINE","ColorBoard","button","_","blockRef","colorLineRef","blockTop","setBlockTop","blockLeft","setBlockLeft","hueColor","setHueColor","lineLeft","setLineLeft","setInputValue","moveBlockSliderRef","moveLineSliderRef","blockColor","height","_sValue","_vValue","pxX","pxY","newHue","setSlidersPosition","newColor","handleSelect","keydown","isSliderBlock","isSliderLine","code","destroy","d","cssScope","ColorPicker","propertyValue","getListHandlers","navIndex","isVisible","virtualized","list","navCallback","selectCallback","init","l","o","n","c","setNav","scrollTo","next","navigate","dir","locateID","overscan","ItemContent","memo","data","checkboxes","itemTemplate","snippet","ListContent","visibleItems","visibleRange","measureRefCallback","visibleIndex","SuggestDropdown","items","onSelect","onReady","multiselect","rest","initialScrolled","setNavIndex","navIndexRef","scrollTop","setScrollTop","itemHeight","setItemHeight","isItemHeightInitialized","itemsRef","valueRef","itemHeightRef","selectItem","currentItems","currentNavIndex","nextValue","nextId","i","selectItemRef","scrollToVirtualized","idx","newScrollTop","listRefCallback","el","navigateVirtualized","keydownVirtualized","isTargetVisibleTop","isTargetVisibleBottom","dropdownKey","prevItemsRef","handleScroll","displayedItemsCount","start","end","item","offsetTop","totalHeight","Combo","textOptions","textField","kids","filterActive","setFilterActive","textInput","setTextInput","inputElement","hasFocus","filteredOptions","ready","doSelect","effects","selected","selectByEvent","doUnselect","selectByText","chunk","res","handleFocus","handleBlur","List","Text","propsValue","focus","select","cssString","hasLeftIcon","timer","oninput","clearValue","inputType","Header","date","part","onShift","calendar","formats","year","dateToString","getDuodecade","yearFormat","changeType","Month","current","markers","weekStart","weekdays","dv","dm","dd","ranges","isWeekEnd","getStart","getEnd","lastTime","selectDate","days","curMonth","day","mark","delegateRef","delegateHandler","delegateClick","Year","currentProp","defaultDate","setCurrent","months","monthNum","selectMonth","month","newCurrent","done","getPartValue","handleMonthClick","Duodecade","currentState","valueState","years","selectYears","selectYear","yearVal","containerRef","configs","nextMonth","prevMonth","nextYear","prevYear","nextDuodecade","prevDuodecade","defaultButtons","getButtonValue","btn","Panel","onCurrentChange","buttons","setType","buttonsList","oncancel","onShiftLocal","diff","onChangeLocal","CalendarView","Component","words","optional","fixCurrent","force","Calendar","onCurrentChangeLocal","Locale","toDateDropdown","DatePicker","format","editable","calendarLocale","dateFormat","doChange","skipEvent","formattedValue","onchangeHandler","input","RangeCalendar","startProp","endProp","setStart","setEnd","leftCurrent","setLeftCurrent","rightCurrent","setRightCurrent","addMonth","rPrev","onLeft","newLeft","onRight","newRight","startVal","selectChange","final","doChangeStart","doChangeEnd","DateRangePicker","doInputChange","av","val","Fullscreen","hotkey","toggleButton","inFullscreen","setInFullscreen","toggleFullscreen","prev","useHotkeys","setFullscreenState","Icon","defaultValue","MultiCombo","keepText","setText","setFocus","filterOptions","onready","onselect","remove","onClickHandler","tag","Pager","total","initialPageSize","initialValue","pageSize","setPageSize","pageCount","from","to","setInnerValue","setActivePage","onPageSizeInput","RadioButton","externalValue","name","fallbackId","useId","internalValue","setInternalValue","isControlled","RadioButtonGroup","RichSelect","unselect","Segmented","Select","event","Slider","step","previous","progress","bgStyle","onslider","style","Switch","Tabs","optionId","Counter","dec","inc","blur","tValue","Notice","notice","onRemove","Notices","Modal","header","footer","onConfirm","modal","onclick","pack","Globals","apiRef","setModal","notices","setNotices","useImperativeHandle","msg","modalObj","rej","GlobalsComponentWithRef","forwardRef","api","Field","required","TwoState","iconActive","textActive","active","typeStr","defValue","TimePicker","h12","maxH","maxM","timeFormat","zeroBased","formatTime","formatM","getNumber","formatH","update","safeValue","m","pm","hText","mText","textValue","click","togglePM","setHours","setMinutes","updateH","getSide","getAlign","split","readCSSPropertyInt","property","Tooltip","arrow","touch","overflow","delay","Content","defaultResolver","element","resolver","side","resolvedAt","areaNode","isHovered","tooltipNode","setTooltipNode","setMatch","firstAnchor","setFirstAnchor","matchRef","shouldRender","getPointOffset","getArrowSize","getArrowOffset","arrowSize","rect","body","bodyRect","anchorPoint","tooltipEdge","offset","anchorRect","realSide","arrowOffset","minZ","walk","hiding","debounce","fn","args","onMouseMove","onMouseLeave","onscroll","tooltipClassName","ModalArea","SideArea","divRef","DEFAULT_BG","DEFAULT_FONT","OVERLAP_FACTOR","getInitials","getContrastColor","Avatar","size","limit","containerWidth","setContainerWidth","users","maxFitting","displayCount","cap","displayUsers","overflowCount","ro","entries","entry","fontSize","avatarBaseStyle","getAvatarItemStyle","user","margin","bg","render","fonts","RobotoFont","FontOpenSans","popupContainer","setEnv"],"mappings":"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"}
|