@flamingo-stack/openframe-frontend-core 0.0.327 → 0.0.328-snapshot.20260626183749

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 (116) hide show
  1. package/dist/{chunk-CWXO6VCD.js → chunk-2UVIHKQQ.js} +4146 -3950
  2. package/dist/chunk-2UVIHKQQ.js.map +1 -0
  3. package/dist/{chunk-CRHOAKG5.cjs → chunk-5BEJ74WU.cjs} +70 -70
  4. package/dist/{chunk-CRHOAKG5.cjs.map → chunk-5BEJ74WU.cjs.map} +1 -1
  5. package/dist/{chunk-A6NBGRGZ.js → chunk-65VXW6GZ.js} +2 -2
  6. package/dist/{chunk-J4HHXHMC.js → chunk-67MYKAAK.js} +6 -6
  7. package/dist/{chunk-MWAEG3XK.cjs → chunk-6B7YS7O6.cjs} +12 -12
  8. package/dist/{chunk-MWAEG3XK.cjs.map → chunk-6B7YS7O6.cjs.map} +1 -1
  9. package/dist/{chunk-HQ6BILVP.cjs → chunk-6CYMYELP.cjs} +31 -31
  10. package/dist/{chunk-HQ6BILVP.cjs.map → chunk-6CYMYELP.cjs.map} +1 -1
  11. package/dist/{chunk-GABTFTDE.cjs → chunk-C34M45FI.cjs} +822 -626
  12. package/dist/chunk-C34M45FI.cjs.map +1 -0
  13. package/dist/{chunk-GXRWE7NB.cjs → chunk-CCG4DARM.cjs} +2 -2
  14. package/dist/{chunk-GXRWE7NB.cjs.map → chunk-CCG4DARM.cjs.map} +1 -1
  15. package/dist/{chunk-27IO7V3P.cjs → chunk-DCIB6AK3.cjs} +9 -9
  16. package/dist/{chunk-27IO7V3P.cjs.map → chunk-DCIB6AK3.cjs.map} +1 -1
  17. package/dist/{chunk-LESTX5DM.js → chunk-EUMMHRR4.js} +3 -3
  18. package/dist/{chunk-UHHJIHUZ.js → chunk-HT67OPIE.js} +6 -6
  19. package/dist/{chunk-PGFQ6WQR.cjs → chunk-HWFVPOHJ.cjs} +13 -13
  20. package/dist/{chunk-PGFQ6WQR.cjs.map → chunk-HWFVPOHJ.cjs.map} +1 -1
  21. package/dist/{chunk-U7GDY7Y3.js → chunk-IYPVN3DV.js} +5 -5
  22. package/dist/{chunk-3UVR2JIB.js → chunk-KDHZVMH5.js} +3 -3
  23. package/dist/{chunk-3AXH7BDM.cjs → chunk-KMIYWEPB.cjs} +29 -29
  24. package/dist/{chunk-3AXH7BDM.cjs.map → chunk-KMIYWEPB.cjs.map} +1 -1
  25. package/dist/{chunk-I4OFXYJR.cjs → chunk-MKLDE5OZ.cjs} +19 -19
  26. package/dist/{chunk-I4OFXYJR.cjs.map → chunk-MKLDE5OZ.cjs.map} +1 -1
  27. package/dist/{chunk-XDNQJQGP.cjs → chunk-NNP323TB.cjs} +5 -5
  28. package/dist/{chunk-XDNQJQGP.cjs.map → chunk-NNP323TB.cjs.map} +1 -1
  29. package/dist/{chunk-QF4XERYJ.js → chunk-OUUA36U2.js} +2 -2
  30. package/dist/{chunk-62O2VTR2.js → chunk-OZK7XALE.js} +2 -2
  31. package/dist/{chunk-4ZHA24HS.cjs → chunk-QCVM3ZSD.cjs} +40 -40
  32. package/dist/{chunk-4ZHA24HS.cjs.map → chunk-QCVM3ZSD.cjs.map} +1 -1
  33. package/dist/{chunk-46GJFN4V.js → chunk-QGBSE4JV.js} +5 -5
  34. package/dist/{chunk-BWWUHOE3.cjs → chunk-S2Z6HDRF.cjs} +73 -73
  35. package/dist/{chunk-BWWUHOE3.cjs.map → chunk-S2Z6HDRF.cjs.map} +1 -1
  36. package/dist/{chunk-7FY2OM5W.cjs → chunk-SH6X376N.cjs} +39 -39
  37. package/dist/{chunk-7FY2OM5W.cjs.map → chunk-SH6X376N.cjs.map} +1 -1
  38. package/dist/{chunk-7KZJV4MP.js → chunk-SWGXCGQ3.js} +2 -2
  39. package/dist/{chunk-K5HBVPJ5.cjs → chunk-SY37FQHF.cjs} +3 -3
  40. package/dist/{chunk-K5HBVPJ5.cjs.map → chunk-SY37FQHF.cjs.map} +1 -1
  41. package/dist/{chunk-5WDRXBM3.js → chunk-TH65GPIK.js} +3 -3
  42. package/dist/{chunk-MJUYWNQB.js → chunk-UNL2RMOC.js} +3 -3
  43. package/dist/{chunk-4MD2TPFY.js → chunk-UZTGDV6N.js} +2 -2
  44. package/dist/{chunk-NROSNR5J.cjs → chunk-V6LUP7PN.cjs} +15 -15
  45. package/dist/{chunk-NROSNR5J.cjs.map → chunk-V6LUP7PN.cjs.map} +1 -1
  46. package/dist/{chunk-IDMM6DVL.js → chunk-YDUV3VQ2.js} +4 -4
  47. package/dist/components/case-studies/index.cjs +10 -10
  48. package/dist/components/case-studies/index.js +4 -4
  49. package/dist/components/chat/index.cjs +4 -4
  50. package/dist/components/chat/index.js +3 -3
  51. package/dist/components/contact/index.cjs +5 -5
  52. package/dist/components/contact/index.js +4 -4
  53. package/dist/components/docs/index.cjs +7 -7
  54. package/dist/components/docs/index.js +6 -6
  55. package/dist/components/embeds/index.cjs +5 -5
  56. package/dist/components/embeds/index.js +4 -4
  57. package/dist/components/faq/index.cjs +6 -6
  58. package/dist/components/faq/index.js +5 -5
  59. package/dist/components/features/index.cjs +4 -4
  60. package/dist/components/features/index.js +3 -3
  61. package/dist/components/help-center-pages/index.cjs +23 -23
  62. package/dist/components/help-center-pages/index.js +14 -14
  63. package/dist/components/icons-v2-generated/index.cjs +2 -2
  64. package/dist/components/icons-v2-generated/index.js +1 -1
  65. package/dist/components/index.cjs +127 -125
  66. package/dist/components/index.cjs.map +1 -1
  67. package/dist/components/index.js +14 -12
  68. package/dist/components/index.js.map +1 -1
  69. package/dist/components/navigation/index.cjs +4 -4
  70. package/dist/components/navigation/index.js +3 -3
  71. package/dist/components/onboarding-guides/index.cjs +8 -8
  72. package/dist/components/onboarding-guides/index.js +7 -7
  73. package/dist/components/related-content/index.cjs +6 -6
  74. package/dist/components/related-content/index.js +5 -5
  75. package/dist/components/tickets/index.cjs +7 -7
  76. package/dist/components/tickets/index.js +6 -6
  77. package/dist/components/ui/autocomplete.d.ts +5 -0
  78. package/dist/components/ui/autocomplete.d.ts.map +1 -1
  79. package/dist/components/ui/file-upload.d.ts +3 -1
  80. package/dist/components/ui/file-upload.d.ts.map +1 -1
  81. package/dist/components/ui/image-uploader.d.ts +6 -1
  82. package/dist/components/ui/image-uploader.d.ts.map +1 -1
  83. package/dist/components/ui/index.cjs +6 -4
  84. package/dist/components/ui/index.cjs.map +1 -1
  85. package/dist/components/ui/index.d.ts +1 -0
  86. package/dist/components/ui/index.d.ts.map +1 -1
  87. package/dist/components/ui/index.js +5 -3
  88. package/dist/components/ui/tag-select-dropdown.d.ts +36 -0
  89. package/dist/components/ui/tag-select-dropdown.d.ts.map +1 -0
  90. package/dist/hooks/index.cjs +3 -3
  91. package/dist/hooks/index.js +2 -2
  92. package/dist/index.cjs +6 -4
  93. package/dist/index.cjs.map +1 -1
  94. package/dist/index.js +5 -3
  95. package/package.json +1 -1
  96. package/src/components/ui/autocomplete.tsx +50 -18
  97. package/src/components/ui/file-upload.tsx +74 -76
  98. package/src/components/ui/image-uploader.tsx +7 -0
  99. package/src/components/ui/index.ts +1 -0
  100. package/src/components/ui/tag-select-dropdown.tsx +220 -0
  101. package/dist/chunk-CWXO6VCD.js.map +0 -1
  102. package/dist/chunk-GABTFTDE.cjs.map +0 -1
  103. /package/dist/{chunk-A6NBGRGZ.js.map → chunk-65VXW6GZ.js.map} +0 -0
  104. /package/dist/{chunk-J4HHXHMC.js.map → chunk-67MYKAAK.js.map} +0 -0
  105. /package/dist/{chunk-LESTX5DM.js.map → chunk-EUMMHRR4.js.map} +0 -0
  106. /package/dist/{chunk-UHHJIHUZ.js.map → chunk-HT67OPIE.js.map} +0 -0
  107. /package/dist/{chunk-U7GDY7Y3.js.map → chunk-IYPVN3DV.js.map} +0 -0
  108. /package/dist/{chunk-3UVR2JIB.js.map → chunk-KDHZVMH5.js.map} +0 -0
  109. /package/dist/{chunk-QF4XERYJ.js.map → chunk-OUUA36U2.js.map} +0 -0
  110. /package/dist/{chunk-62O2VTR2.js.map → chunk-OZK7XALE.js.map} +0 -0
  111. /package/dist/{chunk-46GJFN4V.js.map → chunk-QGBSE4JV.js.map} +0 -0
  112. /package/dist/{chunk-7KZJV4MP.js.map → chunk-SWGXCGQ3.js.map} +0 -0
  113. /package/dist/{chunk-5WDRXBM3.js.map → chunk-TH65GPIK.js.map} +0 -0
  114. /package/dist/{chunk-MJUYWNQB.js.map → chunk-UNL2RMOC.js.map} +0 -0
  115. /package/dist/{chunk-4MD2TPFY.js.map → chunk-UZTGDV6N.js.map} +0 -0
  116. /package/dist/{chunk-IDMM6DVL.js.map → chunk-YDUV3VQ2.js.map} +0 -0
@@ -4,11 +4,11 @@ import {
4
4
  formatFileSize,
5
5
  toGoogleSheetsEmbedUrl,
6
6
  toGoogleSheetsOriginalUrl
7
- } from "./chunk-CWXO6VCD.js";
7
+ } from "./chunk-2UVIHKQQ.js";
8
8
  import {
9
9
  AdobePdfIcon,
10
10
  GoogleSheetsIcon
11
- } from "./chunk-4MD2TPFY.js";
11
+ } from "./chunk-UZTGDV6N.js";
12
12
  import {
13
13
  Button
14
14
  } from "./chunk-AI5X5JTD.js";
@@ -141,4 +141,4 @@ export {
141
141
  GoogleSheetsViewer,
142
142
  FileDownloadCard
143
143
  };
144
- //# sourceMappingURL=chunk-LESTX5DM.js.map
144
+ //# sourceMappingURL=chunk-EUMMHRR4.js.map
@@ -4,13 +4,13 @@ import {
4
4
  EmptyState,
5
5
  init_unified_pagination,
6
6
  unified_pagination_exports
7
- } from "./chunk-QF4XERYJ.js";
7
+ } from "./chunk-OUUA36U2.js";
8
8
  import {
9
9
  DetailPageSkeleton
10
- } from "./chunk-62O2VTR2.js";
10
+ } from "./chunk-OZK7XALE.js";
11
11
  import {
12
12
  useSelfFetch
13
- } from "./chunk-A6NBGRGZ.js";
13
+ } from "./chunk-65VXW6GZ.js";
14
14
  import {
15
15
  Accordion,
16
16
  AccordionContent,
@@ -39,12 +39,12 @@ import {
39
39
  isModifierClick,
40
40
  resolveContentHref,
41
41
  useEntityCardLink
42
- } from "./chunk-CWXO6VCD.js";
42
+ } from "./chunk-2UVIHKQQ.js";
43
43
  import {
44
44
  STICKY_HEADER_OFFSET_PX,
45
45
  contentFetch,
46
46
  useScrollToHash
47
- } from "./chunk-7KZJV4MP.js";
47
+ } from "./chunk-SWGXCGQ3.js";
48
48
  import {
49
49
  useChatRuntime
50
50
  } from "./chunk-2FI3USTC.js";
@@ -1461,4 +1461,4 @@ export {
1461
1461
  useLegalDocs,
1462
1462
  LegalDocumentPage
1463
1463
  };
1464
- //# sourceMappingURL=chunk-UHHJIHUZ.js.map
1464
+ //# sourceMappingURL=chunk-HT67OPIE.js.map
@@ -4,11 +4,11 @@
4
4
 
5
5
 
6
6
 
7
- var _chunkGABTFTDEcjs = require('./chunk-GABTFTDE.cjs');
7
+ var _chunkC34M45FIcjs = require('./chunk-C34M45FI.cjs');
8
8
 
9
9
 
10
10
 
11
- var _chunkGXRWE7NBcjs = require('./chunk-GXRWE7NB.cjs');
11
+ var _chunkCCG4DARMcjs = require('./chunk-CCG4DARM.cjs');
12
12
 
13
13
 
14
14
  var _chunkQJGRP2YEcjs = require('./chunk-QJGRP2YE.cjs');
@@ -20,14 +20,14 @@ function PdfViewer({ src, fileName, onPreview, onDownload, height }) {
20
20
  const displayName = fileName || "PDF Document";
21
21
  if (!src) {
22
22
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col items-center justify-center py-16 text-center", children: [
23
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.AdobePdfIcon, { className: "w-16 h-16 text-ods-text-secondary mb-4" }),
23
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCCG4DARMcjs.AdobePdfIcon, { className: "w-16 h-16 text-ods-text-secondary mb-4" }),
24
24
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary", children: "PDF file not available" })
25
25
  ] });
26
26
  }
27
27
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
28
28
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between", children: [
29
29
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2 min-w-0", children: [
30
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.AdobePdfIcon, { className: "w-5 h-5 shrink-0" }),
30
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCCG4DARMcjs.AdobePdfIcon, { className: "w-5 h-5 shrink-0" }),
31
31
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "text-xl font-semibold text-ods-text-primary truncate", children: displayName })
32
32
  ] }),
33
33
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2 w-full sm:w-auto", children: [
@@ -59,7 +59,7 @@ function PdfViewer({ src, fileName, onPreview, onDownload, height }) {
59
59
  )
60
60
  ] })
61
61
  ] }),
62
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGABTFTDEcjs.EmbedIframe, { src, title: displayName, height })
62
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC34M45FIcjs.EmbedIframe, { src, title: displayName, height })
63
63
  ] });
64
64
  }
65
65
 
@@ -70,14 +70,14 @@ function GoogleSheetsViewer({ externalUrl, fileName, height }) {
70
70
  const displayName = fileName || "Google Sheet";
71
71
  if (!externalUrl) {
72
72
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col items-center justify-center py-16 text-center", children: [
73
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.GoogleSheetsIcon, { className: "w-16 h-16 text-ods-text-secondary mb-4" }),
73
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCCG4DARMcjs.GoogleSheetsIcon, { className: "w-16 h-16 text-ods-text-secondary mb-4" }),
74
74
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-secondary", children: "Google Sheet URL not configured" })
75
75
  ] });
76
76
  }
77
77
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "space-y-4", children: [
78
78
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between", children: [
79
79
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2 min-w-0", children: [
80
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.GoogleSheetsIcon, { className: "w-5 h-5 shrink-0" }),
80
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCCG4DARMcjs.GoogleSheetsIcon, { className: "w-5 h-5 shrink-0" }),
81
81
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: "text-xl font-semibold text-ods-text-primary truncate", children: displayName })
82
82
  ] }),
83
83
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -85,9 +85,9 @@ function GoogleSheetsViewer({ externalUrl, fileName, height }) {
85
85
  {
86
86
  variant: "outline",
87
87
  size: "small-legacy",
88
- href: _chunkGABTFTDEcjs.toGoogleSheetsOriginalUrl.call(void 0, externalUrl),
88
+ href: _chunkC34M45FIcjs.toGoogleSheetsOriginalUrl.call(void 0, externalUrl),
89
89
  openInNewTab: true,
90
- leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGXRWE7NBcjs.GoogleSheetsIcon, { className: "w-4 h-4" }),
90
+ leftIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCCG4DARMcjs.GoogleSheetsIcon, { className: "w-4 h-4" }),
91
91
  rightIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "w-4 h-4" }),
92
92
  className: "w-full sm:w-auto",
93
93
  children: "Open in Google Sheets"
@@ -95,9 +95,9 @@ function GoogleSheetsViewer({ externalUrl, fileName, height }) {
95
95
  )
96
96
  ] }),
97
97
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
98
- _chunkGABTFTDEcjs.EmbedIframe,
98
+ _chunkC34M45FIcjs.EmbedIframe,
99
99
  {
100
- src: _chunkGABTFTDEcjs.toGoogleSheetsEmbedUrl.call(void 0, externalUrl),
100
+ src: _chunkC34M45FIcjs.toGoogleSheetsEmbedUrl.call(void 0, externalUrl),
101
101
  title: displayName,
102
102
  height
103
103
  }
@@ -120,7 +120,7 @@ function FileDownloadCard({
120
120
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h3", { className: "text-lg font-semibold text-ods-text-primary", children: fileName || "File" }),
121
121
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center justify-center gap-3 mt-2 text-sm text-ods-text-secondary", children: [
122
122
  mimeType && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: mimeType }),
123
- typeof fileSize === "number" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: _chunkGABTFTDEcjs.formatFileSize.call(void 0, fileSize) })
123
+ typeof fileSize === "number" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: _chunkC34M45FIcjs.formatFileSize.call(void 0, fileSize) })
124
124
  ] })
125
125
  ] }),
126
126
  fileUrl && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
@@ -141,4 +141,4 @@ function FileDownloadCard({
141
141
 
142
142
 
143
143
  exports.PdfViewer = PdfViewer; exports.GoogleSheetsViewer = GoogleSheetsViewer; exports.FileDownloadCard = FileDownloadCard;
144
- //# sourceMappingURL=chunk-PGFQ6WQR.cjs.map
144
+ //# sourceMappingURL=chunk-HWFVPOHJ.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-PGFQ6WQR.cjs","../src/components/embeds/pdf-viewer.tsx","../src/components/embeds/google-sheets-viewer.tsx","../src/components/embeds/file-download-card.tsx"],"names":["jsxs","jsx","Download"],"mappings":"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","file":"/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-PGFQ6WQR.cjs","sourcesContent":[null,"\"use client\"\n\nimport React from 'react'\nimport { Button } from '../ui'\nimport { Download, Eye } from 'lucide-react'\nimport { AdobePdfIcon } from '../icons-v2-generated'\nimport { EmbedIframe } from './embed-iframe'\n\nexport interface PdfViewerProps {\n src: string\n fileName?: string\n onPreview?: () => void\n onDownload?: () => void\n height?: string\n}\n\nexport function PdfViewer({ src, fileName, onPreview, onDownload, height }: PdfViewerProps) {\n const displayName = fileName || 'PDF Document'\n\n if (!src) {\n return (\n <div className=\"flex flex-col items-center justify-center py-16 text-center\">\n <AdobePdfIcon className=\"w-16 h-16 text-ods-text-secondary mb-4\" />\n <p className=\"text-ods-text-secondary\">PDF file not available</p>\n </div>\n )\n }\n\n return (\n <div className=\"space-y-4\">\n <div className=\"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between\">\n <div className=\"flex items-center gap-2 min-w-0\">\n <AdobePdfIcon className=\"w-5 h-5 shrink-0\" />\n <h2 className=\"text-xl font-semibold text-ods-text-primary truncate\">{displayName}</h2>\n </div>\n <div className=\"flex items-center gap-2 w-full sm:w-auto\">\n <Button\n variant=\"outline\"\n size=\"small-legacy\"\n href={onPreview ? undefined : src}\n openInNewTab={!onPreview}\n onClick={onPreview}\n leftIcon={<Eye className=\"w-4 h-4\" />}\n className=\"flex-1 sm:flex-initial\"\n >\n Preview\n </Button>\n <Button\n variant=\"outline\"\n size=\"small-legacy\"\n href={onDownload ? undefined : src}\n openInNewTab={!onDownload}\n onClick={onDownload}\n leftIcon={<Download className=\"w-4 h-4\" />}\n className=\"flex-1 sm:flex-initial\"\n >\n Download\n </Button>\n </div>\n </div>\n <EmbedIframe src={src} title={displayName} height={height} />\n </div>\n )\n}\n","\"use client\"\n\nimport React from 'react'\nimport { Button } from '../ui'\nimport { ExternalLink } from 'lucide-react'\nimport { GoogleSheetsIcon } from '../icons-v2-generated'\nimport { EmbedIframe } from './embed-iframe'\nimport { toGoogleSheetsEmbedUrl, toGoogleSheetsOriginalUrl } from '../../utils/embed-url-converters'\n\nexport interface GoogleSheetsViewerProps {\n externalUrl: string\n fileName?: string\n height?: string\n}\n\nexport function GoogleSheetsViewer({ externalUrl, fileName, height }: GoogleSheetsViewerProps) {\n const displayName = fileName || 'Google Sheet'\n\n if (!externalUrl) {\n return (\n <div className=\"flex flex-col items-center justify-center py-16 text-center\">\n <GoogleSheetsIcon className=\"w-16 h-16 text-ods-text-secondary mb-4\" />\n <p className=\"text-ods-text-secondary\">Google Sheet URL not configured</p>\n </div>\n )\n }\n\n return (\n <div className=\"space-y-4\">\n <div className=\"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between\">\n <div className=\"flex items-center gap-2 min-w-0\">\n <GoogleSheetsIcon className=\"w-5 h-5 shrink-0\" />\n <h2 className=\"text-xl font-semibold text-ods-text-primary truncate\">{displayName}</h2>\n </div>\n <Button\n variant=\"outline\"\n size=\"small-legacy\"\n href={toGoogleSheetsOriginalUrl(externalUrl)}\n openInNewTab\n leftIcon={<GoogleSheetsIcon className=\"w-4 h-4\" />}\n rightIcon={<ExternalLink className=\"w-4 h-4\" />}\n className=\"w-full sm:w-auto\"\n >\n Open in Google Sheets\n </Button>\n </div>\n <EmbedIframe\n src={toGoogleSheetsEmbedUrl(externalUrl)}\n title={displayName}\n height={height}\n />\n </div>\n )\n}\n","import React from 'react'\nimport { Button } from '../ui'\nimport { FileText, Download } from 'lucide-react'\nimport { formatFileSize } from '../../utils'\n\nexport interface FileDownloadCardProps {\n fileName?: string\n mimeType?: string\n fileSize?: number\n fileUrl?: string\n}\n\n/**\n * Generic downloadable-file card for the `file` document type. Used by\n * `<DocsHubPage>`'s default `documentTypeRenderers.file`. Embedders can\n * override the default by passing their own `file` renderer.\n *\n * When `fileUrl` is missing, the Download button is omitted (the card still\n * renders the filename + type + size so the user knows what they were\n * about to download).\n */\nexport function FileDownloadCard({\n fileName,\n mimeType,\n fileSize,\n fileUrl,\n}: FileDownloadCardProps) {\n return (\n <div className=\"flex flex-col items-center justify-center py-16\">\n <div className=\"bg-ods-card border border-ods-border rounded-xl p-8 max-w-md w-full text-center space-y-4\">\n <FileText className=\"w-16 h-16 text-ods-text-secondary mx-auto\" />\n <div>\n <h3 className=\"text-lg font-semibold text-ods-text-primary\">\n {fileName || 'File'}\n </h3>\n <div className=\"flex items-center justify-center gap-3 mt-2 text-sm text-ods-text-secondary\">\n {mimeType && <span>{mimeType}</span>}\n {typeof fileSize === 'number' && <span>{formatFileSize(fileSize)}</span>}\n </div>\n </div>\n {fileUrl && (\n <Button\n variant=\"accent\"\n href={fileUrl}\n openInNewTab\n leftIcon={<Download className=\"w-4 h-4\" />}\n >\n Download File\n </Button>\n )}\n </div>\n </div>\n )\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-HWFVPOHJ.cjs","../src/components/embeds/pdf-viewer.tsx","../src/components/embeds/google-sheets-viewer.tsx","../src/components/embeds/file-download-card.tsx"],"names":["jsxs","jsx","Download"],"mappings":"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","file":"/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-HWFVPOHJ.cjs","sourcesContent":[null,"\"use client\"\n\nimport React from 'react'\nimport { Button } from '../ui'\nimport { Download, Eye } from 'lucide-react'\nimport { AdobePdfIcon } from '../icons-v2-generated'\nimport { EmbedIframe } from './embed-iframe'\n\nexport interface PdfViewerProps {\n src: string\n fileName?: string\n onPreview?: () => void\n onDownload?: () => void\n height?: string\n}\n\nexport function PdfViewer({ src, fileName, onPreview, onDownload, height }: PdfViewerProps) {\n const displayName = fileName || 'PDF Document'\n\n if (!src) {\n return (\n <div className=\"flex flex-col items-center justify-center py-16 text-center\">\n <AdobePdfIcon className=\"w-16 h-16 text-ods-text-secondary mb-4\" />\n <p className=\"text-ods-text-secondary\">PDF file not available</p>\n </div>\n )\n }\n\n return (\n <div className=\"space-y-4\">\n <div className=\"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between\">\n <div className=\"flex items-center gap-2 min-w-0\">\n <AdobePdfIcon className=\"w-5 h-5 shrink-0\" />\n <h2 className=\"text-xl font-semibold text-ods-text-primary truncate\">{displayName}</h2>\n </div>\n <div className=\"flex items-center gap-2 w-full sm:w-auto\">\n <Button\n variant=\"outline\"\n size=\"small-legacy\"\n href={onPreview ? undefined : src}\n openInNewTab={!onPreview}\n onClick={onPreview}\n leftIcon={<Eye className=\"w-4 h-4\" />}\n className=\"flex-1 sm:flex-initial\"\n >\n Preview\n </Button>\n <Button\n variant=\"outline\"\n size=\"small-legacy\"\n href={onDownload ? undefined : src}\n openInNewTab={!onDownload}\n onClick={onDownload}\n leftIcon={<Download className=\"w-4 h-4\" />}\n className=\"flex-1 sm:flex-initial\"\n >\n Download\n </Button>\n </div>\n </div>\n <EmbedIframe src={src} title={displayName} height={height} />\n </div>\n )\n}\n","\"use client\"\n\nimport React from 'react'\nimport { Button } from '../ui'\nimport { ExternalLink } from 'lucide-react'\nimport { GoogleSheetsIcon } from '../icons-v2-generated'\nimport { EmbedIframe } from './embed-iframe'\nimport { toGoogleSheetsEmbedUrl, toGoogleSheetsOriginalUrl } from '../../utils/embed-url-converters'\n\nexport interface GoogleSheetsViewerProps {\n externalUrl: string\n fileName?: string\n height?: string\n}\n\nexport function GoogleSheetsViewer({ externalUrl, fileName, height }: GoogleSheetsViewerProps) {\n const displayName = fileName || 'Google Sheet'\n\n if (!externalUrl) {\n return (\n <div className=\"flex flex-col items-center justify-center py-16 text-center\">\n <GoogleSheetsIcon className=\"w-16 h-16 text-ods-text-secondary mb-4\" />\n <p className=\"text-ods-text-secondary\">Google Sheet URL not configured</p>\n </div>\n )\n }\n\n return (\n <div className=\"space-y-4\">\n <div className=\"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between\">\n <div className=\"flex items-center gap-2 min-w-0\">\n <GoogleSheetsIcon className=\"w-5 h-5 shrink-0\" />\n <h2 className=\"text-xl font-semibold text-ods-text-primary truncate\">{displayName}</h2>\n </div>\n <Button\n variant=\"outline\"\n size=\"small-legacy\"\n href={toGoogleSheetsOriginalUrl(externalUrl)}\n openInNewTab\n leftIcon={<GoogleSheetsIcon className=\"w-4 h-4\" />}\n rightIcon={<ExternalLink className=\"w-4 h-4\" />}\n className=\"w-full sm:w-auto\"\n >\n Open in Google Sheets\n </Button>\n </div>\n <EmbedIframe\n src={toGoogleSheetsEmbedUrl(externalUrl)}\n title={displayName}\n height={height}\n />\n </div>\n )\n}\n","import React from 'react'\nimport { Button } from '../ui'\nimport { FileText, Download } from 'lucide-react'\nimport { formatFileSize } from '../../utils'\n\nexport interface FileDownloadCardProps {\n fileName?: string\n mimeType?: string\n fileSize?: number\n fileUrl?: string\n}\n\n/**\n * Generic downloadable-file card for the `file` document type. Used by\n * `<DocsHubPage>`'s default `documentTypeRenderers.file`. Embedders can\n * override the default by passing their own `file` renderer.\n *\n * When `fileUrl` is missing, the Download button is omitted (the card still\n * renders the filename + type + size so the user knows what they were\n * about to download).\n */\nexport function FileDownloadCard({\n fileName,\n mimeType,\n fileSize,\n fileUrl,\n}: FileDownloadCardProps) {\n return (\n <div className=\"flex flex-col items-center justify-center py-16\">\n <div className=\"bg-ods-card border border-ods-border rounded-xl p-8 max-w-md w-full text-center space-y-4\">\n <FileText className=\"w-16 h-16 text-ods-text-secondary mx-auto\" />\n <div>\n <h3 className=\"text-lg font-semibold text-ods-text-primary\">\n {fileName || 'File'}\n </h3>\n <div className=\"flex items-center justify-center gap-3 mt-2 text-sm text-ods-text-secondary\">\n {mimeType && <span>{mimeType}</span>}\n {typeof fileSize === 'number' && <span>{formatFileSize(fileSize)}</span>}\n </div>\n </div>\n {fileUrl && (\n <Button\n variant=\"accent\"\n href={fileUrl}\n openInNewTab\n leftIcon={<Download className=\"w-4 h-4\" />}\n >\n Download File\n </Button>\n )}\n </div>\n </div>\n )\n}\n"]}
@@ -3,11 +3,11 @@ import {
3
3
  FileDownloadCard,
4
4
  GoogleSheetsViewer,
5
5
  PdfViewer
6
- } from "./chunk-LESTX5DM.js";
6
+ } from "./chunk-EUMMHRR4.js";
7
7
  import {
8
8
  DocSearchBar,
9
9
  useDocSearch
10
- } from "./chunk-MJUYWNQB.js";
10
+ } from "./chunk-UNL2RMOC.js";
11
11
  import {
12
12
  DEFAULT_FOLDER_INDEX_FILE,
13
13
  FigmaEmbed,
@@ -19,13 +19,13 @@ import {
19
19
  findDocNodeByPath,
20
20
  getDocAncestorNodeIds,
21
21
  stripFolderIndexFromPath
22
- } from "./chunk-CWXO6VCD.js";
22
+ } from "./chunk-2UVIHKQQ.js";
23
23
  import {
24
24
  HUB_HEADER_OFFSET_PX,
25
25
  contentFetch,
26
26
  navigateSamePageHash,
27
27
  scrollElementIntoView
28
- } from "./chunk-7KZJV4MP.js";
28
+ } from "./chunk-SWGXCGQ3.js";
29
29
  import {
30
30
  useChatRuntime
31
31
  } from "./chunk-2FI3USTC.js";
@@ -1845,4 +1845,4 @@ export {
1845
1845
  EmbedSkeleton,
1846
1846
  DocsHubPage
1847
1847
  };
1848
- //# sourceMappingURL=chunk-U7GDY7Y3.js.map
1848
+ //# sourceMappingURL=chunk-IYPVN3DV.js.map
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  useSelfFetch
4
- } from "./chunk-A6NBGRGZ.js";
4
+ } from "./chunk-65VXW6GZ.js";
5
5
  import {
6
6
  BlogCard,
7
7
  BlogCardSkeleton,
@@ -33,7 +33,7 @@ import {
33
33
  getContentRefLabelOrTitleCase,
34
34
  init_pagination,
35
35
  orderContentRefTypes
36
- } from "./chunk-CWXO6VCD.js";
36
+ } from "./chunk-2UVIHKQQ.js";
37
37
 
38
38
  // src/components/related-content/related-content-section.tsx
39
39
  import { useEffect, useMemo, useRef, useState } from "react";
@@ -359,4 +359,4 @@ export {
359
359
  GROUP_PAGE_SIZE,
360
360
  RelatedContentSection
361
361
  };
362
- //# sourceMappingURL=chunk-3UVR2JIB.js.map
362
+ //# sourceMappingURL=chunk-KDHZVMH5.js.map
@@ -12,11 +12,11 @@
12
12
 
13
13
 
14
14
 
15
- var _chunkGABTFTDEcjs = require('./chunk-GABTFTDE.cjs');
15
+ var _chunkC34M45FIcjs = require('./chunk-C34M45FI.cjs');
16
16
 
17
17
 
18
18
 
19
- var _chunk27IO7V3Pcjs = require('./chunk-27IO7V3P.cjs');
19
+ var _chunkDCIB6AK3cjs = require('./chunk-DCIB6AK3.cjs');
20
20
 
21
21
 
22
22
 
@@ -109,14 +109,14 @@ function ContactForm({
109
109
  successRedirectUrl = "/blog#community",
110
110
  successToastMessage = "Redirecting you to join our community..."
111
111
  } = {}) {
112
- const attachments = _chunkGABTFTDEcjs.useChatAttachments.call(void 0, );
113
- const builtInSubmission = _chunk27IO7V3Pcjs.useContactSubmission.call(void 0, {
112
+ const attachments = _chunkC34M45FIcjs.useChatAttachments.call(void 0, );
113
+ const builtInSubmission = _chunkDCIB6AK3cjs.useContactSubmission.call(void 0, {
114
114
  userId,
115
115
  successRedirectUrl,
116
116
  successToastMessage
117
117
  });
118
118
  const [customSubmitting, setCustomSubmitting] = _react.useState.call(void 0, false);
119
- const { honeypotInputProps, getSignals, resetSignals } = _chunk27IO7V3Pcjs.useHumanitySignals.call(void 0, );
119
+ const { honeypotInputProps, getSignals, resetSignals } = _chunkDCIB6AK3cjs.useHumanitySignals.call(void 0, );
120
120
  const isSubmitting = onCustomSubmit ? customSubmitting : builtInSubmission.isSubmitting;
121
121
  const isSuccess = onCustomSubmit ? false : builtInSubmission.isSuccess;
122
122
  const {
@@ -171,7 +171,7 @@ function ContactForm({
171
171
  className: `h-full flex flex-col ${!noBorder ? "border border-ods-border rounded-2xl md:rounded-3xl" : ""} ${!noPadding ? "p-6 md:p-8 lg:p-10" : ""}`,
172
172
  children: [
173
173
  (title || subtitle) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-6 md:mb-8", children: [
174
- title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: `${_chunkGABTFTDEcjs.SECTION_HEADING_CLASS} mb-3 md:mb-4`, children: title }),
174
+ title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: `${_chunkC34M45FIcjs.SECTION_HEADING_CLASS} mb-3 md:mb-4`, children: title }),
175
175
  subtitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "font-['DM_Sans'] font-medium text-[16px] md:text-[18px] leading-[24px] text-ods-text-primary", children: subtitle })
176
176
  ] }),
177
177
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -191,11 +191,11 @@ function ContactForm({
191
191
  !showEmail && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "input", { type: "hidden", ...register("email") }),
192
192
  !showHelpCategory && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "input", { type: "hidden", ...register("helpCategory") }),
193
193
  !showMessage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "input", { type: "hidden", ...register("message") }),
194
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGABTFTDEcjs.HoneypotField, { ...honeypotInputProps }),
194
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC34M45FIcjs.HoneypotField, { ...honeypotInputProps }),
195
195
  extraTopField,
196
196
  showNameEmailRow && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4 md:gap-6", children: [
197
197
  showName && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
198
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkGABTFTDEcjs.Label, { htmlFor: "name", children: [
198
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkC34M45FIcjs.Label, { htmlFor: "name", children: [
199
199
  "Your Name",
200
200
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-accent", children: "*" })
201
201
  ] }),
@@ -214,7 +214,7 @@ function ContactForm({
214
214
  errors.name && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { id: "name-error", className: "text-ods-error text-xs font-['DM_Sans'] mt-1", children: errors.name.message })
215
215
  ] }),
216
216
  showEmail && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
217
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkGABTFTDEcjs.Label, { htmlFor: "email", children: [
217
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkC34M45FIcjs.Label, { htmlFor: "email", children: [
218
218
  "Email",
219
219
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-accent", children: "*" })
220
220
  ] }),
@@ -235,46 +235,46 @@ function ContactForm({
235
235
  ] }),
236
236
  (showCompanySize || showReferralSource) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4 md:gap-6", children: [
237
237
  showCompanySize && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
238
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGABTFTDEcjs.Label, { htmlFor: "companySize", children: "Company Size" }),
238
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC34M45FIcjs.Label, { htmlFor: "companySize", children: "Company Size" }),
239
239
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
240
240
  _reacthookform.Controller,
241
241
  {
242
242
  control,
243
243
  name: "companySize",
244
- render: ({ field }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkGABTFTDEcjs.Select, { onValueChange: field.onChange, defaultValue: field.value, children: [
244
+ render: ({ field }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkC34M45FIcjs.Select, { onValueChange: field.onChange, defaultValue: field.value, children: [
245
245
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
246
- _chunkGABTFTDEcjs.SelectTrigger,
246
+ _chunkC34M45FIcjs.SelectTrigger,
247
247
  {
248
248
  id: "companySize",
249
249
  "aria-label": "Company Size",
250
250
  className: "bg-ods-card border-ods-border text-ods-text-primary h-12 px-3",
251
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGABTFTDEcjs.SelectValue, { placeholder: "Select company size" })
251
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC34M45FIcjs.SelectValue, { placeholder: "Select company size" })
252
252
  }
253
253
  ),
254
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGABTFTDEcjs.SelectContent, { children: companySizeOptions.map((opt) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGABTFTDEcjs.SelectItem, { value: opt, children: opt }, opt)) })
254
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC34M45FIcjs.SelectContent, { children: companySizeOptions.map((opt) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC34M45FIcjs.SelectItem, { value: opt, children: opt }, opt)) })
255
255
  ] })
256
256
  }
257
257
  ),
258
258
  errors.companySize && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { id: "companySize-error", className: "text-ods-error text-xs font-['DM_Sans'] mt-1", children: errors.companySize.message })
259
259
  ] }),
260
260
  showReferralSource && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
261
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGABTFTDEcjs.Label, { htmlFor: "referralSource", children: "How did you hear about us?" }),
261
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC34M45FIcjs.Label, { htmlFor: "referralSource", children: "How did you hear about us?" }),
262
262
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
263
263
  _reacthookform.Controller,
264
264
  {
265
265
  control,
266
266
  name: "referralSource",
267
- render: ({ field }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkGABTFTDEcjs.Select, { onValueChange: field.onChange, defaultValue: field.value, children: [
267
+ render: ({ field }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkC34M45FIcjs.Select, { onValueChange: field.onChange, defaultValue: field.value, children: [
268
268
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
269
- _chunkGABTFTDEcjs.SelectTrigger,
269
+ _chunkC34M45FIcjs.SelectTrigger,
270
270
  {
271
271
  id: "referralSource",
272
272
  "aria-label": "Referral Source",
273
273
  className: "bg-ods-card border-ods-border text-ods-text-primary h-12 px-3",
274
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGABTFTDEcjs.SelectValue, { placeholder: "Select an option" })
274
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC34M45FIcjs.SelectValue, { placeholder: "Select an option" })
275
275
  }
276
276
  ),
277
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGABTFTDEcjs.SelectContent, { children: referralSourceOptions.map((opt) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGABTFTDEcjs.SelectItem, { value: opt, children: opt }, opt)) })
277
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC34M45FIcjs.SelectContent, { children: referralSourceOptions.map((opt) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC34M45FIcjs.SelectItem, { value: opt, children: opt }, opt)) })
278
278
  ] })
279
279
  }
280
280
  ),
@@ -282,7 +282,7 @@ function ContactForm({
282
282
  ] })
283
283
  ] }),
284
284
  showHelpCategory && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
285
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkGABTFTDEcjs.Label, { htmlFor: "helpCategory", children: [
285
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkC34M45FIcjs.Label, { htmlFor: "helpCategory", children: [
286
286
  "Choose your main interest",
287
287
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-accent", children: "*" })
288
288
  ] }),
@@ -291,29 +291,29 @@ function ContactForm({
291
291
  {
292
292
  control,
293
293
  name: "helpCategory",
294
- render: ({ field }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkGABTFTDEcjs.Select, { onValueChange: field.onChange, defaultValue: field.value, children: [
294
+ render: ({ field }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkC34M45FIcjs.Select, { onValueChange: field.onChange, defaultValue: field.value, children: [
295
295
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
296
- _chunkGABTFTDEcjs.SelectTrigger,
296
+ _chunkC34M45FIcjs.SelectTrigger,
297
297
  {
298
298
  id: "helpCategory",
299
299
  "aria-label": "Help Category",
300
300
  className: "bg-ods-card border-ods-border text-ods-text-primary h-12 px-3",
301
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGABTFTDEcjs.SelectValue, { placeholder: "Choose your main interest" })
301
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC34M45FIcjs.SelectValue, { placeholder: "Choose your main interest" })
302
302
  }
303
303
  ),
304
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGABTFTDEcjs.SelectContent, { children: helpCategoryOptions.map((opt) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGABTFTDEcjs.SelectItem, { value: opt, children: opt }, opt)) })
304
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC34M45FIcjs.SelectContent, { children: helpCategoryOptions.map((opt) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkC34M45FIcjs.SelectItem, { value: opt, children: opt }, opt)) })
305
305
  ] })
306
306
  }
307
307
  ),
308
308
  errors.helpCategory && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { id: "helpCategory-error", className: "text-ods-error text-xs font-['DM_Sans'] mt-1", children: errors.helpCategory.message })
309
309
  ] }),
310
310
  showMessage && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col flex-grow", children: [
311
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkGABTFTDEcjs.Label, { htmlFor: "message", children: [
311
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkC34M45FIcjs.Label, { htmlFor: "message", children: [
312
312
  "Your Message",
313
313
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "text-ods-accent", children: "*" })
314
314
  ] }),
315
315
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
316
- _chunkGABTFTDEcjs.Textarea,
316
+ _chunkC34M45FIcjs.Textarea,
317
317
  {
318
318
  id: "message",
319
319
  ...register("message"),
@@ -327,7 +327,7 @@ function ContactForm({
327
327
  ] }),
328
328
  attachmentsEnabled && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-2", children: [
329
329
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
330
- _chunkGABTFTDEcjs.ChatAttachmentChipStrip,
330
+ _chunkC34M45FIcjs.ChatAttachmentChipStrip,
331
331
  {
332
332
  attachments: attachments.attachments,
333
333
  onRemove: attachments.removeAttachment,
@@ -336,7 +336,7 @@ function ContactForm({
336
336
  ),
337
337
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
338
338
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
339
- _chunkGABTFTDEcjs.ChatAttachmentAddButton,
339
+ _chunkC34M45FIcjs.ChatAttachmentAddButton,
340
340
  {
341
341
  attachmentsEnabled: true,
342
342
  attachmentsCount: attachments.attachments.length,
@@ -372,4 +372,4 @@ function ContactForm({
372
372
 
373
373
 
374
374
  exports.ContactForm = ContactForm;
375
- //# sourceMappingURL=chunk-3AXH7BDM.cjs.map
375
+ //# sourceMappingURL=chunk-KMIYWEPB.cjs.map