@openpawlabs/diy-guides-ui 1.0.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/LICENSE +661 -0
- package/README.md +126 -0
- package/dist/components/Callout/Callout.d.ts +21 -0
- package/dist/components/Callout/Callout.d.ts.map +1 -0
- package/dist/components/Callout/Callout.stories.d.ts +31 -0
- package/dist/components/Callout/Callout.stories.d.ts.map +1 -0
- package/dist/components/Callout/Callout.test.d.ts +2 -0
- package/dist/components/Callout/Callout.test.d.ts.map +1 -0
- package/dist/components/Callout/index.d.ts +3 -0
- package/dist/components/Callout/index.d.ts.map +1 -0
- package/dist/components/DifficultyBadge/DifficultyBadge.d.ts +20 -0
- package/dist/components/DifficultyBadge/DifficultyBadge.d.ts.map +1 -0
- package/dist/components/DifficultyBadge/DifficultyBadge.stories.d.ts +37 -0
- package/dist/components/DifficultyBadge/DifficultyBadge.stories.d.ts.map +1 -0
- package/dist/components/DifficultyBadge/DifficultyBadge.test.d.ts +2 -0
- package/dist/components/DifficultyBadge/DifficultyBadge.test.d.ts.map +1 -0
- package/dist/components/DifficultyBadge/index.d.ts +3 -0
- package/dist/components/DifficultyBadge/index.d.ts.map +1 -0
- package/dist/components/GuideLayout/GuideLayout.d.ts +49 -0
- package/dist/components/GuideLayout/GuideLayout.d.ts.map +1 -0
- package/dist/components/GuideLayout/GuideLayout.stories.d.ts +33 -0
- package/dist/components/GuideLayout/GuideLayout.stories.d.ts.map +1 -0
- package/dist/components/GuideLayout/GuideLayout.test.d.ts +2 -0
- package/dist/components/GuideLayout/GuideLayout.test.d.ts.map +1 -0
- package/dist/components/GuideLayout/index.d.ts +3 -0
- package/dist/components/GuideLayout/index.d.ts.map +1 -0
- package/dist/components/GuideStep/GuideStep.d.ts +62 -0
- package/dist/components/GuideStep/GuideStep.d.ts.map +1 -0
- package/dist/components/GuideStep/GuideStep.stories.d.ts +36 -0
- package/dist/components/GuideStep/GuideStep.stories.d.ts.map +1 -0
- package/dist/components/GuideStep/GuideStep.test.d.ts +2 -0
- package/dist/components/GuideStep/GuideStep.test.d.ts.map +1 -0
- package/dist/components/GuideStep/index.d.ts +3 -0
- package/dist/components/GuideStep/index.d.ts.map +1 -0
- package/dist/components/GuideStepList/GuideStepList.d.ts +21 -0
- package/dist/components/GuideStepList/GuideStepList.d.ts.map +1 -0
- package/dist/components/GuideStepList/GuideStepList.stories.d.ts +23 -0
- package/dist/components/GuideStepList/GuideStepList.stories.d.ts.map +1 -0
- package/dist/components/GuideStepList/GuideStepList.test.d.ts +2 -0
- package/dist/components/GuideStepList/GuideStepList.test.d.ts.map +1 -0
- package/dist/components/GuideStepList/index.d.ts +3 -0
- package/dist/components/GuideStepList/index.d.ts.map +1 -0
- package/dist/components/MediaFigure/MediaFigure.d.ts +70 -0
- package/dist/components/MediaFigure/MediaFigure.d.ts.map +1 -0
- package/dist/components/MediaFigure/MediaFigure.stories.d.ts +33 -0
- package/dist/components/MediaFigure/MediaFigure.stories.d.ts.map +1 -0
- package/dist/components/MediaFigure/MediaFigure.test.d.ts +2 -0
- package/dist/components/MediaFigure/MediaFigure.test.d.ts.map +1 -0
- package/dist/components/MediaFigure/MediaFigureMedia.d.ts +8 -0
- package/dist/components/MediaFigure/MediaFigureMedia.d.ts.map +1 -0
- package/dist/components/MediaFigure/MediaFigureModel.d.ts +5 -0
- package/dist/components/MediaFigure/MediaFigureModel.d.ts.map +1 -0
- package/dist/components/MediaFigure/index.d.ts +3 -0
- package/dist/components/MediaFigure/index.d.ts.map +1 -0
- package/dist/components/ToolList/ToolList.d.ts +34 -0
- package/dist/components/ToolList/ToolList.d.ts.map +1 -0
- package/dist/components/ToolList/ToolList.stories.d.ts +24 -0
- package/dist/components/ToolList/ToolList.stories.d.ts.map +1 -0
- package/dist/components/ToolList/ToolList.test.d.ts +2 -0
- package/dist/components/ToolList/ToolList.test.d.ts.map +1 -0
- package/dist/components/ToolList/index.d.ts +3 -0
- package/dist/components/ToolList/index.d.ts.map +1 -0
- package/dist/diy-guides-ui.cjs +24 -0
- package/dist/diy-guides-ui.cjs.map +1 -0
- package/dist/diy-guides-ui.js +7749 -0
- package/dist/diy-guides-ui.js.map +1 -0
- package/dist/hooks/useControlledState.d.ts +7 -0
- package/dist/hooks/useControlledState.d.ts.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/stories/Welcome.stories.d.ts +21 -0
- package/dist/stories/Welcome.stories.d.ts.map +1 -0
- package/dist/style.css +1 -0
- package/dist/test/setup.d.ts +2 -0
- package/dist/test/setup.d.ts.map +1 -0
- package/dist/test/smoke.test.d.ts +2 -0
- package/dist/test/smoke.test.d.ts.map +1 -0
- package/dist/types/callout.d.ts +13 -0
- package/dist/types/callout.d.ts.map +1 -0
- package/dist/types/callout.test.d.ts +2 -0
- package/dist/types/callout.test.d.ts.map +1 -0
- package/dist/types/colors.d.ts +20 -0
- package/dist/types/colors.d.ts.map +1 -0
- package/dist/types/colors.test.d.ts +2 -0
- package/dist/types/colors.test.d.ts.map +1 -0
- package/dist/utils/mediaCrop.d.ts +19 -0
- package/dist/utils/mediaCrop.d.ts.map +1 -0
- package/dist/utils/mediaCrop.test.d.ts +2 -0
- package/dist/utils/mediaCrop.test.d.ts.map +1 -0
- package/package.json +81 -0
package/README.md
ADDED
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# @openpawlabs/diy-guides-ui
|
|
2
|
+
|
|
3
|
+
Open-source React UI library for building **iFixit-style DIY guides** — step-by-step instructions with tools, warnings, and media.
|
|
4
|
+
|
|
5
|
+
## Status
|
|
6
|
+
|
|
7
|
+
Active development. The core guide component set is implemented, tested, and documented in Storybook:
|
|
8
|
+
|
|
9
|
+
| Component | Purpose |
|
|
10
|
+
|-----------|---------|
|
|
11
|
+
| `GuideLayout` | Responsive page shell: header, intro + tools row, full-width steps |
|
|
12
|
+
| `GuideStepList` | Auto-numbered step sequence with a derived progress bar |
|
|
13
|
+
| `GuideStep` | A single step — number badge, completion checkbox, media, and bulleted instructions |
|
|
14
|
+
| `MediaFigure` | Image/video with percentage-positioned annotation markers |
|
|
15
|
+
| `ToolList` | Titled card of required tools and parts |
|
|
16
|
+
| `Callout` | Safety / informational callout (`note` → `danger` types) |
|
|
17
|
+
| `DifficultyBadge` | Color-coded difficulty pill (easy / moderate / difficult) |
|
|
18
|
+
|
|
19
|
+
Guide colors (`COLORS` / `GuideColor`) link step bullet dots to image annotation markers. Callout types (`CalloutType`) drive safety and informational tone in `Callout` boxes.
|
|
20
|
+
|
|
21
|
+
## Tech stack
|
|
22
|
+
|
|
23
|
+
- [React](https://react.dev/) 19 + TypeScript
|
|
24
|
+
- [HeroUI v3](https://heroui.com/) for accessible UI primitives
|
|
25
|
+
- [Tailwind CSS v4](https://tailwindcss.com/)
|
|
26
|
+
- [Storybook](https://storybook.js.org/) for component development
|
|
27
|
+
- [Vite](https://vite.dev/) library mode for publishing
|
|
28
|
+
- [Vitest](https://vitest.dev/) + React Testing Library
|
|
29
|
+
|
|
30
|
+
## Getting started (development)
|
|
31
|
+
|
|
32
|
+
Requires [pnpm](https://pnpm.io/) 9+.
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
pnpm install
|
|
36
|
+
pnpm dev # Storybook at http://localhost:6006
|
|
37
|
+
pnpm test # Run tests
|
|
38
|
+
pnpm build # Build library to dist/
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Project structure
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
src/
|
|
45
|
+
components/ # One folder per component (tsx, stories, tests, index)
|
|
46
|
+
hooks/ # Shared hooks (e.g. useControlledState)
|
|
47
|
+
types/ # Shared design tokens (colors, callout types) and types
|
|
48
|
+
styles/ # Tailwind + HeroUI CSS entry
|
|
49
|
+
index.ts # Public API exports
|
|
50
|
+
.storybook/ # Storybook configuration
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
See [AGENTS.md](./AGENTS.md) for contributor and AI agent conventions.
|
|
54
|
+
|
|
55
|
+
## Using in another app
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
pnpm add @openpawlabs/diy-guides-ui @heroui/react @heroui/styles tailwindcss
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Import styles in your app CSS:
|
|
62
|
+
|
|
63
|
+
```css
|
|
64
|
+
@import "tailwindcss";
|
|
65
|
+
@import "@heroui/styles";
|
|
66
|
+
@import "@openpawlabs/diy-guides-ui/styles";
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
```tsx
|
|
70
|
+
import "@openpawlabs/diy-guides-ui/styles";
|
|
71
|
+
import {
|
|
72
|
+
GuideLayout,
|
|
73
|
+
GuideStepList,
|
|
74
|
+
GuideStep,
|
|
75
|
+
MediaFigure,
|
|
76
|
+
ToolList,
|
|
77
|
+
Callout,
|
|
78
|
+
} from "@openpawlabs/diy-guides-ui";
|
|
79
|
+
|
|
80
|
+
export function BatteryGuide() {
|
|
81
|
+
return (
|
|
82
|
+
<GuideLayout>
|
|
83
|
+
<GuideLayout.Header
|
|
84
|
+
title="Replace a Smartphone Battery"
|
|
85
|
+
difficulty="moderate"
|
|
86
|
+
timeEstimate="20 – 30 minutes"
|
|
87
|
+
/>
|
|
88
|
+
|
|
89
|
+
<GuideLayout.Intro>
|
|
90
|
+
A worn battery drains fast and can swell. This guide covers a safe swap.
|
|
91
|
+
</GuideLayout.Intro>
|
|
92
|
+
|
|
93
|
+
<GuideLayout.Sidebar>
|
|
94
|
+
<ToolList title="Tools">
|
|
95
|
+
<ToolList.Item name="Pro Tech Toolkit" href="#" price="$67.96" />
|
|
96
|
+
</ToolList>
|
|
97
|
+
</GuideLayout.Sidebar>
|
|
98
|
+
|
|
99
|
+
<GuideLayout.Content>
|
|
100
|
+
<Callout type="danger" title="Battery safety">
|
|
101
|
+
A punctured lithium battery can catch fire. Work slowly.
|
|
102
|
+
</Callout>
|
|
103
|
+
<GuideStepList>
|
|
104
|
+
<GuideStep title="Open the case">
|
|
105
|
+
<GuideStep.Media>
|
|
106
|
+
<MediaFigure
|
|
107
|
+
src="/step-1.jpg"
|
|
108
|
+
annotations={[{ x: 50, y: 45, color: "ORANGE", label: 1 }]}
|
|
109
|
+
/>
|
|
110
|
+
</GuideStep.Media>
|
|
111
|
+
<GuideStep.Bullets>
|
|
112
|
+
<GuideStep.Bullet color="ORANGE">
|
|
113
|
+
Soften the adhesive with even heat before prying.
|
|
114
|
+
</GuideStep.Bullet>
|
|
115
|
+
</GuideStep.Bullets>
|
|
116
|
+
</GuideStep>
|
|
117
|
+
</GuideStepList>
|
|
118
|
+
</GuideLayout.Content>
|
|
119
|
+
</GuideLayout>
|
|
120
|
+
);
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## License
|
|
125
|
+
|
|
126
|
+
MIT — see [LICENSE](./LICENSE).
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import { type CalloutType } from "../../types/callout";
|
|
3
|
+
export interface CalloutProps {
|
|
4
|
+
/** Tone of the callout — controls color, default icon, and default title. @default "caution" */
|
|
5
|
+
type?: CalloutType;
|
|
6
|
+
/** Heading text. Pass `null` to omit. Defaults to the callout type label. */
|
|
7
|
+
title?: ReactNode;
|
|
8
|
+
/** Override the leading indicator icon. */
|
|
9
|
+
icon?: ReactNode;
|
|
10
|
+
/** Callout body. */
|
|
11
|
+
children: ReactNode;
|
|
12
|
+
className?: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Safety / informational callout for guides — battery, heat, ESD, and other
|
|
16
|
+
* hazards. Wraps HeroUI `Alert`, mapping {@link CalloutType} to a guide
|
|
17
|
+
* palette accent, default icon, and title so a single `type` prop styles the
|
|
18
|
+
* whole box.
|
|
19
|
+
*/
|
|
20
|
+
export declare function Callout({ type, title, icon, children, className, }: CalloutProps): import("react").JSX.Element;
|
|
21
|
+
//# sourceMappingURL=Callout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Callout.d.ts","sourceRoot":"","sources":["../../../src/components/Callout/Callout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EACL,KAAK,WAAW,EAGjB,MAAM,qBAAqB,CAAC;AAG7B,MAAM,WAAW,YAAY;IAC3B,gGAAgG;IAChG,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,2CAA2C;IAC3C,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,oBAAoB;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA6CD;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,EACtB,IAAgB,EAChB,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,SAAS,GACV,EAAE,YAAY,+BAqBd"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { StoryObj } from "@storybook/react-vite";
|
|
2
|
+
import { Callout } from "./Callout";
|
|
3
|
+
declare const meta: {
|
|
4
|
+
title: string;
|
|
5
|
+
component: typeof Callout;
|
|
6
|
+
tags: string[];
|
|
7
|
+
parameters: {
|
|
8
|
+
docs: {
|
|
9
|
+
description: {
|
|
10
|
+
component: string;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
argTypes: {
|
|
15
|
+
type: {
|
|
16
|
+
control: "inline-radio";
|
|
17
|
+
options: string[];
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
args: {
|
|
21
|
+
type: "caution";
|
|
22
|
+
children: string;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
export default meta;
|
|
26
|
+
type Story = StoryObj<typeof meta>;
|
|
27
|
+
export declare const Default: Story;
|
|
28
|
+
export declare const AllTypes: Story;
|
|
29
|
+
export declare const CustomTitle: Story;
|
|
30
|
+
export declare const TitleHidden: Story;
|
|
31
|
+
//# sourceMappingURL=Callout.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Callout.stories.d.ts","sourceRoot":"","sources":["../../../src/components/Callout/Callout.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyBpC,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;CAkBsB,CAAC;AAEjC,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KASrB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KA4BtB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAezB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAczB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Callout.test.d.ts","sourceRoot":"","sources":["../../../src/components/Callout/Callout.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Callout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
/** Relative effort required to complete a guide. */
|
|
3
|
+
export type Difficulty = "easy" | "moderate" | "difficult";
|
|
4
|
+
export interface DifficultyBadgeProps {
|
|
5
|
+
/** Difficulty level — controls color and default label. */
|
|
6
|
+
difficulty: Difficulty;
|
|
7
|
+
/** Override the displayed text (defaults to a capitalized level name). */
|
|
8
|
+
label?: ReactNode;
|
|
9
|
+
/** Show the leading gauge icon. @default true */
|
|
10
|
+
showIcon?: boolean;
|
|
11
|
+
/** Chip size. @default "md" */
|
|
12
|
+
size?: "sm" | "md" | "lg";
|
|
13
|
+
className?: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Compact, color-coded indicator of how hard a guide is, built on HeroUI `Chip`.
|
|
17
|
+
* Mirrors iFixit's difficulty pill (easy → green, moderate → orange, difficult → red).
|
|
18
|
+
*/
|
|
19
|
+
export declare function DifficultyBadge({ difficulty, label, showIcon, size, className, }: DifficultyBadgeProps): import("react").JSX.Element;
|
|
20
|
+
//# sourceMappingURL=DifficultyBadge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DifficultyBadge.d.ts","sourceRoot":"","sources":["../../../src/components/DifficultyBadge/DifficultyBadge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,oDAAoD;AACpD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC;AAc3D,MAAM,WAAW,oBAAoB;IACnC,2DAA2D;IAC3D,UAAU,EAAE,UAAU,CAAC;IACvB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+BAA+B;IAC/B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAqBD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAC9B,UAAU,EACV,KAAK,EACL,QAAe,EACf,IAAW,EACX,SAAS,GACV,EAAE,oBAAoB,+BAiBtB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { StoryObj } from "@storybook/react-vite";
|
|
2
|
+
import { DifficultyBadge } from "./DifficultyBadge";
|
|
3
|
+
declare const meta: {
|
|
4
|
+
title: string;
|
|
5
|
+
component: typeof DifficultyBadge;
|
|
6
|
+
tags: string[];
|
|
7
|
+
parameters: {
|
|
8
|
+
docs: {
|
|
9
|
+
description: {
|
|
10
|
+
component: string;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
argTypes: {
|
|
15
|
+
difficulty: {
|
|
16
|
+
control: "inline-radio";
|
|
17
|
+
options: string[];
|
|
18
|
+
};
|
|
19
|
+
size: {
|
|
20
|
+
control: "inline-radio";
|
|
21
|
+
options: string[];
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
args: {
|
|
25
|
+
difficulty: "moderate";
|
|
26
|
+
showIcon: true;
|
|
27
|
+
size: "md";
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
export default meta;
|
|
31
|
+
type Story = StoryObj<typeof meta>;
|
|
32
|
+
export declare const Default: Story;
|
|
33
|
+
export declare const AllLevels: Story;
|
|
34
|
+
export declare const Sizes: Story;
|
|
35
|
+
export declare const WithoutIcon: Story;
|
|
36
|
+
export declare const CustomLabel: Story;
|
|
37
|
+
//# sourceMappingURL=DifficultyBadge.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DifficultyBadge.stories.d.ts","sourceRoot":"","sources":["../../../src/components/DifficultyBadge/DifficultyBadge.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAqBpD,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;CAmB8B,CAAC;AAEzC,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KASrB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAgBvB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAgBnB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KASzB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAUzB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DifficultyBadge.test.d.ts","sourceRoot":"","sources":["../../../src/components/DifficultyBadge/DifficultyBadge.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/DifficultyBadge/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import { type Difficulty } from "../DifficultyBadge";
|
|
3
|
+
export interface GuideLayoutProps {
|
|
4
|
+
/** `GuideLayout.Header`, `GuideLayout.Intro`, `GuideLayout.Sidebar`, and `GuideLayout.Content`. */
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
className?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface GuideLayoutHeaderProps {
|
|
9
|
+
/** Guide title. */
|
|
10
|
+
title: ReactNode;
|
|
11
|
+
/** Difficulty level — rendered as a `DifficultyBadge`. */
|
|
12
|
+
difficulty?: Difficulty;
|
|
13
|
+
/** Time estimate text, e.g. "20 – 30 minutes". */
|
|
14
|
+
timeEstimate?: ReactNode;
|
|
15
|
+
/** Byline / metadata line (contributors, last updated, …). */
|
|
16
|
+
meta?: ReactNode;
|
|
17
|
+
className?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface GuideLayoutIntroProps {
|
|
20
|
+
/** Introduction / overview copy beside the tools sidebar. */
|
|
21
|
+
children: ReactNode;
|
|
22
|
+
className?: string;
|
|
23
|
+
}
|
|
24
|
+
declare function GuideLayoutHeader({ title, difficulty, timeEstimate, meta, className, }: GuideLayoutHeaderProps): import("react").JSX.Element;
|
|
25
|
+
/** Introduction column — sits left of `Sidebar` on desktop. */
|
|
26
|
+
declare function GuideLayoutIntro({ children, className }: GuideLayoutIntroProps): import("react").JSX.Element;
|
|
27
|
+
/** "What you need" column — sits right of `Intro` on desktop. */
|
|
28
|
+
declare function GuideLayoutSidebar({ children, className, }: {
|
|
29
|
+
children: ReactNode;
|
|
30
|
+
className?: string;
|
|
31
|
+
}): import("react").JSX.Element;
|
|
32
|
+
/** Full-width main column — typically holds a `GuideStepList`. */
|
|
33
|
+
declare function GuideLayoutContent({ children, className, }: {
|
|
34
|
+
children: ReactNode;
|
|
35
|
+
className?: string;
|
|
36
|
+
}): import("react").JSX.Element;
|
|
37
|
+
/**
|
|
38
|
+
* Responsive page shell for a guide: a full-width `Header`, an intro row with
|
|
39
|
+
* `Intro` (description) beside `Sidebar` (tools/parts), then full-width `Content`
|
|
40
|
+
* (steps). On mobile the intro row stacks with intro first, then sidebar.
|
|
41
|
+
*/
|
|
42
|
+
export declare const GuideLayout: (({ children, className }: GuideLayoutProps) => import("react").JSX.Element) & {
|
|
43
|
+
Header: typeof GuideLayoutHeader;
|
|
44
|
+
Intro: typeof GuideLayoutIntro;
|
|
45
|
+
Sidebar: typeof GuideLayoutSidebar;
|
|
46
|
+
Content: typeof GuideLayoutContent;
|
|
47
|
+
};
|
|
48
|
+
export {};
|
|
49
|
+
//# sourceMappingURL=GuideLayout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GuideLayout.d.ts","sourceRoot":"","sources":["../../../src/components/GuideLayout/GuideLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAEL,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,gBAAgB;IAC/B,mGAAmG;IACnG,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,mBAAmB;IACnB,KAAK,EAAE,SAAS,CAAC;IACjB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,kDAAkD;IAClD,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,6DAA6D;IAC7D,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,iBAAS,iBAAiB,CAAC,EACzB,KAAK,EACL,UAAU,EACV,YAAY,EACZ,IAAI,EACJ,SAAS,GACV,EAAE,sBAAsB,+BA6BxB;AAED,+DAA+D;AAC/D,iBAAS,gBAAgB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,qBAAqB,+BAMvE;AAED,iEAAiE;AACjE,iBAAS,kBAAkB,CAAC,EAC1B,QAAQ,EACR,SAAS,GACV,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BAMA;AAED,kEAAkE;AAClE,iBAAS,kBAAkB,CAAC,EAC1B,QAAQ,EACR,SAAS,GACV,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BAMA;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,6BAC4B,gBAAgB;;;;;CAkBnE,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { StoryObj } from "@storybook/react-vite";
|
|
2
|
+
declare const meta: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: (({ children, className }: import("./GuideLayout").GuideLayoutProps) => import("react").JSX.Element) & {
|
|
5
|
+
Header: ({ title, difficulty, timeEstimate, meta, className, }: import("./GuideLayout").GuideLayoutHeaderProps) => import("react").JSX.Element;
|
|
6
|
+
Intro: ({ children, className }: import("./GuideLayout").GuideLayoutIntroProps) => import("react").JSX.Element;
|
|
7
|
+
Sidebar: ({ children, className, }: {
|
|
8
|
+
children: import("react").ReactNode;
|
|
9
|
+
className?: string;
|
|
10
|
+
}) => import("react").JSX.Element;
|
|
11
|
+
Content: ({ children, className, }: {
|
|
12
|
+
children: import("react").ReactNode;
|
|
13
|
+
className?: string;
|
|
14
|
+
}) => import("react").JSX.Element;
|
|
15
|
+
};
|
|
16
|
+
parameters: {
|
|
17
|
+
layout: string;
|
|
18
|
+
docs: {
|
|
19
|
+
description: {
|
|
20
|
+
component: string;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
tags: string[];
|
|
25
|
+
args: {
|
|
26
|
+
children: null;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
export default meta;
|
|
30
|
+
type Story = StoryObj<typeof meta>;
|
|
31
|
+
export declare const FullGuide: Story;
|
|
32
|
+
export declare const WithoutSidebar: Story;
|
|
33
|
+
//# sourceMappingURL=GuideLayout.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GuideLayout.stories.d.ts","sourceRoot":"","sources":["../../../src/components/GuideLayout/GuideLayout.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AA4B5D,QAAA,MAAM,IAAI;;;;;;;qBAyCwB,CAAC;;;;qBAOvB,CAAC;;;;;;;;;;;;;;;CAvCuB,CAAC;AAErC,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,SAAS,EAAE,KAsGvB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAsD5B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GuideLayout.test.d.ts","sourceRoot":"","sources":["../../../src/components/GuideLayout/GuideLayout.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/GuideLayout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EACV,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import { type GuideColor } from "../../types/colors";
|
|
3
|
+
export interface GuideStepProps {
|
|
4
|
+
/** Step number shown in the badge. Auto-assigned when inside `GuideStepList`. */
|
|
5
|
+
number?: number;
|
|
6
|
+
/** Step heading. */
|
|
7
|
+
title?: ReactNode;
|
|
8
|
+
/** Controlled completion state. */
|
|
9
|
+
isCompleted?: boolean;
|
|
10
|
+
/** Initial completion state when uncontrolled. @default false */
|
|
11
|
+
defaultCompleted?: boolean;
|
|
12
|
+
/** Fires whenever completion changes (controlled or not). */
|
|
13
|
+
onCompletedChange?: (completed: boolean) => void;
|
|
14
|
+
/** Render the "mark complete" checkbox. @default true */
|
|
15
|
+
completable?: boolean;
|
|
16
|
+
/** Step body — requires `GuideStep.Media` (≥1 image) and `GuideStep.Bullets` (≥1 bullet). */
|
|
17
|
+
children?: ReactNode;
|
|
18
|
+
className?: string;
|
|
19
|
+
}
|
|
20
|
+
/** Bullet presentation — `dot` uses a colored dot; others use semantic icons and labels. */
|
|
21
|
+
export type GuideStepBulletVariant = "dot" | "caution" | "reminder" | "note";
|
|
22
|
+
export interface GuideStepBulletProps {
|
|
23
|
+
/**
|
|
24
|
+
* Bullet style. `dot` renders a colored dot (link to `MediaFigure`
|
|
25
|
+
* annotations); `caution`, `reminder`, and `note` render iFixit-style semantic bullets.
|
|
26
|
+
* @default "dot"
|
|
27
|
+
*/
|
|
28
|
+
variant?: GuideStepBulletVariant;
|
|
29
|
+
/** Marker color for `dot` bullets — match a related `MediaFigure` annotation. @default "GREY" */
|
|
30
|
+
color?: GuideColor;
|
|
31
|
+
/** Override the auto-generated label for semantic bullet types. */
|
|
32
|
+
label?: ReactNode;
|
|
33
|
+
/** Hide the auto-generated label for `caution`, `reminder`, and `note` bullets. */
|
|
34
|
+
hideLabel?: boolean;
|
|
35
|
+
children: ReactNode;
|
|
36
|
+
className?: string;
|
|
37
|
+
}
|
|
38
|
+
/** Slot for up to three `MediaFigure`s — parent renders main image + hover thumbnails. */
|
|
39
|
+
declare function GuideStepMedia(_props: {
|
|
40
|
+
children?: ReactNode;
|
|
41
|
+
}): null;
|
|
42
|
+
/** Ordered container for `GuideStep.Bullet`s. */
|
|
43
|
+
declare function GuideStepBullets({ children, className, }: {
|
|
44
|
+
children: ReactNode;
|
|
45
|
+
className?: string;
|
|
46
|
+
}): import("react").JSX.Element;
|
|
47
|
+
/** A single instruction line — dot bullets or semantic caution / reminder / note bullets. */
|
|
48
|
+
declare function GuideStepBullet({ variant, color, label, hideLabel, children, className, }: GuideStepBulletProps): import("react").JSX.Element;
|
|
49
|
+
declare function GuideStepRoot({ number, title, isCompleted, defaultCompleted, onCompletedChange, completable, children, className, }: GuideStepProps): import("react").JSX.Element;
|
|
50
|
+
/**
|
|
51
|
+
* A single numbered guide step: header with number badge and optional completion
|
|
52
|
+
* checkbox, plus a two-column body (main image left, thumbnails + bullets right).
|
|
53
|
+
* Requires at least one `MediaFigure` in `GuideStep.Media` and one `GuideStep.Bullet`
|
|
54
|
+
* in `GuideStep.Bullets`. Up to three images share a hover thumbnail gallery.
|
|
55
|
+
*/
|
|
56
|
+
export declare const GuideStep: typeof GuideStepRoot & {
|
|
57
|
+
Media: typeof GuideStepMedia;
|
|
58
|
+
Bullets: typeof GuideStepBullets;
|
|
59
|
+
Bullet: typeof GuideStepBullet;
|
|
60
|
+
};
|
|
61
|
+
export {};
|
|
62
|
+
//# sourceMappingURL=GuideStep.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GuideStep.d.ts","sourceRoot":"","sources":["../../../src/components/GuideStep/GuideStep.tsx"],"names":[],"mappings":"AAEA,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAIf,OAAO,EAAU,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAW7D,MAAM,WAAW,cAAc;IAC7B,iFAAiF;IACjF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,mCAAmC;IACnC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,6DAA6D;IAC7D,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,yDAAyD;IACzD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6FAA6F;IAC7F,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,4FAA4F;AAC5F,MAAM,MAAM,sBAAsB,GAAG,KAAK,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;AAE7E,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,iGAAiG;IACjG,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,mEAAmE;IACnE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,mFAAmF;IACnF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA0HD,0FAA0F;AAC1F,iBAAS,cAAc,CAAC,MAAM,EAAE;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,QAEvD;AAED,iDAAiD;AACjD,iBAAS,gBAAgB,CAAC,EACxB,QAAQ,EACR,SAAS,GACV,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BAIA;AAED,6FAA6F;AAC7F,iBAAS,eAAe,CAAC,EACvB,OAAe,EACf,KAAc,EACd,KAAK,EACL,SAAiB,EACjB,QAAQ,EACR,SAAS,GACV,EAAE,oBAAoB,+BA2CtB;AA2ED,iBAAS,aAAa,CAAC,EACrB,MAAM,EACN,KAAK,EACL,WAAW,EACX,gBAAwB,EACxB,iBAAiB,EACjB,WAAkB,EAClB,QAAQ,EACR,SAAS,GACV,EAAE,cAAc,+BAkFhB;AAED;;;;;GAKG;AACH,eAAO,MAAM,SAAS;;;;CAIpB,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { StoryObj } from "@storybook/react-vite";
|
|
2
|
+
declare const meta: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: (({ number, title, isCompleted, defaultCompleted, onCompletedChange, completable, children, className, }: import("./GuideStep").GuideStepProps) => import("react").JSX.Element) & {
|
|
5
|
+
Media: (_props: {
|
|
6
|
+
children?: import("react").ReactNode;
|
|
7
|
+
}) => null;
|
|
8
|
+
Bullets: ({ children, className, }: {
|
|
9
|
+
children: import("react").ReactNode;
|
|
10
|
+
className?: string;
|
|
11
|
+
}) => import("react").JSX.Element;
|
|
12
|
+
Bullet: ({ variant, color, label, hideLabel, children, className, }: import("./GuideStep").GuideStepBulletProps) => import("react").JSX.Element;
|
|
13
|
+
};
|
|
14
|
+
tags: string[];
|
|
15
|
+
parameters: {
|
|
16
|
+
docs: {
|
|
17
|
+
description: {
|
|
18
|
+
component: string;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
args: {
|
|
23
|
+
number: number;
|
|
24
|
+
title: string;
|
|
25
|
+
completable: true;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
export default meta;
|
|
29
|
+
type Story = StoryObj<typeof meta>;
|
|
30
|
+
export declare const Anatomy: Story;
|
|
31
|
+
export declare const MultipleImages: Story;
|
|
32
|
+
export declare const DotBullets: Story;
|
|
33
|
+
export declare const SemanticBullets: Story;
|
|
34
|
+
export declare const Completed: Story;
|
|
35
|
+
export declare const WithoutCompletion: Story;
|
|
36
|
+
//# sourceMappingURL=GuideStep.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GuideStep.stories.d.ts","sourceRoot":"","sources":["../../../src/components/GuideStep/GuideStep.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAqD5D,QAAA,MAAM,IAAI;;;;oBAuHA,CAAA;;;;qBAKA,CAAC;;;;;;;;;;;;;;;;;CAhHuB,CAAC;AAEnC,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAgCrB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAmC5B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAsCxB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAoC7B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAwBvB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KA0B/B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GuideStep.test.d.ts","sourceRoot":"","sources":["../../../src/components/GuideStep/GuideStep.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/GuideStep/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
export interface GuideProgress {
|
|
3
|
+
completed: number;
|
|
4
|
+
total: number;
|
|
5
|
+
}
|
|
6
|
+
export interface GuideStepListProps {
|
|
7
|
+
/** `GuideStep` children — numbered automatically in order. */
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
/** Show the aggregate progress bar. @default true */
|
|
10
|
+
showProgress?: boolean;
|
|
11
|
+
/** Fires whenever the number of completed steps changes. */
|
|
12
|
+
onProgressChange?: (progress: GuideProgress) => void;
|
|
13
|
+
className?: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Ordered sequence of `GuideStep`s. Numbers each step in order, owns their
|
|
17
|
+
* completion state, and renders a derived progress bar — so a guide author only
|
|
18
|
+
* has to drop in steps. Listen to overall progress via `onProgressChange`.
|
|
19
|
+
*/
|
|
20
|
+
export declare function GuideStepList({ children, showProgress, onProgressChange, className, }: GuideStepListProps): import("react").JSX.Element;
|
|
21
|
+
//# sourceMappingURL=GuideStepList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GuideStepList.d.ts","sourceRoot":"","sources":["../../../src/components/GuideStepList/GuideStepList.tsx"],"names":[],"mappings":"AAEA,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAIf,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,8DAA8D;IAC9D,QAAQ,EAAE,SAAS,CAAC;IACpB,qDAAqD;IACrD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,YAAmB,EACnB,gBAAgB,EAChB,SAAS,GACV,EAAE,kBAAkB,+BAmEpB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { StoryObj } from "@storybook/react-vite";
|
|
2
|
+
import { GuideStepList } from "./GuideStepList";
|
|
3
|
+
declare const meta: {
|
|
4
|
+
title: string;
|
|
5
|
+
component: typeof GuideStepList;
|
|
6
|
+
tags: string[];
|
|
7
|
+
parameters: {
|
|
8
|
+
docs: {
|
|
9
|
+
description: {
|
|
10
|
+
component: string;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
args: {
|
|
15
|
+
children: null;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
export default meta;
|
|
19
|
+
type Story = StoryObj<typeof meta>;
|
|
20
|
+
export declare const Default: Story;
|
|
21
|
+
export declare const WithStartingProgress: Story;
|
|
22
|
+
export declare const WithoutProgressBar: Story;
|
|
23
|
+
//# sourceMappingURL=GuideStepList.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GuideStepList.stories.d.ts","sourceRoot":"","sources":["../../../src/components/GuideStepList/GuideStepList.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAkBhD,QAAA,MAAM,IAAI;;;;;;;;;;;;;;CAQ4B,CAAC;AAEvC,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAqDrB,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAmClC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAmChC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GuideStepList.test.d.ts","sourceRoot":"","sources":["../../../src/components/GuideStepList/GuideStepList.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/GuideStepList/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
|