@aquera/nile-elements 0.1.70-beta-1.2 → 0.1.72-beta-1.0

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 (244) hide show
  1. package/README.md +3 -0
  2. package/demo/index.html +201 -237
  3. package/dist/aquera-nile-elements-0.1.57-beta-2.0.tgz +0 -0
  4. package/dist/axe.min-2b379f29.cjs.js +12 -0
  5. package/dist/axe.min-2b379f29.cjs.js.map +1 -0
  6. package/dist/axe.min-c2cd8733.esm.js +12 -0
  7. package/dist/{fixture-5b79f853.cjs.js → fixture-28d63bc4.cjs.js} +2 -2
  8. package/dist/{fixture-5b79f853.cjs.js.map → fixture-28d63bc4.cjs.js.map} +1 -1
  9. package/dist/{fixture-dbd66009.cjs.js → fixture-324a7ef9.cjs.js} +2 -2
  10. package/dist/{fixture-dbd66009.cjs.js.map → fixture-324a7ef9.cjs.js.map} +1 -1
  11. package/dist/{fixture-cf7bfcf5.esm.js → fixture-78a015b8.esm.js} +1 -1
  12. package/dist/fixture-add72f26.esm.js +569 -0
  13. package/dist/{fixture-90b199c4.esm.js → fixture-ba65eb22.esm.js} +1 -1
  14. package/dist/fixture-c1bd203f.cjs.js +395 -0
  15. package/dist/fixture-c1bd203f.cjs.js.map +1 -0
  16. package/dist/fixture-cb376a7f.cjs.js +395 -0
  17. package/dist/fixture-cb376a7f.cjs.js.map +1 -0
  18. package/dist/fixture-f2693d97.esm.js +569 -0
  19. package/dist/index.js +101 -11
  20. package/dist/nile-accordion/nile-accordian.test.cjs.js +1 -1
  21. package/dist/nile-accordion/nile-accordian.test.esm.js +1 -1
  22. package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js +1 -1
  23. package/dist/nile-auto-complete/nile-auto-complete.test.esm.js +1 -1
  24. package/dist/nile-avatar/nile-avatar.test.cjs.js +1 -1
  25. package/dist/nile-avatar/nile-avatar.test.esm.js +1 -1
  26. package/dist/nile-badge/nile-badge.test.cjs.js +1 -1
  27. package/dist/nile-badge/nile-badge.test.esm.js +1 -1
  28. package/dist/nile-button/nile-button.test.cjs.js +1 -1
  29. package/dist/nile-button/nile-button.test.esm.js +1 -1
  30. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.cjs.js +1 -1
  31. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.esm.js +1 -1
  32. package/dist/nile-calendar/nile-calendar.test.cjs.js +1 -1
  33. package/dist/nile-calendar/nile-calendar.test.esm.js +1 -1
  34. package/dist/nile-card/nile-card.test.cjs.js +1 -1
  35. package/dist/nile-card/nile-card.test.esm.js +1 -1
  36. package/dist/nile-checkbox/nile-checkbox.test.cjs.js +1 -1
  37. package/dist/nile-checkbox/nile-checkbox.test.esm.js +1 -1
  38. package/dist/nile-chip/nile-chip.test.cjs.js +1 -1
  39. package/dist/nile-chip/nile-chip.test.esm.js +1 -1
  40. package/dist/nile-dialog/nile-dialog.test.cjs.js +1 -1
  41. package/dist/nile-dialog/nile-dialog.test.esm.js +1 -1
  42. package/dist/nile-drawer/nile-drawer.test.cjs.js +1 -1
  43. package/dist/nile-drawer/nile-drawer.test.esm.js +1 -1
  44. package/dist/nile-dropdown/nile-dropdown.test.cjs.js +1 -1
  45. package/dist/nile-dropdown/nile-dropdown.test.esm.js +1 -1
  46. package/dist/nile-empty-state/nile-empty-state.test.cjs.js +1 -1
  47. package/dist/nile-empty-state/nile-empty-state.test.esm.js +1 -1
  48. package/dist/nile-error-message/nile-error-message.test.cjs.js +1 -1
  49. package/dist/nile-error-message/nile-error-message.test.esm.js +1 -1
  50. package/dist/nile-file-preview/nile-file-preview.test.cjs.js +1 -1
  51. package/dist/nile-file-preview/nile-file-preview.test.esm.js +1 -1
  52. package/dist/nile-file-upload/nile-file-upload.test.cjs.js +1 -1
  53. package/dist/nile-file-upload/nile-file-upload.test.esm.js +1 -1
  54. package/dist/nile-filter-chip/nile-filter-chip.test.cjs.js +1 -1
  55. package/dist/nile-filter-chip/nile-filter-chip.test.esm.js +1 -1
  56. package/dist/nile-form-group/nile-form-group.test.cjs.js +1 -1
  57. package/dist/nile-form-group/nile-form-group.test.esm.js +1 -1
  58. package/dist/nile-form-help-text/nile-form-help-text.test.cjs.js +1 -1
  59. package/dist/nile-form-help-text/nile-form-help-text.test.esm.js +1 -1
  60. package/dist/nile-hero/nile-hero.test.cjs.js +1 -1
  61. package/dist/nile-hero/nile-hero.test.esm.js +1 -1
  62. package/dist/nile-icon/nile-icon.test.cjs.js +1 -1
  63. package/dist/nile-icon/nile-icon.test.esm.js +1 -1
  64. package/dist/nile-input/nile-input.test.cjs.js +1 -1
  65. package/dist/nile-input/nile-input.test.esm.js +1 -1
  66. package/dist/nile-link/nile-link.test.cjs.js +1 -1
  67. package/dist/nile-link/nile-link.test.esm.js +1 -1
  68. package/dist/nile-loader/nile-loader.test.cjs.js +1 -1
  69. package/dist/nile-loader/nile-loader.test.esm.js +1 -1
  70. package/dist/nile-popover/nile-popover.test.cjs.js +1 -1
  71. package/dist/nile-popover/nile-popover.test.esm.js +1 -1
  72. package/dist/nile-popup/nile-popup.test.cjs.js +1 -1
  73. package/dist/nile-popup/nile-popup.test.esm.js +1 -1
  74. package/dist/nile-progress-bar/nile-progress-bar.test.cjs.js +1 -1
  75. package/dist/nile-progress-bar/nile-progress-bar.test.esm.js +1 -1
  76. package/dist/nile-radio/nile-radio.test.cjs.js +1 -1
  77. package/dist/nile-radio/nile-radio.test.esm.js +1 -1
  78. package/dist/nile-radio-group/nile-radio-group.test.cjs.js +1 -1
  79. package/dist/nile-radio-group/nile-radio-group.test.esm.js +1 -1
  80. package/dist/nile-select/nile-select.test.cjs.js +1 -1
  81. package/dist/nile-select/nile-select.test.esm.js +1 -1
  82. package/dist/nile-slide-toggle/nile-slide-toggle.test.cjs.js +1 -1
  83. package/dist/nile-slide-toggle/nile-slide-toggle.test.esm.js +1 -1
  84. package/dist/nile-tab-group/nile-tab-group.test.cjs.js +1 -1
  85. package/dist/nile-tab-group/nile-tab-group.test.esm.js +1 -1
  86. package/dist/nile-table-body/nile-table-body.cjs.js +1 -1
  87. package/dist/nile-table-body/nile-table-body.cjs.js.map +1 -1
  88. package/dist/nile-table-body/nile-table-body.esm.js +2 -2
  89. package/dist/nile-table-cell-item/nile-table-cell-item.cjs.js +1 -1
  90. package/dist/nile-table-cell-item/nile-table-cell-item.cjs.js.map +1 -1
  91. package/dist/nile-table-cell-item/nile-table-cell-item.css.cjs.js +1 -1
  92. package/dist/nile-table-cell-item/nile-table-cell-item.css.cjs.js.map +1 -1
  93. package/dist/nile-table-cell-item/nile-table-cell-item.css.esm.js +8 -3
  94. package/dist/nile-table-cell-item/nile-table-cell-item.esm.js +11 -5
  95. package/dist/nile-table-row/nile-table-row.cjs.js +1 -1
  96. package/dist/nile-table-row/nile-table-row.cjs.js.map +1 -1
  97. package/dist/nile-table-row/nile-table-row.css.cjs.js +1 -1
  98. package/dist/nile-table-row/nile-table-row.css.cjs.js.map +1 -1
  99. package/dist/nile-table-row/nile-table-row.css.esm.js +52 -0
  100. package/dist/nile-table-row/nile-table-row.esm.js +33 -6
  101. package/dist/nile-textarea/nile-textarea.test.cjs.js +1 -1
  102. package/dist/nile-textarea/nile-textarea.test.esm.js +1 -1
  103. package/dist/nile-virtual-select/nile-virtual-select.test.cjs.js +1 -1
  104. package/dist/nile-virtual-select/nile-virtual-select.test.esm.js +1 -1
  105. package/dist/src/internal/expandable-row-helper.d.ts +13 -0
  106. package/dist/src/internal/expandable-row-helper.js +37 -0
  107. package/dist/src/internal/expandable-row-helper.js.map +1 -0
  108. package/dist/src/internal/expandable-row-styles.d.ts +11 -0
  109. package/dist/src/internal/expandable-row-styles.js +27 -0
  110. package/dist/src/internal/expandable-row-styles.js.map +1 -0
  111. package/dist/src/internal/table-expandable-helper.d.ts +0 -0
  112. package/dist/src/internal/table-expandable-helper.js +2 -0
  113. package/dist/src/internal/table-expandable-helper.js.map +1 -0
  114. package/dist/src/internal/table-row-expandable-helper.d.ts +12 -0
  115. package/dist/src/internal/table-row-expandable-helper.js +32 -0
  116. package/dist/src/internal/table-row-expandable-helper.js.map +1 -0
  117. package/dist/src/internal/table-row-expandable-styles.d.ts +11 -0
  118. package/dist/src/internal/table-row-expandable-styles.js +12 -0
  119. package/dist/src/internal/table-row-expandable-styles.js.map +1 -0
  120. package/dist/src/nile-group-header/index.d.ts +1 -0
  121. package/dist/src/nile-group-header/index.js +2 -0
  122. package/dist/src/nile-group-header/index.js.map +1 -0
  123. package/dist/src/nile-group-header/nile-group-header.css.d.ts +12 -0
  124. package/dist/src/nile-group-header/nile-group-header.css.js +30 -0
  125. package/dist/src/nile-group-header/nile-group-header.css.js.map +1 -0
  126. package/dist/src/nile-group-header/nile-group-header.d.ts +19 -0
  127. package/dist/src/nile-group-header/nile-group-header.js +36 -0
  128. package/dist/src/nile-group-header/nile-group-header.js.map +1 -0
  129. package/dist/src/nile-group-header/nile-option-header.css.d.ts +12 -0
  130. package/dist/src/nile-group-header/nile-option-header.css.js +30 -0
  131. package/dist/src/nile-group-header/nile-option-header.css.js.map +1 -0
  132. package/dist/src/nile-group-header/nile-option-header.d.ts +33 -0
  133. package/dist/src/nile-group-header/nile-option-header.js +51 -0
  134. package/dist/src/nile-group-header/nile-option-header.js.map +1 -0
  135. package/dist/src/nile-option-header/index.d.ts +1 -0
  136. package/dist/src/nile-option-header/index.js +2 -0
  137. package/dist/src/nile-option-header/index.js.map +1 -0
  138. package/dist/src/nile-option-header/nile-option-header.css.d.ts +12 -0
  139. package/dist/src/nile-option-header/nile-option-header.css.js +30 -0
  140. package/dist/src/nile-option-header/nile-option-header.css.js.map +1 -0
  141. package/dist/src/nile-option-header/nile-option-header.d.ts +33 -0
  142. package/dist/src/nile-option-header/nile-option-header.js +51 -0
  143. package/dist/src/nile-option-header/nile-option-header.js.map +1 -0
  144. package/dist/src/nile-table-body/nile-table-body.d.ts +3 -0
  145. package/dist/src/nile-table-body/nile-table-body.js +32 -0
  146. package/dist/src/nile-table-body/nile-table-body.js.map +1 -1
  147. package/dist/src/nile-table-cell-item/nile-table-cell-item.css.js +5 -0
  148. package/dist/src/nile-table-cell-item/nile-table-cell-item.css.js.map +1 -1
  149. package/dist/src/nile-table-cell-item/nile-table-cell-item.d.ts +1 -0
  150. package/dist/src/nile-table-cell-item/nile-table-cell-item.js +14 -2
  151. package/dist/src/nile-table-cell-item/nile-table-cell-item.js.map +1 -1
  152. package/dist/src/nile-table-row/TableRowExpandableHelper.d.ts +9 -0
  153. package/dist/src/nile-table-row/TableRowExpandableHelper.js +26 -0
  154. package/dist/src/nile-table-row/TableRowExpandableHelper.js.map +1 -0
  155. package/dist/src/nile-table-row/helper.ts.d.ts +37 -0
  156. package/dist/src/nile-table-row/helper.ts.js +105 -0
  157. package/dist/src/nile-table-row/helper.ts.js.map +1 -0
  158. package/dist/src/nile-table-row/nile-table-row-expandable.d.ts +37 -0
  159. package/dist/src/nile-table-row/nile-table-row-expandable.js +105 -0
  160. package/dist/src/nile-table-row/nile-table-row-expandable.js.map +1 -0
  161. package/dist/src/nile-table-row/nile-table-row.css.js +52 -0
  162. package/dist/src/nile-table-row/nile-table-row.css.js.map +1 -1
  163. package/dist/src/nile-table-row/nile-table-row.d.ts +12 -1
  164. package/dist/src/nile-table-row/nile-table-row.js +113 -9
  165. package/dist/src/nile-table-row/nile-table-row.js.map +1 -1
  166. package/dist/src/nile-table-row-expandable/index.d.ts +1 -0
  167. package/dist/src/nile-table-row-expandable/index.js +2 -0
  168. package/dist/src/nile-table-row-expandable/index.js.map +1 -0
  169. package/dist/src/nile-table-row-expandable/nile-table-row-expandable.css.d.ts +12 -0
  170. package/dist/src/nile-table-row-expandable/nile-table-row-expandable.css.js +17 -0
  171. package/dist/src/nile-table-row-expandable/nile-table-row-expandable.css.js.map +1 -0
  172. package/dist/src/nile-table-row-expandable/nile-table-row-expandable.d.ts +37 -0
  173. package/dist/src/nile-table-row-expandable/nile-table-row-expandable.js +103 -0
  174. package/dist/src/nile-table-row-expandable/nile-table-row-expandable.js.map +1 -0
  175. package/dist/src/nile-tooltip/nile-tooltip-utils.d.ts +18 -0
  176. package/dist/src/nile-tooltip/nile-tooltip-utils.js +216 -0
  177. package/dist/src/nile-tooltip/nile-tooltip-utils.js.map +1 -0
  178. package/dist/src/nile-tooltip/nile-tooltip.test.d.ts +1 -0
  179. package/dist/src/nile-tooltip/nile-tooltip.test.js +148 -0
  180. package/dist/src/nile-tooltip/nile-tooltip.test.js.map +1 -0
  181. package/dist/tsconfig.tsbuildinfo +1 -1
  182. package/package.json +1 -1
  183. package/src/nile-table-body/nile-table-body.ts +27 -1
  184. package/src/nile-table-cell-item/nile-table-cell-item.css.ts +5 -0
  185. package/src/nile-table-cell-item/nile-table-cell-item.ts +15 -2
  186. package/src/nile-table-row/nile-table-row.css.ts +52 -0
  187. package/src/nile-table-row/nile-table-row.ts +108 -5
  188. package/vscode-html-custom-data.json +43 -4
  189. package/dist/src/internal/resizable-helper.d.ts +0 -59
  190. package/dist/src/internal/resizable-helper.js +0 -115
  191. package/dist/src/internal/resizable-helper.js.map +0 -1
  192. package/dist/src/internal/resizable-styles.d.ts +0 -16
  193. package/dist/src/internal/resizable-styles.js +0 -144
  194. package/dist/src/internal/resizable-styles.js.map +0 -1
  195. package/dist/src/nile-badge/__snapshots__/nile-badge.test.snap.js +0 -17
  196. package/dist/src/nile-calendar/__snapshots__/nile-calendar.test.snap.js +0 -310
  197. package/dist/src/nile-card/__snapshots__/nile-card.test.snap.js +0 -34
  198. package/dist/src/nile-checkbox/__snapshots__/nile-checkbox.test.snap.js +0 -31
  199. package/dist/src/nile-grid/data-processor.d.ts +0 -37
  200. package/dist/src/nile-grid/data-processor.js +0 -122
  201. package/dist/src/nile-grid/data-processor.js.map +0 -1
  202. package/dist/src/nile-grid/event-handlers.d.ts +0 -35
  203. package/dist/src/nile-grid/event-handlers.js +0 -158
  204. package/dist/src/nile-grid/event-handlers.js.map +0 -1
  205. package/dist/src/nile-grid/index.d.ts +0 -5
  206. package/dist/src/nile-grid/index.js +0 -6
  207. package/dist/src/nile-grid/index.js.map +0 -1
  208. package/dist/src/nile-grid/nile-grid.css.d.ts +0 -1
  209. package/dist/src/nile-grid/nile-grid.css.js +0 -120
  210. package/dist/src/nile-grid/nile-grid.css.js.map +0 -1
  211. package/dist/src/nile-grid/nile-grid.d.ts +0 -39
  212. package/dist/src/nile-grid/nile-grid.js +0 -182
  213. package/dist/src/nile-grid/nile-grid.js.map +0 -1
  214. package/dist/src/nile-grid/renderer.d.ts +0 -8
  215. package/dist/src/nile-grid/renderer.js +0 -78
  216. package/dist/src/nile-grid/renderer.js.map +0 -1
  217. package/dist/src/nile-grid/resize-handler.d.ts +0 -4
  218. package/dist/src/nile-grid/resize-handler.js +0 -36
  219. package/dist/src/nile-grid/resize-handler.js.map +0 -1
  220. package/dist/src/nile-grid/types.d.ts +0 -32
  221. package/dist/src/nile-grid/types.js +0 -2
  222. package/dist/src/nile-grid/types.js.map +0 -1
  223. package/dist/src/nile-grid/utils.d.ts +0 -4
  224. package/dist/src/nile-grid/utils.js +0 -32
  225. package/dist/src/nile-grid/utils.js.map +0 -1
  226. package/dist/src/nile-hero/__snapshots__/nile-hero.test.snap.js +0 -47
  227. package/dist/src/nile-icon/__snapshots__/nile-icon.test.snap.js +0 -16
  228. package/dist/src/nile-input/__snapshots__/nile-input.test.snap.js +0 -75
  229. package/dist/src/nile-popover/__snapshots__/nile-popover.test.snap.js +0 -22
  230. package/dist/src/nile-table-body/virtual-scroll-helper.d.ts +0 -9
  231. package/dist/src/nile-table-body/virtual-scroll-helper.js +0 -24
  232. package/dist/src/nile-table-body/virtual-scroll-helper.js.map +0 -1
  233. package/dist/src/nile-virtual-table-body/index.d.ts +0 -2
  234. package/dist/src/nile-virtual-table-body/index.js +0 -3
  235. package/dist/src/nile-virtual-table-body/index.js.map +0 -1
  236. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.css.d.ts +0 -1
  237. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.css.js +0 -44
  238. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.css.js.map +0 -1
  239. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.d.ts +0 -50
  240. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.js +0 -135
  241. package/dist/src/nile-virtual-table-body/nile-virtual-table-body.js.map +0 -1
  242. package/dist/src/nile-virtual-table-body/renderer.d.ts +0 -16
  243. package/dist/src/nile-virtual-table-body/renderer.js +0 -49
  244. package/dist/src/nile-virtual-table-body/renderer.js.map +0 -1
@@ -0,0 +1,148 @@
1
+ import { fixture, html, assert, oneEvent, waitUntil } from '@open-wc/testing';
2
+ import './nile-tooltip';
3
+ describe('NileTooltip', () => {
4
+ it('renders with default properties', async () => {
5
+ const el = await fixture(html `<nile-tooltip content="Hello"><button>Hover me</button></nile-tooltip>`);
6
+ assert.equal(el.content, 'Hello');
7
+ assert.equal(el.placement, 'top');
8
+ assert.equal(el.disabled, false);
9
+ assert.equal(el.open, false);
10
+ });
11
+ it('renders text content when no slot is used', async () => {
12
+ const el = await fixture(html `<nile-tooltip content="Fallback"><button>Trigger</button></nile-tooltip>`);
13
+ const content = el.shadowRoot.querySelector('.tooltip-content');
14
+ assert.include(content.textContent, 'Fallback');
15
+ });
16
+ it('uses slotted content when provided', async () => {
17
+ const el = await fixture(html `
18
+ <nile-tooltip>
19
+ <div slot="content">Slot Content</div>
20
+ <button>Trigger</button>
21
+ </nile-tooltip>
22
+ `);
23
+ const slot = el.shadowRoot.querySelector('slot[name="content"]');
24
+ const assigned = slot.assignedNodes({ flatten: true });
25
+ assert.isAbove(assigned.length, 0);
26
+ assert.include(assigned[0].textContent ?? '', 'Slot Content');
27
+ });
28
+ it('shows tooltip on hover when trigger includes "hover"', async () => {
29
+ const el = await fixture(html `
30
+ <nile-tooltip content="Tooltip" trigger="hover">
31
+ <button>Hover me</button>
32
+ </nile-tooltip>
33
+ `);
34
+ const trigger = el.shadowRoot.querySelector('.trigger-container');
35
+ trigger.dispatchEvent(new Event('mouseover', { bubbles: true }));
36
+ await waitUntil(() => el.open === true);
37
+ assert.isTrue(el.open);
38
+ });
39
+ it('hides tooltip on mouseout when trigger includes "hover"', async () => {
40
+ const el = await fixture(html `
41
+ <nile-tooltip content="Tooltip" trigger="hover">
42
+ <button>Hover me</button>
43
+ </nile-tooltip>
44
+ `);
45
+ const trigger = el.shadowRoot.querySelector('.trigger-container');
46
+ trigger.dispatchEvent(new Event('mouseover', { bubbles: true }));
47
+ await waitUntil(() => el.open === true);
48
+ trigger.dispatchEvent(new Event('mouseout', { bubbles: true }));
49
+ await waitUntil(() => el.open === false);
50
+ });
51
+ it('toggles tooltip on click when trigger includes "click"', async () => {
52
+ const el = await fixture(html `
53
+ <nile-tooltip content="Click me" trigger="click">
54
+ <button>Click</button>
55
+ </nile-tooltip>
56
+ `);
57
+ const trigger = el.shadowRoot.querySelector('.trigger-container');
58
+ trigger.click();
59
+ await waitUntil(() => el.open === true);
60
+ trigger.click();
61
+ await waitUntil(() => el.open === false);
62
+ });
63
+ it('shows and hides tooltip on focus/blur when trigger includes "focus"', async () => {
64
+ const el = await fixture(html `
65
+ <nile-tooltip content="Focus" trigger="focus">
66
+ <button>Focus</button>
67
+ </nile-tooltip>
68
+ `);
69
+ const trigger = el.shadowRoot.querySelector('.trigger-container');
70
+ trigger.dispatchEvent(new Event('focusin'));
71
+ await waitUntil(() => el.open === true);
72
+ trigger.dispatchEvent(new Event('focusout'));
73
+ await waitUntil(() => el.open === false);
74
+ });
75
+ it('does not show tooltip when disabled', async () => {
76
+ const el = await fixture(html `
77
+ <nile-tooltip content="Disabled" disabled trigger="hover">
78
+ <button>Hover me</button>
79
+ </nile-tooltip>
80
+ `);
81
+ const trigger = el.shadowRoot.querySelector('.trigger-container');
82
+ trigger.dispatchEvent(new Event('mouseover'));
83
+ await new Promise(resolve => setTimeout(resolve, 200));
84
+ assert.isFalse(el.open);
85
+ });
86
+ it('emits nile-show and nile-after-show events', async () => {
87
+ const el = await fixture(html `
88
+ <nile-tooltip content="Event test" trigger="click">
89
+ <button>Click</button>
90
+ </nile-tooltip>
91
+ `);
92
+ const trigger = el.shadowRoot.querySelector('.trigger-container');
93
+ setTimeout(() => trigger.click());
94
+ const showEvent = await oneEvent(el, 'nile-show');
95
+ assert.ok(showEvent);
96
+ const afterShow = await oneEvent(el, 'nile-after-show');
97
+ assert.ok(afterShow);
98
+ });
99
+ it('emits nile-hide and nile-after-hide events', async () => {
100
+ const el = await fixture(html `
101
+ <nile-tooltip content="Event test" trigger="click">
102
+ <button>Click</button>
103
+ </nile-tooltip>
104
+ `);
105
+ const trigger = el.shadowRoot.querySelector('.trigger-container');
106
+ trigger.click();
107
+ await waitUntil(() => el.open === true);
108
+ setTimeout(() => trigger.click());
109
+ const hideEvent = await oneEvent(el, 'nile-hide');
110
+ assert.ok(hideEvent);
111
+ const afterHide = await oneEvent(el, 'nile-after-hide');
112
+ assert.ok(afterHide);
113
+ });
114
+ it('defaults to "bottom" placement when given invalid value', async () => {
115
+ const el = await fixture(html `
116
+ <nile-tooltip content="Fallback" placement=${'invalid'} >
117
+ <button>Trigger</button>
118
+ </nile-tooltip>
119
+ `);
120
+ await el.updateComplete;
121
+ assert.equal(el.placement, 'top');
122
+ });
123
+ it('updates hasTooltipSlot on slot change', async () => {
124
+ const el = await fixture(html `
125
+ <nile-tooltip>
126
+ <div slot="content">Initial slot</div>
127
+ <button>Trigger</button>
128
+ </nile-tooltip>
129
+ `);
130
+ const slot = el.shadowRoot.querySelector('slot[name="content"]');
131
+ const newSlotNode = document.createElement('div');
132
+ newSlotNode.slot = 'content';
133
+ newSlotNode.textContent = 'Updated slot';
134
+ el.appendChild(newSlotNode);
135
+ slot.dispatchEvent(new Event('slotchange'));
136
+ await el.updateComplete;
137
+ assert.isTrue(el.hasTooltipSlot);
138
+ });
139
+ it('respects hoist attribute', async () => {
140
+ const el = await fixture(html `
141
+ <nile-tooltip hoist content="Hoisted">
142
+ <button>Hoist</button>
143
+ </nile-tooltip>
144
+ `);
145
+ assert.isTrue(el.hoist);
146
+ });
147
+ });
148
+ //# sourceMappingURL=nile-tooltip.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nile-tooltip.test.js","sourceRoot":"","sources":["../../../src/nile-tooltip/nile-tooltip.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { fixture, html, assert, oneEvent, waitUntil } from '@open-wc/testing';\nimport './nile-tooltip';\nimport { NileTooltip } from './nile-tooltip';\n\ndescribe('NileTooltip', () => {\n\n it('renders with default properties', async () => {\n const el = await fixture<NileTooltip>(html`<nile-tooltip content=\"Hello\"><button>Hover me</button></nile-tooltip>`);\n assert.equal(el.content, 'Hello');\n assert.equal(el.placement, 'top');\n assert.equal(el.disabled, false);\n assert.equal(el.open, false);\n });\n\n it('renders text content when no slot is used', async () => {\n const el = await fixture<NileTooltip>(html`<nile-tooltip content=\"Fallback\"><button>Trigger</button></nile-tooltip>`);\n const content = el.shadowRoot!.querySelector('.tooltip-content')!;\n assert.include(content.textContent!, 'Fallback');\n });\n\n it('uses slotted content when provided', async () => {\n const el = await fixture<NileTooltip>(html`\n <nile-tooltip>\n <div slot=\"content\">Slot Content</div>\n <button>Trigger</button>\n </nile-tooltip>\n `);\n\n const slot = el.shadowRoot!.querySelector('slot[name=\"content\"]') as HTMLSlotElement;\n const assigned = slot.assignedNodes({ flatten: true });\n assert.isAbove(assigned.length, 0);\n assert.include(assigned[0].textContent ?? '', 'Slot Content');\n });\n\n it('shows tooltip on hover when trigger includes \"hover\"', async () => {\n const el = await fixture<NileTooltip>(html`\n <nile-tooltip content=\"Tooltip\" trigger=\"hover\">\n <button>Hover me</button>\n </nile-tooltip>\n `);\n const trigger = el.shadowRoot!.querySelector('.trigger-container')!;\n trigger.dispatchEvent(new Event('mouseover', { bubbles: true }));\n await waitUntil(() => el.open === true);\n assert.isTrue(el.open);\n });\n\n it('hides tooltip on mouseout when trigger includes \"hover\"', async () => {\n const el = await fixture<NileTooltip>(html`\n <nile-tooltip content=\"Tooltip\" trigger=\"hover\">\n <button>Hover me</button>\n </nile-tooltip>\n `);\n const trigger = el.shadowRoot!.querySelector('.trigger-container')!;\n trigger.dispatchEvent(new Event('mouseover', { bubbles: true }));\n await waitUntil(() => el.open === true);\n trigger.dispatchEvent(new Event('mouseout', { bubbles: true }));\n await waitUntil(() => el.open === false);\n });\n\n it('toggles tooltip on click when trigger includes \"click\"', async () => {\n const el = await fixture<NileTooltip>(html`\n <nile-tooltip content=\"Click me\" trigger=\"click\">\n <button>Click</button>\n </nile-tooltip>\n `);\n const trigger = el.shadowRoot!.querySelector('.trigger-container') as HTMLElement;\n trigger.click();\n await waitUntil(() => el.open === true);\n trigger.click();\n await waitUntil(() => el.open === false);\n });\n\n it('shows and hides tooltip on focus/blur when trigger includes \"focus\"', async () => {\n const el = await fixture<NileTooltip>(html`\n <nile-tooltip content=\"Focus\" trigger=\"focus\">\n <button>Focus</button>\n </nile-tooltip>\n `);\n const trigger = el.shadowRoot!.querySelector('.trigger-container')!;\n trigger.dispatchEvent(new Event('focusin'));\n await waitUntil(() => el.open === true);\n trigger.dispatchEvent(new Event('focusout'));\n await waitUntil(() => el.open === false);\n });\n\n it('does not show tooltip when disabled', async () => {\n const el = await fixture<NileTooltip>(html`\n <nile-tooltip content=\"Disabled\" disabled trigger=\"hover\">\n <button>Hover me</button>\n </nile-tooltip>\n `);\n const trigger = el.shadowRoot!.querySelector('.trigger-container')!;\n trigger.dispatchEvent(new Event('mouseover'));\n await new Promise(resolve => setTimeout(resolve, 200));\n assert.isFalse(el.open);\n });\n\n\n it('emits nile-show and nile-after-show events', async () => {\n const el = await fixture<NileTooltip>(html`\n <nile-tooltip content=\"Event test\" trigger=\"click\">\n <button>Click</button>\n </nile-tooltip>\n `);\n const trigger = el.shadowRoot!.querySelector('.trigger-container') as HTMLElement;\n setTimeout(() => trigger.click());\n const showEvent = await oneEvent(el, 'nile-show');\n assert.ok(showEvent);\n const afterShow = await oneEvent(el, 'nile-after-show');\n assert.ok(afterShow);\n });\n\n it('emits nile-hide and nile-after-hide events', async () => {\n const el = await fixture<NileTooltip>(html`\n <nile-tooltip content=\"Event test\" trigger=\"click\">\n <button>Click</button>\n </nile-tooltip>\n `);\n const trigger = el.shadowRoot!.querySelector('.trigger-container') as HTMLElement;\n trigger.click();\n await waitUntil(() => el.open === true);\n setTimeout(() => trigger.click());\n const hideEvent = await oneEvent(el, 'nile-hide');\n assert.ok(hideEvent);\n const afterHide = await oneEvent(el, 'nile-after-hide');\n assert.ok(afterHide);\n });\n\n it('defaults to \"bottom\" placement when given invalid value', async () => {\n const el = await fixture<NileTooltip>(html`\n <nile-tooltip content=\"Fallback\" placement=${'invalid' as unknown as NileTooltip['placement']} >\n <button>Trigger</button>\n </nile-tooltip>\n `);\n await el.updateComplete;\n assert.equal(el.placement, 'top');\n });\n\n\n it('updates hasTooltipSlot on slot change', async () => {\n const el = await fixture<NileTooltip>(html`\n <nile-tooltip>\n <div slot=\"content\">Initial slot</div>\n <button>Trigger</button>\n </nile-tooltip>\n `);\n\n const slot = el.shadowRoot!.querySelector('slot[name=\"content\"]') as HTMLSlotElement;\n const newSlotNode = document.createElement('div');\n newSlotNode.slot = 'content';\n newSlotNode.textContent = 'Updated slot';\n el.appendChild(newSlotNode);\n\n slot.dispatchEvent(new Event('slotchange'));\n await el.updateComplete;\n\n assert.isTrue((el as any).hasTooltipSlot);\n });\n\n it('respects hoist attribute', async () => {\n const el = await fixture<NileTooltip>(html`\n <nile-tooltip hoist content=\"Hoisted\">\n <button>Hoist</button>\n </nile-tooltip>\n `);\n assert.isTrue(el.hoist);\n });\n});\n"]}