@aquera/nile-elements 1.8.7 → 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.
Files changed (30) hide show
  1. package/README.md +3 -0
  2. package/dist/index.js +33 -4
  3. package/dist/nile-side-bar/nile-side-bar.cjs.js +1 -1
  4. package/dist/nile-side-bar/nile-side-bar.cjs.js.map +1 -1
  5. package/dist/nile-side-bar/nile-side-bar.css.cjs.js +1 -1
  6. package/dist/nile-side-bar/nile-side-bar.css.cjs.js.map +1 -1
  7. package/dist/nile-side-bar/nile-side-bar.css.esm.js +31 -2
  8. package/dist/nile-side-bar/nile-side-bar.esm.js +2 -2
  9. package/dist/nile-side-bar-expand/nile-side-bar-expand.cjs.js +1 -1
  10. package/dist/nile-side-bar-expand/nile-side-bar-expand.cjs.js.map +1 -1
  11. package/dist/nile-side-bar-expand/nile-side-bar-expand.esm.js +2 -2
  12. package/dist/src/nile-side-bar/nile-side-bar.css.js +29 -0
  13. package/dist/src/nile-side-bar/nile-side-bar.css.js.map +1 -1
  14. package/dist/src/nile-side-bar/nile-side-bar.d.ts +16 -0
  15. package/dist/src/nile-side-bar/nile-side-bar.js +30 -0
  16. package/dist/src/nile-side-bar/nile-side-bar.js.map +1 -1
  17. package/dist/src/nile-side-bar/nile-side-bar.test.d.ts +2 -0
  18. package/dist/src/nile-side-bar/nile-side-bar.test.js +96 -0
  19. package/dist/src/nile-side-bar/nile-side-bar.test.js.map +1 -0
  20. package/dist/src/nile-side-bar-expand/nile-side-bar-expand.js +4 -6
  21. package/dist/src/nile-side-bar-expand/nile-side-bar-expand.js.map +1 -1
  22. package/dist/src/version.js +1 -1
  23. package/dist/src/version.js.map +1 -1
  24. package/dist/tsconfig.tsbuildinfo +1 -1
  25. package/package.json +1 -1
  26. package/src/nile-side-bar/nile-side-bar.css.ts +29 -0
  27. package/src/nile-side-bar/nile-side-bar.test.ts +109 -0
  28. package/src/nile-side-bar/nile-side-bar.ts +29 -0
  29. package/src/nile-side-bar-expand/nile-side-bar-expand.ts +7 -8
  30. package/vscode-html-custom-data.json +10 -1
@@ -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
- const isCollapsed = sidebar.hasAttribute('collapsed');
35
- if (isCollapsed) {
36
- sidebar.removeAttribute('collapsed');
37
- this.collapsed = false;
34
+ if (typeof sidebar.toggle === 'function') {
35
+ sidebar.toggle();
38
36
  }
39
37
  else {
40
- sidebar.setAttribute('collapsed', '');
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;IA8C3G,CAAC;IA5CQ,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,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QACtD,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YACrC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YACtC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,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;AAhDC;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,CAkD7B;;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');\n if (!sidebar) return;\n\n const isCollapsed = sidebar.hasAttribute('collapsed');\n if (isCollapsed) {\n sidebar.removeAttribute('collapsed');\n this.collapsed = false;\n } else {\n sidebar.setAttribute('collapsed', '');\n this.collapsed = true;\n }\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"]}
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"]}
@@ -1,5 +1,5 @@
1
1
  // Version utility - placeholders will be replaced during build
2
- export const NILE_ELEMENTS_VERSION = '1.8.7';
2
+ export const NILE_ELEMENTS_VERSION = '1.8.8';
3
3
  export const NILE_VERSION = '1.2.7';
4
4
  // Set global versions for runtime access
5
5
  if (typeof window !== 'undefined') {
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,MAAM,CAAC,MAAM,qBAAqB,GAAG,2BAA2B,CAAC;AACjE,MAAM,CAAC,MAAM,YAAY,GAAG,kBAAkB,CAAC;AAE/C,yCAAyC;AACzC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IACjC,MAAc,CAAC,mBAAmB,GAAG,qBAAqB,CAAC;IAC3D,MAAc,CAAC,WAAW,GAAG,YAAY,CAAC;IAC3C,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,CAAC;AACzE,CAAC","sourcesContent":["// Version utility - placeholders will be replaced during build\nexport const NILE_ELEMENTS_VERSION = '1.8.7';\nexport const NILE_VERSION = '1.2.7';\n\n// Set global versions for runtime access\nif (typeof window !== 'undefined') {\n (window as any).nileElementsVersion = NILE_ELEMENTS_VERSION;\n (window as any).nileVersion = NILE_VERSION;\n window.process = window.process || { env: { NODE_ENV: 'production' } };\n}\n"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,MAAM,CAAC,MAAM,qBAAqB,GAAG,2BAA2B,CAAC;AACjE,MAAM,CAAC,MAAM,YAAY,GAAG,kBAAkB,CAAC;AAE/C,yCAAyC;AACzC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IACjC,MAAc,CAAC,mBAAmB,GAAG,qBAAqB,CAAC;IAC3D,MAAc,CAAC,WAAW,GAAG,YAAY,CAAC;IAC3C,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,CAAC;AACzE,CAAC","sourcesContent":["// Version utility - placeholders will be replaced during build\nexport const NILE_ELEMENTS_VERSION = '1.8.8';\nexport const NILE_VERSION = '1.2.7';\n\n// Set global versions for runtime access\nif (typeof window !== 'undefined') {\n (window as any).nileElementsVersion = NILE_ELEMENTS_VERSION;\n (window as any).nileVersion = NILE_VERSION;\n window.process = window.process || { env: { NODE_ENV: 'production' } };\n}\n"]}