@mdbase-dev/ui 0.1.0-beta.125 → 0.1.0-beta.147
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/README.md +159 -0
- package/css/brand.css +10 -10
- package/css/collections.css +978 -0
- package/css/controls.css +220 -43
- package/css/feedback.css +20 -20
- package/css/fonts.css +2 -3
- package/css/palette.css +10 -10
- package/css/screens.css +58 -16
- package/css/tokens.css +43 -3
- package/dist/AppSwitcher.js +187 -33
- package/dist/Checkbox.d.ts +14 -0
- package/dist/Checkbox.js +32 -0
- package/dist/CommandPalette.d.ts +4 -2
- package/dist/CommandPalette.js +275 -103
- package/dist/Dialog.js +72 -25
- package/dist/Feedback.js +763 -229
- package/dist/FeedbackMarkup.d.ts +1 -1
- package/dist/FeedbackMarkup.js +326 -125
- package/dist/FeedbackVerification.js +115 -68
- package/dist/SaveNotice.js +71 -28
- package/dist/Select.js +183 -135
- package/dist/SelectList.js +59 -14
- package/dist/ThemeSelect.js +55 -4
- package/dist/apps.d.ts +1 -0
- package/dist/apps.js +50 -29
- package/dist/brand.js +251 -68
- package/dist/codemirror.js +116 -87
- package/dist/collections/CollectionGate.d.ts +52 -0
- package/dist/collections/CollectionGate.js +456 -0
- package/dist/collections/CollectionSaveWarning.d.ts +10 -0
- package/dist/collections/CollectionSaveWarning.js +28 -0
- package/dist/collections/CollectionSwitcher.d.ts +26 -0
- package/dist/collections/CollectionSwitcher.js +579 -0
- package/dist/collections/SetupReview.d.ts +9 -0
- package/dist/collections/SetupReview.js +175 -0
- package/dist/collections/copy.d.ts +100 -0
- package/dist/collections/copy.js +937 -0
- package/dist/collections/dialogs.d.ts +27 -0
- package/dist/collections/dialogs.js +169 -0
- package/dist/collections/model.d.ts +146 -0
- package/dist/collections/model.js +337 -0
- package/dist/collections/mount.d.ts +18 -0
- package/dist/collections/mount.js +56 -0
- package/dist/collections/parts.d.ts +86 -0
- package/dist/collections/parts.js +439 -0
- package/dist/collections/testing.d.ts +19 -0
- package/dist/collections/testing.js +39 -0
- package/dist/collections/use-collection-ui.d.ts +140 -0
- package/dist/collections/use-collection-ui.js +236 -0
- package/dist/collections.d.ts +19 -0
- package/dist/collections.js +13 -0
- package/dist/feedback-data.d.ts +13 -12
- package/dist/feedback-data.js +365 -168
- package/dist/flock.d.ts +63 -0
- package/dist/flock.js +140 -0
- package/dist/i18n.d.ts +6 -0
- package/dist/i18n.js +71 -0
- package/dist/locales/de/messages.json +1 -0
- package/dist/locales/en/messages.json +1 -0
- package/dist/locales/es/messages.json +1 -0
- package/dist/locales/fr/messages.json +1 -0
- package/dist/locales/it/messages.json +1 -0
- package/dist/locales/ja/messages.json +1 -0
- package/dist/locales/ko/messages.json +1 -0
- package/dist/locales/pt/messages.json +1 -0
- package/dist/locales/ru/messages.json +1 -0
- package/dist/locales/zh/messages.json +1 -0
- package/dist/mark-activity.js +82 -75
- package/dist/permission-selection.js +27 -17
- package/dist/popover.js +138 -130
- package/dist/screens.d.ts +20 -3
- package/dist/screens.js +275 -6
- package/dist/select-model.js +34 -28
- package/dist/text-diff.d.ts +1 -0
- package/dist/text-diff.js +106 -74
- package/dist/theme.js +34 -40
- package/package.json +53 -8
package/dist/theme.js
CHANGED
|
@@ -2,58 +2,52 @@
|
|
|
2
2
|
export const THEME_STORAGE_KEY = "mdbase:theme";
|
|
3
3
|
export const themePreferences = ["system", "light", "dark"];
|
|
4
4
|
/** Browser chrome colours matching the light and dark canvas tokens. */
|
|
5
|
-
export const themeColors = {
|
|
5
|
+
export const themeColors = {
|
|
6
|
+
light: "#fcfcfd",
|
|
7
|
+
dark: "#1b1d23"
|
|
8
|
+
};
|
|
6
9
|
export function normalizeThemePreference(value) {
|
|
7
|
-
|
|
8
|
-
? value
|
|
9
|
-
: "system";
|
|
10
|
+
return themePreferences.includes(value) ? value : "system";
|
|
10
11
|
}
|
|
11
12
|
/** Storage may be absent (server rendering, extension pages) or blocked; both mean System. */
|
|
12
13
|
export function loadThemePreference(storage) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
14
|
+
try {
|
|
15
|
+
return normalizeThemePreference((storage ?? localStorage).getItem(THEME_STORAGE_KEY));
|
|
16
|
+
} catch {
|
|
17
|
+
return "system";
|
|
18
|
+
}
|
|
19
19
|
}
|
|
20
20
|
function prefersDark() {
|
|
21
|
-
|
|
22
|
-
&& matchMedia("(prefers-color-scheme: dark)").matches;
|
|
21
|
+
return typeof matchMedia === "function" && matchMedia("(prefers-color-scheme: dark)").matches;
|
|
23
22
|
}
|
|
24
23
|
export function resolveDarkTheme(root = document.documentElement) {
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
const applied = root.dataset.theme;
|
|
25
|
+
return applied === "dark" || applied !== "light" && prefersDark();
|
|
27
26
|
}
|
|
28
27
|
export function observeTheme(listener, root = document.documentElement) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
28
|
+
const observer = new MutationObserver(listener);
|
|
29
|
+
observer.observe(root, {
|
|
30
|
+
attributeFilter: ["data-theme"]
|
|
31
|
+
});
|
|
32
|
+
const media = typeof matchMedia === "function" ? matchMedia("(prefers-color-scheme: dark)") : null;
|
|
33
|
+
media?.addEventListener("change", listener);
|
|
34
|
+
return () => {
|
|
35
|
+
observer.disconnect();
|
|
36
|
+
media?.removeEventListener("change", listener);
|
|
37
|
+
};
|
|
39
38
|
}
|
|
40
39
|
export function applyThemePreference(preference, root = document.documentElement) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
if (typeof document !== "undefined") {
|
|
47
|
-
document.querySelector('meta[name="theme-color"]')
|
|
48
|
-
?.setAttribute("content", dark ? themeColors.dark : themeColors.light);
|
|
49
|
-
}
|
|
40
|
+
if (preference === "system") root.removeAttribute("data-theme");else root.dataset.theme = preference;
|
|
41
|
+
const dark = preference === "dark" || preference === "system" && prefersDark();
|
|
42
|
+
if (typeof document !== "undefined") {
|
|
43
|
+
document.querySelector('meta[name="theme-color"]')?.setAttribute("content", dark ? themeColors.dark : themeColors.light);
|
|
44
|
+
}
|
|
50
45
|
}
|
|
51
46
|
export function saveThemePreference(preference, storage, root = document.documentElement) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
applyThemePreference(preference, root);
|
|
47
|
+
try {
|
|
48
|
+
(storage ?? localStorage).setItem(THEME_STORAGE_KEY, preference);
|
|
49
|
+
} catch {
|
|
50
|
+
// Theme selection still applies for this session when storage is unavailable.
|
|
51
|
+
}
|
|
52
|
+
applyThemePreference(preference, root);
|
|
59
53
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mdbase-dev/ui",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
3
|
+
"version": "0.1.0-beta.147",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -11,9 +11,14 @@
|
|
|
11
11
|
},
|
|
12
12
|
"homepage": "https://mdbase.dev",
|
|
13
13
|
"sideEffects": [
|
|
14
|
-
"*.css"
|
|
14
|
+
"*.css",
|
|
15
|
+
"./dist/i18n.js"
|
|
15
16
|
],
|
|
16
17
|
"exports": {
|
|
18
|
+
"./i18n": {
|
|
19
|
+
"types": "./dist/i18n.d.ts",
|
|
20
|
+
"import": "./dist/i18n.js"
|
|
21
|
+
},
|
|
17
22
|
"./app-switcher": {
|
|
18
23
|
"types": "./dist/AppSwitcher.d.ts",
|
|
19
24
|
"import": "./dist/AppSwitcher.js"
|
|
@@ -26,10 +31,22 @@
|
|
|
26
31
|
"types": "./dist/brand.d.ts",
|
|
27
32
|
"import": "./dist/brand.js"
|
|
28
33
|
},
|
|
34
|
+
"./checkbox": {
|
|
35
|
+
"types": "./dist/Checkbox.d.ts",
|
|
36
|
+
"import": "./dist/Checkbox.js"
|
|
37
|
+
},
|
|
29
38
|
"./codemirror": {
|
|
30
39
|
"types": "./dist/codemirror.d.ts",
|
|
31
40
|
"import": "./dist/codemirror.js"
|
|
32
41
|
},
|
|
42
|
+
"./collections": {
|
|
43
|
+
"types": "./dist/collections.d.ts",
|
|
44
|
+
"import": "./dist/collections.js"
|
|
45
|
+
},
|
|
46
|
+
"./collections/testing": {
|
|
47
|
+
"types": "./dist/collections/testing.d.ts",
|
|
48
|
+
"import": "./dist/collections/testing.js"
|
|
49
|
+
},
|
|
33
50
|
"./command-palette": {
|
|
34
51
|
"types": "./dist/CommandPalette.d.ts",
|
|
35
52
|
"import": "./dist/CommandPalette.js"
|
|
@@ -79,6 +96,7 @@
|
|
|
79
96
|
"import": "./dist/ThemeSelect.js"
|
|
80
97
|
},
|
|
81
98
|
"./brand.css": "./css/brand.css",
|
|
99
|
+
"./collections.css": "./css/collections.css",
|
|
82
100
|
"./controls.css": "./css/controls.css",
|
|
83
101
|
"./fonts.css": "./css/fonts.css",
|
|
84
102
|
"./feedback.css": "./css/feedback.css",
|
|
@@ -93,30 +111,57 @@
|
|
|
93
111
|
"README.md"
|
|
94
112
|
],
|
|
95
113
|
"dependencies": {
|
|
96
|
-
"@fontsource/atkinson-hyperlegible": "^5.3.0",
|
|
114
|
+
"@fontsource-variable/atkinson-hyperlegible-next": "^5.3.0",
|
|
97
115
|
"@fontsource/azeret-mono": "^5.3.0"
|
|
98
116
|
},
|
|
99
117
|
"peerDependencies": {
|
|
100
118
|
"@codemirror/view": "^6.0.0",
|
|
101
|
-
"
|
|
119
|
+
"@lingui/core": "6.9.0",
|
|
120
|
+
"@lingui/react": "6.9.0",
|
|
121
|
+
"@mdbase-dev/i18n": "*",
|
|
122
|
+
"@mdbase-dev/sdk": "*",
|
|
123
|
+
"react": "^19.2.0",
|
|
124
|
+
"react-dom": "^19.2.0"
|
|
102
125
|
},
|
|
103
126
|
"devDependencies": {
|
|
127
|
+
"@babel/core": "^7.29.7",
|
|
128
|
+
"@babel/plugin-transform-react-jsx": "^7.29.7",
|
|
104
129
|
"@codemirror/view": "^6.43.12",
|
|
130
|
+
"@lingui/babel-plugin-lingui-macro": "6.9.0",
|
|
131
|
+
"@lingui/cli": "6.9.0",
|
|
132
|
+
"@lingui/core": "6.9.0",
|
|
133
|
+
"@lingui/format-po": "6.9.0",
|
|
134
|
+
"@lingui/react": "6.9.0",
|
|
135
|
+
"@lingui/vite-plugin": "6.9.0",
|
|
136
|
+
"@mdbase-dev/sdk": "file:vendor/sdk-0.0.0-bd131b16.tgz",
|
|
137
|
+
"@rolldown/plugin-babel": "^0.2.4",
|
|
105
138
|
"@types/react": "^19.3.0",
|
|
106
139
|
"@types/react-dom": "^19.3.0",
|
|
140
|
+
"jsdom": "^29.1.1",
|
|
107
141
|
"react": "^19.3.0",
|
|
108
142
|
"react-dom": "^19.3.0",
|
|
109
143
|
"typescript": "^7.0.2",
|
|
110
|
-
"vitest": "^4.1.
|
|
144
|
+
"vitest": "^4.1.11",
|
|
145
|
+
"@mdbase-dev/i18n": "0.1.0-beta.147"
|
|
111
146
|
},
|
|
112
147
|
"peerDependenciesMeta": {
|
|
113
148
|
"@codemirror/view": {
|
|
114
149
|
"optional": true
|
|
150
|
+
},
|
|
151
|
+
"@mdbase-dev/sdk": {
|
|
152
|
+
"optional": true
|
|
153
|
+
},
|
|
154
|
+
"react-dom": {
|
|
155
|
+
"optional": true
|
|
115
156
|
}
|
|
116
157
|
},
|
|
117
158
|
"scripts": {
|
|
118
|
-
"
|
|
119
|
-
"
|
|
120
|
-
"
|
|
159
|
+
"verify:shared": "pnpm --filter @mdbase-dev/i18n build && pnpm i18n:check && pnpm --filter @mdbase/connect-ui i18n:check && pnpm build && pnpm test && pnpm --filter @mdbase/connect-ui build && pnpm --filter @mdbase/connect-ui test && pnpm --filter @mdbase/connect-ui typecheck",
|
|
160
|
+
"i18n:extract": "mdbase-i18n extract",
|
|
161
|
+
"i18n:compile": "mdbase-i18n compile",
|
|
162
|
+
"i18n:check": "mdbase-i18n check",
|
|
163
|
+
"build": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\" && node scripts/compile-catalogues.mjs && tsc -p tsconfig.json && node scripts/compile-macros.mjs",
|
|
164
|
+
"test": "node scripts/compile-catalogues.mjs && node ../../scripts/ci/vitest.mjs",
|
|
165
|
+
"typecheck": "node scripts/compile-catalogues.mjs && tsc -p tsconfig.json --noEmit"
|
|
121
166
|
}
|
|
122
167
|
}
|