@brillout/docpress 0.1.9 → 0.1.10

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 (141) hide show
  1. package/{src/css/Inter-Var.ttf → dist/Inter-Var-IOAEQULN.ttf} +0 -0
  2. package/{src/components/Sponsors/companyLogos/ccoli.svg → dist/ccoli-CHW3TQKS.svg} +0 -0
  3. package/{src/icons/changelog.svg → dist/changelog-IPI5F42D.svg} +0 -0
  4. package/{src/navigation/navigation-fullscreen/chevron.svg → dist/chevron-K3WPYLOP.svg} +0 -0
  5. package/{src/components/features/chevron.svg → dist/chevron-R2IYJD62.svg} +0 -0
  6. package/dist/chunk-3NFN2KUH.js +1 -0
  7. package/dist/chunk-3NFN2KUH.js.map +1 -0
  8. package/dist/chunk-G2KXEHNF.js +56 -0
  9. package/dist/chunk-G2KXEHNF.js.map +1 -0
  10. package/dist/chunk-G6OTZHVA.js +9 -0
  11. package/dist/chunk-G6OTZHVA.js.map +1 -0
  12. package/dist/chunk-JKLALMFU.js +103 -0
  13. package/dist/chunk-JKLALMFU.js.map +1 -0
  14. package/dist/chunk-OEVBWUR6.js +92 -0
  15. package/dist/chunk-OEVBWUR6.js.map +1 -0
  16. package/dist/chunk-TTLAZ2T2.js +8 -0
  17. package/dist/chunk-TTLAZ2T2.js.map +1 -0
  18. package/dist/chunk-UCY72YQS.js +178 -0
  19. package/dist/chunk-UCY72YQS.js.map +1 -0
  20. package/dist/cli/index.d.ts +1 -0
  21. package/dist/cli/index.js +11 -7
  22. package/dist/cli/index.js.map +1 -0
  23. package/{src/navigation/navigation-fullscreen/close.svg → dist/close-IQXTDOHV.svg} +0 -0
  24. package/{src/utils/Emoji/compass.svg → dist/compass-2RWQU3E4.svg} +0 -0
  25. package/{src/components/Sponsors/companyLogos/contra.svg → dist/contra-WLZBOPBV.svg} +0 -0
  26. package/dist/{cli/devServer.js → devServer-UEJORYCC.js} +3 -1
  27. package/dist/devServer-UEJORYCC.js.map +1 -0
  28. package/{src/icons/discord.svg → dist/discord-JD33TUSF.svg} +0 -0
  29. package/{src/utils/Emoji/engine.png → dist/engine-6Q6VSCVA.png} +0 -0
  30. package/{src/icons/github.svg → dist/github-P5ZSKN2N.svg} +0 -0
  31. package/{src/icons/heart.svg → dist/heart-OINVKOXO.svg} +0 -0
  32. package/dist/index.css +121 -0
  33. package/dist/index.css.map +1 -0
  34. package/dist/index.d.ts +135 -0
  35. package/dist/index.js +488 -0
  36. package/dist/index.js.map +1 -0
  37. package/{src/components/Sponsors/label.svg → dist/label-MP75CTIA.svg} +0 -0
  38. package/{src/utils/Emoji/mechanical-arm.svg → dist/mechanical-arm-TR7IQQMG.svg} +0 -0
  39. package/{src/components/Sponsors/medalBronze.svg → dist/medalBronze-CO4CTUR4.svg} +0 -0
  40. package/{src/components/Sponsors/medalGold.svg → dist/medalGold-UP6A73FL.svg} +0 -0
  41. package/{src/components/Sponsors/medalSilver.svg → dist/medalSilver-FAPGGOBN.svg} +0 -0
  42. package/{src/components/Sponsors/companyLogos/mfqs.svg → dist/mfqs-2EAEE7N6.svg} +0 -0
  43. package/{src/utils/Emoji/road-fork.svg → dist/road-fork-3WZLW3HB.svg} +0 -0
  44. package/{src/utils/Emoji/shield.svg → dist/shield-CU45RG5C.svg} +0 -0
  45. package/{src → dist/src}/components/features/FeatureList.css +2 -7
  46. package/dist/src/components/features/FeatureList.css.map +1 -0
  47. package/dist/src/components/features/FeatureList.d.ts +13 -0
  48. package/dist/src/components/features/FeatureList.js +8 -0
  49. package/dist/src/components/features/FeatureList.js.map +1 -0
  50. package/dist/src/components/features/initFeatureList.d.ts +3 -0
  51. package/dist/src/components/features/initFeatureList.js +60 -0
  52. package/dist/src/components/features/initFeatureList.js.map +1 -0
  53. package/dist/src/renderer/_default.page.client.css +272 -0
  54. package/dist/src/renderer/_default.page.client.css.map +1 -0
  55. package/dist/src/renderer/_default.page.client.d.ts +1 -0
  56. package/dist/src/renderer/_default.page.client.js +182 -0
  57. package/dist/src/renderer/_default.page.client.js.map +1 -0
  58. package/dist/src/renderer/_default.page.server.css +312 -0
  59. package/dist/src/renderer/_default.page.server.css.map +1 -0
  60. package/dist/src/renderer/_default.page.server.d.ts +22 -0
  61. package/dist/src/renderer/_default.page.server.js +602 -0
  62. package/dist/src/renderer/_default.page.server.js.map +1 -0
  63. package/{src/icons/twitter.svg → dist/twitter-I7DXDN3J.svg} +0 -0
  64. package/{src/utils/Emoji/typescript.svg → dist/typescript-ALIPKLRM.svg} +0 -0
  65. package/package.json +25 -17
  66. package/vite.config.ts +10 -4
  67. package/cli.mjs +0 -2
  68. package/dist/cli/chunk-Y3OKG4SS.js +0 -30
  69. package/dist/cli/configFile.js +0 -6
  70. package/src/MobileHeader.tsx +0 -68
  71. package/src/PageLayout.css +0 -41
  72. package/src/PageLayout.tsx +0 -37
  73. package/src/algolia/DocSearch.css +0 -29
  74. package/src/algolia/DocSearch.ts +0 -37
  75. package/src/autoScrollNav.ts +0 -22
  76. package/src/components/CodeBlock.tsx +0 -22
  77. package/src/components/DocLink.tsx +0 -108
  78. package/src/components/EditPageNote.tsx +0 -18
  79. package/src/components/HorizontalLine.tsx +0 -20
  80. package/src/components/ImportMeta.tsx +0 -11
  81. package/src/components/Info.tsx +0 -12
  82. package/src/components/Link.tsx +0 -18
  83. package/src/components/Note.tsx +0 -31
  84. package/src/components/P.css +0 -8
  85. package/src/components/P.tsx +0 -8
  86. package/src/components/ReadingRecommendation.tsx +0 -53
  87. package/src/components/RepoLink.tsx +0 -24
  88. package/src/components/Sponsors/companyLogos/ccoli-logo.svg +0 -1
  89. package/src/components/Sponsors/companyLogos/ccoli-text.svg +0 -1
  90. package/src/components/Sponsors/label.draft.svg +0 -108
  91. package/src/components/Sponsors.tsx +0 -243
  92. package/src/components/features/FeatureList.tsx +0 -114
  93. package/src/components/features/initFeatureList.ts +0 -66
  94. package/src/components/index.ts +0 -13
  95. package/src/config/Config.ts +0 -30
  96. package/src/config/getConfig.ts +0 -18
  97. package/src/config/resolveConfig/resolveHeading.ts +0 -0
  98. package/src/config/resolvePageContext.ts +0 -157
  99. package/src/css/button.css +0 -7
  100. package/src/css/code/block.css +0 -36
  101. package/src/css/code/inline.css +0 -27
  102. package/src/css/code.css +0 -20
  103. package/src/css/colorize-on-hover.css +0 -29
  104. package/src/css/font.css +0 -19
  105. package/src/css/heading.css +0 -25
  106. package/src/css/index.css +0 -10
  107. package/src/css/link.css +0 -17
  108. package/src/css/note.css +0 -26
  109. package/src/css/reset.css +0 -12
  110. package/src/css/table.css +0 -14
  111. package/src/css/tooltip.css +0 -11
  112. package/src/headings.ts +0 -201
  113. package/src/index.ts +0 -3
  114. package/src/installSectionUrlHashs.ts +0 -50
  115. package/src/navigation/Navigation-highlight.css +0 -41
  116. package/src/navigation/Navigation-items.css +0 -122
  117. package/src/navigation/Navigation-layout.css +0 -118
  118. package/src/navigation/Navigation.client.old.ts +0 -303
  119. package/src/navigation/Navigation.client.ts +0 -19
  120. package/src/navigation/Navigation.css +0 -12
  121. package/src/navigation/Navigation.tsx +0 -229
  122. package/src/navigation/NavigationHeader.tsx +0 -97
  123. package/src/navigation/navigation-fullscreen/NavigationFullscreenButton.css +0 -32
  124. package/src/navigation/navigation-fullscreen/NavigationFullscreenButton.tsx +0 -44
  125. package/src/navigation/navigation-fullscreen/initNavigationFullscreen.ts +0 -115
  126. package/src/parseEmojis.ts +0 -33
  127. package/src/renderer/_default.page.client.ts +0 -7
  128. package/src/renderer/_default.page.server.tsx +0 -69
  129. package/src/renderer/usePageContext.tsx +0 -25
  130. package/src/types.ts +0 -2
  131. package/src/utils/Emoji/Emoji.ts +0 -216
  132. package/src/utils/Emoji/assets.ts +0 -9
  133. package/src/utils/Emoji/index.ts +0 -1
  134. package/src/utils/Emoji/mountain.svg +0 -1
  135. package/src/utils/assert.ts +0 -39
  136. package/src/utils/determineSectionUrlHash.ts +0 -35
  137. package/src/utils/filter.ts +0 -12
  138. package/src/utils/index.ts +0 -6
  139. package/src/utils/isBrowser.ts +0 -5
  140. package/src/utils/jsxToTextContent.ts +0 -11
  141. package/src/utils/objectAssign.ts +0 -9
package/dist/index.js ADDED
@@ -0,0 +1,488 @@
1
+ import "./chunk-3NFN2KUH.js";
2
+ import {
3
+ RepoLink,
4
+ getHeadings,
5
+ isRepoLink,
6
+ parseTitle,
7
+ usePageContext
8
+ } from "./chunk-UCY72YQS.js";
9
+ import {
10
+ Emoji
11
+ } from "./chunk-G2KXEHNF.js";
12
+ import {
13
+ FeatureList
14
+ } from "./chunk-OEVBWUR6.js";
15
+ import {
16
+ assert,
17
+ assertUsage,
18
+ determineSectionTitle,
19
+ determineSectionUrlHash,
20
+ filter,
21
+ isBrowser,
22
+ jsxToTextContent,
23
+ objectAssign
24
+ } from "./chunk-JKLALMFU.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", {
40
+ href
41
+ }, text || getTitle({ href, noBreadcrumb, pageContext, doNotInferSectionTitle }));
42
+ }
43
+ function getTitle({
44
+ href,
45
+ noBreadcrumb,
46
+ pageContext,
47
+ doNotInferSectionTitle
48
+ }) {
49
+ let urlHash = null;
50
+ let hrefWithoutHash = href;
51
+ if (href.includes("#")) {
52
+ ;
53
+ [hrefWithoutHash, urlHash] = href.split("#");
54
+ }
55
+ const heading = findHeading(hrefWithoutHash, pageContext);
56
+ const breadcrumbs = [];
57
+ if ("parentHeadings" in heading) {
58
+ breadcrumbs.push(
59
+ ...heading.parentHeadings.slice().reverse().map(({ title }) => title)
60
+ );
61
+ }
62
+ breadcrumbs.push(heading.title);
63
+ if (urlHash) {
64
+ let sectionTitle = void 0;
65
+ if ("sectionTitles" in heading && heading.sectionTitles) {
66
+ heading.sectionTitles.forEach((title) => {
67
+ if (determineSectionUrlHash(title) === urlHash) {
68
+ sectionTitle = parseTitle(title);
69
+ }
70
+ });
71
+ }
72
+ if (!sectionTitle) {
73
+ assertUsage(
74
+ !doNotInferSectionTitle,
75
+ `Page section title not found for <Link href="\`${href}\`" doNotInferSectionTitle={true} />.`
76
+ );
77
+ sectionTitle = determineSectionTitle(href, pageContext.config.titleNormalCase);
78
+ }
79
+ breadcrumbs.push(sectionTitle);
80
+ }
81
+ {
82
+ const linkIsOnSamePage = heading.url === pageContext.urlPathname;
83
+ if (noBreadcrumb || linkIsOnSamePage) {
84
+ return breadcrumbs[breadcrumbs.length - 1];
85
+ }
86
+ }
87
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, breadcrumbs.map((title, i) => {
88
+ const seperator = i === 0 ? /* @__PURE__ */ React.createElement(React.Fragment, null) : " > ";
89
+ return /* @__PURE__ */ React.createElement(React.Fragment, {
90
+ key: i
91
+ }, seperator, title);
92
+ }));
93
+ }
94
+ function findHeading(href, pageContext) {
95
+ assert(href.startsWith("/"), `\`href==='${href}'\` but should start with \`/\`.`);
96
+ const { headings, headingsWithoutLink } = getHeadings(pageContext.config);
97
+ {
98
+ const heading2 = headingsWithoutLink.find(({ url }) => href === url);
99
+ if (heading2) {
100
+ return heading2;
101
+ }
102
+ }
103
+ const heading = headings.find(({ url }) => href === url);
104
+ assert(heading, `Could not find page \`${href}\`. Does it exist?`);
105
+ return heading;
106
+ }
107
+
108
+ // src/components/Link.tsx
109
+ function Link(props) {
110
+ if (isRepoLink(props.href)) {
111
+ return /* @__PURE__ */ React2.createElement(RepoLink, {
112
+ path: props.href,
113
+ text: props.text
114
+ });
115
+ } else {
116
+ return /* @__PURE__ */ React2.createElement(DocLink, {
117
+ ...props
118
+ });
119
+ }
120
+ }
121
+
122
+ // src/components/P.tsx
123
+ import React3 from "react";
124
+ function P(props) {
125
+ return /* @__PURE__ */ React3.createElement("div", {
126
+ ...props,
127
+ className: "paragraph"
128
+ });
129
+ }
130
+
131
+ // src/components/Info.tsx
132
+ import React4 from "react";
133
+ function Info({ children }) {
134
+ return /* @__PURE__ */ React4.createElement("blockquote", null, /* @__PURE__ */ React4.createElement(P, null, children));
135
+ }
136
+
137
+ // src/components/ReadingRecommendation.tsx
138
+ import React5 from "react";
139
+ function ReadingRecommendation({ tour, links }) {
140
+ const multiple = links.length + (tour ? 1 : 0) > 1;
141
+ return /* @__PURE__ */ React5.createElement(Info, null, multiple ? " " : "", /* @__PURE__ */ React5.createElement("b", null, "Reading Recommendation", multiple ? "." : ": "), (() => {
142
+ if (!multiple) {
143
+ const link = tour ? /* @__PURE__ */ React5.createElement(TourLink, null) : /* @__PURE__ */ React5.createElement(Link, {
144
+ href: links[0]
145
+ });
146
+ return /* @__PURE__ */ React5.createElement(React5.Fragment, null, link, ".");
147
+ }
148
+ return /* @__PURE__ */ React5.createElement("ul", {
149
+ style: {
150
+ marginLeft: 18,
151
+ marginTop: 11
152
+ }
153
+ }, tour && /* @__PURE__ */ React5.createElement("li", null, /* @__PURE__ */ React5.createElement(TourLink, null)), links.map((link, i) => /* @__PURE__ */ React5.createElement("li", {
154
+ key: i
155
+ }, /* @__PURE__ */ React5.createElement(Link, {
156
+ href: link
157
+ }))));
158
+ })());
159
+ }
160
+ function TourLink() {
161
+ return /* @__PURE__ */ React5.createElement(React5.Fragment, null, /* @__PURE__ */ React5.createElement(Link, {
162
+ href: "/react-tour",
163
+ noBreadcrumb: true
164
+ }), " or ", /* @__PURE__ */ React5.createElement(Link, {
165
+ href: "/vue-tour",
166
+ noBreadcrumb: true
167
+ }));
168
+ }
169
+
170
+ // src/components/Note.tsx
171
+ import React6 from "react";
172
+ function Note({
173
+ type,
174
+ icon,
175
+ children
176
+ }) {
177
+ assert(type === void 0 || ["error", "warning"].includes(type));
178
+ if (!icon) {
179
+ if (type === "error") {
180
+ icon = ":no_entry:";
181
+ }
182
+ if (type === "warning") {
183
+ icon = ":warning:";
184
+ }
185
+ }
186
+ return /* @__PURE__ */ React6.createElement("blockquote", {
187
+ className: type
188
+ }, /* @__PURE__ */ React6.createElement("div", {
189
+ style: { marginBottom: 20 }
190
+ }), icon, " ", children, /* @__PURE__ */ React6.createElement("div", {
191
+ style: { marginTop: 20 }
192
+ }));
193
+ }
194
+
195
+ // src/components/ImportMeta.tsx
196
+ import React7 from "react";
197
+ function ImportMeta({ prop }) {
198
+ assert(!prop.startsWith("import"));
199
+ assert(!prop.startsWith("."));
200
+ const text = "import.meta." + prop;
201
+ return /* @__PURE__ */ React7.createElement("code", null, text);
202
+ }
203
+
204
+ // src/components/HorizontalLine.tsx
205
+ import React8 from "react";
206
+ function HorizontalLine({ primary }) {
207
+ return /* @__PURE__ */ React8.createElement("div", {
208
+ className: "header-separator-line " + (primary ? "primary" : ""),
209
+ style: { textAlign: "center" }
210
+ }, /* @__PURE__ */ React8.createElement("hr", {
211
+ style: {
212
+ display: "inline-block",
213
+ margin: 0,
214
+ border: 0,
215
+ borderTop: "1px solid #eee",
216
+ maxWidth: 500,
217
+ width: "80%"
218
+ }
219
+ }));
220
+ }
221
+
222
+ // src/components/Sponsors.tsx
223
+ import React9 from "react";
224
+
225
+ // src/icons/heart.svg
226
+ var heart_default = "/assets/heart-OINVKOXO.svg";
227
+
228
+ // src/components/Sponsors/companyLogos/ccoli.svg
229
+ var ccoli_default = "/assets/ccoli-CHW3TQKS.svg";
230
+
231
+ // src/components/Sponsors/companyLogos/contra.svg
232
+ var contra_default = "/assets/contra-WLZBOPBV.svg";
233
+
234
+ // src/components/Sponsors/companyLogos/mfqs.svg
235
+ var mfqs_default = "/assets/mfqs-2EAEE7N6.svg";
236
+
237
+ // src/components/Sponsors/medalGold.svg
238
+ var medalGold_default = "/assets/medalGold-UP6A73FL.svg";
239
+
240
+ // src/components/Sponsors/medalSilver.svg
241
+ var medalSilver_default = "/assets/medalSilver-FAPGGOBN.svg";
242
+
243
+ // src/components/Sponsors/medalBronze.svg
244
+ var medalBronze_default = "/assets/medalBronze-CO4CTUR4.svg";
245
+
246
+ // src/components/Sponsors/label.svg
247
+ var label_default = "/assets/label-MP75CTIA.svg";
248
+
249
+ // src/components/Sponsors.tsx
250
+ var sponsors = [
251
+ {
252
+ companyName: "Contra",
253
+ companyLogo: contra_default,
254
+ plan: "gold",
255
+ website: "https://contra.com"
256
+ },
257
+ {
258
+ companyName: "ccoli",
259
+ companyLogo: ccoli_default,
260
+ plan: "silver",
261
+ website: "https://ccoli.co"
262
+ },
263
+ {
264
+ companyName: "My Favorite Quilt Store",
265
+ companyLogo: mfqs_default,
266
+ plan: "bronze",
267
+ website: "https://myfavoritequiltstore.com"
268
+ },
269
+ {
270
+ username: "spacedawwwg"
271
+ },
272
+ {
273
+ username: "codthing"
274
+ },
275
+ {
276
+ username: "Junaidhkn"
277
+ },
278
+ {
279
+ username: "zgfdev"
280
+ }
281
+ ];
282
+ function Sponsors() {
283
+ const pageContext = usePageContext();
284
+ const { projectInfo } = pageContext.config;
285
+ return /* @__PURE__ */ React9.createElement("div", {
286
+ style: { textAlign: "center", marginTop: 19 }
287
+ }, /* @__PURE__ */ React9.createElement("a", {
288
+ className: "button",
289
+ href: "https://github.com/sponsors/brillout",
290
+ style: {
291
+ color: "inherit",
292
+ display: "inline-flex",
293
+ alignItems: "center",
294
+ padding: "5px 10px",
295
+ marginBottom: 10
296
+ }
297
+ }, /* @__PURE__ */ React9.createElement("img", {
298
+ src: heart_default,
299
+ height: 22
300
+ }), " ", /* @__PURE__ */ React9.createElement("span", {
301
+ style: { marginLeft: 7, fontSize: "1.07em" }
302
+ }, "Sponsor")), /* @__PURE__ */ React9.createElement("div", null), /* @__PURE__ */ React9.createElement("div", {
303
+ style: { maxWidth: 400, display: "inline-block", marginTop: 12, marginBottom: 12 }
304
+ }, projectInfo.projectNameJsx || projectInfo.projectName, " is free and open source, made possible by wonderful sponsors."), /* @__PURE__ */ React9.createElement("div", {
305
+ style: { display: "flex", flexWrap: "wrap", justifyContent: "center", alignItems: "end" }
306
+ }, sponsors.map((sponsor, i) => /* @__PURE__ */ React9.createElement(SponsorDiv, {
307
+ sponsor,
308
+ key: i
309
+ }))));
310
+ }
311
+ function SponsorDiv({ sponsor }) {
312
+ let imgSrc;
313
+ let imgAlt;
314
+ let width;
315
+ let height;
316
+ let website;
317
+ let padding;
318
+ let backgroundColor = "#f0f0f0";
319
+ let label = null;
320
+ if ("username" in sponsor) {
321
+ website = `https://github.com/${sponsor.username}`;
322
+ imgSrc = `https://github.com/${sponsor.username}.png?size=30`;
323
+ width = 30;
324
+ height = 30;
325
+ padding = 0;
326
+ backgroundColor = "none";
327
+ } else {
328
+ imgSrc = sponsor.companyLogo;
329
+ website = sponsor.website;
330
+ const size = getSize(sponsor.plan);
331
+ width = size.width;
332
+ height = size.height;
333
+ padding = size.padding;
334
+ imgAlt = sponsor.companyName;
335
+ label = /* @__PURE__ */ React9.createElement(Label, {
336
+ sponsor
337
+ });
338
+ }
339
+ const marginWidth = 5;
340
+ return /* @__PURE__ */ React9.createElement("a", {
341
+ href: website,
342
+ style: {
343
+ margin: `10px ${marginWidth}px`
344
+ }
345
+ }, label, /* @__PURE__ */ React9.createElement("div", {
346
+ style: {
347
+ backgroundColor,
348
+ borderRadius: 7,
349
+ overflow: "hidden",
350
+ width,
351
+ maxWidth: `calc(100vw - 2 * var(--main-view-padding) - 2 * ${marginWidth}px)`,
352
+ height,
353
+ display: "flex",
354
+ alignItems: "center",
355
+ flexDirection: "column",
356
+ justifyContent: "center"
357
+ }
358
+ }, /* @__PURE__ */ React9.createElement("img", {
359
+ style: { width: `calc(100% - ${padding}px)`, height: height - padding, zIndex: 2 },
360
+ src: imgSrc,
361
+ alt: imgAlt
362
+ })));
363
+ }
364
+ function Label({ sponsor }) {
365
+ assert(!("username" in sponsor));
366
+ const labelBg = getLabelBg(sponsor);
367
+ const labelIcon = getLabelIcon(sponsor);
368
+ const labelText = getLabelText(sponsor);
369
+ return /* @__PURE__ */ React9.createElement("div", {
370
+ style: {
371
+ top: 0,
372
+ display: "flex",
373
+ justifyContent: "center",
374
+ alignItems: "center",
375
+ position: "relative",
376
+ paddingBottom: 1
377
+ }
378
+ }, labelBg, labelIcon, labelText);
379
+ }
380
+ function getLabelBg(sponsor) {
381
+ const height = sponsor.plan === "platinum" ? 32 : 24;
382
+ return /* @__PURE__ */ React9.createElement("img", {
383
+ src: label_default,
384
+ style: { height, position: "absolute", bottom: 0, zIndex: -1 }
385
+ });
386
+ }
387
+ function getLabelText(sponsor) {
388
+ if (sponsor.plan === "platinum") {
389
+ return /* @__PURE__ */ React9.createElement(React9.Fragment, null);
390
+ }
391
+ const letterSpacing = ["bronze", "silver", "gold"].includes(sponsor.plan) ? 1 : void 0;
392
+ return /* @__PURE__ */ React9.createElement(React9.Fragment, null, " ", /* @__PURE__ */ React9.createElement("span", {
393
+ style: {
394
+ zIndex: 1,
395
+ fontSize: "0.82em",
396
+ position: "relative",
397
+ top: 0,
398
+ fontWeight: 500,
399
+ color: "#666",
400
+ letterSpacing
401
+ }
402
+ }, capitalizeFirstLetter(sponsor.plan)));
403
+ }
404
+ function getLabelIcon(sponsor) {
405
+ let medalSrc;
406
+ if (sponsor.plan === "platinum") {
407
+ return /* @__PURE__ */ React9.createElement(Emoji, {
408
+ name: "trophy",
409
+ style: { fontSize: "1.3em" }
410
+ });
411
+ } else if (sponsor.plan === "gold") {
412
+ medalSrc = medalGold_default;
413
+ } else if (sponsor.plan === "silver") {
414
+ medalSrc = medalSilver_default;
415
+ } else if (sponsor.plan === "bronze") {
416
+ medalSrc = medalBronze_default;
417
+ } else {
418
+ assert(false);
419
+ }
420
+ return /* @__PURE__ */ React9.createElement("img", {
421
+ src: medalSrc,
422
+ style: { height: 15, zIndex: 1, marginRight: 5 }
423
+ });
424
+ }
425
+ function getSize(plan) {
426
+ if (plan === "platinum") {
427
+ assert(false);
428
+ }
429
+ if (plan === "gold") {
430
+ return { width: 400, height: 150, padding: 95 };
431
+ }
432
+ if (plan === "silver") {
433
+ return { width: 300, height: 100, padding: 45 };
434
+ }
435
+ if (plan === "bronze") {
436
+ return { width: 200, height: 70, padding: 30 };
437
+ }
438
+ if (plan === "FREE_SLOT") {
439
+ return { width: 150, height: 40, padding: 15 };
440
+ }
441
+ assert(false);
442
+ }
443
+ function capitalizeFirstLetter(word) {
444
+ return word[0].toUpperCase() + word.slice(1);
445
+ }
446
+
447
+ // src/components/CodeBlock.tsx
448
+ import React10 from "react";
449
+ function CodeBlock({ children, lineBreak }) {
450
+ assert(lineBreak, "`lineBreak: true` is currently the only use case for <CodeBlock>");
451
+ const style = {};
452
+ if (lineBreak) {
453
+ objectAssign(style, {
454
+ wordWrap: "break-word",
455
+ wordBreak: "break-all",
456
+ whiteSpace: "initial",
457
+ paddingRight: "16px !important"
458
+ });
459
+ }
460
+ return /* @__PURE__ */ React10.createElement("pre", null, /* @__PURE__ */ React10.createElement("code", {
461
+ style
462
+ }, children));
463
+ }
464
+ export {
465
+ CodeBlock,
466
+ DocLink,
467
+ Emoji,
468
+ FeatureList,
469
+ HorizontalLine,
470
+ ImportMeta,
471
+ Info,
472
+ Link,
473
+ Note,
474
+ P,
475
+ ReadingRecommendation,
476
+ RepoLink,
477
+ Sponsors,
478
+ assert,
479
+ assertUsage,
480
+ determineSectionTitle,
481
+ determineSectionUrlHash,
482
+ filter,
483
+ isBrowser,
484
+ isRepoLink,
485
+ jsxToTextContent,
486
+ objectAssign
487
+ };
488
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
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'\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'\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'\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 } from '../utils'\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'\nimport { Emoji } from '../utils/Emoji'\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'\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"]}
@@ -1,3 +1,4 @@
1
+ /* src/components/features/FeatureList.css */
1
2
  @media screen and (min-width: 840px) {
2
3
  .features-row {
3
4
  display: grid;
@@ -16,7 +17,6 @@
16
17
  grid-column: 1 / 3;
17
18
  }
18
19
  }
19
-
20
20
  @media screen and (min-width: 840px) {
21
21
  .features-row.single-column .feature {
22
22
  grid-column: 1 / span 2 !important;
@@ -25,13 +25,11 @@
25
25
  margin: auto !important;
26
26
  }
27
27
  }
28
-
29
28
  #features {
30
29
  margin: auto;
31
30
  margin-top: 0;
32
31
  max-width: 1080px;
33
32
  }
34
-
35
33
  #features summary p {
36
34
  margin: 10px 0;
37
35
  }
@@ -46,7 +44,6 @@
46
44
  .learn-more h3:first-of-type {
47
45
  margin-top: 15px;
48
46
  }
49
-
50
47
  .learn-more {
51
48
  border: var(--border-width) solid var(--border-color);
52
49
  padding: 10px 8px;
@@ -98,8 +95,6 @@ aside.learn-more.right-side {
98
95
  border-bottom: 0 !important;
99
96
  z-index: 1;
100
97
  }
101
-
102
- /* Hide top border of .learn-more */
103
98
  .learn-more {
104
99
  position: relative;
105
100
  top: calc(-1 * var(--border-width));
@@ -108,10 +103,10 @@ aside.learn-more.right-side {
108
103
  position: relative;
109
104
  z-index: 1;
110
105
  }
111
-
112
106
  .feature .chevron {
113
107
  transition: filter 0.3s ease-in-out, transform 0.3s ease-in-out !important;
114
108
  }
115
109
  .feature.selected .chevron {
116
110
  transform: rotate(180deg);
117
111
  }
112
+ /*# sourceMappingURL=FeatureList.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/features/FeatureList.css"],"sourcesContent":["@media screen and (min-width: 840px) {\n .features-row {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n }\n .features-row summary:nth-of-type(1) {\n grid-row: 1;\n grid-column: 1 / 2;\n }\n .features-row summary:nth-of-type(2) {\n grid-row: 1;\n grid-column: 2 / 3;\n }\n .features-row aside {\n grid-row: 2;\n grid-column: 1 / 3;\n }\n}\n\n@media screen and (min-width: 840px) {\n .features-row.single-column .feature {\n grid-column: 1 / span 2 !important;\n width: 100% !important;\n max-width: calc(1010px / 2) !important;\n margin: auto !important;\n }\n}\n\n#features {\n margin: auto;\n margin-top: 0;\n max-width: 1080px;\n}\n\n#features summary p {\n margin: 10px 0;\n}\n#features h2 {\n margin-bottom: 0.7em;\n margin-top: 0.5em;\n}\n#features .secondary-feature h2 {\n font-size: 1.1em;\n margin-bottom: 0.7em;\n}\n.learn-more h3:first-of-type {\n margin-top: 15px;\n}\n\n.learn-more {\n border: var(--border-width) solid var(--border-color);\n padding: 10px 8px;\n}\n@media screen and (min-width: 840px) {\n .learn-more {\n max-width: 886px;\n border-radius: var(--border-radius);\n }\n}\naside.learn-more:not(.right-side) {\n border-top-left-radius: 0;\n}\naside.learn-more.right-side {\n border-top-right-radius: 0;\n justify-self: end;\n width: 100%;\n}\n@media screen and (max-width: 340px) {\n .learn-more {\n padding-right: 5px;\n padding-left: 5px;\n }\n}\n.learn-more {\n display: none;\n}\n.learn-more.selected {\n display: block;\n}\n#features {\n --border-radius: 20px;\n --border-width: 10px;\n --border-color: #f6f6f6;\n}\n.feature {\n padding: 8px;\n border-width: var(--border-width);\n border-style: solid;\n border-color: transparent;\n border-top-left-radius: var(--border-radius);\n border-top-right-radius: var(--border-radius);\n}\n.selected {\n border-color: var(--border-color);\n background-color: #fcfcfc;\n}\n.feature.selected {\n border-bottom: 0 !important;\n z-index: 1;\n}\n\n/* Hide top border of .learn-more */\n.learn-more {\n position: relative;\n top: calc(-1 * var(--border-width));\n}\n.feature {\n position: relative;\n z-index: 1;\n}\n\n.feature .chevron {\n transition: filter 0.3s ease-in-out, transform 0.3s ease-in-out !important;\n}\n.feature.selected .chevron {\n transform: rotate(180deg);\n}\n"],"mappings":";AAAA;AACE;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAAA;AAIJ;AACE;AACE;AACA;AACA;AACA;AAAA;AAAA;AAIJ;AACE;AACA;AACA;AAAA;AAGF;AACE;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AAAA;AAGF;AACE;AACA;AAAA;AAEF;AACE;AACE;AACA;AAAA;AAAA;AAGJ;AACE;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAEF;AACE;AACE;AACA;AAAA;AAAA;AAGJ;AACE;AAAA;AAEF;AACE;AAAA;AAEF;AACE;AACA;AACA;AAAA;AAEF;AACE;AACA;AACA;AACA;AACA;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAIF;AACE;AACA;AAAA;AAEF;AACE;AACA;AAAA;AAGF;AACE;AAAA;AAEF;AACE;AAAA;","names":[]}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+
3
+ declare type FeatureProps = {
4
+ title: React.ReactNode;
5
+ desc: React.ReactNode;
6
+ learnMore?: React.ReactNode;
7
+ isSecondaryFeature?: true;
8
+ };
9
+ declare function FeatureList({ features }: {
10
+ features: FeatureProps[];
11
+ }): JSX.Element;
12
+
13
+ export { FeatureList };
@@ -0,0 +1,8 @@
1
+ import {
2
+ FeatureList
3
+ } from "../../../chunk-OEVBWUR6.js";
4
+ import "../../../chunk-TTLAZ2T2.js";
5
+ export {
6
+ FeatureList
7
+ };
8
+ //# sourceMappingURL=FeatureList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,3 @@
1
+ declare global {
2
+ var __docpress_hydrationFinished: undefined | true;
3
+ }