tera-system-ui 0.1.35 → 0.1.41

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 (101) hide show
  1. package/dist/components/command/command.scss +2 -2
  2. package/dist/components/command/components/command-empty.svelte +16 -0
  3. package/dist/components/command/components/command-empty.svelte.d.ts +4 -0
  4. package/dist/components/command/components/command-group.svelte +31 -0
  5. package/dist/components/command/components/command-group.svelte.d.ts +7 -0
  6. package/dist/components/command/components/command-input.svelte +30 -0
  7. package/dist/components/command/components/command-input.svelte.d.ts +4 -0
  8. package/dist/components/command/components/command-item.svelte +20 -0
  9. package/dist/components/command/components/command-item.svelte.d.ts +4 -0
  10. package/dist/components/command/components/command-link-item.svelte +18 -0
  11. package/dist/components/command/components/command-link-item.svelte.d.ts +4 -0
  12. package/dist/components/command/components/command-list.svelte +16 -0
  13. package/dist/components/command/components/command-list.svelte.d.ts +4 -0
  14. package/dist/components/command/components/command-separator.svelte +15 -0
  15. package/dist/components/command/components/command-separator.svelte.d.ts +4 -0
  16. package/dist/components/command/components/command-shortcut.svelte +19 -0
  17. package/dist/components/command/components/command-shortcut.svelte.d.ts +5 -0
  18. package/dist/components/command/components/command.svelte +54 -0
  19. package/dist/components/command/components/command.svelte.d.ts +5 -0
  20. package/dist/components/command/index.d.ts +12 -12
  21. package/dist/components/command/index.js +13 -18
  22. package/dist/index.d.ts +0 -1
  23. package/dist/index.js +0 -1
  24. package/dist/tera-i18n/dev-tools/translator/gpt-translator-i18n-message.js +1 -3
  25. package/dist/tera-i18n/dev-tools/translator/prompt/i18n-message-translate-prompt-cv-maker.txt +17 -14
  26. package/dist/tera-i18n/projects/common/all-language-data.js +10 -1
  27. package/dist/tera-i18n/projects/cv-maker/messages/ar.json +13 -13
  28. package/dist/tera-i18n/projects/cv-maker/messages/bg.json +18 -18
  29. package/dist/tera-i18n/projects/cv-maker/messages/bn.json +21 -21
  30. package/dist/tera-i18n/projects/cv-maker/messages/ca.json +12 -12
  31. package/dist/tera-i18n/projects/cv-maker/messages/cs.json +11 -11
  32. package/dist/tera-i18n/projects/cv-maker/messages/da.json +10 -10
  33. package/dist/tera-i18n/projects/cv-maker/messages/de.json +11 -11
  34. package/dist/tera-i18n/projects/cv-maker/messages/el.json +14 -14
  35. package/dist/tera-i18n/projects/cv-maker/messages/en-CA.json +51 -0
  36. package/dist/tera-i18n/projects/cv-maker/messages/en-GB.json +51 -0
  37. package/dist/tera-i18n/projects/cv-maker/messages/en-IN.json +51 -0
  38. package/dist/tera-i18n/projects/cv-maker/messages/en-PK.json +51 -0
  39. package/dist/tera-i18n/projects/cv-maker/messages/en-US.json +51 -0
  40. package/dist/tera-i18n/projects/cv-maker/messages/en-ZA.json +51 -0
  41. package/dist/tera-i18n/projects/cv-maker/messages/es.json +8 -8
  42. package/dist/tera-i18n/projects/cv-maker/messages/fi.json +5 -5
  43. package/dist/tera-i18n/projects/cv-maker/messages/fr.json +13 -13
  44. package/dist/tera-i18n/projects/cv-maker/messages/he.json +13 -13
  45. package/dist/tera-i18n/projects/cv-maker/messages/hi.json +12 -12
  46. package/dist/tera-i18n/projects/cv-maker/messages/hu.json +16 -16
  47. package/dist/tera-i18n/projects/cv-maker/messages/id.json +9 -9
  48. package/dist/tera-i18n/projects/cv-maker/messages/it.json +13 -13
  49. package/dist/tera-i18n/projects/cv-maker/messages/ja.json +13 -13
  50. package/dist/tera-i18n/projects/cv-maker/messages/ko.json +15 -15
  51. package/dist/tera-i18n/projects/cv-maker/messages/lt.json +13 -13
  52. package/dist/tera-i18n/projects/cv-maker/messages/lv.json +12 -12
  53. package/dist/tera-i18n/projects/cv-maker/messages/ms-MY.json +51 -0
  54. package/dist/tera-i18n/projects/cv-maker/messages/ms.json +10 -10
  55. package/dist/tera-i18n/projects/cv-maker/messages/nl.json +5 -5
  56. package/dist/tera-i18n/projects/cv-maker/messages/no.json +8 -8
  57. package/dist/tera-i18n/projects/cv-maker/messages/pl.json +12 -12
  58. package/dist/tera-i18n/projects/cv-maker/messages/pt-BR.json +51 -0
  59. package/dist/tera-i18n/projects/cv-maker/messages/pt-PT.json +51 -0
  60. package/dist/tera-i18n/projects/cv-maker/messages/pt.json +7 -7
  61. package/dist/tera-i18n/projects/cv-maker/messages/ro.json +9 -9
  62. package/dist/tera-i18n/projects/cv-maker/messages/ru.json +13 -13
  63. package/dist/tera-i18n/projects/cv-maker/messages/sk.json +15 -15
  64. package/dist/tera-i18n/projects/cv-maker/messages/sl.json +15 -15
  65. package/dist/tera-i18n/projects/cv-maker/messages/sq.json +34 -34
  66. package/dist/tera-i18n/projects/cv-maker/messages/sr.json +16 -16
  67. package/dist/tera-i18n/projects/cv-maker/messages/sv.json +9 -9
  68. package/dist/tera-i18n/projects/cv-maker/messages/sw.json +15 -15
  69. package/dist/tera-i18n/projects/cv-maker/messages/ta.json +25 -25
  70. package/dist/tera-i18n/projects/cv-maker/messages/te.json +25 -25
  71. package/dist/tera-i18n/projects/cv-maker/messages/th.json +17 -17
  72. package/dist/tera-i18n/projects/cv-maker/messages/tl.json +16 -16
  73. package/dist/tera-i18n/projects/cv-maker/messages/tr.json +6 -6
  74. package/dist/tera-i18n/projects/cv-maker/messages/uk.json +15 -15
  75. package/dist/tera-i18n/projects/cv-maker/messages/vi.json +18 -18
  76. package/dist/tera-i18n/projects/cv-maker/messages/zh-CN.json +29 -29
  77. package/dist/tera-i18n/projects/cv-maker/messages/zh-TW.json +26 -26
  78. package/dist/tera-i18n/projects/cv-maker/project.inlang/settings.json +68 -59
  79. package/dist/tera-i18n/projects/cv-maker/supported-language.js +10 -1
  80. package/dist/utils/index.d.ts +10 -0
  81. package/package.json +1 -1
  82. package/dist/components/command/command.d.ts +0 -33
  83. package/dist/components/command/command.js +0 -512
  84. package/dist/components/command/components/Command.svelte +0 -120
  85. package/dist/components/command/components/Command.svelte.d.ts +0 -4
  86. package/dist/components/command/components/CommandEmpty.svelte +0 -30
  87. package/dist/components/command/components/CommandEmpty.svelte.d.ts +0 -4
  88. package/dist/components/command/components/CommandGroup.svelte +0 -110
  89. package/dist/components/command/components/CommandGroup.svelte.d.ts +0 -4
  90. package/dist/components/command/components/CommandInput.svelte +0 -92
  91. package/dist/components/command/components/CommandInput.svelte.d.ts +0 -8
  92. package/dist/components/command/components/CommandItem.svelte +0 -110
  93. package/dist/components/command/components/CommandItem.svelte.d.ts +0 -4
  94. package/dist/components/command/components/CommandList.svelte +0 -56
  95. package/dist/components/command/components/CommandList.svelte.d.ts +0 -6
  96. package/dist/components/command/components/CommandLoading.svelte +0 -29
  97. package/dist/components/command/components/CommandLoading.svelte.d.ts +0 -9
  98. package/dist/components/command/components/CommandSeparator.svelte +0 -21
  99. package/dist/components/command/components/CommandSeparator.svelte.d.ts +0 -4
  100. package/dist/components/command/types.d.ts +0 -227
  101. package/dist/components/command/types.js +0 -1
@@ -1,512 +0,0 @@
1
- import { getContext, setContext, tick } from 'svelte';
2
- import { commandScore } from '../../internal/command-score';
3
- import { get, writable } from 'svelte/store';
4
- import { omit, generateId, toWritableStores, isUndefined, kbd, removeUndefined, effect } from '../../internal';
5
- import './command.scss';
6
- const NAME = 'Command';
7
- const STATE_NAME = 'CommandState';
8
- const GROUP_NAME = 'CommandGroup';
9
- export const LIST_SELECTOR = `[data-cmdk-list-sizer]`;
10
- export const GROUP_SELECTOR = `[data-cmdk-group]`;
11
- export const GROUP_ITEMS_SELECTOR = `[data-cmdk-group-items]`;
12
- export const GROUP_HEADING_SELECTOR = `[data-cmdk-group-heading]`;
13
- export const ITEM_SELECTOR = `[data-cmdk-item]`;
14
- export const VALID_ITEM_SELECTOR = `${ITEM_SELECTOR}:not([aria-disabled="true"])`;
15
- export const VALUE_ATTR = `data-value`;
16
- export const defaultFilter = (value, search) => commandScore(value, search);
17
- export function getCtx() {
18
- return getContext(NAME);
19
- }
20
- export function getState() {
21
- return getContext(STATE_NAME);
22
- }
23
- export function createGroup(alwaysRender) {
24
- const id = generateId();
25
- setContext(GROUP_NAME, {
26
- id,
27
- alwaysRender: isUndefined(alwaysRender) ? false : alwaysRender
28
- });
29
- return { id };
30
- }
31
- export function getGroup() {
32
- const context = getContext(GROUP_NAME);
33
- if (!context)
34
- return undefined;
35
- return context;
36
- }
37
- export function createState(initialValues) {
38
- const defaultState = {
39
- search: '',
40
- value: '',
41
- filtered: {
42
- count: 0,
43
- items: new Map(),
44
- groups: new Set()
45
- }
46
- };
47
- const state = writable(initialValues ? { ...defaultState, ...removeUndefined(initialValues) } : defaultState);
48
- return state;
49
- }
50
- const defaults = {
51
- label: 'Command menu',
52
- shouldFilter: true,
53
- loop: false,
54
- onValueChange: undefined,
55
- value: undefined,
56
- filter: defaultFilter,
57
- ids: {
58
- root: generateId(),
59
- list: generateId(),
60
- label: generateId(),
61
- input: generateId()
62
- }
63
- };
64
- export function createCommand(props) {
65
- const ids = {
66
- root: generateId(),
67
- list: generateId(),
68
- label: generateId(),
69
- input: generateId(),
70
- ...props.ids
71
- };
72
- const withDefaults = {
73
- ...defaults,
74
- ...removeUndefined(props)
75
- };
76
- const state = props.state ??
77
- createState({
78
- value: withDefaults.value
79
- });
80
- const allItems = writable(new Set()); // [...itemIds]
81
- const allGroups = writable(new Map()); // groupId → [...itemIds]
82
- const allIds = writable(new Map()); // id → value
83
- const commandEl = writable(null);
84
- const options = toWritableStores(omit(withDefaults, 'value', 'ids'));
85
- let $allItems = get(allItems);
86
- let $allGroups = get(allGroups);
87
- let $allIds = get(allIds);
88
- let shouldFilter = get(options.shouldFilter);
89
- let loop = get(options.loop);
90
- let label = get(options.label);
91
- let filter = get(options.filter);
92
- effect(options.shouldFilter, ($shouldFilter) => {
93
- shouldFilter = $shouldFilter;
94
- });
95
- effect(options.loop, ($loop) => {
96
- loop = $loop;
97
- });
98
- effect(options.filter, ($filter) => {
99
- filter = $filter;
100
- });
101
- effect(options.label, ($label) => {
102
- label = $label;
103
- });
104
- effect(allItems, (v) => {
105
- $allItems = v;
106
- });
107
- effect(allGroups, (v) => {
108
- $allGroups = v;
109
- });
110
- effect(allIds, (v) => {
111
- $allIds = v;
112
- });
113
- const context = {
114
- value: (id, value) => {
115
- if (value !== $allIds.get(id)) {
116
- allIds.update(($allIds) => {
117
- $allIds.set(id, value);
118
- return $allIds;
119
- });
120
- state.update(($state) => {
121
- $state.filtered.items.set(id, score(value, $state.search));
122
- return $state;
123
- });
124
- }
125
- },
126
- // Track item lifecycle (add/remove)
127
- item: (id, groupId) => {
128
- allItems.update(($allItems) => $allItems.add(id));
129
- // Track this item within the group
130
- if (groupId) {
131
- allGroups.update(($allGroups) => {
132
- if (!$allGroups.has(groupId)) {
133
- $allGroups.set(groupId, new Set([id]));
134
- }
135
- else {
136
- $allGroups.get(groupId)?.add(id);
137
- }
138
- return $allGroups;
139
- });
140
- }
141
- state.update(($state) => {
142
- const filteredState = filterItems($state, shouldFilter);
143
- if (!filteredState.value) {
144
- const value = selectFirstItem();
145
- filteredState.value = value ?? '';
146
- }
147
- return filteredState;
148
- });
149
- return () => {
150
- allIds.update(($allIds) => {
151
- $allIds.delete(id);
152
- return $allIds;
153
- });
154
- allItems.update(($allItems) => {
155
- $allItems.delete(id);
156
- return $allItems;
157
- });
158
- state.update(($state) => {
159
- $state.filtered.items.delete(id);
160
- const selectedItem = getSelectedItem();
161
- const filteredState = filterItems($state);
162
- if (selectedItem?.getAttribute('id') === id) {
163
- filteredState.value = selectFirstItem() ?? '';
164
- }
165
- return $state;
166
- });
167
- };
168
- },
169
- group: (id) => {
170
- allGroups.update(($allGroups) => {
171
- if (!$allGroups.has(id)) {
172
- $allGroups.set(id, new Set());
173
- }
174
- return $allGroups;
175
- });
176
- return () => {
177
- allIds.update(($allIds) => {
178
- $allIds.delete(id);
179
- return $allIds;
180
- });
181
- allGroups.update(($allGroups) => {
182
- $allGroups.delete(id);
183
- return $allGroups;
184
- });
185
- };
186
- },
187
- filter: () => {
188
- return shouldFilter;
189
- },
190
- label: label || props['aria-label'] || '',
191
- commandEl,
192
- ids,
193
- updateState
194
- };
195
- function updateState(key, value, preventScroll) {
196
- state.update((curr) => {
197
- if (Object.is(curr[key], value))
198
- return curr;
199
- curr[key] = value;
200
- if (key === 'search') {
201
- const filteredState = filterItems(curr, shouldFilter);
202
- curr = filteredState;
203
- const sortedState = sort(curr, shouldFilter);
204
- curr = sortedState;
205
- tick().then(() => state.update((curr) => {
206
- curr.value = selectFirstItem() ?? '';
207
- props.onValueChange?.(curr.value);
208
- return curr;
209
- }));
210
- }
211
- else if (key === 'value') {
212
- props.onValueChange?.(curr.value);
213
- if (!preventScroll) {
214
- tick().then(() => scrollSelectedIntoView());
215
- }
216
- }
217
- return curr;
218
- });
219
- }
220
- function filterItems(state, shouldFilterVal) {
221
- const $shouldFilter = shouldFilterVal ?? shouldFilter;
222
- if (!state.search || !$shouldFilter) {
223
- state.filtered.count = $allItems.size;
224
- return state;
225
- }
226
- state.filtered.groups = new Set();
227
- let itemCount = 0;
228
- // check which items should be included
229
- for (const id of $allItems) {
230
- const value = $allIds.get(id);
231
- const rank = score(value, state.search);
232
- state.filtered.items.set(id, rank);
233
- if (rank > 0) {
234
- itemCount++;
235
- }
236
- }
237
- // Check which groups have at least 1 item shown
238
- for (const [groupId, group] of $allGroups) {
239
- for (const itemId of group) {
240
- const rank = state.filtered.items.get(itemId);
241
- if (rank && rank > 0) {
242
- state.filtered.groups.add(groupId);
243
- }
244
- }
245
- }
246
- state.filtered.count = itemCount;
247
- return state;
248
- }
249
- function sort(state, shouldFilterVal) {
250
- const $shouldFilter = shouldFilterVal ?? shouldFilter;
251
- if (!state.search || !$shouldFilter) {
252
- return state;
253
- }
254
- console.log(state);
255
- const scores = state.filtered.items;
256
- // sort groups
257
- const groups = [];
258
- for (const value of state.filtered.groups) {
259
- const items = $allGroups.get(value);
260
- if (!items)
261
- continue;
262
- // get max score of the group's items
263
- let max = 0;
264
- for (const item of items) {
265
- const score = scores.get(item);
266
- if (isUndefined(score))
267
- continue;
268
- max = Math.max(score, max);
269
- }
270
- groups.push([value, max]);
271
- }
272
- // Sort items within groups to bottom
273
- // sort items outside of groups
274
- // sort groups to bottom (pushed all non-grouped items to the top)
275
- const rootEl = document.getElementById(ids.root);
276
- if (!rootEl)
277
- return state;
278
- const list = rootEl.querySelector(LIST_SELECTOR);
279
- const validItems = getValidItems(rootEl).sort((a, b) => {
280
- const valueA = a.getAttribute('id') ?? '';
281
- const valueB = b.getAttribute('id') ?? '';
282
- return -(scores.get(valueA) ?? 0) + (scores.get(valueB) ?? 0);
283
- });
284
- // console.log('validItems', validItems)
285
- // console.log(validItems)
286
- // console.log(scores)
287
- // console.log(validItems.map(i => {
288
- // return scores.get(i.getAttribute('id') ?? '');
289
- // }))
290
- for (const item of validItems) {
291
- const group = item.closest(GROUP_ITEMS_SELECTOR);
292
- const closest = item.closest(`${GROUP_ITEMS_SELECTOR} > *`);
293
- // console.log(group)
294
- // console.log(item.textContent)
295
- if (group) {
296
- if (item.parentElement === group) {
297
- group.appendChild(item);
298
- // console.log('group.appendChild(item)')
299
- }
300
- else {
301
- if (!closest)
302
- continue;
303
- group.appendChild(closest);
304
- // console.log('group.appendChild(closest)')
305
- }
306
- }
307
- else {
308
- if (item.parentElement === list) {
309
- list?.appendChild(item);
310
- }
311
- else {
312
- if (!closest)
313
- continue;
314
- list?.appendChild(closest);
315
- }
316
- }
317
- }
318
- groups.sort((a, b) => b[1] - a[1]);
319
- for (const group of groups) {
320
- let selector = `${GROUP_SELECTOR}[${VALUE_ATTR}="${group[0]}"]`;
321
- const el = rootEl.querySelector(selector);
322
- el?.parentElement?.appendChild(el);
323
- // console.log('el', el, selector, group);
324
- }
325
- return state;
326
- }
327
- function selectFirstItem() {
328
- const item = getValidItems().find((item) => !item.ariaDisabled);
329
- if (!item)
330
- return;
331
- const value = item.getAttribute(VALUE_ATTR);
332
- if (!value)
333
- return;
334
- return value;
335
- }
336
- function score(value, search) {
337
- const lowerCaseAndTrimmedValue = value?.toLowerCase().trim();
338
- const filterFn = filter;
339
- if (!filterFn) {
340
- return lowerCaseAndTrimmedValue ? defaultFilter(lowerCaseAndTrimmedValue, search) : 0;
341
- }
342
- return lowerCaseAndTrimmedValue ? filterFn(lowerCaseAndTrimmedValue, search) : 0;
343
- }
344
- function scrollSelectedIntoView() {
345
- const item = getSelectedItem();
346
- if (!item) {
347
- return;
348
- }
349
- if (item.parentElement?.firstChild === item) {
350
- tick().then(() => item.closest(GROUP_SELECTOR)?.querySelector(GROUP_HEADING_SELECTOR)?.scrollIntoView({
351
- block: 'nearest'
352
- }));
353
- }
354
- tick().then(() => item.scrollIntoView({ block: 'nearest' }));
355
- }
356
- function getValidItems(rootElement) {
357
- const rootEl = rootElement ?? document.getElementById(ids.root);
358
- if (!rootEl)
359
- return [];
360
- return Array.from(rootEl.querySelectorAll(VALID_ITEM_SELECTOR)).filter((el) => (el ? true : false));
361
- }
362
- function getSelectedItem(rootElement) {
363
- const rootEl = rootElement ?? document.getElementById(ids.root);
364
- if (!rootEl)
365
- return;
366
- const selectedEl = rootEl.querySelector(`${VALID_ITEM_SELECTOR}[aria-selected="true"]`);
367
- if (!selectedEl)
368
- return;
369
- return selectedEl;
370
- }
371
- function updateSelectedToIndex(index) {
372
- const rootEl = document.getElementById(ids.root);
373
- if (!rootEl)
374
- return;
375
- const items = getValidItems(rootEl);
376
- const item = items[index];
377
- if (!item)
378
- return;
379
- updateState('value', item.getAttribute(VALUE_ATTR) ?? '');
380
- }
381
- function updateSelectedByChange(change) {
382
- const selected = getSelectedItem();
383
- const items = getValidItems();
384
- const index = items.findIndex((item) => item === selected);
385
- // get item at this index
386
- let newSelected = items[index + change];
387
- if (loop) {
388
- if (index + change < 0) {
389
- newSelected = items[items.length - 1];
390
- }
391
- else if (index + change === items.length) {
392
- newSelected = items[0];
393
- }
394
- else {
395
- newSelected = items[index + change];
396
- }
397
- }
398
- if (newSelected) {
399
- updateState('value', newSelected.getAttribute(VALUE_ATTR) ?? '');
400
- }
401
- }
402
- function updateSelectedToGroup(change) {
403
- const selected = getSelectedItem();
404
- let group = selected?.closest(GROUP_SELECTOR);
405
- let item = undefined;
406
- while (group && !item) {
407
- group =
408
- change > 0
409
- ? findNextSibling(group, GROUP_SELECTOR)
410
- : findPreviousSibling(group, GROUP_SELECTOR);
411
- item = group?.querySelector(VALID_ITEM_SELECTOR);
412
- }
413
- if (item) {
414
- updateState('value', item.getAttribute(VALUE_ATTR) ?? '');
415
- }
416
- else {
417
- updateSelectedByChange(change);
418
- }
419
- }
420
- function last() {
421
- return updateSelectedToIndex(getValidItems().length - 1);
422
- }
423
- function next(e) {
424
- e.preventDefault();
425
- if (e.metaKey) {
426
- last();
427
- }
428
- else if (e.altKey) {
429
- updateSelectedToGroup(1);
430
- }
431
- else {
432
- updateSelectedByChange(1);
433
- }
434
- }
435
- function prev(e) {
436
- e.preventDefault();
437
- if (e.metaKey) {
438
- updateSelectedToIndex(0);
439
- }
440
- else if (e.altKey) {
441
- updateSelectedToGroup(-1);
442
- }
443
- else {
444
- updateSelectedByChange(-1);
445
- }
446
- }
447
- function requestCloseCommand(e) {
448
- e.preventDefault();
449
- props.onRequestCloseCommand?.();
450
- }
451
- function handleRootKeydown(e) {
452
- switch (e.key) {
453
- case kbd.ARROW_DOWN:
454
- next(e);
455
- break;
456
- case kbd.ARROW_UP:
457
- prev(e);
458
- break;
459
- case kbd.HOME:
460
- // first item
461
- e.preventDefault();
462
- updateSelectedToIndex(0);
463
- break;
464
- case kbd.END:
465
- // last item
466
- e.preventDefault();
467
- last();
468
- break;
469
- case kbd.ESCAPE:
470
- // last item
471
- requestCloseCommand(e);
472
- break;
473
- case kbd.ENTER: {
474
- e.preventDefault();
475
- const item = getSelectedItem();
476
- if (item) {
477
- item?.click();
478
- }
479
- }
480
- }
481
- }
482
- setContext(NAME, context);
483
- const stateStore = {
484
- subscribe: state.subscribe,
485
- update: state.update,
486
- set: state.set,
487
- updateState
488
- };
489
- setContext(STATE_NAME, stateStore);
490
- return {
491
- state: stateStore,
492
- handleRootKeydown,
493
- commandEl,
494
- ids
495
- };
496
- }
497
- function findNextSibling(el, selector) {
498
- let sibling = el.nextElementSibling;
499
- while (sibling) {
500
- if (sibling.matches(selector))
501
- return sibling;
502
- sibling = sibling.nextElementSibling;
503
- }
504
- }
505
- function findPreviousSibling(el, selector) {
506
- let sibling = el.previousElementSibling;
507
- while (sibling) {
508
- if (sibling.matches(selector))
509
- return sibling;
510
- sibling = sibling.previousElementSibling;
511
- }
512
- }
@@ -1,120 +0,0 @@
1
- <script lang="ts">
2
- import {addEventListener, executeCallbacks, srOnlyStyles, styleToString} from '../../../internal';
3
-
4
- import {createCommand} from '../command.js';
5
- import type {CommandProps} from '../types.js';
6
-
7
- let {
8
- children,
9
- childrenWithProps,
10
- label = undefined,
11
- shouldFilter = true,
12
- filter = undefined,
13
- value = undefined,
14
- onValueChange = undefined,
15
- loop = undefined,
16
- onKeydown = undefined,
17
- state: commandState = undefined,
18
- ids = undefined,
19
- asChild = false,
20
- onRequestCloseCommand,
21
- ...restProps
22
- }: CommandProps = $props();
23
-
24
-
25
- const {
26
- commandEl,
27
- handleRootKeydown,
28
- ids: commandIds,
29
- state: stateStore
30
- } = createCommand({
31
- label,
32
- shouldFilter,
33
- filter,
34
- value,
35
- onValueChange: (next) => {
36
- if (next !== value) {
37
- value = next;
38
- onValueChange?.(next);
39
- }
40
- },
41
- loop,
42
- state: commandState,
43
- ids,
44
- onRequestCloseCommand
45
- });
46
-
47
- let slotProps = $state()
48
-
49
- function syncValueAndState(value: string | undefined) {
50
- if (value && value !== $stateStore.value) {
51
- $stateStore.value = value;
52
- }
53
- }
54
-
55
-
56
-
57
-
58
- function rootAction(node: HTMLDivElement) {
59
- commandEl.set(node);
60
-
61
- const unsubEvents = executeCallbacks(addEventListener(node, 'keydown', handleKeydown));
62
-
63
- return {
64
- destroy: unsubEvents
65
- };
66
- }
67
-
68
- const rootAttrs = {
69
- role: 'application',
70
- id: commandIds.root,
71
- 'data-cmdk-root': ''
72
- };
73
-
74
- const labelAttrs = {
75
- 'data-cmdk-label': '',
76
- for: commandIds.input,
77
- id: commandIds.label,
78
- style: styleToString(srOnlyStyles)
79
- };
80
-
81
- function handleKeydown(e: KeyboardEvent) {
82
- onKeydown?.(e);
83
- if (e.defaultPrevented) return;
84
- handleRootKeydown(e);
85
- }
86
-
87
- const root = {
88
- action: rootAction,
89
- attrs: rootAttrs
90
- };
91
-
92
-
93
-
94
-
95
- $effect(() => {
96
- syncValueAndState(value);
97
-
98
- slotProps = {
99
- root,
100
- label: {attrs: labelAttrs},
101
- stateStore,
102
- state: $stateStore
103
- };
104
- })
105
- </script>
106
-
107
- {#if asChild}
108
- {@render childrenWithProps?.(slotProps)}
109
- {:else}
110
- <div use:rootAction {...rootAttrs} {...restProps}>
111
- <!-- svelte-ignore a11y_label_has_associated_control applied in attrs -->
112
- <label {...labelAttrs}>
113
- {label ?? ''}
114
- </label>
115
- <!--{@render childrenWithProps?.(slotProps)}-->
116
- {@render children?.()}
117
- <!-- <slot {...slotProps}/>-->
118
- </div>
119
- {/if}
120
-
@@ -1,4 +0,0 @@
1
- import type { CommandProps } from '../types.js';
2
- declare const Command: import("svelte").Component<CommandProps, {}, "">;
3
- type Command = ReturnType<typeof Command>;
4
- export default Command;
@@ -1,30 +0,0 @@
1
- <script lang="ts">
2
- import {getState} from '../command.js';
3
- import type {EmptyProps} from '../types.js';
4
- import {derived} from "svelte/store";
5
- import {onMount} from "svelte";
6
-
7
- type $$Props = EmptyProps;
8
-
9
- let {children, ...restProps}: $$Props = $props()
10
-
11
- let isFirstRender = $state(true);
12
- const commandState = getState();
13
-
14
- let render = derived(commandState, ($commandState) => ($commandState.filtered.count === 0))
15
-
16
- onMount(() => {
17
- isFirstRender = false;
18
- });
19
-
20
- const attrs = {
21
- 'data-cmdk-empty': '',
22
- role: 'presentation'
23
- };
24
- </script>
25
-
26
- {#if !isFirstRender && $render}
27
- <div {...attrs} {...restProps}>
28
- {@render children?.()}
29
- </div>
30
- {/if}
@@ -1,4 +0,0 @@
1
- import type { EmptyProps } from '../types.js';
2
- declare const CommandEmpty: import("svelte").Component<EmptyProps, {}, "">;
3
- type CommandEmpty = ReturnType<typeof CommandEmpty>;
4
- export default CommandEmpty;