@fairmint/ui 0.3.19 → 0.3.20
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/components/generic/NotificationRow/NotificationRow.cjs +169 -0
- package/dist/components/generic/NotificationRow/NotificationRow.cjs.map +1 -0
- package/dist/components/generic/NotificationRow/NotificationRow.d.ts +51 -0
- package/dist/components/generic/NotificationRow/NotificationRow.d.ts.map +1 -0
- package/dist/components/generic/NotificationRow/NotificationRow.js +169 -0
- package/dist/components/generic/NotificationRow/NotificationRow.js.map +1 -0
- package/dist/components/generic/TaskRow/TaskRow.cjs +151 -0
- package/dist/components/generic/TaskRow/TaskRow.cjs.map +1 -0
- package/dist/components/generic/TaskRow/TaskRow.d.ts +56 -0
- package/dist/components/generic/TaskRow/TaskRow.d.ts.map +1 -0
- package/dist/components/generic/TaskRow/TaskRow.js +151 -0
- package/dist/components/generic/TaskRow/TaskRow.js.map +1 -0
- package/dist/fairmint-ui.cjs +4 -0
- package/dist/fairmint-ui.cjs.map +1 -1
- package/dist/fairmint-ui.js +4 -0
- package/dist/fairmint-ui.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
+
const index = require("../../../theme/index.cjs");
|
|
5
|
+
const colors = require("../../../theme/colors.cjs");
|
|
6
|
+
const ActionIcon = require("../../primitives/ActionIcon/ActionIcon.cjs");
|
|
7
|
+
const Badge = require("../../primitives/Badge/Badge.cjs");
|
|
8
|
+
const layout = require("../../primitives/layout.cjs");
|
|
9
|
+
const ColorDot = require("../ColorDot/ColorDot.cjs");
|
|
10
|
+
const Group = require("../../../node_modules/@mantine/core/esm/components/Group/Group.cjs");
|
|
11
|
+
const Text = require("../../../node_modules/@mantine/core/esm/components/Text/Text.cjs");
|
|
12
|
+
const SEVERITY_BADGE_COLORS = {
|
|
13
|
+
critical: colors.colors.error,
|
|
14
|
+
high: colors.colors.warning,
|
|
15
|
+
medium: colors.colors.info,
|
|
16
|
+
low: colors.colors.neutral,
|
|
17
|
+
info: colors.colors.info,
|
|
18
|
+
success: colors.colors.success,
|
|
19
|
+
resolved: colors.colors.success
|
|
20
|
+
};
|
|
21
|
+
const DEFAULT_SEVERITY_LABELS = {
|
|
22
|
+
critical: "Critical",
|
|
23
|
+
high: "High",
|
|
24
|
+
medium: "Medium",
|
|
25
|
+
low: "Low",
|
|
26
|
+
info: "Info",
|
|
27
|
+
success: "Success",
|
|
28
|
+
resolved: "Completed"
|
|
29
|
+
};
|
|
30
|
+
function DefaultCheckIcon() {
|
|
31
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
32
|
+
"svg",
|
|
33
|
+
{
|
|
34
|
+
"aria-hidden": "true",
|
|
35
|
+
width: "16",
|
|
36
|
+
height: "16",
|
|
37
|
+
viewBox: "0 0 24 24",
|
|
38
|
+
fill: "none",
|
|
39
|
+
stroke: "currentColor",
|
|
40
|
+
strokeWidth: "2",
|
|
41
|
+
strokeLinecap: "round",
|
|
42
|
+
strokeLinejoin: "round",
|
|
43
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M20 6 9 17l-5-5" })
|
|
44
|
+
}
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
function DefaultMailIcon() {
|
|
48
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
49
|
+
"svg",
|
|
50
|
+
{
|
|
51
|
+
"aria-hidden": "true",
|
|
52
|
+
width: "16",
|
|
53
|
+
height: "16",
|
|
54
|
+
viewBox: "0 0 24 24",
|
|
55
|
+
fill: "none",
|
|
56
|
+
stroke: "currentColor",
|
|
57
|
+
strokeWidth: "2",
|
|
58
|
+
strokeLinecap: "round",
|
|
59
|
+
strokeLinejoin: "round",
|
|
60
|
+
children: [
|
|
61
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M4 4h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z" }),
|
|
62
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "m22 6-10 7L2 6" })
|
|
63
|
+
]
|
|
64
|
+
}
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
function NotificationRow({
|
|
68
|
+
ariaLabel,
|
|
69
|
+
body,
|
|
70
|
+
className,
|
|
71
|
+
isUnread = false,
|
|
72
|
+
onToggleRead,
|
|
73
|
+
severity = "medium",
|
|
74
|
+
severityLabel,
|
|
75
|
+
timestamp,
|
|
76
|
+
title,
|
|
77
|
+
toggleReadLabel,
|
|
78
|
+
variant = "standalone",
|
|
79
|
+
withDivider = true
|
|
80
|
+
}) {
|
|
81
|
+
const resolvedSeverityLabel = severityLabel ?? DEFAULT_SEVERITY_LABELS[severity];
|
|
82
|
+
const resolvedToggleReadLabel = toggleReadLabel ?? (isUnread ? `Mark read: ${title}` : `Mark unread: ${title}`);
|
|
83
|
+
const readStateLabel = isUnread ? "Unread notification" : "Read notification";
|
|
84
|
+
const resolvedAriaLabel = ariaLabel ?? (timestamp ? `${title}. ${resolvedSeverityLabel}. ${readStateLabel}. ${timestamp}` : `${title}. ${resolvedSeverityLabel}. ${readStateLabel}`);
|
|
85
|
+
const isList = variant === "list";
|
|
86
|
+
const badgeColor = SEVERITY_BADGE_COLORS[severity];
|
|
87
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
88
|
+
layout.Box,
|
|
89
|
+
{
|
|
90
|
+
"aria-label": resolvedAriaLabel,
|
|
91
|
+
role: "group",
|
|
92
|
+
className,
|
|
93
|
+
"data-severity": severity,
|
|
94
|
+
"data-testid": "notification-row",
|
|
95
|
+
"data-unread": isUnread || void 0,
|
|
96
|
+
"data-variant": variant,
|
|
97
|
+
px: "md",
|
|
98
|
+
py: "sm",
|
|
99
|
+
w: "100%",
|
|
100
|
+
style: {
|
|
101
|
+
backgroundColor: isUnread ? index.fairmintVars.colorBgSurface : index.fairmintVars.colorBgSurfaceSecondary,
|
|
102
|
+
border: isList ? "none" : `1px solid ${index.fairmintVars.colorBorderDefault}`,
|
|
103
|
+
borderBottom: isList && withDivider ? `1px solid ${index.fairmintVars.colorBorderDefault}` : void 0,
|
|
104
|
+
borderRadius: isList ? 0 : 10
|
|
105
|
+
},
|
|
106
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(Group.Group, { align: "flex-start", gap: "sm", justify: "space-between", wrap: "nowrap", children: [
|
|
107
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Group.Group, { align: "flex-start", gap: "sm", miw: 0, wrap: "nowrap", style: { flex: 1 }, children: [
|
|
108
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
109
|
+
layout.Box,
|
|
110
|
+
{
|
|
111
|
+
"aria-hidden": true,
|
|
112
|
+
mt: 6,
|
|
113
|
+
style: {
|
|
114
|
+
flexShrink: 0,
|
|
115
|
+
width: 8,
|
|
116
|
+
display: "flex",
|
|
117
|
+
justifyContent: "center"
|
|
118
|
+
},
|
|
119
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
120
|
+
ColorDot.ColorDot,
|
|
121
|
+
{
|
|
122
|
+
color: isUnread ? index.fairmintVars.colorBrandPrimary : index.fairmintVars.colorBorderDisabled,
|
|
123
|
+
size: 8
|
|
124
|
+
}
|
|
125
|
+
)
|
|
126
|
+
}
|
|
127
|
+
),
|
|
128
|
+
/* @__PURE__ */ jsxRuntime.jsxs(layout.Stack, { gap: 4, miw: 0, style: { flex: 1 }, children: [
|
|
129
|
+
/* @__PURE__ */ jsxRuntime.jsx(Badge.Badge, { color: badgeColor, size: "xs", variant: "light", children: resolvedSeverityLabel }),
|
|
130
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
131
|
+
Text.Text,
|
|
132
|
+
{
|
|
133
|
+
fw: isUnread ? 600 : 500,
|
|
134
|
+
lineClamp: 2,
|
|
135
|
+
size: "sm",
|
|
136
|
+
c: index.fairmintVars.colorTextPrimary,
|
|
137
|
+
style: { minWidth: 0 },
|
|
138
|
+
children: title
|
|
139
|
+
}
|
|
140
|
+
),
|
|
141
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
142
|
+
Text.Text,
|
|
143
|
+
{
|
|
144
|
+
c: index.fairmintVars.colorTextSecondary,
|
|
145
|
+
lineClamp: 3,
|
|
146
|
+
size: "sm",
|
|
147
|
+
style: { minWidth: 0 },
|
|
148
|
+
children: body
|
|
149
|
+
}
|
|
150
|
+
)
|
|
151
|
+
] })
|
|
152
|
+
] }),
|
|
153
|
+
onToggleRead ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
154
|
+
ActionIcon.ActionIcon,
|
|
155
|
+
{
|
|
156
|
+
"aria-label": resolvedToggleReadLabel,
|
|
157
|
+
color: colors.colors.neutral,
|
|
158
|
+
onClick: onToggleRead,
|
|
159
|
+
size: "md",
|
|
160
|
+
variant: "subtle",
|
|
161
|
+
children: isUnread ? /* @__PURE__ */ jsxRuntime.jsx(DefaultCheckIcon, {}) : /* @__PURE__ */ jsxRuntime.jsx(DefaultMailIcon, {})
|
|
162
|
+
}
|
|
163
|
+
) : null
|
|
164
|
+
] })
|
|
165
|
+
}
|
|
166
|
+
);
|
|
167
|
+
}
|
|
168
|
+
exports.NotificationRow = NotificationRow;
|
|
169
|
+
//# sourceMappingURL=NotificationRow.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NotificationRow.cjs","sources":["../../../../src/components/generic/NotificationRow/NotificationRow.tsx"],"sourcesContent":["import { fairmintVars } from \"../../../theme\";\nimport { colors } from \"../../../theme/colors\";\nimport { ActionIcon } from \"../../primitives/ActionIcon/ActionIcon\";\nimport { Badge } from \"../../primitives/Badge/Badge\";\nimport { Box, Group, Stack, Text } from \"../../primitives/layout\";\nimport { ColorDot } from \"../ColorDot/ColorDot\";\n\nexport type NotificationRowSeverity =\n | \"critical\"\n | \"high\"\n | \"medium\"\n | \"low\"\n | \"info\"\n | \"success\"\n | \"resolved\";\n\nexport type NotificationRowVariant = \"standalone\" | \"list\";\n\nexport interface NotificationRowProps {\n /** Whether the notification is unread. @default false */\n isUnread?: boolean;\n /** Severity shown as a pill above the title. @default \"medium\" */\n severity?: NotificationRowSeverity;\n /**\n * Severity pill label. Defaults to the capitalized severity name\n * (for example, \"Critical\", \"High\", \"Completed\" for resolved).\n */\n severityLabel?: string;\n /** Primary notification title. */\n title: string;\n /** Supporting body copy. */\n body: string;\n /**\n * Caller-formatted timestamp (for example, \"2 hours ago\").\n * Included in the accessible name when provided; not shown in the row body.\n */\n timestamp?: string;\n /**\n * Toggle read/unread handler. Renders a mark-read icon action on the right.\n * Unread rows show a check icon; read rows show an envelope icon.\n */\n onToggleRead?: () => void;\n /** Accessible label for the toggle-read control. */\n toggleReadLabel?: string;\n /**\n * Layout presentation. Use `list` inside a shared bordered stack so rows\n * sit flush with no card gaps. @default \"standalone\"\n */\n variant?: NotificationRowVariant;\n /**\n * When `variant=\"list\"`, draw a bottom divider. Set false on the last row.\n * @default true\n */\n withDivider?: boolean;\n /** Accessible label for the row. Defaults to title plus read state. */\n ariaLabel?: string;\n className?: string;\n}\n\nconst SEVERITY_BADGE_COLORS: Record<NotificationRowSeverity, string> = {\n critical: colors.error,\n high: colors.warning,\n medium: colors.info,\n low: colors.neutral,\n info: colors.info,\n success: colors.success,\n resolved: colors.success,\n};\n\nconst DEFAULT_SEVERITY_LABELS: Record<NotificationRowSeverity, string> = {\n critical: \"Critical\",\n high: \"High\",\n medium: \"Medium\",\n low: \"Low\",\n info: \"Info\",\n success: \"Success\",\n resolved: \"Completed\",\n};\n\nfunction DefaultCheckIcon() {\n return (\n <svg\n aria-hidden=\"true\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n );\n}\n\nfunction DefaultMailIcon() {\n return (\n <svg\n aria-hidden=\"true\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M4 4h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z\" />\n <path d=\"m22 6-10 7L2 6\" />\n </svg>\n );\n}\n\n/**\n * Presentational notification row for bell/inbox surfaces.\n *\n * Owns read/unread dot, severity pill, title, body, and a mark-read icon\n * action. The caller owns routing, dedupe, and domain resolution — toggling\n * read state silences awareness only; it never completes related work.\n */\nexport function NotificationRow({\n ariaLabel,\n body,\n className,\n isUnread = false,\n onToggleRead,\n severity = \"medium\",\n severityLabel,\n timestamp,\n title,\n toggleReadLabel,\n variant = \"standalone\",\n withDivider = true,\n}: NotificationRowProps) {\n const resolvedSeverityLabel = severityLabel ?? DEFAULT_SEVERITY_LABELS[severity];\n const resolvedToggleReadLabel =\n toggleReadLabel ?? (isUnread ? `Mark read: ${title}` : `Mark unread: ${title}`);\n const readStateLabel = isUnread ? \"Unread notification\" : \"Read notification\";\n const resolvedAriaLabel =\n ariaLabel ??\n (timestamp\n ? `${title}. ${resolvedSeverityLabel}. ${readStateLabel}. ${timestamp}`\n : `${title}. ${resolvedSeverityLabel}. ${readStateLabel}`);\n const isList = variant === \"list\";\n const badgeColor = SEVERITY_BADGE_COLORS[severity];\n\n return (\n <Box\n aria-label={resolvedAriaLabel}\n role=\"group\"\n className={className}\n data-severity={severity}\n data-testid=\"notification-row\"\n data-unread={isUnread || undefined}\n data-variant={variant}\n px=\"md\"\n py=\"sm\"\n w=\"100%\"\n style={{\n backgroundColor: isUnread\n ? fairmintVars.colorBgSurface\n : fairmintVars.colorBgSurfaceSecondary,\n border: isList ? \"none\" : `1px solid ${fairmintVars.colorBorderDefault}`,\n borderBottom:\n isList && withDivider ? `1px solid ${fairmintVars.colorBorderDefault}` : undefined,\n borderRadius: isList ? 0 : 10,\n }}\n >\n <Group align=\"flex-start\" gap=\"sm\" justify=\"space-between\" wrap=\"nowrap\">\n <Group align=\"flex-start\" gap=\"sm\" miw={0} wrap=\"nowrap\" style={{ flex: 1 }}>\n <Box\n aria-hidden\n mt={6}\n style={{\n flexShrink: 0,\n width: 8,\n display: \"flex\",\n justifyContent: \"center\",\n }}\n >\n <ColorDot\n color={isUnread ? fairmintVars.colorBrandPrimary : fairmintVars.colorBorderDisabled}\n size={8}\n />\n </Box>\n\n <Stack gap={4} miw={0} style={{ flex: 1 }}>\n <Badge color={badgeColor} size=\"xs\" variant=\"light\">\n {resolvedSeverityLabel}\n </Badge>\n\n <Text\n fw={isUnread ? 600 : 500}\n lineClamp={2}\n size=\"sm\"\n c={fairmintVars.colorTextPrimary}\n style={{ minWidth: 0 }}\n >\n {title}\n </Text>\n\n <Text\n c={fairmintVars.colorTextSecondary}\n lineClamp={3}\n size=\"sm\"\n style={{ minWidth: 0 }}\n >\n {body}\n </Text>\n </Stack>\n </Group>\n\n {onToggleRead ? (\n <ActionIcon\n aria-label={resolvedToggleReadLabel}\n color={colors.neutral}\n onClick={onToggleRead}\n size=\"md\"\n variant=\"subtle\"\n >\n {isUnread ? <DefaultCheckIcon /> : <DefaultMailIcon />}\n </ActionIcon>\n ) : null}\n </Group>\n </Box>\n );\n}\n"],"names":["colors","jsx","jsxs","Box","fairmintVars","Group","ColorDot","Stack","Badge","Text","ActionIcon"],"mappings":";;;;;;;;;;;AA2DA,MAAM,wBAAiE;AAAA,EACrE,UAAUA,OAAAA,OAAO;AAAA,EACjB,MAAMA,OAAAA,OAAO;AAAA,EACb,QAAQA,OAAAA,OAAO;AAAA,EACf,KAAKA,OAAAA,OAAO;AAAA,EACZ,MAAMA,OAAAA,OAAO;AAAA,EACb,SAASA,OAAAA,OAAO;AAAA,EAChB,UAAUA,OAAAA,OAAO;AACnB;AAEA,MAAM,0BAAmE;AAAA,EACvE,UAAU;AAAA,EACV,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,MAAM;AAAA,EACN,SAAS;AAAA,EACT,UAAU;AACZ;AAEA,SAAS,mBAAmB;AAC1B,SACEC,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,eAAY;AAAA,MACZ,OAAM;AAAA,MACN,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,QAAO;AAAA,MACP,aAAY;AAAA,MACZ,eAAc;AAAA,MACd,gBAAe;AAAA,MAEf,UAAAA,2BAAAA,IAAC,QAAA,EAAK,GAAE,kBAAA,CAAkB;AAAA,IAAA;AAAA,EAAA;AAGhC;AAEA,SAAS,kBAAkB;AACzB,SACEC,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,eAAY;AAAA,MACZ,OAAM;AAAA,MACN,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,QAAO;AAAA,MACP,aAAY;AAAA,MACZ,eAAc;AAAA,MACd,gBAAe;AAAA,MAEf,UAAA;AAAA,QAAAD,2BAAAA,IAAC,QAAA,EAAK,GAAE,0EAAA,CAA0E;AAAA,QAClFA,2BAAAA,IAAC,QAAA,EAAK,GAAE,iBAAA,CAAiB;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG/B;AASO,SAAS,gBAAgB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX;AAAA,EACA,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV,cAAc;AAChB,GAAyB;AACvB,QAAM,wBAAwB,iBAAiB,wBAAwB,QAAQ;AAC/E,QAAM,0BACJ,oBAAoB,WAAW,cAAc,KAAK,KAAK,gBAAgB,KAAK;AAC9E,QAAM,iBAAiB,WAAW,wBAAwB;AAC1D,QAAM,oBACJ,cACC,YACG,GAAG,KAAK,KAAK,qBAAqB,KAAK,cAAc,KAAK,SAAS,KACnE,GAAG,KAAK,KAAK,qBAAqB,KAAK,cAAc;AAC3D,QAAM,SAAS,YAAY;AAC3B,QAAM,aAAa,sBAAsB,QAAQ;AAEjD,SACEA,2BAAAA;AAAAA,IAACE,OAAAA;AAAAA,IAAA;AAAA,MACC,cAAY;AAAA,MACZ,MAAK;AAAA,MACL;AAAA,MACA,iBAAe;AAAA,MACf,eAAY;AAAA,MACZ,eAAa,YAAY;AAAA,MACzB,gBAAc;AAAA,MACd,IAAG;AAAA,MACH,IAAG;AAAA,MACH,GAAE;AAAA,MACF,OAAO;AAAA,QACL,iBAAiB,WACbC,MAAAA,aAAa,iBACbA,MAAAA,aAAa;AAAA,QACjB,QAAQ,SAAS,SAAS,aAAaA,MAAAA,aAAa,kBAAkB;AAAA,QACtE,cACE,UAAU,cAAc,aAAaA,mBAAa,kBAAkB,KAAK;AAAA,QAC3E,cAAc,SAAS,IAAI;AAAA,MAAA;AAAA,MAG7B,UAAAF,2BAAAA,KAACG,MAAAA,SAAM,OAAM,cAAa,KAAI,MAAK,SAAQ,iBAAgB,MAAK,UAC9D,UAAA;AAAA,QAAAH,2BAAAA,KAACG,MAAAA,OAAA,EAAM,OAAM,cAAa,KAAI,MAAK,KAAK,GAAG,MAAK,UAAS,OAAO,EAAE,MAAM,KACtE,UAAA;AAAA,UAAAJ,2BAAAA;AAAAA,YAACE,OAAAA;AAAAA,YAAA;AAAA,cACC,eAAW;AAAA,cACX,IAAI;AAAA,cACJ,OAAO;AAAA,gBACL,YAAY;AAAA,gBACZ,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,gBAAgB;AAAA,cAAA;AAAA,cAGlB,UAAAF,2BAAAA;AAAAA,gBAACK,SAAAA;AAAAA,gBAAA;AAAA,kBACC,OAAO,WAAWF,MAAAA,aAAa,oBAAoBA,MAAAA,aAAa;AAAA,kBAChE,MAAM;AAAA,gBAAA;AAAA,cAAA;AAAA,YACR;AAAA,UAAA;AAAA,UAGFF,2BAAAA,KAACK,OAAAA,OAAA,EAAM,KAAK,GAAG,KAAK,GAAG,OAAO,EAAE,MAAM,EAAA,GACpC,UAAA;AAAA,YAAAN,2BAAAA,IAACO,MAAAA,SAAM,OAAO,YAAY,MAAK,MAAK,SAAQ,SACzC,UAAA,sBAAA,CACH;AAAA,YAEAP,2BAAAA;AAAAA,cAACQ,KAAAA;AAAAA,cAAA;AAAA,gBACC,IAAI,WAAW,MAAM;AAAA,gBACrB,WAAW;AAAA,gBACX,MAAK;AAAA,gBACL,GAAGL,MAAAA,aAAa;AAAA,gBAChB,OAAO,EAAE,UAAU,EAAA;AAAA,gBAElB,UAAA;AAAA,cAAA;AAAA,YAAA;AAAA,YAGHH,2BAAAA;AAAAA,cAACQ,KAAAA;AAAAA,cAAA;AAAA,gBACC,GAAGL,MAAAA,aAAa;AAAA,gBAChB,WAAW;AAAA,gBACX,MAAK;AAAA,gBACL,OAAO,EAAE,UAAU,EAAA;AAAA,gBAElB,UAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UACH,EAAA,CACF;AAAA,QAAA,GACF;AAAA,QAEC,eACCH,2BAAAA;AAAAA,UAACS,WAAAA;AAAAA,UAAA;AAAA,YACC,cAAY;AAAA,YACZ,OAAOV,OAAAA,OAAO;AAAA,YACd,SAAS;AAAA,YACT,MAAK;AAAA,YACL,SAAQ;AAAA,YAEP,UAAA,WAAWC,+BAAC,kBAAA,CAAA,CAAiB,mCAAM,iBAAA,CAAA,CAAgB;AAAA,UAAA;AAAA,QAAA,IAEpD;AAAA,MAAA,EAAA,CACN;AAAA,IAAA;AAAA,EAAA;AAGN;;"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export type NotificationRowSeverity = "critical" | "high" | "medium" | "low" | "info" | "success" | "resolved";
|
|
2
|
+
export type NotificationRowVariant = "standalone" | "list";
|
|
3
|
+
export interface NotificationRowProps {
|
|
4
|
+
/** Whether the notification is unread. @default false */
|
|
5
|
+
isUnread?: boolean;
|
|
6
|
+
/** Severity shown as a pill above the title. @default "medium" */
|
|
7
|
+
severity?: NotificationRowSeverity;
|
|
8
|
+
/**
|
|
9
|
+
* Severity pill label. Defaults to the capitalized severity name
|
|
10
|
+
* (for example, "Critical", "High", "Completed" for resolved).
|
|
11
|
+
*/
|
|
12
|
+
severityLabel?: string;
|
|
13
|
+
/** Primary notification title. */
|
|
14
|
+
title: string;
|
|
15
|
+
/** Supporting body copy. */
|
|
16
|
+
body: string;
|
|
17
|
+
/**
|
|
18
|
+
* Caller-formatted timestamp (for example, "2 hours ago").
|
|
19
|
+
* Included in the accessible name when provided; not shown in the row body.
|
|
20
|
+
*/
|
|
21
|
+
timestamp?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Toggle read/unread handler. Renders a mark-read icon action on the right.
|
|
24
|
+
* Unread rows show a check icon; read rows show an envelope icon.
|
|
25
|
+
*/
|
|
26
|
+
onToggleRead?: () => void;
|
|
27
|
+
/** Accessible label for the toggle-read control. */
|
|
28
|
+
toggleReadLabel?: string;
|
|
29
|
+
/**
|
|
30
|
+
* Layout presentation. Use `list` inside a shared bordered stack so rows
|
|
31
|
+
* sit flush with no card gaps. @default "standalone"
|
|
32
|
+
*/
|
|
33
|
+
variant?: NotificationRowVariant;
|
|
34
|
+
/**
|
|
35
|
+
* When `variant="list"`, draw a bottom divider. Set false on the last row.
|
|
36
|
+
* @default true
|
|
37
|
+
*/
|
|
38
|
+
withDivider?: boolean;
|
|
39
|
+
/** Accessible label for the row. Defaults to title plus read state. */
|
|
40
|
+
ariaLabel?: string;
|
|
41
|
+
className?: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Presentational notification row for bell/inbox surfaces.
|
|
45
|
+
*
|
|
46
|
+
* Owns read/unread dot, severity pill, title, body, and a mark-read icon
|
|
47
|
+
* action. The caller owns routing, dedupe, and domain resolution — toggling
|
|
48
|
+
* read state silences awareness only; it never completes related work.
|
|
49
|
+
*/
|
|
50
|
+
export declare function NotificationRow({ ariaLabel, body, className, isUnread, onToggleRead, severity, severityLabel, timestamp, title, toggleReadLabel, variant, withDivider, }: NotificationRowProps): import("react/jsx-runtime").JSX.Element;
|
|
51
|
+
//# sourceMappingURL=NotificationRow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NotificationRow.d.ts","sourceRoot":"","sources":["../../../../src/components/generic/NotificationRow/NotificationRow.tsx"],"names":[],"mappings":"AAOA,MAAM,MAAM,uBAAuB,GAC/B,UAAU,GACV,MAAM,GACN,QAAQ,GACR,KAAK,GACL,MAAM,GACN,SAAS,GACT,UAAU,CAAC;AAEf,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG,MAAM,CAAC;AAE3D,MAAM,WAAW,oBAAoB;IACnC,yDAAyD;IACzD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IACnC;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,oDAAoD;IACpD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA2DD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,IAAI,EACJ,SAAS,EACT,QAAgB,EAChB,YAAY,EACZ,QAAmB,EACnB,aAAa,EACb,SAAS,EACT,KAAK,EACL,eAAe,EACf,OAAsB,EACtB,WAAkB,GACnB,EAAE,oBAAoB,2CA6FtB"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { fairmintVars } from "../../../theme/index.js";
|
|
3
|
+
import { colors } from "../../../theme/colors.js";
|
|
4
|
+
import { ActionIcon } from "../../primitives/ActionIcon/ActionIcon.js";
|
|
5
|
+
import { Badge } from "../../primitives/Badge/Badge.js";
|
|
6
|
+
import { Box, Stack } from "../../primitives/layout.js";
|
|
7
|
+
import { ColorDot } from "../ColorDot/ColorDot.js";
|
|
8
|
+
import { Group } from "../../../node_modules/@mantine/core/esm/components/Group/Group.js";
|
|
9
|
+
import { Text } from "../../../node_modules/@mantine/core/esm/components/Text/Text.js";
|
|
10
|
+
const SEVERITY_BADGE_COLORS = {
|
|
11
|
+
critical: colors.error,
|
|
12
|
+
high: colors.warning,
|
|
13
|
+
medium: colors.info,
|
|
14
|
+
low: colors.neutral,
|
|
15
|
+
info: colors.info,
|
|
16
|
+
success: colors.success,
|
|
17
|
+
resolved: colors.success
|
|
18
|
+
};
|
|
19
|
+
const DEFAULT_SEVERITY_LABELS = {
|
|
20
|
+
critical: "Critical",
|
|
21
|
+
high: "High",
|
|
22
|
+
medium: "Medium",
|
|
23
|
+
low: "Low",
|
|
24
|
+
info: "Info",
|
|
25
|
+
success: "Success",
|
|
26
|
+
resolved: "Completed"
|
|
27
|
+
};
|
|
28
|
+
function DefaultCheckIcon() {
|
|
29
|
+
return /* @__PURE__ */ jsx(
|
|
30
|
+
"svg",
|
|
31
|
+
{
|
|
32
|
+
"aria-hidden": "true",
|
|
33
|
+
width: "16",
|
|
34
|
+
height: "16",
|
|
35
|
+
viewBox: "0 0 24 24",
|
|
36
|
+
fill: "none",
|
|
37
|
+
stroke: "currentColor",
|
|
38
|
+
strokeWidth: "2",
|
|
39
|
+
strokeLinecap: "round",
|
|
40
|
+
strokeLinejoin: "round",
|
|
41
|
+
children: /* @__PURE__ */ jsx("path", { d: "M20 6 9 17l-5-5" })
|
|
42
|
+
}
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
function DefaultMailIcon() {
|
|
46
|
+
return /* @__PURE__ */ jsxs(
|
|
47
|
+
"svg",
|
|
48
|
+
{
|
|
49
|
+
"aria-hidden": "true",
|
|
50
|
+
width: "16",
|
|
51
|
+
height: "16",
|
|
52
|
+
viewBox: "0 0 24 24",
|
|
53
|
+
fill: "none",
|
|
54
|
+
stroke: "currentColor",
|
|
55
|
+
strokeWidth: "2",
|
|
56
|
+
strokeLinecap: "round",
|
|
57
|
+
strokeLinejoin: "round",
|
|
58
|
+
children: [
|
|
59
|
+
/* @__PURE__ */ jsx("path", { d: "M4 4h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z" }),
|
|
60
|
+
/* @__PURE__ */ jsx("path", { d: "m22 6-10 7L2 6" })
|
|
61
|
+
]
|
|
62
|
+
}
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
function NotificationRow({
|
|
66
|
+
ariaLabel,
|
|
67
|
+
body,
|
|
68
|
+
className,
|
|
69
|
+
isUnread = false,
|
|
70
|
+
onToggleRead,
|
|
71
|
+
severity = "medium",
|
|
72
|
+
severityLabel,
|
|
73
|
+
timestamp,
|
|
74
|
+
title,
|
|
75
|
+
toggleReadLabel,
|
|
76
|
+
variant = "standalone",
|
|
77
|
+
withDivider = true
|
|
78
|
+
}) {
|
|
79
|
+
const resolvedSeverityLabel = severityLabel ?? DEFAULT_SEVERITY_LABELS[severity];
|
|
80
|
+
const resolvedToggleReadLabel = toggleReadLabel ?? (isUnread ? `Mark read: ${title}` : `Mark unread: ${title}`);
|
|
81
|
+
const readStateLabel = isUnread ? "Unread notification" : "Read notification";
|
|
82
|
+
const resolvedAriaLabel = ariaLabel ?? (timestamp ? `${title}. ${resolvedSeverityLabel}. ${readStateLabel}. ${timestamp}` : `${title}. ${resolvedSeverityLabel}. ${readStateLabel}`);
|
|
83
|
+
const isList = variant === "list";
|
|
84
|
+
const badgeColor = SEVERITY_BADGE_COLORS[severity];
|
|
85
|
+
return /* @__PURE__ */ jsx(
|
|
86
|
+
Box,
|
|
87
|
+
{
|
|
88
|
+
"aria-label": resolvedAriaLabel,
|
|
89
|
+
role: "group",
|
|
90
|
+
className,
|
|
91
|
+
"data-severity": severity,
|
|
92
|
+
"data-testid": "notification-row",
|
|
93
|
+
"data-unread": isUnread || void 0,
|
|
94
|
+
"data-variant": variant,
|
|
95
|
+
px: "md",
|
|
96
|
+
py: "sm",
|
|
97
|
+
w: "100%",
|
|
98
|
+
style: {
|
|
99
|
+
backgroundColor: isUnread ? fairmintVars.colorBgSurface : fairmintVars.colorBgSurfaceSecondary,
|
|
100
|
+
border: isList ? "none" : `1px solid ${fairmintVars.colorBorderDefault}`,
|
|
101
|
+
borderBottom: isList && withDivider ? `1px solid ${fairmintVars.colorBorderDefault}` : void 0,
|
|
102
|
+
borderRadius: isList ? 0 : 10
|
|
103
|
+
},
|
|
104
|
+
children: /* @__PURE__ */ jsxs(Group, { align: "flex-start", gap: "sm", justify: "space-between", wrap: "nowrap", children: [
|
|
105
|
+
/* @__PURE__ */ jsxs(Group, { align: "flex-start", gap: "sm", miw: 0, wrap: "nowrap", style: { flex: 1 }, children: [
|
|
106
|
+
/* @__PURE__ */ jsx(
|
|
107
|
+
Box,
|
|
108
|
+
{
|
|
109
|
+
"aria-hidden": true,
|
|
110
|
+
mt: 6,
|
|
111
|
+
style: {
|
|
112
|
+
flexShrink: 0,
|
|
113
|
+
width: 8,
|
|
114
|
+
display: "flex",
|
|
115
|
+
justifyContent: "center"
|
|
116
|
+
},
|
|
117
|
+
children: /* @__PURE__ */ jsx(
|
|
118
|
+
ColorDot,
|
|
119
|
+
{
|
|
120
|
+
color: isUnread ? fairmintVars.colorBrandPrimary : fairmintVars.colorBorderDisabled,
|
|
121
|
+
size: 8
|
|
122
|
+
}
|
|
123
|
+
)
|
|
124
|
+
}
|
|
125
|
+
),
|
|
126
|
+
/* @__PURE__ */ jsxs(Stack, { gap: 4, miw: 0, style: { flex: 1 }, children: [
|
|
127
|
+
/* @__PURE__ */ jsx(Badge, { color: badgeColor, size: "xs", variant: "light", children: resolvedSeverityLabel }),
|
|
128
|
+
/* @__PURE__ */ jsx(
|
|
129
|
+
Text,
|
|
130
|
+
{
|
|
131
|
+
fw: isUnread ? 600 : 500,
|
|
132
|
+
lineClamp: 2,
|
|
133
|
+
size: "sm",
|
|
134
|
+
c: fairmintVars.colorTextPrimary,
|
|
135
|
+
style: { minWidth: 0 },
|
|
136
|
+
children: title
|
|
137
|
+
}
|
|
138
|
+
),
|
|
139
|
+
/* @__PURE__ */ jsx(
|
|
140
|
+
Text,
|
|
141
|
+
{
|
|
142
|
+
c: fairmintVars.colorTextSecondary,
|
|
143
|
+
lineClamp: 3,
|
|
144
|
+
size: "sm",
|
|
145
|
+
style: { minWidth: 0 },
|
|
146
|
+
children: body
|
|
147
|
+
}
|
|
148
|
+
)
|
|
149
|
+
] })
|
|
150
|
+
] }),
|
|
151
|
+
onToggleRead ? /* @__PURE__ */ jsx(
|
|
152
|
+
ActionIcon,
|
|
153
|
+
{
|
|
154
|
+
"aria-label": resolvedToggleReadLabel,
|
|
155
|
+
color: colors.neutral,
|
|
156
|
+
onClick: onToggleRead,
|
|
157
|
+
size: "md",
|
|
158
|
+
variant: "subtle",
|
|
159
|
+
children: isUnread ? /* @__PURE__ */ jsx(DefaultCheckIcon, {}) : /* @__PURE__ */ jsx(DefaultMailIcon, {})
|
|
160
|
+
}
|
|
161
|
+
) : null
|
|
162
|
+
] })
|
|
163
|
+
}
|
|
164
|
+
);
|
|
165
|
+
}
|
|
166
|
+
export {
|
|
167
|
+
NotificationRow
|
|
168
|
+
};
|
|
169
|
+
//# sourceMappingURL=NotificationRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NotificationRow.js","sources":["../../../../src/components/generic/NotificationRow/NotificationRow.tsx"],"sourcesContent":["import { fairmintVars } from \"../../../theme\";\nimport { colors } from \"../../../theme/colors\";\nimport { ActionIcon } from \"../../primitives/ActionIcon/ActionIcon\";\nimport { Badge } from \"../../primitives/Badge/Badge\";\nimport { Box, Group, Stack, Text } from \"../../primitives/layout\";\nimport { ColorDot } from \"../ColorDot/ColorDot\";\n\nexport type NotificationRowSeverity =\n | \"critical\"\n | \"high\"\n | \"medium\"\n | \"low\"\n | \"info\"\n | \"success\"\n | \"resolved\";\n\nexport type NotificationRowVariant = \"standalone\" | \"list\";\n\nexport interface NotificationRowProps {\n /** Whether the notification is unread. @default false */\n isUnread?: boolean;\n /** Severity shown as a pill above the title. @default \"medium\" */\n severity?: NotificationRowSeverity;\n /**\n * Severity pill label. Defaults to the capitalized severity name\n * (for example, \"Critical\", \"High\", \"Completed\" for resolved).\n */\n severityLabel?: string;\n /** Primary notification title. */\n title: string;\n /** Supporting body copy. */\n body: string;\n /**\n * Caller-formatted timestamp (for example, \"2 hours ago\").\n * Included in the accessible name when provided; not shown in the row body.\n */\n timestamp?: string;\n /**\n * Toggle read/unread handler. Renders a mark-read icon action on the right.\n * Unread rows show a check icon; read rows show an envelope icon.\n */\n onToggleRead?: () => void;\n /** Accessible label for the toggle-read control. */\n toggleReadLabel?: string;\n /**\n * Layout presentation. Use `list` inside a shared bordered stack so rows\n * sit flush with no card gaps. @default \"standalone\"\n */\n variant?: NotificationRowVariant;\n /**\n * When `variant=\"list\"`, draw a bottom divider. Set false on the last row.\n * @default true\n */\n withDivider?: boolean;\n /** Accessible label for the row. Defaults to title plus read state. */\n ariaLabel?: string;\n className?: string;\n}\n\nconst SEVERITY_BADGE_COLORS: Record<NotificationRowSeverity, string> = {\n critical: colors.error,\n high: colors.warning,\n medium: colors.info,\n low: colors.neutral,\n info: colors.info,\n success: colors.success,\n resolved: colors.success,\n};\n\nconst DEFAULT_SEVERITY_LABELS: Record<NotificationRowSeverity, string> = {\n critical: \"Critical\",\n high: \"High\",\n medium: \"Medium\",\n low: \"Low\",\n info: \"Info\",\n success: \"Success\",\n resolved: \"Completed\",\n};\n\nfunction DefaultCheckIcon() {\n return (\n <svg\n aria-hidden=\"true\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n );\n}\n\nfunction DefaultMailIcon() {\n return (\n <svg\n aria-hidden=\"true\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M4 4h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2z\" />\n <path d=\"m22 6-10 7L2 6\" />\n </svg>\n );\n}\n\n/**\n * Presentational notification row for bell/inbox surfaces.\n *\n * Owns read/unread dot, severity pill, title, body, and a mark-read icon\n * action. The caller owns routing, dedupe, and domain resolution — toggling\n * read state silences awareness only; it never completes related work.\n */\nexport function NotificationRow({\n ariaLabel,\n body,\n className,\n isUnread = false,\n onToggleRead,\n severity = \"medium\",\n severityLabel,\n timestamp,\n title,\n toggleReadLabel,\n variant = \"standalone\",\n withDivider = true,\n}: NotificationRowProps) {\n const resolvedSeverityLabel = severityLabel ?? DEFAULT_SEVERITY_LABELS[severity];\n const resolvedToggleReadLabel =\n toggleReadLabel ?? (isUnread ? `Mark read: ${title}` : `Mark unread: ${title}`);\n const readStateLabel = isUnread ? \"Unread notification\" : \"Read notification\";\n const resolvedAriaLabel =\n ariaLabel ??\n (timestamp\n ? `${title}. ${resolvedSeverityLabel}. ${readStateLabel}. ${timestamp}`\n : `${title}. ${resolvedSeverityLabel}. ${readStateLabel}`);\n const isList = variant === \"list\";\n const badgeColor = SEVERITY_BADGE_COLORS[severity];\n\n return (\n <Box\n aria-label={resolvedAriaLabel}\n role=\"group\"\n className={className}\n data-severity={severity}\n data-testid=\"notification-row\"\n data-unread={isUnread || undefined}\n data-variant={variant}\n px=\"md\"\n py=\"sm\"\n w=\"100%\"\n style={{\n backgroundColor: isUnread\n ? fairmintVars.colorBgSurface\n : fairmintVars.colorBgSurfaceSecondary,\n border: isList ? \"none\" : `1px solid ${fairmintVars.colorBorderDefault}`,\n borderBottom:\n isList && withDivider ? `1px solid ${fairmintVars.colorBorderDefault}` : undefined,\n borderRadius: isList ? 0 : 10,\n }}\n >\n <Group align=\"flex-start\" gap=\"sm\" justify=\"space-between\" wrap=\"nowrap\">\n <Group align=\"flex-start\" gap=\"sm\" miw={0} wrap=\"nowrap\" style={{ flex: 1 }}>\n <Box\n aria-hidden\n mt={6}\n style={{\n flexShrink: 0,\n width: 8,\n display: \"flex\",\n justifyContent: \"center\",\n }}\n >\n <ColorDot\n color={isUnread ? fairmintVars.colorBrandPrimary : fairmintVars.colorBorderDisabled}\n size={8}\n />\n </Box>\n\n <Stack gap={4} miw={0} style={{ flex: 1 }}>\n <Badge color={badgeColor} size=\"xs\" variant=\"light\">\n {resolvedSeverityLabel}\n </Badge>\n\n <Text\n fw={isUnread ? 600 : 500}\n lineClamp={2}\n size=\"sm\"\n c={fairmintVars.colorTextPrimary}\n style={{ minWidth: 0 }}\n >\n {title}\n </Text>\n\n <Text\n c={fairmintVars.colorTextSecondary}\n lineClamp={3}\n size=\"sm\"\n style={{ minWidth: 0 }}\n >\n {body}\n </Text>\n </Stack>\n </Group>\n\n {onToggleRead ? (\n <ActionIcon\n aria-label={resolvedToggleReadLabel}\n color={colors.neutral}\n onClick={onToggleRead}\n size=\"md\"\n variant=\"subtle\"\n >\n {isUnread ? <DefaultCheckIcon /> : <DefaultMailIcon />}\n </ActionIcon>\n ) : null}\n </Group>\n </Box>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
+
const index = require("../../../theme/index.cjs");
|
|
5
|
+
const colors = require("../../../theme/colors.cjs");
|
|
6
|
+
const ActionIcon = require("../../primitives/ActionIcon/ActionIcon.cjs");
|
|
7
|
+
const Button = require("../../primitives/Button/Button.cjs");
|
|
8
|
+
const layout = require("../../primitives/layout.cjs");
|
|
9
|
+
const Group = require("../../../node_modules/@mantine/core/esm/components/Group/Group.cjs");
|
|
10
|
+
const Text = require("../../../node_modules/@mantine/core/esm/components/Text/Text.cjs");
|
|
11
|
+
const PRIORITY_SEVERITY_COLORS = {
|
|
12
|
+
critical: index.fairmintVars.colorErrorText,
|
|
13
|
+
// Mid warning ramp (amber) — clearer than warning-text/solid brown vs error red.
|
|
14
|
+
high: "warning.5",
|
|
15
|
+
medium: "warning.5",
|
|
16
|
+
low: index.fairmintVars.colorTextTertiary
|
|
17
|
+
};
|
|
18
|
+
const DEFAULT_PRIORITY_LABELS = {
|
|
19
|
+
critical: "Critical",
|
|
20
|
+
high: "High",
|
|
21
|
+
medium: "Medium",
|
|
22
|
+
low: "Low"
|
|
23
|
+
};
|
|
24
|
+
const CRITICAL_ROW_BACKGROUND = `color-mix(in srgb, ${index.fairmintVars.colorErrorSolid} 18%, ${index.fairmintVars.colorBgSurface})`;
|
|
25
|
+
function DefaultDismissIcon() {
|
|
26
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
27
|
+
"svg",
|
|
28
|
+
{
|
|
29
|
+
"aria-hidden": "true",
|
|
30
|
+
width: "14",
|
|
31
|
+
height: "14",
|
|
32
|
+
viewBox: "0 0 24 24",
|
|
33
|
+
fill: "none",
|
|
34
|
+
stroke: "currentColor",
|
|
35
|
+
strokeWidth: "2",
|
|
36
|
+
strokeLinecap: "round",
|
|
37
|
+
strokeLinejoin: "round",
|
|
38
|
+
children: [
|
|
39
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M18 6 6 18" }),
|
|
40
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "m6 6 12 12" })
|
|
41
|
+
]
|
|
42
|
+
}
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
function TaskRow({
|
|
46
|
+
action,
|
|
47
|
+
ariaLabel,
|
|
48
|
+
className,
|
|
49
|
+
description,
|
|
50
|
+
dismissLabel = "Dismiss task",
|
|
51
|
+
onDismiss,
|
|
52
|
+
priority = "medium",
|
|
53
|
+
priorityLabel,
|
|
54
|
+
timingLabel,
|
|
55
|
+
title,
|
|
56
|
+
variant = "standalone",
|
|
57
|
+
withDivider = true
|
|
58
|
+
}) {
|
|
59
|
+
const resolvedSeverityLabel = priorityLabel ?? DEFAULT_PRIORITY_LABELS[priority];
|
|
60
|
+
const resolvedAriaLabel = ariaLabel ?? (timingLabel ? `${title}. ${resolvedSeverityLabel} priority. ${timingLabel}` : `${title}. ${resolvedSeverityLabel} priority`);
|
|
61
|
+
const isCritical = priority === "critical";
|
|
62
|
+
const isList = variant === "list";
|
|
63
|
+
const hasDescription = description.trim().length > 0;
|
|
64
|
+
const { label: actionLabel, ...actionProps } = action;
|
|
65
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
66
|
+
layout.Box,
|
|
67
|
+
{
|
|
68
|
+
"aria-label": resolvedAriaLabel,
|
|
69
|
+
role: "group",
|
|
70
|
+
className,
|
|
71
|
+
"data-priority": priority,
|
|
72
|
+
"data-testid": "task-row",
|
|
73
|
+
"data-variant": variant,
|
|
74
|
+
px: "sm",
|
|
75
|
+
py: 10,
|
|
76
|
+
w: "100%",
|
|
77
|
+
miw: 0,
|
|
78
|
+
style: {
|
|
79
|
+
background: isCritical ? CRITICAL_ROW_BACKGROUND : index.fairmintVars.colorBgSurface,
|
|
80
|
+
border: isList ? "none" : `1px solid ${index.fairmintVars.colorBorderDefault}`,
|
|
81
|
+
borderBottom: isList && withDivider ? `1px solid ${index.fairmintVars.colorBorderDefault}` : void 0,
|
|
82
|
+
borderRadius: isList ? 0 : 10
|
|
83
|
+
},
|
|
84
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(Group.Group, { align: "center", gap: "sm", justify: "space-between", wrap: "nowrap", children: [
|
|
85
|
+
/* @__PURE__ */ jsxRuntime.jsxs(layout.Stack, { gap: 4, miw: 0, style: { flex: 1 }, children: [
|
|
86
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
87
|
+
Text.Text,
|
|
88
|
+
{
|
|
89
|
+
"aria-hidden": true,
|
|
90
|
+
c: PRIORITY_SEVERITY_COLORS[priority],
|
|
91
|
+
fw: 650,
|
|
92
|
+
size: "xs",
|
|
93
|
+
style: {
|
|
94
|
+
letterSpacing: "0.03em",
|
|
95
|
+
lineHeight: 1.2,
|
|
96
|
+
textTransform: "uppercase"
|
|
97
|
+
},
|
|
98
|
+
children: resolvedSeverityLabel
|
|
99
|
+
}
|
|
100
|
+
),
|
|
101
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
102
|
+
Text.Text,
|
|
103
|
+
{
|
|
104
|
+
fw: 600,
|
|
105
|
+
lineClamp: 2,
|
|
106
|
+
size: "sm",
|
|
107
|
+
c: index.fairmintVars.colorTextPrimary,
|
|
108
|
+
style: { minWidth: 0 },
|
|
109
|
+
children: title
|
|
110
|
+
}
|
|
111
|
+
),
|
|
112
|
+
hasDescription ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
113
|
+
Text.Text,
|
|
114
|
+
{
|
|
115
|
+
c: index.fairmintVars.colorTextSecondary,
|
|
116
|
+
lineClamp: 2,
|
|
117
|
+
size: "sm",
|
|
118
|
+
style: { minWidth: 0 },
|
|
119
|
+
children: description
|
|
120
|
+
}
|
|
121
|
+
) : null
|
|
122
|
+
] }),
|
|
123
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Group.Group, { align: "center", gap: "xs", wrap: "nowrap", style: { flexShrink: 0 }, children: [
|
|
124
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
125
|
+
Button.Button,
|
|
126
|
+
{
|
|
127
|
+
...actionProps,
|
|
128
|
+
color: colors.colors.primary,
|
|
129
|
+
size: "sm",
|
|
130
|
+
variant: isCritical ? "filled" : "light",
|
|
131
|
+
children: actionLabel
|
|
132
|
+
}
|
|
133
|
+
),
|
|
134
|
+
onDismiss ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
135
|
+
ActionIcon.ActionIcon,
|
|
136
|
+
{
|
|
137
|
+
"aria-label": dismissLabel,
|
|
138
|
+
color: colors.colors.neutral,
|
|
139
|
+
onClick: onDismiss,
|
|
140
|
+
size: "md",
|
|
141
|
+
variant: "subtle",
|
|
142
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(DefaultDismissIcon, {})
|
|
143
|
+
}
|
|
144
|
+
) : null
|
|
145
|
+
] })
|
|
146
|
+
] })
|
|
147
|
+
}
|
|
148
|
+
);
|
|
149
|
+
}
|
|
150
|
+
exports.TaskRow = TaskRow;
|
|
151
|
+
//# sourceMappingURL=TaskRow.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskRow.cjs","sources":["../../../../src/components/generic/TaskRow/TaskRow.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { fairmintVars } from \"../../../theme\";\nimport { colors } from \"../../../theme/colors\";\nimport { ActionIcon } from \"../../primitives/ActionIcon/ActionIcon\";\nimport { Button, type ButtonProps } from \"../../primitives/Button/Button\";\nimport { Box, Group, Stack, Text } from \"../../primitives/layout\";\n\nexport type TaskRowPriority = \"critical\" | \"high\" | \"medium\" | \"low\";\n\nexport type TaskRowVariant = \"standalone\" | \"list\";\n\nexport interface TaskRowActionProps\n extends Omit<ButtonProps, \"children\" | \"color\" | \"variant\" | \"size\"> {\n /** Visible primary CTA label. */\n label: ReactNode;\n}\n\nexport interface TaskRowProps {\n /** Priority / urgency affordance. @default \"medium\" */\n priority?: TaskRowPriority;\n /**\n * Severity label shown above the title in uppercase plain text.\n * Defaults to the capitalized priority name (for example, \"Critical\", \"High\").\n */\n priorityLabel?: string;\n /** Task title. */\n title: string;\n /** Supporting description. */\n description: string;\n /**\n * Caller-formatted due date or age (for example, \"Due today\", \"3 days ago\").\n * Included in the accessible name when provided; not shown beside the CTA.\n */\n timingLabel?: string;\n /** Primary workflow CTA. */\n action: TaskRowActionProps;\n /**\n * Layout presentation. Use `list` inside a shared bordered stack so rows\n * sit flush with no card gaps. @default \"standalone\"\n */\n variant?: TaskRowVariant;\n /**\n * When `variant=\"list\"`, draw a bottom divider. Set false on the last row.\n * @default true\n */\n withDivider?: boolean;\n /** Optional dismiss or snooze handler. */\n onDismiss?: () => void;\n /** Accessible label for the dismiss control. @default \"Dismiss task\" */\n dismissLabel?: string;\n /** Accessible label for the row. Defaults to title plus timing when provided. */\n ariaLabel?: string;\n className?: string;\n}\n\nconst PRIORITY_SEVERITY_COLORS = {\n critical: fairmintVars.colorErrorText,\n // Mid warning ramp (amber) — clearer than warning-text/solid brown vs error red.\n high: \"warning.5\",\n medium: \"warning.5\",\n low: fairmintVars.colorTextTertiary,\n} as const;\n\nconst DEFAULT_PRIORITY_LABELS: Record<TaskRowPriority, string> = {\n critical: \"Critical\",\n high: \"High\",\n medium: \"Medium\",\n low: \"Low\",\n};\n\n/** Soft critical tint that stays readable in Light and Dark (avoids solid error-bg in dark). */\nconst CRITICAL_ROW_BACKGROUND = `color-mix(in srgb, ${fairmintVars.colorErrorSolid} 18%, ${fairmintVars.colorBgSurface})`;\n\nfunction DefaultDismissIcon() {\n return (\n <svg\n aria-hidden=\"true\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </svg>\n );\n}\n\n/**\n * Presentational durable-task row for Studio Tasks and future Investor inbox work.\n *\n * Owns uppercase severity text above the title, description, a right-pinned\n * vertically centered `sm` primary CTA, and optional dismiss. Only `critical`\n * priority receives a semantic fill; non-critical rows stay on the neutral\n * list surface. The owning workflow resolves completion; this row does not\n * infer resolution from dismiss.\n */\nexport function TaskRow({\n action,\n ariaLabel,\n className,\n description,\n dismissLabel = \"Dismiss task\",\n onDismiss,\n priority = \"medium\",\n priorityLabel,\n timingLabel,\n title,\n variant = \"standalone\",\n withDivider = true,\n}: TaskRowProps) {\n const resolvedSeverityLabel = priorityLabel ?? DEFAULT_PRIORITY_LABELS[priority];\n const resolvedAriaLabel =\n ariaLabel ??\n (timingLabel\n ? `${title}. ${resolvedSeverityLabel} priority. ${timingLabel}`\n : `${title}. ${resolvedSeverityLabel} priority`);\n const isCritical = priority === \"critical\";\n const isList = variant === \"list\";\n const hasDescription = description.trim().length > 0;\n const { label: actionLabel, ...actionProps } = action;\n\n return (\n <Box\n aria-label={resolvedAriaLabel}\n role=\"group\"\n className={className}\n data-priority={priority}\n data-testid=\"task-row\"\n data-variant={variant}\n px=\"sm\"\n py={10}\n w=\"100%\"\n miw={0}\n style={{\n background: isCritical ? CRITICAL_ROW_BACKGROUND : fairmintVars.colorBgSurface,\n border: isList ? \"none\" : `1px solid ${fairmintVars.colorBorderDefault}`,\n borderBottom:\n isList && withDivider ? `1px solid ${fairmintVars.colorBorderDefault}` : undefined,\n borderRadius: isList ? 0 : 10,\n }}\n >\n <Group align=\"center\" gap=\"sm\" justify=\"space-between\" wrap=\"nowrap\">\n <Stack gap={4} miw={0} style={{ flex: 1 }}>\n <Text\n aria-hidden\n c={PRIORITY_SEVERITY_COLORS[priority]}\n fw={650}\n size=\"xs\"\n style={{\n letterSpacing: \"0.03em\",\n lineHeight: 1.2,\n textTransform: \"uppercase\",\n }}\n >\n {resolvedSeverityLabel}\n </Text>\n\n <Text\n fw={600}\n lineClamp={2}\n size=\"sm\"\n c={fairmintVars.colorTextPrimary}\n style={{ minWidth: 0 }}\n >\n {title}\n </Text>\n\n {hasDescription ? (\n <Text\n c={fairmintVars.colorTextSecondary}\n lineClamp={2}\n size=\"sm\"\n style={{ minWidth: 0 }}\n >\n {description}\n </Text>\n ) : null}\n </Stack>\n\n <Group align=\"center\" gap=\"xs\" wrap=\"nowrap\" style={{ flexShrink: 0 }}>\n <Button\n {...actionProps}\n color={colors.primary}\n size=\"sm\"\n variant={isCritical ? \"filled\" : \"light\"}\n >\n {actionLabel}\n </Button>\n {onDismiss ? (\n <ActionIcon\n aria-label={dismissLabel}\n color={colors.neutral}\n onClick={onDismiss}\n size=\"md\"\n variant=\"subtle\"\n >\n <DefaultDismissIcon />\n </ActionIcon>\n ) : null}\n </Group>\n </Group>\n </Box>\n );\n}\n"],"names":["fairmintVars","jsxs","jsx","Box","Group","Stack","Text","Button","colors","ActionIcon"],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { ButtonProps } from '../../primitives/Button/Button';
|
|
3
|
+
export type TaskRowPriority = "critical" | "high" | "medium" | "low";
|
|
4
|
+
export type TaskRowVariant = "standalone" | "list";
|
|
5
|
+
export interface TaskRowActionProps extends Omit<ButtonProps, "children" | "color" | "variant" | "size"> {
|
|
6
|
+
/** Visible primary CTA label. */
|
|
7
|
+
label: ReactNode;
|
|
8
|
+
}
|
|
9
|
+
export interface TaskRowProps {
|
|
10
|
+
/** Priority / urgency affordance. @default "medium" */
|
|
11
|
+
priority?: TaskRowPriority;
|
|
12
|
+
/**
|
|
13
|
+
* Severity label shown above the title in uppercase plain text.
|
|
14
|
+
* Defaults to the capitalized priority name (for example, "Critical", "High").
|
|
15
|
+
*/
|
|
16
|
+
priorityLabel?: string;
|
|
17
|
+
/** Task title. */
|
|
18
|
+
title: string;
|
|
19
|
+
/** Supporting description. */
|
|
20
|
+
description: string;
|
|
21
|
+
/**
|
|
22
|
+
* Caller-formatted due date or age (for example, "Due today", "3 days ago").
|
|
23
|
+
* Included in the accessible name when provided; not shown beside the CTA.
|
|
24
|
+
*/
|
|
25
|
+
timingLabel?: string;
|
|
26
|
+
/** Primary workflow CTA. */
|
|
27
|
+
action: TaskRowActionProps;
|
|
28
|
+
/**
|
|
29
|
+
* Layout presentation. Use `list` inside a shared bordered stack so rows
|
|
30
|
+
* sit flush with no card gaps. @default "standalone"
|
|
31
|
+
*/
|
|
32
|
+
variant?: TaskRowVariant;
|
|
33
|
+
/**
|
|
34
|
+
* When `variant="list"`, draw a bottom divider. Set false on the last row.
|
|
35
|
+
* @default true
|
|
36
|
+
*/
|
|
37
|
+
withDivider?: boolean;
|
|
38
|
+
/** Optional dismiss or snooze handler. */
|
|
39
|
+
onDismiss?: () => void;
|
|
40
|
+
/** Accessible label for the dismiss control. @default "Dismiss task" */
|
|
41
|
+
dismissLabel?: string;
|
|
42
|
+
/** Accessible label for the row. Defaults to title plus timing when provided. */
|
|
43
|
+
ariaLabel?: string;
|
|
44
|
+
className?: string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Presentational durable-task row for Studio Tasks and future Investor inbox work.
|
|
48
|
+
*
|
|
49
|
+
* Owns uppercase severity text above the title, description, a right-pinned
|
|
50
|
+
* vertically centered `sm` primary CTA, and optional dismiss. Only `critical`
|
|
51
|
+
* priority receives a semantic fill; non-critical rows stay on the neutral
|
|
52
|
+
* list surface. The owning workflow resolves completion; this row does not
|
|
53
|
+
* infer resolution from dismiss.
|
|
54
|
+
*/
|
|
55
|
+
export declare function TaskRow({ action, ariaLabel, className, description, dismissLabel, onDismiss, priority, priorityLabel, timingLabel, title, variant, withDivider, }: TaskRowProps): import("react/jsx-runtime").JSX.Element;
|
|
56
|
+
//# sourceMappingURL=TaskRow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskRow.d.ts","sourceRoot":"","sources":["../../../../src/components/generic/TaskRow/TaskRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAG1E,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAErE,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,MAAM,CAAC;AAEnD,MAAM,WAAW,kBACf,SAAQ,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACpE,iCAAiC;IACjC,KAAK,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,uDAAuD;IACvD,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,MAAM,EAAE,kBAAkB,CAAC;IAC3B;;;OAGG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAuCD;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,EACtB,MAAM,EACN,SAAS,EACT,SAAS,EACT,WAAW,EACX,YAA6B,EAC7B,SAAS,EACT,QAAmB,EACnB,aAAa,EACb,WAAW,EACX,KAAK,EACL,OAAsB,EACtB,WAAkB,GACnB,EAAE,YAAY,2CA8Fd"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { fairmintVars } from "../../../theme/index.js";
|
|
3
|
+
import { colors } from "../../../theme/colors.js";
|
|
4
|
+
import { ActionIcon } from "../../primitives/ActionIcon/ActionIcon.js";
|
|
5
|
+
import { Button } from "../../primitives/Button/Button.js";
|
|
6
|
+
import { Box, Stack } from "../../primitives/layout.js";
|
|
7
|
+
import { Group } from "../../../node_modules/@mantine/core/esm/components/Group/Group.js";
|
|
8
|
+
import { Text } from "../../../node_modules/@mantine/core/esm/components/Text/Text.js";
|
|
9
|
+
const PRIORITY_SEVERITY_COLORS = {
|
|
10
|
+
critical: fairmintVars.colorErrorText,
|
|
11
|
+
// Mid warning ramp (amber) — clearer than warning-text/solid brown vs error red.
|
|
12
|
+
high: "warning.5",
|
|
13
|
+
medium: "warning.5",
|
|
14
|
+
low: fairmintVars.colorTextTertiary
|
|
15
|
+
};
|
|
16
|
+
const DEFAULT_PRIORITY_LABELS = {
|
|
17
|
+
critical: "Critical",
|
|
18
|
+
high: "High",
|
|
19
|
+
medium: "Medium",
|
|
20
|
+
low: "Low"
|
|
21
|
+
};
|
|
22
|
+
const CRITICAL_ROW_BACKGROUND = `color-mix(in srgb, ${fairmintVars.colorErrorSolid} 18%, ${fairmintVars.colorBgSurface})`;
|
|
23
|
+
function DefaultDismissIcon() {
|
|
24
|
+
return /* @__PURE__ */ jsxs(
|
|
25
|
+
"svg",
|
|
26
|
+
{
|
|
27
|
+
"aria-hidden": "true",
|
|
28
|
+
width: "14",
|
|
29
|
+
height: "14",
|
|
30
|
+
viewBox: "0 0 24 24",
|
|
31
|
+
fill: "none",
|
|
32
|
+
stroke: "currentColor",
|
|
33
|
+
strokeWidth: "2",
|
|
34
|
+
strokeLinecap: "round",
|
|
35
|
+
strokeLinejoin: "round",
|
|
36
|
+
children: [
|
|
37
|
+
/* @__PURE__ */ jsx("path", { d: "M18 6 6 18" }),
|
|
38
|
+
/* @__PURE__ */ jsx("path", { d: "m6 6 12 12" })
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
function TaskRow({
|
|
44
|
+
action,
|
|
45
|
+
ariaLabel,
|
|
46
|
+
className,
|
|
47
|
+
description,
|
|
48
|
+
dismissLabel = "Dismiss task",
|
|
49
|
+
onDismiss,
|
|
50
|
+
priority = "medium",
|
|
51
|
+
priorityLabel,
|
|
52
|
+
timingLabel,
|
|
53
|
+
title,
|
|
54
|
+
variant = "standalone",
|
|
55
|
+
withDivider = true
|
|
56
|
+
}) {
|
|
57
|
+
const resolvedSeverityLabel = priorityLabel ?? DEFAULT_PRIORITY_LABELS[priority];
|
|
58
|
+
const resolvedAriaLabel = ariaLabel ?? (timingLabel ? `${title}. ${resolvedSeverityLabel} priority. ${timingLabel}` : `${title}. ${resolvedSeverityLabel} priority`);
|
|
59
|
+
const isCritical = priority === "critical";
|
|
60
|
+
const isList = variant === "list";
|
|
61
|
+
const hasDescription = description.trim().length > 0;
|
|
62
|
+
const { label: actionLabel, ...actionProps } = action;
|
|
63
|
+
return /* @__PURE__ */ jsx(
|
|
64
|
+
Box,
|
|
65
|
+
{
|
|
66
|
+
"aria-label": resolvedAriaLabel,
|
|
67
|
+
role: "group",
|
|
68
|
+
className,
|
|
69
|
+
"data-priority": priority,
|
|
70
|
+
"data-testid": "task-row",
|
|
71
|
+
"data-variant": variant,
|
|
72
|
+
px: "sm",
|
|
73
|
+
py: 10,
|
|
74
|
+
w: "100%",
|
|
75
|
+
miw: 0,
|
|
76
|
+
style: {
|
|
77
|
+
background: isCritical ? CRITICAL_ROW_BACKGROUND : fairmintVars.colorBgSurface,
|
|
78
|
+
border: isList ? "none" : `1px solid ${fairmintVars.colorBorderDefault}`,
|
|
79
|
+
borderBottom: isList && withDivider ? `1px solid ${fairmintVars.colorBorderDefault}` : void 0,
|
|
80
|
+
borderRadius: isList ? 0 : 10
|
|
81
|
+
},
|
|
82
|
+
children: /* @__PURE__ */ jsxs(Group, { align: "center", gap: "sm", justify: "space-between", wrap: "nowrap", children: [
|
|
83
|
+
/* @__PURE__ */ jsxs(Stack, { gap: 4, miw: 0, style: { flex: 1 }, children: [
|
|
84
|
+
/* @__PURE__ */ jsx(
|
|
85
|
+
Text,
|
|
86
|
+
{
|
|
87
|
+
"aria-hidden": true,
|
|
88
|
+
c: PRIORITY_SEVERITY_COLORS[priority],
|
|
89
|
+
fw: 650,
|
|
90
|
+
size: "xs",
|
|
91
|
+
style: {
|
|
92
|
+
letterSpacing: "0.03em",
|
|
93
|
+
lineHeight: 1.2,
|
|
94
|
+
textTransform: "uppercase"
|
|
95
|
+
},
|
|
96
|
+
children: resolvedSeverityLabel
|
|
97
|
+
}
|
|
98
|
+
),
|
|
99
|
+
/* @__PURE__ */ jsx(
|
|
100
|
+
Text,
|
|
101
|
+
{
|
|
102
|
+
fw: 600,
|
|
103
|
+
lineClamp: 2,
|
|
104
|
+
size: "sm",
|
|
105
|
+
c: fairmintVars.colorTextPrimary,
|
|
106
|
+
style: { minWidth: 0 },
|
|
107
|
+
children: title
|
|
108
|
+
}
|
|
109
|
+
),
|
|
110
|
+
hasDescription ? /* @__PURE__ */ jsx(
|
|
111
|
+
Text,
|
|
112
|
+
{
|
|
113
|
+
c: fairmintVars.colorTextSecondary,
|
|
114
|
+
lineClamp: 2,
|
|
115
|
+
size: "sm",
|
|
116
|
+
style: { minWidth: 0 },
|
|
117
|
+
children: description
|
|
118
|
+
}
|
|
119
|
+
) : null
|
|
120
|
+
] }),
|
|
121
|
+
/* @__PURE__ */ jsxs(Group, { align: "center", gap: "xs", wrap: "nowrap", style: { flexShrink: 0 }, children: [
|
|
122
|
+
/* @__PURE__ */ jsx(
|
|
123
|
+
Button,
|
|
124
|
+
{
|
|
125
|
+
...actionProps,
|
|
126
|
+
color: colors.primary,
|
|
127
|
+
size: "sm",
|
|
128
|
+
variant: isCritical ? "filled" : "light",
|
|
129
|
+
children: actionLabel
|
|
130
|
+
}
|
|
131
|
+
),
|
|
132
|
+
onDismiss ? /* @__PURE__ */ jsx(
|
|
133
|
+
ActionIcon,
|
|
134
|
+
{
|
|
135
|
+
"aria-label": dismissLabel,
|
|
136
|
+
color: colors.neutral,
|
|
137
|
+
onClick: onDismiss,
|
|
138
|
+
size: "md",
|
|
139
|
+
variant: "subtle",
|
|
140
|
+
children: /* @__PURE__ */ jsx(DefaultDismissIcon, {})
|
|
141
|
+
}
|
|
142
|
+
) : null
|
|
143
|
+
] })
|
|
144
|
+
] })
|
|
145
|
+
}
|
|
146
|
+
);
|
|
147
|
+
}
|
|
148
|
+
export {
|
|
149
|
+
TaskRow
|
|
150
|
+
};
|
|
151
|
+
//# sourceMappingURL=TaskRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskRow.js","sources":["../../../../src/components/generic/TaskRow/TaskRow.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { fairmintVars } from \"../../../theme\";\nimport { colors } from \"../../../theme/colors\";\nimport { ActionIcon } from \"../../primitives/ActionIcon/ActionIcon\";\nimport { Button, type ButtonProps } from \"../../primitives/Button/Button\";\nimport { Box, Group, Stack, Text } from \"../../primitives/layout\";\n\nexport type TaskRowPriority = \"critical\" | \"high\" | \"medium\" | \"low\";\n\nexport type TaskRowVariant = \"standalone\" | \"list\";\n\nexport interface TaskRowActionProps\n extends Omit<ButtonProps, \"children\" | \"color\" | \"variant\" | \"size\"> {\n /** Visible primary CTA label. */\n label: ReactNode;\n}\n\nexport interface TaskRowProps {\n /** Priority / urgency affordance. @default \"medium\" */\n priority?: TaskRowPriority;\n /**\n * Severity label shown above the title in uppercase plain text.\n * Defaults to the capitalized priority name (for example, \"Critical\", \"High\").\n */\n priorityLabel?: string;\n /** Task title. */\n title: string;\n /** Supporting description. */\n description: string;\n /**\n * Caller-formatted due date or age (for example, \"Due today\", \"3 days ago\").\n * Included in the accessible name when provided; not shown beside the CTA.\n */\n timingLabel?: string;\n /** Primary workflow CTA. */\n action: TaskRowActionProps;\n /**\n * Layout presentation. Use `list` inside a shared bordered stack so rows\n * sit flush with no card gaps. @default \"standalone\"\n */\n variant?: TaskRowVariant;\n /**\n * When `variant=\"list\"`, draw a bottom divider. Set false on the last row.\n * @default true\n */\n withDivider?: boolean;\n /** Optional dismiss or snooze handler. */\n onDismiss?: () => void;\n /** Accessible label for the dismiss control. @default \"Dismiss task\" */\n dismissLabel?: string;\n /** Accessible label for the row. Defaults to title plus timing when provided. */\n ariaLabel?: string;\n className?: string;\n}\n\nconst PRIORITY_SEVERITY_COLORS = {\n critical: fairmintVars.colorErrorText,\n // Mid warning ramp (amber) — clearer than warning-text/solid brown vs error red.\n high: \"warning.5\",\n medium: \"warning.5\",\n low: fairmintVars.colorTextTertiary,\n} as const;\n\nconst DEFAULT_PRIORITY_LABELS: Record<TaskRowPriority, string> = {\n critical: \"Critical\",\n high: \"High\",\n medium: \"Medium\",\n low: \"Low\",\n};\n\n/** Soft critical tint that stays readable in Light and Dark (avoids solid error-bg in dark). */\nconst CRITICAL_ROW_BACKGROUND = `color-mix(in srgb, ${fairmintVars.colorErrorSolid} 18%, ${fairmintVars.colorBgSurface})`;\n\nfunction DefaultDismissIcon() {\n return (\n <svg\n aria-hidden=\"true\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </svg>\n );\n}\n\n/**\n * Presentational durable-task row for Studio Tasks and future Investor inbox work.\n *\n * Owns uppercase severity text above the title, description, a right-pinned\n * vertically centered `sm` primary CTA, and optional dismiss. Only `critical`\n * priority receives a semantic fill; non-critical rows stay on the neutral\n * list surface. The owning workflow resolves completion; this row does not\n * infer resolution from dismiss.\n */\nexport function TaskRow({\n action,\n ariaLabel,\n className,\n description,\n dismissLabel = \"Dismiss task\",\n onDismiss,\n priority = \"medium\",\n priorityLabel,\n timingLabel,\n title,\n variant = \"standalone\",\n withDivider = true,\n}: TaskRowProps) {\n const resolvedSeverityLabel = priorityLabel ?? DEFAULT_PRIORITY_LABELS[priority];\n const resolvedAriaLabel =\n ariaLabel ??\n (timingLabel\n ? `${title}. ${resolvedSeverityLabel} priority. ${timingLabel}`\n : `${title}. ${resolvedSeverityLabel} priority`);\n const isCritical = priority === \"critical\";\n const isList = variant === \"list\";\n const hasDescription = description.trim().length > 0;\n const { label: actionLabel, ...actionProps } = action;\n\n return (\n <Box\n aria-label={resolvedAriaLabel}\n role=\"group\"\n className={className}\n data-priority={priority}\n data-testid=\"task-row\"\n data-variant={variant}\n px=\"sm\"\n py={10}\n w=\"100%\"\n miw={0}\n style={{\n background: isCritical ? CRITICAL_ROW_BACKGROUND : fairmintVars.colorBgSurface,\n border: isList ? \"none\" : `1px solid ${fairmintVars.colorBorderDefault}`,\n borderBottom:\n isList && withDivider ? `1px solid ${fairmintVars.colorBorderDefault}` : undefined,\n borderRadius: isList ? 0 : 10,\n }}\n >\n <Group align=\"center\" gap=\"sm\" justify=\"space-between\" wrap=\"nowrap\">\n <Stack gap={4} miw={0} style={{ flex: 1 }}>\n <Text\n aria-hidden\n c={PRIORITY_SEVERITY_COLORS[priority]}\n fw={650}\n size=\"xs\"\n style={{\n letterSpacing: \"0.03em\",\n lineHeight: 1.2,\n textTransform: \"uppercase\",\n }}\n >\n {resolvedSeverityLabel}\n </Text>\n\n <Text\n fw={600}\n lineClamp={2}\n size=\"sm\"\n c={fairmintVars.colorTextPrimary}\n style={{ minWidth: 0 }}\n >\n {title}\n </Text>\n\n {hasDescription ? (\n <Text\n c={fairmintVars.colorTextSecondary}\n lineClamp={2}\n size=\"sm\"\n style={{ minWidth: 0 }}\n >\n {description}\n </Text>\n ) : null}\n </Stack>\n\n <Group align=\"center\" gap=\"xs\" wrap=\"nowrap\" style={{ flexShrink: 0 }}>\n <Button\n {...actionProps}\n color={colors.primary}\n size=\"sm\"\n variant={isCritical ? \"filled\" : \"light\"}\n >\n {actionLabel}\n </Button>\n {onDismiss ? (\n <ActionIcon\n aria-label={dismissLabel}\n color={colors.neutral}\n onClick={onDismiss}\n size=\"md\"\n variant=\"subtle\"\n >\n <DefaultDismissIcon />\n </ActionIcon>\n ) : null}\n </Group>\n </Group>\n </Box>\n );\n}\n"],"names":[],"mappings":"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"}
|
package/dist/fairmint-ui.cjs
CHANGED
|
@@ -36,6 +36,7 @@ const Eyebrow = require("./components/generic/Eyebrow/Eyebrow.cjs");
|
|
|
36
36
|
const FileDropzone = require("./components/generic/FileDropzone/FileDropzone.cjs");
|
|
37
37
|
const ListRow = require("./components/generic/ListRow/ListRow.cjs");
|
|
38
38
|
const MultiSelectSearch = require("./components/generic/MultiSelectSearch/MultiSelectSearch.cjs");
|
|
39
|
+
const NotificationRow = require("./components/generic/NotificationRow/NotificationRow.cjs");
|
|
39
40
|
const Percent = require("./components/generic/Percent/Percent.cjs");
|
|
40
41
|
const PhotoCropModal = require("./components/generic/PhotoCropModal/PhotoCropModal.cjs");
|
|
41
42
|
const ProcessingState = require("./components/generic/ProcessingState/ProcessingState.cjs");
|
|
@@ -46,6 +47,7 @@ const StatusBadge = require("./components/generic/StatusBadge/StatusBadge.cjs");
|
|
|
46
47
|
const StepCard = require("./components/generic/StepCard/StepCard.cjs");
|
|
47
48
|
const StepFlow = require("./components/generic/StepFlow/StepFlow.cjs");
|
|
48
49
|
const StepProgress = require("./components/generic/StepProgress/StepProgress.cjs");
|
|
50
|
+
const TaskRow = require("./components/generic/TaskRow/TaskRow.cjs");
|
|
49
51
|
const ValidationWarning = require("./components/generic/ValidationWarning/ValidationWarning.cjs");
|
|
50
52
|
const LoadingOverlay = require("./components/LoadingOverlay/LoadingOverlay.cjs");
|
|
51
53
|
const LoadingSpinner = require("./components/LoadingSpinner/LoadingSpinner.cjs");
|
|
@@ -191,6 +193,7 @@ exports.FILE_DROPZONE_DEFAULT_SUPPORTED_TYPES = FileDropzone.FILE_DROPZONE_DEFAU
|
|
|
191
193
|
exports.FileDropzone = FileDropzone.FileDropzone;
|
|
192
194
|
exports.ListRow = ListRow.ListRow;
|
|
193
195
|
exports.MultiSelectSearch = MultiSelectSearch.MultiSelectSearch;
|
|
196
|
+
exports.NotificationRow = NotificationRow.NotificationRow;
|
|
194
197
|
exports.Percent = Percent.Percent;
|
|
195
198
|
exports.PhotoCropModal = PhotoCropModal.PhotoCropModal;
|
|
196
199
|
exports.ProcessingState = ProcessingState.ProcessingState;
|
|
@@ -204,6 +207,7 @@ exports.StepFlow = StepFlow.StepFlow;
|
|
|
204
207
|
exports.STEP_PROGRESS_MOBILE_BREAKPOINT = StepProgress.STEP_PROGRESS_MOBILE_BREAKPOINT;
|
|
205
208
|
exports.StepProgress = StepProgress.StepProgress;
|
|
206
209
|
exports.getStepProgressStatus = StepProgress.getStepProgressStatus;
|
|
210
|
+
exports.TaskRow = TaskRow.TaskRow;
|
|
207
211
|
exports.ValidationWarning = ValidationWarning.ValidationWarning;
|
|
208
212
|
exports.LoadingOverlay = LoadingOverlay.LoadingOverlay;
|
|
209
213
|
exports.LoadingSpinner = LoadingSpinner.LoadingSpinner;
|
package/dist/fairmint-ui.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fairmint-ui.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fairmint-ui.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/fairmint-ui.js
CHANGED
|
@@ -34,6 +34,7 @@ import { Eyebrow } from "./components/generic/Eyebrow/Eyebrow.js";
|
|
|
34
34
|
import { FILE_DROPZONE_DEFAULT_MAX_FILES, FILE_DROPZONE_DEFAULT_SUPPORTED_TYPES, FileDropzone } from "./components/generic/FileDropzone/FileDropzone.js";
|
|
35
35
|
import { ListRow } from "./components/generic/ListRow/ListRow.js";
|
|
36
36
|
import { MultiSelectSearch } from "./components/generic/MultiSelectSearch/MultiSelectSearch.js";
|
|
37
|
+
import { NotificationRow } from "./components/generic/NotificationRow/NotificationRow.js";
|
|
37
38
|
import { Percent } from "./components/generic/Percent/Percent.js";
|
|
38
39
|
import { PhotoCropModal } from "./components/generic/PhotoCropModal/PhotoCropModal.js";
|
|
39
40
|
import { ProcessingState } from "./components/generic/ProcessingState/ProcessingState.js";
|
|
@@ -44,6 +45,7 @@ import { StatusBadge } from "./components/generic/StatusBadge/StatusBadge.js";
|
|
|
44
45
|
import { StepCard } from "./components/generic/StepCard/StepCard.js";
|
|
45
46
|
import { STEP_FLOW_DEFAULT_MAX_WIDTH, StepFlow } from "./components/generic/StepFlow/StepFlow.js";
|
|
46
47
|
import { STEP_PROGRESS_MOBILE_BREAKPOINT, StepProgress, getStepProgressStatus } from "./components/generic/StepProgress/StepProgress.js";
|
|
48
|
+
import { TaskRow } from "./components/generic/TaskRow/TaskRow.js";
|
|
47
49
|
import { ValidationWarning } from "./components/generic/ValidationWarning/ValidationWarning.js";
|
|
48
50
|
import { LoadingOverlay } from "./components/LoadingOverlay/LoadingOverlay.js";
|
|
49
51
|
import { LoadingSpinner } from "./components/LoadingSpinner/LoadingSpinner.js";
|
|
@@ -341,6 +343,7 @@ export {
|
|
|
341
343
|
NewspaperIcon,
|
|
342
344
|
NoteAddIcon,
|
|
343
345
|
Notification,
|
|
346
|
+
NotificationRow,
|
|
344
347
|
Notifications,
|
|
345
348
|
NumberInput,
|
|
346
349
|
OpenInNewIcon,
|
|
@@ -430,6 +433,7 @@ export {
|
|
|
430
433
|
TablePagination,
|
|
431
434
|
TableRow,
|
|
432
435
|
Tabs,
|
|
436
|
+
TaskRow,
|
|
433
437
|
Text,
|
|
434
438
|
TextField,
|
|
435
439
|
TextInput,
|
package/dist/fairmint-ui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fairmint-ui.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fairmint-ui.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -72,6 +72,8 @@ export type { ListRowProps } from './components/generic/ListRow/ListRow';
|
|
|
72
72
|
export { ListRow } from './components/generic/ListRow/ListRow';
|
|
73
73
|
export type { MultiSelectSearchData, MultiSelectSearchOption, MultiSelectSearchOptionGroup, MultiSelectSearchProps, } from './components/generic/MultiSelectSearch/MultiSelectSearch';
|
|
74
74
|
export { MultiSelectSearch } from './components/generic/MultiSelectSearch/MultiSelectSearch';
|
|
75
|
+
export type { NotificationRowProps, NotificationRowSeverity, NotificationRowVariant, } from './components/generic/NotificationRow/NotificationRow';
|
|
76
|
+
export { NotificationRow } from './components/generic/NotificationRow/NotificationRow';
|
|
75
77
|
export type { PercentProps } from './components/generic/Percent/Percent';
|
|
76
78
|
export { Percent } from './components/generic/Percent/Percent';
|
|
77
79
|
export type { PhotoCropModalProps } from './components/generic/PhotoCropModal/PhotoCropModal';
|
|
@@ -92,6 +94,8 @@ export type { StepFlowOrientation, StepFlowProps, StepFlowStep, } from './compon
|
|
|
92
94
|
export { STEP_FLOW_DEFAULT_MAX_WIDTH, StepFlow } from './components/generic/StepFlow/StepFlow';
|
|
93
95
|
export type { StepProgressOrientation, StepProgressProps, StepProgressStep, StepProgressStepStatus, } from './components/generic/StepProgress/StepProgress';
|
|
94
96
|
export { getStepProgressStatus, STEP_PROGRESS_MOBILE_BREAKPOINT, StepProgress, } from './components/generic/StepProgress/StepProgress';
|
|
97
|
+
export type { TaskRowActionProps, TaskRowPriority, TaskRowProps, TaskRowVariant, } from './components/generic/TaskRow/TaskRow';
|
|
98
|
+
export { TaskRow } from './components/generic/TaskRow/TaskRow';
|
|
95
99
|
export type { ValidationWarningProps } from './components/generic/ValidationWarning/ValidationWarning';
|
|
96
100
|
export { ValidationWarning } from './components/generic/ValidationWarning/ValidationWarning';
|
|
97
101
|
export type { LoadingOverlayProps } from './components/LoadingOverlay/LoadingOverlay';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|