@activecollab/components 2.0.415 → 2.0.417
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/PortableText/Styles.js +20 -2
- package/dist/cjs/components/PortableText/Styles.js.map +1 -1
- package/dist/cjs/components/PortableText/renderers.js +15 -6
- package/dist/cjs/components/PortableText/renderers.js.map +1 -1
- package/dist/cjs/components/PortableText/types.js +22 -2
- package/dist/cjs/components/PortableText/types.js.map +1 -1
- package/dist/cjs/components/PortableText/types.test.js +138 -0
- package/dist/cjs/components/PortableText/types.test.js.map +1 -1
- package/dist/cjs/components/TitledText/TitledText.js +5 -1
- package/dist/cjs/components/TitledText/TitledText.js.map +1 -1
- package/dist/cjs/presentation/shared/FeatureAvailability.js +217 -0
- package/dist/cjs/presentation/shared/FeatureAvailability.js.map +1 -0
- package/dist/cjs/presentation/shared/index.js +16 -1
- package/dist/cjs/presentation/shared/index.js.map +1 -1
- package/dist/esm/components/PortableText/Styles.d.ts +19 -1
- package/dist/esm/components/PortableText/Styles.d.ts.map +1 -1
- package/dist/esm/components/PortableText/Styles.js +20 -2
- package/dist/esm/components/PortableText/Styles.js.map +1 -1
- package/dist/esm/components/PortableText/renderers.d.ts.map +1 -1
- package/dist/esm/components/PortableText/renderers.js +15 -6
- package/dist/esm/components/PortableText/renderers.js.map +1 -1
- package/dist/esm/components/PortableText/types.d.ts +12 -1
- package/dist/esm/components/PortableText/types.d.ts.map +1 -1
- package/dist/esm/components/PortableText/types.js +18 -2
- package/dist/esm/components/PortableText/types.js.map +1 -1
- package/dist/esm/components/PortableText/types.test.js +138 -0
- package/dist/esm/components/PortableText/types.test.js.map +1 -1
- package/dist/esm/components/TitledText/TitledText.d.ts +7 -3
- package/dist/esm/components/TitledText/TitledText.d.ts.map +1 -1
- package/dist/esm/components/TitledText/TitledText.js +5 -1
- package/dist/esm/components/TitledText/TitledText.js.map +1 -1
- package/dist/esm/presentation/shared/FeatureAvailability.d.ts +52 -0
- package/dist/esm/presentation/shared/FeatureAvailability.d.ts.map +1 -0
- package/dist/esm/presentation/shared/FeatureAvailability.js +203 -0
- package/dist/esm/presentation/shared/FeatureAvailability.js.map +1 -0
- package/dist/esm/presentation/shared/index.d.ts +2 -0
- package/dist/esm/presentation/shared/index.d.ts.map +1 -1
- package/dist/esm/presentation/shared/index.js +1 -0
- package/dist/esm/presentation/shared/index.js.map +1 -1
- package/dist/index.js +62 -11
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import styled from "styled-components";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* FeatureAvailability — a compact, data-driven block that states where a
|
|
6
|
+
* feature is available: on which hosting, on which plans and to which roles.
|
|
7
|
+
*
|
|
8
|
+
* It is the reusable version of the availability panel used in the Help Docs
|
|
9
|
+
* example articles, extracted so several stories (and, later, the real
|
|
10
|
+
* PortableText renderer) can share one implementation and one visual language:
|
|
11
|
+
*
|
|
12
|
+
* • green check → available
|
|
13
|
+
* • analog clock → decided but not shipped yet ("to be determined")
|
|
14
|
+
* • strikethrough → not included
|
|
15
|
+
*
|
|
16
|
+
* The component is theme-agnostic (all colors come from `--color-*` tokens) and
|
|
17
|
+
* self-contained (it carries its own typography, so it renders correctly
|
|
18
|
+
* outside the article body as well).
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
/* ------------------------------------------------------------------ */
|
|
22
|
+
/* Marks */
|
|
23
|
+
/* ------------------------------------------------------------------ */
|
|
24
|
+
|
|
25
|
+
const CheckMark = () => /*#__PURE__*/React.createElement("svg", {
|
|
26
|
+
className: "ap-ic ap-yes",
|
|
27
|
+
viewBox: "0 0 16 16",
|
|
28
|
+
width: "15",
|
|
29
|
+
height: "15",
|
|
30
|
+
"aria-hidden": true
|
|
31
|
+
}, /*#__PURE__*/React.createElement("path", {
|
|
32
|
+
d: "M13 4.6 L6.5 11.4 L3 8",
|
|
33
|
+
fill: "none",
|
|
34
|
+
stroke: "currentColor",
|
|
35
|
+
strokeWidth: "2",
|
|
36
|
+
strokeLinecap: "round",
|
|
37
|
+
strokeLinejoin: "round"
|
|
38
|
+
}));
|
|
39
|
+
const ClockMark = () => /*#__PURE__*/React.createElement("svg", {
|
|
40
|
+
className: "ap-ic ap-clock",
|
|
41
|
+
viewBox: "0 0 16 16",
|
|
42
|
+
width: "14",
|
|
43
|
+
height: "14",
|
|
44
|
+
"aria-hidden": true
|
|
45
|
+
}, /*#__PURE__*/React.createElement("circle", {
|
|
46
|
+
cx: "8",
|
|
47
|
+
cy: "8",
|
|
48
|
+
r: "6.2",
|
|
49
|
+
fill: "none",
|
|
50
|
+
stroke: "currentColor",
|
|
51
|
+
strokeWidth: "1.4"
|
|
52
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
53
|
+
d: "M8 8 L8 4.4 M8 8 L10.5 9.3",
|
|
54
|
+
fill: "none",
|
|
55
|
+
stroke: "currentColor",
|
|
56
|
+
strokeWidth: "1.4",
|
|
57
|
+
strokeLinecap: "round"
|
|
58
|
+
}));
|
|
59
|
+
const StatusIcon = _ref => {
|
|
60
|
+
let status = _ref.status;
|
|
61
|
+
if (status === "available") {
|
|
62
|
+
return /*#__PURE__*/React.createElement(CheckMark, null);
|
|
63
|
+
}
|
|
64
|
+
if (status === "pending") {
|
|
65
|
+
return /*#__PURE__*/React.createElement(ClockMark, null);
|
|
66
|
+
}
|
|
67
|
+
return null;
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
/** A nested mark inside parentheses, e.g. "PM ✓". */
|
|
71
|
+
const ChildMark = _ref2 => {
|
|
72
|
+
let mark = _ref2.mark;
|
|
73
|
+
return mark.status === "excluded" ? /*#__PURE__*/React.createElement("span", {
|
|
74
|
+
className: "ap-excluded"
|
|
75
|
+
}, mark.label) : /*#__PURE__*/React.createElement(React.Fragment, null, mark.label, " ", /*#__PURE__*/React.createElement(StatusIcon, {
|
|
76
|
+
status: mark.status
|
|
77
|
+
}));
|
|
78
|
+
};
|
|
79
|
+
const Mark = _ref3 => {
|
|
80
|
+
var _mark$children;
|
|
81
|
+
let mark = _ref3.mark,
|
|
82
|
+
iconPosition = _ref3.iconPosition;
|
|
83
|
+
const hasChildren = Boolean(mark.children && mark.children.length > 0);
|
|
84
|
+
const excluded = mark.status === "excluded";
|
|
85
|
+
const icon = hasChildren ? null : /*#__PURE__*/React.createElement(StatusIcon, {
|
|
86
|
+
status: mark.status
|
|
87
|
+
});
|
|
88
|
+
return /*#__PURE__*/React.createElement("span", {
|
|
89
|
+
className: excluded ? "ap-item ap-excluded" : "ap-item"
|
|
90
|
+
}, iconPosition === "before" && icon, mark.label, mark.note && /*#__PURE__*/React.createElement("span", {
|
|
91
|
+
className: "ap-sub"
|
|
92
|
+
}, mark.note), mark.pending && /*#__PURE__*/React.createElement("span", {
|
|
93
|
+
className: "ap-tbd"
|
|
94
|
+
}, mark.pending), hasChildren && /*#__PURE__*/React.createElement("span", {
|
|
95
|
+
className: "ap-sub"
|
|
96
|
+
}, "(", (_mark$children = mark.children) == null ? void 0 : _mark$children.map((child, index) => /*#__PURE__*/React.createElement(React.Fragment, {
|
|
97
|
+
key: child.label
|
|
98
|
+
}, index > 0 && " / ", /*#__PURE__*/React.createElement(ChildMark, {
|
|
99
|
+
mark: child
|
|
100
|
+
}))), ")"), iconPosition === "after" && icon);
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
/* ------------------------------------------------------------------ */
|
|
104
|
+
/* Panel */
|
|
105
|
+
/* ------------------------------------------------------------------ */
|
|
106
|
+
|
|
107
|
+
const StyledPanel = styled.div.withConfig({
|
|
108
|
+
displayName: "FeatureAvailability__StyledPanel",
|
|
109
|
+
componentId: "sc-42kyhy-0"
|
|
110
|
+
})(["font-family:-apple-system,BlinkMacSystemFont,\"Roboto\",\"Helvetica Neue\",Arial,sans-serif;font-size:13px;line-height:20px;color:var(--color-theme-900);padding:12px 16px;border:1px solid var(--color-theme-300);border-radius:10px;background:var(--color-theme-100);.ap-row{display:flex;gap:10px;padding:6px 0;align-items:baseline;flex-wrap:wrap;}.ap-row:first-of-type{padding-top:0;}.ap-row:last-of-type{padding-bottom:0;}.ap-row + .ap-row{border-top:1px dashed var(--color-theme-300);}.ap-label{flex:0 0 84px;color:var(--color-theme-700);font-weight:600;font-size:13px;}.ap-vals{flex:1 1 240px;display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center;}.ap-item{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;}.ap-sub{color:var(--color-theme-600);}.ap-tbd{color:var(--color-theme-600);font-style:italic;}.ap-sep{color:var(--color-theme-400);}.ap-excluded{text-decoration:line-through;color:var(--color-theme-500);}.ap-ic{flex:none;vertical-align:-2px;}.ap-yes{color:var(--color-green-olive-drab);}.ap-clock{color:var(--color-theme-600);}"]);
|
|
111
|
+
export const FeatureAvailability = _ref4 => {
|
|
112
|
+
let rows = _ref4.rows,
|
|
113
|
+
className = _ref4.className;
|
|
114
|
+
return /*#__PURE__*/React.createElement(StyledPanel, {
|
|
115
|
+
className: className,
|
|
116
|
+
"aria-label": "Feature availability"
|
|
117
|
+
}, rows.map(row => {
|
|
118
|
+
var _row$iconPosition;
|
|
119
|
+
const iconPosition = (_row$iconPosition = row.iconPosition) != null ? _row$iconPosition : "after";
|
|
120
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
121
|
+
className: "ap-row",
|
|
122
|
+
key: row.label
|
|
123
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
124
|
+
className: "ap-label"
|
|
125
|
+
}, row.label), /*#__PURE__*/React.createElement("span", {
|
|
126
|
+
className: "ap-vals"
|
|
127
|
+
}, row.items.map((item, index) => /*#__PURE__*/React.createElement(React.Fragment, {
|
|
128
|
+
key: item.label
|
|
129
|
+
}, index > 0 && row.separated && /*#__PURE__*/React.createElement("span", {
|
|
130
|
+
className: "ap-sep"
|
|
131
|
+
}, "\xB7"), /*#__PURE__*/React.createElement(Mark, {
|
|
132
|
+
mark: item,
|
|
133
|
+
iconPosition: iconPosition
|
|
134
|
+
})))));
|
|
135
|
+
}));
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
/* ------------------------------------------------------------------ */
|
|
139
|
+
/* Illustrative defaults */
|
|
140
|
+
/* ------------------------------------------------------------------ */
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* A realistic GA feature: shipped on Cloud, self-hosted still to be scheduled,
|
|
144
|
+
* on every plan, for internal roles but not for clients. Exercises all three
|
|
145
|
+
* marks (check / clock / strikethrough) out of the box.
|
|
146
|
+
*/
|
|
147
|
+
export const DEFAULT_FEATURE_AVAILABILITY = {
|
|
148
|
+
rows: [{
|
|
149
|
+
label: "Availability",
|
|
150
|
+
iconPosition: "before",
|
|
151
|
+
separated: true,
|
|
152
|
+
items: [{
|
|
153
|
+
label: "Cloud",
|
|
154
|
+
status: "available",
|
|
155
|
+
note: "(stable, since Jun 17 2026)"
|
|
156
|
+
}, {
|
|
157
|
+
label: "Self-Hosted",
|
|
158
|
+
status: "pending",
|
|
159
|
+
pending: "to be determined"
|
|
160
|
+
}]
|
|
161
|
+
}, {
|
|
162
|
+
label: "Plans",
|
|
163
|
+
items: [{
|
|
164
|
+
label: "S–Mega",
|
|
165
|
+
status: "available"
|
|
166
|
+
}, {
|
|
167
|
+
label: "Plus",
|
|
168
|
+
status: "available"
|
|
169
|
+
}, {
|
|
170
|
+
label: "Pro",
|
|
171
|
+
status: "available"
|
|
172
|
+
}, {
|
|
173
|
+
label: "Pro+Get-Paid",
|
|
174
|
+
status: "available"
|
|
175
|
+
}]
|
|
176
|
+
}, {
|
|
177
|
+
label: "Roles",
|
|
178
|
+
items: [{
|
|
179
|
+
label: "Owner",
|
|
180
|
+
status: "available"
|
|
181
|
+
}, {
|
|
182
|
+
label: "Member",
|
|
183
|
+
status: "available"
|
|
184
|
+
}, {
|
|
185
|
+
label: "Member+",
|
|
186
|
+
status: "available",
|
|
187
|
+
children: [{
|
|
188
|
+
label: "PM",
|
|
189
|
+
status: "available"
|
|
190
|
+
}, {
|
|
191
|
+
label: "FM",
|
|
192
|
+
status: "available"
|
|
193
|
+
}]
|
|
194
|
+
}, {
|
|
195
|
+
label: "Client",
|
|
196
|
+
status: "excluded"
|
|
197
|
+
}, {
|
|
198
|
+
label: "Client+",
|
|
199
|
+
status: "excluded"
|
|
200
|
+
}]
|
|
201
|
+
}]
|
|
202
|
+
};
|
|
203
|
+
//# sourceMappingURL=FeatureAvailability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FeatureAvailability.js","names":["React","styled","CheckMark","createElement","className","viewBox","width","height","d","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","ClockMark","cx","cy","r","StatusIcon","_ref","status","ChildMark","_ref2","mark","label","Fragment","Mark","_ref3","_mark$children","iconPosition","hasChildren","Boolean","children","length","excluded","icon","note","pending","map","child","index","key","StyledPanel","div","withConfig","displayName","componentId","FeatureAvailability","_ref4","rows","row","_row$iconPosition","items","item","separated","DEFAULT_FEATURE_AVAILABILITY"],"sources":["../../../../src/presentation/shared/FeatureAvailability.tsx"],"sourcesContent":["import React, { ReactElement } from \"react\";\n\nimport styled from \"styled-components\";\n\n/**\n * FeatureAvailability — a compact, data-driven block that states where a\n * feature is available: on which hosting, on which plans and to which roles.\n *\n * It is the reusable version of the availability panel used in the Help Docs\n * example articles, extracted so several stories (and, later, the real\n * PortableText renderer) can share one implementation and one visual language:\n *\n * • green check → available\n * • analog clock → decided but not shipped yet (\"to be determined\")\n * • strikethrough → not included\n *\n * The component is theme-agnostic (all colors come from `--color-*` tokens) and\n * self-contained (it carries its own typography, so it renders correctly\n * outside the article body as well).\n */\n\nexport type AvailabilityStatus = \"available\" | \"pending\" | \"excluded\";\n\nexport interface AvailabilityMark {\n label: string;\n status: AvailabilityStatus;\n /** Muted parenthetical, e.g. \"(stable, since Jun 17 2026)\". Include the parens. */\n note?: string;\n /** Italic muted trailing text for the pending state, e.g. \"to be determined\". */\n pending?: string;\n /**\n * Nested marks rendered in parentheses, e.g. Member+ (PM ✓ / FM ✓). When a\n * mark has children it does not render its own status icon — the children\n * carry the marks.\n */\n children?: AvailabilityMark[];\n}\n\nexport interface AvailabilityRow {\n label: string;\n items: AvailabilityMark[];\n /** Icon before the label (Availability row) or after it (Plans / Roles). Default \"after\". */\n iconPosition?: \"before\" | \"after\";\n /** Separate items with a middot (used on the Availability row). Default false. */\n separated?: boolean;\n}\n\nexport interface FeatureAvailabilityProps {\n rows: AvailabilityRow[];\n className?: string;\n}\n\n/* ------------------------------------------------------------------ */\n/* Marks */\n/* ------------------------------------------------------------------ */\n\nconst CheckMark = (): ReactElement => (\n <svg\n className=\"ap-ic ap-yes\"\n viewBox=\"0 0 16 16\"\n width=\"15\"\n height=\"15\"\n aria-hidden\n >\n <path\n d=\"M13 4.6 L6.5 11.4 L3 8\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\nconst ClockMark = (): ReactElement => (\n <svg\n className=\"ap-ic ap-clock\"\n viewBox=\"0 0 16 16\"\n width=\"14\"\n height=\"14\"\n aria-hidden\n >\n <circle\n cx=\"8\"\n cy=\"8\"\n r=\"6.2\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.4\"\n />\n <path\n d=\"M8 8 L8 4.4 M8 8 L10.5 9.3\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n />\n </svg>\n);\n\nconst StatusIcon = ({\n status,\n}: {\n status: AvailabilityStatus;\n}): ReactElement | null => {\n if (status === \"available\") {\n return <CheckMark />;\n }\n if (status === \"pending\") {\n return <ClockMark />;\n }\n return null;\n};\n\n/** A nested mark inside parentheses, e.g. \"PM ✓\". */\nconst ChildMark = ({ mark }: { mark: AvailabilityMark }): ReactElement =>\n mark.status === \"excluded\" ? (\n <span className=\"ap-excluded\">{mark.label}</span>\n ) : (\n <>\n {mark.label} <StatusIcon status={mark.status} />\n </>\n );\n\nconst Mark = ({\n mark,\n iconPosition,\n}: {\n mark: AvailabilityMark;\n iconPosition: \"before\" | \"after\";\n}): ReactElement => {\n const hasChildren = Boolean(mark.children && mark.children.length > 0);\n const excluded = mark.status === \"excluded\";\n const icon = hasChildren ? null : <StatusIcon status={mark.status} />;\n\n return (\n <span className={excluded ? \"ap-item ap-excluded\" : \"ap-item\"}>\n {iconPosition === \"before\" && icon}\n {mark.label}\n {mark.note && <span className=\"ap-sub\">{mark.note}</span>}\n {mark.pending && <span className=\"ap-tbd\">{mark.pending}</span>}\n {hasChildren && (\n <span className=\"ap-sub\">\n (\n {mark.children?.map((child, index) => (\n <React.Fragment key={child.label}>\n {index > 0 && \" / \"}\n <ChildMark mark={child} />\n </React.Fragment>\n ))}\n )\n </span>\n )}\n {iconPosition === \"after\" && icon}\n </span>\n );\n};\n\n/* ------------------------------------------------------------------ */\n/* Panel */\n/* ------------------------------------------------------------------ */\n\nconst StyledPanel = styled.div`\n font-family: -apple-system, BlinkMacSystemFont, \"Roboto\", \"Helvetica Neue\",\n Arial, sans-serif;\n font-size: 13px;\n line-height: 20px;\n color: var(--color-theme-900);\n padding: 12px 16px;\n border: 1px solid var(--color-theme-300);\n border-radius: 10px;\n background: var(--color-theme-100);\n\n .ap-row {\n display: flex;\n gap: 10px;\n padding: 6px 0;\n align-items: baseline;\n flex-wrap: wrap;\n }\n\n .ap-row:first-of-type {\n padding-top: 0;\n }\n\n .ap-row:last-of-type {\n padding-bottom: 0;\n }\n\n .ap-row + .ap-row {\n border-top: 1px dashed var(--color-theme-300);\n }\n\n .ap-label {\n flex: 0 0 84px;\n color: var(--color-theme-700);\n font-weight: 600;\n font-size: 13px;\n }\n\n .ap-vals {\n flex: 1 1 240px;\n display: flex;\n flex-wrap: wrap;\n gap: 4px 14px;\n align-items: center;\n }\n\n .ap-item {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n white-space: nowrap;\n }\n\n .ap-sub {\n color: var(--color-theme-600);\n }\n\n .ap-tbd {\n color: var(--color-theme-600);\n font-style: italic;\n }\n\n .ap-sep {\n color: var(--color-theme-400);\n }\n\n .ap-excluded {\n text-decoration: line-through;\n color: var(--color-theme-500);\n }\n\n .ap-ic {\n flex: none;\n vertical-align: -2px;\n }\n\n .ap-yes {\n color: var(--color-green-olive-drab);\n }\n\n .ap-clock {\n color: var(--color-theme-600);\n }\n`;\n\nexport const FeatureAvailability = ({\n rows,\n className,\n}: FeatureAvailabilityProps): ReactElement => (\n <StyledPanel className={className} aria-label=\"Feature availability\">\n {rows.map((row) => {\n const iconPosition = row.iconPosition ?? \"after\";\n\n return (\n <div className=\"ap-row\" key={row.label}>\n <span className=\"ap-label\">{row.label}</span>\n <span className=\"ap-vals\">\n {row.items.map((item, index) => (\n <React.Fragment key={item.label}>\n {index > 0 && row.separated && (\n <span className=\"ap-sep\">·</span>\n )}\n <Mark mark={item} iconPosition={iconPosition} />\n </React.Fragment>\n ))}\n </span>\n </div>\n );\n })}\n </StyledPanel>\n);\n\n/* ------------------------------------------------------------------ */\n/* Illustrative defaults */\n/* ------------------------------------------------------------------ */\n\n/**\n * A realistic GA feature: shipped on Cloud, self-hosted still to be scheduled,\n * on every plan, for internal roles but not for clients. Exercises all three\n * marks (check / clock / strikethrough) out of the box.\n */\nexport const DEFAULT_FEATURE_AVAILABILITY: FeatureAvailabilityProps = {\n rows: [\n {\n label: \"Availability\",\n iconPosition: \"before\",\n separated: true,\n items: [\n {\n label: \"Cloud\",\n status: \"available\",\n note: \"(stable, since Jun 17 2026)\",\n },\n {\n label: \"Self-Hosted\",\n status: \"pending\",\n pending: \"to be determined\",\n },\n ],\n },\n {\n label: \"Plans\",\n items: [\n { label: \"S–Mega\", status: \"available\" },\n { label: \"Plus\", status: \"available\" },\n { label: \"Pro\", status: \"available\" },\n { label: \"Pro+Get-Paid\", status: \"available\" },\n ],\n },\n {\n label: \"Roles\",\n items: [\n { label: \"Owner\", status: \"available\" },\n { label: \"Member\", status: \"available\" },\n {\n label: \"Member+\",\n status: \"available\",\n children: [\n { label: \"PM\", status: \"available\" },\n { label: \"FM\", status: \"available\" },\n ],\n },\n { label: \"Client\", status: \"excluded\" },\n { label: \"Client+\", status: \"excluded\" },\n ],\n },\n ],\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -36,4 +36,6 @@ export { BackupCodesDialogs, CreateLoginCodeDialogs } from "./TwoFactorDialogs";
|
|
|
36
36
|
export type { BackupCodesDialogsProps, CreateLoginCodeDialogsProps, } from "./TwoFactorDialogs";
|
|
37
37
|
export { SettingsHeader, SettingsContent, StyledSettingRow, RowText, SettingRow, } from "./settings";
|
|
38
38
|
export type { SettingsHeaderProps, SettingRowProps } from "./settings";
|
|
39
|
+
export { FeatureAvailability, DEFAULT_FEATURE_AVAILABILITY, } from "./FeatureAvailability";
|
|
40
|
+
export type { FeatureAvailabilityProps, AvailabilityRow, AvailabilityMark, AvailabilityStatus, } from "./FeatureAvailability";
|
|
39
41
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/presentation/shared/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACzE,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACrE,YAAY,EACV,eAAe,EACf,sBAAsB,EACtB,cAAc,GACf,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EACL,aAAa,EACb,cAAc,EACd,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,YAAY,EAAE,kCAAkC,EAAE,MAAM,iCAAiC,CAAC;AAC1F,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,4BAA4B,EAC5B,qBAAqB,EACrB,UAAU,EACV,iBAAiB,EACjB,UAAU,GACX,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,GACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,iBAAiB,EACjB,QAAQ,EACR,OAAO,EACP,KAAK,EACL,aAAa,EACb,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,UAAU,EACV,SAAS,EACT,KAAK,EACL,YAAY,EACZ,UAAU,EACV,UAAU,EACV,cAAc,GACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACzE,YAAY,EACV,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAChF,YAAY,EACV,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,OAAO,EACP,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/presentation/shared/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACzE,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACrE,YAAY,EACV,eAAe,EACf,sBAAsB,EACtB,cAAc,GACf,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EACL,aAAa,EACb,cAAc,EACd,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,YAAY,EAAE,kCAAkC,EAAE,MAAM,iCAAiC,CAAC;AAC1F,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,4BAA4B,EAC5B,qBAAqB,EACrB,UAAU,EACV,iBAAiB,EACjB,UAAU,GACX,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,GACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,iBAAiB,EACjB,QAAQ,EACR,OAAO,EACP,KAAK,EACL,aAAa,EACb,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,UAAU,EACV,SAAS,EACT,KAAK,EACL,YAAY,EACZ,UAAU,EACV,UAAU,EACV,cAAc,GACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACzE,YAAY,EACV,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAChF,YAAY,EACV,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,OAAO,EACP,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,EACL,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,wBAAwB,EACxB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC"}
|
|
@@ -23,4 +23,5 @@ export { UserMenu } from "./UserMenu";
|
|
|
23
23
|
export { TwoFactorShield } from "./TwoFactorShield";
|
|
24
24
|
export { BackupCodesDialogs, CreateLoginCodeDialogs } from "./TwoFactorDialogs";
|
|
25
25
|
export { SettingsHeader, SettingsContent, StyledSettingRow, RowText, SettingRow } from "./settings";
|
|
26
|
+
export { FeatureAvailability, DEFAULT_FEATURE_AVAILABILITY } from "./FeatureAvailability";
|
|
26
27
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["MainLogo","RoundAvatar","PresentationShell","StyledPagePaper","PageHeader","ProjectPageHeader","TabHeader","FloatingControls","MessageDialog","DocLinkContext","messageComponents","HelpAndSupportMenu","LinkingCommandsButton","LinkBranchOrPullRequestDialog","ConnectRepositoryDialog","RepositorySelect","buildRepoOptions","CONNECTIONS","PROJECT_REPOSITORIES","CONNECTABLE_REPOSITORIES","WebhookLogsDialog","WEBHOOK_CONNECTIONS","WEBHOOK_REPOSITORIES","SourceCodeSection","IssueRow","CodeRow","Spine","HistoryDialog","CompletedHeader","SuggestSubtasksButton","TaskOptionsMenu","TaskListOptionsMenu","UserMenu","TwoFactorShield","BackupCodesDialogs","CreateLoginCodeDialogs","SettingsHeader","SettingsContent","StyledSettingRow","RowText","SettingRow"],"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\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB,SAASA,QAAQ,QAAQ,YAAY;AACrC,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,iBAAiB,EAAEC,eAAe,QAAQ,qBAAqB;AAExE,SAASC,UAAU,EAAEC,iBAAiB,EAAEC,SAAS,QAAQ,WAAW;AAMpE,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SACEC,aAAa,EACbC,cAAc,EACdC,iBAAiB,QACZ,iBAAiB;AAMxB,SAASC,kBAAkB,QAAQ,sBAAsB;AAEzD,SAASC,qBAAqB,QAAQ,yBAAyB;AAC/D,SAASC,6BAA6B,QAAQ,iCAAiC;AAE/E,SACEC,uBAAuB,EACvBC,gBAAgB,EAChBC,gBAAgB,EAChBC,WAAW,EACXC,oBAAoB,EACpBC,wBAAwB,QACnB,2BAA2B;AAQlC,SACEC,iBAAiB,EACjBC,mBAAmB,EACnBC,oBAAoB,QACf,qBAAqB;AAO5B,SACEC,iBAAiB,EACjBC,QAAQ,EACRC,OAAO,EACPC,KAAK,EACLC,aAAa,EACbC,eAAe,QACV,qBAAqB;AAU5B,SAASC,qBAAqB,QAAQ,yBAAyB;AAC/D,SAASC,eAAe,EAAEC,mBAAmB,QAAQ,mBAAmB;AAKxE,SAASC,QAAQ,QAAQ,YAAY;AAErC,SAASC,eAAe,QAAQ,mBAAmB;AAEnD,SAASC,kBAAkB,EAAEC,sBAAsB,QAAQ,oBAAoB;AAK/E,SACEC,cAAc,EACdC,eAAe,EACfC,gBAAgB,EAChBC,OAAO,EACPC,UAAU,QACL,YAAY","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["MainLogo","RoundAvatar","PresentationShell","StyledPagePaper","PageHeader","ProjectPageHeader","TabHeader","FloatingControls","MessageDialog","DocLinkContext","messageComponents","HelpAndSupportMenu","LinkingCommandsButton","LinkBranchOrPullRequestDialog","ConnectRepositoryDialog","RepositorySelect","buildRepoOptions","CONNECTIONS","PROJECT_REPOSITORIES","CONNECTABLE_REPOSITORIES","WebhookLogsDialog","WEBHOOK_CONNECTIONS","WEBHOOK_REPOSITORIES","SourceCodeSection","IssueRow","CodeRow","Spine","HistoryDialog","CompletedHeader","SuggestSubtasksButton","TaskOptionsMenu","TaskListOptionsMenu","UserMenu","TwoFactorShield","BackupCodesDialogs","CreateLoginCodeDialogs","SettingsHeader","SettingsContent","StyledSettingRow","RowText","SettingRow","FeatureAvailability","DEFAULT_FEATURE_AVAILABILITY"],"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":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB,SAASA,QAAQ,QAAQ,YAAY;AACrC,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,iBAAiB,EAAEC,eAAe,QAAQ,qBAAqB;AAExE,SAASC,UAAU,EAAEC,iBAAiB,EAAEC,SAAS,QAAQ,WAAW;AAMpE,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SACEC,aAAa,EACbC,cAAc,EACdC,iBAAiB,QACZ,iBAAiB;AAMxB,SAASC,kBAAkB,QAAQ,sBAAsB;AAEzD,SAASC,qBAAqB,QAAQ,yBAAyB;AAC/D,SAASC,6BAA6B,QAAQ,iCAAiC;AAE/E,SACEC,uBAAuB,EACvBC,gBAAgB,EAChBC,gBAAgB,EAChBC,WAAW,EACXC,oBAAoB,EACpBC,wBAAwB,QACnB,2BAA2B;AAQlC,SACEC,iBAAiB,EACjBC,mBAAmB,EACnBC,oBAAoB,QACf,qBAAqB;AAO5B,SACEC,iBAAiB,EACjBC,QAAQ,EACRC,OAAO,EACPC,KAAK,EACLC,aAAa,EACbC,eAAe,QACV,qBAAqB;AAU5B,SAASC,qBAAqB,QAAQ,yBAAyB;AAC/D,SAASC,eAAe,EAAEC,mBAAmB,QAAQ,mBAAmB;AAKxE,SAASC,QAAQ,QAAQ,YAAY;AAErC,SAASC,eAAe,QAAQ,mBAAmB;AAEnD,SAASC,kBAAkB,EAAEC,sBAAsB,QAAQ,oBAAoB;AAK/E,SACEC,cAAc,EACdC,eAAe,EACfC,gBAAgB,EAChBC,OAAO,EACPC,UAAU,QACL,YAAY;AAEnB,SACEC,mBAAmB,EACnBC,4BAA4B,QACvB,uBAAuB","ignoreList":[]}
|
package/dist/index.js
CHANGED
|
@@ -25321,11 +25321,29 @@
|
|
|
25321
25321
|
})(["margin:0;border:none;border-top:1px solid var(--border-primary);"]);
|
|
25322
25322
|
StyledDivider.displayName = "StyledDivider";
|
|
25323
25323
|
|
|
25324
|
-
/**
|
|
25324
|
+
/**
|
|
25325
|
+
* The default `list` block; rendered as ul or ol through the `as` prop, and
|
|
25326
|
+
* tagged `data-portable-list` so the depth rules below scope to design-system
|
|
25327
|
+
* lists — a stray `<ul>`/`<ol>` from an injected renderer is left untouched.
|
|
25328
|
+
*
|
|
25329
|
+
* Nesting works structurally: each level is its own StyledList inside a parent
|
|
25330
|
+
* `<li>`, so it re-applies its own `padding-left` (indentation compounds) and,
|
|
25331
|
+
* for ordered levels, restarts numbering. A nested list carries no vertical
|
|
25332
|
+
* margin, so it hugs the item it belongs to.
|
|
25333
|
+
*
|
|
25334
|
+
* Both bullet and numbered levels change their marker by nesting depth, so
|
|
25335
|
+
* levels stay distinct even where the two interleave:
|
|
25336
|
+
* bullets disc → circle → square → (disc)
|
|
25337
|
+
* numbers decimal → lower-alpha → lower-roman → (upper-alpha)
|
|
25338
|
+
* Depth is counted from the list ancestors themselves (not per-tag), so an
|
|
25339
|
+
* intervening `<ol>` never throws off a `<ul>`'s depth and vice-versa. The
|
|
25340
|
+
* rules are ordered shallow-to-deep; a deeper rule is more specific, so it
|
|
25341
|
+
* wins the cascade for the levels it applies to.
|
|
25342
|
+
*/
|
|
25325
25343
|
var StyledList$1 = styled__default["default"].ul.withConfig({
|
|
25326
25344
|
displayName: "Styles__StyledList",
|
|
25327
25345
|
componentId: "sc-1fss4z4-5"
|
|
25328
|
-
})(["margin:0;padding-left:", ";list-style:", " outside;li + li{margin-top:", ";}"], "1.25rem", function (_ref) {
|
|
25346
|
+
})(["margin:0;padding-left:", ";list-style:", " outside;li + li{margin-top:", ";}& ul[data-portable-list]{list-style-type:circle;}& ol[data-portable-list]{list-style-type:lower-alpha;}& [data-portable-list] ul[data-portable-list]{list-style-type:square;}& [data-portable-list] ol[data-portable-list]{list-style-type:lower-roman;}& [data-portable-list] [data-portable-list] ul[data-portable-list]{list-style-type:disc;}& [data-portable-list] [data-portable-list] ol[data-portable-list]{list-style-type:upper-alpha;}"], "1.25rem", function (_ref) {
|
|
25329
25347
|
var $ordered = _ref.$ordered;
|
|
25330
25348
|
return $ordered ? "decimal" : "disc";
|
|
25331
25349
|
}, SPACE.xs);
|
|
@@ -25360,6 +25378,12 @@
|
|
|
25360
25378
|
|
|
25361
25379
|
/** 1 maps to Title1, 2 to Title2, 3 to Header2 typography. */
|
|
25362
25380
|
|
|
25381
|
+
/**
|
|
25382
|
+
* A list item's children are its own spans first, then any nested `list`
|
|
25383
|
+
* block(s) — the shape that carries multi-level lists. A spans-only item (no
|
|
25384
|
+
* nested list) is the common, flat case and stays valid unchanged.
|
|
25385
|
+
*/
|
|
25386
|
+
|
|
25363
25387
|
/** Screenshots render framed (border, no shadow); illustrations render flat. */
|
|
25364
25388
|
|
|
25365
25389
|
/**
|
|
@@ -25457,11 +25481,25 @@
|
|
|
25457
25481
|
}
|
|
25458
25482
|
switch (value.type) {
|
|
25459
25483
|
case "paragraph":
|
|
25484
|
+
return Array.isArray(value.children) && value.children.every(isPortableTextSpan);
|
|
25460
25485
|
case "heading":
|
|
25486
|
+
return (value.id === undefined || typeof value.id === "string") && Array.isArray(value.children) && value.children.every(isPortableTextSpan);
|
|
25461
25487
|
case "list-item":
|
|
25462
|
-
|
|
25488
|
+
// The item's spans, plus optional nested `list` block(s). Widened only
|
|
25489
|
+
// for nested lists: any other block child (a stray paragraph, an object)
|
|
25490
|
+
// still fails, so a serializer bug is caught here, not at render.
|
|
25491
|
+
return Array.isArray(value.children) && value.children.every(function (child) {
|
|
25492
|
+
return isPortableTextSpan(child) || _isPortableTextBlock(child) && child.type === "list";
|
|
25493
|
+
});
|
|
25463
25494
|
case "list":
|
|
25464
|
-
|
|
25495
|
+
// A list holds `list-item`s only. A sublist emitted as a sibling of the
|
|
25496
|
+
// items (the classic half-implemented-nesting bug) renders invalid HTML
|
|
25497
|
+
// — <ul> with a direct <ul> child — so it fails here, not at render.
|
|
25498
|
+
// `list-item` is validated but sits outside the PortableTextBlock union,
|
|
25499
|
+
// so the discriminator is checked before isPortableTextBlock narrows it.
|
|
25500
|
+
return Array.isArray(value.children) && value.children.every(function (child) {
|
|
25501
|
+
return isRecord(child) && child.type === "list-item" && _isPortableTextBlock(child);
|
|
25502
|
+
});
|
|
25465
25503
|
case "media":
|
|
25466
25504
|
return typeof value.src === "string";
|
|
25467
25505
|
case "titled-text":
|
|
@@ -25554,9 +25592,13 @@
|
|
|
25554
25592
|
|
|
25555
25593
|
/** Heading typography of a TitledText — a component prop, not wire data. */
|
|
25556
25594
|
|
|
25595
|
+
/** Props every heading in the trio accepts: content plus an optional anchor id. */
|
|
25596
|
+
|
|
25557
25597
|
var BoldTitle2 = function BoldTitle2(_ref) {
|
|
25558
|
-
var
|
|
25598
|
+
var id = _ref.id,
|
|
25599
|
+
children = _ref.children;
|
|
25559
25600
|
return /*#__PURE__*/React__default["default"].createElement(Title2, {
|
|
25601
|
+
id: id,
|
|
25560
25602
|
weight: "bold"
|
|
25561
25603
|
}, children);
|
|
25562
25604
|
};
|
|
@@ -25657,9 +25699,12 @@
|
|
|
25657
25699
|
var block = _ref5.block,
|
|
25658
25700
|
children = _ref5.children;
|
|
25659
25701
|
var _ref6 = block,
|
|
25660
|
-
level = _ref6.level
|
|
25702
|
+
level = _ref6.level,
|
|
25703
|
+
id = _ref6.id;
|
|
25661
25704
|
var Heading = titledTextHeadings[headingVariantForLevel(level)];
|
|
25662
|
-
return /*#__PURE__*/React__default["default"].createElement(Heading,
|
|
25705
|
+
return /*#__PURE__*/React__default["default"].createElement(Heading, {
|
|
25706
|
+
id: id
|
|
25707
|
+
}, children);
|
|
25663
25708
|
};
|
|
25664
25709
|
var portableTextDefaultBlockRenderers = {
|
|
25665
25710
|
paragraph: function paragraph(_ref7) {
|
|
@@ -25671,10 +25716,16 @@
|
|
|
25671
25716
|
var block = _ref8.block,
|
|
25672
25717
|
children = _ref8.children;
|
|
25673
25718
|
var ordered = block.style === "number";
|
|
25674
|
-
return
|
|
25675
|
-
|
|
25676
|
-
|
|
25677
|
-
|
|
25719
|
+
return (
|
|
25720
|
+
/*#__PURE__*/
|
|
25721
|
+
// `data-portable-list` scopes the depth-marker rules in Styles.ts to
|
|
25722
|
+
// design-system lists, and marks the ancestors those rules count.
|
|
25723
|
+
React__default["default"].createElement(StyledList$1, {
|
|
25724
|
+
as: ordered ? "ol" : "ul",
|
|
25725
|
+
$ordered: ordered,
|
|
25726
|
+
"data-portable-list": ""
|
|
25727
|
+
}, children)
|
|
25728
|
+
);
|
|
25678
25729
|
},
|
|
25679
25730
|
"list-item": function listItem(_ref9) {
|
|
25680
25731
|
var children = _ref9.children;
|