@crowdstrike/glide-core 0.26.0 → 0.27.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 (105) hide show
  1. package/dist/accordion.d.ts +2 -2
  2. package/dist/accordion.js +1 -1
  3. package/dist/button-group.button.d.ts +2 -2
  4. package/dist/button-group.button.js +1 -1
  5. package/dist/button-group.d.ts +3 -3
  6. package/dist/button-group.js +1 -1
  7. package/dist/button.d.ts +2 -2
  8. package/dist/button.js +1 -1
  9. package/dist/checkbox-group.d.ts +3 -3
  10. package/dist/checkbox-group.js +9 -9
  11. package/dist/checkbox.d.ts +2 -3
  12. package/dist/checkbox.js +3 -3
  13. package/dist/checkbox.styles.js +8 -16
  14. package/dist/drawer.d.ts +2 -2
  15. package/dist/drawer.js +1 -1
  16. package/dist/dropdown.d.ts +8 -13
  17. package/dist/dropdown.js +53 -55
  18. package/dist/dropdown.option.d.ts +2 -3
  19. package/dist/dropdown.option.js +1 -1
  20. package/dist/dropdown.option.styles.js +16 -79
  21. package/dist/dropdown.styles.js +10 -29
  22. package/dist/form-controls-layout.d.ts +3 -3
  23. package/dist/form-controls-layout.js +1 -1
  24. package/dist/icon-button.d.ts +2 -2
  25. package/dist/icon-button.js +1 -1
  26. package/dist/icon-button.styles.js +29 -0
  27. package/dist/inline-alert.d.ts +2 -2
  28. package/dist/inline-alert.js +1 -1
  29. package/dist/input.d.ts +2 -2
  30. package/dist/input.js +2 -2
  31. package/dist/label.d.ts +2 -2
  32. package/dist/label.js +1 -1
  33. package/dist/label.styles.js +5 -1
  34. package/dist/library/assert-slot.d.ts +1 -1
  35. package/dist/library/assert-slot.test.js +22 -22
  36. package/dist/library/expect-window-error.js +1 -1
  37. package/dist/library/final.test.js +9 -9
  38. package/dist/library/localize.d.ts +2 -1
  39. package/dist/library/localize.test.js +6 -6
  40. package/dist/library/required.test.js +5 -5
  41. package/dist/library/unique-id.d.ts +2 -0
  42. package/dist/library/unique-id.js +1 -0
  43. package/dist/link.d.ts +2 -3
  44. package/dist/link.js +1 -1
  45. package/dist/link.styles.js +1 -1
  46. package/dist/menu.button.d.ts +2 -2
  47. package/dist/menu.button.js +1 -1
  48. package/dist/menu.d.ts +3 -9
  49. package/dist/menu.js +1 -1
  50. package/dist/menu.link.d.ts +2 -2
  51. package/dist/menu.link.js +1 -1
  52. package/dist/menu.options.d.ts +3 -4
  53. package/dist/menu.options.js +1 -1
  54. package/dist/menu.options.styles.js +6 -19
  55. package/dist/modal.d.ts +6 -6
  56. package/dist/modal.icon-button.d.ts +2 -2
  57. package/dist/modal.icon-button.js +1 -1
  58. package/dist/modal.js +1 -1
  59. package/dist/popover.d.ts +2 -2
  60. package/dist/popover.js +1 -1
  61. package/dist/radio-group.d.ts +3 -3
  62. package/dist/radio-group.js +6 -6
  63. package/dist/radio-group.radio.d.ts +2 -2
  64. package/dist/radio-group.radio.js +1 -1
  65. package/dist/spinner.d.ts +2 -2
  66. package/dist/spinner.js +1 -1
  67. package/dist/split-button.d.ts +4 -10
  68. package/dist/split-button.js +1 -1
  69. package/dist/split-button.primary-button.d.ts +2 -2
  70. package/dist/split-button.primary-button.js +1 -1
  71. package/dist/split-button.primary-button.styles.js +4 -14
  72. package/dist/split-button.primary-link.d.ts +2 -2
  73. package/dist/split-button.primary-link.js +1 -1
  74. package/dist/split-button.secondary-button.d.ts +3 -4
  75. package/dist/split-button.secondary-button.js +1 -1
  76. package/dist/split-button.secondary-button.styles.js +4 -15
  77. package/dist/tab.d.ts +12 -4
  78. package/dist/tab.group.d.ts +4 -5
  79. package/dist/tab.group.js +1 -1
  80. package/dist/tab.group.styles.js +14 -16
  81. package/dist/tab.js +1 -1
  82. package/dist/tab.panel.d.ts +12 -5
  83. package/dist/tab.panel.js +1 -1
  84. package/dist/tag.d.ts +2 -4
  85. package/dist/tag.js +1 -1
  86. package/dist/tag.styles.js +7 -52
  87. package/dist/textarea.d.ts +2 -2
  88. package/dist/textarea.js +7 -7
  89. package/dist/textarea.styles.js +2 -1
  90. package/dist/toast.d.ts +3 -3
  91. package/dist/toast.js +1 -1
  92. package/dist/toast.toasts.d.ts +9 -9
  93. package/dist/toast.toasts.js +17 -17
  94. package/dist/toggle.d.ts +2 -2
  95. package/dist/toggle.js +1 -1
  96. package/dist/tooltip.container.d.ts +2 -2
  97. package/dist/tooltip.container.js +1 -1
  98. package/dist/tooltip.d.ts +3 -3
  99. package/dist/tooltip.js +1 -1
  100. package/dist/translations/en.js +1 -1
  101. package/dist/translations/fr.d.ts +1 -1
  102. package/dist/translations/fr.js +1 -1
  103. package/dist/translations/ja.d.ts +1 -1
  104. package/dist/translations/ja.js +1 -1
  105. package/package.json +4 -4
@@ -14,16 +14,16 @@ import final from './final.js';
14
14
  // used together. Using both decorators in tests allow us
15
15
  // to verifying the component name is included in the
16
16
  // message.
17
- let GlideCoreWithRequiredProperty = class GlideCoreWithRequiredProperty extends LitElement {
17
+ let WithRequiredProperty = class WithRequiredProperty extends LitElement {
18
18
  };
19
19
  __decorate([
20
20
  property(),
21
21
  required
22
- ], GlideCoreWithRequiredProperty.prototype, "label", void 0);
23
- GlideCoreWithRequiredProperty = __decorate([
22
+ ], WithRequiredProperty.prototype, "label", void 0);
23
+ WithRequiredProperty = __decorate([
24
24
  customElement('glide-core-with-required-property'),
25
25
  final
26
- ], GlideCoreWithRequiredProperty);
26
+ ], WithRequiredProperty);
27
27
  it('throws when a required attribute is missing', async () => {
28
28
  const stub = sinon.stub(console, 'error');
29
29
  const spy = sinon.spy();
@@ -32,7 +32,7 @@ it('throws when a required attribute is missing', async () => {
32
32
  await waitUntil(() => spy.callCount);
33
33
  expect(spy.callCount).to.equal(1);
34
34
  expect(spy.args.at(0)?.at(0) instanceof PromiseRejectionEvent).to.be.true;
35
- expect(spy.args.at(0)?.at(0).reason.message).to.equal('Expected GlideCoreWithRequiredProperty to have a `label` property.');
35
+ expect(spy.args.at(0)?.at(0).reason.message).to.equal('Expected WithRequiredProperty to have a `label` property.');
36
36
  stub.restore();
37
37
  });
38
38
  it('does not throw when a required attribute is not missing', async () => {
@@ -0,0 +1,2 @@
1
+ declare const _default: () => string;
2
+ export default _default;
@@ -0,0 +1 @@
1
+ export default()=>`${Math.random().toString(36).slice(2)}${Math.random().toString(36).slice(2)}`;
package/dist/link.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { LitElement } from 'lit';
2
2
  declare global {
3
3
  interface HTMLElementTagNameMap {
4
- 'glide-core-link': GlideCoreLink;
4
+ 'glide-core-link': Link;
5
5
  }
6
6
  }
7
7
  /**
@@ -14,9 +14,8 @@ declare global {
14
14
  * @readonly
15
15
  * @attr {string} [version]
16
16
  */
17
- export default class GlideCoreLink extends LitElement {
17
+ export default class Link extends LitElement {
18
18
  #private;
19
- static formAssociated: boolean;
20
19
  static shadowRootOptions: ShadowRootInit;
21
20
  static styles: import("lit").CSSResult[];
22
21
  label?: string;
package/dist/link.js CHANGED
@@ -1 +1 @@
1
- var __decorate=this&&this.__decorate||function(e,t,o,r){var i,s=arguments.length,l=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,o,r);else for(var d=e.length-1;d>=0;d--)(i=e[d])&&(l=(s<3?i(l):s>3?i(t,o,l):i(t,o))||l);return s>3&&l&&Object.defineProperty(t,o,l),l};import{html,LitElement}from"lit";import{classMap}from"lit/directives/class-map.js";import{customElement,property}from"lit/decorators.js";import{ifDefined}from"lit/directives/if-defined.js";import{createRef,ref}from"lit/directives/ref.js";import packageJson from"../package.json"with{type:"json"};import styles from"./link.styles.js";import shadowRootMode from"./library/shadow-root-mode.js";import final from"./library/final.js";import required from"./library/required.js";let GlideCoreLink=class GlideCoreLink extends LitElement{constructor(){super(...arguments),this.disabled=!1,this.version=packageJson.version,this.#e=createRef()}static{this.formAssociated=!0}static{this.shadowRootOptions={...LitElement.shadowRootOptions,delegatesFocus:!0,mode:shadowRootMode}}static{this.styles=styles}click(){this.#e.value?.click()}render(){return html`<a aria-disabled="${this.disabled}" class="${classMap({component:!0,disabled:this.disabled})}" data-test="component" download="${ifDefined(this.download)}" href="${ifDefined(this.href)}" target="${ifDefined(this.target)}" @click="${this.#t}" ${ref(this.#e)}>${this.label}</a>`}#e;#t(e){this.disabled&&(e.preventDefault(),e.stopPropagation())}};__decorate([property({reflect:!0}),required],GlideCoreLink.prototype,"label",void 0),__decorate([property({reflect:!0,type:Boolean})],GlideCoreLink.prototype,"disabled",void 0),__decorate([property({reflect:!0})],GlideCoreLink.prototype,"download",void 0),__decorate([property({reflect:!0})],GlideCoreLink.prototype,"href",void 0),__decorate([property({reflect:!0})],GlideCoreLink.prototype,"target",void 0),__decorate([property({reflect:!0})],GlideCoreLink.prototype,"version",void 0),GlideCoreLink=__decorate([customElement("glide-core-link"),final],GlideCoreLink);export default GlideCoreLink;
1
+ var __decorate=this&&this.__decorate||function(e,t,o,r){var i,s=arguments.length,l=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,o,r);else for(var n=e.length-1;n>=0;n--)(i=e[n])&&(l=(s<3?i(l):s>3?i(t,o,l):i(t,o))||l);return s>3&&l&&Object.defineProperty(t,o,l),l};import{html,LitElement}from"lit";import{classMap}from"lit/directives/class-map.js";import{customElement,property}from"lit/decorators.js";import{ifDefined}from"lit/directives/if-defined.js";import{createRef,ref}from"lit/directives/ref.js";import packageJson from"../package.json"with{type:"json"};import styles from"./link.styles.js";import shadowRootMode from"./library/shadow-root-mode.js";import final from"./library/final.js";import required from"./library/required.js";let Link=class Link extends LitElement{constructor(){super(...arguments),this.disabled=!1,this.version=packageJson.version,this.#e=createRef()}static{this.shadowRootOptions={...LitElement.shadowRootOptions,delegatesFocus:!0,mode:shadowRootMode}}static{this.styles=styles}click(){this.#e.value?.click()}render(){return html`<a aria-disabled="${this.disabled}" class="${classMap({component:!0,disabled:this.disabled,href:Boolean(this.href)})}" data-test="component" download="${ifDefined(this.download)}" href="${ifDefined(this.href)}" target="${ifDefined(this.target)}" @click="${this.#t}" ${ref(this.#e)}>${this.label}</a>`}#e;#t(e){this.disabled&&(e.preventDefault(),e.stopPropagation())}};__decorate([property({reflect:!0}),required],Link.prototype,"label",void 0),__decorate([property({reflect:!0,type:Boolean})],Link.prototype,"disabled",void 0),__decorate([property({reflect:!0})],Link.prototype,"download",void 0),__decorate([property({reflect:!0})],Link.prototype,"href",void 0),__decorate([property({reflect:!0})],Link.prototype,"target",void 0),__decorate([property({reflect:!0})],Link.prototype,"version",void 0),Link=__decorate([customElement("glide-core-link"),final],Link);export default Link;
@@ -18,7 +18,7 @@ import{css}from"lit";import focusOutline from"./styles/focus-outline.js";export
18
18
  cursor: not-allowed;
19
19
  }
20
20
 
21
- &:not(.disabled) {
21
+ &.href:not(.disabled) {
22
22
  color: var(--glide-core-color-interactive-text-link--hover);
23
23
  text-decoration: underline;
24
24
  }
@@ -1,7 +1,7 @@
1
1
  import { LitElement } from 'lit';
2
2
  declare global {
3
3
  interface HTMLElementTagNameMap {
4
- 'glide-core-menu-button': GlideCoreMenuButton;
4
+ 'glide-core-menu-button': MenuButton;
5
5
  }
6
6
  }
7
7
  /**
@@ -22,7 +22,7 @@ declare global {
22
22
  *
23
23
  * @slot {Element} [icon]
24
24
  */
25
- export default class GlideCoreMenuButton extends LitElement {
25
+ export default class MenuButton extends LitElement {
26
26
  #private;
27
27
  static shadowRootOptions: ShadowRootInit;
28
28
  static styles: import("lit").CSSResult[];
@@ -1 +1 @@
1
- var __decorate=this&&this.__decorate||function(e,t,o,r){var i,n=arguments.length,s=n<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,o,r);else for(var l=e.length-1;l>=0;l--)(i=e[l])&&(s=(n<3?i(s):n>3?i(t,o,s):i(t,o))||s);return n>3&&s&&Object.defineProperty(t,o,s),s};import{html,LitElement}from"lit";import{classMap}from"lit/directives/class-map.js";import{createRef,ref}from"lit/directives/ref.js";import{customElement,property}from"lit/decorators.js";import{nanoid}from"nanoid";import packageJson from"../package.json"with{type:"json"};import styles from"./menu.button.styles.js";import shadowRootMode from"./library/shadow-root-mode.js";import final from"./library/final.js";import required from"./library/required.js";let GlideCoreMenuButton=class GlideCoreMenuButton extends LitElement{constructor(){super(...arguments),this.id=nanoid(),this.privateActive=!1,this.role="menuitem",this.tabIndex=-1,this.version=packageJson.version,this.#e=createRef(),this.#t=!1}static{this.shadowRootOptions={...LitElement.shadowRootOptions,mode:shadowRootMode}}static{this.styles=styles}get disabled(){return this.#t}set disabled(e){this.#t=e,e&&this.privateActive&&this.dispatchEvent(new Event("private-disabled",{bubbles:!0}))}click(){this.#e.value?.click()}render(){return html`<button class="${classMap({component:!0,active:this.privateActive,disabled:this.disabled})}" ?disabled="${this.disabled}" data-test="component" type="button" ${ref(this.#e)}><slot name="icon"></slot>${this.label}</button>`}#e;#t};__decorate([property({reflect:!0}),required],GlideCoreMenuButton.prototype,"label",void 0),__decorate([property({reflect:!0,type:Boolean})],GlideCoreMenuButton.prototype,"disabled",null),__decorate([property({reflect:!0})],GlideCoreMenuButton.prototype,"id",void 0),__decorate([property({type:Boolean})],GlideCoreMenuButton.prototype,"privateActive",void 0),__decorate([property({reflect:!0})],GlideCoreMenuButton.prototype,"role",void 0),__decorate([property({attribute:"tabindex",reflect:!0,type:Number})],GlideCoreMenuButton.prototype,"tabIndex",void 0),__decorate([property({reflect:!0})],GlideCoreMenuButton.prototype,"version",void 0),GlideCoreMenuButton=__decorate([customElement("glide-core-menu-button"),final],GlideCoreMenuButton);export default GlideCoreMenuButton;
1
+ var __decorate=this&&this.__decorate||function(e,t,o,r){var i,n=arguments.length,s=n<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,o,r);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(n<3?i(s):n>3?i(t,o,s):i(t,o))||s);return n>3&&s&&Object.defineProperty(t,o,s),s};import{html,LitElement}from"lit";import{classMap}from"lit/directives/class-map.js";import{createRef,ref}from"lit/directives/ref.js";import{customElement,property}from"lit/decorators.js";import packageJson from"../package.json"with{type:"json"};import styles from"./menu.button.styles.js";import shadowRootMode from"./library/shadow-root-mode.js";import final from"./library/final.js";import required from"./library/required.js";import uniqueId from"./library/unique-id.js";let MenuButton=class MenuButton extends LitElement{constructor(){super(...arguments),this.id=uniqueId(),this.privateActive=!1,this.role="menuitem",this.tabIndex=-1,this.version=packageJson.version,this.#e=createRef(),this.#t=!1}static{this.shadowRootOptions={...LitElement.shadowRootOptions,mode:shadowRootMode}}static{this.styles=styles}get disabled(){return this.#t}set disabled(e){this.#t=e,e&&this.privateActive&&this.dispatchEvent(new Event("private-disabled",{bubbles:!0}))}click(){this.#e.value?.click()}render(){return html`<button class="${classMap({component:!0,active:this.privateActive,disabled:this.disabled})}" ?disabled="${this.disabled}" data-test="component" type="button" ${ref(this.#e)}><slot name="icon"></slot>${this.label}</button>`}#e;#t};__decorate([property({reflect:!0}),required],MenuButton.prototype,"label",void 0),__decorate([property({reflect:!0,type:Boolean})],MenuButton.prototype,"disabled",null),__decorate([property({reflect:!0})],MenuButton.prototype,"id",void 0),__decorate([property({type:Boolean})],MenuButton.prototype,"privateActive",void 0),__decorate([property({reflect:!0})],MenuButton.prototype,"role",void 0),__decorate([property({attribute:"tabindex",reflect:!0,type:Number})],MenuButton.prototype,"tabIndex",void 0),__decorate([property({reflect:!0})],MenuButton.prototype,"version",void 0),MenuButton=__decorate([customElement("glide-core-menu-button"),final],MenuButton);export default MenuButton;
package/dist/menu.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { LitElement } from 'lit';
2
2
  declare global {
3
3
  interface HTMLElementTagNameMap {
4
- 'glide-core-menu': GlideCoreMenu;
4
+ 'glide-core-menu': Menu;
5
5
  }
6
6
  }
7
7
  /**
@@ -9,17 +9,16 @@ declare global {
9
9
  * @attr {number} [offset=4]
10
10
  * @attr {boolean} [open=false]
11
11
  * @attr {'bottom'|'left'|'right'|'top'|'bottom-start'|'bottom-end'|'left-start'|'left-end'|'right-start'|'right-end'|'top-start'|'top-end'} [placement='bottom-start']
12
- * @attr {'large'|'small'} [size='large']
13
12
  *
14
13
  * @readonly
15
14
  * @attr {string} [version]
16
15
  *
17
- * @slot {GlideCoreMenuOptions}
16
+ * @slot {MenuOptions}
18
17
  * @slot {Element} [target] - The element to which the popover will anchor. Can be any focusable element.
19
18
  *
20
19
  * @fires {Event} toggle
21
20
  */
22
- export default class GlideCoreMenu extends LitElement {
21
+ export default class Menu extends LitElement {
23
22
  #private;
24
23
  static shadowRootOptions: ShadowRootInit;
25
24
  static styles: import("lit").CSSResult[];
@@ -39,11 +38,6 @@ export default class GlideCoreMenu extends LitElement {
39
38
  get open(): boolean;
40
39
  set open(isOpen: boolean);
41
40
  placement: 'bottom' | 'left' | 'right' | 'top' | 'bottom-start' | 'bottom-end' | 'left-start' | 'left-end' | 'right-start' | 'right-end' | 'top-start' | 'top-end';
42
- /**
43
- * @default 'large'
44
- */
45
- get size(): 'large' | 'small';
46
- set size(size: 'large' | 'small');
47
41
  readonly version: string;
48
42
  connectedCallback(): void;
49
43
  createRenderRoot(): ShadowRoot;
package/dist/menu.js CHANGED
@@ -1 +1 @@
1
- var __decorate=this&&this.__decorate||function(e,t,i,o){var n,s=arguments.length,l=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(l=(s<3?n(l):s>3?n(t,i,l):n(t,i))||l);return s>3&&l&&Object.defineProperty(t,i,l),l};import{html,LitElement}from"lit";import{autoUpdate,computePosition,flip,offset}from"@floating-ui/dom";import{createRef,ref}from"lit/directives/ref.js";import{customElement,property}from"lit/decorators.js";import{nanoid}from"nanoid";import packageJson from"../package.json"with{type:"json"};import GlideCoreMenuButton from"./menu.button.js";import{LocalizeController}from"./library/localize.js";import GlideCoreMenuLink from"./menu.link.js";import GlideCoreMenuOptions from"./menu.options.js";import assertSlot from"./library/assert-slot.js";import styles from"./menu.styles.js";import shadowRootMode from"./library/shadow-root-mode.js";import final from"./library/final.js";let GlideCoreMenu=class GlideCoreMenu extends LitElement{constructor(){super(...arguments),this.placement="bottom-start",this.version=packageJson.version,this.#e=createRef(),this.#t=createRef(),this.#i=!1,this.#o=!1,this.#n=!1,this.#s=!1,this.#l=new LocalizeController(this),this.#a="large",this.#r=createRef(),this.#d=e=>{e.target===this.#t.value&&e.preventDefault()},this.#p=()=>{this.#i=!0},this.#h=()=>{this.#i?this.#i=!1:this.#s?this.#s=!1:(this.open=!1,this.#c&&(this.#c.ariaActivedescendant=""))},this.#u=()=>{this.#s=!0}}static{this.shadowRootOptions={...LitElement.shadowRootOptions,mode:shadowRootMode}}static{this.styles=styles}get loading(){return this.#o}set loading(e){this.#o=e;const t=this.querySelector("glide-core-menu-options");t&&this.#m&&(t.privateLoading=e,this.#m.ariaDescription=e?this.#l.term("loading"):null)}get offset(){return this.#f??Number.parseFloat(window.getComputedStyle(document.body).getPropertyValue("--glide-core-spacing-base-xxs"))*Number.parseFloat(window.getComputedStyle(document.documentElement).fontSize)}set offset(e){this.#f=e}get open(){return this.#n}set open(e){const t=e!==this.#n;this.#n=e,e&&t&&!this.isTargetDisabled?(this.#E(),this.dispatchEvent(new Event("toggle",{bubbles:!0,composed:!0}))):t&&(this.#g(),this.dispatchEvent(new Event("toggle",{bubbles:!0,composed:!0})))}get size(){return this.#a}set size(e){this.#a=e,this.#c&&(this.#c.privateSize=e)}connectedCallback(){super.connectedCallback(),document.addEventListener("click",this.#h,{capture:!0})}createRenderRoot(){return this.#v=super.createRenderRoot(),this.#v}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("click",this.#h,{capture:!0})}firstUpdated(){const e=this.querySelector("glide-core-menu-options");e&&this.#m&&(e.privateLoading=this.loading,this.#m.ariaDescription=this.loading?this.#l.term("loading"):null),this.#t.value&&(this.#t.value.popover="manual",this.open&&!this.isTargetDisabled&&this.#E()),this.#r.value?.addEventListener("mouseup",this.#u),this.#t.value?.addEventListener("mousedown",this.#d),this.#t.value?.addEventListener("mouseup",this.#p)}get isTargetDisabled(){const e=this.#m&&"disabled"in this.#m&&this.#m.disabled,t=this.#m&&"true"===this.#m.ariaDisabled;return Boolean(e)||Boolean(t)}render(){return html`<div class="component" @focusout="${this.#S}" ${ref(this.#e)}><slot class="target-slot" name="target" @click="${this.#y}" @keydown="${this.#b}" @slotchange="${this.#C}" ${assertSlot([Element])} ${ref(this.#r)}></slot><slot class="default-slot" @click="${this.#D}" @focusin="${this.#M}" @keydown="${this.#b}" @mouseover="${this.#w}" @private-disabled="${this.#k}" @private-slot-change="${this.#R}" @slotchange="${this.#O}" ${assertSlot([GlideCoreMenuOptions])} ${ref(this.#t)}></slot></div>`}#A;#e;#t;#i;#o;#n;#s;#l;#f;#v;#a;#r;get#L(){return this.#T?.find((({privateActive:e})=>e))}#d;#p;#h;#u;#G(e){this.#m&&"focus"in this.#m&&this.#m?.focus(e)}#g(){this.#A?.(),this.#c&&(this.#c.ariaActivedescendant=""),this.#m&&(this.#m.ariaExpanded="false"),this.#t.value?.hidePopover()}#S(e){const t=e.relatedTarget instanceof HTMLElement&&this.#v?.contains(e.relatedTarget),i=e.relatedTarget instanceof GlideCoreMenuOptions,o=e.relatedTarget instanceof GlideCoreMenuButton||e.relatedTarget instanceof GlideCoreMenuLink;t||i||o||(this.open=!1)}#O(){this.#c&&(this.#c.privateSize=this.size)}#D(e){e.defaultPrevented||e.target===this.#t.value||(this.open=!1)}#M(e){(e.target instanceof GlideCoreMenuButton||e.target instanceof GlideCoreMenuLink)&&this.#L&&this.#c&&!e.target.disabled&&(this.#L.privateActive=!1,e.target.privateActive=!0,this.#c.ariaActivedescendant=e.target.id)}#w(e){if((e.target instanceof GlideCoreMenuLink||e.target instanceof GlideCoreMenuButton)&&!e.target.disabled){if(this.#T)for(const t of this.#T)t.privateActive=t===e.target;this.#c&&(this.#c.ariaActivedescendant=e.target.id)}}#k(){if(this.#T&&this.#L){const e=this.#T.indexOf(this.#L);this.#L.privateActive=!1;const t=this.#T?.find(((t,i)=>!t.disabled&&i>e));if(t)return void(t.privateActive=!0);const i=this.#T.findLast(((t,i)=>!t.disabled&&i<e));i&&(i.privateActive=!0)}}#R(){const e=this.#T?.find((e=>!e.disabled));!this.#L&&e&&(e.privateActive=!0)}#b(e){const t=this.#m instanceof HTMLSpanElement||this.#m instanceof HTMLDivElement;if([" ","Enter"].includes(e.key)&&this.open)return this.#i=!0,e.preventDefault()," "===e.key&&t&&e.preventDefault(),this.#G(),void this.#L?.click();if([" ","Enter"].includes(e.key)&&!this.open&&t)return e.preventDefault(),void(this.open=!0);if(["Escape"].includes(e.key)&&this.open)return e.preventDefault(),this.open=!1,void this.#G();if(["ArrowUp","ArrowDown"].includes(e.key)&&!this.open&&this.#L&&this.#c)return e.preventDefault(),this.open=!0,void(this.#c.ariaActivedescendant=this.#L.id);if(this.open&&this.#L&&this.#T){const t=this.#T.indexOf(this.#L);if("ArrowUp"===e.key&&!e.metaKey){e.preventDefault();const i=this.#T.findLast(((e,i)=>!e.disabled&&i<t));return void(i&&this.#c&&(this.#L.privateActive=!1,this.#c.ariaActivedescendant=i.id,i.privateActive=!0))}if("ArrowDown"===e.key&&!e.metaKey){e.preventDefault();const i=this.#T.find(((e,i)=>!e.disabled&&i>t));return void(i&&this.#c&&(this.#L.privateActive=!1,this.#c.ariaActivedescendant=i.id,i.privateActive=!0))}if("ArrowUp"===e.key&&e.metaKey||"Home"===e.key||"PageUp"===e.key){e.preventDefault();const t=[...this.#T].reverse().findLast((e=>!e.disabled));return void(t&&this.#c&&(this.#L.privateActive=!1,this.#c.ariaActivedescendant=t.id,t.privateActive=!0))}if("ArrowDown"===e.key&&e.metaKey||"End"===e.key||"PageDown"===e.key){e.preventDefault();const t=[...this.#T].findLast((e=>!e.disabled));return void(t&&this.#c&&(this.#L.privateActive=!1,this.#c.ariaActivedescendant=t.id,t.privateActive=!0))}}}#C(){const e=new MutationObserver((()=>{this.open&&!this.isTargetDisabled?this.#E():this.#g()}));this.#m&&this.#c&&(e.observe(this.#m,{attributes:!0,attributeFilter:["aria-disabled","disabled"]}),this.#m.ariaHasPopup="true",this.#m.id=nanoid(),this.#m.setAttribute("aria-controls",this.#c.id),this.#c.ariaLabelledby=this.#m.id);(this.#m instanceof HTMLSpanElement||this.#m instanceof HTMLDivElement)&&this.#m instanceof HTMLElement&&(this.#m.tabIndex=0),this.open&&!this.isTargetDisabled?this.#E():this.#g()}#y(e){e.defaultPrevented||(this.isTargetDisabled?this.#g():this.#T&&this.#T.length>0&&(this.open=!this.open))}get#c(){const e=this.#t.value?.assignedElements().at(0);return e instanceof GlideCoreMenuOptions?e:null}get#T(){let e=this.#t.value?.assignedElements()?.at(0)?.children;const t=e?.[0];if(t instanceof HTMLSlotElement&&(e=t.assignedElements()),e)return[...e].filter((e=>e instanceof GlideCoreMenuLink||e instanceof GlideCoreMenuButton))}#E(){this.#A?.(),this.#m&&this.#t.value&&(this.#A=autoUpdate(this.#m,this.#t.value,(()=>{(async()=>{if(this.#m&&this.#t.value){const{x:e,y:t,placement:i}=await computePosition(this.#m,this.#t.value,{placement:this.placement,middleware:[offset(this.offset),flip()]});this.#t.value.dataset.placement=i,Object.assign(this.#t.value.style,{left:`${e}px`,top:`${t}px`})}this.#t.value?.showPopover(),this.#c&&this.#L?.id&&(this.#c.ariaActivedescendant=this.#L.id),this.#m&&(this.#m.ariaExpanded="true")})()})))}get#m(){return this.#r.value?.assignedElements().at(0)}};__decorate([property({reflect:!0,type:Boolean})],GlideCoreMenu.prototype,"loading",null),__decorate([property({reflect:!0,type:Number})],GlideCoreMenu.prototype,"offset",null),__decorate([property({reflect:!0,type:Boolean})],GlideCoreMenu.prototype,"open",null),__decorate([property({reflect:!0,useDefault:!0})],GlideCoreMenu.prototype,"placement",void 0),__decorate([property({reflect:!0})],GlideCoreMenu.prototype,"size",null),__decorate([property({reflect:!0})],GlideCoreMenu.prototype,"version",void 0),GlideCoreMenu=__decorate([customElement("glide-core-menu"),final],GlideCoreMenu);export default GlideCoreMenu;
1
+ var __decorate=this&&this.__decorate||function(t,e,i,o){var n,s=arguments.length,a=s<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,i):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,i,o);else for(var l=t.length-1;l>=0;l--)(n=t[l])&&(a=(s<3?n(a):s>3?n(e,i,a):n(e,i))||a);return s>3&&a&&Object.defineProperty(e,i,a),a};import{html,LitElement}from"lit";import{autoUpdate,computePosition,flip,offset}from"@floating-ui/dom";import{createRef,ref}from"lit/directives/ref.js";import{customElement,property}from"lit/decorators.js";import packageJson from"../package.json"with{type:"json"};import MenuButton from"./menu.button.js";import{LocalizeController}from"./library/localize.js";import MenuLink from"./menu.link.js";import MenuOptions from"./menu.options.js";import assertSlot from"./library/assert-slot.js";import styles from"./menu.styles.js";import shadowRootMode from"./library/shadow-root-mode.js";import final from"./library/final.js";import uniqueId from"./library/unique-id.js";let Menu=class Menu extends LitElement{constructor(){super(...arguments),this.placement="bottom-start",this.version=packageJson.version,this.#t=createRef(),this.#e=createRef(),this.#i=!1,this.#o=!1,this.#n=!1,this.#s=!1,this.#a=new LocalizeController(this),this.#l=createRef(),this.#r=t=>{t.target===this.#e.value&&t.preventDefault()},this.#p=()=>{this.#i=!0},this.#c=()=>{this.#i?this.#i=!1:this.#s?this.#s=!1:(this.open=!1,this.#h&&(this.#h.ariaActivedescendant=""))},this.#d=()=>{this.#s=!0}}static{this.shadowRootOptions={...LitElement.shadowRootOptions,mode:shadowRootMode}}static{this.styles=styles}get loading(){return this.#o}set loading(t){this.#o=t;const e=this.querySelector("glide-core-menu-options");e&&this.#u&&(e.privateLoading=t,this.#u.ariaDescription=t?this.#a.term("loading"):null)}get offset(){return this.#m??Number.parseFloat(window.getComputedStyle(document.body).getPropertyValue("--glide-core-spacing-base-xxs"))*Number.parseFloat(window.getComputedStyle(document.documentElement).fontSize)}set offset(t){this.#m=t}get open(){return this.#n}set open(t){const e=t!==this.#n;this.#n=t,t&&e&&!this.isTargetDisabled?(this.#f(),this.dispatchEvent(new Event("toggle",{bubbles:!0,composed:!0}))):e&&(this.#v(),this.dispatchEvent(new Event("toggle",{bubbles:!0,composed:!0})))}connectedCallback(){super.connectedCallback(),document.addEventListener("click",this.#c,{capture:!0})}createRenderRoot(){return this.#E=super.createRenderRoot(),this.#E}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("click",this.#c,{capture:!0})}firstUpdated(){const t=this.querySelector("glide-core-menu-options");t&&this.#u&&(t.privateLoading=this.loading,this.#u.ariaDescription=this.loading?this.#a.term("loading"):null),this.#e.value&&(this.#e.value.popover="manual",this.open&&!this.isTargetDisabled&&this.#f()),this.#l.value?.addEventListener("mouseup",this.#d),this.#e.value?.addEventListener("mousedown",this.#r),this.#e.value?.addEventListener("mouseup",this.#p)}get isTargetDisabled(){const t=this.#u&&"disabled"in this.#u&&this.#u.disabled,e=this.#u&&"true"===this.#u.ariaDisabled;return Boolean(t)||Boolean(e)}render(){return html`<div class="component" @focusout="${this.#g}" ${ref(this.#t)}><slot class="target-slot" name="target" @click="${this.#S}" @keydown="${this.#y}" @slotchange="${this.#b}" ${assertSlot([Element])} ${ref(this.#l)}></slot><slot class="default-slot" @click="${this.#D}" @focusin="${this.#M}" @keydown="${this.#y}" @mouseover="${this.#w}" @private-disabled="${this.#k}" @private-slot-change="${this.#R}" ${assertSlot([MenuOptions])} ${ref(this.#e)}></slot></div>`}#O;#t;#e;#i;#o;#n;#s;#a;#m;#E;#l;get#A(){return this.#L?.find((({privateActive:t})=>t))}#r;#p;#c;#d;#T(t){this.#u&&"focus"in this.#u&&this.#u?.focus(t)}#v(){this.#O?.(),this.#h&&(this.#h.ariaActivedescendant=""),this.#u&&(this.#u.ariaExpanded="false"),this.#e.value?.hidePopover()}#g(t){const e=t.relatedTarget instanceof HTMLElement&&this.#E?.contains(t.relatedTarget),i=t.relatedTarget instanceof MenuOptions,o=t.relatedTarget instanceof MenuButton||t.relatedTarget instanceof MenuLink;e||i||o||(this.open=!1)}#D(t){t.defaultPrevented||t.target===this.#e.value||(this.open=!1)}#M(t){(t.target instanceof MenuButton||t.target instanceof MenuLink)&&this.#A&&this.#h&&!t.target.disabled&&(this.#A.privateActive=!1,t.target.privateActive=!0,this.#h.ariaActivedescendant=t.target.id)}#w(t){if((t.target instanceof MenuLink||t.target instanceof MenuButton)&&!t.target.disabled){if(this.#L)for(const e of this.#L)e.privateActive=e===t.target;this.#h&&(this.#h.ariaActivedescendant=t.target.id)}}#k(){if(this.#L&&this.#A){const t=this.#L.indexOf(this.#A);this.#A.privateActive=!1;const e=this.#L?.find(((e,i)=>!e.disabled&&i>t));if(e)return void(e.privateActive=!0);const i=this.#L.findLast(((e,i)=>!e.disabled&&i<t));i&&(i.privateActive=!0)}}#R(){const t=this.#L?.find((t=>!t.disabled));!this.#A&&t&&(t.privateActive=!0)}#y(t){const e=this.#u instanceof HTMLSpanElement||this.#u instanceof HTMLDivElement;if([" ","Enter"].includes(t.key)&&this.open)return this.#i=!0,t.preventDefault()," "===t.key&&e&&t.preventDefault(),this.#T(),void this.#A?.click();if([" ","Enter"].includes(t.key)&&!this.open&&e)return t.preventDefault(),void(this.open=!0);if(["Escape"].includes(t.key)&&this.open)return t.preventDefault(),this.open=!1,void this.#T();if(["ArrowUp","ArrowDown"].includes(t.key)&&!this.open&&this.#A&&this.#h)return t.preventDefault(),this.open=!0,void(this.#h.ariaActivedescendant=this.#A.id);if(this.open&&this.#A&&this.#L){const e=this.#L.indexOf(this.#A);if("ArrowUp"===t.key&&!t.metaKey){t.preventDefault();const i=this.#L.findLast(((t,i)=>!t.disabled&&i<e));return void(i&&this.#h&&(this.#A.privateActive=!1,this.#h.ariaActivedescendant=i.id,i.privateActive=!0))}if("ArrowDown"===t.key&&!t.metaKey){t.preventDefault();const i=this.#L.find(((t,i)=>!t.disabled&&i>e));return void(i&&this.#h&&(this.#A.privateActive=!1,this.#h.ariaActivedescendant=i.id,i.privateActive=!0))}if("ArrowUp"===t.key&&t.metaKey||"Home"===t.key||"PageUp"===t.key){t.preventDefault();const e=[...this.#L].reverse().findLast((t=>!t.disabled));return void(e&&this.#h&&(this.#A.privateActive=!1,this.#h.ariaActivedescendant=e.id,e.privateActive=!0))}if("ArrowDown"===t.key&&t.metaKey||"End"===t.key||"PageDown"===t.key){t.preventDefault();const e=[...this.#L].findLast((t=>!t.disabled));return void(e&&this.#h&&(this.#A.privateActive=!1,this.#h.ariaActivedescendant=e.id,e.privateActive=!0))}}}#b(){const t=new MutationObserver((()=>{this.open&&!this.isTargetDisabled?this.#f():this.#v()}));this.#u&&this.#h&&(t.observe(this.#u,{attributes:!0,attributeFilter:["aria-disabled","disabled"]}),this.#u.ariaHasPopup="true",this.#u.id=uniqueId(),this.#u.setAttribute("aria-controls",this.#h.id),this.#h.ariaLabelledby=this.#u.id);(this.#u instanceof HTMLSpanElement||this.#u instanceof HTMLDivElement)&&this.#u instanceof HTMLElement&&(this.#u.tabIndex=0),this.open&&!this.isTargetDisabled?this.#f():this.#v()}#S(t){t.defaultPrevented||(this.isTargetDisabled?this.#v():this.#L&&this.#L.length>0&&(this.open=!this.open))}get#h(){const t=this.#e.value?.assignedElements().at(0);return t instanceof MenuOptions?t:null}get#L(){let t=this.#e.value?.assignedElements()?.at(0)?.children;const e=t?.[0];if(e instanceof HTMLSlotElement&&(t=e.assignedElements()),t)return[...t].filter((t=>t instanceof MenuLink||t instanceof MenuButton))}#f(){this.#O?.(),this.#u&&this.#e.value&&(this.#O=autoUpdate(this.#u,this.#e.value,(()=>{(async()=>{if(this.#u&&this.#e.value){const{x:t,y:e,placement:i}=await computePosition(this.#u,this.#e.value,{placement:this.placement,middleware:[offset(this.offset),flip()]});this.#e.value.dataset.placement=i,Object.assign(this.#e.value.style,{left:`${t}px`,top:`${e}px`})}this.#e.value?.showPopover(),this.#h&&this.#A?.id&&(this.#h.ariaActivedescendant=this.#A.id),this.#u&&(this.#u.ariaExpanded="true")})()})))}get#u(){return this.#l.value?.assignedElements().at(0)}};__decorate([property({reflect:!0,type:Boolean})],Menu.prototype,"loading",null),__decorate([property({reflect:!0,type:Number})],Menu.prototype,"offset",null),__decorate([property({reflect:!0,type:Boolean})],Menu.prototype,"open",null),__decorate([property({reflect:!0,useDefault:!0})],Menu.prototype,"placement",void 0),__decorate([property({reflect:!0})],Menu.prototype,"version",void 0),Menu=__decorate([customElement("glide-core-menu"),final],Menu);export default Menu;
@@ -1,7 +1,7 @@
1
1
  import { LitElement } from 'lit';
2
2
  declare global {
3
3
  interface HTMLElementTagNameMap {
4
- 'glide-core-menu-link': GlideCoreMenuLink;
4
+ 'glide-core-menu-link': MenuLink;
5
5
  }
6
6
  }
7
7
  /**
@@ -23,7 +23,7 @@ declare global {
23
23
  *
24
24
  * @slot {Element} [icon]
25
25
  */
26
- export default class GlideCoreMenuLink extends LitElement {
26
+ export default class MenuLink extends LitElement {
27
27
  #private;
28
28
  static shadowRootOptions: ShadowRootInit;
29
29
  static styles: import("lit").CSSResult[];
package/dist/menu.link.js CHANGED
@@ -1 +1 @@
1
- var __decorate=this&&this.__decorate||function(e,t,i,o){var r,n=arguments.length,s=n<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,i,o);else for(var l=e.length-1;l>=0;l--)(r=e[l])&&(s=(n<3?r(s):n>3?r(t,i,s):r(t,i))||s);return n>3&&s&&Object.defineProperty(t,i,s),s};import{html,LitElement}from"lit";import{classMap}from"lit/directives/class-map.js";import{createRef,ref}from"lit/directives/ref.js";import{customElement,property}from"lit/decorators.js";import{ifDefined}from"lit/directives/if-defined.js";import{nanoid}from"nanoid";import packageJson from"../package.json"with{type:"json"};import styles from"./menu.link.styles.js";import shadowRootMode from"./library/shadow-root-mode.js";import final from"./library/final.js";import required from"./library/required.js";let GlideCoreMenuLink=class GlideCoreMenuLink extends LitElement{constructor(){super(...arguments),this.id=nanoid(),this.privateActive=!1,this.role="menuitem",this.tabIndex=-1,this.version=packageJson.version,this.#e=createRef(),this.#t=!1}static{this.shadowRootOptions={...LitElement.shadowRootOptions,mode:shadowRootMode}}static{this.styles=styles}get disabled(){return this.#t}set disabled(e){this.#t=e,e&&this.privateActive&&this.dispatchEvent(new Event("private-disabled",{bubbles:!0}))}click(){this.disabled||this.#e.value?.click()}render(){return html`<a aria-disabled="${this.disabled}" class="${classMap({component:!0,active:this.privateActive,disabled:this.disabled})}" data-test="component" href="${ifDefined(this.href)}" @click="${this.#i}" ${ref(this.#e)}><slot name="icon"></slot>${this.label}</a>`}#e;#t;#i(e){this.disabled&&(e.preventDefault(),e.stopPropagation())}};__decorate([property({reflect:!0}),required],GlideCoreMenuLink.prototype,"label",void 0),__decorate([property({reflect:!0,type:Boolean})],GlideCoreMenuLink.prototype,"disabled",null),__decorate([property({reflect:!0})],GlideCoreMenuLink.prototype,"href",void 0),__decorate([property({reflect:!0})],GlideCoreMenuLink.prototype,"id",void 0),__decorate([property({type:Boolean})],GlideCoreMenuLink.prototype,"privateActive",void 0),__decorate([property({reflect:!0})],GlideCoreMenuLink.prototype,"role",void 0),__decorate([property({attribute:"tabindex",reflect:!0,type:Number})],GlideCoreMenuLink.prototype,"tabIndex",void 0),__decorate([property({reflect:!0})],GlideCoreMenuLink.prototype,"version",void 0),GlideCoreMenuLink=__decorate([customElement("glide-core-menu-link"),final],GlideCoreMenuLink);export default GlideCoreMenuLink;
1
+ var __decorate=this&&this.__decorate||function(e,t,i,o){var r,s=arguments.length,n=s<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(n=(s<3?r(n):s>3?r(t,i,n):r(t,i))||n);return s>3&&n&&Object.defineProperty(t,i,n),n};import{html,LitElement}from"lit";import{classMap}from"lit/directives/class-map.js";import{createRef,ref}from"lit/directives/ref.js";import{customElement,property}from"lit/decorators.js";import{ifDefined}from"lit/directives/if-defined.js";import packageJson from"../package.json"with{type:"json"};import styles from"./menu.link.styles.js";import shadowRootMode from"./library/shadow-root-mode.js";import final from"./library/final.js";import required from"./library/required.js";import uniqueId from"./library/unique-id.js";let MenuLink=class MenuLink extends LitElement{constructor(){super(...arguments),this.id=uniqueId(),this.privateActive=!1,this.role="menuitem",this.tabIndex=-1,this.version=packageJson.version,this.#e=createRef(),this.#t=!1}static{this.shadowRootOptions={...LitElement.shadowRootOptions,mode:shadowRootMode}}static{this.styles=styles}get disabled(){return this.#t}set disabled(e){this.#t=e,e&&this.privateActive&&this.dispatchEvent(new Event("private-disabled",{bubbles:!0}))}click(){this.disabled||this.#e.value?.click()}render(){return html`<a aria-disabled="${this.disabled}" class="${classMap({component:!0,active:this.privateActive,disabled:this.disabled})}" data-test="component" href="${ifDefined(this.href)}" @click="${this.#i}" ${ref(this.#e)}><slot name="icon"></slot>${this.label}</a>`}#e;#t;#i(e){this.disabled&&(e.preventDefault(),e.stopPropagation())}};__decorate([property({reflect:!0}),required],MenuLink.prototype,"label",void 0),__decorate([property({reflect:!0,type:Boolean})],MenuLink.prototype,"disabled",null),__decorate([property({reflect:!0})],MenuLink.prototype,"href",void 0),__decorate([property({reflect:!0})],MenuLink.prototype,"id",void 0),__decorate([property({type:Boolean})],MenuLink.prototype,"privateActive",void 0),__decorate([property({reflect:!0})],MenuLink.prototype,"role",void 0),__decorate([property({attribute:"tabindex",reflect:!0,type:Number})],MenuLink.prototype,"tabIndex",void 0),__decorate([property({reflect:!0})],MenuLink.prototype,"version",void 0),MenuLink=__decorate([customElement("glide-core-menu-link"),final],MenuLink);export default MenuLink;
@@ -1,7 +1,7 @@
1
1
  import { LitElement } from 'lit';
2
2
  declare global {
3
3
  interface HTMLElementTagNameMap {
4
- 'glide-core-menu-options': GlideCoreMenuOptions;
4
+ 'glide-core-menu-options': MenuOptions;
5
5
  }
6
6
  }
7
7
  /**
@@ -20,9 +20,9 @@ declare global {
20
20
  * @readonly
21
21
  * @attr {string} [version]
22
22
  *
23
- * @slot {GlideCoreMenuButton | GlideCoreMenuLink}
23
+ * @slot {MenuButton | MenuLink}
24
24
  */
25
- export default class GlideCoreMenuOptions extends LitElement {
25
+ export default class MenuOptions extends LitElement {
26
26
  #private;
27
27
  static shadowRootOptions: ShadowRootInit;
28
28
  static styles: import("lit").CSSResult[];
@@ -30,7 +30,6 @@ export default class GlideCoreMenuOptions extends LitElement {
30
30
  ariaLabelledby: string;
31
31
  readonly id: string;
32
32
  privateLoading: boolean;
33
- privateSize: 'large' | 'small';
34
33
  readonly role = "menu";
35
34
  readonly tabIndex = -1;
36
35
  readonly version: string;
@@ -1 +1 @@
1
- var __decorate=this&&this.__decorate||function(e,t,o,i){var r,a=arguments.length,n=a<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,o,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(n=(a<3?r(n):a>3?r(t,o,n):r(t,o))||n);return a>3&&n&&Object.defineProperty(t,o,n),n};import{html,LitElement}from"lit";import{classMap}from"lit/directives/class-map.js";import{customElement,property}from"lit/decorators.js";import{nanoid}from"nanoid";import{map}from"lit/directives/map.js";import{when}from"lit/directives/when.js";import{range}from"lit/directives/range.js";import packageJson from"../package.json"with{type:"json"};import GlideCoreMenuButton from"./menu.button.js";import GlideCoreMenuLink from"./menu.link.js";import styles from"./menu.options.styles.js";import assertSlot from"./library/assert-slot.js";import shadowRootMode from"./library/shadow-root-mode.js";import final from"./library/final.js";let GlideCoreMenuOptions=class GlideCoreMenuOptions extends LitElement{constructor(){super(...arguments),this.ariaActivedescendant="",this.ariaLabelledby="",this.id=nanoid(),this.privateLoading=!1,this.privateSize="large",this.role="menu",this.tabIndex=-1,this.version=packageJson.version}static{this.shadowRootOptions={...LitElement.shadowRootOptions,mode:shadowRootMode}}static{this.styles=styles}render(){return html`<div class="${classMap({component:!0,large:"large"===this.privateSize,small:"small"===this.privateSize})}" role="none"><slot class="${classMap({"default-slot":!0,loading:this.privateLoading})}" ${assertSlot([GlideCoreMenuButton,GlideCoreMenuLink,Text])} @slotchange="${this.#e}"></slot>${when(this.privateLoading,(()=>html`<div class="loading-feedback" data-test="loading-feedback">${map(range(7),(()=>html`<div></div>`))}</div>`))}</div>`}#e(){this.dispatchEvent(new Event("private-slot-change",{bubbles:!0}))}};__decorate([property({attribute:"aria-activedescendant",reflect:!0,useDefault:!0})],GlideCoreMenuOptions.prototype,"ariaActivedescendant",void 0),__decorate([property({attribute:"aria-labelledby",reflect:!0,useDefault:!0})],GlideCoreMenuOptions.prototype,"ariaLabelledby",void 0),__decorate([property({reflect:!0})],GlideCoreMenuOptions.prototype,"id",void 0),__decorate([property({type:Boolean})],GlideCoreMenuOptions.prototype,"privateLoading",void 0),__decorate([property()],GlideCoreMenuOptions.prototype,"privateSize",void 0),__decorate([property({reflect:!0})],GlideCoreMenuOptions.prototype,"role",void 0),__decorate([property({attribute:"tabindex",reflect:!0,type:Number})],GlideCoreMenuOptions.prototype,"tabIndex",void 0),__decorate([property({reflect:!0})],GlideCoreMenuOptions.prototype,"version",void 0),GlideCoreMenuOptions=__decorate([customElement("glide-core-menu-options"),final],GlideCoreMenuOptions);export default GlideCoreMenuOptions;
1
+ var __decorate=this&&this.__decorate||function(e,t,o,r){var i,n=arguments.length,s=n<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,o,r);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(s=(n<3?i(s):n>3?i(t,o,s):i(t,o))||s);return n>3&&s&&Object.defineProperty(t,o,s),s};import{html,LitElement}from"lit";import{classMap}from"lit/directives/class-map.js";import{customElement,property}from"lit/decorators.js";import{map}from"lit/directives/map.js";import{when}from"lit/directives/when.js";import{range}from"lit/directives/range.js";import packageJson from"../package.json"with{type:"json"};import MenuButton from"./menu.button.js";import MenuLink from"./menu.link.js";import styles from"./menu.options.styles.js";import assertSlot from"./library/assert-slot.js";import shadowRootMode from"./library/shadow-root-mode.js";import final from"./library/final.js";import uniqueId from"./library/unique-id.js";let MenuOptions=class MenuOptions extends LitElement{constructor(){super(...arguments),this.ariaActivedescendant="",this.ariaLabelledby="",this.id=uniqueId(),this.privateLoading=!1,this.role="menu",this.tabIndex=-1,this.version=packageJson.version}static{this.shadowRootOptions={...LitElement.shadowRootOptions,mode:shadowRootMode}}static{this.styles=styles}render(){return html`<div class="component" role="none"><slot class="${classMap({"default-slot":!0,loading:this.privateLoading})}" ${assertSlot([MenuButton,MenuLink,Text])} @slotchange="${this.#e}"></slot>${when(this.privateLoading,(()=>html`<div class="loading-feedback" data-test="loading-feedback">${map(range(7),(()=>html`<div></div>`))}</div>`))}</div>`}#e(){this.dispatchEvent(new Event("private-slot-change",{bubbles:!0}))}};__decorate([property({attribute:"aria-activedescendant",reflect:!0,useDefault:!0})],MenuOptions.prototype,"ariaActivedescendant",void 0),__decorate([property({attribute:"aria-labelledby",reflect:!0,useDefault:!0})],MenuOptions.prototype,"ariaLabelledby",void 0),__decorate([property({reflect:!0})],MenuOptions.prototype,"id",void 0),__decorate([property({type:Boolean})],MenuOptions.prototype,"privateLoading",void 0),__decorate([property({reflect:!0})],MenuOptions.prototype,"role",void 0),__decorate([property({attribute:"tabindex",reflect:!0,type:Number})],MenuOptions.prototype,"tabIndex",void 0),__decorate([property({reflect:!0})],MenuOptions.prototype,"version",void 0),MenuOptions=__decorate([customElement("glide-core-menu-options"),final],MenuOptions);export default MenuOptions;
@@ -7,26 +7,13 @@ import{css}from"lit";import skeleton from"./styles/skeleton.js";export default[c
7
7
  }
8
8
 
9
9
  .component {
10
- &.large {
11
- --private-gap: var(--glide-core-spacing-base-sm);
12
- --private-padding-inline: var(--glide-core-spacing-base-sm);
13
- --private-padding-block: var(--glide-core-spacing-base-xxs);
10
+ --private-gap: var(--glide-core-spacing-base-sm);
11
+ --private-padding-inline: var(--glide-core-spacing-base-sm);
12
+ --private-padding-block: var(--glide-core-spacing-base-xxs);
14
13
 
15
- font-family: var(--glide-core-typography-family-primary);
16
- font-size: var(--glide-core-typography-size-body-default);
17
- font-weight: var(--glide-core-typography-weight-regular);
18
- }
19
-
20
- &.small {
21
- --private-gap: var(--glide-core-spacing-base-xs);
22
- --private-padding-inline: var(--glide-core-spacing-base-xs);
23
- --private-padding-block: var(--glide-core-spacing-base-xxxs);
24
- --private-size: 0.75rem;
25
-
26
- font-family: var(--glide-core-typography-family-primary);
27
- font-size: var(--glide-core-typography-size-body-small);
28
- font-weight: var(--glide-core-typography-weight-regular);
29
- }
14
+ font-family: var(--glide-core-typography-family-primary);
15
+ font-size: var(--glide-core-typography-size-body-default);
16
+ font-weight: var(--glide-core-typography-weight-regular);
30
17
  }
31
18
 
32
19
  .default-slot {
package/dist/modal.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { LitElement } from 'lit';
2
2
  declare global {
3
3
  interface HTMLElementTagNameMap {
4
- 'glide-core-modal': GlideCoreModal;
4
+ 'glide-core-modal': Modal;
5
5
  }
6
6
  }
7
7
  /**
@@ -15,14 +15,14 @@ declare global {
15
15
  * @attr {string} [version]
16
16
  *
17
17
  * @slot {Element | string}
18
- * @slot {GlideCoreModalIconButton} [header-actions]
19
- * @slot {GlideCoreButton} [primary]
20
- * @slot {GlideCoreButton} [secondary]
21
- * @slot {GlideCoreButton | GlideCoreTooltip} [tertiary]
18
+ * @slot {ModalIconButton} [header-actions]
19
+ * @slot {Button} [primary]
20
+ * @slot {Button} [secondary]
21
+ * @slot {Button | Tooltip} [tertiary]
22
22
  *
23
23
  * @fires {Event} toggle
24
24
  */
25
- export default class GlideCoreModal extends LitElement {
25
+ export default class Modal extends LitElement {
26
26
  #private;
27
27
  static shadowRootOptions: ShadowRootInit;
28
28
  static styles: import("lit").CSSResult[];
@@ -2,7 +2,7 @@ import './icon-button.js';
2
2
  import { LitElement } from 'lit';
3
3
  declare global {
4
4
  interface HTMLElementTagNameMap {
5
- 'glide-core-modal-icon-button': GlideCoreModalIconButton;
5
+ 'glide-core-modal-icon-button': ModalIconButton;
6
6
  }
7
7
  }
8
8
  /**
@@ -13,7 +13,7 @@ declare global {
13
13
  *
14
14
  * @slot {Element} - An icon
15
15
  */
16
- export default class GlideCoreModalIconButton extends LitElement {
16
+ export default class ModalIconButton extends LitElement {
17
17
  static shadowRootOptions: ShadowRootInit;
18
18
  static styles: import("lit").CSSResult[];
19
19
  label?: string;
@@ -1 +1 @@
1
- var __decorate=this&&this.__decorate||function(o,t,e,r){var i,l=arguments.length,n=l<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,e):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(o,t,e,r);else for(var s=o.length-1;s>=0;s--)(i=o[s])&&(n=(l<3?i(n):l>3?i(t,e,n):i(t,e))||n);return l>3&&n&&Object.defineProperty(t,e,n),n};import"./icon-button.js";import{html,LitElement}from"lit";import{customElement,property}from"lit/decorators.js";import{ifDefined}from"lit/directives/if-defined.js";import packageJson from"../package.json"with{type:"json"};import styles from"./modal.icon-button.styles.js";import assertSlot from"./library/assert-slot.js";import shadowRootMode from"./library/shadow-root-mode.js";import final from"./library/final.js";import required from"./library/required.js";let GlideCoreModalIconButton=class GlideCoreModalIconButton extends LitElement{constructor(){super(...arguments),this.version=packageJson.version}static{this.shadowRootOptions={...LitElement.shadowRootOptions,mode:shadowRootMode}}static{this.styles=styles}render(){return html`<glide-core-icon-button label="${ifDefined(this.label)}" variant="tertiary"><slot ${assertSlot()}></slot></glide-core-icon-button>`}};__decorate([property({reflect:!0}),required],GlideCoreModalIconButton.prototype,"label",void 0),__decorate([property({reflect:!0})],GlideCoreModalIconButton.prototype,"version",void 0),GlideCoreModalIconButton=__decorate([customElement("glide-core-modal-icon-button"),final],GlideCoreModalIconButton);export default GlideCoreModalIconButton;
1
+ var __decorate=this&&this.__decorate||function(t,o,e,r){var i,n=arguments.length,l=n<3?o:null===r?r=Object.getOwnPropertyDescriptor(o,e):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(t,o,e,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(l=(n<3?i(l):n>3?i(o,e,l):i(o,e))||l);return n>3&&l&&Object.defineProperty(o,e,l),l};import"./icon-button.js";import{html,LitElement}from"lit";import{customElement,property}from"lit/decorators.js";import{ifDefined}from"lit/directives/if-defined.js";import packageJson from"../package.json"with{type:"json"};import styles from"./modal.icon-button.styles.js";import assertSlot from"./library/assert-slot.js";import shadowRootMode from"./library/shadow-root-mode.js";import final from"./library/final.js";import required from"./library/required.js";let ModalIconButton=class ModalIconButton extends LitElement{constructor(){super(...arguments),this.version=packageJson.version}static{this.shadowRootOptions={...LitElement.shadowRootOptions,mode:shadowRootMode}}static{this.styles=styles}render(){return html`<glide-core-icon-button label="${ifDefined(this.label)}" variant="tertiary"><slot ${assertSlot()}></slot></glide-core-icon-button>`}};__decorate([property({reflect:!0}),required],ModalIconButton.prototype,"label",void 0),__decorate([property({reflect:!0})],ModalIconButton.prototype,"version",void 0),ModalIconButton=__decorate([customElement("glide-core-modal-icon-button"),final],ModalIconButton);export default ModalIconButton;
package/dist/modal.js CHANGED
@@ -1 +1 @@
1
- var __decorate=this&&this.__decorate||function(e,t,o,i){var l,n=arguments.length,s=n<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,o,i);else for(var r=e.length-1;r>=0;r--)(l=e[r])&&(s=(n<3?l(s):n>3?l(t,o,s):l(t,o))||s);return n>3&&s&&Object.defineProperty(t,o,s),s};import{html,LitElement}from"lit";import{classMap}from"lit/directives/class-map.js";import{createRef,ref}from"lit/directives/ref.js";import{customElement,property,state}from"lit/decorators.js";import{styleMap}from"lit/directives/style-map.js";import{when}from"lit/directives/when.js";import packageJson from"../package.json"with{type:"json"};import{LocalizeController}from"./library/localize.js";import GlideCoreModalIconButton from"./modal.icon-button.js";import GlideCoreButton from"./button.js";import GlideCoreTooltip from"./tooltip.js";import styles from"./modal.styles.js";import xIcon from"./icons/x.js";import assertSlot from"./library/assert-slot.js";import shadowRootMode from"./library/shadow-root-mode.js";import severityInformationalIcon from"./icons/severity-informational.js";import severityMediumIcon from"./icons/severity-medium.js";import severityCriticalIcon from"./icons/severity-critical.js";import final from"./library/final.js";import required from"./library/required.js";const globalStylesheet=new CSSStyleSheet;globalStylesheet.insertRule("\n .private-glide-core-modal-lock-scroll {\n scrollbar-gutter: stable !important;\n overflow: hidden !important;\n }\n");let GlideCoreModal=class GlideCoreModal extends LitElement{constructor(){super(...arguments),this.backButton=!1,this.size="medium",this.version=packageJson.version,this.hasPrimarySlotContent=!1,this.hasSecondarySlotContent=!1,this.hasTertiarySlotContent=!1,this.#e=createRef(),this.#t=createRef(),this.#o=createRef(),this.#i=createRef(),this.#l=createRef(),this.#n=!1,this.#s=!1,this.#r=new LocalizeController(this),this.#a=createRef(),this.#c=createRef(),this.#d=createRef(),this.#m=()=>{this.#n=!0},this.#h=()=>{this.#n=!0},this.#p=()=>{const e=this.open;setTimeout((()=>{this.#n?setTimeout((()=>{this.#n=!1})):e===this.open&&(this.open=!1)}))}}static{this.shadowRootOptions={...LitElement.shadowRootOptions,mode:shadowRootMode}}static{this.styles=styles}get open(){return this.#s}set open(e){const t=e!==this.#s;this.#s=e,e&&t?(this.#y(),this.dispatchEvent(new Event("toggle",{bubbles:!0,composed:!0}))):t&&(this.#u(),this.dispatchEvent(new Event("toggle",{bubbles:!0,composed:!0})))}connectedCallback(){super.connectedCallback();document.adoptedStyleSheets.includes(globalStylesheet)||document.adoptedStyleSheets.push(globalStylesheet),document.addEventListener("click",this.#p,{capture:!0})}disconnectedCallback(){super.disconnectedCallback(),document.documentElement.classList.remove("private-glide-core-modal-lock-scroll"),document.adoptedStyleSheets=document.adoptedStyleSheets.filter((e=>e!==globalStylesheet)),document.removeEventListener("click",this.#p,{capture:!0})}firstUpdated(){this.open&&this.#y(),this.#i.value?.addEventListener("click",this.#m,{capture:!0}),this.#i.value?.addEventListener("mouseup",this.#h)}render(){return html`<dialog class="component" data-test="component" @keydown="${this.#f}" ${ref(this.#o)}><div class="${classMap({container:!0,small:"small"===this.size,medium:"medium"===this.size,large:"large"===this.size,xlarge:"xlarge"===this.size})}" ${ref(this.#i)}><header class="header"><h2 class="label" data-test="heading" id="heading">${when(this.severity,(()=>html`<span aria-label="${this.#r.term("informational"===this.severity?"severityInformational":"critical"===this.severity?"severityCritical":"severityMedium")} - " class="${classMap({severity:!0,critical:"critical"===this.severity,informational:"informational"===this.severity,medium:"medium"===this.severity})}" data-test="severity">${this.severity&&icons[this.severity]}</span>`))} ${when(this.backButton&&!this.severity,(()=>html`<glide-core-modal-icon-button class="back-button" data-test="back-button" label="${this.#r.term("close")}" @click="${this.#C}" ${ref(this.#e)}>${icons.back}</glide-core-modal-icon-button>`))} ${this.label}</h2><div class="header-actions" role="toolbar"><slot name="header-actions" ${assertSlot([GlideCoreModalIconButton],!0)} ${ref(this.#l)}></slot><glide-core-modal-icon-button class="close-button" data-test="close-button" label="${this.#r.term("close")}" @click="${this.#C}" ${ref(this.#t)}>${xIcon}</glide-core-modal-icon-button></div></header><article aria-labelledby="heading" class="body" role="region"><slot ${assertSlot()}></slot></article><footer><menu aria-hidden="${!this.hasTertiarySlotContent&&!this.hasSecondarySlotContent&&!this.hasPrimarySlotContent}" class="actions"><li aria-hidden="${!this.hasTertiarySlotContent}" class="action"><slot class="tertiary-slot" name="tertiary" @slotchange="${this.#v}" ${assertSlot([GlideCoreButton,GlideCoreTooltip],!0)} ${ref(this.#d)}></slot></li><li aria-hidden="${!this.hasSecondarySlotContent}" class="action"><slot name="secondary" @slotchange="${this.#S}" ${assertSlot([GlideCoreButton],!0)} ${ref(this.#c)}></slot></li><li aria-hidden="${!this.hasPrimarySlotContent}" class="action"><slot name="primary" @slotchange="${this.#b}" ${assertSlot([GlideCoreButton],!0)} ${ref(this.#a)}></slot></li></menu></footer></div></dialog>`}#e;#t;#o;#i;#l;#n;#s;#r;#a;#c;#d;#m;#h;#p;#u(){document.documentElement.classList.remove("private-glide-core-modal-lock-scroll"),this.#o.value?.close()}#C(){this.open=!1}#f(e){"Escape"===e.key&&(this.open=!1,e.preventDefault())}#b(){this.hasPrimarySlotContent=Boolean(this.#a.value?.assignedElements().length)}#S(){this.hasSecondarySlotContent=Boolean(this.#c.value?.assignedElements().length)}#v(){this.hasTertiarySlotContent=Boolean(this.#d.value?.assignedElements().length)}#y(){document.documentElement.classList.add("private-glide-core-modal-lock-scroll"),this.#o.value?.showModal()}};__decorate([property({reflect:!0}),required],GlideCoreModal.prototype,"label",void 0),__decorate([property({attribute:"back-button",type:Boolean,reflect:!0})],GlideCoreModal.prototype,"backButton",void 0),__decorate([property({reflect:!0,type:Boolean})],GlideCoreModal.prototype,"open",null),__decorate([property({reflect:!0})],GlideCoreModal.prototype,"severity",void 0),__decorate([property({reflect:!0,useDefault:!0})],GlideCoreModal.prototype,"size",void 0),__decorate([property({reflect:!0})],GlideCoreModal.prototype,"version",void 0),__decorate([state()],GlideCoreModal.prototype,"hasPrimarySlotContent",void 0),__decorate([state()],GlideCoreModal.prototype,"hasSecondarySlotContent",void 0),__decorate([state()],GlideCoreModal.prototype,"hasTertiarySlotContent",void 0),GlideCoreModal=__decorate([customElement("glide-core-modal"),final],GlideCoreModal);export default GlideCoreModal;const icons={back:html`<svg style="${styleMap({height:"1.25rem",width:"1.25rem"})}" viewBox="0 0 24 24" fill="none"><path d="M12 18C11.4477 18 11 18.4477 11 19C11 19.5523 11.4477 20 12 20V18ZM20 14.5C20 16.433 18.433 18 16.5 18V20C19.5376 20 22 17.5376 22 14.5H20ZM16.5 11C18.433 11 20 12.567 20 14.5H22C22 11.4624 19.5376 9 16.5 9V11ZM16.5 18H12V20H16.5V18ZM16.5 9H3V11H16.5V9Z" fill="currentColor"/><path d="M7 6L3 10L7 14" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>`,critical:severityCriticalIcon,informational:severityInformationalIcon,medium:severityMediumIcon};
1
+ var __decorate=this&&this.__decorate||function(e,t,o,i){var n,s=arguments.length,l=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,o,i);else for(var r=e.length-1;r>=0;r--)(n=e[r])&&(l=(s<3?n(l):s>3?n(t,o,l):n(t,o))||l);return s>3&&l&&Object.defineProperty(t,o,l),l};import{html,LitElement}from"lit";import{classMap}from"lit/directives/class-map.js";import{createRef,ref}from"lit/directives/ref.js";import{customElement,property,state}from"lit/decorators.js";import{styleMap}from"lit/directives/style-map.js";import{when}from"lit/directives/when.js";import packageJson from"../package.json"with{type:"json"};import{LocalizeController}from"./library/localize.js";import ModalIconButton from"./modal.icon-button.js";import Button from"./button.js";import Tooltip from"./tooltip.js";import styles from"./modal.styles.js";import xIcon from"./icons/x.js";import assertSlot from"./library/assert-slot.js";import shadowRootMode from"./library/shadow-root-mode.js";import severityInformationalIcon from"./icons/severity-informational.js";import severityMediumIcon from"./icons/severity-medium.js";import severityCriticalIcon from"./icons/severity-critical.js";import final from"./library/final.js";import required from"./library/required.js";const globalStylesheet=new CSSStyleSheet;globalStylesheet.insertRule("\n .private-glide-core-modal-lock-scroll {\n scrollbar-gutter: stable !important;\n overflow: hidden !important;\n }\n");let Modal=class Modal extends LitElement{constructor(){super(...arguments),this.backButton=!1,this.size="medium",this.version=packageJson.version,this.hasPrimarySlotContent=!1,this.hasSecondarySlotContent=!1,this.hasTertiarySlotContent=!1,this.#e=createRef(),this.#t=createRef(),this.#o=createRef(),this.#i=createRef(),this.#n=createRef(),this.#s=!1,this.#l=!1,this.#r=new LocalizeController(this),this.#a=createRef(),this.#c=createRef(),this.#d=createRef(),this.#m=()=>{this.#s=!0},this.#h=()=>{this.#s=!0},this.#p=()=>{const e=this.open;setTimeout((()=>{this.#s?setTimeout((()=>{this.#s=!1})):e===this.open&&(this.open=!1)}))}}static{this.shadowRootOptions={...LitElement.shadowRootOptions,mode:shadowRootMode}}static{this.styles=styles}get open(){return this.#l}set open(e){const t=e!==this.#l;this.#l=e,e&&t?(this.#y(),this.dispatchEvent(new Event("toggle",{bubbles:!0,composed:!0}))):t&&(this.#u(),this.dispatchEvent(new Event("toggle",{bubbles:!0,composed:!0})))}connectedCallback(){super.connectedCallback();document.adoptedStyleSheets.includes(globalStylesheet)||document.adoptedStyleSheets.push(globalStylesheet),document.addEventListener("click",this.#p,{capture:!0})}disconnectedCallback(){super.disconnectedCallback(),document.documentElement.classList.remove("private-glide-core-modal-lock-scroll"),document.adoptedStyleSheets=document.adoptedStyleSheets.filter((e=>e!==globalStylesheet)),document.removeEventListener("click",this.#p,{capture:!0})}firstUpdated(){this.open&&this.#y(),this.#i.value?.addEventListener("click",this.#m,{capture:!0}),this.#i.value?.addEventListener("mouseup",this.#h)}render(){return html`<dialog class="component" data-test="component" @keydown="${this.#f}" ${ref(this.#o)}><div class="${classMap({container:!0,small:"small"===this.size,medium:"medium"===this.size,large:"large"===this.size,xlarge:"xlarge"===this.size})}" ${ref(this.#i)}><header class="header"><h2 class="label" data-test="heading" id="heading">${when(this.severity,(()=>html`<span aria-label="${this.#r.term("informational"===this.severity?"severityInformational":"critical"===this.severity?"severityCritical":"severityMedium")} - " class="${classMap({severity:!0,critical:"critical"===this.severity,informational:"informational"===this.severity,medium:"medium"===this.severity})}" data-test="severity">${this.severity&&icons[this.severity]}</span>`))} ${when(this.backButton&&!this.severity,(()=>html`<glide-core-modal-icon-button class="back-button" data-test="back-button" label="${this.#r.term("close")}" @click="${this.#v}" ${ref(this.#e)}>${icons.back}</glide-core-modal-icon-button>`))} ${this.label}</h2><div class="header-actions" role="toolbar"><slot name="header-actions" ${assertSlot([ModalIconButton],!0)} ${ref(this.#n)}></slot><glide-core-modal-icon-button class="close-button" data-test="close-button" label="${this.#r.term("close")}" @click="${this.#v}" ${ref(this.#t)}>${xIcon}</glide-core-modal-icon-button></div></header><article aria-labelledby="heading" class="body" role="region"><slot ${assertSlot()}></slot></article><footer><menu aria-hidden="${!this.hasTertiarySlotContent&&!this.hasSecondarySlotContent&&!this.hasPrimarySlotContent}" class="actions"><li aria-hidden="${!this.hasTertiarySlotContent}" class="action"><slot class="tertiary-slot" name="tertiary" @slotchange="${this.#C}" ${assertSlot([Button,Tooltip],!0)} ${ref(this.#d)}></slot></li><li aria-hidden="${!this.hasSecondarySlotContent}" class="action"><slot name="secondary" @slotchange="${this.#S}" ${assertSlot([Button],!0)} ${ref(this.#c)}></slot></li><li aria-hidden="${!this.hasPrimarySlotContent}" class="action"><slot name="primary" @slotchange="${this.#b}" ${assertSlot([Button],!0)} ${ref(this.#a)}></slot></li></menu></footer></div></dialog>`}#e;#t;#o;#i;#n;#s;#l;#r;#a;#c;#d;#m;#h;#p;#u(){document.documentElement.classList.remove("private-glide-core-modal-lock-scroll"),this.#o.value?.close()}#v(){this.open=!1}#f(e){"Escape"===e.key&&(this.open=!1,e.preventDefault())}#b(){this.hasPrimarySlotContent=Boolean(this.#a.value?.assignedElements().length)}#S(){this.hasSecondarySlotContent=Boolean(this.#c.value?.assignedElements().length)}#C(){this.hasTertiarySlotContent=Boolean(this.#d.value?.assignedElements().length)}#y(){document.documentElement.classList.add("private-glide-core-modal-lock-scroll"),this.#o.value?.showModal()}};__decorate([property({reflect:!0}),required],Modal.prototype,"label",void 0),__decorate([property({attribute:"back-button",type:Boolean,reflect:!0})],Modal.prototype,"backButton",void 0),__decorate([property({reflect:!0,type:Boolean})],Modal.prototype,"open",null),__decorate([property({reflect:!0})],Modal.prototype,"severity",void 0),__decorate([property({reflect:!0,useDefault:!0})],Modal.prototype,"size",void 0),__decorate([property({reflect:!0})],Modal.prototype,"version",void 0),__decorate([state()],Modal.prototype,"hasPrimarySlotContent",void 0),__decorate([state()],Modal.prototype,"hasSecondarySlotContent",void 0),__decorate([state()],Modal.prototype,"hasTertiarySlotContent",void 0),Modal=__decorate([customElement("glide-core-modal"),final],Modal);export default Modal;const icons={back:html`<svg style="${styleMap({height:"1.25rem",width:"1.25rem"})}" viewBox="0 0 24 24" fill="none"><path d="M12 18C11.4477 18 11 18.4477 11 19C11 19.5523 11.4477 20 12 20V18ZM20 14.5C20 16.433 18.433 18 16.5 18V20C19.5376 20 22 17.5376 22 14.5H20ZM16.5 11C18.433 11 20 12.567 20 14.5H22C22 11.4624 19.5376 9 16.5 9V11ZM16.5 18H12V20H16.5V18ZM16.5 9H3V11H16.5V9Z" fill="currentColor"/><path d="M7 6L3 10L7 14" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>`,critical:severityCriticalIcon,informational:severityInformationalIcon,medium:severityMediumIcon};
package/dist/popover.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { LitElement } from 'lit';
2
2
  declare global {
3
3
  interface HTMLElementTagNameMap {
4
- 'glide-core-popover': GlideCorePopover;
4
+ 'glide-core-popover': Popover;
5
5
  }
6
6
  }
7
7
  /**
@@ -18,7 +18,7 @@ declare global {
18
18
  *
19
19
  * @fires {Event} toggle
20
20
  */
21
- export default class GlideCorePopover extends LitElement {
21
+ export default class Popover extends LitElement {
22
22
  #private;
23
23
  static shadowRootOptions: ShadowRootInit;
24
24
  static styles: import("lit").CSSResult[];
package/dist/popover.js CHANGED
@@ -1 +1 @@
1
- var __decorate=this&&this.__decorate||function(e,t,o,r){var i,l=arguments.length,a=l<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,o,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(l<3?i(a):l>3?i(t,o,a):i(t,o))||a);return l>3&&a&&Object.defineProperty(t,o,a),a};import{html,LitElement}from"lit";import{arrow,autoUpdate,computePosition,flip,limitShift,offset,shift}from"@floating-ui/dom";import{choose}from"lit/directives/choose.js";import{classMap}from"lit/directives/class-map.js";import{createRef,ref}from"lit/directives/ref.js";import{customElement,property,state}from"lit/decorators.js";import packageJson from"../package.json"with{type:"json"};import styles from"./popover.styles.js";import assertSlot from"./library/assert-slot.js";import shadowRootMode from"./library/shadow-root-mode.js";import final from"./library/final.js";let GlideCorePopover=class GlideCorePopover extends LitElement{constructor(){super(...arguments),this.version=packageJson.version,this.effectivePlacement=this.placement??"bottom",this.#e=createRef(),this.#t=createRef(),this.#o=!1,this.#r=!1,this.#i=!1,this.#l=!1,this.#a=!1,this.#s=createRef(),this.#n=createRef(),this.#p=()=>{this.#r||this.#a||this.#o?setTimeout((()=>{this.#r=!1,this.#a=!1,this.#o=!1})):this.open=!1}}static{this.shadowRootOptions={...LitElement.shadowRootOptions,mode:shadowRootMode}}static{this.styles=styles}get disabled(){return this.#i}set disabled(e){this.#i=e,this.open&&!e?this.#f():this.#d()}get offset(){return this.#m??Number.parseFloat(window.getComputedStyle(document.body).getPropertyValue("--glide-core-spacing-base-xxs"))*Number.parseFloat(window.getComputedStyle(document.documentElement).fontSize)}set offset(e){this.#m=e}get open(){return this.#l}set open(e){const t=e!==this.#l;this.#l=e,e&&t&&!this.disabled?(this.#f(),this.dispatchEvent(new Event("toggle",{bubbles:!0,composed:!0}))):t&&(this.#d(),this.dispatchEvent(new Event("toggle",{bubbles:!0,composed:!0})))}connectedCallback(){super.connectedCallback(),document.addEventListener("click",this.#p,{capture:!0})}firstUpdated(){this.#s.value&&(this.#s.value.popover="manual"),this.open&&!this.disabled&&this.#f(),this.#t.value?.addEventListener("mouseup",(()=>{this.#r=!0})),this.#n.value?.addEventListener("mouseup",(()=>{this.#a=!0})),this.#e.value?.addEventListener("mouseup",(()=>{this.#o=!0})),this.#n.value?.addEventListener("keydown",(e=>{"Enter"!==e.key&&" "!==e.key||(this.#a=!0)}))}render(){return html`<div class="component"><slot class="target-slot" data-test="target-slot" name="target" @click="${this.#h}" @keydown="${this.#c}" ${assertSlot([Element])} ${ref(this.#n)}></slot><div class="${classMap({popover:!0,[this.effectivePlacement]:!0})}" id="popover" data-test="popover" ${ref(this.#s)}><div class="${classMap({arrow:!0,[this.effectivePlacement]:!0})}" data-test="arrow" ${ref(this.#e)}>${choose(this.effectivePlacement,[["top",()=>icons.topArrow],["right",()=>icons.rightArrow],["bottom",()=>icons.bottomArrow],["left",()=>icons.leftArrow]])}</div><slot class="default-slot" ${assertSlot()} ${ref(this.#t)}></slot></div></div>`}#e;#u;#t;#o;#r;#i;#l;#a;#m;#s;#n;#p;#d(){this.#s.value?.hidePopover(),this.#v&&(this.#v.ariaExpanded="false"),this.#u?.()}#h(){this.open=!this.open}#c(e){"Escape"===e.key&&(e.preventDefault(),this.open=!1)}get#v(){return this.#n.value?.assignedElements().at(0)}#f(){this.disabled||(this.#u?.(),this.#n.value&&this.#s.value&&(this.#u=autoUpdate(this.#n.value,this.#s.value,(()=>{(async()=>{if(this.#n.value&&this.#s.value&&this.#e.value){const e=Number.parseFloat(window.getComputedStyle(this.#s.value).padding),{x:t,y:o,placement:r,middlewareData:i}=await computePosition(this.#n.value,this.#s.value,{placement:this.placement,middleware:[offset(this.offset-e-2),flip({fallbackStrategy:"initialPlacement"}),shift({limiter:limitShift({offset:30})}),arrow({element:this.#e.value})]});Object.assign(this.#s.value.style,{left:`${t}px`,top:`${o}px`}),Object.assign(this.#e.value.style,{left:i.arrow?.x?i.arrow.x-e+"px":null,top:i.arrow?.y?i.arrow.y-e+"px":null}),this.effectivePlacement=r,this.#s.value.showPopover(),this.#v&&(this.#v.ariaExpanded="true")}})()}))))}};__decorate([property({reflect:!0,type:Boolean})],GlideCorePopover.prototype,"disabled",null),__decorate([property({reflect:!0,type:Number})],GlideCorePopover.prototype,"offset",null),__decorate([property({reflect:!0,type:Boolean})],GlideCorePopover.prototype,"open",null),__decorate([property()],GlideCorePopover.prototype,"placement",void 0),__decorate([property({reflect:!0})],GlideCorePopover.prototype,"version",void 0),__decorate([state()],GlideCorePopover.prototype,"effectivePlacement",void 0),GlideCorePopover=__decorate([customElement("glide-core-popover"),final],GlideCorePopover);export default GlideCorePopover;const icons={topArrow:html`<svg aria-hidden="true" viewBox="0 0 16 9" fill="none"><mask id="mask0_13064_691" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0"><path d="M16 6.99382e-07V9L0 9L3.93402e-07 0L16 6.99382e-07Z" fill="#D9D9D9"/></mask><g mask="url(#mask0_13064_691)"><g filter="url(#filter0_d_13064_691)"><path d="M8.76822 5.603C8.36842 6.13234 7.63157 6.13233 7.23178 5.60299L3 0L13 9.19407e-07L8.76822 5.603Z" fill="currentColor"/></g></g><defs><filter id="filter0_d_13064_691" x="2" y="0" width="0.75rem" height="0.625rem" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/><feOffset dy="3"/><feGaussianBlur stdDeviation="0.5"/><feComposite in2="hardAlpha" operator="out"/><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0"/><feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_13064_691"/><feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_13064_691" result="shape"/></filter></defs></svg>`,rightArrow:html`<svg aria-hidden="true" viewBox="0 0 9 16" fill="none"><mask id="mask0_13064_688" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0"><path d="M9 16H1.39876e-06L0 7.86805e-07L9 0L9 16Z" fill="#D9D9D9"/></mask><g mask="url(#mask0_13064_688)"><g filter="url(#filter0_d_13064_688)"><path d="M3.397 8.76822C2.86766 8.36843 2.86767 7.63157 3.39701 7.23178L9 3V13L3.397 8.76822Z" fill="currentColor"/></g></g><defs><filter id="filter0_d_13064_688" x="2" y="3" width="0.5rem" height="0.875rem" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/><feOffset dy="3"/><feGaussianBlur stdDeviation="0.5"/><feComposite in2="hardAlpha" operator="out"/><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0"/><feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_13064_688"/><feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_13064_688" result="shape"/></filter></defs></svg>`,bottomArrow:html`<svg aria-hidden="true" viewBox="0 0 16 9" fill="none"><mask id="mask0_13064_685" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0"><path d="M0 9L1.07324e-07 0L16 1.90798e-07V9H0Z" fill="#D9D9D9"/></mask><g mask="url(#mask0_13064_685)"><g filter="url(#filter0_dd_13064_685)"><path d="M7.23178 3.397C7.63157 2.86766 8.36843 2.86767 8.76822 3.39701L13 9L3 9L7.23178 3.397Z" fill="currentColor"/></g></g><defs><filter id="filter0_dd_13064_685" x="-5" y="-2" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/><feOffset dy="3"/><feGaussianBlur stdDeviation="4"/><feComposite in2="hardAlpha" operator="out"/><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0"/><feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_13064_685"/><feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/><feOffset dy="-1"/><feGaussianBlur stdDeviation="1"/><feComposite in2="hardAlpha" operator="out"/><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0"/><feBlend mode="normal" in2="effect1_dropShadow_13064_685" result="effect2_dropShadow_13064_685"/><feBlend mode="normal" in="SourceGraphic" in2="effect2_dropShadow_13064_685" result="shape"/></filter></defs></svg>`,leftArrow:html`<svg aria-hidden="true" viewBox="0 0 9 16" fill="none"><mask id="mask0_12969_88361" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0"><path d="M0 0H9V16H0V0Z" fill="#D9D9D9"/></mask><g mask="url(#mask0_12969_88361)"><g filter="url(#filter0_d_12969_88361)"><path d="M5.603 7.23178C6.13234 7.63157 6.13233 8.36843 5.60299 8.76822L0 13L4.82293e-07 3L5.603 7.23178Z" fill="currentColor"/></g></g><defs><filter id="filter0_d_12969_88361" x="-1" y="3" width="0.5rem" height="0.875rem" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/><feOffset dy="3"/><feGaussianBlur stdDeviation="0.5"/><feComposite in2="hardAlpha" operator="out"/><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0"/><feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_12969_88361"/><feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_12969_88361" result="shape"/></filter></defs></svg>`};
1
+ var __decorate=this&&this.__decorate||function(e,t,o,r){var i,l=arguments.length,a=l<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,o,r);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(a=(l<3?i(a):l>3?i(t,o,a):i(t,o))||a);return l>3&&a&&Object.defineProperty(t,o,a),a};import{html,LitElement}from"lit";import{arrow,autoUpdate,computePosition,flip,limitShift,offset,shift}from"@floating-ui/dom";import{choose}from"lit/directives/choose.js";import{classMap}from"lit/directives/class-map.js";import{createRef,ref}from"lit/directives/ref.js";import{customElement,property,state}from"lit/decorators.js";import packageJson from"../package.json"with{type:"json"};import styles from"./popover.styles.js";import assertSlot from"./library/assert-slot.js";import shadowRootMode from"./library/shadow-root-mode.js";import final from"./library/final.js";let Popover=class Popover extends LitElement{constructor(){super(...arguments),this.version=packageJson.version,this.effectivePlacement=this.placement??"bottom",this.#e=createRef(),this.#t=createRef(),this.#o=!1,this.#r=!1,this.#i=!1,this.#l=!1,this.#a=!1,this.#s=createRef(),this.#n=createRef(),this.#p=()=>{this.#r||this.#a||this.#o?setTimeout((()=>{this.#r=!1,this.#a=!1,this.#o=!1})):this.open=!1}}static{this.shadowRootOptions={...LitElement.shadowRootOptions,mode:shadowRootMode}}static{this.styles=styles}get disabled(){return this.#i}set disabled(e){this.#i=e,this.open&&!e?this.#f():this.#d()}get offset(){return this.#m??Number.parseFloat(window.getComputedStyle(document.body).getPropertyValue("--glide-core-spacing-base-xxs"))*Number.parseFloat(window.getComputedStyle(document.documentElement).fontSize)}set offset(e){this.#m=e}get open(){return this.#l}set open(e){const t=e!==this.#l;this.#l=e,e&&t&&!this.disabled?(this.#f(),this.dispatchEvent(new Event("toggle",{bubbles:!0,composed:!0}))):t&&(this.#d(),this.dispatchEvent(new Event("toggle",{bubbles:!0,composed:!0})))}connectedCallback(){super.connectedCallback(),document.addEventListener("click",this.#p,{capture:!0})}firstUpdated(){this.#s.value&&(this.#s.value.popover="manual"),this.open&&!this.disabled&&this.#f(),this.#t.value?.addEventListener("mouseup",(()=>{this.#r=!0})),this.#n.value?.addEventListener("mouseup",(()=>{this.#a=!0})),this.#e.value?.addEventListener("mouseup",(()=>{this.#o=!0})),this.#n.value?.addEventListener("keydown",(e=>{"Enter"!==e.key&&" "!==e.key||(this.#a=!0)}))}render(){return html`<div class="component"><slot class="target-slot" data-test="target-slot" name="target" @click="${this.#h}" @keydown="${this.#c}" ${assertSlot([Element])} ${ref(this.#n)}></slot><div class="${classMap({popover:!0,[this.effectivePlacement]:!0})}" id="popover" data-test="popover" ${ref(this.#s)}><div class="${classMap({arrow:!0,[this.effectivePlacement]:!0})}" data-test="arrow" ${ref(this.#e)}>${choose(this.effectivePlacement,[["top",()=>icons.topArrow],["right",()=>icons.rightArrow],["bottom",()=>icons.bottomArrow],["left",()=>icons.leftArrow]])}</div><slot class="default-slot" ${assertSlot()} ${ref(this.#t)}></slot></div></div>`}#e;#u;#t;#o;#r;#i;#l;#a;#m;#s;#n;#p;#d(){this.#s.value?.hidePopover(),this.#v&&(this.#v.ariaExpanded="false"),this.#u?.()}#h(){this.open=!this.open}#c(e){"Escape"===e.key&&(e.preventDefault(),this.open=!1)}get#v(){return this.#n.value?.assignedElements().at(0)}#f(){this.disabled||(this.#u?.(),this.#n.value&&this.#s.value&&(this.#u=autoUpdate(this.#n.value,this.#s.value,(()=>{(async()=>{if(this.#n.value&&this.#s.value&&this.#e.value){const e=Number.parseFloat(window.getComputedStyle(this.#s.value).padding),{x:t,y:o,placement:r,middlewareData:i}=await computePosition(this.#n.value,this.#s.value,{placement:this.placement,middleware:[offset(this.offset-e-2),flip({fallbackStrategy:"initialPlacement"}),shift({limiter:limitShift({offset:30})}),arrow({element:this.#e.value})]});Object.assign(this.#s.value.style,{left:`${t}px`,top:`${o}px`}),Object.assign(this.#e.value.style,{left:i.arrow?.x?i.arrow.x-e+"px":null,top:i.arrow?.y?i.arrow.y-e+"px":null}),this.effectivePlacement=r,this.#s.value.showPopover(),this.#v&&(this.#v.ariaExpanded="true")}})()}))))}};__decorate([property({reflect:!0,type:Boolean})],Popover.prototype,"disabled",null),__decorate([property({reflect:!0,type:Number})],Popover.prototype,"offset",null),__decorate([property({reflect:!0,type:Boolean})],Popover.prototype,"open",null),__decorate([property()],Popover.prototype,"placement",void 0),__decorate([property({reflect:!0})],Popover.prototype,"version",void 0),__decorate([state()],Popover.prototype,"effectivePlacement",void 0),Popover=__decorate([customElement("glide-core-popover"),final],Popover);export default Popover;const icons={topArrow:html`<svg aria-hidden="true" viewBox="0 0 16 9" fill="none"><mask id="mask0_13064_691" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0"><path d="M16 6.99382e-07V9L0 9L3.93402e-07 0L16 6.99382e-07Z" fill="#D9D9D9"/></mask><g mask="url(#mask0_13064_691)"><g filter="url(#filter0_d_13064_691)"><path d="M8.76822 5.603C8.36842 6.13234 7.63157 6.13233 7.23178 5.60299L3 0L13 9.19407e-07L8.76822 5.603Z" fill="currentColor"/></g></g><defs><filter id="filter0_d_13064_691" x="2" y="0" width="0.75rem" height="0.625rem" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/><feOffset dy="3"/><feGaussianBlur stdDeviation="0.5"/><feComposite in2="hardAlpha" operator="out"/><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0"/><feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_13064_691"/><feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_13064_691" result="shape"/></filter></defs></svg>`,rightArrow:html`<svg aria-hidden="true" viewBox="0 0 9 16" fill="none"><mask id="mask0_13064_688" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0"><path d="M9 16H1.39876e-06L0 7.86805e-07L9 0L9 16Z" fill="#D9D9D9"/></mask><g mask="url(#mask0_13064_688)"><g filter="url(#filter0_d_13064_688)"><path d="M3.397 8.76822C2.86766 8.36843 2.86767 7.63157 3.39701 7.23178L9 3V13L3.397 8.76822Z" fill="currentColor"/></g></g><defs><filter id="filter0_d_13064_688" x="2" y="3" width="0.5rem" height="0.875rem" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/><feOffset dy="3"/><feGaussianBlur stdDeviation="0.5"/><feComposite in2="hardAlpha" operator="out"/><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0"/><feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_13064_688"/><feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_13064_688" result="shape"/></filter></defs></svg>`,bottomArrow:html`<svg aria-hidden="true" viewBox="0 0 16 9" fill="none"><mask id="mask0_13064_685" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0"><path d="M0 9L1.07324e-07 0L16 1.90798e-07V9H0Z" fill="#D9D9D9"/></mask><g mask="url(#mask0_13064_685)"><g filter="url(#filter0_dd_13064_685)"><path d="M7.23178 3.397C7.63157 2.86766 8.36843 2.86767 8.76822 3.39701L13 9L3 9L7.23178 3.397Z" fill="currentColor"/></g></g><defs><filter id="filter0_dd_13064_685" x="-5" y="-2" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/><feOffset dy="3"/><feGaussianBlur stdDeviation="4"/><feComposite in2="hardAlpha" operator="out"/><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0"/><feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_13064_685"/><feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/><feOffset dy="-1"/><feGaussianBlur stdDeviation="1"/><feComposite in2="hardAlpha" operator="out"/><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0"/><feBlend mode="normal" in2="effect1_dropShadow_13064_685" result="effect2_dropShadow_13064_685"/><feBlend mode="normal" in="SourceGraphic" in2="effect2_dropShadow_13064_685" result="shape"/></filter></defs></svg>`,leftArrow:html`<svg aria-hidden="true" viewBox="0 0 9 16" fill="none"><mask id="mask0_12969_88361" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0"><path d="M0 0H9V16H0V0Z" fill="#D9D9D9"/></mask><g mask="url(#mask0_12969_88361)"><g filter="url(#filter0_d_12969_88361)"><path d="M5.603 7.23178C6.13234 7.63157 6.13233 8.36843 5.60299 8.76822L0 13L4.82293e-07 3L5.603 7.23178Z" fill="currentColor"/></g></g><defs><filter id="filter0_d_12969_88361" x="-1" y="3" width="0.5rem" height="0.875rem" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/><feOffset dy="3"/><feGaussianBlur stdDeviation="0.5"/><feComposite in2="hardAlpha" operator="out"/><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.06 0"/><feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_12969_88361"/><feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_12969_88361" result="shape"/></filter></defs></svg>`};
@@ -4,7 +4,7 @@ import { LitElement } from 'lit';
4
4
  import type FormControl from './library/form-control.js';
5
5
  declare global {
6
6
  interface HTMLElementTagNameMap {
7
- 'glide-core-radio-group': GlideCoreRadioGroup;
7
+ 'glide-core-radio-group': RadioGroup;
8
8
  }
9
9
  }
10
10
  /**
@@ -20,7 +20,7 @@ declare global {
20
20
  * @readonly
21
21
  * @attr {string} [version]
22
22
  *
23
- * @slot {GlideCoreRadio}
23
+ * @slot {Radio}
24
24
  * @slot {Element | string} [description] - Additional information or context
25
25
  *
26
26
  * @fires {Event} invalid
@@ -49,7 +49,7 @@ declare global {
49
49
  * @param {ValidityStateFlags} [flags]
50
50
  * @param {string} [message]
51
51
  */
52
- export default class GlideCoreRadioGroup extends LitElement implements FormControl {
52
+ export default class RadioGroup extends LitElement implements FormControl {
53
53
  #private;
54
54
  static formAssociated: boolean;
55
55
  static shadowRootOptions: ShadowRootInit;