@crewlethq/ui 0.71.0 → 0.73.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 +19 -1
- package/dist/AgentHandoffPanel/index.js +4 -4
- package/dist/ArrangeFrame/index.js +2 -2
- package/dist/ArrangeList/index.js +4 -4
- package/dist/ArtifactCard/index.js +4 -4
- package/dist/BriefCard/BriefCard.d.ts +48 -35
- package/dist/BriefCard/index.d.ts +2 -2
- package/dist/BriefCard/index.js +1 -1
- package/dist/{BriefCard-L66R5U32.css → BriefCard-VKTH3BSW.css} +33 -45
- package/dist/Checkbox/index.js +3 -3
- package/dist/ColorField/index.js +3 -3
- package/dist/Combobox/index.js +3 -3
- package/dist/CommandPalette/index.js +3 -3
- package/dist/CommentThread/index.js +4 -4
- package/dist/Composer/index.js +3 -3
- package/dist/ConfirmField/index.js +3 -3
- package/dist/DataGrid/index.js +4 -4
- package/dist/DataTable/index.js +4 -4
- package/dist/DataView/index.js +5 -5
- package/dist/DeepWorkCard/index.js +2 -2
- package/dist/DocTabsEditor/index.js +3 -3
- package/dist/{Editor-NNQEALNT.js → Editor-6PBP444G.js} +2 -2
- package/dist/Input/index.js +2 -2
- package/dist/ListInput/index.js +3 -3
- package/dist/PresenterView/index.js +2 -2
- package/dist/PrincipalPicker/index.js +4 -4
- package/dist/ProposalCard/index.js +4 -4
- package/dist/RecordChip/RecordChip.d.ts +46 -0
- package/dist/RecordChip/RecordChipList.d.ts +17 -0
- package/dist/RecordChip/index.d.ts +5 -0
- package/dist/RecordChip/index.js +6 -0
- package/dist/RecordChip-53J66RA6.css +184 -0
- package/dist/ResultTableCard/index.js +2 -2
- package/dist/RichEditor/index.js +1 -1
- package/dist/SelectionBar/index.js +2 -2
- package/dist/SheetColumnEditor/index.js +4 -4
- package/dist/SheetGrid/index.js +1 -1
- package/dist/SlideFilmstrip/index.js +1 -1
- package/dist/Switcher/index.js +3 -3
- package/dist/Table/Table.d.ts +29 -2
- package/dist/Table/index.js +1 -1
- package/dist/{Table-RUYMMWXT.css → Table-MN3FIA2O.css} +28 -0
- package/dist/TagsInput/index.js +2 -2
- package/dist/TimeRangePicker/index.js +3 -3
- package/dist/TimeWindowPicker/index.js +3 -3
- package/dist/ValueField/index.js +4 -4
- package/dist/{chunk-3EETQFAM.js → chunk-4HCYBQ6B.js} +1 -1
- package/dist/chunk-4KSCGXLJ.js +106 -0
- package/dist/{chunk-H32JW6CZ.js → chunk-52D5EFHL.js} +2 -2
- package/dist/chunk-75NQV4R4.js +72 -0
- package/dist/{chunk-J5WWMC35.js → chunk-AMYU5W2H.js} +2 -2
- package/dist/{chunk-KAA3GFTP.js → chunk-AWQQ5I34.js} +2 -2
- package/dist/chunk-BFM5G2Z6.js +60 -0
- package/dist/{chunk-3LP3VPLT.js → chunk-BW6MQO2B.js} +1 -1
- package/dist/{chunk-6C6YK75K.js → chunk-EKZFB34W.js} +1 -1
- package/dist/{chunk-LQWORB5B.js → chunk-F5QBQP63.js} +2 -2
- package/dist/{chunk-PBCNINMB.js → chunk-FFWMTIMH.js} +1 -1
- package/dist/{chunk-YGWIWDXE.js → chunk-FX7FDPCM.js} +1 -1
- package/dist/{chunk-4MVLED6E.js → chunk-H6S6NRZL.js} +1 -1
- package/dist/{chunk-BWFJB5JD.js → chunk-HGWHIUZ5.js} +1 -1
- package/dist/{chunk-ADSOY7UM.js → chunk-I7YQNRTQ.js} +1 -1
- package/dist/{chunk-MFQPGMJT.js → chunk-IXPC5D36.js} +1 -1
- package/dist/{chunk-7LSSYHOT.js → chunk-J7INWERB.js} +1 -1
- package/dist/{chunk-SO5SXSTP.js → chunk-JXJNX7QQ.js} +1 -1
- package/dist/{chunk-FURJVZCT.js → chunk-LEM3ZY35.js} +1 -1
- package/dist/{chunk-JVII5264.js → chunk-LQXYAB2Q.js} +1 -1
- package/dist/{chunk-5OFRDX66.js → chunk-NATDVYEY.js} +1 -1
- package/dist/{chunk-W5AXJWOW.js → chunk-O4NQVNO5.js} +1 -1
- package/dist/{chunk-ZUBFVK6B.js → chunk-OFARYSWS.js} +1 -1
- package/dist/{chunk-3EY5SEGH.js → chunk-OSMR6TSC.js} +1 -1
- package/dist/{chunk-NXNLAZPK.js → chunk-SPWBT7FE.js} +1 -1
- package/dist/{chunk-BWAUL5MB.js → chunk-YAL6VBRK.js} +2 -2
- package/dist/{chunk-TWJERLT3.js → chunk-YZSG3JIY.js} +1 -1
- package/dist/generated/index.d.ts +1 -0
- package/dist/generated/index.js +64 -63
- package/dist/index.js +64 -63
- package/dist/styles.css +250 -47
- package/package.json +3 -3
- package/dist/chunk-5DJMFRSZ.js +0 -58
- package/dist/chunk-VBA5FSWV.js +0 -87
- package/dist/{chunk-HEIOLITO.js → chunk-5VMAJAVF.js} +1 -1
- package/dist/{chunk-ABZC3NLM.js → chunk-ABGLGAFJ.js} +0 -0
- package/dist/{chunk-PLNJEDGI.js → chunk-I4IO56EY.js} +1 -1
- package/dist/{chunk-P64MIA7C.js → chunk-JKMBC4NB.js} +1 -1
- package/dist/{chunk-V6X3DJ2G.js → chunk-PRN5IP2R.js} +1 -1
- package/dist/{chunk-L4HHWG4V.js → chunk-V2EV56MY.js} +1 -1
- package/dist/{chunk-ETSF7SU6.js → chunk-ZMML6NRS.js} +1 -1
|
@@ -4,7 +4,7 @@ import { RelativeTime } from './chunk-EJNJMHQG.js';
|
|
|
4
4
|
import { Card } from './chunk-4AUTALJA.js';
|
|
5
5
|
import { AvatarStack } from './chunk-BKP6XCAJ.js';
|
|
6
6
|
import { ArtifactKindGround } from './chunk-NHLNHH4J.js';
|
|
7
|
-
import { Checkbox } from './chunk-
|
|
7
|
+
import { Checkbox } from './chunk-FFWMTIMH.js';
|
|
8
8
|
import { ArtifactAccessGlyph } from './chunk-DOY3KC6I.js';
|
|
9
9
|
import { ArtifactKindGlyph } from './chunk-RSKW25Y5.js';
|
|
10
10
|
import { VisuallyHidden } from './chunk-UT6CW3C7.js';
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { SuggestionList, SuggestionRow } from './chunk-Y7PVLEZJ.js';
|
|
2
|
+
import { StatusCard } from './chunk-NTQPJJAN.js';
|
|
3
|
+
import { StatusDot } from './chunk-WIATRXEJ.js';
|
|
4
|
+
import { Button } from './chunk-DGXZ635L.js';
|
|
5
|
+
import { cx } from './chunk-ODEQTPFM.js';
|
|
6
|
+
import './BriefCard-VKTH3BSW.css';
|
|
7
|
+
import { useEffect } from 'react';
|
|
8
|
+
import { MessageCircleQuestionMarkGlyph, CircleCheckGlyph } from '@crewlethq/icons/glyphs';
|
|
9
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
10
|
+
|
|
11
|
+
var BRIEF_CARD_MAX_NEEDS = 3;
|
|
12
|
+
var BRIEF_CARD_MAX_FOLLOW_UPS = 2;
|
|
13
|
+
var BRIEF_CARD_LABELS = {
|
|
14
|
+
heading: "Brief",
|
|
15
|
+
needs: "Needs you",
|
|
16
|
+
first: "Do first",
|
|
17
|
+
followUps: "Ask next",
|
|
18
|
+
count: (n) => n === 1 ? "1 thing needs you" : `${n} things need you`,
|
|
19
|
+
allClear: "Nothing needs you"
|
|
20
|
+
};
|
|
21
|
+
function BriefCard({
|
|
22
|
+
scope,
|
|
23
|
+
asOf,
|
|
24
|
+
about,
|
|
25
|
+
needs,
|
|
26
|
+
context,
|
|
27
|
+
followUps,
|
|
28
|
+
labels: overrides,
|
|
29
|
+
className,
|
|
30
|
+
...rest
|
|
31
|
+
}) {
|
|
32
|
+
const labels = overrides ? { ...BRIEF_CARD_LABELS, ...overrides } : BRIEF_CARD_LABELS;
|
|
33
|
+
const handedNeeds = needs.length;
|
|
34
|
+
const handedFollowUps = followUps?.length ?? 0;
|
|
35
|
+
useEffect(() => {
|
|
36
|
+
if (!developing()) return;
|
|
37
|
+
if (handedNeeds > BRIEF_CARD_MAX_NEEDS) {
|
|
38
|
+
console.warn(
|
|
39
|
+
`[crewlet] BriefCard was handed ${handedNeeds} needs and draws the first ${BRIEF_CARD_MAX_NEEDS}: rank and cap them before passing them.`
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
if (handedFollowUps > BRIEF_CARD_MAX_FOLLOW_UPS) {
|
|
43
|
+
console.warn(
|
|
44
|
+
`[crewlet] BriefCard was handed ${handedFollowUps} follow-ups and draws the first ${BRIEF_CARD_MAX_FOLLOW_UPS}.`
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
}, [handedNeeds, handedFollowUps]);
|
|
48
|
+
const rows = needs.slice(0, BRIEF_CARD_MAX_NEEDS);
|
|
49
|
+
const asks = followUps ? followUps.slice(0, BRIEF_CARD_MAX_FOLLOW_UPS) : [];
|
|
50
|
+
const ranked = rows.length > 1;
|
|
51
|
+
const hasScope = !(scope === void 0 || scope === null || scope === "");
|
|
52
|
+
const hasAsOf = !(asOf === void 0 || asOf === null || asOf === "");
|
|
53
|
+
const hasContext = !(context === void 0 || context === null || context === "");
|
|
54
|
+
const subtitle = hasScope || hasAsOf ? /* @__PURE__ */ jsxs("span", { className: "crewlet-brief-card__where", children: [
|
|
55
|
+
hasScope ? /* @__PURE__ */ jsx("span", { children: scope }) : null,
|
|
56
|
+
hasScope && hasAsOf ? /* @__PURE__ */ jsx("span", { "aria-hidden": "true", children: "\xB7" }) : null,
|
|
57
|
+
hasAsOf ? /* @__PURE__ */ jsx("span", { className: "crewlet-brief-card__asof", children: asOf }) : null
|
|
58
|
+
] }) : void 0;
|
|
59
|
+
return /* @__PURE__ */ jsx(
|
|
60
|
+
StatusCard,
|
|
61
|
+
{
|
|
62
|
+
...rest,
|
|
63
|
+
title: labels.heading,
|
|
64
|
+
subtitle,
|
|
65
|
+
status: rows.length > 0 ? {
|
|
66
|
+
label: labels.count(rows.length),
|
|
67
|
+
tone: rows.some((need) => need.tone === "danger") ? "danger" : "warning"
|
|
68
|
+
} : { label: labels.allClear, tone: "success", icon: /* @__PURE__ */ jsx(CircleCheckGlyph, { size: "xs" }) },
|
|
69
|
+
className: cx("crewlet-brief-card", className),
|
|
70
|
+
children: /* @__PURE__ */ jsxs("div", { className: "crewlet-brief-card__body", children: [
|
|
71
|
+
/* @__PURE__ */ jsx("p", { className: "crewlet-brief-card__about", children: about }),
|
|
72
|
+
rows.length === 0 ? null : (
|
|
73
|
+
// A list the reader moves through by item; Safari drops the role of a list styled without markers.
|
|
74
|
+
// eslint-disable-next-line jsx-a11y/no-redundant-roles
|
|
75
|
+
/* @__PURE__ */ jsx("ol", { role: "list", "aria-label": labels.needs, className: "crewlet-brief-card__needs", children: rows.map((need, i) => /* @__PURE__ */ jsxs(
|
|
76
|
+
"li",
|
|
77
|
+
{
|
|
78
|
+
className: cx("crewlet-brief-card__need", i === 0 && ranked && "crewlet-brief-card__need--first"),
|
|
79
|
+
children: [
|
|
80
|
+
/* @__PURE__ */ jsx("span", { className: "crewlet-brief-card__dot", children: /* @__PURE__ */ jsx(StatusDot, { tone: need.tone ?? "warning" }) }),
|
|
81
|
+
/* @__PURE__ */ jsxs("span", { className: "crewlet-brief-card__words", children: [
|
|
82
|
+
i === 0 && ranked ? /* @__PURE__ */ jsx("span", { className: "crewlet-brief-card__first", children: labels.first }) : null,
|
|
83
|
+
/* @__PURE__ */ jsx("span", { children: need.text }),
|
|
84
|
+
need.detail === void 0 || need.detail === null ? null : /* @__PURE__ */ jsx("span", { className: "crewlet-brief-card__detail", children: need.detail })
|
|
85
|
+
] }),
|
|
86
|
+
need.action ? /* @__PURE__ */ jsx(Button, { size: "small", variant: i === 0 ? "primary" : "secondary", onClick: need.action.onSelect, children: need.action.label }) : null
|
|
87
|
+
]
|
|
88
|
+
},
|
|
89
|
+
need.key
|
|
90
|
+
)) })
|
|
91
|
+
),
|
|
92
|
+
hasContext ? /* @__PURE__ */ jsx("p", { className: "crewlet-brief-card__context", children: context }) : null,
|
|
93
|
+
asks.length > 0 ? /* @__PURE__ */ jsx(SuggestionList, { "aria-label": labels.followUps, className: "crewlet-brief-card__follow-ups", children: asks.map((f) => /* @__PURE__ */ jsx(SuggestionRow, { icon: /* @__PURE__ */ jsx(MessageCircleQuestionMarkGlyph, { size: "sm" }), onSelect: f.onSelect, children: f.question }, f.key)) }) : null
|
|
94
|
+
] })
|
|
95
|
+
}
|
|
96
|
+
);
|
|
97
|
+
}
|
|
98
|
+
function developing() {
|
|
99
|
+
try {
|
|
100
|
+
return process.env.NODE_ENV !== "production";
|
|
101
|
+
} catch {
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export { BRIEF_CARD_LABELS, BRIEF_CARD_MAX_FOLLOW_UPS, BRIEF_CARD_MAX_NEEDS, BriefCard };
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { useReorder } from './chunk-MPVMB2DV.js';
|
|
2
2
|
import { Kbd } from './chunk-ANTAQAR4.js';
|
|
3
|
-
import { FormField, Textarea } from './chunk-
|
|
3
|
+
import { FormField, Textarea } from './chunk-ZMML6NRS.js';
|
|
4
4
|
import { characterCountState, CharacterCount, countCharacters } from './chunk-PGCLHYVP.js';
|
|
5
|
-
import { announce } from './chunk-2G355KDJ.js';
|
|
6
5
|
import { Button } from './chunk-DGXZ635L.js';
|
|
7
6
|
import { isComposing } from './chunk-H5XTJ7GJ.js';
|
|
8
7
|
import { IconButton } from './chunk-UAUP6XGK.js';
|
|
8
|
+
import { announce } from './chunk-2G355KDJ.js';
|
|
9
9
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
10
10
|
import './ListInput-4ISMGZDQ.css';
|
|
11
11
|
import { forwardRef, useState, useRef, useImperativeHandle, useLayoutEffect, useId } from 'react';
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { VisuallyHidden } from './chunk-UT6CW3C7.js';
|
|
2
|
+
import { cx } from './chunk-ODEQTPFM.js';
|
|
3
|
+
import './Table-MN3FIA2O.css';
|
|
4
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
5
|
+
|
|
6
|
+
var Table = ({
|
|
7
|
+
headers,
|
|
8
|
+
data,
|
|
9
|
+
caption,
|
|
10
|
+
captionHidden = false,
|
|
11
|
+
emptyMessage = "No data available",
|
|
12
|
+
actionButton,
|
|
13
|
+
maxHeight,
|
|
14
|
+
align,
|
|
15
|
+
footer,
|
|
16
|
+
framed = true,
|
|
17
|
+
columns = "even",
|
|
18
|
+
nowrap,
|
|
19
|
+
className = ""
|
|
20
|
+
}) => {
|
|
21
|
+
const columnCount = Math.max(1, headers.length);
|
|
22
|
+
const held = columns === "content" ? nowrap : void 0;
|
|
23
|
+
const edge = (index) => cx(align?.[index] === "end" && "crewlet-table__cell--end", held?.[index] === true && "crewlet-table__cell--nowrap") || void 0;
|
|
24
|
+
return /* @__PURE__ */ jsxs(
|
|
25
|
+
"div",
|
|
26
|
+
{
|
|
27
|
+
className: cx(
|
|
28
|
+
"crewlet-table",
|
|
29
|
+
!framed && "crewlet-table--flush",
|
|
30
|
+
columns === "content" && "crewlet-table--content",
|
|
31
|
+
className
|
|
32
|
+
),
|
|
33
|
+
children: [
|
|
34
|
+
/* @__PURE__ */ jsx(
|
|
35
|
+
"div",
|
|
36
|
+
{
|
|
37
|
+
className: "crewlet-table__container",
|
|
38
|
+
style: (
|
|
39
|
+
// Only the height: the stylesheet scrolls both axes unconditionally,
|
|
40
|
+
// because with `overflow-x: auto` declared beside it a `visible`
|
|
41
|
+
// vertical axis was never reachable. See Table.css.
|
|
42
|
+
maxHeight ? { "--crewlet-table-max-height": maxHeight } : void 0
|
|
43
|
+
),
|
|
44
|
+
children: /* @__PURE__ */ jsxs("table", { className: "crewlet-table__table", children: [
|
|
45
|
+
caption != null && (captionHidden ? /* @__PURE__ */ jsx("caption", { children: /* @__PURE__ */ jsx(VisuallyHidden, { children: caption }) }) : /* @__PURE__ */ jsx("caption", { className: "crewlet-table__caption", children: caption })),
|
|
46
|
+
/* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsx("tr", { className: "crewlet-table__header", children: headers.map((header, index) => (
|
|
47
|
+
// The index is the key because a header is a position: the
|
|
48
|
+
// columns of one table do not reorder between renders.
|
|
49
|
+
/* @__PURE__ */ jsx("th", { scope: "col", className: edge(index), children: header }, index)
|
|
50
|
+
)) }) }),
|
|
51
|
+
/* @__PURE__ */ jsx("tbody", { children: data && data.length > 0 ? data.map((row, rowIndex) => /* @__PURE__ */ jsx("tr", { className: "crewlet-table__row", children: row.map((cell, cellIndex) => /* @__PURE__ */ jsx("td", { className: edge(cellIndex), children: cell }, cellIndex)) }, rowIndex)) : /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx("td", { className: "crewlet-table__empty", colSpan: columnCount, children: emptyMessage }) }) }),
|
|
52
|
+
footer && footer.length > 0 ? /* @__PURE__ */ jsx("tfoot", { children: /* @__PURE__ */ jsx("tr", { className: "crewlet-table__footer", children: footer.map(
|
|
53
|
+
(cell, index) => index === 0 ? /* @__PURE__ */ jsx("th", { scope: "row", className: edge(index), children: cell }, index) : /* @__PURE__ */ jsx("td", { className: edge(index), children: cell }, index)
|
|
54
|
+
) }) }) : null
|
|
55
|
+
] })
|
|
56
|
+
}
|
|
57
|
+
),
|
|
58
|
+
actionButton && /* @__PURE__ */ jsx(
|
|
59
|
+
"button",
|
|
60
|
+
{
|
|
61
|
+
type: "button",
|
|
62
|
+
className: "crewlet-table__action-btn",
|
|
63
|
+
onClick: actionButton.onClick,
|
|
64
|
+
children: /* @__PURE__ */ jsx("span", { className: "crewlet-table__action-text", children: actionButton.label })
|
|
65
|
+
}
|
|
66
|
+
)
|
|
67
|
+
]
|
|
68
|
+
}
|
|
69
|
+
);
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
export { Table };
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { PageHeader } from './chunk-FPDIHEM4.js';
|
|
2
2
|
import { FilterPill } from './chunk-K4LZXSKZ.js';
|
|
3
|
-
import { DataTable } from './chunk-
|
|
3
|
+
import { DataTable } from './chunk-HGWHIUZ5.js';
|
|
4
4
|
import { DateTimePicker } from './chunk-HPI5J6AR.js';
|
|
5
5
|
import { useListbox, useOptionKeys } from './chunk-7KHM2FZH.js';
|
|
6
6
|
import { Toolbar } from './chunk-NR4CPM4T.js';
|
|
7
7
|
import { Popover } from './chunk-KHJIEPZV.js';
|
|
8
8
|
import { RelativeTime } from './chunk-EJNJMHQG.js';
|
|
9
9
|
import { Kbd } from './chunk-ANTAQAR4.js';
|
|
10
|
-
import { Input } from './chunk-
|
|
10
|
+
import { Input } from './chunk-ZMML6NRS.js';
|
|
11
11
|
import { Count } from './chunk-MLDTLZAO.js';
|
|
12
12
|
import { Menu } from './chunk-OQG4P5KU.js';
|
|
13
13
|
import { Button } from './chunk-DGXZ635L.js';
|
|
@@ -2,9 +2,9 @@ import { Select } from './chunk-VK45YJLH.js';
|
|
|
2
2
|
import { SHEET_LABELS, SHEET_COLUMN_TYPES, optionHue, retypeColumn } from './chunk-LFSIKGRQ.js';
|
|
3
3
|
import { HueSwatch } from './chunk-AQIFKLXY.js';
|
|
4
4
|
import { NODE_HUES, NODE_HUE_NAMES } from './chunk-AYKXMIOR.js';
|
|
5
|
-
import { Checkbox } from './chunk-
|
|
5
|
+
import { Checkbox } from './chunk-FFWMTIMH.js';
|
|
6
6
|
import { Kbd } from './chunk-ANTAQAR4.js';
|
|
7
|
-
import { FormField, Input } from './chunk-
|
|
7
|
+
import { FormField, Input } from './chunk-ZMML6NRS.js';
|
|
8
8
|
import { Menu } from './chunk-OQG4P5KU.js';
|
|
9
9
|
import { Button } from './chunk-DGXZ635L.js';
|
|
10
10
|
import { IconButton } from './chunk-UAUP6XGK.js';
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { Popover } from './chunk-KHJIEPZV.js';
|
|
2
|
+
import { cx } from './chunk-ODEQTPFM.js';
|
|
3
|
+
import './RecordChip-53J66RA6.css';
|
|
4
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
5
|
+
import { useId, Children, isValidElement } from 'react';
|
|
6
|
+
|
|
7
|
+
function RecordChip({ code, label, title, glyph, children, actions, meta, className }) {
|
|
8
|
+
const said = code ?? label ?? title;
|
|
9
|
+
const hasBody = !(children === void 0 || children === null || children === false);
|
|
10
|
+
const hasActions = !(actions === void 0 || actions === null || actions === false);
|
|
11
|
+
return /* @__PURE__ */ jsxs(
|
|
12
|
+
Popover,
|
|
13
|
+
{
|
|
14
|
+
label: code ? `${code} ${title}` : title,
|
|
15
|
+
align: "start",
|
|
16
|
+
className: "crewlet-record-chip__peek",
|
|
17
|
+
trigger: (open, toggle) => /* @__PURE__ */ jsxs(
|
|
18
|
+
"button",
|
|
19
|
+
{
|
|
20
|
+
type: "button",
|
|
21
|
+
className: cx("crewlet-record-chip", code ? "crewlet-record-chip--code" : null, className),
|
|
22
|
+
"data-open": open || void 0,
|
|
23
|
+
"aria-label": code ? `${code}, ${title}` : void 0,
|
|
24
|
+
title: code ? void 0 : said,
|
|
25
|
+
onClick: toggle,
|
|
26
|
+
children: [
|
|
27
|
+
glyph === void 0 || glyph === null ? null : /* @__PURE__ */ jsx("span", { className: "crewlet-record-chip__glyph", "aria-hidden": "true", children: glyph }),
|
|
28
|
+
/* @__PURE__ */ jsx("span", { className: "crewlet-record-chip__text", children: said })
|
|
29
|
+
]
|
|
30
|
+
}
|
|
31
|
+
),
|
|
32
|
+
children: [
|
|
33
|
+
/* @__PURE__ */ jsxs("div", { className: "crewlet-record-chip__head", children: [
|
|
34
|
+
glyph === void 0 || glyph === null ? null : /* @__PURE__ */ jsx("span", { className: "crewlet-record-chip__head-glyph", "aria-hidden": "true", children: glyph }),
|
|
35
|
+
/* @__PURE__ */ jsxs("div", { className: "crewlet-record-chip__head-words", children: [
|
|
36
|
+
/* @__PURE__ */ jsxs("p", { className: "crewlet-record-chip__name", children: [
|
|
37
|
+
code ? /* @__PURE__ */ jsx("span", { className: "crewlet-record-chip__name-code", children: code }) : null,
|
|
38
|
+
code ? " " : null,
|
|
39
|
+
title
|
|
40
|
+
] }),
|
|
41
|
+
meta === void 0 || meta === null ? null : /* @__PURE__ */ jsx("p", { className: "crewlet-record-chip__meta", children: meta })
|
|
42
|
+
] })
|
|
43
|
+
] }),
|
|
44
|
+
hasBody ? /* @__PURE__ */ jsx("div", { className: "crewlet-record-chip__body", children }) : null,
|
|
45
|
+
hasActions ? /* @__PURE__ */ jsx("div", { className: "crewlet-record-chip__actions", children: actions }) : null
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
function RecordChipList({ label, children, className, ...rest }) {
|
|
51
|
+
const id = useId();
|
|
52
|
+
const items = Children.toArray(children).filter(isValidElement);
|
|
53
|
+
if (items.length === 0) return null;
|
|
54
|
+
return /* @__PURE__ */ jsxs("div", { ...rest, className: cx("crewlet-record-chip-list", className), children: [
|
|
55
|
+
/* @__PURE__ */ jsx("span", { id, className: "crewlet-record-chip-list__label", children: label }),
|
|
56
|
+
/* @__PURE__ */ jsx("ul", { role: "list", "aria-labelledby": id, className: "crewlet-record-chip-list__items", children: items.map((item, i) => /* @__PURE__ */ jsx("li", { className: "crewlet-record-chip-list__item", children: item }, item.key ?? i)) })
|
|
57
|
+
] });
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export { RecordChip, RecordChipList };
|
|
@@ -9,7 +9,7 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
9
9
|
var engine = null;
|
|
10
10
|
var loading = null;
|
|
11
11
|
function loadEngine() {
|
|
12
|
-
loading ??= import('./Editor-
|
|
12
|
+
loading ??= import('./Editor-6PBP444G.js').then(
|
|
13
13
|
(module) => {
|
|
14
14
|
engine = module.Editor;
|
|
15
15
|
return engine;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Timeline } from './chunk-4MJN2KN6.js';
|
|
2
2
|
import { Section } from './chunk-WFCWPXJN.js';
|
|
3
|
-
import { Composer } from './chunk-
|
|
3
|
+
import { Composer } from './chunk-NATDVYEY.js';
|
|
4
4
|
import { Disclosure } from './chunk-222VILSP.js';
|
|
5
5
|
import { ArtifactPanel } from './chunk-FFGEJUAP.js';
|
|
6
6
|
import { Button } from './chunk-DGXZ635L.js';
|
|
@@ -3,11 +3,11 @@ import { useListbox, useOptionKeys } from './chunk-7KHM2FZH.js';
|
|
|
3
3
|
import { Popover } from './chunk-KHJIEPZV.js';
|
|
4
4
|
import { KeyChip, highlightMatch } from './chunk-HBDA76EZ.js';
|
|
5
5
|
import { Skeleton } from './chunk-BRLZXYPA.js';
|
|
6
|
-
import { Input } from './chunk-
|
|
7
|
-
import { announce } from './chunk-2G355KDJ.js';
|
|
6
|
+
import { Input } from './chunk-ZMML6NRS.js';
|
|
8
7
|
import { useMediaMatch } from './chunk-RTPQDNW3.js';
|
|
9
8
|
import { focusables, isComposing } from './chunk-H5XTJ7GJ.js';
|
|
10
9
|
import { returnFocus } from './chunk-NUZHC6MM.js';
|
|
10
|
+
import { announce } from './chunk-2G355KDJ.js';
|
|
11
11
|
import { VisuallyHidden } from './chunk-UT6CW3C7.js';
|
|
12
12
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
13
13
|
import './Switcher-VWQMZUTN.css';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PrincipalAvatar } from './chunk-CI3VPIJN.js';
|
|
2
2
|
import { toInstant, RelativeTime, formatExact, toISO } from './chunk-EJNJMHQG.js';
|
|
3
3
|
import { Document } from './chunk-BXCL6P5Z.js';
|
|
4
|
-
import { Composer } from './chunk-
|
|
4
|
+
import { Composer } from './chunk-NATDVYEY.js';
|
|
5
5
|
import { Count } from './chunk-MLDTLZAO.js';
|
|
6
6
|
import { useHeadingLevel, headingTag } from './chunk-PQADV6P6.js';
|
|
7
7
|
import { Button } from './chunk-DGXZ635L.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Modal } from './chunk-C667GCU7.js';
|
|
2
2
|
import { Callout } from './chunk-BPCY7ZID.js';
|
|
3
3
|
import { SegmentedControl } from './chunk-TYIHFDMP.js';
|
|
4
|
-
import { FormField, Input } from './chunk-
|
|
4
|
+
import { FormField, Input } from './chunk-ZMML6NRS.js';
|
|
5
5
|
import { Button } from './chunk-DGXZ635L.js';
|
|
6
6
|
import { useState } from 'react';
|
|
7
7
|
import { ClockGlyph } from '@crewlethq/icons/glyphs';
|
|
@@ -2,7 +2,7 @@ import { Modal } from './chunk-C667GCU7.js';
|
|
|
2
2
|
import { useClipboard } from './chunk-STJ7QBC3.js';
|
|
3
3
|
import { EmptyValue } from './chunk-RE3FBGQQ.js';
|
|
4
4
|
import { useCardHeaderSlot } from './chunk-AV2DXAEL.js';
|
|
5
|
-
import { Checkbox } from './chunk-
|
|
5
|
+
import { Checkbox } from './chunk-FFWMTIMH.js';
|
|
6
6
|
import { Menu } from './chunk-OQG4P5KU.js';
|
|
7
7
|
import { Button } from './chunk-DGXZ635L.js';
|
|
8
8
|
import { IconButton } from './chunk-UAUP6XGK.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Select } from './chunk-VK45YJLH.js';
|
|
2
2
|
import { today, shiftMonth, CalendarGrid, compareDays } from './chunk-EE3DJMSQ.js';
|
|
3
3
|
import { Popover } from './chunk-KHJIEPZV.js';
|
|
4
|
-
import { Input } from './chunk-
|
|
4
|
+
import { Input } from './chunk-ZMML6NRS.js';
|
|
5
5
|
import { Button } from './chunk-DGXZ635L.js';
|
|
6
6
|
import { isComposing } from './chunk-H5XTJ7GJ.js';
|
|
7
7
|
import { IconButton } from './chunk-UAUP6XGK.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { normalizeHex, parseColourInput } from './chunk-7W3LYIOC.js';
|
|
2
|
-
import { FormField, Input, InputAffix } from './chunk-
|
|
2
|
+
import { FormField, Input, InputAffix } from './chunk-ZMML6NRS.js';
|
|
3
3
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
4
4
|
import './ColorField-2OIOWT3Z.css';
|
|
5
5
|
import { useId, useState } from 'react';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Kbd } from './chunk-ANTAQAR4.js';
|
|
2
|
-
import { Textarea } from './chunk-
|
|
2
|
+
import { Textarea } from './chunk-ZMML6NRS.js';
|
|
3
3
|
import { isComposing } from './chunk-H5XTJ7GJ.js';
|
|
4
4
|
import { VisuallyHidden } from './chunk-UT6CW3C7.js';
|
|
5
5
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useReorder } from './chunk-MPVMB2DV.js';
|
|
2
|
-
import { Input } from './chunk-
|
|
2
|
+
import { Input } from './chunk-ZMML6NRS.js';
|
|
3
3
|
import { Menu } from './chunk-OQG4P5KU.js';
|
|
4
4
|
import { IconButton } from './chunk-UAUP6XGK.js';
|
|
5
5
|
import { VisuallyHidden } from './chunk-UT6CW3C7.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useListbox, useOptionKeys } from './chunk-7KHM2FZH.js';
|
|
2
|
-
import { Input } from './chunk-
|
|
2
|
+
import { Input } from './chunk-ZMML6NRS.js';
|
|
3
3
|
import { HIT_AREA_CLASS } from './chunk-2YTOOH3A.js';
|
|
4
4
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
5
5
|
import './HitArea-QUOS6ZDJ.css';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { RefusalStrip, ReceiptStrip } from './chunk-ZWCK4N4L.js';
|
|
2
2
|
import { ChangeList } from './chunk-WQRSZMN4.js';
|
|
3
3
|
import { StatusCard } from './chunk-NTQPJJAN.js';
|
|
4
|
-
import { Checkbox } from './chunk-
|
|
4
|
+
import { Checkbox } from './chunk-FFWMTIMH.js';
|
|
5
5
|
import { Disclosure } from './chunk-222VILSP.js';
|
|
6
6
|
import { Button } from './chunk-DGXZ635L.js';
|
|
7
7
|
import { Spinner } from './chunk-XSPCITPN.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Modal } from './chunk-C667GCU7.js';
|
|
2
2
|
import { useListbox, useHighlightRest } from './chunk-7KHM2FZH.js';
|
|
3
3
|
import { Kbd } from './chunk-ANTAQAR4.js';
|
|
4
|
-
import { Input } from './chunk-
|
|
4
|
+
import { Input } from './chunk-ZMML6NRS.js';
|
|
5
5
|
import { Count } from './chunk-MLDTLZAO.js';
|
|
6
6
|
import { HIT_AREA_CLASS } from './chunk-2YTOOH3A.js';
|
|
7
7
|
import { isComposing } from './chunk-H5XTJ7GJ.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Select } from './chunk-VK45YJLH.js';
|
|
2
|
-
import { Combobox } from './chunk-
|
|
3
|
-
import { FormField, Textarea, InputAffix } from './chunk-
|
|
2
|
+
import { Combobox } from './chunk-OFARYSWS.js';
|
|
3
|
+
import { FormField, Textarea, InputAffix } from './chunk-ZMML6NRS.js';
|
|
4
4
|
import './Input-GEFFMKBS.css';
|
|
5
5
|
import './VisuallyHidden-AOEXU5EB.css';
|
|
6
6
|
import './HitArea-QUOS6ZDJ.css';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Switch } from './chunk-3XDT5ZWL.js';
|
|
2
2
|
import { useReorder } from './chunk-MPVMB2DV.js';
|
|
3
|
-
import { Checkbox } from './chunk-
|
|
3
|
+
import { Checkbox } from './chunk-FFWMTIMH.js';
|
|
4
4
|
import { IconButton } from './chunk-UAUP6XGK.js';
|
|
5
5
|
import { VisuallyHidden } from './chunk-UT6CW3C7.js';
|
|
6
6
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
@@ -157,6 +157,7 @@ export * from '../Prose/index.js';
|
|
|
157
157
|
export * from '../QrCode/index.js';
|
|
158
158
|
export * from '../ReadingPane/index.js';
|
|
159
159
|
export * from '../ReceiptStrip/index.js';
|
|
160
|
+
export * from '../RecordChip/index.js';
|
|
160
161
|
export * from '../RefusalCard/index.js';
|
|
161
162
|
export * from '../RelatedRow/index.js';
|
|
162
163
|
export * from '../RelativeTime/index.js';
|