@auto-engineer/generate-react-client 1.63.0 → 1.65.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 (144) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/dist/starter/.storybook/main.ts +17 -22
  3. package/dist/starter/.storybook/manager-head.html +31 -31
  4. package/dist/starter/.storybook/manager.ts +133 -133
  5. package/dist/starter/.storybook/preview-head.html +12 -12
  6. package/dist/starter/.storybook/preview.tsx +79 -79
  7. package/dist/starter/biome.json +126 -0
  8. package/dist/starter/codegen.ts +11 -11
  9. package/dist/starter/components.json +27 -27
  10. package/dist/starter/package.json +86 -80
  11. package/dist/starter/public/mockServiceWorker.js +261 -261
  12. package/dist/starter/scripts/build-component-db.ts +17 -20
  13. package/dist/starter/src/App.tsx +15 -17
  14. package/dist/starter/src/components/ui/Accordion.stories.tsx +35 -35
  15. package/dist/starter/src/components/ui/Accordion.tsx +33 -33
  16. package/dist/starter/src/components/ui/Alert.stories.tsx +15 -15
  17. package/dist/starter/src/components/ui/Alert.tsx +32 -32
  18. package/dist/starter/src/components/ui/AlertDialog.stories.tsx +50 -50
  19. package/dist/starter/src/components/ui/AlertDialog.tsx +114 -115
  20. package/dist/starter/src/components/ui/AspectRatio.stories.tsx +20 -20
  21. package/dist/starter/src/components/ui/AspectRatio.tsx +1 -1
  22. package/dist/starter/src/components/ui/Avatar.stories.tsx +27 -27
  23. package/dist/starter/src/components/ui/Avatar.tsx +63 -63
  24. package/dist/starter/src/components/ui/Badge.stories.tsx +14 -14
  25. package/dist/starter/src/components/ui/Badge.tsx +27 -27
  26. package/dist/starter/src/components/ui/Breadcrumb.stories.tsx +38 -38
  27. package/dist/starter/src/components/ui/Breadcrumb.tsx +63 -62
  28. package/dist/starter/src/components/ui/Button.stories.tsx +55 -55
  29. package/dist/starter/src/components/ui/Button.tsx +49 -49
  30. package/dist/starter/src/components/ui/ButtonGroup.stories.tsx +17 -17
  31. package/dist/starter/src/components/ui/ButtonGroup.tsx +52 -53
  32. package/dist/starter/src/components/ui/Calendar.stories.tsx +20 -19
  33. package/dist/starter/src/components/ui/Calendar.tsx +142 -143
  34. package/dist/starter/src/components/ui/Card.stories.tsx +29 -29
  35. package/dist/starter/src/components/ui/Card.tsx +31 -31
  36. package/dist/starter/src/components/ui/Carousel.stories.tsx +41 -41
  37. package/dist/starter/src/components/ui/Carousel.tsx +171 -172
  38. package/dist/starter/src/components/ui/Chart.stories.tsx +21 -21
  39. package/dist/starter/src/components/ui/Chart.tsx +244 -247
  40. package/dist/starter/src/components/ui/Checkbox.stories.tsx +11 -11
  41. package/dist/starter/src/components/ui/Checkbox.tsx +18 -18
  42. package/dist/starter/src/components/ui/Collapsible.stories.tsx +40 -40
  43. package/dist/starter/src/components/ui/Collapsible.tsx +3 -3
  44. package/dist/starter/src/components/ui/Combobox.stories.tsx +48 -48
  45. package/dist/starter/src/components/ui/Combobox.tsx +204 -205
  46. package/dist/starter/src/components/ui/Command.stories.tsx +55 -55
  47. package/dist/starter/src/components/ui/Command.tsx +102 -103
  48. package/dist/starter/src/components/ui/ContextMenu.stories.tsx +52 -52
  49. package/dist/starter/src/components/ui/ContextMenu.tsx +151 -151
  50. package/dist/starter/src/components/ui/DesignSystem-Colors.stories.tsx +92 -92
  51. package/dist/starter/src/components/ui/DesignSystem-Layout.stories.tsx +139 -139
  52. package/dist/starter/src/components/ui/DesignSystem-Overview.stories.tsx +676 -657
  53. package/dist/starter/src/components/ui/DesignSystem-Typography.stories.tsx +59 -59
  54. package/dist/starter/src/components/ui/Dialog.stories.tsx +56 -56
  55. package/dist/starter/src/components/ui/Dialog.tsx +97 -98
  56. package/dist/starter/src/components/ui/Direction.stories.tsx +20 -20
  57. package/dist/starter/src/components/ui/Direction.tsx +7 -7
  58. package/dist/starter/src/components/ui/Drawer.stories.tsx +54 -54
  59. package/dist/starter/src/components/ui/Drawer.tsx +70 -70
  60. package/dist/starter/src/components/ui/DropdownMenu.stories.tsx +58 -58
  61. package/dist/starter/src/components/ui/DropdownMenu.tsx +157 -157
  62. package/dist/starter/src/components/ui/Empty.stories.tsx +22 -22
  63. package/dist/starter/src/components/ui/Empty.tsx +58 -58
  64. package/dist/starter/src/components/ui/Field.stories.tsx +31 -31
  65. package/dist/starter/src/components/ui/Field.tsx +180 -181
  66. package/dist/starter/src/components/ui/Form.stories.tsx +29 -29
  67. package/dist/starter/src/components/ui/Form.tsx +93 -96
  68. package/dist/starter/src/components/ui/HoverCard.stories.tsx +34 -34
  69. package/dist/starter/src/components/ui/HoverCard.tsx +21 -21
  70. package/dist/starter/src/components/ui/Input.stories.tsx +18 -18
  71. package/dist/starter/src/components/ui/Input.tsx +14 -14
  72. package/dist/starter/src/components/ui/InputGroup.stories.tsx +34 -34
  73. package/dist/starter/src/components/ui/InputGroup.tsx +110 -111
  74. package/dist/starter/src/components/ui/InputOTP.stories.tsx +28 -28
  75. package/dist/starter/src/components/ui/InputOTP.tsx +43 -43
  76. package/dist/starter/src/components/ui/Item.stories.tsx +45 -45
  77. package/dist/starter/src/components/ui/Item.tsx +113 -114
  78. package/dist/starter/src/components/ui/Kbd.stories.tsx +31 -31
  79. package/dist/starter/src/components/ui/Kbd.tsx +11 -11
  80. package/dist/starter/src/components/ui/Label.stories.tsx +62 -62
  81. package/dist/starter/src/components/ui/Label.tsx +26 -25
  82. package/dist/starter/src/components/ui/Menubar.stories.tsx +62 -62
  83. package/dist/starter/src/components/ui/Menubar.tsx +173 -173
  84. package/dist/starter/src/components/ui/NativeSelect.stories.tsx +26 -26
  85. package/dist/starter/src/components/ui/NativeSelect.tsx +29 -29
  86. package/dist/starter/src/components/ui/NavigationMenu.stories.tsx +64 -64
  87. package/dist/starter/src/components/ui/NavigationMenu.tsx +103 -103
  88. package/dist/starter/src/components/ui/Pagination.stories.tsx +61 -61
  89. package/dist/starter/src/components/ui/Pagination.tsx +69 -71
  90. package/dist/starter/src/components/ui/Popover.stories.tsx +38 -38
  91. package/dist/starter/src/components/ui/Popover.tsx +25 -25
  92. package/dist/starter/src/components/ui/Progress.stories.tsx +9 -9
  93. package/dist/starter/src/components/ui/Progress.tsx +14 -14
  94. package/dist/starter/src/components/ui/RadioGroup.stories.tsx +35 -35
  95. package/dist/starter/src/components/ui/RadioGroup.tsx +19 -19
  96. package/dist/starter/src/components/ui/Resizable.stories.tsx +54 -54
  97. package/dist/starter/src/components/ui/Resizable.tsx +29 -29
  98. package/dist/starter/src/components/ui/ScrollArea.stories.tsx +27 -27
  99. package/dist/starter/src/components/ui/ScrollArea.tsx +34 -34
  100. package/dist/starter/src/components/ui/Select.stories.tsx +43 -43
  101. package/dist/starter/src/components/ui/Select.tsx +120 -120
  102. package/dist/starter/src/components/ui/Separator.stories.tsx +27 -27
  103. package/dist/starter/src/components/ui/Separator.tsx +17 -17
  104. package/dist/starter/src/components/ui/Sheet.stories.tsx +53 -53
  105. package/dist/starter/src/components/ui/Sheet.tsx +69 -69
  106. package/dist/starter/src/components/ui/Sidebar.stories.tsx +77 -77
  107. package/dist/starter/src/components/ui/Sidebar.tsx +563 -564
  108. package/dist/starter/src/components/ui/Skeleton.stories.tsx +25 -25
  109. package/dist/starter/src/components/ui/Skeleton.tsx +1 -1
  110. package/dist/starter/src/components/ui/Slider.stories.tsx +5 -5
  111. package/dist/starter/src/components/ui/Slider.tsx +45 -44
  112. package/dist/starter/src/components/ui/Sonner.stories.tsx +32 -32
  113. package/dist/starter/src/components/ui/Sonner.tsx +23 -23
  114. package/dist/starter/src/components/ui/Spinner.stories.tsx +8 -8
  115. package/dist/starter/src/components/ui/Spinner.tsx +1 -1
  116. package/dist/starter/src/components/ui/Switch.stories.tsx +16 -17
  117. package/dist/starter/src/components/ui/Switch.tsx +24 -24
  118. package/dist/starter/src/components/ui/Table.stories.tsx +50 -50
  119. package/dist/starter/src/components/ui/Table.tsx +45 -45
  120. package/dist/starter/src/components/ui/Tabs.stories.tsx +39 -39
  121. package/dist/starter/src/components/ui/Tabs.tsx +47 -47
  122. package/dist/starter/src/components/ui/Textarea.stories.tsx +9 -9
  123. package/dist/starter/src/components/ui/Textarea.tsx +11 -11
  124. package/dist/starter/src/components/ui/Toast.stories.tsx +77 -77
  125. package/dist/starter/src/components/ui/Toast.tsx +75 -75
  126. package/dist/starter/src/components/ui/Toaster.tsx +17 -19
  127. package/dist/starter/src/components/ui/Toggle.stories.tsx +20 -20
  128. package/dist/starter/src/components/ui/Toggle.tsx +26 -26
  129. package/dist/starter/src/components/ui/ToggleGroup.stories.tsx +41 -41
  130. package/dist/starter/src/components/ui/ToggleGroup.tsx +61 -62
  131. package/dist/starter/src/components/ui/Tooltip.stories.tsx +26 -26
  132. package/dist/starter/src/components/ui/Tooltip.tsx +24 -24
  133. package/dist/starter/src/gql/execute.ts +1 -1
  134. package/dist/starter/src/gql/fragment-masking.ts +1 -1
  135. package/dist/starter/src/gql/graphql.ts +3 -0
  136. package/dist/starter/src/hooks/use-mobile.ts +11 -11
  137. package/dist/starter/src/hooks/use-toast.ts +135 -135
  138. package/dist/starter/src/index.css +105 -105
  139. package/dist/starter/src/lib/utils.ts +1 -1
  140. package/dist/starter/src/main.tsx +4 -1
  141. package/dist/starter/tsconfig.app.json +24 -24
  142. package/dist/starter/tsconfig.json +8 -8
  143. package/dist/starter/vite.config.ts +38 -37
  144. package/package.json +3 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,50 @@
1
1
  # @auto-engineer/generate-react-client
2
2
 
3
+ ## 1.65.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`bd14e09`](https://github.com/BeOnAuto/auto-engineer/commit/bd14e09fa399e218348a4d0f334bc3423106f64a) Thanks [@osamanar](https://github.com/osamanar)! - - Fixed component generation in the React component implementer
8
+
9
+ - [`f3a6b66`](https://github.com/BeOnAuto/auto-engineer/commit/f3a6b662a35ae480d58a42d5207cb51d1e9106de) Thanks [@osamanar](https://github.com/osamanar)! - - Improved the starter template for React client generation
10
+
11
+ - [`e4ed42d`](https://github.com/BeOnAuto/auto-engineer/commit/e4ed42dac98562148efc5ae293841c36efa6c5c7) Thanks [@osamanar](https://github.com/osamanar)! - - Fixed type definitions in the React client generator
12
+
13
+ ### Patch Changes
14
+
15
+ - [`d5c985a`](https://github.com/BeOnAuto/auto-engineer/commit/d5c985a1a4bcd256f6456ecb69d9523ae66c2352) Thanks [@github-actions[bot]](https://github.com/github-actions%5Bbot%5D)! - - **server-generator-apollo-emmett**: remove stale QuestionnaireProgressStatus enum
16
+ - **server-generator-apollo-emmett**: regenerate shared/types.ts from scratch to prevent stale enums
17
+ - **global**: version packages
18
+ - **server-generator-apollo-emmett**: move burst 1 to DONE in ketchup plan
19
+ - **server-generator-apollo-emmett**: add ketchup plan for stale enums fix
20
+ - Updated dependencies [[`d5c985a`](https://github.com/BeOnAuto/auto-engineer/commit/d5c985a1a4bcd256f6456ecb69d9523ae66c2352), [`bd14e09`](https://github.com/BeOnAuto/auto-engineer/commit/bd14e09fa399e218348a4d0f334bc3423106f64a), [`f3a6b66`](https://github.com/BeOnAuto/auto-engineer/commit/f3a6b662a35ae480d58a42d5207cb51d1e9106de), [`e4ed42d`](https://github.com/BeOnAuto/auto-engineer/commit/e4ed42dac98562148efc5ae293841c36efa6c5c7)]:
21
+ - @auto-engineer/file-upload@1.65.0
22
+ - @auto-engineer/message-bus@1.65.0
23
+
24
+ ## 1.64.0
25
+
26
+ ### Minor Changes
27
+
28
+ - [`e34d090`](https://github.com/BeOnAuto/auto-engineer/commit/e34d090e4b0395ec87ff241dfc483530869108e9) Thanks [@github-actions[bot]](https://github.com/github-actions%5Bbot%5D)! - - **examples/typical**: updates auto config
29
+ - **packages/react-component-implementer**: fixes storybook not found
30
+ - **global**: version packages
31
+
32
+ ### Patch Changes
33
+
34
+ - [`d03809f`](https://github.com/BeOnAuto/auto-engineer/commit/d03809fc59b903ad18a3c6536661bd5e14205e54) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: add ketchup plan for stale enums fix
35
+
36
+ - [`37077d3`](https://github.com/BeOnAuto/auto-engineer/commit/37077d33d6bc319afc6b4a583d2dc4bdcd1e3998) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - Removed .env file from the typical example project to prevent environment secrets from being tracked in version control
37
+
38
+ - [`ab31e10`](https://github.com/BeOnAuto/auto-engineer/commit/ab31e10bdc9389b7e123d7425e3a3105894710b2) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: move burst 1 to DONE in ketchup plan
39
+
40
+ - [`0b27996`](https://github.com/BeOnAuto/auto-engineer/commit/0b27996df56fad5b38e78828de875c2091e5fd6d) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - Removed stale QuestionnaireProgressStatus enum that was no longer in use, preventing potential type conflicts in the Apollo Emmett server generator
41
+
42
+ - [`4bc755b`](https://github.com/BeOnAuto/auto-engineer/commit/4bc755b4187b30906c7272aa7c49af00dfae6c4a) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: regenerate shared/types.ts from scratch to prevent stale enums
43
+
44
+ - Updated dependencies [[`d03809f`](https://github.com/BeOnAuto/auto-engineer/commit/d03809fc59b903ad18a3c6536661bd5e14205e54), [`37077d3`](https://github.com/BeOnAuto/auto-engineer/commit/37077d33d6bc319afc6b4a583d2dc4bdcd1e3998), [`e34d090`](https://github.com/BeOnAuto/auto-engineer/commit/e34d090e4b0395ec87ff241dfc483530869108e9), [`ab31e10`](https://github.com/BeOnAuto/auto-engineer/commit/ab31e10bdc9389b7e123d7425e3a3105894710b2), [`0b27996`](https://github.com/BeOnAuto/auto-engineer/commit/0b27996df56fad5b38e78828de875c2091e5fd6d), [`4bc755b`](https://github.com/BeOnAuto/auto-engineer/commit/4bc755b4187b30906c7272aa7c49af00dfae6c4a)]:
45
+ - @auto-engineer/file-upload@1.64.0
46
+ - @auto-engineer/message-bus@1.64.0
47
+
3
48
  ## 1.63.0
4
49
 
5
50
  ### Minor Changes
@@ -1,24 +1,19 @@
1
- import { readFileSync } from "node:fs";
2
- import { dirname, join } from "node:path";
3
- import { fileURLToPath } from "node:url";
4
- import type { StorybookConfig } from "@storybook/react-vite";
1
+ import { readFileSync } from 'node:fs';
2
+ import { dirname, join } from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import type { StorybookConfig } from '@storybook/react-vite';
5
5
 
6
6
  const __dirname = dirname(fileURLToPath(import.meta.url));
7
- const managerHeadContent = readFileSync(
8
- join(__dirname, "manager-head.html"),
9
- "utf-8",
10
- );
7
+ const managerHeadContent = readFileSync(join(__dirname, 'manager-head.html'), 'utf-8');
11
8
 
12
- const isFastMode = process.env.STORYBOOK_FAST === "1";
9
+ const isFastMode = process.env.STORYBOOK_FAST === '1';
13
10
 
14
11
  const config: StorybookConfig = {
15
- stories: isFastMode
16
- ? ["../src/**/*.stories.@(ts|tsx)"]
17
- : ["../src/**/*.mdx", "../src/**/*.stories.@(ts|tsx)"],
12
+ stories: isFastMode ? ['../src/**/*.stories.@(ts|tsx)'] : ['../src/**/*.mdx', '../src/**/*.stories.@(ts|tsx)'],
18
13
  addons: [
19
- ...(isFastMode ? [] : [getAbsolutePath("@storybook/addon-docs")]),
14
+ ...(isFastMode ? [] : [getAbsolutePath('@storybook/addon-docs')]),
20
15
  {
21
- name: getAbsolutePath("@storybook/addon-mcp"),
16
+ name: getAbsolutePath('@storybook/addon-mcp'),
22
17
  options: {
23
18
  toolsets: {
24
19
  dev: true,
@@ -26,9 +21,9 @@ const config: StorybookConfig = {
26
21
  },
27
22
  },
28
23
  },
29
- getAbsolutePath("@vueless/storybook-dark-mode"),
24
+ getAbsolutePath('@vueless/storybook-dark-mode'),
30
25
  ],
31
- staticDirs: ["../public"],
26
+ staticDirs: ['../public'],
32
27
  features: {
33
28
  experimentalComponentsManifest: true,
34
29
  },
@@ -36,19 +31,19 @@ const config: StorybookConfig = {
36
31
  disableWhatsNewNotifications: true,
37
32
  },
38
33
  framework: {
39
- name: getAbsolutePath("@storybook/react-vite"),
34
+ name: getAbsolutePath('@storybook/react-vite'),
40
35
  options: {},
41
36
  },
42
37
  typescript: {
43
- reactDocgen: isFastMode ? false : "react-docgen-typescript",
38
+ reactDocgen: isFastMode ? false : 'react-docgen-typescript',
44
39
  reactDocgenTypescriptOptions: {
45
- tsconfigPath: join(__dirname, "../tsconfig.app.json"),
40
+ tsconfigPath: join(__dirname, '../tsconfig.app.json'),
46
41
  },
47
42
  },
48
43
  viteFinal: (config) => {
49
44
  config.server = {
50
45
  ...config.server,
51
- host: "0.0.0.0",
46
+ host: '0.0.0.0',
52
47
  allowedHosts: true,
53
48
  watch: {
54
49
  // Wait for files to stop being written before triggering HMR
@@ -61,7 +56,7 @@ const config: StorybookConfig = {
61
56
  };
62
57
  config.define = {
63
58
  ...config.define,
64
- "import.meta.env.STORYBOOK_FAST": JSON.stringify(isFastMode),
59
+ 'import.meta.env.STORYBOOK_FAST': JSON.stringify(isFastMode),
65
60
  };
66
61
  return config;
67
62
  },
@@ -70,6 +65,6 @@ const config: StorybookConfig = {
70
65
 
71
66
  export default config;
72
67
 
73
- function getAbsolutePath(value: string): any {
68
+ function getAbsolutePath(value: string): string {
74
69
  return dirname(fileURLToPath(import.meta.resolve(`${value}/package.json`)));
75
70
  }
@@ -1,5 +1,5 @@
1
1
  <script>
2
- (function() {
2
+ (() => {
3
3
  // Check localStorage for dark mode state before anything renders
4
4
  var isDark = false;
5
5
  try {
@@ -8,7 +8,7 @@
8
8
  var parsed = JSON.parse(stored);
9
9
  isDark = parsed && parsed.current === 'dark';
10
10
  }
11
- } catch(e) {}
11
+ } catch(_e) {}
12
12
 
13
13
  // Also check URL parameter
14
14
  var urlParams = new URLSearchParams(window.location.search);
@@ -27,7 +27,7 @@
27
27
  </script>
28
28
  <style>
29
29
  html, body {
30
- transition: none !important;
30
+ transition: none;
31
31
  }
32
32
 
33
33
  /* Fix preview area white flash - target all loading/skeleton states */
@@ -43,8 +43,8 @@
43
43
  .sb-previewBlock *,
44
44
  /* Emotion CSS classes in preview area (exclude loader) */
45
45
  [class^="css-"]:not([class*="loader"]) {
46
- background-color: #f0f3f9 !important;
47
- color-scheme: light !important;
46
+ background-color: #f0f3f9;
47
+ color-scheme: light;
48
48
  }
49
49
 
50
50
  /* Make spinner transparent in light mode too */
@@ -52,9 +52,9 @@
52
52
  .sb-loader *,
53
53
  [class*="loader"],
54
54
  [class*="loader"] * {
55
- fill: transparent !important;
56
- background: transparent !important;
57
- background-color: transparent !important;
55
+ fill: transparent;
56
+ background: transparent;
57
+ background-color: transparent;
58
58
  }
59
59
 
60
60
  html[data-theme="dark"] main[role="main"],
@@ -69,8 +69,8 @@
69
69
  html[data-theme="dark"] .sb-previewBlock *,
70
70
  /* Emotion CSS classes in preview area - dark mode (exclude loader) */
71
71
  html[data-theme="dark"] [class^="css-"]:not(.sb-loader):not([class*="loader"]) {
72
- background-color: #1a1f2e !important;
73
- color-scheme: dark !important;
72
+ background-color: #1a1f2e;
73
+ color-scheme: dark;
74
74
  }
75
75
 
76
76
  /* Fix spinner - make completely transparent */
@@ -78,14 +78,14 @@
78
78
  html[data-theme="dark"] .sb-loader *,
79
79
  html[data-theme="dark"] [class*="loader"],
80
80
  html[data-theme="dark"] [class*="loader"] * {
81
- fill: transparent !important;
82
- background: transparent !important;
83
- background-color: transparent !important;
81
+ fill: transparent;
82
+ background: transparent;
83
+ background-color: transparent;
84
84
  }
85
85
 
86
86
  /* Set dark background on all iframes in dark mode to reduce flash from external content */
87
87
  html[data-theme="dark"] iframe {
88
- background-color: #1a1f2e !important;
88
+ background-color: #1a1f2e;
89
89
  }
90
90
 
91
91
  /* Force sidebar and nav backgrounds - target the actual container divs */
@@ -94,7 +94,7 @@
94
94
  [class*="Sidebar"],
95
95
  nav[class],
96
96
  aside[class] {
97
- background-color: #f0f3f9 !important;
97
+ background-color: #f0f3f9;
98
98
  }
99
99
 
100
100
  html[data-theme="dark"] #storybook-explorer-tree,
@@ -102,7 +102,7 @@
102
102
  html[data-theme="dark"] [class*="Sidebar"],
103
103
  html[data-theme="dark"] nav[class],
104
104
  html[data-theme="dark"] aside[class] {
105
- background-color: #1a1f2e !important;
105
+ background-color: #1a1f2e;
106
106
  }
107
107
 
108
108
  /* Force toolbar/header backgrounds */
@@ -111,7 +111,7 @@
111
111
  [class*="bar"],
112
112
  [class*="Bar"],
113
113
  header[class] {
114
- background-color: #f0f3f9 !important;
114
+ background-color: #f0f3f9;
115
115
  }
116
116
 
117
117
  html[data-theme="dark"] [class*="toolbar"],
@@ -119,18 +119,18 @@
119
119
  html[data-theme="dark"] [class*="bar"],
120
120
  html[data-theme="dark"] [class*="Bar"],
121
121
  html[data-theme="dark"] header[class] {
122
- background-color: #1a1f2e !important;
122
+ background-color: #1a1f2e;
123
123
  }
124
124
 
125
125
  /* Force ALL sidebar text to dark gray instead of blue */
126
126
  [data-nodetype],
127
127
  [data-nodetype] * {
128
- color: #2d3748 !important;
128
+ color: #2d3748;
129
129
  }
130
130
 
131
131
  html[data-theme="dark"] [data-nodetype],
132
132
  html[data-theme="dark"] [data-nodetype] * {
133
- color: #e2e8f0 !important;
133
+ color: #e2e8f0;
134
134
  }
135
135
 
136
136
  /* Sidebar selection styles - subtle background */
@@ -138,15 +138,15 @@
138
138
  [data-nodetype="document"][data-selected="true"],
139
139
  [data-nodetype="component"][data-selected="true"],
140
140
  [data-nodetype="group"][data-selected="true"] {
141
- background-color: #e2e8f0 !important;
142
- border-radius: 0.5rem !important;
141
+ background-color: #e2e8f0;
142
+ border-radius: 0.5rem;
143
143
  }
144
144
 
145
145
  [data-nodetype="story"][data-selected="true"] *,
146
146
  [data-nodetype="document"][data-selected="true"] *,
147
147
  [data-nodetype="component"][data-selected="true"] *,
148
148
  [data-nodetype="group"][data-selected="true"] * {
149
- color: #1a202c !important;
149
+ color: #1a202c;
150
150
  }
151
151
 
152
152
  /* Dark mode selected item */
@@ -154,14 +154,14 @@
154
154
  html[data-theme="dark"] [data-nodetype="document"][data-selected="true"],
155
155
  html[data-theme="dark"] [data-nodetype="component"][data-selected="true"],
156
156
  html[data-theme="dark"] [data-nodetype="group"][data-selected="true"] {
157
- background-color: #3d4663 !important;
157
+ background-color: #3d4663;
158
158
  }
159
159
 
160
160
  html[data-theme="dark"] [data-nodetype="story"][data-selected="true"] *,
161
161
  html[data-theme="dark"] [data-nodetype="document"][data-selected="true"] *,
162
162
  html[data-theme="dark"] [data-nodetype="component"][data-selected="true"] *,
163
163
  html[data-theme="dark"] [data-nodetype="group"][data-selected="true"] * {
164
- color: #f7fafc !important;
164
+ color: #f7fafc;
165
165
  }
166
166
 
167
167
  /* Hover state */
@@ -169,28 +169,28 @@
169
169
  [data-nodetype="document"]:hover,
170
170
  [data-nodetype="component"]:hover,
171
171
  [data-nodetype="group"]:hover {
172
- background-color: #edf2f7 !important;
173
- border-radius: 0.5rem !important;
172
+ background-color: #edf2f7;
173
+ border-radius: 0.5rem;
174
174
  }
175
175
 
176
176
  html[data-theme="dark"] [data-nodetype="story"]:hover,
177
177
  html[data-theme="dark"] [data-nodetype="document"]:hover,
178
178
  html[data-theme="dark"] [data-nodetype="component"]:hover,
179
179
  html[data-theme="dark"] [data-nodetype="group"]:hover {
180
- background-color: #2d3748 !important;
180
+ background-color: #2d3748;
181
181
  }
182
182
 
183
183
  /* Selected hover - keep selected state */
184
184
  [data-nodetype][data-selected="true"]:hover {
185
- background-color: #e2e8f0 !important;
185
+ background-color: #e2e8f0;
186
186
  }
187
187
 
188
188
  html[data-theme="dark"] [data-nodetype][data-selected="true"]:hover {
189
- background-color: #3d4663 !important;
189
+ background-color: #3d4663;
190
190
  }
191
191
  </style>
192
192
  <script>
193
- (function() {
193
+ (() => {
194
194
  if (window.parent === window) return;
195
195
  function notify() {
196
196
  window.parent.postMessage({ type: 'iframe-url-change', url: location.href }, '*');
@@ -1,20 +1,20 @@
1
+ import { UPDATE_DARK_MODE_EVENT_NAME } from '@vueless/storybook-dark-mode';
2
+ import { STORY_CHANGED } from 'storybook/internal/core-events';
1
3
  import { addons } from 'storybook/manager-api';
2
4
  import { create } from 'storybook/theming';
3
- import { STORY_CHANGED } from 'storybook/internal/core-events';
4
- import { UPDATE_DARK_MODE_EVENT_NAME } from '@vueless/storybook-dark-mode';
5
5
 
6
6
  // Get initial theme from localStorage (dark mode addon) or URL parameter
7
7
  const urlParams = new URLSearchParams(window.location.search);
8
8
  const urlTheme = urlParams.get('theme');
9
9
  const getStoredDarkMode = (): boolean => {
10
- try {
11
- const stored = localStorage.getItem('sb-addon-themes-3');
12
- if (stored) {
13
- const parsed = JSON.parse(stored);
14
- return parsed?.current === 'dark';
15
- }
16
- } catch {}
17
- return false;
10
+ try {
11
+ const stored = localStorage.getItem('sb-addon-themes-3');
12
+ if (stored) {
13
+ const parsed = JSON.parse(stored);
14
+ return parsed?.current === 'dark';
15
+ }
16
+ } catch {}
17
+ return false;
18
18
  };
19
19
  const initialIsDark = urlTheme ? urlTheme === 'dark' : getStoredDarkMode();
20
20
 
@@ -22,143 +22,143 @@ const initialIsDark = urlTheme ? urlTheme === 'dark' : getStoredDarkMode();
22
22
  // Analyzed from screenshots - app has slight blue undertone in grays
23
23
 
24
24
  const lightTheme = create({
25
- base: 'light',
26
- brandTitle: ' ',
27
- brandUrl: '/',
28
- brandImage: '/blank.svg',
29
-
30
- // App background colors - matching your app's blue-tinted sidebar
31
- appBg: '#f0f3f9', // sidebar background (blue-tinted like your app)
32
- appContentBg: '#ffffff', // main content area
33
- appPreviewBg: '#ffffff', // preview/canvas background
34
- appBorderColor: '#e2e8f0', // borders (blue-tinted)
35
- appBorderRadius: 10, // 0.625rem = 10px
36
-
37
- // Text colors - dark gray, not blue
38
- textColor: '#2d3748', // dark gray text for sidebar items
39
- textMutedColor: '#718096', // muted gray text
40
- textInverseColor: '#f7fafc',// inverse text
41
-
42
- // Toolbar/UI colors
43
- barBg: '#f0f3f9', // toolbar background (blue-tinted)
44
- barTextColor: '#2d3748', // toolbar text (dark gray)
45
- barHoverColor: '#1a202c', // toolbar hover
46
- barSelectedColor: '#1a202c',// toolbar selected
47
-
48
- // Form colors
49
- inputBg: '#ffffff', // input background
50
- inputBorder: '#e2e8f0', // input border
51
- inputTextColor: '#2d3748', // input text
52
-
53
- // Button colors
54
- buttonBg: '#edf2f7', // button background
55
- buttonBorder: '#e2e8f0', // button border
56
-
57
- // Boolean inputs
58
- booleanBg: '#edf2f7',
59
- booleanSelectedBg: '#2d3748',
60
-
61
- // Grid colors for canvas
62
- gridCellSize: 10,
63
-
64
- // Color for links/interactive items - override the blue
65
- colorPrimary: '#2d3748',
66
- colorSecondary: '#4a5568',
25
+ base: 'light',
26
+ brandTitle: ' ',
27
+ brandUrl: '/',
28
+ brandImage: '/blank.svg',
29
+
30
+ // App background colors - matching your app's blue-tinted sidebar
31
+ appBg: '#f0f3f9', // sidebar background (blue-tinted like your app)
32
+ appContentBg: '#ffffff', // main content area
33
+ appPreviewBg: '#ffffff', // preview/canvas background
34
+ appBorderColor: '#e2e8f0', // borders (blue-tinted)
35
+ appBorderRadius: 10, // 0.625rem = 10px
36
+
37
+ // Text colors - dark gray, not blue
38
+ textColor: '#2d3748', // dark gray text for sidebar items
39
+ textMutedColor: '#718096', // muted gray text
40
+ textInverseColor: '#f7fafc', // inverse text
41
+
42
+ // Toolbar/UI colors
43
+ barBg: '#f0f3f9', // toolbar background (blue-tinted)
44
+ barTextColor: '#2d3748', // toolbar text (dark gray)
45
+ barHoverColor: '#1a202c', // toolbar hover
46
+ barSelectedColor: '#1a202c', // toolbar selected
47
+
48
+ // Form colors
49
+ inputBg: '#ffffff', // input background
50
+ inputBorder: '#e2e8f0', // input border
51
+ inputTextColor: '#2d3748', // input text
52
+
53
+ // Button colors
54
+ buttonBg: '#edf2f7', // button background
55
+ buttonBorder: '#e2e8f0', // button border
56
+
57
+ // Boolean inputs
58
+ booleanBg: '#edf2f7',
59
+ booleanSelectedBg: '#2d3748',
60
+
61
+ // Grid colors for canvas
62
+ gridCellSize: 10,
63
+
64
+ // Color for links/interactive items - override the blue
65
+ colorPrimary: '#2d3748',
66
+ colorSecondary: '#4a5568',
67
67
  });
68
68
 
69
69
  const darkTheme = create({
70
- base: 'dark',
71
- brandTitle: ' ',
72
- brandUrl: '/',
73
- brandImage: '/blank.svg',
74
-
75
- // App background colors - matching app's dark blue-tinted theme
76
- appBg: '#1a1f2e', // sidebar background (blue-tinted dark)
77
- appContentBg: '#131620', // main content area (darker)
78
- appPreviewBg: '#131620', // preview/canvas background
79
- appBorderColor: '#2a3142', // borders (blue-tinted)
80
- appBorderRadius: 10,
81
-
82
- // Text colors - light gray, not blue
83
- textColor: '#e2e8f0', // light gray text
84
- textMutedColor: '#a0aec0', // muted gray text
85
- textInverseColor: '#1a1f2e',// inverse text
86
-
87
- // Toolbar/UI colors
88
- barBg: '#1a1f2e', // toolbar background
89
- barTextColor: '#e2e8f0', // toolbar text (light gray)
90
- barHoverColor: '#f7fafc', // toolbar hover
91
- barSelectedColor: '#f7fafc',// toolbar selected
92
-
93
- // Form colors
94
- inputBg: '#242938', // input background
95
- inputBorder: '#3d4663', // input border
96
- inputTextColor: '#e2e8f0', // input text
97
-
98
- // Button colors
99
- buttonBg: '#242938', // button background
100
- buttonBorder: '#3d4663', // button border
101
-
102
- // Boolean inputs
103
- booleanBg: '#242938',
104
- booleanSelectedBg: '#e2e8f0',
105
-
106
- // Grid colors for canvas
107
- gridCellSize: 10,
108
-
109
- // Color for links/interactive items - override the blue
110
- colorPrimary: '#e2e8f0',
111
- colorSecondary: '#a0aec0',
70
+ base: 'dark',
71
+ brandTitle: ' ',
72
+ brandUrl: '/',
73
+ brandImage: '/blank.svg',
74
+
75
+ // App background colors - matching app's dark blue-tinted theme
76
+ appBg: '#1a1f2e', // sidebar background (blue-tinted dark)
77
+ appContentBg: '#131620', // main content area (darker)
78
+ appPreviewBg: '#131620', // preview/canvas background
79
+ appBorderColor: '#2a3142', // borders (blue-tinted)
80
+ appBorderRadius: 10,
81
+
82
+ // Text colors - light gray, not blue
83
+ textColor: '#e2e8f0', // light gray text
84
+ textMutedColor: '#a0aec0', // muted gray text
85
+ textInverseColor: '#1a1f2e', // inverse text
86
+
87
+ // Toolbar/UI colors
88
+ barBg: '#1a1f2e', // toolbar background
89
+ barTextColor: '#e2e8f0', // toolbar text (light gray)
90
+ barHoverColor: '#f7fafc', // toolbar hover
91
+ barSelectedColor: '#f7fafc', // toolbar selected
92
+
93
+ // Form colors
94
+ inputBg: '#242938', // input background
95
+ inputBorder: '#3d4663', // input border
96
+ inputTextColor: '#e2e8f0', // input text
97
+
98
+ // Button colors
99
+ buttonBg: '#242938', // button background
100
+ buttonBorder: '#3d4663', // button border
101
+
102
+ // Boolean inputs
103
+ booleanBg: '#242938',
104
+ booleanSelectedBg: '#e2e8f0',
105
+
106
+ // Grid colors for canvas
107
+ gridCellSize: 10,
108
+
109
+ // Color for links/interactive items - override the blue
110
+ colorPrimary: '#e2e8f0',
111
+ colorSecondary: '#a0aec0',
112
112
  });
113
113
 
114
114
  const customTheme = initialIsDark ? darkTheme : lightTheme;
115
115
 
116
116
  addons.setConfig({
117
- theme: customTheme,
118
- sidebar: {
119
- collapsedRoots: ['ui-components'],
120
- },
121
- showPanel: false,
117
+ theme: customTheme,
118
+ sidebar: {
119
+ collapsedRoots: ['ui-components'],
120
+ },
121
+ showPanel: false,
122
122
  });
123
123
 
124
124
  // Set default story to Design System Overview if no path specified
125
125
  if (!urlParams.has('path')) {
126
- const newUrl = new URL(window.location.href);
127
- newUrl.searchParams.set('path', '/story/design-system-overview--default');
128
- window.history.replaceState({}, '', newUrl.toString());
126
+ const newUrl = new URL(window.location.href);
127
+ newUrl.searchParams.set('path', '/story/design-system-overview--default');
128
+ window.history.replaceState({}, '', newUrl.toString());
129
129
  }
130
130
 
131
131
  // Register addon to handle navigation sync and theme after Storybook is ready
132
132
  addons.register('url-sync', (api) => {
133
- const channel = api.getChannel();
134
- if (!channel) return;
135
-
136
- // Set initial dark mode state (pass string "dark" or "light", not boolean)
137
- if (initialIsDark) {
138
- channel.emit(UPDATE_DARK_MODE_EVENT_NAME, 'dark');
139
- }
140
-
141
- // Report navigation changes to parent window for URL bar sync
142
- channel.on(STORY_CHANGED, (storyId: string) => {
143
- if (window.parent !== window) {
144
- window.parent.postMessage({ type: 'storybook-navigation', storyId }, '*');
145
- }
146
- });
147
-
148
- // Listen for theme changes from parent window
149
- window.addEventListener('message', (event) => {
150
- if (event.data?.type === 'storybook-theme-change' && event.data?.theme) {
151
- const isDark = event.data.theme === 'dark';
152
- // Update the dark mode addon
153
- channel.emit(UPDATE_DARK_MODE_EVENT_NAME, event.data.theme);
154
- // Update the Storybook manager theme
155
- addons.setConfig({
156
- theme: isDark ? darkTheme : lightTheme,
157
- });
158
- // Update CSS theme selector and background
159
- document.documentElement.dataset.theme = isDark ? 'dark' : 'light';
160
- document.documentElement.style.backgroundColor = isDark ? '#1a1f2e' : '#f0f3f9';
161
- document.documentElement.style.colorScheme = isDark ? 'dark' : 'light';
162
- }
163
- });
133
+ const channel = api.getChannel();
134
+ if (!channel) return;
135
+
136
+ // Set initial dark mode state (pass string "dark" or "light", not boolean)
137
+ if (initialIsDark) {
138
+ channel.emit(UPDATE_DARK_MODE_EVENT_NAME, 'dark');
139
+ }
140
+
141
+ // Report navigation changes to parent window for URL bar sync
142
+ channel.on(STORY_CHANGED, (storyId: string) => {
143
+ if (window.parent !== window) {
144
+ window.parent.postMessage({ type: 'storybook-navigation', storyId }, '*');
145
+ }
146
+ });
147
+
148
+ // Listen for theme changes from parent window
149
+ window.addEventListener('message', (event) => {
150
+ if (event.data?.type === 'storybook-theme-change' && event.data?.theme) {
151
+ const isDark = event.data.theme === 'dark';
152
+ // Update the dark mode addon
153
+ channel.emit(UPDATE_DARK_MODE_EVENT_NAME, event.data.theme);
154
+ // Update the Storybook manager theme
155
+ addons.setConfig({
156
+ theme: isDark ? darkTheme : lightTheme,
157
+ });
158
+ // Update CSS theme selector and background
159
+ document.documentElement.dataset.theme = isDark ? 'dark' : 'light';
160
+ document.documentElement.style.backgroundColor = isDark ? '#1a1f2e' : '#f0f3f9';
161
+ document.documentElement.style.colorScheme = isDark ? 'dark' : 'light';
162
+ }
163
+ });
164
164
  });