@activecollab/components 2.0.363 → 2.0.364
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/cjs/presentation/stackedCard/content/ImageCard.js +60 -0
- package/dist/cjs/presentation/stackedCard/content/ImageCard.js.map +1 -0
- package/dist/cjs/presentation/stackedCard/content/LinkCard.js +348 -0
- package/dist/cjs/presentation/stackedCard/content/LinkCard.js.map +1 -0
- package/dist/cjs/presentation/stackedCard/content/NoteCard.js +92 -0
- package/dist/cjs/presentation/stackedCard/content/NoteCard.js.map +1 -0
- package/dist/cjs/presentation/stackedCard/content/SwatchCard.js +74 -0
- package/dist/cjs/presentation/stackedCard/content/SwatchCard.js.map +1 -0
- package/dist/cjs/presentation/stackedCard/content/TaskCard.js +231 -0
- package/dist/cjs/presentation/stackedCard/content/TaskCard.js.map +1 -0
- package/dist/cjs/presentation/stackedCard/content/index.js +83 -0
- package/dist/cjs/presentation/stackedCard/content/index.js.map +1 -0
- package/dist/cjs/presentation/stackedCard/content/shared.js +144 -0
- package/dist/cjs/presentation/stackedCard/content/shared.js.map +1 -0
- package/dist/cjs/presentation/stackedCard/content/unfurl.js +172 -0
- package/dist/cjs/presentation/stackedCard/content/unfurl.js.map +1 -0
- package/dist/cjs/presentation/stackedCard/primitives.js +254 -0
- package/dist/cjs/presentation/stackedCard/primitives.js.map +1 -0
- package/dist/cjs/presentation/stackedCard/resizePolicy.js +183 -0
- package/dist/cjs/presentation/stackedCard/resizePolicy.js.map +1 -0
- package/dist/cjs/presentation/stackedCard/shell.js +165 -0
- package/dist/cjs/presentation/stackedCard/shell.js.map +1 -0
- package/dist/cjs/presentation/stackedCard/storyScaffold.js +72 -0
- package/dist/cjs/presentation/stackedCard/storyScaffold.js.map +1 -0
- package/dist/cjs/presentation/stackedCard/useInlineEdit.js +208 -0
- package/dist/cjs/presentation/stackedCard/useInlineEdit.js.map +1 -0
- package/dist/esm/presentation/stackedCard/content/ImageCard.d.ts +15 -0
- package/dist/esm/presentation/stackedCard/content/ImageCard.d.ts.map +1 -0
- package/dist/esm/presentation/stackedCard/content/ImageCard.js +50 -0
- package/dist/esm/presentation/stackedCard/content/ImageCard.js.map +1 -0
- package/dist/esm/presentation/stackedCard/content/LinkCard.d.ts +28 -0
- package/dist/esm/presentation/stackedCard/content/LinkCard.d.ts.map +1 -0
- package/dist/esm/presentation/stackedCard/content/LinkCard.js +336 -0
- package/dist/esm/presentation/stackedCard/content/LinkCard.js.map +1 -0
- package/dist/esm/presentation/stackedCard/content/NoteCard.d.ts +10 -0
- package/dist/esm/presentation/stackedCard/content/NoteCard.d.ts.map +1 -0
- package/dist/esm/presentation/stackedCard/content/NoteCard.js +82 -0
- package/dist/esm/presentation/stackedCard/content/NoteCard.js.map +1 -0
- package/dist/esm/presentation/stackedCard/content/SwatchCard.d.ts +14 -0
- package/dist/esm/presentation/stackedCard/content/SwatchCard.d.ts.map +1 -0
- package/dist/esm/presentation/stackedCard/content/SwatchCard.js +64 -0
- package/dist/esm/presentation/stackedCard/content/SwatchCard.js.map +1 -0
- package/dist/esm/presentation/stackedCard/content/TaskCard.d.ts +29 -0
- package/dist/esm/presentation/stackedCard/content/TaskCard.d.ts.map +1 -0
- package/dist/esm/presentation/stackedCard/content/TaskCard.js +218 -0
- package/dist/esm/presentation/stackedCard/content/TaskCard.js.map +1 -0
- package/dist/esm/presentation/stackedCard/content/index.d.ts +8 -0
- package/dist/esm/presentation/stackedCard/content/index.d.ts.map +1 -0
- package/dist/esm/presentation/stackedCard/content/index.js +8 -0
- package/dist/esm/presentation/stackedCard/content/index.js.map +1 -0
- package/dist/esm/presentation/stackedCard/content/shared.d.ts +46 -0
- package/dist/esm/presentation/stackedCard/content/shared.d.ts.map +1 -0
- package/dist/esm/presentation/stackedCard/content/shared.js +134 -0
- package/dist/esm/presentation/stackedCard/content/shared.js.map +1 -0
- package/dist/esm/presentation/stackedCard/content/unfurl.d.ts +89 -0
- package/dist/esm/presentation/stackedCard/content/unfurl.d.ts.map +1 -0
- package/dist/esm/presentation/stackedCard/content/unfurl.js +147 -0
- package/dist/esm/presentation/stackedCard/content/unfurl.js.map +1 -0
- package/dist/esm/presentation/stackedCard/primitives.d.ts +84 -0
- package/dist/esm/presentation/stackedCard/primitives.d.ts.map +1 -0
- package/dist/esm/presentation/stackedCard/primitives.js +241 -0
- package/dist/esm/presentation/stackedCard/primitives.js.map +1 -0
- package/dist/esm/presentation/stackedCard/resizePolicy.d.ts +97 -0
- package/dist/esm/presentation/stackedCard/resizePolicy.d.ts.map +1 -0
- package/dist/esm/presentation/stackedCard/resizePolicy.js +173 -0
- package/dist/esm/presentation/stackedCard/resizePolicy.js.map +1 -0
- package/dist/esm/presentation/stackedCard/shell.d.ts +46 -0
- package/dist/esm/presentation/stackedCard/shell.d.ts.map +1 -0
- package/dist/esm/presentation/stackedCard/shell.js +156 -0
- package/dist/esm/presentation/stackedCard/shell.js.map +1 -0
- package/dist/esm/presentation/stackedCard/storyScaffold.d.ts +28 -0
- package/dist/esm/presentation/stackedCard/storyScaffold.d.ts.map +1 -0
- package/dist/esm/presentation/stackedCard/storyScaffold.js +66 -0
- package/dist/esm/presentation/stackedCard/storyScaffold.js.map +1 -0
- package/dist/esm/presentation/stackedCard/useInlineEdit.d.ts +68 -0
- package/dist/esm/presentation/stackedCard/useInlineEdit.d.ts.map +1 -0
- package/dist/esm/presentation/stackedCard/useInlineEdit.js +192 -0
- package/dist/esm/presentation/stackedCard/useInlineEdit.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.SwatchSkeleton = exports.SwatchPlaceholder = exports.SwatchCard = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _shared = require("./shared");
|
|
9
|
+
var _Icons = require("../../../components/Icons");
|
|
10
|
+
var _Loaders = require("../../../components/Loaders");
|
|
11
|
+
var _Typography = require("../../../components/Typography");
|
|
12
|
+
var _primitives = require("../primitives");
|
|
13
|
+
var _shell = require("../shell");
|
|
14
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
16
|
+
/**
|
|
17
|
+
* SwatchCard — the cover IS the colour; a title row states its name and hex.
|
|
18
|
+
* The swatch value is a literal data colour by design (not a theme token).
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
var SwatchCard = exports.SwatchCard = function SwatchCard(_ref) {
|
|
22
|
+
var _ref$color = _ref.color,
|
|
23
|
+
color = _ref$color === void 0 ? "#1D9E75" : _ref$color,
|
|
24
|
+
_ref$name = _ref.name,
|
|
25
|
+
name = _ref$name === void 0 ? "Teal" : _ref$name,
|
|
26
|
+
_ref$hex = _ref.hex,
|
|
27
|
+
hex = _ref$hex === void 0 ? "#1D9E75" : _ref$hex;
|
|
28
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_primitives.Cover, {
|
|
29
|
+
aspectRatio: _shell.COVER_RATIO_SWATCH
|
|
30
|
+
}, /*#__PURE__*/_react.default.createElement(_shared.StyledColorCover, {
|
|
31
|
+
$color: color
|
|
32
|
+
})), /*#__PURE__*/_react.default.createElement(_primitives.StackRow, {
|
|
33
|
+
role: "title"
|
|
34
|
+
}, /*#__PURE__*/_react.default.createElement(_Typography.Body2, null, name), /*#__PURE__*/_react.default.createElement(_Typography.Caption1, {
|
|
35
|
+
color: "tertiary",
|
|
36
|
+
"data-fixed": true,
|
|
37
|
+
style: {
|
|
38
|
+
fontFamily: "monospace"
|
|
39
|
+
}
|
|
40
|
+
}, hex)));
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
/* ---- placeholder + skeleton ---- */
|
|
44
|
+
|
|
45
|
+
var SwatchPlaceholder = exports.SwatchPlaceholder = function SwatchPlaceholder(props) {
|
|
46
|
+
return /*#__PURE__*/_react.default.createElement(_shared.Placeholder, _extends({
|
|
47
|
+
icon: /*#__PURE__*/_react.default.createElement(_Icons.ImageIcon, null),
|
|
48
|
+
label: "Pick a colour"
|
|
49
|
+
}, props));
|
|
50
|
+
};
|
|
51
|
+
var SwatchSkeleton = exports.SwatchSkeleton = function SwatchSkeleton() {
|
|
52
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_primitives.Cover, {
|
|
53
|
+
aspectRatio: _shell.COVER_RATIO_SWATCH
|
|
54
|
+
}, /*#__PURE__*/_react.default.createElement(_Loaders.SkeletonLoader, {
|
|
55
|
+
style: {
|
|
56
|
+
width: "100%",
|
|
57
|
+
height: "100%"
|
|
58
|
+
}
|
|
59
|
+
})), /*#__PURE__*/_react.default.createElement(_primitives.StackRow, {
|
|
60
|
+
role: "title"
|
|
61
|
+
}, /*#__PURE__*/_react.default.createElement(_Loaders.SkeletonLoader, {
|
|
62
|
+
style: {
|
|
63
|
+
height: 14,
|
|
64
|
+
width: "40%"
|
|
65
|
+
}
|
|
66
|
+
}), /*#__PURE__*/_react.default.createElement(_Loaders.SkeletonLoader, {
|
|
67
|
+
"data-fixed": true,
|
|
68
|
+
style: {
|
|
69
|
+
height: 12,
|
|
70
|
+
width: 60
|
|
71
|
+
}
|
|
72
|
+
})));
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=SwatchCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SwatchCard.js","names":["_react","_interopRequireDefault","require","_shared","_Icons","_Loaders","_Typography","_primitives","_shell","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","SwatchCard","exports","_ref","_ref$color","color","_ref$name","name","_ref$hex","hex","createElement","Fragment","Cover","aspectRatio","COVER_RATIO_SWATCH","StyledColorCover","$color","StackRow","role","Body2","Caption1","style","fontFamily","SwatchPlaceholder","props","Placeholder","icon","ImageIcon","label","SwatchSkeleton","SkeletonLoader","width","height"],"sources":["../../../../../src/presentation/stackedCard/content/SwatchCard.tsx"],"sourcesContent":["import React, { ReactElement } from \"react\";\n\nimport { StyledColorCover, Placeholder } from \"./shared\";\nimport { ImageIcon } from \"../../../components/Icons\";\nimport { SkeletonLoader } from \"../../../components/Loaders\";\nimport { Body2, Caption1 } from \"../../../components/Typography\";\nimport { Cover, StackRow } from \"../primitives\";\nimport { COVER_RATIO_SWATCH } from \"../shell\";\n\n/**\n * SwatchCard — the cover IS the colour; a title row states its name and hex.\n * The swatch value is a literal data colour by design (not a theme token).\n */\n\nexport interface SwatchCardProps {\n color?: string;\n name?: string;\n hex?: string;\n}\n\nexport const SwatchCard = ({\n color = \"#1D9E75\",\n name = \"Teal\",\n hex = \"#1D9E75\",\n}: SwatchCardProps): ReactElement => (\n <>\n <Cover aspectRatio={COVER_RATIO_SWATCH}>\n <StyledColorCover $color={color} />\n </Cover>\n <StackRow role=\"title\">\n <Body2>{name}</Body2>\n <Caption1 color=\"tertiary\" data-fixed style={{ fontFamily: \"monospace\" }}>\n {hex}\n </Caption1>\n </StackRow>\n </>\n);\n\n/* ---- placeholder + skeleton ---- */\n\nexport const SwatchPlaceholder = (\n props: React.ButtonHTMLAttributes<HTMLButtonElement>\n): ReactElement => (\n <Placeholder icon={<ImageIcon />} label=\"Pick a colour\" {...props} />\n);\n\nexport const SwatchSkeleton = (): ReactElement => (\n <>\n <Cover aspectRatio={COVER_RATIO_SWATCH}>\n <SkeletonLoader style={{ width: \"100%\", height: \"100%\" }} />\n </Cover>\n <StackRow role=\"title\">\n <SkeletonLoader style={{ height: 14, width: \"40%\" }} />\n <SkeletonLoader data-fixed style={{ height: 12, width: 60 }} />\n </StackRow>\n </>\n);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.TaskSkeleton = exports.TaskPlaceholder = exports.TaskCard = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
9
|
+
var _shared = require("./shared");
|
|
10
|
+
var _Icons = require("../../../components/Icons");
|
|
11
|
+
var _Loaders = require("../../../components/Loaders");
|
|
12
|
+
var _Typography = require("../../../components/Typography");
|
|
13
|
+
var _Typography2 = require("../../../components/Typography/Typography");
|
|
14
|
+
var _shared2 = require("../../shared");
|
|
15
|
+
var _primitives = require("../primitives");
|
|
16
|
+
var _shell = require("../shell");
|
|
17
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
18
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
19
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
20
|
+
/**
|
|
21
|
+
* TaskCard — the baseline-preservation card.
|
|
22
|
+
*
|
|
23
|
+
* This is the replacement for today's column card, so it must reproduce every
|
|
24
|
+
* behavior that card has (note 52104 §B2) — none of them are optional, each is
|
|
25
|
+
* a silent-regression risk. Every one is a prop here so the story can toggle it:
|
|
26
|
+
*
|
|
27
|
+
* - task-number prefix in the title (config-gated, mirrors `show_task_id`)
|
|
28
|
+
* - overdue date colouring (red ONLY when overdue AND not completed)
|
|
29
|
+
* - dependency counter (behind a feature-flag prop)
|
|
30
|
+
* - hidden-from-clients signifier (shown only when it DIFFERS from the
|
|
31
|
+
* project default)
|
|
32
|
+
* - inline assignee affordance (avatar, or an add-assignee placeholder)
|
|
33
|
+
* - completed (teal tint, no "…" menu, no overdue colour)
|
|
34
|
+
*
|
|
35
|
+
* The pending/optimistic and priority states are SHELL states (dimmed +
|
|
36
|
+
* pointer-events off; red left bar), so the card is wrapped in a `<StackedCard
|
|
37
|
+
* pending>` / `<StackedCard priorityColor>` by the host — they are not the
|
|
38
|
+
* card's own concern and live on the shell, not here.
|
|
39
|
+
*/
|
|
40
|
+
|
|
41
|
+
var LABEL_DOTS = ["#378ADD", "#D85A30", "#639922", "#EF9F27", "#7F77DD"];
|
|
42
|
+
|
|
43
|
+
/* The completed tint fills the card body; the shell keeps the priority bar and
|
|
44
|
+
selection ring on top of it. */
|
|
45
|
+
var StyledBody = _styledComponents.default.div.withConfig({
|
|
46
|
+
displayName: "TaskCard__StyledBody",
|
|
47
|
+
componentId: "sc-5iuhg8-0"
|
|
48
|
+
})(["display:flex;flex-direction:column;", ""], function (_ref) {
|
|
49
|
+
var $completed = _ref.$completed;
|
|
50
|
+
return $completed && (0, _styledComponents.css)(["background:var(--sc-completed-tint,rgba(72,201,176,0.16));"]);
|
|
51
|
+
});
|
|
52
|
+
var StyledMetaCluster = _styledComponents.default.div.withConfig({
|
|
53
|
+
displayName: "TaskCard__StyledMetaCluster",
|
|
54
|
+
componentId: "sc-5iuhg8-1"
|
|
55
|
+
})(["display:flex;align-items:center;gap:6px;color:var(--color-theme-600);.sc-dots{display:flex;gap:4px;}.sc-sep{opacity:0.6;}.sc-count{display:inline-flex;align-items:center;gap:3px;}svg{width:14px;height:14px;}"]);
|
|
56
|
+
var StyledDot = _styledComponents.default.span.withConfig({
|
|
57
|
+
displayName: "TaskCard__StyledDot",
|
|
58
|
+
componentId: "sc-5iuhg8-2"
|
|
59
|
+
})(["width:11px;height:11px;border-radius:50%;background:", ";"], function (_ref2) {
|
|
60
|
+
var $color = _ref2.$color;
|
|
61
|
+
return $color;
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
/* Hidden-from-clients signifier — an eye-off badge, shown only when the task's
|
|
65
|
+
visibility differs from the project default. */
|
|
66
|
+
var StyledHiddenBadge = _styledComponents.default.span.withConfig({
|
|
67
|
+
displayName: "TaskCard__StyledHiddenBadge",
|
|
68
|
+
componentId: "sc-5iuhg8-3"
|
|
69
|
+
})(["display:inline-flex;align-items:center;gap:3px;color:var(--color-theme-600);svg{width:14px;height:14px;}"]);
|
|
70
|
+
|
|
71
|
+
/* Date — bold; turns red only when overdue AND the task is not completed. */
|
|
72
|
+
var StyledDate = _styledComponents.default.span.withConfig({
|
|
73
|
+
displayName: "TaskCard__StyledDate",
|
|
74
|
+
componentId: "sc-5iuhg8-4"
|
|
75
|
+
})(["font-weight:bold;color:", ";"], function (_ref3) {
|
|
76
|
+
var $overdue = _ref3.$overdue;
|
|
77
|
+
return $overdue ? "var(--red-alert)" : "var(--color-theme-900)";
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
/* Inline assignee affordance placeholder — a dashed add-assignee target that
|
|
81
|
+
stands in until the real picker is wired at integration. */
|
|
82
|
+
var StyledAddAssignee = _styledComponents.default.button.withConfig({
|
|
83
|
+
displayName: "TaskCard__StyledAddAssignee",
|
|
84
|
+
componentId: "sc-5iuhg8-5"
|
|
85
|
+
})(["display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:1.5px dashed var(--color-theme-400);border-radius:50%;background:transparent;color:var(--color-theme-600);cursor:pointer;svg{width:14px;height:14px;display:block;}&:hover{border-color:var(--sc-selection-ring);color:var(--color-theme-800);}"]);
|
|
86
|
+
var TaskCard = exports.TaskCard = function TaskCard(_ref4) {
|
|
87
|
+
var _ref4$title = _ref4.title,
|
|
88
|
+
title = _ref4$title === void 0 ? "Implement the design from the reference on this page" : _ref4$title,
|
|
89
|
+
_ref4$cover = _ref4.cover,
|
|
90
|
+
cover = _ref4$cover === void 0 ? false : _ref4$cover,
|
|
91
|
+
_ref4$playable = _ref4.playable,
|
|
92
|
+
playable = _ref4$playable === void 0 ? false : _ref4$playable,
|
|
93
|
+
_ref4$coverControls = _ref4.coverControls,
|
|
94
|
+
coverControls = _ref4$coverControls === void 0 ? false : _ref4$coverControls,
|
|
95
|
+
_ref4$showTaskId = _ref4.showTaskId,
|
|
96
|
+
showTaskId = _ref4$showTaskId === void 0 ? false : _ref4$showTaskId,
|
|
97
|
+
_ref4$taskId = _ref4.taskId,
|
|
98
|
+
taskId = _ref4$taskId === void 0 ? 4521 : _ref4$taskId,
|
|
99
|
+
_ref4$dateLabel = _ref4.dateLabel,
|
|
100
|
+
dateLabel = _ref4$dateLabel === void 0 ? "May 8 – Sep 10" : _ref4$dateLabel,
|
|
101
|
+
_ref4$overdue = _ref4.overdue,
|
|
102
|
+
overdue = _ref4$overdue === void 0 ? false : _ref4$overdue,
|
|
103
|
+
_ref4$showDependencie = _ref4.showDependencies,
|
|
104
|
+
showDependencies = _ref4$showDependencie === void 0 ? false : _ref4$showDependencie,
|
|
105
|
+
_ref4$dependencyCount = _ref4.dependencyCount,
|
|
106
|
+
dependencyCount = _ref4$dependencyCount === void 0 ? 2 : _ref4$dependencyCount,
|
|
107
|
+
_ref4$hiddenFromClien = _ref4.hiddenFromClients,
|
|
108
|
+
hiddenFromClients = _ref4$hiddenFromClien === void 0 ? false : _ref4$hiddenFromClien,
|
|
109
|
+
_ref4$projectDefaultH = _ref4.projectDefaultHidden,
|
|
110
|
+
projectDefaultHidden = _ref4$projectDefaultH === void 0 ? false : _ref4$projectDefaultH,
|
|
111
|
+
_ref4$assigned = _ref4.assigned,
|
|
112
|
+
assigned = _ref4$assigned === void 0 ? true : _ref4$assigned,
|
|
113
|
+
_ref4$completed = _ref4.completed,
|
|
114
|
+
completed = _ref4$completed === void 0 ? false : _ref4$completed;
|
|
115
|
+
// Signifier appears only when the task's visibility differs from the default.
|
|
116
|
+
var showHiddenSignifier = hiddenFromClients !== projectDefaultHidden;
|
|
117
|
+
// Overdue colour is suppressed on completed tasks.
|
|
118
|
+
var dateIsOverdue = overdue && !completed;
|
|
119
|
+
return /*#__PURE__*/_react.default.createElement(StyledBody, {
|
|
120
|
+
$completed: completed
|
|
121
|
+
}, cover ? /*#__PURE__*/_react.default.createElement(_primitives.Cover, {
|
|
122
|
+
aspectRatio: _shell.COVER_RATIO,
|
|
123
|
+
centerSlot: playable ? _shared.playControl : undefined,
|
|
124
|
+
topRightSlot: coverControls ? (0, _shared.coverManagement)() : undefined
|
|
125
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
126
|
+
style: {
|
|
127
|
+
width: "100%",
|
|
128
|
+
height: "100%",
|
|
129
|
+
background: "var(--color-theme-300)"
|
|
130
|
+
}
|
|
131
|
+
})) : null, /*#__PURE__*/_react.default.createElement(_primitives.StackRow, {
|
|
132
|
+
role: "title"
|
|
133
|
+
}, /*#__PURE__*/_react.default.createElement(_shared.StyledClamp, null, showTaskId ? /*#__PURE__*/_react.default.createElement(_Typography2.Typography, {
|
|
134
|
+
as: "span",
|
|
135
|
+
variant: "Caption 1",
|
|
136
|
+
color: "tertiary"
|
|
137
|
+
}, "#".concat(taskId, " ")) : null, title), completed ? null : /*#__PURE__*/_react.default.createElement(_shared.EntityDots, {
|
|
138
|
+
"aria-label": "Task options"
|
|
139
|
+
})), /*#__PURE__*/_react.default.createElement(_primitives.StackRow, {
|
|
140
|
+
role: "meta"
|
|
141
|
+
}, /*#__PURE__*/_react.default.createElement(StyledMetaCluster, null, /*#__PURE__*/_react.default.createElement("span", {
|
|
142
|
+
className: "sc-dots"
|
|
143
|
+
}, LABEL_DOTS.map(function (color) {
|
|
144
|
+
return /*#__PURE__*/_react.default.createElement(StyledDot, {
|
|
145
|
+
key: color,
|
|
146
|
+
$color: color
|
|
147
|
+
});
|
|
148
|
+
})), /*#__PURE__*/_react.default.createElement(_Typography.Caption1, {
|
|
149
|
+
color: "tertiary"
|
|
150
|
+
}, "+3"), /*#__PURE__*/_react.default.createElement("span", {
|
|
151
|
+
className: "sc-sep"
|
|
152
|
+
}, "\xB7"), /*#__PURE__*/_react.default.createElement("span", {
|
|
153
|
+
className: "sc-count"
|
|
154
|
+
}, /*#__PURE__*/_react.default.createElement(_Icons.MessageSmallIcon, null), /*#__PURE__*/_react.default.createElement(_Typography.Caption1, {
|
|
155
|
+
color: "tertiary"
|
|
156
|
+
}, "7")), /*#__PURE__*/_react.default.createElement("span", {
|
|
157
|
+
className: "sc-sep"
|
|
158
|
+
}, "\xB7"), /*#__PURE__*/_react.default.createElement("span", {
|
|
159
|
+
className: "sc-count"
|
|
160
|
+
}, /*#__PURE__*/_react.default.createElement(_Icons.ChecklistSmallIcon, null), /*#__PURE__*/_react.default.createElement(_Typography.Caption1, {
|
|
161
|
+
color: "tertiary"
|
|
162
|
+
}, "2")), showDependencies ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
|
|
163
|
+
className: "sc-sep"
|
|
164
|
+
}, "\xB7"), /*#__PURE__*/_react.default.createElement("span", {
|
|
165
|
+
className: "sc-count",
|
|
166
|
+
title: "Dependencies"
|
|
167
|
+
}, /*#__PURE__*/_react.default.createElement(_Icons.InsertLinkIcon, null), /*#__PURE__*/_react.default.createElement(_Typography.Caption1, {
|
|
168
|
+
color: "tertiary"
|
|
169
|
+
}, dependencyCount))) : null, showHiddenSignifier ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
|
|
170
|
+
className: "sc-sep"
|
|
171
|
+
}, "\xB7"), /*#__PURE__*/_react.default.createElement(StyledHiddenBadge, {
|
|
172
|
+
title: "Hidden from clients"
|
|
173
|
+
}, /*#__PURE__*/_react.default.createElement(_Icons.EyeOffIcon, null))) : null)), /*#__PURE__*/_react.default.createElement(_primitives.StackRow, {
|
|
174
|
+
role: "footer"
|
|
175
|
+
}, /*#__PURE__*/_react.default.createElement(StyledDate, {
|
|
176
|
+
$overdue: dateIsOverdue
|
|
177
|
+
}, dateLabel), /*#__PURE__*/_react.default.createElement("span", null), assigned ? /*#__PURE__*/_react.default.createElement(_shared2.RoundAvatar, {
|
|
178
|
+
$bg: _shared2.AVATAR_COLORS.teal,
|
|
179
|
+
$size: 24,
|
|
180
|
+
$bordered: false,
|
|
181
|
+
"data-fixed": true
|
|
182
|
+
}, "MS") : /*#__PURE__*/_react.default.createElement(StyledAddAssignee, {
|
|
183
|
+
type: "button",
|
|
184
|
+
"aria-label": "Assign task",
|
|
185
|
+
"data-fixed": true
|
|
186
|
+
}, /*#__PURE__*/_react.default.createElement(_Icons.PersonPlusIcon, null))));
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
/* ---- placeholder + skeleton ---- */
|
|
190
|
+
|
|
191
|
+
var TaskPlaceholder = exports.TaskPlaceholder = function TaskPlaceholder(props) {
|
|
192
|
+
return /*#__PURE__*/_react.default.createElement(_shared.Placeholder, _extends({
|
|
193
|
+
icon: /*#__PURE__*/_react.default.createElement(_Icons.ChecklistSmallIcon, null),
|
|
194
|
+
label: "Name this task"
|
|
195
|
+
}, props));
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
/* Skeleton mirrors the task anatomy row for row: title, meta, footer. */
|
|
199
|
+
var TaskSkeleton = exports.TaskSkeleton = function TaskSkeleton() {
|
|
200
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_primitives.StackRow, {
|
|
201
|
+
role: "title"
|
|
202
|
+
}, /*#__PURE__*/_react.default.createElement(_Loaders.SkeletonLoader, {
|
|
203
|
+
style: {
|
|
204
|
+
height: 14,
|
|
205
|
+
width: "90%"
|
|
206
|
+
}
|
|
207
|
+
})), /*#__PURE__*/_react.default.createElement(_primitives.StackRow, {
|
|
208
|
+
role: "meta"
|
|
209
|
+
}, /*#__PURE__*/_react.default.createElement(_Loaders.SkeletonLoader, {
|
|
210
|
+
style: {
|
|
211
|
+
height: 10,
|
|
212
|
+
width: "55%"
|
|
213
|
+
}
|
|
214
|
+
})), /*#__PURE__*/_react.default.createElement(_primitives.StackRow, {
|
|
215
|
+
role: "footer"
|
|
216
|
+
}, /*#__PURE__*/_react.default.createElement(_Loaders.SkeletonLoader, {
|
|
217
|
+
style: {
|
|
218
|
+
height: 12,
|
|
219
|
+
width: 64
|
|
220
|
+
},
|
|
221
|
+
"data-fixed": true
|
|
222
|
+
}), /*#__PURE__*/_react.default.createElement("span", null), /*#__PURE__*/_react.default.createElement(_Loaders.SkeletonLoader, {
|
|
223
|
+
"data-fixed": true,
|
|
224
|
+
style: {
|
|
225
|
+
width: 24,
|
|
226
|
+
height: 24,
|
|
227
|
+
borderRadius: "50%"
|
|
228
|
+
}
|
|
229
|
+
})));
|
|
230
|
+
};
|
|
231
|
+
//# sourceMappingURL=TaskCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskCard.js","names":["_react","_interopRequireDefault","require","_styledComponents","_interopRequireWildcard","_shared","_Icons","_Loaders","_Typography","_Typography2","_shared2","_primitives","_shell","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","LABEL_DOTS","StyledBody","styled","div","withConfig","displayName","componentId","_ref","$completed","css","StyledMetaCluster","StyledDot","span","_ref2","$color","StyledHiddenBadge","StyledDate","_ref3","$overdue","StyledAddAssignee","button","TaskCard","exports","_ref4","_ref4$title","title","_ref4$cover","cover","_ref4$playable","playable","_ref4$coverControls","coverControls","_ref4$showTaskId","showTaskId","_ref4$taskId","taskId","_ref4$dateLabel","dateLabel","_ref4$overdue","overdue","_ref4$showDependencie","showDependencies","_ref4$dependencyCount","dependencyCount","_ref4$hiddenFromClien","hiddenFromClients","_ref4$projectDefaultH","projectDefaultHidden","_ref4$assigned","assigned","_ref4$completed","completed","showHiddenSignifier","dateIsOverdue","createElement","Cover","aspectRatio","COVER_RATIO","centerSlot","playControl","undefined","topRightSlot","coverManagement","style","width","height","background","StackRow","role","StyledClamp","Typography","as","variant","color","concat","EntityDots","className","map","key","Caption1","MessageSmallIcon","ChecklistSmallIcon","Fragment","InsertLinkIcon","EyeOffIcon","RoundAvatar","$bg","AVATAR_COLORS","teal","$size","$bordered","type","PersonPlusIcon","TaskPlaceholder","props","Placeholder","icon","label","TaskSkeleton","SkeletonLoader","borderRadius"],"sources":["../../../../../src/presentation/stackedCard/content/TaskCard.tsx"],"sourcesContent":["import React, { ReactElement } from \"react\";\n\nimport styled, { css } from \"styled-components\";\n\nimport {\n EntityDots,\n StyledClamp,\n coverManagement,\n playControl,\n Placeholder,\n} from \"./shared\";\nimport {\n ChecklistSmallIcon,\n EyeOffIcon,\n InsertLinkIcon,\n MessageSmallIcon,\n PersonPlusIcon,\n} from \"../../../components/Icons\";\nimport { SkeletonLoader } from \"../../../components/Loaders\";\nimport { Caption1 } from \"../../../components/Typography\";\nimport { Typography } from \"../../../components/Typography/Typography\";\nimport { RoundAvatar, AVATAR_COLORS } from \"../../shared\";\nimport { Cover, StackRow } from \"../primitives\";\nimport { COVER_RATIO } from \"../shell\";\n\n/**\n * TaskCard — the baseline-preservation card.\n *\n * This is the replacement for today's column card, so it must reproduce every\n * behavior that card has (note 52104 §B2) — none of them are optional, each is\n * a silent-regression risk. Every one is a prop here so the story can toggle it:\n *\n * - task-number prefix in the title (config-gated, mirrors `show_task_id`)\n * - overdue date colouring (red ONLY when overdue AND not completed)\n * - dependency counter (behind a feature-flag prop)\n * - hidden-from-clients signifier (shown only when it DIFFERS from the\n * project default)\n * - inline assignee affordance (avatar, or an add-assignee placeholder)\n * - completed (teal tint, no \"…\" menu, no overdue colour)\n *\n * The pending/optimistic and priority states are SHELL states (dimmed +\n * pointer-events off; red left bar), so the card is wrapped in a `<StackedCard\n * pending>` / `<StackedCard priorityColor>` by the host — they are not the\n * card's own concern and live on the shell, not here.\n */\n\nconst LABEL_DOTS = [\"#378ADD\", \"#D85A30\", \"#639922\", \"#EF9F27\", \"#7F77DD\"];\n\n/* The completed tint fills the card body; the shell keeps the priority bar and\n selection ring on top of it. */\nconst StyledBody = styled.div<{ $completed?: boolean }>`\n display: flex;\n flex-direction: column;\n\n ${({ $completed }) =>\n $completed &&\n css`\n background: var(--sc-completed-tint, rgba(72, 201, 176, 0.16));\n `}\n`;\n\nconst StyledMetaCluster = styled.div`\n display: flex;\n align-items: center;\n gap: 6px;\n color: var(--color-theme-600);\n\n .sc-dots {\n display: flex;\n gap: 4px;\n }\n\n .sc-sep {\n opacity: 0.6;\n }\n\n .sc-count {\n display: inline-flex;\n align-items: center;\n gap: 3px;\n }\n\n svg {\n width: 14px;\n height: 14px;\n }\n`;\n\nconst StyledDot = styled.span<{ $color: string }>`\n width: 11px;\n height: 11px;\n border-radius: 50%;\n background: ${({ $color }) => $color};\n`;\n\n/* Hidden-from-clients signifier — an eye-off badge, shown only when the task's\n visibility differs from the project default. */\nconst StyledHiddenBadge = styled.span`\n display: inline-flex;\n align-items: center;\n gap: 3px;\n color: var(--color-theme-600);\n\n svg {\n width: 14px;\n height: 14px;\n }\n`;\n\n/* Date — bold; turns red only when overdue AND the task is not completed. */\nconst StyledDate = styled.span<{ $overdue?: boolean }>`\n font-weight: bold;\n color: ${({ $overdue }) =>\n $overdue ? \"var(--red-alert)\" : \"var(--color-theme-900)\"};\n`;\n\n/* Inline assignee affordance placeholder — a dashed add-assignee target that\n stands in until the real picker is wired at integration. */\nconst StyledAddAssignee = styled.button`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n padding: 0;\n border: 1.5px dashed var(--color-theme-400);\n border-radius: 50%;\n background: transparent;\n color: var(--color-theme-600);\n cursor: pointer;\n\n svg {\n width: 14px;\n height: 14px;\n display: block;\n }\n\n &:hover {\n border-color: var(--sc-selection-ring);\n color: var(--color-theme-800);\n }\n`;\n\nexport interface TaskCardProps {\n title?: string;\n /** Optional cover — task cards in a column usually have none. */\n cover?: boolean;\n playable?: boolean;\n coverControls?: boolean;\n /** Config-gated task-number prefix (mirrors `show_task_id`). */\n showTaskId?: boolean;\n taskId?: number;\n dateLabel?: string;\n /** Overdue date — colours the date red, but only when NOT completed. */\n overdue?: boolean;\n /** Dependency counter, gated behind a feature flag. */\n showDependencies?: boolean;\n dependencyCount?: number;\n /** The task's hidden-from-clients flag. */\n hiddenFromClients?: boolean;\n /** The project default for client visibility; the signifier shows on a diff. */\n projectDefaultHidden?: boolean;\n /** Whether the task has an assignee (avatar) or shows the add affordance. */\n assigned?: boolean;\n /** Completed — teal tint, no \"…\" menu, no overdue colour. */\n completed?: boolean;\n}\n\nexport const TaskCard = ({\n title = \"Implement the design from the reference on this page\",\n cover = false,\n playable = false,\n coverControls = false,\n showTaskId = false,\n taskId = 4521,\n dateLabel = \"May 8 – Sep 10\",\n overdue = false,\n showDependencies = false,\n dependencyCount = 2,\n hiddenFromClients = false,\n projectDefaultHidden = false,\n assigned = true,\n completed = false,\n}: TaskCardProps): ReactElement => {\n // Signifier appears only when the task's visibility differs from the default.\n const showHiddenSignifier = hiddenFromClients !== projectDefaultHidden;\n // Overdue colour is suppressed on completed tasks.\n const dateIsOverdue = overdue && !completed;\n\n return (\n <StyledBody $completed={completed}>\n {cover ? (\n <Cover\n aspectRatio={COVER_RATIO}\n centerSlot={playable ? playControl : undefined}\n topRightSlot={coverControls ? coverManagement() : undefined}\n >\n <div\n style={{\n width: \"100%\",\n height: \"100%\",\n background: \"var(--color-theme-300)\",\n }}\n />\n </Cover>\n ) : null}\n\n <StackRow role=\"title\">\n <StyledClamp>\n {showTaskId ? (\n <Typography as=\"span\" variant=\"Caption 1\" color=\"tertiary\">\n {`#${taskId} `}\n </Typography>\n ) : null}\n {title}\n </StyledClamp>\n {/* Completed tasks drop the \"…\" menu. */}\n {completed ? null : <EntityDots aria-label=\"Task options\" />}\n </StackRow>\n\n <StackRow role=\"meta\">\n <StyledMetaCluster>\n <span className=\"sc-dots\">\n {LABEL_DOTS.map((color) => (\n <StyledDot key={color} $color={color} />\n ))}\n </span>\n <Caption1 color=\"tertiary\">+3</Caption1>\n <span className=\"sc-sep\">·</span>\n <span className=\"sc-count\">\n <MessageSmallIcon />\n <Caption1 color=\"tertiary\">7</Caption1>\n </span>\n <span className=\"sc-sep\">·</span>\n <span className=\"sc-count\">\n <ChecklistSmallIcon />\n <Caption1 color=\"tertiary\">2</Caption1>\n </span>\n {showDependencies ? (\n <>\n <span className=\"sc-sep\">·</span>\n <span className=\"sc-count\" title=\"Dependencies\">\n <InsertLinkIcon />\n <Caption1 color=\"tertiary\">{dependencyCount}</Caption1>\n </span>\n </>\n ) : null}\n {showHiddenSignifier ? (\n <>\n <span className=\"sc-sep\">·</span>\n <StyledHiddenBadge title=\"Hidden from clients\">\n <EyeOffIcon />\n </StyledHiddenBadge>\n </>\n ) : null}\n </StyledMetaCluster>\n </StackRow>\n\n <StackRow role=\"footer\">\n <StyledDate $overdue={dateIsOverdue}>{dateLabel}</StyledDate>\n <span />\n {assigned ? (\n <RoundAvatar\n $bg={AVATAR_COLORS.teal}\n $size={24}\n $bordered={false}\n data-fixed\n >\n MS\n </RoundAvatar>\n ) : (\n <StyledAddAssignee type=\"button\" aria-label=\"Assign task\" data-fixed>\n <PersonPlusIcon />\n </StyledAddAssignee>\n )}\n </StackRow>\n </StyledBody>\n );\n};\n\n/* ---- placeholder + skeleton ---- */\n\nexport const TaskPlaceholder = (\n props: React.ButtonHTMLAttributes<HTMLButtonElement>\n): ReactElement => (\n <Placeholder\n icon={<ChecklistSmallIcon />}\n label=\"Name this task\"\n {...props}\n />\n);\n\n/* Skeleton mirrors the task anatomy row for row: title, meta, footer. */\nexport const TaskSkeleton = (): ReactElement => (\n <>\n <StackRow role=\"title\">\n <SkeletonLoader style={{ height: 14, width: \"90%\" }} />\n </StackRow>\n <StackRow role=\"meta\">\n <SkeletonLoader style={{ height: 10, width: \"55%\" }} />\n </StackRow>\n <StackRow role=\"footer\">\n <SkeletonLoader style={{ height: 12, width: 64 }} data-fixed />\n <span />\n <SkeletonLoader\n data-fixed\n style={{ width: 24, height: 24, borderRadius: \"50%\" }}\n />\n </StackRow>\n </>\n);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _shared = require("./shared");
|
|
7
|
+
Object.keys(_shared).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _shared[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function get() {
|
|
13
|
+
return _shared[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
var _unfurl = require("./unfurl");
|
|
18
|
+
Object.keys(_unfurl).forEach(function (key) {
|
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (key in exports && exports[key] === _unfurl[key]) return;
|
|
21
|
+
Object.defineProperty(exports, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function get() {
|
|
24
|
+
return _unfurl[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
var _TaskCard = require("./TaskCard");
|
|
29
|
+
Object.keys(_TaskCard).forEach(function (key) {
|
|
30
|
+
if (key === "default" || key === "__esModule") return;
|
|
31
|
+
if (key in exports && exports[key] === _TaskCard[key]) return;
|
|
32
|
+
Object.defineProperty(exports, key, {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function get() {
|
|
35
|
+
return _TaskCard[key];
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
var _LinkCard = require("./LinkCard");
|
|
40
|
+
Object.keys(_LinkCard).forEach(function (key) {
|
|
41
|
+
if (key === "default" || key === "__esModule") return;
|
|
42
|
+
if (key in exports && exports[key] === _LinkCard[key]) return;
|
|
43
|
+
Object.defineProperty(exports, key, {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function get() {
|
|
46
|
+
return _LinkCard[key];
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
var _ImageCard = require("./ImageCard");
|
|
51
|
+
Object.keys(_ImageCard).forEach(function (key) {
|
|
52
|
+
if (key === "default" || key === "__esModule") return;
|
|
53
|
+
if (key in exports && exports[key] === _ImageCard[key]) return;
|
|
54
|
+
Object.defineProperty(exports, key, {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
get: function get() {
|
|
57
|
+
return _ImageCard[key];
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
var _SwatchCard = require("./SwatchCard");
|
|
62
|
+
Object.keys(_SwatchCard).forEach(function (key) {
|
|
63
|
+
if (key === "default" || key === "__esModule") return;
|
|
64
|
+
if (key in exports && exports[key] === _SwatchCard[key]) return;
|
|
65
|
+
Object.defineProperty(exports, key, {
|
|
66
|
+
enumerable: true,
|
|
67
|
+
get: function get() {
|
|
68
|
+
return _SwatchCard[key];
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
var _NoteCard = require("./NoteCard");
|
|
73
|
+
Object.keys(_NoteCard).forEach(function (key) {
|
|
74
|
+
if (key === "default" || key === "__esModule") return;
|
|
75
|
+
if (key in exports && exports[key] === _NoteCard[key]) return;
|
|
76
|
+
Object.defineProperty(exports, key, {
|
|
77
|
+
enumerable: true,
|
|
78
|
+
get: function get() {
|
|
79
|
+
return _NoteCard[key];
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_shared","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_unfurl","_TaskCard","_LinkCard","_ImageCard","_SwatchCard","_NoteCard"],"sources":["../../../../../src/presentation/stackedCard/content/index.ts"],"sourcesContent":["export * from \"./shared\";\nexport * from \"./unfurl\";\nexport * from \"./TaskCard\";\nexport * from \"./LinkCard\";\nexport * from \"./ImageCard\";\nexport * from \"./SwatchCard\";\nexport * from \"./NoteCard\";\n"],"mappings":";;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,OAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,OAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAT,OAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,OAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,OAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,OAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAC,OAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,SAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,SAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,SAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAE,SAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,SAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,SAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,SAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAG,SAAA,CAAAP,GAAA;IAAA;EAAA;AAAA;AACA,IAAAQ,UAAA,GAAAZ,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAU,UAAA,EAAAT,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAQ,UAAA,CAAAR,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAI,UAAA,CAAAR,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,WAAA,GAAAb,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAW,WAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAS,WAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAK,WAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AACA,IAAAU,SAAA,GAAAd,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAY,SAAA,EAAAX,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAU,SAAA,CAAAV,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAM,SAAA,CAAAV,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.playControl = exports.coverManagement = exports.StyledFavicon = exports.StyledColorCover = exports.StyledClamp = exports.StyledChip = exports.Placeholder = exports.EntityDots = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
9
|
+
var _Icons = require("../../../components/Icons");
|
|
10
|
+
var _Typography = require("../../../components/Typography");
|
|
11
|
+
var _Typography2 = require("../../../components/Typography/Typography");
|
|
12
|
+
var _primitives = require("../primitives");
|
|
13
|
+
var _excluded = ["icon", "label", "height", "dashed"];
|
|
14
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
15
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
16
|
+
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
17
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
18
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
19
|
+
/**
|
|
20
|
+
* Content-level chrome shared by the typed StackedCard components.
|
|
21
|
+
*
|
|
22
|
+
* These live OUTSIDE the shell on purpose. The shell is hollow; the "…" entity
|
|
23
|
+
* menu, the cover-management controls, the clamp, the favicon, the chips and
|
|
24
|
+
* the placeholder frame are content concerns, so they belong here where the
|
|
25
|
+
* typed cards (TaskCard, LinkCard, …) compose them.
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
/* ------------------------------------------------------------------ */
|
|
29
|
+
/* Cover chrome — media control + cover management */
|
|
30
|
+
/* ------------------------------------------------------------------ */
|
|
31
|
+
|
|
32
|
+
/** Centered media control (play), for a cover that wraps audio/video. */
|
|
33
|
+
var playControl = exports.playControl = /*#__PURE__*/_react.default.createElement(_primitives.PlayBadge, null, /*#__PURE__*/_react.default.createElement(_Icons.PlayIcon, null));
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Top-right cover management. Acts on the COVER (collapse it, remove it) — not
|
|
37
|
+
* on the entity. Callers wire the click handlers; the default is inert chrome
|
|
38
|
+
* for the static demos.
|
|
39
|
+
*/
|
|
40
|
+
var coverManagement = exports.coverManagement = function coverManagement() {
|
|
41
|
+
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
42
|
+
_ref$removeLabel = _ref.removeLabel,
|
|
43
|
+
removeLabel = _ref$removeLabel === void 0 ? "Remove cover" : _ref$removeLabel,
|
|
44
|
+
onCollapse = _ref.onCollapse,
|
|
45
|
+
onRemove = _ref.onRemove;
|
|
46
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_primitives.CoverButton, {
|
|
47
|
+
type: "button",
|
|
48
|
+
"aria-label": "Collapse cover",
|
|
49
|
+
onClick: onCollapse
|
|
50
|
+
}, /*#__PURE__*/_react.default.createElement(_primitives.CollapseGlyph, null)), /*#__PURE__*/_react.default.createElement(_primitives.CoverButton, {
|
|
51
|
+
type: "button",
|
|
52
|
+
"aria-label": removeLabel,
|
|
53
|
+
onClick: onRemove
|
|
54
|
+
}, /*#__PURE__*/_react.default.createElement(_primitives.RemoveCoverGlyph, null)));
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
/* ------------------------------------------------------------------ */
|
|
58
|
+
/* Entity "…" menu — acts on the ENTITY, lives in a content row */
|
|
59
|
+
/* ------------------------------------------------------------------ */
|
|
60
|
+
|
|
61
|
+
var StyledEntityDots = _styledComponents.default.button.withConfig({
|
|
62
|
+
displayName: "shared__StyledEntityDots",
|
|
63
|
+
componentId: "sc-1x5md9a-0"
|
|
64
|
+
})(["display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:0;border-radius:6px;cursor:pointer;color:var(--color-theme-700);background:var(--color-theme-200);svg{width:16px;height:16px;display:block;}&:hover{background:var(--color-theme-300);}"]);
|
|
65
|
+
var EntityDots = exports.EntityDots = function EntityDots(props) {
|
|
66
|
+
return /*#__PURE__*/_react.default.createElement(StyledEntityDots, _extends({
|
|
67
|
+
type: "button",
|
|
68
|
+
"aria-label": "Options",
|
|
69
|
+
"data-fixed": true,
|
|
70
|
+
className: "sc-control"
|
|
71
|
+
}, props), /*#__PURE__*/_react.default.createElement(_Icons.TreeDotsIcon, null));
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
/* ------------------------------------------------------------------ */
|
|
75
|
+
/* Text + inline bits */
|
|
76
|
+
/* ------------------------------------------------------------------ */
|
|
77
|
+
|
|
78
|
+
/** Two-line title clamp — the card's name row content. */
|
|
79
|
+
var StyledClamp = exports.StyledClamp = (0, _styledComponents.default)(_Typography.Body2).withConfig({
|
|
80
|
+
displayName: "shared__StyledClamp",
|
|
81
|
+
componentId: "sc-1x5md9a-1"
|
|
82
|
+
})(["display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;"]);
|
|
83
|
+
|
|
84
|
+
/** A favicon square — a solid data colour stands in for the real favicon. */
|
|
85
|
+
var StyledFavicon = exports.StyledFavicon = _styledComponents.default.span.withConfig({
|
|
86
|
+
displayName: "shared__StyledFavicon",
|
|
87
|
+
componentId: "sc-1x5md9a-2"
|
|
88
|
+
})(["display:inline-flex;width:16px;height:16px;border-radius:4px;background:", ";flex-shrink:0;"], function (_ref2) {
|
|
89
|
+
var $bg = _ref2.$bg;
|
|
90
|
+
return $bg;
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
/** A small pill for link metadata (media kind, duration, …). */
|
|
94
|
+
var StyledChip = exports.StyledChip = _styledComponents.default.span.withConfig({
|
|
95
|
+
displayName: "shared__StyledChip",
|
|
96
|
+
componentId: "sc-1x5md9a-3"
|
|
97
|
+
})(["display:inline-flex;align-items:center;padding:2px 8px;border-radius:10px;background:var(--color-theme-300);color:var(--color-theme-800);font-size:11px;white-space:nowrap;"]);
|
|
98
|
+
|
|
99
|
+
/** A solid-colour cover fill (swatch value, generic link cover, image stand-in). */
|
|
100
|
+
var StyledColorCover = exports.StyledColorCover = _styledComponents.default.div.withConfig({
|
|
101
|
+
displayName: "shared__StyledColorCover",
|
|
102
|
+
componentId: "sc-1x5md9a-4"
|
|
103
|
+
})(["width:100%;height:100%;background:", ";"], function (_ref3) {
|
|
104
|
+
var $color = _ref3.$color;
|
|
105
|
+
return $color;
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
/* ------------------------------------------------------------------ */
|
|
109
|
+
/* Placeholder frame — the interactive empty state, per type */
|
|
110
|
+
/* ------------------------------------------------------------------ */
|
|
111
|
+
|
|
112
|
+
var StyledPlaceholder = _styledComponents.default.button.withConfig({
|
|
113
|
+
displayName: "shared__StyledPlaceholder",
|
|
114
|
+
componentId: "sc-1x5md9a-5"
|
|
115
|
+
})(["display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;width:100%;height:", "px;padding:0;border:0;background:transparent;color:var(--color-theme-600);text-align:center;cursor:pointer;", " > svg{width:40px;height:40px;color:var(--color-theme-500);}"], function (_ref4) {
|
|
116
|
+
var $height = _ref4.$height;
|
|
117
|
+
return $height !== null && $height !== void 0 ? $height : 150;
|
|
118
|
+
}, function (_ref5) {
|
|
119
|
+
var $dashed = _ref5.$dashed;
|
|
120
|
+
return $dashed && (0, _styledComponents.css)(["margin:8px;width:calc(100% - 16px);border:1.5px dashed var(--color-theme-400);border-radius:6px;&:hover{border-color:var(--sc-selection-ring);color:var(--color-theme-700);}"]);
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* The shared placeholder frame. Each type supplies its own icon and verb-first,
|
|
125
|
+
* sentence-case invitation (ActiveCollab voice). Interactive by design — the
|
|
126
|
+
* whole frame is a button — and distinct from the loading skeleton.
|
|
127
|
+
*/
|
|
128
|
+
var Placeholder = exports.Placeholder = function Placeholder(_ref6) {
|
|
129
|
+
var icon = _ref6.icon,
|
|
130
|
+
label = _ref6.label,
|
|
131
|
+
height = _ref6.height,
|
|
132
|
+
dashed = _ref6.dashed,
|
|
133
|
+
rest = _objectWithoutProperties(_ref6, _excluded);
|
|
134
|
+
return /*#__PURE__*/_react.default.createElement(StyledPlaceholder, _extends({
|
|
135
|
+
type: "button",
|
|
136
|
+
$height: height,
|
|
137
|
+
$dashed: dashed
|
|
138
|
+
}, rest), icon, /*#__PURE__*/_react.default.createElement(_Typography2.Typography, {
|
|
139
|
+
as: "span",
|
|
140
|
+
variant: "Body 2",
|
|
141
|
+
color: "secondary"
|
|
142
|
+
}, label));
|
|
143
|
+
};
|
|
144
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","names":["_react","_interopRequireDefault","require","_styledComponents","_interopRequireWildcard","_Icons","_Typography","_Typography2","_primitives","_excluded","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_objectWithoutProperties","_objectWithoutPropertiesLoose","getOwnPropertySymbols","length","indexOf","propertyIsEnumerable","_extends","assign","bind","arguments","apply","playControl","exports","createElement","PlayBadge","PlayIcon","coverManagement","_ref","undefined","_ref$removeLabel","removeLabel","onCollapse","onRemove","Fragment","CoverButton","type","onClick","CollapseGlyph","RemoveCoverGlyph","StyledEntityDots","styled","button","withConfig","displayName","componentId","EntityDots","props","className","TreeDotsIcon","StyledClamp","Body2","StyledFavicon","span","_ref2","$bg","StyledChip","StyledColorCover","div","_ref3","$color","StyledPlaceholder","_ref4","$height","_ref5","$dashed","css","Placeholder","_ref6","icon","label","height","dashed","rest","Typography","as","variant","color"],"sources":["../../../../../src/presentation/stackedCard/content/shared.tsx"],"sourcesContent":["import React, { ReactElement, ReactNode } from \"react\";\n\nimport styled, { css } from \"styled-components\";\n\nimport { PlayIcon, TreeDotsIcon } from \"../../../components/Icons\";\nimport { Body2 } from \"../../../components/Typography\";\nimport { Typography } from \"../../../components/Typography/Typography\";\nimport {\n CollapseGlyph,\n CoverButton,\n PlayBadge,\n RemoveCoverGlyph,\n} from \"../primitives\";\n\n/**\n * Content-level chrome shared by the typed StackedCard components.\n *\n * These live OUTSIDE the shell on purpose. The shell is hollow; the \"…\" entity\n * menu, the cover-management controls, the clamp, the favicon, the chips and\n * the placeholder frame are content concerns, so they belong here where the\n * typed cards (TaskCard, LinkCard, …) compose them.\n */\n\n/* ------------------------------------------------------------------ */\n/* Cover chrome — media control + cover management */\n/* ------------------------------------------------------------------ */\n\n/** Centered media control (play), for a cover that wraps audio/video. */\nexport const playControl = (\n <PlayBadge>\n <PlayIcon />\n </PlayBadge>\n);\n\n/**\n * Top-right cover management. Acts on the COVER (collapse it, remove it) — not\n * on the entity. Callers wire the click handlers; the default is inert chrome\n * for the static demos.\n */\nexport const coverManagement = ({\n removeLabel = \"Remove cover\",\n onCollapse,\n onRemove,\n}: {\n removeLabel?: string;\n onCollapse?: () => void;\n onRemove?: () => void;\n} = {}): ReactElement => (\n <>\n <CoverButton type=\"button\" aria-label=\"Collapse cover\" onClick={onCollapse}>\n <CollapseGlyph />\n </CoverButton>\n <CoverButton type=\"button\" aria-label={removeLabel} onClick={onRemove}>\n <RemoveCoverGlyph />\n </CoverButton>\n </>\n);\n\n/* ------------------------------------------------------------------ */\n/* Entity \"…\" menu — acts on the ENTITY, lives in a content row */\n/* ------------------------------------------------------------------ */\n\nconst StyledEntityDots = styled.button`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 26px;\n height: 26px;\n padding: 0;\n border: 0;\n border-radius: 6px;\n cursor: pointer;\n color: var(--color-theme-700);\n background: var(--color-theme-200);\n\n svg {\n width: 16px;\n height: 16px;\n display: block;\n }\n\n &:hover {\n background: var(--color-theme-300);\n }\n`;\n\nexport const EntityDots = (\n props: React.ButtonHTMLAttributes<HTMLButtonElement>\n): ReactElement => (\n <StyledEntityDots\n type=\"button\"\n aria-label=\"Options\"\n data-fixed\n className=\"sc-control\"\n {...props}\n >\n <TreeDotsIcon />\n </StyledEntityDots>\n);\n\n/* ------------------------------------------------------------------ */\n/* Text + inline bits */\n/* ------------------------------------------------------------------ */\n\n/** Two-line title clamp — the card's name row content. */\nexport const StyledClamp = styled(Body2)`\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n`;\n\n/** A favicon square — a solid data colour stands in for the real favicon. */\nexport const StyledFavicon = styled.span<{ $bg: string }>`\n display: inline-flex;\n width: 16px;\n height: 16px;\n border-radius: 4px;\n background: ${({ $bg }) => $bg};\n flex-shrink: 0;\n`;\n\n/** A small pill for link metadata (media kind, duration, …). */\nexport const StyledChip = styled.span`\n display: inline-flex;\n align-items: center;\n padding: 2px 8px;\n border-radius: 10px;\n background: var(--color-theme-300);\n color: var(--color-theme-800);\n font-size: 11px;\n white-space: nowrap;\n`;\n\n/** A solid-colour cover fill (swatch value, generic link cover, image stand-in). */\nexport const StyledColorCover = styled.div<{ $color: string }>`\n width: 100%;\n height: 100%;\n background: ${({ $color }) => $color};\n`;\n\n/* ------------------------------------------------------------------ */\n/* Placeholder frame — the interactive empty state, per type */\n/* ------------------------------------------------------------------ */\n\nconst StyledPlaceholder = styled.button<{\n $height?: number;\n $dashed?: boolean;\n}>`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 10px;\n width: 100%;\n height: ${({ $height }) => $height ?? 150}px;\n padding: 0;\n border: 0;\n background: transparent;\n color: var(--color-theme-600);\n text-align: center;\n cursor: pointer;\n\n ${({ $dashed }) =>\n $dashed &&\n css`\n margin: 8px;\n width: calc(100% - 16px);\n border: 1.5px dashed var(--color-theme-400);\n border-radius: 6px;\n\n &:hover {\n border-color: var(--sc-selection-ring);\n color: var(--color-theme-700);\n }\n `}\n\n > svg {\n width: 40px;\n height: 40px;\n color: var(--color-theme-500);\n }\n`;\n\n/**\n * The shared placeholder frame. Each type supplies its own icon and verb-first,\n * sentence-case invitation (ActiveCollab voice). Interactive by design — the\n * whole frame is a button — and distinct from the loading skeleton.\n */\nexport const Placeholder = ({\n icon,\n label,\n height,\n dashed,\n ...rest\n}: {\n icon: ReactNode;\n label: ReactNode;\n height?: number;\n dashed?: boolean;\n} & React.ButtonHTMLAttributes<HTMLButtonElement>): ReactElement => (\n <StyledPlaceholder type=\"button\" $height={height} $dashed={dashed} {...rest}>\n {icon}\n <Typography as=\"span\" variant=\"Body 2\" color=\"secondary\">\n {label}\n </Typography>\n </StyledPlaceholder>\n);\n"],"mappings":"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","ignoreList":[]}
|