@brillout/docpress 0.1.8 → 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 (140) 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/{cli/chunk-KZROB63P.js → chunk-G6OTZHVA.js} +2 -1
  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 +4 -2
  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/configFile.js +0 -6
  69. package/src/MobileHeader.tsx +0 -68
  70. package/src/PageLayout.css +0 -41
  71. package/src/PageLayout.tsx +0 -37
  72. package/src/algolia/DocSearch.css +0 -29
  73. package/src/algolia/DocSearch.ts +0 -37
  74. package/src/autoScrollNav.ts +0 -22
  75. package/src/components/CodeBlock.tsx +0 -22
  76. package/src/components/DocLink.tsx +0 -108
  77. package/src/components/EditPageNote.tsx +0 -18
  78. package/src/components/HorizontalLine.tsx +0 -20
  79. package/src/components/ImportMeta.tsx +0 -11
  80. package/src/components/Info.tsx +0 -12
  81. package/src/components/Link.tsx +0 -18
  82. package/src/components/Note.tsx +0 -31
  83. package/src/components/P.css +0 -8
  84. package/src/components/P.tsx +0 -8
  85. package/src/components/ReadingRecommendation.tsx +0 -53
  86. package/src/components/RepoLink.tsx +0 -24
  87. package/src/components/Sponsors/companyLogos/ccoli-logo.svg +0 -1
  88. package/src/components/Sponsors/companyLogos/ccoli-text.svg +0 -1
  89. package/src/components/Sponsors/label.draft.svg +0 -108
  90. package/src/components/Sponsors.tsx +0 -243
  91. package/src/components/features/FeatureList.tsx +0 -114
  92. package/src/components/features/initFeatureList.ts +0 -66
  93. package/src/components/index.ts +0 -13
  94. package/src/config/Config.ts +0 -30
  95. package/src/config/getConfig.ts +0 -18
  96. package/src/config/resolveConfig/resolveHeading.ts +0 -0
  97. package/src/config/resolvePageContext.ts +0 -157
  98. package/src/css/button.css +0 -7
  99. package/src/css/code/block.css +0 -36
  100. package/src/css/code/inline.css +0 -27
  101. package/src/css/code.css +0 -20
  102. package/src/css/colorize-on-hover.css +0 -29
  103. package/src/css/font.css +0 -19
  104. package/src/css/heading.css +0 -25
  105. package/src/css/index.css +0 -10
  106. package/src/css/link.css +0 -17
  107. package/src/css/note.css +0 -26
  108. package/src/css/reset.css +0 -12
  109. package/src/css/table.css +0 -14
  110. package/src/css/tooltip.css +0 -11
  111. package/src/headings.ts +0 -201
  112. package/src/index.ts +0 -3
  113. package/src/installSectionUrlHashs.ts +0 -50
  114. package/src/navigation/Navigation-highlight.css +0 -41
  115. package/src/navigation/Navigation-items.css +0 -122
  116. package/src/navigation/Navigation-layout.css +0 -118
  117. package/src/navigation/Navigation.client.old.ts +0 -303
  118. package/src/navigation/Navigation.client.ts +0 -19
  119. package/src/navigation/Navigation.css +0 -12
  120. package/src/navigation/Navigation.tsx +0 -229
  121. package/src/navigation/NavigationHeader.tsx +0 -97
  122. package/src/navigation/navigation-fullscreen/NavigationFullscreenButton.css +0 -32
  123. package/src/navigation/navigation-fullscreen/NavigationFullscreenButton.tsx +0 -44
  124. package/src/navigation/navigation-fullscreen/initNavigationFullscreen.ts +0 -115
  125. package/src/parseEmojis.ts +0 -33
  126. package/src/renderer/_default.page.client.ts +0 -7
  127. package/src/renderer/_default.page.server.tsx +0 -69
  128. package/src/renderer/usePageContext.tsx +0 -25
  129. package/src/types.ts +0 -2
  130. package/src/utils/Emoji/Emoji.ts +0 -216
  131. package/src/utils/Emoji/assets.ts +0 -9
  132. package/src/utils/Emoji/index.ts +0 -1
  133. package/src/utils/Emoji/mountain.svg +0 -1
  134. package/src/utils/assert.ts +0 -39
  135. package/src/utils/determineSectionUrlHash.ts +0 -35
  136. package/src/utils/filter.ts +0 -12
  137. package/src/utils/index.ts +0 -6
  138. package/src/utils/isBrowser.ts +0 -5
  139. package/src/utils/jsxToTextContent.ts +0 -11
  140. package/src/utils/objectAssign.ts +0 -9
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-3NFN2KUH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,56 @@
1
+ import {
2
+ assert
3
+ } from "./chunk-JKLALMFU.js";
4
+
5
+ // src/utils/Emoji/Emoji.ts
6
+ import React from "react";
7
+
8
+ // src/utils/Emoji/mechanical-arm.svg
9
+ var mechanical_arm_default = "/assets/mechanical-arm-TR7IQQMG.svg";
10
+
11
+ // src/utils/Emoji/compass.svg
12
+ var compass_default = "/assets/compass-2RWQU3E4.svg";
13
+
14
+ // src/utils/Emoji/road-fork.svg
15
+ var road_fork_default = "/assets/road-fork-3WZLW3HB.svg";
16
+
17
+ // src/utils/Emoji/shield.svg
18
+ var shield_default = "/assets/shield-CU45RG5C.svg";
19
+
20
+ // src/utils/Emoji/typescript.svg
21
+ var typescript_default = "/assets/typescript-ALIPKLRM.svg";
22
+
23
+ // src/utils/Emoji/engine.png
24
+ var engine_default = "/assets/engine-6Q6VSCVA.png";
25
+
26
+ // src/utils/Emoji/Emoji.ts
27
+ function Emoji({ name, style }) {
28
+ const emoji = name === "warning" && Unicode(9888, { fontFamily: "emoji" }) || name === "lab" && Unicode(9879) || name === "info" && Unicode(8505, { fontFamily: "emoji" }) || name === "package" && Unicode(128230) || name === "gift" && Unicode(127873) || name === "sparkling-heart" && Unicode(128150) || name === "red-circle" && Unicode(11093) || name === "engine" && Img(engine_default) || name === "typescript" && Img(typescript_default) || name === "shield" && Img(shield_default) || name === "road-fork" && Img(road_fork_default, "1.4em") || name === "writing-hang" && Unicode(9997) || name === "dizzy" && Unicode(128171) || name === "mechanical-arm" && Img(mechanical_arm_default) || name === "rocket" && Unicode(128640) || name === "wrench" && Unicode(128295) || name === "compass" && Img(compass_default, "1.4em") || name === "seedling" && Unicode(127793) || name === "books" && Unicode(128218) || name === "plug" && Unicode(128268) || name === "earth" && Unicode(127757) || name === "gear" && Unicode(9881) || name === "red-heart" && Unicode(10084, { fontFamily: "emoji" }) || name === "high-voltage" && Unicode(9889) || name === "sparkles" && Unicode(10024) || name === "gem-stone" && Unicode(128142) || name === "trophy" && Unicode(127942) || false;
29
+ assert(emoji, { name });
30
+ return emoji;
31
+ function Unicode(codePoint, styleAddendum) {
32
+ const text = String.fromCodePoint(codePoint);
33
+ if (style || styleAddendum) {
34
+ return React.createElement("span", { style: { ...style, ...styleAddendum } }, text);
35
+ } else {
36
+ return React.createElement(React.Fragment, null, text);
37
+ }
38
+ }
39
+ function Img(imgSrc, width = "1.15em") {
40
+ const props = {
41
+ src: imgSrc,
42
+ style: {
43
+ verticalAlign: "text-top",
44
+ fontSize: "1em",
45
+ width,
46
+ ...style
47
+ }
48
+ };
49
+ return React.createElement("img", props);
50
+ }
51
+ }
52
+
53
+ export {
54
+ Emoji
55
+ };
56
+ //# sourceMappingURL=chunk-G2KXEHNF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/Emoji/Emoji.ts"],"sourcesContent":["import React from 'react'\nimport { assert } from '../assert'\n\nimport { iconMechanicalArm, iconCompass, iconRoadFork, iconShield, iconTypescript, iconEngine } from './assets'\n\nexport { Emoji }\nexport type { EmojiName }\n\ntype EmojiName =\n | 'warning'\n | 'typescript'\n | 'shield'\n | 'mechanical-arm'\n | 'mountain'\n | 'rocket'\n | 'wrench'\n | 'compass'\n | 'seedling'\n | 'books'\n | 'plug'\n | 'earth'\n | 'gear'\n | 'red-heart'\n | 'high-voltage'\n | 'gem-stone'\n | 'dizzy'\n | 'sparkles'\n | 'writing-hang'\n | 'road-fork'\n | 'engine'\n | 'red-circle'\n | 'sparkling-heart'\n | 'gift'\n | 'package'\n | 'info'\n | 'lab'\n | 'trophy'\n\nfunction Emoji({ name, style }: { name: EmojiName; style?: React.CSSProperties }): JSX.Element {\n const emoji =\n // ***\n // U+26A0\n // https://emojipedia.org/warning/\n // https://www.unicompat.com/26A0 => 94.1%\n // https://www.unicompat.com/26A0-FE0F => 92.4%\n // https://www.unicompat.com/2697 => 94.1%\n (name === 'warning' && Unicode(0x26a0, { fontFamily: 'emoji' })) ||\n // ***\n // U+2697\n // https://emojipedia.org/alembic/\n // https://www.unicompat.com/2697 => 94.1%\n (name === 'lab' && Unicode(0x2697)) ||\n // ***\n // U+2139\n // https://emojipedia.org/information/\n // https://www.unicompat.com/2139 => 94.8%\n // https://www.unicompat.com/2139-FE0F => 92.4%\n (name === 'info' && Unicode(0x2139, { fontFamily: 'emoji' })) ||\n // ***\n // U+1F4E6\n // https://emojipedia.org/package/\n // https://www.unicompat.com/1F4E6 => 94.1%\n (name === 'package' && Unicode(0x1f4e6)) ||\n // ***\n // U+1F381\n // https://emojipedia.org/wrapped-gift/\n // https://www.unicompat.com/1F381 => 94.1%\n (name === 'gift' && Unicode(0x1f381)) ||\n // ***\n // U+1F496\n // https://emojipedia.org/sparkling-heart/\n // https://www.unicompat.com/1F496 => 94.1%\n (name === 'sparkling-heart' && Unicode(0x1f496)) ||\n // ***\n // U+2B55\n // https://emojipedia.org/hollow-red-circle/\n // https://www.unicompat.com/2B55 => 94.1%\n (name === 'red-circle' && Unicode(0x2b55)) ||\n // ***\n (name === 'engine' && Img(iconEngine)) ||\n // ***\n // https://www.typescriptlang.org/branding/\n (name === 'typescript' && Img(iconTypescript)) ||\n // ***\n // U+FE0F\n // https://emojipedia.org/shield/\n // https://www.unicompat.com/FE0F => 46.5%\n // https://icon-sets.iconify.design/noto/shield/\n (name === 'shield' && Img(iconShield)) ||\n // ***\n // Custom\n (name === 'road-fork' && Img(iconRoadFork, '1.4em')) ||\n // ***\n // U+270D\n // https://emojipedia.org/writing-hand/\n // https://www.unicompat.com/270D => 93.8%\n (name === 'writing-hang' && Unicode(0x270d)) ||\n // ***\n // U+1F4AB\n // https://emojipedia.org/dizzy/\n // https://www.unicompat.com/1F4AB => 94.1%\n (name === 'dizzy' && Unicode(0x1f4ab)) ||\n // ***\n // U+1F9BE\n // https://iconify.design/icon-sets/noto/mechanical-arm.html\n // https://emojipedia.org/mechanical-arm/\n // https://www.unicompat.com/1f9be => 65.5%\n (name === 'mechanical-arm' && Img(iconMechanicalArm)) ||\n // ***\n // U+1F680\n // https://www.unicompat.com/1F680 => 94.1\n (name === 'rocket' && Unicode(0x1f680)) ||\n // ***\n // U+1F527\n // https://emojipedia.org/wrench/\n // https://www.unicompat.com/1F527 => 94.1%\n (name === 'wrench' && Unicode(0x1f527)) ||\n // ***\n // U+1F9ED\n // https://iconify.design/icon-sets/noto/compass.html\n // https://www.unicompat.com/1F9ED => 67.1%\n (name === 'compass' && Img(iconCompass, '1.4em')) ||\n // ***\n // U+1F331\n // https://www.unicompat.com/1F331 => 94.1%\n (name === 'seedling' && Unicode(0x1f331)) ||\n // ***\n // U+1F4DA\n // https://www.unicompat.com/1F4DA => 94.1%\n (name === 'books' && Unicode(0x1f4da)) ||\n // ***\n // U+1F50C\n // https://www.unicompat.com/1F50C => 94.1%\n (name === 'plug' && Unicode(0x1f50c)) ||\n // ***\n // U+1F30D\n // https://www.unicompat.com/1F30D => 88.8%\n (name === 'earth' && Unicode(0x1f30d)) ||\n // ***\n // U+2699\n // https://www.unicompat.com/2699 => 94.1%\n (name === 'gear' && Unicode(0x2699)) ||\n // ***\n // U+2764\n // https://emojipedia.org/red-heart/\n // https://www.unicompat.com/2764 => 94.4%\n // https://www.unicompat.com/2764-FE0F => 92.4%\n (name === 'red-heart' && Unicode(0x2764, { fontFamily: 'emoji' })) ||\n // U+26A1\n // https://www.unicompat.com/26A1 => 94.1%\n (name === 'high-voltage' && Unicode(0x26a1)) ||\n // U+2728\n // https://emojipedia.org/sparkles/\n // https://www.unicompat.com/2728 => 94.1%\n (name === 'sparkles' && Unicode(0x2728)) ||\n // ***\n // U+1F48E\n // https://emojipedia.org/gem-stone/\n // https://www.unicompat.com/1F48E => 94.1%\n (name === 'gem-stone' && Unicode(0x1f48e)) ||\n // ***\n // 0x1F3C6\n // https://emojipedia.org/trophy/\n // https://www.unicompat.com/1F3C6 => 94.1%\n (name === 'trophy' && Unicode(0x1f3c6)) ||\n false\n /* ======= Unused ========\n // ***\n // U+1FAA8\n // https://emojipedia.org/rock/\n // https://www.unicompat.com/1faa8 => 20.7%\n //\n // ***\n // U+26F0\n // https://emojipedia.org/mountain/\n // https://iconify.design/icon-sets/noto/mountain.html\n // https://www.unicompat.com/26F0 => 89.3%\n (name === 'mountain' && Img(iconMountain)) ||\n //\n // ***\n // U+2194\n // https://emojipedia.org/left-right-arrow/\n // https://www.unicompat.com/2194 => 95.0%\n // Couldn't manage to show colored version\n (name === 'left-right-arrow' && Unicode(0x2194)) ||\n (name === 'left-right-arrow' && Unicode(0x2194, { fontFamily: 'reset' })) ||\n (name === 'left-right-arrow' && Unicode(0xFE0F)) ||\n (name === 'left-right-arrow' && Unicode(0xFE0F, { fontFamily: 'reset' })) ||\n ======================== */\n\n assert(emoji, { name })\n\n return emoji\n\n function Unicode(codePoint: number, styleAddendum?: React.CSSProperties) {\n const text = String.fromCodePoint(codePoint)\n if (style || styleAddendum) {\n return React.createElement('span', { style: { ...style, ...styleAddendum } }, text)\n } else {\n return React.createElement(React.Fragment, null, text)\n }\n }\n\n function Img(imgSrc: string, width: string = '1.15em') {\n const props = {\n src: imgSrc,\n style: {\n verticalAlign: 'text-top',\n fontSize: '1em',\n width,\n ...style\n }\n }\n return React.createElement('img', props)\n }\n}\n"],"mappings":";;;;;AAAA,OAAO,WAAW;;;;;;;;;;;;;;;;;;;;;AAsClB,SAAS,MAAM,EAAE,MAAM,MAAM,GAAkE;AAC7F,QAAM,QAOH,SAAS,aAAa,QAAQ,MAAQ,EAAE,YAAY,QAAQ,CAAC,KAK7D,SAAS,SAAS,QAAQ,IAAM,KAMhC,SAAS,UAAU,QAAQ,MAAQ,EAAE,YAAY,QAAQ,CAAC,KAK1D,SAAS,aAAa,QAAQ,MAAO,KAKrC,SAAS,UAAU,QAAQ,MAAO,KAKlC,SAAS,qBAAqB,QAAQ,MAAO,KAK7C,SAAS,gBAAgB,QAAQ,KAAM,KAEvC,SAAS,YAAY,IAAI,cAAU,KAGnC,SAAS,gBAAgB,IAAI,kBAAc,KAM3C,SAAS,YAAY,IAAI,cAAU,KAGnC,SAAS,eAAe,IAAI,mBAAc,OAAO,KAKjD,SAAS,kBAAkB,QAAQ,IAAM,KAKzC,SAAS,WAAW,QAAQ,MAAO,KAMnC,SAAS,oBAAoB,IAAI,sBAAiB,KAIlD,SAAS,YAAY,QAAQ,MAAO,KAKpC,SAAS,YAAY,QAAQ,MAAO,KAKpC,SAAS,aAAa,IAAI,iBAAa,OAAO,KAI9C,SAAS,cAAc,QAAQ,MAAO,KAItC,SAAS,WAAW,QAAQ,MAAO,KAInC,SAAS,UAAU,QAAQ,MAAO,KAIlC,SAAS,WAAW,QAAQ,MAAO,KAInC,SAAS,UAAU,QAAQ,IAAM,KAMjC,SAAS,eAAe,QAAQ,OAAQ,EAAE,YAAY,QAAQ,CAAC,KAG/D,SAAS,kBAAkB,QAAQ,IAAM,KAIzC,SAAS,cAAc,QAAQ,KAAM,KAKrC,SAAS,eAAe,QAAQ,MAAO,KAKvC,SAAS,YAAY,QAAQ,MAAO,KACrC;AAyBF,SAAO,OAAO,EAAE,KAAK,CAAC;AAEtB,SAAO;AAEP,WAAS,QAAQ,WAAmB,eAAqC;AACvE,UAAM,OAAO,OAAO,cAAc,SAAS;AAC3C,QAAI,SAAS,eAAe;AAC1B,aAAO,MAAM,cAAc,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,GAAG,cAAc,EAAE,GAAG,IAAI;AAAA,IACpF,OAAO;AACL,aAAO,MAAM,cAAc,MAAM,UAAU,MAAM,IAAI;AAAA,IACvD;AAAA,EACF;AAEA,WAAS,IAAI,QAAgB,QAAgB,UAAU;AACrD,UAAM,QAAQ;AAAA,MACZ,KAAK;AAAA,MACL,OAAO;AAAA,QACL,eAAe;AAAA,QACf,UAAU;AAAA,QACV;AAAA,QACA,GAAG;AAAA,MACL;AAAA,IACF;AACA,WAAO,MAAM,cAAc,OAAO,KAAK;AAAA,EACzC;AACF;","names":[]}
@@ -1,8 +1,9 @@
1
1
  // cli/configFile.ts
2
2
  import { createRequire } from "module";
3
3
  var require2 = createRequire(import.meta.url);
4
- var configFile = require2.resolve("../../vite.config.ts");
4
+ var configFile = require2.resolve("../vite.config.ts");
5
5
 
6
6
  export {
7
7
  configFile
8
8
  };
9
+ //# sourceMappingURL=chunk-G6OTZHVA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../cli/configFile.ts"],"sourcesContent":["export { configFile }\n\nimport { createRequire } from 'module'\nconst require = createRequire(import.meta.url)\n// Current file: '/dist/cli/chunk-XXXXX.js' (`/cli/configFile.ts` gets bundled into `/dist/chunk-XXXXX.js`)\nconst configFile = require.resolve('../vite.config.ts')\n"],"mappings":";AAEA,SAAS,qBAAqB;AAC9B,IAAMA,WAAU,cAAc,YAAY,GAAG;AAE7C,IAAM,aAAaA,SAAQ,QAAQ,mBAAmB;","names":["require"]}
@@ -0,0 +1,103 @@
1
+ // src/utils/assert.ts
2
+ function assert(condition, debugInfo) {
3
+ if (condition) {
4
+ return;
5
+ }
6
+ const hasDebugInfo = debugInfo !== void 0;
7
+ if (hasDebugInfo) {
8
+ console.log(debugInfo);
9
+ if (typeof debugInfo === "object") {
10
+ debugInfo = JSON.stringify(debugInfo);
11
+ }
12
+ }
13
+ let errMsg = "[DocPress] Bug. Contact DocPress maintainer.";
14
+ if (hasDebugInfo) {
15
+ errMsg += " Debug info: " + String(debugInfo);
16
+ }
17
+ const err = new Error(errMsg);
18
+ if (isBrowserAndDev()) {
19
+ alert(err.stack);
20
+ }
21
+ throw err;
22
+ }
23
+ function assertUsage(condition, msg) {
24
+ if (condition) {
25
+ return;
26
+ }
27
+ const err = new Error("[DocPress][Wrong Usage] " + msg);
28
+ if (isBrowserAndDev()) {
29
+ alert(err.stack);
30
+ }
31
+ throw err;
32
+ }
33
+ function isBrowserAndDev() {
34
+ var _a;
35
+ return typeof window !== "undefined" && ((_a = window == null ? void 0 : window.location) == null ? void 0 : _a.port) !== "";
36
+ }
37
+
38
+ // src/utils/isBrowser.ts
39
+ function isBrowser() {
40
+ return typeof window !== "undefined";
41
+ }
42
+
43
+ // src/utils/filter.ts
44
+ function filter(obj, predicate) {
45
+ const result = {};
46
+ Object.keys(obj).forEach((name) => {
47
+ if (predicate(obj[name], name)) {
48
+ result[name] = obj[name];
49
+ }
50
+ });
51
+ return result;
52
+ }
53
+
54
+ // src/utils/determineSectionUrlHash.ts
55
+ function determineSectionUrlHash(title) {
56
+ const urlHash = title.toLowerCase().split(/[^a-z0-9]+/).filter(Boolean).join("-");
57
+ return urlHash;
58
+ }
59
+ function determineSectionTitle(urlWithHash, titleNormalCase) {
60
+ assert(urlWithHash.includes("#"), { urlWithHash });
61
+ const urlHash = urlWithHash.split("#")[1];
62
+ const title = urlHash.split("-").map((word, i) => {
63
+ if (i === 0) {
64
+ return capitalizeFirstLetter(word);
65
+ }
66
+ if (!titleNormalCase && word.length >= 4) {
67
+ return capitalizeFirstLetter(word);
68
+ }
69
+ return word;
70
+ }).join(" ");
71
+ return title;
72
+ }
73
+ function capitalizeFirstLetter(word) {
74
+ return word[0].toUpperCase() + word.slice(1);
75
+ }
76
+
77
+ // src/utils/jsxToTextContent.ts
78
+ function jsxToTextContent(node) {
79
+ if (["string", "number"].includes(typeof node))
80
+ return String(node);
81
+ if (node instanceof Array)
82
+ return node.map(jsxToTextContent).join("");
83
+ if (typeof node === "object" && node)
84
+ return jsxToTextContent(node.props.children);
85
+ assert(false);
86
+ }
87
+
88
+ // src/utils/objectAssign.ts
89
+ function objectAssign(obj, objAddendum) {
90
+ Object.assign(obj, objAddendum);
91
+ }
92
+
93
+ export {
94
+ assert,
95
+ assertUsage,
96
+ isBrowser,
97
+ filter,
98
+ determineSectionUrlHash,
99
+ determineSectionTitle,
100
+ jsxToTextContent,
101
+ objectAssign
102
+ };
103
+ //# sourceMappingURL=chunk-JKLALMFU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/assert.ts","../src/utils/isBrowser.ts","../src/utils/filter.ts","../src/utils/determineSectionUrlHash.ts","../src/utils/jsxToTextContent.ts","../src/utils/objectAssign.ts"],"sourcesContent":["export { assert }\nexport { assertUsage }\n\nfunction assert(condition: unknown, debugInfo?: unknown): asserts condition {\n if (condition) {\n return\n }\n const hasDebugInfo = debugInfo !== undefined\n if (hasDebugInfo) {\n console.log(debugInfo)\n if (typeof debugInfo === 'object') {\n debugInfo = JSON.stringify(debugInfo)\n }\n }\n let errMsg = '[DocPress] Bug. Contact DocPress maintainer.'\n if (hasDebugInfo) {\n errMsg += ' Debug info: ' + String(debugInfo)\n }\n const err = new Error(errMsg)\n if (isBrowserAndDev()) {\n alert(err.stack)\n }\n throw err\n}\n\nfunction assertUsage(condition: unknown, msg: string): asserts condition {\n if (condition) {\n return\n }\n const err = new Error('[DocPress][Wrong Usage] ' + msg)\n if (isBrowserAndDev()) {\n alert(err.stack)\n }\n throw err\n}\n\nfunction isBrowserAndDev() {\n return typeof window !== 'undefined' && window?.location?.port !== ''\n}\n","export { isBrowser }\n\nfunction isBrowser() {\n return typeof window !== 'undefined'\n}\n","export { filter }\n\n// https://stackoverflow.com/questions/66341757/typescript-how-to-filter-the-object\nfunction filter<T extends object>(obj: T, predicate: <K extends keyof T>(value: T[K], key: K) => boolean): T {\n const result: { [K in keyof T]?: T[K] } = {}\n ;(Object.keys(obj) as Array<keyof T>).forEach((name) => {\n if (predicate(obj[name], name)) {\n result[name] = obj[name]\n }\n })\n return result as T\n}\n","import { assert } from './assert'\n\nexport { determineSectionUrlHash }\nexport { determineSectionTitle }\n\nfunction determineSectionUrlHash(title: string): string {\n const urlHash = title\n .toLowerCase()\n .split(/[^a-z0-9]+/)\n .filter(Boolean)\n .join('-')\n return urlHash\n}\n\nfunction determineSectionTitle(urlWithHash: string, titleNormalCase: boolean): string {\n assert(urlWithHash.includes('#'), { urlWithHash })\n const urlHash = urlWithHash.split('#')[1]\n const title = urlHash\n .split('-')\n .map((word, i) => {\n if (i === 0) {\n return capitalizeFirstLetter(word)\n }\n if (!titleNormalCase && word.length >= 4) {\n return capitalizeFirstLetter(word)\n }\n return word\n })\n .join(' ')\n return title\n}\n\nfunction capitalizeFirstLetter(word: string): string {\n return word[0].toUpperCase() + word.slice(1)\n}\n","import { assert } from './assert'\n\nexport { jsxToTextContent }\n\n// https://stackoverflow.com/questions/34204975/react-is-there-something-similar-to-node-textcontent/60564620#60564620\nfunction jsxToTextContent(node: JSX.Element | string): string {\n if (['string', 'number'].includes(typeof node)) return String(node)\n if (node instanceof Array) return node.map(jsxToTextContent).join('')\n if (typeof node === 'object' && node) return jsxToTextContent(node.props.children)\n assert(false)\n}\n","export { objectAssign }\n\n// Same as `Object.assign()` but with type inference\nfunction objectAssign<Obj extends Object, ObjAddendum>(\n obj: Obj,\n objAddendum: ObjAddendum\n): asserts obj is Obj & ObjAddendum {\n Object.assign(obj, objAddendum)\n}\n"],"mappings":";AAGA,SAAS,OAAO,WAAoB,WAAwC;AAC1E,MAAI,WAAW;AACb;AAAA,EACF;AACA,QAAM,eAAe,cAAc;AACnC,MAAI,cAAc;AAChB,YAAQ,IAAI,SAAS;AACrB,QAAI,OAAO,cAAc,UAAU;AACjC,kBAAY,KAAK,UAAU,SAAS;AAAA,IACtC;AAAA,EACF;AACA,MAAI,SAAS;AACb,MAAI,cAAc;AAChB,cAAU,kBAAkB,OAAO,SAAS;AAAA,EAC9C;AACA,QAAM,MAAM,IAAI,MAAM,MAAM;AAC5B,MAAI,gBAAgB,GAAG;AACrB,UAAM,IAAI,KAAK;AAAA,EACjB;AACA,QAAM;AACR;AAEA,SAAS,YAAY,WAAoB,KAAgC;AACvE,MAAI,WAAW;AACb;AAAA,EACF;AACA,QAAM,MAAM,IAAI,MAAM,6BAA6B,GAAG;AACtD,MAAI,gBAAgB,GAAG;AACrB,UAAM,IAAI,KAAK;AAAA,EACjB;AACA,QAAM;AACR;AAEA,SAAS,kBAAkB;AApC3B;AAqCE,SAAO,OAAO,WAAW,iBAAe,sCAAQ,aAAR,mBAAkB,UAAS;AACrE;;;ACpCA,SAAS,YAAY;AACnB,SAAO,OAAO,WAAW;AAC3B;;;ACDA,SAAS,OAAyB,KAAQ,WAAmE;AAC3G,QAAM,SAAoC,CAAC;AAC1C,EAAC,OAAO,KAAK,GAAG,EAAqB,QAAQ,CAAC,SAAS;AACtD,QAAI,UAAU,IAAI,OAAO,IAAI,GAAG;AAC9B,aAAO,QAAQ,IAAI;AAAA,IACrB;AAAA,EACF,CAAC;AACD,SAAO;AACT;;;ACNA,SAAS,wBAAwB,OAAuB;AACtD,QAAM,UAAU,MACb,YAAY,EACZ,MAAM,YAAY,EAClB,OAAO,OAAO,EACd,KAAK,GAAG;AACX,SAAO;AACT;AAEA,SAAS,sBAAsB,aAAqB,iBAAkC;AACpF,SAAO,YAAY,SAAS,GAAG,GAAG,EAAE,YAAY,CAAC;AACjD,QAAM,UAAU,YAAY,MAAM,GAAG,EAAE;AACvC,QAAM,QAAQ,QACX,MAAM,GAAG,EACT,IAAI,CAAC,MAAM,MAAM;AAChB,QAAI,MAAM,GAAG;AACX,aAAO,sBAAsB,IAAI;AAAA,IACnC;AACA,QAAI,CAAC,mBAAmB,KAAK,UAAU,GAAG;AACxC,aAAO,sBAAsB,IAAI;AAAA,IACnC;AACA,WAAO;AAAA,EACT,CAAC,EACA,KAAK,GAAG;AACX,SAAO;AACT;AAEA,SAAS,sBAAsB,MAAsB;AACnD,SAAO,KAAK,GAAG,YAAY,IAAI,KAAK,MAAM,CAAC;AAC7C;;;AC7BA,SAAS,iBAAiB,MAAoC;AAC5D,MAAI,CAAC,UAAU,QAAQ,EAAE,SAAS,OAAO,IAAI;AAAG,WAAO,OAAO,IAAI;AAClE,MAAI,gBAAgB;AAAO,WAAO,KAAK,IAAI,gBAAgB,EAAE,KAAK,EAAE;AACpE,MAAI,OAAO,SAAS,YAAY;AAAM,WAAO,iBAAiB,KAAK,MAAM,QAAQ;AACjF,SAAO,KAAK;AACd;;;ACPA,SAAS,aACP,KACA,aACkC;AAClC,SAAO,OAAO,KAAK,WAAW;AAChC;","names":[]}
@@ -0,0 +1,92 @@
1
+ // src/components/features/FeatureList.tsx
2
+ import React from "react";
3
+
4
+ // src/components/features/chevron.svg
5
+ var chevron_default = "/assets/chevron-R2IYJD62.svg";
6
+
7
+ // src/components/features/FeatureList.tsx
8
+ function FeatureList({ features }) {
9
+ const numberOfFeatures = features.length;
10
+ const numberOfRows = Math.ceil(numberOfFeatures / 2);
11
+ return /* @__PURE__ */ React.createElement("div", {
12
+ id: "features"
13
+ }, Array.from({ length: numberOfRows }, (_, i) => {
14
+ const feature1Id = 2 * i + 0;
15
+ const feature2Id = 2 * i + 1;
16
+ const feature1 = features[feature1Id];
17
+ const feature2 = features[feature2Id];
18
+ const className = ["features-row", feature2 ? "" : "single-column"].filter(Boolean).join(" ");
19
+ return /* @__PURE__ */ React.createElement("div", {
20
+ className,
21
+ key: i
22
+ }, /* @__PURE__ */ React.createElement(Feature, {
23
+ ...{ ...feature1, featureId: feature1Id }
24
+ }), feature2 && /* @__PURE__ */ React.createElement(Feature, {
25
+ ...{ ...feature2, featureId: feature2Id }
26
+ }));
27
+ }));
28
+ }
29
+ function Feature({ title, desc, learnMore, isSecondaryFeature, featureId }) {
30
+ const name = `feature-${featureId}`;
31
+ const rightSide = featureId % 2 === 1;
32
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(FeatureHead, {
33
+ name,
34
+ hasLearnMore: !!learnMore,
35
+ isSecondaryFeature
36
+ }, " ", /* @__PURE__ */ React.createElement("h2", null, title), desc), !!learnMore && /* @__PURE__ */ React.createElement(LearnMore, {
37
+ name,
38
+ rightSide
39
+ }, learnMore));
40
+ }
41
+ function FeatureHead({
42
+ children,
43
+ name,
44
+ hasLearnMore,
45
+ isSecondaryFeature,
46
+ className = ""
47
+ }) {
48
+ return /* @__PURE__ */ React.createElement("summary", {
49
+ className: [
50
+ className,
51
+ "feature",
52
+ "colorize-on-hover",
53
+ hasLearnMore && "has-learn-more",
54
+ isSecondaryFeature && "secondary-feature"
55
+ ].filter(Boolean).join(" "),
56
+ id: name && `feature-${name}`,
57
+ style: { cursor: hasLearnMore && "pointer" || void 0 }
58
+ }, children, hasLearnMore && /* @__PURE__ */ React.createElement("div", {
59
+ style: { textAlign: "center", marginTop: "1em" }
60
+ }, /* @__PURE__ */ React.createElement("button", {
61
+ type: "button",
62
+ style: {
63
+ textAlign: "center",
64
+ padding: "0 7px",
65
+ paddingTop: 3,
66
+ paddingBottom: 1,
67
+ display: "inline-block",
68
+ fontSize: "10px",
69
+ textTransform: "uppercase",
70
+ letterSpacing: "1px",
71
+ fontWeight: 600
72
+ }
73
+ }, /* @__PURE__ */ React.createElement("span", {
74
+ className: "decolorize-5"
75
+ }, "Learn more"), /* @__PURE__ */ React.createElement("br", null), /* @__PURE__ */ React.createElement("img", {
76
+ className: "decolorize-4 chevron",
77
+ src: chevron_default,
78
+ height: "7",
79
+ style: { marginTop: 2 }
80
+ }))));
81
+ }
82
+ function LearnMore({ children, name, rightSide }) {
83
+ return /* @__PURE__ */ React.createElement("aside", {
84
+ className: "learn-more " + (rightSide ? "right-side" : ""),
85
+ id: `learn-more-${name}`
86
+ }, children);
87
+ }
88
+
89
+ export {
90
+ FeatureList
91
+ };
92
+ //# sourceMappingURL=chunk-OEVBWUR6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/features/FeatureList.tsx"],"sourcesContent":["import React from 'react'\nimport './FeatureList.css'\nimport iconChevron from './chevron.svg'\n\nexport { FeatureList }\n\ntype FeatureProps = {\n title: React.ReactNode\n desc: React.ReactNode\n learnMore?: React.ReactNode\n isSecondaryFeature?: true\n}\n\nfunction FeatureList({ features }: { features: FeatureProps[] }) {\n const numberOfFeatures = features.length\n const numberOfRows = Math.ceil(numberOfFeatures / 2)\n return (\n <div id=\"features\">\n {Array.from({ length: numberOfRows }, (_, i) => {\n const feature1Id = 2 * i + 0\n const feature2Id = 2 * i + 1\n const feature1 = features[feature1Id]\n const feature2 = features[feature2Id]\n const className = ['features-row', feature2 ? '' : 'single-column'].filter(Boolean).join(' ')\n return (\n <div className={className} key={i}>\n <Feature {...{ ...feature1, featureId: feature1Id }} />\n {feature2 && <Feature {...{ ...feature2, featureId: feature2Id }} />}\n </div>\n )\n })}\n </div>\n )\n}\n\nfunction Feature({ title, desc, learnMore, isSecondaryFeature, featureId }: FeatureProps & { featureId: number }) {\n const name = `feature-${featureId}`\n const rightSide = featureId % 2 === 1\n return (\n <>\n <FeatureHead name={name} hasLearnMore={!!learnMore} isSecondaryFeature={isSecondaryFeature}>\n {' '}\n <h2>{title}</h2>\n {desc}\n </FeatureHead>\n {!!learnMore && (\n <LearnMore name={name} rightSide={rightSide}>\n {learnMore}\n </LearnMore>\n )}\n </>\n )\n}\n\nfunction FeatureHead({\n children,\n name,\n hasLearnMore,\n isSecondaryFeature,\n className = ''\n}: {\n className?: string\n name?: string\n hasLearnMore?: boolean\n isSecondaryFeature?: true\n children: any\n}) {\n return (\n <summary\n className={[\n className,\n 'feature',\n 'colorize-on-hover',\n hasLearnMore && 'has-learn-more',\n isSecondaryFeature && 'secondary-feature'\n ]\n .filter(Boolean)\n .join(' ')}\n id={name && `feature-${name}`}\n style={{ cursor: (hasLearnMore && 'pointer') || undefined }}\n >\n {children}\n {hasLearnMore && (\n <div style={{ textAlign: 'center', marginTop: '1em' }}>\n <button\n type=\"button\"\n style={{\n textAlign: 'center',\n padding: '0 7px',\n paddingTop: 3,\n paddingBottom: 1,\n display: 'inline-block',\n fontSize: '10px',\n textTransform: 'uppercase',\n letterSpacing: '1px',\n fontWeight: 600\n }}\n >\n <span className=\"decolorize-5\">Learn more</span>\n <br />\n <img className=\"decolorize-4 chevron\" src={iconChevron} height=\"7\" style={{ marginTop: 2 }} />\n </button>\n </div>\n )}\n </summary>\n )\n}\nfunction LearnMore({ children, name, rightSide }: { name: string; children: any; rightSide: boolean }) {\n return (\n <aside className={'learn-more ' + (rightSide ? 'right-side' : '')} id={`learn-more-${name}`}>\n {children}\n </aside>\n )\n}\n"],"mappings":";AAAA,OAAO,WAAW;;;;;;AAalB,SAAS,YAAY,EAAE,SAAS,GAAiC;AAC/D,QAAM,mBAAmB,SAAS;AAClC,QAAM,eAAe,KAAK,KAAK,mBAAmB,CAAC;AACnD,SACE,oCAAC;AAAA,IAAI,IAAG;AAAA,KACL,MAAM,KAAK,EAAE,QAAQ,aAAa,GAAG,CAAC,GAAG,MAAM;AAC9C,UAAM,aAAa,IAAI,IAAI;AAC3B,UAAM,aAAa,IAAI,IAAI;AAC3B,UAAM,WAAW,SAAS;AAC1B,UAAM,WAAW,SAAS;AAC1B,UAAM,YAAY,CAAC,gBAAgB,WAAW,KAAK,eAAe,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAC5F,WACE,oCAAC;AAAA,MAAI;AAAA,MAAsB,KAAK;AAAA,OAC9B,oCAAC;AAAA,MAAS,GAAG,EAAE,GAAG,UAAU,WAAW,WAAW;AAAA,KAAG,GACpD,YAAY,oCAAC;AAAA,MAAS,GAAG,EAAE,GAAG,UAAU,WAAW,WAAW;AAAA,KAAG,CACpE;AAAA,EAEJ,CAAC,CACH;AAEJ;AAEA,SAAS,QAAQ,EAAE,OAAO,MAAM,WAAW,oBAAoB,UAAU,GAAyC;AAChH,QAAM,OAAO,WAAW;AACxB,QAAM,YAAY,YAAY,MAAM;AACpC,SACE,0DACE,oCAAC;AAAA,IAAY;AAAA,IAAY,cAAc,CAAC,CAAC;AAAA,IAAW;AAAA,KACjD,KACD,oCAAC,YAAI,KAAM,GACV,IACH,GACC,CAAC,CAAC,aACD,oCAAC;AAAA,IAAU;AAAA,IAAY;AAAA,KACpB,SACH,CAEJ;AAEJ;AAEA,SAAS,YAAY;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY;AACd,GAMG;AACD,SACE,oCAAC;AAAA,IACC,WAAW;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA,gBAAgB;AAAA,MAChB,sBAAsB;AAAA,IACxB,EACG,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,IACX,IAAI,QAAQ,WAAW;AAAA,IACvB,OAAO,EAAE,QAAS,gBAAgB,aAAc,OAAU;AAAA,KAEzD,UACA,gBACC,oCAAC;AAAA,IAAI,OAAO,EAAE,WAAW,UAAU,WAAW,MAAM;AAAA,KAClD,oCAAC;AAAA,IACC,MAAK;AAAA,IACL,OAAO;AAAA,MACL,WAAW;AAAA,MACX,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,eAAe;AAAA,MACf,SAAS;AAAA,MACT,UAAU;AAAA,MACV,eAAe;AAAA,MACf,eAAe;AAAA,MACf,YAAY;AAAA,IACd;AAAA,KAEA,oCAAC;AAAA,IAAK,WAAU;AAAA,KAAe,YAAU,GACzC,oCAAC,UAAG,GACJ,oCAAC;AAAA,IAAI,WAAU;AAAA,IAAuB,KAAK;AAAA,IAAa,QAAO;AAAA,IAAI,OAAO,EAAE,WAAW,EAAE;AAAA,GAAG,CAC9F,CACF,CAEJ;AAEJ;AACA,SAAS,UAAU,EAAE,UAAU,MAAM,UAAU,GAAwD;AACrG,SACE,oCAAC;AAAA,IAAM,WAAW,iBAAiB,YAAY,eAAe;AAAA,IAAK,IAAI,cAAc;AAAA,KAClF,QACH;AAEJ;","names":[]}
@@ -0,0 +1,8 @@
1
+ var __freeze = Object.freeze;
2
+ var __defProp = Object.defineProperty;
3
+ var __template = (cooked, raw) => __freeze(__defProp(cooked, "raw", { value: __freeze(raw || cooked.slice()) }));
4
+
5
+ export {
6
+ __template
7
+ };
8
+ //# sourceMappingURL=chunk-TTLAZ2T2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,178 @@
1
+ import {
2
+ Emoji
3
+ } from "./chunk-G2KXEHNF.js";
4
+ import {
5
+ assert
6
+ } from "./chunk-JKLALMFU.js";
7
+
8
+ // src/components/RepoLink.tsx
9
+ import React2 from "react";
10
+
11
+ // src/renderer/usePageContext.tsx
12
+ import React, { useContext } from "react";
13
+ var Context = React.createContext(void 0);
14
+ function PageContextProvider({
15
+ pageContext,
16
+ children
17
+ }) {
18
+ return /* @__PURE__ */ React.createElement(Context.Provider, {
19
+ value: pageContext
20
+ }, children);
21
+ }
22
+ function usePageContext() {
23
+ const pageContext = useContext(Context);
24
+ return pageContext;
25
+ }
26
+
27
+ // src/components/RepoLink.tsx
28
+ function isRepoLink(href) {
29
+ return ["/examples/", "/docs/", "/boilerplates/", ".github/", "/test/"].some((start) => href.startsWith(start));
30
+ }
31
+ function RepoLink({ path, text, editMode }) {
32
+ const pageContext = usePageContext();
33
+ assert(isRepoLink(path), { path });
34
+ text = text || path;
35
+ if (!path.startsWith("/")) {
36
+ path = "/" + path;
37
+ }
38
+ const viewMode = editMode && "edit" || path.endsWith("/") && "tree" || "blob";
39
+ const { githubRepository } = pageContext.config.projectInfo;
40
+ assert(githubRepository.startsWith("https://github.com/"));
41
+ const href = `${githubRepository}/${viewMode}/main${path}`;
42
+ return /* @__PURE__ */ React2.createElement("a", {
43
+ href
44
+ }, text);
45
+ }
46
+
47
+ // src/headings.ts
48
+ import React3 from "react";
49
+ function getHeadings(config) {
50
+ const headingsWithoutParent = config.headings.map((heading) => {
51
+ const titleProcessed = parseTitle(heading.title);
52
+ const titleInNav = heading.titleInNav || heading.title;
53
+ let titleInNavProcessed;
54
+ if ("isListTitle" in heading) {
55
+ assert(heading.isListTitle === true);
56
+ let titleParsed = parseTitle(titleInNav);
57
+ titleInNavProcessed = React3.createElement(React3.Fragment, {}, getListPrefix(), titleParsed);
58
+ } else {
59
+ titleInNavProcessed = parseTitle(titleInNav);
60
+ }
61
+ if ("titleEmoji" in heading) {
62
+ assert(heading.titleEmoji);
63
+ titleInNavProcessed = withEmoji(heading.titleEmoji, titleInNavProcessed);
64
+ }
65
+ const headingProcessed = {
66
+ ...heading,
67
+ title: titleProcessed,
68
+ titleInNav: titleInNavProcessed
69
+ };
70
+ return headingProcessed;
71
+ });
72
+ const headings = [];
73
+ headingsWithoutParent.forEach((heading) => {
74
+ const parentHeadings = findParentHeadings(heading, headings);
75
+ headings.push({ ...heading, parentHeadings });
76
+ });
77
+ const headingsWithoutLink = config.headingsWithoutLink.map((headingsWithoutLink2) => {
78
+ const { url, title } = headingsWithoutLink2;
79
+ assert(
80
+ headings.find((heading) => heading.url === url) === void 0,
81
+ `remove ${headingsWithoutLink2.url} from headingsWithoutLink`
82
+ );
83
+ const titleProcessed = typeof title === "string" ? parseTitle(title) : title;
84
+ return {
85
+ ...headingsWithoutLink2,
86
+ title: titleProcessed
87
+ };
88
+ });
89
+ assertHeadingsUrl([...headings, ...headingsWithoutLink]);
90
+ return { headings, headingsWithoutLink };
91
+ }
92
+ function findParentHeadings(heading, headings) {
93
+ const parentHeadings = [];
94
+ let levelCurrent = heading.level;
95
+ let listTitleParentFound = false;
96
+ headings.slice().reverse().forEach((parentCandidate) => {
97
+ let isListTitleParent = false;
98
+ if (!listTitleParentFound && levelCurrent === heading.level && parentCandidate.level === heading.level && !parentCandidate.isListTitle && heading.isListTitle) {
99
+ isListTitleParent = true;
100
+ listTitleParentFound = true;
101
+ }
102
+ const isParent = parentCandidate.level < levelCurrent;
103
+ if (isParent || isListTitleParent) {
104
+ levelCurrent = parentCandidate.level;
105
+ parentHeadings.push(parentCandidate);
106
+ }
107
+ });
108
+ return parentHeadings;
109
+ }
110
+ function assertHeadingsUrl(headings) {
111
+ const urls = {};
112
+ headings.forEach((heading) => {
113
+ if (heading.url) {
114
+ const { url } = heading;
115
+ assert(url.startsWith("/"));
116
+ assert(!urls[url], { url });
117
+ urls[url] = true;
118
+ }
119
+ });
120
+ }
121
+ function getListPrefix() {
122
+ const nonBreakingSpace = String.fromCodePoint(160);
123
+ const bulletPoint = String.fromCodePoint(8226);
124
+ return nonBreakingSpace + bulletPoint + nonBreakingSpace;
125
+ }
126
+ function parseTitle(title) {
127
+ const parts = [];
128
+ let current;
129
+ title.split("").forEach((letter) => {
130
+ if (letter === "`") {
131
+ if ((current == null ? void 0 : current.nodeType) === "code") {
132
+ parts.push(current);
133
+ current = void 0;
134
+ } else {
135
+ if (current) {
136
+ parts.push(current);
137
+ }
138
+ current = { nodeType: "code", content: "" };
139
+ }
140
+ } else {
141
+ if (!current) {
142
+ current = { nodeType: "text", content: "" };
143
+ }
144
+ current.content += letter;
145
+ }
146
+ });
147
+ if (current) {
148
+ parts.push(current);
149
+ }
150
+ const titleJsx = React3.createElement(
151
+ React3.Fragment,
152
+ {},
153
+ ...parts.map(
154
+ (part, i) => React3.createElement(part.nodeType === "code" ? "code" : React3.Fragment, { key: i }, part.content)
155
+ )
156
+ );
157
+ return titleJsx;
158
+ }
159
+ function withEmoji(name, title) {
160
+ const style = { fontSize: "1.4em" };
161
+ return React3.createElement(
162
+ "span",
163
+ { style },
164
+ Emoji({ name }),
165
+ " ",
166
+ React3.createElement("span", { style: { fontSize: "1rem" } }, title)
167
+ );
168
+ }
169
+
170
+ export {
171
+ PageContextProvider,
172
+ usePageContext,
173
+ isRepoLink,
174
+ RepoLink,
175
+ getHeadings,
176
+ parseTitle
177
+ };
178
+ //# sourceMappingURL=chunk-UCY72YQS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/RepoLink.tsx","../src/renderer/usePageContext.tsx","../src/headings.ts"],"sourcesContent":["import React from 'react'\nimport { assert } from '../utils'\nimport { usePageContext } from '../renderer/usePageContext'\n\nexport { RepoLink }\nexport { isRepoLink }\n\nfunction isRepoLink(href: string) {\n return ['/examples/', '/docs/', '/boilerplates/', '.github/', '/test/'].some((start) => href.startsWith(start))\n}\n\nfunction RepoLink({ path, text, editMode }: { path: string; text?: string | JSX.Element; editMode?: true }) {\n const pageContext = usePageContext()\n assert(isRepoLink(path), { path })\n text = text || path\n if (!path.startsWith('/')) {\n path = '/' + path\n }\n const viewMode = (editMode && 'edit') || (path.endsWith('/') && 'tree') || 'blob'\n const { githubRepository } = pageContext.config.projectInfo\n assert(githubRepository.startsWith('https://github.com/'))\n const href = `${githubRepository}/${viewMode}/main${path}`\n return <a href={href}>{text}</a>\n}\n","// `usePageContext` allows us to access `pageContext` in any React component.\n// More infos: https://vite-plugin-ssr.com/pageContext-anywhere\n\nimport React, { useContext } from 'react'\nimport type { PageContextResolved } from '../config/resolvePageContext'\n\nexport { PageContextProvider }\nexport { usePageContext }\n\nconst Context = React.createContext<PageContextResolved>(undefined as any)\n\nfunction PageContextProvider({\n pageContext,\n children\n}: {\n pageContext: PageContextResolved\n children: React.ReactNode\n}) {\n return <Context.Provider value={pageContext}>{children}</Context.Provider>\n}\n\nfunction usePageContext() {\n const pageContext = useContext(Context)\n return pageContext\n}\n","import React from 'react'\nimport { assert } from './utils'\nimport { Emoji, EmojiName } from './utils/Emoji'\n\nexport { getHeadings }\nexport { parseTitle }\n\nexport type Heading = Omit<HeadingDefinition, 'title' | 'titleInNav'> & {\n title: JSX.Element\n titleInNav: JSX.Element\n parentHeadings: Heading[]\n // Not sure why this is needed\n isListTitle?: true\n sectionTitles?: string[]\n}\nexport type HeadingWithoutLink = {\n url: string\n title: string | JSX.Element\n}\nexport type HeadingDefinition = HeadingBase &\n (\n | ({ level: 1; titleEmoji: EmojiName } & HeadingAbstract)\n | ({ level: 4 } & HeadingAbstract)\n | {\n level: 2\n isListTitle?: true\n sectionTitles?: string[]\n url: string\n }\n | {\n level: 3\n url: string\n }\n )\ntype HeadingBase = {\n title: string\n level: number\n url?: string\n titleDocument?: string\n titleInNav?: string\n // titleSize?: string\n}\ntype HeadingAbstract = {\n url?: undefined\n titleDocument?: undefined\n titleInNav?: undefined\n}\n\nfunction getHeadings(config: { headings: HeadingDefinition[]; headingsWithoutLink: HeadingWithoutLink[] }): {\n headings: Heading[]\n headingsWithoutLink: HeadingWithoutLink[]\n} {\n const headingsWithoutParent: Omit<Heading, 'parentHeadings'>[] = config.headings.map((heading: HeadingDefinition) => {\n const titleProcessed: JSX.Element = parseTitle(heading.title)\n\n const titleInNav = heading.titleInNav || heading.title\n let titleInNavProcessed: JSX.Element\n if ('isListTitle' in heading) {\n assert(heading.isListTitle === true)\n let titleParsed: JSX.Element = parseTitle(titleInNav)\n // if (heading.titleSize) {\n // titleParsed = React.createElement('span', { style: { fontSize: heading.titleSize } }, titleParsed)\n // }\n titleInNavProcessed = React.createElement(React.Fragment, {}, getListPrefix(), titleParsed)\n } else {\n titleInNavProcessed = parseTitle(titleInNav)\n }\n if ('titleEmoji' in heading) {\n assert(heading.titleEmoji)\n titleInNavProcessed = withEmoji(heading.titleEmoji, titleInNavProcessed)\n }\n\n const headingProcessed: Omit<Heading, 'parentHeadings'> = {\n ...heading,\n title: titleProcessed,\n titleInNav: titleInNavProcessed\n }\n return headingProcessed\n })\n\n const headings: Heading[] = []\n headingsWithoutParent.forEach((heading) => {\n const parentHeadings = findParentHeadings(heading, headings)\n headings.push({ ...heading, parentHeadings })\n })\n\n const headingsWithoutLink = config.headingsWithoutLink.map((headingsWithoutLink) => {\n const { url, title } = headingsWithoutLink\n assert(\n headings.find((heading) => heading.url === url) === undefined,\n `remove ${headingsWithoutLink.url} from headingsWithoutLink`\n )\n const titleProcessed = typeof title === 'string' ? parseTitle(title) : title\n return {\n ...headingsWithoutLink,\n title: titleProcessed\n }\n })\n\n assertHeadingsUrl([...headings, ...headingsWithoutLink])\n return { headings, headingsWithoutLink }\n}\n\nfunction findParentHeadings(heading: Omit<Heading, 'parentHeadings'>, headings: Heading[]) {\n const parentHeadings: Heading[] = []\n let levelCurrent = heading.level\n let listTitleParentFound = false\n headings\n .slice()\n .reverse()\n .forEach((parentCandidate) => {\n let isListTitleParent = false\n if (\n !listTitleParentFound &&\n levelCurrent === heading.level &&\n parentCandidate.level === heading.level &&\n !parentCandidate.isListTitle &&\n heading.isListTitle\n ) {\n isListTitleParent = true\n listTitleParentFound = true\n }\n\n const isParent = parentCandidate.level < levelCurrent\n\n if (isParent || isListTitleParent) {\n levelCurrent = parentCandidate.level\n parentHeadings.push(parentCandidate)\n }\n })\n return parentHeadings\n}\n\nfunction assertHeadingsUrl(headings: { url?: string }[]) {\n const urls: Record<string, true> = {}\n headings.forEach((heading) => {\n if (heading.url) {\n const { url } = heading\n assert(url.startsWith('/'))\n assert(!urls[url], { url })\n urls[url] = true\n }\n })\n}\n\nfunction getListPrefix() {\n const nonBreakingSpace = String.fromCodePoint(0x00a0)\n const bulletPoint = String.fromCodePoint(0x2022)\n return nonBreakingSpace + bulletPoint + nonBreakingSpace\n}\n\nfunction parseTitle(title: string): JSX.Element {\n type Part = { nodeType: 'text' | 'code'; content: string }\n const parts: Part[] = []\n let current: Part | undefined\n title.split('').forEach((letter) => {\n if (letter === '`') {\n if (current?.nodeType === 'code') {\n // </code>\n parts.push(current)\n current = undefined\n } else {\n // <code>\n if (current) {\n parts.push(current)\n }\n current = { nodeType: 'code', content: '' }\n }\n } else {\n if (!current) {\n current = { nodeType: 'text', content: '' }\n }\n current.content += letter\n }\n })\n if (current) {\n parts.push(current)\n }\n\n const titleJsx = React.createElement(\n React.Fragment,\n {},\n ...parts.map((part, i) =>\n React.createElement(part.nodeType === 'code' ? 'code' : React.Fragment, { key: i }, part.content)\n )\n )\n\n return titleJsx\n}\n\nfunction withEmoji(name: EmojiName, title: string | JSX.Element): JSX.Element {\n const style = { fontSize: '1.4em' }\n //return React.createElement(React.Fragment, null, Emoji({ name, style }), ' ', title)\n return React.createElement(\n 'span',\n { style },\n Emoji({ name }),\n ' ',\n React.createElement('span', { style: { fontSize: '1rem' } }, title)\n )\n}\n"],"mappings":"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","names":["React","React","React","React","headingsWithoutLink"]}
@@ -0,0 +1 @@
1
+
package/dist/cli/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  configFile
3
- } from "./chunk-KZROB63P.js";
3
+ } from "../chunk-G6OTZHVA.js";
4
+ import "../chunk-TTLAZ2T2.js";
4
5
 
5
6
  // cli/index.ts
6
7
  import { build, preview } from "vite";
@@ -13,7 +14,7 @@ Error.stackTraceLimit = Infinity;
13
14
  cli();
14
15
  async function cli() {
15
16
  if (isDev) {
16
- await import("./devServer.js");
17
+ await import("../devServer-UEJORYCC.js");
17
18
  } else if (isBuild) {
18
19
  const commonConfig = {
19
20
  configFile,
@@ -35,3 +36,4 @@ async function cli() {
35
36
  );
36
37
  }
37
38
  }
39
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../cli/index.ts"],"sourcesContent":["import { build, preview } from 'vite'\nimport { configFile } from './configFile'\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 const commonConfig = {\n configFile,\n vitePluginSsr: {\n disableAutoFullBuild: true\n }\n }\n await build({ ...commonConfig })\n await build({ ...commonConfig, build: { ssr: true } })\n await prerender({ viteConfig: { configFile } })\n } else if (isPreview) {\n const server = await preview({ configFile, 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,eAAe;AAAA,MACnB;AAAA,MACA,eAAe;AAAA,QACb,sBAAsB;AAAA,MACxB;AAAA,IACF;AACA,UAAM,MAAM,EAAE,GAAG,aAAa,CAAC;AAC/B,UAAM,MAAM,EAAE,GAAG,cAAc,OAAO,EAAE,KAAK,KAAK,EAAE,CAAC;AACrD,UAAM,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;AAAA,EAChD,WAAW,WAAW;AACpB,UAAM,SAAS,MAAM,QAAQ,EAAE,YAAY,SAAS,EAAE,MAAM,KAAK,EAAE,CAAC;AACpE,WAAO,UAAU;AAAA,EACnB,OAAO;AACL,UAAM,IAAI;AAAA,MACR,0CAA0C,KAAK;AAAA,QAC7C;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  configFile
3
- } from "./chunk-KZROB63P.js";
3
+ } from "./chunk-G6OTZHVA.js";
4
+ import "./chunk-TTLAZ2T2.js";
4
5
 
5
6
  // cli/devServer.ts
6
7
  import express from "express";
@@ -29,3 +30,4 @@ async function startServer() {
29
30
  app.listen(port);
30
31
  console.log(`Server running at http://localhost:${port}`);
31
32
  }
33
+ //# sourceMappingURL=devServer-UEJORYCC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../cli/devServer.ts"],"sourcesContent":["import express from 'express'\nimport * as vite from 'vite'\nimport { renderPage } from 'vite-plugin-ssr'\nimport { configFile } from './configFile'\nconst viteVersion = (vite as { version?: string }).version || '2.?.?'\n\nstartServer()\n\nasync function startServer() {\n const app = express()\n\n const viteDevServer = await vite.createServer({\n configFile,\n server: { middlewareMode: viteVersion.startsWith('2') ? 'ssr' : true }\n })\n app.use(viteDevServer.middlewares)\n\n app.get('*', async (req, res, next) => {\n const pageContextInit = {\n urlOriginal: req.originalUrl\n }\n const pageContext = await renderPage(pageContextInit)\n if (!pageContext.httpResponse) return next()\n const { body, statusCode, contentType } = pageContext.httpResponse\n res.status(statusCode).type(contentType).send(body)\n })\n\n const port = 3000\n app.listen(port)\n console.log(`Server running at http://localhost:${port}`)\n}\n"],"mappings":";;;;;;AAAA,OAAO,aAAa;AACpB,YAAY,UAAU;AACtB,SAAS,kBAAkB;AAE3B,IAAM,cAA6C,gBAAW;AAE9D,YAAY;AAEZ,eAAe,cAAc;AAC3B,QAAM,MAAM,QAAQ;AAEpB,QAAM,gBAAgB,MAAW,kBAAa;AAAA,IAC5C;AAAA,IACA,QAAQ,EAAE,gBAAgB,YAAY,WAAW,GAAG,IAAI,QAAQ,KAAK;AAAA,EACvE,CAAC;AACD,MAAI,IAAI,cAAc,WAAW;AAEjC,MAAI,IAAI,KAAK,OAAO,KAAK,KAAK,SAAS;AACrC,UAAM,kBAAkB;AAAA,MACtB,aAAa,IAAI;AAAA,IACnB;AACA,UAAM,cAAc,MAAM,WAAW,eAAe;AACpD,QAAI,CAAC,YAAY;AAAc,aAAO,KAAK;AAC3C,UAAM,EAAE,MAAM,YAAY,YAAY,IAAI,YAAY;AACtD,QAAI,OAAO,UAAU,EAAE,KAAK,WAAW,EAAE,KAAK,IAAI;AAAA,EACpD,CAAC;AAED,QAAM,OAAO;AACb,MAAI,OAAO,IAAI;AACf,UAAQ,IAAI,sCAAsC,MAAM;AAC1D;","names":[]}
File without changes