@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.
- package/package/components/button/button.svelte.d.ts +10 -10
- package/package/components/button/select-button-group.svelte.d.ts +2 -2
- package/package/components/button/select-button.svelte.d.ts +2 -2
- package/package/components/button/split-button.svelte.d.ts +2 -2
- package/package/components/checkbox/checkbox-group.svelte.d.ts +2 -2
- package/package/components/checkbox/checkbox.svelte +2 -2
- package/package/components/checkbox/checkbox.svelte.d.ts +4 -4
- package/package/components/dialog/dialog.svelte +2 -2
- package/package/components/dialog/prompt-dialog.svelte.d.ts +2 -2
- package/package/components/disclosure/disclosure.svelte +2 -2
- package/package/components/disclosure/disclosure.svelte.d.ts +2 -2
- package/package/components/drawer/drawer.svelte +2 -2
- package/package/components/drawer/drawer.svelte.d.ts +4 -4
- package/package/components/grid/grid-body.svelte +2 -2
- package/package/components/listbox/listbox.svelte.d.ts +4 -4
- package/package/components/listbox/option-group.svelte +2 -2
- package/package/components/listbox/option-group.svelte.d.ts +2 -2
- package/package/components/listbox/option.svelte.d.ts +2 -2
- package/package/components/menu/menu-button.svelte.d.ts +4 -4
- package/package/components/menu/menu-item-checkbox.svelte.d.ts +2 -2
- package/package/components/menu/menu-item-group.svelte +2 -2
- package/package/components/menu/menu-item-group.svelte.d.ts +2 -2
- package/package/components/menu/menu-item-radio.svelte.d.ts +2 -2
- package/package/components/menu/menu-item.svelte.d.ts +4 -4
- package/package/components/menu/menu.svelte.d.ts +2 -2
- package/package/components/radio/radio-group.svelte.d.ts +2 -2
- package/package/components/radio/radio.svelte +2 -2
- package/package/components/radio/radio.svelte.d.ts +2 -2
- package/package/components/select/combobox.svelte +2 -2
- package/package/components/select/combobox.svelte.d.ts +4 -4
- package/package/components/select/select.svelte.d.ts +2 -2
- package/package/components/slider/slider.svelte.d.ts +2 -2
- package/package/components/switch/switch.svelte.d.ts +4 -4
- package/package/components/table/table-body.svelte +2 -2
- package/package/components/tabs/tab-list.svelte.d.ts +2 -2
- package/package/components/tabs/tab.svelte.d.ts +2 -2
- package/package/components/text-editor/text-editor.svelte +3 -3
- package/package/components/text-editor/text-editor.svelte.d.ts +2 -2
- package/package/components/text-editor/toolbar/editor-toolbar.svelte +17 -23
- package/package/components/text-editor/toolbar/insert-link-button.svelte +1 -1
- package/package/components/text-field/number-input.svelte +2 -2
- package/package/components/text-field/number-input.svelte.d.ts +2 -2
- package/package/components/text-field/password-input.svelte +2 -2
- package/package/components/text-field/password-input.svelte.d.ts +2 -2
- package/package/components/text-field/search-bar.svelte +2 -2
- package/package/components/text-field/search-bar.svelte.d.ts +2 -2
- package/package/components/text-field/text-area.svelte.d.ts +2 -2
- package/package/components/text-field/text-input.svelte +2 -2
- package/package/components/text-field/text-input.svelte.d.ts +6 -6
- package/package/components/toast/toast.svelte.d.ts +2 -2
- package/package/components/toolbar/toolbar.svelte.d.ts +2 -2
- package/package/components/util/group.svelte.d.ts +2 -2
- package/package/components/util/modal.svelte +1 -1
- package/package/components/util/modal.svelte.d.ts +2 -2
- package/package/components/util/popup.svelte +2 -2
- package/package/components/util/popup.svelte.d.ts +3 -6
- package/package/index.d.ts +0 -1
- package/package/index.js +8 -3
- package/package/locales/en.d.ts +2 -3
- package/package/locales/en.js +2 -3
- package/package/locales/ja.d.ts +2 -3
- package/package/locales/ja.js +2 -3
- package/package/services/group.js +3 -2
- package/package/services/popup.js +2 -2
- package/package.json +5 -11
- package/package/services/util.d.ts +0 -4
- package/package/services/util.js +0 -56
package/package/index.d.ts
CHANGED
|
@@ -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
|
-
|
|
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';
|
package/package/locales/en.d.ts
CHANGED
|
@@ -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
|
|
61
|
-
export const
|
|
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
|
}
|
package/package/locales/en.js
CHANGED
|
@@ -56,9 +56,8 @@ export const strings = {
|
|
|
56
56
|
update_link: 'Update Link',
|
|
57
57
|
text: 'Text',
|
|
58
58
|
url: 'URL',
|
|
59
|
-
|
|
60
|
-
|
|
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
|
},
|
package/package/locales/ja.d.ts
CHANGED
|
@@ -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
|
|
61
|
-
export const
|
|
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
|
}
|
package/package/locales/ja.js
CHANGED
|
@@ -56,9 +56,8 @@ export const strings = {
|
|
|
56
56
|
update_link: 'リンクを更新',
|
|
57
57
|
text: 'テキスト',
|
|
58
58
|
url: 'URL',
|
|
59
|
-
|
|
60
|
-
|
|
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 {
|
|
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 =
|
|
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 =
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
]
|
package/package/services/util.js
DELETED
|
@@ -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
|
-
};
|