dumi 2.2.1 → 2.2.2

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 (128) hide show
  1. package/compiled/crates/swc_plugin_react_demo.wasm +0 -0
  2. package/dist/assetParsers/atom.js +15 -5
  3. package/dist/assetParsers/block.js +27 -9
  4. package/dist/cli.js +8 -1
  5. package/dist/client/pages/Demo/index.js +3 -8
  6. package/dist/client/theme-api/AtomRenderer.d.ts +2 -2
  7. package/dist/client/theme-api/AtomRenderer.js +19 -35
  8. package/dist/client/theme-api/DumiDemo.js +8 -13
  9. package/dist/client/theme-api/DumiDemoGrid.js +12 -26
  10. package/dist/client/theme-api/DumiPage.js +16 -34
  11. package/dist/client/theme-api/openCodeSandbox.js +18 -23
  12. package/dist/client/theme-api/openStackBlitz.js +6 -14
  13. package/dist/client/theme-api/types.d.ts +15 -12
  14. package/dist/client/theme-api/useAtomAssets.js +1 -2
  15. package/dist/client/theme-api/useLocale.js +10 -19
  16. package/dist/client/theme-api/useNavData.js +78 -103
  17. package/dist/client/theme-api/usePrefersColor.d.ts +2 -2
  18. package/dist/client/theme-api/usePrefersColor.js +39 -66
  19. package/dist/client/theme-api/useRouteMeta.js +9 -23
  20. package/dist/client/theme-api/useSidebarData.js +124 -158
  21. package/dist/client/theme-api/useSiteSearch/index.d.ts +1 -1
  22. package/dist/client/theme-api/useSiteSearch/index.js +24 -38
  23. package/dist/client/theme-api/useTabMeta.js +8 -19
  24. package/dist/client/theme-api/utils.d.ts +2 -2
  25. package/dist/client/theme-api/utils.js +33 -47
  26. package/dist/client/typings.d.ts +0 -5
  27. package/dist/features/assets.js +23 -4
  28. package/dist/features/autoAlias.js +8 -3
  29. package/dist/features/compile/babelLoaderCustomize.js +0 -2
  30. package/dist/features/compile/index.js +20 -9
  31. package/dist/features/configPlugins/index.js +3 -4
  32. package/dist/features/configPlugins/schema.d.ts +1 -1
  33. package/dist/features/configPlugins/schema.js +20 -3
  34. package/dist/features/derivative.js +54 -11
  35. package/dist/features/exportStatic.js +11 -7
  36. package/dist/features/exports.js +8 -3
  37. package/dist/features/html2sketch.js +7 -5
  38. package/dist/features/locales.js +53 -17
  39. package/dist/features/meta.js +23 -10
  40. package/dist/features/parser.js +17 -5
  41. package/dist/features/routes.js +63 -24
  42. package/dist/features/sideEffects/docSideEffectsWebpackPlugin.js +27 -16
  43. package/dist/features/sideEffects/index.js +13 -4
  44. package/dist/features/sitemap.js +17 -5
  45. package/dist/features/tabs.js +23 -11
  46. package/dist/features/theme/index.js +133 -38
  47. package/dist/features/theme/loader.js +23 -7
  48. package/dist/index.js +10 -2
  49. package/dist/loaders/demo/index.js +3 -3
  50. package/dist/loaders/markdown/index.d.ts +1 -1
  51. package/dist/loaders/markdown/index.js +36 -24
  52. package/dist/loaders/markdown/transformer/index.d.ts +2 -1
  53. package/dist/loaders/markdown/transformer/index.js +34 -17
  54. package/dist/loaders/markdown/transformer/rehypeDemo.d.ts +3 -1
  55. package/dist/loaders/markdown/transformer/rehypeDemo.js +125 -68
  56. package/dist/loaders/markdown/transformer/rehypeDesc.js +8 -3
  57. package/dist/loaders/markdown/transformer/rehypeEnhancedTag.js +8 -3
  58. package/dist/loaders/markdown/transformer/rehypeHighlightLine.js +8 -3
  59. package/dist/loaders/markdown/transformer/rehypeImg.js +8 -3
  60. package/dist/loaders/markdown/transformer/rehypeIsolation.js +36 -21
  61. package/dist/loaders/markdown/transformer/rehypeJsxify.js +8 -3
  62. package/dist/loaders/markdown/transformer/rehypeLink.d.ts +1 -1
  63. package/dist/loaders/markdown/transformer/rehypeLink.js +24 -9
  64. package/dist/loaders/markdown/transformer/rehypeRaw.d.ts +1 -1
  65. package/dist/loaders/markdown/transformer/rehypeRaw.js +20 -6
  66. package/dist/loaders/markdown/transformer/rehypeSlug.js +16 -3
  67. package/dist/loaders/markdown/transformer/rehypeStrip.js +8 -3
  68. package/dist/loaders/markdown/transformer/rehypeText.js +14 -5
  69. package/dist/loaders/markdown/transformer/remarkBreaks.js +16 -5
  70. package/dist/loaders/markdown/transformer/remarkContainer.js +28 -13
  71. package/dist/loaders/markdown/transformer/remarkEmbed.js +43 -21
  72. package/dist/loaders/markdown/transformer/remarkMeta.d.ts +3 -1
  73. package/dist/loaders/markdown/transformer/remarkMeta.js +39 -9
  74. package/dist/loaders/page/index.js +12 -4
  75. package/dist/loaders/pre-raw/index.js +0 -2
  76. package/dist/preset.js +8 -3
  77. package/dist/registerMethods.js +0 -2
  78. package/dist/service/dev.js +8 -1
  79. package/dist/service/printHelp.js +3 -1
  80. package/dist/techStacks/react.js +8 -3
  81. package/dist/types.d.ts +6 -6
  82. package/dist/utils.d.ts +1 -1
  83. package/dist/utils.js +15 -6
  84. package/package.json +11 -9
  85. package/theme-default/builtins/API/index.js +15 -36
  86. package/theme-default/builtins/Badge/index.js +0 -3
  87. package/theme-default/builtins/Container/index.js +6 -15
  88. package/theme-default/builtins/Previewer/index.js +1 -8
  89. package/theme-default/builtins/SourceCode/index.js +15 -27
  90. package/theme-default/builtins/Table/index.js +10 -25
  91. package/theme-default/builtins/Tree/index.js +13 -44
  92. package/theme-default/layouts/DocLayout/index.js +14 -27
  93. package/theme-default/locales/en-US.json +4 -0
  94. package/theme-default/locales/zh-CN.json +4 -0
  95. package/theme-default/slots/ColorSwitch/index.js +7 -22
  96. package/theme-default/slots/Content/index.js +5 -7
  97. package/theme-default/slots/Content/index.less +16 -1
  98. package/theme-default/slots/ContentFooter/index.d.ts +4 -0
  99. package/theme-default/slots/ContentFooter/index.js +93 -0
  100. package/theme-default/slots/ContentFooter/index.less +163 -0
  101. package/theme-default/slots/ContentTabs/index.d.ts +1 -1
  102. package/theme-default/slots/ContentTabs/index.js +5 -5
  103. package/theme-default/slots/Features/index.js +6 -11
  104. package/theme-default/slots/Footer/index.js +1 -4
  105. package/theme-default/slots/Header/index.js +7 -18
  106. package/theme-default/slots/HeaderExtra/index.js +0 -2
  107. package/theme-default/slots/Hero/index.js +2 -6
  108. package/theme-default/slots/HeroTitle/index.js +0 -2
  109. package/theme-default/slots/LangSwitch/index.js +23 -35
  110. package/theme-default/slots/Logo/index.js +1 -4
  111. package/theme-default/slots/Navbar/index.js +14 -29
  112. package/theme-default/slots/NavbarExtra/index.js +0 -2
  113. package/theme-default/slots/NotFound/index.js +0 -2
  114. package/theme-default/slots/PreviewerActions/index.js +13 -35
  115. package/theme-default/slots/PreviewerActionsExtra/index.js +0 -2
  116. package/theme-default/slots/RtlSwitch/index.js +6 -20
  117. package/theme-default/slots/RtlSwitch/index.less +5 -0
  118. package/theme-default/slots/SearchBar/Input.d.ts +1 -1
  119. package/theme-default/slots/SearchBar/Input.js +6 -5
  120. package/theme-default/slots/SearchBar/Mask.d.ts +1 -1
  121. package/theme-default/slots/SearchBar/Mask.js +0 -1
  122. package/theme-default/slots/SearchBar/index.js +20 -41
  123. package/theme-default/slots/SearchResult/index.d.ts +1 -1
  124. package/theme-default/slots/SearchResult/index.js +13 -36
  125. package/theme-default/slots/Sidebar/index.js +1 -4
  126. package/theme-default/slots/SocialIcon/index.d.ts +2 -2
  127. package/theme-default/slots/SocialIcon/index.js +1 -3
  128. package/theme-default/slots/Toc/index.js +12 -28
@@ -1,21 +1,14 @@
1
1
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
-
3
2
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
-
5
3
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
6
-
7
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
8
-
9
- function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
10
-
4
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
5
+ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
11
6
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12
-
13
7
  import sdk from '@stackblitz/sdk';
14
8
  import { ApplyPluginsType } from 'dumi';
15
9
  import { genReactRenderCode, pluginManager } from "./utils";
16
10
  export var openStackBlitz = function openStackBlitz(data) {
17
11
  var _data$asset$dependenc, _react, _deps$_react, _reactDom, _deps$_reactDom;
18
-
19
12
  var isTSX = Boolean((_data$asset$dependenc = data.asset.dependencies) === null || _data$asset$dependenc === void 0 ? void 0 : _data$asset$dependenc['index.tsx']);
20
13
  var ext = isTSX ? '.tsx' : '.jsx';
21
14
  var deps = {};
@@ -31,11 +24,10 @@ export var openStackBlitz = function openStackBlitz(data) {
31
24
  };
32
25
  Object.entries(data.asset.dependencies).forEach(function (_ref) {
33
26
  var _ref2 = _slicedToArray(_ref, 2),
34
- name = _ref2[0],
35
- _ref2$ = _ref2[1],
36
- type = _ref2$.type,
37
- value = _ref2$.value;
38
-
27
+ name = _ref2[0],
28
+ _ref2$ = _ref2[1],
29
+ type = _ref2$.type,
30
+ value = _ref2$.value;
39
31
  if (type === 'NPM') {
40
32
  // generate dependencies
41
33
  deps[name] = value;
@@ -90,6 +90,7 @@ export interface IRouteMeta {
90
90
  };
91
91
  atomId?: string;
92
92
  filename?: string;
93
+ lastUpdated?: number;
93
94
  debug?: boolean;
94
95
  /**
95
96
  * Control the display of the sidebar menu.
@@ -140,16 +141,16 @@ export interface IRouteMeta {
140
141
  */
141
142
  _atom_route?: boolean;
142
143
  }
143
- declare type IBasicLocale = {
144
+ type IBasicLocale = {
144
145
  id: string;
145
146
  name: string;
146
147
  };
147
- export declare type ILocale = (IBasicLocale & {
148
+ export type ILocale = (IBasicLocale & {
148
149
  base: string;
149
150
  }) | (IBasicLocale & {
150
151
  suffix: string;
151
152
  });
152
- export declare type ILocalesConfig = ILocale[];
153
+ export type ILocalesConfig = ILocale[];
153
154
  export interface INavItem {
154
155
  title: string;
155
156
  link?: string;
@@ -169,18 +170,18 @@ export interface ISidebarGroup {
169
170
  children: ISidebarItem[];
170
171
  [key: string]: any;
171
172
  }
172
- export declare type SocialTypes = 'github' | 'weibo' | 'twitter' | 'gitlab' | 'facebook' | 'zhihu' | 'yuque' | 'linkedin';
173
- export declare type INavItems = (INavItem & {
173
+ export type SocialTypes = 'github' | 'weibo' | 'twitter' | 'gitlab' | 'facebook' | 'zhihu' | 'yuque' | 'linkedin';
174
+ export type INavItems = (INavItem & {
174
175
  children?: INavItem[];
175
176
  })[];
176
- export declare type INav = INavItems | Record<string, INavItems>;
177
- declare type IUserNavItem = Pick<INavItem, 'title' | 'link'>;
178
- export declare type IUserNavMode = 'override' | 'append' | 'prepend';
179
- export declare type IUserNavItems = (IUserNavItem & {
177
+ export type INav = INavItems | Record<string, INavItems>;
178
+ type IUserNavItem = Pick<INavItem, 'title' | 'link'>;
179
+ export type IUserNavMode = 'override' | 'append' | 'prepend';
180
+ export type IUserNavItems = (IUserNavItem & {
180
181
  children?: IUserNavItem[];
181
182
  })[];
182
- export declare type IUserNavValue = IUserNavItems | Record<string, IUserNavItems>;
183
- export declare type NavWithMode<T extends IUserNavValue> = {
183
+ export type IUserNavValue = IUserNavItems | Record<string, IUserNavItems>;
184
+ export type NavWithMode<T extends IUserNavValue> = {
184
185
  /**
185
186
  * 扩展导航的模式
186
187
  * @description
@@ -206,9 +207,11 @@ export interface IThemeConfig {
206
207
  socialLinks?: {
207
208
  [key in SocialTypes]?: string;
208
209
  };
210
+ editLink?: boolean | string;
211
+ lastUpdated?: boolean;
209
212
  [key: string]: any;
210
213
  }
211
- export declare type IRoutesById = Record<string, {
214
+ export type IRoutesById = Record<string, {
212
215
  path?: string;
213
216
  parentId?: string;
214
217
  meta?: IRouteMeta;
@@ -1,8 +1,7 @@
1
1
  import { useSiteData } from 'dumi';
2
2
  export var useAtomAssets = function useAtomAssets() {
3
3
  var _useSiteData = useSiteData(),
4
- components = _useSiteData.components;
5
-
4
+ components = _useSiteData.components;
6
5
  return {
7
6
  components: components
8
7
  };
@@ -1,31 +1,22 @@
1
1
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
-
3
2
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
-
5
3
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
6
-
7
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
8
-
9
- function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
10
-
4
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
5
+ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
11
6
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12
-
13
7
  import { useIntl, useSiteData } from 'dumi';
14
8
  import { useState } from 'react';
15
9
  export var useLocale = function useLocale() {
16
10
  var intl = useIntl();
17
-
18
11
  var _useSiteData = useSiteData(),
19
- locales = _useSiteData.locales;
20
-
12
+ locales = _useSiteData.locales;
21
13
  var _useState = useState(function () {
22
- return locales.find(function (_ref) {
23
- var id = _ref.id;
24
- return id === intl.locale;
25
- });
26
- }),
27
- _useState2 = _slicedToArray(_useState, 1),
28
- locale = _useState2[0];
29
-
14
+ return locales.find(function (_ref) {
15
+ var id = _ref.id;
16
+ return id === intl.locale;
17
+ });
18
+ }),
19
+ _useState2 = _slicedToArray(_useState, 1),
20
+ locale = _useState2[0];
30
21
  return locale;
31
22
  };
@@ -1,33 +1,22 @@
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
1
2
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
2
-
3
3
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
-
5
4
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
6
-
7
5
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
8
-
9
6
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
10
-
11
7
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
12
-
13
8
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
14
-
15
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
16
-
17
- function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
18
-
9
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
10
+ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
19
11
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
20
-
21
12
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
22
-
23
13
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
24
-
25
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
26
-
14
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
16
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
27
17
  import { useFullSidebarData, useLocale, useSiteData } from 'dumi';
28
18
  import { useState } from 'react';
29
19
  import { getLocaleNav, pickRouteSortMeta, useLocaleDocRoutes, useRouteDataComparer } from "./utils";
30
-
31
20
  function genNavItem(meta, groups, activePath, link) {
32
21
  return _objectSpread({
33
22
  title: meta.title || groups[0].title || groups[0].children[0].title,
@@ -37,113 +26,99 @@ function genNavItem(meta, groups, activePath, link) {
37
26
  link: link
38
27
  } : {});
39
28
  }
29
+
40
30
  /**
41
31
  * hook for get nav data
42
32
  */
43
-
44
-
45
33
  export var useNavData = function useNavData() {
46
34
  var locale = useLocale();
47
35
  var routes = useLocaleDocRoutes();
48
-
49
36
  var _useSiteData = useSiteData(),
50
- themeConfig = _useSiteData.themeConfig,
51
- is2LevelNav = _useSiteData._2_level_nav_available;
52
-
37
+ themeConfig = _useSiteData.themeConfig,
38
+ is2LevelNav = _useSiteData._2_level_nav_available;
53
39
  var sidebar = useFullSidebarData();
54
40
  var sidebarDataComparer = useRouteDataComparer();
55
-
56
41
  var _useState = useState(function () {
57
- // use user config first
58
- var userNavValue = [];
59
- var mode;
60
-
61
- if (themeConfig.nav) {
62
- // 形如:{mode: "append", value: []}
63
- if ('mode' in themeConfig.nav && typeof themeConfig.nav.mode === 'string') {
64
- mode = themeConfig.nav.mode;
65
- userNavValue = getLocaleNav(themeConfig.nav.value, locale);
66
- } else if (!('mode' in themeConfig.nav)) {
67
- // 形如:[] {"zh-CN": []}
68
- userNavValue = getLocaleNav(themeConfig.nav, locale);
42
+ // use user config first
43
+ var userNavValue = [];
44
+ var mode;
45
+ if (themeConfig.nav) {
46
+ // 形如:{mode: "append", value: []}
47
+ if ('mode' in themeConfig.nav && typeof themeConfig.nav.mode === 'string') {
48
+ mode = themeConfig.nav.mode;
49
+ userNavValue = getLocaleNav(themeConfig.nav.value, locale);
50
+ } else if (!('mode' in themeConfig.nav)) {
51
+ // 形如:[] {"zh-CN": []}
52
+ userNavValue = getLocaleNav(themeConfig.nav, locale);
53
+ }
54
+ if (!mode || mode === 'override') return userNavValue;
69
55
  }
70
56
 
71
- if (!mode || mode === 'override') return userNavValue;
72
- } // fallback to generate nav data from sidebar data
73
-
74
-
75
- var data = Object.values(Object.entries(sidebar) // make sure shallow nav item before deep
76
- .sort(function (_ref, _ref2) {
77
- var _ref3 = _slicedToArray(_ref, 1),
57
+ // fallback to generate nav data from sidebar data
58
+ var data = Object.values(Object.entries(sidebar)
59
+ // make sure shallow nav item before deep
60
+ .sort(function (_ref, _ref2) {
61
+ var _ref3 = _slicedToArray(_ref, 1),
78
62
  a = _ref3[0];
79
-
80
- var _ref4 = _slicedToArray(_ref2, 1),
63
+ var _ref4 = _slicedToArray(_ref2, 1),
81
64
  b = _ref4[0];
82
-
83
- return a.split('/').length - b.split('/').length;
84
- }) // convert sidebar data to nav data
85
- .reduce(function (ret, _ref5) {
86
- var _ref6 = _slicedToArray(_ref5, 2),
65
+ return a.split('/').length - b.split('/').length;
66
+ })
67
+ // convert sidebar data to nav data
68
+ .reduce(function (ret, _ref5) {
69
+ var _ref6 = _slicedToArray(_ref5, 2),
87
70
  link = _ref6[0],
88
71
  groups = _ref6[1];
89
-
90
- var _ref7 = link.match(/^(\/[^/]+)([^]+)?$/),
72
+ var _ref7 = link.match(/^(\/[^/]+)([^]+)?$/),
91
73
  _ref8 = _slicedToArray(_ref7, 3),
92
74
  parentPath = _ref8[1],
93
75
  restPath = _ref8[2];
94
-
95
- var isNestedNav = Boolean(restPath) && is2LevelNav;
96
-
97
- var _Object$values$reduce = Object.values(routes).reduce(function (ret, route) {
98
- // find routes which within the nav path
99
- if (route.path.startsWith(link.slice(1))) {
100
- pickRouteSortMeta(ret[0], 'nav', route.meta.frontmatter); // generate parent meta for nested nav
101
-
102
- if (isNestedNav) pickRouteSortMeta(ret[1], 'nav.second', route.meta.frontmatter);
103
- }
104
-
105
- return ret;
106
- }, [{}, {}]),
76
+ var isNestedNav = Boolean(restPath) && is2LevelNav;
77
+ var _Object$values$reduce = Object.values(routes).reduce(function (ret, route) {
78
+ // find routes which within the nav path
79
+ if (route.path.startsWith(link.slice(1))) {
80
+ pickRouteSortMeta(ret[0], 'nav', route.meta.frontmatter);
81
+ // generate parent meta for nested nav
82
+ if (isNestedNav) pickRouteSortMeta(ret[1], 'nav.second', route.meta.frontmatter);
83
+ }
84
+ return ret;
85
+ }, [{}, {}]),
107
86
  _Object$values$reduce2 = _slicedToArray(_Object$values$reduce, 2),
108
87
  firstMeta = _Object$values$reduce2[0],
109
88
  secondMeta = _Object$values$reduce2[1];
110
-
111
- if (isNestedNav) {
112
- var _firstMeta$title, _ret$parentPath, _second$children;
113
-
114
- // fallback to use parent path as 1-level nav title
115
- (_firstMeta$title = firstMeta.title) !== null && _firstMeta$title !== void 0 ? _firstMeta$title : firstMeta.title = parentPath.slice(1).replace(/^[a-z]/, function (s) {
116
- return s.toUpperCase();
117
- }); // handle nested nav item as parent children
118
-
119
- var second = (_ret$parentPath = ret[parentPath]) !== null && _ret$parentPath !== void 0 ? _ret$parentPath : ret[parentPath] = genNavItem(firstMeta, groups, parentPath);
120
- (_second$children = second.children) !== null && _second$children !== void 0 ? _second$children : second.children = [];
121
- ret[parentPath].children.push(genNavItem(secondMeta, groups, link, groups[0].children[0].link));
122
- } else {
123
- // handle root nav item
124
- ret[link] = genNavItem(firstMeta, groups, link, groups[0].children[0].link);
125
- }
126
-
127
- return ret;
128
- }, {}));
129
- data.forEach(function (item, i) {
130
- var _item$children;
131
-
132
- if (!item.link && ((_item$children = item.children) === null || _item$children === void 0 ? void 0 : _item$children.length) === 1) {
133
- // hoist nav item if only one child
134
- data[i] = item.children[0];
135
- } else if (item.children) {
136
- // sort nav item children by order or title
137
- item.children.sort(sidebarDataComparer);
138
- }
139
- }); // sort nav items by order or title
140
-
141
- data.sort(sidebarDataComparer);
142
- if (mode === 'prepend') data.unshift.apply(data, _toConsumableArray(userNavValue));else if (mode === 'append') data.push.apply(data, _toConsumableArray(userNavValue));
143
- return data;
144
- }),
145
- _useState2 = _slicedToArray(_useState, 1),
146
- nav = _useState2[0];
147
-
89
+ if (isNestedNav) {
90
+ var _firstMeta$title, _ret$parentPath, _second$children;
91
+ // fallback to use parent path as 1-level nav title
92
+ (_firstMeta$title = firstMeta.title) !== null && _firstMeta$title !== void 0 ? _firstMeta$title : firstMeta.title = parentPath.slice(1).replace(/^[a-z]/, function (s) {
93
+ return s.toUpperCase();
94
+ });
95
+
96
+ // handle nested nav item as parent children
97
+ var second = (_ret$parentPath = ret[parentPath]) !== null && _ret$parentPath !== void 0 ? _ret$parentPath : ret[parentPath] = genNavItem(firstMeta, groups, parentPath);
98
+ (_second$children = second.children) !== null && _second$children !== void 0 ? _second$children : second.children = [];
99
+ ret[parentPath].children.push(genNavItem(secondMeta, groups, link, groups[0].children[0].link));
100
+ } else {
101
+ // handle root nav item
102
+ ret[link] = genNavItem(firstMeta, groups, link, groups[0].children[0].link);
103
+ }
104
+ return ret;
105
+ }, {}));
106
+ data.forEach(function (item, i) {
107
+ var _item$children;
108
+ if (!item.link && ((_item$children = item.children) === null || _item$children === void 0 ? void 0 : _item$children.length) === 1) {
109
+ // hoist nav item if only one child
110
+ data[i] = item.children[0];
111
+ } else if (item.children) {
112
+ // sort nav item children by order or title
113
+ item.children.sort(sidebarDataComparer);
114
+ }
115
+ });
116
+ // sort nav items by order or title
117
+ data.sort(sidebarDataComparer);
118
+ if (mode === 'prepend') data.unshift.apply(data, _toConsumableArray(userNavValue));else if (mode === 'append') data.push.apply(data, _toConsumableArray(userNavValue));
119
+ return data;
120
+ }),
121
+ _useState2 = _slicedToArray(_useState, 1),
122
+ nav = _useState2[0];
148
123
  return nav;
149
124
  };
@@ -1,5 +1,5 @@
1
- export declare type IColorValue = 'light' | 'dark';
2
- export declare type IPrefersColorValue = IColorValue | 'auto';
1
+ export type IColorValue = 'light' | 'dark';
2
+ export type IPrefersColorValue = IColorValue | 'auto';
3
3
  /**
4
4
  * hook for get/set prefers-color-schema, use to control color mode for theme package
5
5
  * @see https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme
@@ -1,74 +1,57 @@
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
1
2
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
-
3
3
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
-
5
4
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
6
-
7
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
8
-
9
- function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
10
-
5
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
6
+ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
11
7
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12
-
13
8
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
14
-
15
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
16
-
9
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
17
10
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
18
-
19
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
20
-
11
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
12
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
13
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
21
14
  import { PREFERS_COLOR_ATTR, PREFERS_COLOR_LS_KEY } from "../../constants";
22
15
  import { useSiteData } from 'dumi';
23
16
  import { useCallback, useEffect, useState } from 'react';
24
17
  var colorChanger;
25
-
26
18
  var ColorChanger = /*#__PURE__*/function () {
27
- /**
28
- * current color
29
- * @note exclude `auto`
30
- */
31
-
32
- /**
33
- * current prefers color
34
- * @note include `auto`
35
- */
36
-
37
- /**
38
- * color change callbacks
39
- */
40
19
  function ColorChanger(opts) {
41
20
  var _this = this;
42
-
43
21
  _classCallCheck(this, ColorChanger);
44
-
22
+ /**
23
+ * current color
24
+ * @note exclude `auto`
25
+ */
45
26
  _defineProperty(this, "color", void 0);
46
-
27
+ /**
28
+ * current prefers color
29
+ * @note include `auto`
30
+ */
47
31
  _defineProperty(this, "prefersColor", void 0);
48
-
32
+ /**
33
+ * color change callbacks
34
+ */
49
35
  _defineProperty(this, "callbacks", []);
50
-
51
- this.prefersColor = navigator.cookieEnabled && // read from localStorage first, because `auto` will not be set to attr
52
- localStorage.getItem(PREFERS_COLOR_LS_KEY) || // then use default value from themeConfig
36
+ this.prefersColor = navigator.cookieEnabled &&
37
+ // read from localStorage first, because `auto` will not be set to attr
38
+ localStorage.getItem(PREFERS_COLOR_LS_KEY) ||
39
+ // then use default value from themeConfig
53
40
  opts.default;
54
- this.color = document.documentElement.getAttribute(PREFERS_COLOR_ATTR); // listen prefers color change
55
-
41
+ this.color = document.documentElement.getAttribute(PREFERS_COLOR_ATTR);
42
+ // listen prefers color change
56
43
  ['light', 'dark'].forEach(function (color) {
57
44
  var mediaQueryList = _this.getColorMedia(color);
58
-
59
45
  var handler = function handler(ev) {
60
46
  // only apply media prefers color in auto mode
61
47
  if (ev.matches && _this.prefersColor === 'auto') {
62
48
  _this.color = color;
63
49
  document.documentElement.setAttribute(PREFERS_COLOR_ATTR, color);
64
-
65
50
  _this.applyCallbacks();
66
51
  }
67
- }; // compatible with Safari 13-
68
-
52
+ };
53
+ // compatible with Safari 13-
69
54
  /* istanbul ignore else */
70
-
71
-
72
55
  if (mediaQueryList.addEventListener) {
73
56
  mediaQueryList.addEventListener('change', handler);
74
57
  } else if (mediaQueryList.addListener) {
@@ -76,36 +59,34 @@ var ColorChanger = /*#__PURE__*/function () {
76
59
  }
77
60
  });
78
61
  }
62
+
79
63
  /**
80
64
  * get media instance for prefers color
81
65
  * @param color prefers color
82
66
  */
83
-
84
-
85
67
  _createClass(ColorChanger, [{
86
68
  key: "getColorMedia",
87
69
  value: function getColorMedia(color) {
88
70
  return window.matchMedia("(prefers-color-scheme: ".concat(color, ")"));
89
71
  }
72
+
90
73
  /**
91
74
  * detect color whether matches current color mode
92
75
  * @param color expected color
93
76
  */
94
-
95
77
  }, {
96
78
  key: "isColorMode",
97
79
  value: function isColorMode(color) {
98
80
  return this.getColorMedia(color).matches;
99
81
  }
82
+
100
83
  /**
101
84
  * apply all event change callbacks
102
85
  */
103
-
104
86
  }, {
105
87
  key: "applyCallbacks",
106
88
  value: function applyCallbacks() {
107
89
  var _this2 = this;
108
-
109
90
  this.callbacks.forEach(function (cb) {
110
91
  return cb({
111
92
  color: _this2.color,
@@ -113,37 +94,36 @@ var ColorChanger = /*#__PURE__*/function () {
113
94
  });
114
95
  });
115
96
  }
97
+
116
98
  /**
117
99
  * listen color change
118
100
  * @param cb callback
119
101
  */
120
-
121
102
  }, {
122
103
  key: "listen",
123
104
  value: function listen(cb) {
124
105
  this.callbacks.push(cb);
125
106
  }
107
+
126
108
  /**
127
109
  * unlisten color change
128
110
  * @param cb callback
129
111
  */
130
-
131
112
  }, {
132
113
  key: "unlisten",
133
114
  value: function unlisten(cb) {
134
115
  this.callbacks.splice(this.callbacks.indexOf(cb), 1);
135
116
  }
117
+
136
118
  /**
137
119
  * set prefers color
138
120
  */
139
-
140
121
  }, {
141
122
  key: "tryPrefersColor",
142
123
  value: function tryPrefersColor(color) {
143
124
  if (navigator.cookieEnabled) {
144
125
  localStorage.setItem(PREFERS_COLOR_LS_KEY, color);
145
126
  }
146
-
147
127
  this.prefersColor = color;
148
128
  this.color = color === 'auto' ? this.isColorMode('dark') ? 'dark' : 'light' : color;
149
129
  document.documentElement.setAttribute(PREFERS_COLOR_ATTR, color);
@@ -151,29 +131,23 @@ var ColorChanger = /*#__PURE__*/function () {
151
131
  return color;
152
132
  }
153
133
  }]);
154
-
155
134
  return ColorChanger;
156
135
  }();
157
136
  /**
158
137
  * hook for get/set prefers-color-schema, use to control color mode for theme package
159
138
  * @see https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme
160
139
  */
161
-
162
-
163
140
  export var usePrefersColor = function usePrefersColor() {
164
141
  var _useSiteData = useSiteData(),
165
- themeConfig = _useSiteData.themeConfig;
166
-
142
+ themeConfig = _useSiteData.themeConfig;
167
143
  var _useState = useState(),
168
- _useState2 = _slicedToArray(_useState, 2),
169
- color = _useState2[0],
170
- setColor = _useState2[1];
171
-
144
+ _useState2 = _slicedToArray(_useState, 2),
145
+ color = _useState2[0],
146
+ setColor = _useState2[1];
172
147
  var _useState3 = useState(),
173
- _useState4 = _slicedToArray(_useState3, 2),
174
- prefersColor = _useState4[0],
175
- setPrefersColor = _useState4[1];
176
-
148
+ _useState4 = _slicedToArray(_useState3, 2),
149
+ prefersColor = _useState4[0],
150
+ setPrefersColor = _useState4[1];
177
151
  var tryPrefersColor = useCallback(function (val) {
178
152
  colorChanger.tryPrefersColor(val);
179
153
  }, []);
@@ -183,7 +157,6 @@ export var usePrefersColor = function usePrefersColor() {
183
157
  }, []);
184
158
  useEffect(function () {
185
159
  var _colorChanger;
186
-
187
160
  // lazy initialize, for SSR
188
161
  (_colorChanger = colorChanger) !== null && _colorChanger !== void 0 ? _colorChanger : colorChanger = new ColorChanger({
189
162
  default: themeConfig.prefersColor.default