@aquera/nile-elements 1.9.4 → 1.9.6
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 +13 -0
- package/dist/index-5fef1a0d.esm.js +1 -0
- package/dist/index-8f38fae3.cjs.js +2 -0
- package/dist/index-8f38fae3.cjs.js.map +1 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1527 -804
- package/dist/nile-chip/nile-chip.css.cjs.js +1 -1
- package/dist/nile-chip/nile-chip.css.cjs.js.map +1 -1
- package/dist/nile-chip/nile-chip.css.esm.js +8 -1
- package/dist/nile-code-editor/nile-code-editor.cjs.js +1 -1
- package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
- package/dist/nile-code-editor/nile-code-editor.esm.js +3 -3
- package/dist/nile-combobox/index.cjs.js +1 -1
- package/dist/nile-combobox/index.esm.js +1 -1
- package/dist/nile-combobox/nile-combobox.cjs.js +1 -1
- package/dist/nile-combobox/nile-combobox.esm.js +1 -1
- package/dist/nile-command-menu/index.cjs.js +2 -0
- package/dist/nile-command-menu/index.cjs.js.map +1 -0
- package/dist/nile-command-menu/index.esm.js +1 -0
- package/dist/nile-command-menu/nile-command-menu.cjs.js +2 -0
- package/dist/nile-command-menu/nile-command-menu.cjs.js.map +1 -0
- package/dist/nile-command-menu/nile-command-menu.css.cjs.js +2 -0
- package/dist/nile-command-menu/nile-command-menu.css.cjs.js.map +1 -0
- package/dist/nile-command-menu/nile-command-menu.css.esm.js +182 -0
- package/dist/nile-command-menu/nile-command-menu.esm.js +97 -0
- package/dist/nile-command-menu-group/index.cjs.js +2 -0
- package/dist/nile-command-menu-group/index.cjs.js.map +1 -0
- package/dist/nile-command-menu-group/index.esm.js +1 -0
- package/dist/nile-command-menu-group/nile-command-menu-group.cjs.js +2 -0
- package/dist/nile-command-menu-group/nile-command-menu-group.cjs.js.map +1 -0
- package/dist/nile-command-menu-group/nile-command-menu-group.css.cjs.js +2 -0
- package/dist/nile-command-menu-group/nile-command-menu-group.css.cjs.js.map +1 -0
- package/dist/nile-command-menu-group/nile-command-menu-group.css.esm.js +33 -0
- package/dist/nile-command-menu-group/nile-command-menu-group.esm.js +11 -0
- package/dist/nile-command-menu-item/index.cjs.js +2 -0
- package/dist/nile-command-menu-item/index.cjs.js.map +1 -0
- package/dist/nile-command-menu-item/index.esm.js +1 -0
- package/dist/nile-command-menu-item/nile-command-menu-item.cjs.js +2 -0
- package/dist/nile-command-menu-item/nile-command-menu-item.cjs.js.map +1 -0
- package/dist/nile-command-menu-item/nile-command-menu-item.css.cjs.js +2 -0
- package/dist/nile-command-menu-item/nile-command-menu-item.css.cjs.js.map +1 -0
- package/dist/nile-command-menu-item/nile-command-menu-item.css.esm.js +115 -0
- package/dist/nile-command-menu-item/nile-command-menu-item.esm.js +21 -0
- package/dist/nile-detail/index.cjs.js +1 -1
- package/dist/nile-detail/index.esm.js +1 -1
- package/dist/nile-detail/nile-detail.cjs.js +1 -1
- package/dist/nile-detail/nile-detail.esm.js +1 -1
- package/dist/nile-dialog/nile-dialog.cjs.js +1 -1
- package/dist/nile-dialog/nile-dialog.cjs.js.map +1 -1
- package/dist/nile-dialog/nile-dialog.esm.js +1 -1
- package/dist/nile-dot-stepper/index.cjs.js +2 -0
- package/dist/nile-dot-stepper/index.cjs.js.map +1 -0
- package/dist/nile-dot-stepper/index.esm.js +1 -0
- package/dist/nile-dot-stepper/nile-dot-stepper.cjs.js +2 -0
- package/dist/nile-dot-stepper/nile-dot-stepper.cjs.js.map +1 -0
- package/dist/nile-dot-stepper/nile-dot-stepper.css.cjs.js +2 -0
- package/dist/nile-dot-stepper/nile-dot-stepper.css.cjs.js.map +1 -0
- package/dist/nile-dot-stepper/nile-dot-stepper.css.esm.js +77 -0
- package/dist/nile-dot-stepper/nile-dot-stepper.esm.js +24 -0
- package/dist/nile-hero/nile-hero.cjs.js +1 -1
- package/dist/nile-hero/nile-hero.cjs.js.map +1 -1
- package/dist/nile-hero/nile-hero.css.cjs.js +1 -1
- package/dist/nile-hero/nile-hero.css.cjs.js.map +1 -1
- package/dist/nile-hero/nile-hero.css.esm.js +14 -14
- package/dist/nile-hero/nile-hero.esm.js +1 -1
- package/dist/nile-hero-header/nile-hero-header.cjs.js +1 -1
- package/dist/nile-hero-header/nile-hero-header.cjs.js.map +1 -1
- package/dist/nile-hero-header/nile-hero-header.css.cjs.js +1 -1
- package/dist/nile-hero-header/nile-hero-header.css.cjs.js.map +1 -1
- package/dist/nile-hero-header/nile-hero-header.css.esm.js +11 -11
- package/dist/nile-hero-header/nile-hero-header.esm.js +3 -3
- package/dist/nile-rich-text-editor/index.cjs.js +1 -1
- package/dist/nile-rich-text-editor/index.esm.js +1 -1
- package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js +1 -1
- package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js.map +1 -1
- package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js +1 -1
- package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js.map +1 -1
- package/dist/nile-rich-text-editor/nile-rich-text-editor.css.esm.js +70 -0
- package/dist/nile-rich-text-editor/nile-rich-text-editor.esm.js +1 -1
- package/dist/nile-rich-text-editor/nile-rte-image.cjs.js +3 -0
- package/dist/nile-rich-text-editor/nile-rte-image.cjs.js.map +1 -0
- package/dist/nile-rich-text-editor/nile-rte-image.esm.js +96 -0
- package/dist/nile-section-message/nile-section-message.css.cjs.js +1 -1
- package/dist/nile-section-message/nile-section-message.css.cjs.js.map +1 -1
- package/dist/nile-section-message/nile-section-message.css.esm.js +7 -8
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.js +4 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/nile-chip/nile-chip.css.js +8 -1
- package/dist/src/nile-chip/nile-chip.css.js.map +1 -1
- package/dist/src/nile-code-editor/nile-code-editor.js +3 -3
- package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
- package/dist/src/nile-command-menu/index.d.ts +1 -0
- package/dist/src/nile-command-menu/index.js +2 -0
- package/dist/src/nile-command-menu/index.js.map +1 -0
- package/dist/src/nile-command-menu/nile-command-menu.css.d.ts +12 -0
- package/dist/src/nile-command-menu/nile-command-menu.css.js +194 -0
- package/dist/src/nile-command-menu/nile-command-menu.css.js.map +1 -0
- package/dist/src/nile-command-menu/nile-command-menu.d.ts +137 -0
- package/dist/src/nile-command-menu/nile-command-menu.js +557 -0
- package/dist/src/nile-command-menu/nile-command-menu.js.map +1 -0
- package/dist/src/nile-command-menu/nile-command-menu.test.d.ts +3 -0
- package/dist/src/nile-command-menu/nile-command-menu.test.js +268 -0
- package/dist/src/nile-command-menu/nile-command-menu.test.js.map +1 -0
- package/dist/src/nile-command-menu-group/index.d.ts +1 -0
- package/dist/src/nile-command-menu-group/index.js +2 -0
- package/dist/src/nile-command-menu-group/index.js.map +1 -0
- package/dist/src/nile-command-menu-group/nile-command-menu-group.css.d.ts +12 -0
- package/dist/src/nile-command-menu-group/nile-command-menu-group.css.js +45 -0
- package/dist/src/nile-command-menu-group/nile-command-menu-group.css.js.map +1 -0
- package/dist/src/nile-command-menu-group/nile-command-menu-group.d.ts +38 -0
- package/dist/src/nile-command-menu-group/nile-command-menu-group.js +68 -0
- package/dist/src/nile-command-menu-group/nile-command-menu-group.js.map +1 -0
- package/dist/src/nile-command-menu-group/nile-command-menu-group.test.d.ts +2 -0
- package/dist/src/nile-command-menu-group/nile-command-menu-group.test.js +22 -0
- package/dist/src/nile-command-menu-group/nile-command-menu-group.test.js.map +1 -0
- package/dist/src/nile-command-menu-item/index.d.ts +1 -0
- package/dist/src/nile-command-menu-item/index.js +2 -0
- package/dist/src/nile-command-menu-item/index.js.map +1 -0
- package/dist/src/nile-command-menu-item/nile-command-menu-item.css.d.ts +12 -0
- package/dist/src/nile-command-menu-item/nile-command-menu-item.css.js +127 -0
- package/dist/src/nile-command-menu-item/nile-command-menu-item.css.js.map +1 -0
- package/dist/src/nile-command-menu-item/nile-command-menu-item.d.ts +73 -0
- package/dist/src/nile-command-menu-item/nile-command-menu-item.js +174 -0
- package/dist/src/nile-command-menu-item/nile-command-menu-item.js.map +1 -0
- package/dist/src/nile-command-menu-item/nile-command-menu-item.test.d.ts +1 -0
- package/dist/src/nile-command-menu-item/nile-command-menu-item.test.js +35 -0
- package/dist/src/nile-command-menu-item/nile-command-menu-item.test.js.map +1 -0
- package/dist/src/nile-dialog/nile-dialog.js +1 -1
- package/dist/src/nile-dialog/nile-dialog.js.map +1 -1
- package/dist/src/nile-dot-stepper/index.d.ts +1 -0
- package/dist/src/nile-dot-stepper/index.js +2 -0
- package/dist/src/nile-dot-stepper/index.js.map +1 -0
- package/dist/src/nile-dot-stepper/nile-dot-stepper.css.d.ts +12 -0
- package/dist/src/nile-dot-stepper/nile-dot-stepper.css.js +89 -0
- package/dist/src/nile-dot-stepper/nile-dot-stepper.css.js.map +1 -0
- package/dist/src/nile-dot-stepper/nile-dot-stepper.d.ts +48 -0
- package/dist/src/nile-dot-stepper/nile-dot-stepper.js +153 -0
- package/dist/src/nile-dot-stepper/nile-dot-stepper.js.map +1 -0
- package/dist/src/nile-dot-stepper/nile-dot-stepper.test.d.ts +1 -0
- package/dist/src/nile-dot-stepper/nile-dot-stepper.test.js +319 -0
- package/dist/src/nile-dot-stepper/nile-dot-stepper.test.js.map +1 -0
- package/dist/src/nile-hero/nile-hero.css.js +12 -12
- package/dist/src/nile-hero/nile-hero.css.js.map +1 -1
- package/dist/src/nile-hero/nile-hero.js +1 -1
- package/dist/src/nile-hero/nile-hero.js.map +1 -1
- package/dist/src/nile-hero-header/nile-hero-header.css.js +9 -9
- package/dist/src/nile-hero-header/nile-hero-header.css.js.map +1 -1
- package/dist/src/nile-hero-header/nile-hero-header.js +1 -1
- package/dist/src/nile-hero-header/nile-hero-header.js.map +1 -1
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js +70 -0
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js.map +1 -1
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.d.ts +3 -0
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js +81 -3
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js.map +1 -1
- package/dist/src/nile-rich-text-editor/nile-rte-image.d.ts +87 -0
- package/dist/src/nile-rich-text-editor/nile-rte-image.js +1073 -0
- package/dist/src/nile-rich-text-editor/nile-rte-image.js.map +1 -0
- package/dist/src/nile-section-message/nile-section-message.css.js +7 -8
- package/dist/src/nile-section-message/nile-section-message.css.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 +2 -1
- package/src/index.ts +4 -0
- package/src/nile-chip/nile-chip.css.ts +8 -1
- package/src/nile-code-editor/nile-code-editor.ts +3 -3
- package/src/nile-command-menu/index.ts +1 -0
- package/src/nile-command-menu/nile-command-menu.css.ts +196 -0
- package/src/nile-command-menu/nile-command-menu.test.ts +289 -0
- package/src/nile-command-menu/nile-command-menu.ts +601 -0
- package/src/nile-command-menu-group/index.ts +1 -0
- package/src/nile-command-menu-group/nile-command-menu-group.css.ts +47 -0
- package/src/nile-command-menu-group/nile-command-menu-group.test.ts +23 -0
- package/src/nile-command-menu-group/nile-command-menu-group.ts +72 -0
- package/src/nile-command-menu-item/index.ts +1 -0
- package/src/nile-command-menu-item/nile-command-menu-item.css.ts +129 -0
- package/src/nile-command-menu-item/nile-command-menu-item.test.ts +36 -0
- package/src/nile-command-menu-item/nile-command-menu-item.ts +172 -0
- package/src/nile-dialog/nile-dialog.ts +1 -1
- package/src/nile-dot-stepper/index.ts +1 -0
- package/src/nile-dot-stepper/nile-dot-stepper.css.ts +90 -0
- package/src/nile-dot-stepper/nile-dot-stepper.test.ts +493 -0
- package/src/nile-dot-stepper/nile-dot-stepper.ts +159 -0
- package/src/nile-hero/nile-hero.css.ts +12 -12
- package/src/nile-hero/nile-hero.ts +1 -1
- package/src/nile-hero-header/nile-hero-header.css.ts +9 -9
- package/src/nile-hero-header/nile-hero-header.ts +1 -1
- package/src/nile-rich-text-editor/nile-rich-text-editor.css.ts +70 -0
- package/src/nile-rich-text-editor/nile-rich-text-editor.ts +89 -3
- package/src/nile-rich-text-editor/nile-rte-image.ts +1132 -0
- package/src/nile-section-message/nile-section-message.css.ts +7 -8
- package/stories/dot-stepper.stories.ts +67 -0
- package/vscode-html-custom-data.json +220 -1
- package/dist/index-c0b5232c.cjs.js +0 -2
- package/dist/index-c0b5232c.cjs.js.map +0 -1
- package/dist/index-e43a18eb.esm.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nile-dot-stepper.test.js","sourceRoot":"","sources":["../../../src/nile-dot-stepper/nile-dot-stepper.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, fixture, html, oneEvent } from '@open-wc/testing';\nimport './nile-dot-stepper';\nimport type { NileDotStepper } from './nile-dot-stepper';\n\nconst dots = (el: NileDotStepper) =>\n Array.from(\n el.shadowRoot!.querySelectorAll<HTMLButtonElement>('[part=\"dot\"]')\n );\n\ndescribe('NileDotStepper', () => {\n // --- Basic rendering ---\n it('1. renders', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper></nile-dot-stepper>`\n );\n expect(el).to.exist;\n });\n\n it('2. shadow root', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper></nile-dot-stepper>`\n );\n expect(el.shadowRoot).to.not.be.null;\n });\n\n it('3. tag name', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper></nile-dot-stepper>`\n );\n expect(el.tagName.toLowerCase()).to.equal('nile-dot-stepper');\n });\n\n it('4. is defined', async () => {\n expect(customElements.get('nile-dot-stepper')).to.exist;\n });\n\n it('5. has styles', async () => {\n expect(\n (await import('./nile-dot-stepper')).NileDotStepper.styles\n ).to.exist;\n });\n\n // --- Default property values ---\n it('6. total defaults 0', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper></nile-dot-stepper>`\n );\n expect(el.total).to.equal(0);\n });\n\n it('7. current defaults 1', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper></nile-dot-stepper>`\n );\n expect(el.current).to.equal(1);\n });\n\n it('8. size defaults md', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper></nile-dot-stepper>`\n );\n expect(el.size).to.equal('md');\n });\n\n it('9. disabled defaults false', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper></nile-dot-stepper>`\n );\n expect(el.disabled).to.be.false;\n });\n\n it('10. no dots when total is 0', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper></nile-dot-stepper>`\n );\n expect(dots(el).length).to.equal(0);\n });\n\n // --- Reflected attributes ---\n it('11. total reflects', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper total=\"5\"></nile-dot-stepper>`\n );\n expect(el.getAttribute('total')).to.equal('5');\n });\n\n it('12. current reflects', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper total=\"5\" current=\"3\"></nile-dot-stepper>`\n );\n expect(el.getAttribute('current')).to.equal('3');\n });\n\n it('13. size reflects', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper size=\"lg\"></nile-dot-stepper>`\n );\n expect(el.getAttribute('size')).to.equal('lg');\n });\n\n it('14. disabled reflects', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper disabled></nile-dot-stepper>`\n );\n expect(el.hasAttribute('disabled')).to.be.true;\n });\n\n // --- total renders N dots ---\n it('15. total renders exactly N dots', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5}></nile-dot-stepper>`\n );\n expect(dots(el).length).to.equal(5);\n });\n\n it('16. total renders single dot', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${1}></nile-dot-stepper>`\n );\n expect(dots(el).length).to.equal(1);\n });\n\n it('17. dynamically updating total re-renders dots', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${3}></nile-dot-stepper>`\n );\n expect(dots(el).length).to.equal(3);\n el.total = 7;\n await el.updateComplete;\n expect(dots(el).length).to.equal(7);\n });\n\n // --- current marks correct active dot ---\n it('18. current marks correct dot active', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5} .current=${3}></nile-dot-stepper>`\n );\n const active = dots(el).filter((d) => d.classList.contains('dot--active'));\n expect(active.length).to.equal(1);\n expect(active[0].getAttribute('data-index')).to.equal('3');\n });\n\n it('19. active dot aria-selected true, others false', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${4} .current=${2}></nile-dot-stepper>`\n );\n const list = dots(el);\n expect(list[1].getAttribute('aria-selected')).to.equal('true');\n expect(list[0].getAttribute('aria-selected')).to.equal('false');\n expect(list[2].getAttribute('aria-selected')).to.equal('false');\n expect(list[3].getAttribute('aria-selected')).to.equal('false');\n });\n\n it('20. first dot active by default current=1', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5}></nile-dot-stepper>`\n );\n expect(dots(el)[0].classList.contains('dot--active')).to.be.true;\n });\n\n it('21. out-of-range current (too high) clamps active to last dot', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${4} .current=${10}></nile-dot-stepper>`\n );\n const active = dots(el).filter((d) => d.classList.contains('dot--active'));\n expect(active.length).to.equal(1);\n expect(active[0].getAttribute('data-index')).to.equal('4');\n });\n\n it('22. out-of-range current (too low) clamps active to first dot', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${4} .current=${0}></nile-dot-stepper>`\n );\n const active = dots(el).filter((d) => d.classList.contains('dot--active'));\n expect(active.length).to.equal(1);\n expect(active[0].getAttribute('data-index')).to.equal('1');\n });\n\n it('23. dynamic current updates active dot', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5} .current=${1}></nile-dot-stepper>`\n );\n el.current = 4;\n await el.updateComplete;\n const active = dots(el).filter((d) => d.classList.contains('dot--active'));\n expect(active[0].getAttribute('data-index')).to.equal('4');\n });\n\n // --- Click interaction ---\n it('24. clicking a dot sets current', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5} .current=${1}></nile-dot-stepper>`\n );\n dots(el)[2].click();\n await el.updateComplete;\n expect(el.current).to.equal(3);\n });\n\n it('25. clicking a dot emits nile-step-change with 1-based value', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5} .current=${1}></nile-dot-stepper>`\n );\n setTimeout(() => dots(el)[3].click());\n const ev = await oneEvent(el, 'nile-step-change');\n expect(ev.detail.value).to.equal(4);\n });\n\n it('26. clicking the first dot emits value 1', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5} .current=${3}></nile-dot-stepper>`\n );\n setTimeout(() => dots(el)[0].click());\n const ev = await oneEvent(el, 'nile-step-change');\n expect(ev.detail.value).to.equal(1);\n });\n\n it('27. nile-step-change bubbles and is composed', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5}></nile-dot-stepper>`\n );\n setTimeout(() => dots(el)[1].click());\n const ev = await oneEvent(el, 'nile-step-change');\n expect(ev.bubbles).to.be.true;\n expect(ev.composed).to.be.true;\n });\n\n // --- Disabled behaviour ---\n it('28. disabled blocks click (no current change)', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5} .current=${1} disabled></nile-dot-stepper>`\n );\n dots(el)[2].click();\n await el.updateComplete;\n expect(el.current).to.equal(1);\n });\n\n it('29. disabled blocks click (no event)', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5} disabled></nile-dot-stepper>`\n );\n let fired = false;\n el.addEventListener('nile-step-change', () => (fired = true));\n dots(el)[2].click();\n await el.updateComplete;\n expect(fired).to.be.false;\n });\n\n it('30. disabled sets disabled attribute on each dot', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${3} disabled></nile-dot-stepper>`\n );\n expect(dots(el).every((d) => d.disabled)).to.be.true;\n });\n\n it('31. disabled blocks keyboard interaction', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5} .current=${2} disabled></nile-dot-stepper>`\n );\n let fired = false;\n el.addEventListener('nile-step-change', () => (fired = true));\n const base = el.shadowRoot!.querySelector('[part=\"base\"]')!;\n base.dispatchEvent(\n new KeyboardEvent('keydown', { key: 'ArrowRight', bubbles: true })\n );\n await el.updateComplete;\n expect(el.current).to.equal(2);\n expect(fired).to.be.false;\n });\n\n // --- Keyboard navigation ---\n const dispatchKey = (el: NileDotStepper, key: string) => {\n const base = el.shadowRoot!.querySelector('[part=\"base\"]')!;\n base.dispatchEvent(\n new KeyboardEvent('keydown', { key, bubbles: true })\n );\n };\n\n it('32. ArrowRight increments current and emits value', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5} .current=${2}></nile-dot-stepper>`\n );\n setTimeout(() => dispatchKey(el, 'ArrowRight'));\n const ev = await oneEvent(el, 'nile-step-change');\n expect(ev.detail.value).to.equal(3);\n expect(el.current).to.equal(3);\n });\n\n it('33. ArrowLeft decrements current and emits value', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5} .current=${3}></nile-dot-stepper>`\n );\n setTimeout(() => dispatchKey(el, 'ArrowLeft'));\n const ev = await oneEvent(el, 'nile-step-change');\n expect(ev.detail.value).to.equal(2);\n expect(el.current).to.equal(2);\n });\n\n it('34. ArrowRight clamps at total', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5} .current=${5}></nile-dot-stepper>`\n );\n setTimeout(() => dispatchKey(el, 'ArrowRight'));\n const ev = await oneEvent(el, 'nile-step-change');\n expect(ev.detail.value).to.equal(5);\n expect(el.current).to.equal(5);\n });\n\n it('35. ArrowLeft clamps at 1', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5} .current=${1}></nile-dot-stepper>`\n );\n setTimeout(() => dispatchKey(el, 'ArrowLeft'));\n const ev = await oneEvent(el, 'nile-step-change');\n expect(ev.detail.value).to.equal(1);\n expect(el.current).to.equal(1);\n });\n\n it('36. Home jumps to first dot', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5} .current=${4}></nile-dot-stepper>`\n );\n setTimeout(() => dispatchKey(el, 'Home'));\n const ev = await oneEvent(el, 'nile-step-change');\n expect(ev.detail.value).to.equal(1);\n expect(el.current).to.equal(1);\n });\n\n it('37. End jumps to last dot', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5} .current=${2}></nile-dot-stepper>`\n );\n setTimeout(() => dispatchKey(el, 'End'));\n const ev = await oneEvent(el, 'nile-step-change');\n expect(ev.detail.value).to.equal(5);\n expect(el.current).to.equal(5);\n });\n\n it('38. unhandled key does not change current', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5} .current=${2}></nile-dot-stepper>`\n );\n let fired = false;\n el.addEventListener('nile-step-change', () => (fired = true));\n dispatchKey(el, 'Enter');\n await el.updateComplete;\n expect(el.current).to.equal(2);\n expect(fired).to.be.false;\n });\n\n it('39. keyboard nav moves focus to the new active dot', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5} .current=${2}></nile-dot-stepper>`\n );\n dispatchKey(el, 'ArrowRight');\n await el.updateComplete;\n const focused = el.shadowRoot!.activeElement as HTMLButtonElement;\n expect(focused).to.exist;\n expect(focused.getAttribute('data-index')).to.equal('3');\n });\n\n // --- Size variants ---\n it('40. size sm applies dot--sm', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${3} size=\"sm\"></nile-dot-stepper>`\n );\n expect(dots(el).every((d) => d.classList.contains('dot--sm'))).to.be.true;\n });\n\n it('41. size md applies dot--md', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${3} size=\"md\"></nile-dot-stepper>`\n );\n expect(dots(el).every((d) => d.classList.contains('dot--md'))).to.be.true;\n });\n\n it('42. size lg applies dot--lg', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${3} size=\"lg\"></nile-dot-stepper>`\n );\n expect(dots(el).every((d) => d.classList.contains('dot--lg'))).to.be.true;\n });\n\n it('43. dynamic size update changes dot class', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${3} size=\"md\"></nile-dot-stepper>`\n );\n el.size = 'lg';\n await el.updateComplete;\n expect(dots(el).every((d) => d.classList.contains('dot--lg'))).to.be.true;\n expect(dots(el).some((d) => d.classList.contains('dot--md'))).to.be.false;\n });\n\n // --- Accessibility / parts ---\n it('44. base part present', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${3}></nile-dot-stepper>`\n );\n expect(el.shadowRoot!.querySelector('[part=\"base\"]')).to.exist;\n });\n\n it('45. base has role tablist', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${3}></nile-dot-stepper>`\n );\n expect(\n el.shadowRoot!.querySelector('[part=\"base\"]')!.getAttribute('role')\n ).to.equal('tablist');\n });\n\n it('46. base has aria-label Progress', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${3}></nile-dot-stepper>`\n );\n expect(\n el.shadowRoot!.querySelector('[part=\"base\"]')!.getAttribute('aria-label')\n ).to.equal('Progress');\n });\n\n it('47. dot part present', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${3}></nile-dot-stepper>`\n );\n expect(el.shadowRoot!.querySelector('[part=\"dot\"]')).to.exist;\n });\n\n it('48. each dot has role tab', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${4}></nile-dot-stepper>`\n );\n expect(dots(el).every((d) => d.getAttribute('role') === 'tab')).to.be.true;\n });\n\n it('49. dot aria-label is \"Step N of M\"', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${5} .current=${2}></nile-dot-stepper>`\n );\n const list = dots(el);\n expect(list[0].getAttribute('aria-label')).to.equal('Step 1 of 5');\n expect(list[4].getAttribute('aria-label')).to.equal('Step 5 of 5');\n });\n\n it('50. roving tabindex: active 0, others -1', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${4} .current=${3}></nile-dot-stepper>`\n );\n const list = dots(el);\n expect(list[2].getAttribute('tabindex')).to.equal('0');\n expect(list[0].getAttribute('tabindex')).to.equal('-1');\n expect(list[1].getAttribute('tabindex')).to.equal('-1');\n expect(list[3].getAttribute('tabindex')).to.equal('-1');\n });\n\n it('51. roving tabindex updates after navigation', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${4} .current=${1}></nile-dot-stepper>`\n );\n el.current = 3;\n await el.updateComplete;\n const list = dots(el);\n expect(list[2].getAttribute('tabindex')).to.equal('0');\n expect(list[0].getAttribute('tabindex')).to.equal('-1');\n });\n\n it('52. dots are button elements of type button', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper .total=${3}></nile-dot-stepper>`\n );\n expect(\n dots(el).every(\n (d) => d.tagName === 'BUTTON' && d.getAttribute('type') === 'button'\n )\n ).to.be.true;\n });\n\n it('53. full integration', async () => {\n const el = await fixture<NileDotStepper>(\n html`<nile-dot-stepper\n .total=${6}\n .current=${4}\n size=\"lg\"\n ></nile-dot-stepper>`\n );\n expect(dots(el).length).to.equal(6);\n expect(el.size).to.equal('lg');\n const active = dots(el).filter((d) => d.classList.contains('dot--active'));\n expect(active.length).to.equal(1);\n expect(active[0].getAttribute('data-index')).to.equal('4');\n setTimeout(() => dispatchKey(el, 'End'));\n const ev = await oneEvent(el, 'nile-step-change');\n expect(ev.detail.value).to.equal(6);\n expect(el.current).to.equal(6);\n });\n});\n"]}
|
|
@@ -35,12 +35,12 @@ export const styles = css `
|
|
|
35
35
|
|
|
36
36
|
.hero__container--collapsed{
|
|
37
37
|
height: 67px;
|
|
38
|
-
background-color: var(--nile-hero-collapsed-background);
|
|
38
|
+
background-color: var(--nile-hero-collapsed-background, var(--ng-colors-bg-primary));
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
.hero__container--expanded{
|
|
42
|
-
height:var(--nile-hero-height);
|
|
43
|
-
background:linear-gradient(180deg, var( --nile-hero-color-bg-from-gradient) 0%, var( --nile-hero-color-bg-to-gradient) 100%);
|
|
42
|
+
height:var(--nile-hero-height, var(--ng-height-200px));
|
|
43
|
+
background:linear-gradient(180deg, var( --nile-hero-color-bg-from-gradient, var(--ng-color-bluelight-50)) 0%, var( --nile-hero-color-bg-to-gradient, var(--ng-componentcolors-utility-gray-200)) 100%);
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
.icon__container {
|
|
@@ -48,17 +48,17 @@ export const styles = css `
|
|
|
48
48
|
aspect-ratio: 1 / 1;
|
|
49
49
|
place-items: center;
|
|
50
50
|
display: grid;
|
|
51
|
-
border-radius: var(--nile-radius-radius-xl);
|
|
52
|
-
border: 1px solid var(--nile-colors-neutral-400);
|
|
53
|
-
background: linear-gradient(180deg, var(--nile-hero-color-icon-bg-from-gradient) 0%, var(--nile-hero-color-icon-bg-to-gradient) 100%);
|
|
51
|
+
border-radius: var(--nile-radius-radius-xl, var(--ng-radius-md));
|
|
52
|
+
border: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));
|
|
53
|
+
background: linear-gradient(180deg, var(--nile-hero-color-icon-bg-from-gradient, var(--ng-colors-bg-primary)) 0%, var(--nile-hero-color-icon-bg-to-gradient, var(--ng-colors-bg-secondary)) 100%);
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
.hero__slot__container {
|
|
57
|
-
height:var(--nile-hero-height);
|
|
58
|
-
padding-left: var(--nile-spacing-5xl);
|
|
57
|
+
height:var(--nile-hero-height, var(--ng-height-200px));
|
|
58
|
+
padding-left: var(--nile-spacing-5xl, var(--ng-spacing-5xl));
|
|
59
59
|
display: flex;
|
|
60
60
|
align-items: center;
|
|
61
|
-
gap:var(--nile-spacing-spacing-xl);
|
|
61
|
+
gap:var(--nile-spacing-spacing-xl, var(--ng-spacing-xl));
|
|
62
62
|
position: absolute;
|
|
63
63
|
left: 0;
|
|
64
64
|
bottom:0;
|
|
@@ -67,11 +67,11 @@ export const styles = css `
|
|
|
67
67
|
|
|
68
68
|
.hero__slot {
|
|
69
69
|
display: flex;
|
|
70
|
-
gap:var(--nile-spacing-spacing-xl);
|
|
70
|
+
gap:var(--nile-spacing-spacing-xl, var(--ng-spacing-xl));
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
.hero__img__container {
|
|
74
|
-
height:var(--nile-hero-height);
|
|
74
|
+
height:var(--nile-hero-height, var(--ng-height-200px));
|
|
75
75
|
overflow:hidden;
|
|
76
76
|
width:max-content;
|
|
77
77
|
position: absolute;
|
|
@@ -82,7 +82,7 @@ export const styles = css `
|
|
|
82
82
|
|
|
83
83
|
.hero__img {
|
|
84
84
|
object-fit:cover;
|
|
85
|
-
height:var(--nile-hero-height);
|
|
85
|
+
height:var(--nile-hero-height, var(--ng-height-200px));
|
|
86
86
|
width:auto;
|
|
87
87
|
}
|
|
88
88
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-hero.css.js","sourceRoot":"","sources":["../../../src/nile-hero/nile-hero.css.ts"],"names":[],"mappings":"AAAA;;;;;EAKE;AAEF,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6ExB,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 * Hero CSS\n */\nexport const styles = css`\n\n\t:host {\n\t\tdisplay:block;\n\t\t--nile-hero-transition-time:2000ms;\n\t\t-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\t}\n\n\t.hero__header--collapsed{\n\t\tposition:absolute;\n\t\ttop:0;\n\t\tleft:0;\n\t\ttransition:var(--nile-hero-transition-time);\n\t}\n\t\n\t.hero__container {\n\t\toverflow:hidden;\n\t\twidth:100%;\n\t\tposition:relative;\n\t\tdisplay:block;\n \t\ttransition: var(--nile-hero-transition-time);\n\t}\n\n\t.hero__container--collapsed{\n\t\theight: 67px;\n\t\tbackground-color: var(--nile-hero-collapsed-background);\n\t}\n\n\t.hero__container--expanded{\n\t\theight:var(--nile-hero-height);\n\t\tbackground:linear-gradient(180deg, var( --nile-hero-color-bg-from-gradient) 0%, var( --nile-hero-color-bg-to-gradient) 100%);\n\t}\n\n\t.icon__container {\n\t\theight: 32px;\n\t\taspect-ratio: 1 / 1;\n\t\tplace-items: center;\n\t\tdisplay: grid;\n\t\tborder-radius: var(--nile-radius-radius-xl);\n\t\tborder: 1px solid var(--nile-colors-neutral-400);\n\t\tbackground: linear-gradient(180deg, var(--nile-hero-color-icon-bg-from-gradient) 0%, var(--nile-hero-color-icon-bg-to-gradient) 100%);\n\t}\n\n\t.hero__slot__container {\n\t\theight:var(--nile-hero-height);\n\t\tpadding-left: var(--nile-spacing-5xl);\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tgap:var(--nile-spacing-spacing-xl);\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tbottom:0;\n \t\ttransition: var(--nile-hero-transition-time);\n\t}\n\n\t.hero__slot {\n\t\tdisplay: flex;\n\t\tgap:var(--nile-spacing-spacing-xl);\n\t}\n\n\t.hero__img__container {\n\t\theight:var(--nile-hero-height);\n\t\toverflow:hidden;\n\t\twidth:max-content;\n\t\tposition: absolute;\n\t\tright: 0;\n\t\tbottom:0;\n\t\ttransition:var(--nile-hero-transition-time);\n\t}\n\n\t.hero__img {\n\t\tobject-fit:cover;\n\t\theight:var(--nile-hero-height);\n\t\twidth:auto;\n\t}\n`;\n\nexport default [styles];\n"]}
|
|
1
|
+
{"version":3,"file":"nile-hero.css.js","sourceRoot":"","sources":["../../../src/nile-hero/nile-hero.css.ts"],"names":[],"mappings":"AAAA;;;;;EAKE;AAEF,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6ExB,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 * Hero CSS\n */\nexport const styles = css`\n\n\t:host {\n\t\tdisplay:block;\n\t\t--nile-hero-transition-time:2000ms;\n\t\t-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\t}\n\n\t.hero__header--collapsed{\n\t\tposition:absolute;\n\t\ttop:0;\n\t\tleft:0;\n\t\ttransition:var(--nile-hero-transition-time);\n\t}\n\t\n\t.hero__container {\n\t\toverflow:hidden;\n\t\twidth:100%;\n\t\tposition:relative;\n\t\tdisplay:block;\n \t\ttransition: var(--nile-hero-transition-time);\n\t}\n\n\t.hero__container--collapsed{\n\t\theight: 67px;\n\t\tbackground-color: var(--nile-hero-collapsed-background, var(--ng-colors-bg-primary));\n\t}\n\n\t.hero__container--expanded{\n\t\theight:var(--nile-hero-height, var(--ng-height-200px));\n\t\tbackground:linear-gradient(180deg, var( --nile-hero-color-bg-from-gradient, var(--ng-color-bluelight-50)) 0%, var( --nile-hero-color-bg-to-gradient, var(--ng-componentcolors-utility-gray-200)) 100%);\n\t}\n\n\t.icon__container {\n\t\theight: 32px;\n\t\taspect-ratio: 1 / 1;\n\t\tplace-items: center;\n\t\tdisplay: grid;\n\t\tborder-radius: var(--nile-radius-radius-xl, var(--ng-radius-md));\n\t\tborder: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));\n\t\tbackground: linear-gradient(180deg, var(--nile-hero-color-icon-bg-from-gradient, var(--ng-colors-bg-primary)) 0%, var(--nile-hero-color-icon-bg-to-gradient, var(--ng-colors-bg-secondary)) 100%);\n\t}\n\n\t.hero__slot__container {\n\t\theight:var(--nile-hero-height, var(--ng-height-200px));\n\t\tpadding-left: var(--nile-spacing-5xl, var(--ng-spacing-5xl));\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tgap:var(--nile-spacing-spacing-xl, var(--ng-spacing-xl));\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tbottom:0;\n \t\ttransition: var(--nile-hero-transition-time);\n\t}\n\n\t.hero__slot {\n\t\tdisplay: flex;\n\t\tgap:var(--nile-spacing-spacing-xl, var(--ng-spacing-xl));\n\t}\n\n\t.hero__img__container {\n\t\theight:var(--nile-hero-height, var(--ng-height-200px));\n\t\toverflow:hidden;\n\t\twidth:max-content;\n\t\tposition: absolute;\n\t\tright: 0;\n\t\tbottom:0;\n\t\ttransition:var(--nile-hero-transition-time);\n\t}\n\n\t.hero__img {\n\t\tobject-fit:cover;\n\t\theight:var(--nile-hero-height, var(--ng-height-200px));\n\t\twidth:auto;\n\t}\n`;\n\nexport default [styles];\n"]}
|
|
@@ -49,7 +49,7 @@ let NileHero = class NileHero extends NileElement {
|
|
|
49
49
|
<div class="hero__slot__container" style="opacity:${this.collapse ? 0 : 1}">
|
|
50
50
|
<div class="hero__slot">
|
|
51
51
|
<span class="icon__container">
|
|
52
|
-
<nile-icon size="16" method="var(--nile-svg-method-stroke, var(--ng-svg-method-
|
|
52
|
+
<nile-icon size="16" method="var(--nile-svg-method-stroke, var(--ng-svg-method-fill))" name="${this.icon}"></nile-icon>
|
|
53
53
|
</span>
|
|
54
54
|
<slot></slot>
|
|
55
55
|
</div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-hero.js","sourceRoot":"","sources":["../../../src/nile-hero/nile-hero.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;AAEH,OAAO,EAAa,IAAI,EAAyC,MAAM,KAAK,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAgB,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AACvC,OAAO,WAAW,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAGvD;;;;;GAKG;AAEI,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,WAAW;IAAlC;;QACuB,SAAI,GAAW,gDAAgD,CAAC;QACjD,aAAQ,GAAY,KAAK,CAAC;QAEnB,WAAM,GAAW,EAAE,CAAC;QAClB,aAAQ,GAAW,EAAE,CAAC;QAwC3E,gBAAgB;IACjB,CAAC;IAvCA;;;OAGG;IACI,MAAM,KAAK,MAAM;QACvB,OAAO,CAAC,MAAM,CAAC,CAAC;IACjB,CAAC;IAED,gBAAgB;IAChB,qBAAqB;IAErB;;;OAGG;IACI,MAAM;QACZ,OAAO,IAAI,CAAA;4CAC+B,QAAQ,CAAC;YAClD,iBAAiB,EAAC,IAAI;YACtB,4BAA4B,EAAC,IAAI,CAAC,QAAQ;YAC1C,2BAA2B,EAAC,CAAC,IAAI,CAAC,QAAQ;SAC1C,CAAC;gGAC4F,IAAI,CAAC,QAAQ,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,gBAAgB,IAAI,CAAC,QAAQ,WAAW,IAAI,CAAC,IAAI;uDAC3G,IAAI,CAAC,QAAQ,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC;;;
|
|
1
|
+
{"version":3,"file":"nile-hero.js","sourceRoot":"","sources":["../../../src/nile-hero/nile-hero.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;AAEH,OAAO,EAAa,IAAI,EAAyC,MAAM,KAAK,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAgB,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AACvC,OAAO,WAAW,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAGvD;;;;;GAKG;AAEI,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,WAAW;IAAlC;;QACuB,SAAI,GAAW,gDAAgD,CAAC;QACjD,aAAQ,GAAY,KAAK,CAAC;QAEnB,WAAM,GAAW,EAAE,CAAC;QAClB,aAAQ,GAAW,EAAE,CAAC;QAwC3E,gBAAgB;IACjB,CAAC;IAvCA;;;OAGG;IACI,MAAM,KAAK,MAAM;QACvB,OAAO,CAAC,MAAM,CAAC,CAAC;IACjB,CAAC;IAED,gBAAgB;IAChB,qBAAqB;IAErB;;;OAGG;IACI,MAAM;QACZ,OAAO,IAAI,CAAA;4CAC+B,QAAQ,CAAC;YAClD,iBAAiB,EAAC,IAAI;YACtB,4BAA4B,EAAC,IAAI,CAAC,QAAQ;YAC1C,2BAA2B,EAAC,CAAC,IAAI,CAAC,QAAQ;SAC1C,CAAC;gGAC4F,IAAI,CAAC,QAAQ,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,gBAAgB,IAAI,CAAC,QAAQ,WAAW,IAAI,CAAC,IAAI;uDAC3G,IAAI,CAAC,QAAQ,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC;;;oGAG4B,IAAI,CAAC,IAAI;;;;;uDAKtD,IAAI,CAAC,QAAQ,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC;gBACxD,IAAI,CAAC,MAAM;;;GAGxB,CAAC;IACH,CAAC;CAGD,CAAA;AA7C6B;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;sCAAiE;AACjD;IAA3C,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0CAA2B;AAEnB;IAAlD,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;wCAAqB;AAClB;IAApD,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;0CAAuB;AAL/D,QAAQ;IADpB,aAAa,CAAC,WAAW,CAAC;GACd,QAAQ,CA8CpB;;AAED,eAAe,QAAQ,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 {LitElement, html, CSSResultArray, TemplateResult,nothing} from 'lit';\nimport { customElement, query, state, property } from 'lit/decorators.js';\nimport {styles} from './nile-hero.css';\nimport NileElement from '../internal/nile-element';\nimport { classMap } from 'lit/directives/class-map.js';\n\n\n/**\n * Nile hero component.\n *\n * @tag nile-hero\n *\n */\n@customElement('nile-hero')\nexport class NileHero extends NileElement {\n\t@property({ reflect: true }) icon: string = 'var(--nile-icon-action, var(--ng-icon-action))';\n\t@property({ reflect: true, type: Boolean }) collapse: boolean = false;\n\n\t@property({ reflect: true, attribute: 'img-src' }) imgSrc: string = '';\n\t@property({ reflect: true, attribute: 'hero-text' }) heroText: string = '';\n\n\t/**\n\t * The styles for nile-hero\n\t * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n\t */\n\tpublic static get styles(): CSSResultArray {\n\t\treturn [styles];\n\t}\n\n\t/* #endregion */\n\t/* #region Methods */\n\n\t/**\n\t * Render method\n\t * @slot This is a slot test\n\t */\n\tpublic render(): TemplateResult {\n\t\treturn html`\n\t\t<div part=\"nile__hero__container\" class=${classMap({\n\t\t\t\"hero__container\":true,\n\t\t\t\"hero__container--collapsed\":this.collapse,\n\t\t\t\"hero__container--expanded\":!this.collapse\n\t\t})}>\n\t\t\t<nile-hero-header part=\"nile__hero__header\" class='hero__header--collapsed' style=\"opacity:${this.collapse?1:0}\" hero-text=\"${this.heroText}\" icon=\"${this.icon}\"></nile-hero-header>\n\t\t\t<div class=\"hero__slot__container\" style=\"opacity:${this.collapse?0:1}\">\n\t\t\t <div class=\"hero__slot\">\n\t\t\t \t<span class=\"icon__container\">\n\t\t\t\t\t<nile-icon size=\"16\" method=\"var(--nile-svg-method-stroke, var(--ng-svg-method-fill))\" name=\"${this.icon}\"></nile-icon>\n\t\t\t\t</span>\n\t\t\t\t<slot></slot>\n\t\t\t </div>\n\t\t\t</div>\n\t\t\t<div class=\"hero__img__container\" style=\"opacity:${this.collapse?0:1}\" id=\"hero__img__container\">\n\t\t\t\t<img src=\"${this.imgSrc}\" class=\"hero__img\">\n\t\t\t</div>\n\t\t</div>\n\t\t`;\n\t}\n\n\t/* #endregion */\n}\n\nexport default NileHero;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-hero': NileHero;\n }\n}"]}
|
|
@@ -14,8 +14,8 @@ export const styles = css `
|
|
|
14
14
|
width:100%;
|
|
15
15
|
display: flex;
|
|
16
16
|
align-items: center;
|
|
17
|
-
padding:var(--nile-spacing-xl) var(--nile-spacing-5xl);
|
|
18
|
-
gap: var(--nile-spacing-xl);
|
|
17
|
+
padding:var(--nile-spacing-xl, var(--ng-spacing-xl)) var(--nile-spacing-5xl, var(--ng-spacing-5xl));
|
|
18
|
+
gap: var(--nile-spacing-xl, var(--ng-spacing-xl));
|
|
19
19
|
border-bottom: 1px solid rgb(234, 236, 240);
|
|
20
20
|
-webkit-font-smoothing: var(--nile-webkit-font-smoothing, var(--ng-webkit-font-smoothing));
|
|
21
21
|
-moz-osx-font-smoothing: var(--nile-moz-osx-font-smoothing, var(--ng-moz-osx-font-smoothing));
|
|
@@ -27,17 +27,17 @@ export const styles = css `
|
|
|
27
27
|
aspect-ratio: 1 / 1;
|
|
28
28
|
place-items: center;
|
|
29
29
|
display: grid;
|
|
30
|
-
border-radius: var(--nile-radius-radius-xl);
|
|
31
|
-
border: 1px solid var(--nile-colors-neutral-400);
|
|
32
|
-
background: linear-gradient(180deg, var(--nile-hero-color-icon-bg-from-gradient) 0%, var(--nile-hero-color-icon-bg-to-gradient) 100%);
|
|
30
|
+
border-radius: var(--nile-radius-radius-xl, var(--ng-radius-md));
|
|
31
|
+
border: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));
|
|
32
|
+
background: linear-gradient(180deg, var(--nile-hero-color-icon-bg-from-gradient, var(--ng-colors-bg-primary)) 0%, var(--nile-hero-color-icon-bg-to-gradient, var(--ng-colors-bg-secondary)) 100%);
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
.hero__text {
|
|
36
|
-
color: var(--nile-hero-text-color);
|
|
37
|
-
font-size: var(--nile-hero-text-font-size);
|
|
38
|
-
line-height: var(--nile-hero-text-line-height);
|
|
36
|
+
color: var(--nile-hero-text-color, var(--ng-colors-text-primary-900));
|
|
37
|
+
font-size: var(--nile-hero-text-font-size, var(--ng-font-size-text-md));
|
|
38
|
+
line-height: var(--nile-hero-text-line-height, var(--ng-line-height-text-md));
|
|
39
39
|
font-style: normal;
|
|
40
|
-
font-weight: var(--nile-hero-text-font-weight);
|
|
40
|
+
font-weight: var(--nile-hero-text-font-weight, var(--ng-font-weight-bold));
|
|
41
41
|
}
|
|
42
42
|
`;
|
|
43
43
|
export default [styles];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-hero-header.css.js","sourceRoot":"","sources":["../../../src/nile-hero-header/nile-hero-header.css.ts"],"names":[],"mappings":"AAAA;;;;;EAKE;AAEF,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BxB,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 * HeroHeader CSS\n */\nexport const styles = css`\n\t\n\t:host {\n\t\twidth:100%;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tpadding:var(--nile-spacing-xl) var(--nile-spacing-5xl);\n\t\tgap: var(--nile-spacing-xl);\n\t\tborder-bottom: 1px solid rgb(234, 236, 240);\n\t\t-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\t}\n\n\t.icon__container {\n\t\theight: 32px;\n\t\taspect-ratio: 1 / 1;\n\t\tplace-items: center;\n\t\tdisplay: grid;\n\t\tborder-radius: var(--nile-radius-radius-xl);\n\t\tborder: 1px solid var(--nile-colors-neutral-400);\n\t\tbackground: linear-gradient(180deg, var(--nile-hero-color-icon-bg-from-gradient) 0%, var(--nile-hero-color-icon-bg-to-gradient) 100%);\n\t}\n\n\t.hero__text {\n\t\tcolor: var(--nile-hero-text-color);\n\t\tfont-size: var(--nile-hero-text-font-size);\n\t\tline-height: var(--nile-hero-text-line-height);\n\t\tfont-style: normal;\n\t\tfont-weight: var(--nile-hero-text-font-weight);\n\t}\n`;\n\nexport default [styles];\n"]}
|
|
1
|
+
{"version":3,"file":"nile-hero-header.css.js","sourceRoot":"","sources":["../../../src/nile-hero-header/nile-hero-header.css.ts"],"names":[],"mappings":"AAAA;;;;;EAKE;AAEF,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BxB,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 * HeroHeader CSS\n */\nexport const styles = css`\n\t\n\t:host {\n\t\twidth:100%;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tpadding:var(--nile-spacing-xl, var(--ng-spacing-xl)) var(--nile-spacing-5xl, var(--ng-spacing-5xl));\n\t\tgap: var(--nile-spacing-xl, var(--ng-spacing-xl));\n\t\tborder-bottom: 1px solid rgb(234, 236, 240);\n\t\t-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\t}\n\n\t.icon__container {\n\t\theight: 32px;\n\t\taspect-ratio: 1 / 1;\n\t\tplace-items: center;\n\t\tdisplay: grid;\n\t\tborder-radius: var(--nile-radius-radius-xl, var(--ng-radius-md));\n\t\tborder: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));\n\t\tbackground: linear-gradient(180deg, var(--nile-hero-color-icon-bg-from-gradient, var(--ng-colors-bg-primary)) 0%, var(--nile-hero-color-icon-bg-to-gradient, var(--ng-colors-bg-secondary)) 100%);\n\t}\n\n\t.hero__text {\n\t\tcolor: var(--nile-hero-text-color, var(--ng-colors-text-primary-900));\n\t\tfont-size: var(--nile-hero-text-font-size, var(--ng-font-size-text-md));\n\t\tline-height: var(--nile-hero-text-line-height, var(--ng-line-height-text-md));\n\t\tfont-style: normal;\n\t\tfont-weight: var(--nile-hero-text-font-weight, var(--ng-font-weight-bold));\n\t}\n`;\n\nexport default [styles];\n"]}
|
|
@@ -38,7 +38,7 @@ let NileHeroHeader = class NileHeroHeader extends NileElement {
|
|
|
38
38
|
render() {
|
|
39
39
|
return html `
|
|
40
40
|
<span class="icon__container">
|
|
41
|
-
<nile-icon method="var(--nile-svg-method-stroke, var(--ng-svg-method-
|
|
41
|
+
<nile-icon method="var(--nile-svg-method-stroke, var(--ng-svg-method-fill))" size="16" name="${this.icon}"></nile-icon>
|
|
42
42
|
</span>
|
|
43
43
|
<span class="hero__text">${this.heroText}</span>
|
|
44
44
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-hero-header.js","sourceRoot":"","sources":["../../../src/nile-hero-header/nile-hero-header.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;AAEH,OAAO,EAAa,IAAI,EAAiC,MAAM,KAAK,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAC,MAAM,EAAC,MAAM,wBAAwB,CAAC;AAC9C,OAAO,WAAW,MAAM,0BAA0B,CAAC;AAGnD;;;;;GAKG;AAEI,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,WAAW;IAAxC;;QACuB,SAAI,GAAW,gDAAgD,CAAC;QACxC,aAAQ,GAAW,WAAW,CAAC;QA2BpF,gBAAgB;IACjB,CAAC;IA1BA;;;OAGG;IACI,MAAM,KAAK,MAAM;QACvB,OAAO,CAAC,MAAM,CAAC,CAAC;IACjB,CAAC;IAED,gBAAgB;IAEhB,qBAAqB;IAErB;;;OAGG;IACI,MAAM;QACZ,OAAO,IAAI,CAAA;;
|
|
1
|
+
{"version":3,"file":"nile-hero-header.js","sourceRoot":"","sources":["../../../src/nile-hero-header/nile-hero-header.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;AAEH,OAAO,EAAa,IAAI,EAAiC,MAAM,KAAK,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAC,MAAM,EAAC,MAAM,wBAAwB,CAAC;AAC9C,OAAO,WAAW,MAAM,0BAA0B,CAAC;AAGnD;;;;;GAKG;AAEI,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,WAAW;IAAxC;;QACuB,SAAI,GAAW,gDAAgD,CAAC;QACxC,aAAQ,GAAW,WAAW,CAAC;QA2BpF,gBAAgB;IACjB,CAAC;IA1BA;;;OAGG;IACI,MAAM,KAAK,MAAM;QACvB,OAAO,CAAC,MAAM,CAAC,CAAC;IACjB,CAAC;IAED,gBAAgB;IAEhB,qBAAqB;IAErB;;;OAGG;IACI,MAAM;QACZ,OAAO,IAAI,CAAA;;oGAEuF,IAAI,CAAC,IAAI;;+BAE9E,IAAI,CAAC,QAAQ;IACxC,CAAC;IACJ,CAAC;CAGD,CAAA;AA7B6B;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;4CAAiE;AACxC;IAApD,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;gDAAgC;AAFxE,cAAc;IAD1B,aAAa,CAAC,kBAAkB,CAAC;GACrB,cAAc,CA8B1B;;AAED,eAAe,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 {LitElement, html, CSSResultArray, TemplateResult} from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport {styles} from './nile-hero-header.css';\nimport NileElement from '../internal/nile-element';\n\n\n/**\n * Nile hero-header component.\n *\n * @tag nile-hero-header\n *\n */\n@customElement('nile-hero-header')\nexport class NileHeroHeader extends NileElement {\n\t@property({ reflect: true }) icon: string = 'var(--nile-icon-action, var(--ng-icon-action))';\n\t@property({ reflect: true, attribute: 'hero-text' }) heroText: string = 'Nile Hero';\n\n\t/**\n\t * The styles for nile-hero-header\n\t * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n\t */\n\tpublic static get styles(): CSSResultArray {\n\t\treturn [styles];\n\t}\n\n\t/* #endregion */\n\n\t/* #region Methods */\n\n\t/**\n\t * Render method\n\t * @slot This is a slot test\n\t */\n\tpublic render(): TemplateResult {\n\t\treturn html`\n\t\t\t\t<span class=\"icon__container\">\n\t\t\t\t\t<nile-icon method=\"var(--nile-svg-method-stroke, var(--ng-svg-method-fill))\" size=\"16\" name=\"${this.icon}\"></nile-icon>\n\t\t\t\t</span>\n\t\t\t\t<span class=\"hero__text\">${this.heroText}</span>\n\t\t\t`;\n\t}\n\n\t/* #endregion */\n}\n\nexport default NileHeroHeader;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-hero-header': NileHeroHeader;\n }\n}"]}
|
|
@@ -199,6 +199,76 @@ nile-rich-text-editor[disabled] .editor a {
|
|
|
199
199
|
pointer-events: none;
|
|
200
200
|
}
|
|
201
201
|
|
|
202
|
+
.editor figure.rte-image,
|
|
203
|
+
nile-rte-preview figure.rte-image {
|
|
204
|
+
margin: 1em 0;
|
|
205
|
+
width: fit-content;
|
|
206
|
+
max-width: 100%;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
.editor > figure.rte-image:first-child,
|
|
210
|
+
nile-rte-preview > figure.rte-image:first-child {
|
|
211
|
+
margin-top: 0;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
.editor figure.rte-image[data-align='center'],
|
|
215
|
+
nile-rte-preview figure.rte-image[data-align='center'] {
|
|
216
|
+
margin-left: auto;
|
|
217
|
+
margin-right: auto;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
.editor figure.rte-image[data-align='right'],
|
|
221
|
+
nile-rte-preview figure.rte-image[data-align='right'] {
|
|
222
|
+
margin-left: auto;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
.editor figure.rte-image[data-align='justify'],
|
|
226
|
+
nile-rte-preview figure.rte-image[data-align='justify'] {
|
|
227
|
+
width: 100%;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
.editor figure.rte-image[data-align='justify'] img,
|
|
231
|
+
nile-rte-preview figure.rte-image[data-align='justify'] img {
|
|
232
|
+
width: 100%;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
.editor figure.rte-image img,
|
|
236
|
+
nile-rte-preview figure.rte-image img {
|
|
237
|
+
max-width: 100%;
|
|
238
|
+
height: auto;
|
|
239
|
+
display: block;
|
|
240
|
+
border-radius: var(--nile-radius-radius-lg, var(--ng-radius-md));
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
.editor figure.rte-image figcaption,
|
|
244
|
+
nile-rte-preview figure.rte-image figcaption {
|
|
245
|
+
margin-top: 6px;
|
|
246
|
+
font-size: 0.875em;
|
|
247
|
+
color: var(--nile-colors-neutral-600, var(--ng-colors-text-secondary));
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
.editor figure.rte-image {
|
|
251
|
+
cursor: pointer;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
.editor figure.rte-image:hover img {
|
|
255
|
+
outline: 2px solid var(--nile-colors-primary-400, var(--ng-componentcolors-utility-blue-400));
|
|
256
|
+
outline-offset: 2px;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
nile-rte-image nile-button.rte-image-button[data-active]::part(base) {
|
|
260
|
+
background-color: var(--nile-colors-primary-400, var(--ng-componentcolors-utility-blue-400));
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
nile-rte-image nile-button.rte-image-button[data-active]::part(base):hover {
|
|
264
|
+
background-color: var(--nile-colors-primary-500, var(--ng-componentcolors-utility-blue-500));
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
nile-rich-text-editor[disabled] .editor figure.rte-image {
|
|
268
|
+
cursor: not-allowed;
|
|
269
|
+
pointer-events: none;
|
|
270
|
+
}
|
|
271
|
+
|
|
202
272
|
.editor.empty::before {
|
|
203
273
|
content: attr(data-placeholder);
|
|
204
274
|
color: var(--nile-colors-neutral-500, var(--ng-colors-text-secondary));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-rich-text-editor.css.js","sourceRoot":"","sources":["../../../src/nile-rich-text-editor/nile-rich-text-editor.css.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"nile-rich-text-editor.css.js","sourceRoot":"","sources":["../../../src/nile-rich-text-editor/nile-rich-text-editor.css.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+RxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":[" \nimport { css } from 'lit';\n\nexport const styles = css`\n .editor { all: revert;\n }\n .rte-container .editor.safari {\n -webkit-user-modify: read-write;\n }\n\n nile-rich-text-editor {\n position: relative;\n display: block;\n font-family: inherit;\n }\n\n\n .rte-container {\n width: 100%;\n border: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n border-radius: var(--nile-radius-radius-xl, var(--ng-radius-md));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n box-sizing: border-box;\n }\n\n \n .rte-container nile-rte-toolbar {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px;\n border-bottom: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border-radius: 8px 8px 0 0;\n width: 100%; \n box-sizing: border-box; \n}\n\n .rte-container .editor {\n min-height: 160px;\n width: 100%;\n padding: 12px;\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border-radius: 0 0 8px 8px;\n outline: none;\n tab-size: 4;\n -moz-tab-size: 4;\n word-break: break-word;\n box-sizing: border-box;\n border-radius: var(--nile-radius-radius-xl, var(--ng-radius-md));\n }\n\n nile-rich-text-editor[disabled] .rte-container {\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n cursor: not-allowed !important;\n background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n }\n\n nile-rich-text-editor[disabled] .rte-container nile-rte-toolbar {\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n cursor: not-allowed !important;\n } \n\n nile-rich-text-editor[disabled] .rte-container .editor {\n background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n pointer-events: none;\n user-select: none;\n -webkit-user-select: none;\n -webkit-user-modify: read-only;\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n }\n\nnile-rte-preview {\n display: block;\n width: 100%;\n margin-top: 16px; \n padding: 12px;\n border: 1px dashed var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n border-radius: var(--nile-radius-radius-xl, var(--ng-radius-md));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n box-sizing: border-box;\n word-wrap: break-word;\n}\n\n nile-rich-text-editor[disabled] nile-rte-preview {\n background: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n cursor: not-allowed ;\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n user-select: none;\n -webkit-user-select: none;\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n}\n\n nile-rte-toolbar-item nile-button::part(base) {\n width: 32px;\n height: 32px;\n padding: 0px 6px;\n border: none;\n }\n\n nile-rte-toolbar-item > button,\n nile-rte-toolbar button {\n border: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border-radius: var(--nile-radius-radius-lg, var(--ng-radius-md));\n cursor: pointer;\n }\n\n nile-rte-toolbar-item > button nile-icon { pointer-events: none; }\n\n nile-rte-toolbar-item > button.active {\n border-color: #2563eb;\n background: var(--nile-colors-white-base);\n }\n\n .editor p { margin: 1em 0; }\n .editor h1, .preview h1 {\n font-size: 2em;\n margin: 0.67em 0;\n font-weight: bold;\n }\n .editor h2, .preview h2 {\n font-size: 1.5em;\n margin: 0.83em 0;\n font-weight: bold;\n }\n .editor h3 { font-size: 1.17em; }\n .editor h4 { font-size: 1em; }\n .editor h5 { font-size: 0.83em; }\n .editor h6 { font-size: 0.67em; }\n\n\n .editor.single-line {\n min-height: 50px;\n max-height: 50px;\n line-height: 1.2;\n overflow-x: auto;\n white-space: nowrap;\n padding: 0px 12px 0px 12px;\n scrollbar-width: none;\n -ms-overflow-style: none;\n }\n nile-rte-preview.single-line {\n min-height: 50px;\n max-height: 50px;\n line-height: 1.2;\n padding: 0px 12px 0px 12px;\n overflow-x: auto;\n white-space: nowrap;\n scrollbar-width: none;\n -ms-overflow-style: none;\n }\n nile-rte-divider { \n margin: 0 4px;\n display: inline-block;\n height: 24px;\n width: 1px;\n background: var(--nile-colors-neutral-400, var(--ng-colors-border-neutral));\n }\n \n .editor ul,\n .editor ol {\n list-style-position: outside;\n padding-inline-start: 24px;\n }\n\n\n \n \n\n nile-rte-toolbar-item nile-button[data-active]::part(base) {\n background-color: var(--nile-colors-primary-400, var(--ng-componentcolors-utility-blue-400));\n}\n\nnile-rte-toolbar-item nile-button[data-active]::part(base):hover {\n background-color: var(--nile-colors-primary-500, var(--ng-componentcolors-utility-blue-500)); \n}\n\nnile-rte-link nile-button[data-active]::part(base) {\n background-color: var(--nile-colors-primary-400, var(--ng-componentcolors-utility-blue-400));\n}\n\nnile-rte-link nile-button[data-active]::part(base):hover {\n background-color: var(--nile-colors-primary-500, var(--ng-componentcolors-utility-blue-500));\n}\n\n.editor a {\n color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-tertiary-600));\n cursor: pointer;\n text-decoration: none;\n}\n\n.editor a:hover {\n text-decoration: none;\n}\n\nnile-rich-text-editor[disabled] .editor a {\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.editor figure.rte-image,\nnile-rte-preview figure.rte-image {\n margin: 1em 0;\n width: fit-content;\n max-width: 100%;\n}\n\n.editor > figure.rte-image:first-child,\nnile-rte-preview > figure.rte-image:first-child {\n margin-top: 0;\n}\n\n.editor figure.rte-image[data-align='center'],\nnile-rte-preview figure.rte-image[data-align='center'] {\n margin-left: auto;\n margin-right: auto;\n}\n\n.editor figure.rte-image[data-align='right'],\nnile-rte-preview figure.rte-image[data-align='right'] {\n margin-left: auto;\n}\n\n.editor figure.rte-image[data-align='justify'],\nnile-rte-preview figure.rte-image[data-align='justify'] {\n width: 100%;\n}\n\n.editor figure.rte-image[data-align='justify'] img,\nnile-rte-preview figure.rte-image[data-align='justify'] img {\n width: 100%;\n}\n\n.editor figure.rte-image img,\nnile-rte-preview figure.rte-image img {\n max-width: 100%;\n height: auto;\n display: block;\n border-radius: var(--nile-radius-radius-lg, var(--ng-radius-md));\n}\n\n.editor figure.rte-image figcaption,\nnile-rte-preview figure.rte-image figcaption {\n margin-top: 6px;\n font-size: 0.875em;\n color: var(--nile-colors-neutral-600, var(--ng-colors-text-secondary));\n}\n\n.editor figure.rte-image {\n cursor: pointer;\n}\n\n.editor figure.rte-image:hover img {\n outline: 2px solid var(--nile-colors-primary-400, var(--ng-componentcolors-utility-blue-400));\n outline-offset: 2px;\n}\n\nnile-rte-image nile-button.rte-image-button[data-active]::part(base) {\n background-color: var(--nile-colors-primary-400, var(--ng-componentcolors-utility-blue-400));\n}\n\nnile-rte-image nile-button.rte-image-button[data-active]::part(base):hover {\n background-color: var(--nile-colors-primary-500, var(--ng-componentcolors-utility-blue-500));\n}\n\nnile-rich-text-editor[disabled] .editor figure.rte-image {\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.editor.empty::before {\n content: attr(data-placeholder);\n color: var(--nile-colors-neutral-500, var(--ng-colors-text-secondary));\n position: absolute;\n font-family: var(--nile-font-family-sans-serif, var(--ng-font-family-body));\n pointer-events: none;\n user-select: none;\n padding-top: 16px;\n opacity: 0.7;\n}\n\n\n\n \n\n\n\n`;\n\nexport default [styles];\n"]}
|
|
@@ -7,6 +7,7 @@ import './nile-rte-divider';
|
|
|
7
7
|
import './nile-rte-preview';
|
|
8
8
|
import './nile-rte-mentions';
|
|
9
9
|
import './nile-rte-link';
|
|
10
|
+
import './nile-rte-image';
|
|
10
11
|
type MentionsConfig = Record<string, {
|
|
11
12
|
key: string;
|
|
12
13
|
label: string;
|
|
@@ -34,6 +35,7 @@ export declare class NileRichTextEditor extends LitElement {
|
|
|
34
35
|
private bgSwatchEl;
|
|
35
36
|
private containerEl;
|
|
36
37
|
private linkEl;
|
|
38
|
+
private imageEl;
|
|
37
39
|
private mentionsEl;
|
|
38
40
|
private injectCss;
|
|
39
41
|
connectedCallback(): void;
|
|
@@ -54,6 +56,7 @@ export declare class NileRichTextEditor extends LitElement {
|
|
|
54
56
|
private wireEditor;
|
|
55
57
|
private unwireEditor;
|
|
56
58
|
private onEditorKeydown;
|
|
59
|
+
private handleFigureDeletion;
|
|
57
60
|
private wireAuthoredToolbar;
|
|
58
61
|
private onSelectionChange;
|
|
59
62
|
private saveSelection;
|
|
@@ -9,6 +9,7 @@ import './nile-rte-divider';
|
|
|
9
9
|
import './nile-rte-preview';
|
|
10
10
|
import './nile-rte-mentions';
|
|
11
11
|
import './nile-rte-link';
|
|
12
|
+
import './nile-rte-image';
|
|
12
13
|
import { closestBlock, nearestElement, rgbToHex, toggleInlineTag, setBlockTag, setAlignment, setFontFamily, setForeColor, setBackColor, toggleList, } from './utils/index';
|
|
13
14
|
import { styles } from './nile-rich-text-editor.css';
|
|
14
15
|
const DEFAULT_ICONS = {
|
|
@@ -63,6 +64,7 @@ let NileRichTextEditor = class NileRichTextEditor extends LitElement {
|
|
|
63
64
|
this.bgSwatchEl = null;
|
|
64
65
|
this.containerEl = null;
|
|
65
66
|
this.linkEl = null;
|
|
67
|
+
this.imageEl = null;
|
|
66
68
|
this.mentionsEl = null;
|
|
67
69
|
this.onEditorClick = (e) => {
|
|
68
70
|
if (this.disabled) {
|
|
@@ -121,6 +123,10 @@ let NileRichTextEditor = class NileRichTextEditor extends LitElement {
|
|
|
121
123
|
this.updateContent();
|
|
122
124
|
this.updateToolbarState();
|
|
123
125
|
}
|
|
126
|
+
if ((e.key === 'Backspace' || e.key === 'Delete') &&
|
|
127
|
+
this.handleFigureDeletion(e)) {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
124
130
|
if (this.singleLineEditor && e.key === 'Enter') {
|
|
125
131
|
e.preventDefault();
|
|
126
132
|
return;
|
|
@@ -290,6 +296,9 @@ let NileRichTextEditor = class NileRichTextEditor extends LitElement {
|
|
|
290
296
|
if (this.linkEl) {
|
|
291
297
|
this.linkEl.disabled = this.disabled;
|
|
292
298
|
}
|
|
299
|
+
if (this.imageEl) {
|
|
300
|
+
this.imageEl.disabled = this.disabled;
|
|
301
|
+
}
|
|
293
302
|
}
|
|
294
303
|
if (changed.has('placeholder') && this.editorEl) {
|
|
295
304
|
if (this.placeholder) {
|
|
@@ -374,6 +383,57 @@ let NileRichTextEditor = class NileRichTextEditor extends LitElement {
|
|
|
374
383
|
this.editorEl.removeEventListener('paste', this.onEditorPaste);
|
|
375
384
|
this.editorEl.removeEventListener('drop', this.onEditorDrop);
|
|
376
385
|
}
|
|
386
|
+
handleFigureDeletion(e) {
|
|
387
|
+
const sel = window.getSelection();
|
|
388
|
+
if (!sel || sel.rangeCount === 0)
|
|
389
|
+
return false;
|
|
390
|
+
const range = sel.getRangeAt(0);
|
|
391
|
+
if (!this.editorEl.contains(range.commonAncestorContainer))
|
|
392
|
+
return false;
|
|
393
|
+
if (!range.collapsed) {
|
|
394
|
+
const figures = Array.from(this.editorEl.querySelectorAll('figure.rte-image'));
|
|
395
|
+
const touched = figures.filter(f => range.intersectsNode(f));
|
|
396
|
+
if (!touched.length)
|
|
397
|
+
return false;
|
|
398
|
+
e.preventDefault();
|
|
399
|
+
range.deleteContents();
|
|
400
|
+
touched.forEach(f => f.isConnected && f.remove());
|
|
401
|
+
this.ensureAtLeastOneParagraph();
|
|
402
|
+
this.updateContent();
|
|
403
|
+
this.updateToolbarState();
|
|
404
|
+
return true;
|
|
405
|
+
}
|
|
406
|
+
const block = closestBlock(range.startContainer, this.editorEl) || this.editorEl;
|
|
407
|
+
if (e.key === 'Backspace') {
|
|
408
|
+
const before = document.createRange();
|
|
409
|
+
before.setStart(block, 0);
|
|
410
|
+
before.setEnd(range.startContainer, range.startOffset);
|
|
411
|
+
const atStart = before.toString().replace(/\u200B/g, '') === '';
|
|
412
|
+
const prev = block.previousElementSibling;
|
|
413
|
+
if (atStart && prev?.matches?.('figure.rte-image')) {
|
|
414
|
+
e.preventDefault();
|
|
415
|
+
prev.remove();
|
|
416
|
+
this.updateContent();
|
|
417
|
+
this.updateToolbarState();
|
|
418
|
+
return true;
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
else {
|
|
422
|
+
const after = document.createRange();
|
|
423
|
+
after.setStart(range.endContainer, range.endOffset);
|
|
424
|
+
after.setEnd(block, block.childNodes.length);
|
|
425
|
+
const atEnd = after.toString().replace(/\u200B/g, '') === '';
|
|
426
|
+
const next = block.nextElementSibling;
|
|
427
|
+
if (atEnd && next?.matches?.('figure.rte-image')) {
|
|
428
|
+
e.preventDefault();
|
|
429
|
+
next.remove();
|
|
430
|
+
this.updateContent();
|
|
431
|
+
this.updateToolbarState();
|
|
432
|
+
return true;
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
return false;
|
|
436
|
+
}
|
|
377
437
|
wireAuthoredToolbar(tb) {
|
|
378
438
|
this.buttonMap.clear();
|
|
379
439
|
this.headingSelect = null;
|
|
@@ -402,6 +462,16 @@ let NileRichTextEditor = class NileRichTextEditor extends LitElement {
|
|
|
402
462
|
});
|
|
403
463
|
return;
|
|
404
464
|
}
|
|
465
|
+
if (tag === 'nile-rte-image') {
|
|
466
|
+
child.editorEl = this.editorEl;
|
|
467
|
+
child.disabled = this.disabled;
|
|
468
|
+
this.imageEl = child;
|
|
469
|
+
child.addEventListener('nile-image-changed', () => {
|
|
470
|
+
this.updateContent();
|
|
471
|
+
this.updateToolbarState();
|
|
472
|
+
});
|
|
473
|
+
return;
|
|
474
|
+
}
|
|
405
475
|
if (tag === 'nile-rte-toolbar-item') {
|
|
406
476
|
let btn = child.querySelector(':scope > nile-button');
|
|
407
477
|
const cmd = child.getAttribute('name') || '';
|
|
@@ -545,7 +615,8 @@ let NileRichTextEditor = class NileRichTextEditor extends LitElement {
|
|
|
545
615
|
const el = this.editorEl;
|
|
546
616
|
if (!el)
|
|
547
617
|
return;
|
|
548
|
-
const onlyWhitespace = (el.textContent ?? '').replace(/\u200B/g, '').trim() === ''
|
|
618
|
+
const onlyWhitespace = (el.textContent ?? '').replace(/\u200B/g, '').trim() === '' &&
|
|
619
|
+
!el.querySelector('img');
|
|
549
620
|
if (el.childNodes.length === 0 || onlyWhitespace) {
|
|
550
621
|
el.innerHTML = '<p><br></p>';
|
|
551
622
|
const p = el.querySelector('p');
|
|
@@ -561,7 +632,7 @@ let NileRichTextEditor = class NileRichTextEditor extends LitElement {
|
|
|
561
632
|
}
|
|
562
633
|
return;
|
|
563
634
|
}
|
|
564
|
-
const hasBlock = el.querySelector('p,h1,h2,h3,h4,h5,h6,ul,ol,table,blockquote,pre');
|
|
635
|
+
const hasBlock = el.querySelector('p,h1,h2,h3,h4,h5,h6,ul,ol,table,blockquote,pre,figure');
|
|
565
636
|
if (!hasBlock) {
|
|
566
637
|
const p = document.createElement('p');
|
|
567
638
|
while (el.firstChild)
|
|
@@ -720,6 +791,12 @@ let NileRichTextEditor = class NileRichTextEditor extends LitElement {
|
|
|
720
791
|
if (linkBtn)
|
|
721
792
|
linkBtn.toggleAttribute('data-active', inLink);
|
|
722
793
|
}
|
|
794
|
+
if (this.imageEl) {
|
|
795
|
+
const inImage = !!startElm.closest('figure.rte-image');
|
|
796
|
+
const imageBtn = this.imageEl.querySelector('nile-button');
|
|
797
|
+
if (imageBtn)
|
|
798
|
+
imageBtn.toggleAttribute('data-active', inImage);
|
|
799
|
+
}
|
|
723
800
|
this.setBtnActive('left', alignNorm === 'left' &&
|
|
724
801
|
!['center', 'right', 'justify'].includes(alignNorm));
|
|
725
802
|
this.setBtnActive('center', alignNorm === 'center');
|
|
@@ -783,7 +860,8 @@ let NileRichTextEditor = class NileRichTextEditor extends LitElement {
|
|
|
783
860
|
if (!this.editorEl)
|
|
784
861
|
return;
|
|
785
862
|
this.ensureAtLeastOneParagraph();
|
|
786
|
-
const isEmpty = (this.editorEl.textContent ?? '').trim() === ''
|
|
863
|
+
const isEmpty = (this.editorEl.textContent ?? '').trim() === '' &&
|
|
864
|
+
!this.editorEl.querySelector('img');
|
|
787
865
|
this.editorEl.classList.toggle('empty', isEmpty);
|
|
788
866
|
const sel = window.getSelection();
|
|
789
867
|
const caretRange = sel && sel.rangeCount > 0 && this.editorEl.contains(sel.getRangeAt(0).startContainer)
|