@flamingo-stack/openframe-frontend-core 0.0.566-1861.5115.1 → 0.0.566

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.
@@ -3,13 +3,70 @@ import type { DeliveryItem } from './delivery';
3
3
  import type { RoadmapItem } from '../components/chat/types/entities/roadmap-item';
4
4
  import type { DepartmentRef } from './department';
5
5
  import type { EmployeeDirectoryRow } from './employee';
6
- export type DesignDocStatus = 'draft' | 'in_review' | 'approved' | 'building' | 'shipped' | 'abandoned';
7
- export type DesignDocTier = 'S' | 'M' | 'L';
8
- export type DesignDocParticipantStatus = 'pending' | 'in_progress' | 'completed' | 'blocked';
9
- export type DesignDocCommentType = 'blocking' | 'suggestion' | 'question' | 'note';
10
- export type DesignDocCommentStatus = 'open' | 'resolved' | 'declined';
11
- export type DesignDocLinkType = 'roadmap_task' | 'figma' | 'claude_artifact' | 'claude_design' | 'brief' | 'other';
12
- export type DesignDocMediaType = 'image' | 'video' | 'screenshot' | 'demo';
6
+ /** One value of `design_doc_vocabulary.kind` the STRUCTURAL list (one per
7
+ * value column), the only design-doc vocabulary that is code. */
8
+ export type DesignDocVocabularyKind = 'status' | 'tier' | 'participant_status' | 'comment_type' | 'comment_status' | 'link_type' | 'media_type';
9
+ /** A `design_doc_vocabulary` row, as the DAL and the vocabulary API return it. */
10
+ export interface DesignDocVocabularyOption {
11
+ id: number;
12
+ kind: DesignDocVocabularyKind;
13
+ value: string;
14
+ label: string;
15
+ /** A `StatusBadge` colorScheme name (validated against the badge's own union
16
+ * when the hub reads the row — an unknown scheme degrades to 'default'). */
17
+ color_scheme: string;
18
+ /** Human copy for surfaces that explain a value rather than just naming it
19
+ * (the dashboard's stat tiles). */
20
+ description: string | null;
21
+ display_order: number;
22
+ is_active: boolean;
23
+ /** Engine capabilities this member claims (`complete`, `blocks_approval`,
24
+ * `locked`, …). The names live in the hub's gate module. */
25
+ roles: string[];
26
+ /** link_type only: which renderer previews it. */
27
+ render: DesignDocLinkRender | null;
28
+ /** link_type only: the markdown shortcode that embeds it, and whether that
29
+ * shortcode takes the author's `|title`. */
30
+ embed_shortcode: string | null;
31
+ embed_with_title: boolean;
32
+ /** link_type only: where the artifact comes from, shown beside the label. */
33
+ source: string | null;
34
+ placeholder: string | null;
35
+ /** status only: the verb on the button that moves a doc INTO this status. */
36
+ action_label: string | null;
37
+ }
38
+ /** How the doc page previews a link type. A CAPABILITY (each key is a
39
+ * component in the renderer), so this one IS code — a DB row binds to it. */
40
+ export type DesignDocLinkRender = 'task' | 'figma' | 'claude' | 'link';
41
+ /** One legal status move, resolved to values by the DAL. */
42
+ export interface DesignDocStatusTransition {
43
+ from: string;
44
+ to: string;
45
+ /** From-specific button copy when it differs from the target's verb
46
+ * (`abandoned -> draft` reads "Reopen", not "Back to draft"). */
47
+ action_label: string | null;
48
+ display_order: number;
49
+ }
50
+ /** The whole vocabulary in one payload — what every surface (server gate,
51
+ * client badges, pickers, validators) reads instead of a literal list. */
52
+ export interface DesignDocVocabulary {
53
+ options: DesignDocVocabularyOption[];
54
+ transitions: DesignDocStatusTransition[];
55
+ }
56
+ /** A `design_doc_vocabulary.value` of kind `status`. */
57
+ export type DesignDocStatus = string;
58
+ /** A `design_doc_vocabulary.value` of kind `tier`. */
59
+ export type DesignDocTier = string;
60
+ /** A `design_doc_vocabulary.value` of kind `participant_status`. */
61
+ export type DesignDocParticipantStatus = string;
62
+ /** A `design_doc_vocabulary.value` of kind `comment_type`. */
63
+ export type DesignDocCommentType = string;
64
+ /** A `design_doc_vocabulary.value` of kind `comment_status`. */
65
+ export type DesignDocCommentStatus = string;
66
+ /** A `design_doc_vocabulary.value` of kind `link_type`. */
67
+ export type DesignDocLinkType = string;
68
+ /** A `design_doc_vocabulary.value` of kind `media_type`. */
69
+ export type DesignDocMediaType = string;
13
70
  /**
14
71
  * The profile identity the DAL embeds on participants / comment authors — THE
15
72
  * shared person projection, not a second declaration of it. `email` rides the
@@ -237,10 +294,10 @@ export interface DesignDocListResponse {
237
294
  }
238
295
  export interface DesignDocStats {
239
296
  total: number;
240
- draft: number;
241
- in_review: number;
242
- approved: number;
243
- building: number;
297
+ /** One count per `status` vocabulary row (zeros included), keyed by value —
298
+ * never a fixed set of named keys, so a status added to the table gets a
299
+ * tile without a type change. */
300
+ by_status: Record<string, number>;
244
301
  waiting_on_me_docs: number;
245
302
  waiting_on_me_tasks: number;
246
303
  }
@@ -1 +1 @@
1
- {"version":3,"file":"design-doc.d.ts","sourceRoot":"","sources":["../../src/types/design-doc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"design-doc.d.ts","sourceRoot":"","sources":["../../src/types/design-doc.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flamingo-stack/openframe-frontend-core",
3
- "version": "0.0.566-1861.5115.1",
3
+ "version": "0.0.566",
4
4
  "description": "Shared design system and components for all Flamingo platforms",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -13,29 +13,102 @@ import type { DepartmentRef } from './department'
13
13
  import type { EmployeeDirectoryRow } from './employee'
14
14
 
15
15
  // ---------------------------------------------------------------------------
16
- // Value vocabularies — TYPES ONLY.
16
+ // Value vocabularies — DATA, not source code.
17
17
  //
18
- // The runtime lists live ONCE, in the hub's `lib/utils/design-doc-gate.ts`,
19
- // beside the labels and badge colors that make them useful; that module pins
20
- // each tuple against the union here at compile time, so the two cannot drift.
21
- // Declaring `as const` arrays here as well would ship a second copy of every
22
- // vocabulary that nothing reads the copy a future contributor edits expecting
23
- // an effect.
18
+ // Every enumerable design-doc value (doc status, tier, participant status,
19
+ // comment type/status, link type, media type) is a row in the
20
+ // `design_doc_vocabulary` table, with its label, badge colour, display order
21
+ // and the semantic ROLES it claims. Nothing here lists members: a union of
22
+ // literals would be a second, stale copy of that table and would make adding a
23
+ // status a deploy instead of an INSERT.
24
+ //
25
+ // What stays in code is the CAPABILITY vocabulary — the role names the gate
26
+ // understands and the renderers a link type can bind to (both declared in the
27
+ // hub's `lib/utils/design-doc-gate.ts`). A row participates by CLAIMING a
28
+ // capability; no engine rule ever names a value.
29
+ //
30
+ // The aliases below are documentation, not constraints: they mark which
31
+ // vocabulary a string belongs to. Values are validated at the edge (the DAL
32
+ // checks membership against the live table) and by the database itself (each
33
+ // value column carries a composite FK into `design_doc_vocabulary`).
24
34
  // ---------------------------------------------------------------------------
25
35
 
26
- export type DesignDocStatus = 'draft' | 'in_review' | 'approved' | 'building' | 'shipped' | 'abandoned'
27
-
28
- export type DesignDocTier = 'S' | 'M' | 'L'
29
-
30
- export type DesignDocParticipantStatus = 'pending' | 'in_progress' | 'completed' | 'blocked'
31
-
32
- export type DesignDocCommentType = 'blocking' | 'suggestion' | 'question' | 'note'
36
+ /** One value of `design_doc_vocabulary.kind` the STRUCTURAL list (one per
37
+ * value column), the only design-doc vocabulary that is code. */
38
+ export type DesignDocVocabularyKind =
39
+ | 'status'
40
+ | 'tier'
41
+ | 'participant_status'
42
+ | 'comment_type'
43
+ | 'comment_status'
44
+ | 'link_type'
45
+ | 'media_type'
46
+
47
+ /** A `design_doc_vocabulary` row, as the DAL and the vocabulary API return it. */
48
+ export interface DesignDocVocabularyOption {
49
+ id: number
50
+ kind: DesignDocVocabularyKind
51
+ value: string
52
+ label: string
53
+ /** A `StatusBadge` colorScheme name (validated against the badge's own union
54
+ * when the hub reads the row — an unknown scheme degrades to 'default'). */
55
+ color_scheme: string
56
+ /** Human copy for surfaces that explain a value rather than just naming it
57
+ * (the dashboard's stat tiles). */
58
+ description: string | null
59
+ display_order: number
60
+ is_active: boolean
61
+ /** Engine capabilities this member claims (`complete`, `blocks_approval`,
62
+ * `locked`, …). The names live in the hub's gate module. */
63
+ roles: string[]
64
+ /** link_type only: which renderer previews it. */
65
+ render: DesignDocLinkRender | null
66
+ /** link_type only: the markdown shortcode that embeds it, and whether that
67
+ * shortcode takes the author's `|title`. */
68
+ embed_shortcode: string | null
69
+ embed_with_title: boolean
70
+ /** link_type only: where the artifact comes from, shown beside the label. */
71
+ source: string | null
72
+ placeholder: string | null
73
+ /** status only: the verb on the button that moves a doc INTO this status. */
74
+ action_label: string | null
75
+ }
33
76
 
34
- export type DesignDocCommentStatus = 'open' | 'resolved' | 'declined'
77
+ /** How the doc page previews a link type. A CAPABILITY (each key is a
78
+ * component in the renderer), so this one IS code — a DB row binds to it. */
79
+ export type DesignDocLinkRender = 'task' | 'figma' | 'claude' | 'link'
80
+
81
+ /** One legal status move, resolved to values by the DAL. */
82
+ export interface DesignDocStatusTransition {
83
+ from: string
84
+ to: string
85
+ /** From-specific button copy when it differs from the target's verb
86
+ * (`abandoned -> draft` reads "Reopen", not "Back to draft"). */
87
+ action_label: string | null
88
+ display_order: number
89
+ }
35
90
 
36
- export type DesignDocLinkType = 'roadmap_task' | 'figma' | 'claude_artifact' | 'claude_design' | 'brief' | 'other'
91
+ /** The whole vocabulary in one payload what every surface (server gate,
92
+ * client badges, pickers, validators) reads instead of a literal list. */
93
+ export interface DesignDocVocabulary {
94
+ options: DesignDocVocabularyOption[]
95
+ transitions: DesignDocStatusTransition[]
96
+ }
37
97
 
38
- export type DesignDocMediaType = 'image' | 'video' | 'screenshot' | 'demo'
98
+ /** A `design_doc_vocabulary.value` of kind `status`. */
99
+ export type DesignDocStatus = string
100
+ /** A `design_doc_vocabulary.value` of kind `tier`. */
101
+ export type DesignDocTier = string
102
+ /** A `design_doc_vocabulary.value` of kind `participant_status`. */
103
+ export type DesignDocParticipantStatus = string
104
+ /** A `design_doc_vocabulary.value` of kind `comment_type`. */
105
+ export type DesignDocCommentType = string
106
+ /** A `design_doc_vocabulary.value` of kind `comment_status`. */
107
+ export type DesignDocCommentStatus = string
108
+ /** A `design_doc_vocabulary.value` of kind `link_type`. */
109
+ export type DesignDocLinkType = string
110
+ /** A `design_doc_vocabulary.value` of kind `media_type`. */
111
+ export type DesignDocMediaType = string
39
112
 
40
113
  // ---------------------------------------------------------------------------
41
114
  // Rows (as returned by the hub DAL — hydrated)
@@ -286,10 +359,10 @@ export interface DesignDocListResponse {
286
359
 
287
360
  export interface DesignDocStats {
288
361
  total: number
289
- draft: number
290
- in_review: number
291
- approved: number
292
- building: number
362
+ /** One count per `status` vocabulary row (zeros included), keyed by value —
363
+ * never a fixed set of named keys, so a status added to the table gets a
364
+ * tile without a type change. */
365
+ by_status: Record<string, number>
293
366
  waiting_on_me_docs: number
294
367
  waiting_on_me_tasks: number
295
368
  }