@odx/foundation 1.0.0-alpha.6 → 1.0.0-alpha.7

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 (248) hide show
  1. package/README.md +7 -7
  2. package/dist/cdk.js +345 -0
  3. package/dist/components/accordion/accordion-header.component.d.ts +1 -1
  4. package/dist/components/button/base-button.d.ts +1 -1
  5. package/dist/components/button/button.component.d.ts +1 -1
  6. package/dist/components/button-group/button-group.component.d.ts +1 -1
  7. package/dist/components/card/card.component.d.ts +1 -1
  8. package/dist/components/chip/chip.component.d.ts +1 -1
  9. package/dist/components/dropdown/dropdown.component.d.ts +2 -2
  10. package/dist/components/format/format-date.component.d.ts +1 -1
  11. package/dist/components/format/format-number.component.d.ts +1 -1
  12. package/dist/components/format/format.component.d.ts +2 -2
  13. package/dist/components/format/relative-time.component.d.ts +1 -1
  14. package/dist/components/input/input.component.d.ts +1 -1
  15. package/dist/components/link/base-link.d.ts +1 -1
  16. package/dist/components/loading-overlay/loading-overlay.component.d.ts +1 -1
  17. package/dist/components/menu/menu.component.d.ts +2 -2
  18. package/dist/components/slider/slider-handle.component.d.ts +2 -2
  19. package/dist/components/slider/slider.component.d.ts +1 -1
  20. package/dist/components/spinbox/spinbox.component.d.ts +1 -1
  21. package/dist/components/tooltip/tooltip.element.d.ts +2 -2
  22. package/dist/components.js +4284 -0
  23. package/dist/i18n/lib/translate.d.ts +5 -1
  24. package/dist/i18n.js +140 -0
  25. package/dist/main.js +1448 -0
  26. package/dist/vendor.js +3660 -0
  27. package/package.json +13 -22
  28. package/dist/cdk/drag-drop/drag.controller.js +0 -90
  29. package/dist/cdk/drag-drop/is-draggable.js +0 -42
  30. package/dist/cdk/main.js +0 -5
  31. package/dist/cdk/popover/popover-host.mixin.css.js +0 -3
  32. package/dist/cdk/popover/popover-host.mixin.js +0 -115
  33. package/dist/cdk/popover/popover.component.css.js +0 -3
  34. package/dist/cdk/popover/popover.component.js +0 -38
  35. package/dist/cdk/popover/popover.models.js +0 -32
  36. package/dist/cdk/popover/popover.utils.js +0 -48
  37. package/dist/components/accordion/accordion-header.component.css.js +0 -3
  38. package/dist/components/accordion/accordion-header.component.js +0 -69
  39. package/dist/components/accordion/accordion-panel.component.css.js +0 -3
  40. package/dist/components/accordion/accordion-panel.component.js +0 -29
  41. package/dist/components/accordion/accordion.component.css.js +0 -3
  42. package/dist/components/accordion/accordion.component.js +0 -83
  43. package/dist/components/area-header/area-header.component.css.js +0 -3
  44. package/dist/components/area-header/area-header.component.js +0 -37
  45. package/dist/components/area-header/area-header.models.js +0 -11
  46. package/dist/components/avatar/avatar.component.css.js +0 -3
  47. package/dist/components/avatar/avatar.component.js +0 -31
  48. package/dist/components/avatar/avatar.models.js +0 -12
  49. package/dist/components/avatar-group/avatar-group.component.css.js +0 -3
  50. package/dist/components/avatar-group/avatar-group.component.js +0 -31
  51. package/dist/components/badge/badge.component.css.js +0 -3
  52. package/dist/components/badge/badge.component.js +0 -32
  53. package/dist/components/badge/badge.models.js +0 -10
  54. package/dist/components/breadcrumbs/breadcrumbs-item.component.css.js +0 -3
  55. package/dist/components/breadcrumbs/breadcrumbs-item.component.js +0 -56
  56. package/dist/components/breadcrumbs/breadcrumbs.component.css.js +0 -3
  57. package/dist/components/breadcrumbs/breadcrumbs.component.js +0 -88
  58. package/dist/components/button/base-button.css.js +0 -3
  59. package/dist/components/button/base-button.js +0 -72
  60. package/dist/components/button/button.component.css.js +0 -3
  61. package/dist/components/button/button.component.js +0 -66
  62. package/dist/components/button/button.models.js +0 -16
  63. package/dist/components/button-group/button-group.component.css.js +0 -3
  64. package/dist/components/button-group/button-group.component.js +0 -47
  65. package/dist/components/card/card.component.css.js +0 -3
  66. package/dist/components/card/card.component.js +0 -30
  67. package/dist/components/checkbox/checkbox.component.css.js +0 -3
  68. package/dist/components/checkbox/checkbox.component.js +0 -57
  69. package/dist/components/checkbox-group/checkbox-group.component.css.js +0 -3
  70. package/dist/components/checkbox-group/checkbox-group.component.js +0 -54
  71. package/dist/components/checkbox-group/checkbox-group.models.js +0 -5
  72. package/dist/components/chip/chip.component.css.js +0 -3
  73. package/dist/components/chip/chip.component.js +0 -94
  74. package/dist/components/chip/chip.models.js +0 -10
  75. package/dist/components/circular-progress-bar/circular-progress-bar.component.css.js +0 -3
  76. package/dist/components/circular-progress-bar/circular-progress-bar.component.js +0 -123
  77. package/dist/components/circular-progress-bar/circular-progress-bar.models.js +0 -7
  78. package/dist/components/content-box/content-box.component.css.js +0 -3
  79. package/dist/components/content-box/content-box.component.js +0 -26
  80. package/dist/components/dropdown/dropdown.component.css.js +0 -3
  81. package/dist/components/dropdown/dropdown.component.js +0 -121
  82. package/dist/components/dropdown/dropdown.models.js +0 -8
  83. package/dist/components/form-field/form-field.element.css.js +0 -3
  84. package/dist/components/form-field/form-field.element.js +0 -62
  85. package/dist/components/format/format-bytes.component.js +0 -46
  86. package/dist/components/format/format-date.component.js +0 -36
  87. package/dist/components/format/format-number.component.js +0 -59
  88. package/dist/components/format/format.component.js +0 -34
  89. package/dist/components/format/relative-time.component.js +0 -80
  90. package/dist/components/header/header-actions.component.css.js +0 -3
  91. package/dist/components/header/header-actions.component.js +0 -22
  92. package/dist/components/header/header.component.css.js +0 -3
  93. package/dist/components/header/header.component.js +0 -58
  94. package/dist/components/headline/headline.component.css.js +0 -3
  95. package/dist/components/headline/headline.component.js +0 -31
  96. package/dist/components/headline/headline.models.js +0 -8
  97. package/dist/components/icon-button/icon-button.component.js +0 -34
  98. package/dist/components/inline-message/inline-message.component.css.js +0 -3
  99. package/dist/components/inline-message/inline-message.component.js +0 -39
  100. package/dist/components/inline-message/inline-message.models.js +0 -9
  101. package/dist/components/input/input.component.css.js +0 -3
  102. package/dist/components/input/input.component.js +0 -72
  103. package/dist/components/input/input.models.js +0 -7
  104. package/dist/components/line-clamp/line-clamp.component.css.js +0 -3
  105. package/dist/components/line-clamp/line-clamp.component.js +0 -37
  106. package/dist/components/link/base-link.js +0 -70
  107. package/dist/components/link/link.component.css.js +0 -3
  108. package/dist/components/link/link.component.js +0 -33
  109. package/dist/components/list/list-item.component.css.js +0 -3
  110. package/dist/components/list/list-item.component.js +0 -33
  111. package/dist/components/list/list.component.css.js +0 -3
  112. package/dist/components/list/list.component.js +0 -25
  113. package/dist/components/loading-overlay/loading-overlay.component.css.js +0 -3
  114. package/dist/components/loading-overlay/loading-overlay.component.js +0 -78
  115. package/dist/components/loading-spinner/loading-spinner.component.css.js +0 -3
  116. package/dist/components/loading-spinner/loading-spinner.component.js +0 -58
  117. package/dist/components/logo/logo.component.css.js +0 -3
  118. package/dist/components/logo/logo.component.js +0 -38
  119. package/dist/components/logo/logo.models.js +0 -9
  120. package/dist/components/main-menu/main-menu-button.component.js +0 -38
  121. package/dist/components/main-menu/main-menu-link.component.css.js +0 -3
  122. package/dist/components/main-menu/main-menu-link.component.js +0 -20
  123. package/dist/components/main-menu/main-menu-subtitle.component.js +0 -29
  124. package/dist/components/main-menu/main-menu-title.component.js +0 -29
  125. package/dist/components/main-menu/main-menu.component.css.js +0 -3
  126. package/dist/components/main-menu/main-menu.component.js +0 -82
  127. package/dist/components/main.js +0 -102
  128. package/dist/components/menu/menu-label.component.css.js +0 -3
  129. package/dist/components/menu/menu-label.component.js +0 -18
  130. package/dist/components/menu/menu.component.css.js +0 -3
  131. package/dist/components/menu/menu.component.js +0 -111
  132. package/dist/components/menu-item/menu-item.component.css.js +0 -3
  133. package/dist/components/menu-item/menu-item.component.js +0 -45
  134. package/dist/components/navigation-item/navigation-item.component.css.js +0 -3
  135. package/dist/components/navigation-item/navigation-item.component.js +0 -43
  136. package/dist/components/navigation-item/navigation-item.models.js +0 -6
  137. package/dist/components/option/option.component.css.js +0 -3
  138. package/dist/components/option/option.component.js +0 -37
  139. package/dist/components/page/page.component.css.js +0 -3
  140. package/dist/components/page/page.component.js +0 -53
  141. package/dist/components/page/page.models.js +0 -9
  142. package/dist/components/page-layout/page-layout.component.css.js +0 -3
  143. package/dist/components/page-layout/page-layout.component.js +0 -28
  144. package/dist/components/progress-bar/progress-bar.component.css.js +0 -3
  145. package/dist/components/progress-bar/progress-bar.component.js +0 -89
  146. package/dist/components/progress-bar/progress-bar.models.js +0 -7
  147. package/dist/components/radio-button/radio-button.component.css.js +0 -3
  148. package/dist/components/radio-button/radio-button.component.js +0 -39
  149. package/dist/components/radio-group/radio-group.component.css.js +0 -3
  150. package/dist/components/radio-group/radio-group.component.js +0 -24
  151. package/dist/components/radio-group/radio-group.models.js +0 -5
  152. package/dist/components/rail-navigation/rail-navigation.component.css.js +0 -3
  153. package/dist/components/rail-navigation/rail-navigation.component.js +0 -65
  154. package/dist/components/search-bar/search-bar.component.css.js +0 -3
  155. package/dist/components/search-bar/search-bar.component.js +0 -100
  156. package/dist/components/search-bar/search-bar.events.js +0 -7
  157. package/dist/components/search-bar/search-bar.models.js +0 -6
  158. package/dist/components/select/select.component.css.js +0 -3
  159. package/dist/components/select/select.component.js +0 -101
  160. package/dist/components/separator/separator.component.css.js +0 -3
  161. package/dist/components/separator/separator.component.js +0 -49
  162. package/dist/components/skeleton/skeleton.component.css.js +0 -3
  163. package/dist/components/skeleton/skeleton.component.js +0 -32
  164. package/dist/components/slider/slider-handle.component.css.js +0 -3
  165. package/dist/components/slider/slider-handle.component.js +0 -168
  166. package/dist/components/slider/slider-marks.component.css.js +0 -3
  167. package/dist/components/slider/slider-marks.component.js +0 -61
  168. package/dist/components/slider/slider.component.css.js +0 -3
  169. package/dist/components/slider/slider.component.js +0 -119
  170. package/dist/components/slider/slider.models.js +0 -17
  171. package/dist/components/spacer/spacer.component.css.js +0 -3
  172. package/dist/components/spacer/spacer.component.js +0 -39
  173. package/dist/components/spinbox/spinbox.component.css.js +0 -3
  174. package/dist/components/spinbox/spinbox.component.js +0 -94
  175. package/dist/components/stack/stack.component.css.js +0 -3
  176. package/dist/components/stack/stack.component.js +0 -45
  177. package/dist/components/stack/stack.models.js +0 -23
  178. package/dist/components/switch/switch.component.css.js +0 -3
  179. package/dist/components/switch/switch.component.js +0 -36
  180. package/dist/components/table/table-body.element.css.js +0 -3
  181. package/dist/components/table/table-body.element.js +0 -26
  182. package/dist/components/table/table-cell.element.css.js +0 -3
  183. package/dist/components/table/table-cell.element.js +0 -26
  184. package/dist/components/table/table-checkbox-cell.element.css.js +0 -3
  185. package/dist/components/table/table-checkbox-cell.element.js +0 -66
  186. package/dist/components/table/table-header-cell.element.css.js +0 -3
  187. package/dist/components/table/table-header-cell.element.js +0 -40
  188. package/dist/components/table/table-header.element.css.js +0 -3
  189. package/dist/components/table/table-header.element.js +0 -52
  190. package/dist/components/table/table-row.element.css.js +0 -3
  191. package/dist/components/table/table-row.element.js +0 -111
  192. package/dist/components/table/table.element.css.js +0 -3
  193. package/dist/components/table/table.element.js +0 -97
  194. package/dist/components/text/text.component.css.js +0 -3
  195. package/dist/components/text/text.component.js +0 -34
  196. package/dist/components/text/text.models.js +0 -13
  197. package/dist/components/title/title.component.css.js +0 -3
  198. package/dist/components/title/title.component.js +0 -31
  199. package/dist/components/title/title.models.js +0 -10
  200. package/dist/components/toast/toast.element.css.js +0 -3
  201. package/dist/components/toast/toast.element.js +0 -31
  202. package/dist/components/toast/toast.models.js +0 -5
  203. package/dist/components/toggle-button/toggle-button.component.css.js +0 -3
  204. package/dist/components/toggle-button/toggle-button.component.js +0 -52
  205. package/dist/components/tooltip/tooltip.element.css.js +0 -3
  206. package/dist/components/tooltip/tooltip.element.js +0 -120
  207. package/dist/components/tooltip/tooltip.models.js +0 -10
  208. package/dist/components/visually-hidden/visually-hidden.component.css.js +0 -3
  209. package/dist/components/visually-hidden/visually-hidden.component.js +0 -22
  210. package/dist/i18n/lib/config.js +0 -16
  211. package/dist/i18n/lib/format.js +0 -55
  212. package/dist/i18n/lib/is-localized.mixin.js +0 -41
  213. package/dist/i18n/lib/localization.js +0 -28
  214. package/dist/i18n/lib/translate.js +0 -18
  215. package/dist/i18n/main.js +0 -5
  216. package/dist/lib/controllers/focus-trap.controller.js +0 -55
  217. package/dist/lib/custom-element.css.js +0 -3
  218. package/dist/lib/custom-element.js +0 -27
  219. package/dist/lib/decorators/request-update-on-aria-change.js +0 -15
  220. package/dist/lib/directives/aria-boolean-attr.js +0 -9
  221. package/dist/lib/directives/optional-attr.js +0 -8
  222. package/dist/lib/directives/optional-slot.js +0 -14
  223. package/dist/lib/directives/slot-fallback.js +0 -16
  224. package/dist/lib/external/roving-tabindex.js +0 -386
  225. package/dist/lib/facade/checkbox-form-control.js +0 -78
  226. package/dist/lib/facade/checkbox-group-form-control.js +0 -109
  227. package/dist/lib/facade/option-control.js +0 -49
  228. package/dist/lib/facade/radio-group-form-control.js +0 -87
  229. package/dist/lib/facade/select-form-control.js +0 -108
  230. package/dist/lib/main.js +0 -30
  231. package/dist/lib/mixins/can-be-disabled.js +0 -60
  232. package/dist/lib/mixins/can-be-readonly.js +0 -33
  233. package/dist/lib/mixins/can-be-required.js +0 -33
  234. package/dist/lib/mixins/can-be-validated.js +0 -32
  235. package/dist/lib/mixins/dedupe-mixin.js +0 -23
  236. package/dist/lib/mixins/form-control.js +0 -61
  237. package/dist/lib/mixins/number-control.js +0 -63
  238. package/dist/lib/mixins/with-aria-controls.js +0 -43
  239. package/dist/lib/mixins/with-loading-state.js +0 -33
  240. package/dist/lib/utils/date.js +0 -10
  241. package/dist/lib/utils/dom.js +0 -48
  242. package/dist/lib/utils/get-unique-id.js +0 -15
  243. package/dist/lib/utils/keyboard-events.js +0 -42
  244. package/dist/lib/utils/object.js +0 -7
  245. package/dist/lib/utils/shared-intersection-observer.js +0 -37
  246. package/dist/lib/utils/shared-resize-observer.js +0 -38
  247. package/dist/lib/utils/string.js +0 -7
  248. /package/dist/{lib/main.css → styles.css} +0 -0
@@ -0,0 +1,4284 @@
1
+ import { WithAriaControls, CustomElement, toAriaBooleanAttribute, fromAriaBooleanAttribute, customElement, getKeyboardEventInfo, CanBeDisabled, requestUpdateOnAriaChange, optionalAttr, WithLoadingState, getAssignedElements, optionalSlot, CheckboxGroupFormControl, CheckboxFormControl, getElementFromEvent, toggleAttribute, SharedResizeObserver, getUniqueId, parseDate, FormControl, waitForAnimations, FocusTrapController, RovingTabindexController, OptionControl, toPx, RadioGroupFormControl, SelectFormControl, emptySlotFallbackFix, NumberControl } from '@odx/foundation';
2
+ import { html, isServer, nothing, css } from 'lit';
3
+ import { property, queryAssignedElements, query, queryAll } from 'lit/decorators.js';
4
+ import { when } from 'lit/directives/when.js';
5
+ import { ifDefined } from 'lit/directives/if-defined.js';
6
+ import { repeat } from 'lit/directives/repeat.js';
7
+ import { classMap } from 'lit/directives/class-map.js';
8
+ import { PopoverPlacement, PopoverHost, IsDraggable, IS_DRAG_ACTIVE_ATTRIBUTE, DragController } from '@odx/foundation/cdk';
9
+ import { IsLocalized, setTranslation, translate } from '@odx/foundation/i18n';
10
+ import { g as clamp, r as round, i as debounce, m as minBy, j as maxBy } from './vendor.js';
11
+ import { styleMap } from 'lit/directives/style-map.js';
12
+ import { watch } from '@lit-labs/signals';
13
+ import { createContext, consume, provide } from '@lit/context';
14
+
15
+ const styles$14 = ":host{--_color-background: var(--odx-palette-transparent);--_color-foreground: var(--odx-color-foreground);display:flex;user-select:none;place-items:center;cursor:pointer;gap:var(--odx-size-50);min-block-size:var(--odx-size-225);border-radius:var(--odx-border-radius-controls);background-color:var(--_color-background);margin-block:var(--odx-size-37);padding-block:var(--odx-size-25);padding-inline:var(--odx-size-50);color:var(--_color-foreground);transition:var(--odx-transition-default);transition-property:background-color,color,outline-color;outline:var(--odx-focus-ring-outline)}.indicator{--size: var(--odx-size-150);display:block;margin-inline-start:auto;aspect-ratio:1;transition:var(--odx-transition-slow);transition-property:transform}:host(:not([aria-disabled=\"true\"]):hover){--_color-background: var(--odx-color-transparent-hover)}:host(:not([aria-disabled=\"true\"]):active){--_color-background: var(--odx-color-transparent-pressed)}:host([aria-disabled=\"true\"]){--_color-foreground: var(--odx-color-disabled-foreground);cursor:default}:host([aria-expanded=\"true\"]){.indicator{transform:rotateX(180deg)}}:host(:focus-visible){outline-color:var(--odx-focus-ring-color)}";
16
+
17
+ var __defProp$1e = Object.defineProperty;
18
+ var __getOwnPropDesc$1e = Object.getOwnPropertyDescriptor;
19
+ var __decorateClass$1e = (decorators, target, key, kind) => {
20
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$1e(target, key) : target;
21
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
22
+ if (decorator = decorators[i])
23
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
24
+ if (kind && result) __defProp$1e(target, key, result);
25
+ return result;
26
+ };
27
+ let OdxAccordionHeaderComponent = class extends WithAriaControls(CustomElement) {
28
+ set expanded(value) {
29
+ if (this.disabled) return;
30
+ this.ariaExpanded = toAriaBooleanAttribute(value);
31
+ }
32
+ get expanded() {
33
+ return fromAriaBooleanAttribute(this.ariaExpanded);
34
+ }
35
+ updateA11yAttributes() {
36
+ if (!this.region) return;
37
+ this.region.ariaHidden = toAriaBooleanAttribute(!this.expanded);
38
+ this.region.inert = !this.expanded;
39
+ super.updateA11yAttributes();
40
+ }
41
+ toggle(force) {
42
+ if (this.disabled) return;
43
+ const state = force ?? !this.expanded;
44
+ if (this.expanded === state) return;
45
+ this.expanded = state;
46
+ if (state) {
47
+ this.emit("expand");
48
+ } else {
49
+ this.emit("collapse");
50
+ }
51
+ if (this.expanded) return;
52
+ const childAccordion = this.region?.querySelector("odx-accordion");
53
+ childAccordion?.toggleAll(false);
54
+ }
55
+ update(props) {
56
+ super.update(props);
57
+ if (props.has("expanded")) {
58
+ this.updateA11yAttributes();
59
+ }
60
+ }
61
+ render() {
62
+ return html`
63
+ <div class="label">
64
+ <odx-text ?emphasized=${this.expanded}>
65
+ <slot></slot>
66
+ </odx-text>
67
+ <slot name="suffix"></slot>
68
+ </div>
69
+ <odx-icon class="indicator" name="core::chevron-down" aria-hidden="true"></odx-icon>
70
+ `;
71
+ }
72
+ };
73
+ __decorateClass$1e([
74
+ property({ type: Boolean })
75
+ ], OdxAccordionHeaderComponent.prototype, "expanded", 1);
76
+ OdxAccordionHeaderComponent = __decorateClass$1e([
77
+ customElement("odx-accordion-header", [styles$14])
78
+ ], OdxAccordionHeaderComponent);
79
+
80
+ const styles$13 = ":host{display:grid;grid-template-rows:1fr;transition:var(--odx-transition-slow)}odx-separator{margin:0}.container{overflow:hidden}.content{padding:var(--odx-size-50);padding-block-start:var(--odx-size-12);transition:var(--odx-transition-slow);transition-property:opacity,transform,visibility}:host(:last-of-type) odx-separator{display:none}:host([aria-hidden=\"true\"]){grid-template-rows:0fr;.content{opacity:0;transform:translateY(var(--odx-size-25));visibility:hidden}}:host ::slotted(*){display:block;background-color:transparent}";
81
+
82
+ var __defProp$1d = Object.defineProperty;
83
+ var __getOwnPropDesc$1d = Object.getOwnPropertyDescriptor;
84
+ var __decorateClass$1d = (decorators, target, key, kind) => {
85
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$1d(target, key) : target;
86
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
87
+ if (decorator = decorators[i])
88
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
89
+ if (kind && result) __defProp$1d(target, key, result);
90
+ return result;
91
+ };
92
+ let OdxAccordionPanelComponent = class extends CustomElement {
93
+ render() {
94
+ return html`
95
+ <div class="container">
96
+ <div class="content">
97
+ <slot></slot>
98
+ </div>
99
+ </div>
100
+ <odx-separator></odx-separator>
101
+ `;
102
+ }
103
+ };
104
+ OdxAccordionPanelComponent = __decorateClass$1d([
105
+ customElement("odx-accordion-panel", [styles$13])
106
+ ], OdxAccordionPanelComponent);
107
+
108
+ const styles$12 = ":host{display:block}:host-context(odx-accordion-panel){margin-block:calc(-1 * var(--odx-size-37));margin-inline-end:calc(-1 * var(--odx-size-50))}";
109
+
110
+ var __defProp$1c = Object.defineProperty;
111
+ var __getOwnPropDesc$1c = Object.getOwnPropertyDescriptor;
112
+ var __typeError$q = (msg) => {
113
+ throw TypeError(msg);
114
+ };
115
+ var __decorateClass$1c = (decorators, target, key, kind) => {
116
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$1c(target, key) : target;
117
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
118
+ if (decorator = decorators[i])
119
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
120
+ if (kind && result) __defProp$1c(target, key, result);
121
+ return result;
122
+ };
123
+ var __accessCheck$q = (obj, member, msg) => member.has(obj) || __typeError$q("Cannot " + msg);
124
+ var __privateGet$m = (obj, member, getter) => (__accessCheck$q(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
125
+ var __privateAdd$q = (obj, member, value) => member.has(obj) ? __typeError$q("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
126
+ var _handleClick$4, _handleExpand, _handleKeyboardEvent$2;
127
+ let OdxAccordionComponent = class extends CustomElement {
128
+ constructor() {
129
+ super();
130
+ this.multiple = false;
131
+ __privateAdd$q(this, _handleClick$4, (event) => {
132
+ event.stopPropagation();
133
+ if (!(event.target instanceof OdxAccordionHeaderComponent)) return;
134
+ event.target.toggle();
135
+ });
136
+ __privateAdd$q(this, _handleExpand, (event) => {
137
+ event.stopPropagation();
138
+ if (!(event.target instanceof OdxAccordionHeaderComponent) || this.multiple) return;
139
+ this.toggleAll(false, event.target);
140
+ });
141
+ __privateAdd$q(this, _handleKeyboardEvent$2, (event) => {
142
+ const { actions } = getKeyboardEventInfo(event);
143
+ if (!(actions.enter || actions.space) || !(event.target instanceof OdxAccordionHeaderComponent)) return;
144
+ event.preventDefault();
145
+ event.stopPropagation();
146
+ if (event.type === "keydown") return;
147
+ event.target.toggle();
148
+ });
149
+ if (!isServer) {
150
+ this.addEventListener("click", __privateGet$m(this, _handleClick$4));
151
+ this.addEventListener("expand", __privateGet$m(this, _handleExpand));
152
+ this.addEventListener("keydown", __privateGet$m(this, _handleKeyboardEvent$2));
153
+ this.addEventListener("keyup", __privateGet$m(this, _handleKeyboardEvent$2));
154
+ }
155
+ }
156
+ toggleAll(forceState, ...exceptElements) {
157
+ for (const control of this.controls) {
158
+ if (control.expanded === forceState || exceptElements.includes(control)) continue;
159
+ control.toggle(forceState);
160
+ }
161
+ }
162
+ updated(props) {
163
+ super.updated(props);
164
+ if (props.has("multiple") && !this.multiple) {
165
+ const expandedControls = this.controls.find((control) => control.expanded);
166
+ this.toggleAll(false, expandedControls);
167
+ }
168
+ }
169
+ render() {
170
+ return html`<slot></slot>`;
171
+ }
172
+ };
173
+ _handleClick$4 = new WeakMap();
174
+ _handleExpand = new WeakMap();
175
+ _handleKeyboardEvent$2 = new WeakMap();
176
+ __decorateClass$1c([
177
+ queryAssignedElements({ selector: OdxAccordionHeaderComponent.selector, flatten: true })
178
+ ], OdxAccordionComponent.prototype, "controls", 2);
179
+ __decorateClass$1c([
180
+ property({ type: Boolean })
181
+ ], OdxAccordionComponent.prototype, "multiple", 2);
182
+ OdxAccordionComponent = __decorateClass$1c([
183
+ customElement("odx-accordion", [styles$12])
184
+ ], OdxAccordionComponent);
185
+
186
+ const styles$11 = ":host{display:flex;justify-content:space-between;align-items:center;gap:var(--odx-size-150);padding:var(--odx-size-75)}.content{margin-inline-end:auto}::slotted(odx-avatar){flex:0 0 auto}";
187
+
188
+ var __defProp$1b = Object.defineProperty;
189
+ var __getOwnPropDesc$1b = Object.getOwnPropertyDescriptor;
190
+ var __decorateClass$1b = (decorators, target, key, kind) => {
191
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$1b(target, key) : target;
192
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
193
+ if (decorator = decorators[i])
194
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
195
+ if (kind && result) __defProp$1b(target, key, result);
196
+ return result;
197
+ };
198
+ let OdxAreaHeaderComponent = class extends CustomElement {
199
+ render() {
200
+ return html`
201
+ <slot name="prefix"></slot>
202
+ <div class="content">
203
+ <slot></slot>
204
+ </div>
205
+ <slot name="suffix"></slot>
206
+ `;
207
+ }
208
+ };
209
+ __decorateClass$1b([
210
+ property({ reflect: true })
211
+ ], OdxAreaHeaderComponent.prototype, "size", 2);
212
+ __decorateClass$1b([
213
+ property({ reflect: true })
214
+ ], OdxAreaHeaderComponent.prototype, "variant", 2);
215
+ OdxAreaHeaderComponent = __decorateClass$1b([
216
+ customElement("odx-area-header", [styles$11])
217
+ ], OdxAreaHeaderComponent);
218
+
219
+ const AreaHeaderSize = {
220
+ SM: "sm",
221
+ MD: "md",
222
+ LG: "lg",
223
+ XL: "xl"
224
+ };
225
+ const AreaHeaderVariant = {
226
+ DEFAULT: "default"
227
+ };
228
+
229
+ const styles$10 = ":host{display:flex;padding-inline:var(--odx-size-25);width:min-content}::slotted(odx-avatar){flex:0 0 auto;z-index:1;border:var(--odx-border-width-thin) solid var(--odx-color-separator)}::slotted(odx-avatar:not(:first-of-type)){margin-inline-start:calc(-.33 * var(--_size))}:host(:is([size=\"lg\"],[size=\"xl\"])){gap:var(--odx-size-50)}";
230
+
231
+ var __defProp$1a = Object.defineProperty;
232
+ var __getOwnPropDesc$1a = Object.getOwnPropertyDescriptor;
233
+ var __decorateClass$1a = (decorators, target, key, kind) => {
234
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$1a(target, key) : target;
235
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
236
+ if (decorator = decorators[i])
237
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
238
+ if (kind && result) __defProp$1a(target, key, result);
239
+ return result;
240
+ };
241
+ let OdxAvatarGroupComponent = class extends CustomElement {
242
+ render() {
243
+ return html`<slot></slot>`;
244
+ }
245
+ };
246
+ __decorateClass$1a([
247
+ property({ reflect: true })
248
+ ], OdxAvatarGroupComponent.prototype, "size", 2);
249
+ __decorateClass$1a([
250
+ property({ reflect: true })
251
+ ], OdxAvatarGroupComponent.prototype, "variant", 2);
252
+ OdxAvatarGroupComponent = __decorateClass$1a([
253
+ customElement("odx-avatar-group", [styles$10])
254
+ ], OdxAvatarGroupComponent);
255
+
256
+ const styles$$ = "@layer base{:host{--_size: var(--odx-size-225);--_spacing: var(--odx-size-25);--_font-size: var(--odx-typography-font-size-3)}:host{--_color-background: var(--odx-experience-color-secondary-rest);--_color-foreground: inherit;--_border-radius: 50%;display:flex;flex-direction:column;place-content:center;place-items:center;position:relative;user-select:none;vertical-align:middle;overflow:clip;block-size:var(--_size);inline-size:var(--_size);margin-block:var(--_spacing);font-size:var(--_font-size);border-radius:var(--_border-radius);background-color:var(--_color-background);color:var(--_color-foreground);transition:var(--odx-transition-default);transition-property:background-color,outline-color,box-shadow}:host-context(odx-avatar-group[variant=\"rectangle\"]),:host([variant=\"rectangle\"]){--_border-radius: var(--odx-border-radius-sm)}:host-context(odx-avatar-group[size=\"sm\"]),:host([size=\"sm\"]){--_size: var(--odx-size-150);--_spacing: 0;--_font-size: var(--odx-typography-font-size-1)}:host-context(odx-avatar-group[size=\"lg\"]),:host([size=\"lg\"]){--_size: var(--odx-size-300);--_spacing: var(--odx-size-37);--_font-size: var(--odx-typography-font-size-5)}:host-context(odx-avatar-group[size=\"xl\"]),:host([size=\"xl\"]){--_size: var(--odx-size-400);--_spacing: 0;--_font-size: var(--odx-typography-font-size-7)}:host-context(odx-navigation-item),:host-context(odx-button){--_color-background: var(--odx-color-transparent-pressed);--_size: var(--odx-size-200);--_font-size: var(--odx-typography-font-size-3);--_spacing: calc(var(--odx-size-75) - var(--odx-size-px));margin:0 calc(-1 * var(--_spacing))}:host-context(odx-button[size=\"sm\"]){--_size: var(--odx-size-125);--_font-size: var(--odx-typography-font-size-1);--_spacing: calc(var(--odx-size-37) + var(--odx-size-px))}:host-context(odx-button[size=\"lg\"]){--_size: var(--odx-size-250);--_font-size: var(--odx-typography-font-size-5);--_spacing: calc(var(--odx-size-75) + var(--odx-size-px))}:host-context(odx-navigation-item[size=\"lg\"]){--_size: var(--odx-size-200);--_font-size: var(--odx-typography-font-size-5);--_spacing: calc(var(--odx-size-50))}::slotted(img){object-fit:cover;position:absolute;inset:0;z-index:1;pointer-events:none}::slotted(odx-icon){font-size:inherit}}";
257
+
258
+ var __defProp$19 = Object.defineProperty;
259
+ var __getOwnPropDesc$19 = Object.getOwnPropertyDescriptor;
260
+ var __decorateClass$19 = (decorators, target, key, kind) => {
261
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$19(target, key) : target;
262
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
263
+ if (decorator = decorators[i])
264
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
265
+ if (kind && result) __defProp$19(target, key, result);
266
+ return result;
267
+ };
268
+ let OdxAvatarComponent = class extends CustomElement {
269
+ render() {
270
+ return html`<slot></slot>`;
271
+ }
272
+ };
273
+ __decorateClass$19([
274
+ property({ reflect: true })
275
+ ], OdxAvatarComponent.prototype, "size", 2);
276
+ __decorateClass$19([
277
+ property({ reflect: true })
278
+ ], OdxAvatarComponent.prototype, "variant", 2);
279
+ OdxAvatarComponent = __decorateClass$19([
280
+ customElement("odx-avatar", [styles$$])
281
+ ], OdxAvatarComponent);
282
+
283
+ const AvatarSize = {
284
+ SM: "sm",
285
+ MD: "md",
286
+ LG: "lg",
287
+ XL: "xl"
288
+ };
289
+ const AvatarVariant = {
290
+ CIRCLE: "circle",
291
+ RECTANGLE: "rectangle"
292
+ };
293
+
294
+ const styles$_ = ":host{--_color-background: var(--odx-color-surface);--_color-foreground: var(--odx-color-text);display:inline-block;line-height:0}.content{--_font-size: var(--odx-typography-font-size-1);block-size:var(--odx-size-100);line-height:var(--odx-size-100);min-inline-size:var(--odx-size-100);border-radius:var(--odx-border-radius-circle);background-color:var(--_color-background);color:var(--_color-foreground);cursor:default;user-select:none;font-weight:var(--odx-typography-font-weight-medium);padding-inline:var(--odx-size-37);text-align:center}:host([variant=\"primary\"]){--_color-background: var(--odx-color-primary-rest);--_color-foreground: var(--odx-color-foreground-light)}:host,:host([variant=\"neutral\"]){--_color-background: var(--odx-experience-color-secondary-rest);--_color-foreground: var(--odx-experience-color-secondary-foreground)}:host([variant=\"accent\"]){--_color-background: var(--odx-color-highlight-rest);--_color-foreground: var(--odx-color-foreground-light)}:host([variant=\"success\"]){--_color-background: var(--odx-color-success-rest);--_color-foreground: var(--odx-color-foreground-dark)}:host([variant=\"warning\"]){--_color-background: var(--odx-color-warning-rest);--_color-foreground: var(--odx-color-foreground-dark)}:host([variant=\"danger\"]){--_color-background: var(--odx-color-danger-rest);--_color-foreground: var(--odx-color-foreground-light)}";
295
+
296
+ var __defProp$18 = Object.defineProperty;
297
+ var __getOwnPropDesc$18 = Object.getOwnPropertyDescriptor;
298
+ var __decorateClass$18 = (decorators, target, key, kind) => {
299
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$18(target, key) : target;
300
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
301
+ if (decorator = decorators[i])
302
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
303
+ if (kind && result) __defProp$18(target, key, result);
304
+ return result;
305
+ };
306
+ let OdxBadgeComponent = class extends CustomElement {
307
+ render() {
308
+ return html`
309
+ <odx-text size="sm" highlight class="content" odxPreventTextOverflow>
310
+ <slot></slot>
311
+ </odx-text>
312
+ `;
313
+ }
314
+ };
315
+ __decorateClass$18([
316
+ property({ reflect: true })
317
+ ], OdxBadgeComponent.prototype, "variant", 2);
318
+ OdxBadgeComponent = __decorateClass$18([
319
+ customElement("odx-badge", [styles$_])
320
+ ], OdxBadgeComponent);
321
+
322
+ const BadgeVariant = {
323
+ NEUTRAL: "neutral",
324
+ PRIMARY: "primary",
325
+ ACCENT: "accent",
326
+ SUCCESS: "success",
327
+ WARNING: "warning",
328
+ DANGER: "danger"
329
+ };
330
+
331
+ var __defProp$17 = Object.defineProperty;
332
+ var __getOwnPropDesc$17 = Object.getOwnPropertyDescriptor;
333
+ var __decorateClass$17 = (decorators, target, key, kind) => {
334
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$17(target, key) : target;
335
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
336
+ if (decorator = decorators[i])
337
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
338
+ if (kind && result) __defProp$17(target, key, result);
339
+ return result;
340
+ };
341
+ class BaseLink extends CanBeDisabled(CustomElement) {
342
+ constructor() {
343
+ super(...arguments);
344
+ this.href = "";
345
+ this.target = "";
346
+ this.rel = "noreferrer noopener";
347
+ }
348
+ static {
349
+ requestUpdateOnAriaChange(["ariaLabel", "ariaHasPopup", "ariaExpanded", "ariaCurrent", "ariaHidden"]);
350
+ }
351
+ static {
352
+ this.shadowRootOptions = {
353
+ ...CustomElement.shadowRootOptions,
354
+ delegatesFocus: true
355
+ };
356
+ }
357
+ render(role) {
358
+ const { ariaLabel, ariaHasPopup, ariaExpanded, ariaCurrent, ariaHidden } = this;
359
+ return html`<a
360
+ class="base"
361
+ part="anchor"
362
+ aria-label="${optionalAttr(ariaLabel)}"
363
+ aria-haspopup="${optionalAttr(ariaHasPopup)}"
364
+ aria-expanded="${optionalAttr(ariaExpanded)}"
365
+ aria-current="${optionalAttr(ariaCurrent)}"
366
+ aria-hidden="${optionalAttr(ariaHidden)}"
367
+ href=${optionalAttr(this.href)}
368
+ target=${optionalAttr(this.target)}
369
+ download=${ifDefined(this.download)}
370
+ rel=${optionalAttr(this.rel)}
371
+ role=${optionalAttr(role)}
372
+ >
373
+ ${this.renderContent()}
374
+ </a>`;
375
+ }
376
+ renderContent() {
377
+ return html`<slot></slot>`;
378
+ }
379
+ }
380
+ __decorateClass$17([
381
+ query('[part~="anchor"]', true)
382
+ ], BaseLink.prototype, "interactiveElement", 2);
383
+ __decorateClass$17([
384
+ property()
385
+ ], BaseLink.prototype, "href", 2);
386
+ __decorateClass$17([
387
+ property()
388
+ ], BaseLink.prototype, "target", 2);
389
+ __decorateClass$17([
390
+ property()
391
+ ], BaseLink.prototype, "rel", 2);
392
+ __decorateClass$17([
393
+ property()
394
+ ], BaseLink.prototype, "download", 2);
395
+
396
+ const styles$Z = ":host{--_color-foreground: var(--odx-palette-blue-50);display:inline;text-decoration:underline}:host(:focus-visible){outline:none}.base{padding-inline:calc(1 / 24 * 1rem);transition:var(--odx-transition-reduced);color:var(--_color-foreground);text-decoration:inherit;outline:var(--odx-focus-ring-outline);outline-offset:var(--odx-focus-ring-offset);border-radius:var(--odx-border-radius-controls);&:focus-visible{outline-color:var(--odx-focus-ring-color)}}:host(:hover){--_color-foreground: var(--odx-palette-blue-80)}:host([emphasized]){--_color-foreground: var(--odx-color-foreground);font-weight:var(--odx-typography-font-weight-medium)}:host([aria-disabled=\"true\"]),:host([subtle]:not(:hover)){text-decoration:none}:host([aria-disabled=\"true\"]){--_color-foreground: var(--odx-palette-coolgray-40);.anchor{cursor:default}}";
397
+
398
+ var __defProp$16 = Object.defineProperty;
399
+ var __getOwnPropDesc$16 = Object.getOwnPropertyDescriptor;
400
+ var __decorateClass$16 = (decorators, target, key, kind) => {
401
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$16(target, key) : target;
402
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
403
+ if (decorator = decorators[i])
404
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
405
+ if (kind && result) __defProp$16(target, key, result);
406
+ return result;
407
+ };
408
+ let OdxLinkComponent = class extends BaseLink {
409
+ constructor() {
410
+ super(...arguments);
411
+ this.emphasized = false;
412
+ this.subtle = false;
413
+ }
414
+ };
415
+ __decorateClass$16([
416
+ property({ type: Boolean, reflect: true })
417
+ ], OdxLinkComponent.prototype, "emphasized", 2);
418
+ __decorateClass$16([
419
+ property({ type: Boolean, reflect: true })
420
+ ], OdxLinkComponent.prototype, "subtle", 2);
421
+ OdxLinkComponent = __decorateClass$16([
422
+ customElement("odx-link", [styles$Z])
423
+ ], OdxLinkComponent);
424
+
425
+ const styles$Y = ":host{display:contents}.separator{--size: var(--odx-size-75);color:var(--odx-color-foreground-muted);margin:var(--odx-size-37)}:host([aria-hidden=\"true\"]){display:none}:host([aria-current=\"page\"]) ::slotted(odx-link){color:var(--odx-color-foreground-muted)!important}::slotted(*){margin:0}";
426
+
427
+ var __defProp$15 = Object.defineProperty;
428
+ var __getOwnPropDesc$15 = Object.getOwnPropertyDescriptor;
429
+ var __decorateClass$15 = (decorators, target, key, kind) => {
430
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$15(target, key) : target;
431
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
432
+ if (decorator = decorators[i])
433
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
434
+ if (kind && result) __defProp$15(target, key, result);
435
+ return result;
436
+ };
437
+ let OdxBreadcrumbsItemComponent = class extends CustomElement {
438
+ constructor() {
439
+ super(...arguments);
440
+ this.fallback = false;
441
+ }
442
+ isLast() {
443
+ return !this.nextElementSibling;
444
+ }
445
+ get interactiveElement() {
446
+ return this.linkElements[0] ?? null;
447
+ }
448
+ render() {
449
+ return html`
450
+ <slot></slot>
451
+ ${when(!this.isLast(), () => html`<odx-icon class="separator" name="chevron-right"></odx-icon>`)}
452
+ `;
453
+ }
454
+ updated(props) {
455
+ super.updated?.(props);
456
+ if (this.interactiveElement) {
457
+ this.interactiveElement.subtle = true;
458
+ this.interactiveElement.emphasized = this.isLast();
459
+ this.interactiveElement.ariaCurrent = this.isLast() ? "page" : null;
460
+ }
461
+ }
462
+ };
463
+ __decorateClass$15([
464
+ queryAssignedElements({ selector: OdxLinkComponent.selector, flatten: true })
465
+ ], OdxBreadcrumbsItemComponent.prototype, "linkElements", 2);
466
+ __decorateClass$15([
467
+ property({ type: Boolean })
468
+ ], OdxBreadcrumbsItemComponent.prototype, "fallback", 2);
469
+ OdxBreadcrumbsItemComponent = __decorateClass$15([
470
+ requestUpdateOnAriaChange(["ariaHidden"]),
471
+ customElement("odx-breadcrumbs-item", [styles$Y])
472
+ ], OdxBreadcrumbsItemComponent);
473
+
474
+ const styles$X = ":host{--_gap: var(--odx-size-37);display:flex;column-gap:var(--_gap);flex-wrap:wrap;cursor:default;place-items:center;padding-block:var(--odx-size-37);padding-inline:var(--odx-size-75);min-block-size:var(--odx-size-225)}odx-breadcrumb-item,::slotted(odx-breadcrumb-item){gap:var(--_gap)}";
475
+
476
+ var __defProp$14 = Object.defineProperty;
477
+ var __getOwnPropDesc$14 = Object.getOwnPropertyDescriptor;
478
+ var __typeError$p = (msg) => {
479
+ throw TypeError(msg);
480
+ };
481
+ var __decorateClass$14 = (decorators, target, key, kind) => {
482
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$14(target, key) : target;
483
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
484
+ if (decorator = decorators[i])
485
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
486
+ if (kind && result) __defProp$14(target, key, result);
487
+ return result;
488
+ };
489
+ var __accessCheck$p = (obj, member, msg) => member.has(obj) || __typeError$p("Cannot " + msg);
490
+ var __privateAdd$p = (obj, member, value) => member.has(obj) ? __typeError$p("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
491
+ var __privateMethod$c = (obj, member, method) => (__accessCheck$p(obj, member, "access private method"), method);
492
+ var _OdxBreadcrumbsComponent_instances, isItemVisible_fn, renderItems_fn, updateContext_fn;
493
+ let OdxBreadcrumbsComponent = class extends CustomElement {
494
+ constructor() {
495
+ super(...arguments);
496
+ __privateAdd$p(this, _OdxBreadcrumbsComponent_instances);
497
+ this.max = 4;
498
+ }
499
+ firstUpdated(props) {
500
+ super.firstUpdated?.(props);
501
+ this.role = "navigation";
502
+ this.ariaLabel ||= "Breadcrumbs";
503
+ }
504
+ render() {
505
+ if (Array.isArray(this.items)) {
506
+ return __privateMethod$c(this, _OdxBreadcrumbsComponent_instances, renderItems_fn).call(this, this.items);
507
+ }
508
+ return html`<slot @slotchange=${__privateMethod$c(this, _OdxBreadcrumbsComponent_instances, updateContext_fn)}></slot>`;
509
+ }
510
+ updated(props) {
511
+ super.updated(props);
512
+ if (props.has("max")) {
513
+ __privateMethod$c(this, _OdxBreadcrumbsComponent_instances, updateContext_fn).call(this);
514
+ }
515
+ }
516
+ };
517
+ _OdxBreadcrumbsComponent_instances = new WeakSet();
518
+ isItemVisible_fn = function(_, index, items) {
519
+ return index === 0 || index > items.length - this.max;
520
+ };
521
+ renderItems_fn = function(items) {
522
+ return html`
523
+ ${repeat(
524
+ items.filter(__privateMethod$c(this, _OdxBreadcrumbsComponent_instances, isItemVisible_fn).bind(this)),
525
+ (item) => item.href,
526
+ ({ label, href }) => html`
527
+ <odx-breadcrumbs-item><odx-link href=${href}>${label}</odx-link></odx-breadcrumbs-item>
528
+ `
529
+ )}
530
+ `;
531
+ };
532
+ updateContext_fn = function() {
533
+ for (const [index, item] of this.itemElements.entries()) {
534
+ item.ariaHidden = toAriaBooleanAttribute(!__privateMethod$c(this, _OdxBreadcrumbsComponent_instances, isItemVisible_fn).call(this, item, index, this.itemElements));
535
+ }
536
+ for (const [, item] of Array.from(this.renderedItemElements).entries()) {
537
+ item.requestUpdate();
538
+ }
539
+ };
540
+ __decorateClass$14([
541
+ queryAssignedElements({ selector: OdxBreadcrumbsItemComponent.selector, flatten: true })
542
+ ], OdxBreadcrumbsComponent.prototype, "itemElements", 2);
543
+ __decorateClass$14([
544
+ queryAll(OdxBreadcrumbsItemComponent.selector)
545
+ ], OdxBreadcrumbsComponent.prototype, "renderedItemElements", 2);
546
+ __decorateClass$14([
547
+ property({ type: Number })
548
+ ], OdxBreadcrumbsComponent.prototype, "max", 2);
549
+ __decorateClass$14([
550
+ property({ attribute: false })
551
+ ], OdxBreadcrumbsComponent.prototype, "items", 2);
552
+ OdxBreadcrumbsComponent = __decorateClass$14([
553
+ customElement("odx-breadcrumbs", [styles$X])
554
+ ], OdxBreadcrumbsComponent);
555
+
556
+ const styles$W = ":host{--_gap: var(--odx-size-75);--_direction: row;display:inline-flex;align-items:center;flex-direction:var(--_direction);gap:var(--_gap)}::slotted(:is(odx-button,odx-icon-button,odx-toggle-button)){margin:0}:host([block]){display:flex;::slotted(:is(odx-button,odx-icon-button,odx-toggle-button)){width:100%}}:host([connected]){--_gap: var(--odx-size-px);::slotted(:is(odx-button,odx-icon-button,odx-toggle-button):not(:first-child):not(:last-child)){border-radius:0}::slotted(:is(odx-button,odx-icon-button,odx-toggle-button):is(:hover,:focus-within)){z-index:1}}:host([vertical]){--_direction: column;::slotted(:is(odx-button,odx-icon-button,odx-toggle-button)){margin-block:0}}:host([connected]:not([vertical])){::slotted(:is(odx-button,odx-icon-button,odx-toggle-button):first-child:not(:last-child)){border-start-end-radius:0;border-end-end-radius:0}::slotted(:is(odx-button,odx-icon-button,odx-toggle-button):last-child:not(:first-child)){border-start-start-radius:0;border-end-start-radius:0}}:host([connected][vertical]){::slotted(:is(odx-button,odx-icon-button,odx-toggle-button):first-child){border-end-start-radius:0;border-end-end-radius:0}::slotted(:is(odx-button,odx-icon-button,odx-toggle-button):last-child){border-start-start-radius:0;border-start-end-radius:0}}";
557
+
558
+ var __defProp$13 = Object.defineProperty;
559
+ var __getOwnPropDesc$13 = Object.getOwnPropertyDescriptor;
560
+ var __decorateClass$13 = (decorators, target, key, kind) => {
561
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$13(target, key) : target;
562
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
563
+ if (decorator = decorators[i])
564
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
565
+ if (kind && result) __defProp$13(target, key, result);
566
+ return result;
567
+ };
568
+ let OdxButtonGroupComponent = class extends CanBeDisabled(CustomElement) {
569
+ constructor() {
570
+ super(...arguments);
571
+ this.block = false;
572
+ this.connected = false;
573
+ this.vertical = false;
574
+ }
575
+ onDisabledChanged(disabled) {
576
+ for (const button of Array.from(this.querySelectorAll("odx-button"))) {
577
+ button._contextDisabled = disabled;
578
+ }
579
+ }
580
+ };
581
+ __decorateClass$13([
582
+ property({ type: Boolean, reflect: true })
583
+ ], OdxButtonGroupComponent.prototype, "block", 2);
584
+ __decorateClass$13([
585
+ property({ type: Boolean, reflect: true })
586
+ ], OdxButtonGroupComponent.prototype, "connected", 2);
587
+ __decorateClass$13([
588
+ property({ type: Boolean, reflect: true })
589
+ ], OdxButtonGroupComponent.prototype, "vertical", 2);
590
+ __decorateClass$13([
591
+ property({ reflect: true })
592
+ ], OdxButtonGroupComponent.prototype, "size", 2);
593
+ __decorateClass$13([
594
+ property({ reflect: true })
595
+ ], OdxButtonGroupComponent.prototype, "variant", 2);
596
+ OdxButtonGroupComponent = __decorateClass$13([
597
+ customElement("odx-button-group", [styles$W])
598
+ ], OdxButtonGroupComponent);
599
+
600
+ const styles$V = "@layer base{:host{--_color-background: var(--odx-color-transparent);--_color-background-hover: var(--odx-color-transparent-hover);--_color-background-pressed: var(--odx-color-transparent-pressed);--_color-foreground: var(--odx-color-foreground);--_color-foreground-hover: var(--odx-color-foreground);--_color-foreground-pressed: var(--odx-color-foreground);--_color-stroke: transparent;--_color-stroke-hover: transparent;--_color-stroke-pressed: transparent;--_block-size: var(--odx-size-225);--_font-size: var(--odx-typography-font-size-3);--_icon-size: var(--odx-typography-font-size-5);--_padding-block: var(--odx-size-37);--_padding-inline: var(--odx-size-75);--_margin-block: 0;--_margin-icon: calc(-.5 * (var(--_icon-size) - var(--_padding-inline)) - var(--odx-size-px));block-size:var(--_block-size);cursor:pointer;position:relative;user-select:none;vertical-align:top;border-radius:var(--odx-border-radius-controls);margin-block:var(--_margin-block);max-inline-size:100%;-webkit-tap-highlight-color:transparent}:host(:focus-visible){outline:none}:host,.base{display:inline-flex;place-items:center;place-content:center}.base{overflow:clip;border-radius:inherit;cursor:inherit;-webkit-appearance:none;vertical-align:middle;text-decoration:none;font:inherit;block-size:100%;inline-size:100%;padding:0;gap:inherit;text-transform:inherit;padding-block:var(--_padding-block);padding-inline:var(--_padding-inline);border:var(--odx-border-width-thin) solid var(--_color-stroke);transition:var(--odx-transition-reduced);transition-property:background-color,border-color,color,opacity,outline-color,transform;background-color:var(--_color-background, transparent);color:var(--_color-foreground);font-size:var(--_font-size);gap:var(--_padding-inline);font-weight:var(--odx-typography-font-weight-normal);outline:var(--odx-focus-ring-outline);outline-offset:var(--odx-focus-ring-offset);line-height:min(calc(var(--_block-size) / 2 - var(--odx-size-25)),1em);&:focus-visible{outline-color:var(--odx-focus-ring-color)}}.base::-moz-focus-inner{padding:0;border:0}.spinner{--_size: var(--_icon-size);color:var(--_color-foreground);margin-inline:var(--_margin-icon);&.overlay{position:absolute;margin:auto}}.content{margin-block:calc(-1 * var(--_padding-block));margin-inline:calc(-1 * var(--_padding-inline));padding:inherit}.overlay~.base{color:var(--odx-color-transparent)}odx-icon,::slotted(odx-icon){--size: var(--_icon-size);margin-inline:var(--_margin-icon)}}@layer state{:host(:not([aria-busy=\"true\"]):hover){--_color-background: var(--_color-background-hover);--_color-stroke: var(--_color-stroke-hover)}:host(:not([aria-busy=\"true\"]):active){--_color-background: var(--_color-background-pressed);--_color-stroke: var(--_color-stroke-pressed)}:host([aria-busy=\"true\"]){cursor:default}:host([aria-disabled=\"true\"]){--_color-background: var(--odx-color-disabled-fill);--_color-background-hover: var(--odx-color-disabled-fill);--_color-background-pressed: var(--odx-color-disabled-fill);--_color-foreground: var(--odx-color-disabled-foreground);--_color-stroke: var(--odx-color-disabled-stroke);cursor:not-allowed}}";
601
+
602
+ var __defProp$12 = Object.defineProperty;
603
+ var __getOwnPropDesc$12 = Object.getOwnPropertyDescriptor;
604
+ var __decorateClass$12 = (decorators, target, key, kind) => {
605
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$12(target, key) : target;
606
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
607
+ if (decorator = decorators[i])
608
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
609
+ if (kind && result) __defProp$12(target, key, result);
610
+ return result;
611
+ };
612
+ let BaseButtonComponent = class extends WithLoadingState(BaseLink) {
613
+ render() {
614
+ return html`${when(
615
+ this.href,
616
+ () => super.render(),
617
+ () => this.renderButton()
618
+ )}`;
619
+ }
620
+ renderContent() {
621
+ return html`
622
+ ${this.renderSlot("prefix")}
623
+ <odx-line-clamp class="content" .max=${2}>
624
+ <slot></slot>
625
+ </odx-line-clamp>
626
+ ${this.renderSlot("suffix")}
627
+ `;
628
+ }
629
+ renderButton() {
630
+ const { ariaLabel, ariaHasPopup, ariaExpanded } = this;
631
+ const type = "type" in this ? this.type : "button";
632
+ return html`
633
+ ${this.renderOverlay()}
634
+ <button
635
+ class="base"
636
+ part="anchor button"
637
+ aria-label="${optionalAttr(ariaLabel)}"
638
+ aria-haspopup="${optionalAttr(ariaHasPopup)}"
639
+ aria-expanded="${optionalAttr(ariaExpanded)}"
640
+ type=${type}
641
+ ?disabled=${this.disabled || this.loading}
642
+ >
643
+ ${this.renderContent()}
644
+ </button>
645
+ `;
646
+ }
647
+ renderSlot(name) {
648
+ if (this.loading && getAssignedElements(this, name).length > 0) {
649
+ return this.renderSpinner();
650
+ }
651
+ return html`<slot name=${name}></slot>`;
652
+ }
653
+ renderOverlay() {
654
+ if (this.loading && getAssignedElements(this, "prefix", "suffix").length === 0) {
655
+ return this.renderSpinner(true);
656
+ }
657
+ return nothing;
658
+ }
659
+ renderSpinner(overlay = false) {
660
+ return html`<odx-loading-spinner class=${classMap({ spinner: true, overlay })}></odx-loading-spinner>`;
661
+ }
662
+ };
663
+ BaseButtonComponent = __decorateClass$12([
664
+ customElement(void 0, [styles$V])
665
+ ], BaseButtonComponent);
666
+
667
+ const styles$U = "@layer base{:host{--_margin-block: var(--odx-size-37)}.base{font-weight:var(--odx-typography-font-weight-medium)}}@layer variant{:host([block]){display:flex}:host-context(odx-input),:host-context(odx-button-group[size=\"sm\"]),:host([size=\"sm\"]){--_block-size: var(--odx-size-150);--_padding-inline: var(--odx-size-50);--_font-size: var(--odx-typography-font-size-1);--_icon-size: var(--odx-typography-font-size-4);--_margin-block: 0;--_spinner-size: var(--odx-size-37)}:host-context(odx-button-group[size=\"lg\"]),:host([size=\"lg\"]){--_block-size: var(--odx-size-300);--_padding-inline: var(--odx-size-100);--_font-size: var(--odx-typography-font-size-4);--_icon-size: var(--odx-typography-font-size-6);--_margin-block: 0}:host-context(odx-button-group[variant=\"primary\"]),:host([variant=\"primary\"]){--_color-background: var(--odx-color-primary-rest);--_color-background-hover: var(--odx-color-primary-hover);--_color-background-pressed: var(--odx-color-primary-pressed);--_color-foreground: var(--odx-color-foreground-inverse)}:host-context(odx-button-group[variant=\"highlight\"]),:host([variant=\"highlight\"]){--_color-background: var(--odx-color-highlight-rest);--_color-background-hover: var(--odx-color-highlight-hover);--_color-background-pressed: var(--odx-color-highlight-pressed);--_color-foreground: var(--odx-color-foreground-inverse)}:host,:host-context(odx-button-group[variant=\"secondary\"]),:host([variant=\"secondary\"]){--_color-background: var(--odx-experience-color-secondary-rest);--_color-background-hover: var(--odx-experience-color-secondary-hover);--_color-background-pressed: var(--odx-experience-color-secondary-pressed);--_color-foreground: var(--odx-experience-color-secondary-foreground)}:host-context(odx-input),:host-context(odx-button-group[variant=\"ghost\"]),:host([variant=\"ghost\"]){--_color-background: var(--odx-color-transparent);--_color-foreground: var(--odx-color-foreground);--_color-background-hover: var(--odx-color-transparent-hover);--_color-background-pressed: var(--odx-color-transparent-pressed)}:host-context(odx-button-group[variant=\"danger\"]),:host([variant=\"danger\"]){--_color-background: var(--odx-color-danger-rest);--_color-background-hover: var(--odx-color-danger-hover);--_color-background-pressed: var(--odx-color-danger-pressed);--_color-foreground: var(--odx-color-foreground-light)}:host-context(odx-input){--_icon-size: var(--odx-typography-font-size-5)}}";
668
+
669
+ var __defProp$11 = Object.defineProperty;
670
+ var __getOwnPropDesc$11 = Object.getOwnPropertyDescriptor;
671
+ var __typeError$o = (msg) => {
672
+ throw TypeError(msg);
673
+ };
674
+ var __decorateClass$11 = (decorators, target, key, kind) => {
675
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$11(target, key) : target;
676
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
677
+ if (decorator = decorators[i])
678
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
679
+ if (kind && result) __defProp$11(target, key, result);
680
+ return result;
681
+ };
682
+ var __accessCheck$o = (obj, member, msg) => member.has(obj) || __typeError$o("Cannot " + msg);
683
+ var __privateGet$l = (obj, member, getter) => (__accessCheck$o(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
684
+ var __privateAdd$o = (obj, member, value) => member.has(obj) ? __typeError$o("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
685
+ var __privateMethod$b = (obj, member, method) => (__accessCheck$o(obj, member, "access private method"), method);
686
+ var _internals, _OdxButtonComponent_instances, handleClick_fn;
687
+ let OdxButtonComponent = class extends WithLoadingState(BaseButtonComponent) {
688
+ constructor() {
689
+ super();
690
+ __privateAdd$o(this, _OdxButtonComponent_instances);
691
+ __privateAdd$o(this, _internals, this.attachInternals());
692
+ this.block = false;
693
+ this.type = "button";
694
+ if (!isServer) {
695
+ this.addEventListener("click", __privateMethod$b(this, _OdxButtonComponent_instances, handleClick_fn));
696
+ }
697
+ }
698
+ };
699
+ _internals = new WeakMap();
700
+ _OdxButtonComponent_instances = new WeakSet();
701
+ handleClick_fn = function(_event) {
702
+ if (this.type === "submit") {
703
+ __privateGet$l(this, _internals).form?.requestSubmit();
704
+ return;
705
+ }
706
+ if (this.type === "reset") {
707
+ __privateGet$l(this, _internals).form?.reset();
708
+ return;
709
+ }
710
+ };
711
+ OdxButtonComponent.formAssociated = true;
712
+ __decorateClass$11([
713
+ property({ type: Boolean, reflect: true })
714
+ ], OdxButtonComponent.prototype, "block", 2);
715
+ __decorateClass$11([
716
+ property()
717
+ ], OdxButtonComponent.prototype, "type", 2);
718
+ __decorateClass$11([
719
+ property({ reflect: true })
720
+ ], OdxButtonComponent.prototype, "size", 2);
721
+ __decorateClass$11([
722
+ property({ reflect: true })
723
+ ], OdxButtonComponent.prototype, "variant", 2);
724
+ OdxButtonComponent = __decorateClass$11([
725
+ customElement("odx-button", [styles$U])
726
+ ], OdxButtonComponent);
727
+
728
+ const ButtonSize = {
729
+ SM: "sm",
730
+ MD: "md",
731
+ LG: "lg"
732
+ };
733
+ const ButtonVariant = {
734
+ PRIMARY: "primary",
735
+ HIGHLIGHT: "highlight",
736
+ SECONDARY: "secondary",
737
+ GHOST: "ghost",
738
+ DANGER: "danger"
739
+ // SUCCESS: 'success',
740
+ // CONFIRMATION: 'confirmation',
741
+ };
742
+
743
+ const styles$T = ":host{--_card-padding: var(--odx-size-150);display:grid;place-content:flex-start;background-color:var(--odx-color-background-main);grid-template-columns:1fr auto;border-radius:var(--odx-border-radius-md);padding:var(--_card-padding);overflow:clip;max-width:100%;grid-template-areas:\"image image\" \"avatar avatar\" \"title header-actions\" \"content content\" \"footer footer\"}.header,.title{display:flex;place-items:center;overflow:hidden;min-block-size:var(--odx-size-225);margin-block-end:var(--odx-size-50)}.title{grid-area:title}.header{grid-area:header-actions}.avatar{display:flex;place-items:flex-end;grid-area:avatar;margin-block-start:calc(-1 * var(--odx-size-50))}.image{grid-area:image;margin:calc(-1 * var(--_card-padding));margin-block-end:var(--odx-size-150);position:relative}.image:after{content:\"\";position:absolute;inset:0;background-color:var(--odx-color-transparent-hover);opacity:0;pointer-events:none;transition:var(--odx-transition-default);backdrop-filter:blur(var(--odx-elevation-blur))}:host::part(content){grid-area:content}:host::part(footer){grid-area:footer}[part=image-container]+[part=avatar-container]{block-size:0}slot[name=image]::slotted(*){max-inline-size:100%;max-block-size:100%;object-fit:cover;aspect-ratio:16 / 9;user-select:none;pointer-events:none}slot[name=avatar]::slotted(*){margin:0}:host(:hover){cursor:pointer}:host(:hover) .image:after{opacity:1}";
744
+
745
+ var __defProp$10 = Object.defineProperty;
746
+ var __getOwnPropDesc$10 = Object.getOwnPropertyDescriptor;
747
+ var __decorateClass$10 = (decorators, target, key, kind) => {
748
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$10(target, key) : target;
749
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
750
+ if (decorator = decorators[i])
751
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
752
+ if (kind && result) __defProp$10(target, key, result);
753
+ return result;
754
+ };
755
+ let OdxCardComponent = class extends CanBeDisabled(CustomElement) {
756
+ render() {
757
+ return html`
758
+ ${optionalSlot(this, "header")}
759
+ ${optionalSlot(this, "image")}
760
+ ${optionalSlot(this, "avatar")}
761
+ ${optionalSlot(this, "title")}
762
+ <div part="content">
763
+ <slot></slot>
764
+ </div>
765
+ `;
766
+ }
767
+ };
768
+ OdxCardComponent = __decorateClass$10([
769
+ customElement("odx-card", [styles$T])
770
+ ], OdxCardComponent);
771
+
772
+ const styles$S = ":host{display:flex;flex-direction:column}::slotted(:is(odx-checkbox,odx-switch)){width:max-content}:host([variant=\"list\"]) ::slotted(:is(odx-checkbox,odx-switch)){border-block-end:var(--odx-border-width-thin) solid var(--odx-color-separator);padding:var(--odx-size-75);margin:0;width:auto}:host([variant=\"list\"]) ::slotted(:is(odx-checkbox,odx-switch):last-of-type){border-block-end:none}::slotted(odx-checkbox-group){margin-inline-start:var(--odx-size-75)}";
773
+
774
+ var __defProp$$ = Object.defineProperty;
775
+ var __getOwnPropDesc$$ = Object.getOwnPropertyDescriptor;
776
+ var __typeError$n = (msg) => {
777
+ throw TypeError(msg);
778
+ };
779
+ var __decorateClass$$ = (decorators, target, key, kind) => {
780
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$$(target, key) : target;
781
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
782
+ if (decorator = decorators[i])
783
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
784
+ if (kind && result) __defProp$$(target, key, result);
785
+ return result;
786
+ };
787
+ var __accessCheck$n = (obj, member, msg) => member.has(obj) || __typeError$n("Cannot " + msg);
788
+ var __privateGet$k = (obj, member, getter) => (__accessCheck$n(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
789
+ var __privateAdd$n = (obj, member, value) => member.has(obj) ? __typeError$n("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
790
+ var _handleSlotChange$6, _handleGroupControlChange;
791
+ let OdxCheckboxGroupComponent = class extends CheckboxGroupFormControl {
792
+ constructor() {
793
+ super(...arguments);
794
+ __privateAdd$n(this, _handleSlotChange$6, () => {
795
+ for (const control of this.groupControls) {
796
+ control.addEventListener("change", __privateGet$k(this, _handleGroupControlChange));
797
+ }
798
+ });
799
+ __privateAdd$n(this, _handleGroupControlChange, (event) => {
800
+ const { target } = event;
801
+ if (!this.isControl(target)) return;
802
+ event.stopImmediatePropagation();
803
+ this.updateValue(target.checked ? this.controls.map((control) => control.value) : [], true);
804
+ for (const groupControl of this.childGroups.flatMap((group) => group.groupControls)) {
805
+ groupControl.checked = target.checked;
806
+ }
807
+ });
808
+ }
809
+ render() {
810
+ return html`<slot @slotchange=${__privateGet$k(this, _handleSlotChange$6)}></slot>`;
811
+ }
812
+ };
813
+ _handleSlotChange$6 = new WeakMap();
814
+ _handleGroupControlChange = new WeakMap();
815
+ __decorateClass$$([
816
+ property({ reflect: true })
817
+ ], OdxCheckboxGroupComponent.prototype, "variant", 2);
818
+ OdxCheckboxGroupComponent = __decorateClass$$([
819
+ customElement("odx-checkbox-group", [styles$S])
820
+ ], OdxCheckboxGroupComponent);
821
+
822
+ const CheckboxGroupVariant = {
823
+ LIST: "list"
824
+ };
825
+
826
+ const styles$R = ":host{--_indicator-space: var(--odx-size-12);--_indicator-size: calc(var(--odx-size-150) - var(--_indicator-space) * 2);--_indicator-color-background: var(--odx-color-selection-control-fill);--_indicator-color-stroke: var(--odx-color-selection-control-stroke);--_indicator-color-foreground: var(--odx-palette-transparent);--_label-color-foreground: var(--odx-color-text);cursor:pointer;display:inline-flex;margin:var(--odx-size-37) var(--odx-size-75);user-select:none;border-radius:var(--odx-border-radius-controls);padding:var(--_indicator-space)}:host,.indicator,.content{transition:var(--odx-transition-reduced)}.indicator{display:flex;place-content:center;place-items:center;block-size:var(--_indicator-size);inline-size:var(--_indicator-size);flex-shrink:0;border-radius:var(--odx-border-radius-controls);background-color:var(--_indicator-color-background);border:var(--odx-border-width-thin) solid var(--_indicator-color-stroke);border-color:var(--_indicator-color-stroke);color:var(--_indicator-color-foreground);transition-property:background-color,border-color,outline-color;outline:var(--odx-focus-ring-outline);outline-offset:var(--odx-focus-ring-offset)}.label{display:inline-block}.content{color:var(--_label-color-foreground);margin-block:calc(-1 * var(--_indicator-space));transition-property:color}:host(:not(:empty)) .indicator{margin-inline-end:var(--odx-size-75)}:host(:empty) .content{display:none}:host(:hover){--_indicator-color-stroke: var(--odx-color-selection-control-stroke-hover);--_indicator-color-background: var(--odx-color-selection-control-fill-hover)}:host(:focus-visible) .indicator{outline-color:var(--odx-focus-ring-color)}:host(:is([aria-checked=\"true\"],[aria-checked=\"mixed\"])){--_indicator-color-background: var(--odx-color-selection-control-fill-selected);--_indicator-color-foreground: var(--odx-color-foreground-light);--_indicator-color-stroke: var(--odx-color-selection-control-stroke-selected)}:host(:is([aria-checked=\"true\"],[aria-checked=\"mixed\"]):not(:is([aria-disabled],[aria-readonly])):hover){--_indicator-color-background: var(--odx-color-selection-control-fill-selected-hover)}:host([aria-disabled=\"true\"]){--_indicator-color-background: var(--odx-color-disabled-fill);--_indicator-color-foreground: var(--odx-palette-transparent);--_indicator-color-stroke: var(--odx-selection-control-color-border-disabled);--_label-color-foreground: var(--odx-color-disabled-foreground);cursor:not-allowed}:host([aria-disabled=\"true\"]:is([aria-checked=\"true\"],[aria-checked=\"mixed\"])){--_indicator-color-background: var(--odx-color-disabled-fill-selected);--_indicator-color-foreground: var(--odx-color-disabled-foreground-selected);--_indicator-color-stroke: var(--_indicator-color-background)}:host([aria-readonly=\"true\"]){--_indicator-color-background: var(--odx-color-selection-control-fill-readonly);--_indicator-color-stroke: var(--odx-color-input-control-stroke-readonly);cursor:default}:host([aria-readonly=\"true\"]:is([aria-checked=\"true\"],[aria-checked=\"mixed\"])){--_indicator-color-foreground: var(--odx-color-foreground)}";
827
+
828
+ var __defProp$_ = Object.defineProperty;
829
+ var __getOwnPropDesc$_ = Object.getOwnPropertyDescriptor;
830
+ var __decorateClass$_ = (decorators, target, key, kind) => {
831
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$_(target, key) : target;
832
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
833
+ if (decorator = decorators[i])
834
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
835
+ if (kind && result) __defProp$_(target, key, result);
836
+ return result;
837
+ };
838
+ let OdxCheckboxComponent = class extends CheckboxFormControl {
839
+ constructor() {
840
+ super(...arguments);
841
+ this.indeterminate = false;
842
+ }
843
+ render() {
844
+ return html`
845
+ <div class="indicator">
846
+ <odx-icon name=${this.indeterminate ? "core::minus" : "core::check"}></odx-icon>
847
+ </div>
848
+ <div class="content">
849
+ <div class="label">
850
+ <slot></slot>
851
+ </div>
852
+ <div class="description">
853
+ <slot name="description"></slot>
854
+ </div>
855
+ </div>
856
+ `;
857
+ }
858
+ willUpdate(changes) {
859
+ super.willUpdate?.(changes);
860
+ if (changes.has("indeterminate")) {
861
+ if (this.indeterminate) {
862
+ this.ariaChecked = "mixed";
863
+ }
864
+ }
865
+ }
866
+ toggle(state, dispatchEvent = false) {
867
+ super.toggle(state, dispatchEvent);
868
+ if (this.disabled || this.readonly) return;
869
+ this.indeterminate = false;
870
+ }
871
+ };
872
+ __decorateClass$_([
873
+ property({ type: Boolean, reflect: true })
874
+ ], OdxCheckboxComponent.prototype, "indeterminate", 2);
875
+ OdxCheckboxComponent = __decorateClass$_([
876
+ customElement("odx-checkbox", [styles$R])
877
+ ], OdxCheckboxComponent);
878
+
879
+ const styles$Q = ":host{--_color-background: var(--odx-color-neutral-rest);--_color-background-hover: var(--odx-color-neutral-hover);--_color-foreground: var(--odx-color-neutral-text);--_font-size: var(--odx-font-size-text-sm);--_block-size: var(--odx-size-150);--_border-radius: var(--_block-size);--_padding-inline: var(--odx-size-50);display:inline-flex;place-items:center;background-color:var(--_color-background);cursor:inherit;padding-inline:var(--_padding-inline);gap:var(--odx-size-25);block-size:var(--_block-size);border-radius:var(--_border-radius);color:var(--_color-foreground);outline-offset:var(--odx-focus-ring-offset)}:host,.content,.action{transition:var(--odx-transition-reduced);transition-property:color background-color outline-color}:host,.action{outline:var(--odx-focus-ring-outline)}:host(:focus-visible),.action:focus-visible{outline-color:var(--odx-focus-ring-color)}.content{min-inline-size:var(--odx-size-150);user-select:none;text-align:center}.action,::slotted(odx-icon){font-size:var(--odx-font-size-text-md);block-size:var(--_block-size);inline-size:var(--_block-size);color:inherit;outline-offset:calc(-1 * var(--odx-focus-ring-offset))}.action{background-color:var(--_color-background);border:none;border-radius:var(--_border-radius);cursor:pointer;margin-inline-end:calc(-1 * var(--_padding-inline));padding:0}.action:hover{background-color:var(--_color-background-hover)}:host([variant=\"neutral\"]){--_color-background: var(--odx-color-neutral-rest);--_color-background-hover: var(--odx-color-neutral-hover);--_color-foreground: var(--odx-color-foreground)}:host([variant=\"primary\"]){--_color-background: var(--odx-color-primary-rest);--_color-background-hover: var(--odx-color-primary-hover);--_color-foreground: var(--odx-color-foreground-light)}:host([variant=\"highlight\"]){--_color-background: var(--odx-color-highlight-rest);--_color-background-hover: var(--odx-color-highlight-hover);--_color-foreground: var(--odx-color-foreground-light)}:host([variant=\"success\"]){--_color-background: var(--odx-color-success-rest);--_color-background-hover: var(--odx-color-success-hover);--_color-foreground: var(--odx-color-success-text)}:host([variant=\"warning\"]){--_color-background: var(--odx-color-warning-rest);--_color-background-hover: var(--odx-color-warning-hover);--_color-foreground: var(--odx-color-warning-text)}:host([variant=\"danger\"]){--_color-background: var(--odx-color-danger-rest);--_color-background-hover: var(--odx-color-danger-hover);--_color-foreground: var(--odx-color-foreground-light)}:host([aria-disabled=\"true\"]){--_color-background: var(--odx-color-disabled-fill);--_color-foreground: var(--odx-color-disabled-foreground);.action{pointer-events:none}}:host([interactive]:not([interactive=\"false\"])){cursor:pointer}:host([interactive]:not([interactive=\"false\"]):hover){--_color-background: var(--_color-background-hover)}:host([aria-disabled=\"true\"][interactive]:not([interactive=\"false\"])){--_color-background: var(--odx-color-disabled-fill);cursor:not-allowed}";
880
+
881
+ var __defProp$Z = Object.defineProperty;
882
+ var __getOwnPropDesc$Z = Object.getOwnPropertyDescriptor;
883
+ var __typeError$m = (msg) => {
884
+ throw TypeError(msg);
885
+ };
886
+ var __decorateClass$Z = (decorators, target, key, kind) => {
887
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$Z(target, key) : target;
888
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
889
+ if (decorator = decorators[i])
890
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
891
+ if (kind && result) __defProp$Z(target, key, result);
892
+ return result;
893
+ };
894
+ var __accessCheck$m = (obj, member, msg) => member.has(obj) || __typeError$m("Cannot " + msg);
895
+ var __privateGet$j = (obj, member, getter) => (__accessCheck$m(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
896
+ var __privateAdd$m = (obj, member, value) => member.has(obj) ? __typeError$m("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
897
+ var _handleActionClick, _handleClick$3;
898
+ let OdxChipComponent = class extends CanBeDisabled(CustomElement) {
899
+ constructor() {
900
+ super(...arguments);
901
+ this.removable = false;
902
+ this.interactive = false;
903
+ __privateAdd$m(this, _handleActionClick, (event) => {
904
+ const actionElement = getElementFromEvent(event, (node) => !!this.actionElement && node === this.actionElement);
905
+ if (!actionElement) return;
906
+ event.stopPropagation();
907
+ this.emit("remove");
908
+ });
909
+ __privateAdd$m(this, _handleClick$3, (event) => {
910
+ if (this.removable) {
911
+ const actionElement = getElementFromEvent(event, (node) => !!this.actionElement && node === this.actionElement);
912
+ if (actionElement) return;
913
+ }
914
+ });
915
+ }
916
+ render() {
917
+ return html`
918
+ <odx-text class="content" size="sm" highlight odxPreventTextOverflow>
919
+ <slot></slot>
920
+ </odx-text>
921
+ ${when(this.removable, () => this.renderAction())}
922
+ `;
923
+ }
924
+ renderAction() {
925
+ return html`
926
+ <button class="action" ?disabled=${this.disabled} @click=${__privateGet$j(this, _handleActionClick)}>
927
+ <odx-icon class="action-icon" name="core::close"></odx-icon>
928
+ </button>
929
+ `;
930
+ }
931
+ willUpdate(changes) {
932
+ super.willUpdate?.(changes);
933
+ if (changes.has("interactive") || changes.has("disabled")) {
934
+ if (!this.disabled) {
935
+ toggleAttribute(this, "tabindex", this.interactive ? 0 : null);
936
+ toggleAttribute(this.actionElement, "tabindex", this.interactive ? -1 : null);
937
+ }
938
+ }
939
+ }
940
+ updated(changes) {
941
+ if (changes.has("removable") || changes.has("interactive") || changes.has("disabled")) {
942
+ if (this.removable || this.interactive) {
943
+ this.addEventListener("click", __privateGet$j(this, _handleClick$3), { capture: true });
944
+ } else {
945
+ this.removeEventListener("click", __privateGet$j(this, _handleClick$3));
946
+ }
947
+ }
948
+ }
949
+ };
950
+ _handleActionClick = new WeakMap();
951
+ _handleClick$3 = new WeakMap();
952
+ __decorateClass$Z([
953
+ query(".action")
954
+ ], OdxChipComponent.prototype, "actionElement", 2);
955
+ __decorateClass$Z([
956
+ property({ type: Boolean, reflect: true })
957
+ ], OdxChipComponent.prototype, "removable", 2);
958
+ __decorateClass$Z([
959
+ property({ type: Boolean, reflect: true })
960
+ ], OdxChipComponent.prototype, "interactive", 2);
961
+ __decorateClass$Z([
962
+ property({ reflect: true })
963
+ ], OdxChipComponent.prototype, "variant", 2);
964
+ OdxChipComponent = __decorateClass$Z([
965
+ customElement("odx-chip", [styles$Q])
966
+ ], OdxChipComponent);
967
+
968
+ const ChipVariant = {
969
+ NEUTRAL: "neutral",
970
+ PRIMARY: "primary",
971
+ HIGHLIGHT: "highlight",
972
+ SUCCESS: "success",
973
+ WARNING: "warning",
974
+ DANGER: "danger"
975
+ };
976
+
977
+ const styles$P = "@keyframes odx-circular-progress-indicator-animation{0%{stroke-dashoffset:100}25%{stroke-dashoffset:250;transform:rotate(180deg)}to{stroke-dashoffset:100;transform:rotate(270deg)}}@keyframes odx-circular-progress-inner-animation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{--_indicator-color: var(--odx-color-primary-rest);--_track-color: var(--odx-palette-coolgray-10);aspect-ratio:1;display:flex;place-content:center;place-items:center;color:currentColor;block-size:100%;inline-size:100%;position:relative}:host([size=\"small\"]){--_size: var(--odx-size-300)}:host([size=\"medium\"]){--_size: var(--odx-size-400)}:host([size=\"large\"]){--_size: var(--odx-size-600)}:host([size]){max-block-size:var(--_size);max-inline-size:var(--_size)}:host::part(track),:host::part(indicator){fill:transparent}:host::part(indicator){stroke:var(--_indicator-color);transform:rotate(-90deg);transform-origin:center;transition:stroke-dashoffset var(--odx-motion-duration-fast) var(--odx-motion-easing-reduced)}:host::part(track){stroke:var(--_track-color)}:host([indeterminate]:not([indeterminate=\"false\"]))::part(inner){animation:1.75s linear infinite odx-circular-progress-inner-animation}:host([indeterminate]:not([indeterminate=\"false\"]))::part(indicator){animation:1.75s ease infinite odx-circular-progress-indicator-animation both}";
978
+
979
+ const CircularProgressBarSize = {
980
+ SMALL: "small",
981
+ MEDIUM: "medium",
982
+ LARGE: "large"
983
+ };
984
+
985
+ var __defProp$Y = Object.defineProperty;
986
+ var __getOwnPropDesc$Y = Object.getOwnPropertyDescriptor;
987
+ var __typeError$l = (msg) => {
988
+ throw TypeError(msg);
989
+ };
990
+ var __decorateClass$Y = (decorators, target, key, kind) => {
991
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$Y(target, key) : target;
992
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
993
+ if (decorator = decorators[i])
994
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
995
+ if (kind && result) __defProp$Y(target, key, result);
996
+ return result;
997
+ };
998
+ var __accessCheck$l = (obj, member, msg) => member.has(obj) || __typeError$l("Cannot " + msg);
999
+ var __privateGet$i = (obj, member, getter) => (__accessCheck$l(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
1000
+ var __privateAdd$l = (obj, member, value) => member.has(obj) ? __typeError$l("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
1001
+ var __privateSet$4 = (obj, member, value, setter) => (__accessCheck$l(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
1002
+ var _value$1, _OdxCircularProgressBarComponent_instances, circumference_get, radius_get, progressValue_get, normalizedStrokeWidth_get;
1003
+ let OdxCircularProgressBarComponent = class extends CustomElement {
1004
+ constructor() {
1005
+ super(...arguments);
1006
+ __privateAdd$l(this, _OdxCircularProgressBarComponent_instances);
1007
+ __privateAdd$l(this, _value$1, 0);
1008
+ this.viewPortSize = 100;
1009
+ this.stroke = 4;
1010
+ this.indeterminate = false;
1011
+ this.size = CircularProgressBarSize.MEDIUM;
1012
+ }
1013
+ set value(val) {
1014
+ if (val >= -1 && val <= 100) {
1015
+ __privateSet$4(this, _value$1, val);
1016
+ this.indeterminate = val === -1;
1017
+ this.setAttribute("aria-valuenow", `${this.indeterminate ? 0 : val}`);
1018
+ } else {
1019
+ console.warn(`Invalid value (${val}). Value must be between -1 and 100.`);
1020
+ }
1021
+ }
1022
+ get value() {
1023
+ return __privateGet$i(this, _value$1);
1024
+ }
1025
+ firstUpdated(changes) {
1026
+ super.firstUpdated?.(changes);
1027
+ SharedResizeObserver.observe(this, () => {
1028
+ this.requestUpdate();
1029
+ });
1030
+ this.setAttributes();
1031
+ }
1032
+ disconnectedCallback() {
1033
+ super.disconnectedCallback?.();
1034
+ SharedResizeObserver.unobserve(this);
1035
+ }
1036
+ render() {
1037
+ return html`
1038
+ <svg part="inner" viewBox="0 0 ${this.viewPortSize} ${this.viewPortSize}">
1039
+ <circle
1040
+ part="track"
1041
+ stroke-width="${__privateGet$i(this, _OdxCircularProgressBarComponent_instances, normalizedStrokeWidth_get)}"
1042
+ r="${__privateGet$i(this, _OdxCircularProgressBarComponent_instances, radius_get)}"
1043
+ cx="50%"
1044
+ cy="50%"
1045
+ />
1046
+ <circle
1047
+ part="indicator"
1048
+ stroke-dasharray="${__privateGet$i(this, _OdxCircularProgressBarComponent_instances, circumference_get)}"
1049
+ stroke-dashoffset="${__privateGet$i(this, _OdxCircularProgressBarComponent_instances, progressValue_get)}"
1050
+ stroke-width="${__privateGet$i(this, _OdxCircularProgressBarComponent_instances, normalizedStrokeWidth_get)}"
1051
+ r="${__privateGet$i(this, _OdxCircularProgressBarComponent_instances, radius_get)}"
1052
+ cx="50%"
1053
+ cy="50%"
1054
+ />
1055
+ </svg>
1056
+ `;
1057
+ }
1058
+ setAttributes() {
1059
+ this.setAttribute("aria-valuenow", `${this.indeterminate ? 0 : this.value}`);
1060
+ this.setAttribute("aria-valuemax", "100");
1061
+ this.setAttribute("aria-valuemin", "0");
1062
+ this.setAttribute("role", "meter");
1063
+ }
1064
+ };
1065
+ _value$1 = new WeakMap();
1066
+ _OdxCircularProgressBarComponent_instances = new WeakSet();
1067
+ circumference_get = function() {
1068
+ return Math.floor(2 * __privateGet$i(this, _OdxCircularProgressBarComponent_instances, radius_get) * Math.PI);
1069
+ };
1070
+ radius_get = function() {
1071
+ return Math.max(0, this.viewPortSize / 2 - __privateGet$i(this, _OdxCircularProgressBarComponent_instances, normalizedStrokeWidth_get) / 2);
1072
+ };
1073
+ progressValue_get = function() {
1074
+ return this.indeterminate ? __privateGet$i(this, _OdxCircularProgressBarComponent_instances, circumference_get) : Math.floor((1 - __privateGet$i(this, _value$1) / 100) * __privateGet$i(this, _OdxCircularProgressBarComponent_instances, circumference_get));
1075
+ };
1076
+ normalizedStrokeWidth_get = function() {
1077
+ if (this.stroke < 0) return 0;
1078
+ const normalizeFactor = this.viewPortSize / (this.offsetWidth || 1);
1079
+ let stroke = normalizeFactor * this.stroke;
1080
+ if (normalizeFactor >= 3) {
1081
+ stroke = Math.max(0, stroke - normalizeFactor);
1082
+ }
1083
+ return stroke;
1084
+ };
1085
+ __decorateClass$Y([
1086
+ property({ type: Number })
1087
+ ], OdxCircularProgressBarComponent.prototype, "value", 1);
1088
+ __decorateClass$Y([
1089
+ property({ type: Number, reflect: true })
1090
+ ], OdxCircularProgressBarComponent.prototype, "stroke", 2);
1091
+ __decorateClass$Y([
1092
+ property({ type: Boolean, reflect: true })
1093
+ ], OdxCircularProgressBarComponent.prototype, "indeterminate", 2);
1094
+ __decorateClass$Y([
1095
+ property({ reflect: true })
1096
+ ], OdxCircularProgressBarComponent.prototype, "size", 2);
1097
+ OdxCircularProgressBarComponent = __decorateClass$Y([
1098
+ customElement("odx-circular-progress-bar", [styles$P])
1099
+ ], OdxCircularProgressBarComponent);
1100
+
1101
+ const styles$O = ":host{display:block;padding:var(--odx-size-75);background-color:var(--odx-color-background-main)}::slotted(:is([slot=\"header\"],[slot=\"footer\"])){margin-inline:calc(-1 * var(--odx-size-75))}";
1102
+
1103
+ var __defProp$X = Object.defineProperty;
1104
+ var __getOwnPropDesc$X = Object.getOwnPropertyDescriptor;
1105
+ var __decorateClass$X = (decorators, target, key, kind) => {
1106
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$X(target, key) : target;
1107
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
1108
+ if (decorator = decorators[i])
1109
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
1110
+ if (kind && result) __defProp$X(target, key, result);
1111
+ return result;
1112
+ };
1113
+ let OdxContentBoxComponent = class extends CustomElement {
1114
+ render() {
1115
+ return html`
1116
+ <slot name="header"></slot>
1117
+ <slot></slot>
1118
+ <slot name="footer"></slot>
1119
+ `;
1120
+ }
1121
+ };
1122
+ OdxContentBoxComponent = __decorateClass$X([
1123
+ customElement("odx-content-box", [styles$O])
1124
+ ], OdxContentBoxComponent);
1125
+
1126
+ const styles$N = ":host{--_popover-offset: var(--odx-size-37)}odx-popover{--color-background: var(--odx-color-background-main)}:host([matchReferenceWidth]:not([matchReferenceWidth=\"false\"])){odx-popover{--min-inline-size: var(--_reference-inline-size, 0)}}";
1127
+
1128
+ const DropdownPlacement = {
1129
+ TOP: PopoverPlacement.TOP,
1130
+ BOTTOM: PopoverPlacement.BOTTOM
1131
+ };
1132
+
1133
+ var __defProp$W = Object.defineProperty;
1134
+ var __getOwnPropDesc$W = Object.getOwnPropertyDescriptor;
1135
+ var __typeError$k = (msg) => {
1136
+ throw TypeError(msg);
1137
+ };
1138
+ var __decorateClass$W = (decorators, target, key, kind) => {
1139
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$W(target, key) : target;
1140
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
1141
+ if (decorator = decorators[i])
1142
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
1143
+ if (kind && result) __defProp$W(target, key, result);
1144
+ return result;
1145
+ };
1146
+ var __accessCheck$k = (obj, member, msg) => member.has(obj) || __typeError$k("Cannot " + msg);
1147
+ var __privateGet$h = (obj, member, getter) => (__accessCheck$k(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
1148
+ var __privateAdd$k = (obj, member, value) => member.has(obj) ? __typeError$k("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
1149
+ var __privateMethod$a = (obj, member, method) => (__accessCheck$k(obj, member, "access private method"), method);
1150
+ var _OdxDropdownComponent_instances, observeReferenceElement_fn, unobserveReferenceElement_fn, updateAriaAttributes_fn$1, _handleMouseEvent, _handleKeyboardEvent$1;
1151
+ let OdxDropdownComponent = class extends PopoverHost(CanBeDisabled(CustomElement)) {
1152
+ constructor() {
1153
+ super(...arguments);
1154
+ __privateAdd$k(this, _OdxDropdownComponent_instances);
1155
+ this.matchReferenceWidth = false;
1156
+ this.placement = DropdownPlacement.BOTTOM;
1157
+ __privateAdd$k(this, _handleMouseEvent, (event) => {
1158
+ this.togglePopover();
1159
+ });
1160
+ __privateAdd$k(this, _handleKeyboardEvent$1, (event) => {
1161
+ if (event.key !== "Enter") return;
1162
+ this.togglePopover();
1163
+ });
1164
+ }
1165
+ connectedCallback() {
1166
+ super.connectedCallback?.();
1167
+ this.id ||= getUniqueId("odx-dropdown");
1168
+ }
1169
+ mountPopover(referenceElement) {
1170
+ super.mountPopover(referenceElement);
1171
+ if (this.disabled || !referenceElement) return;
1172
+ __privateMethod$a(this, _OdxDropdownComponent_instances, updateAriaAttributes_fn$1).call(this, referenceElement, this.id);
1173
+ referenceElement.addEventListener("click", __privateGet$h(this, _handleMouseEvent));
1174
+ referenceElement.addEventListener("keydown", __privateGet$h(this, _handleKeyboardEvent$1));
1175
+ if (this.matchReferenceWidth) {
1176
+ __privateMethod$a(this, _OdxDropdownComponent_instances, observeReferenceElement_fn).call(this);
1177
+ }
1178
+ }
1179
+ unmountPopover(referenceElement) {
1180
+ super.unmountPopover(referenceElement);
1181
+ __privateMethod$a(this, _OdxDropdownComponent_instances, updateAriaAttributes_fn$1).call(this, referenceElement, null);
1182
+ referenceElement.removeEventListener("click", __privateGet$h(this, _handleMouseEvent));
1183
+ referenceElement.removeEventListener("keydown", __privateGet$h(this, _handleKeyboardEvent$1));
1184
+ __privateMethod$a(this, _OdxDropdownComponent_instances, unobserveReferenceElement_fn).call(this);
1185
+ }
1186
+ render() {
1187
+ return html`
1188
+ <odx-popover>
1189
+ <slot></slot>
1190
+ </odx-popover>
1191
+ `;
1192
+ }
1193
+ willUpdate(changes) {
1194
+ super.willUpdate?.(changes);
1195
+ if (changes.has("id")) {
1196
+ __privateMethod$a(this, _OdxDropdownComponent_instances, updateAriaAttributes_fn$1).call(this, this.referenceElement, this.id);
1197
+ }
1198
+ if (changes.has("disabled")) {
1199
+ if (this.disabled) {
1200
+ this.referenceElement && this.unmountPopover(this.referenceElement);
1201
+ } else {
1202
+ this.mountPopover(this.referenceElement);
1203
+ }
1204
+ }
1205
+ if (changes.has("matchReferenceWidth")) {
1206
+ if (this.matchReferenceWidth) {
1207
+ __privateMethod$a(this, _OdxDropdownComponent_instances, observeReferenceElement_fn).call(this);
1208
+ } else {
1209
+ __privateMethod$a(this, _OdxDropdownComponent_instances, unobserveReferenceElement_fn).call(this);
1210
+ }
1211
+ }
1212
+ }
1213
+ };
1214
+ _OdxDropdownComponent_instances = new WeakSet();
1215
+ observeReferenceElement_fn = function() {
1216
+ if (!this.referenceElement) return;
1217
+ SharedResizeObserver.observe(this.referenceElement, () => {
1218
+ const referenceWidth = this.referenceElement?.offsetWidth ?? null;
1219
+ if (referenceWidth !== null) {
1220
+ this.popoverElement.style.setProperty("--_reference-inline-size", `${referenceWidth}px`);
1221
+ }
1222
+ });
1223
+ };
1224
+ unobserveReferenceElement_fn = function() {
1225
+ if (!this.referenceElement) return;
1226
+ SharedResizeObserver.unobserve(this.referenceElement);
1227
+ };
1228
+ updateAriaAttributes_fn$1 = function(referenceElement, id) {
1229
+ toggleAttribute(referenceElement, "aria-describedby", id);
1230
+ };
1231
+ _handleMouseEvent = new WeakMap();
1232
+ _handleKeyboardEvent$1 = new WeakMap();
1233
+ __decorateClass$W([
1234
+ query("odx-popover", true)
1235
+ ], OdxDropdownComponent.prototype, "popoverElement", 2);
1236
+ __decorateClass$W([
1237
+ property({ type: Boolean, reflect: true })
1238
+ ], OdxDropdownComponent.prototype, "matchReferenceWidth", 2);
1239
+ __decorateClass$W([
1240
+ property({ type: String, reflect: true })
1241
+ ], OdxDropdownComponent.prototype, "placement", 2);
1242
+ OdxDropdownComponent = __decorateClass$W([
1243
+ customElement("odx-dropdown", [styles$N])
1244
+ ], OdxDropdownComponent);
1245
+
1246
+ var __defProp$V = Object.defineProperty;
1247
+ var __getOwnPropDesc$V = Object.getOwnPropertyDescriptor;
1248
+ var __decorateClass$V = (decorators, target, key, kind) => {
1249
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$V(target, key) : target;
1250
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
1251
+ if (decorator = decorators[i])
1252
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
1253
+ if (kind && result) __defProp$V(target, key, result);
1254
+ return result;
1255
+ };
1256
+ class FormatComponent extends IsLocalized(CustomElement) {
1257
+ static {
1258
+ this.styles = [css`:host { display: inline; }`];
1259
+ }
1260
+ render() {
1261
+ if (this.value !== null && this.value !== void 0) {
1262
+ try {
1263
+ return html`${this.transform(this.value) || this.fallbackValue}`;
1264
+ } catch (error) {
1265
+ console.warn(error);
1266
+ }
1267
+ }
1268
+ return html`${this.fallbackValue ?? nothing}`;
1269
+ }
1270
+ }
1271
+ __decorateClass$V([
1272
+ property()
1273
+ ], FormatComponent.prototype, "fallbackValue", 2);
1274
+
1275
+ var __defProp$U = Object.defineProperty;
1276
+ var __getOwnPropDesc$U = Object.getOwnPropertyDescriptor;
1277
+ var __decorateClass$U = (decorators, target, key, kind) => {
1278
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$U(target, key) : target;
1279
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
1280
+ if (decorator = decorators[i])
1281
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
1282
+ if (kind && result) __defProp$U(target, key, result);
1283
+ return result;
1284
+ };
1285
+ let OdxFormatBytesComponent = class extends FormatComponent {
1286
+ constructor() {
1287
+ super(...arguments);
1288
+ this.unit = "byte";
1289
+ }
1290
+ transform(value) {
1291
+ const units = OdxFormatBytesComponent.UNIT_PREFIXES[this.unit];
1292
+ const index = clamp(Math.floor(Math.log10(value) / 3), 0, units.length - 1);
1293
+ const transformedValue = value / 1e3 ** index;
1294
+ return this.formatNumber(transformedValue, {
1295
+ maximumFractionDigits: 2,
1296
+ style: "unit",
1297
+ unit: units[index]
1298
+ });
1299
+ }
1300
+ };
1301
+ OdxFormatBytesComponent.UNIT_PREFIXES = {
1302
+ bit: ["bit", "kilobit", "megabit", "gigabit", "terabit"],
1303
+ byte: ["byte", "kilobyte", "megabyte", "gigabyte", "terabyte", "petabyte"]
1304
+ };
1305
+ __decorateClass$U([
1306
+ property({ type: Number })
1307
+ ], OdxFormatBytesComponent.prototype, "value", 2);
1308
+ __decorateClass$U([
1309
+ property()
1310
+ ], OdxFormatBytesComponent.prototype, "unit", 2);
1311
+ OdxFormatBytesComponent = __decorateClass$U([
1312
+ customElement("odx-format-bytes")
1313
+ ], OdxFormatBytesComponent);
1314
+
1315
+ var __defProp$T = Object.defineProperty;
1316
+ var __getOwnPropDesc$T = Object.getOwnPropertyDescriptor;
1317
+ var __decorateClass$T = (decorators, target, key, kind) => {
1318
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$T(target, key) : target;
1319
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
1320
+ if (decorator = decorators[i])
1321
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
1322
+ if (kind && result) __defProp$T(target, key, result);
1323
+ return result;
1324
+ };
1325
+ let OdxFormatDateComponent = class extends FormatComponent {
1326
+ get valueAsDate() {
1327
+ if (this.value === null || this.value === void 0) {
1328
+ return null;
1329
+ }
1330
+ return parseDate(this.value);
1331
+ }
1332
+ transform(value) {
1333
+ return this.formatDate(value, { dateStyle: this.dateStyle });
1334
+ }
1335
+ };
1336
+ __decorateClass$T([
1337
+ property()
1338
+ ], OdxFormatDateComponent.prototype, "value", 2);
1339
+ __decorateClass$T([
1340
+ property()
1341
+ ], OdxFormatDateComponent.prototype, "dateStyle", 2);
1342
+ OdxFormatDateComponent = __decorateClass$T([
1343
+ customElement("odx-format-date")
1344
+ ], OdxFormatDateComponent);
1345
+
1346
+ var __defProp$S = Object.defineProperty;
1347
+ var __getOwnPropDesc$S = Object.getOwnPropertyDescriptor;
1348
+ var __decorateClass$S = (decorators, target, key, kind) => {
1349
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$S(target, key) : target;
1350
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
1351
+ if (decorator = decorators[i])
1352
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
1353
+ if (kind && result) __defProp$S(target, key, result);
1354
+ return result;
1355
+ };
1356
+ let OdxFormatNumberComponent = class extends FormatComponent {
1357
+ transform(value) {
1358
+ return this.formatNumber(value, {
1359
+ currency: this.currency,
1360
+ currencyDisplay: this.currencyDisplay,
1361
+ minimumFractionDigits: this.minimumFractionDigits,
1362
+ maximumFractionDigits: this.maximumFractionDigits,
1363
+ minimumIntegerDigits: this.minimumIntegerDigits,
1364
+ unit: this.unit,
1365
+ style: this.type
1366
+ });
1367
+ }
1368
+ };
1369
+ __decorateClass$S([
1370
+ property({ type: Number })
1371
+ ], OdxFormatNumberComponent.prototype, "value", 2);
1372
+ __decorateClass$S([
1373
+ property()
1374
+ ], OdxFormatNumberComponent.prototype, "currency", 2);
1375
+ __decorateClass$S([
1376
+ property()
1377
+ ], OdxFormatNumberComponent.prototype, "currencyDisplay", 2);
1378
+ __decorateClass$S([
1379
+ property({ type: Number })
1380
+ ], OdxFormatNumberComponent.prototype, "minimumFractionDigits", 2);
1381
+ __decorateClass$S([
1382
+ property({ type: Number })
1383
+ ], OdxFormatNumberComponent.prototype, "maximumFractionDigits", 2);
1384
+ __decorateClass$S([
1385
+ property({ type: Number })
1386
+ ], OdxFormatNumberComponent.prototype, "minimumIntegerDigits", 2);
1387
+ __decorateClass$S([
1388
+ property()
1389
+ ], OdxFormatNumberComponent.prototype, "type", 2);
1390
+ __decorateClass$S([
1391
+ property()
1392
+ ], OdxFormatNumberComponent.prototype, "unit", 2);
1393
+ __decorateClass$S([
1394
+ property()
1395
+ ], OdxFormatNumberComponent.prototype, "unitDisplay", 2);
1396
+ OdxFormatNumberComponent = __decorateClass$S([
1397
+ customElement("odx-format-number")
1398
+ ], OdxFormatNumberComponent);
1399
+
1400
+ var __defProp$R = Object.defineProperty;
1401
+ var __getOwnPropDesc$R = Object.getOwnPropertyDescriptor;
1402
+ var __typeError$j = (msg) => {
1403
+ throw TypeError(msg);
1404
+ };
1405
+ var __decorateClass$R = (decorators, target, key, kind) => {
1406
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$R(target, key) : target;
1407
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
1408
+ if (decorator = decorators[i])
1409
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
1410
+ if (kind && result) __defProp$R(target, key, result);
1411
+ return result;
1412
+ };
1413
+ var __accessCheck$j = (obj, member, msg) => member.has(obj) || __typeError$j("Cannot " + msg);
1414
+ var __privateGet$g = (obj, member, getter) => (__accessCheck$j(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
1415
+ var __privateAdd$j = (obj, member, value) => member.has(obj) ? __typeError$j("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
1416
+ var __privateSet$3 = (obj, member, value, setter) => (__accessCheck$j(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
1417
+ var __privateMethod$9 = (obj, member, method) => (__accessCheck$j(obj, member, "access private method"), method);
1418
+ var _syncInterval, _OdxRelativeTimeComponent_instances, setupSyncInterval_fn;
1419
+ let OdxRelativeTimeComponent = class extends FormatComponent {
1420
+ constructor() {
1421
+ super(...arguments);
1422
+ __privateAdd$j(this, _OdxRelativeTimeComponent_instances);
1423
+ __privateAdd$j(this, _syncInterval);
1424
+ this.value = Date.now();
1425
+ this.syncInterval = null;
1426
+ }
1427
+ get valueAsDate() {
1428
+ if (this.value === null || this.value === void 0) {
1429
+ return null;
1430
+ }
1431
+ return parseDate(this.value);
1432
+ }
1433
+ disconnectedCallback() {
1434
+ super.disconnectedCallback();
1435
+ clearInterval(__privateGet$g(this, _syncInterval));
1436
+ }
1437
+ willUpdate(props) {
1438
+ super.willUpdate?.(props);
1439
+ if (props.has("syncInterval")) {
1440
+ __privateMethod$9(this, _OdxRelativeTimeComponent_instances, setupSyncInterval_fn).call(this);
1441
+ }
1442
+ }
1443
+ transform(value) {
1444
+ const relativeTime = this.formatRelativeTime(value, { style: this.format, numeric: this.numeric, minUnit: this.minUnit });
1445
+ return html`<time datetime=${optionalAttr(this.valueAsDate?.toISOString())}>${relativeTime}</time>`;
1446
+ }
1447
+ };
1448
+ _syncInterval = new WeakMap();
1449
+ _OdxRelativeTimeComponent_instances = new WeakSet();
1450
+ setupSyncInterval_fn = function() {
1451
+ clearInterval(__privateGet$g(this, _syncInterval));
1452
+ if (typeof this.syncInterval !== "number") return;
1453
+ __privateSet$3(this, _syncInterval, window.setInterval(() => this.requestUpdate(), Math.max(this.syncInterval, 1e3)));
1454
+ };
1455
+ __decorateClass$R([
1456
+ property()
1457
+ ], OdxRelativeTimeComponent.prototype, "value", 2);
1458
+ __decorateClass$R([
1459
+ property()
1460
+ ], OdxRelativeTimeComponent.prototype, "format", 2);
1461
+ __decorateClass$R([
1462
+ property()
1463
+ ], OdxRelativeTimeComponent.prototype, "minUnit", 2);
1464
+ __decorateClass$R([
1465
+ property()
1466
+ ], OdxRelativeTimeComponent.prototype, "numeric", 2);
1467
+ __decorateClass$R([
1468
+ property({ type: Number })
1469
+ ], OdxRelativeTimeComponent.prototype, "syncInterval", 2);
1470
+ OdxRelativeTimeComponent = __decorateClass$R([
1471
+ customElement("odx-relative-time")
1472
+ ], OdxRelativeTimeComponent);
1473
+
1474
+ const styles$M = ":host{display:flex;block-size:100%;gap:var(--odx-size-75)}::slotted(odx-separator){--block-space: var(--odx-size-50);--inline-space: 0}";
1475
+
1476
+ var __defProp$Q = Object.defineProperty;
1477
+ var __getOwnPropDesc$Q = Object.getOwnPropertyDescriptor;
1478
+ var __decorateClass$Q = (decorators, target, key, kind) => {
1479
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$Q(target, key) : target;
1480
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
1481
+ if (decorator = decorators[i])
1482
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
1483
+ if (kind && result) __defProp$Q(target, key, result);
1484
+ return result;
1485
+ };
1486
+ let OdxHeaderActionsComponent = class extends CustomElement {
1487
+ connectedCallback() {
1488
+ super.connectedCallback?.();
1489
+ this.slot = "actions";
1490
+ }
1491
+ };
1492
+ OdxHeaderActionsComponent = __decorateClass$Q([
1493
+ customElement("odx-header-actions", [styles$M])
1494
+ ], OdxHeaderActionsComponent);
1495
+
1496
+ const styles$L = ":host{display:block;font-family:var(--odx-typography-font-family-brand);font-size:var(--_font-size);font-weight:var(--_font-weight);line-height:var(--_line-height);color:inherit}:host,:host([size=\"xs\"]){--_font-size: var(--odx-breakpoint-font-size-heading-6);--_font-weight: var(--odx-typography-font-weight-semibold);--_line-height: var(--odx-breakpoint-line-height-heading-6)}:host([size=\"sm\"]){--_font-size: var(--odx-breakpoint-font-size-heading-5);--_font-weight: var(--odx-typography-font-weight-semibold);--_line-height: var(--odx-breakpoint-line-height-heading-5)}:host([size=\"md\"]){--_font-size: var(--odx-breakpoint-font-size-heading-4);--_font-weight: var(--odx-typography-font-weight-semibold);--_line-height: var(--odx-breakpoint-line-height-heading-4)}:host([size=\"lg\"]){--_font-size: var(--odx-breakpoint-font-size-heading-3);--_font-weight: var(--odx-typography-font-weight-semibold);--_line-height: var(--odx-breakpoint-line-height-heading-3)}:host([size=\"xl\"]){--_font-size: var(--odx-breakpoint-font-size-heading-2);--_font-weight: var(--odx-typography-font-weight-semibold);--_line-height: var(--odx-breakpoint-line-height-heading-2)}:host([size=\"xxl\"]){--_font-size: var(--odx-breakpoint-font-size-heading-1);--_font-weight: var(--odx-typography-font-weight-semibold);--_line-height: var(--odx-breakpoint-line-height-heading-1)}";
1497
+
1498
+ var __defProp$P = Object.defineProperty;
1499
+ var __getOwnPropDesc$P = Object.getOwnPropertyDescriptor;
1500
+ var __decorateClass$P = (decorators, target, key, kind) => {
1501
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$P(target, key) : target;
1502
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
1503
+ if (decorator = decorators[i])
1504
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
1505
+ if (kind && result) __defProp$P(target, key, result);
1506
+ return result;
1507
+ };
1508
+ let OdxTitleComponent = class extends CustomElement {
1509
+ willUpdate(props) {
1510
+ super.willUpdate(props);
1511
+ if (props.has("ariaLevel")) {
1512
+ this.role = this.ariaLevel !== null ? "heading" : null;
1513
+ }
1514
+ }
1515
+ };
1516
+ __decorateClass$P([
1517
+ property({ reflect: true })
1518
+ ], OdxTitleComponent.prototype, "size", 2);
1519
+ OdxTitleComponent = __decorateClass$P([
1520
+ requestUpdateOnAriaChange(["ariaLevel"]),
1521
+ customElement("odx-title", [styles$L])
1522
+ ], OdxTitleComponent);
1523
+
1524
+ const TitleSize = {
1525
+ XS: "xs",
1526
+ SM: "sm",
1527
+ MD: "md",
1528
+ LG: "lg",
1529
+ XL: "xl",
1530
+ XXL: "xxl"
1531
+ };
1532
+
1533
+ const styles$K = ":host{display:flex;block-size:var(--odx-size-300);background-color:var(--odx-color-foreground-light);column-gap:var(--odx-size-150);padding-inline:var(--odx-size-150);place-items:center;box-shadow:0 0 0 100vmax var(--odx-color-foreground-light);clip-path:inset(0 -100vmax)}odx-logo{flex:0 0 auto}::slotted(odx-title){width:max-content}::slotted(odx-main-menu-button){margin-inline-end:calc(-1 * var(--odx-size-75))}::slotted(odx-header-actions){margin-inline-start:auto}@media screen and (max-width: 600px){odx-logo{display:none}}";
1534
+
1535
+ var __defProp$O = Object.defineProperty;
1536
+ var __getOwnPropDesc$O = Object.getOwnPropertyDescriptor;
1537
+ var __typeError$i = (msg) => {
1538
+ throw TypeError(msg);
1539
+ };
1540
+ var __decorateClass$O = (decorators, target, key, kind) => {
1541
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$O(target, key) : target;
1542
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
1543
+ if (decorator = decorators[i])
1544
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
1545
+ if (kind && result) __defProp$O(target, key, result);
1546
+ return result;
1547
+ };
1548
+ var __accessCheck$i = (obj, member, msg) => member.has(obj) || __typeError$i("Cannot " + msg);
1549
+ var __privateGet$f = (obj, member, getter) => (__accessCheck$i(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
1550
+ var __privateAdd$i = (obj, member, value) => member.has(obj) ? __typeError$i("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
1551
+ var _handleSlotChange$5;
1552
+ let OdxHeaderComponent = class extends CustomElement {
1553
+ constructor() {
1554
+ super(...arguments);
1555
+ __privateAdd$i(this, _handleSlotChange$5, () => {
1556
+ const [titleElement] = this.titleElements;
1557
+ if (!titleElement) return;
1558
+ titleElement.ariaLevel = "1";
1559
+ titleElement.role = "heading";
1560
+ titleElement.size = TitleSize.XS;
1561
+ titleElement.setAttribute("odxPreventTextOverflow", "true");
1562
+ });
1563
+ }
1564
+ connectedCallback() {
1565
+ super.connectedCallback?.();
1566
+ this.role = "banner";
1567
+ }
1568
+ render() {
1569
+ return html`
1570
+ <slot name="prefix"></slot>
1571
+ <odx-logo size="sm"></odx-logo>
1572
+ <slot @slotchange=${__privateGet$f(this, _handleSlotChange$5)}></slot>
1573
+ <slot name="actions"></slot>
1574
+ `;
1575
+ }
1576
+ };
1577
+ _handleSlotChange$5 = new WeakMap();
1578
+ __decorateClass$O([
1579
+ queryAssignedElements({ selector: OdxTitleComponent.selector, flatten: true })
1580
+ ], OdxHeaderComponent.prototype, "titleElements", 2);
1581
+ OdxHeaderComponent = __decorateClass$O([
1582
+ customElement("odx-header", [styles$K])
1583
+ ], OdxHeaderComponent);
1584
+
1585
+ const styles$J = ":host{display:block;font-family:var(--odx-typography-font-family-brand);font-size:var(--_font-size);font-weight:var(--odx-typography-font-weight-semibold);line-height:var(--_line-height)}:host([size=\"sm\"]){--_font-size: var(--odx-breakpoint-font-size-display-sm);--_line-height: var(--odx-breakpoint-line-height-display-sm)}:host,:host([size=\"md\"]){--_font-size: var(--odx-breakpoint-font-size-display-md);--_line-height: var(--odx-breakpoint-line-height-display-md)}:host([size=\"lg\"]){--_font-size: var(--odx-breakpoint-font-size-display-lg);--_line-height: var(--odx-breakpoint-line-height-display-lg)}:host([size=\"xl\"]){--_font-size: var(--odx-breakpoint-font-size-display-xl);--_line-height: var(--odx-breakpoint-line-height-display-xl)}";
1586
+
1587
+ var __defProp$N = Object.defineProperty;
1588
+ var __getOwnPropDesc$N = Object.getOwnPropertyDescriptor;
1589
+ var __decorateClass$N = (decorators, target, key, kind) => {
1590
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$N(target, key) : target;
1591
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
1592
+ if (decorator = decorators[i])
1593
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
1594
+ if (kind && result) __defProp$N(target, key, result);
1595
+ return result;
1596
+ };
1597
+ let OdxHeadlineComponent = class extends CustomElement {
1598
+ willUpdate(props) {
1599
+ super.willUpdate(props);
1600
+ if (props.has("ariaLevel")) {
1601
+ this.role = this.ariaLevel !== null ? "heading" : null;
1602
+ }
1603
+ }
1604
+ };
1605
+ __decorateClass$N([
1606
+ property({ reflect: true })
1607
+ ], OdxHeadlineComponent.prototype, "size", 2);
1608
+ OdxHeadlineComponent = __decorateClass$N([
1609
+ requestUpdateOnAriaChange(["ariaLevel"]),
1610
+ customElement("odx-headline", [styles$J])
1611
+ ], OdxHeadlineComponent);
1612
+
1613
+ const HeadlineSize = {
1614
+ SM: "sm",
1615
+ MD: "md",
1616
+ LG: "lg",
1617
+ XL: "xl"
1618
+ };
1619
+
1620
+ var __defProp$M = Object.defineProperty;
1621
+ var __getOwnPropDesc$M = Object.getOwnPropertyDescriptor;
1622
+ var __decorateClass$M = (decorators, target, key, kind) => {
1623
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$M(target, key) : target;
1624
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
1625
+ if (decorator = decorators[i])
1626
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
1627
+ if (kind && result) __defProp$M(target, key, result);
1628
+ return result;
1629
+ };
1630
+ let OdxIconButtonComponent = class extends OdxButtonComponent {
1631
+ renderContent() {
1632
+ return html`
1633
+ <odx-icon name=${optionalAttr(this.icon)}></odx-icon>
1634
+ <odx-visually-hidden>
1635
+ <slot></slot>
1636
+ </odx-visually-hidden>
1637
+ `;
1638
+ }
1639
+ };
1640
+ __decorateClass$M([
1641
+ property()
1642
+ ], OdxIconButtonComponent.prototype, "icon", 2);
1643
+ OdxIconButtonComponent = __decorateClass$M([
1644
+ customElement("odx-icon-button")
1645
+ ], OdxIconButtonComponent);
1646
+
1647
+ const styles$I = ":host{--_color-background: var(--odx-color-background-main);--_color-foreground: var(--odx-color-foreground);--_color-stroke: var(--odx-color-separator);display:block;padding:var(--odx-size-75);background-color:var(--_color-background);color:var(--_color-foreground);border:var(--odx-border-width-thin) solid var(--_color-stroke);transition:var(--odx-transition-reduced);transition-property:background-color,color,border-color}:host([variant=\"info\"]){--_color-background: var(--odx-palette-blue-10);--_color-stroke: var(--odx-palette-blue-30)}:host([variant=\"danger\"]){--_color-background: var(--odx-palette-red-10);--_color-foreground: var(--odx-palette-red-100);--_color-stroke: var(--odx-palette-red-30)}:host([variant=\"warning\"]){--_color-background: var(--odx-palette-yellow-00);--_color-stroke: var(--odx-palette-yellow-60)}:host([variant=\"success\"]){--_color-background: var(--odx-palette-green-00);--_color-stroke: var(--odx-palette-green-60)}:host(:not([emphasized])){--_color-stroke: var(--odx-palette-transparent)}";
1648
+
1649
+ var __defProp$L = Object.defineProperty;
1650
+ var __getOwnPropDesc$L = Object.getOwnPropertyDescriptor;
1651
+ var __decorateClass$L = (decorators, target, key, kind) => {
1652
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$L(target, key) : target;
1653
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
1654
+ if (decorator = decorators[i])
1655
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
1656
+ if (kind && result) __defProp$L(target, key, result);
1657
+ return result;
1658
+ };
1659
+ let OdxInlineMessageComponent = class extends CustomElement {
1660
+ constructor() {
1661
+ super(...arguments);
1662
+ this.emphasized = false;
1663
+ }
1664
+ render() {
1665
+ return html`
1666
+ <odx-text size="sm">
1667
+ <slot></slot>
1668
+ </odx-text>
1669
+ `;
1670
+ }
1671
+ };
1672
+ __decorateClass$L([
1673
+ property({ type: Boolean, reflect: true })
1674
+ ], OdxInlineMessageComponent.prototype, "emphasized", 2);
1675
+ __decorateClass$L([
1676
+ property({ reflect: true })
1677
+ ], OdxInlineMessageComponent.prototype, "variant", 2);
1678
+ OdxInlineMessageComponent = __decorateClass$L([
1679
+ customElement("odx-inline-message", [styles$I])
1680
+ ], OdxInlineMessageComponent);
1681
+
1682
+ const InlineMessageVariant = {
1683
+ NEUTRAL: "neutral",
1684
+ INFO: "info",
1685
+ DANGER: "danger",
1686
+ WARNING: "warning",
1687
+ SUCCESS: "success"
1688
+ };
1689
+
1690
+ const styles$H = ":host{--_color-stroke: var(--odx-color-input-control-stroke);--_color-background: var(--odx-color-input-control-fill);--_block-size: var(--odx-size-225);display:block}.base{display:flex;place-items:center;background-color:var(--_color-background);border:var(--odx-border-width-thin) solid var(--_color-stroke);block-size:var(--_block-size);border-radius:var(--odx-border-radius-controls);font-size:var(--odx-font-size-text-md);transition:var(--odx-transition-reduced);transition-property:background-color,border-color;padding-inline:var(--odx-size-50);gap:var(--odx-size-50);&:has(:focus-visible){--_color-stroke: var(--odx-color-input-control-stroke-pressed)}&:has(.input:hover){--_color-background: var(--odx-color-input-control-fill-hover);--_color-stroke: var(--odx-color-input-control-stroke-hover)}}.input{background-color:var(--odx-color-transparent);outline:none;border:none;flex:1 1 auto;block-size:100%;padding:0;color:inherit;font-weight:var(--odx-typography-font-weight-medium);&::placeholder{color:var(--odx-color-foreground-muted);font-weight:var(--odx-typography-font-weight-normal)}}::slotted(odx-icon[slot]){--size: var(--odx-typography-font-size-5)}";
1691
+
1692
+ var __defProp$K = Object.defineProperty;
1693
+ var __getOwnPropDesc$K = Object.getOwnPropertyDescriptor;
1694
+ var __typeError$h = (msg) => {
1695
+ throw TypeError(msg);
1696
+ };
1697
+ var __decorateClass$K = (decorators, target, key, kind) => {
1698
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$K(target, key) : target;
1699
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
1700
+ if (decorator = decorators[i])
1701
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
1702
+ if (kind && result) __defProp$K(target, key, result);
1703
+ return result;
1704
+ };
1705
+ var __accessCheck$h = (obj, member, msg) => member.has(obj) || __typeError$h("Cannot " + msg);
1706
+ var __privateGet$e = (obj, member, getter) => (__accessCheck$h(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
1707
+ var __privateAdd$h = (obj, member, value) => member.has(obj) ? __typeError$h("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
1708
+ var _handleInput, _clearInput;
1709
+ let OdxInputComponent = class extends FormControl(CustomElement) {
1710
+ constructor() {
1711
+ super(...arguments);
1712
+ this.clearable = true;
1713
+ this.placeholder = "";
1714
+ this.type = "text";
1715
+ __privateAdd$h(this, _handleInput, (event) => {
1716
+ this.value = event.target.value;
1717
+ this.dispatchEvent(new CustomEvent(event.type, { bubbles: true, composed: true, detail: event }));
1718
+ });
1719
+ __privateAdd$h(this, _clearInput, () => {
1720
+ this.value = "";
1721
+ });
1722
+ }
1723
+ render() {
1724
+ const clearButton = when(
1725
+ this.clearable && this.value,
1726
+ () => html`<odx-icon-button icon="core::error" @click=${__privateGet$e(this, _clearInput)} variant="ghost" tabindex="-1"></odx-icon-button>`
1727
+ );
1728
+ return html`
1729
+ <div class="base">
1730
+ <slot name="prefix"></slot>
1731
+ <input placeholder=${this.placeholder} class="input" .type=${this.type} ?disabled=${this.disabled} ?readonly=${this.readonly} .value=${this.value} @input=${__privateGet$e(this, _handleInput)} />
1732
+ ${clearButton}
1733
+ <slot name="suffix"></slot>
1734
+ </div>
1735
+ `;
1736
+ }
1737
+ };
1738
+ _handleInput = new WeakMap();
1739
+ _clearInput = new WeakMap();
1740
+ OdxInputComponent.formAssociated = true;
1741
+ __decorateClass$K([
1742
+ property({ type: Boolean })
1743
+ ], OdxInputComponent.prototype, "clearable", 2);
1744
+ __decorateClass$K([
1745
+ property()
1746
+ ], OdxInputComponent.prototype, "placeholder", 2);
1747
+ __decorateClass$K([
1748
+ property()
1749
+ ], OdxInputComponent.prototype, "type", 2);
1750
+ __decorateClass$K([
1751
+ property({ reflect: true })
1752
+ ], OdxInputComponent.prototype, "variant", 2);
1753
+ OdxInputComponent = __decorateClass$K([
1754
+ customElement("odx-input", [styles$H])
1755
+ ], OdxInputComponent);
1756
+
1757
+ const InputVariant = {
1758
+ SM: "sm",
1759
+ MD: "md",
1760
+ LG: "lg"
1761
+ };
1762
+
1763
+ const styles$G = ":host{display:-webkit-box;min-inline-size:min-content;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:var(--max, 2)}";
1764
+
1765
+ var __defProp$J = Object.defineProperty;
1766
+ var __getOwnPropDesc$J = Object.getOwnPropertyDescriptor;
1767
+ var __decorateClass$J = (decorators, target, key, kind) => {
1768
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$J(target, key) : target;
1769
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
1770
+ if (decorator = decorators[i])
1771
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
1772
+ if (kind && result) __defProp$J(target, key, result);
1773
+ return result;
1774
+ };
1775
+ let OdxLineClampComponent = class extends CustomElement {
1776
+ updated(props) {
1777
+ super.updated(props);
1778
+ if (typeof this.max === "number" && this.max > 0) {
1779
+ this.style.setProperty("--max", String(this.max));
1780
+ } else {
1781
+ this.style.removeProperty("--max");
1782
+ }
1783
+ if (typeof this.max === "number" && this.max > 0) {
1784
+ this.style.setProperty("--min", String(this.max));
1785
+ } else {
1786
+ this.style.removeProperty("--max");
1787
+ }
1788
+ }
1789
+ };
1790
+ __decorateClass$J([
1791
+ property({ type: Number })
1792
+ ], OdxLineClampComponent.prototype, "max", 2);
1793
+ OdxLineClampComponent = __decorateClass$J([
1794
+ customElement("odx-line-clamp", [styles$G])
1795
+ ], OdxLineClampComponent);
1796
+
1797
+ const styles$F = ":host{display:flex;flex-direction:column;padding:var(--odx-size-75);border-block-end:var(--odx-border-sm)}";
1798
+
1799
+ var __defProp$I = Object.defineProperty;
1800
+ var __getOwnPropDesc$I = Object.getOwnPropertyDescriptor;
1801
+ var __decorateClass$I = (decorators, target, key, kind) => {
1802
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$I(target, key) : target;
1803
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
1804
+ if (decorator = decorators[i])
1805
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
1806
+ if (kind && result) __defProp$I(target, key, result);
1807
+ return result;
1808
+ };
1809
+ let OdxListItemComponent = class extends BaseLink {
1810
+ render() {
1811
+ return html`
1812
+ <slot name="prefix"></slot>
1813
+ ${when(
1814
+ this.href,
1815
+ () => super.render(),
1816
+ () => html`<slot></slot>`
1817
+ )}
1818
+ <slot name="suffix"></slot>
1819
+ `;
1820
+ }
1821
+ };
1822
+ OdxListItemComponent = __decorateClass$I([
1823
+ customElement("odx-list-item", [styles$F])
1824
+ ], OdxListItemComponent);
1825
+
1826
+ const styles$E = "";
1827
+
1828
+ var __defProp$H = Object.defineProperty;
1829
+ var __getOwnPropDesc$H = Object.getOwnPropertyDescriptor;
1830
+ var __decorateClass$H = (decorators, target, key, kind) => {
1831
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$H(target, key) : target;
1832
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
1833
+ if (decorator = decorators[i])
1834
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
1835
+ if (kind && result) __defProp$H(target, key, result);
1836
+ return result;
1837
+ };
1838
+ let OdxListComponent = class extends CustomElement {
1839
+ render() {
1840
+ return html`
1841
+ <slot></slot>
1842
+ `;
1843
+ }
1844
+ };
1845
+ OdxListComponent = __decorateClass$H([
1846
+ customElement("odx-list", [styles$E])
1847
+ ], OdxListComponent);
1848
+
1849
+ const styles$D = ":host{--_overlay-fill-color: var(--odx-color-backdrop, rgba(255, 255, 255, .25));display:contents;overflow:hidden;border-radius:inherit}:host::part(overlay){display:flex;flex-direction:column;place-content:center;place-items:center;position:absolute;inset:0;pointer-events:none;opacity:0;visibility:hidden;transition:var(--odx-transition-reduced) allow-discrete;overflow:hidden;border-radius:inherit}:host::part(content){min-inline-size:var(--odx-size-225);text-align:center}:host([loading])::part(overlay){background-color:var(--_overlay-fill-color);z-index:9999;opacity:1;backdrop-filter:blur(var(--odx-size-12));pointer-events:all;visibility:visible}";
1850
+
1851
+ var __defProp$G = Object.defineProperty;
1852
+ var __getOwnPropDesc$G = Object.getOwnPropertyDescriptor;
1853
+ var __typeError$g = (msg) => {
1854
+ throw TypeError(msg);
1855
+ };
1856
+ var __decorateClass$G = (decorators, target, key, kind) => {
1857
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$G(target, key) : target;
1858
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
1859
+ if (decorator = decorators[i])
1860
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
1861
+ if (kind && result) __defProp$G(target, key, result);
1862
+ return result;
1863
+ };
1864
+ var __accessCheck$g = (obj, member, msg) => member.has(obj) || __typeError$g("Cannot " + msg);
1865
+ var __privateGet$d = (obj, member, getter) => (__accessCheck$g(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
1866
+ var __privateAdd$g = (obj, member, value) => member.has(obj) ? __typeError$g("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
1867
+ var __privateSet$2 = (obj, member, value, setter) => (__accessCheck$g(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
1868
+ var _loadingContainerPosition;
1869
+ const LOADING_OVERLAY_HOST_DIRECTIVE = "odx-loading-overlay-host";
1870
+ let OdxLoadingOverlayComponent = class extends WithLoadingState(CustomElement) {
1871
+ constructor() {
1872
+ super(...arguments);
1873
+ __privateAdd$g(this, _loadingContainerPosition, "");
1874
+ }
1875
+ get loadingContainer() {
1876
+ return this.parentElement ?? this;
1877
+ }
1878
+ disconnectedCallback() {
1879
+ super.disconnectedCallback?.();
1880
+ this.hideOverlay();
1881
+ }
1882
+ async updated(props) {
1883
+ if (props.has("loading")) {
1884
+ if (this.loading) {
1885
+ this.showOverlay();
1886
+ } else {
1887
+ await waitForAnimations(this.overlay);
1888
+ this.hideOverlay();
1889
+ }
1890
+ }
1891
+ }
1892
+ render() {
1893
+ return html`
1894
+ <div part="overlay">
1895
+ <div class="content">
1896
+ <odx-loading-spinner></odx-loading-spinner>
1897
+ </div>
1898
+ </div>
1899
+ `;
1900
+ }
1901
+ showOverlay() {
1902
+ this.loadingContainer.toggleAttribute(LOADING_OVERLAY_HOST_DIRECTIVE, true);
1903
+ __privateSet$2(this, _loadingContainerPosition, window.getComputedStyle(this.loadingContainer).position);
1904
+ if (__privateGet$d(this, _loadingContainerPosition) !== "static") return;
1905
+ this.loadingContainer.style.position = "relative";
1906
+ this.loadingContainer.inert = true;
1907
+ }
1908
+ hideOverlay() {
1909
+ this.loadingContainer.toggleAttribute(LOADING_OVERLAY_HOST_DIRECTIVE, false);
1910
+ if (__privateGet$d(this, _loadingContainerPosition) !== "static") return;
1911
+ this.loadingContainer.style.position = "";
1912
+ this.loadingContainer.inert = false;
1913
+ }
1914
+ };
1915
+ _loadingContainerPosition = new WeakMap();
1916
+ __decorateClass$G([
1917
+ query('[part="overlay"]', true)
1918
+ ], OdxLoadingOverlayComponent.prototype, "overlay", 2);
1919
+ OdxLoadingOverlayComponent = __decorateClass$G([
1920
+ customElement("odx-loading-overlay", [styles$D])
1921
+ ], OdxLoadingOverlayComponent);
1922
+
1923
+ const styles$C = ":host{--_animation-duration: 1.5s;--_animation-delay: 0s;--_size: var(--odx-size-225);--_space: var(--odx-size-37);--_track-size: calc(var(--odx-size-37) - var(--odx-size-px));--_track-color: var(--odx-color-transparent-pressed);display:flex;place-content:center;place-items:center;color:inherit;font-size:var(--_size);block-size:1em}.base{display:block;block-size:100%;inline-size:100%;aspect-ratio:1;animation:loading-spinner-rotation-animation 1.5s linear infinite}:host(:not([variant=\"dots\"])){inline-size:1em;.track,.indicator{stroke-width:var(--_track-size)}.track{stroke:var(--_track-color)}.indicator{stroke:currentColor;color:inherit;stroke-dasharray:90,180;stroke-dashoffset:-5;animation:loading-spinner-animation 1.5s ease-in-out infinite;stroke-linecap:round}:not(svg){transform-origin:0px 0px}}:host([variant=\"dots\"]){gap:calc(var(--_space) / 2);padding:var(--_space);animation:loading-spinner-dots-entry-animation .25s linear both;.indicator{background-color:currentColor;border-radius:50%;block-size:calc(var(--_size) / 3);flex:0 0 calc(var(--_size) / 3);z-index:3;animation:loading-spinner-dots-animation var(--_animation-duration) var(--_animation-delay) infinite cubic-bezier(.96,.21,.41,.76) forwards;&:nth-child(1){--_animation-delay: calc(-1 * var(--_animation-duration) / 6)}&:nth-child(2){--_animation-delay: calc(-1 * var(--_animation-duration) / 12)}&:nth-child(3){--_animation-delay: 0s}}}@keyframes loading-spinner-animation{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}@keyframes loading-spinner-rotation-animation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes loading-spinner-dots-entry-animation{0%{opacity:0}to{opacity:1}}@keyframes loading-spinner-dots-animation{0%,75%,to{transform:scale(.667);background-color:var(--odx-color-transparent-pressed)}50%{transform:scale(1);background-color:currentColor}}";
1924
+
1925
+ var __defProp$F = Object.defineProperty;
1926
+ var __getOwnPropDesc$F = Object.getOwnPropertyDescriptor;
1927
+ var __typeError$f = (msg) => {
1928
+ throw TypeError(msg);
1929
+ };
1930
+ var __decorateClass$F = (decorators, target, key, kind) => {
1931
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$F(target, key) : target;
1932
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
1933
+ if (decorator = decorators[i])
1934
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
1935
+ if (kind && result) __defProp$F(target, key, result);
1936
+ return result;
1937
+ };
1938
+ var __accessCheck$f = (obj, member, msg) => member.has(obj) || __typeError$f("Cannot " + msg);
1939
+ var __privateAdd$f = (obj, member, value) => member.has(obj) ? __typeError$f("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
1940
+ var __privateMethod$8 = (obj, member, method) => (__accessCheck$f(obj, member, "access private method"), method);
1941
+ var _OdxLoadingSpinnerComponent_instances, renderSpinner_fn, renderDots_fn;
1942
+ let OdxLoadingSpinnerComponent = class extends CustomElement {
1943
+ constructor() {
1944
+ super(...arguments);
1945
+ __privateAdd$f(this, _OdxLoadingSpinnerComponent_instances);
1946
+ }
1947
+ render() {
1948
+ if (this.variant === "dots") {
1949
+ return __privateMethod$8(this, _OdxLoadingSpinnerComponent_instances, renderDots_fn).call(this);
1950
+ }
1951
+ return __privateMethod$8(this, _OdxLoadingSpinnerComponent_instances, renderSpinner_fn).call(this);
1952
+ }
1953
+ };
1954
+ _OdxLoadingSpinnerComponent_instances = new WeakSet();
1955
+ renderSpinner_fn = function() {
1956
+ return html`
1957
+ <svg class="base" role="progressbar" aria-label="Loading" fill="none" viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg">
1958
+ <circle class="track" cx="24" cy="24" r="20" fill="none"></circle>
1959
+ <circle class="indicator" cx="24" cy="24" r="20" fill="none"></circle>
1960
+ </svg>
1961
+ `;
1962
+ };
1963
+ renderDots_fn = function() {
1964
+ return html`
1965
+ <div class="indicator"></div>
1966
+ <div class="indicator"></div>
1967
+ <div class="indicator"></div>
1968
+ `;
1969
+ };
1970
+ __decorateClass$F([
1971
+ property({ reflect: true })
1972
+ ], OdxLoadingSpinnerComponent.prototype, "variant", 2);
1973
+ OdxLoadingSpinnerComponent = __decorateClass$F([
1974
+ customElement("odx-loading-spinner", [styles$C])
1975
+ ], OdxLoadingSpinnerComponent);
1976
+
1977
+ const styles$B = ":host{aspect-ratio:92 / 36;background-color:currentColor;block-size:var(--_logo-block-size);display:inline-block;mask-image:url(\"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20?%3e%3csvg%20id='Layer_1'%20data-name='Layer%201'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2091.6%2035.43'%3e%3cpath%20d='m81.18,29.07h5.63v-14.43c0-1.06,0-1.38.21-1.7.32-.74,1.17-1.17,2.23-1.17.96,0,1.59.21,2.34.74v-4.24c-6.27.11-8.29.53-10.41,2.23v18.56Zm-12.11-10.93v-4.24c0-1.59.74-2.44,2.34-2.44,1.49,0,2.34.85,2.34,2.33v4.35h-4.68Zm10.31,3.29v-8.06c0-3.4-1.81-4.99-5.63-4.99h-4.68c-2.02,0-2.87.21-3.93,1.06-1.06.96-1.7,2.33-1.7,3.93v10.71c0,1.48.43,2.55,1.38,3.61,1.06,1.06,2.02,1.38,4.25,1.38h10.2v-4.24c-2.87.85-4.57,1.06-6.69,1.06-2.44,0-3.51-.53-3.51-1.91v-2.55h10.31Zm-27.63,6.37c0-1.59.74-2.44,2.34-2.44s2.44.85,2.44,2.44v2.33c0,1.38-.85,2.23-2.34,2.23-1.59,0-2.44-.85-2.44-2.23v-2.33Zm10.41-.53c0-1.59-.32-2.65-1.17-3.61-1.06-1.17-2.23-1.49-4.46-1.49h-4.68c-2.12,0-2.97.21-4.04,1.06-1.06.95-1.7,2.44-1.7,4.03v3.08c0,1.49.53,2.76,1.38,3.61,1.06,1.17,2.02,1.48,4.36,1.48h4.68c2.02,0,2.98-.21,4.04-1.06,1.06-.95,1.59-2.12,1.59-4.03v-3.08Zm-10.41-13.58c0-1.38.85-2.23,2.44-2.23s2.44.85,2.44,2.23v2.44c0,1.38-.96,2.23-2.44,2.23-1.59,0-2.44-.85-2.44-2.23v-2.44Zm9.99-5.3h-9.99c-1.91,0-2.66.21-3.72,1.06-1.06.96-1.59,2.33-1.59,3.93v3.08c0,1.27.43,2.55,1.28,3.5,1.06,1.17,1.91,1.49,4.04,1.49h4.57c2.02,0,2.87-.32,3.83-1.06,1.06-.95,1.59-2.23,1.59-3.93v-8.06Zm-22.63,17.4h-2.44c-.96,0-1.7-.32-2.13-1.06-.21-.32-.21-.42-.21-1.38v-1.91c0-1.59.74-2.33,2.34-2.33h2.44v6.68Zm0-9.97h-4.89c-1.91,0-2.76.21-3.72,1.17-1.06.85-1.59,2.12-1.59,3.82v3.29c0,1.48.32,2.55,1.17,3.5,1.06,1.17,2.02,1.48,4.25,1.48h10.52v-15.81c0-1.38-.43-2.55-1.38-3.5-1.17-1.17-2.13-1.49-4.25-1.49h-8.5v4.24c2.13-.85,3.51-1.17,5.42-1.17,2.02,0,2.97.64,2.97,2.02v2.44Zm2.34-15.81c-1.81,0-3.19,1.38-3.19,3.08,0,1.8,1.38,3.18,3.19,3.18,1.7,0,3.08-1.38,3.08-3.18,0-1.7-1.38-3.08-3.08-3.08Zm-7.55,0c-1.81,0-3.19,1.38-3.19,3.08,0,1.8,1.38,3.18,3.19,3.18,1.7,0,3.08-1.38,3.08-3.18,0-1.7-1.38-3.08-3.08-3.08Zm-14.77,29.07h5.63v-14.43c0-1.06,0-1.38.21-1.7.32-.74,1.17-1.17,2.23-1.17.96,0,1.59.21,2.34.74v-4.24c-6.27.11-8.29.53-10.41,2.23v18.56ZM0,.72v2.97h9.14c1.06,0,1.59.21,2.13.74.43.53.43.74.43,2.65v15.29c0,2.87-.53,3.4-3.08,3.4h-2.55V6.67H0v22.4h11.26c2.66,0,3.4-.21,4.68-1.49,1.17-1.17,1.38-2.02,1.38-5.31V6.24c0-2.02-.21-2.76-1.06-3.82-1.06-1.17-2.44-1.7-4.36-1.7H0Z'%20/%3e%3c/svg%3e\");mask-repeat:no-repeat;mask-origin:content-box;mask-position:center center;margin-block:var(--_logo-spacing)}:host([compact]){aspect-ratio:1;mask-image:url(\"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2017%2028'%3e%3cpath%20d='M0%200v2.97h9.14c1.06%200%201.59.21%202.13.74.43.53.43.74.43%202.65v15.29c0%202.87-.53%203.4-3.08%203.4H6.07V5.95H0v22.4h11.26c2.66%200%203.4-.21%204.68-1.49%201.17-1.17%201.38-2.02%201.38-5.31V5.52c0-2.02-.21-2.76-1.06-3.82C15.2.53%2013.82%200%2011.9%200H0Z'%20/%3e%3c/svg%3e\")}:host([size=\"xs\"]){--_logo-block-size: calc(var(--odx-size-150) - 2 * var(--odx-size-25));--_logo-spacing: var(--odx-size-25)}:host,:host([size=\"sm\"]){--_logo-block-size: var(--odx-size-150);--_logo-spacing: var(--odx-size-37)}:host([size=\"md\"]){--_logo-block-size: var(--odx-size-225);--_logo-spacing: var(--odx-size-37)}:host([size=\"lg\"]){--_logo-block-size: var(--odx-size-300);--_logo-spacing: var(--odx-size-37)}:host([size=\"xl\"]){--_logo-block-size: var(--odx-size-400);--_logo-spacing: var(--odx-size-37)}";
1978
+
1979
+ var __defProp$E = Object.defineProperty;
1980
+ var __getOwnPropDesc$E = Object.getOwnPropertyDescriptor;
1981
+ var __decorateClass$E = (decorators, target, key, kind) => {
1982
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$E(target, key) : target;
1983
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
1984
+ if (decorator = decorators[i])
1985
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
1986
+ if (kind && result) __defProp$E(target, key, result);
1987
+ return result;
1988
+ };
1989
+ let OdxLogoComponent = class extends CustomElement {
1990
+ constructor() {
1991
+ super(...arguments);
1992
+ this.compact = false;
1993
+ }
1994
+ connectedCallback() {
1995
+ super.connectedCallback?.();
1996
+ this.ariaLabel ||= "Dräger";
1997
+ this.ariaRoleDescription ||= "Logo";
1998
+ this.role = "img";
1999
+ this.translate = false;
2000
+ }
2001
+ };
2002
+ __decorateClass$E([
2003
+ property({ reflect: true })
2004
+ ], OdxLogoComponent.prototype, "size", 2);
2005
+ __decorateClass$E([
2006
+ property({ type: Boolean, reflect: true })
2007
+ ], OdxLogoComponent.prototype, "compact", 2);
2008
+ OdxLogoComponent = __decorateClass$E([
2009
+ customElement("odx-logo", [styles$B])
2010
+ ], OdxLogoComponent);
2011
+
2012
+ const LogoSize = {
2013
+ XS: "xs",
2014
+ SM: "sm",
2015
+ MD: "md",
2016
+ LG: "lg",
2017
+ XL: "xl"
2018
+ };
2019
+
2020
+ var __defProp$D = Object.defineProperty;
2021
+ var __getOwnPropDesc$D = Object.getOwnPropertyDescriptor;
2022
+ var __typeError$e = (msg) => {
2023
+ throw TypeError(msg);
2024
+ };
2025
+ var __decorateClass$D = (decorators, target, key, kind) => {
2026
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$D(target, key) : target;
2027
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
2028
+ if (decorator = decorators[i])
2029
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
2030
+ if (kind && result) __defProp$D(target, key, result);
2031
+ return result;
2032
+ };
2033
+ var __accessCheck$e = (obj, member, msg) => member.has(obj) || __typeError$e("Cannot " + msg);
2034
+ var __privateGet$c = (obj, member, getter) => (__accessCheck$e(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
2035
+ var __privateAdd$e = (obj, member, value) => member.has(obj) ? __typeError$e("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
2036
+ var _handleClick$2;
2037
+ let OdxMainMenuButtonComponent = class extends CustomElement {
2038
+ constructor() {
2039
+ super(...arguments);
2040
+ __privateAdd$e(this, _handleClick$2, () => {
2041
+ document.querySelector("odx-main-menu")?.open();
2042
+ });
2043
+ }
2044
+ render() {
2045
+ return html`
2046
+ <odx-icon-button aria-label="Open main menu" icon="core::menu" variant="ghost" @click=${__privateGet$c(this, _handleClick$2)}>
2047
+ </odx-icon-button>
2048
+ `;
2049
+ }
2050
+ };
2051
+ _handleClick$2 = new WeakMap();
2052
+ OdxMainMenuButtonComponent = __decorateClass$D([
2053
+ customElement("odx-main-menu-button", [])
2054
+ ], OdxMainMenuButtonComponent);
2055
+
2056
+ const styles$A = ":host{--_color-fill: var(--odx-palette-transparent);--_color-text: inherit;--_color-outline: var(--odx-palette-transparent);user-select:none}.base{display:flex;place-items:center;background-color:var(--_color-fill);color:var(--_color-text);gap:var(--odx-size-50);block-size:var(--odx-size-300);padding-inline:var(--odx-size-100);font-weight:var(--odx-font-weight-medium);border-radius:var(--odx-border-radius-sm);outline:var(--odx-focus-ring-outline);outline-offset:var(--odx-focus-ring-offset);outline-color:var(--_color-outline);transition:var(--odx-transition-default);text-decoration:none;&:focus-visible{--_color-outline: var(--odx-focus-ring-color)}}:host(:hover){--_color-fill: var(--odx-color-foreground-highlight)}:host(:is([active],:active)){--_color-fill: var(--odx-color-foreground-highlight-pressed)}:host([aria-disabled=\"true\"]){--_color-text: var(--odx-color-disabled-foreground-brand);pointer-events:none}";
2057
+
2058
+ var __defProp$C = Object.defineProperty;
2059
+ var __getOwnPropDesc$C = Object.getOwnPropertyDescriptor;
2060
+ var __decorateClass$C = (decorators, target, key, kind) => {
2061
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$C(target, key) : target;
2062
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
2063
+ if (decorator = decorators[i])
2064
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
2065
+ if (kind && result) __defProp$C(target, key, result);
2066
+ return result;
2067
+ };
2068
+ let OdxMainMenuLinkComponent = class extends BaseLink {
2069
+ };
2070
+ OdxMainMenuLinkComponent = __decorateClass$C([
2071
+ customElement("odx-main-menu-link", [styles$A])
2072
+ ], OdxMainMenuLinkComponent);
2073
+
2074
+ var __defProp$B = Object.defineProperty;
2075
+ var __getOwnPropDesc$B = Object.getOwnPropertyDescriptor;
2076
+ var __decorateClass$B = (decorators, target, key, kind) => {
2077
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$B(target, key) : target;
2078
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
2079
+ if (decorator = decorators[i])
2080
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
2081
+ if (kind && result) __defProp$B(target, key, result);
2082
+ return result;
2083
+ };
2084
+ let OdxMainMenuSubtitleComponent = class extends CustomElement {
2085
+ constructor() {
2086
+ super(...arguments);
2087
+ this.slot = "subtitle";
2088
+ }
2089
+ render() {
2090
+ return html`
2091
+ <odx-text size="md">
2092
+ <slot></slot>
2093
+ </odx-text>
2094
+ `;
2095
+ }
2096
+ };
2097
+ OdxMainMenuSubtitleComponent = __decorateClass$B([
2098
+ customElement("odx-main-menu-subtitle")
2099
+ ], OdxMainMenuSubtitleComponent);
2100
+
2101
+ var __defProp$A = Object.defineProperty;
2102
+ var __getOwnPropDesc$A = Object.getOwnPropertyDescriptor;
2103
+ var __decorateClass$A = (decorators, target, key, kind) => {
2104
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$A(target, key) : target;
2105
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
2106
+ if (decorator = decorators[i])
2107
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
2108
+ if (kind && result) __defProp$A(target, key, result);
2109
+ return result;
2110
+ };
2111
+ let OdxMainMenuTitleComponent = class extends CustomElement {
2112
+ constructor() {
2113
+ super(...arguments);
2114
+ this.slot = "title";
2115
+ }
2116
+ render() {
2117
+ return html`
2118
+ <odx-title size="sm">
2119
+ <slot></slot>
2120
+ </odx-title>
2121
+ `;
2122
+ }
2123
+ };
2124
+ OdxMainMenuTitleComponent = __decorateClass$A([
2125
+ customElement("odx-main-menu-title")
2126
+ ], OdxMainMenuTitleComponent);
2127
+
2128
+ const styles$z = ":host{--odx-link-color: var(--odx-color-foreground-light);--odx-link-color-hover: var(--odx-color-foreground-light);--odx-link-color-disabled: var(--odx-color-disabled-foreground-brand);--_transition-duration: var(--odx-motion-duration-default);grid-template-rows:auto 1fr auto auto;block-size:100%;inline-size:var(--odx-main-menu-max-width, min(100dvw, 384px));border:none;background-color:var(--odx-color-background-draeger);color:var(--odx-color-foreground-light);margin:0;padding:0;transform:translate(-100%);box-shadow:var(--odx-shadow-level-2);transition:transform var(--_transition-duration) allow-discrete,overlay var(--_transition-duration) allow-discrete,display var(--_transition-duration) allow-discrete}:host(:popover-open){display:grid;opacity:1;transform:translate(0);@starting-style{opacity:0;transform:translate(-100%)}}:host::backdrop{background-color:var(--odx-color-backdrop);backdrop-filter:blur(0);opacity:0;transition:backdrop-filter var(--_transition-duration),opacity var(--_transition-duration);cursor:default}:host(:popover-open)::backdrop{backdrop-filter:blur(var(--odx-elevation-blur));opacity:1}@starting-style{:host(:popover-open)::backdrop{backdrop-filter:blur(0);opacity:0}}[part~=navigation]{padding:var(--odx-size-75);overflow-y:auto}[part~=header]{padding-inline:var(--odx-size-150);padding-block-start:var(--odx-size-75);padding-block-end:clamp(0px,4dvh - calc(var(--odx-size-75)),var(--odx-size-75))}[part~=link-navigation],[part~=footer]{padding:var(--odx-size-150);padding-block:clamp(var(--odx-size-75),4dvh,var(--odx-size-150))}[part~=link-navigation]{padding-block-end:0;padding-block-start:var(--odx-size-75);column-gap:var(--odx-size-100)}";
2129
+
2130
+ var __defProp$z = Object.defineProperty;
2131
+ var __getOwnPropDesc$z = Object.getOwnPropertyDescriptor;
2132
+ var __typeError$d = (msg) => {
2133
+ throw TypeError(msg);
2134
+ };
2135
+ var __decorateClass$z = (decorators, target, key, kind) => {
2136
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$z(target, key) : target;
2137
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
2138
+ if (decorator = decorators[i])
2139
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
2140
+ if (kind && result) __defProp$z(target, key, result);
2141
+ return result;
2142
+ };
2143
+ var __accessCheck$d = (obj, member, msg) => member.has(obj) || __typeError$d("Cannot " + msg);
2144
+ var __privateGet$b = (obj, member, getter) => (__accessCheck$d(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
2145
+ var __privateAdd$d = (obj, member, value) => member.has(obj) ? __typeError$d("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
2146
+ var _focusTrap, _handleSlotChange$4, _handleToggle;
2147
+ let OdxMainMenuComponent = class extends CustomElement {
2148
+ constructor() {
2149
+ super();
2150
+ __privateAdd$d(this, _focusTrap, new FocusTrapController(this));
2151
+ __privateAdd$d(this, _handleSlotChange$4, () => {
2152
+ for (const link of this.links) {
2153
+ link.slot ||= "link-navigation";
2154
+ }
2155
+ });
2156
+ __privateAdd$d(this, _handleToggle, ({ newState }) => {
2157
+ __privateGet$b(this, _focusTrap).toggle(newState === "open");
2158
+ });
2159
+ if (!isServer) {
2160
+ this.addEventListener("toggle", __privateGet$b(this, _handleToggle));
2161
+ }
2162
+ }
2163
+ connectedCallback() {
2164
+ super.connectedCallback?.();
2165
+ this.popover = "auto";
2166
+ }
2167
+ toggle() {
2168
+ this.togglePopover();
2169
+ }
2170
+ open() {
2171
+ this.showPopover();
2172
+ }
2173
+ close() {
2174
+ this.hidePopover();
2175
+ }
2176
+ render() {
2177
+ return html`
2178
+ <div part="header">
2179
+ <slot name="title"></slot>
2180
+ <slot name="subtitle"></slot>
2181
+ </div>
2182
+ <nav part="navigation">
2183
+ <odx-stack gap="md" align="stretch" vertical>
2184
+ <slot @slotchange=${__privateGet$b(this, _handleSlotChange$4)}></slot>
2185
+ </odx-stack>
2186
+ </nav>
2187
+ <odx-stack part="link-navigation" gap="xs" wrap horizontal justify="start">
2188
+ <slot name="link-navigation"></slot>
2189
+ </odx-stack>
2190
+ <div part="footer">
2191
+ <odx-logo size="sm"></odx-logo>
2192
+ </div>
2193
+ `;
2194
+ }
2195
+ };
2196
+ _focusTrap = new WeakMap();
2197
+ _handleSlotChange$4 = new WeakMap();
2198
+ _handleToggle = new WeakMap();
2199
+ __decorateClass$z([
2200
+ queryAssignedElements({ selector: "odx-link", flatten: true })
2201
+ ], OdxMainMenuComponent.prototype, "links", 2);
2202
+ OdxMainMenuComponent = __decorateClass$z([
2203
+ customElement("odx-main-menu", [styles$z])
2204
+ ], OdxMainMenuComponent);
2205
+
2206
+ const styles$y = "@layer base{.base{place-content:flex-start}}";
2207
+
2208
+ var __defProp$y = Object.defineProperty;
2209
+ var __getOwnPropDesc$y = Object.getOwnPropertyDescriptor;
2210
+ var __decorateClass$y = (decorators, target, key, kind) => {
2211
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$y(target, key) : target;
2212
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
2213
+ if (decorator = decorators[i])
2214
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
2215
+ if (kind && result) __defProp$y(target, key, result);
2216
+ return result;
2217
+ };
2218
+ let OdxMenuItemComponent = class extends BaseButtonComponent {
2219
+ renderContent() {
2220
+ return html`
2221
+ ${when(!this.loading && this.icon, (icon) => html`<odx-icon name="${icon}"></odx-icon>`)}
2222
+ ${when(this.loading, () => this.renderSpinner())}
2223
+ <odx-line-clamp class="content" .max=${2}>
2224
+ <slot></slot>
2225
+ </odx-line-clamp>
2226
+ <slot name="suffix"></slot>
2227
+ `;
2228
+ }
2229
+ connectedCallback() {
2230
+ super.connectedCallback?.();
2231
+ this.role ||= "menuitem";
2232
+ }
2233
+ renderOverlay() {
2234
+ return nothing;
2235
+ }
2236
+ };
2237
+ __decorateClass$y([
2238
+ property()
2239
+ ], OdxMenuItemComponent.prototype, "icon", 2);
2240
+ OdxMenuItemComponent = __decorateClass$y([
2241
+ customElement("odx-menu-item", [styles$y])
2242
+ ], OdxMenuItemComponent);
2243
+
2244
+ const styles$x = ":host{display:flex;place-items:center;padding-inline:var(--odx-size-50);user-select:none;font-weight:var(--odx-typography-font-weight-medium);gap:var(--odx-size-50)}@layer baes{odx-icon,::slotted(odx-icon){--size: var(--odx-typography-font-size-5);margin-inline:}}";
2245
+
2246
+ var __defProp$x = Object.defineProperty;
2247
+ var __getOwnPropDesc$x = Object.getOwnPropertyDescriptor;
2248
+ var __decorateClass$x = (decorators, target, key, kind) => {
2249
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$x(target, key) : target;
2250
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
2251
+ if (decorator = decorators[i])
2252
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
2253
+ if (kind && result) __defProp$x(target, key, result);
2254
+ return result;
2255
+ };
2256
+ let OdxMenuLabelComponent = class extends CustomElement {
2257
+ };
2258
+ OdxMenuLabelComponent = __decorateClass$x([
2259
+ customElement("odx-menu-label", [styles$x])
2260
+ ], OdxMenuLabelComponent);
2261
+
2262
+ const styles$w = ":host{--min-inline-size: 160px;--max-inline-size: 280px;--_gap: var(--odx-size-37)}odx-popover{--color-background: var(--odx-color-background-main);--_outer-padding: var(--odx-size-50)}.base{display:flex;flex-direction:column;block-size:100%;gap:var(--_gap);max-inline-size:var(--max-inline-size);min-inline-size:var(--min-inline-size)}::slotted(odx-separator){--block-space: calc(-1 * var(--_gap) / 2)}::slotted(odx-button){inline-size:100%;margin:0}";
2263
+
2264
+ var __defProp$w = Object.defineProperty;
2265
+ var __getOwnPropDesc$w = Object.getOwnPropertyDescriptor;
2266
+ var __typeError$c = (msg) => {
2267
+ throw TypeError(msg);
2268
+ };
2269
+ var __decorateClass$w = (decorators, target, key, kind) => {
2270
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$w(target, key) : target;
2271
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
2272
+ if (decorator = decorators[i])
2273
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
2274
+ if (kind && result) __defProp$w(target, key, result);
2275
+ return result;
2276
+ };
2277
+ var __accessCheck$c = (obj, member, msg) => member.has(obj) || __typeError$c("Cannot " + msg);
2278
+ var __privateGet$a = (obj, member, getter) => (__accessCheck$c(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
2279
+ var __privateAdd$c = (obj, member, value) => member.has(obj) ? __typeError$c("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
2280
+ var _tabindexController, _handleReferenceInteraction, _handleClick$1, _handleKeyDown, _handleReferenceKeyDown;
2281
+ const MENU_ITEM_ROLES = ["menuitem", "menuitemcheckbox", "menuitemradio"];
2282
+ const MENU_ITEMS_SELECTOR = MENU_ITEM_ROLES.map((role) => `[role="${role}"]`).join(",");
2283
+ let OdxMenuComponent = class extends PopoverHost(CustomElement) {
2284
+ constructor() {
2285
+ super(...arguments);
2286
+ __privateAdd$c(this, _tabindexController, new RovingTabindexController(this, {
2287
+ elements: () => this.getItems(),
2288
+ direction: "vertical"
2289
+ }));
2290
+ __privateAdd$c(this, _handleReferenceInteraction, () => {
2291
+ this.togglePopover();
2292
+ });
2293
+ __privateAdd$c(this, _handleClick$1, (event) => {
2294
+ const eventPath = event.composedPath();
2295
+ const closestMenu = eventPath.find((element) => element.localName === this.localName);
2296
+ if (this !== closestMenu) return;
2297
+ const item = eventPath.find((element) => this.isMenuItem(element));
2298
+ if (!item) return;
2299
+ this.emit("select", { detail: { item } });
2300
+ this.hidePopover();
2301
+ });
2302
+ __privateAdd$c(this, _handleKeyDown, (event) => {
2303
+ const { actions } = getKeyboardEventInfo(event);
2304
+ if ((actions.tab || actions.backTab) && this.isPopoverOpen()) {
2305
+ event?.preventDefault();
2306
+ event.stopPropagation();
2307
+ this.hidePopover();
2308
+ return;
2309
+ }
2310
+ if (!actions.enter && !actions.space) return;
2311
+ const [activeItem] = this.getItems().filter((item) => item.tabIndex === 0);
2312
+ if (!activeItem) return;
2313
+ activeItem.click();
2314
+ });
2315
+ __privateAdd$c(this, _handleReferenceKeyDown, (event) => {
2316
+ const { direction } = getKeyboardEventInfo(event);
2317
+ if (!direction.down) return;
2318
+ this.showPopover();
2319
+ });
2320
+ }
2321
+ getItems() {
2322
+ return Array.from(this.querySelectorAll(MENU_ITEMS_SELECTOR));
2323
+ }
2324
+ connectedCallback() {
2325
+ super.connectedCallback?.();
2326
+ this.role ||= "menu";
2327
+ this.togglePopover(true);
2328
+ }
2329
+ mountPopover(referenceElement) {
2330
+ super.mountPopover(referenceElement);
2331
+ referenceElement?.addEventListener("click", __privateGet$a(this, _handleReferenceInteraction));
2332
+ referenceElement?.addEventListener("keydown", __privateGet$a(this, _handleReferenceKeyDown));
2333
+ }
2334
+ unmountPopover(referenceElement) {
2335
+ referenceElement.removeEventListener("keydown", __privateGet$a(this, _handleReferenceKeyDown));
2336
+ referenceElement.removeEventListener("click", __privateGet$a(this, _handleReferenceInteraction));
2337
+ super.unmountPopover(referenceElement);
2338
+ }
2339
+ onBeforePopoverShow() {
2340
+ __privateGet$a(this, _tabindexController).currentIndex = 0;
2341
+ __privateGet$a(this, _tabindexController).focus();
2342
+ }
2343
+ onPopoverShow() {
2344
+ this.addEventListener("keydown", __privateGet$a(this, _handleKeyDown));
2345
+ }
2346
+ onBeforePopoverHide() {
2347
+ this.removeEventListener("keydown", __privateGet$a(this, _handleKeyDown));
2348
+ }
2349
+ isMenuItem(element) {
2350
+ return MENU_ITEM_ROLES.includes(element.getAttribute?.("role") ?? "");
2351
+ }
2352
+ render() {
2353
+ return html`
2354
+ <odx-popover>
2355
+ <div class="base">
2356
+ <slot @click=${__privateGet$a(this, _handleClick$1)}></slot>
2357
+ </div>
2358
+ </odx-popover>
2359
+ `;
2360
+ }
2361
+ };
2362
+ _tabindexController = new WeakMap();
2363
+ _handleReferenceInteraction = new WeakMap();
2364
+ _handleClick$1 = new WeakMap();
2365
+ _handleKeyDown = new WeakMap();
2366
+ _handleReferenceKeyDown = new WeakMap();
2367
+ OdxMenuComponent = __decorateClass$w([
2368
+ customElement("odx-menu", [styles$w])
2369
+ ], OdxMenuComponent);
2370
+
2371
+ const styles$v = "@layer base{:host{--_margin-block: 0}.base{text-align:start;place-content:flex-start}}@layer state{:host([aria-current]){--_color-background: var(--odx-color-selected);--_color-background-hover: var(--odx-color-selected-hover)}:host([aria-current][aria-disabled=\"true\"]){--_color-background: var(--odx-color-disabled-fill-selected);--_color-foreground: var(--odx-color-disabled-foreground-selected);cursor:not-allowed}::slotted(*){flex:0 0 auto}::slotted([slot=\"suffix\"]){margin-inline-start:auto}}@layer variant{:host([size=\"lg\"]){--_block-size: var(--odx-size-300);--_padding-inline: var(--odx-size-100);--_font-size: var(--odx-typography-font-size-3);--_icon-size: var(--odx-size-200);--_margin-block: 0}}";
2372
+
2373
+ var __defProp$v = Object.defineProperty;
2374
+ var __getOwnPropDesc$v = Object.getOwnPropertyDescriptor;
2375
+ var __decorateClass$v = (decorators, target, key, kind) => {
2376
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$v(target, key) : target;
2377
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
2378
+ if (decorator = decorators[i])
2379
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
2380
+ if (kind && result) __defProp$v(target, key, result);
2381
+ return result;
2382
+ };
2383
+ let OdxNavigationItemComponent = class extends BaseButtonComponent {
2384
+ constructor() {
2385
+ super(...arguments);
2386
+ this.selected = false;
2387
+ this.ariaSelectedValue = "page";
2388
+ }
2389
+ willUpdate(props) {
2390
+ super.willUpdate(props);
2391
+ if (props.has("selected") || props.has("ariaSelectedValue")) {
2392
+ this.ariaCurrent = this.selected ? this.ariaSelectedValue : null;
2393
+ }
2394
+ }
2395
+ };
2396
+ __decorateClass$v([
2397
+ property({ reflect: true })
2398
+ ], OdxNavigationItemComponent.prototype, "size", 2);
2399
+ __decorateClass$v([
2400
+ property({ type: Boolean })
2401
+ ], OdxNavigationItemComponent.prototype, "selected", 2);
2402
+ __decorateClass$v([
2403
+ property()
2404
+ ], OdxNavigationItemComponent.prototype, "ariaSelectedValue", 2);
2405
+ OdxNavigationItemComponent = __decorateClass$v([
2406
+ customElement("odx-navigation-item", [styles$v])
2407
+ ], OdxNavigationItemComponent);
2408
+
2409
+ const NavigationItemSize = {
2410
+ MD: "md",
2411
+ LG: "lg"
2412
+ };
2413
+
2414
+ const styles$u = ":host{--_color-background: var(--odx-palette-transparent);--_color-foreground: inherit;display:inline-flex;place-items:center;padding:var(--odx-size-37) var(--odx-size-75);cursor:pointer;gap:var(--odx-size-75);border-radius:var(--odx-border-radius-controls);transition:var(--odx-transition-reduced);outline:var(--odx-outline-focus);outline-offset:var(--odx-outline-offset-focus);background-color:var(--_color-background);transition-property:background-color,color,outline-color;user-select:none;outline:var(--odx-focus-ring-outline);outline-offset:var(--odx-focus-ring-offset);color:var(--_color-foreground)}odx-checkbox{margin:0}:host(:hover){--_color-background: var(--odx-color-transparent-hover)}:host([odx-active]),:host(:active){--_color-background: var(--odx-color-transparent-pressed)}:host([aria-selected=\"true\"]){--_color-background: var(--odx-color-selected)}:host([aria-selected=\"true\"]:hover){--_color-background: var(--odx-color-selected-hover)}:host([aria-disabled=\"true\"]){--_color-background: var(--odx-color-disabled-fill);--_color-foreground: var(--odx-color-disabled-foreground);cursor:not-allowed;pointer-events:none}:host([aria-selected=\"true\"][aria-disabled=\"true\"]){--_color-background: var(--odx-color-disabled-fill-selected);--_color-foreground: var(--odx-color-disabled-foreground-selected)}:host(:focus-visible){outline-color:var(--odx-focus-ring-color)}";
2415
+
2416
+ var __defProp$u = Object.defineProperty;
2417
+ var __getOwnPropDesc$u = Object.getOwnPropertyDescriptor;
2418
+ var __decorateClass$u = (decorators, target, key, kind) => {
2419
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$u(target, key) : target;
2420
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
2421
+ if (decorator = decorators[i])
2422
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
2423
+ if (kind && result) __defProp$u(target, key, result);
2424
+ return result;
2425
+ };
2426
+ let OdxOptionComponent = class extends OptionControl {
2427
+ render() {
2428
+ return html`
2429
+ ${when(
2430
+ this.type === "checkbox",
2431
+ () => html`<odx-checkbox .checked=${this.selected} ?disabled=${this.disabled} inert></odx-checkbox>`,
2432
+ () => html`<slot name="prefix"></slot>`
2433
+ )}
2434
+ <slot></slot>
2435
+ <slot name="suffix"></slot>
2436
+ `;
2437
+ }
2438
+ };
2439
+ __decorateClass$u([
2440
+ property({ reflect: true })
2441
+ ], OdxOptionComponent.prototype, "type", 2);
2442
+ OdxOptionComponent = __decorateClass$u([
2443
+ customElement("odx-option", [styles$u])
2444
+ ], OdxOptionComponent);
2445
+
2446
+ const styles$t = ":host{display:grid;inline-size:100%;grid-template-columns:minmax(0,auto) minmax(0px,100%);grid-template-rows:minmax(0px,auto) minmax(0px,1fr);grid-template-areas:\"navigation header\" \"navigation content\";justify-content:start;max-inline-size:var(--max-inline-size)}.header,.navigation{background-color:var(--odx-color-background-cool);position:sticky;inset-block-start:var(--scroll-margin-block-start);z-index:98}.content{grid-area:content;margin-block-end:var(--odx-size-150)}.header{grid-area:header}.navigation{--_size: calc(100dvh - var(--scroll-margin-block-start));grid-area:navigation;inset-block-start:var(--scroll-margin-block-start);inset-block-end:0;max-block-size:var(--_size);overflow:auto;padding-inline-end:var(--odx-size-75)}";
2447
+
2448
+ var __defProp$t = Object.defineProperty;
2449
+ var __getOwnPropDesc$t = Object.getOwnPropertyDescriptor;
2450
+ var __decorateClass$t = (decorators, target, key, kind) => {
2451
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$t(target, key) : target;
2452
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
2453
+ if (decorator = decorators[i])
2454
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
2455
+ if (kind && result) __defProp$t(target, key, result);
2456
+ return result;
2457
+ };
2458
+ let OdxPageLayoutComponent = class extends CustomElement {
2459
+ render() {
2460
+ return html`
2461
+ ${optionalSlot(this, "navigation")}
2462
+ ${optionalSlot(this, "header")}
2463
+ <div class="content">
2464
+ <slot></slot>
2465
+ </div>
2466
+ `;
2467
+ }
2468
+ };
2469
+ OdxPageLayoutComponent = __decorateClass$t([
2470
+ customElement("odx-page-layout", [styles$t])
2471
+ ], OdxPageLayoutComponent);
2472
+
2473
+ const styles$s = ":host{--max-inline-size: var(--odx-page-max-inline-size, 100%);--scroll-margin-block-start: calc(var(--header-size, 0px) + var(--subheader-size, 0px));display:grid;min-block-size:100%;grid-template-columns:100%;grid-template-rows:repeat(minmax(0,auto),2) minmax(0px,1fr);grid-template-areas:\"header\" \"subheader\" \"content\"}.header,.subheader{position:sticky;z-index:99}.subheader,.content{inline-size:100%;background-color:var(--odx-color-background-cool);padding-inline:var(--odx-size-75);max-inline-size:var(--max-inline-size)}.header{grid-area:header;inset-block-start:0}.subheader{grid-area:subheader;inset-block-start:var(--header-size, 0px)}.content{block-size:100%;grid-area:content}:host([alignment=\"center\"]){.subheader,.content{margin-inline:auto}}:host([layout=\"narrow\"]){--max-inline-size: var(--odx-page-max-inline-size-narrow)}:host([layout=\"wide\"]){--max-inline-size: var(--odx-page-max-inline-size-wide)}";
2474
+
2475
+ var __defProp$s = Object.defineProperty;
2476
+ var __getOwnPropDesc$s = Object.getOwnPropertyDescriptor;
2477
+ var __decorateClass$s = (decorators, target, key, kind) => {
2478
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$s(target, key) : target;
2479
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
2480
+ if (decorator = decorators[i])
2481
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
2482
+ if (kind && result) __defProp$s(target, key, result);
2483
+ return result;
2484
+ };
2485
+ let OdxPageComponent = class extends CustomElement {
2486
+ firstUpdated() {
2487
+ SharedResizeObserver.observe(this, () => {
2488
+ this.style.setProperty("--header-size", toPx(this.headerElement.offsetHeight));
2489
+ this.style.setProperty("--subheader-size", toPx(this.subheaderElement.offsetHeight));
2490
+ });
2491
+ }
2492
+ render() {
2493
+ return html`
2494
+ <div class="header" part="header">
2495
+ <slot name="header"></slot>
2496
+ </div>
2497
+ <div class="subheader" part="subheader">
2498
+ <slot name="subheader"></slot>
2499
+ </div>
2500
+ <div class="content" part="content">
2501
+ <slot></slot>
2502
+ </div>
2503
+ `;
2504
+ }
2505
+ };
2506
+ __decorateClass$s([
2507
+ query(".header", true)
2508
+ ], OdxPageComponent.prototype, "headerElement", 2);
2509
+ __decorateClass$s([
2510
+ query(".subheader", true)
2511
+ ], OdxPageComponent.prototype, "subheaderElement", 2);
2512
+ __decorateClass$s([
2513
+ property({ reflect: true })
2514
+ ], OdxPageComponent.prototype, "alignment", 2);
2515
+ __decorateClass$s([
2516
+ property({ reflect: true })
2517
+ ], OdxPageComponent.prototype, "layout", 2);
2518
+ OdxPageComponent = __decorateClass$s([
2519
+ customElement("odx-page", [styles$s])
2520
+ ], OdxPageComponent);
2521
+
2522
+ const PageAlignment = {
2523
+ CENTER: "center"
2524
+ };
2525
+ const PageLayout = {
2526
+ NARROW: "narrow",
2527
+ WIDE: "wide"
2528
+ };
2529
+
2530
+ const styles$r = ":host{--_color-foreground: inherit;--_indicator-color: var(--odx-color-primary-rest);--_track-color: var(--odx-palette-coolgray-10);--_track-size: var(--odx-size-50);--_value-percentage: 0;--_label-width: var(--odx-progress-label-width, 33.3%);--_value-width: 1.5rem}:host{display:flex;align-items:center;flex-wrap:wrap;gap:var(--odx-size-50);color:var(--_color-foreground);line-height:1rem;padding-inline:var(--odx-size-75);padding-block:var(--odx-size-25)}.base,.indicator{inline-size:100%}.base{block-size:var(--_track-size);background:var(--_track-color);border-radius:var(--odx-border-radius-md);overflow:hidden;position:relative;inline-size:100%}.indicator{block-size:100%;background-color:var(--_indicator-color);transform:scaleX(calc(var(--_value-percentage) / 100));transform-origin:0 center;transition:var(--odx-transition-reduced);transition-property:background-color,transform;transform-origin:0% 50%}.label{text-align:start;overflow-x:clip;text-overflow:ellipsis;white-space:nowrap;max-inline-size:calc(100% - var(--_value-width) - var(--odx-size-75))}.value{text-align:end;margin-inline-start:auto}:host([condensed]){padding-block:0;flex-wrap:nowrap;.label{inline-size:var(--_label-width)}.value{width:var(--_value-width);order:99}}:host([state=\"confirm\"]){--_indicator-color: var(--odx-color-confirmation-rest);--_color-foreground: var(--_indicator-color);--_value-color: var(--_indicator-color)}:host([state=\"error\"]){--_indicator-color: var(--odx-color-danger-rest);--_color-foreground: var(--_indicator-color);--_value-color: var(--_indicator-color);font-weight:var(--odx-font-weight-medium)}:host([state=\"success\"]){--_indicator-color: var(--odx-color-success-rest)}:host([indeterminate]) .indicator{animation:indeterminate 1.5s linear infinite}@keyframes indeterminate{0%{transform:translate(0) scaleX(0)}40%{transform:translate(0) scaleX(.4)}to{transform:translate(100%) scaleX(.5)}}";
2531
+
2532
+ var __defProp$r = Object.defineProperty;
2533
+ var __getOwnPropDesc$r = Object.getOwnPropertyDescriptor;
2534
+ var __decorateClass$r = (decorators, target, key, kind) => {
2535
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$r(target, key) : target;
2536
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
2537
+ if (decorator = decorators[i])
2538
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
2539
+ if (kind && result) __defProp$r(target, key, result);
2540
+ return result;
2541
+ };
2542
+ let OdxProgressBarComponent = class extends CustomElement {
2543
+ constructor() {
2544
+ super(...arguments);
2545
+ this.indeterminate = false;
2546
+ this.min = 0;
2547
+ this.max = 100;
2548
+ this.value = 0;
2549
+ this.condensed = false;
2550
+ this.hideValue = false;
2551
+ }
2552
+ get valuePercentage() {
2553
+ return clamp(round(this.value - this.min / this.max - this.min, 2), this.min, this.max);
2554
+ }
2555
+ get valueHidden() {
2556
+ return this.hideValue || !this.valueText && this.indeterminate;
2557
+ }
2558
+ render() {
2559
+ const valueText = this.valueText || `${this.valuePercentage}%`;
2560
+ return html`
2561
+ ${when(this.label, (label) => html`<div part="label" aria-hidden="true">${label}</div>`)}
2562
+ ${when(!this.valueHidden, () => html`<odx-text part="value" aria-hidden="true">${valueText}</odx-text>`)}
2563
+ <div
2564
+ class="base"
2565
+ role="progressbar"
2566
+ title=${optionalAttr(this.title)}
2567
+ aria-label=${optionalAttr(this.label)}
2568
+ aria-valuemin="0"
2569
+ aria-valuemax="100"
2570
+ aria-valuenow=${this.indeterminate ? 0 : this.value}
2571
+ style=${styleMap({ "--_value-percentage": this.valuePercentage })}
2572
+ >
2573
+ <div class="indicator"></div>
2574
+ </div>
2575
+ `;
2576
+ }
2577
+ };
2578
+ __decorateClass$r([
2579
+ queryAssignedElements()
2580
+ ], OdxProgressBarComponent.prototype, "content", 2);
2581
+ __decorateClass$r([
2582
+ property({ type: Boolean, reflect: true })
2583
+ ], OdxProgressBarComponent.prototype, "indeterminate", 2);
2584
+ __decorateClass$r([
2585
+ property({ type: Number })
2586
+ ], OdxProgressBarComponent.prototype, "min", 2);
2587
+ __decorateClass$r([
2588
+ property({ type: Number })
2589
+ ], OdxProgressBarComponent.prototype, "max", 2);
2590
+ __decorateClass$r([
2591
+ property({ type: Number })
2592
+ ], OdxProgressBarComponent.prototype, "value", 2);
2593
+ __decorateClass$r([
2594
+ property({ type: Boolean, reflect: true })
2595
+ ], OdxProgressBarComponent.prototype, "condensed", 2);
2596
+ __decorateClass$r([
2597
+ property({ reflect: true })
2598
+ ], OdxProgressBarComponent.prototype, "state", 2);
2599
+ __decorateClass$r([
2600
+ property({ type: Boolean, reflect: true })
2601
+ ], OdxProgressBarComponent.prototype, "hideValue", 2);
2602
+ __decorateClass$r([
2603
+ property()
2604
+ ], OdxProgressBarComponent.prototype, "label", 2);
2605
+ __decorateClass$r([
2606
+ property()
2607
+ ], OdxProgressBarComponent.prototype, "valueText", 2);
2608
+ OdxProgressBarComponent = __decorateClass$r([
2609
+ customElement("odx-progress-bar", [styles$r])
2610
+ ], OdxProgressBarComponent);
2611
+
2612
+ const ProgressState = {
2613
+ CONFIRM: "confirm",
2614
+ SUCCESS: "success",
2615
+ ERROR: "error"
2616
+ };
2617
+
2618
+ const styles$q = ":host{--_indicator-space: var(--odx-size-12);--_indicator-size: calc(var(--odx-size-150) - var(--_indicator-space) * 2);--_indicator-color-background: var(--odx-color-selection-control-fill);--_indicator-color-stroke: var(--odx-color-selection-control-stroke);--_indicator-stroke-width: var(--odx-border-width-thin);--_label-color-foreground: var(--odx-color-foreground);cursor:pointer;display:inline-flex;margin:var(--odx-size-37) var(--odx-size-75);user-select:none;border-radius:var(--odx-border-radius-controls);padding:var(--_indicator-space)}:host,.indicator,.content{transition:var(--odx-transition-reduced)}.indicator{display:flex;place-content:center;place-items:center;block-size:var(--_indicator-size);inline-size:var(--_indicator-size);flex-shrink:0;border-radius:var(--odx-border-radius-circle);background-color:var(--_indicator-color-background);border:var(--odx-border-width-thin) solid var(--_indicator-color-stroke);border-color:var(--_indicator-color-stroke);border-width:var(--_indicator-stroke-width);transition-property:background-color,border-color,outline-color;outline:var(--odx-focus-ring-outline);outline-offset:var(--odx-focus-ring-offset)}.label{display:inline-block}.content{color:var(--_label-color-foreground);margin-block:calc(-1 * var(--_indicator-space));transition-property:color}:host(:empty) .content{display:none}:host(:not(:empty)) .indicator{margin-inline-end:var(--odx-size-75)}:host(:hover){--_indicator-color-background: var(--odx-color-selection-control-fill-hover);--_indicator-color-stroke: var(--odx-color-selection-control-stroke-hover)}:host(:focus-visible) .indicator{outline-color:var(--odx-focus-ring-color)}:host([aria-readonly=\"true\"]){--_indicator-color-background: var(--odx-color-selection-control-fill-readonly);--_indicator-color-foreground: var(--odx-color-selection-control-foreground-readonly);--_indicator-color-stroke: var(--odx-color-selection-control-stroke-readonly);cursor:default}:host([aria-disabled=\"true\"]){--_indicator-color-background: var(--odx-color-disabled-fill);--_indicator-color-foreground: var(--odx-color-disabled-foreground);--_indicator-color-stroke: var(--odx-color-disabled-stroke);--_label-color-foreground: var(--odx-color-disabled-foreground);cursor:not-allowed}:host([aria-checked=\"true\"]){--_indicator-color-background: var(--odx-color-selection-control-stroke-selected);--_indicator-color-foreground: var(--odx-color-foreground-light);--_indicator-color-stroke: var(--odx-color-selection-control-fill-selected);--_indicator-stroke-width: var(--odx-size-25)}:host([aria-checked=\"true\"]:not(:is([aria-readonly],[aria-disabled])):hover){--_indicator-color-stroke: var(--odx-color-selection-control-fill-selected-hover)}:host([aria-checked=\"true\"][aria-readonly=\"true\"]){--_indicator-color-background: var(--odx-color-selection-control-fill-selected);--_indicator-color-stroke: var(--odx-color-background-main);--_indicator-stroke-width: var(--odx-size-50);.indicator{outline-color:var(--odx-color-selection-control-fill-selected)}}:host([aria-checked=\"true\"][aria-disabled=\"true\"]){--_indicator-color-stroke: var(--odx-color-disabled-fill-selected);--_indicator-color-foreground: var(--odx-color-disabled-foreground-selected)}";
2619
+
2620
+ var __defProp$q = Object.defineProperty;
2621
+ var __getOwnPropDesc$q = Object.getOwnPropertyDescriptor;
2622
+ var __decorateClass$q = (decorators, target, key, kind) => {
2623
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$q(target, key) : target;
2624
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
2625
+ if (decorator = decorators[i])
2626
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
2627
+ if (kind && result) __defProp$q(target, key, result);
2628
+ return result;
2629
+ };
2630
+ let OdxRadioButtonComponent = class extends CheckboxFormControl {
2631
+ connectedCallback() {
2632
+ super.connectedCallback?.();
2633
+ this.role = "radio";
2634
+ }
2635
+ render() {
2636
+ return html`
2637
+ <div class="indicator"></div>
2638
+ <div class="content">
2639
+ <div class="label">
2640
+ <slot></slot>
2641
+ </div>
2642
+ <div class="description">
2643
+ <slot name="description"></slot>
2644
+ </div>
2645
+ </div>
2646
+ `;
2647
+ }
2648
+ toggle(state, emitEvent = false) {
2649
+ super.toggle(state ?? true, emitEvent);
2650
+ }
2651
+ };
2652
+ OdxRadioButtonComponent = __decorateClass$q([
2653
+ customElement("odx-radio-button", [styles$q])
2654
+ ], OdxRadioButtonComponent);
2655
+
2656
+ const styles$p = ":host{display:flex;flex-direction:column}::slotted(:is(odx-radio-button,odx-switch)){border-block-end:0;border-color:transparent;width:max-content}:host([variant=\"list\"]) ::slotted(:is(odx-radio-button,odx-switch)){border-block-end:var(--odx-border-width-thin) solid var(--odx-color-separator);padding:var(--odx-size-75);margin:0;width:auto}:host([variant=\"list\"]) ::slotted(:is(odx-radio-button,odx-switch):last-of-type){border-block-end:none}";
2657
+
2658
+ var __defProp$p = Object.defineProperty;
2659
+ var __getOwnPropDesc$p = Object.getOwnPropertyDescriptor;
2660
+ var __decorateClass$p = (decorators, target, key, kind) => {
2661
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$p(target, key) : target;
2662
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
2663
+ if (decorator = decorators[i])
2664
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
2665
+ if (kind && result) __defProp$p(target, key, result);
2666
+ return result;
2667
+ };
2668
+ let OdxRadioGroupComponent = class extends RadioGroupFormControl {
2669
+ };
2670
+ __decorateClass$p([
2671
+ property({ reflect: true })
2672
+ ], OdxRadioGroupComponent.prototype, "variant", 2);
2673
+ OdxRadioGroupComponent = __decorateClass$p([
2674
+ customElement("odx-radio-group", [styles$p])
2675
+ ], OdxRadioGroupComponent);
2676
+
2677
+ const RadioGroupVariant = {
2678
+ LIST: "list"
2679
+ };
2680
+
2681
+ const styles$o = ":host{--min-inline-size: 180px;--max-inline-size: 240px;display:flex;flex-direction:column;block-size:100%;padding-inline:var(--odx-size-50);padding-block:var(--odx-size-150);gap:var(--odx-size-75);max-inline-size:var(--max-inline-size);min-inline-size:var(--min-inline-size);transition:var(--odx-transition-default);transition-property:min-inline-size,max-inline-size}.toggle-control{margin-block-start:auto}.toggle-icon{transition:var(--odx-transition-default);transition-property:transform}:host([collapsed]:not([collapsed=\"false\"])){--min-inline-size: var(--odx-size-400);--max-inline-size: var(--odx-size-600);.toggle-icon{transform:rotateY(-180deg)}}";
2682
+
2683
+ var __defProp$o = Object.defineProperty;
2684
+ var __getOwnPropDesc$o = Object.getOwnPropertyDescriptor;
2685
+ var __typeError$b = (msg) => {
2686
+ throw TypeError(msg);
2687
+ };
2688
+ var __decorateClass$o = (decorators, target, key, kind) => {
2689
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$o(target, key) : target;
2690
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
2691
+ if (decorator = decorators[i])
2692
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
2693
+ if (kind && result) __defProp$o(target, key, result);
2694
+ return result;
2695
+ };
2696
+ var __accessCheck$b = (obj, member, msg) => member.has(obj) || __typeError$b("Cannot " + msg);
2697
+ var __privateGet$9 = (obj, member, getter) => (__accessCheck$b(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
2698
+ var __privateAdd$b = (obj, member, value) => member.has(obj) ? __typeError$b("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
2699
+ var _handleSlotChange$3, _handleControlClick;
2700
+ setTranslation("en", {
2701
+ railNavigation: { controlText: { collapsed: "Expand navigation", expanded: "Collapse navigation" } }
2702
+ });
2703
+ let OdxRailNavigationComponent = class extends CustomElement {
2704
+ constructor() {
2705
+ super(...arguments);
2706
+ this.collapsed = false;
2707
+ __privateAdd$b(this, _handleSlotChange$3, () => {
2708
+ for (const item of getAssignedElements(this)) {
2709
+ item.size = "lg";
2710
+ }
2711
+ });
2712
+ __privateAdd$b(this, _handleControlClick, () => {
2713
+ this.collapsed = !this.collapsed;
2714
+ });
2715
+ }
2716
+ render() {
2717
+ const controlLabel = translate(`railNavigation.controlText.${this.collapsed ? "collapsed" : "expanded"}`);
2718
+ return html`
2719
+ <slot @slotchange=${__privateGet$9(this, _handleSlotChange$3)}></slot>
2720
+ <odx-navigation-item class="toggle-control" size="lg" @click=${__privateGet$9(this, _handleControlClick)} odxPreventTextOverflow>
2721
+ <odx-icon class="toggle-icon" name="core::chevron-left" slot="prefix"></odx-icon>
2722
+ <odx-visually-hidden>${watch(controlLabel)}</odx-visually-hidden>${watch(controlLabel)}
2723
+ </odx-navigation-item>
2724
+ `;
2725
+ }
2726
+ getItems() {
2727
+ return this.navigationItems;
2728
+ }
2729
+ };
2730
+ _handleSlotChange$3 = new WeakMap();
2731
+ _handleControlClick = new WeakMap();
2732
+ __decorateClass$o([
2733
+ queryAssignedElements({ selector: OdxNavigationItemComponent.selector, flatten: true })
2734
+ ], OdxRailNavigationComponent.prototype, "navigationItems", 2);
2735
+ __decorateClass$o([
2736
+ property({ type: Boolean, reflect: true })
2737
+ ], OdxRailNavigationComponent.prototype, "collapsed", 2);
2738
+ OdxRailNavigationComponent = __decorateClass$o([
2739
+ customElement("odx-rail-navigation", [styles$o])
2740
+ ], OdxRailNavigationComponent);
2741
+
2742
+ const styles$n = ":host{--odx-search-max-inline-size: 35em;display:block;max-width:var(--odx-search-max-inline-size)}";
2743
+
2744
+ class SearchEvent extends CustomEvent {
2745
+ constructor(value, rawValue) {
2746
+ super("search", { detail: { rawValue, value } });
2747
+ }
2748
+ }
2749
+
2750
+ const SearchBarBehavior = {
2751
+ INSTANT: "instant",
2752
+ SUBMIT: "submit"
2753
+ };
2754
+
2755
+ var __defProp$n = Object.defineProperty;
2756
+ var __getOwnPropDesc$n = Object.getOwnPropertyDescriptor;
2757
+ var __typeError$a = (msg) => {
2758
+ throw TypeError(msg);
2759
+ };
2760
+ var __decorateClass$n = (decorators, target, key, kind) => {
2761
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$n(target, key) : target;
2762
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
2763
+ if (decorator = decorators[i])
2764
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
2765
+ if (kind && result) __defProp$n(target, key, result);
2766
+ return result;
2767
+ };
2768
+ var __accessCheck$a = (obj, member, msg) => member.has(obj) || __typeError$a("Cannot " + msg);
2769
+ var __privateGet$8 = (obj, member, getter) => (__accessCheck$a(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
2770
+ var __privateAdd$a = (obj, member, value) => member.has(obj) ? __typeError$a("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
2771
+ var __privateSet$1 = (obj, member, value, setter) => (__accessCheck$a(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
2772
+ var __privateMethod$7 = (obj, member, method) => (__accessCheck$a(obj, member, "access private method"), method);
2773
+ var _value, _search, _OdxSearchBarComponent_instances, inputValue_get, _handleInputSearch, _handleInputChange, updateValue_fn;
2774
+ let OdxSearchBarComponent = class extends CustomElement {
2775
+ constructor() {
2776
+ super(...arguments);
2777
+ __privateAdd$a(this, _OdxSearchBarComponent_instances);
2778
+ __privateAdd$a(this, _value);
2779
+ __privateAdd$a(this, _search, this.search.bind(this));
2780
+ this.behavior = SearchBarBehavior.SUBMIT;
2781
+ this.placeholder = "";
2782
+ __privateAdd$a(this, _handleInputSearch, (event) => {
2783
+ event.preventDefault();
2784
+ event.stopPropagation();
2785
+ this.search(__privateGet$8(this, _OdxSearchBarComponent_instances, inputValue_get));
2786
+ });
2787
+ __privateAdd$a(this, _handleInputChange, (event) => {
2788
+ if (this.behavior !== SearchBarBehavior.INSTANT) return;
2789
+ event.preventDefault();
2790
+ event.stopPropagation();
2791
+ __privateGet$8(this, _search).call(this, __privateGet$8(this, _OdxSearchBarComponent_instances, inputValue_get));
2792
+ });
2793
+ }
2794
+ search(value, options) {
2795
+ if (__privateGet$8(this, _value) === value && options?.forceUpdate !== true) return;
2796
+ __privateMethod$7(this, _OdxSearchBarComponent_instances, updateValue_fn).call(this, value, options?.updateInput);
2797
+ if (options?.dispatchEvent === false) return;
2798
+ this.dispatchEvent(new SearchEvent(value, this.inputElement.value));
2799
+ }
2800
+ connectedCallback() {
2801
+ super.connectedCallback?.();
2802
+ this.role = "presentation";
2803
+ }
2804
+ updated(props) {
2805
+ if (props.has("debounceTime")) {
2806
+ __privateSet$1(this, _search, typeof this.debounceTime === "number" ? debounce(this.search.bind(this), this.debounceTime) : this.search.bind(this));
2807
+ }
2808
+ }
2809
+ render() {
2810
+ return html`
2811
+ <odx-input class="input" spellcheck="false" autocomplete="off" placeholder=${this.placeholder} @search=${__privateGet$8(this, _handleInputSearch)} @input=${__privateGet$8(this, _handleInputChange)} type="search">
2812
+ <odx-icon name="core::search" slot="prefix"></odx-icon>
2813
+ </odx-input>
2814
+ `;
2815
+ }
2816
+ };
2817
+ _value = new WeakMap();
2818
+ _search = new WeakMap();
2819
+ _OdxSearchBarComponent_instances = new WeakSet();
2820
+ inputValue_get = function() {
2821
+ return (this.inputElement.value ?? "").replace(/\s\s+/g, " ").trim();
2822
+ };
2823
+ _handleInputSearch = new WeakMap();
2824
+ _handleInputChange = new WeakMap();
2825
+ updateValue_fn = function(value, updateInput = false) {
2826
+ __privateSet$1(this, _value, value);
2827
+ if (!updateInput) return;
2828
+ this.inputElement.value = value;
2829
+ };
2830
+ __decorateClass$n([
2831
+ query(".input", true)
2832
+ ], OdxSearchBarComponent.prototype, "inputElement", 2);
2833
+ __decorateClass$n([
2834
+ property()
2835
+ ], OdxSearchBarComponent.prototype, "behavior", 2);
2836
+ __decorateClass$n([
2837
+ property({ type: Number })
2838
+ ], OdxSearchBarComponent.prototype, "debounceTime", 2);
2839
+ __decorateClass$n([
2840
+ property()
2841
+ ], OdxSearchBarComponent.prototype, "placeholder", 2);
2842
+ OdxSearchBarComponent = __decorateClass$n([
2843
+ customElement("odx-search-bar", [styles$n])
2844
+ ], OdxSearchBarComponent);
2845
+
2846
+ const styles$m = ":host{display:block;--_color-background: var(--odx-color-input-control-fill);--_color-foreground: var(--odx-color-foreground);--_color-stroke: var(--odx-color-input-control-stroke);--_padding-block: var(--odx-size-37);--_padding-inline: var(--odx-size-75);border-radius:var(--odx-border-radius-controls);color:var(--_color-foreground);max-inline-size:320px}.base{display:flex;cursor:pointer;text-align:start;padding:var(--_padding-block) var(--_padding-inline);border:var(--odx-border-width-thin) solid var(--_color-stroke);border-radius:inherit;background-color:var(--_color-background);min-width:200px;min-block-size:var(--odx-size-225);transition:var(--odx-transition-reduced);transition-property:background-color,border-color,outline-color;gap:var(--odx-padding-inline);outline:var(--odx-focus-ring-outline);outline-offset:var(--odx-focus-ring-offset);user-select:none;overflow:hidden;&:focus-visible{outline-color:var(--odx-color-outline-focus)}}.value{display:flex;gap:var(--_padding-block)}.indicator{font-size:var(--odx-size-150);margin-left:auto}odx-chip{--_border-radius: var(--odx-border-radius-controls);--_padding-inline: var(--_padding-block)}:host(:hover){--_color-background: var(--odx-color-input-control-fill-hover);--_color-stroke: var(--odx-color-input-control-stroke-hover)}:host([multiple]):has(odx-chip) .base{padding-inline-start:var(--_padding-block)}slot[name=placeholder]{color:var(--odx-color-foreground-muted)}";
2847
+
2848
+ var __defProp$m = Object.defineProperty;
2849
+ var __getOwnPropDesc$m = Object.getOwnPropertyDescriptor;
2850
+ var __typeError$9 = (msg) => {
2851
+ throw TypeError(msg);
2852
+ };
2853
+ var __decorateClass$m = (decorators, target, key, kind) => {
2854
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$m(target, key) : target;
2855
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
2856
+ if (decorator = decorators[i])
2857
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
2858
+ if (kind && result) __defProp$m(target, key, result);
2859
+ return result;
2860
+ };
2861
+ var __accessCheck$9 = (obj, member, msg) => member.has(obj) || __typeError$9("Cannot " + msg);
2862
+ var __privateGet$7 = (obj, member, getter) => (__accessCheck$9(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
2863
+ var __privateAdd$9 = (obj, member, value) => member.has(obj) ? __typeError$9("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
2864
+ var __privateMethod$6 = (obj, member, method) => (__accessCheck$9(obj, member, "access private method"), method);
2865
+ var _OdxSelectComponent_instances, handleMultipleChange_fn, _handleDropdownToggle, _removeChip;
2866
+ let OdxSelectComponent = class extends SelectFormControl {
2867
+ constructor() {
2868
+ super(...arguments);
2869
+ __privateAdd$9(this, _OdxSelectComponent_instances);
2870
+ __privateAdd$9(this, _handleDropdownToggle, (event) => {
2871
+ if (event.newState === "open") {
2872
+ this.options[0]?.setActive();
2873
+ }
2874
+ });
2875
+ __privateAdd$9(this, _removeChip, async (option) => {
2876
+ this.toggle(option, false, true);
2877
+ });
2878
+ }
2879
+ render() {
2880
+ return html`
2881
+ <div class="base" id="select-trigger" tabindex="0">
2882
+ <div class="value" odxPreventTextOverflow>
2883
+ ${when(
2884
+ Array.from(this.selectedOptions).length,
2885
+ () => this.renderSelectedOptions(),
2886
+ () => html`<slot name="placeholder">Select options</slot>`
2887
+ )}
2888
+ </div>
2889
+ <odx-icon class="indicator" name="core::chevron-down"></odx-icon>
2890
+ </div>
2891
+ <odx-dropdown part="dropdown" anchor="select-trigger" role="listbox" tabindex="-1" ?disabled=${this.disabled} matchReferenceWidth @toggle=${__privateGet$7(this, _handleDropdownToggle)}>
2892
+ <slot @slotchange=${__privateMethod$6(this, _OdxSelectComponent_instances, handleMultipleChange_fn)}></slot>
2893
+ </odx-dropdown>
2894
+ `;
2895
+ }
2896
+ renderSelectedOptions() {
2897
+ const selectedOptions = Array.from(this.selectedOptions);
2898
+ if (this.multiple) {
2899
+ const maxOptions = 2;
2900
+ const visibleOptions = selectedOptions.slice(0, maxOptions);
2901
+ const showExtra = selectedOptions.length > maxOptions;
2902
+ return html`
2903
+ ${repeat(
2904
+ visibleOptions,
2905
+ (option) => html`<odx-chip @remove=${() => __privateGet$7(this, _removeChip).call(this, option)} removable tabindex="-1">${option.getTextLabel()}</odx-chip>`
2906
+ )}
2907
+ ${when(showExtra, () => html`<odx-chip>+${selectedOptions.length - maxOptions}</odx-chip>`)}
2908
+ `;
2909
+ }
2910
+ this.dropdownElement.hidePopover();
2911
+ return html`${selectedOptions[0]?.getTextLabel()}`;
2912
+ }
2913
+ willUpdate(changes) {
2914
+ super.willUpdate?.(changes);
2915
+ if (changes.has("multiple")) {
2916
+ __privateMethod$6(this, _OdxSelectComponent_instances, handleMultipleChange_fn).call(this);
2917
+ }
2918
+ }
2919
+ };
2920
+ _OdxSelectComponent_instances = new WeakSet();
2921
+ handleMultipleChange_fn = function() {
2922
+ for (const option of this.options) {
2923
+ option.type = this.multiple ? "checkbox" : null;
2924
+ }
2925
+ };
2926
+ _handleDropdownToggle = new WeakMap();
2927
+ _removeChip = new WeakMap();
2928
+ __decorateClass$m([
2929
+ queryAssignedElements({ selector: OdxOptionComponent.selector, flatten: true })
2930
+ ], OdxSelectComponent.prototype, "options", 2);
2931
+ __decorateClass$m([
2932
+ query(OdxDropdownComponent.selector, true)
2933
+ ], OdxSelectComponent.prototype, "dropdownElement", 2);
2934
+ OdxSelectComponent = __decorateClass$m([
2935
+ customElement("odx-select", [styles$m])
2936
+ ], OdxSelectComponent);
2937
+
2938
+ const styles$l = "@layer base{:host{--color: var(--odx-color-separator);--size: var(--odx-size-px);--min-size: var(--odx-size-75);--inline-space: var(--odx-size-12);--block-space: var(--odx-size-75);display:block;margin-block:calc(var(--block-space) - .5 * var(--size));margin-inline:var(--inline-space)}.base{display:flex;align-items:center;column-gap:var(--odx-size-37);&:before,&:after{content:\"\";display:block;flex:1 1 auto;block-size:var(--size);background-color:var(--color);pointer-events:none}}}@layer variants{:host([vertical]){margin-block:var(--block-space);margin-inline:calc(var(--inline-space) - .5 * var(--size));.base{flex-direction:column;&:after,&:before{min-block-size:calc(var(--min-size) / 2);block-size:calc(100% - var(--block-space) * 2);inline-size:var(--size)}}}:host(:not([vertical])){.base{&:after,&:before{min-inline-size:calc(var(--min-size) / 2)}}}:host([highlight]){--color: var(--odx-color-separator-strong)}:host([align=\"start\"]){.base:before{flex:0 0 var(--min-size)}}:host([align=\"end\"]){.base:after{flex:0 0 var(--min-size)}}:host([empty-slot]) .base{gap:0}}";
2939
+
2940
+ var __defProp$l = Object.defineProperty;
2941
+ var __getOwnPropDesc$l = Object.getOwnPropertyDescriptor;
2942
+ var __decorateClass$l = (decorators, target, key, kind) => {
2943
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$l(target, key) : target;
2944
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
2945
+ if (decorator = decorators[i])
2946
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
2947
+ if (kind && result) __defProp$l(target, key, result);
2948
+ return result;
2949
+ };
2950
+ let OdxSeparatorComponent = class extends CustomElement {
2951
+ constructor() {
2952
+ super(...arguments);
2953
+ this.highlight = false;
2954
+ this.vertical = false;
2955
+ }
2956
+ connectedCallback() {
2957
+ super.connectedCallback();
2958
+ this.role = "separator";
2959
+ }
2960
+ render() {
2961
+ return html`
2962
+ <div class="base">
2963
+ <div class="content">
2964
+ <slot ${emptySlotFallbackFix()} @slotchange=${() => this.requestUpdate()}></slot>
2965
+ </div>
2966
+ </div>
2967
+ `;
2968
+ }
2969
+ };
2970
+ __decorateClass$l([
2971
+ property({ reflect: true })
2972
+ ], OdxSeparatorComponent.prototype, "align", 2);
2973
+ __decorateClass$l([
2974
+ property({ type: Boolean, reflect: true })
2975
+ ], OdxSeparatorComponent.prototype, "highlight", 2);
2976
+ __decorateClass$l([
2977
+ property({ type: Boolean, reflect: true })
2978
+ ], OdxSeparatorComponent.prototype, "vertical", 2);
2979
+ OdxSeparatorComponent = __decorateClass$l([
2980
+ customElement("odx-separator", [styles$l])
2981
+ ], OdxSeparatorComponent);
2982
+
2983
+ const styles$k = ":host{--_color-fill: var(--odx-color-disabled-fill);display:block;block-size:var(--odx-size-150);inline-size:100%;background:linear-gradient(90deg,var(--_color-fill) 33%,var(--odx-color-disabled-foreground) 50%,var(--_color-fill) 66%);background-size:200% 100%;animation:odx-skeleton-loading 2s infinite linear}:host([rounded]:not([rounded=\"false\"])){border-radius:var(--odx-border-radius-md)}@keyframes odx-skeleton-loading{0%{background-position:100% 100%}to{background-position:-100% 100%}}";
2984
+
2985
+ var __defProp$k = Object.defineProperty;
2986
+ var __getOwnPropDesc$k = Object.getOwnPropertyDescriptor;
2987
+ var __decorateClass$k = (decorators, target, key, kind) => {
2988
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$k(target, key) : target;
2989
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
2990
+ if (decorator = decorators[i])
2991
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
2992
+ if (kind && result) __defProp$k(target, key, result);
2993
+ return result;
2994
+ };
2995
+ let OdxSkeletonComponent = class extends CustomElement {
2996
+ constructor() {
2997
+ super(...arguments);
2998
+ this.rounded = false;
2999
+ }
3000
+ render() {
3001
+ return html``;
3002
+ }
3003
+ };
3004
+ __decorateClass$k([
3005
+ property({ type: Boolean, reflect: true })
3006
+ ], OdxSkeletonComponent.prototype, "rounded", 2);
3007
+ OdxSkeletonComponent = __decorateClass$k([
3008
+ customElement("odx-skeleton", [styles$k])
3009
+ ], OdxSkeletonComponent);
3010
+
3011
+ const styles$j = "*{margin:0;padding:0;box-sizing:border-box}:host{--_thumb-color: var(--_track-color);--_thumb-size: var(--odx-size-150);--_previous-position: 0%;--_position: 0%;--_next-position: 0%;display:contents}:host::part(track),:host::part(thumb),:host::part(label){position:absolute}:host::part(track),:host::part(label){pointer-events:none}:host::part(thumb),:host::part(label){background-color:var(--_thumb-color);inset-inline-start:var(--_position)}:host::part(track){background-color:var(--_track-color);border-radius:var(--_track-size);inset:0 calc(100% - var(--_position)) 0 var(--_previous-position);z-index:var(--_layer-background)}:host::part(thumb){display:flex;place-content:center;place-items:center;border-radius:50%;block-size:var(--_thumb-size);inline-size:var(--_thumb-size);inset-block-start:50%;cursor:grab;transform:translate(-50%,-50%);z-index:var(--_layer-interactive);box-shadow:var(--odx-shadow-level-0);outline:0 solid var(--odx-palette-cyan-50-15)}:host::part(label){inset-block-end:100%;transform:translate(-50%) translateY(calc(-1 * var(--odx-size-75))) scale(0);opacity:0;border-radius:var(--odx-border-radius-sm);color:var(--odx-color-foreground-light);padding-inline:var(--odx-size-50);line-height:var(--odx-size-150);z-index:var(--_layer-foreground)}:host::part(with-motion){transition:var(--odx-transition-reduced)}:host([odx-drag-active])::part(with-motion){transition-property:outline}:host::part(thumb):active,:host(:active)::part(thumb){outline-width:var(--odx-size-75)}:host(:hover),:host(:focus-within){--_thumb-color: var(--odx-color-highlight-rest)}:host(:focus-within)::part(label),:host(:hover)::part(label){opacity:1;transform:translate(-50%) translateY(calc(-1 * var(--odx-size-75))) scale(1)}:host([aria-disabled=\"true\"]){pointer-events:none}:host([aria-disabled=\"true\"])::part(thumb){--_thumb-color: var(--odx-color-disabled-fill);z-index:var(--_layer-interactive-disabled)}";
3012
+
3013
+ const SliderLabelVisibility = {
3014
+ AUTO: "auto",
3015
+ HIDDEN: "hidden"
3016
+ };
3017
+ const SliderTrackVisibility = {
3018
+ AUTO: "auto",
3019
+ HIDDEN: "hidden",
3020
+ VISIBLE: "visible"
3021
+ };
3022
+ const sliderContext = {
3023
+ context: createContext("odx-slider::context"),
3024
+ defaultValue: { step: 1, min: 0, max: 100, minRange: 0, maxRange: 0, range: 100, labelVisibility: SliderLabelVisibility.AUTO, unit: "" }
3025
+ };
3026
+
3027
+ var __defProp$j = Object.defineProperty;
3028
+ var __getOwnPropDesc$j = Object.getOwnPropertyDescriptor;
3029
+ var __typeError$8 = (msg) => {
3030
+ throw TypeError(msg);
3031
+ };
3032
+ var __decorateClass$j = (decorators, target, key, kind) => {
3033
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$j(target, key) : target;
3034
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
3035
+ if (decorator = decorators[i])
3036
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
3037
+ if (kind && result) __defProp$j(target, key, result);
3038
+ return result;
3039
+ };
3040
+ var __accessCheck$8 = (obj, member, msg) => member.has(obj) || __typeError$8("Cannot " + msg);
3041
+ var __privateGet$6 = (obj, member, getter) => (__accessCheck$8(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
3042
+ var __privateAdd$8 = (obj, member, value) => member.has(obj) ? __typeError$8("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
3043
+ var __privateSet = (obj, member, value, setter) => (__accessCheck$8(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
3044
+ var __privateMethod$5 = (obj, member, method) => (__accessCheck$8(obj, member, "access private method"), method);
3045
+ var _previousHandle, _nextHandle, _OdxSliderHandleComponent_instances, isLabelVisible_fn, isTrackVisible_fn, findClosestValue_fn, updatePosition_fn, getValueFromPosition_fn, calculateValue_fn, limitValue_fn, findPreviousHandle_fn, findNextHandle_fn;
3046
+ let OdxSliderHandleComponent = class extends IsDraggable(NumberControl(CustomElement)) {
3047
+ constructor() {
3048
+ super(...arguments);
3049
+ __privateAdd$8(this, _OdxSliderHandleComponent_instances);
3050
+ this.context = sliderContext.defaultValue;
3051
+ __privateAdd$8(this, _previousHandle, null);
3052
+ __privateAdd$8(this, _nextHandle, null);
3053
+ }
3054
+ get minRange() {
3055
+ return Math.ceil(this.context.minRange / this.context.step) * this.context.step;
3056
+ }
3057
+ connectedCallback() {
3058
+ super.connectedCallback?.();
3059
+ this.role = "slider";
3060
+ this.slot = "thumbs";
3061
+ this.tabIndex = 0;
3062
+ }
3063
+ beforeDragStart(event) {
3064
+ super.beforeDragStart?.(event);
3065
+ __privateGet$6(this, _nextHandle)?.toggleAttribute(IS_DRAG_ACTIVE_ATTRIBUTE, true);
3066
+ this.value = __privateMethod$5(this, _OdxSliderHandleComponent_instances, findClosestValue_fn).call(this, __privateMethod$5(this, _OdxSliderHandleComponent_instances, getValueFromPosition_fn).call(this, event.position));
3067
+ this.focus();
3068
+ }
3069
+ dragStart(event) {
3070
+ super.dragStart?.(event);
3071
+ __privateMethod$5(this, _OdxSliderHandleComponent_instances, updatePosition_fn).call(this, __privateMethod$5(this, _OdxSliderHandleComponent_instances, getValueFromPosition_fn).call(this, event.position));
3072
+ }
3073
+ dragMove(event) {
3074
+ super.dragMove?.(event);
3075
+ const value = __privateMethod$5(this, _OdxSliderHandleComponent_instances, getValueFromPosition_fn).call(this, event.position);
3076
+ const closestValue = __privateMethod$5(this, _OdxSliderHandleComponent_instances, findClosestValue_fn).call(this, value);
3077
+ if (this.value !== closestValue) {
3078
+ this.value = closestValue;
3079
+ }
3080
+ __privateMethod$5(this, _OdxSliderHandleComponent_instances, updatePosition_fn).call(this, value);
3081
+ }
3082
+ afterDragEnd(event) {
3083
+ super.afterDragEnd?.(event);
3084
+ __privateGet$6(this, _nextHandle)?.toggleAttribute(IS_DRAG_ACTIVE_ATTRIBUTE, false);
3085
+ __privateMethod$5(this, _OdxSliderHandleComponent_instances, updatePosition_fn).call(this, __privateMethod$5(this, _OdxSliderHandleComponent_instances, findClosestValue_fn).call(this, this.value));
3086
+ }
3087
+ getDistance(containerElement, event) {
3088
+ const rect = containerElement.getBoundingClientRect();
3089
+ const relativePosition = round((event.x - rect.x) / rect.width) * 100;
3090
+ return Math.abs(this.value - __privateMethod$5(this, _OdxSliderHandleComponent_instances, calculateValue_fn).call(this, relativePosition));
3091
+ }
3092
+ getValueText() {
3093
+ return this.context.unit ? `${this.value}${this.context.unit}` : super.getValueText();
3094
+ }
3095
+ willUpdate(props) {
3096
+ super.willUpdate(props);
3097
+ if (props.has("value")) {
3098
+ this.value = __privateMethod$5(this, _OdxSliderHandleComponent_instances, limitValue_fn).call(this, this.value);
3099
+ this.ariaValueNow = String(this.value);
3100
+ }
3101
+ if (props.has("disabled")) {
3102
+ this.dragDisabled = this.disabled;
3103
+ }
3104
+ }
3105
+ updated(props) {
3106
+ super.updated(props);
3107
+ if (this.isDragActive) return;
3108
+ __privateSet(this, _previousHandle, __privateMethod$5(this, _OdxSliderHandleComponent_instances, findPreviousHandle_fn).call(this));
3109
+ __privateSet(this, _nextHandle, __privateMethod$5(this, _OdxSliderHandleComponent_instances, findNextHandle_fn).call(this));
3110
+ __privateMethod$5(this, _OdxSliderHandleComponent_instances, updatePosition_fn).call(this, __privateMethod$5(this, _OdxSliderHandleComponent_instances, findClosestValue_fn).call(this, this.value));
3111
+ }
3112
+ render() {
3113
+ const label = this.getValueText() || this.value;
3114
+ return html`
3115
+ ${when(__privateMethod$5(this, _OdxSliderHandleComponent_instances, isTrackVisible_fn).call(this), () => html`<div part="track with-motion"></div>`)}
3116
+ <div part="thumb with-motion" tabindex="0"></div>
3117
+ ${when(__privateMethod$5(this, _OdxSliderHandleComponent_instances, isLabelVisible_fn).call(this), () => html`<odx-text part="label with-motion" size="sm">${label}</odx-text>`)}
3118
+ `;
3119
+ }
3120
+ };
3121
+ _previousHandle = new WeakMap();
3122
+ _nextHandle = new WeakMap();
3123
+ _OdxSliderHandleComponent_instances = new WeakSet();
3124
+ isLabelVisible_fn = function() {
3125
+ return this.context.labelVisibility !== SliderLabelVisibility.HIDDEN;
3126
+ };
3127
+ isTrackVisible_fn = function() {
3128
+ if (this.trackVisibility === SliderTrackVisibility.VISIBLE) {
3129
+ return true;
3130
+ }
3131
+ if (this.trackVisibility === SliderTrackVisibility.HIDDEN) {
3132
+ return false;
3133
+ }
3134
+ return !!__privateGet$6(this, _previousHandle) || !__privateGet$6(this, _previousHandle) && !__privateGet$6(this, _nextHandle);
3135
+ };
3136
+ findClosestValue_fn = function(value) {
3137
+ const closestValue = value - value % this.context.step;
3138
+ const isNextValue = value - closestValue > this.context.step / 2;
3139
+ return __privateMethod$5(this, _OdxSliderHandleComponent_instances, limitValue_fn).call(this, closestValue + (isNextValue ? this.context.step : 0));
3140
+ };
3141
+ updatePosition_fn = function(value) {
3142
+ const valuePercentage = `${round(clamp((value - this.context.min) / this.context.range, 0, 1) * 100, 3)}%`;
3143
+ this.style.setProperty("--_position", valuePercentage);
3144
+ __privateGet$6(this, _nextHandle)?.style.setProperty("--_previous-position", valuePercentage);
3145
+ __privateGet$6(this, _previousHandle)?.style.setProperty("--_next-position", valuePercentage);
3146
+ };
3147
+ getValueFromPosition_fn = function(position) {
3148
+ return __privateMethod$5(this, _OdxSliderHandleComponent_instances, limitValue_fn).call(this, __privateMethod$5(this, _OdxSliderHandleComponent_instances, calculateValue_fn).call(this, position.x));
3149
+ };
3150
+ calculateValue_fn = function(relativePosition) {
3151
+ return clamp(relativePosition / 100, 0, 1) * this.context.range + this.context.min;
3152
+ };
3153
+ limitValue_fn = function(value) {
3154
+ const startLimit = __privateGet$6(this, _previousHandle) ? Math.max(__privateGet$6(this, _previousHandle).value, this.min - this.minRange) + this.minRange : this.min;
3155
+ const endLimit = __privateGet$6(this, _nextHandle) ? Math.min(__privateGet$6(this, _nextHandle).value, this.max + this.minRange) - this.minRange : this.max;
3156
+ return clamp(value, startLimit, endLimit);
3157
+ };
3158
+ findPreviousHandle_fn = function() {
3159
+ let sibling = this.previousElementSibling;
3160
+ while (sibling) {
3161
+ if (sibling instanceof OdxSliderHandleComponent) return sibling;
3162
+ sibling = sibling.previousElementSibling;
3163
+ }
3164
+ return null;
3165
+ };
3166
+ findNextHandle_fn = function() {
3167
+ let sibling = this.nextElementSibling;
3168
+ while (sibling) {
3169
+ if (sibling instanceof OdxSliderHandleComponent) return sibling;
3170
+ sibling = sibling.nextElementSibling;
3171
+ }
3172
+ return null;
3173
+ };
3174
+ __decorateClass$j([
3175
+ consume({ context: sliderContext.context, subscribe: true })
3176
+ ], OdxSliderHandleComponent.prototype, "context", 2);
3177
+ __decorateClass$j([
3178
+ property()
3179
+ ], OdxSliderHandleComponent.prototype, "trackVisibility", 2);
3180
+ OdxSliderHandleComponent = __decorateClass$j([
3181
+ customElement("odx-slider-handle", [styles$j])
3182
+ ], OdxSliderHandleComponent);
3183
+
3184
+ const styles$i = ":host{--_mark-color: var(--odx-slider-mark-color, var(--odx-palette-coolgray-40));--_mark-tick-block-size: var(--odx-size-75);--_mark-tick-inline-size: var(--odx-size-12);display:flex;align-items:center;flex-direction:row;position:absolute;inset:0;z-index:-1;pointer-events:none}[part~=mark]{flex:1 0 auto;position:relative}[part~=mark][last]{flex:0 0 0}[part~=mark-tick]{display:block;width:2px;inset-inline-end:0;transform:translate(calc(-.5 * var(--_mark-tick-inline-size)));height:var(--_mark-tick-block-size);background-color:var(--_mark-color)}[part~=mark][last] [part~=mark-tick]{transform:none}[part~=mark-label]{text-align:center;transform:translate(-50%) translateY(var(--odx-size-100));position:absolute;inset-block-start:0;line-height:inherit}[part~=mark]:not(:last-of-type){border-inline-end-color:var(--_mark-color)}[part~=mark][active]:not([active=false]){border-inline-end-color:red}";
3185
+
3186
+ var __defProp$i = Object.defineProperty;
3187
+ var __getOwnPropDesc$i = Object.getOwnPropertyDescriptor;
3188
+ var __decorateClass$i = (decorators, target, key, kind) => {
3189
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$i(target, key) : target;
3190
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
3191
+ if (decorator = decorators[i])
3192
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
3193
+ if (kind && result) __defProp$i(target, key, result);
3194
+ return result;
3195
+ };
3196
+ let OdxSliderMarksComponent = class extends CustomElement {
3197
+ constructor() {
3198
+ super(...arguments);
3199
+ this.context = sliderContext.defaultValue;
3200
+ this.showLabels = false;
3201
+ }
3202
+ async connectedCallback() {
3203
+ super.connectedCallback?.();
3204
+ this.slot = "marks";
3205
+ }
3206
+ render() {
3207
+ const step = this.step ?? this.context.step;
3208
+ const markCount = Math.floor(this.context.range / step);
3209
+ const marks = new Array(markCount).fill(null).map((_, index) => step * index + this.context.min);
3210
+ return html`
3211
+ ${repeat(marks, (value) => this.renderMark(value))}
3212
+ ${this.renderMark(this.context.max, true)}
3213
+ `;
3214
+ }
3215
+ renderMark(value, last = false) {
3216
+ const label = this.showLabels ? html`<odx-text part="mark-label" size="xs" highlight>${value}</odx-text>` : nothing;
3217
+ return html`
3218
+ <div part="mark" ?last=${last}>
3219
+ <span part="mark-tick"></span>
3220
+ ${label}
3221
+ </div>
3222
+ `;
3223
+ }
3224
+ };
3225
+ __decorateClass$i([
3226
+ consume({ context: sliderContext.context, subscribe: true })
3227
+ ], OdxSliderMarksComponent.prototype, "context", 2);
3228
+ __decorateClass$i([
3229
+ property({ type: Number })
3230
+ ], OdxSliderMarksComponent.prototype, "step", 2);
3231
+ __decorateClass$i([
3232
+ property({ type: Boolean, reflect: true })
3233
+ ], OdxSliderMarksComponent.prototype, "showLabels", 2);
3234
+ OdxSliderMarksComponent = __decorateClass$i([
3235
+ customElement("odx-slider-marks", [styles$i])
3236
+ ], OdxSliderMarksComponent);
3237
+
3238
+ const styles$h = ":host{--_track-size: var(--odx-size-25);--_track-color: var(--odx-slider-track-color, var(--odx-color-primary-rest));--_layer-background: 0;--_layer-interactive-disabled: 1;--_layer-interactive: 2;--_layer-foreground: 3;display:flex;flex-direction:column;place-content:center;min-height:var(--odx-size-300);padding-block-start:var(--odx-size-75);padding-block-end:var(--odx-size-50);padding-inline:var(--odx-size-75);cursor:pointer}:host(:active){cursor:grabbing}:host::part(container){block-size:var(--_track-size);position:relative;background-color:var(--odx-palette-coolgray-40);border-radius:var(--odx-border-radius-sm)}";
3239
+
3240
+ var __defProp$h = Object.defineProperty;
3241
+ var __getOwnPropDesc$h = Object.getOwnPropertyDescriptor;
3242
+ var __typeError$7 = (msg) => {
3243
+ throw TypeError(msg);
3244
+ };
3245
+ var __decorateClass$h = (decorators, target, key, kind) => {
3246
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$h(target, key) : target;
3247
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
3248
+ if (decorator = decorators[i])
3249
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
3250
+ if (kind && result) __defProp$h(target, key, result);
3251
+ return result;
3252
+ };
3253
+ var __accessCheck$7 = (obj, member, msg) => member.has(obj) || __typeError$7("Cannot " + msg);
3254
+ var __privateGet$5 = (obj, member, getter) => (__accessCheck$7(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
3255
+ var __privateAdd$7 = (obj, member, value) => member.has(obj) ? __typeError$7("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
3256
+ var _handleKeyboardEvent, _handleSlotChange$2;
3257
+ let OdxSliderComponent = class extends CustomElement {
3258
+ constructor() {
3259
+ super();
3260
+ this.dragController = new DragController(this, {
3261
+ getDraggableElements: () => Array.from(this.querySelectorAll(OdxSliderHandleComponent.selector)),
3262
+ getContainer: () => this.container
3263
+ });
3264
+ this.context = sliderContext.defaultValue;
3265
+ __privateAdd$7(this, _handleKeyboardEvent, (event) => {
3266
+ const { actions, direction } = getKeyboardEventInfo(event);
3267
+ const target = event.target;
3268
+ if (target.localName !== OdxSliderHandleComponent.selector || actions.tab || actions.backTab || target.disabled) return;
3269
+ event.preventDefault();
3270
+ event.stopPropagation();
3271
+ if (direction.left || direction.down) {
3272
+ target.value -= this.step;
3273
+ } else if (direction.right || direction.up) {
3274
+ target.value += this.step;
3275
+ } else if (actions.start) {
3276
+ target.value = this.context.min;
3277
+ } else if (actions.end) {
3278
+ target.value = this.context.max;
3279
+ }
3280
+ });
3281
+ __privateAdd$7(this, _handleSlotChange$2, async () => {
3282
+ const elements = this.dragController.draggableElements;
3283
+ const min = minBy(elements, (elment) => elment.min)?.min ?? 0;
3284
+ const max = maxBy(elements, (element) => element.max)?.max ?? 1;
3285
+ this.context = { ...this.context, min, max, range: Math.abs(max - min) };
3286
+ });
3287
+ if (!isServer) {
3288
+ this.addEventListener("keydown", __privateGet$5(this, _handleKeyboardEvent));
3289
+ }
3290
+ }
3291
+ set step(value) {
3292
+ this.context = { ...this.context, step: Math.max(1, value) };
3293
+ }
3294
+ get step() {
3295
+ return this.context.step;
3296
+ }
3297
+ set minRange(value) {
3298
+ this.context = { ...this.context, minRange: Math.max(0, value) };
3299
+ }
3300
+ get minRange() {
3301
+ return this.context.minRange;
3302
+ }
3303
+ set labelVisibility(value) {
3304
+ this.context = { ...this.context, labelVisibility: value };
3305
+ }
3306
+ get labelVisibility() {
3307
+ return this.context.labelVisibility;
3308
+ }
3309
+ set unit(value) {
3310
+ this.context = { ...this.context, unit: value.trim() };
3311
+ }
3312
+ get unit() {
3313
+ return this.context.unit;
3314
+ }
3315
+ render() {
3316
+ return html`
3317
+ <div part="container" role="presentation">
3318
+ <slot name="thumbs" @slotchange=${__privateGet$5(this, _handleSlotChange$2)}></slot>
3319
+ <slot name="marks"></slot>
3320
+ </div>
3321
+ `;
3322
+ }
3323
+ };
3324
+ _handleKeyboardEvent = new WeakMap();
3325
+ _handleSlotChange$2 = new WeakMap();
3326
+ __decorateClass$h([
3327
+ provide({ context: sliderContext.context })
3328
+ ], OdxSliderComponent.prototype, "context", 2);
3329
+ __decorateClass$h([
3330
+ query('[part="container"]', true)
3331
+ ], OdxSliderComponent.prototype, "container", 2);
3332
+ __decorateClass$h([
3333
+ property({ type: Number })
3334
+ ], OdxSliderComponent.prototype, "step", 1);
3335
+ __decorateClass$h([
3336
+ property({ type: Number })
3337
+ ], OdxSliderComponent.prototype, "minRange", 1);
3338
+ __decorateClass$h([
3339
+ property()
3340
+ ], OdxSliderComponent.prototype, "labelVisibility", 1);
3341
+ __decorateClass$h([
3342
+ property()
3343
+ ], OdxSliderComponent.prototype, "unit", 1);
3344
+ OdxSliderComponent = __decorateClass$h([
3345
+ customElement("odx-slider", [styles$h])
3346
+ ], OdxSliderComponent);
3347
+
3348
+ const styles$g = ":host{--gap-offset: 0;--size: 0;display:block;inline-size:100%;block-size:var(--size);margin:calc(-1 * var(--gap-offset)) 0}:host([dynamic]){block-size:100%;flex:1 1 auto;max-block-size:var(--size)}:host([horizontal]){block-size:100%;inline-size:var(--size);margin:0 calc(-1 * var(--gap-offset))}:host([dynamic][horizontal]){inline-size:100%;max-inline-size:var(--size)}:host([fill]){min-block-size:var(--size);flex:1 1 var(--size)}:host([fill][horizontal]){min-inline-size:var(--size);flex:1 1 var(--size)}:host([fill][dynamic]){min-block-size:auto;min-inline-size:auto;max-block-size:100%;flex:1 1 auto}:host-context(odx-rail-navigation){--size: var(--odx-size-300);--gap-offset: var(--odx-size-75)}";
3349
+
3350
+ var __defProp$g = Object.defineProperty;
3351
+ var __getOwnPropDesc$g = Object.getOwnPropertyDescriptor;
3352
+ var __decorateClass$g = (decorators, target, key, kind) => {
3353
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$g(target, key) : target;
3354
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
3355
+ if (decorator = decorators[i])
3356
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
3357
+ if (kind && result) __defProp$g(target, key, result);
3358
+ return result;
3359
+ };
3360
+ let OdxSpacerComponent = class extends CustomElement {
3361
+ constructor() {
3362
+ super(...arguments);
3363
+ this.horizontal = false;
3364
+ this.dynamic = false;
3365
+ this.fill = false;
3366
+ }
3367
+ render() {
3368
+ return "";
3369
+ }
3370
+ };
3371
+ __decorateClass$g([
3372
+ property({ type: Boolean, reflect: true })
3373
+ ], OdxSpacerComponent.prototype, "horizontal", 2);
3374
+ __decorateClass$g([
3375
+ property({ type: Boolean, reflect: true })
3376
+ ], OdxSpacerComponent.prototype, "dynamic", 2);
3377
+ __decorateClass$g([
3378
+ property({ type: Boolean, reflect: true })
3379
+ ], OdxSpacerComponent.prototype, "fill", 2);
3380
+ OdxSpacerComponent = __decorateClass$g([
3381
+ customElement("odx-spacer", [styles$g])
3382
+ ], OdxSpacerComponent);
3383
+
3384
+ const styles$f = ":host{--_color-background: var(--odx-color-input-control-fill);--_color-stroke: var(--odx-color-input-control-stroke);--_color-foreground: var(--odx-color-foreground);display:grid;width:min-content;grid-template-columns:auto 1fr auto;grid-template-areas:\"decrement input increment\"}[part~=action],::slotted(input){border:var(--odx-border-width-thin) solid var(--_color-stroke);background-color:var(--_color-background);outline:var(--odx-focus-ring-outline);outline-offset:var(--odx-focus-ring-offset);block-size:var(--odx-size-225);color:var(--_color-foreground);transition:var(--odx-transition-reduced);transition-property:background-color,border-color,color,outline-color}::slotted(input){grid-area:input;min-width:auto;padding:0 var(--odx-size-75)!important;text-align:center;min-inline-size:var(--odx-size-400);appearance:textfield;font-weight:var(--odx-typography-font-weight-medium)!important}[part~=action]{display:flex;place-content:center;place-items:center;inline-size:var(--odx-size-225);cursor:pointer;border-radius:var(--odx-border-radius-controls);font-size:var(--odx-typography-font-size-3)}[part~=action-increment]{grid-area:increment;border-start-start-radius:0;border-end-start-radius:0;border-inline-start:none}[part~=action-decrement]{grid-area:decrement;border-start-end-radius:0;border-end-end-radius:0;border-inline-end:none}[part~=action]:hover,::slotted(input:hover){--_color-background: var(--odx-color-input-control-fill-hover)}::slotted(input:hover){--_color-stroke: var(--odx-color-input-control-stroke-hover)}[part~=action]:focus-visible,::slotted(input:focus-visible){outline-color:var(--odx-focus-ring-color);z-index:1}:host([aria-disabled=\"true\"]) ::slotted(input),[part~=action]:disabled{--_color-background: var(--odx-color-disabled-fill);--_color-foreground: var(--odx-color-disabled-foreground);cursor:not-allowed}:host([compact]:not([compact=\"false\"])){grid-template-columns:1fr auto;grid-template-rows:1fr 1fr;grid-template-areas:\"input increment\" \"input decrement\";[part~=action]{block-size:calc(var(--odx-size-225) / 2);font-size:var(--odx-typography-font-size-1);border-inline-end:var(--odx-border-width-thin) solid var(--odx-color-input-control-stroke);border-inline-start:none;border-radius:var(--odx-border-radius-controls)}[part~=action-increment]{border-block-end:none;border-start-start-radius:0;border-end-start-radius:0;border-end-end-radius:0}[part~=action-decrement]{border-start-start-radius:0;border-end-start-radius:0;border-start-end-radius:0}::slotted(input){border-start-start-radius:var(--odx-border-radius-controls);border-end-start-radius:var(--odx-border-radius-controls)}}";
3385
+
3386
+ var __defProp$f = Object.defineProperty;
3387
+ var __getOwnPropDesc$f = Object.getOwnPropertyDescriptor;
3388
+ var __typeError$6 = (msg) => {
3389
+ throw TypeError(msg);
3390
+ };
3391
+ var __decorateClass$f = (decorators, target, key, kind) => {
3392
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$f(target, key) : target;
3393
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
3394
+ if (decorator = decorators[i])
3395
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
3396
+ if (kind && result) __defProp$f(target, key, result);
3397
+ return result;
3398
+ };
3399
+ var __accessCheck$6 = (obj, member, msg) => member.has(obj) || __typeError$6("Cannot " + msg);
3400
+ var __privateGet$4 = (obj, member, getter) => (__accessCheck$6(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
3401
+ var __privateAdd$6 = (obj, member, value) => member.has(obj) ? __typeError$6("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
3402
+ var _handleSlotChange$1, _handleInputFocus;
3403
+ let OdxSpinboxComponent = class extends CanBeDisabled(CustomElement) {
3404
+ constructor() {
3405
+ super(...arguments);
3406
+ this.compact = false;
3407
+ __privateAdd$6(this, _handleSlotChange$1, () => {
3408
+ this.inputElement?.removeEventListener("focus", __privateGet$4(this, _handleInputFocus));
3409
+ if (!this.inputElement) return;
3410
+ this.inputElement.type = "number";
3411
+ this.inputElement.value = this.inputElement.value || this.inputElement.min;
3412
+ this.inputElement.addEventListener("focus", __privateGet$4(this, _handleInputFocus));
3413
+ this.requestUpdate();
3414
+ });
3415
+ __privateAdd$6(this, _handleInputFocus, () => {
3416
+ this.inputElement?.select();
3417
+ });
3418
+ }
3419
+ get inputElement() {
3420
+ return this.inputElements[0] ?? null;
3421
+ }
3422
+ render() {
3423
+ const min = this.inputElement?.min ? Number(this.inputElement.min) : null;
3424
+ const max = this.inputElement?.max ? Number(this.inputElement.max) : null;
3425
+ const value = this.inputElement?.value ? Number(this.inputElement.value) : null;
3426
+ const canStepDown = min === null || value === null || value > min;
3427
+ const canStepUp = max === null || value === null || value < max;
3428
+ if (this.inputElement) {
3429
+ this.inputElement.disabled = this.disabled;
3430
+ }
3431
+ const decrementAction = html`
3432
+ <button part="action action-decrement" @click=${this.stepDown} ?disabled=${this.disabled || !canStepDown}>
3433
+ <odx-icon name="minus"></odx-icon>
3434
+ </button>
3435
+ `;
3436
+ const incrementAction = html`
3437
+ <button part="action action-increment" @click=${this.stepUp} ?disabled=${this.disabled || !canStepUp}>
3438
+ <odx-icon name="plus"></odx-icon>
3439
+ </button>
3440
+ `;
3441
+ const slot = html`<slot @slotchange=${__privateGet$4(this, _handleSlotChange$1)}></slot>`;
3442
+ if (this.compact) {
3443
+ return html`${slot}${incrementAction}${decrementAction}`;
3444
+ }
3445
+ return html`${decrementAction}${slot}${incrementAction}`;
3446
+ }
3447
+ stepUp() {
3448
+ if (!this.inputElement) return;
3449
+ this.inputElement.stepUp();
3450
+ this.requestUpdate();
3451
+ }
3452
+ stepDown() {
3453
+ if (!this.inputElement) return;
3454
+ this.inputElement.stepDown();
3455
+ this.requestUpdate();
3456
+ }
3457
+ };
3458
+ _handleSlotChange$1 = new WeakMap();
3459
+ _handleInputFocus = new WeakMap();
3460
+ OdxSpinboxComponent.shadowRootOptions = {
3461
+ mode: "open",
3462
+ delegatesFocus: true
3463
+ };
3464
+ __decorateClass$f([
3465
+ queryAssignedElements({ selector: "input", flatten: true })
3466
+ ], OdxSpinboxComponent.prototype, "inputElements", 2);
3467
+ __decorateClass$f([
3468
+ property({ type: Boolean, reflect: true })
3469
+ ], OdxSpinboxComponent.prototype, "compact", 2);
3470
+ OdxSpinboxComponent = __decorateClass$f([
3471
+ customElement("odx-spinbox", [styles$f])
3472
+ ], OdxSpinboxComponent);
3473
+
3474
+ const styles$e = ":host{--gap: 0;display:flex;flex-direction:row;max-inline-size:100%;inline-size:100%;gap:var(--gap)}:host([vertical]){flex-direction:column}:host([wrap]){flex-wrap:wrap}:host([gap=\"none\"]){--gap: 0}:host([gap=\"xs\"]){--gap: var(--odx-size-25)}:host([gap=\"sm\"]){--gap: var(--odx-size-50)}:host,:host([gap=\"md\"]){--gap: var(--odx-size-75)}:host([gap=\"lg\"]){--gap: var(--odx-size-150)}:host([gap=\"xl\"]){--gap: var(--odx-size-225)}:host,:host([align=\"start\"]){align-items:flex-start}:host([align=\"end\"]){align-items:end}:host([align=\"center\"]){align-items:center}:host([align=\"stretch\"]){align-items:stretch}:host([justify=\"center\"]){justify-content:center}:host,:host([justify=\"start\"]){justify-content:flex-start}:host([justify=\"end\"]){justify-content:flex-end}:host([justify=\"stretch\"]){justify-content:stretch}:host([justify=\"space-between\"]){justify-content:space-between}:host([justify=\"space-around\"]){justify-content:space-around}:host([justify=\"space-evenly\"]){justify-content:space-evenly}";
3475
+
3476
+ var __defProp$e = Object.defineProperty;
3477
+ var __getOwnPropDesc$e = Object.getOwnPropertyDescriptor;
3478
+ var __decorateClass$e = (decorators, target, key, kind) => {
3479
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$e(target, key) : target;
3480
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
3481
+ if (decorator = decorators[i])
3482
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
3483
+ if (kind && result) __defProp$e(target, key, result);
3484
+ return result;
3485
+ };
3486
+ let OdxStackComponent = class extends CustomElement {
3487
+ constructor() {
3488
+ super(...arguments);
3489
+ this.vertical = false;
3490
+ this.wrap = false;
3491
+ }
3492
+ render() {
3493
+ return html`<slot></slot>`;
3494
+ }
3495
+ };
3496
+ __decorateClass$e([
3497
+ property({ attribute: "align-items", reflect: true })
3498
+ ], OdxStackComponent.prototype, "align", 2);
3499
+ __decorateClass$e([
3500
+ property({ attribute: "justify-content", reflect: true })
3501
+ ], OdxStackComponent.prototype, "justify", 2);
3502
+ __decorateClass$e([
3503
+ property({ reflect: true })
3504
+ ], OdxStackComponent.prototype, "gap", 2);
3505
+ __decorateClass$e([
3506
+ property({ type: Boolean, reflect: true })
3507
+ ], OdxStackComponent.prototype, "vertical", 2);
3508
+ __decorateClass$e([
3509
+ property({ type: Boolean, reflect: true })
3510
+ ], OdxStackComponent.prototype, "wrap", 2);
3511
+ OdxStackComponent = __decorateClass$e([
3512
+ customElement("odx-stack", [styles$e])
3513
+ ], OdxStackComponent);
3514
+
3515
+ const StackAlign = {
3516
+ START: "start",
3517
+ END: "end",
3518
+ CENTER: "center"
3519
+ };
3520
+ const StackGap = {
3521
+ NONE: "none",
3522
+ XS: "xs",
3523
+ SM: "sm",
3524
+ MD: "md",
3525
+ LG: "lg",
3526
+ XL: "xl"
3527
+ };
3528
+ const StackJustify = {
3529
+ START: "start",
3530
+ END: "end",
3531
+ CENTER: "center",
3532
+ SPACE_BETWEEN: "space-between",
3533
+ SPACE_AROUND: "space-around",
3534
+ SPACE_EVENLY: "space-evenly"
3535
+ };
3536
+
3537
+ const styles$d = "*{box-sizing:border-box}:host{--_indicator-space: var(--odx-size-12);--_indicator-size: calc(var(--odx-size-150) - var(--_indicator-space) * 2);--_indicator-color-background: var(--odx-color-selection-control-fill);--_indicator-color-stroke: var(--odx-color-selection-control-stroke);--_indicator-track-color-background: var(--odx-color-selection-control-fill);--_label-color-foreground: var(--odx-color-foreground);cursor:pointer;display:inline-flex;margin:var(--odx-size-37) var(--odx-size-75);user-select:none;border-radius:var(--odx-border-radius-controls);outline:var(--odx-focus-ring-outline);transition-property:background-color border-color outline-color}:host,.indicator,.content{transition:var(--odx-transition-reduced)}.indicator{display:flex;place-items:center;block-size:var(--odx-size-150);position:relative}.indicator:before,.indicator:after{content:\"\";display:block;border-radius:var(--odx-size-225);box-sizing:border-box;transition:inherit;border-radius:var(--odx-border-radius-circle);border:var(--odx-border-width-thin) solid var(--_indicator-color-stroke)}.indicator:before{background-color:var(--_indicator-track-color-background);block-size:var(--odx-size-37);inline-size:var(--odx-size-225)}.indicator:after{display:flex;place-content:center;place-items:center;block-size:var(--_indicator-size);inline-size:var(--_indicator-size);flex-shrink:0;background-color:var(--_indicator-color-background);color:var(--_indicator-color-foreground);transition-property:background-color,border-color,transform;position:absolute;inset-inline-start:0;box-shadow:var(--odx-shadow-level-0)}.label{display:inline-block;cursor:inherit}.content{margin-inline-start:var(--odx-size-75);padding-inline-end:var(--odx-size-25);color:var(--_label-color-foreground);transition-property:color}:host(:empty) .content{display:none}:host(:hover){--_indicator-color-stroke: var(--odx-color-selection-control-stroke-hover);--_indicator-color-background: var(--odx-color-selection-control-fill-hover)}:host(:focus-visible){outline-color:var(--odx-focus-ring-color)}:host([aria-checked=\"true\"]){--_indicator-color-background: var(--odx-color-selection-control-fill-selected);--_indicator-color-stroke: var(--odx-color-selection-control-stroke-selected);--_indicator-track-color-background: var(--odx-color-selection-control-fill-selected);.indicator:after{transform:translate(var(--odx-size-225)) translate(-100%)}}:host([aria-checked=\"true\"]:not([aria-disabled]):hover){--_indicator-color-background: var(--odx-color-selection-control-fill-selected-hover)}:host([aria-disabled=\"true\"]){--_indicator-color-background: var(--odx-color-disabled-fill);--_indicator-color-stroke: var(--odx-color-disabled-stroke);--_indicator-track-color-background: var(--odx-color-disabled-fill);--_label-color-foreground: var(--odx-color-disabled-foreground);cursor:not-allowed}:host([aria-disabled=\"true\"][aria-checked=\"true\"]){--_indicator-color-background: var(--odx-color-disabled-fill-selected);--_indicator-color-stroke: var(--_indicator-color-background);--_indicator-track-color-background: var(--odx-color-disabled-fill-selected)}";
3538
+
3539
+ var __defProp$d = Object.defineProperty;
3540
+ var __getOwnPropDesc$d = Object.getOwnPropertyDescriptor;
3541
+ var __decorateClass$d = (decorators, target, key, kind) => {
3542
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$d(target, key) : target;
3543
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
3544
+ if (decorator = decorators[i])
3545
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
3546
+ if (kind && result) __defProp$d(target, key, result);
3547
+ return result;
3548
+ };
3549
+ let OdxSwitchComponent = class extends CheckboxFormControl {
3550
+ connectedCallback() {
3551
+ super.connectedCallback();
3552
+ this.role = "switch";
3553
+ }
3554
+ render() {
3555
+ return html`
3556
+ <div class="indicator"></div>
3557
+ <div class="content">
3558
+ <div class="label">
3559
+ <slot></slot>
3560
+ </div>
3561
+ <div class="description">
3562
+ <slot name="description"></slot>
3563
+ </div>
3564
+ </div>
3565
+ `;
3566
+ }
3567
+ };
3568
+ OdxSwitchComponent = __decorateClass$d([
3569
+ customElement("odx-switch", [styles$d])
3570
+ ], OdxSwitchComponent);
3571
+
3572
+ const styles$c = ":host{display:block;text-decoration:inherit;color:var(--_color, inherit);font-size:var(--_font-size, inherit);line-height:var(--_line-height, inherit);font-weight:var(--_font-weight, inherit)}:host([inline]){display:inline-block}:host([emphasized]:not([emphasized=\"false\"])){--_font-weight: var(--odx-typography-font-weight-medium)}:host([size=\"xs\"]){--_font-size: var(--odx-typography-font-size-1);--_line-height: var(--odx-typography-line-height-1)}:host([size=\"sm\"]){--_font-size: var(--odx-typography-font-size-2);--_line-height: var(--odx-typography-line-height-2)}:host([size=\"md\"]){--_font-size: var(--odx-typography-font-size-3);--_line-height: var(--odx-typography-line-height-3)}:host([size=\"lg\"]){--_font-size: var(--odx-typography-font-size-4);--_line-height: var(--odx-typography-line-height-4)}";
3573
+
3574
+ var __defProp$c = Object.defineProperty;
3575
+ var __getOwnPropDesc$c = Object.getOwnPropertyDescriptor;
3576
+ var __decorateClass$c = (decorators, target, key, kind) => {
3577
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$c(target, key) : target;
3578
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
3579
+ if (decorator = decorators[i])
3580
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
3581
+ if (kind && result) __defProp$c(target, key, result);
3582
+ return result;
3583
+ };
3584
+ let OdxTextComponent = class extends CustomElement {
3585
+ constructor() {
3586
+ super(...arguments);
3587
+ this.emphasized = false;
3588
+ }
3589
+ };
3590
+ __decorateClass$c([
3591
+ property({ type: Boolean, reflect: true })
3592
+ ], OdxTextComponent.prototype, "emphasized", 2);
3593
+ __decorateClass$c([
3594
+ property({ reflect: true })
3595
+ ], OdxTextComponent.prototype, "size", 2);
3596
+ __decorateClass$c([
3597
+ property({ reflect: true })
3598
+ ], OdxTextComponent.prototype, "variant", 2);
3599
+ OdxTextComponent = __decorateClass$c([
3600
+ customElement("odx-text", [styles$c])
3601
+ ], OdxTextComponent);
3602
+
3603
+ const TextSize = {
3604
+ XS: "xs",
3605
+ SM: "sm",
3606
+ MD: "md",
3607
+ LG: "lg"
3608
+ };
3609
+ const TextVariant = {
3610
+ HINT: "hint",
3611
+ ACCENT: "info",
3612
+ DANGER: "danger"
3613
+ };
3614
+
3615
+ const styles$b = ":host{--_border-radius: var(--odx-border-radius-sm);--_color-background: transparent;--_color-stroke: var(--odx-color-selection-control-stroke);--_color-foreground: var(--odx-color-foreground);--_size: var(--odx-size-225);--_padding-inline: var(--odx-size-75);display:inline-flex;cursor:pointer;user-select:none;position:relative;border:var(--odx-border-width-thin) solid var(--_color-stroke);border-radius:var(--odx-border-radius-controls);padding-inline:var(--_padding-inline);margin:var(--odx-size-37);transition:var(--odx-transition-default);transition-property:color,background-color,border-color,outline-color;background-color:var(--_color-background);outline-color:var(--_color-stroke);block-size:var(--_size);place-items:center;color:var(--_color-foreground);font-weight:var(--odx-typography-font-weight-medium);outline:var(--odx-focus-ring-outline);outline-offset:var(--odx-focus-ring-offset)}:host::part(label){display:inline-block}:host(:empty)::part(content){display:none}:host(:hover){--_color-background: var(--odx-color-selection-control-fill-hover);--_color-stroke: var(--odx-color-selection-control-stroke-hover)}:host(:focus-visible){outline-color:var(--odx-focus-ring-color)}:host([aria-pressed=\"true\"]){--_color-background: var(--odx-color-selection-control-fill-selected);--_color-foreground: var(--odx-color-foreground-light);--_color-stroke: var(--odx-color-selection-control-stroke-selected)}:host([aria-pressed=\"true\"]:not(:is([aria-readonly],[aria-disabled])):hover){--_color-background: var(--odx-color-selection-control-fill-selected-hover)}:host([aria-disabled=\"true\"]){--_color-background: var(--odx-color-disabled-fill);--_color-foreground: var(--odx-color-disabled-foreground);--_color-stroke: var(--odx-color-disabled-stroke);cursor:not-allowed}:host([aria-readonly=\"true\"]){--_color-background: var(--odx-color-selection-control-fill-readonly);--_color-foreground: var(--odx-color-selection-control-foreground-readonly);--_color-stroke: var(--odx-color-selection-control-stroke-readonly);cursor:default}:host([aria-pressed=\"true\"][aria-disabled=\"true\"]){--_color-background: var(--odx-color-disabled-fill-selected);--_color-foreground: var(--odx-color-disabled-foreground-selected)}:host(:not(:last-child)):host-context(odx-button-group[connected]){margin-inline-end:calc(-1 * var(--odx-size-12))!important}";
3616
+
3617
+ var __defProp$b = Object.defineProperty;
3618
+ var __getOwnPropDesc$b = Object.getOwnPropertyDescriptor;
3619
+ var __decorateClass$b = (decorators, target, key, kind) => {
3620
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$b(target, key) : target;
3621
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
3622
+ if (decorator = decorators[i])
3623
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
3624
+ if (kind && result) __defProp$b(target, key, result);
3625
+ return result;
3626
+ };
3627
+ let OdxToggleButtonComponent = class extends CheckboxFormControl {
3628
+ constructor() {
3629
+ super(...arguments);
3630
+ this.checked = false;
3631
+ this.pressed = false;
3632
+ }
3633
+ connectedCallback() {
3634
+ super.connectedCallback?.();
3635
+ this.role = "button";
3636
+ }
3637
+ updateAriaAttributes() {
3638
+ this.ariaPressed = toAriaBooleanAttribute(this.pressed, false);
3639
+ }
3640
+ willUpdate(props) {
3641
+ if (props.has("checked")) {
3642
+ this.pressed = this.checked;
3643
+ }
3644
+ super.willUpdate(props);
3645
+ }
3646
+ render() {
3647
+ return html`
3648
+ <div part="indicator"></div>
3649
+ <div part="label"><slot></slot></div>
3650
+ `;
3651
+ }
3652
+ };
3653
+ __decorateClass$b([
3654
+ property({ type: Boolean })
3655
+ ], OdxToggleButtonComponent.prototype, "checked", 2);
3656
+ __decorateClass$b([
3657
+ property({ type: Boolean })
3658
+ ], OdxToggleButtonComponent.prototype, "pressed", 2);
3659
+ OdxToggleButtonComponent = __decorateClass$b([
3660
+ customElement("odx-toggle-button", [styles$b])
3661
+ ], OdxToggleButtonComponent);
3662
+
3663
+ const styles$a = ":host{all:initial;border:0!important;clip:rect(1px,1px,1px,1px)!important;block-size:1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;inset-block-start:0;inline-size:1px!important}";
3664
+
3665
+ var __defProp$a = Object.defineProperty;
3666
+ var __getOwnPropDesc$a = Object.getOwnPropertyDescriptor;
3667
+ var __decorateClass$a = (decorators, target, key, kind) => {
3668
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$a(target, key) : target;
3669
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
3670
+ if (decorator = decorators[i])
3671
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
3672
+ if (kind && result) __defProp$a(target, key, result);
3673
+ return result;
3674
+ };
3675
+ let OdxVisuallyHiddenComponent = class extends CustomElement {
3676
+ render() {
3677
+ return html`<slot></slot>`;
3678
+ }
3679
+ };
3680
+ OdxVisuallyHiddenComponent = __decorateClass$a([
3681
+ customElement("odx-visually-hidden", [styles$a])
3682
+ ], OdxVisuallyHiddenComponent);
3683
+
3684
+ const styles$9 = ":host{display:block}";
3685
+
3686
+ var __defProp$9 = Object.defineProperty;
3687
+ var __getOwnPropDesc$9 = Object.getOwnPropertyDescriptor;
3688
+ var __typeError$5 = (msg) => {
3689
+ throw TypeError(msg);
3690
+ };
3691
+ var __decorateClass$9 = (decorators, target, key, kind) => {
3692
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$9(target, key) : target;
3693
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
3694
+ if (decorator = decorators[i])
3695
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
3696
+ if (kind && result) __defProp$9(target, key, result);
3697
+ return result;
3698
+ };
3699
+ var __accessCheck$5 = (obj, member, msg) => member.has(obj) || __typeError$5("Cannot " + msg);
3700
+ var __privateGet$3 = (obj, member, getter) => (__accessCheck$5(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
3701
+ var __privateAdd$5 = (obj, member, value) => member.has(obj) ? __typeError$5("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
3702
+ var _handleSlotChange;
3703
+ const FORM_FIELD_CONTROL_SELECTOR = "odx-form-field-control";
3704
+ let OdxFormFieldElement = class extends CustomElement {
3705
+ constructor() {
3706
+ super(...arguments);
3707
+ __privateAdd$5(this, _handleSlotChange, () => {
3708
+ this.control?.addEventListener("change", () => this.requestUpdate());
3709
+ });
3710
+ }
3711
+ get control() {
3712
+ return this.elements.find((element) => element.hasAttribute(FORM_FIELD_CONTROL_SELECTOR));
3713
+ }
3714
+ connectedCallback() {
3715
+ super.connectedCallback?.();
3716
+ }
3717
+ render() {
3718
+ const isValid = this.control?.checkValidity();
3719
+ return html`
3720
+ <slot @slotchange=${__privateGet$3(this, _handleSlotChange)}></slot>
3721
+ ${when(isValid === false, () => this.renderErrorMessage())}
3722
+
3723
+ `;
3724
+ }
3725
+ renderErrorMessage() {
3726
+ return html`
3727
+ <odx-inline-message variant="danger">
3728
+ ${this.control?.validationMessage}
3729
+ </odx-inline-message>
3730
+ `;
3731
+ }
3732
+ };
3733
+ _handleSlotChange = new WeakMap();
3734
+ __decorateClass$9([
3735
+ queryAssignedElements({ flatten: true })
3736
+ ], OdxFormFieldElement.prototype, "elements", 2);
3737
+ OdxFormFieldElement = __decorateClass$9([
3738
+ customElement("odx-form-field", [styles$9])
3739
+ ], OdxFormFieldElement);
3740
+
3741
+ const styles$8 = ":host{display:block;flex-grow:1}";
3742
+
3743
+ var __defProp$8 = Object.defineProperty;
3744
+ var __getOwnPropDesc$8 = Object.getOwnPropertyDescriptor;
3745
+ var __decorateClass$8 = (decorators, target, key, kind) => {
3746
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$8(target, key) : target;
3747
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
3748
+ if (decorator = decorators[i])
3749
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
3750
+ if (kind && result) __defProp$8(target, key, result);
3751
+ return result;
3752
+ };
3753
+ let OdxTableBodyElement = class extends CustomElement {
3754
+ connectedCallback() {
3755
+ super.connectedCallback?.();
3756
+ this.role = "rowgroup";
3757
+ }
3758
+ render() {
3759
+ return html`<slot></slot>`;
3760
+ }
3761
+ };
3762
+ OdxTableBodyElement = __decorateClass$8([
3763
+ customElement("odx-table-body", [styles$8])
3764
+ ], OdxTableBodyElement);
3765
+
3766
+ const styles$7 = ":host{display:block;block-size:auto;flex:1 1 0%;padding-inline:var(--odx-size-75);line-height:var(--odx-size-300)}";
3767
+
3768
+ var __defProp$7 = Object.defineProperty;
3769
+ var __getOwnPropDesc$7 = Object.getOwnPropertyDescriptor;
3770
+ var __decorateClass$7 = (decorators, target, key, kind) => {
3771
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$7(target, key) : target;
3772
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
3773
+ if (decorator = decorators[i])
3774
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
3775
+ if (kind && result) __defProp$7(target, key, result);
3776
+ return result;
3777
+ };
3778
+ let OdxTableCellElement = class extends CustomElement {
3779
+ connectedCallback() {
3780
+ super.connectedCallback?.();
3781
+ this.role = "gridcell";
3782
+ }
3783
+ render() {
3784
+ return html`<slot></slot>`;
3785
+ }
3786
+ };
3787
+ OdxTableCellElement = __decorateClass$7([
3788
+ customElement("odx-table-cell", [styles$7])
3789
+ ], OdxTableCellElement);
3790
+
3791
+ const styles$6 = ":host{display:block;block-size:auto;flex:0 0 auto;padding-inline:var(--odx-size-75);line-height:var(--odx-size-300)}.checkbox{padding:var(--odx-size-37)}";
3792
+
3793
+ var __defProp$6 = Object.defineProperty;
3794
+ var __getOwnPropDesc$6 = Object.getOwnPropertyDescriptor;
3795
+ var __typeError$4 = (msg) => {
3796
+ throw TypeError(msg);
3797
+ };
3798
+ var __decorateClass$6 = (decorators, target, key, kind) => {
3799
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$6(target, key) : target;
3800
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
3801
+ if (decorator = decorators[i])
3802
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
3803
+ if (kind && result) __defProp$6(target, key, result);
3804
+ return result;
3805
+ };
3806
+ var __accessCheck$4 = (obj, member, msg) => member.has(obj) || __typeError$4("Cannot " + msg);
3807
+ var __privateAdd$4 = (obj, member, value) => member.has(obj) ? __typeError$4("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
3808
+ var __privateMethod$4 = (obj, member, method) => (__accessCheck$4(obj, member, "access private method"), method);
3809
+ var _OdxTableCheckboxCellElement_instances, handleChange_fn$1;
3810
+ let OdxTableCheckboxCellElement = class extends CustomElement {
3811
+ constructor() {
3812
+ super(...arguments);
3813
+ __privateAdd$4(this, _OdxTableCheckboxCellElement_instances);
3814
+ this.checked = false;
3815
+ this.disabled = false;
3816
+ this.indeterminate = false;
3817
+ }
3818
+ connectedCallback() {
3819
+ super.connectedCallback?.();
3820
+ this.role = "gridcell";
3821
+ }
3822
+ click() {
3823
+ this.control.click();
3824
+ }
3825
+ render() {
3826
+ return html`<odx-checkbox class="checkbox" ?checked=${this.checked} ?disabled=${this.disabled} ?indeterminate=${this.indeterminate} @change=${__privateMethod$4(this, _OdxTableCheckboxCellElement_instances, handleChange_fn$1)}></odx-checkbox>`;
3827
+ }
3828
+ };
3829
+ _OdxTableCheckboxCellElement_instances = new WeakSet();
3830
+ handleChange_fn$1 = function(event) {
3831
+ event.preventDefault();
3832
+ event.stopPropagation();
3833
+ this.checked = event.target.checked;
3834
+ this.indeterminate = false;
3835
+ this.emit("change");
3836
+ };
3837
+ __decorateClass$6([
3838
+ query(".checkbox")
3839
+ ], OdxTableCheckboxCellElement.prototype, "control", 2);
3840
+ __decorateClass$6([
3841
+ property({ type: Boolean })
3842
+ ], OdxTableCheckboxCellElement.prototype, "checked", 2);
3843
+ __decorateClass$6([
3844
+ property({ type: Boolean })
3845
+ ], OdxTableCheckboxCellElement.prototype, "disabled", 2);
3846
+ __decorateClass$6([
3847
+ property({ type: Boolean })
3848
+ ], OdxTableCheckboxCellElement.prototype, "indeterminate", 2);
3849
+ OdxTableCheckboxCellElement = __decorateClass$6([
3850
+ customElement("odx-table-checkbox-cell", [styles$6])
3851
+ ], OdxTableCheckboxCellElement);
3852
+
3853
+ const styles$5 = ":host{display:block;block-size:auto;flex:1 1 0%;padding-inline:var(--odx-size-75);line-height:var(--odx-size-225)}";
3854
+
3855
+ var __defProp$5 = Object.defineProperty;
3856
+ var __getOwnPropDesc$5 = Object.getOwnPropertyDescriptor;
3857
+ var __decorateClass$5 = (decorators, target, key, kind) => {
3858
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$5(target, key) : target;
3859
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
3860
+ if (decorator = decorators[i])
3861
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
3862
+ if (kind && result) __defProp$5(target, key, result);
3863
+ return result;
3864
+ };
3865
+ let OdxTableHeaderCellElement = class extends CustomElement {
3866
+ constructor() {
3867
+ super(...arguments);
3868
+ this.sortable = false;
3869
+ }
3870
+ connectedCallback() {
3871
+ super.connectedCallback?.();
3872
+ this.role = "columnheader";
3873
+ }
3874
+ render() {
3875
+ return html`
3876
+ <odx-title size="xs">
3877
+ <slot></slot> (${this.sortable ? "sortable" : "not sortable"})
3878
+ </odx-title>
3879
+ `;
3880
+ }
3881
+ };
3882
+ __decorateClass$5([
3883
+ property({ type: Boolean })
3884
+ ], OdxTableHeaderCellElement.prototype, "sortable", 2);
3885
+ OdxTableHeaderCellElement = __decorateClass$5([
3886
+ customElement("odx-table-header-cell", [styles$5])
3887
+ ], OdxTableHeaderCellElement);
3888
+
3889
+ const styles$4 = ":host{display:flex;align-items:center;border-block-end:var(--odx-border-sm);border-color:var(--odx-color-outline-surface);padding-inline:var(--odx-size-75)}odx-checkbox{pointer-events:none;margin-inline-start:var(--odx-size-75)}";
3890
+
3891
+ var __defProp$4 = Object.defineProperty;
3892
+ var __getOwnPropDesc$4 = Object.getOwnPropertyDescriptor;
3893
+ var __typeError$3 = (msg) => {
3894
+ throw TypeError(msg);
3895
+ };
3896
+ var __decorateClass$4 = (decorators, target, key, kind) => {
3897
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$4(target, key) : target;
3898
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
3899
+ if (decorator = decorators[i])
3900
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
3901
+ if (kind && result) __defProp$4(target, key, result);
3902
+ return result;
3903
+ };
3904
+ var __accessCheck$3 = (obj, member, msg) => member.has(obj) || __typeError$3("Cannot " + msg);
3905
+ var __privateAdd$3 = (obj, member, value) => member.has(obj) ? __typeError$3("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
3906
+ var __privateMethod$3 = (obj, member, method) => (__accessCheck$3(obj, member, "access private method"), method);
3907
+ var _OdxTableHeaderElement_instances, handleChange_fn;
3908
+ let OdxTableHeaderElement = class extends CheckboxFormControl {
3909
+ constructor() {
3910
+ super(...arguments);
3911
+ __privateAdd$3(this, _OdxTableHeaderElement_instances);
3912
+ }
3913
+ connectedCallback() {
3914
+ super.connectedCallback?.();
3915
+ this.role = "row";
3916
+ }
3917
+ render() {
3918
+ return html` <slot @change=${__privateMethod$3(this, _OdxTableHeaderElement_instances, handleChange_fn)}></slot>`;
3919
+ }
3920
+ };
3921
+ _OdxTableHeaderElement_instances = new WeakSet();
3922
+ handleChange_fn = async function(event) {
3923
+ if (event.target.localName !== OdxTableCheckboxCellElement.selector) return;
3924
+ this.selected = event.target.checked;
3925
+ await 0;
3926
+ if (!event.defaultPrevented) return;
3927
+ this.selected = !this.selected;
3928
+ };
3929
+ __decorateClass$4([
3930
+ property({ type: Boolean, reflect: true })
3931
+ ], OdxTableHeaderElement.prototype, "selected", 2);
3932
+ OdxTableHeaderElement = __decorateClass$4([
3933
+ customElement("odx-table-header", [styles$4])
3934
+ ], OdxTableHeaderElement);
3935
+
3936
+ const styles$3 = ":host{--_color-fill: transparent;display:flex;align-items:center;inline-size:100%;border-block-end:var(--odx-border-sm);background-color:var(--_color-fill);transition:var(--odx-transition-reduced);transition-property:background-color;padding-inline:var(--odx-size-75);cursor:pointer}:host(:not(:last-of-type)){border-color:var(--odx-color-outline-surface)}:host([selectable]:not([selectable=\"false\"]):hover){--_color-fill: var(--odx-color-surface-raised)}:host([selected]:not([selected=\"false\"])){--_color-fill: var(--odx-color-surface-raised)}odx-checkbox{pointer-events:none;margin-inline-start:var(--odx-size-75)}";
3937
+
3938
+ var __defProp$3 = Object.defineProperty;
3939
+ var __getOwnPropDesc$3 = Object.getOwnPropertyDescriptor;
3940
+ var __typeError$2 = (msg) => {
3941
+ throw TypeError(msg);
3942
+ };
3943
+ var __decorateClass$3 = (decorators, target, key, kind) => {
3944
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$3(target, key) : target;
3945
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
3946
+ if (decorator = decorators[i])
3947
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
3948
+ if (kind && result) __defProp$3(target, key, result);
3949
+ return result;
3950
+ };
3951
+ var __accessCheck$2 = (obj, member, msg) => member.has(obj) || __typeError$2("Cannot " + msg);
3952
+ var __privateGet$2 = (obj, member, getter) => (__accessCheck$2(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
3953
+ var __privateAdd$2 = (obj, member, value) => member.has(obj) ? __typeError$2("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
3954
+ var __privateMethod$2 = (obj, member, method) => (__accessCheck$2(obj, member, "access private method"), method);
3955
+ var _OdxTableRowElement_instances, handleSelectedChange_fn, handleSelectableChange_fn, _handleClick, _handleChange$1, handleSlotchange_fn, isCheckboxCell_fn;
3956
+ let OdxTableRowElement = class extends CustomElement {
3957
+ constructor() {
3958
+ super(...arguments);
3959
+ __privateAdd$2(this, _OdxTableRowElement_instances);
3960
+ this.disabled = false;
3961
+ this.selected = false;
3962
+ this.selectable = true;
3963
+ this.value = "";
3964
+ __privateAdd$2(this, _handleClick, (event) => {
3965
+ const isCheckboxCell = event.composedPath().some((node) => node.localName === OdxTableCheckboxCellElement.selector);
3966
+ if (isCheckboxCell) return;
3967
+ const [checkboxCell] = this.checkboxCells;
3968
+ checkboxCell?.click();
3969
+ });
3970
+ __privateAdd$2(this, _handleChange$1, async (event) => {
3971
+ this.selected = event.target.checked;
3972
+ await 0;
3973
+ if (!event.defaultPrevented) return;
3974
+ this.selected = !this.selected;
3975
+ });
3976
+ }
3977
+ connectedCallback() {
3978
+ super.connectedCallback?.();
3979
+ this.role = "row";
3980
+ }
3981
+ render() {
3982
+ return html`
3983
+ <slot @change=${__privateGet$2(this, _handleChange$1)} @slotchange=${__privateMethod$2(this, _OdxTableRowElement_instances, handleSlotchange_fn)}></slot>
3984
+ `;
3985
+ }
3986
+ willUpdate(changes) {
3987
+ super.willUpdate?.(changes);
3988
+ if (changes.has("selected")) {
3989
+ __privateMethod$2(this, _OdxTableRowElement_instances, handleSelectedChange_fn).call(this);
3990
+ }
3991
+ if (changes.has("selectable")) {
3992
+ __privateMethod$2(this, _OdxTableRowElement_instances, handleSelectableChange_fn).call(this);
3993
+ }
3994
+ }
3995
+ };
3996
+ _OdxTableRowElement_instances = new WeakSet();
3997
+ handleSelectedChange_fn = async function() {
3998
+ await this.updateComplete;
3999
+ if (this.selectable) {
4000
+ this.ariaSelected = toAriaBooleanAttribute(this.selected, false);
4001
+ } else {
4002
+ this.ariaSelected = null;
4003
+ }
4004
+ const [checkboxCell] = this.checkboxCells;
4005
+ if (!checkboxCell) return;
4006
+ checkboxCell.checked = this.selected;
4007
+ };
4008
+ handleSelectableChange_fn = function() {
4009
+ if (this.selectable) {
4010
+ this.addEventListener("click", __privateGet$2(this, _handleClick));
4011
+ } else {
4012
+ this.removeEventListener("click", __privateGet$2(this, _handleClick));
4013
+ }
4014
+ };
4015
+ _handleClick = new WeakMap();
4016
+ _handleChange$1 = new WeakMap();
4017
+ handleSlotchange_fn = function({ target }) {
4018
+ this.selectable = target.assignedElements().some(__privateMethod$2(this, _OdxTableRowElement_instances, isCheckboxCell_fn));
4019
+ };
4020
+ isCheckboxCell_fn = function(element) {
4021
+ return element.localName === OdxTableCheckboxCellElement.selector;
4022
+ };
4023
+ __decorateClass$3([
4024
+ queryAssignedElements({ selector: OdxTableCheckboxCellElement.selector, flatten: true })
4025
+ ], OdxTableRowElement.prototype, "checkboxCells", 2);
4026
+ __decorateClass$3([
4027
+ property({ type: Boolean, reflect: true })
4028
+ ], OdxTableRowElement.prototype, "disabled", 2);
4029
+ __decorateClass$3([
4030
+ property({ type: Boolean, reflect: true })
4031
+ ], OdxTableRowElement.prototype, "selected", 2);
4032
+ __decorateClass$3([
4033
+ property({ type: Boolean, reflect: true })
4034
+ ], OdxTableRowElement.prototype, "selectable", 2);
4035
+ __decorateClass$3([
4036
+ property({ type: String })
4037
+ ], OdxTableRowElement.prototype, "value", 2);
4038
+ OdxTableRowElement = __decorateClass$3([
4039
+ customElement("odx-table-row", [styles$3])
4040
+ ], OdxTableRowElement);
4041
+
4042
+ const styles$2 = ":host{display:flex;flex-direction:column;background-color:var(--odx-color-surface)}";
4043
+
4044
+ var __defProp$2 = Object.defineProperty;
4045
+ var __getOwnPropDesc$2 = Object.getOwnPropertyDescriptor;
4046
+ var __typeError$1 = (msg) => {
4047
+ throw TypeError(msg);
4048
+ };
4049
+ var __decorateClass$2 = (decorators, target, key, kind) => {
4050
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$2(target, key) : target;
4051
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
4052
+ if (decorator = decorators[i])
4053
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
4054
+ if (kind && result) __defProp$2(target, key, result);
4055
+ return result;
4056
+ };
4057
+ var __accessCheck$1 = (obj, member, msg) => member.has(obj) || __typeError$1("Cannot " + msg);
4058
+ var __privateGet$1 = (obj, member, getter) => (__accessCheck$1(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
4059
+ var __privateAdd$1 = (obj, member, value) => member.has(obj) ? __typeError$1("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
4060
+ var __privateMethod$1 = (obj, member, method) => (__accessCheck$1(obj, member, "access private method"), method);
4061
+ var _selectedSet, _OdxTableElement_instances, selectAllRows_fn, deselectAllRows_fn, _handleChange;
4062
+ let OdxTableElement = class extends CustomElement {
4063
+ constructor() {
4064
+ super(...arguments);
4065
+ __privateAdd$1(this, _OdxTableElement_instances);
4066
+ __privateAdd$1(this, _selectedSet, /* @__PURE__ */ new Set());
4067
+ this.mode = "selection";
4068
+ this.selected = [];
4069
+ this.items = [];
4070
+ __privateAdd$1(this, _handleChange, (event) => {
4071
+ if (event.target.localName !== OdxTableCheckboxCellElement.selector) return;
4072
+ event.stopPropagation();
4073
+ const rowElement = event.target.parentElement;
4074
+ if (!rowElement) return;
4075
+ const isSelected = event.target.checked;
4076
+ if (rowElement.localName === OdxTableHeaderElement.selector) {
4077
+ if (event.target.checked) {
4078
+ __privateMethod$1(this, _OdxTableElement_instances, selectAllRows_fn).call(this);
4079
+ } else {
4080
+ __privateMethod$1(this, _OdxTableElement_instances, deselectAllRows_fn).call(this);
4081
+ }
4082
+ } else if (isSelected) {
4083
+ __privateGet$1(this, _selectedSet).add(rowElement.value);
4084
+ } else {
4085
+ __privateGet$1(this, _selectedSet).delete(rowElement.value);
4086
+ }
4087
+ });
4088
+ }
4089
+ get headerElements() {
4090
+ return Array.from(this.querySelectorAll(OdxTableHeaderElement.selector));
4091
+ }
4092
+ get rowElements() {
4093
+ return Array.from(this.querySelectorAll(OdxTableRowElement.selector));
4094
+ }
4095
+ connectedCallback() {
4096
+ super.connectedCallback?.();
4097
+ this.role = "grid";
4098
+ }
4099
+ render() {
4100
+ return html`<slot @change=${__privateGet$1(this, _handleChange)}></slot>`;
4101
+ }
4102
+ };
4103
+ _selectedSet = new WeakMap();
4104
+ _OdxTableElement_instances = new WeakSet();
4105
+ selectAllRows_fn = function() {
4106
+ for (const row of this.rowElements) {
4107
+ row.selected = true;
4108
+ __privateGet$1(this, _selectedSet).add(row.value);
4109
+ }
4110
+ };
4111
+ deselectAllRows_fn = function() {
4112
+ __privateGet$1(this, _selectedSet).clear();
4113
+ for (const row of this.rowElements) {
4114
+ if (!row.selected) continue;
4115
+ row.selected = false;
4116
+ }
4117
+ };
4118
+ _handleChange = new WeakMap();
4119
+ __decorateClass$2([
4120
+ property()
4121
+ ], OdxTableElement.prototype, "mode", 2);
4122
+ __decorateClass$2([
4123
+ property({ type: Array })
4124
+ ], OdxTableElement.prototype, "selected", 2);
4125
+ __decorateClass$2([
4126
+ property({ type: Array })
4127
+ ], OdxTableElement.prototype, "items", 2);
4128
+ OdxTableElement = __decorateClass$2([
4129
+ customElement("odx-table", [styles$2])
4130
+ ], OdxTableElement);
4131
+
4132
+ const styles$1 = "";
4133
+
4134
+ var __defProp$1 = Object.defineProperty;
4135
+ var __getOwnPropDesc$1 = Object.getOwnPropertyDescriptor;
4136
+ var __decorateClass$1 = (decorators, target, key, kind) => {
4137
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$1(target, key) : target;
4138
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
4139
+ if (decorator = decorators[i])
4140
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
4141
+ if (kind && result) __defProp$1(target, key, result);
4142
+ return result;
4143
+ };
4144
+ let OdxToastElement = class extends CustomElement {
4145
+ render() {
4146
+ return html`
4147
+ <slot name="title"></slot>
4148
+ <slot></slot>
4149
+ `;
4150
+ }
4151
+ };
4152
+ __decorateClass$1([
4153
+ property({ reflect: true })
4154
+ ], OdxToastElement.prototype, "variant", 2);
4155
+ OdxToastElement = __decorateClass$1([
4156
+ customElement("odx-toast", [styles$1])
4157
+ ], OdxToastElement);
4158
+
4159
+ const ToastVariant = {
4160
+ DANGER: "danger"
4161
+ };
4162
+
4163
+ const styles = ":host(:not([interactive])){pointer-events:none}odx-popover{--color-fill: var(--odx-palette-blue-90);--color-text: var(--odx-color-text-inverse)}::slotted(odx-button[aria-disabled=\"true\"]){pointer-events:auto}";
4164
+
4165
+ const TooltipPlacement = {
4166
+ TOP: PopoverPlacement.TOP,
4167
+ RIGHT: PopoverPlacement.RIGHT,
4168
+ BOTTOM: PopoverPlacement.BOTTOM,
4169
+ LEFT: PopoverPlacement.LEFT
4170
+ };
4171
+
4172
+ var __defProp = Object.defineProperty;
4173
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4174
+ var __typeError = (msg) => {
4175
+ throw TypeError(msg);
4176
+ };
4177
+ var __decorateClass = (decorators, target, key, kind) => {
4178
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
4179
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
4180
+ if (decorator = decorators[i])
4181
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
4182
+ if (kind && result) __defProp(target, key, result);
4183
+ return result;
4184
+ };
4185
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
4186
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
4187
+ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
4188
+ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
4189
+ var _OdxTooltipElement_instances, addKeyboardListeners_fn, removeKeyboardListeners_fn, addMouseListeners_fn, removeMouseListeners_fn, updateAriaAttributes_fn, _handleReferenceMouseLeave, _handleMouseEvents, _handleKeyboardFocus;
4190
+ let OdxTooltipElement = class extends PopoverHost(CustomElement) {
4191
+ constructor() {
4192
+ super(...arguments);
4193
+ __privateAdd(this, _OdxTooltipElement_instances);
4194
+ this.placement = TooltipPlacement.TOP;
4195
+ this.interactive = false;
4196
+ this.id = "test";
4197
+ __privateAdd(this, _handleReferenceMouseLeave, (event) => {
4198
+ if (event.relatedTarget === this) return;
4199
+ __privateGet(this, _handleMouseEvents).call(this, event);
4200
+ });
4201
+ __privateAdd(this, _handleMouseEvents, ({ type }) => {
4202
+ if (type !== "mouseenter" && type !== "mouseleave") return;
4203
+ this.togglePopover(type === "mouseenter");
4204
+ });
4205
+ __privateAdd(this, _handleKeyboardFocus, ({ type, key }) => {
4206
+ if (key !== "Tab") return;
4207
+ this.togglePopover(type !== "keydown");
4208
+ });
4209
+ }
4210
+ connectedCallback() {
4211
+ super.connectedCallback?.();
4212
+ this.id ||= getUniqueId("odx-tooltip");
4213
+ this.role = "tooltip";
4214
+ }
4215
+ mountPopover(referenceElement) {
4216
+ super.mountPopover(referenceElement);
4217
+ if (!referenceElement) return;
4218
+ __privateMethod(this, _OdxTooltipElement_instances, updateAriaAttributes_fn).call(this, referenceElement, this.id);
4219
+ __privateMethod(this, _OdxTooltipElement_instances, addKeyboardListeners_fn).call(this, referenceElement);
4220
+ __privateMethod(this, _OdxTooltipElement_instances, addMouseListeners_fn).call(this, referenceElement);
4221
+ }
4222
+ unmountPopover(referenceElement) {
4223
+ super.unmountPopover(referenceElement);
4224
+ __privateMethod(this, _OdxTooltipElement_instances, updateAriaAttributes_fn).call(this, referenceElement, null);
4225
+ __privateMethod(this, _OdxTooltipElement_instances, removeKeyboardListeners_fn).call(this, referenceElement);
4226
+ __privateMethod(this, _OdxTooltipElement_instances, removeMouseListeners_fn).call(this, referenceElement);
4227
+ }
4228
+ render() {
4229
+ return html`
4230
+ <odx-popover showArrow>
4231
+ <slot></slot>
4232
+ </odx-popover>
4233
+ `;
4234
+ }
4235
+ willUpdate(props) {
4236
+ super.willUpdate?.(props);
4237
+ if (props.has("id")) {
4238
+ __privateMethod(this, _OdxTooltipElement_instances, updateAriaAttributes_fn).call(this, this.referenceElement, this.id);
4239
+ }
4240
+ }
4241
+ };
4242
+ _OdxTooltipElement_instances = new WeakSet();
4243
+ addKeyboardListeners_fn = function(referenceElement) {
4244
+ referenceElement.addEventListener("keyup", __privateGet(this, _handleKeyboardFocus));
4245
+ referenceElement.addEventListener("keydown", __privateGet(this, _handleKeyboardFocus));
4246
+ };
4247
+ removeKeyboardListeners_fn = function(referenceElement) {
4248
+ referenceElement.removeEventListener("keyup", __privateGet(this, _handleKeyboardFocus));
4249
+ referenceElement.removeEventListener("keydown", __privateGet(this, _handleKeyboardFocus));
4250
+ };
4251
+ addMouseListeners_fn = function(referenceElement) {
4252
+ this.addEventListener("mouseleave", __privateGet(this, _handleMouseEvents));
4253
+ referenceElement.addEventListener("mouseenter", __privateGet(this, _handleMouseEvents));
4254
+ referenceElement.addEventListener("mouseleave", __privateGet(this, _handleReferenceMouseLeave));
4255
+ referenceElement.addEventListener("keyup", __privateGet(this, _handleKeyboardFocus));
4256
+ referenceElement.addEventListener("keydown", __privateGet(this, _handleKeyboardFocus));
4257
+ };
4258
+ removeMouseListeners_fn = function(referenceElement) {
4259
+ this.removeEventListener("mouseleave", __privateGet(this, _handleMouseEvents));
4260
+ referenceElement.removeEventListener("mouseenter", __privateGet(this, _handleMouseEvents));
4261
+ referenceElement.removeEventListener("mouseleave", __privateGet(this, _handleReferenceMouseLeave));
4262
+ referenceElement.removeEventListener("keyup", __privateGet(this, _handleKeyboardFocus));
4263
+ referenceElement.removeEventListener("keydown", __privateGet(this, _handleKeyboardFocus));
4264
+ };
4265
+ updateAriaAttributes_fn = function(referenceElement, id) {
4266
+ toggleAttribute(referenceElement, "aria-describedby", id);
4267
+ };
4268
+ _handleReferenceMouseLeave = new WeakMap();
4269
+ _handleMouseEvents = new WeakMap();
4270
+ _handleKeyboardFocus = new WeakMap();
4271
+ __decorateClass([
4272
+ property({ reflect: true })
4273
+ ], OdxTooltipElement.prototype, "placement", 2);
4274
+ __decorateClass([
4275
+ property({ type: Boolean, reflect: true })
4276
+ ], OdxTooltipElement.prototype, "interactive", 2);
4277
+ __decorateClass([
4278
+ property({ reflect: true })
4279
+ ], OdxTooltipElement.prototype, "id", 2);
4280
+ OdxTooltipElement = __decorateClass([
4281
+ customElement("odx-tooltip", [styles])
4282
+ ], OdxTooltipElement);
4283
+
4284
+ export { AreaHeaderSize, AreaHeaderVariant, AvatarSize, AvatarVariant, BadgeVariant, BaseButtonComponent, BaseLink, ButtonSize, ButtonVariant, CheckboxGroupVariant, ChipVariant, CircularProgressBarSize, DropdownPlacement, HeadlineSize, InlineMessageVariant, InputVariant, LOADING_OVERLAY_HOST_DIRECTIVE, LogoSize, NavigationItemSize, OdxAccordionComponent, OdxAccordionHeaderComponent, OdxAccordionPanelComponent, OdxAreaHeaderComponent, OdxAvatarComponent, OdxAvatarGroupComponent, OdxBadgeComponent, OdxBreadcrumbsComponent, OdxBreadcrumbsItemComponent, OdxButtonComponent, OdxButtonGroupComponent, OdxCardComponent, OdxCheckboxComponent, OdxCheckboxGroupComponent, OdxChipComponent, OdxCircularProgressBarComponent, OdxContentBoxComponent, OdxDropdownComponent, OdxFormFieldElement, OdxFormatBytesComponent, OdxFormatDateComponent, OdxFormatNumberComponent, OdxHeaderActionsComponent, OdxHeaderComponent, OdxHeadlineComponent, OdxIconButtonComponent, OdxInlineMessageComponent, OdxInputComponent, OdxLineClampComponent, OdxLinkComponent, OdxListComponent, OdxListItemComponent, OdxLoadingOverlayComponent, OdxLoadingSpinnerComponent, OdxLogoComponent, OdxMainMenuButtonComponent, OdxMainMenuComponent, OdxMainMenuLinkComponent, OdxMainMenuSubtitleComponent, OdxMainMenuTitleComponent, OdxMenuComponent, OdxMenuItemComponent, OdxMenuLabelComponent, OdxNavigationItemComponent, OdxOptionComponent, OdxPageComponent, OdxPageLayoutComponent, OdxProgressBarComponent, OdxRadioButtonComponent, OdxRadioGroupComponent, OdxRailNavigationComponent, OdxRelativeTimeComponent, OdxSearchBarComponent, OdxSelectComponent, OdxSeparatorComponent, OdxSkeletonComponent, OdxSliderComponent, OdxSliderHandleComponent, OdxSliderMarksComponent, OdxSpacerComponent, OdxSpinboxComponent, OdxStackComponent, OdxSwitchComponent, OdxTableBodyElement, OdxTableCellElement, OdxTableCheckboxCellElement, OdxTableElement, OdxTableHeaderCellElement, OdxTableHeaderElement, OdxTableRowElement, OdxTextComponent, OdxTitleComponent, OdxToastElement, OdxToggleButtonComponent, OdxTooltipElement, OdxVisuallyHiddenComponent, PageAlignment, PageLayout, ProgressState, RadioGroupVariant, SearchBarBehavior, SearchEvent, SliderLabelVisibility, SliderTrackVisibility, StackAlign, StackGap, StackJustify, TextSize, TextVariant, TitleSize, ToastVariant, TooltipPlacement, sliderContext };