@chan.run/design 0.1.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/dist/index.d.mts +170 -0
- package/dist/index.mjs +2035 -0
- package/package.json +38 -0
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import * as _$_chakra_ui_react0 from "@chakra-ui/react";
|
|
2
|
+
import { FlexProps, TextProps } from "@chakra-ui/react";
|
|
3
|
+
import { ReactNode } from "react";
|
|
4
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
5
|
+
|
|
6
|
+
//#region src/components/ColorModeButton.d.ts
|
|
7
|
+
declare function ColorModeButton(props: FlexProps): _$react_jsx_runtime0.JSX.Element;
|
|
8
|
+
//#endregion
|
|
9
|
+
//#region src/components/Splash.d.ts
|
|
10
|
+
interface SplashProps {
|
|
11
|
+
/** While true, the splash covers the screen. Flip to false to reveal. */
|
|
12
|
+
open: boolean;
|
|
13
|
+
/** Hub content — wordmark, lock form, logo + spinner, etc. */
|
|
14
|
+
children: ReactNode;
|
|
15
|
+
/** Which axis the panels split along. */
|
|
16
|
+
orientation?: "vertical" | "horizontal";
|
|
17
|
+
/** Hub size — controls width and overhang. */
|
|
18
|
+
size?: "sm" | "md" | "lg";
|
|
19
|
+
/** Hold the splash this long after `open` flips to false before splitting. */
|
|
20
|
+
holdMs?: number;
|
|
21
|
+
/** Duration of the split-open transition. */
|
|
22
|
+
revealMs?: number;
|
|
23
|
+
}
|
|
24
|
+
declare function Splash({
|
|
25
|
+
open,
|
|
26
|
+
children,
|
|
27
|
+
orientation,
|
|
28
|
+
size,
|
|
29
|
+
holdMs,
|
|
30
|
+
revealMs
|
|
31
|
+
}: SplashProps): _$react_jsx_runtime0.JSX.Element | null;
|
|
32
|
+
//#endregion
|
|
33
|
+
//#region src/components/slides/types.d.ts
|
|
34
|
+
/** Supported slide layout templates */
|
|
35
|
+
type SlideLayout = "default" | "title" | "section" | "quote" | "blank";
|
|
36
|
+
/** Props accepted by the SlideLayout component */
|
|
37
|
+
interface SlideProps {
|
|
38
|
+
/** Layout template to apply */
|
|
39
|
+
layout: SlideLayout;
|
|
40
|
+
/** Rendered slide content (React components, not raw HTML) */
|
|
41
|
+
children: ReactNode;
|
|
42
|
+
}
|
|
43
|
+
/** A slide in the viewer — layout + pre-rendered content */
|
|
44
|
+
interface SlideEntry {
|
|
45
|
+
layout: SlideLayout;
|
|
46
|
+
children: ReactNode;
|
|
47
|
+
}
|
|
48
|
+
/** Props accepted by the SlideViewer component */
|
|
49
|
+
interface SlideViewerProps {
|
|
50
|
+
/** All slides in the deck */
|
|
51
|
+
slides: SlideEntry[];
|
|
52
|
+
/** Currently active slide index (0-based) */
|
|
53
|
+
currentSlide: number;
|
|
54
|
+
/** Callback when the user navigates to a different slide */
|
|
55
|
+
onSlideChange: (index: number) => void;
|
|
56
|
+
/** Whether fullscreen / presentation mode is active */
|
|
57
|
+
isPresenting?: boolean;
|
|
58
|
+
/** Toggle presentation mode */
|
|
59
|
+
onTogglePresent?: () => void;
|
|
60
|
+
}
|
|
61
|
+
/** Props accepted by the SlideControls component */
|
|
62
|
+
interface SlideControlsProps {
|
|
63
|
+
/** Current slide index (0-based) */
|
|
64
|
+
currentSlide: number;
|
|
65
|
+
/** Total number of slides */
|
|
66
|
+
totalSlides: number;
|
|
67
|
+
/** Navigate to a specific slide */
|
|
68
|
+
onSlideChange: (index: number) => void;
|
|
69
|
+
/** Toggle presentation mode */
|
|
70
|
+
onTogglePresent?: () => void;
|
|
71
|
+
/** Whether presentation mode is active */
|
|
72
|
+
isPresenting?: boolean;
|
|
73
|
+
}
|
|
74
|
+
/** Props accepted by the DeckCard component */
|
|
75
|
+
interface DeckCardProps {
|
|
76
|
+
/** Deck URL slug */
|
|
77
|
+
slug: string;
|
|
78
|
+
/** Deck title */
|
|
79
|
+
title: string;
|
|
80
|
+
/** Presentation date (YYYY-MM-DD) */
|
|
81
|
+
date: string;
|
|
82
|
+
/** One-line summary */
|
|
83
|
+
description: string;
|
|
84
|
+
/** Categorization tags */
|
|
85
|
+
tags?: string[];
|
|
86
|
+
/** Number of slides */
|
|
87
|
+
slideCount: number;
|
|
88
|
+
/** Click handler (for navigation) */
|
|
89
|
+
onClick?: (slug: string) => void;
|
|
90
|
+
}
|
|
91
|
+
//#endregion
|
|
92
|
+
//#region src/components/slides/DeckCard.d.ts
|
|
93
|
+
declare function DeckCard({
|
|
94
|
+
slug,
|
|
95
|
+
title,
|
|
96
|
+
date,
|
|
97
|
+
description,
|
|
98
|
+
tags,
|
|
99
|
+
slideCount,
|
|
100
|
+
onClick
|
|
101
|
+
}: DeckCardProps): _$react_jsx_runtime0.JSX.Element;
|
|
102
|
+
//#endregion
|
|
103
|
+
//#region src/components/slides/SlideComponents.d.ts
|
|
104
|
+
type ComponentMap = Record<string, React.ComponentType<Record<string, unknown>>>;
|
|
105
|
+
/**
|
|
106
|
+
* Get a component mapping for rendering slide markdown content.
|
|
107
|
+
*
|
|
108
|
+
* Each layout has specific overrides for visual treatment:
|
|
109
|
+
* - `default` — standard content slide
|
|
110
|
+
* - `title` — large centered heading, uppercase
|
|
111
|
+
* - `section` — centered divider heading
|
|
112
|
+
* - `quote` — large italic centered text
|
|
113
|
+
* - `blank` — same as default (layout wrapper handles blank)
|
|
114
|
+
*/
|
|
115
|
+
declare function getSlideComponents(layout?: string): ComponentMap;
|
|
116
|
+
//#endregion
|
|
117
|
+
//#region src/components/slides/SlideControls.d.ts
|
|
118
|
+
declare function SlideControls({
|
|
119
|
+
currentSlide,
|
|
120
|
+
totalSlides,
|
|
121
|
+
onSlideChange,
|
|
122
|
+
onTogglePresent,
|
|
123
|
+
isPresenting
|
|
124
|
+
}: SlideControlsProps): _$react_jsx_runtime0.JSX.Element;
|
|
125
|
+
//#endregion
|
|
126
|
+
//#region src/components/slides/SlideLayout.d.ts
|
|
127
|
+
declare function SlideLayoutComponent({
|
|
128
|
+
layout,
|
|
129
|
+
children
|
|
130
|
+
}: SlideProps): _$react_jsx_runtime0.JSX.Element;
|
|
131
|
+
//#endregion
|
|
132
|
+
//#region src/components/slides/SlideViewer.d.ts
|
|
133
|
+
declare function SlideViewer({
|
|
134
|
+
slides,
|
|
135
|
+
currentSlide,
|
|
136
|
+
onSlideChange,
|
|
137
|
+
isPresenting,
|
|
138
|
+
onTogglePresent
|
|
139
|
+
}: SlideViewerProps): _$react_jsx_runtime0.JSX.Element | null;
|
|
140
|
+
//#endregion
|
|
141
|
+
//#region src/components/Topbar.d.ts
|
|
142
|
+
interface TopbarProps {
|
|
143
|
+
/** When provided, a hamburger menu button is rendered. Omit to hide it. */
|
|
144
|
+
onMenuOpen?: () => void;
|
|
145
|
+
}
|
|
146
|
+
declare function Topbar({
|
|
147
|
+
onMenuOpen
|
|
148
|
+
}: TopbarProps): _$react_jsx_runtime0.JSX.Element;
|
|
149
|
+
//#endregion
|
|
150
|
+
//#region src/components/Wordmark.d.ts
|
|
151
|
+
interface WordmarkProps extends Omit<TextProps, "children"> {
|
|
152
|
+
/** Wordmark size. Pass any Chakra fontSize value. */
|
|
153
|
+
fontSize?: TextProps["fontSize"];
|
|
154
|
+
/** When true, the orange dot opacity-cycles via the `chan-pulse` keyframe. */
|
|
155
|
+
pulseDot?: boolean;
|
|
156
|
+
}
|
|
157
|
+
declare function Wordmark({
|
|
158
|
+
fontSize,
|
|
159
|
+
color,
|
|
160
|
+
pulseDot,
|
|
161
|
+
...rest
|
|
162
|
+
}: WordmarkProps): _$react_jsx_runtime0.JSX.Element;
|
|
163
|
+
//#endregion
|
|
164
|
+
//#region src/TokenShowcase.d.ts
|
|
165
|
+
declare function TokenShowcase(): _$react_jsx_runtime0.JSX.Element;
|
|
166
|
+
//#endregion
|
|
167
|
+
//#region src/theme.d.ts
|
|
168
|
+
declare const system: _$_chakra_ui_react0.SystemContext;
|
|
169
|
+
//#endregion
|
|
170
|
+
export { ColorModeButton, DeckCard, type DeckCardProps, SlideControls, type SlideControlsProps, type SlideEntry, SlideLayoutComponent as SlideLayout, type SlideLayout as SlideLayoutType, type SlideProps, SlideViewer, type SlideViewerProps, Splash, type SplashProps, TokenShowcase, Topbar, type TopbarProps, Wordmark, type WordmarkProps, getSlideComponents, system };
|