@genesislcap/foundation-ui 14.193.1 → 14.193.3

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.
@@ -3,6 +3,7 @@ import { FoundationElement } from '@microsoft/fast-foundation';
3
3
  * @tagname %%prefix%%-flyout
4
4
  */
5
5
  export declare class Flyout extends FoundationElement {
6
+ exit: HTMLDivElement;
6
7
  position: string;
7
8
  displayHeader: boolean;
8
9
  closed: boolean;
@@ -10,6 +11,7 @@ export declare class Flyout extends FoundationElement {
10
11
  visuallyhidden: boolean;
11
12
  closeFlyout(): void;
12
13
  closingFinished(): void;
14
+ focusExit(): void;
13
15
  }
14
16
  export declare const foundationFlyoutShadowOptions: ShadowRootInit;
15
17
  export declare const defaultFlyoutConfig: {};
@@ -1 +1 @@
1
- {"version":3,"file":"flyout.d.ts","sourceRoot":"","sources":["../../../src/flyout/flyout.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAI/D;;GAEG;AACH,qBAAa,MAAO,SAAQ,iBAAiB;IACrC,QAAQ,EAAE,MAAM,CAAW;IACN,aAAa,EAAE,OAAO,CAAQ;IAC9B,MAAM,EAAE,OAAO,CAAQ;IAClD,aAAa;IAOc,cAAc,EAAE,OAAO,CAAQ;IAE1D,WAAW;IAIX,eAAe;CAMhB;AAGD,eAAO,MAAM,6BAA6B,EAAE,cAA0B,CAAC;AAEvE,eAAO,MAAM,mBAAmB,IAAK,CAAC;AAEtC;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;iBAM3B,CAAC"}
1
+ {"version":3,"file":"flyout.d.ts","sourceRoot":"","sources":["../../../src/flyout/flyout.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAI/D;;GAEG;AACH,qBAAa,MAAO,SAAQ,iBAAiB;IACpC,IAAI,EAAE,cAAc,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAW;IACN,aAAa,EAAE,OAAO,CAAQ;IAC9B,MAAM,EAAE,OAAO,CAAQ;IAClD,aAAa;IASc,cAAc,EAAE,OAAO,CAAQ;IAE1D,WAAW;IAIX,eAAe;IAOf,SAAS;CAGV;AAGD,eAAO,MAAM,6BAA6B,EAAE,cAA0B,CAAC;AAEvE,eAAO,MAAM,mBAAmB,IAAK,CAAC;AAEtC;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;iBAM3B,CAAC"}
@@ -66,11 +66,11 @@ export declare class Multiselect extends FoundationElement {
66
66
  isOptionDisabled(option: MultiselectOption): boolean;
67
67
  get getDisplayValue(): string;
68
68
  get getPlaceholder(): string;
69
- get isAllSelected(): boolean;
70
69
  get isAllOptionsDisabled(): boolean;
71
70
  get showCreatable(): boolean;
72
71
  isOptionSelected(normalizedOption: MultiselectOption): boolean;
73
72
  selectCheckboxOne(normalizedOption: MultiselectOption): void;
73
+ checkboxKeyDown(normalizedOption: MultiselectOption, event: KeyboardEvent): boolean;
74
74
  getEnabledOptionsCount(): number;
75
75
  selectCheckboxAll(): void;
76
76
  inputHandler(): void;
@@ -80,6 +80,7 @@ export declare class Multiselect extends FoundationElement {
80
80
  asyncSetFilter(): void;
81
81
  changeHandler(event: Event): void;
82
82
  private handleClickOutside;
83
+ keydownHandler(e: Event & KeyboardEvent): boolean | void;
83
84
  }
84
85
  export declare const foundationMultiselect: (overrideDefinition?: import("@microsoft/fast-foundation").OverrideFoundationElementDefinition<{
85
86
  baseName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"multiselect.d.ts","sourceRoot":"","sources":["../../../src/multiselect/multiselect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAO9D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAMhD,eAAO,MAAM,kCAAkC,EAAE,cAA0B,CAAC;AAE5E,eAAO,MAAM,wBAAwB,IAAK,CAAC;AAE3C,MAAM,MAAM,iBAAiB,GACzB;IACE,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GACD,MAAM,CAAC;AAEX;;GAEG;AACH,qBAAa,WAAY,SAAQ,iBAAiB;IAC1C,IAAI,SAAM;IACuC,YAAY,EAAE,OAAO,CAAQ;IACzD,GAAG,UAAQ;IACX,WAAW,UAAS;IACpB,MAAM,UAAQ;IACd,QAAQ,UAAS;IACjB,SAAS,UAAS;IAClB,KAAK,UAAS;IACnC,QAAQ,EAAE,MAAM,CAAiB;IAEvC,2FAA2F;IAC/B,gBAAgB,UAAS;IAErF,eAAe,CAAC,QAAQ,KAAA,EAAE,QAAQ,EAAE,MAAM;IAG1C,qBAAqB,MAAC;IACV,mBAAmB,EAAE,IAAI,EAAE,CAAC;IAC5B,iBAAiB,EAAE,qBAAqB,EAAE,CAAC;IAC3C,cAAc,MAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAM;IAC3C,OAAO,CAAC,YAAY,CAAiD;IACzD,IAAI,UAAS;IACzB,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO;IAYhC,OAAO,EAAE,iBAAiB,EAAE,CAAM;IAClC,eAAe,EAAE,MAAM,EAAE,CAAM;IAC/B,wBAAwB,EAAE,iBAAiB,EAAE,CAAqB;IAClE,eAAe,EAAE,WAAW,CAAC;IAEzC;;;;OAIG;IACS,QAAQ,EAAE,QAAQ,CAAkB;IAEpC,qBAAqB,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;IAElE,OAAO,CAAC,kBAAkB,CAAkB;IAE5C,SAAS,EAAE,UAAU,CAAC;IACtB,cAAc,EAAE,WAAW,CAAC;IAE5B,iBAAiB;IAOjB,oBAAoB;IAKpB,MAAM;IAON,cAAc;IAQd,sBAAsB;IAOtB;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;IAqC3B,YAAY,CAAC,MAAM,EAAE,iBAAiB;IAOtC,YAAY,CAAC,MAAM,EAAE,iBAAiB;IAetC,gBAAgB,CAAC,MAAM,EAAE,iBAAiB;IAQ1C,IACI,eAAe,WAyBlB;IAED,IACI,cAAc,WAEjB;IAED,IACI,aAAa,YAIhB;IAED,IACI,oBAAoB,YAEvB;IAED,IACI,aAAa,YAMhB;IAED,gBAAgB,CAAC,gBAAgB,EAAE,iBAAiB,GAAG,OAAO;IAI9D,iBAAiB,CAAC,gBAAgB,EAAE,iBAAiB;IAarD,sBAAsB;IAItB,iBAAiB;IAajB,YAAY;IAUZ,qBAAqB;IAQrB,SAAS;IAcT,SAAS;IAST,cAAc;IAkBd,aAAa,CAAC,KAAK,EAAE,KAAK;IAK1B,OAAO,CAAC,kBAAkB;CAK3B;AAED,eAAO,MAAM,qBAAqB;;;;;;;;;;sBAMhC,CAAC"}
1
+ {"version":3,"file":"multiselect.d.ts","sourceRoot":"","sources":["../../../src/multiselect/multiselect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAO9D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAMhD,eAAO,MAAM,kCAAkC,EAAE,cAA0B,CAAC;AAE5E,eAAO,MAAM,wBAAwB,IAAK,CAAC;AAE3C,MAAM,MAAM,iBAAiB,GACzB;IACE,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GACD,MAAM,CAAC;AAEX;;GAEG;AACH,qBAAa,WAAY,SAAQ,iBAAiB;IAC1C,IAAI,SAAM;IACuC,YAAY,EAAE,OAAO,CAAQ;IACzD,GAAG,UAAQ;IACX,WAAW,UAAS;IACpB,MAAM,UAAQ;IACd,QAAQ,UAAS;IACjB,SAAS,UAAS;IAClB,KAAK,UAAS;IACnC,QAAQ,EAAE,MAAM,CAAiB;IAEvC,2FAA2F;IAC/B,gBAAgB,UAAS;IAErF,eAAe,CAAC,QAAQ,KAAA,EAAE,QAAQ,EAAE,MAAM;IAG1C,qBAAqB,MAAC;IACV,mBAAmB,EAAE,IAAI,EAAE,CAAC;IAC5B,iBAAiB,EAAE,qBAAqB,EAAE,CAAC;IAC3C,cAAc,MAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAM;IAC3C,OAAO,CAAC,YAAY,CAAiD;IACzD,IAAI,UAAS;IACzB,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO;IAYhC,OAAO,EAAE,iBAAiB,EAAE,CAAM;IAClC,eAAe,EAAE,MAAM,EAAE,CAAM;IAC/B,wBAAwB,EAAE,iBAAiB,EAAE,CAAqB;IAClE,eAAe,EAAE,WAAW,CAAC;IAEzC;;;;OAIG;IACS,QAAQ,EAAE,QAAQ,CAAkB;IAEpC,qBAAqB,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;IAElE,OAAO,CAAC,kBAAkB,CAAkB;IAE5C,SAAS,EAAE,UAAU,CAAC;IACtB,cAAc,EAAE,WAAW,CAAC;IAE5B,iBAAiB;IAOjB,oBAAoB;IAKpB,MAAM;IAON,cAAc;IAQd,sBAAsB;IAOtB;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;IAqC3B,YAAY,CAAC,MAAM,EAAE,iBAAiB;IAOtC,YAAY,CAAC,MAAM,EAAE,iBAAiB;IAetC,gBAAgB,CAAC,MAAM,EAAE,iBAAiB;IAQ1C,IACI,eAAe,WAyBlB;IAED,IACI,cAAc,WAEjB;IAED,IACI,oBAAoB,YAEvB;IAED,IACI,aAAa,YAMhB;IAED,gBAAgB,CAAC,gBAAgB,EAAE,iBAAiB,GAAG,OAAO;IAI9D,iBAAiB,CAAC,gBAAgB,EAAE,iBAAiB;IAarD,eAAe,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,KAAK,EAAE,aAAa;IAQzE,sBAAsB;IAItB,iBAAiB;IAajB,YAAY;IAcZ,qBAAqB;IAQrB,SAAS;IAcT,SAAS;IAST,cAAc;IAkBd,aAAa,CAAC,KAAK,EAAE,KAAK;IAK1B,OAAO,CAAC,kBAAkB;IAM1B,cAAc,CAAC,CAAC,EAAE,KAAK,GAAG,aAAa,GAAG,OAAO,GAAG,IAAI;CAgCzD;AAED,eAAO,MAAM,qBAAqB;;;;;;;;;;sBAMhC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"multiselect.styles.d.ts","sourceRoot":"","sources":["../../../src/multiselect/multiselect.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,MAAM,CAAC;AAE7B,eAAO,MAAM,iBAAiB,iDAuK7B,CAAC"}
1
+ {"version":3,"file":"multiselect.styles.d.ts","sourceRoot":"","sources":["../../../src/multiselect/multiselect.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,MAAM,CAAC;AAE7B,eAAO,MAAM,iBAAiB,iDA4L7B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"multiselect.template.d.ts","sourceRoot":"","sources":["../../../src/multiselect/multiselect.template.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAKjD,eAAO,MAAM,sBAAsB,uFAuGlC,CAAC;AAEF,eAAO,MAAM,mBAAmB,kEAE/B,CAAC"}
1
+ {"version":3,"file":"multiselect.template.d.ts","sourceRoot":"","sources":["../../../src/multiselect/multiselect.template.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAKjD,eAAO,MAAM,sBAAsB,uFAyGlC,CAAC;AAEF,eAAO,MAAM,mBAAmB,kEAE/B,CAAC"}
@@ -18,6 +18,7 @@ export class Flyout extends FoundationElement {
18
18
  if (!this.closed) {
19
19
  // TODO: timeout shouldn't be necessary here but without it opening transition doesn't work
20
20
  setTimeout(() => (this.visuallyhidden = false), 1);
21
+ this.focusExit();
21
22
  }
22
23
  }
23
24
  closeFlyout() {
@@ -29,6 +30,9 @@ export class Flyout extends FoundationElement {
29
30
  this.$emit('closed');
30
31
  }
31
32
  }
33
+ focusExit() {
34
+ this.exit.focus();
35
+ }
32
36
  }
33
37
  __decorate([
34
38
  attr
@@ -1,4 +1,4 @@
1
- import { html, when } from '@microsoft/fast-element';
1
+ import { html, when, ref } from '@microsoft/fast-element';
2
2
  import { getPrefix } from '../utils/dom';
3
3
  export const getPrefixedFlyout = (prefix) => html `
4
4
  <div ?closed=${(x) => x.closed} ?visuallyhidden=${(x) => x.visuallyhidden}>
@@ -10,9 +10,9 @@ export const getPrefixedFlyout = (prefix) => html `
10
10
  <div class="title" part="title">
11
11
  <slot name="title"></slot>
12
12
  </div>
13
- <div class="exit" part="exit" @click=${(x) => x.closeFlyout()}>
13
+ <${prefix}-button class="exit" part="exit" aria-label="exit" ${ref('exit')} appearance="stealth" @click=${(x) => x.closeFlyout()}>
14
14
  <${prefix}-icon name="times"></${prefix}-icon>
15
- </div>
15
+ </${prefix}-button>
16
16
  </div>
17
17
  `)}
18
18
  <div class="content" part="content">
@@ -177,9 +177,6 @@ export class Multiselect extends FoundationElement {
177
177
  get getPlaceholder() {
178
178
  return `Search ${this.name}`.trim().concat('...');
179
179
  }
180
- get isAllSelected() {
181
- return (!this.isAllOptionsDisabled && this.selectedOptions.length === this.getEnabledOptionsCount());
182
- }
183
180
  get isAllOptionsDisabled() {
184
181
  return this.options.length === this.options.filter(this.isOptionDisabled).length;
185
182
  }
@@ -203,6 +200,13 @@ export class Multiselect extends FoundationElement {
203
200
  }
204
201
  this.$emit('selectionChange', this.selectedOptions);
205
202
  }
203
+ checkboxKeyDown(normalizedOption, event) {
204
+ if (event.key === ' ') {
205
+ event.preventDefault();
206
+ this.selectCheckboxOne(normalizedOption);
207
+ }
208
+ return true;
209
+ }
206
210
  getEnabledOptionsCount() {
207
211
  return this.options.length - this.options.filter(this.isOptionDisabled).length;
208
212
  }
@@ -219,6 +223,9 @@ export class Multiselect extends FoundationElement {
219
223
  this.$emit('selectionChange', this.selectedOptions);
220
224
  }
221
225
  inputHandler() {
226
+ if (!this.open) {
227
+ this.open = true;
228
+ }
222
229
  if (this.async) {
223
230
  this.loading = true;
224
231
  this.filteredAvailableOptions = [];
@@ -280,6 +287,32 @@ export class Multiselect extends FoundationElement {
280
287
  this.open = false;
281
288
  }
282
289
  }
290
+ keydownHandler(e) {
291
+ const key = e.key;
292
+ if (e.ctrlKey || e.shiftKey) {
293
+ return true;
294
+ }
295
+ switch (key) {
296
+ case 'Escape': {
297
+ if (this.open) {
298
+ this.open = false;
299
+ break;
300
+ }
301
+ break;
302
+ }
303
+ case 'ArrowUp':
304
+ case 'ArrowDown': {
305
+ if (!this.open) {
306
+ this.open = true;
307
+ break;
308
+ }
309
+ break;
310
+ }
311
+ default: {
312
+ return true;
313
+ }
314
+ }
315
+ }
283
316
  }
284
317
  __decorate([
285
318
  attr
@@ -353,9 +386,6 @@ __decorate([
353
386
  __decorate([
354
387
  volatile
355
388
  ], Multiselect.prototype, "getPlaceholder", null);
356
- __decorate([
357
- volatile
358
- ], Multiselect.prototype, "isAllSelected", null);
359
389
  __decorate([
360
390
  volatile
361
391
  ], Multiselect.prototype, "isAllOptionsDisabled", null);
@@ -23,7 +23,7 @@ export const multiselectStyles = css `
23
23
  min-height: 40px;
24
24
  padding: 0 calc(var(--design-unit) * 2.25px);
25
25
  border-width: 0;
26
- background: var(--neutral-fill-input-rest);
26
+ background-color: var(--neutral-fill-input-rest);
27
27
  border-radius: calc(var(--control-corner-radius) * 1px);
28
28
  }
29
29
 
@@ -99,6 +99,7 @@ export const multiselectStyles = css `
99
99
  overflow-y: scroll;
100
100
  scrollbar-width: thin;
101
101
  scrollbar-color: var(--neutral-layer-2) var(--neutral-layer-4);
102
+ list-style: none;
102
103
  }
103
104
 
104
105
  .checkbox-container zero-checkbox {
@@ -110,10 +111,6 @@ export const multiselectStyles = css `
110
111
  cursor: not-allowed;
111
112
  }
112
113
 
113
- #filter-search {
114
- padding: 5px;
115
- }
116
-
117
114
  ::-webkit-scrollbar {
118
115
  width: 12px;
119
116
  }
@@ -167,4 +164,28 @@ export const multiselectStyles = css `
167
164
  .label-hidden {
168
165
  display: none;
169
166
  }
167
+
168
+ ol,
169
+ li {
170
+ margin: 0;
171
+ padding: 0;
172
+ }
173
+
174
+ .checkbox {
175
+ width: 100%;
176
+ }
177
+
178
+ .select-all {
179
+ width: 100%;
180
+ }
181
+
182
+ .display-value {
183
+ position: absolute;
184
+ right: 40px;
185
+ line-height: var(--type-ramp-base-line-height);
186
+ color: var(--neutral-foreground-rest);
187
+ font-size: var(--type-ramp-base-font-size);
188
+ line-height: var(--type-ramp-base-line-height);
189
+ font-family: var(--body-font);
190
+ }
170
191
  `;
@@ -7,7 +7,7 @@ const ARROW_SVG_PATH = 'M11.85.65c.2.2.2.5 0 .7L6.4 6.84a.55.55 0 01-.78 0L.14 1
7
7
  export const getPrefixedMultiselect = (prefix = 'foundation') => html `
8
8
  <label
9
9
  part="label"
10
- for="control"
10
+ for="display-field"
11
11
  class=${(x) => { var _a; return classNames('label', ['label-hidden', !((_a = x.defaultSlottedNodes) === null || _a === void 0 ? void 0 : _a.length)]); }}
12
12
  >
13
13
  <slot
@@ -18,8 +18,23 @@ export const getPrefixedMultiselect = (prefix = 'foundation') => html `
18
18
  })}
19
19
  ></slot>
20
20
  </label>
21
- <div class="root" part="root">
21
+ <div class="root" part="root" @keydown="${(x, c) => x.keydownHandler(c.event)}">
22
22
  <div class="control" part="control">
23
+ <input
24
+ id="display-field"
25
+ part="filter-search"
26
+ role="combobox"
27
+ aria-haspopup="listbox"
28
+ aria-controls="checkbox-container"
29
+ aria-expanded=${(x) => (x.open ? 'true' : 'false')}
30
+ ?readonly=${(x) => !x.search}
31
+ @click=${(x) => x.toggle()}
32
+ ?disabled="${(x) => x.disabled}"
33
+ value=${sync((x) => x.filterSearchValue, 'string', 'input')}
34
+ placeholder="${(x) => x.getDisplayValue}"
35
+ @input=${(x, c) => x.inputHandler()}
36
+ @change=${(x, c) => x.changeHandler(c.event)}
37
+ />
23
38
  <div part="indicator" class="indicator" @click=${(x) => !x.disabled && x.toggle()}>
24
39
  <svg
25
40
  viewBox="0 0 12 7"
@@ -31,47 +46,34 @@ export const getPrefixedMultiselect = (prefix = 'foundation') => html `
31
46
  <path d="${ARROW_SVG_PATH}" />
32
47
  </svg>
33
48
  </div>
34
-
35
- <input
36
- part="input"
37
- readonly
38
- type="text"
39
- id="display-field"
40
- part="display-field"
41
- :value="${(x) => x.getDisplayValue}"
42
- :disabled="${(x) => x.disabled}"
43
- @click=${(x) => x.toggle()}
44
- />
49
+ ${when((x) => x.filterSearchValue && x.selectedOptions.length, html `
50
+ <div class="display-value">${(x) => x.getDisplayValue}</div>
51
+ `)}
45
52
  </div>
46
- <div ${ref('optionsElement')} class="options">
47
- ${when((x) => x.search, html `
48
- <${prefix}-text-field
49
- id="filter-search"
50
- part="filter-search"
51
- value=${sync((x) => x.filterSearchValue, 'string', 'input')}
52
- placeholder="${(x) => x.getPlaceholder}"
53
- @input=${(x, c) => x.inputHandler()}
54
- @change=${(x, c) => x.changeHandler(c.event)}
55
- ></${prefix}-text-field>
53
+ ${when((x) => x.loading, html `
54
+ <${prefix}-progress slot="indicator"></${prefix}-progress>
56
55
  `)}
57
- <div class="checkbox-container">
58
- ${when((x) => x.loading, html `
59
- <${prefix}-progress slot="indicator"></${prefix}-progress>
60
- `)}
61
- ${when((x) => x.all, html `
62
- <${prefix}-checkbox
63
- part="checkbox"
64
- @click=${(x) => x.selectCheckboxAll()}
65
- @change=${(x, c) => x.changeHandler(c.event)}
66
- ?current-checked="${(x) => x.isAllSelected}"
67
- ?disabled="${(x, c) => x.isAllOptionsDisabled}"
68
- >
69
- All ${(x) => x.name}
70
- </${prefix}-checkbox>
71
- `)}
72
- ${repeat((x) => x.filteredAvailableOptions, html `
56
+ <ol
57
+ ${ref('optionsElement')}
58
+ id="checkbox-container"
59
+ class="checkbox-container options"
60
+ aria-multiselectable="true"
61
+ >
62
+ ${when((x) => x.all, html `
63
+ <${prefix}-button
64
+ class="select-all"
65
+ @click=${(x) => x.selectCheckboxAll()}
66
+ ?disabled="${(x, c) => x.isAllOptionsDisabled}"
67
+ >
68
+ Select All ${(x) => x.name}
69
+ </${prefix}-button>
70
+ `)}
71
+ ${repeat((x) => x.filteredAvailableOptions, html `
72
+ <li role="option" value=${(x, ctx) => ctx.parent.getItemLabel(x)}>
73
73
  <${prefix}-checkbox
74
74
  part="checkbox"
75
+ class="checkbox"
76
+ @keydown=${(x, c) => c.parent.checkboxKeyDown(x, c.event)}
75
77
  @click=${(x, c) => c.parent.selectCheckboxOne(x)}
76
78
  @change=${(x, c) => c.parent.changeHandler(c.event)}
77
79
  ?current-checked="${(x, c) => c.parent.isOptionSelected(x)}"
@@ -79,12 +81,12 @@ export const getPrefixedMultiselect = (prefix = 'foundation') => html `
79
81
  >
80
82
  ${(x, ctx) => ctx.parent.getItemLabel(x)}
81
83
  </${prefix}-checkbox>
82
- `)}
83
- ${when((x) => x.showCreatable, html `
84
- <${prefix}-button @click=${(x) => x.addOption()}>Create&nbsp;"${(x) => x.filterSearchValue}"</${prefix}-button>
85
- `)}
86
- </div>
87
- </div>
84
+ </li>
85
+ `)}
86
+ ${when((x) => x.showCreatable, html `
87
+ <${prefix}-button @click=${(x) => x.addOption()}>Create&nbsp;"${(x) => x.filterSearchValue}"</${prefix}-button>
88
+ `)}
89
+ </ol>
88
90
  </div>
89
91
  <slot
90
92
  ${slotted({
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genesislcap/foundation-ui",
3
3
  "description": "Genesis Foundation UI",
4
- "version": "14.193.1",
4
+ "version": "14.193.3",
5
5
  "sideEffects": false,
6
6
  "license": "SEE LICENSE IN license.txt",
7
7
  "main": "dist/esm/index.js",
@@ -82,13 +82,13 @@
82
82
  }
83
83
  },
84
84
  "devDependencies": {
85
- "@genesislcap/foundation-testing": "14.193.1",
86
- "@genesislcap/genx": "14.193.1",
87
- "@genesislcap/rollup-builder": "14.193.1",
88
- "@genesislcap/ts-builder": "14.193.1",
89
- "@genesislcap/uvu-playwright-builder": "14.193.1",
90
- "@genesislcap/vite-builder": "14.193.1",
91
- "@genesislcap/webpack-builder": "14.193.1",
85
+ "@genesislcap/foundation-testing": "14.193.3",
86
+ "@genesislcap/genx": "14.193.3",
87
+ "@genesislcap/rollup-builder": "14.193.3",
88
+ "@genesislcap/ts-builder": "14.193.3",
89
+ "@genesislcap/uvu-playwright-builder": "14.193.3",
90
+ "@genesislcap/vite-builder": "14.193.3",
91
+ "@genesislcap/webpack-builder": "14.193.3",
92
92
  "copyfiles": "^2.4.1",
93
93
  "rimraf": "^5.0.0",
94
94
  "rxjs": "^7.5.4"
@@ -99,13 +99,13 @@
99
99
  "@fortawesome/free-regular-svg-icons": "^6.2.1",
100
100
  "@fortawesome/free-solid-svg-icons": "^6.2.1",
101
101
  "@genesiscommunitysuccess/analyzer-import-alias-plugin": "^5.0.3",
102
- "@genesislcap/foundation-comms": "14.193.1",
103
- "@genesislcap/foundation-criteria": "14.193.1",
104
- "@genesislcap/foundation-errors": "14.193.1",
105
- "@genesislcap/foundation-logger": "14.193.1",
106
- "@genesislcap/foundation-notifications": "14.193.1",
107
- "@genesislcap/foundation-user": "14.193.1",
108
- "@genesislcap/foundation-utils": "14.193.1",
102
+ "@genesislcap/foundation-comms": "14.193.3",
103
+ "@genesislcap/foundation-criteria": "14.193.3",
104
+ "@genesislcap/foundation-errors": "14.193.3",
105
+ "@genesislcap/foundation-logger": "14.193.3",
106
+ "@genesislcap/foundation-notifications": "14.193.3",
107
+ "@genesislcap/foundation-user": "14.193.3",
108
+ "@genesislcap/foundation-utils": "14.193.3",
109
109
  "@microsoft/fast-colors": "^5.3.1",
110
110
  "@microsoft/fast-components": "^2.30.6",
111
111
  "@microsoft/fast-element": "^1.12.0",
@@ -127,5 +127,5 @@
127
127
  "access": "public"
128
128
  },
129
129
  "customElements": "dist/custom-elements.json",
130
- "gitHead": "83048f45bf5634a5c7e93d461eceb393610aee37"
130
+ "gitHead": "38840a2d88af7100ff4b38c9b1440885c67a0799"
131
131
  }