@repobuddy/storybook 2.0.1 → 2.1.1

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 (103) hide show
  1. package/esm/index.d.ts +574 -13
  2. package/esm/index.js +251 -12
  3. package/esm/manager/index.d.ts +38 -1
  4. package/esm/manager/index.js +32 -1
  5. package/esm/storybook-addon-tag-badges/index.d.ts +95 -2
  6. package/esm/storybook-addon-tag-badges/index.js +207 -1
  7. package/esm/storybook-dark-mode/index.d.ts +110 -3
  8. package/esm/storybook-dark-mode/index.js +102 -3
  9. package/package.json +4 -12
  10. package/cjs/components/show_html.d.ts +0 -16
  11. package/cjs/components/show_html.js +0 -29
  12. package/cjs/decorators/show_doc_source.d.ts +0 -6
  13. package/cjs/decorators/show_doc_source.js +0 -38
  14. package/cjs/index.d.ts +0 -13
  15. package/cjs/index.js +0 -137
  16. package/cjs/manager/brand_title.d.ts +0 -35
  17. package/cjs/manager/brand_title.js +0 -12
  18. package/cjs/manager/index.d.ts +0 -1
  19. package/cjs/manager/index.js +0 -16
  20. package/cjs/parameters/define_actions_param.d.ts +0 -24
  21. package/cjs/parameters/define_actions_param.js +0 -11
  22. package/cjs/parameters/define_backgrounds_param.d.ts +0 -45
  23. package/cjs/parameters/define_backgrounds_param.js +0 -10
  24. package/cjs/parameters/define_docs_param.d.ts +0 -217
  25. package/cjs/parameters/define_docs_param.js +0 -11
  26. package/cjs/parameters/define_layout_param.d.ts +0 -20
  27. package/cjs/parameters/define_layout_param.js +0 -10
  28. package/cjs/parameters/define_parameters.d.ts +0 -39
  29. package/cjs/parameters/define_parameters.js +0 -9
  30. package/cjs/parameters/define_test_param.d.ts +0 -34
  31. package/cjs/parameters/define_test_param.js +0 -11
  32. package/cjs/parameters/define_viewport_param.d.ts +0 -78
  33. package/cjs/parameters/define_viewport_param.js +0 -11
  34. package/cjs/parameters/story_sort.d.ts +0 -27
  35. package/cjs/parameters/story_sort.js +0 -1
  36. package/cjs/storybook-addon-tag-badges/index.d.ts +0 -2
  37. package/cjs/storybook-addon-tag-badges/index.js +0 -16
  38. package/cjs/storybook-addon-tag-badges/tag_badges.d.ts +0 -41
  39. package/cjs/storybook-addon-tag-badges/tag_badges.js +0 -179
  40. package/cjs/storybook-addon-tag-badges/types.d.ts +0 -9
  41. package/cjs/storybook-addon-tag-badges/types.js +0 -1
  42. package/cjs/storybook-dark-mode/dark_mode_docs_container.d.ts +0 -26
  43. package/cjs/storybook-dark-mode/dark_mode_docs_container.js +0 -23
  44. package/cjs/storybook-dark-mode/define_dark_mode.d.ts +0 -54
  45. package/cjs/storybook-dark-mode/define_dark_mode.js +0 -11
  46. package/cjs/storybook-dark-mode/index.d.ts +0 -3
  47. package/cjs/storybook-dark-mode/index.js +0 -38
  48. package/cjs/storybook-dark-mode/with_dark_mode.d.ts +0 -22
  49. package/cjs/storybook-dark-mode/with_dark_mode.js +0 -54
  50. package/cjs/testing/decorators/when_running_in_test.d.ts +0 -5
  51. package/cjs/testing/decorators/when_running_in_test.js +0 -12
  52. package/cjs/testing/decorators/when_running_in_text.ctx.d.ts +0 -3
  53. package/cjs/testing/decorators/when_running_in_text.ctx.js +0 -10
  54. package/cjs/types.d.ts +0 -41
  55. package/cjs/types.js +0 -1
  56. package/cjs/variants/index.d.ts +0 -1
  57. package/cjs/variants/index.js +0 -8
  58. package/cjs/variants/package.json +0 -3
  59. package/cjs/variants/preset.d.ts +0 -11
  60. package/cjs/variants/preset.js +0 -3
  61. package/esm/components/show_html.d.ts +0 -16
  62. package/esm/components/show_html.js +0 -19
  63. package/esm/decorators/show_doc_source.d.ts +0 -6
  64. package/esm/decorators/show_doc_source.js +0 -28
  65. package/esm/manager/brand_title.d.ts +0 -35
  66. package/esm/manager/brand_title.js +0 -6
  67. package/esm/parameters/define_actions_param.d.ts +0 -24
  68. package/esm/parameters/define_actions_param.js +0 -3
  69. package/esm/parameters/define_backgrounds_param.d.ts +0 -45
  70. package/esm/parameters/define_backgrounds_param.js +0 -3
  71. package/esm/parameters/define_docs_param.d.ts +0 -217
  72. package/esm/parameters/define_docs_param.js +0 -3
  73. package/esm/parameters/define_layout_param.d.ts +0 -20
  74. package/esm/parameters/define_layout_param.js +0 -3
  75. package/esm/parameters/define_parameters.d.ts +0 -39
  76. package/esm/parameters/define_parameters.js +0 -3
  77. package/esm/parameters/define_test_param.d.ts +0 -34
  78. package/esm/parameters/define_test_param.js +0 -3
  79. package/esm/parameters/define_viewport_param.d.ts +0 -78
  80. package/esm/parameters/define_viewport_param.js +0 -3
  81. package/esm/parameters/story_sort.d.ts +0 -27
  82. package/esm/parameters/story_sort.js +0 -0
  83. package/esm/storybook-addon-tag-badges/tag_badges.d.ts +0 -41
  84. package/esm/storybook-addon-tag-badges/tag_badges.js +0 -189
  85. package/esm/storybook-addon-tag-badges/types.d.ts +0 -9
  86. package/esm/storybook-addon-tag-badges/types.js +0 -0
  87. package/esm/storybook-dark-mode/dark_mode_docs_container.d.ts +0 -26
  88. package/esm/storybook-dark-mode/dark_mode_docs_container.js +0 -21
  89. package/esm/storybook-dark-mode/define_dark_mode.d.ts +0 -54
  90. package/esm/storybook-dark-mode/define_dark_mode.js +0 -3
  91. package/esm/storybook-dark-mode/with_dark_mode.d.ts +0 -22
  92. package/esm/storybook-dark-mode/with_dark_mode.js +0 -46
  93. package/esm/testing/decorators/when_running_in_test.d.ts +0 -5
  94. package/esm/testing/decorators/when_running_in_test.js +0 -6
  95. package/esm/testing/decorators/when_running_in_text.ctx.d.ts +0 -3
  96. package/esm/testing/decorators/when_running_in_text.ctx.js +0 -4
  97. package/esm/types.d.ts +0 -41
  98. package/esm/types.js +0 -0
  99. package/esm/variants/index.d.ts +0 -1
  100. package/esm/variants/index.js +0 -2
  101. package/esm/variants/package.json +0 -3
  102. package/esm/variants/preset.d.ts +0 -11
  103. package/esm/variants/preset.js +0 -1
@@ -1,179 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.unitBadge = exports.todoBadge = exports.tagBadges = exports.snapshotBadge = exports.propsBadge = exports.outdatedBadge = exports.newBadge = exports.keyboardBadge = exports.internalBadge = exports.integrationBadge = exports.editorBadge = exports.deprecatedBadge = exports.dangerBadge = exports.codeOnlyBadge = exports.betaBadge = void 0;
7
- var _managerHelpers = require("storybook-addon-tag-badges/manager-helpers");
8
- const [,,,,,, versionBadge] = _managerHelpers.defaultConfig;
9
- const editorBadge = exports.editorBadge = {
10
- tags: "editor",
11
- badge: {
12
- text: "\u270F\uFE0F",
13
- style: {
14
- backgroundColor: "transparent",
15
- borderColor: "transparent"
16
- },
17
- tooltip: "Editor"
18
- },
19
- display: {
20
- sidebar: {
21
- type: "story",
22
- skipInherited: false
23
- }
24
- }
25
- };
26
- const newBadge = exports.newBadge = {
27
- tags: "new",
28
- badge: {
29
- text: "\u{1F195}",
30
- style: {
31
- backgroundColor: "transparent",
32
- borderColor: "transparent"
33
- },
34
- tooltip: "New"
35
- }
36
- };
37
- const betaBadge = exports.betaBadge = {
38
- tags: "beta",
39
- badge: {
40
- text: "\u{1F171}\uFE0F",
41
- style: {
42
- backgroundColor: "transparent",
43
- borderColor: "transparent"
44
- },
45
- tooltip: "Beta"
46
- }
47
- };
48
- const propsBadge = exports.propsBadge = {
49
- tags: "props",
50
- badge: {
51
- text: "\u{1F527}",
52
- style: {
53
- backgroundColor: "transparent",
54
- borderColor: "transparent"
55
- },
56
- tooltip: "Props"
57
- }
58
- };
59
- const deprecatedBadge = exports.deprecatedBadge = {
60
- tags: "deprecated",
61
- badge: {
62
- text: "\u{1FAA6}",
63
- style: {
64
- backgroundColor: "transparent",
65
- borderColor: "transparent"
66
- },
67
- tooltip: "Deprecated"
68
- }
69
- };
70
- const outdatedBadge = exports.outdatedBadge = {
71
- tags: "outdated",
72
- badge: {
73
- text: "\u26A0\uFE0F",
74
- style: {
75
- backgroundColor: "transparent",
76
- borderColor: "transparent"
77
- },
78
- tooltip: "Outdated"
79
- }
80
- };
81
- const dangerBadge = exports.dangerBadge = {
82
- tags: "danger",
83
- badge: {
84
- text: "\u{1F6A8}",
85
- style: {
86
- backgroundColor: "transparent",
87
- borderColor: "transparent"
88
- },
89
- tooltip: "Dangerous"
90
- }
91
- };
92
- const todoBadge = exports.todoBadge = {
93
- tags: "todo",
94
- badge: {
95
- text: "\u{1F4CB}",
96
- style: {
97
- backgroundColor: "transparent",
98
- borderColor: "transparent"
99
- },
100
- tooltip: "Todo"
101
- }
102
- };
103
- const codeOnlyBadge = exports.codeOnlyBadge = {
104
- tags: "code-only",
105
- badge: {
106
- text: "\u{1F4DD}",
107
- style: {
108
- backgroundColor: "transparent",
109
- borderColor: "transparent"
110
- },
111
- tooltip: "Code Only"
112
- }
113
- };
114
- const snapshotBadge = exports.snapshotBadge = {
115
- tags: "snapshot",
116
- badge: {
117
- text: "\u{1F4F8}",
118
- style: {
119
- backgroundColor: "transparent",
120
- borderColor: "transparent"
121
- },
122
- tooltip: "Snapshot Test"
123
- },
124
- display: {
125
- sidebar: false,
126
- toolbar: ["story"]
127
- }
128
- };
129
- const unitBadge = exports.unitBadge = {
130
- tags: "unit",
131
- badge: {
132
- text: "\u{1F9EA}",
133
- style: {
134
- backgroundColor: "transparent",
135
- borderColor: "transparent"
136
- },
137
- tooltip: "Unit Test"
138
- },
139
- display: {
140
- sidebar: false
141
- }
142
- };
143
- const integrationBadge = exports.integrationBadge = {
144
- tags: "integration",
145
- badge: {
146
- text: "\u{1F517}",
147
- style: {
148
- backgroundColor: "transparent",
149
- borderColor: "transparent"
150
- },
151
- tooltip: "Integration Test"
152
- },
153
- display: {
154
- sidebar: false
155
- }
156
- };
157
- const keyboardBadge = exports.keyboardBadge = {
158
- tags: "keyboard",
159
- badge: {
160
- text: "\u2328\uFE0F",
161
- style: {
162
- backgroundColor: "transparent",
163
- borderColor: "transparent"
164
- },
165
- tooltip: "Keyboard Interaction"
166
- }
167
- };
168
- const internalBadge = exports.internalBadge = {
169
- tags: "internal",
170
- badge: {
171
- text: "\u{1F512}",
172
- style: {
173
- backgroundColor: "transparent",
174
- borderColor: "transparent"
175
- },
176
- tooltip: "Internal"
177
- }
178
- };
179
- const tagBadges = exports.tagBadges = [editorBadge, unitBadge, integrationBadge, keyboardBadge, newBadge, betaBadge, deprecatedBadge, outdatedBadge, dangerBadge, propsBadge, todoBadge, codeOnlyBadge, internalBadge, snapshotBadge, versionBadge];
@@ -1,9 +0,0 @@
1
- import type { Args, Meta as M, StoryObj as SBO } from '@storybook/react-vite';
2
- import type { ExtendMeta, ExtendStoryObj } from '../types.js';
3
- import type { TagNames } from './tag_badges.js';
4
- export type Meta<TCmpOrArgs = Args> = ExtendMeta<TCmpOrArgs, M<TCmpOrArgs>, {
5
- tag: TagNames;
6
- }>;
7
- export type StoryObj<TMetaOrCmpOrArgs = Args> = ExtendStoryObj<TMetaOrCmpOrArgs, SBO<TMetaOrCmpOrArgs>, {
8
- tag: TagNames;
9
- }>;
@@ -1 +0,0 @@
1
- "use strict";
@@ -1,26 +0,0 @@
1
- import { type DocsContextProps } from '@storybook/addon-docs/blocks';
2
- import { type PropsWithChildren } from 'react';
3
- import { type ThemeVars } from 'storybook/theming';
4
- /**
5
- * Creates a `DocsContainer` for `storybook` that works with `@storybook-community/storybook-dark-mode`.
6
- *
7
- * @see https://github.com/hipstersmoothie/storybook-dark-mode/issues/282
8
- *
9
- * @example
10
- * ```ts
11
- * // .storybook/preview.tsx
12
- * const preview: Preview = {
13
- * parameters: {
14
- * docs: {
15
- * container: createDarkModeDocsContainer()
16
- * }
17
- * }
18
- * }
19
- * ```
20
- */
21
- export declare function createDarkModeDocsContainer(customThemes?: {
22
- light?: ThemeVars | undefined;
23
- dark?: ThemeVars | undefined;
24
- } | undefined): (props: PropsWithChildren<{
25
- context: DocsContextProps;
26
- }>) => import("react").JSX.Element;
@@ -1,23 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.createDarkModeDocsContainer = createDarkModeDocsContainer;
7
- var _storybookDarkMode = require("@storybook-community/storybook-dark-mode");
8
- var _blocks = require("@storybook/addon-docs/blocks");
9
- var _react = require("react");
10
- var _theming = require("storybook/theming");
11
- function createDarkModeDocsContainer(customThemes) {
12
- return function DarkModeDocsContainer(props) {
13
- const [isDark, setDark] = (0, _react.useState)(true);
14
- (0, _react.useEffect)(() => {
15
- props.context.channel.on(_storybookDarkMode.DARK_MODE_EVENT_NAME, setDark);
16
- return () => props.context.channel.removeListener(_storybookDarkMode.DARK_MODE_EVENT_NAME, setDark);
17
- }, [props.context.channel]);
18
- return /* @__PURE__ */React.createElement(_blocks.DocsContainer, {
19
- ...props,
20
- theme: isDark ? customThemes?.dark ?? _theming.themes.dark : customThemes?.light ?? _theming.themes.light
21
- }, props.children);
22
- };
23
- }
@@ -1,54 +0,0 @@
1
- import type { CSSProperties } from '@just-web/css';
2
- import type { ThemeVars } from 'storybook/theming';
3
- /**
4
- * Configuration parameters for `@storybook-community/storybook-dark-mode`.
5
- */
6
- export interface DarkModeParam {
7
- /** The current theme ('dark' or 'light') */
8
- current?: 'dark' | 'light' | undefined;
9
- /**
10
- * CSS class(es) to apply in dark mode.
11
- */
12
- darkClass?: string | string[] | undefined;
13
- /**
14
- * CSS style(s) to apply in dark mode.
15
- *
16
- * This only works when using `withStoryRoot`.
17
- */
18
- darkStyle?: CSSProperties | undefined;
19
- /** CSS class(es) to apply in light mode */
20
- lightClass?: string | string[] | undefined;
21
- /**
22
- * CSS style(s) to apply in light mode.
23
- *
24
- * This only works when using `withStoryRoot`.
25
- */
26
- lightStyle?: CSSProperties | undefined;
27
- /** Dark theme variables */
28
- dark?: ThemeVars;
29
- /** Light theme variables */
30
- light?: ThemeVars;
31
- /** Element to apply theme classes to ('html' or 'body') */
32
- classTarget?: 'html' | 'body' | undefined;
33
- /** Whether to apply theme styles to preview iframe */
34
- stylePreview?: boolean | undefined;
35
- }
36
- /**
37
- * Defines `@storybook-community/storybook-dark-mode` parameters for Storybook stories.
38
- *
39
- * @see https://storybook.js.org/addons/@storybook/addon-themes#dark-mode
40
- * @returns An object containing the dark mode parameter configuration
41
- *
42
- * @example
43
- * ```ts
44
- * // ./storybook/preview.tsx
45
- *
46
- * export const preview = {
47
- * parameters: {
48
- * ...defineDarkModeParam({ darkClass: 'dark' })
49
- * }
50
- * }
51
- */
52
- export declare function defineDarkModeParam(darkMode: DarkModeParam): {
53
- darkMode: DarkModeParam;
54
- };
@@ -1,11 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.defineDarkModeParam = defineDarkModeParam;
7
- function defineDarkModeParam(darkMode) {
8
- return {
9
- darkMode
10
- };
11
- }
@@ -1,3 +0,0 @@
1
- export * from './dark_mode_docs_container.js';
2
- export * from './define_dark_mode.js';
3
- export * from './with_dark_mode.js';
@@ -1,38 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- var _dark_mode_docs_container = require("./dark_mode_docs_container.js");
7
- Object.keys(_dark_mode_docs_container).forEach(function (key) {
8
- if (key === "default" || key === "__esModule") return;
9
- if (key in exports && exports[key] === _dark_mode_docs_container[key]) return;
10
- Object.defineProperty(exports, key, {
11
- enumerable: true,
12
- get: function () {
13
- return _dark_mode_docs_container[key];
14
- }
15
- });
16
- });
17
- var _define_dark_mode = require("./define_dark_mode.js");
18
- Object.keys(_define_dark_mode).forEach(function (key) {
19
- if (key === "default" || key === "__esModule") return;
20
- if (key in exports && exports[key] === _define_dark_mode[key]) return;
21
- Object.defineProperty(exports, key, {
22
- enumerable: true,
23
- get: function () {
24
- return _define_dark_mode[key];
25
- }
26
- });
27
- });
28
- var _with_dark_mode = require("./with_dark_mode.js");
29
- Object.keys(_with_dark_mode).forEach(function (key) {
30
- if (key === "default" || key === "__esModule") return;
31
- if (key in exports && exports[key] === _with_dark_mode[key]) return;
32
- Object.defineProperty(exports, key, {
33
- enumerable: true,
34
- get: function () {
35
- return _with_dark_mode[key];
36
- }
37
- });
38
- });
@@ -1,22 +0,0 @@
1
- import type { CSSProperties } from '@just-web/css';
2
- import type { DecoratorFunction } from 'storybook/internal/types';
3
- /**
4
- * Applies additional dark mode behavior.
5
- *
6
- * @see https://storybook.js.org/addons/@storybook/addon-themes#dark-mode
7
- * @returns A decorator function that applies additional dark mode behavior.
8
- */
9
- export declare function withDarkMode(options?: {
10
- /**
11
- * CSS class(es) to apply to the body element.
12
- *
13
- * Useful when using Tailwind CSS and `classTarget: 'html'`
14
- */
15
- bodyClass?: string | string[] | undefined;
16
- /**
17
- * CSS style(s) to apply to the body element.
18
- *
19
- * Useful when using Tailwind CSS and `classTarget: 'html'`
20
- */
21
- bodyStyle?: CSSProperties | undefined;
22
- } | undefined): DecoratorFunction<any, any>;
@@ -1,54 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.withDarkMode = withDarkMode;
7
- var _css = require("@just-web/css");
8
- var _storybookDarkMode = require("@storybook-community/storybook-dark-mode");
9
- function withDarkMode(options) {
10
- return function darkModeDecorator(Story, {
11
- parameters
12
- }) {
13
- const darkMode = parameters.darkMode;
14
- if (!darkMode) return /* @__PURE__ */React.createElement(Story, null);
15
- const dark = (0, _storybookDarkMode.useDarkMode)();
16
- const target = darkMode.classTarget === "html" ? document.documentElement : document.body;
17
- if (dark) {
18
- removeStyle(target, darkMode.lightStyle);
19
- addStyle(target, darkMode.darkStyle);
20
- } else {
21
- removeStyle(target, darkMode.darkStyle);
22
- addStyle(target, darkMode.lightStyle);
23
- }
24
- if (options?.bodyClass) {
25
- addClass(document.body, options.bodyClass);
26
- }
27
- if (options?.bodyStyle) {
28
- addStyle(document.body, options.bodyStyle);
29
- }
30
- return /* @__PURE__ */React.createElement(Story, null);
31
- };
32
- }
33
- function addClass(target, className) {
34
- if (!className) return;
35
- if (typeof className === "string") {
36
- target.classList.add(...className.split(" "));
37
- } else if (Array.isArray(className)) {
38
- target.classList.add(...className);
39
- }
40
- }
41
- function addStyle(target, style) {
42
- if (style) {
43
- for (const [key, value] of Object.entries((0, _css.toDOMStyle)(style))) {
44
- target.style.setProperty(key, value);
45
- }
46
- }
47
- }
48
- function removeStyle(target, style) {
49
- if (style) {
50
- for (const key of Object.keys((0, _css.toDOMStyle)(style))) {
51
- target.style.removeProperty(key);
52
- }
53
- }
54
- }
@@ -1,5 +0,0 @@
1
- import type { Decorator, StrictArgs } from '@storybook/react-vite';
2
- /**
3
- * executes the specified decorator or handler if the code is running in test.
4
- */
5
- export declare function whenRunningInTest<TArgs = StrictArgs>(decoratorOrHandler: ((...args: Parameters<Decorator<TArgs>>) => ReturnType<Decorator<TArgs>> | undefined | void) | (() => ReturnType<Decorator<TArgs>> | undefined | void)): Decorator<TArgs>;
@@ -1,12 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.whenRunningInTest = whenRunningInTest;
7
- var _when_running_in_textCtx = require("./when_running_in_text.ctx.js");
8
- function whenRunningInTest(decoratorOrHandler) {
9
- return function RunInTest(Story, context) {
10
- return _when_running_in_textCtx.ctx.isRunningInTest() ? decoratorOrHandler(Story, context) ?? /* @__PURE__ */React.createElement(Story, null) : /* @__PURE__ */React.createElement(Story, null);
11
- };
12
- }
@@ -1,3 +0,0 @@
1
- export declare const ctx: {
2
- isRunningInTest: any;
3
- };
@@ -1,10 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ctx = void 0;
7
- var _test = require("@repobuddy/test");
8
- const ctx = exports.ctx = {
9
- isRunningInTest: _test.isRunningInTest
10
- };
package/cjs/types.d.ts DELETED
@@ -1,41 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite';
2
- /**
3
- * Extends the Storybook Meta type with custom tag types
4
- * @template TCmpOrArgs - The component or args type
5
- * @template M - The base Meta type
6
- * @template E - The extension type containing tagType
7
- *
8
- * @example
9
- * ```ts
10
- * // Create a generic Meta type for a project
11
- * type Meta<TCmpOrArgs = Args> = ExtendMeta<TCmpOrArgs, Meta<TCmpOrArgs>, { tagType: 'tag1' | 'tag2' }>
12
- *
13
- * // Create a specific Meta type for a component
14
- * type Meta = ExtendMeta<typeof Component, Meta<typeof Component>, { tagType: 'tag1' | 'tag2' }>
15
- * ```
16
- */
17
- export type ExtendMeta<TCmpOrArgs, M extends Meta<TCmpOrArgs>, E extends {
18
- tag: string;
19
- }> = Omit<M, 'tags'> & {
20
- tags?: Array<E['tag'] | (string & {})> | undefined;
21
- };
22
- /**
23
- * Extends the Storybook StoryObj type with custom tag types
24
- * @template TMetaOrCmpOrArgs - The meta, component or args type
25
- * @template S - The base StoryObj type
26
- * @template E - The extension type containing tagType
27
- *
28
- * @example
29
- * ```ts
30
- * // Create a generic StoryObj type for a project
31
- * type StoryObj<TMetaOrCmpOrArgs = Args> = ExtendStoryObj<TMetaOrCmpOrArgs, StoryObj<TMetaOrCmpOrArgs>, { tagType: 'tag1' | 'tag2' }>
32
- *
33
- * // Create a specific StoryObj type for a component
34
- * type StoryObj = ExtendStoryObj<typeof Component, StoryObj<typeof Component>, { tagType: 'tag1' | 'tag2' }>
35
- * ```
36
- */
37
- export type ExtendStoryObj<TMetaOrCmpOrArgs, S extends StoryObj<TMetaOrCmpOrArgs>, E extends {
38
- tag: string;
39
- }> = Omit<S, 'tags'> & {
40
- tags?: Array<E['tag'] | (string & {})> | undefined;
41
- };
package/cjs/types.js DELETED
@@ -1 +0,0 @@
1
- "use strict";
@@ -1 +0,0 @@
1
- export declare const empty: {};
@@ -1,8 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.empty = void 0;
7
- console.info("variants.index.ts.load");
8
- const empty = exports.empty = {};
@@ -1,3 +0,0 @@
1
- {
2
- "type": "module"
3
- }
@@ -1,11 +0,0 @@
1
- /**
2
- * User specifies `@repobuddy/storybook/variants/addon` in the `.storybook/main.ts`.
3
- *
4
- * Storybook loads it on the server side.
5
- *
6
- * It provides a default export (or in CJS, `module.exports =`) that contains:
7
- *
8
- * - `managerEntries` a function that returns an array of strings on where to load the manager (on the client side)
9
- * - `previewAnnotations` a function that returns an array of strings on where to load the preview (on the client side)
10
- * - `experimental_serverChannel` a function that handles the server-side channel
11
- */
@@ -1,3 +0,0 @@
1
- "use strict";
2
-
3
- console.info("variants.preset.js.load");
@@ -1,16 +0,0 @@
1
- import type { ClassNameProps, StyleProps } from '@just-web/css';
2
- import { type UserConfig } from 'htmlfy';
3
- export type ShowHtmlProps = ClassNameProps & StyleProps & {
4
- selector?: string | undefined;
5
- config?: UserConfig | undefined;
6
- };
7
- /**
8
- * A component that displays the HTML of a subject element.
9
- * Uses `htmlfy` internally to format and prettify the HTML output.
10
- *
11
- * @param selector - CSS selector to find the subject element. Defaults to '[data-testid="subject"]'
12
- * @param config - Configuration options passed to htmlfy's prettify function
13
- * @param props - Additional props (className, style) passed to the pre element
14
- * @returns A pre element containing the formatted HTML
15
- */
16
- export declare function ShowHtml({ selector, config, ...props }: ShowHtmlProps): import("react").JSX.Element;
@@ -1,19 +0,0 @@
1
- import { prettify } from "htmlfy";
2
- import { useEffect, useState } from "react";
3
- export function ShowHtml({ selector = '[data-testid="subject"]', config, ...props }) {
4
- const [html, setHtml] = useState("");
5
- useEffect(() => {
6
- const subject = document.querySelector(selector);
7
- if (subject) {
8
- setHtml(
9
- prettify(subject.outerHTML, {
10
- tag_wrap: 40,
11
- ...config
12
- })
13
- );
14
- } else {
15
- setHtml("No subject found");
16
- }
17
- }, [selector]);
18
- return /* @__PURE__ */ React.createElement("pre", { ...props }, html);
19
- }
@@ -1,6 +0,0 @@
1
- import type { Args, DecoratorFunction, Renderer } from 'storybook/internal/csf';
2
- /**
3
- * A decorator that shows the source code of a story above the rendered story.
4
- * The source code is taken from the story's `parameters.docs.source.code`.
5
- */
6
- export declare function showDocSource<TRenderer extends Renderer = Renderer, TArgs = Args>(): DecoratorFunction<TRenderer, TArgs>;
@@ -1,28 +0,0 @@
1
- import { useEffect, useState } from "react";
2
- import { SyntaxHighlighter } from "storybook/internal/components";
3
- import { addons } from "storybook/preview-api";
4
- import { convert, ThemeProvider, themes } from "storybook/theming";
5
- const channel = addons.getChannel();
6
- export function showDocSource() {
7
- return (Story, { parameters: { docs, darkMode } }) => {
8
- const storedItem = window.localStorage.getItem("sb-addon-themes-3");
9
- const current = typeof storedItem === "string" ? JSON.parse(storedItem).current : darkMode?.current;
10
- const [isDark, setIsDark] = useState((darkMode?.stylePreview && current === "dark") ?? false);
11
- useEffect(() => {
12
- channel.on("DARK_MODE", setIsDark);
13
- return () => channel.off("DARK_MODE", setIsDark);
14
- }, []);
15
- return /* @__PURE__ */ React.createElement(ThemeProvider, { theme: convert(docs?.theme ?? (isDark ? themes.dark : themes.light)) }, /* @__PURE__ */ React.createElement(
16
- "section",
17
- {
18
- style: {
19
- display: "flex",
20
- flexDirection: "column",
21
- gap: "1rem"
22
- }
23
- },
24
- /* @__PURE__ */ React.createElement(SyntaxHighlighter, { language: docs?.source?.language }, docs?.source?.code),
25
- /* @__PURE__ */ React.createElement(Story, null)
26
- ));
27
- };
28
- }
@@ -1,35 +0,0 @@
1
- export interface BrandTitleOptions {
2
- /**
3
- * The title to display in the brand title.
4
- * It can be a simple string or raw HTML.
5
- */
6
- title: string;
7
- /**
8
- * The logo to display in the brand title.
9
- * It can be a simple string or raw HTML (e.g. `<svg>`).
10
- */
11
- logo?: string | undefined;
12
- }
13
- /**
14
- * Creates a brand title element for the Storybook manager UI.
15
- *
16
- * @param options - The options for customizing the brand title
17
- * @param options.title - The title text or HTML to display
18
- * @param options.logo - Optional logo HTML to display before the title
19
- * @returns An HTML string containing the brand title element
20
- *
21
- * @example
22
- *
23
- * ```ts
24
- * import { brandTitle } from '@repobuddy/storybook'
25
- * import { addons } from 'storybook/manager-api'
26
- *
27
- * addons.setConfig({
28
- * brandTitle: brandTitle({
29
- * title: 'My Storybook',
30
- * logo: '<img src="logo.png" alt="Logo" width="24" height="24">'
31
- * })
32
- * })
33
- * ```
34
- */
35
- export declare function brandTitle(options: BrandTitleOptions): string;
@@ -1,6 +0,0 @@
1
- export function brandTitle(options) {
2
- return `<span style="display: flex; align-items: center; gap: 2px;">
3
- ${options.logo ?? ""}
4
- ${options.title}
5
- </span>`;
6
- }