@aquera/nile-elements 2.0.17 → 2.0.18

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 (38) hide show
  1. package/README.md +3 -0
  2. package/dist/index.cjs.js +1 -1
  3. package/dist/index.esm.js +1 -1
  4. package/dist/index.js +606 -436
  5. package/dist/nile-minimap/index.cjs.js +2 -0
  6. package/dist/nile-minimap/index.cjs.js.map +1 -0
  7. package/dist/nile-minimap/index.esm.js +1 -0
  8. package/dist/nile-minimap/nile-minimap.cjs.js +2 -0
  9. package/dist/nile-minimap/nile-minimap.cjs.js.map +1 -0
  10. package/dist/nile-minimap/nile-minimap.css.cjs.js +2 -0
  11. package/dist/nile-minimap/nile-minimap.css.cjs.js.map +1 -0
  12. package/dist/nile-minimap/nile-minimap.css.esm.js +150 -0
  13. package/dist/nile-minimap/nile-minimap.esm.js +22 -0
  14. package/dist/src/index.d.ts +1 -0
  15. package/dist/src/index.js +1 -0
  16. package/dist/src/index.js.map +1 -1
  17. package/dist/src/nile-minimap/index.d.ts +1 -0
  18. package/dist/src/nile-minimap/index.js +2 -0
  19. package/dist/src/nile-minimap/index.js.map +1 -0
  20. package/dist/src/nile-minimap/nile-minimap.css.d.ts +12 -0
  21. package/dist/src/nile-minimap/nile-minimap.css.js +162 -0
  22. package/dist/src/nile-minimap/nile-minimap.css.js.map +1 -0
  23. package/dist/src/nile-minimap/nile-minimap.d.ts +131 -0
  24. package/dist/src/nile-minimap/nile-minimap.js +704 -0
  25. package/dist/src/nile-minimap/nile-minimap.js.map +1 -0
  26. package/dist/src/nile-minimap/nile-minimap.test.d.ts +1 -0
  27. package/dist/src/nile-minimap/nile-minimap.test.js +785 -0
  28. package/dist/src/nile-minimap/nile-minimap.test.js.map +1 -0
  29. package/dist/src/version.js +1 -1
  30. package/dist/src/version.js.map +1 -1
  31. package/dist/tsconfig.tsbuildinfo +1 -1
  32. package/package.json +2 -1
  33. package/src/index.ts +1 -0
  34. package/src/nile-minimap/index.ts +1 -0
  35. package/src/nile-minimap/nile-minimap.css.ts +164 -0
  36. package/src/nile-minimap/nile-minimap.test.ts +924 -0
  37. package/src/nile-minimap/nile-minimap.ts +796 -0
  38. package/vscode-html-custom-data.json +101 -24
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nile-minimap.test.js","sourceRoot":"","sources":["../../../src/nile-minimap/nile-minimap.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, fixture, html, oneEvent, aTimeout } from '@open-wc/testing';\nimport './nile-minimap';\nimport type { NileMinimap } from './nile-minimap';\n\n/**\n * Tests for nile-minimap. Written from kb/specs/nile-minimap.md ahead of (or alongside)\n * the implementation. Every acceptance criterion maps to one or more numbered `it` blocks.\n *\n * Harness notes:\n * - The component batches DOM updates with requestAnimationFrame plus Resize/Mutation\n * observers, so after any change we await `el.updateComplete` and a couple of frames.\n * - Scroll assertions use `smooth = false` so the container jumps synchronously (modulo rAF).\n * - Drag is simulated with PointerEvent dispatch on the viewport part. `setPointerCapture`\n * can throw for synthetic pointer ids in some browsers; the component is expected to guard\n * that call, so these tests dispatch real-ish PointerEvents and tolerate capture no-ops.\n */\n\n/** Wait for the component's batched rAF/observer work to settle. */\nasync function settle(el: NileMinimap): Promise<void> {\n await el.updateComplete;\n await new Promise<void>((r) => requestAnimationFrame(() => requestAnimationFrame(() => r())));\n}\n\n/** Build a horizontal scroller: 300px viewport, flex row of N fixed-width children. */\nfunction scrollerHtml(id: string, count = 6, childWidth = 200, childHeight = 60) {\n const kids = [];\n for (let i = 0; i < count; i++) {\n kids.push(html`<div\n style=\"flex:0 0 ${childWidth}px;width:${childWidth}px;height:${childHeight}px\"\n >\n ${i}\n </div>`);\n }\n return html`<div\n id=${id}\n style=\"width:300px;height:80px;overflow:auto;display:flex;flex-direction:row\"\n >\n ${kids}\n </div>`;\n}\n\n/** A host that mounts a scroller + minimap inside the same shadow root. */\nasync function shadowHostWithMinimap(forId: string): Promise<{\n host: HTMLElement;\n minimap: NileMinimap;\n scroller: HTMLElement;\n}> {\n const host = document.createElement('div');\n const root = host.attachShadow({ mode: 'open' });\n document.body.appendChild(host);\n\n const scroller = document.createElement('div');\n scroller.id = forId;\n scroller.style.cssText = 'width:300px;height:80px;overflow:auto;display:flex;flex-direction:row';\n for (let i = 0; i < 6; i++) {\n const kid = document.createElement('div');\n kid.style.cssText = 'flex:0 0 200px;width:200px;height:60px';\n kid.textContent = String(i);\n scroller.appendChild(kid);\n }\n root.appendChild(scroller);\n\n const minimap = document.createElement('nile-minimap') as NileMinimap;\n minimap.setAttribute('for', forId);\n root.appendChild(minimap);\n\n await (minimap as unknown as { updateComplete: Promise<unknown> }).updateComplete;\n await new Promise<void>((r) => requestAnimationFrame(() => requestAnimationFrame(() => r())));\n return { host, minimap, scroller };\n}\n\n/** Mount a scroller + minimap wired by `for` in the document, returning both. */\nasync function docFixture(\n forId: string,\n opts: { count?: number; childWidth?: number } = {}\n): Promise<{ wrapper: HTMLElement; minimap: NileMinimap; scroller: HTMLElement }> {\n const { count = 6, childWidth = 200 } = opts;\n const wrapper = await fixture<HTMLElement>(html`<div>\n ${scrollerHtml(forId, count, childWidth)}\n <nile-minimap for=${forId} .smooth=${false}></nile-minimap>\n </div>`);\n const minimap = wrapper.querySelector('nile-minimap') as NileMinimap;\n const scroller = wrapper.querySelector(`#${forId}`) as HTMLElement;\n await settle(minimap);\n return { wrapper, minimap, scroller };\n}\n\nconst part = (el: NileMinimap, name: string) =>\n el.shadowRoot!.querySelector<HTMLElement>(`[part~=\"${name}\"]`);\n\n/** The viewport outline is drawn 3px outside the thumb on every side (by design); return the thumb box. */\nconst OUTSET = 3;\nconst thumbRect = (el: NileMinimap) => {\n const r = part(el, 'viewport')!.getBoundingClientRect();\n return {\n left: r.left + OUTSET,\n right: r.right - OUTSET,\n width: r.width - OUTSET * 2,\n };\n};\n\ndescribe('NileMinimap', () => {\n // === RENDERING ===\n it('1. renders without errors', async () => {\n const { minimap } = await docFixture('s1');\n expect(minimap).to.exist;\n });\n\n it('2. has a shadow root', async () => {\n const { minimap } = await docFixture('s2');\n expect(minimap.shadowRoot).to.not.be.null;\n });\n\n it('3. has the correct tag name', async () => {\n const { minimap } = await docFixture('s3');\n expect(minimap.tagName.toLowerCase()).to.equal('nile-minimap');\n });\n\n // === DEFAULT PROPERTIES ===\n it('4. defaults orientation to auto', async () => {\n const el = await fixture<NileMinimap>(html`<nile-minimap></nile-minimap>`);\n expect(el.orientation).to.equal('auto');\n });\n\n it('5. defaults mode to segments', async () => {\n const el = await fixture<NileMinimap>(html`<nile-minimap></nile-minimap>`);\n expect(el.mode).to.equal('segments');\n });\n\n it('6. defaults for to empty string', async () => {\n const el = await fixture<NileMinimap>(html`<nile-minimap></nile-minimap>`);\n expect(el.for).to.equal('');\n });\n\n it('7. defaults itemSelector to :scope > *', async () => {\n const el = await fixture<NileMinimap>(html`<nile-minimap></nile-minimap>`);\n expect(el.itemSelector).to.equal(':scope > *');\n });\n\n it('8. defaults hideWhenFits to true', async () => {\n const el = await fixture<NileMinimap>(html`<nile-minimap></nile-minimap>`);\n expect(el.hideWhenFits).to.be.true;\n });\n\n it('9. defaults smooth to true', async () => {\n const el = await fixture<NileMinimap>(html`<nile-minimap></nile-minimap>`);\n expect(el.smooth).to.be.true;\n });\n\n it('10. defaults disabled to false', async () => {\n const el = await fixture<NileMinimap>(html`<nile-minimap></nile-minimap>`);\n expect(el.disabled).to.be.false;\n });\n\n it('11. defaults label to \"Scroll position\"', async () => {\n const el = await fixture<NileMinimap>(html`<nile-minimap></nile-minimap>`);\n expect(el.label).to.equal('Scroll position');\n });\n\n it('12. provides a default formatValueText function', async () => {\n const el = await fixture<NileMinimap>(html`<nile-minimap></nile-minimap>`);\n expect(el.formatValueText).to.be.a('function');\n expect(el.formatValueText(3, 4, 8)).to.be.a('string');\n });\n\n // === ATTRIBUTE REFLECTION ===\n it('13. reflects the for attribute', async () => {\n const { minimap } = await docFixture('s13');\n expect(minimap.getAttribute('for')).to.equal('s13');\n });\n\n it('14. reflects orientation attribute', async () => {\n const el = await fixture<NileMinimap>(html`<nile-minimap orientation=\"vertical\"></nile-minimap>`);\n expect(el.getAttribute('orientation')).to.equal('vertical');\n });\n\n it('15. reflects mode attribute', async () => {\n const el = await fixture<NileMinimap>(html`<nile-minimap mode=\"track\"></nile-minimap>`);\n expect(el.getAttribute('mode')).to.equal('track');\n });\n\n it('16. reflects hidewhenfits attribute (kebab/lowercase)', async () => {\n const el = await fixture<NileMinimap>(html`<nile-minimap for=\"x\"></nile-minimap>`);\n el.hideWhenFits = true;\n await el.updateComplete;\n expect(el.hasAttribute('hidewhenfits')).to.be.true;\n });\n\n it('17. reflects disabled attribute', async () => {\n const el = await fixture<NileMinimap>(html`<nile-minimap disabled></nile-minimap>`);\n expect(el.hasAttribute('disabled')).to.be.true;\n expect(el.disabled).to.be.true;\n });\n\n // === SHADOW PARTS ===\n it('18. exposes a base part', async () => {\n const { minimap } = await docFixture('p18');\n expect(part(minimap, 'base')).to.exist;\n });\n\n it('19. exposes a track part', async () => {\n const { minimap } = await docFixture('p19');\n expect(part(minimap, 'track')).to.exist;\n });\n\n it('20. exposes a viewport part', async () => {\n const { minimap } = await docFixture('p20');\n expect(part(minimap, 'viewport')).to.exist;\n });\n\n it('21. renders one segment part per item in segments mode', async () => {\n const { minimap } = await docFixture('p21', { count: 6 });\n const segments = minimap.shadowRoot!.querySelectorAll('[part~=\"segment\"]');\n expect(segments.length).to.equal(6);\n });\n\n // === ATTACHING VIA for ===\n it('22. attaches to a scroll container in the document by id', async () => {\n const { minimap } = await docFixture('a22');\n expect(part(minimap, 'viewport')).to.exist;\n });\n\n it('23. attaches to a scroll container inside the same shadow root', async () => {\n const { minimap, host } = await shadowHostWithMinimap('a23');\n expect(part(minimap, 'viewport')).to.exist;\n host.remove();\n });\n\n it('24. logs one warning and renders nothing for an unknown id', async () => {\n const warn = console.warn;\n let calls = 0;\n console.warn = () => {\n calls += 1;\n };\n try {\n const el = await fixture<NileMinimap>(html`<nile-minimap for=\"does-not-exist\"></nile-minimap>`);\n await settle(el);\n expect(calls).to.equal(1);\n // renders nothing: the host takes no space and isn't in the accessibility tree\n expect(getComputedStyle(el).display).to.equal('none');\n } finally {\n console.warn = warn;\n }\n });\n\n it('25. re-resolves when the for id changes to a new container', async () => {\n const wrapper = await fixture<HTMLElement>(html`<div>\n ${scrollerHtml('a25a', 6)}\n ${scrollerHtml('a25b', 4)}\n <nile-minimap for=\"a25a\" .smooth=${false}></nile-minimap>\n </div>`);\n const minimap = wrapper.querySelector('nile-minimap') as NileMinimap;\n await settle(minimap);\n expect(minimap.shadowRoot!.querySelectorAll('[part~=\"segment\"]').length).to.equal(6);\n\n minimap.for = 'a25b';\n await settle(minimap);\n expect(minimap.shadowRoot!.querySelectorAll('[part~=\"segment\"]').length).to.equal(4);\n });\n\n // === GEOMETRY (viewport length & offset) ===\n it('26. viewport length matches track*client/scroll within 1px', async () => {\n const { minimap, scroller } = await docFixture('g26');\n const track = part(minimap, 'track')!.getBoundingClientRect();\n const vp = thumbRect(minimap);\n const expected = Math.max(14, (track.width * scroller.clientWidth) / scroller.scrollWidth);\n expect(vp.width).to.be.closeTo(expected, 1.5);\n });\n\n it('27. viewport offset is ~0 at scroll start', async () => {\n const { minimap, scroller } = await docFixture('g27');\n scroller.scrollLeft = 0;\n await settle(minimap);\n const track = part(minimap, 'track')!.getBoundingClientRect();\n const vp = thumbRect(minimap);\n expect(vp.left - track.left).to.be.closeTo(0, 1.5);\n });\n\n it('28. viewport offset tracks a 50% scroll within 1px', async () => {\n const { minimap, scroller } = await docFixture('g28');\n const max = scroller.scrollWidth - scroller.clientWidth;\n scroller.scrollLeft = max / 2;\n await settle(minimap);\n const track = part(minimap, 'track')!.getBoundingClientRect();\n const vp = thumbRect(minimap);\n const expected =\n (scroller.scrollLeft / max) * (track.width - vp.width);\n expect(vp.left - track.left).to.be.closeTo(expected, 1.5);\n });\n\n it('29. viewport sits at the far end at 100% scroll within 1px', async () => {\n const { minimap, scroller } = await docFixture('g29');\n scroller.scrollLeft = scroller.scrollWidth - scroller.clientWidth;\n await settle(minimap);\n const track = part(minimap, 'track')!.getBoundingClientRect();\n const vp = thumbRect(minimap);\n expect(track.right - vp.right).to.be.closeTo(0, 1.5);\n });\n\n // === SEGMENTS ===\n it('30. segment count equals itemSelector matches', async () => {\n const { minimap } = await docFixture('seg30', { count: 5 });\n expect(minimap.shadowRoot!.querySelectorAll('[part~=\"segment\"]').length).to.equal(5);\n });\n\n it('31. segment positions increase with item order', async () => {\n const { minimap } = await docFixture('seg31', { count: 4 });\n const segs = Array.from(\n minimap.shadowRoot!.querySelectorAll<HTMLElement>('[part~=\"segment\"]')\n );\n const lefts = segs.map((s) => s.getBoundingClientRect().left);\n for (let i = 1; i < lefts.length; i++) {\n expect(lefts[i]).to.be.greaterThan(lefts[i - 1]);\n }\n });\n\n it('32. honours a custom itemSelector', async () => {\n const wrapper = await fixture<HTMLElement>(html`<div>\n <div\n id=\"seg32\"\n style=\"width:300px;height:80px;overflow:auto;display:flex;flex-direction:row\"\n >\n <span class=\"pick\" style=\"flex:0 0 200px;width:200px\">a</span>\n <em style=\"flex:0 0 200px;width:200px\">skip</em>\n <span class=\"pick\" style=\"flex:0 0 200px;width:200px\">b</span>\n </div>\n <nile-minimap for=\"seg32\" itemSelector=\".pick\" .smooth=${false}></nile-minimap>\n </div>`);\n const minimap = wrapper.querySelector('nile-minimap') as NileMinimap;\n await settle(minimap);\n expect(minimap.shadowRoot!.querySelectorAll('[part~=\"segment\"]').length).to.equal(2);\n });\n\n // === DYNAMIC ITEM CHANGES ===\n it('33. adding an item updates segment count within a frame', async () => {\n const { minimap, scroller } = await docFixture('dyn33', { count: 4 });\n expect(minimap.shadowRoot!.querySelectorAll('[part~=\"segment\"]').length).to.equal(4);\n const kid = document.createElement('div');\n kid.style.cssText = 'flex:0 0 200px;width:200px;height:60px';\n scroller.appendChild(kid);\n await settle(minimap);\n expect(minimap.shadowRoot!.querySelectorAll('[part~=\"segment\"]').length).to.equal(5);\n });\n\n it('34. removing an item updates segment count within a frame', async () => {\n const { minimap, scroller } = await docFixture('dyn34', { count: 4 });\n scroller.removeChild(scroller.lastElementChild!);\n await settle(minimap);\n expect(minimap.shadowRoot!.querySelectorAll('[part~=\"segment\"]').length).to.equal(3);\n });\n\n // === FALLBACK ===\n it('35. falls back to track mode with more than 48 items', async () => {\n const { minimap } = await docFixture('fb35', { count: 60, childWidth: 20 });\n // In track fallback there is a single rail, not 60 discrete segment parts.\n const segments = minimap.shadowRoot!.querySelectorAll('[part~=\"segment\"]');\n expect(segments.length).to.be.lessThan(60);\n });\n\n it('36. falls back to track when a segment would be under 3px', async () => {\n // Uniform items: segment ≈ track / count. A 100px minimap leaves an ~82px track,\n // so 40 items (under the 48-item cap) give ≈2px segments.\n const { minimap } = await docFixture('fb36', { count: 40, childWidth: 10 });\n minimap.style.setProperty('--nile-minimap-width', '100px');\n await settle(minimap);\n const segments = minimap.shadowRoot!.querySelectorAll('[part~=\"segment\"]');\n expect(segments.length).to.be.lessThan(40);\n });\n\n // === NAVIGATION: CLICK ===\n it('37. clicking the track fires cancelable nile-navigate with source \"click\"', async () => {\n const { minimap } = await docFixture('nav37');\n const track = part(minimap, 'track')!;\n const rect = track.getBoundingClientRect();\n setTimeout(() =>\n track.dispatchEvent(\n new PointerEvent('pointerdown', {\n bubbles: true,\n composed: true,\n clientX: rect.left + rect.width * 0.75,\n clientY: rect.top + rect.height / 2,\n })\n )\n );\n const ev = await oneEvent(minimap, 'nile-navigate');\n expect(ev.detail.source).to.equal('click');\n expect(ev.cancelable).to.be.true;\n });\n\n it('38. clicking the track scrolls the container toward the click point', async () => {\n const { minimap, scroller } = await docFixture('nav38');\n scroller.scrollLeft = 0;\n await settle(minimap);\n const track = part(minimap, 'track')!;\n const rect = track.getBoundingClientRect();\n track.dispatchEvent(\n new PointerEvent('pointerdown', {\n bubbles: true,\n composed: true,\n clientX: rect.left + rect.width * 0.9,\n clientY: rect.top + rect.height / 2,\n })\n );\n await settle(minimap);\n expect(scroller.scrollLeft).to.be.greaterThan(0);\n });\n\n it('39. preventDefault on nile-navigate stops the scroll', async () => {\n const { minimap, scroller } = await docFixture('nav39');\n scroller.scrollLeft = 0;\n await settle(minimap);\n minimap.addEventListener('nile-navigate', (e) => e.preventDefault(), { once: true });\n const track = part(minimap, 'track')!;\n const rect = track.getBoundingClientRect();\n track.dispatchEvent(\n new PointerEvent('pointerdown', {\n bubbles: true,\n composed: true,\n clientX: rect.left + rect.width * 0.9,\n clientY: rect.top + rect.height / 2,\n })\n );\n await settle(minimap);\n expect(scroller.scrollLeft).to.equal(0);\n });\n\n it('40. direct container scrolling never fires nile-navigate', async () => {\n const { minimap, scroller } = await docFixture('nav40');\n let fired = false;\n minimap.addEventListener('nile-navigate', () => (fired = true));\n scroller.scrollLeft = 100;\n scroller.dispatchEvent(new Event('scroll'));\n await settle(minimap);\n expect(fired).to.be.false;\n });\n\n // === NAVIGATION: DRAG ===\n it('41. dragging the viewport fires nile-navigate with source \"drag\" and scrolls', async () => {\n const { minimap, scroller } = await docFixture('nav41');\n scroller.scrollLeft = 0;\n await settle(minimap);\n const vp = part(minimap, 'viewport')!;\n const rect = vp.getBoundingClientRect();\n let dragSource: string | undefined;\n minimap.addEventListener('nile-navigate', (e) => {\n const ce = e as CustomEvent;\n if (ce.detail.source === 'drag') dragSource = ce.detail.source;\n });\n vp.dispatchEvent(\n new PointerEvent('pointerdown', {\n bubbles: true,\n composed: true,\n pointerId: 1,\n clientX: rect.left + rect.width / 2,\n clientY: rect.top + rect.height / 2,\n })\n );\n vp.dispatchEvent(\n new PointerEvent('pointermove', {\n bubbles: true,\n composed: true,\n pointerId: 1,\n clientX: rect.left + rect.width / 2 + 40,\n clientY: rect.top + rect.height / 2,\n })\n );\n vp.dispatchEvent(\n new PointerEvent('pointerup', {\n bubbles: true,\n composed: true,\n pointerId: 1,\n clientX: rect.left + rect.width / 2 + 40,\n clientY: rect.top + rect.height / 2,\n })\n );\n await settle(minimap);\n expect(dragSource).to.equal('drag');\n expect(scroller.scrollLeft).to.be.greaterThan(0);\n });\n\n // === NAVIGATION: WHEEL ===\n it('42. wheel over the minimap scrolls the container', async () => {\n const { minimap, scroller } = await docFixture('nav42');\n scroller.scrollLeft = 0;\n await settle(minimap);\n const base = part(minimap, 'base')!;\n base.dispatchEvent(\n new WheelEvent('wheel', { bubbles: true, composed: true, deltaY: 120, cancelable: true })\n );\n await settle(minimap);\n expect(scroller.scrollLeft).to.be.greaterThan(0);\n });\n\n it('43. wheel at the end is not preventDefault-ed (passes through)', async () => {\n const { minimap, scroller } = await docFixture('nav43');\n scroller.scrollLeft = scroller.scrollWidth - scroller.clientWidth;\n await settle(minimap);\n const base = part(minimap, 'base')!;\n const ev = new WheelEvent('wheel', {\n bubbles: true,\n composed: true,\n deltaY: 120,\n cancelable: true,\n });\n base.dispatchEvent(ev);\n await settle(minimap);\n expect(ev.defaultPrevented).to.be.false;\n });\n\n // === KEYBOARD ===\n it('44. ArrowRight steps to the next item start and scrolls forward', async () => {\n const { minimap, scroller } = await docFixture('kb44');\n scroller.scrollLeft = 0;\n await settle(minimap);\n const vp = part(minimap, 'viewport')!;\n vp.dispatchEvent(\n new KeyboardEvent('keydown', { bubbles: true, composed: true, key: 'ArrowRight' })\n );\n await settle(minimap);\n expect(scroller.scrollLeft).to.be.greaterThan(0);\n });\n\n it('45. ArrowLeft steps back toward the start', async () => {\n const { minimap, scroller } = await docFixture('kb45');\n scroller.scrollLeft = scroller.scrollWidth - scroller.clientWidth;\n await settle(minimap);\n const before = scroller.scrollLeft;\n const vp = part(minimap, 'viewport')!;\n vp.dispatchEvent(\n new KeyboardEvent('keydown', { bubbles: true, composed: true, key: 'ArrowLeft' })\n );\n await settle(minimap);\n expect(scroller.scrollLeft).to.be.lessThan(before);\n });\n\n it('46. keyboard navigation fires nile-navigate with source \"keyboard\"', async () => {\n const { minimap } = await docFixture('kb46');\n const vp = part(minimap, 'viewport')!;\n setTimeout(() =>\n vp.dispatchEvent(\n new KeyboardEvent('keydown', { bubbles: true, composed: true, key: 'ArrowRight' })\n )\n );\n const ev = await oneEvent(minimap, 'nile-navigate');\n expect(ev.detail.source).to.equal('keyboard');\n });\n\n it('47. End jumps to the end of the content', async () => {\n const { minimap, scroller } = await docFixture('kb47');\n scroller.scrollLeft = 0;\n await settle(minimap);\n const vp = part(minimap, 'viewport')!;\n vp.dispatchEvent(new KeyboardEvent('keydown', { bubbles: true, composed: true, key: 'End' }));\n await settle(minimap);\n expect(scroller.scrollLeft).to.be.closeTo(\n scroller.scrollWidth - scroller.clientWidth,\n 1.5\n );\n });\n\n it('48. Home jumps to the start of the content', async () => {\n const { minimap, scroller } = await docFixture('kb48');\n scroller.scrollLeft = scroller.scrollWidth - scroller.clientWidth;\n await settle(minimap);\n const vp = part(minimap, 'viewport')!;\n vp.dispatchEvent(new KeyboardEvent('keydown', { bubbles: true, composed: true, key: 'Home' }));\n await settle(minimap);\n expect(scroller.scrollLeft).to.be.closeTo(0, 1.5);\n });\n\n it('49. PageDown moves roughly one viewport forward', async () => {\n const { minimap, scroller } = await docFixture('kb49');\n scroller.scrollLeft = 0;\n await settle(minimap);\n const vp = part(minimap, 'viewport')!;\n vp.dispatchEvent(\n new KeyboardEvent('keydown', { bubbles: true, composed: true, key: 'PageDown' })\n );\n await settle(minimap);\n expect(scroller.scrollLeft).to.be.closeTo(scroller.clientWidth, scroller.clientWidth * 0.5 + 2);\n });\n\n it('50. PageUp moves back one viewport', async () => {\n const { minimap, scroller } = await docFixture('kb50');\n scroller.scrollLeft = scroller.scrollWidth - scroller.clientWidth;\n await settle(minimap);\n const before = scroller.scrollLeft;\n const vp = part(minimap, 'viewport')!;\n vp.dispatchEvent(\n new KeyboardEvent('keydown', { bubbles: true, composed: true, key: 'PageUp' })\n );\n await settle(minimap);\n expect(scroller.scrollLeft).to.be.lessThan(before);\n });\n\n // === OVERFLOW CHANGE ===\n it('51. fires nile-overflow-change on first measure with overflowing true', async () => {\n const wrapper = await fixture<HTMLElement>(html`<div>\n ${scrollerHtml('of51', 6)}\n </div>`);\n const minimap = document.createElement('nile-minimap') as NileMinimap;\n minimap.smooth = false;\n const got = oneEvent(minimap, 'nile-overflow-change');\n minimap.setAttribute('for', 'of51');\n wrapper.appendChild(minimap);\n const ev = await got;\n expect(ev.detail.overflowing).to.be.true;\n });\n\n it('52. hideWhenFits hides the host when nothing overflows', async () => {\n const wrapper = await fixture<HTMLElement>(html`<div>\n <div id=\"of52\" style=\"width:600px;height:80px;overflow:auto;display:flex\">\n <div style=\"flex:0 0 100px;width:100px;height:40px\">only</div>\n </div>\n <nile-minimap for=\"of52\" .smooth=${false}></nile-minimap>\n </div>`);\n const minimap = wrapper.querySelector('nile-minimap') as NileMinimap;\n await settle(minimap);\n // host collapsed / hidden when content fits\n const visible = minimap.offsetWidth > 0 && minimap.offsetHeight > 0;\n expect(visible).to.be.false;\n });\n\n it('53. does not hide when hideWhenFits is false and content fits', async () => {\n const wrapper = await fixture<HTMLElement>(html`<div>\n <div id=\"of53\" style=\"width:600px;height:80px;overflow:auto;display:flex\">\n <div style=\"flex:0 0 100px;width:100px;height:40px\">only</div>\n </div>\n <nile-minimap for=\"of53\" .hideWhenFits=${false} .smooth=${false}></nile-minimap>\n </div>`);\n const minimap = wrapper.querySelector('nile-minimap') as NileMinimap;\n await settle(minimap);\n expect(minimap.offsetWidth).to.be.greaterThan(0);\n });\n\n // === ORIENTATION ===\n it('54. auto picks the horizontal axis for a horizontally overflowing container', async () => {\n const { minimap } = await docFixture('or54');\n const vp = part(minimap, 'viewport')!;\n expect(vp.getAttribute('aria-orientation')).to.equal('horizontal');\n });\n\n it('55. auto picks the vertical axis for a vertically overflowing container', async () => {\n const wrapper = await fixture<HTMLElement>(html`<div>\n <div id=\"or55\" style=\"width:120px;height:120px;overflow:auto\">\n <div style=\"height:600px;width:60px\"></div>\n </div>\n <nile-minimap for=\"or55\" .smooth=${false}></nile-minimap>\n </div>`);\n const minimap = wrapper.querySelector('nile-minimap') as NileMinimap;\n await settle(minimap);\n const vp = part(minimap, 'viewport')!;\n expect(vp.getAttribute('aria-orientation')).to.equal('vertical');\n });\n\n // === MOTION / smooth ===\n it('56. smooth=false scrolls instantly (no animation frames needed)', async () => {\n const { minimap, scroller } = await docFixture('mo56');\n scroller.scrollLeft = 0;\n await settle(minimap);\n const vp = part(minimap, 'viewport')!;\n vp.dispatchEvent(new KeyboardEvent('keydown', { bubbles: true, composed: true, key: 'End' }));\n await minimap.updateComplete;\n await aTimeout(0);\n expect(scroller.scrollLeft).to.be.closeTo(\n scroller.scrollWidth - scroller.clientWidth,\n 2\n );\n });\n\n // === ARIA ===\n it('57. viewport has role=\"scrollbar\"', async () => {\n const { minimap } = await docFixture('ar57');\n expect(part(minimap, 'viewport')!.getAttribute('role')).to.equal('scrollbar');\n });\n\n it('58. viewport aria-controls equals the for id', async () => {\n const { minimap } = await docFixture('ar58');\n expect(part(minimap, 'viewport')!.getAttribute('aria-controls')).to.equal('ar58');\n });\n\n it('59. viewport exposes aria-valuemin/max of 0 and 100', async () => {\n const { minimap } = await docFixture('ar59');\n const vp = part(minimap, 'viewport')!;\n expect(vp.getAttribute('aria-valuemin')).to.equal('0');\n expect(vp.getAttribute('aria-valuemax')).to.equal('100');\n });\n\n it('60. aria-valuenow is 0 at the start of scroll', async () => {\n const { minimap, scroller } = await docFixture('ar60');\n scroller.scrollLeft = 0;\n await settle(minimap);\n expect(Number(part(minimap, 'viewport')!.getAttribute('aria-valuenow'))).to.equal(0);\n });\n\n it('61. aria-valuenow reaches ~100 at the end of scroll', async () => {\n const { minimap, scroller } = await docFixture('ar61');\n scroller.scrollLeft = scroller.scrollWidth - scroller.clientWidth;\n await settle(minimap);\n expect(Number(part(minimap, 'viewport')!.getAttribute('aria-valuenow'))).to.be.closeTo(100, 1);\n });\n\n it('62. aria-valuetext reads \"Items a–b of n\" in segments mode', async () => {\n const { minimap } = await docFixture('ar62', { count: 6 });\n const text = part(minimap, 'viewport')!.getAttribute('aria-valuetext') ?? '';\n expect(text).to.match(/Items\\s+\\d+.?\\d*.*of\\s+6/i);\n });\n\n it('63. aria-valuetext honours a custom formatValueText', async () => {\n const wrapper = await fixture<HTMLElement>(html`<div>\n ${scrollerHtml('ar63', 6)}\n <nile-minimap for=\"ar63\" .smooth=${false}></nile-minimap>\n </div>`);\n const minimap = wrapper.querySelector('nile-minimap') as NileMinimap;\n minimap.formatValueText = (a, b, n) => `custom ${a}/${b}/${n}`;\n await settle(minimap);\n expect(part(minimap, 'viewport')!.getAttribute('aria-valuetext')).to.contain('custom');\n });\n\n it('64. viewport uses the label for its aria-label', async () => {\n const wrapper = await fixture<HTMLElement>(html`<div>\n ${scrollerHtml('ar64', 6)}\n <nile-minimap for=\"ar64\" label=\"Board overview\" .smooth=${false}></nile-minimap>\n </div>`);\n const minimap = wrapper.querySelector('nile-minimap') as NileMinimap;\n await settle(minimap);\n expect(part(minimap, 'viewport')!.getAttribute('aria-label')).to.equal('Board overview');\n });\n\n it('65. viewport default aria-label is \"Scroll position\"', async () => {\n const { minimap } = await docFixture('ar65');\n expect(part(minimap, 'viewport')!.getAttribute('aria-label')).to.equal('Scroll position');\n });\n\n // === DISABLED ===\n it('66. disabled sets aria-disabled=\"true\" on the viewport', async () => {\n const wrapper = await fixture<HTMLElement>(html`<div>\n ${scrollerHtml('dis66', 6)}\n <nile-minimap for=\"dis66\" disabled .smooth=${false}></nile-minimap>\n </div>`);\n const minimap = wrapper.querySelector('nile-minimap') as NileMinimap;\n await settle(minimap);\n expect(part(minimap, 'viewport')!.getAttribute('aria-disabled')).to.equal('true');\n });\n\n it('67. disabled makes the viewport non-focusable (tabindex -1)', async () => {\n const wrapper = await fixture<HTMLElement>(html`<div>\n ${scrollerHtml('dis67', 6)}\n <nile-minimap for=\"dis67\" disabled .smooth=${false}></nile-minimap>\n </div>`);\n const minimap = wrapper.querySelector('nile-minimap') as NileMinimap;\n await settle(minimap);\n expect(part(minimap, 'viewport')!.getAttribute('tabindex')).to.equal('-1');\n });\n\n it('68. disabled still mirrors container scrolling', async () => {\n const wrapper = await fixture<HTMLElement>(html`<div>\n ${scrollerHtml('dis68', 6)}\n <nile-minimap for=\"dis68\" disabled .smooth=${false}></nile-minimap>\n </div>`);\n const minimap = wrapper.querySelector('nile-minimap') as NileMinimap;\n const scroller = wrapper.querySelector('#dis68') as HTMLElement;\n await settle(minimap);\n scroller.scrollLeft = scroller.scrollWidth - scroller.clientWidth;\n scroller.dispatchEvent(new Event('scroll'));\n await settle(minimap);\n expect(Number(part(minimap, 'viewport')!.getAttribute('aria-valuenow'))).to.be.greaterThan(0);\n });\n\n it('69. disabled viewport does not scroll the container on click', async () => {\n const wrapper = await fixture<HTMLElement>(html`<div>\n ${scrollerHtml('dis69', 6)}\n <nile-minimap for=\"dis69\" disabled .smooth=${false}></nile-minimap>\n </div>`);\n const minimap = wrapper.querySelector('nile-minimap') as NileMinimap;\n const scroller = wrapper.querySelector('#dis69') as HTMLElement;\n await settle(minimap);\n scroller.scrollLeft = 0;\n await settle(minimap);\n const track = part(minimap, 'track')!;\n const rect = track.getBoundingClientRect();\n track.dispatchEvent(\n new MouseEvent('click', {\n bubbles: true,\n composed: true,\n clientX: rect.left + rect.width * 0.9,\n clientY: rect.top + rect.height / 2,\n })\n );\n await settle(minimap);\n expect(scroller.scrollLeft).to.equal(0);\n });\n\n // === DISCONNECT ===\n it('70. releases listeners on disconnect (scroll after removal does not update)', async () => {\n const { minimap, scroller, wrapper } = await docFixture('dc70');\n await settle(minimap);\n const vpBefore = part(minimap, 'viewport')!.getAttribute('aria-valuenow');\n minimap.remove();\n expect(() => {\n scroller.scrollLeft = scroller.scrollWidth - scroller.clientWidth;\n scroller.dispatchEvent(new Event('scroll'));\n }).to.not.throw();\n await aTimeout(16);\n // detached minimap's reported value should not have moved\n expect(part(minimap, 'viewport')!.getAttribute('aria-valuenow')).to.equal(vpBefore);\n wrapper.remove();\n });\n\n it('71. disconnecting and reconnecting does not throw', async () => {\n const { minimap, wrapper } = await docFixture('dc71');\n const parent = minimap.parentElement!;\n minimap.remove();\n parent.appendChild(minimap);\n await settle(minimap);\n expect(minimap.shadowRoot).to.exist;\n wrapper.remove();\n });\n\n // === DYNAMIC PROPERTY UPDATES ===\n it('72. switching mode to track updates rendering', async () => {\n const { minimap } = await docFixture('dp72', { count: 6 });\n expect(minimap.shadowRoot!.querySelectorAll('[part~=\"segment\"]').length).to.equal(6);\n minimap.mode = 'track';\n await settle(minimap);\n expect(minimap.mode).to.equal('track');\n });\n\n it('73. is an instance of NileMinimap with the right constructor', async () => {\n const { minimap } = await docFixture('dp73');\n expect(minimap.constructor.name).to.contain('Minimap');\n });\n\n it('74. has static styles defined', async () => {\n const ctor = customElements.get('nile-minimap') as unknown as { styles?: unknown };\n expect(ctor.styles).to.exist;\n });\n\n // === AUTO-HIDE ===\n const isIdle = (el: NileMinimap) => el.hasAttribute('data-idle');\n const baseOpacity = (el: NileMinimap) => getComputedStyle(part(el, 'base')!).opacity;\n const wait = (ms: number) => new Promise<void>((r) => setTimeout(r, ms));\n\n async function autoHideFixture(id: string, hideDelay = 60) {\n const f = await docFixture(id);\n f.minimap.hideDelay = hideDelay;\n f.minimap.autoHide = true;\n await settle(f.minimap);\n return f;\n }\n\n it('75. autoHide defaults to false and hideDelay to 1200', async () => {\n const { minimap } = await docFixture('ah75');\n expect(minimap.autoHide).to.be.false;\n expect(minimap.hideDelay).to.equal(1200);\n expect(isIdle(minimap)).to.be.false;\n });\n\n it('76. autoHide reflects and starts hidden (opacity 0, no pointer events) but keeps its size', async () => {\n const { minimap } = await autoHideFixture('ah76');\n expect(minimap.hasAttribute('autohide')).to.be.true;\n expect(isIdle(minimap)).to.be.true;\n await wait(200); // let the fade transition finish\n expect(baseOpacity(minimap)).to.equal('0');\n expect(getComputedStyle(part(minimap, 'base')!).pointerEvents).to.equal('none');\n expect(minimap.getBoundingClientRect().width).to.be.greaterThan(0);\n });\n\n it('77. scrolling the container reveals it, then it hides after hideDelay', async () => {\n const { minimap, scroller } = await autoHideFixture('ah77');\n scroller.scrollLeft = 120;\n scroller.dispatchEvent(new Event('scroll'));\n expect(isIdle(minimap)).to.be.false;\n await wait(20);\n expect(isIdle(minimap)).to.be.false;\n await wait(120);\n expect(isIdle(minimap)).to.be.true;\n });\n\n it('78. each scroll restarts the countdown', async () => {\n const { minimap, scroller } = await autoHideFixture('ah78', 100);\n scroller.dispatchEvent(new Event('scroll'));\n await wait(70);\n scroller.dispatchEvent(new Event('scroll'));\n await wait(70);\n expect(isIdle(minimap)).to.be.false;\n await wait(80);\n expect(isIdle(minimap)).to.be.true;\n });\n\n it('79. stays visible while hovered and hides after the pointer leaves', async () => {\n const { minimap, scroller } = await autoHideFixture('ah79');\n scroller.dispatchEvent(new Event('scroll'));\n minimap.dispatchEvent(new PointerEvent('pointerenter'));\n await wait(150);\n expect(isIdle(minimap)).to.be.false;\n minimap.dispatchEvent(new PointerEvent('pointerleave'));\n await wait(150);\n expect(isIdle(minimap)).to.be.true;\n });\n\n it('80. keyboard focus reveals it and keeps it visible until blur', async () => {\n const { minimap } = await autoHideFixture('ah80');\n expect(isIdle(minimap)).to.be.true;\n part(minimap, 'viewport')!.focus();\n expect(isIdle(minimap)).to.be.false;\n await wait(150);\n expect(isIdle(minimap)).to.be.false;\n part(minimap, 'viewport')!.blur();\n await wait(150);\n expect(isIdle(minimap)).to.be.true;\n });\n\n it('81. turning autoHide off shows it immediately and stops hiding', async () => {\n const { minimap, scroller } = await autoHideFixture('ah81');\n expect(isIdle(minimap)).to.be.true;\n minimap.autoHide = false;\n await settle(minimap);\n expect(isIdle(minimap)).to.be.false;\n scroller.dispatchEvent(new Event('scroll'));\n await wait(150);\n expect(isIdle(minimap)).to.be.false;\n });\n});\n"]}
@@ -12,7 +12,7 @@
12
12
  // @aquera/nile/lib/version.js into dist/index.js, so on the CDN build it is
13
13
  // frozen at this package's build time. The stylesheet is the live source.
14
14
  import { NILE_VERSION as BUILT_IN_NILE_VERSION } from '@aquera/nile/lib/version.js';
15
- export const NILE_ELEMENTS_VERSION = '2.0.17';
15
+ export const NILE_ELEMENTS_VERSION = '2.0.18';
16
16
  function readStylesheetNileVersion() {
17
17
  if (typeof window === 'undefined' || typeof getComputedStyle !== 'function') {
18
18
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,EAAE;AACF,+EAA+E;AAC/E,gDAAgD;AAChD,EAAE;AACF,8EAA8E;AAC9E,6EAA6E;AAC7E,qEAAqE;AACrE,EAAE;AACF,0EAA0E;AAC1E,kEAAkE;AAClE,4EAA4E;AAC5E,0EAA0E;AAC1E,OAAO,EAAE,YAAY,IAAI,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpF,MAAM,CAAC,MAAM,qBAAqB,GAAG,2BAA2B,CAAC;AAEjE,SAAS,yBAAyB;IAChC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,gBAAgB,KAAK,UAAU,EAAE,CAAC;QAC5E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC;aACrD,gBAAgB,CAAC,gBAAgB,CAAC;aAClC,IAAI,EAAE;aACN,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAE/B,OAAO,KAAK,IAAI,IAAI,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,yBAAyB,EAAE,IAAI,qBAAqB,CAAC;AAC9D,CAAC;AAED,yCAAyC;AACzC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IACjC,MAAc,CAAC,mBAAmB,GAAG,qBAAqB,CAAC;IAE5D,yEAAyE;IACzE,yEAAyE;IACzE,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE;QAC3C,YAAY,EAAE,IAAI;QAClB,GAAG,EAAE,GAAG,EAAE,CAAC,QAAQ,IAAI,cAAc,EAAE;QACvC,GAAG,EAAE,CAAC,KAAa,EAAE,EAAE;YACrB,QAAQ,GAAG,KAAK,CAAC;QACnB,CAAC;KACF,CAAC,CAAC;IAEF,MAAc,CAAC,OAAO,GAAI,MAAc,CAAC,OAAO,IAAI;QACnD,GAAG,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE;KAChC,CAAC;AACJ,CAAC","sourcesContent":["// Version utility.\n//\n// NILE_ELEMENTS_VERSION is this package's own version and is still substituted\n// at build time by scripts/replace-version.cjs.\n//\n// The tokens version is read from the loaded Nile stylesheet's --nile-version\n// custom property (stamped by @aquera/nile's scripts/stamp-css-version.mjs),\n// falling back to the @aquera/nile installed alongside this package.\n//\n// Reading the stylesheet is what makes a tokens-only release visible. The\n// imported constant alone is not enough: rollup.config.js bundles\n// @aquera/nile/lib/version.js into dist/index.js, so on the CDN build it is\n// frozen at this package's build time. The stylesheet is the live source.\nimport { NILE_VERSION as BUILT_IN_NILE_VERSION } from '@aquera/nile/lib/version.js';\n\nexport const NILE_ELEMENTS_VERSION = '2.0.17';\n\nfunction readStylesheetNileVersion(): string | null {\n if (typeof window === 'undefined' || typeof getComputedStyle !== 'function') {\n return null;\n }\n\n try {\n const value = getComputedStyle(document.documentElement)\n .getPropertyValue('--nile-version')\n .trim()\n .replace(/^[\"']|[\"']$/g, '');\n\n return value || null;\n } catch {\n return null;\n }\n}\n\n/**\n * The version of @aquera/nile (tokens/stylesheets) whose CSS is loaded in the\n * page, falling back to the @aquera/nile bundled into this package when no\n * stamped stylesheet is present.\n *\n * This is the canonical runtime API. It resolves on every call rather than\n * caching, so it is correct even when the Nile stylesheet is added to the page\n * after this module evaluates - which is the common case, and why no\n * module-evaluation-time snapshot of it is exported.\n */\nexport function getNileVersion(): string {\n return readStylesheetNileVersion() ?? BUILT_IN_NILE_VERSION;\n}\n\n// Set global versions for runtime access\nif (typeof window !== 'undefined') {\n (window as any).nileElementsVersion = NILE_ELEMENTS_VERSION;\n\n // A getter rather than a value, so window.nileVersion reflects whichever\n // stylesheet is loaded at read time regardless of script/style ordering.\n let override: string | null = null;\n Object.defineProperty(window, 'nileVersion', {\n configurable: true,\n get: () => override ?? getNileVersion(),\n set: (value: string) => {\n override = value;\n },\n });\n\n (window as any).process = (window as any).process || {\n env: { NODE_ENV: 'production' },\n };\n}\n"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,EAAE;AACF,+EAA+E;AAC/E,gDAAgD;AAChD,EAAE;AACF,8EAA8E;AAC9E,6EAA6E;AAC7E,qEAAqE;AACrE,EAAE;AACF,0EAA0E;AAC1E,kEAAkE;AAClE,4EAA4E;AAC5E,0EAA0E;AAC1E,OAAO,EAAE,YAAY,IAAI,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpF,MAAM,CAAC,MAAM,qBAAqB,GAAG,2BAA2B,CAAC;AAEjE,SAAS,yBAAyB;IAChC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,gBAAgB,KAAK,UAAU,EAAE,CAAC;QAC5E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC;aACrD,gBAAgB,CAAC,gBAAgB,CAAC;aAClC,IAAI,EAAE;aACN,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAE/B,OAAO,KAAK,IAAI,IAAI,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,yBAAyB,EAAE,IAAI,qBAAqB,CAAC;AAC9D,CAAC;AAED,yCAAyC;AACzC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IACjC,MAAc,CAAC,mBAAmB,GAAG,qBAAqB,CAAC;IAE5D,yEAAyE;IACzE,yEAAyE;IACzE,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE;QAC3C,YAAY,EAAE,IAAI;QAClB,GAAG,EAAE,GAAG,EAAE,CAAC,QAAQ,IAAI,cAAc,EAAE;QACvC,GAAG,EAAE,CAAC,KAAa,EAAE,EAAE;YACrB,QAAQ,GAAG,KAAK,CAAC;QACnB,CAAC;KACF,CAAC,CAAC;IAEF,MAAc,CAAC,OAAO,GAAI,MAAc,CAAC,OAAO,IAAI;QACnD,GAAG,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE;KAChC,CAAC;AACJ,CAAC","sourcesContent":["// Version utility.\n//\n// NILE_ELEMENTS_VERSION is this package's own version and is still substituted\n// at build time by scripts/replace-version.cjs.\n//\n// The tokens version is read from the loaded Nile stylesheet's --nile-version\n// custom property (stamped by @aquera/nile's scripts/stamp-css-version.mjs),\n// falling back to the @aquera/nile installed alongside this package.\n//\n// Reading the stylesheet is what makes a tokens-only release visible. The\n// imported constant alone is not enough: rollup.config.js bundles\n// @aquera/nile/lib/version.js into dist/index.js, so on the CDN build it is\n// frozen at this package's build time. The stylesheet is the live source.\nimport { NILE_VERSION as BUILT_IN_NILE_VERSION } from '@aquera/nile/lib/version.js';\n\nexport const NILE_ELEMENTS_VERSION = '2.0.18';\n\nfunction readStylesheetNileVersion(): string | null {\n if (typeof window === 'undefined' || typeof getComputedStyle !== 'function') {\n return null;\n }\n\n try {\n const value = getComputedStyle(document.documentElement)\n .getPropertyValue('--nile-version')\n .trim()\n .replace(/^[\"']|[\"']$/g, '');\n\n return value || null;\n } catch {\n return null;\n }\n}\n\n/**\n * The version of @aquera/nile (tokens/stylesheets) whose CSS is loaded in the\n * page, falling back to the @aquera/nile bundled into this package when no\n * stamped stylesheet is present.\n *\n * This is the canonical runtime API. It resolves on every call rather than\n * caching, so it is correct even when the Nile stylesheet is added to the page\n * after this module evaluates - which is the common case, and why no\n * module-evaluation-time snapshot of it is exported.\n */\nexport function getNileVersion(): string {\n return readStylesheetNileVersion() ?? BUILT_IN_NILE_VERSION;\n}\n\n// Set global versions for runtime access\nif (typeof window !== 'undefined') {\n (window as any).nileElementsVersion = NILE_ELEMENTS_VERSION;\n\n // A getter rather than a value, so window.nileVersion reflects whichever\n // stylesheet is loaded at read time regardless of script/style ordering.\n let override: string | null = null;\n Object.defineProperty(window, 'nileVersion', {\n configurable: true,\n get: () => override ?? getNileVersion(),\n set: (value: string) => {\n override = value;\n },\n });\n\n (window as any).process = (window as any).process || {\n env: { NODE_ENV: 'production' },\n };\n}\n"]}