@odx/foundation 0.1.0-alpha.7 → 0.1.0-alpha.9

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.
@@ -1,6 +1,5 @@
1
1
  export * from './accordion';
2
2
  export * from './card';
3
- export * from './chip';
4
3
  export * from './circular-progress-bar';
5
4
  export * from './content-layout';
6
5
  export * from './dropdown';
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/elements/main.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,QAAQ,CAAC;AACvB,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/elements/main.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,QAAQ,CAAC;AACvB,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"select.element.d.ts","sourceRoot":"","sources":["../../../src/elements/select/select.element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,aAAa,EAAsC,MAAM,iBAAiB,CAAC;AACxG,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,KAAK,cAAc,EAAQ,MAAM,KAAK,CAAC;AAIhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,gBAAgB,CAAC;KAChC;CACF;AAED,qBACa,gBAAiB,SAAQ,aAAa;;IACjD,UACmB,OAAO,EAAG,kBAAkB,EAAE,CAAC;IAGlD,SAAS,CAAC,eAAe,EAAG,kBAAkB,CAAC;cAE5B,MAAM,IAAI,cAAc;IAgB3C,SAAS,CAAC,qBAAqB,IAAI,cAAc;CAwBlD"}
1
+ {"version":3,"file":"select.element.d.ts","sourceRoot":"","sources":["../../../src/elements/select/select.element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,aAAa,EAAsC,MAAM,iBAAiB,CAAC;AACxG,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,KAAK,cAAc,EAAQ,MAAM,KAAK,CAAC;AAIhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,gBAAgB,CAAC;KAChC;CACF;AAED,qBACa,gBAAiB,SAAQ,aAAa;;IACjD,UACmB,OAAO,EAAG,kBAAkB,EAAE,CAAC;IAGlD,SAAS,CAAC,eAAe,EAAG,kBAAkB,CAAC;cAE5B,MAAM,IAAI,cAAc;IAgB3C,SAAS,CAAC,qBAAqB,IAAI,cAAc;CAyBlD"}
package/dist/elements.js CHANGED
@@ -1,8 +1,8 @@
1
- import { WithAriaControls, CustomElement, toAriaBooleanAttribute, fromAriaBooleanAttribute, customElement, getKeyboardEventInfo, CanBeDisabled, optionalSlot, toggleAttribute, getElementFromEvent, SharedResizeObserver, getUniqueId, WithLoadingState, waitForAnimations, emptySlotFallbackFix, FocusTrapController, RovingTabindexController, optionalAttr, SelectControl, NumberControl, CheckboxControl } from '@odx/foundation';
1
+ import { WithAriaControls, CustomElement, toAriaBooleanAttribute, fromAriaBooleanAttribute, customElement, getKeyboardEventInfo, CanBeDisabled, optionalSlot, SharedResizeObserver, getUniqueId, toggleAttribute, WithLoadingState, waitForAnimations, emptySlotFallbackFix, FocusTrapController, RovingTabindexController, optionalAttr, SelectControl, getElementFromEvent, NumberControl, CheckboxControl } from '@odx/foundation';
2
2
  import { html, isServer, nothing } from 'lit';
3
3
  import { property, queryAssignedElements, query } from 'lit/decorators.js';
4
- import { when } from 'lit/directives/when.js';
5
4
  import { PopoverPlacement, PopoverHost, IsDraggable, IS_DRAG_ACTIVE_ATTRIBUTE, DragController } from '@odx/foundation/cdk';
5
+ import { when } from 'lit/directives/when.js';
6
6
  import { B as BaseLink } from './base-link-CvZZE13a.js';
7
7
  import { clamp, round } from 'es-toolkit';
8
8
  import { styleMap } from 'lit/directives/style-map.js';
@@ -11,16 +11,16 @@ import { repeat } from 'lit/directives/repeat.js';
11
11
  import { createContext, consume, provide } from '@lit/context';
12
12
  import { minBy, maxBy } from 'es-toolkit/array';
13
13
 
14
- const styles$z = ":host{--_fill-color: transparent;display:flex;gap:var(--odx-size-50);min-block-size:var(--odx-size-225);border-radius:var(--odx-border-radius-sm);background-color:var(--_fill-color);margin-block:calc(.5 * var(--odx-size-75));padding-block:var(--odx-size-25);padding-inline:var(--odx-size-50);cursor:pointer;transition:var(--odx-transition-default);user-select:none;place-items:center;outline:var(--odx-border-width-md) solid transparent;outline-offset:var(--odx-size-px)}:host::part(indicator){display:block;margin-inline-start:auto;block-size:var(--odx-size-150);aspect-ratio:1;transition:var(--odx-transition-slow);transition-property:transform;font-size:var(--odx-size-150)}:host(:not([disabled]):hover){--_fill-color: var(--odx-color-misc-transparent-hover)}:host([disabled]:not([disabled=\"false\"])){cursor:default;color:var(--odx-color-disabled-foreground)}:host([aria-expanded]:not([aria-expanded=\"false\"])){margin-block-end:0;[part=indicator]{transform:rotateX(180deg)}}:host(:focus-visible){outline-color:var(--odx-color-focus-outer)}";
14
+ const styles$y = ":host{--_fill-color: transparent;display:flex;gap:var(--odx-size-50);min-block-size:var(--odx-size-225);border-radius:var(--odx-border-radius-sm);background-color:var(--_fill-color);margin-block:calc(.5 * var(--odx-size-75));padding-block:var(--odx-size-25);padding-inline:var(--odx-size-50);cursor:pointer;transition:var(--odx-transition-default);user-select:none;place-items:center;outline:var(--odx-border-width-md) solid transparent;outline-offset:var(--odx-size-px)}:host::part(indicator){display:block;margin-inline-start:auto;block-size:var(--odx-size-150);aspect-ratio:1;transition:var(--odx-transition-slow);transition-property:transform;font-size:var(--odx-size-150)}:host(:not([disabled]):hover){--_fill-color: var(--odx-color-misc-transparent-hover)}:host([disabled]:not([disabled=\"false\"])){cursor:default;color:var(--odx-color-disabled-foreground)}:host([aria-expanded]:not([aria-expanded=\"false\"])){margin-block-end:0;[part=indicator]{transform:rotateX(180deg)}}:host(:focus-visible){outline-color:var(--odx-color-focus-outer)}";
15
15
 
16
- var __defProp$n = Object.defineProperty;
17
- var __getOwnPropDesc$C = Object.getOwnPropertyDescriptor;
18
- var __decorateClass$C = (decorators, target, key, kind) => {
19
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$C(target, key) : target;
16
+ var __defProp$m = Object.defineProperty;
17
+ var __getOwnPropDesc$B = Object.getOwnPropertyDescriptor;
18
+ var __decorateClass$B = (decorators, target, key, kind) => {
19
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$B(target, key) : target;
20
20
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
21
21
  if (decorator = decorators[i])
22
22
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
23
- if (kind && result) __defProp$n(target, key, result);
23
+ if (kind && result) __defProp$m(target, key, result);
24
24
  return result;
25
25
  };
26
26
  let OdxAccordionHeaderElement = class extends WithAriaControls(CustomElement) {
@@ -69,18 +69,18 @@ let OdxAccordionHeaderElement = class extends WithAriaControls(CustomElement) {
69
69
  `;
70
70
  }
71
71
  };
72
- __decorateClass$C([
72
+ __decorateClass$B([
73
73
  property({ type: Boolean })
74
74
  ], OdxAccordionHeaderElement.prototype, "expanded", 1);
75
- OdxAccordionHeaderElement = __decorateClass$C([
76
- customElement("odx-accordion-header", [styles$z])
75
+ OdxAccordionHeaderElement = __decorateClass$B([
76
+ customElement("odx-accordion-header", [styles$y])
77
77
  ], OdxAccordionHeaderElement);
78
78
 
79
- const styles$y = ":host{display:grid;grid-template-rows:1fr;transition:var(--odx-transition-slow);border-bottom:var(--odx-border-width-sm) solid transparent;margin-block-start:calc(-1 * var(--odx-border-width-sm))}:host::part(container){overflow:hidden}:host::part(content){padding:var(--odx-size-50);transition:var(--odx-transition-slow)}:host(:not(:last-of-type)){border-bottom-color:var(--odx-color-selection-control-stroke)}:host([aria-hidden]:not([aria-hidden=\"false\"])){grid-template-rows:0fr;[part=content]{opacity:0;transform:translateY(calc(-1 * var(--odx-size-75)));visibility:hidden}}:host ::slotted(*){display:block;background-color:transparent}";
79
+ const styles$x = ":host{display:grid;grid-template-rows:1fr;transition:var(--odx-transition-slow);border-bottom:var(--odx-border-width-sm) solid transparent;margin-block-start:calc(-1 * var(--odx-border-width-sm))}:host::part(container){overflow:hidden}:host::part(content){padding:var(--odx-size-50);transition:var(--odx-transition-slow)}:host(:not(:last-of-type)){border-bottom-color:var(--odx-color-selection-control-stroke)}:host([aria-hidden]:not([aria-hidden=\"false\"])){grid-template-rows:0fr;[part=content]{opacity:0;transform:translateY(calc(-1 * var(--odx-size-75)));visibility:hidden}}:host ::slotted(*){display:block;background-color:transparent}";
80
80
 
81
- var __getOwnPropDesc$B = Object.getOwnPropertyDescriptor;
82
- var __decorateClass$B = (decorators, target, key, kind) => {
83
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$B(target, key) : target;
81
+ var __getOwnPropDesc$A = Object.getOwnPropertyDescriptor;
82
+ var __decorateClass$A = (decorators, target, key, kind) => {
83
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$A(target, key) : target;
84
84
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
85
85
  if (decorator = decorators[i])
86
86
  result = (decorator(result)) || result;
@@ -97,44 +97,44 @@ let OdxAccordionPanelElement = class extends CustomElement {
97
97
  `;
98
98
  }
99
99
  };
100
- OdxAccordionPanelElement = __decorateClass$B([
101
- customElement("odx-accordion-panel", [styles$y])
100
+ OdxAccordionPanelElement = __decorateClass$A([
101
+ customElement("odx-accordion-panel", [styles$x])
102
102
  ], OdxAccordionPanelElement);
103
103
 
104
- const styles$x = ":host{display:block;overflow:hidden}:host-context(odx-accordion-panel){margin-block:calc(-.5 * var(--odx-size-75));margin-inline-end:calc(-1 * var(--odx-size-50))}";
104
+ const styles$w = ":host{display:block;overflow:hidden}:host-context(odx-accordion-panel){margin-block:calc(-.5 * var(--odx-size-75));margin-inline-end:calc(-1 * var(--odx-size-50))}";
105
105
 
106
- var __defProp$m = Object.defineProperty;
107
- var __getOwnPropDesc$A = Object.getOwnPropertyDescriptor;
108
- var __typeError$h = (msg) => {
106
+ var __defProp$l = Object.defineProperty;
107
+ var __getOwnPropDesc$z = Object.getOwnPropertyDescriptor;
108
+ var __typeError$g = (msg) => {
109
109
  throw TypeError(msg);
110
110
  };
111
- var __decorateClass$A = (decorators, target, key, kind) => {
112
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$A(target, key) : target;
111
+ var __decorateClass$z = (decorators, target, key, kind) => {
112
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$z(target, key) : target;
113
113
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
114
114
  if (decorator = decorators[i])
115
115
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
116
- if (kind && result) __defProp$m(target, key, result);
116
+ if (kind && result) __defProp$l(target, key, result);
117
117
  return result;
118
118
  };
119
- var __accessCheck$h = (obj, member, msg) => member.has(obj) || __typeError$h("Cannot " + msg);
120
- var __privateGet$f = (obj, member, getter) => (__accessCheck$h(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
121
- var __privateAdd$h = (obj, member, value) => member.has(obj) ? __typeError$h("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
122
- var _handleClick$4, _handleExpand, _handleKeyboardEvent$2;
119
+ var __accessCheck$g = (obj, member, msg) => member.has(obj) || __typeError$g("Cannot " + msg);
120
+ var __privateGet$e = (obj, member, getter) => (__accessCheck$g(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
121
+ var __privateAdd$g = (obj, member, value) => member.has(obj) ? __typeError$g("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
122
+ var _handleClick$3, _handleExpand, _handleKeyboardEvent$2;
123
123
  let OdxAccordionElement = class extends CustomElement {
124
124
  constructor() {
125
125
  super();
126
126
  this.multiple = false;
127
- __privateAdd$h(this, _handleClick$4, (event) => {
127
+ __privateAdd$g(this, _handleClick$3, (event) => {
128
128
  event.stopPropagation();
129
129
  if (!(event.target instanceof OdxAccordionHeaderElement)) return;
130
130
  event.target.toggle();
131
131
  });
132
- __privateAdd$h(this, _handleExpand, (event) => {
132
+ __privateAdd$g(this, _handleExpand, (event) => {
133
133
  event.stopPropagation();
134
134
  if (!(event.target instanceof OdxAccordionHeaderElement) || this.multiple) return;
135
135
  this.toggleAll(false, event.target);
136
136
  });
137
- __privateAdd$h(this, _handleKeyboardEvent$2, (event) => {
137
+ __privateAdd$g(this, _handleKeyboardEvent$2, (event) => {
138
138
  const { actions } = getKeyboardEventInfo(event);
139
139
  if (!(actions.enter || actions.space) || !(event.target instanceof OdxAccordionHeaderElement)) return;
140
140
  event.preventDefault();
@@ -143,10 +143,10 @@ let OdxAccordionElement = class extends CustomElement {
143
143
  event.target.toggle();
144
144
  });
145
145
  if (!isServer) {
146
- this.addEventListener("click", __privateGet$f(this, _handleClick$4));
147
- this.addEventListener("expand", __privateGet$f(this, _handleExpand));
148
- this.addEventListener("keydown", __privateGet$f(this, _handleKeyboardEvent$2));
149
- this.addEventListener("keyup", __privateGet$f(this, _handleKeyboardEvent$2));
146
+ this.addEventListener("click", __privateGet$e(this, _handleClick$3));
147
+ this.addEventListener("expand", __privateGet$e(this, _handleExpand));
148
+ this.addEventListener("keydown", __privateGet$e(this, _handleKeyboardEvent$2));
149
+ this.addEventListener("keyup", __privateGet$e(this, _handleKeyboardEvent$2));
150
150
  }
151
151
  }
152
152
  toggleAll(forceState, ...exceptElements) {
@@ -166,24 +166,24 @@ let OdxAccordionElement = class extends CustomElement {
166
166
  return html`<slot></slot>`;
167
167
  }
168
168
  };
169
- _handleClick$4 = new WeakMap();
169
+ _handleClick$3 = new WeakMap();
170
170
  _handleExpand = new WeakMap();
171
171
  _handleKeyboardEvent$2 = new WeakMap();
172
- __decorateClass$A([
172
+ __decorateClass$z([
173
173
  queryAssignedElements({ selector: OdxAccordionHeaderElement.selector, flatten: true })
174
174
  ], OdxAccordionElement.prototype, "controls", 2);
175
- __decorateClass$A([
175
+ __decorateClass$z([
176
176
  property({ type: Boolean })
177
177
  ], OdxAccordionElement.prototype, "multiple", 2);
178
- OdxAccordionElement = __decorateClass$A([
179
- customElement("odx-accordion", [styles$x])
178
+ OdxAccordionElement = __decorateClass$z([
179
+ customElement("odx-accordion", [styles$w])
180
180
  ], OdxAccordionElement);
181
181
 
182
- const styles$w = ":host{--_card-padding: var(--odx-size-150);display:grid;place-content:flex-start;background-color:var(--odx-color-surface);grid-template-columns:1fr auto;border-radius:var(--odx-border-radius-md);padding:var(--_card-padding);overflow:clip;max-width:100%;grid-template-areas:\"image image\" \"avatar avatar\" \"title header-actions\" \"content content\" \"footer footer\"}:host::part(header-actions),:host::part(title-container){display:flex;place-items:center;overflow:hidden;min-block-size:var(--odx-size-225);margin-block-end:var(--odx-size-50)}:host::part(title-container){grid-area:title}:host::part(header-actions){grid-area:header-actions}:host::part(avatar-container){display:flex;place-items:flex-end;grid-area:avatar;margin-block-start:calc(-1 * var(--odx-size-50))}:host::part(image-container){grid-area:image;margin:calc(-1 * var(--_card-padding));margin-block-end:var(--odx-size-150);position:relative}:host::part(image-container):after{content:\"\";position:absolute;inset:0;background-color:var(--odx-color-fill-focus);opacity:0;pointer-events:none;transition:var(--odx-transition-base);backdrop-filter:blur(var(--odx-elevation-blur))}:host::part(content){grid-area:content}:host::part(footer){grid-area:footer}[part=image-container]+[part=avatar-container]{block-size:0}slot[name=image]::slotted(*){max-inline-size:100%;max-block-size:100%;object-fit:cover;aspect-ratio:16 / 9;user-select:none;pointer-events:none}slot[name=avatar]::slotted(*){margin:0}:host(:hover){cursor:pointer}:host(:hover)::part(image-container):after{opacity:1}";
182
+ const styles$v = ":host{--_card-padding: var(--odx-size-150);display:grid;place-content:flex-start;background-color:var(--odx-color-surface);grid-template-columns:1fr auto;border-radius:var(--odx-border-radius-md);padding:var(--_card-padding);overflow:clip;max-width:100%;grid-template-areas:\"image image\" \"avatar avatar\" \"title header-actions\" \"content content\" \"footer footer\"}:host::part(header-actions),:host::part(title-container){display:flex;place-items:center;overflow:hidden;min-block-size:var(--odx-size-225);margin-block-end:var(--odx-size-50)}:host::part(title-container){grid-area:title}:host::part(header-actions){grid-area:header-actions}:host::part(avatar-container){display:flex;place-items:flex-end;grid-area:avatar;margin-block-start:calc(-1 * var(--odx-size-50))}:host::part(image-container){grid-area:image;margin:calc(-1 * var(--_card-padding));margin-block-end:var(--odx-size-150);position:relative}:host::part(image-container):after{content:\"\";position:absolute;inset:0;background-color:var(--odx-color-fill-focus);opacity:0;pointer-events:none;transition:var(--odx-transition-base);backdrop-filter:blur(var(--odx-elevation-blur))}:host::part(content){grid-area:content}:host::part(footer){grid-area:footer}[part=image-container]+[part=avatar-container]{block-size:0}slot[name=image]::slotted(*){max-inline-size:100%;max-block-size:100%;object-fit:cover;aspect-ratio:16 / 9;user-select:none;pointer-events:none}slot[name=avatar]::slotted(*){margin:0}:host(:hover){cursor:pointer}:host(:hover)::part(image-container):after{opacity:1}";
183
183
 
184
- var __getOwnPropDesc$z = Object.getOwnPropertyDescriptor;
185
- var __decorateClass$z = (decorators, target, key, kind) => {
186
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$z(target, key) : target;
184
+ var __getOwnPropDesc$y = Object.getOwnPropertyDescriptor;
185
+ var __decorateClass$y = (decorators, target, key, kind) => {
186
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$y(target, key) : target;
187
187
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
188
188
  if (decorator = decorators[i])
189
189
  result = (decorator(result)) || result;
@@ -202,111 +202,10 @@ let CardElement = class extends CanBeDisabled(CustomElement) {
202
202
  `;
203
203
  }
204
204
  };
205
- CardElement = __decorateClass$z([
206
- customElement("odx-card", [styles$w])
205
+ CardElement = __decorateClass$y([
206
+ customElement("odx-card", [styles$v])
207
207
  ], CardElement);
208
208
 
209
- const styles$v = ":host{--color-fill: var(--odx-color-neutral);--color-fill-hover: var(--odx-color-neutral-hover);--color-text: var(--odx-color-neutral-text);--_font-size: var(--odx-font-size-text-sm);--_block-size: var(--odx-size-150);--_border-radius: var(--_block-size);--_padding-inline: var(--odx-size-50);display:inline-flex;place-items:center;background-color:var(--color-fill);color:var(--color-text);cursor:default;padding-inline:var(--odx-size-50);gap:var(--odx-size-25);block-size:var(--_block-size);border-radius:var(--_border-radius);transition:var(--odx-transition-reduced)}:host::part(content){min-inline-size:var(--odx-size-150);user-select:none}[part=action],::slotted(odx-icon){font-size:var(--odx-font-size-text-md);block-size:var(--_block-size);inline-size:var(--_block-size);color:inherit;transition:var(--odx-transition-reduced)}[part=action]{background-color:transparent;border:none;border-radius:var(--_border-radius);cursor:pointer;margin-inline-end:calc(-1 * var(--_padding-inline));padding:0}[part=action]:hover{background-color:var(--odx-color-fill-focus)}:host([variant=\"primary\"]){--color-fill: var(--odx-color-primary);--color-text: var(--odx-color-primary-text)}:host([variant=\"neutral\"]){--color-fill: var(--odx-color-neutral);--color-text: var(--odx-color-neutral-text)}:host([variant=\"accent\"]){--color-fill: var(--odx-color-accent);--color-text: var(--odx-color-accent-text)}:host([variant=\"success\"]){--color-fill: var(--odx-color-success);--color-text: var(--odx-color-success-text)}:host([variant=\"warning\"]){--color-fill: var(--odx-color-warning);--color-text: var(--odx-color-warning-text)}:host([variant=\"danger\"]){--color-fill: var(--odx-color-danger);--color-text: var(--odx-color-danger-text)}:host([interactive]:not([interactive=\"false\"])){cursor:pointer}:host([interactive]:not([interactive=\"false\"]):hover){--color-fill: var(--color-fill-hover)}";
210
-
211
- var __defProp$l = Object.defineProperty;
212
- var __getOwnPropDesc$y = Object.getOwnPropertyDescriptor;
213
- var __typeError$g = (msg) => {
214
- throw TypeError(msg);
215
- };
216
- var __decorateClass$y = (decorators, target, key, kind) => {
217
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$y(target, key) : target;
218
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
219
- if (decorator = decorators[i])
220
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
221
- if (kind && result) __defProp$l(target, key, result);
222
- return result;
223
- };
224
- var __accessCheck$g = (obj, member, msg) => member.has(obj) || __typeError$g("Cannot " + msg);
225
- var __privateGet$e = (obj, member, getter) => (__accessCheck$g(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
226
- var __privateAdd$g = (obj, member, value) => member.has(obj) ? __typeError$g("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
227
- var _handleActionClick, _handleClick$3;
228
- let OdxChipElement = class extends CanBeDisabled(CustomElement) {
229
- constructor() {
230
- super(...arguments);
231
- this.removable = false;
232
- this.interactive = false;
233
- __privateAdd$g(this, _handleActionClick, (event) => {
234
- const actionElement = getElementFromEvent(event, (node) => node.getAttribute("part") === "action");
235
- if (!actionElement) return;
236
- event.stopPropagation();
237
- this.emit("remove");
238
- });
239
- __privateAdd$g(this, _handleClick$3, (event) => {
240
- if (this.removable) {
241
- const actionElement = getElementFromEvent(event, (node) => node.getAttribute("part") === "action");
242
- if (actionElement) return;
243
- }
244
- if (!this.interactive) {
245
- event.stopPropagation();
246
- }
247
- });
248
- }
249
- render() {
250
- return html`
251
- <odx-text part="content" size="sm" highlight odxPreventTextOverflow>
252
- <slot></slot>
253
- </odx-text>
254
- ${when(this.removable, () => this.renderAction())}
255
- `;
256
- }
257
- renderAction() {
258
- return html`
259
- <button part="action" @click=${__privateGet$e(this, _handleActionClick)}>
260
- <odx-icon name="close" set="core"></odx-icon>
261
- </button>
262
- `;
263
- }
264
- willUpdate(changes) {
265
- super.willUpdate?.(changes);
266
- if (changes.has("interactive") || changes.has("disabled")) {
267
- if (!this.disabled) {
268
- toggleAttribute(this, "tabindex", this.interactive ? 0 : null);
269
- toggleAttribute(this.actionElement, "tabindex", this.interactive ? -1 : null);
270
- }
271
- }
272
- }
273
- updated(changes) {
274
- if (changes.has("removable") || changes.has("interactive") || changes.has("disabled")) {
275
- if (this.removable || this.interactive) {
276
- this.addEventListener("click", __privateGet$e(this, _handleClick$3), { capture: true });
277
- } else {
278
- this.removeEventListener("click", __privateGet$e(this, _handleClick$3));
279
- }
280
- }
281
- }
282
- };
283
- _handleActionClick = new WeakMap();
284
- _handleClick$3 = new WeakMap();
285
- __decorateClass$y([
286
- query('[part="action"]')
287
- ], OdxChipElement.prototype, "actionElement", 2);
288
- __decorateClass$y([
289
- property({ type: Boolean, reflect: true })
290
- ], OdxChipElement.prototype, "removable", 2);
291
- __decorateClass$y([
292
- property({ type: Boolean, reflect: true })
293
- ], OdxChipElement.prototype, "interactive", 2);
294
- __decorateClass$y([
295
- property({ reflect: true })
296
- ], OdxChipElement.prototype, "variant", 2);
297
- OdxChipElement = __decorateClass$y([
298
- customElement("odx-chip", [styles$v])
299
- ], OdxChipElement);
300
-
301
- const ChipVariant = {
302
- NEUTRAL: "neutral",
303
- PRIMARY: "primary",
304
- ACCENT: "accent",
305
- SUCCESS: "success",
306
- WARNING: "warning",
307
- DANGER: "danger"
308
- };
309
-
310
209
  const styles$u = "@keyframes odx-circular-progress-indicator-animation{0%{stroke-dashoffset:100}25%{stroke-dashoffset:250;transform:rotate(180deg)}to{stroke-dashoffset:100;transform:rotate(270deg)}}@keyframes odx-circular-progress-inner-animation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}:host{--_indicator-color: var(--odx-color-primary);--_track-color: var(--odx-palette-coolgray-10);aspect-ratio:1;display:flex;place-content:center;place-items:center;color:currentColor;block-size:100%;inline-size:100%;position:relative}:host([size=\"small\"]){--_size: var(--odx-size-300)}:host([size=\"medium\"]){--_size: var(--odx-size-400)}:host([size=\"large\"]){--_size: var(--odx-size-600)}:host([size]){max-block-size:var(--_size);max-inline-size:var(--_size)}:host::part(track),:host::part(indicator){fill:transparent}:host::part(indicator){stroke:var(--_indicator-color);transform:rotate(-90deg);transform-origin:center;transition:stroke-dashoffset var(--odx-motion-duration) var(--odx-motion-easing-reduced)}:host::part(track){stroke:var(--_track-color)}:host([indeterminate]:not([indeterminate=\"false\"]))::part(inner){animation:1.75s linear infinite odx-circular-progress-inner-animation}:host([indeterminate]:not([indeterminate=\"false\"]))::part(indicator){animation:1.75s ease infinite odx-circular-progress-indicator-animation both}";
311
210
 
312
211
  const CircularProgressBarSize = {
@@ -1239,14 +1138,15 @@ var __decorateClass$g = (decorators, target, key, kind) => {
1239
1138
  var __accessCheck$8 = (obj, member, msg) => member.has(obj) || __typeError$8("Cannot " + msg);
1240
1139
  var __privateGet$6 = (obj, member, getter) => (__accessCheck$8(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
1241
1140
  var __privateAdd$8 = (obj, member, value) => member.has(obj) ? __typeError$8("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
1242
- var _removeChip, _handleDropdownClick;
1141
+ var _removeChip, _handleOptionChange;
1243
1142
  let OdxSelectElement = class extends SelectControl {
1244
1143
  constructor() {
1245
1144
  super(...arguments);
1246
1145
  __privateAdd$8(this, _removeChip, async (option) => {
1146
+ option.selected = false;
1247
1147
  this.toggle(option);
1248
1148
  });
1249
- __privateAdd$8(this, _handleDropdownClick, (event) => {
1149
+ __privateAdd$8(this, _handleOptionChange, (event) => {
1250
1150
  const option = getElementFromEvent(event, (node) => !!this.options?.some((option2) => option2 === node));
1251
1151
  if (!option) return;
1252
1152
  event.stopPropagation();
@@ -1266,7 +1166,7 @@ let OdxSelectElement = class extends SelectControl {
1266
1166
  )}
1267
1167
  <odx-icon part="indicator" name="chevron-down" set="core"></odx-icon>
1268
1168
  </div>
1269
- <odx-dropdown part="dropdown" anchor="select-trigger" ?disabled=${this.disabled} matchReferenceWidth @click=${__privateGet$6(this, _handleDropdownClick)}>
1169
+ <odx-dropdown part="dropdown" anchor="select-trigger" ?disabled=${this.disabled} matchReferenceWidth @change=${__privateGet$6(this, _handleOptionChange)}>
1270
1170
  <slot></slot>
1271
1171
  </odx-dropdown>
1272
1172
  `;
@@ -1276,14 +1176,14 @@ let OdxSelectElement = class extends SelectControl {
1276
1176
  if (this.multiple) {
1277
1177
  return html`${repeat(
1278
1178
  selectedOptions,
1279
- (option) => html`<odx-chip @remove=${() => __privateGet$6(this, _removeChip).call(this, option)} interactive removable tabindex="-1">${option.getTextLabel()}</odx-chip>`
1179
+ (option) => html`<odx-chip @remove=${() => __privateGet$6(this, _removeChip).call(this, option)} removable tabindex="-1">${option.getTextLabel()}</odx-chip>`
1280
1180
  )}`;
1281
1181
  }
1282
1182
  return html`${selectedOptions[0]?.getTextLabel()}`;
1283
1183
  }
1284
1184
  };
1285
1185
  _removeChip = new WeakMap();
1286
- _handleDropdownClick = new WeakMap();
1186
+ _handleOptionChange = new WeakMap();
1287
1187
  __decorateClass$g([
1288
1188
  queryAssignedElements({ selector: OdxOptionComponent.selector, flatten: true })
1289
1189
  ], OdxSelectElement.prototype, "options", 2);
@@ -2345,4 +2245,4 @@ OdxTooltipElement = __decorateClass([
2345
2245
  customElement("odx-tooltip", [styles])
2346
2246
  ], OdxTooltipElement);
2347
2247
 
2348
- export { CardElement, ChipVariant, CircularProgressBarSize, DropdownPlacement, GridGap, InlineMessageVariant, LOADING_OVERLAY_HOST_DIRECTIVE, OdxAccordionElement, OdxAccordionHeaderElement, OdxAccordionPanelElement, OdxChipElement, OdxCircularProgressBarElement, OdxDropdownElement, OdxFormFieldElement, OdxGrid, OdxInlineMessageElement, OdxListElement, OdxListItemElement, OdxLoadingOverlayElement, OdxMainMenuButtonElement, OdxMainMenuElement, OdxMainMenuLink, OdxMainMenuSubtitleElement, OdxMainMenuTitleElement, OdxMenuElement, OdxMenuItemElement, OdxMenuLabelElement, OdxProgressBarElement, OdxSelectElement, OdxSkeletonElement, OdxSliderElement, OdxSliderHandleElement, OdxSliderMarksElement, OdxSpinboxElement, OdxSwitchElement, OdxTableBodyElement, OdxTableCellElement, OdxTableCheckboxCellElement, OdxTableElement, OdxTableHeaderCellElement, OdxTableHeaderElement, OdxTableRowElement, OdxToastElement, OdxToggleButtonElement, OdxTooltipElement, ProgressState, SliderLabelVisibility, SliderTrackVisibility, ToastVariant, TooltipPlacement };
2248
+ export { CardElement, CircularProgressBarSize, DropdownPlacement, GridGap, InlineMessageVariant, LOADING_OVERLAY_HOST_DIRECTIVE, OdxAccordionElement, OdxAccordionHeaderElement, OdxAccordionPanelElement, OdxCircularProgressBarElement, OdxDropdownElement, OdxFormFieldElement, OdxGrid, OdxInlineMessageElement, OdxListElement, OdxListItemElement, OdxLoadingOverlayElement, OdxMainMenuButtonElement, OdxMainMenuElement, OdxMainMenuLink, OdxMainMenuSubtitleElement, OdxMainMenuTitleElement, OdxMenuElement, OdxMenuItemElement, OdxMenuLabelElement, OdxProgressBarElement, OdxSelectElement, OdxSkeletonElement, OdxSliderElement, OdxSliderHandleElement, OdxSliderMarksElement, OdxSpinboxElement, OdxSwitchElement, OdxTableBodyElement, OdxTableCellElement, OdxTableCheckboxCellElement, OdxTableElement, OdxTableHeaderCellElement, OdxTableHeaderElement, OdxTableRowElement, OdxToastElement, OdxToggleButtonElement, OdxTooltipElement, ProgressState, SliderLabelVisibility, SliderTrackVisibility, ToastVariant, TooltipPlacement };
@@ -6,8 +6,8 @@ export declare abstract class SelectControl<Option extends OptionControl = Optio
6
6
  #private;
7
7
  protected abstract options: Option[];
8
8
  multiple: boolean;
9
- get selectedOptions(): MapIterator<Option>;
10
9
  value: string[] | string;
10
+ get selectedOptions(): MapIterator<Option>;
11
11
  toggle(option: Option): void;
12
12
  protected willUpdate(changes: PropertyValues<this>): void;
13
13
  protected updateSelection(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"select-control.d.ts","sourceRoot":"","sources":["../../../src/lib/facade/select-control.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAG1C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;;AAEtD,8BAAsB,aAAa,CAAC,MAAM,SAAS,aAAa,GAAG,aAAa,CAAE,SAAQ,kBAAmE;;IAG3J,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAGrC,QAAQ,UAAS;IAEjB,IAAI,eAAe,IAAI,WAAW,CAAC,MAAM,CAAC,CAEzC;IAGQ,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAM;IAEvC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;cAST,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAYlD,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;CAcjD"}
1
+ {"version":3,"file":"select-control.d.ts","sourceRoot":"","sources":["../../../src/lib/facade/select-control.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAG1C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;;AAEtD,8BAAsB,aAAa,CAAC,MAAM,SAAS,aAAa,GAAG,aAAa,CAAE,SAAQ,kBAAmE;;IAG3J,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAGrC,QAAQ,UAAS;IAGR,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAM;IAEvC,IAAI,eAAe,IAAI,WAAW,CAAC,MAAM,CAAC,CAEzC;IAED,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;cAST,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAYlD,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;CAcjD"}
package/dist/main.js CHANGED
@@ -690,8 +690,8 @@ class SelectControl extends FormControl(CustomElement) {
690
690
  }
691
691
  toggle(option) {
692
692
  if (this.multiple) {
693
- const value = typeof this.value === "string" ? [this.value] : this.value;
694
- this.value = option.selected ? value.filter((value2) => value2 !== option.value) : [...value, option.value];
693
+ const value = typeof this.value === "string" ? [this.value].filter(Boolean) : this.value;
694
+ this.value = option.selected ? [...value, option.value] : value.filter((value2) => value2 !== option.value);
695
695
  } else {
696
696
  this.value = option.value;
697
697
  }
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.7",
4
+ "version": "0.1.0-alpha.9",
5
5
  "author": "Drägerwerk AG & Co.KGaA",
6
6
  "license": "SEE LICENSE IN LICENSE",
7
7
  "homepage": "https://odx.draeger.com",
@@ -1 +0,0 @@
1
- {"version":3,"file":"chip.element.d.ts","sourceRoot":"","sources":["../../../src/elements/chip/chip.element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAuD,MAAM,iBAAiB,CAAC;AACpH,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAQ,MAAM,KAAK,CAAC;AAIrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,cAAc,CAAC;KAC5B;CACF;;AAED,qBACa,cAAe,SAAQ,mBAA4B;;IAE9D,SAAS,CAAC,aAAa,CAAC,EAAE,WAAW,CAAC;IAGtC,SAAS,UAAS;IAGlB,WAAW,UAAS;IAGpB,OAAO,CAAC,EAAE,WAAW,CAAC;cAEH,MAAM,IAAI,cAAc;IAS3C,SAAS,CAAC,YAAY,IAAI,cAAc;cAQrB,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAU/C,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;CA0BhE"}
@@ -1,3 +0,0 @@
1
- export * from './chip.element';
2
- export * from './models';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/chip/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"chip-variant.d.ts","sourceRoot":"","sources":["../../../../src/elements/chip/models/chip-variant.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AACzE,eAAO,MAAM,WAAW;;;;;;;CAOvB,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from './chip-variant';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/chip/models/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}