@-reddacted-/react-ui 0.2.2 → 0.2.3

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/index.d.ts CHANGED
@@ -7,7 +7,7 @@ export { NavBar, type NavLink } from "./components/NavBar.js";
7
7
  export { PageMessage, LoadingMessage, ErrorMessage } from "./components/PageStatus.js";
8
8
  export { ThemeProvider, useTheme } from "./theme/ThemeProvider.js";
9
9
  export { ThemeSelect } from "./theme/ThemeSelect.js";
10
- export { defaultPalette, themeVariableGroups, themeVariableKeys, type ThemeVariableGroup } from "./theme/palette.js";
10
+ export { defaultPalette } from "./theme/palette.js";
11
11
  export { createLocalThemeStore, createHttpThemeStore, type ThemeStore } from "./theme/store.js";
12
12
  export { serializeColors, parseColors, isHexColor, randomHex } from "./theme/clipboard.js";
13
13
  export type { ThemeColors, ThemeDefinition, ThemeCatalog, ThemeDraft } from "./theme/types.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAC/E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,qCAAqC,CAAA;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACnE,OAAO,EAAE,MAAM,EAAE,KAAK,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEtF,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACpH,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC/F,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAC1F,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE9F,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,sBAAsB,EAAE,KAAK,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAC9F,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,aAAa,GACnB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAG9C,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACpH,YAAY,EAAE,WAAW,EAAE,WAAW,IAAI,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAC/E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,qCAAqC,CAAA;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACnE,OAAO,EAAE,MAAM,EAAE,KAAK,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEtF,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC/F,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAC1F,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE9F,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,sBAAsB,EAAE,KAAK,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAC9F,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,aAAa,GACnB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAG9C,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACpH,YAAY,EAAE,WAAW,EAAE,WAAW,IAAI,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA"}
package/dist/index.js CHANGED
@@ -7,7 +7,7 @@ export { NavBar } from "./components/NavBar.js";
7
7
  export { PageMessage, LoadingMessage, ErrorMessage } from "./components/PageStatus.js";
8
8
  export { ThemeProvider, useTheme } from "./theme/ThemeProvider.js";
9
9
  export { ThemeSelect } from "./theme/ThemeSelect.js";
10
- export { defaultPalette, themeVariableGroups, themeVariableKeys } from "./theme/palette.js";
10
+ export { defaultPalette } from "./theme/palette.js";
11
11
  export { createLocalThemeStore, createHttpThemeStore } from "./theme/store.js";
12
12
  export { serializeColors, parseColors, isHexColor, randomHex } from "./theme/clipboard.js";
13
13
  export { PopupProvider } from "./popup/PopupProvider.js";
@@ -1,5 +1,6 @@
1
1
  import type { ThemeColors } from "./types.js";
2
2
  export declare function serializeColors(colors: ThemeColors): string;
3
+ /** Reads every `--name: #rrggbb` declaration. Filtering is left to the caller. */
3
4
  export declare function parseColors(text: string): ThemeColors;
4
5
  export declare function isHexColor(value: string): boolean;
5
6
  export declare function randomHex(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../../src/theme/clipboard.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAI7C,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAK3D;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAOrD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,wBAAgB,SAAS,IAAI,MAAM,CAOlC"}
1
+ {"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../../src/theme/clipboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAK7C,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAG3D;AAED,kFAAkF;AAClF,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAMrD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,wBAAgB,SAAS,IAAI,MAAM,CAOlC"}
@@ -1,17 +1,14 @@
1
- import { themeVariableKeys } from "./palette.js";
2
1
  const HEX = /^#[0-9a-fA-F]{6}$/;
2
+ const DECLARATION = /(--[a-zA-Z0-9-]+)\s*:\s*(#[0-9a-fA-F]{6})/g;
3
3
  export function serializeColors(colors) {
4
- const lines = themeVariableKeys
5
- .filter(key => colors[key])
6
- .map(key => ` ${key}: ${colors[key]};`);
4
+ const lines = Object.entries(colors).map(([key, value]) => ` ${key}: ${value};`);
7
5
  return `:root {\n${lines.join("\n")}\n}`;
8
6
  }
7
+ /** Reads every `--name: #rrggbb` declaration. Filtering is left to the caller. */
9
8
  export function parseColors(text) {
10
9
  const parsed = {};
11
- for (const key of themeVariableKeys) {
12
- const match = new RegExp(`${key}\s*:\s*(#[0-9a-fA-F]{6})`).exec(text);
13
- if (match)
14
- parsed[key] = match[1];
10
+ for (const [, key, value] of text.matchAll(DECLARATION)) {
11
+ parsed[key] = value;
15
12
  }
16
13
  return parsed;
17
14
  }
@@ -1,12 +1,3 @@
1
1
  import type { ThemeColors } from "./types.js";
2
2
  export declare const defaultPalette: ThemeColors;
3
- export type ThemeVariableGroup = {
4
- label: string;
5
- variables: Array<{
6
- key: string;
7
- label: string;
8
- }>;
9
- };
10
- export declare const themeVariableGroups: ThemeVariableGroup[];
11
- export declare const themeVariableKeys: string[];
12
3
  //# sourceMappingURL=palette.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"palette.d.ts","sourceRoot":"","sources":["../../src/theme/palette.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,eAAO,MAAM,cAAc,EAAE,WAsB5B,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACjD,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,kBAAkB,EA+CnD,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,MAAM,EAErC,CAAA"}
1
+ {"version":3,"file":"palette.d.ts","sourceRoot":"","sources":["../../src/theme/palette.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAK7C,eAAO,MAAM,cAAc,EAAE,WAW5B,CAAA"}
@@ -1,72 +1,15 @@
1
+ // Base vocabulary: every variable the components in this package read, plus the
2
+ // hover shade a consumer is expected to theme. A project with its own vocabulary
3
+ // extends this and passes the result to ThemeProvider as basePalette.
1
4
  export const defaultPalette = {
2
5
  "--color-bg": "#ffffff",
3
6
  "--color-surface": "#f8fafc",
7
+ "--color-border": "#e2e8f0",
4
8
  "--color-text": "#1a1a1a",
5
9
  "--color-text-muted": "#64748b",
6
10
  "--color-primary": "#6366f1",
7
11
  "--color-primary-hover": "#4f46e5",
8
12
  "--color-on-primary": "#ffffff",
9
- "--color-primary-soft": "#e0e7ff",
10
- "--color-border": "#e2e8f0",
11
13
  "--color-danger": "#dc2626",
12
14
  "--color-danger-soft": "#fee2e2",
13
- "--color-mindmap-red": "#dc2626",
14
- "--color-mindmap-red-soft": "#fee2e2",
15
- "--color-mindmap-orange": "#ea580c",
16
- "--color-mindmap-orange-soft": "#ffedd5",
17
- "--color-mindmap-green": "#16a34a",
18
- "--color-mindmap-green-soft": "#dcfce7",
19
- "--color-mindmap-blue": "#2563eb",
20
- "--color-mindmap-blue-soft": "#dbeafe",
21
- "--color-mindmap-purple": "#9333ea",
22
- "--color-mindmap-purple-soft": "#f3e8ff",
23
15
  };
24
- export const themeVariableGroups = [
25
- {
26
- label: "Surfaces",
27
- variables: [
28
- { key: "--color-bg", label: "Background" },
29
- { key: "--color-surface", label: "Surface" },
30
- { key: "--color-border", label: "Border" },
31
- ],
32
- },
33
- {
34
- label: "Text",
35
- variables: [
36
- { key: "--color-text", label: "Text" },
37
- { key: "--color-text-muted", label: "Muted text" },
38
- ],
39
- },
40
- {
41
- label: "Primary",
42
- variables: [
43
- { key: "--color-primary", label: "Primary" },
44
- { key: "--color-primary-hover", label: "Primary (hover)" },
45
- { key: "--color-on-primary", label: "On primary" },
46
- { key: "--color-primary-soft", label: "Primary (soft)" },
47
- ],
48
- },
49
- {
50
- label: "Danger",
51
- variables: [
52
- { key: "--color-danger", label: "Danger" },
53
- { key: "--color-danger-soft", label: "Danger (soft)" },
54
- ],
55
- },
56
- {
57
- label: "Mindmap",
58
- variables: [
59
- { key: "--color-mindmap-red", label: "Red" },
60
- { key: "--color-mindmap-red-soft", label: "Red (soft)" },
61
- { key: "--color-mindmap-orange", label: "Orange" },
62
- { key: "--color-mindmap-orange-soft", label: "Orange (soft)" },
63
- { key: "--color-mindmap-green", label: "Green" },
64
- { key: "--color-mindmap-green-soft", label: "Green (soft)" },
65
- { key: "--color-mindmap-blue", label: "Blue" },
66
- { key: "--color-mindmap-blue-soft", label: "Blue (soft)" },
67
- { key: "--color-mindmap-purple", label: "Purple" },
68
- { key: "--color-mindmap-purple-soft", label: "Purple (soft)" },
69
- ],
70
- },
71
- ];
72
- export const themeVariableKeys = themeVariableGroups.flatMap(group => group.variables.map(variable => variable.key));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@-reddacted-/react-ui",
3
- "version": "0.2.2",
3
+ "version": "0.2.3",
4
4
  "description": "Theming system, Modal, Button, ColorPicker, NavBar and fetch error popups for React",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",