@sveltia/ui 0.43.0 → 0.44.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.
- package/dist/components/resizable-pane/resizable-handle.svelte +1 -1
- package/dist/components/select/select-tags.svelte +4 -2
- package/dist/components/switch/switch.svelte +1 -1
- package/dist/components/text-editor/code-editor.svelte +5 -0
- package/dist/components/text-editor/text-editor.svelte +5 -0
- package/dist/components/text-field/text-area.svelte +0 -1
- package/dist/components/text-field/text-input.svelte +0 -1
- package/dist/components/util/app-shell.svelte +12 -7
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/services/i18n.d.ts +1 -1
- package/dist/services/i18n.js +5 -5
- package/dist/services/popup.svelte.js +5 -2
- package/dist/styles/core.scss +2 -2
- package/dist/styles/variables.scss +6 -3
- package/package.json +7 -7
|
@@ -290,7 +290,7 @@
|
|
|
290
290
|
.resizable-handle:focus-visible, .resizable-handle:hover, .resizable-handle.dragging {
|
|
291
291
|
outline: none;
|
|
292
292
|
z-index: 1;
|
|
293
|
-
background-color: var(--sui-primary-accent-color-translucent);
|
|
293
|
+
background-color: var(--sui-primary-accent-color-translucent-light);
|
|
294
294
|
}
|
|
295
295
|
.resizable-handle:focus-visible .handle-bar, .resizable-handle:hover .handle-bar, .resizable-handle.dragging .handle-bar {
|
|
296
296
|
background-color: var(--sui-primary-accent-color);
|
|
@@ -283,8 +283,7 @@
|
|
|
283
283
|
outline: none;
|
|
284
284
|
}
|
|
285
285
|
.select-tags span[draggable]:focus-within {
|
|
286
|
-
outline: var(--sui-focus-ring-width) solid var(--sui-
|
|
287
|
-
outline-offset: 1px;
|
|
286
|
+
outline: var(--sui-focus-ring-width) solid var(--sui-focus-ring-color);
|
|
288
287
|
}
|
|
289
288
|
.select-tags span[draggable].drag-source {
|
|
290
289
|
opacity: 0.4;
|
|
@@ -310,6 +309,9 @@
|
|
|
310
309
|
.select-tags span[draggable] .label {
|
|
311
310
|
outline: none;
|
|
312
311
|
}
|
|
312
|
+
.select-tags span[draggable] :global(button) {
|
|
313
|
+
outline-offset: -2px;
|
|
314
|
+
}
|
|
313
315
|
.select-tags span[draggable] :global(.icon) {
|
|
314
316
|
font-size: var(--sui-font-size-large);
|
|
315
317
|
}</style>
|
|
@@ -117,7 +117,7 @@ button:focus-visible {
|
|
|
117
117
|
outline: 0;
|
|
118
118
|
}
|
|
119
119
|
button:focus-visible span {
|
|
120
|
-
outline-color: var(--sui-
|
|
120
|
+
outline-color: var(--sui-focus-ring-color);
|
|
121
121
|
}
|
|
122
122
|
button[aria-checked=true] span {
|
|
123
123
|
background-color: var(--sui-primary-accent-color);
|
|
@@ -119,7 +119,12 @@
|
|
|
119
119
|
|
|
120
120
|
<style>.code-editor {
|
|
121
121
|
margin: var(--sui-focus-ring-width);
|
|
122
|
+
border-radius: var(--sui-textbox-border-radius);
|
|
122
123
|
width: calc(100% - var(--sui-focus-ring-width) * 2);
|
|
124
|
+
transition: all 200ms;
|
|
125
|
+
}
|
|
126
|
+
.code-editor:focus-within {
|
|
127
|
+
outline: var(--sui-focus-ring-width) solid var(--sui-focus-ring-color);
|
|
123
128
|
}
|
|
124
129
|
.code-editor.flex:not([hidden]) {
|
|
125
130
|
display: block;
|
|
@@ -133,7 +133,12 @@
|
|
|
133
133
|
|
|
134
134
|
<style>.text-editor {
|
|
135
135
|
margin: var(--sui-focus-ring-width);
|
|
136
|
+
border-radius: var(--sui-textbox-border-radius);
|
|
136
137
|
width: calc(100% - var(--sui-focus-ring-width) * 2);
|
|
138
|
+
transition: all 200ms;
|
|
139
|
+
}
|
|
140
|
+
.text-editor:focus-within {
|
|
141
|
+
outline: var(--sui-focus-ring-width) solid var(--sui-focus-ring-color);
|
|
137
142
|
}
|
|
138
143
|
.text-editor.flex:not([hidden]) {
|
|
139
144
|
display: block;
|
|
@@ -123,7 +123,6 @@
|
|
|
123
123
|
transition-duration: 0ms;
|
|
124
124
|
}
|
|
125
125
|
:is(textarea, .clone):focus {
|
|
126
|
-
border-color: var(--sui-textbox-border-color-focus, var(--sui-primary-accent-color));
|
|
127
126
|
color: var(--sui-textbox-foreground-color-focus, var(--sui-textbox-foreground-color));
|
|
128
127
|
background-color: var(--sui-textbox-background-color-focus, var(--sui-textbox-background-color));
|
|
129
128
|
}
|
|
@@ -172,7 +172,6 @@ input {
|
|
|
172
172
|
transition: all 200ms;
|
|
173
173
|
}
|
|
174
174
|
input:focus {
|
|
175
|
-
border-color: var(--sui-textbox-border-color-focus, var(--sui-primary-accent-color));
|
|
176
175
|
color: var(--sui-textbox-foreground-color-focus, var(--sui-textbox-foreground-color));
|
|
177
176
|
background-color: var(--sui-textbox-background-color-focus, var(--sui-textbox-background-color));
|
|
178
177
|
}
|
|
@@ -178,7 +178,8 @@
|
|
|
178
178
|
var(--sui-success-color-hue) var(--sui-alert-background-color-saturation)
|
|
179
179
|
var(--sui-alert-background-color-lightness)
|
|
180
180
|
);
|
|
181
|
-
--sui-focus-ring-width:
|
|
181
|
+
--sui-focus-ring-width: 2px;
|
|
182
|
+
--sui-focus-ring-color: var(--sui-primary-accent-color-translucent);
|
|
182
183
|
--sui-primary-border-color: hsl(var(--sui-border-color-2-hsl));
|
|
183
184
|
--sui-secondary-border-color: hsl(var(--sui-border-color-3-hsl));
|
|
184
185
|
--sui-error-border-color: hsl(
|
|
@@ -324,7 +325,8 @@
|
|
|
324
325
|
--sui-primary-accent-color: hsl(var(--sui-base-hue) 80% 40%);
|
|
325
326
|
--sui-primary-accent-color-dark: hsl(var(--sui-base-hue) 80% 35%);
|
|
326
327
|
--sui-primary-accent-color-inverted: hsl(var(--sui-base-hue) 10% 100%);
|
|
327
|
-
--sui-primary-accent-color-translucent: hsl(var(--sui-base-hue) 80% 50% /
|
|
328
|
+
--sui-primary-accent-color-translucent: hsl(var(--sui-base-hue) 80% 50% / 60%);
|
|
329
|
+
--sui-primary-accent-color-translucent-light: hsl(var(--sui-base-hue) 80% 50% / 40%);
|
|
328
330
|
--sui-error-color-hue: 0;
|
|
329
331
|
--sui-warning-color-hue: 40;
|
|
330
332
|
--sui-info-color-hue: 210;
|
|
@@ -358,7 +360,8 @@
|
|
|
358
360
|
--sui-primary-accent-color: hsl(var(--sui-base-hue) 100% 40%);
|
|
359
361
|
--sui-primary-accent-color-dark: hsl(var(--sui-base-hue) 100% 35%);
|
|
360
362
|
--sui-primary-accent-color-inverted: hsl(var(--sui-base-hue) 10% 100%);
|
|
361
|
-
--sui-primary-accent-color-translucent: hsl(var(--sui-base-hue) 80% 50% /
|
|
363
|
+
--sui-primary-accent-color-translucent: hsl(var(--sui-base-hue) 80% 50% / 60%);
|
|
364
|
+
--sui-primary-accent-color-translucent-light: hsl(var(--sui-base-hue) 80% 50% / 40%);
|
|
362
365
|
--sui-error-color-hue: 0;
|
|
363
366
|
--sui-warning-color-hue: 40;
|
|
364
367
|
--sui-info-color-hue: 210;
|
|
@@ -393,7 +396,8 @@
|
|
|
393
396
|
--sui-primary-accent-color: hsl(var(--sui-base-hue) 80% 40%);
|
|
394
397
|
--sui-primary-accent-color-dark: hsl(var(--sui-base-hue) 80% 35%);
|
|
395
398
|
--sui-primary-accent-color-inverted: hsl(var(--sui-base-hue) 10% 100%);
|
|
396
|
-
--sui-primary-accent-color-translucent: hsl(var(--sui-base-hue) 80% 50% /
|
|
399
|
+
--sui-primary-accent-color-translucent: hsl(var(--sui-base-hue) 80% 50% / 60%);
|
|
400
|
+
--sui-primary-accent-color-translucent-light: hsl(var(--sui-base-hue) 80% 50% / 40%);
|
|
397
401
|
--sui-error-color-hue: 0;
|
|
398
402
|
--sui-warning-color-hue: 40;
|
|
399
403
|
--sui-info-color-hue: 210;
|
|
@@ -429,7 +433,8 @@
|
|
|
429
433
|
--sui-primary-accent-color: hsl(var(--sui-base-hue) 100% 40%);
|
|
430
434
|
--sui-primary-accent-color-dark: hsl(var(--sui-base-hue) 100% 35%);
|
|
431
435
|
--sui-primary-accent-color-inverted: hsl(var(--sui-base-hue) 10% 100%);
|
|
432
|
-
--sui-primary-accent-color-translucent: hsl(var(--sui-base-hue) 80% 50% /
|
|
436
|
+
--sui-primary-accent-color-translucent: hsl(var(--sui-base-hue) 80% 50% / 60%);
|
|
437
|
+
--sui-primary-accent-color-translucent-light: hsl(var(--sui-base-hue) 80% 50% / 40%);
|
|
433
438
|
--sui-error-color-hue: 0;
|
|
434
439
|
--sui-warning-color-hue: 40;
|
|
435
440
|
--sui-info-color-hue: 210;
|
|
@@ -469,7 +474,7 @@
|
|
|
469
474
|
}
|
|
470
475
|
}
|
|
471
476
|
:global(::selection) {
|
|
472
|
-
background-color: var(--sui-primary-accent-color-translucent);
|
|
477
|
+
background-color: var(--sui-primary-accent-color-translucent-light);
|
|
473
478
|
}
|
|
474
479
|
:global(*) {
|
|
475
480
|
-webkit-tap-highlight-color: transparent;
|
|
@@ -479,7 +484,7 @@
|
|
|
479
484
|
outline-width: 0;
|
|
480
485
|
}
|
|
481
486
|
:global(:focus-visible) {
|
|
482
|
-
outline-color: var(--sui-
|
|
487
|
+
outline-color: var(--sui-focus-ring-color);
|
|
483
488
|
z-index: 2;
|
|
484
489
|
}
|
|
485
490
|
:global(h1) {
|
package/dist/index.d.ts
CHANGED
|
@@ -78,4 +78,4 @@ export { default as EmptyState } from "./components/util/empty-state.svelte";
|
|
|
78
78
|
export { default as Group } from "./components/util/group.svelte";
|
|
79
79
|
export { default as Modal } from "./components/util/modal.svelte";
|
|
80
80
|
export * from "./typedefs.js";
|
|
81
|
-
export { initLocales,
|
|
81
|
+
export { initLocales, strings } from "./services/i18n.js";
|
package/dist/index.js
CHANGED
|
@@ -77,7 +77,7 @@ export { default as AppShell } from './components/util/app-shell.svelte';
|
|
|
77
77
|
export { default as EmptyState } from './components/util/empty-state.svelte';
|
|
78
78
|
export { default as Group } from './components/util/group.svelte';
|
|
79
79
|
export { default as Modal } from './components/util/modal.svelte';
|
|
80
|
-
export { initLocales,
|
|
80
|
+
export { initLocales, strings } from './services/i18n.js';
|
|
81
81
|
|
|
82
82
|
// eslint-disable-next-line import/export
|
|
83
83
|
export * from './typedefs.js';
|
package/dist/services/i18n.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* strings as values.
|
|
4
4
|
* @type {Record<string, Record<string, string>>}
|
|
5
5
|
*/
|
|
6
|
-
export const
|
|
6
|
+
export const strings: Record<string, Record<string, string>>;
|
|
7
7
|
export function initLocales({ fallbackLocale, initialLocale }?: {
|
|
8
8
|
fallbackLocale?: string | undefined;
|
|
9
9
|
initialLocale?: string | undefined;
|
package/dist/services/i18n.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { addMessages, init } from '@sveltia/i18n';
|
|
2
2
|
|
|
3
|
-
const
|
|
3
|
+
const resources = import.meta.glob('../locales/*.yaml', { eager: true, import: 'default' });
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Object containing all the locale resources, with the locale names as keys and the corresponding
|
|
7
7
|
* strings as values.
|
|
8
8
|
* @type {Record<string, Record<string, string>>}
|
|
9
9
|
*/
|
|
10
|
-
export const
|
|
11
|
-
Object.entries(
|
|
10
|
+
export const strings = Object.fromEntries(
|
|
11
|
+
Object.entries(resources).map(([path, resource]) => [
|
|
12
12
|
/** @type {string} */ (path.match(/.+\/(?<locale>.+?)\.yaml$/)?.groups?.locale),
|
|
13
13
|
/** @type {Record<string, string>} */ (resource),
|
|
14
14
|
]),
|
|
15
15
|
);
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
|
-
* Load strings and initialize the locales. Consumers can use this function or {@link
|
|
18
|
+
* Load strings and initialize the locales. Consumers can use this function or {@link strings} to
|
|
19
19
|
* load the localized strings for their application.
|
|
20
20
|
* @param {object} [init] Initialize options.
|
|
21
21
|
* @param {string} [init.fallbackLocale] Fallback locale.
|
|
@@ -24,7 +24,7 @@ export const resources = Object.fromEntries(
|
|
|
24
24
|
* @see https://vitejs.dev/guide/features.html#glob-import
|
|
25
25
|
*/
|
|
26
26
|
export const initLocales = ({ fallbackLocale = 'en', initialLocale = 'en' } = {}) => {
|
|
27
|
-
Object.entries(
|
|
27
|
+
Object.entries(strings).forEach(([locale, resource]) => {
|
|
28
28
|
// Add `_sui` suffix to avoid collision with app localization
|
|
29
29
|
addMessages(locale, { _sui: resource });
|
|
30
30
|
});
|
|
@@ -29,8 +29,11 @@ class Popup {
|
|
|
29
29
|
if (value) {
|
|
30
30
|
this.checkPosition();
|
|
31
31
|
} else if (this.anchorElement.getAttribute('aria-expanded') === 'true') {
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
// Wait for the popup to close before focusing the anchor, otherwise the focus will be lost
|
|
33
|
+
window.requestAnimationFrame(() => {
|
|
34
|
+
this.anchorElement.focus();
|
|
35
|
+
this.anchorElement.removeAttribute('aria-controls');
|
|
36
|
+
});
|
|
34
37
|
}
|
|
35
38
|
|
|
36
39
|
this.anchorElement.setAttribute('aria-expanded', String(value));
|
package/dist/styles/core.scss
CHANGED
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
::selection {
|
|
34
|
-
background-color: var(--sui-primary-accent-color-translucent);
|
|
34
|
+
background-color: var(--sui-primary-accent-color-translucent-light);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
* {
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
:focus-visible {
|
|
47
|
-
outline-color: var(--sui-
|
|
47
|
+
outline-color: var(--sui-focus-ring-color);
|
|
48
48
|
z-index: 2;
|
|
49
49
|
}
|
|
50
50
|
|
|
@@ -20,7 +20,8 @@
|
|
|
20
20
|
--sui-primary-accent-color: hsl(var(--sui-base-hue) 80% 40%);
|
|
21
21
|
--sui-primary-accent-color-dark: hsl(var(--sui-base-hue) 80% 35%);
|
|
22
22
|
--sui-primary-accent-color-inverted: hsl(var(--sui-base-hue) 10% 100%); // white
|
|
23
|
-
--sui-primary-accent-color-translucent: hsl(var(--sui-base-hue) 80% 50% /
|
|
23
|
+
--sui-primary-accent-color-translucent: hsl(var(--sui-base-hue) 80% 50% / 60%);
|
|
24
|
+
--sui-primary-accent-color-translucent-light: hsl(var(--sui-base-hue) 80% 50% / 40%);
|
|
24
25
|
// Alerts
|
|
25
26
|
--sui-error-color-hue: 0;
|
|
26
27
|
--sui-warning-color-hue: 40;
|
|
@@ -56,7 +57,8 @@
|
|
|
56
57
|
--sui-primary-accent-color: hsl(var(--sui-base-hue) 100% 40%);
|
|
57
58
|
--sui-primary-accent-color-dark: hsl(var(--sui-base-hue) 100% 35%);
|
|
58
59
|
--sui-primary-accent-color-inverted: hsl(var(--sui-base-hue) 10% 100%); // white
|
|
59
|
-
--sui-primary-accent-color-translucent: hsl(var(--sui-base-hue) 80% 50% /
|
|
60
|
+
--sui-primary-accent-color-translucent: hsl(var(--sui-base-hue) 80% 50% / 60%);
|
|
61
|
+
--sui-primary-accent-color-translucent-light: hsl(var(--sui-base-hue) 80% 50% / 40%);
|
|
60
62
|
// Alerts
|
|
61
63
|
--sui-error-color-hue: 0;
|
|
62
64
|
--sui-warning-color-hue: 40;
|
|
@@ -127,7 +129,8 @@
|
|
|
127
129
|
var(--sui-alert-background-color-lightness)
|
|
128
130
|
);
|
|
129
131
|
// Outline
|
|
130
|
-
--sui-focus-ring-width:
|
|
132
|
+
--sui-focus-ring-width: 2px;
|
|
133
|
+
--sui-focus-ring-color: var(--sui-primary-accent-color-translucent);
|
|
131
134
|
// Borders
|
|
132
135
|
--sui-primary-border-color: hsl(var(--sui-border-color-2-hsl));
|
|
133
136
|
--sui-secondary-border-color: hsl(var(--sui-border-color-3-hsl));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sveltia/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.44.0",
|
|
4
4
|
"description": "A collection of Svelte components and utilities for building user interfaces.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -53,22 +53,22 @@
|
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"@rollup/plugin-yaml": "^5.0.0",
|
|
55
55
|
"@sveltejs/adapter-auto": "^7.0.1",
|
|
56
|
-
"@sveltejs/kit": "^2.69.
|
|
56
|
+
"@sveltejs/kit": "^2.69.3",
|
|
57
57
|
"@sveltejs/package": "^2.5.8",
|
|
58
58
|
"@sveltejs/vite-plugin-svelte": "^7.2.0",
|
|
59
59
|
"@vitest/coverage-v8": "^4.1.10",
|
|
60
60
|
"cspell": "^10.0.1",
|
|
61
61
|
"eslint": "^9.39.5",
|
|
62
|
-
"eslint-config-airbnb-extended": "^3.1.
|
|
62
|
+
"eslint-config-airbnb-extended": "^3.1.1",
|
|
63
63
|
"eslint-config-prettier": "^10.1.8",
|
|
64
64
|
"eslint-plugin-import": "^2.32.0",
|
|
65
65
|
"eslint-plugin-jsdoc": "^63.0.13",
|
|
66
|
-
"eslint-plugin-package-json": "^1.
|
|
66
|
+
"eslint-plugin-package-json": "^1.6.0",
|
|
67
67
|
"eslint-plugin-svelte": "^3.20.0",
|
|
68
68
|
"globals": "^17.7.0",
|
|
69
69
|
"happy-dom": "^20.10.6",
|
|
70
|
-
"oxlint": "^1.
|
|
71
|
-
"postcss": "^8.5.
|
|
70
|
+
"oxlint": "^1.74.0",
|
|
71
|
+
"postcss": "^8.5.19",
|
|
72
72
|
"postcss-html": "^1.8.1",
|
|
73
73
|
"prettier": "^3.9.5",
|
|
74
74
|
"prettier-plugin-svelte": "^4.1.1",
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
"stylelint": "^17.14.0",
|
|
77
77
|
"stylelint-config-recommended-scss": "^17.0.1",
|
|
78
78
|
"stylelint-scss": "^7.2.0",
|
|
79
|
-
"svelte": "^5.56.
|
|
79
|
+
"svelte": "^5.56.5",
|
|
80
80
|
"svelte-check": "^4.7.2",
|
|
81
81
|
"svelte-preprocess": "^6.0.5",
|
|
82
82
|
"tslib": "^2.8.1",
|