@sveltia/ui 0.78.4 → 0.79.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 (181) hide show
  1. package/dist/components/alert/alert-content.svelte +51 -0
  2. package/dist/components/alert/alert-content.svelte.d.ts +39 -0
  3. package/dist/components/alert/alert.d.ts +3 -0
  4. package/dist/components/alert/alert.js +21 -0
  5. package/dist/components/alert/alert.svelte +6 -30
  6. package/dist/components/alert/infobar.svelte +7 -21
  7. package/dist/components/alert/infobar.svelte.d.ts +2 -2
  8. package/dist/components/button/button.svelte +11 -11
  9. package/dist/components/button/button.svelte.d.ts +2 -2
  10. package/dist/components/button/select-button.svelte +1 -1
  11. package/dist/components/button/select-button.svelte.d.ts +2 -2
  12. package/dist/components/button/split-button.svelte +1 -1
  13. package/dist/components/button/split-button.svelte.d.ts +3 -3
  14. package/dist/components/calendar/calendar.d.ts +2 -0
  15. package/dist/components/calendar/calendar.js +34 -0
  16. package/dist/components/calendar/calendar.svelte +49 -5
  17. package/dist/components/checkbox/checkbox.svelte +11 -4
  18. package/dist/components/checkbox/checkbox.svelte.d.ts +2 -2
  19. package/dist/components/dialog/alert-dialog.svelte +1 -1
  20. package/dist/components/dialog/alert-dialog.svelte.d.ts +2 -2
  21. package/dist/components/dialog/confirmation-dialog.svelte +1 -1
  22. package/dist/components/dialog/confirmation-dialog.svelte.d.ts +2 -2
  23. package/dist/components/dialog/dialog.svelte +8 -18
  24. package/dist/components/dialog/dialog.svelte.d.ts +2 -2
  25. package/dist/components/dialog/modal-close-button.svelte +50 -0
  26. package/dist/components/dialog/modal-close-button.svelte.d.ts +43 -0
  27. package/dist/components/dialog/prompt-dialog.svelte +1 -1
  28. package/dist/components/dialog/prompt-dialog.svelte.d.ts +4 -4
  29. package/dist/components/disclosure/disclosure.svelte +1 -1
  30. package/dist/components/drawer/drawer.svelte +12 -34
  31. package/dist/components/drawer/drawer.svelte.d.ts +1 -1
  32. package/dist/components/emoji/caret.d.ts +1 -1
  33. package/dist/components/emoji/caret.js +1 -1
  34. package/dist/components/emoji/emoji-suggestions.svelte +1 -1
  35. package/dist/components/emoji/emoji-suggestions.svelte.d.ts +3 -3
  36. package/dist/components/emoji/emoji.d.ts +2 -2
  37. package/dist/components/emoji/emoji.js +1 -1
  38. package/dist/components/emoji/position.d.ts +2 -2
  39. package/dist/components/emoji/position.js +1 -1
  40. package/dist/components/grid/grid-body.svelte +6 -2
  41. package/dist/components/grid/grid-cell.svelte +3 -9
  42. package/dist/components/grid/grid-col-header.svelte +3 -9
  43. package/dist/components/grid/grid-foot.svelte +4 -11
  44. package/dist/components/grid/grid-head.svelte +4 -11
  45. package/dist/components/grid/grid-row-header.svelte +3 -10
  46. package/dist/components/grid/grid-row.svelte +3 -16
  47. package/dist/components/listbox/listbox.svelte +1 -1
  48. package/dist/components/listbox/listbox.svelte.d.ts +1 -1
  49. package/dist/components/listbox/option.svelte +1 -1
  50. package/dist/components/listbox/option.svelte.d.ts +2 -2
  51. package/dist/components/menu/menu-button.svelte +2 -2
  52. package/dist/components/menu/menu-button.svelte.d.ts +4 -4
  53. package/dist/components/menu/menu-item-checkable.svelte +71 -0
  54. package/dist/components/menu/menu-item-checkable.svelte.d.ts +25 -0
  55. package/dist/components/menu/menu-item-checkbox.svelte +3 -36
  56. package/dist/components/menu/menu-item-checkbox.svelte.d.ts +3 -3
  57. package/dist/components/menu/menu-item-group.svelte +8 -5
  58. package/dist/components/menu/menu-item-group.svelte.d.ts +9 -1
  59. package/dist/components/menu/menu-item-radio.svelte +3 -36
  60. package/dist/components/menu/menu-item-radio.svelte.d.ts +3 -3
  61. package/dist/components/menu/menu-item.svelte +22 -6
  62. package/dist/components/menu/menu-item.svelte.d.ts +4 -4
  63. package/dist/components/radio/radio.svelte +12 -1
  64. package/dist/components/resizable-pane/resizable-handle.svelte +14 -18
  65. package/dist/components/resizable-pane/resizable-pane-group.svelte +9 -6
  66. package/dist/components/resizable-pane/resizable-pane.svelte +4 -4
  67. package/dist/components/resizable-pane/resizable-pane.svelte.d.ts +7 -6
  68. package/dist/components/resizable-pane/sizing.d.ts +5 -4
  69. package/dist/components/resizable-pane/sizing.js +84 -25
  70. package/dist/components/scroll/infinite-scroll.svelte +16 -21
  71. package/dist/components/select/combobox.svelte +43 -52
  72. package/dist/components/select/combobox.svelte.d.ts +2 -2
  73. package/dist/components/select/select-tags.svelte +7 -1
  74. package/dist/components/select/select.svelte +2 -22
  75. package/dist/components/select/select.svelte.d.ts +1 -1
  76. package/dist/components/slider/slider.d.ts +6 -0
  77. package/dist/components/slider/slider.js +55 -2
  78. package/dist/components/slider/slider.svelte +63 -32
  79. package/dist/components/table/table-cell.svelte +3 -9
  80. package/dist/components/table/table-col-header.svelte +3 -9
  81. package/dist/components/table/table-foot.svelte +4 -11
  82. package/dist/components/table/table-head.svelte +4 -11
  83. package/dist/components/table/table-part.svelte +69 -0
  84. package/dist/components/table/table-part.svelte.d.ts +48 -0
  85. package/dist/components/table/table-row-header.svelte +3 -10
  86. package/dist/components/table/table-row.svelte +3 -10
  87. package/dist/components/tabs/tab-list.svelte +12 -0
  88. package/dist/components/tabs/tab.svelte +1 -1
  89. package/dist/components/tabs/tab.svelte.d.ts +2 -2
  90. package/dist/components/text-editor/constants.d.ts +5 -5
  91. package/dist/components/text-editor/constants.js +1 -1
  92. package/dist/components/text-editor/core.d.ts +4 -5
  93. package/dist/components/text-editor/core.js +372 -285
  94. package/dist/components/text-editor/emoji-autocomplete.svelte +1 -1
  95. package/dist/components/text-editor/lexical-root.svelte +1 -1
  96. package/dist/components/text-editor/raw-markdown.d.ts +6 -33
  97. package/dist/components/text-editor/raw-markdown.js +63 -8
  98. package/dist/components/text-editor/shiki/facade.d.ts +1 -1
  99. package/dist/components/text-editor/shiki/facade.js +63 -48
  100. package/dist/components/text-editor/shiki/generated.d.ts +1 -1
  101. package/dist/components/text-editor/shiki/generated.js +1 -1
  102. package/dist/components/text-editor/shiki/highlighter.d.ts +6 -1
  103. package/dist/components/text-editor/shiki/highlighter.js +3 -4
  104. package/dist/components/text-editor/shiki/loader.d.ts +1 -1
  105. package/dist/components/text-editor/shiki/loader.js +1 -1
  106. package/dist/components/text-editor/shiki/version.d.ts +1 -1
  107. package/dist/components/text-editor/shiki/version.js +1 -1
  108. package/dist/components/text-editor/store.svelte.d.ts +1 -1
  109. package/dist/components/text-editor/store.svelte.js +5 -2
  110. package/dist/components/text-editor/text-editor.svelte +2 -2
  111. package/dist/components/text-editor/text-editor.svelte.d.ts +3 -3
  112. package/dist/components/text-editor/toolbar/code-language-switcher.svelte +24 -16
  113. package/dist/components/text-editor/toolbar/format-text-button.svelte +7 -31
  114. package/dist/components/text-editor/toolbar/format-text-button.svelte.d.ts +1 -1
  115. package/dist/components/text-editor/toolbar/insert-component.d.ts +3 -0
  116. package/dist/components/text-editor/toolbar/insert-component.js +34 -0
  117. package/dist/components/text-editor/toolbar/insert-item-button.svelte +4 -24
  118. package/dist/components/text-editor/toolbar/insert-item-button.svelte.d.ts +1 -1
  119. package/dist/components/text-editor/toolbar/insert-link-button.svelte +9 -25
  120. package/dist/components/text-editor/toolbar/insert-menu-button.svelte +4 -24
  121. package/dist/components/text-editor/toolbar/insert-menu-button.svelte.d.ts +1 -1
  122. package/dist/components/text-editor/toolbar/text-editor-toolbar.svelte +1 -1
  123. package/dist/components/text-editor/toolbar/toggle-block-menu-item.svelte +31 -35
  124. package/dist/components/text-editor/toolbar/toggle-block-menu-item.svelte.d.ts +1 -1
  125. package/dist/components/text-editor/toolbar/toolbar-wrapper.svelte +0 -10
  126. package/dist/components/text-editor/toolbar/toolbar-wrapper.svelte.d.ts +1 -11
  127. package/dist/components/text-editor/transformers/table.d.ts +0 -1
  128. package/dist/components/text-editor/transformers/table.js +1 -2
  129. package/dist/components/text-field/emoji-autocomplete.svelte +1 -1
  130. package/dist/components/text-field/masked-input.svelte +179 -0
  131. package/dist/components/text-field/masked-input.svelte.d.ts +42 -0
  132. package/dist/components/text-field/number-input.js +7 -1
  133. package/dist/components/text-field/number-input.svelte +13 -5
  134. package/dist/components/text-field/number-input.svelte.d.ts +3 -3
  135. package/dist/components/text-field/password-input.svelte +3 -116
  136. package/dist/components/text-field/password-input.svelte.d.ts +3 -3
  137. package/dist/components/text-field/search-bar.svelte +1 -1
  138. package/dist/components/text-field/search-bar.svelte.d.ts +3 -3
  139. package/dist/components/text-field/secret-input.svelte +3 -119
  140. package/dist/components/text-field/secret-input.svelte.d.ts +3 -3
  141. package/dist/components/text-field/text-area.svelte +1 -1
  142. package/dist/components/text-field/text-area.svelte.d.ts +3 -3
  143. package/dist/components/text-field/text-input.svelte +1 -1
  144. package/dist/components/text-field/text-input.svelte.d.ts +3 -3
  145. package/dist/components/toast/toast.svelte +11 -20
  146. package/dist/components/toast/toast.svelte.d.ts +1 -1
  147. package/dist/components/tree/tree-item.svelte +1 -1
  148. package/dist/components/tree/tree-item.svelte.d.ts +1 -1
  149. package/dist/components/tree/tree.svelte +1 -1
  150. package/dist/components/tree/tree.svelte.d.ts +1 -1
  151. package/dist/components/util/font-links.svelte +1 -0
  152. package/dist/components/util/modal.svelte +37 -1
  153. package/dist/components/util/modal.svelte.d.ts +1 -1
  154. package/dist/components/util/popup.svelte +2 -5
  155. package/dist/components/util/popup.svelte.d.ts +2 -2
  156. package/dist/components/util/visibility-observer.svelte +1 -0
  157. package/dist/locales/ar.yaml +1 -1
  158. package/dist/locales/sk.yaml +136 -0
  159. package/dist/services/group.svelte.d.ts +10 -1
  160. package/dist/services/group.svelte.js +361 -251
  161. package/dist/services/navigation.d.ts +19 -0
  162. package/dist/services/navigation.js +84 -0
  163. package/dist/services/popup-position.d.ts +90 -0
  164. package/dist/services/popup-position.js +275 -0
  165. package/dist/services/popup.svelte.d.ts +16 -17
  166. package/dist/services/popup.svelte.js +25 -169
  167. package/dist/services/scroll.d.ts +1 -0
  168. package/dist/services/scroll.js +17 -0
  169. package/dist/services/select.svelte.d.ts +2 -2
  170. package/dist/services/select.svelte.js +1 -1
  171. package/dist/services/text.d.ts +2 -0
  172. package/dist/services/text.js +28 -0
  173. package/dist/services/tree.svelte.d.ts +3 -11
  174. package/dist/services/tree.svelte.js +35 -77
  175. package/dist/services/type-ahead.d.ts +0 -4
  176. package/dist/services/type-ahead.js +3 -1
  177. package/dist/services/widget.d.ts +8 -0
  178. package/dist/services/widget.js +39 -0
  179. package/dist/shiki-engine.js +15 -15
  180. package/dist/styles/mixins.scss +126 -0
  181. package/package.json +24 -20
@@ -0,0 +1,126 @@
1
+ // Shared component style mixins. Components load this with `@use '../../styles/mixins';`; it emits
2
+ // no CSS on its own.
3
+
4
+ // Make a field stretch to fill its container when the `flex` prop is set. The `display` is repeated
5
+ // to avoid Tailwind `.flex` class collisions.
6
+ @mixin flex-stretch($display: inline-flex) {
7
+ &.flex:not([hidden]) {
8
+ display: $display; // Avoid Tailwind .flex class collisions
9
+ width: -moz-available;
10
+ width: -webkit-fill-available;
11
+ width: stretch;
12
+ min-width: 0;
13
+ }
14
+ }
15
+
16
+ // A `<TextInput>` embedded in a composite field, like `<SearchBar>` or `<NumberInput>`, filling the
17
+ // space left by the other parts. To be included within a `:global` block.
18
+ @mixin embedded-text-input {
19
+ .text-input {
20
+ flex: auto;
21
+ margin: 0 !important;
22
+ width: 0; // = auto
23
+ min-width: 0 !important;
24
+ }
25
+ }
26
+
27
+ // A square button attached to the end of a text field, sharing its border. `$size-property` is the
28
+ // dimension tied to the field height (`width` or `height`), the other one following the aspect
29
+ // ratio.
30
+ @mixin attached-button($size-property) {
31
+ flex: none;
32
+ margin-inline-start: -1px;
33
+ border-width: 1px;
34
+ border-color: var(--sui-textbox-border-color);
35
+ #{$size-property}: var(--sui-textbox-height);
36
+ aspect-ratio: 1 / 1;
37
+
38
+ &:last-child {
39
+ border-start-start-radius: 0;
40
+ border-start-end-radius: 4px;
41
+ border-end-end-radius: 4px;
42
+ border-end-start-radius: 0;
43
+ }
44
+
45
+ .icon {
46
+ font-size: var(--sui-font-size-xx-large);
47
+ }
48
+ }
49
+
50
+ // The label wrapper of a checkbox or radio button.
51
+ @mixin toggle-control-wrapper {
52
+ display: inline-flex;
53
+ align-items: center;
54
+ gap: 8px;
55
+ margin: var(--sui-focus-ring-width);
56
+ // The wrapper forwards clicks to the 20px control, so it’s the pointer target; keep it at the
57
+ // 24px minimum (WCAG 2.5.8) even without a label
58
+ min-width: 24px;
59
+ min-height: 24px;
60
+ color: var(--sui-control-foreground-color);
61
+ font-family: var(--sui-control-font-family);
62
+ font-size: var(--sui-control-font-size);
63
+ line-height: var(--sui-control-line-height);
64
+ cursor: pointer;
65
+ -webkit-user-select: none;
66
+ user-select: none;
67
+ }
68
+
69
+ // The `horizontal` and `vertical` orientations of a checkbox or radio group.
70
+ @mixin toggle-group-orientation {
71
+ &.horizontal {
72
+ gap: 8px;
73
+ align-items: center;
74
+ flex-wrap: wrap;
75
+ }
76
+
77
+ &.vertical {
78
+ gap: 4px;
79
+ flex-direction: column;
80
+
81
+ @media (pointer: coarse) {
82
+ gap: 8px;
83
+ }
84
+ }
85
+ }
86
+
87
+ // The `<Table>` or `<Grid>` wrapper. `$prefix` is the class name prefix of its cells (`table` or
88
+ // `grid`), bordered and padded when the `data` class is set.
89
+ @mixin table($prefix) {
90
+ display: table;
91
+ margin: var(--sui-focus-ring-width);
92
+ width: calc(100% - var(--sui-focus-ring-width) * 2);
93
+
94
+ &.data {
95
+ border-collapse: collapse;
96
+
97
+ :global {
98
+ :is(.#{$prefix}-col-header, .#{$prefix}-row-header, .#{$prefix}-cell) {
99
+ border: 1px solid var(--sui-secondary-border-color);
100
+ padding: 8px 8px;
101
+ }
102
+ }
103
+ }
104
+ }
105
+
106
+ // A `<TableBody>` or `<GridBody>` row group with its optional caption row. Extra caption cell
107
+ // styles can be passed as the content block.
108
+ @mixin row-group {
109
+ [role="rowgroup"] {
110
+ display: table-row-group;
111
+ }
112
+
113
+ [role="row"] {
114
+ display: table-row;
115
+ }
116
+
117
+ [role="columnheader"] {
118
+ display: table-cell;
119
+ padding: 8px;
120
+ color: var(--sui-secondary-foreground-color);
121
+ background-color: var(--sui-secondary-background-color);
122
+ font-size: var(--sui-font-size-default);
123
+ text-align: start;
124
+ @content;
125
+ }
126
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sveltia/ui",
3
- "version": "0.78.4",
3
+ "version": "0.79.0",
4
4
  "description": "A collection of Svelte components and utilities for building user interfaces.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -13,6 +13,10 @@
13
13
  },
14
14
  "sideEffects": false,
15
15
  "type": "module",
16
+ "imports": {
17
+ "#lib": "./src/lib/index.js",
18
+ "#lib/*": "./src/lib/*"
19
+ },
16
20
  "exports": {
17
21
  ".": {
18
22
  "types": "./dist/index.d.ts",
@@ -54,10 +58,10 @@
54
58
  "@lexical/selection": "^0.52.0",
55
59
  "@lexical/table": "^0.52.0",
56
60
  "@lexical/utils": "^0.52.0",
57
- "@shikijs/langs": "4.4.3",
58
- "@shikijs/themes": "4.4.3",
59
- "@sveltia/i18n": "^1.4.0",
60
- "@sveltia/utils": "^0.12.2",
61
+ "@shikijs/langs": "4.5.0",
62
+ "@shikijs/themes": "4.5.0",
63
+ "@sveltia/i18n": "^1.4.1",
64
+ "@sveltia/utils": "^0.12.3",
61
65
  "lexical": "^0.52.0"
62
66
  },
63
67
  "devDependencies": {
@@ -65,21 +69,21 @@
65
69
  "@fontsource-variable/source-sans-3": "5.3.0",
66
70
  "@fontsource/noto-mono": "5.3.0",
67
71
  "@rollup/plugin-yaml": "^5.0.0",
68
- "@sveltejs/adapter-auto": "^7.0.1",
69
- "@sveltejs/kit": "^2.70.3",
70
- "@sveltejs/package": "^2.5.8",
72
+ "@sveltejs/adapter-auto": "^8.0.0",
73
+ "@sveltejs/kit": "^3.0.0",
74
+ "@sveltejs/package": "^3.0.0",
71
75
  "@sveltejs/vite-plugin-svelte": "^7.3.1",
72
- "@vitest/browser-playwright": "^5.0.2",
73
- "@vitest/coverage-v8": "^5.0.2",
74
- "cspell": "^10.3.5",
76
+ "@vitest/browser-playwright": "^5.0.3",
77
+ "@vitest/coverage-v8": "^5.0.3",
78
+ "cspell": "^10.3.6",
75
79
  "eslint": "^9.39.5",
76
- "eslint-config-airbnb-extended": "^3.2.0",
80
+ "eslint-config-airbnb-extended": "^3.3.0",
77
81
  "eslint-config-prettier": "^10.1.8",
78
82
  "eslint-plugin-import": "^2.32.0",
79
- "eslint-plugin-jsdoc": "^65.0.0",
83
+ "eslint-plugin-jsdoc": "^65.0.2",
80
84
  "eslint-plugin-package-json": "^1.10.1",
81
85
  "eslint-plugin-svelte": "^3.23.0",
82
- "globals": "^17.12.0",
86
+ "globals": "^17.13.0",
83
87
  "happy-dom": "^20.14.5",
84
88
  "oxlint": "^1.86.0",
85
89
  "playwright": "^1.63.0",
@@ -87,18 +91,18 @@
87
91
  "postcss-html": "^2.0.0",
88
92
  "prettier": "^3.9.9",
89
93
  "prettier-plugin-svelte": "^4.1.1",
90
- "rolldown": "^1.2.11",
91
- "sass": "^1.105.0",
92
- "shiki": "^4.4.3",
93
- "stylelint": "^17.15.0",
94
+ "rolldown": "^1.2.12",
95
+ "sass": "^1.105.1",
96
+ "shiki": "^4.5.0",
97
+ "stylelint": "^17.16.0",
94
98
  "stylelint-config-recommended-scss": "^17.0.1",
95
99
  "stylelint-scss": "^7.3.0",
96
100
  "svelte": "^5.57.1",
97
101
  "svelte-check": "^4.7.6",
98
102
  "svelte-preprocess": "^6.0.5",
99
103
  "tslib": "^2.8.1",
100
- "vite": "^8.3.1",
101
- "vitest": "^5.0.2",
104
+ "vite": "^8.3.2",
105
+ "vitest": "^5.0.3",
102
106
  "vitest-browser-svelte": "^3.1.0"
103
107
  },
104
108
  "peerDependencies": {