@flamingo-stack/openframe-frontend-core 0.0.781 → 0.0.782
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.
- package/dist/case-study-card-WYZPBDDM.cjs +23 -0
- package/dist/{chunk-D46WFWWI.cjs → chunk-2EXD2RSC.cjs} +41 -39
- package/dist/{chunk-RJX33Y4Q.cjs → chunk-3INHO6GP.cjs} +22 -22
- package/dist/{chunk-JHDPEYZH.cjs → chunk-4DKPNN2A.cjs} +17 -17
- package/dist/{chunk-L4XOCV7S.cjs → chunk-4DQ4CNAG.cjs} +10 -10
- package/dist/{chunk-HTSRCFXP.cjs → chunk-4MQASMIU.cjs} +7 -7
- package/dist/{chunk-3VINTJPE.cjs → chunk-5WMRVMXH.cjs} +5 -5
- package/dist/{chunk-OHXB6HUX.cjs → chunk-5XAWVXNI.cjs} +320 -320
- package/dist/{chunk-VDTLVFCV.cjs → chunk-7DKDVJMR.cjs} +13 -13
- package/dist/{chunk-FWJ5YECN.cjs → chunk-7OJMOG34.cjs} +546 -544
- package/dist/{chunk-63OCO2G5.cjs → chunk-A3UZFFR3.cjs} +4 -4
- package/dist/{chunk-ODZ5XGWA.cjs → chunk-A4YUTS6Q.cjs} +2076 -2052
- package/dist/{chunk-T7SDYBST.cjs → chunk-BE4OUWTA.cjs} +54 -54
- package/dist/{chunk-YKJ4JN6T.cjs → chunk-C42BXIY7.cjs} +42 -42
- package/dist/{chunk-HPGCUYAZ.cjs → chunk-C5UUWXHE.cjs} +110 -110
- package/dist/{chunk-ZV6RQNXE.cjs → chunk-CBKXU77H.cjs} +46 -46
- package/dist/{chunk-IYU2ZH2J.cjs → chunk-CS5SZJFV.cjs} +2 -2
- package/dist/{chunk-Q7HXTF2C.cjs → chunk-DYF6XB27.cjs} +4 -4
- package/dist/{chunk-AKCBLZAO.cjs → chunk-E2ZZOYSM.cjs} +74 -62
- package/dist/{chunk-57NE7SHG.cjs → chunk-EFCWHAYC.cjs} +8 -8
- package/dist/{chunk-KWV23THO.cjs → chunk-EHQ2UGT4.cjs} +14 -14
- package/dist/{chunk-DJTPDK3W.cjs → chunk-F2FFJWOQ.cjs} +4 -4
- package/dist/{chunk-CDBFQVPA.cjs → chunk-FLS6DZEN.cjs} +46 -43
- package/dist/{chunk-VZKAAXU3.cjs → chunk-FS7CBRF4.cjs} +23 -23
- package/dist/{chunk-B6EQVH7D.cjs → chunk-GFRKNUJZ.cjs} +51 -51
- package/dist/{chunk-PID7LUDP.cjs → chunk-I7LRZR4Q.cjs} +31 -31
- package/dist/{chunk-A7FSNBNV.cjs → chunk-ISB7LW3D.cjs} +173 -172
- package/dist/{chunk-LDGR5VCK.cjs → chunk-IZKEWQJN.cjs} +4 -4
- package/dist/{chunk-X6TXMWBV.cjs → chunk-JGKPEGZN.cjs} +61 -61
- package/dist/{chunk-EYNQE2XN.cjs → chunk-LTF6UDGO.cjs} +6 -6
- package/dist/{chunk-2OYKOHFK.cjs → chunk-LUWYWYNC.cjs} +2 -2
- package/dist/{chunk-5PBWAF2D.cjs → chunk-MDGDL3C7.cjs} +44 -44
- package/dist/{chunk-N6YCOBLK.cjs → chunk-MGEUZRNQ.cjs} +101 -9
- package/dist/{chunk-YEJWNHD3.cjs → chunk-MKF6XX5A.cjs} +63 -63
- package/dist/{chunk-3IHGS44W.cjs → chunk-N2SVJJLU.cjs} +5 -5
- package/dist/{chunk-TZ6MTHUC.cjs → chunk-N5TPRCSS.cjs} +60 -60
- package/dist/{chunk-HLZUBJPL.cjs → chunk-N7QNWHJA.cjs} +197 -197
- package/dist/{chunk-YNDH72VU.cjs → chunk-NNNRN4OF.cjs} +14 -14
- package/dist/{chunk-JQWYXC2E.cjs → chunk-ODDUGLYF.cjs} +110 -110
- package/dist/{chunk-T4ZVKEDP.cjs → chunk-OMTH355I.cjs} +3 -3
- package/dist/{chunk-TH5X2BXK.cjs → chunk-QV4GHAWN.cjs} +115 -115
- package/dist/{chunk-DIY4SJZI.cjs → chunk-RT6QATX4.cjs} +19 -19
- package/dist/{chunk-UONQCE5N.cjs → chunk-TS6TISIF.cjs} +209 -208
- package/dist/{chunk-SMEX3BWO.cjs → chunk-UPQMFK5B.cjs} +7 -7
- package/dist/{chunk-XYKVOBIP.cjs → chunk-VH3KQSI2.cjs} +3 -3
- package/dist/{chunk-OFX6XEVN.cjs → chunk-VZUV2FCP.cjs} +13 -13
- package/dist/{chunk-QD7SKYCQ.cjs → chunk-WSBWP7IW.cjs} +3 -3
- package/dist/{chunk-RYIWADIB.cjs → chunk-XAA5LUHC.cjs} +12 -12
- package/dist/{chunk-XHJI7R4J.cjs → chunk-YX7X5QQN.cjs} +46 -46
- package/dist/{chunk-ZPYFPLPD.cjs → chunk-YXZOP726.cjs} +10 -10
- package/dist/{chunk-4XDYSGRL.cjs → chunk-ZFOMRALU.cjs} +17 -17
- package/dist/{chunk-AFJEUBDS.cjs → chunk-ZJS45HQZ.cjs} +29 -29
- package/dist/{cloud-tenants-UAFVHKX7.cjs → cloud-tenants-LXKEG5N4.cjs} +32 -32
- package/dist/components/calendar.cjs +10 -10
- package/dist/components/case-studies/index.cjs +52 -52
- package/dist/components/category-card.d.ts.map +1 -1
- package/dist/components/category-card.js +1 -0
- package/dist/components/chat/ask-display.js +2 -2
- package/dist/components/chat/chat-context-memory-bar.js +2 -2
- package/dist/components/chat/chat-context-picker.d.ts.map +1 -1
- package/dist/components/chat/chat-context-picker.js +4 -2
- package/dist/components/chat/chat-input.d.ts.map +1 -1
- package/dist/components/chat/chat-input.js +2 -1
- package/dist/components/chat/chat-nav-sidebar.d.ts.map +1 -1
- package/dist/components/chat/chat-nav-sidebar.js +12 -1
- package/dist/components/chat/guide-mode-banner.js +1 -1
- package/dist/components/chat/index.cjs +26 -26
- package/dist/components/chat/mingo-welcome.js +1 -1
- package/dist/components/contact/index.cjs +33 -33
- package/dist/components/docs/index.cjs +36 -36
- package/dist/components/embeds/index.cjs +33 -33
- package/dist/components/faq/index.cjs +34 -34
- package/dist/components/features/capability-explorer.d.ts.map +1 -1
- package/dist/components/features/capability-explorer.js +11 -1
- package/dist/components/features/command-box.js +1 -1
- package/dist/components/features/devices/devices-grid-filters.d.ts.map +1 -1
- package/dist/components/features/devices/devices-grid-filters.js +15 -4
- package/dist/components/features/filters-dropdown.d.ts.map +1 -1
- package/dist/components/features/filters-dropdown.js +6 -5
- package/dist/components/features/index.cjs +32 -32
- package/dist/components/features/model-token-rates.js +1 -1
- package/dist/components/features/notifications/notification-drawer.d.ts.map +1 -1
- package/dist/components/features/notifications/notification-drawer.js +1 -0
- package/dist/components/features/notifications/notification-tile.js +1 -1
- package/dist/components/features/paths-display.js +1 -1
- package/dist/components/features/remote-session/remote-session-events.d.ts.map +1 -1
- package/dist/components/features/remote-session/remote-session-events.js +1 -0
- package/dist/components/features/scripts/schedule-form/schedule-script-picker-card.js +1 -1
- package/dist/components/features/scripts/schedule-form/schedule-timing-fields.js +1 -1
- package/dist/components/features/select-button.js +0 -1
- package/dist/components/features/tags-selector.js +1 -1
- package/dist/components/help-center-pages/index.cjs +163 -163
- package/dist/components/index.cjs +205 -204
- package/dist/components/loading/loading-region.d.ts.map +1 -1
- package/dist/components/loading/loading-region.js +2 -2
- package/dist/components/meeting-scheduler/index.cjs +187 -187
- package/dist/components/navigation/index.cjs +35 -35
- package/dist/components/navigation/mobile-burger-menu.d.ts.map +1 -1
- package/dist/components/navigation/mobile-burger-menu.js +2 -1
- package/dist/components/navigation/multi-level-navigation.d.ts.map +1 -1
- package/dist/components/navigation/multi-level-navigation.js +4 -2
- package/dist/components/navigation/navigation-sidebar-item.js +3 -3
- package/dist/components/onboarding-guides/index.cjs +35 -35
- package/dist/components/product-demo/index.cjs +45 -45
- package/dist/components/related-content/index.cjs +17 -17
- package/dist/components/tickets/index.cjs +39 -39
- package/dist/components/ui/allowed-domains-input.d.ts.map +1 -1
- package/dist/components/ui/allowed-domains-input.js +1 -0
- package/dist/components/ui/button/button-styles.d.ts +12 -4
- package/dist/components/ui/button/button-styles.d.ts.map +1 -1
- package/dist/components/ui/button/button-styles.js +99 -7
- package/dist/components/ui/button/button.d.ts +1 -1
- package/dist/components/ui/button/button.d.ts.map +1 -1
- package/dist/components/ui/button/button.js +3 -0
- package/dist/components/ui/file-manager/file-manager-breadcrumb.d.ts.map +1 -1
- package/dist/components/ui/file-manager/file-manager-breadcrumb.js +1 -0
- package/dist/components/ui/file-manager/index.cjs +56 -55
- package/dist/components/ui/file-upload.d.ts.map +1 -1
- package/dist/components/ui/file-upload.js +5 -3
- package/dist/components/ui/hidden-tags-popup.js +1 -1
- package/dist/components/ui/hover-dropdown.js +1 -1
- package/dist/components/ui/index.cjs +32 -32
- package/dist/components/ui/info-card.js +1 -1
- package/dist/components/ui/info-section.d.ts.map +1 -1
- package/dist/components/ui/info-section.js +1 -0
- package/dist/components/ui/loading-scope.d.ts.map +1 -1
- package/dist/components/ui/loading-scope.js +2 -2
- package/dist/components/ui/modal-v2.js +1 -1
- package/dist/components/ui/organization-card.d.ts.map +1 -1
- package/dist/components/ui/organization-card.js +2 -1
- package/dist/components/ui/page-actions.d.ts +2 -2
- package/dist/components/ui/page-actions.d.ts.map +1 -1
- package/dist/components/ui/password-input.js +1 -1
- package/dist/components/ui/service-card.js +3 -3
- package/dist/components/ui/tab-selector.d.ts.map +1 -1
- package/dist/components/ui/tab-selector.js +3 -3
- package/dist/components/ui/test-run.d.ts.map +1 -1
- package/dist/components/ui/test-run.js +2 -1
- package/dist/components/ui/textarea.d.ts.map +1 -1
- package/dist/components/ui/textarea.js +2 -1
- package/dist/components/ui/ticket-attachments-list.d.ts.map +1 -1
- package/dist/components/ui/ticket-attachments-list.js +3 -2
- package/dist/components/ui/ticket-info-section.d.ts.map +1 -1
- package/dist/components/ui/ticket-info-section.js +1 -0
- package/dist/components/ui/ticket-note-card.d.ts.map +1 -1
- package/dist/components/ui/ticket-note-card.js +6 -4
- package/dist/components/ui/ticket-status-config-row.d.ts.map +1 -1
- package/dist/components/ui/ticket-status-config-row.js +1 -10
- package/dist/components/ui/toaster.js +1 -1
- package/dist/components/vendor-display-button.js +1 -1
- package/dist/{devices-TDKCKWRP.cjs → devices-PYJRYIQN.cjs} +33 -33
- package/dist/embed-shims/index.cjs +4 -4
- package/dist/embed-shims/next-image.cjs +4 -4
- package/dist/{embeddable-chat-HEL4Z2FL.cjs → embeddable-chat-7MSM62UC.cjs} +114 -114
- package/dist/hooks/index.cjs +10 -10
- package/dist/index.cjs +48 -48
- package/dist/{knowledge-A5KJ4CAD.cjs → knowledge-R4H2ZDX2.cjs} +33 -33
- package/dist/{logs-6WRBPIMM.cjs → logs-YWL6NK24.cjs} +41 -41
- package/dist/{policies-ICRXHW3H.cjs → policies-3COFYSKB.cjs} +36 -36
- package/dist/{remote-session-MEV5JL2Z.cjs → remote-session-IEOWFBF7.cjs} +17 -17
- package/dist/{scripts-AZVCZE6C.cjs → scripts-72EJDICT.cjs} +39 -39
- package/dist/{software-update-4ZBCGJGA.cjs → software-update-PPUVCLPO.cjs} +36 -36
- package/dist/{tickets-board-BJPQD3HE.cjs → tickets-board-EYKLSB36.cjs} +17 -17
- package/dist/{video-file-player-DETXW4OJ.cjs → video-file-player-ZU666VUY.cjs} +14 -14
- package/package.json +1 -1
- package/src/components/category-card.tsx +2 -0
- package/src/components/chat/ask-display.tsx +2 -2
- package/src/components/chat/chat-context-memory-bar.tsx +2 -2
- package/src/components/chat/chat-context-picker.tsx +4 -2
- package/src/components/chat/chat-input.tsx +3 -1
- package/src/components/chat/chat-nav-sidebar.tsx +10 -1
- package/src/components/chat/guide-mode-banner.tsx +1 -1
- package/src/components/chat/mingo-welcome.tsx +1 -1
- package/src/components/features/capability-explorer.tsx +8 -1
- package/src/components/features/command-box.tsx +1 -1
- package/src/components/features/devices/devices-grid-filters.tsx +8 -1
- package/src/components/features/filters-dropdown.tsx +6 -1
- package/src/components/features/model-token-rates.tsx +1 -1
- package/src/components/features/notifications/notification-drawer.tsx +1 -0
- package/src/components/features/notifications/notification-tile.tsx +1 -1
- package/src/components/features/paths-display.tsx +1 -1
- package/src/components/features/remote-session/remote-session-events.tsx +2 -0
- package/src/components/features/scripts/schedule-form/schedule-script-picker-card.tsx +1 -1
- package/src/components/features/scripts/schedule-form/schedule-timing-fields.tsx +1 -1
- package/src/components/features/select-button.tsx +2 -2
- package/src/components/features/tags-selector.tsx +1 -1
- package/src/components/loading/loading-region.tsx +4 -1
- package/src/components/navigation/mobile-burger-menu.tsx +3 -1
- package/src/components/navigation/multi-level-navigation.tsx +6 -2
- package/src/components/navigation/navigation-sidebar-item.tsx +5 -5
- package/src/components/ui/allowed-domains-input.tsx +1 -0
- package/src/components/ui/button/button-styles.ts +106 -9
- package/src/components/ui/button/button.tsx +3 -0
- package/src/components/ui/file-manager/file-manager-breadcrumb.tsx +1 -0
- package/src/components/ui/file-upload.tsx +5 -3
- package/src/components/ui/hidden-tags-popup.tsx +1 -1
- package/src/components/ui/hover-dropdown.tsx +1 -1
- package/src/components/ui/info-card.tsx +1 -1
- package/src/components/ui/info-section.tsx +2 -0
- package/src/components/ui/loading-scope.tsx +2 -1
- package/src/components/ui/modal-v2.tsx +1 -1
- package/src/components/ui/organization-card.tsx +3 -1
- package/src/components/ui/page-actions.tsx +14 -2
- package/src/components/ui/password-input.tsx +1 -1
- package/src/components/ui/service-card.tsx +3 -3
- package/src/components/ui/tab-selector.tsx +5 -3
- package/src/components/ui/test-run.tsx +2 -1
- package/src/components/ui/textarea.tsx +3 -1
- package/src/components/ui/ticket-attachments-list.tsx +3 -2
- package/src/components/ui/ticket-info-section.tsx +1 -0
- package/src/components/ui/ticket-note-card.tsx +6 -4
- package/src/components/ui/ticket-status-config-row.tsx +1 -6
- package/src/components/ui/toaster.tsx +1 -1
- package/src/components/vendor-display-button.tsx +1 -1
- package/dist/case-study-card-CYJ3JXU6.cjs +0 -23
|
@@ -2,41 +2,41 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _chunkA4YUTS6Qcjs = require('./chunk-A4YUTS6Q.cjs');
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _chunkTS6TISIFcjs = require('./chunk-TS6TISIF.cjs');
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
var
|
|
17
|
+
var _chunkCBKXU77Hcjs = require('./chunk-CBKXU77H.cjs');
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
var
|
|
20
|
+
var _chunkN7QNWHJAcjs = require('./chunk-N7QNWHJA.cjs');
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
var
|
|
25
|
+
var _chunk7OJMOG34cjs = require('./chunk-7OJMOG34.cjs');
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
|
|
29
|
-
var
|
|
29
|
+
var _chunk5XAWVXNIcjs = require('./chunk-5XAWVXNI.cjs');
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
|
|
33
|
-
var
|
|
33
|
+
var _chunkEHQ2UGT4cjs = require('./chunk-EHQ2UGT4.cjs');
|
|
34
34
|
|
|
35
35
|
|
|
36
|
-
var
|
|
36
|
+
var _chunkOMTH355Icjs = require('./chunk-OMTH355I.cjs');
|
|
37
37
|
|
|
38
38
|
|
|
39
|
-
var
|
|
39
|
+
var _chunkFLS6DZENcjs = require('./chunk-FLS6DZEN.cjs');
|
|
40
40
|
|
|
41
41
|
// src/components/contact/contact-form.tsx
|
|
42
42
|
var _zod = require('@hookform/resolvers/zod');
|
|
@@ -119,14 +119,14 @@ function ContactForm({
|
|
|
119
119
|
successToastMessage = "Redirecting you to join our community...",
|
|
120
120
|
rescue: rescueForm = null
|
|
121
121
|
} = {}) {
|
|
122
|
-
const attachments =
|
|
123
|
-
const builtInSubmission =
|
|
122
|
+
const attachments = _chunk7OJMOG34cjs.useChatAttachments.call(void 0, );
|
|
123
|
+
const builtInSubmission = _chunkCBKXU77Hcjs.useContactSubmission.call(void 0, {
|
|
124
124
|
userId,
|
|
125
125
|
successRedirectUrl,
|
|
126
126
|
successToastMessage
|
|
127
127
|
});
|
|
128
128
|
const [customSubmitting, setCustomSubmitting] = _react.useState.call(void 0, false);
|
|
129
|
-
const { honeypotInputProps, getSignals, resetSignals } =
|
|
129
|
+
const { honeypotInputProps, getSignals, resetSignals } = _chunkCBKXU77Hcjs.useHumanitySignals.call(void 0, );
|
|
130
130
|
const isSubmitting = onCustomSubmit ? customSubmitting : builtInSubmission.isSubmitting;
|
|
131
131
|
const isSuccess = onCustomSubmit ? false : builtInSubmission.isSuccess;
|
|
132
132
|
const form = _reacthookform.useForm.call(void 0, {
|
|
@@ -152,7 +152,7 @@ function ContactForm({
|
|
|
152
152
|
),
|
|
153
153
|
[hideFields]
|
|
154
154
|
);
|
|
155
|
-
const rescue =
|
|
155
|
+
const rescue = _chunkCBKXU77Hcjs.useRescuedForm.call(void 0, form, { rescue: rescueForm, fields: rescueFieldNames, getSignals });
|
|
156
156
|
const handleFormSubmit = async (data) => {
|
|
157
157
|
if (isSubmitting) return;
|
|
158
158
|
if (attachmentsEnabled && attachments.hasInflightUploads) return;
|
|
@@ -190,7 +190,7 @@ function ContactForm({
|
|
|
190
190
|
className: `flex h-full flex-col ${!noBorder ? "rounded-2xl border border-ods-border content-md:rounded-3xl" : ""} ${!noPadding ? "p-6 content-md:p-8 content-lg:p-10" : ""}`,
|
|
191
191
|
children: [
|
|
192
192
|
(title || subtitle) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mb-6 content-md:mb-8", children: [
|
|
193
|
-
title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: `${
|
|
193
|
+
title && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: `${_chunk5XAWVXNIcjs.SECTION_HEADING_CLASS} mb-3 content-md:mb-4`, children: _chunk5XAWVXNIcjs.accentSentenceMarks.call(void 0, title) }),
|
|
194
194
|
subtitle && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-ods-text-primary text-h4", children: subtitle })
|
|
195
195
|
] }),
|
|
196
196
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -203,22 +203,22 @@ function ContactForm({
|
|
|
203
203
|
);
|
|
204
204
|
}),
|
|
205
205
|
className: "flex flex-grow flex-col space-y-4 content-md:space-y-6",
|
|
206
|
-
...
|
|
206
|
+
..._chunkN7QNWHJAcjs.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS,
|
|
207
207
|
children: [
|
|
208
208
|
!showName && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "input", { type: "hidden", ...register("name") }),
|
|
209
209
|
!showEmail && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "input", { type: "hidden", ...register("email") }),
|
|
210
210
|
!showHelpCategory && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "input", { type: "hidden", ...register("helpCategory") }),
|
|
211
211
|
!showMessage && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "input", { type: "hidden", ...register("message") }),
|
|
212
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
212
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkA4YUTS6Qcjs.HoneypotField, { ...honeypotInputProps }),
|
|
213
213
|
extraTopField,
|
|
214
214
|
showNameEmailRow && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-1 gap-4 content-md:grid-cols-2 content-md:gap-6", children: [
|
|
215
215
|
showName && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
|
|
216
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
216
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkOMTH355Icjs.Label, { htmlFor: "name", children: [
|
|
217
217
|
"Your Name",
|
|
218
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
218
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEHQ2UGT4cjs.RequiredMark, {})
|
|
219
219
|
] }),
|
|
220
220
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
221
|
-
|
|
221
|
+
_chunkEHQ2UGT4cjs.Input,
|
|
222
222
|
{
|
|
223
223
|
id: "name",
|
|
224
224
|
type: "text",
|
|
@@ -233,12 +233,12 @@ function ContactForm({
|
|
|
233
233
|
errors.name && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { id: "name-error", className: "mt-1 text-ods-error text-h6", children: errors.name.message })
|
|
234
234
|
] }),
|
|
235
235
|
showEmail && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
|
|
236
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
236
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkOMTH355Icjs.Label, { htmlFor: "email", children: [
|
|
237
237
|
"Email",
|
|
238
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
238
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEHQ2UGT4cjs.RequiredMark, {})
|
|
239
239
|
] }),
|
|
240
240
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
241
|
-
|
|
241
|
+
_chunkEHQ2UGT4cjs.Input,
|
|
242
242
|
{
|
|
243
243
|
id: "email",
|
|
244
244
|
type: "email",
|
|
@@ -255,46 +255,46 @@ function ContactForm({
|
|
|
255
255
|
] }),
|
|
256
256
|
(showCompanySize || showReferralSource) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "grid grid-cols-1 gap-4 content-md:grid-cols-2 content-md:gap-6", children: [
|
|
257
257
|
showCompanySize && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
|
|
258
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
258
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkOMTH355Icjs.Label, { htmlFor: "companySize", children: "Company Size" }),
|
|
259
259
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
260
260
|
_reacthookform.Controller,
|
|
261
261
|
{
|
|
262
262
|
control,
|
|
263
263
|
name: "companySize",
|
|
264
|
-
render: ({ field }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
264
|
+
render: ({ field }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkTS6TISIFcjs.Select, { onValueChange: field.onChange, value: _nullishCoalesce(field.value, () => ( "")), children: [
|
|
265
265
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
266
|
-
|
|
266
|
+
_chunkTS6TISIFcjs.SelectTrigger,
|
|
267
267
|
{
|
|
268
268
|
id: "companySize",
|
|
269
269
|
"aria-label": "Company Size",
|
|
270
270
|
className: "h-12 border-ods-border bg-ods-card px-3 text-ods-text-primary",
|
|
271
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
271
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTS6TISIFcjs.SelectValue, { placeholder: "Select company size" })
|
|
272
272
|
}
|
|
273
273
|
),
|
|
274
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
274
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTS6TISIFcjs.SelectContent, { children: companySizeOptions.map((opt) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTS6TISIFcjs.SelectItem, { value: opt, children: opt }, opt)) })
|
|
275
275
|
] })
|
|
276
276
|
}
|
|
277
277
|
),
|
|
278
278
|
errors.companySize && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { id: "companySize-error", className: "mt-1 text-ods-error text-h6", children: errors.companySize.message })
|
|
279
279
|
] }),
|
|
280
280
|
showReferralSource && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
|
|
281
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
281
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkOMTH355Icjs.Label, { htmlFor: "referralSource", children: "How did you hear about us?" }),
|
|
282
282
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
283
283
|
_reacthookform.Controller,
|
|
284
284
|
{
|
|
285
285
|
control,
|
|
286
286
|
name: "referralSource",
|
|
287
|
-
render: ({ field }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
287
|
+
render: ({ field }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkTS6TISIFcjs.Select, { onValueChange: field.onChange, value: _nullishCoalesce(field.value, () => ( "")), children: [
|
|
288
288
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
289
|
-
|
|
289
|
+
_chunkTS6TISIFcjs.SelectTrigger,
|
|
290
290
|
{
|
|
291
291
|
id: "referralSource",
|
|
292
292
|
"aria-label": "Referral Source",
|
|
293
293
|
className: "h-12 border-ods-border bg-ods-card px-3 text-ods-text-primary",
|
|
294
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
294
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTS6TISIFcjs.SelectValue, { placeholder: "Select an option" })
|
|
295
295
|
}
|
|
296
296
|
),
|
|
297
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
297
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTS6TISIFcjs.SelectContent, { children: referralSourceOptions.map((opt) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTS6TISIFcjs.SelectItem, { value: opt, children: opt }, opt)) })
|
|
298
298
|
] })
|
|
299
299
|
}
|
|
300
300
|
),
|
|
@@ -302,39 +302,39 @@ function ContactForm({
|
|
|
302
302
|
] })
|
|
303
303
|
] }),
|
|
304
304
|
showHelpCategory && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
|
|
305
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
305
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkOMTH355Icjs.Label, { htmlFor: "helpCategory", children: [
|
|
306
306
|
"Choose your main interest",
|
|
307
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
307
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEHQ2UGT4cjs.RequiredMark, {})
|
|
308
308
|
] }),
|
|
309
309
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
310
310
|
_reacthookform.Controller,
|
|
311
311
|
{
|
|
312
312
|
control,
|
|
313
313
|
name: "helpCategory",
|
|
314
|
-
render: ({ field }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
314
|
+
render: ({ field }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkTS6TISIFcjs.Select, { onValueChange: field.onChange, value: _nullishCoalesce(field.value, () => ( "")), children: [
|
|
315
315
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
316
|
-
|
|
316
|
+
_chunkTS6TISIFcjs.SelectTrigger,
|
|
317
317
|
{
|
|
318
318
|
id: "helpCategory",
|
|
319
319
|
"aria-label": "Help Category",
|
|
320
320
|
"aria-required": true,
|
|
321
321
|
className: "h-12 border-ods-border bg-ods-card px-3 text-ods-text-primary",
|
|
322
|
-
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
322
|
+
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTS6TISIFcjs.SelectValue, { placeholder: "Choose your main interest" })
|
|
323
323
|
}
|
|
324
324
|
),
|
|
325
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
325
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTS6TISIFcjs.SelectContent, { children: helpCategoryOptions.map((opt) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTS6TISIFcjs.SelectItem, { value: opt, children: opt }, opt)) })
|
|
326
326
|
] })
|
|
327
327
|
}
|
|
328
328
|
),
|
|
329
329
|
errors.helpCategory && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { id: "helpCategory-error", className: "mt-1 text-ods-error text-h6", children: errors.helpCategory.message })
|
|
330
330
|
] }),
|
|
331
331
|
showMessage && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-grow flex-col", children: [
|
|
332
|
-
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
332
|
+
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _chunkOMTH355Icjs.Label, { htmlFor: "message", children: [
|
|
333
333
|
"Your Message",
|
|
334
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
334
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEHQ2UGT4cjs.RequiredMark, {})
|
|
335
335
|
] }),
|
|
336
336
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
337
|
-
|
|
337
|
+
_chunkA4YUTS6Qcjs.Textarea,
|
|
338
338
|
{
|
|
339
339
|
id: "message",
|
|
340
340
|
...register("message"),
|
|
@@ -349,7 +349,7 @@ function ContactForm({
|
|
|
349
349
|
] }),
|
|
350
350
|
attachmentsEnabled && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col gap-2", children: [
|
|
351
351
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
352
|
-
|
|
352
|
+
_chunk7OJMOG34cjs.ChatAttachmentChipStrip,
|
|
353
353
|
{
|
|
354
354
|
attachments: attachments.attachments,
|
|
355
355
|
onRemove: attachments.removeAttachment,
|
|
@@ -358,7 +358,7 @@ function ContactForm({
|
|
|
358
358
|
),
|
|
359
359
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-2", children: [
|
|
360
360
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
361
|
-
|
|
361
|
+
_chunk7OJMOG34cjs.ChatAttachmentAddButton,
|
|
362
362
|
{
|
|
363
363
|
attachmentsEnabled: true,
|
|
364
364
|
attachmentsCount: attachments.attachments.length,
|
|
@@ -372,7 +372,7 @@ function ContactForm({
|
|
|
372
372
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mt-auto flex w-full flex-col items-center justify-end gap-4 pt-2 content-md:flex-row content-md:gap-6", children: [
|
|
373
373
|
footerText && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-center text-ods-text-secondary text-h6 content-md:text-left", children: footerText }),
|
|
374
374
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
375
|
-
|
|
375
|
+
_chunkFLS6DZENcjs.Button,
|
|
376
376
|
{
|
|
377
377
|
type: "submit",
|
|
378
378
|
loading: isSubmitting,
|
|
@@ -64,8 +64,8 @@ function AnnouncedLoadingScope({
|
|
|
64
64
|
}) {
|
|
65
65
|
const outer = useLoadingScope();
|
|
66
66
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
67
|
-
|
|
68
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
67
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, LoadingScope, { active, as, className, children }),
|
|
68
|
+
status && active && !outer && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LoadingStatus, { label })
|
|
69
69
|
] });
|
|
70
70
|
}
|
|
71
71
|
function InertWhileLoading({
|
|
@@ -89,7 +89,8 @@ function LoadingItems({ count, children }) {
|
|
|
89
89
|
// src/components/ui/button/button-styles.ts
|
|
90
90
|
var buttonSurfaceClasses = {
|
|
91
91
|
accent: "bg-ods-accent text-ods-text-on-accent hover:bg-ods-accent-hover active:bg-ods-accent-active disabled:bg-ods-disabled aria-disabled:bg-ods-disabled",
|
|
92
|
-
|
|
92
|
+
// `data-tone="accent"`: the accent fill on hover (a card's "view" action).
|
|
93
|
+
outline: "bg-ods-card text-ods-text-primary hover:bg-ods-bg-hover active:bg-ods-bg-active disabled:bg-ods-card disabled:text-ods-text-disabled aria-disabled:bg-ods-card aria-disabled:text-ods-text-disabled data-[tone=accent]:hover:bg-ods-accent",
|
|
93
94
|
transparent: "bg-transparent text-ods-text-primary hover:bg-ods-bg-hover active:bg-ods-bg-active disabled:bg-transparent disabled:text-ods-text-disabled aria-disabled:bg-transparent aria-disabled:text-ods-text-disabled",
|
|
94
95
|
destructive: "bg-ods-error text-ods-text-on-accent hover:bg-ods-error-hover active:bg-ods-error-active disabled:bg-ods-disabled aria-disabled:bg-ods-disabled",
|
|
95
96
|
warning: "bg-ods-warning text-ods-text-on-accent hover:bg-ods-warning-hover active:bg-ods-warning-active disabled:bg-ods-disabled aria-disabled:bg-ods-disabled",
|
|
@@ -108,7 +109,39 @@ var buttonSurfaceClasses = {
|
|
|
108
109
|
// hover, and no surface in any state. Promoted to a variant because the
|
|
109
110
|
// disclosure toggle was a primitive <button> restating these classes. Pair
|
|
110
111
|
// with size="compact" and noPaddingX so the label aligns with the text above.
|
|
111
|
-
|
|
112
|
+
//
|
|
113
|
+
// States, from the element's attributes: `data-state="active"` holds the accent (a filter trigger with filters
|
|
114
|
+
// applied). `data-tone="neutral"` takes the primary text on hover instead of the accent (a secondary text action:
|
|
115
|
+
// "Select all", "Mark all read"); `data-tone="primary"` sits in the primary text and takes the accent on hover (a
|
|
116
|
+
// value that opens something: an info row's link, a breadcrumb).
|
|
117
|
+
link: [
|
|
118
|
+
"bg-transparent text-ods-text-secondary hover:bg-transparent hover:text-ods-accent active:bg-transparent active:text-ods-accent-active disabled:bg-transparent disabled:text-ods-text-disabled aria-disabled:bg-transparent aria-disabled:text-ods-text-disabled",
|
|
119
|
+
"data-[tone=neutral]:hover:text-ods-text-primary",
|
|
120
|
+
"data-[tone=primary]:text-ods-text-primary data-[tone=primary]:hover:text-ods-accent",
|
|
121
|
+
"data-[state=active]:text-ods-accent data-[state=active]:hover:text-ods-accent data-[tone=neutral]:data-[state=active]:hover:text-ods-accent"
|
|
122
|
+
].join(" "),
|
|
123
|
+
// A bare glyph control with no surface (a composer's send / add-context, a copy, a close, a field's clear): the
|
|
124
|
+
// secondary text, the primary on hover and keyboard focus, faded when disabled. Distinct from `transparent`, which
|
|
125
|
+
// is primary text on a hover fill. States, from the element's attributes:
|
|
126
|
+
// - `aria-expanded="true"`: its popup is open, the glyph stays lit (primary);
|
|
127
|
+
// - `data-state="active"`: the glyph is armed (the composer's send while the editor has focus), the accent;
|
|
128
|
+
// - `data-tone="accent"`: a trigger that opens and presses in the accent (the composer's add-context);
|
|
129
|
+
// - `data-tone="danger"`: a removal that takes the error colour on hover;
|
|
130
|
+
// - `data-tone="error"` / `data-tone="success"`: a glyph drawn in that colour (an error's copy, a done state),
|
|
131
|
+
// dimmed on hover;
|
|
132
|
+
// - `data-tone="field"`: a field's adornment, lit in the accent while the field (the enclosing `group`) has focus
|
|
133
|
+
// and in the error colour while it is invalid (`data-invalid` on the group).
|
|
134
|
+
bare: [
|
|
135
|
+
"bg-transparent text-ods-text-secondary outline-none hover:bg-transparent hover:text-ods-text-primary focus-visible:text-ods-text-primary active:bg-transparent",
|
|
136
|
+
"aria-expanded:text-ods-text-primary",
|
|
137
|
+
"data-[state=active]:text-ods-accent",
|
|
138
|
+
"data-[tone=accent]:aria-expanded:text-ods-accent data-[tone=accent]:active:text-ods-accent",
|
|
139
|
+
"data-[tone=danger]:hover:text-ods-error",
|
|
140
|
+
"data-[tone=error]:text-ods-error data-[tone=error]:hover:text-ods-error data-[tone=error]:hover:opacity-80",
|
|
141
|
+
"data-[tone=success]:text-ods-success data-[tone=success]:hover:text-ods-success data-[tone=success]:hover:opacity-80",
|
|
142
|
+
"data-[tone=field]:group-has-[textarea:focus]:text-ods-accent data-[tone=field]:focus-visible:text-ods-accent data-[tone=field]:group-data-[invalid]:text-ods-error",
|
|
143
|
+
"disabled:cursor-not-allowed disabled:bg-transparent disabled:opacity-40 disabled:hover:text-ods-text-secondary aria-disabled:opacity-40"
|
|
144
|
+
].join(" "),
|
|
112
145
|
// Chrome that sits ON media (video cards, image lightboxes): a scrim disc so
|
|
113
146
|
// the glyph stays legible over an arbitrary frame. Promoted to a variant
|
|
114
147
|
// because the walkthrough card, its theater and the bite cards were each
|
|
@@ -179,22 +212,62 @@ var BUTTON_KIND_CLASS = {
|
|
|
179
212
|
"h-11 rounded-[6px] md:h-12",
|
|
180
213
|
"border-ods-border bg-ods-card text-ods-text-primary text-h4 transition-colors duration-200",
|
|
181
214
|
"enabled:hover:border-ods-border-hover enabled:hover:bg-ods-bg-hover enabled:active:border-ods-border-active enabled:active:bg-ods-bg-active",
|
|
215
|
+
// Open: the accent border, held under the cursor (a hover must not read as closing it).
|
|
182
216
|
"data-[state=open]:border-ods-accent aria-expanded:border-ods-accent",
|
|
183
|
-
"data-[
|
|
217
|
+
"enabled:data-[state=open]:hover:border-ods-accent enabled:aria-expanded:hover:border-ods-accent",
|
|
218
|
+
// Selected (a choice drawn as a field, `aria-selected="true"`): the accent border on the accent's light fill,
|
|
219
|
+
// whose hover and press are the fill's own steps.
|
|
220
|
+
"aria-selected:border-ods-accent aria-selected:bg-ods-open-yellow-light",
|
|
221
|
+
"enabled:aria-selected:hover:border-ods-accent enabled:aria-selected:hover:bg-ods-open-yellow-light-hover",
|
|
222
|
+
"enabled:aria-selected:active:border-ods-accent enabled:aria-selected:active:bg-ods-open-yellow-light-action",
|
|
223
|
+
// Invalid wins over open.
|
|
224
|
+
"data-[invalid]:border-ods-error enabled:data-[invalid]:hover:border-ods-error enabled:data-[invalid]:active:border-ods-error",
|
|
225
|
+
"data-[invalid]:data-[state=open]:border-ods-error data-[invalid]:aria-expanded:border-ods-error",
|
|
226
|
+
"enabled:data-[invalid]:data-[state=open]:hover:border-ods-error enabled:data-[invalid]:aria-expanded:hover:border-ods-error",
|
|
184
227
|
"disabled:cursor-not-allowed disabled:bg-ods-bg disabled:text-ods-text-disabled disabled:[&_svg]:text-ods-text-disabled",
|
|
185
228
|
"outline-none focus-visible:border-ods-accent",
|
|
186
229
|
"[&_svg]:shrink-0"
|
|
187
230
|
].join(" "),
|
|
188
231
|
// A clickable row of a list, a menu or a navigation: full width, its content on the left, the hover and the
|
|
189
|
-
// selected surface of the list.
|
|
232
|
+
// selected surface of the list. The selected row (`data-state="active"`) takes the hover surface; a list that marks
|
|
233
|
+
// its selection differently names its look with `data-tone` (the attribute, on the row and on its skeleton):
|
|
234
|
+
// - `accent`: the accent's secondary fill, no hover surface (a chat list's open conversation);
|
|
235
|
+
// - `link`: the accent text, no surface at all (a chat rail's navigation entries);
|
|
236
|
+
// - `surface`: the raised surface, the hover still showing over it (a filter dropdown's checked option);
|
|
237
|
+
// - `muted`: the border-grey fill, held under the cursor (a timeline's current event, a docs tree's open page);
|
|
238
|
+
// - `card`: a card with its border, no hover over it; idle rows keep a transparent border (a capability list);
|
|
239
|
+
// - `framed`: every row a bordered card, the selected one with the accent border (the mobile menu's entries).
|
|
190
240
|
row: [
|
|
191
241
|
"flex w-full items-center gap-[var(--spacing-system-s)] rounded-md px-[var(--spacing-system-m)] py-[var(--spacing-system-s)] text-left",
|
|
192
242
|
"bg-transparent text-ods-text-primary text-h4 transition-colors duration-150",
|
|
193
|
-
"hover:bg-ods-bg-hover active:bg-ods-bg-active data-[state=active]:bg-ods-bg-
|
|
243
|
+
"hover:bg-ods-bg-hover active:bg-ods-bg-active data-[state=active]:bg-ods-bg-hover",
|
|
244
|
+
"data-[tone=accent]:hover:bg-transparent data-[tone=accent]:active:bg-transparent",
|
|
245
|
+
"data-[tone=accent]:data-[state=active]:bg-ods-accent-secondary data-[tone=accent]:data-[state=active]:hover:bg-ods-accent-secondary data-[tone=accent]:data-[state=active]:active:bg-ods-accent-secondary",
|
|
246
|
+
"data-[tone=link]:hover:bg-transparent data-[tone=link]:active:bg-transparent data-[tone=link]:data-[state=active]:bg-transparent data-[tone=link]:data-[state=active]:text-ods-accent",
|
|
247
|
+
"data-[tone=surface]:data-[state=active]:bg-ods-bg-surface data-[tone=surface]:data-[state=active]:hover:bg-ods-bg-hover",
|
|
248
|
+
"data-[tone=muted]:data-[state=active]:bg-ods-border",
|
|
249
|
+
"data-[tone=card]:border data-[tone=card]:border-transparent data-[tone=card]:data-[state=active]:border-ods-border data-[tone=card]:data-[state=active]:bg-ods-card",
|
|
250
|
+
"data-[tone=framed]:border data-[tone=framed]:border-ods-border data-[tone=framed]:bg-ods-card data-[tone=framed]:data-[state=active]:border-ods-accent data-[tone=framed]:data-[state=active]:bg-ods-card data-[tone=framed]:data-[state=active]:hover:bg-ods-bg-hover",
|
|
194
251
|
"disabled:cursor-not-allowed disabled:text-ods-text-disabled disabled:hover:bg-transparent",
|
|
195
252
|
KIND_FOCUS_INSET,
|
|
196
253
|
"[&_svg]:shrink-0"
|
|
197
254
|
].join(" "),
|
|
255
|
+
// A navigation rail's entry (the app sidebar): the row's box with the rail's two layers. The hover is a wash on its
|
|
256
|
+
// own layer (`::after`), so it can fade while the current page switches in a single frame: the current page's entry
|
|
257
|
+
// (`data-state="active"`) takes the accent's light fill, the accent text and glyphs and the accent bar on its leading
|
|
258
|
+
// edge (`::before`). An entry whose route is still committing (`aria-busy="true"`) holds the hover wash and nothing
|
|
259
|
+
// else.
|
|
260
|
+
rail: [
|
|
261
|
+
"relative isolate flex w-full items-center justify-start gap-[var(--spacing-system-s)] px-[var(--spacing-system-m)] py-[var(--spacing-system-s)] text-left",
|
|
262
|
+
"bg-transparent text-ods-text-primary text-h4 [&_svg]:fill-ods-text-secondary",
|
|
263
|
+
"after:pointer-events-none after:absolute after:inset-0 after:-z-10 after:bg-ods-bg-hover after:opacity-0 after:transition-opacity after:duration-150 after:content-['']",
|
|
264
|
+
"before:absolute before:bottom-0 before:left-0 before:top-0 before:w-1 before:content-['']",
|
|
265
|
+
"hover:after:opacity-100 aria-busy:after:opacity-100",
|
|
266
|
+
"data-[state=active]:bg-ods-open-yellow-light data-[state=active]:text-ods-accent data-[state=active]:[&_svg]:fill-ods-accent data-[state=active]:before:bg-ods-accent data-[state=active]:after:opacity-0",
|
|
267
|
+
"disabled:cursor-not-allowed disabled:text-ods-text-secondary disabled:opacity-50 disabled:after:opacity-0",
|
|
268
|
+
KIND_FOCUS_INSET,
|
|
269
|
+
"[&_svg]:shrink-0"
|
|
270
|
+
].join(" "),
|
|
198
271
|
// A tab of a tab strip or a tab list: secondary until it is the open one. A strip that marks its open and hovered
|
|
199
272
|
// tab with the accent fade (the admin strip) says so on each tab with `data-emphasis="fade"`. ODS colour vars hold
|
|
200
273
|
// hex values, so a Tailwind alpha modifier would produce no CSS; color-mix() derives the 10% stop from the token.
|
|
@@ -208,12 +281,29 @@ var BUTTON_KIND_CLASS = {
|
|
|
208
281
|
KIND_FOCUS_INSET,
|
|
209
282
|
"[&_svg]:shrink-0"
|
|
210
283
|
].join(" "),
|
|
284
|
+
// A segment of a segmented control (`TabSelector`): the label on the strip, a hover fill, and the selected segment
|
|
285
|
+
// (`data-state="active"`) filled with the raised surface; `data-tone="accent"` fills it with the accent instead. A
|
|
286
|
+
// disabled selected segment keeps the raised surface with secondary text.
|
|
287
|
+
segment: [
|
|
288
|
+
"flex items-center justify-center gap-[var(--spacing-system-xs)] whitespace-nowrap rounded-xs p-[var(--spacing-system-xsf)]",
|
|
289
|
+
"bg-transparent text-ods-text-primary text-h4 transition-colors duration-200",
|
|
290
|
+
"hover:bg-ods-bg-hover",
|
|
291
|
+
"data-[state=active]:cursor-default data-[state=active]:bg-ods-bg-surface data-[state=active]:text-ods-text-primary data-[state=active]:hover:bg-ods-bg-surface",
|
|
292
|
+
"data-[tone=accent]:data-[state=active]:bg-ods-accent data-[tone=accent]:data-[state=active]:text-ods-text-on-accent data-[tone=accent]:data-[state=active]:hover:bg-ods-accent",
|
|
293
|
+
"disabled:cursor-not-allowed disabled:bg-transparent disabled:text-ods-text-secondary disabled:hover:bg-transparent",
|
|
294
|
+
"disabled:data-[state=active]:bg-ods-bg-surface disabled:data-[state=active]:text-ods-text-secondary disabled:data-[state=active]:hover:bg-ods-bg-surface",
|
|
295
|
+
"disabled:data-[tone=accent]:data-[state=active]:bg-ods-bg-surface disabled:data-[tone=accent]:data-[state=active]:text-ods-text-secondary disabled:data-[tone=accent]:data-[state=active]:hover:bg-ods-bg-surface",
|
|
296
|
+
KIND_FOCUS_INSET,
|
|
297
|
+
"[&_svg]:shrink-0"
|
|
298
|
+
].join(" "),
|
|
211
299
|
// A choice drawn as a pill (a filter, a quick question, an answer option): bordered, the accent when picked.
|
|
212
300
|
chip: [
|
|
213
301
|
"inline-flex h-8 items-center gap-[var(--spacing-system-xxs)] rounded-full border px-[var(--spacing-system-sf)]",
|
|
214
302
|
"border-ods-border bg-ods-card text-ods-text-primary text-h6 transition-colors duration-200",
|
|
215
303
|
"hover:border-ods-border-hover hover:bg-ods-bg-hover",
|
|
216
304
|
"aria-pressed:border-ods-accent data-[state=active]:border-ods-accent",
|
|
305
|
+
// `data-tone="accent"`: a pill that links somewhere takes the accent border on hover (a vendor pill).
|
|
306
|
+
"data-[tone=accent]:hover:border-ods-accent",
|
|
217
307
|
"disabled:cursor-not-allowed disabled:text-ods-text-disabled disabled:hover:bg-ods-card",
|
|
218
308
|
KIND_FOCUS,
|
|
219
309
|
"[&_svg]:h-4 [&_svg]:w-4 [&_svg]:shrink-0"
|
|
@@ -222,11 +312,13 @@ var BUTTON_KIND_CLASS = {
|
|
|
222
312
|
// content is the look; the button gives it the click, the keyboard and the focus ring.
|
|
223
313
|
card: ["relative block w-full rounded-md text-left text-ods-text-primary", KIND_FOCUS].join(" "),
|
|
224
314
|
// A cell of a bar (a header's or a chat's top bar): the bar's full height, an icon or a short label, secondary
|
|
225
|
-
// until hovered
|
|
315
|
+
// until hovered. The current cell (`data-state="active"`: the header's open section) takes the pressed surface and
|
|
316
|
+
// the primary text.
|
|
226
317
|
cell: [
|
|
227
318
|
"flex h-full shrink-0 items-center justify-center gap-[var(--spacing-system-xsf)] px-[var(--spacing-system-m)]",
|
|
228
319
|
"bg-transparent text-ods-text-secondary text-h4 transition-colors duration-200",
|
|
229
|
-
"hover:bg-ods-bg-hover hover:text-ods-text-primary aria-
|
|
320
|
+
"hover:bg-ods-bg-hover hover:text-ods-text-primary aria-expanded:text-ods-text-primary",
|
|
321
|
+
"data-[state=active]:bg-ods-bg-active data-[state=active]:text-ods-text-primary",
|
|
230
322
|
KIND_FOCUS_INSET,
|
|
231
323
|
"[&_svg]:h-6 [&_svg]:w-6 [&_svg]:shrink-0"
|
|
232
324
|
].join(" ")
|