@brillout/docpress 0.1.20 → 0.2.1
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/bin.js +1 -1
- package/{src/css/Inter-Var.ttf → dist/Inter-Var-IOAEQULN.ttf} +0 -0
- package/{src/components/Sponsors/companyLogos/ccoli.svg → dist/ccoli-CHW3TQKS.svg} +0 -0
- package/{src/icons/changelog.svg → dist/changelog-IPI5F42D.svg} +0 -0
- package/{src/navigation/navigation-fullscreen/chevron.svg → dist/chevron-K3WPYLOP.svg} +0 -0
- package/{src/components/features/chevron.svg → dist/chevron-R2IYJD62.svg} +0 -0
- package/dist/chunk-7HKDCMSZ.js +154 -0
- package/dist/chunk-7HKDCMSZ.js.map +1 -0
- package/dist/chunk-C3OIVLKV.js +75 -0
- package/dist/chunk-C3OIVLKV.js.map +1 -0
- package/dist/chunk-G2A5MZJA.js +48 -0
- package/dist/chunk-G2A5MZJA.js.map +1 -0
- package/dist/chunk-H5CO4N2X.js +174 -0
- package/dist/chunk-H5CO4N2X.js.map +1 -0
- package/dist/chunk-TTLAZ2T2.js +8 -0
- package/dist/chunk-TTLAZ2T2.js.map +1 -0
- package/dist/{chunk-ZYYJWJMY.js → chunk-XUTBTIEE.js} +15 -42
- package/dist/chunk-XUTBTIEE.js.map +1 -0
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.js +35 -0
- package/dist/cli/index.js.map +1 -0
- package/{src/navigation/navigation-fullscreen/close.svg → dist/close-IQXTDOHV.svg} +0 -0
- package/{src/utils/Emoji/compass.svg → dist/compass-2RWQU3E4.svg} +0 -0
- package/{src → dist}/components/features/FeatureList.css +2 -7
- package/dist/components/features/FeatureList.css.map +1 -0
- package/dist/components/features/FeatureList.d.ts +13 -0
- package/dist/components/features/FeatureList.js +8 -0
- package/dist/components/features/FeatureList.js.map +1 -0
- package/dist/components/features/initFeatureList.d.ts +3 -0
- package/dist/components/features/initFeatureList.js +60 -0
- package/dist/components/features/initFeatureList.js.map +1 -0
- package/{src/components/Sponsors/companyLogos/contra.svg → dist/contra-WLZBOPBV.svg} +0 -0
- package/dist/{devServer-J2XJQJGT.js → devServer-534L4U45.js} +5 -2
- package/dist/{devServer-J2XJQJGT.js.map → devServer-534L4U45.js.map} +1 -1
- package/{src/icons/discord.svg → dist/discord-JD33TUSF.svg} +0 -0
- package/{src/utils/Emoji/engine.png → dist/engine-6Q6VSCVA.png} +0 -0
- package/{src/icons/github.svg → dist/github-P5ZSKN2N.svg} +0 -0
- package/{src/icons/heart.svg → dist/heart-OINVKOXO.svg} +0 -0
- package/dist/index.css +121 -0
- package/dist/index.css.map +1 -0
- package/dist/index.d.ts +136 -0
- package/dist/index.js +459 -26
- package/dist/index.js.map +1 -1
- package/{src/components/Sponsors/label.svg → dist/label-MP75CTIA.svg} +0 -0
- package/{src/utils/Emoji/mechanical-arm.svg → dist/mechanical-arm-TR7IQQMG.svg} +0 -0
- package/{src/components/Sponsors/medalBronze.svg → dist/medalBronze-CO4CTUR4.svg} +0 -0
- package/{src/components/Sponsors/medalGold.svg → dist/medalGold-UP6A73FL.svg} +0 -0
- package/{src/components/Sponsors/medalSilver.svg → dist/medalSilver-FAPGGOBN.svg} +0 -0
- package/{src/components/Sponsors/companyLogos/mfqs.svg → dist/mfqs-2EAEE7N6.svg} +0 -0
- package/dist/renderer/_default.page.client.css +264 -0
- package/dist/renderer/_default.page.client.css.map +1 -0
- package/dist/renderer/_default.page.client.d.ts +1 -0
- package/dist/renderer/_default.page.client.js +180 -0
- package/dist/renderer/_default.page.client.js.map +1 -0
- package/dist/renderer/_default.page.server.css +312 -0
- package/dist/renderer/_default.page.server.css.map +1 -0
- package/dist/renderer/_default.page.server.d.ts +22 -0
- package/dist/renderer/_default.page.server.js +591 -0
- package/dist/renderer/_default.page.server.js.map +1 -0
- package/{src/utils/Emoji/road-fork.svg → dist/road-fork-3WZLW3HB.svg} +0 -0
- package/{src/utils/Emoji/shield.svg → dist/shield-CU45RG5C.svg} +0 -0
- package/{src/icons/twitter.svg → dist/twitter-I7DXDN3J.svg} +0 -0
- package/{src/utils/Emoji/typescript.svg → dist/typescript-ALIPKLRM.svg} +0 -0
- package/package.json +12 -9
- package/dist/chunk-ZYYJWJMY.js.map +0 -1
- package/src/MobileHeader.tsx +0 -68
- package/src/PageLayout.css +0 -41
- package/src/PageLayout.tsx +0 -37
- package/src/algolia/DocSearch.css +0 -29
- package/src/algolia/DocSearch.ts +0 -37
- package/src/autoScrollNav.ts +0 -22
- package/src/cli/devServer.ts +0 -31
- package/src/cli/index.ts +0 -29
- package/src/components/CodeBlock.tsx +0 -22
- package/src/components/DocLink.tsx +0 -108
- package/src/components/EditPageNote.tsx +0 -18
- package/src/components/HorizontalLine.tsx +0 -20
- package/src/components/ImportMeta.tsx +0 -11
- package/src/components/Info.tsx +0 -12
- package/src/components/Link.tsx +0 -18
- package/src/components/Note.tsx +0 -31
- package/src/components/P.css +0 -8
- package/src/components/P.tsx +0 -8
- package/src/components/ReadingRecommendation.tsx +0 -53
- package/src/components/RepoLink.tsx +0 -24
- package/src/components/Sponsors/companyLogos/ccoli-logo.svg +0 -1
- package/src/components/Sponsors/companyLogos/ccoli-text.svg +0 -1
- package/src/components/Sponsors/label.draft.svg +0 -108
- package/src/components/Sponsors.tsx +0 -242
- package/src/components/features/FeatureList.tsx +0 -114
- package/src/components/features/initFeatureList.ts +0 -66
- package/src/components/index.ts +0 -13
- package/src/config/Config.ts +0 -30
- package/src/config/getConfig.ts +0 -18
- package/src/config/resolveConfig/resolveHeading.ts +0 -0
- package/src/config/resolvePageContext.ts +0 -157
- package/src/css/button.css +0 -7
- package/src/css/code/block.css +0 -36
- package/src/css/code/inline.css +0 -27
- package/src/css/code.css +0 -20
- package/src/css/colorize-on-hover.css +0 -29
- package/src/css/font.css +0 -19
- package/src/css/heading.css +0 -25
- package/src/css/index.css +0 -11
- package/src/css/link.css +0 -17
- package/src/css/note.css +0 -26
- package/src/css/reset.css +0 -12
- package/src/css/table.css +0 -14
- package/src/css/tooltip.css +0 -11
- package/src/headings.ts +0 -200
- package/src/index.ts +0 -3
- package/src/installSectionUrlHashs.ts +0 -50
- package/src/markdownHeadingsVitePlugin.ts +0 -128
- package/src/navigation/Navigation-highlight.css +0 -41
- package/src/navigation/Navigation-items.css +0 -122
- package/src/navigation/Navigation-layout.css +0 -118
- package/src/navigation/Navigation.client.old.ts +0 -303
- package/src/navigation/Navigation.client.ts +0 -19
- package/src/navigation/Navigation.css +0 -12
- package/src/navigation/Navigation.tsx +0 -228
- package/src/navigation/NavigationHeader.tsx +0 -97
- package/src/navigation/navigation-fullscreen/NavigationFullscreenButton.css +0 -32
- package/src/navigation/navigation-fullscreen/NavigationFullscreenButton.tsx +0 -44
- package/src/navigation/navigation-fullscreen/initNavigationFullscreen.ts +0 -115
- package/src/parseEmojis.ts +0 -33
- package/src/renderer/_default.page.client.ts +0 -4
- package/src/renderer/_default.page.server.tsx +0 -69
- package/src/renderer/usePageContext.tsx +0 -25
- package/src/types.ts +0 -2
- package/src/utils/Emoji/Emoji.ts +0 -216
- package/src/utils/Emoji/assets.ts +0 -9
- package/src/utils/Emoji/index.ts +0 -1
- package/src/utils/Emoji/mountain.svg +0 -1
- package/src/utils/assert.ts +0 -39
- package/src/utils/client.ts +0 -2
- package/src/utils/crawlAllFiles.ts +0 -17
- package/src/utils/determineSectionUrlHash.ts +0 -35
- package/src/utils/filesystemPathHandling.ts +0 -42
- package/src/utils/filter.ts +0 -12
- package/src/utils/isBrowser.ts +0 -5
- package/src/utils/jsxToTextContent.ts +0 -11
- package/src/utils/objectAssign.ts +0 -9
- package/src/utils/server.ts +0 -8
- package/src/vite.config.ts +0 -44
package/dist/index.js
CHANGED
|
@@ -1,32 +1,465 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
2
|
+
RepoLink,
|
|
3
|
+
getHeadings,
|
|
4
|
+
isRepoLink,
|
|
5
|
+
parseTitle,
|
|
6
|
+
usePageContext
|
|
7
|
+
} from "./chunk-H5CO4N2X.js";
|
|
8
|
+
import {
|
|
9
|
+
FeatureList
|
|
10
|
+
} from "./chunk-C3OIVLKV.js";
|
|
11
|
+
import {
|
|
12
|
+
Emoji,
|
|
13
|
+
crawlAllFiles,
|
|
14
|
+
determineSectionTitle,
|
|
15
|
+
determineSectionUrlHash,
|
|
16
|
+
filter,
|
|
17
|
+
jsxToTextContent,
|
|
18
|
+
objectAssign
|
|
19
|
+
} from "./chunk-7HKDCMSZ.js";
|
|
20
|
+
import {
|
|
21
|
+
assert,
|
|
22
|
+
assertUsage,
|
|
23
|
+
isBrowser
|
|
24
|
+
} from "./chunk-G2A5MZJA.js";
|
|
25
|
+
import "./chunk-TTLAZ2T2.js";
|
|
26
|
+
|
|
27
|
+
// src/components/Link.tsx
|
|
28
|
+
import React2 from "react";
|
|
29
|
+
|
|
30
|
+
// src/components/DocLink.tsx
|
|
31
|
+
import React from "react";
|
|
32
|
+
function DocLink({
|
|
33
|
+
href,
|
|
34
|
+
text,
|
|
35
|
+
noBreadcrumb,
|
|
36
|
+
doNotInferSectionTitle
|
|
37
|
+
}) {
|
|
38
|
+
const pageContext = usePageContext();
|
|
39
|
+
return /* @__PURE__ */ React.createElement("a", { href }, text || getTitle({ href, noBreadcrumb, pageContext, doNotInferSectionTitle }));
|
|
40
|
+
}
|
|
41
|
+
function getTitle({
|
|
42
|
+
href,
|
|
43
|
+
noBreadcrumb,
|
|
44
|
+
pageContext,
|
|
45
|
+
doNotInferSectionTitle
|
|
46
|
+
}) {
|
|
47
|
+
let urlHash = null;
|
|
48
|
+
let hrefWithoutHash = href;
|
|
49
|
+
if (href.includes("#")) {
|
|
50
|
+
;
|
|
51
|
+
[hrefWithoutHash, urlHash] = href.split("#");
|
|
52
|
+
}
|
|
53
|
+
const heading = findHeading(hrefWithoutHash, pageContext);
|
|
54
|
+
const breadcrumbs = [];
|
|
55
|
+
if ("parentHeadings" in heading) {
|
|
56
|
+
breadcrumbs.push(
|
|
57
|
+
...heading.parentHeadings.slice().reverse().map(({ title }) => title)
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
breadcrumbs.push(heading.title);
|
|
61
|
+
if (urlHash) {
|
|
62
|
+
let sectionTitle = void 0;
|
|
63
|
+
if ("sectionTitles" in heading && heading.sectionTitles) {
|
|
64
|
+
heading.sectionTitles.forEach((title) => {
|
|
65
|
+
if (determineSectionUrlHash(title) === urlHash) {
|
|
66
|
+
sectionTitle = parseTitle(title);
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
if (!sectionTitle) {
|
|
71
|
+
assertUsage(
|
|
72
|
+
!doNotInferSectionTitle,
|
|
73
|
+
`Page section title not found for <Link href="\`${href}\`" doNotInferSectionTitle={true} />.`
|
|
74
|
+
);
|
|
75
|
+
sectionTitle = determineSectionTitle(href, pageContext.config.titleNormalCase);
|
|
76
|
+
}
|
|
77
|
+
breadcrumbs.push(sectionTitle);
|
|
78
|
+
}
|
|
79
|
+
{
|
|
80
|
+
const linkIsOnSamePage = heading.url === pageContext.urlPathname;
|
|
81
|
+
if (noBreadcrumb || linkIsOnSamePage) {
|
|
82
|
+
return breadcrumbs[breadcrumbs.length - 1];
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, breadcrumbs.map((title, i) => {
|
|
86
|
+
const seperator = i === 0 ? /* @__PURE__ */ React.createElement(React.Fragment, null) : " > ";
|
|
87
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, { key: i }, seperator, title);
|
|
88
|
+
}));
|
|
89
|
+
}
|
|
90
|
+
function findHeading(href, pageContext) {
|
|
91
|
+
assert(href.startsWith("/"), `\`href==='${href}'\` but should start with \`/\`.`);
|
|
92
|
+
const { headings, headingsWithoutLink } = getHeadings(pageContext.config);
|
|
93
|
+
{
|
|
94
|
+
const heading2 = headingsWithoutLink.find(({ url }) => href === url);
|
|
95
|
+
if (heading2) {
|
|
96
|
+
return heading2;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
const heading = headings.find(({ url }) => href === url);
|
|
100
|
+
assert(heading, `Could not find page \`${href}\`. Does it exist?`);
|
|
101
|
+
return heading;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
// src/components/Link.tsx
|
|
105
|
+
function Link(props) {
|
|
106
|
+
if (isRepoLink(props.href)) {
|
|
107
|
+
return /* @__PURE__ */ React2.createElement(RepoLink, { path: props.href, text: props.text });
|
|
24
108
|
} else {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
109
|
+
return /* @__PURE__ */ React2.createElement(DocLink, { ...props });
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// src/components/P.tsx
|
|
114
|
+
import React3 from "react";
|
|
115
|
+
function P(props) {
|
|
116
|
+
return /* @__PURE__ */ React3.createElement("div", { ...props, className: "paragraph" });
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// src/components/Info.tsx
|
|
120
|
+
import React4 from "react";
|
|
121
|
+
function Info({ children }) {
|
|
122
|
+
return /* @__PURE__ */ React4.createElement("blockquote", null, /* @__PURE__ */ React4.createElement(P, null, children));
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// src/components/ReadingRecommendation.tsx
|
|
126
|
+
import React5 from "react";
|
|
127
|
+
function ReadingRecommendation({ tour, links }) {
|
|
128
|
+
const multiple = links.length + (tour ? 1 : 0) > 1;
|
|
129
|
+
return /* @__PURE__ */ React5.createElement(Info, null, multiple ? " " : "", /* @__PURE__ */ React5.createElement("b", null, "Reading Recommendation", multiple ? "." : ": "), (() => {
|
|
130
|
+
if (!multiple) {
|
|
131
|
+
const link = tour ? /* @__PURE__ */ React5.createElement(TourLink, null) : /* @__PURE__ */ React5.createElement(Link, { href: links[0] });
|
|
132
|
+
return /* @__PURE__ */ React5.createElement(React5.Fragment, null, link, ".");
|
|
133
|
+
}
|
|
134
|
+
return /* @__PURE__ */ React5.createElement(
|
|
135
|
+
"ul",
|
|
136
|
+
{
|
|
137
|
+
style: {
|
|
138
|
+
marginLeft: 18,
|
|
139
|
+
marginTop: 11
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
tour && /* @__PURE__ */ React5.createElement("li", null, /* @__PURE__ */ React5.createElement(TourLink, null)),
|
|
143
|
+
links.map((link, i) => /* @__PURE__ */ React5.createElement("li", { key: i }, /* @__PURE__ */ React5.createElement(Link, { href: link })))
|
|
29
144
|
);
|
|
145
|
+
})());
|
|
146
|
+
}
|
|
147
|
+
function TourLink() {
|
|
148
|
+
return /* @__PURE__ */ React5.createElement(React5.Fragment, null, /* @__PURE__ */ React5.createElement(Link, { href: "/react-tour", noBreadcrumb: true }), " or ", /* @__PURE__ */ React5.createElement(Link, { href: "/vue-tour", noBreadcrumb: true }));
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// src/components/Note.tsx
|
|
152
|
+
import React6 from "react";
|
|
153
|
+
function Note({
|
|
154
|
+
type,
|
|
155
|
+
icon,
|
|
156
|
+
children
|
|
157
|
+
}) {
|
|
158
|
+
assert(type === void 0 || ["error", "warning"].includes(type));
|
|
159
|
+
if (!icon) {
|
|
160
|
+
if (type === "error") {
|
|
161
|
+
icon = ":no_entry:";
|
|
162
|
+
}
|
|
163
|
+
if (type === "warning") {
|
|
164
|
+
icon = ":warning:";
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
return /* @__PURE__ */ React6.createElement("blockquote", { className: type }, /* @__PURE__ */ React6.createElement("div", { style: { marginBottom: 20 } }), icon, " ", children, /* @__PURE__ */ React6.createElement("div", { style: { marginTop: 20 } }));
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
// src/components/ImportMeta.tsx
|
|
171
|
+
import React7 from "react";
|
|
172
|
+
function ImportMeta({ prop }) {
|
|
173
|
+
assert(!prop.startsWith("import"));
|
|
174
|
+
assert(!prop.startsWith("."));
|
|
175
|
+
const text = "import.meta." + prop;
|
|
176
|
+
return /* @__PURE__ */ React7.createElement("code", null, text);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
// src/components/HorizontalLine.tsx
|
|
180
|
+
import React8 from "react";
|
|
181
|
+
function HorizontalLine({ primary }) {
|
|
182
|
+
return /* @__PURE__ */ React8.createElement("div", { className: "header-separator-line " + (primary ? "primary" : ""), style: { textAlign: "center" } }, /* @__PURE__ */ React8.createElement(
|
|
183
|
+
"hr",
|
|
184
|
+
{
|
|
185
|
+
style: {
|
|
186
|
+
display: "inline-block",
|
|
187
|
+
margin: 0,
|
|
188
|
+
border: 0,
|
|
189
|
+
borderTop: "1px solid #eee",
|
|
190
|
+
maxWidth: 500,
|
|
191
|
+
width: "80%"
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
));
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
// src/components/Sponsors.tsx
|
|
198
|
+
import React9 from "react";
|
|
199
|
+
|
|
200
|
+
// src/icons/heart.svg
|
|
201
|
+
var heart_default = "/assets/heart-OINVKOXO.svg";
|
|
202
|
+
|
|
203
|
+
// src/components/Sponsors/companyLogos/ccoli.svg
|
|
204
|
+
var ccoli_default = "/assets/ccoli-CHW3TQKS.svg";
|
|
205
|
+
|
|
206
|
+
// src/components/Sponsors/companyLogos/contra.svg
|
|
207
|
+
var contra_default = "/assets/contra-WLZBOPBV.svg";
|
|
208
|
+
|
|
209
|
+
// src/components/Sponsors/companyLogos/mfqs.svg
|
|
210
|
+
var mfqs_default = "/assets/mfqs-2EAEE7N6.svg";
|
|
211
|
+
|
|
212
|
+
// src/components/Sponsors/medalGold.svg
|
|
213
|
+
var medalGold_default = "/assets/medalGold-UP6A73FL.svg";
|
|
214
|
+
|
|
215
|
+
// src/components/Sponsors/medalSilver.svg
|
|
216
|
+
var medalSilver_default = "/assets/medalSilver-FAPGGOBN.svg";
|
|
217
|
+
|
|
218
|
+
// src/components/Sponsors/medalBronze.svg
|
|
219
|
+
var medalBronze_default = "/assets/medalBronze-CO4CTUR4.svg";
|
|
220
|
+
|
|
221
|
+
// src/components/Sponsors/label.svg
|
|
222
|
+
var label_default = "/assets/label-MP75CTIA.svg";
|
|
223
|
+
|
|
224
|
+
// src/components/Sponsors.tsx
|
|
225
|
+
var sponsors = [
|
|
226
|
+
{
|
|
227
|
+
companyName: "Contra",
|
|
228
|
+
companyLogo: contra_default,
|
|
229
|
+
plan: "gold",
|
|
230
|
+
website: "https://contra.com"
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
companyName: "ccoli",
|
|
234
|
+
companyLogo: ccoli_default,
|
|
235
|
+
plan: "silver",
|
|
236
|
+
website: "https://ccoli.co"
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
companyName: "My Favorite Quilt Store",
|
|
240
|
+
companyLogo: mfqs_default,
|
|
241
|
+
plan: "bronze",
|
|
242
|
+
website: "https://myfavoritequiltstore.com"
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
username: "spacedawwwg"
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
username: "codthing"
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
username: "Junaidhkn"
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
username: "zgfdev"
|
|
255
|
+
}
|
|
256
|
+
];
|
|
257
|
+
function Sponsors() {
|
|
258
|
+
const pageContext = usePageContext();
|
|
259
|
+
const { projectInfo } = pageContext.config;
|
|
260
|
+
return /* @__PURE__ */ React9.createElement("div", { style: { textAlign: "center", marginTop: 19 } }, /* @__PURE__ */ React9.createElement(
|
|
261
|
+
"a",
|
|
262
|
+
{
|
|
263
|
+
className: "button",
|
|
264
|
+
href: "https://github.com/sponsors/brillout",
|
|
265
|
+
style: {
|
|
266
|
+
color: "inherit",
|
|
267
|
+
display: "inline-flex",
|
|
268
|
+
alignItems: "center",
|
|
269
|
+
padding: "5px 10px",
|
|
270
|
+
marginBottom: 10
|
|
271
|
+
}
|
|
272
|
+
},
|
|
273
|
+
/* @__PURE__ */ React9.createElement("img", { src: heart_default, height: 22 }),
|
|
274
|
+
" ",
|
|
275
|
+
/* @__PURE__ */ React9.createElement("span", { style: { marginLeft: 7, fontSize: "1.07em" } }, "Sponsor")
|
|
276
|
+
), /* @__PURE__ */ React9.createElement("div", null), /* @__PURE__ */ React9.createElement("div", { style: { maxWidth: 400, display: "inline-block", marginTop: 12, marginBottom: 12 } }, projectInfo.projectNameJsx || projectInfo.projectName, " is free and open source, made possible by wonderful sponsors."), /* @__PURE__ */ React9.createElement("div", { style: { display: "flex", flexWrap: "wrap", justifyContent: "center", alignItems: "end" } }, sponsors.map((sponsor, i) => /* @__PURE__ */ React9.createElement(SponsorDiv, { sponsor, key: i }))));
|
|
277
|
+
}
|
|
278
|
+
function SponsorDiv({ sponsor }) {
|
|
279
|
+
let imgSrc;
|
|
280
|
+
let imgAlt;
|
|
281
|
+
let width;
|
|
282
|
+
let height;
|
|
283
|
+
let website;
|
|
284
|
+
let padding;
|
|
285
|
+
let backgroundColor = "#f0f0f0";
|
|
286
|
+
let label = null;
|
|
287
|
+
if ("username" in sponsor) {
|
|
288
|
+
website = `https://github.com/${sponsor.username}`;
|
|
289
|
+
imgSrc = `https://github.com/${sponsor.username}.png?size=30`;
|
|
290
|
+
width = 30;
|
|
291
|
+
height = 30;
|
|
292
|
+
padding = 0;
|
|
293
|
+
backgroundColor = "none";
|
|
294
|
+
} else {
|
|
295
|
+
imgSrc = sponsor.companyLogo;
|
|
296
|
+
website = sponsor.website;
|
|
297
|
+
const size = getSize(sponsor.plan);
|
|
298
|
+
width = size.width;
|
|
299
|
+
height = size.height;
|
|
300
|
+
padding = size.padding;
|
|
301
|
+
imgAlt = sponsor.companyName;
|
|
302
|
+
label = /* @__PURE__ */ React9.createElement(Label, { sponsor });
|
|
303
|
+
}
|
|
304
|
+
const marginWidth = 5;
|
|
305
|
+
return /* @__PURE__ */ React9.createElement(
|
|
306
|
+
"a",
|
|
307
|
+
{
|
|
308
|
+
href: website,
|
|
309
|
+
style: {
|
|
310
|
+
margin: `10px ${marginWidth}px`
|
|
311
|
+
}
|
|
312
|
+
},
|
|
313
|
+
label,
|
|
314
|
+
/* @__PURE__ */ React9.createElement(
|
|
315
|
+
"div",
|
|
316
|
+
{
|
|
317
|
+
style: {
|
|
318
|
+
backgroundColor,
|
|
319
|
+
borderRadius: 7,
|
|
320
|
+
overflow: "hidden",
|
|
321
|
+
width,
|
|
322
|
+
maxWidth: `calc(100vw - 2 * var(--main-view-padding) - 2 * ${marginWidth}px)`,
|
|
323
|
+
height,
|
|
324
|
+
display: "flex",
|
|
325
|
+
alignItems: "center",
|
|
326
|
+
flexDirection: "column",
|
|
327
|
+
justifyContent: "center"
|
|
328
|
+
}
|
|
329
|
+
},
|
|
330
|
+
/* @__PURE__ */ React9.createElement(
|
|
331
|
+
"img",
|
|
332
|
+
{
|
|
333
|
+
style: { width: `calc(100% - ${padding}px)`, height: height - padding, zIndex: 2 },
|
|
334
|
+
src: imgSrc,
|
|
335
|
+
alt: imgAlt
|
|
336
|
+
}
|
|
337
|
+
)
|
|
338
|
+
)
|
|
339
|
+
);
|
|
340
|
+
}
|
|
341
|
+
function Label({ sponsor }) {
|
|
342
|
+
assert(!("username" in sponsor));
|
|
343
|
+
const labelBg = getLabelBg(sponsor);
|
|
344
|
+
const labelIcon = getLabelIcon(sponsor);
|
|
345
|
+
const labelText = getLabelText(sponsor);
|
|
346
|
+
return /* @__PURE__ */ React9.createElement(
|
|
347
|
+
"div",
|
|
348
|
+
{
|
|
349
|
+
style: {
|
|
350
|
+
top: 0,
|
|
351
|
+
display: "flex",
|
|
352
|
+
justifyContent: "center",
|
|
353
|
+
alignItems: "center",
|
|
354
|
+
position: "relative",
|
|
355
|
+
paddingBottom: 1
|
|
356
|
+
}
|
|
357
|
+
},
|
|
358
|
+
labelBg,
|
|
359
|
+
labelIcon,
|
|
360
|
+
labelText
|
|
361
|
+
);
|
|
362
|
+
}
|
|
363
|
+
function getLabelBg(sponsor) {
|
|
364
|
+
const height = sponsor.plan === "platinum" ? 32 : 24;
|
|
365
|
+
return /* @__PURE__ */ React9.createElement("img", { src: label_default, style: { height, position: "absolute", bottom: 0, zIndex: -1 } });
|
|
366
|
+
}
|
|
367
|
+
function getLabelText(sponsor) {
|
|
368
|
+
if (sponsor.plan === "platinum") {
|
|
369
|
+
return /* @__PURE__ */ React9.createElement(React9.Fragment, null);
|
|
370
|
+
}
|
|
371
|
+
const letterSpacing = ["bronze", "silver", "gold"].includes(sponsor.plan) ? 1 : void 0;
|
|
372
|
+
return /* @__PURE__ */ React9.createElement(React9.Fragment, null, " ", /* @__PURE__ */ React9.createElement(
|
|
373
|
+
"span",
|
|
374
|
+
{
|
|
375
|
+
style: {
|
|
376
|
+
zIndex: 1,
|
|
377
|
+
fontSize: "0.82em",
|
|
378
|
+
position: "relative",
|
|
379
|
+
top: 0,
|
|
380
|
+
fontWeight: 500,
|
|
381
|
+
color: "#666",
|
|
382
|
+
letterSpacing
|
|
383
|
+
}
|
|
384
|
+
},
|
|
385
|
+
capitalizeFirstLetter(sponsor.plan)
|
|
386
|
+
));
|
|
387
|
+
}
|
|
388
|
+
function getLabelIcon(sponsor) {
|
|
389
|
+
let medalSrc;
|
|
390
|
+
if (sponsor.plan === "platinum") {
|
|
391
|
+
return /* @__PURE__ */ React9.createElement(Emoji, { name: "trophy", style: { fontSize: "1.3em" } });
|
|
392
|
+
} else if (sponsor.plan === "gold") {
|
|
393
|
+
medalSrc = medalGold_default;
|
|
394
|
+
} else if (sponsor.plan === "silver") {
|
|
395
|
+
medalSrc = medalSilver_default;
|
|
396
|
+
} else if (sponsor.plan === "bronze") {
|
|
397
|
+
medalSrc = medalBronze_default;
|
|
398
|
+
} else {
|
|
399
|
+
assert(false);
|
|
400
|
+
}
|
|
401
|
+
return /* @__PURE__ */ React9.createElement("img", { src: medalSrc, style: { height: 15, zIndex: 1, marginRight: 5 } });
|
|
402
|
+
}
|
|
403
|
+
function getSize(plan) {
|
|
404
|
+
if (plan === "platinum") {
|
|
405
|
+
assert(false);
|
|
406
|
+
}
|
|
407
|
+
if (plan === "gold") {
|
|
408
|
+
return { width: 400, height: 150, padding: 95 };
|
|
409
|
+
}
|
|
410
|
+
if (plan === "silver") {
|
|
411
|
+
return { width: 300, height: 100, padding: 45 };
|
|
412
|
+
}
|
|
413
|
+
if (plan === "bronze") {
|
|
414
|
+
return { width: 200, height: 70, padding: 30 };
|
|
415
|
+
}
|
|
416
|
+
if (plan === "FREE_SLOT") {
|
|
417
|
+
return { width: 150, height: 40, padding: 15 };
|
|
418
|
+
}
|
|
419
|
+
assert(false);
|
|
420
|
+
}
|
|
421
|
+
function capitalizeFirstLetter(word) {
|
|
422
|
+
return word[0].toUpperCase() + word.slice(1);
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
// src/components/CodeBlock.tsx
|
|
426
|
+
import React10 from "react";
|
|
427
|
+
function CodeBlock({ children, lineBreak }) {
|
|
428
|
+
assert(lineBreak, "`lineBreak: true` is currently the only use case for <CodeBlock>");
|
|
429
|
+
const style = {};
|
|
430
|
+
if (lineBreak) {
|
|
431
|
+
objectAssign(style, {
|
|
432
|
+
wordWrap: "break-word",
|
|
433
|
+
wordBreak: "break-all",
|
|
434
|
+
whiteSpace: "initial",
|
|
435
|
+
paddingRight: "16px !important"
|
|
436
|
+
});
|
|
30
437
|
}
|
|
438
|
+
return /* @__PURE__ */ React10.createElement("pre", null, /* @__PURE__ */ React10.createElement("code", { style }, children));
|
|
31
439
|
}
|
|
440
|
+
export {
|
|
441
|
+
CodeBlock,
|
|
442
|
+
DocLink,
|
|
443
|
+
Emoji,
|
|
444
|
+
FeatureList,
|
|
445
|
+
HorizontalLine,
|
|
446
|
+
ImportMeta,
|
|
447
|
+
Info,
|
|
448
|
+
Link,
|
|
449
|
+
Note,
|
|
450
|
+
P,
|
|
451
|
+
ReadingRecommendation,
|
|
452
|
+
RepoLink,
|
|
453
|
+
Sponsors,
|
|
454
|
+
assert,
|
|
455
|
+
assertUsage,
|
|
456
|
+
crawlAllFiles,
|
|
457
|
+
determineSectionTitle,
|
|
458
|
+
determineSectionUrlHash,
|
|
459
|
+
filter,
|
|
460
|
+
isBrowser,
|
|
461
|
+
isRepoLink,
|
|
462
|
+
jsxToTextContent,
|
|
463
|
+
objectAssign
|
|
464
|
+
};
|
|
32
465
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli/index.ts"],"sourcesContent":["import { build, preview } from 'vite'\nimport config from '../vite.config'\nimport { prerender } from 'vite-plugin-ssr/prerender'\nconst args = process.argv.filter(Boolean).slice(2)\nconst isDev = args.includes('dev')\nconst isPreview = args.includes('preview')\nconst isBuild = args.includes('build')\nError.stackTraceLimit = Infinity\n\ncli()\n\nasync function cli() {\n if (isDev) {\n await import('./devServer')\n } else if (isBuild) {\n await build(config)\n await build({ ...config, build: { ssr: true } })\n await prerender({ viteConfig: config })\n } else if (isPreview) {\n const server = await preview({ ...config, preview: { host: true } })\n server.printUrls()\n } else {\n throw new Error(\n `DocPress: unknown command \\`$ docpress ${args.join(\n ' '\n )}\\`. Known commands: \\`$ docpress dev\\` and \\`$ docpress preview\\`.`\n )\n }\n}\n"],"mappings":";;;;;AAAA,SAAS,OAAO,eAAe;AAE/B,SAAS,iBAAiB;AAC1B,IAAM,OAAO,QAAQ,KAAK,OAAO,OAAO,EAAE,MAAM,CAAC;AACjD,IAAM,QAAQ,KAAK,SAAS,KAAK;AACjC,IAAM,YAAY,KAAK,SAAS,SAAS;AACzC,IAAM,UAAU,KAAK,SAAS,OAAO;AACrC,MAAM,kBAAkB;AAExB,IAAI;AAEJ,eAAe,MAAM;AACnB,MAAI,OAAO;AACT,UAAM,OAAO;AAAA,EACf,WAAW,SAAS;AAClB,UAAM,MAAM,mBAAM;AAClB,UAAM,MAAM,EAAE,GAAG,qBAAQ,OAAO,EAAE,KAAK,KAAK,EAAE,CAAC;AAC/C,UAAM,UAAU,EAAE,YAAY,oBAAO,CAAC;AAAA,EACxC,WAAW,WAAW;AACpB,UAAM,SAAS,MAAM,QAAQ,EAAE,GAAG,qBAAQ,SAAS,EAAE,MAAM,KAAK,EAAE,CAAC;AACnE,WAAO,UAAU;AAAA,EACnB,OAAO;AACL,UAAM,IAAI;AAAA,MACR,0CAA0C,KAAK;AAAA,QAC7C;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/components/Link.tsx","../src/components/DocLink.tsx","../src/components/P.tsx","../src/components/Info.tsx","../src/components/ReadingRecommendation.tsx","../src/components/Note.tsx","../src/components/ImportMeta.tsx","../src/components/HorizontalLine.tsx","../src/components/Sponsors.tsx","../src/components/CodeBlock.tsx"],"sourcesContent":["import React from 'react'\nimport { DocLink } from './DocLink'\nimport { isRepoLink, RepoLink } from './RepoLink'\n\nexport { Link }\n\nfunction Link(props: {\n href: string\n text?: string | JSX.Element\n noBreadcrumb?: true\n doNotInferSectionTitle?: true\n}) {\n if (isRepoLink(props.href)) {\n return <RepoLink path={props.href} text={props.text} />\n } else {\n return <DocLink {...props} />\n }\n}\n","import React from 'react'\nimport { getHeadings, parseTitle, Heading, HeadingWithoutLink } from '../headings'\nimport { PageContextResolved } from '../config/resolvePageContext'\nimport { usePageContext } from '../renderer/usePageContext'\nimport { assert, assertUsage, determineSectionTitle, determineSectionUrlHash } from '../utils/server'\n\nexport { DocLink }\n\nfunction DocLink({\n href,\n text,\n noBreadcrumb,\n doNotInferSectionTitle\n}: {\n href: string\n text?: string | JSX.Element\n noBreadcrumb?: true\n doNotInferSectionTitle?: true\n}) {\n const pageContext = usePageContext()\n return <a href={href}>{text || getTitle({ href, noBreadcrumb, pageContext, doNotInferSectionTitle })}</a>\n}\n\nfunction getTitle({\n href,\n noBreadcrumb,\n pageContext,\n doNotInferSectionTitle\n}: {\n href: string\n noBreadcrumb: true | undefined\n pageContext: PageContextResolved\n doNotInferSectionTitle: true | undefined\n}): string | JSX.Element {\n let urlHash: string | null = null\n let hrefWithoutHash: string = href\n if (href.includes('#')) {\n ;[hrefWithoutHash, urlHash] = href.split('#')\n }\n const heading = findHeading(hrefWithoutHash, pageContext)\n\n const breadcrumbs: (string | JSX.Element)[] = []\n\n if ('parentHeadings' in heading) {\n breadcrumbs.push(\n ...heading.parentHeadings\n .slice()\n .reverse()\n .map(({ title }) => title)\n )\n }\n\n breadcrumbs.push(heading.title)\n\n if (urlHash) {\n let sectionTitle: string | JSX.Element | undefined = undefined\n if ('sectionTitles' in heading && heading.sectionTitles) {\n heading.sectionTitles.forEach((title) => {\n if (determineSectionUrlHash(title) === urlHash) {\n sectionTitle = parseTitle(title)\n }\n })\n }\n if (!sectionTitle) {\n assertUsage(\n !doNotInferSectionTitle,\n `Page section title not found for <Link href=\"\\`${href}\\`\" doNotInferSectionTitle={true} />.`\n )\n sectionTitle = determineSectionTitle(href, pageContext.config.titleNormalCase)\n }\n breadcrumbs.push(sectionTitle)\n }\n\n {\n const linkIsOnSamePage = heading.url === pageContext.urlPathname\n if (noBreadcrumb || linkIsOnSamePage) {\n return breadcrumbs[breadcrumbs.length - 1]\n }\n }\n\n return (\n <>\n {breadcrumbs.map((title, i) => {\n const seperator = i === 0 ? <></> : ' > '\n return (\n <React.Fragment key={i}>\n {seperator}\n {title}\n </React.Fragment>\n )\n })}\n </>\n )\n}\n\nfunction findHeading(href: string, pageContext: PageContextResolved): Heading | HeadingWithoutLink {\n assert(href.startsWith('/'), `\\`href==='${href}'\\` but should start with \\`/\\`.`)\n const { headings, headingsWithoutLink } = getHeadings(pageContext.config)\n {\n const heading = headingsWithoutLink.find(({ url }) => href === url)\n if (heading) {\n return heading\n }\n }\n const heading = headings.find(({ url }) => href === url)\n assert(heading, `Could not find page \\`${href}\\`. Does it exist?`)\n return heading\n}\n","import React from 'react'\nimport './P.css'\n\nexport { P }\n\nfunction P(props: React.HTMLProps<HTMLDivElement>) {\n return <div {...props} className={'paragraph'} />\n}\n","import React from 'react'\nimport { P } from './P'\n\nexport { Info }\n\nfunction Info({ children }: { children: React.ReactNode }) {\n return (\n <blockquote>\n <P>{children}</P>\n </blockquote>\n )\n}\n","import React from 'react'\nimport { Info } from './Info'\nimport { Link } from './Link'\n\nexport { ReadingRecommendation }\n\nfunction ReadingRecommendation({ tour, links }: { tour?: true; links: string[] }) {\n const multiple = links.length + (tour ? 1 : 0) > 1\n return (\n <Info>\n {multiple ? ' ' : ''}\n <b>Reading Recommendation{multiple ? '.' : ': '}</b>\n {(() => {\n if (!multiple) {\n const link = tour ? <TourLink /> : <Link href={links[0]} />\n return (\n <>\n {link}\n {'.'}\n </>\n )\n }\n return (\n <ul\n style={{\n marginLeft: 18,\n marginTop: 11\n }}\n >\n {tour && (\n <li>\n <TourLink />\n </li>\n )}\n {links.map((link, i) => (\n <li key={i}>\n <Link href={link} />\n </li>\n ))}\n </ul>\n )\n })()}\n </Info>\n )\n}\n\nfunction TourLink() {\n return (\n <>\n <Link href={'/react-tour'} noBreadcrumb={true} /> or <Link href={'/vue-tour'} noBreadcrumb={true} />\n </>\n )\n}\n","export { Note }\n\nimport React from 'react'\nimport { assert } from '../utils/server'\n\nfunction Note({\n type,\n icon,\n children\n}: {\n icon: JSX.Element | string\n type?: 'error' | 'warning'\n children: JSX.Element\n}) {\n assert(type === undefined || ['error', 'warning'].includes(type))\n if (!icon) {\n if (type === 'error') {\n icon = ':no_entry:'\n }\n if (type === 'warning') {\n icon = ':warning:'\n }\n }\n return (\n <blockquote className={type}>\n <div style={{ marginBottom: 20 }} />\n {icon} {children}\n <div style={{ marginTop: 20 }} />\n </blockquote>\n )\n}\n","import React from 'react'\nimport { assert } from '../utils/server'\n\nexport { ImportMeta }\n\nfunction ImportMeta({ prop }: { prop: string }) {\n assert(!prop.startsWith('import'))\n assert(!prop.startsWith('.'))\n const text = 'imp' + 'ort.meta.' + prop\n return <code>{text}</code>\n}\n","import React from 'react'\n\nexport { HorizontalLine }\n\nfunction HorizontalLine({ primary }: { primary?: true }) {\n return (\n <div className={'header-separator-line ' + (primary ? 'primary' : '')} style={{ textAlign: 'center' }}>\n <hr\n style={{\n display: 'inline-block',\n margin: 0,\n border: 0,\n borderTop: '1px solid #eee',\n maxWidth: 500,\n width: '80%'\n }}\n />\n </div>\n )\n}\n","import React from 'react'\nimport iconHeart from '../icons/heart.svg'\nimport { usePageContext } from '../renderer/usePageContext'\nimport { assert, Emoji } from '../utils/server'\nimport ccoliLogo from './Sponsors/companyLogos/ccoli.svg'\nimport contraLogo from './Sponsors/companyLogos/contra.svg'\nimport mfqsLogo from './Sponsors/companyLogos/mfqs.svg'\nimport medalGold from './Sponsors/medalGold.svg'\nimport medalSilver from './Sponsors/medalSilver.svg'\nimport medalBronze from './Sponsors/medalBronze.svg'\nimport labelBgImg from './Sponsors/label.svg'\n\nexport { Sponsors }\n\ntype Plan = 'FREE_SLOT' | 'bronze' | 'silver' | 'gold' | 'platinum'\n\ntype SponsorCompany = {\n companyName: string\n companyLogo: string\n website: string\n plan: Plan\n}\ntype SponsorIndividual = {\n username: string\n}\ntype Sponsor = SponsorCompany | SponsorIndividual\n\nconst sponsors: Sponsor[] = [\n {\n companyName: 'Contra',\n companyLogo: contraLogo,\n plan: 'gold',\n website: 'https://contra.com'\n },\n {\n companyName: 'ccoli',\n companyLogo: ccoliLogo,\n plan: 'silver',\n website: 'https://ccoli.co'\n },\n {\n companyName: 'My Favorite Quilt Store',\n companyLogo: mfqsLogo,\n plan: 'bronze',\n website: 'https://myfavoritequiltstore.com'\n },\n {\n username: 'spacedawwwg'\n },\n {\n username: 'codthing'\n },\n {\n username: 'Junaidhkn'\n },\n {\n username: 'zgfdev'\n }\n]\n\nfunction Sponsors() {\n const pageContext = usePageContext()\n const { projectInfo } = pageContext.config\n return (\n <div style={{ textAlign: 'center', marginTop: 19 }}>\n <a\n className=\"button\"\n href=\"https://github.com/sponsors/brillout\"\n style={{\n color: 'inherit',\n display: 'inline-flex',\n alignItems: 'center',\n padding: '5px 10px',\n marginBottom: 10\n }}\n >\n <img src={iconHeart} height={22} /> <span style={{ marginLeft: 7, fontSize: '1.07em' }}>Sponsor</span>\n </a>\n <div></div>\n <div style={{ maxWidth: 400, display: 'inline-block', marginTop: 12, marginBottom: 12 }}>\n {projectInfo.projectNameJsx || projectInfo.projectName} is free and open source, made possible by wonderful\n sponsors.\n </div>\n <div style={{ display: 'flex', flexWrap: 'wrap', justifyContent: 'center', alignItems: 'end' }}>\n {sponsors.map((sponsor, i) => (\n <SponsorDiv sponsor={sponsor} key={i} />\n ))}\n </div>\n </div>\n )\n}\n\nfunction SponsorDiv({ sponsor }: { sponsor: Sponsor }) {\n let imgSrc: string\n let imgAlt: string | undefined\n let width: number\n let height: number\n let website: string\n let padding: number\n let backgroundColor = '#f0f0f0'\n let label: null | JSX.Element = null\n if ('username' in sponsor) {\n website = `https://github.com/${sponsor.username}`\n imgSrc = `https://github.com/${sponsor.username}.png?size=30`\n width = 30\n height = 30\n padding = 0\n backgroundColor = 'none'\n } else {\n imgSrc = sponsor.companyLogo\n website = sponsor.website\n const size = getSize(sponsor.plan)\n width = size.width\n height = size.height\n padding = size.padding\n imgAlt = sponsor.companyName\n label = <Label sponsor={sponsor} />\n }\n const marginWidth = 5\n return (\n <a\n href={website}\n style={{\n margin: `10px ${marginWidth}px`\n }}\n >\n {label}\n <div\n style={{\n backgroundColor,\n borderRadius: 7,\n overflow: 'hidden',\n width,\n maxWidth: `calc(100vw - 2 * var(--main-view-padding) - 2 * ${marginWidth}px)`,\n height,\n display: 'flex',\n alignItems: 'center',\n flexDirection: 'column',\n justifyContent: 'center'\n }}\n >\n <img\n style={{ width: `calc(100% - ${padding}px)`, height: height - padding, zIndex: 2 }}\n src={imgSrc}\n alt={imgAlt}\n />\n </div>\n </a>\n )\n}\n\nfunction Label({ sponsor }: { sponsor: Sponsor }) {\n assert(!('username' in sponsor))\n const labelBg = getLabelBg(sponsor)\n const labelIcon = getLabelIcon(sponsor)\n const labelText = getLabelText(sponsor)\n return (\n <div\n style={{\n top: 0,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n position: 'relative',\n paddingBottom: 1\n }}\n >\n {labelBg}\n {labelIcon}\n {labelText}\n </div>\n )\n}\n\nfunction getLabelBg(sponsor: SponsorCompany) {\n const height = sponsor.plan === 'platinum' ? 32 : 24\n return <img src={labelBgImg} style={{ height, position: 'absolute', bottom: 0, zIndex: -1 }} />\n}\n\nfunction getLabelText(sponsor: SponsorCompany) {\n if (sponsor.plan === 'platinum') {\n return <></>\n }\n const letterSpacing = ['bronze', 'silver', 'gold'].includes(sponsor.plan) ? 1 : undefined\n return (\n <>\n {' '}\n <span\n style={{\n zIndex: 1,\n fontSize: '0.82em',\n position: 'relative',\n top: 0,\n fontWeight: 500,\n color: '#666',\n letterSpacing\n }}\n >\n {capitalizeFirstLetter(sponsor.plan)}\n </span>\n </>\n )\n}\n\nfunction getLabelIcon(sponsor: SponsorCompany) {\n let medalSrc: string\n if (sponsor.plan === 'platinum') {\n return <Emoji name=\"trophy\" style={{ fontSize: '1.3em' }} />\n } else if (sponsor.plan === 'gold') {\n medalSrc = medalGold\n } else if (sponsor.plan === 'silver') {\n medalSrc = medalSilver\n } else if (sponsor.plan === 'bronze') {\n medalSrc = medalBronze\n } else {\n assert(false)\n }\n return <img src={medalSrc} style={{ height: 15, zIndex: 1, marginRight: 5 }} />\n}\n\nfunction getSize(plan: Plan) {\n if (plan === 'platinum') {\n assert(false)\n }\n if (plan === 'gold') {\n return { width: 400, height: 150, padding: 95 }\n }\n if (plan === 'silver') {\n return { width: 300, height: 100, padding: 45 }\n }\n if (plan === 'bronze') {\n return { width: 200, height: 70, padding: 30 }\n }\n if (plan === 'FREE_SLOT') {\n return { width: 150, height: 40, padding: 15 }\n }\n assert(false)\n}\n\nfunction capitalizeFirstLetter(word: string): string {\n return word[0].toUpperCase() + word.slice(1)\n}\n","export { CodeBlock }\n\nimport React from 'react'\nimport { assert, objectAssign } from '../utils/server'\n\nfunction CodeBlock({ children, lineBreak }: { children: any; lineBreak?: true }) {\n assert(lineBreak, '`lineBreak: true` is currently the only use case for <CodeBlock>')\n const style = {}\n if (lineBreak) {\n objectAssign(style, {\n wordWrap: 'break-word',\n wordBreak: 'break-all',\n whiteSpace: 'initial',\n paddingRight: '16px !important'\n })\n }\n return (\n <pre>\n <code style={style}>{children}</code>\n </pre>\n )\n}\n"],"mappings":"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","names":["React","heading","React","React","React","React","React","React","React","React","React","React","React","React","React","React","React","React","React"]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|