@activecollab/components 2.0.408 → 2.0.409

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.
Files changed (83) hide show
  1. package/dist/cjs/components/Icons/collection/Project.js +98 -0
  2. package/dist/cjs/components/Icons/collection/Project.js.map +1 -0
  3. package/dist/cjs/components/Icons/collection/Task.js +61 -0
  4. package/dist/cjs/components/Icons/collection/Task.js.map +1 -0
  5. package/dist/cjs/components/Icons/collection/index.js +14 -0
  6. package/dist/cjs/components/Icons/collection/index.js.map +1 -1
  7. package/dist/cjs/presentation/stackedCard/content/NoteCard.js +7 -3
  8. package/dist/cjs/presentation/stackedCard/content/NoteCard.js.map +1 -1
  9. package/dist/cjs/presentation/stackedCard/content/ProjectCard.js +136 -0
  10. package/dist/cjs/presentation/stackedCard/content/ProjectCard.js.map +1 -0
  11. package/dist/cjs/presentation/stackedCard/content/TaskCard.js +183 -56
  12. package/dist/cjs/presentation/stackedCard/content/TaskCard.js.map +1 -1
  13. package/dist/cjs/presentation/stackedCard/content/index.js +11 -0
  14. package/dist/cjs/presentation/stackedCard/content/index.js.map +1 -1
  15. package/dist/cjs/presentation/stackedCard/content/shared.js +66 -19
  16. package/dist/cjs/presentation/stackedCard/content/shared.js.map +1 -1
  17. package/dist/cjs/presentation/whiteboard/bottomDock.js +95 -32
  18. package/dist/cjs/presentation/whiteboard/bottomDock.js.map +1 -1
  19. package/dist/cjs/presentation/whiteboard/canvasElements.js +196 -8
  20. package/dist/cjs/presentation/whiteboard/canvasElements.js.map +1 -1
  21. package/dist/cjs/presentation/whiteboard/inspector.js +149 -47
  22. package/dist/cjs/presentation/whiteboard/inspector.js.map +1 -1
  23. package/dist/cjs/presentation/whiteboard/outline.js +91 -18
  24. package/dist/cjs/presentation/whiteboard/outline.js.map +1 -1
  25. package/dist/cjs/presentation/whiteboard/projectElements.js +883 -0
  26. package/dist/cjs/presentation/whiteboard/projectElements.js.map +1 -0
  27. package/dist/esm/components/Icons/collection/Project.d.ts +36 -0
  28. package/dist/esm/components/Icons/collection/Project.d.ts.map +1 -0
  29. package/dist/esm/components/Icons/collection/Project.js +91 -0
  30. package/dist/esm/components/Icons/collection/Project.js.map +1 -0
  31. package/dist/esm/components/Icons/collection/Task.d.ts +32 -0
  32. package/dist/esm/components/Icons/collection/Task.d.ts.map +1 -0
  33. package/dist/esm/components/Icons/collection/Task.js +54 -0
  34. package/dist/esm/components/Icons/collection/Task.js.map +1 -0
  35. package/dist/esm/components/Icons/collection/index.d.ts +2 -0
  36. package/dist/esm/components/Icons/collection/index.d.ts.map +1 -1
  37. package/dist/esm/components/Icons/collection/index.js +2 -0
  38. package/dist/esm/components/Icons/collection/index.js.map +1 -1
  39. package/dist/esm/presentation/stackedCard/content/NoteCard.d.ts +8 -1
  40. package/dist/esm/presentation/stackedCard/content/NoteCard.d.ts.map +1 -1
  41. package/dist/esm/presentation/stackedCard/content/NoteCard.js +8 -4
  42. package/dist/esm/presentation/stackedCard/content/NoteCard.js.map +1 -1
  43. package/dist/esm/presentation/stackedCard/content/ProjectCard.d.ts +64 -0
  44. package/dist/esm/presentation/stackedCard/content/ProjectCard.d.ts.map +1 -0
  45. package/dist/esm/presentation/stackedCard/content/ProjectCard.js +128 -0
  46. package/dist/esm/presentation/stackedCard/content/ProjectCard.js.map +1 -0
  47. package/dist/esm/presentation/stackedCard/content/TaskCard.d.ts +64 -2
  48. package/dist/esm/presentation/stackedCard/content/TaskCard.d.ts.map +1 -1
  49. package/dist/esm/presentation/stackedCard/content/TaskCard.js +181 -58
  50. package/dist/esm/presentation/stackedCard/content/TaskCard.js.map +1 -1
  51. package/dist/esm/presentation/stackedCard/content/index.d.ts +1 -0
  52. package/dist/esm/presentation/stackedCard/content/index.d.ts.map +1 -1
  53. package/dist/esm/presentation/stackedCard/content/index.js +1 -0
  54. package/dist/esm/presentation/stackedCard/content/index.js.map +1 -1
  55. package/dist/esm/presentation/stackedCard/content/shared.d.ts +30 -0
  56. package/dist/esm/presentation/stackedCard/content/shared.d.ts.map +1 -1
  57. package/dist/esm/presentation/stackedCard/content/shared.js +66 -19
  58. package/dist/esm/presentation/stackedCard/content/shared.js.map +1 -1
  59. package/dist/esm/presentation/whiteboard/bottomDock.d.ts +30 -7
  60. package/dist/esm/presentation/whiteboard/bottomDock.d.ts.map +1 -1
  61. package/dist/esm/presentation/whiteboard/bottomDock.js +79 -32
  62. package/dist/esm/presentation/whiteboard/bottomDock.js.map +1 -1
  63. package/dist/esm/presentation/whiteboard/canvasElements.d.ts +4 -1
  64. package/dist/esm/presentation/whiteboard/canvasElements.d.ts.map +1 -1
  65. package/dist/esm/presentation/whiteboard/canvasElements.js +158 -7
  66. package/dist/esm/presentation/whiteboard/canvasElements.js.map +1 -1
  67. package/dist/esm/presentation/whiteboard/inspector.d.ts +35 -1
  68. package/dist/esm/presentation/whiteboard/inspector.d.ts.map +1 -1
  69. package/dist/esm/presentation/whiteboard/inspector.js +170 -68
  70. package/dist/esm/presentation/whiteboard/inspector.js.map +1 -1
  71. package/dist/esm/presentation/whiteboard/outline.d.ts +23 -3
  72. package/dist/esm/presentation/whiteboard/outline.d.ts.map +1 -1
  73. package/dist/esm/presentation/whiteboard/outline.js +89 -18
  74. package/dist/esm/presentation/whiteboard/outline.js.map +1 -1
  75. package/dist/esm/presentation/whiteboard/projectElements.d.ts +267 -0
  76. package/dist/esm/presentation/whiteboard/projectElements.d.ts.map +1 -0
  77. package/dist/esm/presentation/whiteboard/projectElements.js +824 -0
  78. package/dist/esm/presentation/whiteboard/projectElements.js.map +1 -0
  79. package/dist/index.js +629 -490
  80. package/dist/index.js.map +1 -1
  81. package/dist/index.min.js +1 -1
  82. package/dist/index.min.js.map +1 -1
  83. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectCard.js","names":["_react","_interopRequireDefault","require","_styledComponents","_shared","_Chip","_StackedCard","_Typography","_shared2","e","__esModule","default","INTERNAL_CLIENT_LABEL","exports","projectClientLine","client","StyledExcerpt","styled","Body2","withConfig","displayName","componentId","StyledName","Header3","StyledClient","Caption2","StyledMetaRow","StackRow","ProjectCard","_ref","_ref$name","name","_ref$client","description","leader","label","createElement","Fragment","StackedCardRow","role","StyledTitleBlock","color","EntityDots","className","RoundAvatar","$bg","$size","$bordered","initials","Caption1","Chip","size","text","backgroundColor","textColor","typographyProps","variant","weight"],"sources":["../../../../../src/presentation/stackedCard/content/ProjectCard.tsx"],"sourcesContent":["import React, { ReactElement } from \"react\";\n\nimport styled from \"styled-components\";\n\nimport { EntityDots, StyledTitleBlock } from \"./shared\";\nimport { Chip } from \"../../../components/Chip\";\nimport { StackedCardRow as StackRow } from \"../../../components/StackedCard\";\nimport {\n Body2,\n Caption1,\n Caption2,\n Header3,\n} from \"../../../components/Typography\";\nimport { RoundAvatar } from \"../../shared\";\n\n/**\n * ProjectCard — a project as a stacked card.\n *\n * The sixth content type, and the second one that mirrors a project-management\n * record rather than something authored on the surface (TaskCard is the first).\n * It composes the same shell and the same rows; nothing in `components/StackedCard`\n * knows it exists.\n *\n * The face is the app's Projects page, read off `ProjectListGroup.jsx`:\n * - the NAME is the card's title (`Header3`, as in the grid card);\n * - the CLIENT sits under it — `Entity.Property \"entity-property-client\"`, the\n * company the project is for;\n * - the DESCRIPTION is the project's `body`, the grid card's `Body2` tertiary\n * excerpt, clamped because the whole text lives on the project and this is a\n * reference to it, not a copy;\n * - the LEADER and the LABEL share one row. The label is a FILLED pill whose\n * background is the label's own colour and whose text is a darker shade of\n * it (`ProjectLabel.jsx`: `EntityLabel` with `backgroundColor: label.color`,\n * `color: label.darker_text_color`) — the design system's `Chip`, not the\n * colour-text `Tag` the column cards use for task labels.\n *\n * There is deliberately NO progress indicator. A single percentage is the one\n * number on a project that cannot be read without knowing how it was computed,\n * and a card is a place people put a project to talk ABOUT it — the number\n * invites a conversation about the number instead.\n */\n\nexport interface ProjectCardPerson {\n name: string;\n initials: string;\n /** Avatar colours stand in for the server-rendered avatar: data, not theme. */\n color: string;\n}\n\n/** A project label carries both of the colours the app stores for it. */\nexport interface ProjectCardLabel {\n text: string;\n /** `label.color` — the pill's background. */\n color: string;\n /** `label.darker_text_color` — the pill's text. */\n textColor: string;\n}\n\n/**\n * What an internal project's client line says.\n *\n * A project with no client belongs to the account's own company, and printing\n * that company's name back at someone who works there says nothing. So the line\n * states the fact instead.\n */\nexport const INTERNAL_CLIENT_LABEL = \"Internal\";\n\n/** One rule for the client line, so no surface can label the same project twice. */\nexport const projectClientLine = (client: string | null | undefined): string =>\n client ?? INTERNAL_CLIENT_LABEL;\n\n/* The description excerpt. Three lines is the most a card can carry before it\n stops being a card, so it clamps. */\nconst StyledExcerpt = styled(Body2)`\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n`;\n\nconst StyledName = styled(Header3)`\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n`;\n\nconst StyledClient = styled(Caption2)`\n display: block;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n`;\n\n/**\n * One row for the two facts that are each optional: the leader on the LEFT, the\n * label on the RIGHT. `space-between` is what keeps the label right when there is\n * no leader beside it, and the row is not rendered at all when the project has\n * neither — a bare project produces a small card, not a card with empty\n * furniture in it.\n *\n * No rule above it: the card carries no internal separators. The row's own role\n * padding is what sets it apart from the excerpt, the same way every other row in\n * every other content type is set apart — a hairline here would be the only line\n * inside any card in the set.\n */\nconst StyledMetaRow = styled(StackRow)`\n justify-content: space-between;\n\n .sc-leader {\n display: flex;\n align-items: center;\n gap: 8px;\n min-width: 0;\n }\n\n .sc-leader > .typography {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n /* The Chip brings its own padding and radius, so the slot only has to refuse\n to shrink and stay out of the leader's way. */\n .sc-label {\n flex-shrink: 0;\n display: flex;\n }\n`;\n\nexport interface ProjectCardProps {\n name?: string;\n /** The client company. `null` is an internal project — the line reads \"Internal\". */\n client?: string | null;\n /** The project's `body`; the excerpt row exists only when it has one. */\n description?: string;\n /** A project need not have a leader. */\n leader?: ProjectCardPerson;\n /** A project need not have a label. */\n label?: ProjectCardLabel;\n}\n\nexport const ProjectCard = ({\n name = \"Marketing Site\",\n client = \"ActiveCollab Inc.\",\n description,\n leader,\n label,\n}: ProjectCardProps): ReactElement => (\n <>\n <StackRow role=\"title\">\n <StyledTitleBlock>\n <StyledName>{name}</StyledName>\n <StyledClient color=\"tertiary\">\n {projectClientLine(client)}\n </StyledClient>\n </StyledTitleBlock>\n <EntityDots aria-label=\"Project options\" />\n </StackRow>\n\n {description ? (\n <StackRow role=\"custom\">\n <StyledExcerpt color=\"secondary\">{description}</StyledExcerpt>\n </StackRow>\n ) : null}\n\n {leader || label ? (\n <StyledMetaRow role=\"footer\">\n {leader ? (\n <span className=\"sc-leader\">\n <RoundAvatar\n $bg={leader.color}\n $size={24}\n $bordered={false}\n data-fixed\n >\n {leader.initials}\n </RoundAvatar>\n <Caption1 color=\"secondary\">{leader.name}</Caption1>\n </span>\n ) : (\n /* Keeps the label on the right when there is no leader to push it\n there — an empty flex item is cheaper than a second layout. */\n <span />\n )}\n {label ? (\n <span className=\"sc-label\" data-fixed>\n <Chip\n size=\"small\"\n label={label.text}\n backgroundColor={label.color}\n color={label.textColor}\n typographyProps={{ variant: \"Caption 2\", weight: \"bold\" }}\n />\n </span>\n ) : null}\n </StyledMetaRow>\n ) : null}\n </>\n);\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,iBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AACA,IAAAK,WAAA,GAAAL,OAAA;AAMA,IAAAM,QAAA,GAAAN,OAAA;AAA2C,SAAAD,uBAAAQ,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AASA;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMG,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAG,UAAU;;AAE/C;AACO,IAAME,iBAAiB,GAAAD,OAAA,CAAAC,iBAAA,GAAG,SAApBA,iBAAiBA,CAAIC,MAAiC;EAAA,OACjEA,MAAM,aAANA,MAAM,cAANA,MAAM,GAAIH,qBAAqB;AAAA;;AAEjC;AACA;AACA,IAAMI,aAAa,GAAG,IAAAC,yBAAM,EAACC,iBAAK,CAAC,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,6FAKlC;AAED,IAAMC,UAAU,GAAG,IAAAL,yBAAM,EAACM,mBAAO,CAAC,CAAAJ,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,kEAIjC;AAED,IAAMG,YAAY,GAAG,IAAAP,yBAAM,EAACQ,oBAAQ,CAAC,CAAAN,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,gFAKpC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMK,aAAa,GAAG,IAAAT,yBAAM,EAACU,2BAAQ,CAAC,CAAAR,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,gOAsBrC;AAcM,IAAMO,WAAW,GAAAf,OAAA,CAAAe,WAAA,GAAG,SAAdA,WAAWA,CAAAC,IAAA;EAAA,IAAAC,SAAA,GAAAD,IAAA,CACtBE,IAAI;IAAJA,IAAI,GAAAD,SAAA,cAAG,gBAAgB,GAAAA,SAAA;IAAAE,WAAA,GAAAH,IAAA,CACvBd,MAAM;IAANA,MAAM,GAAAiB,WAAA,cAAG,mBAAmB,GAAAA,WAAA;IAC5BC,WAAW,GAAAJ,IAAA,CAAXI,WAAW;IACXC,MAAM,GAAAL,IAAA,CAANK,MAAM;IACNC,KAAK,GAAAN,IAAA,CAALM,KAAK;EAAA,oBAELnC,MAAA,CAAAW,OAAA,CAAAyB,aAAA,CAAApC,MAAA,CAAAW,OAAA,CAAA0B,QAAA,qBACErC,MAAA,CAAAW,OAAA,CAAAyB,aAAA,CAAC9B,YAAA,CAAAgC,cAAQ;IAACC,IAAI,EAAC;EAAO,gBACpBvC,MAAA,CAAAW,OAAA,CAAAyB,aAAA,CAAChC,OAAA,CAAAoC,gBAAgB,qBACfxC,MAAA,CAAAW,OAAA,CAAAyB,aAAA,CAACd,UAAU,QAAES,IAAiB,CAAC,eAC/B/B,MAAA,CAAAW,OAAA,CAAAyB,aAAA,CAACZ,YAAY;IAACiB,KAAK,EAAC;EAAU,GAC3B3B,iBAAiB,CAACC,MAAM,CACb,CACE,CAAC,eACnBf,MAAA,CAAAW,OAAA,CAAAyB,aAAA,CAAChC,OAAA,CAAAsC,UAAU;IAAC,cAAW;EAAiB,CAAE,CAClC,CAAC,EAEVT,WAAW,gBACVjC,MAAA,CAAAW,OAAA,CAAAyB,aAAA,CAAC9B,YAAA,CAAAgC,cAAQ;IAACC,IAAI,EAAC;EAAQ,gBACrBvC,MAAA,CAAAW,OAAA,CAAAyB,aAAA,CAACpB,aAAa;IAACyB,KAAK,EAAC;EAAW,GAAER,WAA2B,CACrD,CAAC,GACT,IAAI,EAEPC,MAAM,IAAIC,KAAK,gBACdnC,MAAA,CAAAW,OAAA,CAAAyB,aAAA,CAACV,aAAa;IAACa,IAAI,EAAC;EAAQ,GACzBL,MAAM,gBACLlC,MAAA,CAAAW,OAAA,CAAAyB,aAAA;IAAMO,SAAS,EAAC;EAAW,gBACzB3C,MAAA,CAAAW,OAAA,CAAAyB,aAAA,CAAC5B,QAAA,CAAAoC,WAAW;IACVC,GAAG,EAAEX,MAAM,CAACO,KAAM;IAClBK,KAAK,EAAE,EAAG;IACVC,SAAS,EAAE,KAAM;IACjB;EAAU,GAETb,MAAM,CAACc,QACG,CAAC,eACdhD,MAAA,CAAAW,OAAA,CAAAyB,aAAA,CAAC7B,WAAA,CAAA0C,QAAQ;IAACR,KAAK,EAAC;EAAW,GAAEP,MAAM,CAACH,IAAe,CAC/C,CAAC;EAAA;EAEP;AACV;EACU/B,MAAA,CAAAW,OAAA,CAAAyB,aAAA,aAAO,CACR,EACAD,KAAK,gBACJnC,MAAA,CAAAW,OAAA,CAAAyB,aAAA;IAAMO,SAAS,EAAC,UAAU;IAAC;EAAU,gBACnC3C,MAAA,CAAAW,OAAA,CAAAyB,aAAA,CAAC/B,KAAA,CAAA6C,IAAI;IACHC,IAAI,EAAC,OAAO;IACZhB,KAAK,EAAEA,KAAK,CAACiB,IAAK;IAClBC,eAAe,EAAElB,KAAK,CAACM,KAAM;IAC7BA,KAAK,EAAEN,KAAK,CAACmB,SAAU;IACvBC,eAAe,EAAE;MAAEC,OAAO,EAAE,WAAW;MAAEC,MAAM,EAAE;IAAO;EAAE,CAC3D,CACG,CAAC,GACL,IACS,CAAC,GACd,IACJ,CAAC;AAAA,CACJ","ignoreList":[]}
@@ -9,7 +9,9 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
9
9
  var _shared = require("./shared");
10
10
  var _Icons = require("../../../components/Icons");
11
11
  var _Loaders = require("../../../components/Loaders");
12
+ var _Signifier = require("../../../components/Signifier");
12
13
  var _StackedCard = require("../../../components/StackedCard");
14
+ var _Tag = require("../../../components/Tag");
13
15
  var _Typography = require("../../../components/Typography");
14
16
  var _Typography2 = require("../../../components/Typography/Typography");
15
17
  var _shared2 = require("../../shared");
@@ -30,14 +32,58 @@ function _extends() { return _extends = Object.assign ? Object.assign.bind() : f
30
32
  * project default)
31
33
  * - inline assignee affordance (avatar, or an add-assignee placeholder)
32
34
  * - completed (teal tint, no "…" menu, no overdue colour)
35
+ * - assignees appear ONCE (in the info line when the card has no
36
+ * date range, in the date row when it
37
+ * has one — never in both)
33
38
  *
34
39
  * The pending/optimistic and priority states are SHELL states (dimmed +
35
40
  * pointer-events off; red left bar), so the card is wrapped in a `<StackedCard
36
41
  * pending>` / `<StackedCard priorityColor>` by the host — they are not the
37
42
  * card's own concern and live on the shell, not here.
43
+ *
44
+ * Everything is measured against the app: `ColumnCardBody.jsx`,
45
+ * `ColumnCardBodyInfo.jsx`, `ColumnCardDate.jsx` and
46
+ * `view.project_tasks_column_mode.less`.
38
47
  */
39
48
 
40
- var LABEL_DOTS = ["#378ADD", "#D85A30", "#639922", "#EF9F27", "#7F77DD"];
49
+ /**
50
+ * Eight labels, so the default card demonstrates the collapsed form. Colours are
51
+ * the labels' own, which is why they are literals.
52
+ */
53
+ var DEMO_LABELS = [{
54
+ text: "DESIGN",
55
+ color: "#378ADD"
56
+ }, {
57
+ text: "BLOCKED",
58
+ color: "#D85A30"
59
+ }, {
60
+ text: "READY",
61
+ color: "#639922"
62
+ }, {
63
+ text: "REVIEW",
64
+ color: "#EF9F27"
65
+ }, {
66
+ text: "RESEARCH",
67
+ color: "#7F77DD"
68
+ }, {
69
+ text: "COPY",
70
+ color: "#8C5A2B"
71
+ }, {
72
+ text: "QA",
73
+ color: "#2F5DA8"
74
+ }, {
75
+ text: "RELEASE",
76
+ color: "#8A3E6B"
77
+ }];
78
+
79
+ /**
80
+ * How many labels read as text before the line has to collapse them, and how
81
+ * many dots stand in for the rest. Two colour-text `Tag`s fit a 260px card; past
82
+ * that the app's own answer (and the design system's mapping) is coloured dots
83
+ * plus an overflow count.
84
+ */
85
+ var LABELS_AS_TEXT_MAX = 2;
86
+ var LABEL_DOTS_MAX = 5;
41
87
 
42
88
  /* The completed tint fills the card body; the shell keeps the priority bar and
43
89
  selection ring on top of it. */
@@ -48,10 +94,26 @@ var StyledBody = _styledComponents.default.div.withConfig({
48
94
  var $completed = _ref.$completed;
49
95
  return $completed && (0, _styledComponents.css)(["background:var(--sc-completed-tint,rgba(72,201,176,0.16));"]);
50
96
  });
51
- var StyledMetaCluster = _styledComponents.default.div.withConfig({
52
- displayName: "TaskCard__StyledMetaCluster",
97
+
98
+ /**
99
+ * The info line — labels, then signifiers, then (only when the card has no date
100
+ * range) the assignees.
101
+ *
102
+ * The separator is the app's, rule for rule: a 2px round dot in
103
+ * `--color-theme-600` with `margin: 0 6px`, drawn by `::before` on every item
104
+ * EXCEPT the first (`view.project_tasks_column_mode.less`:
105
+ * `.c-signifier:not(:first-child):before`, `.label_single_container:not(:first-child)
106
+ * .label_item:before`, `.dot:before`). Because the rule keys off position rather
107
+ * than off "am I a signifier", a line that starts with a signifier — a task with
108
+ * counters but no labels — cannot open with a dangling dot.
109
+ *
110
+ * `font-size: 11px` is the `.labels` block's own; the vertical rhythm the app
111
+ * gets from `margin-top: 10px` comes from the `meta` row's role padding here.
112
+ */
113
+ var StyledInfoLine = _styledComponents.default.div.withConfig({
114
+ displayName: "TaskCard__StyledInfoLine",
53
115
  componentId: "sc-5iuhg8-1"
54
- })(["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;}"]);
116
+ })(["display:flex;flex-wrap:wrap;align-items:center;width:100%;font-size:11px;> *{display:flex;align-items:center;min-height:18px;}> *:not(:first-child):not(.sc-assignees)::before{content:\"\";flex-shrink:0;width:2px;height:2px;margin:0 6px;border-radius:100%;background-color:var(--color-theme-600);}.sc-label{max-width:74px;}.sc-label .c-tag > div{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:60px;}.sc-dots{gap:4px;}.sc-assignees{flex:1 1 auto;justify-content:flex-end;}"]);
55
117
  var StyledDot = _styledComponents.default.span.withConfig({
56
118
  displayName: "TaskCard__StyledDot",
57
119
  componentId: "sc-5iuhg8-2"
@@ -60,28 +122,39 @@ var StyledDot = _styledComponents.default.span.withConfig({
60
122
  return $color;
61
123
  });
62
124
 
63
- /* Hidden-from-clients signifier — an eye-off badge, shown only when the task's
64
- visibility differs from the project default. */
65
- var StyledHiddenBadge = _styledComponents.default.span.withConfig({
66
- displayName: "TaskCard__StyledHiddenBadge",
67
- componentId: "sc-5iuhg8-3"
68
- })(["display:inline-flex;align-items:center;gap:3px;color:var(--color-theme-600);svg{width:14px;height:14px;}"]);
69
-
70
- /* Date bold; turns red only when overdue AND the task is not completed. */
125
+ /**
126
+ * The date row's text.
127
+ *
128
+ * A raw `<span>` in this Storybook inherits the browser's serif default at the
129
+ * ancestor's size, which is why the date used to read as huge serif type. The
130
+ * app sets the same four values in CSS on a plain `div` (`.due_date`: 13px,
131
+ * bold, 24px tall, `--color-theme-900`, `--red-alert` when `.overdue`), so the
132
+ * fix is to state them here plus the font stack the missing reset does not
133
+ * supply.
134
+ */
71
135
  var StyledDate = _styledComponents.default.span.withConfig({
72
136
  displayName: "TaskCard__StyledDate",
73
- componentId: "sc-5iuhg8-4"
74
- })(["font-weight:bold;color:", ";"], function (_ref3) {
137
+ componentId: "sc-5iuhg8-3"
138
+ })(["height:24px;font-family:", ";font-size:13px;font-weight:bold;line-height:24px;letter-spacing:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:", ";"], _shared.CARD_FONT, function (_ref3) {
75
139
  var $overdue = _ref3.$overdue;
76
140
  return $overdue ? "var(--red-alert)" : "var(--color-theme-900)";
77
141
  });
78
142
 
143
+ /* Avatars are limited to 3 and overlap, as MultiAssigneesPicker does. */
144
+ var StyledAssignees = _styledComponents.default.span.withConfig({
145
+ displayName: "TaskCard__StyledAssignees",
146
+ componentId: "sc-5iuhg8-4"
147
+ })(["display:flex;align-items:center;justify-content:flex-end;"]);
148
+
79
149
  /* Inline assignee affordance placeholder — a dashed add-assignee target that
80
150
  stands in until the real picker is wired at integration. */
81
151
  var StyledAddAssignee = _styledComponents.default.button.withConfig({
82
152
  displayName: "TaskCard__StyledAddAssignee",
83
153
  componentId: "sc-5iuhg8-5"
84
154
  })(["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);}"]);
155
+
156
+ /** The app's assignee limit (MultiAssigneesPicker `limit={3}`). */
157
+ var ASSIGNEE_LIMIT = 3;
85
158
  var TaskCard = exports.TaskCard = function TaskCard(_ref4) {
86
159
  var _ref4$title = _ref4.title,
87
160
  title = _ref4$title === void 0 ? "Implement the design from the reference on this page" : _ref4$title,
@@ -95,6 +168,16 @@ var TaskCard = exports.TaskCard = function TaskCard(_ref4) {
95
168
  showTaskId = _ref4$showTaskId === void 0 ? false : _ref4$showTaskId,
96
169
  _ref4$taskId = _ref4.taskId,
97
170
  taskId = _ref4$taskId === void 0 ? 4521 : _ref4$taskId,
171
+ _ref4$showProjectName = _ref4.showProjectName,
172
+ showProjectName = _ref4$showProjectName === void 0 ? false : _ref4$showProjectName,
173
+ _ref4$projectName = _ref4.projectName,
174
+ projectName = _ref4$projectName === void 0 ? "Marketing Site" : _ref4$projectName,
175
+ _ref4$labels = _ref4.labels,
176
+ labels = _ref4$labels === void 0 ? DEMO_LABELS : _ref4$labels,
177
+ _ref4$subtaskCount = _ref4.subtaskCount,
178
+ subtaskCount = _ref4$subtaskCount === void 0 ? 2 : _ref4$subtaskCount,
179
+ _ref4$commentCount = _ref4.commentCount,
180
+ commentCount = _ref4$commentCount === void 0 ? 7 : _ref4$commentCount,
98
181
  _ref4$dateLabel = _ref4.dateLabel,
99
182
  dateLabel = _ref4$dateLabel === void 0 ? "May 8 – Sep 10" : _ref4$dateLabel,
100
183
  _ref4$overdue = _ref4.overdue,
@@ -109,12 +192,79 @@ var TaskCard = exports.TaskCard = function TaskCard(_ref4) {
109
192
  projectDefaultHidden = _ref4$projectDefaultH === void 0 ? false : _ref4$projectDefaultH,
110
193
  _ref4$assigned = _ref4.assigned,
111
194
  assigned = _ref4$assigned === void 0 ? true : _ref4$assigned,
195
+ assignees = _ref4.assignees,
112
196
  _ref4$completed = _ref4.completed,
113
197
  completed = _ref4$completed === void 0 ? false : _ref4$completed;
114
198
  // Signifier appears only when the task's visibility differs from the default.
115
199
  var showHiddenSignifier = hiddenFromClients !== projectDefaultHidden;
116
200
  // Overdue colour is suppressed on completed tasks.
117
201
  var dateIsOverdue = overdue && !completed;
202
+ var hasDate = dateLabel != null && dateLabel !== "";
203
+ var collapseLabels = labels.length > LABELS_AS_TEXT_MAX;
204
+
205
+ /* The assignee slot: the real avatars when the host has them, the demo avatar
206
+ when it only says "assigned", the add affordance when it says nothing is. */
207
+ var assigneeSlot = assigned ? /*#__PURE__*/_react.default.createElement(StyledAssignees, {
208
+ className: "sc-assignees",
209
+ "data-fixed": true
210
+ }, assignees ? assignees.slice(0, ASSIGNEE_LIMIT).map(function (person) {
211
+ return /*#__PURE__*/_react.default.createElement(_shared2.RoundAvatar, {
212
+ key: person.name,
213
+ $bg: person.color,
214
+ $size: 24,
215
+ $overlap: true
216
+ }, person.initials);
217
+ }) : /*#__PURE__*/_react.default.createElement(_shared2.RoundAvatar, {
218
+ $bg: _shared2.AVATAR_COLORS.teal,
219
+ $size: 24,
220
+ $bordered: false
221
+ }, "MS")) : /*#__PURE__*/_react.default.createElement(StyledAssignees, {
222
+ className: "sc-assignees",
223
+ "data-fixed": true
224
+ }, /*#__PURE__*/_react.default.createElement(StyledAddAssignee, {
225
+ type: "button",
226
+ "aria-label": "Assign task"
227
+ }, /*#__PURE__*/_react.default.createElement(_Icons.PersonPlusIcon, null)));
228
+
229
+ /* Signifiers in the app's fixed order: subtasks → comments → dependencies →
230
+ hidden-from-clients. Each is one child of the info line, so the line's own
231
+ separator rule spaces them. */
232
+ var signifiers = [];
233
+ if (subtaskCount > 0) {
234
+ signifiers.push(/*#__PURE__*/_react.default.createElement(_Signifier.Signifier, {
235
+ key: "subtasks",
236
+ type: _Icons.ChecklistSmallIcon,
237
+ value: subtaskCount,
238
+ tooltipText: "Subtasks"
239
+ }));
240
+ }
241
+ if (commentCount > 0) {
242
+ signifiers.push(/*#__PURE__*/_react.default.createElement(_Signifier.Signifier, {
243
+ key: "comments",
244
+ type: _Icons.MessageSmallIcon,
245
+ value: commentCount,
246
+ tooltipText: "Comments"
247
+ }));
248
+ }
249
+ if (showDependencies && dependencyCount > 0) {
250
+ signifiers.push(/*#__PURE__*/_react.default.createElement(_Signifier.Signifier, {
251
+ key: "dependencies",
252
+ type: _Icons.DependencySmallIcon,
253
+ value: dependencyCount,
254
+ tooltipText: "Dependencies"
255
+ }));
256
+ }
257
+ if (showHiddenSignifier) {
258
+ signifiers.push(/*#__PURE__*/_react.default.createElement(_Signifier.Signifier, {
259
+ key: "hidden",
260
+ type: _Icons.EyeOffSmallIcon,
261
+ tooltipText: "Hidden from clients"
262
+ }));
263
+ }
264
+
265
+ /* The info line exists when it has something to say — labels, signifiers, or
266
+ the assignees it has to carry because there is no date row. */
267
+ var showInfoLine = labels.length > 0 || signifiers.length > 0 || !hasDate;
118
268
  return /*#__PURE__*/_react.default.createElement(StyledBody, {
119
269
  $completed: completed
120
270
  }, cover ? /*#__PURE__*/_react.default.createElement(_StackedCard.StackedCardCover, {
@@ -129,60 +279,37 @@ var TaskCard = exports.TaskCard = function TaskCard(_ref4) {
129
279
  }
130
280
  })) : null, /*#__PURE__*/_react.default.createElement(_StackedCard.StackedCardRow, {
131
281
  role: "title"
132
- }, /*#__PURE__*/_react.default.createElement(_shared.StyledClamp, null, showTaskId ? /*#__PURE__*/_react.default.createElement(_Typography2.Typography, {
282
+ }, /*#__PURE__*/_react.default.createElement(_shared.StyledTitleBlock, null, showProjectName ? /*#__PURE__*/_react.default.createElement(_shared.CardProjectLine, null, projectName) : null, /*#__PURE__*/_react.default.createElement(_shared.StyledClamp, null, showTaskId ? /*#__PURE__*/_react.default.createElement(_Typography2.Typography, {
133
283
  as: "span",
134
284
  variant: "Caption 1",
135
285
  color: "tertiary"
136
- }, "#".concat(taskId, " ")) : null, title), completed ? null : /*#__PURE__*/_react.default.createElement(_shared.EntityDots, {
286
+ }, "#".concat(taskId, " ")) : null, title)), completed ? null : /*#__PURE__*/_react.default.createElement(_shared.EntityDots, {
137
287
  "aria-label": "Task options"
138
- })), /*#__PURE__*/_react.default.createElement(_StackedCard.StackedCardRow, {
288
+ })), showInfoLine ? /*#__PURE__*/_react.default.createElement(_StackedCard.StackedCardRow, {
139
289
  role: "meta"
140
- }, /*#__PURE__*/_react.default.createElement(StyledMetaCluster, null, /*#__PURE__*/_react.default.createElement("span", {
290
+ }, /*#__PURE__*/_react.default.createElement(StyledInfoLine, null, collapseLabels ? /*#__PURE__*/_react.default.createElement("span", {
141
291
  className: "sc-dots"
142
- }, LABEL_DOTS.map(function (color) {
292
+ }, labels.slice(0, LABEL_DOTS_MAX).map(function (label) {
143
293
  return /*#__PURE__*/_react.default.createElement(StyledDot, {
144
- key: color,
145
- $color: color
294
+ key: label.text,
295
+ $color: label.color
146
296
  });
147
- })), /*#__PURE__*/_react.default.createElement(_Typography.Caption1, {
148
- color: "tertiary"
149
- }, "+3"), /*#__PURE__*/_react.default.createElement("span", {
150
- className: "sc-sep"
151
- }, "\xB7"), /*#__PURE__*/_react.default.createElement("span", {
152
- className: "sc-count"
153
- }, /*#__PURE__*/_react.default.createElement(_Icons.MessageSmallIcon, null), /*#__PURE__*/_react.default.createElement(_Typography.Caption1, {
154
- color: "tertiary"
155
- }, "7")), /*#__PURE__*/_react.default.createElement("span", {
156
- className: "sc-sep"
157
- }, "\xB7"), /*#__PURE__*/_react.default.createElement("span", {
158
- className: "sc-count"
159
- }, /*#__PURE__*/_react.default.createElement(_Icons.ChecklistSmallIcon, null), /*#__PURE__*/_react.default.createElement(_Typography.Caption1, {
297
+ }), labels.length > LABEL_DOTS_MAX ? /*#__PURE__*/_react.default.createElement(_Typography.Caption1, {
160
298
  color: "tertiary"
161
- }, "2")), showDependencies ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
162
- className: "sc-sep"
163
- }, "\xB7"), /*#__PURE__*/_react.default.createElement("span", {
164
- className: "sc-count",
165
- title: "Dependencies"
166
- }, /*#__PURE__*/_react.default.createElement(_Icons.InsertLinkIcon, null), /*#__PURE__*/_react.default.createElement(_Typography.Caption1, {
167
- color: "tertiary"
168
- }, dependencyCount))) : null, showHiddenSignifier ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
169
- className: "sc-sep"
170
- }, "\xB7"), /*#__PURE__*/_react.default.createElement(StyledHiddenBadge, {
171
- title: "Hidden from clients"
172
- }, /*#__PURE__*/_react.default.createElement(_Icons.EyeOffIcon, null))) : null)), /*#__PURE__*/_react.default.createElement(_StackedCard.StackedCardRow, {
299
+ }, "+".concat(labels.length - LABEL_DOTS_MAX)) : null) : labels.map(function (label) {
300
+ return /*#__PURE__*/_react.default.createElement("span", {
301
+ className: "sc-label",
302
+ key: label.text
303
+ }, /*#__PURE__*/_react.default.createElement(_Tag.Tag, {
304
+ name: label.text,
305
+ color: label.color,
306
+ showDot: false
307
+ }));
308
+ }), signifiers, hasDate ? null : assigneeSlot)) : null, hasDate ? /*#__PURE__*/_react.default.createElement(_StackedCard.StackedCardRow, {
173
309
  role: "footer"
174
310
  }, /*#__PURE__*/_react.default.createElement(StyledDate, {
175
311
  $overdue: dateIsOverdue
176
- }, dateLabel), /*#__PURE__*/_react.default.createElement("span", null), assigned ? /*#__PURE__*/_react.default.createElement(_shared2.RoundAvatar, {
177
- $bg: _shared2.AVATAR_COLORS.teal,
178
- $size: 24,
179
- $bordered: false,
180
- "data-fixed": true
181
- }, "MS") : /*#__PURE__*/_react.default.createElement(StyledAddAssignee, {
182
- type: "button",
183
- "aria-label": "Assign task",
184
- "data-fixed": true
185
- }, /*#__PURE__*/_react.default.createElement(_Icons.PersonPlusIcon, null))));
312
+ }, dateLabel), assigneeSlot) : null);
186
313
  };
187
314
 
188
315
  /* ---- placeholder + skeleton ---- */
@@ -1 +1 @@
1
- {"version":3,"file":"TaskCard.js","names":["_react","_interopRequireDefault","require","_styledComponents","_interopRequireWildcard","_shared","_Icons","_Loaders","_StackedCard","_Typography","_Typography2","_shared2","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","StackedCardCover","aspectRatio","COVER_RATIO","centerSlot","playControl","undefined","topRightSlot","coverManagement","style","width","height","background","StackedCardRow","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 {\n STACKED_CARD_COVER_RATIO as COVER_RATIO,\n StackedCardCover as Cover,\n StackedCardRow as StackRow,\n} from \"../../../components/StackedCard\";\nimport { Caption1 } from \"../../../components/Typography\";\nimport { Typography } from \"../../../components/Typography/Typography\";\nimport { RoundAvatar, AVATAR_COLORS } from \"../../shared\";\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":[]}
1
+ {"version":3,"file":"TaskCard.js","names":["_react","_interopRequireDefault","require","_styledComponents","_interopRequireWildcard","_shared","_Icons","_Loaders","_Signifier","_StackedCard","_Tag","_Typography","_Typography2","_shared2","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","DEMO_LABELS","text","color","LABELS_AS_TEXT_MAX","LABEL_DOTS_MAX","StyledBody","styled","div","withConfig","displayName","componentId","_ref","$completed","css","StyledInfoLine","StyledDot","span","_ref2","$color","StyledDate","CARD_FONT","_ref3","$overdue","StyledAssignees","StyledAddAssignee","button","ASSIGNEE_LIMIT","TaskCard","exports","_ref4","_ref4$title","title","_ref4$cover","cover","_ref4$playable","playable","_ref4$coverControls","coverControls","_ref4$showTaskId","showTaskId","_ref4$taskId","taskId","_ref4$showProjectName","showProjectName","_ref4$projectName","projectName","_ref4$labels","labels","_ref4$subtaskCount","subtaskCount","_ref4$commentCount","commentCount","_ref4$dateLabel","dateLabel","_ref4$overdue","overdue","_ref4$showDependencie","showDependencies","_ref4$dependencyCount","dependencyCount","_ref4$hiddenFromClien","hiddenFromClients","_ref4$projectDefaultH","projectDefaultHidden","_ref4$assigned","assigned","assignees","_ref4$completed","completed","showHiddenSignifier","dateIsOverdue","hasDate","collapseLabels","assigneeSlot","createElement","className","slice","map","person","RoundAvatar","key","name","$bg","$size","$overlap","initials","AVATAR_COLORS","teal","$bordered","type","PersonPlusIcon","signifiers","push","Signifier","ChecklistSmallIcon","value","tooltipText","MessageSmallIcon","DependencySmallIcon","EyeOffSmallIcon","showInfoLine","StackedCardCover","aspectRatio","COVER_RATIO","centerSlot","playControl","undefined","topRightSlot","coverManagement","style","width","height","background","StackedCardRow","role","StyledTitleBlock","CardProjectLine","StyledClamp","Typography","as","variant","concat","EntityDots","label","Caption1","Tag","showDot","TaskPlaceholder","props","Placeholder","icon","TaskSkeleton","Fragment","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 CARD_FONT,\n CardProjectLine,\n EntityDots,\n StyledClamp,\n StyledTitleBlock,\n coverManagement,\n playControl,\n Placeholder,\n} from \"./shared\";\nimport {\n ChecklistSmallIcon,\n DependencySmallIcon,\n EyeOffSmallIcon,\n MessageSmallIcon,\n PersonPlusIcon,\n} from \"../../../components/Icons\";\nimport { SkeletonLoader } from \"../../../components/Loaders\";\nimport { Signifier } from \"../../../components/Signifier\";\nimport {\n STACKED_CARD_COVER_RATIO as COVER_RATIO,\n StackedCardCover as Cover,\n StackedCardRow as StackRow,\n} from \"../../../components/StackedCard\";\nimport { Tag } from \"../../../components/Tag\";\nimport { Caption1 } from \"../../../components/Typography\";\nimport { Typography } from \"../../../components/Typography/Typography\";\nimport { RoundAvatar, AVATAR_COLORS } from \"../../shared\";\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 * - assignees appear ONCE (in the info line when the card has no\n * date range, in the date row when it\n * has one — never in both)\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 * Everything is measured against the app: `ColumnCardBody.jsx`,\n * `ColumnCardBodyInfo.jsx`, `ColumnCardDate.jsx` and\n * `view.project_tasks_column_mode.less`.\n */\n\nexport interface TaskCardLabel {\n text: string;\n /** The label's own colour — data, not theme. */\n color: string;\n}\n\nexport interface TaskCardPerson {\n name: string;\n initials: string;\n /** Avatar colours stand in for the server-rendered avatar: data, not theme. */\n color: string;\n}\n\n/**\n * Eight labels, so the default card demonstrates the collapsed form. Colours are\n * the labels' own, which is why they are literals.\n */\nconst DEMO_LABELS: TaskCardLabel[] = [\n { text: \"DESIGN\", color: \"#378ADD\" },\n { text: \"BLOCKED\", color: \"#D85A30\" },\n { text: \"READY\", color: \"#639922\" },\n { text: \"REVIEW\", color: \"#EF9F27\" },\n { text: \"RESEARCH\", color: \"#7F77DD\" },\n { text: \"COPY\", color: \"#8C5A2B\" },\n { text: \"QA\", color: \"#2F5DA8\" },\n { text: \"RELEASE\", color: \"#8A3E6B\" },\n];\n\n/**\n * How many labels read as text before the line has to collapse them, and how\n * many dots stand in for the rest. Two colour-text `Tag`s fit a 260px card; past\n * that the app's own answer (and the design system's mapping) is coloured dots\n * plus an overflow count.\n */\nconst LABELS_AS_TEXT_MAX = 2;\nconst LABEL_DOTS_MAX = 5;\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\n/**\n * The info line — labels, then signifiers, then (only when the card has no date\n * range) the assignees.\n *\n * The separator is the app's, rule for rule: a 2px round dot in\n * `--color-theme-600` with `margin: 0 6px`, drawn by `::before` on every item\n * EXCEPT the first (`view.project_tasks_column_mode.less`:\n * `.c-signifier:not(:first-child):before`, `.label_single_container:not(:first-child)\n * .label_item:before`, `.dot:before`). Because the rule keys off position rather\n * than off \"am I a signifier\", a line that starts with a signifier — a task with\n * counters but no labels — cannot open with a dangling dot.\n *\n * `font-size: 11px` is the `.labels` block's own; the vertical rhythm the app\n * gets from `margin-top: 10px` comes from the `meta` row's role padding here.\n */\nconst StyledInfoLine = styled.div`\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n width: 100%;\n font-size: 11px;\n\n > * {\n display: flex;\n align-items: center;\n min-height: 18px;\n }\n\n /* The assignees are excluded: they end the line rather than continuing the\n enumeration, and the app draws no dot before them either. */\n > *:not(:first-child):not(.sc-assignees)::before {\n content: \"\";\n flex-shrink: 0;\n width: 2px;\n height: 2px;\n margin: 0 6px;\n border-radius: 100%;\n background-color: var(--color-theme-600);\n }\n\n /* Labels truncate rather than push the line wider: 74px for the item, 60px\n for the text inside it — the app's two numbers. */\n .sc-label {\n max-width: 74px;\n }\n\n .sc-label .c-tag > div {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n max-width: 60px;\n }\n\n .sc-dots {\n gap: 4px;\n }\n\n /* The assignees end the line, right-aligned, when there is no date row to\n carry them. */\n .sc-assignees {\n flex: 1 1 auto;\n justify-content: flex-end;\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/**\n * The date row's text.\n *\n * A raw `<span>` in this Storybook inherits the browser's serif default at the\n * ancestor's size, which is why the date used to read as huge serif type. The\n * app sets the same four values in CSS on a plain `div` (`.due_date`: 13px,\n * bold, 24px tall, `--color-theme-900`, `--red-alert` when `.overdue`), so the\n * fix is to state them here — plus the font stack the missing reset does not\n * supply.\n */\nconst StyledDate = styled.span<{ $overdue?: boolean }>`\n height: 24px;\n font-family: ${CARD_FONT};\n font-size: 13px;\n font-weight: bold;\n line-height: 24px;\n letter-spacing: 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n color: ${({ $overdue }) =>\n $overdue ? \"var(--red-alert)\" : \"var(--color-theme-900)\"};\n`;\n\n/* Avatars are limited to 3 and overlap, as MultiAssigneesPicker does. */\nconst StyledAssignees = styled.span`\n display: flex;\n align-items: center;\n justify-content: flex-end;\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\n/** The app's assignee limit (MultiAssigneesPicker `limit={3}`). */\nconst ASSIGNEE_LIMIT = 3;\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 /**\n * The project the task lives in, above the title. Off by default: in a column\n * the column already says it, and only a surface that mixes projects (a\n * canvas) needs the line.\n */\n showProjectName?: boolean;\n projectName?: string;\n /**\n * The task's labels. Up to two read as colour text (`Tag`, the column card's\n * treatment); more collapse to coloured dots plus an overflow count, which is\n * what the design system maps \">2 labels\" to. An empty array means the card\n * has no labels — and then the info line must not open with a separator.\n */\n labels?: TaskCardLabel[];\n /** Open-subtask and comment counters; each shows only when it is non-zero. */\n subtaskCount?: number;\n commentCount?: number;\n /**\n * The date range. `null` (or empty) means the task has none — the date row\n * disappears and the assignees move up into the info line, so they still\n * appear exactly once.\n */\n dateLabel?: string | null;\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 /** The actual assignees, when the host has them. Limited to 3, as in the app. */\n assignees?: TaskCardPerson[];\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 showProjectName = false,\n projectName = \"Marketing Site\",\n labels = DEMO_LABELS,\n subtaskCount = 2,\n commentCount = 7,\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 assignees,\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 const hasDate = dateLabel != null && dateLabel !== \"\";\n const collapseLabels = labels.length > LABELS_AS_TEXT_MAX;\n\n /* The assignee slot: the real avatars when the host has them, the demo avatar\n when it only says \"assigned\", the add affordance when it says nothing is. */\n const assigneeSlot = assigned ? (\n <StyledAssignees className=\"sc-assignees\" data-fixed>\n {assignees ? (\n assignees.slice(0, ASSIGNEE_LIMIT).map((person) => (\n <RoundAvatar key={person.name} $bg={person.color} $size={24} $overlap>\n {person.initials}\n </RoundAvatar>\n ))\n ) : (\n <RoundAvatar $bg={AVATAR_COLORS.teal} $size={24} $bordered={false}>\n MS\n </RoundAvatar>\n )}\n </StyledAssignees>\n ) : (\n <StyledAssignees className=\"sc-assignees\" data-fixed>\n <StyledAddAssignee type=\"button\" aria-label=\"Assign task\">\n <PersonPlusIcon />\n </StyledAddAssignee>\n </StyledAssignees>\n );\n\n /* Signifiers in the app's fixed order: subtasks → comments → dependencies →\n hidden-from-clients. Each is one child of the info line, so the line's own\n separator rule spaces them. */\n const signifiers: ReactElement[] = [];\n if (subtaskCount > 0) {\n signifiers.push(\n <Signifier\n key=\"subtasks\"\n type={ChecklistSmallIcon}\n value={subtaskCount}\n tooltipText=\"Subtasks\"\n />\n );\n }\n if (commentCount > 0) {\n signifiers.push(\n <Signifier\n key=\"comments\"\n type={MessageSmallIcon}\n value={commentCount}\n tooltipText=\"Comments\"\n />\n );\n }\n if (showDependencies && dependencyCount > 0) {\n signifiers.push(\n <Signifier\n key=\"dependencies\"\n type={DependencySmallIcon}\n value={dependencyCount}\n tooltipText=\"Dependencies\"\n />\n );\n }\n if (showHiddenSignifier) {\n signifiers.push(\n <Signifier\n key=\"hidden\"\n type={EyeOffSmallIcon}\n tooltipText=\"Hidden from clients\"\n />\n );\n }\n\n /* The info line exists when it has something to say — labels, signifiers, or\n the assignees it has to carry because there is no date row. */\n const showInfoLine = labels.length > 0 || signifiers.length > 0 || !hasDate;\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 <StyledTitleBlock>\n {showProjectName ? (\n <CardProjectLine>{projectName}</CardProjectLine>\n ) : null}\n <StyledClamp>\n {showTaskId ? (\n <Typography as=\"span\" variant=\"Caption 1\" color=\"tertiary\">\n {`#${taskId} `}\n </Typography>\n ) : null}\n {title}\n </StyledClamp>\n </StyledTitleBlock>\n {/* Completed tasks drop the \"…\" menu. */}\n {completed ? null : <EntityDots aria-label=\"Task options\" />}\n </StackRow>\n\n {showInfoLine ? (\n <StackRow role=\"meta\">\n <StyledInfoLine>\n {collapseLabels ? (\n <span className=\"sc-dots\">\n {labels.slice(0, LABEL_DOTS_MAX).map((label) => (\n <StyledDot key={label.text} $color={label.color} />\n ))}\n {labels.length > LABEL_DOTS_MAX ? (\n <Caption1 color=\"tertiary\">{`+${\n labels.length - LABEL_DOTS_MAX\n }`}</Caption1>\n ) : null}\n </span>\n ) : (\n labels.map((label) => (\n <span className=\"sc-label\" key={label.text}>\n <Tag name={label.text} color={label.color} showDot={false} />\n </span>\n ))\n )}\n {signifiers}\n {/* Key invariant: assignees are here ONLY when the card has no date\n row to hold them. */}\n {hasDate ? null : assigneeSlot}\n </StyledInfoLine>\n </StackRow>\n ) : null}\n\n {hasDate ? (\n <StackRow role=\"footer\">\n <StyledDate $overdue={dateIsOverdue}>{dateLabel}</StyledDate>\n {assigneeSlot}\n </StackRow>\n ) : null}\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":[]}
@@ -25,6 +25,17 @@ Object.keys(_unfurl).forEach(function (key) {
25
25
  }
26
26
  });
27
27
  });
28
+ var _ProjectCard = require("./ProjectCard");
29
+ Object.keys(_ProjectCard).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _ProjectCard[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function get() {
35
+ return _ProjectCard[key];
36
+ }
37
+ });
38
+ });
28
39
  var _TaskCard = require("./TaskCard");
29
40
  Object.keys(_TaskCard).forEach(function (key) {
30
41
  if (key === "default" || key === "__esModule") return;
@@ -1 +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":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_shared","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_unfurl","_ProjectCard","_TaskCard","_LinkCard","_ImageCard","_SwatchCard","_NoteCard"],"sources":["../../../../../src/presentation/stackedCard/content/index.ts"],"sourcesContent":["export * from \"./shared\";\nexport * from \"./unfurl\";\nexport * from \"./ProjectCard\";\nexport * from \"./TaskCard\";\nexport * from \"./LinkCard\";\nexport * from \"./ImageCard\";\nexport * from \"./SwatchCard\";\nexport * from \"./NoteCard\";\n"],"mappings":"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","ignoreList":[]}