@sveltia/ui 0.12.0 → 0.12.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/package/components/button/button.svelte.d.ts +10 -10
  2. package/package/components/button/select-button-group.svelte.d.ts +2 -2
  3. package/package/components/button/select-button.svelte.d.ts +2 -2
  4. package/package/components/button/split-button.svelte.d.ts +2 -2
  5. package/package/components/checkbox/checkbox-group.svelte.d.ts +2 -2
  6. package/package/components/checkbox/checkbox.svelte +2 -2
  7. package/package/components/checkbox/checkbox.svelte.d.ts +4 -4
  8. package/package/components/dialog/dialog.svelte +2 -2
  9. package/package/components/dialog/prompt-dialog.svelte.d.ts +2 -2
  10. package/package/components/disclosure/disclosure.svelte +2 -2
  11. package/package/components/disclosure/disclosure.svelte.d.ts +2 -2
  12. package/package/components/drawer/drawer.svelte +2 -2
  13. package/package/components/drawer/drawer.svelte.d.ts +4 -4
  14. package/package/components/grid/grid-body.svelte +2 -2
  15. package/package/components/listbox/listbox.svelte.d.ts +4 -4
  16. package/package/components/listbox/option-group.svelte +2 -2
  17. package/package/components/listbox/option-group.svelte.d.ts +2 -2
  18. package/package/components/listbox/option.svelte.d.ts +2 -2
  19. package/package/components/menu/menu-button.svelte.d.ts +4 -4
  20. package/package/components/menu/menu-item-checkbox.svelte.d.ts +2 -2
  21. package/package/components/menu/menu-item-group.svelte +2 -2
  22. package/package/components/menu/menu-item-group.svelte.d.ts +2 -2
  23. package/package/components/menu/menu-item-radio.svelte.d.ts +2 -2
  24. package/package/components/menu/menu-item.svelte.d.ts +4 -4
  25. package/package/components/menu/menu.svelte.d.ts +2 -2
  26. package/package/components/radio/radio-group.svelte.d.ts +2 -2
  27. package/package/components/radio/radio.svelte +2 -2
  28. package/package/components/radio/radio.svelte.d.ts +2 -2
  29. package/package/components/select/combobox.svelte +2 -2
  30. package/package/components/select/combobox.svelte.d.ts +4 -4
  31. package/package/components/select/select.svelte.d.ts +2 -2
  32. package/package/components/slider/slider.svelte.d.ts +2 -2
  33. package/package/components/switch/switch.svelte.d.ts +4 -4
  34. package/package/components/table/table-body.svelte +2 -2
  35. package/package/components/tabs/tab-list.svelte.d.ts +2 -2
  36. package/package/components/tabs/tab.svelte.d.ts +2 -2
  37. package/package/components/text-editor/text-editor.svelte +3 -3
  38. package/package/components/text-editor/text-editor.svelte.d.ts +2 -2
  39. package/package/components/text-editor/toolbar/editor-toolbar.svelte +17 -23
  40. package/package/components/text-editor/toolbar/insert-link-button.svelte +1 -1
  41. package/package/components/text-field/number-input.svelte +2 -2
  42. package/package/components/text-field/number-input.svelte.d.ts +2 -2
  43. package/package/components/text-field/password-input.svelte +2 -2
  44. package/package/components/text-field/password-input.svelte.d.ts +2 -2
  45. package/package/components/text-field/search-bar.svelte +2 -2
  46. package/package/components/text-field/search-bar.svelte.d.ts +2 -2
  47. package/package/components/text-field/text-area.svelte.d.ts +2 -2
  48. package/package/components/text-field/text-input.svelte +2 -2
  49. package/package/components/text-field/text-input.svelte.d.ts +6 -6
  50. package/package/components/toast/toast.svelte.d.ts +2 -2
  51. package/package/components/toolbar/toolbar.svelte.d.ts +2 -2
  52. package/package/components/util/group.svelte.d.ts +2 -2
  53. package/package/components/util/modal.svelte +1 -1
  54. package/package/components/util/modal.svelte.d.ts +2 -2
  55. package/package/components/util/popup.svelte +2 -2
  56. package/package/components/util/popup.svelte.d.ts +3 -6
  57. package/package/index.d.ts +0 -1
  58. package/package/index.js +8 -3
  59. package/package/locales/en.d.ts +2 -3
  60. package/package/locales/en.js +2 -3
  61. package/package/locales/ja.d.ts +2 -3
  62. package/package/locales/ja.js +2 -3
  63. package/package/services/group.js +3 -2
  64. package/package/services/popup.js +2 -2
  65. package/package.json +5 -11
  66. package/package/services/util.d.ts +0 -4
  67. package/package/services/util.js +0 -56
@@ -67,4 +67,3 @@ export { default as Toolbar } from "./components/toolbar/toolbar.svelte";
67
67
  export { default as AppShell } from "./components/util/app-shell.svelte";
68
68
  export { default as Group } from "./components/util/group.svelte";
69
69
  export { default as Modal } from "./components/util/modal.svelte";
70
- export * from "./services/util";
package/package/index.js CHANGED
@@ -10,7 +10,14 @@ import { addMessages, init } from 'svelte-i18n';
10
10
  */
11
11
  export const initLocales = ({ fallbackLocale = 'en', initialLocale = 'en' } = {}) => {
12
12
  /** @type {{ [key: string]: { strings: object }}} */
13
- const modules = import.meta.glob('./locales/*.js', { eager: true });
13
+ let modules = import.meta.glob('./locales/*.js', { eager: true });
14
+
15
+ // The file path must be relative during local development, or the import may fail when using
16
+ // `pnpm link -g @sveltia/ui`. On the other hand, it must start with `$lib` when being imported
17
+ // with `pnpm install @sveltia/ui`, otherwise the path cannot be resolved.
18
+ if (!Object.keys(modules).length) {
19
+ modules = import.meta.glob('$lib/locales/*.js', { eager: true });
20
+ }
14
21
 
15
22
  Object.entries(modules).forEach(([path, { strings }]) => {
16
23
  const [, locale] = /** @type {string[]} */ (path.match(/([a-zA-Z-]+)\.js/));
@@ -92,5 +99,3 @@ export { default as Toolbar } from './components/toolbar/toolbar.svelte';
92
99
  export { default as AppShell } from './components/util/app-shell.svelte';
93
100
  export { default as Group } from './components/util/group.svelte';
94
101
  export { default as Modal } from './components/util/modal.svelte';
95
-
96
- export * from './services/util';
@@ -57,9 +57,8 @@ export namespace strings {
57
57
  export const update_link: string;
58
58
  export const text: string;
59
59
  export const url: string;
60
- export const edit_options: string;
61
- export const show_edit_options: string;
62
- export const use_rich_text: string;
60
+ export const rich_text: string;
61
+ export const use_rich_text_mode: string;
63
62
  export const converter_error: string;
64
63
  }
65
64
  }
@@ -56,9 +56,8 @@ export const strings = {
56
56
  update_link: 'Update Link',
57
57
  text: 'Text',
58
58
  url: 'URL',
59
- edit_options: 'Edit Options',
60
- show_edit_options: 'Show Edit Options',
61
- use_rich_text: 'Use Rich Text',
59
+ rich_text: 'Rich Text',
60
+ use_rich_text_mode: 'Use Rich Text Mode',
62
61
  converter_error:
63
62
  'There was an error while enabling rich text mode. Please use the plain text editor instead.',
64
63
  },
@@ -57,9 +57,8 @@ export namespace strings {
57
57
  export const update_link: string;
58
58
  export const text: string;
59
59
  export const url: string;
60
- export const edit_options: string;
61
- export const show_edit_options: string;
62
- export const use_rich_text: string;
60
+ export const rich_text: string;
61
+ export const use_rich_text_mode: string;
63
62
  export const converter_error: string;
64
63
  }
65
64
  }
@@ -56,9 +56,8 @@ export const strings = {
56
56
  update_link: 'リンクを更新',
57
57
  text: 'テキスト',
58
58
  url: 'URL',
59
- edit_options: '編集オプション',
60
- show_edit_options: '編集オプションを表示',
61
- use_rich_text: 'リッチテキストを使用',
59
+ rich_text: 'リッチテキスト',
60
+ use_rich_text_mode: 'リッチテキストモードを使用',
62
61
  converter_error:
63
62
  'リッチテキストモードを有効化中に問題が発生しました。代わりにプレーンテキストエディターを使用してください。',
64
63
  },
@@ -1,4 +1,5 @@
1
- import { getRandomId, sleep } from './util';
1
+ import { generateElementId } from '@sveltia/utils/element';
2
+ import { sleep } from '@sveltia/utils/misc';
2
3
 
3
4
  /**
4
5
  * @type {{ [role: string]: {
@@ -62,7 +63,7 @@ class Group {
62
63
  this.parent = parent;
63
64
  this.role = /** @type {string} */ (parent.getAttribute('role'));
64
65
  this.multi = this.parent.getAttribute('aria-multiselectable') === 'true';
65
- this.id = getRandomId(this.role);
66
+ this.id = generateElementId(this.role);
66
67
  this.parentGroupSelector = `[role="group"], [role="${this.role}"]`;
67
68
 
68
69
  const { orientation, childRoles, childSelectedAttr, focusChild } = config[this.role];
@@ -1,7 +1,7 @@
1
1
  /* eslint-disable no-nested-ternary */
2
2
 
3
+ import { generateElementId } from '@sveltia/utils/element';
3
4
  import { get, writable } from 'svelte/store';
4
- import { getRandomId } from './util';
5
5
 
6
6
  /**
7
7
  * Implement the popup handler.
@@ -105,7 +105,7 @@ class Popup {
105
105
  this.popupElement = popupElement; // = backdrop
106
106
  this.position = position;
107
107
  this.positionBaseElement = positionBaseElement ?? anchorElement;
108
- this.id = getRandomId('popup');
108
+ this.id = generateElementId('popup');
109
109
 
110
110
  this.anchorElement.setAttribute('aria-controls', this.id);
111
111
  this.popupElement.setAttribute('id', this.id);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sveltia/ui",
3
- "version": "0.12.0",
3
+ "version": "0.12.2",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "publishConfig": {
@@ -32,13 +32,14 @@
32
32
  "@lexical/selection": "^0.14.5",
33
33
  "@lexical/table": "^0.14.5",
34
34
  "@lexical/utils": "^0.14.5",
35
+ "@sveltia/utils": "^0.1.1",
35
36
  "lexical": "^0.14.5",
36
- "svelte": "^4.2.14"
37
+ "svelte": "^4.2.15"
37
38
  },
38
39
  "devDependencies": {
39
40
  "@playwright/test": "^1.43.1",
40
41
  "@sveltejs/adapter-auto": "^3.2.0",
41
- "@sveltejs/kit": "^2.5.5",
42
+ "@sveltejs/kit": "^2.5.7",
42
43
  "@sveltejs/package": "^2.3.1",
43
44
  "@sveltejs/vite-plugin-svelte": "^3.1.0",
44
45
  "cspell": "^8.7.0",
@@ -61,7 +62,7 @@
61
62
  "svelte-i18n": "^4.0.0",
62
63
  "svelte-preprocess": "^5.1.4",
63
64
  "tslib": "^2.6.2",
64
- "vite": "^5.2.8",
65
+ "vite": "^5.2.10",
65
66
  "vitest": "^1.5.0"
66
67
  },
67
68
  "exports": {
@@ -426,10 +427,6 @@
426
427
  "types": "./package/services/popup.d.ts",
427
428
  "default": "./package/services/popup.js"
428
429
  },
429
- "./services/util": {
430
- "types": "./package/services/util.d.ts",
431
- "default": "./package/services/util.js"
432
- },
433
430
  "./styles/core.scss": "./package/styles/core.scss",
434
431
  "./styles/variables.scss": "./package/styles/variables.scss",
435
432
  "./typedef": {
@@ -662,9 +659,6 @@
662
659
  "services/popup": [
663
660
  "./package/services/popup.d.ts"
664
661
  ],
665
- "services/util": [
666
- "./package/services/util.d.ts"
667
- ],
668
662
  "typedef": [
669
663
  "./package/typedef.d.ts"
670
664
  ]
@@ -1,4 +0,0 @@
1
- export function getRandomId(prefix?: string | undefined, length?: number | undefined): string;
2
- export function isObject(input: any): boolean;
3
- export function sleep(ms?: number | undefined): Promise<void>;
4
- export function isURL(str: string): boolean;
@@ -1,56 +0,0 @@
1
- /**
2
- * Get a random ID that can be used for elements.
3
- * @param {string} [prefix] - Prefix to be added to the ID, e.g. `popup`.
4
- * @param {number} [length] - Number of characters to be used in the ID.
5
- * @returns {string} Generated ID.
6
- */
7
- export const getRandomId = (prefix = 'e', length = 7) =>
8
- [
9
- prefix,
10
- new Array(length)
11
- .fill(0)
12
- .map(() => '0123456789abcdef'[Math.floor(Math.random() * 12)])
13
- .join(''),
14
- ].join('-');
15
-
16
- /**
17
- * Check if the given input is a simple object.
18
- * @param {*} input - Input, probably an object.
19
- * @returns {boolean} Result.
20
- */
21
- export const isObject = (input) =>
22
- input !== null && typeof input === 'object' && !Array.isArray(input);
23
-
24
- /**
25
- * Return a simple `Promise` to resolve in the given time, making it easier to wait for a bit in the
26
- * code, particularly while making sequential HTTP requests.
27
- * @param {number} [ms] - Milliseconds to wait.
28
- * @returns {Promise<void>} Nothing.
29
- */
30
- export const sleep = (ms = 1000) =>
31
- new Promise((resolve) => {
32
- globalThis.setTimeout(() => {
33
- resolve();
34
- }, ms);
35
- });
36
-
37
- /**
38
- * Check if the given string is a URL.
39
- * @param {string} str - String that might be a URL.
40
- * @returns {boolean} Result.
41
- */
42
- export const isURL = (str) => {
43
- // @ts-ignore
44
- if (typeof URL.canParse === 'function') {
45
- // @ts-ignore
46
- return URL.canParse(str);
47
- }
48
-
49
- try {
50
- // eslint-disable-next-line no-new
51
- new URL(str);
52
- return true;
53
- } catch {
54
- return false;
55
- }
56
- };