@aquera/nile-elements 2.0.14 → 2.0.15

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.
@@ -1 +1 @@
1
- {"version":3,"file":"nile-badge.js","sourceRoot":"","sources":["../../../src/nile-badge/nile-badge.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n LitElement,\n html,\n CSSResultArray,\n TemplateResult,\n} from 'lit';\nimport { styles } from './nile-badge.css';\nimport '../nile-icon-button/nile-icon-button';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { customElement, property } from 'lit/decorators.js';\nimport NileElement, { setupA11yMetadata } from '../internal/nile-element';\nimport type { CSSResultGroup } from 'lit';\nimport { A11yProperty } from '../internal/accessibility/a11y.property.enum';\nimport { A11yRole } from '../internal/accessibility/a11y.role.enum';\nimport { Role } from '../internal/accessibility/role.enum';\nimport { A11yCustomValue } from '../internal/accessibility/a11y.custom-value.enum';\n/**\n * Nile icon component.\n *\n * @tag nile-badge\n *\n */\n\n/**\n * @summary badges are used as labels to organize things or to indicate a selection.\n * @status stable\n *\n * @dependency nile-icon-button\n *\n * @slot - The badge's content.\n *\n * @event nile-remove - Emitted when the remove button is activated.\n *\n * @csspart base - The component's base wrapper.\n * @csspart content - The badge's content.\n * @csspart remove-button - The badge's remove button, an `<nile-icon-button>`.\n * @csspart remove-button__base - The remove button's exported `base` part.\n */\n\n@customElement('nile-badge')\nexport class NileBadge extends NileElement {\n static styles: CSSResultGroup = styles;\n\n connectedCallback(): void {\n super.connectedCallback();\n setupA11yMetadata(this, {\n [Role.Role]: A11yRole.Text,\n [A11yProperty.AriaLabel]: this.textContent?.trim() || A11yCustomValue.Badge,\n });\n }\n\n /** The badge's theme variant. */\n @property({ reflect: true }) variant:\n | 'primary'\n | 'success'\n | 'normal'\n | 'warning'\n | 'error'\n | 'info'\n | 'gray'\n | 'brand'\n | 'blue-light'\n | 'blue'\n | 'indigo'\n | 'purple'\n | 'pink'\n | 'orange'\n | 'blue-gray'\n | 'gray-blue' = 'normal';\n\n /** Draws a pill-style badge with rounded edges. */\n @property({ type: Boolean, reflect: true }) rounded = false;\n\n // For setting pill type\n @property({ reflect: true }) pilltype:\n | 'pill-color'\n | 'pill-outline'\n | 'badge-color'='badge-color';\n\n render() {\n return html`\n <span\n part=\"base\"\n class=${classMap({\n badge: true,\n 'badge--primary': this.variant === 'primary',\n 'badge--normal': this.variant === 'normal',\n 'badge--info': this.variant === 'info',\n 'badge--pink': this.variant === 'pink',\n 'badge--orange': this.variant === 'orange',\n 'badge--purple': this.variant === 'purple',\n 'badge--indigo': this.variant === 'indigo',\n 'badge--blue': this.variant === 'blue',\n 'badge--blue-light': this.variant === 'blue-light',\n 'badge--gray-blue': this.variant === 'gray-blue',\n 'badge--success': this.variant === 'success',\n 'badge--warning': this.variant === 'warning',\n 'badge--error': this.variant === 'error',\n 'badge--brand': this.variant === 'brand',\n 'badge--gray': this.variant === 'gray',\n 'badge--pill-outline': this.pilltype == 'pill-outline',\n 'badge--badge-color': this.pilltype == 'badge-color',\n 'badge--rounded':\n this.rounded ||\n this.pilltype == 'pill-outline' ||\n this.pilltype == 'pill-color',\n })}\n >\n <slot part=\"content\" class=\"badge__content\"></slot>\n </span>\n `;\n }\n}\n\nexport default NileBadge;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-badge': NileBadge;\n }\n}\n"]}
1
+ {"version":3,"file":"nile-badge.js","sourceRoot":"","sources":["../../../src/nile-badge/nile-badge.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n LitElement,\n html,\n CSSResultArray,\n TemplateResult,\n} from 'lit';\nimport { styles } from './nile-badge.css';\nimport '../nile-icon-button/nile-icon-button';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { customElement, property } from 'lit/decorators.js';\nimport NileElement, { setupA11yMetadata } from '../internal/nile-element';\nimport type { CSSResultGroup } from 'lit';\nimport { A11yProperty } from '../internal/accessibility/a11y.property.enum';\nimport { A11yRole } from '../internal/accessibility/a11y.role.enum';\nimport { Role } from '../internal/accessibility/role.enum';\nimport { A11yCustomValue } from '../internal/accessibility/a11y.custom-value.enum';\n/**\n * Nile icon component.\n *\n * @tag nile-badge\n *\n */\n\n/**\n * @summary badges are used as labels to organize things or to indicate a selection.\n * @status stable\n *\n * @dependency nile-icon-button\n *\n * @slot - The badge's content.\n *\n * @event nile-remove - Emitted when the remove button is activated.\n *\n * @csspart base - The component's base wrapper.\n * @csspart content - The badge's content.\n * @csspart remove-button - The badge's remove button, an `<nile-icon-button>`.\n * @csspart remove-button__base - The remove button's exported `base` part.\n */\n\n@customElement('nile-badge')\nexport class NileBadge extends NileElement {\n static styles: CSSResultGroup = styles;\n\n connectedCallback(): void {\n super.connectedCallback();\n setupA11yMetadata(this, {\n [Role.Role]: A11yRole.Text,\n [A11yProperty.AriaLabel]: this.textContent?.trim() || A11yCustomValue.Badge,\n });\n }\n\n /** The badge's theme variant. */\n @property({ reflect: true }) variant:\n | 'primary'\n | 'success'\n | 'normal'\n | 'warning'\n | 'error'\n | 'info'\n | 'gray'\n | 'brand'\n | 'blue-light'\n | 'blue'\n | 'indigo'\n | 'purple'\n | 'pink'\n | 'orange'\n | 'blue-gray'\n | 'gray-blue' = 'normal';\n\n /** Draws a pill-style badge with rounded edges. */\n @property({ type: Boolean, reflect: true }) rounded = false;\n\n // For setting pill type\n @property({ reflect: true }) pilltype:\n | 'pill-color'\n | 'pill-outline'\n | 'badge-color'='badge-color';\n\n /** The badge's size. `md` keeps the existing default dimensions. */\n @property({ reflect: true }) size: 'sm' | 'md' | 'lg' = 'md';\n\n render() {\n return html`\n <span\n part=\"base\"\n class=${classMap({\n badge: true,\n 'badge--primary': this.variant === 'primary',\n 'badge--normal': this.variant === 'normal',\n 'badge--info': this.variant === 'info',\n 'badge--pink': this.variant === 'pink',\n 'badge--orange': this.variant === 'orange',\n 'badge--purple': this.variant === 'purple',\n 'badge--indigo': this.variant === 'indigo',\n 'badge--blue': this.variant === 'blue',\n 'badge--blue-light': this.variant === 'blue-light',\n 'badge--gray-blue': this.variant === 'gray-blue',\n 'badge--success': this.variant === 'success',\n 'badge--warning': this.variant === 'warning',\n 'badge--error': this.variant === 'error',\n 'badge--brand': this.variant === 'brand',\n 'badge--gray': this.variant === 'gray',\n 'badge--pill-outline': this.pilltype == 'pill-outline',\n 'badge--badge-color': this.pilltype == 'badge-color',\n 'badge--rounded':\n this.rounded ||\n this.pilltype == 'pill-outline' ||\n this.pilltype == 'pill-color',\n 'badge--sm': this.size === 'sm',\n 'badge--md': this.size === 'md',\n 'badge--lg': this.size === 'lg',\n })}\n >\n <slot part=\"content\" class=\"badge__content\"></slot>\n </span>\n `;\n }\n}\n\nexport default NileBadge;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-badge': NileBadge;\n }\n}\n"]}
@@ -1,6 +1,7 @@
1
- import { expect, fixture, html } from '@open-wc/testing';
1
+ import { expect, fixture, html, elementUpdated } from '@open-wc/testing';
2
2
  import './nile-badge';
3
3
  import NileBadge from './nile-badge';
4
+ import { styles } from './nile-badge.css';
4
5
  describe('NileBadge', () => {
5
6
  // === RENDERING ===
6
7
  it('1. should render without errors', async () => {
@@ -557,5 +558,79 @@ describe('NileBadge', () => {
557
558
  const el = await fixture(html `<nile-badge>\u2713 Done</nile-badge>`);
558
559
  expect(el.textContent).to.contain('\u2713');
559
560
  });
561
+ // === SIZE TESTS ===
562
+ it('101. should have size default to md', async () => {
563
+ const el = await fixture(html `<nile-badge></nile-badge>`);
564
+ expect(el.size).to.equal('md');
565
+ const span = el.shadowRoot.querySelector('span');
566
+ expect(span.classList.contains('badge--md')).to.be.true;
567
+ });
568
+ it('102. should reflect size attribute', async () => {
569
+ const el = await fixture(html `<nile-badge size="lg"></nile-badge>`);
570
+ expect(el.getAttribute('size')).to.equal('lg');
571
+ });
572
+ for (const size of ['sm', 'md', 'lg']) {
573
+ it(`103. should apply only the ${size} size class`, async () => {
574
+ const el = await fixture(html `<nile-badge size=${size}>Label</nile-badge>`);
575
+ const span = el.shadowRoot.querySelector('span');
576
+ for (const other of ['sm', 'md', 'lg']) {
577
+ expect(span.classList.contains(`badge--${other}`)).to.equal(other === size);
578
+ }
579
+ });
580
+ }
581
+ it('104. should update size class when size changes', async () => {
582
+ const el = await fixture(html `<nile-badge>Label</nile-badge>`);
583
+ el.size = 'sm';
584
+ await elementUpdated(el);
585
+ const span = el.shadowRoot.querySelector('span');
586
+ expect(span.classList.contains('badge--sm')).to.be.true;
587
+ expect(span.classList.contains('badge--md')).to.be.false;
588
+ });
589
+ describe('size dimensions (nxtgen tokens)', () => {
590
+ let tokens;
591
+ before(() => {
592
+ tokens = document.createElement('style');
593
+ tokens.textContent = `:root {
594
+ --ng-height-22px: 22px; --ng-height-24px: 24px; --ng-height-28px: 28px;
595
+ --ng-spacing-xxs: 2px; --ng-spacing-xs: 4px; --ng-spacing-md: 8px;
596
+ --ng-spacing-md-alt: 10px; --ng-spacing-lg: 12px;
597
+ }`;
598
+ document.head.appendChild(tokens);
599
+ });
600
+ after(() => tokens.remove());
601
+ it('105. should render 22px, 24px and 28px tall for sm, md and lg', async () => {
602
+ const heights = [];
603
+ for (const size of ['sm', 'md', 'lg']) {
604
+ const el = await fixture(html `<nile-badge size=${size}>Label</nile-badge>`);
605
+ heights.push(el.shadowRoot.querySelector('span').getBoundingClientRect().height);
606
+ }
607
+ expect(heights).to.deep.equal([22, 24, 28]);
608
+ });
609
+ it('106. should keep size padding when rounded', async () => {
610
+ const el = await fixture(html `<nile-badge size="lg" rounded>Label</nile-badge>`);
611
+ const style = getComputedStyle(el.shadowRoot.querySelector('span'));
612
+ expect(style.paddingTop).to.equal('4px');
613
+ expect(style.paddingLeft).to.equal('12px');
614
+ });
615
+ });
616
+ describe('error / orange / warning colour tokens', () => {
617
+ const css = styles.cssText;
618
+ const rule = (selector) => css.slice(css.indexOf(`${selector} {`)).split('}')[0];
619
+ const ng = (token) => `var(--ng-componentcolors-utility-${token})`;
620
+ const cases = [
621
+ ['error', 'error-50', 'error-200', 'error-700'],
622
+ ['orange', 'orange-50', 'orange-300', 'error-600'],
623
+ ['warning', 'warning-50', 'warning-300', 'warning-700'],
624
+ ];
625
+ cases.forEach(([variant, fill, border, text], i) => {
626
+ it(`${107 + i}. should map ${variant} to ${fill} / ${border} / ${text}`, () => {
627
+ const base = rule(`.badge--${variant}`);
628
+ expect(base).to.contain(`background-${variant}, ${ng(fill)})`);
629
+ expect(base).to.contain(`border-color-${variant}, ${ng(border)})`);
630
+ expect(base).to.contain(`font-${variant}, ${ng(text)})`);
631
+ expect(rule(`.badge--${variant}.badge--pill-outline`)).to.contain(`pill-outline-${variant}, ${ng(border)})`);
632
+ });
633
+ });
634
+ });
560
635
  });
561
636
  //# sourceMappingURL=nile-badge.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nile-badge.test.js","sourceRoot":"","sources":["../../../src/nile-badge/nile-badge.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, fixture, html, elementUpdated } from '@open-wc/testing';\nimport './nile-badge';\nimport NileBadge from './nile-badge';\n\ndescribe('NileBadge', () => {\n // === RENDERING ===\n it('1. should render without errors', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n expect(el).to.exist;\n });\n\n it('2. should have a shadow root', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n expect(el.shadowRoot).to.not.be.null;\n });\n\n it('3. should render a span as base element', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span).to.exist;\n });\n\n it('4. should render slot content', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge>Badge Text</nile-badge>`);\n expect(el.textContent!.trim()).to.equal('Badge Text');\n });\n\n it('5. should render default slot', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const slot = el.shadowRoot!.querySelector('slot');\n expect(slot).to.exist;\n });\n\n // === DEFAULT PROPERTIES ===\n it('6. should have variant default to normal', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n expect(el.variant).to.equal('normal');\n });\n\n it('7. should have rounded default to false', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n expect(el.rounded).to.be.false;\n });\n\n it('8. should have pilltype default to badge-color', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n expect(el.pilltype).to.equal('badge-color');\n });\n\n // === VARIANT TESTS ===\n it('9. should apply primary variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"primary\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--primary')).to.be.true;\n });\n\n it('10. should apply success variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"success\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--success')).to.be.true;\n });\n\n it('11. should apply normal variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"normal\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--normal')).to.be.true;\n });\n\n it('12. should apply warning variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"warning\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--warning')).to.be.true;\n });\n\n it('13. should apply error variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"error\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--error')).to.be.true;\n });\n\n it('14. should apply info variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"info\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--info')).to.be.true;\n });\n\n it('15. should apply gray variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"gray\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--gray')).to.be.true;\n });\n\n it('16. should apply brand variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"brand\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--brand')).to.be.true;\n });\n\n it('17. should apply blue-light variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"blue-light\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--blue-light')).to.be.true;\n });\n\n it('18. should apply blue variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"blue\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--blue')).to.be.true;\n });\n\n it('19. should apply indigo variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"indigo\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--indigo')).to.be.true;\n });\n\n it('20. should apply purple variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"purple\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--purple')).to.be.true;\n });\n\n it('21. should apply pink variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"pink\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--pink')).to.be.true;\n });\n\n it('22. should apply orange variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"orange\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--orange')).to.be.true;\n });\n\n it('23. should apply gray-blue variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"gray-blue\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--gray-blue')).to.be.true;\n });\n\n it('24. should reflect variant attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"success\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('success');\n });\n\n // === ROUNDED ===\n it('25. should apply rounded class when rounded is true', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge rounded></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('26. should not apply rounded class when rounded is false', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--rounded')).to.be.false;\n });\n\n it('27. should reflect rounded attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge rounded></nile-badge>`);\n expect(el.hasAttribute('rounded')).to.be.true;\n });\n\n // === PILLTYPE ===\n it('28. should apply badge-color pilltype class by default', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--badge-color')).to.be.true;\n });\n\n it('29. should apply pill-outline pilltype class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n });\n\n it('30. should apply pill-color pilltype class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"pill-color\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('31. should auto-round when pilltype is pill-outline', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('32. should auto-round when pilltype is pill-color', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"pill-color\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('33. should reflect pilltype attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"pill-outline\"></nile-badge>`);\n expect(el.getAttribute('pilltype')).to.equal('pill-outline');\n });\n\n // === CSS PARTS ===\n it('34. should have base part', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const base = el.shadowRoot!.querySelector('[part~=\"base\"]');\n expect(base).to.exist;\n });\n\n it('35. should have content part', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const content = el.shadowRoot!.querySelector('[part~=\"content\"]');\n expect(content).to.exist;\n });\n\n // === DYNAMIC PROPERTY CHANGES ===\n it('36. should update variant dynamically', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"normal\"></nile-badge>`);\n el.variant = 'success';\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--success')).to.be.true;\n });\n\n it('37. should update rounded dynamically', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n el.rounded = true;\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('38. should update pilltype dynamically', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n el.pilltype = 'pill-outline';\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n });\n\n // === CLASS COMBINATIONS ===\n it('39. should have badge class always', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge')).to.be.true;\n });\n\n it('40. should handle variant + rounded', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"error\" rounded></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--error')).to.be.true;\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('41. should handle variant + pilltype', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"success\" pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--success')).to.be.true;\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n });\n\n it('42. should handle all properties together', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"warning\" rounded pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--warning')).to.be.true;\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n });\n\n // === ALL VARIANTS CLASS VERIFICATION ===\n it('43. should not have other variant classes when primary', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"primary\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--primary')).to.be.true;\n expect(span!.classList.contains('badge--success')).to.be.false;\n expect(span!.classList.contains('badge--error')).to.be.false;\n });\n\n it('44. should switch variant classes on change', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"primary\"></nile-badge>`);\n el.variant = 'error';\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--error')).to.be.true;\n expect(span!.classList.contains('badge--primary')).to.be.false;\n });\n\n // === CONTENT RENDERING ===\n it('45. should render HTML content in slot', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge><strong>Bold</strong></nile-badge>`);\n const strong = el.querySelector('strong');\n expect(strong).to.exist;\n expect(strong!.textContent).to.equal('Bold');\n });\n\n it('46. should render multiple elements in slot', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge><span>A</span><span>B</span></nile-badge>`);\n const spans = el.querySelectorAll('span');\n expect(spans.length).to.equal(2);\n });\n\n it('47. should handle empty content', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n expect(el.textContent!.trim()).to.equal('');\n });\n\n // === BADGE CLASS ===\n it('48. should have badge__content class on slot', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const contentSlot = el.shadowRoot!.querySelector('.badge__content');\n expect(contentSlot).to.exist;\n });\n\n // === REPEATED UPDATES ===\n it('49. should handle multiple variant changes', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const variants: Array<'primary' | 'success' | 'error' | 'warning' | 'info'> = ['primary', 'success', 'error', 'warning', 'info'];\n for (const v of variants) {\n el.variant = v;\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains(`badge--${v}`)).to.be.true;\n }\n });\n\n it('50. should handle toggling rounded', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n el.rounded = true;\n await el.updateComplete;\n let span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n el.rounded = false;\n await el.updateComplete;\n span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--rounded')).to.be.false;\n });\n\n // === ADDITIONAL VARIANT COMBINATIONS ===\n it('51. primary variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"primary\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('primary');\n });\n\n it('52. success variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"success\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('success');\n });\n\n it('53. normal variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"normal\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('normal');\n });\n\n it('54. warning variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"warning\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('warning');\n });\n\n it('55. error variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"error\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('error');\n });\n\n it('56. info variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"info\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('info');\n });\n\n it('57. gray variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"gray\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('gray');\n });\n\n it('58. brand variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"brand\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('brand');\n });\n\n it('59. blue-light variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"blue-light\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('blue-light');\n });\n\n it('60. blue variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"blue\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('blue');\n });\n\n it('61. indigo variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"indigo\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('indigo');\n });\n\n it('62. purple variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"purple\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('purple');\n });\n\n it('63. pink variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"pink\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('pink');\n });\n\n it('64. orange variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"orange\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('orange');\n });\n\n it('65. gray-blue variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"gray-blue\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('gray-blue');\n });\n\n // === PILLTYPE VARIATIONS ===\n it('66. badge-color pilltype reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"badge-color\"></nile-badge>`);\n expect(el.getAttribute('pilltype')).to.equal('badge-color');\n });\n\n it('67. pill-outline pilltype reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"pill-outline\"></nile-badge>`);\n expect(el.getAttribute('pilltype')).to.equal('pill-outline');\n });\n\n it('68. pill-color pilltype reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"pill-color\"></nile-badge>`);\n expect(el.getAttribute('pilltype')).to.equal('pill-color');\n });\n\n // === DYNAMIC PILLTYPE UPDATES ===\n it('69. should switch from badge-color to pill-outline', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"badge-color\"></nile-badge>`);\n el.pilltype = 'pill-outline';\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n expect(span!.classList.contains('badge--badge-color')).to.be.false;\n });\n\n it('70. should switch from pill-outline to pill-color', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"pill-outline\"></nile-badge>`);\n el.pilltype = 'pill-color';\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--pill-outline')).to.be.false;\n });\n\n // === EACH VARIANT WITH ROUNDED ===\n it('71. primary variant with rounded', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"primary\" rounded></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--primary')).to.be.true;\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('72. success variant with rounded', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"success\" rounded></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--success')).to.be.true;\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('73. error variant with rounded', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"error\" rounded></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--error')).to.be.true;\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('74. warning variant with rounded', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"warning\" rounded></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--warning')).to.be.true;\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('75. info variant with rounded', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"info\" rounded></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--info')).to.be.true;\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n // === EACH VARIANT WITH PILL-OUTLINE ===\n it('76. primary with pill-outline', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"primary\" pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--primary')).to.be.true;\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('77. success with pill-outline', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"success\" pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--success')).to.be.true;\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n });\n\n it('78. error with pill-outline', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"error\" pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--error')).to.be.true;\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n });\n\n it('79. warning with pill-outline', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"warning\" pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--warning')).to.be.true;\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n });\n\n it('80. info with pill-outline', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"info\" pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--info')).to.be.true;\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n });\n\n // === EACH VARIANT WITH BADGE-COLOR ===\n it('81. primary with badge-color', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"primary\" pilltype=\"badge-color\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--primary')).to.be.true;\n expect(span!.classList.contains('badge--badge-color')).to.be.true;\n });\n\n it('82. success with badge-color', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"success\" pilltype=\"badge-color\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--success')).to.be.true;\n expect(span!.classList.contains('badge--badge-color')).to.be.true;\n });\n\n it('83. blue with badge-color', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"blue\" pilltype=\"badge-color\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--blue')).to.be.true;\n expect(span!.classList.contains('badge--badge-color')).to.be.true;\n });\n\n it('84. indigo with badge-color', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"indigo\" pilltype=\"badge-color\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--indigo')).to.be.true;\n expect(span!.classList.contains('badge--badge-color')).to.be.true;\n });\n\n it('85. purple with badge-color', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"purple\" pilltype=\"badge-color\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--purple')).to.be.true;\n expect(span!.classList.contains('badge--badge-color')).to.be.true;\n });\n\n // === MULTIPLE DYNAMIC UPDATES ===\n it('86. should cycle through all pilltypes', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const pilltypes: Array<'badge-color' | 'pill-outline' | 'pill-color'> = ['badge-color', 'pill-outline', 'pill-color'];\n for (const pt of pilltypes) {\n el.pilltype = pt;\n await el.updateComplete;\n expect(el.pilltype).to.equal(pt);\n }\n });\n\n it('87. should handle setting variant to each value', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const variants: Array<'primary' | 'success' | 'normal' | 'warning' | 'error' | 'info' | 'gray' | 'brand'> = ['primary', 'success', 'normal', 'warning', 'error', 'info', 'gray', 'brand'];\n for (const v of variants) {\n el.variant = v;\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains(`badge--${v}`)).to.be.true;\n }\n });\n\n // === SLOT STRUCTURE ===\n it('88. slot should be inside span', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n const slot = span!.querySelector('slot');\n expect(slot).to.exist;\n });\n\n // === ELEMENT INSTANCE ===\n it('89. should be instance of NileBadge', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n expect(el).to.be.instanceOf(NileBadge);\n });\n\n it('90. should have correct tag name', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n expect(el.tagName.toLowerCase()).to.equal('nile-badge');\n });\n\n // === ATTRIBUTE SETTING ===\n it('91. should set variant via setAttribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n el.setAttribute('variant', 'error');\n await el.updateComplete;\n expect(el.variant).to.equal('error');\n });\n\n it('92. should set rounded via setAttribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n el.setAttribute('rounded', '');\n await el.updateComplete;\n expect(el.rounded).to.be.true;\n });\n\n it('93. should remove rounded attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge rounded></nile-badge>`);\n el.removeAttribute('rounded');\n await el.updateComplete;\n expect(el.rounded).to.be.false;\n });\n\n it('94. should set pilltype via setAttribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n el.setAttribute('pilltype', 'pill-outline');\n await el.updateComplete;\n expect(el.pilltype).to.equal('pill-outline');\n });\n\n // === STYLES ===\n it('95. should have static styles', async () => {\n expect(NileBadge.styles).to.exist;\n });\n\n // === RENDERING STRESS ===\n it('96. should render consistently after multiple rapid updates', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n el.variant = 'primary';\n el.variant = 'success';\n el.variant = 'error';\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--error')).to.be.true;\n });\n\n it('97. should render long text content', async () => {\n const longText = 'A'.repeat(1000);\n const el = await fixture<NileBadge>(html`<nile-badge>${longText}</nile-badge>`);\n expect(el.textContent!.trim()).to.equal(longText);\n });\n\n it('98. should render special characters', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge>&lt;script&gt;</nile-badge>`);\n expect(el.textContent).to.contain('<script>');\n });\n\n it('99. should handle numeric content', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge>42</nile-badge>`);\n expect(el.textContent!.trim()).to.equal('42');\n });\n\n it('100. should handle unicode content', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge>\\u2713 Done</nile-badge>`);\n expect(el.textContent).to.contain('\\u2713');\n });\n});\n"]}
1
+ {"version":3,"file":"nile-badge.test.js","sourceRoot":"","sources":["../../../src/nile-badge/nile-badge.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, fixture, html, elementUpdated } from '@open-wc/testing';\nimport './nile-badge';\nimport NileBadge from './nile-badge';\nimport { styles } from './nile-badge.css';\n\ndescribe('NileBadge', () => {\n // === RENDERING ===\n it('1. should render without errors', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n expect(el).to.exist;\n });\n\n it('2. should have a shadow root', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n expect(el.shadowRoot).to.not.be.null;\n });\n\n it('3. should render a span as base element', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span).to.exist;\n });\n\n it('4. should render slot content', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge>Badge Text</nile-badge>`);\n expect(el.textContent!.trim()).to.equal('Badge Text');\n });\n\n it('5. should render default slot', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const slot = el.shadowRoot!.querySelector('slot');\n expect(slot).to.exist;\n });\n\n // === DEFAULT PROPERTIES ===\n it('6. should have variant default to normal', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n expect(el.variant).to.equal('normal');\n });\n\n it('7. should have rounded default to false', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n expect(el.rounded).to.be.false;\n });\n\n it('8. should have pilltype default to badge-color', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n expect(el.pilltype).to.equal('badge-color');\n });\n\n // === VARIANT TESTS ===\n it('9. should apply primary variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"primary\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--primary')).to.be.true;\n });\n\n it('10. should apply success variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"success\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--success')).to.be.true;\n });\n\n it('11. should apply normal variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"normal\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--normal')).to.be.true;\n });\n\n it('12. should apply warning variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"warning\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--warning')).to.be.true;\n });\n\n it('13. should apply error variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"error\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--error')).to.be.true;\n });\n\n it('14. should apply info variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"info\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--info')).to.be.true;\n });\n\n it('15. should apply gray variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"gray\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--gray')).to.be.true;\n });\n\n it('16. should apply brand variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"brand\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--brand')).to.be.true;\n });\n\n it('17. should apply blue-light variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"blue-light\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--blue-light')).to.be.true;\n });\n\n it('18. should apply blue variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"blue\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--blue')).to.be.true;\n });\n\n it('19. should apply indigo variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"indigo\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--indigo')).to.be.true;\n });\n\n it('20. should apply purple variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"purple\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--purple')).to.be.true;\n });\n\n it('21. should apply pink variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"pink\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--pink')).to.be.true;\n });\n\n it('22. should apply orange variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"orange\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--orange')).to.be.true;\n });\n\n it('23. should apply gray-blue variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"gray-blue\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--gray-blue')).to.be.true;\n });\n\n it('24. should reflect variant attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"success\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('success');\n });\n\n // === ROUNDED ===\n it('25. should apply rounded class when rounded is true', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge rounded></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('26. should not apply rounded class when rounded is false', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--rounded')).to.be.false;\n });\n\n it('27. should reflect rounded attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge rounded></nile-badge>`);\n expect(el.hasAttribute('rounded')).to.be.true;\n });\n\n // === PILLTYPE ===\n it('28. should apply badge-color pilltype class by default', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--badge-color')).to.be.true;\n });\n\n it('29. should apply pill-outline pilltype class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n });\n\n it('30. should apply pill-color pilltype class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"pill-color\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('31. should auto-round when pilltype is pill-outline', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('32. should auto-round when pilltype is pill-color', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"pill-color\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('33. should reflect pilltype attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"pill-outline\"></nile-badge>`);\n expect(el.getAttribute('pilltype')).to.equal('pill-outline');\n });\n\n // === CSS PARTS ===\n it('34. should have base part', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const base = el.shadowRoot!.querySelector('[part~=\"base\"]');\n expect(base).to.exist;\n });\n\n it('35. should have content part', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const content = el.shadowRoot!.querySelector('[part~=\"content\"]');\n expect(content).to.exist;\n });\n\n // === DYNAMIC PROPERTY CHANGES ===\n it('36. should update variant dynamically', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"normal\"></nile-badge>`);\n el.variant = 'success';\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--success')).to.be.true;\n });\n\n it('37. should update rounded dynamically', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n el.rounded = true;\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('38. should update pilltype dynamically', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n el.pilltype = 'pill-outline';\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n });\n\n // === CLASS COMBINATIONS ===\n it('39. should have badge class always', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge')).to.be.true;\n });\n\n it('40. should handle variant + rounded', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"error\" rounded></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--error')).to.be.true;\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('41. should handle variant + pilltype', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"success\" pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--success')).to.be.true;\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n });\n\n it('42. should handle all properties together', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"warning\" rounded pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--warning')).to.be.true;\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n });\n\n // === ALL VARIANTS CLASS VERIFICATION ===\n it('43. should not have other variant classes when primary', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"primary\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--primary')).to.be.true;\n expect(span!.classList.contains('badge--success')).to.be.false;\n expect(span!.classList.contains('badge--error')).to.be.false;\n });\n\n it('44. should switch variant classes on change', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"primary\"></nile-badge>`);\n el.variant = 'error';\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--error')).to.be.true;\n expect(span!.classList.contains('badge--primary')).to.be.false;\n });\n\n // === CONTENT RENDERING ===\n it('45. should render HTML content in slot', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge><strong>Bold</strong></nile-badge>`);\n const strong = el.querySelector('strong');\n expect(strong).to.exist;\n expect(strong!.textContent).to.equal('Bold');\n });\n\n it('46. should render multiple elements in slot', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge><span>A</span><span>B</span></nile-badge>`);\n const spans = el.querySelectorAll('span');\n expect(spans.length).to.equal(2);\n });\n\n it('47. should handle empty content', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n expect(el.textContent!.trim()).to.equal('');\n });\n\n // === BADGE CLASS ===\n it('48. should have badge__content class on slot', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const contentSlot = el.shadowRoot!.querySelector('.badge__content');\n expect(contentSlot).to.exist;\n });\n\n // === REPEATED UPDATES ===\n it('49. should handle multiple variant changes', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const variants: Array<'primary' | 'success' | 'error' | 'warning' | 'info'> = ['primary', 'success', 'error', 'warning', 'info'];\n for (const v of variants) {\n el.variant = v;\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains(`badge--${v}`)).to.be.true;\n }\n });\n\n it('50. should handle toggling rounded', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n el.rounded = true;\n await el.updateComplete;\n let span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n el.rounded = false;\n await el.updateComplete;\n span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--rounded')).to.be.false;\n });\n\n // === ADDITIONAL VARIANT COMBINATIONS ===\n it('51. primary variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"primary\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('primary');\n });\n\n it('52. success variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"success\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('success');\n });\n\n it('53. normal variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"normal\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('normal');\n });\n\n it('54. warning variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"warning\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('warning');\n });\n\n it('55. error variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"error\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('error');\n });\n\n it('56. info variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"info\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('info');\n });\n\n it('57. gray variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"gray\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('gray');\n });\n\n it('58. brand variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"brand\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('brand');\n });\n\n it('59. blue-light variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"blue-light\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('blue-light');\n });\n\n it('60. blue variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"blue\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('blue');\n });\n\n it('61. indigo variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"indigo\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('indigo');\n });\n\n it('62. purple variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"purple\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('purple');\n });\n\n it('63. pink variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"pink\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('pink');\n });\n\n it('64. orange variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"orange\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('orange');\n });\n\n it('65. gray-blue variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"gray-blue\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('gray-blue');\n });\n\n // === PILLTYPE VARIATIONS ===\n it('66. badge-color pilltype reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"badge-color\"></nile-badge>`);\n expect(el.getAttribute('pilltype')).to.equal('badge-color');\n });\n\n it('67. pill-outline pilltype reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"pill-outline\"></nile-badge>`);\n expect(el.getAttribute('pilltype')).to.equal('pill-outline');\n });\n\n it('68. pill-color pilltype reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"pill-color\"></nile-badge>`);\n expect(el.getAttribute('pilltype')).to.equal('pill-color');\n });\n\n // === DYNAMIC PILLTYPE UPDATES ===\n it('69. should switch from badge-color to pill-outline', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"badge-color\"></nile-badge>`);\n el.pilltype = 'pill-outline';\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n expect(span!.classList.contains('badge--badge-color')).to.be.false;\n });\n\n it('70. should switch from pill-outline to pill-color', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"pill-outline\"></nile-badge>`);\n el.pilltype = 'pill-color';\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--pill-outline')).to.be.false;\n });\n\n // === EACH VARIANT WITH ROUNDED ===\n it('71. primary variant with rounded', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"primary\" rounded></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--primary')).to.be.true;\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('72. success variant with rounded', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"success\" rounded></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--success')).to.be.true;\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('73. error variant with rounded', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"error\" rounded></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--error')).to.be.true;\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('74. warning variant with rounded', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"warning\" rounded></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--warning')).to.be.true;\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('75. info variant with rounded', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"info\" rounded></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--info')).to.be.true;\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n // === EACH VARIANT WITH PILL-OUTLINE ===\n it('76. primary with pill-outline', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"primary\" pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--primary')).to.be.true;\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('77. success with pill-outline', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"success\" pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--success')).to.be.true;\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n });\n\n it('78. error with pill-outline', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"error\" pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--error')).to.be.true;\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n });\n\n it('79. warning with pill-outline', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"warning\" pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--warning')).to.be.true;\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n });\n\n it('80. info with pill-outline', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"info\" pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--info')).to.be.true;\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n });\n\n // === EACH VARIANT WITH BADGE-COLOR ===\n it('81. primary with badge-color', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"primary\" pilltype=\"badge-color\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--primary')).to.be.true;\n expect(span!.classList.contains('badge--badge-color')).to.be.true;\n });\n\n it('82. success with badge-color', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"success\" pilltype=\"badge-color\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--success')).to.be.true;\n expect(span!.classList.contains('badge--badge-color')).to.be.true;\n });\n\n it('83. blue with badge-color', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"blue\" pilltype=\"badge-color\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--blue')).to.be.true;\n expect(span!.classList.contains('badge--badge-color')).to.be.true;\n });\n\n it('84. indigo with badge-color', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"indigo\" pilltype=\"badge-color\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--indigo')).to.be.true;\n expect(span!.classList.contains('badge--badge-color')).to.be.true;\n });\n\n it('85. purple with badge-color', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"purple\" pilltype=\"badge-color\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--purple')).to.be.true;\n expect(span!.classList.contains('badge--badge-color')).to.be.true;\n });\n\n // === MULTIPLE DYNAMIC UPDATES ===\n it('86. should cycle through all pilltypes', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const pilltypes: Array<'badge-color' | 'pill-outline' | 'pill-color'> = ['badge-color', 'pill-outline', 'pill-color'];\n for (const pt of pilltypes) {\n el.pilltype = pt;\n await el.updateComplete;\n expect(el.pilltype).to.equal(pt);\n }\n });\n\n it('87. should handle setting variant to each value', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const variants: Array<'primary' | 'success' | 'normal' | 'warning' | 'error' | 'info' | 'gray' | 'brand'> = ['primary', 'success', 'normal', 'warning', 'error', 'info', 'gray', 'brand'];\n for (const v of variants) {\n el.variant = v;\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains(`badge--${v}`)).to.be.true;\n }\n });\n\n // === SLOT STRUCTURE ===\n it('88. slot should be inside span', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n const slot = span!.querySelector('slot');\n expect(slot).to.exist;\n });\n\n // === ELEMENT INSTANCE ===\n it('89. should be instance of NileBadge', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n expect(el).to.be.instanceOf(NileBadge);\n });\n\n it('90. should have correct tag name', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n expect(el.tagName.toLowerCase()).to.equal('nile-badge');\n });\n\n // === ATTRIBUTE SETTING ===\n it('91. should set variant via setAttribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n el.setAttribute('variant', 'error');\n await el.updateComplete;\n expect(el.variant).to.equal('error');\n });\n\n it('92. should set rounded via setAttribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n el.setAttribute('rounded', '');\n await el.updateComplete;\n expect(el.rounded).to.be.true;\n });\n\n it('93. should remove rounded attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge rounded></nile-badge>`);\n el.removeAttribute('rounded');\n await el.updateComplete;\n expect(el.rounded).to.be.false;\n });\n\n it('94. should set pilltype via setAttribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n el.setAttribute('pilltype', 'pill-outline');\n await el.updateComplete;\n expect(el.pilltype).to.equal('pill-outline');\n });\n\n // === STYLES ===\n it('95. should have static styles', async () => {\n expect(NileBadge.styles).to.exist;\n });\n\n // === RENDERING STRESS ===\n it('96. should render consistently after multiple rapid updates', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n el.variant = 'primary';\n el.variant = 'success';\n el.variant = 'error';\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--error')).to.be.true;\n });\n\n it('97. should render long text content', async () => {\n const longText = 'A'.repeat(1000);\n const el = await fixture<NileBadge>(html`<nile-badge>${longText}</nile-badge>`);\n expect(el.textContent!.trim()).to.equal(longText);\n });\n\n it('98. should render special characters', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge>&lt;script&gt;</nile-badge>`);\n expect(el.textContent).to.contain('<script>');\n });\n\n it('99. should handle numeric content', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge>42</nile-badge>`);\n expect(el.textContent!.trim()).to.equal('42');\n });\n\n it('100. should handle unicode content', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge>\\u2713 Done</nile-badge>`);\n expect(el.textContent).to.contain('\\u2713');\n });\n\n // === SIZE TESTS ===\n it('101. should have size default to md', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n expect(el.size).to.equal('md');\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--md')).to.be.true;\n });\n\n it('102. should reflect size attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge size=\"lg\"></nile-badge>`);\n expect(el.getAttribute('size')).to.equal('lg');\n });\n\n for (const size of ['sm', 'md', 'lg'] as const) {\n it(`103. should apply only the ${size} size class`, async () => {\n const el = await fixture<NileBadge>(html`<nile-badge size=${size}>Label</nile-badge>`);\n const span = el.shadowRoot!.querySelector('span')!;\n for (const other of ['sm', 'md', 'lg']) {\n expect(span.classList.contains(`badge--${other}`)).to.equal(other === size);\n }\n });\n }\n\n it('104. should update size class when size changes', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge>Label</nile-badge>`);\n el.size = 'sm';\n await elementUpdated(el);\n const span = el.shadowRoot!.querySelector('span')!;\n expect(span.classList.contains('badge--sm')).to.be.true;\n expect(span.classList.contains('badge--md')).to.be.false;\n });\n\n describe('size dimensions (nxtgen tokens)', () => {\n let tokens: HTMLStyleElement;\n\n before(() => {\n tokens = document.createElement('style');\n tokens.textContent = `:root {\n --ng-height-22px: 22px; --ng-height-24px: 24px; --ng-height-28px: 28px;\n --ng-spacing-xxs: 2px; --ng-spacing-xs: 4px; --ng-spacing-md: 8px;\n --ng-spacing-md-alt: 10px; --ng-spacing-lg: 12px;\n }`;\n document.head.appendChild(tokens);\n });\n\n after(() => tokens.remove());\n\n it('105. should render 22px, 24px and 28px tall for sm, md and lg', async () => {\n const heights: number[] = [];\n for (const size of ['sm', 'md', 'lg']) {\n const el = await fixture<NileBadge>(html`<nile-badge size=${size}>Label</nile-badge>`);\n heights.push(el.shadowRoot!.querySelector('span')!.getBoundingClientRect().height);\n }\n expect(heights).to.deep.equal([22, 24, 28]);\n });\n\n it('106. should keep size padding when rounded', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge size=\"lg\" rounded>Label</nile-badge>`);\n const style = getComputedStyle(el.shadowRoot!.querySelector('span')!);\n expect(style.paddingTop).to.equal('4px');\n expect(style.paddingLeft).to.equal('12px');\n });\n });\n\n describe('error / orange / warning colour tokens', () => {\n const css = styles.cssText;\n const rule = (selector: string) => css.slice(css.indexOf(`${selector} {`)).split('}')[0];\n const ng = (token: string) => `var(--ng-componentcolors-utility-${token})`;\n\n const cases: [string, string, string, string][] = [\n ['error', 'error-50', 'error-200', 'error-700'],\n ['orange', 'orange-50', 'orange-300', 'error-600'],\n ['warning', 'warning-50', 'warning-300', 'warning-700'],\n ];\n\n cases.forEach(([variant, fill, border, text], i) => {\n it(`${107 + i}. should map ${variant} to ${fill} / ${border} / ${text}`, () => {\n const base = rule(`.badge--${variant}`);\n expect(base).to.contain(`background-${variant}, ${ng(fill)})`);\n expect(base).to.contain(`border-color-${variant}, ${ng(border)})`);\n expect(base).to.contain(`font-${variant}, ${ng(text)})`);\n expect(rule(`.badge--${variant}.badge--pill-outline`)).to.contain(`pill-outline-${variant}, ${ng(border)})`);\n });\n });\n });\n});\n"]}
@@ -12,7 +12,7 @@
12
12
  // @aquera/nile/lib/version.js into dist/index.js, so on the CDN build it is
13
13
  // frozen at this package's build time. The stylesheet is the live source.
14
14
  import { NILE_VERSION as BUILT_IN_NILE_VERSION } from '@aquera/nile/lib/version.js';
15
- export const NILE_ELEMENTS_VERSION = '2.0.14';
15
+ export const NILE_ELEMENTS_VERSION = '2.0.15';
16
16
  function readStylesheetNileVersion() {
17
17
  if (typeof window === 'undefined' || typeof getComputedStyle !== 'function') {
18
18
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,EAAE;AACF,+EAA+E;AAC/E,gDAAgD;AAChD,EAAE;AACF,8EAA8E;AAC9E,6EAA6E;AAC7E,qEAAqE;AACrE,EAAE;AACF,0EAA0E;AAC1E,kEAAkE;AAClE,4EAA4E;AAC5E,0EAA0E;AAC1E,OAAO,EAAE,YAAY,IAAI,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpF,MAAM,CAAC,MAAM,qBAAqB,GAAG,2BAA2B,CAAC;AAEjE,SAAS,yBAAyB;IAChC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,gBAAgB,KAAK,UAAU,EAAE,CAAC;QAC5E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC;aACrD,gBAAgB,CAAC,gBAAgB,CAAC;aAClC,IAAI,EAAE;aACN,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAE/B,OAAO,KAAK,IAAI,IAAI,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,yBAAyB,EAAE,IAAI,qBAAqB,CAAC;AAC9D,CAAC;AAED,yCAAyC;AACzC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IACjC,MAAc,CAAC,mBAAmB,GAAG,qBAAqB,CAAC;IAE5D,yEAAyE;IACzE,yEAAyE;IACzE,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE;QAC3C,YAAY,EAAE,IAAI;QAClB,GAAG,EAAE,GAAG,EAAE,CAAC,QAAQ,IAAI,cAAc,EAAE;QACvC,GAAG,EAAE,CAAC,KAAa,EAAE,EAAE;YACrB,QAAQ,GAAG,KAAK,CAAC;QACnB,CAAC;KACF,CAAC,CAAC;IAEF,MAAc,CAAC,OAAO,GAAI,MAAc,CAAC,OAAO,IAAI;QACnD,GAAG,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE;KAChC,CAAC;AACJ,CAAC","sourcesContent":["// Version utility.\n//\n// NILE_ELEMENTS_VERSION is this package's own version and is still substituted\n// at build time by scripts/replace-version.cjs.\n//\n// The tokens version is read from the loaded Nile stylesheet's --nile-version\n// custom property (stamped by @aquera/nile's scripts/stamp-css-version.mjs),\n// falling back to the @aquera/nile installed alongside this package.\n//\n// Reading the stylesheet is what makes a tokens-only release visible. The\n// imported constant alone is not enough: rollup.config.js bundles\n// @aquera/nile/lib/version.js into dist/index.js, so on the CDN build it is\n// frozen at this package's build time. The stylesheet is the live source.\nimport { NILE_VERSION as BUILT_IN_NILE_VERSION } from '@aquera/nile/lib/version.js';\n\nexport const NILE_ELEMENTS_VERSION = '2.0.14';\n\nfunction readStylesheetNileVersion(): string | null {\n if (typeof window === 'undefined' || typeof getComputedStyle !== 'function') {\n return null;\n }\n\n try {\n const value = getComputedStyle(document.documentElement)\n .getPropertyValue('--nile-version')\n .trim()\n .replace(/^[\"']|[\"']$/g, '');\n\n return value || null;\n } catch {\n return null;\n }\n}\n\n/**\n * The version of @aquera/nile (tokens/stylesheets) whose CSS is loaded in the\n * page, falling back to the @aquera/nile bundled into this package when no\n * stamped stylesheet is present.\n *\n * This is the canonical runtime API. It resolves on every call rather than\n * caching, so it is correct even when the Nile stylesheet is added to the page\n * after this module evaluates - which is the common case, and why no\n * module-evaluation-time snapshot of it is exported.\n */\nexport function getNileVersion(): string {\n return readStylesheetNileVersion() ?? BUILT_IN_NILE_VERSION;\n}\n\n// Set global versions for runtime access\nif (typeof window !== 'undefined') {\n (window as any).nileElementsVersion = NILE_ELEMENTS_VERSION;\n\n // A getter rather than a value, so window.nileVersion reflects whichever\n // stylesheet is loaded at read time regardless of script/style ordering.\n let override: string | null = null;\n Object.defineProperty(window, 'nileVersion', {\n configurable: true,\n get: () => override ?? getNileVersion(),\n set: (value: string) => {\n override = value;\n },\n });\n\n (window as any).process = (window as any).process || {\n env: { NODE_ENV: 'production' },\n };\n}\n"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,EAAE;AACF,+EAA+E;AAC/E,gDAAgD;AAChD,EAAE;AACF,8EAA8E;AAC9E,6EAA6E;AAC7E,qEAAqE;AACrE,EAAE;AACF,0EAA0E;AAC1E,kEAAkE;AAClE,4EAA4E;AAC5E,0EAA0E;AAC1E,OAAO,EAAE,YAAY,IAAI,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpF,MAAM,CAAC,MAAM,qBAAqB,GAAG,2BAA2B,CAAC;AAEjE,SAAS,yBAAyB;IAChC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,gBAAgB,KAAK,UAAU,EAAE,CAAC;QAC5E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,eAAe,CAAC;aACrD,gBAAgB,CAAC,gBAAgB,CAAC;aAClC,IAAI,EAAE;aACN,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAE/B,OAAO,KAAK,IAAI,IAAI,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,yBAAyB,EAAE,IAAI,qBAAqB,CAAC;AAC9D,CAAC;AAED,yCAAyC;AACzC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IACjC,MAAc,CAAC,mBAAmB,GAAG,qBAAqB,CAAC;IAE5D,yEAAyE;IACzE,yEAAyE;IACzE,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE;QAC3C,YAAY,EAAE,IAAI;QAClB,GAAG,EAAE,GAAG,EAAE,CAAC,QAAQ,IAAI,cAAc,EAAE;QACvC,GAAG,EAAE,CAAC,KAAa,EAAE,EAAE;YACrB,QAAQ,GAAG,KAAK,CAAC;QACnB,CAAC;KACF,CAAC,CAAC;IAEF,MAAc,CAAC,OAAO,GAAI,MAAc,CAAC,OAAO,IAAI;QACnD,GAAG,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE;KAChC,CAAC;AACJ,CAAC","sourcesContent":["// Version utility.\n//\n// NILE_ELEMENTS_VERSION is this package's own version and is still substituted\n// at build time by scripts/replace-version.cjs.\n//\n// The tokens version is read from the loaded Nile stylesheet's --nile-version\n// custom property (stamped by @aquera/nile's scripts/stamp-css-version.mjs),\n// falling back to the @aquera/nile installed alongside this package.\n//\n// Reading the stylesheet is what makes a tokens-only release visible. The\n// imported constant alone is not enough: rollup.config.js bundles\n// @aquera/nile/lib/version.js into dist/index.js, so on the CDN build it is\n// frozen at this package's build time. The stylesheet is the live source.\nimport { NILE_VERSION as BUILT_IN_NILE_VERSION } from '@aquera/nile/lib/version.js';\n\nexport const NILE_ELEMENTS_VERSION = '2.0.15';\n\nfunction readStylesheetNileVersion(): string | null {\n if (typeof window === 'undefined' || typeof getComputedStyle !== 'function') {\n return null;\n }\n\n try {\n const value = getComputedStyle(document.documentElement)\n .getPropertyValue('--nile-version')\n .trim()\n .replace(/^[\"']|[\"']$/g, '');\n\n return value || null;\n } catch {\n return null;\n }\n}\n\n/**\n * The version of @aquera/nile (tokens/stylesheets) whose CSS is loaded in the\n * page, falling back to the @aquera/nile bundled into this package when no\n * stamped stylesheet is present.\n *\n * This is the canonical runtime API. It resolves on every call rather than\n * caching, so it is correct even when the Nile stylesheet is added to the page\n * after this module evaluates - which is the common case, and why no\n * module-evaluation-time snapshot of it is exported.\n */\nexport function getNileVersion(): string {\n return readStylesheetNileVersion() ?? BUILT_IN_NILE_VERSION;\n}\n\n// Set global versions for runtime access\nif (typeof window !== 'undefined') {\n (window as any).nileElementsVersion = NILE_ELEMENTS_VERSION;\n\n // A getter rather than a value, so window.nileVersion reflects whichever\n // stylesheet is loaded at read time regardless of script/style ordering.\n let override: string | null = null;\n Object.defineProperty(window, 'nileVersion', {\n configurable: true,\n get: () => override ?? getNileVersion(),\n set: (value: string) => {\n override = value;\n },\n });\n\n (window as any).process = (window as any).process || {\n env: { NODE_ENV: 'production' },\n };\n}\n"]}