@momentum-ui/web-components 2.22.17 → 2.23.0

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 (48) hide show
  1. package/dist/1439.js +1 -1
  2. package/dist/3135.js +1 -1
  3. package/dist/3820.js +1 -0
  4. package/dist/587.js +1 -1
  5. package/dist/6015.js +1 -1
  6. package/dist/6652.js +1 -1
  7. package/dist/6677.js +1 -1
  8. package/dist/754.js +1 -1
  9. package/dist/8004.js +1 -0
  10. package/dist/9058.js +1 -1
  11. package/dist/chunks/{md-7044.js → md-4663.js} +1 -1
  12. package/dist/comp/md-card-entry.js +1 -1
  13. package/dist/comp/md-card.js +1 -1
  14. package/dist/comp/md-coachmark-popover-entry.js +37 -41
  15. package/dist/comp/md-coachmark-popover.js +1 -1
  16. package/dist/comp/md-combobox-entry.js +1 -1
  17. package/dist/comp/md-combobox.js +1 -1
  18. package/dist/comp/md-date-range-picker-entry.js +1 -1
  19. package/dist/comp/md-date-range-picker.js +1 -1
  20. package/dist/comp/md-date-time-picker-entry.js +1 -1
  21. package/dist/comp/md-date-time-picker.js +1 -1
  22. package/dist/comp/md-datepicker-entry.js +1 -1
  23. package/dist/comp/md-datepicker.js +1 -1
  24. package/dist/comp/md-draggable-entry.js +1 -1
  25. package/dist/comp/md-draggable.js +1 -1
  26. package/dist/comp/md-floating-modal-entry.js +1 -1
  27. package/dist/comp/md-floating-modal.js +1 -1
  28. package/dist/comp/md-phone-input-entry.js +1 -1
  29. package/dist/comp/md-phone-input.js +1 -1
  30. package/dist/comp/md-popover-entry.js +17 -26
  31. package/dist/comp/md-popover.js +1 -1
  32. package/dist/comp/md-tabs-entry.js +1 -1
  33. package/dist/comp/md-timepicker-entry.js +1 -1
  34. package/dist/comp/md-timepicker.js +1 -1
  35. package/dist/index-entry.js +48 -52
  36. package/dist/index.js +1 -1
  37. package/dist/types/components/coachmark-popover/CoachmarkPopover.d.ts +1 -0
  38. package/dist/types/components/combobox/ComboBox.d.ts +1 -1
  39. package/dist/types/components/popover/Popover.constants.d.ts +53 -0
  40. package/dist/types/components/popover/Popover.d.ts +288 -191
  41. package/dist/types/components/popover/Popover.events.d.ts +34 -0
  42. package/dist/types/components/popover/Popover.stack.d.ts +45 -0
  43. package/dist/types/components/popover/Popover.types.d.ts +13 -1
  44. package/dist/types/components/popover/Popover.utils.d.ts +63 -0
  45. package/dist/types/index.d.ts +1 -0
  46. package/dist/types/utils/helpers.d.ts +2 -0
  47. package/package.json +2 -1
  48. package/dist/4663.js +0 -1
@@ -0,0 +1,45 @@
1
+ import { type Popover } from "./Popover";
2
+ /**
3
+ * Manages a stack of popovers to control their order and lifecycle.
4
+ * This class allows adding, removing, and retrieving popovers
5
+ * while maintaining their stacking behavior.
6
+ *
7
+ */
8
+ declare class PopoverStack {
9
+ /**
10
+ * Stack to maintain the order of popovers
11
+ * @internal
12
+ */
13
+ private stack;
14
+ /**
15
+ * Adds a popover to the stack
16
+ *
17
+ * @param popover - Popover instance
18
+ */
19
+ push(popover: Popover): void;
20
+ /**
21
+ * Removes the last popover from the stack
22
+ *
23
+ * @returns The last popover in the stack
24
+ */
25
+ pop(): Popover | undefined;
26
+ /**
27
+ * Returns the last popover in the stack
28
+ * without removing it
29
+ *
30
+ * @returns The last popover in the stack
31
+ */
32
+ peek(): Popover | undefined;
33
+ /**
34
+ * Removes a popover from the stack
35
+ *
36
+ * @param popover - Popover instance
37
+ */
38
+ remove(popover: Popover): void;
39
+ /**
40
+ * Clears the stack
41
+ */
42
+ clear(): void;
43
+ }
44
+ export declare const popoverStack: PopoverStack;
45
+ export {};
@@ -1,8 +1,20 @@
1
+ import { COLOR, POPOVER_PLACEMENT, POPOVER_STRATEGY, TRIGGER } from "./Popover.constants";
2
+ export type ValueOf<T> = T[keyof T];
3
+ type PopoverPlacement = ValueOf<typeof POPOVER_PLACEMENT>;
4
+ type PopoverColor = ValueOf<typeof COLOR>;
5
+ type PopoverTrigger = ValueOf<typeof TRIGGER> | `${ValueOf<typeof TRIGGER>} ${ValueOf<typeof TRIGGER>}`;
6
+ type PopoverStrategy = ValueOf<typeof POPOVER_STRATEGY>;
1
7
  export declare const Placement: readonly ["auto", "auto-start", "auto-end", "left-start", "left", "left-end", "right-start", "right", "right-end", "top-start", "top", "top-end", "bottom-start", "bottom", "bottom-end"];
2
- export declare const ARROW_HEIGHT = 16;
8
+ interface Events {
9
+ onShownEvent: Event;
10
+ onHiddenEvent: Event;
11
+ onCreatedEvent: Event;
12
+ onDestroyedEvent: Event;
13
+ }
3
14
  export declare const Strategy: readonly ["fixed", "absolute"];
4
15
  export declare const PopoverRole: readonly ["dialog", "menu", "tooltip"];
5
16
  export declare const Triggers: readonly ["click", "mouseenter", "manual"];
6
17
  export type PlacementType = (typeof Placement)[number];
7
18
  export type StrategyType = (typeof Strategy)[number];
8
19
  export type PopoverRoleType = (typeof PopoverRole)[number];
20
+ export type { Events, PopoverColor, PopoverPlacement, PopoverStrategy, PopoverTrigger };
@@ -0,0 +1,63 @@
1
+ import { type Popover } from "./Popover";
2
+ export declare class PopoverUtils {
3
+ /** @internal */
4
+ private readonly popover;
5
+ /** @internal */
6
+ private arrowPixelChange;
7
+ /** @internal */
8
+ private originalParent;
9
+ /** @internal */
10
+ private originalNextSibling;
11
+ constructor(popover: Popover);
12
+ /**
13
+ * Parses the delay string and sets the open and close delay values.
14
+ * If the delay string is invalid, the delay is set to 0.
15
+ * @returns An array containing the open and close delay values.
16
+ * @throws An error if the delay value is invalid.
17
+ */
18
+ setupDelay(): number[];
19
+ /**
20
+ * Sets up the hover bridge for the popover.
21
+ * The hover bridge is used to prevent the popover from closing when the mouse is over the popover.
22
+ *
23
+ * @param placement - The placement of the popover.
24
+ */
25
+ setupHoverBridge(placement: string): void;
26
+ /**
27
+ * If the `appendTo` property is set, finds the corresponding
28
+ * DOM element by its ID, and appends this popover as a child of that element when opened.
29
+ * When closed, returns to original position.
30
+ * @param isOpen Whether the popover is being opened (true) or closed (false)
31
+ */
32
+ handleAppendTo(isOpen: boolean): void;
33
+ /**
34
+ * Sets up the accessibility attributes for the popover.
35
+ */
36
+ setupAccessibility(): void;
37
+ /**
38
+ * Updates the aria-haspopup attribute on the trigger element.
39
+ */
40
+ updateAriaHasPopupAttribute(): void;
41
+ /**
42
+ * Updates the aria-expanded attribute on the trigger element.
43
+ */
44
+ updateAriaExpandedAttribute(): void;
45
+ /**
46
+ * Updates the arrow style based on the arrow data and placement.
47
+ *
48
+ * @param arrowData - The arrow data x and y.
49
+ * @param placement - The placement of the popover.
50
+ */
51
+ updateArrowStyle(arrowData: {
52
+ x?: number;
53
+ y?: number;
54
+ }, placement: string): void;
55
+ /**
56
+ * Updates the popover style based on the x and y position.
57
+ *
58
+ * @param x - The x position.
59
+ * @param y - The y position.
60
+ */
61
+ updatePopoverStyle(x: number, y: number): void;
62
+ createBackdrop(): void;
63
+ }
@@ -81,3 +81,4 @@ export { ToggleSwitch } from "./components/toggle-switch/ToggleSwitch";
81
81
  export { Tooltip } from "./components/tooltip/Tooltip";
82
82
  export { iconUrlManager } from "./managers/IconUrlManager";
83
83
  export { ThemeManager, themeManager } from "./managers/ThemeManager";
84
+ export type { Events, PopoverColor, PopoverPlacement, PopoverStrategy, PopoverTrigger } from "./components/popover/Popover.types";
@@ -16,3 +16,5 @@ export declare function debounce<T>(func: Function, wait: number, immediate?: bo
16
16
  export declare const throttle: (fn: (...args: any[]) => unknown, delay?: number) => (...args: any[]) => void;
17
17
  export declare function closestElement(selector: string, base: HTMLElement): HTMLElement | null;
18
18
  export declare function getElementSafe<T>(elements: T[], index: number): T | undefined;
19
+ export declare function querySelectorDeep(selector: string, base?: HTMLElement | Document | ShadowRoot): Element | null;
20
+ export declare function getElementByIdDeep(id: string, base?: HTMLElement | Document | ShadowRoot): Element | null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@momentum-ui/web-components",
3
- "version": "2.22.17",
3
+ "version": "2.23.0",
4
4
  "author": "Yana Harris",
5
5
  "license": "MIT",
6
6
  "repository": "https://github.com/momentum-design/momentum-ui.git",
@@ -15,6 +15,7 @@
15
15
  "@interactjs/utils": "1.10.3",
16
16
  "@momentum-design/icons": "0.19.0",
17
17
  "@popperjs/core": "^2.11.8",
18
+ "@floating-ui/dom": "^1.7.0",
18
19
  "country-codes-list": "1.6.8",
19
20
  "country-flags-svg": "1.1.4",
20
21
  "dompurify": "^3.2.4",
package/dist/4663.js DELETED
@@ -1 +0,0 @@
1
- "use strict";(self["momentum-web-components-[id]"]=self["momentum-web-components-[id]"]||[]).push([[4663,5211],{35211:(o,r,e)=>{e.d(r,{KC:()=>p});const p=16},50325:(o,r,e)=>{e.d(r,{A:()=>p});const p=e(41488).css`.md-popover{box-sizing:border-box;position:relative;color:var(--popover-text-color);--popover-variant-border-color:var(--popover-border-color);--popover-variant-bg-color:var(--popover-bg-color)}.md-popover.inverted{color:var(--popover-inverted-text-color);--popover-variant-border-color:var(--popover-inverted-border-color);--popover-variant-bg-color:var(--popover-inverted-bg-color)}.md-popover *{box-sizing:inherit}.md-popover .popover-container{filter:drop-shadow(0 0 1px rgba(0, 0, 0, .12)) drop-shadow(0 24px 48px rgba(0, 0, 0, .2));box-sizing:border-box;display:none;position:absolute;z-index:1000;background-color:var(--popover-variant-bg-color);border:1px solid var(--popover-variant-border-color);border-radius:.5rem;padding:.75rem;min-height:24px;min-width:14px;max-width:292px}.md-popover .popover-container[data-show]{display:flex}.md-popover .popover-content{display:flex;justify-content:space-around;width:100%;flex-grow:1;font-size:1rem;font-weight:400;line-height:1.5rem}.md-popover .cancel-icon-button{position:absolute;right:.75rem;top:.75rem;padding-left:.5rem;width:1.25rem;height:1.25rem;cursor:pointer}.md-popover .popover-arrow{position:absolute;width:0;height:0;visibility:hidden}.md-popover .popover-arrow::before{content:"";position:absolute;width:16px;height:16px;background:var(--popover-variant-bg-color);border:1px solid var(--popover-variant-border-color);transform:rotate(45deg);visibility:visible}.popover-container[data-popper-placement^=top]>.popover-arrow{bottom:0}.popover-container[data-popper-placement^=top]>.popover-arrow::before{left:calc(50% - 8px);bottom:-9px;border-top:none;border-left:none;border-bottom-right-radius:3px}.popover-container[data-popper-placement^=bottom]>.popover-arrow{top:0}.popover-container[data-popper-placement^=bottom]>.popover-arrow::before{left:calc(50% - 8px);top:-9px;border-bottom:none;border-right:none;border-top-left-radius:3px}.popover-container[data-popper-placement^=right]>.popover-arrow{left:0}.popover-container[data-popper-placement^=right]>.popover-arrow::before{left:-9px;top:calc(50% - 8px);border-right:none;border-top:none;border-bottom-left-radius:3px}.popover-container[data-popper-placement^=left]>.popover-arrow{right:0}.popover-container[data-popper-placement^=left]>.popover-arrow::before{right:-9px;border-bottom:none;border-left:none;top:calc(50% - 8px);border-top-right-radius:3px}`}}]);