@nomosui/react 0.6.0 → 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.
@@ -4,16 +4,30 @@ import type { HTMLAttributes } from 'react';
4
4
  * Présentation seule — l'ordre, le format de `at` et le texte viennent de l'appelant.
5
5
  * Aucune donnée d'app, aucun état.
6
6
  */
7
- export type TimelineItem = {
7
+ type TimelineItemBase = {
8
8
  id: string;
9
9
  /** La date/l'heure déjà formatée, fournie par l'appelant. */
10
10
  at: string;
11
11
  label: string;
12
12
  detail?: string;
13
13
  };
14
+ /**
15
+ * L'état du point est une **intention** (`done` par défaut, `past` grisé), comme le
16
+ * `tone` d'`Alert` — pas une couleur. La couleur seule ne suffit pas (WCAG) : un point
17
+ * `past` porte obligatoirement `stateLabel`, le texte accessible fourni par l'app (le
18
+ * cœur n'a pas d'i18n).
19
+ */
20
+ export type TimelineItem = TimelineItemBase & ({
21
+ state?: 'done';
22
+ stateLabel?: string;
23
+ } | {
24
+ state: 'past';
25
+ stateLabel: string;
26
+ });
14
27
  export type TimelineProps = HTMLAttributes<HTMLOListElement> & {
15
28
  items: TimelineItem[];
16
29
  /** Le nom accessible de la frise ; le cœur n'a pas d'i18n. */
17
30
  ariaLabel?: string;
18
31
  };
19
32
  export declare function Timeline({ items, ariaLabel, className, ...props }: TimelineProps): import("react").JSX.Element;
33
+ export {};
@@ -0,0 +1,19 @@
1
+ import type { ReactElement } from 'react';
2
+ /**
3
+ * Les **scènes composites** (ADR 0019) : plusieurs briques du catalogue assemblées en une
4
+ * vue qui a du sens pour un agent — un formulaire complet, une carte de statut. Elles ne
5
+ * sont pas au catalogue des composants : ce sont des **rendus**, servis comme vues MCP
6
+ * Apps (`ui://nomos/composite/<nom>`) et exposés sur la surface publique JS (ADR 0031).
7
+ * Aucune n'écrit ni ne possède d'état, et leurs défauts sont neutres : la copie se
8
+ * **injecte par props** (ADR 0002).
9
+ */
10
+ export type Composite = {
11
+ name: string;
12
+ title: string;
13
+ summary: string;
14
+ /** Rend la scène pour des données propres à la scène (ADR 0023) ; sans données, son rendu par défaut. */
15
+ render: (props?: Record<string, unknown>) => ReactElement;
16
+ };
17
+ export declare const composites: Composite[];
18
+ export declare const compositeNames: string[];
19
+ export declare function findComposite(name: string): Composite;
@@ -153,6 +153,8 @@ export { catalogue, componentNames, findComponent, validateCatalogue } from './c
153
153
  export type { CatalogueEntry } from './catalogue/registry';
154
154
  export { componentManifestSchema } from './catalogue/contract';
155
155
  export type { ComponentManifest, ComponentProp, ComponentUsage, ComponentVariant, } from './catalogue/contract';
156
+ export { composites, compositeNames, findComposite } from './composites';
157
+ export type { Composite } from './composites';
156
158
  export { cn } from './lib/cn';
157
159
  export { TONES, toneClasses } from './lib/tone';
158
160
  export type { Tone } from './lib/tone';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@nomosui/react",
3
3
  "private": false,
4
- "version": "0.6.0",
4
+ "version": "0.7.0",
5
5
  "type": "module",
6
6
  "description": "An app-agnostic design system, built in public: a core of tokens and components exposed to humans and agents.",
7
7
  "repository": {