@flamingo-stack/openframe-frontend-core 0.0.264 → 0.0.265-snapshot.20260612215101

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 (102) hide show
  1. package/dist/{chunk-VYTU7JZR.js → chunk-DTJ32U7J.js} +2489 -2475
  2. package/dist/chunk-DTJ32U7J.js.map +1 -0
  3. package/dist/{chunk-ERFO4JFK.js → chunk-FREG2KXV.js} +30 -6
  4. package/dist/chunk-FREG2KXV.js.map +1 -0
  5. package/dist/{chunk-6ZEKKAAL.js → chunk-FRU4LQJ4.js} +4 -4
  6. package/dist/{chunk-J5R3QIOJ.cjs → chunk-G5GQVAPI.cjs} +8 -6
  7. package/dist/chunk-G5GQVAPI.cjs.map +1 -0
  8. package/dist/{chunk-URJQGMNH.js → chunk-HTR3ARN6.js} +6 -3
  9. package/dist/chunk-HTR3ARN6.js.map +1 -0
  10. package/dist/{chunk-TT2VBR7P.cjs → chunk-JMU4RU5J.cjs} +26 -2
  11. package/dist/chunk-JMU4RU5J.cjs.map +1 -0
  12. package/dist/{chunk-GBUGYHDY.js → chunk-K4K4X62E.js} +6 -4
  13. package/dist/chunk-K4K4X62E.js.map +1 -0
  14. package/dist/{chunk-SSUUMPAQ.js → chunk-KUYYJ2XM.js} +3 -3
  15. package/dist/{chunk-3LWUHLPK.cjs → chunk-Q52JZP3P.cjs} +29 -26
  16. package/dist/chunk-Q52JZP3P.cjs.map +1 -0
  17. package/dist/{chunk-SIYHXLFH.cjs → chunk-QAQ7AROS.cjs} +332 -318
  18. package/dist/chunk-QAQ7AROS.cjs.map +1 -0
  19. package/dist/{chunk-A56L7UQG.cjs → chunk-QXRXIHY6.cjs} +12 -12
  20. package/dist/{chunk-A56L7UQG.cjs.map → chunk-QXRXIHY6.cjs.map} +1 -1
  21. package/dist/{chunk-JOUI6TQY.js → chunk-SRM7HE2A.js} +6 -3
  22. package/dist/chunk-SRM7HE2A.js.map +1 -0
  23. package/dist/{chunk-TZ3PV5NT.js → chunk-TX2VP43R.js} +2 -2
  24. package/dist/{chunk-7MNBE7XA.cjs → chunk-UUARMJJE.cjs} +6 -3
  25. package/dist/chunk-UUARMJJE.cjs.map +1 -0
  26. package/dist/{chunk-P67D545X.cjs → chunk-VYGS24RO.cjs} +16 -16
  27. package/dist/{chunk-P67D545X.cjs.map → chunk-VYGS24RO.cjs.map} +1 -1
  28. package/dist/{chunk-ZOOTBYZO.cjs → chunk-WB2JXKEI.cjs} +34 -34
  29. package/dist/{chunk-ZOOTBYZO.cjs.map → chunk-WB2JXKEI.cjs.map} +1 -1
  30. package/dist/components/chat/index.cjs +4 -4
  31. package/dist/components/chat/index.js +3 -3
  32. package/dist/components/contact/contact-form.d.ts.map +1 -1
  33. package/dist/components/contact/index.cjs +5 -5
  34. package/dist/components/contact/index.js +4 -4
  35. package/dist/components/faq/faq-section.d.ts.map +1 -1
  36. package/dist/components/faq/index.cjs +3 -3
  37. package/dist/components/faq/index.js +2 -2
  38. package/dist/components/features/board/ticket-card.d.ts.map +1 -1
  39. package/dist/components/features/board/types.d.ts +1 -0
  40. package/dist/components/features/board/types.d.ts.map +1 -1
  41. package/dist/components/features/entity-video-section.d.ts.map +1 -1
  42. package/dist/components/features/index.cjs +4 -4
  43. package/dist/components/features/index.js +3 -3
  44. package/dist/components/features/video-bites-display.d.ts.map +1 -1
  45. package/dist/components/index.cjs +83 -81
  46. package/dist/components/index.cjs.map +1 -1
  47. package/dist/components/index.js +11 -9
  48. package/dist/components/index.js.map +1 -1
  49. package/dist/components/layout/page-heading.d.ts +8 -0
  50. package/dist/components/layout/page-heading.d.ts.map +1 -1
  51. package/dist/components/navigation/index.cjs +4 -4
  52. package/dist/components/navigation/index.js +3 -3
  53. package/dist/components/onboarding-guides/index.cjs +23 -23
  54. package/dist/components/onboarding-guides/index.js +3 -3
  55. package/dist/components/open-source-features.d.ts.map +1 -1
  56. package/dist/components/related-content/index.cjs +5 -5
  57. package/dist/components/related-content/index.js +4 -4
  58. package/dist/components/shared/onboarding/onboarding-walkthrough.d.ts.map +1 -1
  59. package/dist/components/tickets/index.cjs +65 -65
  60. package/dist/components/tickets/index.js +5 -5
  61. package/dist/components/ui/index.cjs +8 -6
  62. package/dist/components/ui/index.cjs.map +1 -1
  63. package/dist/components/ui/index.js +7 -5
  64. package/dist/components/why-it-matters.d.ts.map +1 -1
  65. package/dist/hooks/use-toast.d.ts +1 -1
  66. package/dist/index.cjs +10 -4
  67. package/dist/index.cjs.map +1 -1
  68. package/dist/index.js +11 -5
  69. package/dist/utils/date-utils.d.ts +9 -0
  70. package/dist/utils/date-utils.d.ts.map +1 -1
  71. package/dist/utils/index.cjs +29 -0
  72. package/dist/utils/index.cjs.map +1 -1
  73. package/dist/utils/index.d.ts +1 -1
  74. package/dist/utils/index.d.ts.map +1 -1
  75. package/dist/utils/index.js +28 -1
  76. package/dist/utils/index.js.map +1 -1
  77. package/package.json +1 -1
  78. package/src/components/contact/contact-form.tsx +2 -1
  79. package/src/components/faq/faq-section.tsx +3 -2
  80. package/src/components/features/board/ticket-card.tsx +15 -0
  81. package/src/components/features/board/types.ts +1 -0
  82. package/src/components/features/entity-video-section.tsx +2 -1
  83. package/src/components/features/video-bites-display.tsx +2 -1
  84. package/src/components/layout/page-heading.tsx +9 -0
  85. package/src/components/open-source-features.tsx +3 -2
  86. package/src/components/shared/onboarding/onboarding-walkthrough.tsx +2 -1
  87. package/src/components/why-it-matters.tsx +3 -2
  88. package/src/utils/date-utils.ts +36 -0
  89. package/src/utils/index.ts +2 -0
  90. package/dist/chunk-3LWUHLPK.cjs.map +0 -1
  91. package/dist/chunk-7MNBE7XA.cjs.map +0 -1
  92. package/dist/chunk-ERFO4JFK.js.map +0 -1
  93. package/dist/chunk-GBUGYHDY.js.map +0 -1
  94. package/dist/chunk-J5R3QIOJ.cjs.map +0 -1
  95. package/dist/chunk-JOUI6TQY.js.map +0 -1
  96. package/dist/chunk-SIYHXLFH.cjs.map +0 -1
  97. package/dist/chunk-TT2VBR7P.cjs.map +0 -1
  98. package/dist/chunk-URJQGMNH.js.map +0 -1
  99. package/dist/chunk-VYTU7JZR.js.map +0 -1
  100. /package/dist/{chunk-6ZEKKAAL.js.map → chunk-FRU4LQJ4.js.map} +0 -0
  101. /package/dist/{chunk-SSUUMPAQ.js.map → chunk-KUYYJ2XM.js.map} +0 -0
  102. /package/dist/{chunk-TZ3PV5NT.js.map → chunk-TX2VP43R.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-TT2VBR7P.cjs","../src/components/ui/status-badge.tsx","../src/components/features/entity-tag-badges.tsx"],"names":[],"mappings":"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","file":"/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-TT2VBR7P.cjs","sourcesContent":[null,"\"use client\"\n\nimport React from 'react';\nimport { cn } from '../../utils/cn';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nconst statusBadgeVariants = cva(\n \"inline-flex items-center justify-center rounded font-mono font-medium uppercase tracking-wide\",\n {\n variants: {\n variant: {\n card: \"px-3 py-1.5 text-sm\",\n button: \"px-2 py-0.5 text-[10px] leading-none\",\n },\n colorScheme: {\n cyan: \"bg-[var(--ods-flamingo-cyan-base)] text-ods-text-on-accent\",\n pink: \"bg-[var(--ods-flamingo-pink-base)] text-ods-text-on-accent\",\n yellow: \"bg-[var(--ods-flamingo-yellow-base)] text-ods-text-on-accent border border-[var(--ods-system-greys-black)]\",\n green: \"bg-[var(--ods-flamingo-green-base)] text-ods-text-on-accent\",\n purple: \"bg-[var(--ods-flamingo-purple-base)] text-ods-text-on-accent\",\n success: \"bg-[var(--ods-attention-green-success-secondary)] text-[var(--ods-attention-green-success)]\",\n error: \"bg-[var(--ods-attention-red-error-secondary)] text-[var(--ods-attention-red-error)]\",\n warning: \"bg-[var(--ods-attention-yellow-warning-secondary)] text-[var(--ods-attention-yellow-warning)]\",\n default: \"bg-ods-bg-secondary text-ods-text-primary\",\n // Border-only variants (no background) - for task type badges\n accentBorder: \"bg-transparent border-2 text-ods-accent border-ods-accent\",\n errorBorder: \"bg-transparent border-2 text-[var(--ods-attention-red-error)] border-[var(--ods-attention-red-error)]\",\n whiteBorder: \"bg-transparent border-2 text-ods-text-primary border-ods-text-primary\",\n },\n },\n defaultVariants: {\n variant: \"card\",\n colorScheme: \"default\",\n },\n }\n);\n\nexport interface StatusBadgeProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof statusBadgeVariants> {\n text: string;\n /**\n * When true, renders `text` verbatim on a single line, bypassing the\n * default multi-word vertical-stack behavior used by `variant=\"button\"`.\n * Use this for compact inline contexts (e.g. chat-inline roadmap cards)\n * where the stamp-like stacked layout is undesirable.\n */\n singleLine?: boolean;\n}\n\nfunction StatusBadge({\n text,\n variant,\n colorScheme,\n className,\n singleLine,\n ...props\n}: StatusBadgeProps) {\n // Outer element is `<span>` so the badge is HTML-valid in any inline\n // context (e.g. inside a markdown `<p>` next to a compact chat card,\n // or inside an `<a>`). The `inline-flex` base class in\n // `statusBadgeVariants` keeps the layout identical to the previous\n // `<div>` outer — only the element name changed.\n //\n // Escape hatch: callers can pass `singleLine` to opt out of the\n // multi-word stacking applied for `variant=\"button\"`. This is needed\n // for compact inline contexts (chat-inline roadmap cards) where the\n // default stamp-like vertical stack (\"TO\" / \"DO\") breaks layout.\n const renderText = () => {\n if (singleLine) return text;\n if (variant === 'button' && text.includes(' ')) {\n const words = text.split(' ');\n return (\n <span className=\"flex flex-col items-center justify-center text-center gap-0\">\n {words.map((word, index) => (\n <span key={index} className=\"block\">{word}</span>\n ))}\n </span>\n );\n }\n return text;\n };\n\n return (\n <span\n className={cn(statusBadgeVariants({ variant, colorScheme }), className)}\n {...props}\n >\n {renderText()}\n </span>\n );\n}\n\nexport { StatusBadge, statusBadgeVariants };","import Link from 'next/link'\nimport { StatusBadge } from '../ui/status-badge'\nimport type { TagAssoc } from '../../types/blog'\n\ninterface EntityTagBadgesProps {\n /** Flat `<entity>_tags[]` association array (from entity_tags hydration). */\n tags?: TagAssoc[] | null\n /**\n * When set, each badge links to `${basePath}?tags=${slug}` (clickable, SPA nav\n * via next/link). Omit for a non-interactive display (badges with no slug also\n * render non-interactive even when basePath is set).\n */\n basePath?: string\n /** Cap visible badges; the remainder collapse into a \"+N\" badge. */\n max?: number\n /** Extra classes on the wrapper row. */\n className?: string\n}\n\n// The ONE tag-badge skin (OpenFrame design): rounded-rect, font-mono uppercase\n// StatusBadge on ods-card + ods-border. Clickable badges add the accent hover.\n// Exported so other tag-shaped chips (e.g. FaqAccordion's section badge)\n// render the IDENTICAL skin without re-declaring it.\nexport const TAG_BADGE_CLASS = 'bg-ods-card border border-ods-border'\nconst BADGE_CLASS = TAG_BADGE_CLASS\n\n/**\n * THE single tag-badge renderer for the whole product (hub + lib). Renders the\n * OpenFrame `StatusBadge` chip skin for a flat `<entity>_tags[]` array, optionally\n * clickable (links each tag to its filtered list via `basePath`). The hub's\n * `EntityTagList` delegates here so there is exactly one tag-display design.\n * Renders nothing when there are no tags.\n */\nexport function EntityTagBadges({ tags, basePath, max, className }: EntityTagBadgesProps) {\n const items = (tags || []).filter((t): t is TagAssoc => !!t && !!t.name)\n if (items.length === 0) return null\n\n // Only null/undefined means \"no cap\"; max={0} shows none, negatives clamp to 0.\n const visibleLimit = max == null ? items.length : Math.max(0, max)\n const shown = items.slice(0, visibleLimit)\n const overflow = items.length - shown.length\n\n return (\n <div className={`flex flex-wrap items-center gap-2 w-full ${className || ''}`}>\n {shown.map((tag) => {\n const key = tag.tag_id ?? tag.id ?? tag.slug ?? tag.name\n const label = (tag.name || '').toUpperCase()\n if (basePath && tag.slug) {\n return (\n <Link key={key} href={`${basePath}?tags=${tag.slug}`} className=\"inline-flex\">\n <StatusBadge\n text={label}\n variant=\"card\"\n className={`${BADGE_CLASS} cursor-pointer transition-colors hover:border-ods-accent`}\n />\n </Link>\n )\n }\n return <StatusBadge key={key} text={label} variant=\"card\" className={BADGE_CLASS} />\n })}\n {overflow > 0 && (\n <StatusBadge text={`+${overflow}`} variant=\"card\" className={`${BADGE_CLASS} text-ods-text-secondary`} />\n )}\n </div>\n )\n}\n"]}