astryx-dracula 0.6.2 → 0.7.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 (59) hide show
  1. package/BRAND.md +54 -3
  2. package/README.md +11 -4
  3. package/USAGE.md +1 -1
  4. package/astryx-dracula.d.ts +2 -2
  5. package/astryx-dracula.js +26 -4
  6. package/astryx-dracula.variants.d.ts +2 -2
  7. package/package.json +11 -11
  8. package/shared/auth-chrome-config.ts +0 -4
  9. package/shared/auth-chrome.tsx +2 -3
  10. package/shared/chaptered-doc-config.ts +3 -2
  11. package/shared/order-desk.tsx +52 -54
  12. package/shared/revenue-chart.tsx +1 -1
  13. package/shared/scene-castle.tsx +21 -13
  14. package/templates/ai-chat-landing.tsx +6 -9
  15. package/templates/ai-chat.tsx +5 -1
  16. package/templates/centered-hero.tsx +2 -2
  17. package/templates/classic-gallery.tsx +5 -0
  18. package/templates/contact-form.tsx +9 -0
  19. package/templates/dashboard-portfolio.tsx +17 -4
  20. package/templates/dashboard.tsx +5 -5
  21. package/templates/detail-page.tsx +20 -28
  22. package/templates/documentation-design.tsx +3 -0
  23. package/templates/documentation-technical.tsx +8 -5
  24. package/templates/documentation.tsx +13 -6
  25. package/templates/form-two-column.tsx +11 -2
  26. package/templates/form-wizard.template.mjs +15 -0
  27. package/templates/form-wizard.tsx +878 -0
  28. package/templates/gallery-hero.tsx +10 -4
  29. package/templates/ide.tsx +177 -96
  30. package/templates/incident-console.tsx +15 -5
  31. package/templates/kanban-board.tsx +46 -4
  32. package/templates/library.tsx +12 -3
  33. package/templates/login-split.tsx +3 -3
  34. package/templates/login-sso.tsx +9 -17
  35. package/templates/messaging-shell.tsx +109 -46
  36. package/templates/mixed-gallery.tsx +6 -0
  37. package/templates/payment-form.tsx +29 -28
  38. package/templates/product-detail.tsx +12 -3
  39. package/templates/product-gallery.tsx +8 -3
  40. package/templates/product-tour.tsx +11 -7
  41. package/templates/settings-dialog.tsx +5 -0
  42. package/templates/settings-sidebar.tsx +603 -584
  43. package/templates/settings.tsx +5 -2
  44. package/templates/shell-nav.tsx +23 -3
  45. package/templates/shell-side-nav.tsx +94 -81
  46. package/templates/shell-top-nav.tsx +98 -86
  47. package/templates/table-grouped.tsx +146 -132
  48. package/templates/{table-page-shoe-store-heatmap.template.mjs → table-page-shoe-store.template.mjs} +1 -1
  49. package/templates/{table-page-shoe-store-heatmap.tsx → table-page-shoe-store.tsx} +1 -1
  50. package/templates/table-page.tsx +8 -0
  51. package/templates/table-tree.template.mjs +16 -0
  52. package/templates/table-tree.tsx +707 -0
  53. package/templates/tech-report.tsx +8 -5
  54. package/templates/theme-showcase.tsx +18 -11
  55. package/templates/work-item-detail.template.mjs +8 -0
  56. package/templates/work-item-detail.tsx +1049 -0
  57. package/theme.css +38 -3
  58. package/theme.css.d.ts +2 -2
  59. package/tokens.css +41 -4
@@ -2,7 +2,7 @@
2
2
  // XLE (canonical structure of the tree below; the CLI had no XLE validator
3
3
  // after `astryx layout` was removed in 0.7.0, so this is a reading aid and a
4
4
  // human drift check — update it with the file, never alone):
5
- // A[cp=0 h=auto @sideNav=(SN[collapsible header=SideNavHeading] > (SNS"Getting started" > (SNI"Introduction"! + SNI"Install")) + (SNS"The brand" > (SNI"Palette" + SNI"Type and shape")) + (SNS"In practice" > (SNI"Components" + SNI"Templates")) + (SNS"Reference" > (SNI"Tokens" + SNI"Migrating"))))] > L[h=auto] > (LC[p=8 !scroll] > V[g=8] > (V[g=2] > (H[g=2 a=center] > MNT + Tx"Documentation"[t=supporting]) + Hd"Introduction"[level=1 t=display-2] + Tx"astryx-dracula v0.6.2"[t=supporting] + SE{Selector}"On this page") + Tx"astryx-dracula is a pure Dracula brand theme"[t=large] + AR[ratio=16/9] + (V[g=8] > (V[g=3] > Hd"What it is"[level=2] + Tx"Four decisions shape everything else"[t=body] + (UL > LI*4)))*2) + D + (H[g=3 j=between a=center] > SI[fill] + B.secondary"Install")) + (LP[!scroll] > Outline)
5
+ // A[cp=0 h=auto @sideNav=(SN[collapsible header=SideNavHeading] > (SNS"Getting started" > (SNI"Introduction"! + SNI"Install")) + (SNS"The brand" > (SNI"Palette" + SNI"Type and shape")) + (SNS"In practice" > (SNI"Components" + SNI"Templates")) + (SNS"Reference" > (SNI"Tokens" + SNI"Migrating"))))] > L[h=auto] > (LC[p=8 !scroll] > V[g=8] > (V[g=2] > (H[g=2 a=center] > MNT + Tx"Documentation"[t=supporting]) + Hd"Introduction"[level=1 t=display-2] + Tx"astryx-dracula v0.7.0"[t=supporting] + SE{Selector}"On this page") + Tx"astryx-dracula is a pure Dracula brand theme"[t=large] + AR[ratio=16/9] + (V[g=8] > (V[g=3] > Hd"What it is"[level=2] + Tx"Four decisions shape everything else"[t=body] + (UL > LI*4)))*2) + D + (H[g=3 j=between a=center] > SI[fill] + B.secondary"Install")) + (LP[!scroll] > Outline)
6
6
 
7
7
  /**
8
8
  * Product Tour — a chaptered walkthrough of this theme.
@@ -220,7 +220,7 @@ import {astryxDraculaTheme} from 'astryx-dracula';
220
220
  {
221
221
  key: "status-vocabulary",
222
222
  heading: "Status has a fixed vocabulary",
223
- body: "Green positive, red negative, yellow tags, cyan information, pink flair, orange warning. Status surfaces use a ten percent categorical wash with a semantic border rather than a direct fill.",
223
+ body: "Green positive, red negative, yellow tags and warnings, cyan information, pink flair, orange attention. Status surfaces use a ten percent categorical wash with a semantic border rather than a direct fill.",
224
224
  code: {
225
225
  language: "tsx",
226
226
  title: "Status.tsx",
@@ -244,7 +244,7 @@ import {astryxDraculaTheme} from 'astryx-dracula';
244
244
  icon: LayoutGrid,
245
245
  hasArt: true,
246
246
  intro:
247
- "Forty-five themed pages ship with the package as an Astryx integration pack. Each one is a real page, already retokened and structurally validated, and each one scaffolds in a single command.",
247
+ "48 themed pages ship with the package as an Astryx integration pack. Each one is a real page, already retokened and structurally validated, and each one scaffolds in a single command.",
248
248
  sections: [
249
249
  {
250
250
  key: "scaffold-a-page",
@@ -253,7 +253,7 @@ import {astryxDraculaTheme} from 'astryx-dracula';
253
253
  code: {
254
254
  language: "bash",
255
255
  title: "shell",
256
- source: `# any of the 45 page ids — the path argument is required; without it the
256
+ source: `# any of the 48 page ids — the path argument is required; without it the
257
257
  # CLI prints the template source and writes nothing
258
258
  bunx @astryxdesign/cli template dashboard --package astryx-dracula ./src/pages/dashboard.tsx
259
259
  bunx @astryxdesign/cli template product-tour --package astryx-dracula ./src/pages/product-tour.tsx`,
@@ -825,7 +825,9 @@ const PRODUCT_TOUR_SCENES: Record<string, ProductTourScene> = {
825
825
  },
826
826
  palette: {
827
827
  node: (alt) => <PaletteScene alt={alt} />,
828
- alt: "Fifteen palette swatches: six surfaces and neutrals, then the accent colours",
828
+ // Counted from PALETTE_ROWS, not written: the art and its accessible
829
+ // name cannot drift apart.
830
+ alt: `${PALETTE_ROWS.flat().length} palette swatches: six surfaces and neutrals, then the accent colours`,
829
831
  },
830
832
  "type-shape": {
831
833
  node: (alt) => <TypeScene alt={alt} />,
@@ -833,7 +835,9 @@ const PRODUCT_TOUR_SCENES: Record<string, ProductTourScene> = {
833
835
  },
834
836
  templates: {
835
837
  node: (alt) => <PagesScene alt={alt} />,
836
- alt: "Eight page thumbnails in a grid, the first one highlighted",
838
+ // Counted from PAGE_CELLS: eight written by hand is the numeral that
839
+ // drifts the moment a ninth tile is added.
840
+ alt: `${PAGE_CELLS.length} page thumbnails in a grid, the first one highlighted`,
837
841
  },
838
842
  };
839
843
 
@@ -855,7 +859,7 @@ export default function ProductTour() {
855
859
  railHref={SELF_HASH}
856
860
  railIcon={<Icon icon={Sparkles} size="sm" />}
857
861
  eyebrow="Documentation"
858
- badge={() => "astryx-dracula v0.6.2"}
862
+ badge={() => "astryx-dracula v0.7.0"}
859
863
  art={(chapterId) => <ChapterArt chapterId={chapterId} />}
860
864
  />
861
865
  );
@@ -30,6 +30,7 @@ import { Switch } from "@astryxdesign/core/Switch";
30
30
  import { Tab, TabList } from "@astryxdesign/core/TabList";
31
31
  import { Heading, Text } from "@astryxdesign/core/Text";
32
32
  import { TextInput } from "@astryxdesign/core/TextInput";
33
+ import { VisuallyHidden } from "@astryxdesign/core/VisuallyHidden";
33
34
  import type { DeviceRow, InfoTileData } from "astryx-dracula/shared/settings-data";
34
35
  import {
35
36
  CURRENCIES,
@@ -160,6 +161,10 @@ export default function SettingsDialog() {
160
161
 
161
162
  return (
162
163
  <>
164
+ {/* The page is a dialog; the document still needs a top-level heading. */}
165
+ <VisuallyHidden>
166
+ <Heading level={1}>Settings</Heading>
167
+ </VisuallyHidden>
163
168
  <Layout
164
169
  height="auto"
165
170
  content={