@aquera/nile-elements 1.8.6 → 1.8.8
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/README.md +7 -0
- package/dist/index.js +108 -34
- package/dist/nile-markdown-editor/nile-markdown-editor.cjs.js +1 -1
- package/dist/nile-markdown-editor/nile-markdown-editor.cjs.js.map +1 -1
- package/dist/nile-markdown-editor/nile-markdown-editor.esm.js +1 -1
- package/dist/nile-option/nile-option.cjs.js +1 -1
- package/dist/nile-option/nile-option.cjs.js.map +1 -1
- package/dist/nile-option/nile-option.css.cjs.js +1 -1
- package/dist/nile-option/nile-option.css.cjs.js.map +1 -1
- package/dist/nile-option/nile-option.css.esm.js +22 -1
- package/dist/nile-option/nile-option.esm.js +12 -2
- package/dist/nile-select/nile-select.cjs.js +1 -1
- package/dist/nile-select/nile-select.cjs.js.map +1 -1
- package/dist/nile-select/nile-select.css.cjs.js +1 -1
- package/dist/nile-select/nile-select.css.cjs.js.map +1 -1
- package/dist/nile-select/nile-select.css.esm.js +16 -7
- package/dist/nile-select/nile-select.esm.js +2 -2
- package/dist/nile-select/virtual-scroll-helper.cjs.js +1 -1
- package/dist/nile-select/virtual-scroll-helper.cjs.js.map +1 -1
- package/dist/nile-select/virtual-scroll-helper.esm.js +2 -0
- package/dist/nile-side-bar/nile-side-bar.cjs.js +1 -1
- package/dist/nile-side-bar/nile-side-bar.cjs.js.map +1 -1
- package/dist/nile-side-bar/nile-side-bar.css.cjs.js +1 -1
- package/dist/nile-side-bar/nile-side-bar.css.cjs.js.map +1 -1
- package/dist/nile-side-bar/nile-side-bar.css.esm.js +31 -2
- package/dist/nile-side-bar/nile-side-bar.esm.js +2 -2
- package/dist/nile-side-bar-expand/nile-side-bar-expand.cjs.js +1 -1
- package/dist/nile-side-bar-expand/nile-side-bar-expand.cjs.js.map +1 -1
- package/dist/nile-side-bar-expand/nile-side-bar-expand.esm.js +2 -2
- package/dist/nile-virtual-select/nile-virtual-select.cjs.js +3 -3
- package/dist/nile-virtual-select/nile-virtual-select.cjs.js.map +1 -1
- package/dist/nile-virtual-select/nile-virtual-select.css.cjs.js +1 -1
- package/dist/nile-virtual-select/nile-virtual-select.css.cjs.js.map +1 -1
- package/dist/nile-virtual-select/nile-virtual-select.css.esm.js +4 -3
- package/dist/nile-virtual-select/nile-virtual-select.esm.js +4 -4
- package/dist/nile-virtual-select/renderer.cjs.js +1 -1
- package/dist/nile-virtual-select/renderer.cjs.js.map +1 -1
- package/dist/nile-virtual-select/renderer.esm.js +14 -12
- package/dist/src/nile-markdown-editor/nile-markdown-editor.js +1 -1
- package/dist/src/nile-markdown-editor/nile-markdown-editor.js.map +1 -1
- package/dist/src/nile-option/nile-option.css.js +22 -1
- package/dist/src/nile-option/nile-option.css.js.map +1 -1
- package/dist/src/nile-option/nile-option.d.ts +3 -0
- package/dist/src/nile-option/nile-option.js +21 -0
- package/dist/src/nile-option/nile-option.js.map +1 -1
- package/dist/src/nile-select/nile-select.css.js +16 -7
- package/dist/src/nile-select/nile-select.css.js.map +1 -1
- package/dist/src/nile-select/nile-select.d.ts +7 -0
- package/dist/src/nile-select/nile-select.js +35 -0
- package/dist/src/nile-select/nile-select.js.map +1 -1
- package/dist/src/nile-select/virtual-scroll-helper.js +2 -0
- package/dist/src/nile-select/virtual-scroll-helper.js.map +1 -1
- package/dist/src/nile-side-bar/nile-side-bar.css.js +29 -0
- package/dist/src/nile-side-bar/nile-side-bar.css.js.map +1 -1
- package/dist/src/nile-side-bar/nile-side-bar.d.ts +16 -0
- package/dist/src/nile-side-bar/nile-side-bar.js +30 -0
- package/dist/src/nile-side-bar/nile-side-bar.js.map +1 -1
- package/dist/src/nile-side-bar/nile-side-bar.test.d.ts +2 -0
- package/dist/src/nile-side-bar/nile-side-bar.test.js +96 -0
- package/dist/src/nile-side-bar/nile-side-bar.test.js.map +1 -0
- package/dist/src/nile-side-bar-expand/nile-side-bar-expand.js +4 -6
- package/dist/src/nile-side-bar-expand/nile-side-bar-expand.js.map +1 -1
- package/dist/src/nile-virtual-select/nile-virtual-select.css.js +4 -3
- package/dist/src/nile-virtual-select/nile-virtual-select.css.js.map +1 -1
- package/dist/src/nile-virtual-select/nile-virtual-select.d.ts +4 -0
- package/dist/src/nile-virtual-select/nile-virtual-select.js +11 -1
- package/dist/src/nile-virtual-select/nile-virtual-select.js.map +1 -1
- package/dist/src/nile-virtual-select/renderer.d.ts +2 -2
- package/dist/src/nile-virtual-select/renderer.js +6 -4
- package/dist/src/nile-virtual-select/renderer.js.map +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/nile-markdown-editor/nile-markdown-editor.ts +1 -1
- package/src/nile-option/nile-option.css.ts +22 -1
- package/src/nile-option/nile-option.ts +18 -0
- package/src/nile-select/nile-select.css.ts +16 -7
- package/src/nile-select/nile-select.ts +32 -0
- package/src/nile-select/virtual-scroll-helper.ts +2 -0
- package/src/nile-side-bar/nile-side-bar.css.ts +29 -0
- package/src/nile-side-bar/nile-side-bar.test.ts +109 -0
- package/src/nile-side-bar/nile-side-bar.ts +29 -0
- package/src/nile-side-bar-expand/nile-side-bar-expand.ts +7 -8
- package/src/nile-virtual-select/nile-virtual-select.css.ts +4 -3
- package/src/nile-virtual-select/nile-virtual-select.ts +9 -1
- package/src/nile-virtual-select/renderer.ts +9 -3
- package/vscode-html-custom-data.json +43 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-side-bar.css.js","sourceRoot":"","sources":["../../../src/nile-side-bar/nile-side-bar.css.ts"],"names":[],"mappings":"AAAA;;;;;EAKE;AAEF,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"nile-side-bar.css.js","sourceRoot":"","sources":["../../../src/nile-side-bar/nile-side-bar.css.ts"],"names":[],"mappings":"AAAA;;;;;EAKE;AAEF,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8GxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\n* Copyright Aquera Inc 2023\n*\n* This source code is licensed under the BSD-3-Clause license found in the\n* LICENSE file in the root directory of this source tree.\n*/\n\nimport {css} from 'lit';\n\n/**\n * SideBar CSS\n */\nexport const styles = css`\n :host {\n \n top: 0;\n width: var(--nile-width-240px, var(--ng-spacing-296));\n display: flex;\n flex-direction: column;\n background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-primary));\n height: 100%;\n overflow: hidden; \n transition: width 0.25s ease, transform 0.25s ease;\n z-index: 1000;\n}\n\n \n:host([position='left']) {\n left: 0;\n border-right: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));\n}\n\n:host([position='right']) {\n right: 0;\n border-left: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));\n}\n\n \n:host([collapsed]) {\n width: var(--nile-width-70px, var(--ng-spacing-68));\n}\n\n \n:host([position='right'][collapsed]) {\n transform: translateX(calc(var(--sidebar-width) - var(--sidebar-collapsed-width)));\n}\n\n/*\n * Overlay mode: lift the sidebar out of normal flow so expanding it floats\n * on top of adjacent content instead of pushing siblings. Anchors to the\n * nearest positioned ancestor; set --sidebar-overlay-position: fixed to pin\n * it to the viewport instead.\n */\n:host([overlay]) {\n position: var(--sidebar-overlay-position, absolute);\n top: 0;\n bottom: 0;\n height: 100%;\n}\n\n:host([overlay][position='left']) {\n left: 0;\n}\n\n:host([overlay][position='right']) {\n right: 0;\n}\n\n/* Elevate while expanded so it reads as floating above the page. */\n:host([overlay]:not([collapsed])) {\n box-shadow: var(\n --sidebar-overlay-shadow,\n 0px 8px 24px 0px rgba(119, 125, 130, 0.25)\n );\n}\n\n:host {\n scrollbar-width: thin;\n scrollbar-color: #64748b transparent;\n}\n\n:host::-webkit-scrollbar {\n width: 6px;\n}\n:host::-webkit-scrollbar-track {\n background: transparent;\n}\n:host::-webkit-scrollbar-thumb {\n background-color: #64748b;\n border-radius: 10px;\n}\n\n \n.scroll-container {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n display: flex;\n flex-direction: column;\n}\n\n \n::slotted(nile-side-bar-header) {\n flex-shrink: 0;\n}\n\n::slotted(nile-side-bar-footer) {\n flex-shrink: 0;\n position: sticky;\n bottom: 0;\n margin-top: auto;\n}\n\n \n \n\n\n\n\n\n\n\n`;\n\nexport default [styles];"]}
|
|
@@ -14,15 +14,31 @@ import NileElement from '../internal/nile-element';
|
|
|
14
14
|
* @attr position - Position of the sidebar ("left" | "right"). Defaults to "left".
|
|
15
15
|
* @attr width - Expanded width of the sidebar (px).
|
|
16
16
|
* @attr collapsed-width - Collapsed width of the sidebar (px).
|
|
17
|
+
* @attr overlay - When set, the sidebar is taken out of normal flow and floats
|
|
18
|
+
* on top of adjacent content, so expanding it overlays the page instead of
|
|
19
|
+
* pushing siblings sideways.
|
|
20
|
+
*
|
|
21
|
+
* @event nile-toggle - Fired after the collapsed state changes (via the built-in
|
|
22
|
+
* expand button or the public expand()/collapse()/toggle() methods).
|
|
23
|
+
* `event.detail.collapsed` is the new state.
|
|
24
|
+
*
|
|
25
|
+
* @method expand() - Expand the sidebar.
|
|
26
|
+
* @method collapse() - Collapse the sidebar.
|
|
27
|
+
* @method toggle(force?) - Toggle, or force a specific collapsed state.
|
|
17
28
|
*/
|
|
18
29
|
export declare class NileSideBar extends NileElement {
|
|
19
30
|
position: 'left' | 'right';
|
|
20
31
|
collapsed: boolean;
|
|
32
|
+
overlay: boolean;
|
|
21
33
|
fullHeight: boolean;
|
|
22
34
|
width: number | null;
|
|
23
35
|
collapsedWidth: number | null;
|
|
24
36
|
static get styles(): CSSResultArray;
|
|
25
37
|
protected updated(changedProps: Map<string, unknown>): void;
|
|
38
|
+
expand(): void;
|
|
39
|
+
collapse(): void;
|
|
40
|
+
toggle(force?: boolean): void;
|
|
41
|
+
private setCollapsed;
|
|
26
42
|
render(): TemplateResult;
|
|
27
43
|
}
|
|
28
44
|
export default NileSideBar;
|
|
@@ -17,12 +17,24 @@ import NileElement from '../internal/nile-element';
|
|
|
17
17
|
* @attr position - Position of the sidebar ("left" | "right"). Defaults to "left".
|
|
18
18
|
* @attr width - Expanded width of the sidebar (px).
|
|
19
19
|
* @attr collapsed-width - Collapsed width of the sidebar (px).
|
|
20
|
+
* @attr overlay - When set, the sidebar is taken out of normal flow and floats
|
|
21
|
+
* on top of adjacent content, so expanding it overlays the page instead of
|
|
22
|
+
* pushing siblings sideways.
|
|
23
|
+
*
|
|
24
|
+
* @event nile-toggle - Fired after the collapsed state changes (via the built-in
|
|
25
|
+
* expand button or the public expand()/collapse()/toggle() methods).
|
|
26
|
+
* `event.detail.collapsed` is the new state.
|
|
27
|
+
*
|
|
28
|
+
* @method expand() - Expand the sidebar.
|
|
29
|
+
* @method collapse() - Collapse the sidebar.
|
|
30
|
+
* @method toggle(force?) - Toggle, or force a specific collapsed state.
|
|
20
31
|
*/
|
|
21
32
|
let NileSideBar = class NileSideBar extends NileElement {
|
|
22
33
|
constructor() {
|
|
23
34
|
super(...arguments);
|
|
24
35
|
this.position = 'left';
|
|
25
36
|
this.collapsed = false;
|
|
37
|
+
this.overlay = false;
|
|
26
38
|
this.fullHeight = false;
|
|
27
39
|
this.width = null;
|
|
28
40
|
this.collapsedWidth = null;
|
|
@@ -51,6 +63,21 @@ let NileSideBar = class NileSideBar extends NileElement {
|
|
|
51
63
|
this.style.setProperty('--sidebar-collapsed-width', `${this.collapsedWidth}px`);
|
|
52
64
|
}
|
|
53
65
|
}
|
|
66
|
+
expand() {
|
|
67
|
+
this.setCollapsed(false);
|
|
68
|
+
}
|
|
69
|
+
collapse() {
|
|
70
|
+
this.setCollapsed(true);
|
|
71
|
+
}
|
|
72
|
+
toggle(force) {
|
|
73
|
+
this.setCollapsed(force ?? !this.collapsed);
|
|
74
|
+
}
|
|
75
|
+
setCollapsed(value) {
|
|
76
|
+
if (this.collapsed === value)
|
|
77
|
+
return;
|
|
78
|
+
this.collapsed = value;
|
|
79
|
+
this.emit('nile-toggle', { collapsed: value });
|
|
80
|
+
}
|
|
54
81
|
render() {
|
|
55
82
|
return html `
|
|
56
83
|
<slot name="header" part="header"></slot>
|
|
@@ -67,6 +94,9 @@ __decorate([
|
|
|
67
94
|
__decorate([
|
|
68
95
|
property({ type: Boolean, reflect: true, attribute: true })
|
|
69
96
|
], NileSideBar.prototype, "collapsed", void 0);
|
|
97
|
+
__decorate([
|
|
98
|
+
property({ type: Boolean, reflect: true, attribute: true })
|
|
99
|
+
], NileSideBar.prototype, "overlay", void 0);
|
|
70
100
|
__decorate([
|
|
71
101
|
property({ type: Boolean, reflect: true, attribute: true })
|
|
72
102
|
], NileSideBar.prototype, "fullHeight", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-side-bar.js","sourceRoot":"","sources":["../../../src/nile-side-bar/nile-side-bar.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;AAEH,OAAO,EAAE,IAAI,EAAkC,MAAM,KAAK,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,WAAW,MAAM,0BAA0B,CAAC;AAEnD
|
|
1
|
+
{"version":3,"file":"nile-side-bar.js","sourceRoot":"","sources":["../../../src/nile-side-bar/nile-side-bar.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { html, CSSResultArray, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { styles } from './nile-side-bar.css';\nimport NileElement from '../internal/nile-element';\n\n/**\n * Nile side-bar component.\n *\n * @tag nile-side-bar\n *\n * @attr position - Position of the sidebar (\"left\" | \"right\"). Defaults to \"left\".\n * @attr width - Expanded width of the sidebar (px).\n * @attr collapsed-width - Collapsed width of the sidebar (px).\n * @attr overlay - When set, the sidebar is taken out of normal flow and floats\n * on top of adjacent content, so expanding it overlays the page instead of\n * pushing siblings sideways.\n *\n * @event nile-toggle - Fired after the collapsed state changes (via the built-in\n * expand button or the public expand()/collapse()/toggle() methods).\n * `event.detail.collapsed` is the new state.\n *\n * @method expand() - Expand the sidebar.\n * @method collapse() - Collapse the sidebar.\n * @method toggle(force?) - Toggle, or force a specific collapsed state.\n */\n@customElement('nile-side-bar')\nexport class NileSideBar extends NileElement {\n @property({ type: String, reflect: true, attribute: true })position: 'left' | 'right' = 'left';\n\n @property({ type: Boolean, reflect: true, attribute: true })collapsed: boolean = false;\n\n @property({ type: Boolean, reflect: true, attribute: true })overlay: boolean = false;\n\n @property({ type: Boolean, reflect: true, attribute: true })fullHeight: boolean = false;\n \n @property({ type: Number, attribute: true })width: number | null = null;\n\n \n @property({ type: Number, attribute: true })collapsedWidth: number | null = null;\n\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n protected updated(changedProps: Map<string, unknown>) {\n super.updated(changedProps);\n\n if (changedProps.has('collapsed')) {\n this.querySelectorAll<NileElement>(\n `\n nile-side-bar-logo,\n nile-side-bar-footer-item,\n nile-side-bar-group-item,\n nile-side-bar-group,\n nile-side-bar-header,\n nile-side-bar-group-item-text,\n nile-side-bar-group-item-icon,\n nile-side-bar-expand\n `\n ).forEach(el => el.toggleAttribute('collapsed', this.collapsed));\n }\n \n\n if (changedProps.has('width') && this.width !== null) {\n this.style.setProperty('--sidebar-width', `${this.width}px`);\n }\n if (changedProps.has('collapsedWidth') && this.collapsedWidth !== null) {\n this.style.setProperty('--sidebar-collapsed-width', `${this.collapsedWidth}px`);\n }\n }\n public expand(): void {\n this.setCollapsed(false);\n }\n public collapse(): void {\n this.setCollapsed(true);\n }\n\n public toggle(force?: boolean): void {\n this.setCollapsed(force ?? !this.collapsed);\n }\n\n private setCollapsed(value: boolean): void {\n if (this.collapsed === value) return;\n this.collapsed = value;\n this.emit('nile-toggle', { collapsed: value });\n }\n\n public render(): TemplateResult {\n return html`\n <slot name=\"header\" part=\"header\"></slot>\n <div class=\"scroll-container\" part=\"scroll-container\">\n <slot></slot>\n </div>\n <slot name=\"footer\" part=\"footer\"></slot>\n `;\n }\n \n}\n\nexport default NileSideBar;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-side-bar': NileSideBar;\n }\n}\n"]}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { expect, fixture, html, oneEvent } from '@open-wc/testing';
|
|
2
|
+
import './nile-side-bar';
|
|
3
|
+
import '../nile-side-bar-expand/nile-side-bar-expand';
|
|
4
|
+
describe('NileSideBar — collapse/expand API', () => {
|
|
5
|
+
it('1. defaults to expanded (not collapsed) and not overlay', async () => {
|
|
6
|
+
const el = await fixture(html `<nile-side-bar></nile-side-bar>`);
|
|
7
|
+
expect(el.collapsed).to.be.false;
|
|
8
|
+
expect(el.overlay).to.be.false;
|
|
9
|
+
expect(el.hasAttribute('overlay')).to.be.false;
|
|
10
|
+
});
|
|
11
|
+
it('2. collapse() sets collapsed state + reflects attribute', async () => {
|
|
12
|
+
const el = await fixture(html `<nile-side-bar></nile-side-bar>`);
|
|
13
|
+
el.collapse();
|
|
14
|
+
await el.updateComplete;
|
|
15
|
+
expect(el.collapsed).to.be.true;
|
|
16
|
+
expect(el.hasAttribute('collapsed')).to.be.true;
|
|
17
|
+
});
|
|
18
|
+
it('3. expand() clears collapsed state', async () => {
|
|
19
|
+
const el = await fixture(html `<nile-side-bar collapsed></nile-side-bar>`);
|
|
20
|
+
expect(el.collapsed).to.be.true;
|
|
21
|
+
el.expand();
|
|
22
|
+
await el.updateComplete;
|
|
23
|
+
expect(el.collapsed).to.be.false;
|
|
24
|
+
expect(el.hasAttribute('collapsed')).to.be.false;
|
|
25
|
+
});
|
|
26
|
+
it('4. toggle() flips state', async () => {
|
|
27
|
+
const el = await fixture(html `<nile-side-bar></nile-side-bar>`);
|
|
28
|
+
el.toggle();
|
|
29
|
+
await el.updateComplete;
|
|
30
|
+
expect(el.collapsed).to.be.true;
|
|
31
|
+
el.toggle();
|
|
32
|
+
await el.updateComplete;
|
|
33
|
+
expect(el.collapsed).to.be.false;
|
|
34
|
+
});
|
|
35
|
+
it('5. toggle(force) sets an explicit state', async () => {
|
|
36
|
+
const el = await fixture(html `<nile-side-bar></nile-side-bar>`);
|
|
37
|
+
el.toggle(false); // already expanded -> no-op
|
|
38
|
+
await el.updateComplete;
|
|
39
|
+
expect(el.collapsed).to.be.false;
|
|
40
|
+
el.toggle(true);
|
|
41
|
+
await el.updateComplete;
|
|
42
|
+
expect(el.collapsed).to.be.true;
|
|
43
|
+
});
|
|
44
|
+
it('6. emits nile-toggle with new collapsed state', async () => {
|
|
45
|
+
const el = await fixture(html `<nile-side-bar></nile-side-bar>`);
|
|
46
|
+
setTimeout(() => el.collapse());
|
|
47
|
+
const ev = await oneEvent(el, 'nile-toggle');
|
|
48
|
+
expect(ev.detail.collapsed).to.be.true;
|
|
49
|
+
});
|
|
50
|
+
it('7. does NOT emit nile-toggle when state is unchanged', async () => {
|
|
51
|
+
const el = await fixture(html `<nile-side-bar></nile-side-bar>`);
|
|
52
|
+
let fired = false;
|
|
53
|
+
el.addEventListener('nile-toggle', () => { fired = true; });
|
|
54
|
+
el.expand(); // already expanded
|
|
55
|
+
await el.updateComplete;
|
|
56
|
+
expect(fired).to.be.false;
|
|
57
|
+
});
|
|
58
|
+
it('8. built-in expand button toggles the sidebar (normal mode)', async () => {
|
|
59
|
+
const el = await fixture(html `
|
|
60
|
+
<nile-side-bar>
|
|
61
|
+
<nile-side-bar-expand slot="expand"></nile-side-bar-expand>
|
|
62
|
+
</nile-side-bar>
|
|
63
|
+
`);
|
|
64
|
+
await el.updateComplete;
|
|
65
|
+
const expandEl = el.querySelector('nile-side-bar-expand');
|
|
66
|
+
const btn = expandEl.shadowRoot.querySelector('.expand-btn');
|
|
67
|
+
let detail;
|
|
68
|
+
el.addEventListener('nile-toggle', (e) => { detail = e.detail; });
|
|
69
|
+
btn.click();
|
|
70
|
+
await el.updateComplete;
|
|
71
|
+
expect(el.collapsed).to.be.true;
|
|
72
|
+
expect(detail.collapsed).to.be.true;
|
|
73
|
+
expect(expandEl.collapsed).to.be.true; // arrow icon state stays in sync
|
|
74
|
+
btn.click();
|
|
75
|
+
await el.updateComplete;
|
|
76
|
+
expect(el.collapsed).to.be.false;
|
|
77
|
+
expect(expandEl.collapsed).to.be.false;
|
|
78
|
+
});
|
|
79
|
+
it('9. overlay attribute is opt-in and reflects', async () => {
|
|
80
|
+
const el = await fixture(html `<nile-side-bar overlay></nile-side-bar>`);
|
|
81
|
+
expect(el.overlay).to.be.true;
|
|
82
|
+
el.overlay = false;
|
|
83
|
+
await el.updateComplete;
|
|
84
|
+
expect(el.hasAttribute('overlay')).to.be.false;
|
|
85
|
+
});
|
|
86
|
+
it('10. methods work the same with overlay enabled', async () => {
|
|
87
|
+
const el = await fixture(html `<nile-side-bar overlay></nile-side-bar>`);
|
|
88
|
+
el.collapse();
|
|
89
|
+
await el.updateComplete;
|
|
90
|
+
expect(el.collapsed).to.be.true;
|
|
91
|
+
el.expand();
|
|
92
|
+
await el.updateComplete;
|
|
93
|
+
expect(el.collapsed).to.be.false;
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
//# sourceMappingURL=nile-side-bar.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nile-side-bar.test.js","sourceRoot":"","sources":["../../../src/nile-side-bar/nile-side-bar.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, fixture, html, oneEvent } from '@open-wc/testing';\nimport './nile-side-bar';\nimport '../nile-side-bar-expand/nile-side-bar-expand';\nimport type { NileSideBar } from './nile-side-bar';\n\ndescribe('NileSideBar — collapse/expand API', () => {\n it('1. defaults to expanded (not collapsed) and not overlay', async () => {\n const el = await fixture<NileSideBar>(html`<nile-side-bar></nile-side-bar>`);\n expect(el.collapsed).to.be.false;\n expect(el.overlay).to.be.false;\n expect(el.hasAttribute('overlay')).to.be.false;\n });\n\n it('2. collapse() sets collapsed state + reflects attribute', async () => {\n const el = await fixture<NileSideBar>(html`<nile-side-bar></nile-side-bar>`);\n el.collapse();\n await el.updateComplete;\n expect(el.collapsed).to.be.true;\n expect(el.hasAttribute('collapsed')).to.be.true;\n });\n\n it('3. expand() clears collapsed state', async () => {\n const el = await fixture<NileSideBar>(html`<nile-side-bar collapsed></nile-side-bar>`);\n expect(el.collapsed).to.be.true;\n el.expand();\n await el.updateComplete;\n expect(el.collapsed).to.be.false;\n expect(el.hasAttribute('collapsed')).to.be.false;\n });\n\n it('4. toggle() flips state', async () => {\n const el = await fixture<NileSideBar>(html`<nile-side-bar></nile-side-bar>`);\n el.toggle();\n await el.updateComplete;\n expect(el.collapsed).to.be.true;\n el.toggle();\n await el.updateComplete;\n expect(el.collapsed).to.be.false;\n });\n\n it('5. toggle(force) sets an explicit state', async () => {\n const el = await fixture<NileSideBar>(html`<nile-side-bar></nile-side-bar>`);\n el.toggle(false); // already expanded -> no-op\n await el.updateComplete;\n expect(el.collapsed).to.be.false;\n el.toggle(true);\n await el.updateComplete;\n expect(el.collapsed).to.be.true;\n });\n\n it('6. emits nile-toggle with new collapsed state', async () => {\n const el = await fixture<NileSideBar>(html`<nile-side-bar></nile-side-bar>`);\n setTimeout(() => el.collapse());\n const ev = await oneEvent(el, 'nile-toggle');\n expect(ev.detail.collapsed).to.be.true;\n });\n\n it('7. does NOT emit nile-toggle when state is unchanged', async () => {\n const el = await fixture<NileSideBar>(html`<nile-side-bar></nile-side-bar>`);\n let fired = false;\n el.addEventListener('nile-toggle', () => { fired = true; });\n el.expand(); // already expanded\n await el.updateComplete;\n expect(fired).to.be.false;\n });\n\n it('8. built-in expand button toggles the sidebar (normal mode)', async () => {\n const el = await fixture<NileSideBar>(html`\n <nile-side-bar>\n <nile-side-bar-expand slot=\"expand\"></nile-side-bar-expand>\n </nile-side-bar>\n `);\n await el.updateComplete;\n const expandEl = el.querySelector('nile-side-bar-expand') as HTMLElement & { collapsed: boolean };\n const btn = expandEl.shadowRoot!.querySelector('.expand-btn') as HTMLElement;\n\n let detail: any;\n el.addEventListener('nile-toggle', (e: Event) => { detail = (e as CustomEvent).detail; });\n\n btn.click();\n await el.updateComplete;\n expect(el.collapsed).to.be.true;\n expect(detail.collapsed).to.be.true;\n expect(expandEl.collapsed).to.be.true; // arrow icon state stays in sync\n\n btn.click();\n await el.updateComplete;\n expect(el.collapsed).to.be.false;\n expect(expandEl.collapsed).to.be.false;\n });\n\n it('9. overlay attribute is opt-in and reflects', async () => {\n const el = await fixture<NileSideBar>(html`<nile-side-bar overlay></nile-side-bar>`);\n expect(el.overlay).to.be.true;\n el.overlay = false;\n await el.updateComplete;\n expect(el.hasAttribute('overlay')).to.be.false;\n });\n\n it('10. methods work the same with overlay enabled', async () => {\n const el = await fixture<NileSideBar>(html`<nile-side-bar overlay></nile-side-bar>`);\n el.collapse();\n await el.updateComplete;\n expect(el.collapsed).to.be.true;\n el.expand();\n await el.updateComplete;\n expect(el.collapsed).to.be.false;\n });\n});\n"]}
|
|
@@ -31,15 +31,13 @@ let NileSideBarExpand = class NileSideBarExpand extends NileElement {
|
|
|
31
31
|
const sidebar = this.closest('nile-side-bar');
|
|
32
32
|
if (!sidebar)
|
|
33
33
|
return;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
sidebar.removeAttribute('collapsed');
|
|
37
|
-
this.collapsed = false;
|
|
34
|
+
if (typeof sidebar.toggle === 'function') {
|
|
35
|
+
sidebar.toggle();
|
|
38
36
|
}
|
|
39
37
|
else {
|
|
40
|
-
sidebar.
|
|
41
|
-
this.collapsed = true;
|
|
38
|
+
sidebar.toggleAttribute('collapsed', !sidebar.hasAttribute('collapsed'));
|
|
42
39
|
}
|
|
40
|
+
this.collapsed = sidebar.hasAttribute('collapsed');
|
|
43
41
|
}
|
|
44
42
|
render() {
|
|
45
43
|
return html `
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-side-bar-expand.js","sourceRoot":"","sources":["../../../src/nile-side-bar-expand/nile-side-bar-expand.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAkC,MAAM,KAAK,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,WAAW,MAAM,0BAA0B,CAAC;AAEnD;;;;;GAKG;AAEI,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,WAAW;IAA3C;;QAEL,cAAS,GAAY,KAAK,CAAC;QAC6B,sBAAiB,GAAW,gBAAgB,CAAC;QAC7C,wBAAmB,GAAW,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"nile-side-bar-expand.js","sourceRoot":"","sources":["../../../src/nile-side-bar-expand/nile-side-bar-expand.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAkC,MAAM,KAAK,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,WAAW,MAAM,0BAA0B,CAAC;AAEnD;;;;;GAKG;AAEI,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,WAAW;IAA3C;;QAEL,cAAS,GAAY,KAAK,CAAC;QAC6B,sBAAiB,GAAW,gBAAgB,CAAC;QAC7C,wBAAmB,GAAW,kBAAkB,CAAC;IA6C3G,CAAC;IA3CQ,MAAM,KAAK,MAAM;QACtB,OAAO,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;IAED,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,wCAAwC;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAC9C,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAEO,aAAa;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAEpC,CAAC;QACT,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACzC,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IACrD,CAAC;IAEM,MAAM;QACX,OAAO,IAAI,CAAA;4DAC6C,IAAI,CAAC,aAAa;UACpE,IAAI,CAAC,SAAS;YACd,CAAC,CAAC,IAAI,CAAA;mEACmD,IAAI,CAAC,iBAAiB;;;aAG5E;YACH,CAAC,CAAC,IAAI,CAAA;mEACmD,IAAI,CAAC,mBAAmB;;;aAG9E;;KAER,CAAC;IACJ,CAAC;CACF,CAAA;AA/CC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;oDAChB;AAC6B;IAAvD,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAC,IAAI,EAAE,SAAS,EAAC,IAAI,EAAC,CAAC;4DAA8C;AAC7C;IAAvD,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAC,IAAI,EAAE,SAAS,EAAC,IAAI,EAAC,CAAC;8DAAkD;AAJ9F,iBAAiB;IAD7B,aAAa,CAAC,sBAAsB,CAAC;GACzB,iBAAiB,CAiD7B;;AAED,eAAe,iBAAiB,CAAC","sourcesContent":["import { html, CSSResultArray, TemplateResult } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { styles } from './nile-side-bar-expand.css';\nimport NileElement from '../internal/nile-element';\n\n/**\n * Nile side-bar-expand component.\n *\n * @tag nile-side-bar-expand\n *\n */\n@customElement('nile-side-bar-expand')\nexport class NileSideBarExpand extends NileElement {\n @property({ type: Boolean, reflect: true })\n collapsed: boolean = false;\n @property({type: String, reflect:true, attribute:true}) expandTooltipText: string = 'Expand Sidebar';\n @property({type: String, reflect:true, attribute:true}) collapseTooltipText: string = 'Collapse Sidebar';\n\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n connectedCallback() {\n super.connectedCallback();\n // Sync with parent sidebar if it exists\n const sidebar = this.closest('nile-side-bar');\n if (sidebar) {\n this.collapsed = sidebar.hasAttribute('collapsed');\n }\n }\n\n private toggleSidebar() {\n const sidebar = this.closest('nile-side-bar') as\n | (HTMLElement & { toggle?: (force?: boolean) => void })\n | null;\n if (!sidebar) return;\n if (typeof sidebar.toggle === 'function') {\n sidebar.toggle();\n } else {\n sidebar.toggleAttribute('collapsed', !sidebar.hasAttribute('collapsed'));\n }\n this.collapsed = sidebar.hasAttribute('collapsed');\n }\n\n public render(): TemplateResult {\n return html`\n <button class=\"expand-btn\" part=\"expand-btn\" @click=${this.toggleSidebar}>\n ${this.collapsed\n ? html`\n <nile-lite-tooltip placement=\"right\" hoist content=${this.expandTooltipText}>\n <span part=\"icon\"><nile-icon color=\"var(--nile-colors-dark-500, var(--ng-colors-fg-quaternary-400))\" method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\" size=\"var(--nile-spacing-14px, var(--ng-spacing-2xl))\" name=\"var(--nile-icon-move-right, var(--ng-icon-chevron-right-double))\"></nile-icon></span>\n </nile-lite-tooltip>\n `\n : html`\n <nile-lite-tooltip placement=\"right\" hoist content=${this.collapseTooltipText}>\n <span part=\"icon\"><nile-icon color=\"var(--nile-colors-dark-500, var(--ng-colors-fg-quaternary-400))\" method=\"var(--nile-svg-method-fill, var(--ng-svg-method-stroke))\" size=\"var(--nile-spacing-14px, var(--ng-spacing-2xl))\" name=\"var(--nile-icon-move-left, var(--ng-icon-chevron-left-double))\"></nile-icon></span>\n </nile-lite-tooltip>\n `}\n </button>\n `;\n }\n}\n\nexport default NileSideBarExpand;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-side-bar-expand': NileSideBarExpand;\n }\n}\n"]}
|
|
@@ -360,7 +360,8 @@ export const styles = css `
|
|
|
360
360
|
display: inline-flex;
|
|
361
361
|
align-items: center;
|
|
362
362
|
justify-content: center;
|
|
363
|
-
font-
|
|
363
|
+
font-family: var(--nile-font-family-serif, var(--ng-font-family-body));
|
|
364
|
+
font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));
|
|
364
365
|
color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700));
|
|
365
366
|
border: none;
|
|
366
367
|
background: none;
|
|
@@ -452,8 +453,8 @@ export const styles = css `
|
|
|
452
453
|
/* Auto layout */
|
|
453
454
|
display: var(--nile-display-flex, var(--ng-display-flex));
|
|
454
455
|
flex-direction: row;
|
|
455
|
-
align-items:
|
|
456
|
-
padding: var(--nile-spacing-md, var(--ng-spacing-md)) var(--nile-spacing-lg, var(--ng-spacing-lg))
|
|
456
|
+
align-items: center;
|
|
457
|
+
padding: var(--nile-spacing-md, var(--ng-spacing-md)) var(--nile-spacing-lg, var(--ng-spacing-lg));
|
|
457
458
|
gap: var(--nile-spacing-lg, var(--ng-spacing-lg));
|
|
458
459
|
justify-content: space-between;
|
|
459
460
|
box-sizing: unset;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-virtual-select.css.js","sourceRoot":"","sources":["../../../src/nile-virtual-select/nile-virtual-select.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgiBxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2025\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {css} from 'lit';\n\n/**\n * Select_2 CSS\n */\nexport const styles = css`\n :host {\n box-sizing: border-box;\n --ng-nxt-gen-outline: var(--ng-border-width-1) solid var(--ng-colors-border-brand);\n --ng-nxt-gen-outline-error: var(--ng-border-width-1) solid var(--ng-colors-border-error);\n --ng-private-outline-transparent: var(--ng-border-width-1) solid transparent;\n --ng-box-shadow: 0px 12px 16px -4px var(--ng-colors-effects-shadow-lg-01, rgba(10, 13, 18, 0.08)), 0px 4px 6px -2px var(--ng-colors-effects-shadow-lg-02, rgba(10, 13, 18, 0.03)), 0px 2px 2px -1px var(--ng-colors-effects-shadow-lg-03, rgba(10, 13, 18, 0.04));\n -webkit-font-smoothing: var(--nile-webkit-font-smoothing, var(--ng-webkit-font-smoothing));\n -moz-osx-font-smoothing: var(--nile-moz-osx-font-smoothing, var(--ng-moz-osx-font-smoothing));\n text-rendering: var(--nile-text-rendering, var(--ng-text-rendering));\n }\n\n .virtualized{\n min-width: 110px;\n width: 100%;\n }\n\n .virtualized ::slotted(nile-option),\n .virtualized nile-option {\n width: 100%;\n display: block;\n }\n\n /* Ensure proper sizing for non-virtualized options (small datasets) */\n .virtualized:not(:has(lit-virtualizer)) {\n display: flex;\n flex-direction: column;\n }\n\n .virtualized:not(:has(lit-virtualizer)) nile-option {\n flex-shrink: 0;\n }\n\n :host *,\n :host *::before,\n :host *::after {\n box-sizing: inherit;\n }\n\n :host([disabled]) .form-control--has-label .form-control__label {\n user-select: none;\n -webkit-user-select: none;\n }\n\n [hidden] {\n display: none !important;\n }\n\n .form-control .form-control__label {\n display: none;\n }\n\n .form-control .form-control__help-text {\n display: none;\n }\n\n /* Label */\n .form-control--has-label .form-control__label {\n display: block;\n margin-bottom: var(--nile-spacing-sm, var(--ng-spacing-sm));\n color: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700));\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md));\n font-style: normal;\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-medium));\n line-height: var(--nile-spacing-2xl, var(--ng-line-height-text-sm));\n letter-spacing: 0.2px;\n }\n\n .form-control--has-label.form-control--medium .form-control__label {\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n }\n\n :host([required]) .form-control--has-label .form-control__label::after {\n content: '*';\n margin-inline-start: -2px;\n color: var(--nile-colors-red-700, var(--ng-colors-text-error-primary-600));\n }\n\n /* Help text */\n .form-control--has-help-text .form-control__help-text {\n display: block;\n color: var(--nile-colors-dark-500, var(--ng-colors-text-tertiary-600));\n margin-top: var(--nile-spacing-lg, var(--ng-spacing-lg));\n }\n\n .form-control--has-help-text.form-control--medium .form-control__help-text {\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n }\n\n .form-control--has-help-text.form-control--radio-group\n .form-control__help-text {\n margin-top: var(--nile-spacing-xs, var(--ng-spacing-sm));\n }\n\n :host {\n display: block;\n }\n\n /** The popup */\n .select {\n flex: 1 1 auto;\n display: inline-flex;\n width: 100%;\n position: relative;\n vertical-align: middle;\n }\n\n .select::part(popup) {\n z-index: 9999;\n }\n\n .select[data-current-placement^='top']::part(popup) {\n transform-origin: bottom;\n }\n\n .select[data-current-placement^='bottom']::part(popup) {\n transform-origin: top;\n }\n\n /* Combobox */\n .select__combobox {\n flex: 1;\n display: flex;\n width: 100%;\n min-width: 0;\n position: relative;\n align-items: center;\n justify-content: start;\n font-family: var(--nile-font-family-sans-serif, var(--ng-font-family-body));\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-medium));\n letter-spacing: normal;\n vertical-align: middle;\n overflow: hidden;\n cursor: pointer;\n transition: 150ms color, 150ms border, 150ms box-shadow,\n 150ms background-color;\n }\n\n .select__display-input {\n position: relative;\n width: 100%;\n font: inherit;\n border: none;\n background: none;\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n cursor: inherit;\n overflow: hidden;\n padding: var(--nile-spacing-none, var(--ng-spacing-none));\n margin: var(--nile-spacing-none, var(--ng-spacing-none));\n -webkit-appearance: none;\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-3,var(--ng-font-size-text-md));\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-regular));\n }\n\n .select__display-input::placeholder {\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n color: var(--nile-colors-text-placeholder, var(--ng-colors-text-placeholder));\n }\n\n .select:not(.select--disabled):hover .select__display-input {\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n }\n\n .select__display-input:focus {\n outline: none;\n }\n\n /* Visually hide the display input when multiple is enabled */\n .select--multiple:not(.select--placeholder-visible) .select__display-input {\n position: absolute;\n z-index: -1;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n opacity: 0;\n }\n\n .select__value-input {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding: var(--nile-spacing-none, var(--ng-spacing-none));\n margin: var(--nile-spacing-none, var(--ng-spacing-none));\n opacity: 0;\n z-index: -1;\n }\n\n .select__tags {\n display: flex;\n flex: 1;\n align-items: center;\n flex-wrap: no-wrap;\n margin-inline-start: var(--nile-spacing-7px, var(--ng-spacing-md));\n width: 100%;\n overflow: hidden;\n }\n\n .select__tags-count {\n color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700));\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n font-style: normal;\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-medium));\n line-height: var(--nile-line-height-xsmall, var(--ng-line-height-text-sm));\n letter-spacing: 0.2px;\n margin: var(--nile-spacing-sm, var(--ng-spacing-sm));\n }\n\n .select__tags-count-clearable {\n margin-right: var(--nile-spacing-5xl, var(--ng-spacing-5xl));\n }\n\n .select__tags::slotted(nile-tag) {\n cursor: pointer !important;\n }\n\n .select--disabled .select__tags,\n .select--disabled .select__tags::slotted(nile-tag) {\n cursor: not-allowed !important;\n }\n\n .select--disabled .select__display-input{\n color:var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n pointer-events:none;\n }\n\n /* Standard selects */\n .select--standard .select__combobox {\n background-color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border: solid 1px var(--nile-colors-neutral-500, var(--ng-colors-border-primary));\n outline: var(--nile-outline-none, var(--ng-private-outline-transparent));\n }\n\n .select--standard .select__combobox:hover {\n border: 1px solid var(--nile-colors-dark-900, var(--ng-colors-border-neutral));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n }\n\n .select--error:hover:not(.select--disabled) .select__combobox {\n border-color: var(--nile-colors-red-500, var(--ng-colors-border-error));\n outline: var(--nile-outline-none, var(--ng-colors-border-error));\n }\n\n .select--standard.select--disabled .select__combobox {\n background-color: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-primary));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n user-select:none;\n cursor: not-allowed;\n outline: none;\n }\n\n .select--standard:not(.select--disabled).select--open .select__combobox,\n .select--standard:not(.select--disabled).select--focused .select__combobox {\n background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary));\n }\n\n .select--warning .select__combobox {\n border-color: var(--nile-colors-yellow-500, var(--ng-colors-border-warning));\n }\n\n .select--error .select__combobox {\n border-color: var(--nile-colors-red-500, var(--ng-colors-border-error));\n outline: var(--nile-outline-none, var(--ng-private-outline-transparent));\n }\n\n .select--success {\n border-color: var(--nile-colors-green-500, var(--ng-componentcolors-utility-success-500));\n }\n\n /* Filled selects */\n .select--filled .select__combobox {\n border: none;\n background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary));\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n }\n\n .select--filled:hover:not(.select--disabled) .select__combobox {\n background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary));\n }\n\n .select--filled.select--disabled .select__combobox {\n background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-disabled-subtle));\n opacity: var(--nile-opacity-50, var(--ng-opacity-100));\n cursor: not-allowed;\n }\n\n .select--filled:not(.select--disabled).select--open .select__combobox,\n .select--filled:not(.select--disabled).select--focused .select__combobox {\n background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary));\n outline: 3px solid rgba(0, 89, 255, 0.4);\n }\n\n .select--medium .select__combobox {\n border-radius: var(--nile-radius-sm, var(--ng-radius-md));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n padding: var(--nile-spacing-lg, var(--ng-spacing-md)) var(--nile-spacing-lg, var(--ng-spacing-lg));\n height: var(--nile-height-40px, var(--ng-height-40px));\n box-sizing: border-box;\n }\n\n .select--medium .select__clear {\n margin-inline-start: var(--nile-spacing-lg, var(--ng-spacing-lg));\n }\n\n .select--medium .select__prefix::slotted(*) {\n margin-inline-end: var(--nile-spacing-md, var(--ng-spacing-md));\n }\n\n .select--medium .select__prefix.multiple::slotted(*) {\n margin-inline-start: var(--nile-spacing-lg, var(--ng-spacing-md));\n }\n\n .select--medium.select--multiple:not(.select--placeholder-visible)\n .select__combobox {\n padding-inline-start: var(--nile-spacing-none, var(--ng-spacing-none));\n }\n\n .select--medium .select__tags {\n gap: var(--nile-spacing-3px, var(--ng-spacing-sm));\n }\n\n /* Pills */\n .select--pill.select--medium .select__combobox {\n border-radius: var(--nile-radius-3xl, var(--ng-radius-3xl));\n }\n\n /* Prefix */\n .select__prefix {\n flex: 0;\n display: inline-flex;\n align-items: center;\n color: var(--nile-colors-dark-500, var(--ng-colors-text-tertiary-600));\n }\n\n .select__suffix {\n flex: 0;\n display: inline-flex;\n align-items: center;\n color: var(--nile-colors-dark-500, var(--ng-colors-text-tertiary-600));\n }\n\n /* Clear button */\n .select__clear {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: inherit;\n color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700));\n border: none;\n background: none;\n padding: var(--nile-spacing-none, var(--ng-spacing-none));\n transition: 150ms color;\n cursor: pointer;\n }\n\n .select__clear:hover {\n color: var(--nile-colors-dark-500, var(--ng-colors-text-tertiary-600));\n }\n\n .select__clear:focus {\n outline: none;\n }\n\n /* Expand icon */\n .select__expand-icon {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n transition: 250ms rotate ease;\n rotate: 0;\n margin-inline-start: var(--nile-spacing-md, var(--ng-spacing-md));\n }\n\n .select--open .select__expand-icon {\n rotate: -180deg;\n }\n\n /* Listbox */\n .select__listbox {\n display: block;\n position: relative;\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md));\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-regular));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border: solid 1px var(--nile-colors-neutral-500, var(--ng-colors-border-secondary-alt));\n border-radius: var(--nile-radius-sm, var(--ng-radius-md));\n padding-block: var(--nile-spacing-none, var(--ng-spacing-xs));\n padding-inline: var(--nile-spacing-none, var(--ng-spacing-xs));\n overscroll-behavior: none;\n /* Make sure it adheres to the popup's auto size */\n max-width: var(--auto-size-available-width);\n max-height: var(--auto-size-available-height);\n box-shadow: var(--nile-box-shadow-none, var(--ng-shadow-xs));\n }\n\n .select__options {\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n color: rgb(133, 129, 129);\n width: 100%;\n }\n\n .select__options__search-enabled {\n padding-top: var(--nile-spacing-10px, var(--ng-spacing-lg));\n width: 100%;\n }\n\n .select__listbox::slotted(nile-divider) {\n --spacing: var(--nile-spacing-xs, var(--ng-spacing-sm));\n }\n\n .select__listbox::slotted(small) {\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n font-weight: var(--nile-font-weight-semi-bold, var(--ng-font-weight-semibold));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-tertiary-600));\n padding-block: var(--nile-spacing-xs, var(--ng-spacing-sm));\n padding-inline: var(--nile-spacing-xl, var(--ng-spacing-xl));\n }\n\n .select__search {\n position: sticky;\n top: 0px;\n z-index: 1;\n width: calc(100% - 16px);\n padding: var(--nile-spacing-md, var(--ng-spacing-md));\n background-color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n margin-bottom: -8px;\n }\n\n .select__footer {\n position: sticky;\n bottom: 0px;\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary));\n border-top: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));\n display: flex;\n height: 15px;\n /* Auto layout */\n display: var(--nile-display-flex, var(--ng-display-flex));\n flex-direction: row;\n align-items: flex-start;\n padding: var(--nile-spacing-md, var(--ng-spacing-md)) var(--nile-spacing-lg, var(--ng-spacing-lg)) var(--nile-spacing-xl, var(--ng-spacing-xl));\n gap: var(--nile-spacing-lg, var(--ng-spacing-lg));\n justify-content: space-between;\n box-sizing: unset;\n }\n\n .tag__prefix[slot='prefix'] {\n height: 14px;\n display: inline-block;\n overflow: hidden;\n }\n\n .tag__prefix[slot='prefix'] img {\n max-height: 100%;\n }\n\n .select__loader {\n width: 100%;\n text-align: center;\n display: block;\n }\n\n .select__loader--icon {\n margin-top: var(--nile-spacing-xl, var(--ng-spacing-xl));\n animation: spin 0.6s linear infinite;\n }\n\n .select__no-results {\n padding: var(--nile-spacing-lg, var(--ng-spacing-lg));\n }\n\n @keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .select__invisible{\n opacity: 0;\n }\n\n .select__prefix--from-options {\n margin-inline-end: var(--nile-spacing-lg, var(--ng-spacing-md));\n }\n \n .select__hide-default{\n display: none;\n }\n\n .virtualized nile-option[selected] {\n background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary));\n }\n\n .virtualized nile-option[selected]::part(base) {\n color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700));\n }\n\n .virtualized.no-scroll {\n overflow: hidden !important;\n }\n\n .virtual-select-loader {\n position: absolute;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: 75%;\n }\n\n .select__footer.loading, .select__options.loading {\n opacity: 0.5;\n pointer-events: none;\n }\n\n .virtual-select-loader {\n position: absolute;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: 75%;\n }\n\n .select__footer.loading, .select__options.loading {\n opacity: 0.5;\n pointer-events: none;\n }\n .select.select--open .select__combobox {\n border-color: var(--ng-colors-border-brand);\n box-shadow: 0 0 0 1px var(--ng-colors-border-brand) inset ;\n }\n\n :host([enableDescription]) .option::part(base) {\n height: 41px;\n }\n`;\n\nexport default [styles];\n"]}
|
|
1
|
+
{"version":3,"file":"nile-virtual-select.css.js","sourceRoot":"","sources":["../../../src/nile-virtual-select/nile-virtual-select.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiiBxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2025\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {css} from 'lit';\n\n/**\n * Select_2 CSS\n */\nexport const styles = css`\n :host {\n box-sizing: border-box;\n --ng-nxt-gen-outline: var(--ng-border-width-1) solid var(--ng-colors-border-brand);\n --ng-nxt-gen-outline-error: var(--ng-border-width-1) solid var(--ng-colors-border-error);\n --ng-private-outline-transparent: var(--ng-border-width-1) solid transparent;\n --ng-box-shadow: 0px 12px 16px -4px var(--ng-colors-effects-shadow-lg-01, rgba(10, 13, 18, 0.08)), 0px 4px 6px -2px var(--ng-colors-effects-shadow-lg-02, rgba(10, 13, 18, 0.03)), 0px 2px 2px -1px var(--ng-colors-effects-shadow-lg-03, rgba(10, 13, 18, 0.04));\n -webkit-font-smoothing: var(--nile-webkit-font-smoothing, var(--ng-webkit-font-smoothing));\n -moz-osx-font-smoothing: var(--nile-moz-osx-font-smoothing, var(--ng-moz-osx-font-smoothing));\n text-rendering: var(--nile-text-rendering, var(--ng-text-rendering));\n }\n\n .virtualized{\n min-width: 110px;\n width: 100%;\n }\n\n .virtualized ::slotted(nile-option),\n .virtualized nile-option {\n width: 100%;\n display: block;\n }\n\n /* Ensure proper sizing for non-virtualized options (small datasets) */\n .virtualized:not(:has(lit-virtualizer)) {\n display: flex;\n flex-direction: column;\n }\n\n .virtualized:not(:has(lit-virtualizer)) nile-option {\n flex-shrink: 0;\n }\n\n :host *,\n :host *::before,\n :host *::after {\n box-sizing: inherit;\n }\n\n :host([disabled]) .form-control--has-label .form-control__label {\n user-select: none;\n -webkit-user-select: none;\n }\n\n [hidden] {\n display: none !important;\n }\n\n .form-control .form-control__label {\n display: none;\n }\n\n .form-control .form-control__help-text {\n display: none;\n }\n\n /* Label */\n .form-control--has-label .form-control__label {\n display: block;\n margin-bottom: var(--nile-spacing-sm, var(--ng-spacing-sm));\n color: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700));\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md));\n font-style: normal;\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-medium));\n line-height: var(--nile-spacing-2xl, var(--ng-line-height-text-sm));\n letter-spacing: 0.2px;\n }\n\n .form-control--has-label.form-control--medium .form-control__label {\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n }\n\n :host([required]) .form-control--has-label .form-control__label::after {\n content: '*';\n margin-inline-start: -2px;\n color: var(--nile-colors-red-700, var(--ng-colors-text-error-primary-600));\n }\n\n /* Help text */\n .form-control--has-help-text .form-control__help-text {\n display: block;\n color: var(--nile-colors-dark-500, var(--ng-colors-text-tertiary-600));\n margin-top: var(--nile-spacing-lg, var(--ng-spacing-lg));\n }\n\n .form-control--has-help-text.form-control--medium .form-control__help-text {\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n }\n\n .form-control--has-help-text.form-control--radio-group\n .form-control__help-text {\n margin-top: var(--nile-spacing-xs, var(--ng-spacing-sm));\n }\n\n :host {\n display: block;\n }\n\n /** The popup */\n .select {\n flex: 1 1 auto;\n display: inline-flex;\n width: 100%;\n position: relative;\n vertical-align: middle;\n }\n\n .select::part(popup) {\n z-index: 9999;\n }\n\n .select[data-current-placement^='top']::part(popup) {\n transform-origin: bottom;\n }\n\n .select[data-current-placement^='bottom']::part(popup) {\n transform-origin: top;\n }\n\n /* Combobox */\n .select__combobox {\n flex: 1;\n display: flex;\n width: 100%;\n min-width: 0;\n position: relative;\n align-items: center;\n justify-content: start;\n font-family: var(--nile-font-family-sans-serif, var(--ng-font-family-body));\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-medium));\n letter-spacing: normal;\n vertical-align: middle;\n overflow: hidden;\n cursor: pointer;\n transition: 150ms color, 150ms border, 150ms box-shadow,\n 150ms background-color;\n }\n\n .select__display-input {\n position: relative;\n width: 100%;\n font: inherit;\n border: none;\n background: none;\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n cursor: inherit;\n overflow: hidden;\n padding: var(--nile-spacing-none, var(--ng-spacing-none));\n margin: var(--nile-spacing-none, var(--ng-spacing-none));\n -webkit-appearance: none;\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-3,var(--ng-font-size-text-md));\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-regular));\n }\n\n .select__display-input::placeholder {\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n color: var(--nile-colors-text-placeholder, var(--ng-colors-text-placeholder));\n }\n\n .select:not(.select--disabled):hover .select__display-input {\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n }\n\n .select__display-input:focus {\n outline: none;\n }\n\n /* Visually hide the display input when multiple is enabled */\n .select--multiple:not(.select--placeholder-visible) .select__display-input {\n position: absolute;\n z-index: -1;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n opacity: 0;\n }\n\n .select__value-input {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding: var(--nile-spacing-none, var(--ng-spacing-none));\n margin: var(--nile-spacing-none, var(--ng-spacing-none));\n opacity: 0;\n z-index: -1;\n }\n\n .select__tags {\n display: flex;\n flex: 1;\n align-items: center;\n flex-wrap: no-wrap;\n margin-inline-start: var(--nile-spacing-7px, var(--ng-spacing-md));\n width: 100%;\n overflow: hidden;\n }\n\n .select__tags-count {\n color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700));\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n font-style: normal;\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-medium));\n line-height: var(--nile-line-height-xsmall, var(--ng-line-height-text-sm));\n letter-spacing: 0.2px;\n margin: var(--nile-spacing-sm, var(--ng-spacing-sm));\n }\n\n .select__tags-count-clearable {\n margin-right: var(--nile-spacing-5xl, var(--ng-spacing-5xl));\n }\n\n .select__tags::slotted(nile-tag) {\n cursor: pointer !important;\n }\n\n .select--disabled .select__tags,\n .select--disabled .select__tags::slotted(nile-tag) {\n cursor: not-allowed !important;\n }\n\n .select--disabled .select__display-input{\n color:var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n pointer-events:none;\n }\n\n /* Standard selects */\n .select--standard .select__combobox {\n background-color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border: solid 1px var(--nile-colors-neutral-500, var(--ng-colors-border-primary));\n outline: var(--nile-outline-none, var(--ng-private-outline-transparent));\n }\n\n .select--standard .select__combobox:hover {\n border: 1px solid var(--nile-colors-dark-900, var(--ng-colors-border-neutral));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n }\n\n .select--error:hover:not(.select--disabled) .select__combobox {\n border-color: var(--nile-colors-red-500, var(--ng-colors-border-error));\n outline: var(--nile-outline-none, var(--ng-colors-border-error));\n }\n\n .select--standard.select--disabled .select__combobox {\n background-color: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-primary));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n user-select:none;\n cursor: not-allowed;\n outline: none;\n }\n\n .select--standard:not(.select--disabled).select--open .select__combobox,\n .select--standard:not(.select--disabled).select--focused .select__combobox {\n background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary));\n }\n\n .select--warning .select__combobox {\n border-color: var(--nile-colors-yellow-500, var(--ng-colors-border-warning));\n }\n\n .select--error .select__combobox {\n border-color: var(--nile-colors-red-500, var(--ng-colors-border-error));\n outline: var(--nile-outline-none, var(--ng-private-outline-transparent));\n }\n\n .select--success {\n border-color: var(--nile-colors-green-500, var(--ng-componentcolors-utility-success-500));\n }\n\n /* Filled selects */\n .select--filled .select__combobox {\n border: none;\n background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary));\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n }\n\n .select--filled:hover:not(.select--disabled) .select__combobox {\n background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary));\n }\n\n .select--filled.select--disabled .select__combobox {\n background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-disabled-subtle));\n opacity: var(--nile-opacity-50, var(--ng-opacity-100));\n cursor: not-allowed;\n }\n\n .select--filled:not(.select--disabled).select--open .select__combobox,\n .select--filled:not(.select--disabled).select--focused .select__combobox {\n background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary));\n outline: 3px solid rgba(0, 89, 255, 0.4);\n }\n\n .select--medium .select__combobox {\n border-radius: var(--nile-radius-sm, var(--ng-radius-md));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n padding: var(--nile-spacing-lg, var(--ng-spacing-md)) var(--nile-spacing-lg, var(--ng-spacing-lg));\n height: var(--nile-height-40px, var(--ng-height-40px));\n box-sizing: border-box;\n }\n\n .select--medium .select__clear {\n margin-inline-start: var(--nile-spacing-lg, var(--ng-spacing-lg));\n }\n\n .select--medium .select__prefix::slotted(*) {\n margin-inline-end: var(--nile-spacing-md, var(--ng-spacing-md));\n }\n\n .select--medium .select__prefix.multiple::slotted(*) {\n margin-inline-start: var(--nile-spacing-lg, var(--ng-spacing-md));\n }\n\n .select--medium.select--multiple:not(.select--placeholder-visible)\n .select__combobox {\n padding-inline-start: var(--nile-spacing-none, var(--ng-spacing-none));\n }\n\n .select--medium .select__tags {\n gap: var(--nile-spacing-3px, var(--ng-spacing-sm));\n }\n\n /* Pills */\n .select--pill.select--medium .select__combobox {\n border-radius: var(--nile-radius-3xl, var(--ng-radius-3xl));\n }\n\n /* Prefix */\n .select__prefix {\n flex: 0;\n display: inline-flex;\n align-items: center;\n color: var(--nile-colors-dark-500, var(--ng-colors-text-tertiary-600));\n }\n\n .select__suffix {\n flex: 0;\n display: inline-flex;\n align-items: center;\n color: var(--nile-colors-dark-500, var(--ng-colors-text-tertiary-600));\n }\n\n /* Clear button */\n .select__clear {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700));\n border: none;\n background: none;\n padding: var(--nile-spacing-none, var(--ng-spacing-none));\n transition: 150ms color;\n cursor: pointer;\n }\n\n .select__clear:hover {\n color: var(--nile-colors-dark-500, var(--ng-colors-text-tertiary-600));\n }\n\n .select__clear:focus {\n outline: none;\n }\n\n /* Expand icon */\n .select__expand-icon {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n transition: 250ms rotate ease;\n rotate: 0;\n margin-inline-start: var(--nile-spacing-md, var(--ng-spacing-md));\n }\n\n .select--open .select__expand-icon {\n rotate: -180deg;\n }\n\n /* Listbox */\n .select__listbox {\n display: block;\n position: relative;\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md));\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-regular));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border: solid 1px var(--nile-colors-neutral-500, var(--ng-colors-border-secondary-alt));\n border-radius: var(--nile-radius-sm, var(--ng-radius-md));\n padding-block: var(--nile-spacing-none, var(--ng-spacing-xs));\n padding-inline: var(--nile-spacing-none, var(--ng-spacing-xs));\n overscroll-behavior: none;\n /* Make sure it adheres to the popup's auto size */\n max-width: var(--auto-size-available-width);\n max-height: var(--auto-size-available-height);\n box-shadow: var(--nile-box-shadow-none, var(--ng-shadow-xs));\n }\n\n .select__options {\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n color: rgb(133, 129, 129);\n width: 100%;\n }\n\n .select__options__search-enabled {\n padding-top: var(--nile-spacing-10px, var(--ng-spacing-lg));\n width: 100%;\n }\n\n .select__listbox::slotted(nile-divider) {\n --spacing: var(--nile-spacing-xs, var(--ng-spacing-sm));\n }\n\n .select__listbox::slotted(small) {\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n font-weight: var(--nile-font-weight-semi-bold, var(--ng-font-weight-semibold));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-tertiary-600));\n padding-block: var(--nile-spacing-xs, var(--ng-spacing-sm));\n padding-inline: var(--nile-spacing-xl, var(--ng-spacing-xl));\n }\n\n .select__search {\n position: sticky;\n top: 0px;\n z-index: 1;\n width: calc(100% - 16px);\n padding: var(--nile-spacing-md, var(--ng-spacing-md));\n background-color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n margin-bottom: -8px;\n }\n\n .select__footer {\n position: sticky;\n bottom: 0px;\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary));\n border-top: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));\n display: flex;\n height: 15px;\n /* Auto layout */\n display: var(--nile-display-flex, var(--ng-display-flex));\n flex-direction: row;\n align-items: center;\n padding: var(--nile-spacing-md, var(--ng-spacing-md)) var(--nile-spacing-lg, var(--ng-spacing-lg));\n gap: var(--nile-spacing-lg, var(--ng-spacing-lg));\n justify-content: space-between;\n box-sizing: unset;\n }\n\n .tag__prefix[slot='prefix'] {\n height: 14px;\n display: inline-block;\n overflow: hidden;\n }\n\n .tag__prefix[slot='prefix'] img {\n max-height: 100%;\n }\n\n .select__loader {\n width: 100%;\n text-align: center;\n display: block;\n }\n\n .select__loader--icon {\n margin-top: var(--nile-spacing-xl, var(--ng-spacing-xl));\n animation: spin 0.6s linear infinite;\n }\n\n .select__no-results {\n padding: var(--nile-spacing-lg, var(--ng-spacing-lg));\n }\n\n @keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .select__invisible{\n opacity: 0;\n }\n\n .select__prefix--from-options {\n margin-inline-end: var(--nile-spacing-lg, var(--ng-spacing-md));\n }\n \n .select__hide-default{\n display: none;\n }\n\n .virtualized nile-option[selected] {\n background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary));\n }\n\n .virtualized nile-option[selected]::part(base) {\n color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700));\n }\n\n .virtualized.no-scroll {\n overflow: hidden !important;\n }\n\n .virtual-select-loader {\n position: absolute;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: 75%;\n }\n\n .select__footer.loading, .select__options.loading {\n opacity: 0.5;\n pointer-events: none;\n }\n\n .virtual-select-loader {\n position: absolute;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: 75%;\n }\n\n .select__footer.loading, .select__options.loading {\n opacity: 0.5;\n pointer-events: none;\n }\n .select.select--open .select__combobox {\n border-color: var(--ng-colors-border-brand);\n box-shadow: 0 0 0 1px var(--ng-colors-border-brand) inset ;\n }\n\n :host([enableDescription]) .option::part(base) {\n height: 41px;\n }\n`;\n\nexport default [styles];\n"]}
|
|
@@ -182,6 +182,10 @@ export declare class NileVirtualSelect extends NileElement implements NileFormCo
|
|
|
182
182
|
descriptionSearchEnabled: boolean;
|
|
183
183
|
allowHtmlLabel: boolean;
|
|
184
184
|
enableDescription: boolean;
|
|
185
|
+
/** Legacy: hide the option checkbox (the "Show Selected" footer is kept). */
|
|
186
|
+
legacy: boolean;
|
|
187
|
+
/** Variant: show a tick on the right of the selected option (single-select). */
|
|
188
|
+
tickOnSelect: boolean;
|
|
185
189
|
showListbox: boolean;
|
|
186
190
|
private wasShowSelectedCheckedOnClose;
|
|
187
191
|
/** Gets the validity state object */
|
|
@@ -192,6 +192,10 @@ let NileVirtualSelect = class NileVirtualSelect extends NileElement {
|
|
|
192
192
|
this.descriptionSearchEnabled = false;
|
|
193
193
|
this.allowHtmlLabel = true;
|
|
194
194
|
this.enableDescription = false;
|
|
195
|
+
/** Legacy: hide the option checkbox (the "Show Selected" footer is kept). */
|
|
196
|
+
this.legacy = false;
|
|
197
|
+
/** Variant: show a tick on the right of the selected option (single-select). */
|
|
198
|
+
this.tickOnSelect = false;
|
|
195
199
|
this.showListbox = false;
|
|
196
200
|
this.wasShowSelectedCheckedOnClose = false;
|
|
197
201
|
this.handleDocumentMouseDown = (event) => {
|
|
@@ -1257,7 +1261,7 @@ let NileVirtualSelect = class NileVirtualSelect extends NileElement {
|
|
|
1257
1261
|
`;
|
|
1258
1262
|
}
|
|
1259
1263
|
getVirtualizedContent() {
|
|
1260
|
-
return VirtualSelectRenderer.getVirtualizedContent(this.data, this.searchEnabled, this.getDisplayText.bind(this), this.value, this.multiple, this.renderItemConfig?.getDisplayText, this.renderItemConfig?.getValue, this.renderItemConfig?.getDescription, this.renderItemConfig?.getPrefix, this.renderItemConfig?.getSuffix, this.showNoResults, this.noResultsMessage, this.optionsLoading || this.loading, this.handleScroll.bind(this), this.allowHtmlLabel, this.enableDescription);
|
|
1264
|
+
return VirtualSelectRenderer.getVirtualizedContent(this.data, this.searchEnabled, this.getDisplayText.bind(this), this.value, this.multiple, this.renderItemConfig?.getDisplayText, this.renderItemConfig?.getValue, this.renderItemConfig?.getDescription, this.renderItemConfig?.getPrefix, this.renderItemConfig?.getSuffix, this.showNoResults, this.noResultsMessage, this.optionsLoading || this.loading, this.handleScroll.bind(this), this.allowHtmlLabel, this.enableDescription, this.tickOnSelect, this.legacy);
|
|
1261
1265
|
}
|
|
1262
1266
|
nileInput(value) {
|
|
1263
1267
|
this.emit('nile-input', value);
|
|
@@ -1492,6 +1496,12 @@ __decorate([
|
|
|
1492
1496
|
__decorate([
|
|
1493
1497
|
property({ type: Boolean, reflect: true, attribute: true })
|
|
1494
1498
|
], NileVirtualSelect.prototype, "enableDescription", void 0);
|
|
1499
|
+
__decorate([
|
|
1500
|
+
property({ type: Boolean, reflect: true })
|
|
1501
|
+
], NileVirtualSelect.prototype, "legacy", void 0);
|
|
1502
|
+
__decorate([
|
|
1503
|
+
property({ type: Boolean, reflect: true, attribute: true })
|
|
1504
|
+
], NileVirtualSelect.prototype, "tickOnSelect", void 0);
|
|
1495
1505
|
__decorate([
|
|
1496
1506
|
state()
|
|
1497
1507
|
], NileVirtualSelect.prototype, "showListbox", void 0);
|