@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.
Files changed (198) hide show
  1. package/README.md +13 -0
  2. package/dist/index-5fef1a0d.esm.js +1 -0
  3. package/dist/index-8f38fae3.cjs.js +2 -0
  4. package/dist/index-8f38fae3.cjs.js.map +1 -0
  5. package/dist/index.cjs.js +1 -1
  6. package/dist/index.esm.js +1 -1
  7. package/dist/index.js +1527 -804
  8. package/dist/nile-chip/nile-chip.css.cjs.js +1 -1
  9. package/dist/nile-chip/nile-chip.css.cjs.js.map +1 -1
  10. package/dist/nile-chip/nile-chip.css.esm.js +8 -1
  11. package/dist/nile-code-editor/nile-code-editor.cjs.js +1 -1
  12. package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
  13. package/dist/nile-code-editor/nile-code-editor.esm.js +3 -3
  14. package/dist/nile-combobox/index.cjs.js +1 -1
  15. package/dist/nile-combobox/index.esm.js +1 -1
  16. package/dist/nile-combobox/nile-combobox.cjs.js +1 -1
  17. package/dist/nile-combobox/nile-combobox.esm.js +1 -1
  18. package/dist/nile-command-menu/index.cjs.js +2 -0
  19. package/dist/nile-command-menu/index.cjs.js.map +1 -0
  20. package/dist/nile-command-menu/index.esm.js +1 -0
  21. package/dist/nile-command-menu/nile-command-menu.cjs.js +2 -0
  22. package/dist/nile-command-menu/nile-command-menu.cjs.js.map +1 -0
  23. package/dist/nile-command-menu/nile-command-menu.css.cjs.js +2 -0
  24. package/dist/nile-command-menu/nile-command-menu.css.cjs.js.map +1 -0
  25. package/dist/nile-command-menu/nile-command-menu.css.esm.js +182 -0
  26. package/dist/nile-command-menu/nile-command-menu.esm.js +97 -0
  27. package/dist/nile-command-menu-group/index.cjs.js +2 -0
  28. package/dist/nile-command-menu-group/index.cjs.js.map +1 -0
  29. package/dist/nile-command-menu-group/index.esm.js +1 -0
  30. package/dist/nile-command-menu-group/nile-command-menu-group.cjs.js +2 -0
  31. package/dist/nile-command-menu-group/nile-command-menu-group.cjs.js.map +1 -0
  32. package/dist/nile-command-menu-group/nile-command-menu-group.css.cjs.js +2 -0
  33. package/dist/nile-command-menu-group/nile-command-menu-group.css.cjs.js.map +1 -0
  34. package/dist/nile-command-menu-group/nile-command-menu-group.css.esm.js +33 -0
  35. package/dist/nile-command-menu-group/nile-command-menu-group.esm.js +11 -0
  36. package/dist/nile-command-menu-item/index.cjs.js +2 -0
  37. package/dist/nile-command-menu-item/index.cjs.js.map +1 -0
  38. package/dist/nile-command-menu-item/index.esm.js +1 -0
  39. package/dist/nile-command-menu-item/nile-command-menu-item.cjs.js +2 -0
  40. package/dist/nile-command-menu-item/nile-command-menu-item.cjs.js.map +1 -0
  41. package/dist/nile-command-menu-item/nile-command-menu-item.css.cjs.js +2 -0
  42. package/dist/nile-command-menu-item/nile-command-menu-item.css.cjs.js.map +1 -0
  43. package/dist/nile-command-menu-item/nile-command-menu-item.css.esm.js +115 -0
  44. package/dist/nile-command-menu-item/nile-command-menu-item.esm.js +21 -0
  45. package/dist/nile-detail/index.cjs.js +1 -1
  46. package/dist/nile-detail/index.esm.js +1 -1
  47. package/dist/nile-detail/nile-detail.cjs.js +1 -1
  48. package/dist/nile-detail/nile-detail.esm.js +1 -1
  49. package/dist/nile-dialog/nile-dialog.cjs.js +1 -1
  50. package/dist/nile-dialog/nile-dialog.cjs.js.map +1 -1
  51. package/dist/nile-dialog/nile-dialog.esm.js +1 -1
  52. package/dist/nile-dot-stepper/index.cjs.js +2 -0
  53. package/dist/nile-dot-stepper/index.cjs.js.map +1 -0
  54. package/dist/nile-dot-stepper/index.esm.js +1 -0
  55. package/dist/nile-dot-stepper/nile-dot-stepper.cjs.js +2 -0
  56. package/dist/nile-dot-stepper/nile-dot-stepper.cjs.js.map +1 -0
  57. package/dist/nile-dot-stepper/nile-dot-stepper.css.cjs.js +2 -0
  58. package/dist/nile-dot-stepper/nile-dot-stepper.css.cjs.js.map +1 -0
  59. package/dist/nile-dot-stepper/nile-dot-stepper.css.esm.js +77 -0
  60. package/dist/nile-dot-stepper/nile-dot-stepper.esm.js +24 -0
  61. package/dist/nile-hero/nile-hero.cjs.js +1 -1
  62. package/dist/nile-hero/nile-hero.cjs.js.map +1 -1
  63. package/dist/nile-hero/nile-hero.css.cjs.js +1 -1
  64. package/dist/nile-hero/nile-hero.css.cjs.js.map +1 -1
  65. package/dist/nile-hero/nile-hero.css.esm.js +14 -14
  66. package/dist/nile-hero/nile-hero.esm.js +1 -1
  67. package/dist/nile-hero-header/nile-hero-header.cjs.js +1 -1
  68. package/dist/nile-hero-header/nile-hero-header.cjs.js.map +1 -1
  69. package/dist/nile-hero-header/nile-hero-header.css.cjs.js +1 -1
  70. package/dist/nile-hero-header/nile-hero-header.css.cjs.js.map +1 -1
  71. package/dist/nile-hero-header/nile-hero-header.css.esm.js +11 -11
  72. package/dist/nile-hero-header/nile-hero-header.esm.js +3 -3
  73. package/dist/nile-rich-text-editor/index.cjs.js +1 -1
  74. package/dist/nile-rich-text-editor/index.esm.js +1 -1
  75. package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js +1 -1
  76. package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js.map +1 -1
  77. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js +1 -1
  78. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js.map +1 -1
  79. package/dist/nile-rich-text-editor/nile-rich-text-editor.css.esm.js +70 -0
  80. package/dist/nile-rich-text-editor/nile-rich-text-editor.esm.js +1 -1
  81. package/dist/nile-rich-text-editor/nile-rte-image.cjs.js +3 -0
  82. package/dist/nile-rich-text-editor/nile-rte-image.cjs.js.map +1 -0
  83. package/dist/nile-rich-text-editor/nile-rte-image.esm.js +96 -0
  84. package/dist/nile-section-message/nile-section-message.css.cjs.js +1 -1
  85. package/dist/nile-section-message/nile-section-message.css.cjs.js.map +1 -1
  86. package/dist/nile-section-message/nile-section-message.css.esm.js +7 -8
  87. package/dist/src/index.d.ts +4 -0
  88. package/dist/src/index.js +4 -0
  89. package/dist/src/index.js.map +1 -1
  90. package/dist/src/nile-chip/nile-chip.css.js +8 -1
  91. package/dist/src/nile-chip/nile-chip.css.js.map +1 -1
  92. package/dist/src/nile-code-editor/nile-code-editor.js +3 -3
  93. package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
  94. package/dist/src/nile-command-menu/index.d.ts +1 -0
  95. package/dist/src/nile-command-menu/index.js +2 -0
  96. package/dist/src/nile-command-menu/index.js.map +1 -0
  97. package/dist/src/nile-command-menu/nile-command-menu.css.d.ts +12 -0
  98. package/dist/src/nile-command-menu/nile-command-menu.css.js +194 -0
  99. package/dist/src/nile-command-menu/nile-command-menu.css.js.map +1 -0
  100. package/dist/src/nile-command-menu/nile-command-menu.d.ts +137 -0
  101. package/dist/src/nile-command-menu/nile-command-menu.js +557 -0
  102. package/dist/src/nile-command-menu/nile-command-menu.js.map +1 -0
  103. package/dist/src/nile-command-menu/nile-command-menu.test.d.ts +3 -0
  104. package/dist/src/nile-command-menu/nile-command-menu.test.js +268 -0
  105. package/dist/src/nile-command-menu/nile-command-menu.test.js.map +1 -0
  106. package/dist/src/nile-command-menu-group/index.d.ts +1 -0
  107. package/dist/src/nile-command-menu-group/index.js +2 -0
  108. package/dist/src/nile-command-menu-group/index.js.map +1 -0
  109. package/dist/src/nile-command-menu-group/nile-command-menu-group.css.d.ts +12 -0
  110. package/dist/src/nile-command-menu-group/nile-command-menu-group.css.js +45 -0
  111. package/dist/src/nile-command-menu-group/nile-command-menu-group.css.js.map +1 -0
  112. package/dist/src/nile-command-menu-group/nile-command-menu-group.d.ts +38 -0
  113. package/dist/src/nile-command-menu-group/nile-command-menu-group.js +68 -0
  114. package/dist/src/nile-command-menu-group/nile-command-menu-group.js.map +1 -0
  115. package/dist/src/nile-command-menu-group/nile-command-menu-group.test.d.ts +2 -0
  116. package/dist/src/nile-command-menu-group/nile-command-menu-group.test.js +22 -0
  117. package/dist/src/nile-command-menu-group/nile-command-menu-group.test.js.map +1 -0
  118. package/dist/src/nile-command-menu-item/index.d.ts +1 -0
  119. package/dist/src/nile-command-menu-item/index.js +2 -0
  120. package/dist/src/nile-command-menu-item/index.js.map +1 -0
  121. package/dist/src/nile-command-menu-item/nile-command-menu-item.css.d.ts +12 -0
  122. package/dist/src/nile-command-menu-item/nile-command-menu-item.css.js +127 -0
  123. package/dist/src/nile-command-menu-item/nile-command-menu-item.css.js.map +1 -0
  124. package/dist/src/nile-command-menu-item/nile-command-menu-item.d.ts +73 -0
  125. package/dist/src/nile-command-menu-item/nile-command-menu-item.js +174 -0
  126. package/dist/src/nile-command-menu-item/nile-command-menu-item.js.map +1 -0
  127. package/dist/src/nile-command-menu-item/nile-command-menu-item.test.d.ts +1 -0
  128. package/dist/src/nile-command-menu-item/nile-command-menu-item.test.js +35 -0
  129. package/dist/src/nile-command-menu-item/nile-command-menu-item.test.js.map +1 -0
  130. package/dist/src/nile-dialog/nile-dialog.js +1 -1
  131. package/dist/src/nile-dialog/nile-dialog.js.map +1 -1
  132. package/dist/src/nile-dot-stepper/index.d.ts +1 -0
  133. package/dist/src/nile-dot-stepper/index.js +2 -0
  134. package/dist/src/nile-dot-stepper/index.js.map +1 -0
  135. package/dist/src/nile-dot-stepper/nile-dot-stepper.css.d.ts +12 -0
  136. package/dist/src/nile-dot-stepper/nile-dot-stepper.css.js +89 -0
  137. package/dist/src/nile-dot-stepper/nile-dot-stepper.css.js.map +1 -0
  138. package/dist/src/nile-dot-stepper/nile-dot-stepper.d.ts +48 -0
  139. package/dist/src/nile-dot-stepper/nile-dot-stepper.js +153 -0
  140. package/dist/src/nile-dot-stepper/nile-dot-stepper.js.map +1 -0
  141. package/dist/src/nile-dot-stepper/nile-dot-stepper.test.d.ts +1 -0
  142. package/dist/src/nile-dot-stepper/nile-dot-stepper.test.js +319 -0
  143. package/dist/src/nile-dot-stepper/nile-dot-stepper.test.js.map +1 -0
  144. package/dist/src/nile-hero/nile-hero.css.js +12 -12
  145. package/dist/src/nile-hero/nile-hero.css.js.map +1 -1
  146. package/dist/src/nile-hero/nile-hero.js +1 -1
  147. package/dist/src/nile-hero/nile-hero.js.map +1 -1
  148. package/dist/src/nile-hero-header/nile-hero-header.css.js +9 -9
  149. package/dist/src/nile-hero-header/nile-hero-header.css.js.map +1 -1
  150. package/dist/src/nile-hero-header/nile-hero-header.js +1 -1
  151. package/dist/src/nile-hero-header/nile-hero-header.js.map +1 -1
  152. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js +70 -0
  153. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js.map +1 -1
  154. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.d.ts +3 -0
  155. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js +81 -3
  156. package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js.map +1 -1
  157. package/dist/src/nile-rich-text-editor/nile-rte-image.d.ts +87 -0
  158. package/dist/src/nile-rich-text-editor/nile-rte-image.js +1073 -0
  159. package/dist/src/nile-rich-text-editor/nile-rte-image.js.map +1 -0
  160. package/dist/src/nile-section-message/nile-section-message.css.js +7 -8
  161. package/dist/src/nile-section-message/nile-section-message.css.js.map +1 -1
  162. package/dist/src/version.js +1 -1
  163. package/dist/src/version.js.map +1 -1
  164. package/dist/tsconfig.tsbuildinfo +1 -1
  165. package/package.json +2 -1
  166. package/src/index.ts +4 -0
  167. package/src/nile-chip/nile-chip.css.ts +8 -1
  168. package/src/nile-code-editor/nile-code-editor.ts +3 -3
  169. package/src/nile-command-menu/index.ts +1 -0
  170. package/src/nile-command-menu/nile-command-menu.css.ts +196 -0
  171. package/src/nile-command-menu/nile-command-menu.test.ts +289 -0
  172. package/src/nile-command-menu/nile-command-menu.ts +601 -0
  173. package/src/nile-command-menu-group/index.ts +1 -0
  174. package/src/nile-command-menu-group/nile-command-menu-group.css.ts +47 -0
  175. package/src/nile-command-menu-group/nile-command-menu-group.test.ts +23 -0
  176. package/src/nile-command-menu-group/nile-command-menu-group.ts +72 -0
  177. package/src/nile-command-menu-item/index.ts +1 -0
  178. package/src/nile-command-menu-item/nile-command-menu-item.css.ts +129 -0
  179. package/src/nile-command-menu-item/nile-command-menu-item.test.ts +36 -0
  180. package/src/nile-command-menu-item/nile-command-menu-item.ts +172 -0
  181. package/src/nile-dialog/nile-dialog.ts +1 -1
  182. package/src/nile-dot-stepper/index.ts +1 -0
  183. package/src/nile-dot-stepper/nile-dot-stepper.css.ts +90 -0
  184. package/src/nile-dot-stepper/nile-dot-stepper.test.ts +493 -0
  185. package/src/nile-dot-stepper/nile-dot-stepper.ts +159 -0
  186. package/src/nile-hero/nile-hero.css.ts +12 -12
  187. package/src/nile-hero/nile-hero.ts +1 -1
  188. package/src/nile-hero-header/nile-hero-header.css.ts +9 -9
  189. package/src/nile-hero-header/nile-hero-header.ts +1 -1
  190. package/src/nile-rich-text-editor/nile-rich-text-editor.css.ts +70 -0
  191. package/src/nile-rich-text-editor/nile-rich-text-editor.ts +89 -3
  192. package/src/nile-rich-text-editor/nile-rte-image.ts +1132 -0
  193. package/src/nile-section-message/nile-section-message.css.ts +7 -8
  194. package/stories/dot-stepper.stories.ts +67 -0
  195. package/vscode-html-custom-data.json +220 -1
  196. package/dist/index-c0b5232c.cjs.js +0 -2
  197. package/dist/index-c0b5232c.cjs.js.map +0 -1
  198. 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-stroke))" name="${this.icon}"></nile-icon>
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;;;sGAG8B,IAAI,CAAC,IAAI;;;;;uDAKxD,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-stroke))\" 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}"]}
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-stroke))" size="16" name="${this.icon}"></nile-icon>
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;;sGAEyF,IAAI,CAAC,IAAI;;+BAEhF,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-stroke))\" 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}"]}
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyNxB,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.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"]}
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)