dumi 2.2.1-alpha.0 → 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 (131) 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 +28 -26
  12. package/dist/client/theme-api/openStackBlitz.js +15 -16
  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 +6 -0
  25. package/dist/client/theme-api/utils.js +40 -46
  26. package/dist/client/typings.d.ts +0 -5
  27. package/dist/constants.d.ts +1 -0
  28. package/dist/constants.js +3 -0
  29. package/dist/features/assets.js +23 -4
  30. package/dist/features/autoAlias.js +8 -3
  31. package/dist/features/compile/babelLoaderCustomize.js +0 -2
  32. package/dist/features/compile/index.js +22 -10
  33. package/dist/features/configPlugins/index.js +3 -4
  34. package/dist/features/configPlugins/schema.d.ts +1 -1
  35. package/dist/features/configPlugins/schema.js +20 -3
  36. package/dist/features/derivative.js +54 -11
  37. package/dist/features/exportStatic.js +11 -7
  38. package/dist/features/exports.js +8 -3
  39. package/dist/features/html2sketch.js +7 -5
  40. package/dist/features/locales.js +53 -17
  41. package/dist/features/meta.js +23 -10
  42. package/dist/features/parser.js +17 -5
  43. package/dist/features/routes.js +63 -24
  44. package/dist/features/sideEffects/docSideEffectsWebpackPlugin.js +27 -16
  45. package/dist/features/sideEffects/index.js +13 -4
  46. package/dist/features/sitemap.js +17 -5
  47. package/dist/features/tabs.js +23 -11
  48. package/dist/features/theme/index.js +152 -39
  49. package/dist/features/theme/loader.js +23 -7
  50. package/dist/index.js +10 -2
  51. package/dist/loaders/demo/index.js +3 -3
  52. package/dist/loaders/markdown/index.d.ts +1 -1
  53. package/dist/loaders/markdown/index.js +36 -24
  54. package/dist/loaders/markdown/transformer/index.d.ts +4 -2
  55. package/dist/loaders/markdown/transformer/index.js +48 -19
  56. package/dist/loaders/markdown/transformer/rehypeDemo.d.ts +3 -1
  57. package/dist/loaders/markdown/transformer/rehypeDemo.js +125 -68
  58. package/dist/loaders/markdown/transformer/rehypeDesc.js +8 -3
  59. package/dist/loaders/markdown/transformer/rehypeEnhancedTag.js +8 -3
  60. package/dist/loaders/markdown/transformer/rehypeHighlightLine.js +8 -3
  61. package/dist/loaders/markdown/transformer/rehypeImg.js +8 -3
  62. package/dist/loaders/markdown/transformer/rehypeIsolation.js +36 -21
  63. package/dist/loaders/markdown/transformer/rehypeJsxify.js +8 -3
  64. package/dist/loaders/markdown/transformer/rehypeLink.d.ts +1 -1
  65. package/dist/loaders/markdown/transformer/rehypeLink.js +24 -9
  66. package/dist/loaders/markdown/transformer/rehypeRaw.d.ts +1 -1
  67. package/dist/loaders/markdown/transformer/rehypeRaw.js +20 -6
  68. package/dist/loaders/markdown/transformer/rehypeSlug.js +16 -3
  69. package/dist/loaders/markdown/transformer/rehypeStrip.js +8 -3
  70. package/dist/loaders/markdown/transformer/rehypeText.js +14 -5
  71. package/dist/loaders/markdown/transformer/remarkBreaks.d.ts +3 -0
  72. package/dist/loaders/markdown/transformer/remarkBreaks.js +65 -0
  73. package/dist/loaders/markdown/transformer/remarkContainer.js +28 -13
  74. package/dist/loaders/markdown/transformer/remarkEmbed.js +43 -21
  75. package/dist/loaders/markdown/transformer/remarkMeta.d.ts +3 -1
  76. package/dist/loaders/markdown/transformer/remarkMeta.js +39 -9
  77. package/dist/loaders/page/index.js +12 -4
  78. package/dist/loaders/pre-raw/index.js +0 -2
  79. package/dist/preset.js +8 -3
  80. package/dist/registerMethods.js +0 -2
  81. package/dist/service/dev.js +8 -1
  82. package/dist/service/printHelp.js +3 -1
  83. package/dist/techStacks/react.js +8 -3
  84. package/dist/types.d.ts +6 -6
  85. package/dist/utils.d.ts +1 -1
  86. package/dist/utils.js +15 -6
  87. package/package.json +12 -10
  88. package/theme-default/builtins/API/index.js +15 -36
  89. package/theme-default/builtins/Badge/index.js +0 -3
  90. package/theme-default/builtins/Container/index.js +6 -15
  91. package/theme-default/builtins/Previewer/index.js +1 -8
  92. package/theme-default/builtins/SourceCode/index.js +15 -27
  93. package/theme-default/builtins/Table/index.js +10 -25
  94. package/theme-default/builtins/Tree/index.js +13 -44
  95. package/theme-default/layouts/DocLayout/index.js +14 -27
  96. package/theme-default/locales/en-US.json +4 -0
  97. package/theme-default/locales/zh-CN.json +4 -0
  98. package/theme-default/slots/ColorSwitch/index.js +7 -22
  99. package/theme-default/slots/Content/index.js +5 -7
  100. package/theme-default/slots/Content/index.less +16 -1
  101. package/theme-default/slots/ContentFooter/index.d.ts +4 -0
  102. package/theme-default/slots/ContentFooter/index.js +93 -0
  103. package/theme-default/slots/ContentFooter/index.less +163 -0
  104. package/theme-default/slots/ContentTabs/index.d.ts +1 -1
  105. package/theme-default/slots/ContentTabs/index.js +5 -5
  106. package/theme-default/slots/Features/index.js +6 -11
  107. package/theme-default/slots/Footer/index.js +1 -4
  108. package/theme-default/slots/Header/index.js +7 -18
  109. package/theme-default/slots/HeaderExtra/index.js +0 -2
  110. package/theme-default/slots/Hero/index.js +2 -6
  111. package/theme-default/slots/HeroTitle/index.js +0 -2
  112. package/theme-default/slots/LangSwitch/index.js +23 -35
  113. package/theme-default/slots/Logo/index.js +1 -4
  114. package/theme-default/slots/Navbar/index.js +14 -29
  115. package/theme-default/slots/NavbarExtra/index.js +0 -2
  116. package/theme-default/slots/NotFound/index.js +0 -2
  117. package/theme-default/slots/PreviewerActions/index.js +13 -35
  118. package/theme-default/slots/PreviewerActionsExtra/index.js +0 -2
  119. package/theme-default/slots/RtlSwitch/index.js +6 -20
  120. package/theme-default/slots/RtlSwitch/index.less +5 -0
  121. package/theme-default/slots/SearchBar/Input.d.ts +1 -1
  122. package/theme-default/slots/SearchBar/Input.js +6 -5
  123. package/theme-default/slots/SearchBar/Mask.d.ts +1 -1
  124. package/theme-default/slots/SearchBar/Mask.js +0 -1
  125. package/theme-default/slots/SearchBar/index.js +20 -41
  126. package/theme-default/slots/SearchResult/index.d.ts +1 -1
  127. package/theme-default/slots/SearchResult/index.js +13 -36
  128. package/theme-default/slots/Sidebar/index.js +1 -4
  129. package/theme-default/slots/SocialIcon/index.d.ts +2 -2
  130. package/theme-default/slots/SocialIcon/index.js +1 -3
  131. package/theme-default/slots/Toc/index.js +12 -28
@@ -1,20 +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
- import { genReactRenderCode } from "./utils";
8
+ import { ApplyPluginsType } from 'dumi';
9
+ import { genReactRenderCode, pluginManager } from "./utils";
15
10
  export var openStackBlitz = function openStackBlitz(data) {
16
11
  var _data$asset$dependenc, _react, _deps$_react, _reactDom, _deps$_reactDom;
17
-
18
12
  var isTSX = Boolean((_data$asset$dependenc = data.asset.dependencies) === null || _data$asset$dependenc === void 0 ? void 0 : _data$asset$dependenc['index.tsx']);
19
13
  var ext = isTSX ? '.tsx' : '.jsx';
20
14
  var deps = {};
@@ -30,11 +24,10 @@ export var openStackBlitz = function openStackBlitz(data) {
30
24
  };
31
25
  Object.entries(data.asset.dependencies).forEach(function (_ref) {
32
26
  var _ref2 = _slicedToArray(_ref, 2),
33
- name = _ref2[0],
34
- _ref2$ = _ref2[1],
35
- type = _ref2$.type,
36
- value = _ref2$.value;
37
-
27
+ name = _ref2[0],
28
+ _ref2$ = _ref2[1],
29
+ type = _ref2$.type,
30
+ value = _ref2$.value;
38
31
  if (type === 'NPM') {
39
32
  // generate dependencies
40
33
  deps[name] = value;
@@ -56,5 +49,11 @@ export var openStackBlitz = function openStackBlitz(data) {
56
49
  }, null, 2);
57
50
  files[entryFileName] = genReactRenderCode(deps.react);
58
51
  config.files = files;
59
- sdk.openProject(config);
52
+ var stbOpts = pluginManager.applyPlugins({
53
+ type: ApplyPluginsType.modify,
54
+ key: 'modifyStackBlitzData',
55
+ initialValue: config,
56
+ args: data
57
+ });
58
+ sdk.openProject(stbOpts);
60
59
  };
@@ -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