@greypan/web-ui 6.0.0 → 6.2.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/README.CN.md +285 -93
- package/README.md +266 -87
- package/dist/assets/glass.js +1 -1
- package/dist/assets/glass.js.map +1 -1
- package/dist/assets/menu-portal.js +1 -1
- package/dist/assets/menu-portal.js.map +1 -1
- package/dist/assets/overlay-motion.js +1 -1
- package/dist/assets/overlay-motion.js.map +1 -1
- package/dist/components/autocomplete/index.d.ts +367 -4
- package/dist/components/autocomplete/index.js +87 -80
- package/dist/components/autocomplete/index.js.map +1 -1
- package/dist/components/autocomplete/style.js +1 -1
- package/dist/components/autocomplete/style.js.map +1 -1
- package/dist/components/avatar/style.js +1 -1
- package/dist/components/avatar/style.js.map +1 -1
- package/dist/components/back-top/style.js +1 -1
- package/dist/components/back-top/style.js.map +1 -1
- package/dist/components/badge/style.js +1 -1
- package/dist/components/badge/style.js.map +1 -1
- package/dist/components/button/index.js +36 -32
- package/dist/components/button/index.js.map +1 -1
- package/dist/components/button/style.js +1 -1
- package/dist/components/button/style.js.map +1 -1
- package/dist/components/button-group/style.js +1 -1
- package/dist/components/button-group/style.js.map +1 -1
- package/dist/components/checkbox/index.d.ts +366 -5
- package/dist/components/checkbox/index.js +19 -31
- package/dist/components/checkbox/index.js.map +1 -1
- package/dist/components/checkbox/style.js +1 -1
- package/dist/components/checkbox/style.js.map +1 -1
- package/dist/components/checkbox-group/index.d.ts +366 -4
- package/dist/components/checkbox-group/index.js +16 -25
- package/dist/components/checkbox-group/index.js.map +1 -1
- package/dist/components/collapse/index.d.ts +29 -1
- package/dist/components/collapse/index.js +105 -46
- package/dist/components/collapse/index.js.map +1 -1
- package/dist/components/collapse/style.js +1 -1
- package/dist/components/collapse/style.js.map +1 -1
- package/dist/components/context-menu/index.d.ts +7 -14
- package/dist/components/context-menu/index.js +113 -164
- package/dist/components/context-menu/index.js.map +1 -1
- package/dist/components/dialog/index.js +26 -25
- package/dist/components/dialog/index.js.map +1 -1
- package/dist/components/dialog/style.js +1 -1
- package/dist/components/dialog/style.js.map +1 -1
- package/dist/components/drawer/index.js +71 -64
- package/dist/components/drawer/index.js.map +1 -1
- package/dist/components/drawer/style.js +1 -1
- package/dist/components/drawer/style.js.map +1 -1
- package/dist/components/dropdown/index.d.ts +6 -14
- package/dist/components/dropdown/index.js +100 -156
- package/dist/components/dropdown/index.js.map +1 -1
- package/dist/components/dropdown-header/style.js +1 -1
- package/dist/components/dropdown-header/style.js.map +1 -1
- package/dist/components/dropdown-item/style.js +1 -1
- package/dist/components/dropdown-item/style.js.map +1 -1
- package/dist/components/empty/style.js +1 -1
- package/dist/components/empty/style.js.map +1 -1
- package/dist/components/image-preview/index.d.ts +58 -0
- package/dist/components/image-preview/index.js +481 -0
- package/dist/components/image-preview/index.js.map +1 -0
- package/dist/components/image-preview/style.js +6 -0
- package/dist/components/image-preview/style.js.map +1 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.js +20 -19
- package/dist/components/input/index.d.ts +366 -5
- package/dist/components/input/index.js +35 -47
- package/dist/components/input/index.js.map +1 -1
- package/dist/components/input/style.js +1 -1
- package/dist/components/input/style.js.map +1 -1
- package/dist/components/input-number/index.d.ts +366 -5
- package/dist/components/input-number/index.js +31 -44
- package/dist/components/input-number/index.js.map +1 -1
- package/dist/components/input-number/style.js +1 -1
- package/dist/components/input-number/style.js.map +1 -1
- package/dist/components/layout/index.d.ts +1 -1
- package/dist/components/layout/index.js +5 -3
- package/dist/components/layout/index.js.map +1 -1
- package/dist/components/layout/style.js +1 -1
- package/dist/components/layout/style.js.map +1 -1
- package/dist/components/option/style.js +1 -1
- package/dist/components/option/style.js.map +1 -1
- package/dist/components/popover/index.d.ts +1 -0
- package/dist/components/popover/index.js +55 -60
- package/dist/components/popover/index.js.map +1 -1
- package/dist/components/popover/style.js +1 -1
- package/dist/components/popover/style.js.map +1 -1
- package/dist/components/radio/index.d.ts +366 -5
- package/dist/components/radio/index.js +21 -31
- package/dist/components/radio/index.js.map +1 -1
- package/dist/components/radio/style.js +1 -1
- package/dist/components/radio/style.js.map +1 -1
- package/dist/components/radio-group/index.d.ts +366 -4
- package/dist/components/radio-group/index.js +16 -25
- package/dist/components/radio-group/index.js.map +1 -1
- package/dist/components/segmented/index.d.ts +366 -4
- package/dist/components/segmented/index.js +28 -35
- package/dist/components/segmented/index.js.map +1 -1
- package/dist/components/segmented/style.js +1 -1
- package/dist/components/segmented/style.js.map +1 -1
- package/dist/components/segmented-trigger/index.js +17 -15
- package/dist/components/segmented-trigger/index.js.map +1 -1
- package/dist/components/segmented-trigger/style.js +1 -1
- package/dist/components/segmented-trigger/style.js.map +1 -1
- package/dist/components/select/index.d.ts +368 -5
- package/dist/components/select/index.js +71 -68
- package/dist/components/select/index.js.map +1 -1
- package/dist/components/select/style.js +1 -1
- package/dist/components/select/style.js.map +1 -1
- package/dist/components/slider/index.d.ts +366 -5
- package/dist/components/slider/index.js +40 -50
- package/dist/components/slider/index.js.map +1 -1
- package/dist/components/slider/style.js +1 -1
- package/dist/components/slider/style.js.map +1 -1
- package/dist/components/spinner/style.js +1 -1
- package/dist/components/spinner/style.js.map +1 -1
- package/dist/components/svg-draw-lines/index.js +1 -1
- package/dist/components/svg-draw-lines/index.js.map +1 -1
- package/dist/components/switch/index.d.ts +366 -5
- package/dist/components/switch/index.js +28 -38
- package/dist/components/switch/index.js.map +1 -1
- package/dist/components/switch/style.js +1 -1
- package/dist/components/switch/style.js.map +1 -1
- package/dist/components/textarea/index.d.ts +366 -5
- package/dist/components/textarea/index.js +43 -57
- package/dist/components/textarea/index.js.map +1 -1
- package/dist/components/textarea/style.js +1 -1
- package/dist/components/textarea/style.js.map +1 -1
- package/dist/components/theme/index.js +1 -1
- package/dist/components/theme/index.js.map +1 -1
- package/dist/components/theme/style.js +1 -1
- package/dist/components/theme/style.js.map +1 -1
- package/dist/components/toast/manager.js +2 -2
- package/dist/components/toast/manager.js.map +1 -1
- package/dist/components/toast/style.js +1 -1
- package/dist/components/toast/style.js.map +1 -1
- package/dist/components/tooltip/index.d.ts +1 -0
- package/dist/components/tooltip/index.js +43 -58
- package/dist/components/tooltip/index.js.map +1 -1
- package/dist/components/tooltip/style.js +1 -1
- package/dist/components/tooltip/style.js.map +1 -1
- package/dist/icons/generated/radix-icons-reset.d.ts +6 -0
- package/dist/icons/generated/radix-icons-reset.js +10 -0
- package/dist/icons/generated/radix-icons-reset.js.map +1 -0
- package/dist/icons/index.d.ts +1 -0
- package/dist/icons/index.js +2 -1
- package/dist/shared/focus/pointer-focus.js +37 -0
- package/dist/shared/focus/pointer-focus.js.map +1 -0
- package/dist/shared/form-association/index.js +31 -4
- package/dist/shared/form-association/index.js.map +1 -1
- package/dist/shared/gesture/drag-gesture.js +53 -30
- package/dist/shared/gesture/drag-gesture.js.map +1 -1
- package/dist/shared/gesture/pinch-gesture.js +84 -0
- package/dist/shared/gesture/pinch-gesture.js.map +1 -0
- package/dist/shared/group-management/index.js.map +1 -1
- package/dist/shared/menu-behavior/index.js +112 -0
- package/dist/shared/menu-behavior/index.js.map +1 -0
- package/dist/shared/menu-portal/menu-portal.js.map +1 -1
- package/dist/shared/open-state/index.js +12 -0
- package/dist/shared/open-state/index.js.map +1 -0
- package/dist/shared/option-portal/combobox-shell.js +43 -0
- package/dist/shared/option-portal/combobox-shell.js.map +1 -0
- package/dist/shared/option-portal/index.js +22 -21
- package/dist/shared/option-portal/index.js.map +1 -1
- package/dist/shared/overlay/anchored-panel.js +33 -30
- package/dist/shared/overlay/anchored-panel.js.map +1 -1
- package/dist/shared/overlay/composition.js +57 -0
- package/dist/shared/overlay/composition.js.map +1 -0
- package/dist/shared/overlay/lifecycle.js +41 -0
- package/dist/shared/overlay/lifecycle.js.map +1 -0
- package/dist/shared/overlay/native-dialog-presence.js +15 -15
- package/dist/shared/overlay/native-dialog-presence.js.map +1 -1
- package/dist/shared/{theme → overlay}/overlay-root.js +1 -1
- package/dist/shared/overlay/overlay-root.js.map +1 -0
- package/dist/shared/overlay/overlay.js +43 -41
- package/dist/shared/overlay/overlay.js.map +1 -1
- package/dist/shared/overlay/placement-props.js +19 -0
- package/dist/shared/overlay/placement-props.js.map +1 -0
- package/dist/shared/overlay/portal.js +6 -4
- package/dist/shared/overlay/portal.js.map +1 -1
- package/dist/shared/overlay/positioning-generation.js +20 -0
- package/dist/shared/overlay/positioning-generation.js.map +1 -0
- package/dist/shared/{theme/theme-scope.js → overlay/theme-overlay-scope.js} +2 -2
- package/dist/shared/overlay/theme-overlay-scope.js.map +1 -0
- package/package.json +6 -10
- package/dist/shared/theme/overlay-root.js.map +0 -1
- package/dist/shared/theme/theme-scope.js.map +0 -1
|
@@ -1,7 +1,370 @@
|
|
|
1
1
|
import { LitElement } from 'lit';
|
|
2
|
-
|
|
2
|
+
declare const WebUiSegmented_base: {
|
|
3
|
+
new (...args: any[]): {
|
|
4
|
+
formResetCallback(): void;
|
|
5
|
+
formDisabledCallback(disabled: boolean): void;
|
|
6
|
+
formStateRestoreCallback(state: File | FormData | string | null): void;
|
|
7
|
+
accessKey: string;
|
|
8
|
+
readonly accessKeyLabel: string;
|
|
9
|
+
autocapitalize: string;
|
|
10
|
+
autocorrect: boolean;
|
|
11
|
+
dir: string;
|
|
12
|
+
draggable: boolean;
|
|
13
|
+
hidden: boolean | "until-found";
|
|
14
|
+
inert: boolean;
|
|
15
|
+
innerText: string;
|
|
16
|
+
lang: string;
|
|
17
|
+
readonly offsetHeight: number;
|
|
18
|
+
readonly offsetLeft: number;
|
|
19
|
+
readonly offsetParent: Element | null;
|
|
20
|
+
readonly offsetTop: number;
|
|
21
|
+
readonly offsetWidth: number;
|
|
22
|
+
outerText: string;
|
|
23
|
+
popover: string | null;
|
|
24
|
+
spellcheck: boolean;
|
|
25
|
+
title: string;
|
|
26
|
+
translate: boolean;
|
|
27
|
+
writingSuggestions: string;
|
|
28
|
+
attachInternals(): ElementInternals;
|
|
29
|
+
click(): void;
|
|
30
|
+
hidePopover(): void;
|
|
31
|
+
showPopover(options?: ShowPopoverOptions): void;
|
|
32
|
+
togglePopover(options?: TogglePopoverOptions | boolean): boolean;
|
|
33
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
34
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
35
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
36
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
37
|
+
readonly attributes: NamedNodeMap;
|
|
38
|
+
get classList(): DOMTokenList;
|
|
39
|
+
set classList(value: string);
|
|
40
|
+
className: string;
|
|
41
|
+
readonly clientHeight: number;
|
|
42
|
+
readonly clientLeft: number;
|
|
43
|
+
readonly clientTop: number;
|
|
44
|
+
readonly clientWidth: number;
|
|
45
|
+
readonly currentCSSZoom: number;
|
|
46
|
+
readonly customElementRegistry: CustomElementRegistry | null;
|
|
47
|
+
id: string;
|
|
48
|
+
innerHTML: string;
|
|
49
|
+
readonly localName: string;
|
|
50
|
+
readonly namespaceURI: string | null;
|
|
51
|
+
onfullscreenchange: ((this: Element, ev: Event) => any) | null;
|
|
52
|
+
onfullscreenerror: ((this: Element, ev: Event) => any) | null;
|
|
53
|
+
outerHTML: string;
|
|
54
|
+
readonly ownerDocument: Document;
|
|
55
|
+
get part(): DOMTokenList;
|
|
56
|
+
set part(value: string);
|
|
57
|
+
readonly prefix: string | null;
|
|
58
|
+
readonly scrollHeight: number;
|
|
59
|
+
scrollLeft: number;
|
|
60
|
+
scrollTop: number;
|
|
61
|
+
readonly scrollWidth: number;
|
|
62
|
+
readonly shadowRoot: ShadowRoot | null;
|
|
63
|
+
slot: string;
|
|
64
|
+
readonly tagName: string;
|
|
65
|
+
attachShadow(init: ShadowRootInit): ShadowRoot;
|
|
66
|
+
checkVisibility(options?: CheckVisibilityOptions): boolean;
|
|
67
|
+
closest<K extends keyof HTMLElementTagNameMap>(selector: K): HTMLElementTagNameMap[K] | null;
|
|
68
|
+
closest<K extends keyof SVGElementTagNameMap>(selector: K): SVGElementTagNameMap[K] | null;
|
|
69
|
+
closest<K extends keyof MathMLElementTagNameMap>(selector: K): MathMLElementTagNameMap[K] | null;
|
|
70
|
+
closest<E extends Element = Element>(selectors: string): E | null;
|
|
71
|
+
computedStyleMap(): StylePropertyMapReadOnly;
|
|
72
|
+
getAttribute(qualifiedName: string): string | null;
|
|
73
|
+
getAttributeNS(namespace: string | null, localName: string): string | null;
|
|
74
|
+
getAttributeNames(): string[];
|
|
75
|
+
getAttributeNode(qualifiedName: string): Attr | null;
|
|
76
|
+
getAttributeNodeNS(namespace: string | null, localName: string): Attr | null;
|
|
77
|
+
getBoundingClientRect(): DOMRect;
|
|
78
|
+
getClientRects(): DOMRectList;
|
|
79
|
+
getElementsByClassName(classNames: string): HTMLCollectionOf<Element>;
|
|
80
|
+
getElementsByTagName<K extends keyof HTMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementTagNameMap[K]>;
|
|
81
|
+
getElementsByTagName<K extends keyof SVGElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<SVGElementTagNameMap[K]>;
|
|
82
|
+
getElementsByTagName<K extends keyof MathMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<MathMLElementTagNameMap[K]>;
|
|
83
|
+
getElementsByTagName<K extends keyof HTMLElementDeprecatedTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementDeprecatedTagNameMap[K]>;
|
|
84
|
+
getElementsByTagName(qualifiedName: string): HTMLCollectionOf<Element>;
|
|
85
|
+
getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1999/xhtml", localName: string): HTMLCollectionOf<HTMLElement>;
|
|
86
|
+
getElementsByTagNameNS(namespaceURI: "http://www.w3.org/2000/svg", localName: string): HTMLCollectionOf<SVGElement>;
|
|
87
|
+
getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1998/Math/MathML", localName: string): HTMLCollectionOf<MathMLElement>;
|
|
88
|
+
getElementsByTagNameNS(namespace: string | null, localName: string): HTMLCollectionOf<Element>;
|
|
89
|
+
getHTML(options?: GetHTMLOptions): string;
|
|
90
|
+
hasAttribute(qualifiedName: string): boolean;
|
|
91
|
+
hasAttributeNS(namespace: string | null, localName: string): boolean;
|
|
92
|
+
hasAttributes(): boolean;
|
|
93
|
+
hasPointerCapture(pointerId: number): boolean;
|
|
94
|
+
insertAdjacentElement(where: InsertPosition, element: Element): Element | null;
|
|
95
|
+
insertAdjacentHTML(position: InsertPosition, string: string): void;
|
|
96
|
+
insertAdjacentText(where: InsertPosition, data: string): void;
|
|
97
|
+
matches<K extends keyof HTMLElementTagNameMap>(selectors: K): this is HTMLElementTagNameMap[K];
|
|
98
|
+
matches<K extends keyof SVGElementTagNameMap>(selectors: K): this is SVGElementTagNameMap[K];
|
|
99
|
+
matches<K extends keyof MathMLElementTagNameMap>(selectors: K): this is MathMLElementTagNameMap[K];
|
|
100
|
+
matches(selectors: string): boolean;
|
|
101
|
+
releasePointerCapture(pointerId: number): void;
|
|
102
|
+
removeAttribute(qualifiedName: string): void;
|
|
103
|
+
removeAttributeNS(namespace: string | null, localName: string): void;
|
|
104
|
+
removeAttributeNode(attr: Attr): Attr;
|
|
105
|
+
requestFullscreen(options?: FullscreenOptions): Promise<void>;
|
|
106
|
+
requestPointerLock(options?: PointerLockOptions): Promise<void>;
|
|
107
|
+
scroll(options?: ScrollToOptions): void;
|
|
108
|
+
scroll(x: number, y: number): void;
|
|
109
|
+
scrollBy(options?: ScrollToOptions): void;
|
|
110
|
+
scrollBy(x: number, y: number): void;
|
|
111
|
+
scrollIntoView(arg?: boolean | ScrollIntoViewOptions): void;
|
|
112
|
+
scrollTo(options?: ScrollToOptions): void;
|
|
113
|
+
scrollTo(x: number, y: number): void;
|
|
114
|
+
setAttribute(qualifiedName: string, value: string): void;
|
|
115
|
+
setAttributeNS(namespace: string | null, qualifiedName: string, value: string): void;
|
|
116
|
+
setAttributeNode(attr: Attr): Attr | null;
|
|
117
|
+
setAttributeNodeNS(attr: Attr): Attr | null;
|
|
118
|
+
setHTMLUnsafe(html: string): void;
|
|
119
|
+
setPointerCapture(pointerId: number): void;
|
|
120
|
+
toggleAttribute(qualifiedName: string, force?: boolean): boolean;
|
|
121
|
+
webkitMatchesSelector(selectors: string): boolean;
|
|
122
|
+
get textContent(): string;
|
|
123
|
+
set textContent(value: string | null);
|
|
124
|
+
readonly baseURI: string;
|
|
125
|
+
readonly childNodes: NodeListOf<ChildNode>;
|
|
126
|
+
readonly firstChild: ChildNode | null;
|
|
127
|
+
readonly isConnected: boolean;
|
|
128
|
+
readonly lastChild: ChildNode | null;
|
|
129
|
+
readonly nextSibling: ChildNode | null;
|
|
130
|
+
readonly nodeName: string;
|
|
131
|
+
readonly nodeType: number;
|
|
132
|
+
nodeValue: string | null;
|
|
133
|
+
readonly parentElement: HTMLElement | null;
|
|
134
|
+
readonly parentNode: ParentNode | null;
|
|
135
|
+
readonly previousSibling: ChildNode | null;
|
|
136
|
+
appendChild<T extends Node>(node: T): T;
|
|
137
|
+
cloneNode(subtree?: boolean): Node;
|
|
138
|
+
compareDocumentPosition(other: Node): number;
|
|
139
|
+
contains(other: Node | null): boolean;
|
|
140
|
+
getRootNode(options?: GetRootNodeOptions): Node;
|
|
141
|
+
hasChildNodes(): boolean;
|
|
142
|
+
insertBefore<T extends Node>(node: T, child: Node | null): T;
|
|
143
|
+
isDefaultNamespace(namespace: string | null): boolean;
|
|
144
|
+
isEqualNode(otherNode: Node | null): boolean;
|
|
145
|
+
isSameNode(otherNode: Node | null): boolean;
|
|
146
|
+
lookupNamespaceURI(prefix: string | null): string | null;
|
|
147
|
+
lookupPrefix(namespace: string | null): string | null;
|
|
148
|
+
normalize(): void;
|
|
149
|
+
removeChild<T extends Node>(child: T): T;
|
|
150
|
+
replaceChild<T extends Node>(node: Node, child: T): T;
|
|
151
|
+
readonly ELEMENT_NODE: 1;
|
|
152
|
+
readonly ATTRIBUTE_NODE: 2;
|
|
153
|
+
readonly TEXT_NODE: 3;
|
|
154
|
+
readonly CDATA_SECTION_NODE: 4;
|
|
155
|
+
readonly ENTITY_REFERENCE_NODE: 5;
|
|
156
|
+
readonly ENTITY_NODE: 6;
|
|
157
|
+
readonly PROCESSING_INSTRUCTION_NODE: 7;
|
|
158
|
+
readonly COMMENT_NODE: 8;
|
|
159
|
+
readonly DOCUMENT_NODE: 9;
|
|
160
|
+
readonly DOCUMENT_TYPE_NODE: 10;
|
|
161
|
+
readonly DOCUMENT_FRAGMENT_NODE: 11;
|
|
162
|
+
readonly NOTATION_NODE: 12;
|
|
163
|
+
readonly DOCUMENT_POSITION_DISCONNECTED: 1;
|
|
164
|
+
readonly DOCUMENT_POSITION_PRECEDING: 2;
|
|
165
|
+
readonly DOCUMENT_POSITION_FOLLOWING: 4;
|
|
166
|
+
readonly DOCUMENT_POSITION_CONTAINS: 8;
|
|
167
|
+
readonly DOCUMENT_POSITION_CONTAINED_BY: 16;
|
|
168
|
+
readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32;
|
|
169
|
+
dispatchEvent(event: Event): boolean;
|
|
170
|
+
ariaActiveDescendantElement: Element | null;
|
|
171
|
+
ariaAtomic: string | null;
|
|
172
|
+
ariaAutoComplete: string | null;
|
|
173
|
+
ariaBrailleLabel: string | null;
|
|
174
|
+
ariaBrailleRoleDescription: string | null;
|
|
175
|
+
ariaBusy: string | null;
|
|
176
|
+
ariaChecked: string | null;
|
|
177
|
+
ariaColCount: string | null;
|
|
178
|
+
ariaColIndex: string | null;
|
|
179
|
+
ariaColIndexText: string | null;
|
|
180
|
+
ariaColSpan: string | null;
|
|
181
|
+
ariaControlsElements: ReadonlyArray<Element> | null;
|
|
182
|
+
ariaCurrent: string | null;
|
|
183
|
+
ariaDescribedByElements: ReadonlyArray<Element> | null;
|
|
184
|
+
ariaDescription: string | null;
|
|
185
|
+
ariaDetailsElements: ReadonlyArray<Element> | null;
|
|
186
|
+
ariaDisabled: string | null;
|
|
187
|
+
ariaErrorMessageElements: ReadonlyArray<Element> | null;
|
|
188
|
+
ariaExpanded: string | null;
|
|
189
|
+
ariaFlowToElements: ReadonlyArray<Element> | null;
|
|
190
|
+
ariaHasPopup: string | null;
|
|
191
|
+
ariaHidden: string | null;
|
|
192
|
+
ariaInvalid: string | null;
|
|
193
|
+
ariaKeyShortcuts: string | null;
|
|
194
|
+
ariaLabel: string | null;
|
|
195
|
+
ariaLabelledByElements: ReadonlyArray<Element> | null;
|
|
196
|
+
ariaLevel: string | null;
|
|
197
|
+
ariaLive: string | null;
|
|
198
|
+
ariaModal: string | null;
|
|
199
|
+
ariaMultiLine: string | null;
|
|
200
|
+
ariaMultiSelectable: string | null;
|
|
201
|
+
ariaOrientation: string | null;
|
|
202
|
+
ariaOwnsElements: ReadonlyArray<Element> | null;
|
|
203
|
+
ariaPlaceholder: string | null;
|
|
204
|
+
ariaPosInSet: string | null;
|
|
205
|
+
ariaPressed: string | null;
|
|
206
|
+
ariaReadOnly: string | null;
|
|
207
|
+
ariaRelevant: string | null;
|
|
208
|
+
ariaRequired: string | null;
|
|
209
|
+
ariaRoleDescription: string | null;
|
|
210
|
+
ariaRowCount: string | null;
|
|
211
|
+
ariaRowIndex: string | null;
|
|
212
|
+
ariaRowIndexText: string | null;
|
|
213
|
+
ariaRowSpan: string | null;
|
|
214
|
+
ariaSelected: string | null;
|
|
215
|
+
ariaSetSize: string | null;
|
|
216
|
+
ariaSort: string | null;
|
|
217
|
+
ariaValueMax: string | null;
|
|
218
|
+
ariaValueMin: string | null;
|
|
219
|
+
ariaValueNow: string | null;
|
|
220
|
+
ariaValueText: string | null;
|
|
221
|
+
role: string | null;
|
|
222
|
+
animate(keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions): Animation;
|
|
223
|
+
getAnimations(options?: GetAnimationsOptions): Animation[];
|
|
224
|
+
after(...nodes: (Node | string)[]): void;
|
|
225
|
+
before(...nodes: (Node | string)[]): void;
|
|
226
|
+
remove(): void;
|
|
227
|
+
replaceWith(...nodes: (Node | string)[]): void;
|
|
228
|
+
readonly nextElementSibling: Element | null;
|
|
229
|
+
readonly previousElementSibling: Element | null;
|
|
230
|
+
readonly childElementCount: number;
|
|
231
|
+
readonly children: HTMLCollection;
|
|
232
|
+
readonly firstElementChild: Element | null;
|
|
233
|
+
readonly lastElementChild: Element | null;
|
|
234
|
+
append(...nodes: (Node | string)[]): void;
|
|
235
|
+
moveBefore(node: Node, child: Node | null): void;
|
|
236
|
+
prepend(...nodes: (Node | string)[]): void;
|
|
237
|
+
querySelector<K extends keyof HTMLElementTagNameMap>(selectors: K): HTMLElementTagNameMap[K] | null;
|
|
238
|
+
querySelector<K extends keyof SVGElementTagNameMap>(selectors: K): SVGElementTagNameMap[K] | null;
|
|
239
|
+
querySelector<K extends keyof MathMLElementTagNameMap>(selectors: K): MathMLElementTagNameMap[K] | null;
|
|
240
|
+
querySelector<K extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K): HTMLElementDeprecatedTagNameMap[K] | null;
|
|
241
|
+
querySelector<E extends Element = Element>(selectors: string): E | null;
|
|
242
|
+
querySelectorAll<K extends keyof HTMLElementTagNameMap>(selectors: K): NodeListOf<HTMLElementTagNameMap[K]>;
|
|
243
|
+
querySelectorAll<K extends keyof SVGElementTagNameMap>(selectors: K): NodeListOf<SVGElementTagNameMap[K]>;
|
|
244
|
+
querySelectorAll<K extends keyof MathMLElementTagNameMap>(selectors: K): NodeListOf<MathMLElementTagNameMap[K]>;
|
|
245
|
+
querySelectorAll<K extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K): NodeListOf<HTMLElementDeprecatedTagNameMap[K]>;
|
|
246
|
+
querySelectorAll<E extends Element = Element>(selectors: string): NodeListOf<E>;
|
|
247
|
+
replaceChildren(...nodes: (Node | string)[]): void;
|
|
248
|
+
readonly assignedSlot: HTMLSlotElement | null;
|
|
249
|
+
readonly attributeStyleMap: StylePropertyMap;
|
|
250
|
+
get style(): CSSStyleDeclaration;
|
|
251
|
+
set style(cssText: string);
|
|
252
|
+
contentEditable: string;
|
|
253
|
+
enterKeyHint: string;
|
|
254
|
+
inputMode: string;
|
|
255
|
+
readonly isContentEditable: boolean;
|
|
256
|
+
onabort: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;
|
|
257
|
+
onanimationcancel: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
|
|
258
|
+
onanimationend: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
|
|
259
|
+
onanimationiteration: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
|
|
260
|
+
onanimationstart: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
|
|
261
|
+
onauxclick: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
|
|
262
|
+
onbeforeinput: ((this: GlobalEventHandlers, ev: InputEvent) => any) | null;
|
|
263
|
+
onbeforematch: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
264
|
+
onbeforetoggle: ((this: GlobalEventHandlers, ev: ToggleEvent) => any) | null;
|
|
265
|
+
onblur: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;
|
|
266
|
+
oncancel: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
267
|
+
oncanplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
268
|
+
oncanplaythrough: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
269
|
+
onchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
270
|
+
onclick: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
|
|
271
|
+
onclose: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
272
|
+
oncommand: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
273
|
+
oncontextlost: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
274
|
+
oncontextmenu: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
|
|
275
|
+
oncontextrestored: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
276
|
+
oncopy: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
|
|
277
|
+
oncuechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
278
|
+
oncut: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
|
|
279
|
+
ondblclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
|
|
280
|
+
ondrag: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
|
|
281
|
+
ondragend: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
|
|
282
|
+
ondragenter: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
|
|
283
|
+
ondragleave: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
|
|
284
|
+
ondragover: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
|
|
285
|
+
ondragstart: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
|
|
286
|
+
ondrop: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
|
|
287
|
+
ondurationchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
288
|
+
onemptied: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
289
|
+
onended: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
290
|
+
onerror: OnErrorEventHandler;
|
|
291
|
+
onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;
|
|
292
|
+
onformdata: ((this: GlobalEventHandlers, ev: FormDataEvent) => any) | null;
|
|
293
|
+
ongotpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
|
|
294
|
+
oninput: ((this: GlobalEventHandlers, ev: InputEvent) => any) | null;
|
|
295
|
+
oninvalid: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
296
|
+
onkeydown: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
|
|
297
|
+
onkeypress: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
|
|
298
|
+
onkeyup: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
|
|
299
|
+
onload: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
300
|
+
onloadeddata: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
301
|
+
onloadedmetadata: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
302
|
+
onloadstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
303
|
+
onlostpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
|
|
304
|
+
onmousedown: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
|
|
305
|
+
onmouseenter: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
|
|
306
|
+
onmouseleave: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
|
|
307
|
+
onmousemove: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
|
|
308
|
+
onmouseout: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
|
|
309
|
+
onmouseover: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
|
|
310
|
+
onmouseup: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
|
|
311
|
+
onpaste: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
|
|
312
|
+
onpause: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
313
|
+
onplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
314
|
+
onplaying: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
315
|
+
onpointercancel: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
|
|
316
|
+
onpointerdown: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
|
|
317
|
+
onpointerenter: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
|
|
318
|
+
onpointerleave: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
|
|
319
|
+
onpointermove: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
|
|
320
|
+
onpointerout: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
|
|
321
|
+
onpointerover: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
|
|
322
|
+
onpointerrawupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
323
|
+
onpointerup: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
|
|
324
|
+
onprogress: ((this: GlobalEventHandlers, ev: ProgressEvent) => any) | null;
|
|
325
|
+
onratechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
326
|
+
onreset: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
327
|
+
onresize: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;
|
|
328
|
+
onscroll: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
329
|
+
onscrollend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
330
|
+
onsecuritypolicyviolation: ((this: GlobalEventHandlers, ev: SecurityPolicyViolationEvent) => any) | null;
|
|
331
|
+
onseeked: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
332
|
+
onseeking: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
333
|
+
onselect: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
334
|
+
onselectionchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
335
|
+
onselectstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
336
|
+
onslotchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
337
|
+
onstalled: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
338
|
+
onsubmit: ((this: GlobalEventHandlers, ev: SubmitEvent) => any) | null;
|
|
339
|
+
onsuspend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
340
|
+
ontimeupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
341
|
+
ontoggle: ((this: GlobalEventHandlers, ev: ToggleEvent) => any) | null;
|
|
342
|
+
ontouchcancel?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
|
|
343
|
+
ontouchend?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
|
|
344
|
+
ontouchmove?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
|
|
345
|
+
ontouchstart?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
|
|
346
|
+
ontransitioncancel: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
|
|
347
|
+
ontransitionend: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
|
|
348
|
+
ontransitionrun: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
|
|
349
|
+
ontransitionstart: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
|
|
350
|
+
onvolumechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
351
|
+
onwaiting: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
352
|
+
onwebkitanimationend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
353
|
+
onwebkitanimationiteration: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
354
|
+
onwebkitanimationstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
355
|
+
onwebkittransitionend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
|
|
356
|
+
onwheel: ((this: GlobalEventHandlers, ev: WheelEvent) => any) | null;
|
|
357
|
+
autofocus: boolean;
|
|
358
|
+
readonly dataset: DOMStringMap;
|
|
359
|
+
nonce: string;
|
|
360
|
+
tabIndex: number;
|
|
361
|
+
blur(): void;
|
|
362
|
+
focus(options?: FocusOptions): void;
|
|
363
|
+
};
|
|
364
|
+
formAssociated: boolean;
|
|
365
|
+
} & typeof LitElement;
|
|
366
|
+
export declare class WebUiSegmented extends WebUiSegmented_base {
|
|
3
367
|
static styles: import('lit').CSSResult;
|
|
4
|
-
static formAssociated: boolean;
|
|
5
368
|
name: string;
|
|
6
369
|
disabled: boolean;
|
|
7
370
|
required: boolean;
|
|
@@ -21,9 +384,7 @@ export declare class WebUiSegmented extends LitElement {
|
|
|
21
384
|
private handlePointerLeave;
|
|
22
385
|
private readonly _formAssociation;
|
|
23
386
|
private readonly _formAssociationController;
|
|
24
|
-
formResetCallback(): void;
|
|
25
387
|
formDisabledCallback(disabled: boolean): void;
|
|
26
|
-
formStateRestoreCallback(state: string | File | FormData | null): void;
|
|
27
388
|
render(): import('lit').TemplateResult<1>;
|
|
28
389
|
readonly $events: {
|
|
29
390
|
input: Event;
|
|
@@ -35,3 +396,4 @@ declare global {
|
|
|
35
396
|
'web-ui-segmented': WebUiSegmented;
|
|
36
397
|
}
|
|
37
398
|
}
|
|
399
|
+
export {};
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import e from "../../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/decorate.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import c from "
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
2
|
+
import { FormAssociated as t, FormAssociationController as n, defineFormAssociation as r } from "../../shared/form-association/index.js";
|
|
3
|
+
import { installPointerFocusSuppression as i } from "../../shared/focus/pointer-focus.js";
|
|
4
|
+
import { GroupController as a, defineGroupCoordinator as o } from "../../shared/group-management/index.js";
|
|
5
|
+
import { attachDragGesture as s } from "../../shared/gesture/drag-gesture.js";
|
|
6
|
+
import { clamp as c, snapToNearest as l } from "../../shared/gesture/physics.js";
|
|
7
|
+
import u from "./style.js";
|
|
8
|
+
import { LitElement as d, html as f, unsafeCSS as p } from "lit";
|
|
9
|
+
import { customElement as m, property as h, state as g } from "lit/decorators.js";
|
|
10
|
+
import { classMap as _ } from "lit/directives/class-map.js";
|
|
10
11
|
//#region src/components/segmented/index.ts
|
|
11
|
-
|
|
12
|
+
i();
|
|
13
|
+
var v = class extends t(d) {
|
|
12
14
|
constructor(...e) {
|
|
13
|
-
super(...e), this.name = "", this.disabled = !1, this.required = !1, this._value = "", this._indicatorReady = !1, this._pressed = !1, this._isDragging = !1, this._dragGestureHandle = null, this._groupController = new
|
|
15
|
+
super(...e), this.name = "", this.disabled = !1, this.required = !1, this._value = "", this._indicatorReady = !1, this._pressed = !1, this._isDragging = !1, this._dragGestureHandle = null, this._groupController = new a(this, o({
|
|
14
16
|
host: this,
|
|
15
17
|
getItems: () => [...this.querySelectorAll("web-ui-segmented-trigger")],
|
|
16
18
|
getValue: () => this._value,
|
|
@@ -35,7 +37,7 @@ var g = class extends l {
|
|
|
35
37
|
composed: !0
|
|
36
38
|
}));
|
|
37
39
|
}
|
|
38
|
-
}).make(), { afterSync: () => requestAnimationFrame(() => this._updateIndicator()) }), this._formAssociation =
|
|
40
|
+
}).make(), { afterSync: () => requestAnimationFrame(() => this._updateIndicator()) }), this._formAssociation = r({
|
|
39
41
|
host: this,
|
|
40
42
|
initialize: () => {
|
|
41
43
|
let e = this.getAttribute("value");
|
|
@@ -50,13 +52,10 @@ var g = class extends l {
|
|
|
50
52
|
restoreState: (e) => {
|
|
51
53
|
typeof e == "string" && (this.value = e);
|
|
52
54
|
}
|
|
53
|
-
}).make(), this._formAssociationController = new
|
|
55
|
+
}).make(), this._formAssociationController = new n(this, this._formAssociation);
|
|
54
56
|
}
|
|
55
57
|
static {
|
|
56
|
-
this.styles =
|
|
57
|
-
}
|
|
58
|
-
static {
|
|
59
|
-
this.formAssociated = !0;
|
|
58
|
+
this.styles = p(u);
|
|
60
59
|
}
|
|
61
60
|
disconnectedCallback() {
|
|
62
61
|
super.disconnectedCallback(), this._dragGestureHandle?.destroy(), this._dragGestureHandle = null;
|
|
@@ -89,22 +88,22 @@ var g = class extends l {
|
|
|
89
88
|
let i = r.getBoundingClientRect();
|
|
90
89
|
if (!(e.clientX >= i.left && e.clientX <= i.right && e.clientY >= i.top && e.clientY <= i.bottom)) return;
|
|
91
90
|
this._pressed = !0;
|
|
92
|
-
let
|
|
91
|
+
let a = this.getBoundingClientRect(), o = r.getBoundingClientRect(), u = o.left - a.left, d = o.width, f = t[0].getBoundingClientRect(), p = t[t.length - 1].getBoundingClientRect(), m = f.left - a.left, h = p.right - a.left - d, g = n.map((e) => {
|
|
93
92
|
let t = e.getBoundingClientRect();
|
|
94
|
-
return t.left -
|
|
93
|
+
return t.left - a.left + t.width / 2;
|
|
95
94
|
});
|
|
96
|
-
this._dragGestureHandle?.destroy(), this._dragGestureHandle =
|
|
95
|
+
this._dragGestureHandle?.destroy(), this._dragGestureHandle = s(e, {
|
|
97
96
|
axis: "x",
|
|
98
97
|
threshold: 6,
|
|
99
98
|
onMove: (e) => {
|
|
100
99
|
this._isDragging = !0;
|
|
101
|
-
let t =
|
|
100
|
+
let t = c(u + e.deltaX, m, h);
|
|
102
101
|
this.style.setProperty("--indicator-left", `${t}px`), this.style.setProperty("--indicator-width", `${d}px`);
|
|
103
102
|
},
|
|
104
103
|
onEnd: (e) => {
|
|
105
104
|
let t = this._isDragging;
|
|
106
105
|
if (this._isDragging = !1, this._pressed = !1, t) {
|
|
107
|
-
let t =
|
|
106
|
+
let t = c(u + e.deltaX, m, h) + d / 2, i = r;
|
|
108
107
|
if (e.velocityX > 300) {
|
|
109
108
|
let e = n.indexOf(r);
|
|
110
109
|
i = e !== -1 && e < n.length - 1 ? n[e + 1] : n[n.length - 1];
|
|
@@ -112,7 +111,7 @@ var g = class extends l {
|
|
|
112
111
|
let e = n.indexOf(r);
|
|
113
112
|
i = e > 0 ? n[e - 1] : n[0];
|
|
114
113
|
} else {
|
|
115
|
-
let e =
|
|
114
|
+
let e = l(t, g);
|
|
116
115
|
e !== -1 && n[e] && (i = n[e]);
|
|
117
116
|
}
|
|
118
117
|
i.value === this._value ? this._updateIndicator() : (this.value = i.value, this._groupController.sync(), this.dispatchEvent(new Event("input", {
|
|
@@ -136,19 +135,13 @@ var g = class extends l {
|
|
|
136
135
|
handlePointerLeave() {
|
|
137
136
|
this._dragGestureHandle?.isDragging() || (this._pressed = !1);
|
|
138
137
|
}
|
|
139
|
-
formResetCallback() {
|
|
140
|
-
this._formAssociation.reset();
|
|
141
|
-
}
|
|
142
138
|
formDisabledCallback(e) {
|
|
143
139
|
this._formAssociation.setDisabled(e), this._groupController.sync();
|
|
144
140
|
}
|
|
145
|
-
formStateRestoreCallback(e) {
|
|
146
|
-
this._formAssociation.restore(e);
|
|
147
|
-
}
|
|
148
141
|
render() {
|
|
149
|
-
return
|
|
142
|
+
return f`
|
|
150
143
|
<div
|
|
151
|
-
class=${
|
|
144
|
+
class=${_({
|
|
152
145
|
"wui-segmented": !0,
|
|
153
146
|
"is-disabled": this._isDisabled,
|
|
154
147
|
"is-pressed": this._pressed,
|
|
@@ -168,17 +161,17 @@ var g = class extends l {
|
|
|
168
161
|
`;
|
|
169
162
|
}
|
|
170
163
|
};
|
|
171
|
-
e([
|
|
164
|
+
e([h({
|
|
172
165
|
type: String,
|
|
173
166
|
reflect: !0
|
|
174
|
-
})],
|
|
167
|
+
})], v.prototype, "name", void 0), e([h({
|
|
175
168
|
type: Boolean,
|
|
176
169
|
reflect: !0
|
|
177
|
-
})],
|
|
170
|
+
})], v.prototype, "disabled", void 0), e([h({
|
|
178
171
|
type: Boolean,
|
|
179
172
|
reflect: !0
|
|
180
|
-
})],
|
|
173
|
+
})], v.prototype, "required", void 0), e([g()], v.prototype, "_value", void 0), e([g()], v.prototype, "_indicatorReady", void 0), e([g()], v.prototype, "_pressed", void 0), e([g()], v.prototype, "_isDragging", void 0), v = e([m("web-ui-segmented")], v);
|
|
181
174
|
//#endregion
|
|
182
|
-
export {
|
|
175
|
+
export { v as WebUiSegmented };
|
|
183
176
|
|
|
184
177
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/components/segmented/index.ts"],"sourcesContent":["import { html, LitElement, unsafeCSS } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\n\nimport { defineFormAssociation, FormAssociationController } from '@/shared/form-association'\nimport { attachDragGesture, type DragGestureHandle } from '@/shared/gesture/drag-gesture'\nimport { clamp, snapToNearest } from '@/shared/gesture/physics'\nimport { defineGroupCoordinator, GroupController } from '@/shared/group-management'\n\nimport type { WebUiSegmentedTrigger } from '../segmented-trigger'\n\nimport style from './style.css?inline'\n\n@customElement('web-ui-segmented')\nexport class WebUiSegmented extends LitElement {\n static override styles = unsafeCSS(style)\n static formAssociated = true\n\n @property({ type: String, reflect: true }) name = ''\n @property({ type: Boolean, reflect: true }) disabled = false\n @property({ type: Boolean, reflect: true }) required = false\n\n @state() private _value = ''\n @state() private _indicatorReady = false\n @state() private _pressed = false\n @state() private _isDragging = false\n\n private _dragGestureHandle: DragGestureHandle | null = null\n\n override disconnectedCallback() {\n super.disconnectedCallback()\n this._dragGestureHandle?.destroy()\n this._dragGestureHandle = null\n }\n\n private readonly _groupController = new GroupController(\n this,\n defineGroupCoordinator<WebUiSegmentedTrigger, string>({\n host: this,\n getItems: () => [...this.querySelectorAll<WebUiSegmentedTrigger>('web-ui-segmented-trigger')],\n getValue: () => this._value,\n setValue: value => {\n this.value = value\n },\n getDisabled: () => this._isDisabled,\n isItem: (target): target is WebUiSegmentedTrigger =>\n target instanceof HTMLElement && target.matches('web-ui-segmented-trigger'),\n isItemSelected: (trigger, value) => trigger.value === value,\n getNextValue: (trigger, value) => (trigger.checked ? trigger.value : value),\n valuesEqual: (a, b) => a === b,\n copyValue: value => value,\n setItemSelected: (trigger, selected) => {\n trigger.checked = selected\n },\n dispatchValueChange: () => {\n this.dispatchEvent(new Event('input', { bubbles: true, composed: true }))\n this.dispatchEvent(new Event('change', { bubbles: true, composed: true }))\n }\n }).make(),\n { afterSync: () => requestAnimationFrame(() => this._updateIndicator()) }\n )\n\n get value(): string {\n return this._value\n }\n\n set value(v: string) {\n const old = this._value\n this._value = v\n this._formAssociation.sync()\n this.requestUpdate('value', old)\n }\n\n private get _isDisabled(): boolean {\n return this.disabled || this._formAssociation.isFormDisabled()\n }\n\n private _updateIndicator() {\n const triggers = this.querySelectorAll<WebUiSegmentedTrigger>('web-ui-segmented-trigger')\n let left = 0\n let width = 0\n\n triggers.forEach(trigger => {\n if (trigger.value === this._value) {\n const triggerRect = trigger.getBoundingClientRect()\n const groupRect = this.getBoundingClientRect()\n left = triggerRect.left - groupRect.left\n width = triggerRect.width\n }\n })\n\n this.style.setProperty('--indicator-left', `${left}px`)\n this.style.setProperty('--indicator-width', `${width}px`)\n\n // 首帧只完成定位:先把当前定位以「未启用 left/width transition」状态提交为 before 值,\n // 再打开移动动画。若同一趟里 set 定位与启用 transition,浏览器会把 0→选项 当作一次过渡。\n if (!this._indicatorReady) {\n const indicator = this.renderRoot.querySelector<HTMLElement>('.wui-segmented-indicator')\n void indicator?.offsetWidth\n this._indicatorReady = true\n }\n }\n\n private handlePointerDown(e: PointerEvent) {\n if (this._isDisabled) return\n const triggers = [...this.querySelectorAll<WebUiSegmentedTrigger>('web-ui-segmented-trigger')]\n const enabledTriggers = triggers.filter(t => !t.disabled)\n if (enabledTriggers.length === 0) return\n\n // 必须按下当前选中的 trigger 才能启动指示器拖拽\n const activeTrigger = triggers.find(t => t.value === this._value)\n if (!activeTrigger || activeTrigger.disabled) return\n\n const activeTriggerRect = activeTrigger.getBoundingClientRect()\n const isPressedOnActive =\n e.clientX >= activeTriggerRect.left &&\n e.clientX <= activeTriggerRect.right &&\n e.clientY >= activeTriggerRect.top &&\n e.clientY <= activeTriggerRect.bottom\n\n if (!isPressedOnActive) return\n\n this._pressed = true\n\n const groupRect = this.getBoundingClientRect()\n const initialTriggerRect = activeTrigger.getBoundingClientRect()\n const initialLeft = initialTriggerRect.left - groupRect.left\n const initialWidth = initialTriggerRect.width\n\n const firstTriggerRect = triggers[0].getBoundingClientRect()\n const lastTriggerRect = triggers[triggers.length - 1].getBoundingClientRect()\n const minLeft = firstTriggerRect.left - groupRect.left\n const maxLeft = lastTriggerRect.right - groupRect.left - initialWidth\n\n const enabledCenters = enabledTriggers.map(t => {\n const r = t.getBoundingClientRect()\n return r.left - groupRect.left + r.width / 2\n })\n\n this._dragGestureHandle?.destroy()\n this._dragGestureHandle = attachDragGesture(e, {\n axis: 'x',\n threshold: 6,\n onMove: info => {\n this._isDragging = true\n const currentLeft = clamp(initialLeft + info.deltaX, minLeft, maxLeft)\n this.style.setProperty('--indicator-left', `${currentLeft}px`)\n this.style.setProperty('--indicator-width', `${initialWidth}px`)\n },\n onEnd: info => {\n const wasDragging = this._isDragging\n this._isDragging = false\n this._pressed = false\n\n if (wasDragging) {\n const currentLeft = clamp(initialLeft + info.deltaX, minLeft, maxLeft)\n const currentCenter = currentLeft + initialWidth / 2\n\n let targetTrigger = activeTrigger\n if (info.velocityX > 300) {\n const currentIdx = enabledTriggers.indexOf(activeTrigger)\n if (currentIdx !== -1 && currentIdx < enabledTriggers.length - 1) {\n targetTrigger = enabledTriggers[currentIdx + 1]\n } else {\n targetTrigger = enabledTriggers[enabledTriggers.length - 1]\n }\n } else if (info.velocityX < -300) {\n const currentIdx = enabledTriggers.indexOf(activeTrigger)\n if (currentIdx > 0) {\n targetTrigger = enabledTriggers[currentIdx - 1]\n } else {\n targetTrigger = enabledTriggers[0]\n }\n } else {\n const nearestIdx = snapToNearest(currentCenter, enabledCenters)\n if (nearestIdx !== -1 && enabledTriggers[nearestIdx]) {\n targetTrigger = enabledTriggers[nearestIdx]\n }\n }\n\n if (targetTrigger.value !== this._value) {\n this.value = targetTrigger.value\n this._groupController.sync()\n this.dispatchEvent(new Event('input', { bubbles: true, composed: true }))\n this.dispatchEvent(new Event('change', { bubbles: true, composed: true }))\n } else {\n this._updateIndicator()\n }\n }\n this.requestUpdate()\n },\n onCancel: () => {\n this._isDragging = false\n this._pressed = false\n this._updateIndicator()\n this.requestUpdate()\n }\n })\n }\n\n private handlePointerUp() {\n this._pressed = false\n }\n\n private handlePointerLeave() {\n if (!this._dragGestureHandle?.isDragging()) {\n this._pressed = false\n }\n }\n\n private readonly _formAssociation = defineFormAssociation<string>({\n host: this,\n initialize: () => {\n const attrValue = this.getAttribute('value')\n if (attrValue !== null && this._value === '') this._value = attrValue\n },\n getState: () => this._value,\n setState: value => {\n this.value = value\n },\n getFormValue: () => (this.name && this._value ? this._value : null),\n getFormState: () => this._value,\n restoreState: state => {\n if (typeof state === 'string') this.value = state\n }\n }).make()\n\n private readonly _formAssociationController = new FormAssociationController(this, this._formAssociation)\n\n formResetCallback() {\n this._formAssociation.reset()\n }\n\n formDisabledCallback(disabled: boolean) {\n this._formAssociation.setDisabled(disabled)\n this._groupController.sync()\n }\n\n formStateRestoreCallback(state: string | File | FormData | null) {\n this._formAssociation.restore(state)\n }\n\n override render() {\n return html`\n <div\n class=${classMap({\n 'wui-segmented': true,\n 'is-disabled': this._isDisabled,\n 'is-pressed': this._pressed,\n 'is-dragging': this._isDragging,\n 'is-indicator-ready': this._indicatorReady\n })}\n role=\"listbox\"\n aria-orientation=\"horizontal\"\n @pointerdown=${this.handlePointerDown}\n @pointerup=${this.handlePointerUp}\n @pointercancel=${this.handlePointerUp}\n @pointerleave=${this.handlePointerLeave}\n >\n <span class=\"wui-segmented-indicator\"></span>\n <slot></slot>\n </div>\n `\n }\n\n declare readonly $events: {\n input: Event\n change: Event\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'web-ui-segmented': WebUiSegmented\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/components/segmented/index.ts"],"sourcesContent":["import { html, LitElement, unsafeCSS } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\n\nimport { installPointerFocusSuppression } from '@/shared/focus/pointer-focus'\nimport { FormAssociated, defineFormAssociation, FormAssociationController } from '@/shared/form-association'\nimport { attachDragGesture, type DragGestureHandle } from '@/shared/gesture/drag-gesture'\nimport { clamp, snapToNearest } from '@/shared/gesture/physics'\nimport { defineGroupCoordinator, GroupController } from '@/shared/group-management'\n\nimport type { WebUiSegmentedTrigger } from '../segmented-trigger'\n\nimport style from './style.css?inline'\n\ninstallPointerFocusSuppression()\n\n@customElement('web-ui-segmented')\nexport class WebUiSegmented extends FormAssociated(LitElement) {\n static override styles = unsafeCSS(style)\n @property({ type: String, reflect: true }) name = ''\n @property({ type: Boolean, reflect: true }) disabled = false\n @property({ type: Boolean, reflect: true }) required = false\n\n @state() private _value = ''\n @state() private _indicatorReady = false\n @state() private _pressed = false\n @state() private _isDragging = false\n\n private _dragGestureHandle: DragGestureHandle | null = null\n\n override disconnectedCallback() {\n super.disconnectedCallback()\n this._dragGestureHandle?.destroy()\n this._dragGestureHandle = null\n }\n\n private readonly _groupController = new GroupController(\n this,\n defineGroupCoordinator<WebUiSegmentedTrigger, string>({\n host: this,\n getItems: () => [...this.querySelectorAll<WebUiSegmentedTrigger>('web-ui-segmented-trigger')],\n getValue: () => this._value,\n setValue: value => {\n this.value = value\n },\n getDisabled: () => this._isDisabled,\n isItem: (target): target is WebUiSegmentedTrigger =>\n target instanceof HTMLElement && target.matches('web-ui-segmented-trigger'),\n isItemSelected: (trigger, value) => trigger.value === value,\n getNextValue: (trigger, value) => (trigger.checked ? trigger.value : value),\n valuesEqual: (a, b) => a === b,\n copyValue: value => value,\n setItemSelected: (trigger, selected) => {\n trigger.checked = selected\n },\n dispatchValueChange: () => {\n this.dispatchEvent(new Event('input', { bubbles: true, composed: true }))\n this.dispatchEvent(new Event('change', { bubbles: true, composed: true }))\n }\n }).make(),\n { afterSync: () => requestAnimationFrame(() => this._updateIndicator()) }\n )\n\n get value(): string {\n return this._value\n }\n\n set value(v: string) {\n const old = this._value\n this._value = v\n this._formAssociation.sync()\n this.requestUpdate('value', old)\n }\n\n private get _isDisabled(): boolean {\n return this.disabled || this._formAssociation.isFormDisabled()\n }\n\n private _updateIndicator() {\n const triggers = this.querySelectorAll<WebUiSegmentedTrigger>('web-ui-segmented-trigger')\n let left = 0\n let width = 0\n\n triggers.forEach(trigger => {\n if (trigger.value === this._value) {\n const triggerRect = trigger.getBoundingClientRect()\n const groupRect = this.getBoundingClientRect()\n left = triggerRect.left - groupRect.left\n width = triggerRect.width\n }\n })\n\n this.style.setProperty('--indicator-left', `${left}px`)\n this.style.setProperty('--indicator-width', `${width}px`)\n\n // 首帧只完成定位:先把当前定位以「未启用 left/width transition」状态提交为 before 值,\n // 再打开移动动画。若同一趟里 set 定位与启用 transition,浏览器会把 0→选项 当作一次过渡。\n if (!this._indicatorReady) {\n const indicator = this.renderRoot.querySelector<HTMLElement>('.wui-segmented-indicator')\n void indicator?.offsetWidth\n this._indicatorReady = true\n }\n }\n\n private handlePointerDown(e: PointerEvent) {\n if (this._isDisabled) return\n const triggers = [...this.querySelectorAll<WebUiSegmentedTrigger>('web-ui-segmented-trigger')]\n const enabledTriggers = triggers.filter(t => !t.disabled)\n if (enabledTriggers.length === 0) return\n\n // 必须按下当前选中的 trigger 才能启动指示器拖拽\n const activeTrigger = triggers.find(t => t.value === this._value)\n if (!activeTrigger || activeTrigger.disabled) return\n\n const activeTriggerRect = activeTrigger.getBoundingClientRect()\n const isPressedOnActive =\n e.clientX >= activeTriggerRect.left &&\n e.clientX <= activeTriggerRect.right &&\n e.clientY >= activeTriggerRect.top &&\n e.clientY <= activeTriggerRect.bottom\n\n if (!isPressedOnActive) return\n\n this._pressed = true\n\n const groupRect = this.getBoundingClientRect()\n const initialTriggerRect = activeTrigger.getBoundingClientRect()\n const initialLeft = initialTriggerRect.left - groupRect.left\n const initialWidth = initialTriggerRect.width\n\n const firstTriggerRect = triggers[0].getBoundingClientRect()\n const lastTriggerRect = triggers[triggers.length - 1].getBoundingClientRect()\n const minLeft = firstTriggerRect.left - groupRect.left\n const maxLeft = lastTriggerRect.right - groupRect.left - initialWidth\n\n const enabledCenters = enabledTriggers.map(t => {\n const r = t.getBoundingClientRect()\n return r.left - groupRect.left + r.width / 2\n })\n\n this._dragGestureHandle?.destroy()\n this._dragGestureHandle = attachDragGesture(e, {\n axis: 'x',\n threshold: 6,\n onMove: info => {\n this._isDragging = true\n const currentLeft = clamp(initialLeft + info.deltaX, minLeft, maxLeft)\n this.style.setProperty('--indicator-left', `${currentLeft}px`)\n this.style.setProperty('--indicator-width', `${initialWidth}px`)\n },\n onEnd: info => {\n const wasDragging = this._isDragging\n this._isDragging = false\n this._pressed = false\n\n if (wasDragging) {\n const currentLeft = clamp(initialLeft + info.deltaX, minLeft, maxLeft)\n const currentCenter = currentLeft + initialWidth / 2\n\n let targetTrigger = activeTrigger\n if (info.velocityX > 300) {\n const currentIdx = enabledTriggers.indexOf(activeTrigger)\n if (currentIdx !== -1 && currentIdx < enabledTriggers.length - 1) {\n targetTrigger = enabledTriggers[currentIdx + 1]\n } else {\n targetTrigger = enabledTriggers[enabledTriggers.length - 1]\n }\n } else if (info.velocityX < -300) {\n const currentIdx = enabledTriggers.indexOf(activeTrigger)\n if (currentIdx > 0) {\n targetTrigger = enabledTriggers[currentIdx - 1]\n } else {\n targetTrigger = enabledTriggers[0]\n }\n } else {\n const nearestIdx = snapToNearest(currentCenter, enabledCenters)\n if (nearestIdx !== -1 && enabledTriggers[nearestIdx]) {\n targetTrigger = enabledTriggers[nearestIdx]\n }\n }\n\n if (targetTrigger.value !== this._value) {\n this.value = targetTrigger.value\n this._groupController.sync()\n this.dispatchEvent(new Event('input', { bubbles: true, composed: true }))\n this.dispatchEvent(new Event('change', { bubbles: true, composed: true }))\n } else {\n this._updateIndicator()\n }\n }\n this.requestUpdate()\n },\n onCancel: () => {\n this._isDragging = false\n this._pressed = false\n this._updateIndicator()\n this.requestUpdate()\n }\n })\n }\n\n private handlePointerUp() {\n this._pressed = false\n }\n\n private handlePointerLeave() {\n if (!this._dragGestureHandle?.isDragging()) {\n this._pressed = false\n }\n }\n\n private readonly _formAssociation = defineFormAssociation<string>({\n host: this,\n initialize: () => {\n const attrValue = this.getAttribute('value')\n if (attrValue !== null && this._value === '') this._value = attrValue\n },\n getState: () => this._value,\n setState: value => {\n this.value = value\n },\n getFormValue: () => (this.name && this._value ? this._value : null),\n getFormState: () => this._value,\n restoreState: state => {\n if (typeof state === 'string') this.value = state\n }\n }).make()\n\n private readonly _formAssociationController = new FormAssociationController(this, this._formAssociation)\n\n override formDisabledCallback(disabled: boolean) {\n this._formAssociation.setDisabled(disabled)\n this._groupController.sync()\n }\n\n override render() {\n return html`\n <div\n class=${classMap({\n 'wui-segmented': true,\n 'is-disabled': this._isDisabled,\n 'is-pressed': this._pressed,\n 'is-dragging': this._isDragging,\n 'is-indicator-ready': this._indicatorReady\n })}\n role=\"listbox\"\n aria-orientation=\"horizontal\"\n @pointerdown=${this.handlePointerDown}\n @pointerup=${this.handlePointerUp}\n @pointercancel=${this.handlePointerUp}\n @pointerleave=${this.handlePointerLeave}\n >\n <span class=\"wui-segmented-indicator\"></span>\n <slot></slot>\n </div>\n `\n }\n\n declare readonly $events: {\n input: Event\n change: Event\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'web-ui-segmented': WebUiSegmented\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
//#region src/components/segmented/style.css?inline
|
|
2
|
-
var e = "*,:before,:after{box-sizing:border-box}:host{-webkit-user-select:none;user-select:none;display:inline-block}.wui-segmented{touch-action:
|
|
2
|
+
var e = "*,:before,:after{box-sizing:border-box}:host{touch-action:none;-webkit-user-select:none;user-select:none;display:inline-block}.wui-segmented{touch-action:none;cursor:default;border-radius:var(--wui-radius-control,calc(infinity * 1px));background-color:var(--wui-color-surface-segmented,#e5e5ea);align-items:stretch;padding:4px;display:inline-flex;position:relative}.wui-segmented.is-disabled{cursor:not-allowed;opacity:.4}.wui-segmented.is-disabled .wui-segmented-trigger.is-disabled{opacity:1}.wui-segmented-indicator{z-index:0;top:4px;bottom:4px;left:var(--indicator-left,0);transform-origin:50%;width:var(--indicator-width,0);border-radius:var(--wui-radius-control,calc(infinity * 1px));background-color:var(--wui-color-surface-selected,#fff);transition:transform var(--wui-duration-press,80ms) cubic-bezier(.4, 0, .2, 1), background-color var(--wui-duration-press,80ms) ease, box-shadow var(--wui-duration-press,80ms) ease;display:block;position:absolute;transform:scale(1);box-shadow:0 1px 3px #0000001f,0 1px 2px #00000014}.is-indicator-ready:not(.is-dragging) .wui-segmented-indicator{transition:left var(--wui-duration-trigger,.16s) var(--wui-ease-slide,cubic-bezier(.77, 0, .175, 1)), width var(--wui-duration-trigger,.16s) var(--wui-ease-slide,cubic-bezier(.77, 0, .175, 1)), transform var(--wui-duration-press,80ms) cubic-bezier(.4, 0, .2, 1), background-color var(--wui-duration-press,80ms) ease, box-shadow var(--wui-duration-press,80ms) ease}.wui-segmented.is-pressed .wui-segmented-indicator,.wui-segmented.is-dragging .wui-segmented-indicator{background-color:var(--wui-color-surface-glass,#fafafa57);-webkit-backdrop-filter:blur(4px)saturate(160%);backdrop-filter:blur(4px)saturate(160%);transform:scale(1.5);box-shadow:0 0 1px #0000001a,0 5px 14px #00000029,0 12px 28px #0000001a}.wui-segmented.is-dragging:not(.is-disabled){--wui-internal-segmented-trigger-cursor:grabbing;cursor:grabbing}";
|
|
3
3
|
//#endregion
|
|
4
4
|
export { e as default };
|
|
5
5
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style.js","names":[],"sources":["../../../src/components/segmented/style.css?inline"],"sourcesContent":["*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n:host {\n user-select: none;\n display: inline-block;\n}\n\n.wui-segmented {\n touch-action:
|
|
1
|
+
{"version":3,"file":"style.js","names":[],"sources":["../../../src/components/segmented/style.css?inline"],"sourcesContent":["*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n:host {\n touch-action: none;\n user-select: none;\n display: inline-block;\n}\n\n.wui-segmented {\n touch-action: none;\n cursor: default;\n\n position: relative;\n\n display: inline-flex;\n align-items: stretch;\n\n padding: 4px;\n border-radius: var(--wui-radius-control, calc(infinity * 1px));\n\n background-color: var(--wui-color-surface-segmented, #e5e5ea);\n\n &.is-disabled {\n cursor: not-allowed;\n opacity: 0.4;\n }\n\n &.is-disabled .wui-segmented-trigger.is-disabled {\n opacity: 1;\n }\n}\n\n.wui-segmented-indicator {\n position: absolute;\n z-index: 0;\n top: 4px;\n bottom: 4px;\n left: var(--indicator-left, 0);\n transform-origin: center center;\n transform: scale(1);\n\n display: block;\n\n width: var(--indicator-width, 0);\n border-radius: var(--wui-radius-control, calc(infinity * 1px));\n\n /* 静止态实体白指示器;按压/拖拽时切换为玻璃(半透明玻璃背景 + backdrop blur +\n 描边)并放大 1.5x,回到最初修复不跟手问题时期的视觉结构。 */\n background-color: var(--wui-color-surface-selected, #fff);\n box-shadow:\n 0 1px 3px rgb(0 0 0 / 0.12),\n 0 1px 2px rgb(0 0 0 / 0.08);\n\n transition:\n transform var(--wui-duration-press, 80ms) cubic-bezier(0.4, 0, 0.2, 1),\n background-color var(--wui-duration-press, 80ms) ease,\n box-shadow var(--wui-duration-press, 80ms) ease;\n\n /* transition 只在首帧定位后且非拖拽状态启用,避免组件进入视口时触发初始化动画或拖拽跟手产生延迟 */\n .is-indicator-ready:not(.is-dragging) & {\n transition:\n left var(--wui-duration-trigger, 160ms) var(--wui-ease-slide, cubic-bezier(0.77, 0, 0.175, 1)),\n width var(--wui-duration-trigger, 160ms) var(--wui-ease-slide, cubic-bezier(0.77, 0, 0.175, 1)),\n transform var(--wui-duration-press, 80ms) cubic-bezier(0.4, 0, 0.2, 1),\n background-color var(--wui-duration-press, 80ms) ease,\n box-shadow var(--wui-duration-press, 80ms) ease;\n }\n}\n\n.wui-segmented.is-pressed .wui-segmented-indicator,\n.wui-segmented.is-dragging .wui-segmented-indicator {\n transform: scale(1.5);\n\n background-color: var(--wui-color-surface-glass, rgb(250 250 250 / 0.34));\n\n /* stylelint-disable-next-line property-no-vendor-prefix */\n -webkit-backdrop-filter: blur(4px) saturate(160%);\n backdrop-filter: blur(4px) saturate(160%);\n\n /* 按下/拖拽时加深投影(立体玻璃感)。直接写死值、不经过 var 中转:iOS Safari 对\n var 离散切换驱动的 box-shadow 不触发过渡且可能整体不生效(上一轮真机「回退之前」)。 */\n box-shadow:\n 0 0 1px rgb(0 0 0 / 0.1),\n 0 5px 14px rgb(0 0 0 / 0.16),\n 0 12px 28px rgb(0 0 0 / 0.1);\n}\n\n.wui-segmented.is-dragging:not(.is-disabled) {\n --wui-internal-segmented-trigger-cursor: grabbing;\n cursor: grabbing;\n}\n"],"mappings":""}
|