@lytjs/ui 6.7.0 → 6.8.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.d.cts +1959 -0
- package/dist/index.d.ts +1959 -0
- package/dist/index.mjs +4 -4
- package/dist/index.mjs.map +1 -1
- package/package.json +8 -8
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Button.ts","../src/components/Input.ts","../src/components/Dialog.ts","../src/components/Select.ts","../src/components/Tabs.ts","../src/components/Table.ts","../src/components/Form.ts","../src/components/Transition.ts","../src/components/DatePicker.ts","../src/components/Tree.ts","../src/components/Menu.ts","../src/components/Cascader.ts","../src/components/TreeSelect.ts","../src/components/Transfer.ts","../src/components/Descriptions.ts","../src/components/Modal.ts","../src/components/Drawer.ts","../src/components/Upload.ts","../src/components/Notification.ts","../src/components/Calendar.ts","../src/components/Image.ts","../src/components/Rate.ts","../src/components/ColorPicker.ts","../src/components/Icon.ts","../src/components/Badge.ts","../src/components/Tag.ts","../src/components/Spin.ts","../src/components/Empty.ts","../src/components/Link.ts","../src/components/Container.ts","../src/components/Divider.ts","../src/components/Toast.ts","../src/components/Alert.ts","../src/components/Tooltip.ts","../src/components/Checkbox.ts","../src/components/CheckboxGroup.ts","../src/components/Radio.ts","../src/components/RadioGroup.ts","../src/components/Switch.ts","../src/components/InputNumber.ts","../src/components/Progress.ts","../src/components/Slider.ts","../src/components/Avatar.ts","../src/components/Card.ts","../src/components/Timeline.ts","../src/components/TimelineItem.ts","../src/components/Steps.ts","../src/components/Step.ts","../src/components/Carousel.ts","../src/components/CarouselItem.ts","../src/components/Popconfirm.ts","../src/components/RichTextEditor.ts","../src/index.ts"],"names":["defineComponent","isString","isObject","createVNode","getButtonA11yProps","mergeA11yProps","signal","getFormControlA11yProps","createTextVNode","watch","effect","getDialogA11yProps","FOCUSABLE_SELECTORS","getComboboxA11yProps","p","panelId","getTabA11yProps","getTabpanelA11yProps","getTablistA11yProps","getInputControlA11yProps","getGroupA11yProps","getDaysInMonth","getFirstDayOfMonth","isSameDay","reactive","onUnmounted","computed","isArray","getSwitchA11yProps","getSpinbuttonA11yProps","getSliderA11yProps"],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * @lytjs/ui - Button 组件\n *\n * 基础按钮组件,支持多种类型、尺寸和状态\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { getButtonA11yProps, mergeA11yProps } from '@lytjs/common-a11y';\nimport type { ButtonSetupProps, ButtonSlots } from './types';\n\nexport const Button = defineComponent({\n name: 'LytButton',\n\n props: {\n type: { type: String, default: 'default' },\n size: { type: String, default: 'medium' },\n disabled: { type: Boolean, default: false },\n loading: { type: Boolean, default: false },\n plain: { type: Boolean, default: false },\n round: { type: Boolean, default: false },\n circle: { type: Boolean, default: false },\n nativeType: { type: String, default: 'button' },\n class: { type: String, default: '' },\n style: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n tabIndex: { type: Number, default: undefined },\n onClick: { type: Function, default: undefined },\n onKeydown: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: ButtonSlots }) {\n const p = props as ButtonSetupProps;\n\n const handleClick = (event: MouseEvent) => {\n if (p.disabled || p.loading) {\n event.preventDefault();\n return;\n }\n p.onClick?.(event);\n };\n\n const handleKeydown = (event: KeyboardEvent) => {\n if (p.disabled || p.loading) {\n return;\n }\n\n // 支持Enter和Space键触发按钮\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n handleClick(event as unknown as MouseEvent);\n }\n\n p.onKeydown?.(event);\n };\n\n const getButtonClass = () => {\n const classes = ['lyt-button'];\n if (p.type !== 'default') classes.push(`lyt-button--${p.type}`);\n if (p.size !== 'medium') classes.push(`lyt-button--${p.size}`);\n if (p.plain) classes.push('lyt-button--plain');\n if (p.round) classes.push('lyt-button--round');\n if (p.circle) classes.push('lyt-button--circle');\n if (p.disabled) classes.push('lyt-button--disabled');\n if (p.loading) classes.push('lyt-button--loading');\n if (p.class) classes.push(p.class);\n return classes.join(' ');\n };\n\n const getButtonStyle = () => {\n if (!p.style) return undefined;\n if (isString(p.style)) return p.style;\n if (isObject(p.style)) {\n return Object.entries(p.style)\n .map(([key, value]) => `${key}: ${value}`)\n .join('; ');\n }\n return undefined;\n };\n\n return () => {\n const children: VNode[] = [];\n\n if (p.loading) {\n children.push(\n createVNode('span', { class: 'lyt-button__loading' }, [\n createVNode('svg', { class: 'lyt-button__loading-icon', viewBox: '0 0 1024 1024' }, [\n createVNode('path', {\n d: 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z',\n fill: 'currentColor',\n }),\n ]),\n ]),\n );\n }\n\n if (slots.default) {\n children.push(createVNode('span', { class: 'lyt-button__text' }, slots.default()));\n }\n\n const isDisabled = p.disabled || p.loading;\n const a11yProps = getButtonA11yProps({\n ariaLabel: p.ariaLabel,\n ariaDescribedBy: p.ariaDescribedBy,\n disabled: isDisabled,\n tabIndex: p.tabIndex,\n });\n\n return createVNode(\n 'button',\n mergeA11yProps(a11yProps, {\n class: getButtonClass(),\n style: getButtonStyle(),\n type: p.nativeType,\n disabled: isDisabled,\n onClick: handleClick,\n onKeydown: handleKeydown,\n }),\n children,\n );\n };\n },\n});\n\nexport type { ButtonProps, ButtonSlots, ButtonSetupProps } from './types';\n","/**\n * @lytjs/ui - Input 组件\n *\n * 基础输入框组件,支持多种类型和状态\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, createTextVNode, type VNode } from '@lytjs/vdom';\nimport { signal } from '@lytjs/reactivity';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { getFormControlA11yProps, getButtonA11yProps, mergeA11yProps } from '@lytjs/common-a11y';\nimport type { InputSetupProps } from './types';\n\nexport const Input = defineComponent({\n name: 'LytInput',\n\n props: {\n modelValue: { type: [String, Number] as unknown as StringConstructor, default: '' },\n type: { type: String, default: 'text' },\n placeholder: { type: String, default: '' },\n disabled: { type: Boolean, default: false },\n readonly: { type: Boolean, default: false },\n clearable: { type: Boolean, default: false },\n showPassword: { type: Boolean, default: false },\n maxlength: { type: Number, default: undefined },\n minlength: { type: Number, default: undefined },\n size: { type: String, default: 'medium' },\n prefixIcon: { type: String, default: '' },\n suffixIcon: { type: String, default: '' },\n class: { type: String, default: '' },\n style: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n ariaInvalid: { type: Boolean, default: false },\n ariaRequired: { type: Boolean, default: false },\n autocomplete: { type: String, default: '' },\n name: { type: String, default: '' },\n id: { type: String, default: '' },\n tabIndex: { type: Number, default: undefined },\n },\n\n setup(props: Record<string, unknown>) {\n const p = props as InputSetupProps;\n const passwordVisible = signal(false);\n const isFocused = signal(false);\n\n const getInputClass = () => {\n const classes = ['lyt-input'];\n if (p.size !== 'medium') classes.push(`lyt-input--${p.size}`);\n if (p.disabled) classes.push('lyt-input--disabled');\n if (isFocused()) classes.push('lyt-input--focused');\n if (p.class) classes.push(p.class);\n return classes.join(' ');\n };\n\n const getInputStyle = () => {\n if (!p.style) return undefined;\n if (isString(p.style)) return p.style;\n if (isObject(p.style)) {\n return Object.entries(p.style)\n .map(([key, value]) => `${key}: ${value}`)\n .join('; ');\n }\n return undefined;\n };\n\n const getInputType = () => {\n if (p.type === 'password' && p.showPassword) {\n return passwordVisible() ? 'text' : 'password';\n }\n return p.type;\n };\n\n const handleInput = (e: Event) => {\n const target = e.target as HTMLInputElement;\n p.onInput?.(target.value);\n };\n\n const handleChange = (e: Event) => {\n const target = e.target as HTMLInputElement;\n p.onChange?.(target.value);\n };\n\n const handleFocus = (e: FocusEvent) => {\n isFocused.set(true);\n p.onFocus?.(e);\n };\n\n const handleBlur = (e: FocusEvent) => {\n isFocused.set(false);\n p.onBlur?.(e);\n };\n\n const handleClear = () => {\n p.onClear?.();\n p.onInput?.('');\n p.onChange?.('');\n };\n\n const togglePasswordVisibility = () => {\n passwordVisible.set(!passwordVisible());\n };\n\n return () => {\n const children: VNode[] = [];\n\n // 前缀图标\n if (p.prefixIcon) {\n children.push(\n createVNode('span', { class: 'lyt-input__prefix' }, [\n createVNode('i', { class: p.prefixIcon }, []),\n ]),\n );\n }\n\n // 输入框\n const a11yProps = getFormControlA11yProps({\n id: p.id,\n ariaLabel: p.ariaLabel,\n ariaDescribedBy: p.ariaDescribedBy,\n ariaInvalid: p.ariaInvalid,\n ariaRequired: p.ariaRequired,\n disabled: p.disabled,\n tabIndex: p.tabIndex,\n });\n const inputProps = mergeA11yProps(a11yProps, {\n class: 'lyt-input__inner',\n style: getInputStyle(),\n type: getInputType(),\n value: p.modelValue,\n placeholder: p.placeholder,\n disabled: p.disabled,\n readonly: p.readonly,\n maxlength: p.maxlength,\n minlength: p.minlength,\n 'aria-readonly': p.readonly,\n autocomplete: p.autocomplete,\n name: p.name,\n onInput: handleInput,\n onChange: handleChange,\n onFocus: handleFocus,\n onBlur: handleBlur,\n });\n children.push(createVNode('input', inputProps, []));\n\n // 后缀图标或清除按钮\n const suffixChildren: VNode[] = [];\n\n // 清除按钮\n if (p.clearable && p.modelValue) {\n const clearBtnProps = getButtonA11yProps({\n ariaLabel: 'Clear input',\n });\n suffixChildren.push(\n createVNode(\n 'span',\n mergeA11yProps(clearBtnProps, {\n class: 'lyt-input__clear',\n onClick: handleClear,\n }),\n [createTextVNode('×')],\n ),\n );\n }\n\n // 密码显示切换按钮\n if (p.type === 'password' && p.showPassword) {\n const toggleBtnProps = getButtonA11yProps({\n ariaLabel: passwordVisible() ? 'Hide password' : 'Show password',\n });\n suffixChildren.push(\n createVNode(\n 'span',\n mergeA11yProps(toggleBtnProps, {\n class: 'lyt-input__password',\n onClick: togglePasswordVisibility,\n }),\n [createTextVNode(passwordVisible() ? '🙈' : '👁️')],\n ),\n );\n }\n\n // 后缀图标\n if (p.suffixIcon) {\n suffixChildren.push(createVNode('i', { class: p.suffixIcon }, []));\n }\n\n if (suffixChildren.length > 0) {\n children.push(createVNode('span', { class: 'lyt-input__suffix' }, suffixChildren));\n }\n\n return createVNode('div', { class: getInputClass() }, children);\n };\n },\n});\n\nexport type { InputProps, InputSlots, InputSetupProps } from './types';\n","/**\n * @lytjs/ui - Dialog 组件(增强版)\n *\n * 对话框组件,增强 Accessibility 支持\n * - 焦点陷阱(Focus Trap)\n * - 焦点管理(打开聚焦,关闭返回)\n * - ESC 键关闭支持\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, createTextVNode, type VNode } from '@lytjs/vdom';\nimport { signal, watch, effect } from '@lytjs/reactivity';\nimport { getDialogA11yProps, getButtonA11yProps, mergeA11yProps } from '@lytjs/common-a11y';\nimport type { DialogSetupProps, DialogSlots } from './types';\n\nconst FOCUSABLE_SELECTORS = [\n 'a[href]',\n 'button:not([disabled])',\n 'input:not([disabled])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])',\n].join(', ');\n\nexport const Dialog = defineComponent({\n name: 'LytDialog',\n\n props: {\n modelValue: { type: Boolean, default: false },\n title: { type: String, default: '' },\n width: { type: [String, Number] as unknown as StringConstructor, default: '50%' },\n showClose: { type: Boolean, default: true },\n closeOnClickModal: { type: Boolean, default: true },\n closeOnPressEscape: { type: Boolean, default: true },\n lockScroll: { type: Boolean, default: true },\n class: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n ariaModal: { type: Boolean, default: true },\n initialFocus: { type: [String, Object] as unknown as StringConstructor, default: undefined },\n returnFocusOnClose: { type: Boolean, default: true },\n onBeforeOpen: { type: Function, default: undefined },\n onBeforeClose: { type: Function, default: undefined },\n onOpen: { type: Function, default: undefined },\n onClose: { type: Function, default: undefined },\n onConfirm: { type: Function, default: undefined },\n onCancel: { type: Function, default: undefined },\n onKeydown: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: DialogSlots }) {\n const p = props as DialogSetupProps;\n const visible = signal(p.modelValue);\n const dialogRef = signal<HTMLElement | null>(null);\n const previousActiveElement = signal<HTMLElement | null>(null);\n\n watch(\n () => p.modelValue,\n (newVal) => {\n visible.set(newVal);\n if (newVal) {\n p.onOpen?.();\n }\n },\n );\n\n const handleClose = async () => {\n if (p.onBeforeClose) {\n const result = await p.onBeforeClose();\n if (result === false) return;\n }\n visible.set(false);\n p.onClose?.();\n\n if (p.returnFocusOnClose) {\n const prevEl = previousActiveElement();\n if (prevEl && prevEl.focus) {\n prevEl.focus();\n }\n }\n };\n\n const handleKeydown = (e: KeyboardEvent) => {\n if (p.closeOnPressEscape && e.key === 'Escape') {\n e.preventDefault();\n handleClose();\n }\n p.onKeydown?.(e);\n };\n\n const getFocusableElements = (container: HTMLElement): HTMLElement[] => {\n return Array.from(container.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTORS)).filter(\n (el) => {\n return el.offsetParent !== null && !el.hasAttribute('aria-hidden');\n },\n );\n };\n\n const handleTabKey = (e: KeyboardEvent) => {\n const dialog = dialogRef();\n if (!dialog) return;\n\n const focusableElements = getFocusableElements(dialog);\n if (focusableElements.length === 0) return;\n\n const firstElement = focusableElements[0]!;\n const lastElement = focusableElements[focusableElements.length - 1]!;\n\n if (e.shiftKey) {\n if (document.activeElement === firstElement) {\n e.preventDefault();\n lastElement.focus();\n }\n } else {\n if (document.activeElement === lastElement) {\n e.preventDefault();\n firstElement.focus();\n }\n }\n };\n\n effect(() => {\n if (visible()) {\n previousActiveElement.set(document.activeElement as HTMLElement);\n\n setTimeout(() => {\n const dialog = dialogRef();\n if (dialog) {\n if (p.initialFocus) {\n const initialEl =\n typeof p.initialFocus === 'string'\n ? dialog.querySelector<HTMLElement>(p.initialFocus)\n : (p.initialFocus as HTMLElement);\n if (initialEl && initialEl.focus) {\n initialEl.focus();\n } else {\n const focusableElements = getFocusableElements(dialog);\n if (focusableElements.length > 0) {\n (focusableElements[0] as HTMLElement).focus();\n }\n }\n } else {\n const focusableElements = getFocusableElements(dialog);\n if (focusableElements.length > 0) {\n (focusableElements[0] as HTMLElement).focus();\n }\n }\n }\n }, 0);\n }\n });\n\n return () => {\n if (!visible()) {\n return createVNode('div', { style: 'display: none;' }, []);\n }\n\n const children: VNode[] = [];\n\n if (slots.header) {\n children.push(\n createVNode(\n 'div',\n {\n class: 'lyt-dialog__header',\n id: p.id ? `${p.id}-header` : undefined,\n },\n slots.header(),\n ),\n );\n } else if (p.title) {\n const headerChildren: VNode[] = [];\n headerChildren.push(\n createVNode(\n 'span',\n {\n class: 'lyt-dialog__title',\n id: p.id ? `${p.id}-title` : undefined,\n },\n [createTextVNode(p.title)],\n ),\n );\n if (p.showClose) {\n const closeBtnProps = getButtonA11yProps({\n ariaLabel: 'Close dialog',\n });\n headerChildren.push(\n createVNode(\n 'button',\n mergeA11yProps(closeBtnProps, {\n class: 'lyt-dialog__close',\n onClick: handleClose,\n }),\n [createTextVNode('×')],\n ),\n );\n }\n children.push(\n createVNode(\n 'div',\n {\n class: 'lyt-dialog__header',\n id: p.id ? `${p.id}-header` : undefined,\n },\n headerChildren,\n ),\n );\n }\n\n if (slots.default) {\n children.push(\n createVNode(\n 'div',\n {\n class: 'lyt-dialog__body',\n id: p.id ? `${p.id}-body` : undefined,\n },\n slots.default(),\n ),\n );\n }\n\n if (slots.footer) {\n children.push(\n createVNode(\n 'div',\n {\n class: 'lyt-dialog__footer',\n id: p.id ? `${p.id}-footer` : undefined,\n },\n slots.footer(),\n ),\n );\n }\n\n const dialogClass = ['lyt-dialog', p.class].filter(Boolean).join(' ');\n\n const dialogStyle = `width: ${typeof p.width === 'number' ? `${p.width}px` : p.width}`;\n\n const dialogA11yProps = getDialogA11yProps({\n id: p.id,\n ariaLabel: p.ariaLabel || p.title,\n ariaDescribedBy: p.ariaDescribedBy || (p.id ? `${p.id}-body` : undefined),\n labelledBy: p.title && p.id ? `${p.id}-title` : undefined,\n modal: p.ariaModal,\n });\n\n return createVNode(\n 'div',\n {\n class: 'lyt-dialog__wrapper',\n onKeydown: (e: KeyboardEvent) => {\n if (e.key === 'Tab') {\n handleTabKey(e);\n }\n handleKeydown(e);\n },\n ref: (el: HTMLElement | null) => {\n dialogRef.set(el);\n },\n },\n [\n createVNode('div', {\n class: 'lyt-dialog__overlay',\n 'aria-hidden': true,\n onClick: p.closeOnClickModal ? handleClose : undefined,\n }),\n createVNode(\n 'div',\n mergeA11yProps(dialogA11yProps, {\n class: dialogClass,\n style: dialogStyle,\n role: 'dialog',\n 'aria-modal': p.ariaModal,\n }),\n children,\n ),\n ],\n );\n };\n },\n});\n\nexport type { DialogProps, DialogSlots } from './types';\n","/**\n * @lytjs/ui - Select 组件(增强版)\n *\n * 选择器组件,支持单选、多选、搜索等功能\n * 增强 Accessibility 支持:\n * - 焦点管理(打开聚焦到下拉框,关闭返回)\n * - 焦点陷阱(Tab 键循环)\n * - 屏幕阅读器支持(Live regions)\n * - aria-activedescendant 支持\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { signal, effect } from '@lytjs/reactivity';\nimport { getComboboxA11yProps, mergeA11yProps } from '@lytjs/common-a11y';\nimport type { SelectOption, SelectSetupProps } from './types';\n\nconst FOCUSABLE_SELECTORS = [\n 'a[href]',\n 'button:not([disabled])',\n 'input:not([disabled])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])',\n].join(', ');\n\nexport const Select = defineComponent({\n name: 'LytSelect',\n\n props: {\n modelValue: { type: [String, Number, Array] as unknown as StringConstructor, default: '' },\n options: { type: Array, default: (): SelectOption[] => [] },\n placeholder: { type: String, default: '请选择' },\n disabled: { type: Boolean, default: false },\n clearable: { type: Boolean, default: false },\n multiple: { type: Boolean, default: false },\n size: { type: String, default: 'medium' },\n class: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n ariaInvalid: { type: Boolean, default: false },\n ariaRequired: { type: Boolean, default: false },\n tabIndex: { type: Number, default: undefined },\n closeOnSelect: { type: Boolean, default: true },\n filterable: { type: Boolean, default: false },\n onChange: { type: Function, default: undefined },\n onClear: { type: Function, default: undefined },\n onKeydown: { type: Function, default: undefined },\n onVisibleChange: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>) {\n const p = props as SelectSetupProps;\n const isOpen = signal(false);\n const selectedValue = signal<Set<string | number>>(new Set());\n const searchValue = signal('');\n const highlightedIndex = signal(-1);\n const triggerRef = signal<HTMLElement | null>(null);\n const dropdownRef = signal<HTMLElement | null>(null);\n const previousActiveElement = signal<HTMLElement | null>(null);\n const listboxId = signal(`lyt-select-listbox-${Math.random().toString(36).substr(2, 9)}`);\n const activeDescendant = signal('');\n\n effect(() => {\n if (Array.isArray(p.modelValue)) {\n selectedValue.set(new Set(p.modelValue));\n } else if (p.modelValue !== '' && p.modelValue !== null && p.modelValue !== undefined) {\n selectedValue.set(new Set([p.modelValue]));\n }\n });\n\n const getFilteredOptions = () => {\n const opts = p.options || [];\n const query = searchValue();\n if (!p.filterable || !query) return opts;\n const lowerQuery = query.toLowerCase();\n return opts.filter((opt) => opt.label.toLowerCase().includes(lowerQuery));\n };\n\n const getEnabledOptions = () => {\n return getFilteredOptions().filter((opt) => !opt.disabled);\n };\n\n const getFocusableElements = (container: HTMLElement): HTMLElement[] => {\n return Array.from(container.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTORS)).filter(\n (el) => {\n return el.offsetParent !== null && !el.hasAttribute('aria-hidden');\n },\n );\n };\n\n const toggleDropdown = () => {\n if (p.disabled) return;\n const newOpen = !isOpen();\n isOpen.set(newOpen);\n\n if (newOpen) {\n const enabledOptions = getEnabledOptions();\n if (enabledOptions.length > 0) {\n const selectedValues = selectedValue();\n let currentValue = 0;\n if (selectedValues.size > 0) {\n const foundIndex = enabledOptions.findIndex((opt) => selectedValues.has(opt.value));\n currentValue = foundIndex >= 0 ? foundIndex : 0;\n }\n highlightedIndex.set(currentValue);\n\n const option = enabledOptions[currentValue];\n if (option) {\n activeDescendant.set(`lyt-select-option-${option.value}`);\n }\n }\n\n previousActiveElement.set(document.activeElement as HTMLElement);\n setTimeout(() => {\n const dropdown = dropdownRef();\n if (dropdown) {\n const focusable = getFocusableElements(dropdown);\n if (focusable.length > 0) {\n focusable[0]?.focus();\n }\n }\n }, 10);\n } else {\n const prevEl = previousActiveElement();\n if (prevEl && prevEl.focus) {\n setTimeout(() => prevEl.focus(), 10);\n }\n }\n p.onVisibleChange?.(newOpen);\n };\n\n const handleSelect = (option: SelectOption) => {\n if (option.disabled) return;\n\n if (p.multiple) {\n const newSelected = new Set(selectedValue());\n if (newSelected.has(option.value)) {\n newSelected.delete(option.value);\n } else {\n newSelected.add(option.value);\n }\n selectedValue.set(newSelected);\n p.onChange?.(Array.from(newSelected));\n } else {\n selectedValue.set(new Set([option.value]));\n if (p.closeOnSelect) {\n isOpen.set(false);\n p.onVisibleChange?.(false);\n }\n p.onChange?.(option.value);\n\n const prevEl = previousActiveElement();\n if (prevEl && prevEl.focus) {\n setTimeout(() => prevEl.focus(), 10);\n }\n }\n };\n\n const handleClear = (event: Event) => {\n event.stopPropagation();\n selectedValue.set(new Set());\n p.onClear?.();\n p.onChange?.(p.multiple ? [] : '');\n };\n\n const handleKeydown = (event: KeyboardEvent) => {\n const enabledOptions = getEnabledOptions();\n const open = isOpen();\n const hIndex = highlightedIndex();\n\n switch (event.key) {\n case 'Enter':\n case ' ':\n if (!p.filterable || !open) {\n event.preventDefault();\n }\n if (open) {\n if (hIndex >= 0 && hIndex < enabledOptions.length) {\n const option = enabledOptions[hIndex];\n if (option) {\n handleSelect(option);\n }\n }\n } else {\n toggleDropdown();\n }\n break;\n case 'ArrowDown':\n event.preventDefault();\n if (!open) {\n toggleDropdown();\n } else {\n if (enabledOptions.length > 0) {\n const nextIndex = Math.min(hIndex + 1, enabledOptions.length - 1);\n highlightedIndex.set(nextIndex);\n const option = enabledOptions[nextIndex];\n if (option) {\n activeDescendant.set(`lyt-select-option-${option.value}`);\n }\n }\n }\n break;\n case 'ArrowUp':\n event.preventDefault();\n if (open) {\n if (enabledOptions.length > 0) {\n const prevIndex = Math.max(hIndex - 1, 0);\n highlightedIndex.set(prevIndex);\n const option = enabledOptions[prevIndex];\n if (option) {\n activeDescendant.set(`lyt-select-option-${option.value}`);\n }\n }\n }\n break;\n case 'Escape':\n if (open) {\n event.preventDefault();\n isOpen.set(false);\n p.onVisibleChange?.(false);\n const prevEl = previousActiveElement();\n if (prevEl && prevEl.focus) {\n prevEl.focus();\n }\n }\n break;\n case 'Home':\n event.preventDefault();\n if (open && enabledOptions.length > 0) {\n highlightedIndex.set(0);\n const option = enabledOptions[0];\n if (option) {\n activeDescendant.set(`lyt-select-option-${option.value}`);\n }\n }\n break;\n case 'End':\n event.preventDefault();\n if (open && enabledOptions.length > 0) {\n const lastIndex = enabledOptions.length - 1;\n highlightedIndex.set(lastIndex);\n const option = enabledOptions[lastIndex];\n if (option) {\n activeDescendant.set(`lyt-select-option-${option.value}`);\n }\n }\n break;\n case 'Tab':\n if (open) {\n isOpen.set(false);\n p.onVisibleChange?.(false);\n }\n break;\n }\n\n p.onKeydown?.(event);\n };\n\n const handleTriggerKeydown = (event: KeyboardEvent) => {\n if (event.key === 'ArrowDown' && !isOpen()) {\n event.preventDefault();\n toggleDropdown();\n } else if (event.key === 'ArrowUp' && !isOpen()) {\n event.preventDefault();\n toggleDropdown();\n }\n };\n\n const handleOptionKeydown = (event: KeyboardEvent, option: SelectOption) => {\n if (event.key === 'Tab') {\n isOpen.set(false);\n p.onVisibleChange?.(false);\n return;\n }\n\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n handleSelect(option);\n return;\n }\n\n handleKeydown(event);\n };\n\n const getSelectedLabel = (): string => {\n const selected = Array.from(selectedValue());\n if (selected.length === 0) return '';\n\n const opts = p.options || [];\n const selectedOptions = opts.filter((opt) => selected.includes(opt.value));\n return selectedOptions.map((opt) => opt.label).join(', ');\n };\n\n return () => {\n const open = isOpen();\n const selectClass = [\n 'lyt-select',\n `lyt-select--${p.size}`,\n p.disabled ? 'lyt-select--disabled' : '',\n open ? 'lyt-select--open' : '',\n p.class,\n ]\n .filter(Boolean)\n .join(' ');\n\n const selectedLabel = getSelectedLabel();\n const displayValue = selectedLabel || p.placeholder;\n const filteredOptions = getFilteredOptions();\n const selected = selectedValue();\n const hIndex = highlightedIndex();\n const listId = listboxId();\n const activeId = activeDescendant();\n\n const dropdownContent: VNode[] = [];\n\n if (filteredOptions.length === 0) {\n dropdownContent.push(\n createVNode(\n 'div',\n {\n class: 'lyt-select__empty',\n role: 'status',\n },\n [createVNode('span', {}, '无匹配选项')],\n ),\n );\n } else {\n filteredOptions.forEach((option: SelectOption, index: number) => {\n const isSelected = selected.has(option.value);\n const isHighlighted = !option.disabled && index === hIndex;\n const optionId = `lyt-select-option-${option.value}`;\n const optionChildren: VNode[] = [];\n if (isSelected) {\n optionChildren.push(\n createVNode('span', { class: 'lyt-select__check' }, [createVNode('span', {}, '✓')]),\n );\n }\n optionChildren.push(createVNode('span', {}, option.label));\n dropdownContent.push(\n createVNode(\n 'div',\n {\n key: String(option.value),\n id: optionId,\n role: 'option',\n 'aria-selected': isSelected,\n 'aria-disabled': option.disabled,\n class: [\n 'lyt-select__option',\n isSelected ? 'lyt-select__option--selected' : '',\n option.disabled ? 'lyt-select__option--disabled' : '',\n isHighlighted ? 'lyt-select__option--highlighted' : '',\n ]\n .filter(Boolean)\n .join(' '),\n onClick: () => handleSelect(option),\n onMouseenter: () => {\n if (!option.disabled) {\n highlightedIndex.set(index);\n activeDescendant.set(optionId);\n }\n },\n onKeydown: (e: KeyboardEvent) => handleOptionKeydown(e, option),\n },\n optionChildren,\n ),\n );\n });\n }\n\n const triggerChildren: VNode[] = [];\n triggerChildren.push(\n createVNode(\n 'span',\n {\n class: ['lyt-select__value', !selectedLabel ? 'lyt-select__value--placeholder' : '']\n .filter(Boolean)\n .join(' '),\n },\n [createVNode('span', {}, displayValue)],\n ),\n );\n if (p.clearable && selected.size > 0) {\n triggerChildren.push(\n createVNode(\n 'span',\n {\n class: 'lyt-select__clear',\n onClick: handleClear,\n role: 'button',\n 'aria-label': '清除选择',\n tabIndex: 0,\n },\n [createVNode('span', {}, '×')],\n ),\n );\n }\n triggerChildren.push(\n createVNode('span', { class: 'lyt-select__arrow' }, [createVNode('span', {}, '▼')]),\n );\n\n const resultChildren: VNode[] = [];\n\n if (p.filterable) {\n resultChildren.push(\n createVNode('input', {\n class: 'lyt-select__search',\n type: 'text',\n placeholder: '搜索...',\n value: searchValue(),\n onInput: (e: Event) => {\n searchValue.set((e.target as HTMLInputElement).value);\n },\n onKeydown: handleTriggerKeydown,\n 'aria-label': '搜索选项',\n 'aria-controls': listId,\n }),\n );\n }\n\n resultChildren.push(\n createVNode(\n 'div',\n {\n ref: (el: HTMLElement) => triggerRef.set(el),\n class: 'lyt-select__trigger',\n onClick: toggleDropdown,\n onKeydown: handleTriggerKeydown,\n tabIndex: p.disabled ? -1 : (p.tabIndex ?? 0),\n role: 'combobox',\n 'aria-haspopup': 'listbox',\n 'aria-expanded': open,\n 'aria-controls': listId,\n 'aria-activedescendant': open ? activeId : undefined,\n },\n triggerChildren,\n ),\n );\n\n if (open) {\n resultChildren.push(\n createVNode(\n 'div',\n {\n ref: (el: HTMLElement) => dropdownRef.set(el),\n id: listId,\n class: 'lyt-select__dropdown',\n role: 'listbox',\n 'aria-multiselectable': p.multiple,\n 'aria-label': p.ariaLabel || '选择选项',\n },\n dropdownContent,\n ),\n );\n\n resultChildren.push(\n createVNode(\n 'div',\n {\n class: 'lyt-select__sro',\n role: 'status',\n 'aria-live': 'polite',\n },\n `已选择 ${selected.size} 个选项`,\n ),\n );\n }\n\n const a11yProps = getComboboxA11yProps({\n id: p.id,\n ariaLabel: p.ariaLabel || '选择器',\n ariaDescribedBy: p.ariaDescribedBy,\n ariaRequired: p.ariaRequired,\n ariaInvalid: p.ariaInvalid,\n disabled: p.disabled,\n tabIndex: p.tabIndex,\n expanded: open,\n controls: listId,\n });\n\n return createVNode(\n 'div',\n mergeA11yProps(a11yProps, {\n class: selectClass,\n onKeydown: handleKeydown,\n }),\n resultChildren,\n );\n };\n },\n});\n\nexport type { SelectProps, SelectSlots, SelectOption } from './types';\n","/**\n * @lytjs/ui - Tabs 组件(增强版)\n *\n * 标签页组件,支持卡片式和边框卡片式,可拖拽,支持标签关闭和新增\n * 增强 Accessibility 支持:\n * - Roving tabindex(只有一个标签页有 tabindex=\"0\")\n * - 焦点管理(激活时聚焦到标签页)\n * - 屏幕阅读器支持(Live regions)\n * - 完整的 ARIA 属性\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, createTextVNode, type VNode } from '@lytjs/vdom';\nimport { signal } from '@lytjs/reactivity';\nimport {\n getTablistA11yProps,\n getTabA11yProps,\n getTabpanelA11yProps,\n getButtonA11yProps,\n mergeA11yProps,\n} from '@lytjs/common-a11y';\nimport type { TabPaneSetupProps, TabsSetupProps, TabPaneSlots, TabsSlots } from './types';\n\nexport type TabsType = '' | 'card' | 'border-card';\n\nexport interface TabPane {\n props: TabPaneSetupProps;\n children: VNode[];\n}\n\nexport interface DragState {\n isDragging: boolean;\n dragIndex: number;\n dropIndex: number;\n}\n\nexport const TabPane = defineComponent({\n name: 'LytTabPane',\n\n props: {\n label: { type: String, required: true },\n name: { type: String, required: true },\n disabled: { type: Boolean, default: false },\n closable: { type: Boolean, default: false },\n },\n\n setup(_props: Record<string, unknown>, { slots }: { slots: TabPaneSlots }) {\n return () => {\n const defaultSlot = slots.default;\n const children: VNode[] = defaultSlot ? defaultSlot() : [];\n return createVNode('div', { class: 'lyt-tab-pane' }, children);\n };\n },\n});\n\nexport const Tabs = defineComponent({\n name: 'LytTabs',\n\n props: {\n modelValue: { type: String, default: '' },\n type: { type: String, default: '' },\n class: { type: String, default: '' },\n closable: { type: Boolean, default: false },\n addable: { type: Boolean, default: false },\n editable: { type: Boolean, default: false },\n draggable: { type: Boolean, default: false },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n onChange: { type: Function, default: undefined },\n onTabClick: { type: Function, default: undefined },\n onTabRemove: { type: Function, default: undefined },\n onTabAdd: { type: Function, default: undefined },\n onTabDragStart: { type: Function, default: undefined },\n onTabDragEnd: { type: Function, default: undefined },\n onKeydown: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: TabsSlots }) {\n const p = props as TabsSetupProps;\n const dragState = signal<DragState>({\n isDragging: false,\n dragIndex: -1,\n dropIndex: -1,\n });\n const activeIndex = signal(0);\n const tabListRef = signal<HTMLElement | null>(null);\n const previousActiveElement = signal<HTMLElement | null>(null);\n const announcement = signal('');\n const tablistId = signal(`lyt-tabs-${Math.random().toString(36).substr(2, 9)}`);\n\n const getPanes = (): TabPane[] => {\n const defaultSlot = slots.default;\n const defaultSlotContent = defaultSlot ? defaultSlot() : [];\n if (!defaultSlotContent || defaultSlotContent.length === 0) return [];\n\n return defaultSlotContent\n .filter(\n (vnode: VNode) =>\n vnode && (vnode as unknown as { type: { name?: string } }).type?.name === 'LytTabPane',\n )\n .map((vnode: VNode) => ({\n props: (vnode as unknown as { props: TabPaneSetupProps }).props,\n children: (vnode as unknown as { children: VNode[] }).children,\n }));\n };\n\n const getEnabledPanes = (panes: TabPane[]) => {\n return panes.filter((pane) => !pane.props.disabled);\n };\n\n const announce = (message: string) => {\n announcement.set(message);\n setTimeout(() => announcement.set(''), 1000);\n };\n\n const handleTabClick = (pane: TabPane, index: number) => {\n if (pane.props.disabled) return;\n\n const oldIndex = activeIndex();\n activeIndex.set(index);\n\n if (oldIndex !== index) {\n const panes = getPanes();\n announce(`已切换到标签页 ${index + 1}:${pane.props.label},共 ${panes.length} 个标签页`);\n }\n\n p.onChange?.(pane.props.name);\n p.onTabClick?.(pane, index);\n\n previousActiveElement.set(document.activeElement as HTMLElement);\n setTimeout(() => {\n const tabList = tabListRef();\n if (tabList) {\n const activeTab = tabList.querySelector(\n '[role=\"tab\"][aria-selected=\"true\"]',\n ) as HTMLElement;\n activeTab?.focus();\n }\n }, 10);\n };\n\n const handleKeydown = (e: KeyboardEvent) => {\n const panes = getPanes();\n const enabledPanes = getEnabledPanes(panes);\n\n if (enabledPanes.length === 0) return;\n\n let newIndex = activeIndex();\n\n switch (e.key) {\n case 'ArrowRight':\n case 'ArrowDown':\n e.preventDefault();\n for (let i = 1; i <= panes.length; i++) {\n const nextIndex = (activeIndex() + i) % panes.length;\n if (panes[nextIndex] && !panes[nextIndex].props.disabled) {\n newIndex = nextIndex;\n break;\n }\n }\n break;\n case 'ArrowLeft':\n case 'ArrowUp':\n e.preventDefault();\n for (let i = 1; i <= panes.length; i++) {\n const prevIndex = (activeIndex() - i + panes.length) % panes.length;\n if (panes[prevIndex] && !panes[prevIndex].props.disabled) {\n newIndex = prevIndex;\n break;\n }\n }\n break;\n case 'Home':\n e.preventDefault();\n newIndex = panes.findIndex(\n (pane) => pane != null && pane.props != null && !pane.props.disabled,\n );\n break;\n case 'End':\n e.preventDefault();\n for (let i = panes.length - 1; i >= 0; i--) {\n const pane = panes[i];\n if (pane && pane.props && !pane.props.disabled) {\n newIndex = i;\n break;\n }\n }\n break;\n case 'Enter':\n case ' ': {\n e.preventDefault();\n const currentPane = panes[activeIndex()];\n if (currentPane && !currentPane.props.disabled) {\n handleTabClick(currentPane, activeIndex());\n }\n break;\n }\n case 'Delete':\n case 'Backspace':\n if (p.closable) {\n const currentPane = panes[activeIndex()];\n if (currentPane && currentPane.props.closable) {\n e.preventDefault();\n handleTabRemove(currentPane, new Event('keydown') as unknown as Event);\n }\n }\n break;\n }\n\n if (newIndex !== activeIndex()) {\n const pane = panes[newIndex];\n if (pane && !pane.props.disabled) {\n activeIndex.set(newIndex);\n announce(`已切换到标签页 ${newIndex + 1}:${pane.props.label}`);\n handleTabClick(pane, newIndex);\n }\n }\n\n p.onKeydown?.(e);\n };\n\n const handleTabRemove = (pane: TabPane, e: Event) => {\n e.stopPropagation();\n const panes = getPanes();\n const index = panes.findIndex((p) => p.props.name === pane.props.name);\n\n if (index > 0) {\n const prevPane = panes[index - 1];\n activeIndex.set(index - 1);\n if (prevPane) {\n announce(`已关闭标签页 ${pane.props.label},现在显示标签页 ${prevPane.props.label}`);\n }\n } else if (panes.length > 1) {\n const nextPane = panes[index + 1];\n activeIndex.set(0);\n if (nextPane) {\n announce(`已关闭标签页 ${pane.props.label},现在显示标签页 ${nextPane.props.label}`);\n }\n } else {\n announce(`已关闭标签页 ${pane.props.label},现在没有标签页`);\n }\n\n p.onTabRemove?.(pane.props.name);\n };\n\n const handleTabAdd = () => {\n announce('正在添加新标签页');\n p.onTabAdd?.();\n };\n\n const handleDragStart = (index: number) => {\n if (!p.draggable) return;\n dragState.set({\n isDragging: true,\n dragIndex: index,\n dropIndex: -1,\n });\n p.onTabDragStart?.(index);\n };\n\n const handleDragOver = (index: number) => {\n if (!dragState().isDragging) return;\n dragState.set({\n ...dragState(),\n dropIndex: index,\n });\n };\n\n const handleDragEnd = () => {\n const { dragIndex, dropIndex } = dragState();\n if (dragIndex !== -1 && dropIndex !== -1 && dragIndex !== dropIndex) {\n announce(`标签页已从位置 ${dragIndex + 1} 移动到位置 ${dropIndex + 1}`);\n p.onTabDragEnd?.(dragIndex, dropIndex);\n }\n dragState.set({\n isDragging: false,\n dragIndex: -1,\n dropIndex: -1,\n });\n };\n\n return () => {\n const panes = getPanes();\n const currentName = p.modelValue || panes[0]?.props.name;\n const currentIndex = panes.findIndex((pane) => pane.props.name === currentName);\n\n if (currentIndex !== -1 && currentIndex !== activeIndex()) {\n activeIndex.set(currentIndex);\n }\n\n const tabsClass = ['lyt-tabs', `lyt-tabs--${p.type || 'normal'}`, p.class]\n .filter(Boolean)\n .join(' ');\n\n const tabListId = tablistId();\n\n const tabItems: VNode[] = panes.map((pane, index) => {\n const isActive = pane.props.name === currentName;\n const isDraggable = p.draggable;\n\n const tabChildren: VNode[] = [\n createVNode('span', { class: 'lyt-tabs__label' }, [\n createTextVNode(String(pane.props.label)),\n ]),\n ];\n\n if (pane.props.closable || p.closable) {\n const closeBtnProps = getButtonA11yProps({\n ariaLabel: `关闭标签页 ${pane.props.label}`,\n disabled: pane.props.disabled,\n });\n tabChildren.push(\n createVNode(\n 'span',\n mergeA11yProps(closeBtnProps, {\n class: 'lyt-tabs__close',\n onClick: (e: Event) => handleTabRemove(pane, e),\n }),\n [createTextVNode('×')],\n ),\n );\n }\n\n const tabId = `${p.id || tabListId}-tab-${pane.props.name}`;\n const panelId = `${p.id || tabListId}-panel-${pane.props.name}`;\n\n const tabA11yProps = getTabA11yProps({\n id: tabId,\n selected: isActive,\n disabled: pane.props.disabled,\n controls: panelId,\n });\n\n return createVNode(\n 'div',\n mergeA11yProps(tabA11yProps, {\n key: String(pane.props.name),\n class: [\n 'lyt-tabs__item',\n isActive ? 'lyt-tabs__item--active' : '',\n pane.props.disabled ? 'lyt-tabs__item--disabled' : '',\n dragState().dropIndex === index ? 'lyt-tabs__item--drop' : '',\n ]\n .filter(Boolean)\n .join(' '),\n draggable: isDraggable,\n onClick: () => handleTabClick(pane, index),\n onKeydown: handleKeydown,\n onDragStart: () => handleDragStart(index),\n onDragOver: (e: DragEvent) => {\n e.preventDefault();\n handleDragOver(index);\n },\n onDragEnd: handleDragEnd,\n }),\n tabChildren,\n );\n });\n\n if (p.addable || p.editable) {\n const addBtnProps = getButtonA11yProps({\n ariaLabel: '添加新标签页',\n });\n tabItems.push(\n createVNode(\n 'div',\n mergeA11yProps(addBtnProps, {\n class: 'lyt-tabs__add-btn',\n onClick: handleTabAdd,\n }),\n [createTextVNode('+')],\n ),\n );\n }\n\n const content = panes.find((pane) => pane.props.name === currentName);\n const panelId = `${p.id || tabListId}-panel-${content?.props.name || 'default'}`;\n\n const tabpanelProps = content\n ? getTabpanelA11yProps({\n id: panelId,\n labelledBy: `${p.id || tabListId}-tab-${content.props.name}`,\n })\n : {};\n\n const contentPane = content\n ? createVNode(\n 'div',\n mergeA11yProps(tabpanelProps, {\n class: 'lyt-tabs__pane',\n id: panelId,\n role: 'tabpanel',\n }),\n content.children,\n )\n : createVNode('div', { style: 'display: none;', id: panelId }, []);\n\n const tablistA11yProps = getTablistA11yProps({\n id: p.id || tabListId,\n ariaLabel: p.ariaLabel || '标签页导航',\n ariaDescribedBy: p.ariaDescribedBy,\n });\n\n return createVNode(\n 'div',\n mergeA11yProps(tablistA11yProps, {\n class: tabsClass,\n onKeydown: handleKeydown,\n }),\n [\n createVNode(\n 'div',\n {\n ref: (el: HTMLElement) => tabListRef.set(el),\n class: 'lyt-tabs__header',\n role: 'tablist',\n 'aria-label': p.ariaLabel || '标签页',\n },\n [createVNode('div', { class: 'lyt-tabs__nav' }, tabItems)],\n ),\n createVNode('div', { class: 'lyt-tabs__content' }, [contentPane]),\n createVNode(\n 'div',\n {\n class: 'lyt-tabs__sro',\n role: 'status',\n 'aria-live': 'polite',\n 'aria-atomic': 'true',\n },\n announcement(),\n ),\n ],\n );\n };\n },\n});\n\nexport type { TabsProps, TabsSlots, TabPaneProps, TabPaneSlots } from './types';\n","/**\n * @lytjs/ui - Table 组件\n *\n * 表格组件,支持排序、斑马纹、边框、固定列、选择等功能\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { signal } from '@lytjs/reactivity';\nimport type {\n TableData,\n TableRowData,\n TableColumn,\n TableSortOrder,\n TableSetupProps,\n} from './types';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\nexport type { TableSlots } from './types';\n\nexport const Table = defineComponent({\n name: 'LytTable',\n\n props: {\n data: { type: Array, default: (): TableData => [] },\n columns: { type: Array, default: (): TableColumn[] => [] },\n stripe: { type: Boolean, default: false },\n border: { type: Boolean, default: false },\n rowKey: { type: String, default: 'id' },\n showSelection: { type: Boolean, default: false },\n highlightCurrentRow: { type: Boolean, default: false },\n class: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n onRowClick: { type: Function, default: undefined },\n onSortChange: { type: Function, default: undefined },\n onSelectionChange: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>) {\n const p = props as TableSetupProps;\n const sortColumn = signal('');\n const sortOrder = signal<TableSortOrder>('');\n const selectedRows = signal<Set<TableRowData>>(new Set());\n const currentRow = signal<TableRowData | null>(null);\n const allSelected = signal(false);\n\n const handleSort = (column: TableColumn) => {\n if (!column.sortable || !column.prop) return;\n\n let newOrder: TableSortOrder;\n if (sortColumn() === column.prop) {\n if (sortOrder() === 'ascending') {\n newOrder = 'descending';\n } else if (sortOrder() === 'descending') {\n newOrder = '';\n } else {\n newOrder = 'ascending';\n }\n } else {\n newOrder = 'ascending';\n }\n\n sortColumn.set(column.prop);\n sortOrder.set(newOrder);\n p.onSortChange?.(column, column.prop, newOrder);\n };\n\n const handleRowSelect = (row: TableRowData, checked: boolean) => {\n const newSelected = new Set(selectedRows());\n if (checked) {\n newSelected.add(row);\n } else {\n newSelected.delete(row);\n }\n selectedRows.set(newSelected);\n\n const data = p.data || [];\n allSelected.set(newSelected.size === data.length);\n\n p.onSelectionChange?.(Array.from(newSelected));\n };\n\n const handleSelectAll = (checked: boolean) => {\n allSelected.set(checked);\n const data = p.data || [];\n\n if (checked) {\n selectedRows.set(new Set(data));\n p.onSelectionChange?.([...data]);\n } else {\n selectedRows.set(new Set());\n p.onSelectionChange?.([]);\n }\n };\n\n const handleRowClick = (row: TableRowData, index: number) => {\n if (p.highlightCurrentRow) {\n currentRow.set(row);\n }\n p.onRowClick?.(row, index);\n };\n\n const getCellValue = (row: TableRowData, column: TableColumn): unknown => {\n if (!column.prop) return '';\n return row[column.prop];\n };\n\n const getRowKey = (row: TableRowData, index: number): string => {\n if (p.rowKey && row[p.rowKey]) {\n return String(row[p.rowKey]);\n }\n return String(index);\n };\n\n return () => {\n const data = p.data || [];\n const columns = p.columns || [];\n\n const tableClass = ['lyt-table'];\n if (p.stripe) tableClass.push('lyt-table--stripe');\n if (p.border) tableClass.push('lyt-table--border');\n if (p.class) tableClass.push(p.class);\n\n const children: VNode[] = [];\n\n const thead = createVNode('thead', { class: 'lyt-table__header' }, [\n createVNode('tr', {}, [\n ...(p.showSelection\n ? [\n createVNode('th', { class: 'lyt-table__cell--selection' }, [\n createVNode(\n 'input',\n mergeA11yProps(getInputControlA11yProps({ ariaLabel: '全选' }), {\n type: 'checkbox',\n checked: allSelected(),\n onChange: (e: Event) =>\n handleSelectAll((e.target as HTMLInputElement).checked),\n }),\n ),\n ]),\n ]\n : []),\n ...columns.map((column: TableColumn) =>\n createVNode(\n 'th',\n {\n class: [\n 'lyt-table__cell',\n column.sortable ? 'lyt-table__cell--sortable' : '',\n column.align ? `lyt-table__cell--${column.align}` : '',\n ]\n .filter(Boolean)\n .join(' '),\n onClick: () => handleSort(column),\n },\n [createVNode('span', {}, String(column.label))],\n ),\n ),\n ]),\n ]);\n\n const tbody = createVNode(\n 'tbody',\n { class: 'lyt-table__body' },\n data.length === 0\n ? [\n createVNode('tr', { class: 'lyt-table__empty-row' }, [\n createVNode(\n 'td',\n {\n colspan: columns.length + (p.showSelection ? 1 : 0),\n class: 'lyt-table__empty-cell',\n },\n [createVNode('span', {}, '暂无数据')],\n ),\n ]),\n ]\n : data.map((row: TableRowData, index: number) => {\n const rowChildren: VNode[] = [];\n\n if (p.showSelection) {\n rowChildren.push(\n createVNode('td', { class: 'lyt-table__cell--selection' }, [\n createVNode(\n 'input',\n mergeA11yProps(getInputControlA11yProps({ ariaLabel: '选择行' }), {\n type: 'checkbox',\n checked: selectedRows().has(row),\n onChange: (e: Event) =>\n handleRowSelect(row, (e.target as HTMLInputElement).checked),\n }),\n ),\n ]),\n );\n }\n\n columns.forEach((column: TableColumn) => {\n const value = getCellValue(row, column);\n const displayValue = column.formatter\n ? column.formatter(row, column, value)\n : String(value ?? '');\n\n rowChildren.push(\n createVNode(\n 'td',\n {\n class: [\n 'lyt-table__cell',\n column.align ? `lyt-table__cell--${column.align}` : '',\n ]\n .filter(Boolean)\n .join(' '),\n },\n [createVNode('span', {}, displayValue)],\n ),\n );\n });\n\n return createVNode(\n 'tr',\n {\n key: getRowKey(row, index),\n class: ['lyt-table__row', currentRow() === row ? 'lyt-table__row--active' : '']\n .filter(Boolean)\n .join(' '),\n onClick: () => handleRowClick(row, index),\n },\n rowChildren,\n );\n }),\n );\n\n children.push(thead, tbody);\n\n return createVNode(\n 'table',\n mergeA11yProps(\n {\n id: p.id,\n 'aria-label': p.ariaLabel,\n 'aria-describedby': p.ariaDescribedBy,\n role: 'grid',\n },\n { class: tableClass.join(' ') },\n ),\n children,\n );\n };\n },\n});\n","/**\n * @lytjs/ui - Form 组件\n *\n * 表单组件,支持表单验证和布局\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { signal } from '@lytjs/reactivity';\nimport type {\n FormRules,\n FormSetupProps,\n FormSlots,\n FormItemSetupProps,\n FormItemSlots,\n} from './types';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\nexport interface FormLocale {\n required: string;\n pattern: string;\n min: string;\n max: string;\n type: string;\n validator: string;\n default: string;\n}\n\nconst DEFAULT_LOCALE: FormLocale = {\n required: '此字段必填',\n pattern: '格式不正确',\n min: '长度不能少于 {min} 个字符',\n max: '长度不能超过 {max} 个字符',\n type: '类型不正确',\n validator: '验证失败',\n default: '验证失败',\n};\n\nexport function createFormLocale(locale: Partial<FormLocale>): FormLocale {\n return { ...DEFAULT_LOCALE, ...locale };\n}\n\nfunction formatMessage(template: string, params: Record<string, string | number>): string {\n let message = template;\n for (const [key, value] of Object.entries(params)) {\n message = message.replace(new RegExp(`\\\\{${key}\\\\}`, 'g'), String(value));\n }\n return message;\n}\n\nexport const Form = defineComponent({\n name: 'LytForm',\n\n props: {\n model: { type: Object, default: (): Record<string, unknown> => ({}) },\n rules: { type: Object, default: (): FormRules => ({}) },\n labelWidth: { type: String, default: '100px' },\n labelPosition: { type: String, default: 'right' },\n locale: { type: Object, default: (): FormLocale => DEFAULT_LOCALE },\n class: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n onSubmit: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: FormSlots }) {\n const p = props as FormSetupProps;\n const errors = signal<Record<string, string>>({});\n const validating = signal<Record<string, boolean>>({});\n const locale = (p.locale || DEFAULT_LOCALE) as FormLocale;\n\n const validateField = async (field: string): Promise<boolean> => {\n const rules = p.rules[field];\n if (!rules || rules.length === 0) return true;\n\n const value = p.model[field];\n const fieldErrors: string[] = [];\n\n for (const rule of rules) {\n if (rule.required && (!value || value === '')) {\n const message = rule.message || formatMessage(locale.required, { field });\n fieldErrors.push(message);\n continue;\n }\n\n if (value !== undefined && value !== null && value !== '') {\n if (rule.type) {\n const typeValid = validateType(value, rule.type);\n if (!typeValid) {\n fieldErrors.push(\n rule.message || formatMessage(locale.type, { type: rule.type, field }),\n );\n continue;\n }\n }\n\n if (rule.pattern && !rule.pattern.test(String(value))) {\n fieldErrors.push(rule.message || formatMessage(locale.pattern, { field }));\n continue;\n }\n\n if (typeof value === 'string') {\n if (rule.min !== undefined && value.length < rule.min) {\n fieldErrors.push(rule.message || formatMessage(locale.min, { min: rule.min, field }));\n continue;\n }\n if (rule.max !== undefined && value.length > rule.max) {\n fieldErrors.push(rule.message || formatMessage(locale.max, { max: rule.max, field }));\n continue;\n }\n }\n }\n\n if (rule.validator) {\n validating.set({ ...validating(), [field]: true });\n\n try {\n const result = await Promise.resolve(rule.validator(value, p.model));\n\n if (result !== true) {\n const errorMessage =\n typeof result === 'string' ? result : formatMessage(locale.validator, { field });\n fieldErrors.push(errorMessage);\n }\n } catch (_error) {\n fieldErrors.push(rule.message || formatMessage(locale.validator, { field }));\n } finally {\n validating.set({ ...validating(), [field]: false });\n }\n }\n }\n\n if (fieldErrors.length > 0) {\n errors.set({ ...errors(), [field]: fieldErrors[0]! });\n return false;\n }\n\n const newErrors = { ...errors() };\n delete newErrors[field];\n errors.set(newErrors);\n return true;\n };\n\n const validate = async (): Promise<boolean> => {\n let isValid = true;\n const fieldNames = Object.keys(p.rules);\n\n for (const field of fieldNames) {\n const fieldValid = await validateField(field);\n if (!fieldValid) {\n isValid = false;\n }\n }\n\n return isValid;\n };\n\n const validateAll = async (): Promise<boolean> => {\n const fieldNames = Object.keys(p.rules);\n const results = await Promise.all(fieldNames.map((field) => validateField(field)));\n return results.every((result) => result);\n };\n\n const clearValidate = (field?: string) => {\n if (field) {\n const newErrors = { ...errors() };\n delete newErrors[field];\n errors.set(newErrors);\n } else {\n errors.set({});\n }\n };\n\n void validateAll;\n void clearValidate;\n\n const handleSubmit = async (event: Event) => {\n event.preventDefault();\n const isValid = await validate();\n if (isValid) {\n p.onSubmit?.(p.model);\n }\n };\n\n return () => {\n const formClass = ['lyt-form', `lyt-form--label-${p.labelPosition}`, p.class]\n .filter(Boolean)\n .join(' ');\n\n const children: VNode[] = slots.default ? slots.default() : [];\n\n return createVNode(\n 'form',\n {\n id: p.id,\n 'aria-label': p.ariaLabel,\n 'aria-describedby': p.ariaDescribedBy,\n class: formClass,\n onSubmit: handleSubmit,\n },\n children,\n );\n };\n },\n});\n\nfunction validateType(value: unknown, type: string): boolean {\n switch (type) {\n case 'string':\n return typeof value === 'string';\n case 'number':\n return typeof value === 'number' && !isNaN(value);\n case 'boolean':\n return typeof value === 'boolean';\n case 'array':\n return Array.isArray(value);\n case 'date':\n return value instanceof Date || !isNaN(Date.parse(String(value)));\n case 'email': {\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n return typeof value === 'string' && emailRegex.test(value);\n }\n case 'url':\n try {\n new URL(String(value));\n return true;\n } catch {\n return false;\n }\n default:\n return true;\n }\n}\n\nexport const FormItem = defineComponent({\n name: 'LytFormItem',\n\n props: {\n label: { type: String, default: '' },\n prop: { type: String, default: '' },\n required: { type: Boolean, default: false },\n rules: { type: [Object, Array] as unknown as StringConstructor, default: () => [] },\n error: { type: String, default: '' },\n validateStatus: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: FormItemSlots }) {\n const p = props as FormItemSetupProps;\n\n return () => {\n const itemClass = [\n 'lyt-form-item',\n p.error ? 'lyt-form-item--error' : '',\n p.validateStatus ? `lyt-form-item--${p.validateStatus}` : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n const labelStyle = p.label ? { width: '100px' } : {};\n\n const children: VNode[] = [];\n\n if (p.label) {\n children.push(\n createVNode(\n 'label',\n {\n class: 'lyt-form-item__label',\n style: labelStyle,\n },\n [createVNode('span', {}, String(p.label))],\n ),\n );\n }\n\n if (slots.default) {\n const slotContent = slots.default();\n children.push(createVNode('div', { class: 'lyt-form-item__content' }, slotContent));\n }\n\n if (p.error) {\n children.push(\n createVNode(\n 'div',\n {\n class: 'lyt-form-item__error',\n role: 'alert',\n 'aria-live': 'polite',\n },\n [createVNode('span', {}, String(p.error))],\n ),\n );\n }\n\n return createVNode(\n 'div',\n mergeA11yProps(\n {\n id: p.id,\n 'aria-label': p.ariaLabel,\n 'aria-describedby': p.ariaDescribedBy,\n },\n { class: itemClass },\n ),\n children,\n );\n };\n },\n});\n\nexport type { FormSlots, FormItemSlots } from './types';\nexport type {\n FormProps,\n FormRules,\n FormSetupProps,\n FormItemProps,\n FormItemSetupProps,\n FormRule,\n FormValidateStatus,\n} from './types';\n","/**\n * @lytjs/ui - Transition 组件\n *\n * 过渡动画组件,支持进入/离开动画\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\n\nexport interface TransitionSetupProps {\n name: string;\n appear: boolean;\n mode: string;\n duration: number;\n class: string;\n}\n\nexport interface TransitionSlots {\n default?: () => VNode[];\n}\n\nexport const Transition = defineComponent({\n name: 'LytTransition',\n\n props: {\n name: { type: String, default: 'fade' },\n appear: { type: Boolean, default: false },\n mode: { type: String, default: '' },\n duration: { type: Number, default: 300 },\n class: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: TransitionSlots }) {\n const p = props as unknown as TransitionSetupProps;\n\n const getTransitionClass = () => {\n const classes = [`${p.name}-transition`];\n if (p.class) {\n classes.push(p.class);\n }\n return classes.join(' ');\n };\n\n const getTransitionStyle = () => {\n return `transition-duration: ${p.duration}ms;`;\n };\n\n return () => {\n return createVNode(\n 'div',\n {\n class: getTransitionClass(),\n style: getTransitionStyle(),\n },\n slots.default?.(),\n );\n };\n },\n});\n\nexport interface TransitionGroupSetupProps {\n name: string;\n tag: string;\n duration: number;\n class: string;\n}\n\nexport interface TransitionGroupSlots {\n default?: () => VNode[];\n}\n\nexport const TransitionGroup = defineComponent({\n name: 'LytTransitionGroup',\n\n props: {\n name: { type: String, default: 'list' },\n tag: { type: String, default: 'div' },\n duration: { type: Number, default: 300 },\n class: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: TransitionGroupSlots }) {\n const p = props as unknown as TransitionGroupSetupProps;\n\n return () => {\n const children = slots.default?.() || [];\n\n const wrappedChildren: VNode[] = children.map((child: VNode, index: number) =>\n createVNode(\n 'div',\n {\n key: (child as unknown as { key?: string | number }).key || index,\n class: `${p.name}-item`,\n style: `transition: all ${p.duration}ms ease;`,\n },\n [child],\n ),\n );\n\n return createVNode(\n p.tag as string,\n {\n class: `lyt-transition-group ${p.class}`,\n },\n wrappedChildren,\n );\n };\n },\n});\n\nexport default { Transition, TransitionGroup };\n","/**\n * @lytjs/ui - DatePicker 组件\n *\n * 日期选择器组件,支持范围选择、时间选择、禁用日期、快捷选项,自研日期处理逻辑(零依赖)\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { signal } from '@lytjs/reactivity';\nimport type { DatePickerShortcut, DatePickerSetupProps, DatePickerSlots } from './types';\n\nfunction getDaysInMonth(year: number, month: number): number {\n return new Date(year, month + 1, 0).getDate();\n}\n\nfunction getFirstDayOfMonth(year: number, month: number): number {\n return new Date(year, month, 1).getDay();\n}\n\nfunction formatDate(date: Date, format: string = 'YYYY-MM-DD'): string {\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n const hour = String(date.getHours()).padStart(2, '0');\n const minute = String(date.getMinutes()).padStart(2, '0');\n const second = String(date.getSeconds()).padStart(2, '0');\n\n return format\n .replace('YYYY', String(year))\n .replace('MM', month)\n .replace('DD', day)\n .replace('HH', hour)\n .replace('mm', minute)\n .replace('ss', second);\n}\n\nfunction isSameDay(date1: Date, date2: Date): boolean {\n return (\n date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate()\n );\n}\n\nexport const DatePicker = defineComponent({\n name: 'LytDatePicker',\n\n props: {\n modelValue: { type: [String, Date, Array] as unknown as StringConstructor, default: null },\n placeholder: { type: String, default: '选择日期' },\n disabled: { type: Boolean, default: false },\n clearable: { type: Boolean, default: true },\n format: { type: String, default: 'YYYY-MM-DD' },\n type: { type: String, default: 'date' },\n disabledDate: { type: Function, default: undefined },\n shortcuts: { type: Array, default: (): DatePickerShortcut[] => [] },\n class: { type: String, default: '' },\n onChange: { type: Function, default: undefined },\n onOpen: { type: Function, default: undefined },\n onClose: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: DatePickerSlots }) {\n const p = props as DatePickerSetupProps;\n const isOpen = signal(false);\n const currentYear = signal(new Date().getFullYear());\n const currentMonth = signal(new Date().getMonth());\n const selectDate = signal<Date | null>(null);\n const rangeStart = signal<Date | null>(null);\n const rangeEnd = signal<Date | null>(null);\n const showTime = signal(false);\n const currentHours = signal(0);\n const currentMinutes = signal(0);\n const currentSeconds = signal(0);\n\n const weekDays = ['日', '一', '二', '三', '四', '五', '六'];\n\n const getCalendarDays = (): (Date | null)[] => {\n const year = currentYear();\n const month = currentMonth();\n const firstDay = getFirstDayOfMonth(year, month);\n const daysInMonth = getDaysInMonth(year, month);\n\n const days: (Date | null)[] = [];\n for (let i = 0; i < firstDay; i++) {\n days.push(null);\n }\n for (let i = 1; i <= daysInMonth; i++) {\n days.push(new Date(year, month, i));\n }\n return days;\n };\n\n const getMonthLabel = (): string => {\n return `${currentYear()}年${String(currentMonth() + 1).padStart(2, '0')}月`;\n };\n\n const prevMonth = () => {\n if (currentMonth() === 0) {\n currentMonth.set(11);\n currentYear.set(currentYear() - 1);\n } else {\n currentMonth.set(currentMonth() - 1);\n }\n };\n\n const nextMonth = () => {\n if (currentMonth() === 11) {\n currentMonth.set(0);\n currentYear.set(currentYear() + 1);\n } else {\n currentMonth.set(currentMonth() + 1);\n }\n };\n\n const handleSelectDate = (date: Date) => {\n if (p.disabledDate?.(date)) return;\n\n selectDate.set(date);\n currentHours.set(date.getHours());\n currentMinutes.set(date.getMinutes());\n currentSeconds.set(date.getSeconds());\n\n const dateType = p.type;\n if (dateType === 'date') {\n const result = formatDate(date, p.format);\n p.onChange?.(result);\n isOpen.set(false);\n } else if (dateType === 'datetime') {\n showTime.set(true);\n } else {\n if (!rangeStart()) {\n rangeStart.set(date);\n } else if (!rangeEnd()) {\n rangeEnd.set(date);\n const start = rangeStart()!;\n const end = rangeEnd()!;\n const result = [formatDate(start, p.format), formatDate(end, p.format)];\n p.onChange?.(result);\n } else {\n rangeStart.set(date);\n rangeEnd.set(null);\n }\n }\n };\n\n const handleTimeChange = () => {\n const date = selectDate();\n if (!date) return;\n\n const newDate = new Date(date);\n newDate.setHours(currentHours());\n newDate.setMinutes(currentMinutes());\n newDate.setSeconds(currentSeconds());\n\n const result = formatDate(newDate, p.format);\n p.onChange?.(result);\n isOpen.set(false);\n };\n\n const handleClear = (e: Event) => {\n e.stopPropagation();\n selectDate.set(null);\n rangeStart.set(null);\n rangeEnd.set(null);\n p.onChange?.(null);\n };\n\n const handleShortcutClick = (shortcut: DatePickerShortcut) => {\n if (shortcut.onClick) {\n shortcut.onClick();\n } else if (shortcut.value instanceof Date) {\n handleSelectDate(shortcut.value);\n } else if (Array.isArray(shortcut.value)) {\n rangeStart.set(shortcut.value[0] ?? null);\n rangeEnd.set(shortcut.value[1] ?? null);\n }\n };\n\n const toggleDropdown = () => {\n if (p.disabled) return;\n isOpen.set(!isOpen());\n if (isOpen()) {\n p.onOpen?.();\n } else {\n p.onClose?.();\n }\n };\n\n const isDateSelected = (date: Date): boolean => {\n if (selectDate() && isSameDay(date, selectDate()!)) return true;\n if (rangeStart() && isSameDay(date, rangeStart()!)) return true;\n if (rangeEnd() && isSameDay(date, rangeEnd()!)) return true;\n return false;\n };\n\n const isInRange = (date: Date): boolean => {\n if (!rangeStart() || !rangeEnd()) return false;\n const start = rangeStart()!;\n const end = rangeEnd()!;\n return date > start && date < end;\n };\n\n const isToday = (date: Date): boolean => {\n return isSameDay(date, new Date());\n };\n\n const isDisabled = (date: Date): boolean => {\n return p.disabledDate?.(date) ?? false;\n };\n\n const getDisplayValue = (): string => {\n if (p.type === 'daterange' || p.type === 'datetimerange') {\n if (rangeStart() && rangeEnd()) {\n return `${formatDate(rangeStart()!, p.format)} - ${formatDate(rangeEnd()!, p.format)}`;\n }\n return '';\n }\n return selectDate() ? formatDate(selectDate()!, p.format) : '';\n };\n\n return () => {\n const pickerClass = [\n 'lyt-date-picker',\n isOpen() ? 'lyt-date-picker--open' : '',\n p.disabled ? 'lyt-date-picker--disabled' : '',\n p.class,\n ]\n .filter(Boolean)\n .join(' ');\n\n const calendarDays = getCalendarDays();\n const displayValue = getDisplayValue();\n\n const calendarContent: VNode[] = [];\n\n const headerChildren: VNode[] = [\n createVNode(\n 'button',\n {\n class: 'lyt-date-picker__nav-btn',\n onClick: prevMonth,\n },\n [createVNode('span', {}, '◀')],\n ),\n createVNode('span', { class: 'lyt-date-picker__month-label' }, [\n createVNode('span', {}, getMonthLabel()),\n ]),\n createVNode(\n 'button',\n {\n class: 'lyt-date-picker__nav-btn',\n onClick: nextMonth,\n },\n [createVNode('span', {}, '▶')],\n ),\n ];\n calendarContent.push(\n createVNode('div', { class: 'lyt-date-picker__header' }, headerChildren),\n );\n\n const weekHeaderChildren: VNode[] = weekDays.map((day) =>\n createVNode('span', { class: 'lyt-date-picker__weekday' }, [createVNode('span', {}, day)]),\n );\n calendarContent.push(\n createVNode('div', { class: 'lyt-date-picker__week-header' }, weekHeaderChildren),\n );\n\n const dayButtons: VNode[] = calendarDays.map((date, index) => {\n if (!date) {\n return createVNode(\n 'span',\n { key: `empty-${index}`, class: 'lyt-date-picker__day lyt-date-picker__day--empty' },\n [createVNode('span', {}, ' ')],\n );\n }\n\n const selected = isDateSelected(date);\n const inRange = isInRange(date);\n const today = isToday(date);\n const disabled = isDisabled(date);\n\n return createVNode(\n 'button',\n {\n key: date.toISOString(),\n class: [\n 'lyt-date-picker__day',\n selected ? 'lyt-date-picker__day--selected' : '',\n inRange ? 'lyt-date-picker__day--in-range' : '',\n today ? 'lyt-date-picker__day--today' : '',\n disabled ? 'lyt-date-picker__day--disabled' : '',\n ]\n .filter(Boolean)\n .join(' '),\n disabled: disabled,\n onClick: () => handleSelectDate(date),\n },\n [createVNode('span', {}, String(date.getDate()))],\n );\n });\n calendarContent.push(createVNode('div', { class: 'lyt-date-picker__days' }, dayButtons));\n\n if (showTime() || p.type === 'datetime') {\n showTime.set(true);\n const timeControls: VNode[] = [\n createVNode('input', {\n type: 'number',\n class: 'lyt-date-picker__time-input',\n value: currentHours(),\n min: 0,\n max: 23,\n onInput: (e: Event) => currentHours.set(Number((e.target as HTMLInputElement).value)),\n }),\n createVNode('span', {}, [createVNode('span', {}, ':')]),\n createVNode('input', {\n type: 'number',\n class: 'lyt-date-picker__time-input',\n value: currentMinutes(),\n min: 0,\n max: 59,\n onInput: (e: Event) => currentMinutes.set(Number((e.target as HTMLInputElement).value)),\n }),\n createVNode('span', {}, [createVNode('span', {}, ':')]),\n createVNode('input', {\n type: 'number',\n class: 'lyt-date-picker__time-input',\n value: currentSeconds(),\n min: 0,\n max: 59,\n onInput: (e: Event) => currentSeconds.set(Number((e.target as HTMLInputElement).value)),\n }),\n ];\n calendarContent.push(\n createVNode('div', { class: 'lyt-date-picker__time' }, [\n ...timeControls,\n createVNode(\n 'button',\n {\n class: 'lyt-date-picker__confirm-btn',\n onClick: handleTimeChange,\n },\n [createVNode('span', {}, '确定')],\n ),\n ]),\n );\n }\n\n const footerContent: VNode[] = [];\n\n if (p.shortcuts.length > 0) {\n const shortcuts: VNode[] = p.shortcuts.map((shortcut: DatePickerShortcut) =>\n createVNode(\n 'button',\n {\n class: 'lyt-date-picker__shortcut',\n onClick: () => handleShortcutClick(shortcut),\n },\n [createVNode('span', {}, String(shortcut.text))],\n ),\n );\n footerContent.push(createVNode('div', { class: 'lyt-date-picker__shortcuts' }, shortcuts));\n }\n\n if (slots.footer) {\n footerContent.push(...slots.footer());\n }\n\n if (footerContent.length > 0) {\n calendarContent.push(\n createVNode('div', { class: 'lyt-date-picker__footer' }, footerContent),\n );\n }\n\n const triggerChildren: VNode[] = [\n createVNode(\n 'span',\n {\n class: [\n 'lyt-date-picker__input',\n !displayValue ? 'lyt-date-picker__input--placeholder' : '',\n ]\n .filter(Boolean)\n .join(' '),\n },\n [createVNode('span', {}, displayValue || String(p.placeholder))],\n ),\n ];\n\n if (p.clearable && displayValue) {\n triggerChildren.push(\n createVNode(\n 'span',\n {\n class: 'lyt-date-picker__clear',\n onClick: handleClear,\n },\n [createVNode('span', {}, '×')],\n ),\n );\n }\n\n const dropdownChildren: VNode[] = [];\n if (isOpen()) {\n dropdownChildren.push(\n createVNode('div', { class: 'lyt-date-picker__dropdown' }, [\n createVNode('div', { class: 'lyt-date-picker__calendar' }, calendarContent),\n ]),\n );\n }\n\n return createVNode('div', { class: pickerClass }, [\n createVNode(\n 'div',\n { class: 'lyt-date-picker__trigger', onClick: toggleDropdown },\n triggerChildren,\n ),\n ...dropdownChildren,\n ]);\n };\n },\n});\n\nexport type { DatePickerProps, DatePickerSlots, DatePickerShortcut, DatePickerType } from './types';\n","/**\n * @lytjs/ui - Tree 组件\n *\n * 树形控件组件,支持勾选、拖拽、连接线等高级功能\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { signal } from '@lytjs/reactivity';\nimport { getButtonA11yProps, getInputControlA11yProps, mergeA11yProps } from '@lytjs/common-a11y';\nimport type { TreeNode, TreeSetupProps } from './types';\n\nexport interface FlattenNode extends TreeNode {\n parent: FlattenNode | null;\n level: number;\n isLeaf: boolean;\n isExpanded: boolean;\n isChecked: boolean;\n isIndeterminate: boolean;\n isSelected: boolean;\n}\n\nexport const Tree = defineComponent({\n name: 'LytTree',\n\n props: {\n data: { type: Array, default: (): TreeNode[] => [] },\n showLine: { type: Boolean, default: false },\n showCheckbox: { type: Boolean, default: false },\n checkable: { type: Boolean, default: false },\n draggable: { type: Boolean, default: false },\n defaultExpandAll: { type: Boolean, default: false },\n defaultExpandedKeys: { type: Array, default: (): (string | number)[] => [] },\n defaultCheckedKeys: { type: Array, default: (): (string | number)[] => [] },\n nodeKey: { type: String, default: 'id' },\n class: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n onCheck: { type: Function, default: undefined },\n onSelect: { type: Function, default: undefined },\n onExpand: { type: Function, default: undefined },\n onNodeClick: { type: Function, default: undefined },\n onDragStart: { type: Function, default: undefined },\n onDragEnd: { type: Function, default: undefined },\n onDrop: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>) {\n const p = props as TreeSetupProps;\n const expandedKeys = signal(new Set<string | number>(p.defaultExpandedKeys));\n const checkedKeys = signal(new Set<string | number>(p.defaultCheckedKeys));\n const selectedKey = signal<string | number | null>(null);\n\n const flattenTree = (\n nodes: TreeNode[],\n parent: FlattenNode | null = null,\n level = 0,\n ): FlattenNode[] => {\n const result: FlattenNode[] = [];\n\n for (const node of nodes) {\n const nodeKey = node.id;\n const isExpanded = expandedKeys().has(nodeKey);\n const isChecked = checkedKeys().has(nodeKey);\n\n const flatNode: FlattenNode = {\n ...node,\n parent,\n level,\n isLeaf: !node.children || node.children.length === 0,\n isExpanded,\n isChecked,\n isIndeterminate: false,\n isSelected: selectedKey() === nodeKey,\n };\n\n result.push(flatNode);\n\n if (isExpanded && node.children) {\n result.push(...flattenTree(node.children, flatNode, level + 1));\n }\n }\n\n return result;\n };\n\n const handleNodeClick = (node: TreeNode) => {\n selectedKey.set(node.id);\n p.onNodeClick?.(node);\n p.onSelect?.(node);\n };\n\n const handleCheck = (node: TreeNode, checked: boolean) => {\n const newCheckedKeys = new Set(checkedKeys());\n if (checked) {\n newCheckedKeys.add(node.id);\n } else {\n newCheckedKeys.delete(node.id);\n }\n checkedKeys.set(newCheckedKeys);\n p.onCheck?.(p.data, checked);\n };\n\n const handleExpand = (node: TreeNode) => {\n const newExpandedKeys = new Set(expandedKeys());\n const isExpanded = expandedKeys().has(node.id);\n\n if (isExpanded) {\n newExpandedKeys.delete(node.id);\n } else {\n newExpandedKeys.add(node.id);\n }\n\n expandedKeys.set(newExpandedKeys);\n p.onExpand?.(node, !isExpanded);\n };\n\n const renderTreeNode = (node: FlattenNode): VNode => {\n const indent = node.level * 20;\n\n const nodeContent: VNode[] = [];\n\n if (!node.isLeaf) {\n const expandBtnProps = getButtonA11yProps({\n ariaLabel: node.isExpanded ? '收起' : '展开',\n disabled: node.disabled,\n });\n\n nodeContent.push(\n createVNode(\n 'span',\n mergeA11yProps(expandBtnProps, {\n class: 'lyt-tree__expand-icon',\n onClick: () => handleExpand(node),\n }),\n [createVNode('span', {}, node.isExpanded ? '▼' : '▶')],\n ),\n );\n }\n\n if (p.showCheckbox) {\n const checkboxProps = getInputControlA11yProps({\n checked: node.isChecked,\n disabled: node.disabled,\n ariaLabel: node.label,\n });\n\n nodeContent.push(\n createVNode(\n 'input',\n mergeA11yProps(checkboxProps, {\n type: 'checkbox',\n checked: node.isChecked,\n onChange: (e: Event) => handleCheck(node, (e.target as HTMLInputElement).checked),\n }),\n ),\n );\n }\n\n const labelBtnProps = getButtonA11yProps({\n ariaLabel: node.label,\n disabled: node.disabled,\n });\n\n nodeContent.push(\n createVNode(\n 'span',\n mergeA11yProps(labelBtnProps, {\n class: 'lyt-tree__label',\n onClick: () => handleNodeClick(node),\n }),\n [createVNode('span', {}, String(node.label))],\n ),\n );\n\n return createVNode(\n 'div',\n {\n key: String(node.id),\n class: [\n 'lyt-tree__node',\n node.isSelected ? 'lyt-tree__node--selected' : '',\n node.isChecked ? 'lyt-tree__node--checked' : '',\n ]\n .filter(Boolean)\n .join(' '),\n style: `padding-left: ${indent}px`,\n draggable: p.draggable,\n onDragStart: (e: DragEvent) => p.onDragStart?.(node, e),\n onDragEnd: (e: DragEvent) => p.onDragEnd?.(node, e),\n },\n nodeContent,\n );\n };\n\n return () => {\n const data = p.data || [];\n const flatData = flattenTree(data);\n\n if (flatData.length === 0) {\n return createVNode('div', { class: 'lyt-tree__empty' }, [\n createVNode('span', {}, '暂无数据'),\n ]);\n }\n\n const treeClass = ['lyt-tree', p.showLine ? 'lyt-tree--show-line' : '', p.class]\n .filter(Boolean)\n .join(' ');\n\n const a11yProps: Record<string, string | undefined> = {\n id: p.id,\n role: 'tree',\n 'aria-label': p.ariaLabel,\n 'aria-describedby': p.ariaDescribedBy,\n };\n\n return createVNode(\n 'div',\n { ...a11yProps, class: treeClass },\n flatData.map((node) => renderTreeNode(node)),\n );\n };\n },\n});\n\nexport type { TreeProps, TreeSlots, TreeNode, TreeSetupProps } from './types';\n","/**\n * @lytjs/ui - Menu 组件(增强版)\n *\n * 导航菜单组件,支持垂直和水平模式,子菜单可折叠\n * 增强 Accessibility 支持:\n * - 完整的 ARIA 属性(menu, menuitem, menubar)\n * - 键盘导航改进(方向键导航,Enter 激活,Escape 关闭子菜单)\n * - 焦点管理(打开子菜单时聚焦,关闭后返回)\n * - 屏幕阅读器支持(Announcements)\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { signal } from '@lytjs/reactivity';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\nexport interface MenuSetupProps {\n mode: string;\n defaultActive: string;\n defaultOpeneds: string[];\n uniqueOpened: boolean;\n class: string;\n id: string;\n ariaLabel: string;\n ariaDescribedBy: string;\n onSelect: ((index: string) => void) | undefined;\n onOpen: ((index: string) => void) | undefined;\n onClose: ((index: string) => void) | undefined;\n}\n\nexport interface MenuSlots {\n default?: () => VNode[];\n}\n\ninterface MenuItemInfo {\n index: string;\n label: string;\n disabled: boolean;\n hasChildren: boolean;\n element: HTMLElement | null;\n}\n\nexport const Menu = defineComponent({\n name: 'LytMenu',\n\n props: {\n mode: { type: String, default: 'horizontal' },\n defaultActive: { type: String, default: '' },\n defaultOpeneds: { type: Array, default: (): string[] => [] },\n uniqueOpened: { type: Boolean, default: false },\n class: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n onSelect: { type: Function, default: undefined },\n onOpen: { type: Function, default: undefined },\n onClose: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: MenuSlots }) {\n const p = props as unknown as MenuSetupProps;\n const activeIndex = signal(p.defaultActive);\n const openedIndexes = signal(new Set<string>(p.defaultOpeneds));\n const menuRef = signal<HTMLElement | null>(null);\n const currentSubmenu = signal<string | null>(null);\n const focusedIndex = signal(-1);\n const announcement = signal('');\n const previousActiveElement = signal<HTMLElement | null>(null);\n const menuId = signal(`lyt-menu-${Math.random().toString(36).substr(2, 9)}`);\n\n const announce = (message: string) => {\n announcement.set(message);\n setTimeout(() => announcement.set(''), 1000);\n };\n\n const getMenuItems = (): MenuItemInfo[] => {\n const items = slots.default?.() || [];\n const menuItems: MenuItemInfo[] = [];\n\n items.forEach((item: VNode) => {\n const itemProps = (\n item as unknown as {\n props: {\n index?: string;\n label?: string;\n icon?: unknown;\n children?: unknown[];\n disabled?: boolean;\n };\n }\n ).props;\n if (!itemProps || !itemProps.index) return;\n\n const hasChildren = !!(itemProps.children && (itemProps.children as unknown[]).length > 0);\n menuItems.push({\n index: itemProps.index,\n label: itemProps.label || '',\n disabled: !!itemProps.disabled,\n hasChildren,\n element: null,\n });\n });\n\n return menuItems;\n };\n\n const handleSelect = (index: string) => {\n activeIndex.set(index);\n announce(`已选择菜单项:${index}`);\n p.onSelect?.(index);\n };\n\n const toggleSubmenu = (index: string, itemLabel: string) => {\n const newOpened = new Set(openedIndexes());\n\n if (newOpened.has(index)) {\n newOpened.delete(index);\n announce(`已关闭子菜单:${itemLabel}`);\n p.onClose?.(index);\n currentSubmenu.set(null);\n\n const prevEl = previousActiveElement();\n if (prevEl && prevEl.focus) {\n prevEl.focus();\n }\n } else {\n if (p.uniqueOpened) {\n newOpened.clear();\n if (currentSubmenu()) {\n announce('已关闭其他子菜单');\n }\n }\n newOpened.add(index);\n announce(`已打开子菜单:${itemLabel}`);\n p.onOpen?.(index);\n currentSubmenu.set(index);\n\n previousActiveElement.set(document.activeElement as HTMLElement);\n setTimeout(() => {\n const menu = menuRef();\n if (menu) {\n const submenu = menu.querySelector(`[data-submenu-id=\"${index}\"] ul`);\n if (submenu) {\n const firstItem = submenu.querySelector('[role=\"menuitem\"]') as HTMLElement;\n firstItem?.focus();\n }\n }\n }, 10);\n }\n\n openedIndexes.set(newOpened);\n };\n\n const handleKeydown = (\n e: KeyboardEvent,\n itemIndex: string,\n hasChildren: boolean,\n itemLabel: string,\n ) => {\n const menuItems = getMenuItems();\n const currentIndex = menuItems.findIndex((item) => item.index === itemIndex);\n\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n if (hasChildren && !openedIndexes().has(itemIndex)) {\n toggleSubmenu(itemIndex, itemLabel);\n } else {\n for (let i = 1; i <= menuItems.length; i++) {\n const nextIndex = (currentIndex + i) % menuItems.length;\n const nextItem = menuItems[nextIndex];\n if (nextItem && !nextItem.disabled) {\n announce(`导航到菜单项:${nextItem.label}`);\n focusedIndex.set(nextIndex);\n break;\n }\n }\n }\n break;\n\n case 'ArrowUp':\n e.preventDefault();\n for (let i = 1; i <= menuItems.length; i++) {\n const prevIndex = (currentIndex - i + menuItems.length) % menuItems.length;\n const prevItem = menuItems[prevIndex];\n if (prevItem && !prevItem.disabled) {\n announce(`导航到菜单项:${prevItem.label}`);\n focusedIndex.set(prevIndex);\n break;\n }\n }\n break;\n\n case 'ArrowRight':\n e.preventDefault();\n for (let i = 1; i <= menuItems.length; i++) {\n const nextIndex = (currentIndex + i) % menuItems.length;\n const nextItem = menuItems[nextIndex];\n if (nextItem && !nextItem.disabled) {\n announce(`导航到菜单项:${nextItem.label}`);\n focusedIndex.set(nextIndex);\n break;\n }\n }\n break;\n\n case 'ArrowLeft':\n e.preventDefault();\n for (let i = 1; i <= menuItems.length; i++) {\n const prevIndex = (currentIndex - i + menuItems.length) % menuItems.length;\n const prevItem = menuItems[prevIndex];\n if (prevItem && !prevItem.disabled) {\n announce(`导航到菜单项:${prevItem.label}`);\n focusedIndex.set(prevIndex);\n break;\n }\n }\n break;\n\n case 'Enter':\n case ' ':\n e.preventDefault();\n if (hasChildren) {\n toggleSubmenu(itemIndex, itemLabel);\n } else {\n handleSelect(itemIndex);\n }\n break;\n\n case 'Escape':\n if (openedIndexes().has(itemIndex)) {\n e.preventDefault();\n toggleSubmenu(itemIndex, itemLabel);\n }\n break;\n\n case 'Home': {\n e.preventDefault();\n const firstEnabled = menuItems.find((item) => !item.disabled);\n if (firstEnabled) {\n announce(`导航到第一个菜单项:${firstEnabled.label}`);\n focusedIndex.set(menuItems.indexOf(firstEnabled));\n }\n break;\n }\n\n case 'End':\n e.preventDefault();\n for (let i = menuItems.length - 1; i >= 0; i--) {\n const item = menuItems[i];\n if (item && !item.disabled) {\n announce(`导航到最后一个菜单项:${item.label}`);\n focusedIndex.set(i);\n break;\n }\n }\n break;\n }\n };\n\n return () => {\n const menuClass = ['lyt-menu', `lyt-menu--${p.mode}`, p.class].filter(Boolean).join(' ');\n\n const items = slots.default?.() || [];\n const menuListId = menuId();\n\n const menuItems: VNode[] = items.map((item: VNode, index: number) => {\n const itemProps = (\n item as unknown as {\n props: {\n index?: string;\n label?: string;\n icon?: unknown;\n children?: unknown[];\n disabled?: boolean;\n };\n }\n ).props;\n if (!itemProps) return item;\n\n const isActive = itemProps.index === activeIndex();\n const isOpened = openedIndexes().has(itemProps.index as string);\n const isFocused = focusedIndex() === index;\n\n const itemChildren: VNode[] = [];\n\n if (itemProps.icon) {\n itemChildren.push(\n createVNode('span', { class: 'lyt-menu__icon' }, [itemProps.icon as unknown as VNode]),\n );\n }\n itemChildren.push(\n createVNode('span', { class: 'lyt-menu__title' }, [\n createVNode('span', {}, String(itemProps.label || '')),\n ]),\n );\n\n const hasChildren = !!(itemProps.children && (itemProps.children as unknown[]).length > 0);\n const itemId = `${menuListId}-item-${itemProps.index}`;\n\n if (hasChildren) {\n itemChildren.push(\n createVNode(\n 'span',\n {\n class: ['lyt-menu__arrow', isOpened ? 'lyt-menu__arrow--opened' : '']\n .filter(Boolean)\n .join(' '),\n 'aria-hidden': 'true',\n },\n [createVNode('span', {}, isOpened ? '▲' : '▼')],\n ),\n );\n\n const submenuChildren: VNode[] = (itemProps.children as unknown[]).map(\n (child: unknown) => {\n const childItem = child as {\n index?: string;\n label?: string;\n icon?: unknown;\n disabled?: boolean;\n };\n const childItemId = `${itemId}-child-${childItem.index}`;\n const isChildActive = childItem.index === activeIndex();\n\n return createVNode(\n 'li',\n {\n key: childItem.index,\n id: childItemId,\n class: [\n 'lyt-menu__item',\n 'lyt-menu__submenu-item',\n isChildActive ? 'lyt-menu__item--active' : '',\n childItem.disabled ? 'lyt-menu__item--disabled' : '',\n ]\n .filter(Boolean)\n .join(' '),\n role: 'menuitem',\n 'aria-disabled': childItem.disabled,\n onClick: () => {\n if (childItem.disabled) return;\n handleSelect(childItem.index as string);\n },\n },\n [\n childItem.icon\n ? createVNode('span', { class: 'lyt-menu__icon' }, [\n childItem.icon as unknown as VNode,\n ])\n : createVNode('span', {}, ''),\n createVNode('span', { class: 'lyt-menu__title' }, [\n createVNode('span', {}, String(childItem.label || '')),\n ]),\n ],\n );\n },\n );\n\n itemChildren.push(\n createVNode(\n 'div',\n {\n 'data-submenu-id': itemProps.index,\n class: ['lyt-menu__submenu', isOpened ? 'lyt-menu__submenu--opened' : '']\n .filter(Boolean)\n .join(' '),\n 'aria-label': itemProps.label,\n },\n [\n createVNode(\n 'ul',\n {\n class: 'lyt-menu__submenu-list',\n role: 'menu',\n },\n submenuChildren,\n ),\n ],\n ),\n );\n }\n\n const itemMenuitemProps = {\n id: itemId,\n 'aria-disabled': itemProps.disabled ? true : undefined,\n 'aria-expanded': hasChildren ? isOpened : undefined,\n 'aria-haspopup': hasChildren ? true : undefined,\n };\n\n return createVNode(\n 'li',\n mergeA11yProps(itemMenuitemProps, {\n key: itemProps.index,\n class: [\n 'lyt-menu__item',\n isActive ? 'lyt-menu__item--active' : '',\n isFocused ? 'lyt-menu__item--focused' : '',\n itemProps.disabled ? 'lyt-menu__item--disabled' : '',\n ]\n .filter(Boolean)\n .join(' '),\n role: 'menuitem',\n tabIndex: isFocused ? 0 : -1,\n 'aria-haspopup': hasChildren,\n 'aria-expanded': hasChildren ? isOpened : undefined,\n onClick: () => {\n if (itemProps.disabled) return;\n if (hasChildren) {\n toggleSubmenu(itemProps.index as string, itemProps.label || '');\n } else {\n handleSelect(itemProps.index as string);\n }\n },\n onKeydown: (e: KeyboardEvent) =>\n handleKeydown(e, itemProps.index as string, hasChildren, itemProps.label || ''),\n }),\n itemChildren,\n );\n });\n\n return createVNode(\n 'div',\n {\n ref: (el: HTMLElement) => menuRef.set(el),\n },\n [\n createVNode(\n 'ul',\n {\n class: menuClass,\n role: 'menubar',\n id: p.id || menuListId,\n 'aria-label': p.ariaLabel || '主菜单',\n },\n menuItems,\n ),\n createVNode(\n 'div',\n {\n class: 'lyt-menu__sro',\n role: 'status',\n 'aria-live': 'polite',\n 'aria-atomic': 'true',\n },\n announcement(),\n ),\n ],\n );\n };\n },\n});\n\nexport type { MenuProps } from './types';\n","/**\n * @lytjs/ui - Cascader 组件\n *\n * 级联选择器组件,支持多选、懒加载、数据回显等功能\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { signal } from '@lytjs/reactivity';\nimport type { CascaderOption, CascaderSetupProps, CascaderSlots } from './types';\nimport {\n getComboboxA11yProps,\n getButtonA11yProps,\n getGroupA11yProps,\n mergeA11yProps,\n} from '@lytjs/common-a11y';\n\nexport const Cascader = defineComponent({\n name: 'LytCascader',\n\n props: {\n options: { type: Array, default: (): CascaderOption[] => [] },\n modelValue: { type: Array, default: (): (string | number)[] => [] },\n placeholder: { type: String, default: '请选择' },\n disabled: { type: Boolean, default: false },\n clearable: { type: Boolean, default: true },\n multiple: { type: Boolean, default: false },\n filterable: { type: Boolean, default: false },\n checkStrictly: { type: Boolean, default: false },\n showAllLevels: { type: Boolean, default: true },\n collapseTags: { type: Boolean, default: false },\n separator: { type: String, default: ' / ' },\n class: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n load: { type: Function, default: undefined },\n onChange: { type: Function, default: undefined },\n onExpandChange: { type: Function, default: undefined },\n onVisibleChange: { type: Function, default: undefined },\n onRemoveTag: { type: Function, default: undefined },\n onClear: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: CascaderSlots }) {\n const p = props as CascaderSetupProps;\n const isDropdownOpen = signal(false);\n const activePath = signal<(string | number)[]>([]);\n const selectedValues = signal<Array<(string | number)[]>>([]);\n const searchText = signal('');\n const isFiltering = signal(false);\n\n if (p.modelValue.length > 0) {\n if (p.multiple) {\n selectedValues.set([...(p.modelValue as Array<(string | number)[]>)]);\n } else {\n selectedValues.set([p.modelValue as (string | number)[]]);\n }\n }\n\n const toggleDropdown = (visible?: boolean) => {\n if (p.disabled) return;\n\n if (typeof visible === 'boolean') {\n isDropdownOpen.set(visible);\n } else {\n isDropdownOpen.set(!isDropdownOpen());\n }\n p.onVisibleChange?.(isDropdownOpen());\n };\n\n const clear = () => {\n selectedValues.set([]);\n activePath.set([]);\n isDropdownOpen.set(false);\n p.onClear?.();\n p.onChange?.([]);\n };\n\n const removeTag = (index: number) => {\n if (p.disabled) return;\n\n const newSelected = [...selectedValues()];\n newSelected.splice(index, 1);\n selectedValues.set(newSelected);\n p.onRemoveTag?.(newSelected);\n p.onChange?.(newSelected);\n };\n\n const selectOption = (option: CascaderOption, level: number) => {\n if (option.disabled) return;\n\n const newPath = [...activePath().slice(0, level), option.value];\n activePath.set(newPath);\n\n const nextOptions = option.children || [];\n\n if (option.isLeaf) {\n if (p.multiple) {\n const exists = selectedValues().some((item) => item.join('-') === newPath.join('-'));\n const newSelected = exists\n ? selectedValues().filter((item) => item.join('-') !== newPath.join('-'))\n : [...selectedValues(), newPath];\n selectedValues.set(newSelected);\n p.onChange?.(newSelected);\n } else {\n selectedValues.set([newPath]);\n isDropdownOpen.set(false);\n p.onChange?.(newPath);\n }\n } else if (nextOptions.length === 0 && p.load) {\n option.loading = true;\n p.load(option, (children: CascaderOption[]) => {\n option.loading = false;\n option.children = children;\n });\n }\n };\n\n const getOptionsAtLevel = (level: number): CascaderOption[] => {\n if (isFiltering()) {\n const keyword = searchText().toLowerCase();\n return filterOptions(p.options, keyword);\n }\n\n let options: CascaderOption[] = [...p.options];\n for (let i = 0; i < level; i++) {\n const found = options.find((opt) => opt.value === activePath()[i]);\n options = found?.children || [];\n if (options.length === 0) break;\n }\n return options;\n };\n\n const filterOptions = (options: CascaderOption[], keyword: string): CascaderOption[] => {\n return options.reduce((acc: CascaderOption[], option) => {\n const match = option.label.toLowerCase().includes(keyword);\n const children = option.children ? filterOptions(option.children, keyword) : [];\n\n if (match || children.length > 0) {\n acc.push({ ...option, children: children.length > 0 ? children : undefined });\n }\n return acc;\n }, []);\n };\n\n const getDisplayText = (): string => {\n const values = selectedValues();\n\n if (values.length === 0) {\n return p.placeholder;\n }\n\n if (!p.multiple) {\n return getPathLabel(values[0] || []);\n }\n\n return `${values.length} 项`;\n };\n\n const getPathLabel = (path: (string | number)[]): string => {\n const labels: string[] = [];\n let currentOptions: CascaderOption[] = p.options;\n\n for (const value of path) {\n const found = currentOptions.find((opt) => opt.value === value);\n if (found) {\n labels.push(found.label);\n currentOptions = found.children || [];\n }\n }\n\n return p.showAllLevels ? labels.join(p.separator) : labels[labels.length - 1] || '';\n };\n\n const renderOption = (option: CascaderOption, level: number): VNode => {\n const isActive = activePath()[level] === option.value;\n const isSelected = selectedValues().some(\n (path) => path.join('-') === [...activePath().slice(0, level), option.value].join('-'),\n );\n\n const optionChildren: VNode[] = [];\n\n if (option.loading) {\n optionChildren.push(\n createVNode('span', { class: 'lyt-cascader__loading' }, [createVNode('span', {}, '⏳')]),\n );\n }\n\n if (slots.default) {\n optionChildren.push(...slots.default(option));\n } else {\n const labelBtnProps = getButtonA11yProps({\n ariaLabel: option.label,\n disabled: option.disabled,\n });\n optionChildren.push(\n createVNode('span', mergeA11yProps(labelBtnProps, {}), String(option.label)),\n );\n }\n\n if (option.children && !option.isLeaf) {\n optionChildren.push(\n createVNode('span', { class: 'lyt-cascader__arrow' }, [createVNode('span', {}, '▶')]),\n );\n }\n\n return createVNode(\n 'div',\n {\n key: String(option.value),\n class: [\n 'lyt-cascader__option',\n isActive ? 'lyt-cascader__option--active' : '',\n isSelected ? 'lyt-cascader__option--selected' : '',\n option.disabled ? 'lyt-cascader__option--disabled' : '',\n ]\n .filter(Boolean)\n .join(' '),\n onClick: () => selectOption(option, level),\n },\n optionChildren,\n );\n };\n\n return () => {\n const cascaderClass = [\n 'lyt-cascader',\n isDropdownOpen() ? 'lyt-cascader--open' : '',\n p.disabled ? 'lyt-cascader--disabled' : '',\n p.class,\n ]\n .filter(Boolean)\n .join(' ');\n\n const isValueSet = selectedValues().length > 0;\n\n const a11yProps = getComboboxA11yProps({\n id: p.id,\n ariaLabel: p.ariaLabel,\n ariaDescribedBy: p.ariaDescribedBy,\n disabled: p.disabled,\n expanded: isDropdownOpen(),\n controls: undefined,\n });\n\n const contentChildren: VNode[] = [];\n\n if (p.multiple && isValueSet) {\n selectedValues().forEach((path, index) => {\n const removeBtnProps = getButtonA11yProps({ ariaLabel: '移除标签' });\n contentChildren.push(\n createVNode('span', { class: 'lyt-cascader__tag', key: index }, [\n createVNode('span', {}, getPathLabel(path)),\n createVNode(\n 'span',\n mergeA11yProps(removeBtnProps, {\n class: 'lyt-cascader__tag-close',\n onClick: () => removeTag(index),\n }),\n [createVNode('span', {}, '×')],\n ),\n ]),\n );\n });\n } else {\n contentChildren.push(\n createVNode(\n 'span',\n {\n class: ['lyt-cascader__value', !isValueSet ? 'lyt-cascader__placeholder' : '']\n .filter(Boolean)\n .join(' '),\n },\n [createVNode('span', {}, getDisplayText())],\n ),\n );\n }\n\n if (p.clearable && isValueSet) {\n const clearBtnProps = getButtonA11yProps({ ariaLabel: '清除' });\n contentChildren.push(\n createVNode(\n 'span',\n mergeA11yProps(clearBtnProps, {\n class: 'lyt-cascader__clear',\n onClick: (e: Event) => {\n e.stopPropagation();\n clear();\n },\n }),\n [createVNode('span', {}, '×')],\n ),\n );\n }\n\n contentChildren.push(\n createVNode('span', { class: 'lyt-cascader__arrow' }, [createVNode('span', {}, '▼')]),\n );\n\n const dropdownContent: VNode[] = [];\n\n if (p.filterable) {\n dropdownContent.push(\n createVNode(\n 'div',\n mergeA11yProps(\n {\n role: 'search',\n },\n { class: 'lyt-cascader__search' },\n ),\n [\n createVNode('input', {\n type: 'text',\n placeholder: '搜索',\n value: searchText(),\n onInput: (e: Event) => {\n const value = (e.target as HTMLInputElement).value;\n searchText.set(value);\n isFiltering.set(value.length > 0);\n },\n }),\n ],\n ),\n );\n }\n\n const maxLevel = isFiltering() ? 1 : activePath().length + 1;\n for (let i = 0; i < maxLevel; i++) {\n const options = getOptionsAtLevel(i);\n if (options.length > 0 || i === 0) {\n const panelProps = getGroupA11yProps({ role: 'listbox' });\n dropdownContent.push(\n createVNode(\n 'div',\n mergeA11yProps(panelProps, { class: 'lyt-cascader__panel', key: i }),\n options.map((option) => renderOption(option, i)),\n ),\n );\n }\n }\n\n const resultChildren: VNode[] = [\n createVNode(\n 'div',\n mergeA11yProps(a11yProps, { class: 'lyt-cascader__trigger' }),\n contentChildren,\n ),\n ];\n\n if (isDropdownOpen()) {\n const dropdownChildren: VNode[] = [];\n if (p.options.length === 0) {\n if (slots.empty) {\n dropdownChildren.push(...slots.empty());\n } else {\n dropdownChildren.push(createVNode('span', {}, '暂无数据'));\n }\n } else {\n dropdownChildren.push(...dropdownContent);\n }\n\n resultChildren.push(\n createVNode('div', { class: 'lyt-cascader__dropdown' }, dropdownChildren),\n );\n }\n\n return createVNode(\n 'div',\n {\n class: cascaderClass,\n onClick: () => toggleDropdown(),\n },\n resultChildren,\n );\n };\n },\n});\n\nexport type { CascaderProps, CascaderSlots, CascaderOption, CascaderSetupProps } from './types';\n","/**\n * @lytjs/ui - TreeSelect 树形选择器组件\n *\n * 树形选择器组件,结合了 Select 和 Tree 功能\n */\n\nimport { defineComponent, type PropType } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { signal } from '@lytjs/reactivity';\nimport { getComboboxA11yProps, getButtonA11yProps, mergeA11yProps } from '@lytjs/common-a11y';\n\nexport interface TreeSelectNode {\n value: string | number;\n label: string;\n children?: TreeSelectNode[];\n disabled?: boolean;\n}\n\nexport interface TreeSelectSetupProps {\n data: TreeSelectNode[];\n value: string | number;\n placeholder: string;\n multiple: boolean;\n clearable: boolean;\n filterable: boolean;\n filterPlaceholder: string;\n nodeKey: string;\n defaultExpandAll: boolean;\n defaultExpandedKeys: (string | number)[];\n class: string;\n style: string | Record<string, string>;\n id: string;\n ariaLabel: string;\n ariaDescribedBy: string;\n onChange: ((value: string | number, node: TreeSelectNode) => void) | undefined;\n}\n\ntype NodeDict = Record<string, unknown>;\n\nexport const TreeSelect = defineComponent({\n name: 'LytTreeSelect',\n\n props: {\n data: { type: Array as () => TreeSelectNode[], default: () => [] },\n value: { type: [String, Number] as unknown as PropType<string | number>, default: '' },\n placeholder: { type: String, default: '请选择' },\n multiple: { type: Boolean, default: false },\n clearable: { type: Boolean, default: false },\n filterable: { type: Boolean, default: false },\n filterPlaceholder: { type: String, default: '请输入搜索内容' },\n nodeKey: { type: String, default: 'value' },\n defaultExpandAll: { type: Boolean, default: false },\n defaultExpandedKeys: { type: Array as () => (string | number)[], default: () => [] },\n class: { type: String, default: '' },\n style: {\n type: [String, Object] as unknown as PropType<string | Record<string, string>>,\n default: '',\n },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n onChange: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots, emit }) {\n const _props = props as unknown as TreeSelectSetupProps;\n const visible = signal(false);\n const filterQuery = signal('');\n const expandedKeys = signal<(string | number)[]>(\n _props.defaultExpandAll ? getAllNodeKeys(_props.data) : _props.defaultExpandedKeys,\n );\n const selectedLabel = signal('');\n\n function getAllNodeKeys(nodes: TreeSelectNode[]): (string | number)[] {\n const keys: (string | number)[] = [];\n const traverse = (nodeList: TreeSelectNode[]) => {\n for (const node of nodeList) {\n const nodeDict = node as unknown as NodeDict;\n const nodeValue = nodeDict[_props.nodeKey];\n if (typeof nodeValue === 'string' || typeof nodeValue === 'number') {\n keys.push(nodeValue);\n }\n if (node.children && node.children.length > 0) {\n traverse(node.children);\n }\n }\n };\n traverse(nodes);\n return keys;\n }\n\n const filteredData = (): TreeSelectNode[] => {\n const query = filterQuery();\n if (!query) return _props.data;\n\n const filterNodes = (nodes: TreeSelectNode[]): TreeSelectNode[] => {\n const result: TreeSelectNode[] = [];\n for (const node of nodes) {\n let filteredChildren: TreeSelectNode[] | undefined;\n if (node.children && node.children.length > 0) {\n filteredChildren = filterNodes(node.children);\n }\n\n const labelMatch = node.label.toLowerCase().includes(query.toLowerCase());\n const hasMatchingChildren = filteredChildren && filteredChildren.length > 0;\n\n if (labelMatch || hasMatchingChildren) {\n const filteredNode: TreeSelectNode = {\n ...node,\n children: hasMatchingChildren ? filteredChildren : node.children,\n };\n result.push(filteredNode);\n }\n }\n return result;\n };\n\n return filterNodes(_props.data);\n };\n\n const selectedNode = (): TreeSelectNode | null => {\n const findNode = (nodes: TreeSelectNode[]): TreeSelectNode | null => {\n for (const node of nodes) {\n const nodeDict = node as unknown as NodeDict;\n const nodeValue = nodeDict[_props.nodeKey];\n if (nodeValue === _props.value) {\n return node;\n }\n if (node.children && node.children.length > 0) {\n const found = findNode(node.children);\n if (found) return found;\n }\n }\n return null;\n };\n return findNode(_props.data);\n };\n\n const handleToggle = () => {\n visible.update((v) => !v);\n };\n\n const handleClear = () => {\n emit('update:value', '');\n _props.onChange?.('' as unknown as string | number, null as unknown as TreeSelectNode);\n };\n\n const handleSelect = (node: TreeSelectNode) => {\n if (node.disabled) return;\n const nodeDict = node as unknown as NodeDict;\n const nodeValue = nodeDict[_props.nodeKey] as string | number;\n emit('update:value', nodeValue);\n _props.onChange?.(nodeValue, node);\n selectedLabel.set(node.label);\n visible.set(false);\n };\n\n const handleToggleExpand = (node: TreeSelectNode, e: Event) => {\n e.stopPropagation();\n const nodeDict = node as unknown as NodeDict;\n const nodeKey = nodeDict[_props.nodeKey] as string | number;\n const keys = expandedKeys();\n if (keys.includes(nodeKey)) {\n expandedKeys.set(keys.filter((k) => k !== nodeKey));\n } else {\n expandedKeys.update((k) => [...k, nodeKey]);\n }\n };\n\n const getTreeSelectClass = () => {\n const classes = ['lyt-tree-select'];\n if (visible()) classes.push('is-visible');\n if (_props.class) classes.push(_props.class);\n return classes.join(' ');\n };\n\n const getTreeSelectStyle = (): string | Record<string, string> => {\n if (!_props.style) return {};\n if (isString(_props.style)) return _props.style;\n if (isObject(_props.style)) return _props.style;\n return {};\n };\n\n const renderNode = (node: TreeSelectNode, level: number = 0): VNode => {\n const keys = expandedKeys();\n const nodeDict = node as unknown as NodeDict;\n const nodeKey = nodeDict[_props.nodeKey] as string | number;\n const isExpanded = keys.includes(nodeKey);\n const isSelected = nodeKey === _props.value;\n const hasChildren = node.children && node.children.length > 0;\n\n const nodeChildren: VNode[] = [];\n\n if (hasChildren) {\n const expandBtnProps = getButtonA11yProps({\n ariaLabel: isExpanded ? '收起' : '展开',\n disabled: node.disabled,\n });\n nodeChildren.push(\n createVNode(\n 'span',\n mergeA11yProps(expandBtnProps, {\n class: ['lyt-tree-node-expand-icon', isExpanded ? 'is-expanded' : ''],\n onClick: (e: Event) => handleToggleExpand(node, e),\n }),\n [createVNode('span', {}, isExpanded ? '▼' : '▶')],\n ),\n );\n } else {\n nodeChildren.push(\n createVNode('span', { class: 'lyt-tree-node-expand-icon' }, [\n createVNode('span', {}, ''),\n ]),\n );\n }\n\n const labelBtnProps = getButtonA11yProps({\n ariaLabel: node.label,\n disabled: node.disabled,\n });\n nodeChildren.push(\n createVNode(\n 'span',\n mergeA11yProps(labelBtnProps, {\n class: 'lyt-tree-node-label',\n }),\n [createVNode('span', {}, node.label)],\n ),\n );\n\n const nodeVNode = createVNode(\n 'div',\n {\n class: [\n 'lyt-tree-node',\n { 'is-selected': isSelected, 'is-disabled': node.disabled, 'is-expanded': isExpanded },\n ],\n style: { paddingLeft: `${level * 20}px` },\n onClick: () => handleSelect(node),\n },\n nodeChildren,\n );\n\n if (hasChildren && isExpanded && node.children) {\n const childNodes = node.children.map((child: TreeSelectNode) =>\n renderNode(child, level + 1),\n );\n return createVNode('div', { class: 'lyt-tree-node-wrapper' }, [nodeVNode, ...childNodes]);\n }\n\n return nodeVNode;\n };\n\n return () => {\n const children: VNode[] = [];\n\n const triggerChildren: VNode[] = [];\n\n const a11yProps = getComboboxA11yProps({\n id: _props.id,\n ariaLabel: _props.ariaLabel,\n ariaDescribedBy: _props.ariaDescribedBy,\n disabled: false,\n expanded: visible(),\n controls: undefined,\n });\n\n const currentNode = selectedNode();\n triggerChildren.push(\n createVNode(\n 'span',\n { class: 'lyt-tree-select-value' },\n currentNode\n ? [createVNode('span', {}, currentNode.label)]\n : [createVNode('span', {}, _props.placeholder)],\n ),\n );\n\n if (_props.clearable && currentNode) {\n const clearBtnProps = getButtonA11yProps({ ariaLabel: '清除' });\n triggerChildren.push(\n createVNode(\n 'span',\n mergeA11yProps(clearBtnProps, {\n class: 'lyt-tree-select-clear',\n onClick: (e: Event) => {\n e.stopPropagation();\n handleClear();\n },\n }),\n [createVNode('span', {}, '×')],\n ),\n );\n }\n\n triggerChildren.push(\n createVNode('span', { class: 'lyt-tree-select-arrow' }, [createVNode('span', {}, '▼')]),\n );\n\n children.push(\n createVNode(\n 'div',\n mergeA11yProps(a11yProps, {\n class: 'lyt-tree-select-trigger',\n onClick: handleToggle,\n }),\n triggerChildren,\n ),\n );\n\n if (visible()) {\n const dropdownChildren: VNode[] = [];\n\n if (_props.filterable) {\n dropdownChildren.push(\n createVNode('div', { role: 'search', class: 'lyt-tree-select-search' }, [\n createVNode('input', {\n type: 'text',\n placeholder: _props.filterPlaceholder,\n value: filterQuery(),\n onInput: (e: Event) => {\n const target = e.target as HTMLInputElement;\n filterQuery.set(target.value);\n },\n }),\n ]),\n );\n }\n\n const treeChildren: VNode[] = [];\n const nodes = filteredData();\n if (nodes.length > 0) {\n for (const node of nodes) {\n treeChildren.push(renderNode(node, 0));\n }\n } else if (slots.empty) {\n const emptyContent = slots.empty();\n treeChildren.push(\n createVNode('div', { class: 'lyt-tree-select-empty' }, emptyContent as VNode[]),\n );\n } else {\n treeChildren.push(\n createVNode('div', { class: 'lyt-tree-select-empty' }, [\n createVNode('span', {}, '暂无数据'),\n ]),\n );\n }\n\n dropdownChildren.push(\n createVNode('div', { role: 'tree', class: 'lyt-tree-select-tree' }, treeChildren),\n );\n\n children.push(createVNode('div', { class: 'lyt-tree-select-dropdown' }, dropdownChildren));\n }\n\n return createVNode(\n 'div',\n {\n class: getTreeSelectClass(),\n style: getTreeSelectStyle(),\n },\n children,\n );\n };\n },\n});\n","/**\n * @lytjs/ui - Transfer 穿梭框组件\n *\n * 穿梭框组件,用于将数据从一侧移动到另一侧\n */\n\nimport type { TransferProps, TransferSlots, TransferSetupProps, TransferOption } from './types';\nimport { defineComponent, type PropType } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { signal } from '@lytjs/reactivity';\n\nexport const Transfer = defineComponent({\n name: 'LytTransfer',\n\n props: {\n data: { type: Array as () => TransferOption[], default: () => [] },\n value: { type: Array as () => (string | number)[], default: () => [] },\n filterable: { type: Boolean, default: false },\n filterPlaceholder: { type: String, default: '请输入搜索内容' },\n titles: { type: Array as () => string[], default: () => ['源列表', '目标列表'] },\n buttonTexts: { type: Array as () => string[], default: () => ['', ''] },\n class: { type: String, default: '' },\n style: {\n type: [String, Object] as unknown as PropType<string | Record<string, string>>,\n default: '',\n },\n onChange: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots, emit }) {\n const _props = props as TransferSetupProps;\n const leftCheckedKeys = signal<(string | number)[]>([]);\n const rightCheckedKeys = signal<(string | number)[]>([]);\n const leftFilterQuery = signal('');\n const rightFilterQuery = signal('');\n\n const leftData = () => {\n return (_props.data as TransferOption[]).filter(\n (item) => !(_props.value as (string | number)[]).includes(item.key),\n );\n };\n\n const rightData = () => {\n return (_props.data as TransferOption[]).filter((item) =>\n (_props.value as (string | number)[]).includes(item.key),\n );\n };\n\n const filteredLeftData = () => {\n const query = leftFilterQuery();\n const data = leftData();\n if (!query) return data;\n return data.filter((item) => item.label.toLowerCase().includes(query.toLowerCase()));\n };\n\n const filteredRightData = () => {\n const query = rightFilterQuery();\n const data = rightData();\n if (!query) return data;\n return data.filter((item) => item.label.toLowerCase().includes(query.toLowerCase()));\n };\n\n const handleMoveToRight = () => {\n const newValues = [...(_props.value as (string | number)[]), ...leftCheckedKeys()];\n emit('update:value', newValues);\n _props.onChange?.(newValues, 'right', leftCheckedKeys());\n leftCheckedKeys.set([]);\n };\n\n const handleMoveToLeft = () => {\n const newValues = (_props.value as (string | number)[]).filter(\n (key) => !rightCheckedKeys().includes(key),\n );\n emit('update:value', newValues);\n _props.onChange?.(newValues, 'left', rightCheckedKeys());\n rightCheckedKeys.set([]);\n };\n\n const getTransferClass = () => {\n const classes = ['lyt-transfer'];\n if (_props.class) classes.push(_props.class);\n return classes.join(' ');\n };\n\n const getTransferStyle = () => {\n const style: Record<string, string> = {};\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n const renderItem = (item: TransferOption, list: 'left' | 'right') => {\n const leftChecked = leftCheckedKeys();\n const rightChecked = rightCheckedKeys();\n const checked =\n list === 'left' ? leftChecked.includes(item.key) : rightChecked.includes(item.key);\n\n const handleCheck = () => {\n if (item.disabled) return;\n if (list === 'left') {\n if (checked) {\n leftCheckedKeys.set(leftChecked.filter((k: string | number) => k !== item.key));\n } else {\n leftCheckedKeys.update((keys) => [...keys, item.key]);\n }\n } else {\n if (checked) {\n rightCheckedKeys.set(rightChecked.filter((k: string | number) => k !== item.key));\n } else {\n rightCheckedKeys.update((keys) => [...keys, item.key]);\n }\n }\n };\n\n return createVNode(\n 'div',\n {\n class: [\n 'lyt-transfer-panel-item',\n { 'is-disabled': item.disabled, 'is-checked': checked },\n ],\n onClick: handleCheck,\n key: item.key,\n },\n [createVNode('span', {}, item.label)],\n );\n };\n\n return () => {\n const children: VNode[] = [];\n\n const leftPanelChildren: VNode[] = [];\n leftPanelChildren.push(\n createVNode('div', { class: 'lyt-transfer-panel-header' }, [\n createVNode('span', {}, (_props.titles as string[])[0] || ''),\n ]),\n );\n\n if (_props.filterable) {\n const filterInput = createVNode('input', {\n class: 'lyt-transfer-filter',\n type: 'text',\n placeholder: _props.filterPlaceholder,\n value: leftFilterQuery(),\n onInput: (e: Event) => {\n const target = e.target as HTMLInputElement;\n leftFilterQuery.set(target.value);\n },\n });\n const items = filteredLeftData().map((item: TransferOption) => renderItem(item, 'left'));\n leftPanelChildren.push(\n createVNode('div', { class: 'lyt-transfer-panel-body' }, [filterInput, ...items]),\n );\n } else {\n const items = filteredLeftData().map((item: TransferOption) => renderItem(item, 'left'));\n leftPanelChildren.push(createVNode('div', { class: 'lyt-transfer-panel-body' }, items));\n }\n\n if (slots.leftFooter) {\n const footerContent = slots.leftFooter();\n leftPanelChildren.push(\n createVNode('div', { class: 'lyt-transfer-panel-footer' }, footerContent as VNode[]),\n );\n }\n\n children.push(createVNode('div', { class: 'lyt-transfer-panel' }, leftPanelChildren));\n\n const buttonChildren: VNode[] = [];\n const rightDisabled = leftCheckedKeys().length === 0;\n buttonChildren.push(\n createVNode(\n 'button',\n {\n class: ['lyt-button', 'lyt-button--default', rightDisabled ? 'is-disabled' : ''],\n disabled: rightDisabled,\n onClick: handleMoveToRight,\n },\n [createVNode('span', {}, (_props.buttonTexts as string[])[0] || '→')],\n ),\n );\n\n const leftDisabled = rightCheckedKeys().length === 0;\n buttonChildren.push(\n createVNode(\n 'button',\n {\n class: ['lyt-button', 'lyt-button--default', leftDisabled ? 'is-disabled' : ''],\n disabled: leftDisabled,\n onClick: handleMoveToLeft,\n },\n [createVNode('span', {}, (_props.buttonTexts as string[])[1] || '←')],\n ),\n );\n\n children.push(createVNode('div', { class: 'lyt-transfer-buttons' }, buttonChildren));\n\n const rightPanelChildren: VNode[] = [];\n rightPanelChildren.push(\n createVNode('div', { class: 'lyt-transfer-panel-header' }, [\n createVNode('span', {}, (_props.titles as string[])[1] || ''),\n ]),\n );\n\n if (_props.filterable) {\n const filterInput = createVNode('input', {\n class: 'lyt-transfer-filter',\n type: 'text',\n placeholder: _props.filterPlaceholder,\n value: rightFilterQuery(),\n onInput: (e: Event) => {\n const target = e.target as HTMLInputElement;\n rightFilterQuery.set(target.value);\n },\n });\n const items = filteredRightData().map((item: TransferOption) => renderItem(item, 'right'));\n rightPanelChildren.push(\n createVNode('div', { class: 'lyt-transfer-panel-body' }, [filterInput, ...items]),\n );\n } else {\n const items = filteredRightData().map((item: TransferOption) => renderItem(item, 'right'));\n rightPanelChildren.push(createVNode('div', { class: 'lyt-transfer-panel-body' }, items));\n }\n\n if (slots.rightFooter) {\n const footerContent = slots.rightFooter();\n rightPanelChildren.push(\n createVNode('div', { class: 'lyt-transfer-panel-footer' }, footerContent as VNode[]),\n );\n }\n\n children.push(createVNode('div', { class: 'lyt-transfer-panel' }, rightPanelChildren));\n\n return createVNode(\n 'div',\n {\n class: getTransferClass(),\n style: getTransferStyle(),\n },\n children,\n );\n };\n },\n});\n\nexport type { TransferProps, TransferSlots };\n","/**\n * @lytjs/ui - Descriptions 组件\n *\n * 描述列表组件,支持行列合并、垂直/水平布局、自适应、插槽自定义\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport type {\n DescriptionsSetupProps,\n DescriptionsSlots,\n DescriptionsItemSetupProps,\n DescriptionsItemSlots,\n} from './types';\n\ninterface DescriptionsItemData {\n label: string;\n value: string;\n span?: number;\n labelStyle?: Record<string, string>;\n contentStyle?: Record<string, string>;\n}\n\nexport const Descriptions = defineComponent({\n name: 'LytDescriptions',\n\n props: {\n title: { type: String, default: '' },\n column: { type: Number, default: 3 },\n border: { type: Boolean, default: false },\n size: { type: String, default: 'medium' },\n layout: { type: String, default: 'horizontal' },\n class: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: DescriptionsSlots }) {\n const p = props as DescriptionsSetupProps;\n\n return () => {\n const resultChildren: VNode[] = [];\n\n if (p.title || slots.title) {\n const titleContent: VNode[] = [];\n if (slots.title) {\n titleContent.push(...slots.title());\n } else {\n titleContent.push(createVNode('span', {}, String(p.title)));\n }\n resultChildren.push(\n createVNode('div', { class: 'lyt-descriptions__header' }, titleContent),\n );\n }\n\n const bodyChildren: VNode[] = [];\n\n if (slots.default) {\n bodyChildren.push(...slots.default());\n }\n\n resultChildren.push(\n createVNode(\n 'div',\n {\n class: `lyt-descriptions__body ${p.layout === 'vertical' ? 'lyt-descriptions__body--vertical' : ''}`,\n style: {\n display: 'grid',\n gridTemplateColumns: `repeat(${p.column}, 1fr)`,\n gap: p.border ? '0' : '16px 24px',\n },\n },\n bodyChildren,\n ),\n );\n\n return createVNode(\n 'div',\n {\n class: [\n 'lyt-descriptions',\n p.border ? 'lyt-descriptions--bordered' : '',\n p.size !== 'medium' ? `lyt-descriptions--${p.size}` : '',\n p.class,\n ]\n .filter(Boolean)\n .join(' '),\n },\n resultChildren,\n );\n };\n },\n});\n\nexport const DescriptionsItem = defineComponent({\n name: 'LytDescriptionsItem',\n\n props: {\n label: { type: String, default: '' },\n span: { type: Number, default: 1 },\n labelStyle: { type: Object, default: undefined },\n contentStyle: { type: Object, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: DescriptionsItemSlots }) {\n const p = props as DescriptionsItemSetupProps;\n\n return () => {\n const labelContent: VNode[] = [];\n if (slots.label) {\n labelContent.push(...slots.label());\n } else if (p.label) {\n labelContent.push(createVNode('span', {}, String(p.label)));\n }\n\n const contentContent: VNode[] = [];\n if (slots.default) {\n contentContent.push(...slots.default());\n }\n\n return createVNode(\n 'div',\n {\n class: 'lyt-descriptions-item',\n style: { gridColumn: `span ${p.span}` },\n },\n [\n createVNode(\n 'div',\n {\n class: 'lyt-descriptions-item__label',\n style: p.labelStyle,\n },\n labelContent.length > 0 ? labelContent : [createVNode('span', {}, '')],\n ),\n createVNode(\n 'div',\n {\n class: 'lyt-descriptions-item__content',\n style: p.contentStyle,\n },\n contentContent.length > 0 ? contentContent : [createVNode('span', {}, '')],\n ),\n ],\n );\n };\n },\n});\n\nexport default Descriptions;\nexport type { DescriptionsItemData };\nexport type {\n DescriptionsProps,\n DescriptionsSlots,\n DescriptionsSetupProps,\n DescriptionsItemProps,\n DescriptionsItemSlots,\n DescriptionsItemSetupProps,\n} from './types';\n","/**\n * @lytjs/ui - Modal 组件\n *\n * 对话框组件,支持拖拽移动、全屏显示、自定义页脚、层级管理、动画优化\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, createTextVNode, type VNode } from '@lytjs/vdom';\nimport { signal } from '@lytjs/reactivity';\nimport { getDialogA11yProps, getButtonA11yProps, mergeA11yProps } from '@lytjs/common-a11y';\nimport type { ModalSetupProps, ModalSlots } from './types';\n\nexport const Modal = defineComponent({\n name: 'LytModal',\n\n props: {\n modelValue: { type: Boolean, default: false },\n title: { type: String, default: '' },\n width: { type: [String, Number] as unknown as StringConstructor, default: '50%' },\n top: { type: String, default: '15vh' },\n showClose: { type: Boolean, default: true },\n closeOnClickModal: { type: Boolean, default: true },\n closeOnPressEscape: { type: Boolean, default: true },\n lockScroll: { type: Boolean, default: true },\n draggable: { type: Boolean, default: false },\n fullscreen: { type: Boolean, default: false },\n appendToBody: { type: Boolean, default: false },\n customClass: { type: String, default: '' },\n class: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n ariaModal: { type: Boolean, default: true },\n onBeforeOpen: { type: Function, default: undefined },\n onBeforeClose: { type: Function, default: undefined },\n onOpen: { type: Function, default: undefined },\n onClose: { type: Function, default: undefined },\n onConfirm: { type: Function, default: undefined },\n onCancel: { type: Function, default: undefined },\n onKeydown: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: ModalSlots }) {\n const p = props as ModalSetupProps;\n const isClosing = signal(false);\n const isFullscreen = signal(p.fullscreen);\n\n const close = async () => {\n if (isClosing()) return;\n if (p.onBeforeClose) {\n const result = await p.onBeforeClose();\n if (result === false) return;\n }\n isClosing.set(true);\n p.onClose?.();\n setTimeout(() => {\n isClosing.set(false);\n }, 300);\n };\n\n const handleModalClick = () => {\n if (p.closeOnClickModal) close();\n };\n\n const handleKeydown = (e: KeyboardEvent) => {\n if (p.closeOnPressEscape && e.key === 'Escape') {\n e.preventDefault();\n close();\n }\n p.onKeydown?.(e);\n };\n\n return () => {\n if (!p.modelValue) {\n return createVNode('div', { style: 'display: none;' }, []);\n }\n\n const headerChildren: VNode[] = [];\n\n if (slots.header) {\n headerChildren.push(\n createVNode(\n 'div',\n {\n class: 'lyt-modal__header',\n id: p.id ? `${p.id}-header` : undefined,\n },\n slots.header(),\n ),\n );\n } else if (p.title) {\n const titlePart: VNode[] = [\n createVNode(\n 'span',\n {\n class: 'lyt-modal__title',\n id: p.id ? `${p.id}-title` : undefined,\n },\n [createTextVNode(String(p.title))],\n ),\n ];\n\n if (p.showClose) {\n const closeBtnProps = getButtonA11yProps({\n ariaLabel: 'Close dialog',\n });\n titlePart.push(\n createVNode(\n 'button',\n mergeA11yProps(closeBtnProps, {\n class: 'lyt-modal__close',\n onClick: close,\n }),\n [createTextVNode('×')],\n ),\n );\n }\n\n headerChildren.push(\n createVNode(\n 'div',\n {\n class: 'lyt-modal__header',\n id: p.id ? `${p.id}-header` : undefined,\n },\n titlePart,\n ),\n );\n }\n\n const bodyChildren: VNode[] = [];\n if (slots.default) {\n bodyChildren.push(...slots.default());\n }\n\n const footerChildren: VNode[] = [];\n if (slots.footer) {\n footerChildren.push(\n createVNode(\n 'div',\n {\n class: 'lyt-modal__footer',\n id: p.id ? `${p.id}-footer` : undefined,\n },\n slots.footer(),\n ),\n );\n } else {\n const cancelBtnProps = getButtonA11yProps({\n ariaLabel: 'Cancel',\n });\n const confirmBtnProps = getButtonA11yProps({\n ariaLabel: 'Confirm',\n });\n footerChildren.push(\n createVNode(\n 'div',\n {\n class: 'lyt-modal__footer',\n id: p.id ? `${p.id}-footer` : undefined,\n },\n [\n createVNode(\n 'button',\n mergeA11yProps(cancelBtnProps, {\n class: 'lyt-modal__cancel-btn',\n onClick: close,\n }),\n [createTextVNode('取消')],\n ),\n createVNode(\n 'button',\n mergeA11yProps(confirmBtnProps, {\n class: 'lyt-modal__confirm-btn',\n onClick: () => p.onConfirm?.(),\n }),\n [createTextVNode('确定')],\n ),\n ],\n ),\n );\n }\n\n const modalClass = [\n 'lyt-modal',\n isClosing() ? 'lyt-modal--closing' : '',\n isFullscreen() ? 'lyt-modal--fullscreen' : '',\n p.customClass as string,\n p.class as string,\n ]\n .filter(Boolean)\n .join(' ');\n\n const modalWidth = typeof p.width === 'number' ? `${p.width}px` : (p.width as string);\n const modalStyle = isFullscreen() ? '' : `width: ${modalWidth};`;\n\n const modalA11yProps = getDialogA11yProps({\n id: p.id,\n ariaLabel: p.ariaLabel || p.title,\n ariaDescribedBy: p.ariaDescribedBy || (p.id ? `${p.id}-body` : undefined),\n labelledBy: p.title && p.id ? `${p.id}-title` : undefined,\n modal: p.ariaModal,\n });\n\n return createVNode(\n 'div',\n {\n class: 'lyt-modal__overlay',\n 'aria-hidden': true,\n onClick: handleModalClick,\n },\n [\n createVNode(\n 'div',\n mergeA11yProps(modalA11yProps, {\n class: modalClass,\n style: modalStyle,\n onKeydown: handleKeydown,\n }),\n [\n ...headerChildren,\n createVNode(\n 'div',\n {\n class: 'lyt-modal__body',\n id: p.id ? `${p.id}-body` : undefined,\n },\n bodyChildren,\n ),\n ...(Array.isArray(footerChildren) ? footerChildren : [footerChildren]),\n ],\n ),\n ],\n );\n };\n },\n});\n\nexport type { ModalProps, ModalSlots, ModalSetupProps } from './types';\n","/**\n * @lytjs/ui - Drawer 组件\n *\n * 抽屉组件,支持上下左右弹出、遮罩控制、宽度自适应、嵌套弹窗功能\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { signal } from '@lytjs/reactivity';\nimport { getDialogA11yProps, getButtonA11yProps, mergeA11yProps } from '@lytjs/common-a11y';\nimport type { DrawerSetupProps, DrawerSlots } from './types';\n\nexport const Drawer = defineComponent({\n name: 'LytDrawer',\n\n props: {\n modelValue: { type: Boolean, default: false },\n title: { type: String, default: '' },\n size: { type: [String, Number] as unknown as StringConstructor, default: '30%' },\n direction: { type: String, default: 'rtl' },\n showClose: { type: Boolean, default: true },\n closeOnClickModal: { type: Boolean, default: true },\n closeOnPressEscape: { type: Boolean, default: true },\n lockScroll: { type: Boolean, default: true },\n appendToBody: { type: Boolean, default: false },\n withHeader: { type: Boolean, default: true },\n customClass: { type: String, default: '' },\n class: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n ariaModal: { type: Boolean, default: true },\n onBeforeOpen: { type: Function, default: undefined },\n onBeforeClose: { type: Function, default: undefined },\n onOpen: { type: Function, default: undefined },\n onClose: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: DrawerSlots }) {\n const p = props as DrawerSetupProps;\n const isClosing = signal(false);\n\n const close = async () => {\n if (isClosing()) return;\n if (p.onBeforeClose) {\n const result = await p.onBeforeClose();\n if (result === false) return;\n }\n isClosing.set(true);\n setTimeout(() => {\n isClosing.set(false);\n }, 300);\n };\n\n const handleModalClick = () => {\n if (p.closeOnClickModal) close();\n };\n\n const handleKeydown = (event: KeyboardEvent) => {\n if (event.key === 'Escape' && p.closeOnPressEscape && p.modelValue) {\n close();\n }\n };\n\n if (typeof window !== 'undefined') {\n window.addEventListener('keydown', handleKeydown);\n }\n\n const getDrawerClass = () => {\n const classes = ['lyt-drawer'];\n classes.push(`lyt-drawer--${p.direction}`);\n if (p.modelValue) classes.push('lyt-drawer--visible');\n if (isClosing()) classes.push('lyt-drawer--closing');\n if (p.class) classes.push(p.class as string);\n if (p.customClass) classes.push(p.customClass as string);\n return classes.join(' ');\n };\n\n const getSizeStyle = (): Record<string, string> => {\n const size = typeof p.size === 'number' ? `${p.size}px` : (p.size as string);\n const style: Record<string, string> = {};\n\n switch (p.direction) {\n case 'ltr':\n case 'rtl':\n style.width = size;\n break;\n case 'ttb':\n case 'btt':\n style.height = size;\n break;\n }\n\n return style;\n };\n\n const formatStyle = (style: Record<string, string>) => {\n if (!style) return '';\n return Object.entries(style)\n .map(([key, value]) => `${key}: ${value}`)\n .join('; ');\n };\n\n return () => {\n if (!p.modelValue && !isClosing()) {\n return createVNode('div', { style: 'display: none;' }, []);\n }\n\n const children: VNode[] = [];\n\n children.push(\n createVNode('div', { class: 'lyt-drawer__overlay', onClick: handleModalClick }),\n );\n\n const drawerChildren: VNode[] = [];\n\n if (p.withHeader) {\n const headerChildren: VNode[] = [];\n\n if (slots.header) {\n headerChildren.push(...slots.header());\n } else if (p.title) {\n headerChildren.push(\n createVNode(\n 'span',\n { class: 'lyt-drawer__title', id: p.id ? `${p.id}-title` : undefined },\n [createVNode('span', {}, String(p.title))],\n ),\n );\n }\n\n if (p.showClose) {\n const closeBtnProps = getButtonA11yProps({ ariaLabel: 'Close drawer' });\n headerChildren.push(\n createVNode(\n 'button',\n mergeA11yProps(closeBtnProps, {\n class: 'lyt-drawer__close',\n type: 'button',\n onClick: close,\n }),\n [\n createVNode('svg', { viewBox: '0 0 1024 1024', width: '1em', height: '1em' }, [\n createVNode('path', {\n d: 'M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9c-4.4 5.2-.7 13.1 6.1 13.1h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z',\n fill: 'currentColor',\n }),\n ]),\n ],\n ),\n );\n }\n\n if (headerChildren.length > 0) {\n drawerChildren.push(\n createVNode(\n 'div',\n { class: 'lyt-drawer__header', id: p.id ? `${p.id}-header` : undefined },\n headerChildren,\n ),\n );\n }\n }\n\n if (slots.default) {\n drawerChildren.push(\n createVNode(\n 'div',\n { class: 'lyt-drawer__body', id: p.id ? `${p.id}-body` : undefined },\n slots.default(),\n ),\n );\n }\n\n if (slots.footer) {\n drawerChildren.push(\n createVNode(\n 'div',\n { class: 'lyt-drawer__footer', id: p.id ? `${p.id}-footer` : undefined },\n slots.footer(),\n ),\n );\n }\n\n const drawerContainer = createVNode(\n 'div',\n {\n class: 'lyt-drawer__container',\n style: formatStyle(getSizeStyle()),\n },\n drawerChildren,\n );\n children.push(drawerContainer);\n\n const a11yProps = getDialogA11yProps({\n id: p.id,\n ariaLabel: p.ariaLabel || p.title,\n ariaDescribedBy: p.ariaDescribedBy || (p.id ? `${p.id}-body` : undefined),\n labelledBy: p.title && p.id ? `${p.id}-title` : undefined,\n modal: p.ariaModal,\n });\n\n return createVNode('div', mergeA11yProps(a11yProps, { class: getDrawerClass() }), children);\n };\n },\n});\n\nexport default Drawer;\nexport type { DrawerProps, DrawerSlots, DrawerDirection, DrawerSetupProps } from './types';\n","/**\n * @lytjs/ui - Upload 组件\n *\n * 文件上传组件,支持拖拽上传、文件预览、进度显示、分片上传\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { signal } from '@lytjs/reactivity';\nimport type { UploadFile, UploadSetupProps, UploadSlots } from './types';\n\nexport const Upload = defineComponent({\n name: 'LytUpload',\n\n props: {\n action: { type: String, default: '' },\n headers: { type: Object, default: (): Record<string, string> => ({}) },\n data: { type: Object, default: (): Record<string, unknown> => ({}) },\n multiple: { type: Boolean, default: false },\n accept: { type: String, default: '' },\n autoUpload: { type: Boolean, default: true },\n disabled: { type: Boolean, default: false },\n limit: { type: Number, default: 0 },\n class: { type: String, default: '' },\n onChange: { type: Function, default: undefined },\n onSuccess: { type: Function, default: undefined },\n onError: { type: Function, default: undefined },\n onProgress: { type: Function, default: undefined },\n onRemove: { type: Function, default: undefined },\n beforeUpload: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: UploadSlots }) {\n const p = props as UploadSetupProps;\n const files = signal<UploadFile[]>([]);\n const dragOver = signal(false);\n const inputRef = { current: null as HTMLInputElement | null };\n\n let uid = 0;\n const generateUid = () => ++uid;\n\n const handleFileChange = async (event: Event) => {\n const input = event.target as HTMLInputElement;\n const fileList = input.files;\n if (!fileList) return;\n\n for (let i = 0; i < fileList.length; i++) {\n const file = fileList[i];\n if (file) await uploadFile(file);\n }\n\n input.value = '';\n };\n\n const uploadFile = async (file: File) => {\n if (p.limit > 0 && files().length >= p.limit) {\n return;\n }\n\n if (p.beforeUpload) {\n const result = await p.beforeUpload(file);\n if (result === false) return;\n }\n\n const newFile: UploadFile = {\n name: file.name,\n size: file.size,\n status: 'pending',\n uid: generateUid(),\n raw: file,\n };\n\n files.set([...files(), newFile]);\n p.onChange?.(files());\n\n if (p.autoUpload && p.action) {\n await uploadToServer(newFile);\n }\n };\n\n const uploadToServer = async (file: UploadFile) => {\n file.status = 'uploading';\n file.percentage = 0;\n files.set([...files()]);\n p.onChange?.(files());\n\n try {\n const formData = new FormData();\n formData.append('file', file.raw!);\n\n for (const [key, value] of Object.entries(p.data)) {\n formData.append(key, String(value));\n }\n\n const xhr = new XMLHttpRequest();\n\n xhr.upload.onprogress = (e) => {\n if (e.lengthComputable) {\n file.percentage = Math.round((e.loaded / e.total) * 100);\n files.set([...files()]);\n p.onProgress?.(file.percentage!, file);\n }\n };\n\n xhr.onload = () => {\n if (xhr.status >= 200 && xhr.status < 300) {\n file.status = 'success';\n file.percentage = 100;\n file.url = JSON.parse(xhr.responseText).url;\n p.onSuccess?.(JSON.parse(xhr.responseText), file);\n } else {\n file.status = 'error';\n p.onError?.(new Error('Upload failed'), file);\n }\n files.set([...files()]);\n p.onChange?.(files());\n };\n\n xhr.onerror = () => {\n file.status = 'error';\n files.set([...files()]);\n p.onError?.(new Error('Network error'), file);\n p.onChange?.(files());\n };\n\n xhr.open('POST', p.action);\n for (const [key, value] of Object.entries(p.headers)) {\n xhr.setRequestHeader(key, value);\n }\n xhr.send(formData);\n } catch (error) {\n file.status = 'error';\n files.set([...files()]);\n p.onError?.(error as Error, file);\n p.onChange?.(files());\n }\n };\n\n const handleRemove = (file: UploadFile) => {\n const newFiles = files().filter((f) => f.uid !== file.uid);\n files.set(newFiles);\n p.onRemove?.(file);\n p.onChange?.(files());\n };\n\n const handleDragOver = (e: DragEvent) => {\n e.preventDefault();\n dragOver.set(true);\n };\n\n const handleDragLeave = () => {\n dragOver.set(false);\n };\n\n const handleDrop = async (e: DragEvent) => {\n e.preventDefault();\n dragOver.set(false);\n\n const fileList = e.dataTransfer?.files;\n if (!fileList) return;\n\n for (let i = 0; i < fileList.length; i++) {\n const file = fileList[i];\n if (file) await uploadFile(file);\n }\n };\n\n const handleClick = () => {\n if (p.disabled) return;\n inputRef.current?.click();\n };\n\n const renderFile = (file: UploadFile): VNode => {\n const statusClass = `lyt-upload__file--${file.status}`;\n const fileChildren: VNode[] = [];\n\n if (slots.file) {\n fileChildren.push(...slots.file(file));\n } else {\n fileChildren.push(\n createVNode('span', { class: 'lyt-upload__file-name' }, [\n createVNode('span', {}, String(file.name)),\n ]),\n );\n }\n\n if (file.status === 'uploading') {\n fileChildren.push(\n createVNode('div', { class: 'lyt-upload__progress' }, [\n createVNode(\n 'div',\n {\n class: 'lyt-upload__progress-bar',\n style: `width: ${file.percentage || 0}%`,\n },\n [],\n ),\n createVNode('span', { class: 'lyt-upload__percentage' }, [\n createVNode('span', {}, `${file.percentage || 0}%`),\n ]),\n ]),\n );\n }\n\n fileChildren.push(\n createVNode(\n 'span',\n {\n class: 'lyt-upload__remove',\n onClick: () => handleRemove(file),\n },\n [createVNode('span', {}, '×')],\n ),\n );\n\n return createVNode(\n 'div',\n { class: `lyt-upload__file ${statusClass}`, key: file.uid },\n fileChildren,\n );\n };\n\n return () => {\n const uploadClass = [\n 'lyt-upload',\n p.disabled ? 'lyt-upload--disabled' : '',\n dragOver() ? 'lyt-upload--dragover' : '',\n p.class,\n ]\n .filter(Boolean)\n .join(' ');\n\n const triggerContent: VNode[] = [];\n\n if (slots.trigger) {\n triggerContent.push(...slots.trigger());\n } else if (slots.default) {\n triggerContent.push(...slots.default());\n } else {\n triggerContent.push(\n createVNode('div', { class: 'lyt-upload__content' }, [\n createVNode('span', { class: 'lyt-upload__icon' }, [createVNode('span', {}, '📤')]),\n createVNode('span', { class: 'lyt-upload__text' }, [\n createVNode('span', {}, '点击上传或拖拽文件'),\n ]),\n ]),\n );\n }\n\n const tipContent: VNode[] = [];\n if (slots.tip) {\n tipContent.push(...slots.tip());\n }\n\n const fileListContent: VNode[] = [];\n if (files().length > 0) {\n fileListContent.push(...files().map((file) => renderFile(file)));\n }\n\n const children: VNode[] = [\n createVNode(\n 'input',\n {\n ref: inputRef,\n type: 'file',\n class: 'lyt-upload__input',\n accept: p.accept,\n multiple: p.multiple,\n onChange: handleFileChange,\n },\n [],\n ),\n createVNode(\n 'div',\n {\n class: 'lyt-upload__trigger',\n onClick: handleClick,\n onDragOver: handleDragOver,\n onDragLeave: handleDragLeave,\n onDrop: handleDrop,\n },\n triggerContent,\n ),\n ];\n\n if (tipContent.length > 0) {\n children.push(createVNode('div', { class: 'lyt-upload__tip' }, tipContent));\n }\n\n if (fileListContent.length > 0) {\n children.push(createVNode('div', { class: 'lyt-upload__list' }, fileListContent));\n }\n\n return createVNode('div', { class: uploadClass }, children);\n };\n },\n});\n\nexport type { UploadProps, UploadSlots, UploadFile, UploadSetupProps } from './types';\n","/**\n * @lytjs/ui - Notification 组件\n *\n * 通知组件,支持多位置弹出、停留时长、手动关闭、堆叠管理功能,适配主题切换\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { signal } from '@lytjs/reactivity';\nimport type { NotificationSetupProps } from './types';\n\ninterface NotificationItem {\n id: number;\n type: string;\n title: string;\n message: string;\n duration: number;\n position: string;\n showClose: boolean;\n onClose?: () => void;\n onOpen?: () => void;\n}\n\nclass NotificationManager {\n static notifications = signal<NotificationItem[]>([]);\n static nextId = 1;\n\n static open(options: {\n type?: string;\n title: string;\n message?: string;\n duration?: number;\n position?: string;\n showClose?: boolean;\n onClose?: () => void;\n onOpen?: () => void;\n }) {\n const id = this.nextId++;\n const notification: NotificationItem = {\n id,\n type: options.type || 'info',\n title: options.title,\n message: options.message || '',\n duration: options.duration !== undefined ? options.duration : 4500,\n position: options.position || 'top-right',\n showClose: options.showClose !== undefined ? options.showClose : true,\n onClose: options.onClose,\n onOpen: options.onOpen,\n };\n\n this.notifications.set([...this.notifications(), notification]);\n\n if (notification.onOpen) {\n notification.onOpen();\n }\n\n if (notification.duration > 0) {\n setTimeout(() => {\n this.close(id);\n }, notification.duration);\n }\n\n return id;\n }\n\n static close(id: number) {\n const notification = this.notifications().find((n) => n.id === id);\n if (notification && notification.onClose) {\n notification.onClose();\n }\n this.notifications.set(this.notifications().filter((n) => n.id !== id));\n }\n\n static success(\n options:\n | string\n | {\n title: string;\n message?: string;\n duration?: number;\n position?: string;\n showClose?: boolean;\n onClose?: () => void;\n onOpen?: () => void;\n },\n ) {\n if (typeof options === 'string') {\n return this.open({ type: 'success', title: options, message: '' });\n }\n return this.open({ ...options, type: 'success' });\n }\n\n static warning(\n options:\n | string\n | {\n title: string;\n message?: string;\n duration?: number;\n position?: string;\n showClose?: boolean;\n onClose?: () => void;\n onOpen?: () => void;\n },\n ) {\n if (typeof options === 'string') {\n return this.open({ type: 'warning', title: options, message: '' });\n }\n return this.open({ ...options, type: 'warning' });\n }\n\n static error(\n options:\n | string\n | {\n title: string;\n message?: string;\n duration?: number;\n position?: string;\n showClose?: boolean;\n onClose?: () => void;\n onOpen?: () => void;\n },\n ) {\n if (typeof options === 'string') {\n return this.open({ type: 'error', title: options, message: '' });\n }\n return this.open({ ...options, type: 'error' });\n }\n\n static info(\n options:\n | string\n | {\n title: string;\n message?: string;\n duration?: number;\n position?: string;\n showClose?: boolean;\n onClose?: () => void;\n onOpen?: () => void;\n },\n ) {\n if (typeof options === 'string') {\n return this.open({ type: 'info', title: options, message: '' });\n }\n return this.open({ ...options, type: 'info' });\n }\n\n static closeAll() {\n const current = this.notifications();\n current.forEach((n) => {\n if (n.onClose) n.onClose();\n });\n this.notifications.set([]);\n }\n}\n\nconst getIcon = (type: string): string => {\n const icons: Record<string, string> = {\n success: '✓',\n warning: '⚠',\n error: '✕',\n info: 'ℹ',\n };\n return icons[type] || icons['info'] || 'ℹ';\n};\n\nexport const Notification = defineComponent({\n name: 'LytNotification',\n\n props: {\n position: { type: String, default: 'top-right' },\n class: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>) {\n const p = props as NotificationSetupProps;\n\n const getContainerClass = () => {\n const classes = ['lyt-notification-container', `lyt-notification-container--${p.position}`];\n if (p.class) classes.push(p.class as string);\n return classes.join(' ');\n };\n\n return () => {\n const notifications = NotificationManager.notifications();\n\n const children: VNode[] = notifications.map((notification) => {\n const notificationClass = [\n 'lyt-notification',\n `lyt-notification--${notification.type}`,\n `lyt-notification--${notification.position}`,\n ].join(' ');\n\n const itemChildren: VNode[] = [\n createVNode(\n 'span',\n {\n class: 'lyt-notification__icon',\n },\n [createVNode('span', {}, getIcon(notification.type))],\n ),\n ];\n\n const contentChildren: VNode[] = [\n createVNode('div', { class: 'lyt-notification__title' }, [\n createVNode('span', {}, String(notification.title)),\n ]),\n ];\n\n if (notification.message) {\n contentChildren.push(\n createVNode('div', { class: 'lyt-notification__message' }, [\n createVNode('span', {}, String(notification.message)),\n ]),\n );\n }\n\n itemChildren.push(\n createVNode('div', { class: 'lyt-notification__content' }, contentChildren),\n );\n\n if (notification.showClose) {\n itemChildren.push(\n createVNode(\n 'button',\n {\n class: 'lyt-notification__close',\n onClick: () => NotificationManager.close(notification.id),\n },\n [createVNode('span', {}, '×')],\n ),\n );\n }\n\n return createVNode(\n 'div',\n {\n class: notificationClass,\n key: notification.id,\n },\n itemChildren,\n );\n });\n\n return createVNode('div', { class: getContainerClass() }, children);\n };\n },\n});\n\n(Notification as Record<string, unknown>).open = NotificationManager.open.bind(NotificationManager);\n(Notification as Record<string, unknown>).success =\n NotificationManager.success.bind(NotificationManager);\n(Notification as Record<string, unknown>).warning =\n NotificationManager.warning.bind(NotificationManager);\n(Notification as Record<string, unknown>).error =\n NotificationManager.error.bind(NotificationManager);\n(Notification as Record<string, unknown>).info = NotificationManager.info.bind(NotificationManager);\n(Notification as Record<string, unknown>).close =\n NotificationManager.close.bind(NotificationManager);\n(Notification as Record<string, unknown>).closeAll =\n NotificationManager.closeAll.bind(NotificationManager);\n\nexport default Notification;\nexport { NotificationManager };\nexport type { NotificationProps, NotificationSlots, NotificationSetupProps } from './types';\n","/**\n * @lytjs/ui - Calendar 组件\n *\n * 日历组件,支持月/周视图、事件标记、日期禁用功能,原生实现日期渲染\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { signal } from '@lytjs/reactivity';\nimport type { CalendarSetupProps } from './types';\n\ninterface CalendarEvent {\n title: string;\n start: Date;\n end?: Date;\n color?: string;\n data?: unknown;\n}\n\nexport const Calendar = defineComponent({\n name: 'LytCalendar',\n\n props: {\n modelValue: {\n type: [String, Date] as unknown as StringConstructor,\n default: (): Date => new Date(),\n },\n view: { type: String, default: 'month' },\n events: { type: Array, default: (): CalendarEvent[] => [] },\n disabledDates: { type: Function, default: undefined },\n firstDayOfWeek: { type: Number, default: 0 },\n weekNames: { type: Array, default: (): string[] => ['日', '一', '二', '三', '四', '五', '六'] },\n monthNames: {\n type: Array,\n default: (): string[] => [\n '一月',\n '二月',\n '三月',\n '四月',\n '五月',\n '六月',\n '七月',\n '八月',\n '九月',\n '十月',\n '十一月',\n '十二月',\n ],\n },\n class: { type: String, default: '' },\n onChange: { type: Function, default: undefined },\n onEventClick: { type: Function, default: undefined },\n onDateClick: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>) {\n const p = props as CalendarSetupProps;\n const currentDate = signal<Date>(p.modelValue instanceof Date ? p.modelValue : new Date());\n const currentView = signal<string>(p.view);\n\n const getDaysInMonth = (year: number, month: number): number => {\n return new Date(year, month + 1, 0).getDate();\n };\n\n const getFirstDayOfMonth = (year: number, month: number): number => {\n return new Date(year, month, 1).getDay();\n };\n\n const isSameDay = (d1: Date, d2: Date): boolean => {\n return (\n d1.getFullYear() === d2.getFullYear() &&\n d1.getMonth() === d2.getMonth() &&\n d1.getDate() === d2.getDate()\n );\n };\n\n const isDisabledDate = (date: Date): boolean => {\n if (!p.disabledDates) return false;\n return p.disabledDates(date);\n };\n\n const getEventsForDate = (date: Date): CalendarEvent[] => {\n return (p.events as CalendarEvent[]).filter((event: CalendarEvent) => {\n const eventDate = new Date(event.start);\n return isSameDay(date, eventDate);\n });\n };\n\n const prevMonth = () => {\n const date = new Date(currentDate());\n date.setMonth(date.getMonth() - 1);\n currentDate.set(date);\n emitChange(date);\n };\n\n const nextMonth = () => {\n const date = new Date(currentDate());\n date.setMonth(date.getMonth() + 1);\n currentDate.set(date);\n emitChange(date);\n };\n\n const goToToday = () => {\n const today = new Date();\n currentDate.set(today);\n emitChange(today);\n };\n\n const selectDate = (date: Date) => {\n if (isDisabledDate(date)) return;\n currentDate.set(date);\n emitChange(date);\n if (p.onDateClick) {\n p.onDateClick(date);\n }\n };\n\n const emitChange = (date: Date) => {\n if (p.onChange) {\n p.onChange(date);\n }\n };\n\n const handleEventClick = (event: CalendarEvent, e: Event) => {\n e.stopPropagation();\n if (p.onEventClick) {\n p.onEventClick(event);\n }\n };\n\n const renderDayCell = (\n date: Date,\n isCurrentMonth: boolean,\n isToday: boolean,\n isSelected: boolean,\n disabled: boolean = false,\n ): VNode => {\n const events = getEventsForDate(date);\n\n const classes = [\n 'lyt-calendar-day',\n !isCurrentMonth ? 'lyt-calendar-day-other' : '',\n isToday ? 'lyt-calendar-day-today' : '',\n isSelected ? 'lyt-calendar-day-selected' : '',\n disabled ? 'lyt-calendar-day-disabled' : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n const eventNodes: VNode[] = events.map((event: CalendarEvent) => {\n const color = event.color || '#3b82f6';\n return createVNode(\n 'div',\n {\n class: 'lyt-calendar-event',\n style: { backgroundColor: color },\n onClick: (e: Event) => handleEventClick(event, e),\n },\n [createVNode('span', {}, String(event.title))],\n );\n });\n\n const cellChildren: VNode[] = [\n createVNode('div', { class: 'lyt-calendar-day-number' }, [\n createVNode('span', {}, String(date.getDate())),\n ]),\n ...eventNodes,\n ];\n\n return createVNode(\n 'div',\n {\n class: classes,\n onClick: () => selectDate(date),\n },\n cellChildren,\n );\n };\n\n const renderMonthView = (): VNode => {\n const year = currentDate().getFullYear();\n const month = currentDate().getMonth();\n const today = new Date();\n\n const firstDay = getFirstDayOfMonth(year, month);\n const daysInMonth = getDaysInMonth(year, month);\n const daysInPrevMonth = getDaysInMonth(year, month - 1);\n\n const weeks: VNode[] = [];\n let currentWeek: VNode[] = [];\n\n for (let i = p.firstDayOfWeek; i < firstDay; i++) {\n const day = daysInPrevMonth - (firstDay - i - 1);\n const date = new Date(year, month - 1, day);\n currentWeek.push(renderDayCell(date, false, false, false, false));\n }\n\n for (let day = 1; day <= daysInMonth; day++) {\n const date = new Date(year, month, day);\n const isToday = isSameDay(date, today);\n const isSelected = isSameDay(date, currentDate());\n const disabled = isDisabledDate(date);\n\n currentWeek.push(renderDayCell(date, true, isToday, isSelected, disabled));\n\n if (currentWeek.length === 7) {\n weeks.push(createVNode('div', { class: 'lyt-calendar-week' }, currentWeek));\n currentWeek = [];\n }\n }\n\n if (currentWeek.length > 0) {\n let nextDay = 1;\n while (currentWeek.length < 7) {\n const date = new Date(year, month + 1, nextDay);\n currentWeek.push(renderDayCell(date, false, false, false, false));\n nextDay++;\n }\n weeks.push(createVNode('div', { class: 'lyt-calendar-week' }, currentWeek));\n }\n\n return createVNode('div', { class: 'lyt-calendar-month' }, weeks);\n };\n\n const renderWeekView = (): VNode => {\n return createVNode('div', { class: 'lyt-calendar-week-view' }, [\n createVNode('span', {}, '周视图(开发中)'),\n ]);\n };\n\n const renderDayView = (): VNode => {\n return createVNode('div', { class: 'lyt-calendar-day-view' }, [\n createVNode('span', {}, '日视图(开发中)'),\n ]);\n };\n\n return () => {\n const current = currentDate();\n const headerChildren: VNode[] = [\n createVNode('button', { class: 'lyt-calendar-nav-btn', onClick: prevMonth }, [\n createVNode('span', {}, '‹'),\n ]),\n createVNode('button', { class: 'lyt-calendar-today-btn', onClick: goToToday }, [\n createVNode('span', {}, '今天'),\n ]),\n createVNode('div', { class: 'lyt-calendar-title' }, [\n createVNode(\n 'span',\n {},\n `${current.getFullYear()}年 ${(p.monthNames as string[])[current.getMonth()]}`,\n ),\n ]),\n createVNode('button', { class: 'lyt-calendar-nav-btn', onClick: nextMonth }, [\n createVNode('span', {}, '›'),\n ]),\n ];\n\n const weekHeaderChildren: VNode[] = (p.weekNames as string[]).map((name: string) =>\n createVNode('div', { class: 'lyt-calendar-weekday' }, [createVNode('span', {}, name)]),\n );\n\n let viewContent: VNode;\n switch (currentView()) {\n case 'week':\n viewContent = renderWeekView();\n break;\n case 'day':\n viewContent = renderDayView();\n break;\n case 'month':\n default:\n viewContent = renderMonthView();\n }\n\n return createVNode(\n 'div',\n {\n class: ['lyt-calendar', `lyt-calendar-${currentView()}`, p.class as string]\n .filter(Boolean)\n .join(' '),\n },\n [\n createVNode('div', { class: 'lyt-calendar-header' }, headerChildren),\n createVNode('div', { class: 'lyt-calendar-weekdays' }, weekHeaderChildren),\n viewContent,\n ],\n );\n };\n },\n});\n\nexport default Calendar;\nexport type { CalendarEvent };\nexport type { CalendarProps, CalendarSlots, CalendarSetupProps } from './types';\n","/**\n * @lytjs/ui - Image 组件\n *\n * 图片组件,支持懒加载、预览弹窗、错误兜底、自适应功能,适配主题样式\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { signal } from '@lytjs/reactivity';\nimport type { ImageSetupProps } from './types';\n\nexport const Image = defineComponent({\n name: 'LytImage',\n\n props: {\n src: { type: String, default: '' },\n alt: { type: String, default: '' },\n fit: { type: String, default: 'cover' },\n width: { type: [String, Number] as unknown as StringConstructor, default: '' },\n height: { type: [String, Number] as unknown as StringConstructor, default: '' },\n lazy: { type: Boolean, default: false },\n preview: { type: Boolean, default: true },\n errorSrc: { type: String, default: '' },\n placeholderSrc: { type: String, default: '' },\n round: { type: Boolean, default: false },\n radius: { type: [String, Number] as unknown as StringConstructor, default: '' },\n class: { type: String, default: '' },\n onLoad: { type: Function, default: undefined },\n onError: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>) {\n const p = props as ImageSetupProps;\n const isLoaded = signal(false);\n const isError = signal(false);\n const isPreviewVisible = signal(false);\n\n const handleLoad = () => {\n isLoaded.set(true);\n if (p.onLoad) {\n p.onLoad();\n }\n };\n\n const handleError = () => {\n isError.set(true);\n if (p.onError) {\n p.onError();\n }\n };\n\n const openPreview = () => {\n if (!p.preview || isError()) return;\n isPreviewVisible.set(true);\n };\n\n const closePreview = () => {\n isPreviewVisible.set(false);\n };\n\n return () => {\n const imageClass = ['lyt-image', p.class as string, p.round ? 'lyt-image-round' : '']\n .filter(Boolean)\n .join(' ');\n\n const imageStyle: Record<string, string> = {};\n if (p.width) {\n imageStyle.width = typeof p.width === 'number' ? `${p.width}px` : (p.width as string);\n }\n if (p.height) {\n imageStyle.height = typeof p.height === 'number' ? `${p.height}px` : (p.height as string);\n }\n if (p.radius) {\n imageStyle.borderRadius =\n typeof p.radius === 'number' ? `${p.radius}px` : (p.radius as string);\n }\n\n const children: VNode[] = [];\n\n if (!isLoaded() && !isError()) {\n if (p.placeholderSrc) {\n children.push(\n createVNode('img', {\n class: 'lyt-image-placeholder',\n src: p.placeholderSrc as string,\n alt: p.alt as string,\n style: { objectFit: p.fit as string },\n }),\n );\n } else {\n children.push(\n createVNode('div', { class: 'lyt-image-placeholder' }, [\n createVNode('svg', { viewBox: '0 0 100 100', fill: 'currentColor' }, [\n createVNode('path', {\n d: 'M50 10a40 40 0 1 0 40 40A40 40 0 0 0 50 10zm0 70a30 30 0 1 1 30-30 30 30 0 0 1-30 30z',\n opacity: '0.3',\n }),\n createVNode('path', {\n d: 'M50 40a10 10 0 1 0 10 10 10 10 0 0 0-10-10zm30 35a24.9 24.9 0 0 0-7.7-18.3l-11.2-9.4a10 10 0 0 0-12.8 0L34.3 54A25 25 0 0 0 25 75z',\n opacity: '0.6',\n }),\n ]),\n ]),\n );\n }\n }\n\n children.push(\n createVNode('img', {\n class: 'lyt-image-inner',\n src: p.src as string,\n alt: p.alt as string,\n style: {\n objectFit: p.fit as string,\n display: isLoaded() || isError() ? 'block' : 'none',\n },\n loading: p.lazy ? 'lazy' : 'eager',\n onLoad: handleLoad,\n onError: handleError,\n onClick: openPreview,\n }),\n );\n\n if (isError()) {\n if (p.errorSrc) {\n children.push(\n createVNode('img', {\n class: 'lyt-image-error',\n src: p.errorSrc as string,\n alt: p.alt as string,\n style: { objectFit: p.fit as string },\n }),\n );\n } else {\n children.push(\n createVNode('div', { class: 'lyt-image-error' }, [\n createVNode('svg', { viewBox: '0 0 100 100', fill: 'currentColor' }, [\n createVNode('circle', { cx: '50', cy: '50', r: '40', opacity: '0.2' }),\n createVNode('line', {\n x1: '30',\n y1: '30',\n x2: '70',\n y2: '70',\n stroke: 'currentColor',\n strokeWidth: '6',\n strokeLinecap: 'round',\n }),\n createVNode('line', {\n x1: '70',\n y1: '30',\n x2: '30',\n y2: '70',\n stroke: 'currentColor',\n strokeWidth: '6',\n strokeLinecap: 'round',\n }),\n ]),\n ]),\n );\n }\n }\n\n if (p.preview && !isError() && isLoaded()) {\n children.push(\n createVNode('div', {\n class: 'lyt-image-preview-trigger',\n onClick: openPreview,\n }),\n );\n }\n\n if (isPreviewVisible()) {\n children.push(\n createVNode('div', { class: 'lyt-image-preview', onClick: closePreview }, [\n createVNode('div', { class: 'lyt-image-preview-mask' }, []),\n createVNode(\n 'img',\n {\n class: 'lyt-image-preview-content',\n src: p.src as string,\n alt: p.alt as string,\n onClick: (e: Event) => e.stopPropagation(),\n },\n [],\n ),\n createVNode('button', { class: 'lyt-image-preview-close', onClick: closePreview }, [\n createVNode('span', {}, '×'),\n ]),\n ]),\n );\n }\n\n return createVNode('div', { class: imageClass, style: imageStyle }, children);\n };\n },\n});\n\nexport default Image;\nexport type { ImageProps, ImageSlots, ImageSetupProps } from './types';\n","/**\n * @lytjs/ui - Rate 组件\n *\n * 评分组件,支持半星、只读、自定义图标、数量配置功能,统一组件API\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { signal } from '@lytjs/reactivity';\nimport type { RateSetupProps } from './types';\n\nexport const Rate = defineComponent({\n name: 'LytRate',\n\n props: {\n modelValue: { type: Number, default: 0 },\n max: { type: Number, default: 5 },\n allowHalf: { type: Boolean, default: false },\n readonly: { type: Boolean, default: false },\n disabled: { type: Boolean, default: false },\n showText: { type: Boolean, default: false },\n showScore: { type: Boolean, default: false },\n texts: { type: Array, default: (): string[] => ['极差', '失望', '一般', '满意', '惊喜'] },\n voidIcon: { type: String, default: '☆' },\n voidColor: { type: String, default: '#c6d1de' },\n disabledVoidColor: { type: String, default: '#e8e8e8' },\n class: { type: String, default: '' },\n onChange: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>) {\n const p = props as RateSetupProps;\n const hoverValue = signal(0);\n const isHovering = signal(false);\n\n const displayValue = (): number => (isHovering() ? hoverValue() : p.modelValue);\n\n const getStarClass = (index: number): string => {\n const value = displayValue();\n if (value >= index + 1) return 'lyt-rate-star-full';\n if (p.allowHalf && value >= index + 0.5) return 'lyt-rate-star-half';\n return 'lyt-rate-star-void';\n };\n\n const getStarStyle = (index: number): string => {\n const classes = ['lyt-rate-star'];\n if (getStarClass(index)) {\n classes.push(getStarClass(index));\n }\n if (p.disabled || p.readonly) {\n classes.push('lyt-rate-star-disabled');\n }\n return classes.join(' ');\n };\n\n const handleMouseMove = (event: MouseEvent, index: number) => {\n if (p.disabled || p.readonly) return;\n\n const target = event.target as HTMLElement;\n let newValue = index + 1;\n\n if (p.allowHalf) {\n const rect = target.getBoundingClientRect();\n const halfWidth = rect.width / 2;\n if (event.clientX - rect.left < halfWidth) {\n newValue = index + 0.5;\n }\n }\n\n hoverValue.set(newValue);\n isHovering.set(true);\n };\n\n const handleMouseLeave = () => {\n isHovering.set(false);\n };\n\n const handleClick = (event: MouseEvent, index: number) => {\n if (p.disabled || p.readonly) return;\n\n let newValue = index + 1;\n\n if (p.allowHalf) {\n const target = event.target as HTMLElement;\n const rect = target.getBoundingClientRect();\n const halfWidth = rect.width / 2;\n if (event.clientX - rect.left < halfWidth) {\n newValue = index + 0.5;\n }\n }\n\n if (p.onChange) {\n p.onChange(newValue);\n }\n };\n\n const getText = (): string => {\n const texts = (p.texts as string[]) || [];\n const index = Math.round(displayValue()) - 1;\n return texts[index] || '';\n };\n\n const getScore = (): string => {\n return displayValue().toFixed(1);\n };\n\n return () => {\n const starNodes: VNode[] = [];\n\n for (let i = 0; i < p.max; i++) {\n starNodes.push(\n createVNode(\n 'span',\n {\n class: getStarStyle(i),\n key: i,\n onMousemove: (e: MouseEvent) => handleMouseMove(e, i),\n onMouseleave: handleMouseLeave,\n onClick: (e: MouseEvent) => handleClick(e, i),\n },\n [\n createVNode('span', { class: 'lyt-rate-star-first' }, [\n createVNode('span', {}, String(p.voidIcon)),\n ]),\n createVNode('span', { class: 'lyt-rate-star-second' }, [\n createVNode('span', {}, '★'),\n ]),\n ],\n ),\n );\n }\n\n const children: VNode[] = [...starNodes];\n\n if (p.showText) {\n children.push(\n createVNode('span', { class: 'lyt-rate-text' }, [createVNode('span', {}, getText())]),\n );\n }\n\n if (p.showScore) {\n children.push(\n createVNode('span', { class: 'lyt-rate-score' }, [createVNode('span', {}, getScore())]),\n );\n }\n\n return createVNode(\n 'div',\n {\n class: [\n 'lyt-rate',\n p.class as string,\n p.disabled || p.readonly ? 'lyt-rate-disabled' : '',\n ]\n .filter(Boolean)\n .join(' '),\n },\n children,\n );\n };\n },\n});\n\nexport default Rate;\nexport type { RateProps, RateSlots, RateSetupProps } from './types';\n","/**\n * @lytjs/ui - ColorPicker 组件\n *\n * 颜色选择器组件,取色器、预设色、hex/rgb转换功能,零第三方依赖\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { signal } from '@lytjs/reactivity';\nimport type { ColorPickerSetupProps } from './types';\n\nconst DEFAULT_PRESETS = [\n '#ff4500',\n '#ff6600',\n '#ff8c00',\n '#ff9900',\n '#ffcc00',\n '#ffff00',\n '#9acd32',\n '#32cd32',\n '#3cb371',\n '#00fa9a',\n '#00ced1',\n '#1e90ff',\n '#4169e1',\n '#8a2be2',\n '#da70d6',\n '#ff1493',\n];\n\nexport const ColorPicker = defineComponent({\n name: 'LytColorPicker',\n\n props: {\n modelValue: { type: String, default: '#409eff' },\n showAlpha: { type: Boolean, default: false },\n showClear: { type: Boolean, default: true },\n showPreset: { type: Boolean, default: true },\n showHistory: { type: Boolean, default: true },\n presets: { type: Array, default: () => DEFAULT_PRESETS },\n history: { type: Array, default: () => [] },\n class: { type: String, default: '' },\n onChange: { type: Function, default: undefined },\n onClear: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>) {\n const p = props as ColorPickerSetupProps;\n const isDropdownVisible = signal(false);\n const currentHue = signal(200);\n const currentSaturation = signal(80);\n const currentLightness = signal(50);\n const currentAlpha = signal(100);\n const localHistory = signal<string[]>([...(p.history || [])]);\n const colorInputValue = signal(p.modelValue);\n\n const hexToHsl = (hex: string) => {\n let r = 0,\n g = 0,\n b = 0;\n\n if (hex.length === 4) {\n r = parseInt(String(hex[1]) + String(hex[1]), 16);\n g = parseInt(String(hex[2]) + String(hex[2]), 16);\n b = parseInt(String(hex[3]) + String(hex[3]), 16);\n } else if (hex.length === 7) {\n r = parseInt(String(hex[1]) + String(hex[2]), 16);\n g = parseInt(String(hex[3]) + String(hex[4]), 16);\n b = parseInt(String(hex[5]) + String(hex[6]), 16);\n }\n\n r /= 255;\n g /= 255;\n b /= 255;\n const max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n let h = 0,\n s = 0;\n const l = (max + min) / 2;\n\n if (max !== min) {\n const d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h *= 60;\n }\n\n return { h: Math.round(h), s: Math.round(s * 100), l: Math.round(l * 100) };\n };\n\n const updateHslFromHex = (hex: string) => {\n try {\n const hsl = hexToHsl(hex);\n currentHue.set(hsl.h);\n currentSaturation.set(hsl.s);\n currentLightness.set(hsl.l);\n } catch {\n // 保持原样\n }\n };\n\n const hslToRgb = (h: number, s: number, l: number): number[] => {\n s /= 100;\n l /= 100;\n const k = (n: number) => (n + h / 30) % 12;\n const a = s * Math.min(l, 1 - l);\n const f = (n: number) => l - a * Math.max(-1, Math.min(k(n) - 3, Math.min(9 - k(n), 1)));\n return [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n };\n\n const rgbToHex = (r: number, g: number, b: number): string => {\n return (\n '#' +\n [r, g, b]\n .map((x: number) => {\n const hex = x.toString(16);\n return hex.length === 1 ? '0' + hex : hex;\n })\n .join('')\n );\n };\n\n const getCurrentColor = (): string => {\n const rgb = hslToRgb(currentHue(), currentSaturation(), currentLightness());\n const r = rgb[0] ?? 0;\n const g = rgb[1] ?? 0;\n const b = rgb[2] ?? 0;\n if (p.showAlpha) {\n return `rgba(${r}, ${g}, ${b}, ${currentAlpha() / 100})`;\n }\n return rgbToHex(r, g, b);\n };\n\n const addToHistory = (color: string) => {\n const history = [...localHistory()];\n const index = history.indexOf(color);\n if (index > -1) history.splice(index, 1);\n history.unshift(color);\n if (history.length > 10) history.pop();\n localHistory.set(history);\n };\n\n const handleColorClick = (color: string) => {\n isDropdownVisible.set(false);\n colorInputValue.set(color);\n addToHistory(color);\n };\n\n const handlePresetClick = (color: string) => {\n updateHslFromHex(color);\n handleColorClick(color);\n };\n\n const clearColor = () => {\n isDropdownVisible.set(false);\n if (p.onClear) p.onClear();\n };\n\n const toggleDropdown = () => {\n if (!p.showClear || isDropdownVisible()) {\n isDropdownVisible.set(!isDropdownVisible());\n }\n };\n\n const handleColorInput = (event: Event) => {\n const target = event.target as HTMLInputElement;\n colorInputValue.set(target.value);\n };\n\n const handleColorChange = (event: Event) => {\n const target = event.target as HTMLInputElement;\n const color = target.value;\n if (color) {\n handleColorClick(color);\n }\n };\n\n let isDragging = false;\n\n const handlePickerClick = (event: MouseEvent, type: 'saturation' | 'hue' | 'alpha') => {\n isDragging = true;\n handlePickerDrag(event, type);\n };\n\n const handlePickerMouseMove = (event: MouseEvent, type: 'saturation' | 'hue' | 'alpha') => {\n if (!isDragging) return;\n handlePickerDrag(event, type);\n };\n\n const handlePickerMouseUp = () => {\n isDragging = false;\n };\n\n const handlePickerDrag = (event: MouseEvent, type: 'saturation' | 'hue' | 'alpha') => {\n const rect = (event.target as HTMLElement).getBoundingClientRect();\n let x = event.clientX - rect.left;\n x = Math.max(0, Math.min(rect.width, x));\n\n if (type === 'hue') {\n const newHue = Math.round((x / rect.width) * 360);\n currentHue.set(newHue);\n colorInputValue.set(getCurrentColor());\n } else if (type === 'alpha') {\n const newAlpha = Math.round((x / rect.width) * 100);\n currentAlpha.set(newAlpha);\n colorInputValue.set(getCurrentColor());\n } else if (type === 'saturation') {\n let y = event.clientY - rect.top;\n y = Math.max(0, Math.min(rect.height, y));\n const newSat = Math.round((x / rect.width) * 100);\n const newLight = Math.round(100 - (y / rect.height) * 100);\n currentSaturation.set(newSat);\n currentLightness.set(newLight);\n colorInputValue.set(getCurrentColor());\n }\n };\n\n const getColorPickerClass = (): string => {\n const classes = ['lyt-color-picker'];\n if (p.class) classes.push(p.class as string);\n return classes.join(' ');\n };\n\n return () => {\n const saturationPointer: VNode[] = [];\n saturationPointer.push(\n createVNode('div', {\n class: 'lyt-color-picker-pointer',\n style: {\n left: `${currentSaturation()}%`,\n top: `${100 - currentLightness()}%`,\n },\n }),\n );\n\n const hueChildren: VNode[] = [];\n hueChildren.push(\n createVNode('div', {\n class: 'lyt-color-picker-pointer',\n style: { left: `${(currentHue() / 360) * 100}%` },\n }),\n );\n\n const saturationPicker: VNode[] = [];\n saturationPicker.push(\n createVNode(\n 'div',\n {\n class: 'lyt-color-picker-saturation',\n style: {\n background: `linear-gradient(to top, rgb(0, 0, 0), transparent),\n linear-gradient(to right, rgb(255, 255, 255), hsl(${currentHue()}, 100%, 50%))`,\n },\n onMousedown: (e: MouseEvent) => handlePickerClick(e, 'saturation'),\n onMousemove: (e: MouseEvent) => handlePickerMouseMove(e, 'saturation'),\n onMouseup: handlePickerMouseUp,\n onMouseleave: handlePickerMouseUp,\n },\n saturationPointer,\n ),\n );\n\n const huePicker: VNode[] = [];\n huePicker.push(\n createVNode(\n 'div',\n {\n class: 'lyt-color-picker-hue-slider',\n onMousedown: (e: MouseEvent) => handlePickerClick(e, 'hue'),\n onMousemove: (e: MouseEvent) => handlePickerMouseMove(e, 'hue'),\n onMouseup: handlePickerMouseUp,\n onMouseleave: handlePickerMouseUp,\n },\n hueChildren,\n ),\n );\n\n const alphaChildren: VNode[] = [];\n alphaChildren.push(\n createVNode('div', {\n class: 'lyt-color-picker-pointer',\n style: { left: `${currentAlpha()}%` },\n }),\n );\n\n const alphaPicker: VNode[] = [];\n alphaPicker.push(\n createVNode(\n 'div',\n {\n class: 'lyt-color-picker-alpha-slider',\n style: {\n background: `linear-gradient(to right, transparent, ${hslToRgb(\n currentHue(),\n currentSaturation(),\n currentLightness(),\n )\n .map((v: number) => `rgb(${v})`)\n .join(',')})`,\n },\n onMousedown: (e: MouseEvent) => handlePickerClick(e, 'alpha'),\n onMousemove: (e: MouseEvent) => handlePickerMouseMove(e, 'alpha'),\n onMouseup: handlePickerMouseUp,\n onMouseleave: handlePickerMouseUp,\n },\n alphaChildren,\n ),\n );\n\n const presetColors: VNode[] = [];\n const presets = (p.presets || DEFAULT_PRESETS) as string[];\n presets.forEach((color: string, index: number) => {\n presetColors.push(\n createVNode('span', {\n class: 'lyt-color-picker-color',\n key: index,\n style: { backgroundColor: color },\n onClick: () => handlePresetClick(color),\n }),\n );\n });\n\n const historyColors: VNode[] = [];\n const history = localHistory() as string[];\n history.forEach((color: string, index: number) => {\n historyColors.push(\n createVNode('span', {\n class: 'lyt-color-picker-color',\n key: index,\n style: { backgroundColor: color },\n onClick: () => handleColorClick(color),\n }),\n );\n });\n\n const pickerDropdown: VNode[] = [];\n\n const panelChildren: VNode[] = [];\n panelChildren.push(\n createVNode(\n 'div',\n {\n class: 'lyt-color-picker-saturation',\n },\n saturationPicker,\n ),\n );\n panelChildren.push(createVNode('div', { class: 'lyt-color-picker-hue' }, huePicker));\n if (p.showAlpha) {\n panelChildren.push(createVNode('div', { class: 'lyt-color-picker-alpha' }, alphaPicker));\n }\n\n pickerDropdown.push(createVNode('div', { class: 'lyt-color-picker-panel' }, panelChildren));\n\n const inputChildren: VNode[] = [];\n inputChildren.push(\n createVNode('input', {\n type: 'text',\n value: colorInputValue(),\n onInput: handleColorInput,\n onChange: handleColorChange,\n placeholder: '请输入颜色',\n }),\n );\n inputChildren.push(\n createVNode('span', {\n class: 'lyt-color-picker-preview',\n style: { backgroundColor: getCurrentColor() },\n }),\n );\n inputChildren.push(\n createVNode(\n 'button',\n {\n class: 'lyt-color-picker-confirm',\n onClick: () => handleColorClick(getCurrentColor()),\n },\n [createVNode('span', {}, '确认')],\n ),\n );\n\n pickerDropdown.push(createVNode('div', { class: 'lyt-color-picker-input' }, inputChildren));\n\n if (p.showPreset) {\n const presetChildren: VNode[] = [];\n presetChildren.push(\n createVNode('div', { class: 'lyt-color-picker-title' }, [\n createVNode('span', {}, '预设颜色'),\n ]),\n );\n presetChildren.push(\n createVNode('div', { class: 'lyt-color-picker-palette' }, presetColors),\n );\n pickerDropdown.push(\n createVNode('div', { class: 'lyt-color-picker-presets' }, presetChildren),\n );\n }\n\n if (p.showHistory && history.length > 0) {\n const historyChildren: VNode[] = [];\n historyChildren.push(\n createVNode('div', { class: 'lyt-color-picker-title' }, [\n createVNode('span', {}, '历史颜色'),\n ]),\n );\n historyChildren.push(\n createVNode('div', { class: 'lyt-color-picker-palette' }, historyColors),\n );\n pickerDropdown.push(\n createVNode('div', { class: 'lyt-color-picker-history' }, historyChildren),\n );\n }\n\n const triggerChildren: VNode[] = [];\n triggerChildren.push(\n createVNode('div', {\n class: 'lyt-color-picker-display',\n style: { backgroundColor: p.modelValue || 'transparent' },\n }),\n );\n\n if (p.showClear && p.modelValue) {\n triggerChildren.push(\n createVNode(\n 'span',\n {\n class: 'lyt-color-picker-clear',\n onClick: clearColor,\n },\n [createVNode('span', {}, '×')],\n ),\n );\n }\n\n triggerChildren.push(\n createVNode('span', { class: 'lyt-color-picker-arrow' }, [createVNode('span', {}, '▼')]),\n );\n\n const trigger: VNode[] = [];\n trigger.push(\n createVNode(\n 'div',\n { class: 'lyt-color-picker-trigger', onClick: toggleDropdown },\n triggerChildren,\n ),\n );\n\n if (isDropdownVisible()) {\n trigger.push(createVNode('div', { class: 'lyt-color-picker-dropdown' }, pickerDropdown));\n }\n\n return createVNode('div', { class: getColorPickerClass() }, trigger);\n };\n },\n});\n\nexport default ColorPicker;\nexport type { ColorPickerProps, ColorPickerSlots, ColorPickerSetupProps } from './types';\n","/**\n * @lytjs/ui - Icon 组件\n *\n * 基础图标组件,支持多种尺寸和颜色\n */\n\nimport type { IconProps, IconSlots, IconSetupProps } from './types';\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\nexport const Icon = defineComponent({\n name: 'LytIcon',\n\n props: {\n name: { type: String, default: '' },\n size: { type: String, default: '16px' },\n color: { type: String, default: '' },\n spin: { type: Boolean, default: false },\n class: { type: String, default: '' },\n style: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: IconSlots }) {\n const p = props as unknown as IconSetupProps;\n\n const getIconClass = () => {\n const classes = ['lyt-icon'];\n if (p.name) classes.push(`lyt-icon--${p.name}`);\n if (p.spin) classes.push('lyt-icon--spin');\n if (p.class) classes.push(p.class);\n return classes.join(' ');\n };\n\n const getIconStyle = () => {\n const style: Record<string, string> = {};\n if (p.size) style.fontSize = p.size;\n if (p.color) style.color = p.color;\n if (p.style) {\n if (isString(p.style)) {\n return p.style;\n }\n if (isObject(p.style)) {\n Object.assign(style, p.style);\n }\n }\n return style;\n };\n\n return () => {\n const children: VNode[] = [];\n\n if (slots.default) {\n children.push(...slots.default());\n }\n\n return createVNode(\n 'i',\n mergeA11yProps(\n {\n id: p.id,\n 'aria-label': p.ariaLabel,\n 'aria-describedby': p.ariaDescribedBy,\n },\n {\n class: getIconClass(),\n style: getIconStyle(),\n },\n ),\n children,\n );\n };\n },\n});\n\nexport type { IconProps, IconSlots };\n","/**\n * @lytjs/ui - Badge 组件\n *\n * 徽标组件,用于展示数字或点标记\n */\n\nimport type { BadgeSetupProps, BadgeSlots, BadgeProps } from './types';\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\nexport const Badge = defineComponent({\n name: 'LytBadge',\n\n props: {\n count: { type: Number, default: 0 },\n maxCount: { type: Number, default: 99 },\n dot: { type: Boolean, default: false },\n showZero: { type: Boolean, default: false },\n type: { type: String, default: 'danger' },\n offset: { type: Array, default: undefined },\n class: { type: String, default: '' },\n style: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: BadgeSlots }) {\n const p = props as BadgeSetupProps;\n\n const displayCount = (): string => {\n if (p.dot) return '';\n if (p.count > p.maxCount) return `${p.maxCount}+`;\n return String(p.count);\n };\n\n const showBadge = (): boolean => {\n if (p.dot) return true;\n if (p.count === 0) return p.showZero;\n return true;\n };\n\n const getCountStyle = (): Record<string, string> => {\n const style: Record<string, string> = {};\n if (p.offset) {\n style.top = `${p.offset[0]}px`;\n style.right = `${p.offset[1]}px`;\n }\n return style;\n };\n\n return () => {\n const children: VNode[] = [];\n\n if (slots.default) {\n children.push(...slots.default());\n }\n\n if (showBadge()) {\n children.push(\n createVNode(\n 'sup',\n {\n class: [\n 'lyt-badge__count',\n `lyt-badge__count--${p.type}`,\n p.dot ? 'lyt-badge__count--dot' : '',\n ]\n .filter(Boolean)\n .join(' '),\n style: getCountStyle(),\n },\n [createVNode('span', {}, p.dot ? '' : displayCount())],\n ),\n );\n }\n\n return createVNode(\n 'span',\n mergeA11yProps(\n {\n id: p.id,\n 'aria-label': p.ariaLabel,\n 'aria-describedby': p.ariaDescribedBy,\n },\n {\n class: ['lyt-badge', p.class as string].filter(Boolean).join(' '),\n },\n ),\n children,\n );\n };\n },\n});\n\nexport type { BadgeProps, BadgeSlots, BadgeSetupProps };\n","/**\n * @lytjs/ui - Tag 组件\n *\n * 标签组件,支持多种类型和可关闭功能\n */\n\nimport type { TagProps, TagSlots, TagSetupProps } from './types';\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { reactive } from '@lytjs/reactivity';\nimport { getButtonA11yProps, mergeA11yProps } from '@lytjs/common-a11y';\n\n/**\n * Tag 组件\n */\nexport const Tag = defineComponent({\n name: 'LytTag',\n\n props: {\n type: { type: String, default: 'default' },\n closable: { type: Boolean, default: false },\n color: { type: String, default: '' },\n size: { type: String, default: 'medium' },\n class: { type: String, default: '' },\n style: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n onClose: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots, emit }) {\n const _props = props as TagSetupProps;\n const state = reactive({\n visible: true,\n });\n\n const handleClose = (e: Event) => {\n e.stopPropagation();\n state.visible = false;\n emit('close');\n _props.onClose?.();\n };\n\n const getTagClass = () => {\n const classes = ['lyt-tag'];\n if (_props.type !== 'default') classes.push(`lyt-tag--${_props.type}`);\n if (_props.size !== 'medium') classes.push(`lyt-tag--${_props.size}`);\n if (_props.color) classes.push('lyt-tag--custom');\n if (_props.class) classes.push(_props.class);\n return classes.join(' ');\n };\n\n const getTagStyle = () => {\n const style: Record<string, string> = {};\n if (_props.color) {\n style.backgroundColor = _props.color + '15';\n style.borderColor = _props.color;\n style.color = _props.color;\n }\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n return () => {\n if (!state.visible) return createVNode('div', { style: 'display: none;' }, []);\n\n const children: VNode[] = [];\n\n // 内容插槽\n if (slots.default) {\n const slotContent = slots.default();\n if (Array.isArray(slotContent)) {\n children.push(...(slotContent as VNode[]));\n }\n }\n\n // 关闭按钮\n if (_props.closable) {\n const closeBtnProps = getButtonA11yProps({ ariaLabel: '关闭标签' });\n children.push(\n createVNode(\n 'span',\n mergeA11yProps(closeBtnProps, {\n class: 'lyt-tag__close',\n onClick: handleClose,\n }),\n [createVNode('span', {}, '×')],\n ),\n );\n }\n\n return createVNode(\n 'span',\n mergeA11yProps(\n {\n id: _props.id,\n 'aria-label': _props.ariaLabel,\n 'aria-describedby': _props.ariaDescribedBy,\n },\n {\n class: getTagClass(),\n style: getTagStyle(),\n },\n ),\n children,\n );\n };\n },\n});\n\nexport type { TagProps, TagSlots };\n","/**\n * @lytjs/ui - Spin 组件\n *\n * 加载中组件,用于展示加载状态\n */\n\nimport type { SpinProps, SpinSlots, SpinSetupProps } from './types';\nimport { defineComponent, onUnmounted } from '@lytjs/component';\nimport { createVNode, createTextVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { reactive, watch } from '@lytjs/reactivity';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\nexport const Spin = defineComponent({\n name: 'LytSpin',\n\n props: {\n spinning: { type: Boolean, default: true },\n size: { type: String, default: 'default' },\n tip: { type: String, default: '' },\n delay: { type: Number, default: 0 },\n class: { type: String, default: '' },\n style: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: SpinSlots }) {\n const p = props as unknown as SpinSetupProps;\n const state = reactive({\n visible: props.spinning as boolean,\n });\n\n let delayTimer: ReturnType<typeof setTimeout> | null = null;\n\n watch(\n () => props.spinning,\n (val: boolean) => {\n if (delayTimer) clearTimeout(delayTimer);\n if (val) {\n if (p.delay && p.delay > 0) {\n delayTimer = setTimeout(() => {\n state.visible = true;\n }, p.delay);\n } else {\n state.visible = true;\n }\n } else {\n state.visible = false;\n }\n },\n );\n\n onUnmounted(() => {\n if (delayTimer) clearTimeout(delayTimer);\n });\n\n const getSpinClass = () => {\n const classes = ['lyt-spin'];\n if (state.visible) classes.push('lyt-spin--spinning');\n if (p.class) classes.push(p.class);\n return classes.join(' ');\n };\n\n const getSpinStyle = () => {\n if (!p.style) return undefined;\n if (isString(p.style)) return p.style;\n if (isObject(p.style)) {\n return Object.entries(p.style)\n .map(([key, value]) => `${key}: ${value}`)\n .join('; ');\n }\n return undefined;\n };\n\n return () => {\n const children: VNode[] = [];\n\n if (state.visible) {\n const loadingChildren: VNode[] = [];\n\n loadingChildren.push(\n createVNode('div', { class: `lyt-spin__icon lyt-spin__icon--${p.size}` }, [\n createVNode('svg', { viewBox: '0 0 1024 1024', class: 'lyt-spin__svg' }, [\n createVNode('path', {\n d: 'M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32zm0 640a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V736a32 32 0 0 1 32-32zm-448-192a32 32 0 0 1 32-32h192a32 32 0 0 1 0 64H96a32 32 0 0 1-32-32zm640 0a32 32 0 0 1 32-32h192a32 32 0 0 1 0 64H736a32 32 0 0 1-32-32z',\n }),\n ]),\n ]),\n );\n\n if (p.tip || slots.tip) {\n loadingChildren.push(\n createVNode(\n 'div',\n { class: 'lyt-spin__tip' },\n slots.tip ? slots.tip() : [createTextVNode(p.tip)],\n ),\n );\n }\n\n children.push(createVNode('div', { class: 'lyt-spin__loading' }, loadingChildren));\n }\n\n if (slots.default) {\n children.push(\n createVNode(\n 'div',\n {\n class: state.visible\n ? 'lyt-spin__content lyt-spin__content--hidden'\n : 'lyt-spin__content',\n },\n slots.default(),\n ),\n );\n }\n\n return createVNode(\n 'div',\n mergeA11yProps(\n {\n id: p.id,\n 'aria-label': p.ariaLabel,\n 'aria-describedby': p.ariaDescribedBy,\n role: 'alert',\n 'aria-live': 'polite',\n },\n {\n class: getSpinClass(),\n style: getSpinStyle(),\n },\n ),\n children,\n );\n };\n },\n});\n\nexport type { SpinProps, SpinSlots };\n","import type { EmptyProps, EmptySlots, EmptySetupProps } from './types';\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, createTextVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\nexport const Empty = defineComponent({\n name: 'LytEmpty',\n\n props: {\n description: { type: String, default: '暂无数据' },\n image: { type: String, default: '' },\n imageSize: { type: Number, default: 160 },\n class: { type: String, default: '' },\n style: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: EmptySlots }) {\n const p = props as unknown as EmptySetupProps;\n\n const getEmptyClass = () => {\n const classes = ['lyt-empty'];\n if (p.class) classes.push(p.class);\n return classes.join(' ');\n };\n\n const getEmptyStyle = () => {\n if (!p.style) return undefined;\n if (isString(p.style)) return p.style;\n if (isObject(p.style)) {\n return Object.entries(p.style)\n .map(([key, value]) => `${key}: ${value}`)\n .join('; ');\n }\n return undefined;\n };\n\n return () => {\n const children: VNode[] = [];\n\n if (slots.image) {\n children.push(createVNode('div', { class: 'lyt-empty__image' }, slots.image()));\n } else if (p.image) {\n children.push(\n createVNode('div', { class: 'lyt-empty__image' }, [\n createVNode('img', {\n src: p.image,\n alt: 'empty',\n style: { width: `${p.imageSize}px`, height: `${p.imageSize}px` },\n }),\n ]),\n );\n } else {\n children.push(\n createVNode('div', { class: 'lyt-empty__image' }, [\n createVNode(\n 'svg',\n {\n viewBox: '0 0 400 320',\n class: 'lyt-empty__svg',\n style: {\n width: `${p.imageSize || 160}px`,\n height: `${(p.imageSize || 160) * 0.8}px`,\n },\n },\n [\n createVNode('g', { fill: 'none', 'fill-rule': 'evenodd' }, [\n createVNode('g', { transform: 'translate(40 40)' }, [\n createVNode('ellipse', {\n fill: 'var(--lyt-color-info)',\n opacity: '0.2',\n cx: '160',\n cy: '140',\n rx: '160',\n ry: '140',\n }),\n createVNode('path', {\n d: 'M160 0C71.6 0 0 62.7 0 140s71.6 140 160 140 160-62.7 160-140S248.4 0 160 0z',\n fill: 'var(--lyt-color-info)',\n opacity: '0.15',\n }),\n createVNode('g', { fill: 'var(--lyt-color-info)' }, [\n createVNode('path', {\n d: 'M184 104a8 8 0 0 1 8 8v24a8 8 0 0 1-16 0v-24a8 8 0 0 1 8-8z',\n opacity: '0.3',\n }),\n createVNode('path', {\n d: 'M128 104a8 8 0 0 1 8 8v24a8 8 0 0 1-16 0v-24a8 8 0 0 1 8-8z',\n opacity: '0.3',\n }),\n createVNode('path', {\n d: 'M216 184H104a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h112a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8z',\n opacity: '0.2',\n }),\n ]),\n ]),\n ]),\n ],\n ),\n ]),\n );\n }\n\n if (slots.description) {\n children.push(createVNode('div', { class: 'lyt-empty__description' }, slots.description()));\n } else if (p.description) {\n children.push(\n createVNode('div', { class: 'lyt-empty__description' }, [createTextVNode(p.description)]),\n );\n }\n\n if (slots.default) {\n children.push(createVNode('div', { class: 'lyt-empty__bottom' }, slots.default()));\n }\n\n return createVNode(\n 'div',\n mergeA11yProps(\n {\n id: p.id,\n 'aria-label': p.ariaLabel,\n 'aria-describedby': p.ariaDescribedBy,\n role: 'status',\n 'aria-live': 'polite',\n },\n {\n class: getEmptyClass(),\n style: getEmptyStyle(),\n },\n ),\n children,\n );\n };\n },\n});\n\nexport type { EmptyProps, EmptySlots };\n","/**\n * @lytjs/ui - Link 组件\n *\n * 链接组件,支持多种类型和样式\n */\n\nimport type { LinkProps, LinkSlots, LinkSetupProps } from './types';\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\n/**\n * Link 组件\n */\nexport const Link = defineComponent({\n name: 'LytLink',\n\n props: {\n type: { type: String, default: 'default' },\n disabled: { type: Boolean, default: false },\n underline: { type: Boolean, default: true },\n href: { type: String, default: '' },\n target: { type: String, default: '_self' },\n class: { type: String, default: '' },\n style: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n onClick: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots }) {\n const _props = props as LinkSetupProps;\n const handleClick = (event: MouseEvent) => {\n if (_props.disabled) {\n event.preventDefault();\n return;\n }\n _props.onClick?.(event);\n };\n\n const getLinkClass = () => {\n const classes = ['lyt-link'];\n if (_props.type !== 'default') {\n classes.push(`lyt-link--${_props.type}`);\n }\n if (!_props.underline) {\n classes.push('lyt-link--no-underline');\n }\n if (_props.disabled) {\n classes.push('lyt-link--disabled');\n }\n if (_props.class) {\n classes.push(_props.class);\n }\n return classes.join(' ');\n };\n\n const getLinkStyle = () => {\n if (!_props.style) return undefined;\n if (isString(_props.style)) return _props.style;\n if (isObject(_props.style)) {\n return Object.entries(_props.style)\n .map(([key, value]) => `${key}: ${value}`)\n .join('; ');\n }\n return undefined;\n };\n\n return () => {\n const children: VNode[] = [];\n if (slots.default) {\n const slotContent = slots.default();\n if (Array.isArray(slotContent)) {\n children.push(...(slotContent as VNode[]));\n }\n }\n\n if (_props.href) {\n return createVNode(\n 'a',\n mergeA11yProps(\n {\n id: _props.id,\n 'aria-label': _props.ariaLabel,\n 'aria-describedby': _props.ariaDescribedBy,\n },\n {\n class: getLinkClass(),\n style: getLinkStyle(),\n href: _props.href,\n target: _props.target,\n onClick: handleClick,\n },\n ),\n children,\n );\n } else {\n return createVNode(\n 'span',\n mergeA11yProps(\n {\n id: _props.id,\n 'aria-label': _props.ariaLabel,\n 'aria-describedby': _props.ariaDescribedBy,\n role: 'link',\n },\n {\n class: getLinkClass(),\n style: getLinkStyle(),\n onClick: handleClick,\n },\n ),\n children,\n );\n }\n };\n },\n});\n\nexport type { LinkProps, LinkSlots };\n","import type { ContainerProps, ContainerSlots } from './types';\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\n\nexport interface ContainerSetupProps {\n fluid: boolean;\n class: string;\n style: string;\n}\n\nexport const Container = defineComponent({\n name: 'LytContainer',\n\n props: {\n fluid: { type: Boolean, default: false },\n class: { type: String, default: '' },\n style: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: ContainerSlots }) {\n const p = props as unknown as ContainerSetupProps;\n\n const getContainerClass = () => {\n const classes = ['lyt-container'];\n if (p.fluid) {\n classes.push('lyt-container--fluid');\n }\n if (p.class) {\n classes.push(p.class);\n }\n return classes.join(' ');\n };\n\n const getContainerStyle = () => {\n if (!p.style) return undefined;\n if (isString(p.style)) return p.style;\n if (isObject(p.style)) {\n return Object.entries(p.style)\n .map(([key, value]) => `${key}: ${value}`)\n .join('; ');\n }\n return undefined;\n };\n\n return () => {\n const children: VNode[] = [];\n if (slots.default) {\n children.push(...slots.default());\n }\n\n return createVNode(\n 'div',\n {\n class: getContainerClass(),\n style: getContainerStyle(),\n },\n children,\n );\n };\n },\n});\n\nexport type { ContainerProps, ContainerSlots };\n","import type { DividerProps, DividerSlots, DividerSetupProps } from './types';\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\nexport const Divider = defineComponent({\n name: 'LytDivider',\n\n props: {\n type: { type: String, default: 'horizontal' },\n contentPosition: { type: String, default: 'center' },\n class: { type: String, default: '' },\n style: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: DividerSlots }) {\n const p = props as unknown as DividerSetupProps;\n\n const getDividerClass = () => {\n const classes = ['lyt-divider'];\n if (p.type !== 'horizontal') {\n classes.push(`lyt-divider--${p.type}`);\n }\n if (slots.default) {\n classes.push(`lyt-divider--${p.contentPosition}`);\n }\n if (p.class) {\n classes.push(p.class);\n }\n return classes.join(' ');\n };\n\n const getDividerStyle = () => {\n if (!p.style) return undefined;\n if (isString(p.style)) return p.style;\n if (isObject(p.style)) {\n return Object.entries(p.style)\n .map(([key, value]) => `${key}: ${value}`)\n .join('; ');\n }\n return undefined;\n };\n\n return () => {\n const children: VNode[] = [];\n\n if (slots.default) {\n children.push(createVNode('span', { class: 'lyt-divider__text' }, slots.default()));\n }\n\n return createVNode(\n 'div',\n mergeA11yProps(\n {\n id: p.id,\n 'aria-label': p.ariaLabel,\n 'aria-describedby': p.ariaDescribedBy,\n role: 'separator',\n },\n {\n class: getDividerClass(),\n style: getDividerStyle(),\n },\n ),\n children,\n );\n };\n },\n});\n\nexport type { DividerProps, DividerSlots };\n","/**\n * @lytjs/ui - Toast 组件\n *\n * 轻提示组件,用于显示简短的消息提示\n */\n\nimport type { ToastProps, ToastSlots, ToastSetupProps } from './types';\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { reactive } from '@lytjs/reactivity';\n\n/**\n * Toast 组件\n */\nexport const Toast = defineComponent({\n name: 'LytToast',\n\n props: {\n message: { type: String, default: '' },\n type: { type: String, default: 'info' },\n duration: { type: Number, default: 3000 },\n position: { type: String, default: 'top' },\n icon: { type: String, default: '' },\n closable: { type: Boolean, default: false },\n class: { type: String, default: '' },\n style: { type: String, default: '' },\n onClose: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots, emit }) {\n const _props = props as ToastSetupProps;\n const state = reactive({\n visible: true,\n timer: null as ReturnType<typeof setTimeout> | null,\n });\n\n const startTimer = () => {\n if (_props.duration > 0) {\n state.timer = setTimeout(() => {\n close();\n }, _props.duration);\n }\n };\n\n const clearTimer = () => {\n if (state.timer) {\n clearTimeout(state.timer as ReturnType<typeof setTimeout>);\n state.timer = null;\n }\n };\n\n const close = () => {\n state.visible = false;\n emit('close');\n _props.onClose?.();\n };\n\n const handleClose = (e: Event) => {\n e.stopPropagation();\n close();\n };\n\n const getToastClass = () => {\n const classes = ['lyt-toast'];\n classes.push(`lyt-toast--${_props.type}`);\n classes.push(`lyt-toast--${_props.position}`);\n if (_props.class) classes.push(_props.class);\n return classes.join(' ');\n };\n\n const getToastStyle = () => {\n const style: Record<string, string> = {};\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n // 启动定时器\n startTimer();\n\n return () => {\n if (!state.visible) return createVNode('div', { style: 'display: none;' }, []);\n\n const children: VNode[] = [];\n\n // 图标\n if (_props.icon) {\n children.push(\n createVNode(\n 'span',\n {\n class: 'lyt-toast__icon',\n },\n [createVNode('span', {}, _props.icon)],\n ),\n );\n } else if (slots.icon) {\n const slotIcon = slots.icon();\n if (Array.isArray(slotIcon)) {\n children.push(\n createVNode(\n 'span',\n {\n class: 'lyt-toast__icon',\n },\n slotIcon as VNode[],\n ),\n );\n }\n }\n\n // 消息内容\n if (_props.message) {\n children.push(\n createVNode(\n 'span',\n {\n class: 'lyt-toast__message',\n },\n [createVNode('span', {}, _props.message)],\n ),\n );\n } else if (slots.default) {\n const slotContent = slots.default();\n if (Array.isArray(slotContent)) {\n children.push(\n createVNode(\n 'span',\n {\n class: 'lyt-toast__message',\n },\n slotContent as VNode[],\n ),\n );\n }\n }\n\n // 关闭按钮\n if (_props.closable) {\n children.push(\n createVNode(\n 'span',\n {\n class: 'lyt-toast__close',\n onClick: handleClose,\n },\n [createVNode('span', {}, '×')],\n ),\n );\n }\n\n return createVNode(\n 'div',\n {\n class: getToastClass(),\n style: getToastStyle(),\n onMouseenter: clearTimer,\n onMouseleave: startTimer,\n },\n children,\n );\n };\n },\n});\n\nexport type { ToastProps, ToastSlots };\n","/**\n * @lytjs/ui - Alert 组件\n *\n * 警告提示组件,用于展示重要的提示信息\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport type { AlertType, AlertSetupProps } from './types';\nimport { getButtonA11yProps, mergeA11yProps } from '@lytjs/common-a11y';\n\nexport const Alert = defineComponent({\n name: 'LytAlert',\n\n props: {\n title: { type: String, default: '' },\n description: { type: String, default: '' },\n type: { type: String, default: 'info' },\n closable: { type: Boolean, default: false },\n showIcon: { type: Boolean, default: true },\n effect: { type: String, default: 'light' },\n class: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n onClose: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots, emit }) {\n const _props = props as AlertSetupProps;\n const handleClose = () => {\n emit('close');\n _props.onClose?.();\n };\n\n const getIconMap = (): Record<AlertType, string> => ({\n success: '✓',\n warning: '⚠',\n info: 'ℹ',\n error: '✕',\n });\n\n return () => {\n const alertClass = [\n 'lyt-alert',\n `lyt-alert--${_props.type}`,\n `lyt-alert--${_props.effect}`,\n _props.class,\n ]\n .filter(Boolean)\n .join(' ');\n\n const children: VNode[] = [];\n\n if (_props.showIcon) {\n const icon = getIconMap()[_props.type as AlertType] || 'ℹ';\n children.push(\n createVNode('span', { class: 'lyt-alert__icon' }, [createVNode('span', {}, icon)]),\n );\n }\n\n const contentChildren: VNode[] = [];\n\n // Title\n if (slots.title || _props.title) {\n const titleChildren: VNode[] = [];\n if (slots.title) {\n const slotContent = slots.title();\n if (Array.isArray(slotContent)) {\n titleChildren.push(...(slotContent as VNode[]));\n }\n } else if (_props.title) {\n titleChildren.push(createVNode('span', {}, _props.title));\n }\n if (titleChildren.length > 0) {\n contentChildren.push(createVNode('div', { class: 'lyt-alert__title' }, titleChildren));\n }\n }\n\n // Description\n if (_props.description) {\n contentChildren.push(\n createVNode('div', { class: 'lyt-alert__description' }, [\n createVNode('span', {}, _props.description),\n ]),\n );\n }\n\n // Default slot\n if (slots.default) {\n const slotContent = slots.default();\n if (Array.isArray(slotContent)) {\n contentChildren.push(\n createVNode('div', { class: 'lyt-alert__message' }, slotContent as VNode[]),\n );\n }\n }\n\n if (contentChildren.length > 0) {\n children.push(createVNode('div', { class: 'lyt-alert__content' }, contentChildren));\n }\n\n if (_props.closable) {\n const closeBtnProps = getButtonA11yProps({ ariaLabel: '关闭提示' });\n children.push(\n createVNode(\n 'button',\n mergeA11yProps(closeBtnProps, {\n class: 'lyt-alert__close',\n onClick: handleClose,\n }),\n [createVNode('span', {}, '×')],\n ),\n );\n }\n\n return createVNode(\n 'div',\n {\n id: _props.id,\n 'aria-label': _props.ariaLabel || _props.title || 'Alert',\n 'aria-describedby': _props.ariaDescribedBy,\n role: 'alert',\n class: alertClass,\n },\n children,\n );\n };\n },\n});\n\nexport type { AlertProps, AlertSlots, AlertType, AlertEffect } from './types';\n","/**\n * @lytjs/ui - Tooltip 组件\n *\n * 文字提示组件,用于显示额外的提示信息\n */\n\nimport type { TooltipProps, TooltipSlots, TooltipSetupProps } from './types';\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, createTextVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { reactive } from '@lytjs/reactivity';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\nexport const Tooltip = defineComponent({\n name: 'LytTooltip',\n\n props: {\n content: { type: String, default: '' },\n placement: { type: String, default: 'top' },\n trigger: { type: String, default: 'hover' },\n disabled: { type: Boolean, default: false },\n openDelay: { type: Number, default: 0 },\n closeDelay: { type: Number, default: 0 },\n showArrow: { type: Boolean, default: true },\n class: { type: String, default: '' },\n style: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: TooltipSlots }) {\n const p = props as unknown as TooltipSetupProps;\n const state = reactive({\n visible: false,\n });\n let openTimer: ReturnType<typeof setTimeout> | null = null;\n let closeTimer: ReturnType<typeof setTimeout> | null = null;\n\n const handleMouseEnter = () => {\n if (p.disabled || p.trigger !== 'hover') return;\n if (closeTimer) clearTimeout(closeTimer);\n if (p.openDelay && p.openDelay > 0) {\n openTimer = setTimeout(() => {\n state.visible = true;\n }, p.openDelay);\n } else {\n state.visible = true;\n }\n };\n\n const handleMouseLeave = () => {\n if (p.disabled || p.trigger !== 'hover') return;\n if (openTimer) clearTimeout(openTimer);\n if (p.closeDelay && p.closeDelay > 0) {\n closeTimer = setTimeout(() => {\n state.visible = false;\n }, p.closeDelay);\n } else {\n state.visible = false;\n }\n };\n\n const handleClick = () => {\n if (p.disabled || p.trigger !== 'click') return;\n state.visible = !state.visible;\n };\n\n const handleFocus = () => {\n if (p.disabled || p.trigger !== 'focus') return;\n state.visible = true;\n };\n\n const handleBlur = () => {\n if (p.disabled || p.trigger !== 'focus') return;\n state.visible = false;\n };\n\n const getTooltipClass = () => {\n const classes = ['lyt-tooltip'];\n classes.push(`lyt-tooltip--${p.placement}`);\n if (p.class) classes.push(p.class);\n return classes.join(' ');\n };\n\n const getTooltipStyle = () => {\n const style: Record<string, string> = {};\n if (p.style) {\n if (isString(p.style)) {\n return p.style;\n }\n if (isObject(p.style)) {\n Object.assign(style, p.style);\n }\n }\n return style;\n };\n\n return () => {\n const children: VNode[] = [];\n\n if (slots.default) {\n children.push(\n createVNode(\n 'div',\n {\n class: 'lyt-tooltip__trigger',\n onMouseenter: handleMouseEnter,\n onMouseleave: handleMouseLeave,\n onClick: handleClick,\n onFocus: handleFocus,\n onBlur: handleBlur,\n },\n slots.default(),\n ),\n );\n }\n\n if (state.visible && !p.disabled) {\n const contentChildren: VNode[] = [];\n\n if (p.showArrow) {\n contentChildren.push(\n createVNode(\n 'div',\n {\n class: 'lyt-tooltip__arrow',\n },\n [],\n ),\n );\n }\n\n if (p.content) {\n contentChildren.push(\n createVNode(\n 'div',\n {\n class: 'lyt-tooltip__content',\n },\n [createTextVNode(p.content)],\n ),\n );\n } else if (slots.content) {\n contentChildren.push(\n createVNode(\n 'div',\n {\n class: 'lyt-tooltip__content',\n },\n slots.content(),\n ),\n );\n }\n\n children.push(\n createVNode(\n 'div',\n {\n class: getTooltipClass(),\n style: getTooltipStyle(),\n },\n contentChildren,\n ),\n );\n }\n\n return createVNode(\n 'div',\n mergeA11yProps(\n {\n id: p.id,\n 'aria-label': p.ariaLabel,\n 'aria-describedby': p.ariaDescribedBy,\n },\n {\n class: 'lyt-tooltip-wrapper',\n },\n ),\n children,\n );\n };\n },\n});\n\nexport type { TooltipProps, TooltipSlots };\n","/**\n * @lytjs/ui - Checkbox 组件\n *\n * 复选框组件,用于多选场景\n */\n\nimport type { CheckboxProps, CheckboxSlots, CheckboxSetupProps } from './types';\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject, isArray } from '@lytjs/common-is';\nimport { reactive, computed } from '@lytjs/reactivity';\nimport { getInputControlA11yProps, mergeA11yProps } from '@lytjs/common-a11y';\n\nexport const Checkbox = defineComponent({\n name: 'LytCheckbox',\n\n props: {\n modelValue: { type: Boolean, default: false },\n label: { type: String, default: '' },\n trueLabel: { type: String, default: undefined },\n falseLabel: { type: String, default: undefined },\n disabled: { type: Boolean, default: false },\n checked: { type: Boolean, default: false },\n indeterminate: { type: Boolean, default: false },\n name: { type: String, default: '' },\n id: { type: String, default: '' },\n class: { type: String, default: '' },\n style: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n ariaInvalid: { type: Boolean, default: false },\n ariaRequired: { type: Boolean, default: false },\n tabIndex: { type: Number, default: undefined },\n onChange: { type: Function, default: undefined },\n onKeydown: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots, emit }) {\n const _props = props as CheckboxSetupProps;\n const state = reactive({\n focus: false,\n });\n\n const isChecked = computed(() => {\n if (isArray(_props.modelValue)) {\n return (_props.modelValue as unknown[]).includes(_props.label || _props.trueLabel);\n }\n return _props.modelValue || _props.checked;\n });\n\n const handleChange = (e: Event) => {\n if (_props.disabled) return;\n\n const target = e.target as HTMLInputElement;\n let newValue;\n\n if (isArray(_props.modelValue)) {\n newValue = [...(_props.modelValue as unknown[])];\n const value = _props.label || _props.trueLabel;\n if (target.checked) {\n if (!newValue.includes(value)) {\n newValue.push(value);\n }\n } else {\n const index = newValue.indexOf(value);\n if (index > -1) {\n newValue.splice(index, 1);\n }\n }\n } else {\n newValue = target.checked;\n }\n\n emit('update:modelValue', newValue);\n emit('change', newValue);\n _props.onChange?.(newValue as boolean);\n };\n\n const handleFocus = () => {\n state.focus = true;\n };\n\n const handleBlur = () => {\n state.focus = false;\n };\n\n const getCheckboxClass = () => {\n const classes = ['lyt-checkbox'];\n if (isChecked.value) classes.push('lyt-checkbox--checked');\n if (_props.disabled) classes.push('lyt-checkbox--disabled');\n if (_props.indeterminate) classes.push('lyt-checkbox--indeterminate');\n if (state.focus) classes.push('lyt-checkbox--focus');\n if (_props.class) classes.push(_props.class);\n return classes.join(' ');\n };\n\n const getCheckboxStyle = () => {\n const style: Record<string, string> = {};\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n return () => {\n const children: VNode[] = [];\n const checked = isChecked.value;\n\n const a11yProps = getInputControlA11yProps({\n id: _props.id,\n ariaLabel: _props.ariaLabel,\n ariaDescribedBy: _props.ariaDescribedBy,\n ariaInvalid: _props.ariaInvalid,\n ariaRequired: _props.ariaRequired,\n disabled: _props.disabled,\n tabIndex: _props.tabIndex,\n checked: checked ? true : _props.indeterminate ? ('mixed' as const) : false,\n });\n\n children.push(\n createVNode(\n 'input',\n mergeA11yProps(a11yProps, {\n type: 'checkbox',\n class: 'lyt-checkbox__input',\n checked: checked,\n disabled: _props.disabled,\n name: _props.name,\n onKeydown: _props.onKeydown,\n onChange: handleChange,\n onFocus: handleFocus,\n onBlur: handleBlur,\n }),\n [],\n ),\n );\n\n children.push(\n createVNode(\n 'span',\n {\n class: 'lyt-checkbox__inner',\n },\n [],\n ),\n );\n\n if (_props.label) {\n children.push(\n createVNode(\n 'span',\n {\n class: 'lyt-checkbox__label',\n },\n [createVNode('span', {}, _props.label)],\n ),\n );\n } else if (slots.default) {\n const slotContent = slots.default();\n if (Array.isArray(slotContent)) {\n children.push(\n createVNode(\n 'span',\n {\n class: 'lyt-checkbox__label',\n },\n slotContent as VNode[],\n ),\n );\n }\n }\n\n return createVNode(\n 'label',\n {\n class: getCheckboxClass(),\n style: getCheckboxStyle(),\n },\n children,\n );\n };\n },\n});\n\nexport type { CheckboxProps, CheckboxSlots };\n","/**\n * @lytjs/ui - CheckboxGroup 组件\n *\n * 复选框组组件,用于多选场景\n */\n\nimport type { CheckboxGroupProps, CheckboxGroupSlots, CheckboxGroupSetupProps } from './types';\nimport { defineComponent, type PropType } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\n/**\n * CheckboxGroup 组件\n */\nexport const CheckboxGroup = defineComponent({\n name: 'LytCheckboxGroup',\n\n props: {\n modelValue: { type: Array, default: undefined },\n disabled: { type: Boolean, default: false },\n min: { type: Number, default: undefined },\n max: { type: Number, default: undefined },\n size: { type: String, default: 'default' },\n class: { type: String, default: '' },\n style: {\n type: [String, Object] as unknown as PropType<string | Record<string, string>>,\n default: '',\n },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n ariaRequired: { type: Boolean, default: false },\n id: { type: String, default: '' },\n onChange: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots }) {\n const _props = props as CheckboxGroupSetupProps;\n\n const getCheckboxGroupClass = () => {\n const classes = ['lyt-checkbox-group'];\n if (_props.class) classes.push(_props.class as string);\n return classes.join(' ');\n };\n\n const getCheckboxGroupStyle = () => {\n const style: Record<string, string> = {};\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n return () => {\n const children: VNode[] = [];\n\n if (slots.default) {\n const slotContent = slots.default();\n if (Array.isArray(slotContent)) {\n children.push(...(slotContent as VNode[]));\n } else if (slotContent) {\n children.push(slotContent as VNode);\n }\n }\n\n return createVNode(\n 'div',\n mergeA11yProps(\n {\n id: _props.id as string,\n 'aria-label': _props.ariaLabel as string,\n 'aria-describedby': _props.ariaDescribedBy as string,\n 'aria-required': _props.ariaRequired ? 'true' : undefined,\n role: 'group',\n },\n {\n class: getCheckboxGroupClass(),\n style: getCheckboxGroupStyle(),\n 'aria-disabled': _props.disabled ? 'true' : undefined,\n },\n ),\n children,\n );\n };\n },\n});\n\nexport type { CheckboxGroupProps, CheckboxGroupSlots };\n","/**\n * @lytjs/ui - Radio 组件\n *\n * 单选框组件,用于单选场景\n */\n\nimport type { RadioProps, RadioSlots, RadioSetupProps } from './types';\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { reactive, computed } from '@lytjs/reactivity';\nimport { getInputControlA11yProps, mergeA11yProps } from '@lytjs/common-a11y';\n\nexport const Radio = defineComponent({\n name: 'LytRadio',\n\n props: {\n modelValue: { type: String, default: undefined },\n label: { type: String, default: undefined },\n disabled: { type: Boolean, default: false },\n name: { type: String, default: '' },\n id: { type: String, default: '' },\n class: { type: String, default: '' },\n style: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n ariaInvalid: { type: Boolean, default: false },\n ariaRequired: { type: Boolean, default: false },\n tabIndex: { type: Number, default: undefined },\n onChange: { type: Function, default: undefined },\n onKeydown: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots, emit }) {\n const _props = props as RadioSetupProps;\n const state = reactive({\n focus: false,\n });\n\n const isChecked = computed(() => {\n return _props.modelValue === _props.label;\n });\n\n const handleChange = () => {\n if (_props.disabled) return;\n\n const newValue = _props.label;\n emit('update:modelValue', newValue);\n emit('change', newValue);\n _props.onChange?.(newValue as string | number | boolean);\n };\n\n const handleFocus = () => {\n state.focus = true;\n };\n\n const handleBlur = () => {\n state.focus = false;\n };\n\n const getRadioClass = () => {\n const classes = ['lyt-radio'];\n if (isChecked.value) classes.push('lyt-radio--checked');\n if (_props.disabled) classes.push('lyt-radio--disabled');\n if (state.focus) classes.push('lyt-radio--focus');\n if (_props.class) classes.push(_props.class);\n return classes.join(' ');\n };\n\n const getRadioStyle = () => {\n const style: Record<string, string> = {};\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n return () => {\n const children: VNode[] = [];\n const checked = isChecked.value;\n\n const a11yProps = getInputControlA11yProps({\n checked: checked,\n disabled: _props.disabled,\n id: _props.id,\n ariaLabel: _props.ariaLabel,\n ariaDescribedBy: _props.ariaDescribedBy,\n ariaInvalid: _props.ariaInvalid,\n ariaRequired: _props.ariaRequired,\n tabIndex: _props.tabIndex,\n });\n\n children.push(\n createVNode(\n 'input',\n mergeA11yProps(a11yProps, {\n type: 'radio',\n class: 'lyt-radio__input',\n checked: checked,\n disabled: _props.disabled,\n name: _props.name,\n onKeydown: _props.onKeydown,\n onChange: handleChange,\n onFocus: handleFocus,\n onBlur: handleBlur,\n }),\n [],\n ),\n );\n\n children.push(\n createVNode(\n 'span',\n {\n class: 'lyt-radio__inner',\n },\n [],\n ),\n );\n\n if (_props.label !== undefined) {\n children.push(\n createVNode(\n 'span',\n {\n class: 'lyt-radio__label',\n },\n [createVNode('span', {}, String(_props.label))],\n ),\n );\n } else if (slots.default) {\n const slotContent = slots.default();\n if (Array.isArray(slotContent)) {\n children.push(\n createVNode(\n 'span',\n {\n class: 'lyt-radio__label',\n },\n slotContent as VNode[],\n ),\n );\n }\n }\n\n return createVNode(\n 'label',\n {\n class: getRadioClass(),\n style: getRadioStyle(),\n },\n children,\n );\n };\n },\n});\n\nexport type { RadioProps, RadioSlots };\n","/**\n * @lytjs/ui - RadioGroup 组件\n *\n * 单选框组组件,用于单选场景\n */\n\nimport type { RadioGroupProps, RadioGroupSlots, RadioGroupSetupProps } from './types';\nimport { defineComponent, type PropType } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { getGroupA11yProps, mergeA11yProps } from '@lytjs/common-a11y';\n\nexport const RadioGroup = defineComponent({\n name: 'LytRadioGroup',\n\n props: {\n modelValue: {\n type: [String, Number, Boolean] as unknown as PropType<string | number | boolean>,\n default: undefined,\n },\n disabled: { type: Boolean, default: false },\n size: { type: String, default: 'default' },\n class: { type: String, default: '' },\n style: {\n type: [String, Object] as unknown as PropType<string | Record<string, string>>,\n default: '',\n },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n ariaRequired: { type: Boolean, default: false },\n id: { type: String, default: '' },\n onChange: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots }) {\n const _props = props as RadioGroupSetupProps;\n\n const getRadioGroupClass = () => {\n const classes = ['lyt-radio-group'];\n if (_props.class) classes.push(_props.class as string);\n return classes.join(' ');\n };\n\n const getRadioGroupStyle = () => {\n const style: Record<string, string> = {};\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n return () => {\n const children: VNode[] = [];\n\n if (slots.default) {\n const slotContent = slots.default();\n if (Array.isArray(slotContent)) {\n children.push(...(slotContent as VNode[]));\n } else if (slotContent) {\n children.push(slotContent as VNode);\n }\n }\n\n const a11yProps = getGroupA11yProps({\n role: 'radiogroup',\n id: _props.id as string,\n ariaLabel: _props.ariaLabel as string,\n ariaDescribedBy: _props.ariaDescribedBy as string,\n ariaRequired: _props.ariaRequired,\n });\n\n return createVNode(\n 'div',\n mergeA11yProps(a11yProps, {\n class: getRadioGroupClass(),\n style: getRadioGroupStyle(),\n 'aria-disabled': _props.disabled ? 'true' : undefined,\n }),\n children,\n );\n };\n },\n});\n\nexport type { RadioGroupProps, RadioGroupSlots };\n","/**\n * @lytjs/ui - Switch 组件\n *\n * 开关组件,用于表示两种状态的切换\n */\n\nimport type { SwitchProps, SwitchSlots, SwitchSetupProps } from './types';\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { reactive, computed } from '@lytjs/reactivity';\nimport { getSwitchA11yProps, mergeA11yProps } from '@lytjs/common-a11y';\n\n/**\n * Switch 组件\n */\nexport const Switch = defineComponent({\n name: 'LytSwitch',\n\n props: {\n modelValue: { type: Boolean, default: false },\n disabled: { type: Boolean, default: false },\n loading: { type: Boolean, default: false },\n size: { type: String, default: 'default' },\n activeText: { type: String, default: '' },\n inactiveText: { type: String, default: '' },\n activeColor: { type: String, default: '' },\n inactiveColor: { type: String, default: '' },\n activeValue: { type: Boolean, default: true },\n inactiveValue: { type: Boolean, default: false },\n name: { type: String, default: '' },\n id: { type: String, default: '' },\n class: { type: String, default: '' },\n style: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n ariaInvalid: { type: Boolean, default: false },\n ariaRequired: { type: Boolean, default: false },\n tabIndex: { type: Number, default: undefined },\n onChange: { type: Function, default: undefined },\n onKeydown: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots, emit }) {\n const _props = props as SwitchSetupProps;\n const state = reactive({\n focus: false,\n });\n\n const isChecked = computed(() => {\n return _props.modelValue === _props.activeValue;\n });\n\n const handleClick = () => {\n if (_props.disabled || _props.loading) return;\n\n const newValue = isChecked.value ? _props.inactiveValue : _props.activeValue;\n emit('update:modelValue', newValue);\n emit('change', newValue);\n _props.onChange?.(newValue as boolean);\n };\n\n const handleKeydown = (event: KeyboardEvent) => {\n if (_props.disabled || _props.loading) return;\n\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n const newValue = isChecked.value ? _props.inactiveValue : _props.activeValue;\n emit('update:modelValue', newValue);\n emit('change', newValue);\n _props.onChange?.(newValue as boolean);\n }\n\n _props.onKeydown?.(event);\n };\n\n const handleFocus = () => {\n state.focus = true;\n };\n\n const handleBlur = () => {\n state.focus = false;\n };\n\n const getSwitchClass = () => {\n const classes = ['lyt-switch'];\n if (isChecked.value) classes.push('lyt-switch--checked');\n if (_props.disabled) classes.push('lyt-switch--disabled');\n if (_props.loading) classes.push('lyt-switch--loading');\n if (_props.size !== 'default') classes.push(`lyt-switch--${_props.size}`);\n if (state.focus) classes.push('lyt-switch--focus');\n if (_props.class) classes.push(_props.class);\n return classes.join(' ');\n };\n\n const getSwitchStyle = () => {\n const style: Record<string, string> = {};\n if (_props.activeColor && isChecked.value) {\n style.backgroundColor = _props.activeColor;\n }\n if (_props.inactiveColor && !isChecked.value) {\n style.backgroundColor = _props.inactiveColor;\n }\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n return () => {\n const children: VNode[] = [];\n\n const coreChildren: VNode[] = [];\n\n if (isChecked.value && _props.activeText) {\n coreChildren.push(\n createVNode(\n 'span',\n {\n class: 'lyt-switch__label lyt-switch__label--left',\n },\n [createVNode('span', {}, _props.activeText)],\n ),\n );\n } else if (!isChecked.value && _props.inactiveText) {\n coreChildren.push(\n createVNode(\n 'span',\n {\n class: 'lyt-switch__label lyt-switch__label--left',\n },\n [createVNode('span', {}, _props.inactiveText)],\n ),\n );\n } else if (slots.active && isChecked.value) {\n const slotContent = slots.active();\n if (Array.isArray(slotContent)) {\n coreChildren.push(\n createVNode(\n 'span',\n {\n class: 'lyt-switch__label lyt-switch__label--left',\n },\n slotContent as VNode[],\n ),\n );\n }\n } else if (slots.inactive && !isChecked.value) {\n const slotContent = slots.inactive();\n if (Array.isArray(slotContent)) {\n coreChildren.push(\n createVNode(\n 'span',\n {\n class: 'lyt-switch__label lyt-switch__label--left',\n },\n slotContent as VNode[],\n ),\n );\n }\n }\n\n const buttonChildren: VNode[] = [];\n if (_props.loading) {\n buttonChildren.push(createVNode('span', {}, '◌'));\n }\n coreChildren.push(\n createVNode(\n 'span',\n {\n class: 'lyt-switch__core',\n },\n [\n createVNode(\n 'span',\n {\n class: 'lyt-switch__button',\n },\n buttonChildren,\n ),\n ],\n ),\n );\n\n if (isChecked.value && _props.activeText) {\n coreChildren.push(\n createVNode(\n 'span',\n {\n class: 'lyt-switch__label lyt-switch__label--right',\n },\n [createVNode('span', {}, _props.activeText)],\n ),\n );\n } else if (!isChecked.value && _props.inactiveText) {\n coreChildren.push(\n createVNode(\n 'span',\n {\n class: 'lyt-switch__label lyt-switch__label--right',\n },\n [createVNode('span', {}, _props.inactiveText)],\n ),\n );\n }\n\n children.push(\n createVNode(\n 'div',\n {\n class: 'lyt-switch__wrapper',\n },\n coreChildren,\n ),\n );\n\n const a11yProps = getSwitchA11yProps({\n checked: isChecked.value,\n disabled: _props.disabled,\n id: _props.id,\n ariaLabel: _props.ariaLabel,\n ariaDescribedBy: _props.ariaDescribedBy,\n ariaInvalid: _props.ariaInvalid,\n ariaRequired: _props.ariaRequired,\n tabIndex: _props.tabIndex,\n });\n\n return createVNode(\n 'div',\n mergeA11yProps(a11yProps, {\n class: getSwitchClass(),\n style: getSwitchStyle(),\n onClick: handleClick,\n onKeydown: handleKeydown,\n onFocus: handleFocus,\n onBlur: handleBlur,\n }),\n children,\n );\n };\n },\n});\n\nexport type { SwitchProps, SwitchSlots };\n","/**\n * @lytjs/ui - InputNumber 组件\n *\n * 数字输入框组件,用于数值输入\n */\n\nimport type { InputNumberProps, InputNumberSlots, InputNumberSetupProps } from './types';\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, createTextVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { reactive, computed, watch } from '@lytjs/reactivity';\nimport { getSpinbuttonA11yProps, getButtonA11yProps, mergeA11yProps } from '@lytjs/common-a11y';\n\n/**\n * InputNumber 组件\n */\nexport const InputNumber = defineComponent({\n name: 'LytInputNumber',\n\n props: {\n modelValue: { type: Number, default: undefined },\n min: { type: Number, default: -Infinity },\n max: { type: Number, default: Infinity },\n step: { type: Number, default: 1 },\n stepStrictly: { type: Boolean, default: false },\n precision: { type: Number, default: undefined },\n size: { type: String, default: 'default' },\n disabled: { type: Boolean, default: false },\n controls: { type: Boolean, default: true },\n controlsPosition: { type: String, default: '' },\n name: { type: String, default: '' },\n label: { type: String, default: '' },\n placeholder: { type: String, default: '' },\n class: { type: String, default: '' },\n style: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n ariaRequired: { type: Boolean, default: false },\n ariaInvalid: { type: Boolean, default: false },\n tabIndex: { type: Number, default: undefined },\n onChange: { type: Function, default: undefined },\n onInput: { type: Function, default: undefined },\n onKeydown: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { emit }) {\n const _props = props as InputNumberSetupProps;\n const state = reactive({\n inputValue: _props.modelValue,\n focus: false,\n });\n\n const displayValue = computed(() => {\n if (state.inputValue === undefined || state.inputValue === null) {\n return '';\n }\n if (_props.precision !== undefined) {\n return state.inputValue.toFixed(_props.precision);\n }\n return String(state.inputValue);\n });\n\n const isAtMin = computed(() => {\n return state.inputValue !== undefined && state.inputValue <= _props.min;\n });\n\n const isAtMax = computed(() => {\n return state.inputValue !== undefined && state.inputValue >= _props.max;\n });\n\n const ensurePrecision = (value: number): number => {\n if (_props.precision !== undefined) {\n const factor = Math.pow(10, _props.precision);\n return Math.round(value * factor) / factor;\n }\n return value;\n };\n\n const ensureStep = (value: number): number => {\n if (_props.stepStrictly) {\n const steps = Math.round(value / _props.step);\n return ensurePrecision(steps * _props.step);\n }\n return ensurePrecision(value);\n };\n\n const clampValue = (value: number): number => {\n let result = value;\n if (result < _props.min) result = _props.min;\n if (result > _props.max) result = _props.max;\n return ensureStep(result);\n };\n\n const setValue = (value: number | undefined) => {\n if (value === undefined) {\n state.inputValue = undefined;\n emit('update:modelValue', undefined);\n emit('change', undefined);\n _props.onChange?.(undefined);\n return;\n }\n\n const newValue = clampValue(value);\n state.inputValue = newValue;\n emit('update:modelValue', newValue);\n emit('change', newValue);\n _props.onChange?.(newValue);\n };\n\n const handleIncrement = () => {\n if (_props.disabled || isAtMax.value) return;\n const newValue = (state.inputValue || 0) + _props.step;\n setValue(newValue);\n };\n\n const handleDecrement = () => {\n if (_props.disabled || isAtMin.value) return;\n const newValue = (state.inputValue || 0) - _props.step;\n setValue(newValue);\n };\n\n const handleInput = (e: Event) => {\n const target = e.target as HTMLInputElement;\n const value = target.value;\n\n if (value === '') {\n state.inputValue = undefined;\n emit('update:modelValue', undefined);\n emit('input', undefined);\n _props.onInput?.(undefined);\n return;\n }\n\n const numValue = parseFloat(value);\n if (!isNaN(numValue)) {\n state.inputValue = numValue;\n emit('input', numValue);\n _props.onInput?.(numValue);\n }\n };\n\n const handleBlur = (e: Event) => {\n state.focus = false;\n const target = e.target as HTMLInputElement;\n const value = target.value;\n\n if (value === '') {\n setValue(undefined);\n } else {\n const numValue = parseFloat(value);\n if (!isNaN(numValue)) {\n setValue(numValue);\n }\n }\n };\n\n const handleFocus = () => {\n state.focus = true;\n };\n\n const handleKeydown = (e: KeyboardEvent) => {\n switch (e.key) {\n case 'ArrowUp':\n e.preventDefault();\n handleIncrement();\n break;\n case 'ArrowDown':\n e.preventDefault();\n handleDecrement();\n break;\n case 'Home':\n if (_props.min !== -Infinity) {\n e.preventDefault();\n setValue(_props.min);\n }\n break;\n case 'End':\n if (_props.max !== Infinity) {\n e.preventDefault();\n setValue(_props.max);\n }\n break;\n }\n _props.onKeydown?.(e);\n };\n\n watch(\n () => _props.modelValue,\n (newValue) => {\n if (newValue !== state.inputValue) {\n state.inputValue = newValue;\n }\n },\n );\n\n const getInputNumberClass = () => {\n const classes = ['lyt-input-number'];\n if (_props.size !== 'default') classes.push(`lyt-input-number--${_props.size}`);\n if (_props.disabled) classes.push('lyt-input-number--disabled');\n if (state.focus) classes.push('lyt-input-number--focus');\n if (_props.class) classes.push(_props.class);\n return classes.join(' ');\n };\n\n const getInputNumberStyle = () => {\n const style: Record<string, string> = {};\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n return () => {\n const children: VNode[] = [];\n\n // 减号按钮\n if (_props.controls) {\n const decreaseBtnProps = getButtonA11yProps({\n ariaLabel: '减少',\n disabled: _props.disabled || isAtMin.value,\n });\n children.push(\n createVNode(\n 'span',\n mergeA11yProps(decreaseBtnProps, {\n class: `lyt-input-number__decrease ${isAtMin.value ? 'is-disabled' : ''}`,\n onClick: handleDecrement,\n }),\n [createTextVNode('−')],\n ),\n );\n }\n\n // 加号按钮\n if (_props.controls) {\n const increaseBtnProps = getButtonA11yProps({\n ariaLabel: '增加',\n disabled: _props.disabled || isAtMax.value,\n });\n children.push(\n createVNode(\n 'span',\n mergeA11yProps(increaseBtnProps, {\n class: `lyt-input-number__increase ${isAtMax.value ? 'is-disabled' : ''}`,\n onClick: handleIncrement,\n }),\n [createTextVNode('+')],\n ),\n );\n }\n\n // 输入框\n const spinbuttonProps = getSpinbuttonA11yProps({\n id: _props.id,\n ariaLabel: _props.ariaLabel,\n ariaDescribedBy: _props.ariaDescribedBy,\n ariaRequired: _props.ariaRequired,\n ariaInvalid: _props.ariaInvalid,\n disabled: _props.disabled,\n tabIndex: _props.tabIndex,\n value: state.inputValue,\n min: _props.min === -Infinity ? undefined : _props.min,\n max: _props.max === Infinity ? undefined : _props.max,\n });\n children.push(\n createVNode(\n 'input',\n mergeA11yProps(spinbuttonProps, {\n type: 'text',\n class: 'lyt-input-number__input',\n value: displayValue.value,\n disabled: _props.disabled,\n placeholder: _props.placeholder,\n name: _props.name,\n onInput: handleInput,\n onBlur: handleBlur,\n onFocus: handleFocus,\n onKeydown: handleKeydown,\n }),\n [],\n ),\n );\n\n return createVNode(\n 'div',\n {\n class: getInputNumberClass(),\n style: getInputNumberStyle(),\n },\n children,\n );\n };\n },\n});\n\nexport type { InputNumberProps, InputNumberSlots };\n","/**\n * @lytjs/ui - Progress 组件\n *\n * 进度条组件,用于显示操作进度\n */\n\nimport type { ProgressProps, ProgressSlots, ProgressSetupProps } from './types';\nimport { defineComponent, type PropType } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject, isArray } from '@lytjs/common-is';\nimport { computed } from '@lytjs/reactivity';\n\nexport const Progress = defineComponent({\n name: 'LytProgress',\n\n props: {\n percentage: { type: Number, default: 0 },\n type: { type: String, default: 'line' },\n status: { type: String, default: '' },\n strokeWidth: { type: Number, default: 6 },\n textInside: { type: Boolean, default: false },\n showText: { type: Boolean, default: true },\n color: {\n type: [String, Array, Object] as unknown as PropType<\n string | string[] | Record<string, string>\n >,\n default: '',\n },\n width: { type: Number, default: 126 },\n strokeLinecap: { type: String, default: 'round' },\n format: { type: Function, default: undefined },\n class: { type: String, default: '' },\n style: {\n type: [String, Object] as unknown as PropType<string | Record<string, string>>,\n default: '',\n },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>) {\n const _props = props as ProgressSetupProps;\n\n const validPercentage = computed(() => {\n let p = _props.percentage;\n if (p < 0) p = 0;\n if (p > 100) p = 100;\n return p;\n });\n\n const getStatus = computed(() => {\n if (_props.status) return _props.status;\n if (validPercentage.value === 100) return 'success';\n return '';\n });\n\n const getBarStyle = computed(() => {\n const style: Record<string, string> = {\n width: `${validPercentage.value}%`,\n };\n\n if (_props.color) {\n if (isString(_props.color)) {\n style.backgroundColor = _props.color;\n } else if (isObject(_props.color) && !isArray(_props.color)) {\n const colorObj = _props.color as Record<string, string>;\n for (const key in colorObj) {\n const percentage = parseInt(key);\n if (validPercentage.value >= percentage) {\n const colorValue = colorObj[key];\n if (colorValue) {\n style.backgroundColor = colorValue;\n }\n }\n }\n }\n }\n\n return style;\n });\n\n const getProgressClass = () => {\n const classes = ['lyt-progress'];\n if (_props.type) classes.push(`lyt-progress--${_props.type}`);\n const status = getStatus.value;\n if (status) classes.push(`lyt-progress--${status}`);\n if (_props.class) classes.push(_props.class as string);\n return classes.join(' ');\n };\n\n const getProgressStyle = () => {\n const style: Record<string, string> = {};\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n const formatText = () => {\n if (_props.format) {\n return _props.format(validPercentage.value);\n }\n return `${validPercentage.value}%`;\n };\n\n const renderLine = () => {\n const children: VNode[] = [];\n\n const barStyle = getBarStyle.value;\n const innerContent: VNode[] = [];\n if (_props.textInside && _props.showText) {\n innerContent.push(\n createVNode('div', { class: 'lyt-progress__inner-text' }, [\n createVNode('span', {}, formatText()),\n ]),\n );\n }\n\n children.push(\n createVNode(\n 'div',\n {\n class: 'lyt-progress__outer',\n },\n [\n createVNode(\n 'div',\n {\n class: 'lyt-progress__inner',\n style: barStyle,\n },\n innerContent,\n ),\n ],\n ),\n );\n\n if (_props.showText && !_props.textInside) {\n children.push(\n createVNode(\n 'div',\n {\n class: 'lyt-progress__text',\n },\n [createVNode('span', {}, formatText())],\n ),\n );\n }\n\n return children;\n };\n\n const renderCircle = () => {\n const radius = 50 - _props.strokeWidth / 2;\n const circumference = 2 * Math.PI * radius;\n const strokeDashoffset = circumference - (validPercentage.value / 100) * circumference;\n const barStyle = getBarStyle.value;\n\n const children: VNode[] = [];\n\n children.push(\n createVNode(\n 'svg',\n {\n class: 'lyt-progress__circle',\n viewBox: '0 0 100 100',\n width: _props.width,\n height: _props.width,\n },\n [\n createVNode(\n 'path',\n {\n class: 'lyt-progress__circle-trail',\n d: `M 50 50 m 0,-${radius} a ${radius},${radius} 0 1 1 0,${radius * 2} a ${radius},${radius} 0 1 1 0,-${radius * 2}`,\n stroke: '#e5e9f2',\n strokeWidth: _props.strokeWidth,\n fill: 'none',\n },\n [],\n ),\n createVNode(\n 'path',\n {\n class: 'lyt-progress__circle-path',\n d: `M 50 50 m 0,-${radius} a ${radius},${radius} 0 1 1 0,${radius * 2} a ${radius},${radius} 0 1 1 0,-${radius * 2}`,\n stroke: barStyle.backgroundColor || '#409eff',\n strokeWidth: _props.strokeWidth,\n fill: 'none',\n strokeDasharray: `${circumference}px, ${circumference}px`,\n strokeDashoffset: `${strokeDashoffset}px`,\n strokeLinecap: _props.strokeLinecap,\n },\n [],\n ),\n ],\n ),\n );\n\n if (_props.showText) {\n children.push(\n createVNode(\n 'div',\n {\n class: 'lyt-progress__text',\n },\n [createVNode('span', {}, formatText())],\n ),\n );\n }\n\n return children;\n };\n\n return () => {\n let content: VNode[];\n\n if (_props.type === 'circle' || _props.type === 'dashboard') {\n content = renderCircle();\n } else {\n content = renderLine();\n }\n\n return createVNode(\n 'div',\n {\n id: _props.id as string,\n 'aria-label': (_props.ariaLabel as string) || 'Progress',\n 'aria-describedby': _props.ariaDescribedBy as string,\n role: 'progressbar',\n 'aria-valuenow': String(validPercentage.value),\n 'aria-valuemin': '0',\n 'aria-valuemax': '100',\n class: getProgressClass(),\n style: getProgressStyle(),\n },\n content,\n );\n };\n },\n});\n\nexport type { ProgressProps, ProgressSlots };\n","/**\n * @lytjs/ui - Slider 组件\n *\n * 滑块组件,用于在给定范围内选择一个值\n */\n\nimport type { SliderProps, SliderSlots, SliderSetupProps } from './types';\nimport { defineComponent, type PropType } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { reactive, computed, watch } from '@lytjs/reactivity';\nimport { getSliderA11yProps, mergeA11yProps } from '@lytjs/common-a11y';\n\nexport const Slider = defineComponent({\n name: 'LytSlider',\n\n props: {\n modelValue: { type: Number, default: 0 },\n min: { type: Number, default: 0 },\n max: { type: Number, default: 100 },\n step: { type: Number, default: 1 },\n showInput: { type: Boolean, default: false },\n showInputControls: { type: Boolean, default: true },\n inputSize: { type: String, default: 'default' },\n showStops: { type: Boolean, default: false },\n showTooltip: { type: Boolean, default: true },\n formatTooltip: { type: Function, default: undefined },\n disabled: { type: Boolean, default: false },\n range: { type: Boolean, default: false },\n vertical: { type: Boolean, default: false },\n height: { type: String, default: '' },\n label: { type: String, default: '' },\n class: { type: String, default: '' },\n style: {\n type: [String, Object] as unknown as PropType<string | Record<string, string>>,\n default: '',\n },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n ariaRequired: { type: Boolean, default: false },\n ariaInvalid: { type: Boolean, default: false },\n tabIndex: { type: Number, default: undefined },\n onChange: { type: Function, default: undefined },\n onInput: { type: Function, default: undefined },\n onKeydown: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { emit }) {\n const _props = props as SliderSetupProps;\n\n const state = reactive({\n firstValue: 0,\n secondValue: 0,\n dragging: false,\n showTooltip: false,\n });\n\n const initValues = () => {\n if (_props.range) {\n if (Array.isArray(_props.modelValue)) {\n state.firstValue = _props.modelValue[0] || _props.min;\n state.secondValue = _props.modelValue[1] || _props.max;\n } else {\n state.firstValue = _props.min;\n state.secondValue = _props.max;\n }\n } else {\n if (typeof _props.modelValue === 'number') {\n state.firstValue = _props.modelValue;\n } else {\n state.firstValue = _props.min;\n }\n }\n };\n\n initValues();\n\n watch(\n () => _props.modelValue,\n () => {\n initValues();\n },\n );\n\n const formatValue = (value: number) => {\n if (_props.formatTooltip) {\n return _props.formatTooltip(value);\n }\n return String(value);\n };\n\n const getValueByPercent = (percent: number) => {\n const range = _props.max - _props.min;\n let value = (percent / 100) * range + _props.min;\n\n if (_props.step > 0) {\n value = Math.round(value / _props.step) * _props.step;\n }\n\n value = Math.max(_props.min, Math.min(_props.max, value));\n return value;\n };\n\n const getPercentByValue = (value: number) => {\n const range = _props.max - _props.min;\n return ((value - _props.min) / range) * 100;\n };\n\n const firstPercent = computed(() => getPercentByValue(state.firstValue));\n const secondPercent = computed(() => getPercentByValue(state.secondValue));\n\n const clampValue = (value: number) => {\n return Math.max(_props.min, Math.min(_props.max, value));\n };\n\n const handleKeydown = (event: KeyboardEvent) => {\n if (_props.disabled) return;\n\n let newValue: number;\n\n switch (event.key) {\n case 'ArrowLeft':\n case 'ArrowDown':\n event.preventDefault();\n newValue = clampValue(state.firstValue - _props.step);\n break;\n case 'ArrowRight':\n case 'ArrowUp':\n event.preventDefault();\n newValue = clampValue(state.firstValue + _props.step);\n break;\n case 'Home':\n event.preventDefault();\n newValue = _props.min;\n break;\n case 'End':\n event.preventDefault();\n newValue = _props.max;\n break;\n default:\n _props.onKeydown?.(event);\n return;\n }\n\n if (newValue !== state.firstValue) {\n state.firstValue = newValue;\n state.showTooltip = true;\n\n if (!_props.range) {\n emit('update:modelValue', state.firstValue);\n emit('input', state.firstValue);\n _props.onInput?.(state.firstValue);\n }\n\n setTimeout(() => {\n state.showTooltip = false;\n }, 1500);\n }\n\n _props.onKeydown?.(event);\n };\n\n const handleMouseDown = (_event: MouseEvent) => {\n if (_props.disabled) return;\n state.dragging = true;\n state.showTooltip = true;\n document.addEventListener('mousemove', handleMouseMove);\n document.addEventListener('mouseup', handleMouseUp);\n };\n\n const handleMouseMove = (event: MouseEvent) => {\n if (!state.dragging) return;\n\n const slider = document.querySelector('.lyt-slider');\n if (!slider) return;\n\n const rect = slider.getBoundingClientRect();\n let percent;\n\n if (_props.vertical) {\n percent = ((rect.bottom - event.clientY) / rect.height) * 100;\n } else {\n percent = ((event.clientX - rect.left) / rect.width) * 100;\n }\n\n percent = Math.max(0, Math.min(100, percent));\n const newValue = getValueByPercent(percent);\n\n if (_props.range) {\n const diff1 = Math.abs(newValue - state.firstValue);\n const diff2 = Math.abs(newValue - state.secondValue);\n\n if (diff1 < diff2) {\n state.firstValue = Math.min(newValue, state.secondValue);\n } else {\n state.secondValue = Math.max(newValue, state.firstValue);\n }\n\n const newModelValue: number | number[] = _props.range\n ? [state.firstValue, state.secondValue]\n : state.firstValue;\n emit('update:modelValue', newModelValue);\n emit('input', newModelValue);\n (_props.onInput as ((value: number | number[]) => void) | undefined)?.(newModelValue);\n } else {\n state.firstValue = newValue;\n emit('update:modelValue', state.firstValue);\n emit('input', state.firstValue);\n (_props.onInput as ((value: number) => void) | undefined)?.(state.firstValue);\n }\n };\n\n const handleMouseUp = () => {\n if (!state.dragging) return;\n state.dragging = false;\n state.showTooltip = false;\n document.removeEventListener('mousemove', handleMouseMove);\n document.removeEventListener('mouseup', handleMouseUp);\n\n if (_props.range) {\n const newModelValue: number[] = [state.firstValue, state.secondValue];\n emit('change', newModelValue);\n (_props.onChange as ((value: number[]) => void) | undefined)?.(newModelValue);\n } else {\n emit('change', state.firstValue);\n (_props.onChange as ((value: number) => void) | undefined)?.(state.firstValue);\n }\n };\n\n const getSliderClass = () => {\n const classes = ['lyt-slider'];\n if (_props.vertical) classes.push('lyt-slider--vertical');\n if (_props.disabled) classes.push('lyt-slider--disabled');\n if (_props.class) classes.push(_props.class);\n return classes.join(' ');\n };\n\n const getSliderStyle = () => {\n const style: Record<string, string> = {};\n if (_props.vertical && _props.height) {\n style.height = _props.height;\n }\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n const getStops = () => {\n if (!_props.showStops) return [];\n\n const stops: VNode[] = [];\n const range = _props.max - _props.min;\n const stepCount = Math.floor(range / _props.step);\n\n for (let i = 0; i <= stepCount; i++) {\n const percent = (i / stepCount) * 100;\n stops.push(\n createVNode(\n 'div',\n {\n class: 'lyt-slider__stop',\n style: _props.vertical ? { bottom: `${percent}%` } : { left: `${percent}%` },\n },\n [],\n ),\n );\n }\n\n return stops;\n };\n\n return () => {\n const firstPct = firstPercent.value;\n const secondPct = secondPercent.value;\n const children: VNode[] = [];\n\n const runwayChildren: VNode[] = [];\n\n runwayChildren.push(\n createVNode(\n 'div',\n {\n class: 'lyt-slider__bar',\n style: _props.range\n ? _props.vertical\n ? { bottom: `${firstPct}%`, height: `${secondPct - firstPct}%` }\n : { left: `${firstPct}%`, width: `${secondPct - firstPct}%` }\n : _props.vertical\n ? { bottom: '0%', height: `${firstPct}%` }\n : { left: '0%', width: `${firstPct}%` },\n },\n [],\n ),\n );\n\n const stops = getStops();\n runwayChildren.push(...stops);\n\n if (_props.range) {\n const tooltip1 = _props.showTooltip\n ? createVNode('div', { class: 'lyt-slider__tooltip' }, [\n createVNode('span', {}, formatValue(state.firstValue)),\n ])\n : null;\n const tooltip2 = _props.showTooltip\n ? createVNode('div', { class: 'lyt-slider__tooltip' }, [\n createVNode('span', {}, formatValue(state.secondValue)),\n ])\n : null;\n\n if (tooltip1) {\n runwayChildren.push(\n createVNode(\n 'div',\n mergeA11yProps(\n getSliderA11yProps({\n ariaLabel: _props.ariaLabel || 'Left value',\n disabled: _props.disabled,\n value: state.firstValue,\n min: _props.min,\n max: _props.max,\n }),\n {\n class: 'lyt-slider__button',\n style: _props.vertical ? { bottom: `${firstPct}%` } : { left: `${firstPct}%` },\n onKeydown: handleKeydown,\n },\n ),\n [tooltip1],\n ),\n );\n }\n\n if (tooltip2) {\n runwayChildren.push(\n createVNode(\n 'div',\n mergeA11yProps(\n getSliderA11yProps({\n ariaLabel: 'Right value',\n disabled: _props.disabled,\n value: state.secondValue,\n min: _props.min,\n max: _props.max,\n }),\n {\n class: 'lyt-slider__button',\n style: _props.vertical ? { bottom: `${secondPct}%` } : { left: `${secondPct}%` },\n onKeydown: handleKeydown,\n },\n ),\n [tooltip2],\n ),\n );\n }\n } else {\n const tooltip = _props.showTooltip\n ? createVNode('div', { class: 'lyt-slider__tooltip' }, [\n createVNode('span', {}, formatValue(state.firstValue)),\n ])\n : null;\n\n if (tooltip) {\n runwayChildren.push(\n createVNode(\n 'div',\n mergeA11yProps(\n getSliderA11yProps({\n ariaLabel: _props.ariaLabel || 'Value',\n ariaDescribedBy: _props.ariaDescribedBy,\n ariaRequired: _props.ariaRequired,\n ariaInvalid: _props.ariaInvalid,\n disabled: _props.disabled,\n tabIndex: _props.tabIndex,\n value: state.firstValue,\n min: _props.min,\n max: _props.max,\n }),\n {\n class: 'lyt-slider__button',\n style: _props.vertical ? { bottom: `${firstPct}%` } : { left: `${firstPct}%` },\n onKeydown: handleKeydown,\n },\n ),\n [tooltip],\n ),\n );\n }\n }\n\n children.push(\n createVNode(\n 'div',\n {\n class: 'lyt-slider__runway',\n onMousedown: handleMouseDown,\n },\n runwayChildren,\n ),\n );\n\n if (_props.showInput && !_props.range) {\n children.push(\n createVNode(\n 'div',\n {\n class: 'lyt-slider__input',\n },\n [\n createVNode('input', {\n type: 'number',\n class: `lyt-input lyt-input--${_props.inputSize}`,\n value: state.firstValue,\n min: _props.min,\n max: _props.max,\n step: _props.step,\n disabled: _props.disabled,\n onInput: (e: Event) => {\n const input = e.target as HTMLInputElement;\n const value = parseFloat(input.value);\n if (!isNaN(value)) {\n state.firstValue = Math.max(_props.min, Math.min(_props.max, value));\n emit('update:modelValue', state.firstValue);\n }\n },\n }),\n ],\n ),\n );\n }\n\n return createVNode(\n 'div',\n {\n class: getSliderClass(),\n style: getSliderStyle(),\n id: _props.id,\n onKeydown: handleKeydown,\n },\n children,\n );\n };\n },\n});\n\nexport type { SliderProps, SliderSlots };\n","/**\n * @lytjs/ui - Avatar 组件\n *\n * 头像组件,用于显示用户头像\n */\n\nimport type { AvatarProps, AvatarSlots, AvatarSetupProps } from './types';\nimport { defineComponent, type PropType } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { signal } from '@lytjs/reactivity';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\nexport const Avatar = defineComponent({\n name: 'LytAvatar',\n\n props: {\n size: { type: [Number, String] as unknown as PropType<number | string>, default: 'default' },\n shape: { type: String, default: 'circle' },\n icon: { type: String, default: '' },\n src: { type: String, default: '' },\n srcSet: { type: String, default: '' },\n alt: { type: String, default: '' },\n fit: { type: String, default: 'cover' },\n class: { type: String, default: '' },\n style: {\n type: [String, Object] as unknown as PropType<string | Record<string, string>>,\n default: '',\n },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n onError: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots }) {\n const _props = props as AvatarSetupProps;\n const isImageExist = signal(true);\n\n const getSize = () => {\n if (typeof _props.size === 'number') {\n return `${_props.size}px`;\n }\n const sizeMap: Record<string, string> = {\n small: '32px',\n default: '40px',\n large: '48px',\n };\n return sizeMap[_props.size] || '40px';\n };\n\n const handleError = () => {\n if (_props.onError) {\n const result = _props.onError();\n if (result === false) {\n return;\n }\n }\n isImageExist.set(false);\n };\n\n const getAvatarClass = () => {\n const classes = ['lyt-avatar'];\n if (_props.shape) classes.push(`lyt-avatar--${_props.shape}`);\n if (typeof _props.size === 'string') {\n classes.push(`lyt-avatar--${_props.size}`);\n }\n if (_props.class) classes.push(_props.class);\n return classes.join(' ');\n };\n\n const getAvatarStyle = () => {\n const style: Record<string, string> = {\n height: getSize(),\n width: getSize(),\n };\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n return () => {\n const children: VNode[] = [];\n\n if (_props.src && isImageExist()) {\n children.push(\n createVNode(\n 'img',\n {\n class: 'lyt-avatar__img',\n src: _props.src,\n srcset: _props.srcSet || undefined,\n alt: _props.alt || undefined,\n style: {\n objectFit: _props.fit,\n },\n onError: handleError,\n },\n [],\n ),\n );\n } else if (_props.icon) {\n children.push(\n createVNode(\n 'span',\n {\n class: ['lyt-avatar__icon', _props.icon],\n },\n [],\n ),\n );\n } else if (slots.default) {\n const slotContent = slots.default();\n if (Array.isArray(slotContent)) {\n children.push(...(slotContent as VNode[]));\n } else if (slotContent) {\n children.push(slotContent as VNode);\n }\n }\n\n return createVNode(\n 'span',\n mergeA11yProps(\n {\n id: _props.id,\n 'aria-label': _props.ariaLabel,\n 'aria-describedby': _props.ariaDescribedBy,\n },\n {\n class: getAvatarClass(),\n style: getAvatarStyle(),\n },\n ),\n children,\n );\n };\n },\n});\n\nexport type { AvatarProps, AvatarSlots };\n","/**\n * @lytjs/ui - Card 组件\n *\n * 卡片组件,用于包裹内容\n */\n\nimport type { CardProps, CardSlots, CardSetupProps } from './types';\nimport { defineComponent, type PropType } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\nexport const Card = defineComponent({\n name: 'LytCard',\n\n props: {\n header: { type: String, default: '' },\n bodyStyle: { type: Object as PropType<Record<string, string>>, default: () => ({}) },\n shadow: { type: String, default: 'always' },\n class: { type: String, default: '' },\n style: {\n type: [String, Object] as unknown as PropType<string | Record<string, string>>,\n default: '',\n },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>, { slots }) {\n const _props = props as CardSetupProps;\n\n const getCardClass = () => {\n const classes = ['lyt-card'];\n if (_props.shadow) classes.push(`lyt-card--shadow-${_props.shadow}`);\n if (_props.class) classes.push(_props.class);\n return classes.join(' ');\n };\n\n const getCardStyle = () => {\n const style: Record<string, string> = {};\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n return () => {\n const children: VNode[] = [];\n\n if (_props.header || slots.header) {\n const headerContent: VNode[] = [];\n if (slots.header) {\n const slotContent = slots.header();\n if (Array.isArray(slotContent)) {\n headerContent.push(...(slotContent as VNode[]));\n } else if (slotContent) {\n headerContent.push(slotContent as VNode);\n }\n } else if (_props.header) {\n headerContent.push(createVNode('span', {}, _props.header));\n }\n children.push(\n createVNode(\n 'div',\n {\n class: 'lyt-card__header',\n },\n headerContent,\n ),\n );\n }\n\n const bodyContent: VNode[] = [];\n if (slots.default) {\n const slotContent = slots.default();\n if (Array.isArray(slotContent)) {\n bodyContent.push(...(slotContent as VNode[]));\n } else if (slotContent) {\n bodyContent.push(slotContent as VNode);\n }\n }\n children.push(\n createVNode(\n 'div',\n {\n class: 'lyt-card__body',\n style: _props.bodyStyle as string | Record<string, string>,\n },\n bodyContent,\n ),\n );\n\n return createVNode(\n 'div',\n mergeA11yProps(\n {\n id: _props.id,\n 'aria-label': _props.ariaLabel,\n 'aria-describedby': _props.ariaDescribedBy,\n },\n {\n class: getCardClass(),\n style: getCardStyle(),\n },\n ),\n children,\n );\n };\n },\n});\n\nexport type { CardProps, CardSlots };\n","/**\n * @lytjs/ui - Timeline 时间轴组件\n *\n * 时间轴组件,用于按时间顺序展示事件\n */\n\nimport type { TimelineProps, TimelineSlots, TimelineSetupProps } from './types';\nimport { defineComponent, type PropType } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\n/**\n * Timeline 时间轴组件\n */\nexport const Timeline = defineComponent({\n name: 'LytTimeline',\n\n props: {\n reverse: { type: Boolean, default: false },\n mode: { type: String as () => 'left' | 'right' | 'alternate', default: 'left' },\n class: { type: String, default: '' },\n style: {\n type: [String, Object] as unknown as PropType<string | Record<string, string>>,\n default: '',\n },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>, { slots }) {\n const _props = props as TimelineSetupProps;\n\n const getTimelineClass = () => {\n const classes = ['lyt-timeline'];\n if (_props.reverse) classes.push('lyt-timeline--reverse');\n if (_props.mode) classes.push(`lyt-timeline--${_props.mode}`);\n if (_props.class) classes.push(_props.class);\n return classes.join(' ');\n };\n\n const getTimelineStyle = () => {\n const style: Record<string, string> = {};\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n return () => {\n const children: VNode[] = [];\n\n if (slots.default) {\n const slotContent = slots.default();\n if (Array.isArray(slotContent)) {\n children.push(...(slotContent as VNode[]));\n }\n }\n\n return createVNode(\n 'div',\n mergeA11yProps(\n {\n id: _props.id,\n 'aria-label': _props.ariaLabel,\n 'aria-describedby': _props.ariaDescribedBy,\n },\n {\n class: getTimelineClass(),\n style: getTimelineStyle(),\n },\n ),\n children,\n );\n };\n },\n});\n\nexport type { TimelineProps, TimelineSlots };\n","/**\n * @lytjs/ui - TimelineItem 时间轴项组件\n *\n * 时间轴项组件,与 Timeline 配合使用\n */\n\nimport type { TimelineItemProps, TimelineItemSlots, TimelineItemSetupProps } from './types';\nimport { defineComponent, type PropType } from '@lytjs/component';\nimport { createVNode, createTextVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\n/**\n * TimelineItem 时间轴项组件\n */\nexport const TimelineItem = defineComponent({\n name: 'LytTimelineItem',\n\n props: {\n color: { type: String, default: '' },\n type: {\n type: String as () => 'primary' | 'success' | 'warning' | 'danger' | 'info',\n default: '',\n },\n size: { type: String as () => 'large' | 'default' | 'small', default: 'default' },\n dot: { type: [String, Object] as unknown as PropType<string | VNode>, default: '' },\n timestamp: { type: String, default: '' },\n placement: { type: String as () => 'top' | 'bottom', default: 'bottom' },\n hideTimestamp: { type: Boolean, default: false },\n class: { type: String, default: '' },\n style: {\n type: [String, Object] as unknown as PropType<string | Record<string, string>>,\n default: '',\n },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>, { slots }) {\n const _props = props as TimelineItemSetupProps;\n\n const getTimelineItemClass = () => {\n const classes = ['lyt-timeline-item'];\n if (_props.type) classes.push(`lyt-timeline-item--${_props.type}`);\n if (_props.size && _props.size !== 'default')\n classes.push(`lyt-timeline-item--${_props.size}`);\n if (_props.placement) classes.push(`lyt-timeline-item--${_props.placement}`);\n if (_props.hideTimestamp) classes.push('lyt-timeline-item--hide-timestamp');\n if (_props.class) classes.push(_props.class);\n return classes.join(' ');\n };\n\n const getTimelineItemStyle = () => {\n const style: Record<string, string> = {};\n if (_props.color) {\n style['--lyt-timeline-item-color'] = _props.color;\n }\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n const renderDot = () => {\n if (slots.dot) {\n const dotContent = slots.dot();\n if (Array.isArray(dotContent)) {\n return createVNode('div', { class: 'lyt-timeline-item__dot' }, dotContent as VNode[]);\n }\n }\n if (_props.dot) {\n if (typeof _props.dot === 'string') {\n return createVNode('div', { class: 'lyt-timeline-item__dot' }, [\n createTextVNode(_props.dot),\n ]);\n }\n return createVNode('div', { class: 'lyt-timeline-item__dot' }, [_props.dot as VNode]);\n }\n return createVNode('div', { class: 'lyt-timeline-item__dot' }, null);\n };\n\n return () => {\n const children: VNode[] = [];\n\n children.push(createVNode('div', { class: 'lyt-timeline-item__tail' }, null));\n children.push(renderDot());\n\n const wrapperChildren: VNode[] = [];\n\n if (_props.timestamp && !_props.hideTimestamp) {\n wrapperChildren.push(\n createVNode('div', { class: 'lyt-timeline-item__timestamp' }, [\n createTextVNode(_props.timestamp),\n ]),\n );\n }\n\n const contentChildren: VNode[] = [];\n if (slots.default) {\n const slotContent = slots.default();\n if (Array.isArray(slotContent)) {\n contentChildren.push(...(slotContent as VNode[]));\n }\n }\n wrapperChildren.push(\n createVNode('div', { class: 'lyt-timeline-item__content' }, contentChildren),\n );\n\n children.push(createVNode('div', { class: 'lyt-timeline-item__wrapper' }, wrapperChildren));\n\n return createVNode(\n 'div',\n mergeA11yProps(\n {\n id: _props.id,\n 'aria-label': _props.ariaLabel,\n 'aria-describedby': _props.ariaDescribedBy,\n },\n {\n class: getTimelineItemClass(),\n style: getTimelineItemStyle(),\n },\n ),\n children,\n );\n };\n },\n});\n\nexport type { TimelineItemProps, TimelineItemSlots };\n","/**\n * @lytjs/ui - Steps 步骤条组件\n *\n * 步骤条组件,用于引导用户按照流程完成任务\n */\n\nimport type { StepsProps, StepsSlots, StepsSetupProps } from './types';\nimport { defineComponent, type PropType } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\n/**\n * Steps 步骤条组件\n */\nexport const Steps = defineComponent({\n name: 'LytSteps',\n\n props: {\n active: { type: Number, default: 0 },\n processStatus: {\n type: String as () => 'process' | 'finish' | 'error' | 'success',\n default: 'process',\n },\n finishStatus: {\n type: String as () => 'wait' | 'process' | 'finish' | 'error' | 'success',\n default: 'success',\n },\n direction: { type: String as () => 'horizontal' | 'vertical', default: 'horizontal' },\n alignCenter: { type: Boolean, default: false },\n simple: { type: Boolean, default: false },\n class: { type: String, default: '' },\n style: {\n type: [String, Object] as unknown as PropType<string | Record<string, string>>,\n default: '',\n },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n onChange: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots }) {\n const _props = props as StepsSetupProps;\n\n const getStepsClass = () => {\n const classes = ['lyt-steps'];\n if (_props.direction) classes.push(`lyt-steps--${_props.direction}`);\n if (_props.simple) classes.push('lyt-steps--simple');\n if (_props.alignCenter) classes.push('lyt-steps--align-center');\n if (_props.class) classes.push(_props.class);\n return classes.join(' ');\n };\n\n const getStepsStyle = () => {\n const style: Record<string, string> = {};\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n return () => {\n const children: VNode[] = [];\n\n if (slots.default) {\n const slotContent = slots.default();\n if (Array.isArray(slotContent)) {\n children.push(...(slotContent as VNode[]));\n }\n }\n\n return createVNode(\n 'div',\n mergeA11yProps(\n {\n id: _props.id,\n 'aria-label': _props.ariaLabel,\n 'aria-describedby': _props.ariaDescribedBy,\n role: 'navigation',\n },\n {\n class: getStepsClass(),\n style: getStepsStyle(),\n },\n ),\n children,\n );\n };\n },\n});\n\nexport type { StepsProps, StepsSlots };\n","/**\n * @lytjs/ui - Step 步骤项组件\n *\n * 步骤项组件,与 Steps 配合使用\n */\n\nimport type { StepProps, StepSlots, StepSetupProps } from './types';\nimport { defineComponent, type PropType } from '@lytjs/component';\nimport { createVNode, createTextVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\n/**\n * Step 步骤项组件\n */\nexport const Step = defineComponent({\n name: 'LytStep',\n\n props: {\n title: { type: String, default: '' },\n description: { type: String, default: '' },\n icon: { type: [String, Object] as unknown as PropType<string | VNode>, default: '' },\n status: {\n type: String as () => 'wait' | 'process' | 'finish' | 'error' | 'success',\n default: '',\n },\n class: { type: String, default: '' },\n style: {\n type: [String, Object] as unknown as PropType<string | Record<string, string>>,\n default: '',\n },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>, { slots }) {\n const _props = props as StepSetupProps;\n\n const getStepClass = () => {\n const classes = ['lyt-step'];\n if (_props.status) classes.push(`lyt-step--${_props.status}`);\n if (_props.class) classes.push(_props.class);\n return classes.join(' ');\n };\n\n const getStepStyle = () => {\n const style: Record<string, string> = {};\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n const renderIcon = () => {\n if (slots.icon) {\n const iconContent = slots.icon();\n if (Array.isArray(iconContent)) {\n return createVNode('div', { class: 'lyt-step__icon' }, iconContent as VNode[]);\n }\n }\n if (_props.icon) {\n if (typeof _props.icon === 'string') {\n return createVNode('div', { class: 'lyt-step__icon' }, [createTextVNode(_props.icon)]);\n }\n return createVNode('div', { class: 'lyt-step__icon' }, [_props.icon as VNode]);\n }\n return createVNode('div', { class: 'lyt-step__icon' }, null);\n };\n\n return () => {\n const children: VNode[] = [];\n\n children.push(renderIcon());\n\n const contentChildren: VNode[] = [];\n\n if (slots.title || _props.title) {\n const titleChildren: VNode[] = [];\n if (slots.title) {\n const titleContent = slots.title();\n if (Array.isArray(titleContent)) {\n titleChildren.push(...(titleContent as VNode[]));\n }\n } else {\n titleChildren.push(createTextVNode(_props.title));\n }\n contentChildren.push(createVNode('div', { class: 'lyt-step__title' }, titleChildren));\n }\n\n if (slots.description || _props.description) {\n const descChildren: VNode[] = [];\n if (slots.description) {\n const descContent = slots.description();\n if (Array.isArray(descContent)) {\n descChildren.push(...(descContent as VNode[]));\n }\n } else {\n descChildren.push(createTextVNode(_props.description));\n }\n contentChildren.push(createVNode('div', { class: 'lyt-step__description' }, descChildren));\n }\n\n children.push(createVNode('div', { class: 'lyt-step__content' }, contentChildren));\n\n return createVNode(\n 'div',\n mergeA11yProps(\n {\n id: _props.id,\n 'aria-label': _props.ariaLabel || _props.title,\n 'aria-describedby': _props.ariaDescribedBy,\n },\n {\n class: getStepClass(),\n style: getStepStyle(),\n },\n ),\n children,\n );\n };\n },\n});\n\nexport type { StepProps, StepSlots };\n","/**\n * @lytjs/ui - Carousel 走马灯组件\n *\n * 走马灯组件,用于展示轮播内容\n */\n\nimport type { CarouselProps, CarouselSlots, CarouselSetupProps } from './types';\nimport { defineComponent, type PropType } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\nexport const Carousel = defineComponent({\n name: 'LytCarousel',\n\n props: {\n initialIndex: { type: Number, default: 0 },\n height: { type: String, default: '300px' },\n trigger: { type: String as () => 'click' | 'hover', default: 'hover' },\n autoplay: { type: Boolean, default: true },\n interval: { type: Number, default: 3000 },\n indicatorPosition: { type: String as () => 'outside' | 'none', default: '' },\n arrow: { type: String as () => 'always' | 'hover' | 'never', default: 'hover' },\n type: { type: String as () => '' | 'card', default: '' },\n loop: { type: Boolean, default: true },\n direction: { type: String as () => 'horizontal' | 'vertical', default: 'horizontal' },\n class: { type: String, default: '' },\n style: {\n type: [String, Object] as unknown as PropType<string | Record<string, string>>,\n default: '',\n },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n onChange: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots }) {\n const _props = props as CarouselSetupProps;\n\n return () => {\n const children: VNode[] = [];\n\n const containerChildren: VNode[] = [];\n if (slots.default) {\n const slotContent = slots.default();\n if (Array.isArray(slotContent)) {\n containerChildren.push(...(slotContent as VNode[]));\n } else if (slotContent) {\n containerChildren.push(slotContent as VNode);\n }\n }\n children.push(createVNode('div', { class: 'lyt-carousel__container' }, containerChildren));\n\n const getCarouselClass = () => {\n const classes = ['lyt-carousel'];\n if (_props.type) classes.push(`lyt-carousel--${_props.type}`);\n if (_props.direction) classes.push(`lyt-carousel--${_props.direction}`);\n if (_props.indicatorPosition)\n classes.push(`lyt-carousel--indicator-${_props.indicatorPosition}`);\n if (_props.class) classes.push(_props.class);\n return classes.join(' ');\n };\n\n const getCarouselStyle = () => {\n const style: Record<string, string> = {};\n if (_props.height) {\n style.height = _props.height;\n }\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n return createVNode(\n 'div',\n mergeA11yProps(\n {\n id: _props.id,\n 'aria-label': _props.ariaLabel,\n 'aria-describedby': _props.ariaDescribedBy,\n role: 'region',\n },\n {\n class: getCarouselClass(),\n style: getCarouselStyle(),\n },\n ),\n children,\n );\n };\n },\n});\n\nexport type { CarouselProps, CarouselSlots };\n","/**\n * @lytjs/ui - CarouselItem 走马灯项组件\n *\n * 走马灯项组件,与 Carousel 配合使用\n */\n\nimport type { CarouselItemProps, CarouselItemSlots, CarouselItemSetupProps } from './types';\nimport { defineComponent, type PropType } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\n/**\n * CarouselItem 走马灯项组件\n */\nexport const CarouselItem = defineComponent({\n name: 'LytCarouselItem',\n\n props: {\n name: { type: [String, Number] as unknown as PropType<string | number>, default: '' },\n label: { type: String, default: '' },\n class: { type: String, default: '' },\n style: {\n type: [String, Object] as unknown as PropType<string | Record<string, string>>,\n default: '',\n },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>, { slots }) {\n const _props = props as CarouselItemSetupProps;\n\n const getCarouselItemClass = () => {\n const classes = ['lyt-carousel-item'];\n if (_props.class) classes.push(_props.class as string);\n return classes.join(' ');\n };\n\n const getCarouselItemStyle = () => {\n const style: Record<string, string> = {};\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n return () => {\n const children: VNode[] = [];\n\n if (slots.default) {\n const slotContent = slots.default();\n if (Array.isArray(slotContent)) {\n children.push(...(slotContent as VNode[]));\n } else if (slotContent) {\n children.push(slotContent as VNode);\n }\n }\n\n return createVNode(\n 'div',\n mergeA11yProps(\n {\n id: _props.id as string,\n 'aria-label': (_props.ariaLabel as string) || (_props.label as string),\n 'aria-describedby': _props.ariaDescribedBy as string,\n },\n {\n class: getCarouselItemClass(),\n style: getCarouselItemStyle(),\n },\n ),\n children,\n );\n };\n },\n});\n\nexport type { CarouselItemProps, CarouselItemSlots };\n","/**\n * @lytjs/ui - Popconfirm 气泡确认框组件\n *\n * 气泡确认框组件,用于操作确认\n */\n\nimport type { PopconfirmProps, PopconfirmSlots, PopconfirmSetupProps } from './types';\nimport { defineComponent, type PropType } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { signal } from '@lytjs/reactivity';\nimport { getDialogA11yProps, getButtonA11yProps, mergeA11yProps } from '@lytjs/common-a11y';\n\nexport const Popconfirm = defineComponent({\n name: 'LytPopconfirm',\n\n props: {\n title: { type: String, default: '' },\n confirmButtonText: { type: String, default: '确定' },\n cancelButtonText: { type: String, default: '取消' },\n confirmButtonType: { type: String, default: 'primary' },\n cancelButtonType: { type: String, default: '' },\n icon: { type: String, default: '' },\n iconColor: { type: String, default: '' },\n hideIcon: { type: Boolean, default: false },\n disabled: { type: Boolean, default: false },\n width: { type: Number, default: 0 },\n class: { type: String, default: '' },\n style: {\n type: [String, Object] as unknown as PropType<string | Record<string, string>>,\n default: '',\n },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n onConfirm: { type: Function, default: undefined },\n onCancel: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots, emit }) {\n const _props = props as PopconfirmSetupProps;\n const visible = signal(false);\n\n const getPopconfirmClass = () => {\n const classes = ['lyt-popconfirm'];\n if (_props.class) classes.push(_props.class as string);\n return classes.join(' ');\n };\n\n const getPopconfirmStyle = () => {\n const style: Record<string, string> = {};\n if (_props.width) {\n style.width = `${_props.width}px`;\n }\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n const handleConfirm = () => {\n visible.set(false);\n emit('confirm');\n _props.onConfirm?.();\n };\n\n const handleCancel = () => {\n visible.set(false);\n emit('cancel');\n _props.onCancel?.();\n };\n\n return () => {\n const children: VNode[] = [];\n\n if (slots.reference) {\n const refContent = slots.reference();\n if (Array.isArray(refContent)) {\n children.push(\n createVNode('div', { class: 'lyt-popconfirm__reference' }, refContent as VNode[]),\n );\n }\n }\n\n const popupChildren: VNode[] = [];\n\n const contentChildren: VNode[] = [];\n\n if (!_props.hideIcon) {\n const iconChildren: VNode[] = [];\n if (slots.icon) {\n const iconContent = slots.icon();\n if (Array.isArray(iconContent)) {\n iconChildren.push(...(iconContent as VNode[]));\n }\n }\n contentChildren.push(createVNode('span', { class: 'lyt-popconfirm__icon' }, iconChildren));\n }\n\n const titleId = _props.id ? `${_props.id}-title` : undefined;\n if (slots.default || _props.title) {\n const titleChildren: VNode[] = [];\n if (slots.default) {\n const titleContent = slots.default();\n if (Array.isArray(titleContent)) {\n titleChildren.push(...(titleContent as VNode[]));\n }\n } else {\n titleChildren.push(createVNode('span', {}, _props.title as string));\n }\n contentChildren.push(\n createVNode(\n 'span',\n {\n class: 'lyt-popconfirm__title',\n id: titleId,\n },\n titleChildren,\n ),\n );\n }\n\n popupChildren.push(createVNode('div', { class: 'lyt-popconfirm__content' }, contentChildren));\n\n const buttonChildren: VNode[] = [];\n const cancelBtnProps = getButtonA11yProps({ ariaLabel: _props.cancelButtonText as string });\n buttonChildren.push(\n createVNode(\n 'button',\n mergeA11yProps(cancelBtnProps, {\n class: 'lyt-button lyt-button--small',\n onClick: handleCancel,\n }),\n [createVNode('span', {}, _props.cancelButtonText as string)],\n ),\n );\n\n const confirmBtnProps = getButtonA11yProps({ ariaLabel: _props.confirmButtonText as string });\n buttonChildren.push(\n createVNode(\n 'button',\n mergeA11yProps(confirmBtnProps, {\n class: `lyt-button lyt-button--small lyt-button--${_props.confirmButtonType}`,\n onClick: handleConfirm,\n }),\n [createVNode('span', {}, _props.confirmButtonText as string)],\n ),\n );\n popupChildren.push(createVNode('div', { class: 'lyt-popconfirm__buttons' }, buttonChildren));\n\n const a11yProps = getDialogA11yProps({\n id: _props.id as string,\n ariaLabel: (_props.ariaLabel as string) || (_props.title as string),\n ariaDescribedBy: (_props.ariaDescribedBy as string) || titleId,\n labelledBy: titleId,\n modal: true,\n });\n\n children.push(\n createVNode(\n 'div',\n mergeA11yProps(a11yProps, { class: 'lyt-popconfirm__popup' }),\n popupChildren,\n ),\n );\n\n return createVNode(\n 'div',\n {\n class: getPopconfirmClass(),\n style: getPopconfirmStyle(),\n },\n children,\n );\n };\n },\n});\n\nexport type { PopconfirmProps, PopconfirmSlots };\n","/**\n * @lytjs/ui - RichTextEditor 组件\n *\n * 轻量级富文本编辑器,使用原生 API 实现,零第三方依赖\n */\n\nimport { defineComponent, type PropType } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString } from '@lytjs/common-is';\nimport { signal } from '@lytjs/reactivity';\n\ntype FormatCommand =\n | 'bold'\n | 'italic'\n | 'underline'\n | 'strikeThrough'\n | 'justifyLeft'\n | 'justifyCenter'\n | 'justifyRight'\n | 'insertUnorderedList'\n | 'insertOrderedList'\n | 'indent'\n | 'outdent'\n | 'removeFormat';\n\nexport const RichTextEditor = defineComponent({\n name: 'LytRichTextEditor',\n\n props: {\n modelValue: { type: String, default: '' },\n placeholder: { type: String, default: '请输入内容' },\n disabled: { type: Boolean, default: false },\n readonly: { type: Boolean, default: false },\n class: { type: String, default: '' },\n style: {\n type: [String, Object] as unknown as PropType<string | Record<string, string>>,\n default: '',\n },\n onChange: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots, emit }) {\n const _props = props as {\n modelValue?: string;\n placeholder?: string;\n disabled?: boolean;\n readonly?: boolean;\n class?: string;\n style?: string | Record<string, string>;\n onChange?: (value: string) => void;\n };\n\n const isFocused = signal(false);\n const editorRef = { current: null as HTMLElement | null };\n\n const execCommand = (command: FormatCommand) => {\n if (_props.disabled || _props.readonly) return;\n\n const selection = window.getSelection();\n if (!selection || selection.rangeCount === 0) return;\n\n document.execCommand(command, false);\n handleInput();\n };\n\n const handleInput = () => {\n if (_props.disabled || _props.readonly) return;\n const content = editorRef.current?.innerHTML || '';\n emit('update:modelValue', content);\n _props.onChange?.(content);\n };\n\n const getEditorClass = () => {\n const classes = ['lyt-rich-text-editor'];\n if (isFocused()) classes.push('is-focused');\n if (_props.disabled) classes.push('is-disabled');\n if (_props.readonly) classes.push('is-readonly');\n if (_props.class) classes.push(_props.class);\n return classes.join(' ');\n };\n\n const toolbarItems: { command: FormatCommand; icon: string; title: string }[] = [\n { command: 'bold', icon: 'B', title: '粗体' },\n { command: 'italic', icon: 'I', title: '斜体' },\n { command: 'underline', icon: 'U', title: '下划线' },\n { command: 'strikeThrough', icon: 'S', title: '删除线' },\n { command: 'justifyLeft', icon: '◢', title: '左对齐' },\n { command: 'justifyCenter', icon: '◤', title: '居中' },\n { command: 'justifyRight', icon: '◣', title: '右对齐' },\n { command: 'insertUnorderedList', icon: '•', title: '无序列表' },\n { command: 'insertOrderedList', icon: '1.', title: '有序列表' },\n { command: 'indent', icon: '→|', title: '缩进' },\n { command: 'outdent', icon: '|←', title: '取消缩进' },\n { command: 'removeFormat', icon: '×', title: '清除格式' },\n ];\n\n return () => {\n const children: VNode[] = [];\n\n const toolbarChildren: VNode[] = toolbarItems.map((item) => {\n const btn = createVNode(\n 'button',\n {\n type: 'button',\n class: 'lyt-rich-text-editor__toolbar-btn',\n title: item.title,\n disabled: _props.disabled || _props.readonly,\n onClick: () => execCommand(item.command),\n },\n [createVNode('span', {}, item.icon)],\n );\n return btn;\n });\n\n children.push(\n createVNode('div', { class: 'lyt-rich-text-editor__toolbar' }, toolbarChildren),\n );\n\n const editorContent = _props.modelValue || '';\n children.push(\n createVNode('div', {\n ref: editorRef,\n class: 'lyt-rich-text-editor__content',\n contentEditable: !_props.disabled && !_props.readonly,\n 'data-placeholder': _props.placeholder,\n onInput: handleInput,\n onFocus: () => isFocused.set(true),\n onBlur: () => isFocused.set(false),\n innerHTML: editorContent,\n }),\n );\n\n if (slots.footer) {\n const footerContent = slots.footer();\n children.push(\n createVNode('div', { class: 'lyt-rich-text-editor__footer' }, footerContent as VNode[]),\n );\n }\n\n const editorStyle: Record<string, string> = {};\n if (_props.style) {\n if (isString(_props.style)) {\n Object.assign(editorStyle, { cssText: _props.style });\n } else {\n Object.assign(editorStyle, _props.style);\n }\n }\n\n return createVNode(\n 'div',\n {\n class: getEditorClass(),\n style: editorStyle,\n },\n children,\n );\n };\n },\n});\n","/**\n * @lytjs/ui - 入口文件\n *\n * LytJS UI 组件库\n */\n\n// 导入样式\nimport './styles/index.css';\n\n// 组件导出\nexport { Button } from './components/Button';\nexport { Input } from './components/Input';\nexport { Dialog } from './components/Dialog';\nexport { Select } from './components/Select';\nexport { Tabs, TabPane } from './components/Tabs';\nexport { Table } from './components/Table';\nexport { Form, FormItem } from './components/Form';\nexport { Transition, TransitionGroup } from './components/Transition';\nexport { DatePicker } from './components/DatePicker';\nexport { Tree } from './components/Tree';\nexport { Menu } from './components/Menu';\nexport { Cascader } from './components/Cascader';\nexport { TreeSelect } from './components/TreeSelect';\nexport { Transfer } from './components/Transfer';\nexport { Descriptions, DescriptionsItem } from './components/Descriptions';\nexport { Modal } from './components/Modal';\nexport { Drawer } from './components/Drawer';\nexport { Upload } from './components/Upload';\nexport { Notification } from './components/Notification';\nexport { Calendar } from './components/Calendar';\nexport { Image } from './components/Image';\nexport { Rate } from './components/Rate';\nexport { ColorPicker } from './components/ColorPicker';\n\n// 新组件导出\nexport { Icon } from './components/Icon';\nexport { Badge } from './components/Badge';\nexport { Tag } from './components/Tag';\nexport { Spin } from './components/Spin';\nexport { Empty } from './components/Empty';\nexport { Link } from './components/Link';\nexport { Container } from './components/Container';\nexport { Divider } from './components/Divider';\nexport { Toast } from './components/Toast';\nexport { Alert } from './components/Alert';\nexport { Tooltip } from './components/Tooltip';\nexport { Checkbox } from './components/Checkbox';\nexport { CheckboxGroup } from './components/CheckboxGroup';\nexport { Radio } from './components/Radio';\nexport { RadioGroup } from './components/RadioGroup';\nexport { Switch } from './components/Switch';\nexport { InputNumber } from './components/InputNumber';\nexport { Progress } from './components/Progress';\nexport { Slider } from './components/Slider';\nexport { Avatar } from './components/Avatar';\nexport { Card } from './components/Card';\nexport { Timeline } from './components/Timeline';\nexport { TimelineItem } from './components/TimelineItem';\nexport { Steps } from './components/Steps';\nexport { Step } from './components/Step';\nexport { Carousel } from './components/Carousel';\nexport { CarouselItem } from './components/CarouselItem';\nexport { Popconfirm } from './components/Popconfirm';\nexport { RichTextEditor } from './components/RichTextEditor';\n\n// 类型导出\nexport type {\n ComponentSize,\n ComponentStatus,\n ButtonProps,\n ButtonSlots,\n InputProps,\n InputSlots,\n DialogProps,\n DialogSlots,\n DialogSetupProps,\n SelectProps,\n SelectSlots,\n SelectOption,\n SelectSetupProps,\n CascaderProps,\n CascaderSlots,\n CascaderOption,\n CascaderSetupProps,\n TabsProps,\n TabsSlots,\n TabPaneProps,\n TableProps,\n TableSlots,\n TableSetupProps,\n TableColumn,\n TableData,\n TableRowData,\n IconProps,\n IconSlots,\n BadgeProps,\n BadgeSlots,\n BadgeSetupProps,\n TagProps,\n TagSlots,\n TagSetupProps,\n SpinProps,\n SpinSlots,\n EmptyProps,\n EmptySlots,\n LinkProps,\n LinkSlots,\n ContainerProps,\n ContainerSlots,\n DividerProps,\n DividerSlots,\n ToastProps,\n ToastSlots,\n ToastSetupProps,\n AlertProps,\n AlertSlots,\n AlertType,\n AlertEffect,\n AlertSetupProps,\n TooltipProps,\n TooltipSlots,\n CheckboxProps,\n CheckboxSlots,\n CheckboxSetupProps,\n RadioProps,\n RadioSlots,\n RadioSetupProps,\n SwitchProps,\n SwitchSlots,\n SwitchSetupProps,\n InputNumberProps,\n InputNumberSlots,\n InputNumberSetupProps,\n CheckboxGroupProps,\n CheckboxGroupSlots,\n CheckboxGroupSetupProps,\n RadioGroupProps,\n RadioGroupSlots,\n RadioGroupSetupProps,\n ProgressProps,\n ProgressSlots,\n ProgressSetupProps,\n SliderProps,\n SliderSlots,\n SliderSetupProps,\n AvatarProps,\n AvatarSlots,\n AvatarSetupProps,\n CardProps,\n CardSlots,\n CardSetupProps,\n TimelineProps,\n TimelineSlots,\n TimelineSetupProps,\n TimelineItemProps,\n TimelineItemSlots,\n TimelineItemSetupProps,\n StepsProps,\n StepsSlots,\n StepsSetupProps,\n StepProps,\n StepSlots,\n StepSetupProps,\n CarouselProps,\n CarouselSlots,\n CarouselSetupProps,\n CarouselItemProps,\n CarouselItemSlots,\n CarouselItemSetupProps,\n PopconfirmProps,\n PopconfirmSlots,\n PopconfirmSetupProps,\n ImageProps,\n ImageSlots,\n ImageFit,\n NotificationProps,\n NotificationSlots,\n NotificationOptions,\n NotificationType,\n NotificationPosition,\n CalendarProps,\n CalendarSlots,\n CalendarEvent,\n CalendarView,\n ColorPickerProps,\n ColorPickerSlots,\n DescriptionsProps,\n DescriptionsSlots,\n DescriptionsItemProps,\n DescriptionsItemSlots,\n DescriptionsItemData,\n DrawerProps,\n DrawerSlots,\n DrawerDirection,\n RateProps,\n RateSlots,\n TransferProps,\n TransferSlots,\n TransferOption,\n TransferSetupProps,\n TreeProps,\n TreeSlots,\n TreeNode,\n TreeSetupProps,\n TreeSelectProps,\n TreeSelectSlots,\n TreeSelectNode,\n TreeSelectSetupProps,\n UploadProps,\n UploadSlots,\n UploadFile,\n UploadFileStatus,\n UploadSetupProps,\n DatePickerProps,\n DatePickerSlots,\n DatePickerType,\n DatePickerShortcut,\n DatePickerSetupProps,\n FormProps,\n FormSlots,\n FormRule,\n FormRules,\n FormSetupProps,\n FormItemProps,\n FormItemSlots,\n FormItemSetupProps,\n FormValidateStatus,\n MenuProps,\n MenuSlots,\n MenuItem,\n MenuSetupProps,\n RichTextEditorProps,\n RichTextEditorSlots,\n RichTextEditorSetupProps,\n} from './components/types';\n\n// 组件安装\nimport type { AppContext } from '@lytjs/component';\nimport { Button } from './components/Button';\nimport { Input } from './components/Input';\nimport { Dialog } from './components/Dialog';\nimport { Select } from './components/Select';\nimport { Tabs, TabPane } from './components/Tabs';\nimport { Table } from './components/Table';\nimport { Form, FormItem } from './components/Form';\nimport { Transition, TransitionGroup } from './components/Transition';\nimport { DatePicker } from './components/DatePicker';\nimport { Tree } from './components/Tree';\nimport { Menu } from './components/Menu';\nimport { Cascader } from './components/Cascader';\nimport { TreeSelect } from './components/TreeSelect';\nimport { Transfer } from './components/Transfer';\nimport { Descriptions, DescriptionsItem } from './components/Descriptions';\nimport { Modal } from './components/Modal';\nimport { Drawer } from './components/Drawer';\nimport { Upload } from './components/Upload';\nimport { Notification } from './components/Notification';\nimport { Calendar } from './components/Calendar';\nimport { Image } from './components/Image';\nimport { Rate } from './components/Rate';\nimport { ColorPicker } from './components/ColorPicker';\nimport { Icon } from './components/Icon';\nimport { Badge } from './components/Badge';\nimport { Tag } from './components/Tag';\nimport { Spin } from './components/Spin';\nimport { Empty } from './components/Empty';\nimport { Link } from './components/Link';\nimport { Container } from './components/Container';\nimport { Divider } from './components/Divider';\nimport { Toast } from './components/Toast';\nimport { Alert } from './components/Alert';\nimport { Tooltip } from './components/Tooltip';\nimport { Checkbox } from './components/Checkbox';\nimport { CheckboxGroup } from './components/CheckboxGroup';\nimport { Radio } from './components/Radio';\nimport { RadioGroup } from './components/RadioGroup';\nimport { Switch } from './components/Switch';\nimport { InputNumber } from './components/InputNumber';\nimport { Progress } from './components/Progress';\nimport { Slider } from './components/Slider';\nimport { Avatar } from './components/Avatar';\nimport { Card } from './components/Card';\n\n/**\n * 安装所有组件\n */\nexport function install(app: AppContext): void {\n app.components['LytButton'] = Button;\n app.components['LytInput'] = Input;\n app.components['LytDialog'] = Dialog;\n app.components['LytSelect'] = Select;\n app.components['LytTabs'] = Tabs;\n app.components['LytTabPane'] = TabPane;\n app.components['LytTable'] = Table;\n app.components['LytForm'] = Form;\n app.components['LytFormItem'] = FormItem;\n app.components['LytTransition'] = Transition;\n app.components['LytTransitionGroup'] = TransitionGroup;\n app.components['LytDatePicker'] = DatePicker;\n app.components['LytTree'] = Tree;\n app.components['LytMenu'] = Menu;\n app.components['LytCascader'] = Cascader;\n app.components['LytTreeSelect'] = TreeSelect;\n app.components['LytTransfer'] = Transfer;\n app.components['LytDescriptions'] = Descriptions;\n app.components['LytDescriptionsItem'] = DescriptionsItem;\n app.components['LytModal'] = Modal;\n app.components['LytDrawer'] = Drawer;\n app.components['LytUpload'] = Upload;\n app.components['LytNotification'] = Notification;\n app.components['LytCalendar'] = Calendar;\n app.components['LytImage'] = Image;\n app.components['LytRate'] = Rate;\n app.components['LytColorPicker'] = ColorPicker;\n // 新组件\n app.components['LytIcon'] = Icon;\n app.components['LytBadge'] = Badge;\n app.components['LytTag'] = Tag;\n app.components['LytSpin'] = Spin;\n app.components['LytEmpty'] = Empty;\n app.components['LytLink'] = Link;\n app.components['LytContainer'] = Container;\n app.components['LytDivider'] = Divider;\n app.components['LytToast'] = Toast;\n app.components['LytAlert'] = Alert;\n app.components['LytTooltip'] = Tooltip;\n app.components['LytCheckbox'] = Checkbox;\n app.components['LytCheckboxGroup'] = CheckboxGroup;\n app.components['LytRadio'] = Radio;\n app.components['LytRadioGroup'] = RadioGroup;\n app.components['LytSwitch'] = Switch;\n app.components['LytInputNumber'] = InputNumber;\n app.components['LytProgress'] = Progress;\n app.components['LytSlider'] = Slider;\n app.components['LytAvatar'] = Avatar;\n app.components['LytCard'] = Card;\n}\n\nexport default {\n install,\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/Button.ts","../src/components/Input.ts","../src/components/Dialog.ts","../src/components/Select.ts","../src/components/Tabs.ts","../src/components/Table.ts","../src/components/Form.ts","../src/components/Transition.ts","../src/components/DatePicker.ts","../src/components/Tree.ts","../src/components/Menu.ts","../src/components/Cascader.ts","../src/components/TreeSelect.ts","../src/components/Transfer.ts","../src/components/Descriptions.ts","../src/components/Modal.ts","../src/components/Drawer.ts","../src/components/Upload.ts","../src/components/Notification.ts","../src/components/Calendar.ts","../src/components/Image.ts","../src/components/Rate.ts","../src/components/ColorPicker.ts","../src/components/Icon.ts","../src/components/Badge.ts","../src/components/Tag.ts","../src/components/Spin.ts","../src/components/Empty.ts","../src/components/Link.ts","../src/components/Container.ts","../src/components/Divider.ts","../src/components/Toast.ts","../src/components/Alert.ts","../src/components/Tooltip.ts","../src/components/Checkbox.ts","../src/components/CheckboxGroup.ts","../src/components/Radio.ts","../src/components/RadioGroup.ts","../src/components/Switch.ts","../src/components/InputNumber.ts","../src/components/Progress.ts","../src/components/Slider.ts","../src/components/Avatar.ts","../src/components/Card.ts","../src/components/Timeline.ts","../src/components/TimelineItem.ts","../src/components/Steps.ts","../src/components/Step.ts","../src/components/Carousel.ts","../src/components/CarouselItem.ts","../src/components/Popconfirm.ts","../src/components/RichTextEditor.ts","../src/index.ts"],"names":["defineComponent","isString","isObject","createVNode","getButtonA11yProps","mergeA11yProps","signal","getFormControlA11yProps","createTextVNode","watch","effect","getDialogA11yProps","FOCUSABLE_SELECTORS","getComboboxA11yProps","p","panelId","getTabA11yProps","getTabpanelA11yProps","getTablistA11yProps","getInputControlA11yProps","getGroupA11yProps","getDaysInMonth","getFirstDayOfMonth","isSameDay","reactive","onUnmounted","computed","isArray","getSwitchA11yProps","getSpinbuttonA11yProps","getSliderA11yProps"],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * @lytjs/ui - Button 组件\n *\n * 基础按钮组件,支持多种类型、尺寸和状态\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { getButtonA11yProps, mergeA11yProps } from '@lytjs/common-a11y';\nimport type { ButtonSetupProps, ButtonSlots } from './types';\n\nexport const Button = defineComponent({\n name: 'LytButton',\n\n props: {\n type: { type: String, default: 'default' },\n size: { type: String, default: 'medium' },\n disabled: { type: Boolean, default: false },\n loading: { type: Boolean, default: false },\n plain: { type: Boolean, default: false },\n round: { type: Boolean, default: false },\n circle: { type: Boolean, default: false },\n nativeType: { type: String, default: 'button' },\n class: { type: String, default: '' },\n style: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n tabIndex: { type: Number, default: undefined },\n onClick: { type: Function, default: undefined },\n onKeydown: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: ButtonSlots }) {\n const p = props as ButtonSetupProps;\n\n const handleClick = (event: MouseEvent) => {\n if (p.disabled || p.loading) {\n event.preventDefault();\n return;\n }\n p.onClick?.(event);\n };\n\n const handleKeydown = (event: KeyboardEvent) => {\n if (p.disabled || p.loading) {\n return;\n }\n\n // 支持Enter和Space键触发按钮\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n handleClick(event as unknown as MouseEvent);\n }\n\n p.onKeydown?.(event);\n };\n\n const getButtonClass = () => {\n const classes = ['lyt-button'];\n if (p.type !== 'default') classes.push(`lyt-button--${p.type}`);\n if (p.size !== 'medium') classes.push(`lyt-button--${p.size}`);\n if (p.plain) classes.push('lyt-button--plain');\n if (p.round) classes.push('lyt-button--round');\n if (p.circle) classes.push('lyt-button--circle');\n if (p.disabled) classes.push('lyt-button--disabled');\n if (p.loading) classes.push('lyt-button--loading');\n if (p.class) classes.push(p.class);\n return classes.join(' ');\n };\n\n const getButtonStyle = () => {\n if (!p.style) return undefined;\n if (isString(p.style)) return p.style;\n if (isObject(p.style)) {\n return Object.entries(p.style)\n .map(([key, value]) => `${key}: ${value}`)\n .join('; ');\n }\n return undefined;\n };\n\n return () => {\n const children: VNode[] = [];\n\n if (p.loading) {\n children.push(\n createVNode('span', { class: 'lyt-button__loading' }, [\n createVNode('svg', { class: 'lyt-button__loading-icon', viewBox: '0 0 1024 1024' }, [\n createVNode('path', {\n d: 'M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z',\n fill: 'currentColor',\n }),\n ]),\n ]),\n );\n }\n\n if (slots.default) {\n children.push(createVNode('span', { class: 'lyt-button__text' }, slots.default()));\n }\n\n const isDisabled = p.disabled || p.loading;\n const a11yProps = getButtonA11yProps({\n ariaLabel: p.ariaLabel,\n ariaDescribedBy: p.ariaDescribedBy,\n disabled: isDisabled,\n tabIndex: p.tabIndex,\n });\n\n return createVNode(\n 'button',\n mergeA11yProps(a11yProps, {\n class: getButtonClass(),\n style: getButtonStyle(),\n type: p.nativeType,\n disabled: isDisabled,\n onClick: handleClick,\n onKeydown: handleKeydown,\n }),\n children,\n );\n };\n },\n});\n\nexport type { ButtonProps, ButtonSlots, ButtonSetupProps } from './types';\n","/**\n * @lytjs/ui - Input 组件\n *\n * 基础输入框组件,支持多种类型和状态\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, createTextVNode, type VNode } from '@lytjs/vdom';\nimport { signal } from '@lytjs/reactivity';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { getFormControlA11yProps, getButtonA11yProps, mergeA11yProps } from '@lytjs/common-a11y';\nimport type { InputSetupProps } from './types';\n\nexport const Input = defineComponent({\n name: 'LytInput',\n\n props: {\n modelValue: { type: [String, Number] as unknown as StringConstructor, default: '' },\n type: { type: String, default: 'text' },\n placeholder: { type: String, default: '' },\n disabled: { type: Boolean, default: false },\n readonly: { type: Boolean, default: false },\n clearable: { type: Boolean, default: false },\n showPassword: { type: Boolean, default: false },\n maxlength: { type: Number, default: undefined },\n minlength: { type: Number, default: undefined },\n size: { type: String, default: 'medium' },\n prefixIcon: { type: String, default: '' },\n suffixIcon: { type: String, default: '' },\n class: { type: String, default: '' },\n style: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n ariaInvalid: { type: Boolean, default: false },\n ariaRequired: { type: Boolean, default: false },\n autocomplete: { type: String, default: '' },\n name: { type: String, default: '' },\n id: { type: String, default: '' },\n tabIndex: { type: Number, default: undefined },\n },\n\n setup(props: Record<string, unknown>) {\n const p = props as InputSetupProps;\n const passwordVisible = signal(false);\n const isFocused = signal(false);\n\n const getInputClass = () => {\n const classes = ['lyt-input'];\n if (p.size !== 'medium') classes.push(`lyt-input--${p.size}`);\n if (p.disabled) classes.push('lyt-input--disabled');\n if (isFocused()) classes.push('lyt-input--focused');\n if (p.class) classes.push(p.class);\n return classes.join(' ');\n };\n\n const getInputStyle = () => {\n if (!p.style) return undefined;\n if (isString(p.style)) return p.style;\n if (isObject(p.style)) {\n return Object.entries(p.style)\n .map(([key, value]) => `${key}: ${value}`)\n .join('; ');\n }\n return undefined;\n };\n\n const getInputType = () => {\n if (p.type === 'password' && p.showPassword) {\n return passwordVisible() ? 'text' : 'password';\n }\n return p.type;\n };\n\n const handleInput = (e: Event) => {\n const target = e.target as HTMLInputElement;\n p.onInput?.(target.value);\n };\n\n const handleChange = (e: Event) => {\n const target = e.target as HTMLInputElement;\n p.onChange?.(target.value);\n };\n\n const handleFocus = (e: FocusEvent) => {\n isFocused.set(true);\n p.onFocus?.(e);\n };\n\n const handleBlur = (e: FocusEvent) => {\n isFocused.set(false);\n p.onBlur?.(e);\n };\n\n const handleClear = () => {\n p.onClear?.();\n p.onInput?.('');\n p.onChange?.('');\n };\n\n const togglePasswordVisibility = () => {\n passwordVisible.set(!passwordVisible());\n };\n\n return () => {\n const children: VNode[] = [];\n\n // 前缀图标\n if (p.prefixIcon) {\n children.push(\n createVNode('span', { class: 'lyt-input__prefix' }, [\n createVNode('i', { class: p.prefixIcon }, []),\n ]),\n );\n }\n\n // 输入框\n const a11yProps = getFormControlA11yProps({\n id: p.id,\n ariaLabel: p.ariaLabel,\n ariaDescribedBy: p.ariaDescribedBy,\n ariaInvalid: p.ariaInvalid,\n ariaRequired: p.ariaRequired,\n disabled: p.disabled,\n tabIndex: p.tabIndex,\n });\n const inputProps = mergeA11yProps(a11yProps, {\n class: 'lyt-input__inner',\n style: getInputStyle(),\n type: getInputType(),\n value: p.modelValue,\n placeholder: p.placeholder,\n disabled: p.disabled,\n readonly: p.readonly,\n maxlength: p.maxlength,\n minlength: p.minlength,\n 'aria-readonly': p.readonly,\n autocomplete: p.autocomplete,\n name: p.name,\n onInput: handleInput,\n onChange: handleChange,\n onFocus: handleFocus,\n onBlur: handleBlur,\n });\n children.push(createVNode('input', inputProps, []));\n\n // 后缀图标或清除按钮\n const suffixChildren: VNode[] = [];\n\n // 清除按钮\n if (p.clearable && p.modelValue) {\n const clearBtnProps = getButtonA11yProps({\n ariaLabel: 'Clear input',\n });\n suffixChildren.push(\n createVNode(\n 'span',\n mergeA11yProps(clearBtnProps, {\n class: 'lyt-input__clear',\n onClick: handleClear,\n }),\n [createTextVNode('×')],\n ),\n );\n }\n\n // 密码显示切换按钮\n if (p.type === 'password' && p.showPassword) {\n const toggleBtnProps = getButtonA11yProps({\n ariaLabel: passwordVisible() ? 'Hide password' : 'Show password',\n });\n suffixChildren.push(\n createVNode(\n 'span',\n mergeA11yProps(toggleBtnProps, {\n class: 'lyt-input__password',\n onClick: togglePasswordVisibility,\n }),\n [createTextVNode(passwordVisible() ? '🙈' : '👁️')],\n ),\n );\n }\n\n // 后缀图标\n if (p.suffixIcon) {\n suffixChildren.push(createVNode('i', { class: p.suffixIcon }, []));\n }\n\n if (suffixChildren.length > 0) {\n children.push(createVNode('span', { class: 'lyt-input__suffix' }, suffixChildren));\n }\n\n return createVNode('div', { class: getInputClass() }, children);\n };\n },\n});\n\nexport type { InputProps, InputSlots, InputSetupProps } from './types';\n","/**\n * @lytjs/ui - Dialog 组件(增强版)\n *\n * 对话框组件,增强 Accessibility 支持\n * - 焦点陷阱(Focus Trap)\n * - 焦点管理(打开聚焦,关闭返回)\n * - ESC 键关闭支持\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, createTextVNode, type VNode } from '@lytjs/vdom';\nimport { signal, watch, effect } from '@lytjs/reactivity';\nimport { getDialogA11yProps, getButtonA11yProps, mergeA11yProps } from '@lytjs/common-a11y';\nimport type { DialogSetupProps, DialogSlots } from './types';\n\nconst FOCUSABLE_SELECTORS = [\n 'a[href]',\n 'button:not([disabled])',\n 'input:not([disabled])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])',\n].join(', ');\n\nexport const Dialog = defineComponent({\n name: 'LytDialog',\n\n props: {\n modelValue: { type: Boolean, default: false },\n title: { type: String, default: '' },\n width: { type: [String, Number] as unknown as StringConstructor, default: '50%' },\n showClose: { type: Boolean, default: true },\n closeOnClickModal: { type: Boolean, default: true },\n closeOnPressEscape: { type: Boolean, default: true },\n lockScroll: { type: Boolean, default: true },\n class: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n ariaModal: { type: Boolean, default: true },\n initialFocus: { type: [String, Object] as unknown as StringConstructor, default: undefined },\n returnFocusOnClose: { type: Boolean, default: true },\n onBeforeOpen: { type: Function, default: undefined },\n onBeforeClose: { type: Function, default: undefined },\n onOpen: { type: Function, default: undefined },\n onClose: { type: Function, default: undefined },\n onConfirm: { type: Function, default: undefined },\n onCancel: { type: Function, default: undefined },\n onKeydown: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: DialogSlots }) {\n const p = props as DialogSetupProps;\n const visible = signal(p.modelValue);\n const dialogRef = signal<HTMLElement | null>(null);\n const previousActiveElement = signal<HTMLElement | null>(null);\n\n watch(\n () => p.modelValue,\n (newVal) => {\n visible.set(newVal);\n if (newVal) {\n p.onOpen?.();\n }\n },\n );\n\n const handleClose = async () => {\n if (p.onBeforeClose) {\n const result = await p.onBeforeClose();\n if (result === false) return;\n }\n visible.set(false);\n p.onClose?.();\n\n if (p.returnFocusOnClose) {\n const prevEl = previousActiveElement();\n if (prevEl && prevEl.focus) {\n prevEl.focus();\n }\n }\n };\n\n const handleKeydown = (e: KeyboardEvent) => {\n if (p.closeOnPressEscape && e.key === 'Escape') {\n e.preventDefault();\n handleClose();\n }\n p.onKeydown?.(e);\n };\n\n const getFocusableElements = (container: HTMLElement): HTMLElement[] => {\n return Array.from(container.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTORS)).filter(\n (el) => {\n return el.offsetParent !== null && !el.hasAttribute('aria-hidden');\n },\n );\n };\n\n const handleTabKey = (e: KeyboardEvent) => {\n const dialog = dialogRef();\n if (!dialog) return;\n\n const focusableElements = getFocusableElements(dialog);\n if (focusableElements.length === 0) return;\n\n const firstElement = focusableElements[0]!;\n const lastElement = focusableElements[focusableElements.length - 1]!;\n\n if (e.shiftKey) {\n if (document.activeElement === firstElement) {\n e.preventDefault();\n lastElement.focus();\n }\n } else {\n if (document.activeElement === lastElement) {\n e.preventDefault();\n firstElement.focus();\n }\n }\n };\n\n effect(() => {\n if (visible()) {\n previousActiveElement.set(document.activeElement as HTMLElement);\n\n setTimeout(() => {\n const dialog = dialogRef();\n if (dialog) {\n if (p.initialFocus) {\n const initialEl =\n typeof p.initialFocus === 'string'\n ? dialog.querySelector<HTMLElement>(p.initialFocus)\n : (p.initialFocus as HTMLElement);\n if (initialEl && initialEl.focus) {\n initialEl.focus();\n } else {\n const focusableElements = getFocusableElements(dialog);\n if (focusableElements.length > 0) {\n (focusableElements[0] as HTMLElement).focus();\n }\n }\n } else {\n const focusableElements = getFocusableElements(dialog);\n if (focusableElements.length > 0) {\n (focusableElements[0] as HTMLElement).focus();\n }\n }\n }\n }, 0);\n }\n });\n\n return () => {\n if (!visible()) {\n return createVNode('div', { style: 'display: none;' }, []);\n }\n\n const children: VNode[] = [];\n\n if (slots.header) {\n children.push(\n createVNode(\n 'div',\n {\n class: 'lyt-dialog__header',\n id: p.id ? `${p.id}-header` : undefined,\n },\n slots.header(),\n ),\n );\n } else if (p.title) {\n const headerChildren: VNode[] = [];\n headerChildren.push(\n createVNode(\n 'span',\n {\n class: 'lyt-dialog__title',\n id: p.id ? `${p.id}-title` : undefined,\n },\n [createTextVNode(p.title)],\n ),\n );\n if (p.showClose) {\n const closeBtnProps = getButtonA11yProps({\n ariaLabel: 'Close dialog',\n });\n headerChildren.push(\n createVNode(\n 'button',\n mergeA11yProps(closeBtnProps, {\n class: 'lyt-dialog__close',\n onClick: handleClose,\n }),\n [createTextVNode('×')],\n ),\n );\n }\n children.push(\n createVNode(\n 'div',\n {\n class: 'lyt-dialog__header',\n id: p.id ? `${p.id}-header` : undefined,\n },\n headerChildren,\n ),\n );\n }\n\n if (slots.default) {\n children.push(\n createVNode(\n 'div',\n {\n class: 'lyt-dialog__body',\n id: p.id ? `${p.id}-body` : undefined,\n },\n slots.default(),\n ),\n );\n }\n\n if (slots.footer) {\n children.push(\n createVNode(\n 'div',\n {\n class: 'lyt-dialog__footer',\n id: p.id ? `${p.id}-footer` : undefined,\n },\n slots.footer(),\n ),\n );\n }\n\n const dialogClass = ['lyt-dialog', p.class].filter(Boolean).join(' ');\n\n const dialogStyle = `width: ${typeof p.width === 'number' ? `${p.width}px` : p.width}`;\n\n const dialogA11yProps = getDialogA11yProps({\n id: p.id,\n ariaLabel: p.ariaLabel || p.title,\n ariaDescribedBy: p.ariaDescribedBy || (p.id ? `${p.id}-body` : undefined),\n labelledBy: p.title && p.id ? `${p.id}-title` : undefined,\n modal: p.ariaModal,\n });\n\n return createVNode(\n 'div',\n {\n class: 'lyt-dialog__wrapper',\n onKeydown: (e: KeyboardEvent) => {\n if (e.key === 'Tab') {\n handleTabKey(e);\n }\n handleKeydown(e);\n },\n ref: (el: HTMLElement | null) => {\n dialogRef.set(el);\n },\n },\n [\n createVNode('div', {\n class: 'lyt-dialog__overlay',\n 'aria-hidden': true,\n onClick: p.closeOnClickModal ? handleClose : undefined,\n }),\n createVNode(\n 'div',\n mergeA11yProps(dialogA11yProps, {\n class: dialogClass,\n style: dialogStyle,\n role: 'dialog',\n 'aria-modal': p.ariaModal,\n }),\n children,\n ),\n ],\n );\n };\n },\n});\n\nexport type { DialogProps, DialogSlots } from './types';\n","/**\n * @lytjs/ui - Select 组件(增强版)\n *\n * 选择器组件,支持单选、多选、搜索等功能\n * 增强 Accessibility 支持:\n * - 焦点管理(打开聚焦到下拉框,关闭返回)\n * - 焦点陷阱(Tab 键循环)\n * - 屏幕阅读器支持(Live regions)\n * - aria-activedescendant 支持\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { signal, effect } from '@lytjs/reactivity';\nimport { getComboboxA11yProps, mergeA11yProps } from '@lytjs/common-a11y';\nimport type { SelectOption, SelectSetupProps } from './types';\n\nconst FOCUSABLE_SELECTORS = [\n 'a[href]',\n 'button:not([disabled])',\n 'input:not([disabled])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n '[tabindex]:not([tabindex=\"-1\"])',\n].join(', ');\n\nexport const Select = defineComponent({\n name: 'LytSelect',\n\n props: {\n modelValue: { type: [String, Number, Array] as unknown as StringConstructor, default: '' },\n options: { type: Array, default: (): SelectOption[] => [] },\n placeholder: { type: String, default: '请选择' },\n disabled: { type: Boolean, default: false },\n clearable: { type: Boolean, default: false },\n multiple: { type: Boolean, default: false },\n size: { type: String, default: 'medium' },\n class: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n ariaInvalid: { type: Boolean, default: false },\n ariaRequired: { type: Boolean, default: false },\n tabIndex: { type: Number, default: undefined },\n closeOnSelect: { type: Boolean, default: true },\n filterable: { type: Boolean, default: false },\n onChange: { type: Function, default: undefined },\n onClear: { type: Function, default: undefined },\n onKeydown: { type: Function, default: undefined },\n onVisibleChange: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>) {\n const p = props as SelectSetupProps;\n const isOpen = signal(false);\n const selectedValue = signal<Set<string | number>>(new Set());\n const searchValue = signal('');\n const highlightedIndex = signal(-1);\n const triggerRef = signal<HTMLElement | null>(null);\n const dropdownRef = signal<HTMLElement | null>(null);\n const previousActiveElement = signal<HTMLElement | null>(null);\n const listboxId = signal(`lyt-select-listbox-${Math.random().toString(36).substr(2, 9)}`);\n const activeDescendant = signal('');\n\n effect(() => {\n if (Array.isArray(p.modelValue)) {\n selectedValue.set(new Set(p.modelValue));\n } else if (p.modelValue !== '' && p.modelValue !== null && p.modelValue !== undefined) {\n selectedValue.set(new Set([p.modelValue]));\n }\n });\n\n const getFilteredOptions = () => {\n const opts = p.options || [];\n const query = searchValue();\n if (!p.filterable || !query) return opts;\n const lowerQuery = query.toLowerCase();\n return opts.filter((opt) => opt.label.toLowerCase().includes(lowerQuery));\n };\n\n const getEnabledOptions = () => {\n return getFilteredOptions().filter((opt) => !opt.disabled);\n };\n\n const getFocusableElements = (container: HTMLElement): HTMLElement[] => {\n return Array.from(container.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTORS)).filter(\n (el) => {\n return el.offsetParent !== null && !el.hasAttribute('aria-hidden');\n },\n );\n };\n\n const toggleDropdown = () => {\n if (p.disabled) return;\n const newOpen = !isOpen();\n isOpen.set(newOpen);\n\n if (newOpen) {\n const enabledOptions = getEnabledOptions();\n if (enabledOptions.length > 0) {\n const selectedValues = selectedValue();\n let currentValue = 0;\n if (selectedValues.size > 0) {\n const foundIndex = enabledOptions.findIndex((opt) => selectedValues.has(opt.value));\n currentValue = foundIndex >= 0 ? foundIndex : 0;\n }\n highlightedIndex.set(currentValue);\n\n const option = enabledOptions[currentValue];\n if (option) {\n activeDescendant.set(`lyt-select-option-${option.value}`);\n }\n }\n\n previousActiveElement.set(document.activeElement as HTMLElement);\n setTimeout(() => {\n const dropdown = dropdownRef();\n if (dropdown) {\n const focusable = getFocusableElements(dropdown);\n if (focusable.length > 0) {\n focusable[0]?.focus();\n }\n }\n }, 10);\n } else {\n const prevEl = previousActiveElement();\n if (prevEl && prevEl.focus) {\n setTimeout(() => prevEl.focus(), 10);\n }\n }\n p.onVisibleChange?.(newOpen);\n };\n\n const handleSelect = (option: SelectOption) => {\n if (option.disabled) return;\n\n if (p.multiple) {\n const newSelected = new Set(selectedValue());\n if (newSelected.has(option.value)) {\n newSelected.delete(option.value);\n } else {\n newSelected.add(option.value);\n }\n selectedValue.set(newSelected);\n p.onChange?.(Array.from(newSelected));\n } else {\n selectedValue.set(new Set([option.value]));\n if (p.closeOnSelect) {\n isOpen.set(false);\n p.onVisibleChange?.(false);\n }\n p.onChange?.(option.value);\n\n const prevEl = previousActiveElement();\n if (prevEl && prevEl.focus) {\n setTimeout(() => prevEl.focus(), 10);\n }\n }\n };\n\n const handleClear = (event: Event) => {\n event.stopPropagation();\n selectedValue.set(new Set());\n p.onClear?.();\n p.onChange?.(p.multiple ? [] : '');\n };\n\n const handleKeydown = (event: KeyboardEvent) => {\n const enabledOptions = getEnabledOptions();\n const open = isOpen();\n const hIndex = highlightedIndex();\n\n switch (event.key) {\n case 'Enter':\n case ' ':\n if (!p.filterable || !open) {\n event.preventDefault();\n }\n if (open) {\n if (hIndex >= 0 && hIndex < enabledOptions.length) {\n const option = enabledOptions[hIndex];\n if (option) {\n handleSelect(option);\n }\n }\n } else {\n toggleDropdown();\n }\n break;\n case 'ArrowDown':\n event.preventDefault();\n if (!open) {\n toggleDropdown();\n } else {\n if (enabledOptions.length > 0) {\n const nextIndex = Math.min(hIndex + 1, enabledOptions.length - 1);\n highlightedIndex.set(nextIndex);\n const option = enabledOptions[nextIndex];\n if (option) {\n activeDescendant.set(`lyt-select-option-${option.value}`);\n }\n }\n }\n break;\n case 'ArrowUp':\n event.preventDefault();\n if (open) {\n if (enabledOptions.length > 0) {\n const prevIndex = Math.max(hIndex - 1, 0);\n highlightedIndex.set(prevIndex);\n const option = enabledOptions[prevIndex];\n if (option) {\n activeDescendant.set(`lyt-select-option-${option.value}`);\n }\n }\n }\n break;\n case 'Escape':\n if (open) {\n event.preventDefault();\n isOpen.set(false);\n p.onVisibleChange?.(false);\n const prevEl = previousActiveElement();\n if (prevEl && prevEl.focus) {\n prevEl.focus();\n }\n }\n break;\n case 'Home':\n event.preventDefault();\n if (open && enabledOptions.length > 0) {\n highlightedIndex.set(0);\n const option = enabledOptions[0];\n if (option) {\n activeDescendant.set(`lyt-select-option-${option.value}`);\n }\n }\n break;\n case 'End':\n event.preventDefault();\n if (open && enabledOptions.length > 0) {\n const lastIndex = enabledOptions.length - 1;\n highlightedIndex.set(lastIndex);\n const option = enabledOptions[lastIndex];\n if (option) {\n activeDescendant.set(`lyt-select-option-${option.value}`);\n }\n }\n break;\n case 'Tab':\n if (open) {\n isOpen.set(false);\n p.onVisibleChange?.(false);\n }\n break;\n }\n\n p.onKeydown?.(event);\n };\n\n const handleTriggerKeydown = (event: KeyboardEvent) => {\n if (event.key === 'ArrowDown' && !isOpen()) {\n event.preventDefault();\n toggleDropdown();\n } else if (event.key === 'ArrowUp' && !isOpen()) {\n event.preventDefault();\n toggleDropdown();\n }\n };\n\n const handleOptionKeydown = (event: KeyboardEvent, option: SelectOption) => {\n if (event.key === 'Tab') {\n isOpen.set(false);\n p.onVisibleChange?.(false);\n return;\n }\n\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n handleSelect(option);\n return;\n }\n\n handleKeydown(event);\n };\n\n const getSelectedLabel = (): string => {\n const selected = Array.from(selectedValue());\n if (selected.length === 0) return '';\n\n const opts = p.options || [];\n const selectedOptions = opts.filter((opt) => selected.includes(opt.value));\n return selectedOptions.map((opt) => opt.label).join(', ');\n };\n\n return () => {\n const open = isOpen();\n const selectClass = [\n 'lyt-select',\n `lyt-select--${p.size}`,\n p.disabled ? 'lyt-select--disabled' : '',\n open ? 'lyt-select--open' : '',\n p.class,\n ]\n .filter(Boolean)\n .join(' ');\n\n const selectedLabel = getSelectedLabel();\n const displayValue = selectedLabel || p.placeholder;\n const filteredOptions = getFilteredOptions();\n const selected = selectedValue();\n const hIndex = highlightedIndex();\n const listId = listboxId();\n const activeId = activeDescendant();\n\n const dropdownContent: VNode[] = [];\n\n if (filteredOptions.length === 0) {\n dropdownContent.push(\n createVNode(\n 'div',\n {\n class: 'lyt-select__empty',\n role: 'status',\n },\n [createVNode('span', {}, '无匹配选项')],\n ),\n );\n } else {\n filteredOptions.forEach((option: SelectOption, index: number) => {\n const isSelected = selected.has(option.value);\n const isHighlighted = !option.disabled && index === hIndex;\n const optionId = `lyt-select-option-${option.value}`;\n const optionChildren: VNode[] = [];\n if (isSelected) {\n optionChildren.push(\n createVNode('span', { class: 'lyt-select__check' }, [createVNode('span', {}, '✓')]),\n );\n }\n optionChildren.push(createVNode('span', {}, option.label));\n dropdownContent.push(\n createVNode(\n 'div',\n {\n key: String(option.value),\n id: optionId,\n role: 'option',\n 'aria-selected': isSelected,\n 'aria-disabled': option.disabled,\n class: [\n 'lyt-select__option',\n isSelected ? 'lyt-select__option--selected' : '',\n option.disabled ? 'lyt-select__option--disabled' : '',\n isHighlighted ? 'lyt-select__option--highlighted' : '',\n ]\n .filter(Boolean)\n .join(' '),\n onClick: () => handleSelect(option),\n onMouseenter: () => {\n if (!option.disabled) {\n highlightedIndex.set(index);\n activeDescendant.set(optionId);\n }\n },\n onKeydown: (e: KeyboardEvent) => handleOptionKeydown(e, option),\n },\n optionChildren,\n ),\n );\n });\n }\n\n const triggerChildren: VNode[] = [];\n triggerChildren.push(\n createVNode(\n 'span',\n {\n class: ['lyt-select__value', !selectedLabel ? 'lyt-select__value--placeholder' : '']\n .filter(Boolean)\n .join(' '),\n },\n [createVNode('span', {}, displayValue)],\n ),\n );\n if (p.clearable && selected.size > 0) {\n triggerChildren.push(\n createVNode(\n 'span',\n {\n class: 'lyt-select__clear',\n onClick: handleClear,\n role: 'button',\n 'aria-label': '清除选择',\n tabIndex: 0,\n },\n [createVNode('span', {}, '×')],\n ),\n );\n }\n triggerChildren.push(\n createVNode('span', { class: 'lyt-select__arrow' }, [createVNode('span', {}, '▼')]),\n );\n\n const resultChildren: VNode[] = [];\n\n if (p.filterable) {\n resultChildren.push(\n createVNode('input', {\n class: 'lyt-select__search',\n type: 'text',\n placeholder: '搜索...',\n value: searchValue(),\n onInput: (e: Event) => {\n searchValue.set((e.target as HTMLInputElement).value);\n },\n onKeydown: handleTriggerKeydown,\n 'aria-label': '搜索选项',\n 'aria-controls': listId,\n }),\n );\n }\n\n resultChildren.push(\n createVNode(\n 'div',\n {\n ref: (el: HTMLElement) => triggerRef.set(el),\n class: 'lyt-select__trigger',\n onClick: toggleDropdown,\n onKeydown: handleTriggerKeydown,\n tabIndex: p.disabled ? -1 : (p.tabIndex ?? 0),\n role: 'combobox',\n 'aria-haspopup': 'listbox',\n 'aria-expanded': open,\n 'aria-controls': listId,\n 'aria-activedescendant': open ? activeId : undefined,\n },\n triggerChildren,\n ),\n );\n\n if (open) {\n resultChildren.push(\n createVNode(\n 'div',\n {\n ref: (el: HTMLElement) => dropdownRef.set(el),\n id: listId,\n class: 'lyt-select__dropdown',\n role: 'listbox',\n 'aria-multiselectable': p.multiple,\n 'aria-label': p.ariaLabel || '选择选项',\n },\n dropdownContent,\n ),\n );\n\n resultChildren.push(\n createVNode(\n 'div',\n {\n class: 'lyt-select__sro',\n role: 'status',\n 'aria-live': 'polite',\n },\n `已选择 ${selected.size} 个选项`,\n ),\n );\n }\n\n const a11yProps = getComboboxA11yProps({\n id: p.id,\n ariaLabel: p.ariaLabel || '选择器',\n ariaDescribedBy: p.ariaDescribedBy,\n ariaRequired: p.ariaRequired,\n ariaInvalid: p.ariaInvalid,\n disabled: p.disabled,\n tabIndex: p.tabIndex,\n expanded: open,\n controls: listId,\n });\n\n return createVNode(\n 'div',\n mergeA11yProps(a11yProps, {\n class: selectClass,\n onKeydown: handleKeydown,\n }),\n resultChildren,\n );\n };\n },\n});\n\nexport type { SelectProps, SelectSlots, SelectOption } from './types';\n","/**\n * @lytjs/ui - Tabs 组件(增强版)\n *\n * 标签页组件,支持卡片式和边框卡片式,可拖拽,支持标签关闭和新增\n * 增强 Accessibility 支持:\n * - Roving tabindex(只有一个标签页有 tabindex=\"0\")\n * - 焦点管理(激活时聚焦到标签页)\n * - 屏幕阅读器支持(Live regions)\n * - 完整的 ARIA 属性\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, createTextVNode, type VNode } from '@lytjs/vdom';\nimport { signal } from '@lytjs/reactivity';\nimport {\n getTablistA11yProps,\n getTabA11yProps,\n getTabpanelA11yProps,\n getButtonA11yProps,\n mergeA11yProps,\n} from '@lytjs/common-a11y';\nimport type { TabPaneSetupProps, TabsSetupProps, TabPaneSlots, TabsSlots } from './types';\n\nexport type TabsType = '' | 'card' | 'border-card';\n\nexport interface TabPane {\n props: TabPaneSetupProps;\n children: VNode[];\n}\n\nexport interface DragState {\n isDragging: boolean;\n dragIndex: number;\n dropIndex: number;\n}\n\nexport const TabPane = defineComponent({\n name: 'LytTabPane',\n\n props: {\n label: { type: String, required: true },\n name: { type: String, required: true },\n disabled: { type: Boolean, default: false },\n closable: { type: Boolean, default: false },\n },\n\n setup(_props: Record<string, unknown>, { slots }: { slots: TabPaneSlots }) {\n return () => {\n const defaultSlot = slots.default;\n const children: VNode[] = defaultSlot ? defaultSlot() : [];\n return createVNode('div', { class: 'lyt-tab-pane' }, children);\n };\n },\n});\n\nexport const Tabs = defineComponent({\n name: 'LytTabs',\n\n props: {\n modelValue: { type: String, default: '' },\n type: { type: String, default: '' },\n class: { type: String, default: '' },\n closable: { type: Boolean, default: false },\n addable: { type: Boolean, default: false },\n editable: { type: Boolean, default: false },\n draggable: { type: Boolean, default: false },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n onChange: { type: Function, default: undefined },\n onTabClick: { type: Function, default: undefined },\n onTabRemove: { type: Function, default: undefined },\n onTabAdd: { type: Function, default: undefined },\n onTabDragStart: { type: Function, default: undefined },\n onTabDragEnd: { type: Function, default: undefined },\n onKeydown: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: TabsSlots }) {\n const p = props as TabsSetupProps;\n const dragState = signal<DragState>({\n isDragging: false,\n dragIndex: -1,\n dropIndex: -1,\n });\n const activeIndex = signal(0);\n const tabListRef = signal<HTMLElement | null>(null);\n const previousActiveElement = signal<HTMLElement | null>(null);\n const announcement = signal('');\n const tablistId = signal(`lyt-tabs-${Math.random().toString(36).substr(2, 9)}`);\n\n const getPanes = (): TabPane[] => {\n const defaultSlot = slots.default;\n const defaultSlotContent = defaultSlot ? defaultSlot() : [];\n if (!defaultSlotContent || defaultSlotContent.length === 0) return [];\n\n return defaultSlotContent\n .filter(\n (vnode: VNode) =>\n vnode && (vnode as unknown as { type: { name?: string } }).type?.name === 'LytTabPane',\n )\n .map((vnode: VNode) => ({\n props: (vnode as unknown as { props: TabPaneSetupProps }).props,\n children: (vnode as unknown as { children: VNode[] }).children,\n }));\n };\n\n const getEnabledPanes = (panes: TabPane[]) => {\n return panes.filter((pane) => !pane.props.disabled);\n };\n\n const announce = (message: string) => {\n announcement.set(message);\n setTimeout(() => announcement.set(''), 1000);\n };\n\n const handleTabClick = (pane: TabPane, index: number) => {\n if (pane.props.disabled) return;\n\n const oldIndex = activeIndex();\n activeIndex.set(index);\n\n if (oldIndex !== index) {\n const panes = getPanes();\n announce(`已切换到标签页 ${index + 1}:${pane.props.label},共 ${panes.length} 个标签页`);\n }\n\n p.onChange?.(pane.props.name);\n p.onTabClick?.(pane, index);\n\n previousActiveElement.set(document.activeElement as HTMLElement);\n setTimeout(() => {\n const tabList = tabListRef();\n if (tabList) {\n const activeTab = tabList.querySelector(\n '[role=\"tab\"][aria-selected=\"true\"]',\n ) as HTMLElement;\n activeTab?.focus();\n }\n }, 10);\n };\n\n const handleKeydown = (e: KeyboardEvent) => {\n const panes = getPanes();\n const enabledPanes = getEnabledPanes(panes);\n\n if (enabledPanes.length === 0) return;\n\n let newIndex = activeIndex();\n\n switch (e.key) {\n case 'ArrowRight':\n case 'ArrowDown':\n e.preventDefault();\n for (let i = 1; i <= panes.length; i++) {\n const nextIndex = (activeIndex() + i) % panes.length;\n if (panes[nextIndex] && !panes[nextIndex].props.disabled) {\n newIndex = nextIndex;\n break;\n }\n }\n break;\n case 'ArrowLeft':\n case 'ArrowUp':\n e.preventDefault();\n for (let i = 1; i <= panes.length; i++) {\n const prevIndex = (activeIndex() - i + panes.length) % panes.length;\n if (panes[prevIndex] && !panes[prevIndex].props.disabled) {\n newIndex = prevIndex;\n break;\n }\n }\n break;\n case 'Home':\n e.preventDefault();\n newIndex = panes.findIndex(\n (pane) => pane != null && pane.props != null && !pane.props.disabled,\n );\n break;\n case 'End':\n e.preventDefault();\n for (let i = panes.length - 1; i >= 0; i--) {\n const pane = panes[i];\n if (pane && pane.props && !pane.props.disabled) {\n newIndex = i;\n break;\n }\n }\n break;\n case 'Enter':\n case ' ': {\n e.preventDefault();\n const currentPane = panes[activeIndex()];\n if (currentPane && !currentPane.props.disabled) {\n handleTabClick(currentPane, activeIndex());\n }\n break;\n }\n case 'Delete':\n case 'Backspace':\n if (p.closable) {\n const currentPane = panes[activeIndex()];\n if (currentPane && currentPane.props.closable) {\n e.preventDefault();\n handleTabRemove(currentPane, new Event('keydown') as unknown as Event);\n }\n }\n break;\n }\n\n if (newIndex !== activeIndex()) {\n const pane = panes[newIndex];\n if (pane && !pane.props.disabled) {\n activeIndex.set(newIndex);\n announce(`已切换到标签页 ${newIndex + 1}:${pane.props.label}`);\n handleTabClick(pane, newIndex);\n }\n }\n\n p.onKeydown?.(e);\n };\n\n const handleTabRemove = (pane: TabPane, e: Event) => {\n e.stopPropagation();\n const panes = getPanes();\n const index = panes.findIndex((p) => p.props.name === pane.props.name);\n\n if (index > 0) {\n const prevPane = panes[index - 1];\n activeIndex.set(index - 1);\n if (prevPane) {\n announce(`已关闭标签页 ${pane.props.label},现在显示标签页 ${prevPane.props.label}`);\n }\n } else if (panes.length > 1) {\n const nextPane = panes[index + 1];\n activeIndex.set(0);\n if (nextPane) {\n announce(`已关闭标签页 ${pane.props.label},现在显示标签页 ${nextPane.props.label}`);\n }\n } else {\n announce(`已关闭标签页 ${pane.props.label},现在没有标签页`);\n }\n\n p.onTabRemove?.(pane.props.name);\n };\n\n const handleTabAdd = () => {\n announce('正在添加新标签页');\n p.onTabAdd?.();\n };\n\n const handleDragStart = (index: number) => {\n if (!p.draggable) return;\n dragState.set({\n isDragging: true,\n dragIndex: index,\n dropIndex: -1,\n });\n p.onTabDragStart?.(index);\n };\n\n const handleDragOver = (index: number) => {\n if (!dragState().isDragging) return;\n dragState.set({\n ...dragState(),\n dropIndex: index,\n });\n };\n\n const handleDragEnd = () => {\n const { dragIndex, dropIndex } = dragState();\n if (dragIndex !== -1 && dropIndex !== -1 && dragIndex !== dropIndex) {\n announce(`标签页已从位置 ${dragIndex + 1} 移动到位置 ${dropIndex + 1}`);\n p.onTabDragEnd?.(dragIndex, dropIndex);\n }\n dragState.set({\n isDragging: false,\n dragIndex: -1,\n dropIndex: -1,\n });\n };\n\n return () => {\n const panes = getPanes();\n const currentName = p.modelValue || panes[0]?.props.name;\n const currentIndex = panes.findIndex((pane) => pane.props.name === currentName);\n\n if (currentIndex !== -1 && currentIndex !== activeIndex()) {\n activeIndex.set(currentIndex);\n }\n\n const tabsClass = ['lyt-tabs', `lyt-tabs--${p.type || 'normal'}`, p.class]\n .filter(Boolean)\n .join(' ');\n\n const tabListId = tablistId();\n\n const tabItems: VNode[] = panes.map((pane, index) => {\n const isActive = pane.props.name === currentName;\n const isDraggable = p.draggable;\n\n const tabChildren: VNode[] = [\n createVNode('span', { class: 'lyt-tabs__label' }, [\n createTextVNode(String(pane.props.label)),\n ]),\n ];\n\n if (pane.props.closable || p.closable) {\n const closeBtnProps = getButtonA11yProps({\n ariaLabel: `关闭标签页 ${pane.props.label}`,\n disabled: pane.props.disabled,\n });\n tabChildren.push(\n createVNode(\n 'span',\n mergeA11yProps(closeBtnProps, {\n class: 'lyt-tabs__close',\n onClick: (e: Event) => handleTabRemove(pane, e),\n }),\n [createTextVNode('×')],\n ),\n );\n }\n\n const tabId = `${p.id || tabListId}-tab-${pane.props.name}`;\n const panelId = `${p.id || tabListId}-panel-${pane.props.name}`;\n\n const tabA11yProps = getTabA11yProps({\n id: tabId,\n selected: isActive,\n disabled: pane.props.disabled,\n controls: panelId,\n });\n\n return createVNode(\n 'div',\n mergeA11yProps(tabA11yProps, {\n key: String(pane.props.name),\n class: [\n 'lyt-tabs__item',\n isActive ? 'lyt-tabs__item--active' : '',\n pane.props.disabled ? 'lyt-tabs__item--disabled' : '',\n dragState().dropIndex === index ? 'lyt-tabs__item--drop' : '',\n ]\n .filter(Boolean)\n .join(' '),\n draggable: isDraggable,\n onClick: () => handleTabClick(pane, index),\n onKeydown: handleKeydown,\n onDragStart: () => handleDragStart(index),\n onDragOver: (e: DragEvent) => {\n e.preventDefault();\n handleDragOver(index);\n },\n onDragEnd: handleDragEnd,\n }),\n tabChildren,\n );\n });\n\n if (p.addable || p.editable) {\n const addBtnProps = getButtonA11yProps({\n ariaLabel: '添加新标签页',\n });\n tabItems.push(\n createVNode(\n 'div',\n mergeA11yProps(addBtnProps, {\n class: 'lyt-tabs__add-btn',\n onClick: handleTabAdd,\n }),\n [createTextVNode('+')],\n ),\n );\n }\n\n const content = panes.find((pane) => pane.props.name === currentName);\n const panelId = `${p.id || tabListId}-panel-${content?.props.name || 'default'}`;\n\n const tabpanelProps = content\n ? getTabpanelA11yProps({\n id: panelId,\n labelledBy: `${p.id || tabListId}-tab-${content.props.name}`,\n })\n : {};\n\n const contentPane = content\n ? createVNode(\n 'div',\n mergeA11yProps(tabpanelProps, {\n class: 'lyt-tabs__pane',\n id: panelId,\n role: 'tabpanel',\n }),\n content.children,\n )\n : createVNode('div', { style: 'display: none;', id: panelId }, []);\n\n const tablistA11yProps = getTablistA11yProps({\n id: p.id || tabListId,\n ariaLabel: p.ariaLabel || '标签页导航',\n ariaDescribedBy: p.ariaDescribedBy,\n });\n\n return createVNode(\n 'div',\n mergeA11yProps(tablistA11yProps, {\n class: tabsClass,\n onKeydown: handleKeydown,\n }),\n [\n createVNode(\n 'div',\n {\n ref: (el: HTMLElement) => tabListRef.set(el),\n class: 'lyt-tabs__header',\n role: 'tablist',\n 'aria-label': p.ariaLabel || '标签页',\n },\n [createVNode('div', { class: 'lyt-tabs__nav' }, tabItems)],\n ),\n createVNode('div', { class: 'lyt-tabs__content' }, [contentPane]),\n createVNode(\n 'div',\n {\n class: 'lyt-tabs__sro',\n role: 'status',\n 'aria-live': 'polite',\n 'aria-atomic': 'true',\n },\n announcement(),\n ),\n ],\n );\n };\n },\n});\n\nexport type { TabsProps, TabsSlots, TabPaneProps, TabPaneSlots } from './types';\n","/**\n * @lytjs/ui - Table 组件\n *\n * 表格组件,支持排序、斑马纹、边框、固定列、选择等功能\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { signal } from '@lytjs/reactivity';\nimport type {\n TableData,\n TableRowData,\n TableColumn,\n TableSortOrder,\n TableSetupProps,\n} from './types';\nimport { mergeA11yProps, getInputControlA11yProps } from '@lytjs/common-a11y';\nexport type { TableSlots } from './types';\n\nexport const Table = defineComponent({\n name: 'LytTable',\n\n props: {\n data: { type: Array, default: (): TableData => [] },\n columns: { type: Array, default: (): TableColumn[] => [] },\n stripe: { type: Boolean, default: false },\n border: { type: Boolean, default: false },\n rowKey: { type: String, default: 'id' },\n showSelection: { type: Boolean, default: false },\n highlightCurrentRow: { type: Boolean, default: false },\n class: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n onRowClick: { type: Function, default: undefined },\n onSortChange: { type: Function, default: undefined },\n onSelectionChange: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>) {\n const p = props as TableSetupProps;\n const sortColumn = signal('');\n const sortOrder = signal<TableSortOrder>('');\n const selectedRows = signal<Set<TableRowData>>(new Set());\n const currentRow = signal<TableRowData | null>(null);\n const allSelected = signal(false);\n\n const handleSort = (column: TableColumn) => {\n if (!column.sortable || !column.prop) return;\n\n let newOrder: TableSortOrder;\n if (sortColumn() === column.prop) {\n if (sortOrder() === 'ascending') {\n newOrder = 'descending';\n } else if (sortOrder() === 'descending') {\n newOrder = '';\n } else {\n newOrder = 'ascending';\n }\n } else {\n newOrder = 'ascending';\n }\n\n sortColumn.set(column.prop);\n sortOrder.set(newOrder);\n p.onSortChange?.(column, column.prop, newOrder);\n };\n\n const handleRowSelect = (row: TableRowData, checked: boolean) => {\n const newSelected = new Set(selectedRows());\n if (checked) {\n newSelected.add(row);\n } else {\n newSelected.delete(row);\n }\n selectedRows.set(newSelected);\n\n const data = p.data || [];\n allSelected.set(newSelected.size === data.length);\n\n p.onSelectionChange?.(Array.from(newSelected));\n };\n\n const handleSelectAll = (checked: boolean) => {\n allSelected.set(checked);\n const data = p.data || [];\n\n if (checked) {\n selectedRows.set(new Set(data));\n p.onSelectionChange?.([...data]);\n } else {\n selectedRows.set(new Set());\n p.onSelectionChange?.([]);\n }\n };\n\n const handleRowClick = (row: TableRowData, index: number) => {\n if (p.highlightCurrentRow) {\n currentRow.set(row);\n }\n p.onRowClick?.(row, index);\n };\n\n const getCellValue = (row: TableRowData, column: TableColumn): unknown => {\n if (!column.prop) return '';\n return row[column.prop];\n };\n\n const getRowKey = (row: TableRowData, index: number): string => {\n if (p.rowKey && row[p.rowKey]) {\n return String(row[p.rowKey]);\n }\n return String(index);\n };\n\n return () => {\n const data = p.data || [];\n const columns = p.columns || [];\n\n const tableClass = ['lyt-table'];\n if (p.stripe) tableClass.push('lyt-table--stripe');\n if (p.border) tableClass.push('lyt-table--border');\n if (p.class) tableClass.push(p.class);\n\n const children: VNode[] = [];\n\n const thead = createVNode('thead', { class: 'lyt-table__header' }, [\n createVNode('tr', {}, [\n ...(p.showSelection\n ? [\n createVNode('th', { class: 'lyt-table__cell--selection' }, [\n createVNode(\n 'input',\n mergeA11yProps(getInputControlA11yProps({ ariaLabel: '全选' }), {\n type: 'checkbox',\n checked: allSelected(),\n onChange: (e: Event) =>\n handleSelectAll((e.target as HTMLInputElement).checked),\n }),\n ),\n ]),\n ]\n : []),\n ...columns.map((column: TableColumn) =>\n createVNode(\n 'th',\n {\n class: [\n 'lyt-table__cell',\n column.sortable ? 'lyt-table__cell--sortable' : '',\n column.align ? `lyt-table__cell--${column.align}` : '',\n ]\n .filter(Boolean)\n .join(' '),\n onClick: () => handleSort(column),\n },\n [createVNode('span', {}, String(column.label))],\n ),\n ),\n ]),\n ]);\n\n const tbody = createVNode(\n 'tbody',\n { class: 'lyt-table__body' },\n data.length === 0\n ? [\n createVNode('tr', { class: 'lyt-table__empty-row' }, [\n createVNode(\n 'td',\n {\n colspan: columns.length + (p.showSelection ? 1 : 0),\n class: 'lyt-table__empty-cell',\n },\n [createVNode('span', {}, '暂无数据')],\n ),\n ]),\n ]\n : data.map((row: TableRowData, index: number) => {\n const rowChildren: VNode[] = [];\n\n if (p.showSelection) {\n rowChildren.push(\n createVNode('td', { class: 'lyt-table__cell--selection' }, [\n createVNode(\n 'input',\n mergeA11yProps(getInputControlA11yProps({ ariaLabel: '选择行' }), {\n type: 'checkbox',\n checked: selectedRows().has(row),\n onChange: (e: Event) =>\n handleRowSelect(row, (e.target as HTMLInputElement).checked),\n }),\n ),\n ]),\n );\n }\n\n columns.forEach((column: TableColumn) => {\n const value = getCellValue(row, column);\n const displayValue = column.formatter\n ? column.formatter(row, column, value)\n : String(value ?? '');\n\n rowChildren.push(\n createVNode(\n 'td',\n {\n class: [\n 'lyt-table__cell',\n column.align ? `lyt-table__cell--${column.align}` : '',\n ]\n .filter(Boolean)\n .join(' '),\n },\n [createVNode('span', {}, displayValue)],\n ),\n );\n });\n\n return createVNode(\n 'tr',\n {\n key: getRowKey(row, index),\n class: ['lyt-table__row', currentRow() === row ? 'lyt-table__row--active' : '']\n .filter(Boolean)\n .join(' '),\n onClick: () => handleRowClick(row, index),\n },\n rowChildren,\n );\n }),\n );\n\n children.push(thead, tbody);\n\n return createVNode(\n 'table',\n mergeA11yProps(\n {\n id: p.id,\n 'aria-label': p.ariaLabel,\n 'aria-describedby': p.ariaDescribedBy,\n role: 'grid',\n },\n { class: tableClass.join(' ') },\n ),\n children,\n );\n };\n },\n});\n","/**\n * @lytjs/ui - Form 组件\n *\n * 表单组件,支持表单验证和布局\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { signal } from '@lytjs/reactivity';\nimport type {\n FormRules,\n FormSetupProps,\n FormSlots,\n FormItemSetupProps,\n FormItemSlots,\n} from './types';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\nexport interface FormLocale {\n required: string;\n pattern: string;\n min: string;\n max: string;\n type: string;\n validator: string;\n default: string;\n}\n\nconst DEFAULT_LOCALE: FormLocale = {\n required: '此字段必填',\n pattern: '格式不正确',\n min: '长度不能少于 {min} 个字符',\n max: '长度不能超过 {max} 个字符',\n type: '类型不正确',\n validator: '验证失败',\n default: '验证失败',\n};\n\nexport function createFormLocale(locale: Partial<FormLocale>): FormLocale {\n return { ...DEFAULT_LOCALE, ...locale };\n}\n\nfunction formatMessage(template: string, params: Record<string, string | number>): string {\n let message = template;\n for (const [key, value] of Object.entries(params)) {\n message = message.replace(new RegExp(`\\\\{${key}\\\\}`, 'g'), String(value));\n }\n return message;\n}\n\nexport const Form = defineComponent({\n name: 'LytForm',\n\n props: {\n model: { type: Object, default: (): Record<string, unknown> => ({}) },\n rules: { type: Object, default: (): FormRules => ({}) },\n labelWidth: { type: String, default: '100px' },\n labelPosition: { type: String, default: 'right' },\n locale: { type: Object, default: (): FormLocale => DEFAULT_LOCALE },\n class: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n onSubmit: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: FormSlots }) {\n const p = props as FormSetupProps;\n const errors = signal<Record<string, string>>({});\n const validating = signal<Record<string, boolean>>({});\n const locale = (p.locale || DEFAULT_LOCALE) as FormLocale;\n\n const validateField = async (field: string): Promise<boolean> => {\n const rules = p.rules[field];\n if (!rules || rules.length === 0) return true;\n\n const value = p.model[field];\n const fieldErrors: string[] = [];\n\n for (const rule of rules) {\n if (rule.required && (!value || value === '')) {\n const message = rule.message || formatMessage(locale.required, { field });\n fieldErrors.push(message);\n continue;\n }\n\n if (value !== undefined && value !== null && value !== '') {\n if (rule.type) {\n const typeValid = validateType(value, rule.type);\n if (!typeValid) {\n fieldErrors.push(\n rule.message || formatMessage(locale.type, { type: rule.type, field }),\n );\n continue;\n }\n }\n\n if (rule.pattern && !rule.pattern.test(String(value))) {\n fieldErrors.push(rule.message || formatMessage(locale.pattern, { field }));\n continue;\n }\n\n if (typeof value === 'string') {\n if (rule.min !== undefined && value.length < rule.min) {\n fieldErrors.push(rule.message || formatMessage(locale.min, { min: rule.min, field }));\n continue;\n }\n if (rule.max !== undefined && value.length > rule.max) {\n fieldErrors.push(rule.message || formatMessage(locale.max, { max: rule.max, field }));\n continue;\n }\n }\n }\n\n if (rule.validator) {\n validating.set({ ...validating(), [field]: true });\n\n try {\n const result = await Promise.resolve(rule.validator(value, p.model));\n\n if (result !== true) {\n const errorMessage =\n typeof result === 'string' ? result : formatMessage(locale.validator, { field });\n fieldErrors.push(errorMessage);\n }\n } catch (_error) {\n fieldErrors.push(rule.message || formatMessage(locale.validator, { field }));\n } finally {\n validating.set({ ...validating(), [field]: false });\n }\n }\n }\n\n if (fieldErrors.length > 0) {\n errors.set({ ...errors(), [field]: fieldErrors[0]! });\n return false;\n }\n\n const newErrors = { ...errors() };\n delete newErrors[field];\n errors.set(newErrors);\n return true;\n };\n\n const validate = async (): Promise<boolean> => {\n let isValid = true;\n const fieldNames = Object.keys(p.rules);\n\n for (const field of fieldNames) {\n const fieldValid = await validateField(field);\n if (!fieldValid) {\n isValid = false;\n }\n }\n\n return isValid;\n };\n\n const validateAll = async (): Promise<boolean> => {\n const fieldNames = Object.keys(p.rules);\n const results = await Promise.all(fieldNames.map((field) => validateField(field)));\n return results.every((result) => result);\n };\n\n const clearValidate = (field?: string) => {\n if (field) {\n const newErrors = { ...errors() };\n delete newErrors[field];\n errors.set(newErrors);\n } else {\n errors.set({});\n }\n };\n\n void validateAll;\n void clearValidate;\n\n const handleSubmit = async (event: Event) => {\n event.preventDefault();\n const isValid = await validate();\n if (isValid) {\n p.onSubmit?.(p.model);\n }\n };\n\n return () => {\n const formClass = ['lyt-form', `lyt-form--label-${p.labelPosition}`, p.class]\n .filter(Boolean)\n .join(' ');\n\n const children: VNode[] = slots.default ? slots.default() : [];\n\n return createVNode(\n 'form',\n {\n id: p.id,\n 'aria-label': p.ariaLabel,\n 'aria-describedby': p.ariaDescribedBy,\n class: formClass,\n onSubmit: handleSubmit,\n },\n children,\n );\n };\n },\n});\n\nfunction validateType(value: unknown, type: string): boolean {\n switch (type) {\n case 'string':\n return typeof value === 'string';\n case 'number':\n return typeof value === 'number' && !isNaN(value);\n case 'boolean':\n return typeof value === 'boolean';\n case 'array':\n return Array.isArray(value);\n case 'date':\n return value instanceof Date || !isNaN(Date.parse(String(value)));\n case 'email': {\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n return typeof value === 'string' && emailRegex.test(value);\n }\n case 'url':\n try {\n new URL(String(value));\n return true;\n } catch {\n return false;\n }\n default:\n return true;\n }\n}\n\nexport const FormItem = defineComponent({\n name: 'LytFormItem',\n\n props: {\n label: { type: String, default: '' },\n prop: { type: String, default: '' },\n required: { type: Boolean, default: false },\n rules: { type: [Object, Array] as unknown as StringConstructor, default: () => [] },\n error: { type: String, default: '' },\n validateStatus: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: FormItemSlots }) {\n const p = props as FormItemSetupProps;\n\n return () => {\n const itemClass = [\n 'lyt-form-item',\n p.error ? 'lyt-form-item--error' : '',\n p.validateStatus ? `lyt-form-item--${p.validateStatus}` : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n const labelStyle = p.label ? { width: '100px' } : {};\n\n const children: VNode[] = [];\n\n if (p.label) {\n children.push(\n createVNode(\n 'label',\n {\n class: 'lyt-form-item__label',\n style: labelStyle,\n },\n [createVNode('span', {}, String(p.label))],\n ),\n );\n }\n\n if (slots.default) {\n const slotContent = slots.default();\n children.push(createVNode('div', { class: 'lyt-form-item__content' }, slotContent));\n }\n\n if (p.error) {\n children.push(\n createVNode(\n 'div',\n {\n class: 'lyt-form-item__error',\n role: 'alert',\n 'aria-live': 'polite',\n },\n [createVNode('span', {}, String(p.error))],\n ),\n );\n }\n\n return createVNode(\n 'div',\n mergeA11yProps(\n {\n id: p.id,\n 'aria-label': p.ariaLabel,\n 'aria-describedby': p.ariaDescribedBy,\n },\n { class: itemClass },\n ),\n children,\n );\n };\n },\n});\n\nexport type { FormSlots, FormItemSlots } from './types';\nexport type {\n FormProps,\n FormRules,\n FormSetupProps,\n FormItemProps,\n FormItemSetupProps,\n FormRule,\n FormValidateStatus,\n} from './types';\n","/**\n * @lytjs/ui - Transition 组件\n *\n * 过渡动画组件,支持进入/离开动画\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\n\nexport interface TransitionSetupProps {\n name: string;\n appear: boolean;\n mode: string;\n duration: number;\n class: string;\n}\n\nexport interface TransitionSlots {\n default?: () => VNode[];\n}\n\nexport const Transition = defineComponent({\n name: 'LytTransition',\n\n props: {\n name: { type: String, default: 'fade' },\n appear: { type: Boolean, default: false },\n mode: { type: String, default: '' },\n duration: { type: Number, default: 300 },\n class: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: TransitionSlots }) {\n const p = props as unknown as TransitionSetupProps;\n\n const getTransitionClass = () => {\n const classes = [`${p.name}-transition`];\n if (p.class) {\n classes.push(p.class);\n }\n return classes.join(' ');\n };\n\n const getTransitionStyle = () => {\n return `transition-duration: ${p.duration}ms;`;\n };\n\n return () => {\n return createVNode(\n 'div',\n {\n class: getTransitionClass(),\n style: getTransitionStyle(),\n },\n slots.default?.(),\n );\n };\n },\n});\n\nexport interface TransitionGroupSetupProps {\n name: string;\n tag: string;\n duration: number;\n class: string;\n}\n\nexport interface TransitionGroupSlots {\n default?: () => VNode[];\n}\n\nexport const TransitionGroup = defineComponent({\n name: 'LytTransitionGroup',\n\n props: {\n name: { type: String, default: 'list' },\n tag: { type: String, default: 'div' },\n duration: { type: Number, default: 300 },\n class: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: TransitionGroupSlots }) {\n const p = props as unknown as TransitionGroupSetupProps;\n\n return () => {\n const children = slots.default?.() || [];\n\n const wrappedChildren: VNode[] = children.map((child: VNode, index: number) =>\n createVNode(\n 'div',\n {\n key: (child as unknown as { key?: string | number }).key || index,\n class: `${p.name}-item`,\n style: `transition: all ${p.duration}ms ease;`,\n },\n [child],\n ),\n );\n\n return createVNode(\n p.tag as string,\n {\n class: `lyt-transition-group ${p.class}`,\n },\n wrappedChildren,\n );\n };\n },\n});\n\nexport default { Transition, TransitionGroup };\n","/**\n * @lytjs/ui - DatePicker 组件\n *\n * 日期选择器组件,支持范围选择、时间选择、禁用日期、快捷选项,自研日期处理逻辑(零依赖)\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { signal } from '@lytjs/reactivity';\nimport type { DatePickerShortcut, DatePickerSetupProps, DatePickerSlots } from './types';\n\nfunction getDaysInMonth(year: number, month: number): number {\n return new Date(year, month + 1, 0).getDate();\n}\n\nfunction getFirstDayOfMonth(year: number, month: number): number {\n return new Date(year, month, 1).getDay();\n}\n\nfunction formatDate(date: Date, format: string = 'YYYY-MM-DD'): string {\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n const hour = String(date.getHours()).padStart(2, '0');\n const minute = String(date.getMinutes()).padStart(2, '0');\n const second = String(date.getSeconds()).padStart(2, '0');\n\n return format\n .replace('YYYY', String(year))\n .replace('MM', month)\n .replace('DD', day)\n .replace('HH', hour)\n .replace('mm', minute)\n .replace('ss', second);\n}\n\nfunction isSameDay(date1: Date, date2: Date): boolean {\n return (\n date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate()\n );\n}\n\nexport const DatePicker = defineComponent({\n name: 'LytDatePicker',\n\n props: {\n modelValue: { type: [String, Date, Array] as unknown as StringConstructor, default: null },\n placeholder: { type: String, default: '选择日期' },\n disabled: { type: Boolean, default: false },\n clearable: { type: Boolean, default: true },\n format: { type: String, default: 'YYYY-MM-DD' },\n type: { type: String, default: 'date' },\n disabledDate: { type: Function, default: undefined },\n shortcuts: { type: Array, default: (): DatePickerShortcut[] => [] },\n class: { type: String, default: '' },\n onChange: { type: Function, default: undefined },\n onOpen: { type: Function, default: undefined },\n onClose: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: DatePickerSlots }) {\n const p = props as DatePickerSetupProps;\n const isOpen = signal(false);\n const currentYear = signal(new Date().getFullYear());\n const currentMonth = signal(new Date().getMonth());\n const selectDate = signal<Date | null>(null);\n const rangeStart = signal<Date | null>(null);\n const rangeEnd = signal<Date | null>(null);\n const showTime = signal(false);\n const currentHours = signal(0);\n const currentMinutes = signal(0);\n const currentSeconds = signal(0);\n\n const weekDays = ['日', '一', '二', '三', '四', '五', '六'];\n\n const getCalendarDays = (): (Date | null)[] => {\n const year = currentYear();\n const month = currentMonth();\n const firstDay = getFirstDayOfMonth(year, month);\n const daysInMonth = getDaysInMonth(year, month);\n\n const days: (Date | null)[] = [];\n for (let i = 0; i < firstDay; i++) {\n days.push(null);\n }\n for (let i = 1; i <= daysInMonth; i++) {\n days.push(new Date(year, month, i));\n }\n return days;\n };\n\n const getMonthLabel = (): string => {\n return `${currentYear()}年${String(currentMonth() + 1).padStart(2, '0')}月`;\n };\n\n const prevMonth = () => {\n if (currentMonth() === 0) {\n currentMonth.set(11);\n currentYear.set(currentYear() - 1);\n } else {\n currentMonth.set(currentMonth() - 1);\n }\n };\n\n const nextMonth = () => {\n if (currentMonth() === 11) {\n currentMonth.set(0);\n currentYear.set(currentYear() + 1);\n } else {\n currentMonth.set(currentMonth() + 1);\n }\n };\n\n const handleSelectDate = (date: Date) => {\n if (p.disabledDate?.(date)) return;\n\n selectDate.set(date);\n currentHours.set(date.getHours());\n currentMinutes.set(date.getMinutes());\n currentSeconds.set(date.getSeconds());\n\n const dateType = p.type;\n if (dateType === 'date') {\n const result = formatDate(date, p.format);\n p.onChange?.(result);\n isOpen.set(false);\n } else if (dateType === 'datetime') {\n showTime.set(true);\n } else {\n if (!rangeStart()) {\n rangeStart.set(date);\n } else if (!rangeEnd()) {\n rangeEnd.set(date);\n const start = rangeStart()!;\n const end = rangeEnd()!;\n const result = [formatDate(start, p.format), formatDate(end, p.format)];\n p.onChange?.(result);\n } else {\n rangeStart.set(date);\n rangeEnd.set(null);\n }\n }\n };\n\n const handleTimeChange = () => {\n const date = selectDate();\n if (!date) return;\n\n const newDate = new Date(date);\n newDate.setHours(currentHours());\n newDate.setMinutes(currentMinutes());\n newDate.setSeconds(currentSeconds());\n\n const result = formatDate(newDate, p.format);\n p.onChange?.(result);\n isOpen.set(false);\n };\n\n const handleClear = (e: Event) => {\n e.stopPropagation();\n selectDate.set(null);\n rangeStart.set(null);\n rangeEnd.set(null);\n p.onChange?.(null);\n };\n\n const handleShortcutClick = (shortcut: DatePickerShortcut) => {\n if (shortcut.onClick) {\n shortcut.onClick();\n } else if (shortcut.value instanceof Date) {\n handleSelectDate(shortcut.value);\n } else if (Array.isArray(shortcut.value)) {\n rangeStart.set(shortcut.value[0] ?? null);\n rangeEnd.set(shortcut.value[1] ?? null);\n }\n };\n\n const toggleDropdown = () => {\n if (p.disabled) return;\n isOpen.set(!isOpen());\n if (isOpen()) {\n p.onOpen?.();\n } else {\n p.onClose?.();\n }\n };\n\n const isDateSelected = (date: Date): boolean => {\n if (selectDate() && isSameDay(date, selectDate()!)) return true;\n if (rangeStart() && isSameDay(date, rangeStart()!)) return true;\n if (rangeEnd() && isSameDay(date, rangeEnd()!)) return true;\n return false;\n };\n\n const isInRange = (date: Date): boolean => {\n if (!rangeStart() || !rangeEnd()) return false;\n const start = rangeStart()!;\n const end = rangeEnd()!;\n return date > start && date < end;\n };\n\n const isToday = (date: Date): boolean => {\n return isSameDay(date, new Date());\n };\n\n const isDisabled = (date: Date): boolean => {\n return p.disabledDate?.(date) ?? false;\n };\n\n const getDisplayValue = (): string => {\n if (p.type === 'daterange' || p.type === 'datetimerange') {\n if (rangeStart() && rangeEnd()) {\n return `${formatDate(rangeStart()!, p.format)} - ${formatDate(rangeEnd()!, p.format)}`;\n }\n return '';\n }\n return selectDate() ? formatDate(selectDate()!, p.format) : '';\n };\n\n return () => {\n const pickerClass = [\n 'lyt-date-picker',\n isOpen() ? 'lyt-date-picker--open' : '',\n p.disabled ? 'lyt-date-picker--disabled' : '',\n p.class,\n ]\n .filter(Boolean)\n .join(' ');\n\n const calendarDays = getCalendarDays();\n const displayValue = getDisplayValue();\n\n const calendarContent: VNode[] = [];\n\n const headerChildren: VNode[] = [\n createVNode(\n 'button',\n {\n class: 'lyt-date-picker__nav-btn',\n onClick: prevMonth,\n },\n [createVNode('span', {}, '◀')],\n ),\n createVNode('span', { class: 'lyt-date-picker__month-label' }, [\n createVNode('span', {}, getMonthLabel()),\n ]),\n createVNode(\n 'button',\n {\n class: 'lyt-date-picker__nav-btn',\n onClick: nextMonth,\n },\n [createVNode('span', {}, '▶')],\n ),\n ];\n calendarContent.push(\n createVNode('div', { class: 'lyt-date-picker__header' }, headerChildren),\n );\n\n const weekHeaderChildren: VNode[] = weekDays.map((day) =>\n createVNode('span', { class: 'lyt-date-picker__weekday' }, [createVNode('span', {}, day)]),\n );\n calendarContent.push(\n createVNode('div', { class: 'lyt-date-picker__week-header' }, weekHeaderChildren),\n );\n\n const dayButtons: VNode[] = calendarDays.map((date, index) => {\n if (!date) {\n return createVNode(\n 'span',\n { key: `empty-${index}`, class: 'lyt-date-picker__day lyt-date-picker__day--empty' },\n [createVNode('span', {}, ' ')],\n );\n }\n\n const selected = isDateSelected(date);\n const inRange = isInRange(date);\n const today = isToday(date);\n const disabled = isDisabled(date);\n\n return createVNode(\n 'button',\n {\n key: date.toISOString(),\n class: [\n 'lyt-date-picker__day',\n selected ? 'lyt-date-picker__day--selected' : '',\n inRange ? 'lyt-date-picker__day--in-range' : '',\n today ? 'lyt-date-picker__day--today' : '',\n disabled ? 'lyt-date-picker__day--disabled' : '',\n ]\n .filter(Boolean)\n .join(' '),\n disabled: disabled,\n onClick: () => handleSelectDate(date),\n },\n [createVNode('span', {}, String(date.getDate()))],\n );\n });\n calendarContent.push(createVNode('div', { class: 'lyt-date-picker__days' }, dayButtons));\n\n if (showTime() || p.type === 'datetime') {\n showTime.set(true);\n const timeControls: VNode[] = [\n createVNode('input', {\n type: 'number',\n class: 'lyt-date-picker__time-input',\n value: currentHours(),\n min: 0,\n max: 23,\n onInput: (e: Event) => currentHours.set(Number((e.target as HTMLInputElement).value)),\n }),\n createVNode('span', {}, [createVNode('span', {}, ':')]),\n createVNode('input', {\n type: 'number',\n class: 'lyt-date-picker__time-input',\n value: currentMinutes(),\n min: 0,\n max: 59,\n onInput: (e: Event) => currentMinutes.set(Number((e.target as HTMLInputElement).value)),\n }),\n createVNode('span', {}, [createVNode('span', {}, ':')]),\n createVNode('input', {\n type: 'number',\n class: 'lyt-date-picker__time-input',\n value: currentSeconds(),\n min: 0,\n max: 59,\n onInput: (e: Event) => currentSeconds.set(Number((e.target as HTMLInputElement).value)),\n }),\n ];\n calendarContent.push(\n createVNode('div', { class: 'lyt-date-picker__time' }, [\n ...timeControls,\n createVNode(\n 'button',\n {\n class: 'lyt-date-picker__confirm-btn',\n onClick: handleTimeChange,\n },\n [createVNode('span', {}, '确定')],\n ),\n ]),\n );\n }\n\n const footerContent: VNode[] = [];\n\n if (p.shortcuts.length > 0) {\n const shortcuts: VNode[] = p.shortcuts.map((shortcut: DatePickerShortcut) =>\n createVNode(\n 'button',\n {\n class: 'lyt-date-picker__shortcut',\n onClick: () => handleShortcutClick(shortcut),\n },\n [createVNode('span', {}, String(shortcut.text))],\n ),\n );\n footerContent.push(createVNode('div', { class: 'lyt-date-picker__shortcuts' }, shortcuts));\n }\n\n if (slots.footer) {\n footerContent.push(...slots.footer());\n }\n\n if (footerContent.length > 0) {\n calendarContent.push(\n createVNode('div', { class: 'lyt-date-picker__footer' }, footerContent),\n );\n }\n\n const triggerChildren: VNode[] = [\n createVNode(\n 'span',\n {\n class: [\n 'lyt-date-picker__input',\n !displayValue ? 'lyt-date-picker__input--placeholder' : '',\n ]\n .filter(Boolean)\n .join(' '),\n },\n [createVNode('span', {}, displayValue || String(p.placeholder))],\n ),\n ];\n\n if (p.clearable && displayValue) {\n triggerChildren.push(\n createVNode(\n 'span',\n {\n class: 'lyt-date-picker__clear',\n onClick: handleClear,\n },\n [createVNode('span', {}, '×')],\n ),\n );\n }\n\n const dropdownChildren: VNode[] = [];\n if (isOpen()) {\n dropdownChildren.push(\n createVNode('div', { class: 'lyt-date-picker__dropdown' }, [\n createVNode('div', { class: 'lyt-date-picker__calendar' }, calendarContent),\n ]),\n );\n }\n\n return createVNode('div', { class: pickerClass }, [\n createVNode(\n 'div',\n { class: 'lyt-date-picker__trigger', onClick: toggleDropdown },\n triggerChildren,\n ),\n ...dropdownChildren,\n ]);\n };\n },\n});\n\nexport type { DatePickerProps, DatePickerSlots, DatePickerShortcut, DatePickerType } from './types';\n","/**\n * @lytjs/ui - Tree 组件\n *\n * 树形控件组件,支持勾选、拖拽、连接线等高级功能\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { signal } from '@lytjs/reactivity';\nimport { getButtonA11yProps, getInputControlA11yProps, mergeA11yProps } from '@lytjs/common-a11y';\nimport type { TreeNode, TreeSetupProps } from './types';\n\nexport interface FlattenNode extends TreeNode {\n parent: FlattenNode | null;\n level: number;\n isLeaf: boolean;\n isExpanded: boolean;\n isChecked: boolean;\n isIndeterminate: boolean;\n isSelected: boolean;\n}\n\nexport const Tree = defineComponent({\n name: 'LytTree',\n\n props: {\n data: { type: Array, default: (): TreeNode[] => [] },\n showLine: { type: Boolean, default: false },\n showCheckbox: { type: Boolean, default: false },\n checkable: { type: Boolean, default: false },\n draggable: { type: Boolean, default: false },\n defaultExpandAll: { type: Boolean, default: false },\n defaultExpandedKeys: { type: Array, default: (): (string | number)[] => [] },\n defaultCheckedKeys: { type: Array, default: (): (string | number)[] => [] },\n nodeKey: { type: String, default: 'id' },\n class: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n onCheck: { type: Function, default: undefined },\n onSelect: { type: Function, default: undefined },\n onExpand: { type: Function, default: undefined },\n onNodeClick: { type: Function, default: undefined },\n onDragStart: { type: Function, default: undefined },\n onDragEnd: { type: Function, default: undefined },\n onDrop: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>) {\n const p = props as TreeSetupProps;\n const expandedKeys = signal(new Set<string | number>(p.defaultExpandedKeys));\n const checkedKeys = signal(new Set<string | number>(p.defaultCheckedKeys));\n const selectedKey = signal<string | number | null>(null);\n\n const flattenTree = (\n nodes: TreeNode[],\n parent: FlattenNode | null = null,\n level = 0,\n ): FlattenNode[] => {\n const result: FlattenNode[] = [];\n\n for (const node of nodes) {\n const nodeKey = node.id;\n const isExpanded = expandedKeys().has(nodeKey);\n const isChecked = checkedKeys().has(nodeKey);\n\n const flatNode: FlattenNode = {\n ...node,\n parent,\n level,\n isLeaf: !node.children || node.children.length === 0,\n isExpanded,\n isChecked,\n isIndeterminate: false,\n isSelected: selectedKey() === nodeKey,\n };\n\n result.push(flatNode);\n\n if (isExpanded && node.children) {\n result.push(...flattenTree(node.children, flatNode, level + 1));\n }\n }\n\n return result;\n };\n\n const handleNodeClick = (node: TreeNode) => {\n selectedKey.set(node.id);\n p.onNodeClick?.(node);\n p.onSelect?.(node);\n };\n\n const handleCheck = (node: TreeNode, checked: boolean) => {\n const newCheckedKeys = new Set(checkedKeys());\n if (checked) {\n newCheckedKeys.add(node.id);\n } else {\n newCheckedKeys.delete(node.id);\n }\n checkedKeys.set(newCheckedKeys);\n p.onCheck?.(p.data, checked);\n };\n\n const handleExpand = (node: TreeNode) => {\n const newExpandedKeys = new Set(expandedKeys());\n const isExpanded = expandedKeys().has(node.id);\n\n if (isExpanded) {\n newExpandedKeys.delete(node.id);\n } else {\n newExpandedKeys.add(node.id);\n }\n\n expandedKeys.set(newExpandedKeys);\n p.onExpand?.(node, !isExpanded);\n };\n\n const renderTreeNode = (node: FlattenNode): VNode => {\n const indent = node.level * 20;\n\n const nodeContent: VNode[] = [];\n\n if (!node.isLeaf) {\n const expandBtnProps = getButtonA11yProps({\n ariaLabel: node.isExpanded ? '收起' : '展开',\n disabled: node.disabled,\n });\n\n nodeContent.push(\n createVNode(\n 'span',\n mergeA11yProps(expandBtnProps, {\n class: 'lyt-tree__expand-icon',\n onClick: () => handleExpand(node),\n }),\n [createVNode('span', {}, node.isExpanded ? '▼' : '▶')],\n ),\n );\n }\n\n if (p.showCheckbox) {\n const checkboxProps = getInputControlA11yProps({\n checked: node.isChecked,\n disabled: node.disabled,\n ariaLabel: node.label,\n });\n\n nodeContent.push(\n createVNode(\n 'input',\n mergeA11yProps(checkboxProps, {\n type: 'checkbox',\n checked: node.isChecked,\n onChange: (e: Event) => handleCheck(node, (e.target as HTMLInputElement).checked),\n }),\n ),\n );\n }\n\n const labelBtnProps = getButtonA11yProps({\n ariaLabel: node.label,\n disabled: node.disabled,\n });\n\n nodeContent.push(\n createVNode(\n 'span',\n mergeA11yProps(labelBtnProps, {\n class: 'lyt-tree__label',\n onClick: () => handleNodeClick(node),\n }),\n [createVNode('span', {}, String(node.label))],\n ),\n );\n\n return createVNode(\n 'div',\n {\n key: String(node.id),\n class: [\n 'lyt-tree__node',\n node.isSelected ? 'lyt-tree__node--selected' : '',\n node.isChecked ? 'lyt-tree__node--checked' : '',\n ]\n .filter(Boolean)\n .join(' '),\n style: `padding-left: ${indent}px`,\n draggable: p.draggable,\n onDragStart: (e: DragEvent) => p.onDragStart?.(node, e),\n onDragEnd: (e: DragEvent) => p.onDragEnd?.(node, e),\n },\n nodeContent,\n );\n };\n\n return () => {\n const data = p.data || [];\n const flatData = flattenTree(data);\n\n if (flatData.length === 0) {\n return createVNode('div', { class: 'lyt-tree__empty' }, [\n createVNode('span', {}, '暂无数据'),\n ]);\n }\n\n const treeClass = ['lyt-tree', p.showLine ? 'lyt-tree--show-line' : '', p.class]\n .filter(Boolean)\n .join(' ');\n\n const a11yProps: Record<string, string | undefined> = {\n id: p.id,\n role: 'tree',\n 'aria-label': p.ariaLabel,\n 'aria-describedby': p.ariaDescribedBy,\n };\n\n return createVNode(\n 'div',\n { ...a11yProps, class: treeClass },\n flatData.map((node) => renderTreeNode(node)),\n );\n };\n },\n});\n\nexport type { TreeProps, TreeSlots, TreeNode, TreeSetupProps } from './types';\n","/**\n * @lytjs/ui - Menu 组件(增强版)\n *\n * 导航菜单组件,支持垂直和水平模式,子菜单可折叠\n * 增强 Accessibility 支持:\n * - 完整的 ARIA 属性(menu, menuitem, menubar)\n * - 键盘导航改进(方向键导航,Enter 激活,Escape 关闭子菜单)\n * - 焦点管理(打开子菜单时聚焦,关闭后返回)\n * - 屏幕阅读器支持(Announcements)\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { signal } from '@lytjs/reactivity';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\nexport interface MenuSetupProps {\n mode: string;\n defaultActive: string;\n defaultOpeneds: string[];\n uniqueOpened: boolean;\n class: string;\n id: string;\n ariaLabel: string;\n ariaDescribedBy: string;\n onSelect: ((index: string) => void) | undefined;\n onOpen: ((index: string) => void) | undefined;\n onClose: ((index: string) => void) | undefined;\n}\n\nexport interface MenuSlots {\n default?: () => VNode[];\n}\n\ninterface MenuItemInfo {\n index: string;\n label: string;\n disabled: boolean;\n hasChildren: boolean;\n element: HTMLElement | null;\n}\n\nexport const Menu = defineComponent({\n name: 'LytMenu',\n\n props: {\n mode: { type: String, default: 'horizontal' },\n defaultActive: { type: String, default: '' },\n defaultOpeneds: { type: Array, default: (): string[] => [] },\n uniqueOpened: { type: Boolean, default: false },\n class: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n onSelect: { type: Function, default: undefined },\n onOpen: { type: Function, default: undefined },\n onClose: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: MenuSlots }) {\n const p = props as unknown as MenuSetupProps;\n const activeIndex = signal(p.defaultActive);\n const openedIndexes = signal(new Set<string>(p.defaultOpeneds));\n const menuRef = signal<HTMLElement | null>(null);\n const currentSubmenu = signal<string | null>(null);\n const focusedIndex = signal(-1);\n const announcement = signal('');\n const previousActiveElement = signal<HTMLElement | null>(null);\n const menuId = signal(`lyt-menu-${Math.random().toString(36).substr(2, 9)}`);\n\n const announce = (message: string) => {\n announcement.set(message);\n setTimeout(() => announcement.set(''), 1000);\n };\n\n const getMenuItems = (): MenuItemInfo[] => {\n const items = slots.default?.() || [];\n const menuItems: MenuItemInfo[] = [];\n\n items.forEach((item: VNode) => {\n const itemProps = (\n item as unknown as {\n props: {\n index?: string;\n label?: string;\n icon?: unknown;\n children?: unknown[];\n disabled?: boolean;\n };\n }\n ).props;\n if (!itemProps || !itemProps.index) return;\n\n const hasChildren = !!(itemProps.children && (itemProps.children as unknown[]).length > 0);\n menuItems.push({\n index: itemProps.index,\n label: itemProps.label || '',\n disabled: !!itemProps.disabled,\n hasChildren,\n element: null,\n });\n });\n\n return menuItems;\n };\n\n const handleSelect = (index: string) => {\n activeIndex.set(index);\n announce(`已选择菜单项:${index}`);\n p.onSelect?.(index);\n };\n\n const toggleSubmenu = (index: string, itemLabel: string) => {\n const newOpened = new Set(openedIndexes());\n\n if (newOpened.has(index)) {\n newOpened.delete(index);\n announce(`已关闭子菜单:${itemLabel}`);\n p.onClose?.(index);\n currentSubmenu.set(null);\n\n const prevEl = previousActiveElement();\n if (prevEl && prevEl.focus) {\n prevEl.focus();\n }\n } else {\n if (p.uniqueOpened) {\n newOpened.clear();\n if (currentSubmenu()) {\n announce('已关闭其他子菜单');\n }\n }\n newOpened.add(index);\n announce(`已打开子菜单:${itemLabel}`);\n p.onOpen?.(index);\n currentSubmenu.set(index);\n\n previousActiveElement.set(document.activeElement as HTMLElement);\n setTimeout(() => {\n const menu = menuRef();\n if (menu) {\n const submenu = menu.querySelector(`[data-submenu-id=\"${index}\"] ul`);\n if (submenu) {\n const firstItem = submenu.querySelector('[role=\"menuitem\"]') as HTMLElement;\n firstItem?.focus();\n }\n }\n }, 10);\n }\n\n openedIndexes.set(newOpened);\n };\n\n const handleKeydown = (\n e: KeyboardEvent,\n itemIndex: string,\n hasChildren: boolean,\n itemLabel: string,\n ) => {\n const menuItems = getMenuItems();\n const currentIndex = menuItems.findIndex((item) => item.index === itemIndex);\n\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n if (hasChildren && !openedIndexes().has(itemIndex)) {\n toggleSubmenu(itemIndex, itemLabel);\n } else {\n for (let i = 1; i <= menuItems.length; i++) {\n const nextIndex = (currentIndex + i) % menuItems.length;\n const nextItem = menuItems[nextIndex];\n if (nextItem && !nextItem.disabled) {\n announce(`导航到菜单项:${nextItem.label}`);\n focusedIndex.set(nextIndex);\n break;\n }\n }\n }\n break;\n\n case 'ArrowUp':\n e.preventDefault();\n for (let i = 1; i <= menuItems.length; i++) {\n const prevIndex = (currentIndex - i + menuItems.length) % menuItems.length;\n const prevItem = menuItems[prevIndex];\n if (prevItem && !prevItem.disabled) {\n announce(`导航到菜单项:${prevItem.label}`);\n focusedIndex.set(prevIndex);\n break;\n }\n }\n break;\n\n case 'ArrowRight':\n e.preventDefault();\n for (let i = 1; i <= menuItems.length; i++) {\n const nextIndex = (currentIndex + i) % menuItems.length;\n const nextItem = menuItems[nextIndex];\n if (nextItem && !nextItem.disabled) {\n announce(`导航到菜单项:${nextItem.label}`);\n focusedIndex.set(nextIndex);\n break;\n }\n }\n break;\n\n case 'ArrowLeft':\n e.preventDefault();\n for (let i = 1; i <= menuItems.length; i++) {\n const prevIndex = (currentIndex - i + menuItems.length) % menuItems.length;\n const prevItem = menuItems[prevIndex];\n if (prevItem && !prevItem.disabled) {\n announce(`导航到菜单项:${prevItem.label}`);\n focusedIndex.set(prevIndex);\n break;\n }\n }\n break;\n\n case 'Enter':\n case ' ':\n e.preventDefault();\n if (hasChildren) {\n toggleSubmenu(itemIndex, itemLabel);\n } else {\n handleSelect(itemIndex);\n }\n break;\n\n case 'Escape':\n if (openedIndexes().has(itemIndex)) {\n e.preventDefault();\n toggleSubmenu(itemIndex, itemLabel);\n }\n break;\n\n case 'Home': {\n e.preventDefault();\n const firstEnabled = menuItems.find((item) => !item.disabled);\n if (firstEnabled) {\n announce(`导航到第一个菜单项:${firstEnabled.label}`);\n focusedIndex.set(menuItems.indexOf(firstEnabled));\n }\n break;\n }\n\n case 'End':\n e.preventDefault();\n for (let i = menuItems.length - 1; i >= 0; i--) {\n const item = menuItems[i];\n if (item && !item.disabled) {\n announce(`导航到最后一个菜单项:${item.label}`);\n focusedIndex.set(i);\n break;\n }\n }\n break;\n }\n };\n\n return () => {\n const menuClass = ['lyt-menu', `lyt-menu--${p.mode}`, p.class].filter(Boolean).join(' ');\n\n const items = slots.default?.() || [];\n const menuListId = menuId();\n\n const menuItems: VNode[] = items.map((item: VNode, index: number) => {\n const itemProps = (\n item as unknown as {\n props: {\n index?: string;\n label?: string;\n icon?: unknown;\n children?: unknown[];\n disabled?: boolean;\n };\n }\n ).props;\n if (!itemProps) return item;\n\n const isActive = itemProps.index === activeIndex();\n const isOpened = openedIndexes().has(itemProps.index as string);\n const isFocused = focusedIndex() === index;\n\n const itemChildren: VNode[] = [];\n\n if (itemProps.icon) {\n itemChildren.push(\n createVNode('span', { class: 'lyt-menu__icon' }, [itemProps.icon as unknown as VNode]),\n );\n }\n itemChildren.push(\n createVNode('span', { class: 'lyt-menu__title' }, [\n createVNode('span', {}, String(itemProps.label || '')),\n ]),\n );\n\n const hasChildren = !!(itemProps.children && (itemProps.children as unknown[]).length > 0);\n const itemId = `${menuListId}-item-${itemProps.index}`;\n\n if (hasChildren) {\n itemChildren.push(\n createVNode(\n 'span',\n {\n class: ['lyt-menu__arrow', isOpened ? 'lyt-menu__arrow--opened' : '']\n .filter(Boolean)\n .join(' '),\n 'aria-hidden': 'true',\n },\n [createVNode('span', {}, isOpened ? '▲' : '▼')],\n ),\n );\n\n const submenuChildren: VNode[] = (itemProps.children as unknown[]).map(\n (child: unknown) => {\n const childItem = child as {\n index?: string;\n label?: string;\n icon?: unknown;\n disabled?: boolean;\n };\n const childItemId = `${itemId}-child-${childItem.index}`;\n const isChildActive = childItem.index === activeIndex();\n\n return createVNode(\n 'li',\n {\n key: childItem.index,\n id: childItemId,\n class: [\n 'lyt-menu__item',\n 'lyt-menu__submenu-item',\n isChildActive ? 'lyt-menu__item--active' : '',\n childItem.disabled ? 'lyt-menu__item--disabled' : '',\n ]\n .filter(Boolean)\n .join(' '),\n role: 'menuitem',\n 'aria-disabled': childItem.disabled,\n onClick: () => {\n if (childItem.disabled) return;\n handleSelect(childItem.index as string);\n },\n },\n [\n childItem.icon\n ? createVNode('span', { class: 'lyt-menu__icon' }, [\n childItem.icon as unknown as VNode,\n ])\n : createVNode('span', {}, ''),\n createVNode('span', { class: 'lyt-menu__title' }, [\n createVNode('span', {}, String(childItem.label || '')),\n ]),\n ],\n );\n },\n );\n\n itemChildren.push(\n createVNode(\n 'div',\n {\n 'data-submenu-id': itemProps.index,\n class: ['lyt-menu__submenu', isOpened ? 'lyt-menu__submenu--opened' : '']\n .filter(Boolean)\n .join(' '),\n 'aria-label': itemProps.label,\n },\n [\n createVNode(\n 'ul',\n {\n class: 'lyt-menu__submenu-list',\n role: 'menu',\n },\n submenuChildren,\n ),\n ],\n ),\n );\n }\n\n const itemMenuitemProps = {\n id: itemId,\n 'aria-disabled': itemProps.disabled ? true : undefined,\n 'aria-expanded': hasChildren ? isOpened : undefined,\n 'aria-haspopup': hasChildren ? true : undefined,\n };\n\n return createVNode(\n 'li',\n mergeA11yProps(itemMenuitemProps, {\n key: itemProps.index,\n class: [\n 'lyt-menu__item',\n isActive ? 'lyt-menu__item--active' : '',\n isFocused ? 'lyt-menu__item--focused' : '',\n itemProps.disabled ? 'lyt-menu__item--disabled' : '',\n ]\n .filter(Boolean)\n .join(' '),\n role: 'menuitem',\n tabIndex: isFocused ? 0 : -1,\n 'aria-haspopup': hasChildren,\n 'aria-expanded': hasChildren ? isOpened : undefined,\n onClick: () => {\n if (itemProps.disabled) return;\n if (hasChildren) {\n toggleSubmenu(itemProps.index as string, itemProps.label || '');\n } else {\n handleSelect(itemProps.index as string);\n }\n },\n onKeydown: (e: KeyboardEvent) =>\n handleKeydown(e, itemProps.index as string, hasChildren, itemProps.label || ''),\n }),\n itemChildren,\n );\n });\n\n return createVNode(\n 'div',\n {\n ref: (el: HTMLElement) => menuRef.set(el),\n },\n [\n createVNode(\n 'ul',\n {\n class: menuClass,\n role: 'menubar',\n id: p.id || menuListId,\n 'aria-label': p.ariaLabel || '主菜单',\n },\n menuItems,\n ),\n createVNode(\n 'div',\n {\n class: 'lyt-menu__sro',\n role: 'status',\n 'aria-live': 'polite',\n 'aria-atomic': 'true',\n },\n announcement(),\n ),\n ],\n );\n };\n },\n});\n\nexport type { MenuProps } from './types';\n","/**\n * @lytjs/ui - Cascader 组件\n *\n * 级联选择器组件,支持多选、懒加载、数据回显等功能\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { signal } from '@lytjs/reactivity';\nimport type { CascaderOption, CascaderSetupProps, CascaderSlots } from './types';\nimport {\n getComboboxA11yProps,\n getButtonA11yProps,\n getGroupA11yProps,\n mergeA11yProps,\n} from '@lytjs/common-a11y';\n\nexport const Cascader = defineComponent({\n name: 'LytCascader',\n\n props: {\n options: { type: Array, default: (): CascaderOption[] => [] },\n modelValue: { type: Array, default: (): (string | number)[] => [] },\n placeholder: { type: String, default: '请选择' },\n disabled: { type: Boolean, default: false },\n clearable: { type: Boolean, default: true },\n multiple: { type: Boolean, default: false },\n filterable: { type: Boolean, default: false },\n checkStrictly: { type: Boolean, default: false },\n showAllLevels: { type: Boolean, default: true },\n collapseTags: { type: Boolean, default: false },\n separator: { type: String, default: ' / ' },\n class: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n load: { type: Function, default: undefined },\n onChange: { type: Function, default: undefined },\n onExpandChange: { type: Function, default: undefined },\n onVisibleChange: { type: Function, default: undefined },\n onRemoveTag: { type: Function, default: undefined },\n onClear: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: CascaderSlots }) {\n const p = props as CascaderSetupProps;\n const isDropdownOpen = signal(false);\n const activePath = signal<(string | number)[]>([]);\n const selectedValues = signal<Array<(string | number)[]>>([]);\n const searchText = signal('');\n const isFiltering = signal(false);\n\n if (p.modelValue.length > 0) {\n if (p.multiple) {\n selectedValues.set([...(p.modelValue as Array<(string | number)[]>)]);\n } else {\n selectedValues.set([p.modelValue as (string | number)[]]);\n }\n }\n\n const toggleDropdown = (visible?: boolean) => {\n if (p.disabled) return;\n\n if (typeof visible === 'boolean') {\n isDropdownOpen.set(visible);\n } else {\n isDropdownOpen.set(!isDropdownOpen());\n }\n p.onVisibleChange?.(isDropdownOpen());\n };\n\n const clear = () => {\n selectedValues.set([]);\n activePath.set([]);\n isDropdownOpen.set(false);\n p.onClear?.();\n p.onChange?.([]);\n };\n\n const removeTag = (index: number) => {\n if (p.disabled) return;\n\n const newSelected = [...selectedValues()];\n newSelected.splice(index, 1);\n selectedValues.set(newSelected);\n p.onRemoveTag?.(newSelected);\n p.onChange?.(newSelected);\n };\n\n const selectOption = (option: CascaderOption, level: number) => {\n if (option.disabled) return;\n\n const newPath = [...activePath().slice(0, level), option.value];\n activePath.set(newPath);\n\n const nextOptions = option.children || [];\n\n if (option.isLeaf) {\n if (p.multiple) {\n const exists = selectedValues().some((item) => item.join('-') === newPath.join('-'));\n const newSelected = exists\n ? selectedValues().filter((item) => item.join('-') !== newPath.join('-'))\n : [...selectedValues(), newPath];\n selectedValues.set(newSelected);\n p.onChange?.(newSelected);\n } else {\n selectedValues.set([newPath]);\n isDropdownOpen.set(false);\n p.onChange?.(newPath);\n }\n } else if (nextOptions.length === 0 && p.load) {\n option.loading = true;\n p.load(option, (children: CascaderOption[]) => {\n option.loading = false;\n option.children = children;\n });\n }\n };\n\n const getOptionsAtLevel = (level: number): CascaderOption[] => {\n if (isFiltering()) {\n const keyword = searchText().toLowerCase();\n return filterOptions(p.options, keyword);\n }\n\n let options: CascaderOption[] = [...p.options];\n for (let i = 0; i < level; i++) {\n const found = options.find((opt) => opt.value === activePath()[i]);\n options = found?.children || [];\n if (options.length === 0) break;\n }\n return options;\n };\n\n const filterOptions = (options: CascaderOption[], keyword: string): CascaderOption[] => {\n return options.reduce((acc: CascaderOption[], option) => {\n const match = option.label.toLowerCase().includes(keyword);\n const children = option.children ? filterOptions(option.children, keyword) : [];\n\n if (match || children.length > 0) {\n acc.push({ ...option, children: children.length > 0 ? children : undefined });\n }\n return acc;\n }, []);\n };\n\n const getDisplayText = (): string => {\n const values = selectedValues();\n\n if (values.length === 0) {\n return p.placeholder;\n }\n\n if (!p.multiple) {\n return getPathLabel(values[0] || []);\n }\n\n return `${values.length} 项`;\n };\n\n const getPathLabel = (path: (string | number)[]): string => {\n const labels: string[] = [];\n let currentOptions: CascaderOption[] = p.options;\n\n for (const value of path) {\n const found = currentOptions.find((opt) => opt.value === value);\n if (found) {\n labels.push(found.label);\n currentOptions = found.children || [];\n }\n }\n\n return p.showAllLevels ? labels.join(p.separator) : labels[labels.length - 1] || '';\n };\n\n const renderOption = (option: CascaderOption, level: number): VNode => {\n const isActive = activePath()[level] === option.value;\n const isSelected = selectedValues().some(\n (path) => path.join('-') === [...activePath().slice(0, level), option.value].join('-'),\n );\n\n const optionChildren: VNode[] = [];\n\n if (option.loading) {\n optionChildren.push(\n createVNode('span', { class: 'lyt-cascader__loading' }, [createVNode('span', {}, '⏳')]),\n );\n }\n\n if (slots.default) {\n optionChildren.push(...slots.default(option));\n } else {\n const labelBtnProps = getButtonA11yProps({\n ariaLabel: option.label,\n disabled: option.disabled,\n });\n optionChildren.push(\n createVNode('span', mergeA11yProps(labelBtnProps, {}), String(option.label)),\n );\n }\n\n if (option.children && !option.isLeaf) {\n optionChildren.push(\n createVNode('span', { class: 'lyt-cascader__arrow' }, [createVNode('span', {}, '▶')]),\n );\n }\n\n return createVNode(\n 'div',\n {\n key: String(option.value),\n class: [\n 'lyt-cascader__option',\n isActive ? 'lyt-cascader__option--active' : '',\n isSelected ? 'lyt-cascader__option--selected' : '',\n option.disabled ? 'lyt-cascader__option--disabled' : '',\n ]\n .filter(Boolean)\n .join(' '),\n onClick: () => selectOption(option, level),\n },\n optionChildren,\n );\n };\n\n return () => {\n const cascaderClass = [\n 'lyt-cascader',\n isDropdownOpen() ? 'lyt-cascader--open' : '',\n p.disabled ? 'lyt-cascader--disabled' : '',\n p.class,\n ]\n .filter(Boolean)\n .join(' ');\n\n const isValueSet = selectedValues().length > 0;\n\n const a11yProps = getComboboxA11yProps({\n id: p.id,\n ariaLabel: p.ariaLabel,\n ariaDescribedBy: p.ariaDescribedBy,\n disabled: p.disabled,\n expanded: isDropdownOpen(),\n controls: undefined,\n });\n\n const contentChildren: VNode[] = [];\n\n if (p.multiple && isValueSet) {\n selectedValues().forEach((path, index) => {\n const removeBtnProps = getButtonA11yProps({ ariaLabel: '移除标签' });\n contentChildren.push(\n createVNode('span', { class: 'lyt-cascader__tag', key: index }, [\n createVNode('span', {}, getPathLabel(path)),\n createVNode(\n 'span',\n mergeA11yProps(removeBtnProps, {\n class: 'lyt-cascader__tag-close',\n onClick: () => removeTag(index),\n }),\n [createVNode('span', {}, '×')],\n ),\n ]),\n );\n });\n } else {\n contentChildren.push(\n createVNode(\n 'span',\n {\n class: ['lyt-cascader__value', !isValueSet ? 'lyt-cascader__placeholder' : '']\n .filter(Boolean)\n .join(' '),\n },\n [createVNode('span', {}, getDisplayText())],\n ),\n );\n }\n\n if (p.clearable && isValueSet) {\n const clearBtnProps = getButtonA11yProps({ ariaLabel: '清除' });\n contentChildren.push(\n createVNode(\n 'span',\n mergeA11yProps(clearBtnProps, {\n class: 'lyt-cascader__clear',\n onClick: (e: Event) => {\n e.stopPropagation();\n clear();\n },\n }),\n [createVNode('span', {}, '×')],\n ),\n );\n }\n\n contentChildren.push(\n createVNode('span', { class: 'lyt-cascader__arrow' }, [createVNode('span', {}, '▼')]),\n );\n\n const dropdownContent: VNode[] = [];\n\n if (p.filterable) {\n dropdownContent.push(\n createVNode(\n 'div',\n mergeA11yProps(\n {\n role: 'search',\n },\n { class: 'lyt-cascader__search' },\n ),\n [\n createVNode('input', {\n type: 'text',\n placeholder: '搜索',\n value: searchText(),\n onInput: (e: Event) => {\n const value = (e.target as HTMLInputElement).value;\n searchText.set(value);\n isFiltering.set(value.length > 0);\n },\n }),\n ],\n ),\n );\n }\n\n const maxLevel = isFiltering() ? 1 : activePath().length + 1;\n for (let i = 0; i < maxLevel; i++) {\n const options = getOptionsAtLevel(i);\n if (options.length > 0 || i === 0) {\n const panelProps = getGroupA11yProps({ role: 'listbox' });\n dropdownContent.push(\n createVNode(\n 'div',\n mergeA11yProps(panelProps, { class: 'lyt-cascader__panel', key: i }),\n options.map((option) => renderOption(option, i)),\n ),\n );\n }\n }\n\n const resultChildren: VNode[] = [\n createVNode(\n 'div',\n mergeA11yProps(a11yProps, { class: 'lyt-cascader__trigger' }),\n contentChildren,\n ),\n ];\n\n if (isDropdownOpen()) {\n const dropdownChildren: VNode[] = [];\n if (p.options.length === 0) {\n if (slots.empty) {\n dropdownChildren.push(...slots.empty());\n } else {\n dropdownChildren.push(createVNode('span', {}, '暂无数据'));\n }\n } else {\n dropdownChildren.push(...dropdownContent);\n }\n\n resultChildren.push(\n createVNode('div', { class: 'lyt-cascader__dropdown' }, dropdownChildren),\n );\n }\n\n return createVNode(\n 'div',\n {\n class: cascaderClass,\n onClick: () => toggleDropdown(),\n },\n resultChildren,\n );\n };\n },\n});\n\nexport type { CascaderProps, CascaderSlots, CascaderOption, CascaderSetupProps } from './types';\n","/**\n * @lytjs/ui - TreeSelect 树形选择器组件\n *\n * 树形选择器组件,结合了 Select 和 Tree 功能\n */\n\nimport { defineComponent, type PropType } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { signal } from '@lytjs/reactivity';\nimport { getComboboxA11yProps, getButtonA11yProps, mergeA11yProps } from '@lytjs/common-a11y';\n\nexport interface TreeSelectNode {\n value: string | number;\n label: string;\n children?: TreeSelectNode[];\n disabled?: boolean;\n}\n\nexport interface TreeSelectSetupProps {\n data: TreeSelectNode[];\n value: string | number;\n placeholder: string;\n multiple: boolean;\n clearable: boolean;\n filterable: boolean;\n filterPlaceholder: string;\n nodeKey: string;\n defaultExpandAll: boolean;\n defaultExpandedKeys: (string | number)[];\n class: string;\n style: string | Record<string, string>;\n id: string;\n ariaLabel: string;\n ariaDescribedBy: string;\n onChange: ((value: string | number, node: TreeSelectNode) => void) | undefined;\n}\n\ntype NodeDict = Record<string, unknown>;\n\nexport const TreeSelect = defineComponent({\n name: 'LytTreeSelect',\n\n props: {\n data: { type: Array as () => TreeSelectNode[], default: () => [] },\n value: { type: [String, Number] as unknown as PropType<string | number>, default: '' },\n placeholder: { type: String, default: '请选择' },\n multiple: { type: Boolean, default: false },\n clearable: { type: Boolean, default: false },\n filterable: { type: Boolean, default: false },\n filterPlaceholder: { type: String, default: '请输入搜索内容' },\n nodeKey: { type: String, default: 'value' },\n defaultExpandAll: { type: Boolean, default: false },\n defaultExpandedKeys: { type: Array as () => (string | number)[], default: () => [] },\n class: { type: String, default: '' },\n style: {\n type: [String, Object] as unknown as PropType<string | Record<string, string>>,\n default: '',\n },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n onChange: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots, emit }) {\n const _props = props as unknown as TreeSelectSetupProps;\n const visible = signal(false);\n const filterQuery = signal('');\n const expandedKeys = signal<(string | number)[]>(\n _props.defaultExpandAll ? getAllNodeKeys(_props.data) : _props.defaultExpandedKeys,\n );\n const selectedLabel = signal('');\n\n function getAllNodeKeys(nodes: TreeSelectNode[]): (string | number)[] {\n const keys: (string | number)[] = [];\n const traverse = (nodeList: TreeSelectNode[]) => {\n for (const node of nodeList) {\n const nodeDict = node as unknown as NodeDict;\n const nodeValue = nodeDict[_props.nodeKey];\n if (typeof nodeValue === 'string' || typeof nodeValue === 'number') {\n keys.push(nodeValue);\n }\n if (node.children && node.children.length > 0) {\n traverse(node.children);\n }\n }\n };\n traverse(nodes);\n return keys;\n }\n\n const filteredData = (): TreeSelectNode[] => {\n const query = filterQuery();\n if (!query) return _props.data;\n\n const filterNodes = (nodes: TreeSelectNode[]): TreeSelectNode[] => {\n const result: TreeSelectNode[] = [];\n for (const node of nodes) {\n let filteredChildren: TreeSelectNode[] | undefined;\n if (node.children && node.children.length > 0) {\n filteredChildren = filterNodes(node.children);\n }\n\n const labelMatch = node.label.toLowerCase().includes(query.toLowerCase());\n const hasMatchingChildren = filteredChildren && filteredChildren.length > 0;\n\n if (labelMatch || hasMatchingChildren) {\n const filteredNode: TreeSelectNode = {\n ...node,\n children: hasMatchingChildren ? filteredChildren : node.children,\n };\n result.push(filteredNode);\n }\n }\n return result;\n };\n\n return filterNodes(_props.data);\n };\n\n const selectedNode = (): TreeSelectNode | null => {\n const findNode = (nodes: TreeSelectNode[]): TreeSelectNode | null => {\n for (const node of nodes) {\n const nodeDict = node as unknown as NodeDict;\n const nodeValue = nodeDict[_props.nodeKey];\n if (nodeValue === _props.value) {\n return node;\n }\n if (node.children && node.children.length > 0) {\n const found = findNode(node.children);\n if (found) return found;\n }\n }\n return null;\n };\n return findNode(_props.data);\n };\n\n const handleToggle = () => {\n visible.update((v) => !v);\n };\n\n const handleClear = () => {\n emit('update:value', '');\n _props.onChange?.('' as unknown as string | number, null as unknown as TreeSelectNode);\n };\n\n const handleSelect = (node: TreeSelectNode) => {\n if (node.disabled) return;\n const nodeDict = node as unknown as NodeDict;\n const nodeValue = nodeDict[_props.nodeKey] as string | number;\n emit('update:value', nodeValue);\n _props.onChange?.(nodeValue, node);\n selectedLabel.set(node.label);\n visible.set(false);\n };\n\n const handleToggleExpand = (node: TreeSelectNode, e: Event) => {\n e.stopPropagation();\n const nodeDict = node as unknown as NodeDict;\n const nodeKey = nodeDict[_props.nodeKey] as string | number;\n const keys = expandedKeys();\n if (keys.includes(nodeKey)) {\n expandedKeys.set(keys.filter((k) => k !== nodeKey));\n } else {\n expandedKeys.update((k) => [...k, nodeKey]);\n }\n };\n\n const getTreeSelectClass = () => {\n const classes = ['lyt-tree-select'];\n if (visible()) classes.push('is-visible');\n if (_props.class) classes.push(_props.class);\n return classes.join(' ');\n };\n\n const getTreeSelectStyle = (): string | Record<string, string> => {\n if (!_props.style) return {};\n if (isString(_props.style)) return _props.style;\n if (isObject(_props.style)) return _props.style;\n return {};\n };\n\n const renderNode = (node: TreeSelectNode, level: number = 0): VNode => {\n const keys = expandedKeys();\n const nodeDict = node as unknown as NodeDict;\n const nodeKey = nodeDict[_props.nodeKey] as string | number;\n const isExpanded = keys.includes(nodeKey);\n const isSelected = nodeKey === _props.value;\n const hasChildren = node.children && node.children.length > 0;\n\n const nodeChildren: VNode[] = [];\n\n if (hasChildren) {\n const expandBtnProps = getButtonA11yProps({\n ariaLabel: isExpanded ? '收起' : '展开',\n disabled: node.disabled,\n });\n nodeChildren.push(\n createVNode(\n 'span',\n mergeA11yProps(expandBtnProps, {\n class: ['lyt-tree-node-expand-icon', isExpanded ? 'is-expanded' : ''],\n onClick: (e: Event) => handleToggleExpand(node, e),\n }),\n [createVNode('span', {}, isExpanded ? '▼' : '▶')],\n ),\n );\n } else {\n nodeChildren.push(\n createVNode('span', { class: 'lyt-tree-node-expand-icon' }, [\n createVNode('span', {}, ''),\n ]),\n );\n }\n\n const labelBtnProps = getButtonA11yProps({\n ariaLabel: node.label,\n disabled: node.disabled,\n });\n nodeChildren.push(\n createVNode(\n 'span',\n mergeA11yProps(labelBtnProps, {\n class: 'lyt-tree-node-label',\n }),\n [createVNode('span', {}, node.label)],\n ),\n );\n\n const nodeVNode = createVNode(\n 'div',\n {\n class: [\n 'lyt-tree-node',\n { 'is-selected': isSelected, 'is-disabled': node.disabled, 'is-expanded': isExpanded },\n ],\n style: { paddingLeft: `${level * 20}px` },\n onClick: () => handleSelect(node),\n },\n nodeChildren,\n );\n\n if (hasChildren && isExpanded && node.children) {\n const childNodes = node.children.map((child: TreeSelectNode) =>\n renderNode(child, level + 1),\n );\n return createVNode('div', { class: 'lyt-tree-node-wrapper' }, [nodeVNode, ...childNodes]);\n }\n\n return nodeVNode;\n };\n\n return () => {\n const children: VNode[] = [];\n\n const triggerChildren: VNode[] = [];\n\n const a11yProps = getComboboxA11yProps({\n id: _props.id,\n ariaLabel: _props.ariaLabel,\n ariaDescribedBy: _props.ariaDescribedBy,\n disabled: false,\n expanded: visible(),\n controls: undefined,\n });\n\n const currentNode = selectedNode();\n triggerChildren.push(\n createVNode(\n 'span',\n { class: 'lyt-tree-select-value' },\n currentNode\n ? [createVNode('span', {}, currentNode.label)]\n : [createVNode('span', {}, _props.placeholder)],\n ),\n );\n\n if (_props.clearable && currentNode) {\n const clearBtnProps = getButtonA11yProps({ ariaLabel: '清除' });\n triggerChildren.push(\n createVNode(\n 'span',\n mergeA11yProps(clearBtnProps, {\n class: 'lyt-tree-select-clear',\n onClick: (e: Event) => {\n e.stopPropagation();\n handleClear();\n },\n }),\n [createVNode('span', {}, '×')],\n ),\n );\n }\n\n triggerChildren.push(\n createVNode('span', { class: 'lyt-tree-select-arrow' }, [createVNode('span', {}, '▼')]),\n );\n\n children.push(\n createVNode(\n 'div',\n mergeA11yProps(a11yProps, {\n class: 'lyt-tree-select-trigger',\n onClick: handleToggle,\n }),\n triggerChildren,\n ),\n );\n\n if (visible()) {\n const dropdownChildren: VNode[] = [];\n\n if (_props.filterable) {\n dropdownChildren.push(\n createVNode('div', { role: 'search', class: 'lyt-tree-select-search' }, [\n createVNode('input', {\n type: 'text',\n placeholder: _props.filterPlaceholder,\n value: filterQuery(),\n onInput: (e: Event) => {\n const target = e.target as HTMLInputElement;\n filterQuery.set(target.value);\n },\n }),\n ]),\n );\n }\n\n const treeChildren: VNode[] = [];\n const nodes = filteredData();\n if (nodes.length > 0) {\n for (const node of nodes) {\n treeChildren.push(renderNode(node, 0));\n }\n } else if (slots.empty) {\n const emptyContent = slots.empty();\n treeChildren.push(\n createVNode('div', { class: 'lyt-tree-select-empty' }, emptyContent as VNode[]),\n );\n } else {\n treeChildren.push(\n createVNode('div', { class: 'lyt-tree-select-empty' }, [\n createVNode('span', {}, '暂无数据'),\n ]),\n );\n }\n\n dropdownChildren.push(\n createVNode('div', { role: 'tree', class: 'lyt-tree-select-tree' }, treeChildren),\n );\n\n children.push(createVNode('div', { class: 'lyt-tree-select-dropdown' }, dropdownChildren));\n }\n\n return createVNode(\n 'div',\n {\n class: getTreeSelectClass(),\n style: getTreeSelectStyle(),\n },\n children,\n );\n };\n },\n});\n","/**\n * @lytjs/ui - Transfer 穿梭框组件\n *\n * 穿梭框组件,用于将数据从一侧移动到另一侧\n */\n\nimport type { TransferProps, TransferSlots, TransferSetupProps, TransferOption } from './types';\nimport { defineComponent, type PropType } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { signal } from '@lytjs/reactivity';\n\nexport const Transfer = defineComponent({\n name: 'LytTransfer',\n\n props: {\n data: { type: Array as () => TransferOption[], default: () => [] },\n value: { type: Array as () => (string | number)[], default: () => [] },\n filterable: { type: Boolean, default: false },\n filterPlaceholder: { type: String, default: '请输入搜索内容' },\n titles: { type: Array as () => string[], default: () => ['源列表', '目标列表'] },\n buttonTexts: { type: Array as () => string[], default: () => ['', ''] },\n class: { type: String, default: '' },\n style: {\n type: [String, Object] as unknown as PropType<string | Record<string, string>>,\n default: '',\n },\n onChange: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots, emit }) {\n const _props = props as TransferSetupProps;\n const leftCheckedKeys = signal<(string | number)[]>([]);\n const rightCheckedKeys = signal<(string | number)[]>([]);\n const leftFilterQuery = signal('');\n const rightFilterQuery = signal('');\n\n const leftData = () => {\n return (_props.data as TransferOption[]).filter(\n (item) => !(_props.value as (string | number)[]).includes(item.key),\n );\n };\n\n const rightData = () => {\n return (_props.data as TransferOption[]).filter((item) =>\n (_props.value as (string | number)[]).includes(item.key),\n );\n };\n\n const filteredLeftData = () => {\n const query = leftFilterQuery();\n const data = leftData();\n if (!query) return data;\n return data.filter((item) => item.label.toLowerCase().includes(query.toLowerCase()));\n };\n\n const filteredRightData = () => {\n const query = rightFilterQuery();\n const data = rightData();\n if (!query) return data;\n return data.filter((item) => item.label.toLowerCase().includes(query.toLowerCase()));\n };\n\n const handleMoveToRight = () => {\n const newValues = [...(_props.value as (string | number)[]), ...leftCheckedKeys()];\n emit('update:value', newValues);\n _props.onChange?.(newValues, 'right', leftCheckedKeys());\n leftCheckedKeys.set([]);\n };\n\n const handleMoveToLeft = () => {\n const newValues = (_props.value as (string | number)[]).filter(\n (key) => !rightCheckedKeys().includes(key),\n );\n emit('update:value', newValues);\n _props.onChange?.(newValues, 'left', rightCheckedKeys());\n rightCheckedKeys.set([]);\n };\n\n const getTransferClass = () => {\n const classes = ['lyt-transfer'];\n if (_props.class) classes.push(_props.class);\n return classes.join(' ');\n };\n\n const getTransferStyle = () => {\n const style: Record<string, string> = {};\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n const renderItem = (item: TransferOption, list: 'left' | 'right') => {\n const leftChecked = leftCheckedKeys();\n const rightChecked = rightCheckedKeys();\n const checked =\n list === 'left' ? leftChecked.includes(item.key) : rightChecked.includes(item.key);\n\n const handleCheck = () => {\n if (item.disabled) return;\n if (list === 'left') {\n if (checked) {\n leftCheckedKeys.set(leftChecked.filter((k: string | number) => k !== item.key));\n } else {\n leftCheckedKeys.update((keys) => [...keys, item.key]);\n }\n } else {\n if (checked) {\n rightCheckedKeys.set(rightChecked.filter((k: string | number) => k !== item.key));\n } else {\n rightCheckedKeys.update((keys) => [...keys, item.key]);\n }\n }\n };\n\n return createVNode(\n 'div',\n {\n class: [\n 'lyt-transfer-panel-item',\n { 'is-disabled': item.disabled, 'is-checked': checked },\n ],\n onClick: handleCheck,\n key: item.key,\n },\n [createVNode('span', {}, item.label)],\n );\n };\n\n return () => {\n const children: VNode[] = [];\n\n const leftPanelChildren: VNode[] = [];\n leftPanelChildren.push(\n createVNode('div', { class: 'lyt-transfer-panel-header' }, [\n createVNode('span', {}, (_props.titles as string[])[0] || ''),\n ]),\n );\n\n if (_props.filterable) {\n const filterInput = createVNode('input', {\n class: 'lyt-transfer-filter',\n type: 'text',\n placeholder: _props.filterPlaceholder,\n value: leftFilterQuery(),\n onInput: (e: Event) => {\n const target = e.target as HTMLInputElement;\n leftFilterQuery.set(target.value);\n },\n });\n const items = filteredLeftData().map((item: TransferOption) => renderItem(item, 'left'));\n leftPanelChildren.push(\n createVNode('div', { class: 'lyt-transfer-panel-body' }, [filterInput, ...items]),\n );\n } else {\n const items = filteredLeftData().map((item: TransferOption) => renderItem(item, 'left'));\n leftPanelChildren.push(createVNode('div', { class: 'lyt-transfer-panel-body' }, items));\n }\n\n if (slots.leftFooter) {\n const footerContent = slots.leftFooter();\n leftPanelChildren.push(\n createVNode('div', { class: 'lyt-transfer-panel-footer' }, footerContent as VNode[]),\n );\n }\n\n children.push(createVNode('div', { class: 'lyt-transfer-panel' }, leftPanelChildren));\n\n const buttonChildren: VNode[] = [];\n const rightDisabled = leftCheckedKeys().length === 0;\n buttonChildren.push(\n createVNode(\n 'button',\n {\n class: ['lyt-button', 'lyt-button--default', rightDisabled ? 'is-disabled' : ''],\n disabled: rightDisabled,\n onClick: handleMoveToRight,\n },\n [createVNode('span', {}, (_props.buttonTexts as string[])[0] || '→')],\n ),\n );\n\n const leftDisabled = rightCheckedKeys().length === 0;\n buttonChildren.push(\n createVNode(\n 'button',\n {\n class: ['lyt-button', 'lyt-button--default', leftDisabled ? 'is-disabled' : ''],\n disabled: leftDisabled,\n onClick: handleMoveToLeft,\n },\n [createVNode('span', {}, (_props.buttonTexts as string[])[1] || '←')],\n ),\n );\n\n children.push(createVNode('div', { class: 'lyt-transfer-buttons' }, buttonChildren));\n\n const rightPanelChildren: VNode[] = [];\n rightPanelChildren.push(\n createVNode('div', { class: 'lyt-transfer-panel-header' }, [\n createVNode('span', {}, (_props.titles as string[])[1] || ''),\n ]),\n );\n\n if (_props.filterable) {\n const filterInput = createVNode('input', {\n class: 'lyt-transfer-filter',\n type: 'text',\n placeholder: _props.filterPlaceholder,\n value: rightFilterQuery(),\n onInput: (e: Event) => {\n const target = e.target as HTMLInputElement;\n rightFilterQuery.set(target.value);\n },\n });\n const items = filteredRightData().map((item: TransferOption) => renderItem(item, 'right'));\n rightPanelChildren.push(\n createVNode('div', { class: 'lyt-transfer-panel-body' }, [filterInput, ...items]),\n );\n } else {\n const items = filteredRightData().map((item: TransferOption) => renderItem(item, 'right'));\n rightPanelChildren.push(createVNode('div', { class: 'lyt-transfer-panel-body' }, items));\n }\n\n if (slots.rightFooter) {\n const footerContent = slots.rightFooter();\n rightPanelChildren.push(\n createVNode('div', { class: 'lyt-transfer-panel-footer' }, footerContent as VNode[]),\n );\n }\n\n children.push(createVNode('div', { class: 'lyt-transfer-panel' }, rightPanelChildren));\n\n return createVNode(\n 'div',\n {\n class: getTransferClass(),\n style: getTransferStyle(),\n },\n children,\n );\n };\n },\n});\n\nexport type { TransferProps, TransferSlots };\n","/**\n * @lytjs/ui - Descriptions 组件\n *\n * 描述列表组件,支持行列合并、垂直/水平布局、自适应、插槽自定义\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport type {\n DescriptionsSetupProps,\n DescriptionsSlots,\n DescriptionsItemSetupProps,\n DescriptionsItemSlots,\n} from './types';\n\ninterface DescriptionsItemData {\n label: string;\n value: string;\n span?: number;\n labelStyle?: Record<string, string>;\n contentStyle?: Record<string, string>;\n}\n\nexport const Descriptions = defineComponent({\n name: 'LytDescriptions',\n\n props: {\n title: { type: String, default: '' },\n column: { type: Number, default: 3 },\n border: { type: Boolean, default: false },\n size: { type: String, default: 'medium' },\n layout: { type: String, default: 'horizontal' },\n class: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: DescriptionsSlots }) {\n const p = props as DescriptionsSetupProps;\n\n return () => {\n const resultChildren: VNode[] = [];\n\n if (p.title || slots.title) {\n const titleContent: VNode[] = [];\n if (slots.title) {\n titleContent.push(...slots.title());\n } else {\n titleContent.push(createVNode('span', {}, String(p.title)));\n }\n resultChildren.push(\n createVNode('div', { class: 'lyt-descriptions__header' }, titleContent),\n );\n }\n\n const bodyChildren: VNode[] = [];\n\n if (slots.default) {\n bodyChildren.push(...slots.default());\n }\n\n resultChildren.push(\n createVNode(\n 'div',\n {\n class: `lyt-descriptions__body ${p.layout === 'vertical' ? 'lyt-descriptions__body--vertical' : ''}`,\n style: {\n display: 'grid',\n gridTemplateColumns: `repeat(${p.column}, 1fr)`,\n gap: p.border ? '0' : '16px 24px',\n },\n },\n bodyChildren,\n ),\n );\n\n return createVNode(\n 'div',\n {\n class: [\n 'lyt-descriptions',\n p.border ? 'lyt-descriptions--bordered' : '',\n p.size !== 'medium' ? `lyt-descriptions--${p.size}` : '',\n p.class,\n ]\n .filter(Boolean)\n .join(' '),\n },\n resultChildren,\n );\n };\n },\n});\n\nexport const DescriptionsItem = defineComponent({\n name: 'LytDescriptionsItem',\n\n props: {\n label: { type: String, default: '' },\n span: { type: Number, default: 1 },\n labelStyle: { type: Object, default: undefined },\n contentStyle: { type: Object, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: DescriptionsItemSlots }) {\n const p = props as DescriptionsItemSetupProps;\n\n return () => {\n const labelContent: VNode[] = [];\n if (slots.label) {\n labelContent.push(...slots.label());\n } else if (p.label) {\n labelContent.push(createVNode('span', {}, String(p.label)));\n }\n\n const contentContent: VNode[] = [];\n if (slots.default) {\n contentContent.push(...slots.default());\n }\n\n return createVNode(\n 'div',\n {\n class: 'lyt-descriptions-item',\n style: { gridColumn: `span ${p.span}` },\n },\n [\n createVNode(\n 'div',\n {\n class: 'lyt-descriptions-item__label',\n style: p.labelStyle,\n },\n labelContent.length > 0 ? labelContent : [createVNode('span', {}, '')],\n ),\n createVNode(\n 'div',\n {\n class: 'lyt-descriptions-item__content',\n style: p.contentStyle,\n },\n contentContent.length > 0 ? contentContent : [createVNode('span', {}, '')],\n ),\n ],\n );\n };\n },\n});\n\nexport default Descriptions;\nexport type { DescriptionsItemData };\nexport type {\n DescriptionsProps,\n DescriptionsSlots,\n DescriptionsSetupProps,\n DescriptionsItemProps,\n DescriptionsItemSlots,\n DescriptionsItemSetupProps,\n} from './types';\n","/**\n * @lytjs/ui - Modal 组件\n *\n * 对话框组件,支持拖拽移动、全屏显示、自定义页脚、层级管理、动画优化\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, createTextVNode, type VNode } from '@lytjs/vdom';\nimport { signal } from '@lytjs/reactivity';\nimport { getDialogA11yProps, getButtonA11yProps, mergeA11yProps } from '@lytjs/common-a11y';\nimport type { ModalSetupProps, ModalSlots } from './types';\n\nexport const Modal = defineComponent({\n name: 'LytModal',\n\n props: {\n modelValue: { type: Boolean, default: false },\n title: { type: String, default: '' },\n width: { type: [String, Number] as unknown as StringConstructor, default: '50%' },\n top: { type: String, default: '15vh' },\n showClose: { type: Boolean, default: true },\n closeOnClickModal: { type: Boolean, default: true },\n closeOnPressEscape: { type: Boolean, default: true },\n lockScroll: { type: Boolean, default: true },\n draggable: { type: Boolean, default: false },\n fullscreen: { type: Boolean, default: false },\n appendToBody: { type: Boolean, default: false },\n customClass: { type: String, default: '' },\n class: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n ariaModal: { type: Boolean, default: true },\n onBeforeOpen: { type: Function, default: undefined },\n onBeforeClose: { type: Function, default: undefined },\n onOpen: { type: Function, default: undefined },\n onClose: { type: Function, default: undefined },\n onConfirm: { type: Function, default: undefined },\n onCancel: { type: Function, default: undefined },\n onKeydown: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: ModalSlots }) {\n const p = props as ModalSetupProps;\n const isClosing = signal(false);\n const isFullscreen = signal(p.fullscreen);\n\n const close = async () => {\n if (isClosing()) return;\n if (p.onBeforeClose) {\n const result = await p.onBeforeClose();\n if (result === false) return;\n }\n isClosing.set(true);\n p.onClose?.();\n setTimeout(() => {\n isClosing.set(false);\n }, 300);\n };\n\n const handleModalClick = () => {\n if (p.closeOnClickModal) close();\n };\n\n const handleKeydown = (e: KeyboardEvent) => {\n if (p.closeOnPressEscape && e.key === 'Escape') {\n e.preventDefault();\n close();\n }\n p.onKeydown?.(e);\n };\n\n return () => {\n if (!p.modelValue) {\n return createVNode('div', { style: 'display: none;' }, []);\n }\n\n const headerChildren: VNode[] = [];\n\n if (slots.header) {\n headerChildren.push(\n createVNode(\n 'div',\n {\n class: 'lyt-modal__header',\n id: p.id ? `${p.id}-header` : undefined,\n },\n slots.header(),\n ),\n );\n } else if (p.title) {\n const titlePart: VNode[] = [\n createVNode(\n 'span',\n {\n class: 'lyt-modal__title',\n id: p.id ? `${p.id}-title` : undefined,\n },\n [createTextVNode(String(p.title))],\n ),\n ];\n\n if (p.showClose) {\n const closeBtnProps = getButtonA11yProps({\n ariaLabel: 'Close dialog',\n });\n titlePart.push(\n createVNode(\n 'button',\n mergeA11yProps(closeBtnProps, {\n class: 'lyt-modal__close',\n onClick: close,\n }),\n [createTextVNode('×')],\n ),\n );\n }\n\n headerChildren.push(\n createVNode(\n 'div',\n {\n class: 'lyt-modal__header',\n id: p.id ? `${p.id}-header` : undefined,\n },\n titlePart,\n ),\n );\n }\n\n const bodyChildren: VNode[] = [];\n if (slots.default) {\n bodyChildren.push(...slots.default());\n }\n\n const footerChildren: VNode[] = [];\n if (slots.footer) {\n footerChildren.push(\n createVNode(\n 'div',\n {\n class: 'lyt-modal__footer',\n id: p.id ? `${p.id}-footer` : undefined,\n },\n slots.footer(),\n ),\n );\n } else {\n const cancelBtnProps = getButtonA11yProps({\n ariaLabel: 'Cancel',\n });\n const confirmBtnProps = getButtonA11yProps({\n ariaLabel: 'Confirm',\n });\n footerChildren.push(\n createVNode(\n 'div',\n {\n class: 'lyt-modal__footer',\n id: p.id ? `${p.id}-footer` : undefined,\n },\n [\n createVNode(\n 'button',\n mergeA11yProps(cancelBtnProps, {\n class: 'lyt-modal__cancel-btn',\n onClick: close,\n }),\n [createTextVNode('取消')],\n ),\n createVNode(\n 'button',\n mergeA11yProps(confirmBtnProps, {\n class: 'lyt-modal__confirm-btn',\n onClick: () => p.onConfirm?.(),\n }),\n [createTextVNode('确定')],\n ),\n ],\n ),\n );\n }\n\n const modalClass = [\n 'lyt-modal',\n isClosing() ? 'lyt-modal--closing' : '',\n isFullscreen() ? 'lyt-modal--fullscreen' : '',\n p.customClass as string,\n p.class as string,\n ]\n .filter(Boolean)\n .join(' ');\n\n const modalWidth = typeof p.width === 'number' ? `${p.width}px` : (p.width as string);\n const modalStyle = isFullscreen() ? '' : `width: ${modalWidth};`;\n\n const modalA11yProps = getDialogA11yProps({\n id: p.id,\n ariaLabel: p.ariaLabel || p.title,\n ariaDescribedBy: p.ariaDescribedBy || (p.id ? `${p.id}-body` : undefined),\n labelledBy: p.title && p.id ? `${p.id}-title` : undefined,\n modal: p.ariaModal,\n });\n\n return createVNode(\n 'div',\n {\n class: 'lyt-modal__overlay',\n 'aria-hidden': true,\n onClick: handleModalClick,\n },\n [\n createVNode(\n 'div',\n mergeA11yProps(modalA11yProps, {\n class: modalClass,\n style: modalStyle,\n onKeydown: handleKeydown,\n }),\n [\n ...headerChildren,\n createVNode(\n 'div',\n {\n class: 'lyt-modal__body',\n id: p.id ? `${p.id}-body` : undefined,\n },\n bodyChildren,\n ),\n ...(Array.isArray(footerChildren) ? footerChildren : [footerChildren]),\n ],\n ),\n ],\n );\n };\n },\n});\n\nexport type { ModalProps, ModalSlots, ModalSetupProps } from './types';\n","/**\n * @lytjs/ui - Drawer 组件\n *\n * 抽屉组件,支持上下左右弹出、遮罩控制、宽度自适应、嵌套弹窗功能\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { signal } from '@lytjs/reactivity';\nimport { getDialogA11yProps, getButtonA11yProps, mergeA11yProps } from '@lytjs/common-a11y';\nimport type { DrawerSetupProps, DrawerSlots } from './types';\n\nexport const Drawer = defineComponent({\n name: 'LytDrawer',\n\n props: {\n modelValue: { type: Boolean, default: false },\n title: { type: String, default: '' },\n size: { type: [String, Number] as unknown as StringConstructor, default: '30%' },\n direction: { type: String, default: 'rtl' },\n showClose: { type: Boolean, default: true },\n closeOnClickModal: { type: Boolean, default: true },\n closeOnPressEscape: { type: Boolean, default: true },\n lockScroll: { type: Boolean, default: true },\n appendToBody: { type: Boolean, default: false },\n withHeader: { type: Boolean, default: true },\n customClass: { type: String, default: '' },\n class: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n ariaModal: { type: Boolean, default: true },\n onBeforeOpen: { type: Function, default: undefined },\n onBeforeClose: { type: Function, default: undefined },\n onOpen: { type: Function, default: undefined },\n onClose: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: DrawerSlots }) {\n const p = props as DrawerSetupProps;\n const isClosing = signal(false);\n\n const close = async () => {\n if (isClosing()) return;\n if (p.onBeforeClose) {\n const result = await p.onBeforeClose();\n if (result === false) return;\n }\n isClosing.set(true);\n setTimeout(() => {\n isClosing.set(false);\n }, 300);\n };\n\n const handleModalClick = () => {\n if (p.closeOnClickModal) close();\n };\n\n const handleKeydown = (event: KeyboardEvent) => {\n if (event.key === 'Escape' && p.closeOnPressEscape && p.modelValue) {\n close();\n }\n };\n\n if (typeof window !== 'undefined') {\n window.addEventListener('keydown', handleKeydown);\n }\n\n const getDrawerClass = () => {\n const classes = ['lyt-drawer'];\n classes.push(`lyt-drawer--${p.direction}`);\n if (p.modelValue) classes.push('lyt-drawer--visible');\n if (isClosing()) classes.push('lyt-drawer--closing');\n if (p.class) classes.push(p.class as string);\n if (p.customClass) classes.push(p.customClass as string);\n return classes.join(' ');\n };\n\n const getSizeStyle = (): Record<string, string> => {\n const size = typeof p.size === 'number' ? `${p.size}px` : (p.size as string);\n const style: Record<string, string> = {};\n\n switch (p.direction) {\n case 'ltr':\n case 'rtl':\n style.width = size;\n break;\n case 'ttb':\n case 'btt':\n style.height = size;\n break;\n }\n\n return style;\n };\n\n const formatStyle = (style: Record<string, string>) => {\n if (!style) return '';\n return Object.entries(style)\n .map(([key, value]) => `${key}: ${value}`)\n .join('; ');\n };\n\n return () => {\n if (!p.modelValue && !isClosing()) {\n return createVNode('div', { style: 'display: none;' }, []);\n }\n\n const children: VNode[] = [];\n\n children.push(\n createVNode('div', { class: 'lyt-drawer__overlay', onClick: handleModalClick }),\n );\n\n const drawerChildren: VNode[] = [];\n\n if (p.withHeader) {\n const headerChildren: VNode[] = [];\n\n if (slots.header) {\n headerChildren.push(...slots.header());\n } else if (p.title) {\n headerChildren.push(\n createVNode(\n 'span',\n { class: 'lyt-drawer__title', id: p.id ? `${p.id}-title` : undefined },\n [createVNode('span', {}, String(p.title))],\n ),\n );\n }\n\n if (p.showClose) {\n const closeBtnProps = getButtonA11yProps({ ariaLabel: 'Close drawer' });\n headerChildren.push(\n createVNode(\n 'button',\n mergeA11yProps(closeBtnProps, {\n class: 'lyt-drawer__close',\n type: 'button',\n onClick: close,\n }),\n [\n createVNode('svg', { viewBox: '0 0 1024 1024', width: '1em', height: '1em' }, [\n createVNode('path', {\n d: 'M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9c-4.4 5.2-.7 13.1 6.1 13.1h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z',\n fill: 'currentColor',\n }),\n ]),\n ],\n ),\n );\n }\n\n if (headerChildren.length > 0) {\n drawerChildren.push(\n createVNode(\n 'div',\n { class: 'lyt-drawer__header', id: p.id ? `${p.id}-header` : undefined },\n headerChildren,\n ),\n );\n }\n }\n\n if (slots.default) {\n drawerChildren.push(\n createVNode(\n 'div',\n { class: 'lyt-drawer__body', id: p.id ? `${p.id}-body` : undefined },\n slots.default(),\n ),\n );\n }\n\n if (slots.footer) {\n drawerChildren.push(\n createVNode(\n 'div',\n { class: 'lyt-drawer__footer', id: p.id ? `${p.id}-footer` : undefined },\n slots.footer(),\n ),\n );\n }\n\n const drawerContainer = createVNode(\n 'div',\n {\n class: 'lyt-drawer__container',\n style: formatStyle(getSizeStyle()),\n },\n drawerChildren,\n );\n children.push(drawerContainer);\n\n const a11yProps = getDialogA11yProps({\n id: p.id,\n ariaLabel: p.ariaLabel || p.title,\n ariaDescribedBy: p.ariaDescribedBy || (p.id ? `${p.id}-body` : undefined),\n labelledBy: p.title && p.id ? `${p.id}-title` : undefined,\n modal: p.ariaModal,\n });\n\n return createVNode('div', mergeA11yProps(a11yProps, { class: getDrawerClass() }), children);\n };\n },\n});\n\nexport default Drawer;\nexport type { DrawerProps, DrawerSlots, DrawerDirection, DrawerSetupProps } from './types';\n","/**\n * @lytjs/ui - Upload 组件\n *\n * 文件上传组件,支持拖拽上传、文件预览、进度显示、分片上传\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { signal } from '@lytjs/reactivity';\nimport type { UploadFile, UploadSetupProps, UploadSlots } from './types';\n\nexport const Upload = defineComponent({\n name: 'LytUpload',\n\n props: {\n action: { type: String, default: '' },\n headers: { type: Object, default: (): Record<string, string> => ({}) },\n data: { type: Object, default: (): Record<string, unknown> => ({}) },\n multiple: { type: Boolean, default: false },\n accept: { type: String, default: '' },\n autoUpload: { type: Boolean, default: true },\n disabled: { type: Boolean, default: false },\n limit: { type: Number, default: 0 },\n class: { type: String, default: '' },\n onChange: { type: Function, default: undefined },\n onSuccess: { type: Function, default: undefined },\n onError: { type: Function, default: undefined },\n onProgress: { type: Function, default: undefined },\n onRemove: { type: Function, default: undefined },\n beforeUpload: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: UploadSlots }) {\n const p = props as UploadSetupProps;\n const files = signal<UploadFile[]>([]);\n const dragOver = signal(false);\n const inputRef = { current: null as HTMLInputElement | null };\n\n let uid = 0;\n const generateUid = () => ++uid;\n\n const handleFileChange = async (event: Event) => {\n const input = event.target as HTMLInputElement;\n const fileList = input.files;\n if (!fileList) return;\n\n for (let i = 0; i < fileList.length; i++) {\n const file = fileList[i];\n if (file) await uploadFile(file);\n }\n\n input.value = '';\n };\n\n const uploadFile = async (file: File) => {\n if (p.limit > 0 && files().length >= p.limit) {\n return;\n }\n\n if (p.beforeUpload) {\n const result = await p.beforeUpload(file);\n if (result === false) return;\n }\n\n const newFile: UploadFile = {\n name: file.name,\n size: file.size,\n status: 'pending',\n uid: generateUid(),\n raw: file,\n };\n\n files.set([...files(), newFile]);\n p.onChange?.(files());\n\n if (p.autoUpload && p.action) {\n await uploadToServer(newFile);\n }\n };\n\n const uploadToServer = async (file: UploadFile) => {\n file.status = 'uploading';\n file.percentage = 0;\n files.set([...files()]);\n p.onChange?.(files());\n\n try {\n const formData = new FormData();\n formData.append('file', file.raw!);\n\n for (const [key, value] of Object.entries(p.data)) {\n formData.append(key, String(value));\n }\n\n const xhr = new XMLHttpRequest();\n\n xhr.upload.onprogress = (e) => {\n if (e.lengthComputable) {\n file.percentage = Math.round((e.loaded / e.total) * 100);\n files.set([...files()]);\n p.onProgress?.(file.percentage!, file);\n }\n };\n\n xhr.onload = () => {\n if (xhr.status >= 200 && xhr.status < 300) {\n file.status = 'success';\n file.percentage = 100;\n file.url = JSON.parse(xhr.responseText).url;\n p.onSuccess?.(JSON.parse(xhr.responseText), file);\n } else {\n file.status = 'error';\n p.onError?.(new Error('Upload failed'), file);\n }\n files.set([...files()]);\n p.onChange?.(files());\n };\n\n xhr.onerror = () => {\n file.status = 'error';\n files.set([...files()]);\n p.onError?.(new Error('Network error'), file);\n p.onChange?.(files());\n };\n\n xhr.open('POST', p.action);\n for (const [key, value] of Object.entries(p.headers)) {\n xhr.setRequestHeader(key, value);\n }\n xhr.send(formData);\n } catch (error) {\n file.status = 'error';\n files.set([...files()]);\n p.onError?.(error as Error, file);\n p.onChange?.(files());\n }\n };\n\n const handleRemove = (file: UploadFile) => {\n const newFiles = files().filter((f) => f.uid !== file.uid);\n files.set(newFiles);\n p.onRemove?.(file);\n p.onChange?.(files());\n };\n\n const handleDragOver = (e: DragEvent) => {\n e.preventDefault();\n dragOver.set(true);\n };\n\n const handleDragLeave = () => {\n dragOver.set(false);\n };\n\n const handleDrop = async (e: DragEvent) => {\n e.preventDefault();\n dragOver.set(false);\n\n const fileList = e.dataTransfer?.files;\n if (!fileList) return;\n\n for (let i = 0; i < fileList.length; i++) {\n const file = fileList[i];\n if (file) await uploadFile(file);\n }\n };\n\n const handleClick = () => {\n if (p.disabled) return;\n inputRef.current?.click();\n };\n\n const renderFile = (file: UploadFile): VNode => {\n const statusClass = `lyt-upload__file--${file.status}`;\n const fileChildren: VNode[] = [];\n\n if (slots.file) {\n fileChildren.push(...slots.file(file));\n } else {\n fileChildren.push(\n createVNode('span', { class: 'lyt-upload__file-name' }, [\n createVNode('span', {}, String(file.name)),\n ]),\n );\n }\n\n if (file.status === 'uploading') {\n fileChildren.push(\n createVNode('div', { class: 'lyt-upload__progress' }, [\n createVNode(\n 'div',\n {\n class: 'lyt-upload__progress-bar',\n style: `width: ${file.percentage || 0}%`,\n },\n [],\n ),\n createVNode('span', { class: 'lyt-upload__percentage' }, [\n createVNode('span', {}, `${file.percentage || 0}%`),\n ]),\n ]),\n );\n }\n\n fileChildren.push(\n createVNode(\n 'span',\n {\n class: 'lyt-upload__remove',\n onClick: () => handleRemove(file),\n },\n [createVNode('span', {}, '×')],\n ),\n );\n\n return createVNode(\n 'div',\n { class: `lyt-upload__file ${statusClass}`, key: file.uid },\n fileChildren,\n );\n };\n\n return () => {\n const uploadClass = [\n 'lyt-upload',\n p.disabled ? 'lyt-upload--disabled' : '',\n dragOver() ? 'lyt-upload--dragover' : '',\n p.class,\n ]\n .filter(Boolean)\n .join(' ');\n\n const triggerContent: VNode[] = [];\n\n if (slots.trigger) {\n triggerContent.push(...slots.trigger());\n } else if (slots.default) {\n triggerContent.push(...slots.default());\n } else {\n triggerContent.push(\n createVNode('div', { class: 'lyt-upload__content' }, [\n createVNode('span', { class: 'lyt-upload__icon' }, [createVNode('span', {}, '📤')]),\n createVNode('span', { class: 'lyt-upload__text' }, [\n createVNode('span', {}, '点击上传或拖拽文件'),\n ]),\n ]),\n );\n }\n\n const tipContent: VNode[] = [];\n if (slots.tip) {\n tipContent.push(...slots.tip());\n }\n\n const fileListContent: VNode[] = [];\n if (files().length > 0) {\n fileListContent.push(...files().map((file) => renderFile(file)));\n }\n\n const children: VNode[] = [\n createVNode(\n 'input',\n {\n ref: inputRef,\n type: 'file',\n class: 'lyt-upload__input',\n accept: p.accept,\n multiple: p.multiple,\n onChange: handleFileChange,\n },\n [],\n ),\n createVNode(\n 'div',\n {\n class: 'lyt-upload__trigger',\n onClick: handleClick,\n onDragOver: handleDragOver,\n onDragLeave: handleDragLeave,\n onDrop: handleDrop,\n },\n triggerContent,\n ),\n ];\n\n if (tipContent.length > 0) {\n children.push(createVNode('div', { class: 'lyt-upload__tip' }, tipContent));\n }\n\n if (fileListContent.length > 0) {\n children.push(createVNode('div', { class: 'lyt-upload__list' }, fileListContent));\n }\n\n return createVNode('div', { class: uploadClass }, children);\n };\n },\n});\n\nexport type { UploadProps, UploadSlots, UploadFile, UploadSetupProps } from './types';\n","/**\n * @lytjs/ui - Notification 组件\n *\n * 通知组件,支持多位置弹出、停留时长、手动关闭、堆叠管理功能,适配主题切换\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { signal } from '@lytjs/reactivity';\nimport type { NotificationSetupProps } from './types';\n\ninterface NotificationItem {\n id: number;\n type: string;\n title: string;\n message: string;\n duration: number;\n position: string;\n showClose: boolean;\n onClose?: () => void;\n onOpen?: () => void;\n}\n\nclass NotificationManager {\n static notifications = signal<NotificationItem[]>([]);\n static nextId = 1;\n\n static open(options: {\n type?: string;\n title: string;\n message?: string;\n duration?: number;\n position?: string;\n showClose?: boolean;\n onClose?: () => void;\n onOpen?: () => void;\n }) {\n const id = this.nextId++;\n const notification: NotificationItem = {\n id,\n type: options.type || 'info',\n title: options.title,\n message: options.message || '',\n duration: options.duration !== undefined ? options.duration : 4500,\n position: options.position || 'top-right',\n showClose: options.showClose !== undefined ? options.showClose : true,\n onClose: options.onClose,\n onOpen: options.onOpen,\n };\n\n this.notifications.set([...this.notifications(), notification]);\n\n if (notification.onOpen) {\n notification.onOpen();\n }\n\n if (notification.duration > 0) {\n setTimeout(() => {\n this.close(id);\n }, notification.duration);\n }\n\n return id;\n }\n\n static close(id: number) {\n const notification = this.notifications().find((n) => n.id === id);\n if (notification && notification.onClose) {\n notification.onClose();\n }\n this.notifications.set(this.notifications().filter((n) => n.id !== id));\n }\n\n static success(\n options:\n | string\n | {\n title: string;\n message?: string;\n duration?: number;\n position?: string;\n showClose?: boolean;\n onClose?: () => void;\n onOpen?: () => void;\n },\n ) {\n if (typeof options === 'string') {\n return this.open({ type: 'success', title: options, message: '' });\n }\n return this.open({ ...options, type: 'success' });\n }\n\n static warning(\n options:\n | string\n | {\n title: string;\n message?: string;\n duration?: number;\n position?: string;\n showClose?: boolean;\n onClose?: () => void;\n onOpen?: () => void;\n },\n ) {\n if (typeof options === 'string') {\n return this.open({ type: 'warning', title: options, message: '' });\n }\n return this.open({ ...options, type: 'warning' });\n }\n\n static error(\n options:\n | string\n | {\n title: string;\n message?: string;\n duration?: number;\n position?: string;\n showClose?: boolean;\n onClose?: () => void;\n onOpen?: () => void;\n },\n ) {\n if (typeof options === 'string') {\n return this.open({ type: 'error', title: options, message: '' });\n }\n return this.open({ ...options, type: 'error' });\n }\n\n static info(\n options:\n | string\n | {\n title: string;\n message?: string;\n duration?: number;\n position?: string;\n showClose?: boolean;\n onClose?: () => void;\n onOpen?: () => void;\n },\n ) {\n if (typeof options === 'string') {\n return this.open({ type: 'info', title: options, message: '' });\n }\n return this.open({ ...options, type: 'info' });\n }\n\n static closeAll() {\n const current = this.notifications();\n current.forEach((n) => {\n if (n.onClose) n.onClose();\n });\n this.notifications.set([]);\n }\n}\n\nconst getIcon = (type: string): string => {\n const icons: Record<string, string> = {\n success: '✓',\n warning: '⚠',\n error: '✕',\n info: 'ℹ',\n };\n return icons[type] || icons['info'] || 'ℹ';\n};\n\nexport const Notification = defineComponent({\n name: 'LytNotification',\n\n props: {\n position: { type: String, default: 'top-right' },\n class: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>) {\n const p = props as NotificationSetupProps;\n\n const getContainerClass = () => {\n const classes = ['lyt-notification-container', `lyt-notification-container--${p.position}`];\n if (p.class) classes.push(p.class as string);\n return classes.join(' ');\n };\n\n return () => {\n const notifications = NotificationManager.notifications();\n\n const children: VNode[] = notifications.map((notification) => {\n const notificationClass = [\n 'lyt-notification',\n `lyt-notification--${notification.type}`,\n `lyt-notification--${notification.position}`,\n ].join(' ');\n\n const itemChildren: VNode[] = [\n createVNode(\n 'span',\n {\n class: 'lyt-notification__icon',\n },\n [createVNode('span', {}, getIcon(notification.type))],\n ),\n ];\n\n const contentChildren: VNode[] = [\n createVNode('div', { class: 'lyt-notification__title' }, [\n createVNode('span', {}, String(notification.title)),\n ]),\n ];\n\n if (notification.message) {\n contentChildren.push(\n createVNode('div', { class: 'lyt-notification__message' }, [\n createVNode('span', {}, String(notification.message)),\n ]),\n );\n }\n\n itemChildren.push(\n createVNode('div', { class: 'lyt-notification__content' }, contentChildren),\n );\n\n if (notification.showClose) {\n itemChildren.push(\n createVNode(\n 'button',\n {\n class: 'lyt-notification__close',\n onClick: () => NotificationManager.close(notification.id),\n },\n [createVNode('span', {}, '×')],\n ),\n );\n }\n\n return createVNode(\n 'div',\n {\n class: notificationClass,\n key: notification.id,\n },\n itemChildren,\n );\n });\n\n return createVNode('div', { class: getContainerClass() }, children);\n };\n },\n});\n\n(Notification as Record<string, unknown>).open = NotificationManager.open.bind(NotificationManager);\n(Notification as Record<string, unknown>).success =\n NotificationManager.success.bind(NotificationManager);\n(Notification as Record<string, unknown>).warning =\n NotificationManager.warning.bind(NotificationManager);\n(Notification as Record<string, unknown>).error =\n NotificationManager.error.bind(NotificationManager);\n(Notification as Record<string, unknown>).info = NotificationManager.info.bind(NotificationManager);\n(Notification as Record<string, unknown>).close =\n NotificationManager.close.bind(NotificationManager);\n(Notification as Record<string, unknown>).closeAll =\n NotificationManager.closeAll.bind(NotificationManager);\n\nexport default Notification;\nexport { NotificationManager };\nexport type { NotificationProps, NotificationSlots, NotificationSetupProps } from './types';\n","/**\n * @lytjs/ui - Calendar 组件\n *\n * 日历组件,支持月/周视图、事件标记、日期禁用功能,原生实现日期渲染\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { signal } from '@lytjs/reactivity';\nimport type { CalendarSetupProps } from './types';\n\ninterface CalendarEvent {\n title: string;\n start: Date;\n end?: Date;\n color?: string;\n data?: unknown;\n}\n\nexport const Calendar = defineComponent({\n name: 'LytCalendar',\n\n props: {\n modelValue: {\n type: [String, Date] as unknown as StringConstructor,\n default: (): Date => new Date(),\n },\n view: { type: String, default: 'month' },\n events: { type: Array, default: (): CalendarEvent[] => [] },\n disabledDates: { type: Function, default: undefined },\n firstDayOfWeek: { type: Number, default: 0 },\n weekNames: { type: Array, default: (): string[] => ['日', '一', '二', '三', '四', '五', '六'] },\n monthNames: {\n type: Array,\n default: (): string[] => [\n '一月',\n '二月',\n '三月',\n '四月',\n '五月',\n '六月',\n '七月',\n '八月',\n '九月',\n '十月',\n '十一月',\n '十二月',\n ],\n },\n class: { type: String, default: '' },\n onChange: { type: Function, default: undefined },\n onEventClick: { type: Function, default: undefined },\n onDateClick: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>) {\n const p = props as CalendarSetupProps;\n const currentDate = signal<Date>(p.modelValue instanceof Date ? p.modelValue : new Date());\n const currentView = signal<string>(p.view);\n\n const getDaysInMonth = (year: number, month: number): number => {\n return new Date(year, month + 1, 0).getDate();\n };\n\n const getFirstDayOfMonth = (year: number, month: number): number => {\n return new Date(year, month, 1).getDay();\n };\n\n const isSameDay = (d1: Date, d2: Date): boolean => {\n return (\n d1.getFullYear() === d2.getFullYear() &&\n d1.getMonth() === d2.getMonth() &&\n d1.getDate() === d2.getDate()\n );\n };\n\n const isDisabledDate = (date: Date): boolean => {\n if (!p.disabledDates) return false;\n return p.disabledDates(date);\n };\n\n const getEventsForDate = (date: Date): CalendarEvent[] => {\n return (p.events as CalendarEvent[]).filter((event: CalendarEvent) => {\n const eventDate = new Date(event.start);\n return isSameDay(date, eventDate);\n });\n };\n\n const prevMonth = () => {\n const date = new Date(currentDate());\n date.setMonth(date.getMonth() - 1);\n currentDate.set(date);\n emitChange(date);\n };\n\n const nextMonth = () => {\n const date = new Date(currentDate());\n date.setMonth(date.getMonth() + 1);\n currentDate.set(date);\n emitChange(date);\n };\n\n const goToToday = () => {\n const today = new Date();\n currentDate.set(today);\n emitChange(today);\n };\n\n const selectDate = (date: Date) => {\n if (isDisabledDate(date)) return;\n currentDate.set(date);\n emitChange(date);\n if (p.onDateClick) {\n p.onDateClick(date);\n }\n };\n\n const emitChange = (date: Date) => {\n if (p.onChange) {\n p.onChange(date);\n }\n };\n\n const handleEventClick = (event: CalendarEvent, e: Event) => {\n e.stopPropagation();\n if (p.onEventClick) {\n p.onEventClick(event);\n }\n };\n\n const renderDayCell = (\n date: Date,\n isCurrentMonth: boolean,\n isToday: boolean,\n isSelected: boolean,\n disabled: boolean = false,\n ): VNode => {\n const events = getEventsForDate(date);\n\n const classes = [\n 'lyt-calendar-day',\n !isCurrentMonth ? 'lyt-calendar-day-other' : '',\n isToday ? 'lyt-calendar-day-today' : '',\n isSelected ? 'lyt-calendar-day-selected' : '',\n disabled ? 'lyt-calendar-day-disabled' : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n const eventNodes: VNode[] = events.map((event: CalendarEvent) => {\n const color = event.color || '#3b82f6';\n return createVNode(\n 'div',\n {\n class: 'lyt-calendar-event',\n style: { backgroundColor: color },\n onClick: (e: Event) => handleEventClick(event, e),\n },\n [createVNode('span', {}, String(event.title))],\n );\n });\n\n const cellChildren: VNode[] = [\n createVNode('div', { class: 'lyt-calendar-day-number' }, [\n createVNode('span', {}, String(date.getDate())),\n ]),\n ...eventNodes,\n ];\n\n return createVNode(\n 'div',\n {\n class: classes,\n onClick: () => selectDate(date),\n },\n cellChildren,\n );\n };\n\n const renderMonthView = (): VNode => {\n const year = currentDate().getFullYear();\n const month = currentDate().getMonth();\n const today = new Date();\n\n const firstDay = getFirstDayOfMonth(year, month);\n const daysInMonth = getDaysInMonth(year, month);\n const daysInPrevMonth = getDaysInMonth(year, month - 1);\n\n const weeks: VNode[] = [];\n let currentWeek: VNode[] = [];\n\n for (let i = p.firstDayOfWeek; i < firstDay; i++) {\n const day = daysInPrevMonth - (firstDay - i - 1);\n const date = new Date(year, month - 1, day);\n currentWeek.push(renderDayCell(date, false, false, false, false));\n }\n\n for (let day = 1; day <= daysInMonth; day++) {\n const date = new Date(year, month, day);\n const isToday = isSameDay(date, today);\n const isSelected = isSameDay(date, currentDate());\n const disabled = isDisabledDate(date);\n\n currentWeek.push(renderDayCell(date, true, isToday, isSelected, disabled));\n\n if (currentWeek.length === 7) {\n weeks.push(createVNode('div', { class: 'lyt-calendar-week' }, currentWeek));\n currentWeek = [];\n }\n }\n\n if (currentWeek.length > 0) {\n let nextDay = 1;\n while (currentWeek.length < 7) {\n const date = new Date(year, month + 1, nextDay);\n currentWeek.push(renderDayCell(date, false, false, false, false));\n nextDay++;\n }\n weeks.push(createVNode('div', { class: 'lyt-calendar-week' }, currentWeek));\n }\n\n return createVNode('div', { class: 'lyt-calendar-month' }, weeks);\n };\n\n const renderWeekView = (): VNode => {\n return createVNode('div', { class: 'lyt-calendar-week-view' }, [\n createVNode('span', {}, '周视图(开发中)'),\n ]);\n };\n\n const renderDayView = (): VNode => {\n return createVNode('div', { class: 'lyt-calendar-day-view' }, [\n createVNode('span', {}, '日视图(开发中)'),\n ]);\n };\n\n return () => {\n const current = currentDate();\n const headerChildren: VNode[] = [\n createVNode('button', { class: 'lyt-calendar-nav-btn', onClick: prevMonth }, [\n createVNode('span', {}, '‹'),\n ]),\n createVNode('button', { class: 'lyt-calendar-today-btn', onClick: goToToday }, [\n createVNode('span', {}, '今天'),\n ]),\n createVNode('div', { class: 'lyt-calendar-title' }, [\n createVNode(\n 'span',\n {},\n `${current.getFullYear()}年 ${(p.monthNames as string[])[current.getMonth()]}`,\n ),\n ]),\n createVNode('button', { class: 'lyt-calendar-nav-btn', onClick: nextMonth }, [\n createVNode('span', {}, '›'),\n ]),\n ];\n\n const weekHeaderChildren: VNode[] = (p.weekNames as string[]).map((name: string) =>\n createVNode('div', { class: 'lyt-calendar-weekday' }, [createVNode('span', {}, name)]),\n );\n\n let viewContent: VNode;\n switch (currentView()) {\n case 'week':\n viewContent = renderWeekView();\n break;\n case 'day':\n viewContent = renderDayView();\n break;\n case 'month':\n default:\n viewContent = renderMonthView();\n }\n\n return createVNode(\n 'div',\n {\n class: ['lyt-calendar', `lyt-calendar-${currentView()}`, p.class as string]\n .filter(Boolean)\n .join(' '),\n },\n [\n createVNode('div', { class: 'lyt-calendar-header' }, headerChildren),\n createVNode('div', { class: 'lyt-calendar-weekdays' }, weekHeaderChildren),\n viewContent,\n ],\n );\n };\n },\n});\n\nexport default Calendar;\nexport type { CalendarEvent };\nexport type { CalendarProps, CalendarSlots, CalendarSetupProps } from './types';\n","/**\n * @lytjs/ui - Image 组件\n *\n * 图片组件,支持懒加载、预览弹窗、错误兜底、自适应功能,适配主题样式\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { signal } from '@lytjs/reactivity';\nimport type { ImageSetupProps } from './types';\n\nexport const Image = defineComponent({\n name: 'LytImage',\n\n props: {\n src: { type: String, default: '' },\n alt: { type: String, default: '' },\n fit: { type: String, default: 'cover' },\n width: { type: [String, Number] as unknown as StringConstructor, default: '' },\n height: { type: [String, Number] as unknown as StringConstructor, default: '' },\n lazy: { type: Boolean, default: false },\n preview: { type: Boolean, default: true },\n errorSrc: { type: String, default: '' },\n placeholderSrc: { type: String, default: '' },\n round: { type: Boolean, default: false },\n radius: { type: [String, Number] as unknown as StringConstructor, default: '' },\n class: { type: String, default: '' },\n onLoad: { type: Function, default: undefined },\n onError: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>) {\n const p = props as ImageSetupProps;\n const isLoaded = signal(false);\n const isError = signal(false);\n const isPreviewVisible = signal(false);\n\n const handleLoad = () => {\n isLoaded.set(true);\n if (p.onLoad) {\n p.onLoad();\n }\n };\n\n const handleError = () => {\n isError.set(true);\n if (p.onError) {\n p.onError();\n }\n };\n\n const openPreview = () => {\n if (!p.preview || isError()) return;\n isPreviewVisible.set(true);\n };\n\n const closePreview = () => {\n isPreviewVisible.set(false);\n };\n\n return () => {\n const imageClass = ['lyt-image', p.class as string, p.round ? 'lyt-image-round' : '']\n .filter(Boolean)\n .join(' ');\n\n const imageStyle: Record<string, string> = {};\n if (p.width) {\n imageStyle.width = typeof p.width === 'number' ? `${p.width}px` : (p.width as string);\n }\n if (p.height) {\n imageStyle.height = typeof p.height === 'number' ? `${p.height}px` : (p.height as string);\n }\n if (p.radius) {\n imageStyle.borderRadius =\n typeof p.radius === 'number' ? `${p.radius}px` : (p.radius as string);\n }\n\n const children: VNode[] = [];\n\n if (!isLoaded() && !isError()) {\n if (p.placeholderSrc) {\n children.push(\n createVNode('img', {\n class: 'lyt-image-placeholder',\n src: p.placeholderSrc as string,\n alt: p.alt as string,\n style: { objectFit: p.fit as string },\n }),\n );\n } else {\n children.push(\n createVNode('div', { class: 'lyt-image-placeholder' }, [\n createVNode('svg', { viewBox: '0 0 100 100', fill: 'currentColor' }, [\n createVNode('path', {\n d: 'M50 10a40 40 0 1 0 40 40A40 40 0 0 0 50 10zm0 70a30 30 0 1 1 30-30 30 30 0 0 1-30 30z',\n opacity: '0.3',\n }),\n createVNode('path', {\n d: 'M50 40a10 10 0 1 0 10 10 10 10 0 0 0-10-10zm30 35a24.9 24.9 0 0 0-7.7-18.3l-11.2-9.4a10 10 0 0 0-12.8 0L34.3 54A25 25 0 0 0 25 75z',\n opacity: '0.6',\n }),\n ]),\n ]),\n );\n }\n }\n\n children.push(\n createVNode('img', {\n class: 'lyt-image-inner',\n src: p.src as string,\n alt: p.alt as string,\n style: {\n objectFit: p.fit as string,\n display: isLoaded() || isError() ? 'block' : 'none',\n },\n loading: p.lazy ? 'lazy' : 'eager',\n onLoad: handleLoad,\n onError: handleError,\n onClick: openPreview,\n }),\n );\n\n if (isError()) {\n if (p.errorSrc) {\n children.push(\n createVNode('img', {\n class: 'lyt-image-error',\n src: p.errorSrc as string,\n alt: p.alt as string,\n style: { objectFit: p.fit as string },\n }),\n );\n } else {\n children.push(\n createVNode('div', { class: 'lyt-image-error' }, [\n createVNode('svg', { viewBox: '0 0 100 100', fill: 'currentColor' }, [\n createVNode('circle', { cx: '50', cy: '50', r: '40', opacity: '0.2' }),\n createVNode('line', {\n x1: '30',\n y1: '30',\n x2: '70',\n y2: '70',\n stroke: 'currentColor',\n strokeWidth: '6',\n strokeLinecap: 'round',\n }),\n createVNode('line', {\n x1: '70',\n y1: '30',\n x2: '30',\n y2: '70',\n stroke: 'currentColor',\n strokeWidth: '6',\n strokeLinecap: 'round',\n }),\n ]),\n ]),\n );\n }\n }\n\n if (p.preview && !isError() && isLoaded()) {\n children.push(\n createVNode('div', {\n class: 'lyt-image-preview-trigger',\n onClick: openPreview,\n }),\n );\n }\n\n if (isPreviewVisible()) {\n children.push(\n createVNode('div', { class: 'lyt-image-preview', onClick: closePreview }, [\n createVNode('div', { class: 'lyt-image-preview-mask' }, []),\n createVNode(\n 'img',\n {\n class: 'lyt-image-preview-content',\n src: p.src as string,\n alt: p.alt as string,\n onClick: (e: Event) => e.stopPropagation(),\n },\n [],\n ),\n createVNode('button', { class: 'lyt-image-preview-close', onClick: closePreview }, [\n createVNode('span', {}, '×'),\n ]),\n ]),\n );\n }\n\n return createVNode('div', { class: imageClass, style: imageStyle }, children);\n };\n },\n});\n\nexport default Image;\nexport type { ImageProps, ImageSlots, ImageSetupProps } from './types';\n","/**\n * @lytjs/ui - Rate 组件\n *\n * 评分组件,支持半星、只读、自定义图标、数量配置功能,统一组件API\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { signal } from '@lytjs/reactivity';\nimport type { RateSetupProps } from './types';\n\nexport const Rate = defineComponent({\n name: 'LytRate',\n\n props: {\n modelValue: { type: Number, default: 0 },\n max: { type: Number, default: 5 },\n allowHalf: { type: Boolean, default: false },\n readonly: { type: Boolean, default: false },\n disabled: { type: Boolean, default: false },\n showText: { type: Boolean, default: false },\n showScore: { type: Boolean, default: false },\n texts: { type: Array, default: (): string[] => ['极差', '失望', '一般', '满意', '惊喜'] },\n voidIcon: { type: String, default: '☆' },\n voidColor: { type: String, default: '#c6d1de' },\n disabledVoidColor: { type: String, default: '#e8e8e8' },\n class: { type: String, default: '' },\n onChange: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>) {\n const p = props as RateSetupProps;\n const hoverValue = signal(0);\n const isHovering = signal(false);\n\n const displayValue = (): number => (isHovering() ? hoverValue() : p.modelValue);\n\n const getStarClass = (index: number): string => {\n const value = displayValue();\n if (value >= index + 1) return 'lyt-rate-star-full';\n if (p.allowHalf && value >= index + 0.5) return 'lyt-rate-star-half';\n return 'lyt-rate-star-void';\n };\n\n const getStarStyle = (index: number): string => {\n const classes = ['lyt-rate-star'];\n if (getStarClass(index)) {\n classes.push(getStarClass(index));\n }\n if (p.disabled || p.readonly) {\n classes.push('lyt-rate-star-disabled');\n }\n return classes.join(' ');\n };\n\n const handleMouseMove = (event: MouseEvent, index: number) => {\n if (p.disabled || p.readonly) return;\n\n const target = event.target as HTMLElement;\n let newValue = index + 1;\n\n if (p.allowHalf) {\n const rect = target.getBoundingClientRect();\n const halfWidth = rect.width / 2;\n if (event.clientX - rect.left < halfWidth) {\n newValue = index + 0.5;\n }\n }\n\n hoverValue.set(newValue);\n isHovering.set(true);\n };\n\n const handleMouseLeave = () => {\n isHovering.set(false);\n };\n\n const handleClick = (event: MouseEvent, index: number) => {\n if (p.disabled || p.readonly) return;\n\n let newValue = index + 1;\n\n if (p.allowHalf) {\n const target = event.target as HTMLElement;\n const rect = target.getBoundingClientRect();\n const halfWidth = rect.width / 2;\n if (event.clientX - rect.left < halfWidth) {\n newValue = index + 0.5;\n }\n }\n\n if (p.onChange) {\n p.onChange(newValue);\n }\n };\n\n const getText = (): string => {\n const texts = (p.texts as string[]) || [];\n const index = Math.round(displayValue()) - 1;\n return texts[index] || '';\n };\n\n const getScore = (): string => {\n return displayValue().toFixed(1);\n };\n\n return () => {\n const starNodes: VNode[] = [];\n\n for (let i = 0; i < p.max; i++) {\n starNodes.push(\n createVNode(\n 'span',\n {\n class: getStarStyle(i),\n key: i,\n onMousemove: (e: MouseEvent) => handleMouseMove(e, i),\n onMouseleave: handleMouseLeave,\n onClick: (e: MouseEvent) => handleClick(e, i),\n },\n [\n createVNode('span', { class: 'lyt-rate-star-first' }, [\n createVNode('span', {}, String(p.voidIcon)),\n ]),\n createVNode('span', { class: 'lyt-rate-star-second' }, [\n createVNode('span', {}, '★'),\n ]),\n ],\n ),\n );\n }\n\n const children: VNode[] = [...starNodes];\n\n if (p.showText) {\n children.push(\n createVNode('span', { class: 'lyt-rate-text' }, [createVNode('span', {}, getText())]),\n );\n }\n\n if (p.showScore) {\n children.push(\n createVNode('span', { class: 'lyt-rate-score' }, [createVNode('span', {}, getScore())]),\n );\n }\n\n return createVNode(\n 'div',\n {\n class: [\n 'lyt-rate',\n p.class as string,\n p.disabled || p.readonly ? 'lyt-rate-disabled' : '',\n ]\n .filter(Boolean)\n .join(' '),\n },\n children,\n );\n };\n },\n});\n\nexport default Rate;\nexport type { RateProps, RateSlots, RateSetupProps } from './types';\n","/**\n * @lytjs/ui - ColorPicker 组件\n *\n * 颜色选择器组件,取色器、预设色、hex/rgb转换功能,零第三方依赖\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { signal } from '@lytjs/reactivity';\nimport type { ColorPickerSetupProps } from './types';\n\nconst DEFAULT_PRESETS = [\n '#ff4500',\n '#ff6600',\n '#ff8c00',\n '#ff9900',\n '#ffcc00',\n '#ffff00',\n '#9acd32',\n '#32cd32',\n '#3cb371',\n '#00fa9a',\n '#00ced1',\n '#1e90ff',\n '#4169e1',\n '#8a2be2',\n '#da70d6',\n '#ff1493',\n];\n\nexport const ColorPicker = defineComponent({\n name: 'LytColorPicker',\n\n props: {\n modelValue: { type: String, default: '#409eff' },\n showAlpha: { type: Boolean, default: false },\n showClear: { type: Boolean, default: true },\n showPreset: { type: Boolean, default: true },\n showHistory: { type: Boolean, default: true },\n presets: { type: Array, default: () => DEFAULT_PRESETS },\n history: { type: Array, default: () => [] },\n class: { type: String, default: '' },\n onChange: { type: Function, default: undefined },\n onClear: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>) {\n const p = props as ColorPickerSetupProps;\n const isDropdownVisible = signal(false);\n const currentHue = signal(200);\n const currentSaturation = signal(80);\n const currentLightness = signal(50);\n const currentAlpha = signal(100);\n const localHistory = signal<string[]>([...(p.history || [])]);\n const colorInputValue = signal(p.modelValue);\n\n const hexToHsl = (hex: string) => {\n let r = 0,\n g = 0,\n b = 0;\n\n if (hex.length === 4) {\n r = parseInt(String(hex[1]) + String(hex[1]), 16);\n g = parseInt(String(hex[2]) + String(hex[2]), 16);\n b = parseInt(String(hex[3]) + String(hex[3]), 16);\n } else if (hex.length === 7) {\n r = parseInt(String(hex[1]) + String(hex[2]), 16);\n g = parseInt(String(hex[3]) + String(hex[4]), 16);\n b = parseInt(String(hex[5]) + String(hex[6]), 16);\n }\n\n r /= 255;\n g /= 255;\n b /= 255;\n const max = Math.max(r, g, b),\n min = Math.min(r, g, b);\n let h = 0,\n s = 0;\n const l = (max + min) / 2;\n\n if (max !== min) {\n const d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h *= 60;\n }\n\n return { h: Math.round(h), s: Math.round(s * 100), l: Math.round(l * 100) };\n };\n\n const updateHslFromHex = (hex: string) => {\n try {\n const hsl = hexToHsl(hex);\n currentHue.set(hsl.h);\n currentSaturation.set(hsl.s);\n currentLightness.set(hsl.l);\n } catch {\n // 保持原样\n }\n };\n\n const hslToRgb = (h: number, s: number, l: number): number[] => {\n s /= 100;\n l /= 100;\n const k = (n: number) => (n + h / 30) % 12;\n const a = s * Math.min(l, 1 - l);\n const f = (n: number) => l - a * Math.max(-1, Math.min(k(n) - 3, Math.min(9 - k(n), 1)));\n return [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n };\n\n const rgbToHex = (r: number, g: number, b: number): string => {\n return (\n '#' +\n [r, g, b]\n .map((x: number) => {\n const hex = x.toString(16);\n return hex.length === 1 ? '0' + hex : hex;\n })\n .join('')\n );\n };\n\n const getCurrentColor = (): string => {\n const rgb = hslToRgb(currentHue(), currentSaturation(), currentLightness());\n const r = rgb[0] ?? 0;\n const g = rgb[1] ?? 0;\n const b = rgb[2] ?? 0;\n if (p.showAlpha) {\n return `rgba(${r}, ${g}, ${b}, ${currentAlpha() / 100})`;\n }\n return rgbToHex(r, g, b);\n };\n\n const addToHistory = (color: string) => {\n const history = [...localHistory()];\n const index = history.indexOf(color);\n if (index > -1) history.splice(index, 1);\n history.unshift(color);\n if (history.length > 10) history.pop();\n localHistory.set(history);\n };\n\n const handleColorClick = (color: string) => {\n isDropdownVisible.set(false);\n colorInputValue.set(color);\n addToHistory(color);\n };\n\n const handlePresetClick = (color: string) => {\n updateHslFromHex(color);\n handleColorClick(color);\n };\n\n const clearColor = () => {\n isDropdownVisible.set(false);\n if (p.onClear) p.onClear();\n };\n\n const toggleDropdown = () => {\n if (!p.showClear || isDropdownVisible()) {\n isDropdownVisible.set(!isDropdownVisible());\n }\n };\n\n const handleColorInput = (event: Event) => {\n const target = event.target as HTMLInputElement;\n colorInputValue.set(target.value);\n };\n\n const handleColorChange = (event: Event) => {\n const target = event.target as HTMLInputElement;\n const color = target.value;\n if (color) {\n handleColorClick(color);\n }\n };\n\n let isDragging = false;\n\n const handlePickerClick = (event: MouseEvent, type: 'saturation' | 'hue' | 'alpha') => {\n isDragging = true;\n handlePickerDrag(event, type);\n };\n\n const handlePickerMouseMove = (event: MouseEvent, type: 'saturation' | 'hue' | 'alpha') => {\n if (!isDragging) return;\n handlePickerDrag(event, type);\n };\n\n const handlePickerMouseUp = () => {\n isDragging = false;\n };\n\n const handlePickerDrag = (event: MouseEvent, type: 'saturation' | 'hue' | 'alpha') => {\n const rect = (event.target as HTMLElement).getBoundingClientRect();\n let x = event.clientX - rect.left;\n x = Math.max(0, Math.min(rect.width, x));\n\n if (type === 'hue') {\n const newHue = Math.round((x / rect.width) * 360);\n currentHue.set(newHue);\n colorInputValue.set(getCurrentColor());\n } else if (type === 'alpha') {\n const newAlpha = Math.round((x / rect.width) * 100);\n currentAlpha.set(newAlpha);\n colorInputValue.set(getCurrentColor());\n } else if (type === 'saturation') {\n let y = event.clientY - rect.top;\n y = Math.max(0, Math.min(rect.height, y));\n const newSat = Math.round((x / rect.width) * 100);\n const newLight = Math.round(100 - (y / rect.height) * 100);\n currentSaturation.set(newSat);\n currentLightness.set(newLight);\n colorInputValue.set(getCurrentColor());\n }\n };\n\n const getColorPickerClass = (): string => {\n const classes = ['lyt-color-picker'];\n if (p.class) classes.push(p.class as string);\n return classes.join(' ');\n };\n\n return () => {\n const saturationPointer: VNode[] = [];\n saturationPointer.push(\n createVNode('div', {\n class: 'lyt-color-picker-pointer',\n style: {\n left: `${currentSaturation()}%`,\n top: `${100 - currentLightness()}%`,\n },\n }),\n );\n\n const hueChildren: VNode[] = [];\n hueChildren.push(\n createVNode('div', {\n class: 'lyt-color-picker-pointer',\n style: { left: `${(currentHue() / 360) * 100}%` },\n }),\n );\n\n const saturationPicker: VNode[] = [];\n saturationPicker.push(\n createVNode(\n 'div',\n {\n class: 'lyt-color-picker-saturation',\n style: {\n background: `linear-gradient(to top, rgb(0, 0, 0), transparent),\n linear-gradient(to right, rgb(255, 255, 255), hsl(${currentHue()}, 100%, 50%))`,\n },\n onMousedown: (e: MouseEvent) => handlePickerClick(e, 'saturation'),\n onMousemove: (e: MouseEvent) => handlePickerMouseMove(e, 'saturation'),\n onMouseup: handlePickerMouseUp,\n onMouseleave: handlePickerMouseUp,\n },\n saturationPointer,\n ),\n );\n\n const huePicker: VNode[] = [];\n huePicker.push(\n createVNode(\n 'div',\n {\n class: 'lyt-color-picker-hue-slider',\n onMousedown: (e: MouseEvent) => handlePickerClick(e, 'hue'),\n onMousemove: (e: MouseEvent) => handlePickerMouseMove(e, 'hue'),\n onMouseup: handlePickerMouseUp,\n onMouseleave: handlePickerMouseUp,\n },\n hueChildren,\n ),\n );\n\n const alphaChildren: VNode[] = [];\n alphaChildren.push(\n createVNode('div', {\n class: 'lyt-color-picker-pointer',\n style: { left: `${currentAlpha()}%` },\n }),\n );\n\n const alphaPicker: VNode[] = [];\n alphaPicker.push(\n createVNode(\n 'div',\n {\n class: 'lyt-color-picker-alpha-slider',\n style: {\n background: `linear-gradient(to right, transparent, ${hslToRgb(\n currentHue(),\n currentSaturation(),\n currentLightness(),\n )\n .map((v: number) => `rgb(${v})`)\n .join(',')})`,\n },\n onMousedown: (e: MouseEvent) => handlePickerClick(e, 'alpha'),\n onMousemove: (e: MouseEvent) => handlePickerMouseMove(e, 'alpha'),\n onMouseup: handlePickerMouseUp,\n onMouseleave: handlePickerMouseUp,\n },\n alphaChildren,\n ),\n );\n\n const presetColors: VNode[] = [];\n const presets = (p.presets || DEFAULT_PRESETS) as string[];\n presets.forEach((color: string, index: number) => {\n presetColors.push(\n createVNode('span', {\n class: 'lyt-color-picker-color',\n key: index,\n style: { backgroundColor: color },\n onClick: () => handlePresetClick(color),\n }),\n );\n });\n\n const historyColors: VNode[] = [];\n const history = localHistory() as string[];\n history.forEach((color: string, index: number) => {\n historyColors.push(\n createVNode('span', {\n class: 'lyt-color-picker-color',\n key: index,\n style: { backgroundColor: color },\n onClick: () => handleColorClick(color),\n }),\n );\n });\n\n const pickerDropdown: VNode[] = [];\n\n const panelChildren: VNode[] = [];\n panelChildren.push(\n createVNode(\n 'div',\n {\n class: 'lyt-color-picker-saturation',\n },\n saturationPicker,\n ),\n );\n panelChildren.push(createVNode('div', { class: 'lyt-color-picker-hue' }, huePicker));\n if (p.showAlpha) {\n panelChildren.push(createVNode('div', { class: 'lyt-color-picker-alpha' }, alphaPicker));\n }\n\n pickerDropdown.push(createVNode('div', { class: 'lyt-color-picker-panel' }, panelChildren));\n\n const inputChildren: VNode[] = [];\n inputChildren.push(\n createVNode('input', {\n type: 'text',\n value: colorInputValue(),\n onInput: handleColorInput,\n onChange: handleColorChange,\n placeholder: '请输入颜色',\n }),\n );\n inputChildren.push(\n createVNode('span', {\n class: 'lyt-color-picker-preview',\n style: { backgroundColor: getCurrentColor() },\n }),\n );\n inputChildren.push(\n createVNode(\n 'button',\n {\n class: 'lyt-color-picker-confirm',\n onClick: () => handleColorClick(getCurrentColor()),\n },\n [createVNode('span', {}, '确认')],\n ),\n );\n\n pickerDropdown.push(createVNode('div', { class: 'lyt-color-picker-input' }, inputChildren));\n\n if (p.showPreset) {\n const presetChildren: VNode[] = [];\n presetChildren.push(\n createVNode('div', { class: 'lyt-color-picker-title' }, [\n createVNode('span', {}, '预设颜色'),\n ]),\n );\n presetChildren.push(\n createVNode('div', { class: 'lyt-color-picker-palette' }, presetColors),\n );\n pickerDropdown.push(\n createVNode('div', { class: 'lyt-color-picker-presets' }, presetChildren),\n );\n }\n\n if (p.showHistory && history.length > 0) {\n const historyChildren: VNode[] = [];\n historyChildren.push(\n createVNode('div', { class: 'lyt-color-picker-title' }, [\n createVNode('span', {}, '历史颜色'),\n ]),\n );\n historyChildren.push(\n createVNode('div', { class: 'lyt-color-picker-palette' }, historyColors),\n );\n pickerDropdown.push(\n createVNode('div', { class: 'lyt-color-picker-history' }, historyChildren),\n );\n }\n\n const triggerChildren: VNode[] = [];\n triggerChildren.push(\n createVNode('div', {\n class: 'lyt-color-picker-display',\n style: { backgroundColor: p.modelValue || 'transparent' },\n }),\n );\n\n if (p.showClear && p.modelValue) {\n triggerChildren.push(\n createVNode(\n 'span',\n {\n class: 'lyt-color-picker-clear',\n onClick: clearColor,\n },\n [createVNode('span', {}, '×')],\n ),\n );\n }\n\n triggerChildren.push(\n createVNode('span', { class: 'lyt-color-picker-arrow' }, [createVNode('span', {}, '▼')]),\n );\n\n const trigger: VNode[] = [];\n trigger.push(\n createVNode(\n 'div',\n { class: 'lyt-color-picker-trigger', onClick: toggleDropdown },\n triggerChildren,\n ),\n );\n\n if (isDropdownVisible()) {\n trigger.push(createVNode('div', { class: 'lyt-color-picker-dropdown' }, pickerDropdown));\n }\n\n return createVNode('div', { class: getColorPickerClass() }, trigger);\n };\n },\n});\n\nexport default ColorPicker;\nexport type { ColorPickerProps, ColorPickerSlots, ColorPickerSetupProps } from './types';\n","/**\n * @lytjs/ui - Icon 组件\n *\n * 基础图标组件,支持多种尺寸和颜色\n */\n\nimport type { IconProps, IconSlots, IconSetupProps } from './types';\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\nexport const Icon = defineComponent({\n name: 'LytIcon',\n\n props: {\n name: { type: String, default: '' },\n size: { type: String, default: '16px' },\n color: { type: String, default: '' },\n spin: { type: Boolean, default: false },\n class: { type: String, default: '' },\n style: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: IconSlots }) {\n const p = props as unknown as IconSetupProps;\n\n const getIconClass = () => {\n const classes = ['lyt-icon'];\n if (p.name) classes.push(`lyt-icon--${p.name}`);\n if (p.spin) classes.push('lyt-icon--spin');\n if (p.class) classes.push(p.class);\n return classes.join(' ');\n };\n\n const getIconStyle = () => {\n const style: Record<string, string> = {};\n if (p.size) style.fontSize = p.size;\n if (p.color) style.color = p.color;\n if (p.style) {\n if (isString(p.style)) {\n return p.style;\n }\n if (isObject(p.style)) {\n Object.assign(style, p.style);\n }\n }\n return style;\n };\n\n return () => {\n const children: VNode[] = [];\n\n if (slots.default) {\n children.push(...slots.default());\n }\n\n return createVNode(\n 'i',\n mergeA11yProps(\n {\n id: p.id,\n 'aria-label': p.ariaLabel,\n 'aria-describedby': p.ariaDescribedBy,\n },\n {\n class: getIconClass(),\n style: getIconStyle(),\n },\n ),\n children,\n );\n };\n },\n});\n\nexport type { IconProps, IconSlots };\n","/**\n * @lytjs/ui - Badge 组件\n *\n * 徽标组件,用于展示数字或点标记\n */\n\nimport type { BadgeSetupProps, BadgeSlots, BadgeProps } from './types';\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\nexport const Badge = defineComponent({\n name: 'LytBadge',\n\n props: {\n count: { type: Number, default: 0 },\n maxCount: { type: Number, default: 99 },\n dot: { type: Boolean, default: false },\n showZero: { type: Boolean, default: false },\n type: { type: String, default: 'danger' },\n offset: { type: Array, default: undefined },\n class: { type: String, default: '' },\n style: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: BadgeSlots }) {\n const p = props as BadgeSetupProps;\n\n const displayCount = (): string => {\n if (p.dot) return '';\n if (p.count > p.maxCount) return `${p.maxCount}+`;\n return String(p.count);\n };\n\n const showBadge = (): boolean => {\n if (p.dot) return true;\n if (p.count === 0) return p.showZero;\n return true;\n };\n\n const getCountStyle = (): Record<string, string> => {\n const style: Record<string, string> = {};\n if (p.offset) {\n style.top = `${p.offset[0]}px`;\n style.right = `${p.offset[1]}px`;\n }\n return style;\n };\n\n return () => {\n const children: VNode[] = [];\n\n if (slots.default) {\n children.push(...slots.default());\n }\n\n if (showBadge()) {\n children.push(\n createVNode(\n 'sup',\n {\n class: [\n 'lyt-badge__count',\n `lyt-badge__count--${p.type}`,\n p.dot ? 'lyt-badge__count--dot' : '',\n ]\n .filter(Boolean)\n .join(' '),\n style: getCountStyle(),\n },\n [createVNode('span', {}, p.dot ? '' : displayCount())],\n ),\n );\n }\n\n return createVNode(\n 'span',\n mergeA11yProps(\n {\n id: p.id,\n 'aria-label': p.ariaLabel,\n 'aria-describedby': p.ariaDescribedBy,\n },\n {\n class: ['lyt-badge', p.class as string].filter(Boolean).join(' '),\n },\n ),\n children,\n );\n };\n },\n});\n\nexport type { BadgeProps, BadgeSlots, BadgeSetupProps };\n","/**\n * @lytjs/ui - Tag 组件\n *\n * 标签组件,支持多种类型和可关闭功能\n */\n\nimport type { TagProps, TagSlots, TagSetupProps } from './types';\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { reactive } from '@lytjs/reactivity';\nimport { getButtonA11yProps, mergeA11yProps } from '@lytjs/common-a11y';\n\n/**\n * Tag 组件\n */\nexport const Tag = defineComponent({\n name: 'LytTag',\n\n props: {\n type: { type: String, default: 'default' },\n closable: { type: Boolean, default: false },\n color: { type: String, default: '' },\n size: { type: String, default: 'medium' },\n class: { type: String, default: '' },\n style: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n onClose: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots, emit }) {\n const _props = props as TagSetupProps;\n const state = reactive({\n visible: true,\n });\n\n const handleClose = (e: Event) => {\n e.stopPropagation();\n state.visible = false;\n emit('close');\n _props.onClose?.();\n };\n\n const getTagClass = () => {\n const classes = ['lyt-tag'];\n if (_props.type !== 'default') classes.push(`lyt-tag--${_props.type}`);\n if (_props.size !== 'medium') classes.push(`lyt-tag--${_props.size}`);\n if (_props.color) classes.push('lyt-tag--custom');\n if (_props.class) classes.push(_props.class);\n return classes.join(' ');\n };\n\n const getTagStyle = () => {\n const style: Record<string, string> = {};\n if (_props.color) {\n style.backgroundColor = _props.color + '15';\n style.borderColor = _props.color;\n style.color = _props.color;\n }\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n return () => {\n if (!state.visible) return createVNode('div', { style: 'display: none;' }, []);\n\n const children: VNode[] = [];\n\n // 内容插槽\n if (slots.default) {\n const slotContent = slots.default();\n if (Array.isArray(slotContent)) {\n children.push(...(slotContent as VNode[]));\n }\n }\n\n // 关闭按钮\n if (_props.closable) {\n const closeBtnProps = getButtonA11yProps({ ariaLabel: '关闭标签' });\n children.push(\n createVNode(\n 'span',\n mergeA11yProps(closeBtnProps, {\n class: 'lyt-tag__close',\n onClick: handleClose,\n }),\n [createVNode('span', {}, '×')],\n ),\n );\n }\n\n return createVNode(\n 'span',\n mergeA11yProps(\n {\n id: _props.id,\n 'aria-label': _props.ariaLabel,\n 'aria-describedby': _props.ariaDescribedBy,\n },\n {\n class: getTagClass(),\n style: getTagStyle(),\n },\n ),\n children,\n );\n };\n },\n});\n\nexport type { TagProps, TagSlots };\n","/**\n * @lytjs/ui - Spin 组件\n *\n * 加载中组件,用于展示加载状态\n */\n\nimport type { SpinProps, SpinSlots, SpinSetupProps } from './types';\nimport { defineComponent, onUnmounted } from '@lytjs/component';\nimport { createVNode, createTextVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { reactive, watch } from '@lytjs/reactivity';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\nexport const Spin = defineComponent({\n name: 'LytSpin',\n\n props: {\n spinning: { type: Boolean, default: true },\n size: { type: String, default: 'default' },\n tip: { type: String, default: '' },\n delay: { type: Number, default: 0 },\n class: { type: String, default: '' },\n style: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: SpinSlots }) {\n const p = props as unknown as SpinSetupProps;\n const state = reactive({\n visible: props.spinning as boolean,\n });\n\n let delayTimer: ReturnType<typeof setTimeout> | null = null;\n\n watch(\n () => props.spinning,\n (val: boolean) => {\n if (delayTimer) clearTimeout(delayTimer);\n if (val) {\n if (p.delay && p.delay > 0) {\n delayTimer = setTimeout(() => {\n state.visible = true;\n }, p.delay);\n } else {\n state.visible = true;\n }\n } else {\n state.visible = false;\n }\n },\n );\n\n onUnmounted(() => {\n if (delayTimer) clearTimeout(delayTimer);\n });\n\n const getSpinClass = () => {\n const classes = ['lyt-spin'];\n if (state.visible) classes.push('lyt-spin--spinning');\n if (p.class) classes.push(p.class);\n return classes.join(' ');\n };\n\n const getSpinStyle = () => {\n if (!p.style) return undefined;\n if (isString(p.style)) return p.style;\n if (isObject(p.style)) {\n return Object.entries(p.style)\n .map(([key, value]) => `${key}: ${value}`)\n .join('; ');\n }\n return undefined;\n };\n\n return () => {\n const children: VNode[] = [];\n\n if (state.visible) {\n const loadingChildren: VNode[] = [];\n\n loadingChildren.push(\n createVNode('div', { class: `lyt-spin__icon lyt-spin__icon--${p.size}` }, [\n createVNode('svg', { viewBox: '0 0 1024 1024', class: 'lyt-spin__svg' }, [\n createVNode('path', {\n d: 'M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32zm0 640a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V736a32 32 0 0 1 32-32zm-448-192a32 32 0 0 1 32-32h192a32 32 0 0 1 0 64H96a32 32 0 0 1-32-32zm640 0a32 32 0 0 1 32-32h192a32 32 0 0 1 0 64H736a32 32 0 0 1-32-32z',\n }),\n ]),\n ]),\n );\n\n if (p.tip || slots.tip) {\n loadingChildren.push(\n createVNode(\n 'div',\n { class: 'lyt-spin__tip' },\n slots.tip ? slots.tip() : [createTextVNode(p.tip)],\n ),\n );\n }\n\n children.push(createVNode('div', { class: 'lyt-spin__loading' }, loadingChildren));\n }\n\n if (slots.default) {\n children.push(\n createVNode(\n 'div',\n {\n class: state.visible\n ? 'lyt-spin__content lyt-spin__content--hidden'\n : 'lyt-spin__content',\n },\n slots.default(),\n ),\n );\n }\n\n return createVNode(\n 'div',\n mergeA11yProps(\n {\n id: p.id,\n 'aria-label': p.ariaLabel,\n 'aria-describedby': p.ariaDescribedBy,\n role: 'alert',\n 'aria-live': 'polite',\n },\n {\n class: getSpinClass(),\n style: getSpinStyle(),\n },\n ),\n children,\n );\n };\n },\n});\n\nexport type { SpinProps, SpinSlots };\n","import type { EmptyProps, EmptySlots, EmptySetupProps } from './types';\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, createTextVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\nexport const Empty = defineComponent({\n name: 'LytEmpty',\n\n props: {\n description: { type: String, default: '暂无数据' },\n image: { type: String, default: '' },\n imageSize: { type: Number, default: 160 },\n class: { type: String, default: '' },\n style: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: EmptySlots }) {\n const p = props as unknown as EmptySetupProps;\n\n const getEmptyClass = () => {\n const classes = ['lyt-empty'];\n if (p.class) classes.push(p.class);\n return classes.join(' ');\n };\n\n const getEmptyStyle = () => {\n if (!p.style) return undefined;\n if (isString(p.style)) return p.style;\n if (isObject(p.style)) {\n return Object.entries(p.style)\n .map(([key, value]) => `${key}: ${value}`)\n .join('; ');\n }\n return undefined;\n };\n\n return () => {\n const children: VNode[] = [];\n\n if (slots.image) {\n children.push(createVNode('div', { class: 'lyt-empty__image' }, slots.image()));\n } else if (p.image) {\n children.push(\n createVNode('div', { class: 'lyt-empty__image' }, [\n createVNode('img', {\n src: p.image,\n alt: 'empty',\n style: { width: `${p.imageSize}px`, height: `${p.imageSize}px` },\n }),\n ]),\n );\n } else {\n children.push(\n createVNode('div', { class: 'lyt-empty__image' }, [\n createVNode(\n 'svg',\n {\n viewBox: '0 0 400 320',\n class: 'lyt-empty__svg',\n style: {\n width: `${p.imageSize || 160}px`,\n height: `${(p.imageSize || 160) * 0.8}px`,\n },\n },\n [\n createVNode('g', { fill: 'none', 'fill-rule': 'evenodd' }, [\n createVNode('g', { transform: 'translate(40 40)' }, [\n createVNode('ellipse', {\n fill: 'var(--lyt-color-info)',\n opacity: '0.2',\n cx: '160',\n cy: '140',\n rx: '160',\n ry: '140',\n }),\n createVNode('path', {\n d: 'M160 0C71.6 0 0 62.7 0 140s71.6 140 160 140 160-62.7 160-140S248.4 0 160 0z',\n fill: 'var(--lyt-color-info)',\n opacity: '0.15',\n }),\n createVNode('g', { fill: 'var(--lyt-color-info)' }, [\n createVNode('path', {\n d: 'M184 104a8 8 0 0 1 8 8v24a8 8 0 0 1-16 0v-24a8 8 0 0 1 8-8z',\n opacity: '0.3',\n }),\n createVNode('path', {\n d: 'M128 104a8 8 0 0 1 8 8v24a8 8 0 0 1-16 0v-24a8 8 0 0 1 8-8z',\n opacity: '0.3',\n }),\n createVNode('path', {\n d: 'M216 184H104a8 8 0 0 1-8-8v-16a8 8 0 0 1 8-8h112a8 8 0 0 1 8 8v16a8 8 0 0 1-8 8z',\n opacity: '0.2',\n }),\n ]),\n ]),\n ]),\n ],\n ),\n ]),\n );\n }\n\n if (slots.description) {\n children.push(createVNode('div', { class: 'lyt-empty__description' }, slots.description()));\n } else if (p.description) {\n children.push(\n createVNode('div', { class: 'lyt-empty__description' }, [createTextVNode(p.description)]),\n );\n }\n\n if (slots.default) {\n children.push(createVNode('div', { class: 'lyt-empty__bottom' }, slots.default()));\n }\n\n return createVNode(\n 'div',\n mergeA11yProps(\n {\n id: p.id,\n 'aria-label': p.ariaLabel,\n 'aria-describedby': p.ariaDescribedBy,\n role: 'status',\n 'aria-live': 'polite',\n },\n {\n class: getEmptyClass(),\n style: getEmptyStyle(),\n },\n ),\n children,\n );\n };\n },\n});\n\nexport type { EmptyProps, EmptySlots };\n","/**\n * @lytjs/ui - Link 组件\n *\n * 链接组件,支持多种类型和样式\n */\n\nimport type { LinkProps, LinkSlots, LinkSetupProps } from './types';\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\n/**\n * Link 组件\n */\nexport const Link = defineComponent({\n name: 'LytLink',\n\n props: {\n type: { type: String, default: 'default' },\n disabled: { type: Boolean, default: false },\n underline: { type: Boolean, default: true },\n href: { type: String, default: '' },\n target: { type: String, default: '_self' },\n class: { type: String, default: '' },\n style: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n onClick: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots }) {\n const _props = props as LinkSetupProps;\n const handleClick = (event: MouseEvent) => {\n if (_props.disabled) {\n event.preventDefault();\n return;\n }\n _props.onClick?.(event);\n };\n\n const getLinkClass = () => {\n const classes = ['lyt-link'];\n if (_props.type !== 'default') {\n classes.push(`lyt-link--${_props.type}`);\n }\n if (!_props.underline) {\n classes.push('lyt-link--no-underline');\n }\n if (_props.disabled) {\n classes.push('lyt-link--disabled');\n }\n if (_props.class) {\n classes.push(_props.class);\n }\n return classes.join(' ');\n };\n\n const getLinkStyle = () => {\n if (!_props.style) return undefined;\n if (isString(_props.style)) return _props.style;\n if (isObject(_props.style)) {\n return Object.entries(_props.style)\n .map(([key, value]) => `${key}: ${value}`)\n .join('; ');\n }\n return undefined;\n };\n\n return () => {\n const children: VNode[] = [];\n if (slots.default) {\n const slotContent = slots.default();\n if (Array.isArray(slotContent)) {\n children.push(...(slotContent as VNode[]));\n }\n }\n\n if (_props.href) {\n return createVNode(\n 'a',\n mergeA11yProps(\n {\n id: _props.id,\n 'aria-label': _props.ariaLabel,\n 'aria-describedby': _props.ariaDescribedBy,\n },\n {\n class: getLinkClass(),\n style: getLinkStyle(),\n href: _props.href,\n target: _props.target,\n onClick: handleClick,\n },\n ),\n children,\n );\n } else {\n return createVNode(\n 'span',\n mergeA11yProps(\n {\n id: _props.id,\n 'aria-label': _props.ariaLabel,\n 'aria-describedby': _props.ariaDescribedBy,\n role: 'link',\n },\n {\n class: getLinkClass(),\n style: getLinkStyle(),\n onClick: handleClick,\n },\n ),\n children,\n );\n }\n };\n },\n});\n\nexport type { LinkProps, LinkSlots };\n","import type { ContainerProps, ContainerSlots } from './types';\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\n\nexport interface ContainerSetupProps {\n fluid: boolean;\n class: string;\n style: string;\n}\n\nexport const Container = defineComponent({\n name: 'LytContainer',\n\n props: {\n fluid: { type: Boolean, default: false },\n class: { type: String, default: '' },\n style: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: ContainerSlots }) {\n const p = props as unknown as ContainerSetupProps;\n\n const getContainerClass = () => {\n const classes = ['lyt-container'];\n if (p.fluid) {\n classes.push('lyt-container--fluid');\n }\n if (p.class) {\n classes.push(p.class);\n }\n return classes.join(' ');\n };\n\n const getContainerStyle = () => {\n if (!p.style) return undefined;\n if (isString(p.style)) return p.style;\n if (isObject(p.style)) {\n return Object.entries(p.style)\n .map(([key, value]) => `${key}: ${value}`)\n .join('; ');\n }\n return undefined;\n };\n\n return () => {\n const children: VNode[] = [];\n if (slots.default) {\n children.push(...slots.default());\n }\n\n return createVNode(\n 'div',\n {\n class: getContainerClass(),\n style: getContainerStyle(),\n },\n children,\n );\n };\n },\n});\n\nexport type { ContainerProps, ContainerSlots };\n","import type { DividerProps, DividerSlots, DividerSetupProps } from './types';\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\nexport const Divider = defineComponent({\n name: 'LytDivider',\n\n props: {\n type: { type: String, default: 'horizontal' },\n contentPosition: { type: String, default: 'center' },\n class: { type: String, default: '' },\n style: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: DividerSlots }) {\n const p = props as unknown as DividerSetupProps;\n\n const getDividerClass = () => {\n const classes = ['lyt-divider'];\n if (p.type !== 'horizontal') {\n classes.push(`lyt-divider--${p.type}`);\n }\n if (slots.default) {\n classes.push(`lyt-divider--${p.contentPosition}`);\n }\n if (p.class) {\n classes.push(p.class);\n }\n return classes.join(' ');\n };\n\n const getDividerStyle = () => {\n if (!p.style) return undefined;\n if (isString(p.style)) return p.style;\n if (isObject(p.style)) {\n return Object.entries(p.style)\n .map(([key, value]) => `${key}: ${value}`)\n .join('; ');\n }\n return undefined;\n };\n\n return () => {\n const children: VNode[] = [];\n\n if (slots.default) {\n children.push(createVNode('span', { class: 'lyt-divider__text' }, slots.default()));\n }\n\n return createVNode(\n 'div',\n mergeA11yProps(\n {\n id: p.id,\n 'aria-label': p.ariaLabel,\n 'aria-describedby': p.ariaDescribedBy,\n role: 'separator',\n },\n {\n class: getDividerClass(),\n style: getDividerStyle(),\n },\n ),\n children,\n );\n };\n },\n});\n\nexport type { DividerProps, DividerSlots };\n","/**\n * @lytjs/ui - Toast 组件\n *\n * 轻提示组件,用于显示简短的消息提示\n */\n\nimport type { ToastProps, ToastSlots, ToastSetupProps } from './types';\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { reactive } from '@lytjs/reactivity';\n\n/**\n * Toast 组件\n */\nexport const Toast = defineComponent({\n name: 'LytToast',\n\n props: {\n message: { type: String, default: '' },\n type: { type: String, default: 'info' },\n duration: { type: Number, default: 3000 },\n position: { type: String, default: 'top' },\n icon: { type: String, default: '' },\n closable: { type: Boolean, default: false },\n class: { type: String, default: '' },\n style: { type: String, default: '' },\n onClose: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots, emit }) {\n const _props = props as ToastSetupProps;\n const state = reactive({\n visible: true,\n timer: null as ReturnType<typeof setTimeout> | null,\n });\n\n const startTimer = () => {\n if (_props.duration > 0) {\n state.timer = setTimeout(() => {\n close();\n }, _props.duration);\n }\n };\n\n const clearTimer = () => {\n if (state.timer) {\n clearTimeout(state.timer as ReturnType<typeof setTimeout>);\n state.timer = null;\n }\n };\n\n const close = () => {\n state.visible = false;\n emit('close');\n _props.onClose?.();\n };\n\n const handleClose = (e: Event) => {\n e.stopPropagation();\n close();\n };\n\n const getToastClass = () => {\n const classes = ['lyt-toast'];\n classes.push(`lyt-toast--${_props.type}`);\n classes.push(`lyt-toast--${_props.position}`);\n if (_props.class) classes.push(_props.class);\n return classes.join(' ');\n };\n\n const getToastStyle = () => {\n const style: Record<string, string> = {};\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n // 启动定时器\n startTimer();\n\n return () => {\n if (!state.visible) return createVNode('div', { style: 'display: none;' }, []);\n\n const children: VNode[] = [];\n\n // 图标\n if (_props.icon) {\n children.push(\n createVNode(\n 'span',\n {\n class: 'lyt-toast__icon',\n },\n [createVNode('span', {}, _props.icon)],\n ),\n );\n } else if (slots.icon) {\n const slotIcon = slots.icon();\n if (Array.isArray(slotIcon)) {\n children.push(\n createVNode(\n 'span',\n {\n class: 'lyt-toast__icon',\n },\n slotIcon as VNode[],\n ),\n );\n }\n }\n\n // 消息内容\n if (_props.message) {\n children.push(\n createVNode(\n 'span',\n {\n class: 'lyt-toast__message',\n },\n [createVNode('span', {}, _props.message)],\n ),\n );\n } else if (slots.default) {\n const slotContent = slots.default();\n if (Array.isArray(slotContent)) {\n children.push(\n createVNode(\n 'span',\n {\n class: 'lyt-toast__message',\n },\n slotContent as VNode[],\n ),\n );\n }\n }\n\n // 关闭按钮\n if (_props.closable) {\n children.push(\n createVNode(\n 'span',\n {\n class: 'lyt-toast__close',\n onClick: handleClose,\n },\n [createVNode('span', {}, '×')],\n ),\n );\n }\n\n return createVNode(\n 'div',\n {\n class: getToastClass(),\n style: getToastStyle(),\n onMouseenter: clearTimer,\n onMouseleave: startTimer,\n },\n children,\n );\n };\n },\n});\n\nexport type { ToastProps, ToastSlots };\n","/**\n * @lytjs/ui - Alert 组件\n *\n * 警告提示组件,用于展示重要的提示信息\n */\n\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport type { AlertType, AlertSetupProps } from './types';\nimport { getButtonA11yProps, mergeA11yProps } from '@lytjs/common-a11y';\n\nexport const Alert = defineComponent({\n name: 'LytAlert',\n\n props: {\n title: { type: String, default: '' },\n description: { type: String, default: '' },\n type: { type: String, default: 'info' },\n closable: { type: Boolean, default: false },\n showIcon: { type: Boolean, default: true },\n effect: { type: String, default: 'light' },\n class: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n onClose: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots, emit }) {\n const _props = props as AlertSetupProps;\n const handleClose = () => {\n emit('close');\n _props.onClose?.();\n };\n\n const getIconMap = (): Record<AlertType, string> => ({\n success: '✓',\n warning: '⚠',\n info: 'ℹ',\n error: '✕',\n });\n\n return () => {\n const alertClass = [\n 'lyt-alert',\n `lyt-alert--${_props.type}`,\n `lyt-alert--${_props.effect}`,\n _props.class,\n ]\n .filter(Boolean)\n .join(' ');\n\n const children: VNode[] = [];\n\n if (_props.showIcon) {\n const icon = getIconMap()[_props.type as AlertType] || 'ℹ';\n children.push(\n createVNode('span', { class: 'lyt-alert__icon' }, [createVNode('span', {}, icon)]),\n );\n }\n\n const contentChildren: VNode[] = [];\n\n // Title\n if (slots.title || _props.title) {\n const titleChildren: VNode[] = [];\n if (slots.title) {\n const slotContent = slots.title();\n if (Array.isArray(slotContent)) {\n titleChildren.push(...(slotContent as VNode[]));\n }\n } else if (_props.title) {\n titleChildren.push(createVNode('span', {}, _props.title));\n }\n if (titleChildren.length > 0) {\n contentChildren.push(createVNode('div', { class: 'lyt-alert__title' }, titleChildren));\n }\n }\n\n // Description\n if (_props.description) {\n contentChildren.push(\n createVNode('div', { class: 'lyt-alert__description' }, [\n createVNode('span', {}, _props.description),\n ]),\n );\n }\n\n // Default slot\n if (slots.default) {\n const slotContent = slots.default();\n if (Array.isArray(slotContent)) {\n contentChildren.push(\n createVNode('div', { class: 'lyt-alert__message' }, slotContent as VNode[]),\n );\n }\n }\n\n if (contentChildren.length > 0) {\n children.push(createVNode('div', { class: 'lyt-alert__content' }, contentChildren));\n }\n\n if (_props.closable) {\n const closeBtnProps = getButtonA11yProps({ ariaLabel: '关闭提示' });\n children.push(\n createVNode(\n 'button',\n mergeA11yProps(closeBtnProps, {\n class: 'lyt-alert__close',\n onClick: handleClose,\n }),\n [createVNode('span', {}, '×')],\n ),\n );\n }\n\n return createVNode(\n 'div',\n {\n id: _props.id,\n 'aria-label': _props.ariaLabel || _props.title || 'Alert',\n 'aria-describedby': _props.ariaDescribedBy,\n role: 'alert',\n class: alertClass,\n },\n children,\n );\n };\n },\n});\n\nexport type { AlertProps, AlertSlots, AlertType, AlertEffect } from './types';\n","/**\n * @lytjs/ui - Tooltip 组件\n *\n * 文字提示组件,用于显示额外的提示信息\n */\n\nimport type { TooltipProps, TooltipSlots, TooltipSetupProps } from './types';\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, createTextVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { reactive } from '@lytjs/reactivity';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\nexport const Tooltip = defineComponent({\n name: 'LytTooltip',\n\n props: {\n content: { type: String, default: '' },\n placement: { type: String, default: 'top' },\n trigger: { type: String, default: 'hover' },\n disabled: { type: Boolean, default: false },\n openDelay: { type: Number, default: 0 },\n closeDelay: { type: Number, default: 0 },\n showArrow: { type: Boolean, default: true },\n class: { type: String, default: '' },\n style: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>, { slots }: { slots: TooltipSlots }) {\n const p = props as unknown as TooltipSetupProps;\n const state = reactive({\n visible: false,\n });\n let openTimer: ReturnType<typeof setTimeout> | null = null;\n let closeTimer: ReturnType<typeof setTimeout> | null = null;\n\n const handleMouseEnter = () => {\n if (p.disabled || p.trigger !== 'hover') return;\n if (closeTimer) clearTimeout(closeTimer);\n if (p.openDelay && p.openDelay > 0) {\n openTimer = setTimeout(() => {\n state.visible = true;\n }, p.openDelay);\n } else {\n state.visible = true;\n }\n };\n\n const handleMouseLeave = () => {\n if (p.disabled || p.trigger !== 'hover') return;\n if (openTimer) clearTimeout(openTimer);\n if (p.closeDelay && p.closeDelay > 0) {\n closeTimer = setTimeout(() => {\n state.visible = false;\n }, p.closeDelay);\n } else {\n state.visible = false;\n }\n };\n\n const handleClick = () => {\n if (p.disabled || p.trigger !== 'click') return;\n state.visible = !state.visible;\n };\n\n const handleFocus = () => {\n if (p.disabled || p.trigger !== 'focus') return;\n state.visible = true;\n };\n\n const handleBlur = () => {\n if (p.disabled || p.trigger !== 'focus') return;\n state.visible = false;\n };\n\n const getTooltipClass = () => {\n const classes = ['lyt-tooltip'];\n classes.push(`lyt-tooltip--${p.placement}`);\n if (p.class) classes.push(p.class);\n return classes.join(' ');\n };\n\n const getTooltipStyle = () => {\n const style: Record<string, string> = {};\n if (p.style) {\n if (isString(p.style)) {\n return p.style;\n }\n if (isObject(p.style)) {\n Object.assign(style, p.style);\n }\n }\n return style;\n };\n\n return () => {\n const children: VNode[] = [];\n\n if (slots.default) {\n children.push(\n createVNode(\n 'div',\n {\n class: 'lyt-tooltip__trigger',\n onMouseenter: handleMouseEnter,\n onMouseleave: handleMouseLeave,\n onClick: handleClick,\n onFocus: handleFocus,\n onBlur: handleBlur,\n },\n slots.default(),\n ),\n );\n }\n\n if (state.visible && !p.disabled) {\n const contentChildren: VNode[] = [];\n\n if (p.showArrow) {\n contentChildren.push(\n createVNode(\n 'div',\n {\n class: 'lyt-tooltip__arrow',\n },\n [],\n ),\n );\n }\n\n if (p.content) {\n contentChildren.push(\n createVNode(\n 'div',\n {\n class: 'lyt-tooltip__content',\n },\n [createTextVNode(p.content)],\n ),\n );\n } else if (slots.content) {\n contentChildren.push(\n createVNode(\n 'div',\n {\n class: 'lyt-tooltip__content',\n },\n slots.content(),\n ),\n );\n }\n\n children.push(\n createVNode(\n 'div',\n {\n class: getTooltipClass(),\n style: getTooltipStyle(),\n },\n contentChildren,\n ),\n );\n }\n\n return createVNode(\n 'div',\n mergeA11yProps(\n {\n id: p.id,\n 'aria-label': p.ariaLabel,\n 'aria-describedby': p.ariaDescribedBy,\n },\n {\n class: 'lyt-tooltip-wrapper',\n },\n ),\n children,\n );\n };\n },\n});\n\nexport type { TooltipProps, TooltipSlots };\n","/**\n * @lytjs/ui - Checkbox 组件\n *\n * 复选框组件,用于多选场景\n */\n\nimport type { CheckboxProps, CheckboxSlots, CheckboxSetupProps } from './types';\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject, isArray } from '@lytjs/common-is';\nimport { reactive, computed } from '@lytjs/reactivity';\nimport { getInputControlA11yProps, mergeA11yProps } from '@lytjs/common-a11y';\n\nexport const Checkbox = defineComponent({\n name: 'LytCheckbox',\n\n props: {\n modelValue: { type: Boolean, default: false },\n label: { type: String, default: '' },\n trueLabel: { type: String, default: undefined },\n falseLabel: { type: String, default: undefined },\n disabled: { type: Boolean, default: false },\n checked: { type: Boolean, default: false },\n indeterminate: { type: Boolean, default: false },\n name: { type: String, default: '' },\n id: { type: String, default: '' },\n class: { type: String, default: '' },\n style: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n ariaInvalid: { type: Boolean, default: false },\n ariaRequired: { type: Boolean, default: false },\n tabIndex: { type: Number, default: undefined },\n onChange: { type: Function, default: undefined },\n onKeydown: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots, emit }) {\n const _props = props as CheckboxSetupProps;\n const state = reactive({\n focus: false,\n });\n\n const isChecked = computed(() => {\n if (isArray(_props.modelValue)) {\n return (_props.modelValue as unknown[]).includes(_props.label || _props.trueLabel);\n }\n return _props.modelValue || _props.checked;\n });\n\n const handleChange = (e: Event) => {\n if (_props.disabled) return;\n\n const target = e.target as HTMLInputElement;\n let newValue;\n\n if (isArray(_props.modelValue)) {\n newValue = [...(_props.modelValue as unknown[])];\n const value = _props.label || _props.trueLabel;\n if (target.checked) {\n if (!newValue.includes(value)) {\n newValue.push(value);\n }\n } else {\n const index = newValue.indexOf(value);\n if (index > -1) {\n newValue.splice(index, 1);\n }\n }\n } else {\n newValue = target.checked;\n }\n\n emit('update:modelValue', newValue);\n emit('change', newValue);\n _props.onChange?.(newValue as boolean);\n };\n\n const handleFocus = () => {\n state.focus = true;\n };\n\n const handleBlur = () => {\n state.focus = false;\n };\n\n const getCheckboxClass = () => {\n const classes = ['lyt-checkbox'];\n if (isChecked.value) classes.push('lyt-checkbox--checked');\n if (_props.disabled) classes.push('lyt-checkbox--disabled');\n if (_props.indeterminate) classes.push('lyt-checkbox--indeterminate');\n if (state.focus) classes.push('lyt-checkbox--focus');\n if (_props.class) classes.push(_props.class);\n return classes.join(' ');\n };\n\n const getCheckboxStyle = () => {\n const style: Record<string, string> = {};\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n return () => {\n const children: VNode[] = [];\n const checked = isChecked.value;\n\n const a11yProps = getInputControlA11yProps({\n id: _props.id,\n ariaLabel: _props.ariaLabel,\n ariaDescribedBy: _props.ariaDescribedBy,\n ariaInvalid: _props.ariaInvalid,\n ariaRequired: _props.ariaRequired,\n disabled: _props.disabled,\n tabIndex: _props.tabIndex,\n checked: checked ? true : _props.indeterminate ? ('mixed' as const) : false,\n });\n\n children.push(\n createVNode(\n 'input',\n mergeA11yProps(a11yProps, {\n type: 'checkbox',\n class: 'lyt-checkbox__input',\n checked: checked,\n disabled: _props.disabled,\n name: _props.name,\n onKeydown: _props.onKeydown,\n onChange: handleChange,\n onFocus: handleFocus,\n onBlur: handleBlur,\n }),\n [],\n ),\n );\n\n children.push(\n createVNode(\n 'span',\n {\n class: 'lyt-checkbox__inner',\n },\n [],\n ),\n );\n\n if (_props.label) {\n children.push(\n createVNode(\n 'span',\n {\n class: 'lyt-checkbox__label',\n },\n [createVNode('span', {}, _props.label)],\n ),\n );\n } else if (slots.default) {\n const slotContent = slots.default();\n if (Array.isArray(slotContent)) {\n children.push(\n createVNode(\n 'span',\n {\n class: 'lyt-checkbox__label',\n },\n slotContent as VNode[],\n ),\n );\n }\n }\n\n return createVNode(\n 'label',\n {\n class: getCheckboxClass(),\n style: getCheckboxStyle(),\n },\n children,\n );\n };\n },\n});\n\nexport type { CheckboxProps, CheckboxSlots };\n","/**\n * @lytjs/ui - CheckboxGroup 组件\n *\n * 复选框组组件,用于多选场景\n */\n\nimport type { CheckboxGroupProps, CheckboxGroupSlots, CheckboxGroupSetupProps } from './types';\nimport { defineComponent, type PropType } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\n/**\n * CheckboxGroup 组件\n */\nexport const CheckboxGroup = defineComponent({\n name: 'LytCheckboxGroup',\n\n props: {\n modelValue: { type: Array, default: undefined },\n disabled: { type: Boolean, default: false },\n min: { type: Number, default: undefined },\n max: { type: Number, default: undefined },\n size: { type: String, default: 'default' },\n class: { type: String, default: '' },\n style: {\n type: [String, Object] as unknown as PropType<string | Record<string, string>>,\n default: '',\n },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n ariaRequired: { type: Boolean, default: false },\n id: { type: String, default: '' },\n onChange: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots }) {\n const _props = props as CheckboxGroupSetupProps;\n\n const getCheckboxGroupClass = () => {\n const classes = ['lyt-checkbox-group'];\n if (_props.class) classes.push(_props.class as string);\n return classes.join(' ');\n };\n\n const getCheckboxGroupStyle = () => {\n const style: Record<string, string> = {};\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n return () => {\n const children: VNode[] = [];\n\n if (slots.default) {\n const slotContent = slots.default();\n if (Array.isArray(slotContent)) {\n children.push(...(slotContent as VNode[]));\n } else if (slotContent) {\n children.push(slotContent as VNode);\n }\n }\n\n return createVNode(\n 'div',\n mergeA11yProps(\n {\n id: _props.id as string,\n 'aria-label': _props.ariaLabel as string,\n 'aria-describedby': _props.ariaDescribedBy as string,\n 'aria-required': _props.ariaRequired ? 'true' : undefined,\n role: 'group',\n },\n {\n class: getCheckboxGroupClass(),\n style: getCheckboxGroupStyle(),\n 'aria-disabled': _props.disabled ? 'true' : undefined,\n },\n ),\n children,\n );\n };\n },\n});\n\nexport type { CheckboxGroupProps, CheckboxGroupSlots };\n","/**\n * @lytjs/ui - Radio 组件\n *\n * 单选框组件,用于单选场景\n */\n\nimport type { RadioProps, RadioSlots, RadioSetupProps } from './types';\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { reactive, computed } from '@lytjs/reactivity';\nimport { getInputControlA11yProps, mergeA11yProps } from '@lytjs/common-a11y';\n\nexport const Radio = defineComponent({\n name: 'LytRadio',\n\n props: {\n modelValue: { type: String, default: undefined },\n label: { type: String, default: undefined },\n disabled: { type: Boolean, default: false },\n name: { type: String, default: '' },\n id: { type: String, default: '' },\n class: { type: String, default: '' },\n style: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n ariaInvalid: { type: Boolean, default: false },\n ariaRequired: { type: Boolean, default: false },\n tabIndex: { type: Number, default: undefined },\n onChange: { type: Function, default: undefined },\n onKeydown: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots, emit }) {\n const _props = props as RadioSetupProps;\n const state = reactive({\n focus: false,\n });\n\n const isChecked = computed(() => {\n return _props.modelValue === _props.label;\n });\n\n const handleChange = () => {\n if (_props.disabled) return;\n\n const newValue = _props.label;\n emit('update:modelValue', newValue);\n emit('change', newValue);\n _props.onChange?.(newValue as string | number | boolean);\n };\n\n const handleFocus = () => {\n state.focus = true;\n };\n\n const handleBlur = () => {\n state.focus = false;\n };\n\n const getRadioClass = () => {\n const classes = ['lyt-radio'];\n if (isChecked.value) classes.push('lyt-radio--checked');\n if (_props.disabled) classes.push('lyt-radio--disabled');\n if (state.focus) classes.push('lyt-radio--focus');\n if (_props.class) classes.push(_props.class);\n return classes.join(' ');\n };\n\n const getRadioStyle = () => {\n const style: Record<string, string> = {};\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n return () => {\n const children: VNode[] = [];\n const checked = isChecked.value;\n\n const a11yProps = getInputControlA11yProps({\n checked: checked,\n disabled: _props.disabled,\n id: _props.id,\n ariaLabel: _props.ariaLabel,\n ariaDescribedBy: _props.ariaDescribedBy,\n ariaInvalid: _props.ariaInvalid,\n ariaRequired: _props.ariaRequired,\n tabIndex: _props.tabIndex,\n });\n\n children.push(\n createVNode(\n 'input',\n mergeA11yProps(a11yProps, {\n type: 'radio',\n class: 'lyt-radio__input',\n checked: checked,\n disabled: _props.disabled,\n name: _props.name,\n onKeydown: _props.onKeydown,\n onChange: handleChange,\n onFocus: handleFocus,\n onBlur: handleBlur,\n }),\n [],\n ),\n );\n\n children.push(\n createVNode(\n 'span',\n {\n class: 'lyt-radio__inner',\n },\n [],\n ),\n );\n\n if (_props.label !== undefined) {\n children.push(\n createVNode(\n 'span',\n {\n class: 'lyt-radio__label',\n },\n [createVNode('span', {}, String(_props.label))],\n ),\n );\n } else if (slots.default) {\n const slotContent = slots.default();\n if (Array.isArray(slotContent)) {\n children.push(\n createVNode(\n 'span',\n {\n class: 'lyt-radio__label',\n },\n slotContent as VNode[],\n ),\n );\n }\n }\n\n return createVNode(\n 'label',\n {\n class: getRadioClass(),\n style: getRadioStyle(),\n },\n children,\n );\n };\n },\n});\n\nexport type { RadioProps, RadioSlots };\n","/**\n * @lytjs/ui - RadioGroup 组件\n *\n * 单选框组组件,用于单选场景\n */\n\nimport type { RadioGroupProps, RadioGroupSlots, RadioGroupSetupProps } from './types';\nimport { defineComponent, type PropType } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { getGroupA11yProps, mergeA11yProps } from '@lytjs/common-a11y';\n\nexport const RadioGroup = defineComponent({\n name: 'LytRadioGroup',\n\n props: {\n modelValue: {\n type: [String, Number, Boolean] as unknown as PropType<string | number | boolean>,\n default: undefined,\n },\n disabled: { type: Boolean, default: false },\n size: { type: String, default: 'default' },\n class: { type: String, default: '' },\n style: {\n type: [String, Object] as unknown as PropType<string | Record<string, string>>,\n default: '',\n },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n ariaRequired: { type: Boolean, default: false },\n id: { type: String, default: '' },\n onChange: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots }) {\n const _props = props as RadioGroupSetupProps;\n\n const getRadioGroupClass = () => {\n const classes = ['lyt-radio-group'];\n if (_props.class) classes.push(_props.class as string);\n return classes.join(' ');\n };\n\n const getRadioGroupStyle = () => {\n const style: Record<string, string> = {};\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n return () => {\n const children: VNode[] = [];\n\n if (slots.default) {\n const slotContent = slots.default();\n if (Array.isArray(slotContent)) {\n children.push(...(slotContent as VNode[]));\n } else if (slotContent) {\n children.push(slotContent as VNode);\n }\n }\n\n const a11yProps = getGroupA11yProps({\n role: 'radiogroup',\n id: _props.id as string,\n ariaLabel: _props.ariaLabel as string,\n ariaDescribedBy: _props.ariaDescribedBy as string,\n ariaRequired: _props.ariaRequired,\n });\n\n return createVNode(\n 'div',\n mergeA11yProps(a11yProps, {\n class: getRadioGroupClass(),\n style: getRadioGroupStyle(),\n 'aria-disabled': _props.disabled ? 'true' : undefined,\n }),\n children,\n );\n };\n },\n});\n\nexport type { RadioGroupProps, RadioGroupSlots };\n","/**\n * @lytjs/ui - Switch 组件\n *\n * 开关组件,用于表示两种状态的切换\n */\n\nimport type { SwitchProps, SwitchSlots, SwitchSetupProps } from './types';\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { reactive, computed } from '@lytjs/reactivity';\nimport { getSwitchA11yProps, mergeA11yProps } from '@lytjs/common-a11y';\n\n/**\n * Switch 组件\n */\nexport const Switch = defineComponent({\n name: 'LytSwitch',\n\n props: {\n modelValue: { type: Boolean, default: false },\n disabled: { type: Boolean, default: false },\n loading: { type: Boolean, default: false },\n size: { type: String, default: 'default' },\n activeText: { type: String, default: '' },\n inactiveText: { type: String, default: '' },\n activeColor: { type: String, default: '' },\n inactiveColor: { type: String, default: '' },\n activeValue: { type: Boolean, default: true },\n inactiveValue: { type: Boolean, default: false },\n name: { type: String, default: '' },\n id: { type: String, default: '' },\n class: { type: String, default: '' },\n style: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n ariaInvalid: { type: Boolean, default: false },\n ariaRequired: { type: Boolean, default: false },\n tabIndex: { type: Number, default: undefined },\n onChange: { type: Function, default: undefined },\n onKeydown: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots, emit }) {\n const _props = props as SwitchSetupProps;\n const state = reactive({\n focus: false,\n });\n\n const isChecked = computed(() => {\n return _props.modelValue === _props.activeValue;\n });\n\n const handleClick = () => {\n if (_props.disabled || _props.loading) return;\n\n const newValue = isChecked.value ? _props.inactiveValue : _props.activeValue;\n emit('update:modelValue', newValue);\n emit('change', newValue);\n _props.onChange?.(newValue as boolean);\n };\n\n const handleKeydown = (event: KeyboardEvent) => {\n if (_props.disabled || _props.loading) return;\n\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n const newValue = isChecked.value ? _props.inactiveValue : _props.activeValue;\n emit('update:modelValue', newValue);\n emit('change', newValue);\n _props.onChange?.(newValue as boolean);\n }\n\n _props.onKeydown?.(event);\n };\n\n const handleFocus = () => {\n state.focus = true;\n };\n\n const handleBlur = () => {\n state.focus = false;\n };\n\n const getSwitchClass = () => {\n const classes = ['lyt-switch'];\n if (isChecked.value) classes.push('lyt-switch--checked');\n if (_props.disabled) classes.push('lyt-switch--disabled');\n if (_props.loading) classes.push('lyt-switch--loading');\n if (_props.size !== 'default') classes.push(`lyt-switch--${_props.size}`);\n if (state.focus) classes.push('lyt-switch--focus');\n if (_props.class) classes.push(_props.class);\n return classes.join(' ');\n };\n\n const getSwitchStyle = () => {\n const style: Record<string, string> = {};\n if (_props.activeColor && isChecked.value) {\n style.backgroundColor = _props.activeColor;\n }\n if (_props.inactiveColor && !isChecked.value) {\n style.backgroundColor = _props.inactiveColor;\n }\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n return () => {\n const children: VNode[] = [];\n\n const coreChildren: VNode[] = [];\n\n if (isChecked.value && _props.activeText) {\n coreChildren.push(\n createVNode(\n 'span',\n {\n class: 'lyt-switch__label lyt-switch__label--left',\n },\n [createVNode('span', {}, _props.activeText)],\n ),\n );\n } else if (!isChecked.value && _props.inactiveText) {\n coreChildren.push(\n createVNode(\n 'span',\n {\n class: 'lyt-switch__label lyt-switch__label--left',\n },\n [createVNode('span', {}, _props.inactiveText)],\n ),\n );\n } else if (slots.active && isChecked.value) {\n const slotContent = slots.active();\n if (Array.isArray(slotContent)) {\n coreChildren.push(\n createVNode(\n 'span',\n {\n class: 'lyt-switch__label lyt-switch__label--left',\n },\n slotContent as VNode[],\n ),\n );\n }\n } else if (slots.inactive && !isChecked.value) {\n const slotContent = slots.inactive();\n if (Array.isArray(slotContent)) {\n coreChildren.push(\n createVNode(\n 'span',\n {\n class: 'lyt-switch__label lyt-switch__label--left',\n },\n slotContent as VNode[],\n ),\n );\n }\n }\n\n const buttonChildren: VNode[] = [];\n if (_props.loading) {\n buttonChildren.push(createVNode('span', {}, '◌'));\n }\n coreChildren.push(\n createVNode(\n 'span',\n {\n class: 'lyt-switch__core',\n },\n [\n createVNode(\n 'span',\n {\n class: 'lyt-switch__button',\n },\n buttonChildren,\n ),\n ],\n ),\n );\n\n if (isChecked.value && _props.activeText) {\n coreChildren.push(\n createVNode(\n 'span',\n {\n class: 'lyt-switch__label lyt-switch__label--right',\n },\n [createVNode('span', {}, _props.activeText)],\n ),\n );\n } else if (!isChecked.value && _props.inactiveText) {\n coreChildren.push(\n createVNode(\n 'span',\n {\n class: 'lyt-switch__label lyt-switch__label--right',\n },\n [createVNode('span', {}, _props.inactiveText)],\n ),\n );\n }\n\n children.push(\n createVNode(\n 'div',\n {\n class: 'lyt-switch__wrapper',\n },\n coreChildren,\n ),\n );\n\n const a11yProps = getSwitchA11yProps({\n checked: isChecked.value,\n disabled: _props.disabled,\n id: _props.id,\n ariaLabel: _props.ariaLabel,\n ariaDescribedBy: _props.ariaDescribedBy,\n ariaInvalid: _props.ariaInvalid,\n ariaRequired: _props.ariaRequired,\n tabIndex: _props.tabIndex,\n });\n\n return createVNode(\n 'div',\n mergeA11yProps(a11yProps, {\n class: getSwitchClass(),\n style: getSwitchStyle(),\n onClick: handleClick,\n onKeydown: handleKeydown,\n onFocus: handleFocus,\n onBlur: handleBlur,\n }),\n children,\n );\n };\n },\n});\n\nexport type { SwitchProps, SwitchSlots };\n","/**\n * @lytjs/ui - InputNumber 组件\n *\n * 数字输入框组件,用于数值输入\n */\n\nimport type { InputNumberProps, InputNumberSlots, InputNumberSetupProps } from './types';\nimport { defineComponent } from '@lytjs/component';\nimport { createVNode, createTextVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { reactive, computed, watch } from '@lytjs/reactivity';\nimport { getSpinbuttonA11yProps, getButtonA11yProps, mergeA11yProps } from '@lytjs/common-a11y';\n\n/**\n * InputNumber 组件\n */\nexport const InputNumber = defineComponent({\n name: 'LytInputNumber',\n\n props: {\n modelValue: { type: Number, default: undefined },\n min: { type: Number, default: -Infinity },\n max: { type: Number, default: Infinity },\n step: { type: Number, default: 1 },\n stepStrictly: { type: Boolean, default: false },\n precision: { type: Number, default: undefined },\n size: { type: String, default: 'default' },\n disabled: { type: Boolean, default: false },\n controls: { type: Boolean, default: true },\n controlsPosition: { type: String, default: '' },\n name: { type: String, default: '' },\n label: { type: String, default: '' },\n placeholder: { type: String, default: '' },\n class: { type: String, default: '' },\n style: { type: String, default: '' },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n ariaRequired: { type: Boolean, default: false },\n ariaInvalid: { type: Boolean, default: false },\n tabIndex: { type: Number, default: undefined },\n onChange: { type: Function, default: undefined },\n onInput: { type: Function, default: undefined },\n onKeydown: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { emit }) {\n const _props = props as InputNumberSetupProps;\n const state = reactive({\n inputValue: _props.modelValue,\n focus: false,\n });\n\n const displayValue = computed(() => {\n if (state.inputValue === undefined || state.inputValue === null) {\n return '';\n }\n if (_props.precision !== undefined) {\n return state.inputValue.toFixed(_props.precision);\n }\n return String(state.inputValue);\n });\n\n const isAtMin = computed(() => {\n return state.inputValue !== undefined && state.inputValue <= _props.min;\n });\n\n const isAtMax = computed(() => {\n return state.inputValue !== undefined && state.inputValue >= _props.max;\n });\n\n const ensurePrecision = (value: number): number => {\n if (_props.precision !== undefined) {\n const factor = Math.pow(10, _props.precision);\n return Math.round(value * factor) / factor;\n }\n return value;\n };\n\n const ensureStep = (value: number): number => {\n if (_props.stepStrictly) {\n const steps = Math.round(value / _props.step);\n return ensurePrecision(steps * _props.step);\n }\n return ensurePrecision(value);\n };\n\n const clampValue = (value: number): number => {\n let result = value;\n if (result < _props.min) result = _props.min;\n if (result > _props.max) result = _props.max;\n return ensureStep(result);\n };\n\n const setValue = (value: number | undefined) => {\n if (value === undefined) {\n state.inputValue = undefined;\n emit('update:modelValue', undefined);\n emit('change', undefined);\n _props.onChange?.(undefined);\n return;\n }\n\n const newValue = clampValue(value);\n state.inputValue = newValue;\n emit('update:modelValue', newValue);\n emit('change', newValue);\n _props.onChange?.(newValue);\n };\n\n const handleIncrement = () => {\n if (_props.disabled || isAtMax.value) return;\n const newValue = (state.inputValue || 0) + _props.step;\n setValue(newValue);\n };\n\n const handleDecrement = () => {\n if (_props.disabled || isAtMin.value) return;\n const newValue = (state.inputValue || 0) - _props.step;\n setValue(newValue);\n };\n\n const handleInput = (e: Event) => {\n const target = e.target as HTMLInputElement;\n const value = target.value;\n\n if (value === '') {\n state.inputValue = undefined;\n emit('update:modelValue', undefined);\n emit('input', undefined);\n _props.onInput?.(undefined);\n return;\n }\n\n const numValue = parseFloat(value);\n if (!isNaN(numValue)) {\n state.inputValue = numValue;\n emit('input', numValue);\n _props.onInput?.(numValue);\n }\n };\n\n const handleBlur = (e: Event) => {\n state.focus = false;\n const target = e.target as HTMLInputElement;\n const value = target.value;\n\n if (value === '') {\n setValue(undefined);\n } else {\n const numValue = parseFloat(value);\n if (!isNaN(numValue)) {\n setValue(numValue);\n }\n }\n };\n\n const handleFocus = () => {\n state.focus = true;\n };\n\n const handleKeydown = (e: KeyboardEvent) => {\n switch (e.key) {\n case 'ArrowUp':\n e.preventDefault();\n handleIncrement();\n break;\n case 'ArrowDown':\n e.preventDefault();\n handleDecrement();\n break;\n case 'Home':\n if (_props.min !== -Infinity) {\n e.preventDefault();\n setValue(_props.min);\n }\n break;\n case 'End':\n if (_props.max !== Infinity) {\n e.preventDefault();\n setValue(_props.max);\n }\n break;\n }\n _props.onKeydown?.(e);\n };\n\n watch(\n () => _props.modelValue,\n (newValue) => {\n if (newValue !== state.inputValue) {\n state.inputValue = newValue;\n }\n },\n );\n\n const getInputNumberClass = () => {\n const classes = ['lyt-input-number'];\n if (_props.size !== 'default') classes.push(`lyt-input-number--${_props.size}`);\n if (_props.disabled) classes.push('lyt-input-number--disabled');\n if (state.focus) classes.push('lyt-input-number--focus');\n if (_props.class) classes.push(_props.class);\n return classes.join(' ');\n };\n\n const getInputNumberStyle = () => {\n const style: Record<string, string> = {};\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n return () => {\n const children: VNode[] = [];\n\n // 减号按钮\n if (_props.controls) {\n const decreaseBtnProps = getButtonA11yProps({\n ariaLabel: '减少',\n disabled: _props.disabled || isAtMin.value,\n });\n children.push(\n createVNode(\n 'span',\n mergeA11yProps(decreaseBtnProps, {\n class: `lyt-input-number__decrease ${isAtMin.value ? 'is-disabled' : ''}`,\n onClick: handleDecrement,\n }),\n [createTextVNode('−')],\n ),\n );\n }\n\n // 加号按钮\n if (_props.controls) {\n const increaseBtnProps = getButtonA11yProps({\n ariaLabel: '增加',\n disabled: _props.disabled || isAtMax.value,\n });\n children.push(\n createVNode(\n 'span',\n mergeA11yProps(increaseBtnProps, {\n class: `lyt-input-number__increase ${isAtMax.value ? 'is-disabled' : ''}`,\n onClick: handleIncrement,\n }),\n [createTextVNode('+')],\n ),\n );\n }\n\n // 输入框\n const spinbuttonProps = getSpinbuttonA11yProps({\n id: _props.id,\n ariaLabel: _props.ariaLabel,\n ariaDescribedBy: _props.ariaDescribedBy,\n ariaRequired: _props.ariaRequired,\n ariaInvalid: _props.ariaInvalid,\n disabled: _props.disabled,\n tabIndex: _props.tabIndex,\n value: state.inputValue,\n min: _props.min === -Infinity ? undefined : _props.min,\n max: _props.max === Infinity ? undefined : _props.max,\n });\n children.push(\n createVNode(\n 'input',\n mergeA11yProps(spinbuttonProps, {\n type: 'text',\n class: 'lyt-input-number__input',\n value: displayValue.value,\n disabled: _props.disabled,\n placeholder: _props.placeholder,\n name: _props.name,\n onInput: handleInput,\n onBlur: handleBlur,\n onFocus: handleFocus,\n onKeydown: handleKeydown,\n }),\n [],\n ),\n );\n\n return createVNode(\n 'div',\n {\n class: getInputNumberClass(),\n style: getInputNumberStyle(),\n },\n children,\n );\n };\n },\n});\n\nexport type { InputNumberProps, InputNumberSlots };\n","/**\n * @lytjs/ui - Progress 组件\n *\n * 进度条组件,用于显示操作进度\n */\n\nimport type { ProgressProps, ProgressSlots, ProgressSetupProps } from './types';\nimport { defineComponent, type PropType } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject, isArray } from '@lytjs/common-is';\nimport { computed } from '@lytjs/reactivity';\n\nexport const Progress = defineComponent({\n name: 'LytProgress',\n\n props: {\n percentage: { type: Number, default: 0 },\n type: { type: String, default: 'line' },\n status: { type: String, default: '' },\n strokeWidth: { type: Number, default: 6 },\n textInside: { type: Boolean, default: false },\n showText: { type: Boolean, default: true },\n color: {\n type: [String, Array, Object] as unknown as PropType<\n string | string[] | Record<string, string>\n >,\n default: '',\n },\n width: { type: Number, default: 126 },\n strokeLinecap: { type: String, default: 'round' },\n format: { type: Function, default: undefined },\n class: { type: String, default: '' },\n style: {\n type: [String, Object] as unknown as PropType<string | Record<string, string>>,\n default: '',\n },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>) {\n const _props = props as ProgressSetupProps;\n\n const validPercentage = computed(() => {\n let p = _props.percentage;\n if (p < 0) p = 0;\n if (p > 100) p = 100;\n return p;\n });\n\n const getStatus = computed(() => {\n if (_props.status) return _props.status;\n if (validPercentage.value === 100) return 'success';\n return '';\n });\n\n const getBarStyle = computed(() => {\n const style: Record<string, string> = {\n width: `${validPercentage.value}%`,\n };\n\n if (_props.color) {\n if (isString(_props.color)) {\n style.backgroundColor = _props.color;\n } else if (isObject(_props.color) && !isArray(_props.color)) {\n const colorObj = _props.color as Record<string, string>;\n for (const key in colorObj) {\n const percentage = parseInt(key);\n if (validPercentage.value >= percentage) {\n const colorValue = colorObj[key];\n if (colorValue) {\n style.backgroundColor = colorValue;\n }\n }\n }\n }\n }\n\n return style;\n });\n\n const getProgressClass = () => {\n const classes = ['lyt-progress'];\n if (_props.type) classes.push(`lyt-progress--${_props.type}`);\n const status = getStatus.value;\n if (status) classes.push(`lyt-progress--${status}`);\n if (_props.class) classes.push(_props.class as string);\n return classes.join(' ');\n };\n\n const getProgressStyle = () => {\n const style: Record<string, string> = {};\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n const formatText = () => {\n if (_props.format) {\n return _props.format(validPercentage.value);\n }\n return `${validPercentage.value}%`;\n };\n\n const renderLine = () => {\n const children: VNode[] = [];\n\n const barStyle = getBarStyle.value;\n const innerContent: VNode[] = [];\n if (_props.textInside && _props.showText) {\n innerContent.push(\n createVNode('div', { class: 'lyt-progress__inner-text' }, [\n createVNode('span', {}, formatText()),\n ]),\n );\n }\n\n children.push(\n createVNode(\n 'div',\n {\n class: 'lyt-progress__outer',\n },\n [\n createVNode(\n 'div',\n {\n class: 'lyt-progress__inner',\n style: barStyle,\n },\n innerContent,\n ),\n ],\n ),\n );\n\n if (_props.showText && !_props.textInside) {\n children.push(\n createVNode(\n 'div',\n {\n class: 'lyt-progress__text',\n },\n [createVNode('span', {}, formatText())],\n ),\n );\n }\n\n return children;\n };\n\n const renderCircle = () => {\n const radius = 50 - _props.strokeWidth / 2;\n const circumference = 2 * Math.PI * radius;\n const strokeDashoffset = circumference - (validPercentage.value / 100) * circumference;\n const barStyle = getBarStyle.value;\n\n const children: VNode[] = [];\n\n children.push(\n createVNode(\n 'svg',\n {\n class: 'lyt-progress__circle',\n viewBox: '0 0 100 100',\n width: _props.width,\n height: _props.width,\n },\n [\n createVNode(\n 'path',\n {\n class: 'lyt-progress__circle-trail',\n d: `M 50 50 m 0,-${radius} a ${radius},${radius} 0 1 1 0,${radius * 2} a ${radius},${radius} 0 1 1 0,-${radius * 2}`,\n stroke: '#e5e9f2',\n strokeWidth: _props.strokeWidth,\n fill: 'none',\n },\n [],\n ),\n createVNode(\n 'path',\n {\n class: 'lyt-progress__circle-path',\n d: `M 50 50 m 0,-${radius} a ${radius},${radius} 0 1 1 0,${radius * 2} a ${radius},${radius} 0 1 1 0,-${radius * 2}`,\n stroke: barStyle.backgroundColor || '#409eff',\n strokeWidth: _props.strokeWidth,\n fill: 'none',\n strokeDasharray: `${circumference}px, ${circumference}px`,\n strokeDashoffset: `${strokeDashoffset}px`,\n strokeLinecap: _props.strokeLinecap,\n },\n [],\n ),\n ],\n ),\n );\n\n if (_props.showText) {\n children.push(\n createVNode(\n 'div',\n {\n class: 'lyt-progress__text',\n },\n [createVNode('span', {}, formatText())],\n ),\n );\n }\n\n return children;\n };\n\n return () => {\n let content: VNode[];\n\n if (_props.type === 'circle' || _props.type === 'dashboard') {\n content = renderCircle();\n } else {\n content = renderLine();\n }\n\n return createVNode(\n 'div',\n {\n id: _props.id as string,\n 'aria-label': (_props.ariaLabel as string) || 'Progress',\n 'aria-describedby': _props.ariaDescribedBy as string,\n role: 'progressbar',\n 'aria-valuenow': String(validPercentage.value),\n 'aria-valuemin': '0',\n 'aria-valuemax': '100',\n class: getProgressClass(),\n style: getProgressStyle(),\n },\n content,\n );\n };\n },\n});\n\nexport type { ProgressProps, ProgressSlots };\n","/**\n * @lytjs/ui - Slider 组件\n *\n * 滑块组件,用于在给定范围内选择一个值\n */\n\nimport type { SliderProps, SliderSlots, SliderSetupProps } from './types';\nimport { defineComponent, type PropType } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { reactive, computed, watch } from '@lytjs/reactivity';\nimport { getSliderA11yProps, mergeA11yProps } from '@lytjs/common-a11y';\n\nexport const Slider = defineComponent({\n name: 'LytSlider',\n\n props: {\n modelValue: { type: Number, default: 0 },\n min: { type: Number, default: 0 },\n max: { type: Number, default: 100 },\n step: { type: Number, default: 1 },\n showInput: { type: Boolean, default: false },\n showInputControls: { type: Boolean, default: true },\n inputSize: { type: String, default: 'default' },\n showStops: { type: Boolean, default: false },\n showTooltip: { type: Boolean, default: true },\n formatTooltip: { type: Function, default: undefined },\n disabled: { type: Boolean, default: false },\n range: { type: Boolean, default: false },\n vertical: { type: Boolean, default: false },\n height: { type: String, default: '' },\n label: { type: String, default: '' },\n class: { type: String, default: '' },\n style: {\n type: [String, Object] as unknown as PropType<string | Record<string, string>>,\n default: '',\n },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n ariaRequired: { type: Boolean, default: false },\n ariaInvalid: { type: Boolean, default: false },\n tabIndex: { type: Number, default: undefined },\n onChange: { type: Function, default: undefined },\n onInput: { type: Function, default: undefined },\n onKeydown: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { emit }) {\n const _props = props as SliderSetupProps;\n\n const state = reactive({\n firstValue: 0,\n secondValue: 0,\n dragging: false,\n showTooltip: false,\n });\n\n const initValues = () => {\n if (_props.range) {\n if (Array.isArray(_props.modelValue)) {\n state.firstValue = _props.modelValue[0] || _props.min;\n state.secondValue = _props.modelValue[1] || _props.max;\n } else {\n state.firstValue = _props.min;\n state.secondValue = _props.max;\n }\n } else {\n if (typeof _props.modelValue === 'number') {\n state.firstValue = _props.modelValue;\n } else {\n state.firstValue = _props.min;\n }\n }\n };\n\n initValues();\n\n watch(\n () => _props.modelValue,\n () => {\n initValues();\n },\n );\n\n const formatValue = (value: number) => {\n if (_props.formatTooltip) {\n return _props.formatTooltip(value);\n }\n return String(value);\n };\n\n const getValueByPercent = (percent: number) => {\n const range = _props.max - _props.min;\n let value = (percent / 100) * range + _props.min;\n\n if (_props.step > 0) {\n value = Math.round(value / _props.step) * _props.step;\n }\n\n value = Math.max(_props.min, Math.min(_props.max, value));\n return value;\n };\n\n const getPercentByValue = (value: number) => {\n const range = _props.max - _props.min;\n return ((value - _props.min) / range) * 100;\n };\n\n const firstPercent = computed(() => getPercentByValue(state.firstValue));\n const secondPercent = computed(() => getPercentByValue(state.secondValue));\n\n const clampValue = (value: number) => {\n return Math.max(_props.min, Math.min(_props.max, value));\n };\n\n const handleKeydown = (event: KeyboardEvent) => {\n if (_props.disabled) return;\n\n let newValue: number;\n\n switch (event.key) {\n case 'ArrowLeft':\n case 'ArrowDown':\n event.preventDefault();\n newValue = clampValue(state.firstValue - _props.step);\n break;\n case 'ArrowRight':\n case 'ArrowUp':\n event.preventDefault();\n newValue = clampValue(state.firstValue + _props.step);\n break;\n case 'Home':\n event.preventDefault();\n newValue = _props.min;\n break;\n case 'End':\n event.preventDefault();\n newValue = _props.max;\n break;\n default:\n _props.onKeydown?.(event);\n return;\n }\n\n if (newValue !== state.firstValue) {\n state.firstValue = newValue;\n state.showTooltip = true;\n\n if (!_props.range) {\n emit('update:modelValue', state.firstValue);\n emit('input', state.firstValue);\n _props.onInput?.(state.firstValue);\n }\n\n setTimeout(() => {\n state.showTooltip = false;\n }, 1500);\n }\n\n _props.onKeydown?.(event);\n };\n\n const handleMouseDown = (_event: MouseEvent) => {\n if (_props.disabled) return;\n state.dragging = true;\n state.showTooltip = true;\n document.addEventListener('mousemove', handleMouseMove);\n document.addEventListener('mouseup', handleMouseUp);\n };\n\n const handleMouseMove = (event: MouseEvent) => {\n if (!state.dragging) return;\n\n const slider = document.querySelector('.lyt-slider');\n if (!slider) return;\n\n const rect = slider.getBoundingClientRect();\n let percent;\n\n if (_props.vertical) {\n percent = ((rect.bottom - event.clientY) / rect.height) * 100;\n } else {\n percent = ((event.clientX - rect.left) / rect.width) * 100;\n }\n\n percent = Math.max(0, Math.min(100, percent));\n const newValue = getValueByPercent(percent);\n\n if (_props.range) {\n const diff1 = Math.abs(newValue - state.firstValue);\n const diff2 = Math.abs(newValue - state.secondValue);\n\n if (diff1 < diff2) {\n state.firstValue = Math.min(newValue, state.secondValue);\n } else {\n state.secondValue = Math.max(newValue, state.firstValue);\n }\n\n const newModelValue: number | number[] = _props.range\n ? [state.firstValue, state.secondValue]\n : state.firstValue;\n emit('update:modelValue', newModelValue);\n emit('input', newModelValue);\n (_props.onInput as ((value: number | number[]) => void) | undefined)?.(newModelValue);\n } else {\n state.firstValue = newValue;\n emit('update:modelValue', state.firstValue);\n emit('input', state.firstValue);\n (_props.onInput as ((value: number) => void) | undefined)?.(state.firstValue);\n }\n };\n\n const handleMouseUp = () => {\n if (!state.dragging) return;\n state.dragging = false;\n state.showTooltip = false;\n document.removeEventListener('mousemove', handleMouseMove);\n document.removeEventListener('mouseup', handleMouseUp);\n\n if (_props.range) {\n const newModelValue: number[] = [state.firstValue, state.secondValue];\n emit('change', newModelValue);\n (_props.onChange as ((value: number[]) => void) | undefined)?.(newModelValue);\n } else {\n emit('change', state.firstValue);\n (_props.onChange as ((value: number) => void) | undefined)?.(state.firstValue);\n }\n };\n\n const getSliderClass = () => {\n const classes = ['lyt-slider'];\n if (_props.vertical) classes.push('lyt-slider--vertical');\n if (_props.disabled) classes.push('lyt-slider--disabled');\n if (_props.class) classes.push(_props.class);\n return classes.join(' ');\n };\n\n const getSliderStyle = () => {\n const style: Record<string, string> = {};\n if (_props.vertical && _props.height) {\n style.height = _props.height;\n }\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n const getStops = () => {\n if (!_props.showStops) return [];\n\n const stops: VNode[] = [];\n const range = _props.max - _props.min;\n const stepCount = Math.floor(range / _props.step);\n\n for (let i = 0; i <= stepCount; i++) {\n const percent = (i / stepCount) * 100;\n stops.push(\n createVNode(\n 'div',\n {\n class: 'lyt-slider__stop',\n style: _props.vertical ? { bottom: `${percent}%` } : { left: `${percent}%` },\n },\n [],\n ),\n );\n }\n\n return stops;\n };\n\n return () => {\n const firstPct = firstPercent.value;\n const secondPct = secondPercent.value;\n const children: VNode[] = [];\n\n const runwayChildren: VNode[] = [];\n\n runwayChildren.push(\n createVNode(\n 'div',\n {\n class: 'lyt-slider__bar',\n style: _props.range\n ? _props.vertical\n ? { bottom: `${firstPct}%`, height: `${secondPct - firstPct}%` }\n : { left: `${firstPct}%`, width: `${secondPct - firstPct}%` }\n : _props.vertical\n ? { bottom: '0%', height: `${firstPct}%` }\n : { left: '0%', width: `${firstPct}%` },\n },\n [],\n ),\n );\n\n const stops = getStops();\n runwayChildren.push(...stops);\n\n if (_props.range) {\n const tooltip1 = _props.showTooltip\n ? createVNode('div', { class: 'lyt-slider__tooltip' }, [\n createVNode('span', {}, formatValue(state.firstValue)),\n ])\n : null;\n const tooltip2 = _props.showTooltip\n ? createVNode('div', { class: 'lyt-slider__tooltip' }, [\n createVNode('span', {}, formatValue(state.secondValue)),\n ])\n : null;\n\n if (tooltip1) {\n runwayChildren.push(\n createVNode(\n 'div',\n mergeA11yProps(\n getSliderA11yProps({\n ariaLabel: _props.ariaLabel || 'Left value',\n disabled: _props.disabled,\n value: state.firstValue,\n min: _props.min,\n max: _props.max,\n }),\n {\n class: 'lyt-slider__button',\n style: _props.vertical ? { bottom: `${firstPct}%` } : { left: `${firstPct}%` },\n onKeydown: handleKeydown,\n },\n ),\n [tooltip1],\n ),\n );\n }\n\n if (tooltip2) {\n runwayChildren.push(\n createVNode(\n 'div',\n mergeA11yProps(\n getSliderA11yProps({\n ariaLabel: 'Right value',\n disabled: _props.disabled,\n value: state.secondValue,\n min: _props.min,\n max: _props.max,\n }),\n {\n class: 'lyt-slider__button',\n style: _props.vertical ? { bottom: `${secondPct}%` } : { left: `${secondPct}%` },\n onKeydown: handleKeydown,\n },\n ),\n [tooltip2],\n ),\n );\n }\n } else {\n const tooltip = _props.showTooltip\n ? createVNode('div', { class: 'lyt-slider__tooltip' }, [\n createVNode('span', {}, formatValue(state.firstValue)),\n ])\n : null;\n\n if (tooltip) {\n runwayChildren.push(\n createVNode(\n 'div',\n mergeA11yProps(\n getSliderA11yProps({\n ariaLabel: _props.ariaLabel || 'Value',\n ariaDescribedBy: _props.ariaDescribedBy,\n ariaRequired: _props.ariaRequired,\n ariaInvalid: _props.ariaInvalid,\n disabled: _props.disabled,\n tabIndex: _props.tabIndex,\n value: state.firstValue,\n min: _props.min,\n max: _props.max,\n }),\n {\n class: 'lyt-slider__button',\n style: _props.vertical ? { bottom: `${firstPct}%` } : { left: `${firstPct}%` },\n onKeydown: handleKeydown,\n },\n ),\n [tooltip],\n ),\n );\n }\n }\n\n children.push(\n createVNode(\n 'div',\n {\n class: 'lyt-slider__runway',\n onMousedown: handleMouseDown,\n },\n runwayChildren,\n ),\n );\n\n if (_props.showInput && !_props.range) {\n children.push(\n createVNode(\n 'div',\n {\n class: 'lyt-slider__input',\n },\n [\n createVNode('input', {\n type: 'number',\n class: `lyt-input lyt-input--${_props.inputSize}`,\n value: state.firstValue,\n min: _props.min,\n max: _props.max,\n step: _props.step,\n disabled: _props.disabled,\n onInput: (e: Event) => {\n const input = e.target as HTMLInputElement;\n const value = parseFloat(input.value);\n if (!isNaN(value)) {\n state.firstValue = Math.max(_props.min, Math.min(_props.max, value));\n emit('update:modelValue', state.firstValue);\n }\n },\n }),\n ],\n ),\n );\n }\n\n return createVNode(\n 'div',\n {\n class: getSliderClass(),\n style: getSliderStyle(),\n id: _props.id,\n onKeydown: handleKeydown,\n },\n children,\n );\n };\n },\n});\n\nexport type { SliderProps, SliderSlots };\n","/**\n * @lytjs/ui - Avatar 组件\n *\n * 头像组件,用于显示用户头像\n */\n\nimport type { AvatarProps, AvatarSlots, AvatarSetupProps } from './types';\nimport { defineComponent, type PropType } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { signal } from '@lytjs/reactivity';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\nexport const Avatar = defineComponent({\n name: 'LytAvatar',\n\n props: {\n size: { type: [Number, String] as unknown as PropType<number | string>, default: 'default' },\n shape: { type: String, default: 'circle' },\n icon: { type: String, default: '' },\n src: { type: String, default: '' },\n srcSet: { type: String, default: '' },\n alt: { type: String, default: '' },\n fit: { type: String, default: 'cover' },\n class: { type: String, default: '' },\n style: {\n type: [String, Object] as unknown as PropType<string | Record<string, string>>,\n default: '',\n },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n onError: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots }) {\n const _props = props as AvatarSetupProps;\n const isImageExist = signal(true);\n\n const getSize = () => {\n if (typeof _props.size === 'number') {\n return `${_props.size}px`;\n }\n const sizeMap: Record<string, string> = {\n small: '32px',\n default: '40px',\n large: '48px',\n };\n return sizeMap[_props.size] || '40px';\n };\n\n const handleError = () => {\n if (_props.onError) {\n const result = _props.onError();\n if (result === false) {\n return;\n }\n }\n isImageExist.set(false);\n };\n\n const getAvatarClass = () => {\n const classes = ['lyt-avatar'];\n if (_props.shape) classes.push(`lyt-avatar--${_props.shape}`);\n if (typeof _props.size === 'string') {\n classes.push(`lyt-avatar--${_props.size}`);\n }\n if (_props.class) classes.push(_props.class);\n return classes.join(' ');\n };\n\n const getAvatarStyle = () => {\n const style: Record<string, string> = {\n height: getSize(),\n width: getSize(),\n };\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n return () => {\n const children: VNode[] = [];\n\n if (_props.src && isImageExist()) {\n children.push(\n createVNode(\n 'img',\n {\n class: 'lyt-avatar__img',\n src: _props.src,\n srcset: _props.srcSet || undefined,\n alt: _props.alt || undefined,\n style: {\n objectFit: _props.fit,\n },\n onError: handleError,\n },\n [],\n ),\n );\n } else if (_props.icon) {\n children.push(\n createVNode(\n 'span',\n {\n class: ['lyt-avatar__icon', _props.icon],\n },\n [],\n ),\n );\n } else if (slots.default) {\n const slotContent = slots.default();\n if (Array.isArray(slotContent)) {\n children.push(...(slotContent as VNode[]));\n } else if (slotContent) {\n children.push(slotContent as VNode);\n }\n }\n\n return createVNode(\n 'span',\n mergeA11yProps(\n {\n id: _props.id,\n 'aria-label': _props.ariaLabel,\n 'aria-describedby': _props.ariaDescribedBy,\n },\n {\n class: getAvatarClass(),\n style: getAvatarStyle(),\n },\n ),\n children,\n );\n };\n },\n});\n\nexport type { AvatarProps, AvatarSlots };\n","/**\n * @lytjs/ui - Card 组件\n *\n * 卡片组件,用于包裹内容\n */\n\nimport type { CardProps, CardSlots, CardSetupProps } from './types';\nimport { defineComponent, type PropType } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\nexport const Card = defineComponent({\n name: 'LytCard',\n\n props: {\n header: { type: String, default: '' },\n bodyStyle: { type: Object as PropType<Record<string, string>>, default: () => ({}) },\n shadow: { type: String, default: 'always' },\n class: { type: String, default: '' },\n style: {\n type: [String, Object] as unknown as PropType<string | Record<string, string>>,\n default: '',\n },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>, { slots }) {\n const _props = props as CardSetupProps;\n\n const getCardClass = () => {\n const classes = ['lyt-card'];\n if (_props.shadow) classes.push(`lyt-card--shadow-${_props.shadow}`);\n if (_props.class) classes.push(_props.class);\n return classes.join(' ');\n };\n\n const getCardStyle = () => {\n const style: Record<string, string> = {};\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n return () => {\n const children: VNode[] = [];\n\n if (_props.header || slots.header) {\n const headerContent: VNode[] = [];\n if (slots.header) {\n const slotContent = slots.header();\n if (Array.isArray(slotContent)) {\n headerContent.push(...(slotContent as VNode[]));\n } else if (slotContent) {\n headerContent.push(slotContent as VNode);\n }\n } else if (_props.header) {\n headerContent.push(createVNode('span', {}, _props.header));\n }\n children.push(\n createVNode(\n 'div',\n {\n class: 'lyt-card__header',\n },\n headerContent,\n ),\n );\n }\n\n const bodyContent: VNode[] = [];\n if (slots.default) {\n const slotContent = slots.default();\n if (Array.isArray(slotContent)) {\n bodyContent.push(...(slotContent as VNode[]));\n } else if (slotContent) {\n bodyContent.push(slotContent as VNode);\n }\n }\n children.push(\n createVNode(\n 'div',\n {\n class: 'lyt-card__body',\n style: _props.bodyStyle as string | Record<string, string>,\n },\n bodyContent,\n ),\n );\n\n return createVNode(\n 'div',\n mergeA11yProps(\n {\n id: _props.id,\n 'aria-label': _props.ariaLabel,\n 'aria-describedby': _props.ariaDescribedBy,\n },\n {\n class: getCardClass(),\n style: getCardStyle(),\n },\n ),\n children,\n );\n };\n },\n});\n\nexport type { CardProps, CardSlots };\n","/**\n * @lytjs/ui - Timeline 时间轴组件\n *\n * 时间轴组件,用于按时间顺序展示事件\n */\n\nimport type { TimelineProps, TimelineSlots, TimelineSetupProps } from './types';\nimport { defineComponent, type PropType } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\n/**\n * Timeline 时间轴组件\n */\nexport const Timeline = defineComponent({\n name: 'LytTimeline',\n\n props: {\n reverse: { type: Boolean, default: false },\n mode: { type: String as () => 'left' | 'right' | 'alternate', default: 'left' },\n class: { type: String, default: '' },\n style: {\n type: [String, Object] as unknown as PropType<string | Record<string, string>>,\n default: '',\n },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>, { slots }) {\n const _props = props as TimelineSetupProps;\n\n const getTimelineClass = () => {\n const classes = ['lyt-timeline'];\n if (_props.reverse) classes.push('lyt-timeline--reverse');\n if (_props.mode) classes.push(`lyt-timeline--${_props.mode}`);\n if (_props.class) classes.push(_props.class);\n return classes.join(' ');\n };\n\n const getTimelineStyle = () => {\n const style: Record<string, string> = {};\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n return () => {\n const children: VNode[] = [];\n\n if (slots.default) {\n const slotContent = slots.default();\n if (Array.isArray(slotContent)) {\n children.push(...(slotContent as VNode[]));\n }\n }\n\n return createVNode(\n 'div',\n mergeA11yProps(\n {\n id: _props.id,\n 'aria-label': _props.ariaLabel,\n 'aria-describedby': _props.ariaDescribedBy,\n },\n {\n class: getTimelineClass(),\n style: getTimelineStyle(),\n },\n ),\n children,\n );\n };\n },\n});\n\nexport type { TimelineProps, TimelineSlots };\n","/**\n * @lytjs/ui - TimelineItem 时间轴项组件\n *\n * 时间轴项组件,与 Timeline 配合使用\n */\n\nimport type { TimelineItemProps, TimelineItemSlots, TimelineItemSetupProps } from './types';\nimport { defineComponent, type PropType } from '@lytjs/component';\nimport { createVNode, createTextVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\n/**\n * TimelineItem 时间轴项组件\n */\nexport const TimelineItem = defineComponent({\n name: 'LytTimelineItem',\n\n props: {\n color: { type: String, default: '' },\n type: {\n type: String as () => 'primary' | 'success' | 'warning' | 'danger' | 'info',\n default: '',\n },\n size: { type: String as () => 'large' | 'default' | 'small', default: 'default' },\n dot: { type: [String, Object] as unknown as PropType<string | VNode>, default: '' },\n timestamp: { type: String, default: '' },\n placement: { type: String as () => 'top' | 'bottom', default: 'bottom' },\n hideTimestamp: { type: Boolean, default: false },\n class: { type: String, default: '' },\n style: {\n type: [String, Object] as unknown as PropType<string | Record<string, string>>,\n default: '',\n },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>, { slots }) {\n const _props = props as TimelineItemSetupProps;\n\n const getTimelineItemClass = () => {\n const classes = ['lyt-timeline-item'];\n if (_props.type) classes.push(`lyt-timeline-item--${_props.type}`);\n if (_props.size && _props.size !== 'default')\n classes.push(`lyt-timeline-item--${_props.size}`);\n if (_props.placement) classes.push(`lyt-timeline-item--${_props.placement}`);\n if (_props.hideTimestamp) classes.push('lyt-timeline-item--hide-timestamp');\n if (_props.class) classes.push(_props.class);\n return classes.join(' ');\n };\n\n const getTimelineItemStyle = () => {\n const style: Record<string, string> = {};\n if (_props.color) {\n style['--lyt-timeline-item-color'] = _props.color;\n }\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n const renderDot = () => {\n if (slots.dot) {\n const dotContent = slots.dot();\n if (Array.isArray(dotContent)) {\n return createVNode('div', { class: 'lyt-timeline-item__dot' }, dotContent as VNode[]);\n }\n }\n if (_props.dot) {\n if (typeof _props.dot === 'string') {\n return createVNode('div', { class: 'lyt-timeline-item__dot' }, [\n createTextVNode(_props.dot),\n ]);\n }\n return createVNode('div', { class: 'lyt-timeline-item__dot' }, [_props.dot as VNode]);\n }\n return createVNode('div', { class: 'lyt-timeline-item__dot' }, null);\n };\n\n return () => {\n const children: VNode[] = [];\n\n children.push(createVNode('div', { class: 'lyt-timeline-item__tail' }, null));\n children.push(renderDot());\n\n const wrapperChildren: VNode[] = [];\n\n if (_props.timestamp && !_props.hideTimestamp) {\n wrapperChildren.push(\n createVNode('div', { class: 'lyt-timeline-item__timestamp' }, [\n createTextVNode(_props.timestamp),\n ]),\n );\n }\n\n const contentChildren: VNode[] = [];\n if (slots.default) {\n const slotContent = slots.default();\n if (Array.isArray(slotContent)) {\n contentChildren.push(...(slotContent as VNode[]));\n }\n }\n wrapperChildren.push(\n createVNode('div', { class: 'lyt-timeline-item__content' }, contentChildren),\n );\n\n children.push(createVNode('div', { class: 'lyt-timeline-item__wrapper' }, wrapperChildren));\n\n return createVNode(\n 'div',\n mergeA11yProps(\n {\n id: _props.id,\n 'aria-label': _props.ariaLabel,\n 'aria-describedby': _props.ariaDescribedBy,\n },\n {\n class: getTimelineItemClass(),\n style: getTimelineItemStyle(),\n },\n ),\n children,\n );\n };\n },\n});\n\nexport type { TimelineItemProps, TimelineItemSlots };\n","/**\n * @lytjs/ui - Steps 步骤条组件\n *\n * 步骤条组件,用于引导用户按照流程完成任务\n */\n\nimport type { StepsProps, StepsSlots, StepsSetupProps } from './types';\nimport { defineComponent, type PropType } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\n/**\n * Steps 步骤条组件\n */\nexport const Steps = defineComponent({\n name: 'LytSteps',\n\n props: {\n active: { type: Number, default: 0 },\n processStatus: {\n type: String as () => 'process' | 'finish' | 'error' | 'success',\n default: 'process',\n },\n finishStatus: {\n type: String as () => 'wait' | 'process' | 'finish' | 'error' | 'success',\n default: 'success',\n },\n direction: { type: String as () => 'horizontal' | 'vertical', default: 'horizontal' },\n alignCenter: { type: Boolean, default: false },\n simple: { type: Boolean, default: false },\n class: { type: String, default: '' },\n style: {\n type: [String, Object] as unknown as PropType<string | Record<string, string>>,\n default: '',\n },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n onChange: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots }) {\n const _props = props as StepsSetupProps;\n\n const getStepsClass = () => {\n const classes = ['lyt-steps'];\n if (_props.direction) classes.push(`lyt-steps--${_props.direction}`);\n if (_props.simple) classes.push('lyt-steps--simple');\n if (_props.alignCenter) classes.push('lyt-steps--align-center');\n if (_props.class) classes.push(_props.class);\n return classes.join(' ');\n };\n\n const getStepsStyle = () => {\n const style: Record<string, string> = {};\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n return () => {\n const children: VNode[] = [];\n\n if (slots.default) {\n const slotContent = slots.default();\n if (Array.isArray(slotContent)) {\n children.push(...(slotContent as VNode[]));\n }\n }\n\n return createVNode(\n 'div',\n mergeA11yProps(\n {\n id: _props.id,\n 'aria-label': _props.ariaLabel,\n 'aria-describedby': _props.ariaDescribedBy,\n role: 'navigation',\n },\n {\n class: getStepsClass(),\n style: getStepsStyle(),\n },\n ),\n children,\n );\n };\n },\n});\n\nexport type { StepsProps, StepsSlots };\n","/**\n * @lytjs/ui - Step 步骤项组件\n *\n * 步骤项组件,与 Steps 配合使用\n */\n\nimport type { StepProps, StepSlots, StepSetupProps } from './types';\nimport { defineComponent, type PropType } from '@lytjs/component';\nimport { createVNode, createTextVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\n/**\n * Step 步骤项组件\n */\nexport const Step = defineComponent({\n name: 'LytStep',\n\n props: {\n title: { type: String, default: '' },\n description: { type: String, default: '' },\n icon: { type: [String, Object] as unknown as PropType<string | VNode>, default: '' },\n status: {\n type: String as () => 'wait' | 'process' | 'finish' | 'error' | 'success',\n default: '',\n },\n class: { type: String, default: '' },\n style: {\n type: [String, Object] as unknown as PropType<string | Record<string, string>>,\n default: '',\n },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>, { slots }) {\n const _props = props as StepSetupProps;\n\n const getStepClass = () => {\n const classes = ['lyt-step'];\n if (_props.status) classes.push(`lyt-step--${_props.status}`);\n if (_props.class) classes.push(_props.class);\n return classes.join(' ');\n };\n\n const getStepStyle = () => {\n const style: Record<string, string> = {};\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n const renderIcon = () => {\n if (slots.icon) {\n const iconContent = slots.icon();\n if (Array.isArray(iconContent)) {\n return createVNode('div', { class: 'lyt-step__icon' }, iconContent as VNode[]);\n }\n }\n if (_props.icon) {\n if (typeof _props.icon === 'string') {\n return createVNode('div', { class: 'lyt-step__icon' }, [createTextVNode(_props.icon)]);\n }\n return createVNode('div', { class: 'lyt-step__icon' }, [_props.icon as VNode]);\n }\n return createVNode('div', { class: 'lyt-step__icon' }, null);\n };\n\n return () => {\n const children: VNode[] = [];\n\n children.push(renderIcon());\n\n const contentChildren: VNode[] = [];\n\n if (slots.title || _props.title) {\n const titleChildren: VNode[] = [];\n if (slots.title) {\n const titleContent = slots.title();\n if (Array.isArray(titleContent)) {\n titleChildren.push(...(titleContent as VNode[]));\n }\n } else {\n titleChildren.push(createTextVNode(_props.title));\n }\n contentChildren.push(createVNode('div', { class: 'lyt-step__title' }, titleChildren));\n }\n\n if (slots.description || _props.description) {\n const descChildren: VNode[] = [];\n if (slots.description) {\n const descContent = slots.description();\n if (Array.isArray(descContent)) {\n descChildren.push(...(descContent as VNode[]));\n }\n } else {\n descChildren.push(createTextVNode(_props.description));\n }\n contentChildren.push(createVNode('div', { class: 'lyt-step__description' }, descChildren));\n }\n\n children.push(createVNode('div', { class: 'lyt-step__content' }, contentChildren));\n\n return createVNode(\n 'div',\n mergeA11yProps(\n {\n id: _props.id,\n 'aria-label': _props.ariaLabel || _props.title,\n 'aria-describedby': _props.ariaDescribedBy,\n },\n {\n class: getStepClass(),\n style: getStepStyle(),\n },\n ),\n children,\n );\n };\n },\n});\n\nexport type { StepProps, StepSlots };\n","/**\n * @lytjs/ui - Carousel 走马灯组件\n *\n * 走马灯组件,用于展示轮播内容\n */\n\nimport type { CarouselProps, CarouselSlots, CarouselSetupProps } from './types';\nimport { defineComponent, type PropType } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\nexport const Carousel = defineComponent({\n name: 'LytCarousel',\n\n props: {\n initialIndex: { type: Number, default: 0 },\n height: { type: String, default: '300px' },\n trigger: { type: String as () => 'click' | 'hover', default: 'hover' },\n autoplay: { type: Boolean, default: true },\n interval: { type: Number, default: 3000 },\n indicatorPosition: { type: String as () => 'outside' | 'none', default: '' },\n arrow: { type: String as () => 'always' | 'hover' | 'never', default: 'hover' },\n type: { type: String as () => '' | 'card', default: '' },\n loop: { type: Boolean, default: true },\n direction: { type: String as () => 'horizontal' | 'vertical', default: 'horizontal' },\n class: { type: String, default: '' },\n style: {\n type: [String, Object] as unknown as PropType<string | Record<string, string>>,\n default: '',\n },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n onChange: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots }) {\n const _props = props as CarouselSetupProps;\n\n return () => {\n const children: VNode[] = [];\n\n const containerChildren: VNode[] = [];\n if (slots.default) {\n const slotContent = slots.default();\n if (Array.isArray(slotContent)) {\n containerChildren.push(...(slotContent as VNode[]));\n } else if (slotContent) {\n containerChildren.push(slotContent as VNode);\n }\n }\n children.push(createVNode('div', { class: 'lyt-carousel__container' }, containerChildren));\n\n const getCarouselClass = () => {\n const classes = ['lyt-carousel'];\n if (_props.type) classes.push(`lyt-carousel--${_props.type}`);\n if (_props.direction) classes.push(`lyt-carousel--${_props.direction}`);\n if (_props.indicatorPosition)\n classes.push(`lyt-carousel--indicator-${_props.indicatorPosition}`);\n if (_props.class) classes.push(_props.class);\n return classes.join(' ');\n };\n\n const getCarouselStyle = () => {\n const style: Record<string, string> = {};\n if (_props.height) {\n style.height = _props.height;\n }\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n return createVNode(\n 'div',\n mergeA11yProps(\n {\n id: _props.id,\n 'aria-label': _props.ariaLabel,\n 'aria-describedby': _props.ariaDescribedBy,\n role: 'region',\n },\n {\n class: getCarouselClass(),\n style: getCarouselStyle(),\n },\n ),\n children,\n );\n };\n },\n});\n\nexport type { CarouselProps, CarouselSlots };\n","/**\n * @lytjs/ui - CarouselItem 走马灯项组件\n *\n * 走马灯项组件,与 Carousel 配合使用\n */\n\nimport type { CarouselItemProps, CarouselItemSlots, CarouselItemSetupProps } from './types';\nimport { defineComponent, type PropType } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { mergeA11yProps } from '@lytjs/common-a11y';\n\n/**\n * CarouselItem 走马灯项组件\n */\nexport const CarouselItem = defineComponent({\n name: 'LytCarouselItem',\n\n props: {\n name: { type: [String, Number] as unknown as PropType<string | number>, default: '' },\n label: { type: String, default: '' },\n class: { type: String, default: '' },\n style: {\n type: [String, Object] as unknown as PropType<string | Record<string, string>>,\n default: '',\n },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n },\n\n setup(props: Record<string, unknown>, { slots }) {\n const _props = props as CarouselItemSetupProps;\n\n const getCarouselItemClass = () => {\n const classes = ['lyt-carousel-item'];\n if (_props.class) classes.push(_props.class as string);\n return classes.join(' ');\n };\n\n const getCarouselItemStyle = () => {\n const style: Record<string, string> = {};\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n return () => {\n const children: VNode[] = [];\n\n if (slots.default) {\n const slotContent = slots.default();\n if (Array.isArray(slotContent)) {\n children.push(...(slotContent as VNode[]));\n } else if (slotContent) {\n children.push(slotContent as VNode);\n }\n }\n\n return createVNode(\n 'div',\n mergeA11yProps(\n {\n id: _props.id as string,\n 'aria-label': (_props.ariaLabel as string) || (_props.label as string),\n 'aria-describedby': _props.ariaDescribedBy as string,\n },\n {\n class: getCarouselItemClass(),\n style: getCarouselItemStyle(),\n },\n ),\n children,\n );\n };\n },\n});\n\nexport type { CarouselItemProps, CarouselItemSlots };\n","/**\n * @lytjs/ui - Popconfirm 气泡确认框组件\n *\n * 气泡确认框组件,用于操作确认\n */\n\nimport type { PopconfirmProps, PopconfirmSlots, PopconfirmSetupProps } from './types';\nimport { defineComponent, type PropType } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString, isObject } from '@lytjs/common-is';\nimport { signal } from '@lytjs/reactivity';\nimport { getDialogA11yProps, getButtonA11yProps, mergeA11yProps } from '@lytjs/common-a11y';\n\nexport const Popconfirm = defineComponent({\n name: 'LytPopconfirm',\n\n props: {\n title: { type: String, default: '' },\n confirmButtonText: { type: String, default: '确定' },\n cancelButtonText: { type: String, default: '取消' },\n confirmButtonType: { type: String, default: 'primary' },\n cancelButtonType: { type: String, default: '' },\n icon: { type: String, default: '' },\n iconColor: { type: String, default: '' },\n hideIcon: { type: Boolean, default: false },\n disabled: { type: Boolean, default: false },\n width: { type: Number, default: 0 },\n class: { type: String, default: '' },\n style: {\n type: [String, Object] as unknown as PropType<string | Record<string, string>>,\n default: '',\n },\n id: { type: String, default: '' },\n ariaLabel: { type: String, default: '' },\n ariaDescribedBy: { type: String, default: '' },\n onConfirm: { type: Function, default: undefined },\n onCancel: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots, emit }) {\n const _props = props as PopconfirmSetupProps;\n const visible = signal(false);\n\n const getPopconfirmClass = () => {\n const classes = ['lyt-popconfirm'];\n if (_props.class) classes.push(_props.class as string);\n return classes.join(' ');\n };\n\n const getPopconfirmStyle = () => {\n const style: Record<string, string> = {};\n if (_props.width) {\n style.width = `${_props.width}px`;\n }\n if (_props.style) {\n if (isString(_props.style)) {\n return _props.style;\n }\n if (isObject(_props.style)) {\n Object.assign(style, _props.style);\n }\n }\n return style;\n };\n\n const handleConfirm = () => {\n visible.set(false);\n emit('confirm');\n _props.onConfirm?.();\n };\n\n const handleCancel = () => {\n visible.set(false);\n emit('cancel');\n _props.onCancel?.();\n };\n\n return () => {\n const children: VNode[] = [];\n\n if (slots.reference) {\n const refContent = slots.reference();\n if (Array.isArray(refContent)) {\n children.push(\n createVNode('div', { class: 'lyt-popconfirm__reference' }, refContent as VNode[]),\n );\n }\n }\n\n const popupChildren: VNode[] = [];\n\n const contentChildren: VNode[] = [];\n\n if (!_props.hideIcon) {\n const iconChildren: VNode[] = [];\n if (slots.icon) {\n const iconContent = slots.icon();\n if (Array.isArray(iconContent)) {\n iconChildren.push(...(iconContent as VNode[]));\n }\n }\n contentChildren.push(createVNode('span', { class: 'lyt-popconfirm__icon' }, iconChildren));\n }\n\n const titleId = _props.id ? `${_props.id}-title` : undefined;\n if (slots.default || _props.title) {\n const titleChildren: VNode[] = [];\n if (slots.default) {\n const titleContent = slots.default();\n if (Array.isArray(titleContent)) {\n titleChildren.push(...(titleContent as VNode[]));\n }\n } else {\n titleChildren.push(createVNode('span', {}, _props.title as string));\n }\n contentChildren.push(\n createVNode(\n 'span',\n {\n class: 'lyt-popconfirm__title',\n id: titleId,\n },\n titleChildren,\n ),\n );\n }\n\n popupChildren.push(createVNode('div', { class: 'lyt-popconfirm__content' }, contentChildren));\n\n const buttonChildren: VNode[] = [];\n const cancelBtnProps = getButtonA11yProps({ ariaLabel: _props.cancelButtonText as string });\n buttonChildren.push(\n createVNode(\n 'button',\n mergeA11yProps(cancelBtnProps, {\n class: 'lyt-button lyt-button--small',\n onClick: handleCancel,\n }),\n [createVNode('span', {}, _props.cancelButtonText as string)],\n ),\n );\n\n const confirmBtnProps = getButtonA11yProps({ ariaLabel: _props.confirmButtonText as string });\n buttonChildren.push(\n createVNode(\n 'button',\n mergeA11yProps(confirmBtnProps, {\n class: `lyt-button lyt-button--small lyt-button--${_props.confirmButtonType}`,\n onClick: handleConfirm,\n }),\n [createVNode('span', {}, _props.confirmButtonText as string)],\n ),\n );\n popupChildren.push(createVNode('div', { class: 'lyt-popconfirm__buttons' }, buttonChildren));\n\n const a11yProps = getDialogA11yProps({\n id: _props.id as string,\n ariaLabel: (_props.ariaLabel as string) || (_props.title as string),\n ariaDescribedBy: (_props.ariaDescribedBy as string) || titleId,\n labelledBy: titleId,\n modal: true,\n });\n\n children.push(\n createVNode(\n 'div',\n mergeA11yProps(a11yProps, { class: 'lyt-popconfirm__popup' }),\n popupChildren,\n ),\n );\n\n return createVNode(\n 'div',\n {\n class: getPopconfirmClass(),\n style: getPopconfirmStyle(),\n },\n children,\n );\n };\n },\n});\n\nexport type { PopconfirmProps, PopconfirmSlots };\n","/**\n * @lytjs/ui - RichTextEditor 组件\n *\n * 轻量级富文本编辑器,使用原生 API 实现,零第三方依赖\n */\n\nimport { defineComponent, type PropType } from '@lytjs/component';\nimport { createVNode, type VNode } from '@lytjs/vdom';\nimport { isString } from '@lytjs/common-is';\nimport { signal } from '@lytjs/reactivity';\n\ntype FormatCommand =\n | 'bold'\n | 'italic'\n | 'underline'\n | 'strikeThrough'\n | 'justifyLeft'\n | 'justifyCenter'\n | 'justifyRight'\n | 'insertUnorderedList'\n | 'insertOrderedList'\n | 'indent'\n | 'outdent'\n | 'removeFormat';\n\nexport const RichTextEditor = defineComponent({\n name: 'LytRichTextEditor',\n\n props: {\n modelValue: { type: String, default: '' },\n placeholder: { type: String, default: '请输入内容' },\n disabled: { type: Boolean, default: false },\n readonly: { type: Boolean, default: false },\n class: { type: String, default: '' },\n style: {\n type: [String, Object] as unknown as PropType<string | Record<string, string>>,\n default: '',\n },\n onChange: { type: Function, default: undefined },\n },\n\n setup(props: Record<string, unknown>, { slots, emit }) {\n const _props = props as {\n modelValue?: string;\n placeholder?: string;\n disabled?: boolean;\n readonly?: boolean;\n class?: string;\n style?: string | Record<string, string>;\n onChange?: (value: string) => void;\n };\n\n const isFocused = signal(false);\n const editorRef = { current: null as HTMLElement | null };\n\n const execCommand = (command: FormatCommand) => {\n if (_props.disabled || _props.readonly) return;\n\n const selection = window.getSelection();\n if (!selection || selection.rangeCount === 0) return;\n\n document.execCommand(command, false);\n handleInput();\n };\n\n const handleInput = () => {\n if (_props.disabled || _props.readonly) return;\n const content = editorRef.current?.innerHTML || '';\n emit('update:modelValue', content);\n _props.onChange?.(content);\n };\n\n const getEditorClass = () => {\n const classes = ['lyt-rich-text-editor'];\n if (isFocused()) classes.push('is-focused');\n if (_props.disabled) classes.push('is-disabled');\n if (_props.readonly) classes.push('is-readonly');\n if (_props.class) classes.push(_props.class);\n return classes.join(' ');\n };\n\n const toolbarItems: { command: FormatCommand; icon: string; title: string }[] = [\n { command: 'bold', icon: 'B', title: '粗体' },\n { command: 'italic', icon: 'I', title: '斜体' },\n { command: 'underline', icon: 'U', title: '下划线' },\n { command: 'strikeThrough', icon: 'S', title: '删除线' },\n { command: 'justifyLeft', icon: '◢', title: '左对齐' },\n { command: 'justifyCenter', icon: '◤', title: '居中' },\n { command: 'justifyRight', icon: '◣', title: '右对齐' },\n { command: 'insertUnorderedList', icon: '•', title: '无序列表' },\n { command: 'insertOrderedList', icon: '1.', title: '有序列表' },\n { command: 'indent', icon: '→|', title: '缩进' },\n { command: 'outdent', icon: '|←', title: '取消缩进' },\n { command: 'removeFormat', icon: '×', title: '清除格式' },\n ];\n\n return () => {\n const children: VNode[] = [];\n\n const toolbarChildren: VNode[] = toolbarItems.map((item) => {\n const btn = createVNode(\n 'button',\n {\n type: 'button',\n class: 'lyt-rich-text-editor__toolbar-btn',\n title: item.title,\n disabled: _props.disabled || _props.readonly,\n onClick: () => execCommand(item.command),\n },\n [createVNode('span', {}, item.icon)],\n );\n return btn;\n });\n\n children.push(\n createVNode('div', { class: 'lyt-rich-text-editor__toolbar' }, toolbarChildren),\n );\n\n const editorContent = _props.modelValue || '';\n children.push(\n createVNode('div', {\n ref: editorRef,\n class: 'lyt-rich-text-editor__content',\n contentEditable: !_props.disabled && !_props.readonly,\n 'data-placeholder': _props.placeholder,\n onInput: handleInput,\n onFocus: () => isFocused.set(true),\n onBlur: () => isFocused.set(false),\n innerHTML: editorContent,\n }),\n );\n\n if (slots.footer) {\n const footerContent = slots.footer();\n children.push(\n createVNode('div', { class: 'lyt-rich-text-editor__footer' }, footerContent as VNode[]),\n );\n }\n\n const editorStyle: Record<string, string> = {};\n if (_props.style) {\n if (isString(_props.style)) {\n Object.assign(editorStyle, { cssText: _props.style });\n } else {\n Object.assign(editorStyle, _props.style);\n }\n }\n\n return createVNode(\n 'div',\n {\n class: getEditorClass(),\n style: editorStyle,\n },\n children,\n );\n };\n },\n});\n","/**\n * @lytjs/ui - 入口文件\n *\n * LytJS UI 组件库\n */\n\n// 导入样式\nimport './styles/index.css';\n\n// 组件导出\nexport { Button } from './components/Button';\nexport { Input } from './components/Input';\nexport { Dialog } from './components/Dialog';\nexport { Select } from './components/Select';\nexport { Tabs, TabPane } from './components/Tabs';\nexport { Table } from './components/Table';\nexport { Form, FormItem } from './components/Form';\nexport { Transition, TransitionGroup } from './components/Transition';\nexport { DatePicker } from './components/DatePicker';\nexport { Tree } from './components/Tree';\nexport { Menu } from './components/Menu';\nexport { Cascader } from './components/Cascader';\nexport { TreeSelect } from './components/TreeSelect';\nexport { Transfer } from './components/Transfer';\nexport { Descriptions, DescriptionsItem } from './components/Descriptions';\nexport { Modal } from './components/Modal';\nexport { Drawer } from './components/Drawer';\nexport { Upload } from './components/Upload';\nexport { Notification } from './components/Notification';\nexport { Calendar } from './components/Calendar';\nexport { Image } from './components/Image';\nexport { Rate } from './components/Rate';\nexport { ColorPicker } from './components/ColorPicker';\n\n// 新组件导出\nexport { Icon } from './components/Icon';\nexport { Badge } from './components/Badge';\nexport { Tag } from './components/Tag';\nexport { Spin } from './components/Spin';\nexport { Empty } from './components/Empty';\nexport { Link } from './components/Link';\nexport { Container } from './components/Container';\nexport { Divider } from './components/Divider';\nexport { Toast } from './components/Toast';\nexport { Alert } from './components/Alert';\nexport { Tooltip } from './components/Tooltip';\nexport { Checkbox } from './components/Checkbox';\nexport { CheckboxGroup } from './components/CheckboxGroup';\nexport { Radio } from './components/Radio';\nexport { RadioGroup } from './components/RadioGroup';\nexport { Switch } from './components/Switch';\nexport { InputNumber } from './components/InputNumber';\nexport { Progress } from './components/Progress';\nexport { Slider } from './components/Slider';\nexport { Avatar } from './components/Avatar';\nexport { Card } from './components/Card';\nexport { Timeline } from './components/Timeline';\nexport { TimelineItem } from './components/TimelineItem';\nexport { Steps } from './components/Steps';\nexport { Step } from './components/Step';\nexport { Carousel } from './components/Carousel';\nexport { CarouselItem } from './components/CarouselItem';\nexport { Popconfirm } from './components/Popconfirm';\nexport { RichTextEditor } from './components/RichTextEditor';\n\n// 类型导出\nexport type {\n ComponentSize,\n ComponentStatus,\n ButtonProps,\n ButtonSlots,\n InputProps,\n InputSlots,\n DialogProps,\n DialogSlots,\n DialogSetupProps,\n SelectProps,\n SelectSlots,\n SelectOption,\n SelectSetupProps,\n CascaderProps,\n CascaderSlots,\n CascaderOption,\n CascaderSetupProps,\n TabsProps,\n TabsSlots,\n TabPaneProps,\n TableProps,\n TableSlots,\n TableSetupProps,\n TableColumn,\n TableData,\n TableRowData,\n IconProps,\n IconSlots,\n BadgeProps,\n BadgeSlots,\n BadgeSetupProps,\n TagProps,\n TagSlots,\n TagSetupProps,\n SpinProps,\n SpinSlots,\n EmptyProps,\n EmptySlots,\n LinkProps,\n LinkSlots,\n ContainerProps,\n ContainerSlots,\n DividerProps,\n DividerSlots,\n ToastProps,\n ToastSlots,\n ToastSetupProps,\n AlertProps,\n AlertSlots,\n AlertType,\n AlertEffect,\n AlertSetupProps,\n TooltipProps,\n TooltipSlots,\n CheckboxProps,\n CheckboxSlots,\n CheckboxSetupProps,\n RadioProps,\n RadioSlots,\n RadioSetupProps,\n SwitchProps,\n SwitchSlots,\n SwitchSetupProps,\n InputNumberProps,\n InputNumberSlots,\n InputNumberSetupProps,\n CheckboxGroupProps,\n CheckboxGroupSlots,\n CheckboxGroupSetupProps,\n RadioGroupProps,\n RadioGroupSlots,\n RadioGroupSetupProps,\n ProgressProps,\n ProgressSlots,\n ProgressSetupProps,\n SliderProps,\n SliderSlots,\n SliderSetupProps,\n AvatarProps,\n AvatarSlots,\n AvatarSetupProps,\n CardProps,\n CardSlots,\n CardSetupProps,\n TimelineProps,\n TimelineSlots,\n TimelineSetupProps,\n TimelineItemProps,\n TimelineItemSlots,\n TimelineItemSetupProps,\n StepsProps,\n StepsSlots,\n StepsSetupProps,\n StepProps,\n StepSlots,\n StepSetupProps,\n CarouselProps,\n CarouselSlots,\n CarouselSetupProps,\n CarouselItemProps,\n CarouselItemSlots,\n CarouselItemSetupProps,\n PopconfirmProps,\n PopconfirmSlots,\n PopconfirmSetupProps,\n ImageProps,\n ImageSlots,\n ImageFit,\n NotificationProps,\n NotificationSlots,\n NotificationOptions,\n NotificationType,\n NotificationPosition,\n CalendarProps,\n CalendarSlots,\n CalendarEvent,\n CalendarView,\n ColorPickerProps,\n ColorPickerSlots,\n DescriptionsProps,\n DescriptionsSlots,\n DescriptionsItemProps,\n DescriptionsItemSlots,\n DescriptionsItemData,\n DrawerProps,\n DrawerSlots,\n DrawerDirection,\n RateProps,\n RateSlots,\n TransferProps,\n TransferSlots,\n TransferOption,\n TransferSetupProps,\n TreeProps,\n TreeSlots,\n TreeNode,\n TreeSetupProps,\n TreeSelectProps,\n TreeSelectSlots,\n TreeSelectNode,\n TreeSelectSetupProps,\n UploadProps,\n UploadSlots,\n UploadFile,\n UploadFileStatus,\n UploadSetupProps,\n DatePickerProps,\n DatePickerSlots,\n DatePickerType,\n DatePickerShortcut,\n DatePickerSetupProps,\n FormProps,\n FormSlots,\n FormRule,\n FormRules,\n FormSetupProps,\n FormItemProps,\n FormItemSlots,\n FormItemSetupProps,\n FormValidateStatus,\n MenuProps,\n MenuSlots,\n MenuItem,\n MenuSetupProps,\n RichTextEditorProps,\n RichTextEditorSlots,\n RichTextEditorSetupProps,\n} from './components/types';\n\n// 组件安装\nimport type { AppContext } from '@lytjs/component';\nimport { Button } from './components/Button';\nimport { Input } from './components/Input';\nimport { Dialog } from './components/Dialog';\nimport { Select } from './components/Select';\nimport { Tabs, TabPane } from './components/Tabs';\nimport { Table } from './components/Table';\nimport { Form, FormItem } from './components/Form';\nimport { Transition, TransitionGroup } from './components/Transition';\nimport { DatePicker } from './components/DatePicker';\nimport { Tree } from './components/Tree';\nimport { Menu } from './components/Menu';\nimport { Cascader } from './components/Cascader';\nimport { TreeSelect } from './components/TreeSelect';\nimport { Transfer } from './components/Transfer';\nimport { Descriptions, DescriptionsItem } from './components/Descriptions';\nimport { Modal } from './components/Modal';\nimport { Drawer } from './components/Drawer';\nimport { Upload } from './components/Upload';\nimport { Notification } from './components/Notification';\nimport { Calendar } from './components/Calendar';\nimport { Image } from './components/Image';\nimport { Rate } from './components/Rate';\nimport { ColorPicker } from './components/ColorPicker';\nimport { Icon } from './components/Icon';\nimport { Badge } from './components/Badge';\nimport { Tag } from './components/Tag';\nimport { Spin } from './components/Spin';\nimport { Empty } from './components/Empty';\nimport { Link } from './components/Link';\nimport { Container } from './components/Container';\nimport { Divider } from './components/Divider';\nimport { Toast } from './components/Toast';\nimport { Alert } from './components/Alert';\nimport { Tooltip } from './components/Tooltip';\nimport { Checkbox } from './components/Checkbox';\nimport { CheckboxGroup } from './components/CheckboxGroup';\nimport { Radio } from './components/Radio';\nimport { RadioGroup } from './components/RadioGroup';\nimport { Switch } from './components/Switch';\nimport { InputNumber } from './components/InputNumber';\nimport { Progress } from './components/Progress';\nimport { Slider } from './components/Slider';\nimport { Avatar } from './components/Avatar';\nimport { Card } from './components/Card';\n\n/**\n * 安装所有组件\n */\nexport function install(app: AppContext): void {\n app.components['LytButton'] = Button;\n app.components['LytInput'] = Input;\n app.components['LytDialog'] = Dialog;\n app.components['LytSelect'] = Select;\n app.components['LytTabs'] = Tabs;\n app.components['LytTabPane'] = TabPane;\n app.components['LytTable'] = Table;\n app.components['LytForm'] = Form;\n app.components['LytFormItem'] = FormItem;\n app.components['LytTransition'] = Transition;\n app.components['LytTransitionGroup'] = TransitionGroup;\n app.components['LytDatePicker'] = DatePicker;\n app.components['LytTree'] = Tree;\n app.components['LytMenu'] = Menu;\n app.components['LytCascader'] = Cascader;\n app.components['LytTreeSelect'] = TreeSelect;\n app.components['LytTransfer'] = Transfer;\n app.components['LytDescriptions'] = Descriptions;\n app.components['LytDescriptionsItem'] = DescriptionsItem;\n app.components['LytModal'] = Modal;\n app.components['LytDrawer'] = Drawer;\n app.components['LytUpload'] = Upload;\n app.components['LytNotification'] = Notification;\n app.components['LytCalendar'] = Calendar;\n app.components['LytImage'] = Image;\n app.components['LytRate'] = Rate;\n app.components['LytColorPicker'] = ColorPicker;\n // 新组件\n app.components['LytIcon'] = Icon;\n app.components['LytBadge'] = Badge;\n app.components['LytTag'] = Tag;\n app.components['LytSpin'] = Spin;\n app.components['LytEmpty'] = Empty;\n app.components['LytLink'] = Link;\n app.components['LytContainer'] = Container;\n app.components['LytDivider'] = Divider;\n app.components['LytToast'] = Toast;\n app.components['LytAlert'] = Alert;\n app.components['LytTooltip'] = Tooltip;\n app.components['LytCheckbox'] = Checkbox;\n app.components['LytCheckboxGroup'] = CheckboxGroup;\n app.components['LytRadio'] = Radio;\n app.components['LytRadioGroup'] = RadioGroup;\n app.components['LytSwitch'] = Switch;\n app.components['LytInputNumber'] = InputNumber;\n app.components['LytProgress'] = Progress;\n app.components['LytSlider'] = Slider;\n app.components['LytAvatar'] = Avatar;\n app.components['LytCard'] = Card;\n}\n\nexport default {\n install,\n};\n"]}
|