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
@@ -817,10 +817,13 @@ function ArchitectureScene({ alt }: { alt: string }) {
817
817
  <path d="M42 158 H197 M42 158 V163 M197 158 V163" />
818
818
  <path d="M202 158 H359 M202 158 V163 M359 158 V163" />
819
819
  </g>
820
+ {/* Scene text is paragraph, never comment: comment is 3.36:1 on this
821
+ backdrop, under the 4.5:1 text floor, and it belongs to the bracket
822
+ strokes above, not to the words that name them. */}
820
823
  <g
821
824
  fontFamily="var(--font-family-mono)"
822
825
  fontSize="10"
823
- fill="var(--dracula-comment)"
826
+ fill="var(--color-text-paragraph)"
824
827
  textAnchor="middle"
825
828
  >
826
829
  <text x="119" y="178">
@@ -1295,7 +1298,7 @@ function Fp4Scene({ alt }: { alt: string }) {
1295
1298
  fontFamily="var(--font-family-mono)"
1296
1299
  fontSize="11"
1297
1300
  textAnchor="middle"
1298
- fill={bar.fill}
1301
+ fill="var(--color-text-highlight)"
1299
1302
  fillOpacity={0.95}
1300
1303
  >
1301
1304
  {bar.value}
@@ -1305,7 +1308,7 @@ function Fp4Scene({ alt }: { alt: string }) {
1305
1308
  <g
1306
1309
  fontFamily="var(--font-family-mono)"
1307
1310
  fontSize="10"
1308
- fill="var(--dracula-comment)"
1311
+ fill="var(--color-text-paragraph)"
1309
1312
  textAnchor="middle"
1310
1313
  >
1311
1314
  {FP4_BARS.map((bar) => (
@@ -1381,7 +1384,7 @@ function EvalScene({ alt }: { alt: string }) {
1381
1384
  fontFamily="var(--font-family-mono)"
1382
1385
  fontSize="11"
1383
1386
  textAnchor="middle"
1384
- fill={bar.fill}
1387
+ fill="var(--color-text-highlight)"
1385
1388
  fillOpacity={0.95}
1386
1389
  >
1387
1390
  {bar.value}
@@ -1391,7 +1394,7 @@ function EvalScene({ alt }: { alt: string }) {
1391
1394
  <g
1392
1395
  fontFamily="var(--font-family-mono)"
1393
1396
  fontSize="10"
1394
- fill="var(--dracula-comment)"
1397
+ fill="var(--color-text-paragraph)"
1395
1398
  textAnchor="middle"
1396
1399
  >
1397
1400
  {EVAL_BARS.map((bar) => (
@@ -61,8 +61,13 @@ import {
61
61
  import type { ReactNode } from "react";
62
62
 
63
63
  // One Dracula accent per hero product slot. Purple stays off decorative art:
64
- // it reads as interactive, and nothing here is tappable.
65
- const PRODUCT_HUES = ["var(--dracula-green)", "var(--dracula-cyan)", "var(--dracula-yellow)"];
64
+ // it reads as interactive, and nothing here is tappable. Typed `SceneHue` so
65
+ // the union enforces that remit instead of the comment asking for it.
66
+ const PRODUCT_HUES: readonly SceneHue[] = [
67
+ "var(--dracula-green)",
68
+ "var(--dracula-cyan)",
69
+ "var(--dracula-yellow)",
70
+ ];
66
71
 
67
72
  // Grid recipes the store renders at every width above the phone layout. Kept
68
73
  // at module scope: an object literal rebuilt per render is a new value prop
@@ -104,7 +109,7 @@ const DEFAULT_PRODUCTS: ProductSpec[] = [
104
109
 
105
110
  // Dracula product scene: harvest moon over sleeping hills with a per-product
106
111
  // accent glyph. All fills are brand vars, corners rx=4.
107
- function ProductArt({ hue, label }: { hue: string; label: string }) {
112
+ function ProductArt({ hue, label }: { hue: SceneHue; label: string }) {
108
113
  return (
109
114
  <SceneFrame
110
115
  label={`${label} artwork`}
@@ -291,7 +296,6 @@ function StorePreview({ products, isMobile }: { products: ProductSpec[]; isMobil
291
296
  label="Add to cart"
292
297
  variant="secondary"
293
298
  size="sm"
294
- href="#/templates/theme-showcase"
295
299
  style={{ flex: 1 }}
296
300
  />
297
301
  </HStack>
@@ -579,8 +583,10 @@ function LatestActivityCard({ isMobile }: { isMobile: boolean }) {
579
583
  flex: 1,
580
584
  minHeight: 0,
581
585
  overflow: "hidden",
582
- maskImage: "linear-gradient(to bottom, black calc(100% - 48px), transparent)",
583
- WebkitMaskImage: "linear-gradient(to bottom, black calc(100% - 48px), transparent)",
586
+ maskImage:
587
+ "linear-gradient(to bottom, black calc(100% - var(--spacing-12)), transparent)",
588
+ WebkitMaskImage:
589
+ "linear-gradient(to bottom, black calc(100% - var(--spacing-12)), transparent)",
584
590
  // Cancel the Item inline inset with the inset ITSELF: core
585
591
  // publishes it as --_item-inset-inline (0.6.7), and it
586
592
  // tracks density and theme overrides. A literal spacing
@@ -612,11 +618,12 @@ function LatestActivityCard({ isMobile }: { isMobile: boolean }) {
612
618
  aria-hidden="true"
613
619
  style={{
614
620
  // Center supplies the 32px box and the centering; only the
615
- // paint stays here. Surface, not muted: secondary
616
- // #9AA1BC is 3.57:1 on muted #44475A, under the 4.5:1 text
617
- // floor. The chip is aria-hidden decorative art so it
618
- // clears the 3:1 non-text bar as-is, but the surface fill
619
- // carries the same 4.60:1 pairing at no cost.
621
+ // paint stays here. Surface, not muted: muted is the
622
+ // RECESSED well (#21222C) since the token change, and this
623
+ // chip is a plate on the card, not a hole in it — the same
624
+ // tier ProductSwatch paints its plate with. The chip is
625
+ // aria-hidden decorative art, so it clears the 3:1
626
+ // non-text bar as-is.
620
627
  borderRadius: "var(--radius-element)",
621
628
  backgroundColor: "var(--color-background-surface)",
622
629
  color: "var(--color-text-secondary)",
@@ -0,0 +1,8 @@
1
+ export default {
2
+ type: "page",
3
+ name: "Work Item Detail",
4
+ description:
5
+ "Tracked task record with checklist, attachments, activity feed and a properties rail",
6
+ keywords: ["work item", "task detail", "issue", "subtasks", "activity", "properties", "comments"],
7
+ category: "product",
8
+ };