@crowdstrike/glide-core 0.17.1 → 0.19.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 (112) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -1
  3. package/dist/accordion.d.ts +1 -1
  4. package/dist/accordion.js +1 -1
  5. package/dist/button-group.button.d.ts +2 -2
  6. package/dist/button-group.button.js +1 -1
  7. package/dist/button-group.d.ts +1 -1
  8. package/dist/button-group.js +1 -1
  9. package/dist/button.d.ts +1 -0
  10. package/dist/button.js +1 -1
  11. package/dist/checkbox-group.d.ts +6 -2
  12. package/dist/checkbox-group.js +13 -12
  13. package/dist/checkbox.d.ts +7 -4
  14. package/dist/checkbox.js +9 -8
  15. package/dist/drawer.d.ts +1 -0
  16. package/dist/drawer.js +1 -1
  17. package/dist/drawer.styles.js +2 -2
  18. package/dist/dropdown.d.ts +5 -3
  19. package/dist/dropdown.js +37 -36
  20. package/dist/dropdown.option.d.ts +3 -2
  21. package/dist/dropdown.option.js +1 -1
  22. package/dist/dropdown.styles.js +3 -15
  23. package/dist/form-controls-layout.d.ts +2 -5
  24. package/dist/form-controls-layout.js +1 -1
  25. package/dist/icon-button.d.ts +1 -1
  26. package/dist/icon-button.js +1 -1
  27. package/dist/inline-alert.d.ts +1 -0
  28. package/dist/inline-alert.js +1 -1
  29. package/dist/input.d.ts +5 -2
  30. package/dist/input.js +5 -5
  31. package/dist/label.d.ts +1 -2
  32. package/dist/label.js +1 -1
  33. package/dist/library/assert-slot.d.ts +19 -0
  34. package/dist/library/assert-slot.js +1 -0
  35. package/dist/library/assert-slot.test.d.ts +1 -0
  36. package/dist/library/assert-slot.test.js +296 -0
  37. package/dist/library/expect-unhandled-rejection.js +1 -0
  38. package/dist/library/expect-window-error.d.ts +1 -0
  39. package/dist/library/expect-window-error.js +1 -0
  40. package/dist/library/form-control.d.ts +22 -0
  41. package/dist/library/form-control.js +1 -0
  42. package/dist/library/localize.test.js +1 -3
  43. package/dist/library/shadow-root-mode.d.ts +2 -0
  44. package/dist/library/shadow-root-mode.js +1 -0
  45. package/dist/menu.button.d.ts +2 -1
  46. package/dist/menu.button.js +1 -1
  47. package/dist/menu.d.ts +1 -0
  48. package/dist/menu.js +1 -1
  49. package/dist/menu.link.d.ts +2 -1
  50. package/dist/menu.link.js +1 -1
  51. package/dist/menu.options.d.ts +1 -1
  52. package/dist/menu.options.js +1 -1
  53. package/dist/modal.d.ts +2 -2
  54. package/dist/modal.icon-button.d.ts +1 -2
  55. package/dist/modal.icon-button.js +1 -1
  56. package/dist/modal.js +1 -1
  57. package/dist/modal.styles.js +23 -19
  58. package/dist/popover.d.ts +1 -0
  59. package/dist/popover.js +1 -1
  60. package/dist/radio-group.d.ts +6 -2
  61. package/dist/radio-group.js +16 -17
  62. package/dist/radio-group.radio.d.ts +3 -2
  63. package/dist/radio-group.radio.js +1 -1
  64. package/dist/radio-group.radio.styles.js +4 -1
  65. package/dist/radio-group.styles.js +0 -2
  66. package/dist/split-button.d.ts +1 -1
  67. package/dist/split-button.js +1 -1
  68. package/dist/split-button.primary-button.d.ts +1 -0
  69. package/dist/split-button.primary-button.js +1 -1
  70. package/dist/split-button.primary-link.d.ts +1 -0
  71. package/dist/split-button.primary-link.js +1 -1
  72. package/dist/split-button.secondary-button.d.ts +1 -0
  73. package/dist/split-button.secondary-button.js +1 -1
  74. package/dist/tab.d.ts +1 -0
  75. package/dist/tab.group.d.ts +4 -4
  76. package/dist/tab.group.js +1 -1
  77. package/dist/tab.js +1 -1
  78. package/dist/tab.panel.d.ts +1 -0
  79. package/dist/tab.panel.js +1 -1
  80. package/dist/tag.d.ts +1 -0
  81. package/dist/tag.js +1 -1
  82. package/dist/textarea.d.ts +6 -3
  83. package/dist/textarea.js +9 -9
  84. package/dist/toasts.d.ts +1 -0
  85. package/dist/toasts.js +1 -1
  86. package/dist/toasts.toast.js +1 -1
  87. package/dist/toggle.d.ts +2 -1
  88. package/dist/toggle.js +1 -1
  89. package/dist/tooltip.container.d.ts +20 -0
  90. package/dist/tooltip.container.js +1 -0
  91. package/dist/tooltip.container.styles.d.ts +2 -0
  92. package/dist/tooltip.container.styles.js +51 -0
  93. package/dist/tooltip.d.ts +8 -2
  94. package/dist/tooltip.js +1 -1
  95. package/dist/tooltip.styles.js +0 -50
  96. package/dist/tree.d.ts +4 -4
  97. package/dist/tree.item.d.ts +1 -1
  98. package/dist/tree.item.icon-button.d.ts +1 -2
  99. package/dist/tree.item.icon-button.js +1 -1
  100. package/dist/tree.item.js +1 -1
  101. package/dist/tree.item.menu.d.ts +3 -5
  102. package/dist/tree.item.menu.js +1 -1
  103. package/dist/tree.js +1 -1
  104. package/package.json +17 -16
  105. package/dist/library/expect-argument-error.js +0 -1
  106. package/dist/library/ow.d.ts +0 -16
  107. package/dist/library/ow.js +0 -1
  108. package/dist/library/ow.test.d.ts +0 -5
  109. package/dist/library/ow.test.js +0 -59
  110. package/dist/modal.tertiary-icon.d.ts +0 -18
  111. package/dist/modal.tertiary-icon.js +0 -1
  112. /package/dist/library/{expect-argument-error.d.ts → expect-unhandled-rejection.d.ts} +0 -0
package/dist/tree.d.ts CHANGED
@@ -12,12 +12,12 @@ export default class GlideCoreTree extends LitElement {
12
12
  #private;
13
13
  static shadowRootOptions: ShadowRootInit;
14
14
  static styles: import("lit").CSSResult[];
15
- selectedItem?: GlideCoreTreeItem;
16
- focusedItem?: GlideCoreTreeItem | null;
17
- privateTabIndex: number;
15
+ readonly version: string;
18
16
  disconnectedCallback(): void;
19
- firstUpdated(): void;
20
17
  render(): import("lit").TemplateResult<1>;
21
18
  selectItem(item: GlideCoreTreeItem): void;
22
19
  constructor();
20
+ private focusedItem?;
21
+ private privateTabIndex;
22
+ private selectedItem?;
23
23
  }
@@ -1,4 +1,3 @@
1
- import './tree.item.menu.js';
2
1
  import { LitElement } from 'lit';
3
2
  declare global {
4
3
  interface HTMLElementTagNameMap {
@@ -21,6 +20,7 @@ export default class GlideCoreTreeItem extends LitElement {
21
20
  selected: boolean;
22
21
  removeIndentation: boolean;
23
22
  nonCollapsible: boolean;
23
+ readonly version: string;
24
24
  focus(options?: FocusOptions): void;
25
25
  get hasChildTreeItems(): boolean;
26
26
  get hasExpandIcon(): boolean;
@@ -9,10 +9,9 @@ declare global {
9
9
  * @slot - An icon.
10
10
  */
11
11
  export default class GlideCoreTreeItemIconButton extends LitElement {
12
- #private;
13
12
  static shadowRootOptions: ShadowRootInit;
14
13
  static styles: import("lit").CSSResult[];
15
14
  label: string;
16
- firstUpdated(): void;
15
+ readonly version: string;
17
16
  render(): import("lit").TemplateResult<1>;
18
17
  }
@@ -1 +1 @@
1
- var __decorate=this&&this.__decorate||function(e,t,o,r){var l,n=arguments.length,i=n<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,o,r);else for(var s=e.length-1;s>=0;s--)(l=e[s])&&(i=(n<3?l(i):n>3?l(t,o,i):l(t,o))||i);return n>3&&i&&Object.defineProperty(t,o,i),i};import"./icon-button.js";import{LitElement,html}from"lit";import{createRef,ref}from"lit/directives/ref.js";import{customElement,property}from"lit/decorators.js";import{owSlot}from"./library/ow.js";import styles from"./tree.item.icon-button.styles.js";let GlideCoreTreeItemIconButton=class GlideCoreTreeItemIconButton extends LitElement{constructor(){super(...arguments),this.label="",this.#e=createRef()}static{this.shadowRootOptions={...LitElement.shadowRootOptions,mode:"closed"}}static{this.styles=styles}firstUpdated(){owSlot(this.#e.value)}render(){return html`<glide-core-icon-button class="component" variant="tertiary" tabindex="-1" label="${this.label}"><slot @slotchange="${this.#t}" ${ref(this.#e)}></slot></glide-core-icon-button>`}#e;#t(){owSlot(this.#e.value)}};__decorate([property()],GlideCoreTreeItemIconButton.prototype,"label",void 0),GlideCoreTreeItemIconButton=__decorate([customElement("glide-core-tree-item-icon-button")],GlideCoreTreeItemIconButton);export default GlideCoreTreeItemIconButton;
1
+ var __decorate=this&&this.__decorate||function(e,t,o,r){var s,i=arguments.length,n=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,o,r);else for(var l=e.length-1;l>=0;l--)(s=e[l])&&(n=(i<3?s(n):i>3?s(t,o,n):s(t,o))||n);return i>3&&n&&Object.defineProperty(t,o,n),n};import"./icon-button.js";import{html,LitElement}from"lit";import{customElement,property}from"lit/decorators.js";import packageJson from"../package.json"with{type:"json"};import styles from"./tree.item.icon-button.styles.js";import assertSlot from"./library/assert-slot.js";import shadowRootMode from"./library/shadow-root-mode.js";let GlideCoreTreeItemIconButton=class GlideCoreTreeItemIconButton extends LitElement{constructor(){super(...arguments),this.label="",this.version=packageJson.version}static{this.shadowRootOptions={...LitElement.shadowRootOptions,mode:shadowRootMode}}static{this.styles=styles}render(){return html`<glide-core-icon-button class="component" variant="tertiary" tabindex="-1" label="${this.label}"><slot ${assertSlot()}></slot></glide-core-icon-button>`}};__decorate([property()],GlideCoreTreeItemIconButton.prototype,"label",void 0),__decorate([property({reflect:!0})],GlideCoreTreeItemIconButton.prototype,"version",void 0),GlideCoreTreeItemIconButton=__decorate([customElement("glide-core-tree-item-icon-button")],GlideCoreTreeItemIconButton);export default GlideCoreTreeItemIconButton;
package/dist/tree.item.js CHANGED
@@ -1 +1 @@
1
- var _a,GlideCoreTreeItem_1,__decorate=this&&this.__decorate||function(e,t,o,i){var l,r=arguments.length,s=r<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 n=e.length-1;n>=0;n--)(l=e[n])&&(s=(r<3?l(s):r>3?l(t,o,s):l(t,o))||s);return r>3&&s&&Object.defineProperty(t,o,s),s};import"./tree.item.menu.js";import{LitElement,html}from"lit";import{LocalizeController}from"./library/localize.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{ifDefined}from"lit/directives/if-defined.js";import{styleMap}from"lit/directives/style-map.js";import{when}from"lit/directives/when.js";import GlideCoreIconButton from"./icon-button.js";import GlideCoreTreeItemMenu from"./tree.item.menu.js";import chevronIcon from"./icons/chevron.js";import ow,{owSlotType}from"./library/ow.js";import styles from"./tree.item.styles.js";let GlideCoreTreeItem=class GlideCoreTreeItem extends LitElement{constructor(){super(...arguments),this.expanded=!1,this.label="",this.level=1,this.selected=!1,this.removeIndentation=!1,this.nonCollapsible=!1,this.childTreeItems=[],this.hasPrefixIcon=!1,this.#e=createRef(),this.#t=createRef(),this.#o=new LocalizeController(this),this.#i=createRef(),this.#l=createRef()}static{GlideCoreTreeItem_1=this}static{this.shadowRootOptions={...LitElement.shadowRootOptions,delegatesFocus:!0,mode:"closed"}}static{this.styles=styles}focus(e){this.#t.value?.focus(e),this.#r(0)}get hasChildTreeItems(){return this.childTreeItems.length>0}get hasExpandIcon(){return this.hasChildTreeItems&&!this.nonCollapsible}render(){return html`<div class="${classMap({component:!0,expanded:this.expanded,selected:this.selected})}" role="treeitem" aria-label="${this.label}" aria-selected="${ifDefined(this.#s)}" aria-expanded="${ifDefined(this.#n)}"><div class="${classMap({"label-container":!0,"prefix-icon":this.hasPrefixIcon,selected:this.selected})}" tabindex="-1" @focusout="${this.#a}" @focusin="${this.#d}" ${ref(this.#t)}><div style="${styleMap({flexShrink:0,width:this.#c})}"></div>${when(!this.removeIndentation||this.hasExpandIcon,(()=>html`<div class="${classMap({"expand-icon-container":!0,expanded:this.expanded})}">${when(this.hasExpandIcon,(()=>chevronIcon))}</div>`))}<slot name="prefix" ${ref(this.#l)} @slotchange="${this.#m}"></slot><div class="${classMap({label:!0,"prefix-icon":this.hasPrefixIcon})}">${this.label}</div><div class="icon-container"><slot name="menu" ${ref(this.#i)} @slotchange="${this.#h}"></slot><slot name="suffix"></slot></div></div><div class="${classMap({"default-slot-container":!0,expanded:this.expanded})}" role="group"><slot @slotchange="${this.#f}" ${ref(this.#e)}></slot></div></div>`}selectItem(e){let t;if(this.#p)for(const o of this.#p)if(e===o)o.setAttribute("selected","true"),t=o;else{o.removeAttribute("selected");const i=o.selectItem(e);i&&(t=i)}return t}toggleExpand(){this.expanded=!this.expanded}#e;#t;#o;#i;#l;get#p(){return this.#e.value?.assignedElements().filter((e=>e instanceof GlideCoreTreeItem_1))}get#n(){return this.hasChildTreeItems?this.expanded?"true":"false":void 0}get#s(){return this.hasChildTreeItems?void 0:this.selected?"true":"false"}get#c(){return 20*(this.level-1)+"px"}#u(e){return e&&e instanceof HTMLElement&&!(e instanceof GlideCoreTreeItem_1)&&this.contains(e)}#f(){this.#I()}#d(e){this.#u(e.target)&&e.stopPropagation()}#a(e){this.#u(e.relatedTarget)?e.stopPropagation():this.#r(-1)}#h(){owSlotType(this.#i.value,[GlideCoreTreeItemMenu]);for(const e of this.#i.value.assignedElements())e instanceof GlideCoreTreeItemMenu&&(e.label=this.#o.term("actionsFor",this.label))}#m(){const e=this.#l.value?.assignedNodes();this.hasPrefixIcon=Boolean(e&&e.length>0)}#r(e){ow(this.#t.value,ow.object.instanceOf(HTMLElement)),this.#t.value.tabIndex=e;for(const t of this.querySelectorAll("& > glide-core-tree-item-icon-button"))t.tabIndex=e}#I(){const e=[];if(this.#p){for(const t of this.#p)t.level=this.level+1,e.push(t);this.childTreeItems=e}}};__decorate([property({reflect:!0,type:Boolean})],GlideCoreTreeItem.prototype,"expanded",void 0),__decorate([property({reflect:!0})],GlideCoreTreeItem.prototype,"label",void 0),__decorate([property({reflect:!0,type:Number})],GlideCoreTreeItem.prototype,"level",void 0),__decorate([property({reflect:!0,type:Boolean})],GlideCoreTreeItem.prototype,"selected",void 0),__decorate([property({reflect:!0,type:Boolean,attribute:"remove-indentation"})],GlideCoreTreeItem.prototype,"removeIndentation",void 0),__decorate([property({reflect:!0,type:Boolean,attribute:"non-collapsible"})],GlideCoreTreeItem.prototype,"nonCollapsible",void 0),__decorate([state()],GlideCoreTreeItem.prototype,"childTreeItems",void 0),__decorate([state()],GlideCoreTreeItem.prototype,"hasPrefixIcon",void 0),GlideCoreTreeItem=GlideCoreTreeItem_1=__decorate([customElement("glide-core-tree-item")],GlideCoreTreeItem);export default GlideCoreTreeItem;
1
+ var _a,GlideCoreTreeItem_1,__decorate=this&&this.__decorate||function(e,t,o,i){var r,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 n=e.length-1;n>=0;n--)(r=e[n])&&(l=(s<3?r(l):s>3?r(t,o,l):r(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{ifDefined}from"lit/directives/if-defined.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 GlideCoreTreeItemMenu from"./tree.item.menu.js";import GlideCoreIconButton from"./icon-button.js";import chevronIcon from"./icons/chevron.js";import styles from"./tree.item.styles.js";import assertSlot from"./library/assert-slot.js";import shadowRootMode from"./library/shadow-root-mode.js";let GlideCoreTreeItem=class GlideCoreTreeItem extends LitElement{constructor(){super(...arguments),this.expanded=!1,this.label="",this.level=1,this.selected=!1,this.removeIndentation=!1,this.nonCollapsible=!1,this.version=packageJson.version,this.childTreeItems=[],this.hasPrefixIcon=!1,this.#e=createRef(),this.#t=createRef(),this.#o=new LocalizeController(this),this.#i=createRef(),this.#r=createRef()}static{GlideCoreTreeItem_1=this}static{this.shadowRootOptions={...LitElement.shadowRootOptions,delegatesFocus:!0,mode:shadowRootMode}}static{this.styles=styles}focus(e){this.#t.value?.focus(e),this.#s(0)}get hasChildTreeItems(){return this.childTreeItems.length>0}get hasExpandIcon(){return this.hasChildTreeItems&&!this.nonCollapsible}render(){return html`<div class="${classMap({component:!0,expanded:this.expanded,selected:this.selected})}" role="treeitem" aria-label="${this.label}" aria-selected="${ifDefined(this.#l)}" aria-expanded="${ifDefined(this.#n)}"><div class="${classMap({"label-container":!0,"prefix-icon":this.hasPrefixIcon,selected:this.selected})}" tabindex="-1" @focusout="${this.#a}" @focusin="${this.#d}" ${ref(this.#t)}><div style="${styleMap({flexShrink:0,width:this.#c})}"></div>${when(!this.removeIndentation||this.hasExpandIcon,(()=>html`<div class="${classMap({"expand-icon-container":!0,expanded:this.expanded})}">${when(this.hasExpandIcon,(()=>chevronIcon))}</div>`))}<slot name="prefix" ${ref(this.#r)} @slotchange="${this.#h}"></slot><div class="${classMap({label:!0,"prefix-icon":this.hasPrefixIcon})}">${this.label}</div><div class="icon-container"><slot name="menu" ${ref(this.#i)} @slotchange="${this.#m}" ${assertSlot([GlideCoreTreeItemMenu],!0)}></slot><slot name="suffix"></slot></div></div><div class="${classMap({"default-slot-container":!0,expanded:this.expanded})}" role="group"><slot @slotchange="${this.#f}" ${ref(this.#e)}></slot></div></div>`}selectItem(e){let t;if(this.#p)for(const o of this.#p)if(e===o)o.setAttribute("selected","true"),t=o;else{o.removeAttribute("selected");const i=o.selectItem(e);i&&(t=i)}return t}toggleExpand(){this.expanded=!this.expanded}#e;#t;#o;#i;#r;get#p(){return this.#e.value?.assignedElements().filter((e=>e instanceof GlideCoreTreeItem_1))}get#n(){return this.hasChildTreeItems?this.expanded?"true":"false":void 0}get#l(){return this.hasChildTreeItems?void 0:this.selected?"true":"false"}get#c(){return 20*(this.level-1)+"px"}#u(e){return e&&e instanceof HTMLElement&&!(e instanceof GlideCoreTreeItem_1)&&this.contains(e)}#f(){this.#I()}#d(e){this.#u(e.target)&&e.stopPropagation()}#a(e){this.#u(e.relatedTarget)?e.stopPropagation():this.#s(-1)}#m(){if(this.#i.value)for(const e of this.#i.value.assignedElements())e instanceof GlideCoreTreeItemMenu&&(e.label=this.#o.term("actionsFor",this.label))}#h(){const e=this.#r.value?.assignedNodes();this.hasPrefixIcon=Boolean(e&&e.length>0)}#s(e){this.#t.value&&(this.#t.value.tabIndex=e);for(const t of this.querySelectorAll("& > glide-core-tree-item-icon-button"))t.tabIndex=e}#I(){const e=[];if(this.#p){for(const t of this.#p)t.level=this.level+1,e.push(t);this.childTreeItems=e}}};__decorate([property({reflect:!0,type:Boolean})],GlideCoreTreeItem.prototype,"expanded",void 0),__decorate([property({reflect:!0})],GlideCoreTreeItem.prototype,"label",void 0),__decorate([property({reflect:!0,type:Number})],GlideCoreTreeItem.prototype,"level",void 0),__decorate([property({reflect:!0,type:Boolean})],GlideCoreTreeItem.prototype,"selected",void 0),__decorate([property({reflect:!0,type:Boolean,attribute:"remove-indentation"})],GlideCoreTreeItem.prototype,"removeIndentation",void 0),__decorate([property({reflect:!0,type:Boolean,attribute:"non-collapsible"})],GlideCoreTreeItem.prototype,"nonCollapsible",void 0),__decorate([property({reflect:!0})],GlideCoreTreeItem.prototype,"version",void 0),__decorate([state()],GlideCoreTreeItem.prototype,"childTreeItems",void 0),__decorate([state()],GlideCoreTreeItem.prototype,"hasPrefixIcon",void 0),GlideCoreTreeItem=GlideCoreTreeItem_1=__decorate([customElement("glide-core-tree-item")],GlideCoreTreeItem);export default GlideCoreTreeItem;
@@ -1,8 +1,6 @@
1
- import './icon-button.js';
2
1
  import './menu.js';
3
2
  import './menu.options.js';
4
3
  import { LitElement } from 'lit';
5
- import type { Placement } from '@floating-ui/dom';
6
4
  declare global {
7
5
  interface HTMLElementTagNameMap {
8
6
  'glide-core-tree-item-menu': GlideCoreTreeItemMenu;
@@ -10,16 +8,16 @@ declare global {
10
8
  }
11
9
  /**
12
10
  * @slot - One or more of `<glide-core-menu-button>` or `<glide-core-menu-link>`.
13
- * @slot icon - An icon.
11
+ * @slot icon - An optional icon.
14
12
  */
15
13
  export default class GlideCoreTreeItemMenu extends LitElement {
16
14
  #private;
17
15
  static shadowRootOptions: ShadowRootInit;
18
16
  static styles: import("lit").CSSResult[];
19
- placement: Placement;
17
+ placement: 'bottom-start' | 'top-start';
20
18
  label: string;
19
+ readonly version: string;
21
20
  click(): void;
22
- firstUpdated(): void;
23
21
  render(): import("lit").TemplateResult<1>;
24
22
  private hasCustomIcon;
25
23
  }
@@ -1 +1 @@
1
- var __decorate=this&&this.__decorate||function(e,t,o,n){var l,i=arguments.length,r=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,o,n);else for(var s=e.length-1;s>=0;s--)(l=e[s])&&(r=(i<3?l(r):i>3?l(t,o,r):l(t,o))||r);return i>3&&r&&Object.defineProperty(t,o,r),r};import"./icon-button.js";import"./menu.js";import"./menu.options.js";import{LitElement,html}from"lit";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 GlideCoreIconButton from"./icon-button.js";import GlideCoreMenuButton from"./menu.button.js";import GlideCoreMenuLink from"./menu.link.js";import ow,{owSlot,owSlotType}from"./library/ow.js";import styles from"./tree.item.menu.styles.js";let GlideCoreTreeItemMenu=class GlideCoreTreeItemMenu extends LitElement{constructor(){super(...arguments),this.placement="bottom-start",this.label="",this.hasCustomIcon=!1,this.#e=createRef(),this.#t=createRef(),this.#o=createRef(),this.#n=createRef()}static{this.shadowRootOptions={...LitElement.shadowRootOptions,mode:"closed"}}static{this.styles=styles}click(){ow(this.#t.value,ow.object.instanceOf(GlideCoreIconButton)),this.#t.value.click()}firstUpdated(){owSlot(this.#e.value),owSlotType(this.#e.value,[GlideCoreMenuButton,GlideCoreMenuLink])}render(){return html`<glide-core-menu class="component" placement="${this.placement}" ${ref(this.#n)}><glide-core-menu-options><slot @slotchange="${this.#l}" ${ref(this.#e)}></slot></glide-core-menu-options><glide-core-icon-button data-test="icon-button" slot="target" variant="tertiary" label="${this.label}" ${ref(this.#t)}><slot name="icon" @slotchange="${this.#i}" ${ref(this.#o)}></slot>${when(!this.hasCustomIcon,(()=>icons.dots))}</glide-core-icon-button></glide-core-menu>`}#e;#t;#o;#n;#l(){owSlot(this.#e.value),owSlotType(this.#e.value,[GlideCoreMenuButton,GlideCoreMenuLink])}#i(){const e=this.#o.value?.assignedNodes();this.hasCustomIcon=Boolean(e&&e.length>0)}};__decorate([property({reflect:!0})],GlideCoreTreeItemMenu.prototype,"placement",void 0),__decorate([property()],GlideCoreTreeItemMenu.prototype,"label",void 0),__decorate([state()],GlideCoreTreeItemMenu.prototype,"hasCustomIcon",void 0),GlideCoreTreeItemMenu=__decorate([customElement("glide-core-tree-item-menu")],GlideCoreTreeItemMenu);export default GlideCoreTreeItemMenu;const icons={dots:html`<svg aria-hidden="true" style="${styleMap({height:"0.875rem",width:"0.25rem"})}" viewBox="0 0 4 18" fill="none" stroke="currentColor" stroke-width="2"><path d="M2 15C2.55228 15 3 15.4477 3 16C3 16.5523 2.55228 17 2 17C1.44772 17 1 16.5523 1 16C1 15.4477 1.44772 15 2 15Z"/><path d="M2 8C2.55228 8 3 8.44772 3 9C3 9.55228 2.55228 10 2 10C1.44772 10 1 9.55228 1 9C1 8.44772 1.44772 8 2 8Z"/><path d="M2 1C2.55228 1 3 1.44772 3 2C3 2.55228 2.55228 3 2 3C1.44772 3 1 2.55228 1 2C1 1.44772 1.44772 1 2 1Z"/></svg>`};
1
+ var __decorate=this&&this.__decorate||function(e,t,o,r){var n,i=arguments.length,s=i<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--)(n=e[l])&&(s=(i<3?n(s):i>3?n(t,o,s):n(t,o))||s);return i>3&&s&&Object.defineProperty(t,o,s),s};import"./menu.js";import"./menu.options.js";import{html,LitElement}from"lit";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 styles from"./tree.item.menu.styles.js";import GlideCoreIconButton from"./icon-button.js";import GlideCoreMenuLink from"./menu.link.js";import GlideCoreMenuButton from"./menu.button.js";import assertSlot from"./library/assert-slot.js";import shadowRootMode from"./library/shadow-root-mode.js";let GlideCoreTreeItemMenu=class GlideCoreTreeItemMenu extends LitElement{constructor(){super(...arguments),this.placement="bottom-start",this.label="",this.version=packageJson.version,this.hasCustomIcon=!1,this.#e=createRef(),this.#t=createRef(),this.#o=createRef()}static{this.shadowRootOptions={...LitElement.shadowRootOptions,mode:shadowRootMode}}static{this.styles=styles}click(){this.#e.value?.click()}render(){return html`<glide-core-menu class="component" placement="${this.placement}" ${ref(this.#o)}><glide-core-menu-options><slot ${assertSlot([GlideCoreMenuButton,GlideCoreMenuLink])}></slot></glide-core-menu-options><glide-core-icon-button data-test="icon-button" slot="target" variant="tertiary" label="${this.label}" ${ref(this.#e)}><slot name="icon" @slotchange="${this.#r}" ${ref(this.#t)}></slot>${when(!this.hasCustomIcon,(()=>icons.dots))}</glide-core-icon-button></glide-core-menu>`}#e;#t;#o;#r(){const e=this.#t.value?.assignedNodes();this.hasCustomIcon=Boolean(e&&e.length>0)}};__decorate([property({reflect:!0})],GlideCoreTreeItemMenu.prototype,"placement",void 0),__decorate([property()],GlideCoreTreeItemMenu.prototype,"label",void 0),__decorate([property({reflect:!0})],GlideCoreTreeItemMenu.prototype,"version",void 0),__decorate([state()],GlideCoreTreeItemMenu.prototype,"hasCustomIcon",void 0),GlideCoreTreeItemMenu=__decorate([customElement("glide-core-tree-item-menu")],GlideCoreTreeItemMenu);export default GlideCoreTreeItemMenu;const icons={dots:html`<svg aria-hidden="true" style="${styleMap({height:"0.875rem",width:"0.25rem"})}" viewBox="0 0 4 18" fill="none" stroke="currentColor" stroke-width="2"><path d="M2 15C2.55228 15 3 15.4477 3 16C3 16.5523 2.55228 17 2 17C1.44772 17 1 16.5523 1 16C1 15.4477 1.44772 15 2 15Z"/><path d="M2 8C2.55228 8 3 8.44772 3 9C3 9.55228 2.55228 10 2 10C1.44772 10 1 9.55228 1 9C1 8.44772 1.44772 8 2 8Z"/><path d="M2 1C2.55228 1 3 1.44772 3 2C3 2.55228 2.55228 3 2 3C1.44772 3 1 2.55228 1 2C1 1.44772 1.44772 1 2 1Z"/></svg>`};
package/dist/tree.js CHANGED
@@ -1 +1 @@
1
- var __decorate=this&&this.__decorate||function(e,t,o,s){var r,i=arguments.length,l=i<3?t:null===s?s=Object.getOwnPropertyDescriptor(t,o):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,o,s);else for(var n=e.length-1;n>=0;n--)(r=e[n])&&(l=(i<3?r(l):i>3?r(t,o,l):r(t,o))||l);return i>3&&l&&Object.defineProperty(t,o,l),l};import{LitElement,html}from"lit";import{createRef,ref}from"lit/directives/ref.js";import{customElement,state}from"lit/decorators.js";import{owSlot,owSlotType}from"./library/ow.js";import GlideCoreTreeItem from"./tree.item.js";import styles from"./tree.styles.js";let GlideCoreTree=class GlideCoreTree extends LitElement{static{this.shadowRootOptions={...LitElement.shadowRootOptions,mode:"closed"}}static{this.styles=styles}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("focusin",this.#e),this.removeEventListener("focusout",this.#t)}firstUpdated(){owSlot(this.#o.value),owSlotType(this.#o.value,[GlideCoreTreeItem])}render(){return html`<div class="component" role="tree" tabindex="${this.privateTabIndex}" @click="${this.#s}" @keydown="${this.#r}"><slot @slotchange="${this.#i}" ${ref(this.#o)}></slot></div>`}selectItem(e){if(this.#l){for(const t of this.#l){e===t?(t.setAttribute("selected","true"),this.selectedItem=t):t.removeAttribute("selected");const o=t.selectItem(e);o&&(this.selectedItem=o)}e.dispatchEvent(new Event("selected",{bubbles:!0,composed:!0}))}}constructor(){super(),this.privateTabIndex=0,this.#o=createRef(),this.addEventListener("focusin",this.#e),this.addEventListener("focusout",this.#t)}#o;get#l(){return this.#o.value?.assignedElements().filter((e=>e instanceof GlideCoreTreeItem))}#n(e){e?.focus(),this.focusedItem=e}#c(){const e=new Set;return[...this.querySelectorAll("glide-core-tree-item")].filter((t=>{const o=t.parentElement?.closest("glide-core-tree-item");return!o||o.expanded&&!e.has(o)||e.add(t),!e.has(t)}))}#s(e){const t=e.target;if(t.closest("glide-core-tree-item-icon-button")??t.closest("glide-core-tree-item-menu"))return;const o=t.closest("glide-core-tree-item");o&&(o.hasChildTreeItems&&!o.nonCollapsible?o.toggleExpand():this.selectItem(o))}#r(e){if(!["ArrowRight","ArrowLeft","ArrowDown","ArrowUp","Home","End","Enter"].includes(e.key))return;if(["ArrowRight","ArrowLeft","ArrowDown","ArrowUp","Home","End"].includes(e.key)&&e.preventDefault(),e.target&&e.target instanceof HTMLElement&&(e.target.closest("glide-core-tree-item-icon-button")??e.target.closest("glide-core-tree-item-menu")))return;const t=this.#c(),{focusedItem:o}=this,s=t.findIndex((e=>e.matches(":focus")));if("ArrowRight"===e.key&&o?.hasChildTreeItems&&(o.expanded?this.#n(o.querySelector("glide-core-tree-item")):o.toggleExpand()),"ArrowLeft"===e.key)if(o?.expanded&&!o.nonCollapsible)o.toggleExpand();else{const e=o?.parentElement?.closest("glide-core-tree-item");this.#n(e)}"ArrowDown"===e.key&&-1!==s&&s<t.length-1&&this.#n(t[s+1]),"ArrowUp"===e.key&&s>0&&this.#n(t[s-1]),"Home"===e.key&&this.#n(t[0]),"End"===e.key&&this.#n(t.at(-1)),"Enter"===e.key&&o&&(o.hasChildTreeItems&&!o.nonCollapsible?o.toggleExpand():this.selectItem(o))}#i(){owSlot(this.#o.value),owSlotType(this.#o.value,[GlideCoreTreeItem])}#e(e){let t;e.target===this?t=this.selectedItem?.checkVisibility({visibilityProperty:!0})?this.selectedItem:this.#l?.[0]:e.target instanceof GlideCoreTreeItem&&(t=e.target,this.privateTabIndex=-1),this.#n(t)}#t(e){e.relatedTarget&&e.relatedTarget instanceof HTMLElement&&this.contains(e.relatedTarget)||(this.privateTabIndex=0,this.focusedItem=void 0)}};__decorate([state()],GlideCoreTree.prototype,"selectedItem",void 0),__decorate([state()],GlideCoreTree.prototype,"focusedItem",void 0),__decorate([state()],GlideCoreTree.prototype,"privateTabIndex",void 0),GlideCoreTree=__decorate([customElement("glide-core-tree")],GlideCoreTree);export default GlideCoreTree;
1
+ var __decorate=this&&this.__decorate||function(e,t,o,r){var s,i=arguments.length,n=i<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,o,r);else for(var l=e.length-1;l>=0;l--)(s=e[l])&&(n=(i<3?s(n):i>3?s(t,o,n):s(t,o))||n);return i>3&&n&&Object.defineProperty(t,o,n),n};import{html,LitElement}from"lit";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 GlideCoreTreeItem from"./tree.item.js";import styles from"./tree.styles.js";import assertSlot from"./library/assert-slot.js";import shadowRootMode from"./library/shadow-root-mode.js";let GlideCoreTree=class GlideCoreTree extends LitElement{static{this.shadowRootOptions={...LitElement.shadowRootOptions,mode:shadowRootMode}}static{this.styles=styles}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("focusin",this.#e),this.removeEventListener("focusout",this.#t)}render(){return html`<div class="component" role="tree" tabindex="${this.privateTabIndex}" @click="${this.#o}" @keydown="${this.#r}"><slot ${ref(this.#s)} ${assertSlot([GlideCoreTreeItem])}></slot></div>`}selectItem(e){if(this.#i){for(const t of this.#i){e===t?(t.setAttribute("selected","true"),this.selectedItem=t):t.removeAttribute("selected");const o=t.selectItem(e);o&&(this.selectedItem=o)}e.dispatchEvent(new Event("selected",{bubbles:!0,composed:!0}))}}constructor(){super(),this.version=packageJson.version,this.privateTabIndex=0,this.#s=createRef(),this.addEventListener("focusin",this.#e),this.addEventListener("focusout",this.#t)}#s;get#i(){return this.#s.value?.assignedElements().filter((e=>e instanceof GlideCoreTreeItem))}#n(e){e?.focus(),this.focusedItem=e}#l(){const e=new Set;return[...this.querySelectorAll("glide-core-tree-item")].filter((t=>{const o=t.parentElement?.closest("glide-core-tree-item");return!o||o.expanded&&!e.has(o)||e.add(t),!e.has(t)}))}#o(e){const t=e.target;if(t.closest("glide-core-tree-item-icon-button")??t.closest("glide-core-tree-item-menu"))return;const o=t.closest("glide-core-tree-item");o&&(o.hasChildTreeItems&&!o.nonCollapsible?o.toggleExpand():this.selectItem(o))}#r(e){if(!["ArrowRight","ArrowLeft","ArrowDown","ArrowUp","Home","End","Enter"].includes(e.key))return;if(["ArrowRight","ArrowLeft","ArrowDown","ArrowUp","Home","End"].includes(e.key)&&e.preventDefault(),e.target&&e.target instanceof HTMLElement&&(e.target.closest("glide-core-tree-item-icon-button")??e.target.closest("glide-core-tree-item-menu")))return;const t=this.#l(),{focusedItem:o}=this,r=t.findIndex((e=>e.matches(":focus")));if("ArrowRight"===e.key&&o?.hasChildTreeItems&&(o.expanded?this.#n(o.querySelector("glide-core-tree-item")):o.toggleExpand()),"ArrowLeft"===e.key)if(o?.expanded&&!o.nonCollapsible)o.toggleExpand();else{const e=o?.parentElement?.closest("glide-core-tree-item");this.#n(e)}"ArrowDown"===e.key&&-1!==r&&r<t.length-1&&this.#n(t[r+1]),"ArrowUp"===e.key&&r>0&&this.#n(t[r-1]),"Home"===e.key&&this.#n(t[0]),"End"===e.key&&this.#n(t.at(-1)),"Enter"===e.key&&o&&(o.hasChildTreeItems&&!o.nonCollapsible?o.toggleExpand():this.selectItem(o))}#e(e){let t;e.target===this?t=this.selectedItem?.checkVisibility({visibilityProperty:!0})?this.selectedItem:this.#i?.[0]:e.target instanceof GlideCoreTreeItem&&(t=e.target,this.privateTabIndex=-1),this.#n(t)}#t(e){e.relatedTarget&&e.relatedTarget instanceof HTMLElement&&this.contains(e.relatedTarget)||(this.privateTabIndex=0,this.focusedItem=void 0)}};__decorate([property({reflect:!0})],GlideCoreTree.prototype,"version",void 0),__decorate([state()],GlideCoreTree.prototype,"focusedItem",void 0),__decorate([state()],GlideCoreTree.prototype,"privateTabIndex",void 0),__decorate([state()],GlideCoreTree.prototype,"selectedItem",void 0),GlideCoreTree=__decorate([customElement("glide-core-tree")],GlideCoreTree);export default GlideCoreTree;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crowdstrike/glide-core",
3
- "version": "0.17.1",
3
+ "version": "0.19.0",
4
4
  "description": "CrowdStrike's Glide Design System components package for providing web components",
5
5
  "author": "CrowdStrike UX Team",
6
6
  "license": "Apache-2.0",
@@ -31,14 +31,14 @@
31
31
  "./styles/*": null,
32
32
  "./label.js": null,
33
33
  "./toasts.toast.js": null,
34
+ "./tooltip.container.js": null,
34
35
  "./styles/fonts.css": "./dist/styles/fonts.css",
35
36
  "./styles/variables.css": "./dist/styles/variables.css"
36
37
  },
37
38
  "dependencies": {
38
39
  "@floating-ui/dom": "^1.6.12",
39
40
  "@shoelace-style/localize": "^3.2.1",
40
- "nanoid": "^5.0.9",
41
- "ow": "^2.0.0"
41
+ "nanoid": "^5.0.9"
42
42
  },
43
43
  "peerDependencies": {
44
44
  "lit": "^3.2.1"
@@ -51,16 +51,16 @@
51
51
  "@eslint/js": "^9.17.0",
52
52
  "@open-wc/testing": "^4.0.0",
53
53
  "@rollup/plugin-commonjs": "^25.0.8",
54
- "@storybook/addon-actions": "^8.4.7",
55
- "@storybook/addon-essentials": "^8.4.7",
56
- "@storybook/addon-links": "^8.4.7",
57
- "@storybook/blocks": "^8.4.7",
58
- "@storybook/core-events": "^8.4.7",
59
- "@storybook/manager-api": "^8.4.7",
60
- "@storybook/preview-api": "^8.4.7",
61
- "@storybook/theming": "^8.4.7",
62
- "@storybook/web-components": "^8.4.7",
63
- "@storybook/web-components-vite": "^8.4.7",
54
+ "@storybook/addon-actions": "^8.5.1",
55
+ "@storybook/addon-controls": "^8.5.1",
56
+ "@storybook/addon-docs": "^8.5.1",
57
+ "@storybook/addon-toolbars": "^8.5.1",
58
+ "@storybook/core-events": "^8.5.1",
59
+ "@storybook/manager-api": "^8.5.1",
60
+ "@storybook/preview-api": "^8.5.1",
61
+ "@storybook/theming": "^8.5.1",
62
+ "@storybook/web-components": "^8.5.1",
63
+ "@storybook/web-components-vite": "^8.5.1",
64
64
  "@stylistic/eslint-plugin": "^2.12.1",
65
65
  "@types/eslint": "^8.56.12",
66
66
  "@types/mocha": "^10.0.10",
@@ -77,10 +77,10 @@
77
77
  "esbuild": "^0.24.2",
78
78
  "eslint": "^9.17.0",
79
79
  "eslint-config-prettier": "^9.1.0",
80
+ "eslint-plugin-import": "^2.31.0",
80
81
  "eslint-plugin-lit": "^1.15.0",
81
82
  "eslint-plugin-lit-a11y": "^4.1.4",
82
83
  "eslint-plugin-sort-class-members": "^1.21.0",
83
- "eslint-plugin-sort-imports-es6-autofix": "^0.6.0",
84
84
  "eslint-plugin-unicorn": "^56.0.1",
85
85
  "globals": "^15.13.0",
86
86
  "globby": "^14.0.2",
@@ -98,7 +98,7 @@
98
98
  "prettier": "3.4.2",
99
99
  "rimraf": "^5.0.10",
100
100
  "sinon": "^19.0.2",
101
- "storybook": "^8.4.7",
101
+ "storybook": "^8.5.1",
102
102
  "stylelint": "^16.12.0",
103
103
  "stylelint-config-standard": "^36.0.1",
104
104
  "stylelint-order": "^6.0.4",
@@ -109,6 +109,7 @@
109
109
  "ts-lit-plugin": "^2.0.2",
110
110
  "typescript": "^5.7.2",
111
111
  "typescript-eslint": "^8.18.0",
112
+ "vite": "^6.0.7",
112
113
  "vitest": "^2.1.8"
113
114
  },
114
115
  "engines": {
@@ -117,7 +118,7 @@
117
118
  },
118
119
  "scripts": {
119
120
  "start": "per-env",
120
- "start:development": "storybook dev --config-dir .storybook --disable-telemetry --no-open --port 6006",
121
+ "start:development": "storybook dev --config-dir .storybook --no-open --port 6006",
121
122
  "start:production": "rimraf ./dist && npm-run-all --parallel start:production:components start:production:storybook start:production:stylesheets --aggregate-output --print-label",
122
123
  "start:production:components": "tsc --outDir ./dist && node ./terser.js",
123
124
  "start:production:figma": "pnpm dt export-variables && pnpm dt build-tokens && pnpm dt build-styles",
@@ -1 +0,0 @@
1
- import{ArgumentError}from"ow";import{expect}from"@open-wc/testing";import sinon from"sinon";export default async function(o){const n=window.onerror;window.onerror=null;const r=sinon.spy();try{await o.call(context)}catch(o){o instanceof ArgumentError&&r()}expect(r.callCount).to.equal(1),window.onerror=n}
@@ -1,16 +0,0 @@
1
- import { type Ow } from 'ow';
2
- /**
3
- * @description Asserts that a slot has at least one slotted node.
4
- *
5
- * @param slot - The slot to assert against.
6
- */
7
- export declare function owSlot(slot?: HTMLSlotElement): asserts slot is HTMLSlotElement;
8
- /**
9
- * @description Asserts that slotted nodes are a certain type.
10
- *
11
- * @param slot - The slot to assert against.
12
- * @param slotted - An array of constructors. Slotted nodes must extend one of them.
13
- */
14
- export declare function owSlotType(slot?: HTMLSlotElement, slotted?: (typeof Element | typeof Text)[]): asserts slot is HTMLSlotElement;
15
- declare const owOrShim: Ow;
16
- export default owOrShim;
@@ -1 +0,0 @@
1
- import ow,{}from"ow";const isDevelopment=window.location.host.startsWith("localhost")||window.location.host.startsWith("127.0.0.1");export function owSlot(e){isDevelopment&&(ow(e,ow.object.is((e=>e instanceof HTMLSlotElement))),ow(e.assignedNodes().length,ow.number.is((e=>e>0)).message(e.name?`Expected a "${e.name}" slot.`:"Expected a default slot.")))}export function owSlotType(e,o=[]){if(isDevelopment&&(ow(e,ow.object.is((e=>e instanceof HTMLSlotElement))),0!==e.assignedNodes().length&&o.length>0)){const t=e.assignedNodes({flatten:!0}).filter((e=>!!(e instanceof Text&&o.includes(Text))||!(e instanceof Text)));ow(t.length,ow.number.is((e=>e>0)).message(`Expected a slotted element that extends ${o.map((({name:e})=>e)).join(" or ")}.`));for(const e of t){const t=`Expected slotted element to extend ${o.map((({name:e})=>e)).join(" or ")}. Extends ${e.constructor.name} instead.`,n=o.some((o=>e instanceof o));ow(n,ow.boolean.true.message(t))}}}const shim=new Proxy((()=>{}),{get:()=>shim,apply:()=>shim}),owOrShim=isDevelopment?ow:shim;export default owOrShim;
@@ -1,5 +0,0 @@
1
- import { LitElement } from 'lit';
2
- export default class GlideCoreSlot extends LitElement {
3
- static shadowRootOptions: ShadowRootInit;
4
- render(): import("lit").TemplateResult<1>;
5
- }
@@ -1,59 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { LitElement } from 'lit';
8
- import { assert, expect, fixture, html } from '@open-wc/testing';
9
- import { customElement } from 'lit/decorators.js';
10
- import { html as litHtml } from 'lit';
11
- import { owSlot, owSlotType } from './ow.js';
12
- let GlideCoreSlot = class GlideCoreSlot extends LitElement {
13
- static { this.shadowRootOptions = {
14
- ...LitElement.shadowRootOptions,
15
- mode: 'closed',
16
- }; }
17
- render() {
18
- return litHtml `<slot></slot>`;
19
- }
20
- };
21
- GlideCoreSlot = __decorate([
22
- customElement('glide-core-slot')
23
- ], GlideCoreSlot);
24
- export default GlideCoreSlot;
25
- GlideCoreSlot.shadowRootOptions.mode = 'open';
26
- it('throws when a slot lacks a node', async () => {
27
- const component = await fixture(html `<glide-core-slot></glide-core-slot>`);
28
- const slot = component.shadowRoot?.querySelector('slot');
29
- assert(slot !== null);
30
- expect(() => owSlot(slot)).to.throw();
31
- });
32
- it('throws when a slot lacks a specific node', async () => {
33
- const component = await fixture(html `<glide-core-slot>
34
- <span>Span</span>
35
- </glide-core-slot>`);
36
- const slot = component.shadowRoot?.querySelector('slot');
37
- assert(slot !== null);
38
- expect(() => owSlotType(slot, [HTMLButtonElement])).to.throw();
39
- });
40
- it('does not throw when a slot has a node', async () => {
41
- const component = await fixture(html `<glide-core-slot>
42
- <span>Span</span>
43
- </glide-core-slot>`);
44
- const slot = component.shadowRoot?.querySelector('slot');
45
- assert(slot !== null);
46
- expect(() => owSlot(slot)).to.not.throw();
47
- });
48
- it('does not throw when a slot has a specific node', async () => {
49
- const component = await fixture(html `<glide-core-slot> Text </glide-core-slot>`);
50
- const slot = component.shadowRoot?.querySelector('slot');
51
- assert(slot !== null);
52
- expect(() => owSlotType(slot, [Text])).to.not.throw();
53
- });
54
- it('does not throw when a slot has no nodes', async () => {
55
- const component = await fixture(html `<glide-core-slot></glide-core-slot>`);
56
- const slot = component.shadowRoot?.querySelector('slot');
57
- assert(slot !== null);
58
- expect(() => owSlotType(slot, [HTMLButtonElement])).to.not.throw();
59
- });
@@ -1,18 +0,0 @@
1
- import './tooltip.js';
2
- import { LitElement } from 'lit';
3
- declare global {
4
- interface HTMLElementTagNameMap {
5
- 'glide-core-modal-tertiary-icon': GlideCoreModalTertiaryIcon;
6
- }
7
- }
8
- /**
9
- * @slot - The icon to be rendered.
10
- */
11
- export default class GlideCoreModalTertiaryIcon extends LitElement {
12
- #private;
13
- static shadowRootOptions: ShadowRootInit;
14
- label?: string;
15
- tooltipPlacement: 'bottom' | 'left' | 'right' | 'top';
16
- firstUpdated(): void;
17
- render(): import("lit").TemplateResult<1>;
18
- }
@@ -1 +0,0 @@
1
- var __decorate=this&&this.__decorate||function(e,t,o,l){var r,i=arguments.length,a=i<3?t:null===l?l=Object.getOwnPropertyDescriptor(t,o):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,o,l);else for(var n=e.length-1;n>=0;n--)(r=e[n])&&(a=(i<3?r(a):i>3?r(t,o,a):r(t,o))||a);return i>3&&a&&Object.defineProperty(t,o,a),a};import"./tooltip.js";import{LitElement,html}from"lit";import{createRef,ref}from"lit/directives/ref.js";import{customElement,property}from"lit/decorators.js";import{ifDefined}from"lit/directives/if-defined.js";import{owSlot}from"./library/ow.js";import GlideCoreTooltip from"./tooltip.js";let GlideCoreModalTertiaryIcon=class GlideCoreModalTertiaryIcon extends LitElement{constructor(){super(...arguments),this.tooltipPlacement="bottom",this.#e=createRef(),this.#t=createRef()}static{this.shadowRootOptions={...LitElement.shadowRootOptions,mode:"closed"}}firstUpdated(){owSlot(this.#e.value)}render(){return html`<glide-core-tooltip placement="${this.tooltipPlacement}" ${ref(this.#t)}>${this.label} <span tabindex="0" aria-label="${ifDefined(this.label)}" slot="target"><slot @slotchange="${this.#o}" ${ref(this.#e)}></slot></span></glide-core-tooltip>`}#e;#t;#o(){owSlot(this.#e.value)}};__decorate([property()],GlideCoreModalTertiaryIcon.prototype,"label",void 0),__decorate([property({attribute:"tooltip-placement"})],GlideCoreModalTertiaryIcon.prototype,"tooltipPlacement",void 0),GlideCoreModalTertiaryIcon=__decorate([customElement("glide-core-modal-tertiary-icon")],GlideCoreModalTertiaryIcon);export default GlideCoreModalTertiaryIcon;