@furystack/shades-common-components 10.0.35 → 11.0.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 (295) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/esm/components/animations.spec.d.ts +2 -0
  3. package/esm/components/animations.spec.d.ts.map +1 -0
  4. package/esm/components/animations.spec.js +201 -0
  5. package/esm/components/animations.spec.js.map +1 -0
  6. package/esm/components/app-bar-link.js +21 -20
  7. package/esm/components/app-bar-link.js.map +1 -1
  8. package/esm/components/app-bar-link.spec.d.ts +2 -0
  9. package/esm/components/app-bar-link.spec.d.ts.map +1 -0
  10. package/esm/components/app-bar-link.spec.js +252 -0
  11. package/esm/components/app-bar-link.spec.js.map +1 -0
  12. package/esm/components/app-bar.js +21 -21
  13. package/esm/components/app-bar.js.map +1 -1
  14. package/esm/components/app-bar.spec.d.ts +2 -0
  15. package/esm/components/app-bar.spec.d.ts.map +1 -0
  16. package/esm/components/app-bar.spec.js +117 -0
  17. package/esm/components/app-bar.spec.js.map +1 -0
  18. package/esm/components/avatar.d.ts.map +1 -1
  19. package/esm/components/avatar.js +15 -19
  20. package/esm/components/avatar.js.map +1 -1
  21. package/esm/components/avatar.spec.d.ts +2 -0
  22. package/esm/components/avatar.spec.d.ts.map +1 -0
  23. package/esm/components/avatar.spec.js +114 -0
  24. package/esm/components/avatar.spec.js.map +1 -0
  25. package/esm/components/button.d.ts.map +1 -1
  26. package/esm/components/button.js +145 -156
  27. package/esm/components/button.js.map +1 -1
  28. package/esm/components/button.spec.d.ts +2 -0
  29. package/esm/components/button.spec.d.ts.map +1 -0
  30. package/esm/components/button.spec.js +155 -0
  31. package/esm/components/button.spec.js.map +1 -0
  32. package/esm/components/command-palette/command-palette-input.d.ts.map +1 -1
  33. package/esm/components/command-palette/command-palette-input.js +18 -16
  34. package/esm/components/command-palette/command-palette-input.js.map +1 -1
  35. package/esm/components/command-palette/command-palette-input.spec.d.ts +2 -0
  36. package/esm/components/command-palette/command-palette-input.spec.d.ts.map +1 -0
  37. package/esm/components/command-palette/command-palette-input.spec.js +233 -0
  38. package/esm/components/command-palette/command-palette-input.spec.js.map +1 -0
  39. package/esm/components/command-palette/command-palette-manager.spec.d.ts +2 -0
  40. package/esm/components/command-palette/command-palette-manager.spec.d.ts.map +1 -0
  41. package/esm/components/command-palette/command-palette-manager.spec.js +362 -0
  42. package/esm/components/command-palette/command-palette-manager.spec.js.map +1 -0
  43. package/esm/components/command-palette/command-palette-suggestion-list.d.ts.map +1 -1
  44. package/esm/components/command-palette/command-palette-suggestion-list.js +42 -46
  45. package/esm/components/command-palette/command-palette-suggestion-list.js.map +1 -1
  46. package/esm/components/command-palette/command-palette-suggestion-list.spec.d.ts +2 -0
  47. package/esm/components/command-palette/command-palette-suggestion-list.spec.d.ts.map +1 -0
  48. package/esm/components/command-palette/command-palette-suggestion-list.spec.js +376 -0
  49. package/esm/components/command-palette/command-palette-suggestion-list.spec.js.map +1 -0
  50. package/esm/components/command-palette/index.d.ts.map +1 -1
  51. package/esm/components/command-palette/index.js +100 -110
  52. package/esm/components/command-palette/index.js.map +1 -1
  53. package/esm/components/command-palette/index.spec.d.ts +2 -0
  54. package/esm/components/command-palette/index.spec.d.ts.map +1 -0
  55. package/esm/components/command-palette/index.spec.js +509 -0
  56. package/esm/components/command-palette/index.spec.js.map +1 -0
  57. package/esm/components/data-grid/body.js +1 -1
  58. package/esm/components/data-grid/body.js.map +1 -1
  59. package/esm/components/data-grid/body.spec.d.ts +2 -0
  60. package/esm/components/data-grid/body.spec.d.ts.map +1 -0
  61. package/esm/components/data-grid/body.spec.js +228 -0
  62. package/esm/components/data-grid/body.spec.js.map +1 -0
  63. package/esm/components/data-grid/data-grid-row.d.ts.map +1 -1
  64. package/esm/components/data-grid/data-grid-row.js +49 -73
  65. package/esm/components/data-grid/data-grid-row.js.map +1 -1
  66. package/esm/components/data-grid/data-grid-row.spec.d.ts +2 -0
  67. package/esm/components/data-grid/data-grid-row.spec.d.ts.map +1 -0
  68. package/esm/components/data-grid/data-grid-row.spec.js +296 -0
  69. package/esm/components/data-grid/data-grid-row.spec.js.map +1 -0
  70. package/esm/components/data-grid/data-grid.d.ts.map +1 -1
  71. package/esm/components/data-grid/data-grid.js +35 -28
  72. package/esm/components/data-grid/data-grid.js.map +1 -1
  73. package/esm/components/data-grid/data-grid.spec.d.ts +2 -0
  74. package/esm/components/data-grid/data-grid.spec.d.ts.map +1 -0
  75. package/esm/components/data-grid/data-grid.spec.js +544 -0
  76. package/esm/components/data-grid/data-grid.spec.js.map +1 -0
  77. package/esm/components/data-grid/footer.js +21 -15
  78. package/esm/components/data-grid/footer.js.map +1 -1
  79. package/esm/components/data-grid/footer.spec.d.ts +2 -0
  80. package/esm/components/data-grid/footer.spec.d.ts.map +1 -0
  81. package/esm/components/data-grid/footer.spec.js +264 -0
  82. package/esm/components/data-grid/footer.spec.js.map +1 -0
  83. package/esm/components/data-grid/header.d.ts.map +1 -1
  84. package/esm/components/data-grid/header.js +55 -33
  85. package/esm/components/data-grid/header.js.map +1 -1
  86. package/esm/components/data-grid/header.spec.d.ts +2 -0
  87. package/esm/components/data-grid/header.spec.d.ts.map +1 -0
  88. package/esm/components/data-grid/header.spec.js +421 -0
  89. package/esm/components/data-grid/header.spec.js.map +1 -0
  90. package/esm/components/data-grid/selection-cell.d.ts.map +1 -1
  91. package/esm/components/data-grid/selection-cell.js +13 -6
  92. package/esm/components/data-grid/selection-cell.js.map +1 -1
  93. package/esm/components/data-grid/selection-cell.spec.d.ts +2 -0
  94. package/esm/components/data-grid/selection-cell.spec.d.ts.map +1 -0
  95. package/esm/components/data-grid/selection-cell.spec.js +118 -0
  96. package/esm/components/data-grid/selection-cell.spec.js.map +1 -0
  97. package/esm/components/fab.d.ts.map +1 -1
  98. package/esm/components/fab.js +10 -1
  99. package/esm/components/fab.js.map +1 -1
  100. package/esm/components/fab.spec.d.ts +2 -0
  101. package/esm/components/fab.spec.d.ts.map +1 -0
  102. package/esm/components/fab.spec.js +95 -0
  103. package/esm/components/fab.spec.js.map +1 -0
  104. package/esm/components/form.spec.d.ts +2 -0
  105. package/esm/components/form.spec.d.ts.map +1 -0
  106. package/esm/components/form.spec.js +314 -0
  107. package/esm/components/form.spec.js.map +1 -0
  108. package/esm/components/grid.d.ts.map +1 -1
  109. package/esm/components/grid.js +40 -37
  110. package/esm/components/grid.js.map +1 -1
  111. package/esm/components/grid.spec.d.ts +2 -0
  112. package/esm/components/grid.spec.d.ts.map +1 -0
  113. package/esm/components/grid.spec.js +316 -0
  114. package/esm/components/grid.spec.js.map +1 -0
  115. package/esm/components/inputs/autocomplete.spec.d.ts +2 -0
  116. package/esm/components/inputs/autocomplete.spec.d.ts.map +1 -0
  117. package/esm/components/inputs/autocomplete.spec.js +194 -0
  118. package/esm/components/inputs/autocomplete.spec.js.map +1 -0
  119. package/esm/components/inputs/input.d.ts.map +1 -1
  120. package/esm/components/inputs/input.js +141 -109
  121. package/esm/components/inputs/input.js.map +1 -1
  122. package/esm/components/inputs/input.spec.d.ts +2 -0
  123. package/esm/components/inputs/input.spec.d.ts.map +1 -0
  124. package/esm/components/inputs/input.spec.js +577 -0
  125. package/esm/components/inputs/input.spec.js.map +1 -0
  126. package/esm/components/inputs/text-area.d.ts.map +1 -1
  127. package/esm/components/inputs/text-area.js +54 -58
  128. package/esm/components/inputs/text-area.js.map +1 -1
  129. package/esm/components/inputs/text-area.spec.d.ts +2 -0
  130. package/esm/components/inputs/text-area.spec.d.ts.map +1 -0
  131. package/esm/components/inputs/text-area.spec.js +214 -0
  132. package/esm/components/inputs/text-area.spec.js.map +1 -0
  133. package/esm/components/loader.js +1 -1
  134. package/esm/components/loader.js.map +1 -1
  135. package/esm/components/loader.spec.d.ts +2 -0
  136. package/esm/components/loader.spec.d.ts.map +1 -0
  137. package/esm/components/loader.spec.js +251 -0
  138. package/esm/components/loader.spec.js.map +1 -0
  139. package/esm/components/modal.d.ts.map +1 -1
  140. package/esm/components/modal.js +11 -9
  141. package/esm/components/modal.js.map +1 -1
  142. package/esm/components/modal.spec.d.ts +2 -0
  143. package/esm/components/modal.spec.d.ts.map +1 -0
  144. package/esm/components/modal.spec.js +227 -0
  145. package/esm/components/modal.spec.js.map +1 -0
  146. package/esm/components/noty-list.d.ts.map +1 -1
  147. package/esm/components/noty-list.js +39 -40
  148. package/esm/components/noty-list.js.map +1 -1
  149. package/esm/components/noty-list.spec.d.ts +2 -0
  150. package/esm/components/noty-list.spec.d.ts.map +1 -0
  151. package/esm/components/noty-list.spec.js +486 -0
  152. package/esm/components/noty-list.spec.js.map +1 -0
  153. package/esm/components/paper.d.ts.map +1 -1
  154. package/esm/components/paper.js +15 -12
  155. package/esm/components/paper.js.map +1 -1
  156. package/esm/components/paper.spec.d.ts +2 -0
  157. package/esm/components/paper.spec.d.ts.map +1 -0
  158. package/esm/components/paper.spec.js +63 -0
  159. package/esm/components/paper.spec.js.map +1 -0
  160. package/esm/components/skeleton.js +1 -1
  161. package/esm/components/skeleton.js.map +1 -1
  162. package/esm/components/skeleton.spec.d.ts +2 -0
  163. package/esm/components/skeleton.spec.d.ts.map +1 -0
  164. package/esm/components/skeleton.spec.js +159 -0
  165. package/esm/components/skeleton.spec.js.map +1 -0
  166. package/esm/components/styles.spec.d.ts +2 -0
  167. package/esm/components/styles.spec.d.ts.map +1 -0
  168. package/esm/components/styles.spec.js +56 -0
  169. package/esm/components/styles.spec.js.map +1 -0
  170. package/esm/components/suggest/index.d.ts.map +1 -1
  171. package/esm/components/suggest/index.js +74 -83
  172. package/esm/components/suggest/index.js.map +1 -1
  173. package/esm/components/suggest/index.spec.d.ts +2 -0
  174. package/esm/components/suggest/index.spec.d.ts.map +1 -0
  175. package/esm/components/suggest/index.spec.js +515 -0
  176. package/esm/components/suggest/index.spec.js.map +1 -0
  177. package/esm/components/suggest/suggest-input.d.ts.map +1 -1
  178. package/esm/components/suggest/suggest-input.js +16 -17
  179. package/esm/components/suggest/suggest-input.js.map +1 -1
  180. package/esm/components/suggest/suggest-input.spec.d.ts +2 -0
  181. package/esm/components/suggest/suggest-input.spec.d.ts.map +1 -0
  182. package/esm/components/suggest/suggest-input.spec.js +138 -0
  183. package/esm/components/suggest/suggest-input.spec.js.map +1 -0
  184. package/esm/components/suggest/suggest-manager.spec.d.ts +2 -0
  185. package/esm/components/suggest/suggest-manager.spec.d.ts.map +1 -0
  186. package/esm/components/suggest/suggest-manager.spec.js +308 -0
  187. package/esm/components/suggest/suggest-manager.spec.js.map +1 -0
  188. package/esm/components/suggest/suggestion-list.d.ts.map +1 -1
  189. package/esm/components/suggest/suggestion-list.js +43 -48
  190. package/esm/components/suggest/suggestion-list.js.map +1 -1
  191. package/esm/components/suggest/suggestion-list.spec.d.ts +2 -0
  192. package/esm/components/suggest/suggestion-list.spec.d.ts.map +1 -0
  193. package/esm/components/suggest/suggestion-list.spec.js +252 -0
  194. package/esm/components/suggest/suggestion-list.spec.js.map +1 -0
  195. package/esm/components/tabs.d.ts.map +1 -1
  196. package/esm/components/tabs.js +32 -18
  197. package/esm/components/tabs.js.map +1 -1
  198. package/esm/components/tabs.spec.d.ts +2 -0
  199. package/esm/components/tabs.spec.d.ts.map +1 -0
  200. package/esm/components/tabs.spec.js +187 -0
  201. package/esm/components/tabs.spec.js.map +1 -0
  202. package/esm/components/wizard/index.d.ts.map +1 -1
  203. package/esm/components/wizard/index.js +10 -7
  204. package/esm/components/wizard/index.js.map +1 -1
  205. package/esm/components/wizard/index.spec.d.ts +2 -0
  206. package/esm/components/wizard/index.spec.d.ts.map +1 -0
  207. package/esm/components/wizard/index.spec.js +171 -0
  208. package/esm/components/wizard/index.spec.js.map +1 -0
  209. package/esm/services/collection-service.spec.js +391 -2
  210. package/esm/services/collection-service.spec.js.map +1 -1
  211. package/esm/services/css-variable-theme.d.ts.map +1 -1
  212. package/esm/services/css-variable-theme.js +21 -1
  213. package/esm/services/css-variable-theme.js.map +1 -1
  214. package/esm/services/css-variable-theme.spec.d.ts +2 -0
  215. package/esm/services/css-variable-theme.spec.d.ts.map +1 -0
  216. package/esm/services/css-variable-theme.spec.js +169 -0
  217. package/esm/services/css-variable-theme.spec.js.map +1 -0
  218. package/esm/services/default-palette.d.ts +4 -0
  219. package/esm/services/default-palette.d.ts.map +1 -1
  220. package/esm/services/default-palette.js +22 -0
  221. package/esm/services/default-palette.js.map +1 -1
  222. package/esm/services/theme-provider-service.d.ts +59 -1
  223. package/esm/services/theme-provider-service.d.ts.map +1 -1
  224. package/esm/services/theme-provider-service.js.map +1 -1
  225. package/esm/services/theme-provider-service.spec.d.ts +2 -0
  226. package/esm/services/theme-provider-service.spec.d.ts.map +1 -0
  227. package/esm/services/theme-provider-service.spec.js +166 -0
  228. package/esm/services/theme-provider-service.spec.js.map +1 -0
  229. package/package.json +2 -2
  230. package/src/components/animations.spec.ts +299 -0
  231. package/src/components/app-bar-link.spec.tsx +341 -0
  232. package/src/components/app-bar-link.tsx +21 -21
  233. package/src/components/app-bar.spec.tsx +142 -0
  234. package/src/components/app-bar.tsx +22 -22
  235. package/src/components/avatar.spec.tsx +146 -0
  236. package/src/components/avatar.tsx +17 -20
  237. package/src/components/button.spec.tsx +193 -0
  238. package/src/components/button.tsx +162 -197
  239. package/src/components/command-palette/command-palette-input.spec.tsx +320 -0
  240. package/src/components/command-palette/command-palette-input.tsx +19 -22
  241. package/src/components/command-palette/command-palette-manager.spec.ts +470 -0
  242. package/src/components/command-palette/command-palette-suggestion-list.spec.tsx +499 -0
  243. package/src/components/command-palette/command-palette-suggestion-list.tsx +42 -46
  244. package/src/components/command-palette/index.spec.tsx +684 -0
  245. package/src/components/command-palette/index.tsx +107 -136
  246. package/src/components/data-grid/body.spec.tsx +340 -0
  247. package/src/components/data-grid/body.tsx +1 -1
  248. package/src/components/data-grid/data-grid-row.spec.tsx +382 -0
  249. package/src/components/data-grid/data-grid-row.tsx +50 -82
  250. package/src/components/data-grid/data-grid.spec.tsx +939 -0
  251. package/src/components/data-grid/data-grid.tsx +38 -35
  252. package/src/components/data-grid/footer.spec.tsx +344 -0
  253. package/src/components/data-grid/footer.tsx +19 -19
  254. package/src/components/data-grid/header.spec.tsx +563 -0
  255. package/src/components/data-grid/header.tsx +53 -44
  256. package/src/components/data-grid/selection-cell.spec.tsx +150 -0
  257. package/src/components/data-grid/selection-cell.tsx +12 -6
  258. package/src/components/fab.spec.tsx +108 -0
  259. package/src/components/fab.tsx +10 -1
  260. package/src/components/form.spec.tsx +481 -0
  261. package/src/components/grid.spec.tsx +334 -0
  262. package/src/components/grid.tsx +57 -63
  263. package/src/components/inputs/autocomplete.spec.tsx +258 -0
  264. package/src/components/inputs/input.spec.tsx +808 -0
  265. package/src/components/inputs/input.tsx +153 -139
  266. package/src/components/inputs/text-area.spec.tsx +285 -0
  267. package/src/components/inputs/text-area.tsx +53 -79
  268. package/src/components/loader.spec.tsx +346 -0
  269. package/src/components/loader.tsx +1 -1
  270. package/src/components/modal.spec.tsx +304 -0
  271. package/src/components/modal.tsx +11 -9
  272. package/src/components/noty-list.spec.tsx +631 -0
  273. package/src/components/noty-list.tsx +39 -50
  274. package/src/components/paper.spec.tsx +72 -0
  275. package/src/components/paper.tsx +15 -13
  276. package/src/components/skeleton.spec.tsx +219 -0
  277. package/src/components/skeleton.tsx +1 -1
  278. package/src/components/styles.spec.ts +70 -0
  279. package/src/components/suggest/index.spec.tsx +861 -0
  280. package/src/components/suggest/index.tsx +74 -101
  281. package/src/components/suggest/suggest-input.spec.tsx +181 -0
  282. package/src/components/suggest/suggest-input.tsx +16 -24
  283. package/src/components/suggest/suggest-manager.spec.ts +409 -0
  284. package/src/components/suggest/suggestion-list.spec.tsx +334 -0
  285. package/src/components/suggest/suggestion-list.tsx +43 -48
  286. package/src/components/tabs.spec.tsx +236 -0
  287. package/src/components/tabs.tsx +33 -21
  288. package/src/components/wizard/index.spec.tsx +224 -0
  289. package/src/components/wizard/index.tsx +10 -9
  290. package/src/services/collection-service.spec.ts +492 -3
  291. package/src/services/css-variable-theme.spec.ts +204 -0
  292. package/src/services/css-variable-theme.ts +21 -1
  293. package/src/services/default-palette.ts +22 -0
  294. package/src/services/theme-provider-service.spec.ts +195 -0
  295. package/src/services/theme-provider-service.ts +60 -2
@@ -0,0 +1,515 @@
1
+ import { Injector } from '@furystack/inject';
2
+ import { createComponent, initializeShadeRoot } from '@furystack/shades';
3
+ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
4
+ import { Suggest } from './index.js';
5
+ describe('Suggest', () => {
6
+ let originalAnimate;
7
+ let animateCalls;
8
+ beforeEach(() => {
9
+ vi.useFakeTimers();
10
+ document.body.innerHTML = '<div id="root"></div>';
11
+ animateCalls = [];
12
+ originalAnimate = Element.prototype.animate;
13
+ Element.prototype.animate = vi.fn((keyframes, options) => {
14
+ animateCalls.push({ keyframes, options });
15
+ const mockAnimation = {
16
+ onfinish: null,
17
+ oncancel: null,
18
+ cancel: vi.fn(),
19
+ play: vi.fn(),
20
+ pause: vi.fn(),
21
+ finish: vi.fn(),
22
+ addEventListener: vi.fn(),
23
+ removeEventListener: vi.fn(),
24
+ };
25
+ return mockAnimation;
26
+ });
27
+ });
28
+ afterEach(async () => {
29
+ await vi.runAllTimersAsync();
30
+ const suggest = document.querySelector('shade-suggest');
31
+ suggest?.remove();
32
+ document.body.innerHTML = '';
33
+ Element.prototype.animate = originalAnimate;
34
+ vi.useRealTimers();
35
+ vi.restoreAllMocks();
36
+ });
37
+ const advanceTimers = async (ms) => {
38
+ await vi.advanceTimersByTimeAsync(ms);
39
+ };
40
+ const createTestEntries = () => [
41
+ { id: 1, name: 'First' },
42
+ { id: 2, name: 'Second' },
43
+ { id: 3, name: 'Third' },
44
+ ];
45
+ const getTestEntries = async (term) => {
46
+ const entries = createTestEntries();
47
+ if (!term)
48
+ return entries;
49
+ return entries.filter((e) => e.name.toLowerCase().includes(term.toLowerCase()));
50
+ };
51
+ const getSuggestionEntry = (entry) => ({
52
+ element: createComponent("span", { "data-testid": `suggestion-${entry.id}` }, entry.name),
53
+ score: entry.id,
54
+ });
55
+ describe('rendering', () => {
56
+ it('should render with shadow DOM', async () => {
57
+ const injector = new Injector();
58
+ const rootElement = document.getElementById('root');
59
+ const onSelectSuggestion = vi.fn();
60
+ initializeShadeRoot({
61
+ injector,
62
+ rootElement,
63
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
64
+ });
65
+ await advanceTimers(50);
66
+ const suggest = document.querySelector('shade-suggest');
67
+ expect(suggest).not.toBeNull();
68
+ });
69
+ it('should render the default prefix', async () => {
70
+ const injector = new Injector();
71
+ const rootElement = document.getElementById('root');
72
+ const onSelectSuggestion = vi.fn();
73
+ initializeShadeRoot({
74
+ injector,
75
+ rootElement,
76
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "Search:", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
77
+ });
78
+ await advanceTimers(50);
79
+ const suggest = document.querySelector('shade-suggest');
80
+ const termIcon = suggest?.querySelector('.term-icon');
81
+ expect(termIcon?.textContent).toBe('Search:');
82
+ });
83
+ it('should render the input container', async () => {
84
+ const injector = new Injector();
85
+ const rootElement = document.getElementById('root');
86
+ const onSelectSuggestion = vi.fn();
87
+ initializeShadeRoot({
88
+ injector,
89
+ rootElement,
90
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
91
+ });
92
+ await advanceTimers(50);
93
+ const suggest = document.querySelector('shade-suggest');
94
+ const inputContainer = suggest?.querySelector('.input-container');
95
+ expect(inputContainer).not.toBeNull();
96
+ });
97
+ it('should apply custom styles', async () => {
98
+ const injector = new Injector();
99
+ const rootElement = document.getElementById('root');
100
+ const onSelectSuggestion = vi.fn();
101
+ initializeShadeRoot({
102
+ injector,
103
+ rootElement,
104
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion, style: { backgroundColor: 'red' } })),
105
+ });
106
+ await advanceTimers(50);
107
+ const suggest = document.querySelector('shade-suggest');
108
+ const inputContainer = suggest?.querySelector('.input-container');
109
+ expect(inputContainer?.style.backgroundColor).toBe('red');
110
+ });
111
+ });
112
+ describe('keyboard navigation', () => {
113
+ it('should handle ArrowDown to move selection down', async () => {
114
+ const injector = new Injector();
115
+ const rootElement = document.getElementById('root');
116
+ const onSelectSuggestion = vi.fn();
117
+ initializeShadeRoot({
118
+ injector,
119
+ rootElement,
120
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
121
+ });
122
+ await advanceTimers(50);
123
+ const suggest = document.querySelector('shade-suggest');
124
+ const wrapper = suggest?.querySelector('.suggest-wrapper');
125
+ const input = suggest?.querySelector('input');
126
+ input.value = 'test';
127
+ const keyupEvent = new KeyboardEvent('keyup', { key: 'a', bubbles: true });
128
+ Object.defineProperty(keyupEvent, 'target', { value: input });
129
+ wrapper?.dispatchEvent(keyupEvent);
130
+ await advanceTimers(300);
131
+ const arrowDownEvent = new KeyboardEvent('keyup', { key: 'ArrowDown', bubbles: true });
132
+ Object.defineProperty(arrowDownEvent, 'target', { value: input });
133
+ wrapper?.dispatchEvent(arrowDownEvent);
134
+ await advanceTimers(50);
135
+ const selectedItems = suggest?.querySelectorAll('.suggestion-item.selected');
136
+ expect(selectedItems?.length).toBeGreaterThanOrEqual(0);
137
+ });
138
+ it('should handle ArrowUp to move selection up', async () => {
139
+ const injector = new Injector();
140
+ const rootElement = document.getElementById('root');
141
+ const onSelectSuggestion = vi.fn();
142
+ initializeShadeRoot({
143
+ injector,
144
+ rootElement,
145
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
146
+ });
147
+ await advanceTimers(50);
148
+ const suggest = document.querySelector('shade-suggest');
149
+ const wrapper = suggest?.querySelector('.suggest-wrapper');
150
+ const input = suggest?.querySelector('input');
151
+ input.value = 'test';
152
+ const keyupEvent = new KeyboardEvent('keyup', { key: 'a', bubbles: true });
153
+ Object.defineProperty(keyupEvent, 'target', { value: input });
154
+ wrapper?.dispatchEvent(keyupEvent);
155
+ await advanceTimers(300);
156
+ const arrowDownEvent = new KeyboardEvent('keyup', { key: 'ArrowDown', bubbles: true });
157
+ Object.defineProperty(arrowDownEvent, 'target', { value: input });
158
+ wrapper?.dispatchEvent(arrowDownEvent);
159
+ wrapper?.dispatchEvent(arrowDownEvent);
160
+ const arrowUpEvent = new KeyboardEvent('keyup', { key: 'ArrowUp', bubbles: true });
161
+ Object.defineProperty(arrowUpEvent, 'target', { value: input });
162
+ wrapper?.dispatchEvent(arrowUpEvent);
163
+ await advanceTimers(50);
164
+ expect(suggest).not.toBeNull();
165
+ });
166
+ it('should handle Enter to select current suggestion', async () => {
167
+ const injector = new Injector();
168
+ const rootElement = document.getElementById('root');
169
+ const onSelectSuggestion = vi.fn();
170
+ initializeShadeRoot({
171
+ injector,
172
+ rootElement,
173
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
174
+ });
175
+ await advanceTimers(50);
176
+ const suggest = document.querySelector('shade-suggest');
177
+ const wrapper = suggest?.querySelector('.suggest-wrapper');
178
+ const input = suggest?.querySelector('input');
179
+ input.value = 'First';
180
+ const keyupEvent = new KeyboardEvent('keyup', { key: 'a', bubbles: true });
181
+ Object.defineProperty(keyupEvent, 'target', { value: input });
182
+ wrapper?.dispatchEvent(keyupEvent);
183
+ await advanceTimers(300);
184
+ const enterEvent = new KeyboardEvent('keyup', { key: 'Enter', bubbles: true });
185
+ Object.defineProperty(enterEvent, 'target', { value: input });
186
+ wrapper?.dispatchEvent(enterEvent);
187
+ await advanceTimers(50);
188
+ expect(onSelectSuggestion).toHaveBeenCalled();
189
+ });
190
+ it('should prevent default on Enter key', async () => {
191
+ const injector = new Injector();
192
+ const rootElement = document.getElementById('root');
193
+ const onSelectSuggestion = vi.fn();
194
+ initializeShadeRoot({
195
+ injector,
196
+ rootElement,
197
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
198
+ });
199
+ await advanceTimers(50);
200
+ const suggest = document.querySelector('shade-suggest');
201
+ const wrapper = suggest?.querySelector('.suggest-wrapper');
202
+ const input = suggest?.querySelector('input');
203
+ input.value = 'First';
204
+ const keyupEvent = new KeyboardEvent('keyup', { key: 'a', bubbles: true });
205
+ Object.defineProperty(keyupEvent, 'target', { value: input });
206
+ wrapper?.dispatchEvent(keyupEvent);
207
+ await advanceTimers(300);
208
+ const enterEvent = new KeyboardEvent('keyup', { key: 'Enter', bubbles: true, cancelable: true });
209
+ Object.defineProperty(enterEvent, 'target', { value: input });
210
+ const preventDefaultSpy = vi.spyOn(enterEvent, 'preventDefault');
211
+ wrapper?.dispatchEvent(enterEvent);
212
+ expect(preventDefaultSpy).toHaveBeenCalled();
213
+ });
214
+ it('should prevent default on ArrowUp key', async () => {
215
+ const injector = new Injector();
216
+ const rootElement = document.getElementById('root');
217
+ const onSelectSuggestion = vi.fn();
218
+ initializeShadeRoot({
219
+ injector,
220
+ rootElement,
221
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
222
+ });
223
+ await advanceTimers(50);
224
+ const suggest = document.querySelector('shade-suggest');
225
+ const wrapper = suggest?.querySelector('.suggest-wrapper');
226
+ const input = suggest?.querySelector('input');
227
+ const arrowUpEvent = new KeyboardEvent('keyup', { key: 'ArrowUp', bubbles: true, cancelable: true });
228
+ Object.defineProperty(arrowUpEvent, 'target', { value: input });
229
+ const preventDefaultSpy = vi.spyOn(arrowUpEvent, 'preventDefault');
230
+ wrapper?.dispatchEvent(arrowUpEvent);
231
+ expect(preventDefaultSpy).toHaveBeenCalled();
232
+ });
233
+ it('should prevent default on ArrowDown key', async () => {
234
+ const injector = new Injector();
235
+ const rootElement = document.getElementById('root');
236
+ const onSelectSuggestion = vi.fn();
237
+ initializeShadeRoot({
238
+ injector,
239
+ rootElement,
240
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
241
+ });
242
+ await advanceTimers(50);
243
+ const suggest = document.querySelector('shade-suggest');
244
+ const wrapper = suggest?.querySelector('.suggest-wrapper');
245
+ const input = suggest?.querySelector('input');
246
+ const arrowDownEvent = new KeyboardEvent('keyup', { key: 'ArrowDown', bubbles: true, cancelable: true });
247
+ Object.defineProperty(arrowDownEvent, 'target', { value: input });
248
+ const preventDefaultSpy = vi.spyOn(arrowDownEvent, 'preventDefault');
249
+ wrapper?.dispatchEvent(arrowDownEvent);
250
+ expect(preventDefaultSpy).toHaveBeenCalled();
251
+ });
252
+ it('should not move selection below 0', async () => {
253
+ const injector = new Injector();
254
+ const rootElement = document.getElementById('root');
255
+ const onSelectSuggestion = vi.fn();
256
+ initializeShadeRoot({
257
+ injector,
258
+ rootElement,
259
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
260
+ });
261
+ await advanceTimers(50);
262
+ const suggest = document.querySelector('shade-suggest');
263
+ const wrapper = suggest?.querySelector('.suggest-wrapper');
264
+ const input = suggest?.querySelector('input');
265
+ for (let i = 0; i < 5; i++) {
266
+ const arrowUpEvent = new KeyboardEvent('keyup', { key: 'ArrowUp', bubbles: true });
267
+ Object.defineProperty(arrowUpEvent, 'target', { value: input });
268
+ wrapper?.dispatchEvent(arrowUpEvent);
269
+ }
270
+ await advanceTimers(50);
271
+ expect(suggest).not.toBeNull();
272
+ });
273
+ });
274
+ describe('open/close behavior', () => {
275
+ it('should open when clicking term icon', async () => {
276
+ const injector = new Injector();
277
+ const rootElement = document.getElementById('root');
278
+ const onSelectSuggestion = vi.fn();
279
+ initializeShadeRoot({
280
+ injector,
281
+ rootElement,
282
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
283
+ });
284
+ await advanceTimers(50);
285
+ const suggest = document.querySelector('shade-suggest');
286
+ const termIcon = suggest?.querySelector('.term-icon');
287
+ termIcon?.click();
288
+ await advanceTimers(50);
289
+ expect(suggest?.classList.contains('opened')).toBe(true);
290
+ });
291
+ it('should close when clicking close button', async () => {
292
+ const injector = new Injector();
293
+ const rootElement = document.getElementById('root');
294
+ const onSelectSuggestion = vi.fn();
295
+ initializeShadeRoot({
296
+ injector,
297
+ rootElement,
298
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
299
+ });
300
+ await advanceTimers(50);
301
+ const suggest = document.querySelector('shade-suggest');
302
+ const termIcon = suggest?.querySelector('.term-icon');
303
+ termIcon?.click();
304
+ await advanceTimers(50);
305
+ const closeButton = suggest?.querySelector('.close-suggestions');
306
+ closeButton?.click();
307
+ await advanceTimers(50);
308
+ expect(suggest?.classList.contains('opened')).toBe(false);
309
+ });
310
+ it('should trigger animation when opening', async () => {
311
+ const injector = new Injector();
312
+ const rootElement = document.getElementById('root');
313
+ const onSelectSuggestion = vi.fn();
314
+ initializeShadeRoot({
315
+ injector,
316
+ rootElement,
317
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
318
+ });
319
+ await advanceTimers(50);
320
+ const initialAnimationCount = animateCalls.length;
321
+ const suggest = document.querySelector('shade-suggest');
322
+ const termIcon = suggest?.querySelector('.term-icon');
323
+ termIcon?.click();
324
+ await advanceTimers(50);
325
+ expect(animateCalls.length).toBeGreaterThan(initialAnimationCount);
326
+ });
327
+ it('should trigger animation when closing', async () => {
328
+ const injector = new Injector();
329
+ const rootElement = document.getElementById('root');
330
+ const onSelectSuggestion = vi.fn();
331
+ initializeShadeRoot({
332
+ injector,
333
+ rootElement,
334
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
335
+ });
336
+ await advanceTimers(50);
337
+ const suggest = document.querySelector('shade-suggest');
338
+ const termIcon = suggest?.querySelector('.term-icon');
339
+ termIcon?.click();
340
+ await advanceTimers(50);
341
+ const animationCountAfterOpen = animateCalls.length;
342
+ const closeButton = suggest?.querySelector('.close-suggestions');
343
+ closeButton?.click();
344
+ await advanceTimers(50);
345
+ expect(animateCalls.length).toBeGreaterThan(animationCountAfterOpen);
346
+ });
347
+ });
348
+ describe('suggestions loading', () => {
349
+ it('should fetch suggestions when typing', async () => {
350
+ const injector = new Injector();
351
+ const rootElement = document.getElementById('root');
352
+ const onSelectSuggestion = vi.fn();
353
+ const getEntriesSpy = vi.fn(getTestEntries);
354
+ initializeShadeRoot({
355
+ injector,
356
+ rootElement,
357
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getEntriesSpy, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
358
+ });
359
+ await advanceTimers(50);
360
+ const suggest = document.querySelector('shade-suggest');
361
+ const wrapper = suggest?.querySelector('.suggest-wrapper');
362
+ const input = suggest?.querySelector('input');
363
+ input.value = 'First';
364
+ const keyupEvent = new KeyboardEvent('keyup', { key: 'a', bubbles: true });
365
+ Object.defineProperty(keyupEvent, 'target', { value: input });
366
+ wrapper?.dispatchEvent(keyupEvent);
367
+ await advanceTimers(300);
368
+ expect(getEntriesSpy).toHaveBeenCalledWith('First');
369
+ });
370
+ it('should show loader animation while loading', async () => {
371
+ const injector = new Injector();
372
+ const rootElement = document.getElementById('root');
373
+ const onSelectSuggestion = vi.fn();
374
+ const resolveHolder = { resolve: null };
375
+ const slowGetEntries = () => new Promise((resolve) => {
376
+ resolveHolder.resolve = resolve;
377
+ });
378
+ initializeShadeRoot({
379
+ injector,
380
+ rootElement,
381
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: slowGetEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
382
+ });
383
+ await advanceTimers(50);
384
+ const suggest = document.querySelector('shade-suggest');
385
+ const wrapper = suggest?.querySelector('.suggest-wrapper');
386
+ const input = suggest?.querySelector('input');
387
+ input.value = 'test';
388
+ const keyupEvent = new KeyboardEvent('keyup', { key: 'a', bubbles: true });
389
+ Object.defineProperty(keyupEvent, 'target', { value: input });
390
+ wrapper?.dispatchEvent(keyupEvent);
391
+ await advanceTimers(300);
392
+ const loader = suggest?.querySelector('shade-loader');
393
+ expect(loader).not.toBeNull();
394
+ resolveHolder.resolve?.(createTestEntries());
395
+ await advanceTimers(50);
396
+ });
397
+ it('should render suggestions after loading', async () => {
398
+ const injector = new Injector();
399
+ const rootElement = document.getElementById('root');
400
+ const onSelectSuggestion = vi.fn();
401
+ initializeShadeRoot({
402
+ injector,
403
+ rootElement,
404
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
405
+ });
406
+ await advanceTimers(50);
407
+ const suggest = document.querySelector('shade-suggest');
408
+ const wrapper = suggest?.querySelector('.suggest-wrapper');
409
+ const input = suggest?.querySelector('input');
410
+ input.value = 'test';
411
+ const keyupEvent = new KeyboardEvent('keyup', { key: 'a', bubbles: true });
412
+ Object.defineProperty(keyupEvent, 'target', { value: input });
413
+ wrapper?.dispatchEvent(keyupEvent);
414
+ await advanceTimers(300);
415
+ const suggestionList = suggest?.querySelector('shade-suggest-suggestion-list');
416
+ expect(suggestionList).not.toBeNull();
417
+ });
418
+ });
419
+ describe('suggestion selection', () => {
420
+ it('should call onSelectSuggestion when selecting via Enter', async () => {
421
+ const injector = new Injector();
422
+ const rootElement = document.getElementById('root');
423
+ const onSelectSuggestion = vi.fn();
424
+ initializeShadeRoot({
425
+ injector,
426
+ rootElement,
427
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
428
+ });
429
+ await advanceTimers(50);
430
+ const suggest = document.querySelector('shade-suggest');
431
+ const wrapper = suggest?.querySelector('.suggest-wrapper');
432
+ const input = suggest?.querySelector('input');
433
+ input.value = 'First';
434
+ const keyupEvent = new KeyboardEvent('keyup', { key: 'a', bubbles: true });
435
+ Object.defineProperty(keyupEvent, 'target', { value: input });
436
+ wrapper?.dispatchEvent(keyupEvent);
437
+ await advanceTimers(300);
438
+ const enterEvent = new KeyboardEvent('keyup', { key: 'Enter', bubbles: true });
439
+ Object.defineProperty(enterEvent, 'target', { value: input });
440
+ wrapper?.dispatchEvent(enterEvent);
441
+ await advanceTimers(50);
442
+ expect(onSelectSuggestion).toHaveBeenCalledWith(expect.objectContaining({ name: 'First' }));
443
+ });
444
+ it('should close after selecting a suggestion', async () => {
445
+ const injector = new Injector();
446
+ const rootElement = document.getElementById('root');
447
+ const onSelectSuggestion = vi.fn();
448
+ initializeShadeRoot({
449
+ injector,
450
+ rootElement,
451
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
452
+ });
453
+ await advanceTimers(50);
454
+ const suggest = document.querySelector('shade-suggest');
455
+ const wrapper = suggest?.querySelector('.suggest-wrapper');
456
+ const input = suggest?.querySelector('input');
457
+ input.value = 'First';
458
+ const keyupEvent = new KeyboardEvent('keyup', { key: 'a', bubbles: true });
459
+ Object.defineProperty(keyupEvent, 'target', { value: input });
460
+ wrapper?.dispatchEvent(keyupEvent);
461
+ await advanceTimers(300);
462
+ expect(suggest?.classList.contains('opened')).toBe(true);
463
+ const enterEvent = new KeyboardEvent('keyup', { key: 'Enter', bubbles: true });
464
+ Object.defineProperty(enterEvent, 'target', { value: input });
465
+ wrapper?.dispatchEvent(enterEvent);
466
+ await advanceTimers(50);
467
+ expect(suggest?.classList.contains('opened')).toBe(false);
468
+ });
469
+ });
470
+ describe('sub-components', () => {
471
+ it('should render SuggestInput component', async () => {
472
+ const injector = new Injector();
473
+ const rootElement = document.getElementById('root');
474
+ const onSelectSuggestion = vi.fn();
475
+ initializeShadeRoot({
476
+ injector,
477
+ rootElement,
478
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
479
+ });
480
+ await advanceTimers(50);
481
+ const suggest = document.querySelector('shade-suggest');
482
+ const suggestInput = suggest?.querySelector('shades-suggest-input');
483
+ expect(suggestInput).not.toBeNull();
484
+ });
485
+ it('should render SuggestionList component', async () => {
486
+ const injector = new Injector();
487
+ const rootElement = document.getElementById('root');
488
+ const onSelectSuggestion = vi.fn();
489
+ initializeShadeRoot({
490
+ injector,
491
+ rootElement,
492
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
493
+ });
494
+ await advanceTimers(50);
495
+ const suggest = document.querySelector('shade-suggest');
496
+ const suggestionList = suggest?.querySelector('shade-suggest-suggestion-list');
497
+ expect(suggestionList).not.toBeNull();
498
+ });
499
+ it('should render Loader component', async () => {
500
+ const injector = new Injector();
501
+ const rootElement = document.getElementById('root');
502
+ const onSelectSuggestion = vi.fn();
503
+ initializeShadeRoot({
504
+ injector,
505
+ rootElement,
506
+ jsxElement: (createComponent(Suggest, { defaultPrefix: "\uD83D\uDD0D", getEntries: getTestEntries, getSuggestionEntry: getSuggestionEntry, onSelectSuggestion: onSelectSuggestion })),
507
+ });
508
+ await advanceTimers(50);
509
+ const suggest = document.querySelector('shade-suggest');
510
+ const loader = suggest?.querySelector('shade-loader');
511
+ expect(loader).not.toBeNull();
512
+ });
513
+ });
514
+ });
515
+ //# sourceMappingURL=index.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.spec.js","sourceRoot":"","sources":["../../../src/components/suggest/index.spec.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"suggest-input.d.ts","sourceRoot":"","sources":["../../../src/components/suggest/suggest-input.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D,eAAO,MAAM,YAAY;aAAoB,cAAc,CAAC,GAAG,CAAC;;;sEAwC9D,CAAA"}
1
+ {"version":3,"file":"suggest-input.d.ts","sourceRoot":"","sources":["../../../src/components/suggest/suggest-input.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D,eAAO,MAAM,YAAY;aAAoB,cAAc,CAAC,GAAG,CAAC;;;sEAgC9D,CAAA"}
@@ -1,14 +1,24 @@
1
1
  import { Shade, createComponent } from '@furystack/shades';
2
- import { ThemeProviderService } from '../../services/theme-provider-service.js';
2
+ import { cssVariableTheme } from '../../services/css-variable-theme.js';
3
3
  export const SuggestInput = Shade({
4
4
  shadowDomName: 'shades-suggest-input',
5
- style: {
5
+ css: {
6
6
  width: '100%',
7
7
  overflow: 'hidden',
8
+ '& input': {
9
+ color: cssVariableTheme.text.primary,
10
+ outline: 'none',
11
+ padding: '0.875em 0.5em',
12
+ background: 'transparent',
13
+ border: 'none',
14
+ display: 'inline-flex',
15
+ width: 'calc(100% - 1em)',
16
+ fontSize: '0.95em',
17
+ fontWeight: '400',
18
+ letterSpacing: '0.01em',
19
+ },
8
20
  },
9
- render: ({ element, props, useObservable, injector }) => {
10
- const { theme } = injector.getInstance(ThemeProviderService);
11
- // todo: getLast is eliminated, do we need it?
21
+ render: ({ element, props, useObservable }) => {
12
22
  useObservable('isOpened', props.manager.isOpened, {
13
23
  onChange: (isOpened) => {
14
24
  const input = element.firstChild;
@@ -20,18 +30,7 @@ export const SuggestInput = Shade({
20
30
  }
21
31
  },
22
32
  });
23
- return (createComponent("input", { autofocus: true, placeholder: "Type to search...", style: {
24
- color: theme.text.primary,
25
- outline: 'none',
26
- padding: '0.875em 0.5em',
27
- background: 'transparent',
28
- border: 'none',
29
- display: 'inline-flex',
30
- width: 'calc(100% - 1em)',
31
- fontSize: '0.95em',
32
- fontWeight: '400',
33
- letterSpacing: '0.01em',
34
- } }));
33
+ return createComponent("input", { autofocus: true, placeholder: "Type to search..." });
35
34
  },
36
35
  });
37
36
  //# sourceMappingURL=suggest-input.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"suggest-input.js","sourceRoot":"","sources":["../../../src/components/suggest/suggest-input.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAA;AAG/E,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAmC;IAClE,aAAa,EAAE,sBAAsB;IACrC,KAAK,EAAE;QACL,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,QAAQ;KACnB;IACD,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,EAAE;QACtD,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAA;QAE5D,8CAA8C;QAC9C,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE;YAChD,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACrB,MAAM,KAAK,GAAG,OAAO,CAAC,UAA8B,CAAA;gBACpD,IAAI,QAAQ,EAAE,CAAC;oBACb,KAAK,CAAC,KAAK,EAAE,CAAA;gBACf,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,KAAK,GAAG,EAAE,CAAA;gBAClB,CAAC;YACH,CAAC;SACF,CAAC,CAAA;QAEF,OAAO,CACL,2BACE,SAAS,QACT,WAAW,EAAC,mBAAmB,EAC/B,KAAK,EAAE;gBACL,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO;gBACzB,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,eAAe;gBACxB,UAAU,EAAE,aAAa;gBACzB,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,aAAa;gBACtB,KAAK,EAAE,kBAAkB;gBACzB,QAAQ,EAAE,QAAQ;gBAClB,UAAU,EAAE,KAAK;gBACjB,aAAa,EAAE,QAAQ;aACxB,GACD,CACH,CAAA;IACH,CAAC;CACF,CAAC,CAAA"}
1
+ {"version":3,"file":"suggest-input.js","sourceRoot":"","sources":["../../../src/components/suggest/suggest-input.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAA;AAGvE,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAmC;IAClE,aAAa,EAAE,sBAAsB;IACrC,GAAG,EAAE;QACH,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,QAAQ;QAClB,SAAS,EAAE;YACT,KAAK,EAAE,gBAAgB,CAAC,IAAI,CAAC,OAAO;YACpC,OAAO,EAAE,MAAM;YACf,OAAO,EAAE,eAAe;YACxB,UAAU,EAAE,aAAa;YACzB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,aAAa;YACtB,KAAK,EAAE,kBAAkB;YACzB,QAAQ,EAAE,QAAQ;YAClB,UAAU,EAAE,KAAK;YACjB,aAAa,EAAE,QAAQ;SACxB;KACF;IACD,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE;QAC5C,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE;YAChD,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACrB,MAAM,KAAK,GAAG,OAAO,CAAC,UAA8B,CAAA;gBACpD,IAAI,QAAQ,EAAE,CAAC;oBACb,KAAK,CAAC,KAAK,EAAE,CAAA;gBACf,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,KAAK,GAAG,EAAE,CAAA;gBAClB,CAAC;YACH,CAAC;SACF,CAAC,CAAA;QAEF,OAAO,2BAAO,SAAS,QAAC,WAAW,EAAC,mBAAmB,GAAG,CAAA;IAC5D,CAAC;CACF,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=suggest-input.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suggest-input.spec.d.ts","sourceRoot":"","sources":["../../../src/components/suggest/suggest-input.spec.tsx"],"names":[],"mappings":""}