@flamingo-stack/openframe-frontend-core 0.0.197 → 0.0.199-snapshot.20260520170030

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 (73) hide show
  1. package/dist/chunk-4CWSZPXH.cjs.map +1 -1
  2. package/dist/{chunk-IMDXOVYD.cjs → chunk-C3M6R6JH.cjs} +528 -286
  3. package/dist/chunk-C3M6R6JH.cjs.map +1 -0
  4. package/dist/chunk-OII2IERE.cjs.map +1 -1
  5. package/dist/chunk-UC43NICZ.cjs.map +1 -1
  6. package/dist/chunk-V2FNIPZJ.cjs.map +1 -1
  7. package/dist/chunk-VJTFBYVG.cjs.map +1 -1
  8. package/dist/chunk-VRHGVLSL.cjs.map +1 -1
  9. package/dist/chunk-WZW7C7TF.cjs.map +1 -1
  10. package/dist/chunk-XQFFGR6U.cjs.map +1 -1
  11. package/dist/{chunk-GIQZAYY5.js → chunk-ZOM75JOY.js} +398 -156
  12. package/dist/chunk-ZOM75JOY.js.map +1 -0
  13. package/dist/components/chart.d.ts +14 -7
  14. package/dist/components/chart.d.ts.map +1 -1
  15. package/dist/components/chat/chat-input.d.ts.map +1 -1
  16. package/dist/components/chat/chat-message-enhanced.d.ts.map +1 -1
  17. package/dist/components/chat/chat-message-skeleton.d.ts.map +1 -1
  18. package/dist/components/chat/types/component.types.d.ts +4 -0
  19. package/dist/components/chat/types/component.types.d.ts.map +1 -1
  20. package/dist/components/features/index.cjs +2 -2
  21. package/dist/components/features/index.cjs.map +1 -1
  22. package/dist/components/features/index.js +1 -1
  23. package/dist/components/icons/index.cjs.map +1 -1
  24. package/dist/components/icons-v2-generated/index.cjs.map +1 -1
  25. package/dist/components/index.cjs +2 -2
  26. package/dist/components/index.cjs.map +1 -1
  27. package/dist/components/index.js +1 -1
  28. package/dist/components/navigation/index.cjs +2 -2
  29. package/dist/components/navigation/index.cjs.map +1 -1
  30. package/dist/components/navigation/index.js +1 -1
  31. package/dist/components/platform/ScriptArguments.d.ts.map +1 -1
  32. package/dist/components/resizable.d.ts +1 -1
  33. package/dist/components/shared/product-release/product-release-card-skeleton.d.ts +1 -1
  34. package/dist/components/shared/product-release/product-release-card-skeleton.d.ts.map +1 -1
  35. package/dist/components/shared/product-release/product-release-card.d.ts +38 -2
  36. package/dist/components/shared/product-release/product-release-card.d.ts.map +1 -1
  37. package/dist/components/shared/product-release/release-detail-page.d.ts.map +1 -1
  38. package/dist/components/toast/index.cjs.map +1 -1
  39. package/dist/components/ui/file-manager/index.cjs.map +1 -1
  40. package/dist/components/ui/index.cjs +2 -2
  41. package/dist/components/ui/index.cjs.map +1 -1
  42. package/dist/components/ui/index.js +1 -1
  43. package/dist/components/ui/release-changelog-section.d.ts +7 -1
  44. package/dist/components/ui/release-changelog-section.d.ts.map +1 -1
  45. package/dist/hooks/index.cjs.map +1 -1
  46. package/dist/index.cjs +2 -2
  47. package/dist/index.cjs.map +1 -1
  48. package/dist/index.js +1 -1
  49. package/dist/tailwind.config.cjs +10 -7
  50. package/dist/tailwind.config.cjs.map +1 -1
  51. package/dist/tailwind.config.js +10 -7
  52. package/dist/tailwind.config.js.map +1 -1
  53. package/dist/types/index.cjs.map +1 -1
  54. package/dist/types/index.js.map +1 -1
  55. package/dist/types/product-release.d.ts +12 -0
  56. package/dist/types/product-release.d.ts.map +1 -1
  57. package/package.json +1 -1
  58. package/src/components/chat/.chat-input.md +0 -1
  59. package/src/components/chat/chat-container.tsx +3 -3
  60. package/src/components/chat/chat-input.tsx +38 -51
  61. package/src/components/chat/chat-message-enhanced.tsx +21 -22
  62. package/src/components/chat/chat-message-list.tsx +6 -6
  63. package/src/components/chat/chat-message-skeleton.tsx +9 -10
  64. package/src/components/chat/types/component.types.ts +4 -0
  65. package/src/components/platform/ScriptArguments.tsx +7 -6
  66. package/src/components/shared/product-release/product-release-card-skeleton.tsx +69 -1
  67. package/src/components/shared/product-release/product-release-card.tsx +334 -4
  68. package/src/components/shared/product-release/release-detail-page.tsx +8 -2
  69. package/src/components/ui/release-changelog-section.tsx +29 -2
  70. package/src/types/product-release.ts +12 -0
  71. package/tailwind.config.ts +4 -0
  72. package/dist/chunk-GIQZAYY5.js.map +0 -1
  73. package/dist/chunk-IMDXOVYD.cjs.map +0 -1
@@ -14,6 +14,12 @@ interface ReleaseChangelogSectionProps {
14
14
  collapsible?: boolean;
15
15
  /** Initial collapsed state (only used when collapsible=true). Defaults to true (collapsed). */
16
16
  defaultCollapsed?: boolean;
17
+ /** Optional lucide icon rendered inline before the title text. Matches the
18
+ * catalog card's changelog-strip icons (Sparkles for Features, Wrench for
19
+ * Fixes, TrendingUp for Improvements, AlertTriangle for Breaking) — same
20
+ * visual taxonomy across catalog and detail. Inherits the title's color
21
+ * (secondary for normal sections, red for breaking). */
22
+ icon?: React.ReactNode;
17
23
  SimpleMarkdownRenderer: React.ComponentType<{ content: string }>;
18
24
  }
19
25
 
@@ -24,6 +30,7 @@ export function ReleaseChangelogSection({
24
30
  hideTitle = false,
25
31
  collapsible = false,
26
32
  defaultCollapsed = true,
33
+ icon,
27
34
  SimpleMarkdownRenderer
28
35
  }: ReleaseChangelogSectionProps) {
29
36
  const [collapsed, setCollapsed] = useState(collapsible ? defaultCollapsed : false);
@@ -42,6 +49,7 @@ export function ReleaseChangelogSection({
42
49
  className="flex items-center justify-between w-full cursor-pointer"
43
50
  >
44
51
  <h2 className={`flex items-center gap-2 text-2xl font-bold ${isBreaking ? 'text-red-500' : 'text-ods-text-primary'}`}>
52
+ {icon}
45
53
  {title}
46
54
  <Badge variant="secondary" className="ml-2">{entries.length}</Badge>
47
55
  </h2>
@@ -53,6 +61,7 @@ export function ReleaseChangelogSection({
53
61
  </button>
54
62
  ) : (
55
63
  <h2 className={`flex items-center gap-2 text-2xl font-bold ${isBreaking ? 'text-red-500' : 'text-ods-text-primary'}`}>
64
+ {icon}
56
65
  {title}
57
66
  <Badge variant="secondary" className="ml-2">{entries.length}</Badge>
58
67
  </h2>
@@ -62,9 +71,27 @@ export function ReleaseChangelogSection({
62
71
  <ul className="space-y-6">
63
72
  {entries.map((entry, index) => (
64
73
  <li key={index} className="border-l-2 border-ods-border pl-4 ml-0">
65
- <p className="font-['DM_Sans'] font-semibold text-[20px] leading-[24px] text-ods-text-primary mb-2">{entry.title}</p>
74
+ {/* Entry title — `text-h3` is body family + BOLD weight (per
75
+ ODS tokens: `--font-h3-weight: var(--font-weight-bold)`)
76
+ at 14/18px responsive. Same body size as the description
77
+ below, distinguished by weight — clean visual hierarchy
78
+ without inflating the body scale. */}
79
+ <p className="text-h3 text-ods-text-primary mb-2">{entry.title}</p>
66
80
  {entry.description && (
67
- <div className="[&_p]:!font-['DM_Sans'] [&_p]:!font-medium [&_p]:!text-[18px] [&_p]:!leading-[24px] [&_p]:!text-ods-text-primary [&_p]:!my-1">
81
+ /* Entry description body text matches the main release
82
+ summary (release-detail-page.tsx:321) at the SAME 14/18px
83
+ responsive `text-h4` scale. The `SimpleMarkdownRenderer`
84
+ forces its own `<p>` typography
85
+ (`text-[16px] md:text-[18px] lg:text-[20px]`) which
86
+ overrides the wrapper's `text-h4` on `lg+` viewports and
87
+ inflates the changelog body to 20px — larger than the
88
+ main summary AND larger than the entry title.
89
+ The `[&_p]:!` overrides pin every descendant `<p>` back
90
+ to the h4 responsive tokens (`var(--font-size-h4-body)`
91
+ + `var(--font-line-space-h4-body)`) — same variables
92
+ `text-h4` itself uses, so the responsive breakpoints
93
+ stay aligned with the rest of the page. */
94
+ <div className="text-h4 text-ods-text-primary [&_p]:!text-[length:var(--font-size-h4-body)] [&_p]:!leading-[var(--font-line-space-h4-body)] [&_p]:!font-medium">
68
95
  <SimpleMarkdownRenderer content={entry.description} />
69
96
  </div>
70
97
  )}
@@ -123,6 +123,18 @@ export interface ProductRelease {
123
123
  status: 'draft' | 'published' | 'archived'
124
124
  published_at: string | null
125
125
  author_id: string | null
126
+ /**
127
+ * Hydrated by `getRelease` (detail) and `getReleases` (list) via
128
+ * `hydrateAuthor` in the hub DAL. Optional so admin form + every existing
129
+ * consumer that doesn't read author stay backward-compatible.
130
+ */
131
+ author?: {
132
+ id: string
133
+ full_name: string
134
+ avatar_url: string | null
135
+ job_title: string | null
136
+ email?: string | null
137
+ }
126
138
 
127
139
  // Timestamps
128
140
  created_at: string
@@ -219,6 +219,10 @@ const config: Config = {
219
219
  xs: "calc(var(--radius) - 6px)", // 2px
220
220
  },
221
221
 
222
+ maxWidth: {
223
+ 'ods-content-narrow': '600px',
224
+ },
225
+
222
226
  fontFamily: {
223
227
  sans: ["var(--font-family-body)"],
224
228
  mono: ["var(--font-family-heading)"],