@flamingo-stack/openframe-frontend-core 0.0.334 → 0.0.335-snapshot.20260629131848

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 (84) hide show
  1. package/dist/{chunk-33LDNKXG.cjs → chunk-2FVULOIK.cjs} +25 -25
  2. package/dist/{chunk-33LDNKXG.cjs.map → chunk-2FVULOIK.cjs.map} +1 -1
  3. package/dist/{chunk-4DGLF7MO.cjs → chunk-45BYRANY.cjs} +15 -15
  4. package/dist/{chunk-4DGLF7MO.cjs.map → chunk-45BYRANY.cjs.map} +1 -1
  5. package/dist/{chunk-2ULLQCWU.js → chunk-7D5UKWEA.js} +2 -2
  6. package/dist/{chunk-EHFYP5DY.js → chunk-CIE66RSH.js} +2 -2
  7. package/dist/{chunk-LM34VIFI.js → chunk-CPALUGYN.js} +2 -2
  8. package/dist/{chunk-5S6RJ6B6.cjs → chunk-H2OKGWDK.cjs} +31 -31
  9. package/dist/{chunk-5S6RJ6B6.cjs.map → chunk-H2OKGWDK.cjs.map} +1 -1
  10. package/dist/{chunk-6IJCVAJA.cjs → chunk-H5VFN7IP.cjs} +54 -15
  11. package/dist/chunk-H5VFN7IP.cjs.map +1 -0
  12. package/dist/{chunk-IFNFRMCD.cjs → chunk-HIRDBLM3.cjs} +62 -62
  13. package/dist/{chunk-IFNFRMCD.cjs.map → chunk-HIRDBLM3.cjs.map} +1 -1
  14. package/dist/{chunk-4ETIXSEC.cjs → chunk-I5KS2YDX.cjs} +56 -56
  15. package/dist/{chunk-4ETIXSEC.cjs.map → chunk-I5KS2YDX.cjs.map} +1 -1
  16. package/dist/{chunk-6S3UPKL4.js → chunk-JTW23UXA.js} +4 -4
  17. package/dist/{chunk-5R72BDBH.js → chunk-KDJJPHQE.js} +4 -4
  18. package/dist/{chunk-YXU5Q3PZ.js → chunk-KY6RWDEB.js} +2 -2
  19. package/dist/{chunk-34OG3XPN.js → chunk-L5TSBYSQ.js} +4 -4
  20. package/dist/{chunk-B7EFUHUH.js → chunk-LDTSPXZU.js} +54 -15
  21. package/dist/{chunk-B7EFUHUH.js.map → chunk-LDTSPXZU.js.map} +1 -1
  22. package/dist/{chunk-MB22JQJD.cjs → chunk-MDYAGMLF.cjs} +7 -7
  23. package/dist/{chunk-MB22JQJD.cjs.map → chunk-MDYAGMLF.cjs.map} +1 -1
  24. package/dist/{chunk-K2VYQUVG.cjs → chunk-MVXX2JTT.cjs} +5 -5
  25. package/dist/{chunk-K2VYQUVG.cjs.map → chunk-MVXX2JTT.cjs.map} +1 -1
  26. package/dist/{chunk-QMUAEGAK.cjs → chunk-NW57Y4CP.cjs} +37 -37
  27. package/dist/{chunk-QMUAEGAK.cjs.map → chunk-NW57Y4CP.cjs.map} +1 -1
  28. package/dist/{chunk-IWBGKGKP.cjs → chunk-OQ4VKWYU.cjs} +9 -9
  29. package/dist/{chunk-IWBGKGKP.cjs.map → chunk-OQ4VKWYU.cjs.map} +1 -1
  30. package/dist/{chunk-MU6WKXSA.js → chunk-R2TWMVBP.js} +4 -4
  31. package/dist/{chunk-CK7MAR74.js → chunk-RESNZ4Z3.js} +2 -2
  32. package/dist/{chunk-INBIA4WS.cjs → chunk-SD2J3HJ5.cjs} +12 -12
  33. package/dist/{chunk-INBIA4WS.cjs.map → chunk-SD2J3HJ5.cjs.map} +1 -1
  34. package/dist/{chunk-PKIH7NV3.js → chunk-TFNK6B4T.js} +2 -2
  35. package/dist/{chunk-ELR54K5F.cjs → chunk-US3DF2WZ.cjs} +26 -26
  36. package/dist/{chunk-ELR54K5F.cjs.map → chunk-US3DF2WZ.cjs.map} +1 -1
  37. package/dist/{chunk-GUORQAA5.js → chunk-XVZ62VX4.js} +2 -2
  38. package/dist/components/case-studies/index.cjs +8 -8
  39. package/dist/components/case-studies/index.js +2 -2
  40. package/dist/components/chat/index.cjs +2 -2
  41. package/dist/components/chat/index.js +1 -1
  42. package/dist/components/contact/index.cjs +3 -3
  43. package/dist/components/contact/index.js +2 -2
  44. package/dist/components/docs/index.cjs +5 -5
  45. package/dist/components/docs/index.js +4 -4
  46. package/dist/components/embeds/index.cjs +3 -3
  47. package/dist/components/embeds/index.js +2 -2
  48. package/dist/components/faq/index.cjs +3 -3
  49. package/dist/components/faq/index.js +2 -2
  50. package/dist/components/features/index.cjs +2 -2
  51. package/dist/components/features/index.js +1 -1
  52. package/dist/components/help-center-pages/index.cjs +20 -20
  53. package/dist/components/help-center-pages/index.js +11 -11
  54. package/dist/components/index.cjs +121 -121
  55. package/dist/components/index.js +9 -9
  56. package/dist/components/navigation/index.cjs +2 -2
  57. package/dist/components/navigation/index.js +1 -1
  58. package/dist/components/onboarding-guides/index.cjs +5 -5
  59. package/dist/components/onboarding-guides/index.js +4 -4
  60. package/dist/components/related-content/index.cjs +3 -3
  61. package/dist/components/related-content/index.js +2 -2
  62. package/dist/components/tickets/index.cjs +5 -5
  63. package/dist/components/tickets/index.js +4 -4
  64. package/dist/components/ui/dashboard-info-card.d.ts +31 -1
  65. package/dist/components/ui/dashboard-info-card.d.ts.map +1 -1
  66. package/dist/components/ui/index.cjs +2 -2
  67. package/dist/components/ui/index.js +1 -1
  68. package/dist/index.cjs +2 -2
  69. package/dist/index.js +1 -1
  70. package/package.json +1 -1
  71. package/src/components/ui/dashboard-info-card.tsx +98 -17
  72. package/src/stories/DashboardInfoCard.stories.tsx +117 -0
  73. package/dist/chunk-6IJCVAJA.cjs.map +0 -1
  74. /package/dist/{chunk-2ULLQCWU.js.map → chunk-7D5UKWEA.js.map} +0 -0
  75. /package/dist/{chunk-EHFYP5DY.js.map → chunk-CIE66RSH.js.map} +0 -0
  76. /package/dist/{chunk-LM34VIFI.js.map → chunk-CPALUGYN.js.map} +0 -0
  77. /package/dist/{chunk-6S3UPKL4.js.map → chunk-JTW23UXA.js.map} +0 -0
  78. /package/dist/{chunk-5R72BDBH.js.map → chunk-KDJJPHQE.js.map} +0 -0
  79. /package/dist/{chunk-YXU5Q3PZ.js.map → chunk-KY6RWDEB.js.map} +0 -0
  80. /package/dist/{chunk-34OG3XPN.js.map → chunk-L5TSBYSQ.js.map} +0 -0
  81. /package/dist/{chunk-MU6WKXSA.js.map → chunk-R2TWMVBP.js.map} +0 -0
  82. /package/dist/{chunk-CK7MAR74.js.map → chunk-RESNZ4Z3.js.map} +0 -0
  83. /package/dist/{chunk-PKIH7NV3.js.map → chunk-TFNK6B4T.js.map} +0 -0
  84. /package/dist/{chunk-GUORQAA5.js.map → chunk-XVZ62VX4.js.map} +0 -0
@@ -23,6 +23,15 @@ const meta = {
23
23
  options: ['success', 'warning', 'error', 'info', 'accent'],
24
24
  description: 'Color variant of the circular progress',
25
25
  },
26
+ percentageDisplay: {
27
+ control: { type: 'inline-radio' },
28
+ options: ['auto', 'plain', 'tag'],
29
+ description: 'How the percentage renders (Tag vs plain text) — independent of the ring color',
30
+ },
31
+ progressSize: {
32
+ control: { type: 'number' },
33
+ description: 'Ring diameter in px (number), or `{ base, lg }` for a responsive ring. Default 56.',
34
+ },
26
35
  href: { control: 'text', description: 'Navigation URL — renders as a Next.js Link with pointer cursor' },
27
36
  tooltip: { control: 'text', description: 'Tooltip content for the question-mark icon' },
28
37
  valueClassName: { control: 'text', description: 'Override className for the value text' },
@@ -230,6 +239,114 @@ export const OverflowComparison: Story = {
230
239
  ],
231
240
  }
232
241
 
242
+ /**
243
+ * `percentageDisplay="plain"` keeps a colored progress ring while rendering the
244
+ * percentage as neutral "(NN%)" text — decoupling ring color from the Tag.
245
+ */
246
+ export const PlainPercentageWithColoredRing: Story = {
247
+ args: {
248
+ title: 'Offline Devices',
249
+ value: 20,
250
+ percentage: 10,
251
+ showProgress: true,
252
+ progressVariant: 'error',
253
+ percentageDisplay: 'plain',
254
+ },
255
+ parameters: {
256
+ docs: {
257
+ description: {
258
+ story:
259
+ 'Red ring (`progressVariant="error"`) with a plain grey "(10%)" instead of a red Tag, because `percentageDisplay="plain"`.',
260
+ },
261
+ },
262
+ },
263
+ }
264
+
265
+ /**
266
+ * Four counters with
267
+ * distinct ring colors (green / red / amber / grey) and plain "(NN%)" text.
268
+ */
269
+ export const DeviceStatusesOverview: Story = {
270
+ render: () => (
271
+ <div style={{ display: 'grid', gridTemplateColumns: 'repeat(4, 1fr)', gap: '1rem', width: '1100px' }}>
272
+ <DashboardInfoCard
273
+ title="Online Devices"
274
+ value={160}
275
+ percentage={80}
276
+ showProgress
277
+ progressVariant="success"
278
+ percentageDisplay="plain"
279
+ progressSize={{ base: 24, lg: 56 }}
280
+ />
281
+ <DashboardInfoCard
282
+ title="Offline Devices"
283
+ value={20}
284
+ percentage={10}
285
+ showProgress
286
+ progressVariant="error"
287
+ percentageDisplay="plain"
288
+ progressSize={{ base: 24, lg: 56 }}
289
+ />
290
+ <DashboardInfoCard
291
+ title="Pending Devices"
292
+ value={14}
293
+ percentage={7}
294
+ showProgress
295
+ progressVariant="warning"
296
+ percentageDisplay="plain"
297
+ progressSize={{ base: 24, lg: 56 }}
298
+ />
299
+ <DashboardInfoCard
300
+ title="Archived Devices"
301
+ value={6}
302
+ percentage={3}
303
+ showProgress
304
+ progressVariant="info"
305
+ percentageDisplay="plain"
306
+ progressSize={{ base: 24, lg: 56 }}
307
+ />
308
+ </div>
309
+ ),
310
+ parameters: {
311
+ docs: {
312
+ description: {
313
+ story:
314
+ 'Matches the Figma "Devices Overview" — green/red/amber/grey rings with neutral percentages via `percentageDisplay="plain"`, and a responsive ring (`progressSize={{ base: 24, lg: 56 }}`) that is 24px on mobile and 56px from the `lg` breakpoint up.',
315
+ },
316
+ },
317
+ },
318
+ }
319
+
320
+ /**
321
+ * `progressSize` controls the ring diameter (stroke scales with it). Left: the
322
+ * 24px mobile spec. Right: the 56px desktop default. In production pass
323
+ * `progressSize={{ base: 24, lg: 56 }}` for the responsive switch.
324
+ */
325
+ export const ProgressSizeComparison: Story = {
326
+ render: () => (
327
+ <div style={{ display: 'grid', gridTemplateColumns: 'repeat(2, 1fr)', gap: '1rem', width: '600px' }}>
328
+ <DashboardInfoCard
329
+ title="Online Devices (24px)"
330
+ value={160}
331
+ percentage={80}
332
+ showProgress
333
+ progressVariant="success"
334
+ percentageDisplay="plain"
335
+ progressSize={24}
336
+ />
337
+ <DashboardInfoCard
338
+ title="Online Devices (56px)"
339
+ value={160}
340
+ percentage={80}
341
+ showProgress
342
+ progressVariant="success"
343
+ percentageDisplay="plain"
344
+ progressSize={56}
345
+ />
346
+ </div>
347
+ ),
348
+ }
349
+
233
350
  /**
234
351
  * Multiple cards in a dashboard grid layout.
235
352
  */