@dataverse-kit/fluent-theme 0.2.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.
package/README.md ADDED
@@ -0,0 +1,41 @@
1
+ # @dataverse-kit/fluent-theme
2
+
3
+ The Dynamics CE **Fluent UI v9** theme, declared once.
4
+
5
+ ```bash
6
+ npm install @dataverse-kit/fluent-theme @fluentui/react-components
7
+ ```
8
+
9
+ ```tsx
10
+ import { FluentProvider } from '@fluentui/react-components';
11
+ import { createDynamicsV9Theme } from '@dataverse-kit/fluent-theme';
12
+
13
+ <FluentProvider theme={createDynamicsV9Theme()}>{children}</FluentProvider>;
14
+ ```
15
+
16
+ ## Exports
17
+
18
+ | Export | What |
19
+ |---|---|
20
+ | `dynamicsBrandRamp` | The 16-slot `BrandVariants` ramp. Slots 60/70/80 are pinned to `@dataverse-kit/design-tokens`' brand triad (`#005a9e` / `#106ebe` / `#0078d4`), so the v9 brand colours come from the same source as the v8 skins'. |
21
+ | `createDynamicsV9Theme(brand?)` | Light theme. Pass your own `BrandVariants` to rebrand. |
22
+ | `createDynamicsV9DarkTheme(brand?)` | Dark theme, same ramp. |
23
+ | `dynamicsV9Theme` / `dynamicsV9DarkTheme` | Memoized module singletons. |
24
+
25
+ ## Why this is a package
26
+
27
+ The ramp and the three builders were declared **twice** — `surface-kit/src/v9/theme.ts` and
28
+ `grid-kit/src/v9/theme.ts`, byte-identical across all sixteen slots, each with a docstring
29
+ asserting it was the canonical one. Both are now thin re-exports of this package.
30
+
31
+ It is not part of `@dataverse-kit/design-tokens` because the builders need `createLightTheme`
32
+ from `@fluentui/react-components`, and design-tokens is zero-dependency by rule. Moving only the
33
+ ramp there would have de-duplicated one export of four and left the other three duplicated.
34
+
35
+ `src/__tests__/singleDeclaration.test.ts` is the gate that keeps this true: a source scan over
36
+ `packages/*/src` asserting the ramp is declared exactly once. It runs in CI.
37
+
38
+ ## Consumers
39
+
40
+ `@dataverse-kit/grid-kit/v9` · `@dataverse-kit/surface-kit/v9` — both re-export all four symbols,
41
+ so existing imports from those packages are unchanged.
package/dist/index.cjs ADDED
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/index.ts
21
+ var src_exports = {};
22
+ __export(src_exports, {
23
+ createDynamicsV9DarkTheme: () => createDynamicsV9DarkTheme,
24
+ createDynamicsV9Theme: () => createDynamicsV9Theme,
25
+ dynamicsBrandRamp: () => dynamicsBrandRamp,
26
+ dynamicsV9DarkTheme: () => dynamicsV9DarkTheme,
27
+ dynamicsV9Theme: () => dynamicsV9Theme
28
+ });
29
+ module.exports = __toCommonJS(src_exports);
30
+
31
+ // src/brand.ts
32
+ var import_design_tokens = require("@dataverse-kit/design-tokens");
33
+ var dynamicsBrandRamp = {
34
+ 10: "#061724",
35
+ 20: "#082338",
36
+ 30: "#0a2e4a",
37
+ 40: "#0c3b5e",
38
+ 50: "#0e4775",
39
+ 60: import_design_tokens.colors.brandDark,
40
+ // #005a9e — colorBrandBackgroundPressed
41
+ 70: import_design_tokens.colors.brandHover,
42
+ // #106ebe — colorBrandBackground(Hover/Selected)
43
+ 80: import_design_tokens.colors.brand,
44
+ // #0078d4 — colorBrandBackground + colorBrandForeground1 (the Dynamics blue)
45
+ 90: "#2886de",
46
+ 100: "#479ef5",
47
+ 110: "#62abf5",
48
+ 120: "#77b7f7",
49
+ 130: "#96c6fa",
50
+ 140: "#b4d6fa",
51
+ 150: "#cfe4fa",
52
+ 160: "#ebf3fc"
53
+ };
54
+
55
+ // src/theme.ts
56
+ var import_react_components = require("@fluentui/react-components");
57
+ var defaultBrand = dynamicsBrandRamp;
58
+ function createDynamicsV9Theme(brand = defaultBrand) {
59
+ return (0, import_react_components.createLightTheme)(brand);
60
+ }
61
+ function createDynamicsV9DarkTheme(brand = defaultBrand) {
62
+ return (0, import_react_components.createDarkTheme)(brand);
63
+ }
64
+ var dynamicsV9Theme = createDynamicsV9Theme();
65
+ var dynamicsV9DarkTheme = createDynamicsV9DarkTheme();
66
+ // Annotate the CommonJS export names for ESM import in node:
67
+ 0 && (module.exports = {
68
+ createDynamicsV9DarkTheme,
69
+ createDynamicsV9Theme,
70
+ dynamicsBrandRamp,
71
+ dynamicsV9DarkTheme,
72
+ dynamicsV9Theme
73
+ });
74
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/brand.ts","../src/theme.ts"],"sourcesContent":["// @dataverse-kit/fluent-theme — the Dynamics CE Fluent UI v9 theme, declared once.\n//\n// Consumed by grid-kit/v9, surface-kit/v9 and agent-kit. See ./brand for why this is a\n// package of its own rather than an addition to @dataverse-kit/design-tokens.\nexport { dynamicsBrandRamp } from './brand';\nexport {\n createDynamicsV9Theme,\n createDynamicsV9DarkTheme,\n dynamicsV9Theme,\n dynamicsV9DarkTheme,\n} from './theme';\n","// The Dynamics CE brand ramp for Fluent UI v9 — THE single declaration.\n//\n// ★ This package exists because this ramp, and the three builders beside it in ./theme,\n// were declared TWICE: packages/surface-kit/src/v9/theme.ts and\n// packages/grid-kit/src/v9/theme.ts, byte-identical across all 16 slots, each with a\n// docstring asserting it was the canonical one. grid-kit's copy even explained itself\n// (\"grid-kit does not depend on @dataverse-kit/design-tokens, so the triad is inlined\n// here\") — which is exactly the shape .claude/rules/verification-lessons.md §4 warns\n// about: a fix applied to one of N copies leaves the other N-1 actively defended by\n// their own comments.\n//\n// ★ It is NOT in @dataverse-kit/design-tokens, which would otherwise be the obvious home,\n// because the builders in ./theme need `createLightTheme` from @fluentui/react-components\n// and design-tokens is zero-dependency by rule (its tsconfig pins `\"paths\": {}`). Moving\n// the ramp alone would have de-duplicated one export of four and left the other three\n// duplicated — so the ramp and its builders travel together, here.\nimport { colors } from '@dataverse-kit/design-tokens';\n\n/**\n * The Fluent web brand ramp (a blue family that already matches Dynamics CE), with the\n * three most-visible shades pinned to the canonical design-tokens brand triad so the v9\n * brand colours come from the same source as the v8 skins'.\n *\n * ★ `BrandVariants` is a structural `Record<Brands, string>` with sixteen required\n * numeric-literal keys (10…160) — no nominal branding. It is typed here by inference\n * rather than as `Record<number, string>`: an index signature does NOT satisfy those\n * sixteen required properties, so that annotation would fail at every `createLightTheme`\n * call site. `theme.ts` asserts the assignability for real.\n */\nexport const dynamicsBrandRamp = {\n 10: '#061724',\n 20: '#082338',\n 30: '#0a2e4a',\n 40: '#0c3b5e',\n 50: '#0e4775',\n 60: colors.brandDark, // #005a9e — colorBrandBackgroundPressed\n 70: colors.brandHover, // #106ebe — colorBrandBackground(Hover/Selected)\n 80: colors.brand, // #0078d4 — colorBrandBackground + colorBrandForeground1 (the Dynamics blue)\n 90: '#2886de',\n 100: '#479ef5',\n 110: '#62abf5',\n 120: '#77b7f7',\n 130: '#96c6fa',\n 140: '#b4d6fa',\n 150: '#cfe4fa',\n 160: '#ebf3fc',\n} as const;\n","// The Dynamics CE Fluent v9 theme builders — the v9 counterpart of surface-kit's v8\n// `createDynamicsTheme()`. Both feed the SAME brand triad (brand / brandHover / brandDark)\n// into their respective theme factories, so a Dynamics-blue button is #0078d4 whichever\n// skin renders it.\nimport {\n createLightTheme,\n createDarkTheme,\n type BrandVariants,\n type Theme,\n} from '@fluentui/react-components';\nimport { dynamicsBrandRamp } from './brand';\n\n// ★ The assignability check that makes ./brand's inferred type safe. If someone re-annotates\n// the ramp as `Record<number, string>` (an index signature, which does not satisfy\n// BrandVariants' sixteen required literal keys) this line fails to compile — at the\n// declaration, not at some downstream consumer's call site.\nconst defaultBrand: BrandVariants = dynamicsBrandRamp;\n\n/**\n * Build a Fluent v9 `Theme` for the Dynamics surfaces. Defaults to the Dynamics-blue brand\n * ramp; pass a custom `BrandVariants` (e.g. from your org's brand) to override.\n * Wrap the app or subtree in `<FluentProvider theme={createDynamicsV9Theme()}>`.\n */\nexport function createDynamicsV9Theme(brand: BrandVariants = defaultBrand): Theme {\n return createLightTheme(brand);\n}\n\n/** Dark-mode variant of the Dynamics v9 theme (same brand ramp). */\nexport function createDynamicsV9DarkTheme(brand: BrandVariants = defaultBrand): Theme {\n return createDarkTheme(brand);\n}\n\n/** The default light Dynamics v9 theme (memoized module singleton). */\nexport const dynamicsV9Theme: Theme = createDynamicsV9Theme();\n\n/** The default dark Dynamics v9 theme (memoized module singleton). */\nexport const dynamicsV9DarkTheme: Theme = createDynamicsV9DarkTheme();\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACgBA,2BAAuB;AAahB,IAAM,oBAAoB;AAAA,EAC/B,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI,4BAAO;AAAA;AAAA,EACX,IAAI,4BAAO;AAAA;AAAA,EACX,IAAI,4BAAO;AAAA;AAAA,EACX,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACP;;;AC1CA,8BAKO;AAOP,IAAM,eAA8B;AAO7B,SAAS,sBAAsB,QAAuB,cAAqB;AAChF,aAAO,0CAAiB,KAAK;AAC/B;AAGO,SAAS,0BAA0B,QAAuB,cAAqB;AACpF,aAAO,yCAAgB,KAAK;AAC9B;AAGO,IAAM,kBAAyB,sBAAsB;AAGrD,IAAM,sBAA6B,0BAA0B;","names":[]}
@@ -0,0 +1,46 @@
1
+ import { BrandVariants, Theme } from '@fluentui/react-components';
2
+
3
+ /**
4
+ * The Fluent web brand ramp (a blue family that already matches Dynamics CE), with the
5
+ * three most-visible shades pinned to the canonical design-tokens brand triad so the v9
6
+ * brand colours come from the same source as the v8 skins'.
7
+ *
8
+ * ★ `BrandVariants` is a structural `Record<Brands, string>` with sixteen required
9
+ * numeric-literal keys (10…160) — no nominal branding. It is typed here by inference
10
+ * rather than as `Record<number, string>`: an index signature does NOT satisfy those
11
+ * sixteen required properties, so that annotation would fail at every `createLightTheme`
12
+ * call site. `theme.ts` asserts the assignability for real.
13
+ */
14
+ declare const dynamicsBrandRamp: {
15
+ readonly 10: "#061724";
16
+ readonly 20: "#082338";
17
+ readonly 30: "#0a2e4a";
18
+ readonly 40: "#0c3b5e";
19
+ readonly 50: "#0e4775";
20
+ readonly 60: "#005a9e";
21
+ readonly 70: "#106ebe";
22
+ readonly 80: "#0078d4";
23
+ readonly 90: "#2886de";
24
+ readonly 100: "#479ef5";
25
+ readonly 110: "#62abf5";
26
+ readonly 120: "#77b7f7";
27
+ readonly 130: "#96c6fa";
28
+ readonly 140: "#b4d6fa";
29
+ readonly 150: "#cfe4fa";
30
+ readonly 160: "#ebf3fc";
31
+ };
32
+
33
+ /**
34
+ * Build a Fluent v9 `Theme` for the Dynamics surfaces. Defaults to the Dynamics-blue brand
35
+ * ramp; pass a custom `BrandVariants` (e.g. from your org's brand) to override.
36
+ * Wrap the app or subtree in `<FluentProvider theme={createDynamicsV9Theme()}>`.
37
+ */
38
+ declare function createDynamicsV9Theme(brand?: BrandVariants): Theme;
39
+ /** Dark-mode variant of the Dynamics v9 theme (same brand ramp). */
40
+ declare function createDynamicsV9DarkTheme(brand?: BrandVariants): Theme;
41
+ /** The default light Dynamics v9 theme (memoized module singleton). */
42
+ declare const dynamicsV9Theme: Theme;
43
+ /** The default dark Dynamics v9 theme (memoized module singleton). */
44
+ declare const dynamicsV9DarkTheme: Theme;
45
+
46
+ export { createDynamicsV9DarkTheme, createDynamicsV9Theme, dynamicsBrandRamp, dynamicsV9DarkTheme, dynamicsV9Theme };
@@ -0,0 +1,46 @@
1
+ import { BrandVariants, Theme } from '@fluentui/react-components';
2
+
3
+ /**
4
+ * The Fluent web brand ramp (a blue family that already matches Dynamics CE), with the
5
+ * three most-visible shades pinned to the canonical design-tokens brand triad so the v9
6
+ * brand colours come from the same source as the v8 skins'.
7
+ *
8
+ * ★ `BrandVariants` is a structural `Record<Brands, string>` with sixteen required
9
+ * numeric-literal keys (10…160) — no nominal branding. It is typed here by inference
10
+ * rather than as `Record<number, string>`: an index signature does NOT satisfy those
11
+ * sixteen required properties, so that annotation would fail at every `createLightTheme`
12
+ * call site. `theme.ts` asserts the assignability for real.
13
+ */
14
+ declare const dynamicsBrandRamp: {
15
+ readonly 10: "#061724";
16
+ readonly 20: "#082338";
17
+ readonly 30: "#0a2e4a";
18
+ readonly 40: "#0c3b5e";
19
+ readonly 50: "#0e4775";
20
+ readonly 60: "#005a9e";
21
+ readonly 70: "#106ebe";
22
+ readonly 80: "#0078d4";
23
+ readonly 90: "#2886de";
24
+ readonly 100: "#479ef5";
25
+ readonly 110: "#62abf5";
26
+ readonly 120: "#77b7f7";
27
+ readonly 130: "#96c6fa";
28
+ readonly 140: "#b4d6fa";
29
+ readonly 150: "#cfe4fa";
30
+ readonly 160: "#ebf3fc";
31
+ };
32
+
33
+ /**
34
+ * Build a Fluent v9 `Theme` for the Dynamics surfaces. Defaults to the Dynamics-blue brand
35
+ * ramp; pass a custom `BrandVariants` (e.g. from your org's brand) to override.
36
+ * Wrap the app or subtree in `<FluentProvider theme={createDynamicsV9Theme()}>`.
37
+ */
38
+ declare function createDynamicsV9Theme(brand?: BrandVariants): Theme;
39
+ /** Dark-mode variant of the Dynamics v9 theme (same brand ramp). */
40
+ declare function createDynamicsV9DarkTheme(brand?: BrandVariants): Theme;
41
+ /** The default light Dynamics v9 theme (memoized module singleton). */
42
+ declare const dynamicsV9Theme: Theme;
43
+ /** The default dark Dynamics v9 theme (memoized module singleton). */
44
+ declare const dynamicsV9DarkTheme: Theme;
45
+
46
+ export { createDynamicsV9DarkTheme, createDynamicsV9Theme, dynamicsBrandRamp, dynamicsV9DarkTheme, dynamicsV9Theme };
package/dist/index.mjs ADDED
@@ -0,0 +1,46 @@
1
+ // src/brand.ts
2
+ import { colors } from "@dataverse-kit/design-tokens";
3
+ var dynamicsBrandRamp = {
4
+ 10: "#061724",
5
+ 20: "#082338",
6
+ 30: "#0a2e4a",
7
+ 40: "#0c3b5e",
8
+ 50: "#0e4775",
9
+ 60: colors.brandDark,
10
+ // #005a9e — colorBrandBackgroundPressed
11
+ 70: colors.brandHover,
12
+ // #106ebe — colorBrandBackground(Hover/Selected)
13
+ 80: colors.brand,
14
+ // #0078d4 — colorBrandBackground + colorBrandForeground1 (the Dynamics blue)
15
+ 90: "#2886de",
16
+ 100: "#479ef5",
17
+ 110: "#62abf5",
18
+ 120: "#77b7f7",
19
+ 130: "#96c6fa",
20
+ 140: "#b4d6fa",
21
+ 150: "#cfe4fa",
22
+ 160: "#ebf3fc"
23
+ };
24
+
25
+ // src/theme.ts
26
+ import {
27
+ createLightTheme,
28
+ createDarkTheme
29
+ } from "@fluentui/react-components";
30
+ var defaultBrand = dynamicsBrandRamp;
31
+ function createDynamicsV9Theme(brand = defaultBrand) {
32
+ return createLightTheme(brand);
33
+ }
34
+ function createDynamicsV9DarkTheme(brand = defaultBrand) {
35
+ return createDarkTheme(brand);
36
+ }
37
+ var dynamicsV9Theme = createDynamicsV9Theme();
38
+ var dynamicsV9DarkTheme = createDynamicsV9DarkTheme();
39
+ export {
40
+ createDynamicsV9DarkTheme,
41
+ createDynamicsV9Theme,
42
+ dynamicsBrandRamp,
43
+ dynamicsV9DarkTheme,
44
+ dynamicsV9Theme
45
+ };
46
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/brand.ts","../src/theme.ts"],"sourcesContent":["// The Dynamics CE brand ramp for Fluent UI v9 — THE single declaration.\n//\n// ★ This package exists because this ramp, and the three builders beside it in ./theme,\n// were declared TWICE: packages/surface-kit/src/v9/theme.ts and\n// packages/grid-kit/src/v9/theme.ts, byte-identical across all 16 slots, each with a\n// docstring asserting it was the canonical one. grid-kit's copy even explained itself\n// (\"grid-kit does not depend on @dataverse-kit/design-tokens, so the triad is inlined\n// here\") — which is exactly the shape .claude/rules/verification-lessons.md §4 warns\n// about: a fix applied to one of N copies leaves the other N-1 actively defended by\n// their own comments.\n//\n// ★ It is NOT in @dataverse-kit/design-tokens, which would otherwise be the obvious home,\n// because the builders in ./theme need `createLightTheme` from @fluentui/react-components\n// and design-tokens is zero-dependency by rule (its tsconfig pins `\"paths\": {}`). Moving\n// the ramp alone would have de-duplicated one export of four and left the other three\n// duplicated — so the ramp and its builders travel together, here.\nimport { colors } from '@dataverse-kit/design-tokens';\n\n/**\n * The Fluent web brand ramp (a blue family that already matches Dynamics CE), with the\n * three most-visible shades pinned to the canonical design-tokens brand triad so the v9\n * brand colours come from the same source as the v8 skins'.\n *\n * ★ `BrandVariants` is a structural `Record<Brands, string>` with sixteen required\n * numeric-literal keys (10…160) — no nominal branding. It is typed here by inference\n * rather than as `Record<number, string>`: an index signature does NOT satisfy those\n * sixteen required properties, so that annotation would fail at every `createLightTheme`\n * call site. `theme.ts` asserts the assignability for real.\n */\nexport const dynamicsBrandRamp = {\n 10: '#061724',\n 20: '#082338',\n 30: '#0a2e4a',\n 40: '#0c3b5e',\n 50: '#0e4775',\n 60: colors.brandDark, // #005a9e — colorBrandBackgroundPressed\n 70: colors.brandHover, // #106ebe — colorBrandBackground(Hover/Selected)\n 80: colors.brand, // #0078d4 — colorBrandBackground + colorBrandForeground1 (the Dynamics blue)\n 90: '#2886de',\n 100: '#479ef5',\n 110: '#62abf5',\n 120: '#77b7f7',\n 130: '#96c6fa',\n 140: '#b4d6fa',\n 150: '#cfe4fa',\n 160: '#ebf3fc',\n} as const;\n","// The Dynamics CE Fluent v9 theme builders — the v9 counterpart of surface-kit's v8\n// `createDynamicsTheme()`. Both feed the SAME brand triad (brand / brandHover / brandDark)\n// into their respective theme factories, so a Dynamics-blue button is #0078d4 whichever\n// skin renders it.\nimport {\n createLightTheme,\n createDarkTheme,\n type BrandVariants,\n type Theme,\n} from '@fluentui/react-components';\nimport { dynamicsBrandRamp } from './brand';\n\n// ★ The assignability check that makes ./brand's inferred type safe. If someone re-annotates\n// the ramp as `Record<number, string>` (an index signature, which does not satisfy\n// BrandVariants' sixteen required literal keys) this line fails to compile — at the\n// declaration, not at some downstream consumer's call site.\nconst defaultBrand: BrandVariants = dynamicsBrandRamp;\n\n/**\n * Build a Fluent v9 `Theme` for the Dynamics surfaces. Defaults to the Dynamics-blue brand\n * ramp; pass a custom `BrandVariants` (e.g. from your org's brand) to override.\n * Wrap the app or subtree in `<FluentProvider theme={createDynamicsV9Theme()}>`.\n */\nexport function createDynamicsV9Theme(brand: BrandVariants = defaultBrand): Theme {\n return createLightTheme(brand);\n}\n\n/** Dark-mode variant of the Dynamics v9 theme (same brand ramp). */\nexport function createDynamicsV9DarkTheme(brand: BrandVariants = defaultBrand): Theme {\n return createDarkTheme(brand);\n}\n\n/** The default light Dynamics v9 theme (memoized module singleton). */\nexport const dynamicsV9Theme: Theme = createDynamicsV9Theme();\n\n/** The default dark Dynamics v9 theme (memoized module singleton). */\nexport const dynamicsV9DarkTheme: Theme = createDynamicsV9DarkTheme();\n"],"mappings":";AAgBA,SAAS,cAAc;AAahB,IAAM,oBAAoB;AAAA,EAC/B,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI,OAAO;AAAA;AAAA,EACX,IAAI,OAAO;AAAA;AAAA,EACX,IAAI,OAAO;AAAA;AAAA,EACX,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACP;;;AC1CA;AAAA,EACE;AAAA,EACA;AAAA,OAGK;AAOP,IAAM,eAA8B;AAO7B,SAAS,sBAAsB,QAAuB,cAAqB;AAChF,SAAO,iBAAiB,KAAK;AAC/B;AAGO,SAAS,0BAA0B,QAAuB,cAAqB;AACpF,SAAO,gBAAgB,KAAK;AAC9B;AAGO,IAAM,kBAAyB,sBAAsB;AAGrD,IAAM,sBAA6B,0BAA0B;","names":[]}
package/package.json ADDED
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "@dataverse-kit/fluent-theme",
3
+ "version": "0.2.0",
4
+ "license": "MIT",
5
+ "description": "The Dynamics CE Fluent UI v9 theme, in one place: the `dynamicsBrandRamp` BrandVariants ramp (60/70/80 pinned to the canonical @dataverse-kit/design-tokens brand triad) plus the light/dark theme builders. Consumed by grid-kit/v9, surface-kit/v9 and agent-kit so a Dynamics-blue accent is #0078d4 from ONE declaration.",
6
+ "type": "module",
7
+ "main": "./dist/index.cjs",
8
+ "module": "./dist/index.mjs",
9
+ "types": "./dist/index.d.ts",
10
+ "exports": {
11
+ ".": {
12
+ "types": "./dist/index.d.ts",
13
+ "import": "./dist/index.mjs",
14
+ "require": "./dist/index.cjs"
15
+ }
16
+ },
17
+ "files": [
18
+ "dist"
19
+ ],
20
+ "sideEffects": false,
21
+ "scripts": {
22
+ "prepublishOnly": "npm run build",
23
+ "build": "tsup",
24
+ "dev": "tsup --watch",
25
+ "test": "vitest run",
26
+ "test:watch": "vitest",
27
+ "typecheck": "tsc --noEmit",
28
+ "lint": "eslint src --ext .ts,.tsx",
29
+ "lint:fix": "eslint src --ext .ts,.tsx --fix",
30
+ "clean": "rimraf dist coverage tsconfig.tsbuildinfo"
31
+ },
32
+ "dependencies": {
33
+ "@dataverse-kit/design-tokens": "^0.1.1"
34
+ },
35
+ "peerDependencies": {
36
+ "@fluentui/react-components": "^9.46.2"
37
+ },
38
+ "devDependencies": {
39
+ "@fluentui/react-components": "^9.46.2",
40
+ "rimraf": "^5.0.5",
41
+ "tsup": "^8.0.0",
42
+ "typescript": "^5.3.3",
43
+ "vitest": "^1.6.0"
44
+ },
45
+ "publishConfig": {
46
+ "access": "public"
47
+ }
48
+ }