@aquera/nile-elements 1.6.1 → 1.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/README.md +6 -0
  2. package/dist/index.cjs.js +1 -1
  3. package/dist/index.esm.js +1 -1
  4. package/dist/index.js +953 -595
  5. package/dist/internal/enum.cjs.js +1 -1
  6. package/dist/internal/enum.cjs.js.map +1 -1
  7. package/dist/internal/enum.esm.js +1 -1
  8. package/dist/nile-badge/index.cjs.js +1 -1
  9. package/dist/nile-badge/index.esm.js +1 -1
  10. package/dist/nile-badge/nile-badge.cjs.js +1 -1
  11. package/dist/nile-badge/nile-badge.cjs.js.map +1 -1
  12. package/dist/nile-badge/nile-badge.esm.js +1 -1
  13. package/dist/nile-button/index.cjs.js +1 -1
  14. package/dist/nile-button/index.esm.js +1 -1
  15. package/dist/nile-button/nile-button.cjs.js +1 -1
  16. package/dist/nile-button/nile-button.cjs.js.map +1 -1
  17. package/dist/nile-button/nile-button.esm.js +1 -1
  18. package/dist/nile-carousel/index.cjs.js +1 -1
  19. package/dist/nile-carousel/index.esm.js +1 -1
  20. package/dist/nile-carousel/nile-carousel.cjs.js +1 -1
  21. package/dist/nile-carousel/nile-carousel.cjs.js.map +1 -1
  22. package/dist/nile-carousel/nile-carousel.esm.js +1 -1
  23. package/dist/nile-dialog/index.cjs.js +1 -1
  24. package/dist/nile-dialog/index.esm.js +1 -1
  25. package/dist/nile-dialog/nile-dialog.cjs.js +1 -1
  26. package/dist/nile-dialog/nile-dialog.cjs.js.map +1 -1
  27. package/dist/nile-dialog/nile-dialog.esm.js +1 -1
  28. package/dist/nile-drawer/index.cjs.js +1 -1
  29. package/dist/nile-drawer/index.esm.js +1 -1
  30. package/dist/nile-drawer/nile-drawer.cjs.js +1 -1
  31. package/dist/nile-drawer/nile-drawer.cjs.js.map +1 -1
  32. package/dist/nile-drawer/nile-drawer.esm.js +1 -1
  33. package/dist/nile-floating-panel/nile-floating-panel.cjs.js +1 -1
  34. package/dist/nile-floating-panel/nile-floating-panel.cjs.js.map +1 -1
  35. package/dist/nile-floating-panel/nile-floating-panel.esm.js +1 -1
  36. package/dist/nile-icon/icons/svg/folder_delete.cjs.js +2 -0
  37. package/dist/nile-icon/icons/svg/folder_delete.cjs.js.map +1 -0
  38. package/dist/nile-icon/icons/svg/folder_delete.esm.js +1 -0
  39. package/dist/nile-icon/icons/svg/index.cjs.js +1 -1
  40. package/dist/nile-icon/icons/svg/index.esm.js +1 -1
  41. package/dist/nile-icon/icons/svg/layers-three-02.cjs.js +1 -1
  42. package/dist/nile-icon/icons/svg/layers-three-02.cjs.js.map +1 -1
  43. package/dist/nile-icon/icons/svg/layers-three-02.esm.js +1 -1
  44. package/dist/nile-icon/index.cjs.js +1 -1
  45. package/dist/nile-icon/index.cjs.js.map +1 -1
  46. package/dist/nile-icon/index.esm.js +1 -1
  47. package/dist/nile-icon-button/index.cjs.js +1 -1
  48. package/dist/nile-icon-button/index.esm.js +1 -1
  49. package/dist/nile-icon-button/nile-icon-button.cjs.js +1 -1
  50. package/dist/nile-icon-button/nile-icon-button.cjs.js.map +1 -1
  51. package/dist/nile-icon-button/nile-icon-button.esm.js +1 -1
  52. package/dist/nile-input/index.cjs.js +1 -1
  53. package/dist/nile-input/index.esm.js +1 -1
  54. package/dist/nile-input/nile-input.cjs.js +1 -1
  55. package/dist/nile-input/nile-input.cjs.js.map +1 -1
  56. package/dist/nile-input/nile-input.esm.js +1 -1
  57. package/dist/nile-menu-item/index.cjs.js +1 -1
  58. package/dist/nile-menu-item/index.esm.js +1 -1
  59. package/dist/nile-menu-item/nile-menu-item.cjs.js +1 -1
  60. package/dist/nile-menu-item/nile-menu-item.cjs.js.map +1 -1
  61. package/dist/nile-menu-item/nile-menu-item.esm.js +1 -1
  62. package/dist/nile-option/index.cjs.js +1 -1
  63. package/dist/nile-option/index.esm.js +1 -1
  64. package/dist/nile-option/nile-option.cjs.js +1 -1
  65. package/dist/nile-option/nile-option.cjs.js.map +1 -1
  66. package/dist/nile-option/nile-option.esm.js +1 -1
  67. package/dist/nile-otp-input/index.cjs.js +2 -0
  68. package/dist/nile-otp-input/index.cjs.js.map +1 -0
  69. package/dist/nile-otp-input/index.esm.js +1 -0
  70. package/dist/nile-otp-input/nile-otp-input.cjs.js +2 -0
  71. package/dist/nile-otp-input/nile-otp-input.cjs.js.map +1 -0
  72. package/dist/nile-otp-input/nile-otp-input.css.cjs.js +2 -0
  73. package/dist/nile-otp-input/nile-otp-input.css.cjs.js.map +1 -0
  74. package/dist/nile-otp-input/nile-otp-input.css.esm.js +257 -0
  75. package/dist/nile-otp-input/nile-otp-input.enum.cjs.js +2 -0
  76. package/dist/nile-otp-input/nile-otp-input.enum.cjs.js.map +1 -0
  77. package/dist/nile-otp-input/nile-otp-input.enum.esm.js +1 -0
  78. package/dist/nile-otp-input/nile-otp-input.esm.js +103 -0
  79. package/dist/nile-select/index.cjs.js +1 -1
  80. package/dist/nile-select/index.esm.js +1 -1
  81. package/dist/nile-select/nile-select.cjs.js +1 -1
  82. package/dist/nile-select/nile-select.cjs.js.map +1 -1
  83. package/dist/nile-select/nile-select.esm.js +1 -1
  84. package/dist/nile-side-bar-action-menu-item/index.cjs.js +1 -1
  85. package/dist/nile-side-bar-action-menu-item/index.esm.js +1 -1
  86. package/dist/nile-side-bar-action-menu-item/nile-side-bar-action-menu-item.cjs.js +1 -1
  87. package/dist/nile-side-bar-action-menu-item/nile-side-bar-action-menu-item.cjs.js.map +1 -1
  88. package/dist/nile-side-bar-action-menu-item/nile-side-bar-action-menu-item.esm.js +1 -1
  89. package/dist/nile-tab/index.cjs.js +1 -1
  90. package/dist/nile-tab/index.esm.js +1 -1
  91. package/dist/nile-tab/nile-tab.cjs.js +1 -1
  92. package/dist/nile-tab/nile-tab.cjs.js.map +1 -1
  93. package/dist/nile-tab/nile-tab.esm.js +1 -1
  94. package/dist/nile-tab-group/index.cjs.js +1 -1
  95. package/dist/nile-tab-group/index.esm.js +1 -1
  96. package/dist/nile-tab-group/nile-tab-group.cjs.js +1 -1
  97. package/dist/nile-tab-group/nile-tab-group.cjs.js.map +1 -1
  98. package/dist/nile-tab-group/nile-tab-group.esm.js +1 -1
  99. package/dist/nile-tag/index.cjs.js +1 -1
  100. package/dist/nile-tag/index.esm.js +1 -1
  101. package/dist/nile-tag/nile-tag.cjs.js +1 -1
  102. package/dist/nile-tag/nile-tag.cjs.js.map +1 -1
  103. package/dist/nile-tag/nile-tag.esm.js +1 -1
  104. package/dist/nile-toast/index.cjs.js +1 -1
  105. package/dist/nile-toast/index.esm.js +1 -1
  106. package/dist/nile-toast/nile-toast.cjs.js +1 -1
  107. package/dist/nile-toast/nile-toast.cjs.js.map +1 -1
  108. package/dist/nile-toast/nile-toast.esm.js +1 -1
  109. package/dist/nile-tree/index.cjs.js +1 -1
  110. package/dist/nile-tree/index.esm.js +1 -1
  111. package/dist/nile-tree/nile-tree.cjs.js +1 -1
  112. package/dist/nile-tree/nile-tree.cjs.js.map +1 -1
  113. package/dist/nile-tree/nile-tree.esm.js +1 -1
  114. package/dist/nile-tree-item/index.cjs.js +1 -1
  115. package/dist/nile-tree-item/index.esm.js +1 -1
  116. package/dist/nile-tree-item/nile-tree-item.cjs.js +1 -1
  117. package/dist/nile-tree-item/nile-tree-item.cjs.js.map +1 -1
  118. package/dist/nile-tree-item/nile-tree-item.esm.js +1 -1
  119. package/dist/nile-virtual-select/index.cjs.js +1 -1
  120. package/dist/nile-virtual-select/index.esm.js +1 -1
  121. package/dist/nile-virtual-select/nile-virtual-select.cjs.js +2 -2
  122. package/dist/nile-virtual-select/nile-virtual-select.esm.js +1 -1
  123. package/dist/src/index.d.ts +1 -0
  124. package/dist/src/index.js +1 -0
  125. package/dist/src/index.js.map +1 -1
  126. package/dist/src/internal/enum.d.ts +21 -0
  127. package/dist/src/internal/enum.js +23 -1
  128. package/dist/src/internal/enum.js.map +1 -1
  129. package/dist/src/nile-floating-panel/nile-floating-panel.d.ts +2 -0
  130. package/dist/src/nile-floating-panel/nile-floating-panel.js +12 -1
  131. package/dist/src/nile-floating-panel/nile-floating-panel.js.map +1 -1
  132. package/dist/src/nile-icon/icons/svg/folder_delete.d.ts +5 -0
  133. package/dist/src/nile-icon/icons/svg/folder_delete.js +5 -0
  134. package/dist/src/nile-icon/icons/svg/folder_delete.js.map +1 -0
  135. package/dist/src/nile-icon/icons/svg/index.d.ts +1 -0
  136. package/dist/src/nile-icon/icons/svg/index.js +1 -0
  137. package/dist/src/nile-icon/icons/svg/index.js.map +1 -1
  138. package/dist/src/nile-icon/icons/svg/layers-three-02.d.ts +1 -1
  139. package/dist/src/nile-icon/icons/svg/layers-three-02.js +1 -1
  140. package/dist/src/nile-icon/icons/svg/layers-three-02.js.map +1 -1
  141. package/dist/src/nile-otp-input/index.d.ts +1 -0
  142. package/dist/src/nile-otp-input/index.js +2 -0
  143. package/dist/src/nile-otp-input/index.js.map +1 -0
  144. package/dist/src/nile-otp-input/nile-otp-input.css.d.ts +12 -0
  145. package/dist/src/nile-otp-input/nile-otp-input.css.js +269 -0
  146. package/dist/src/nile-otp-input/nile-otp-input.css.js.map +1 -0
  147. package/dist/src/nile-otp-input/nile-otp-input.d.ts +156 -0
  148. package/dist/src/nile-otp-input/nile-otp-input.enum.d.ts +26 -0
  149. package/dist/src/nile-otp-input/nile-otp-input.enum.js +32 -0
  150. package/dist/src/nile-otp-input/nile-otp-input.enum.js.map +1 -0
  151. package/dist/src/nile-otp-input/nile-otp-input.js +762 -0
  152. package/dist/src/nile-otp-input/nile-otp-input.js.map +1 -0
  153. package/dist/src/nile-otp-input/nile-otp-input.test.d.ts +1 -0
  154. package/dist/src/nile-otp-input/nile-otp-input.test.js +493 -0
  155. package/dist/src/nile-otp-input/nile-otp-input.test.js.map +1 -0
  156. package/dist/src/version.js +2 -2
  157. package/dist/src/version.js.map +1 -1
  158. package/dist/tsconfig.tsbuildinfo +1 -1
  159. package/package.json +2 -1
  160. package/plop-templates/lit/index.ts.hbs +1 -1
  161. package/plop-templates/lit/lit.css.ts.hbs +1 -1
  162. package/plop-templates/lit/lit.ts.hbs +1 -1
  163. package/src/index.ts +2 -1
  164. package/src/internal/enum.ts +23 -1
  165. package/src/nile-floating-panel/nile-floating-panel.ts +10 -1
  166. package/src/nile-icon/icons/svg/folder_delete.ts +5 -0
  167. package/src/nile-icon/icons/svg/index.ts +1 -0
  168. package/src/nile-icon/icons/svg/layers-three-02.ts +1 -1
  169. package/src/nile-otp-input/index.ts +1 -0
  170. package/src/nile-otp-input/nile-otp-input.css.ts +271 -0
  171. package/src/nile-otp-input/nile-otp-input.enum.ts +30 -0
  172. package/src/nile-otp-input/nile-otp-input.test.ts +732 -0
  173. package/src/nile-otp-input/nile-otp-input.ts +835 -0
  174. package/vscode-html-custom-data.json +171 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nile-otp-input.test.js","sourceRoot":"","sources":["../../../src/nile-otp-input/nile-otp-input.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { aTimeout, expect, fixture, html } from '@open-wc/testing';\nimport './nile-otp-input';\nimport type { NileOtpInput } from './nile-otp-input';\n\nconst getCells = (el: NileOtpInput) =>\n Array.from(el.shadowRoot!.querySelectorAll<HTMLInputElement>('.otp__cell'));\n\nconst inputCell = async (el: NileOtpInput, index: number, value: string) => {\n const cell = getCells(el)[index];\n cell.value = value;\n cell.dispatchEvent(new Event('input', { bubbles: true, composed: true }));\n await el.updateComplete;\n return cell;\n};\n\nconst pressKey = async (\n el: NileOtpInput,\n index: number,\n key: string,\n opts: Partial<KeyboardEventInit> = {}\n) => {\n const cell = getCells(el)[index];\n cell.dispatchEvent(\n new KeyboardEvent('keydown', {\n key,\n bubbles: true,\n composed: true,\n cancelable: true,\n ...opts,\n })\n );\n await el.updateComplete;\n return cell;\n};\n\nconst pasteInto = async (el: NileOtpInput, index: number, text: string) => {\n const cell = getCells(el)[index];\n const event = new Event('paste', {\n bubbles: true,\n composed: true,\n cancelable: true,\n }) as ClipboardEvent;\n Object.defineProperty(event, 'clipboardData', {\n value: { getData: () => text },\n });\n cell.dispatchEvent(event);\n await el.updateComplete;\n};\n\ndescribe('NileOtpInput', () => {\n // ---- Rendering ----\n\n it('renders default 6 cells', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input></nile-otp-input>`\n );\n expect(el).to.exist;\n expect(getCells(el).length).to.equal(6);\n });\n\n it('normalizes incoming value (strips non-numeric in numeric mode)', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input value=\"12A34B\"></nile-otp-input>`\n );\n await el.updateComplete;\n expect(el.value).to.equal('1234');\n expect(getCells(el).map(c => c.value)).to.deep.equal([\n '1', '2', '3', '4', '', '',\n ]);\n });\n\n it('supports configurable length and clamps below 4', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input length=\"8\"></nile-otp-input>`\n );\n expect(getCells(el).length).to.equal(8);\n\n el.length = 2;\n await el.updateComplete;\n expect(el.length).to.equal(4);\n expect(getCells(el).length).to.equal(4);\n });\n\n it('renders label when provided', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input label=\"Verification code\"></nile-otp-input>`\n );\n const label = el.shadowRoot!.querySelector('.form-control__label');\n expect(label).to.exist;\n expect(label!.textContent).to.contain('Verification code');\n });\n\n it('renders help text when provided', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input help-text=\"Enter your code\"></nile-otp-input>`\n );\n const helpText = el.shadowRoot!.querySelector('.form-control__help-text');\n expect(helpText).to.exist;\n expect(helpText!.textContent).to.contain('Enter your code');\n });\n\n it('renders error message when provided', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input error-message=\"Invalid code\"></nile-otp-input>`\n );\n const errorMsg = el.shadowRoot!.querySelector('.form-control__error-message');\n expect(errorMsg).to.exist;\n expect(errorMsg!.textContent).to.contain('Invalid code');\n });\n\n it('renders separators with separator-every', async () => {\n const el = await fixture<NileOtpInput>(html`\n <nile-otp-input separator=\"-\" separator-every=\"3\"></nile-otp-input>\n `);\n const separators = el.shadowRoot!.querySelectorAll('.otp__separator');\n expect(separators.length).to.equal(1);\n expect(separators[0].textContent!.trim()).to.equal('-');\n });\n\n it('renders separators from separator-positions', async () => {\n const el = await fixture<NileOtpInput>(html`\n <nile-otp-input\n length=\"8\"\n separator=\"/\"\n separator-positions=\"1, 3, 5\"\n ></nile-otp-input>\n `);\n const separators = el.shadowRoot!.querySelectorAll('.otp__separator');\n expect(separators.length).to.equal(3);\n separators.forEach(s =>\n expect(s.textContent!.trim()).to.equal('/')\n );\n });\n\n // ---- Input behavior ----\n\n it('auto-advances focus to next empty cell after typing', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input></nile-otp-input>`\n );\n const cells = getCells(el);\n\n cells[0].focus();\n await inputCell(el, 0, '1');\n await aTimeout(0);\n\n expect(el.value).to.equal('1');\n expect(el.shadowRoot!.activeElement).to.equal(cells[1]);\n });\n\n it('typing a character on a filled cell replaces it and advances', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input value=\"123456\"></nile-otp-input>`\n );\n await el.updateComplete;\n const cells = getCells(el);\n\n cells[2].focus();\n await el.updateComplete;\n await pressKey(el, 2, '9');\n await aTimeout(0);\n\n expect(el.value[2]).to.equal('9');\n });\n\n it('blocks invalid characters in numeric mode', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input></nile-otp-input>`\n );\n const first = getCells(el)[0];\n first.focus();\n\n const event = new KeyboardEvent('keydown', {\n key: 'A',\n bubbles: true,\n composed: true,\n cancelable: true,\n });\n first.dispatchEvent(event);\n\n expect(event.defaultPrevented).to.be.true;\n });\n\n it('allows alphanumeric values when alphanumeric attribute is set', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input alphanumeric></nile-otp-input>`\n );\n const cells = getCells(el);\n cells[0].focus();\n await el.updateComplete;\n\n await pressKey(el, 0, 'A');\n expect(el.value).to.equal('A');\n });\n\n it('alphanumeric overrides numeric-only', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input numeric-only alphanumeric></nile-otp-input>`\n );\n const cells = getCells(el);\n cells[0].focus();\n await el.updateComplete;\n\n await pressKey(el, 0, 'B');\n expect(el.value).to.equal('B');\n });\n\n it('supports controlled value updates', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input></nile-otp-input>`\n );\n\n el.value = '2468';\n await el.updateComplete;\n\n expect(getCells(el).map(c => c.value)).to.deep.equal([\n '2', '4', '6', '8', '', '',\n ]);\n });\n\n // ---- Focus management (ShadCN style) ----\n\n it('focus() targets the first empty cell', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input value=\"12\"></nile-otp-input>`\n );\n await el.updateComplete;\n const cells = getCells(el);\n\n el.focus();\n await aTimeout(0);\n\n expect(el.shadowRoot!.activeElement).to.equal(cells[2]);\n });\n\n it('clicking an empty cell beyond the cursor redirects to first empty', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input value=\"12\"></nile-otp-input>`\n );\n await el.updateComplete;\n const cells = getCells(el);\n\n cells[5].focus();\n await aTimeout(0);\n await el.updateComplete;\n\n expect(el.shadowRoot!.activeElement).to.equal(cells[2]);\n });\n\n it('clicking a filled cell focuses it directly', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input value=\"123\"></nile-otp-input>`\n );\n await el.updateComplete;\n const cells = getCells(el);\n\n cells[1].focus();\n await aTimeout(0);\n await el.updateComplete;\n\n expect(el.shadowRoot!.activeElement).to.equal(cells[1]);\n });\n\n // ---- Keyboard navigation ----\n\n it('Backspace clears current cell and retreats', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input value=\"123\"></nile-otp-input>`\n );\n await el.updateComplete;\n const cells = getCells(el);\n\n cells[2].focus();\n await pressKey(el, 2, 'Backspace');\n await aTimeout(0);\n\n expect(el.value).to.equal('12');\n expect(el.shadowRoot!.activeElement).to.equal(cells[1]);\n });\n\n it('Backspace on empty cell clears previous and moves there', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input value=\"12\"></nile-otp-input>`\n );\n await el.updateComplete;\n const cells = getCells(el);\n\n cells[2].focus();\n await pressKey(el, 2, 'Backspace');\n await aTimeout(0);\n\n expect(el.value).to.equal('1');\n expect(cells[1].value).to.equal('');\n expect(el.shadowRoot!.activeElement).to.equal(cells[1]);\n });\n\n it('Delete clears current cell without moving', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input value=\"123\"></nile-otp-input>`\n );\n await el.updateComplete;\n const cells = getCells(el);\n\n cells[1].focus();\n await pressKey(el, 1, 'Delete');\n await aTimeout(0);\n\n expect(cells[1].value).to.equal('');\n expect(el.shadowRoot!.activeElement).to.equal(cells[1]);\n });\n\n it('ArrowLeft moves focus back', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input value=\"123\"></nile-otp-input>`\n );\n await el.updateComplete;\n const cells = getCells(el);\n\n cells[2].focus();\n await pressKey(el, 2, 'ArrowLeft');\n await aTimeout(0);\n\n expect(el.shadowRoot!.activeElement).to.equal(cells[1]);\n });\n\n it('ArrowRight cannot move past the first empty cell', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input value=\"12\"></nile-otp-input>`\n );\n await el.updateComplete;\n const cells = getCells(el);\n\n cells[1].focus();\n await pressKey(el, 1, 'ArrowRight');\n await aTimeout(0);\n\n expect(el.shadowRoot!.activeElement).to.equal(cells[2]);\n\n await pressKey(el, 2, 'ArrowRight');\n await aTimeout(0);\n\n expect(el.shadowRoot!.activeElement).to.equal(cells[2]);\n });\n\n it('Home goes to first cell', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input value=\"123\"></nile-otp-input>`\n );\n await el.updateComplete;\n const cells = getCells(el);\n\n cells[2].focus();\n await pressKey(el, 2, 'Home');\n await aTimeout(0);\n\n expect(el.shadowRoot!.activeElement).to.equal(cells[0]);\n });\n\n it('End goes to first empty cell', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input value=\"123\"></nile-otp-input>`\n );\n await el.updateComplete;\n const cells = getCells(el);\n\n cells[0].focus();\n await pressKey(el, 0, 'End');\n await aTimeout(0);\n\n expect(el.shadowRoot!.activeElement).to.equal(cells[3]);\n });\n\n it('Space is blocked', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input></nile-otp-input>`\n );\n const cells = getCells(el);\n cells[0].focus();\n\n const event = new KeyboardEvent('keydown', {\n key: ' ',\n bubbles: true,\n composed: true,\n cancelable: true,\n });\n cells[0].dispatchEvent(event);\n\n expect(event.defaultPrevented).to.be.true;\n });\n\n // ---- Paste ----\n\n it('paste fills from position 0 and focuses next empty', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input></nile-otp-input>`\n );\n\n await pasteInto(el, 3, '987654');\n\n expect(el.value).to.equal('987654');\n expect(getCells(el).map(c => c.value).join('')).to.equal('987654');\n });\n\n it('paste emits nile-paste event', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input></nile-otp-input>`\n );\n let pasteValue = '';\n\n el.addEventListener('nile-paste', (e: Event) => {\n pasteValue = (e as CustomEvent).detail.value;\n });\n\n await pasteInto(el, 0, '123456');\n\n expect(pasteValue).to.equal('123456');\n });\n\n it('paste is ignored when disabled', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input disabled></nile-otp-input>`\n );\n\n await pasteInto(el, 0, '123456');\n\n expect(el.value).to.equal('');\n });\n\n // ---- Visual states ----\n\n it('applies warning class', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input warning></nile-otp-input>`\n );\n const base = el.shadowRoot!.querySelector('.otp');\n expect(base!.classList.contains('otp--warning')).to.be.true;\n });\n\n it('applies error class', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input error></nile-otp-input>`\n );\n const base = el.shadowRoot!.querySelector('.otp');\n expect(base!.classList.contains('otp--error')).to.be.true;\n });\n\n it('applies success class', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input success></nile-otp-input>`\n );\n const base = el.shadowRoot!.querySelector('.otp');\n expect(base!.classList.contains('otp--success')).to.be.true;\n });\n\n it('applies disabled class and blocks input', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input disabled></nile-otp-input>`\n );\n const base = el.shadowRoot!.querySelector('.otp');\n expect(base!.classList.contains('otp--disabled')).to.be.true;\n\n const first = getCells(el)[0];\n first.value = '9';\n first.dispatchEvent(new Event('input', { bubbles: true, composed: true }));\n await el.updateComplete;\n\n expect(el.value).to.equal('');\n expect(first.value).to.equal('');\n });\n\n it('applies readonly class and blocks input', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input readonly value=\"123456\"></nile-otp-input>`\n );\n const base = el.shadowRoot!.querySelector('.otp');\n expect(base!.classList.contains('otp--readonly')).to.be.true;\n\n const first = getCells(el)[0];\n first.value = '9';\n first.dispatchEvent(new Event('input', { bubbles: true, composed: true }));\n await el.updateComplete;\n\n expect(el.value).to.equal('123456');\n });\n\n // ---- Masked ----\n\n it('masked cells use type=\"password\" for filled non-active cells', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input masked value=\"12\"></nile-otp-input>`\n );\n await el.updateComplete;\n const cells = getCells(el);\n\n expect(cells[0].type).to.equal('password');\n expect(cells[1].type).to.equal('password');\n expect(cells[2].type).to.equal('text');\n });\n\n it('active masked cell shows text while typing', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input masked value=\"12\"></nile-otp-input>`\n );\n await el.updateComplete;\n const cells = getCells(el);\n\n cells[1].focus();\n await el.updateComplete;\n\n expect(cells[1].type).to.equal('text');\n expect(cells[0].type).to.equal('password');\n });\n\n it('unmasked cells are always type=\"text\"', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input value=\"12\"></nile-otp-input>`\n );\n await el.updateComplete;\n const cells = getCells(el);\n\n cells.forEach(c => expect(c.type).to.equal('text'));\n });\n\n // ---- Events ----\n\n it('emits nile-input and nile-change with value detail', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input></nile-otp-input>`\n );\n let inputDetail: any;\n let changeDetail: any;\n\n el.addEventListener('nile-input', (e: Event) => {\n inputDetail = (e as CustomEvent).detail;\n });\n el.addEventListener('nile-change', (e: Event) => {\n changeDetail = (e as CustomEvent).detail;\n });\n\n getCells(el)[0].focus();\n await el.updateComplete;\n await pressKey(el, 0, '7');\n\n expect(inputDetail.value).to.equal('7');\n expect(inputDetail.complete).to.be.false;\n expect(changeDetail.value).to.equal('7');\n });\n\n it('emits nile-complete when all cells are filled', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input length=\"4\" value=\"123\"></nile-otp-input>`\n );\n await el.updateComplete;\n let completedValue = '';\n\n el.addEventListener('nile-complete', (e: Event) => {\n completedValue = (e as CustomEvent).detail.value;\n });\n\n const cells = getCells(el);\n cells[3].focus();\n await el.updateComplete;\n await pressKey(el, 3, '4');\n\n expect(completedValue).to.equal('1234');\n });\n\n it('emits nile-focus when entering and nile-blur when leaving', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input></nile-otp-input>`\n );\n let focused = false;\n let blurred = false;\n\n el.addEventListener('nile-focus', () => { focused = true; });\n el.addEventListener('nile-blur', () => { blurred = true; });\n\n getCells(el)[0].focus();\n await el.updateComplete;\n expect(focused).to.be.true;\n\n getCells(el)[0].blur();\n await aTimeout(50);\n expect(blurred).to.be.true;\n });\n\n // ---- Public methods ----\n\n it('clear() empties all cells', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input value=\"123456\"></nile-otp-input>`\n );\n await el.updateComplete;\n\n el.clear();\n await el.updateComplete;\n\n expect(el.value).to.equal('');\n getCells(el).forEach(c => expect(c.value).to.equal(''));\n });\n\n it('clear() is blocked when disabled', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input disabled value=\"123456\"></nile-otp-input>`\n );\n await el.updateComplete;\n\n el.clear();\n await el.updateComplete;\n\n expect(el.value).to.equal('123456');\n });\n\n it('complete getter returns true when all cells filled', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input value=\"123456\"></nile-otp-input>`\n );\n await el.updateComplete;\n expect(el.complete).to.be.true;\n });\n\n it('complete getter returns false when cells are empty', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input value=\"12\"></nile-otp-input>`\n );\n await el.updateComplete;\n expect(el.complete).to.be.false;\n });\n\n // ---- Validation ----\n\n it('validates required and exact length using checkValidity', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input required></nile-otp-input>`\n );\n el.value = '12';\n await el.updateComplete;\n expect(el.checkValidity()).to.be.false;\n\n el.value = '123456';\n await el.updateComplete;\n expect(el.checkValidity()).to.be.true;\n });\n\n it('supports custom validity messaging', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input value=\"123456\"></nile-otp-input>`\n );\n el.setCustomValidity('Invalid OTP');\n await el.updateComplete;\n\n expect(el.checkValidity()).to.be.false;\n expect(el.validationMessage).to.equal('Invalid OTP');\n\n el.setCustomValidity('');\n await el.updateComplete;\n expect(el.checkValidity()).to.be.true;\n });\n\n it('validates against custom pattern', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input pattern=\"[0-9]{6}\" value=\"1234\"></nile-otp-input>`\n );\n await el.updateComplete;\n expect(el.checkValidity()).to.be.false;\n\n el.value = '123456';\n await el.updateComplete;\n expect(el.checkValidity()).to.be.true;\n });\n\n // ---- Form integration ----\n\n it('participates in form data submission', async () => {\n const form = await fixture<HTMLFormElement>(html`\n <form id=\"otp-form\">\n <nile-otp-input name=\"otp\" value=\"321654\"></nile-otp-input>\n </form>\n `);\n const data = new FormData(form);\n\n expect(data.get('otp')).to.equal('321654');\n });\n\n // ---- Placeholder ----\n\n it('shows no placeholder by default', async () => {\n const el = await fixture<NileOtpInput>(html`\n <nile-otp-input value=\"12\"></nile-otp-input>\n `);\n\n const placeholders = getCells(el).map(c => c.getAttribute('placeholder'));\n expect(placeholders).to.deep.equal([null, null, null, null, null, null]);\n });\n\n it('moves custom placeholder to active cell on focus', async () => {\n const el = await fixture<NileOtpInput>(\n html`<nile-otp-input placeholder=\"0\"></nile-otp-input>`\n );\n const cells = getCells(el);\n\n cells[0].focus();\n await el.updateComplete;\n\n const placeholders = getCells(el).map(c => c.getAttribute('placeholder'));\n expect(placeholders[0]).to.equal('0');\n expect(placeholders.slice(1).every(p => p === null)).to.be.true;\n });\n\n // ---- CSS parts ----\n\n it('exposes all required CSS parts', async () => {\n const el = await fixture<NileOtpInput>(html`\n <nile-otp-input\n label=\"Test\"\n help-text=\"Help\"\n error-message=\"Error\"\n separator=\"-\"\n separator-every=\"3\"\n ></nile-otp-input>\n `);\n\n expect(el.shadowRoot!.querySelector('[part=\"form-control\"]')).to.exist;\n expect(el.shadowRoot!.querySelector('[part=\"form-control-label\"]')).to.exist;\n expect(el.shadowRoot!.querySelector('[part=\"form-control-input\"]')).to.exist;\n expect(el.shadowRoot!.querySelector('[part=\"base\"]')).to.exist;\n expect(el.shadowRoot!.querySelector('[part=\"cell\"]')).to.exist;\n expect(el.shadowRoot!.querySelector('[part=\"separator\"]')).to.exist;\n expect(el.shadowRoot!.querySelector('[part=\"form-control-help-text\"]')).to.exist;\n expect(el.shadowRoot!.querySelector('[part=\"form-control-error-message\"]')).to.exist;\n });\n});\n"]}
@@ -1,6 +1,6 @@
1
1
  // Version utility - placeholders will be replaced during build
2
- export const NILE_ELEMENTS_VERSION = '1.6.1';
3
- export const NILE_VERSION = '1.2.2';
2
+ export const NILE_ELEMENTS_VERSION = '1.6.2';
3
+ export const NILE_VERSION = '1.2.3';
4
4
  // Set global versions for runtime access
5
5
  if (typeof window !== 'undefined') {
6
6
  window.nileElementsVersion = NILE_ELEMENTS_VERSION;
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,MAAM,CAAC,MAAM,qBAAqB,GAAG,2BAA2B,CAAC;AACjE,MAAM,CAAC,MAAM,YAAY,GAAG,kBAAkB,CAAC;AAE/C,yCAAyC;AACzC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IACjC,MAAc,CAAC,mBAAmB,GAAG,qBAAqB,CAAC;IAC3D,MAAc,CAAC,WAAW,GAAG,YAAY,CAAC;IAC3C,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,CAAC;AACzE,CAAC","sourcesContent":["// Version utility - placeholders will be replaced during build\nexport const NILE_ELEMENTS_VERSION = '1.6.1';\nexport const NILE_VERSION = '1.2.2';\n\n// Set global versions for runtime access\nif (typeof window !== 'undefined') {\n (window as any).nileElementsVersion = NILE_ELEMENTS_VERSION;\n (window as any).nileVersion = NILE_VERSION;\n window.process = window.process || { env: { NODE_ENV: 'production' } };\n}\n"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,MAAM,CAAC,MAAM,qBAAqB,GAAG,2BAA2B,CAAC;AACjE,MAAM,CAAC,MAAM,YAAY,GAAG,kBAAkB,CAAC;AAE/C,yCAAyC;AACzC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;IACjC,MAAc,CAAC,mBAAmB,GAAG,qBAAqB,CAAC;IAC3D,MAAc,CAAC,WAAW,GAAG,YAAY,CAAC;IAC3C,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,CAAC;AACzE,CAAC","sourcesContent":["// Version utility - placeholders will be replaced during build\nexport const NILE_ELEMENTS_VERSION = '1.6.2';\nexport const NILE_VERSION = '1.2.3';\n\n// Set global versions for runtime access\nif (typeof window !== 'undefined') {\n (window as any).nileElementsVersion = NILE_ELEMENTS_VERSION;\n (window as any).nileVersion = NILE_VERSION;\n window.process = window.process || { env: { NODE_ENV: 'production' } };\n}\n"]}