@krizaka/ui 2.2.0 → 2.3.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 (263) hide show
  1. package/README.md +17 -7
  2. package/dist/{button-Cgfkg_3y.d.ts → button-BMAO7dKF.d.ts} +29 -2
  3. package/dist/button.d.ts +32 -5
  4. package/dist/button.js +62 -9
  5. package/dist/button.js.map +1 -1
  6. package/dist/chip-link.d.ts +53 -0
  7. package/dist/chip-link.js +32 -0
  8. package/dist/chip-link.js.map +1 -0
  9. package/dist/chunk-43PTCDTL.js +31 -0
  10. package/dist/chunk-43PTCDTL.js.map +1 -0
  11. package/dist/chunk-6ISW63JI.js +11 -0
  12. package/dist/chunk-6ISW63JI.js.map +1 -0
  13. package/dist/chunk-HAQWKORZ.js +117 -0
  14. package/dist/chunk-HAQWKORZ.js.map +1 -0
  15. package/dist/{chunk-FHYZSO2S.js → chunk-R6SDS7JM.js} +5 -3
  16. package/dist/chunk-R6SDS7JM.js.map +1 -0
  17. package/dist/chunk-RUPNPMP3.js +103 -0
  18. package/dist/chunk-RUPNPMP3.js.map +1 -0
  19. package/dist/chunk-VDR2EP6K.js +49 -0
  20. package/dist/chunk-VDR2EP6K.js.map +1 -0
  21. package/dist/chunk-WEVYKZIF.js +33 -0
  22. package/dist/chunk-WEVYKZIF.js.map +1 -0
  23. package/dist/command.d.ts +7 -7
  24. package/dist/command.js +3 -2
  25. package/dist/command.js.map +1 -1
  26. package/dist/confirm-button.d.ts +1 -1
  27. package/dist/confirm-button.js +2 -1
  28. package/dist/confirm-button.js.map +1 -1
  29. package/dist/{dialog-GQ4Nvuyf.d.ts → dialog-D42QwYb_.d.ts} +11 -1
  30. package/dist/dialog.d.ts +1 -1
  31. package/dist/dialog.js +3 -2
  32. package/dist/dialog.js.map +1 -1
  33. package/dist/glow-card.d.ts +20 -0
  34. package/dist/glow-card.js +30 -0
  35. package/dist/glow-card.js.map +1 -0
  36. package/dist/index.d.ts +2 -20
  37. package/dist/index.js +7 -64
  38. package/dist/index.js.map +1 -1
  39. package/dist/iso.d.ts +400 -0
  40. package/dist/iso.js +363 -0
  41. package/dist/iso.js.map +1 -0
  42. package/dist/loader.d.ts +206 -0
  43. package/dist/loader.js +138 -0
  44. package/dist/loader.js.map +1 -0
  45. package/dist/marquee.d.ts +33 -0
  46. package/dist/marquee.js +52 -0
  47. package/dist/marquee.js.map +1 -0
  48. package/dist/meter.d.ts +146 -0
  49. package/dist/meter.js +107 -0
  50. package/dist/meter.js.map +1 -0
  51. package/dist/motion.css +394 -3
  52. package/dist/motion.d.ts +46 -0
  53. package/dist/motion.js +10 -0
  54. package/dist/motion.js.map +1 -0
  55. package/dist/nav-bar.d.ts +178 -0
  56. package/dist/nav-bar.js +157 -0
  57. package/dist/nav-bar.js.map +1 -0
  58. package/dist/number-ticker.d.ts +32 -0
  59. package/dist/number-ticker.js +61 -0
  60. package/dist/number-ticker.js.map +1 -0
  61. package/dist/progress.d.ts +56 -1
  62. package/dist/progress.js +72 -25
  63. package/dist/progress.js.map +1 -1
  64. package/dist/skeleton.d.ts +18 -3
  65. package/dist/skeleton.js +9 -1
  66. package/dist/skeleton.js.map +1 -1
  67. package/dist/spinner.d.ts +21 -5
  68. package/dist/spinner.js +13 -12
  69. package/dist/spinner.js.map +1 -1
  70. package/dist/stepper.d.ts +112 -0
  71. package/dist/stepper.js +67 -0
  72. package/dist/stepper.js.map +1 -0
  73. package/dist/tabs.d.ts +1 -1
  74. package/dist/tabs.js +14 -8
  75. package/dist/tabs.js.map +1 -1
  76. package/dist/theme.d.ts +1 -1
  77. package/dist/theme.js +2 -1
  78. package/dist/theme.js.map +1 -1
  79. package/dist/toast.d.ts +39 -4
  80. package/dist/toast.js +81 -7
  81. package/dist/toast.js.map +1 -1
  82. package/package.json +148 -8
  83. package/registry/alert.json +1 -1
  84. package/registry/avatar.json +1 -1
  85. package/registry/badge.json +1 -1
  86. package/registry/button.json +232 -26
  87. package/registry/card.json +1 -1
  88. package/registry/checkbox.json +1 -1
  89. package/registry/chip-link.json +158 -0
  90. package/registry/chip.json +1 -1
  91. package/registry/command.json +1 -1
  92. package/registry/confirm-button.json +91 -7
  93. package/registry/countdown.json +1 -1
  94. package/registry/dialog.json +15 -7
  95. package/registry/dropdown-menu.json +1 -1
  96. package/registry/empty-state.json +1 -1
  97. package/registry/examples/button/error.js +11 -0
  98. package/registry/examples/button/error.tsx +10 -0
  99. package/registry/examples/button/loading.tsx +1 -1
  100. package/registry/examples/button/save-flow.d.ts +4 -0
  101. package/registry/examples/button/save-flow.js +28 -0
  102. package/registry/examples/button/save-flow.tsx +24 -0
  103. package/registry/examples/button/signature.d.ts +4 -0
  104. package/registry/examples/button/signature.js +17 -0
  105. package/registry/examples/button/signature.tsx +19 -0
  106. package/registry/examples/button/upload-progress.d.ts +4 -0
  107. package/registry/examples/button/upload-progress.js +23 -0
  108. package/registry/examples/button/upload-progress.tsx +26 -0
  109. package/registry/examples/chip-link/filters.d.ts +4 -0
  110. package/registry/examples/chip-link/filters.js +12 -0
  111. package/registry/examples/chip-link/filters.tsx +17 -0
  112. package/registry/examples/dialog/left.d.ts +4 -0
  113. package/registry/examples/dialog/left.js +22 -0
  114. package/registry/examples/dialog/left.tsx +32 -0
  115. package/registry/examples/glow-card/link-card.d.ts +4 -0
  116. package/registry/examples/glow-card/link-card.js +14 -0
  117. package/registry/examples/glow-card/link-card.tsx +13 -0
  118. package/registry/examples/glow-card/plans.d.ts +4 -0
  119. package/registry/examples/glow-card/plans.js +25 -0
  120. package/registry/examples/glow-card/plans.tsx +26 -0
  121. package/registry/examples/glow-card/spotlight.d.ts +4 -0
  122. package/registry/examples/glow-card/spotlight.js +14 -0
  123. package/registry/examples/glow-card/spotlight.tsx +15 -0
  124. package/registry/examples/iso/compose.d.ts +4 -0
  125. package/registry/examples/iso/compose.js +22 -0
  126. package/registry/examples/iso/compose.tsx +19 -0
  127. package/registry/examples/iso/orazaka-hero.d.ts +4 -0
  128. package/registry/examples/iso/orazaka-hero.js +26 -0
  129. package/registry/examples/iso/orazaka-hero.tsx +21 -0
  130. package/registry/examples/iso/orochia-hero.d.ts +4 -0
  131. package/registry/examples/iso/orochia-hero.js +29 -0
  132. package/registry/examples/iso/orochia-hero.tsx +23 -0
  133. package/registry/examples/iso/still.d.ts +4 -0
  134. package/registry/examples/iso/still.js +21 -0
  135. package/registry/examples/iso/still.tsx +15 -0
  136. package/registry/examples/loader/endings.d.ts +4 -0
  137. package/registry/examples/loader/endings.js +14 -0
  138. package/registry/examples/loader/endings.tsx +11 -0
  139. package/registry/examples/loader/fetch-flow.d.ts +4 -0
  140. package/registry/examples/loader/fetch-flow.js +24 -0
  141. package/registry/examples/loader/fetch-flow.tsx +24 -0
  142. package/registry/examples/loader/minimal.d.ts +4 -0
  143. package/registry/examples/loader/minimal.js +11 -0
  144. package/registry/examples/loader/minimal.tsx +6 -0
  145. package/registry/examples/loader/overlay.d.ts +4 -0
  146. package/registry/examples/loader/overlay.js +16 -0
  147. package/registry/examples/loader/overlay.tsx +13 -0
  148. package/registry/examples/loader/region-handover.d.ts +4 -0
  149. package/registry/examples/loader/region-handover.js +42 -0
  150. package/registry/examples/loader/region-handover.tsx +29 -0
  151. package/registry/examples/loader/upload-eta.d.ts +4 -0
  152. package/registry/examples/loader/upload-eta.js +11 -0
  153. package/registry/examples/loader/upload-eta.tsx +10 -0
  154. package/registry/examples/marquee/cards.d.ts +4 -0
  155. package/registry/examples/marquee/cards.js +23 -0
  156. package/registry/examples/marquee/cards.tsx +21 -0
  157. package/registry/examples/marquee/logos.d.ts +4 -0
  158. package/registry/examples/marquee/logos.js +12 -0
  159. package/registry/examples/marquee/logos.tsx +17 -0
  160. package/registry/examples/meter/balance.d.ts +4 -0
  161. package/registry/examples/meter/balance.js +14 -0
  162. package/registry/examples/meter/balance.tsx +15 -0
  163. package/registry/examples/meter/quota.d.ts +4 -0
  164. package/registry/examples/meter/quota.js +15 -0
  165. package/registry/examples/meter/quota.tsx +12 -0
  166. package/registry/examples/meter/split.d.ts +4 -0
  167. package/registry/examples/meter/split.js +18 -0
  168. package/registry/examples/meter/split.tsx +18 -0
  169. package/registry/examples/nav-bar/app-bar.d.ts +4 -0
  170. package/registry/examples/nav-bar/app-bar.js +22 -0
  171. package/registry/examples/nav-bar/app-bar.tsx +21 -0
  172. package/registry/examples/nav-bar/menu-open.d.ts +4 -0
  173. package/registry/examples/nav-bar/menu-open.js +26 -0
  174. package/registry/examples/nav-bar/menu-open.tsx +26 -0
  175. package/registry/examples/nav-bar/site.d.ts +4 -0
  176. package/registry/examples/nav-bar/site.js +31 -0
  177. package/registry/examples/nav-bar/site.tsx +36 -0
  178. package/registry/examples/number-ticker/gradient.d.ts +4 -0
  179. package/registry/examples/number-ticker/gradient.js +11 -0
  180. package/registry/examples/number-ticker/gradient.tsx +10 -0
  181. package/registry/examples/number-ticker/live-total.d.ts +4 -0
  182. package/registry/examples/number-ticker/live-total.js +17 -0
  183. package/registry/examples/number-ticker/live-total.tsx +21 -0
  184. package/registry/examples/number-ticker/stats.d.ts +4 -0
  185. package/registry/examples/number-ticker/stats.js +19 -0
  186. package/registry/examples/number-ticker/stats.tsx +23 -0
  187. package/registry/examples/progress/buffer.d.ts +4 -0
  188. package/registry/examples/progress/buffer.js +11 -0
  189. package/registry/examples/progress/buffer.tsx +10 -0
  190. package/registry/examples/progress/statuses.d.ts +4 -0
  191. package/registry/examples/progress/statuses.js +14 -0
  192. package/registry/examples/progress/statuses.tsx +11 -0
  193. package/registry/examples/progress/steps.d.ts +4 -0
  194. package/registry/examples/progress/steps.js +14 -0
  195. package/registry/examples/progress/steps.tsx +13 -0
  196. package/registry/examples/progress/upload.d.ts +4 -0
  197. package/registry/examples/progress/upload.js +11 -0
  198. package/registry/examples/progress/upload.tsx +10 -0
  199. package/registry/examples/skeleton/paragraph.d.ts +4 -0
  200. package/registry/examples/skeleton/paragraph.js +14 -0
  201. package/registry/examples/skeleton/paragraph.tsx +12 -0
  202. package/registry/examples/skeleton/shape-of-content.d.ts +4 -0
  203. package/registry/examples/skeleton/shape-of-content.js +23 -0
  204. package/registry/examples/skeleton/shape-of-content.tsx +26 -0
  205. package/registry/examples/spinner/default.js +5 -2
  206. package/registry/examples/spinner/default.tsx +7 -1
  207. package/registry/examples/spinner/sizes.js +2 -1
  208. package/registry/examples/spinner/sizes.tsx +2 -0
  209. package/registry/examples/spinner/value.d.ts +4 -0
  210. package/registry/examples/spinner/value.js +11 -0
  211. package/registry/examples/spinner/value.tsx +12 -0
  212. package/registry/examples/stepper/checkout.d.ts +4 -0
  213. package/registry/examples/stepper/checkout.js +22 -0
  214. package/registry/examples/stepper/checkout.tsx +17 -0
  215. package/registry/examples/stepper/failed.d.ts +4 -0
  216. package/registry/examples/stepper/failed.js +26 -0
  217. package/registry/examples/stepper/failed.tsx +21 -0
  218. package/registry/examples/stepper/job.d.ts +4 -0
  219. package/registry/examples/stepper/job.js +32 -0
  220. package/registry/examples/stepper/job.tsx +28 -0
  221. package/registry/examples/toast/grouped.d.ts +4 -0
  222. package/registry/examples/toast/grouped.js +21 -0
  223. package/registry/examples/toast/grouped.tsx +23 -0
  224. package/registry/examples/toast/undo.d.ts +4 -0
  225. package/registry/examples/toast/undo.js +29 -0
  226. package/registry/examples/toast/undo.tsx +30 -0
  227. package/registry/examples/toast/upload-progress.d.ts +4 -0
  228. package/registry/examples/toast/upload-progress.js +29 -0
  229. package/registry/examples/toast/upload-progress.tsx +31 -0
  230. package/registry/field.json +1 -1
  231. package/registry/glow-card.json +162 -0
  232. package/registry/index.json +191 -20
  233. package/registry/iso.json +1355 -0
  234. package/registry/kbd.json +1 -1
  235. package/registry/loader.json +399 -0
  236. package/registry/marquee.json +225 -0
  237. package/registry/mascots.json +3 -3
  238. package/registry/meter.json +324 -0
  239. package/registry/nav-bar.json +480 -0
  240. package/registry/number-ticker.json +219 -0
  241. package/registry/page-header.json +1 -1
  242. package/registry/popover.json +1 -1
  243. package/registry/progress.json +116 -11
  244. package/registry/radio-group.json +1 -1
  245. package/registry/section-backdrop.json +1 -1
  246. package/registry/separator.json +1 -1
  247. package/registry/skeleton.json +69 -13
  248. package/registry/slider.json +1 -1
  249. package/registry/slot.json +1 -1
  250. package/registry/spinner.json +91 -27
  251. package/registry/stat.json +1 -1
  252. package/registry/stepper.json +174 -0
  253. package/registry/switch.json +1 -1
  254. package/registry/tabs.json +11 -7
  255. package/registry/theme.json +3 -3
  256. package/registry/toast.json +41 -13
  257. package/registry/tooltip.json +1 -1
  258. package/dist/chunk-FHYZSO2S.js.map +0 -1
  259. package/dist/chunk-PESA2R4U.js +0 -51
  260. package/dist/chunk-PESA2R4U.js.map +0 -1
  261. package/registry/examples/spinner/muted.js +0 -11
  262. package/registry/examples/spinner/muted.tsx +0 -6
  263. /package/registry/examples/{spinner/muted.d.ts → button/error.d.ts} +0 -0
package/dist/iso.d.ts ADDED
@@ -0,0 +1,400 @@
1
+ import * as React from 'react';
2
+
3
+ /** A point in plan (x, y) or on screen (X, Y). */
4
+ type Vec2 = readonly [number, number];
5
+ /** A point in the world: x, y on the floor, z up. */
6
+ type Vec3 = readonly [number, number, number];
7
+ /** The screen point of a world point. */
8
+ declare function project([x, y, z]: Vec3): Vec2;
9
+ /** A regular hexagon footprint (flat top in plan), centre (cx, cy), radius r. */
10
+ declare function hexagon(cx: number, cy: number, r: number): Vec2[];
11
+ /** A rectangle with 45° cut corners (the Krizaka chamfer), centre (cx, cy), size w × d, cut c (0: a plain rectangle). */
12
+ declare function cutRect(cx: number, cy: number, w: number, d: number, c: number): Vec2[];
13
+ /** The screen ellipse of a horizontal circle of radius r at height z: centre and radii. */
14
+ declare function isoCircle(cx: number, cy: number, z: number, r: number): {
15
+ cx: number;
16
+ cy: number;
17
+ rx: number;
18
+ ry: number;
19
+ };
20
+ /** A point on a circle of the floor plan: angle in degrees, 0 toward the lower right (+x), clockwise on screen. */
21
+ declare function onCircle(r: number, deg: number, [cx, cy]?: Vec2): Vec2;
22
+
23
+ /** How a solid is lit: the page's surfaces (`base`), the brand accent, accent → accent-2, or frosted glass. */
24
+ type IsoMaterial = "base" | "accent" | "accent2" | "glass";
25
+ /** The footprint of a prism: a hexagon (the marks), a rectangle with 45° cut corners (the icons) or a plain one. */
26
+ type IsoShape = "hex" | "cut" | "rect";
27
+ /** A pictogram drawn on the top of a tile. */
28
+ type IsoGlyph = "dots" | "lines" | "play" | "coin" | "lock" | "arrow" | "flag" | "heart" | "node" | "none";
29
+ interface IsoSceneProps extends Omit<React.ComponentProps<"svg">, "children"> {
30
+ /** The accessible name of the scene ("A server stack under a dome") — passed translated. Without it the scene is decorative. */
31
+ label?: string;
32
+ /** A longer text version of what the scene shows, read by assistive technology. */
33
+ description?: string;
34
+ /**
35
+ * Half the size of the floor, in world units: what the camera frames.
36
+ * @default 240
37
+ */
38
+ extent?: number;
39
+ /**
40
+ * Height above the floor the camera keeps in view, in world units.
41
+ * @default 260
42
+ */
43
+ top?: number;
44
+ /**
45
+ * The perspective grid on the floor, fading into the page.
46
+ * @default true
47
+ */
48
+ grid?: boolean;
49
+ /**
50
+ * The spacing of the grid's lines.
51
+ * @default 40
52
+ */
53
+ step?: number;
54
+ /**
55
+ * Motion (entrance, breathing, flow, float). `false` draws the still frame — the one prefers-reduced-motion shows.
56
+ * @default true
57
+ */
58
+ animated?: boolean;
59
+ /** The objects, painted in order: put the farthest first (or use `IsoHub`, which sorts them). */
60
+ children?: React.ReactNode;
61
+ }
62
+ /**
63
+ * The stage: an isometric camera over a perspective grid that fades into the page. Its animations pause off screen and
64
+ * wait for the page to settle (MotionObserver); everything stops under prefers-reduced-motion.
65
+ */
66
+ declare function IsoScene({ label, description, extent, top, grid, step, animated, viewBox, className, children, ...props }: IsoSceneProps): React.JSX.Element;
67
+ interface ItemProps {
68
+ /** The name shown when the pointer (or the focus) lifts the object — passed translated. It also makes it focusable. */
69
+ label?: string;
70
+ /**
71
+ * Its rank in the entrance: objects rise into place one after the other.
72
+ * @default 0
73
+ */
74
+ index?: number;
75
+ /**
76
+ * Motion: entrance and loops. `false` keeps this object still.
77
+ * @default true
78
+ */
79
+ animated?: boolean;
80
+ /** Extra classes on the object's group. */
81
+ className?: string;
82
+ }
83
+ interface IsoPrismProps extends ItemProps {
84
+ /**
85
+ * The centre of its footprint on the floor plan (x, y).
86
+ * @default [0, 0]
87
+ */
88
+ at?: Vec2;
89
+ /**
90
+ * The height of its base above the floor.
91
+ * @default 0
92
+ */
93
+ z?: number;
94
+ /** Its height. */
95
+ height: number;
96
+ /**
97
+ * hex · cut (45° cut corners) · rect.
98
+ * @default "cut"
99
+ */
100
+ shape?: IsoShape;
101
+ /**
102
+ * Its width (a number: square or hexagon's diameter) or width × depth.
103
+ * @default 120
104
+ */
105
+ size?: number | Vec2;
106
+ /** The size of the 45° cut (`shape="cut"`); a sixth of the smaller side by default. */
107
+ cut?: number;
108
+ /**
109
+ * How it is lit.
110
+ * @default "base"
111
+ */
112
+ material?: IsoMaterial;
113
+ /** A dotted light strip around its front (the LEDs of a server), blinking slowly. */
114
+ strip?: boolean;
115
+ }
116
+ /** A vertical prism — hexagonal, cut-corner or rectangular — that stacks with others on `z`. */
117
+ declare function IsoPrism({ at, z, height, shape, size, cut, material, strip, animated, ...item }: IsoPrismProps): React.JSX.Element;
118
+ /** One stage of an `IsoStack`. */
119
+ interface IsoLayer {
120
+ /** The stage's name, shown when it is lifted — passed translated. */
121
+ label?: string;
122
+ /**
123
+ * Its height.
124
+ * @default 22
125
+ */
126
+ height?: number;
127
+ /**
128
+ * How it is lit.
129
+ * @default "base"
130
+ */
131
+ material?: IsoMaterial;
132
+ }
133
+ interface IsoStackProps {
134
+ /** The stages, bottom first; they stack one after the other at the entrance. */
135
+ layers: readonly IsoLayer[];
136
+ /**
137
+ * The centre of the stack on the floor plan.
138
+ * @default [0, 0]
139
+ */
140
+ at?: Vec2;
141
+ /**
142
+ * The footprint of the stages.
143
+ * @default "cut"
144
+ */
145
+ shape?: IsoShape;
146
+ /**
147
+ * The width of the stages.
148
+ * @default 120
149
+ */
150
+ size?: number;
151
+ /**
152
+ * The space between two stages.
153
+ * @default 4
154
+ */
155
+ gap?: number;
156
+ /**
157
+ * A hexagonal plinth under the stack.
158
+ * @default true
159
+ */
160
+ plinth?: boolean;
161
+ /**
162
+ * A lit hexagonal core on top, its node glowing; a string names it.
163
+ * @default true
164
+ */
165
+ core?: boolean | string;
166
+ /**
167
+ * The rank of the first stage in the scene's entrance.
168
+ * @default 0
169
+ */
170
+ index?: number;
171
+ /**
172
+ * Motion: entrance and loops. `false` keeps the stack still.
173
+ * @default true
174
+ */
175
+ animated?: boolean;
176
+ }
177
+ /** A stack of stages on a plinth with a lit core on top — a server, a model, a pile of layers — driven by data. */
178
+ declare function IsoStack({ layers, at, shape, size, gap, plinth, core, index, animated }: IsoStackProps): React.JSX.Element;
179
+ interface IsoNodeProps {
180
+ /**
181
+ * Where, on the floor plan.
182
+ * @default [0, 0]
183
+ */
184
+ at?: Vec2;
185
+ /**
186
+ * Its height.
187
+ * @default 0
188
+ */
189
+ z?: number;
190
+ /**
191
+ * The radius of the node.
192
+ * @default 7
193
+ */
194
+ r?: number;
195
+ /**
196
+ * The radius of its glow (0: none).
197
+ * @default 70
198
+ */
199
+ glow?: number;
200
+ /**
201
+ * Its rank in the entrance.
202
+ * @default 0
203
+ */
204
+ index?: number;
205
+ /**
206
+ * Motion: the glow breathes. `false` keeps it still.
207
+ * @default true
208
+ */
209
+ animated?: boolean;
210
+ }
211
+ /** The Krizaka node: a point of light in the accent, breathing in its glow. */
212
+ declare function IsoNode({ at, z, r, glow, index, animated }: IsoNodeProps): React.JSX.Element;
213
+ interface IsoDomeProps {
214
+ /**
215
+ * Its centre on the floor plan.
216
+ * @default [0, 0]
217
+ */
218
+ at?: Vec2;
219
+ /**
220
+ * The radius of its rim on the floor.
221
+ * @default 158
222
+ */
223
+ radius?: number;
224
+ /**
225
+ * Its height.
226
+ * @default 250
227
+ */
228
+ height?: number;
229
+ /** Its name ("Your infrastructure") — passed translated; shown at the top of the dome, always. */
230
+ label?: string;
231
+ /**
232
+ * Motion: a sheen travels along the dome. `false` keeps it still.
233
+ * @default true
234
+ */
235
+ animated?: boolean;
236
+ }
237
+ /**
238
+ * A dome of light over what it protects: a rim on the floor, a glass arc, a sheen that travels along it. Draw its rim
239
+ * before the objects it covers and the dome after them (`part="rim"`, `part="arc"`), or let `IsoHub` do it.
240
+ */
241
+ declare function IsoDome({ at, radius, height, label, animated, part }: IsoDomeProps & {
242
+ /**
243
+ * `rim` (the floor ellipse, drawn first), `arc` (the glass, drawn last) or `both`.
244
+ * @default "both"
245
+ */
246
+ part?: "rim" | "arc" | "both";
247
+ }): React.JSX.Element;
248
+ interface IsoTileProps extends ItemProps {
249
+ /** Its centre on the floor plan. */
250
+ at: Vec2;
251
+ /**
252
+ * The height it floats at.
253
+ * @default 90
254
+ */
255
+ z?: number;
256
+ /**
257
+ * Width × depth.
258
+ * @default [76, 52]
259
+ */
260
+ size?: Vec2;
261
+ /**
262
+ * The pictogram on its top.
263
+ * @default "none"
264
+ */
265
+ glyph?: IsoGlyph;
266
+ /**
267
+ * How it is lit.
268
+ * @default "accent"
269
+ */
270
+ material?: IsoMaterial;
271
+ /**
272
+ * It floats gently.
273
+ * @default true
274
+ */
275
+ float?: boolean;
276
+ }
277
+ /** A satellite: a thin cut-corner tile that floats beside the hero object, a pictogram on its top. */
278
+ declare function IsoTile({ at, z, size, glyph, material, float, animated, ...item }: IsoTileProps): React.JSX.Element;
279
+ interface IsoLinkProps {
280
+ /** Where it starts, on the floor plan. */
281
+ from: Vec2;
282
+ /** Where it ends, on the floor plan. */
283
+ to: Vec2;
284
+ /**
285
+ * The height it runs at.
286
+ * @default 0
287
+ */
288
+ z?: number;
289
+ /**
290
+ * `elbow` follows the floor's axes, like a circuit; `straight` goes directly.
291
+ * @default "elbow"
292
+ */
293
+ route?: "elbow" | "straight";
294
+ /**
295
+ * Which way the light flows: `out` from `from` to `to`, `in` back.
296
+ * @default "out"
297
+ */
298
+ direction?: "out" | "in";
299
+ /**
300
+ * Particles of light travelling along it (0: only the dashes flow).
301
+ * @default 2
302
+ */
303
+ particles?: number;
304
+ /**
305
+ * Seconds a particle takes to cross it.
306
+ * @default 3.6
307
+ */
308
+ duration?: number;
309
+ /** A value written on it ("90 %", "Tips") — passed translated. */
310
+ label?: string;
311
+ /**
312
+ * Motion: the flow and the particles. `false` draws them still, resting along the link.
313
+ * @default true
314
+ */
315
+ animated?: boolean;
316
+ }
317
+ /** A dotted link on the floor, light flowing along it and particles crossing it — a flow between two objects. */
318
+ declare function IsoLink({ from, to, z, route, direction, particles, duration, label, animated }: IsoLinkProps): React.JSX.Element;
319
+ interface IsoLabelProps {
320
+ /** Where, on the floor plan. */
321
+ at: Vec2;
322
+ /**
323
+ * Its height.
324
+ * @default 0
325
+ */
326
+ z?: number;
327
+ /** The text — passed translated. */
328
+ text: string;
329
+ /** A first part in the accent, bolder ("90 %" before " to the creator"). */
330
+ strong?: string;
331
+ }
332
+ /** A label in a pill, always visible, pinned to a point of the scene (a share, a name). */
333
+ declare function IsoLabel({ at, z, text, strong }: IsoLabelProps): React.JSX.Element;
334
+ /** A satellite of an `IsoHub`. */
335
+ interface IsoSatellite {
336
+ /** Its name, shown when lifted — passed translated. */
337
+ label: string;
338
+ /**
339
+ * Its pictogram.
340
+ * @default "none"
341
+ */
342
+ glyph?: IsoGlyph;
343
+ /**
344
+ * The flow on its link: `in` toward the centre, `out` from it, `none` without a link.
345
+ * @default "in"
346
+ */
347
+ flow?: "in" | "out" | "none";
348
+ /** A value written on its link ("+ €5") — passed translated. */
349
+ value?: string;
350
+ /**
351
+ * How it is lit.
352
+ * @default "accent"
353
+ */
354
+ material?: IsoMaterial;
355
+ }
356
+ interface IsoHubProps extends Omit<IsoSceneProps, "children"> {
357
+ /** The hero object in the centre: its stages, bottom first. */
358
+ layers: readonly IsoLayer[];
359
+ /**
360
+ * The footprint of the stages.
361
+ * @default "cut"
362
+ */
363
+ shape?: IsoShape;
364
+ /**
365
+ * The width of the stages.
366
+ * @default 120
367
+ */
368
+ size?: number;
369
+ /**
370
+ * A lit core on top of the stack; a string names it.
371
+ * @default true
372
+ */
373
+ core?: boolean | string;
374
+ /** A dome over the centre: `true`, or its name ("Your servers"). */
375
+ dome?: boolean | string;
376
+ /**
377
+ * The objects around the centre, joined to it by flows of light. The first half stands on the left, the rest on the
378
+ * right, top to bottom: never in front of the hero, never hidden behind it.
379
+ */
380
+ satellites?: readonly IsoSatellite[];
381
+ /**
382
+ * The distance of the satellites from the centre.
383
+ * @default 210
384
+ */
385
+ radius?: number;
386
+ /** The angle of each satellite, in degrees (0: lower right, 90: lower left, 180: upper left, 270: upper right), to place them by hand. */
387
+ angles?: readonly number[];
388
+ /** A label pinned above the centre, its first part in the accent: `{ strong: "90 %", text: "to the creator" }`. */
389
+ highlight?: {
390
+ readonly strong?: string;
391
+ readonly text: string;
392
+ };
393
+ }
394
+ /**
395
+ * The hero, driven by data: a stack under an optional dome, satellites on both sides, a flow of light between each
396
+ * satellite and the centre. Objects are painted back to front and the camera frames exactly what is drawn.
397
+ */
398
+ declare function IsoHub({ layers, shape, size, core, dome, satellites, radius, angles, highlight, animated, viewBox, extent, ...scene }: IsoHubProps): React.JSX.Element;
399
+
400
+ export { IsoDome, type IsoDomeProps, type IsoGlyph, IsoHub, type IsoHubProps, IsoLabel, type IsoLabelProps, type IsoLayer, IsoLink, type IsoLinkProps, type IsoMaterial, IsoNode, type IsoNodeProps, IsoPrism, type IsoPrismProps, type IsoSatellite, IsoScene, type IsoSceneProps, type IsoShape, IsoStack, type IsoStackProps, IsoTile, type IsoTileProps, type Vec2, type Vec3, cutRect, hexagon, isoCircle, onCircle, project };