@esri/calcite-components 1.0.0-next.416 → 1.0.0-next.419

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 (94) hide show
  1. package/dist/calcite/calcite.esm.js +1 -1
  2. package/dist/calcite/p-162604a0.entry.js +5 -0
  3. package/dist/calcite/p-184049cb.entry.js +5 -0
  4. package/dist/calcite/p-4570cf6c.js +5 -0
  5. package/dist/calcite/p-4905189e.system.entry.js +5 -0
  6. package/dist/calcite/p-5f6e35f3.entry.js +5 -0
  7. package/dist/calcite/p-7dfd6480.system.entry.js +5 -0
  8. package/dist/calcite/p-867f7b7a.system.entry.js +5 -0
  9. package/dist/calcite/p-895d22f3.entry.js +5 -0
  10. package/dist/calcite/{p-411dcd52.entry.js → p-8b982f91.entry.js} +1 -1
  11. package/dist/calcite/p-a3527241.system.entry.js +5 -0
  12. package/dist/calcite/p-a38fe099.entry.js +5 -0
  13. package/dist/calcite/{p-3ea157ba.system.entry.js → p-edf1e815.system.entry.js} +1 -1
  14. package/dist/calcite/p-ee522afa.system.entry.js +5 -0
  15. package/dist/calcite/p-f09e27b0.system.js +5 -0
  16. package/dist/calcite/p-fe9380a0.system.js +1 -1
  17. package/dist/cjs/calcite-action-menu.cjs.entry.js +2 -2
  18. package/dist/cjs/calcite-combobox_3.cjs.entry.js +4 -5
  19. package/dist/cjs/calcite-dropdown_3.cjs.entry.js +3 -4
  20. package/dist/cjs/calcite-input-date-picker.cjs.entry.js +4 -5
  21. package/dist/cjs/calcite-popover_2.cjs.entry.js +4 -3
  22. package/dist/cjs/calcite-tooltip_2.cjs.entry.js +2 -2
  23. package/dist/cjs/calcite.cjs.js +1 -1
  24. package/dist/cjs/loader.cjs.js +1 -1
  25. package/dist/cjs/{popper-13a2bb46.js → popper-64d89ef7.js} +17 -2
  26. package/dist/collection/components/action-menu/action-menu.js +6 -6
  27. package/dist/collection/components/combobox/combobox.js +25 -5
  28. package/dist/collection/components/combobox/resources.js +0 -1
  29. package/dist/collection/components/dropdown/dropdown.js +28 -8
  30. package/dist/collection/components/dropdown/resources.js +0 -1
  31. package/dist/collection/components/input-date-picker/input-date-picker.js +24 -5
  32. package/dist/collection/components/popover/popover.css +1 -1
  33. package/dist/collection/components/popover/popover.js +7 -7
  34. package/dist/collection/components/popover/resources.js +1 -0
  35. package/dist/collection/components/tooltip/tooltip.css +1 -1
  36. package/dist/collection/utils/popper.js +66 -0
  37. package/dist/components/action-menu.js +2 -2
  38. package/dist/components/calcite-combobox-item-group.js +1 -1
  39. package/dist/components/calcite-combobox-item.js +1 -1
  40. package/dist/components/calcite-combobox.js +6 -5
  41. package/dist/components/calcite-input-date-picker.js +5 -5
  42. package/dist/components/calcite-tooltip.js +1 -1
  43. package/dist/components/dropdown.js +4 -4
  44. package/dist/components/popover.js +3 -3
  45. package/dist/components/popper.js +16 -3
  46. package/dist/components/resources.js +2 -1
  47. package/dist/components/utils2.js +1 -2
  48. package/dist/custom-elements/index.js +32 -21
  49. package/dist/esm/calcite-action-menu.entry.js +2 -2
  50. package/dist/esm/calcite-combobox_3.entry.js +4 -5
  51. package/dist/esm/calcite-dropdown_3.entry.js +3 -4
  52. package/dist/esm/calcite-input-date-picker.entry.js +4 -5
  53. package/dist/esm/calcite-popover_2.entry.js +4 -3
  54. package/dist/esm/calcite-tooltip_2.entry.js +2 -2
  55. package/dist/esm/calcite.js +1 -1
  56. package/dist/esm/loader.js +1 -1
  57. package/dist/esm/{popper-ae231554.js → popper-da45ec93.js} +16 -3
  58. package/dist/esm-es5/calcite-action-menu.entry.js +1 -1
  59. package/dist/esm-es5/calcite-combobox_3.entry.js +2 -2
  60. package/dist/esm-es5/calcite-dropdown_3.entry.js +1 -1
  61. package/dist/esm-es5/calcite-input-date-picker.entry.js +1 -1
  62. package/dist/esm-es5/calcite-popover_2.entry.js +1 -1
  63. package/dist/esm-es5/calcite-tooltip_2.entry.js +1 -1
  64. package/dist/esm-es5/calcite.js +1 -1
  65. package/dist/esm-es5/loader.js +1 -1
  66. package/dist/esm-es5/popper-da45ec93.js +5 -0
  67. package/dist/extras/docs-json.json +52 -7
  68. package/dist/types/components/action-menu/action-menu.d.ts +2 -3
  69. package/dist/types/components/combobox/combobox.d.ts +5 -1
  70. package/dist/types/components/combobox/resources.d.ts +0 -1
  71. package/dist/types/components/dropdown/dropdown.d.ts +7 -3
  72. package/dist/types/components/dropdown/interfaces.d.ts +0 -2
  73. package/dist/types/components/dropdown/resources.d.ts +0 -1
  74. package/dist/types/components/input-date-picker/input-date-picker.d.ts +5 -1
  75. package/dist/types/components/popover/popover.d.ts +3 -3
  76. package/dist/types/components/popover/resources.d.ts +1 -0
  77. package/dist/types/components.d.ts +32 -9
  78. package/dist/types/utils/popper.d.ts +8 -1
  79. package/hydrate/index.js +32 -18
  80. package/package.json +2 -2
  81. package/readme.md +2 -2
  82. package/dist/calcite/p-035c70fd.system.entry.js +0 -5
  83. package/dist/calcite/p-577bc6de.entry.js +0 -5
  84. package/dist/calcite/p-5be48d2a.system.entry.js +0 -5
  85. package/dist/calcite/p-6137468f.system.entry.js +0 -5
  86. package/dist/calcite/p-62c7ab61.entry.js +0 -5
  87. package/dist/calcite/p-73d23656.entry.js +0 -5
  88. package/dist/calcite/p-a144a9e2.system.entry.js +0 -5
  89. package/dist/calcite/p-c024d833.entry.js +0 -5
  90. package/dist/calcite/p-cb28aa6a.entry.js +0 -5
  91. package/dist/calcite/p-e2047621.system.js +0 -5
  92. package/dist/calcite/p-eeb91710.js +0 -5
  93. package/dist/calcite/p-f8238718.system.entry.js +0 -5
  94. package/dist/esm-es5/popper-ae231554.js +0 -5
@@ -4,8 +4,8 @@
4
4
  */
5
5
  import { Component, Element, Event, h, Host, Listen, Method, Prop, Watch } from "@stencil/core";
6
6
  import { focusElement, getSlotted } from "../../utils/dom";
7
- import { createPopper, CSS as PopperCSS, updatePopper } from "../../utils/popper";
8
- import { DefaultDropdownPlacement, SLOTS } from "./resources";
7
+ import { createPopper, CSS as PopperCSS, updatePopper, popperMenuFlipPlacements, defaultMenuPlacement } from "../../utils/popper";
8
+ import { SLOTS } from "./resources";
9
9
  import { createObserver } from "../../utils/observers";
10
10
  import { updateHostInteraction } from "../../utils/interactive";
11
11
  /**
@@ -39,7 +39,7 @@ export class Dropdown {
39
39
  * Determines where the dropdown will be positioned relative to the button.
40
40
  * @default "bottom-leading"
41
41
  */
42
- this.placement = DefaultDropdownPlacement;
42
+ this.placement = defaultMenuPlacement;
43
43
  /** specify the scale of dropdown, defaults to m */
44
44
  this.scale = "m";
45
45
  /**
@@ -284,7 +284,7 @@ export class Dropdown {
284
284
  enabled: true
285
285
  };
286
286
  flipModifier.options = {
287
- fallbackPlacements: ["top-start", "top", "top-end", "bottom-start", "bottom", "bottom-end"]
287
+ fallbackPlacements: this.flipPlacements || popperMenuFlipPlacements
288
288
  };
289
289
  const eventListenerModifier = {
290
290
  name: "eventListeners",
@@ -438,6 +438,26 @@ export class Dropdown {
438
438
  "reflect": true,
439
439
  "defaultValue": "false"
440
440
  },
441
+ "flipPlacements": {
442
+ "type": "unknown",
443
+ "mutable": false,
444
+ "complexType": {
445
+ "original": "ComputedPlacement[]",
446
+ "resolved": "ComputedPlacement[]",
447
+ "references": {
448
+ "ComputedPlacement": {
449
+ "location": "import",
450
+ "path": "../../utils/popper"
451
+ }
452
+ }
453
+ },
454
+ "required": false,
455
+ "optional": true,
456
+ "docs": {
457
+ "tags": [],
458
+ "text": "Defines the available placements that can be used when a flip occurs."
459
+ }
460
+ },
441
461
  "maxItems": {
442
462
  "type": "number",
443
463
  "mutable": false,
@@ -483,12 +503,12 @@ export class Dropdown {
483
503
  "type": "string",
484
504
  "mutable": false,
485
505
  "complexType": {
486
- "original": "DropdownPlacement",
506
+ "original": "MenuPlacement",
487
507
  "resolved": "\"bottom\" | \"bottom-end\" | \"bottom-leading\" | \"bottom-start\" | \"bottom-trailing\" | \"top\" | \"top-end\" | \"top-leading\" | \"top-start\" | \"top-trailing\"",
488
508
  "references": {
489
- "DropdownPlacement": {
509
+ "MenuPlacement": {
490
510
  "location": "import",
491
- "path": "./interfaces"
511
+ "path": "../../utils/popper"
492
512
  }
493
513
  }
494
514
  },
@@ -503,7 +523,7 @@ export class Dropdown {
503
523
  },
504
524
  "attribute": "placement",
505
525
  "reflect": true,
506
- "defaultValue": "DefaultDropdownPlacement"
526
+ "defaultValue": "defaultMenuPlacement"
507
527
  },
508
528
  "scale": {
509
529
  "type": "string",
@@ -2,7 +2,6 @@
2
2
  * All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.
4
4
  */
5
- export const DefaultDropdownPlacement = "bottom-leading";
6
5
  export const SLOTS = {
7
6
  dropdownTrigger: "dropdown-trigger"
8
7
  };
@@ -8,9 +8,8 @@ import { dateFromRange, inRange, dateFromISO, dateToISO, parseDateString, sameDa
8
8
  import { TEXT } from "../date-picker/resources";
9
9
  import { connectLabel, disconnectLabel, getLabelText } from "../../utils/label";
10
10
  import { connectForm, disconnectForm, HiddenFormInputSlot } from "../../utils/form";
11
- import { createPopper, updatePopper, CSS as PopperCSS } from "../../utils/popper";
11
+ import { createPopper, updatePopper, CSS as PopperCSS, popperMenuFlipPlacements, defaultMenuPlacement } from "../../utils/popper";
12
12
  import { updateHostInteraction } from "../../utils/interactive";
13
- const DEFAULT_PLACEMENT = "bottom-leading";
14
13
  export class InputDatePicker {
15
14
  constructor() {
16
15
  //--------------------------------------------------------------------------
@@ -198,7 +197,7 @@ export class InputDatePicker {
198
197
  ? await updatePopper({
199
198
  el: menuEl,
200
199
  modifiers,
201
- placement: DEFAULT_PLACEMENT,
200
+ placement: defaultMenuPlacement,
202
201
  popper
203
202
  })
204
203
  : this.createPopper();
@@ -305,7 +304,7 @@ export class InputDatePicker {
305
304
  enabled: true
306
305
  };
307
306
  flipModifier.options = {
308
- fallbackPlacements: ["top-start", "top", "top-end", "bottom-start", "bottom", "bottom-end"]
307
+ fallbackPlacements: this.flipPlacements || popperMenuFlipPlacements
309
308
  };
310
309
  const eventListenerModifier = {
311
310
  name: "eventListeners",
@@ -324,7 +323,7 @@ export class InputDatePicker {
324
323
  el: menuEl,
325
324
  modifiers,
326
325
  overlayPositioning,
327
- placement: DEFAULT_PLACEMENT,
326
+ placement: defaultMenuPlacement,
328
327
  referenceEl
329
328
  });
330
329
  }
@@ -508,6 +507,26 @@ export class InputDatePicker {
508
507
  "attribute": "value",
509
508
  "reflect": false
510
509
  },
510
+ "flipPlacements": {
511
+ "type": "unknown",
512
+ "mutable": false,
513
+ "complexType": {
514
+ "original": "ComputedPlacement[]",
515
+ "resolved": "ComputedPlacement[]",
516
+ "references": {
517
+ "ComputedPlacement": {
518
+ "location": "import",
519
+ "path": "../../utils/popper"
520
+ }
521
+ }
522
+ },
523
+ "required": false,
524
+ "optional": true,
525
+ "docs": {
526
+ "tags": [],
527
+ "text": "Defines the available placements that can be used when a flip occurs."
528
+ }
529
+ },
511
530
  "headingLevel": {
512
531
  "type": "number",
513
532
  "mutable": false,
@@ -118,7 +118,7 @@
118
118
  transform: translate(0);
119
119
  }
120
120
 
121
- :host([data-popper-placement][data-popper-escaped]), :host([data-popper-placement][data-popper-reference-hidden]) {
121
+ :host([data-popper-placement][data-popper-reference-hidden]) {
122
122
  pointer-events: none;
123
123
  opacity: 0;
124
124
  }
@@ -3,7 +3,7 @@
3
3
  * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.
4
4
  */
5
5
  import { Component, Element, Event, forceUpdate, Host, Method, Prop, State, Watch, h } from "@stencil/core";
6
- import { CSS, ARIA_CONTROLS, ARIA_EXPANDED, HEADING_LEVEL, POPOVER_REFERENCE, TEXT } from "./resources";
6
+ import { CSS, ARIA_CONTROLS, ARIA_EXPANDED, HEADING_LEVEL, POPOVER_REFERENCE, TEXT, defaultPopoverPlacement } from "./resources";
7
7
  import { defaultOffsetDistance, createPopper, updatePopper, CSS as PopperCSS } from "../../utils/popper";
8
8
  import { guid } from "../../utils/guid";
9
9
  import { queryElementRoots } from "../../utils/dom";
@@ -54,7 +54,7 @@ export class Popover {
54
54
  * Determines where the component will be positioned relative to the referenceElement.
55
55
  * @see [PopperPlacement](https://github.com/Esri/calcite-components/blob/master/src/utils/popper.ts#L25)
56
56
  */
57
- this.placement = "auto";
57
+ this.placement = defaultPopoverPlacement;
58
58
  /** Text for close button.
59
59
  * @default "Close"
60
60
  */
@@ -364,12 +364,12 @@ export class Popover {
364
364
  "type": "unknown",
365
365
  "mutable": false,
366
366
  "complexType": {
367
- "original": "Placement[]",
368
- "resolved": "Placement[]",
367
+ "original": "ComputedPlacement[]",
368
+ "resolved": "ComputedPlacement[]",
369
369
  "references": {
370
- "Placement": {
370
+ "ComputedPlacement": {
371
371
  "location": "import",
372
- "path": "@popperjs/core"
372
+ "path": "../../utils/popper"
373
373
  }
374
374
  }
375
375
  },
@@ -540,7 +540,7 @@ export class Popover {
540
540
  },
541
541
  "attribute": "placement",
542
542
  "reflect": true,
543
- "defaultValue": "\"auto\""
543
+ "defaultValue": "defaultPopoverPlacement"
544
544
  },
545
545
  "referenceElement": {
546
546
  "type": "string",
@@ -17,6 +17,7 @@ export const CSS = {
17
17
  export const TEXT = {
18
18
  close: "Close"
19
19
  };
20
+ export const defaultPopoverPlacement = "auto";
20
21
  export const POPOVER_REFERENCE = "data-calcite-popover-reference";
21
22
  export const ARIA_CONTROLS = "aria-controls";
22
23
  export const ARIA_EXPANDED = "aria-expanded";
@@ -118,7 +118,7 @@
118
118
  transform: translate(0);
119
119
  }
120
120
 
121
- :host([data-popper-placement][data-popper-escaped]), :host([data-popper-placement][data-popper-reference-hidden]) {
121
+ :host([data-popper-placement][data-popper-reference-hidden]) {
122
122
  pointer-events: none;
123
123
  opacity: 0;
124
124
  }
@@ -4,6 +4,72 @@
4
4
  */
5
5
  import { createPopper as setupPopper } from "@popperjs/core";
6
6
  import { getElementDir } from "./dom";
7
+ export const popperPlacements = [
8
+ "auto",
9
+ "auto-start",
10
+ "auto-end",
11
+ "top-start",
12
+ "top-end",
13
+ "bottom-start",
14
+ "bottom-end",
15
+ "right-start",
16
+ "right-end",
17
+ "left-start",
18
+ "left-end",
19
+ "leading-start",
20
+ "leading",
21
+ "leading-end",
22
+ "trailing-end",
23
+ "trailing",
24
+ "trailing-start",
25
+ "leading-leading",
26
+ "leading-trailing",
27
+ "trailing-leading",
28
+ "trailing-trailing",
29
+ "top-leading",
30
+ "top-trailing",
31
+ "bottom-leading",
32
+ "bottom-trailing",
33
+ "right-leading",
34
+ "right-trailing",
35
+ "left-leading",
36
+ "left-trailing"
37
+ ];
38
+ export const popperFlipPlacements = [
39
+ "top",
40
+ "bottom",
41
+ "right",
42
+ "left",
43
+ "top-start",
44
+ "top-end",
45
+ "bottom-start",
46
+ "bottom-end",
47
+ "right-start",
48
+ "right-end",
49
+ "left-start",
50
+ "left-end"
51
+ ];
52
+ export const defaultMenuPlacement = "bottom-leading";
53
+ export const popperMenuPlacements = [
54
+ "top-start",
55
+ "top",
56
+ "top-end",
57
+ "bottom-start",
58
+ "bottom",
59
+ "bottom-end",
60
+ "top-leading",
61
+ "top-trailing",
62
+ "bottom-leading",
63
+ "bottom-trailing"
64
+ ];
65
+ export const popperMenuFlipPlacements = [
66
+ "top-start",
67
+ "top",
68
+ "top-end",
69
+ "bottom-start",
70
+ "bottom",
71
+ "bottom-end"
72
+ ];
7
73
  export const CSS = {
8
74
  animation: "calcite-popper-anim",
9
75
  animationActive: "calcite-popper-anim--active"
@@ -279,10 +279,10 @@ const ActionMenu = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
279
279
  return getSlotted(el, SLOTS.tooltip) ? (h("calcite-tooltip-manager", null, menuButtonSlot)) : (menuButtonSlot);
280
280
  }
281
281
  renderMenuItems() {
282
- const { actionElements, activeMenuItemIndex, open, menuId, menuButtonEl, label, placement, overlayPositioning } = this;
282
+ const { actionElements, activeMenuItemIndex, open, menuId, menuButtonEl, label, placement, overlayPositioning, flipPlacements } = this;
283
283
  const activeAction = actionElements[activeMenuItemIndex];
284
284
  const activeDescendantId = (activeAction === null || activeAction === void 0 ? void 0 : activeAction.id) || null;
285
- return (h("calcite-popover", { disablePointer: true, label: label, offsetDistance: 0, open: open, overlayPositioning: overlayPositioning, placement: placement, referenceElement: menuButtonEl }, h("div", { "aria-activedescendant": activeDescendantId, "aria-labelledby": menuButtonEl === null || menuButtonEl === void 0 ? void 0 : menuButtonEl.id, class: CSS.menu, id: menuId, onClick: this.handleCalciteActionClick, onKeyDown: this.menuActionsContainerKeyDown, onKeyUp: this.menuActionsContainerKeyUp, ref: (el) => (this.menuEl = el), role: "menu", tabIndex: -1 }, h("slot", null))));
285
+ return (h("calcite-popover", { disablePointer: true, flipPlacements: flipPlacements, label: label, offsetDistance: 0, open: open, overlayPositioning: overlayPositioning, placement: placement, referenceElement: menuButtonEl }, h("div", { "aria-activedescendant": activeDescendantId, "aria-labelledby": menuButtonEl === null || menuButtonEl === void 0 ? void 0 : menuButtonEl.id, class: CSS.menu, id: menuId, onClick: this.handleCalciteActionClick, onKeyDown: this.menuActionsContainerKeyDown, onKeyUp: this.menuActionsContainerKeyUp, ref: (el) => (this.menuEl = el), role: "menu", tabIndex: -1 }, h("slot", null))));
286
286
  }
287
287
  render() {
288
288
  return (h(Fragment, null, this.renderMenuButton(), this.renderMenuItems(), h("slot", { name: SLOTS.tooltip })));
@@ -3,7 +3,7 @@
3
3
  * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.
4
4
  */
5
5
  import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
6
- import { e as getAncestors, f as getDepth } from './utils2.js';
6
+ import { d as getAncestors, e as getDepth } from './utils2.js';
7
7
  import { g as guid } from './guid.js';
8
8
  import { g as getElementProp } from './dom.js';
9
9
 
@@ -5,7 +5,7 @@
5
5
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
6
6
  import { g as getElementProp, b as getSlotted } from './dom.js';
7
7
  import { g as guid } from './guid.js';
8
- import { e as getAncestors, f as getDepth } from './utils2.js';
8
+ import { d as getAncestors, e as getDepth } from './utils2.js';
9
9
  import { c as connectConditionalSlotComponent, d as disconnectConditionalSlotComponent } from './conditionalSlot.js';
10
10
  import { u as updateHostInteraction } from './interactive.js';
11
11
  import { d as defineCustomElement$2 } from './icon.js';
@@ -5,9 +5,9 @@
5
5
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
6
6
  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
- import { u as updatePopper, c as createPopper, C as CSS } from './popper.js';
8
+ import { u as updatePopper, c as createPopper, a as defaultMenuPlacement, p as popperMenuFlipPlacements, C as CSS } from './popper.js';
9
9
  import { g as guid } from './guid.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';
10
+ import { T as TEXT, C as ComboboxChildSelector, g as getItemAncestors, a as getItemChildren, h as hasActiveChildren, b as ComboboxItem, c as ComboboxItemGroup } 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';
@@ -496,7 +496,7 @@ const Combobox = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
496
496
  ? await updatePopper({
497
497
  el: menuEl,
498
498
  modifiers,
499
- placement: ComboboxDefaultPlacement,
499
+ placement: defaultMenuPlacement,
500
500
  popper
501
501
  })
502
502
  : this.createPopper();
@@ -560,7 +560,7 @@ const Combobox = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
560
560
  enabled: true
561
561
  };
562
562
  flipModifier.options = {
563
- fallbackPlacements: ["top-start", "top", "top-end", "bottom-start", "bottom", "bottom-end"]
563
+ fallbackPlacements: this.flipPlacements || popperMenuFlipPlacements
564
564
  };
565
565
  const eventListenerModifier = {
566
566
  name: "eventListeners",
@@ -576,7 +576,7 @@ const Combobox = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
576
576
  el: menuEl,
577
577
  modifiers,
578
578
  overlayPositioning,
579
- placement: ComboboxDefaultPlacement,
579
+ placement: defaultMenuPlacement,
580
580
  referenceEl
581
581
  });
582
582
  }
@@ -905,6 +905,7 @@ const Combobox = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
905
905
  "scale": [513],
906
906
  "value": [1025],
907
907
  "intlRemoveTag": [1, "intl-remove-tag"],
908
+ "flipPlacements": [16],
908
909
  "items": [32],
909
910
  "groupItems": [32],
910
911
  "selectedItems": [32],
@@ -7,7 +7,7 @@ import { T as TEXT, g as getLocaleData, d as defineCustomElement$8 } from './dat
7
7
  import { d as dateToISO, a as dateFromISO, b as dateFromRange, s as sameDate, f as parseDateString, i as inRange } from './date.js';
8
8
  import { c as connectLabel, d as disconnectLabel, g as getLabelText } from './label.js';
9
9
  import { c as connectForm, d as disconnectForm, H as HiddenFormInputSlot } from './form.js';
10
- import { u as updatePopper, C as CSS, c as createPopper } from './popper.js';
10
+ import { u as updatePopper, C as CSS, c as createPopper, a as defaultMenuPlacement, p as popperMenuFlipPlacements } from './popper.js';
11
11
  import { u as updateHostInteraction } from './interactive.js';
12
12
  import { d as defineCustomElement$7 } from './date-picker-day.js';
13
13
  import { d as defineCustomElement$6 } from './date-picker-month.js';
@@ -18,7 +18,6 @@ import { d as defineCustomElement$2 } from './progress.js';
18
18
 
19
19
  const inputDatePickerCss = "@-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}:host{--calcite-icon-size:1rem;--calcite-spacing-eighth:0.125rem;--calcite-spacing-quarter:0.25rem;--calcite-spacing-half:0.5rem;--calcite-spacing-three-quarters:0.75rem;--calcite-spacing:1rem;--calcite-spacing-plus-quarter:1.25rem;--calcite-spacing-plus-half:1.5rem;--calcite-spacing-double:2rem;--calcite-menu-min-width:10rem;--calcite-header-min-height:3rem;--calcite-footer-min-height:3rem}:root{--calcite-popper-transition:var(--calcite-animation-timing)}:host([hidden]){display:none}:host{position:relative;display:inline-block;width:100%;overflow:visible;vertical-align:top;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;-webkit-box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}:host([disabled]){pointer-events:none;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:var(--calcite-ui-opacity-disabled)}:host([disabled]) ::slotted([calcite-hydrated][disabled]),:host([disabled]) [calcite-hydrated][disabled]{opacity:1}.calendar-picker-wrapper{position:static;width:100%;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;-webkit-box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}.input-wrapper{position:relative}:host([range]) .input-container{display:-ms-flexbox;display:flex}:host([range]) .input-wrapper{-ms-flex:1 1 auto;flex:1 1 auto}:host([range]) .horizontal-arrow-container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;border-width:1px;border-left-width:0px;border-right-width:0px;border-style:solid;border-color:var(--calcite-ui-border-input);background-color:var(--calcite-ui-background);padding-top:0px;padding-bottom:0px;padding-left:0.25rem;padding-right:0.25rem}:host([range][layout=vertical]) .input-wrapper{width:100%}:host([range][layout=vertical]) .input-container{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start}:host([range][layout=vertical]) .calendar-picker-wrapper--end{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}:host([range][layout=vertical]) .vertical-arrow-container{top:1.5rem;position:absolute;left:0px;z-index:10;margin-left:1px;margin-right:1px;background-color:var(--calcite-ui-foreground-1);padding-left:0.625rem;padding-right:0.625rem}:host([scale=s][range]:not([layout=vertical])) .calendar-picker-wrapper{width:216px}:host([scale=m][range]:not([layout=vertical])) .calendar-picker-wrapper{width:286px}:host([scale=l][range]:not([layout=vertical])) .calendar-picker-wrapper{width:398px}.menu-container{display:block;position:absolute;z-index:900;-webkit-transform:scale(0);transform:scale(0);visibility:hidden;pointer-events:none}.menu-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}.menu-container[data-popper-placement^=bottom] .calcite-popper-anim{-webkit-transform:translateY(-5px);transform:translateY(-5px)}.menu-container[data-popper-placement^=top] .calcite-popper-anim{-webkit-transform:translateY(5px);transform:translateY(5px)}.menu-container[data-popper-placement^=left] .calcite-popper-anim{-webkit-transform:translateX(5px);transform:translateX(5px)}.menu-container[data-popper-placement^=right] .calcite-popper-anim{-webkit-transform:translateX(-5px);transform:translateX(-5px)}.menu-container[data-popper-placement] .calcite-popper-anim--active{opacity:1;visibility:visible;-webkit-transform:translate(0);transform:translate(0)}.menu-container--active .menu-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}.menu-container--active .menu-container[data-popper-placement^=bottom] .calcite-popper-anim{-webkit-transform:translateY(-5px);transform:translateY(-5px)}.menu-container--active .menu-container[data-popper-placement^=top] .calcite-popper-anim{-webkit-transform:translateY(5px);transform:translateY(5px)}.menu-container--active .menu-container[data-popper-placement^=left] .calcite-popper-anim{-webkit-transform:translateX(5px);transform:translateX(5px)}.menu-container--active .menu-container[data-popper-placement^=right] .calcite-popper-anim{-webkit-transform:translateX(-5px);transform:translateX(-5px)}.menu-container--active .menu-container[data-popper-placement] .calcite-popper-anim--active{opacity:1;visibility:visible;-webkit-transform:translate(0);transform:translate(0)}.input .calcite-input__wrapper{margin-top:0px}:host([range][layout=vertical][scale=m]) .vertical-arrow-container{top:1.5rem;padding-left:0.75rem}:host([range][layout=vertical][scale=m]) .vertical-arrow-container calcite-icon{height:0.75rem;width:0.75rem;min-width:0px}:host([range][layout=vertical][scale=l]) .vertical-arrow-container{top:2.25rem;padding-left:0.875rem;padding-right:0.875rem}:host([range][layout=vertical][active]) .vertical-arrow-container{display:none}::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}";
20
20
 
21
- const DEFAULT_PLACEMENT = "bottom-leading";
22
21
  const InputDatePicker = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
23
22
  constructor() {
24
23
  super();
@@ -214,7 +213,7 @@ const InputDatePicker = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
214
213
  ? await updatePopper({
215
214
  el: menuEl,
216
215
  modifiers,
217
- placement: DEFAULT_PLACEMENT,
216
+ placement: defaultMenuPlacement,
218
217
  popper
219
218
  })
220
219
  : this.createPopper();
@@ -308,7 +307,7 @@ const InputDatePicker = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
308
307
  enabled: true
309
308
  };
310
309
  flipModifier.options = {
311
- fallbackPlacements: ["top-start", "top", "top-end", "bottom-start", "bottom", "bottom-end"]
310
+ fallbackPlacements: this.flipPlacements || popperMenuFlipPlacements
312
311
  };
313
312
  const eventListenerModifier = {
314
313
  name: "eventListeners",
@@ -327,7 +326,7 @@ const InputDatePicker = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
327
326
  el: menuEl,
328
327
  modifiers,
329
328
  overlayPositioning,
330
- placement: DEFAULT_PLACEMENT,
329
+ placement: defaultMenuPlacement,
331
330
  referenceEl
332
331
  });
333
332
  }
@@ -484,6 +483,7 @@ const InputDatePicker = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
484
483
  }, [1, "calcite-input-date-picker", {
485
484
  "disabled": [516],
486
485
  "value": [1025],
486
+ "flipPlacements": [16],
487
487
  "headingLevel": [2, "heading-level"],
488
488
  "valueAsDate": [1040],
489
489
  "startAsDate": [1040],
@@ -8,7 +8,7 @@ import { g as guid } from './guid.js';
8
8
  import { d as defaultOffsetDistance, u as updatePopper, c as createPopper, C as CSS } from './popper.js';
9
9
  import { q as queryElementRoots } from './dom.js';
10
10
 
11
- const tooltipCss = "@-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{display:block;position:absolute;z-index:999;-webkit-transform:scale(0);transform:scale(0)}.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}:host([data-popper-placement^=bottom]) .calcite-popper-anim{-webkit-transform:translateY(-5px);transform:translateY(-5px)}:host([data-popper-placement^=top]) .calcite-popper-anim{-webkit-transform:translateY(5px);transform:translateY(5px)}:host([data-popper-placement^=left]) .calcite-popper-anim{-webkit-transform:translateX(5px);transform:translateX(5px)}:host([data-popper-placement^=right]) .calcite-popper-anim{-webkit-transform:translateX(-5px);transform:translateX(-5px)}:host([data-popper-placement]) .calcite-popper-anim--active{opacity:1;visibility:visible;-webkit-transform:translate(0);transform:translate(0)}:host([data-popper-placement][data-popper-escaped]),:host([data-popper-placement][data-popper-reference-hidden]){pointer-events:none;opacity:0}.arrow,.arrow::before{position:absolute;width:8px;height:8px;z-index:-1}.arrow::before{content:\"\";--tw-shadow:0 4px 8px -1px rgba(0, 0, 0, 0.08), 0 2px 4px -1px rgba(0, 0, 0, 0.04);--tw-shadow-colored:0 4px 8px -1px var(--tw-shadow-color), 0 2px 4px -1px var(--tw-shadow-color);-webkit-box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);-webkit-transform:rotate(45deg);transform:rotate(45deg);background:var(--calcite-ui-foreground-1)}:host([data-popper-placement^=top]) .arrow{bottom:-4px}:host([data-popper-placement^=bottom]) .arrow{top:-4px}:host([data-popper-placement^=left]) .arrow{right:-4px}:host([data-popper-placement^=right]) .arrow{left:-4px}.container{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:start;justify-content:flex-start;border-radius:0.25rem;background-color:var(--calcite-ui-foreground-1);padding-top:0.75rem;padding-bottom:0.75rem;padding-left:1rem;padding-right:1rem;font-size:var(--calcite-font-size--2);line-height:1.375;font-weight:var(--calcite-font-weight-medium);color:var(--calcite-ui-text-1);overflow:hidden;max-width:20rem;max-height:20rem}.calcite-popper-anim{border-radius:0.25rem;border-width:1px;border-style:solid;border-color:var(--calcite-ui-border-3);background-color:var(--calcite-ui-foreground-1)}.arrow::before{outline:1px solid var(--calcite-ui-border-3)}";
11
+ const tooltipCss = "@-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{display:block;position:absolute;z-index:999;-webkit-transform:scale(0);transform:scale(0)}.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}:host([data-popper-placement^=bottom]) .calcite-popper-anim{-webkit-transform:translateY(-5px);transform:translateY(-5px)}:host([data-popper-placement^=top]) .calcite-popper-anim{-webkit-transform:translateY(5px);transform:translateY(5px)}:host([data-popper-placement^=left]) .calcite-popper-anim{-webkit-transform:translateX(5px);transform:translateX(5px)}:host([data-popper-placement^=right]) .calcite-popper-anim{-webkit-transform:translateX(-5px);transform:translateX(-5px)}:host([data-popper-placement]) .calcite-popper-anim--active{opacity:1;visibility:visible;-webkit-transform:translate(0);transform:translate(0)}:host([data-popper-placement][data-popper-reference-hidden]){pointer-events:none;opacity:0}.arrow,.arrow::before{position:absolute;width:8px;height:8px;z-index:-1}.arrow::before{content:\"\";--tw-shadow:0 4px 8px -1px rgba(0, 0, 0, 0.08), 0 2px 4px -1px rgba(0, 0, 0, 0.04);--tw-shadow-colored:0 4px 8px -1px var(--tw-shadow-color), 0 2px 4px -1px var(--tw-shadow-color);-webkit-box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);-webkit-transform:rotate(45deg);transform:rotate(45deg);background:var(--calcite-ui-foreground-1)}:host([data-popper-placement^=top]) .arrow{bottom:-4px}:host([data-popper-placement^=bottom]) .arrow{top:-4px}:host([data-popper-placement^=left]) .arrow{right:-4px}:host([data-popper-placement^=right]) .arrow{left:-4px}.container{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:start;justify-content:flex-start;border-radius:0.25rem;background-color:var(--calcite-ui-foreground-1);padding-top:0.75rem;padding-bottom:0.75rem;padding-left:1rem;padding-right:1rem;font-size:var(--calcite-font-size--2);line-height:1.375;font-weight:var(--calcite-font-weight-medium);color:var(--calcite-ui-text-1);overflow:hidden;max-width:20rem;max-height:20rem}.calcite-popper-anim{border-radius:0.25rem;border-width:1px;border-style:solid;border-color:var(--calcite-ui-border-3);background-color:var(--calcite-ui-foreground-1)}.arrow::before{outline:1px solid var(--calcite-ui-border-3)}";
12
12
 
13
13
  const Tooltip = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
14
14
  constructor() {
@@ -4,11 +4,10 @@
4
4
  */
5
5
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
6
6
  import { b as getSlotted, f as focusElement } from './dom.js';
7
- import { C as CSS, u as updatePopper, c as createPopper } from './popper.js';
7
+ import { a as defaultMenuPlacement, C as CSS, u as updatePopper, c as createPopper, p as popperMenuFlipPlacements } from './popper.js';
8
8
  import { c as createObserver } from './observers.js';
9
9
  import { u as updateHostInteraction } from './interactive.js';
10
10
 
11
- const DefaultDropdownPlacement = "bottom-leading";
12
11
  const SLOTS = {
13
12
  dropdownTrigger: "dropdown-trigger"
14
13
  };
@@ -48,7 +47,7 @@ const Dropdown = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
48
47
  * Determines where the dropdown will be positioned relative to the button.
49
48
  * @default "bottom-leading"
50
49
  */
51
- this.placement = DefaultDropdownPlacement;
50
+ this.placement = defaultMenuPlacement;
52
51
  /** specify the scale of dropdown, defaults to m */
53
52
  this.scale = "m";
54
53
  /**
@@ -287,7 +286,7 @@ const Dropdown = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
287
286
  enabled: true
288
287
  };
289
288
  flipModifier.options = {
290
- fallbackPlacements: ["top-start", "top", "top-end", "bottom-start", "bottom", "bottom-end"]
289
+ fallbackPlacements: this.flipPlacements || popperMenuFlipPlacements
291
290
  };
292
291
  const eventListenerModifier = {
293
292
  name: "eventListeners",
@@ -390,6 +389,7 @@ const Dropdown = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
390
389
  "active": [1540],
391
390
  "disableCloseOnSelect": [516, "disable-close-on-select"],
392
391
  "disabled": [516],
392
+ "flipPlacements": [16],
393
393
  "maxItems": [2, "max-items"],
394
394
  "overlayPositioning": [1, "overlay-positioning"],
395
395
  "placement": [513],
@@ -3,7 +3,7 @@
3
3
  * See https://github.com/Esri/calcite-components/blob/master/LICENSE.md for details.
4
4
  */
5
5
  import { proxyCustomElement, HTMLElement, createEvent, forceUpdate, h, Host } from '@stencil/core/internal/client';
6
- import { T as TEXT, A as ARIA_EXPANDED, P as POPOVER_REFERENCE, a as ARIA_CONTROLS, C as CSS, H as HEADING_LEVEL } from './resources.js';
6
+ import { d as defaultPopoverPlacement, T as TEXT, A as ARIA_EXPANDED, P as POPOVER_REFERENCE, a as ARIA_CONTROLS, C as CSS, H as HEADING_LEVEL } from './resources.js';
7
7
  import { d as defaultOffsetDistance, u as updatePopper, c as createPopper, C as CSS$1 } from './popper.js';
8
8
  import { g as guid } from './guid.js';
9
9
  import { q as queryElementRoots } from './dom.js';
@@ -12,7 +12,7 @@ import { d as defineCustomElement$3 } from './action.js';
12
12
  import { d as defineCustomElement$2 } from './icon.js';
13
13
  import { d as defineCustomElement$1 } from './loader.js';
14
14
 
15
- const popoverCss = "@-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{display:block;position:absolute;z-index:900;-webkit-transform:scale(0);transform:scale(0)}.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}:host([data-popper-placement^=bottom]) .calcite-popper-anim{-webkit-transform:translateY(-5px);transform:translateY(-5px)}:host([data-popper-placement^=top]) .calcite-popper-anim{-webkit-transform:translateY(5px);transform:translateY(5px)}:host([data-popper-placement^=left]) .calcite-popper-anim{-webkit-transform:translateX(5px);transform:translateX(5px)}:host([data-popper-placement^=right]) .calcite-popper-anim{-webkit-transform:translateX(-5px);transform:translateX(-5px)}:host([data-popper-placement]) .calcite-popper-anim--active{opacity:1;visibility:visible;-webkit-transform:translate(0);transform:translate(0)}:host([data-popper-placement][data-popper-escaped]),:host([data-popper-placement][data-popper-reference-hidden]){pointer-events:none;opacity:0}.arrow,.arrow::before{position:absolute;width:8px;height:8px;z-index:-1}.arrow::before{content:\"\";--tw-shadow:0 4px 8px -1px rgba(0, 0, 0, 0.08), 0 2px 4px -1px rgba(0, 0, 0, 0.04);--tw-shadow-colored:0 4px 8px -1px var(--tw-shadow-color), 0 2px 4px -1px var(--tw-shadow-color);-webkit-box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);-webkit-transform:rotate(45deg);transform:rotate(45deg);background:var(--calcite-ui-foreground-1)}:host([data-popper-placement^=top]) .arrow{bottom:-4px}:host([data-popper-placement^=bottom]) .arrow{top:-4px}:host([data-popper-placement^=left]) .arrow{right:-4px}:host([data-popper-placement^=right]) .arrow{left:-4px}:host{pointer-events:none}:host([open]){pointer-events:initial}.calcite-popper-anim{border-radius:0.25rem;border-width:1px;border-style:solid;border-color:var(--calcite-ui-border-3);background-color:var(--calcite-ui-foreground-1)}.arrow::before{outline:1px solid var(--calcite-ui-border-3)}.header{display:-ms-flexbox;display:flex;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-align:stretch;align-items:stretch;-ms-flex-pack:start;justify-content:flex-start;border-width:0px;border-bottom-width:1px;border-style:solid;background-color:var(--calcite-ui-foreground-1);border-bottom-color:var(--calcite-ui-border-3)}.heading{margin:0px;display:block;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-item-align:center;align-self:center;white-space:normal;padding-left:1rem;padding-right:1rem;padding-top:0.75rem;padding-bottom:0.75rem;font-size:var(--calcite-font-size-0);line-height:1.375;font-weight:var(--calcite-font-weight-medium);color:var(--calcite-ui-text-1);word-wrap:break-word;word-break:break-word}.container{position:relative;display:-ms-flexbox;display:flex;height:100%;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;border-radius:0.25rem;background-color:var(--calcite-ui-foreground-1);color:var(--calcite-ui-text-1)}.container.has-header{-ms-flex-direction:column;flex-direction:column}.content{display:-ms-flexbox;display:flex;height:100%;width:100%;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-item-align:center;align-self:center;word-wrap:break-word;word-break:break-word}.close-button-container{display:-ms-flexbox;display:flex;overflow:hidden;-ms-flex:0 0 auto;flex:0 0 auto;border-start-end-radius:0.25rem;border-end-end-radius:0.25rem}::slotted(calcite-panel),::slotted(calcite-flow){height:100%}";
15
+ const popoverCss = "@-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{display:block;position:absolute;z-index:900;-webkit-transform:scale(0);transform:scale(0)}.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}:host([data-popper-placement^=bottom]) .calcite-popper-anim{-webkit-transform:translateY(-5px);transform:translateY(-5px)}:host([data-popper-placement^=top]) .calcite-popper-anim{-webkit-transform:translateY(5px);transform:translateY(5px)}:host([data-popper-placement^=left]) .calcite-popper-anim{-webkit-transform:translateX(5px);transform:translateX(5px)}:host([data-popper-placement^=right]) .calcite-popper-anim{-webkit-transform:translateX(-5px);transform:translateX(-5px)}:host([data-popper-placement]) .calcite-popper-anim--active{opacity:1;visibility:visible;-webkit-transform:translate(0);transform:translate(0)}:host([data-popper-placement][data-popper-reference-hidden]){pointer-events:none;opacity:0}.arrow,.arrow::before{position:absolute;width:8px;height:8px;z-index:-1}.arrow::before{content:\"\";--tw-shadow:0 4px 8px -1px rgba(0, 0, 0, 0.08), 0 2px 4px -1px rgba(0, 0, 0, 0.04);--tw-shadow-colored:0 4px 8px -1px var(--tw-shadow-color), 0 2px 4px -1px var(--tw-shadow-color);-webkit-box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);-webkit-transform:rotate(45deg);transform:rotate(45deg);background:var(--calcite-ui-foreground-1)}:host([data-popper-placement^=top]) .arrow{bottom:-4px}:host([data-popper-placement^=bottom]) .arrow{top:-4px}:host([data-popper-placement^=left]) .arrow{right:-4px}:host([data-popper-placement^=right]) .arrow{left:-4px}:host{pointer-events:none}:host([open]){pointer-events:initial}.calcite-popper-anim{border-radius:0.25rem;border-width:1px;border-style:solid;border-color:var(--calcite-ui-border-3);background-color:var(--calcite-ui-foreground-1)}.arrow::before{outline:1px solid var(--calcite-ui-border-3)}.header{display:-ms-flexbox;display:flex;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-align:stretch;align-items:stretch;-ms-flex-pack:start;justify-content:flex-start;border-width:0px;border-bottom-width:1px;border-style:solid;background-color:var(--calcite-ui-foreground-1);border-bottom-color:var(--calcite-ui-border-3)}.heading{margin:0px;display:block;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-item-align:center;align-self:center;white-space:normal;padding-left:1rem;padding-right:1rem;padding-top:0.75rem;padding-bottom:0.75rem;font-size:var(--calcite-font-size-0);line-height:1.375;font-weight:var(--calcite-font-weight-medium);color:var(--calcite-ui-text-1);word-wrap:break-word;word-break:break-word}.container{position:relative;display:-ms-flexbox;display:flex;height:100%;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;border-radius:0.25rem;background-color:var(--calcite-ui-foreground-1);color:var(--calcite-ui-text-1)}.container.has-header{-ms-flex-direction:column;flex-direction:column}.content{display:-ms-flexbox;display:flex;height:100%;width:100%;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-item-align:center;align-self:center;word-wrap:break-word;word-break:break-word}.close-button-container{display:-ms-flexbox;display:flex;overflow:hidden;-ms-flex:0 0 auto;flex:0 0 auto;border-start-end-radius:0.25rem;border-end-end-radius:0.25rem}::slotted(calcite-panel),::slotted(calcite-flow){height:100%}";
16
16
 
17
17
  const Popover = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
18
18
  constructor() {
@@ -62,7 +62,7 @@ const Popover = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
62
62
  * Determines where the component will be positioned relative to the referenceElement.
63
63
  * @see [PopperPlacement](https://github.com/Esri/calcite-components/blob/master/src/utils/popper.ts#L25)
64
64
  */
65
- this.placement = "auto";
65
+ this.placement = defaultPopoverPlacement;
66
66
  /** Text for close button.
67
67
  * @default "Close"
68
68
  */
@@ -304,6 +304,10 @@ function getContainingBlock(element) {
304
304
 
305
305
  var currentNode = getParentNode(element);
306
306
 
307
+ if (isShadowRoot(currentNode)) {
308
+ currentNode = currentNode.host;
309
+ }
310
+
307
311
  while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {
308
312
  var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that
309
313
  // create a containing block.
@@ -527,7 +531,7 @@ function mapToStyles(_ref2) {
527
531
 
528
532
  if (placement === top || (placement === left || placement === right) && variation === end) {
529
533
  sideY = bottom;
530
- var offsetY = isFixed && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]
534
+ var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]
531
535
  offsetParent[heightProp];
532
536
  y -= offsetY - popperRect.height;
533
537
  y *= gpuAcceleration ? 1 : -1;
@@ -535,7 +539,7 @@ function mapToStyles(_ref2) {
535
539
 
536
540
  if (placement === left || (placement === top || placement === bottom) && variation === end) {
537
541
  sideX = right;
538
- var offsetX = isFixed && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]
542
+ var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]
539
543
  offsetParent[widthProp];
540
544
  x -= offsetX - popperRect.width;
541
545
  x *= gpuAcceleration ? 1 : -1;
@@ -1787,6 +1791,15 @@ var createPopper$1 = /*#__PURE__*/popperGenerator({
1787
1791
  defaultModifiers: defaultModifiers
1788
1792
  }); // eslint-disable-next-line import/no-unused-modules
1789
1793
 
1794
+ const defaultMenuPlacement = "bottom-leading";
1795
+ const popperMenuFlipPlacements = [
1796
+ "top-start",
1797
+ "top",
1798
+ "top-end",
1799
+ "bottom-start",
1800
+ "bottom",
1801
+ "bottom-end"
1802
+ ];
1790
1803
  const CSS = {
1791
1804
  animation: "calcite-popper-anim",
1792
1805
  animationActive: "calcite-popper-anim--active"
@@ -1827,4 +1840,4 @@ function hypotenuse(sideA, sideB) {
1827
1840
  const visiblePointerSize = 4;
1828
1841
  const defaultOffsetDistance = Math.ceil(hypotenuse(visiblePointerSize, visiblePointerSize));
1829
1842
 
1830
- export { CSS as C, createPopper as c, defaultOffsetDistance as d, updatePopper as u };
1843
+ export { CSS as C, defaultMenuPlacement as a, createPopper as c, defaultOffsetDistance as d, popperMenuFlipPlacements as p, updatePopper as u };
@@ -17,9 +17,10 @@ const CSS = {
17
17
  const TEXT = {
18
18
  close: "Close"
19
19
  };
20
+ const defaultPopoverPlacement = "auto";
20
21
  const POPOVER_REFERENCE = "data-calcite-popover-reference";
21
22
  const ARIA_CONTROLS = "aria-controls";
22
23
  const ARIA_EXPANDED = "aria-expanded";
23
24
  const HEADING_LEVEL = 2;
24
25
 
25
- export { ARIA_EXPANDED as A, CSS as C, HEADING_LEVEL as H, POPOVER_REFERENCE as P, TEXT as T, ARIA_CONTROLS as a };
26
+ export { ARIA_EXPANDED as A, CSS as C, HEADING_LEVEL as H, POPOVER_REFERENCE as P, TEXT as T, ARIA_CONTROLS as a, defaultPopoverPlacement as d };