@odx/foundation 0.1.0-alpha.26 → 0.1.0-alpha.28

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 (32) hide show
  1. package/dist/components/accordion/accordion-header.component.css.js +1 -1
  2. package/dist/components/accordion/accordion-header.component.js +1 -1
  3. package/dist/components/area-header/area-header.component.js +2 -2
  4. package/dist/components/avatar/avatar.component.css.js +1 -1
  5. package/dist/components/button/base-button.d.ts +0 -4
  6. package/dist/components/button/base-button.d.ts.map +1 -1
  7. package/dist/components/button/base-button.js +7 -15
  8. package/dist/components/button/button.component.css.js +1 -1
  9. package/dist/components/button/button.component.d.ts +4 -0
  10. package/dist/components/button/button.component.d.ts.map +1 -1
  11. package/dist/components/button/button.component.js +4 -0
  12. package/dist/components/button-group/button-group.component.d.ts +8 -2
  13. package/dist/components/button-group/button-group.component.d.ts.map +1 -1
  14. package/dist/components/button-group/button-group.component.js +13 -2
  15. package/dist/components/line-clamp/line-clamp.component.css.js +1 -1
  16. package/dist/components/link/base-link.d.ts.map +1 -1
  17. package/dist/components/link/base-link.js +1 -0
  18. package/dist/components/link/link.component.css.js +1 -1
  19. package/dist/components/list/list-item.component.js +2 -2
  20. package/dist/components/main-menu/main-menu-link.component.css.js +1 -1
  21. package/dist/components/navigation-item/navigation-item.component.css.js +1 -1
  22. package/dist/components/navigation-item/navigation-item.component.d.ts +2 -0
  23. package/dist/components/navigation-item/navigation-item.component.d.ts.map +1 -1
  24. package/dist/components/navigation-item/navigation-item.component.js +6 -2
  25. package/dist/components/option/option.component.js +2 -2
  26. package/dist/components/rail-navigation/rail-navigation.component.d.ts.map +1 -1
  27. package/dist/components/rail-navigation/rail-navigation.component.js +5 -14
  28. package/dist/src/lib/mixins/can-be-disabled.d.ts +2 -0
  29. package/dist/src/lib/mixins/can-be-disabled.d.ts.map +1 -1
  30. package/dist/src/lib/mixins/can-be-disabled.js +15 -4
  31. package/dist/src/lib/models/custom-element.css.js +1 -1
  32. package/package.json +1 -1
@@ -1,3 +1,3 @@
1
- const styles = ":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([disabled]):hover){--_color-background: var(--odx-color-transparent-hover)}:host(:not([disabled]):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)}";
1
+ const styles = ":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)}";
2
2
 
3
3
  export { styles as default };
@@ -53,7 +53,7 @@ let OdxAccordionHeaderComponent = class extends WithAriaControls(CustomElement)
53
53
  <odx-text ?emphasized=${this.expanded}>
54
54
  <slot></slot>
55
55
  </odx-text>
56
- <slot name="end"></slot>
56
+ <slot name="suffix"></slot>
57
57
  </div>
58
58
  <odx-icon class="indicator" name="core::chevron-down" aria-hidden="true"></odx-icon>
59
59
  `;
@@ -16,11 +16,11 @@ var __decorateClass = (decorators, target, key, kind) => {
16
16
  let OdxAreaHeaderComponent = class extends CustomElement {
17
17
  render() {
18
18
  return html`
19
- <slot name="start"></slot>
19
+ <slot name="prefix"></slot>
20
20
  <div class="content">
21
21
  <slot></slot>
22
22
  </div>
23
- <slot name="end"></slot>
23
+ <slot name="suffix"></slot>
24
24
  `;
25
25
  }
26
26
  };
@@ -1,3 +1,3 @@
1
- const styles = ":host{--_color-background: var(--odx-avatar-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,:host-context(odx-avatar-group[size=\"md\"]),:host([size=\"md\"]){--_size: var(--odx-size-225);--_spacing: var(--odx-size-25);--_font-size: var(--odx-typography-font-size-3)}:host-context(odx-avatar-group[size=\"lg\"]),:host([size=\"lg\"]){--_size: var(--odx-avatar-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-avatar-lg-size, var(--odx-size-600));--_spacing: 0;--_font-size: var(--odx-typography-font-size-7)}:has(img){--odx-avatar-background: red}::slotted(img){object-fit:cover;position:absolute;inset:0;z-index:1;pointer-events:none}::slotted(odx-icon){font-size:inherit}";
1
+ const styles = ":host-context(odx-avatar-group),: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-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))}::slotted(img){object-fit:cover;position:absolute;inset:0;z-index:1;pointer-events:none}::slotted(odx-icon){font-size:inherit}";
2
2
 
3
3
  export { styles as default };
@@ -14,10 +14,6 @@ declare const BaseButtonComponent_base: import('@odx/foundation').Constructor<im
14
14
  * @slot - Contains button text
15
15
  */
16
16
  export declare class BaseButtonComponent extends BaseButtonComponent_base {
17
- /**
18
- * The type of the button.
19
- */
20
- type: 'button' | 'submit' | 'reset';
21
17
  protected render(): TemplateResult;
22
18
  protected renderContent(): TemplateResult;
23
19
  protected renderButton(): TemplateResult<1>;
@@ -1 +1 @@
1
- {"version":3,"file":"base-button.d.ts","sourceRoot":"","sources":["../../../components/button/base-button.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,cAAc,EAAQ,MAAM,KAAK,CAAC;AAGhD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;;AAEnC;;;;;;;;;;;GAWG;AACH,qBACa,mBAAoB,SAAQ,wBAA0B;IACjE;;OAEG;IAEH,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAY;cAE5B,MAAM,IAAI,cAAc;cAQxB,aAAa,IAAI,cAAc;IAWlD,SAAS,CAAC,YAAY;CAgBvB"}
1
+ {"version":3,"file":"base-button.d.ts","sourceRoot":"","sources":["../../../components/button/base-button.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,cAAc,EAAQ,MAAM,KAAK,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;;AAEnC;;;;;;;;;;;GAWG;AACH,qBACa,mBAAoB,SAAQ,wBAA0B;cAC9C,MAAM,IAAI,cAAc;cAQxB,aAAa,IAAI,cAAc;IAWlD,SAAS,CAAC,YAAY;CAkBvB"}
@@ -1,24 +1,17 @@
1
1
  import { WithLoadingState, optionalAttr, requestUpdateOnAriaChange } from '@odx/foundation';
2
2
  import { html } from 'lit';
3
- import { property } from 'lit/decorators.js';
4
3
  import { when } from 'lit/directives/when.js';
5
4
  import { BaseLink } from '../link/base-link.js';
6
5
 
7
- var __defProp = Object.defineProperty;
8
6
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
9
7
  var __decorateClass = (decorators, target, key, kind) => {
10
8
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
11
9
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
12
10
  if (decorator = decorators[i])
13
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
14
- if (kind && result) __defProp(target, key, result);
11
+ result = (decorator(result)) || result;
15
12
  return result;
16
13
  };
17
14
  let BaseButtonComponent = class extends WithLoadingState(BaseLink) {
18
- constructor() {
19
- super(...arguments);
20
- this.type = "button";
21
- }
22
15
  render() {
23
16
  return html`${when(
24
17
  this.href,
@@ -28,23 +21,25 @@ let BaseButtonComponent = class extends WithLoadingState(BaseLink) {
28
21
  }
29
22
  renderContent() {
30
23
  return html`
31
- <slot name="start"></slot>
32
- <odx-line-clamp .max=${2}>
24
+ <slot name="prefix"></slot>
25
+ <odx-line-clamp class="content" .max=${2}>
33
26
  <slot></slot>
34
27
  </odx-line-clamp>
35
- <slot name="end"></slot>
28
+ <slot name="suffix"></slot>
36
29
  ${when(this.loading, () => html`<odx-loading-spinner class="spinner" variant="dots"></odx-loading-spinner>`)}
37
30
  `;
38
31
  }
39
32
  renderButton() {
40
33
  const { ariaLabel, ariaHasPopup, ariaExpanded } = this;
34
+ const type = "type" in this ? this.type : "button";
41
35
  return html`
42
36
  <button
37
+ class="base"
43
38
  part="anchor button"
44
39
  aria-label="${optionalAttr(ariaLabel)}"
45
40
  aria-haspopup="${optionalAttr(ariaHasPopup)}"
46
41
  aria-expanded="${optionalAttr(ariaExpanded)}"
47
- type=${this.type}
42
+ type=${type}
48
43
  ?disabled=${this.disabled || this.loading}
49
44
  >
50
45
  ${this.renderContent()}
@@ -52,9 +47,6 @@ let BaseButtonComponent = class extends WithLoadingState(BaseLink) {
52
47
  `;
53
48
  }
54
49
  };
55
- __decorateClass([
56
- property()
57
- ], BaseButtonComponent.prototype, "type", 2);
58
50
  BaseButtonComponent = __decorateClass([
59
51
  requestUpdateOnAriaChange(["ariaLabel", "ariaHasPopup", "ariaExpanded"])
60
52
  ], BaseButtonComponent);
@@ -1,3 +1,3 @@
1
- const styles = ":host{--_color-stroke: transparent;--_color-stroke-hover: transparent;--_color-stroke-pressed: transparent;--_block-size: var(--odx-size-225);--_icon-size: var(--odx-typography-font-size-5);--_text-size: var(--odx-typography-font-size-3);--_padding-block: var(--odx-size-37);--_padding-inline: var(--odx-size-75);--_margin-block: var(--odx-size-37);--_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-sm);margin-block:var(--_margin-block);max-inline-size:100%;-webkit-tap-highlight-color:transparent}:host(:focus-visible){outline:none}:host,:host::part(anchor){display:inline-flex;place-items:center;place-content:center}:host::part(anchor){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:calc(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(--_text-size);gap:var(--_padding-inline);font-weight:var(--odx-typography-font-weight-medium);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)}.spinner{--_size: var(--_icon-size);color:var(--_color-foreground);position:absolute;margin:auto}:host::part(anchor)::-moz-focus-inner{padding:0;border:0}:host::part(anchor):focus-visible{outline-color:var(--odx-focus-ring-color)}: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([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([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([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([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([variant=\"success\"]){--_color-background: var(--odx-color-success-rest);--_color-background-hover: var(--odx-color-success-hover);--_color-background-pressed: var(--odx-color-success-pressed);--_color-foreground: var(--odx-color-foreground-dark)}:host([variant=\"confirmation\"]){--_color-background: var(--odx-color-confirmation-rest);--_color-background-hover: var(--odx-color-confirmation-hover);--_color-background-pressed: var(--odx-color-confirmation-pressed);--_color-foreground: var(--odx-color-foreground-dark)}:host(: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\"]){--_color-background: var(--_color-background-hover);cursor:default;[part~=anchor]{color:transparent}}: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-context(odx-input),:host([size=\"sm\"]){--_block-size: var(--odx-size-150);--_padding-inline: var(--odx-size-50);--_text-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([size=\"lg\"]){--_block-size: var(--odx-size-300);--_padding-inline: var(--odx-size-100);--_text-size: var(--odx-typography-font-size-4);--_icon-size: var(--odx-typography-font-size-6);--_margin-block: 0}:host-context(odx-input){--_icon-size: var(--odx-typography-font-size-5)}odx-icon,::slotted(odx-icon){--size: var(--_icon-size);margin-inline:var(--_margin-icon)}:host-context(odx-button-group[connected]:not([vertical])):host(:not(:last-of-type))::part(anchor){border-inline-end-width:0}:host-context(odx-button-group[connected][vertical]):host(:not(:last-of-type))::part(anchor){border-block-end-width:0}";
1
+ const styles = ":host{--_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: var(--odx-size-37);--_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-sm);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:calc(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-medium);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);position:absolute;margin:auto}: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-button-group[variant=\"success\"]),:host([variant=\"success\"]){--_color-background: var(--odx-color-success-rest);--_color-background-hover: var(--odx-color-success-hover);--_color-background-pressed: var(--odx-color-success-pressed);--_color-foreground: var(--odx-color-foreground-dark)}:host-context(odx-button-group[variant=\"confirmation\"]),:host([variant=\"confirmation\"]){--_color-background: var(--odx-color-confirmation-rest);--_color-background-hover: var(--odx-color-confirmation-hover);--_color-background-pressed: var(--odx-color-confirmation-pressed);--_color-foreground: var(--odx-color-foreground-dark)}:host(:hover){--_color-background: var(--_color-background-hover);--_color-stroke: var(--_color-stroke-hover)}:host(:active){--_color-background: var(--_color-background-pressed);--_color-stroke: var(--_color-stroke-pressed)}:host([aria-busy=\"true\"]){--_color-background: var(--_color-background-hover);cursor:default;[part~=anchor]{color:transparent}}: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}.content{margin-block:calc(-1 * var(--_padding-block));margin-inline:calc(-1 * var(--_padding-inline));padding:inherit}odx-icon,::slotted(odx-icon){--size: var(--_icon-size);margin-inline:var(--_margin-icon)}:host-context(odx-input){--_icon-size: var(--odx-typography-font-size-5)}";
2
2
 
3
3
  export { styles as default };
@@ -21,6 +21,10 @@ declare const OdxButtonComponent_base: import('@odx/foundation').Constructor<imp
21
21
  export declare class OdxButtonComponent extends OdxButtonComponent_base {
22
22
  #private;
23
23
  static readonly formAssociated = true;
24
+ /**
25
+ * The type of the button.
26
+ */
27
+ type: 'button' | 'submit' | 'reset';
24
28
  /**
25
29
  * The size of the button.
26
30
  */
@@ -1 +1 @@
1
- {"version":3,"file":"button.component.d.ts","sourceRoot":"","sources":["../../../components/button/button.component.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEjE,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,kBAAkB,CAAC;KAClC;CACF;;AAED;;;;;;;;;;;GAWG;AACH,qBACa,kBAAmB,SAAQ,uBAAqC;;IAC3E,MAAM,CAAC,QAAQ,CAAC,cAAc,QAAQ;IAGtC;;OAEG;IAEH,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;OAEG;IAEH,OAAO,CAAC,EAAE,aAAa,CAAC;;CAmBzB"}
1
+ {"version":3,"file":"button.component.d.ts","sourceRoot":"","sources":["../../../components/button/button.component.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEjE,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,kBAAkB,CAAC;KAClC;CACF;;AAED;;;;;;;;;;;GAWG;AACH,qBACa,kBAAmB,SAAQ,uBAAqC;;IAC3E,MAAM,CAAC,QAAQ,CAAC,cAAc,QAAQ;IAGtC;;OAEG;IAEH,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAY;IAE/C;;OAEG;IAEH,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;OAEG;IAEH,OAAO,CAAC,EAAE,aAAa,CAAC;;CAmBzB"}
@@ -27,6 +27,7 @@ let OdxButtonComponent = class extends WithLoadingState(BaseButtonComponent) {
27
27
  super();
28
28
  __privateAdd(this, _OdxButtonComponent_instances);
29
29
  __privateAdd(this, _internals, this.attachInternals());
30
+ this.type = "button";
30
31
  if (!isServer) {
31
32
  this.addEventListener("click", __privateMethod(this, _OdxButtonComponent_instances, handleClick_fn));
32
33
  }
@@ -45,6 +46,9 @@ handleClick_fn = function(_event) {
45
46
  }
46
47
  };
47
48
  OdxButtonComponent.formAssociated = true;
49
+ __decorateClass([
50
+ property()
51
+ ], OdxButtonComponent.prototype, "type", 2);
48
52
  __decorateClass([
49
53
  property({ reflect: true })
50
54
  ], OdxButtonComponent.prototype, "size", 2);
@@ -1,12 +1,18 @@
1
- import { CustomElement } from '@odx/foundation';
1
+ import { CanBeDisabled, CustomElement } from '@odx/foundation';
2
+ import { ButtonSize, ButtonVariant } from '../button';
2
3
  declare global {
3
4
  interface HTMLElementTagNameMap {
4
5
  'odx-button-group': OdxButtonGroupComponent;
5
6
  }
6
7
  }
7
- export declare class OdxButtonGroupComponent extends CustomElement {
8
+ declare const OdxButtonGroupComponent_base: import('@odx/foundation').Constructor<CanBeDisabled> & typeof CustomElement;
9
+ export declare class OdxButtonGroupComponent extends OdxButtonGroupComponent_base {
8
10
  block: boolean;
9
11
  connected: boolean;
10
12
  vertical: boolean;
13
+ size?: ButtonSize | null;
14
+ variant?: ButtonVariant | null;
15
+ onDisabledChanged(disabled: boolean): void;
11
16
  }
17
+ export {};
12
18
  //# sourceMappingURL=button-group.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"button-group.component.d.ts","sourceRoot":"","sources":["../../../components/button-group/button-group.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAiB,MAAM,iBAAiB,CAAC;AAI/D,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,uBAAuB,CAAC;KAC7C;CACF;AAED,qBACa,uBAAwB,SAAQ,aAAa;IAExD,KAAK,UAAS;IAGd,SAAS,UAAS;IAGlB,QAAQ,UAAS;CAClB"}
1
+ {"version":3,"file":"button-group.component.d.ts","sourceRoot":"","sources":["../../../components/button-group/button-group.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAiB,MAAM,iBAAiB,CAAC;AAE9E,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG3D,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,uBAAuB,CAAC;KAC7C;CACF;;AAED,qBACa,uBAAwB,SAAQ,4BAA4B;IAEvE,KAAK,UAAS;IAGd,SAAS,UAAS;IAGlB,QAAQ,UAAS;IAGjB,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAGzB,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAEtB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;CAKpD"}
@@ -1,4 +1,4 @@
1
- import { CustomElement, customElement } from '@odx/foundation';
1
+ import { CanBeDisabled, CustomElement, customElement } from '@odx/foundation';
2
2
  import { property } from 'lit/decorators.js';
3
3
  import styles from './button-group.component.css.js';
4
4
 
@@ -12,13 +12,18 @@ var __decorateClass = (decorators, target, key, kind) => {
12
12
  if (kind && result) __defProp(target, key, result);
13
13
  return result;
14
14
  };
15
- let OdxButtonGroupComponent = class extends CustomElement {
15
+ let OdxButtonGroupComponent = class extends CanBeDisabled(CustomElement) {
16
16
  constructor() {
17
17
  super(...arguments);
18
18
  this.block = false;
19
19
  this.connected = false;
20
20
  this.vertical = false;
21
21
  }
22
+ onDisabledChanged(disabled) {
23
+ for (const button of Array.from(this.querySelectorAll("odx-button"))) {
24
+ button._contextDisabled = disabled;
25
+ }
26
+ }
22
27
  };
23
28
  __decorateClass([
24
29
  property({ type: Boolean, reflect: true })
@@ -29,6 +34,12 @@ __decorateClass([
29
34
  __decorateClass([
30
35
  property({ type: Boolean, reflect: true })
31
36
  ], OdxButtonGroupComponent.prototype, "vertical", 2);
37
+ __decorateClass([
38
+ property({ reflect: true })
39
+ ], OdxButtonGroupComponent.prototype, "size", 2);
40
+ __decorateClass([
41
+ property({ reflect: true })
42
+ ], OdxButtonGroupComponent.prototype, "variant", 2);
32
43
  OdxButtonGroupComponent = __decorateClass([
33
44
  customElement("odx-button-group", [styles])
34
45
  ], OdxButtonGroupComponent);
@@ -1,3 +1,3 @@
1
- const styles = ":host{display:-webkit-box;min-inline-size:min-content;-webkit-box-orient:vertical;-webkit-line-clamp:var(--max, 2)}";
1
+ const styles = ":host{display:-webkit-box;min-inline-size:min-content;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:var(--max, 2)}";
2
2
 
3
3
  export { styles as default };
@@ -1 +1 @@
1
- {"version":3,"file":"base-link.d.ts","sourceRoot":"","sources":["../../../components/link/base-link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,QAAQ,EAAE,aAAa,EAAE,aAAa,EAA2C,MAAM,iBAAiB,CAAC;AAC7I,OAAO,EAAE,KAAK,cAAc,EAAQ,MAAM,KAAK,CAAC;;AAIhD,qBAAa,QAAS,SAAQ,aAA4B;IAKxD,OAAgB,iBAAiB,EAAE,cAAc,CAG/C;IAGF,QAAQ,CAAC,kBAAkB,EAAG,iBAAiB,GAAG,iBAAiB,CAAC;IAGpE,IAAI,SAAM;IAGV,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,EAAE,CAAM;IAG1D,GAAG,SAAyB;IAG5B,QAAQ,CAAC,EAAE,MAAM,CAAC;cAEC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,cAAc;IAoB1D,SAAS,CAAC,aAAa,IAAI,cAAc;CAG1C"}
1
+ {"version":3,"file":"base-link.d.ts","sourceRoot":"","sources":["../../../components/link/base-link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,QAAQ,EAAE,aAAa,EAAE,aAAa,EAA2C,MAAM,iBAAiB,CAAC;AAC7I,OAAO,EAAE,KAAK,cAAc,EAAQ,MAAM,KAAK,CAAC;;AAIhD,qBAAa,QAAS,SAAQ,aAA4B;IAKxD,OAAgB,iBAAiB,EAAE,cAAc,CAG/C;IAGF,QAAQ,CAAC,kBAAkB,EAAG,iBAAiB,GAAG,iBAAiB,CAAC;IAGpE,IAAI,SAAM;IAGV,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,EAAE,CAAM;IAG1D,GAAG,SAAyB;IAG5B,QAAQ,CAAC,EAAE,MAAM,CAAC;cAEC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,cAAc;IAqB1D,SAAS,CAAC,aAAa,IAAI,cAAc;CAG1C"}
@@ -31,6 +31,7 @@ class BaseLink extends CanBeDisabled(CustomElement) {
31
31
  render(role) {
32
32
  const { ariaLabel, ariaHasPopup, ariaExpanded, ariaCurrent, ariaHidden } = this;
33
33
  return html`<a
34
+ class="base"
34
35
  part="anchor"
35
36
  aria-label="${optionalAttr(ariaLabel)}"
36
37
  aria-haspopup="${optionalAttr(ariaHasPopup)}"
@@ -1,3 +1,3 @@
1
- const styles = ":host{--_color-foreground: var(--odx-palette-blue-50);display:inline;text-decoration:underline}:host(:focus-visible){outline:none}:host::part(anchor){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)}:host::part(anchor):hover{--_color-foreground: var(--odx-palette-blue-80)}:host::part(anchor):focus-visible{outline-color:var(--odx-focus-ring-color)}: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\"])::part(anchor){--_color-foreground: var(--odx-palette-coolgray-40);cursor:default}";
1
+ const styles = ":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}}";
2
2
 
3
3
  export { styles as default };
@@ -15,13 +15,13 @@ var __decorateClass = (decorators, target, key, kind) => {
15
15
  let OdxListItemComponent = class extends BaseLink {
16
16
  render() {
17
17
  return html`
18
- <slot name="start"></slot>
18
+ <slot name="prefix"></slot>
19
19
  ${when(
20
20
  this.href,
21
21
  () => super.render(),
22
22
  () => html`<slot></slot>`
23
23
  )}
24
- <slot name="end"></slot>
24
+ <slot name="suffix"></slot>
25
25
  `;
26
26
  }
27
27
  };
@@ -1,3 +1,3 @@
1
- const styles = ":host{--_color-fill: var(--odx-palette-transparent);--_color-text: inherit;--_color-outline: var(--odx-palette-transparent);user-select:none}:host::part(anchor){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}:host(:hover){--_color-fill: var(--odx-color-foreground-highlight)}:host(:is([active],:active)){--_color-fill: var(--odx-color-foreground-highlight-pressed)}:host::part(anchor):focus-visible{--_color-outline: var(--odx-focus-ring-color)}:host([aria-disabled=\"true\"]){--_color-text: var(--odx-color-disabled-foreground-brand);pointer-events:none}";
1
+ const styles = ":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}";
2
2
 
3
3
  export { styles as default };
@@ -1,3 +1,3 @@
1
- const styles = ":host{--_color-background: var(--odx-palette-transparent);--_color-foreground: inherit;--_icon-size: var(--odx-size-125);--_text-size: var(--odx-typography-font-size-3);--_line-height: var(--odx-typography-line-height-4);--_padding-block: var(--odx-size-37);--_padding-inline: var(--odx-size-50);block-size:var(--_block-size);cursor:pointer;position:relative;user-select:none;vertical-align:top;border-radius:var(--odx-border-radius-sm);white-space:nowrap;-webkit-tap-highlight-color:transparent}:host(:focus-visible){outline:none}:host,:host::part(anchor){display:inline-flex;place-items:center}:host::part(anchor){overflow:clip;border-radius:inherit;cursor:inherit;-webkit-appearance:none;vertical-align:middle;background:transparent;text-decoration:none;font:inherit;block-size:100%;inline-size:100%;padding:0;border:none;gap:inherit;text-transform:inherit;padding-block:calc(var(--_padding-block));padding-inline:var(--_padding-inline);transition:var(--odx-transition-reduced);transition-property:background-color,color,outline-color;background-color:var(--_color-background);color:var(--_color-foreground);gap:var(--_padding-inline);font-size:var(--_text-size);line-height:var(--_line-height);outline:var(--odx-focus-ring-outline);outline-offset:var(--odx-focus-ring-offset)}:host::part(anchor)::-moz-focus-inner{padding:0;border:0}:host(:hover){--_color-background: var(--odx-color-transparent-hover)}:host([aria-current=\"true\"]){--_color-background: var(--odx-color-selected)}:host([aria-current=\"true\"]:hover){--_color-background: var(--odx-color-selected-hover)}:host([aria-current=\"true\"]:active),:host(:active){--_color-background: var(--odx-color-transparent-pressed)}:host::part(anchor):focus-visible{outline-color:var(--odx-focus-ring-color)}:host([aria-disabled=\"true\"])::part(anchor){--_color-background: var(--odx-color-disabled-fill);--_color-foreground: var(--odx-color-disabled-foreground);cursor:not-allowed}:host([size=\"lg\"]){--_icon-size: var(--odx-size-200);--_text-size: var(--odx-typography-font-size-3);--_line-height: var(--odx-size-100);--_padding-block: var(--odx-size-50);--_padding-inline: var(--odx-size-50)}:host([loading]:not([loading=\"false\"]))::part(anchor){color:transparent}::slotted(*){flex:0 0 auto}::slotted(odx-icon){--size: var(--_icon-size)}::slotted(odx-avatar){--_size: var(--_icon-size)}::slotted([slot=\"end\"]){margin-inline-start:auto}";
1
+ const styles = ":host{--_color-background: var(--odx-palette-transparent);--_color-foreground: inherit;--_icon-size: var(--odx-size-125);--_text-size: var(--odx-typography-font-size-3);--_line-height: var(--odx-typography-line-height-4);--_padding-block: var(--odx-size-37);--_padding-inline: var(--odx-size-50);block-size:var(--_block-size);cursor:pointer;position:relative;user-select:none;vertical-align:top;border-radius:var(--odx-border-radius-sm);white-space:nowrap;-webkit-tap-highlight-color:transparent}:host(:focus-visible){outline:none}:host,.base{display:inline-flex;place-items:center}.base{overflow:clip;border-radius:inherit;cursor:inherit;-webkit-appearance:none;vertical-align:middle;background:transparent;text-decoration:none;font:inherit;block-size:100%;inline-size:100%;padding:0;border:none;gap:inherit;text-transform:inherit;padding-block:calc(var(--_padding-block));padding-inline:var(--_padding-inline);transition:var(--odx-transition-reduced);transition-property:background-color,color,outline-color;background-color:var(--_color-background);color:var(--_color-foreground);gap:var(--_padding-inline);font-size:var(--_text-size);line-height:var(--_line-height);outline:var(--odx-focus-ring-outline);outline-offset:var(--odx-focus-ring-offset)}.base::-moz-focus-inner{padding:0;border:0}:host(:hover){--_color-background: var(--odx-color-transparent-hover)}:host:host-context(odx-rail-navigation),:host([size=\"lg\"]){--_icon-size: var(--odx-size-200);--_text-size: var(--odx-typography-font-size-3);--_line-height: var(--odx-size-100);--_padding-block: var(--odx-size-50);--_padding-inline: var(--odx-size-50)}:host([aria-current]){--_color-background: var(--odx-color-selected)}:host([aria-current]:hover){--_color-background: var(--odx-color-selected-hover)}:host([aria-current]:active),:host(:active){--_color-background: var(--odx-color-transparent-pressed)}.base:focus-visible{outline-color:var(--odx-focus-ring-color)}:host([aria-disabled=\"true\"]){--_color-background: var(--odx-color-disabled-fill);--_color-foreground: var(--odx-color-disabled-foreground);cursor:not-allowed}:host([aria-disabled=\"true\"][aria-current]){--_color-background: var(--odx-color-disabled-fill-selected);--_color-foreground: var(--odx-color-disabled-foreground-selected);cursor:not-allowed}:host([loading]) .base{color:transparent}::slotted(*){flex:0 0 auto}::slotted(odx-icon){--size: var(--_icon-size)}::slotted(odx-avatar){--_size: var(--_icon-size)}::slotted([slot=\"suffix\"]){margin-inline-start:auto}";
2
2
 
3
3
  export { styles as default };
@@ -1,3 +1,4 @@
1
+ import { ARIAMixinStrict } from '@odx/foundation';
1
2
  import { PropertyValues } from 'lit';
2
3
  import { BaseButtonComponent } from '../button';
3
4
  import { NavigationItemSize } from './navigation-item.models';
@@ -9,6 +10,7 @@ declare global {
9
10
  export declare class OdxNavigationItemComponent extends BaseButtonComponent {
10
11
  size?: NavigationItemSize | null;
11
12
  selected: boolean;
13
+ ariaSelectedValue: ARIAMixinStrict['ariaCurrent'];
12
14
  connectedCallback(): void;
13
15
  protected willUpdate(props: PropertyValues<this>): void;
14
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"navigation-item.component.d.ts","sourceRoot":"","sources":["../../../components/navigation-item/navigation-item.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAE1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,qBAAqB,EAAE,0BAA0B,CAAC;KACnD;CACF;AAED,qBACa,0BAA2B,SAAQ,mBAAmB;IAEjE,IAAI,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAGjC,QAAQ,UAAS;IAER,iBAAiB,IAAI,IAAI;cAIf,UAAU,CAAC,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;CAMjE"}
1
+ {"version":3,"file":"navigation-item.component.d.ts","sourceRoot":"","sources":["../../../components/navigation-item/navigation-item.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAiB,MAAM,iBAAiB,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAE1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,qBAAqB,EAAE,0BAA0B,CAAC;KACnD;CACF;AAED,qBACa,0BAA2B,SAAQ,mBAAmB;IAEjE,IAAI,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAGjC,QAAQ,UAAS;IAGjB,iBAAiB,EAAE,eAAe,CAAC,aAAa,CAAC,CAAU;IAElD,iBAAiB,IAAI,IAAI;cAIf,UAAU,CAAC,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;CAMjE"}
@@ -17,14 +17,15 @@ let OdxNavigationItemComponent = class extends BaseButtonComponent {
17
17
  constructor() {
18
18
  super(...arguments);
19
19
  this.selected = false;
20
+ this.ariaSelectedValue = "page";
20
21
  }
21
22
  connectedCallback() {
22
23
  super.connectedCallback?.();
23
24
  }
24
25
  willUpdate(props) {
25
26
  super.willUpdate(props);
26
- if (props.has("selected")) {
27
- this.ariaCurrent = this.selected ? "page" : null;
27
+ if (props.has("selected") || props.has("ariaSelectedValue")) {
28
+ this.ariaCurrent = this.selected ? this.ariaSelectedValue : null;
28
29
  }
29
30
  }
30
31
  };
@@ -34,6 +35,9 @@ __decorateClass([
34
35
  __decorateClass([
35
36
  property({ type: Boolean })
36
37
  ], OdxNavigationItemComponent.prototype, "selected", 2);
38
+ __decorateClass([
39
+ property()
40
+ ], OdxNavigationItemComponent.prototype, "ariaSelectedValue", 2);
37
41
  OdxNavigationItemComponent = __decorateClass([
38
42
  customElement("odx-navigation-item", [styles])
39
43
  ], OdxNavigationItemComponent);
@@ -20,10 +20,10 @@ let OdxOptionComponent = class extends OptionControl {
20
20
  ${when(
21
21
  this.type === "checkbox",
22
22
  () => html`<odx-checkbox .checked=${this.selected} ?disabled=${this.disabled} inert></odx-checkbox>`,
23
- () => html`<slot name="start"></slot>`
23
+ () => html`<slot name="prefix"></slot>`
24
24
  )}
25
25
  <slot></slot>
26
- <slot name="end"></slot>
26
+ <slot name="suffix"></slot>
27
27
  `;
28
28
  }
29
29
  };
@@ -1 +1 @@
1
- {"version":3,"file":"rail-navigation.component.d.ts","sourceRoot":"","sources":["../../../components/rail-navigation/rail-navigation.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAiB,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAE,KAAK,cAAc,EAAQ,MAAM,KAAK,CAAC;AAEhD,OAAO,EAAsB,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAGpF,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,qBAAqB,EAAE,0BAA0B,CAAC;KACnD;CACF;;AAED,qBACa,0BAA2B,SAAQ,+BAA6B;;IAE3E,SAAS,CAAC,eAAe,EAAG,0BAA0B,EAAE,CAAC;IAGzD,SAAS,UAAS;cAEC,MAAM,IAAI,cAAc;IAY3C,QAAQ,IAAI,0BAA0B,EAAE;IAI/B,gBAAgB;;;;;;CAoB1B"}
1
+ {"version":3,"file":"rail-navigation.component.d.ts","sourceRoot":"","sources":["../../../components/rail-navigation/rail-navigation.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAiB,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAE,KAAK,cAAc,EAAQ,MAAM,KAAK,CAAC;AAEhD,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAGhE,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,qBAAqB,EAAE,0BAA0B,CAAC;KACnD;CACF;;AAED,qBACa,0BAA2B,SAAQ,+BAA6B;;IAE3E,SAAS,CAAC,eAAe,EAAG,0BAA0B,EAAE,CAAC;IAGzD,SAAS,UAAS;cAEC,MAAM,IAAI,cAAc;IAY3C,QAAQ,IAAI,0BAA0B,EAAE;IAI/B,gBAAgB;;;;;;CAY1B"}
@@ -2,7 +2,6 @@ import { IsTranslatable, CustomElement, customElement } from '@odx/foundation';
2
2
  import { html } from 'lit';
3
3
  import { queryAssignedElements, property } from 'lit/decorators.js';
4
4
  import styles from './rail-navigation.component.css.js';
5
- import { NavigationItemSize } from '../navigation-item/navigation-item.models.js';
6
5
  import { OdxNavigationItemComponent } from '../navigation-item/navigation-item.component.js';
7
6
 
8
7
  var __defProp = Object.defineProperty;
@@ -21,28 +20,21 @@ var __decorateClass = (decorators, target, key, kind) => {
21
20
  var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
22
21
  var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
23
22
  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);
24
- var _handleControlClick, _handleSlotChange;
23
+ var _handleControlClick;
25
24
  let OdxRailNavigationComponent = class extends IsTranslatable(CustomElement) {
26
25
  constructor() {
27
26
  super(...arguments);
28
27
  this.collapsed = false;
29
- __privateAdd(this, _handleControlClick, (event) => {
30
- event.preventDefault();
31
- event.stopPropagation();
28
+ __privateAdd(this, _handleControlClick, () => {
32
29
  this.collapsed = !this.collapsed;
33
30
  });
34
- __privateAdd(this, _handleSlotChange, () => {
35
- for (const item of this.navigationItems) {
36
- item.size = NavigationItemSize.LG;
37
- }
38
- });
39
31
  }
40
32
  render() {
41
33
  const controlLabel = this._translate(this.collapsed ? "controlLabelCollapsed" : "controlLabelExpanded") || null;
42
34
  return html`
43
- <slot @slotchange=${__privateGet(this, _handleSlotChange)}></slot>
44
- <odx-navigation-item class="toggle-control" size="lg" @click=${__privateGet(this, _handleControlClick)}>
45
- <odx-icon class="toggle-icon" name="core::chevron-left" slot="start"></odx-icon>
35
+ <slot></slot>
36
+ <odx-navigation-item class="toggle-control" @click=${__privateGet(this, _handleControlClick)}>
37
+ <odx-icon class="toggle-icon" name="core::chevron-left" slot="prefix"></odx-icon>
46
38
  <odx-visually-hidden>${controlLabel}</odx-visually-hidden>
47
39
  </odx-navigation-item>
48
40
  `;
@@ -60,7 +52,6 @@ let OdxRailNavigationComponent = class extends IsTranslatable(CustomElement) {
60
52
  }
61
53
  };
62
54
  _handleControlClick = new WeakMap();
63
- _handleSlotChange = new WeakMap();
64
55
  __decorateClass([
65
56
  queryAssignedElements({ selector: OdxNavigationItemComponent.selector, flatten: true })
66
57
  ], OdxRailNavigationComponent.prototype, "navigationItems", 2);
@@ -2,6 +2,8 @@ import { CustomElement } from '../models';
2
2
  import { Constructor } from './dedupe-mixin';
3
3
  export interface CanBeDisabled {
4
4
  disabled: boolean;
5
+ _contextDisabled: boolean;
6
+ onDisabledChanged?(disabled: boolean): void;
5
7
  }
6
8
  export declare const CanBeDisabled: <T extends Constructor<CustomElement>>(superClass: T) => Constructor<CanBeDisabled> & T;
7
9
  //# sourceMappingURL=can-be-disabled.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"can-be-disabled.d.ts","sourceRoot":"","sources":["../../../../src/lib/mixins/can-be-disabled.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,KAAK,WAAW,EAAe,MAAM,gBAAgB,CAAC;AAE/D,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,aAAa,GAAgB,CAAC,SAAS,WAAW,CAAC,aAAa,CAAC,cAAc,CAAC,KA+BjD,WAAW,CAAC,aAAa,CAAC,GAAG,CACvE,CAAC"}
1
+ {"version":3,"file":"can-be-disabled.d.ts","sourceRoot":"","sources":["../../../../src/lib/mixins/can-be-disabled.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,KAAK,WAAW,EAAe,MAAM,gBAAgB,CAAC;AAE/D,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;CAC7C;AAED,eAAO,MAAM,aAAa,GAAgB,CAAC,SAAS,WAAW,CAAC,aAAa,CAAC,cAAc,CAAC,KA4CjD,WAAW,CAAC,aAAa,CAAC,GAAG,CACvE,CAAC"}
@@ -16,6 +16,7 @@ const CanBeDisabled = dedupeMixin((superClass) => {
16
16
  constructor() {
17
17
  super(...arguments);
18
18
  this.#initialTabIndex = null;
19
+ this._contextDisabled = false;
19
20
  this.disabled = false;
20
21
  }
21
22
  #initialTabIndex;
@@ -25,13 +26,20 @@ const CanBeDisabled = dedupeMixin((superClass) => {
25
26
  }
26
27
  willUpdate(props) {
27
28
  super.willUpdate?.(props);
28
- if (props.has("disabled")) {
29
+ if (props.has("_contextDisabled") || props.has("disabled")) {
29
30
  this.#handleDisableChange();
30
31
  }
31
32
  }
33
+ updated(props) {
34
+ super.updated?.(props);
35
+ if (props.has("_contextDisabled") || props.has("disabled")) {
36
+ this.onDisabledChanged?.(this._contextDisabled || this.disabled);
37
+ }
38
+ }
32
39
  #handleDisableChange() {
33
- this.ariaDisabled = toAriaBooleanAttribute(this.disabled);
34
- if (this.disabled) {
40
+ const disabled = this._contextDisabled || this.disabled;
41
+ this.ariaDisabled = toAriaBooleanAttribute(disabled);
42
+ if (disabled) {
35
43
  this.tabIndex = -1;
36
44
  } else if (this.#initialTabIndex !== null) {
37
45
  this.tabIndex = this.#initialTabIndex;
@@ -41,7 +49,10 @@ const CanBeDisabled = dedupeMixin((superClass) => {
41
49
  }
42
50
  }
43
51
  __decorateClass([
44
- property({ type: Boolean, reflect: true })
52
+ property({ type: Boolean })
53
+ ], CanBeDisabledElement.prototype, "_contextDisabled");
54
+ __decorateClass([
55
+ property({ type: Boolean })
45
56
  ], CanBeDisabledElement.prototype, "disabled");
46
57
  return CanBeDisabledElement;
47
58
  });
@@ -1,3 +1,3 @@
1
- const customElementStyles = "@layer odx-reset,odx-base,odx-component,odx-theme;@layer odx-reset{*,*:before,*:after{box-sizing:border-box}:root{font-size:150%}:where(img,picture,video,canvas,svg){display:block;max-width:100%;margin:0;padding:0}:where(input,button,textarea,select){font:inherit;margin:0;padding:0}:where(p,h1,h2,h3,h4,h5,h6){overflow-wrap:break-word;margin:0;padding:0}::selection{background-color:var(--odx-color-foreground-highlight);color:var(--odx-color-foreground-inverse)}#root,#__next{isolation:isolate}input[type=search]::-webkit-search-cancel-button{appearance:none;display:none}odx-spinbox>input::-webkit-inner-spin-button{appearance:none}}@layer odx-base{html,body{background-color:var(--odx-color-background-cool)}html{font-family:sans-serif;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;color:var(--odx-color-foreground);font-family:var(--odx-typography-font-family-base),\"Noto Sans\",\"Kanit\",sans-serif;font-size:var(--odx-breakpoint-font-size-p-base);line-height:var(--odx-breakpoint-line-height-p-md);margin:0;padding:0}*{scrollbar-color:var(--odx-color-neutral-rest) var(--odx-palette-transparent)}*:not(body){scrollbar-width:thin}h1,h2,h3,h4,h5,h6{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);color:inherit}h6{--_font-size: var(--odx-breakpoint-font-size-heading-6);--_line-height: var(--odx-breakpoint-line-height-heading-6)}h5{--_font-size: var(--odx-breakpoint-font-size-heading-5);--_line-height: var(--odx-breakpoint-line-height-heading-5)}h4{--_font-size: var(--odx-breakpoint-font-size-heading-4);--_line-height: var(--odx-breakpoint-line-height-heading-4)}h3{--_font-size: var(--odx-breakpoint-font-size-heading-3);--_line-height: var(--odx-breakpoint-line-height-heading-3)}h2{--_font-size: var(--odx-breakpoint-font-size-heading-2);--_line-height: var(--odx-breakpoint-line-height-heading-2)}h1{--_font-size: var(--odx-breakpoint-font-size-heading-1);--_line-height: var(--odx-breakpoint-line-height-heading-1)}}@layer odx-base{[odxPreventTextOverflow]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}@layer odx-reset{:where(*,*:before,*:after){box-sizing:border-box}:where(:host){box-sizing:border-box;border:none;color:inherit}#root,#__next{isolation:isolate}[hidden]{display:none}}";
1
+ const customElementStyles = "@layer odx-reset,odx-base,odx-component,odx-component-overrides,odx-theme;@layer odx-reset{*,*:before,*:after{box-sizing:border-box}:root{font-size:150%}:where(img,picture,video,canvas,svg){display:block;max-width:100%;margin:0;padding:0}:where(input,button,textarea,select){font:inherit;margin:0;padding:0}:where(p,h1,h2,h3,h4,h5,h6){overflow-wrap:break-word;margin:0;padding:0}::selection{background-color:var(--odx-color-foreground-highlight);color:var(--odx-color-foreground-inverse)}#root,#__next{isolation:isolate}input[type=search]::-webkit-search-cancel-button{appearance:none;display:none}odx-spinbox>input::-webkit-inner-spin-button{appearance:none}}@layer odx-base{html,body{background-color:var(--odx-color-background-cool)}html{font-family:sans-serif;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;color:var(--odx-color-foreground);font-family:var(--odx-typography-font-family-base),\"Noto Sans\",\"Kanit\",sans-serif;font-size:var(--odx-breakpoint-font-size-p-base);line-height:var(--odx-breakpoint-line-height-p-md);margin:0;padding:0}*{scrollbar-color:var(--odx-color-neutral-rest) var(--odx-palette-transparent)}*:not(body){scrollbar-width:thin}h1,h2,h3,h4,h5,h6{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);color:inherit}h6{--_font-size: var(--odx-breakpoint-font-size-heading-6);--_line-height: var(--odx-breakpoint-line-height-heading-6)}h5{--_font-size: var(--odx-breakpoint-font-size-heading-5);--_line-height: var(--odx-breakpoint-line-height-heading-5)}h4{--_font-size: var(--odx-breakpoint-font-size-heading-4);--_line-height: var(--odx-breakpoint-line-height-heading-4)}h3{--_font-size: var(--odx-breakpoint-font-size-heading-3);--_line-height: var(--odx-breakpoint-line-height-heading-3)}h2{--_font-size: var(--odx-breakpoint-font-size-heading-2);--_line-height: var(--odx-breakpoint-line-height-heading-2)}h1{--_font-size: var(--odx-breakpoint-font-size-heading-1);--_line-height: var(--odx-breakpoint-line-height-heading-1)}}@layer odx-base{[odxPreventTextOverflow]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}@layer odx-reset{:where(*,*:before,*:after){box-sizing:border-box}:where(:host){box-sizing:border-box;border:none;color:inherit}#root,#__next{isolation:isolate}[hidden]{display:none}}";
2
2
 
3
3
  export { customElementStyles as default };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@odx/foundation",
3
3
  "description": "A library of Web Component building blocks for ODX",
4
- "version": "0.1.0-alpha.26",
4
+ "version": "0.1.0-alpha.28",
5
5
  "author": "Drägerwerk AG & Co.KGaA",
6
6
  "license": "SEE LICENSE IN LICENSE",
7
7
  "homepage": "https://odx.draeger.com",