@flamingo-stack/openframe-frontend-core 0.0.347-snapshot.20260630182958 → 0.0.347

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 (94) hide show
  1. package/dist/{chunk-LBBRR56M.cjs → chunk-2WTA2TGZ.cjs} +26 -26
  2. package/dist/{chunk-LBBRR56M.cjs.map → chunk-2WTA2TGZ.cjs.map} +1 -1
  3. package/dist/{chunk-6BW37KWJ.js → chunk-AQWXNUY5.js} +4 -4
  4. package/dist/{chunk-K5G3JKIU.cjs → chunk-BAQUBE3J.cjs} +5 -5
  5. package/dist/{chunk-K5G3JKIU.cjs.map → chunk-BAQUBE3J.cjs.map} +1 -1
  6. package/dist/{chunk-3JIUN64F.cjs → chunk-BB75OCWM.cjs} +25 -25
  7. package/dist/{chunk-3JIUN64F.cjs.map → chunk-BB75OCWM.cjs.map} +1 -1
  8. package/dist/{chunk-NUO4JXTS.js → chunk-DBP5XYHP.js} +2 -2
  9. package/dist/{chunk-DU5LLHRI.js → chunk-DNIXKKAO.js} +4 -4
  10. package/dist/{chunk-WADLOXCY.js → chunk-E5GGKGLG.js} +4 -4
  11. package/dist/{chunk-RT6GEODM.js → chunk-EQQS4C66.js} +2 -2
  12. package/dist/{chunk-7CBXPBSB.js → chunk-FCQTT3EN.js} +1 -1
  13. package/dist/{chunk-7CBXPBSB.js.map → chunk-FCQTT3EN.js.map} +1 -1
  14. package/dist/{chunk-CH2F32CW.cjs → chunk-IK76VFPB.cjs} +56 -56
  15. package/dist/{chunk-CH2F32CW.cjs.map → chunk-IK76VFPB.cjs.map} +1 -1
  16. package/dist/{chunk-XBJJIMIG.js → chunk-JDWOPC5W.js} +2 -2
  17. package/dist/{chunk-IROBEIGB.cjs → chunk-LLKZVG42.cjs} +31 -31
  18. package/dist/{chunk-IROBEIGB.cjs.map → chunk-LLKZVG42.cjs.map} +1 -1
  19. package/dist/{chunk-4UUFNLXQ.cjs → chunk-LURIO2V6.cjs} +7 -7
  20. package/dist/{chunk-4UUFNLXQ.cjs.map → chunk-LURIO2V6.cjs.map} +1 -1
  21. package/dist/{chunk-PQG3L4MK.cjs → chunk-LUZMRZIT.cjs} +37 -37
  22. package/dist/{chunk-PQG3L4MK.cjs.map → chunk-LUZMRZIT.cjs.map} +1 -1
  23. package/dist/{chunk-RDJNK5AV.js → chunk-LYKMMMJM.js} +2 -2
  24. package/dist/{chunk-O5D3YWMW.cjs → chunk-Q2ACKKFN.cjs} +1 -1
  25. package/dist/{chunk-O5D3YWMW.cjs.map → chunk-Q2ACKKFN.cjs.map} +1 -1
  26. package/dist/{chunk-ZS7YHQXO.js → chunk-Q2MTKMST.js} +2 -2
  27. package/dist/{chunk-MZGJBQ72.cjs → chunk-RVQCUROB.cjs} +15 -15
  28. package/dist/{chunk-MZGJBQ72.cjs.map → chunk-RVQCUROB.cjs.map} +1 -1
  29. package/dist/{chunk-QZVKSUPR.cjs → chunk-SN55DABG.cjs} +62 -62
  30. package/dist/{chunk-QZVKSUPR.cjs.map → chunk-SN55DABG.cjs.map} +1 -1
  31. package/dist/{chunk-YTSX3CIK.cjs → chunk-SNGWHQOT.cjs} +12 -12
  32. package/dist/{chunk-YTSX3CIK.cjs.map → chunk-SNGWHQOT.cjs.map} +1 -1
  33. package/dist/{chunk-YFOLFU7F.cjs → chunk-T3NJFBR4.cjs} +9 -9
  34. package/dist/{chunk-YFOLFU7F.cjs.map → chunk-T3NJFBR4.cjs.map} +1 -1
  35. package/dist/{chunk-YWEWRAMA.js → chunk-TTVJV7AX.js} +4 -4
  36. package/dist/{chunk-YOVM7KGM.js → chunk-USF72I36.js} +2 -2
  37. package/dist/{chunk-4RMUTJTZ.js → chunk-WV2O2KJQ.js} +2 -2
  38. package/dist/components/announcement-bar.d.ts.map +1 -1
  39. package/dist/components/case-studies/index.cjs +8 -8
  40. package/dist/components/case-studies/index.js +2 -2
  41. package/dist/components/chat/index.cjs +2 -2
  42. package/dist/components/chat/index.js +1 -1
  43. package/dist/components/contact/index.cjs +3 -3
  44. package/dist/components/contact/index.js +2 -2
  45. package/dist/components/docs/index.cjs +5 -5
  46. package/dist/components/docs/index.js +4 -4
  47. package/dist/components/embeds/index.cjs +3 -3
  48. package/dist/components/embeds/index.js +2 -2
  49. package/dist/components/faq/index.cjs +3 -3
  50. package/dist/components/faq/index.js +2 -2
  51. package/dist/components/features/index.cjs +2 -2
  52. package/dist/components/features/index.js +1 -1
  53. package/dist/components/help-center-pages/index.cjs +20 -20
  54. package/dist/components/help-center-pages/index.js +11 -11
  55. package/dist/components/index.cjs +127 -127
  56. package/dist/components/index.cjs.map +1 -1
  57. package/dist/components/index.js +15 -15
  58. package/dist/components/index.js.map +1 -1
  59. package/dist/components/navigation/index.cjs +2 -2
  60. package/dist/components/navigation/index.js +1 -1
  61. package/dist/components/onboarding-guides/index.cjs +5 -5
  62. package/dist/components/onboarding-guides/index.js +4 -4
  63. package/dist/components/related-content/index.cjs +3 -3
  64. package/dist/components/related-content/index.js +2 -2
  65. package/dist/components/tickets/index.cjs +5 -5
  66. package/dist/components/tickets/index.js +4 -4
  67. package/dist/components/ui/index.cjs +2 -2
  68. package/dist/components/ui/index.js +1 -1
  69. package/dist/index.cjs +2 -2
  70. package/dist/index.js +1 -1
  71. package/dist/types/announcement.cjs.map +1 -1
  72. package/dist/types/announcement.d.ts +22 -17
  73. package/dist/types/announcement.d.ts.map +1 -1
  74. package/dist/types/announcement.js.map +1 -1
  75. package/dist/types/index.cjs.map +1 -1
  76. package/dist/types/index.js.map +1 -1
  77. package/dist/types/supabase.d.ts +9 -6
  78. package/dist/types/supabase.d.ts.map +1 -1
  79. package/package.json +1 -1
  80. package/src/components/announcement-bar.tsx +6 -9
  81. package/src/stories/AnnouncementBar.stories.tsx +11 -9
  82. package/src/types/announcement.ts +23 -17
  83. package/src/types/supabase.ts +9 -6
  84. /package/dist/{chunk-6BW37KWJ.js.map → chunk-AQWXNUY5.js.map} +0 -0
  85. /package/dist/{chunk-NUO4JXTS.js.map → chunk-DBP5XYHP.js.map} +0 -0
  86. /package/dist/{chunk-DU5LLHRI.js.map → chunk-DNIXKKAO.js.map} +0 -0
  87. /package/dist/{chunk-WADLOXCY.js.map → chunk-E5GGKGLG.js.map} +0 -0
  88. /package/dist/{chunk-RT6GEODM.js.map → chunk-EQQS4C66.js.map} +0 -0
  89. /package/dist/{chunk-XBJJIMIG.js.map → chunk-JDWOPC5W.js.map} +0 -0
  90. /package/dist/{chunk-RDJNK5AV.js.map → chunk-LYKMMMJM.js.map} +0 -0
  91. /package/dist/{chunk-ZS7YHQXO.js.map → chunk-Q2MTKMST.js.map} +0 -0
  92. /package/dist/{chunk-YWEWRAMA.js.map → chunk-TTVJV7AX.js.map} +0 -0
  93. /package/dist/{chunk-YOVM7KGM.js.map → chunk-USF72I36.js.map} +0 -0
  94. /package/dist/{chunk-4RMUTJTZ.js.map → chunk-WV2O2KJQ.js.map} +0 -0
@@ -40,7 +40,8 @@ const baseAnnouncement: Announcement = {
40
40
  title: 'New Feature Released',
41
41
  description: 'Check out our latest updates and improvements to the platform.',
42
42
  background_color: '#FFD951',
43
- icon_name: 'rocket',
43
+ icon_type: 'svg',
44
+ icon_svg_name: 'rocket',
44
45
  platform_id: 'openframe',
45
46
  is_active: true,
46
47
  created_at: now,
@@ -94,12 +95,12 @@ export const WithCTA: Story = {
94
95
  title: 'OpenFrame v2.0 is here!',
95
96
  description: 'Explore the new dashboard, improved device management, and more.',
96
97
  background_color: '#FFD951',
97
- icon_name: 'star',
98
+ icon_svg_name: 'star',
98
99
  cta_enabled: true,
99
100
  cta_text: 'Learn More',
100
101
  cta_url: 'https://example.com',
101
102
  cta_target: '_blank',
102
- cta_icon_name: 'rocket',
103
+ cta_icon: 'rocket',
103
104
  cta_show_icon: true,
104
105
  cta_button_background_color: '#1A1A1A',
105
106
  cta_button_text_color: '#FFFFFF',
@@ -121,7 +122,7 @@ export const WithCTASameTab: Story = {
121
122
  title: 'Scheduled Maintenance',
122
123
  description: 'We will perform maintenance on Saturday from 2:00 AM to 4:00 AM UTC.',
123
124
  background_color: '#FFE082',
124
- icon_name: 'info',
125
+ icon_svg_name: 'info',
125
126
  cta_enabled: true,
126
127
  cta_text: 'View Status',
127
128
  cta_url: '/status',
@@ -144,7 +145,7 @@ export const BlueBackground: Story = {
144
145
  title: 'Join our Community',
145
146
  description: 'Connect with other MSPs and share best practices.',
146
147
  background_color: '#60A5FA',
147
- icon_name: 'megaphone',
148
+ icon_svg_name: 'megaphone',
148
149
  })
149
150
  return <Story />
150
151
  },
@@ -163,7 +164,7 @@ export const GreenBackground: Story = {
163
164
  title: 'All Systems Operational',
164
165
  description: 'Everything is running smoothly. No issues detected.',
165
166
  background_color: '#86EFAC',
166
- icon_name: 'bell',
167
+ icon_svg_name: 'bell',
167
168
  })
168
169
  return <Story />
169
170
  },
@@ -182,7 +183,7 @@ export const WithOpenFrameLogo: Story = {
182
183
  title: 'Welcome to OpenFrame',
183
184
  description: 'Your open-source IT infrastructure management platform.',
184
185
  background_color: '#FFD951',
185
- icon_name: 'openframe-logo',
186
+ icon_svg_name: 'openframe-logo',
186
187
  cta_enabled: true,
187
188
  cta_text: 'Get Started',
188
189
  cta_url: '/getting-started',
@@ -207,7 +208,8 @@ export const WithPNGIcon: Story = {
207
208
  title: 'Partner Program Launch',
208
209
  description: 'Become an OpenFrame certified partner and grow your business.',
209
210
  background_color: '#C4B5FD',
210
- icon_url: 'https://placehold.co/32x32/1a1a1a/white?text=OF',
211
+ icon_type: 'png',
212
+ icon_png_url: 'https://placehold.co/32x32/1a1a1a/white?text=OF',
211
213
  })
212
214
  return <Story />
213
215
  },
@@ -227,7 +229,7 @@ export const LongContent: Story = {
227
229
  description:
228
230
  'This is an extremely long description that goes into great detail about the announcement. It should be truncated on the desktop view and hidden on mobile view to keep the bar compact and readable.',
229
231
  background_color: '#FCA5A5',
230
- icon_name: 'info',
232
+ icon_svg_name: 'info',
231
233
  cta_enabled: true,
232
234
  cta_text: 'Read Full Announcement',
233
235
  cta_url: '/announcements/long',
@@ -2,23 +2,26 @@
2
2
  import type { LegacyPlatform, PlatformFilter, PlatformRecord } from './platform';
3
3
 
4
4
  // For backward compatibility, maintain the old Platform type temporarily
5
+ export type IconType = 'svg' | 'png';
6
+
5
7
  // Database Models
6
8
  export interface Announcement {
7
9
  id: string;
8
10
  title: string;
9
11
  description: string;
10
12
  background_color: string;
11
- icon_name?: string;
12
- icon_url?: string;
13
+ icon_type: IconType;
14
+ icon_svg_name?: string;
15
+ icon_png_url?: string;
13
16
  /** Extra props for the main bar/icon */
14
- icon_props?: Record<string, any>;
17
+ icon_svg_props?: Record<string, any>;
15
18
  platform_id: string; // Foreign key to platforms table
16
19
  platform?: PlatformRecord; // Joined platform data
17
20
  is_active: boolean;
18
21
  // CTA (Call-To-Action) fields
19
22
  cta_enabled?: boolean;
20
23
  cta_text?: string;
21
- cta_icon_name?: string;
24
+ cta_icon?: string;
22
25
  cta_show_icon?: boolean;
23
26
  cta_url?: string;
24
27
  cta_target?: '_self' | '_blank';
@@ -54,16 +57,17 @@ export interface CreateAnnouncementData {
54
57
  title: string;
55
58
  description: string;
56
59
  background_color: string;
57
- icon_name?: string;
58
- icon_url?: string;
60
+ icon_type: IconType;
61
+ icon_svg_name?: string;
62
+ icon_png_url?: string;
59
63
  /** Extra props for the main bar/icon */
60
- icon_props?: Record<string, any>;
64
+ icon_svg_props?: Record<string, any>;
61
65
  platforms?: string[]; // entity_platforms set (multi-select)
62
66
  is_active?: boolean;
63
67
  // CTA (Call-To-Action) fields
64
68
  cta_enabled?: boolean;
65
69
  cta_text?: string;
66
- cta_icon_name?: string;
70
+ cta_icon?: string;
67
71
  cta_show_icon?: boolean;
68
72
  cta_url?: string;
69
73
  cta_target?: '_self' | '_blank';
@@ -77,16 +81,17 @@ export interface UpdateAnnouncementData {
77
81
  title?: string;
78
82
  description?: string;
79
83
  background_color?: string;
80
- icon_name?: string;
81
- icon_url?: string;
84
+ icon_type?: IconType;
85
+ icon_svg_name?: string;
86
+ icon_png_url?: string;
82
87
  /** Extra props for the main bar/icon */
83
- icon_props?: Record<string, any>;
88
+ icon_svg_props?: Record<string, any>;
84
89
  platforms?: string[]; // entity_platforms set (multi-select)
85
90
  is_active?: boolean;
86
91
  // CTA (Call-To-Action) fields
87
92
  cta_enabled?: boolean;
88
93
  cta_text?: string;
89
- cta_icon_name?: string;
94
+ cta_icon?: string;
90
95
  cta_show_icon?: boolean;
91
96
  cta_url?: string;
92
97
  cta_target?: '_self' | '_blank';
@@ -118,14 +123,15 @@ export interface AnnouncementFormData {
118
123
  title: string;
119
124
  description: string;
120
125
  background_color: string;
121
- icon_name: string;
122
- icon_url?: string;
126
+ icon_type: IconType;
127
+ icon_svg_name: string;
128
+ icon_png_file?: File;
123
129
  platforms: string[]; // entity_platforms set (multi-select; no single platform_id)
124
130
  is_active: boolean;
125
131
  // CTA (Call-To-Action) fields
126
132
  cta_enabled: boolean;
127
133
  cta_text: string;
128
- cta_icon_name: string;
134
+ cta_icon: string;
129
135
  cta_show_icon: boolean;
130
136
  cta_url: string;
131
137
  cta_target: '_self' | '_blank';
@@ -134,7 +140,7 @@ export interface AnnouncementFormData {
134
140
  cta_button_text_color?: string;
135
141
  cta_icon_props?: string; // JSON string in form
136
142
  /** Extra props for the main bar/icon */
137
- icon_props?: string;
143
+ icon_svg_props?: string;
138
144
  }
139
145
 
140
146
  // API Query Parameters
@@ -191,7 +197,7 @@ export interface AnnouncementValidation {
191
197
  required: boolean;
192
198
  pattern: RegExp;
193
199
  };
194
- icon_name: {
200
+ icon_svg_name: {
195
201
  required: boolean;
196
202
  validOptions: string[];
197
203
  };
@@ -56,8 +56,9 @@ export type Database = {
56
56
  created_at: string | null
57
57
  created_by: string | null
58
58
  description: string
59
- icon_url: string | null
60
- icon_name: string | null
59
+ icon_png_url: string | null
60
+ icon_svg_name: string | null
61
+ icon_type: string | null
61
62
  id: string
62
63
  is_active: boolean | null
63
64
  title: string
@@ -68,8 +69,9 @@ export type Database = {
68
69
  created_at?: string | null
69
70
  created_by?: string | null
70
71
  description: string
71
- icon_url?: string | null
72
- icon_name?: string | null
72
+ icon_png_url?: string | null
73
+ icon_svg_name?: string | null
74
+ icon_type?: string | null
73
75
  id?: string
74
76
  is_active?: boolean | null
75
77
  title: string
@@ -80,8 +82,9 @@ export type Database = {
80
82
  created_at?: string | null
81
83
  created_by?: string | null
82
84
  description?: string
83
- icon_url?: string | null
84
- icon_name?: string | null
85
+ icon_png_url?: string | null
86
+ icon_svg_name?: string | null
87
+ icon_type?: string | null
85
88
  id?: string
86
89
  is_active?: boolean | null
87
90
  title?: string