@aquera/nile-elements 2.0.13 → 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.
- package/README.md +12 -0
- package/dist/index.js +68 -42
- package/dist/nile-auto-complete/nile-auto-complete.css.cjs.js +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.css.cjs.js.map +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.css.esm.js +5 -2
- package/dist/nile-badge/nile-badge.cjs.js +1 -1
- package/dist/nile-badge/nile-badge.cjs.js.map +1 -1
- package/dist/nile-badge/nile-badge.css.cjs.js +1 -1
- package/dist/nile-badge/nile-badge.css.cjs.js.map +1 -1
- package/dist/nile-badge/nile-badge.css.esm.js +29 -8
- package/dist/nile-badge/nile-badge.esm.js +3 -3
- package/dist/nile-chip/nile-chip.css.cjs.js +1 -1
- package/dist/nile-chip/nile-chip.css.cjs.js.map +1 -1
- package/dist/nile-chip/nile-chip.css.esm.js +2 -0
- package/dist/nile-combobox/nile-combobox.css.cjs.js +1 -1
- package/dist/nile-combobox/nile-combobox.css.cjs.js.map +1 -1
- package/dist/nile-combobox/nile-combobox.css.esm.js +9 -9
- package/dist/nile-command-menu/nile-command-menu.css.cjs.js +1 -1
- package/dist/nile-command-menu/nile-command-menu.css.cjs.js.map +1 -1
- package/dist/nile-command-menu/nile-command-menu.css.esm.js +5 -5
- package/dist/nile-command-menu-item/nile-command-menu-item.css.cjs.js +1 -1
- package/dist/nile-command-menu-item/nile-command-menu-item.css.cjs.js.map +1 -1
- package/dist/nile-command-menu-item/nile-command-menu-item.css.esm.js +2 -2
- package/dist/nile-option/nile-option.css.cjs.js +1 -1
- package/dist/nile-option/nile-option.css.cjs.js.map +1 -1
- package/dist/nile-option/nile-option.css.esm.js +1 -1
- package/dist/nile-select/nile-select.css.cjs.js +1 -1
- package/dist/nile-select/nile-select.css.cjs.js.map +1 -1
- package/dist/nile-select/nile-select.css.esm.js +7 -7
- package/dist/nile-virtual-select/nile-virtual-select.css.cjs.js +1 -1
- package/dist/nile-virtual-select/nile-virtual-select.css.cjs.js.map +1 -1
- package/dist/nile-virtual-select/nile-virtual-select.css.esm.js +8 -8
- package/dist/src/nile-auto-complete/nile-auto-complete.css.js +3 -0
- package/dist/src/nile-auto-complete/nile-auto-complete.css.js.map +1 -1
- package/dist/src/nile-badge/nile-badge.css.js +27 -6
- package/dist/src/nile-badge/nile-badge.css.js.map +1 -1
- package/dist/src/nile-badge/nile-badge.d.ts +2 -0
- package/dist/src/nile-badge/nile-badge.js +8 -0
- package/dist/src/nile-badge/nile-badge.js.map +1 -1
- package/dist/src/nile-badge/nile-badge.test.js +76 -1
- package/dist/src/nile-badge/nile-badge.test.js.map +1 -1
- package/dist/src/nile-chip/nile-chip.css.js +2 -0
- package/dist/src/nile-chip/nile-chip.css.js.map +1 -1
- package/dist/src/nile-combobox/nile-combobox.css.js +9 -9
- package/dist/src/nile-combobox/nile-combobox.css.js.map +1 -1
- package/dist/src/nile-command-menu/nile-command-menu.css.js +5 -5
- package/dist/src/nile-command-menu/nile-command-menu.css.js.map +1 -1
- package/dist/src/nile-command-menu-item/nile-command-menu-item.css.js +2 -2
- package/dist/src/nile-command-menu-item/nile-command-menu-item.css.js.map +1 -1
- package/dist/src/nile-option/nile-option.css.js +1 -1
- package/dist/src/nile-option/nile-option.css.js.map +1 -1
- package/dist/src/nile-select/nile-select.css.js +7 -7
- package/dist/src/nile-select/nile-select.css.js.map +1 -1
- package/dist/src/nile-virtual-select/nile-virtual-select.css.js +8 -8
- package/dist/src/nile-virtual-select/nile-virtual-select.css.js.map +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/nile-auto-complete/nile-auto-complete.css.ts +3 -0
- package/src/nile-badge/nile-badge.css.ts +27 -6
- package/src/nile-badge/nile-badge.test.ts +87 -0
- package/src/nile-badge/nile-badge.ts +6 -0
- package/src/nile-chip/nile-chip.css.ts +2 -0
- package/src/nile-combobox/nile-combobox.css.ts +9 -9
- package/src/nile-command-menu/nile-command-menu.css.ts +5 -5
- package/src/nile-command-menu-item/nile-command-menu-item.css.ts +2 -2
- package/src/nile-option/nile-option.css.ts +1 -1
- package/src/nile-select/nile-select.css.ts +7 -7
- package/src/nile-virtual-select/nile-virtual-select.css.ts +8 -8
- package/vscode-html-custom-data.json +16 -1
|
@@ -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><script></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><script></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"]}
|
|
@@ -175,9 +175,11 @@ export const styles = css `
|
|
|
175
175
|
|
|
176
176
|
nile-auto-complete::part(base) {
|
|
177
177
|
height: auto;
|
|
178
|
+
background-color: transparent;
|
|
178
179
|
}
|
|
179
180
|
|
|
180
181
|
.nile-chip:hover:not(.nile-chip--disabled) {
|
|
182
|
+
background-color: var(--nile-colors-white-base, var(--ng-colors-bg-primary-hover));
|
|
181
183
|
border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-neutral));
|
|
182
184
|
box-shadow: var(--nile-box-shadow-10);
|
|
183
185
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-chip.css.js","sourceRoot":"","sources":["../../../src/nile-chip/nile-chip.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"nile-chip.css.js","sourceRoot":"","sources":["../../../src/nile-chip/nile-chip.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8MxB,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 * Chip CSS\n */\nexport const styles = css`\n :host {\n box-sizing: border-box;\n -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 }\n\n :host *,\n :host *::before,\n :host *::after {\n box-sizing: inherit;\n }\n\n [hidden] {\n display: none !important;\n }\n\n .form-control .form-control__label {\n display: none;\n }\n\n .form-control .form-control__help-text {\n display: none;\n }\n\n /* Label */\n .form-control--has-label .form-control__label {\n display: inline-block;\n color: inherit;\n margin-bottom: var(--nile-spacing-sm,var( --ng-spacing-sm));\n color: var(--nile-colors-dark-900,var(--ng-colors-text-secondary-700));\n font-family: var(--nile-font-family-serif,var( --ng-font-family-body));\n font-size: var(--nile-type-scale-3,var(--ng-font-size-text-sm));\n font-style: normal;\n font-weight: var(--nile-font-weight-regular,var(--ng-font-weight-medium));\n line-height: var(--nile-type-scale-3,var( --ng-line-height-text-sm));\n letter-spacing: 0.2px;\n }\n\n .form-control--has-label.form-control--medium .form-control__label {\n font-size: var(--nile-type-scale-3,var(--ng-font-size-text-sm));\n }\n\n :host([required]) .form-control--has-label .form-control__label::after {\n content: '*';\n margin-inline-start: -2px;\n }\n\n /* Help text */\n .form-control--has-help-text .form-control__help-text {\n display: block;\n color: var(--nile-colors-neutral-700,var( --ng-colors-text-primary-900));\n margin-top: var(--nile-spacing-xxxxsmall);\n }\n\n .form-control--has-help-text.form-control--small .form-control__help-text {\n font-size: var(--nile-spacing-xsmall,var(--ng-font-size-text-md));\n }\n\n .form-control--has-help-text.form-control--medium .form-control__help-text {\n font-size: var(--nile-font-size-rem-medium,var(--ng-font-size-text-md));\n }\n\n .form-control--has-help-text.form-control--large .form-control__help-text {\n font-size: var(--nile-font-size-rem-large,var(--ng-font-size-text-md));\n }\n\n .form-control--has-help-text.form-control--radio-group\n .form-control__help-text {\n margin-top: var(--nile-spacing-xxxsmall);\n }\n\n :host {\n display: block;\n font-family: var(--nile-font-family-inherit,var(--ng-font-family-body));\n }\n\n .nile-chip {\n padding: var(--nile-spacing-5px,var(--ng-spacing-xs)) var(--nile-spacing-10px,var(--ng-spacing-lg));\n min-height: var(--ng-height-40px);\n background-color: var(--nile-colors-white-base,var( --ng-colors-bg-primary));\n border-radius: var(--nile-radius-radius-xs,var(--ng-radius-md));\n border: solid 1px var(--nile-colors-neutral-500,var(--ng-colors-border-primary));\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n width: 100%;\n overflow-x: hidden;\n gap : var(--nile-gap-unset, var(--ng-spacing-md));\n }\n\n nile-input::part(base) {\n padding: 0px !important;\n height: auto;\n }\n\n .nile-chip--no-wrap {\n flex-wrap: nowrap;\n overflow-x: scroll;\n }\n\n .nile-chip::-webkit-scrollbar {\n height: 2px;\n }\n\n .nile-chip::-webkit-scrollbar-thumb {\n background: var(\n --nile-colors-primary-600\n );\n }\n\n .nile-chip--disabled {\n\n /* opacity: 0.5; */\n cursor: not-allowed;\n border-radius: var(--nile-radius-radius-xs,var(--ng-radius-md));\n border-color: var(--nile-colors-neutral-500,var(--ng-colors-border-disabled));\n }\n\n :host([disabled]) nile-tag::part(base) {\n background-color: var(--nile-colors-dark-200, var(--ng-colors-bg-primary));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n }\n\n :host([disabled]) .nile-chip {\n background-color: var(--nile-colors-dark-200 , var(--ng-colors-bg-disabled-subtle));\n pointer-events: none;\n }\n\n .input--standard.input--disabled {\n background-color: var(--nile-colors-dark-200,var(--ng-colors-bg-disabled-subtle));\n }\n\n .nile-chip.nile-chip--disabled {\n background-color: var(--nile-colors-dark-200,var(--ng-colors-bg-disabled-subtle));\n border-color: var(--nile-colors-neutral-400,var(--ng-colors-border-disabled));\n opacity: 0.5;\n cursor: not-allowed;\n box-shadow: var(--nile-box-shadow-10,var(--ng-shadow-xs));\n }\n\n .nile-chip.nile-chip--warning {\n border-color: var(--nile-colors-yellow-500,var( --ng-componentcolors-utility-warning-500));\n }\n\n .nile-chip.nile-chip--error {\n border-color: var(--nile-colors-red-500,var(--ng-colors-border-error));\n }\n\n .nile-chip.nile-chip--success {\n border-color: var(--nile-colors-green-500);\n }\n\n .nile-chip__auto-complete {\n flex: 1;\n }\n .nile-chip__tags {\n margin: var(--nile-margin-size-rem-small);\n }\n\n nile-auto-complete::part(input) {\n padding: var(--nile-spacing-lg, var(--ng-spacing-none));\n }\n\n nile-auto-complete::part(base) {\n height: auto;\n background-color: transparent;\n }\n\n .nile-chip:hover:not(.nile-chip--disabled) {\n background-color: var(--nile-colors-white-base, var(--ng-colors-bg-primary-hover));\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-neutral));\n box-shadow: var(--nile-box-shadow-10);\n }\n\n :host([disabled]) .nile-chip:hover {\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled));\n box-shadow: none;\n }\n\n .nile-chip.nile-chip--open:hover,\n :host(:not([disabled])) .nile-chip:focus-within {\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-brand));\n box-shadow: var(--nile-box-shadow-10, 0 0 0 1px var(--ng-colors-border-brand) inset ); /* Need to create token for it */\n }\n\n .nile-chip__tags--focused::part(base) {\n border: 1px solid var(--nile-colors-primary-600, var(--ng-colors-border-brand));\n gap: 2px;\n }\n\n :host([required]) .form-control--has-label .form-control__label::after {\n content: '*';\n margin-inline-start: -2px;\n color: var(--nile-colors-red-700, var(--ng-colors-text-error-primary-600));\n }\n\n :host([disabled]) {\n cursor: not-allowed;\n }\n\n :host([disabled]) nile-auto-complete::part(base) {\n background-color: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n }\n`;\n\nexport default [styles];\n"]}
|
|
@@ -105,7 +105,7 @@ export const styles = css `
|
|
|
105
105
|
.combobox--focused .combobox__trigger {
|
|
106
106
|
border-color: var(--ng-colors-border-brand);
|
|
107
107
|
box-shadow: 0 0 0 1px var(--ng-colors-border-brand) inset;
|
|
108
|
-
background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-
|
|
108
|
+
background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-primary));
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
.combobox--disabled .combobox__trigger {
|
|
@@ -159,7 +159,7 @@ export const styles = css `
|
|
|
159
159
|
|
|
160
160
|
.combobox--filled .combobox__trigger {
|
|
161
161
|
border: none;
|
|
162
|
-
background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-
|
|
162
|
+
background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-primary));
|
|
163
163
|
}
|
|
164
164
|
|
|
165
165
|
.combobox--filled.combobox--open .combobox__trigger,
|
|
@@ -354,7 +354,7 @@ export const styles = css `
|
|
|
354
354
|
font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md));
|
|
355
355
|
font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-regular));
|
|
356
356
|
background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));
|
|
357
|
-
border: solid 1px var(--nile-colors-neutral-500, var(--ng-colors-border-
|
|
357
|
+
border: solid 1px var(--nile-colors-neutral-500, var(--ng-colors-border-primary));
|
|
358
358
|
border-radius: var(--nile-radius-sm, var(--ng-radius-md));
|
|
359
359
|
padding: 0;
|
|
360
360
|
max-width: var(--auto-size-available-width);
|
|
@@ -414,7 +414,7 @@ export const styles = css `
|
|
|
414
414
|
}
|
|
415
415
|
|
|
416
416
|
.combobox__options nile-option[selected] {
|
|
417
|
-
background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-
|
|
417
|
+
background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-active));
|
|
418
418
|
}
|
|
419
419
|
|
|
420
420
|
.combobox__options nile-option[selected]::part(base) {
|
|
@@ -439,7 +439,7 @@ export const styles = css `
|
|
|
439
439
|
justify-content: space-between;
|
|
440
440
|
gap: var(--nile-spacing-lg, var(--ng-spacing-lg));
|
|
441
441
|
background: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary));
|
|
442
|
-
border-bottom: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-
|
|
442
|
+
border-bottom: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-primary));
|
|
443
443
|
padding: var(--nile-spacing-lg, var(--ng-spacing-lg));
|
|
444
444
|
user-select: none;
|
|
445
445
|
}
|
|
@@ -489,7 +489,7 @@ export const styles = css `
|
|
|
489
489
|
.combobox__footer {
|
|
490
490
|
flex-shrink: 0;
|
|
491
491
|
background: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary));
|
|
492
|
-
border-top: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-
|
|
492
|
+
border-top: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-primary));
|
|
493
493
|
display: flex;
|
|
494
494
|
flex-direction: row;
|
|
495
495
|
align-items: center;
|
|
@@ -628,7 +628,7 @@ export const styles = css `
|
|
|
628
628
|
}
|
|
629
629
|
|
|
630
630
|
.combobox__grid-col {
|
|
631
|
-
border-right: 1px solid var(--nile-colors-neutral-200, var(--ng-colors-border-
|
|
631
|
+
border-right: 1px solid var(--nile-colors-neutral-200, var(--ng-colors-border-primary));
|
|
632
632
|
}
|
|
633
633
|
|
|
634
634
|
.combobox__grid-col:last-child {
|
|
@@ -678,7 +678,7 @@ export const styles = css `
|
|
|
678
678
|
overflow: hidden;
|
|
679
679
|
}
|
|
680
680
|
.combobox__group-sticky-overlay .combobox__group-header {
|
|
681
|
-
box-shadow: 0 1px 0 0 var(--nile-colors-neutral-300, var(--ng-colors-border-
|
|
681
|
+
box-shadow: 0 1px 0 0 var(--nile-colors-neutral-300, var(--ng-colors-border-primary));
|
|
682
682
|
}
|
|
683
683
|
|
|
684
684
|
.combobox__group-header {
|
|
@@ -702,7 +702,7 @@ export const styles = css `
|
|
|
702
702
|
letter-spacing: 0.06em;
|
|
703
703
|
color: var(--nile-colors-dark-500, var(--ng-colors-text-tertiary-600));
|
|
704
704
|
background: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary));
|
|
705
|
-
border-bottom: 1px solid var(--nile-colors-neutral-300, var(--ng-colors-border-
|
|
705
|
+
border-bottom: 1px solid var(--nile-colors-neutral-300, var(--ng-colors-border-primary));
|
|
706
706
|
pointer-events: none;
|
|
707
707
|
user-select: none;
|
|
708
708
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-combobox.css.js","sourceRoot":"","sources":["../../../src/nile-combobox/nile-combobox.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAutBxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2025\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\nexport const styles = css`\n :host {\n display: block;\n box-sizing: border-box;\n -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 }\n\n :host *,\n :host *::before,\n :host *::after {\n box-sizing: inherit;\n }\n\n [hidden] {\n display: none;\n }\n\n /* ── Form control ── */\n\n .form-control .form-control__label {\n display: none;\n }\n\n .form-control--has-label .form-control__label {\n display: block;\n margin-bottom: var(--nile-spacing-sm, var(--ng-spacing-sm));\n color: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700));\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md));\n font-style: normal;\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-medium));\n line-height: var(--nile-spacing-2xl, var(--ng-line-height-text-sm));\n letter-spacing: 0.2px;\n }\n\n .form-control--has-label.form-control--medium .form-control__label {\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n }\n\n :host([required]) .form-control--has-label .form-control__label::after {\n content: '*';\n margin-inline-start: -2px;\n color: var(--nile-colors-red-700, var(--ng-colors-text-error-primary-600));\n }\n\n :host([disabled]) .form-control--has-label .form-control__label {\n user-select: none;\n -webkit-user-select: none;\n }\n\n /* ── Popup ── */\n\n .combobox-popup {\n flex: 1 1 auto;\n display: inline-flex;\n width: 100%;\n position: relative;\n vertical-align: middle;\n }\n\n .combobox-popup::part(popup) {\n z-index: 9999;\n }\n\n .combobox-popup[data-current-placement^='top']::part(popup) {\n transform-origin: bottom;\n }\n\n .combobox-popup[data-current-placement^='bottom']::part(popup) {\n transform-origin: top;\n }\n\n /* ── Trigger: outer row that never scrolls ── */\n\n .combobox__trigger {\n display: flex;\n align-items: center;\n width: 100%;\n min-width: 0;\n position: relative;\n font-family: var(--nile-font-family-sans-serif, var(--ng-font-family-body));\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-medium));\n letter-spacing: normal;\n cursor: text;\n transition: 150ms color, 150ms border, 150ms box-shadow, 150ms background-color;\n background-color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border: solid 1px var(--nile-colors-neutral-500, var(--ng-colors-border-primary));\n outline: none;\n }\n\n .combobox__trigger:hover {\n border-color: var(--nile-colors-dark-900, var(--ng-colors-border-neutral));\n }\n\n .combobox--open .combobox__trigger,\n .combobox--focused .combobox__trigger {\n border-color: var(--ng-colors-border-brand);\n box-shadow: 0 0 0 1px var(--ng-colors-border-brand) inset;\n background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary));\n }\n\n .combobox--disabled .combobox__trigger {\n background-color: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-primary));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n cursor: not-allowed;\n user-select: none;\n }\n\n .combobox--warning .combobox__trigger {\n border-color: var(--nile-colors-yellow-500, var(--ng-colors-border-warning));\n }\n\n .combobox--error .combobox__trigger {\n border-color: var(--nile-colors-red-500, var(--ng-colors-border-error));\n }\n\n .combobox--success .combobox__trigger {\n border-color: var(--nile-colors-green-500, var(--ng-componentcolors-utility-success-500));\n }\n\n /* Size: small */\n .combobox--small .combobox__trigger {\n border-radius: var(--nile-radius-sm, var(--ng-radius-md));\n font-size: var(--nile-type-scale-2, var(--ng-font-size-text-xs));\n padding: var(--nile-spacing-md, var(--ng-spacing-sm)) var(--nile-spacing-md, var(--ng-spacing-md));\n min-height: var(--nile-height-32px, var(--ng-height-32px));\n }\n\n /* Size: medium */\n .combobox--medium .combobox__trigger {\n border-radius: var(--nile-radius-sm, var(--ng-radius-md));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md));\n padding: var(--nile-spacing-lg, var(--ng-spacing-md)) var(--nile-spacing-lg, var(--ng-spacing-lg));\n min-height: var(--nile-height-40px, var(--ng-height-40px));\n box-sizing: border-box;\n }\n\n /* Size: large */\n .combobox--large .combobox__trigger {\n border-radius: var(--nile-radius-sm, var(--ng-radius-md));\n font-size: var(--nile-type-scale-4, var(--ng-font-size-text-md));\n padding: var(--nile-spacing-xl, var(--ng-spacing-lg)) var(--nile-spacing-xl, var(--ng-spacing-xl));\n min-height: var(--nile-height-48px, var(--ng-height-48px));\n }\n\n .combobox--pill .combobox__trigger {\n border-radius: var(--nile-radius-3xl, var(--ng-radius-3xl));\n }\n\n .combobox--filled .combobox__trigger {\n border: none;\n background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary));\n }\n\n .combobox--filled.combobox--open .combobox__trigger,\n .combobox--filled.combobox--focused .combobox__trigger {\n outline: 3px solid rgba(0, 89, 255, 0.4);\n }\n\n /* ── Inner area: holds tags + input ── */\n\n .combobox__scroll-area {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 4px;\n overflow: hidden;\n }\n\n /* Single-line: horizontal scroll for overflowing tags */\n .combobox__scroll-area--single-line {\n flex-wrap: nowrap;\n overflow-x: auto;\n overflow-y: hidden;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: thin;\n scrollbar-color: var(--nile-colors-neutral-500, var(--ng-colors-border-primary)) transparent;\n }\n\n .combobox__scroll-area--single-line::-webkit-scrollbar {\n height: 3px;\n }\n\n .combobox__scroll-area--single-line::-webkit-scrollbar-track {\n background: transparent;\n }\n\n .combobox__scroll-area--single-line::-webkit-scrollbar-thumb {\n background: var(--nile-colors-neutral-500, var(--ng-colors-bg-quaternary));\n border-radius: 3px;\n }\n\n .combobox__scroll-area--single-line::-webkit-scrollbar-thumb:hover {\n background: var(--nile-colors-dark-500, var(--ng-colors-fg-quaternary-400));\n }\n\n /* Wrap: tags flow to multiple lines, trigger grows in height */\n .combobox__scroll-area--wrap {\n flex-wrap: wrap;\n overflow: visible;\n }\n\n /* ── Tags inside the scroll area ── */\n\n .combobox__scroll-area nile-tag {\n cursor: pointer;\n flex-shrink: 0;\n }\n\n .combobox--disabled .combobox__scroll-area nile-tag {\n cursor: not-allowed;\n }\n\n .combobox__tags-count {\n color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700));\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-medium));\n line-height: var(--nile-line-height-xsmall, var(--ng-line-height-text-sm));\n letter-spacing: 0.2px;\n white-space: nowrap;\n flex-shrink: 0;\n }\n\n /* ── Input wrapper inside scroll area ── */\n\n .combobox__input-wrapper {\n flex: 1;\n min-width: 60px;\n display: flex;\n align-items: center;\n }\n\n .combobox__input {\n width: 100%;\n font: inherit;\n border: none;\n background: none;\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n cursor: inherit;\n overflow: hidden;\n padding: 0;\n margin: 0;\n -webkit-appearance: none;\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: inherit;\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-regular));\n text-overflow: ellipsis;\n line-height: var(--nile-line-height-xsmall, var(--ng-line-height-text-sm));\n }\n\n .combobox__input::placeholder {\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n color: var(--nile-colors-text-placeholder, var(--ng-colors-text-placeholder));\n }\n\n .combobox__input:focus {\n outline: none;\n }\n\n .combobox--disabled .combobox__input {\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n pointer-events: none;\n }\n\n /* ── Hidden form value input ── */\n\n .combobox__value-input {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding: 0;\n margin: 0;\n opacity: 0;\n z-index: -1;\n }\n\n /* ── Action icons (clear, expand) ── */\n\n .combobox__actions {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n gap: var(--nile-spacing-sm, var(--ng-spacing-sm));\n margin-inline-start: auto;\n }\n\n .combobox__clear {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: none;\n padding: 0;\n cursor: pointer;\n color: var(--nile-colors-dark-500, var(--ng-colors-fg-quaternary-400));\n transition: 150ms color;\n }\n\n .combobox__clear:hover {\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n }\n\n .combobox__clear:focus {\n outline: none;\n }\n\n .combobox__expand-icon {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n transition: 250ms rotate ease;\n rotate: 0;\n }\n\n .combobox--open .combobox__expand-icon {\n rotate: -180deg;\n }\n\n /* ── Prefix / suffix ── */\n\n .combobox__prefix,\n .combobox__suffix {\n flex: 0;\n display: inline-flex;\n align-items: center;\n color: var(--nile-colors-dark-500, var(--ng-colors-text-tertiary-600));\n }\n\n .combobox__prefix {\n margin-inline-end: var(--nile-spacing-md, var(--ng-spacing-md));\n }\n\n /* ── Listbox (dropdown) ── */\n\n .combobox__listbox {\n display: flex;\n flex-direction: column;\n position: relative;\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md));\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-regular));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border: solid 1px var(--nile-colors-neutral-500, var(--ng-colors-border-secondary-alt));\n border-radius: var(--nile-radius-sm, var(--ng-radius-md));\n padding: 0;\n max-width: var(--auto-size-available-width);\n max-height: var(--auto-size-available-height);\n box-shadow: 0px 2px 4px 0px rgba(119, 125, 130, 0.15);\n overflow: hidden; /* Scrolling is handled by .combobox__options-scroll below */\n box-sizing: border-box;\n }\n\n .combobox__options-scroll {\n overflow-y: auto;\n flex: 0 1 auto;\n min-height: 0;\n }\n\n /* ── Options ── */\n\n .combobox__options {\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n color: rgb(133, 129, 129);\n display: block;\n position: relative;\n width: 100%;\n padding-bottom: 0;\n box-sizing: border-box;\n }\n\n .combobox__options.loading {\n opacity: 0.5;\n pointer-events: none;\n }\n\n .combobox__no-results {\n padding: var(--nile-spacing-lg, var(--ng-spacing-lg));\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-tertiary-600));\n text-align: center;\n }\n\n .combobox__no-results-title {\n font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-medium));\n color: var(--nile-colors-dark-700, var(--ng-colors-text-secondary-700));\n }\n\n .combobox__no-results-subtitle {\n margin-top: var(--nile-spacing-xs, var(--ng-spacing-xs));\n font-size: var(--nile-type-scale-2, var(--ng-font-size-text-xs));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-tertiary-600));\n }\n\n /* ── Options (both virtual and plain) ── */\n\n .combobox__options nile-option {\n width: 100%;\n display: block;\n }\n\n .combobox__options nile-option[selected] {\n background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary));\n }\n\n .combobox__options nile-option[selected]::part(base) {\n color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700));\n }\n\n .combobox__options-plain {\n display: flex;\n flex-direction: column;\n }\n\n .combobox__options-plain nile-option {\n flex-shrink: 0;\n }\n\n /* ── Top actions (Select All + Selected/All filter toggle) ── */\n\n .combobox__top-actions {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n gap: var(--nile-spacing-lg, var(--ng-spacing-lg));\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary));\n border-bottom: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));\n padding: var(--nile-spacing-lg, var(--ng-spacing-lg));\n user-select: none;\n }\n\n .combobox__top-actions--disabled {\n opacity: 0.6;\n pointer-events: none;\n }\n\n .combobox__select-all {\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-md, var(--ng-spacing-md));\n cursor: pointer;\n flex: 1 1 auto;\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n line-height: 14px;\n letter-spacing: 0.2px;\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n }\n\n .combobox__show-toggle {\n display: inline-flex;\n align-items: center;\n gap: var(--nile-spacing-md, var(--ng-spacing-md));\n border: none;\n background: none;\n padding: 0;\n border-radius: var(--nile-radius-sm, var(--ng-radius-sm));\n cursor: pointer;\n color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700));\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n line-height: 14px;\n letter-spacing: 0.2px;\n white-space: nowrap;\n }\n\n .combobox__show-toggle[disabled] {\n color: var(--nile-colors-primary-500, var(--ng-colors-fg-quaternary-400));\n cursor: not-allowed;\n }\n\n /* ── Footer ── */\n\n .combobox__footer {\n flex-shrink: 0;\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary));\n border-top: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n padding: var(--nile-spacing-md, 8px) var(--nile-spacing-lg, 12px);\n margin-top: 0;\n }\n\n .combobox__footer.loading {\n opacity: 0.5;\n pointer-events: none;\n }\n\n .combobox__footer-clear {\n display: inline-flex;\n align-items: center;\n color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700));\n border: none;\n background: none;\n padding: 0;\n cursor: pointer;\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n letter-spacing: 0.2px;\n }\n\n .combobox__footer-clear:hover {\n text-decoration: underline;\n }\n\n /* ── Loader ── */\n\n .combobox__loader {\n width: 100%;\n text-align: center;\n display: block;\n }\n\n .combobox__loader--icon {\n margin-top: var(--nile-spacing-xl, var(--ng-spacing-xl));\n animation: combobox-spin 0.6s linear infinite;\n }\n\n .combobox__loader--center {\n position: absolute;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: 75%;\n }\n\n @keyframes combobox-spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n\n .combobox__add-option::part(base) {\n color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700));\n }\n\n /* ── Grid layout ── */\n\n :host([grid-columns]) .combobox__options-scroll {\n overflow-y: auto;\n }\n\n .combobox__grid-row {\n width: 100%;\n }\n\n .combobox__grid-row nile-option {\n min-width: 0;\n overflow: hidden;\n }\n\n .combobox__grid-row nile-option::part(base) {\n border-radius: var(--nile-radius-xs, var(--ng-radius-sm));\n }\n\n /* ── Bidirectional grid layout (vertical + horizontal scroll) ── */\n\n .combobox__listbox.combobox__listbox--bidirectional {\n max-width: none;\n }\n\n .combobox__listbox--bidirectional .combobox__options-scroll {\n overflow: auto;\n scrollbar-width: thin;\n scrollbar-color: var(--nile-colors-neutral-500, var(--ng-colors-bg-quaternary)) transparent;\n }\n\n .combobox__listbox--bidirectional .combobox__options {\n width: max-content;\n min-width: 100%;\n }\n\n .combobox__listbox--bidirectional .combobox__grid-row {\n width: max-content;\n min-width: 100%;\n }\n\n /* ── Horizontal grid layout ── */\n\n .combobox__listbox.combobox__listbox--horizontal {\n overflow-x: auto;\n overflow-y: hidden;\n max-height: none;\n max-width: none;\n width: 100%;\n scrollbar-width: thin;\n scrollbar-color: var(--nile-colors-neutral-500, var(--ng-colors-bg-quaternary)) transparent;\n }\n\n .combobox__listbox--horizontal::-webkit-scrollbar {\n height: 6px;\n }\n\n .combobox__listbox--horizontal::-webkit-scrollbar-track {\n background: transparent;\n }\n\n .combobox__listbox--horizontal::-webkit-scrollbar-thumb {\n background: var(--nile-colors-neutral-500, var(--ng-colors-bg-quaternary));\n border-radius: 3px;\n }\n\n .combobox__listbox--horizontal::-webkit-scrollbar-thumb:hover {\n background: var(--nile-colors-dark-500, var(--ng-colors-fg-quaternary-400));\n }\n\n .combobox__options--horizontal {\n display: block;\n width: max-content;\n min-width: 100%;\n }\n\n .combobox__grid-col {\n border-right: 1px solid var(--nile-colors-neutral-200, var(--ng-colors-border-secondary));\n }\n\n .combobox__grid-col:last-child {\n border-right: none;\n }\n\n .combobox__grid-col nile-option {\n width: 100%;\n display: block;\n }\n\n .combobox__grid-col nile-option::part(base) {\n border-radius: 0;\n }\n\n /* ── Group headers (data-driven grouping) ── */\n\n /* Plain (non-virtualized) listbox: sticky relative to the scroll container.\n * Activated only when the host has [sticky-group-header]. */\n :host([sticky-group-header]) .combobox__options-plain .combobox__group-header {\n position: sticky;\n top: calc(var(--group-depth, 0) * 28px);\n z-index: 1;\n }\n\n /* Virtualized listbox: each row is absolutely positioned by the virtualizer.\n * Sticky doesn't pin against the scroll container because the row wrapper's\n * transform creates a containing block. Instead we render a separate\n * overlay inside the listbox that mirrors the currently-active group\n * header (computed on scroll). */\n .combobox__group-header-slot {\n pointer-events: none;\n z-index: 3;\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary));\n }\n .combobox__group-header-slot .combobox__group-header {\n height: 100%;\n box-sizing: border-box;\n }\n\n .combobox__group-sticky-overlay {\n position: sticky;\n top: 0;\n z-index: 2;\n pointer-events: none;\n height: 32px;\n overflow: hidden;\n }\n .combobox__group-sticky-overlay .combobox__group-header {\n box-shadow: 0 1px 0 0 var(--nile-colors-neutral-300, var(--ng-colors-border-secondary));\n }\n\n .combobox__group-header {\n display: flex;\n align-items: center;\n gap: 6px;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n /* Match the listbox's natural inline padding so the header sits like a\n * section divider, edge-to-edge with options. Nested groups indent by\n * depth. Override with --combobox-group-header-indent if needed. */\n padding-block: 8px;\n padding-inline-end: var(--nile-spacing-lg, var(--ng-spacing-lg));\n padding-inline-start: calc(var(--combobox-group-header-indent, var(--nile-spacing-lg, var(--ng-spacing-lg))) + var(--group-depth, 0) * 16px);\n font-family: var(--nile-font-family-sans-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-2, var(--ng-font-size-text-xs));\n font-weight: var(--nile-font-weight-semibold, var(--ng-font-weight-semibold));\n line-height: 1;\n text-transform: uppercase;\n letter-spacing: 0.06em;\n color: var(--nile-colors-dark-500, var(--ng-colors-text-tertiary-600));\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary));\n border-bottom: 1px solid var(--nile-colors-neutral-300, var(--ng-colors-border-secondary));\n pointer-events: none;\n user-select: none;\n }\n\n .combobox__group-label {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .combobox__group-prefix {\n flex-shrink: 0;\n color: inherit;\n }\n\n /* ── Help / Error ── */\n\n .form-control__help-text {\n display: none;\n }\n\n .form-control--has-help-text .form-control__help-text {\n display: block;\n color: var(--nile-colors-dark-500, var(--ng-colors-text-tertiary-600));\n margin-top: var(--nile-spacing-lg, var(--ng-spacing-lg));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n }\n`;\n\nexport default [styles];\n"]}
|
|
1
|
+
{"version":3,"file":"nile-combobox.css.js","sourceRoot":"","sources":["../../../src/nile-combobox/nile-combobox.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAutBxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2025\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\nexport const styles = css`\n :host {\n display: block;\n box-sizing: border-box;\n -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 }\n\n :host *,\n :host *::before,\n :host *::after {\n box-sizing: inherit;\n }\n\n [hidden] {\n display: none;\n }\n\n /* ── Form control ── */\n\n .form-control .form-control__label {\n display: none;\n }\n\n .form-control--has-label .form-control__label {\n display: block;\n margin-bottom: var(--nile-spacing-sm, var(--ng-spacing-sm));\n color: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700));\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md));\n font-style: normal;\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-medium));\n line-height: var(--nile-spacing-2xl, var(--ng-line-height-text-sm));\n letter-spacing: 0.2px;\n }\n\n .form-control--has-label.form-control--medium .form-control__label {\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n }\n\n :host([required]) .form-control--has-label .form-control__label::after {\n content: '*';\n margin-inline-start: -2px;\n color: var(--nile-colors-red-700, var(--ng-colors-text-error-primary-600));\n }\n\n :host([disabled]) .form-control--has-label .form-control__label {\n user-select: none;\n -webkit-user-select: none;\n }\n\n /* ── Popup ── */\n\n .combobox-popup {\n flex: 1 1 auto;\n display: inline-flex;\n width: 100%;\n position: relative;\n vertical-align: middle;\n }\n\n .combobox-popup::part(popup) {\n z-index: 9999;\n }\n\n .combobox-popup[data-current-placement^='top']::part(popup) {\n transform-origin: bottom;\n }\n\n .combobox-popup[data-current-placement^='bottom']::part(popup) {\n transform-origin: top;\n }\n\n /* ── Trigger: outer row that never scrolls ── */\n\n .combobox__trigger {\n display: flex;\n align-items: center;\n width: 100%;\n min-width: 0;\n position: relative;\n font-family: var(--nile-font-family-sans-serif, var(--ng-font-family-body));\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-medium));\n letter-spacing: normal;\n cursor: text;\n transition: 150ms color, 150ms border, 150ms box-shadow, 150ms background-color;\n background-color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border: solid 1px var(--nile-colors-neutral-500, var(--ng-colors-border-primary));\n outline: none;\n }\n\n .combobox__trigger:hover {\n border-color: var(--nile-colors-dark-900, var(--ng-colors-border-neutral));\n }\n\n .combobox--open .combobox__trigger,\n .combobox--focused .combobox__trigger {\n border-color: var(--ng-colors-border-brand);\n box-shadow: 0 0 0 1px var(--ng-colors-border-brand) inset;\n background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-primary));\n }\n\n .combobox--disabled .combobox__trigger {\n background-color: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-primary));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n cursor: not-allowed;\n user-select: none;\n }\n\n .combobox--warning .combobox__trigger {\n border-color: var(--nile-colors-yellow-500, var(--ng-colors-border-warning));\n }\n\n .combobox--error .combobox__trigger {\n border-color: var(--nile-colors-red-500, var(--ng-colors-border-error));\n }\n\n .combobox--success .combobox__trigger {\n border-color: var(--nile-colors-green-500, var(--ng-componentcolors-utility-success-500));\n }\n\n /* Size: small */\n .combobox--small .combobox__trigger {\n border-radius: var(--nile-radius-sm, var(--ng-radius-md));\n font-size: var(--nile-type-scale-2, var(--ng-font-size-text-xs));\n padding: var(--nile-spacing-md, var(--ng-spacing-sm)) var(--nile-spacing-md, var(--ng-spacing-md));\n min-height: var(--nile-height-32px, var(--ng-height-32px));\n }\n\n /* Size: medium */\n .combobox--medium .combobox__trigger {\n border-radius: var(--nile-radius-sm, var(--ng-radius-md));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md));\n padding: var(--nile-spacing-lg, var(--ng-spacing-md)) var(--nile-spacing-lg, var(--ng-spacing-lg));\n min-height: var(--nile-height-40px, var(--ng-height-40px));\n box-sizing: border-box;\n }\n\n /* Size: large */\n .combobox--large .combobox__trigger {\n border-radius: var(--nile-radius-sm, var(--ng-radius-md));\n font-size: var(--nile-type-scale-4, var(--ng-font-size-text-md));\n padding: var(--nile-spacing-xl, var(--ng-spacing-lg)) var(--nile-spacing-xl, var(--ng-spacing-xl));\n min-height: var(--nile-height-48px, var(--ng-height-48px));\n }\n\n .combobox--pill .combobox__trigger {\n border-radius: var(--nile-radius-3xl, var(--ng-radius-3xl));\n }\n\n .combobox--filled .combobox__trigger {\n border: none;\n background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-primary));\n }\n\n .combobox--filled.combobox--open .combobox__trigger,\n .combobox--filled.combobox--focused .combobox__trigger {\n outline: 3px solid rgba(0, 89, 255, 0.4);\n }\n\n /* ── Inner area: holds tags + input ── */\n\n .combobox__scroll-area {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 4px;\n overflow: hidden;\n }\n\n /* Single-line: horizontal scroll for overflowing tags */\n .combobox__scroll-area--single-line {\n flex-wrap: nowrap;\n overflow-x: auto;\n overflow-y: hidden;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: thin;\n scrollbar-color: var(--nile-colors-neutral-500, var(--ng-colors-border-primary)) transparent;\n }\n\n .combobox__scroll-area--single-line::-webkit-scrollbar {\n height: 3px;\n }\n\n .combobox__scroll-area--single-line::-webkit-scrollbar-track {\n background: transparent;\n }\n\n .combobox__scroll-area--single-line::-webkit-scrollbar-thumb {\n background: var(--nile-colors-neutral-500, var(--ng-colors-bg-quaternary));\n border-radius: 3px;\n }\n\n .combobox__scroll-area--single-line::-webkit-scrollbar-thumb:hover {\n background: var(--nile-colors-dark-500, var(--ng-colors-fg-quaternary-400));\n }\n\n /* Wrap: tags flow to multiple lines, trigger grows in height */\n .combobox__scroll-area--wrap {\n flex-wrap: wrap;\n overflow: visible;\n }\n\n /* ── Tags inside the scroll area ── */\n\n .combobox__scroll-area nile-tag {\n cursor: pointer;\n flex-shrink: 0;\n }\n\n .combobox--disabled .combobox__scroll-area nile-tag {\n cursor: not-allowed;\n }\n\n .combobox__tags-count {\n color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700));\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-medium));\n line-height: var(--nile-line-height-xsmall, var(--ng-line-height-text-sm));\n letter-spacing: 0.2px;\n white-space: nowrap;\n flex-shrink: 0;\n }\n\n /* ── Input wrapper inside scroll area ── */\n\n .combobox__input-wrapper {\n flex: 1;\n min-width: 60px;\n display: flex;\n align-items: center;\n }\n\n .combobox__input {\n width: 100%;\n font: inherit;\n border: none;\n background: none;\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n cursor: inherit;\n overflow: hidden;\n padding: 0;\n margin: 0;\n -webkit-appearance: none;\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: inherit;\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-regular));\n text-overflow: ellipsis;\n line-height: var(--nile-line-height-xsmall, var(--ng-line-height-text-sm));\n }\n\n .combobox__input::placeholder {\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n color: var(--nile-colors-text-placeholder, var(--ng-colors-text-placeholder));\n }\n\n .combobox__input:focus {\n outline: none;\n }\n\n .combobox--disabled .combobox__input {\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n pointer-events: none;\n }\n\n /* ── Hidden form value input ── */\n\n .combobox__value-input {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding: 0;\n margin: 0;\n opacity: 0;\n z-index: -1;\n }\n\n /* ── Action icons (clear, expand) ── */\n\n .combobox__actions {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n gap: var(--nile-spacing-sm, var(--ng-spacing-sm));\n margin-inline-start: auto;\n }\n\n .combobox__clear {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: none;\n padding: 0;\n cursor: pointer;\n color: var(--nile-colors-dark-500, var(--ng-colors-fg-quaternary-400));\n transition: 150ms color;\n }\n\n .combobox__clear:hover {\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n }\n\n .combobox__clear:focus {\n outline: none;\n }\n\n .combobox__expand-icon {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n transition: 250ms rotate ease;\n rotate: 0;\n }\n\n .combobox--open .combobox__expand-icon {\n rotate: -180deg;\n }\n\n /* ── Prefix / suffix ── */\n\n .combobox__prefix,\n .combobox__suffix {\n flex: 0;\n display: inline-flex;\n align-items: center;\n color: var(--nile-colors-dark-500, var(--ng-colors-text-tertiary-600));\n }\n\n .combobox__prefix {\n margin-inline-end: var(--nile-spacing-md, var(--ng-spacing-md));\n }\n\n /* ── Listbox (dropdown) ── */\n\n .combobox__listbox {\n display: flex;\n flex-direction: column;\n position: relative;\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md));\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-regular));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border: solid 1px var(--nile-colors-neutral-500, var(--ng-colors-border-primary));\n border-radius: var(--nile-radius-sm, var(--ng-radius-md));\n padding: 0;\n max-width: var(--auto-size-available-width);\n max-height: var(--auto-size-available-height);\n box-shadow: 0px 2px 4px 0px rgba(119, 125, 130, 0.15);\n overflow: hidden; /* Scrolling is handled by .combobox__options-scroll below */\n box-sizing: border-box;\n }\n\n .combobox__options-scroll {\n overflow-y: auto;\n flex: 0 1 auto;\n min-height: 0;\n }\n\n /* ── Options ── */\n\n .combobox__options {\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n color: rgb(133, 129, 129);\n display: block;\n position: relative;\n width: 100%;\n padding-bottom: 0;\n box-sizing: border-box;\n }\n\n .combobox__options.loading {\n opacity: 0.5;\n pointer-events: none;\n }\n\n .combobox__no-results {\n padding: var(--nile-spacing-lg, var(--ng-spacing-lg));\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-tertiary-600));\n text-align: center;\n }\n\n .combobox__no-results-title {\n font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-medium));\n color: var(--nile-colors-dark-700, var(--ng-colors-text-secondary-700));\n }\n\n .combobox__no-results-subtitle {\n margin-top: var(--nile-spacing-xs, var(--ng-spacing-xs));\n font-size: var(--nile-type-scale-2, var(--ng-font-size-text-xs));\n color: var(--nile-colors-dark-500, var(--ng-colors-text-tertiary-600));\n }\n\n /* ── Options (both virtual and plain) ── */\n\n .combobox__options nile-option {\n width: 100%;\n display: block;\n }\n\n .combobox__options nile-option[selected] {\n background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-active));\n }\n\n .combobox__options nile-option[selected]::part(base) {\n color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700));\n }\n\n .combobox__options-plain {\n display: flex;\n flex-direction: column;\n }\n\n .combobox__options-plain nile-option {\n flex-shrink: 0;\n }\n\n /* ── Top actions (Select All + Selected/All filter toggle) ── */\n\n .combobox__top-actions {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n gap: var(--nile-spacing-lg, var(--ng-spacing-lg));\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary));\n border-bottom: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-primary));\n padding: var(--nile-spacing-lg, var(--ng-spacing-lg));\n user-select: none;\n }\n\n .combobox__top-actions--disabled {\n opacity: 0.6;\n pointer-events: none;\n }\n\n .combobox__select-all {\n display: flex;\n align-items: center;\n gap: var(--nile-spacing-md, var(--ng-spacing-md));\n cursor: pointer;\n flex: 1 1 auto;\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n line-height: 14px;\n letter-spacing: 0.2px;\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n }\n\n .combobox__show-toggle {\n display: inline-flex;\n align-items: center;\n gap: var(--nile-spacing-md, var(--ng-spacing-md));\n border: none;\n background: none;\n padding: 0;\n border-radius: var(--nile-radius-sm, var(--ng-radius-sm));\n cursor: pointer;\n color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700));\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n line-height: 14px;\n letter-spacing: 0.2px;\n white-space: nowrap;\n }\n\n .combobox__show-toggle[disabled] {\n color: var(--nile-colors-primary-500, var(--ng-colors-fg-quaternary-400));\n cursor: not-allowed;\n }\n\n /* ── Footer ── */\n\n .combobox__footer {\n flex-shrink: 0;\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary));\n border-top: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-primary));\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n padding: var(--nile-spacing-md, 8px) var(--nile-spacing-lg, 12px);\n margin-top: 0;\n }\n\n .combobox__footer.loading {\n opacity: 0.5;\n pointer-events: none;\n }\n\n .combobox__footer-clear {\n display: inline-flex;\n align-items: center;\n color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700));\n border: none;\n background: none;\n padding: 0;\n cursor: pointer;\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n letter-spacing: 0.2px;\n }\n\n .combobox__footer-clear:hover {\n text-decoration: underline;\n }\n\n /* ── Loader ── */\n\n .combobox__loader {\n width: 100%;\n text-align: center;\n display: block;\n }\n\n .combobox__loader--icon {\n margin-top: var(--nile-spacing-xl, var(--ng-spacing-xl));\n animation: combobox-spin 0.6s linear infinite;\n }\n\n .combobox__loader--center {\n position: absolute;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n height: 75%;\n }\n\n @keyframes combobox-spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n\n .combobox__add-option::part(base) {\n color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700));\n }\n\n /* ── Grid layout ── */\n\n :host([grid-columns]) .combobox__options-scroll {\n overflow-y: auto;\n }\n\n .combobox__grid-row {\n width: 100%;\n }\n\n .combobox__grid-row nile-option {\n min-width: 0;\n overflow: hidden;\n }\n\n .combobox__grid-row nile-option::part(base) {\n border-radius: var(--nile-radius-xs, var(--ng-radius-sm));\n }\n\n /* ── Bidirectional grid layout (vertical + horizontal scroll) ── */\n\n .combobox__listbox.combobox__listbox--bidirectional {\n max-width: none;\n }\n\n .combobox__listbox--bidirectional .combobox__options-scroll {\n overflow: auto;\n scrollbar-width: thin;\n scrollbar-color: var(--nile-colors-neutral-500, var(--ng-colors-bg-quaternary)) transparent;\n }\n\n .combobox__listbox--bidirectional .combobox__options {\n width: max-content;\n min-width: 100%;\n }\n\n .combobox__listbox--bidirectional .combobox__grid-row {\n width: max-content;\n min-width: 100%;\n }\n\n /* ── Horizontal grid layout ── */\n\n .combobox__listbox.combobox__listbox--horizontal {\n overflow-x: auto;\n overflow-y: hidden;\n max-height: none;\n max-width: none;\n width: 100%;\n scrollbar-width: thin;\n scrollbar-color: var(--nile-colors-neutral-500, var(--ng-colors-bg-quaternary)) transparent;\n }\n\n .combobox__listbox--horizontal::-webkit-scrollbar {\n height: 6px;\n }\n\n .combobox__listbox--horizontal::-webkit-scrollbar-track {\n background: transparent;\n }\n\n .combobox__listbox--horizontal::-webkit-scrollbar-thumb {\n background: var(--nile-colors-neutral-500, var(--ng-colors-bg-quaternary));\n border-radius: 3px;\n }\n\n .combobox__listbox--horizontal::-webkit-scrollbar-thumb:hover {\n background: var(--nile-colors-dark-500, var(--ng-colors-fg-quaternary-400));\n }\n\n .combobox__options--horizontal {\n display: block;\n width: max-content;\n min-width: 100%;\n }\n\n .combobox__grid-col {\n border-right: 1px solid var(--nile-colors-neutral-200, var(--ng-colors-border-primary));\n }\n\n .combobox__grid-col:last-child {\n border-right: none;\n }\n\n .combobox__grid-col nile-option {\n width: 100%;\n display: block;\n }\n\n .combobox__grid-col nile-option::part(base) {\n border-radius: 0;\n }\n\n /* ── Group headers (data-driven grouping) ── */\n\n /* Plain (non-virtualized) listbox: sticky relative to the scroll container.\n * Activated only when the host has [sticky-group-header]. */\n :host([sticky-group-header]) .combobox__options-plain .combobox__group-header {\n position: sticky;\n top: calc(var(--group-depth, 0) * 28px);\n z-index: 1;\n }\n\n /* Virtualized listbox: each row is absolutely positioned by the virtualizer.\n * Sticky doesn't pin against the scroll container because the row wrapper's\n * transform creates a containing block. Instead we render a separate\n * overlay inside the listbox that mirrors the currently-active group\n * header (computed on scroll). */\n .combobox__group-header-slot {\n pointer-events: none;\n z-index: 3;\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary));\n }\n .combobox__group-header-slot .combobox__group-header {\n height: 100%;\n box-sizing: border-box;\n }\n\n .combobox__group-sticky-overlay {\n position: sticky;\n top: 0;\n z-index: 2;\n pointer-events: none;\n height: 32px;\n overflow: hidden;\n }\n .combobox__group-sticky-overlay .combobox__group-header {\n box-shadow: 0 1px 0 0 var(--nile-colors-neutral-300, var(--ng-colors-border-primary));\n }\n\n .combobox__group-header {\n display: flex;\n align-items: center;\n gap: 6px;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n /* Match the listbox's natural inline padding so the header sits like a\n * section divider, edge-to-edge with options. Nested groups indent by\n * depth. Override with --combobox-group-header-indent if needed. */\n padding-block: 8px;\n padding-inline-end: var(--nile-spacing-lg, var(--ng-spacing-lg));\n padding-inline-start: calc(var(--combobox-group-header-indent, var(--nile-spacing-lg, var(--ng-spacing-lg))) + var(--group-depth, 0) * 16px);\n font-family: var(--nile-font-family-sans-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-2, var(--ng-font-size-text-xs));\n font-weight: var(--nile-font-weight-semibold, var(--ng-font-weight-semibold));\n line-height: 1;\n text-transform: uppercase;\n letter-spacing: 0.06em;\n color: var(--nile-colors-dark-500, var(--ng-colors-text-tertiary-600));\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary));\n border-bottom: 1px solid var(--nile-colors-neutral-300, var(--ng-colors-border-primary));\n pointer-events: none;\n user-select: none;\n }\n\n .combobox__group-label {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .combobox__group-prefix {\n flex-shrink: 0;\n color: inherit;\n }\n\n /* ── Help / Error ── */\n\n .form-control__help-text {\n display: none;\n }\n\n .form-control--has-help-text .form-control__help-text {\n display: block;\n color: var(--nile-colors-dark-500, var(--ng-colors-text-tertiary-600));\n margin-top: var(--nile-spacing-lg, var(--ng-spacing-lg));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n }\n`;\n\nexport default [styles];\n"]}
|