@arcgis/common-components 5.2.0-next.106 → 5.2.0-next.108

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 (129) hide show
  1. package/dist/cdn/{IXISGCNR.js → 2JQ6OEBP.js} +2 -2
  2. package/dist/cdn/{JLF6J4PV.js → 2ZQLPGO6.js} +2 -2
  3. package/dist/cdn/{BQCBHDME.js → 34O5NI3L.js} +2 -2
  4. package/dist/cdn/{CKBWHADN.js → 3KVQXK6I.js} +2 -2
  5. package/dist/cdn/{H4B7RWSC.js → 3KZKOKL3.js} +2 -2
  6. package/dist/cdn/{27EUJ42B.js → 3YTGG7RF.js} +2 -2
  7. package/dist/cdn/{FCIUMZTZ.js → 44GHRHDT.js} +2 -2
  8. package/dist/cdn/46YOWKVP.js +2 -0
  9. package/dist/cdn/4Z3W4SLN.js +2 -0
  10. package/dist/cdn/{EXBLSHSY.js → 5I46DP72.js} +2 -2
  11. package/dist/cdn/{HPNII7DL.js → 6G2BA5R6.js} +2 -2
  12. package/dist/cdn/{CEXP5DLE.js → 73LCJZI5.js} +2 -2
  13. package/dist/cdn/{Y5Y7IXOV.js → 74MDECVO.js} +1 -1
  14. package/dist/cdn/AHWD5KV4.js +2 -0
  15. package/dist/cdn/B2QFPLR5.js +2 -0
  16. package/dist/cdn/{WJZHHIWO.js → DLOQSM4T.js} +2 -2
  17. package/dist/cdn/{L6V3WKUI.js → E4CBJIXT.js} +2 -2
  18. package/dist/cdn/{XEK22IDA.js → E4NVOXNZ.js} +1 -1
  19. package/dist/cdn/EWHSIDUL.js +2 -0
  20. package/dist/cdn/{AY6QNI6M.js → FH6M3L5Q.js} +2 -2
  21. package/dist/cdn/FMIYRWWD.js +2 -0
  22. package/dist/cdn/{RYAF2CEQ.js → G2DVIZZJ.js} +2 -2
  23. package/dist/cdn/{WOZ7IPPQ.js → GB5FMYCZ.js} +2 -2
  24. package/dist/cdn/GPRF6QZC.js +2 -0
  25. package/dist/cdn/{NQRDB6LM.js → GQBGVIQF.js} +2 -2
  26. package/dist/cdn/{J6YVJVSN.js → GQCIBJZF.js} +2 -2
  27. package/dist/cdn/{7XSCHHGO.js → IBJHDNP3.js} +2 -2
  28. package/dist/cdn/{H7JRH53Q.js → ISCASG7C.js} +2 -2
  29. package/dist/cdn/{4TZVXSQZ.js → LE43VGSR.js} +2 -2
  30. package/dist/cdn/LRG23IGC.js +2 -0
  31. package/dist/cdn/{PMV2N3L3.js → NMDESY3T.js} +1 -1
  32. package/dist/cdn/O2DY73RF.js +2 -0
  33. package/dist/cdn/OHMQBUUM.js +2 -0
  34. package/dist/cdn/{OADKJRMQ.js → OVOUEXKG.js} +2 -2
  35. package/dist/cdn/{Z5QBBHLD.js → P3DCEHGK.js} +1 -1
  36. package/dist/cdn/{7CY3QEZW.js → QH4CFJEJ.js} +2 -2
  37. package/dist/cdn/{TWW63D32.js → QJJFF4PI.js} +1 -1
  38. package/dist/cdn/{H66SBHKJ.js → QKRBQ2F5.js} +2 -2
  39. package/dist/cdn/{VJDK62KV.js → RT25KW2T.js} +2 -2
  40. package/dist/cdn/RZEJ56RX.js +2 -0
  41. package/dist/cdn/S3XLEJSQ.js +2 -0
  42. package/dist/cdn/SBVCJDLD.js +2 -0
  43. package/dist/cdn/{4D7RVA5N.js → UIHTW6OA.js} +2 -2
  44. package/dist/cdn/UIKQQY3N.js +2 -0
  45. package/dist/cdn/{LLKF5IUE.js → UWHPPNTE.js} +2 -2
  46. package/dist/cdn/VIBCKXUC.js +2 -0
  47. package/dist/cdn/{4DL4CQMD.js → WUGJFP7P.js} +2 -2
  48. package/dist/cdn/{UGWLCTVM.js → YJTI6KPW.js} +1 -1
  49. package/dist/cdn/index.js +2 -2
  50. package/dist/cdn/main.css +1 -1
  51. package/dist/chunks/element-reference-controller.js +8 -6
  52. package/dist/chunks/general.js +1 -1
  53. package/dist/chunks/internal-types.js +1 -1
  54. package/dist/chunks/layer-utils.js +1 -1
  55. package/dist/chunks/locale.js +1 -1
  56. package/dist/chunks/resources.js +1 -1
  57. package/dist/chunks/runtime.js +4 -4
  58. package/dist/chunks/strategies.js +1 -1
  59. package/dist/chunks/toolbar.js +9 -0
  60. package/dist/chunks/types.js +16 -0
  61. package/dist/chunks/useT9n.js +1 -1
  62. package/dist/chunks/utils.js +18 -28
  63. package/dist/chunks/utils2.js +1 -1
  64. package/dist/chunks/utils3.js +4 -4
  65. package/dist/components/arcgis-ckeditor5/customElement.js +1 -1
  66. package/dist/components/arcgis-ckeditor5-popover/customElement.js +1 -1
  67. package/dist/components/arcgis-color-input/customElement.js +1 -1
  68. package/dist/components/arcgis-coordinate-system-picker/customElement.js +1 -1
  69. package/dist/components/arcgis-coordinate-system-picker-tree/customElement.js +1 -1
  70. package/dist/components/arcgis-field-info/customElement.d.ts +1 -1
  71. package/dist/components/arcgis-field-info/customElement.js +73 -80
  72. package/dist/components/arcgis-field-pick-list/customElement.d.ts +7 -7
  73. package/dist/components/arcgis-field-pick-list/customElement.js +49 -45
  74. package/dist/components/arcgis-histogram/customElement.js +1 -1
  75. package/dist/components/arcgis-label-input/customElement.js +1 -1
  76. package/dist/components/arcgis-picker-input/customElement.js +1 -1
  77. package/dist/components/arcgis-ramp-color/customElement.js +1 -1
  78. package/dist/components/arcgis-ramp-color-break/customElement.js +1 -1
  79. package/dist/components/arcgis-ramp-opacity/customElement.js +1 -1
  80. package/dist/components/arcgis-slider/customElement.js +1 -1
  81. package/dist/components/arcgis-slider-field/customElement.js +1 -1
  82. package/dist/components/arcgis-slider-histogram-range/customElement.js +1 -1
  83. package/dist/components/arcgis-slider-input/customElement.js +1 -1
  84. package/dist/components/arcgis-ticks/customElement.js +1 -1
  85. package/dist/components/arcgis-toolbar/customElement.d.ts +26 -6
  86. package/dist/components/arcgis-toolbar/customElement.js +61 -35
  87. package/dist/components/arcgis-toolbar/types.d.ts +32 -1
  88. package/dist/components/arcgis-toolbar-action/customElement.d.ts +1 -1
  89. package/dist/components/arcgis-toolbar-action/customElement.js +17 -22
  90. package/dist/components/arcgis-toolbar-group/customElement.js +18 -17
  91. package/dist/components/arcgis-toolbar-item/customElement.d.ts +1 -1
  92. package/dist/components/arcgis-toolbar-item/customElement.js +7 -7
  93. package/dist/components/arcgis-toolbar-more-button/customElement.js +8 -8
  94. package/dist/components/arcgis-toolbar-split-button/customElement.js +16 -15
  95. package/dist/components/arcgis-toolbar-stack/customElement.d.ts +48 -0
  96. package/dist/components/arcgis-toolbar-stack/customElement.js +174 -0
  97. package/dist/components/arcgis-toolbar-stack/index.d.ts +1 -0
  98. package/dist/components/arcgis-toolbar-stack/index.js +1 -0
  99. package/dist/components/arcgis-unique-values-list/customElement.js +3 -3
  100. package/dist/components/arcgis-value-picker/customElement.js +1 -1
  101. package/dist/components/arcgis-value-picker-collection/customElement.js +1 -1
  102. package/dist/components/arcgis-value-picker-combobox/customElement.js +1 -1
  103. package/dist/components/arcgis-value-picker-label/customElement.js +1 -1
  104. package/dist/components/arcgis-value-picker-slider/customElement.js +1 -1
  105. package/dist/docs/api.json +1 -1
  106. package/dist/docs/docs.json +1 -1
  107. package/dist/docs/vscode.html-custom-data.json +1 -1
  108. package/dist/docs/web-types.json +1 -1
  109. package/dist/index.d.ts +6 -0
  110. package/dist/index.js +3 -1
  111. package/dist/loader.js +3 -2
  112. package/dist/types/lumina.d.ts +5 -0
  113. package/dist/types/preact.d.ts +6 -0
  114. package/dist/types/react.d.ts +7 -0
  115. package/dist/types/stencil.d.ts +5 -0
  116. package/package.json +4 -4
  117. package/dist/cdn/4S7M7IP7.js +0 -2
  118. package/dist/cdn/A2QOOQYR.js +0 -2
  119. package/dist/cdn/DM57UJMG.js +0 -2
  120. package/dist/cdn/EO2W4XX2.js +0 -2
  121. package/dist/cdn/HBTHCFTX.js +0 -2
  122. package/dist/cdn/K2W2X3P7.js +0 -2
  123. package/dist/cdn/NUJU53OQ.js +0 -2
  124. package/dist/cdn/RBBKKELV.js +0 -2
  125. package/dist/cdn/RYTUSPBA.js +0 -2
  126. package/dist/cdn/SM5735TW.js +0 -2
  127. package/dist/cdn/VCZLD7ZT.js +0 -2
  128. package/dist/cdn/VOBBBIYC.js +0 -2
  129. package/dist/cdn/XPZQ4XIH.js +0 -2
@@ -1,10 +1,10 @@
1
- /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/1.0/LICENSE.txt */
2
2
  import { c as b } from "../../chunks/runtime.js";
3
3
  import { keyed as v } from "lit/directives/keyed.js";
4
4
  import { repeat as y } from "lit/directives/repeat.js";
5
5
  import { LitElement as I, createEvent as h, renderElement as S, nothing as m, safeStyleMap as $, safeClassMap as L } from "@arcgis/lumina";
6
6
  import { createRef as p, ref as d } from "lit/directives/ref.js";
7
- import { html as o, css as x } from "lit";
7
+ import { html as n, css as x } from "lit";
8
8
  import { Task as T } from "@lit/task";
9
9
  import { log as w, composeMissingPropertyMessage as k } from "@arcgis/toolkit/log";
10
10
  import { F as C } from "../../chunks/internal-types.js";
@@ -27,37 +27,37 @@ r.set("date-only", "calendar");
27
27
  r.set("time-only", "clock");
28
28
  r.set("timestamp-offset", "time-zone");
29
29
  r.set("string", "string");
30
- const N = ({ fieldType: n }) => o`<calcite-icon scale=s .icon=${r.get(n)}></calcite-icon>`;
31
- function P(n) {
32
- return !!n.length && "fields" in n[0];
30
+ const N = ({ fieldType: o }) => n`<calcite-icon scale=s .icon=${r.get(o)}></calcite-icon>`;
31
+ function P(o) {
32
+ return !!o.length && "fields" in o[0];
33
33
  }
34
- function u(n) {
35
- return !!n.length && "subFieldInfos" in n[0];
34
+ function u(o) {
35
+ return !!o.length && "subFieldInfos" in o[0];
36
36
  }
37
- function _(n) {
38
- return n.filter((e) => u(e.fields));
37
+ function _(o) {
38
+ return o.filter((e) => u(e.fields));
39
39
  }
40
- function D(n) {
41
- return n.flatMap((e) => e.fields);
40
+ function D(o) {
41
+ return o.flatMap((e) => e.fields);
42
42
  }
43
- function O(n) {
44
- return n.flatMap((e) => u(e.fields) ? [] : e.fields);
43
+ function O(o) {
44
+ return o.flatMap((e) => u(e.fields) ? [] : e.fields);
45
45
  }
46
- function f(n) {
47
- return n.flatMap(
46
+ function f(o) {
47
+ return o.flatMap(
48
48
  (e) => u(e.fields) ? e.fields.flatMap((t) => t.subFieldInfos) : e.fields
49
49
  );
50
50
  }
51
- function A(n, e) {
52
- return n.flatMap((t) => u(t.fields) ? t.fields.flatMap(
51
+ function A(o, e) {
52
+ return o.flatMap((t) => u(t.fields) ? t.fields.flatMap(
53
53
  (i) => i.subFieldInfos.filter((s) => g(s, e, !0))
54
54
  ) : t.fields.filter((i) => F(i, e)));
55
55
  }
56
- function F(n, e) {
57
- return e ? "subFieldInfos" in n ? g(n, e) || n.subFieldInfos.some((t) => g(t, e, !0)) : g(n, e) : !0;
56
+ function F(o, e) {
57
+ return e ? "subFieldInfos" in o ? g(o, e) || o.subFieldInfos.some((t) => g(t, e, !0)) : g(o, e) : !0;
58
58
  }
59
- function g(n, e, t = !1) {
60
- return [t ? n.name.split("/").pop() : n.name, n.alias, n.description].some(
59
+ function g(o, e, t = !1) {
60
+ return [t ? o.name.split("/").pop() : o.name, o.alias, o.description].some(
61
61
  (s) => s?.toLocaleLowerCase().includes(e.toLocaleLowerCase())
62
62
  );
63
63
  }
@@ -181,22 +181,26 @@ class H extends I {
181
181
  })) : this.getSortedList(e);
182
182
  }
183
183
  addFieldInfoFlowItem(e, t) {
184
- const i = this.flowElement.value, s = S(o`<calcite-flow-item selected .heading=${e.alias ?? e.name} .description=${e.name} class="panel" style=${$(this.panelCutOffHeight > 0 ? `max-height: ${this.panelCutOffHeight}px` : "max-height: 50vh")} @calciteFlowItemBack=${(l) => {
184
+ const i = this.flowElement.value, s = S(n`<calcite-flow-item selected .heading=${e.alias ?? e.name} .description=${e.name} class="panel" style=${$(this.panelCutOffHeight > 0 ? `max-height: ${this.panelCutOffHeight}px` : "max-height: 50vh")} @calciteFlowItemBack=${(l) => {
185
185
  l.currentTarget.remove(), this.fieldInfoFlowItemEl.value.selected = !1, this.panelElement.value.selected = !0, setTimeout(() => {
186
186
  t.setFocus();
187
187
  }, 300);
188
188
  }} ${d(this.fieldInfoFlowItemEl)}><arcgis-field-info lang=${this._messages._lang ?? m} .fieldName=${e.name} .layer=${this.layer} .view=${this.view} class="content"></arcgis-field-info></calcite-flow-item>`);
189
- i.appendChild(s), this.panelElement.value.selected = !1, setTimeout(() => this.fieldInfoFlowItemEl?.value.setFocus(), 1);
189
+ i.appendChild(s), this.panelElement.value.selected = !1, setTimeout(() => {
190
+ this.fieldInfoFlowItemEl?.value.setFocus();
191
+ }, 1);
190
192
  }
191
193
  addSubFieldInfoFlowItem(e, t) {
192
- const i = this.flowElement.value, s = e.subFieldInfos.filter((a) => g(a, this.filterText, !0)), l = S(o`<calcite-flow-item selected .heading=${e.alias ?? e.name} .description=${e.description ?? void 0} class="panel" style=${$(this.panelCutOffHeight > 0 ? `max-height: ${this.panelCutOffHeight}px` : "max-height: 50vh")} @calciteFlowItemBack=${(a) => {
194
+ const i = this.flowElement.value, s = e.subFieldInfos.filter((a) => g(a, this.filterText, !0)), l = S(n`<calcite-flow-item selected .heading=${e.alias ?? e.name} .description=${e.description ?? void 0} class="panel" style=${$(this.panelCutOffHeight > 0 ? `max-height: ${this.panelCutOffHeight}px` : "max-height: 50vh")} @calciteFlowItemBack=${(a) => {
193
195
  a.currentTarget.remove(), this.fieldInfoFlowItemEl.value.selected = !1, this.panelElement.value.selected = !0, setTimeout(() => {
194
196
  t.setFocus();
195
197
  }, 300);
196
198
  }} ${d(this.fieldInfoFlowItemEl)}><calcite-list .label=${e.alias ?? e.name} .selectionMode=${this.multiple ? "multiple" : "single"} @calciteListChange=${(a) => {
197
199
  this.updateSelectedFieldsForList(a.currentTarget, e.subFieldInfos), this.arcgisChange.emit({ selectedFields: this.selectedFields }), this.arcgisFieldPickListChange.emit({ selectedFields: this.selectedFields }), this.multiple || (this.arcgisClose.emit({ selectedFields: this.selectedFields }), this.arcgisFieldPickListDismissed.emit({ selectedFields: this.selectedFields }));
198
- }}>${s.map((a) => this.renderCalciteListItem(a, !1))}</calcite-list>${this.filterText && !s.length && this.filterNoResultsText?.length !== 0 ? o`<div class="no-match-text">${this.filterNoResultsText ?? this._messages.noMatches}</div>` : null}</calcite-flow-item>`);
199
- i.appendChild(l), this.panelElement.value.selected = !1, setTimeout(() => this.fieldInfoFlowItemEl.value?.setFocus(), 1);
200
+ }}>${s.map((a) => this.renderCalciteListItem(a, !1))}</calcite-list>${this.filterText && !s.length && this.filterNoResultsText?.length !== 0 ? n`<div class="no-match-text">${this.filterNoResultsText ?? this._messages.noMatches}</div>` : null}</calcite-flow-item>`);
201
+ i.appendChild(l), this.panelElement.value.selected = !1, setTimeout(() => {
202
+ this.fieldInfoFlowItemEl.value?.setFocus();
203
+ }, 1);
200
204
  }
201
205
  shouldRenderSelectionButton(e) {
202
206
  return this.multiple && this.showSelectionAll && (!e || !this.filterText || !!this.filterFields?.length);
@@ -227,42 +231,42 @@ class H extends I {
227
231
  if (this.listOnly)
228
232
  return this.renderList();
229
233
  const e = this.heading || (this.multiple ? this._messages.headerSelect : this._messages.header), t = this.popoverProps;
230
- return this.el.classList.add("js-app-flyout"), v(`${t.autoClose}`, o`<calcite-popover .placement=${t.placement ?? "leading-start"} open pointer-disabled .referenceElement=${t.refElement} .offsetDistance=${t.offsetDistance ?? -Math.round(t.refElement.getBoundingClientRect().width)} .offsetSkidding=${t.offsetSkidding ?? 0} .overlayPositioning=${t.overlayPositioning} trigger-disabled .autoClose=${t.autoClose} .label=${this.heading ?? (this.multiple ? this._messages.headerSelect : this._messages.header) ?? ""} @calcitePopoverClose=${() => {
234
+ return this.el.classList.add("js-app-flyout"), v(`${t.autoClose}`, n`<calcite-popover .placement=${t.placement ?? "leading-start"} open pointer-disabled .referenceElement=${t.refElement} .offsetDistance=${t.offsetDistance ?? -Math.round(t.refElement.getBoundingClientRect().width)} .offsetSkidding=${t.offsetSkidding ?? 0} .overlayPositioning=${t.overlayPositioning} trigger-disabled .autoClose=${t.autoClose} .label=${this.heading ?? (this.multiple ? this._messages.headerSelect : this._messages.header) ?? ""} @calcitePopoverClose=${() => {
231
235
  this.arcgisClose.emit(), this.arcgisFieldPickListDismissed.emit();
232
236
  }} ${d(this.popoverNode)}><calcite-flow style=${$({
233
237
  width: `${t.popoverWidth ?? t.refElement.getBoundingClientRect().width}px`,
234
238
  ...t.maxHeight && { maxHeight: t.maxHeight }
235
239
  })} ${d(this.flowElement)}><calcite-flow-item class="panel" .heading=${e} closable @calciteFlowItemClose=${() => {
236
240
  this.arcgisClose.emit(), this.arcgisFieldPickListDismissed.emit();
237
- }} ${d(this.panelElement)}><slot slot=content-top name=content-top></slot>${this.renderList()}<slot slot=content-bottom name=content-bottom></slot>${(this.multiple || !this.hideCancel) && o`<div slot=footer class="footer"><slot name=content-footer></slot>${this.multiple && !this.hideCancel ? o`<div class="add-cancel-buttons">${this.renderAddButton()}${this.renderCancelButton()}</div>` : o`${this.renderAddButton()}${this.renderCancelButton()}`}</div>` || ""}</calcite-flow-item></calcite-flow></calcite-popover>`);
241
+ }} ${d(this.panelElement)}><slot slot=content-top name=content-top></slot>${this.renderList()}<slot slot=content-bottom name=content-bottom></slot>${(this.multiple || !this.hideCancel) && n`<div slot=footer class="footer"><slot name=content-footer></slot>${this.multiple && !this.hideCancel ? n`<div class="add-cancel-buttons">${this.renderAddButton()}${this.renderCancelButton()}</div>` : n`${this.renderAddButton()}${this.renderCancelButton()}`}</div>` || ""}</calcite-flow-item></calcite-flow></calcite-popover>`);
238
242
  },
239
243
  error: () => ""
240
244
  });
241
245
  }
242
246
  renderList() {
243
247
  const e = this.heading || (this.multiple ? this._messages.headerSelect : this._messages.header), t = O(this.allLists), i = _(this.allLists), s = f(this.allLists).length >= this.showFilterLength;
244
- return t.length || i.length ? i.length ? this.renderSplitLists(t, i, s) : this.renderTopLevelOnlyFieldList(e, t, s) : o`<slot name=no-fields></slot>`;
248
+ return t.length || i.length ? i.length ? this.renderSplitLists(t, i, s) : this.renderTopLevelOnlyFieldList(e, t, s) : n`<slot name=no-fields></slot>`;
245
249
  }
246
250
  renderSplitLists(e, t, i) {
247
251
  const s = f(this.allLists), l = D(this.allLists).some((a) => F(a, this.filterText));
248
- return o`${i ? o`<div class="list-controls"><calcite-filter .items=${s} .filterProps=${["name", "alias", "description"]} .placeholder=${this.filterPlaceholderText ?? this._messages.filter} @calciteFilterChange=${(a) => {
252
+ return n`${i ? n`<div class="list-controls"><calcite-filter .items=${s} .filterProps=${["name", "alias", "description"]} .placeholder=${this.filterPlaceholderText ?? this._messages.filter} @calciteFilterChange=${(a) => {
249
253
  this.filterText = a.currentTarget.value, this.filterFields = this.filterText ? A(this.allLists, this.filterText).map((c) => c.name) : void 0;
250
- }}></calcite-filter>${this.renderSortButton()}</div>` : null}<div class=${L(this.listOnly ? "" : "list-wrapper")} ${d(this.listWrapper)}>${this.shouldRenderSelectionButton(i) ? this.renderSelectionButton() : null}${this.renderSplitSubFieldLists(t)}${e.length ? this.renderSplitTopLevelFieldList(e, !0) : null}</div>${this.filterText && !l && this.filterNoResultsText?.length !== 0 ? o`<div class="no-match-text">${this.filterNoResultsText ?? this._messages.noMatches}</div>` : null}`;
254
+ }}></calcite-filter>${this.renderSortButton()}</div>` : null}<div class=${L(this.listOnly ? "" : "list-wrapper")} ${d(this.listWrapper)}>${this.shouldRenderSelectionButton(i) ? this.renderSelectionButton() : null}${this.renderSplitSubFieldLists(t)}${e.length ? this.renderSplitTopLevelFieldList(e, !0) : null}</div>${this.filterText && !l && this.filterNoResultsText?.length !== 0 ? n`<div class="no-match-text">${this.filterNoResultsText ?? this._messages.noMatches}</div>` : null}`;
251
255
  }
252
256
  renderSplitSubFieldLists(e) {
253
257
  const t = e.map((i) => ({
254
258
  ...i,
255
259
  fields: i.fields.filter((s) => F(s, this.filterText))
256
260
  })).filter((i) => !!i.fields.length);
257
- return y(t, (i) => i.title, (i) => o`<calcite-list selection-mode=none .label=${i.title ?? this.heading ?? ""}><calcite-list-item-group .heading=${i.title}>${y(i.fields, (s) => s.name, (s) => o`<calcite-list-item .label=${s.alias || s.name} .description=${this.multiple ? this._messages.subFieldsSelected.replace("${count}", `${s.subFieldInfos.filter((l) => this.selectedFields.includes(l.name)).length}`) : void 0} .value=${s.name} @click=${(l) => this.addSubFieldInfoFlowItem(s, l.currentTarget)} @keydown=${(l) => {
261
+ return y(t, (i) => i.title, (i) => n`<calcite-list selection-mode=none .label=${i.title ?? this.heading ?? ""}><calcite-list-item-group .heading=${i.title}>${y(i.fields, (s) => s.name, (s) => n`<calcite-list-item .label=${s.alias || s.name} .description=${this.multiple ? this._messages.subFieldsSelected.replace("${count}", `${s.subFieldInfos.filter((l) => this.selectedFields.includes(l.name)).length}`) : void 0} .value=${s.name} @click=${(l) => this.addSubFieldInfoFlowItem(s, l.currentTarget)} @keydown=${(l) => {
258
262
  l.key === "Enter" && this.addSubFieldInfoFlowItem(s, l.currentTarget);
259
263
  }}><calcite-icon slot=actions-end icon=chevron-right flip-rtl scale=s></calcite-icon></calcite-list-item>`)}</calcite-list-item-group></calcite-list>`);
260
264
  }
261
265
  renderSplitTopLevelFieldList(e, t) {
262
- return o`<calcite-list .label=${this.heading || (this.multiple ? this._messages.headerSelect : this._messages.header)} .selectionMode=${this.multiple ? "multiple" : "single"} @calciteListChange=${() => this.handleListSelectionChange(e)} ${d(this.listNode)}><slot name=content-center></slot>${this.renderGroupedListItems(t)}</calcite-list>`;
266
+ return n`<calcite-list .label=${this.heading || (this.multiple ? this._messages.headerSelect : this._messages.header)} .selectionMode=${this.multiple ? "multiple" : "single"} @calciteListChange=${() => this.handleListSelectionChange(e)} ${d(this.listNode)}><slot name=content-center></slot>${this.renderGroupedListItems(t)}</calcite-list>`;
263
267
  }
264
268
  renderTopLevelOnlyFieldList(e, t, i) {
265
- return o`<div class=${L(this.listOnly ? "" : "list-wrapper")} ${d(this.listWrapper)}><calcite-list .label=${e} .selectionMode=${this.multiple ? "multiple" : "single"} .filterEnabled=${i} .filterPlaceholder=${this.filterPlaceholderText ?? this._messages.filter} @calciteListChange=${() => this.handleListSelectionChange(t)} @calciteListFilter=${(s) => {
269
+ return n`<div class=${L(this.listOnly ? "" : "list-wrapper")} ${d(this.listWrapper)}><calcite-list .label=${e} .selectionMode=${this.multiple ? "multiple" : "single"} .filterEnabled=${i} .filterPlaceholder=${this.filterPlaceholderText ?? this._messages.filter} @calciteListChange=${() => this.handleListSelectionChange(t)} @calciteListFilter=${(s) => {
266
270
  s.stopPropagation(), this.filterFields = this.listNode.value.filteredItems?.map((l) => l.value), this.filterText = this.listNode.value.filterText;
267
271
  }} ${d(this.listNode)}>${this.renderSortButton("filter-actions-end")}${this.shouldRenderSelectionButton(i) ? this.renderSelectionButton() : null}<slot name=content-center></slot>${this.renderGroupedListItems(!1)}</calcite-list></div>`;
268
272
  }
@@ -271,12 +275,12 @@ class H extends I {
271
275
  if (!(t.length >= this.showFilterLength && !this.hideSort))
272
276
  return "";
273
277
  const s = t.every((l) => !!l.type);
274
- return o`<calcite-dropdown slot=${e ?? m} placement=bottom-end overlay-positioning=fixed @calciteDropdownOpen=${() => {
278
+ return n`<calcite-dropdown slot=${e ?? m} placement=bottom-end overlay-positioning=fixed @calciteDropdownOpen=${() => {
275
279
  this.observer?.disconnect(), this.popoverNode.value && this.observer?.observe(this.popoverNode.value, { attributes: !0 });
276
- }} @calciteDropdownClose=${() => this.observer?.disconnect()} ${d(this.dropdownNode)}><calcite-action slot=trigger .text=${this._messages.sort ?? ""} title=${this._messages.sort ?? m}><calcite-icon scale=s icon=sortDescending flip-rtl></calcite-icon></calcite-action><calcite-dropdown-group><calcite-dropdown-item .selected=${this.lastSortBy === "default"} @calciteDropdownItemSelect=${() => this.setSortBy("default")}>${this._messages.default}</calcite-dropdown-item><calcite-dropdown-item .selected=${this.lastSortBy === "display"} @calciteDropdownItemSelect=${() => this.setSortBy("display")}>${this._messages.displayName}</calcite-dropdown-item>${s && o`<calcite-dropdown-item .selected=${this.lastSortBy === "type"} @calciteDropdownItemSelect=${() => this.setSortBy("type")}>${this._messages.type}</calcite-dropdown-item>` || ""}<calcite-dropdown-item .selected=${this.lastSortBy === "field"} @calciteDropdownItemSelect=${() => this.setSortBy("field")}>${this._messages.fieldName}</calcite-dropdown-item></calcite-dropdown-group></calcite-dropdown>`;
280
+ }} @calciteDropdownClose=${() => this.observer?.disconnect()} ${d(this.dropdownNode)}><calcite-action slot=trigger .text=${this._messages.sort ?? ""} title=${this._messages.sort ?? m}><calcite-icon scale=s icon=sortDescending flip-rtl></calcite-icon></calcite-action><calcite-dropdown-group><calcite-dropdown-item .selected=${this.lastSortBy === "default"} @calciteDropdownItemSelect=${() => this.setSortBy("default")}>${this._messages.default}</calcite-dropdown-item><calcite-dropdown-item .selected=${this.lastSortBy === "display"} @calciteDropdownItemSelect=${() => this.setSortBy("display")}>${this._messages.displayName}</calcite-dropdown-item>${s && n`<calcite-dropdown-item .selected=${this.lastSortBy === "type"} @calciteDropdownItemSelect=${() => this.setSortBy("type")}>${this._messages.type}</calcite-dropdown-item>` || ""}<calcite-dropdown-item .selected=${this.lastSortBy === "field"} @calciteDropdownItemSelect=${() => this.setSortBy("field")}>${this._messages.fieldName}</calcite-dropdown-item></calcite-dropdown-group></calcite-dropdown>`;
277
281
  }
278
282
  renderSelectionButton() {
279
- return o`<div class="selection-button-div"><calcite-button appearance=transparent scale=s width=full @click=${() => {
283
+ return n`<div class="selection-button-div"><calcite-button appearance=transparent scale=s width=full @click=${() => {
280
284
  if (this.canDeselectAll())
281
285
  this.selectedFields = this.filterFields?.length ? this.selectedFields.filter((e) => !this.filterFields?.includes(e)) : [];
282
286
  else if (this.filterFields?.length)
@@ -293,14 +297,14 @@ class H extends I {
293
297
  ...i,
294
298
  fields: e ? i.fields.filter((s) => F(s, this.filterText)) : i.fields
295
299
  })).filter((i) => !!i.fields.length);
296
- return t.length === 1 && !t[0].title ? this.renderListItems(t[0].fields) : t.map((s) => o`<calcite-list-item-group .heading=${s.title}>${this.renderListItems(s.fields)}</calcite-list-item-group>`);
300
+ return t.length === 1 && !t[0].title ? this.renderListItems(t[0].fields) : t.map((s) => n`<calcite-list-item-group .heading=${s.title}>${this.renderListItems(s.fields)}</calcite-list-item-group>`);
297
301
  }
298
302
  renderListItems(e) {
299
303
  return e.map((t) => this.renderCalciteListItem(t));
300
304
  }
301
305
  renderCalciteListItem(e, t = !0) {
302
306
  const i = t && this.showFieldInfoCheck(e), s = this.showFieldTypeIcon && !!e.type;
303
- return v(e.name, o`<calcite-list-item .label=${e.alias || e.name} .description=${(() => {
307
+ return v(e.name, n`<calcite-list-item .label=${e.alias || e.name} .description=${(() => {
304
308
  if (this.showFieldName && e.hideFieldName !== !0)
305
309
  return `{${e.name}}`;
306
310
  if (this.showDescription && e.hideDescription !== !0 && e.description)
@@ -308,11 +312,11 @@ class H extends I {
308
312
  })()} .value=${e.name} .selected=${!this.multiple && e.name === this.selectedFields[0] || this.multiple && this.selectedFields.includes(e.name)} .metadata=${{
309
313
  label: e.alias,
310
314
  fieldName: e.name
311
- }}>${s && o`<div slot=actions-end class="field-icons">${N({ fieldType: e.type })}</div>` || ""}${this.renderInfoAction(e, i)}${this.renderEditAction(e)}${this.renderDeleteAction(e)}</calcite-list-item>`);
315
+ }}>${s && n`<div slot=actions-end class="field-icons">${N({ fieldType: e.type })}</div>` || ""}${this.renderInfoAction(e, i)}${this.renderEditAction(e)}${this.renderDeleteAction(e)}</calcite-list-item>`);
312
316
  }
313
317
  renderInfoAction(e, t) {
314
318
  const { _messages: i } = this;
315
- return t ? o`<calcite-action slot=actions-end .text=${i.info} title=${i.info ?? m} scale=s icon=information @click=${(s) => {
319
+ return t ? n`<calcite-action slot=actions-end .text=${i.info} title=${i.info ?? m} scale=s icon=information @click=${(s) => {
316
320
  s.stopPropagation();
317
321
  const l = s.currentTarget;
318
322
  this.addFieldInfoFlowItem(e, l);
@@ -320,23 +324,23 @@ class H extends I {
320
324
  }
321
325
  renderEditAction(e) {
322
326
  const { _messages: t } = this;
323
- return e.showEditAction ? o`<calcite-action slot=actions-end .text=${t.edit} title=${t.edit ?? m} scale=s icon=pencil @click=${(i) => {
327
+ return e.showEditAction ? n`<calcite-action slot=actions-end .text=${t.edit} title=${t.edit ?? m} scale=s icon=pencil @click=${(i) => {
324
328
  i.stopPropagation(), this.arcgisEditField.emit({ fieldName: e.name });
325
329
  }}></calcite-action>` : "";
326
330
  }
327
331
  renderDeleteAction(e) {
328
332
  const { _messages: t } = this;
329
- return e.showDeleteAction ? o`<calcite-action slot=actions-end .text=${t.delete} title=${t.delete ?? m} scale=s icon=trash @click=${(i) => {
333
+ return e.showDeleteAction ? n`<calcite-action slot=actions-end .text=${t.delete} title=${t.delete ?? m} scale=s icon=trash @click=${(i) => {
330
334
  i.stopPropagation(), this.arcgisDeleteField.emit({ fieldName: e.name });
331
335
  }}></calcite-action>` : "";
332
336
  }
333
337
  renderAddButton() {
334
- return this.multiple ? o`<calcite-button .appearance=${this.hideCancel ? "outline-fill" : "solid"} .width=${this.hideCancel ? "full" : "half"} @click=${() => {
338
+ return this.multiple ? n`<calcite-button .appearance=${this.hideCancel ? "outline-fill" : "solid"} .width=${this.hideCancel ? "full" : "half"} @click=${() => {
335
339
  this.arcgisClose.emit({ selectedFields: this.selectedFields }), this.arcgisFieldPickListDismissed.emit({ selectedFields: this.selectedFields });
336
340
  }}>${this.okBtnText || (this.multiple ? this._messages.done : this._messages.ok)}</calcite-button>` : "";
337
341
  }
338
342
  renderCancelButton() {
339
- return this.hideCancel ? "" : o`<calcite-button appearance=outline-fill .width=${this.multiple ? "half" : "full"} @click=${() => {
343
+ return this.hideCancel ? "" : n`<calcite-button appearance=outline-fill .width=${this.multiple ? "half" : "full"} @click=${() => {
340
344
  this.arcgisClose.emit(), this.arcgisFieldPickListDismissed.emit();
341
345
  }}>${this._messages.cancel}</calcite-button>`;
342
346
  }
@@ -1,4 +1,4 @@
1
- /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/1.0/LICENSE.txt */
2
2
  import { c as M } from "../../chunks/runtime.js";
3
3
  import { u as k } from "../../chunks/useT9n.js";
4
4
  import { substitute as E } from "@arcgis/core/intl.js";
@@ -1,4 +1,4 @@
1
- /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/1.0/LICENSE.txt */
2
2
  import { c as r } from "../../chunks/runtime.js";
3
3
  import { formatNumber as o } from "@arcgis/core/intl.js";
4
4
  import { LitElement as u, createEvent as c, safeClassMap as h } from "@arcgis/lumina";
@@ -1,4 +1,4 @@
1
- /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/1.0/LICENSE.txt */
2
2
  import { c as n } from "../../chunks/runtime.js";
3
3
  import { css as l, html as o } from "lit";
4
4
  import { LitElement as a, createEvent as i, safeStyleMap as r } from "@arcgis/lumina";
@@ -1,4 +1,4 @@
1
- /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/1.0/LICENSE.txt */
2
2
  import { c as f } from "../../chunks/runtime.js";
3
3
  import w from "@arcgis/core/Color.js";
4
4
  import { LitElement as x, nothing as u, safeClassMap as C } from "@arcgis/lumina";
@@ -1,4 +1,4 @@
1
- /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/1.0/LICENSE.txt */
2
2
  import { c as l } from "../../chunks/runtime.js";
3
3
  import { LitElement as m } from "@arcgis/lumina";
4
4
  import { css as p, html as c } from "lit";
@@ -1,4 +1,4 @@
1
- /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/1.0/LICENSE.txt */
2
2
  import { c } from "../../chunks/runtime.js";
3
3
  import t from "@arcgis/core/Color.js";
4
4
  import { LitElement as e } from "@arcgis/lumina";
@@ -1,4 +1,4 @@
1
- /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/1.0/LICENSE.txt */
2
2
  import { c as Q } from "../../chunks/runtime.js";
3
3
  import { keyed as Z } from "lit/directives/keyed.js";
4
4
  import { LitElement as ee, createEvent as S, safeClassMap as M, safeStyleMap as R, nothing as E } from "@arcgis/lumina";
@@ -1,4 +1,4 @@
1
- /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/1.0/LICENSE.txt */
2
2
  import { c as m } from "../../chunks/runtime.js";
3
3
  import { LitElement as u, createEvent as n } from "@arcgis/lumina";
4
4
  import { css as g, html as c } from "lit";
@@ -1,4 +1,4 @@
1
- /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/1.0/LICENSE.txt */
2
2
  import { c } from "../../chunks/runtime.js";
3
3
  import { sqlName as p, sqlLiteral as b } from "@arcgis/core/core/sql.js";
4
4
  import { LitElement as v, createEvent as d, safeStyleMap as f } from "@arcgis/lumina";
@@ -1,4 +1,4 @@
1
- /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/1.0/LICENSE.txt */
2
2
  import { c as d } from "../../chunks/runtime.js";
3
3
  import { css as m, html as o } from "lit";
4
4
  import { LitElement as b, createEvent as p } from "@arcgis/lumina";
@@ -1,4 +1,4 @@
1
- /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/1.0/LICENSE.txt */
2
2
  import { c as M } from "../../chunks/runtime.js";
3
3
  import { css as C, html as h } from "lit";
4
4
  import { LitElement as F, createEvent as L, safeClassMap as o, nothing as y, safeStyleMap as m } from "@arcgis/lumina";
@@ -1,5 +1,6 @@
1
1
  /// <reference path="../../index.d.ts" />
2
- import type { PublicLitElement as LitElement } from "@arcgis/lumina";
2
+ import type { JsxNode, PublicLitElement as LitElement } from "@arcgis/lumina";
3
+ import type { MeasurementContext, RenderableToolbarContent, RenderContext } from "./types.js";
3
4
  import type { ActionBar as ActionBar } from "@esri/calcite-components/components/calcite-action-bar";
4
5
 
5
6
  /**
@@ -7,15 +8,13 @@ import type { ActionBar as ActionBar } from "@esri/calcite-components/components
7
8
  *
8
9
  * Measures the child elements then renders their content within its own shadow root.
9
10
  *
11
+ * Can be used alone, or in conjunction with a toolbar-stack (ideal in cases with multiple toolbars).
12
+ *
10
13
  * @internal
11
14
  */
12
15
  export abstract class ArcgisToolbar extends LitElement {
13
16
  get barElement(): ActionBar | undefined;
14
- /**
15
- * Toolbar orientation.
16
- *
17
- * @default "horizontal"
18
- */
17
+ /** Toolbar orientation. */
19
18
  accessor layout: "horizontal" | "vertical";
20
19
  /**
21
20
  * Relative position is used to control how popover element placement and directional arrows
@@ -44,4 +43,25 @@ export abstract class ArcgisToolbar extends LitElement {
44
43
  * @default "native"
45
44
  */
46
45
  accessor tooltipAppearance: "calcite-dark" | "calcite" | "native";
46
+ /**
47
+ * @param context
48
+ * @param budget
49
+ * @internal
50
+ */
51
+ allocate(context: RenderContext, budget: number): {
52
+ group: RenderableToolbarContent;
53
+ budget: number;
54
+ }[];
55
+ /**
56
+ * @param context
57
+ * @internal
58
+ */
59
+ measure(context: MeasurementContext): number[];
60
+ /**
61
+ * @param context
62
+ * @param budget
63
+ * @param toolbarKind
64
+ * @internal
65
+ */
66
+ proxiedRender(context: RenderContext, budget: number, toolbarKind?: "docked" | "floating"): JsxNode;
47
67
  }
@@ -1,82 +1,108 @@
1
- /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import { c as n } from "../../chunks/runtime.js";
3
- import { ref as i } from "lit/directives/ref.js";
4
- import { css as r, html as l } from "lit";
5
- import { LitElement as s } from "@arcgis/lumina";
6
- import { useDirection as d } from "@arcgis/lumina/controllers";
7
- import { i as h, a as p } from "../../chunks/utils.js";
8
- const u = r`:host{--arcgis-internal-toolbar-action-kind-color: var(--calcite-action-text-color);--arcgis-internal-toolbar-action-kind-color-hover: var(--calcite-action-text-color-press);--arcgis-internal-toolbar-action-kind-color-press: var(--calcite-action-text-color-press);--arcgis-internal-toolbar-action-kind-foreground-color: var(--calcite-color-text-inverse);--arcgis-internal-toolbar-action-transparent-background-color: var(--calcite-color-transparent);--arcgis-internal-toolbar-action-transparent-background-color-hover: var(--calcite-color-transparent-hover);--arcgis-internal-toolbar-action-transparent-background-color-press: var(--calcite-color-transparent-press)}calcite-action{--calcite-action-text-color: var(--arcgis-internal-toolbar-action-kind-color);--calcite-action-text-color-press: var(--arcgis-internal-toolbar-action-kind-color-press);--calcite-color-focus: var(--arcgis-internal-toolbar-action-kind-color);--calcite-action-indicator-color: var(--arcgis-internal-toolbar-action-kind-color)}calcite-action:is([data-appearance=solid]){--calcite-offset-invert-focus: 1}calcite-action[data-appearance=outline]{--calcite-action-background-color: var(--arcgis-internal-toolbar-action-transparent-background-color);--calcite-action-background-color-hover: var(--arcgis-internal-toolbar-action-transparent-background-color-hover);--calcite-action-background-color-press: var(--arcgis-internal-toolbar-action-transparent-background-color-press);--calcite-action-text-color: var(--arcgis-internal-toolbar-action-kind-color);--calcite-action-text-color-press: var(--arcgis-internal-toolbar-action-kind-color-press);box-shadow:inset 0 0 0 var(--calcite-border-width-sm, 1px) var(--arcgis-internal-toolbar-action-kind-color)}calcite-action[data-appearance=outline]:hover{box-shadow:inset 0 0 0 var(--calcite-border-width-sm, 1px) var(--arcgis-internal-toolbar-action-kind-color-hover)}calcite-action[data-appearance=outline]:active,calcite-action[data-appearance=outline][active]{--calcite-action-background-color: var(--arcgis-internal-toolbar-action-transparent-background-color-press);box-shadow:inset 0 0 0 var(--calcite-border-width-sm, 1px) var(--arcgis-internal-toolbar-action-kind-color-press)}calcite-action[data-appearance=solid]{--calcite-action-background-color: var(--arcgis-internal-toolbar-action-kind-color);--calcite-action-background-color-hover: var(--arcgis-internal-toolbar-action-kind-color-hover);--calcite-action-background-color-press: var(--arcgis-internal-toolbar-action-kind-color-press);--calcite-action-text-color: var(--arcgis-internal-toolbar-action-kind-foreground-color);--calcite-action-text-color-press: var(--arcgis-internal-toolbar-action-kind-foreground-color);--calcite-action-indicator-color: var(--arcgis-internal-toolbar-action-kind-foreground-color)}calcite-action:is([data-appearance=outline],[data-appearance=solid]):not([data-kind]){--arcgis-internal-toolbar-action-kind-color: var(--calcite-color-inverse);--arcgis-internal-toolbar-action-kind-color-hover: var(--calcite-color-inverse-hover);--arcgis-internal-toolbar-action-kind-color-press: var(--calcite-color-inverse-press)}calcite-action:not([data-kind]){--calcite-action-indicator-color: var(--calcite-color-brand)}calcite-action[data-kind=brand]{--arcgis-internal-toolbar-action-kind-color: var(--calcite-color-brand);--arcgis-internal-toolbar-action-kind-color-hover: var(--calcite-color-brand-hover);--arcgis-internal-toolbar-action-kind-color-press: var(--calcite-color-brand-press);--calcite-action-indicator-color: var(--calcite-color-text-1);&[data-appearance=solid]{--calcite-action-indicator-color: var(--calcite-color-text-inverse)}}calcite-action[data-kind=danger]{--arcgis-internal-toolbar-action-kind-color: var(--calcite-color-status-danger);--arcgis-internal-toolbar-action-kind-color-hover: var(--calcite-color-status-danger-hover);--arcgis-internal-toolbar-action-kind-color-press: var(--calcite-color-status-danger-press)}calcite-action[data-kind=info]{--arcgis-internal-toolbar-action-kind-color: var(--calcite-color-status-info);--arcgis-internal-toolbar-action-kind-color-hover: var(--calcite-color-status-info-hover);--arcgis-internal-toolbar-action-kind-color-press: var(--calcite-color-status-info-press)}calcite-action[data-kind=success]{--arcgis-internal-toolbar-action-kind-color: var(--calcite-color-status-success);--arcgis-internal-toolbar-action-kind-color-hover: var(--calcite-color-status-success-hover);--arcgis-internal-toolbar-action-kind-color-press: var(--calcite-color-status-success-press)}calcite-action[data-kind=warning]{--arcgis-internal-toolbar-action-kind-color: var(--calcite-color-status-warning);--arcgis-internal-toolbar-action-kind-color-hover: var(--calcite-color-status-warning-hover);--arcgis-internal-toolbar-action-kind-color-press: var(--calcite-color-status-warning-press)}`, b = r`:host([layout="horizontal"]){calcite-action.split-anchor{min-width:24px;max-width:24px;&[scale=m]{--calcite-internal-action-spacing: .25rem}&[scale=l]{--calcite-internal-action-spacing: 0rem}}}:host([layout="vertical"]){calcite-action.split-anchor{--calcite-internal-action-min-height: unset;min-height:24px;max-height:24px}}.split-host{display:contents;cursor:pointer;calcite-action:has(~.split-menu[open]),calcite-action:has(~.split-menu:hover),calcite-action:has(~.split-menu:focus-within),calcite-action:hover~.split-menu calcite-action[slot=trigger],.split-menu[open] calcite-action[slot=trigger],.split-menu:hover calcite-action[slot=trigger],.split-menu:focus-within calcite-action[slot=trigger]{background-color:var(--calcite-action-background-color-hover, var(--calcite-color-transparent-hover))}}:host([layout="horizontal"]){.split-host{calcite-action:has(+.split-menu){border-radius:var(--calcite-action-corner-radius, 2px);border-top-right-radius:0;border-bottom-right-radius:0}calcite-action[slot=trigger]{border-radius:var(--calcite-action-corner-radius, 2px);border-bottom-left-radius:0;border-top-left-radius:0}calcite-action:dir(rtl):has(+.split-menu){border-radius:var(--calcite-action-corner-radius, 2px);border-top-left-radius:0;border-bottom-left-radius:0}calcite-action:dir(rtl)[slot=trigger]{border-radius:var(--calcite-action-corner-radius, 2px);border-bottom-right-radius:0;border-top-right-radius:0}.split-menu:dir(ltr){margin-left:calc(0px - var(--calcite-internal-action-bar-gap))}.split-menu:dir(rtl){margin-right:calc(0px - var(--calcite-internal-action-bar-gap))}}}:host([layout="vertical"]){.split-host{calcite-action:has(+.split-menu){border-radius:var(--calcite-action-corner-radius, 2px);border-bottom-left-radius:0;border-bottom-right-radius:0}calcite-action[slot=trigger]{border-radius:var(--calcite-action-corner-radius, 2px);border-top-right-radius:0;border-top-left-radius:0}.split-menu{margin-top:calc(0px - var(--calcite-internal-action-bar-gap))}}}`, g = r`:host{display:flex;max-inline-size:100%;max-block-size:100%;--arcgis-toolbar-tooltip-dark-background-color: #212121;--arcgis-toolbar-tooltip-dark-border-color: #404040;--arcgis-toolbar-tooltip-dark-text-color: #fff}:host([toolbar-kind="floating"]){display:inline-flex;.ruler{opacity:0;pointer-events:none;position:absolute;visibility:hidden;width:min(100cqw - 32px,100vw - 32px);height:min(100cqh - 32px,100vh - 32px)}}:host([toolbar-kind="docked"]){.ruler{visibility:hidden;height:0;display:block;position:absolute;top:0;left:0;right:0;width:100%;height:100%}}:host([toolbar-kind="docked"][layout="horizontal"]){calcite-action-bar{min-width:100%}}:host([toolbar-kind="docked"][layout="vertical"]){min-height:100%;calcite-action-bar{min-height:100%}}:host([toolbar-kind="floating"][layout="horizontal"]){inline-size:max-content;overflow-x:auto}:host([toolbar-kind="floating"][layout="vertical"]){block-size:max-content;overflow-y:auto}calcite-tooltip.calcite-mode-dark{--calcite-tooltip-background-color: var(--arcgis-toolbar-tooltip-dark-background-color);--calcite-tooltip-border-color: var(--arcgis-toolbar-tooltip-dark-border-color);--calcite-tooltip-text-color: var(--arcgis-toolbar-tooltip-dark-text-color)}`;
9
- class v extends s {
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/1.0/LICENSE.txt */
2
+ import { c as d } from "../../chunks/runtime.js";
3
+ import { ref as l } from "lit/directives/ref.js";
4
+ import { html as c } from "lit";
5
+ import { keyed as u } from "lit/directives/keyed.js";
6
+ import { LitElement as p, createEvent as g } from "@arcgis/lumina";
7
+ import { useDirection as m } from "@arcgis/lumina/controllers";
8
+ import { s as f, a as b, b as _, c as v } from "../../chunks/toolbar.js";
9
+ import { a as o } from "../../chunks/utils.js";
10
+ import { i as y } from "../../chunks/types.js";
11
+ class R extends p {
10
12
  constructor() {
11
- super(...arguments), this.#t = new ResizeObserver((t) => this._updateMeasurement(t)), this.#a = new MutationObserver(() => this._syncGroups()), this.#i = d(), this._setRenderedBar = (t) => {
13
+ super(), this.#t = new ResizeObserver((t) => this._updateMeasurement(t)), this.#r = new MutationObserver(() => this._syncGroups()), this.#i = m(), this._layout = "horizontal", this._setRenderedBar = (t) => {
12
14
  t == null && (this._renderedBar = void 0, this._hydratedRenderedBar = void 0), !(t === this._renderedBar || t === this._hydratedRenderedBar) && (this._renderedBar = t, this._hydratedRenderedBar = void 0, t && t.componentOnReady().then(() => {
13
15
  !this.isConnected || this._renderedBar !== t || (this._hydratedRenderedBar = t);
14
16
  }));
15
- }, this._availableLength = 0, this.layout = "horizontal", this.scale = "m", this.tooltipAppearance = "native", this.relativePosition = "top-left", this.toolbarKind = "floating";
17
+ }, this._availableLength = 0, this.scale = "m", this.tooltipAppearance = "native", this.relativePosition = "top-left", this.toolbarKind = "floating", this.arcgisInternalLayoutUpdate = g(), this.listen("arcgisInternalLayoutUpdate", (t) => {
18
+ t.target !== this.el && this.requestUpdate(), this.el.parentElement?.localName !== "arcgis-toolbar-stack" && t.stopPropagation();
19
+ });
16
20
  }
17
21
  static {
18
22
  this.properties = { _availableLength: 16, _groups: 16, _renderedBar: 16, _hydratedRenderedBar: 16, layout: 3, scale: 3, tooltipAppearance: 1, relativePosition: 1, toolbarKind: 3, barElement: 32, effectiveRelativeDirection: 16 };
19
23
  }
20
24
  static {
21
- this.styles = [g, u, b];
25
+ this.styles = [f, b, _, v];
22
26
  }
23
27
  #t;
24
- #a;
25
28
  #r;
29
+ #s;
26
30
  #i;
27
- #o;
31
+ #e;
32
+ get layout() {
33
+ return this._layout;
34
+ }
35
+ set layout(t) {
36
+ t !== this._layout && (this._layout = t, this._updateMeasurement());
37
+ }
28
38
  get barElement() {
29
39
  return this._hydratedRenderedBar;
30
40
  }
31
41
  get effectiveRelativeDirection() {
32
- const [t, o] = this.relativePosition.split("-"), a = this.#i;
33
- switch (o) {
42
+ const [t, e] = this.relativePosition.split("-"), r = this.#i;
43
+ switch (e) {
34
44
  case "left":
35
45
  case "right":
36
- return `${t}-${o}`;
46
+ return `${t}-${e}`;
37
47
  case "end":
38
- return `${t}-${a === "ltr" ? "right" : "left"}`;
48
+ return `${t}-${r === "ltr" ? "right" : "left"}`;
39
49
  case "start":
40
- return `${t}-${a === "ltr" ? "left" : "right"}`;
50
+ return `${t}-${r === "ltr" ? "left" : "right"}`;
41
51
  }
42
52
  }
53
+ measure(t) {
54
+ const e = this._groups;
55
+ if (!e?.length)
56
+ return [0];
57
+ const n = e.map((s) => s.measure(t)).reduce((s, i) => s.flatMap((a) => i.map((h) => a + h)), [0]).map((s) => o(e, t, s).reduce((i, { budget: a }) => i + a, 0));
58
+ return Array.from(new Set(n)).sort((s, i) => s - i);
59
+ }
60
+ allocate(t, e) {
61
+ const r = this._groups;
62
+ return r?.length ? o(r, t, e) : [];
63
+ }
64
+ proxiedRender(t, e, r = this.toolbarKind) {
65
+ if (!this._groups?.length)
66
+ return;
67
+ const s = this.allocate(t, e);
68
+ return u(this, c`<div class="toolbar-grid-wrapper"><div class="toolbar-shadow-wrapper"><calcite-action-bar expand-toggle-disabled .floating=${r === "floating"} .layout=${t.layout} overflow-mode=none .scale=${t.scale} ${l(this._setRenderedBar)}>${s.map(({ group: i, budget: a }) => i.proxiedRender(t, a))}</calcite-action-bar></div></div>`);
69
+ }
43
70
  connectedCallback() {
44
- super.connectedCallback(), this._connectMeasurement(this.#o), this.#a.observe(this.el, { childList: !0 }), this._syncGroups();
71
+ super.connectedCallback(), this._connectMeasurement(this.#e), this.#r.observe(this.el, { childList: !0 }), this._syncGroups();
45
72
  }
46
73
  disconnectedCallback() {
47
- this.#t.disconnect(), this.#a.disconnect(), super.disconnectedCallback();
74
+ this.#t.disconnect(), this.#r.disconnect(), super.disconnectedCallback();
48
75
  }
49
76
  _setRulerEl(t) {
50
- this.#o !== t && (this.#o = t, this.isConnected && this._connectMeasurement(t));
77
+ this.#e !== t && (this.#e = t, this.isConnected && this._connectMeasurement(t));
51
78
  }
52
79
  _connectMeasurement(t) {
53
80
  this.#t.disconnect(), t && (this.#t.observe(t), this._updateMeasurement());
54
81
  }
55
82
  _updateMeasurement(t) {
56
- const o = t?.at(0)?.contentRect ?? this.#o?.getBoundingClientRect();
57
- o && (this._availableLength = this.layout === "horizontal" ? o.width : o.height);
83
+ const e = t?.at(0)?.contentRect ?? this.#e?.getBoundingClientRect();
84
+ e && (this._availableLength = this.layout === "horizontal" ? e.width : e.height);
58
85
  }
59
86
  _syncGroups() {
60
- this.#r?.abort();
61
- const t = Array.from(this.el.children).filter(h), o = new AbortController();
62
- this.#r = o, Promise.all(t.map((a) => a.componentOnReady())).then(() => {
63
- !this.isConnected || o.signal.aborted || (this._groups = t);
87
+ this.#s?.abort();
88
+ const t = Array.from(this.el.children).filter(y), e = new AbortController();
89
+ this.#s = e, Promise.all(t.map((r) => r.componentOnReady())).then(() => {
90
+ !this.isConnected || e.signal.aborted || (this._groups = t, this.arcgisInternalLayoutUpdate.emit());
64
91
  });
65
92
  }
66
93
  render() {
67
- const t = this._groups;
68
- if (!t?.length)
94
+ if (!this._groups?.length || this.el.parentElement?.localName === "arcgis-toolbar-stack")
69
95
  return;
70
- const o = {
96
+ const e = {
71
97
  layout: this.layout,
72
98
  relativePosition: this.effectiveRelativeDirection,
73
99
  scale: this.scale,
74
100
  tooltipAppearance: this.tooltipAppearance
75
- }, a = p(t, o, this._availableLength);
76
- return l`<div class="ruler" ${i(this._setRulerEl)}></div><calcite-action-bar expand-disabled .floating=${this.toolbarKind === "floating"} .layout=${this.layout} overflow-actions-disabled .scale=${this.scale} ${i(this._setRenderedBar)}>${a.map(({ group: c, budget: e }) => c.proxiedRender(o, e))}</calcite-action-bar>`;
101
+ }, [{ budget: r }] = o([this], e, this._availableLength);
102
+ return c`<div class="ruler" ${l(this._setRulerEl)}></div>${this.proxiedRender(e, r)}`;
77
103
  }
78
104
  }
79
- n("arcgis-toolbar", v);
105
+ d("arcgis-toolbar", R);
80
106
  export {
81
- v as ArcgisToolbar
107
+ R as ArcgisToolbar
82
108
  };
@@ -1,3 +1,19 @@
1
+ import type { JsxNode } from "@arcgis/lumina";
2
+
3
+ /**
4
+ * Priority values that control when toolbar content collapses as available space changes.
5
+ *
6
+ * @internal
7
+ */
8
+ export const LayoutPriorities: {
9
+ ForceCollapse: number;
10
+ Default: number;
11
+ Medium: number;
12
+ High: number;
13
+ Max: number;
14
+ NeverCollapse: number;
15
+ };
16
+
1
17
  export type MeasurementContext = {
2
18
  layout: "horizontal" | "vertical";
3
19
  scale: "l" | "m" | "s";
@@ -7,4 +23,19 @@ export type RenderContext = MeasurementContext
7
23
  & {
8
24
  relativePosition: "bottom-left" | "bottom-right" | "top-left" | "top-right";
9
25
  tooltipAppearance: "calcite-dark" | "calcite" | "native";
10
- };
26
+ };
27
+
28
+ /**
29
+ * Represents a component that can be discovered and used to drive rendering
30
+ * in a toolbar.
31
+ *
32
+ * Some elements might need additional capabilities to participate; for example,
33
+ * split-button and more-button require additional rendering capabilities for child
34
+ * elements, and will filter out elements that don't conform.
35
+ */
36
+ export interface RenderableToolbarContent {
37
+ measure: (context: MeasurementContext) => number[];
38
+ proxiedRender: (context: RenderContext, budget: number) => JsxNode;
39
+ priority?: number;
40
+ componentOnReady: () => Promise<unknown>;
41
+ }
@@ -37,7 +37,7 @@ export abstract class ArcgisToolbarAction extends LitElement {
37
37
  * @default false
38
38
  */
39
39
  accessor disabled: boolean;
40
- /** The icon to show in the rendered action; should not be ommitted for best user experience. */
40
+ /** The icon to show in the rendered action; should not be omitted for best user experience. */
41
41
  accessor icon: Icon["icon"] | undefined;
42
42
  /**
43
43
  * Determines if the icon will be flipped when direction is RTL.