@flamingo-stack/openframe-frontend-core 0.0.781 → 0.0.783
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-RJX33Y4Q.cjs → chunk-3INHO6GP.cjs} +22 -22
- package/dist/{chunk-TH5X2BXK.cjs → chunk-3PKORICR.cjs} +115 -115
- 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-HLZUBJPL.cjs → chunk-62TMGBRO.cjs} +197 -197
- package/dist/{chunk-B6EQVH7D.cjs → chunk-6NEWJ6I2.cjs} +51 -51
- package/dist/{chunk-FWJ5YECN.cjs → chunk-7OJMOG34.cjs} +546 -544
- package/dist/{chunk-63OCO2G5.cjs → chunk-A3UZFFR3.cjs} +4 -4
- package/dist/{chunk-XHJI7R4J.cjs → chunk-AFSVWR3X.cjs} +46 -46
- package/dist/{chunk-LDGR5VCK.cjs → chunk-APO7GMZQ.cjs} +4 -4
- package/dist/{chunk-PID7LUDP.cjs → chunk-BAJB3JF3.cjs} +31 -31
- package/dist/{chunk-T7SDYBST.cjs → chunk-BE4OUWTA.cjs} +54 -54
- 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-X6TXMWBV.cjs → chunk-H3RHAN6B.cjs} +61 -61
- package/dist/{chunk-HPGCUYAZ.cjs → chunk-KRXHRL3W.cjs} +110 -110
- package/dist/{chunk-D46WFWWI.cjs → chunk-LGISRUGF.cjs} +41 -39
- package/dist/{chunk-2OYKOHFK.cjs → chunk-LUWYWYNC.cjs} +2 -2
- 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-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-OFX6XEVN.cjs → chunk-PQSTPJQQ.cjs} +13 -13
- package/dist/{chunk-YKJ4JN6T.cjs → chunk-RL45AU2C.cjs} +42 -42
- package/dist/{chunk-DIY4SJZI.cjs → chunk-RT6QATX4.cjs} +19 -19
- package/dist/{chunk-ODZ5XGWA.cjs → chunk-THOGSAFH.cjs} +2076 -2052
- package/dist/{chunk-UONQCE5N.cjs → chunk-TS6TISIF.cjs} +209 -208
- package/dist/{chunk-SMEX3BWO.cjs → chunk-UPQMFK5B.cjs} +7 -7
- package/dist/{chunk-5PBWAF2D.cjs → chunk-URFAMWCA.cjs} +44 -44
- package/dist/{chunk-VDTLVFCV.cjs → chunk-WHNI4QTG.cjs} +13 -13
- package/dist/{chunk-EYNQE2XN.cjs → chunk-WS7IDGEL.cjs} +6 -6
- package/dist/{chunk-QD7SKYCQ.cjs → chunk-WSBWP7IW.cjs} +3 -3
- package/dist/{chunk-RYIWADIB.cjs → chunk-XAA5LUHC.cjs} +12 -12
- package/dist/{chunk-XYKVOBIP.cjs → chunk-XKDJ5ISQ.cjs} +3 -3
- package/dist/{chunk-A7FSNBNV.cjs → chunk-YU23M33V.cjs} +173 -172
- 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-QYW3MPPP.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/embeddable-chat.js +120 -98
- 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-DMMMEO2B.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-OSSPL7L4.cjs} +226 -204
- package/dist/hooks/index.cjs +10 -10
- package/dist/index.cjs +48 -48
- package/dist/{knowledge-A5KJ4CAD.cjs → knowledge-XQQXVV6C.cjs} +33 -33
- package/dist/{logs-6WRBPIMM.cjs → logs-BHKMDCBP.cjs} +41 -41
- package/dist/{policies-ICRXHW3H.cjs → policies-5IY7QUED.cjs} +36 -36
- package/dist/{remote-session-MEV5JL2Z.cjs → remote-session-IEOWFBF7.cjs} +17 -17
- package/dist/{scripts-AZVCZE6C.cjs → scripts-ZQXRBGVK.cjs} +39 -39
- package/dist/{software-update-4ZBCGJGA.cjs → software-update-RGFRYL3N.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/embeddable-chat.tsx +21 -4
- 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
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunk62TMGBROcjs = require('./chunk-62TMGBRO.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _chunkE2ZZOYSMcjs = require('./chunk-E2ZZOYSM.cjs');
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
@@ -18,15 +18,15 @@ var _chunkOJZBZH56cjs = require('./chunk-OJZBZH56.cjs');
|
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
var
|
|
21
|
+
var _chunkNNNRN4OFcjs = require('./chunk-NNNRN4OF.cjs');
|
|
22
22
|
|
|
23
23
|
|
|
24
|
-
var
|
|
24
|
+
var _chunkFLS6DZENcjs = require('./chunk-FLS6DZEN.cjs');
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
|
|
29
|
-
var
|
|
29
|
+
var _chunkMGEUZRNQcjs = require('./chunk-MGEUZRNQ.cjs');
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
var _chunkV45KLJQPcjs = require('./chunk-V45KLJQP.cjs');
|
|
@@ -41,14 +41,14 @@ var HORIZONTAL_NAV_CLASS = "flex items-stretch gap-6 bg-ods-bg";
|
|
|
41
41
|
var HORIZONTAL_BRAND_CLASS = "hidden shrink-0 items-center gap-2.5 border-r border-ods-border pr-6 text-ods-text-primary text-h4 content-lg:flex";
|
|
42
42
|
var HORIZONTAL_ROW_CLASS = "flex h-full items-center gap-1 [scrollbar-width:none] content-lg:items-stretch";
|
|
43
43
|
var HORIZONTAL_ACTION_CLASS = "hidden shrink-0 items-center content-lg:flex";
|
|
44
|
-
var PILL_CLASS =
|
|
44
|
+
var PILL_CLASS = _chunkMGEUZRNQcjs.cn.call(void 0,
|
|
45
45
|
"flex shrink-0 items-center whitespace-nowrap rounded-full border px-3 py-1.5 text-h6",
|
|
46
46
|
"content-lg:rounded-none content-lg:border-x-0 content-lg:border-b-2 content-lg:border-t-0 content-lg:py-0"
|
|
47
47
|
);
|
|
48
48
|
var VERTICAL_NAV_CLASS = "relative bg-ods-bg";
|
|
49
49
|
var VERTICAL_ROW_CLASS = "relative flex h-10 w-full items-stretch transition-all duration-200";
|
|
50
50
|
var VERTICAL_BUTTON_LAYOUT_CLASS = "flex-1 justify-start";
|
|
51
|
-
var VERTICAL_BUTTON_SKELETON_CLASS =
|
|
51
|
+
var VERTICAL_BUTTON_SKELETON_CLASS = _chunkMGEUZRNQcjs.cn.call(void 0, _chunkMGEUZRNQcjs.BUTTON_KIND_CLASS.tab, VERTICAL_BUTTON_LAYOUT_CLASS);
|
|
52
52
|
function HorizontalSectionNav({
|
|
53
53
|
sections,
|
|
54
54
|
activeSection,
|
|
@@ -73,10 +73,10 @@ function HorizontalSectionNav({
|
|
|
73
73
|
{
|
|
74
74
|
ref: navRef,
|
|
75
75
|
"aria-label": label,
|
|
76
|
-
className:
|
|
76
|
+
className: _chunkMGEUZRNQcjs.cn.call(void 0, HORIZONTAL_NAV_CLASS, STICKY_SECTION_NAV_HEIGHT_CLASS, className),
|
|
77
77
|
children: [
|
|
78
78
|
brand && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: HORIZONTAL_BRAND_CLASS, children: brand }),
|
|
79
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
79
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkE2ZZOYSMcjs.ScrollShadow, { axis: "horizontal", className: "min-w-0 flex-1", scrollClassName: HORIZONTAL_ROW_CLASS, children: sections.map((section) => {
|
|
80
80
|
const active = activeSection === section.id;
|
|
81
81
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
82
82
|
_chunkV45KLJQPcjs.next_link_default,
|
|
@@ -88,7 +88,7 @@ function HorizontalSectionNav({
|
|
|
88
88
|
event.preventDefault();
|
|
89
89
|
onSectionClick(section.id);
|
|
90
90
|
},
|
|
91
|
-
className:
|
|
91
|
+
className: _chunkMGEUZRNQcjs.cn.call(void 0,
|
|
92
92
|
PILL_CLASS,
|
|
93
93
|
"transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ods-accent",
|
|
94
94
|
active ? "border-ods-border bg-ods-card text-ods-text-primary content-lg:border-ods-accent content-lg:bg-transparent content-lg:bg-gradient-to-b content-lg:from-transparent content-lg:to-ods-accent/10" : "border-transparent text-ods-text-secondary hover:text-ods-text-primary content-lg:hover:bg-ods-bg-hover"
|
|
@@ -115,7 +115,7 @@ function StickySectionNav({
|
|
|
115
115
|
action,
|
|
116
116
|
label
|
|
117
117
|
}) {
|
|
118
|
-
if (
|
|
118
|
+
if (_chunkMGEUZRNQcjs.useLoadingScope.call(void 0, ) && sections.length === 0) {
|
|
119
119
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
120
120
|
StickySectionNavSkeleton,
|
|
121
121
|
{
|
|
@@ -142,7 +142,7 @@ function StickySectionNav({
|
|
|
142
142
|
);
|
|
143
143
|
}
|
|
144
144
|
const navHeight = sections.length * 40;
|
|
145
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "nav", { "aria-label": label, className:
|
|
145
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "nav", { "aria-label": label, className: _chunkMGEUZRNQcjs.cn.call(void 0, VERTICAL_NAV_CLASS, className), children: [
|
|
146
146
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
147
147
|
"div",
|
|
148
148
|
{
|
|
@@ -171,7 +171,7 @@ function StickySectionNav({
|
|
|
171
171
|
}
|
|
172
172
|
),
|
|
173
173
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
174
|
-
|
|
174
|
+
_chunkFLS6DZENcjs.Button,
|
|
175
175
|
{
|
|
176
176
|
variant: "tab",
|
|
177
177
|
onClick: () => onSectionClick(section.id),
|
|
@@ -195,16 +195,16 @@ function StickySectionNavSkeleton({
|
|
|
195
195
|
}) {
|
|
196
196
|
const widths = Array.from({ length: count }, (_, i) => SKELETON_LABEL_WIDTHS[i % SKELETON_LABEL_WIDTHS.length]);
|
|
197
197
|
if (orientation === "horizontal") {
|
|
198
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
198
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkMGEUZRNQcjs.cn.call(void 0, HORIZONTAL_NAV_CLASS, STICKY_SECTION_NAV_HEIGHT_CLASS, className), "aria-hidden": true, inert: true, children: [
|
|
199
199
|
brand && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: HORIZONTAL_BRAND_CLASS, children: brand }),
|
|
200
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
200
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkMGEUZRNQcjs.cn.call(void 0, "min-w-0 flex-1 overflow-hidden", HORIZONTAL_ROW_CLASS, "content-lg:items-center"), children: widths.map((width, i) => (
|
|
201
201
|
// The pill's own box (a tab from the content `lg` step), its label a bar.
|
|
202
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
202
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkMGEUZRNQcjs.cn.call(void 0, PILL_CLASS, "border-transparent"), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNNNRN4OFcjs.TextLineSkeleton, { type: "h6", className: width }) }, i)
|
|
203
203
|
)) }),
|
|
204
204
|
action && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: HORIZONTAL_ACTION_CLASS, children: action })
|
|
205
205
|
] });
|
|
206
206
|
}
|
|
207
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className:
|
|
207
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkMGEUZRNQcjs.cn.call(void 0, VERTICAL_NAV_CLASS, className), "aria-hidden": true, children: [
|
|
208
208
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
209
209
|
"div",
|
|
210
210
|
{
|
|
@@ -217,7 +217,7 @@ function StickySectionNavSkeleton({
|
|
|
217
217
|
}
|
|
218
218
|
}
|
|
219
219
|
),
|
|
220
|
-
widths.map((width, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: VERTICAL_ROW_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: VERTICAL_BUTTON_SKELETON_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
220
|
+
widths.map((width, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: VERTICAL_ROW_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: VERTICAL_BUTTON_SKELETON_CLASS, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNNNRN4OFcjs.TextLineSkeleton, { type: "h6", className: width }) }) }, i))
|
|
221
221
|
] });
|
|
222
222
|
}
|
|
223
223
|
function useSectionNavigation(sections, options) {
|
|
@@ -396,7 +396,7 @@ function useScrollSpy(sections, options = {}) {
|
|
|
396
396
|
// src/components/navigation/multi-level-navigation.tsx
|
|
397
397
|
var _lucidereact = require('lucide-react');
|
|
398
398
|
|
|
399
|
-
var DEFAULT_FOLDER_INDEX_FILE2 =
|
|
399
|
+
var DEFAULT_FOLDER_INDEX_FILE2 = _chunk62TMGBROcjs.DEFAULT_FOLDER_INDEX_FILE;
|
|
400
400
|
var NAV_LIST_CLASS = "space-y-2";
|
|
401
401
|
var NAV_ITEM_CLASS = "space-y-1";
|
|
402
402
|
var NAV_ROW_FRAME_CLASS = "relative w-full rounded-lg border transition-all duration-150";
|
|
@@ -416,9 +416,9 @@ function NavigationRowSkeleton({
|
|
|
416
416
|
rowHeightClass,
|
|
417
417
|
indentClass
|
|
418
418
|
}) {
|
|
419
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
420
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
421
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
419
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkMGEUZRNQcjs.cn.call(void 0, NAV_ROW_PAD_CLASS, indentClass), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkMGEUZRNQcjs.cn.call(void 0, NAV_ROW_FRAME_CLASS, "border-ods-border bg-ods-card"), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: _chunkMGEUZRNQcjs.cn.call(void 0, _chunkMGEUZRNQcjs.BUTTON_KIND_CLASS.row, rowHeightClass), children: [
|
|
420
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNNNRN4OFcjs.MediaSkeleton.Icon, { size: "sm", className: "mr-2 flex-shrink-0" }),
|
|
421
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNNNRN4OFcjs.TextLineSkeleton, { type: "h6", className: NAV_SKELETON_LABEL_WIDTHS[index % NAV_SKELETON_LABEL_WIDTHS.length] })
|
|
422
422
|
] }) }) });
|
|
423
423
|
}
|
|
424
424
|
function NavigationTreeSkeleton({
|
|
@@ -427,7 +427,7 @@ function NavigationTreeSkeleton({
|
|
|
427
427
|
indentClass,
|
|
428
428
|
className
|
|
429
429
|
}) {
|
|
430
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
430
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkMGEUZRNQcjs.cn.call(void 0, NAV_LIST_CLASS, className), "aria-hidden": true, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: NAV_ITEM_CLASS, "data-loading-item": true, children: [
|
|
431
431
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, NavigationRowSkeleton, { index: 0, rowHeightClass }),
|
|
432
432
|
rows > 1 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: NAV_CHILDREN_CLASS, children: Array.from({ length: rows - 1 }, (_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: NAV_ITEM_CLASS, "data-loading-item": true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, NavigationRowSkeleton, { index: i + 1, rowHeightClass, indentClass }) }, i)) })
|
|
433
433
|
] }) });
|
|
@@ -485,8 +485,8 @@ function MultiLevelNavigation({
|
|
|
485
485
|
className,
|
|
486
486
|
folderIndexFile = DEFAULT_FOLDER_INDEX_FILE2
|
|
487
487
|
}) {
|
|
488
|
-
if (
|
|
489
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
488
|
+
if (_chunkMGEUZRNQcjs.useLoadingScope.call(void 0, ) || isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MultiLevelNavigationSkeleton, { className });
|
|
489
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkMGEUZRNQcjs.cn.call(void 0, NAV_LIST_CLASS, className), role: "list", "aria-label": "Navigation list", children: nodes.map((node) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
490
490
|
NavigationItem,
|
|
491
491
|
{
|
|
492
492
|
node,
|
|
@@ -514,21 +514,22 @@ function NavigationItem({
|
|
|
514
514
|
const children = _nullishCoalesce(node.children, () => ( []));
|
|
515
515
|
const hasChildren = children.length > 0;
|
|
516
516
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: NAV_ITEM_CLASS, role: "listitem", "data-loading-item": true, children: [
|
|
517
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
517
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkMGEUZRNQcjs.cn.call(void 0, NAV_ROW_PAD_CLASS, level > 0 && NAV_INDENT_CLASS.desktop), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
518
518
|
"div",
|
|
519
519
|
{
|
|
520
|
-
className:
|
|
520
|
+
className: _chunkMGEUZRNQcjs.cn.call(void 0,
|
|
521
521
|
NAV_ROW_FRAME_CLASS,
|
|
522
522
|
isSelected ? "border-ods-border bg-ods-border" : "border-ods-border bg-ods-card"
|
|
523
523
|
),
|
|
524
524
|
children: [
|
|
525
525
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative flex items-center", children: [
|
|
526
526
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
527
|
-
|
|
527
|
+
_chunkFLS6DZENcjs.Button,
|
|
528
528
|
{
|
|
529
529
|
variant: "row",
|
|
530
530
|
"data-state": isSelected ? "active" : void 0,
|
|
531
|
-
|
|
531
|
+
"data-tone": "muted",
|
|
532
|
+
className: _chunkMGEUZRNQcjs.cn.call(void 0, NAV_ROW_LAYOUT_CLASS, NAV_ROW_HEIGHT.desktop),
|
|
532
533
|
onClick: () => onNodeClick(node),
|
|
533
534
|
"aria-label": `${isSelected ? "Selected" : "Select"} ${node.name}`,
|
|
534
535
|
children: [
|
|
@@ -539,9 +540,9 @@ function NavigationItem({
|
|
|
539
540
|
}
|
|
540
541
|
),
|
|
541
542
|
hasChildren && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
542
|
-
|
|
543
|
+
_chunkFLS6DZENcjs.Button,
|
|
543
544
|
{
|
|
544
|
-
variant: "
|
|
545
|
+
variant: "bare",
|
|
545
546
|
size: "icon-sm",
|
|
546
547
|
className: "mr-[var(--spacing-system-xxs)] shrink-0",
|
|
547
548
|
onClick: (e) => {
|
|
@@ -586,8 +587,8 @@ function MobileNavigationDropdown({
|
|
|
586
587
|
className,
|
|
587
588
|
folderIndexFile = DEFAULT_FOLDER_INDEX_FILE2
|
|
588
589
|
}) {
|
|
589
|
-
if (
|
|
590
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
590
|
+
if (_chunkMGEUZRNQcjs.useLoadingScope.call(void 0, ) || isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MobileNavigationDropdownSkeleton, { className });
|
|
591
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkMGEUZRNQcjs.cn.call(void 0, NAV_LIST_CLASS, className), children: nodes.map((node) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
591
592
|
MobileNavigationItem,
|
|
592
593
|
{
|
|
593
594
|
node,
|
|
@@ -615,21 +616,22 @@ function MobileNavigationItem({
|
|
|
615
616
|
const children = _nullishCoalesce(node.children, () => ( []));
|
|
616
617
|
const hasChildren = children.length > 0;
|
|
617
618
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: NAV_ITEM_CLASS, "data-loading-item": true, children: [
|
|
618
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className:
|
|
619
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: _chunkMGEUZRNQcjs.cn.call(void 0, NAV_ROW_PAD_CLASS, level > 0 && NAV_INDENT_CLASS.mobile), children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
619
620
|
"div",
|
|
620
621
|
{
|
|
621
|
-
className:
|
|
622
|
+
className: _chunkMGEUZRNQcjs.cn.call(void 0,
|
|
622
623
|
NAV_ROW_FRAME_CLASS,
|
|
623
624
|
isSelected ? "border-ods-border bg-ods-border" : "border-ods-border bg-ods-card"
|
|
624
625
|
),
|
|
625
626
|
children: [
|
|
626
627
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "relative flex items-center", children: [
|
|
627
628
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
628
|
-
|
|
629
|
+
_chunkFLS6DZENcjs.Button,
|
|
629
630
|
{
|
|
630
631
|
variant: "row",
|
|
631
632
|
"data-state": isSelected ? "active" : void 0,
|
|
632
|
-
|
|
633
|
+
"data-tone": "muted",
|
|
634
|
+
className: _chunkMGEUZRNQcjs.cn.call(void 0, NAV_ROW_LAYOUT_CLASS, NAV_ROW_HEIGHT.mobile),
|
|
633
635
|
onClick: () => onNodeClick(node),
|
|
634
636
|
children: [
|
|
635
637
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "mr-2 flex-shrink-0", children: node.type === "folder" ? isExpanded ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.FolderOpen, { className: "h-4 w-4" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Folder, { className: "h-4 w-4" }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.FileText, { className: "h-4 w-4" }) }),
|
|
@@ -639,9 +641,9 @@ function MobileNavigationItem({
|
|
|
639
641
|
}
|
|
640
642
|
),
|
|
641
643
|
hasChildren && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
642
|
-
|
|
644
|
+
_chunkFLS6DZENcjs.Button,
|
|
643
645
|
{
|
|
644
|
-
variant: "
|
|
646
|
+
variant: "bare",
|
|
645
647
|
size: "icon-sm",
|
|
646
648
|
className: "mr-[var(--spacing-system-xxs)] shrink-0",
|
|
647
649
|
onClick: (e) => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkCS5SZJFVcjs = require('./chunk-CS5SZJFV.cjs');
|
|
5
5
|
|
|
6
6
|
// src/components/tool-icon.tsx
|
|
7
7
|
var _react = require('react');
|
|
@@ -12,7 +12,7 @@ function toolIcon(toolType) {
|
|
|
12
12
|
const words = toolType.toLowerCase().split("_").filter(Boolean);
|
|
13
13
|
let icon = null;
|
|
14
14
|
for (let count = words.length; count >= 1 && !icon; count -= 1) {
|
|
15
|
-
icon =
|
|
15
|
+
icon = _chunkCS5SZJFVcjs.findIcon.call(void 0, `${words.slice(0, count).join("-")}-logo-grey`);
|
|
16
16
|
}
|
|
17
17
|
TOOL_ICONS.set(toolType, icon);
|
|
18
18
|
return icon;
|
|
@@ -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(" ")
|