dumi 2.4.18 → 2.4.20

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.
@@ -47,7 +47,7 @@ function rehypeSlug() {
47
47
  const slugger = new import_github_slugger.default();
48
48
  vFile.data.toc = [];
49
49
  visit(tree, "element", (node) => {
50
- var _a, _b;
50
+ var _a, _b, _c;
51
51
  if (HEADING_TAGS.includes(node.tagName)) {
52
52
  const title = toString({
53
53
  type: "element",
@@ -58,12 +58,16 @@ function rehypeSlug() {
58
58
  )
59
59
  }).trim();
60
60
  const depth = Number(node.tagName.slice(1));
61
- const id = slugger.slug(title);
62
- node.properties.id = id;
63
- vFile.data.toc.push({ id, depth, title });
64
- } else if ([import_rehypeDemo.DUMI_DEMO_TAG, import_rehypeDemo.DUMI_DEMO_GRID_TAG].includes(node.tagName) && ((_a = node.data) == null ? void 0 : _a[import_rehypeDemo.DEMO_PROP_VALUE_KEY])) {
61
+ node.properties ?? (node.properties = {});
62
+ (_a = node.properties).id ?? (_a.id = slugger.slug(title));
63
+ vFile.data.toc.push({
64
+ id: node.properties.id,
65
+ depth,
66
+ title
67
+ });
68
+ } else if ([import_rehypeDemo.DUMI_DEMO_TAG, import_rehypeDemo.DUMI_DEMO_GRID_TAG].includes(node.tagName) && ((_b = node.data) == null ? void 0 : _b[import_rehypeDemo.DEMO_PROP_VALUE_KEY])) {
65
69
  const demos = [].concat(
66
- (_b = node.data) == null ? void 0 : _b[import_rehypeDemo.DEMO_PROP_VALUE_KEY]
70
+ (_c = node.data) == null ? void 0 : _c[import_rehypeDemo.DEMO_PROP_VALUE_KEY]
67
71
  );
68
72
  demos.forEach(({ demo, previewerProps }) => {
69
73
  var _a2, _b2;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dumi",
3
- "version": "2.4.18",
3
+ "version": "2.4.20",
4
4
  "description": "📖 Documentation Generator of React Component",
5
5
  "keywords": [
6
6
  "generator",
@@ -95,8 +95,14 @@ var HANDLERS = {
95
95
  return /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(Token, null, '{'), props, /*#__PURE__*/React.createElement(Token, null, '}'));
96
96
  },
97
97
  array: function array(prop) {
98
+ var _this2 = this;
98
99
  var arrayType = /*#__PURE__*/React.createElement("span", null, "any");
99
100
  if (prop.items) {
101
+ if (Array.isArray(prop.items)) return /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(Token, null, '['), prop.items.map(function (item, i) {
102
+ return /*#__PURE__*/React.createElement("span", {
103
+ key: "".concat(i)
104
+ }, i > 0 && ', ', _this2.toNode(item));
105
+ }), /*#__PURE__*/React.createElement(Token, null, ']'));
100
106
  var className = this.getValidClassName(prop.items);
101
107
  arrayType = className !== null && className !== void 0 ? className : this.toNode(prop.items);
102
108
  }
@@ -108,7 +114,7 @@ var HANDLERS = {
108
114
  },
109
115
  // FIXME: extract real type
110
116
  function: function _function(_ref4) {
111
- var _this2 = this;
117
+ var _this3 = this;
112
118
  var signature = _ref4.signature;
113
119
  // handle Function type without signature
114
120
  if (!signature) return /*#__PURE__*/React.createElement("span", null, "Function");
@@ -119,8 +125,8 @@ var HANDLERS = {
119
125
  }, signature.isAsync ? /*#__PURE__*/React.createElement(Token, null, "async") : '', /*#__PURE__*/React.createElement(Token, null, '('), signature.arguments.map(function (arg, ai) {
120
126
  return /*#__PURE__*/React.createElement("span", {
121
127
  key: "".concat(si).concat(ai)
122
- }, /*#__PURE__*/React.createElement("span", null, arg.key), arg.hasQuestionToken && /*#__PURE__*/React.createElement(Token, null, "?"), /*#__PURE__*/React.createElement(Token, null, ":"), _this2.toNode(!!arg.schema ? arg.schema : fixArg(arg)), ai < signature.arguments.length - 1 && /*#__PURE__*/React.createElement(Token, null, ","));
123
- }), /*#__PURE__*/React.createElement(Token, null, ')'), /*#__PURE__*/React.createElement(Token, null, "=>"), _this2.toNode(signature.returnType), si < signatures.length - 1 && /*#__PURE__*/React.createElement(Token, null, "|"));
128
+ }, /*#__PURE__*/React.createElement("span", null, arg.key), arg.hasQuestionToken && /*#__PURE__*/React.createElement(Token, null, "?"), /*#__PURE__*/React.createElement(Token, null, ":"), _this3.toNode(!!arg.schema ? arg.schema : fixArg(arg)), ai < signature.arguments.length - 1 && /*#__PURE__*/React.createElement(Token, null, ","));
129
+ }), /*#__PURE__*/React.createElement(Token, null, ')'), /*#__PURE__*/React.createElement(Token, null, "=>"), _this3.toNode(signature.returnType), si < signatures.length - 1 && /*#__PURE__*/React.createElement(Token, null, "|"));
124
130
  });
125
131
  },
126
132
  // FIXME: extract real type
@@ -139,20 +145,20 @@ var HANDLERS = {
139
145
  }));
140
146
  },
141
147
  oneOf: function oneOf(prop) {
142
- var _this3 = this;
148
+ var _this4 = this;
143
149
  return prop.oneOf.map(function (v, i) {
144
150
  return /*#__PURE__*/React.createElement("span", {
145
151
  key: i
146
- }, _this3.getValidClassName(v) || _this3.toNode(v), i < prop.oneOf.length - 1 && /*#__PURE__*/React.createElement(Token, null, "|"));
152
+ }, _this4.getValidClassName(v) || _this4.toNode(v), i < prop.oneOf.length - 1 && /*#__PURE__*/React.createElement(Token, null, "|"));
147
153
  });
148
154
  },
149
155
  reference: function reference(prop) {
150
- var _this4 = this;
156
+ var _this5 = this;
151
157
  var typeParameters = prop.typeParameters || [];
152
158
  var params = typeParameters.map(function (param, i) {
153
159
  return /*#__PURE__*/React.createElement("span", {
154
160
  key: i
155
- }, _this4.toNode(param), i < typeParameters.length - 1 && /*#__PURE__*/React.createElement(Token, null, ","));
161
+ }, _this5.toNode(param), i < typeParameters.length - 1 && /*#__PURE__*/React.createElement(Token, null, ","));
156
162
  });
157
163
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("a", {
158
164
  className: "dumi-default-api-link",
@@ -91,7 +91,9 @@ var SourceCode = function SourceCode(props) {
91
91
  });
92
92
  return /*#__PURE__*/React.createElement("div", {
93
93
  className: "dumi-default-source-code"
94
- }, /*#__PURE__*/React.createElement(CopyToClipboard, {
94
+ }, Boolean(lang) && /*#__PURE__*/React.createElement("span", {
95
+ className: "dumi-default-source-code-language"
96
+ }, lang), /*#__PURE__*/React.createElement(CopyToClipboard, {
95
97
  text: text,
96
98
  onCopy: function onCopy() {
97
99
  setIsCopied(true);
@@ -158,6 +158,24 @@
158
158
  visibility: hidden;
159
159
  }
160
160
 
161
+ &-language {
162
+ position: absolute;
163
+ top: 2px;
164
+ right: 8px;
165
+ z-index: 2;
166
+ font-size: 12px;
167
+ font-weight: 500;
168
+ user-select: none;
169
+ user-select: none;
170
+ color: @c-text-note;
171
+ transition: color 0.4s, opacity 0.4s;
172
+ }
173
+
174
+ &:hover &-language {
175
+ opacity: 0;
176
+ visibility: hidden;
177
+ }
178
+
161
179
  @{dark-selector} & {
162
180
  @bg-color: shade(@c-site-bg-dark, 50%);
163
181