@odx/foundation 0.1.0-alpha.21 → 0.1.0-alpha.23

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 (28) hide show
  1. package/dist/components/button/base-button.d.ts +4 -2
  2. package/dist/components/button/base-button.d.ts.map +1 -1
  3. package/dist/components/button/base-button.js +18 -24
  4. package/dist/components/button/button.component.css.js +1 -1
  5. package/dist/components/button/button.component.d.ts +0 -2
  6. package/dist/components/button/button.component.d.ts.map +1 -1
  7. package/dist/components/button/button.component.js +1 -10
  8. package/dist/components/icon-button/icon-button.component.js +1 -1
  9. package/dist/components/loading-overlay/loading-overlay.component.d.ts.map +1 -1
  10. package/dist/components/loading-overlay/loading-overlay.component.js +3 -1
  11. package/dist/components/loading-spinner/index.d.ts +2 -0
  12. package/dist/components/loading-spinner/index.d.ts.map +1 -0
  13. package/dist/components/loading-spinner/loading-spinner.component.css.js +3 -0
  14. package/dist/components/loading-spinner/loading-spinner.component.d.ts +13 -0
  15. package/dist/components/loading-spinner/loading-spinner.component.d.ts.map +1 -0
  16. package/dist/components/loading-spinner/loading-spinner.component.js +58 -0
  17. package/dist/components/main.d.ts +1 -1
  18. package/dist/components/main.d.ts.map +1 -1
  19. package/dist/components/main.js +1 -1
  20. package/dist/src/lib/mixins/with-loading-state.d.ts.map +1 -1
  21. package/dist/src/lib/mixins/with-loading-state.js +0 -1
  22. package/package.json +2 -2
  23. package/dist/components/loading-indicator/index.d.ts +0 -2
  24. package/dist/components/loading-indicator/index.d.ts.map +0 -1
  25. package/dist/components/loading-indicator/loading-indicator.component.css.js +0 -3
  26. package/dist/components/loading-indicator/loading-indicator.component.d.ts +0 -11
  27. package/dist/components/loading-indicator/loading-indicator.component.d.ts.map +0 -1
  28. package/dist/components/loading-indicator/loading-indicator.component.js +0 -26
@@ -1,5 +1,6 @@
1
1
  import { TemplateResult } from 'lit';
2
2
  import { BaseLink } from '../link';
3
+ declare const BaseButtonComponent_base: import('@odx/foundation').Constructor<import('@odx/foundation').HasLoadingState> & typeof BaseLink;
3
4
  /**
4
5
  * A button is clickable text or an icon that triggers an action on the page or in the background.
5
6
  * Depending on the action, content, and hierarchy, a button can be used on its own or grouped with
@@ -12,13 +13,14 @@ import { BaseLink } from '../link';
12
13
  * @slot suffix - Contains the button's icon or state indicator, e.g. a spinner.
13
14
  * @slot - Contains button text
14
15
  */
15
- export declare class BaseButtonComponent extends BaseLink {
16
- #private;
16
+ export declare class BaseButtonComponent extends BaseButtonComponent_base {
17
17
  /**
18
18
  * The type of the button.
19
19
  */
20
20
  type: 'button' | 'submit' | 'reset';
21
21
  protected render(): TemplateResult;
22
22
  protected renderContent(): TemplateResult;
23
+ protected renderButton(): TemplateResult<1>;
23
24
  }
25
+ export {};
24
26
  //# sourceMappingURL=base-button.d.ts.map
@@ -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,QAAQ;;IAC/C;;OAEG;IAEH,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAY;cAE5B,MAAM,IAAI,cAAc;cAQxB,aAAa,IAAI,cAAc;CAsBnD"}
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;IASlD,SAAS,CAAC,YAAY;CAgBvB"}
@@ -1,4 +1,4 @@
1
- import { optionalAttr, requestUpdateOnAriaChange } from '@odx/foundation';
1
+ import { WithLoadingState, optionalAttr, requestUpdateOnAriaChange } from '@odx/foundation';
2
2
  import { html } from 'lit';
3
3
  import { property } from 'lit/decorators.js';
4
4
  import { when } from 'lit/directives/when.js';
@@ -6,9 +6,6 @@ import { BaseLink } from '../link/base-link.js';
6
6
 
7
7
  var __defProp = Object.defineProperty;
8
8
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
9
- var __typeError = (msg) => {
10
- throw TypeError(msg);
11
- };
12
9
  var __decorateClass = (decorators, target, key, kind) => {
13
10
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
14
11
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
@@ -17,21 +14,16 @@ var __decorateClass = (decorators, target, key, kind) => {
17
14
  if (kind && result) __defProp(target, key, result);
18
15
  return result;
19
16
  };
20
- var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
21
- 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);
22
- var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
23
- var _BaseButtonComponent_instances, renderButton_fn;
24
- let BaseButtonComponent = class extends BaseLink {
17
+ let BaseButtonComponent = class extends WithLoadingState(BaseLink) {
25
18
  constructor() {
26
19
  super(...arguments);
27
- __privateAdd(this, _BaseButtonComponent_instances);
28
20
  this.type = "button";
29
21
  }
30
22
  render() {
31
23
  return html`${when(
32
24
  this.href,
33
25
  () => super.render(),
34
- () => __privateMethod(this, _BaseButtonComponent_instances, renderButton_fn).call(this)
26
+ () => this.renderButton()
35
27
  )}`;
36
28
  }
37
29
  renderContent() {
@@ -39,22 +31,24 @@ let BaseButtonComponent = class extends BaseLink {
39
31
  <slot name="start"></slot>
40
32
  <slot></slot>
41
33
  <slot name="end"></slot>
34
+ ${when(this.loading, () => html`<odx-loading-spinner class="spinner" variant="dots"></odx-loading-spinner>`)}
42
35
  `;
43
36
  }
44
- };
45
- _BaseButtonComponent_instances = new WeakSet();
46
- renderButton_fn = function() {
47
- const { ariaLabel, ariaHasPopup, ariaExpanded } = this;
48
- return html`<button
49
- part="anchor button"
50
- aria-label="${optionalAttr(ariaLabel)}"
51
- aria-haspopup="${optionalAttr(ariaHasPopup)}"
52
- aria-expanded="${optionalAttr(ariaExpanded)}"
53
- type=${this.type}
54
- ?disabled=${this.disabled}
55
- >
37
+ renderButton() {
38
+ const { ariaLabel, ariaHasPopup, ariaExpanded } = this;
39
+ return html`
40
+ <button
41
+ part="anchor button"
42
+ aria-label="${optionalAttr(ariaLabel)}"
43
+ aria-haspopup="${optionalAttr(ariaHasPopup)}"
44
+ aria-expanded="${optionalAttr(ariaExpanded)}"
45
+ type=${this.type}
46
+ ?disabled=${this.disabled || this.loading}
47
+ >
56
48
  ${this.renderContent()}
57
- </button>`;
49
+ </button>
50
+ `;
51
+ }
58
52
  };
59
53
  __decorateClass([
60
54
  property()
@@ -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);--_spinner-size: var(--odx-size-50);--_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);inline-size:var(--_block-size);cursor:pointer;position:relative;user-select:none;vertical-align:top;border-radius:var(--odx-border-radius-sm);white-space:nowrap;margin-block:var(--_margin-block);-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)}.spinner{--_size: var(--_spinner-size);color:var(--_color-foreground);position:absolute;inset:var(--odx-border-width-thin)}:host::part(anchor)::-moz-focus-inner{padding:0;border:0}:host(:hover)::part(anchor){--_color-background: var(--_color-background-hover);--_color-stroke: var(--_color-stroke-hover)}:host(:active)::part(anchor){--_color-background: var(--_color-background-pressed);--_color-stroke: var(--_color-stroke-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);--_color-stroke: var(--odx-color-disabled-stroke);cursor:not-allowed}: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([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([size=\"sm\"]){--_block-size: var(--odx-size-150);--_padding-inline: var(--odx-size-50);--_text-size: var(--odx-typography-font-size-2);--_icon-size: var(--odx-size-100);--_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([loading]:not([loading=\"false\"]))::part(anchor){color:transparent}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);--_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);white-space:nowrap;margin-block:var(--_margin-block);-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)}.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([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([size=\"sm\"]){--_block-size: var(--odx-size-150);--_padding-inline: var(--odx-size-50);--_text-size: var(--odx-typography-font-size-2);--_icon-size: var(--odx-size-100);--_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}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}";
2
2
 
3
3
  export { styles as default };
@@ -1,4 +1,3 @@
1
- import { TemplateResult } from 'lit';
2
1
  import { BaseButtonComponent } from './base-button';
3
2
  import { ButtonSize, ButtonVariant } from './button.models';
4
3
  declare global {
@@ -31,7 +30,6 @@ export declare class OdxButtonComponent extends OdxButtonComponent_base {
31
30
  */
32
31
  variant?: ButtonVariant;
33
32
  constructor();
34
- protected renderContent(): TemplateResult;
35
33
  }
36
34
  export {};
37
35
  //# sourceMappingURL=button.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"button.component.d.ts","sourceRoot":"","sources":["../../../components/button/button.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,cAAc,EAAkB,MAAM,KAAK,CAAC;AAG1D,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;;cASL,aAAa,IAAI,cAAc;CAmBnD"}
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,7 +1,6 @@
1
1
  import { WithLoadingState, customElement } from '@odx/foundation';
2
- import { isServer, html } from 'lit';
2
+ import { isServer } from 'lit';
3
3
  import { property } from 'lit/decorators.js';
4
- import { when } from 'lit/directives/when.js';
5
4
  import { BaseButtonComponent } from './base-button.js';
6
5
  import styles from './button.component.css.js';
7
6
 
@@ -32,14 +31,6 @@ let OdxButtonComponent = class extends WithLoadingState(BaseButtonComponent) {
32
31
  this.addEventListener("click", __privateMethod(this, _OdxButtonComponent_instances, handleClick_fn));
33
32
  }
34
33
  }
35
- renderContent() {
36
- return html`
37
- <slot name="start"></slot>
38
- <slot></slot>
39
- <slot name="end"></slot>
40
- ${when(this.loading, () => html`<odx-loading-indicator class="spinner"></odx-loading-indicator>`)}
41
- `;
42
- }
43
34
  };
44
35
  _internals = new WeakMap();
45
36
  _OdxButtonComponent_instances = new WeakSet();
@@ -18,10 +18,10 @@ let OdxIconButtonComponent = class extends OdxButtonComponent {
18
18
  renderContent() {
19
19
  return html`
20
20
  <odx-icon name=${optionalAttr(this.icon)}></odx-icon>
21
+ ${when(this.loading, () => html`<odx-loading-spinner class="spinner"></odx-loading-spinner>`)}
21
22
  <odx-visually-hidden>
22
23
  <slot></slot>
23
24
  </odx-visually-hidden>
24
- ${when(this.loading, () => html`<odx-loading-indicator class="spinner"></odx-loading-indicator>`)}
25
25
  `;
26
26
  }
27
27
  };
@@ -1 +1 @@
1
- {"version":3,"file":"loading-overlay.component.d.ts","sourceRoot":"","sources":["../../../components/loading-overlay/loading-overlay.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA4E,MAAM,iBAAiB,CAAC;AAC1H,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAQ,MAAM,KAAK,CAAC;AAIrE,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,qBAAqB,EAAE,0BAA0B,CAAC;KACnD;CACF;AAED,eAAO,MAAM,8BAA8B,6BAA6B,CAAC;;AAEzE,qBACa,0BAA2B,SAAQ,+BAA+B;;IAI7E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IAEvC,IAAa,gBAAgB,IAAI,WAAW,CAE3C;IAEQ,oBAAoB,IAAI,IAAI;cAKZ,OAAO,CAAC,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;cAWzD,MAAM,IAAI,cAAc;IAY3C,SAAS,CAAC,WAAW,IAAI,IAAI;IAO7B,SAAS,CAAC,WAAW,IAAI,IAAI;CAK9B"}
1
+ {"version":3,"file":"loading-overlay.component.d.ts","sourceRoot":"","sources":["../../../components/loading-overlay/loading-overlay.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA4E,MAAM,iBAAiB,CAAC;AAC1H,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAQ,MAAM,KAAK,CAAC;AAIrE,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,qBAAqB,EAAE,0BAA0B,CAAC;KACnD;CACF;AAED,eAAO,MAAM,8BAA8B,6BAA6B,CAAC;;AAEzE,qBACa,0BAA2B,SAAQ,+BAA+B;;IAI7E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IAEvC,IAAa,gBAAgB,IAAI,WAAW,CAE3C;IAEQ,oBAAoB,IAAI,IAAI;cAKZ,OAAO,CAAC,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;cAWzD,MAAM,IAAI,cAAc;IAY3C,SAAS,CAAC,WAAW,IAAI,IAAI;IAQ7B,SAAS,CAAC,WAAW,IAAI,IAAI;CAM9B"}
@@ -49,7 +49,7 @@ let OdxLoadingOverlayComponent = class extends WithLoadingState(CustomElement) {
49
49
  <div part="overlay">
50
50
  <div class="content">
51
51
  <slot ${emptySlotFallbackFix()}>
52
- <odx-loading-indicator></odx-loading-indicator>
52
+ <odx-loading-spinner></odx-loading-spinner>
53
53
  </slot>
54
54
  </div>
55
55
  </div>
@@ -60,11 +60,13 @@ let OdxLoadingOverlayComponent = class extends WithLoadingState(CustomElement) {
60
60
  __privateSet(this, _loadingContainerPosition, window.getComputedStyle(this.loadingContainer).position);
61
61
  if (__privateGet(this, _loadingContainerPosition) !== "static") return;
62
62
  this.loadingContainer.style.position = "relative";
63
+ this.loadingContainer.inert = true;
63
64
  }
64
65
  hideOverlay() {
65
66
  this.loadingContainer.toggleAttribute(LOADING_OVERLAY_HOST_DIRECTIVE, false);
66
67
  if (__privateGet(this, _loadingContainerPosition) !== "static") return;
67
68
  this.loadingContainer.style.position = "";
69
+ this.loadingContainer.inert = false;
68
70
  }
69
71
  };
70
72
  _loadingContainerPosition = new WeakMap();
@@ -0,0 +1,2 @@
1
+ export * from './loading-spinner.component';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../components/loading-spinner/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC"}
@@ -0,0 +1,3 @@
1
+ const styles = ":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}:not(svg){transform-origin:0px 0px}.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}}: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}}";
2
+
3
+ export { styles as default };
@@ -0,0 +1,13 @@
1
+ import { CustomElement } from '@odx/foundation';
2
+ import { TemplateResult } from 'lit';
3
+ declare global {
4
+ interface HTMLElementTagNameMap {
5
+ 'odx-loading-spinner': OdxLoadingSpinnerComponent;
6
+ }
7
+ }
8
+ export declare class OdxLoadingSpinnerComponent extends CustomElement {
9
+ #private;
10
+ variant?: 'dots' | null;
11
+ protected render(): TemplateResult;
12
+ }
13
+ //# sourceMappingURL=loading-spinner.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loading-spinner.component.d.ts","sourceRoot":"","sources":["../../../components/loading-spinner/loading-spinner.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAiB,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,KAAK,cAAc,EAAQ,MAAM,KAAK,CAAC;AAIhD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,qBAAqB,EAAE,0BAA0B,CAAC;KACnD;CACF;AAED,qBACa,0BAA2B,SAAQ,aAAa;;IAE3D,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;cAEL,MAAM,IAAI,cAAc;CAuB5C"}
@@ -0,0 +1,58 @@
1
+ import { CustomElement, customElement } from '@odx/foundation';
2
+ import { html } from 'lit';
3
+ import { property } from 'lit/decorators.js';
4
+ import styles from './loading-spinner.component.css.js';
5
+
6
+ var __defProp = Object.defineProperty;
7
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
8
+ var __typeError = (msg) => {
9
+ throw TypeError(msg);
10
+ };
11
+ var __decorateClass = (decorators, target, key, kind) => {
12
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
13
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
14
+ if (decorator = decorators[i])
15
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
16
+ if (kind && result) __defProp(target, key, result);
17
+ return result;
18
+ };
19
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
20
+ 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);
21
+ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
22
+ var _OdxLoadingSpinnerComponent_instances, renderSpinner_fn, renderDots_fn;
23
+ let OdxLoadingSpinnerComponent = class extends CustomElement {
24
+ constructor() {
25
+ super(...arguments);
26
+ __privateAdd(this, _OdxLoadingSpinnerComponent_instances);
27
+ }
28
+ render() {
29
+ if (this.variant === "dots") {
30
+ return __privateMethod(this, _OdxLoadingSpinnerComponent_instances, renderDots_fn).call(this);
31
+ }
32
+ return __privateMethod(this, _OdxLoadingSpinnerComponent_instances, renderSpinner_fn).call(this);
33
+ }
34
+ };
35
+ _OdxLoadingSpinnerComponent_instances = new WeakSet();
36
+ renderSpinner_fn = function() {
37
+ return html`
38
+ <svg class="base" role="progressbar" aria-label="Loading" fill="none" viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg">
39
+ <circle class="track" cx="24" cy="24" r="20" fill="none"></circle>
40
+ <circle class="indicator" cx="24" cy="24" r="20" fill="none"></circle>
41
+ </svg>
42
+ `;
43
+ };
44
+ renderDots_fn = function() {
45
+ return html`
46
+ <div class="indicator"></div>
47
+ <div class="indicator"></div>
48
+ <div class="indicator"></div>
49
+ `;
50
+ };
51
+ __decorateClass([
52
+ property({ reflect: true })
53
+ ], OdxLoadingSpinnerComponent.prototype, "variant", 2);
54
+ OdxLoadingSpinnerComponent = __decorateClass([
55
+ customElement("odx-loading-spinner", [styles])
56
+ ], OdxLoadingSpinnerComponent);
57
+
58
+ export { OdxLoadingSpinnerComponent };
@@ -19,8 +19,8 @@ export * from './icon-button';
19
19
  export * from './inline-message';
20
20
  export * from './link';
21
21
  export * from './list';
22
- export * from './loading-indicator';
23
22
  export * from './loading-overlay';
23
+ export * from './loading-spinner';
24
24
  export * from './logo';
25
25
  export * from './main-menu';
26
26
  export * from './navigation-item';
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../components/main.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAElC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../components/main.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAElC,cAAc,kBAAkB,CAAC"}
@@ -38,8 +38,8 @@ export { BaseLink } from './link/base-link.js';
38
38
  export { OdxLinkComponent } from './link/link.component.js';
39
39
  export { OdxListItemComponent } from './list/list-item.component.js';
40
40
  export { OdxListComponent } from './list/list.component.js';
41
- export { OdxLoadingIndicatorComponent } from './loading-indicator/loading-indicator.component.js';
42
41
  export { LOADING_OVERLAY_HOST_DIRECTIVE, OdxLoadingOverlayComponent } from './loading-overlay/loading-overlay.component.js';
42
+ export { OdxLoadingSpinnerComponent } from './loading-spinner/loading-spinner.component.js';
43
43
  export { OdxLogoComponent } from './logo/logo.component.js';
44
44
  export { LogoSize } from './logo/logo.models.js';
45
45
  export { OdxMainMenuButtonComponent } from './main-menu/main-menu-button.component.js';
@@ -1 +1 @@
1
- {"version":3,"file":"with-loading-state.d.ts","sourceRoot":"","sources":["../../../../src/lib/mixins/with-loading-state.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,KAAK,WAAW,EAAe,MAAM,gBAAgB,CAAC;AAE/D,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,gBAAgB,IAAI,WAAW,CAAC;CACrC;AAED,eAAO,MAAM,gBAAgB,GAAgB,CAAC,SAAS,WAAW,CAAC,aAAa,CAAC,cAAc,CAAC,KAgB5D,WAAW,CAAC,eAAe,CAAC,GAAG,CACjE,CAAC"}
1
+ {"version":3,"file":"with-loading-state.d.ts","sourceRoot":"","sources":["../../../../src/lib/mixins/with-loading-state.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,KAAK,WAAW,EAAe,MAAM,gBAAgB,CAAC;AAE/D,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,gBAAgB,IAAI,WAAW,CAAC;CACrC;AAED,eAAO,MAAM,gBAAgB,GAAgB,CAAC,SAAS,WAAW,CAAC,aAAa,CAAC,cAAc,CAAC,KAe5D,WAAW,CAAC,eAAe,CAAC,GAAG,CACjE,CAAC"}
@@ -19,7 +19,6 @@ const WithLoadingState = dedupeMixin((superClass) => {
19
19
  }
20
20
  set loading(value) {
21
21
  this.loadingContainer.ariaBusy = toAriaBooleanAttribute(value);
22
- this.loadingContainer.inert = value;
23
22
  }
24
23
  get loading() {
25
24
  return fromAriaBooleanAttribute(this.loadingContainer.ariaBusy);
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.21",
4
+ "version": "0.1.0-alpha.23",
5
5
  "author": "Drägerwerk AG & Co.KGaA",
6
6
  "license": "SEE LICENSE IN LICENSE",
7
7
  "homepage": "https://odx.draeger.com",
@@ -24,7 +24,7 @@
24
24
  "devDependencies": {
25
25
  "@odx/typescript-config": "*",
26
26
  "ts-lit-plugin": "2.0.2",
27
- "vite": "6.2.0",
27
+ "vite": "6.2.1",
28
28
  "vite-plugin-checker": "0.9.0",
29
29
  "vite-plugin-dts": "4.5.3"
30
30
  },
@@ -1,2 +0,0 @@
1
- export * from './loading-indicator.component';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../components/loading-indicator/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC"}
@@ -1,3 +0,0 @@
1
- const styles = "@keyframes loading-indicator-entry-animation{0%{opacity:0}to{opacity:1}}@keyframes loading-indicator-animation{0%,75%,to{transform:scale(.667);opacity:.5}50%{transform:scale(1);opacity:1;background-color:currentColor}}:host{--_animation-timing-function: cubic-bezier(.96, .21, .41, .76);--_animation-duration: 1.25s;--_animation-delay: 0s;--_size: var(--odx-size-75);--_space: var(--odx-size-37);display:flex;place-content:center;place-items:center;color:currentColor;gap:calc(var(--_space) / 2);padding:var(--_space);animation:loading-indicator-entry-animation .25s linear both}.dot{background-color:currentColor;border-radius:50%;block-size:var(--_size);flex:0 0 var(--_size);z-index:3;animation:loading-indicator-animation var(--_animation-duration) var(--_animation-delay) infinite var(--_animation-timing-function) 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}}";
2
-
3
- export { styles as default };
@@ -1,11 +0,0 @@
1
- import { CustomElement } from '@odx/foundation';
2
- import { TemplateResult } from 'lit';
3
- declare global {
4
- interface HTMLElementTagNameMap {
5
- 'odx-loading-indicator': OdxLoadingIndicatorComponent;
6
- }
7
- }
8
- export declare class OdxLoadingIndicatorComponent extends CustomElement {
9
- protected render(): TemplateResult;
10
- }
11
- //# sourceMappingURL=loading-indicator.component.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loading-indicator.component.d.ts","sourceRoot":"","sources":["../../../components/loading-indicator/loading-indicator.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAiB,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,KAAK,cAAc,EAAQ,MAAM,KAAK,CAAC;AAGhD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,uBAAuB,EAAE,4BAA4B,CAAC;KACvD;CACF;AAED,qBACa,4BAA6B,SAAQ,aAAa;cAC1C,MAAM,IAAI,cAAc;CAO5C"}
@@ -1,26 +0,0 @@
1
- import { CustomElement, customElement } from '@odx/foundation';
2
- import { html } from 'lit';
3
- import styles from './loading-indicator.component.css.js';
4
-
5
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
- var __decorateClass = (decorators, target, key, kind) => {
7
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
8
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
9
- if (decorator = decorators[i])
10
- result = (decorator(result)) || result;
11
- return result;
12
- };
13
- let OdxLoadingIndicatorComponent = class extends CustomElement {
14
- render() {
15
- return html`
16
- <div class="dot"></div>
17
- <div class="dot"></div>
18
- <div class="dot"></div>
19
- `;
20
- }
21
- };
22
- OdxLoadingIndicatorComponent = __decorateClass([
23
- customElement("odx-loading-indicator", [styles])
24
- ], OdxLoadingIndicatorComponent);
25
-
26
- export { OdxLoadingIndicatorComponent };