@activecollab/components 2.0.416 → 2.0.418

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 (43) hide show
  1. package/dist/cjs/components/PortableText/renderers.js +5 -2
  2. package/dist/cjs/components/PortableText/renderers.js.map +1 -1
  3. package/dist/cjs/components/PortableText/types.js +2 -1
  4. package/dist/cjs/components/PortableText/types.js.map +1 -1
  5. package/dist/cjs/components/PortableText/types.test.js +18 -0
  6. package/dist/cjs/components/PortableText/types.test.js.map +1 -1
  7. package/dist/cjs/components/TitledText/TitledText.js +5 -1
  8. package/dist/cjs/components/TitledText/TitledText.js.map +1 -1
  9. package/dist/cjs/presentation/shared/MessageDialog.js +62 -107
  10. package/dist/cjs/presentation/shared/MessageDialog.js.map +1 -1
  11. package/dist/cjs/presentation/shared/MessageFeedback.js +284 -0
  12. package/dist/cjs/presentation/shared/MessageFeedback.js.map +1 -0
  13. package/dist/cjs/presentation/shared/index.js +22 -0
  14. package/dist/cjs/presentation/shared/index.js.map +1 -1
  15. package/dist/esm/components/PortableText/renderers.js +5 -2
  16. package/dist/esm/components/PortableText/renderers.js.map +1 -1
  17. package/dist/esm/components/PortableText/types.d.ts +6 -0
  18. package/dist/esm/components/PortableText/types.d.ts.map +1 -1
  19. package/dist/esm/components/PortableText/types.js +2 -1
  20. package/dist/esm/components/PortableText/types.js.map +1 -1
  21. package/dist/esm/components/PortableText/types.test.js +18 -0
  22. package/dist/esm/components/PortableText/types.test.js.map +1 -1
  23. package/dist/esm/components/TitledText/TitledText.d.ts +7 -3
  24. package/dist/esm/components/TitledText/TitledText.d.ts.map +1 -1
  25. package/dist/esm/components/TitledText/TitledText.js +5 -1
  26. package/dist/esm/components/TitledText/TitledText.js.map +1 -1
  27. package/dist/esm/presentation/shared/MessageDialog.d.ts +8 -3
  28. package/dist/esm/presentation/shared/MessageDialog.d.ts.map +1 -1
  29. package/dist/esm/presentation/shared/MessageDialog.js +64 -98
  30. package/dist/esm/presentation/shared/MessageDialog.js.map +1 -1
  31. package/dist/esm/presentation/shared/MessageFeedback.d.ts +54 -0
  32. package/dist/esm/presentation/shared/MessageFeedback.d.ts.map +1 -0
  33. package/dist/esm/presentation/shared/MessageFeedback.js +252 -0
  34. package/dist/esm/presentation/shared/MessageFeedback.js.map +1 -0
  35. package/dist/esm/presentation/shared/index.d.ts +2 -0
  36. package/dist/esm/presentation/shared/index.d.ts.map +1 -1
  37. package/dist/esm/presentation/shared/index.js +1 -0
  38. package/dist/esm/presentation/shared/index.js.map +1 -1
  39. package/dist/index.js +12 -4
  40. package/dist/index.js.map +1 -1
  41. package/dist/index.min.js +1 -1
  42. package/dist/index.min.js.map +1 -1
  43. package/package.json +1 -1
@@ -0,0 +1,284 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.POSITIVE_FEEDBACK_OPTIONS = exports.NEGATIVE_FEEDBACK_OPTIONS = exports.MessageFeedback = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
9
+ var _BreakPoints = require("../../components/BreakPoints");
10
+ var _Button = require("../../components/Button");
11
+ var _Dialog = require("../../components/Dialog");
12
+ var _IconButton = require("../../components/IconButton");
13
+ var _Icons = require("../../components/Icons");
14
+ var _Label = require("../../components/Label");
15
+ var _Textarea = require("../../components/Textarea");
16
+ var _Tooltip = require("../../components/Tooltip");
17
+ var _Typography = require("../../components/Typography");
18
+ var _Typography2 = require("../../components/Typography/Typography");
19
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
20
+ 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); }
21
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
22
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
23
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
24
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
25
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
26
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
27
+ /**
28
+ * MessageFeedback — the reusable "Was this helpful?" flow, as a Presentation
29
+ * mock.
30
+ *
31
+ * It is built only from design-system parts and owns the whole flow, so any
32
+ * content surface (the message dialog, a help article, a settings panel) can
33
+ * drop it in and get the same behaviour:
34
+ *
35
+ * 1. Prompt — an inline "Was this helpful?" row with a thumb up / down.
36
+ * 2. Details — a centred dialog: option chips for the chosen sentiment,
37
+ * plus an optional free-text comment. Submit or Cancel.
38
+ * 3. Thank you — a short confirmation, then the prompt shows a quiet
39
+ * "Thanks for your feedback!".
40
+ *
41
+ * The vote is recorded the moment a thumb is pressed (`onVote`), so a user who
42
+ * cancels the details step still leaves a valid vote — the same contract the
43
+ * trial Feedback flow uses. The details are reported on Submit (`onSubmit`).
44
+ *
45
+ * In the product this lives in application code; the presentation ships this
46
+ * demo copy so the stories need no app imports.
47
+ */
48
+
49
+ /* ---- public types & default option catalogs ------------------------ */
50
+
51
+ /* The options rate the one piece of content, not the whole product. Each
52
+ negative option maps to an action a writer can take. Override per surface
53
+ through the component props. */
54
+ var POSITIVE_FEEDBACK_OPTIONS = exports.POSITIVE_FEEDBACK_OPTIONS = [{
55
+ id: "clear",
56
+ label: "Clear and easy to understand"
57
+ }, {
58
+ id: "answered",
59
+ label: "Answered my question"
60
+ }, {
61
+ id: "right-detail",
62
+ label: "Right amount of detail"
63
+ }, {
64
+ id: "helped-use",
65
+ label: "Helped me use the feature"
66
+ }, {
67
+ id: "good-examples",
68
+ label: "Good examples or screenshots"
69
+ }, {
70
+ id: "other",
71
+ label: "Other"
72
+ }];
73
+ var NEGATIVE_FEEDBACK_OPTIONS = exports.NEGATIVE_FEEDBACK_OPTIONS = [{
74
+ id: "not-answered",
75
+ label: "Did not answer my question"
76
+ }, {
77
+ id: "confusing",
78
+ label: "Confusing or hard to follow"
79
+ }, {
80
+ id: "too-long",
81
+ label: "Too long"
82
+ }, {
83
+ id: "not-enough-detail",
84
+ label: "Not enough detail"
85
+ }, {
86
+ id: "out-of-date",
87
+ label: "Out of date or incorrect"
88
+ }, {
89
+ id: "wrong-plan-role",
90
+ label: "Wrong for my plan or role"
91
+ }, {
92
+ id: "not-found",
93
+ label: "I could not find what I needed"
94
+ }, {
95
+ id: "broken",
96
+ label: "Something is broken"
97
+ }, {
98
+ id: "other",
99
+ label: "Other"
100
+ }];
101
+
102
+ /* ---- the inline prompt row ----------------------------------------- */
103
+
104
+ /* Down-vote reuses the up icon, rotated (the DS set only ships
105
+ ThumbUpOutlineIcon). */
106
+ var StyledPrompt = _styledComponents.default.div.withConfig({
107
+ displayName: "MessageFeedback__StyledPrompt",
108
+ componentId: "sc-1i96o75-0"
109
+ })(["display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 24px 28px;", "{padding:4px 24px 24px;}.fb-question{margin-right:4px;}.fb-btn svg{width:18px;height:18px;}.fb-down svg{transform:rotate(180deg);}"], _BreakPoints.screenBelow.sm);
110
+
111
+ /* ---- the details dialog -------------------------------------------- */
112
+
113
+ var StyledForm = _styledComponents.default.div.withConfig({
114
+ displayName: "MessageFeedback__StyledForm",
115
+ componentId: "sc-1i96o75-1"
116
+ })(["display:flex;flex-direction:column;gap:20px;.fb-field{display:flex;flex-direction:column;gap:8px;}.fb-chips{display:flex;flex-wrap:wrap;gap:8px;}.c-textarea{width:100%;box-sizing:border-box;}"]);
117
+
118
+ /* The option chip — a pill that toggles to the theme primary tint when
119
+ selected. Translated from the trial Feedback chip into styled-components
120
+ (runtime tw- classes do not work in the presentation storybook). The label
121
+ text is a DS Body2 so it carries the correct font. */
122
+ var StyledChip = _styledComponents.default.button.withConfig({
123
+ displayName: "MessageFeedback__StyledChip",
124
+ componentId: "sc-1i96o75-2"
125
+ })(["display:inline-flex;align-items:center;box-sizing:border-box;margin:0;padding:3px 8px 4px;border:1px solid ", ";border-radius:4px;background-color:", ";cursor:pointer;transition:border-color 120ms ease,background-color 120ms ease;&:hover{border-color:var(--color-primary);}"], function (_ref) {
126
+ var $selected = _ref.$selected;
127
+ return $selected ? "var(--color-primary)" : "var(--color-theme-500)";
128
+ }, function (_ref2) {
129
+ var $selected = _ref2.$selected;
130
+ return $selected ? "var(--color-primary-300)" : "transparent";
131
+ });
132
+ var FeedbackChip = function FeedbackChip(_ref3) {
133
+ var option = _ref3.option,
134
+ selected = _ref3.selected,
135
+ onToggle = _ref3.onToggle;
136
+ return /*#__PURE__*/_react.default.createElement(StyledChip, {
137
+ type: "button",
138
+ $selected: selected,
139
+ "aria-pressed": selected,
140
+ onClick: function onClick() {
141
+ return onToggle(option.id);
142
+ }
143
+ }, /*#__PURE__*/_react.default.createElement(_Typography2.Typography, {
144
+ variant: "Body 2",
145
+ as: "span"
146
+ }, option.label));
147
+ };
148
+ var StyledActions = _styledComponents.default.div.withConfig({
149
+ displayName: "MessageFeedback__StyledActions",
150
+ componentId: "sc-1i96o75-3"
151
+ })(["display:flex;gap:12px;"]);
152
+
153
+ /* ---- the component ------------------------------------------------- */
154
+
155
+ var MessageFeedback = exports.MessageFeedback = function MessageFeedback(_ref4) {
156
+ var _ref4$question = _ref4.question,
157
+ question = _ref4$question === void 0 ? "Was this helpful?" : _ref4$question,
158
+ _ref4$positiveTitle = _ref4.positiveTitle,
159
+ positiveTitle = _ref4$positiveTitle === void 0 ? "What was good?" : _ref4$positiveTitle,
160
+ _ref4$negativeTitle = _ref4.negativeTitle,
161
+ negativeTitle = _ref4$negativeTitle === void 0 ? "What went wrong?" : _ref4$negativeTitle,
162
+ _ref4$positiveOptions = _ref4.positiveOptions,
163
+ positiveOptions = _ref4$positiveOptions === void 0 ? POSITIVE_FEEDBACK_OPTIONS : _ref4$positiveOptions,
164
+ _ref4$negativeOptions = _ref4.negativeOptions,
165
+ negativeOptions = _ref4$negativeOptions === void 0 ? NEGATIVE_FEEDBACK_OPTIONS : _ref4$negativeOptions,
166
+ onVote = _ref4.onVote,
167
+ onSubmit = _ref4.onSubmit;
168
+ var _useState = (0, _react.useState)(null),
169
+ _useState2 = _slicedToArray(_useState, 2),
170
+ sentiment = _useState2[0],
171
+ setSentiment = _useState2[1];
172
+ var _useState3 = (0, _react.useState)("closed"),
173
+ _useState4 = _slicedToArray(_useState3, 2),
174
+ stage = _useState4[0],
175
+ setStage = _useState4[1];
176
+ var _useState5 = (0, _react.useState)([]),
177
+ _useState6 = _slicedToArray(_useState5, 2),
178
+ selected = _useState6[0],
179
+ setSelected = _useState6[1];
180
+ var _useState7 = (0, _react.useState)(""),
181
+ _useState8 = _slicedToArray(_useState7, 2),
182
+ comment = _useState8[0],
183
+ setComment = _useState8[1];
184
+ var _useState9 = (0, _react.useState)(false),
185
+ _useState0 = _slicedToArray(_useState9, 2),
186
+ done = _useState0[0],
187
+ setDone = _useState0[1];
188
+ var vote = (0, _react.useCallback)(function (value) {
189
+ setSentiment(value);
190
+ setSelected([]);
191
+ setComment("");
192
+ onVote === null || onVote === void 0 || onVote(value);
193
+ setStage("details");
194
+ }, [onVote]);
195
+ var toggleOption = (0, _react.useCallback)(function (id) {
196
+ setSelected(function (current) {
197
+ return current.includes(id) ? current.filter(function (one) {
198
+ return one !== id;
199
+ }) : [...current, id];
200
+ });
201
+ }, []);
202
+ var submit = (0, _react.useCallback)(function () {
203
+ if (sentiment) {
204
+ onSubmit === null || onSubmit === void 0 || onSubmit({
205
+ sentiment,
206
+ options: selected,
207
+ comment: comment.trim()
208
+ });
209
+ }
210
+ setStage("closed");
211
+ setDone(true);
212
+ }, [sentiment, selected, comment, onSubmit]);
213
+
214
+ /* Cancel keeps the vote (already sent on the thumb press) and closes. */
215
+ var finish = (0, _react.useCallback)(function () {
216
+ setStage("closed");
217
+ setDone(true);
218
+ }, []);
219
+ var isPositive = sentiment === "up";
220
+ var options = isPositive ? positiveOptions : negativeOptions;
221
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(StyledPrompt, null, done ? /*#__PURE__*/_react.default.createElement(_Typography.Body2, {
222
+ color: "secondary"
223
+ }, "Thank you for the feedback!") : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Typography.Body2, {
224
+ color: "secondary",
225
+ className: "fb-question"
226
+ }, question), /*#__PURE__*/_react.default.createElement(_Tooltip.Tooltip, {
227
+ title: "Yes, helpful"
228
+ }, /*#__PURE__*/_react.default.createElement(_IconButton.IconButton, {
229
+ type: "button",
230
+ variant: "text gray",
231
+ className: "fb-btn",
232
+ "aria-label": "Yes, helpful",
233
+ onClick: function onClick() {
234
+ return vote("up");
235
+ }
236
+ }, /*#__PURE__*/_react.default.createElement(_Icons.ThumbUpOutlineIcon, null))), /*#__PURE__*/_react.default.createElement(_Tooltip.Tooltip, {
237
+ title: "No, not helpful"
238
+ }, /*#__PURE__*/_react.default.createElement(_IconButton.IconButton, {
239
+ type: "button",
240
+ variant: "text gray",
241
+ className: "fb-btn fb-down",
242
+ "aria-label": "No, not helpful",
243
+ onClick: function onClick() {
244
+ return vote("down");
245
+ }
246
+ }, /*#__PURE__*/_react.default.createElement(_Icons.ThumbUpOutlineIcon, null))))), /*#__PURE__*/_react.default.createElement(_Dialog.Dialog, {
247
+ open: stage !== "closed",
248
+ onClose: finish,
249
+ enableBackgroundClick: true
250
+ }, stage === "details" ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Dialog.Dialog.Title, null, isPositive ? positiveTitle : negativeTitle), /*#__PURE__*/_react.default.createElement(_Dialog.Dialog.ContentDivider, null), /*#__PURE__*/_react.default.createElement(_Dialog.Dialog.Content, null, /*#__PURE__*/_react.default.createElement(StyledForm, null, /*#__PURE__*/_react.default.createElement("div", {
251
+ className: "fb-field"
252
+ }, /*#__PURE__*/_react.default.createElement(_Label.Label, null, "Select all that apply"), /*#__PURE__*/_react.default.createElement("div", {
253
+ className: "fb-chips"
254
+ }, options.map(function (option) {
255
+ return /*#__PURE__*/_react.default.createElement(FeedbackChip, {
256
+ key: option.id,
257
+ option: option,
258
+ selected: selected.includes(option.id),
259
+ onToggle: toggleOption
260
+ });
261
+ }))), /*#__PURE__*/_react.default.createElement("div", {
262
+ className: "fb-field"
263
+ }, /*#__PURE__*/_react.default.createElement(_Label.Label, {
264
+ htmlFor: "fb-comment"
265
+ }, "Tell us more (optional)"), /*#__PURE__*/_react.default.createElement(_Textarea.Textarea, {
266
+ id: "fb-comment",
267
+ value: comment,
268
+ placeholder: isPositive ? "What made this useful?" : "What would have helped?",
269
+ onChange: function onChange(event) {
270
+ return setComment(event.target.value);
271
+ }
272
+ })))), /*#__PURE__*/_react.default.createElement(_Dialog.Dialog.ContentDivider, null), /*#__PURE__*/_react.default.createElement(_Dialog.Dialog.Actions, null, /*#__PURE__*/_react.default.createElement(StyledActions, null, /*#__PURE__*/_react.default.createElement(_Button.Button, {
273
+ variant: "primary",
274
+ size: "small",
275
+ type: "button",
276
+ onClick: submit
277
+ }, "Submit"), /*#__PURE__*/_react.default.createElement(_Button.Button, {
278
+ variant: "secondary",
279
+ size: "small",
280
+ type: "button",
281
+ onClick: finish
282
+ }, "Cancel")))) : null));
283
+ };
284
+ //# sourceMappingURL=MessageFeedback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageFeedback.js","names":["_react","_interopRequireWildcard","require","_styledComponents","_interopRequireDefault","_BreakPoints","_Button","_Dialog","_IconButton","_Icons","_Label","_Textarea","_Tooltip","_Typography","_Typography2","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","a","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","length","l","Symbol","iterator","u","next","done","push","value","return","isArray","POSITIVE_FEEDBACK_OPTIONS","exports","id","label","NEGATIVE_FEEDBACK_OPTIONS","StyledPrompt","styled","div","withConfig","displayName","componentId","screenBelow","sm","StyledForm","StyledChip","button","_ref","$selected","_ref2","FeedbackChip","_ref3","option","selected","onToggle","createElement","type","onClick","Typography","variant","as","StyledActions","MessageFeedback","_ref4","_ref4$question","question","_ref4$positiveTitle","positiveTitle","_ref4$negativeTitle","negativeTitle","_ref4$positiveOptions","positiveOptions","_ref4$negativeOptions","negativeOptions","onVote","onSubmit","_useState","useState","_useState2","sentiment","setSentiment","_useState3","_useState4","stage","setStage","_useState5","_useState6","setSelected","_useState7","_useState8","comment","setComment","_useState9","_useState0","setDone","vote","useCallback","toggleOption","current","includes","filter","one","submit","options","trim","finish","isPositive","Fragment","Body2","color","className","Tooltip","title","IconButton","ThumbUpOutlineIcon","Dialog","open","onClose","enableBackgroundClick","Title","ContentDivider","Content","Label","map","key","htmlFor","Textarea","placeholder","onChange","event","target","Actions","Button","size"],"sources":["../../../../src/presentation/shared/MessageFeedback.tsx"],"sourcesContent":["import React, { ReactElement, ReactNode, useCallback, useState } from \"react\";\n\nimport styled from \"styled-components\";\n\nimport { screenBelow } from \"../../components/BreakPoints\";\nimport { Button } from \"../../components/Button\";\nimport { Dialog } from \"../../components/Dialog\";\nimport { IconButton } from \"../../components/IconButton\";\nimport { ThumbUpOutlineIcon } from \"../../components/Icons\";\nimport { Label } from \"../../components/Label\";\nimport { Textarea } from \"../../components/Textarea\";\nimport { Tooltip } from \"../../components/Tooltip\";\nimport { Body2 } from \"../../components/Typography\";\nimport { Typography } from \"../../components/Typography/Typography\";\n\n/**\n * MessageFeedback — the reusable \"Was this helpful?\" flow, as a Presentation\n * mock.\n *\n * It is built only from design-system parts and owns the whole flow, so any\n * content surface (the message dialog, a help article, a settings panel) can\n * drop it in and get the same behaviour:\n *\n * 1. Prompt — an inline \"Was this helpful?\" row with a thumb up / down.\n * 2. Details — a centred dialog: option chips for the chosen sentiment,\n * plus an optional free-text comment. Submit or Cancel.\n * 3. Thank you — a short confirmation, then the prompt shows a quiet\n * \"Thanks for your feedback!\".\n *\n * The vote is recorded the moment a thumb is pressed (`onVote`), so a user who\n * cancels the details step still leaves a valid vote — the same contract the\n * trial Feedback flow uses. The details are reported on Submit (`onSubmit`).\n *\n * In the product this lives in application code; the presentation ships this\n * demo copy so the stories need no app imports.\n */\n\n/* ---- public types & default option catalogs ------------------------ */\n\nexport type FeedbackSentiment = \"up\" | \"down\";\n\nexport interface FeedbackOption {\n /** Stable id sent with the feedback record; not shown to the user. */\n id: string;\n /** The chip label the user sees. */\n label: string;\n}\n\nexport interface MessageFeedbackResult {\n sentiment: FeedbackSentiment;\n /** The ids of the chosen option chips. */\n options: string[];\n /** The free-text comment, trimmed; \"\" when left blank. */\n comment: string;\n}\n\n/* The options rate the one piece of content, not the whole product. Each\n negative option maps to an action a writer can take. Override per surface\n through the component props. */\nexport const POSITIVE_FEEDBACK_OPTIONS: FeedbackOption[] = [\n { id: \"clear\", label: \"Clear and easy to understand\" },\n { id: \"answered\", label: \"Answered my question\" },\n { id: \"right-detail\", label: \"Right amount of detail\" },\n { id: \"helped-use\", label: \"Helped me use the feature\" },\n { id: \"good-examples\", label: \"Good examples or screenshots\" },\n { id: \"other\", label: \"Other\" },\n];\n\nexport const NEGATIVE_FEEDBACK_OPTIONS: FeedbackOption[] = [\n { id: \"not-answered\", label: \"Did not answer my question\" },\n { id: \"confusing\", label: \"Confusing or hard to follow\" },\n { id: \"too-long\", label: \"Too long\" },\n { id: \"not-enough-detail\", label: \"Not enough detail\" },\n { id: \"out-of-date\", label: \"Out of date or incorrect\" },\n { id: \"wrong-plan-role\", label: \"Wrong for my plan or role\" },\n { id: \"not-found\", label: \"I could not find what I needed\" },\n { id: \"broken\", label: \"Something is broken\" },\n { id: \"other\", label: \"Other\" },\n];\n\n/* ---- the inline prompt row ----------------------------------------- */\n\n/* Down-vote reuses the up icon, rotated (the DS set only ships\n ThumbUpOutlineIcon). */\nconst StyledPrompt = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 8px 24px 28px;\n\n ${screenBelow.sm} {\n padding: 4px 24px 24px;\n }\n\n .fb-question {\n margin-right: 4px;\n }\n\n .fb-btn svg {\n width: 18px;\n height: 18px;\n }\n\n .fb-down svg {\n transform: rotate(180deg);\n }\n`;\n\n/* ---- the details dialog -------------------------------------------- */\n\nconst StyledForm = styled.div`\n display: flex;\n flex-direction: column;\n gap: 20px;\n\n .fb-field {\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n\n .fb-chips {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n }\n\n /* DS Textarea is a fixed 360px; let it fill the dialog width instead. */\n .c-textarea {\n width: 100%;\n box-sizing: border-box;\n }\n`;\n\n/* The option chip — a pill that toggles to the theme primary tint when\n selected. Translated from the trial Feedback chip into styled-components\n (runtime tw- classes do not work in the presentation storybook). The label\n text is a DS Body2 so it carries the correct font. */\nconst StyledChip = styled.button<{ $selected: boolean }>`\n display: inline-flex;\n align-items: center;\n box-sizing: border-box;\n margin: 0;\n padding: 3px 8px 4px;\n border: 1px solid\n ${({ $selected }) =>\n $selected ? \"var(--color-primary)\" : \"var(--color-theme-500)\"};\n border-radius: 4px;\n background-color: ${({ $selected }) =>\n $selected ? \"var(--color-primary-300)\" : \"transparent\"};\n cursor: pointer;\n transition: border-color 120ms ease, background-color 120ms ease;\n\n &:hover {\n border-color: var(--color-primary);\n }\n`;\n\nconst FeedbackChip = ({\n option,\n selected,\n onToggle,\n}: {\n option: FeedbackOption;\n selected: boolean;\n onToggle: (id: string) => void;\n}): ReactElement => (\n <StyledChip\n type=\"button\"\n $selected={selected}\n aria-pressed={selected}\n onClick={() => onToggle(option.id)}\n >\n <Typography variant=\"Body 2\" as=\"span\">\n {option.label}\n </Typography>\n </StyledChip>\n);\n\nconst StyledActions = styled.div`\n display: flex;\n gap: 12px;\n`;\n\n/* ---- the component ------------------------------------------------- */\n\ntype DialogStage = \"closed\" | \"details\";\n\nexport interface MessageFeedbackProps {\n /** The inline prompt copy. */\n question?: ReactNode;\n /** Details-dialog title for a thumb up / down. */\n positiveTitle?: string;\n negativeTitle?: string;\n /** Option catalogs; default to the content-feedback sets above. */\n positiveOptions?: FeedbackOption[];\n negativeOptions?: FeedbackOption[];\n /** Fired the moment a thumb is pressed (the vote itself). */\n onVote?: (sentiment: FeedbackSentiment) => void;\n /** Fired on Submit, with the chosen options and comment. */\n onSubmit?: (result: MessageFeedbackResult) => void;\n}\n\nexport const MessageFeedback = ({\n question = \"Was this helpful?\",\n positiveTitle = \"What was good?\",\n negativeTitle = \"What went wrong?\",\n positiveOptions = POSITIVE_FEEDBACK_OPTIONS,\n negativeOptions = NEGATIVE_FEEDBACK_OPTIONS,\n onVote,\n onSubmit,\n}: MessageFeedbackProps): ReactElement => {\n const [sentiment, setSentiment] = useState<FeedbackSentiment | null>(null);\n const [stage, setStage] = useState<DialogStage>(\"closed\");\n const [selected, setSelected] = useState<string[]>([]);\n const [comment, setComment] = useState(\"\");\n const [done, setDone] = useState(false);\n\n const vote = useCallback(\n (value: FeedbackSentiment) => {\n setSentiment(value);\n setSelected([]);\n setComment(\"\");\n onVote?.(value);\n setStage(\"details\");\n },\n [onVote]\n );\n\n const toggleOption = useCallback((id: string) => {\n setSelected((current) =>\n current.includes(id)\n ? current.filter((one) => one !== id)\n : [...current, id]\n );\n }, []);\n\n const submit = useCallback(() => {\n if (sentiment) {\n onSubmit?.({ sentiment, options: selected, comment: comment.trim() });\n }\n setStage(\"closed\");\n setDone(true);\n }, [sentiment, selected, comment, onSubmit]);\n\n /* Cancel keeps the vote (already sent on the thumb press) and closes. */\n const finish = useCallback(() => {\n setStage(\"closed\");\n setDone(true);\n }, []);\n\n const isPositive = sentiment === \"up\";\n const options = isPositive ? positiveOptions : negativeOptions;\n\n return (\n <>\n <StyledPrompt>\n {done ? (\n <Body2 color=\"secondary\">Thank you for the feedback!</Body2>\n ) : (\n <>\n <Body2 color=\"secondary\" className=\"fb-question\">\n {question}\n </Body2>\n <Tooltip title=\"Yes, helpful\">\n <IconButton\n type=\"button\"\n variant=\"text gray\"\n className=\"fb-btn\"\n aria-label=\"Yes, helpful\"\n onClick={() => vote(\"up\")}\n >\n <ThumbUpOutlineIcon />\n </IconButton>\n </Tooltip>\n <Tooltip title=\"No, not helpful\">\n <IconButton\n type=\"button\"\n variant=\"text gray\"\n className=\"fb-btn fb-down\"\n aria-label=\"No, not helpful\"\n onClick={() => vote(\"down\")}\n >\n <ThumbUpOutlineIcon />\n </IconButton>\n </Tooltip>\n </>\n )}\n </StyledPrompt>\n\n <Dialog open={stage !== \"closed\"} onClose={finish} enableBackgroundClick>\n {stage === \"details\" ? (\n <>\n <Dialog.Title>\n {isPositive ? positiveTitle : negativeTitle}\n </Dialog.Title>\n <Dialog.ContentDivider />\n <Dialog.Content>\n <StyledForm>\n <div className=\"fb-field\">\n <Label>Select all that apply</Label>\n <div className=\"fb-chips\">\n {options.map((option) => (\n <FeedbackChip\n key={option.id}\n option={option}\n selected={selected.includes(option.id)}\n onToggle={toggleOption}\n />\n ))}\n </div>\n </div>\n <div className=\"fb-field\">\n <Label htmlFor=\"fb-comment\">Tell us more (optional)</Label>\n <Textarea\n id=\"fb-comment\"\n value={comment}\n placeholder={\n isPositive\n ? \"What made this useful?\"\n : \"What would have helped?\"\n }\n onChange={(event) => setComment(event.target.value)}\n />\n </div>\n </StyledForm>\n </Dialog.Content>\n <Dialog.ContentDivider />\n <Dialog.Actions>\n <StyledActions>\n <Button\n variant=\"primary\"\n size=\"small\"\n type=\"button\"\n onClick={submit}\n >\n Submit\n </Button>\n <Button\n variant=\"secondary\"\n size=\"small\"\n type=\"button\"\n onClick={finish}\n >\n Cancel\n </Button>\n </StyledActions>\n </Dialog.Actions>\n </>\n ) : null}\n </Dialog>\n </>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -15,6 +15,9 @@ var _exportNames = {
15
15
  MessageDialog: true,
16
16
  DocLinkContext: true,
17
17
  messageComponents: true,
18
+ MessageFeedback: true,
19
+ POSITIVE_FEEDBACK_OPTIONS: true,
20
+ NEGATIVE_FEEDBACK_OPTIONS: true,
18
21
  HelpAndSupportMenu: true,
19
22
  LinkingCommandsButton: true,
20
23
  LinkBranchOrPullRequestDialog: true,
@@ -156,6 +159,24 @@ Object.defineProperty(exports, "MessageDialog", {
156
159
  return _MessageDialog.MessageDialog;
157
160
  }
158
161
  });
162
+ Object.defineProperty(exports, "MessageFeedback", {
163
+ enumerable: true,
164
+ get: function get() {
165
+ return _MessageFeedback.MessageFeedback;
166
+ }
167
+ });
168
+ Object.defineProperty(exports, "NEGATIVE_FEEDBACK_OPTIONS", {
169
+ enumerable: true,
170
+ get: function get() {
171
+ return _MessageFeedback.NEGATIVE_FEEDBACK_OPTIONS;
172
+ }
173
+ });
174
+ Object.defineProperty(exports, "POSITIVE_FEEDBACK_OPTIONS", {
175
+ enumerable: true,
176
+ get: function get() {
177
+ return _MessageFeedback.POSITIVE_FEEDBACK_OPTIONS;
178
+ }
179
+ });
159
180
  Object.defineProperty(exports, "PROJECT_REPOSITORIES", {
160
181
  enumerable: true,
161
182
  get: function get() {
@@ -324,6 +345,7 @@ var _PresentationShell = require("./PresentationShell");
324
345
  var _headers = require("./headers");
325
346
  var _FloatingControls = require("./FloatingControls");
326
347
  var _MessageDialog = require("./MessageDialog");
348
+ var _MessageFeedback = require("./MessageFeedback");
327
349
  var _HelpAndSupportMenu = require("./HelpAndSupportMenu");
328
350
  var _LinkingCommandsButton = require("./LinkingCommandsButton");
329
351
  var _LinkBranchOrPullRequestDialog = require("./LinkBranchOrPullRequestDialog");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_tokens","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_MainLogo","_RoundAvatar","_PresentationShell","_headers","_FloatingControls","_MessageDialog","_HelpAndSupportMenu","_LinkingCommandsButton","_LinkBranchOrPullRequestDialog","_ConnectRepositoryDialog","_WebhookLogsDialog","_SourceCodeSection","_SuggestSubtasksButton","_TaskOptionsMenu","_UserMenu","_TwoFactorShield","_TwoFactorDialogs","_settings","_FeatureAvailability"],"sources":["../../../../src/presentation/shared/index.ts"],"sourcesContent":["/**\n * Shared building blocks for the Presentation mock-ups (`Presentation/*`\n * stories). The application shell, page headers, tab bar and small widgets are\n * defined once here and reused by the List view, Column view, Task sheet and\n * empty-page stories so the chrome stays identical and in one place.\n */\nexport * from \"./tokens\";\nexport { MainLogo } from \"./MainLogo\";\nexport { RoundAvatar } from \"./RoundAvatar\";\nexport { PresentationShell, StyledPagePaper } from \"./PresentationShell\";\nexport type { PresentationShellProps } from \"./PresentationShell\";\nexport { PageHeader, ProjectPageHeader, TabHeader } from \"./headers\";\nexport type {\n PageHeaderProps,\n ProjectPageHeaderProps,\n TabHeaderProps,\n} from \"./headers\";\nexport { FloatingControls } from \"./FloatingControls\";\nexport {\n MessageDialog,\n DocLinkContext,\n messageComponents,\n} from \"./MessageDialog\";\nexport type {\n MessageDialogProps,\n MessageDialogSize,\n OpenArticleHandler,\n} from \"./MessageDialog\";\nexport { HelpAndSupportMenu } from \"./HelpAndSupportMenu\";\nexport type { HelpAndSupportMenuProps } from \"./HelpAndSupportMenu\";\nexport { LinkingCommandsButton } from \"./LinkingCommandsButton\";\nexport { LinkBranchOrPullRequestDialog } from \"./LinkBranchOrPullRequestDialog\";\nexport type { LinkBranchOrPullRequestDialogProps } from \"./LinkBranchOrPullRequestDialog\";\nexport {\n ConnectRepositoryDialog,\n RepositorySelect,\n buildRepoOptions,\n CONNECTIONS,\n PROJECT_REPOSITORIES,\n CONNECTABLE_REPOSITORIES,\n} from \"./ConnectRepositoryDialog\";\nexport type {\n ConnectRepositoryDialogProps,\n RepositorySelectProps,\n Connection,\n ConnectionService,\n Repository,\n} from \"./ConnectRepositoryDialog\";\nexport {\n WebhookLogsDialog,\n WEBHOOK_CONNECTIONS,\n WEBHOOK_REPOSITORIES,\n} from \"./WebhookLogsDialog\";\nexport type {\n WebhookLogsDialogProps,\n WebhookConnection,\n WebhookRepository,\n WebhookLog,\n} from \"./WebhookLogsDialog\";\nexport {\n SourceCodeSection,\n IssueRow,\n CodeRow,\n Spine,\n HistoryDialog,\n CompletedHeader,\n} from \"./SourceCodeSection\";\nexport type {\n IssueEntry,\n CodeEntry,\n Stage,\n HistoryEvent,\n StageState,\n CodeStatus,\n SectionVariant,\n} from \"./SourceCodeSection\";\nexport { SuggestSubtasksButton } from \"./SuggestSubtasksButton\";\nexport { TaskOptionsMenu, TaskListOptionsMenu } from \"./TaskOptionsMenu\";\nexport type {\n TaskOptionsMenuProps,\n TaskListOptionsMenuProps,\n} from \"./TaskOptionsMenu\";\nexport { UserMenu } from \"./UserMenu\";\nexport type { UserMenuProps, UserMenuVariant } from \"./UserMenu\";\nexport { TwoFactorShield } from \"./TwoFactorShield\";\nexport type { TwoFactorShieldProps } from \"./TwoFactorShield\";\nexport { BackupCodesDialogs, CreateLoginCodeDialogs } from \"./TwoFactorDialogs\";\nexport type {\n BackupCodesDialogsProps,\n CreateLoginCodeDialogsProps,\n} from \"./TwoFactorDialogs\";\nexport {\n SettingsHeader,\n SettingsContent,\n StyledSettingRow,\n RowText,\n SettingRow,\n} from \"./settings\";\nexport type { SettingsHeaderProps, SettingRowProps } from \"./settings\";\nexport {\n FeatureAvailability,\n DEFAULT_FEATURE_AVAILABILITY,\n} from \"./FeatureAvailability\";\nexport type {\n FeatureAvailabilityProps,\n AvailabilityRow,\n AvailabilityMark,\n AvailabilityStatus,\n} from \"./FeatureAvailability\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,IAAAA,OAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,OAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAL,OAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAb,OAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,SAAA,GAAAb,OAAA;AACA,IAAAc,YAAA,GAAAd,OAAA;AACA,IAAAe,kBAAA,GAAAf,OAAA;AAEA,IAAAgB,QAAA,GAAAhB,OAAA;AAMA,IAAAiB,iBAAA,GAAAjB,OAAA;AACA,IAAAkB,cAAA,GAAAlB,OAAA;AAUA,IAAAmB,mBAAA,GAAAnB,OAAA;AAEA,IAAAoB,sBAAA,GAAApB,OAAA;AACA,IAAAqB,8BAAA,GAAArB,OAAA;AAEA,IAAAsB,wBAAA,GAAAtB,OAAA;AAeA,IAAAuB,kBAAA,GAAAvB,OAAA;AAWA,IAAAwB,kBAAA,GAAAxB,OAAA;AAiBA,IAAAyB,sBAAA,GAAAzB,OAAA;AACA,IAAA0B,gBAAA,GAAA1B,OAAA;AAKA,IAAA2B,SAAA,GAAA3B,OAAA;AAEA,IAAA4B,gBAAA,GAAA5B,OAAA;AAEA,IAAA6B,iBAAA,GAAA7B,OAAA;AAKA,IAAA8B,SAAA,GAAA9B,OAAA;AAQA,IAAA+B,oBAAA,GAAA/B,OAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_tokens","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_MainLogo","_RoundAvatar","_PresentationShell","_headers","_FloatingControls","_MessageDialog","_MessageFeedback","_HelpAndSupportMenu","_LinkingCommandsButton","_LinkBranchOrPullRequestDialog","_ConnectRepositoryDialog","_WebhookLogsDialog","_SourceCodeSection","_SuggestSubtasksButton","_TaskOptionsMenu","_UserMenu","_TwoFactorShield","_TwoFactorDialogs","_settings","_FeatureAvailability"],"sources":["../../../../src/presentation/shared/index.ts"],"sourcesContent":["/**\n * Shared building blocks for the Presentation mock-ups (`Presentation/*`\n * stories). The application shell, page headers, tab bar and small widgets are\n * defined once here and reused by the List view, Column view, Task sheet and\n * empty-page stories so the chrome stays identical and in one place.\n */\nexport * from \"./tokens\";\nexport { MainLogo } from \"./MainLogo\";\nexport { RoundAvatar } from \"./RoundAvatar\";\nexport { PresentationShell, StyledPagePaper } from \"./PresentationShell\";\nexport type { PresentationShellProps } from \"./PresentationShell\";\nexport { PageHeader, ProjectPageHeader, TabHeader } from \"./headers\";\nexport type {\n PageHeaderProps,\n ProjectPageHeaderProps,\n TabHeaderProps,\n} from \"./headers\";\nexport { FloatingControls } from \"./FloatingControls\";\nexport {\n MessageDialog,\n DocLinkContext,\n messageComponents,\n} from \"./MessageDialog\";\nexport type {\n MessageDialogProps,\n MessageDialogSize,\n OpenArticleHandler,\n} from \"./MessageDialog\";\nexport {\n MessageFeedback,\n POSITIVE_FEEDBACK_OPTIONS,\n NEGATIVE_FEEDBACK_OPTIONS,\n} from \"./MessageFeedback\";\nexport type {\n MessageFeedbackProps,\n MessageFeedbackResult,\n FeedbackOption,\n FeedbackSentiment,\n} from \"./MessageFeedback\";\nexport { HelpAndSupportMenu } from \"./HelpAndSupportMenu\";\nexport type { HelpAndSupportMenuProps } from \"./HelpAndSupportMenu\";\nexport { LinkingCommandsButton } from \"./LinkingCommandsButton\";\nexport { LinkBranchOrPullRequestDialog } from \"./LinkBranchOrPullRequestDialog\";\nexport type { LinkBranchOrPullRequestDialogProps } from \"./LinkBranchOrPullRequestDialog\";\nexport {\n ConnectRepositoryDialog,\n RepositorySelect,\n buildRepoOptions,\n CONNECTIONS,\n PROJECT_REPOSITORIES,\n CONNECTABLE_REPOSITORIES,\n} from \"./ConnectRepositoryDialog\";\nexport type {\n ConnectRepositoryDialogProps,\n RepositorySelectProps,\n Connection,\n ConnectionService,\n Repository,\n} from \"./ConnectRepositoryDialog\";\nexport {\n WebhookLogsDialog,\n WEBHOOK_CONNECTIONS,\n WEBHOOK_REPOSITORIES,\n} from \"./WebhookLogsDialog\";\nexport type {\n WebhookLogsDialogProps,\n WebhookConnection,\n WebhookRepository,\n WebhookLog,\n} from \"./WebhookLogsDialog\";\nexport {\n SourceCodeSection,\n IssueRow,\n CodeRow,\n Spine,\n HistoryDialog,\n CompletedHeader,\n} from \"./SourceCodeSection\";\nexport type {\n IssueEntry,\n CodeEntry,\n Stage,\n HistoryEvent,\n StageState,\n CodeStatus,\n SectionVariant,\n} from \"./SourceCodeSection\";\nexport { SuggestSubtasksButton } from \"./SuggestSubtasksButton\";\nexport { TaskOptionsMenu, TaskListOptionsMenu } from \"./TaskOptionsMenu\";\nexport type {\n TaskOptionsMenuProps,\n TaskListOptionsMenuProps,\n} from \"./TaskOptionsMenu\";\nexport { UserMenu } from \"./UserMenu\";\nexport type { UserMenuProps, UserMenuVariant } from \"./UserMenu\";\nexport { TwoFactorShield } from \"./TwoFactorShield\";\nexport type { TwoFactorShieldProps } from \"./TwoFactorShield\";\nexport { BackupCodesDialogs, CreateLoginCodeDialogs } from \"./TwoFactorDialogs\";\nexport type {\n BackupCodesDialogsProps,\n CreateLoginCodeDialogsProps,\n} from \"./TwoFactorDialogs\";\nexport {\n SettingsHeader,\n SettingsContent,\n StyledSettingRow,\n RowText,\n SettingRow,\n} from \"./settings\";\nexport type { SettingsHeaderProps, SettingRowProps } from \"./settings\";\nexport {\n FeatureAvailability,\n DEFAULT_FEATURE_AVAILABILITY,\n} from \"./FeatureAvailability\";\nexport type {\n FeatureAvailabilityProps,\n AvailabilityRow,\n AvailabilityMark,\n AvailabilityStatus,\n} from \"./FeatureAvailability\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,IAAAA,OAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,OAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAL,OAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAb,OAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,SAAA,GAAAb,OAAA;AACA,IAAAc,YAAA,GAAAd,OAAA;AACA,IAAAe,kBAAA,GAAAf,OAAA;AAEA,IAAAgB,QAAA,GAAAhB,OAAA;AAMA,IAAAiB,iBAAA,GAAAjB,OAAA;AACA,IAAAkB,cAAA,GAAAlB,OAAA;AAUA,IAAAmB,gBAAA,GAAAnB,OAAA;AAWA,IAAAoB,mBAAA,GAAApB,OAAA;AAEA,IAAAqB,sBAAA,GAAArB,OAAA;AACA,IAAAsB,8BAAA,GAAAtB,OAAA;AAEA,IAAAuB,wBAAA,GAAAvB,OAAA;AAeA,IAAAwB,kBAAA,GAAAxB,OAAA;AAWA,IAAAyB,kBAAA,GAAAzB,OAAA;AAiBA,IAAA0B,sBAAA,GAAA1B,OAAA;AACA,IAAA2B,gBAAA,GAAA3B,OAAA;AAKA,IAAA4B,SAAA,GAAA5B,OAAA;AAEA,IAAA6B,gBAAA,GAAA7B,OAAA;AAEA,IAAA8B,iBAAA,GAAA9B,OAAA;AAKA,IAAA+B,SAAA,GAAA/B,OAAA;AAQA,IAAAgC,oBAAA,GAAAhC,OAAA","ignoreList":[]}
@@ -77,9 +77,12 @@ const HeadingBlock = _ref5 => {
77
77
  let block = _ref5.block,
78
78
  children = _ref5.children;
79
79
  const _ref6 = block,
80
- level = _ref6.level;
80
+ level = _ref6.level,
81
+ id = _ref6.id;
81
82
  const Heading = titledTextHeadings[headingVariantForLevel(level)];
82
- return /*#__PURE__*/React.createElement(Heading, null, children);
83
+ return /*#__PURE__*/React.createElement(Heading, {
84
+ id: id
85
+ }, children);
83
86
  };
84
87
  export const portableTextDefaultBlockRenderers = {
85
88
  paragraph: _ref7 => {
@@ -1 +1 @@
1
- {"version":3,"file":"renderers.js","names":["React","Fragment","StyledCode","StyledCodeBlock","StyledDivider","StyledLink","StyledList","StyledTableBlock","isPortableTextMediaImageVariant","Media","Table","Tbody","Thead","TitledText","titledTextHeadings","Body1","Typography","portableTextDefaultMarkRenderers","strong","_ref","children","createElement","em","_ref2","code","_ref3","link","_ref4","mark","href","target","rel","HEADING_LEVEL_VARIANTS","DEFAULT_HEADING_LEVEL","headingVariantForLevel","level","undefined","variant","console","warn","HeadingBlock","_ref5","block","_ref6","Heading","portableTextDefaultBlockRenderers","paragraph","_ref7","heading","list","_ref8","ordered","style","as","$ordered","_ref9","media","_ref0","_ref1","src","alt","caption","_ref10","_ref11","title","_ref12","_ref13","language","table","_ref14","renderSpans","_ref15","header","rows","cell","spans","map","span","index","key","text","row","rowIndex","cellIndex","divider"],"sources":["../../../../src/components/PortableText/renderers.tsx"],"sourcesContent":["import React, { Fragment, ReactNode } from \"react\";\n\nimport {\n StyledCode,\n StyledCodeBlock,\n StyledDivider,\n StyledLink,\n StyledList,\n StyledTableBlock,\n} from \"./Styles\";\nimport {\n isPortableTextMediaImageVariant,\n PortableTextBlockRenderer,\n PortableTextCodeBlock,\n PortableTextDefaultBlockType,\n PortableTextDefaultMark,\n PortableTextHeadingBlock,\n PortableTextHeadingLevel,\n PortableTextLinkMark,\n PortableTextListBlock,\n PortableTextMarkRenderer,\n PortableTextMediaBlock,\n PortableTextSpan,\n PortableTextTableBlock,\n PortableTextTitledTextBlock,\n} from \"./types\";\nimport { Media } from \"../Media\";\nimport { Table, Tbody, Thead } from \"../Tables\";\nimport {\n TitledText,\n TitledTextVariant,\n titledTextHeadings,\n} from \"../TitledText\";\nimport { Body1 } from \"../Typography\";\nimport { Typography } from \"../Typography/Typography\";\n\n/**\n * The default renderers for the universal set — everything a client renders\n * without injection, and nothing more: no product element ever lands here.\n * Injected {@link PortableTextComponents} maps take precedence entry by entry.\n */\n\nexport const portableTextDefaultMarkRenderers: Record<\n PortableTextDefaultMark,\n PortableTextMarkRenderer\n> = {\n strong: ({ children }) => <strong>{children}</strong>,\n em: ({ children }) => <em>{children}</em>,\n code: ({ children }) => <StyledCode>{children}</StyledCode>,\n link: ({ mark, children }) => {\n const href = (mark as PortableTextLinkMark | undefined)?.href;\n\n // A link mark without an href (authored as a plain string) has nowhere\n // to go — keep the text, skip the anchor.\n if (!href) {\n return <>{children}</>;\n }\n\n return (\n <StyledLink href={href} target=\"_blank\" rel=\"noopener noreferrer\">\n {children}\n </StyledLink>\n );\n },\n};\n\n/** The semantic wire levels resolve to typography only here, in the renderer. */\nconst HEADING_LEVEL_VARIANTS: Record<\n PortableTextHeadingLevel,\n TitledTextVariant\n> = {\n 1: \"title1\",\n 2: \"title2\",\n 3: \"header2\",\n};\n\n/** The level `heading` and `titled-text` fall back to. */\nconst DEFAULT_HEADING_LEVEL: PortableTextHeadingLevel = 3;\n\n/**\n * Resolve a semantic wire level to its typography variant. An absent level is\n * the documented default; any other unrecognised level is a serializer bug on\n * a fixed 1–3 scale, so it falls back to the default and is logged, per the\n * contract's degradation rule.\n */\nconst headingVariantForLevel = (\n level: PortableTextHeadingLevel | undefined\n): TitledTextVariant => {\n if (level === undefined) {\n return HEADING_LEVEL_VARIANTS[DEFAULT_HEADING_LEVEL];\n }\n\n const variant = HEADING_LEVEL_VARIANTS[level];\n if (!variant) {\n console.warn(\n `PortableText: unknown heading level ${level}, falling back to ${DEFAULT_HEADING_LEVEL}.`\n );\n return HEADING_LEVEL_VARIANTS[DEFAULT_HEADING_LEVEL];\n }\n\n return variant;\n};\n\n/** Heading levels map to the same typography TitledText uses. */\nconst HeadingBlock: PortableTextBlockRenderer = ({ block, children }) => {\n const { level } = block as PortableTextHeadingBlock;\n const Heading = titledTextHeadings[headingVariantForLevel(level)];\n return <Heading>{children}</Heading>;\n};\n\nexport const portableTextDefaultBlockRenderers: Record<\n PortableTextDefaultBlockType,\n PortableTextBlockRenderer\n> = {\n paragraph: ({ children }) => <Body1>{children}</Body1>,\n heading: HeadingBlock,\n list: ({ block, children }) => {\n const ordered = (block as PortableTextListBlock).style === \"number\";\n return (\n // `data-portable-list` scopes the depth-marker rules in Styles.ts to\n // design-system lists, and marks the ancestors those rules count.\n <StyledList\n as={ordered ? \"ol\" : \"ul\"}\n $ordered={ordered}\n data-portable-list=\"\"\n >\n {children}\n </StyledList>\n );\n },\n \"list-item\": ({ children }) => (\n <Typography variant=\"Body 1\" as=\"li\">\n {children}\n </Typography>\n ),\n media: ({ block }) => {\n const { src, alt, variant, caption } = block as PortableTextMediaBlock;\n\n // Video (and future) variants carry service semantics, so their renderer\n // is application-catalog territory — an injected `media` override. The\n // universal set covers images only; anything else degrades and warns, per\n // the contract's degradation rule.\n if (variant !== undefined && !isPortableTextMediaImageVariant(variant)) {\n console.warn(\n `PortableText: no default renderer for media variant \"${variant}\".`\n );\n return null;\n }\n\n return <Media src={src} alt={alt} variant={variant} caption={caption} />;\n },\n \"titled-text\": ({ block, children }) => {\n const { title, level } = block as PortableTextTitledTextBlock;\n return (\n <TitledText title={title} variant={headingVariantForLevel(level)}>\n {children}\n </TitledText>\n );\n },\n // No highlighter ships with the default set, so every language — known,\n // unknown or absent — is plain preformatted text; the hint travels on\n // data-language for surfaces that highlight.\n \"code-block\": ({ block }) => {\n const { code, language } = block as PortableTextCodeBlock;\n return (\n <StyledCodeBlock data-language={language || undefined}>\n <code>{code}</code>\n </StyledCodeBlock>\n );\n },\n table: ({ block, renderSpans }) => {\n const { header, rows } = block as PortableTextTableBlock;\n // Standalone (engine-less) use has no span renderer — keep the raw text.\n const cell = (spans: PortableTextSpan[]): ReactNode =>\n renderSpans\n ? renderSpans(spans)\n : spans.map((span, index) => (\n <Fragment key={index}>{span.text}</Fragment>\n ));\n\n return (\n <StyledTableBlock>\n <Table>\n <Thead>\n <tr>\n {header.map((spans, index) => (\n <th key={index}>{cell(spans)}</th>\n ))}\n </tr>\n </Thead>\n <Tbody>\n {rows.map((row, rowIndex) => (\n <tr key={rowIndex}>\n {row.map((spans, cellIndex) => (\n <td key={cellIndex}>{cell(spans)}</td>\n ))}\n </tr>\n ))}\n </Tbody>\n </Table>\n </StyledTableBlock>\n );\n },\n divider: () => <StyledDivider />,\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"renderers.js","names":["React","Fragment","StyledCode","StyledCodeBlock","StyledDivider","StyledLink","StyledList","StyledTableBlock","isPortableTextMediaImageVariant","Media","Table","Tbody","Thead","TitledText","titledTextHeadings","Body1","Typography","portableTextDefaultMarkRenderers","strong","_ref","children","createElement","em","_ref2","code","_ref3","link","_ref4","mark","href","target","rel","HEADING_LEVEL_VARIANTS","DEFAULT_HEADING_LEVEL","headingVariantForLevel","level","undefined","variant","console","warn","HeadingBlock","_ref5","block","_ref6","id","Heading","portableTextDefaultBlockRenderers","paragraph","_ref7","heading","list","_ref8","ordered","style","as","$ordered","_ref9","media","_ref0","_ref1","src","alt","caption","_ref10","_ref11","title","_ref12","_ref13","language","table","_ref14","renderSpans","_ref15","header","rows","cell","spans","map","span","index","key","text","row","rowIndex","cellIndex","divider"],"sources":["../../../../src/components/PortableText/renderers.tsx"],"sourcesContent":["import React, { Fragment, ReactNode } from \"react\";\n\nimport {\n StyledCode,\n StyledCodeBlock,\n StyledDivider,\n StyledLink,\n StyledList,\n StyledTableBlock,\n} from \"./Styles\";\nimport {\n isPortableTextMediaImageVariant,\n PortableTextBlockRenderer,\n PortableTextCodeBlock,\n PortableTextDefaultBlockType,\n PortableTextDefaultMark,\n PortableTextHeadingBlock,\n PortableTextHeadingLevel,\n PortableTextLinkMark,\n PortableTextListBlock,\n PortableTextMarkRenderer,\n PortableTextMediaBlock,\n PortableTextSpan,\n PortableTextTableBlock,\n PortableTextTitledTextBlock,\n} from \"./types\";\nimport { Media } from \"../Media\";\nimport { Table, Tbody, Thead } from \"../Tables\";\nimport {\n TitledText,\n TitledTextVariant,\n titledTextHeadings,\n} from \"../TitledText\";\nimport { Body1 } from \"../Typography\";\nimport { Typography } from \"../Typography/Typography\";\n\n/**\n * The default renderers for the universal set — everything a client renders\n * without injection, and nothing more: no product element ever lands here.\n * Injected {@link PortableTextComponents} maps take precedence entry by entry.\n */\n\nexport const portableTextDefaultMarkRenderers: Record<\n PortableTextDefaultMark,\n PortableTextMarkRenderer\n> = {\n strong: ({ children }) => <strong>{children}</strong>,\n em: ({ children }) => <em>{children}</em>,\n code: ({ children }) => <StyledCode>{children}</StyledCode>,\n link: ({ mark, children }) => {\n const href = (mark as PortableTextLinkMark | undefined)?.href;\n\n // A link mark without an href (authored as a plain string) has nowhere\n // to go — keep the text, skip the anchor.\n if (!href) {\n return <>{children}</>;\n }\n\n return (\n <StyledLink href={href} target=\"_blank\" rel=\"noopener noreferrer\">\n {children}\n </StyledLink>\n );\n },\n};\n\n/** The semantic wire levels resolve to typography only here, in the renderer. */\nconst HEADING_LEVEL_VARIANTS: Record<\n PortableTextHeadingLevel,\n TitledTextVariant\n> = {\n 1: \"title1\",\n 2: \"title2\",\n 3: \"header2\",\n};\n\n/** The level `heading` and `titled-text` fall back to. */\nconst DEFAULT_HEADING_LEVEL: PortableTextHeadingLevel = 3;\n\n/**\n * Resolve a semantic wire level to its typography variant. An absent level is\n * the documented default; any other unrecognised level is a serializer bug on\n * a fixed 1–3 scale, so it falls back to the default and is logged, per the\n * contract's degradation rule.\n */\nconst headingVariantForLevel = (\n level: PortableTextHeadingLevel | undefined\n): TitledTextVariant => {\n if (level === undefined) {\n return HEADING_LEVEL_VARIANTS[DEFAULT_HEADING_LEVEL];\n }\n\n const variant = HEADING_LEVEL_VARIANTS[level];\n if (!variant) {\n console.warn(\n `PortableText: unknown heading level ${level}, falling back to ${DEFAULT_HEADING_LEVEL}.`\n );\n return HEADING_LEVEL_VARIANTS[DEFAULT_HEADING_LEVEL];\n }\n\n return variant;\n};\n\n/** Heading levels map to the same typography TitledText uses. */\nconst HeadingBlock: PortableTextBlockRenderer = ({ block, children }) => {\n const { level, id } = block as PortableTextHeadingBlock;\n const Heading = titledTextHeadings[headingVariantForLevel(level)];\n return <Heading id={id}>{children}</Heading>;\n};\n\nexport const portableTextDefaultBlockRenderers: Record<\n PortableTextDefaultBlockType,\n PortableTextBlockRenderer\n> = {\n paragraph: ({ children }) => <Body1>{children}</Body1>,\n heading: HeadingBlock,\n list: ({ block, children }) => {\n const ordered = (block as PortableTextListBlock).style === \"number\";\n return (\n // `data-portable-list` scopes the depth-marker rules in Styles.ts to\n // design-system lists, and marks the ancestors those rules count.\n <StyledList\n as={ordered ? \"ol\" : \"ul\"}\n $ordered={ordered}\n data-portable-list=\"\"\n >\n {children}\n </StyledList>\n );\n },\n \"list-item\": ({ children }) => (\n <Typography variant=\"Body 1\" as=\"li\">\n {children}\n </Typography>\n ),\n media: ({ block }) => {\n const { src, alt, variant, caption } = block as PortableTextMediaBlock;\n\n // Video (and future) variants carry service semantics, so their renderer\n // is application-catalog territory — an injected `media` override. The\n // universal set covers images only; anything else degrades and warns, per\n // the contract's degradation rule.\n if (variant !== undefined && !isPortableTextMediaImageVariant(variant)) {\n console.warn(\n `PortableText: no default renderer for media variant \"${variant}\".`\n );\n return null;\n }\n\n return <Media src={src} alt={alt} variant={variant} caption={caption} />;\n },\n \"titled-text\": ({ block, children }) => {\n const { title, level } = block as PortableTextTitledTextBlock;\n return (\n <TitledText title={title} variant={headingVariantForLevel(level)}>\n {children}\n </TitledText>\n );\n },\n // No highlighter ships with the default set, so every language — known,\n // unknown or absent — is plain preformatted text; the hint travels on\n // data-language for surfaces that highlight.\n \"code-block\": ({ block }) => {\n const { code, language } = block as PortableTextCodeBlock;\n return (\n <StyledCodeBlock data-language={language || undefined}>\n <code>{code}</code>\n </StyledCodeBlock>\n );\n },\n table: ({ block, renderSpans }) => {\n const { header, rows } = block as PortableTextTableBlock;\n // Standalone (engine-less) use has no span renderer — keep the raw text.\n const cell = (spans: PortableTextSpan[]): ReactNode =>\n renderSpans\n ? renderSpans(spans)\n : spans.map((span, index) => (\n <Fragment key={index}>{span.text}</Fragment>\n ));\n\n return (\n <StyledTableBlock>\n <Table>\n <Thead>\n <tr>\n {header.map((spans, index) => (\n <th key={index}>{cell(spans)}</th>\n ))}\n </tr>\n </Thead>\n <Tbody>\n {rows.map((row, rowIndex) => (\n <tr key={rowIndex}>\n {row.map((spans, cellIndex) => (\n <td key={cellIndex}>{cell(spans)}</td>\n ))}\n </tr>\n ))}\n </Tbody>\n </Table>\n </StyledTableBlock>\n );\n },\n divider: () => <StyledDivider />,\n};\n"],"mappings":"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","ignoreList":[]}
@@ -40,6 +40,12 @@ export type PortableTextHeadingLevel = 1 | 2 | 3;
40
40
  export interface PortableTextHeadingBlock {
41
41
  type: "heading";
42
42
  level: PortableTextHeadingLevel;
43
+ /**
44
+ * Optional anchor id, rendered verbatim as the heading element's `id` so the
45
+ * heading is a scroll target (e.g. subarticle deep-links). Opaque to the
46
+ * renderer — any slug convention lives with whoever produced the block.
47
+ */
48
+ id?: string;
43
49
  children: PortableTextSpan[];
44
50
  }
45
51
  export type PortableTextListStyle = "bullet" | "number";
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/PortableText/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/PortableText/types.ts"],"names":[],"mappings":"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"}
@@ -118,8 +118,9 @@ export const isPortableTextBlock = value => {
118
118
  }
119
119
  switch (value.type) {
120
120
  case "paragraph":
121
- case "heading":
122
121
  return Array.isArray(value.children) && value.children.every(isPortableTextSpan);
122
+ case "heading":
123
+ return (value.id === undefined || typeof value.id === "string") && Array.isArray(value.children) && value.children.every(isPortableTextSpan);
123
124
  case "list-item":
124
125
  // The item's spans, plus optional nested `list` block(s). Widened only
125
126
  // for nested lists: any other block child (a stray paragraph, an object)