@the-portland-company/shell 0.88.0 → 0.89.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/README.md +8 -3
- package/dist/app-chrome.cjs.map +1 -1
- package/dist/app-chrome.d.cts +1 -1
- package/dist/app-chrome.d.ts +1 -1
- package/dist/app-chrome.js +3 -3
- package/dist/chrome.css +20 -0
- package/dist/{chunk-7WSGW5CC.js → chunk-J23MTK56.js} +175 -20
- package/dist/chunk-J23MTK56.js.map +1 -0
- package/dist/{chunk-2ACN7HQC.js → chunk-SJDFAK5R.js} +3 -3
- package/dist/{chunk-2ACN7HQC.js.map → chunk-SJDFAK5R.js.map} +1 -1
- package/dist/{index-tfcLFAni.d.cts → index-CZylXAP4.d.cts} +81 -6
- package/dist/{index-DEiOABW2.d.ts → index-DwkSyAip.d.ts} +81 -6
- package/dist/index.cjs +175 -18
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/native.cjs +175 -18
- package/dist/native.cjs.map +1 -1
- package/dist/native.d.cts +1 -1
- package/dist/native.d.ts +1 -1
- package/dist/native.js +2 -2
- package/eslint/index.cjs +15 -2
- package/package.json +1 -1
- package/dist/chunk-7WSGW5CC.js.map +0 -1
package/dist/app-chrome.d.cts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { ReactNode } from 'react';
|
|
3
|
-
import {
|
|
3
|
+
import { v as StandardNavIconKey, w as NavIcon, N as NavItem, x as NavBreadcrumb, y as StandardNavMode, z as NavLinkComponent, A as NavChromeFetcher, D as NavMode, E as NavUserMenu, G as NavOrgOption, o as NotificationsAdapter, J as NavFooterLink, K as NavFooter, L as NavDisplayMode } from './index-CZylXAP4.cjs';
|
|
4
4
|
import './theme-preference.cjs';
|
|
5
5
|
|
|
6
6
|
/**
|
package/dist/app-chrome.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { ReactNode } from 'react';
|
|
3
|
-
import {
|
|
3
|
+
import { v as StandardNavIconKey, w as NavIcon, N as NavItem, x as NavBreadcrumb, y as StandardNavMode, z as NavLinkComponent, A as NavChromeFetcher, D as NavMode, E as NavUserMenu, G as NavOrgOption, o as NotificationsAdapter, J as NavFooterLink, K as NavFooter, L as NavDisplayMode } from './index-DwkSyAip.js';
|
|
4
4
|
import './theme-preference.js';
|
|
5
5
|
|
|
6
6
|
/**
|
package/dist/app-chrome.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { broadcastLogout, watchLogout } from './chunk-LL6LSJAH.js';
|
|
3
3
|
import { writeUrlState } from './chunk-GVQKZI5X.js';
|
|
4
|
-
import { clearBetaBannerDismissal, standardPolitogyNav, standardNavIcons, isNavItemActive, NavAppShell } from './chunk-
|
|
5
|
-
export { standardNavIcons } from './chunk-
|
|
6
|
-
import { warnDeprecated, NavChromeProvider, TopBarWidgetSlot, FuelAction, SpecOverlayAction, NotificationsAction, SupportAction, useChromeMe, useNavChromeDedupedFetch, useChromeOrgs, useNavChromeFetcher } from './chunk-
|
|
4
|
+
import { clearBetaBannerDismissal, standardPolitogyNav, standardNavIcons, isNavItemActive, NavAppShell } from './chunk-SJDFAK5R.js';
|
|
5
|
+
export { standardNavIcons } from './chunk-SJDFAK5R.js';
|
|
6
|
+
import { warnDeprecated, NavChromeProvider, TopBarWidgetSlot, FuelAction, SpecOverlayAction, NotificationsAction, SupportAction, useChromeMe, useNavChromeDedupedFetch, useChromeOrgs, useNavChromeFetcher } from './chunk-J23MTK56.js';
|
|
7
7
|
import './chunk-BHRVZPZ7.js';
|
|
8
8
|
import { NAV_DISPLAY_DEFAULT, resolveNavDisplay, writeNavDisplayLocal, writeNavDisplayCookie, isNavDisplayPreference, NAV_DISPLAY_STORAGE_KEY, readNavDisplayCookie } from './chunk-7YVJ7HQG.js';
|
|
9
9
|
import { authBaseUrl, orgIdTail, settingsBaseUrl, ORG_ID_QUERY_PARAM, readOrgSelectorFromUrl, matchOrgSelector, syncOrgIdInUrl, isOrgId, switchActiveOrg, ACTIVE_ORG_QUERY_PARAM, writeActiveOrgCookie, resolveActiveOrg, readActiveOrgCookie } from './chunk-5LO5W7W5.js';
|
package/dist/chrome.css
CHANGED
|
@@ -599,3 +599,23 @@
|
|
|
599
599
|
box-shadow: none !important;
|
|
600
600
|
}
|
|
601
601
|
|
|
602
|
+
|
|
603
|
+
/* ---- Card + Checkbox surface tokens (shell 0.89.0) ---------------------
|
|
604
|
+
* `Card` and `Checkbox` read these so they follow the theme. Light values are
|
|
605
|
+
* the Brand "Card" white, G3 border, graphite text; the muted text is #5C6B80
|
|
606
|
+
* (5.9:1 on white) rather than --color-g4, which is 3.0:1 on white and fails AA.
|
|
607
|
+
* Dark values are the neutral-black ramp (theme/colors.ts `neutral`): surface
|
|
608
|
+
* #161616, border #333333, text #E8E8E8, muted #A3A3A3 (6.9:1 on the surface).
|
|
609
|
+
* `applyThemePreference` puts `.dark` on <html>. The Brand stylesheet's `.dark {}` may override any of them. */
|
|
610
|
+
:root {
|
|
611
|
+
--app-card-bg: #FFFFFF;
|
|
612
|
+
--app-card-border: #D7DADF;
|
|
613
|
+
--app-card-fg: #2F3136;
|
|
614
|
+
--app-card-fg-muted: #5C6B80;
|
|
615
|
+
}
|
|
616
|
+
.dark {
|
|
617
|
+
--app-card-bg: #161616;
|
|
618
|
+
--app-card-border: #333333;
|
|
619
|
+
--app-card-fg: #E8E8E8;
|
|
620
|
+
--app-card-fg-muted: #A3A3A3;
|
|
621
|
+
}
|
|
@@ -1,33 +1,76 @@
|
|
|
1
1
|
import { readThemeCookie, THEME_STORAGE_KEY, isThemePreference, applyThemePreference, readPendingThemeChoice, writeThemeCookie, clearPendingThemeChoice, markThemeChoicePending } from './chunk-BHRVZPZ7.js';
|
|
2
|
+
import clsx from 'clsx';
|
|
2
3
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
3
|
-
import
|
|
4
|
-
import { forwardRef, useId, createContext, useState, useEffect, useRef, useContext, useMemo, useCallback, useSyncExternalStore } from 'react';
|
|
4
|
+
import { forwardRef, useId, useRef, useCallback, useEffect, createContext, useState, useContext, useMemo, useSyncExternalStore } from 'react';
|
|
5
5
|
import { FiUser, FiSettings, FiMessageSquare, FiMail, FiInfo, FiSun, FiMoon, FiHelpCircle, FiLifeBuoy, FiAlertCircle, FiAlertTriangle, FiBell, FiGrid, FiZap, FiBatteryCharging, FiBattery } from 'react-icons/fi';
|
|
6
6
|
import { createPortal } from 'react-dom';
|
|
7
7
|
|
|
8
|
+
var PADDING = {
|
|
9
|
+
none: "p-0",
|
|
10
|
+
sm: "p-4",
|
|
11
|
+
md: "p-6",
|
|
12
|
+
lg: "p-8"
|
|
13
|
+
};
|
|
8
14
|
function Card({
|
|
9
15
|
title,
|
|
16
|
+
subtitle,
|
|
17
|
+
aside,
|
|
18
|
+
actions,
|
|
19
|
+
footer,
|
|
10
20
|
children,
|
|
21
|
+
padding = "md",
|
|
22
|
+
bodyClassName,
|
|
11
23
|
minH,
|
|
12
24
|
className,
|
|
13
25
|
style,
|
|
14
26
|
...props
|
|
15
27
|
}) {
|
|
28
|
+
const structured = Boolean(subtitle || aside || actions || footer || bodyClassName);
|
|
29
|
+
const surface = "rounded-lg border border-[color:var(--app-card-border,var(--color-border))] bg-[color:var(--app-card-bg,var(--color-panel))] text-[color:var(--app-card-fg,var(--color-text))] shadow-sm";
|
|
30
|
+
if (!structured) {
|
|
31
|
+
return /* @__PURE__ */ jsxs(
|
|
32
|
+
"div",
|
|
33
|
+
{
|
|
34
|
+
"data-shell-card": "",
|
|
35
|
+
className: clsx(surface, PADDING[padding], className),
|
|
36
|
+
style: { minHeight: minH, ...style },
|
|
37
|
+
...props,
|
|
38
|
+
children: [
|
|
39
|
+
title ? /* @__PURE__ */ jsx("h3", { className: "mb-4 text-lg font-semibold", children: title }) : null,
|
|
40
|
+
children
|
|
41
|
+
]
|
|
42
|
+
}
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
const hasHeader = Boolean(title || subtitle || aside || actions);
|
|
46
|
+
const divider = "border-[color:var(--app-card-border,var(--color-border))]";
|
|
16
47
|
return /* @__PURE__ */ jsxs(
|
|
17
48
|
"div",
|
|
18
49
|
{
|
|
19
|
-
|
|
50
|
+
"data-shell-card": "",
|
|
51
|
+
"data-shell-card-structured": "",
|
|
52
|
+
className: clsx(surface, "overflow-hidden", className),
|
|
20
53
|
style: { minHeight: minH, ...style },
|
|
21
54
|
...props,
|
|
22
55
|
children: [
|
|
23
|
-
|
|
24
|
-
|
|
56
|
+
hasHeader ? /* @__PURE__ */ jsxs("div", { className: clsx("flex flex-wrap items-start justify-between gap-3 border-b px-5 py-4", divider), children: [
|
|
57
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
|
|
58
|
+
title ? /* @__PURE__ */ jsx("h3", { className: "text-base font-semibold", children: title }) : null,
|
|
59
|
+
subtitle ? /* @__PURE__ */ jsx("p", { className: "mt-0.5 text-sm text-[color:var(--app-card-fg-muted,var(--color-text-muted))]", children: subtitle }) : null
|
|
60
|
+
] }),
|
|
61
|
+
aside || actions ? /* @__PURE__ */ jsxs("div", { className: "flex shrink-0 items-center gap-2", children: [
|
|
62
|
+
aside,
|
|
63
|
+
actions
|
|
64
|
+
] }) : null
|
|
65
|
+
] }) : null,
|
|
66
|
+
/* @__PURE__ */ jsx("div", { className: bodyClassName ?? PADDING[padding], children }),
|
|
67
|
+
footer ? /* @__PURE__ */ jsx("div", { className: clsx("border-t px-5 py-3", divider), children: footer }) : null
|
|
25
68
|
]
|
|
26
69
|
}
|
|
27
70
|
);
|
|
28
71
|
}
|
|
29
72
|
function FormColumn({ children, className }) {
|
|
30
|
-
return /* @__PURE__ */ jsx("div", { "data-shell-form-column": "", className:
|
|
73
|
+
return /* @__PURE__ */ jsx("div", { "data-shell-form-column": "", className: clsx("w-full max-w-[960px]", className), children });
|
|
31
74
|
}
|
|
32
75
|
var VARIANT_CLASS = {
|
|
33
76
|
primary: "border border-transparent bg-[color:var(--app-btn-primary-bg,var(--color-accent))] text-[color:var(--app-btn-primary-fg,var(--color-white))] hover:bg-[color:var(--app-btn-primary-bg-hover,var(--color-accent-hover))]",
|
|
@@ -67,7 +110,7 @@ var Button = forwardRef(function Button2({
|
|
|
67
110
|
"data-shell-button": "",
|
|
68
111
|
"data-variant": variant,
|
|
69
112
|
"aria-busy": loading || void 0,
|
|
70
|
-
className:
|
|
113
|
+
className: clsx(
|
|
71
114
|
"inline-flex items-center justify-center gap-2 rounded-[5px] px-3 text-sm font-semibold no-underline transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[color:var(--app-field-focus,var(--color-accent))] focus-visible:ring-offset-2",
|
|
72
115
|
SIZE_CLASS[size],
|
|
73
116
|
VARIANT_CLASS[variant],
|
|
@@ -104,7 +147,7 @@ function FormField({
|
|
|
104
147
|
className,
|
|
105
148
|
children
|
|
106
149
|
}) {
|
|
107
|
-
return /* @__PURE__ */ jsxs("div", { className:
|
|
150
|
+
return /* @__PURE__ */ jsxs("div", { className: clsx("flex w-full flex-col gap-1", className), children: [
|
|
108
151
|
label ? /* @__PURE__ */ jsxs("label", { htmlFor: id, className: "text-sm font-semibold text-[color:var(--color-text)]", children: [
|
|
109
152
|
label,
|
|
110
153
|
required ? /* @__PURE__ */ jsx("span", { "aria-hidden": "true", children: " *" }) : null
|
|
@@ -153,7 +196,7 @@ var Input = forwardRef(function Input2({ label, helperText, error, invalid, clas
|
|
|
153
196
|
"data-shell-field": "",
|
|
154
197
|
"aria-invalid": isInvalid || void 0,
|
|
155
198
|
"aria-describedby": describedBy(fieldId, helperText, error, ariaDescribedBy),
|
|
156
|
-
className:
|
|
199
|
+
className: clsx(FIELD_BASE, "h-[44px]", isInvalid ? FIELD_INVALID : FIELD_VALID, className),
|
|
157
200
|
...props
|
|
158
201
|
}
|
|
159
202
|
)
|
|
@@ -183,7 +226,7 @@ var Select = forwardRef(function Select2({ label, helperText, error, invalid, cl
|
|
|
183
226
|
"data-shell-field": "",
|
|
184
227
|
"aria-invalid": isInvalid || void 0,
|
|
185
228
|
"aria-describedby": describedBy(fieldId, helperText, error, ariaDescribedBy),
|
|
186
|
-
className:
|
|
229
|
+
className: clsx(FIELD_BASE, "h-[44px]", isInvalid ? FIELD_INVALID : FIELD_VALID, className),
|
|
187
230
|
...props,
|
|
188
231
|
children
|
|
189
232
|
}
|
|
@@ -214,7 +257,7 @@ var Textarea = forwardRef(function Textarea2({ label, helperText, error, invalid
|
|
|
214
257
|
"data-shell-field": "",
|
|
215
258
|
"aria-invalid": isInvalid || void 0,
|
|
216
259
|
"aria-describedby": describedBy(fieldId, helperText, error, ariaDescribedBy),
|
|
217
|
-
className:
|
|
260
|
+
className: clsx(FIELD_BASE, "min-h-[88px] py-3", isInvalid ? FIELD_INVALID : FIELD_VALID, className),
|
|
218
261
|
...props
|
|
219
262
|
}
|
|
220
263
|
)
|
|
@@ -222,6 +265,118 @@ var Textarea = forwardRef(function Textarea2({ label, helperText, error, invalid
|
|
|
222
265
|
);
|
|
223
266
|
});
|
|
224
267
|
var Textarea_default = Textarea;
|
|
268
|
+
var Checkbox = forwardRef(function Checkbox2({
|
|
269
|
+
label,
|
|
270
|
+
description,
|
|
271
|
+
indeterminate,
|
|
272
|
+
invalid,
|
|
273
|
+
className,
|
|
274
|
+
wrapperClassName,
|
|
275
|
+
id,
|
|
276
|
+
disabled,
|
|
277
|
+
"aria-describedby": ariaDescribedBy,
|
|
278
|
+
...props
|
|
279
|
+
}, ref) {
|
|
280
|
+
const autoId = useId();
|
|
281
|
+
const fieldId = id ?? autoId;
|
|
282
|
+
const descId = description ? `${fieldId}-description` : void 0;
|
|
283
|
+
const inner = useRef(null);
|
|
284
|
+
const setRef = useCallback(
|
|
285
|
+
(node) => {
|
|
286
|
+
inner.current = node;
|
|
287
|
+
if (typeof ref === "function") ref(node);
|
|
288
|
+
else if (ref) ref.current = node;
|
|
289
|
+
},
|
|
290
|
+
[ref]
|
|
291
|
+
);
|
|
292
|
+
useEffect(() => {
|
|
293
|
+
if (inner.current) inner.current.indeterminate = Boolean(indeterminate);
|
|
294
|
+
}, [indeterminate]);
|
|
295
|
+
const describedBy2 = [descId, ariaDescribedBy].filter(Boolean).join(" ") || void 0;
|
|
296
|
+
return /* @__PURE__ */ jsxs(
|
|
297
|
+
"label",
|
|
298
|
+
{
|
|
299
|
+
htmlFor: fieldId,
|
|
300
|
+
"data-shell-checkbox": "",
|
|
301
|
+
className: clsx(
|
|
302
|
+
"flex min-h-[44px] items-start gap-3 py-[10px] text-sm text-[color:var(--app-card-fg,var(--color-text))]",
|
|
303
|
+
disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer",
|
|
304
|
+
wrapperClassName
|
|
305
|
+
),
|
|
306
|
+
children: [
|
|
307
|
+
/* @__PURE__ */ jsx(
|
|
308
|
+
"input",
|
|
309
|
+
{
|
|
310
|
+
...props,
|
|
311
|
+
ref: setRef,
|
|
312
|
+
id: fieldId,
|
|
313
|
+
type: "checkbox",
|
|
314
|
+
disabled,
|
|
315
|
+
"data-shell-field": "",
|
|
316
|
+
"aria-invalid": invalid || void 0,
|
|
317
|
+
"aria-describedby": describedBy2,
|
|
318
|
+
className: clsx(
|
|
319
|
+
"mt-[2px] h-5 w-5 shrink-0 rounded-[5px] border focus:outline-none focus-visible:ring-2",
|
|
320
|
+
"accent-[color:var(--color-accent-bg-safe,var(--color-accent))]",
|
|
321
|
+
"focus-visible:ring-[color:var(--app-field-focus,var(--color-accent))]",
|
|
322
|
+
invalid ? "border-[color:var(--chrome-danger,var(--color-race-red))] outline outline-2 outline-[color:var(--chrome-danger,var(--color-race-red))]" : "border-[color:var(--app-field-border,var(--color-border))]",
|
|
323
|
+
disabled ? "cursor-not-allowed" : "cursor-pointer",
|
|
324
|
+
className
|
|
325
|
+
)
|
|
326
|
+
}
|
|
327
|
+
),
|
|
328
|
+
label || description ? /* @__PURE__ */ jsxs("span", { className: "min-w-0", children: [
|
|
329
|
+
label ? /* @__PURE__ */ jsx("span", { className: "block font-medium", children: label }) : null,
|
|
330
|
+
description ? /* @__PURE__ */ jsx(
|
|
331
|
+
"span",
|
|
332
|
+
{
|
|
333
|
+
id: descId,
|
|
334
|
+
className: "block text-xs text-[color:var(--app-card-fg-muted,var(--color-text-muted))]",
|
|
335
|
+
children: description
|
|
336
|
+
}
|
|
337
|
+
) : null
|
|
338
|
+
] }) : null
|
|
339
|
+
]
|
|
340
|
+
}
|
|
341
|
+
);
|
|
342
|
+
});
|
|
343
|
+
var Checkbox_default = Checkbox;
|
|
344
|
+
var FileInput = forwardRef(function FileInput2({ label, helperText, error, invalid, className, wrapperClassName, id, required, "aria-describedby": ariaDescribedBy, ...props }, ref) {
|
|
345
|
+
const autoId = useId();
|
|
346
|
+
const fieldId = id ?? autoId;
|
|
347
|
+
const isInvalid = Boolean(error) || Boolean(invalid);
|
|
348
|
+
return /* @__PURE__ */ jsx(
|
|
349
|
+
FormField,
|
|
350
|
+
{
|
|
351
|
+
id: fieldId,
|
|
352
|
+
label,
|
|
353
|
+
helperText,
|
|
354
|
+
error,
|
|
355
|
+
required,
|
|
356
|
+
className: wrapperClassName,
|
|
357
|
+
children: /* @__PURE__ */ jsx(
|
|
358
|
+
"input",
|
|
359
|
+
{
|
|
360
|
+
...props,
|
|
361
|
+
ref,
|
|
362
|
+
id: fieldId,
|
|
363
|
+
type: "file",
|
|
364
|
+
required,
|
|
365
|
+
"data-shell-field": "",
|
|
366
|
+
"aria-invalid": isInvalid || void 0,
|
|
367
|
+
"aria-describedby": describedBy(fieldId, helperText, error, ariaDescribedBy),
|
|
368
|
+
className: clsx(
|
|
369
|
+
FIELD_BASE,
|
|
370
|
+
"h-[44px] cursor-pointer py-[5px] file:mr-3 file:h-[32px] file:cursor-pointer file:rounded-[5px] file:border file:border-[color:var(--app-btn-secondary-border,var(--color-border))] file:bg-[color:var(--app-btn-secondary-bg,var(--color-white))] file:px-3 file:text-sm file:font-medium file:text-[color:var(--app-btn-secondary-fg,var(--color-text))]",
|
|
371
|
+
isInvalid ? FIELD_INVALID : FIELD_VALID,
|
|
372
|
+
className
|
|
373
|
+
)
|
|
374
|
+
}
|
|
375
|
+
)
|
|
376
|
+
}
|
|
377
|
+
);
|
|
378
|
+
});
|
|
379
|
+
var FileInput_default = FileInput;
|
|
225
380
|
|
|
226
381
|
// src/lib/deprecation.ts
|
|
227
382
|
var warned = /* @__PURE__ */ new Set();
|
|
@@ -2182,7 +2337,7 @@ function HeaderTabBar({
|
|
|
2182
2337
|
{
|
|
2183
2338
|
role: "tablist",
|
|
2184
2339
|
"aria-label": ariaLabel,
|
|
2185
|
-
className:
|
|
2340
|
+
className: clsx(
|
|
2186
2341
|
// Header-wide tab strip: background + bottom border only (no outer box).
|
|
2187
2342
|
// Left-aligned and fluid: the container spans the full content width,
|
|
2188
2343
|
// the tabs keep their natural width packed from the left (Global-Rules
|
|
@@ -2206,7 +2361,7 @@ function HeaderTabBar({
|
|
|
2206
2361
|
"aria-label": item.label,
|
|
2207
2362
|
disabled: isDisabled,
|
|
2208
2363
|
onClick: () => onChange(item.id),
|
|
2209
|
-
className:
|
|
2364
|
+
className: clsx(
|
|
2210
2365
|
// `group/tbtip relative` powers the shared <TopBarTooltip>.
|
|
2211
2366
|
// Natural width (no flex-1 stretch); 40px square hit area for the
|
|
2212
2367
|
// icon-only tab so the strip stays tappable.
|
|
@@ -2370,11 +2525,11 @@ function PageHeaderView({
|
|
|
2370
2525
|
"div",
|
|
2371
2526
|
{
|
|
2372
2527
|
style: { backgroundColor: "var(--app-tab-header-bg, #888888)" },
|
|
2373
|
-
className:
|
|
2528
|
+
className: clsx("text-slate-100", tabBar ? "pt-3 pb-0" : "py-3 border-b border-gray-200", {
|
|
2374
2529
|
"md:ml-60": !hideSidebar
|
|
2375
2530
|
}),
|
|
2376
2531
|
children: [
|
|
2377
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
2532
|
+
/* @__PURE__ */ jsx("div", { className: clsx("w-full px-4", maxWClass), children: /* @__PURE__ */ jsxs("div", { className: "flex w-full flex-nowrap items-start justify-between gap-4", children: [
|
|
2378
2533
|
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
2379
2534
|
eyebrowText ? /* @__PURE__ */ jsx(
|
|
2380
2535
|
"div",
|
|
@@ -2401,7 +2556,7 @@ function PageHeaderView({
|
|
|
2401
2556
|
"nav",
|
|
2402
2557
|
{
|
|
2403
2558
|
"aria-label": "Breadcrumb",
|
|
2404
|
-
className:
|
|
2559
|
+
className: clsx("min-w-0 text-slate-100", title ? "mt-1" : ""),
|
|
2405
2560
|
children: /* @__PURE__ */ jsx("ol", { className: "flex flex-nowrap items-center gap-2 overflow-hidden text-sm text-gray-600", children: breadcrumbsWithoutCurrent.map((item, index) => /* @__PURE__ */ jsxs(
|
|
2406
2561
|
"li",
|
|
2407
2562
|
{
|
|
@@ -2442,7 +2597,7 @@ function BreadcrumbBarView({
|
|
|
2442
2597
|
{
|
|
2443
2598
|
className: "ml-0 border-b border-gray-200 px-4 py-3 md:ml-60",
|
|
2444
2599
|
style: { backgroundColor: "var(--app-tab-header-bg, #888888)" },
|
|
2445
|
-
children: /* @__PURE__ */ jsx("div", { className:
|
|
2600
|
+
children: /* @__PURE__ */ jsx("div", { className: clsx("mx-auto w-full px-0", maxWClass), children: /* @__PURE__ */ jsxs("div", { className: "flex w-full items-center justify-between", children: [
|
|
2446
2601
|
breadcrumbs && breadcrumbs.length > 0 && /* @__PURE__ */ jsx("nav", { "aria-label": "Breadcrumb", children: /* @__PURE__ */ jsx("ol", { className: "flex items-center gap-2 text-sm text-slate-100", children: breadcrumbs.map((item, index) => /* @__PURE__ */ jsxs("li", { className: "flex items-center gap-2", children: [
|
|
2447
2602
|
index > 0 ? /* @__PURE__ */ jsx("span", { className: "text-gray-400", children: ">" }) : null,
|
|
2448
2603
|
item.href ? renderCrumbLink(item.href, item.label, "text-slate-100 hover:underline") : /* @__PURE__ */ jsx("span", { className: "text-slate-100", children: item.label })
|
|
@@ -2453,6 +2608,6 @@ function BreadcrumbBarView({
|
|
|
2453
2608
|
);
|
|
2454
2609
|
}
|
|
2455
2610
|
|
|
2456
|
-
export { BreadcrumbBarView, Button_default, CORE_APP_ORIGIN, CORE_BILLING_PATH, CREDIT_TYPE_LABELS, CREDIT_TYPE_ORDER, Card, CreditsAction, FormColumn, FuelAction, HeaderTabBar, Input_default, NAV_DISPLAY_OPTIONS, NavChromeProvider, NavDisplayAction, NavThemeControl, NotificationsAction, PageHeaderView, SPECS_ORIGIN, Select_default, SpecOverlayAction, SpeculationRulesScript, SupportAction, TOPBAR_GLYPH_SIZE, Textarea_default, TopBarCountBadge, TopBarPanelArrow, TopBarPopover, TopBarTooltip, TopBarWidgetSlot, buildNavSpeculationRules, buildSpeculationRules, collectSiblingAppUrls, createCommsNotificationsAdapter, creditGaugeRatio, creditStateWord, creditTooltipLine, creditsAriaLabel, creditsIconState, emptyNotificationsFeed, normalizeNotificationsFeed, resolveBrandGlyph, resolveOrgLogoUrl, topBarIconButtonClass, useChromeMe, useChromeOrgs, useNavChromeDedupedFetch, useNavChromeFetcher, useThemePreference, useTopBarIconSlotGlyph, warnDeprecated };
|
|
2457
|
-
//# sourceMappingURL=chunk-
|
|
2458
|
-
//# sourceMappingURL=chunk-
|
|
2611
|
+
export { BreadcrumbBarView, Button_default, CORE_APP_ORIGIN, CORE_BILLING_PATH, CREDIT_TYPE_LABELS, CREDIT_TYPE_ORDER, Card, Checkbox_default, CreditsAction, FileInput_default, FormColumn, FuelAction, HeaderTabBar, Input_default, NAV_DISPLAY_OPTIONS, NavChromeProvider, NavDisplayAction, NavThemeControl, NotificationsAction, PageHeaderView, SPECS_ORIGIN, Select_default, SpecOverlayAction, SpeculationRulesScript, SupportAction, TOPBAR_GLYPH_SIZE, Textarea_default, TopBarCountBadge, TopBarPanelArrow, TopBarPopover, TopBarTooltip, TopBarWidgetSlot, buildNavSpeculationRules, buildSpeculationRules, collectSiblingAppUrls, createCommsNotificationsAdapter, creditGaugeRatio, creditStateWord, creditTooltipLine, creditsAriaLabel, creditsIconState, emptyNotificationsFeed, normalizeNotificationsFeed, resolveBrandGlyph, resolveOrgLogoUrl, topBarIconButtonClass, useChromeMe, useChromeOrgs, useNavChromeDedupedFetch, useNavChromeFetcher, useThemePreference, useTopBarIconSlotGlyph, warnDeprecated };
|
|
2612
|
+
//# sourceMappingURL=chunk-J23MTK56.js.map
|
|
2613
|
+
//# sourceMappingURL=chunk-J23MTK56.js.map
|