@mdbase-dev/ui 0.1.0-beta.126 → 0.1.0-beta.148
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 +168 -0
- package/css/collections.css +978 -0
- package/css/controls.css +33 -1
- package/css/screens.css +44 -2
- package/dist/AppSwitcher.js +187 -33
- package/dist/Checkbox.d.ts +14 -0
- package/dist/Checkbox.js +32 -0
- package/dist/CollectionModeControl.d.ts +11 -0
- package/dist/CollectionModeControl.js +290 -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 +51 -0
- package/dist/collections/CollectionSwitcher.js +598 -0
- package/dist/collections/SetupReview.d.ts +9 -0
- package/dist/collections/SetupReview.js +216 -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 +19 -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 +56 -7
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.148",
|
|
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"
|
|
@@ -38,6 +55,10 @@
|
|
|
38
55
|
"types": "./dist/Feedback.d.ts",
|
|
39
56
|
"import": "./dist/Feedback.js"
|
|
40
57
|
},
|
|
58
|
+
"./collection-mode": {
|
|
59
|
+
"types": "./dist/CollectionModeControl.d.ts",
|
|
60
|
+
"import": "./dist/CollectionModeControl.js"
|
|
61
|
+
},
|
|
41
62
|
"./dialog": {
|
|
42
63
|
"types": "./dist/Dialog.d.ts",
|
|
43
64
|
"import": "./dist/Dialog.js"
|
|
@@ -79,6 +100,7 @@
|
|
|
79
100
|
"import": "./dist/ThemeSelect.js"
|
|
80
101
|
},
|
|
81
102
|
"./brand.css": "./css/brand.css",
|
|
103
|
+
"./collections.css": "./css/collections.css",
|
|
82
104
|
"./controls.css": "./css/controls.css",
|
|
83
105
|
"./fonts.css": "./css/fonts.css",
|
|
84
106
|
"./feedback.css": "./css/feedback.css",
|
|
@@ -98,25 +120,52 @@
|
|
|
98
120
|
},
|
|
99
121
|
"peerDependencies": {
|
|
100
122
|
"@codemirror/view": "^6.0.0",
|
|
101
|
-
"
|
|
123
|
+
"@lingui/core": "6.9.0",
|
|
124
|
+
"@lingui/react": "6.9.0",
|
|
125
|
+
"@mdbase-dev/i18n": "*",
|
|
126
|
+
"@mdbase-dev/sdk": "*",
|
|
127
|
+
"react": "^19.2.0",
|
|
128
|
+
"react-dom": "^19.2.0"
|
|
102
129
|
},
|
|
103
130
|
"devDependencies": {
|
|
131
|
+
"@babel/core": "^7.29.7",
|
|
132
|
+
"@babel/plugin-transform-react-jsx": "^7.29.7",
|
|
104
133
|
"@codemirror/view": "^6.43.12",
|
|
134
|
+
"@lingui/babel-plugin-lingui-macro": "6.9.0",
|
|
135
|
+
"@lingui/cli": "6.9.0",
|
|
136
|
+
"@lingui/core": "6.9.0",
|
|
137
|
+
"@lingui/format-po": "6.9.0",
|
|
138
|
+
"@lingui/react": "6.9.0",
|
|
139
|
+
"@lingui/vite-plugin": "6.9.0",
|
|
140
|
+
"@mdbase-dev/sdk": "file:vendor/sdk-0.0.0-bd131b16.tgz",
|
|
141
|
+
"@rolldown/plugin-babel": "^0.2.4",
|
|
105
142
|
"@types/react": "^19.3.0",
|
|
106
143
|
"@types/react-dom": "^19.3.0",
|
|
144
|
+
"jsdom": "^29.1.1",
|
|
107
145
|
"react": "^19.3.0",
|
|
108
146
|
"react-dom": "^19.3.0",
|
|
109
147
|
"typescript": "^7.0.2",
|
|
110
|
-
"vitest": "^4.1.11"
|
|
148
|
+
"vitest": "^4.1.11",
|
|
149
|
+
"@mdbase-dev/i18n": "0.1.0-beta.148"
|
|
111
150
|
},
|
|
112
151
|
"peerDependenciesMeta": {
|
|
113
152
|
"@codemirror/view": {
|
|
114
153
|
"optional": true
|
|
154
|
+
},
|
|
155
|
+
"@mdbase-dev/sdk": {
|
|
156
|
+
"optional": true
|
|
157
|
+
},
|
|
158
|
+
"react-dom": {
|
|
159
|
+
"optional": true
|
|
115
160
|
}
|
|
116
161
|
},
|
|
117
162
|
"scripts": {
|
|
118
|
-
"
|
|
119
|
-
"
|
|
120
|
-
"
|
|
163
|
+
"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",
|
|
164
|
+
"i18n:extract": "mdbase-i18n extract",
|
|
165
|
+
"i18n:compile": "mdbase-i18n compile",
|
|
166
|
+
"i18n:check": "mdbase-i18n check",
|
|
167
|
+
"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",
|
|
168
|
+
"test": "node scripts/compile-catalogues.mjs && node ../../scripts/ci/vitest.mjs",
|
|
169
|
+
"typecheck": "node scripts/compile-catalogues.mjs && tsc -p tsconfig.json --noEmit"
|
|
121
170
|
}
|
|
122
171
|
}
|