astryx-dracula 0.5.0 → 0.6.2
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/BRAND.md +3 -3
- package/README.md +7 -4
- package/USAGE.md +49 -49
- package/astryx-dracula.d.ts +2 -2
- package/astryx-dracula.js +25 -9
- package/astryx-dracula.variants.d.ts +2 -2
- package/astryx.integration.mjs +1 -1
- package/icons.mjs +21 -17
- package/icons.tsx +69 -62
- package/package.json +125 -120
- package/shared/auth-chrome-config.ts +6 -6
- package/shared/auth-chrome.tsx +143 -144
- package/shared/auth-copy.ts +14 -14
- package/shared/chaptered-doc-config.ts +48 -51
- package/shared/chaptered-doc.tsx +267 -289
- package/shared/chart-hues.ts +25 -10
- package/shared/chart-labels.tsx +31 -30
- package/shared/chart-legend.tsx +55 -56
- package/shared/chart-panel-style.ts +3 -3
- package/shared/data-bar.tsx +97 -102
- package/shared/format-money.ts +1 -1
- package/shared/gallery-image.ts +6 -6
- package/shared/login-demo.ts +1 -1
- package/shared/metric-card.tsx +101 -105
- package/shared/metric-delta.tsx +28 -27
- package/shared/order-desk.tsx +205 -216
- package/shared/revenue-chart.tsx +145 -165
- package/shared/scene-castle.tsx +206 -291
- package/shared/scene-frame.tsx +33 -32
- package/shared/scene-hues.ts +17 -17
- package/shared/scene-tile.tsx +88 -92
- package/shared/settings-data.ts +119 -125
- package/shared/settings-rows.tsx +122 -159
- package/shared/sparkline.tsx +75 -88
- package/shared/sso-icons.tsx +10 -22
- package/shared/stars.tsx +16 -25
- package/templates/ai-chat-landing.template.mjs +5 -4
- package/templates/ai-chat-landing.tsx +473 -460
- package/templates/ai-chat.template.mjs +5 -4
- package/templates/ai-chat.tsx +543 -612
- package/templates/blank.template.mjs +5 -4
- package/templates/blank.tsx +18 -14
- package/templates/centered-hero.template.mjs +5 -4
- package/templates/centered-hero.tsx +55 -68
- package/templates/classic-gallery.template.mjs +5 -4
- package/templates/classic-gallery.tsx +97 -104
- package/templates/contact-form.template.mjs +5 -4
- package/templates/contact-form.tsx +247 -282
- package/templates/dashboard-portfolio.template.mjs +5 -4
- package/templates/dashboard-portfolio.tsx +717 -548
- package/templates/dashboard.template.mjs +5 -4
- package/templates/dashboard.tsx +596 -567
- package/templates/detail-page.template.mjs +5 -4
- package/templates/detail-page.tsx +546 -603
- package/templates/documentation-design.template.mjs +5 -4
- package/templates/documentation-design.tsx +231 -243
- package/templates/documentation-technical.template.mjs +5 -4
- package/templates/documentation-technical.tsx +236 -239
- package/templates/documentation.template.mjs +5 -4
- package/templates/documentation.tsx +267 -279
- package/templates/editor.template.mjs +5 -4
- package/templates/editor.tsx +844 -877
- package/templates/file-explorer.template.mjs +5 -4
- package/templates/file-explorer.tsx +566 -590
- package/templates/form-two-column.template.mjs +5 -4
- package/templates/form-two-column.tsx +195 -210
- package/templates/gallery-hero.template.mjs +5 -4
- package/templates/gallery-hero.tsx +93 -114
- package/templates/ide.template.mjs +5 -4
- package/templates/ide.tsx +407 -453
- package/templates/incident-console.template.mjs +5 -4
- package/templates/incident-console.tsx +593 -575
- package/templates/kanban-board.template.mjs +5 -4
- package/templates/kanban-board.tsx +665 -683
- package/templates/library.template.mjs +5 -4
- package/templates/library.tsx +409 -430
- package/templates/login-card.template.mjs +5 -4
- package/templates/login-card.tsx +63 -72
- package/templates/login-split.template.mjs +5 -4
- package/templates/login-split.tsx +192 -193
- package/templates/login-sso.template.mjs +5 -4
- package/templates/login-sso.tsx +257 -258
- package/templates/login.template.mjs +5 -4
- package/templates/login.tsx +53 -49
- package/templates/messaging-shell.template.mjs +5 -4
- package/templates/messaging-shell.tsx +556 -574
- package/templates/mixed-gallery.template.mjs +5 -4
- package/templates/mixed-gallery.tsx +60 -58
- package/templates/payment-form.template.mjs +5 -4
- package/templates/payment-form.tsx +882 -991
- package/templates/product-detail.template.mjs +5 -4
- package/templates/product-detail.tsx +261 -272
- package/templates/product-gallery.template.mjs +5 -4
- package/templates/product-gallery.tsx +126 -137
- package/templates/product-tour.template.mjs +5 -4
- package/templates/product-tour.tsx +741 -773
- package/templates/settings-dialog.template.mjs +5 -4
- package/templates/settings-dialog.tsx +688 -717
- package/templates/settings-sidebar.template.mjs +5 -4
- package/templates/settings-sidebar.tsx +762 -807
- package/templates/settings.template.mjs +5 -4
- package/templates/settings.tsx +289 -304
- package/templates/shell-nav.template.mjs +5 -4
- package/templates/shell-nav.tsx +212 -219
- package/templates/shell-side-nav.template.mjs +5 -4
- package/templates/shell-side-nav.tsx +135 -157
- package/templates/shell-top-nav.template.mjs +5 -4
- package/templates/shell-top-nav.tsx +182 -203
- package/templates/side-gallery.template.mjs +5 -4
- package/templates/side-gallery.tsx +85 -90
- package/templates/table-grouped.template.mjs +5 -4
- package/templates/table-grouped.tsx +1000 -1053
- package/templates/table-page-chart.template.mjs +5 -4
- package/templates/table-page-chart.tsx +400 -398
- package/templates/table-page-heatmap-status.template.mjs +5 -4
- package/templates/table-page-heatmap-status.tsx +483 -512
- package/templates/table-page-shoe-store-heatmap.template.mjs +5 -4
- package/templates/table-page-shoe-store-heatmap.tsx +748 -746
- package/templates/table-page.template.mjs +5 -4
- package/templates/table-page.tsx +396 -405
- package/templates/table.template.mjs +5 -4
- package/templates/table.tsx +92 -93
- package/templates/tech-report.template.mjs +5 -4
- package/templates/tech-report.tsx +1316 -1304
- package/templates/theme-showcase.template.mjs +5 -4
- package/templates/theme-showcase.tsx +871 -951
- package/theme.css +35 -77
- package/theme.css.d.ts +9 -0
- package/tokens.css +373 -380
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export default {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
type: "page",
|
|
3
|
+
name: "Mixed Gallery",
|
|
4
|
+
description: "Masonry image gallery with varying tile sizes",
|
|
5
|
+
keywords: ["gallery", "mixed", "grid", "collection", "showcase", "images"],
|
|
6
|
+
category: "marketing",
|
|
6
7
|
};
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
-
// XLE (canonical structure
|
|
3
|
-
//
|
|
2
|
+
// XLE (canonical structure of the tree below; the CLI had no XLE validator
|
|
3
|
+
// after `astryx layout` was removed in 0.7.0, so this is a reading aid and a
|
|
4
|
+
// human drift check — update it with the file, never alone):
|
|
5
|
+
// L[h=fill] > LC[p=6] > V[g=8] > ((V[g=2 a=center] > Hd"Every corner of the castle, caught after dark."[level=1] + Tx"Relics, sketches, and moonlit views from the coven archives, collected over one long Transylvanian night."[t=body]) + (V[g=3] > (V[g=2] > (AR[ratio=3/1] > Scene{SceneTile}) + Tx"The castle at moonrise"[t=body]) + (G[c={min:280} g=4] > (V[g=2] > (AR[ratio=3/2] > Scene{SceneTile}) + Tx"Coven gathering"[t=body]) + (V[g=2] > (AR[ratio=3/2] > Scene{SceneTile}) + Tx"Belfry view"[t=body]) + (V[g=2] > (AR[ratio=3/2] > Scene{SceneTile}) + Tx"Crypt archives"[t=body]) + (V[g=2] > (AR[ratio=3/2] > Scene{SceneTile}) + Tx"Midnight garden"[t=body]))))
|
|
4
6
|
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {galleryImageClip} from
|
|
10
|
-
import {
|
|
11
|
-
import
|
|
7
|
+
import { AspectRatio } from "@astryxdesign/core/AspectRatio";
|
|
8
|
+
import { Grid } from "@astryxdesign/core/Grid";
|
|
9
|
+
import { Layout, LayoutContent, VStack } from "@astryxdesign/core/Layout";
|
|
10
|
+
import { Heading, Text } from "@astryxdesign/core/Text";
|
|
11
|
+
import { galleryImageClip } from "astryx-dracula/shared/gallery-image";
|
|
12
|
+
import type { SceneHue } from "astryx-dracula/shared/scene-hues";
|
|
13
|
+
import { SceneTile } from "astryx-dracula/shared/scene-tile";
|
|
12
14
|
|
|
13
15
|
// ─── Styles ────────────────────────────────────────────────────────────────
|
|
14
16
|
// Image fill + radius live in shared/gallery-image (no Image primitive in
|
|
@@ -17,18 +19,18 @@ import type {SceneHue} from 'astryx-dracula/shared/scene-hues';
|
|
|
17
19
|
// ─── Gallery Data ───────────────────────────────────────────────────────────
|
|
18
20
|
|
|
19
21
|
interface GalleryImage {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
+
title: string;
|
|
23
|
+
hue: SceneHue;
|
|
22
24
|
}
|
|
23
25
|
|
|
24
26
|
// One accent per tile from the fixed badge vocabulary; the SVG scenes below
|
|
25
27
|
// resolve to Dracula tokens so tiles stay on-brand in the dark-only theme.
|
|
26
28
|
const IMAGES: GalleryImage[] = [
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
{ title: "The castle at moonrise", hue: "var(--dracula-orange)" },
|
|
30
|
+
{ title: "Coven gathering", hue: "var(--dracula-cyan)" },
|
|
31
|
+
{ title: "Belfry view", hue: "var(--dracula-pink)" },
|
|
32
|
+
{ title: "Crypt archives", hue: "var(--dracula-yellow)" },
|
|
33
|
+
{ title: "Midnight garden", hue: "var(--dracula-green)" },
|
|
32
34
|
];
|
|
33
35
|
|
|
34
36
|
// ─── Gallery Card ─────────────────────────────────────────────────────────
|
|
@@ -37,55 +39,55 @@ const IMAGES: GalleryImage[] = [
|
|
|
37
39
|
// definite, self-contained height from its ratio, so images can't overflow
|
|
38
40
|
// their grid cell and no tile depends on a neighbour's caption height.
|
|
39
41
|
|
|
40
|
-
function GalleryCard({image, ratio}: {image: GalleryImage; ratio: number}) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
42
|
+
function GalleryCard({ image, ratio }: { image: GalleryImage; ratio: number }) {
|
|
43
|
+
return (
|
|
44
|
+
<VStack gap={2}>
|
|
45
|
+
<AspectRatio ratio={ratio} style={galleryImageClip}>
|
|
46
|
+
<SceneTile label={image.title} hue={image.hue} size="lg" />
|
|
47
|
+
</AspectRatio>
|
|
48
|
+
<Text type="body" color="secondary" justify="center">
|
|
49
|
+
{image.title}
|
|
50
|
+
</Text>
|
|
51
|
+
</VStack>
|
|
52
|
+
);
|
|
51
53
|
}
|
|
52
54
|
|
|
53
55
|
// ─── Main Page ──────────────────────────────────────────────────────────────
|
|
54
56
|
|
|
55
57
|
export default function MixedGallery() {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
58
|
+
return (
|
|
59
|
+
<Layout
|
|
60
|
+
height="fill"
|
|
61
|
+
contentWidth={1400}
|
|
62
|
+
content={
|
|
63
|
+
<LayoutContent padding={6}>
|
|
64
|
+
<VStack gap={8}>
|
|
65
|
+
{/* Header */}
|
|
66
|
+
<VStack gap={2} hAlign="center">
|
|
67
|
+
<Heading level={1} justify="center">
|
|
68
|
+
Every corner of the castle, caught after dark.
|
|
69
|
+
</Heading>
|
|
70
|
+
<Text type="body" color="secondary" justify="center">
|
|
71
|
+
Relics, sketches, and moonlit views from the coven archives, collected over one long
|
|
72
|
+
Transylvanian night.
|
|
73
|
+
</Text>
|
|
74
|
+
</VStack>
|
|
73
75
|
|
|
74
|
-
|
|
76
|
+
{/* Featured layout: the wide 3:1 hero heads the page, then the rest
|
|
75
77
|
of the set reflows as a grid (4 → 2 → 1 columns). Every tile
|
|
76
78
|
keeps its own ratio, so no tile's height depends on another's
|
|
77
79
|
caption wrapping. */}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
80
|
+
<VStack gap={3}>
|
|
81
|
+
<GalleryCard image={IMAGES[0]} ratio={3 / 1} />
|
|
82
|
+
<Grid columns={{ minWidth: 280 }} gap={4}>
|
|
83
|
+
{IMAGES.slice(1).map((image) => (
|
|
84
|
+
<GalleryCard key={image.title} image={image} ratio={3 / 2} />
|
|
85
|
+
))}
|
|
86
|
+
</Grid>
|
|
87
|
+
</VStack>
|
|
88
|
+
</VStack>
|
|
89
|
+
</LayoutContent>
|
|
90
|
+
}
|
|
91
|
+
/>
|
|
92
|
+
);
|
|
91
93
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export default {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
type: "page",
|
|
3
|
+
name: "Checkout Form",
|
|
4
|
+
description: "Billing info, card details, and order summary",
|
|
5
|
+
keywords: ["checkout", "payment", "billing", "cart", "buyer", "purchase", "order"],
|
|
6
|
+
category: "commerce",
|
|
6
7
|
};
|