@crowdstrike/glide-core 0.16.0 → 0.17.1
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.
- package/dist/accordion.d.ts +1 -1
- package/dist/accordion.js +1 -1
- package/dist/accordion.styles.js +17 -15
- package/dist/button-group.d.ts +1 -1
- package/dist/checkbox-group.d.ts +3 -3
- package/dist/checkbox-group.js +1 -1
- package/dist/checkbox.d.ts +3 -3
- package/dist/checkbox.js +17 -37
- package/dist/checkbox.styles.js +1 -12
- package/dist/drawer.d.ts +2 -5
- package/dist/drawer.js +1 -1
- package/dist/dropdown.d.ts +4 -3
- package/dist/dropdown.js +29 -43
- package/dist/dropdown.option.js +1 -1
- package/dist/icons/checked.js +1 -1
- package/dist/icons/chevron.d.ts +2 -0
- package/dist/icons/chevron.js +1 -0
- package/dist/icons/magnifying-glass.d.ts +1 -1
- package/dist/icons/magnifying-glass.js +1 -1
- package/dist/icons/pencil.js +1 -1
- package/dist/icons/x.d.ts +2 -0
- package/dist/icons/x.js +1 -0
- package/dist/inline-alert.d.ts +5 -5
- package/dist/inline-alert.js +1 -1
- package/dist/input.d.ts +3 -3
- package/dist/input.js +38 -61
- package/dist/label.js +1 -1
- package/dist/label.styles.js +5 -1
- package/dist/library/localize.d.ts +0 -2
- package/dist/library/mouse.d.ts +2 -0
- package/dist/library/mouse.js +1 -0
- package/dist/menu.d.ts +3 -1
- package/dist/menu.js +1 -1
- package/dist/menu.options.d.ts +1 -1
- package/dist/modal.d.ts +5 -8
- package/dist/modal.icon-button.d.ts +2 -7
- package/dist/modal.icon-button.styles.js +3 -3
- package/dist/modal.js +1 -1
- package/dist/modal.styles.js +50 -45
- package/dist/popover.d.ts +2 -0
- package/dist/popover.js +1 -1
- package/dist/radio-group.d.ts +3 -4
- package/dist/radio-group.js +5 -5
- package/dist/radio-group.radio.js +1 -1
- package/dist/radio-group.radio.styles.js +25 -37
- package/dist/radio-group.styles.js +1 -5
- package/dist/split-button.d.ts +2 -1
- package/dist/split-button.secondary-button.js +1 -1
- package/dist/split-button.secondary-button.styles.js +6 -9
- package/dist/tab.d.ts +1 -2
- package/dist/tab.group.js +1 -1
- package/dist/tab.group.styles.js +61 -55
- package/dist/tab.panel.d.ts +4 -4
- package/dist/tab.panel.js +1 -1
- package/dist/tab.styles.js +8 -8
- package/dist/tag.d.ts +1 -1
- package/dist/tag.js +1 -1
- package/dist/textarea.d.ts +3 -3
- package/dist/textarea.js +1 -1
- package/dist/toasts.toast.js +1 -1
- package/dist/toggle.d.ts +2 -2
- package/dist/toggle.js +1 -1
- package/dist/toggle.styles.js +0 -10
- package/dist/tooltip.d.ts +2 -0
- package/dist/tooltip.js +1 -1
- package/dist/translations/en.js +1 -1
- package/dist/translations/fr.js +1 -1
- package/dist/translations/ja.js +1 -1
- package/dist/tree.d.ts +1 -1
- package/dist/tree.item.js +1 -1
- package/dist/tree.item.menu.d.ts +2 -2
- package/dist/tree.item.menu.js +1 -1
- package/dist/tree.item.styles.js +38 -51
- package/dist/tree.js +1 -1
- package/package.json +7 -6
- package/dist/icons/informational.d.ts +0 -2
- package/dist/icons/informational.js +0 -1
package/dist/tree.item.styles.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
import{css}from"lit";import focusOutline from"./styles/focus-outline.js";export default[css`
|
2
|
-
${focusOutline(".label-container:focus-visible")}
|
2
|
+
${focusOutline(".label-container:not(.selected):focus-visible")}
|
3
3
|
`,css`
|
4
4
|
:host {
|
5
5
|
cursor: pointer;
|
@@ -19,27 +19,35 @@ import{css}from"lit";import focusOutline from"./styles/focus-outline.js";export
|
|
19
19
|
|
20
20
|
&.selected {
|
21
21
|
--color: var(--glide-core-text-selected);
|
22
|
+
|
23
|
+
::slotted([slot='prefix']),
|
24
|
+
::slotted([slot='menu']),
|
25
|
+
::slotted([slot='suffix']) {
|
26
|
+
--hovered-icon-button-color: var(--glide-core-icon-hover);
|
27
|
+
}
|
22
28
|
}
|
23
29
|
}
|
24
30
|
|
25
31
|
.expand-icon-container {
|
26
32
|
flex-shrink: 0;
|
27
33
|
min-inline-size: 1.5625rem;
|
28
|
-
}
|
29
34
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
justify-content: center;
|
35
|
-
rotate: 0deg;
|
36
|
-
|
37
|
-
@media (prefers-reduced-motion: no-preference) {
|
38
|
-
transition: 250ms rotate ease;
|
35
|
+
&.expanded {
|
36
|
+
svg {
|
37
|
+
rotate: 0deg;
|
38
|
+
}
|
39
39
|
}
|
40
40
|
|
41
|
-
|
42
|
-
|
41
|
+
svg {
|
42
|
+
align-items: center;
|
43
|
+
cursor: pointer;
|
44
|
+
display: flex;
|
45
|
+
justify-content: center;
|
46
|
+
rotate: -90deg;
|
47
|
+
|
48
|
+
@media (prefers-reduced-motion: no-preference) {
|
49
|
+
transition: 250ms rotate ease;
|
50
|
+
}
|
43
51
|
}
|
44
52
|
}
|
45
53
|
|
@@ -61,46 +69,29 @@ import{css}from"lit";import focusOutline from"./styles/focus-outline.js";export
|
|
61
69
|
transition: background-color 150ms ease-in-out;
|
62
70
|
}
|
63
71
|
|
64
|
-
&:hover {
|
65
|
-
background-color: var(--glide-core-surface-hover);
|
66
|
-
}
|
67
|
-
|
68
72
|
&.selected {
|
69
73
|
background-color: var(--glide-core-surface-selected);
|
74
|
+
}
|
75
|
+
|
76
|
+
&:hover {
|
77
|
+
background-color: var(--glide-core-surface-hover);
|
70
78
|
|
71
|
-
|
79
|
+
&.selected {
|
72
80
|
background-color: var(--glide-core-surface-selected-hover);
|
73
81
|
}
|
74
82
|
}
|
75
83
|
|
76
84
|
&:focus-visible {
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
.component.selected & {
|
81
|
-
/*
|
82
|
-
We need !important here as we must override the focusVisible mixin
|
83
|
-
that also includes !important.
|
84
|
-
This component is a bit of a unique case as we want to override the
|
85
|
-
default outline styles when a tree item is also focus-visible, but
|
86
|
-
also selected.
|
87
|
-
*/
|
88
|
-
outline: 1px solid var(--glide-core-icon-selected) !important;
|
89
|
-
outline-offset: -3px;
|
85
|
+
&:not(&.selected) {
|
86
|
+
/* The outline is inside the component since children have overflow hidden */
|
87
|
+
outline-offset: -2px;
|
90
88
|
}
|
91
|
-
}
|
92
89
|
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
&:hover {
|
97
|
-
background-color: var(--glide-core-surface-selected-hover);
|
90
|
+
&.selected {
|
91
|
+
outline: 1px solid var(--glide-core-icon-selected);
|
92
|
+
outline-offset: -3px;
|
98
93
|
}
|
99
94
|
}
|
100
|
-
|
101
|
-
&.prefix-icon .label {
|
102
|
-
padding-inline-start: var(--glide-core-spacing-xs);
|
103
|
-
}
|
104
95
|
}
|
105
96
|
|
106
97
|
::slotted([slot='menu']) {
|
@@ -113,12 +104,6 @@ import{css}from"lit";import focusOutline from"./styles/focus-outline.js";export
|
|
113
104
|
--icon-button-color: var(--color);
|
114
105
|
}
|
115
106
|
|
116
|
-
.component.selected ::slotted([slot='prefix']),
|
117
|
-
.component.selected ::slotted([slot='menu']),
|
118
|
-
.component.selected ::slotted([slot='suffix']) {
|
119
|
-
--hovered-icon-button-color: var(--glide-core-icon-hover);
|
120
|
-
}
|
121
|
-
|
122
107
|
.label-container:hover,
|
123
108
|
.label-container:focus,
|
124
109
|
.label-container:focus-within,
|
@@ -134,18 +119,20 @@ import{css}from"lit";import focusOutline from"./styles/focus-outline.js";export
|
|
134
119
|
overflow: hidden;
|
135
120
|
text-overflow: ellipsis;
|
136
121
|
white-space: nowrap;
|
122
|
+
|
123
|
+
&.prefix-icon {
|
124
|
+
padding-inline-start: var(--glide-core-spacing-xs);
|
125
|
+
}
|
137
126
|
}
|
138
127
|
|
139
|
-
.
|
128
|
+
.default-slot-container {
|
140
129
|
block-size: 0;
|
141
130
|
display: flex;
|
142
131
|
flex-direction: column;
|
143
132
|
overflow: hidden;
|
144
133
|
visibility: hidden;
|
145
|
-
}
|
146
134
|
|
147
|
-
|
148
|
-
.child-items {
|
135
|
+
&.expanded {
|
149
136
|
block-size: auto;
|
150
137
|
visibility: visible;
|
151
138
|
}
|
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))}#
|
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;
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@crowdstrike/glide-core",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.17.1",
|
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",
|
@@ -51,6 +51,7 @@
|
|
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",
|
54
55
|
"@storybook/addon-essentials": "^8.4.7",
|
55
56
|
"@storybook/addon-links": "^8.4.7",
|
56
57
|
"@storybook/blocks": "^8.4.7",
|
@@ -64,16 +65,16 @@
|
|
64
65
|
"@types/eslint": "^8.56.12",
|
65
66
|
"@types/mocha": "^10.0.10",
|
66
67
|
"@types/sinon": "^17.0.3",
|
67
|
-
"@typescript-eslint/rule-tester": "^8.
|
68
|
-
"@typescript-eslint/types": "^8.
|
69
|
-
"@typescript-eslint/utils": "^8.
|
68
|
+
"@typescript-eslint/rule-tester": "^8.19.0",
|
69
|
+
"@typescript-eslint/types": "^8.19.0",
|
70
|
+
"@typescript-eslint/utils": "^8.19.0",
|
70
71
|
"@web/dev-server-esbuild": "^1.0.3",
|
71
72
|
"@web/dev-server-rollup": "^0.6.4",
|
72
73
|
"@web/test-runner": "^0.19.0",
|
73
74
|
"@web/test-runner-commands": "^0.9.0",
|
74
75
|
"@web/test-runner-playwright": "^0.11.0",
|
75
76
|
"chalk": "^5.3.0",
|
76
|
-
"esbuild": "^0.24.
|
77
|
+
"esbuild": "^0.24.2",
|
77
78
|
"eslint": "^9.17.0",
|
78
79
|
"eslint-config-prettier": "^9.1.0",
|
79
80
|
"eslint-plugin-lit": "^1.15.0",
|
@@ -85,7 +86,7 @@
|
|
85
86
|
"globby": "^14.0.2",
|
86
87
|
"http-server": "^14.1.1",
|
87
88
|
"husky": "^8.0.3",
|
88
|
-
"is-ci": "^
|
89
|
+
"is-ci": "^4.1.0",
|
89
90
|
"lint-staged": "^15.2.11",
|
90
91
|
"lit": "^3.2.1",
|
91
92
|
"lit-analyzer": "^2.0.3",
|
@@ -1 +0,0 @@
|
|
1
|
-
import{svg}from"lit/static-html.js";export default svg`<svg aria-hidden="true" viewBox="0 0 16 16" fill="none" style="height: var(--size, 1rem); width: var(--size, 1rem);"><path fill-rule="evenodd" clip-rule="evenodd" d="M7.99996 0.666672C3.94987 0.666672 0.666626 3.94992 0.666626 8C0.666626 12.0501 3.94987 15.3333 7.99996 15.3333C12.05 15.3333 15.3333 12.0501 15.3333 8C15.3333 3.94992 12.05 0.666672 7.99996 0.666672ZM8.66663 5.33334C8.66663 4.96515 8.36815 4.66667 7.99996 4.66667C7.63177 4.66667 7.33329 4.96515 7.33329 5.33334V8C7.33329 8.36819 7.63177 8.66667 7.99996 8.66667C8.36815 8.66667 8.66663 8.36819 8.66663 8V5.33334ZM7.99996 10C7.63177 10 7.33329 10.2985 7.33329 10.6667C7.33329 11.0349 7.63177 11.3333 7.99996 11.3333H8.00663C8.37482 11.3333 8.67329 11.0349 8.67329 10.6667C8.67329 10.2985 8.37482 10 8.00663 10H7.99996Z" fill="currentColor"/></svg>`;
|