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.
Files changed (129) hide show
  1. package/BRAND.md +3 -3
  2. package/README.md +7 -4
  3. package/USAGE.md +49 -49
  4. package/astryx-dracula.d.ts +2 -2
  5. package/astryx-dracula.js +25 -9
  6. package/astryx-dracula.variants.d.ts +2 -2
  7. package/astryx.integration.mjs +1 -1
  8. package/icons.mjs +21 -17
  9. package/icons.tsx +69 -62
  10. package/package.json +125 -120
  11. package/shared/auth-chrome-config.ts +6 -6
  12. package/shared/auth-chrome.tsx +143 -144
  13. package/shared/auth-copy.ts +14 -14
  14. package/shared/chaptered-doc-config.ts +48 -51
  15. package/shared/chaptered-doc.tsx +267 -289
  16. package/shared/chart-hues.ts +25 -10
  17. package/shared/chart-labels.tsx +31 -30
  18. package/shared/chart-legend.tsx +55 -56
  19. package/shared/chart-panel-style.ts +3 -3
  20. package/shared/data-bar.tsx +97 -102
  21. package/shared/format-money.ts +1 -1
  22. package/shared/gallery-image.ts +6 -6
  23. package/shared/login-demo.ts +1 -1
  24. package/shared/metric-card.tsx +101 -105
  25. package/shared/metric-delta.tsx +28 -27
  26. package/shared/order-desk.tsx +205 -216
  27. package/shared/revenue-chart.tsx +145 -165
  28. package/shared/scene-castle.tsx +206 -291
  29. package/shared/scene-frame.tsx +33 -32
  30. package/shared/scene-hues.ts +17 -17
  31. package/shared/scene-tile.tsx +88 -92
  32. package/shared/settings-data.ts +119 -125
  33. package/shared/settings-rows.tsx +122 -159
  34. package/shared/sparkline.tsx +75 -88
  35. package/shared/sso-icons.tsx +10 -22
  36. package/shared/stars.tsx +16 -25
  37. package/templates/ai-chat-landing.template.mjs +5 -4
  38. package/templates/ai-chat-landing.tsx +473 -460
  39. package/templates/ai-chat.template.mjs +5 -4
  40. package/templates/ai-chat.tsx +543 -612
  41. package/templates/blank.template.mjs +5 -4
  42. package/templates/blank.tsx +18 -14
  43. package/templates/centered-hero.template.mjs +5 -4
  44. package/templates/centered-hero.tsx +55 -68
  45. package/templates/classic-gallery.template.mjs +5 -4
  46. package/templates/classic-gallery.tsx +97 -104
  47. package/templates/contact-form.template.mjs +5 -4
  48. package/templates/contact-form.tsx +247 -282
  49. package/templates/dashboard-portfolio.template.mjs +5 -4
  50. package/templates/dashboard-portfolio.tsx +717 -548
  51. package/templates/dashboard.template.mjs +5 -4
  52. package/templates/dashboard.tsx +596 -567
  53. package/templates/detail-page.template.mjs +5 -4
  54. package/templates/detail-page.tsx +546 -603
  55. package/templates/documentation-design.template.mjs +5 -4
  56. package/templates/documentation-design.tsx +231 -243
  57. package/templates/documentation-technical.template.mjs +5 -4
  58. package/templates/documentation-technical.tsx +236 -239
  59. package/templates/documentation.template.mjs +5 -4
  60. package/templates/documentation.tsx +267 -279
  61. package/templates/editor.template.mjs +5 -4
  62. package/templates/editor.tsx +844 -877
  63. package/templates/file-explorer.template.mjs +5 -4
  64. package/templates/file-explorer.tsx +566 -590
  65. package/templates/form-two-column.template.mjs +5 -4
  66. package/templates/form-two-column.tsx +195 -210
  67. package/templates/gallery-hero.template.mjs +5 -4
  68. package/templates/gallery-hero.tsx +93 -114
  69. package/templates/ide.template.mjs +5 -4
  70. package/templates/ide.tsx +407 -453
  71. package/templates/incident-console.template.mjs +5 -4
  72. package/templates/incident-console.tsx +593 -575
  73. package/templates/kanban-board.template.mjs +5 -4
  74. package/templates/kanban-board.tsx +665 -683
  75. package/templates/library.template.mjs +5 -4
  76. package/templates/library.tsx +409 -430
  77. package/templates/login-card.template.mjs +5 -4
  78. package/templates/login-card.tsx +63 -72
  79. package/templates/login-split.template.mjs +5 -4
  80. package/templates/login-split.tsx +192 -193
  81. package/templates/login-sso.template.mjs +5 -4
  82. package/templates/login-sso.tsx +257 -258
  83. package/templates/login.template.mjs +5 -4
  84. package/templates/login.tsx +53 -49
  85. package/templates/messaging-shell.template.mjs +5 -4
  86. package/templates/messaging-shell.tsx +556 -574
  87. package/templates/mixed-gallery.template.mjs +5 -4
  88. package/templates/mixed-gallery.tsx +60 -58
  89. package/templates/payment-form.template.mjs +5 -4
  90. package/templates/payment-form.tsx +882 -991
  91. package/templates/product-detail.template.mjs +5 -4
  92. package/templates/product-detail.tsx +261 -272
  93. package/templates/product-gallery.template.mjs +5 -4
  94. package/templates/product-gallery.tsx +126 -137
  95. package/templates/product-tour.template.mjs +5 -4
  96. package/templates/product-tour.tsx +741 -773
  97. package/templates/settings-dialog.template.mjs +5 -4
  98. package/templates/settings-dialog.tsx +688 -717
  99. package/templates/settings-sidebar.template.mjs +5 -4
  100. package/templates/settings-sidebar.tsx +762 -807
  101. package/templates/settings.template.mjs +5 -4
  102. package/templates/settings.tsx +289 -304
  103. package/templates/shell-nav.template.mjs +5 -4
  104. package/templates/shell-nav.tsx +212 -219
  105. package/templates/shell-side-nav.template.mjs +5 -4
  106. package/templates/shell-side-nav.tsx +135 -157
  107. package/templates/shell-top-nav.template.mjs +5 -4
  108. package/templates/shell-top-nav.tsx +182 -203
  109. package/templates/side-gallery.template.mjs +5 -4
  110. package/templates/side-gallery.tsx +85 -90
  111. package/templates/table-grouped.template.mjs +5 -4
  112. package/templates/table-grouped.tsx +1000 -1053
  113. package/templates/table-page-chart.template.mjs +5 -4
  114. package/templates/table-page-chart.tsx +400 -398
  115. package/templates/table-page-heatmap-status.template.mjs +5 -4
  116. package/templates/table-page-heatmap-status.tsx +483 -512
  117. package/templates/table-page-shoe-store-heatmap.template.mjs +5 -4
  118. package/templates/table-page-shoe-store-heatmap.tsx +748 -746
  119. package/templates/table-page.template.mjs +5 -4
  120. package/templates/table-page.tsx +396 -405
  121. package/templates/table.template.mjs +5 -4
  122. package/templates/table.tsx +92 -93
  123. package/templates/tech-report.template.mjs +5 -4
  124. package/templates/tech-report.tsx +1316 -1304
  125. package/templates/theme-showcase.template.mjs +5 -4
  126. package/templates/theme-showcase.tsx +871 -951
  127. package/theme.css +35 -77
  128. package/theme.css.d.ts +9 -0
  129. package/tokens.css +373 -380
@@ -1,6 +1,7 @@
1
1
  export default {
2
- type: 'page',
3
- name: 'Simple Table',
4
- description: 'Static rows with status badges and actions',
5
- category: 'data',
2
+ type: "page",
3
+ name: "Simple Table",
4
+ description: "Static rows with status badges and actions",
5
+ keywords: ["table", "data", "rows", "listing", "records", "grid"],
6
+ category: "data",
6
7
  };
@@ -1,117 +1,116 @@
1
1
  // Copyright (c) Meta Platforms, Inc. and affiliates.
2
- // XLE (canonical structure, validated with `bunx astryx layout check`):
3
- // L > (LH[divider] > H[a=center j=between] > Hd"Artifacts"[level=1] + B.primary"Add artifact") + (LC > T[hover] > (TR > THC"Name" + THC"Status" + THC"Updated" + THC"Actions") + (TR > TC"Blood Vial" + (TC > SD.success + Tx"Active") + TC"2025-01-15" + (TC > B.secondary"Edit"))*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=auto] > (LH[divider] > H[a=center j=between] > Hd"Artifacts"[level=1] + B.primary"Add artifact") + (LC > T[hover w=auto] > (TR > THC"Name" + THC"Status" + THC"Updated" + THC"Actions") + (TR > TC"Blood Vial" + (TC > H[g=1 a=center] > SD.success + Tx"Active") + TC"2025-01-15" + (TC > B.secondary"Edit"))*3)
4
6
 
5
- import {Layout, LayoutHeader, LayoutContent, HStack} from '@astryxdesign/core/Layout';
6
- import {Text, Heading} from '@astryxdesign/core/Text';
7
- import {Button} from '@astryxdesign/core/Button';
8
- import {Table, pixel} from '@astryxdesign/core/Table';
9
- import {StatusDot} from '@astryxdesign/core/StatusDot';
10
- import type {TableColumn} from '@astryxdesign/core/Table';
7
+ import { Button } from "@astryxdesign/core/Button";
8
+ import { HStack, Layout, LayoutContent, LayoutHeader } from "@astryxdesign/core/Layout";
9
+ import { StatusDot } from "@astryxdesign/core/StatusDot";
10
+ import type { TableColumn } from "@astryxdesign/core/Table";
11
+ import { pixel, Table } from "@astryxdesign/core/Table";
12
+ import { Heading, Text } from "@astryxdesign/core/Text";
11
13
 
12
14
  type Relic = {
13
- id: string;
14
- name: string;
15
- status: 'active' | 'inactive';
16
- updatedAt: string;
15
+ id: string;
16
+ name: string;
17
+ status: "active" | "inactive";
18
+ updatedAt: string;
17
19
  };
18
20
 
19
- const STATUS_LABEL: Record<Relic['status'], string> = {
20
- active: 'Active',
21
- inactive: 'Inactive',
21
+ const STATUS_LABEL: Record<Relic["status"], string> = {
22
+ active: "Active",
23
+ inactive: "Inactive",
22
24
  };
23
25
 
24
- const STATUS_VARIANT: Record<Relic['status'], 'success' | 'neutral'> = {
25
- active: 'success',
26
- inactive: 'neutral',
26
+ const STATUS_VARIANT: Record<Relic["status"], "success" | "neutral"> = {
27
+ active: "success",
28
+ inactive: "neutral",
27
29
  };
28
30
 
29
31
  const SAMPLE_DATA: Relic[] = [
30
- {id: '1', name: 'Blood Vial', status: 'active', updatedAt: '2025-01-15'},
31
- {id: '2', name: 'Garlic Charm', status: 'inactive', updatedAt: '2025-01-14'},
32
- {id: '3', name: 'Silver Stake', status: 'active', updatedAt: '2025-01-13'},
32
+ { id: "1", name: "Blood Vial", status: "active", updatedAt: "2025-01-15" },
33
+ { id: "2", name: "Garlic Charm", status: "inactive", updatedAt: "2025-01-14" },
34
+ { id: "3", name: "Silver Stake", status: "active", updatedAt: "2025-01-13" },
33
35
  ];
34
36
 
35
37
  const columns: TableColumn<Relic>[] = [
36
- {
37
- key: 'name',
38
- header: 'Name',
39
- width: pixel(144),
40
- renderCell: (item: Relic) => (
41
- <Text type="body" weight="semibold">
42
- {item.name}
43
- </Text>
44
- ),
45
- },
46
- {
47
- key: 'status',
48
- header: 'Status',
49
- width: pixel(112),
50
- renderCell: (item: Relic) => (
51
- <HStack gap={1} vAlign="center">
52
- <StatusDot
53
- variant={STATUS_VARIANT[item.status]}
54
- label={STATUS_LABEL[item.status]}
55
- />
56
- <Text type="body" color="secondary">
57
- {STATUS_LABEL[item.status]}
58
- </Text>
59
- </HStack>
60
- ),
61
- },
62
- {
63
- key: 'updatedAt',
64
- header: 'Updated',
65
- width: pixel(112),
66
- renderCell: (item: Relic) => (
67
- <Text type="body" color="secondary" hasTabularNumbers>
68
- {item.updatedAt}
69
- </Text>
70
- ),
71
- },
72
- {
73
- key: 'actions',
74
- header: 'Actions',
75
- width: pixel(96),
76
- renderCell: (item: Relic) => (
77
- <Button label={`Edit ${item.name}`} variant="secondary" size="sm">
78
- Edit
79
- </Button>
80
- ),
81
- },
38
+ {
39
+ key: "name",
40
+ header: "Name",
41
+ width: pixel(144),
42
+ renderCell: (item: Relic) => (
43
+ <Text type="body" weight="semibold">
44
+ {item.name}
45
+ </Text>
46
+ ),
47
+ },
48
+ {
49
+ key: "status",
50
+ header: "Status",
51
+ width: pixel(112),
52
+ renderCell: (item: Relic) => (
53
+ <HStack gap={1} vAlign="center">
54
+ <StatusDot variant={STATUS_VARIANT[item.status]} label={STATUS_LABEL[item.status]} />
55
+ <Text type="body" color="secondary">
56
+ {STATUS_LABEL[item.status]}
57
+ </Text>
58
+ </HStack>
59
+ ),
60
+ },
61
+ {
62
+ key: "updatedAt",
63
+ header: "Updated",
64
+ width: pixel(112),
65
+ renderCell: (item: Relic) => (
66
+ <Text type="body" color="secondary" hasTabularNumbers>
67
+ {item.updatedAt}
68
+ </Text>
69
+ ),
70
+ },
71
+ {
72
+ key: "actions",
73
+ header: "Actions",
74
+ width: pixel(96),
75
+ renderCell: (item: Relic) => (
76
+ <Button label={`Edit ${item.name}`} variant="secondary" size="sm">
77
+ Edit
78
+ </Button>
79
+ ),
80
+ },
82
81
  ];
83
82
 
84
83
  export default function SimpleTable() {
85
- const data = SAMPLE_DATA;
84
+ const data = SAMPLE_DATA;
86
85
 
87
- return (
88
- <Layout
89
- height="auto"
90
- header={
91
- <LayoutHeader hasDivider>
92
- <HStack vAlign="center" hAlign="between">
93
- <Heading level={1}>Artifacts</Heading>
94
- <Button label="Add artifact" variant="primary" />
95
- </HStack>
96
- </LayoutHeader>
97
- }
98
- content={
99
- <LayoutContent>
100
- {/* Each column below declares the width its own content needs, so the table
86
+ return (
87
+ <Layout
88
+ height="auto"
89
+ header={
90
+ <LayoutHeader hasDivider>
91
+ <HStack vAlign="center" hAlign="between">
92
+ <Heading level={1}>Artifacts</Heading>
93
+ <Button label="Add artifact" variant="primary" />
94
+ </HStack>
95
+ </LayoutHeader>
96
+ }
97
+ content={
98
+ <LayoutContent>
99
+ {/* Each column below declares the width its own content needs, so the table
101
100
  takes that sum instead of splitting the viewport four ways and leaving a
102
101
  quarter of the page empty after a ten-character name and 290px of empty
103
102
  table to the right of an Edit button. `width: auto` is what lets the pixel
104
103
  widths survive — under the default `width: 100%` the fixed table layout
105
104
  hands the leftover space back to every column and the voids return. */}
106
- <Table<Relic>
107
- data={data}
108
- columns={columns}
109
- idKey="id"
110
- hasHover
111
- style={{width: 'auto'}}
112
- />
113
- </LayoutContent>
114
- }
115
- />
116
- );
105
+ <Table<Relic>
106
+ data={data}
107
+ columns={columns}
108
+ idKey="id"
109
+ hasHover
110
+ style={{ width: "auto" }}
111
+ />
112
+ </LayoutContent>
113
+ }
114
+ />
115
+ );
117
116
  }
@@ -1,6 +1,7 @@
1
1
  export default {
2
- type: 'page',
3
- name: 'Technical Report',
4
- description: 'Chapter rail, paper walkthrough, and outline',
5
- category: 'docs',
2
+ type: "page",
3
+ name: "Technical Report",
4
+ description: "Chapter rail, paper walkthrough, and outline",
5
+ keywords: ["technical report", "whitepaper", "research", "spec", "findings", "paper"],
6
+ category: "docs",
6
7
  };