@ds-mo/ui 1.2.0 → 1.3.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.md +82 -2
- package/dist/components/ds-badge.js +1 -1
- package/dist/components/ds-badge.js.map +1 -1
- package/dist/components/ds-banner.js +1 -1
- package/dist/components/ds-banner.js.map +1 -1
- package/dist/components/ds-bar-nav-action.js +1 -1
- package/dist/components/ds-bar-nav.js +1 -1
- package/dist/components/ds-bar-nav.js.map +1 -1
- package/dist/components/ds-button-group.js +1 -1
- package/dist/components/ds-checkbox.js +1 -1
- package/dist/components/ds-chip.d.ts +11 -0
- package/dist/components/ds-chip.js +2 -0
- package/dist/components/ds-chip.js.map +1 -0
- package/dist/components/ds-divider.js +1 -1
- package/dist/components/ds-empty-state.js +1 -1
- package/dist/components/ds-fade.js +1 -1
- package/dist/components/ds-fade.js.map +1 -1
- package/dist/components/ds-field.js +1 -1
- package/dist/components/ds-header.js +1 -1
- package/dist/components/ds-icon.js +1 -1
- package/dist/components/ds-input.js +1 -1
- package/dist/components/ds-modal.js +1 -1
- package/dist/components/ds-modal.js.map +1 -1
- package/dist/components/ds-panel-nav.js +1 -1
- package/dist/components/ds-panel-nav.js.map +1 -1
- package/dist/components/ds-radio-group.js +1 -1
- package/dist/components/ds-scrollbar.js +1 -1
- package/dist/components/ds-select.js +1 -1
- package/dist/components/ds-sidebar.js +1 -1
- package/dist/components/ds-sidebar.js.map +1 -1
- package/dist/components/ds-slider.js +1 -1
- package/dist/components/ds-surface.js +1 -1
- package/dist/components/ds-tab-group-nav.js +1 -1
- package/dist/components/ds-tab-group.js +1 -1
- package/dist/components/ds-tab-group.js.map +1 -1
- package/dist/components/ds-table.js +1 -1
- package/dist/components/ds-table.js.map +1 -1
- package/dist/components/ds-tag.js +1 -1
- package/dist/components/ds-tag.js.map +1 -1
- package/dist/components/ds-text.js +1 -1
- package/dist/components/ds-toast-provider.js +1 -1
- package/dist/components/ds-toggle-button-group.js +1 -1
- package/dist/components/ds-toggle-button.js +1 -1
- package/dist/components/ds-toggle.js +1 -1
- package/dist/components/ds-tooltip.js +1 -1
- package/dist/components/p-B_enucPQ.js +2 -0
- package/dist/components/p-B_enucPQ.js.map +1 -0
- package/dist/components/p-DOtcc9UU.js +2 -0
- package/dist/components/p-DOtcc9UU.js.map +1 -0
- package/dist/components/{p-H89PzqGU.js → p-DrDrPeVV.js} +2 -2
- package/dist/components/{p-Cj00JkJb.js → p-OT-Q-NxH.js} +2 -2
- package/dist/components/{p-CE5zeV1w.js → p-U1A-rprN.js} +2 -2
- package/dist/components/p-X1N_ggsY.js +2 -0
- package/dist/components/p-X1N_ggsY.js.map +1 -0
- package/dist/components/p-qfvbc9w-.js +2 -0
- package/dist/components/p-qfvbc9w-.js.map +1 -0
- package/dist/types/.stencil/Badge/Badge.d.ts +12 -0
- package/dist/types/.stencil/Badge/index.d.ts +1 -1
- package/dist/types/.stencil/Chip/Chip.d.ts +30 -0
- package/dist/types/.stencil/Chip/index.d.ts +2 -0
- package/dist/types/.stencil/Fade/Fade.d.ts +17 -2
- package/dist/types/.stencil/Fade/index.d.ts +1 -1
- package/dist/types/.stencil/Tag/Tag.d.ts +0 -17
- package/dist/types/.stencil/Tag/index.d.ts +1 -1
- package/dist/types/components.d.ts +226 -80
- package/package.json +12 -5
- package/src/angular/index.ts +1 -0
- package/src/angular/proxies.ts +47 -24
- package/src/react/components.ts +1 -0
- package/src/react/ds-chip.ts +35 -0
- package/src/react/ds-tag.ts +3 -12
- package/src/wc/components/Badge/Badge.tsx +58 -8
- package/src/wc/components/Badge/index.ts +1 -1
- package/src/wc/components/Banner/Banner.tsx +2 -2
- package/src/wc/components/BarNav/BarNav.tsx +7 -1
- package/src/wc/components/BarNavAction/BarNavAction.tsx +9 -1
- package/src/wc/components/Chip/Chip.tsx +127 -0
- package/src/wc/components/Chip/index.ts +1 -0
- package/src/wc/components/Fade/Fade.tsx +86 -6
- package/src/wc/components/Fade/index.ts +1 -1
- package/src/wc/components/PanelNav/PanelNav.tsx +17 -1
- package/src/wc/components/TabGroup/TabGroup.tsx +9 -1
- package/src/wc/components/TabGroupNav/TabGroupNav.tsx +9 -1
- package/src/wc/components/Tag/Tag.tsx +3 -70
- package/src/wc/components/Tag/index.ts +1 -1
- package/src/wc/components.d.ts +226 -80
- package/dist/components/p-CQQe6VNo.js +0 -2
- package/dist/components/p-CQQe6VNo.js.map +0 -1
- package/dist/components/p-Vwlmhl4E.js +0 -2
- package/dist/components/p-Vwlmhl4E.js.map +0 -1
- /package/dist/components/{p-H89PzqGU.js.map → p-DrDrPeVV.js.map} +0 -0
- /package/dist/components/{p-Cj00JkJb.js.map → p-OT-Q-NxH.js.map} +0 -0
- /package/dist/components/{p-CE5zeV1w.js.map → p-U1A-rprN.js.map} +0 -0
package/src/wc/components.d.ts
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { HTMLStencilElement, JSXBase } from "@stencil/core/internal";
|
|
8
8
|
import { AccordionItemData } from "./components/Accordion/Accordion";
|
|
9
|
+
import { BadgeSurface, BadgeVariant } from "./components/Badge/Badge";
|
|
9
10
|
import { BannerContrast, BannerIntent } from "./components/Banner/Banner";
|
|
10
11
|
import { BarNavActionItem, BarNavBackground, BarNavTab } from "./components/BarNav/BarNav";
|
|
11
12
|
import { BarNavActionBackground } from "./components/BarNavAction/BarNavAction";
|
|
@@ -13,9 +14,10 @@ import { BreadcrumbItem } from "./components/Breadcrumb/Breadcrumb";
|
|
|
13
14
|
import { ButtonBackground, ButtonContrast, ButtonElevation, ButtonIntent, ButtonSize, ButtonVariant } from "./components/Button/Button";
|
|
14
15
|
import { ButtonGroupElevation, ButtonGroupItem, ButtonGroupSize } from "./components/ButtonGroup/ButtonGroup";
|
|
15
16
|
import { CardElevation, CardRadius } from "./components/Card/Card";
|
|
17
|
+
import { ChipBackground, ChipContrast, ChipElevation, ChipIntent, ChipSize } from "./components/Chip/Chip";
|
|
16
18
|
import { DividerInset, DividerLength, DividerOrientation, DividerSurface } from "./components/Divider/Divider";
|
|
17
19
|
import { EmptyStateType } from "./components/EmptyState/EmptyState";
|
|
18
|
-
import { FadeSide } from "./components/Fade/Fade";
|
|
20
|
+
import { FadeSide, FadeSize, FadeSurface } from "./components/Fade/Fade";
|
|
19
21
|
import { HeaderBackground } from "./components/Header/Header";
|
|
20
22
|
import { IconColor, IconSize } from "./components/Icon/Icon";
|
|
21
23
|
import { InputType } from "./components/Input/Input";
|
|
@@ -32,13 +34,14 @@ import { TabItem } from "./components/TabGroup/tab-item-utils";
|
|
|
32
34
|
import { TabBackground } from "./components/TabGroup/TabGroup";
|
|
33
35
|
import { TabGroupNavBackground } from "./components/TabGroupNav/TabGroupNav";
|
|
34
36
|
import { SortState, TableColumn } from "./components/Table/Table";
|
|
35
|
-
import {
|
|
37
|
+
import { TagContrast, TagElevation, TagIntent, TagSize } from "./components/Tag/Tag";
|
|
36
38
|
import { LineTruncation, TextAlign, TextColor, TextDecoration, TextElement, TextFontFeature, TextVariant, TextWrap } from "./components/Text/Text";
|
|
37
39
|
import { ToastPosition } from "./components/Toast/Toast";
|
|
38
40
|
import { ToggleButtonBackground, ToggleButtonElevation, ToggleButtonSize } from "./components/ToggleButton/ToggleButton";
|
|
39
41
|
import { ToggleGroupBackground, ToggleGroupElevation, ToggleGroupItem, ToggleGroupSize } from "./components/ToggleButtonGroup/ToggleButtonGroup";
|
|
40
42
|
import { TooltipAlign, TooltipSide } from "./components/Tooltip/Tooltip";
|
|
41
43
|
export { AccordionItemData } from "./components/Accordion/Accordion";
|
|
44
|
+
export { BadgeSurface, BadgeVariant } from "./components/Badge/Badge";
|
|
42
45
|
export { BannerContrast, BannerIntent } from "./components/Banner/Banner";
|
|
43
46
|
export { BarNavActionItem, BarNavBackground, BarNavTab } from "./components/BarNav/BarNav";
|
|
44
47
|
export { BarNavActionBackground } from "./components/BarNavAction/BarNavAction";
|
|
@@ -46,9 +49,10 @@ export { BreadcrumbItem } from "./components/Breadcrumb/Breadcrumb";
|
|
|
46
49
|
export { ButtonBackground, ButtonContrast, ButtonElevation, ButtonIntent, ButtonSize, ButtonVariant } from "./components/Button/Button";
|
|
47
50
|
export { ButtonGroupElevation, ButtonGroupItem, ButtonGroupSize } from "./components/ButtonGroup/ButtonGroup";
|
|
48
51
|
export { CardElevation, CardRadius } from "./components/Card/Card";
|
|
52
|
+
export { ChipBackground, ChipContrast, ChipElevation, ChipIntent, ChipSize } from "./components/Chip/Chip";
|
|
49
53
|
export { DividerInset, DividerLength, DividerOrientation, DividerSurface } from "./components/Divider/Divider";
|
|
50
54
|
export { EmptyStateType } from "./components/EmptyState/EmptyState";
|
|
51
|
-
export { FadeSide } from "./components/Fade/Fade";
|
|
55
|
+
export { FadeSide, FadeSize, FadeSurface } from "./components/Fade/Fade";
|
|
52
56
|
export { HeaderBackground } from "./components/Header/Header";
|
|
53
57
|
export { IconColor, IconSize } from "./components/Icon/Icon";
|
|
54
58
|
export { InputType } from "./components/Input/Input";
|
|
@@ -65,7 +69,7 @@ export { TabItem } from "./components/TabGroup/tab-item-utils";
|
|
|
65
69
|
export { TabBackground } from "./components/TabGroup/TabGroup";
|
|
66
70
|
export { TabGroupNavBackground } from "./components/TabGroupNav/TabGroupNav";
|
|
67
71
|
export { SortState, TableColumn } from "./components/Table/Table";
|
|
68
|
-
export {
|
|
72
|
+
export { TagContrast, TagElevation, TagIntent, TagSize } from "./components/Tag/Tag";
|
|
69
73
|
export { LineTruncation, TextAlign, TextColor, TextDecoration, TextElement, TextFontFeature, TextVariant, TextWrap } from "./components/Text/Text";
|
|
70
74
|
export { ToastPosition } from "./components/Toast/Toast";
|
|
71
75
|
export { ToggleButtonBackground, ToggleButtonElevation, ToggleButtonSize } from "./components/ToggleButton/ToggleButton";
|
|
@@ -89,10 +93,16 @@ export namespace Components {
|
|
|
89
93
|
}
|
|
90
94
|
interface DsBadge {
|
|
91
95
|
/**
|
|
96
|
+
* Direct ring background override for component-local surfaces.
|
|
97
|
+
*/
|
|
98
|
+
"background": string | undefined;
|
|
99
|
+
/**
|
|
100
|
+
* Count shown for counter badges. Count 0 hides the badge.
|
|
92
101
|
* @default 0
|
|
93
102
|
*/
|
|
94
103
|
"count": number;
|
|
95
104
|
/**
|
|
105
|
+
* Deprecated alias for selected counter styling. Prefer context-specific color in the parent.
|
|
96
106
|
* @default false
|
|
97
107
|
*/
|
|
98
108
|
"isSelected": boolean;
|
|
@@ -100,6 +110,21 @@ export namespace Components {
|
|
|
100
110
|
* Accessible label. Defaults to the count as a string.
|
|
101
111
|
*/
|
|
102
112
|
"label": string | undefined;
|
|
113
|
+
/**
|
|
114
|
+
* Highest count shown before compacting to "+".
|
|
115
|
+
* @default 9
|
|
116
|
+
*/
|
|
117
|
+
"max": number;
|
|
118
|
+
/**
|
|
119
|
+
* Surface context for the ring around dots.
|
|
120
|
+
* @default 'default'
|
|
121
|
+
*/
|
|
122
|
+
"surface": BadgeSurface;
|
|
123
|
+
/**
|
|
124
|
+
* Render as a compact counter or notification dot.
|
|
125
|
+
* @default 'counter'
|
|
126
|
+
*/
|
|
127
|
+
"variant": BadgeVariant;
|
|
103
128
|
}
|
|
104
129
|
interface DsBanner {
|
|
105
130
|
/**
|
|
@@ -318,6 +343,43 @@ export namespace Components {
|
|
|
318
343
|
"indeterminate": boolean;
|
|
319
344
|
"label": string;
|
|
320
345
|
}
|
|
346
|
+
interface DsChip {
|
|
347
|
+
"background": ChipBackground | undefined;
|
|
348
|
+
/**
|
|
349
|
+
* @default 'faint'
|
|
350
|
+
*/
|
|
351
|
+
"contrast": ChipContrast;
|
|
352
|
+
/**
|
|
353
|
+
* @default 'none'
|
|
354
|
+
*/
|
|
355
|
+
"elevation": ChipElevation;
|
|
356
|
+
/**
|
|
357
|
+
* @default false
|
|
358
|
+
*/
|
|
359
|
+
"inactive": boolean;
|
|
360
|
+
/**
|
|
361
|
+
* @default 'neutral'
|
|
362
|
+
*/
|
|
363
|
+
"intent": ChipIntent;
|
|
364
|
+
"label": string;
|
|
365
|
+
"maxWidth": string | number | undefined;
|
|
366
|
+
/**
|
|
367
|
+
* @default false
|
|
368
|
+
*/
|
|
369
|
+
"pressed": boolean;
|
|
370
|
+
/**
|
|
371
|
+
* @default false
|
|
372
|
+
*/
|
|
373
|
+
"removable": boolean;
|
|
374
|
+
/**
|
|
375
|
+
* @default false
|
|
376
|
+
*/
|
|
377
|
+
"rounded": boolean;
|
|
378
|
+
/**
|
|
379
|
+
* @default 'md'
|
|
380
|
+
*/
|
|
381
|
+
"size": ChipSize;
|
|
382
|
+
}
|
|
321
383
|
interface DsDivider {
|
|
322
384
|
/**
|
|
323
385
|
* Insets the divider from its start/end edges. Accepts spacing token names or any CSS length.
|
|
@@ -354,15 +416,34 @@ export namespace Components {
|
|
|
354
416
|
}
|
|
355
417
|
interface DsFade {
|
|
356
418
|
/**
|
|
357
|
-
*
|
|
419
|
+
* Direct background override for contexts that already expose a resolved surface var.
|
|
358
420
|
* @default 'var(--color-background-secondary)'
|
|
359
421
|
*/
|
|
360
422
|
"background": string;
|
|
361
423
|
/**
|
|
362
|
-
*
|
|
424
|
+
* Deprecated alias for size. Kept for existing consumers that pass a raw CSS length. Prefer `size`.
|
|
363
425
|
*/
|
|
364
426
|
"height": string | undefined;
|
|
427
|
+
/**
|
|
428
|
+
* Edge where the fade is anchored.
|
|
429
|
+
* @default 'bottom'
|
|
430
|
+
*/
|
|
365
431
|
"side": FadeSide;
|
|
432
|
+
/**
|
|
433
|
+
* Fade depth along the fade axis. Accepts dimension size token names or any CSS length.
|
|
434
|
+
* @default 'size-600'
|
|
435
|
+
*/
|
|
436
|
+
"size": FadeSize;
|
|
437
|
+
/**
|
|
438
|
+
* Surface context used to choose the fade target background token.
|
|
439
|
+
* @default 'default'
|
|
440
|
+
*/
|
|
441
|
+
"surface": FadeSurface;
|
|
442
|
+
/**
|
|
443
|
+
* Controls visibility without removing the element from layout/positioning.
|
|
444
|
+
* @default true
|
|
445
|
+
*/
|
|
446
|
+
"visible": boolean;
|
|
366
447
|
}
|
|
367
448
|
interface DsField {
|
|
368
449
|
/**
|
|
@@ -801,7 +882,6 @@ export namespace Components {
|
|
|
801
882
|
"sortState": SortState | undefined;
|
|
802
883
|
}
|
|
803
884
|
interface DsTag {
|
|
804
|
-
"background": TagBackground | undefined;
|
|
805
885
|
/**
|
|
806
886
|
* @default 'faint'
|
|
807
887
|
*/
|
|
@@ -810,29 +890,12 @@ export namespace Components {
|
|
|
810
890
|
* @default 'none'
|
|
811
891
|
*/
|
|
812
892
|
"elevation": TagElevation;
|
|
813
|
-
/**
|
|
814
|
-
* @default false
|
|
815
|
-
*/
|
|
816
|
-
"inactive": boolean;
|
|
817
893
|
/**
|
|
818
894
|
* @default 'neutral'
|
|
819
895
|
*/
|
|
820
896
|
"intent": TagIntent;
|
|
821
|
-
/**
|
|
822
|
-
* Whether the tag has a click/toggle behavior.
|
|
823
|
-
* @default false
|
|
824
|
-
*/
|
|
825
|
-
"interactive": boolean;
|
|
826
897
|
"label": string;
|
|
827
898
|
"maxWidth": string | number | undefined;
|
|
828
|
-
/**
|
|
829
|
-
* @default false
|
|
830
|
-
*/
|
|
831
|
-
"pressed": boolean;
|
|
832
|
-
/**
|
|
833
|
-
* @default false
|
|
834
|
-
*/
|
|
835
|
-
"removable": boolean;
|
|
836
899
|
/**
|
|
837
900
|
* @default false
|
|
838
901
|
*/
|
|
@@ -1022,6 +1085,10 @@ export interface DsCheckboxCustomEvent<T> extends CustomEvent<T> {
|
|
|
1022
1085
|
detail: T;
|
|
1023
1086
|
target: HTMLDsCheckboxElement;
|
|
1024
1087
|
}
|
|
1088
|
+
export interface DsChipCustomEvent<T> extends CustomEvent<T> {
|
|
1089
|
+
detail: T;
|
|
1090
|
+
target: HTMLDsChipElement;
|
|
1091
|
+
}
|
|
1025
1092
|
export interface DsInputCustomEvent<T> extends CustomEvent<T> {
|
|
1026
1093
|
detail: T;
|
|
1027
1094
|
target: HTMLDsInputElement;
|
|
@@ -1070,10 +1137,6 @@ export interface DsTableCustomEvent<T> extends CustomEvent<T> {
|
|
|
1070
1137
|
detail: T;
|
|
1071
1138
|
target: HTMLDsTableElement;
|
|
1072
1139
|
}
|
|
1073
|
-
export interface DsTagCustomEvent<T> extends CustomEvent<T> {
|
|
1074
|
-
detail: T;
|
|
1075
|
-
target: HTMLDsTagElement;
|
|
1076
|
-
}
|
|
1077
1140
|
export interface DsToggleCustomEvent<T> extends CustomEvent<T> {
|
|
1078
1141
|
detail: T;
|
|
1079
1142
|
target: HTMLDsToggleElement;
|
|
@@ -1238,6 +1301,25 @@ declare global {
|
|
|
1238
1301
|
prototype: HTMLDsCheckboxElement;
|
|
1239
1302
|
new (): HTMLDsCheckboxElement;
|
|
1240
1303
|
};
|
|
1304
|
+
interface HTMLDsChipElementEventMap {
|
|
1305
|
+
"dsRemove": void;
|
|
1306
|
+
"dsClick": void;
|
|
1307
|
+
"dsPressedChange": boolean;
|
|
1308
|
+
}
|
|
1309
|
+
interface HTMLDsChipElement extends Components.DsChip, HTMLStencilElement {
|
|
1310
|
+
addEventListener<K extends keyof HTMLDsChipElementEventMap>(type: K, listener: (this: HTMLDsChipElement, ev: DsChipCustomEvent<HTMLDsChipElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1311
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1312
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1313
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
1314
|
+
removeEventListener<K extends keyof HTMLDsChipElementEventMap>(type: K, listener: (this: HTMLDsChipElement, ev: DsChipCustomEvent<HTMLDsChipElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
1315
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
1316
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
1317
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
1318
|
+
}
|
|
1319
|
+
var HTMLDsChipElement: {
|
|
1320
|
+
prototype: HTMLDsChipElement;
|
|
1321
|
+
new (): HTMLDsChipElement;
|
|
1322
|
+
};
|
|
1241
1323
|
interface HTMLDsDividerElement extends Components.DsDivider, HTMLStencilElement {
|
|
1242
1324
|
}
|
|
1243
1325
|
var HTMLDsDividerElement: {
|
|
@@ -1510,20 +1592,7 @@ declare global {
|
|
|
1510
1592
|
prototype: HTMLDsTableElement;
|
|
1511
1593
|
new (): HTMLDsTableElement;
|
|
1512
1594
|
};
|
|
1513
|
-
interface HTMLDsTagElementEventMap {
|
|
1514
|
-
"dsRemove": void;
|
|
1515
|
-
"dsClick": void;
|
|
1516
|
-
"dsPressedChange": boolean;
|
|
1517
|
-
}
|
|
1518
1595
|
interface HTMLDsTagElement extends Components.DsTag, HTMLStencilElement {
|
|
1519
|
-
addEventListener<K extends keyof HTMLDsTagElementEventMap>(type: K, listener: (this: HTMLDsTagElement, ev: DsTagCustomEvent<HTMLDsTagElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1520
|
-
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1521
|
-
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
1522
|
-
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
1523
|
-
removeEventListener<K extends keyof HTMLDsTagElementEventMap>(type: K, listener: (this: HTMLDsTagElement, ev: DsTagCustomEvent<HTMLDsTagElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
1524
|
-
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
1525
|
-
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
1526
|
-
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
1527
1596
|
}
|
|
1528
1597
|
var HTMLDsTagElement: {
|
|
1529
1598
|
prototype: HTMLDsTagElement;
|
|
@@ -1609,6 +1678,7 @@ declare global {
|
|
|
1609
1678
|
"ds-button-group": HTMLDsButtonGroupElement;
|
|
1610
1679
|
"ds-card": HTMLDsCardElement;
|
|
1611
1680
|
"ds-checkbox": HTMLDsCheckboxElement;
|
|
1681
|
+
"ds-chip": HTMLDsChipElement;
|
|
1612
1682
|
"ds-divider": HTMLDsDividerElement;
|
|
1613
1683
|
"ds-empty-state": HTMLDsEmptyStateElement;
|
|
1614
1684
|
"ds-fade": HTMLDsFadeElement;
|
|
@@ -1661,10 +1731,16 @@ declare namespace LocalJSX {
|
|
|
1661
1731
|
}
|
|
1662
1732
|
interface DsBadge {
|
|
1663
1733
|
/**
|
|
1734
|
+
* Direct ring background override for component-local surfaces.
|
|
1735
|
+
*/
|
|
1736
|
+
"background"?: string | undefined;
|
|
1737
|
+
/**
|
|
1738
|
+
* Count shown for counter badges. Count 0 hides the badge.
|
|
1664
1739
|
* @default 0
|
|
1665
1740
|
*/
|
|
1666
1741
|
"count"?: number;
|
|
1667
1742
|
/**
|
|
1743
|
+
* Deprecated alias for selected counter styling. Prefer context-specific color in the parent.
|
|
1668
1744
|
* @default false
|
|
1669
1745
|
*/
|
|
1670
1746
|
"isSelected"?: boolean;
|
|
@@ -1672,6 +1748,21 @@ declare namespace LocalJSX {
|
|
|
1672
1748
|
* Accessible label. Defaults to the count as a string.
|
|
1673
1749
|
*/
|
|
1674
1750
|
"label"?: string | undefined;
|
|
1751
|
+
/**
|
|
1752
|
+
* Highest count shown before compacting to "+".
|
|
1753
|
+
* @default 9
|
|
1754
|
+
*/
|
|
1755
|
+
"max"?: number;
|
|
1756
|
+
/**
|
|
1757
|
+
* Surface context for the ring around dots.
|
|
1758
|
+
* @default 'default'
|
|
1759
|
+
*/
|
|
1760
|
+
"surface"?: BadgeSurface;
|
|
1761
|
+
/**
|
|
1762
|
+
* Render as a compact counter or notification dot.
|
|
1763
|
+
* @default 'counter'
|
|
1764
|
+
*/
|
|
1765
|
+
"variant"?: BadgeVariant;
|
|
1675
1766
|
}
|
|
1676
1767
|
interface DsBanner {
|
|
1677
1768
|
/**
|
|
@@ -1912,6 +2003,55 @@ declare namespace LocalJSX {
|
|
|
1912
2003
|
"label": string;
|
|
1913
2004
|
"onDsChange"?: (event: DsCheckboxCustomEvent<boolean>) => void;
|
|
1914
2005
|
}
|
|
2006
|
+
interface DsChip {
|
|
2007
|
+
"background"?: ChipBackground | undefined;
|
|
2008
|
+
/**
|
|
2009
|
+
* @default 'faint'
|
|
2010
|
+
*/
|
|
2011
|
+
"contrast"?: ChipContrast;
|
|
2012
|
+
/**
|
|
2013
|
+
* @default 'none'
|
|
2014
|
+
*/
|
|
2015
|
+
"elevation"?: ChipElevation;
|
|
2016
|
+
/**
|
|
2017
|
+
* @default false
|
|
2018
|
+
*/
|
|
2019
|
+
"inactive"?: boolean;
|
|
2020
|
+
/**
|
|
2021
|
+
* @default 'neutral'
|
|
2022
|
+
*/
|
|
2023
|
+
"intent"?: ChipIntent;
|
|
2024
|
+
"label": string;
|
|
2025
|
+
"maxWidth"?: string | number | undefined;
|
|
2026
|
+
/**
|
|
2027
|
+
* Fired when an interactive chip is clicked.
|
|
2028
|
+
*/
|
|
2029
|
+
"onDsClick"?: (event: DsChipCustomEvent<void>) => void;
|
|
2030
|
+
/**
|
|
2031
|
+
* Fired when the pressed state toggles.
|
|
2032
|
+
*/
|
|
2033
|
+
"onDsPressedChange"?: (event: DsChipCustomEvent<boolean>) => void;
|
|
2034
|
+
/**
|
|
2035
|
+
* Fired when the remove button is clicked.
|
|
2036
|
+
*/
|
|
2037
|
+
"onDsRemove"?: (event: DsChipCustomEvent<void>) => void;
|
|
2038
|
+
/**
|
|
2039
|
+
* @default false
|
|
2040
|
+
*/
|
|
2041
|
+
"pressed"?: boolean;
|
|
2042
|
+
/**
|
|
2043
|
+
* @default false
|
|
2044
|
+
*/
|
|
2045
|
+
"removable"?: boolean;
|
|
2046
|
+
/**
|
|
2047
|
+
* @default false
|
|
2048
|
+
*/
|
|
2049
|
+
"rounded"?: boolean;
|
|
2050
|
+
/**
|
|
2051
|
+
* @default 'md'
|
|
2052
|
+
*/
|
|
2053
|
+
"size"?: ChipSize;
|
|
2054
|
+
}
|
|
1915
2055
|
interface DsDivider {
|
|
1916
2056
|
/**
|
|
1917
2057
|
* Insets the divider from its start/end edges. Accepts spacing token names or any CSS length.
|
|
@@ -1948,15 +2088,34 @@ declare namespace LocalJSX {
|
|
|
1948
2088
|
}
|
|
1949
2089
|
interface DsFade {
|
|
1950
2090
|
/**
|
|
1951
|
-
*
|
|
2091
|
+
* Direct background override for contexts that already expose a resolved surface var.
|
|
1952
2092
|
* @default 'var(--color-background-secondary)'
|
|
1953
2093
|
*/
|
|
1954
2094
|
"background"?: string;
|
|
1955
2095
|
/**
|
|
1956
|
-
*
|
|
2096
|
+
* Deprecated alias for size. Kept for existing consumers that pass a raw CSS length. Prefer `size`.
|
|
1957
2097
|
*/
|
|
1958
2098
|
"height"?: string | undefined;
|
|
1959
|
-
|
|
2099
|
+
/**
|
|
2100
|
+
* Edge where the fade is anchored.
|
|
2101
|
+
* @default 'bottom'
|
|
2102
|
+
*/
|
|
2103
|
+
"side"?: FadeSide;
|
|
2104
|
+
/**
|
|
2105
|
+
* Fade depth along the fade axis. Accepts dimension size token names or any CSS length.
|
|
2106
|
+
* @default 'size-600'
|
|
2107
|
+
*/
|
|
2108
|
+
"size"?: FadeSize;
|
|
2109
|
+
/**
|
|
2110
|
+
* Surface context used to choose the fade target background token.
|
|
2111
|
+
* @default 'default'
|
|
2112
|
+
*/
|
|
2113
|
+
"surface"?: FadeSurface;
|
|
2114
|
+
/**
|
|
2115
|
+
* Controls visibility without removing the element from layout/positioning.
|
|
2116
|
+
* @default true
|
|
2117
|
+
*/
|
|
2118
|
+
"visible"?: boolean;
|
|
1960
2119
|
}
|
|
1961
2120
|
interface DsField {
|
|
1962
2121
|
/**
|
|
@@ -2429,7 +2588,6 @@ declare namespace LocalJSX {
|
|
|
2429
2588
|
"sortState"?: SortState | undefined;
|
|
2430
2589
|
}
|
|
2431
2590
|
interface DsTag {
|
|
2432
|
-
"background"?: TagBackground | undefined;
|
|
2433
2591
|
/**
|
|
2434
2592
|
* @default 'faint'
|
|
2435
2593
|
*/
|
|
@@ -2438,41 +2596,12 @@ declare namespace LocalJSX {
|
|
|
2438
2596
|
* @default 'none'
|
|
2439
2597
|
*/
|
|
2440
2598
|
"elevation"?: TagElevation;
|
|
2441
|
-
/**
|
|
2442
|
-
* @default false
|
|
2443
|
-
*/
|
|
2444
|
-
"inactive"?: boolean;
|
|
2445
2599
|
/**
|
|
2446
2600
|
* @default 'neutral'
|
|
2447
2601
|
*/
|
|
2448
2602
|
"intent"?: TagIntent;
|
|
2449
|
-
/**
|
|
2450
|
-
* Whether the tag has a click/toggle behavior.
|
|
2451
|
-
* @default false
|
|
2452
|
-
*/
|
|
2453
|
-
"interactive"?: boolean;
|
|
2454
2603
|
"label": string;
|
|
2455
2604
|
"maxWidth"?: string | number | undefined;
|
|
2456
|
-
/**
|
|
2457
|
-
* Fired when an interactive tag is clicked.
|
|
2458
|
-
*/
|
|
2459
|
-
"onDsClick"?: (event: DsTagCustomEvent<void>) => void;
|
|
2460
|
-
/**
|
|
2461
|
-
* Fired when the pressed state toggles.
|
|
2462
|
-
*/
|
|
2463
|
-
"onDsPressedChange"?: (event: DsTagCustomEvent<boolean>) => void;
|
|
2464
|
-
/**
|
|
2465
|
-
* Fired when the remove button is clicked.
|
|
2466
|
-
*/
|
|
2467
|
-
"onDsRemove"?: (event: DsTagCustomEvent<void>) => void;
|
|
2468
|
-
/**
|
|
2469
|
-
* @default false
|
|
2470
|
-
*/
|
|
2471
|
-
"pressed"?: boolean;
|
|
2472
|
-
/**
|
|
2473
|
-
* @default false
|
|
2474
|
-
*/
|
|
2475
|
-
"removable"?: boolean;
|
|
2476
2605
|
/**
|
|
2477
2606
|
* @default false
|
|
2478
2607
|
*/
|
|
@@ -2644,7 +2773,11 @@ declare namespace LocalJSX {
|
|
|
2644
2773
|
"expandedIds": string;
|
|
2645
2774
|
}
|
|
2646
2775
|
interface DsBadgeAttributes {
|
|
2776
|
+
"variant": BadgeVariant;
|
|
2647
2777
|
"count": number;
|
|
2778
|
+
"max": number;
|
|
2779
|
+
"surface": BadgeSurface;
|
|
2780
|
+
"background": string | undefined;
|
|
2648
2781
|
"isSelected": boolean;
|
|
2649
2782
|
"label": string | undefined;
|
|
2650
2783
|
}
|
|
@@ -2713,6 +2846,19 @@ declare namespace LocalJSX {
|
|
|
2713
2846
|
"indeterminate": boolean;
|
|
2714
2847
|
"inactive": boolean;
|
|
2715
2848
|
}
|
|
2849
|
+
interface DsChipAttributes {
|
|
2850
|
+
"label": string;
|
|
2851
|
+
"intent": ChipIntent;
|
|
2852
|
+
"contrast": ChipContrast;
|
|
2853
|
+
"elevation": ChipElevation;
|
|
2854
|
+
"size": ChipSize;
|
|
2855
|
+
"rounded": boolean;
|
|
2856
|
+
"removable": boolean;
|
|
2857
|
+
"maxWidth": string;
|
|
2858
|
+
"inactive": boolean;
|
|
2859
|
+
"background": ChipBackground | undefined;
|
|
2860
|
+
"pressed": boolean;
|
|
2861
|
+
}
|
|
2716
2862
|
interface DsDividerAttributes {
|
|
2717
2863
|
"orientation": DividerOrientation;
|
|
2718
2864
|
"surface": DividerSurface;
|
|
@@ -2726,8 +2872,11 @@ declare namespace LocalJSX {
|
|
|
2726
2872
|
}
|
|
2727
2873
|
interface DsFadeAttributes {
|
|
2728
2874
|
"side": FadeSide;
|
|
2875
|
+
"size": FadeSize;
|
|
2729
2876
|
"height": string | undefined;
|
|
2877
|
+
"surface": FadeSurface;
|
|
2730
2878
|
"background": string;
|
|
2879
|
+
"visible": boolean;
|
|
2731
2880
|
}
|
|
2732
2881
|
interface DsFieldAttributes {
|
|
2733
2882
|
"label": string;
|
|
@@ -2877,12 +3026,7 @@ declare namespace LocalJSX {
|
|
|
2877
3026
|
"elevation": TagElevation;
|
|
2878
3027
|
"size": TagSize;
|
|
2879
3028
|
"rounded": boolean;
|
|
2880
|
-
"removable": boolean;
|
|
2881
3029
|
"maxWidth": string;
|
|
2882
|
-
"inactive": boolean;
|
|
2883
|
-
"background": TagBackground | undefined;
|
|
2884
|
-
"pressed": boolean;
|
|
2885
|
-
"interactive": boolean;
|
|
2886
3030
|
}
|
|
2887
3031
|
interface DsTextAttributes {
|
|
2888
3032
|
"variant": TextVariant;
|
|
@@ -2943,9 +3087,10 @@ declare namespace LocalJSX {
|
|
|
2943
3087
|
"ds-button-group": Omit<DsButtonGroup, keyof DsButtonGroupAttributes> & { [K in keyof DsButtonGroup & keyof DsButtonGroupAttributes]?: DsButtonGroup[K] } & { [K in keyof DsButtonGroup & keyof DsButtonGroupAttributes as `attr:${K}`]?: DsButtonGroupAttributes[K] } & { [K in keyof DsButtonGroup & keyof DsButtonGroupAttributes as `prop:${K}`]?: DsButtonGroup[K] };
|
|
2944
3088
|
"ds-card": Omit<DsCard, keyof DsCardAttributes> & { [K in keyof DsCard & keyof DsCardAttributes]?: DsCard[K] } & { [K in keyof DsCard & keyof DsCardAttributes as `attr:${K}`]?: DsCardAttributes[K] } & { [K in keyof DsCard & keyof DsCardAttributes as `prop:${K}`]?: DsCard[K] };
|
|
2945
3089
|
"ds-checkbox": Omit<DsCheckbox, keyof DsCheckboxAttributes> & { [K in keyof DsCheckbox & keyof DsCheckboxAttributes]?: DsCheckbox[K] } & { [K in keyof DsCheckbox & keyof DsCheckboxAttributes as `attr:${K}`]?: DsCheckboxAttributes[K] } & { [K in keyof DsCheckbox & keyof DsCheckboxAttributes as `prop:${K}`]?: DsCheckbox[K] } & OneOf<"label", DsCheckbox["label"], DsCheckboxAttributes["label"]>;
|
|
3090
|
+
"ds-chip": Omit<DsChip, keyof DsChipAttributes> & { [K in keyof DsChip & keyof DsChipAttributes]?: DsChip[K] } & { [K in keyof DsChip & keyof DsChipAttributes as `attr:${K}`]?: DsChipAttributes[K] } & { [K in keyof DsChip & keyof DsChipAttributes as `prop:${K}`]?: DsChip[K] } & OneOf<"label", DsChip["label"], DsChipAttributes["label"]>;
|
|
2946
3091
|
"ds-divider": Omit<DsDivider, keyof DsDividerAttributes> & { [K in keyof DsDivider & keyof DsDividerAttributes]?: DsDivider[K] } & { [K in keyof DsDivider & keyof DsDividerAttributes as `attr:${K}`]?: DsDividerAttributes[K] } & { [K in keyof DsDivider & keyof DsDividerAttributes as `prop:${K}`]?: DsDivider[K] };
|
|
2947
3092
|
"ds-empty-state": Omit<DsEmptyState, keyof DsEmptyStateAttributes> & { [K in keyof DsEmptyState & keyof DsEmptyStateAttributes]?: DsEmptyState[K] } & { [K in keyof DsEmptyState & keyof DsEmptyStateAttributes as `attr:${K}`]?: DsEmptyStateAttributes[K] } & { [K in keyof DsEmptyState & keyof DsEmptyStateAttributes as `prop:${K}`]?: DsEmptyState[K] };
|
|
2948
|
-
"ds-fade": Omit<DsFade, keyof DsFadeAttributes> & { [K in keyof DsFade & keyof DsFadeAttributes]?: DsFade[K] } & { [K in keyof DsFade & keyof DsFadeAttributes as `attr:${K}`]?: DsFadeAttributes[K] } & { [K in keyof DsFade & keyof DsFadeAttributes as `prop:${K}`]?: DsFade[K] }
|
|
3093
|
+
"ds-fade": Omit<DsFade, keyof DsFadeAttributes> & { [K in keyof DsFade & keyof DsFadeAttributes]?: DsFade[K] } & { [K in keyof DsFade & keyof DsFadeAttributes as `attr:${K}`]?: DsFadeAttributes[K] } & { [K in keyof DsFade & keyof DsFadeAttributes as `prop:${K}`]?: DsFade[K] };
|
|
2949
3094
|
"ds-field": Omit<DsField, keyof DsFieldAttributes> & { [K in keyof DsField & keyof DsFieldAttributes]?: DsField[K] } & { [K in keyof DsField & keyof DsFieldAttributes as `attr:${K}`]?: DsFieldAttributes[K] } & { [K in keyof DsField & keyof DsFieldAttributes as `prop:${K}`]?: DsField[K] } & OneOf<"label", DsField["label"], DsFieldAttributes["label"]>;
|
|
2950
3095
|
"ds-header": Omit<DsHeader, keyof DsHeaderAttributes> & { [K in keyof DsHeader & keyof DsHeaderAttributes]?: DsHeader[K] } & { [K in keyof DsHeader & keyof DsHeaderAttributes as `attr:${K}`]?: DsHeaderAttributes[K] } & { [K in keyof DsHeader & keyof DsHeaderAttributes as `prop:${K}`]?: DsHeader[K] };
|
|
2951
3096
|
"ds-icon": Omit<DsIcon, keyof DsIconAttributes> & { [K in keyof DsIcon & keyof DsIconAttributes]?: DsIcon[K] } & { [K in keyof DsIcon & keyof DsIconAttributes as `attr:${K}`]?: DsIconAttributes[K] } & { [K in keyof DsIcon & keyof DsIconAttributes as `prop:${K}`]?: DsIcon[K] };
|
|
@@ -2988,6 +3133,7 @@ declare module "@stencil/core" {
|
|
|
2988
3133
|
"ds-button-group": LocalJSX.IntrinsicElements["ds-button-group"] & JSXBase.HTMLAttributes<HTMLDsButtonGroupElement>;
|
|
2989
3134
|
"ds-card": LocalJSX.IntrinsicElements["ds-card"] & JSXBase.HTMLAttributes<HTMLDsCardElement>;
|
|
2990
3135
|
"ds-checkbox": LocalJSX.IntrinsicElements["ds-checkbox"] & JSXBase.HTMLAttributes<HTMLDsCheckboxElement>;
|
|
3136
|
+
"ds-chip": LocalJSX.IntrinsicElements["ds-chip"] & JSXBase.HTMLAttributes<HTMLDsChipElement>;
|
|
2991
3137
|
"ds-divider": LocalJSX.IntrinsicElements["ds-divider"] & JSXBase.HTMLAttributes<HTMLDsDividerElement>;
|
|
2992
3138
|
"ds-empty-state": LocalJSX.IntrinsicElements["ds-empty-state"] & JSXBase.HTMLAttributes<HTMLDsEmptyStateElement>;
|
|
2993
3139
|
"ds-fade": LocalJSX.IntrinsicElements["ds-fade"] & JSXBase.HTMLAttributes<HTMLDsFadeElement>;
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{p as a,H as r,c as e,h as o,a as t,t as n}from"./index.js";import{g as s,i}from"./p-BQq26pt9.js";const d=()=>`.sc-ds-tab-group-nav-h{display:block}.tab-list.sc-ds-tab-group-nav{display:flex;align-items:center;gap:var(--dimension-space-050);position:relative}.tab-list--vertical.sc-ds-tab-group-nav{flex-direction:column;align-items:stretch}.tab.sc-ds-tab-group-nav{display:flex;align-items:center;justify-content:center;gap:var(--dimension-space-050);padding:var(--dimension-space-075);background-color:transparent;border:none;border-radius:var(--dimension-radius-025);cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--color-foreground-secondary);position:relative;transition:color var(--effect-motion-short-2);flex-shrink:0;height:var(--dimension-size-400);min-width:var(--dimension-size-400);box-sizing:border-box;--_hover-bg:var(--color-interaction-hover);--_pressed-bg:var(--color-interaction-pressed);--_dot:var(--color-foreground-bold-brand);--_dot-ring:var(--color-background-secondary)}.tab.sc-ds-tab-group-nav::after{content:'';position:absolute;inset:0;border-radius:var(--dimension-radius-025, 2px);background:transparent;pointer-events:none;transition:none}.tab.sc-ds-tab-group-nav:hover::after{background:var(--_hover-bg);transition:none}.tab.sc-ds-tab-group-nav:active::after{background:var(--_pressed-bg);transition:none}.tab.sc-ds-tab-group-nav:focus-visible:not(:hover):not(:active)::after{background:transparent}.tab--selected.sc-ds-tab-group-nav{color:var(--color-foreground-primary)}.tab.sc-ds-tab-group-nav:focus-visible{outline:var(--dimension-stroke-width-025) solid var(--color-interaction-focus);outline-offset:var(--dimension-space-025)}.tab.sc-ds-tab-group-nav:disabled,.tab[aria-disabled="true"].sc-ds-tab-group-nav{opacity:0.5;cursor:not-allowed;pointer-events:none}.tab-list--vertical.sc-ds-tab-group-nav .tab.sc-ds-tab-group-nav{justify-content:flex-start}.tab__label.sc-ds-tab-group-nav{position:relative;display:inline-flex;align-items:center;padding:0 var(--dimension-space-025);white-space:nowrap}.tab__label--dot.sc-ds-tab-group-nav{padding-right:calc(var(--dimension-space-025) + var(--dimension-space-050))}.tab__dot.sc-ds-tab-group-nav{position:absolute;top:0;right:0;width:var(--dimension-size-075, calc(var(--dimension-size-base) * 3 / 4));height:var(--dimension-size-075, calc(var(--dimension-size-base) * 3 / 4));border-radius:var(--dimension-radius-half);background:var(--_dot);box-shadow:0 0 0 var(--dimension-stroke-width-018) var(--_dot-ring);pointer-events:none}.on-medium.sc-ds-tab-group-nav{--_hover-bg:var(--color-interaction-on-medium-background-hover);--_pressed-bg:var(--color-interaction-on-medium-background-pressed);--_dot-ring:var(--color-background-medium)}.on-bold.sc-ds-tab-group-nav{--_hover-bg:var(--color-interaction-on-bold-background-hover);--_pressed-bg:var(--color-interaction-on-bold-background-pressed);--_dot-ring:var(--color-background-bold);color:var(--color-foreground-on-bold-background-secondary)}.on-bold.tab--selected.sc-ds-tab-group-nav{color:var(--color-foreground-on-bold-background-primary)}.on-strong.sc-ds-tab-group-nav{--_hover-bg:var(--color-interaction-on-strong-background-hover);--_pressed-bg:var(--color-interaction-on-strong-background-pressed);--_dot-ring:var(--color-background-strong);color:var(--color-foreground-on-bold-background-secondary)}.on-strong.tab--selected.sc-ds-tab-group-nav{color:var(--color-foreground-on-bold-background-primary)}.on-always-dark.sc-ds-tab-group-nav{--_hover-bg:var(--color-always-dark-interaction-hover);--_pressed-bg:var(--color-always-dark-interaction-pressed);--_dot-ring:var(--color-always-dark-background);color:var(--color-always-dark-foreground-secondary)}.on-always-dark.tab--selected.sc-ds-tab-group-nav{color:var(--color-always-dark-foreground-primary)}.tab-divider.sc-ds-tab-group-nav{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:var(--dimension-space-100);height:var(--dimension-size-400);padding-block:var(--dimension-space-075);flex-shrink:0;pointer-events:none}.tab-divider__line.sc-ds-tab-group-nav{width:var(--dimension-stroke-width-012);align-self:stretch;background-color:var(--color-border-secondary)}.tab-divider--vertical.sc-ds-tab-group-nav{width:auto;height:var(--dimension-space-100);align-self:stretch;padding-block:0;padding-inline:var(--dimension-space-075)}.tab-divider--vertical.sc-ds-tab-group-nav .tab-divider__line.sc-ds-tab-group-nav{width:auto;height:var(--dimension-stroke-width-012);align-self:stretch}`;const c=a(class a extends r{constructor(a){super();if(a!==false){this.__registerHost()}this.dsChange=e(this,"dsChange");this.value="";this.tabs=[];this.orientation="horizontal"}get selectableTabs(){return s(this.tabs)}selectTab(a,r){this.value=a;this.dsChange.emit(a);if(r?.focus!==false){this.focusTab(a)}}focusTab(a){const r=this.el.querySelector(`[data-tab-id="${a}"]`);r?.focus({preventScroll:true})}onValueChange(a,r){if(r===undefined||a===r)return;requestAnimationFrame((()=>{const r=document.activeElement;if(!r||!this.el.contains(r))return;const e=r.getAttribute("data-tab-id");if(e===a)return;const o=this.el.querySelector(`[data-tab-id="${a}"]`);if(o){o.focus({preventScroll:true})}else{r.blur()}}))}findEnabled(a,r){const e=this.selectableTabs;const o=e.length;for(let t=0;t<o;t++){const n=(a+r*(t+1)+o*(t+1))%o;if(!e[n]?.disabled)return n}return a}handleKeyDown(a){const r=this.selectableTabs;if(!r.length)return;const e=r.findIndex((a=>a.id===this.value));const o=this.orientation==="vertical";let t=null;if(!o){if(a.key==="ArrowRight"){t=this.findEnabled(e,1)}else if(a.key==="ArrowLeft"){t=this.findEnabled(e,-1)}}else{if(a.key==="ArrowDown"){t=this.findEnabled(e,1)}else if(a.key==="ArrowUp"){t=this.findEnabled(e,-1)}}if(a.key==="Home"){const a=r.findIndex((a=>!a.disabled));t=a===-1?null:a}else if(a.key==="End"){const a=[...r].reverse().findIndex((a=>!a.disabled));t=a===-1?null:r.length-1-a}if(t!==null){a.preventDefault();const e=r[t];this.selectTab(e.id)}}getBgClass(){if(!this.background||this.background==="faint")return"";if(this.background==="always-dark")return"on-always-dark";return`on-${this.background}`}render(){const a=this.getBgClass();const r=this.orientation==="vertical";return o(t,{key:"2da454c980bc23be3b9772cd1082a60a6310e0a6",class:"tab-group-nav-host"},o("div",{key:"52873fea87785af1c4137b5212ae193e2985f6e9",role:"tablist",class:{"tab-list":true,"tab-list--vertical":r},"aria-label":this.ariaLabel,"aria-labelledby":this.ariaLabelledby,"aria-orientation":r?"vertical":undefined},this.tabs.map(((e,t)=>{if(i(e)){return o("div",{key:`divider-${t}`,class:{"tab-divider":true,"tab-divider--vertical":r},"aria-hidden":"true"},o("div",{class:"tab-divider__line"}))}const n=e.id===this.value;return o("button",{key:e.id,type:"button",role:"tab","data-tab-id":e.id,class:{tab:true,"tab--selected":n,[a]:!!a},"aria-selected":n,"aria-disabled":e.disabled||undefined,"aria-controls":e.panelId??undefined,disabled:e.disabled,tabIndex:n?0:-1,onClick:()=>!e.disabled&&this.selectTab(e.id)},o("span",{class:{tab__label:true,"tab__label--dot":!!e.dot,[n?"text-body-medium-emphasis":"text-body-medium"]:true}},e.label,e.dot&&o("span",{class:"tab__dot","aria-hidden":"true"})))}))))}get el(){return this}static get watchers(){return{value:[{onValueChange:0}]}}static get style(){return d()}},[2,"ds-tab-group-nav",{value:[1025],tabs:[16],background:[1],ariaLabel:[1,"aria-label"],ariaLabelledby:[1,"aria-labelledby"],orientation:[1]},[[0,"keydown","handleKeyDown"]],{value:[{onValueChange:0}]}]);function l(){if(typeof customElements==="undefined"){return}const a=["ds-tab-group-nav"];a.forEach((a=>{switch(a){case"ds-tab-group-nav":if(!customElements.get(n(a))){customElements.define(n(a),c)}break}}))}l();export{c as T,l as d};
|
|
2
|
-
//# sourceMappingURL=p-CQQe6VNo.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["tabGroupNavCss","TabGroupNav","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","value","tabs","orientation","selectableTabs","getSelectableTabs","selectTab","id","options","dsChange","emit","focus","focusTab","btn","el","querySelector","preventScroll","onValueChange","next","prev","undefined","requestAnimationFrame","active","document","activeElement","contains","activeId","getAttribute","nextTab","blur","findEnabled","from","step","len","length","n","i","disabled","handleKeyDown","e","currentIdx","findIndex","t","isVertical","nextIdx","key","first","lastEnabled","reverse","preventDefault","getBgClass","background","render","bgClass","h","Host","class","role","ariaLabel","ariaLabelledby","map","tab","index","isTabDivider","isSelected","type","panelId","tabIndex","onClick","tab__label","dot","label"],"sources":["src/wc/components/TabGroupNav/TabGroupNav.css?tag=ds-tab-group-nav&encapsulation=scoped","src/wc/components/TabGroupNav/TabGroupNav.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.tab-list {\n display: flex;\n align-items: center;\n gap: var(--dimension-space-050);\n position: relative;\n}\n\n/* Vertical orientation */\n.tab-list--vertical {\n flex-direction: column;\n align-items: stretch;\n}\n\n.tab {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--dimension-space-050);\n padding: var(--dimension-space-075);\n background-color: transparent;\n border: none;\n border-radius: var(--dimension-radius-025);\n cursor: pointer;\n -webkit-user-select: none;\n user-select: none;\n color: var(--color-foreground-secondary);\n position: relative;\n /* Only transition color — hover bg is instant (see ::after below) */\n transition: color var(--effect-motion-short-2);\n flex-shrink: 0;\n height: var(--dimension-size-400);\n min-width: var(--dimension-size-400);\n box-sizing: border-box;\n --_hover-bg: var(--color-interaction-hover);\n --_pressed-bg: var(--color-interaction-pressed);\n --_dot: var(--color-foreground-bold-brand);\n --_dot-ring: var(--color-background-secondary);\n}\n\n/* Interaction layer — same pattern as PanelNav */\n.tab::after {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: var(--dimension-radius-025, 2px);\n background: transparent;\n pointer-events: none;\n transition: none;\n}\n\n.tab:hover::after { background: var(--_hover-bg); transition: none; }\n.tab:active::after { background: var(--_pressed-bg); transition: none; }\n\n/* Focus ring only — no persistent hover fill from keyboard focus */\n.tab:focus-visible:not(:hover):not(:active)::after {\n background: transparent;\n}\n\n.tab--selected { color: var(--color-foreground-primary); }\n\n.tab:focus-visible {\n outline: var(--dimension-stroke-width-025) solid var(--color-interaction-focus);\n outline-offset: var(--dimension-space-025);\n}\n\n.tab:disabled,\n.tab[aria-disabled=\"true\"] {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n}\n\n/* Vertical tabs read as a list — left-align the label */\n.tab-list--vertical .tab { justify-content: flex-start; }\n\n/* Label — dot anchors top-right like BarNav action icon zone */\n.tab__label {\n position: relative;\n display: inline-flex;\n align-items: center;\n padding: 0 var(--dimension-space-025);\n white-space: nowrap;\n}\n\n/* Clearance for top-right dot — slightly less than space-025 + space-075 */\n.tab__label--dot {\n padding-right: calc(var(--dimension-space-025) + var(--dimension-space-050));\n}\n\n/* Notification dot — top-right corner of the label zone */\n.tab__dot {\n position: absolute;\n top: 0;\n right: 0;\n width: var(--dimension-size-075, calc(var(--dimension-size-base) * 3 / 4));\n height: var(--dimension-size-075, calc(var(--dimension-size-base) * 3 / 4));\n border-radius: var(--dimension-radius-half);\n background: var(--_dot);\n box-shadow: 0 0 0 var(--dimension-stroke-width-018) var(--_dot-ring);\n pointer-events: none;\n}\n\n/* Background context */\n.on-medium {\n --_hover-bg: var(--color-interaction-on-medium-background-hover);\n --_pressed-bg: var(--color-interaction-on-medium-background-pressed);\n --_dot-ring: var(--color-background-medium);\n}\n\n.on-bold {\n --_hover-bg: var(--color-interaction-on-bold-background-hover);\n --_pressed-bg: var(--color-interaction-on-bold-background-pressed);\n --_dot-ring: var(--color-background-bold);\n color: var(--color-foreground-on-bold-background-secondary);\n}\n\n.on-bold.tab--selected { color: var(--color-foreground-on-bold-background-primary); }\n\n.on-strong {\n --_hover-bg: var(--color-interaction-on-strong-background-hover);\n --_pressed-bg: var(--color-interaction-on-strong-background-pressed);\n --_dot-ring: var(--color-background-strong);\n color: var(--color-foreground-on-bold-background-secondary);\n}\n\n.on-strong.tab--selected { color: var(--color-foreground-on-bold-background-primary); }\n\n.on-always-dark {\n --_hover-bg: var(--color-always-dark-interaction-hover);\n --_pressed-bg: var(--color-always-dark-interaction-pressed);\n --_dot-ring: var(--color-always-dark-background);\n color: var(--color-always-dark-foreground-secondary);\n}\n\n.on-always-dark.tab--selected { color: var(--color-always-dark-foreground-primary); }\n\n/* In-tablist visual group separator — not focusable, skipped by keyboard nav */\n.tab-divider {\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: var(--dimension-space-100);\n height: var(--dimension-size-400);\n padding-block: var(--dimension-space-075);\n flex-shrink: 0;\n pointer-events: none;\n}\n\n.tab-divider__line {\n width: var(--dimension-stroke-width-012);\n align-self: stretch;\n background-color: var(--color-border-secondary);\n}\n\n.tab-divider--vertical {\n width: auto;\n height: var(--dimension-space-100);\n align-self: stretch;\n padding-block: 0;\n padding-inline: var(--dimension-space-075);\n}\n\n.tab-divider--vertical .tab-divider__line {\n width: auto;\n height: var(--dimension-stroke-width-012);\n align-self: stretch;\n}\n","import { Component, Prop, Event, EventEmitter, Element, Listen, Watch, h, Host } from '@stencil/core';\nimport {\n getSelectableTabs,\n isTabDivider,\n type TabItem,\n type TabItemTab,\n} from '../TabGroup/tab-item-utils';\n\nexport type TabGroupNavBackground = 'faint' | 'medium' | 'bold' | 'strong' | 'always-dark';\n\n@Component({\n tag: 'ds-tab-group-nav',\n styleUrl: 'TabGroupNav.css',\n scoped: true,\n})\nexport class TabGroupNav {\n @Element() el!: HTMLElement;\n\n @Prop({ mutable: true }) value: string = '';\n @Prop() tabs: TabItem[] = [];\n @Prop() background: TabGroupNavBackground | undefined;\n @Prop({ attribute: 'aria-label' }) ariaLabel: string | undefined;\n @Prop({ attribute: 'aria-labelledby' }) ariaLabelledby: string | undefined;\n @Prop() orientation: 'horizontal' | 'vertical' = 'horizontal';\n\n @Event() dsChange!: EventEmitter<string>;\n\n private get selectableTabs(): TabItemTab[] {\n return getSelectableTabs(this.tabs);\n }\n\n private selectTab(id: string, options?: { focus?: boolean }) {\n this.value = id;\n this.dsChange.emit(id);\n if (options?.focus !== false) {\n this.focusTab(id);\n }\n }\n\n private focusTab(id: string) {\n const btn = this.el.querySelector(`[data-tab-id=\"${id}\"]`) as HTMLElement | null;\n btn?.focus({ preventScroll: true });\n }\n\n /** Keep focus on the selected tab when value changes externally (e.g. BarNav menu). */\n @Watch('value')\n onValueChange(next: string, prev: string | undefined) {\n if (prev === undefined || next === prev) return;\n\n requestAnimationFrame(() => {\n const active = document.activeElement as HTMLElement | null;\n if (!active || !this.el.contains(active)) return;\n\n const activeId = active.getAttribute('data-tab-id');\n if (activeId === next) return;\n\n const nextTab = this.el.querySelector(`[data-tab-id=\"${next}\"]`) as HTMLElement | null;\n if (nextTab) {\n nextTab.focus({ preventScroll: true });\n } else {\n active.blur();\n }\n });\n }\n\n /**\n * Find the next non-disabled tab index relative to `from`, stepping by `step`.\n * Returns `from` unchanged if no other enabled tab exists.\n */\n private findEnabled(from: number, step: 1 | -1): number {\n const tabs = this.selectableTabs;\n const len = tabs.length;\n for (let n = 0; n < len; n++) {\n const i = (from + step * (n + 1) + len * (n + 1)) % len;\n if (!tabs[i]?.disabled) return i;\n }\n return from;\n }\n\n @Listen('keydown')\n handleKeyDown(e: KeyboardEvent) {\n const tabs = this.selectableTabs;\n if (!tabs.length) return;\n\n const currentIdx = tabs.findIndex(t => t.id === this.value);\n const isVertical = this.orientation === 'vertical';\n\n let nextIdx: number | null = null;\n\n if (!isVertical) {\n if (e.key === 'ArrowRight') {\n nextIdx = this.findEnabled(currentIdx, 1);\n } else if (e.key === 'ArrowLeft') {\n nextIdx = this.findEnabled(currentIdx, -1);\n }\n } else {\n if (e.key === 'ArrowDown') {\n nextIdx = this.findEnabled(currentIdx, 1);\n } else if (e.key === 'ArrowUp') {\n nextIdx = this.findEnabled(currentIdx, -1);\n }\n }\n\n if (e.key === 'Home') {\n const first = tabs.findIndex(t => !t.disabled);\n nextIdx = first === -1 ? null : first;\n } else if (e.key === 'End') {\n const lastEnabled = [...tabs].reverse().findIndex(t => !t.disabled);\n nextIdx = lastEnabled === -1 ? null : tabs.length - 1 - lastEnabled;\n }\n\n if (nextIdx !== null) {\n e.preventDefault();\n const next = tabs[nextIdx];\n this.selectTab(next.id);\n }\n }\n\n private getBgClass(): string {\n if (!this.background || this.background === 'faint') return '';\n if (this.background === 'always-dark') return 'on-always-dark';\n return `on-${this.background}`;\n }\n\n render() {\n const bgClass = this.getBgClass();\n const isVertical = this.orientation === 'vertical';\n\n return (\n <Host class=\"tab-group-nav-host\">\n <div\n role=\"tablist\"\n class={{ 'tab-list': true, 'tab-list--vertical': isVertical }}\n aria-label={this.ariaLabel}\n aria-labelledby={this.ariaLabelledby}\n aria-orientation={isVertical ? 'vertical' : undefined}\n >\n {this.tabs.map((tab, index) => {\n if (isTabDivider(tab)) {\n return (\n <div\n key={`divider-${index}`}\n class={{\n 'tab-divider': true,\n 'tab-divider--vertical': isVertical,\n }}\n aria-hidden=\"true\"\n >\n <div class=\"tab-divider__line\" />\n </div>\n );\n }\n\n const isSelected = tab.id === this.value;\n return (\n <button\n key={tab.id}\n type=\"button\"\n role=\"tab\"\n data-tab-id={tab.id}\n class={{\n tab: true,\n 'tab--selected': isSelected,\n [bgClass]: !!bgClass,\n }}\n aria-selected={isSelected}\n aria-disabled={tab.disabled || undefined}\n aria-controls={tab.panelId ?? undefined}\n disabled={tab.disabled}\n tabIndex={isSelected ? 0 : -1}\n onClick={() => !tab.disabled && this.selectTab(tab.id)}\n >\n <span class={{\n tab__label: true,\n 'tab__label--dot': !!tab.dot,\n [isSelected ? 'text-body-medium-emphasis' : 'text-body-medium']: true,\n }}>\n {tab.label}\n {tab.dot && <span class=\"tab__dot\" aria-hidden=\"true\" />}\n </span>\n </button>\n );\n })}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{p as o,H as n,c as r,h as a,a as e,t as i}from"./index.js";import{d as s}from"./p-H89PzqGU.js";const t=()=>`.action-btn.sc-ds-bar-nav-action{display:inline-flex;align-items:center;justify-content:center;width:var(--dimension-size-400);height:var(--dimension-size-400);padding:var(--dimension-space-075);background:transparent;border:none;border-radius:var(--dimension-radius-025);cursor:pointer;color:var(--color-foreground-secondary);box-sizing:border-box;-webkit-user-select:none;user-select:none;position:relative;transition:color var(--effect-motion-short-2);--_hover-bg:var(--color-interaction-hover);--_pressed-bg:var(--color-interaction-pressed);--_dot-ring:var(--color-background-secondary)}.action-btn.sc-ds-bar-nav-action::after{content:'';position:absolute;inset:0;border-radius:var(--dimension-radius-025);background:transparent;pointer-events:none;transition:none}.action-btn.sc-ds-bar-nav-action:hover:not(.inactive)::after{background:var(--_hover-bg);transition:none}.action-btn.sc-ds-bar-nav-action:active:not(.inactive)::after{background:var(--_pressed-bg);transition:none}.action-btn.sc-ds-bar-nav-action:focus-visible{outline:var(--dimension-stroke-width-025) solid var(--color-interaction-focus);outline-offset:var(--dimension-space-025)}.action-btn.selected.sc-ds-bar-nav-action{color:var(--color-foreground-primary)}.action-btn.inactive.sc-ds-bar-nav-action{opacity:0.5;cursor:not-allowed;pointer-events:none}.onMedium.sc-ds-bar-nav-action{--_hover-bg:var(--color-interaction-on-medium-background-hover);--_pressed-bg:var(--color-interaction-on-medium-background-pressed);--_dot-ring:var(--color-background-medium)}.onBold.sc-ds-bar-nav-action{color:var(--color-foreground-on-bold-background-secondary);--_hover-bg:var(--color-interaction-on-bold-background-hover);--_pressed-bg:var(--color-interaction-on-bold-background-pressed);--_dot-ring:var(--color-background-bold)}.onBold.selected.sc-ds-bar-nav-action{color:var(--color-foreground-on-bold-background-primary)}.onStrong.sc-ds-bar-nav-action{color:var(--color-foreground-on-bold-background-secondary);--_hover-bg:var(--color-interaction-on-strong-background-hover);--_pressed-bg:var(--color-interaction-on-strong-background-pressed);--_dot-ring:var(--color-background-strong)}.onStrong.selected.sc-ds-bar-nav-action{color:var(--color-foreground-on-bold-background-primary)}.onAlwaysDark.sc-ds-bar-nav-action{color:var(--color-always-dark-foreground-secondary);--_hover-bg:var(--color-always-dark-interaction-hover);--_pressed-bg:var(--color-always-dark-interaction-pressed);--_dot-ring:var(--color-always-dark-background)}.onAlwaysDark.selected.sc-ds-bar-nav-action{color:var(--color-always-dark-foreground-primary)}.action-btn__icon-wrap.sc-ds-bar-nav-action{position:relative;width:var(--dimension-iconography-md);height:var(--dimension-iconography-md);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.action-btn__dot.sc-ds-bar-nav-action{position:absolute;top:0;right:0;width:var(--dimension-size-075, calc(var(--dimension-size-base) * 3 / 4));height:var(--dimension-size-075, calc(var(--dimension-size-base) * 3 / 4));border-radius:var(--dimension-radius-half);background:var(--color-foreground-bold-brand);box-shadow:0 0 0 var(--dimension-stroke-width-018) var(--_dot-ring);pointer-events:none}`;const c=o(class o extends n{constructor(o){super();if(o!==false){this.__registerHost()}this.dsChange=r(this,"dsChange");this.icon="";this.selected=false;this.dot=false;this.inactive=false;this.ariaLabel="action";this.handleClick=()=>{if(this.inactive)return;this.dsChange.emit(!this.selected)}}render(){const o=this.background;const n={"action-btn":true,selected:this.selected,inactive:this.inactive,onMedium:o==="medium",onBold:o==="bold",onStrong:o==="strong",onAlwaysDark:o==="always-dark"};return a(e,{key:"5fa334c6d5be3d288028e9294774c25104890d4c"},a("button",{key:"35c3643987bbb67d6549527ff070ba1cf802faf7",type:"button",class:n,disabled:this.inactive,"aria-pressed":this.selected,"aria-label":this.ariaLabel,onClick:this.handleClick},a("span",{key:"97b96334a820484281c73f97c84039b40a561daa",class:"action-btn__icon-wrap"},a("ds-icon",{key:"af6d46223aa9d1c56169b5917586ba95d939fd34",name:this.icon,size:"md",color:"inherit"}),this.dot&&a("span",{key:"83a14f19c74aa4f7fcfbd44c1e7deba55b732296",class:"action-btn__dot","aria-hidden":"true"}))))}static get style(){return t()}},[2,"ds-bar-nav-action",{icon:[1],selected:[4],dot:[4],inactive:[4],ariaLabel:[1,"aria-label"],background:[1]}]);function d(){if(typeof customElements==="undefined"){return}const o=["ds-bar-nav-action","ds-icon"];o.forEach((o=>{switch(o){case"ds-bar-nav-action":if(!customElements.get(i(o))){customElements.define(i(o),c)}break;case"ds-icon":if(!customElements.get(i(o))){s()}break}}))}d();export{c as B,d};
|
|
2
|
-
//# sourceMappingURL=p-Vwlmhl4E.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["barNavActionCss","BarNavAction","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","icon","selected","dot","inactive","ariaLabel","handleClick","dsChange","emit","render","bg","background","cls","onMedium","onBold","onStrong","onAlwaysDark","h","Host","key","type","class","disabled","onClick","name","size","color"],"sources":["src/wc/components/BarNavAction/BarNavAction.css?tag=ds-bar-nav-action&encapsulation=scoped","src/wc/components/BarNavAction/BarNavAction.tsx"],"sourcesContent":[".action-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--dimension-size-400);\n height: var(--dimension-size-400);\n padding: var(--dimension-space-075);\n background: transparent;\n border: none;\n border-radius: var(--dimension-radius-025);\n cursor: pointer;\n color: var(--color-foreground-secondary);\n box-sizing: border-box;\n -webkit-user-select: none;\n user-select: none;\n position: relative;\n /* Only transition color — hover bg is instant (see ::after below) */\n transition: color var(--effect-motion-short-2);\n --_hover-bg: var(--color-interaction-hover);\n --_pressed-bg: var(--color-interaction-pressed);\n --_dot-ring: var(--color-background-secondary);\n}\n\n/* Interaction layer — same pattern as PanelNav */\n.action-btn::after {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: var(--dimension-radius-025);\n background: transparent;\n pointer-events: none;\n transition: none;\n}\n\n.action-btn:hover:not(.inactive)::after { background: var(--_hover-bg); transition: none; }\n.action-btn:active:not(.inactive)::after { background: var(--_pressed-bg); transition: none; }\n\n.action-btn:focus-visible {\n outline: var(--dimension-stroke-width-025) solid var(--color-interaction-focus);\n outline-offset: var(--dimension-space-025);\n}\n\n/* Selected: icon turns primary — no background change */\n.action-btn.selected { color: var(--color-foreground-primary); }\n\n.action-btn.inactive { opacity: 0.5; cursor: not-allowed; pointer-events: none; }\n\n/* ==========================================================================\n Background context\n ========================================================================== */\n\n.onMedium {\n --_hover-bg: var(--color-interaction-on-medium-background-hover);\n --_pressed-bg: var(--color-interaction-on-medium-background-pressed);\n --_dot-ring: var(--color-background-medium);\n}\n\n.onBold {\n color: var(--color-foreground-on-bold-background-secondary);\n --_hover-bg: var(--color-interaction-on-bold-background-hover);\n --_pressed-bg: var(--color-interaction-on-bold-background-pressed);\n --_dot-ring: var(--color-background-bold);\n}\n\n.onBold.selected { color: var(--color-foreground-on-bold-background-primary); }\n\n.onStrong {\n color: var(--color-foreground-on-bold-background-secondary);\n --_hover-bg: var(--color-interaction-on-strong-background-hover);\n --_pressed-bg: var(--color-interaction-on-strong-background-pressed);\n --_dot-ring: var(--color-background-strong);\n}\n\n.onStrong.selected { color: var(--color-foreground-on-bold-background-primary); }\n\n.onAlwaysDark {\n color: var(--color-always-dark-foreground-secondary);\n --_hover-bg: var(--color-always-dark-interaction-hover);\n --_pressed-bg: var(--color-always-dark-interaction-pressed);\n --_dot-ring: var(--color-always-dark-background);\n}\n\n.onAlwaysDark.selected { color: var(--color-always-dark-foreground-primary); }\n\n/* ==========================================================================\n Inner layout — icon zone sits above the ::after overlay\n ========================================================================== */\n\n.action-btn__icon-wrap {\n position: relative;\n width: var(--dimension-iconography-md);\n height: var(--dimension-iconography-md);\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n/* Notification dot — top-right corner of the icon zone */\n.action-btn__dot {\n position: absolute;\n top: 0;\n right: 0;\n width: var(--dimension-size-075, calc(var(--dimension-size-base) * 3 / 4));\n height: var(--dimension-size-075, calc(var(--dimension-size-base) * 3 / 4));\n border-radius: var(--dimension-radius-half);\n background: var(--color-foreground-bold-brand);\n box-shadow: 0 0 0 var(--dimension-stroke-width-018) var(--_dot-ring);\n pointer-events: none;\n}\n","import { Component, Prop, Event, EventEmitter, h, Host } from '@stencil/core';\n\nexport type BarNavActionBackground = 'faint' | 'medium' | 'bold' | 'strong' | 'always-dark';\n\n@Component({\n tag: 'ds-bar-nav-action',\n styleUrl: 'BarNavAction.css',\n scoped: true,\n})\nexport class BarNavAction {\n /** Icon name passed to <ds-icon>. */\n @Prop() icon: string = '';\n\n /** Controlled toggle/selected state. */\n @Prop() selected: boolean = false;\n\n /** Show a notification dot (brand colour) at the top-right of the icon. */\n @Prop() dot: boolean = false;\n\n /** Disables interaction. */\n @Prop() inactive: boolean = false;\n\n @Prop({ attribute: 'aria-label' }) ariaLabel: string = 'action';\n\n /** Parent surface context — adjusts hover/press colours for coloured backgrounds. */\n @Prop() background: BarNavActionBackground | undefined;\n\n /** Emits the new selected value (!selected) on click. */\n @Event() dsChange!: EventEmitter<boolean>;\n\n private handleClick = () => {\n if (this.inactive) return;\n this.dsChange.emit(!this.selected);\n };\n\n render() {\n const bg = this.background;\n\n const cls: Record<string, boolean> = {\n 'action-btn': true,\n selected: this.selected,\n inactive: this.inactive,\n onMedium: bg === 'medium',\n onBold: bg === 'bold',\n onStrong: bg === 'strong',\n onAlwaysDark: bg === 'always-dark',\n };\n\n return (\n <Host>\n <button\n type=\"button\"\n class={cls}\n disabled={this.inactive}\n aria-pressed={this.selected}\n aria-label={this.ariaLabel}\n onClick={this.handleClick}\n >\n <span class=\"action-btn__icon-wrap\">\n <ds-icon name={this.icon} size=\"md\" color=\"inherit\" />\n {this.dot && <span class=\"action-btn__dot\" aria-hidden=\"true\" />}\n </span>\n </button>\n </Host>\n );\n }\n}\n"],"mappings":"sGAAA,MAAMA,EAAkB,IAAM,goG,MCSjBC,EAAYC,EAAA,MAAAD,UAAAE,EALzB,WAAAC,CAAAC,G,6EAOUC,KAAAC,KAAe,GAGfD,KAAAE,SAAoB,MAGpBF,KAAAG,IAAe,MAGfH,KAAAI,SAAoB,MAEOJ,KAAAK,UAAoB,SAQ/CL,KAAAM,YAAc,KACpB,GAAIN,KAAKI,SAAU,OACnBJ,KAAKO,SAASC,MAAMR,KAAKE,SAAS,CAkCrC,CA/BC,MAAAO,GACE,MAAMC,EAAKV,KAAKW,WAEhB,MAAMC,EAA+B,CACnC,aAAc,KACdV,SAAUF,KAAKE,SACfE,SAAUJ,KAAKI,SACfS,SAAUH,IAAO,SACjBI,OAAQJ,IAAO,OACfK,SAAUL,IAAO,SACjBM,aAAcN,IAAO,eAGvB,OACEO,EAACC,EAAI,CAAAC,IAAA,4CACHF,EAAA,UAAAE,IAAA,2CACEC,KAAK,SACLC,MAAOT,EACPU,SAAUtB,KAAKI,SAAQ,eACTJ,KAAKE,SAAQ,aACfF,KAAKK,UACjBkB,QAASvB,KAAKM,aAEdW,EAAA,QAAAE,IAAA,2CAAME,MAAM,yBACVJ,EAAA,WAAAE,IAAA,2CAASK,KAAMxB,KAAKC,KAAMwB,KAAK,KAAKC,MAAM,YACzC1B,KAAKG,KAAOc,EAAA,QAAAE,IAAA,2CAAME,MAAM,kBAAiB,cAAa,W","ignoreList":[]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|