@pcoi/components 0.1.1 → 1.0.0

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 (122) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +52 -0
  3. package/dist/index.d.ts +826 -568
  4. package/dist/index.js +3517 -2
  5. package/dist/styles.css +2 -0
  6. package/package.json +36 -32
  7. package/dist/components.css +0 -1
  8. package/dist/index.mjs +0 -969
  9. package/src/Badge/Badge.css +0 -40
  10. package/src/Badge/Badge.tsx +0 -36
  11. package/src/Badge/index.ts +0 -2
  12. package/src/Button/Button.css +0 -93
  13. package/src/Button/Button.figma.tsx +0 -27
  14. package/src/Button/Button.test.tsx +0 -32
  15. package/src/Button/Button.tsx +0 -47
  16. package/src/Button/index.ts +0 -1
  17. package/src/Callout/Callout.css +0 -43
  18. package/src/Callout/Callout.figma.tsx +0 -25
  19. package/src/Callout/Callout.tsx +0 -39
  20. package/src/Callout/index.ts +0 -1
  21. package/src/Card/Card.css +0 -88
  22. package/src/Card/Card.figma.tsx +0 -28
  23. package/src/Card/Card.tsx +0 -60
  24. package/src/Card/index.ts +0 -1
  25. package/src/ChatInterface/ChatInterface.css +0 -49
  26. package/src/ChatInterface/ChatInterface.integration.test.tsx +0 -123
  27. package/src/ChatInterface/ChatInterface.tsx +0 -120
  28. package/src/ChatInterface/index.ts +0 -6
  29. package/src/ChatMessage/ChatMessage.css +0 -55
  30. package/src/ChatMessage/ChatMessage.tsx +0 -71
  31. package/src/ChatMessage/index.ts +0 -2
  32. package/src/ChatMessageList/ChatMessageList.css +0 -24
  33. package/src/ChatMessageList/ChatMessageList.test.tsx +0 -74
  34. package/src/ChatMessageList/ChatMessageList.tsx +0 -51
  35. package/src/ChatMessageList/index.ts +0 -2
  36. package/src/Checkbox/Checkbox.css +0 -97
  37. package/src/Checkbox/Checkbox.tsx +0 -70
  38. package/src/Checkbox/index.ts +0 -2
  39. package/src/CitationMark/CitationMark.css +0 -40
  40. package/src/CitationMark/CitationMark.tsx +0 -38
  41. package/src/CitationMark/index.ts +0 -2
  42. package/src/CitedExcerpt/CitedExcerpt.css +0 -75
  43. package/src/CitedExcerpt/CitedExcerpt.tsx +0 -51
  44. package/src/CitedExcerpt/index.ts +0 -2
  45. package/src/ComparisonTable/ComparisonTable.css +0 -66
  46. package/src/ComparisonTable/ComparisonTable.tsx +0 -48
  47. package/src/ComparisonTable/index.ts +0 -1
  48. package/src/ContactForm/ContactForm.css +0 -38
  49. package/src/ContactForm/ContactForm.tsx +0 -57
  50. package/src/ContactForm/index.ts +0 -1
  51. package/src/DataTable/DataTable.css +0 -56
  52. package/src/DataTable/DataTable.tsx +0 -104
  53. package/src/DataTable/index.ts +0 -2
  54. package/src/DocumentOverlay/DocumentOverlay.css +0 -57
  55. package/src/DocumentOverlay/DocumentOverlay.test.tsx +0 -95
  56. package/src/DocumentOverlay/DocumentOverlay.tsx +0 -86
  57. package/src/DocumentOverlay/index.ts +0 -2
  58. package/src/Footer/Footer.css +0 -72
  59. package/src/Footer/Footer.tsx +0 -56
  60. package/src/Footer/index.ts +0 -1
  61. package/src/FormField/FormField.css +0 -78
  62. package/src/FormField/FormField.figma.tsx +0 -28
  63. package/src/FormField/FormField.tsx +0 -103
  64. package/src/FormField/index.ts +0 -2
  65. package/src/HowStep/HowStep.css +0 -48
  66. package/src/HowStep/HowStep.figma.tsx +0 -23
  67. package/src/HowStep/HowStep.tsx +0 -38
  68. package/src/HowStep/index.ts +0 -1
  69. package/src/LogoMark/LogoMark.css +0 -16
  70. package/src/LogoMark/LogoMark.tsx +0 -24
  71. package/src/LogoMark/index.ts +0 -2
  72. package/src/Modal/Modal.css +0 -101
  73. package/src/Modal/Modal.figma.tsx +0 -28
  74. package/src/Modal/Modal.test.tsx +0 -46
  75. package/src/Modal/Modal.tsx +0 -139
  76. package/src/Modal/index.ts +0 -2
  77. package/src/Nav/Nav.css +0 -161
  78. package/src/Nav/Nav.tsx +0 -101
  79. package/src/Nav/index.ts +0 -1
  80. package/src/Panel/Panel.css +0 -35
  81. package/src/Panel/Panel.tsx +0 -61
  82. package/src/Panel/index.ts +0 -2
  83. package/src/PromptBar/PromptBar.css +0 -68
  84. package/src/PromptBar/PromptBar.figma.tsx +0 -25
  85. package/src/PromptBar/PromptBar.test.tsx +0 -83
  86. package/src/PromptBar/PromptBar.tsx +0 -93
  87. package/src/PromptBar/index.ts +0 -2
  88. package/src/RadioGroup/RadioGroup.css +0 -117
  89. package/src/RadioGroup/RadioGroup.tsx +0 -112
  90. package/src/RadioGroup/index.ts +0 -2
  91. package/src/SectionHeader/SectionHeader.css +0 -38
  92. package/src/SectionHeader/SectionHeader.figma.tsx +0 -23
  93. package/src/SectionHeader/SectionHeader.tsx +0 -55
  94. package/src/SectionHeader/index.ts +0 -1
  95. package/src/Select/Select.css +0 -90
  96. package/src/Select/Select.figma.tsx +0 -33
  97. package/src/Select/Select.tsx +0 -100
  98. package/src/Select/index.ts +0 -2
  99. package/src/SignalsPanel/SignalsPanel.css +0 -51
  100. package/src/SignalsPanel/SignalsPanel.tsx +0 -33
  101. package/src/SignalsPanel/index.ts +0 -1
  102. package/src/SuggestionCard/SuggestionCard.css +0 -51
  103. package/src/SuggestionCard/SuggestionCard.tsx +0 -34
  104. package/src/SuggestionCard/index.ts +0 -2
  105. package/src/SuggestionCards/SuggestionCards.css +0 -15
  106. package/src/SuggestionCards/SuggestionCards.test.tsx +0 -27
  107. package/src/SuggestionCards/SuggestionCards.tsx +0 -40
  108. package/src/SuggestionCards/index.ts +0 -2
  109. package/src/Toast/Toast.css +0 -85
  110. package/src/Toast/Toast.tsx +0 -77
  111. package/src/Toast/index.ts +0 -2
  112. package/src/Toggle/Toggle.css +0 -110
  113. package/src/Toggle/Toggle.figma.tsx +0 -24
  114. package/src/Toggle/Toggle.tsx +0 -73
  115. package/src/Toggle/index.ts +0 -2
  116. package/src/TypingIndicator/TypingIndicator.css +0 -70
  117. package/src/TypingIndicator/TypingIndicator.tsx +0 -37
  118. package/src/TypingIndicator/index.ts +0 -2
  119. package/src/index.ts +0 -37
  120. package/src/styles/utilities.css +0 -14
  121. package/src/styles.css +0 -32
  122. package/src/types.ts +0 -65
package/dist/index.mjs DELETED
@@ -1,969 +0,0 @@
1
- import { jsxs as n, jsx as e, Fragment as j } from "react/jsx-runtime";
2
- import _, { useState as C, useEffect as y, useRef as w, useCallback as x } from "react";
3
- import { ChevronDownIcon as A, CloseIcon as E, ArrowRightIcon as z } from "@pcoi/icons";
4
- import { createPortal as F } from "react-dom";
5
- const I = _.forwardRef(
6
- ({ href: c = "#", className: o = "", ...a }, l) => /* @__PURE__ */ n("a", { ref: l, href: c, className: `pcoi-logo ${o}`, ...a, children: [
7
- /* @__PURE__ */ e("span", { className: "pcoi-logo__mark", children: "P" }),
8
- "COI"
9
- ] })
10
- );
11
- I.displayName = "LogoMark";
12
- const R = _.forwardRef(
13
- ({ variant: c = "primary", size: o = "default", children: a, className: l = "", ...i }, s) => {
14
- const r = [
15
- "pcoi-btn",
16
- `pcoi-btn--${c}`,
17
- o !== "default" ? `pcoi-btn--${o}` : "",
18
- l
19
- ].filter(Boolean).join(" ");
20
- return /* @__PURE__ */ e("button", { ref: s, className: r, ...i, children: a });
21
- }
22
- );
23
- R.displayName = "Button";
24
- const g = _.forwardRef(
25
- ({
26
- label: c,
27
- name: o,
28
- multiline: a = !1,
29
- rows: l = 3,
30
- error: i,
31
- required: s = !1,
32
- disabled: r = !1,
33
- className: t = "",
34
- ...p
35
- }, d) => {
36
- const h = `pcoi-field-${o}`, m = i ? `${h}-error` : void 0, u = [
37
- "pcoi-field",
38
- i ? "pcoi-field--error" : "",
39
- r ? "pcoi-field--disabled" : "",
40
- t
41
- ].filter(Boolean).join(" ");
42
- return /* @__PURE__ */ n("div", { className: u, children: [
43
- /* @__PURE__ */ n("label", { htmlFor: h, className: "pcoi-field__label", children: [
44
- c,
45
- s && /* @__PURE__ */ e("span", { className: "pcoi-field__required", "aria-hidden": "true", children: "*" })
46
- ] }),
47
- a ? /* @__PURE__ */ e(
48
- "textarea",
49
- {
50
- ref: d,
51
- id: h,
52
- name: o,
53
- rows: l,
54
- required: s,
55
- disabled: r,
56
- "aria-invalid": !!i,
57
- "aria-describedby": m,
58
- className: "pcoi-field__textarea",
59
- ...p
60
- }
61
- ) : /* @__PURE__ */ e(
62
- "input",
63
- {
64
- ref: d,
65
- id: h,
66
- name: o,
67
- required: s,
68
- disabled: r,
69
- "aria-invalid": !!i,
70
- "aria-describedby": m,
71
- className: "pcoi-field__input",
72
- ...p
73
- }
74
- ),
75
- i && /* @__PURE__ */ e("span", { id: m, className: "pcoi-field__error", role: "alert", children: i })
76
- ] });
77
- }
78
- );
79
- g.displayName = "FormField";
80
- const Y = _.forwardRef(
81
- ({ variant: c = "problem", title: o, description: a, icon: l, number: i, headingLevel: s = "h3", className: r = "", ...t }, p) => {
82
- const d = s, h = [
83
- "pcoi-card",
84
- `pcoi-card--${c}`,
85
- r
86
- ].filter(Boolean).join(" ");
87
- return /* @__PURE__ */ n("div", { ref: p, className: h, ...t, children: [
88
- c === "problem" && l && /* @__PURE__ */ e("div", { className: "pcoi-card__icon", children: l }),
89
- c === "principle" && i && /* @__PURE__ */ e("div", { className: "pcoi-card__number", children: i }),
90
- /* @__PURE__ */ e(d, { className: "pcoi-card__title", children: o }),
91
- /* @__PURE__ */ e("p", { className: "pcoi-card__description", children: a })
92
- ] });
93
- }
94
- );
95
- Y.displayName = "Card";
96
- const W = _.forwardRef(
97
- ({
98
- links: c = [
99
- { label: "Problem", href: "#problem" },
100
- { label: "How It Works", href: "#how-it-works" },
101
- { label: "Difference", href: "#difference" },
102
- { label: "Who It's For", href: "#who" }
103
- ],
104
- ctaLabel: o = "Start a Conversation",
105
- ctaHref: a = "#contact",
106
- onCtaClick: l,
107
- className: i = "",
108
- ...s
109
- }, r) => {
110
- const [t, p] = C(!1), [d, h] = C(!1);
111
- return y(() => {
112
- const m = () => p(window.scrollY > 40);
113
- return window.addEventListener("scroll", m, { passive: !0 }), m(), () => window.removeEventListener("scroll", m);
114
- }, []), y(() => {
115
- if (!d) return;
116
- const m = (u) => {
117
- u.key === "Escape" && h(!1);
118
- };
119
- return document.addEventListener("keydown", m), () => document.removeEventListener("keydown", m);
120
- }, [d]), /* @__PURE__ */ n(
121
- "nav",
122
- {
123
- ref: r,
124
- className: `pcoi-nav ${t ? "pcoi-nav--scrolled" : ""} ${d ? "pcoi-nav--menu-open" : ""} ${i}`,
125
- "aria-label": "Main",
126
- ...s,
127
- children: [
128
- /* @__PURE__ */ n("div", { className: "pcoi-nav__inner", children: [
129
- /* @__PURE__ */ e(I, {}),
130
- /* @__PURE__ */ n("div", { className: "pcoi-nav__links", children: [
131
- c.map((m) => /* @__PURE__ */ e("a", { href: m.href, "data-track-id": m.trackingId, children: m.label }, m.href)),
132
- /* @__PURE__ */ e("a", { href: a, children: /* @__PURE__ */ e(R, { variant: "nav-cta", onClick: l, children: o }) })
133
- ] }),
134
- /* @__PURE__ */ n(
135
- "button",
136
- {
137
- className: `pcoi-nav__hamburger ${d ? "pcoi-nav__hamburger--active" : ""}`,
138
- onClick: () => h(!d),
139
- "aria-label": "Toggle menu",
140
- "aria-expanded": d,
141
- "aria-controls": "pcoi-mobile-menu",
142
- children: [
143
- /* @__PURE__ */ e("span", {}),
144
- /* @__PURE__ */ e("span", {}),
145
- /* @__PURE__ */ e("span", {})
146
- ]
147
- }
148
- )
149
- ] }),
150
- /* @__PURE__ */ n("div", { className: "pcoi-nav__mobile-menu", id: "pcoi-mobile-menu", children: [
151
- c.map((m) => /* @__PURE__ */ e("a", { href: m.href, "data-track-id": m.trackingId, onClick: () => h(!1), children: m.label }, m.href)),
152
- /* @__PURE__ */ e("a", { href: a, children: /* @__PURE__ */ e(R, { variant: "nav-cta", onClick: () => {
153
- l == null || l(), h(!1);
154
- }, children: o }) })
155
- ] })
156
- ]
157
- }
158
- );
159
- }
160
- );
161
- W.displayName = "Nav";
162
- const K = _.forwardRef(
163
- ({ label: c, title: o, titleEmphasis: a, description: l, headingLevel: i = "h2", className: s = "", ...r }, t) => {
164
- const p = i;
165
- return /* @__PURE__ */ n("div", { ref: t, className: `pcoi-section-header ${s}`, ...r, children: [
166
- /* @__PURE__ */ e("span", { className: "pcoi-section-header__label", children: c }),
167
- /* @__PURE__ */ e(p, { className: "pcoi-section-header__title", children: a ? /* @__PURE__ */ n(j, { children: [
168
- o.replace(a, ""),
169
- /* @__PURE__ */ e("em", { children: a })
170
- ] }) : o }),
171
- l && /* @__PURE__ */ e("p", { className: "pcoi-section-header__desc", children: l })
172
- ] });
173
- }
174
- );
175
- K.displayName = "SectionHeader";
176
- const V = _.forwardRef(
177
- ({ number: c, title: o, description: a, isLast: l = !1, headingLevel: i = "h3", className: s = "", ...r }, t) => {
178
- const p = i;
179
- return /* @__PURE__ */ n("div", { ref: t, className: `pcoi-how-step ${l ? "pcoi-how-step--last" : ""} ${s}`, ...r, children: [
180
- /* @__PURE__ */ e("div", { className: "pcoi-how-step__number", children: c }),
181
- /* @__PURE__ */ n("div", { className: "pcoi-how-step__content", children: [
182
- /* @__PURE__ */ e(p, { className: "pcoi-how-step__title", children: o }),
183
- /* @__PURE__ */ e("p", { className: "pcoi-how-step__desc", children: a })
184
- ] })
185
- ] });
186
- }
187
- );
188
- V.displayName = "HowStep";
189
- const G = _.forwardRef(
190
- ({ competitorName: c = "Typical SaaS AI", pcoiName: o = "PCOI", rows: a, className: l = "", ...i }, s) => /* @__PURE__ */ e("div", { ref: s, className: `pcoi-comparison ${l}`, ...i, children: /* @__PURE__ */ n("table", { className: "pcoi-comparison__table", children: [
191
- /* @__PURE__ */ e("thead", { children: /* @__PURE__ */ n("tr", { className: "pcoi-comparison__header", children: [
192
- /* @__PURE__ */ e("th", { className: "pcoi-comparison__col", scope: "col", children: /* @__PURE__ */ e("span", { className: "pcoi-sr-only", children: "Feature" }) }),
193
- /* @__PURE__ */ e("th", { className: "pcoi-comparison__col", scope: "col", children: c }),
194
- /* @__PURE__ */ e("th", { className: "pcoi-comparison__col pcoi-comparison__col--highlight", scope: "col", children: o })
195
- ] }) }),
196
- /* @__PURE__ */ e("tbody", { children: a.map((r, t) => /* @__PURE__ */ n("tr", { className: "pcoi-comparison__row", children: [
197
- /* @__PURE__ */ e("th", { className: "pcoi-comparison__col pcoi-comparison__col--label", scope: "row", children: r.label }),
198
- /* @__PURE__ */ e("td", { className: "pcoi-comparison__col", children: r.competitor }),
199
- /* @__PURE__ */ e("td", { className: "pcoi-comparison__col pcoi-comparison__col--highlight", children: r.pcoi })
200
- ] }, t)) })
201
- ] }) })
202
- );
203
- G.displayName = "ComparisonTable";
204
- const J = _.forwardRef(
205
- ({ onSubmit: c, className: o = "", ...a }, l) => {
206
- const [i, s] = C(!1), r = (t) => {
207
- t.preventDefault();
208
- const p = t.currentTarget, d = new FormData(p), h = Object.fromEntries(d.entries());
209
- c == null || c(h), s(!0), p.reset(), setTimeout(() => s(!1), 3e3);
210
- };
211
- return /* @__PURE__ */ n("form", { ref: l, className: `pcoi-form ${o}`, onSubmit: r, "aria-label": "Contact form", ...a, children: [
212
- /* @__PURE__ */ n("div", { className: "pcoi-form__row", children: [
213
- /* @__PURE__ */ e(g, { label: "Name", name: "name", placeholder: "Your name", required: !0 }),
214
- /* @__PURE__ */ e(g, { label: "Company", name: "company", placeholder: "Company name", required: !0 })
215
- ] }),
216
- /* @__PURE__ */ n("div", { className: "pcoi-form__row", children: [
217
- /* @__PURE__ */ e(g, { label: "Email", name: "email", type: "email", placeholder: "you@company.com", required: !0 }),
218
- /* @__PURE__ */ e(g, { label: "Your Role", name: "role", placeholder: "CEO, COO, VP Ops, etc." })
219
- ] }),
220
- /* @__PURE__ */ e(
221
- g,
222
- {
223
- label: "What problem are you trying to solve?",
224
- name: "context",
225
- multiline: !0,
226
- rows: 3,
227
- placeholder: "Tell us about the knowledge challenges in your organization...",
228
- className: "pcoi-form__full"
229
- }
230
- ),
231
- /* @__PURE__ */ e(R, { type: "submit", variant: "primary", size: "large", disabled: i, children: i ? "Message Received" : "Start the Conversation" }),
232
- /* @__PURE__ */ e("p", { className: "pcoi-form__note", children: "No sales automation. A real person reads this and responds personally." })
233
- ] });
234
- }
235
- );
236
- J.displayName = "ContactForm";
237
- const Q = _.forwardRef(
238
- ({ quote: c, attribution: o, attributionTitle: a, sourceUrl: l, sourceLabel: i, className: s = "", ...r }, t) => /* @__PURE__ */ n("div", { ref: t, className: `pcoi-callout ${s}`, ...r, children: [
239
- /* @__PURE__ */ e("div", { className: "pcoi-callout__line" }),
240
- /* @__PURE__ */ e("p", { className: "pcoi-callout__quote", children: c }),
241
- (o || l) && /* @__PURE__ */ n("p", { className: "pcoi-callout__attribution", children: [
242
- a && /* @__PURE__ */ n("span", { children: [
243
- a,
244
- "  ~  "
245
- ] }),
246
- o,
247
- l && /* @__PURE__ */ n(j, { children: [
248
- "  |  ",
249
- /* @__PURE__ */ e("a", { href: l, target: "_blank", rel: "noopener noreferrer", children: i || "Source" })
250
- ] })
251
- ] })
252
- ] })
253
- );
254
- Q.displayName = "Callout";
255
- const X = _.forwardRef(
256
- ({ title: c = "You'll know this is for you if:", signals: o, headingLevel: a = "h3", className: l = "", ...i }, s) => {
257
- const r = a;
258
- return /* @__PURE__ */ n("div", { ref: s, className: `pcoi-signals ${l}`, ...i, children: [
259
- /* @__PURE__ */ e(r, { className: "pcoi-signals__title", children: c }),
260
- /* @__PURE__ */ e("ul", { className: "pcoi-signals__list", children: o.map((t, p) => /* @__PURE__ */ e("li", { className: "pcoi-signals__item", children: t }, p)) })
261
- ] });
262
- }
263
- );
264
- X.displayName = "SignalsPanel";
265
- const Z = _.forwardRef(
266
- ({
267
- links: c = [
268
- { label: "Problem", href: "#problem" },
269
- { label: "How It Works", href: "#how-it-works" },
270
- { label: "Difference", href: "#difference" },
271
- { label: "Principles", href: "#principles" },
272
- { label: "Who It's For", href: "#who" },
273
- { label: "Contact", href: "#contact" }
274
- ],
275
- tagline: o = `Portable, Company-Owned
276
- Operational Intelligence`,
277
- copyright: a = `© ${(/* @__PURE__ */ new Date()).getFullYear()} PCOI. Operational intelligence you own.`,
278
- className: l = "",
279
- ...i
280
- }, s) => /* @__PURE__ */ n("footer", { ref: s, className: `pcoi-footer ${l}`, ...i, children: [
281
- /* @__PURE__ */ n("div", { className: "pcoi-footer__inner", children: [
282
- /* @__PURE__ */ n("div", { className: "pcoi-footer__brand", children: [
283
- /* @__PURE__ */ e(I, { className: "pcoi-footer__logo" }),
284
- /* @__PURE__ */ e("p", { className: "pcoi-footer__tagline", children: o })
285
- ] }),
286
- /* @__PURE__ */ e("div", { className: "pcoi-footer__links", children: c.map((r) => /* @__PURE__ */ e("a", { href: r.href, "data-track-id": r.trackingId, children: r.label }, r.href)) })
287
- ] }),
288
- /* @__PURE__ */ e("div", { className: "pcoi-footer__bottom", children: /* @__PURE__ */ e("p", { children: a }) })
289
- ] })
290
- );
291
- Z.displayName = "Footer";
292
- const U = _.forwardRef(
293
- ({
294
- label: c,
295
- name: o,
296
- options: a,
297
- placeholder: l,
298
- error: i,
299
- required: s = !1,
300
- disabled: r = !1,
301
- className: t = "",
302
- ...p
303
- }, d) => {
304
- const h = `pcoi-field-${o}`, m = i ? `${h}-error` : void 0, u = [
305
- "pcoi-select",
306
- i ? "pcoi-select--error" : "",
307
- r ? "pcoi-select--disabled" : "",
308
- t
309
- ].filter(Boolean).join(" ");
310
- return /* @__PURE__ */ n("div", { className: u, children: [
311
- /* @__PURE__ */ n("label", { htmlFor: h, className: "pcoi-select__label", children: [
312
- c,
313
- s && /* @__PURE__ */ e("span", { className: "pcoi-select__required", "aria-hidden": "true", children: "*" })
314
- ] }),
315
- /* @__PURE__ */ n("div", { className: "pcoi-select__wrapper", children: [
316
- /* @__PURE__ */ n(
317
- "select",
318
- {
319
- ref: d,
320
- id: h,
321
- name: o,
322
- required: s,
323
- disabled: r,
324
- "aria-invalid": !!i,
325
- "aria-describedby": m,
326
- className: "pcoi-select__native",
327
- defaultValue: l ? "" : void 0,
328
- ...p,
329
- children: [
330
- l && /* @__PURE__ */ e("option", { value: "", disabled: !0, hidden: !0, children: l }),
331
- a.map((f) => /* @__PURE__ */ e("option", { value: f.value, disabled: f.disabled, children: f.label }, f.value))
332
- ]
333
- }
334
- ),
335
- /* @__PURE__ */ e("span", { className: "pcoi-select__chevron", "aria-hidden": "true", children: /* @__PURE__ */ e(A, { size: 16 }) })
336
- ] }),
337
- i && /* @__PURE__ */ e("span", { id: m, className: "pcoi-select__error", role: "alert", children: i })
338
- ] });
339
- }
340
- );
341
- U.displayName = "Select";
342
- const ee = _.forwardRef(
343
- ({
344
- label: c,
345
- name: o,
346
- error: a,
347
- disabled: l = !1,
348
- className: i = "",
349
- ...s
350
- }, r) => {
351
- const t = `pcoi-field-${o}`, p = a ? `${t}-error` : void 0, d = [
352
- "pcoi-checkbox",
353
- a ? "pcoi-checkbox--error" : "",
354
- l ? "pcoi-checkbox--disabled" : "",
355
- i
356
- ].filter(Boolean).join(" ");
357
- return /* @__PURE__ */ n("div", { className: d, children: [
358
- /* @__PURE__ */ n("label", { htmlFor: t, className: "pcoi-checkbox__control", children: [
359
- /* @__PURE__ */ e(
360
- "input",
361
- {
362
- ref: r,
363
- type: "checkbox",
364
- id: t,
365
- name: o,
366
- disabled: l,
367
- "aria-invalid": !!a,
368
- "aria-describedby": p,
369
- className: "pcoi-checkbox__input",
370
- ...s
371
- }
372
- ),
373
- /* @__PURE__ */ e("span", { className: "pcoi-checkbox__box", "aria-hidden": "true" }),
374
- /* @__PURE__ */ e("span", { className: "pcoi-checkbox__label", children: c })
375
- ] }),
376
- a && /* @__PURE__ */ e("span", { id: p, className: "pcoi-checkbox__error", role: "alert", children: a })
377
- ] });
378
- }
379
- );
380
- ee.displayName = "Checkbox";
381
- const ae = _.forwardRef(
382
- ({
383
- label: c,
384
- name: o,
385
- error: a,
386
- disabled: l = !1,
387
- className: i = "",
388
- ...s
389
- }, r) => {
390
- const t = `pcoi-field-${o}`, p = a ? `${t}-error` : void 0, d = [
391
- "pcoi-toggle",
392
- a ? "pcoi-toggle--error" : "",
393
- l ? "pcoi-toggle--disabled" : "",
394
- i
395
- ].filter(Boolean).join(" ");
396
- return /* @__PURE__ */ n("div", { className: d, children: [
397
- /* @__PURE__ */ n("label", { htmlFor: t, className: "pcoi-toggle__control", children: [
398
- /* @__PURE__ */ e(
399
- "input",
400
- {
401
- ref: r,
402
- type: "checkbox",
403
- id: t,
404
- name: o,
405
- disabled: l,
406
- "aria-invalid": !!a,
407
- "aria-describedby": p,
408
- className: "pcoi-toggle__input",
409
- role: "switch",
410
- ...s
411
- }
412
- ),
413
- /* @__PURE__ */ e("span", { className: "pcoi-toggle__track", "aria-hidden": "true", children: /* @__PURE__ */ e("span", { className: "pcoi-toggle__thumb" }) }),
414
- /* @__PURE__ */ e("span", { className: "pcoi-toggle__label", children: c })
415
- ] }),
416
- a && /* @__PURE__ */ e("span", { id: p, className: "pcoi-toggle__error", role: "alert", children: a })
417
- ] });
418
- }
419
- );
420
- ae.displayName = "Toggle";
421
- const ce = _.forwardRef(
422
- ({
423
- label: c,
424
- name: o,
425
- options: a,
426
- defaultValue: l,
427
- error: i,
428
- required: s = !1,
429
- disabled: r = !1,
430
- onChange: t,
431
- className: p = "",
432
- ...d
433
- }, h) => {
434
- const m = i ? `pcoi-field-${o}-error` : void 0, u = [
435
- "pcoi-radio-group",
436
- i ? "pcoi-radio-group--error" : "",
437
- r ? "pcoi-radio-group--disabled" : "",
438
- p
439
- ].filter(Boolean).join(" "), f = (N) => {
440
- t == null || t(N.target.value);
441
- };
442
- return /* @__PURE__ */ n(
443
- "fieldset",
444
- {
445
- ref: h,
446
- className: u,
447
- "aria-invalid": !!i,
448
- "aria-describedby": m,
449
- ...d,
450
- children: [
451
- /* @__PURE__ */ n("legend", { className: "pcoi-radio-group__legend", children: [
452
- c,
453
- s && /* @__PURE__ */ e("span", { className: "pcoi-radio-group__required", "aria-hidden": "true", children: "*" })
454
- ] }),
455
- /* @__PURE__ */ e("div", { className: "pcoi-radio-group__options", children: a.map((N) => {
456
- const k = `pcoi-field-${o}-${N.value}`;
457
- return /* @__PURE__ */ n(
458
- "label",
459
- {
460
- htmlFor: k,
461
- className: "pcoi-radio-group__option",
462
- children: [
463
- /* @__PURE__ */ e(
464
- "input",
465
- {
466
- type: "radio",
467
- id: k,
468
- name: o,
469
- value: N.value,
470
- defaultChecked: l === N.value,
471
- required: s,
472
- disabled: r || N.disabled,
473
- onChange: f,
474
- className: "pcoi-radio-group__input"
475
- }
476
- ),
477
- /* @__PURE__ */ e("span", { className: "pcoi-radio-group__circle", "aria-hidden": "true" }),
478
- /* @__PURE__ */ e("span", { className: "pcoi-radio-group__label", children: N.label })
479
- ]
480
- },
481
- N.value
482
- );
483
- }) }),
484
- i && /* @__PURE__ */ e("span", { id: m, className: "pcoi-radio-group__error", role: "alert", children: i })
485
- ]
486
- }
487
- );
488
- }
489
- );
490
- ce.displayName = "RadioGroup";
491
- const ie = _.forwardRef(
492
- ({
493
- title: c,
494
- headingLevel: o = "h3",
495
- action: a,
496
- children: l,
497
- flush: i = !1,
498
- className: s = "",
499
- ...r
500
- }, t) => {
501
- const p = o, d = [
502
- "pcoi-panel",
503
- i ? "pcoi-panel--flush" : "",
504
- s
505
- ].filter(Boolean).join(" ");
506
- return /* @__PURE__ */ n("div", { ref: t, className: d, ...r, children: [
507
- (c || a) && /* @__PURE__ */ n("div", { className: "pcoi-panel__header", children: [
508
- c && /* @__PURE__ */ e(p, { className: "pcoi-panel__title", children: c }),
509
- a && /* @__PURE__ */ e("div", { className: "pcoi-panel__action", children: a })
510
- ] }),
511
- /* @__PURE__ */ e("div", { className: "pcoi-panel__body", children: l })
512
- ] });
513
- }
514
- );
515
- ie.displayName = "Panel";
516
- const le = _.forwardRef(
517
- ({
518
- columns: c,
519
- rows: o,
520
- rowKey: a,
521
- emptyText: l = "No data available",
522
- ariaLabel: i,
523
- className: s = "",
524
- ...r
525
- }, t) => {
526
- const p = (d, h) => a ? typeof a == "function" ? a(d, h) : String(d[a]) : String(h);
527
- return /* @__PURE__ */ e("div", { ref: t, className: `pcoi-data-table ${s}`, ...r, children: /* @__PURE__ */ n("table", { className: "pcoi-data-table__table", "aria-label": i, children: [
528
- /* @__PURE__ */ e("thead", { className: "pcoi-data-table__head", children: /* @__PURE__ */ e("tr", { className: "pcoi-data-table__head-row", children: c.map((d) => /* @__PURE__ */ e(
529
- "th",
530
- {
531
- className: `pcoi-data-table__th${d.align ? ` pcoi-data-table__th--${d.align}` : ""}`,
532
- children: d.header
533
- },
534
- d.key
535
- )) }) }),
536
- /* @__PURE__ */ e("tbody", { className: "pcoi-data-table__body", children: o.length === 0 ? /* @__PURE__ */ e("tr", { children: /* @__PURE__ */ e(
537
- "td",
538
- {
539
- colSpan: c.length,
540
- className: "pcoi-data-table__empty",
541
- children: l
542
- }
543
- ) }) : o.map((d, h) => /* @__PURE__ */ e(
544
- "tr",
545
- {
546
- className: "pcoi-data-table__row",
547
- children: c.map((m) => {
548
- const u = d[m.key];
549
- return /* @__PURE__ */ e(
550
- "td",
551
- {
552
- className: `pcoi-data-table__td${m.align ? ` pcoi-data-table__td--${m.align}` : ""}`,
553
- children: m.render ? m.render(u, d) : String(u ?? "")
554
- },
555
- m.key
556
- );
557
- })
558
- },
559
- p(d, h)
560
- )) })
561
- ] }) });
562
- }
563
- );
564
- le.displayName = "DataTable";
565
- const $ = _.forwardRef(
566
- ({ children: c, variant: o = "default", className: a = "", ...l }, i) => {
567
- const s = [
568
- "pcoi-badge",
569
- `pcoi-badge--${o}`,
570
- a
571
- ].filter(Boolean).join(" ");
572
- return /* @__PURE__ */ e("span", { ref: i, className: s, ...l, children: c });
573
- }
574
- );
575
- $.displayName = "Badge";
576
- const T = ({
577
- open: c,
578
- onClose: o,
579
- title: a,
580
- headingLevel: l = "h2",
581
- size: i = "default",
582
- children: s,
583
- footer: r,
584
- className: t = "",
585
- ...p
586
- }) => {
587
- const d = w(null), h = w(null), m = l, u = a ? "pcoi-modal-title" : void 0, f = x(
588
- (b) => {
589
- if (b.key === "Escape") {
590
- o();
591
- return;
592
- }
593
- if (b.key === "Tab" && d.current) {
594
- const v = d.current.querySelectorAll(
595
- 'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'
596
- );
597
- if (v.length === 0) return;
598
- const B = v[0], S = v[v.length - 1];
599
- b.shiftKey && document.activeElement === B ? (b.preventDefault(), S.focus()) : !b.shiftKey && document.activeElement === S && (b.preventDefault(), B.focus());
600
- }
601
- },
602
- [o]
603
- );
604
- y(() => (c && (h.current = document.activeElement, document.addEventListener("keydown", f), document.body.style.overflow = "hidden", requestAnimationFrame(() => {
605
- var v;
606
- const b = (v = d.current) == null ? void 0 : v.querySelector(
607
- 'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'
608
- );
609
- b == null || b.focus();
610
- })), () => {
611
- var b;
612
- document.removeEventListener("keydown", f), document.body.style.overflow = "", (b = h.current) == null || b.focus();
613
- }), [c, f]);
614
- const N = (b) => {
615
- b.target === b.currentTarget && o();
616
- };
617
- if (!c) return null;
618
- const k = ["pcoi-modal", t].filter(Boolean).join(" ");
619
- return F(
620
- /* @__PURE__ */ e("div", { className: k, onClick: N, children: /* @__PURE__ */ n(
621
- "div",
622
- {
623
- ref: d,
624
- className: `pcoi-modal__dialog${i === "wide" ? " pcoi-modal__dialog--wide" : ""}`,
625
- role: "dialog",
626
- "aria-modal": "true",
627
- "aria-labelledby": u,
628
- ...p,
629
- children: [
630
- /* @__PURE__ */ n("div", { className: "pcoi-modal__header", children: [
631
- a && /* @__PURE__ */ e(m, { id: u, className: "pcoi-modal__title", children: a }),
632
- /* @__PURE__ */ e(
633
- "button",
634
- {
635
- type: "button",
636
- className: "pcoi-modal__close",
637
- onClick: o,
638
- "aria-label": "Close modal",
639
- children: /* @__PURE__ */ e(E, { size: 20 })
640
- }
641
- )
642
- ] }),
643
- /* @__PURE__ */ e("div", { className: "pcoi-modal__body", children: s }),
644
- r && /* @__PURE__ */ e("div", { className: "pcoi-modal__footer", children: r })
645
- ]
646
- }
647
- ) }),
648
- document.body
649
- );
650
- };
651
- T.displayName = "Modal";
652
- const oe = ({
653
- message: c,
654
- variant: o = "info",
655
- open: a,
656
- onClose: l,
657
- duration: i = 5e3,
658
- className: s = "",
659
- ...r
660
- }) => {
661
- const t = x(() => {
662
- l == null || l();
663
- }, [l]);
664
- if (y(() => {
665
- if (!a || i === 0) return;
666
- const d = setTimeout(t, i);
667
- return () => clearTimeout(d);
668
- }, [a, i, t]), !a) return null;
669
- const p = [
670
- "pcoi-toast",
671
- `pcoi-toast--${o}`,
672
- s
673
- ].filter(Boolean).join(" ");
674
- return F(
675
- /* @__PURE__ */ e("div", { className: p, role: "alert", ...r, children: /* @__PURE__ */ n("div", { className: "pcoi-toast__content", children: [
676
- /* @__PURE__ */ e("span", { className: "pcoi-toast__message", children: c }),
677
- l && /* @__PURE__ */ e(
678
- "button",
679
- {
680
- type: "button",
681
- className: "pcoi-toast__close",
682
- onClick: t,
683
- "aria-label": "Dismiss notification",
684
- children: /* @__PURE__ */ e(E, { size: 16 })
685
- }
686
- )
687
- ] }) }),
688
- document.body
689
- );
690
- };
691
- oe.displayName = "Toast";
692
- const D = _.forwardRef(({ label: c, icon: o, className: a = "", ...l }, i) => {
693
- const s = ["pcoi-suggestion-card", a].filter(Boolean).join(" ");
694
- return /* @__PURE__ */ n("button", { ref: i, type: "button", className: s, ...l, children: [
695
- o && /* @__PURE__ */ e("span", { className: "pcoi-suggestion-card__icon", children: o }),
696
- /* @__PURE__ */ e("span", { className: "pcoi-suggestion-card__label", children: c })
697
- ] });
698
- });
699
- D.displayName = "SuggestionCard";
700
- const O = _.forwardRef(
701
- ({ index: c, excerpt: o, sourceTitle: a, onSourceClick: l, className: i = "", ...s }, r) => {
702
- const t = ["pcoi-cited-excerpt", i].filter(Boolean).join(" ");
703
- return /* @__PURE__ */ n("div", { ref: r, className: t, ...s, children: [
704
- /* @__PURE__ */ e(
705
- "button",
706
- {
707
- type: "button",
708
- className: "pcoi-cited-excerpt__source",
709
- onClick: l,
710
- children: a
711
- }
712
- ),
713
- /* @__PURE__ */ n("div", { className: "pcoi-cited-excerpt__body", children: [
714
- /* @__PURE__ */ n(
715
- "button",
716
- {
717
- type: "button",
718
- className: "pcoi-cited-excerpt__index",
719
- onClick: l,
720
- children: [
721
- "[",
722
- c,
723
- "]"
724
- ]
725
- }
726
- ),
727
- /* @__PURE__ */ e("p", { className: "pcoi-cited-excerpt__text", children: o })
728
- ] })
729
- ] });
730
- }
731
- );
732
- O.displayName = "CitedExcerpt";
733
- const P = _.forwardRef(
734
- ({
735
- value: c,
736
- onChange: o,
737
- onSubmit: a,
738
- placeholder: l = "Ask a question…",
739
- disabled: i = !1,
740
- loading: s = !1,
741
- className: r = "",
742
- ...t
743
- }, p) => {
744
- const d = w(null), h = x(
745
- (f) => {
746
- f.key === "Enter" && !f.shiftKey && (f.preventDefault(), c.trim() && !i && !s && a(c.trim()));
747
- },
748
- [c, i, s, a]
749
- ), m = x(() => {
750
- c.trim() && !i && !s && a(c.trim());
751
- }, [c, i, s, a]), u = ["pcoi-prompt-bar", r].filter(Boolean).join(" ");
752
- return /* @__PURE__ */ n("div", { ref: p, className: u, ...t, children: [
753
- /* @__PURE__ */ e(
754
- "textarea",
755
- {
756
- ref: d,
757
- className: "pcoi-prompt-bar__input",
758
- value: c,
759
- onChange: (f) => o(f.target.value),
760
- onKeyDown: h,
761
- placeholder: l,
762
- disabled: i,
763
- rows: 1,
764
- "aria-label": l
765
- }
766
- ),
767
- /* @__PURE__ */ e("div", { className: "pcoi-prompt-bar__actions", children: /* @__PURE__ */ e(
768
- R,
769
- {
770
- variant: "primary",
771
- className: "pcoi-prompt-bar__send",
772
- onClick: m,
773
- disabled: i || s || !c.trim(),
774
- "aria-label": "Send message",
775
- children: /* @__PURE__ */ e("span", { className: "pcoi-prompt-bar__send-icon", children: /* @__PURE__ */ e(z, { size: 16 }) })
776
- }
777
- ) })
778
- ] });
779
- }
780
- );
781
- P.displayName = "PromptBar";
782
- const H = _.forwardRef(
783
- ({ role: c, children: o, citations: a, timestamp: l, onCitationClick: i, className: s = "", ...r }, t) => {
784
- const p = [
785
- "pcoi-chat-message",
786
- `pcoi-chat-message--${c}`,
787
- s
788
- ].filter(Boolean).join(" ");
789
- return /* @__PURE__ */ n("div", { ref: t, className: p, ...r, children: [
790
- /* @__PURE__ */ e("div", { className: "pcoi-chat-message__header", children: /* @__PURE__ */ e($, { variant: c === "assistant" ? "default" : "info", children: c === "assistant" ? "PCOI" : "You" }) }),
791
- /* @__PURE__ */ e("div", { className: "pcoi-chat-message__body", children: o }),
792
- a && a.length > 0 && /* @__PURE__ */ e("div", { className: "pcoi-chat-message__citations", children: a.map((d) => /* @__PURE__ */ e(
793
- O,
794
- {
795
- index: d.index,
796
- excerpt: d.excerpt,
797
- sourceTitle: d.sourceTitle,
798
- onSourceClick: () => i == null ? void 0 : i(d)
799
- },
800
- d.index
801
- )) }),
802
- l && /* @__PURE__ */ e("time", { className: "pcoi-chat-message__timestamp", children: l })
803
- ] });
804
- }
805
- );
806
- H.displayName = "ChatMessage";
807
- const M = _.forwardRef(({ suggestions: c, onSelect: o, className: a = "", ...l }, i) => {
808
- const s = ["pcoi-suggestion-cards", a].filter(Boolean).join(" ");
809
- return /* @__PURE__ */ e("div", { ref: i, className: s, ...l, children: c.map((r) => /* @__PURE__ */ e(
810
- D,
811
- {
812
- label: r.label,
813
- icon: r.icon,
814
- onClick: () => o(r)
815
- },
816
- r.id
817
- )) });
818
- });
819
- M.displayName = "SuggestionCards";
820
- const q = _.forwardRef(({ children: c, className: o = "", ...a }, l) => {
821
- const i = w(null);
822
- y(() => {
823
- const r = i.current;
824
- if (!r) return;
825
- const t = () => {
826
- requestAnimationFrame(() => {
827
- r.scrollTop = r.scrollHeight;
828
- });
829
- }, p = new MutationObserver(t);
830
- return p.observe(r, { childList: !0, subtree: !0 }), t(), () => p.disconnect();
831
- }, []);
832
- const s = ["pcoi-chat-message-list", o].filter(Boolean).join(" ");
833
- return /* @__PURE__ */ e("div", { ref: l, className: s, ...a, children: /* @__PURE__ */ e("div", { ref: i, className: "pcoi-chat-message-list__inner", children: c }) });
834
- });
835
- q.displayName = "ChatMessageList";
836
- const re = _.forwardRef(
837
- ({ open: c, onClose: o, title: a, sourceLabel: l, children: i, highlightId: s, highlightIndex: r, className: t = "", ...p }, d) => {
838
- const h = w(null);
839
- y(() => {
840
- c && s && h.current && requestAnimationFrame(() => {
841
- var N;
842
- const f = (N = h.current) == null ? void 0 : N.querySelector(`#${CSS.escape(s)}`);
843
- f && (f.scrollIntoView({ behavior: "smooth", block: "center" }), f.classList.add("pcoi-doc-overlay__highlight"), r !== void 0 && f.setAttribute("data-highlight-index", `[${r}]`));
844
- });
845
- }, [c, s, r]);
846
- const m = ["pcoi-doc-overlay", t].filter(Boolean).join(" "), u = l ? _.createElement(
847
- "div",
848
- { className: "pcoi-doc-overlay__source" },
849
- _.createElement($, null, l)
850
- ) : void 0;
851
- return _.createElement(
852
- T,
853
- {
854
- open: c,
855
- onClose: o,
856
- title: a,
857
- size: "wide",
858
- footer: u,
859
- className: m,
860
- ...p
861
- },
862
- _.createElement(
863
- "div",
864
- { ref: h, className: "pcoi-doc-overlay__content" },
865
- i
866
- )
867
- );
868
- }
869
- );
870
- re.displayName = "DocumentOverlay";
871
- const L = _.forwardRef(({ label: c = "PCOI", className: o = "", ...a }, l) => {
872
- const i = ["pcoi-typing-indicator", o].filter(Boolean).join(" ");
873
- return /* @__PURE__ */ n("div", { ref: l, className: i, ...a, children: [
874
- /* @__PURE__ */ e("div", { className: "pcoi-typing-indicator__header", children: /* @__PURE__ */ e($, { children: c }) }),
875
- /* @__PURE__ */ n("div", { className: "pcoi-typing-indicator__dots", "aria-label": "Typing", children: [
876
- /* @__PURE__ */ e("span", { className: "pcoi-typing-indicator__dot" }),
877
- /* @__PURE__ */ e("span", { className: "pcoi-typing-indicator__dot" }),
878
- /* @__PURE__ */ e("span", { className: "pcoi-typing-indicator__dot" })
879
- ] })
880
- ] });
881
- });
882
- L.displayName = "TypingIndicator";
883
- const se = _.forwardRef(
884
- ({
885
- messages: c,
886
- suggestions: o,
887
- promptValue: a,
888
- onPromptChange: l,
889
- onPromptSubmit: i,
890
- onSuggestionSelect: s,
891
- onCitationClick: r,
892
- placeholder: t,
893
- loading: p = !1,
894
- className: d = "",
895
- ...h
896
- }, m) => {
897
- const u = c.length === 0, f = [
898
- "pcoi-chat",
899
- u ? "pcoi-chat--empty" : "",
900
- d
901
- ].filter(Boolean).join(" ");
902
- return /* @__PURE__ */ n("div", { ref: m, className: f, ...h, children: [
903
- u ? /* @__PURE__ */ e("div", { className: "pcoi-chat__empty-state", children: o && o.length > 0 && s && /* @__PURE__ */ e("div", { className: "pcoi-chat__suggestions", children: /* @__PURE__ */ e(
904
- M,
905
- {
906
- suggestions: o,
907
- onSelect: s
908
- }
909
- ) }) }) : /* @__PURE__ */ n(q, { className: "pcoi-chat__messages", children: [
910
- c.map((N) => /* @__PURE__ */ e(
911
- H,
912
- {
913
- role: N.role,
914
- citations: N.citations,
915
- timestamp: N.timestamp,
916
- onCitationClick: r,
917
- children: N.content
918
- },
919
- N.id
920
- )),
921
- p && /* @__PURE__ */ e(L, {})
922
- ] }),
923
- /* @__PURE__ */ e("div", { className: "pcoi-chat__prompt", children: /* @__PURE__ */ e(
924
- P,
925
- {
926
- value: a,
927
- onChange: l,
928
- onSubmit: i,
929
- placeholder: t,
930
- loading: p,
931
- disabled: p
932
- }
933
- ) })
934
- ] });
935
- }
936
- );
937
- se.displayName = "ChatInterface";
938
- export {
939
- $ as Badge,
940
- R as Button,
941
- Q as Callout,
942
- Y as Card,
943
- se as ChatInterface,
944
- H as ChatMessage,
945
- q as ChatMessageList,
946
- ee as Checkbox,
947
- O as CitedExcerpt,
948
- G as ComparisonTable,
949
- J as ContactForm,
950
- le as DataTable,
951
- re as DocumentOverlay,
952
- Z as Footer,
953
- g as FormField,
954
- V as HowStep,
955
- I as LogoMark,
956
- T as Modal,
957
- W as Nav,
958
- ie as Panel,
959
- P as PromptBar,
960
- ce as RadioGroup,
961
- K as SectionHeader,
962
- U as Select,
963
- X as SignalsPanel,
964
- D as SuggestionCard,
965
- M as SuggestionCards,
966
- oe as Toast,
967
- ae as Toggle,
968
- L as TypingIndicator
969
- };