@crewlethq/ui 0.37.1 → 0.39.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/README.md +70 -2
- package/dist/Accordion/index.js +1 -1
- package/dist/AgentHandoffPanel/index.js +2 -2
- package/dist/AppShell/index.js +1 -1
- package/dist/{AppShell-JBCZSSX3.css → AppShell-NDU4XMGF.css} +39 -6
- package/dist/ArtifactBar/index.js +1 -1
- package/dist/{ArtifactBar-FWPBBKQ5.css → ArtifactBar-6PGWGKN2.css} +13 -1
- package/dist/ArtifactCard/index.js +2 -2
- package/dist/ArtifactMakeRow/ArtifactMakeRow.d.ts +3 -1
- package/dist/ArtifactMakeRow/index.js +1 -1
- package/dist/{ArtifactMakeRow-W3RD5YWZ.css → ArtifactMakeRow-6UX2LTF7.css} +43 -5
- package/dist/AuthLayout/index.js +2 -2
- package/dist/Card/Card.d.ts +14 -2
- package/dist/Card/index.js +1 -1
- package/dist/{Card-QOVASQNU.css → Card-JR2UPQH7.css} +63 -0
- package/dist/CatalogTile/CatalogTile.d.ts +47 -0
- package/dist/CatalogTile/index.d.ts +3 -0
- package/dist/CatalogTile/index.js +3 -0
- package/dist/CatalogTile-TGR2ZZVQ.css +131 -0
- package/dist/CodeBlock/index.js +1 -1
- package/dist/{CodeBlock-GYNJ2HI6.css → CodeBlock-N5ETJF24.css} +13 -0
- package/dist/CommandPalette/index.js +2 -2
- package/dist/DataTable/index.js +2 -2
- package/dist/DataView/index.js +3 -3
- package/dist/DatasetSource/DatasetSource.d.ts +7 -1
- package/dist/DatasetSource/index.js +2 -2
- package/dist/DescriptionList/DescriptionList.d.ts +12 -1
- package/dist/DescriptionList/index.js +1 -1
- package/dist/{DescriptionList-IXMRCSMK.css → DescriptionList-DEZISDLQ.css} +8 -1
- package/dist/Disclosure/index.js +1 -1
- package/dist/{Disclosure-VKBJJIZ7.css → Disclosure-P4FH3C35.css} +28 -2
- package/dist/LinkInterstitial/index.js +2 -2
- package/dist/List/List.d.ts +8 -0
- package/dist/List/index.js +1 -1
- package/dist/{List-MYJIV6MP.css → List-YHLIZFK4.css} +46 -0
- package/dist/ListInput/ListInput.d.ts +9 -1
- package/dist/ListInput/index.js +1 -1
- package/dist/Modal/index.js +1 -1
- package/dist/{Modal-7MWRCWAI.css → Modal-TOEWHDCQ.css} +5 -0
- package/dist/ObjectHeader/index.js +1 -1
- package/dist/{ObjectHeader-D7GU7QNI.css → ObjectHeader-ZOS22FKX.css} +7 -8
- package/dist/PricingCard/index.js +2 -2
- package/dist/SettingsTable/SettingsTable.d.ts +66 -0
- package/dist/SettingsTable/index.d.ts +3 -0
- package/dist/SettingsTable/index.js +3 -0
- package/dist/SettingsTable-6DUFAFXG.css +160 -0
- package/dist/ShareDialog/index.js +2 -2
- package/dist/SheetGrid/index.js +2 -2
- package/dist/StatCard/index.js +1 -1
- package/dist/{StatCard-4T7TMWMN.css → StatCard-HAA3F5GX.css} +8 -3
- package/dist/StatGroup/StatGroup.d.ts +11 -7
- package/dist/StatGroup/index.js +1 -1
- package/dist/StatGroup-ZMW7VQWP.css +195 -0
- package/dist/Switcher/index.js +2 -2
- package/dist/TableCells/index.js +2 -2
- package/dist/Tag/index.js +1 -1
- package/dist/{Tag-SRGTK5KI.css → Tag-2DQOVE6W.css} +15 -5
- package/dist/TagsInput/index.js +2 -2
- package/dist/TileGrid/TileGrid.d.ts +33 -0
- package/dist/TileGrid/index.d.ts +3 -0
- package/dist/TileGrid/index.js +2 -0
- package/dist/TileGrid-I6LNYD2H.css +52 -0
- package/dist/{chunk-YSG3DW7W.js → chunk-3TXY3PJZ.js} +1 -1
- package/dist/{chunk-K4VP6ZKE.js → chunk-4BJK7FE5.js} +1 -1
- package/dist/chunk-4RKTZSEW.js +64 -0
- package/dist/{chunk-3SBM4DGI.js → chunk-BH52LIY6.js} +1 -1
- package/dist/{chunk-HDHZWIFL.js → chunk-DYB66CNM.js} +16 -2
- package/dist/{chunk-A23KDROH.js → chunk-FXBGEANQ.js} +1 -1
- package/dist/{chunk-HMLAWVG6.js → chunk-HQJ24WPM.js} +5 -3
- package/dist/{chunk-SVGARBDY.js → chunk-IAGYPTEJ.js} +2 -2
- package/dist/{chunk-5QXRI35B.js → chunk-INHXF2CL.js} +24 -11
- package/dist/{chunk-6NNY5WBF.js → chunk-JKAGN4V4.js} +1 -1
- package/dist/{chunk-DZSBFITC.js → chunk-JZPK4IXR.js} +1 -1
- package/dist/{chunk-UWRBD2YO.js → chunk-KNHUBHFX.js} +1 -1
- package/dist/{chunk-GFV4LJHH.js → chunk-KYIAFNU7.js} +1 -1
- package/dist/{chunk-F2XSYBKH.js → chunk-MFS6F2P7.js} +4 -1
- package/dist/{chunk-NRBAXRWE.js → chunk-N3TFYBN3.js} +1 -1
- package/dist/chunk-NNTO3TNC.js +9 -0
- package/dist/{chunk-DS2C73RJ.js → chunk-NZWX27J7.js} +2 -2
- package/dist/{chunk-VGE3G3T4.js → chunk-ODOJJGXH.js} +1 -1
- package/dist/{chunk-MICH6QSJ.js → chunk-OGXHZHRX.js} +1 -1
- package/dist/{chunk-JXRI5YD2.js → chunk-OUD75UB2.js} +2 -1
- package/dist/{chunk-MG3HTY6F.js → chunk-QRKT4XTT.js} +1 -1
- package/dist/{chunk-NS4NSHVX.js → chunk-R2IBCEU6.js} +12 -2
- package/dist/{chunk-WX2NIG4G.js → chunk-S4DREXGM.js} +1 -1
- package/dist/{chunk-GDDE4UM7.js → chunk-SEC2GR2V.js} +1 -1
- package/dist/{chunk-S27UBCVX.js → chunk-TZYFTC4M.js} +1 -1
- package/dist/{chunk-OHA6WSAG.js → chunk-U2XAJONO.js} +1 -1
- package/dist/{chunk-DQSXWQMJ.js → chunk-U3ILLCR2.js} +1 -1
- package/dist/{chunk-DOLATMGF.js → chunk-WYYCPV46.js} +5 -0
- package/dist/{chunk-A72JPXIV.js → chunk-XGBUUQDU.js} +1 -1
- package/dist/chunk-XNXK5MA4.js +48 -0
- package/dist/{chunk-XO7PUL4F.js → chunk-YPTTSJPM.js} +1 -1
- package/dist/{chunk-RIAZM6L3.js → chunk-ZNOXQACX.js} +1 -1
- package/dist/generated/index.d.ts +3 -0
- package/dist/generated/index.js +56 -53
- package/dist/index.js +56 -53
- package/dist/styles.css +782 -64
- package/package.json +3 -3
- package/dist/StatGroup-PADTJCUQ.css +0 -86
- /package/dist/{chunk-4QQ3MND5.js → chunk-QRLIWCLX.js} +0 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { StatusDot } from './chunk-WIATRXEJ.js';
|
|
2
|
+
import { cx } from './chunk-ODEQTPFM.js';
|
|
3
|
+
import './SettingsTable-6DUFAFXG.css';
|
|
4
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
5
|
+
|
|
6
|
+
var COLUMNS = { setting: "Setting", value: "Value", source: "Source" };
|
|
7
|
+
function SettingsTable({ header = false, columns, className, children, ...rest }) {
|
|
8
|
+
const names = { ...COLUMNS, ...columns };
|
|
9
|
+
return /* @__PURE__ */ jsxs("div", { ...rest, role: "table", className: cx("crewlet-settings-table", className), children: [
|
|
10
|
+
/* @__PURE__ */ jsx(
|
|
11
|
+
"div",
|
|
12
|
+
{
|
|
13
|
+
role: "rowgroup",
|
|
14
|
+
className: cx("crewlet-settings-table__head", !header && "crewlet-settings-table__head--hidden"),
|
|
15
|
+
children: /* @__PURE__ */ jsxs("div", { role: "row", className: "crewlet-settings-table__row", children: [
|
|
16
|
+
/* @__PURE__ */ jsx("span", { role: "columnheader", className: "crewlet-settings-table__name", children: names.setting }),
|
|
17
|
+
/* @__PURE__ */ jsx("span", { role: "columnheader", className: "crewlet-settings-table__name", children: names.value }),
|
|
18
|
+
/* @__PURE__ */ jsx("span", { role: "columnheader", className: "crewlet-settings-table__name", children: names.source })
|
|
19
|
+
] })
|
|
20
|
+
}
|
|
21
|
+
),
|
|
22
|
+
/* @__PURE__ */ jsx("div", { role: "rowgroup", className: "crewlet-settings-table__body", children })
|
|
23
|
+
] });
|
|
24
|
+
}
|
|
25
|
+
function SettingsTableRow({
|
|
26
|
+
label,
|
|
27
|
+
settingKey,
|
|
28
|
+
source,
|
|
29
|
+
changed = false,
|
|
30
|
+
className,
|
|
31
|
+
children,
|
|
32
|
+
...rest
|
|
33
|
+
}) {
|
|
34
|
+
return /* @__PURE__ */ jsxs(
|
|
35
|
+
"div",
|
|
36
|
+
{
|
|
37
|
+
...rest,
|
|
38
|
+
role: "row",
|
|
39
|
+
"data-changed": changed ? "" : void 0,
|
|
40
|
+
className: cx("crewlet-settings-table__row", className),
|
|
41
|
+
children: [
|
|
42
|
+
/* @__PURE__ */ jsxs("span", { role: "rowheader", className: "crewlet-settings-table__setting", children: [
|
|
43
|
+
/* @__PURE__ */ jsx("span", { className: "crewlet-settings-table__label", children: label }),
|
|
44
|
+
settingKey === void 0 ? null : /* @__PURE__ */ jsx("code", { className: "crewlet-settings-table__key", children: settingKey })
|
|
45
|
+
] }),
|
|
46
|
+
/* @__PURE__ */ jsx("span", { role: "cell", className: "crewlet-settings-table__value", children }),
|
|
47
|
+
/* @__PURE__ */ jsxs(
|
|
48
|
+
"span",
|
|
49
|
+
{
|
|
50
|
+
role: "cell",
|
|
51
|
+
className: cx("crewlet-settings-table__source", changed && "crewlet-settings-table__source--changed"),
|
|
52
|
+
children: [
|
|
53
|
+
changed ? /* @__PURE__ */ jsx(StatusDot, { tone: "brand" }) : null,
|
|
54
|
+
source
|
|
55
|
+
]
|
|
56
|
+
}
|
|
57
|
+
)
|
|
58
|
+
]
|
|
59
|
+
}
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
SettingsTable.Row = SettingsTableRow;
|
|
63
|
+
|
|
64
|
+
export { SettingsTable, SettingsTableRow };
|
|
@@ -6,7 +6,7 @@ import { IconButton } from './chunk-4FQT6ZAY.js';
|
|
|
6
6
|
import { VisuallyHidden } from './chunk-BZFWDIV6.js';
|
|
7
7
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
8
8
|
import './HitArea-QUOS6ZDJ.css';
|
|
9
|
-
import './AppShell-
|
|
9
|
+
import './AppShell-NDU4XMGF.css';
|
|
10
10
|
import { createContext, forwardRef, useContext, useId, useState, useRef, useCallback, useEffect, useLayoutEffect } from 'react';
|
|
11
11
|
import { breakpoint } from '@crewlethq/tokens';
|
|
12
12
|
import { ChevronUpGlyph, ChevronsUpDownGlyph, ChevronRightGlyph, MenuGlyph } from '@crewlethq/icons/glyphs';
|
|
@@ -122,6 +122,16 @@ function AppShell({
|
|
|
122
122
|
},
|
|
123
123
|
[mainRef]
|
|
124
124
|
);
|
|
125
|
+
const [gutter, setGutter] = useState(0);
|
|
126
|
+
useLayoutEffect(() => {
|
|
127
|
+
if (!scroller) return void 0;
|
|
128
|
+
const measure = () => setGutter(Math.max(0, scroller.offsetWidth - scroller.clientWidth));
|
|
129
|
+
measure();
|
|
130
|
+
if (typeof ResizeObserver === "undefined") return void 0;
|
|
131
|
+
const observer = new ResizeObserver(measure);
|
|
132
|
+
observer.observe(scroller);
|
|
133
|
+
return () => observer.disconnect();
|
|
134
|
+
}, [scroller]);
|
|
125
135
|
const shell = {
|
|
126
136
|
narrow,
|
|
127
137
|
drawerOpen,
|
|
@@ -145,7 +155,11 @@ function AppShell({
|
|
|
145
155
|
!shell.hasRail && "crewlet-app-shell--no-rail",
|
|
146
156
|
className
|
|
147
157
|
),
|
|
148
|
-
style:
|
|
158
|
+
style: {
|
|
159
|
+
...style,
|
|
160
|
+
["--crewlet-app-shell-gutter"]: `${gutter}px`,
|
|
161
|
+
...drawerZ === null ? null : { ["--crewlet-app-shell-drawer-z"]: String(drawerZ) }
|
|
162
|
+
},
|
|
149
163
|
children: [
|
|
150
164
|
/* @__PURE__ */ jsx(
|
|
151
165
|
"a",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useClipboard } from './chunk-STJ7QBC3.js';
|
|
2
|
-
import { Modal } from './chunk-
|
|
2
|
+
import { Modal } from './chunk-IAGYPTEJ.js';
|
|
3
3
|
import { Checkbox } from './chunk-AXS6MBNH.js';
|
|
4
4
|
import { EmptyValue } from './chunk-EUCC37WY.js';
|
|
5
5
|
import { useCardHeaderSlot } from './chunk-AV2DXAEL.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Tag } from './chunk-
|
|
1
|
+
import { Tag } from './chunk-KYIAFNU7.js';
|
|
2
2
|
import { RelativeTime } from './chunk-3CZ7XAVY.js';
|
|
3
3
|
import { HIT_AREA_CLASS } from './chunk-2YTOOH3A.js';
|
|
4
4
|
import { VisuallyHidden } from './chunk-BZFWDIV6.js';
|
|
@@ -58,8 +58,10 @@ function DatasetSource({
|
|
|
58
58
|
const summary = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
59
59
|
/* @__PURE__ */ jsxs("span", { className: "crewlet-dataset-source__head", children: [
|
|
60
60
|
/* @__PURE__ */ jsx("span", { id: titleId, className: "crewlet-dataset-source__title", children: title }),
|
|
61
|
-
|
|
62
|
-
|
|
61
|
+
kind === void 0 ? null : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
62
|
+
" ",
|
|
63
|
+
/* @__PURE__ */ jsx(Tag, { size: "xs", appearance: "outline", className: "crewlet-dataset-source__kind", children: text.kinds[kind] })
|
|
64
|
+
] })
|
|
63
65
|
] }),
|
|
64
66
|
" ",
|
|
65
67
|
/* @__PURE__ */ jsx("span", { className: "crewlet-dataset-source__definition", children: definition }),
|
|
@@ -4,7 +4,7 @@ import { focusables, useModalLayer, useBodyScrollLock } from './chunk-H5XTJ7GJ.j
|
|
|
4
4
|
import { Button } from './chunk-OG6CL3EB.js';
|
|
5
5
|
import { IconButton } from './chunk-4FQT6ZAY.js';
|
|
6
6
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
7
|
-
import './Modal-
|
|
7
|
+
import './Modal-TOEWHDCQ.css';
|
|
8
8
|
import { useId, useRef, useCallback } from 'react';
|
|
9
9
|
import { createPortal } from 'react-dom';
|
|
10
10
|
import { ChevronLeftGlyph, XGlyph } from '@crewlethq/icons/glyphs';
|
|
@@ -124,7 +124,7 @@ function ModalFrame({
|
|
|
124
124
|
given(icon) ? /* @__PURE__ */ jsx("span", { className: "crewlet-modal__icon", "aria-hidden": "true", children: icon }) : null,
|
|
125
125
|
/* @__PURE__ */ jsxs("div", { className: "crewlet-modal__heading", children: [
|
|
126
126
|
given(title) ? /* @__PURE__ */ jsx(
|
|
127
|
-
"
|
|
127
|
+
"h1",
|
|
128
128
|
{
|
|
129
129
|
className: cx("crewlet-modal__title", sheet ? "crewlet-modal__title--sheet" : void 0),
|
|
130
130
|
id: titleId,
|
|
@@ -2,7 +2,7 @@ import { CardHeaderSlotContext } from './chunk-AV2DXAEL.js';
|
|
|
2
2
|
import { Count } from './chunk-BHHIIK3M.js';
|
|
3
3
|
import { useHeadingLevel, HeadingLevelProvider, nextHeadingLevel, headingTag } from './chunk-PQADV6P6.js';
|
|
4
4
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
5
|
-
import './Card-
|
|
5
|
+
import './Card-JR2UPQH7.css';
|
|
6
6
|
import { createContext, useId, useState, isValidElement, useRef, useCallback, useMemo, Children, cloneElement, useContext, useEffect, Fragment } from 'react';
|
|
7
7
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
8
8
|
|
|
@@ -160,6 +160,7 @@ var CardHeader = ({
|
|
|
160
160
|
icon,
|
|
161
161
|
count,
|
|
162
162
|
subtitle,
|
|
163
|
+
subtitlePlacement = "beside",
|
|
163
164
|
actions,
|
|
164
165
|
className,
|
|
165
166
|
children,
|
|
@@ -173,16 +174,28 @@ var CardHeader = ({
|
|
|
173
174
|
},
|
|
174
175
|
[host]
|
|
175
176
|
);
|
|
176
|
-
return /* @__PURE__ */ jsxs(
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
177
|
+
return /* @__PURE__ */ jsxs(
|
|
178
|
+
"div",
|
|
179
|
+
{
|
|
180
|
+
...rest,
|
|
181
|
+
className: cx(
|
|
182
|
+
"crewlet-card__header",
|
|
183
|
+
!divided && "crewlet-card__header--plain",
|
|
184
|
+
subtitle !== void 0 && subtitlePlacement === "below" && "crewlet-card__header--stacked",
|
|
185
|
+
className
|
|
186
|
+
),
|
|
187
|
+
children: [
|
|
188
|
+
/* @__PURE__ */ jsxs("div", { className: "crewlet-card__header-main", children: [
|
|
189
|
+
icon === void 0 ? null : /* @__PURE__ */ jsx("span", { className: "crewlet-card__header-icon", "aria-hidden": true, children: icon }),
|
|
190
|
+
typeof children === "string" || typeof children === "number" ? /* @__PURE__ */ jsx(CardTitle, { children }) : children,
|
|
191
|
+
count === void 0 || count === 0 || count === "0" ? null : /* @__PURE__ */ jsx(Count, { value: count })
|
|
192
|
+
] }),
|
|
193
|
+
subtitle === void 0 ? null : /* @__PURE__ */ jsx("span", { className: "crewlet-card__subtitle", children: subtitle }),
|
|
194
|
+
actions === void 0 ? null : /* @__PURE__ */ jsx("div", { className: "crewlet-card__header-actions", children: actions }),
|
|
195
|
+
card === null ? null : /* @__PURE__ */ jsx("div", { className: "crewlet-card__header-chrome", ref: chromeRef })
|
|
196
|
+
]
|
|
197
|
+
}
|
|
198
|
+
);
|
|
186
199
|
};
|
|
187
200
|
var CardBody = ({ padding = "md", className, children, ...rest }) => /* @__PURE__ */ jsx("div", { ...rest, className: cx("crewlet-card__body", `crewlet-card__body--p-${padding}`, className), children });
|
|
188
201
|
var CardFooter = ({ variant = "actions", padding = "sm", className, children, ...rest }) => /* @__PURE__ */ jsx(
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Modal } from './chunk-
|
|
1
|
+
import { Modal } from './chunk-IAGYPTEJ.js';
|
|
2
2
|
import { useListbox, useOptionKeys } from './chunk-7KHM2FZH.js';
|
|
3
3
|
import { Popover } from './chunk-KHJIEPZV.js';
|
|
4
4
|
import { KeyChip, highlightMatch } from './chunk-FYTIJM2T.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { TagGroup } from './chunk-O2EGEONV.js';
|
|
2
2
|
import { CursorFlag } from './chunk-3BYIWOTV.js';
|
|
3
3
|
import { presenceHueClass } from './chunk-I6POAB4V.js';
|
|
4
|
-
import { Tag } from './chunk-
|
|
4
|
+
import { Tag } from './chunk-KYIAFNU7.js';
|
|
5
5
|
import { StatusDot } from './chunk-WIATRXEJ.js';
|
|
6
6
|
import { ChangeMark } from './chunk-66X5WDKE.js';
|
|
7
7
|
import { isEmptyValue, displayText, ratingMax, findPerson, findOption, statusTone, editText, textMax, sheetLabels, normalizeValue, sameValue, spokenText, drawnColumns, fitSamples, fittedWidth, columnWidth, SHEET_COLUMN_BOUNDS, sortRows, SHEET_ROW_HEIGHT, cellKey, columnOffsets, SHEET_ROW_NUMBER_WIDTH, rangeOf, presenceByCell, presenceByRow, presenceByColumn, scrollToRow, planClear, visibleRows, cellDescription, nextSort, rowName, inRange, hasPrevious, flagText, toTSV, planPaste, parseTSV, isMod, moveFrom, isTypingKey, editorSide, optionHue, parseText, liveOptions, checkValue } from './chunk-LFSIKGRQ.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Select } from './chunk-XQZ6EWOE.js';
|
|
2
2
|
import { CopyButton } from './chunk-W46LPU4R.js';
|
|
3
|
-
import { Modal } from './chunk-
|
|
3
|
+
import { Modal } from './chunk-IAGYPTEJ.js';
|
|
4
4
|
import { Callout } from './chunk-SZZRIHGT.js';
|
|
5
5
|
import { PrincipalAvatar } from './chunk-CI3VPIJN.js';
|
|
6
6
|
import { useHeadingLevel, headingTag } from './chunk-PQADV6P6.js';
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
2
|
-
import './DescriptionList-
|
|
2
|
+
import './DescriptionList-DEZISDLQ.css';
|
|
3
3
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
4
4
|
|
|
5
5
|
function DescriptionList({
|
|
6
6
|
dense = false,
|
|
7
7
|
fit = false,
|
|
8
|
+
termWidth,
|
|
8
9
|
items,
|
|
9
10
|
className,
|
|
11
|
+
style,
|
|
10
12
|
children,
|
|
11
13
|
...rest
|
|
12
14
|
}) {
|
|
@@ -14,6 +16,7 @@ function DescriptionList({
|
|
|
14
16
|
"dl",
|
|
15
17
|
{
|
|
16
18
|
...rest,
|
|
19
|
+
style: termWidth === void 0 ? style : { ...style, "--crewlet-description-list-term": termWidth },
|
|
17
20
|
className: cx(
|
|
18
21
|
"crewlet-description-list",
|
|
19
22
|
dense && "crewlet-description-list--dense",
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { cx } from './chunk-ODEQTPFM.js';
|
|
2
|
+
import './TileGrid-I6LNYD2H.css';
|
|
3
|
+
import { jsx } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
function TileGrid({ columns = 3, as: Track = "div", className, children, ...rest }) {
|
|
6
|
+
return /* @__PURE__ */ jsx("div", { className: cx("crewlet-tile-grid", className), "data-columns": columns, children: /* @__PURE__ */ jsx(Track, { ...rest, className: "crewlet-tile-grid__track", children }) });
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export { TileGrid };
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { VisuallyHidden } from './chunk-BZFWDIV6.js';
|
|
2
2
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
3
|
-
import './List-
|
|
3
|
+
import './List-YHLIZFK4.css';
|
|
4
4
|
import { createContext, useContext, Children, isValidElement, cloneElement } from 'react';
|
|
5
5
|
import { CircleAlertGlyph } from '@crewlethq/icons/glyphs';
|
|
6
6
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
7
7
|
|
|
8
8
|
var ListContext = createContext({ variant: "divided", templated: false });
|
|
9
9
|
function List({ variant = "divided", template, className, style, children, ...rest }) {
|
|
10
|
-
const Tag = variant === "numbered" ? "ol" : "ul";
|
|
10
|
+
const Tag = variant === "numbered" || variant === "numbered-divided" ? "ol" : "ul";
|
|
11
11
|
const templated = template !== void 0;
|
|
12
12
|
return /* @__PURE__ */ jsx(ListContext.Provider, { value: { variant, templated }, children: /* @__PURE__ */ jsx(
|
|
13
13
|
Tag,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Link } from './chunk-FBSEJO2C.js';
|
|
2
2
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
3
|
-
import './ObjectHeader-
|
|
3
|
+
import './ObjectHeader-ZOS22FKX.css';
|
|
4
4
|
import { ArrowUpRightGlyph } from '@crewlethq/icons/glyphs';
|
|
5
5
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
6
6
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DisclosureAnatomy } from './chunk-FZVJDJFN.js';
|
|
2
2
|
import { useHeadingLevel } from './chunk-PQADV6P6.js';
|
|
3
3
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
4
|
-
import './Disclosure-
|
|
4
|
+
import './Disclosure-P4FH3C35.css';
|
|
5
5
|
import { useState, useId, useCallback } from 'react';
|
|
6
6
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
7
7
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
2
|
-
import './StatGroup-
|
|
2
|
+
import './StatGroup-ZMW7VQWP.css';
|
|
3
3
|
import { jsx } from 'react/jsx-runtime';
|
|
4
4
|
|
|
5
5
|
function StatGroup({ columns = 4, flush = false, className, children, ...rest }) {
|
|
@@ -8,6 +8,7 @@ function StatGroup({ columns = 4, flush = false, className, children, ...rest })
|
|
|
8
8
|
{
|
|
9
9
|
...rest,
|
|
10
10
|
className: cx("crewlet-stat-group", flush && "crewlet-stat-group--flush", className),
|
|
11
|
+
"data-columns": columns,
|
|
11
12
|
style: { "--crewlet-stat-group-cols": columns, ...rest.style },
|
|
12
13
|
children
|
|
13
14
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PageHeader } from './chunk-HOXGBLEY.js';
|
|
2
|
-
import { DataTable } from './chunk-A23KDROH.js';
|
|
3
2
|
import { DateTimePicker } from './chunk-UB6MLXUL.js';
|
|
3
|
+
import { DataTable } from './chunk-FXBGEANQ.js';
|
|
4
4
|
import { useListbox, useOptionKeys } from './chunk-7KHM2FZH.js';
|
|
5
5
|
import { Popover } from './chunk-KHJIEPZV.js';
|
|
6
6
|
import { Toolbar } from './chunk-NR4CPM4T.js';
|
|
@@ -4,7 +4,7 @@ import { VisuallyHidden } from './chunk-BZFWDIV6.js';
|
|
|
4
4
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
5
5
|
import './HitArea-QUOS6ZDJ.css';
|
|
6
6
|
import './ArtifactKinds-CVD3FCYO.css';
|
|
7
|
-
import './ArtifactMakeRow-
|
|
7
|
+
import './ArtifactMakeRow-6UX2LTF7.css';
|
|
8
8
|
import { useId } from 'react';
|
|
9
9
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
10
10
|
|
|
@@ -14,7 +14,17 @@ function ArtifactMakeRow({
|
|
|
14
14
|
"aria-labelledby": ariaLabelledBy,
|
|
15
15
|
className
|
|
16
16
|
}) {
|
|
17
|
-
return /* @__PURE__ */ jsx("div", { className: cx("crewlet-make-row", className), children: /* @__PURE__ */ jsx(
|
|
17
|
+
return /* @__PURE__ */ jsx("div", { className: cx("crewlet-make-row", className), children: /* @__PURE__ */ jsx(
|
|
18
|
+
"ul",
|
|
19
|
+
{
|
|
20
|
+
className: "crewlet-make-row__list",
|
|
21
|
+
"aria-label": ariaLabel,
|
|
22
|
+
"aria-labelledby": ariaLabelledBy,
|
|
23
|
+
"data-count": items.length,
|
|
24
|
+
style: { "--crewlet-make-row-count": items.length },
|
|
25
|
+
children: items.map((item) => /* @__PURE__ */ jsx("li", { className: "crewlet-make-row__cell", children: /* @__PURE__ */ jsx(MakeItem, { item }) }, item.kind))
|
|
26
|
+
}
|
|
27
|
+
) });
|
|
18
28
|
}
|
|
19
29
|
function MakeItem({ item }) {
|
|
20
30
|
const { kind, label, detail, href, disabledReason } = item;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CopyButton } from './chunk-W46LPU4R.js';
|
|
2
2
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
3
|
-
import './CodeBlock-
|
|
3
|
+
import './CodeBlock-N5ETJF24.css';
|
|
4
4
|
import { forwardRef, useRef, useState, useLayoutEffect } from 'react';
|
|
5
5
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
6
6
|
|
|
@@ -8,7 +8,7 @@ import { IconButton } from './chunk-4FQT6ZAY.js';
|
|
|
8
8
|
import { returnFocus } from './chunk-NUZHC6MM.js';
|
|
9
9
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
10
10
|
import './ArtifactKinds-CVD3FCYO.css';
|
|
11
|
-
import './ArtifactBar-
|
|
11
|
+
import './ArtifactBar-6PGWGKN2.css';
|
|
12
12
|
import { useId, useState, useRef, useEffect } from 'react';
|
|
13
13
|
import { ChevronLeftGlyph, EllipsisGlyph, ChevronDownGlyph } from '@crewlethq/icons/glyphs';
|
|
14
14
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
@@ -2,7 +2,7 @@ import { Skeleton } from './chunk-TEUQWOWZ.js';
|
|
|
2
2
|
import { PrincipalAvatar } from './chunk-CI3VPIJN.js';
|
|
3
3
|
import { RelativeTime } from './chunk-3CZ7XAVY.js';
|
|
4
4
|
import { ArtifactKindGround } from './chunk-UBZDYOCA.js';
|
|
5
|
-
import { Card } from './chunk-
|
|
5
|
+
import { Card } from './chunk-INHXF2CL.js';
|
|
6
6
|
import { AvatarStack } from './chunk-5AQBPHZD.js';
|
|
7
7
|
import { ArtifactAccessGlyph } from './chunk-BGLKLXL3.js';
|
|
8
8
|
import { ArtifactKindGlyph } from './chunk-CE2THTQR.js';
|
|
@@ -24,6 +24,7 @@ function ListInput({
|
|
|
24
24
|
disabled = false,
|
|
25
25
|
optional,
|
|
26
26
|
enterHint = true,
|
|
27
|
+
focusOnMount = false,
|
|
27
28
|
addLabel = (name) => `Add ${name}`,
|
|
28
29
|
itemLabel = (name, position) => `${name} ${position}`,
|
|
29
30
|
newItemLabel = (name) => `New ${name}`,
|
|
@@ -45,6 +46,10 @@ function ListInput({
|
|
|
45
46
|
const downs = useRef(/* @__PURE__ */ new Map());
|
|
46
47
|
const addBox = useRef(null);
|
|
47
48
|
const focusNext = useRef(null);
|
|
49
|
+
const focusAtMount = useRef(focusOnMount);
|
|
50
|
+
useLayoutEffect(() => {
|
|
51
|
+
if (focusAtMount.current) addBox.current?.focus();
|
|
52
|
+
}, []);
|
|
48
53
|
useLayoutEffect(() => {
|
|
49
54
|
const want = focusNext.current;
|
|
50
55
|
if (!want) return;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { useHeadingLevel, headingTag } from './chunk-PQADV6P6.js';
|
|
2
|
+
import { cx } from './chunk-ODEQTPFM.js';
|
|
3
|
+
import './CatalogTile-TGR2ZZVQ.css';
|
|
4
|
+
import { useId } from 'react';
|
|
5
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
function CatalogTile({
|
|
8
|
+
as: Element = "article",
|
|
9
|
+
mark,
|
|
10
|
+
title,
|
|
11
|
+
headingLevel,
|
|
12
|
+
status,
|
|
13
|
+
description,
|
|
14
|
+
meta,
|
|
15
|
+
action,
|
|
16
|
+
quiet = false,
|
|
17
|
+
className,
|
|
18
|
+
...rest
|
|
19
|
+
}) {
|
|
20
|
+
const level = useHeadingLevel();
|
|
21
|
+
const Heading = headingTag(headingLevel ?? level);
|
|
22
|
+
const titleId = useId();
|
|
23
|
+
const foot = meta !== void 0 || action !== void 0;
|
|
24
|
+
return /* @__PURE__ */ jsxs(
|
|
25
|
+
Element,
|
|
26
|
+
{
|
|
27
|
+
"aria-labelledby": Element === "article" ? titleId : void 0,
|
|
28
|
+
...rest,
|
|
29
|
+
className: cx("crewlet-catalog-tile", quiet && "crewlet-catalog-tile--quiet", className),
|
|
30
|
+
children: [
|
|
31
|
+
/* @__PURE__ */ jsxs("div", { className: "crewlet-catalog-tile__head", children: [
|
|
32
|
+
/* @__PURE__ */ jsx("span", { className: "crewlet-catalog-tile__mark", "aria-hidden": "true", children: mark }),
|
|
33
|
+
/* @__PURE__ */ jsxs("span", { className: "crewlet-catalog-tile__title", children: [
|
|
34
|
+
/* @__PURE__ */ jsx(Heading, { id: titleId, className: "crewlet-catalog-tile__name", children: title }),
|
|
35
|
+
status === void 0 || status === null ? null : /* @__PURE__ */ jsx("span", { className: "crewlet-catalog-tile__status", children: status })
|
|
36
|
+
] })
|
|
37
|
+
] }),
|
|
38
|
+
description === void 0 ? null : /* @__PURE__ */ jsx("p", { className: "crewlet-catalog-tile__description", children: description }),
|
|
39
|
+
foot ? /* @__PURE__ */ jsxs("div", { className: "crewlet-catalog-tile__foot", children: [
|
|
40
|
+
/* @__PURE__ */ jsx("span", { className: "crewlet-catalog-tile__meta", children: meta }),
|
|
41
|
+
action === void 0 ? null : /* @__PURE__ */ jsx("span", { className: "crewlet-catalog-tile__action", children: action })
|
|
42
|
+
] }) : null
|
|
43
|
+
]
|
|
44
|
+
}
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export { CatalogTile };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DisclosureAnatomy } from './chunk-FZVJDJFN.js';
|
|
2
2
|
import { useHeadingLevel } from './chunk-PQADV6P6.js';
|
|
3
3
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
4
|
-
import './Disclosure-
|
|
4
|
+
import './Disclosure-P4FH3C35.css';
|
|
5
5
|
import './Accordion-ZI2WLD5C.css';
|
|
6
6
|
import { createContext, useState, useCallback, useMemo, useContext, useId } from 'react';
|
|
7
7
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
@@ -32,6 +32,7 @@ export * from '../CanvasBoard/index.js';
|
|
|
32
32
|
export * from '../CanvasSchematic/index.js';
|
|
33
33
|
export * from '../CanvasToolbar/index.js';
|
|
34
34
|
export * from '../Card/index.js';
|
|
35
|
+
export * from '../CatalogTile/index.js';
|
|
35
36
|
export * from '../ChangeMark/index.js';
|
|
36
37
|
export * from '../CharacterPicker/index.js';
|
|
37
38
|
export * from '../Charts/index.js';
|
|
@@ -133,6 +134,7 @@ export * from '../Section/index.js';
|
|
|
133
134
|
export * from '../SegmentedControl/index.js';
|
|
134
135
|
export * from '../SegmentedMeter/index.js';
|
|
135
136
|
export * from '../Select/index.js';
|
|
137
|
+
export * from '../SettingsTable/index.js';
|
|
136
138
|
export * from '../ShareDialog/index.js';
|
|
137
139
|
export * from '../SheetColumnEditor/index.js';
|
|
138
140
|
export * from '../SheetGrid/index.js';
|
|
@@ -163,6 +165,7 @@ export * from '../ThemeGallery/index.js';
|
|
|
163
165
|
export * from '../ThemeSwatch/index.js';
|
|
164
166
|
export * from '../ThemeSwitcher/index.js';
|
|
165
167
|
export * from '../ThemeToggle/index.js';
|
|
168
|
+
export * from '../TileGrid/index.js';
|
|
166
169
|
export * from '../TimeWindowPicker/index.js';
|
|
167
170
|
export * from '../Timeline/index.js';
|
|
168
171
|
export * from '../Toaster/index.js';
|