@ds-mo/ui 4.2.0 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/dist/.build-stamp +1 -1
  2. package/dist/agent.json +246 -66
  3. package/dist/angular/boolean-value-accessor.d.ts +1 -1
  4. package/dist/angular/boolean-value-accessor.js +2 -2
  5. package/dist/angular/ds-badge.d.ts +1 -1
  6. package/dist/angular/ds-badge.js +3 -3
  7. package/dist/angular/ds-skeleton.d.ts +1 -1
  8. package/dist/angular/ds-skeleton.js +3 -3
  9. package/dist/angular/ds-switch.d.ts +15 -0
  10. package/dist/angular/{ds-toggle.js → ds-switch.js} +12 -12
  11. package/dist/angular/index.d.ts +1 -1
  12. package/dist/angular/index.js +1 -1
  13. package/dist/angular/proxies.d.ts +1 -1
  14. package/dist/angular/proxies.js +1 -1
  15. package/dist/components/ds-app-shell.js +1 -1
  16. package/dist/components/ds-app-shell.js.map +1 -1
  17. package/dist/components/ds-badge.js +1 -1
  18. package/dist/components/ds-banner.js +1 -1
  19. package/dist/components/ds-banner.js.map +1 -1
  20. package/dist/components/ds-bar-nav.js +1 -1
  21. package/dist/components/ds-bar-nav.js.map +1 -1
  22. package/dist/components/ds-button-filled.js +1 -1
  23. package/dist/components/ds-button-unfilled.js +1 -1
  24. package/dist/components/ds-card-data-viz-donut.js +1 -1
  25. package/dist/components/ds-card-data-viz-donut.js.map +1 -1
  26. package/dist/components/ds-card-setting.js +1 -1
  27. package/dist/components/ds-card.js +1 -1
  28. package/dist/components/ds-chart-bar.js +1 -1
  29. package/dist/components/ds-chart-donut.js +1 -1
  30. package/dist/components/ds-chart-donut.js.map +1 -1
  31. package/dist/components/ds-chart-legend.js +1 -1
  32. package/dist/components/ds-chart-legend.js.map +1 -1
  33. package/dist/components/ds-chart-line.js +1 -1
  34. package/dist/components/ds-checkbox.js +1 -1
  35. package/dist/components/ds-checkbox.js.map +1 -1
  36. package/dist/components/ds-chip.js +1 -1
  37. package/dist/components/ds-chip.js.map +1 -1
  38. package/dist/components/ds-divider.js +1 -1
  39. package/dist/components/ds-divider.js.map +1 -1
  40. package/dist/components/ds-empty-state.js +1 -1
  41. package/dist/components/ds-field.js +1 -1
  42. package/dist/components/ds-input.js +1 -1
  43. package/dist/components/ds-loader.js +1 -1
  44. package/dist/components/ds-loader.js.map +1 -1
  45. package/dist/components/ds-menu.js +1 -1
  46. package/dist/components/ds-modal.js +1 -1
  47. package/dist/components/ds-modal.js.map +1 -1
  48. package/dist/components/ds-pagination.js +1 -1
  49. package/dist/components/ds-panel-nav.js +1 -1
  50. package/dist/components/ds-panel-nav.js.map +1 -1
  51. package/dist/components/ds-panel-tools.js +1 -1
  52. package/dist/components/ds-panel-tools.js.map +1 -1
  53. package/dist/components/ds-radio-group.js +1 -1
  54. package/dist/components/ds-radio-group.js.map +1 -1
  55. package/dist/components/ds-select.js +1 -1
  56. package/dist/components/ds-select.js.map +1 -1
  57. package/dist/components/ds-shell-gradient-picker.js +1 -1
  58. package/dist/components/ds-shell-gradient-swatch.js +1 -1
  59. package/dist/components/ds-skeleton.js +1 -1
  60. package/dist/components/ds-slider.js +1 -1
  61. package/dist/components/ds-slider.js.map +1 -1
  62. package/dist/components/{ds-toggle.d.ts → ds-switch.d.ts} +4 -4
  63. package/dist/components/ds-switch.js +2 -0
  64. package/dist/components/ds-switch.js.map +1 -0
  65. package/dist/components/ds-tab-group-nav.js +1 -1
  66. package/dist/components/ds-tab-group.js +1 -1
  67. package/dist/components/ds-tab-group.js.map +1 -1
  68. package/dist/components/ds-table.js +1 -1
  69. package/dist/components/ds-table.js.map +1 -1
  70. package/dist/components/ds-tag.js +1 -1
  71. package/dist/components/ds-tag.js.map +1 -1
  72. package/dist/components/ds-text.js +1 -1
  73. package/dist/components/ds-tooltip-data-viz.js +1 -1
  74. package/dist/components/ds-tooltip-data-viz.js.map +1 -1
  75. package/dist/components/ds-tooltip.js +1 -1
  76. package/dist/components/p-B-cWYMqs.js +2 -0
  77. package/dist/components/p-B-cWYMqs.js.map +1 -0
  78. package/dist/components/{p-BvmooLHV.js → p-BHtg1fh3.js} +2 -2
  79. package/dist/components/p-BHtg1fh3.js.map +1 -0
  80. package/dist/components/p-BeIuJQO9.js +2 -0
  81. package/dist/components/p-BeIuJQO9.js.map +1 -0
  82. package/dist/components/p-BmiNX9Mc.js +2 -0
  83. package/dist/components/p-BmiNX9Mc.js.map +1 -0
  84. package/dist/components/p-CWd8L7Fk.js +2 -0
  85. package/dist/components/{p-BBpXpv4D.js.map → p-CWd8L7Fk.js.map} +1 -1
  86. package/dist/components/p-CxOQaZ4f.js +2 -0
  87. package/dist/components/{p-ZCMVoS5b.js.map → p-CxOQaZ4f.js.map} +1 -1
  88. package/dist/components/p-D5wc8lKR.js +2 -0
  89. package/dist/components/p-D5wc8lKR.js.map +1 -0
  90. package/dist/components/p-DPxfMUfH.js +2 -0
  91. package/dist/components/{p-CIwWLU82.js.map → p-DPxfMUfH.js.map} +1 -1
  92. package/dist/components/p-DhgDNluD.js +2 -0
  93. package/dist/components/p-DhgDNluD.js.map +1 -0
  94. package/dist/components/{p-ZdSNIObv.js → p-DkIbxCpi.js} +2 -2
  95. package/dist/components/p-_OGE_E6L.js +2 -0
  96. package/dist/components/{p-CRrGwSt7.js.map → p-_OGE_E6L.js.map} +1 -1
  97. package/dist/components/{p-1UYS0fLz.js → p-bl7d1jB2.js} +2 -2
  98. package/dist/components/p-cgo-rgl4.js +2 -0
  99. package/dist/components/p-cgo-rgl4.js.map +1 -0
  100. package/dist/components/p-drBA73M_.js.map +1 -1
  101. package/dist/docs/components.json +586 -373
  102. package/dist/lib/nav/index.js +15 -2
  103. package/dist/lib/nav/index.js.map +2 -2
  104. package/dist/lib/utils/index.d.ts +1 -1
  105. package/dist/lib/utils/index.js +8 -0
  106. package/dist/lib/utils/index.js.map +2 -2
  107. package/dist/lib/utils/resolve-css-time-ms.d.ts +7 -0
  108. package/dist/react/components.d.ts +1 -1
  109. package/dist/react/components.js +1 -1
  110. package/dist/react/{ds-toggle.d.ts → ds-switch.d.ts} +5 -5
  111. package/dist/react/{ds-toggle.js → ds-switch.js} +5 -5
  112. package/dist/types/components/Badge/Badge.d.ts +0 -2
  113. package/dist/types/components/Menu/Menu.d.ts +1 -0
  114. package/dist/types/components/Menu/menu-types.d.ts +3 -2
  115. package/dist/types/components/Modal/Modal.d.ts +1 -0
  116. package/dist/types/components/PanelTools/PanelTools.d.ts +5 -0
  117. package/dist/types/components/PanelTools/panel-tools-utils.d.ts +7 -0
  118. package/dist/types/components/Select/Select.d.ts +1 -1
  119. package/dist/types/components/Skeleton/Skeleton.d.ts +3 -0
  120. package/dist/types/components/Skeleton/index.d.ts +1 -1
  121. package/dist/types/components/Switch/Switch.d.ts +40 -0
  122. package/dist/types/components/Switch/index.d.ts +2 -0
  123. package/dist/types/components/Tooltip/Tooltip.d.ts +14 -2
  124. package/dist/types/components/Tooltip/tooltip-position.d.ts +21 -0
  125. package/dist/types/components.d.ts +156 -107
  126. package/dist/types/utils/index.d.ts +1 -1
  127. package/dist/types/utils/resolve-css-time-ms.d.ts +7 -0
  128. package/package.json +4 -4
  129. package/dist/angular/ds-toggle.d.ts +0 -15
  130. package/dist/components/ds-toggle.js +0 -2
  131. package/dist/components/ds-toggle.js.map +0 -1
  132. package/dist/components/p-BBpXpv4D.js +0 -2
  133. package/dist/components/p-BglQMVBV.js +0 -2
  134. package/dist/components/p-BglQMVBV.js.map +0 -1
  135. package/dist/components/p-BkFpy8zp.js +0 -2
  136. package/dist/components/p-BkFpy8zp.js.map +0 -1
  137. package/dist/components/p-BvmooLHV.js.map +0 -1
  138. package/dist/components/p-CIwWLU82.js +0 -2
  139. package/dist/components/p-CRrGwSt7.js +0 -2
  140. package/dist/components/p-DUUi278M.js +0 -2
  141. package/dist/components/p-DUUi278M.js.map +0 -1
  142. package/dist/components/p-ZCMVoS5b.js +0 -2
  143. package/dist/components/p-i0Nhc5A4.js +0 -2
  144. package/dist/components/p-i0Nhc5A4.js.map +0 -1
  145. package/dist/components/p-yC55Ye2r.js +0 -2
  146. package/dist/components/p-yC55Ye2r.js.map +0 -1
  147. package/dist/types/components/Toggle/Toggle.d.ts +0 -22
  148. package/dist/types/components/Toggle/index.d.ts +0 -2
  149. /package/dist/components/{p-ZdSNIObv.js.map → p-DkIbxCpi.js.map} +0 -0
  150. /package/dist/components/{p-1UYS0fLz.js.map → p-bl7d1jB2.js.map} +0 -0
@@ -0,0 +1,40 @@
1
+ import { EventEmitter } from '../../stencil-public-runtime';
2
+ export type SwitchSize = 'md' | 'sm' | 'xs';
3
+ export declare class Switch {
4
+ el: HTMLElement;
5
+ internals: ElementInternals;
6
+ /** Current on/off state. The initial value is restored when the owning form resets. */
7
+ checked: boolean;
8
+ name: string | undefined;
9
+ value: string;
10
+ /** Optional value submitted when unchecked; omitted by default like a native checkbox. */
11
+ uncheckedValue: string | undefined;
12
+ /** Associates the switch with a form by id when it is rendered outside that form. */
13
+ form: string | undefined;
14
+ disabled: boolean;
15
+ readOnly: boolean;
16
+ required: boolean;
17
+ requiredMessage: string;
18
+ isInactive: boolean;
19
+ /** Compact track size for placement inside controls, menus, and form rows. */
20
+ size: SwitchSize;
21
+ /**
22
+ * Removes standalone control semantics so a composite owner such as a
23
+ * `menuitemcheckbox` can use the switch as an aria-hidden visual indicator.
24
+ */
25
+ presentation: boolean;
26
+ dsChange: EventEmitter<boolean>;
27
+ private initialChecked;
28
+ private formDisabled;
29
+ componentWillLoad(): void;
30
+ componentDidLoad(): void;
31
+ syncFormValue(): void;
32
+ formDisabledCallback(disabled: boolean): void;
33
+ formResetCallback(): void;
34
+ formStateRestoreCallback(state: string | File | FormData | null): void;
35
+ private syncNativeLabels;
36
+ private handleClick;
37
+ private handleKeyDown;
38
+ render(): any;
39
+ }
40
+ //# sourceMappingURL=Switch.d.ts.map
@@ -0,0 +1,2 @@
1
+ export type { SwitchSize } from './Switch';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -38,13 +38,20 @@ export declare class Tooltip {
38
38
  private anchor;
39
39
  private popupEl;
40
40
  private positionObserver;
41
+ private anchorObserver;
42
+ private positionFrame;
41
43
  private skipEnterAnimation;
42
44
  private isOpen;
43
- private mouseEnterHandler;
44
- private mouseLeaveHandler;
45
+ private lastInteractionWasKeyboard;
46
+ private pointerEnterHandler;
47
+ private pointerLeaveHandler;
48
+ private pointerDownHandler;
49
+ private keyDownHandler;
45
50
  /** focusin/focusout so nested focus targets (e.g. ds-button-* inner button) still open the tip. */
46
51
  private focusHandler;
47
52
  private blurHandler;
53
+ private scrollResizeHandler;
54
+ private escapeHandler;
48
55
  componentDidLoad(): void;
49
56
  disconnectedCallback(): void;
50
57
  onContentOrPositionChange(): void;
@@ -58,7 +65,12 @@ export declare class Tooltip {
58
65
  private get tooltipFallbackHeightPx();
59
66
  private bindAnchor;
60
67
  private unbindAnchor;
68
+ private linkDescribedBy;
69
+ private unlinkDescribedBy;
70
+ private handleSlotChange;
61
71
  private clearTimers;
72
+ private setupOpenListeners;
73
+ private teardownOpenListeners;
62
74
  private destroyPopup;
63
75
  /**
64
76
  * Position after `ds-text` upgrades and lays out. Measuring synchronously in
@@ -0,0 +1,21 @@
1
+ import type { TooltipAlign, TooltipSide } from './Tooltip';
2
+ export interface TooltipPositionInput {
3
+ anchorRect: Pick<DOMRectReadOnly, 'top' | 'left' | 'right' | 'bottom' | 'width' | 'height'>;
4
+ popupWidth: number;
5
+ popupHeight: number;
6
+ side: TooltipSide;
7
+ align: TooltipAlign;
8
+ sideOffsetPx: number;
9
+ alignOffsetPx: number;
10
+ viewportPadPx: number;
11
+ viewportWidth: number;
12
+ viewportHeight: number;
13
+ }
14
+ export interface TooltipPosition {
15
+ x: number;
16
+ y: number;
17
+ resolvedSide: TooltipSide;
18
+ }
19
+ /** Flip on the preferred axis when needed, then clamp within the viewport. */
20
+ export declare function computeTooltipPosition(input: TooltipPositionInput): TooltipPosition;
21
+ //# sourceMappingURL=tooltip-position.d.ts.map
@@ -32,10 +32,11 @@ import { PanelToolsItem, PanelToolsToolId } from "./components/PanelTools/panel-
32
32
  import { RadioOption } from "./components/RadioGroup/RadioGroup";
33
33
  import { SelectOption, SelectSize, SelectWidth } from "./components/Select/Select";
34
34
  import { ShellGradientPreset as ShellGradientPreset1 } from "./components/ShellGradientSwatch/shell-gradient-swatch-types";
35
- import { SkeletonVariant } from "./components/Skeleton/Skeleton";
35
+ import { SkeletonSurface, SkeletonVariant } from "./components/Skeleton/Skeleton";
36
36
  import { LineTruncation, TextAlign, TextColor, TextDecoration, TextElement, TextFontFeature, TextVariant, TextWrap } from "./components/Text/text-types";
37
37
  import { IconSize as IconSize1 } from "./components/Icon/Icon";
38
38
  import { ControlSize } from "./utils/control-text";
39
+ import { SwitchSize } from "./components/Switch/Switch";
39
40
  import { TabItem } from "./components/TabGroup/tab-item-utils";
40
41
  import { TabBackground } from "./components/TabGroup/TabGroup";
41
42
  import { TabGroupNavBackground } from "./components/TabGroupNav/TabGroupNav";
@@ -69,10 +70,11 @@ export { PanelToolsItem, PanelToolsToolId } from "./components/PanelTools/panel-
69
70
  export { RadioOption } from "./components/RadioGroup/RadioGroup";
70
71
  export { SelectOption, SelectSize, SelectWidth } from "./components/Select/Select";
71
72
  export { ShellGradientPreset as ShellGradientPreset1 } from "./components/ShellGradientSwatch/shell-gradient-swatch-types";
72
- export { SkeletonVariant } from "./components/Skeleton/Skeleton";
73
+ export { SkeletonSurface, SkeletonVariant } from "./components/Skeleton/Skeleton";
73
74
  export { LineTruncation, TextAlign, TextColor, TextDecoration, TextElement, TextFontFeature, TextVariant, TextWrap } from "./components/Text/text-types";
74
75
  export { IconSize as IconSize1 } from "./components/Icon/Icon";
75
76
  export { ControlSize } from "./utils/control-text";
77
+ export { SwitchSize } from "./components/Switch/Switch";
76
78
  export { TabItem } from "./components/TabGroup/tab-item-utils";
77
79
  export { TabBackground } from "./components/TabGroup/TabGroup";
78
80
  export { TabGroupNavBackground } from "./components/TabGroupNav/TabGroupNav";
@@ -112,11 +114,6 @@ export namespace Components {
112
114
  * @default false
113
115
  */
114
116
  "gradientBackground": boolean;
115
- /**
116
- * Deprecated alias for selected counter styling. Prefer context-specific color in the parent.
117
- * @default false
118
- */
119
- "isSelected": boolean;
120
117
  /**
121
118
  * Accessible label. Defaults to the count as a string.
122
119
  */
@@ -996,7 +993,7 @@ export namespace Components {
996
993
  */
997
994
  interface DsSelect {
998
995
  /**
999
- * When a value is selected, render the selected interaction fill (same recipe as unfilled-button `activeFill`). Default `true`. Pass `false` for foreground-only selection (primary label, no fill). Selected/open promotes the label to primary; chevron stays secondary.
996
+ * When a value is selected, render the selected interaction fill (same recipe as unfilled-button `activeFill`). Default `true`. Pass `false` for foreground-only selection (primary label, no fill). A selected value promotes the label to primary; chevron stays secondary.
1000
997
  * @default true
1001
998
  */
1002
999
  "activeFill": boolean;
@@ -1107,6 +1104,11 @@ export namespace Components {
1107
1104
  * @default true
1108
1105
  */
1109
1106
  "shimmer": boolean;
1107
+ /**
1108
+ * Surface context used to select the matching foreground base and shimmer tokens.
1109
+ * @default 'default'
1110
+ */
1111
+ "surface": SkeletonSurface;
1110
1112
  /**
1111
1113
  * Text metric recipe whose line-height defines the text canvas.
1112
1114
  * @default 'text-body-medium'
@@ -1149,6 +1151,56 @@ export namespace Components {
1149
1151
  "value": number;
1150
1152
  "valueText": string | undefined;
1151
1153
  }
1154
+ interface DsSwitch {
1155
+ /**
1156
+ * Current on/off state. The initial value is restored when the owning form resets.
1157
+ * @default false
1158
+ */
1159
+ "checked": boolean;
1160
+ /**
1161
+ * @default false
1162
+ */
1163
+ "disabled": boolean;
1164
+ /**
1165
+ * Associates the switch with a form by id when it is rendered outside that form.
1166
+ */
1167
+ "form": string | undefined;
1168
+ /**
1169
+ * @default false
1170
+ */
1171
+ "isInactive": boolean;
1172
+ "name": string | undefined;
1173
+ /**
1174
+ * Removes standalone control semantics so a composite owner such as a `menuitemcheckbox` can use the switch as an aria-hidden visual indicator.
1175
+ * @default false
1176
+ */
1177
+ "presentation": boolean;
1178
+ /**
1179
+ * @default false
1180
+ */
1181
+ "readOnly": boolean;
1182
+ /**
1183
+ * @default false
1184
+ */
1185
+ "required": boolean;
1186
+ /**
1187
+ * @default 'This field is required.'
1188
+ */
1189
+ "requiredMessage": string;
1190
+ /**
1191
+ * Compact track size for placement inside controls, menus, and form rows.
1192
+ * @default 'md'
1193
+ */
1194
+ "size": SwitchSize;
1195
+ /**
1196
+ * Optional value submitted when unchecked; omitted by default like a native checkbox.
1197
+ */
1198
+ "uncheckedValue": string | undefined;
1199
+ /**
1200
+ * @default 'on'
1201
+ */
1202
+ "value": string;
1203
+ }
1152
1204
  interface DsTabGroup {
1153
1205
  /**
1154
1206
  * @default null
@@ -1316,33 +1368,6 @@ export namespace Components {
1316
1368
  "variant": TextVariant;
1317
1369
  "wrap": TextWrap | undefined;
1318
1370
  }
1319
- interface DsToggle {
1320
- /**
1321
- * @default false
1322
- */
1323
- "checked": boolean;
1324
- /**
1325
- * @default false
1326
- */
1327
- "disabled": boolean;
1328
- /**
1329
- * @default false
1330
- */
1331
- "isInactive": boolean;
1332
- "name": string | undefined;
1333
- /**
1334
- * @default false
1335
- */
1336
- "required": boolean;
1337
- /**
1338
- * @default 'This field is required.'
1339
- */
1340
- "requiredMessage": string;
1341
- /**
1342
- * @default 'on'
1343
- */
1344
- "value": string;
1345
- }
1346
1371
  /**
1347
1372
  * Imperative body portal for the popup.
1348
1373
  * Stencil must not own the portaled node — moving a VDOM child to `document.body`
@@ -1510,6 +1535,10 @@ export interface DsSliderCustomEvent<T> extends CustomEvent<T> {
1510
1535
  detail: T;
1511
1536
  target: HTMLDsSliderElement;
1512
1537
  }
1538
+ export interface DsSwitchCustomEvent<T> extends CustomEvent<T> {
1539
+ detail: T;
1540
+ target: HTMLDsSwitchElement;
1541
+ }
1513
1542
  export interface DsTabGroupCustomEvent<T> extends CustomEvent<T> {
1514
1543
  detail: T;
1515
1544
  target: HTMLDsTabGroupElement;
@@ -1522,10 +1551,6 @@ export interface DsTableCustomEvent<T> extends CustomEvent<T> {
1522
1551
  detail: T;
1523
1552
  target: HTMLDsTableElement;
1524
1553
  }
1525
- export interface DsToggleCustomEvent<T> extends CustomEvent<T> {
1526
- detail: T;
1527
- target: HTMLDsToggleElement;
1528
- }
1529
1554
  declare global {
1530
1555
  interface HTMLDsAppShellElement extends Components.DsAppShell, HTMLStencilElement {
1531
1556
  }
@@ -1989,6 +2014,23 @@ declare global {
1989
2014
  prototype: HTMLDsSliderElement;
1990
2015
  new (): HTMLDsSliderElement;
1991
2016
  };
2017
+ interface HTMLDsSwitchElementEventMap {
2018
+ "dsChange": boolean;
2019
+ }
2020
+ interface HTMLDsSwitchElement extends Components.DsSwitch, HTMLStencilElement {
2021
+ addEventListener<K extends keyof HTMLDsSwitchElementEventMap>(type: K, listener: (this: HTMLDsSwitchElement, ev: DsSwitchCustomEvent<HTMLDsSwitchElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2022
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
2023
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
2024
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
2025
+ removeEventListener<K extends keyof HTMLDsSwitchElementEventMap>(type: K, listener: (this: HTMLDsSwitchElement, ev: DsSwitchCustomEvent<HTMLDsSwitchElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
2026
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
2027
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
2028
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
2029
+ }
2030
+ var HTMLDsSwitchElement: {
2031
+ prototype: HTMLDsSwitchElement;
2032
+ new (): HTMLDsSwitchElement;
2033
+ };
1992
2034
  interface HTMLDsTabGroupElementEventMap {
1993
2035
  "dsChange": string;
1994
2036
  }
@@ -2055,23 +2097,6 @@ declare global {
2055
2097
  prototype: HTMLDsTextElement;
2056
2098
  new (): HTMLDsTextElement;
2057
2099
  };
2058
- interface HTMLDsToggleElementEventMap {
2059
- "dsChange": boolean;
2060
- }
2061
- interface HTMLDsToggleElement extends Components.DsToggle, HTMLStencilElement {
2062
- addEventListener<K extends keyof HTMLDsToggleElementEventMap>(type: K, listener: (this: HTMLDsToggleElement, ev: DsToggleCustomEvent<HTMLDsToggleElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2063
- addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
2064
- addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
2065
- addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
2066
- removeEventListener<K extends keyof HTMLDsToggleElementEventMap>(type: K, listener: (this: HTMLDsToggleElement, ev: DsToggleCustomEvent<HTMLDsToggleElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
2067
- removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
2068
- removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
2069
- removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
2070
- }
2071
- var HTMLDsToggleElement: {
2072
- prototype: HTMLDsToggleElement;
2073
- new (): HTMLDsToggleElement;
2074
- };
2075
2100
  /**
2076
2101
  * Imperative body portal for the popup.
2077
2102
  * Stencil must not own the portaled node — moving a VDOM child to `document.body`
@@ -2136,12 +2161,12 @@ declare global {
2136
2161
  "ds-shell-gradient-swatch": HTMLDsShellGradientSwatchElement;
2137
2162
  "ds-skeleton": HTMLDsSkeletonElement;
2138
2163
  "ds-slider": HTMLDsSliderElement;
2164
+ "ds-switch": HTMLDsSwitchElement;
2139
2165
  "ds-tab-group": HTMLDsTabGroupElement;
2140
2166
  "ds-tab-group-nav": HTMLDsTabGroupNavElement;
2141
2167
  "ds-table": HTMLDsTableElement;
2142
2168
  "ds-tag": HTMLDsTagElement;
2143
2169
  "ds-text": HTMLDsTextElement;
2144
- "ds-toggle": HTMLDsToggleElement;
2145
2170
  "ds-tooltip": HTMLDsTooltipElement;
2146
2171
  "ds-tooltip-data-viz": HTMLDsTooltipDataVizElement;
2147
2172
  }
@@ -2181,11 +2206,6 @@ declare namespace LocalJSX {
2181
2206
  * @default false
2182
2207
  */
2183
2208
  "gradientBackground"?: boolean;
2184
- /**
2185
- * Deprecated alias for selected counter styling. Prefer context-specific color in the parent.
2186
- * @default false
2187
- */
2188
- "isSelected"?: boolean;
2189
2209
  /**
2190
2210
  * Accessible label. Defaults to the count as a string.
2191
2211
  */
@@ -3139,7 +3159,7 @@ declare namespace LocalJSX {
3139
3159
  */
3140
3160
  interface DsSelect {
3141
3161
  /**
3142
- * When a value is selected, render the selected interaction fill (same recipe as unfilled-button `activeFill`). Default `true`. Pass `false` for foreground-only selection (primary label, no fill). Selected/open promotes the label to primary; chevron stays secondary.
3162
+ * When a value is selected, render the selected interaction fill (same recipe as unfilled-button `activeFill`). Default `true`. Pass `false` for foreground-only selection (primary label, no fill). A selected value promotes the label to primary; chevron stays secondary.
3143
3163
  * @default true
3144
3164
  */
3145
3165
  "activeFill"?: boolean;
@@ -3260,6 +3280,11 @@ declare namespace LocalJSX {
3260
3280
  * @default true
3261
3281
  */
3262
3282
  "shimmer"?: boolean;
3283
+ /**
3284
+ * Surface context used to select the matching foreground base and shimmer tokens.
3285
+ * @default 'default'
3286
+ */
3287
+ "surface"?: SkeletonSurface;
3263
3288
  /**
3264
3289
  * Text metric recipe whose line-height defines the text canvas.
3265
3290
  * @default 'text-body-medium'
@@ -3303,6 +3328,57 @@ declare namespace LocalJSX {
3303
3328
  "value"?: number;
3304
3329
  "valueText"?: string | undefined;
3305
3330
  }
3331
+ interface DsSwitch {
3332
+ /**
3333
+ * Current on/off state. The initial value is restored when the owning form resets.
3334
+ * @default false
3335
+ */
3336
+ "checked"?: boolean;
3337
+ /**
3338
+ * @default false
3339
+ */
3340
+ "disabled"?: boolean;
3341
+ /**
3342
+ * Associates the switch with a form by id when it is rendered outside that form.
3343
+ */
3344
+ "form"?: string | undefined;
3345
+ /**
3346
+ * @default false
3347
+ */
3348
+ "isInactive"?: boolean;
3349
+ "name"?: string | undefined;
3350
+ "onDsChange"?: (event: DsSwitchCustomEvent<boolean>) => void;
3351
+ /**
3352
+ * Removes standalone control semantics so a composite owner such as a `menuitemcheckbox` can use the switch as an aria-hidden visual indicator.
3353
+ * @default false
3354
+ */
3355
+ "presentation"?: boolean;
3356
+ /**
3357
+ * @default false
3358
+ */
3359
+ "readOnly"?: boolean;
3360
+ /**
3361
+ * @default false
3362
+ */
3363
+ "required"?: boolean;
3364
+ /**
3365
+ * @default 'This field is required.'
3366
+ */
3367
+ "requiredMessage"?: string;
3368
+ /**
3369
+ * Compact track size for placement inside controls, menus, and form rows.
3370
+ * @default 'md'
3371
+ */
3372
+ "size"?: SwitchSize;
3373
+ /**
3374
+ * Optional value submitted when unchecked; omitted by default like a native checkbox.
3375
+ */
3376
+ "uncheckedValue"?: string | undefined;
3377
+ /**
3378
+ * @default 'on'
3379
+ */
3380
+ "value"?: string;
3381
+ }
3306
3382
  interface DsTabGroup {
3307
3383
  /**
3308
3384
  * @default null
@@ -3476,38 +3552,6 @@ declare namespace LocalJSX {
3476
3552
  "variant"?: TextVariant;
3477
3553
  "wrap"?: TextWrap | undefined;
3478
3554
  }
3479
- interface DsToggle {
3480
- /**
3481
- * @default false
3482
- */
3483
- "checked"?: boolean;
3484
- /**
3485
- * @default false
3486
- */
3487
- "disabled"?: boolean;
3488
- /**
3489
- * The `id` of a `<form>` element to associate this element with.
3490
- */
3491
- "form"?: string;
3492
- /**
3493
- * @default false
3494
- */
3495
- "isInactive"?: boolean;
3496
- "name"?: string | undefined;
3497
- "onDsChange"?: (event: DsToggleCustomEvent<boolean>) => void;
3498
- /**
3499
- * @default false
3500
- */
3501
- "required"?: boolean;
3502
- /**
3503
- * @default 'This field is required.'
3504
- */
3505
- "requiredMessage"?: string;
3506
- /**
3507
- * @default 'on'
3508
- */
3509
- "value"?: string;
3510
- }
3511
3555
  /**
3512
3556
  * Imperative body portal for the popup.
3513
3557
  * Stencil must not own the portaled node — moving a VDOM child to `document.body`
@@ -3603,7 +3647,6 @@ declare namespace LocalJSX {
3603
3647
  "surface": BadgeSurface;
3604
3648
  "background": string | undefined;
3605
3649
  "gradientBackground": boolean;
3606
- "isSelected": boolean;
3607
3650
  "label": string | undefined;
3608
3651
  }
3609
3652
  interface DsBannerAttributes {
@@ -3867,6 +3910,7 @@ declare namespace LocalJSX {
3867
3910
  "width": string;
3868
3911
  "rounded": boolean;
3869
3912
  "shimmer": boolean;
3913
+ "surface": SkeletonSurface;
3870
3914
  }
3871
3915
  interface DsSliderAttributes {
3872
3916
  "value": number;
@@ -3878,6 +3922,20 @@ declare namespace LocalJSX {
3878
3922
  "valueText": string | undefined;
3879
3923
  "inputId": string | undefined;
3880
3924
  }
3925
+ interface DsSwitchAttributes {
3926
+ "checked": boolean;
3927
+ "name": string | undefined;
3928
+ "value": string;
3929
+ "uncheckedValue": string | undefined;
3930
+ "form": string | undefined;
3931
+ "disabled": boolean;
3932
+ "readOnly": boolean;
3933
+ "required": boolean;
3934
+ "requiredMessage": string;
3935
+ "isInactive": boolean;
3936
+ "size": SwitchSize;
3937
+ "presentation": boolean;
3938
+ }
3881
3939
  interface DsTabGroupAttributes {
3882
3940
  "value": string;
3883
3941
  "background": TabBackground | undefined;
@@ -3929,15 +3987,6 @@ declare namespace LocalJSX {
3929
3987
  "for": string | undefined;
3930
3988
  "textId": string | undefined;
3931
3989
  }
3932
- interface DsToggleAttributes {
3933
- "checked": boolean;
3934
- "name": string | undefined;
3935
- "value": string;
3936
- "disabled": boolean;
3937
- "required": boolean;
3938
- "requiredMessage": string;
3939
- "isInactive": boolean;
3940
- }
3941
3990
  interface DsTooltipAttributes {
3942
3991
  "label": string;
3943
3992
  "size": TooltipSize;
@@ -3990,12 +4039,12 @@ declare namespace LocalJSX {
3990
4039
  "ds-shell-gradient-swatch": Omit<DsShellGradientSwatch, keyof DsShellGradientSwatchAttributes> & { [K in keyof DsShellGradientSwatch & keyof DsShellGradientSwatchAttributes]?: DsShellGradientSwatch[K] } & { [K in keyof DsShellGradientSwatch & keyof DsShellGradientSwatchAttributes as `attr:${K}`]?: DsShellGradientSwatchAttributes[K] } & { [K in keyof DsShellGradientSwatch & keyof DsShellGradientSwatchAttributes as `prop:${K}`]?: DsShellGradientSwatch[K] };
3991
4040
  "ds-skeleton": Omit<DsSkeleton, keyof DsSkeletonAttributes> & { [K in keyof DsSkeleton & keyof DsSkeletonAttributes]?: DsSkeleton[K] } & { [K in keyof DsSkeleton & keyof DsSkeletonAttributes as `attr:${K}`]?: DsSkeletonAttributes[K] } & { [K in keyof DsSkeleton & keyof DsSkeletonAttributes as `prop:${K}`]?: DsSkeleton[K] };
3992
4041
  "ds-slider": Omit<DsSlider, keyof DsSliderAttributes> & { [K in keyof DsSlider & keyof DsSliderAttributes]?: DsSlider[K] } & { [K in keyof DsSlider & keyof DsSliderAttributes as `attr:${K}`]?: DsSliderAttributes[K] } & { [K in keyof DsSlider & keyof DsSliderAttributes as `prop:${K}`]?: DsSlider[K] } & OneOf<"label", DsSlider["label"], DsSliderAttributes["label"]>;
4042
+ "ds-switch": Omit<DsSwitch, keyof DsSwitchAttributes> & { [K in keyof DsSwitch & keyof DsSwitchAttributes]?: DsSwitch[K] } & { [K in keyof DsSwitch & keyof DsSwitchAttributes as `attr:${K}`]?: DsSwitchAttributes[K] } & { [K in keyof DsSwitch & keyof DsSwitchAttributes as `prop:${K}`]?: DsSwitch[K] };
3993
4043
  "ds-tab-group": Omit<DsTabGroup, keyof DsTabGroupAttributes> & { [K in keyof DsTabGroup & keyof DsTabGroupAttributes]?: DsTabGroup[K] } & { [K in keyof DsTabGroup & keyof DsTabGroupAttributes as `attr:${K}`]?: DsTabGroupAttributes[K] } & { [K in keyof DsTabGroup & keyof DsTabGroupAttributes as `prop:${K}`]?: DsTabGroup[K] };
3994
4044
  "ds-tab-group-nav": Omit<DsTabGroupNav, keyof DsTabGroupNavAttributes> & { [K in keyof DsTabGroupNav & keyof DsTabGroupNavAttributes]?: DsTabGroupNav[K] } & { [K in keyof DsTabGroupNav & keyof DsTabGroupNavAttributes as `attr:${K}`]?: DsTabGroupNavAttributes[K] } & { [K in keyof DsTabGroupNav & keyof DsTabGroupNavAttributes as `prop:${K}`]?: DsTabGroupNav[K] };
3995
4045
  "ds-table": Omit<DsTable, keyof DsTableAttributes> & { [K in keyof DsTable & keyof DsTableAttributes]?: DsTable[K] } & { [K in keyof DsTable & keyof DsTableAttributes as `attr:${K}`]?: DsTableAttributes[K] } & { [K in keyof DsTable & keyof DsTableAttributes as `prop:${K}`]?: DsTable[K] };
3996
4046
  "ds-tag": Omit<DsTag, keyof DsTagAttributes> & { [K in keyof DsTag & keyof DsTagAttributes]?: DsTag[K] } & { [K in keyof DsTag & keyof DsTagAttributes as `attr:${K}`]?: DsTagAttributes[K] } & { [K in keyof DsTag & keyof DsTagAttributes as `prop:${K}`]?: DsTag[K] } & OneOf<"label", DsTag["label"], DsTagAttributes["label"]>;
3997
4047
  "ds-text": Omit<DsText, keyof DsTextAttributes> & { [K in keyof DsText & keyof DsTextAttributes]?: DsText[K] } & { [K in keyof DsText & keyof DsTextAttributes as `attr:${K}`]?: DsTextAttributes[K] } & { [K in keyof DsText & keyof DsTextAttributes as `prop:${K}`]?: DsText[K] };
3998
- "ds-toggle": Omit<DsToggle, keyof DsToggleAttributes> & { [K in keyof DsToggle & keyof DsToggleAttributes]?: DsToggle[K] } & { [K in keyof DsToggle & keyof DsToggleAttributes as `attr:${K}`]?: DsToggleAttributes[K] } & { [K in keyof DsToggle & keyof DsToggleAttributes as `prop:${K}`]?: DsToggle[K] };
3999
4048
  "ds-tooltip": Omit<DsTooltip, keyof DsTooltipAttributes> & { [K in keyof DsTooltip & keyof DsTooltipAttributes]?: DsTooltip[K] } & { [K in keyof DsTooltip & keyof DsTooltipAttributes as `attr:${K}`]?: DsTooltipAttributes[K] } & { [K in keyof DsTooltip & keyof DsTooltipAttributes as `prop:${K}`]?: DsTooltip[K] } & OneOf<"label", DsTooltip["label"], DsTooltipAttributes["label"]>;
4000
4049
  "ds-tooltip-data-viz": Omit<DsTooltipDataViz, keyof DsTooltipDataVizAttributes> & { [K in keyof DsTooltipDataViz & keyof DsTooltipDataVizAttributes]?: DsTooltipDataViz[K] } & { [K in keyof DsTooltipDataViz & keyof DsTooltipDataVizAttributes as `attr:${K}`]?: DsTooltipDataVizAttributes[K] } & { [K in keyof DsTooltipDataViz & keyof DsTooltipDataVizAttributes as `prop:${K}`]?: DsTooltipDataViz[K] };
4001
4050
  }
@@ -4060,12 +4109,12 @@ declare module "@stencil/core" {
4060
4109
  "ds-shell-gradient-swatch": LocalJSX.IntrinsicElements["ds-shell-gradient-swatch"] & JSXBase.HTMLAttributes<HTMLDsShellGradientSwatchElement>;
4061
4110
  "ds-skeleton": LocalJSX.IntrinsicElements["ds-skeleton"] & JSXBase.HTMLAttributes<HTMLDsSkeletonElement>;
4062
4111
  "ds-slider": LocalJSX.IntrinsicElements["ds-slider"] & JSXBase.HTMLAttributes<HTMLDsSliderElement>;
4112
+ "ds-switch": LocalJSX.IntrinsicElements["ds-switch"] & JSXBase.HTMLAttributes<HTMLDsSwitchElement>;
4063
4113
  "ds-tab-group": LocalJSX.IntrinsicElements["ds-tab-group"] & JSXBase.HTMLAttributes<HTMLDsTabGroupElement>;
4064
4114
  "ds-tab-group-nav": LocalJSX.IntrinsicElements["ds-tab-group-nav"] & JSXBase.HTMLAttributes<HTMLDsTabGroupNavElement>;
4065
4115
  "ds-table": LocalJSX.IntrinsicElements["ds-table"] & JSXBase.HTMLAttributes<HTMLDsTableElement>;
4066
4116
  "ds-tag": LocalJSX.IntrinsicElements["ds-tag"] & JSXBase.HTMLAttributes<HTMLDsTagElement>;
4067
4117
  "ds-text": LocalJSX.IntrinsicElements["ds-text"] & JSXBase.HTMLAttributes<HTMLDsTextElement>;
4068
- "ds-toggle": LocalJSX.IntrinsicElements["ds-toggle"] & JSXBase.HTMLAttributes<HTMLDsToggleElement>;
4069
4118
  /**
4070
4119
  * Imperative body portal for the popup.
4071
4120
  * Stencil must not own the portaled node — moving a VDOM child to `document.body`
@@ -2,7 +2,7 @@ export { registerIcons } from '../components/Icon/icon-cache';
2
2
  export { clearCssLengthPxCache, resolveCssLengthPx } from './resolve-css-length-px';
3
3
  export { formatCompactNumber } from './format-compact-number';
4
4
  export { truncateSvgTextToWidth } from './truncate-svg-text';
5
- export { parseCssTimeMs, resolveCssTimeMs } from './resolve-css-time-ms';
5
+ export { parseCssTimeMs, prefersReducedMotion, resolveCssTimeMs, resolveMotionTimeMs, } from './resolve-css-time-ms';
6
6
  export { SCROLL_EDGE_FADE_DEFAULT_SIZE, SCROLL_EDGE_FADE_SIZE_VAR, isScrollAtEdge, resolveScrollEdgeFadeSize, scrollEdgeFadeClassMap, scrollEdgeFadeMaskImage, scrollEdgeFadeMaskStyle, scrollEdgeFadeSizeStyle, } from './scroll-edge-fade';
7
7
  export type { ScrollEdgeFadeEdge, ScrollEdgeFadeOptions, ScrollEdgeFadeSize, ScrollEdgeFadeSizeToken, } from './scroll-edge-fade';
8
8
  export { TOKEN_DEFAULTS, TOKEN_CSS_LENGTHS } from './token-defaults';
@@ -5,4 +5,11 @@ export declare function parseCssTimeMs(value: string, fallback: number): number;
5
5
  * Accepts numbers (ms), raw times (`200ms`, `0.75s`), or `var(--effect-*)` references.
6
6
  */
7
7
  export declare function resolveCssTimeMs(value: number | string | undefined, fallbackToken: string): number;
8
+ /** Whether the user has requested reduced non-essential motion. */
9
+ export declare function prefersReducedMotion(): boolean;
10
+ /**
11
+ * Resolve an animation-coupled duration. Returns zero under reduced motion so
12
+ * JS cleanup stays synchronized with CSS that removes the corresponding motion.
13
+ */
14
+ export declare function resolveMotionTimeMs(value: number | string | undefined, fallbackToken: string): number;
8
15
  //# sourceMappingURL=resolve-css-time-ms.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ds-mo/ui",
3
- "version": "4.2.0",
3
+ "version": "6.0.0",
4
4
  "description": "CompoMo — composable web components styled with TokoMo design tokens",
5
5
  "keywords": [
6
6
  "web-components",
@@ -70,7 +70,7 @@
70
70
  "pretest": "node scripts/generate-icon-catalog.mjs",
71
71
  "build": "stencil build && node scripts/patch-index-types.mjs && node scripts/verify-icons-externalized.mjs && node scripts/write-build-stamp.mjs && node scripts/build-lib-exports.mjs && node scripts/build-framework-exports.mjs && node scripts/build-registry.mjs && node scripts/build-agent-manifest.mjs",
72
72
  "verify:pack": "node scripts/verify-npm-pack.mjs && node scripts/verify-package-imports.mjs",
73
- "test": "node --import tsx/esm --test tests/component-inventory.test.ts tests/agent-contract.test.ts tests/panel-nav-utils.test.ts tests/panel-tools.test.ts tests/text.test.ts tests/eslint-plugin-local.test.ts tests/stylelint-plugin-local.test.ts tests/shell-shortcuts.test.ts tests/shell-gradient-presets.test.ts tests/shell-view-transition.test.ts tests/shell-gradient.test.ts tests/shell-chrome-metrics.test.ts tests/shell-chrome-layer.test.ts tests/chrome-transition.test.ts tests/bar-nav-overflow-hysteresis.test.ts tests/badge-gradient-ring.test.ts tests/scroll-edge-fade.test.ts tests/resolve-css-length-px.test.ts tests/resolve-css-time-ms.test.ts tests/overlay-positioning.test.ts tests/menu-position.test.ts tests/menu-placement.test.ts tests/bar-nav-utils.test.ts tests/bar-nav-tabs-menu-utils.test.ts tests/bar-nav-dom-utils.test.ts tests/icon-catalog.test.ts tests/icon-cache.test.ts tests/icon-svg.test.ts",
73
+ "test": "node --import tsx/esm --test tests/component-inventory.test.ts tests/agent-contract.test.ts tests/panel-nav-utils.test.ts tests/panel-tools.test.ts tests/text.test.ts tests/eslint-plugin-local.test.ts tests/stylelint-plugin-local.test.ts tests/shell-shortcuts.test.ts tests/shell-gradient-presets.test.ts tests/shell-view-transition.test.ts tests/shell-gradient.test.ts tests/shell-chrome-metrics.test.ts tests/shell-chrome-layer.test.ts tests/chrome-transition.test.ts tests/bar-nav-overflow-hysteresis.test.ts tests/badge-gradient-ring.test.ts tests/scroll-edge-fade.test.ts tests/resolve-css-length-px.test.ts tests/resolve-css-time-ms.test.ts tests/overlay-positioning.test.ts tests/menu-position.test.ts tests/tooltip-position.test.ts tests/menu-placement.test.ts tests/bar-nav-utils.test.ts tests/bar-nav-tabs-menu-utils.test.ts tests/bar-nav-dom-utils.test.ts tests/icon-catalog.test.ts tests/icon-cache.test.ts tests/icon-svg.test.ts",
74
74
  "test:e2e": "npm run build && playwright test",
75
75
  "test:e2e:install": "playwright install chromium firefox webkit",
76
76
  "build:docs": "stencil build --docs",
@@ -97,7 +97,7 @@
97
97
  "@angular/core": ">=19 <23",
98
98
  "@angular/forms": ">=19 <23",
99
99
  "@ds-mo/icons": "^6.2.0",
100
- "@ds-mo/tokens": "^2.15.0",
100
+ "@ds-mo/tokens": "^3.0.0",
101
101
  "react": "^18 || ^19",
102
102
  "react-dom": "^18 || ^19"
103
103
  },
@@ -122,7 +122,7 @@
122
122
  "@angular/forms": "^22.0.4",
123
123
  "@axe-core/playwright": "^4.12.1",
124
124
  "@ds-mo/icons": "^6.2.0",
125
- "@ds-mo/tokens": "^2.15.0",
125
+ "@ds-mo/tokens": "^3.0.0",
126
126
  "@eslint/js": "^10.0.1",
127
127
  "@figma/code-connect": "^1.4.9",
128
128
  "@modelcontextprotocol/sdk": "^1.29.0",
@@ -1,15 +0,0 @@
1
- import { ChangeDetectorRef, ElementRef, NgZone, EventEmitter } from '@angular/core';
2
- import type { Components } from '@ds-mo/ui/components';
3
- import type { DsToggleCustomEvent } from '@ds-mo/ui/components';
4
- import * as i0 from "@angular/core";
5
- export declare class DsToggle {
6
- protected z: NgZone;
7
- protected el: HTMLDsToggleElement;
8
- dsChange: EventEmitter<DsToggleCustomEvent<boolean>>;
9
- constructor(c: ChangeDetectorRef, r: ElementRef, z: NgZone);
10
- static ɵfac: i0.ɵɵFactoryDeclaration<DsToggle, never>;
11
- static ɵcmp: i0.ɵɵComponentDeclaration<DsToggle, "ds-toggle", never, { "checked": { "alias": "checked"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "isInactive": { "alias": "isInactive"; "required": false; }; "name": { "alias": "name"; "required": false; }; "required": { "alias": "required"; "required": false; }; "requiredMessage": { "alias": "requiredMessage"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "dsChange": "dsChange"; }, never, ["*"], true, never>;
12
- }
13
- export declare interface DsToggle extends Components.DsToggle {
14
- dsChange: EventEmitter<DsToggleCustomEvent<boolean>>;
15
- }
@@ -1,2 +0,0 @@
1
- import{p as e,H as t,c as s,h as i,a as o,t as n}from"./index.js";const r=()=>`:host(.ds-control-inactive),.ds-control-inactive{opacity:0.25;pointer-events:none;cursor:not-allowed}:host{position:relative;display:inline-flex;align-items:center;justify-content:flex-start;width:var(--dimension-size-400);height:var(--dimension-size-250);padding:0 var(--dimension-space-025);border:none;border-radius:var(--dimension-radius-half);cursor:pointer;user-select:none;outline:none;flex-shrink:0;background-color:var(--color-background-medium-neutral);box-shadow:var(--effect-highlight-depressed-sm);transition:background-color var(--effect-motion-short-2);box-sizing:border-box}:host::before{content:'';position:absolute;inset:0;border-radius:inherit;box-shadow:var(--effect-shadow-depressed-sm);pointer-events:none}:host(:focus-visible){outline:var(--dimension-stroke-width-025) solid var(--color-interaction-focus);outline-offset:var(--dimension-space-025)}:host(.checked){background-color:var(--color-foreground-bold-brand)}.thumb{position:relative;flex-shrink:0;width:var(--dimension-size-200);height:var(--dimension-size-200);background-color:var(--color-background-primary);border-radius:var(--dimension-radius-half);box-shadow:var(--effect-elevation-elevated-sm);transition:transform var(--effect-motion-short-2);transform:translateX(0);z-index:1}.thumb::after{content:'';position:absolute;inset:0;background-color:transparent;border-radius:inherit;transition:background-color var(--effect-motion-instant, 100ms);pointer-events:none}:host(:hover:not(.ds-control-inactive)) .thumb::after{background-color:var(--color-interaction-hover)}:host(:active:not(.ds-control-inactive)) .thumb::after{background-color:var(--color-interaction-pressed)}:host(.checked) .thumb{transform:translateX(var(--dimension-offset-150))}:host(:active:not(.ds-control-inactive)) .thumb{transform:translateX(0) scale(var(--dimension-scale-subtle)) !important;transition:transform var(--effect-motion-instant)}:host(.checked:active:not(.ds-control-inactive)) .thumb{transform:translateX(var(--dimension-offset-150)) scale(var(--dimension-scale-subtle)) !important;transition:transform var(--effect-motion-instant)}`;const a=e(class e extends t{constructor(e){super();if(e!==false){this.__registerHost()}this.__attachShadow();this.dsChange=s(this,"dsChange");this.internals=this.attachInternals();this.checked=false;this.value="on";this.disabled=false;this.required=false;this.requiredMessage="This field is required.";this.isInactive=false;this.initialChecked=false;this.formDisabled=false;this.handleClick=()=>{if(this.isInactive||this.disabled||this.formDisabled)return;this.checked=!this.checked;this.dsChange.emit(this.checked)};this.handleKeyDown=e=>{if(this.isInactive||this.disabled||this.formDisabled)return;if(e.key===" "||e.key==="Enter"){e.preventDefault();this.handleClick()}}}componentWillLoad(){this.initialChecked=this.checked;this.syncFormValue()}syncFormValue(){const e=this.isInactive||this.disabled||this.formDisabled;this.internals.setFormValue(!e&&this.checked?this.value:null);const t=this.required&&!e&&!this.checked;this.internals.setValidity(t?{valueMissing:true}:{},t?this.requiredMessage:"")}formDisabledCallback(e){this.formDisabled=e;this.syncFormValue()}formResetCallback(){this.checked=this.initialChecked}render(){const e=this.isInactive||this.disabled||this.formDisabled;return i(o,{key:"66d2af20beb0fddfb3b01f64dc8e8838893e3bb6",role:"switch","aria-checked":String(this.checked),"aria-disabled":e?"true":undefined,tabIndex:e?-1:0,class:{toggle:true,checked:this.checked,"ds-control-inactive":e},onClick:this.handleClick,onKeyDown:this.handleKeyDown},i("span",{key:"209a9f0faf75dd57c74408dc4958d97ad1a7a624",class:"thumb"}))}static get formAssociated(){return true}static get watchers(){return{checked:[{syncFormValue:0}],value:[{syncFormValue:0}],disabled:[{syncFormValue:0}],isInactive:[{syncFormValue:0}],required:[{syncFormValue:0}]}}static get style(){return r()}},[65,"ds-toggle",{checked:[1028],name:[513],value:[1],disabled:[516],required:[516],requiredMessage:[1,"required-message"],isInactive:[4,"is-inactive"],formDisabled:[32]},undefined,{checked:[{syncFormValue:0}],value:[{syncFormValue:0}],disabled:[{syncFormValue:0}],isInactive:[{syncFormValue:0}],required:[{syncFormValue:0}]}]);function c(){if(typeof customElements==="undefined"){return}const e=["ds-toggle"];e.forEach((e=>{switch(e){case"ds-toggle":if(!customElements.get(n(e))){customElements.define(n(e),a)}break}}))}c();const d=a;const l=c;export{d as DsToggle,l as defineCustomElement};
2
- //# sourceMappingURL=ds-toggle.js.map