@starci/grammar 0.15.34 → 0.16.1

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 (40) hide show
  1. package/README.md +30 -5
  2. package/dist/.build-stamp.json +4 -4
  3. package/dist/common/components-navigation.css +67 -3
  4. package/dist/common/registry.d.ts +4 -2
  5. package/dist/common/registry.d.ts.map +1 -1
  6. package/dist/common/registry.js +3 -3
  7. package/dist/common/registry.js.map +1 -1
  8. package/dist/common/renderers.d.ts +4 -2
  9. package/dist/common/renderers.d.ts.map +1 -1
  10. package/dist/common/renderers.js +2 -0
  11. package/dist/common/renderers.js.map +1 -1
  12. package/dist/common/styles.css +95 -12
  13. package/dist/core/branch/SurfaceCard/classNames.d.ts +11 -3
  14. package/dist/core/branch/SurfaceCard/classNames.d.ts.map +1 -1
  15. package/dist/core/branch/SurfaceCard/classNames.js +1 -1
  16. package/dist/core/branch/SurfaceCard/classNames.js.map +1 -1
  17. package/dist/core/branch/SurfaceCard/index.d.ts +27 -10
  18. package/dist/core/branch/SurfaceCard/index.d.ts.map +1 -1
  19. package/dist/core/branch/SurfaceCard/index.js +3 -3
  20. package/dist/core/branch/SurfaceCard/index.js.map +1 -1
  21. package/dist/core/composite/Backdrop/index.d.ts +21 -0
  22. package/dist/core/composite/Backdrop/index.d.ts.map +1 -0
  23. package/dist/core/composite/Backdrop/index.js +9 -0
  24. package/dist/core/composite/Backdrop/index.js.map +1 -0
  25. package/dist/core/composite/EmptyNotice/index.d.ts +26 -5
  26. package/dist/core/composite/EmptyNotice/index.d.ts.map +1 -1
  27. package/dist/core/composite/EmptyNotice/index.js +6 -2
  28. package/dist/core/composite/EmptyNotice/index.js.map +1 -1
  29. package/dist/core/primitive/Mascot/index.d.ts +39 -0
  30. package/dist/core/primitive/Mascot/index.d.ts.map +1 -0
  31. package/dist/core/primitive/Mascot/index.js +23 -0
  32. package/dist/core/primitive/Mascot/index.js.map +1 -0
  33. package/dist/core/primitive/MediaFrame/index.d.ts +4 -1
  34. package/dist/core/primitive/MediaFrame/index.d.ts.map +1 -1
  35. package/dist/core/primitive/MediaFrame/index.js +1 -1
  36. package/dist/core/primitive/MediaFrame/index.js.map +1 -1
  37. package/dist/core/styles.css +5 -4
  38. package/dist/offset-pop/components-navigation.css +13 -6
  39. package/dist/offset-pop/styles.css +10 -3
  40. package/package.json +3 -3
package/README.md CHANGED
@@ -214,10 +214,35 @@ Each group below matches a Storybook group. Run `npm run storybook`: every story
214
214
  the family and theme chosen in the toolbar. It shows the default, disabled, invalid, pending and
215
215
  selected/current states where they apply. Overlay stories open by default.
216
216
 
217
- **Primitives (27).** Avatar, Badge, Button, CloseButton, Divider, GrammarRoot, Heading, Icon,
218
- IconButton, IconTile, Image, IncludedMark, Kbd, Label, LeadingNumber, Link, Meter, PlainPressable,
217
+ **Primitives (28).** Avatar, Badge, Button, CloseButton, Divider, GrammarRoot, Heading, Icon,
218
+ IconButton, IconTile, Image, IncludedMark, Kbd, Label, LeadingNumber, Link, Mascot, Meter, PlainPressable,
219
219
  Progress, ProgressCircle, RankArtwork, RelativeTime, Skeleton, Spinner, StateMark, Text, TextAction.
220
220
 
221
+ `Mascot` renders generated character art at one size scale: `size` `sm` (96px), `md` (160px, the default) or `lg`
222
+ (240px) square, the Common tokens `--grammar-mascot-sm|md|lg`, or `hero`, which fills its host's height up to
223
+ `--grammar-mascot-hero-max` (30rem) for a split screen such as a sign-in page. The art is always contained on a
224
+ transparent ground with no plate. Below 48rem a square step drops one step (lg to md, md to sm); a hero is absent
225
+ below 64rem unless `visibility="always"` keeps it, as the lg box. It is decorative by default (`alt=""` hides it from
226
+ assistive technology; a non-empty `alt` names it) and takes the asset-slot props of `Image` and `MediaFrame`
227
+ (`assetSlot`, `assetSha256`, `assetPrompt`); the grammar lint requires `assetSlot`
228
+ (`starci-grammar/mascot-asset-slot-required`) and refuses generated art under `/images/` outside `Mascot` or
229
+ `MediaFrame` (`starci-grammar/generated-art-in-mascot-or-media-frame`).
230
+
231
+ ```tsx
232
+ <Mascot src="/images/mascot/welcome.webp" size="lg" assetSlot="onboarding.welcome" assetSha256={sha} />
233
+ ```
234
+
235
+ A mascot also reaches the page through two slots. `SurfaceCard` `treatment="soft"` (the family's `accentSoft` tint
236
+ under the default foreground) and `treatment="ink"` (the brand ink band) take decorative `artwork`; each painted
237
+ treatment rebinds the surface pair on its ground, so a Stepper, Timeline or Badge inside keeps its contrast.
238
+ `EmptyNotice` takes `artwork` (`src`, `alt`, a required `assetSlot`, `assetSha256`, `assetPrompt`) in place of its
239
+ glyph and draws it as the `Mascot` at `md`, the mark of a first-run empty state.
240
+
241
+ ```tsx
242
+ <SurfaceCard label="Welcome" treatment="soft" artwork={<Mascot src={src} assetSlot="onboarding.welcome" />}>…</SurfaceCard>
243
+ <EmptyNotice message="Your workspace is ready." artwork={{ src, assetSlot: "onboarding.empty" }} actionLabel="Add a channel" onAction={add} />
244
+ ```
245
+
221
246
  **Forms (26).** ButtonGroup, Checkbox, CheckboxGroup, ComboBox, CopyField, DateField, DatePicker,
222
247
  DateRangePicker, Field, Fieldset, FileDropzone, Form, FormGrid, Input, NumberField, OtpInput,
223
248
  PressableField, RadioGroup, Rating, SearchField, SegmentedControl, Select, Slider, Switch,
@@ -527,9 +552,9 @@ the `file:` apps link this directory, the brand check reads the exported CSS, an
527
552
  probe executes the built modules. A merge that changes `src/` does not change `dist/`, so a checkout
528
553
  can hold an old build that still looks valid.
529
554
 
530
- **Build stamp.** `npm run build` ends with `scripts/build-stamp.mjs`, which writes
555
+ **Build stamp.** `npm run build` ends with `scripts/build-stamp.mts`, which writes
531
556
  `dist/.build-stamp.json`: the package version, a digest of the source (everything under `src/`
532
- except stories, test helpers, specs and tests, plus `tsconfig.build.json`, `scripts/copy-css.mjs`
557
+ except stories, test helpers, specs and tests, plus `tsconfig.build.json`, `scripts/copy-css.mts`
533
558
  and the `exports` and `files` fields of `package.json`), a digest of the built files, and the build
534
559
  time. The stamp ships in the tarball.
535
560
 
@@ -597,7 +622,7 @@ A minor release. Common grows from 42 to 95 renderers, and Offset Pop reaches pa
597
622
  mechanisms and inherits the rest. The package boundary checks the per-family dist modules,
598
623
  checks that no family imports another, and checks that the component CSS is in `dist`.
599
624
  - **Core.** Subnav's menu toggle meets a 44px touch floor on coarse pointers and narrow viewports.
600
- - **Build.** `scripts/copy-css.mjs` copies every `*.css` file in each entry directory.
625
+ - **Build.** `scripts/copy-css.mts` copies every `*.css` file in each entry directory.
601
626
  `@internationalized/date` is a dev dependency, used for date values in specs and stories.
602
627
  - **Storybook.** The toolbar switches the family (Common, Core, Heritage, Offset Pop) and the
603
628
  theme (light, dark, system). There are stories for all 95 renderers and three page recipes per
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "schema": "starci/grammar-build-stamp@1",
3
3
  "package": "@starci/grammar",
4
- "version": "0.15.34",
4
+ "version": "0.16.1",
5
5
  "algorithm": "starci/grammar-source-digest@1",
6
- "sourceDigest": "sha256:1392024723fd1762cdde2c6dd39cefe393df7868f6b11bf7c0059c6b57d7349c",
7
- "distDigest": "sha256:691a0a6059b439dc9410b5198cf8ab1371d9d2c3cc952419eaec5fed962afd6c",
8
- "builtAt": "2026-10-30T08:48:12.052Z"
6
+ "sourceDigest": "sha256:cf774a0fd5e0f2c9818895299fc88c65ed85ccb374c226c2a833b185debd2778",
7
+ "distDigest": "sha256:b77d9a58574bfeb733eaa62145ec6d04890c5bea66e33941fbceb27f30017276",
8
+ "builtAt": "2026-10-30T17:28:19.522Z"
9
9
  }
@@ -255,14 +255,20 @@
255
255
  color: var(--accent-foreground, HighlightText);
256
256
  }
257
257
 
258
+ /*
259
+ * Every marker is a pair that holds on any ground: the outlined states draw their circle in `--surface` and their
260
+ * number in a text token paired with it (muted, the accent as text, the danger as text), the complete state fills
261
+ * the accent under its own foreground. A SurfaceCard treatment rebinds the surface pair and those text tokens
262
+ * together, so the number keeps its contrast in every treatment (COLOR-5).
263
+ */
258
264
  .starci-core-step[data-grammar-step-state="current"] .starci-core-step-marker {
259
- border-color: var(--accent, Highlight);
260
- color: var(--accent, Highlight);
265
+ border-color: currentColor;
266
+ color: var(--accent-soft-foreground, var(--accent, Highlight));
261
267
  }
262
268
 
263
269
  .starci-core-step[data-grammar-step-state="error"] .starci-core-step-marker {
264
270
  border-color: var(--danger, Mark);
265
- color: var(--danger, CanvasText);
271
+ color: var(--danger-soft-foreground, var(--danger, CanvasText));
266
272
  }
267
273
 
268
274
  /* Loading stepper (knowledge STATE-8): a static Skeleton circle for the mark, labels stay real. */
@@ -1346,6 +1352,64 @@
1346
1352
  color: var(--muted, GrayText);
1347
1353
  }
1348
1354
 
1355
+ /* ---------- Mascot ---------- */
1356
+ /*
1357
+ * One size scale for generated character art. A square step is a box of its token, the art contained in it on a
1358
+ * transparent ground (no plate, no corner, no crop). The hero fills its host's height up to the hero cap. Below
1359
+ * 48rem a square step drops one step; a hero is absent below 64rem unless kept, then it is the lg box (md below 48rem).
1360
+ */
1361
+ .starci-core-mascot {
1362
+ --starci-core-mascot-box: var(--grammar-mascot-md, 10rem);
1363
+ display: block;
1364
+ flex: none;
1365
+ min-width: 0;
1366
+ max-inline-size: 100%;
1367
+ aspect-ratio: 1 / 1;
1368
+ inline-size: var(--starci-core-mascot-box);
1369
+ }
1370
+
1371
+ .starci-core-mascot[data-grammar-mascot-size="sm"] { --starci-core-mascot-box: var(--grammar-mascot-sm, 6rem); }
1372
+ .starci-core-mascot[data-grammar-mascot-size="lg"] { --starci-core-mascot-box: var(--grammar-mascot-lg, 15rem); }
1373
+
1374
+ .starci-core-mascot[data-grammar-mascot-size="hero"] {
1375
+ aspect-ratio: auto;
1376
+ inline-size: 100%;
1377
+ block-size: 100%;
1378
+ max-block-size: var(--grammar-mascot-hero-max, 30rem);
1379
+ }
1380
+
1381
+ .starci-core-mascot > .starci-core-image {
1382
+ inline-size: 100%;
1383
+ block-size: 100%;
1384
+ border-radius: 0;
1385
+ background: transparent;
1386
+ }
1387
+
1388
+ .starci-core-mascot .starci-core-image-element {
1389
+ inline-size: 100%;
1390
+ block-size: 100%;
1391
+ object-fit: contain;
1392
+ }
1393
+
1394
+ @media (max-width: 63.999rem) {
1395
+ .starci-core-mascot[data-grammar-mascot-size="hero"][data-grammar-mascot-visibility="wide"] { display: none; }
1396
+
1397
+ .starci-core-mascot[data-grammar-mascot-size="hero"][data-grammar-mascot-visibility="always"] {
1398
+ aspect-ratio: 1 / 1;
1399
+ inline-size: var(--grammar-mascot-lg, 15rem);
1400
+ block-size: auto;
1401
+ }
1402
+ }
1403
+
1404
+ @media (max-width: 47.999rem) {
1405
+ .starci-core-mascot[data-grammar-mascot-size="md"] { --starci-core-mascot-box: var(--grammar-mascot-sm, 6rem); }
1406
+ .starci-core-mascot[data-grammar-mascot-size="lg"] { --starci-core-mascot-box: var(--grammar-mascot-md, 10rem); }
1407
+
1408
+ .starci-core-mascot[data-grammar-mascot-size="hero"][data-grammar-mascot-visibility="always"] {
1409
+ inline-size: var(--grammar-mascot-md, 10rem);
1410
+ }
1411
+ }
1412
+
1349
1413
  /* ---------- Rating ---------- */
1350
1414
  .starci-core-rating {
1351
1415
  display: inline-flex;
@@ -70,13 +70,14 @@ export declare const COMMON_GRAMMAR_COMPONENTS: Readonly<{
70
70
  readonly Switch: ({ isSkeleton, ...props }: import("./renderers-forms.js").SwitchProps) => import("react").JSX.Element;
71
71
  readonly Textarea: ({ isSkeleton, ...props }: import("./renderers-forms.js").TextareaProps) => import("react").JSX.Element;
72
72
  readonly TimeField: ({ value, defaultValue, onValueChange, minValue, maxValue, granularity, hourCycle, variant: requestedVariant, ...field }: import("./renderers-forms.js").TimeFieldProps) => import("react").JSX.Element;
73
+ readonly Backdrop: ({ children, artwork, accentCorner, className }: import("./renderers.js").BackdropProps) => import("react").JSX.Element;
73
74
  readonly Badge: ({ children, startContent, tone, isDot, isSkeleton }: import("./renderers.js").BadgeProps) => import("react").JSX.Element;
74
75
  readonly Button: (props: import("./renderers.js").ButtonProps) => import("react").JSX.Element;
75
76
  readonly Code: ({ children, isSkeleton }: import("./renderers.js").CodeProps) => import("react").JSX.Element;
76
77
  readonly ChatBubble: ({ children, side, author, avatar, meta, status, actions, footer, isHighlight, id, isSkeleton, }: import("./renderers.js").ChatBubbleProps) => import("react").JSX.Element;
77
78
  readonly ChatWorkspace: (props: import("./renderers.js").ChatWorkspaceProps) => import("react").JSX.Element;
78
79
  readonly Divider: (props: import("./renderers.js").DividerProps) => import("react").JSX.Element;
79
- readonly EmptyNotice: ({ message, description, iconSource, actionLabel, actionStartContent, actionVariant, isActionPending, onAction, }: import("./renderers.js").EmptyNoticeProps) => import("react").JSX.Element;
80
+ readonly EmptyNotice: ({ message, description, iconSource, artwork, actionLabel, actionStartContent, actionVariant, isActionPending, onAction, }: import("./renderers.js").EmptyNoticeProps) => import("react").JSX.Element;
80
81
  readonly FencedCodeBlock: (props: import("./renderers.js").FencedCodeBlockProps) => import("react").JSX.Element;
81
82
  readonly FillViewport: ({ children, minHeight, bottomInset, label }: import("./renderers.js").FillViewportProps) => import("react").JSX.Element;
82
83
  readonly GrammarRoot: ({ className, theme, navigate, useHref, ...props }: import("./renderers.js").GrammarRootProps) => import("react").JSX.Element;
@@ -102,7 +103,8 @@ export declare const COMMON_GRAMMAR_COMPONENTS: Readonly<{
102
103
  readonly ListRow: ({ title, description, leading, badges, actions, children, state, verdict, isSkeleton }: import("./renderers.js").ListRowProps) => import("react").JSX.Element;
103
104
  readonly MarkdownArticle: (props: import("./renderers.js").MarkdownArticleProps) => import("react").JSX.Element;
104
105
  readonly MarkdownTableFrame: (props: import("./renderers.js").MarkdownTableFrameProps) => import("react").JSX.Element;
105
- readonly MediaFrame: ({ children, caption, aspect, fit, treatment, className, ...assetSlot }: import("./renderers.js").MediaFrameProps) => import("react").JSX.Element;
106
+ readonly Mascot: ({ src, alt, size, loading, visibility, className, ...assetSlot }: import("./renderers.js").MascotProps) => import("react").JSX.Element;
107
+ readonly MediaFrame: ({ children, caption, aspect, fit, treatment, accentCorner, className, ...assetSlot }: import("./renderers.js").MediaFrameProps) => import("react").JSX.Element;
106
108
  readonly NavigationFeatureNav: ({ identity, navigation, navigationLabel, compactNavigationTrigger, compactNavigationTriggerLabel, actions, actionsLabel, featureNavigation, featureNavigationLabel, measure, position, className, ...headerProps }: import("./renderers.js").NavigationFeatureNavProps) => import("react").JSX.Element;
107
109
  readonly NavLandmark: (props: import("./renderers.js").NavLandmarkProps) => import("react").JSX.Element;
108
110
  readonly OtpInput: (props: import("./renderers.js").OtpInputProps) => import("react").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/common/registry.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAEvE,MAAM,MAAM,wBAAwB,CAAC,KAAK,IAAI,aAAa,CAAC,KAAK,CAAC,CAAA;AAClE,KAAK,uBAAuB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAA;AACpE,KAAK,sBAAsB,CAAC,MAAM,SAAS,uBAAuB,IAAI;IAClE,QAAQ,EAAE,IAAI,IAAI,MAAM,MAAM,CAAC,CAAC,EAAE,wBAAwB,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;CAC3F,CAAA;AACD,KAAK,gCAAgC,CAAC,MAAM,SAAS,uBAAuB,EAAE,UAAU,SAAS,uBAAuB,IACpH,UAAU,GAAG;IAAE,QAAQ,EAAE,IAAI,IAAI,OAAO,CAAC,MAAM,UAAU,EAAE,MAAM,MAAM,CAAC,GAAG,KAAK;CAAE,CAAA;AAEtF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW3B,CAAA;AACX,MAAM,MAAM,0BAA0B,GAAG,MAAM,OAAO,yBAAyB,CAAA;AAE/E,MAAM,MAAM,mBAAmB,CAAC,QAAQ,SAAS,MAAM,IAAI;IACvD,QAAQ,CAAC,UAAU,EAAE,mBAAmB,MAAM,aAAa,CAAA;IAC3D,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAA;KAAE,CAAA;CAC1F,CAAA;AAED,MAAM,MAAM,qBAAqB,CAAC,QAAQ,SAAS,MAAM,EAAE,UAAU,SAAS,uBAAuB,IAAI;IACrG,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAA;IAC9C,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,yBAAyB,GAAG,UAAU,CAAC,CAAA;IAC5E,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC;QAAE,qBAAqB,EAAE,QAAQ,CAAA;KAAE,CAAC,CAAA;CACrE,CAAA;AAED,yEAAyE;AACzE,eAAO,MAAM,mBAAmB,GAC5B,KAAK,CAAC,QAAQ,SAAS,MAAM,EAC7B,KAAK,CAAC,YAAY,SAAS,sBAAsB,CAAC,OAAO,yBAAyB,CAAC,EACnF,KAAK,CAAC,UAAU,SAAS,uBAAuB,EAClD,YAAY;IACV,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAA;IAC9C,QAAQ,CAAC,UAAU,EAAE;QACjB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAA;QACnC,QAAQ,CAAC,UAAU,EAAE,gCAAgC,CAAC,OAAO,yBAAyB,EAAE,UAAU,CAAC,CAAA;KACtG,CAAA;CACJ,KAAG,qBAAqB,CAAC,QAAQ,EAAE,UAAU,CAuB7C,CAAA"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/common/registry.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAEvE,MAAM,MAAM,wBAAwB,CAAC,KAAK,IAAI,aAAa,CAAC,KAAK,CAAC,CAAA;AAClE,KAAK,uBAAuB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAA;AACpE,KAAK,sBAAsB,CAAC,MAAM,SAAS,uBAAuB,IAAI;IAClE,QAAQ,EAAE,IAAI,IAAI,MAAM,MAAM,CAAC,CAAC,EAAE,wBAAwB,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;CAC3F,CAAA;AACD,KAAK,gCAAgC,CAAC,MAAM,SAAS,uBAAuB,EAAE,UAAU,SAAS,uBAAuB,IACpH,UAAU,GAAG;IAAE,QAAQ,EAAE,IAAI,IAAI,OAAO,CAAC,MAAM,UAAU,EAAE,MAAM,MAAM,CAAC,GAAG,KAAK;CAAE,CAAA;AAEtF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW3B,CAAA;AACX,MAAM,MAAM,0BAA0B,GAAG,MAAM,OAAO,yBAAyB,CAAA;AAE/E,MAAM,MAAM,mBAAmB,CAAC,QAAQ,SAAS,MAAM,IAAI;IACvD,QAAQ,CAAC,UAAU,EAAE,mBAAmB,MAAM,aAAa,CAAA;IAC3D,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAA;KAAE,CAAA;CAC1F,CAAA;AAED,MAAM,MAAM,qBAAqB,CAAC,QAAQ,SAAS,MAAM,EAAE,UAAU,SAAS,uBAAuB,IAAI;IACrG,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAA;IAC9C,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,yBAAyB,GAAG,UAAU,CAAC,CAAA;IAC5E,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC;QAAE,qBAAqB,EAAE,QAAQ,CAAA;KAAE,CAAC,CAAA;CACrE,CAAA;AAED,yEAAyE;AACzE,eAAO,MAAM,mBAAmB,GAC5B,KAAK,CAAC,QAAQ,SAAS,MAAM,EAC7B,KAAK,CAAC,YAAY,SAAS,sBAAsB,CAAC,OAAO,yBAAyB,CAAC,EACnF,KAAK,CAAC,UAAU,SAAS,uBAAuB,EAClD,YAAY;IACV,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAA;IAC9C,QAAQ,CAAC,UAAU,EAAE;QACjB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAA;QACnC,QAAQ,CAAC,UAAU,EAAE,gCAAgC,CAAC,OAAO,yBAAyB,EAAE,UAAU,CAAC,CAAA;KACtG,CAAA;CACJ,KAAG,qBAAqB,CAAC,QAAQ,EAAE,UAAU,CAuB7C,CAAA"}
@@ -1,12 +1,12 @@
1
1
  "use client";
2
- import { Badge, Button, Code, ChatBubble, ChatWorkspace, Divider, EmptyNotice, FencedCodeBlock, FillViewport, GrammarRoot, Heading, HorizontalScrollRegion, Icon, IconButton, IconTile, IncludedMark, Input, Label, LeadingNumber, List, ListItem, ListRow, MarkdownArticle, MarkdownTableFrame, MediaFrame, NavigationFeatureNav, NavLandmark, OtpInput, Page, PageContainer, PageHeader, PinnedActionBar, PressableField, PrimaryRailLayout, Progress, Rail, RankArtwork, Region, RelativeTime, SectionHeader, Sidebar, StateMark, StaticStateRow, StatusDot, Subnav, SurfaceAccordionCard, SurfaceCard, SurfaceCopyGroup, SurfaceListCard, Tabs, Terminal, Text, TextAction, Tooltip, VerticalScrollRegion, WorkspaceShell, } from "./renderers.js";
2
+ import { Backdrop, Badge, Button, Code, ChatBubble, ChatWorkspace, Divider, EmptyNotice, FencedCodeBlock, FillViewport, GrammarRoot, Heading, HorizontalScrollRegion, Icon, IconButton, IconTile, IncludedMark, Input, Label, LeadingNumber, List, ListItem, ListRow, MarkdownArticle, MarkdownTableFrame, Mascot, MediaFrame, NavigationFeatureNav, NavLandmark, OtpInput, Page, PageContainer, PageHeader, PinnedActionBar, PressableField, PrimaryRailLayout, Progress, Rail, RankArtwork, Region, RelativeTime, SectionHeader, Sidebar, StateMark, StaticStateRow, StatusDot, Subnav, SurfaceAccordionCard, SurfaceCard, SurfaceCopyGroup, SurfaceListCard, Tabs, Terminal, Text, TextAction, Tooltip, VerticalScrollRegion, WorkspaceShell, } from "./renderers.js";
3
3
  import { COMMON_FORMS_COMPONENTS } from "./renderers-forms.js";
4
4
  import { COMMON_OVERLAYS_COMPONENTS } from "./renderers-overlays.js";
5
5
  import { COMMON_NAVIGATION_COMPONENTS } from "./renderers-navigation.js";
6
6
  export const COMMON_GRAMMAR_COMPONENTS = Object.freeze({
7
- Badge, Button, Code, ChatBubble, ChatWorkspace, Divider, EmptyNotice, FencedCodeBlock, FillViewport, GrammarRoot,
7
+ Backdrop, Badge, Button, Code, ChatBubble, ChatWorkspace, Divider, EmptyNotice, FencedCodeBlock, FillViewport, GrammarRoot,
8
8
  Heading, HorizontalScrollRegion, Icon, IconButton, IconTile, IncludedMark, Input,
9
- Label, LeadingNumber, List, ListItem, ListRow, MarkdownArticle, MarkdownTableFrame, MediaFrame,
9
+ Label, LeadingNumber, List, ListItem, ListRow, MarkdownArticle, MarkdownTableFrame, Mascot, MediaFrame,
10
10
  NavigationFeatureNav, NavLandmark, OtpInput, Page, PageContainer, PageHeader, PinnedActionBar, PressableField, PrimaryRailLayout,
11
11
  Progress, Rail, RankArtwork, Region, RelativeTime, SectionHeader, Sidebar, StateMark, StaticStateRow, StatusDot, Subnav,
12
12
  SurfaceAccordionCard, SurfaceCard, SurfaceCopyGroup, SurfaceListCard, Tabs, Terminal, Text,
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/common/registry.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/common/registry.tsx"],"names":[],"mappings":"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"}
@@ -27,6 +27,7 @@ export { RelativeTime, type RelativeTimeFormat, type RelativeTimeMode, type Rela
27
27
  export { TextAction, type TextActionAppearance, type TextActionProps, type TextActionSize } from "../core/primitive/TextAction/index.js";
28
28
  export { SectionHeader, type SectionHeaderProps } from "../core/primitive/SectionHeader/index.js";
29
29
  export { MediaFrame, type MediaFrameProps } from "../core/primitive/MediaFrame/index.js";
30
+ export { MASCOT_SIZE_TOKENS, Mascot, type MascotProps, type MascotSize, type MascotVisibility } from "../core/primitive/Mascot/index.js";
30
31
  export { PinnedActionBar, type PinnedActionBarProps, type PinnedActionBarVisibility } from "../core/primitive/PinnedActionBar/index.js";
31
32
  export { IncludedMark, type IncludedMarkProps } from "../core/primitive/IncludedMark/index.js";
32
33
  export { RankArtwork, type RankArtworkKind, type RankArtworkProps } from "../core/primitive/RankArtwork/index.js";
@@ -43,13 +44,14 @@ export { LeadingNumber, type LeadingNumberProps } from "../core/LeadingNumber.js
43
44
  export { OtpInput, type OtpInputProps } from "../core/OtpInput.js";
44
45
  export { StaticStateRow, type RowVerdict, type StaticStateRowData, type StaticStateRowProps } from "../core/composite/StaticStateRow/index.js";
45
46
  export { ListRow, type ListRowProps } from "../core/composite/ListRow/index.js";
46
- export { EmptyNotice, type EmptyNoticeProps } from "../core/composite/EmptyNotice/index.js";
47
+ export { Backdrop, type BackdropProps } from "../core/composite/Backdrop/index.js";
48
+ export { EmptyNotice, type EmptyNoticeArtwork, type EmptyNoticeProps } from "../core/composite/EmptyNotice/index.js";
47
49
  export { ChatBubble, ChatBubbleSkeletons, type ChatBubbleProps, type ChatBubbleSide, type ChatBubbleSkeletonsProps } from "../core/composite/ChatBubble/index.js";
48
50
  export { FillViewport, type FillViewportBottomInset, type FillViewportMinHeight, type FillViewportProps } from "../core/composite/FillViewport/index.js";
49
51
  export { HorizontalScrollRegion, type HorizontalScrollRegionProps } from "../core/composite/HorizontalScrollRegion/index.js";
50
52
  export { VerticalScrollRegion, type VerticalScrollRegionProps } from "../core/composite/VerticalScrollRegion/index.js";
51
53
  export { SurfaceCard, type SurfaceCardPlacement, type SurfaceCardProps, type WholeCardAction } from "../core/branch/SurfaceCard/index.js";
52
- export type { SurfaceCardMotif, SurfaceCardTreatment } from "../core/branch/SurfaceCard/classNames.js";
54
+ export type { AccentCorner, SurfaceCardMotif, SurfaceCardTreatment } from "../core/branch/SurfaceCard/classNames.js";
53
55
  export { SurfaceListCard, type SurfaceListCardProps, type SurfaceListRowVerdict } from "../core/branch/SurfaceListCard/index.js";
54
56
  export { FencedCodeBlock, MarkdownArticle, MarkdownTableFrame, type FencedCodeBlockProps, type MarkdownArticleProps, type MarkdownTableFrameProps } from "../core/branch/MarkdownArticle/index.js";
55
57
  export { SurfaceAccordionCard, type SurfaceAccordionCardItem, type SurfaceAccordionCardProps } from "../core/branch/SurfaceAccordionCard/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"renderers.d.ts","sourceRoot":"","sources":["../../src/common/renderers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderers.d.ts","sourceRoot":"","sources":["../../src/common/renderers.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,7 @@ export { RelativeTime } from "../core/primitive/RelativeTime/index.js";
28
28
  export { TextAction } from "../core/primitive/TextAction/index.js";
29
29
  export { SectionHeader } from "../core/primitive/SectionHeader/index.js";
30
30
  export { MediaFrame } from "../core/primitive/MediaFrame/index.js";
31
+ export { MASCOT_SIZE_TOKENS, Mascot } from "../core/primitive/Mascot/index.js";
31
32
  export { PinnedActionBar } from "../core/primitive/PinnedActionBar/index.js";
32
33
  export { IncludedMark } from "../core/primitive/IncludedMark/index.js";
33
34
  export { RankArtwork } from "../core/primitive/RankArtwork/index.js";
@@ -44,6 +45,7 @@ export { LeadingNumber } from "../core/LeadingNumber.js";
44
45
  export { OtpInput } from "../core/OtpInput.js";
45
46
  export { StaticStateRow } from "../core/composite/StaticStateRow/index.js";
46
47
  export { ListRow } from "../core/composite/ListRow/index.js";
48
+ export { Backdrop } from "../core/composite/Backdrop/index.js";
47
49
  export { EmptyNotice } from "../core/composite/EmptyNotice/index.js";
48
50
  export { ChatBubble, ChatBubbleSkeletons } from "../core/composite/ChatBubble/index.js";
49
51
  export { FillViewport } from "../core/composite/FillViewport/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"renderers.js","sourceRoot":"","sources":["../../src/common/renderers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderers.js","sourceRoot":"","sources":["../../src/common/renderers.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,13 @@
14
14
  --grammar-section-gap: 1rem;
15
15
  --grammar-region-gap: 1.5rem;
16
16
  --grammar-page-inset: clamp(1rem, 3vw, 2rem);
17
+ /* The Mascot scale: square boxes sm 96px, md 160px, lg 240px; the hero fills its host's height up to the cap. */
18
+ --grammar-mascot-sm: 6rem;
19
+ --grammar-mascot-md: 10rem;
20
+ --grammar-mascot-lg: 15rem;
21
+ --grammar-mascot-hero-max: 30rem;
22
+ /* The accent corner: the one logical corner a SurfaceCard or MediaFrame names in `accentCorner`. */
23
+ --grammar-accent-corner: 2.5rem;
17
24
  min-width: 0;
18
25
  }
19
26
 
@@ -937,6 +944,49 @@
937
944
  color: var(--surface-foreground, CanvasText);
938
945
  }
939
946
 
947
+ /* The accent corner: one logical corner of a surface or a media viewport at the Common accent radius. */
948
+ [data-grammar-accent-corner="start-start"]:is(.starci-core-surface, .starci-core-backdrop, .starci-core-media-frame > .starci-core-media-viewport) { border-start-start-radius: var(--grammar-accent-corner, 2.5rem); }
949
+ [data-grammar-accent-corner="start-end"]:is(.starci-core-surface, .starci-core-backdrop, .starci-core-media-frame > .starci-core-media-viewport) { border-start-end-radius: var(--grammar-accent-corner, 2.5rem); }
950
+ [data-grammar-accent-corner="end-start"]:is(.starci-core-surface, .starci-core-backdrop, .starci-core-media-frame > .starci-core-media-viewport) { border-end-start-radius: var(--grammar-accent-corner, 2.5rem); }
951
+ [data-grammar-accent-corner="end-end"]:is(.starci-core-surface, .starci-core-backdrop, .starci-core-media-frame > .starci-core-media-viewport) { border-end-end-radius: var(--grammar-accent-corner, 2.5rem); }
952
+
953
+ /*
954
+ * The brand backdrop: the brand's light tint, full-bleed in its host, with no card anatomy (no border, shadow or card
955
+ * inset; its corners stay square but the accent one). The copy sits at the top; the artwork takes the height left, so
956
+ * a hero Mascot fills it.
957
+ */
958
+ .starci-core-backdrop {
959
+ position: relative;
960
+ display: flex;
961
+ box-sizing: border-box;
962
+ min-width: 0;
963
+ min-block-size: 100%;
964
+ block-size: 100%;
965
+ flex-direction: column;
966
+ gap: var(--grammar-region-gap, 1.5rem);
967
+ padding: var(--grammar-page-inset, 2rem);
968
+ overflow: hidden;
969
+ background: var(--accent-soft, var(--starci-core-accent-soft, Canvas));
970
+ color: var(--foreground, CanvasText);
971
+ }
972
+
973
+ .starci-core-backdrop-content {
974
+ display: flex;
975
+ min-width: 0;
976
+ flex-direction: column;
977
+ gap: var(--grammar-row-gap, 0.75rem);
978
+ }
979
+
980
+ .starci-core-backdrop-artwork {
981
+ display: flex;
982
+ min-width: 0;
983
+ min-block-size: 0;
984
+ flex: 1 1 auto;
985
+ align-items: flex-end;
986
+ justify-content: center;
987
+ pointer-events: none;
988
+ }
989
+
940
990
  @property --starci-core-highlight-angle {
941
991
  syntax: "<angle>";
942
992
  initial-value: 0deg;
@@ -1032,12 +1082,40 @@
1032
1082
  }
1033
1083
 
1034
1084
  /*
1035
- * --- Ink band (0.6.0): `SurfaceCard treatment="ink"`, the page's one signature overview moment. ---
1085
+ * --- Painted treatments: `SurfaceCard treatment="ink"` and `treatment="soft"`. ---
1086
+ *
1087
+ * A treatment repaints the card's ground from the family's brand tokens and rebinds the whole surface pair on it:
1088
+ * `--surface` is the ground, and the foreground, muted, separator and border tokens read on it. A grammar child that
1089
+ * paints with the pair (a Stepper or Timeline marker's circle, an avatar ring, a status dot's light stop) therefore
1090
+ * follows the ground, and its text stays AA on it. Both carry the artwork slot; the zone's geometry is shared.
1091
+ */
1092
+ .starci-core-surface:is([data-grammar-surface-treatment="ink"], [data-grammar-surface-treatment="soft"]) {
1093
+ container: starci-core-painted-band / inline-size;
1094
+ isolation: isolate;
1095
+ /* The vendor card content's own row gap would sit between the in-flow art zone and the content. */
1096
+ gap: 0 !important;
1097
+ background: var(--surface);
1098
+ color: var(--surface-foreground);
1099
+ }
1100
+
1101
+ /*
1102
+ * Soft: the brand's light tint as ground (`--accent-soft`, the family's `accentSoft`, the tint both the accent as
1103
+ * text and `muted` stay legible on) under the default foreground. It is not a slab: it may carry copy and controls,
1104
+ * and every other token keeps its value, so a child's pair stays the one it has on the family's own surface.
1105
+ */
1106
+ .starci-core-surface[data-grammar-surface-treatment="soft"] {
1107
+ --surface: var(--accent-soft, Canvas);
1108
+ --surface-foreground: var(--foreground, CanvasText);
1109
+ --starci-core-foreground: var(--foreground, CanvasText);
1110
+ }
1111
+
1112
+ /*
1113
+ * Ink (0.6.0): the page's one signature overview moment.
1036
1114
  *
1037
1115
  * The ground is the family's brand ink: `--accent` (Core; a product whose accent is its ink, e.g.
1038
1116
  * a deep navy #040d1c, gets that exact ink). Offset Pop re-binds the ground and its inks to its own ink and
1039
1117
  * canvas. Everything painted inside re-reads the band's own tokens, so grammar children (SectionHeader,
1040
- * Text, IconTile, Badge, DescriptionList, Divider) keep their anatomy and stay AA on any accent:
1118
+ * Text, IconTile, Badge, DescriptionList, Divider, Stepper) keep their anatomy and stay AA on any accent:
1041
1119
  * - foreground: white on a dark ink (lightness below 0.62), black on a light one - read from the ink
1042
1120
  * itself, because a family's accent-foreground is only promised for button-size text;
1043
1121
  * - muted: on a dark ink the ink lifted to at least 80% lightness at a quarter of its chroma (about
@@ -1057,6 +1135,7 @@
1057
1135
  --grammar-ink-band-plate: oklch(from var(--grammar-ink-band) calc(l + (clamp(0, calc((0.62 - l) * 1000), 1) * 2 - 1) * 0.08) c h);
1058
1136
  --grammar-ink-band-orbit: oklch(from var(--grammar-ink-band) calc(l + (clamp(0, calc((0.62 - l) * 1000), 1) * 2 - 1) * 0.16) calc(c * 0.5) h);
1059
1137
 
1138
+ --surface: var(--grammar-ink-band);
1060
1139
  --foreground: var(--grammar-ink-band-foreground);
1061
1140
  --surface-foreground: var(--grammar-ink-band-foreground);
1062
1141
  --starci-core-foreground: var(--grammar-ink-band-foreground);
@@ -1073,13 +1152,6 @@
1073
1152
  --danger-soft-foreground: color-mix(in oklab, var(--danger, CanvasText) 8%, var(--grammar-ink-band-foreground));
1074
1153
  --accent-soft-foreground: var(--grammar-ink-band-foreground);
1075
1154
  --accent-soft: var(--grammar-ink-band-plate);
1076
-
1077
- container: starci-core-ink-band / inline-size;
1078
- isolation: isolate;
1079
- /* The vendor card content's own row gap would sit between the in-flow art zone and the content. */
1080
- gap: 0 !important;
1081
- background: var(--grammar-ink-band);
1082
- color: var(--grammar-ink-band-foreground);
1083
1155
  }
1084
1156
 
1085
1157
  /* The eyebrow is accent text elsewhere; on the accent ground it takes the band's muted ink. */
@@ -1088,7 +1160,7 @@
1088
1160
  }
1089
1161
 
1090
1162
  /* Content paints above the decorative zone; the zone never takes a pointer or a focus. */
1091
- .starci-core-surface[data-grammar-surface-treatment="ink"] > .starci-core-surface-content {
1163
+ .starci-core-surface:is([data-grammar-surface-treatment="ink"], [data-grammar-surface-treatment="soft"]) > .starci-core-surface-content {
1092
1164
  position: relative;
1093
1165
  z-index: 1;
1094
1166
  }
@@ -1118,7 +1190,7 @@
1118
1190
  height: 100%;
1119
1191
  }
1120
1192
 
1121
- /* The slot owns no ground: the art sits straight on the ink (no placeholder plate, no frame, no corner). */
1193
+ /* The slot owns no ground: the art sits straight on the treatment's ground (no placeholder plate, no frame, no corner). */
1122
1194
  .starci-core-surface-artwork > :is(.starci-core-image, .starci-core-media-frame),
1123
1195
  .starci-core-surface-artwork .starci-core-media-viewport {
1124
1196
  border: 0;
@@ -1150,7 +1222,7 @@
1150
1222
  vector-effect: non-scaling-stroke;
1151
1223
  }
1152
1224
 
1153
- @container starci-core-ink-band (min-width: 48rem) {
1225
+ @container starci-core-painted-band (min-width: 48rem) {
1154
1226
  .starci-core-surface-artwork {
1155
1227
  position: absolute;
1156
1228
  inset-block-start: -2.75rem;
@@ -1178,6 +1250,12 @@
1178
1250
  border: 1px solid CanvasText;
1179
1251
  }
1180
1252
 
1253
+ .starci-core-surface[data-grammar-surface-treatment="soft"] {
1254
+ --surface: Canvas;
1255
+ --surface-foreground: CanvasText;
1256
+ border: 1px solid CanvasText;
1257
+ }
1258
+
1181
1259
  .starci-core-surface-orbit {
1182
1260
  display: none;
1183
1261
  }
@@ -2216,9 +2294,14 @@
2216
2294
  }
2217
2295
  }
2218
2296
 
2297
+ /*
2298
+ * The shell is at least one viewport tall, so the root's canvas runs to the bottom of the screen under a short page
2299
+ * instead of stopping where the content ends (viewport="fixed" sets its own block size below).
2300
+ */
2219
2301
  .starci-core-workspace-shell {
2220
2302
  position: relative;
2221
2303
  min-width: 0;
2304
+ min-block-size: 100dvh;
2222
2305
  container: starci-core-workspace-shell / inline-size;
2223
2306
  }
2224
2307
 
@@ -29,11 +29,19 @@ export declare const getSurfaceContentClassName: (measure: SurfaceCardMeasure, c
29
29
  export declare const surfaceHighlightClassName: string;
30
30
  /** Decorative sweep layer painted behind the highlighted surface. */
31
31
  export declare const surfaceHighlightSweepClassName: string;
32
- /** `surface` is the ordinary light face; `ink` is the one signature band painted on the family's brand ink. */
33
- export type SurfaceCardTreatment = "surface" | "ink";
32
+ /**
33
+ * `surface` is the ordinary face; `soft` is the brand's light tint (the family's `accentSoft`) under the default
34
+ * foreground; `ink` is the one signature band painted on the family's brand ink.
35
+ */
36
+ export type SurfaceCardTreatment = "surface" | "soft" | "ink";
37
+ /**
38
+ * The one logical corner drawn at the Common accent radius (`--grammar-accent-corner`); the other corners keep the
39
+ * family's surface radius. Logical, so it follows the writing direction.
40
+ */
41
+ export type AccentCorner = "start-start" | "start-end" | "end-start" | "end-end";
34
42
  /** Decorative motif of the ink band's artwork zone. */
35
43
  export type SurfaceCardMotif = "none" | "orbit";
36
- /** Decorative, `aria-hidden` artwork zone of the ink band (art slot and motif); it may bleed off the band edge. */
44
+ /** Decorative, `aria-hidden` artwork zone of a painted treatment (art slot, and the ink band's motif); it may bleed off the card edge. */
37
45
  export declare const surfaceArtworkClassName: string;
38
46
  /** The static orbit motif SVG inside the artwork zone. */
39
47
  export declare const surfaceOrbitClassName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"classNames.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/SurfaceCard/classNames.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,MAAM,GAAG,aAAa,CAAA;AACnE,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAA;AAE/C;;;;;;;GAOG;AAEH,0DAA0D;AAC1D,eAAO,MAAM,oBAAoB,QAA+D,CAAA;AAChG;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAAI,SAAS,kBAAkB,yCAIlE,CAAA;AACD,2DAA2D;AAC3D,eAAO,MAAM,qBAAqB,QAAiE,CAAA;AACnG,oDAAoD;AACpD,eAAO,MAAM,gBAAgB,QAAqD,CAAA;AAClF,sDAAsD;AACtD,eAAO,MAAM,uBAAuB,QAAqE,CAAA;AACzG,8FAA8F;AAC9F,eAAO,MAAM,0BAA0B,GAAI,SAAS,kBAAkB,EAAE,WAAW,OAAO,yCAGzF,CAAA;AACD,0EAA0E;AAC1E,eAAO,MAAM,yBAAyB,QAAyE,CAAA;AAC/G,qEAAqE;AACrE,eAAO,MAAM,8BAA8B,QAAqF,CAAA;AAEhI,+GAA+G;AAC/G,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,KAAK,CAAA;AACpD,uDAAuD;AACvD,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,CAAA;AAE/C,mHAAmH;AACnH,eAAO,MAAM,uBAAuB,QAAqE,CAAA;AACzG,0DAA0D;AAC1D,eAAO,MAAM,qBAAqB,QAAiE,CAAA"}
1
+ {"version":3,"file":"classNames.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/SurfaceCard/classNames.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,MAAM,GAAG,aAAa,CAAA;AACnE,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAA;AAE/C;;;;;;;GAOG;AAEH,0DAA0D;AAC1D,eAAO,MAAM,oBAAoB,QAA+D,CAAA;AAChG;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAAI,SAAS,kBAAkB,yCAIlE,CAAA;AACD,2DAA2D;AAC3D,eAAO,MAAM,qBAAqB,QAAiE,CAAA;AACnG,oDAAoD;AACpD,eAAO,MAAM,gBAAgB,QAAqD,CAAA;AAClF,sDAAsD;AACtD,eAAO,MAAM,uBAAuB,QAAqE,CAAA;AACzG,8FAA8F;AAC9F,eAAO,MAAM,0BAA0B,GAAI,SAAS,kBAAkB,EAAE,WAAW,OAAO,yCAGzF,CAAA;AACD,0EAA0E;AAC1E,eAAO,MAAM,yBAAyB,QAAyE,CAAA;AAC/G,qEAAqE;AACrE,eAAO,MAAM,8BAA8B,QAAqF,CAAA;AAEhI;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,MAAM,GAAG,KAAK,CAAA;AAC7D;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,CAAA;AAChF,uDAAuD;AACvD,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,CAAA;AAE/C,0IAA0I;AAC1I,eAAO,MAAM,uBAAuB,QAAqE,CAAA;AACzG,0DAA0D;AAC1D,eAAO,MAAM,qBAAqB,QAAiE,CAAA"}
@@ -29,7 +29,7 @@ export const getSurfaceContentClassName = (measure, contained) => cn(surfaceCont
29
29
  export const surfaceHighlightClassName = cn("starci-core-surface-highlight") ?? "starci-core-surface-highlight";
30
30
  /** Decorative sweep layer painted behind the highlighted surface. */
31
31
  export const surfaceHighlightSweepClassName = cn("starci-core-surface-highlight-sweep") ?? "starci-core-surface-highlight-sweep";
32
- /** Decorative, `aria-hidden` artwork zone of the ink band (art slot and motif); it may bleed off the band edge. */
32
+ /** Decorative, `aria-hidden` artwork zone of a painted treatment (art slot, and the ink band's motif); it may bleed off the card edge. */
33
33
  export const surfaceArtworkClassName = cn("starci-core-surface-artwork") ?? "starci-core-surface-artwork";
34
34
  /** The static orbit motif SVG inside the artwork zone. */
35
35
  export const surfaceOrbitClassName = cn("starci-core-surface-orbit") ?? "starci-core-surface-orbit";
@@ -1 +1 @@
1
- {"version":3,"file":"classNames.js","sourceRoot":"","sources":["../../../../src/core/branch/SurfaceCard/classNames.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAA;AAClC,OAAO,EACH,2BAA2B,EAC3B,2BAA2B,EAC3B,oBAAoB,GACvB,MAAM,qBAAqB,CAAA;AAK5B;;;;;;;GAOG;AAEH,0DAA0D;AAC1D,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC,0BAA0B,CAAC,IAAI,0BAA0B,CAAA;AAChG;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,OAA2B,EAAE,EAAE,CAAC,EAAE,CACtE,oBAAoB,EACpB,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,EAClF,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,SAAS,CACtE,CAAA;AACD,2DAA2D;AAC3D,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC,2BAA2B,CAAC,IAAI,2BAA2B,CAAA;AACnG,oDAAoD;AACpD,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC,qBAAqB,CAAC,IAAI,qBAAqB,CAAA;AAClF,sDAAsD;AACtD,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC,6BAA6B,CAAC,IAAI,6BAA6B,CAAA;AACzG,8FAA8F;AAC9F,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,OAA2B,EAAE,SAAkB,EAAE,EAAE,CAAC,EAAE,CAC7F,uBAAuB,EACvB,SAAS,IAAI,CAAC,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,SAAS,CAC3G,CAAA;AACD,0EAA0E;AAC1E,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC,+BAA+B,CAAC,IAAI,+BAA+B,CAAA;AAC/G,qEAAqE;AACrE,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,CAAC,qCAAqC,CAAC,IAAI,qCAAqC,CAAA;AAOhI,mHAAmH;AACnH,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC,6BAA6B,CAAC,IAAI,6BAA6B,CAAA;AACzG,0DAA0D;AAC1D,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC,2BAA2B,CAAC,IAAI,2BAA2B,CAAA"}
1
+ {"version":3,"file":"classNames.js","sourceRoot":"","sources":["../../../../src/core/branch/SurfaceCard/classNames.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAA;AAClC,OAAO,EACH,2BAA2B,EAC3B,2BAA2B,EAC3B,oBAAoB,GACvB,MAAM,qBAAqB,CAAA;AAK5B;;;;;;;GAOG;AAEH,0DAA0D;AAC1D,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC,0BAA0B,CAAC,IAAI,0BAA0B,CAAA;AAChG;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,OAA2B,EAAE,EAAE,CAAC,EAAE,CACtE,oBAAoB,EACpB,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,EAClF,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,SAAS,CACtE,CAAA;AACD,2DAA2D;AAC3D,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC,2BAA2B,CAAC,IAAI,2BAA2B,CAAA;AACnG,oDAAoD;AACpD,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC,qBAAqB,CAAC,IAAI,qBAAqB,CAAA;AAClF,sDAAsD;AACtD,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC,6BAA6B,CAAC,IAAI,6BAA6B,CAAA;AACzG,8FAA8F;AAC9F,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,OAA2B,EAAE,SAAkB,EAAE,EAAE,CAAC,EAAE,CAC7F,uBAAuB,EACvB,SAAS,IAAI,CAAC,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,SAAS,CAC3G,CAAA;AACD,0EAA0E;AAC1E,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC,+BAA+B,CAAC,IAAI,+BAA+B,CAAA;AAC/G,qEAAqE;AACrE,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,CAAC,qCAAqC,CAAC,IAAI,qCAAqC,CAAA;AAehI,0IAA0I;AAC1I,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC,6BAA6B,CAAC,IAAI,6BAA6B,CAAA;AACzG,0DAA0D;AAC1D,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC,2BAA2B,CAAC,IAAI,2BAA2B,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import { type ReactNode } from "react";
2
2
  import { type PresentationState } from "../../state.js";
3
3
  import { type SurfaceHeadingLevel } from "../../primitive/Label/index.js";
4
- import { type SurfaceCardHeight, type SurfaceCardMeasure, type SurfaceCardMotif } from "./classNames.js";
4
+ import { type AccentCorner, type SurfaceCardHeight, type SurfaceCardMeasure, type SurfaceCardMotif } from "./classNames.js";
5
5
  export type WholeCardAction = {
6
6
  readonly kind: "link";
7
7
  readonly href: string;
@@ -26,24 +26,35 @@ type PlainSurfaceCard = {
26
26
  readonly artwork?: undefined;
27
27
  readonly motif?: undefined;
28
28
  };
29
+ /**
30
+ * Decorative art (a `Mascot`, or an `Image` / `MediaFrame`, carrying its `assetSlot`). The slot is `aria-hidden`,
31
+ * inert to the pointer, sits behind the content and may bleed off the card's top and inline-end edges; below a
32
+ * 48rem card it drops into the head zone in flow, so it never covers text.
33
+ */
34
+ type SurfaceCardArtwork = ReactNode;
35
+ /**
36
+ * The soft card: the brand's light tint as ground (the family's `accentSoft`) under the default foreground, for a
37
+ * card the product deliberately raises (SURFACE-4), such as a first-run welcome. It rebinds the surface pair onto
38
+ * the tint and may carry copy and controls; it keeps the artwork slot and has no motif.
39
+ */
40
+ type SoftSurfaceCard = {
41
+ readonly treatment: "soft";
42
+ readonly artwork?: SurfaceCardArtwork;
43
+ readonly motif?: undefined;
44
+ };
29
45
  /**
30
46
  * The ink band: the page's one signature overview moment (DISCIPLINE-3), painted on the family's brand
31
47
  * ink (Core: the accent fill and its foreground; Offset Pop: its ink and canvas). Its content re-binds
32
- * foreground, muted, separator and the soft tone pairs onto the ink, so grammar children keep their
33
- * own anatomy and stay AA.
48
+ * the surface pair (surface, foreground, muted, separator) and the soft tone pairs onto the ink, so grammar
49
+ * children keep their own anatomy and stay AA.
34
50
  */
35
51
  type InkSurfaceCard = {
36
52
  readonly treatment: "ink";
37
- /**
38
- * Decorative art (an `Image` / `MediaFrame` carrying its `assetSlot`). The slot is `aria-hidden`,
39
- * inert to the pointer, sits behind the content and may bleed off the band's top and inline-end
40
- * edges; below a 48rem band it drops into the head zone in flow, so it never covers text.
41
- */
42
- readonly artwork?: ReactNode;
53
+ readonly artwork?: SurfaceCardArtwork;
43
54
  /** Decorative motif in the artwork zone: `orbit` draws thin rings with nodes (static SVG, low contrast). */
44
55
  readonly motif?: SurfaceCardMotif;
45
56
  };
46
- export type SurfaceCardProps = (LabelledSurfaceCard | SelfNamedSurfaceCard) & (PlainSurfaceCard | InkSurfaceCard) & {
57
+ export type SurfaceCardProps = (LabelledSurfaceCard | SelfNamedSurfaceCard) & (PlainSurfaceCard | SoftSurfaceCard | InkSurfaceCard) & {
47
58
  readonly children: ReactNode;
48
59
  readonly fact?: string;
49
60
  /** Optional content at the end of the external label row. It takes the fact's single place. */
@@ -75,6 +86,12 @@ export type SurfaceCardProps = (LabelledSurfaceCard | SelfNamedSurfaceCard) & (P
75
86
  * outside. Stamped as `data-grammar-surface-placement`.
76
87
  */
77
88
  readonly placement?: SurfaceCardPlacement;
89
+ /**
90
+ * One logical corner of the painted face drawn at the Common accent radius (`--grammar-accent-corner`), the
91
+ * brand's signature corner on a raised card (owner ruling accent-corner). The other corners keep the family's
92
+ * surface radius. Stamped as `data-grammar-accent-corner`.
93
+ */
94
+ readonly accentCorner?: AccentCorner;
78
95
  };
79
96
  export type SurfaceCardPlacement = "floating" | "panel";
80
97
  export declare const SurfaceCard: (props: SurfaceCardProps) => import("react").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/SurfaceCard/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAG7C,OAAO,EAAyC,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAE9F,OAAO,EAAwC,KAAK,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AAE/G,OAAO,EASH,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EAExB,MAAM,iBAAiB,CAAA;AAExB,MAAM,MAAM,eAAe,GACrB;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACzB,GACC;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACzB,CAAA;AAEL,KAAK,mBAAmB,GAAG;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED,KAAK,oBAAoB,GAAG;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAA;IAC1B,8FAA8F;IAC9F,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED,6DAA6D;AAC7D,KAAK,gBAAgB,GAAG;IACpB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAA;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAA;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAC7B,CAAA;AAED;;;;;GAKG;AACH,KAAK,cAAc,GAAG;IAClB,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAA;IACzB;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAA;IAC5B,4GAA4G;IAC5G,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,mBAAmB,GAAG,oBAAoB,CAAC,GAAG,CAAC,gBAAgB,GAAG,cAAc,CAAC,GAAG;IAChH,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,+FAA+F;IAC/F,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;IAC7B;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAA;IAC3C,QAAQ,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAA;IAClC,QAAQ,CAAC,WAAW,CAAC,EAAE,eAAe,CAAA;IACtC,+DAA+D;IAC/D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,CAAA;IACtC,sFAAsF;IACtF,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;IAC/B,kFAAkF;IAClF,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC1C,kFAAkF;IAClF,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAA;IACrC,kGAAkG;IAClG,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAA;IACnC,iFAAiF;IACjF,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,oBAAoB,CAAA;CAC5C,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG,OAAO,CAAA;AA2BvD,eAAO,MAAM,WAAW,GAAI,OAAO,gBAAgB,gCAqIlD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/SurfaceCard/index.tsx"],"names":[],"mappings":"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"}
@@ -16,11 +16,11 @@ import { getSurfaceCardClassName, getSurfaceContentClassName, surfaceClassName,
16
16
  */
17
17
  const OrbitMotif = () => (_jsxs("svg", { "aria-hidden": "true", className: surfaceOrbitClassName, "data-grammar-surface-orbit": "true", focusable: "false", preserveAspectRatio: "xMidYMid meet", viewBox: "0 0 480 320", children: [_jsx("ellipse", { cx: "264", cy: "168", rx: "216", ry: "118" }), _jsx("ellipse", { cx: "264", cy: "168", rx: "150", ry: "80" }), _jsx("ellipse", { cx: "264", cy: "168", rx: "84", ry: "44" }), _jsx("circle", { cx: "48", cy: "168", r: "4" }), _jsx("circle", { cx: "420", cy: "86", r: "3.5" }), _jsx("circle", { cx: "160", cy: "236", r: "3.5" }), _jsx("circle", { cx: "370", cy: "226", r: "3" }), _jsx("circle", { cx: "196", cy: "140", r: "2.5" })] }));
18
18
  export const SurfaceCard = (props) => {
19
- const { label, ariaLabel, children, fact, labelEnd, headingLevel = DEFAULT_SURFACE_HEADING_LEVEL, state = "neutral", wholeAction, scroll = "page", isScrollable = false, composition = "single", measure = "content", height = "auto", isHighlight = false, placement = "floating", } = props;
19
+ const { label, ariaLabel, children, fact, labelEnd, headingLevel = DEFAULT_SURFACE_HEADING_LEVEL, state = "neutral", wholeAction, scroll = "page", isScrollable = false, composition = "single", measure = "content", height = "auto", isHighlight = false, placement = "floating", accentCorner, } = props;
20
20
  const depth = useSurfaceNesting() ? "nested" : "top";
21
21
  const treatment = props.treatment ?? "surface";
22
22
  const motif = props.treatment === "ink" ? props.motif ?? "none" : "none";
23
- const artwork = props.treatment === "ink" ? props.artwork : undefined;
23
+ const artwork = props.treatment === "ink" || props.treatment === "soft" ? props.artwork : undefined;
24
24
  assertPresentationState(state);
25
25
  const headingId = useId();
26
26
  const stateTreatment = treatmentFor(state);
@@ -36,7 +36,7 @@ export const SurfaceCard = (props) => {
36
36
  ].join(" ");
37
37
  const rootContract = wholeAction === undefined ? undefined : "SURFACE-4";
38
38
  const action = wholeAction?.kind === "link" ? (_jsx("a", { "aria-disabled": disabled || undefined, "aria-label": wholeAction.label, "data-grammar-whole-action": "link", href: disabled ? undefined : wholeAction.href, tabIndex: disabled ? -1 : undefined })) : wholeAction?.kind === "button" ? (_jsx("button", { "aria-label": wholeAction.label, "data-grammar-whole-action": "button", disabled: disabled, onClick: wholeAction.press, type: "button" })) : null;
39
- const surface = (_jsxs(Card.Content, { "aria-label": label === undefined ? accessibleName : undefined, "aria-labelledby": label === undefined ? undefined : headingId, className: surfaceClassName, "data-contract": contentContract, "data-grammar-frame": "bounded", "data-grammar-surface-composition": composition, "data-grammar-surface-height": height, "data-grammar-scroll": contained ? "contained" : "page", "data-grammar-state": state, "data-grammar-surface-depth": depth, "data-grammar-treatment": stateTreatment.tone, "data-grammar-surface-treatment": treatment, "data-grammar-surface-artwork": artwork !== undefined ? "art" : motif !== "none" ? "motif" : "none", children: [treatment === "ink" && (artwork !== undefined || motif !== "none") ? (_jsxs("div", { "aria-hidden": "true", className: surfaceArtworkClassName, "data-grammar-surface-artwork": artwork === undefined ? "none" : "art", "data-grammar-surface-motif": motif, children: [motif === "orbit" ? _jsx(OrbitMotif, {}) : null, artwork] })) : null, _jsx(VerticalScrollRegion, { className: getSurfaceContentClassName(measure, contained), "data-contract": compositionContract, "data-grammar-surface-content": "true", "data-grammar-surface-composition": composition, isScrollable: contained, ...(contained ? (label === undefined ? (accessibleName === undefined ? {} : { "aria-label": accessibleName }) : { "aria-labelledby": headingId }) : {}), children: children }), action] }));
39
+ const surface = (_jsxs(Card.Content, { "aria-label": label === undefined ? accessibleName : undefined, "aria-labelledby": label === undefined ? undefined : headingId, className: surfaceClassName, "data-contract": contentContract, "data-grammar-accent-corner": accentCorner, "data-grammar-frame": "bounded", "data-grammar-surface-composition": composition, "data-grammar-surface-height": height, "data-grammar-scroll": contained ? "contained" : "page", "data-grammar-state": state, "data-grammar-surface-depth": depth, "data-grammar-treatment": stateTreatment.tone, "data-grammar-surface-treatment": treatment, "data-grammar-surface-artwork": artwork !== undefined ? "art" : motif !== "none" ? "motif" : "none", children: [artwork !== undefined || motif !== "none" ? (_jsxs("div", { "aria-hidden": "true", className: surfaceArtworkClassName, "data-grammar-surface-artwork": artwork === undefined ? "none" : "art", "data-grammar-surface-motif": motif, children: [motif === "orbit" ? _jsx(OrbitMotif, {}) : null, artwork] })) : null, _jsx(VerticalScrollRegion, { className: getSurfaceContentClassName(measure, contained), "data-contract": compositionContract, "data-grammar-surface-content": "true", "data-grammar-surface-composition": composition, isScrollable: contained, ...(contained ? (label === undefined ? (accessibleName === undefined ? {} : { "aria-label": accessibleName }) : { "aria-labelledby": headingId }) : {}), children: children }), action] }));
40
40
  const highlightedSurface = isHighlight && state !== "pending" ? (_jsxs("div", { className: surfaceHighlightClassName, "data-grammar-highlight": "true", children: [_jsx("div", { "aria-hidden": true, className: surfaceHighlightSweepClassName }), surface] })) : surface;
41
41
  const content = (_jsxs(Card.Root, { className: getSurfaceCardClassName(measure) ?? "", "data-contract": rootContract, "data-grammar-frame": "bounded", "data-grammar-surface-composition": composition, "data-grammar-surface-height": height, "data-grammar-interaction": wholeAction === undefined ? "static" : "whole-action", "data-grammar-surface-labelled": label === undefined ? "false" : "true", "data-grammar-surface-placement": placement, "data-grammar-surface-card": "true", "data-grammar-nesting": "surface", "data-grammar-surface-treatment": treatment, "data-component": "SurfaceCard", "data-tier": "branch", render: (cardProps) => _jsx("section", { ...cardProps }), variant: "transparent", children: [label === undefined ? null : (_jsxs(Card.Header, { className: surfaceLabelClassName ?? "", "data-contract": "GAP-2", "data-grammar-surface-label": "true", children: [_jsx(Label, { as: `h${headingLevel}`, id: headingId, children: label }), _jsx(ButtonPlacementProvider, { placement: "chrome", children: labelEnd ?? (fact === undefined ? null : (_jsx("span", { className: surfaceFactClassName, "data-grammar-surface-depth": depth, "data-contract": `TONE-2 ${depth === "nested" ? "FONT-1" : "FONT-2"}`, children: fact }))) })] })), highlightedSurface] }));
42
42
  return _jsx(SurfaceNesting, { children: content });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/SurfaceCard/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/SurfaceCard/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { ReactNode } from "react";
2
+ import type { AccentCorner } from "../../branch/SurfaceCard/classNames.js";
3
+ export type BackdropProps = {
4
+ /** The brand copy over the ground: the logo, the heading and the tagline. */
5
+ readonly children?: ReactNode;
6
+ /**
7
+ * Decorative art under the copy, usually a `Mascot` at `size="hero"`, which fills the height the copy leaves. The slot
8
+ * is `aria-hidden` and inert to the pointer.
9
+ */
10
+ readonly artwork?: ReactNode;
11
+ /** One logical corner at the Common accent radius (`--grammar-accent-corner`); the others stay square. */
12
+ readonly accentCorner?: AccentCorner;
13
+ readonly className?: string;
14
+ };
15
+ /**
16
+ * The brand backdrop: a full-bleed ground in the brand's light tint (the family's `accentSoft`) that fills its host, such
17
+ * as the brand half of a sign-in split, with the brand copy at the top and the artwork filling the rest. It is a
18
+ * ground, not a card: no border, no shadow, no card inset (owner ruling backdrop).
19
+ */
20
+ export declare const Backdrop: ({ children, artwork, accentCorner, className }: BackdropProps) => import("react").JSX.Element;
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/Backdrop/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AAE1E,MAAM,MAAM,aAAa,GAAG;IACxB,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;IAC7B;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAA;IAC5B,0GAA0G;IAC1G,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAA;IACpC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,gDAAgD,aAAa,gCAWrF,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from "@heroui/react";
3
+ /**
4
+ * The brand backdrop: a full-bleed ground in the brand's light tint (the family's `accentSoft`) that fills its host, such
5
+ * as the brand half of a sign-in split, with the brand copy at the top and the artwork filling the rest. It is a
6
+ * ground, not a card: no border, no shadow, no card inset (owner ruling backdrop).
7
+ */
8
+ export const Backdrop = ({ children, artwork, accentCorner, className }) => (_jsxs("div", { className: cn("starci-core-backdrop", className), "data-component": "Backdrop", "data-tier": "composite", "data-grammar-accent-corner": accentCorner, "data-grammar-backdrop-artwork": artwork === undefined ? "none" : "art", children: [children === undefined ? null : _jsx("div", { className: "starci-core-backdrop-content", "data-contract": "FLOW-3", children: children }), artwork === undefined ? null : _jsx("div", { "aria-hidden": "true", className: "starci-core-backdrop-artwork", children: artwork })] }));
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/Backdrop/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAA;AAiBlC;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAiB,EAAE,EAAE,CAAC,CACvF,eACI,SAAS,EAAE,EAAE,CAAC,sBAAsB,EAAE,SAAS,CAAC,oBACjC,UAAU,eACf,WAAW,gCACO,YAAY,mCACT,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,aAEpE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAK,SAAS,EAAC,8BAA8B,mBAAe,QAAQ,YAAE,QAAQ,GAAO,EACrH,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,6BAAiB,MAAM,EAAC,SAAS,EAAC,8BAA8B,YAAE,OAAO,GAAO,IAC9G,CACT,CAAA"}
@@ -1,17 +1,38 @@
1
1
  import type { ReactNode } from "react";
2
2
  import { type ButtonVariant } from "../../primitive/Button/index.js";
3
3
  import type { IconSource } from "../../primitive/Icon/index.js";
4
- export type EmptyNoticeProps = {
4
+ import { type MascotProps } from "../../primitive/Mascot/index.js";
5
+ /**
6
+ * The art of a first-run notice: generated character art drawn through `Mascot` at the `md` step (the support row of
7
+ * `mascot.choose.size`), tied to its asset slot. The step is the grammar's, so the slot takes the art and its
8
+ * provenance only; `assetSlot` is required, the type holding what lint R338 holds on a written `Mascot`.
9
+ */
10
+ export type EmptyNoticeArtwork = Pick<MascotProps, "src" | "alt" | "loading" | "assetSha256" | "assetPrompt"> & {
11
+ readonly assetSlot: string;
12
+ };
13
+ /** The notice's one mark: a glyph for an ordinary empty or failed region, or the first-run artwork, never both. */
14
+ type EmptyNoticeMark = {
15
+ /** Optional app-owned glyph for the empty condition. */
16
+ readonly iconSource?: IconSource;
17
+ readonly artwork?: undefined;
18
+ } | {
19
+ readonly iconSource?: undefined;
20
+ /** The first-run notice's character art (empty-state.choose.cause:first-run). */
21
+ readonly artwork: EmptyNoticeArtwork;
22
+ };
23
+ export type EmptyNoticeProps = EmptyNoticeMark & {
5
24
  readonly message: string;
6
25
  readonly description?: string;
7
- /** Optional app-owned mark for the empty condition. */
8
- readonly iconSource?: IconSource;
9
26
  readonly actionLabel?: string;
10
27
  readonly actionStartContent?: ReactNode;
11
28
  readonly actionVariant?: ButtonVariant;
12
29
  readonly isActionPending?: boolean;
13
30
  readonly onAction?: () => void;
14
31
  };
15
- /** Settled empty-region answer with an optional recovery action. */
16
- export declare const EmptyNotice: ({ message, description, iconSource, actionLabel, actionStartContent, actionVariant, isActionPending, onAction, }: EmptyNoticeProps) => import("react").JSX.Element;
32
+ /**
33
+ * Settled empty-region answer with an optional recovery action. Its mark is a glyph, or, on a page that has never
34
+ * held content, the first-run artwork: a `Mascot` at `md` above the message (`data-grammar-empty-mark="artwork"`).
35
+ */
36
+ export declare const EmptyNotice: ({ message, description, iconSource, artwork, actionLabel, actionStartContent, actionVariant, isActionPending, onAction, }: EmptyNoticeProps) => import("react").JSX.Element;
37
+ export {};
17
38
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/EmptyNotice/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAE5E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAG/D,MAAM,MAAM,gBAAgB,GAAG;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,uDAAuD;IACvD,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAA;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,CAAA;IACvC,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAA;IACtC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;CACjC,CAAA;AAED,oEAAoE;AACpE,eAAO,MAAM,WAAW,GAAI,kHASzB,gBAAgB,gCAsBlB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/composite/EmptyNotice/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAE5E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAG1E;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,GAAG,KAAK,GAAG,SAAS,GAAG,aAAa,GAAG,aAAa,CAAC,GAAG;IAC5G,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC7B,CAAA;AAED,mHAAmH;AACnH,KAAK,eAAe,GACd;IACE,wDAAwD;IACxD,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAA;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAA;CAC/B,GACC;IACE,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,CAAA;IAC/B,iFAAiF;IACjF,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAA;CACvC,CAAA;AAEL,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG;IAC7C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,CAAA;IACvC,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAA;IACtC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;CACjC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,2HAUzB,gBAAgB,gCAwBlB,CAAA"}
@@ -1,7 +1,11 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Button } from "../../primitive/Button/index.js";
3
3
  import { IconTile } from "../../primitive/IconTile/index.js";
4
+ import { Mascot } from "../../primitive/Mascot/index.js";
4
5
  import { Text } from "../../primitive/Text/index.js";
5
- /** Settled empty-region answer with an optional recovery action. */
6
- export const EmptyNotice = ({ message, description, iconSource, actionLabel, actionStartContent, actionVariant = "primary", isActionPending = false, onAction, }) => (_jsxs("div", { "data-tier": "composite", "data-component": "EmptyNotice", "data-contract": "GAP-3 PADDING-4", className: "starci-core-empty-notice", children: [iconSource === undefined ? null : _jsx(IconTile, { source: iconSource, tone: "neutral", size: "md" }), _jsx(Text, { size: "sm", tone: "muted", children: message }), description === undefined ? null : _jsx(Text, { size: "xs", tone: "muted", children: description }), actionLabel === undefined ? null : (_jsx(Button, { variant: actionVariant, size: "sm", startContent: actionStartContent, isPending: isActionPending, ...(onAction === undefined ? {} : { onPress: onAction }), children: actionLabel }))] }));
6
+ /**
7
+ * Settled empty-region answer with an optional recovery action. Its mark is a glyph, or, on a page that has never
8
+ * held content, the first-run artwork: a `Mascot` at `md` above the message (`data-grammar-empty-mark="artwork"`).
9
+ */
10
+ export const EmptyNotice = ({ message, description, iconSource, artwork, actionLabel, actionStartContent, actionVariant = "primary", isActionPending = false, onAction, }) => (_jsxs("div", { "data-tier": "composite", "data-component": "EmptyNotice", "data-contract": "GAP-3 PADDING-4", "data-grammar-empty-mark": artwork !== undefined ? "artwork" : iconSource !== undefined ? "glyph" : "none", className: "starci-core-empty-notice", children: [artwork === undefined ? null : _jsx(Mascot, { size: "md", ...artwork }), iconSource === undefined ? null : _jsx(IconTile, { source: iconSource, tone: "neutral", size: "md" }), _jsx(Text, { size: "sm", tone: "muted", children: message }), description === undefined ? null : _jsx(Text, { size: "xs", tone: "muted", children: description }), actionLabel === undefined ? null : (_jsx(Button, { variant: actionVariant, size: "sm", startContent: actionStartContent, isPending: isActionPending, ...(onAction === undefined ? {} : { onPress: onAction }), children: actionLabel }))] }));
7
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/EmptyNotice/index.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAsB,MAAM,iCAAiC,CAAA;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAA;AAE5D,OAAO,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAA;AAcpD,oEAAoE;AACpE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EACxB,OAAO,EACP,WAAW,EACX,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,aAAa,GAAG,SAAS,EACzB,eAAe,GAAG,KAAK,EACvB,QAAQ,GACO,EAAE,EAAE,CAAC,CACpB,4BACc,WAAW,oBACN,aAAa,mBACd,iBAAiB,EAC/B,SAAS,EAAC,0BAA0B,aAEnC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAC,QAAQ,IAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,GAAG,EAC5F,KAAC,IAAI,IAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,YAAE,OAAO,GAAQ,EAC5C,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,YAAE,WAAW,GAAQ,EACpF,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAChC,KAAC,MAAM,IACH,OAAO,EAAE,aAAa,EACtB,IAAI,EAAC,IAAI,EACT,YAAY,EAAE,kBAAkB,EAChC,SAAS,EAAE,eAAe,KACtB,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,YAExD,WAAW,GACP,CACZ,IACC,CACT,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/composite/EmptyNotice/index.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAsB,MAAM,iCAAiC,CAAA;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAA;AAE5D,OAAO,EAAE,MAAM,EAAoB,MAAM,iCAAiC,CAAA;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAA;AAkCpD;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EACxB,OAAO,EACP,WAAW,EACX,UAAU,EACV,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,aAAa,GAAG,SAAS,EACzB,eAAe,GAAG,KAAK,EACvB,QAAQ,GACO,EAAE,EAAE,CAAC,CACpB,4BACc,WAAW,oBACN,aAAa,mBACd,iBAAiB,6BACN,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EACxG,SAAS,EAAC,0BAA0B,aAEnC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAC,MAAM,IAAC,IAAI,EAAC,IAAI,KAAK,OAAO,GAAI,EAChE,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAC,QAAQ,IAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,GAAG,EAC5F,KAAC,IAAI,IAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,YAAE,OAAO,GAAQ,EAC5C,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,YAAE,WAAW,GAAQ,EACpF,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAChC,KAAC,MAAM,IACH,OAAO,EAAE,aAAa,EACtB,IAAI,EAAC,IAAI,EACT,YAAY,EAAE,kBAAkB,EAChC,SAAS,EAAE,eAAe,KACtB,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,YAExD,WAAW,GACP,CACZ,IACC,CACT,CAAA"}
@@ -0,0 +1,39 @@
1
+ import { type AssetSlotProps } from "../Image/assetSlot.js";
2
+ /** The mascot size scale: three square boxes and the hero that fills its container's height up to a cap. */
3
+ export type MascotSize = "sm" | "md" | "lg" | "hero";
4
+ /** Where a hero mascot shows: `wide` (the default) only from the lg breakpoint (64rem) up; `always` at every width. */
5
+ export type MascotVisibility = "wide" | "always";
6
+ /** The Common tokens that size each step; values are set once on the Grammar root (`common/styles.css`). */
7
+ export declare const MASCOT_SIZE_TOKENS: Readonly<{
8
+ readonly sm: "--grammar-mascot-sm";
9
+ readonly md: "--grammar-mascot-md";
10
+ readonly lg: "--grammar-mascot-lg";
11
+ readonly hero: "--grammar-mascot-hero-max";
12
+ }>;
13
+ export type MascotProps = AssetSlotProps & {
14
+ readonly src: string;
15
+ /**
16
+ * Decorative by default: `""` hides the mascot from assistive technology. A non-empty alt makes it meaningful and
17
+ * names it.
18
+ */
19
+ readonly alt?: string;
20
+ /** sm 96px, md 160px, lg 240px square; hero fills its container's height up to `--grammar-mascot-hero-max`. */
21
+ readonly size?: MascotSize;
22
+ /** Offscreen art defers by default; above-the-fold art may be eager. */
23
+ readonly loading?: "lazy" | "eager";
24
+ /** A hero only: keep it below the lg breakpoint (`always`, stepped down to the lg box) instead of hiding it. */
25
+ readonly visibility?: MascotVisibility;
26
+ readonly className?: string;
27
+ };
28
+ /**
29
+ * Generated character art at one size scale, so the same mascot renders at the same size on every screen.
30
+ *
31
+ * The art is always contained (never cropped), on a transparent ground with no loading plate, inside a square box of
32
+ * the step's token; the hero step fills its container's height up to the hero cap, for a split screen such as a
33
+ * sign-in page. Below 48rem each square step drops one step (lg to md, md to sm); a hero is absent below the lg
34
+ * breakpoint (64rem) unless `visibility="always"` keeps it, as the lg box (md below 48rem). Decorative unless `alt`
35
+ * names it (A11Y-2). The asset-slot props tie the render to the asset workflow's request, as on `Image` and
36
+ * `MediaFrame`; the grammar lint requires `assetSlot` on every Mascot.
37
+ */
38
+ export declare const Mascot: ({ src, alt, size, loading, visibility, className, ...assetSlot }: MascotProps) => import("react").JSX.Element;
39
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/primitive/Mascot/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEhF,4GAA4G;AAC5G,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAA;AAEpD,uHAAuH;AACvH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,QAAQ,CAAA;AAEhD,4GAA4G;AAC5G,eAAO,MAAM,kBAAkB;;;;;EAKpB,CAAA;AAEX,MAAM,MAAM,WAAW,GAAG,cAAc,GAAG;IACvC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB;;;OAGG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,+GAA+G;IAC/G,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;IAC1B,wEAAwE;IACxE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACnC,gHAAgH;IAChH,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAA;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,MAAM,GAAI,kEAQpB,WAAW,gCAab,CAAA"}
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { navigationClassName } from "../../navigationClassNames.js";
3
+ import { Image } from "../Image/index.js";
4
+ import { assetSlotAttributes } from "../Image/assetSlot.js";
5
+ /** The Common tokens that size each step; values are set once on the Grammar root (`common/styles.css`). */
6
+ export const MASCOT_SIZE_TOKENS = Object.freeze({
7
+ sm: "--grammar-mascot-sm",
8
+ md: "--grammar-mascot-md",
9
+ lg: "--grammar-mascot-lg",
10
+ hero: "--grammar-mascot-hero-max",
11
+ });
12
+ /**
13
+ * Generated character art at one size scale, so the same mascot renders at the same size on every screen.
14
+ *
15
+ * The art is always contained (never cropped), on a transparent ground with no loading plate, inside a square box of
16
+ * the step's token; the hero step fills its container's height up to the hero cap, for a split screen such as a
17
+ * sign-in page. Below 48rem each square step drops one step (lg to md, md to sm); a hero is absent below the lg
18
+ * breakpoint (64rem) unless `visibility="always"` keeps it, as the lg box (md below 48rem). Decorative unless `alt`
19
+ * names it (A11Y-2). The asset-slot props tie the render to the asset workflow's request, as on `Image` and
20
+ * `MediaFrame`; the grammar lint requires `assetSlot` on every Mascot.
21
+ */
22
+ export const Mascot = ({ src, alt = "", size = "md", loading = "lazy", visibility = "wide", className, ...assetSlot }) => (_jsx("span", { className: navigationClassName("starci-core-mascot", className), "data-component": "Mascot", "data-tier": "atom", "data-contract": "A11Y-2", "data-grammar-mascot-size": size, "data-grammar-mascot-visibility": size === "hero" ? visibility : undefined, ...(alt === "" ? { "aria-hidden": true } : {}), ...assetSlotAttributes(assetSlot), children: _jsx(Image, { src: src, alt: alt, aspect: "auto", fit: "contain", plate: "none", loading: loading }) }));
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/Mascot/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,mBAAmB,EAAuB,MAAM,uBAAuB,CAAA;AAQhF,4GAA4G;AAC5G,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC5C,EAAE,EAAE,qBAAqB;IACzB,EAAE,EAAE,qBAAqB;IACzB,EAAE,EAAE,qBAAqB;IACzB,IAAI,EAAE,2BAA2B;CAC3B,CAAC,CAAA;AAkBX;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EACnB,GAAG,EACH,GAAG,GAAG,EAAE,EACR,IAAI,GAAG,IAAI,EACX,OAAO,GAAG,MAAM,EAChB,UAAU,GAAG,MAAM,EACnB,SAAS,EACT,GAAG,SAAS,EACF,EAAE,EAAE,CAAC,CACf,eACI,SAAS,EAAE,mBAAmB,CAAC,oBAAoB,EAAE,SAAS,CAAC,oBAChD,QAAQ,eACb,MAAM,mBACF,QAAQ,8BACI,IAAI,oCACE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,KACpE,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAC3C,mBAAmB,CAAC,SAAS,CAAC,YAElC,KAAC,KAAK,IAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAC,MAAM,EAAC,GAAG,EAAC,SAAS,EAAC,KAAK,EAAC,MAAM,EAAC,OAAO,EAAE,OAAO,GAAI,GACrF,CACV,CAAA"}
@@ -1,16 +1,19 @@
1
1
  import type { ReactNode } from "react";
2
2
  import { type AssetSlotProps } from "../Image/assetSlot.js";
3
+ import type { AccentCorner } from "../../branch/SurfaceCard/classNames.js";
3
4
  export type MediaFrameProps = AssetSlotProps & {
4
5
  readonly children: ReactNode;
5
6
  readonly caption?: ReactNode;
6
7
  readonly aspect?: "landscape" | "portrait" | "square" | "auto";
7
8
  readonly fit?: "cover" | "contain";
8
9
  readonly treatment?: "framed" | "plain";
10
+ /** One logical corner of the viewport at the Common accent radius (`--grammar-accent-corner`), as on SurfaceCard. */
11
+ readonly accentCorner?: AccentCorner;
9
12
  readonly className?: string;
10
13
  };
11
14
  /**
12
15
  * Product-family frame for an approved illustration, photograph or generated bitmap.
13
16
  * Asset purpose and generation authority stay with the consuming product workflow.
14
17
  */
15
- export declare const MediaFrame: ({ children, caption, aspect, fit, treatment, className, ...assetSlot }: MediaFrameProps) => import("react").JSX.Element;
18
+ export declare const MediaFrame: ({ children, caption, aspect, fit, treatment, accentCorner, className, ...assetSlot }: MediaFrameProps) => import("react").JSX.Element;
16
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/primitive/MediaFrame/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEhF,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG;IAC3C,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAA;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAA;IAC9D,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,wEAQxB,eAAe,gCAkBjB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/primitive/MediaFrame/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AAE1E,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG;IAC3C,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAA;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAA;IAC9D,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;IACvC,qHAAqH;IACrH,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAA;IACpC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,sFASxB,eAAe,gCAmBjB,CAAA"}
@@ -5,5 +5,5 @@ import { assetSlotAttributes } from "../Image/assetSlot.js";
5
5
  * Product-family frame for an approved illustration, photograph or generated bitmap.
6
6
  * Asset purpose and generation authority stay with the consuming product workflow.
7
7
  */
8
- export const MediaFrame = ({ children, caption, aspect = "landscape", fit = "cover", treatment = "framed", className, ...assetSlot }) => (_jsxs("figure", { className: cn("starci-core-media-frame", className), "data-component": "MediaFrame", "data-tier": "atom", ...assetSlotAttributes(assetSlot), "data-contract": "GAP-2 MARGIN-0", "data-grammar-media-aspect": aspect, "data-grammar-media-fit": fit, "data-grammar-media-treatment": treatment, children: [_jsx("div", { className: "starci-core-media-viewport", "data-contract": treatment === "plain" ? "OVERFLOW-2 SURFACE-1" : "OVERFLOW-2 BOUNDARY-5 SURFACE-3", "data-grammar-media": "true", children: children }), caption === undefined ? null : _jsx("figcaption", { className: "starci-core-media-caption", "data-contract": "FLOW-3", children: caption })] }));
8
+ export const MediaFrame = ({ children, caption, aspect = "landscape", fit = "cover", treatment = "framed", accentCorner, className, ...assetSlot }) => (_jsxs("figure", { className: cn("starci-core-media-frame", className), "data-component": "MediaFrame", "data-tier": "atom", ...assetSlotAttributes(assetSlot), "data-contract": "GAP-2 MARGIN-0", "data-grammar-media-aspect": aspect, "data-grammar-media-fit": fit, "data-grammar-media-treatment": treatment, children: [_jsx("div", { className: "starci-core-media-viewport", "data-contract": treatment === "plain" ? "OVERFLOW-2 SURFACE-1" : "OVERFLOW-2 BOUNDARY-5 SURFACE-3", "data-grammar-accent-corner": accentCorner, "data-grammar-media": "true", children: children }), caption === undefined ? null : _jsx("figcaption", { className: "starci-core-media-caption", "data-contract": "FLOW-3", children: caption })] }));
9
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/MediaFrame/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAA;AAElC,OAAO,EAAE,mBAAmB,EAAuB,MAAM,uBAAuB,CAAA;AAWhF;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACvB,QAAQ,EACR,OAAO,EACP,MAAM,GAAG,WAAW,EACpB,GAAG,GAAG,OAAO,EACb,SAAS,GAAG,QAAQ,EACpB,SAAS,EACT,GAAG,SAAS,EACE,EAAE,EAAE,CAAC,CACnB,kBACI,SAAS,EAAE,EAAE,CAAC,yBAAyB,EAAE,SAAS,CAAC,oBACpC,YAAY,eACjB,MAAM,KACZ,mBAAmB,CAAC,SAAS,CAAC,mBACpB,gBAAgB,+BACH,MAAM,4BACT,GAAG,kCACG,SAAS,aAEvC,cACI,SAAS,EAAC,4BAA4B,mBACvB,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,iCAAiC,wBAC9E,MAAM,YAC3B,QAAQ,GAAO,EAChB,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAY,SAAS,EAAC,2BAA2B,mBAAe,QAAQ,YAAE,OAAO,GAAc,IAC1H,CACZ,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/primitive/MediaFrame/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAA;AAElC,OAAO,EAAE,mBAAmB,EAAuB,MAAM,uBAAuB,CAAA;AAchF;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EACvB,QAAQ,EACR,OAAO,EACP,MAAM,GAAG,WAAW,EACpB,GAAG,GAAG,OAAO,EACb,SAAS,GAAG,QAAQ,EACpB,YAAY,EACZ,SAAS,EACT,GAAG,SAAS,EACE,EAAE,EAAE,CAAC,CACnB,kBACI,SAAS,EAAE,EAAE,CAAC,yBAAyB,EAAE,SAAS,CAAC,oBACpC,YAAY,eACjB,MAAM,KACZ,mBAAmB,CAAC,SAAS,CAAC,mBACpB,gBAAgB,+BACH,MAAM,4BACT,GAAG,kCACG,SAAS,aAEvC,cACI,SAAS,EAAC,4BAA4B,mBACvB,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,iCAAiC,gCACrE,YAAY,wBACrB,MAAM,YAC3B,QAAQ,GAAO,EAChB,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAY,SAAS,EAAC,2BAA2B,mBAAe,QAAQ,YAAE,OAAO,GAAc,IAC1H,CACZ,CAAA"}
@@ -120,11 +120,12 @@
120
120
  /*
121
121
  * The violet is a FILL (white on it is 5.1:1) but not a text colour: 3.95:1 on the dark canvas
122
122
  * and 4.44:1 on the light secondary surface. Where Common paints the accent as TEXT - a link,
123
- * the current tab and bottom-nav destination, the current step number, the section eyebrow -
124
- * the family re-declares the accent on that element as the themed, text-safe accent, so each
125
- * Common rule reads it unchanged and its other states (current link, disabled) keep their own.
123
+ * the current tab and bottom-nav destination, the section eyebrow - the family re-declares the
124
+ * accent on that element as the themed, text-safe accent, so each Common rule reads it unchanged
125
+ * and its other states (current link, disabled) keep their own. The current step number reads
126
+ * `--accent-soft-foreground`, which the root binds to the same text-safe accent.
126
127
  */
127
- .grammar-common-root[data-grammar-family="core"] :is(.starci-core-link, .starci-core-text-action[data-appearance="tab"][data-current="true"], .starci-core-bottom-nav-item[data-grammar-current="true"], .starci-core-step[data-grammar-step-state="current"] .starci-core-step-marker) {
128
+ .grammar-common-root[data-grammar-family="core"] :is(.starci-core-link, .starci-core-text-action[data-appearance="tab"][data-current="true"], .starci-core-bottom-nav-item[data-grammar-current="true"]) {
128
129
  --accent: var(--starci-core-accent-text);
129
130
  }
130
131
 
@@ -53,17 +53,21 @@
53
53
  box-shadow: var(--offset-pop-shadow-x) var(--offset-pop-shadow-x) 0 var(--offset-pop-shadow-ink);
54
54
  }
55
55
 
56
- /* Stepper: ink-ringed markers, pink current, mint complete, critical error. */
56
+ /*
57
+ * Stepper: markers ringed in the border ink (the family ink, or the separator a painted SurfaceCard rebinds it to),
58
+ * pink current, mint complete, critical error. Every filled marker reads its fill's own foreground, which is ink in
59
+ * both themes, so the number holds on the fill wherever the stepper stands; an outlined one is the surface pair.
60
+ */
57
61
  .grammar-common-root[data-grammar-family="offset-pop"] [data-component="Stepper"] [data-grammar-step-marker] {
58
- border: var(--offset-pop-outline-width) solid var(--offset-pop-ink);
62
+ border: var(--offset-pop-outline-width) solid var(--border);
59
63
  background: var(--surface);
60
64
  color: var(--foreground);
61
65
  font-weight: 900;
62
66
  }
63
67
 
64
68
  .grammar-common-root[data-grammar-family="offset-pop"] [data-component="Stepper"] [data-grammar-step-state="complete"] [data-grammar-step-marker] {
65
- background: var(--offset-pop-mint);
66
- color: var(--offset-pop-ink);
69
+ background: var(--offset-pop-success);
70
+ color: var(--offset-pop-success-foreground);
67
71
  }
68
72
 
69
73
  .grammar-common-root[data-grammar-family="offset-pop"] [data-component="Stepper"] [data-grammar-step-state="current"] [data-grammar-step-marker] {
@@ -349,8 +353,11 @@
349
353
  box-shadow: inset 0.25rem 0 0 var(--offset-pop-pink);
350
354
  }
351
355
 
352
- /* Image: ink frame at the family surface radius. */
353
- .grammar-common-root[data-grammar-family="offset-pop"] [data-component="Image"] {
356
+ /*
357
+ * Image: ink frame at the family surface radius. Character art is not a framed image: an Image drawn by a Mascot,
358
+ * or standing in a painted SurfaceCard's artwork zone, keeps Common's transparent ground with no outline.
359
+ */
360
+ .grammar-common-root[data-grammar-family="offset-pop"] [data-component="Image"]:not([data-component="Mascot"] > *, .starci-core-surface-artwork *) {
354
361
  border: var(--offset-pop-outline-width) solid var(--offset-pop-ink);
355
362
  border-radius: var(--offset-pop-surface-radius);
356
363
  background: var(--offset-pop-blush);
@@ -173,11 +173,12 @@
173
173
  }
174
174
 
175
175
  /*
176
- * Every other Common rule that paints the accent as TEXT (link, current tab, bottom-nav and
177
- * step, eyebrow) reads the text-safe accent too: the family re-declares the accent on those
176
+ * Every other Common rule that paints the accent as TEXT (link, current tab, bottom-nav,
177
+ * eyebrow) reads the text-safe accent too: the family re-declares the accent on those
178
178
  * elements, so a rule the family does not restyle still never paints pink body-size text.
179
+ * The Stepper's markers are the family's own pairs (components-navigation.css).
179
180
  */
180
- .grammar-common-root[data-grammar-family="offset-pop"] :is(.starci-core-link, .starci-core-section-eyebrow, .starci-core-text-action[data-appearance="tab"][data-current="true"], .starci-core-bottom-nav-item, .starci-core-step-marker) {
181
+ .grammar-common-root[data-grammar-family="offset-pop"] :is(.starci-core-link, .starci-core-section-eyebrow, .starci-core-text-action[data-appearance="tab"][data-current="true"], .starci-core-bottom-nav-item) {
181
182
  --accent: var(--offset-pop-accent-text);
182
183
  }
183
184
 
@@ -246,6 +247,12 @@
246
247
  background: var(--surface);
247
248
  }
248
249
 
250
+ /* The accent corner survives this family's surface radius. */
251
+ .grammar-common-root[data-grammar-family="offset-pop"] [data-grammar-surface-card][data-slot="card"] [data-grammar-frame="bounded"][data-slot="card-content"][data-grammar-accent-corner="start-start"][data-grammar-surface-depth] { border-start-start-radius: var(--grammar-accent-corner); }
252
+ .grammar-common-root[data-grammar-family="offset-pop"] [data-grammar-surface-card][data-slot="card"] [data-grammar-frame="bounded"][data-slot="card-content"][data-grammar-accent-corner="start-end"][data-grammar-surface-depth] { border-start-end-radius: var(--grammar-accent-corner); }
253
+ .grammar-common-root[data-grammar-family="offset-pop"] [data-grammar-surface-card][data-slot="card"] [data-grammar-frame="bounded"][data-slot="card-content"][data-grammar-accent-corner="end-start"][data-grammar-surface-depth] { border-end-start-radius: var(--grammar-accent-corner); }
254
+ .grammar-common-root[data-grammar-family="offset-pop"] [data-grammar-surface-card][data-slot="card"] [data-grammar-frame="bounded"][data-slot="card-content"][data-grammar-accent-corner="end-end"][data-grammar-surface-depth] { border-end-end-radius: var(--grammar-accent-corner); }
255
+
249
256
  .grammar-common-root[data-grammar-family="offset-pop"] [data-grammar-surface-card][data-slot="card"] [data-grammar-frame="bounded"][data-slot="card-content"][data-grammar-surface-depth="top"],
250
257
  .grammar-common-root[data-grammar-family="offset-pop"] [data-grammar-surface][data-grammar-surface-depth="top"] {
251
258
  box-shadow: var(--shadow-surface);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@starci/grammar",
3
- "version": "0.15.34",
3
+ "version": "0.16.1",
4
4
  "description": "Reusable StarCi React components, compositions, and packaged visual DNA.",
5
5
  "keywords": [
6
6
  "starci",
@@ -51,8 +51,8 @@
51
51
  "./package.json": "./package.json"
52
52
  },
53
53
  "scripts": {
54
- "build": "node scripts/clean.mjs && tsc -p tsconfig.build.json && node scripts/copy-css.mjs && node scripts/build-stamp.mjs",
55
- "typecheck": "tsc -p tsconfig.build.json --noEmit && tsc -p tsconfig.stories.json",
54
+ "build": "node scripts/clean.mts && tsc -p tsconfig.build.json && node scripts/copy-css.mts && node scripts/build-stamp.mts",
55
+ "typecheck": "tsc -p tsconfig.build.json --noEmit && tsc -p tsconfig.stories.json && tsc -p tsconfig.scripts.json",
56
56
  "test": "npm run typecheck && npm run build",
57
57
  "pack:check": "npm run build && npm pack --dry-run",
58
58
  "prepack": "npm run typecheck && npm run build",