@esri/calcite-components 1.0.0-next.363 → 1.0.0-next.367

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 (226) hide show
  1. package/dist/calcite/calcite.esm.js +1 -1
  2. package/dist/calcite/p-0282fd8b.system.entry.js +5 -0
  3. package/dist/calcite/p-050ff462.entry.js +5 -0
  4. package/dist/calcite/p-05b03971.system.entry.js +5 -0
  5. package/dist/calcite/p-08847812.entry.js +5 -0
  6. package/dist/calcite/p-1bcce6c9.entry.js +5 -0
  7. package/dist/calcite/p-1ef9235e.system.entry.js +5 -0
  8. package/dist/calcite/p-25ed6059.entry.js +5 -0
  9. package/dist/calcite/{p-0b0ce9b2.system.entry.js → p-3280f0ac.system.entry.js} +1 -1
  10. package/dist/calcite/p-40cbbd20.entry.js +5 -0
  11. package/dist/calcite/p-4347fde9.system.entry.js +5 -0
  12. package/dist/calcite/p-43cd4b9b.entry.js +5 -0
  13. package/dist/calcite/{p-e6d14bc5.system.entry.js → p-4dcae709.system.entry.js} +1 -1
  14. package/dist/calcite/p-55e2658e.entry.js +5 -0
  15. package/dist/calcite/p-5682a918.entry.js +5 -0
  16. package/dist/calcite/p-597b782e.system.entry.js +5 -0
  17. package/dist/calcite/p-60e4f404.entry.js +5 -0
  18. package/dist/calcite/p-660c8077.js +5 -0
  19. package/dist/calcite/p-7279ccf9.entry.js +5 -0
  20. package/dist/calcite/p-832d7f68.system.entry.js +5 -0
  21. package/dist/calcite/p-888a152c.system.entry.js +5 -0
  22. package/dist/calcite/p-946c3bed.system.entry.js +5 -0
  23. package/dist/calcite/p-94717214.entry.js +5 -0
  24. package/dist/calcite/p-953259af.entry.js +5 -0
  25. package/dist/calcite/p-96808ed2.entry.js +5 -0
  26. package/dist/calcite/p-99d32fc3.system.js +1 -1
  27. package/dist/calcite/p-9b723fdd.system.entry.js +5 -0
  28. package/dist/calcite/p-9f349c92.entry.js +5 -0
  29. package/dist/calcite/p-9fe77a88.system.entry.js +5 -0
  30. package/dist/calcite/p-a52288cd.system.entry.js +5 -0
  31. package/dist/calcite/p-a71d17b4.entry.js +5 -0
  32. package/dist/calcite/p-aea7c650.system.entry.js +5 -0
  33. package/dist/calcite/p-af7ed41f.system.entry.js +5 -0
  34. package/dist/calcite/p-b14e0be5.system.entry.js +5 -0
  35. package/dist/calcite/p-b53b28e3.system.js +5 -0
  36. package/dist/calcite/p-b88d7391.entry.js +5 -0
  37. package/dist/calcite/p-ba000c59.entry.js +5 -0
  38. package/dist/calcite/p-ba915998.entry.js +5 -0
  39. package/dist/calcite/p-cf2be87e.entry.js +5 -0
  40. package/dist/calcite/p-dd4457cd.entry.js +5 -0
  41. package/dist/calcite/p-eff2fb8c.system.entry.js +5 -0
  42. package/dist/calcite/p-f4614b28.system.entry.js +5 -0
  43. package/dist/calcite/{p-8b145872.system.entry.js → p-f94619be.system.entry.js} +1 -1
  44. package/dist/calcite/p-fd57beb5.system.entry.js +5 -0
  45. package/dist/cjs/calcite-action-bar.cjs.entry.js +3 -24
  46. package/dist/cjs/calcite-action-group.cjs.entry.js +13 -0
  47. package/dist/cjs/calcite-action-menu.cjs.entry.js +3 -0
  48. package/dist/cjs/calcite-action-pad.cjs.entry.js +8 -0
  49. package/dist/cjs/calcite-alert.cjs.entry.js +15 -9
  50. package/dist/cjs/calcite-block_2.cjs.entry.js +14 -1
  51. package/dist/cjs/calcite-chip.cjs.entry.js +14 -1
  52. package/dist/cjs/calcite-combobox_3.cjs.entry.js +22 -11
  53. package/dist/cjs/calcite-input.cjs.entry.js +3 -0
  54. package/dist/cjs/calcite-link.cjs.entry.js +13 -2
  55. package/dist/cjs/calcite-list_3.cjs.entry.js +13 -0
  56. package/dist/cjs/calcite-modal.cjs.entry.js +5 -2
  57. package/dist/cjs/calcite-notice.cjs.entry.js +8 -0
  58. package/dist/cjs/calcite-panel.cjs.entry.js +18 -12
  59. package/dist/cjs/calcite-pick-list_3.cjs.entry.js +23 -0
  60. package/dist/cjs/calcite-shell_3.cjs.entry.js +35 -7
  61. package/dist/cjs/calcite-tile.cjs.entry.js +13 -0
  62. package/dist/cjs/calcite-tip_3.cjs.entry.js +13 -1
  63. package/dist/cjs/calcite-tree_2.cjs.entry.js +6 -0
  64. package/dist/cjs/calcite-value-list_2.cjs.entry.js +12 -0
  65. package/dist/cjs/calcite.cjs.js +1 -1
  66. package/dist/cjs/conditionalSlot-e874fbb0.js +43 -0
  67. package/dist/cjs/loader.cjs.js +1 -1
  68. package/dist/collection/components/calcite-action-group/calcite-action-group.js +12 -0
  69. package/dist/collection/components/calcite-action-menu/calcite-action-menu.js +3 -0
  70. package/dist/collection/components/calcite-action-pad/calcite-action-pad.js +7 -0
  71. package/dist/collection/components/calcite-alert/calcite-alert.js +15 -9
  72. package/dist/collection/components/calcite-block/calcite-block.js +13 -1
  73. package/dist/collection/components/calcite-chip/calcite-chip.js +13 -1
  74. package/dist/collection/components/calcite-combobox/calcite-combobox.js +42 -13
  75. package/dist/collection/components/calcite-combobox/resources.js +3 -0
  76. package/dist/collection/components/calcite-input/calcite-input.js +3 -0
  77. package/dist/collection/components/calcite-link/calcite-link.js +31 -2
  78. package/dist/collection/components/calcite-list-item/calcite-list-item.js +12 -0
  79. package/dist/collection/components/calcite-modal/calcite-modal.js +5 -2
  80. package/dist/collection/components/calcite-notice/calcite-notice.js +7 -0
  81. package/dist/collection/components/calcite-panel/calcite-panel.js +19 -14
  82. package/dist/collection/components/calcite-pick-list-group/calcite-pick-list-group.js +12 -0
  83. package/dist/collection/components/calcite-pick-list-item/calcite-pick-list-item.js +12 -0
  84. package/dist/collection/components/calcite-shell/calcite-shell.js +14 -2
  85. package/dist/collection/components/calcite-shell-center-row/calcite-shell-center-row.js +13 -1
  86. package/dist/collection/components/calcite-shell-panel/calcite-shell-panel.js +9 -4
  87. package/dist/collection/components/calcite-tile/calcite-tile.js +12 -0
  88. package/dist/collection/components/calcite-tip/calcite-tip.js +13 -1
  89. package/dist/collection/components/calcite-tree-item/calcite-tree-item.js +5 -0
  90. package/dist/collection/components/calcite-value-list-item/calcite-value-list-item.js +12 -0
  91. package/dist/collection/utils/conditionalSlot.js +22 -11
  92. package/dist/components/calcite-action-bar.js +2 -23
  93. package/dist/components/calcite-action-group2.js +12 -0
  94. package/dist/components/calcite-action-menu2.js +3 -0
  95. package/dist/components/calcite-action-pad.js +7 -0
  96. package/dist/components/calcite-alert.js +15 -9
  97. package/dist/components/calcite-block.js +13 -1
  98. package/dist/components/calcite-chip2.js +13 -1
  99. package/dist/components/calcite-combobox.js +21 -12
  100. package/dist/components/calcite-input2.js +3 -0
  101. package/dist/components/calcite-link2.js +14 -2
  102. package/dist/components/calcite-list-item.js +12 -0
  103. package/dist/components/calcite-modal.js +5 -2
  104. package/dist/components/calcite-notice.js +7 -0
  105. package/dist/components/calcite-panel.js +17 -12
  106. package/dist/components/calcite-pick-list-group.js +12 -0
  107. package/dist/components/calcite-pick-list-item2.js +12 -0
  108. package/dist/components/calcite-shell-center-row.js +13 -1
  109. package/dist/components/calcite-shell-panel.js +9 -4
  110. package/dist/components/calcite-shell.js +14 -2
  111. package/dist/components/calcite-tile2.js +12 -0
  112. package/dist/components/calcite-tip.js +13 -1
  113. package/dist/components/calcite-tree-item.js +5 -0
  114. package/dist/components/calcite-value-list-item.js +12 -0
  115. package/dist/components/conditionalSlot.js +40 -0
  116. package/dist/components/utils2.js +4 -1
  117. package/dist/custom-elements/index.js +300 -110
  118. package/dist/esm/calcite-action-bar.entry.js +2 -23
  119. package/dist/esm/calcite-action-group.entry.js +13 -0
  120. package/dist/esm/calcite-action-menu.entry.js +3 -0
  121. package/dist/esm/calcite-action-pad.entry.js +8 -0
  122. package/dist/esm/calcite-alert.entry.js +15 -9
  123. package/dist/esm/calcite-block_2.entry.js +14 -1
  124. package/dist/esm/calcite-chip.entry.js +14 -1
  125. package/dist/esm/calcite-combobox_3.entry.js +22 -11
  126. package/dist/esm/calcite-input.entry.js +3 -0
  127. package/dist/esm/calcite-link.entry.js +13 -2
  128. package/dist/esm/calcite-list_3.entry.js +13 -0
  129. package/dist/esm/calcite-modal.entry.js +5 -2
  130. package/dist/esm/calcite-notice.entry.js +8 -0
  131. package/dist/esm/calcite-panel.entry.js +18 -12
  132. package/dist/esm/calcite-pick-list_3.entry.js +23 -0
  133. package/dist/esm/calcite-shell_3.entry.js +35 -7
  134. package/dist/esm/calcite-tile.entry.js +13 -0
  135. package/dist/esm/calcite-tip_3.entry.js +13 -1
  136. package/dist/esm/calcite-tree_2.entry.js +6 -0
  137. package/dist/esm/calcite-value-list_2.entry.js +12 -0
  138. package/dist/esm/calcite.js +1 -1
  139. package/dist/esm/conditionalSlot-0c4ea23a.js +40 -0
  140. package/dist/esm/loader.js +1 -1
  141. package/dist/esm-es5/calcite-action-bar.entry.js +2 -2
  142. package/dist/esm-es5/calcite-action-group.entry.js +1 -1
  143. package/dist/esm-es5/calcite-action-menu.entry.js +2 -2
  144. package/dist/esm-es5/calcite-action-pad.entry.js +2 -2
  145. package/dist/esm-es5/calcite-alert.entry.js +1 -1
  146. package/dist/esm-es5/calcite-block_2.entry.js +1 -1
  147. package/dist/esm-es5/calcite-chip.entry.js +2 -2
  148. package/dist/esm-es5/calcite-combobox_3.entry.js +2 -2
  149. package/dist/esm-es5/calcite-input.entry.js +1 -1
  150. package/dist/esm-es5/calcite-link.entry.js +2 -2
  151. package/dist/esm-es5/calcite-list_3.entry.js +1 -1
  152. package/dist/esm-es5/calcite-modal.entry.js +1 -1
  153. package/dist/esm-es5/calcite-notice.entry.js +2 -2
  154. package/dist/esm-es5/calcite-panel.entry.js +2 -2
  155. package/dist/esm-es5/calcite-pick-list_3.entry.js +1 -1
  156. package/dist/esm-es5/calcite-shell_3.entry.js +1 -1
  157. package/dist/esm-es5/calcite-tile.entry.js +1 -1
  158. package/dist/esm-es5/calcite-tip_3.entry.js +1 -1
  159. package/dist/esm-es5/calcite-tree_2.entry.js +1 -1
  160. package/dist/esm-es5/calcite-value-list_2.entry.js +1 -1
  161. package/dist/esm-es5/calcite.js +1 -1
  162. package/dist/esm-es5/conditionalSlot-0c4ea23a.js +5 -0
  163. package/dist/esm-es5/loader.js +1 -1
  164. package/dist/extras/docs-json.json +43 -1
  165. package/dist/types/components/calcite-action-group/calcite-action-group.d.ts +4 -1
  166. package/dist/types/components/calcite-action-menu/calcite-action-menu.d.ts +2 -1
  167. package/dist/types/components/calcite-action-pad/calcite-action-pad.d.ts +4 -1
  168. package/dist/types/components/calcite-alert/calcite-alert.d.ts +2 -0
  169. package/dist/types/components/calcite-block/calcite-block.d.ts +4 -1
  170. package/dist/types/components/calcite-chip/calcite-chip.d.ts +4 -1
  171. package/dist/types/components/calcite-combobox/calcite-combobox.d.ts +4 -0
  172. package/dist/types/components/calcite-combobox/resources.d.ts +3 -0
  173. package/dist/types/components/calcite-link/calcite-link.d.ts +5 -0
  174. package/dist/types/components/calcite-list-item/calcite-list-item.d.ts +4 -1
  175. package/dist/types/components/calcite-modal/calcite-modal.d.ts +2 -1
  176. package/dist/types/components/calcite-notice/calcite-notice.d.ts +4 -1
  177. package/dist/types/components/calcite-panel/calcite-panel.d.ts +5 -6
  178. package/dist/types/components/calcite-pick-list-group/calcite-pick-list-group.d.ts +4 -1
  179. package/dist/types/components/calcite-pick-list-item/calcite-pick-list-item.d.ts +4 -1
  180. package/dist/types/components/calcite-shell/calcite-shell.d.ts +4 -1
  181. package/dist/types/components/calcite-shell-center-row/calcite-shell-center-row.d.ts +4 -1
  182. package/dist/types/components/calcite-shell-panel/calcite-shell-panel.d.ts +3 -1
  183. package/dist/types/components/calcite-tile/calcite-tile.d.ts +4 -1
  184. package/dist/types/components/calcite-tip/calcite-tip.d.ts +4 -1
  185. package/dist/types/components/calcite-tree-item/calcite-tree-item.d.ts +3 -1
  186. package/dist/types/components/calcite-value-list-item/calcite-value-list-item.d.ts +4 -1
  187. package/dist/types/components.d.ts +18 -0
  188. package/hydrate/index.js +301 -109
  189. package/package.json +1 -2
  190. package/dist/calcite/p-0af820bf.entry.js +0 -5
  191. package/dist/calcite/p-0cf878ed.system.entry.js +0 -5
  192. package/dist/calcite/p-1a5dae4a.entry.js +0 -5
  193. package/dist/calcite/p-1b3a66ec.system.entry.js +0 -5
  194. package/dist/calcite/p-1d7a9909.system.entry.js +0 -5
  195. package/dist/calcite/p-253efee4.entry.js +0 -5
  196. package/dist/calcite/p-2618de8a.entry.js +0 -5
  197. package/dist/calcite/p-273cd5ab.entry.js +0 -5
  198. package/dist/calcite/p-28adfebc.entry.js +0 -5
  199. package/dist/calcite/p-2a8938c7.system.entry.js +0 -5
  200. package/dist/calcite/p-2c954eaa.system.entry.js +0 -5
  201. package/dist/calcite/p-37bddb73.system.entry.js +0 -5
  202. package/dist/calcite/p-3ab992ff.system.entry.js +0 -5
  203. package/dist/calcite/p-3b73b785.system.entry.js +0 -5
  204. package/dist/calcite/p-4659df78.entry.js +0 -5
  205. package/dist/calcite/p-54e271c9.system.entry.js +0 -5
  206. package/dist/calcite/p-57558d4b.entry.js +0 -5
  207. package/dist/calcite/p-5df1936f.entry.js +0 -5
  208. package/dist/calcite/p-698167ac.entry.js +0 -5
  209. package/dist/calcite/p-7d355abe.system.entry.js +0 -5
  210. package/dist/calcite/p-85fb7bc0.entry.js +0 -5
  211. package/dist/calcite/p-8d36bc7c.entry.js +0 -5
  212. package/dist/calcite/p-9d81d229.entry.js +0 -5
  213. package/dist/calcite/p-a0043c61.entry.js +0 -5
  214. package/dist/calcite/p-a1f65f6e.entry.js +0 -5
  215. package/dist/calcite/p-a4dec1f6.system.entry.js +0 -5
  216. package/dist/calcite/p-a9c50960.system.entry.js +0 -5
  217. package/dist/calcite/p-aaed1677.entry.js +0 -5
  218. package/dist/calcite/p-ac778725.system.entry.js +0 -5
  219. package/dist/calcite/p-ac8cf248.entry.js +0 -5
  220. package/dist/calcite/p-b4d3f1c1.entry.js +0 -5
  221. package/dist/calcite/p-c0ed9eff.entry.js +0 -5
  222. package/dist/calcite/p-cb9cd28c.system.entry.js +0 -5
  223. package/dist/calcite/p-d578e568.system.entry.js +0 -5
  224. package/dist/calcite/p-e564004a.system.entry.js +0 -5
  225. package/dist/calcite/p-f6fc151d.system.entry.js +0 -5
  226. package/dist/calcite/p-f73124d0.entry.js +0 -5
@@ -5,6 +5,7 @@
5
5
  import { HTMLElement, createEvent, h, Host, proxyCustomElement } from '@stencil/core/internal/client';
6
6
  import { t as toggleChildActionText, C as CalciteExpandToggle } from './CalciteExpandToggle.js';
7
7
  import { f as focusElement, b as getSlotted } from './dom.js';
8
+ import { c as connectConditionalSlotComponent, d as disconnectConditionalSlotComponent } from './conditionalSlot.js';
8
9
  import { d as defineCustomElement$8 } from './calcite-action2.js';
9
10
  import { d as defineCustomElement$7 } from './calcite-action-group2.js';
10
11
  import { d as defineCustomElement$6 } from './calcite-action-menu2.js';
@@ -88,6 +89,12 @@ let CalciteActionPad$1 = class extends HTMLElement {
88
89
  // Lifecycle
89
90
  //
90
91
  // --------------------------------------------------------------------------
92
+ connectedCallback() {
93
+ connectConditionalSlotComponent(this);
94
+ }
95
+ disconnectedCallback() {
96
+ disconnectConditionalSlotComponent(this);
97
+ }
91
98
  componentWillLoad() {
92
99
  const { el, expandDisabled, expanded } = this;
93
100
  if (!expandDisabled) {
@@ -67,6 +67,7 @@ let CalciteAlert$1 = class extends HTMLElement {
67
67
  this.queued = false;
68
68
  this.autoDismissTimeoutId = null;
69
69
  this.trackTimer = Date.now();
70
+ this.activeTransitionProp = "opacity";
70
71
  /** close and emit the closed alert and the queue */
71
72
  this.closeAlert = () => {
72
73
  this.autoDismissTimeoutId = null;
@@ -75,10 +76,19 @@ let CalciteAlert$1 = class extends HTMLElement {
75
76
  this.queue = this.queue.filter((e) => e !== this.el);
76
77
  this.determineActiveAlert();
77
78
  this.calciteAlertSync.emit({ queue: this.queue });
78
- this.calciteAlertClose.emit({
79
- el: this.el,
80
- queue: this.queue
81
- });
79
+ };
80
+ this.transitionEnd = (event) => {
81
+ if (event.propertyName === this.activeTransitionProp) {
82
+ this.active
83
+ ? this.calciteAlertOpen.emit({
84
+ el: this.el,
85
+ queue: this.queue
86
+ })
87
+ : this.calciteAlertClose.emit({
88
+ el: this.el,
89
+ queue: this.queue
90
+ });
91
+ }
82
92
  };
83
93
  }
84
94
  watchActive() {
@@ -129,7 +139,7 @@ let CalciteAlert$1 = class extends HTMLElement {
129
139
  container: true,
130
140
  queued,
131
141
  [placement]: true
132
- } }, requestedIcon ? (h("div", { class: "alert-icon" }, h("calcite-icon", { icon: requestedIcon, scale: this.scale === "l" ? "m" : "s" }))) : null, h("div", { class: "alert-content" }, h("slot", { name: SLOTS.title }), h("slot", { name: SLOTS.message }), h("slot", { name: SLOTS.link })), queueCount, !autoDismiss ? closeButton : null, active && !queued && autoDismiss ? h("div", { class: "alert-dismiss-progress" }) : null)));
142
+ }, onTransitionEnd: this.transitionEnd }, requestedIcon ? (h("div", { class: "alert-icon" }, h("calcite-icon", { icon: requestedIcon, scale: this.scale === "l" ? "m" : "s" }))) : null, h("div", { class: "alert-content" }, h("slot", { name: SLOTS.title }), h("slot", { name: SLOTS.message }), h("slot", { name: SLOTS.link })), queueCount, !autoDismiss ? closeButton : null, active && !queued && autoDismiss ? h("div", { class: "alert-dismiss-progress" }) : null)));
133
143
  }
134
144
  // when an alert is opened or closed, update queue and determine active alert
135
145
  alertSync(event) {
@@ -188,10 +198,6 @@ let CalciteAlert$1 = class extends HTMLElement {
188
198
  openAlert() {
189
199
  window.clearTimeout(this.queueTimeout);
190
200
  this.queueTimeout = window.setTimeout(() => (this.queued = false), 300);
191
- this.calciteAlertOpen.emit({
192
- el: this.el,
193
- queue: this.queue
194
- });
195
201
  }
196
202
  get el() { return this; }
197
203
  static get watchers() { return {
@@ -5,6 +5,7 @@
5
5
  import { HTMLElement, createEvent, h, Host, proxyCustomElement } from '@stencil/core/internal/client';
6
6
  import { b as getSlotted } from './dom.js';
7
7
  import { C as CalciteHeading } from './CalciteHeading.js';
8
+ import { c as connectConditionalSlotComponent, d as disconnectConditionalSlotComponent } from './conditionalSlot.js';
8
9
  import { d as defineCustomElement$9 } from './calcite-action2.js';
9
10
  import { d as defineCustomElement$8 } from './calcite-action-menu2.js';
10
11
  import { d as defineCustomElement$7 } from './calcite-handle2.js';
@@ -105,6 +106,17 @@ let CalciteBlock$1 = class extends HTMLElement {
105
106
  }
106
107
  // --------------------------------------------------------------------------
107
108
  //
109
+ // Lifecycle
110
+ //
111
+ // --------------------------------------------------------------------------
112
+ connectedCallback() {
113
+ connectConditionalSlotComponent(this);
114
+ }
115
+ disconnectedCallback() {
116
+ disconnectConditionalSlotComponent(this);
117
+ }
118
+ // --------------------------------------------------------------------------
119
+ //
108
120
  // Render Methods
109
121
  //
110
122
  // --------------------------------------------------------------------------
@@ -118,7 +130,7 @@ let CalciteBlock$1 = class extends HTMLElement {
118
130
  const showingLoadingStatus = this.loading && !this.open;
119
131
  const statusIcon = showingLoadingStatus ? ICONS.refresh : ICONS[status];
120
132
  const hasIcon = getSlotted(el, SLOTS.icon) || statusIcon;
121
- const iconEl = !statusIcon ? (h("slot", { name: SLOTS.icon })) : (h("calcite-icon", { class: {
133
+ const iconEl = !statusIcon ? (h("slot", { key: "icon-slot", name: SLOTS.icon })) : (h("calcite-icon", { class: {
122
134
  [CSS.statusIcon]: true,
123
135
  [CSS.valid]: status == "valid",
124
136
  [CSS.invalid]: status == "invalid",
@@ -5,6 +5,7 @@
5
5
  import { HTMLElement, createEvent, h, proxyCustomElement } from '@stencil/core/internal/client';
6
6
  import { b as getSlotted } from './dom.js';
7
7
  import { g as guid } from './guid.js';
8
+ import { c as connectConditionalSlotComponent, d as disconnectConditionalSlotComponent } from './conditionalSlot.js';
8
9
  import { d as defineCustomElement$1 } from './calcite-icon2.js';
9
10
 
10
11
  const CSS = {
@@ -61,6 +62,17 @@ let CalciteChip = class extends HTMLElement {
61
62
  };
62
63
  this.guid = guid();
63
64
  }
65
+ // --------------------------------------------------------------------------
66
+ //
67
+ // Lifecycle
68
+ //
69
+ // --------------------------------------------------------------------------
70
+ connectedCallback() {
71
+ connectConditionalSlotComponent(this);
72
+ }
73
+ disconnectedCallback() {
74
+ disconnectConditionalSlotComponent(this);
75
+ }
64
76
  //--------------------------------------------------------------------------
65
77
  //
66
78
  // Public Methods
@@ -79,7 +91,7 @@ let CalciteChip = class extends HTMLElement {
79
91
  renderChipImage() {
80
92
  const { el } = this;
81
93
  const hasChipImage = getSlotted(el, SLOTS.image);
82
- return hasChipImage ? (h("div", { class: CSS.chipImageContainer }, h("slot", { name: SLOTS.image }))) : null;
94
+ return hasChipImage ? (h("div", { class: CSS.chipImageContainer, key: "image" }, h("slot", { name: SLOTS.image }))) : null;
83
95
  }
84
96
  render() {
85
97
  const iconEl = (h("calcite-icon", { class: CSS.calciteChipIcon, flipRtl: this.iconFlipRtl, icon: this.icon, scale: "s" }));
@@ -7,7 +7,7 @@ import { a as isSymbol, S as Symbol, d as debounce } from './debounce.js';
7
7
  import { i as isArray, f as forIn } from './forIn.js';
8
8
  import { u as updatePopper, c as createPopper, C as CSS } from './popper.js';
9
9
  import { g as guid } from './guid.js';
10
- import { C as ComboboxChildSelector, g as getItemAncestors, a as getItemChildren, h as hasActiveChildren, b as ComboboxItem, c as ComboboxItemGroup, d as ComboboxDefaultPlacement } from './utils2.js';
10
+ import { T as TEXT, C as ComboboxChildSelector, g as getItemAncestors, a as getItemChildren, h as hasActiveChildren, b as ComboboxItem, c as ComboboxItemGroup, d as ComboboxDefaultPlacement } from './utils2.js';
11
11
  import { c as connectLabel, d as disconnectLabel, g as getLabelText } from './label.js';
12
12
  import { c as connectForm, a as afterConnectDefaultValueSet, d as disconnectForm, H as HiddenFormInputSlot } from './form.js';
13
13
  import { c as createObserver } from './observers.js';
@@ -156,6 +156,11 @@ const filter = (data, value) => {
156
156
  const calciteComboboxCss = "@-webkit-keyframes in{0%{opacity:0}100%{opacity:1}}@keyframes in{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-down{0%{opacity:0;-webkit-transform:translate3D(0, -5px, 0);transform:translate3D(0, -5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@keyframes in-up{0%{opacity:0;-webkit-transform:translate3D(0, 5px, 0);transform:translate3D(0, 5px, 0)}100%{opacity:1;-webkit-transform:translate3D(0, 0, 0);transform:translate3D(0, 0, 0)}}@-webkit-keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}@keyframes in-scale{0%{opacity:0;-webkit-transform:scale3D(0.95, 0.95, 1);transform:scale3D(0.95, 0.95, 1)}100%{opacity:1;-webkit-transform:scale3D(1, 1, 1);transform:scale3D(1, 1, 1)}}:root{--calcite-animation-timing:calc(150ms * var(--calcite-internal-duration-factor));--calcite-internal-duration-factor:var(--calcite-duration-factor, 1);--calcite-internal-animation-timing-fast:calc(100ms * var(--calcite-internal-duration-factor));--calcite-internal-animation-timing-medium:calc(200ms * var(--calcite-internal-duration-factor));--calcite-internal-animation-timing-slow:calc(300ms * var(--calcite-internal-duration-factor))}.calcite-animate{opacity:0;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:var(--calcite-animation-timing);animation-duration:var(--calcite-animation-timing)}.calcite-animate__in{-webkit-animation-name:in;animation-name:in}.calcite-animate__in-down{-webkit-animation-name:in-down;animation-name:in-down}.calcite-animate__in-up{-webkit-animation-name:in-up;animation-name:in-up}.calcite-animate__in-scale{-webkit-animation-name:in-scale;animation-name:in-scale}:root{--calcite-popper-transition:var(--calcite-animation-timing)}:host([hidden]){display:none}:host{position:relative;display:block}:host([disabled]){pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5}:host([scale=s]){font-size:var(--calcite-font-size--2);--calcite-combobox-item-spacing-unit-l:0.5rem;--calcite-combobox-item-spacing-unit-s:0.25rem;--calcite-combobox-input-height:1.5rem}:host([scale=m]){font-size:var(--calcite-font-size--1);--calcite-combobox-item-spacing-unit-l:0.75rem;--calcite-combobox-item-spacing-unit-s:0.5rem;--calcite-combobox-input-height:2rem}:host([scale=l]){font-size:var(--calcite-font-size-0);--calcite-combobox-item-spacing-unit-l:1rem;--calcite-combobox-item-spacing-unit-s:0.75rem;--calcite-combobox-input-height:2.75rem}.wrapper{display:-ms-flexbox;display:flex;background-color:var(--calcite-ui-foreground-1);color:var(--calcite-ui-text-1);outline-offset:0;outline-color:transparent;-webkit-transition:outline-offset 100ms ease-in-out, outline-color 100ms ease-in-out;transition:outline-offset 100ms ease-in-out, outline-color 100ms ease-in-out;-webkit-box-shadow:inset 0 0 0 1px var(--calcite-ui-border-input);box-shadow:inset 0 0 0 1px var(--calcite-ui-border-input);padding:0 var(--calcite-combobox-item-spacing-unit-l) 0 var(--calcite-combobox-item-spacing-unit-l)}:host(:focus-within) .wrapper,.wrapper--active{outline:2px solid var(--calcite-ui-brand);outline-offset:-2px}.wrapper--single{padding:0 var(--calcite-combobox-item-spacing-unit-l);cursor:pointer;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.grid-input{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0px}.input{-ms-flex-positive:1;flex-grow:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-style:none;background-color:transparent;padding:0px;font-family:inherit;color:var(--calcite-ui-text-1);font-size:inherit;height:var(--calcite-combobox-input-height);line-height:var(--calcite-combobox-input-height);min-width:120px;margin-bottom:var(--calcite-combobox-item-spacing-unit-s)}.input:focus{outline:2px solid transparent;outline-offset:2px}.input--transparent{opacity:0}.input--single{margin-bottom:0px;margin-top:0px;padding:0px}.wrapper--active .input-single{cursor:text}.input--hidden{pointer-events:none;width:0px;min-width:0px;opacity:0}.input--icon{padding:0 var(--calcite-combobox-item-spacing-unit-l)}.input-wrap{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1}.input-wrap--single{-ms-flex:1 1 auto;flex:1 1 auto;overflow:hidden}.label{pointer-events:none;display:-ms-flexbox;display:flex;max-width:100%;-ms-flex:1 1 auto;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0px;font-weight:var(--calcite-font-weight-normal);height:var(--calcite-combobox-input-height);line-height:var(--calcite-combobox-input-height)}.label--spaced{padding-top:0px;padding-bottom:0px;padding-left:var(--calcite-combobox-item-spacing-unit-l);padding-right:var(--calcite-combobox-item-spacing-unit-l)}.icon-end,.icon-start{display:-ms-flexbox;display:flex;width:1rem;cursor:pointer;-ms-flex-align:center;align-items:center}.icon-end{-ms-flex:none;flex:none}.popper-container{width:100%;display:block;position:absolute;z-index:900;-webkit-transform:scale(0);transform:scale(0);visibility:hidden;pointer-events:none}.popper-container .calcite-popper-anim{position:relative;z-index:1;-webkit-transition:var(--calcite-popper-transition);transition:var(--calcite-popper-transition);visibility:hidden;-webkit-transition-property:visibility, opacity, -webkit-transform;transition-property:visibility, opacity, -webkit-transform;transition-property:transform, visibility, opacity;transition-property:transform, visibility, opacity, -webkit-transform;opacity:0;-webkit-box-shadow:0 0 16px 0 rgba(0, 0, 0, 0.16);box-shadow:0 0 16px 0 rgba(0, 0, 0, 0.16);border-radius:0.25rem}.popper-container[data-popper-placement^=bottom] .calcite-popper-anim{-webkit-transform:translateY(-5px);transform:translateY(-5px)}.popper-container[data-popper-placement^=top] .calcite-popper-anim{-webkit-transform:translateY(5px);transform:translateY(5px)}.popper-container[data-popper-placement^=left] .calcite-popper-anim{-webkit-transform:translateX(5px);transform:translateX(5px)}.popper-container[data-popper-placement^=right] .calcite-popper-anim{-webkit-transform:translateX(-5px);transform:translateX(-5px)}.popper-container[data-popper-placement] .calcite-popper-anim--active{opacity:1;visibility:visible;-webkit-transform:translate(0);transform:translate(0)}.popper-container--active{pointer-events:initial;visibility:visible}.screen-readers-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}.list-container{max-height:100vh;overflow-y:auto;background-color:var(--calcite-ui-foreground-1);width:var(--calcite-dropdown-width)}.list{margin:0px;display:block;padding:0px}.list--hide{height:0px;overflow:hidden}.chip{margin-block:calc(var(--calcite-combobox-item-spacing-unit-s) / 2) 0;margin-inline:0 var(--calcite-combobox-item-spacing-unit-s);max-width:100%}.chip--active{background-color:var(--calcite-ui-foreground-3)}.chip:last-of-type{-webkit-margin-end:0;margin-inline-end:0}.item{display:block}::slotted(input[slot=hidden-form-input]){bottom:0 !important;left:0 !important;margin:0 !important;opacity:0 !important;outline:none !important;padding:0 !important;position:absolute !important;right:0 !important;top:0 !important;-webkit-transform:none !important;transform:none !important;-webkit-appearance:none !important;z-index:-1 !important}";
157
157
 
158
158
  const isGroup = (el) => el.tagName === ComboboxItemGroup;
159
+ const itemUidPrefix = "combobox-item-";
160
+ const chipUidPrefix = "combobox-chip-";
161
+ const labelUidPrefix = "combobox-label-";
162
+ const listboxUidPrefix = "combobox-listbox-";
163
+ const inputUidPrefix = "combobox-input-";
159
164
  let CalciteCombobox$1 = class extends HTMLElement {
160
165
  constructor() {
161
166
  super();
@@ -196,6 +201,10 @@ let CalciteCombobox$1 = class extends HTMLElement {
196
201
  this.scale = "m";
197
202
  /** The value(s) of the selectedItem(s) */
198
203
  this.value = null;
204
+ /** string to override the English "Remove tag" text for when an item is selected.
205
+ * @default "Remove tag"
206
+ */
207
+ this.intlRemoveTag = TEXT.removeTag;
199
208
  //--------------------------------------------------------------------------
200
209
  //
201
210
  // Private State/Props
@@ -705,7 +714,7 @@ let CalciteCombobox$1 = class extends HTMLElement {
705
714
  const item = document.createElement(ComboboxItem);
706
715
  item.value = value;
707
716
  item.textLabel = value;
708
- item.guid = guid();
717
+ item.guid = `${chipUidPrefix}${guid()}`;
709
718
  item.selected = true;
710
719
  this.el.appendChild(item);
711
720
  this.resetText();
@@ -755,7 +764,7 @@ let CalciteCombobox$1 = class extends HTMLElement {
755
764
  focusChip() {
756
765
  var _a;
757
766
  const guid = (_a = this.selectedItems[this.activeChipIndex]) === null || _a === void 0 ? void 0 : _a.guid;
758
- const chip = this.referenceEl.querySelector(`#chip-${guid}`);
767
+ const chip = this.referenceEl.querySelector(`#${chipUidPrefix}${guid}`);
759
768
  chip === null || chip === void 0 ? void 0 : chip.setFocus();
760
769
  }
761
770
  shiftActiveItemIndex(delta) {
@@ -801,7 +810,7 @@ let CalciteCombobox$1 = class extends HTMLElement {
801
810
  //
802
811
  //--------------------------------------------------------------------------
803
812
  renderChips() {
804
- const { activeChipIndex, scale, selectionMode } = this;
813
+ const { activeChipIndex, scale, selectionMode, intlRemoveTag } = this;
805
814
  return this.selectedItems.map((item, i) => {
806
815
  const chipClasses = {
807
816
  chip: true,
@@ -810,11 +819,11 @@ let CalciteCombobox$1 = class extends HTMLElement {
810
819
  const ancestors = [...getItemAncestors(item)].reverse();
811
820
  const pathLabel = [...ancestors, item].map((el) => el.textLabel);
812
821
  const label = selectionMode !== "ancestors" ? item.textLabel : pathLabel.join(" / ");
813
- return (h("calcite-chip", { "aria-label": label, class: chipClasses, dismissLabel: "remove tag", dismissible: true, icon: item.icon, id: `chip-${item.guid}`, key: item.textLabel, onCalciteChipDismiss: (event) => this.calciteChipDismissHandler(event, item), scale: scale, title: label, value: item.value }, label));
822
+ return (h("calcite-chip", { class: chipClasses, dismissLabel: intlRemoveTag, dismissible: true, icon: item.icon, id: `${chipUidPrefix}${item.guid}`, key: item.textLabel, onCalciteChipDismiss: (event) => this.calciteChipDismissHandler(event, item), scale: scale, title: label, value: item.value }, label));
814
823
  });
815
824
  }
816
825
  renderInput() {
817
- const { active, disabled, placeholder, selectionMode, needsIcon, selectedItems } = this;
826
+ const { guid, active, disabled, placeholder, selectionMode, needsIcon, selectedItems } = this;
818
827
  const single = selectionMode === "single";
819
828
  const selectedItem = selectedItems[0];
820
829
  const showLabel = !active && single && !!selectedItem;
@@ -824,16 +833,16 @@ let CalciteCombobox$1 = class extends HTMLElement {
824
833
  } }, showLabel && (h("span", { class: {
825
834
  label: true,
826
835
  "label--spaced": needsIcon
827
- }, key: "label", onFocus: this.comboboxFocusHandler, tabindex: "0" }, selectedItem.textLabel)), h("input", { "aria-activedescendant": this.activeDescendant, "aria-autocomplete": "list", "aria-controls": guid, "aria-label": getLabelText(this), class: {
836
+ }, key: "label", onFocus: this.comboboxFocusHandler, tabindex: "0" }, selectedItem.textLabel)), h("input", { "aria-activedescendant": this.activeDescendant, "aria-autocomplete": "list", "aria-controls": `${listboxUidPrefix}${guid}`, "aria-label": getLabelText(this), class: {
828
837
  input: true,
829
838
  "input--single": true,
830
839
  "input--transparent": this.activeChipIndex > -1,
831
840
  "input--hidden": showLabel,
832
841
  "input--icon": single && needsIcon
833
- }, disabled: disabled, id: `${guid}-input`, key: "input", onBlur: this.comboboxBlurHandler, onFocus: this.comboboxFocusHandler, onInput: this.inputHandler, placeholder: placeholder, ref: (el) => (this.textInput = el), type: "text" })));
842
+ }, disabled: disabled, id: `${inputUidPrefix}${guid}`, key: "input", onBlur: this.comboboxBlurHandler, onFocus: this.comboboxFocusHandler, onInput: this.inputHandler, placeholder: placeholder, ref: (el) => (this.textInput = el), type: "text" })));
834
843
  }
835
844
  renderListBoxOptions() {
836
- return this.visibleItems.map((item) => (h("li", { "aria-selected": (!!item.selected).toString(), id: item.guid, role: "option", tabindex: "-1" }, item.textLabel)));
845
+ return this.visibleItems.map((item) => (h("li", { "aria-selected": (!!item.selected).toString(), id: `${itemUidPrefix}${item.guid}`, role: "option", tabindex: "-1" }, item.textLabel)));
837
846
  }
838
847
  renderPopperContainer() {
839
848
  const { active, maxScrollerHeight, setMenuEl, setListContainerEl, hideList, open } = this;
@@ -859,12 +868,11 @@ let CalciteCombobox$1 = class extends HTMLElement {
859
868
  render() {
860
869
  const { guid, open, label } = this;
861
870
  const single = this.selectionMode === "single";
862
- const labelId = `${guid}-label`;
863
- return (h(Host, { onKeyDown: this.keydownHandler }, h("div", { "aria-autocomplete": "list", "aria-expanded": open.toString(), "aria-haspopup": "listbox", "aria-labelledby": labelId, "aria-owns": guid, class: {
871
+ return (h(Host, { onKeyDown: this.keydownHandler }, h("div", { "aria-autocomplete": "list", "aria-expanded": open.toString(), "aria-haspopup": "listbox", "aria-labelledby": `${labelUidPrefix}${guid}`, "aria-owns": `${listboxUidPrefix}${guid}`, class: {
864
872
  wrapper: true,
865
873
  "wrapper--single": single || !this.selectedItems.length,
866
874
  "wrapper--active": open
867
- }, onClick: this.setFocusClick, ref: this.setReferenceEl, role: "combobox" }, h("div", { class: "grid-input" }, this.renderIconStart(), !single && this.renderChips(), h("label", { class: "screen-readers-only", htmlFor: `${guid}-input`, id: labelId }, label), this.renderInput()), this.renderIconEnd()), h("ul", { "aria-labelledby": labelId, "aria-multiselectable": "true", class: "screen-readers-only", id: guid, role: "listbox", tabIndex: -1 }, this.renderListBoxOptions()), this.renderPopperContainer(), h(HiddenFormInputSlot, { component: this })));
875
+ }, onClick: this.setFocusClick, ref: this.setReferenceEl, role: "combobox" }, h("div", { class: "grid-input" }, this.renderIconStart(), !single && this.renderChips(), h("label", { class: "screen-readers-only", htmlFor: `${inputUidPrefix}${guid}`, id: `${labelUidPrefix}${guid}` }, label), this.renderInput()), this.renderIconEnd()), h("ul", { "aria-labelledby": `${labelUidPrefix}${guid}`, "aria-multiselectable": "true", class: "screen-readers-only", id: `${listboxUidPrefix}${guid}`, role: "listbox", tabIndex: -1 }, this.renderListBoxOptions()), this.renderPopperContainer(), h(HiddenFormInputSlot, { component: this })));
868
876
  }
869
877
  get el() { return this; }
870
878
  static get watchers() { return {
@@ -889,6 +897,7 @@ CalciteCombobox$1 = /*@__PURE__*/ proxyCustomElement(CalciteCombobox$1, [1, "cal
889
897
  "selectionMode": [513, "selection-mode"],
890
898
  "scale": [513],
891
899
  "value": [1025],
900
+ "intlRemoveTag": [1, "intl-remove-tag"],
892
901
  "items": [32],
893
902
  "groupItems": [32],
894
903
  "selectedItems": [32],
@@ -249,6 +249,9 @@ let CalciteInput = class extends HTMLElement {
249
249
  const inputMin = this.minString ? parseFloat(this.minString) : null;
250
250
  const valueNudgeDelayInMs = 100;
251
251
  this.incrementOrDecrementNumberValue(direction, inputMax, inputMin, nativeEvent);
252
+ if (this.nudgeNumberValueIntervalId) {
253
+ window.clearInterval(this.nudgeNumberValueIntervalId);
254
+ }
252
255
  let firstValueNudge = true;
253
256
  this.nudgeNumberValueIntervalId = window.setInterval(() => {
254
257
  if (firstValueNudge) {
@@ -20,6 +20,11 @@ let CalciteLink = class extends HTMLElement {
20
20
  //--------------------------------------------------------------------------
21
21
  /** is the link disabled */
22
22
  this.disabled = false;
23
+ /** Prompts the user to save the linked URL instead of navigating to it. Can be used with or without a value:
24
+ * Without a value, the browser will suggest a filename/extension
25
+ * See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-download
26
+ */
27
+ this.download = false;
23
28
  /** the node type of the rendered child element */
24
29
  this.childElType = "span";
25
30
  //--------------------------------------------------------------------------
@@ -43,13 +48,19 @@ let CalciteLink = class extends HTMLElement {
43
48
  this.childElType = this.href ? "a" : "span";
44
49
  }
45
50
  render() {
46
- const dir = getElementDir(this.el);
51
+ const { download, el } = this;
52
+ const dir = getElementDir(el);
47
53
  const iconStartEl = (h("calcite-icon", { class: "calcite-link--icon icon-start", flipRtl: this.iconFlipRtl === "start" || this.iconFlipRtl === "both", icon: this.iconStart, scale: "s" }));
48
54
  const iconEndEl = (h("calcite-icon", { class: "calcite-link--icon icon-end", flipRtl: this.iconFlipRtl === "end" || this.iconFlipRtl === "both", icon: this.iconEnd, scale: "s" }));
49
55
  const Tag = this.childElType;
50
56
  const role = this.childElType === "span" ? "link" : null;
51
57
  const tabIndex = this.disabled ? -1 : this.childElType === "span" ? 0 : null;
52
- return (h(Host, { role: "presentation" }, h(Tag, { class: { [CSS_UTILITY.rtl]: dir === "rtl" }, href: Tag === "a" && this.href, ref: this.storeTagRef, rel: Tag === "a" && this.rel, role: role, tabIndex: tabIndex, target: Tag === "a" && this.target }, this.iconStart ? iconStartEl : null, h("slot", null), this.iconEnd ? iconEndEl : null)));
58
+ return (h(Host, { role: "presentation" }, h(Tag, { class: { [CSS_UTILITY.rtl]: dir === "rtl" },
59
+ /*
60
+ When the 'download' property of type 'boolean | string' is set to true, the value is "".
61
+ This works around that issue for now.
62
+ */
63
+ download: Tag === "a" && (download === "" || download) ? download : null, href: Tag === "a" && this.href, ref: this.storeTagRef, rel: Tag === "a" && this.rel, role: role, tabIndex: tabIndex, target: Tag === "a" && this.target }, this.iconStart ? iconStartEl : null, h("slot", null), this.iconEnd ? iconEndEl : null)));
53
64
  }
54
65
  //--------------------------------------------------------------------------
55
66
  //
@@ -68,6 +79,7 @@ let CalciteLink = class extends HTMLElement {
68
79
  };
69
80
  CalciteLink = /*@__PURE__*/ proxyCustomElement(CalciteLink, [1, "calcite-link", {
70
81
  "disabled": [516],
82
+ "download": [520],
71
83
  "href": [513],
72
84
  "iconEnd": [513, "icon-end"],
73
85
  "iconFlipRtl": [513, "icon-flip-rtl"],
@@ -4,6 +4,7 @@
4
4
  */
5
5
  import { HTMLElement, h, Host, proxyCustomElement } from '@stencil/core/internal/client';
6
6
  import { b as getSlotted } from './dom.js';
7
+ import { c as connectConditionalSlotComponent, d as disconnectConditionalSlotComponent } from './conditionalSlot.js';
7
8
 
8
9
  const CSS = {
9
10
  container: "container",
@@ -48,6 +49,17 @@ let CalciteListItem$1 = class extends HTMLElement {
48
49
  }
49
50
  // --------------------------------------------------------------------------
50
51
  //
52
+ // Lifecycle
53
+ //
54
+ // --------------------------------------------------------------------------
55
+ connectedCallback() {
56
+ connectConditionalSlotComponent(this);
57
+ }
58
+ disconnectedCallback() {
59
+ disconnectConditionalSlotComponent(this);
60
+ }
61
+ // --------------------------------------------------------------------------
62
+ //
51
63
  // Public Methods
52
64
  //
53
65
  // --------------------------------------------------------------------------
@@ -5,6 +5,7 @@
5
5
  import { HTMLElement, createEvent, h, Host, proxyCustomElement } from '@stencil/core/internal/client';
6
6
  import { f as focusElement, b as getSlotted, h as ensureId, i as isCalciteFocusable } from './dom.js';
7
7
  import { c as createObserver } from './observers.js';
8
+ import { c as connectConditionalSlotComponent, d as disconnectConditionalSlotComponent } from './conditionalSlot.js';
8
9
  import { d as defineCustomElement$4 } from './calcite-icon2.js';
9
10
  import { d as defineCustomElement$3 } from './calcite-loader2.js';
10
11
  import { d as defineCustomElement$2 } from './calcite-scrim2.js';
@@ -244,11 +245,13 @@ let CalciteModal$1 = class extends HTMLElement {
244
245
  var _a;
245
246
  (_a = this.mutationObserver) === null || _a === void 0 ? void 0 : _a.observe(this.el, { childList: true, subtree: true });
246
247
  this.updateFooterVisibility();
248
+ connectConditionalSlotComponent(this);
247
249
  }
248
250
  disconnectedCallback() {
249
251
  var _a;
250
252
  this.removeOverflowHiddenClass();
251
253
  (_a = this.mutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
254
+ disconnectConditionalSlotComponent(this);
252
255
  }
253
256
  render() {
254
257
  return (h(Host, { "aria-describedby": this.contentId, "aria-labelledby": this.titleId, "aria-modal": "true", role: "dialog" }, h("calcite-scrim", { class: CSS.scrim, onClick: this.handleOutsideClose }), this.renderStyle(), h("div", { class: "modal", onTransitionEnd: this.transitionEnd }, h("div", { "data-focus-fence": true, onFocus: this.focusLastElement, tabindex: "0" }), h("div", { class: CSS.header }, this.renderCloseButton(), h("header", { class: CSS.title }, h("slot", { name: CSS.header }))), h("div", { class: {
@@ -258,10 +261,10 @@ let CalciteModal$1 = class extends HTMLElement {
258
261
  }, ref: (el) => (this.modalContent = el) }, h("slot", { name: SLOTS.content })), this.renderFooter(), h("div", { "data-focus-fence": true, onFocus: this.focusFirstElement, tabindex: "0" }))));
259
262
  }
260
263
  renderFooter() {
261
- return this.hasFooter ? (h("div", { class: CSS.footer }, h("span", { class: CSS.back }, h("slot", { name: SLOTS.back })), h("span", { class: CSS.secondary }, h("slot", { name: SLOTS.secondary })), h("span", { class: CSS.primary }, h("slot", { name: SLOTS.primary })))) : null;
264
+ return this.hasFooter ? (h("div", { class: CSS.footer, key: "footer" }, h("span", { class: CSS.back }, h("slot", { name: SLOTS.back })), h("span", { class: CSS.secondary }, h("slot", { name: SLOTS.secondary })), h("span", { class: CSS.primary }, h("slot", { name: SLOTS.primary })))) : null;
262
265
  }
263
266
  renderCloseButton() {
264
- return !this.disableCloseButton ? (h("button", { "aria-label": this.intlClose, class: CSS.close, onClick: this.close, ref: (el) => (this.closeButtonEl = el), title: this.intlClose }, h("calcite-icon", { icon: ICONS.close, scale: this.scale === "s" ? "s" : this.scale === "m" ? "m" : this.scale === "l" ? "l" : null }))) : null;
267
+ return !this.disableCloseButton ? (h("button", { "aria-label": this.intlClose, class: CSS.close, key: "button", onClick: this.close, ref: (el) => (this.closeButtonEl = el), title: this.intlClose }, h("calcite-icon", { icon: ICONS.close, scale: this.scale === "s" ? "s" : this.scale === "m" ? "m" : this.scale === "l" ? "l" : null }))) : null;
265
268
  }
266
269
  renderStyle() {
267
270
  const hasCustomWidth = !isNaN(parseInt(`${this.width}`));
@@ -5,6 +5,7 @@
5
5
  import { HTMLElement, createEvent, h, proxyCustomElement } from '@stencil/core/internal/client';
6
6
  import { S as StatusIcons } from './interfaces.js';
7
7
  import { s as setRequestedIcon, b as getSlotted } from './dom.js';
8
+ import { c as connectConditionalSlotComponent, d as disconnectConditionalSlotComponent } from './conditionalSlot.js';
8
9
  import { d as defineCustomElement$2 } from './calcite-icon2.js';
9
10
 
10
11
  const TEXT = {
@@ -70,6 +71,12 @@ let CalciteNotice$1 = class extends HTMLElement {
70
71
  // Lifecycle
71
72
  //
72
73
  //--------------------------------------------------------------------------
74
+ connectedCallback() {
75
+ connectConditionalSlotComponent(this);
76
+ }
77
+ disconnectedCallback() {
78
+ disconnectConditionalSlotComponent(this);
79
+ }
73
80
  componentWillLoad() {
74
81
  this.requestedIcon = setRequestedIcon(StatusIcons, this.icon, this.color);
75
82
  }
@@ -6,6 +6,7 @@ import { HTMLElement, createEvent, h, Fragment, proxyCustomElement } from '@sten
6
6
  import { a as getElementDir, b as getSlotted } from './dom.js';
7
7
  import { C as CalciteHeading } from './CalciteHeading.js';
8
8
  import { S as SLOTS$1, d as defineCustomElement$7 } from './calcite-action-menu2.js';
9
+ import { c as connectConditionalSlotComponent, d as disconnectConditionalSlotComponent } from './conditionalSlot.js';
9
10
  import { d as defineCustomElement$8 } from './calcite-action2.js';
10
11
  import { d as defineCustomElement$6 } from './calcite-icon2.js';
11
12
  import { d as defineCustomElement$5 } from './calcite-loader2.js';
@@ -129,6 +130,17 @@ let CalcitePanel$1 = class extends HTMLElement {
129
130
  }
130
131
  // --------------------------------------------------------------------------
131
132
  //
133
+ // Lifecycle
134
+ //
135
+ // --------------------------------------------------------------------------
136
+ connectedCallback() {
137
+ connectConditionalSlotComponent(this);
138
+ }
139
+ disconnectedCallback() {
140
+ disconnectConditionalSlotComponent(this);
141
+ }
142
+ // --------------------------------------------------------------------------
143
+ //
132
144
  // Methods
133
145
  //
134
146
  // --------------------------------------------------------------------------
@@ -168,7 +180,7 @@ let CalcitePanel$1 = class extends HTMLElement {
168
180
  * Allows user to override the entire header-content node.
169
181
  */
170
182
  renderHeaderSlottedContent() {
171
- return (h("div", { class: CSS.headerContent, key: "header-content" }, h("slot", { name: SLOTS.headerContent })));
183
+ return (h("div", { class: CSS.headerContent, key: "slotted-header-content" }, h("slot", { name: SLOTS.headerContent })));
172
184
  }
173
185
  renderHeaderStartActions() {
174
186
  const { el } = this;
@@ -186,7 +198,7 @@ let CalcitePanel$1 = class extends HTMLElement {
186
198
  renderMenu() {
187
199
  const { el, intlOptions, menuOpen } = this;
188
200
  const hasMenuItems = getSlotted(el, SLOTS.headerMenuActions);
189
- return hasMenuItems ? (h("calcite-action-menu", { flipPlacements: ["top", "bottom"], label: intlOptions || TEXT.options, open: menuOpen, placement: "bottom-end" }, h("calcite-action", { icon: ICONS.menu, slot: SLOTS$1.trigger, text: intlOptions || TEXT.options }), h("slot", { name: SLOTS.headerMenuActions }))) : null;
201
+ return hasMenuItems ? (h("calcite-action-menu", { flipPlacements: ["top", "bottom"], key: "menu", label: intlOptions || TEXT.options, open: menuOpen, placement: "bottom-end" }, h("calcite-action", { icon: ICONS.menu, slot: SLOTS$1.trigger, text: intlOptions || TEXT.options }), h("slot", { name: SLOTS.headerMenuActions }))) : null;
190
202
  }
191
203
  renderHeaderNode() {
192
204
  const { el, showBackButton } = this;
@@ -204,18 +216,11 @@ let CalcitePanel$1 = class extends HTMLElement {
204
216
  headerMenuNode ||
205
217
  showBackButton ? (h("header", { class: CSS.header }, backButtonNode, actionsNodeStart, headerContentNode, actionsNodeEnd, headerMenuNode)) : null;
206
218
  }
207
- /**
208
- * Allows user to override the entire footer node.
209
- */
210
- renderFooterSlottedContent() {
219
+ renderFooterNode() {
211
220
  const { el } = this;
212
221
  const hasFooterSlottedContent = getSlotted(el, SLOTS.footer);
213
- return hasFooterSlottedContent ? (h("footer", { class: CSS.footer }, h("slot", { name: SLOTS.footer }))) : null;
214
- }
215
- renderFooterActions() {
216
- const { el } = this;
217
222
  const hasFooterActions = getSlotted(el, SLOTS.footerActions);
218
- return hasFooterActions ? (h("footer", { class: CSS.footer }, h("slot", { name: SLOTS.footerActions }))) : null;
223
+ return hasFooterSlottedContent || hasFooterActions ? (h("footer", { class: CSS.footer, key: "footer" }, hasFooterSlottedContent ? h("slot", { key: "footer-slot", name: SLOTS.footer }) : null, hasFooterActions ? h("slot", { key: "footer-actions-slot", name: SLOTS.footerActions }) : null)) : null;
219
224
  }
220
225
  renderContent() {
221
226
  const { el } = this;
@@ -227,7 +232,7 @@ let CalcitePanel$1 = class extends HTMLElement {
227
232
  }
228
233
  render() {
229
234
  const { dismissed, disabled, dismissible, loading, panelKeyDownHandler } = this;
230
- const panelNode = (h("article", { "aria-busy": loading.toString(), class: CSS.container, hidden: dismissible && dismissed, onKeyDown: panelKeyDownHandler, ref: this.setContainerRef, tabIndex: dismissible ? 0 : -1 }, this.renderHeaderNode(), this.renderContent(), this.renderFooterSlottedContent() || this.renderFooterActions()));
235
+ const panelNode = (h("article", { "aria-busy": loading.toString(), class: CSS.container, hidden: dismissible && dismissed, onKeyDown: panelKeyDownHandler, ref: this.setContainerRef, tabIndex: dismissible ? 0 : -1 }, this.renderHeaderNode(), this.renderContent(), this.renderFooterNode()));
231
236
  return (h(Fragment, null, loading || disabled ? h("calcite-scrim", { loading: loading }) : null, panelNode));
232
237
  }
233
238
  get el() { return this; }
@@ -5,6 +5,7 @@
5
5
  import { HTMLElement, h, Fragment, proxyCustomElement } from '@stencil/core/internal/client';
6
6
  import { b as getSlotted } from './dom.js';
7
7
  import { C as CalciteHeading, c as constrainHeadingLevel } from './CalciteHeading.js';
8
+ import { c as connectConditionalSlotComponent, d as disconnectConditionalSlotComponent } from './conditionalSlot.js';
8
9
 
9
10
  const CSS = {
10
11
  heading: "heading",
@@ -26,6 +27,17 @@ let CalcitePickListGroup$1 = class extends HTMLElement {
26
27
  }
27
28
  // --------------------------------------------------------------------------
28
29
  //
30
+ // Lifecycle
31
+ //
32
+ // --------------------------------------------------------------------------
33
+ connectedCallback() {
34
+ connectConditionalSlotComponent(this);
35
+ }
36
+ disconnectedCallback() {
37
+ disconnectConditionalSlotComponent(this);
38
+ }
39
+ // --------------------------------------------------------------------------
40
+ //
29
41
  // Render Methods
30
42
  //
31
43
  // --------------------------------------------------------------------------
@@ -5,6 +5,7 @@
5
5
  import { HTMLElement, createEvent, h, Fragment, proxyCustomElement } from '@stencil/core/internal/client';
6
6
  import { I as ICON_TYPES } from './resources3.js';
7
7
  import { b as getSlotted } from './dom.js';
8
+ import { c as connectConditionalSlotComponent, d as disconnectConditionalSlotComponent } from './conditionalSlot.js';
8
9
  import { d as defineCustomElement$3 } from './calcite-action2.js';
9
10
  import { d as defineCustomElement$2 } from './calcite-icon2.js';
10
11
  import { d as defineCustomElement$1 } from './calcite-loader2.js';
@@ -125,6 +126,17 @@ let CalcitePickListItem = class extends HTMLElement {
125
126
  }
126
127
  // --------------------------------------------------------------------------
127
128
  //
129
+ // Lifecycle
130
+ //
131
+ // --------------------------------------------------------------------------
132
+ connectedCallback() {
133
+ connectConditionalSlotComponent(this);
134
+ }
135
+ disconnectedCallback() {
136
+ disconnectConditionalSlotComponent(this);
137
+ }
138
+ // --------------------------------------------------------------------------
139
+ //
128
140
  // Public Methods
129
141
  //
130
142
  // --------------------------------------------------------------------------
@@ -4,6 +4,7 @@
4
4
  */
5
5
  import { HTMLElement, h, Fragment, proxyCustomElement } from '@stencil/core/internal/client';
6
6
  import { b as getSlotted } from './dom.js';
7
+ import { c as connectConditionalSlotComponent, d as disconnectConditionalSlotComponent } from './conditionalSlot.js';
7
8
 
8
9
  const CSS = {
9
10
  actionBarContainer: "action-bar-container",
@@ -40,6 +41,17 @@ let CalciteShellCenterRow$1 = class extends HTMLElement {
40
41
  }
41
42
  // --------------------------------------------------------------------------
42
43
  //
44
+ // Lifecycle
45
+ //
46
+ // --------------------------------------------------------------------------
47
+ connectedCallback() {
48
+ connectConditionalSlotComponent(this);
49
+ }
50
+ disconnectedCallback() {
51
+ disconnectConditionalSlotComponent(this);
52
+ }
53
+ // --------------------------------------------------------------------------
54
+ //
43
55
  // Render Methods
44
56
  //
45
57
  // --------------------------------------------------------------------------
@@ -47,7 +59,7 @@ let CalciteShellCenterRow$1 = class extends HTMLElement {
47
59
  const { el } = this;
48
60
  const contentNode = (h("div", { class: CSS.content }, h("slot", null)));
49
61
  const actionBar = getSlotted(el, SLOTS.actionBar);
50
- const actionBarNode = actionBar ? (h("div", { class: CSS.actionBarContainer }, h("slot", { name: SLOTS.actionBar }))) : null;
62
+ const actionBarNode = actionBar ? (h("div", { class: CSS.actionBarContainer, key: "action-bar" }, h("slot", { name: SLOTS.actionBar }))) : null;
51
63
  const children = [actionBarNode, contentNode];
52
64
  if ((actionBar === null || actionBar === void 0 ? void 0 : actionBar.position) === "end") {
53
65
  children.reverse();
@@ -5,6 +5,7 @@
5
5
  import { HTMLElement, createEvent, h, forceUpdate, proxyCustomElement } from '@stencil/core/internal/client';
6
6
  import { a as getElementDir, b as getSlotted } from './dom.js';
7
7
  import { c as clamp } from './math.js';
8
+ import { c as connectConditionalSlotComponent, d as disconnectConditionalSlotComponent } from './conditionalSlot.js';
8
9
 
9
10
  const CSS = {
10
11
  container: "container",
@@ -169,7 +170,11 @@ let CalciteShellPanel$1 = class extends HTMLElement {
169
170
  // Lifecycle
170
171
  //
171
172
  //--------------------------------------------------------------------------
173
+ connectedCallback() {
174
+ connectConditionalSlotComponent(this);
175
+ }
172
176
  disconnectedCallback() {
177
+ disconnectConditionalSlotComponent(this);
173
178
  this.disconnectSeparator();
174
179
  }
175
180
  componentDidLoad() {
@@ -183,14 +188,14 @@ let CalciteShellPanel$1 = class extends HTMLElement {
183
188
  renderHeader() {
184
189
  const { el } = this;
185
190
  const hasHeader = getSlotted(el, SLOTS.header);
186
- return hasHeader ? (h("div", { class: CSS.contentHeader }, h("slot", { name: SLOTS.header }))) : null;
191
+ return hasHeader ? (h("div", { class: CSS.contentHeader, key: "header" }, h("slot", { name: SLOTS.header }))) : null;
187
192
  }
188
193
  render() {
189
194
  const { collapsed, detached, position, initialContentWidth, contentWidth, contentWidthMax, contentWidthMin, intlResize, resizable } = this;
190
195
  const allowResizing = !detached && resizable;
191
- const contentNode = (h("div", { class: { [CSS.content]: true, [CSS.contentDetached]: detached }, hidden: collapsed, ref: this.storeContentEl, style: allowResizing && contentWidth ? { width: `${contentWidth}px` } : null }, this.renderHeader(), h("div", { class: CSS.contentBody }, h("slot", null))));
192
- const separatorNode = allowResizing ? (h("div", { "aria-label": intlResize, "aria-orientation": "horizontal", "aria-valuemax": contentWidthMax, "aria-valuemin": contentWidthMin, "aria-valuenow": contentWidth !== null && contentWidth !== void 0 ? contentWidth : initialContentWidth, class: CSS.separator, onKeyDown: this.separatorKeyDown, ref: this.connectSeparator, role: "separator", tabIndex: 0, "touch-action": "none" })) : null;
193
- const actionBarNode = h("slot", { name: SLOTS.actionBar });
196
+ const contentNode = (h("div", { class: { [CSS.content]: true, [CSS.contentDetached]: detached }, hidden: collapsed, key: "content", ref: this.storeContentEl, style: allowResizing && contentWidth ? { width: `${contentWidth}px` } : null }, this.renderHeader(), h("div", { class: CSS.contentBody }, h("slot", null))));
197
+ const separatorNode = allowResizing ? (h("div", { "aria-label": intlResize, "aria-orientation": "horizontal", "aria-valuemax": contentWidthMax, "aria-valuemin": contentWidthMin, "aria-valuenow": contentWidth !== null && contentWidth !== void 0 ? contentWidth : initialContentWidth, class: CSS.separator, key: "separator", onKeyDown: this.separatorKeyDown, ref: this.connectSeparator, role: "separator", tabIndex: 0, "touch-action": "none" })) : null;
198
+ const actionBarNode = h("slot", { key: "action-bar", name: SLOTS.actionBar });
194
199
  const mainNodes = [actionBarNode, contentNode, separatorNode];
195
200
  if (position === "end") {
196
201
  mainNodes.reverse();