@sveltia/ui 0.8.3 → 0.10.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 (122) hide show
  1. package/package/components/alert/alert.svelte +2 -4
  2. package/package/components/alert/alert.svelte.d.ts +2 -2
  3. package/package/components/button/button.svelte +78 -26
  4. package/package/components/button/button.svelte.d.ts +73 -63
  5. package/package/components/button/select-button-group.svelte +6 -1
  6. package/package/components/button/select-button-group.svelte.d.ts +13 -13
  7. package/package/components/button/select-button.svelte +2 -1
  8. package/package/components/button/select-button.svelte.d.ts +19 -19
  9. package/package/components/button/split-button.svelte +111 -0
  10. package/package/components/button/split-button.svelte.d.ts +69 -0
  11. package/package/components/calendar/calendar.svelte +2 -2
  12. package/package/components/calendar/calendar.svelte.d.ts +2 -2
  13. package/package/components/checkbox/checkbox-group.svelte.d.ts +7 -7
  14. package/package/components/checkbox/checkbox.svelte +8 -6
  15. package/package/components/checkbox/checkbox.svelte.d.ts +22 -16
  16. package/package/components/dialog/alert-dialog.svelte.d.ts +6 -6
  17. package/package/components/dialog/confirmation-dialog.svelte.d.ts +8 -8
  18. package/package/components/dialog/dialog.svelte +17 -15
  19. package/package/components/dialog/dialog.svelte.d.ts +30 -24
  20. package/package/components/dialog/prompt-dialog.svelte +1 -1
  21. package/package/components/dialog/prompt-dialog.svelte.d.ts +12 -12
  22. package/package/components/disclosure/disclosure.svelte +6 -1
  23. package/package/components/disclosure/disclosure.svelte.d.ts +29 -19
  24. package/package/components/divider/divider.svelte.d.ts +5 -5
  25. package/package/components/divider/spacer.svelte.d.ts +4 -4
  26. package/package/components/drawer/drawer.svelte +34 -16
  27. package/package/components/drawer/drawer.svelte.d.ts +22 -16
  28. package/package/components/grid/grid-body.svelte.d.ts +4 -4
  29. package/package/components/grid/grid-cell.svelte.d.ts +2 -2
  30. package/package/components/grid/grid-col-header.svelte.d.ts +2 -2
  31. package/package/components/grid/grid-foot.svelte.d.ts +2 -2
  32. package/package/components/grid/grid-head.svelte.d.ts +2 -2
  33. package/package/components/grid/grid-row-header.svelte.d.ts +2 -2
  34. package/package/components/grid/grid-row.svelte +10 -2
  35. package/package/components/grid/grid-row.svelte.d.ts +8 -8
  36. package/package/components/grid/grid.svelte +7 -2
  37. package/package/components/grid/grid.svelte.d.ts +8 -8
  38. package/package/components/icon/icon.svelte.d.ts +4 -4
  39. package/package/components/listbox/listbox.svelte +11 -5
  40. package/package/components/listbox/listbox.svelte.d.ts +15 -15
  41. package/package/components/listbox/option-group.svelte.d.ts +7 -7
  42. package/package/components/listbox/option.svelte +4 -2
  43. package/package/components/listbox/option.svelte.d.ts +15 -13
  44. package/package/components/menu/menu-button.svelte +18 -2
  45. package/package/components/menu/menu-button.svelte.d.ts +20 -16
  46. package/package/components/menu/menu-item-checkbox.svelte +1 -1
  47. package/package/components/menu/menu-item-checkbox.svelte.d.ts +16 -16
  48. package/package/components/menu/menu-item-group.svelte +1 -1
  49. package/package/components/menu/menu-item-group.svelte.d.ts +7 -7
  50. package/package/components/menu/menu-item-radio.svelte +1 -1
  51. package/package/components/menu/menu-item-radio.svelte.d.ts +16 -16
  52. package/package/components/menu/menu-item.svelte +32 -19
  53. package/package/components/menu/menu-item.svelte.d.ts +32 -18
  54. package/package/components/menu/menu.svelte +13 -7
  55. package/package/components/menu/menu.svelte.d.ts +7 -7
  56. package/package/components/radio/radio-group.svelte +6 -1
  57. package/package/components/radio/radio-group.svelte.d.ts +15 -15
  58. package/package/components/radio/radio.svelte +1 -1
  59. package/package/components/radio/radio.svelte.d.ts +14 -14
  60. package/package/components/select/combobox.svelte +10 -8
  61. package/package/components/select/combobox.svelte.d.ts +22 -16
  62. package/package/components/select/select.svelte.d.ts +12 -12
  63. package/package/components/slider/slider.svelte +26 -22
  64. package/package/components/slider/slider.svelte.d.ts +23 -23
  65. package/package/components/switch/switch.svelte +5 -0
  66. package/package/components/switch/switch.svelte.d.ts +18 -14
  67. package/package/components/table/table-body.svelte.d.ts +4 -4
  68. package/package/components/table/table-cell.svelte.d.ts +2 -2
  69. package/package/components/table/table-col-header.svelte.d.ts +2 -2
  70. package/package/components/table/table-foot.svelte.d.ts +2 -2
  71. package/package/components/table/table-head.svelte.d.ts +2 -2
  72. package/package/components/table/table-row-header.svelte.d.ts +2 -2
  73. package/package/components/table/table-row.svelte.d.ts +2 -2
  74. package/package/components/table/table.svelte.d.ts +2 -2
  75. package/package/components/tabs/tab-box.svelte +30 -0
  76. package/package/components/tabs/tab-box.svelte.d.ts +33 -0
  77. package/package/components/tabs/tab-list.svelte +105 -22
  78. package/package/components/tabs/tab-list.svelte.d.ts +10 -10
  79. package/package/components/tabs/tab-panel.svelte +6 -2
  80. package/package/components/tabs/tab-panel.svelte.d.ts +2 -2
  81. package/package/components/tabs/tab-panels.svelte +32 -0
  82. package/package/components/tabs/tab-panels.svelte.d.ts +31 -0
  83. package/package/components/tabs/tab.svelte.d.ts +11 -11
  84. package/package/components/text-field/markdown-editor.svelte.d.ts +12 -12
  85. package/package/components/text-field/number-input.svelte +11 -4
  86. package/package/components/text-field/number-input.svelte.d.ts +40 -20
  87. package/package/components/text-field/password-input.svelte +7 -3
  88. package/package/components/text-field/password-input.svelte.d.ts +30 -18
  89. package/package/components/text-field/search-bar.svelte +7 -3
  90. package/package/components/text-field/search-bar.svelte.d.ts +46 -36
  91. package/package/components/text-field/text-area.svelte +4 -2
  92. package/package/components/text-field/text-area.svelte.d.ts +25 -21
  93. package/package/components/text-field/text-input.svelte +17 -2
  94. package/package/components/text-field/text-input.svelte.d.ts +53 -53
  95. package/package/components/toast/toast.svelte +16 -12
  96. package/package/components/toast/toast.svelte.d.ts +8 -8
  97. package/package/components/toolbar/toolbar.svelte.d.ts +8 -8
  98. package/package/components/util/app-shell.svelte +162 -74
  99. package/package/components/util/app-shell.svelte.d.ts +2 -0
  100. package/package/components/util/group.svelte.d.ts +5 -5
  101. package/package/components/util/modal.svelte +26 -9
  102. package/package/components/util/modal.svelte.d.ts +34 -34
  103. package/package/components/util/popup.svelte +58 -32
  104. package/package/components/util/popup.svelte.d.ts +34 -24
  105. package/package/components/util/portal.svelte +5 -3
  106. package/package/components/util/portal.svelte.d.ts +2 -2
  107. package/package/index.d.ts +6 -3
  108. package/package/index.js +7 -4
  109. package/package/locales/en.d.ts +4 -0
  110. package/package/locales/en.js +4 -0
  111. package/package/locales/ja.d.ts +4 -0
  112. package/package/locales/ja.js +4 -0
  113. package/package/services/events.d.ts +1 -1
  114. package/package/services/events.js +11 -8
  115. package/package/services/group.js +73 -30
  116. package/package/services/popup.d.ts +28 -11
  117. package/package/services/popup.js +27 -10
  118. package/package/services/util.d.ts +2 -2
  119. package/package/services/util.js +5 -5
  120. package/package/styles/core.scss +1 -0
  121. package/package/styles/variables.scss +24 -4
  122. package/package.json +49 -25
@@ -1,21 +1,21 @@
1
1
  /**
2
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.
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
5
  * @returns {string} Generated ID.
6
6
  */
7
7
  export const getRandomId = (prefix = 'e', length = 7) =>
8
8
  [
9
9
  prefix,
10
10
  new Array(length)
11
- .fill()
11
+ .fill(0)
12
12
  .map(() => '0123456789abcdef'[Math.floor(Math.random() * 12)])
13
13
  .join(''),
14
14
  ].join('-');
15
15
 
16
16
  /**
17
17
  * Check if the given input is a simple object.
18
- * @param {*} input Input, probably an object.
18
+ * @param {*} input - Input, probably an object.
19
19
  * @returns {boolean} Result.
20
20
  */
21
21
  export const isObject = (input) =>
@@ -24,7 +24,7 @@ export const isObject = (input) =>
24
24
  /**
25
25
  * Return a simple `Promise` to resolve in the given time, making it easier to wait for a bit in the
26
26
  * code, particularly while making sequential HTTP requests.
27
- * @param {number} [ms] Milliseconds to wait.
27
+ * @param {number} [ms] - Milliseconds to wait.
28
28
  * @returns {Promise<void>} Nothing.
29
29
  */
30
30
  export const sleep = (ms = 1000) =>
@@ -29,6 +29,7 @@
29
29
  vertical-align: top;
30
30
 
31
31
  @media (prefers-reduced-motion) {
32
+ scroll-behavior: auto;
32
33
  // Disable transition but make sure the `transitionend` event works
33
34
  transition-duration: 1ms !important;
34
35
  }
@@ -1,5 +1,5 @@
1
- :root[data-theme="light"],
2
- :host[data-theme="light"] {
1
+ @mixin light-theme {
2
+ color-scheme: light;
3
3
  --sui-foreground-color-1-hsl: var(--sui-base-hue) 5% 5%; // highlight
4
4
  --sui-foreground-color-2-hsl: var(--sui-base-hue) 5% 25%; // primary
5
5
  --sui-foreground-color-3-hsl: var(--sui-base-hue) 5% 35%; // secondary
@@ -34,8 +34,8 @@
34
34
  --sui-alert-border-color-lightness: 68%;
35
35
  }
36
36
 
37
- :root[data-theme="dark"],
38
- :host[data-theme="dark"] {
37
+ @mixin dark-theme {
38
+ color-scheme: dark;
39
39
  --sui-foreground-color-1-hsl: var(--sui-base-hue) 10% 95%; // highlight
40
40
  --sui-foreground-color-2-hsl: var(--sui-base-hue) 10% 75%; // primary
41
41
  --sui-foreground-color-3-hsl: var(--sui-base-hue) 10% 65%; // secondary
@@ -222,6 +222,7 @@
222
222
  --sui-textbox-multiline-min-width: 480px;
223
223
  --sui-textbox-multiline-line-height: var(--sui-line-height-comfortable);
224
224
  // Tab
225
+ --sui-tab-height: var(--sui-control-medium-height);
225
226
  --sui-tab-small-height: var(--sui-control-small-height);
226
227
  --sui-tab-medium-height: var(--sui-control-medium-height);
227
228
  --sui-tab-large-height: var(--sui-control-large-height);
@@ -249,4 +250,23 @@
249
250
  --sui-secondary-background-color-translucent: hsl(var(--sui-background-color-3-hsl));
250
251
  --sui-tertiary-background-color-translucent: hsl(var(--sui-background-color-4-hsl));
251
252
  }
253
+
254
+ &[data-theme="light"] {
255
+ @include light-theme;
256
+ }
257
+
258
+ &[data-theme="dark"] {
259
+ @include dark-theme;
260
+ }
261
+
262
+ // Follow the system appearance setting when the `data-theme` attribute is not set (yet)
263
+ &:not([data-theme]) {
264
+ @media (prefers-color-scheme: light) {
265
+ @include light-theme;
266
+ }
267
+
268
+ @media (prefers-color-scheme: dark) {
269
+ @include dark-theme;
270
+ }
271
+ }
252
272
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sveltia/ui",
3
- "version": "0.8.3",
3
+ "version": "0.10.0",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "publishConfig": {
@@ -23,36 +23,36 @@
23
23
  "test:unit": "vitest"
24
24
  },
25
25
  "dependencies": {
26
- "svelte": "^4.2.6"
26
+ "svelte": "^4.2.8"
27
27
  },
28
28
  "devDependencies": {
29
- "@playwright/test": "^1.40.0",
30
- "@sveltejs/adapter-auto": "2.1.1",
31
- "@sveltejs/kit": "^1.27.6",
32
- "@sveltejs/package": "^2.2.2",
33
- "cspell": "^8.0.0",
34
- "eslint": "^8.54.0",
29
+ "@playwright/test": "^1.40.1",
30
+ "@sveltejs/adapter-auto": "^3.1.0",
31
+ "@sveltejs/kit": "^2.3.2",
32
+ "@sveltejs/package": "^2.2.5",
33
+ "@sveltejs/vite-plugin-svelte": "^3.0.1",
34
+ "cspell": "^8.3.2",
35
+ "eslint": "^8.56.0",
35
36
  "eslint-config-airbnb-base": "^15.0.0",
36
- "eslint-config-prettier": "^9.0.0",
37
- "eslint-plugin-import": "^2.29.0",
38
- "eslint-plugin-jsdoc": "^46.9.0",
39
- "eslint-plugin-svelte": "^2.35.0",
37
+ "eslint-config-prettier": "^9.1.0",
38
+ "eslint-plugin-import": "^2.29.1",
39
+ "eslint-plugin-jsdoc": "^48.0.2",
40
+ "eslint-plugin-svelte": "^2.35.1",
40
41
  "npm-run-all": "^4.1.5",
41
- "postcss": "^8.4.31",
42
- "postcss-html": "^1.5.0",
43
- "prettier": "^3.1.0",
44
- "prettier-plugin-svelte": "^3.1.0",
45
- "sass": "^1.69.5",
46
- "stylelint": "^15.11.0",
47
- "stylelint-config-recommended-scss": "^13.1.0",
48
- "stylelint-scss": "^5.3.1",
49
- "svelte-check": "^3.6.0",
42
+ "postcss": "^8.4.33",
43
+ "postcss-html": "^1.6.0",
44
+ "prettier": "^3.2.2",
45
+ "prettier-plugin-svelte": "^3.1.2",
46
+ "sass": "^1.69.7",
47
+ "stylelint": "^16.1.0",
48
+ "stylelint-config-recommended-scss": "^14.0.0",
49
+ "stylelint-scss": "^6.0.0",
50
+ "svelte-check": "^3.6.3",
50
51
  "svelte-i18n": "^4.0.0",
51
- "svelte-migrate": "^1.2.7",
52
- "svelte-preprocess": "^5.1.0",
52
+ "svelte-preprocess": "^5.1.3",
53
53
  "tslib": "^2.6.2",
54
- "vite": "^4.5.0",
55
- "vitest": "^0.34.6"
54
+ "vite": "^5.0.11",
55
+ "vitest": "^1.2.0"
56
56
  },
57
57
  "exports": {
58
58
  "./package.json": "./package.json",
@@ -76,6 +76,11 @@
76
76
  "svelte": "./package/components/button/select-button.svelte",
77
77
  "default": "./package/components/button/select-button.svelte"
78
78
  },
79
+ "./components/button/split-button.svelte": {
80
+ "types": "./package/components/button/split-button.svelte.d.ts",
81
+ "svelte": "./package/components/button/split-button.svelte",
82
+ "default": "./package/components/button/split-button.svelte"
83
+ },
79
84
  "./components/calendar/calendar.svelte": {
80
85
  "types": "./package/components/calendar/calendar.svelte.d.ts",
81
86
  "svelte": "./package/components/calendar/calendar.svelte",
@@ -291,6 +296,11 @@
291
296
  "svelte": "./package/components/table/table.svelte",
292
297
  "default": "./package/components/table/table.svelte"
293
298
  },
299
+ "./components/tabs/tab-box.svelte": {
300
+ "types": "./package/components/tabs/tab-box.svelte.d.ts",
301
+ "svelte": "./package/components/tabs/tab-box.svelte",
302
+ "default": "./package/components/tabs/tab-box.svelte"
303
+ },
294
304
  "./components/tabs/tab-list.svelte": {
295
305
  "types": "./package/components/tabs/tab-list.svelte.d.ts",
296
306
  "svelte": "./package/components/tabs/tab-list.svelte",
@@ -301,6 +311,11 @@
301
311
  "svelte": "./package/components/tabs/tab-panel.svelte",
302
312
  "default": "./package/components/tabs/tab-panel.svelte"
303
313
  },
314
+ "./components/tabs/tab-panels.svelte": {
315
+ "types": "./package/components/tabs/tab-panels.svelte.d.ts",
316
+ "svelte": "./package/components/tabs/tab-panels.svelte",
317
+ "default": "./package/components/tabs/tab-panels.svelte"
318
+ },
304
319
  "./components/tabs/tab.svelte": {
305
320
  "types": "./package/components/tabs/tab.svelte.d.ts",
306
321
  "svelte": "./package/components/tabs/tab.svelte",
@@ -425,6 +440,9 @@
425
440
  "components/button/select-button.svelte": [
426
441
  "./package/components/button/select-button.svelte.d.ts"
427
442
  ],
443
+ "components/button/split-button.svelte": [
444
+ "./package/components/button/split-button.svelte.d.ts"
445
+ ],
428
446
  "components/calendar/calendar.svelte": [
429
447
  "./package/components/calendar/calendar.svelte.d.ts"
430
448
  ],
@@ -554,12 +572,18 @@
554
572
  "components/table/table.svelte": [
555
573
  "./package/components/table/table.svelte.d.ts"
556
574
  ],
575
+ "components/tabs/tab-box.svelte": [
576
+ "./package/components/tabs/tab-box.svelte.d.ts"
577
+ ],
557
578
  "components/tabs/tab-list.svelte": [
558
579
  "./package/components/tabs/tab-list.svelte.d.ts"
559
580
  ],
560
581
  "components/tabs/tab-panel.svelte": [
561
582
  "./package/components/tabs/tab-panel.svelte.d.ts"
562
583
  ],
584
+ "components/tabs/tab-panels.svelte": [
585
+ "./package/components/tabs/tab-panels.svelte.d.ts"
586
+ ],
563
587
  "components/tabs/tab.svelte": [
564
588
  "./package/components/tabs/tab.svelte.d.ts"
565
589
  ],