@cypress-design/react-docmenu 0.5.4 → 0.6.0
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.
- package/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +10 -0
- package/DocMenuReact.cy.tsx +44 -1
- package/_DocGroup.tsx +10 -0
- package/_DocLink.tsx +12 -15
- package/dist/_DocGroup.d.ts.map +1 -1
- package/dist/_DocLink.d.ts.map +1 -1
- package/dist/index.es.mjs +14 -5
- package/dist/index.es.mjs.map +1 -1
- package/dist/index.umd.js +14 -5
- package/dist/index.umd.js.map +1 -1
- package/package.json +2 -2
package/.turbo/turbo-build.log
CHANGED
|
@@ -2,5 +2,5 @@ $ yarn build:module && yarn build:types
|
|
|
2
2
|
$ rollup -c ./rollup.config.mjs
|
|
3
3
|
[36m
|
|
4
4
|
[1m./index.ts[22m → [1m./dist/index.umd.js, ./dist/index.es.mjs[22m...[39m
|
|
5
|
-
[32mcreated [1m./dist/index.umd.js, ./dist/index.es.mjs[22m in [
|
|
5
|
+
[32mcreated [1m./dist/index.umd.js, ./dist/index.es.mjs[22m in [1m16.1s[22m[39m
|
|
6
6
|
$ tsc --project ./tsconfig.build.json
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# @cypress-design/react-docmenu
|
|
2
2
|
|
|
3
|
+
## 0.6.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`bb4e507`](https://github.com/cypress-io/cypress-design/commit/bb4e507ca14e57e3400f0444446e1b3a0eb598ad) Thanks [@elevatebart](https://github.com/elevatebart)! - add a test and the names of components in dev tools
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- [#387](https://github.com/cypress-io/cypress-design/pull/387) [`05b67c5`](https://github.com/cypress-io/cypress-design/commit/05b67c5389df1c0619d2f01e2b36fb5bd6bb30b9) Thanks [@elevatebart](https://github.com/elevatebart)! - when activePath changes, expand sections that contain the newly activated element
|
|
12
|
+
|
|
3
13
|
## 0.5.4
|
|
4
14
|
|
|
5
15
|
### Patch Changes
|
package/DocMenuReact.cy.tsx
CHANGED
|
@@ -169,7 +169,50 @@ describe('<DocMenu/>', () => {
|
|
|
169
169
|
</div>,
|
|
170
170
|
)
|
|
171
171
|
}
|
|
172
|
-
|
|
172
|
+
|
|
173
|
+
assertions(mountStory, () => {
|
|
174
|
+
const SUT = () => {
|
|
175
|
+
const [pathState, setPathState] = React.useState<string>('/foo')
|
|
176
|
+
return (
|
|
177
|
+
<>
|
|
178
|
+
<button onClick={() => setPathState('/kephren')}>
|
|
179
|
+
Set path to /kephren
|
|
180
|
+
</button>
|
|
181
|
+
<DocMenu
|
|
182
|
+
items={[
|
|
183
|
+
{
|
|
184
|
+
label: 'Section 1',
|
|
185
|
+
items: [
|
|
186
|
+
{ href: '/foo', label: 'Foo' },
|
|
187
|
+
{
|
|
188
|
+
label: 'Subsection',
|
|
189
|
+
items: [{ href: '/sub', label: 'Sub' }],
|
|
190
|
+
},
|
|
191
|
+
],
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
label: 'Pyramid',
|
|
195
|
+
items: [{ href: '/kephren', label: 'Kephren' }],
|
|
196
|
+
collapsed: true,
|
|
197
|
+
},
|
|
198
|
+
]}
|
|
199
|
+
LinkComponent={({ href, children, style, ...props }) => (
|
|
200
|
+
<button
|
|
201
|
+
onClick={() => setPathState(href)}
|
|
202
|
+
{...props}
|
|
203
|
+
style={{ ...style, textAlign: 'left' }}
|
|
204
|
+
>
|
|
205
|
+
{children}
|
|
206
|
+
</button>
|
|
207
|
+
)}
|
|
208
|
+
activePath={pathState}
|
|
209
|
+
collapsible
|
|
210
|
+
/>
|
|
211
|
+
</>
|
|
212
|
+
)
|
|
213
|
+
}
|
|
214
|
+
mount(<SUT />)
|
|
215
|
+
})
|
|
173
216
|
})
|
|
174
217
|
|
|
175
218
|
// pseudo text
|
package/_DocGroup.tsx
CHANGED
|
@@ -63,6 +63,12 @@ export const DocGroup = React.forwardRef<DocGroupForward, DocGroupProps>(
|
|
|
63
63
|
React.useState<NodeJS.Timeout>()
|
|
64
64
|
const $groupElements = React.useRef<DocGroupElementsForward>(null)
|
|
65
65
|
|
|
66
|
+
React.useEffect(() => {
|
|
67
|
+
if (hasActiveItemRecursivelyMemo && !open) {
|
|
68
|
+
setOpen(true)
|
|
69
|
+
}
|
|
70
|
+
}, [hasActiveItemRecursivelyMemo, activePath, open])
|
|
71
|
+
|
|
66
72
|
const toggleMenu = (localOpen: boolean) => {
|
|
67
73
|
if (!collapsible || markerIsMoving) return
|
|
68
74
|
setMarkerIsMoving(true)
|
|
@@ -197,6 +203,8 @@ export const DocGroup = React.forwardRef<DocGroupForward, DocGroupProps>(
|
|
|
197
203
|
},
|
|
198
204
|
)
|
|
199
205
|
|
|
206
|
+
DocGroup.displayName = 'DocMenuDocGroup'
|
|
207
|
+
|
|
200
208
|
export interface DocGroupElementsProps
|
|
201
209
|
extends React.HTMLAttributes<HTMLUListElement> {
|
|
202
210
|
items: (NavGroup | NavItemLink)[]
|
|
@@ -312,3 +320,5 @@ export const DocGroupElements = React.forwardRef<
|
|
|
312
320
|
)
|
|
313
321
|
},
|
|
314
322
|
)
|
|
323
|
+
|
|
324
|
+
DocGroupElements.displayName = 'DocMenuDocGroupElements'
|
package/_DocLink.tsx
CHANGED
|
@@ -30,22 +30,16 @@ export interface DocLinkForward {
|
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
export const DocLink = React.forwardRef<DocLinkForward, DocLinkProps>(
|
|
33
|
-
(
|
|
34
|
-
{
|
|
35
|
-
item: { label, ...itemRest },
|
|
36
|
-
depth,
|
|
37
|
-
markerIsMoving,
|
|
38
|
-
context,
|
|
39
|
-
onActive,
|
|
40
|
-
LinkComponent,
|
|
41
|
-
},
|
|
42
|
-
ref,
|
|
43
|
-
) => {
|
|
33
|
+
({ item, depth, markerIsMoving, context, onActive, LinkComponent }, ref) => {
|
|
44
34
|
const activeLIRef = React.useRef<HTMLLIElement>(null)
|
|
45
35
|
|
|
46
|
-
const
|
|
36
|
+
const active = React.useMemo(
|
|
37
|
+
() => item.href === context.activePath,
|
|
38
|
+
[item.href, context.activePath],
|
|
39
|
+
)
|
|
47
40
|
|
|
48
|
-
|
|
41
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
42
|
+
const { label, ...itemRest } = item
|
|
49
43
|
|
|
50
44
|
const setActiveMarkerPosition = () => {
|
|
51
45
|
if (active) {
|
|
@@ -86,15 +80,18 @@ export const DocLink = React.forwardRef<DocLinkForward, DocLinkProps>(
|
|
|
86
80
|
'left-[6.5px] absolute top-[4px] bottom-[4px] w-[4px] z-10 rounded-full',
|
|
87
81
|
{
|
|
88
82
|
hidden: !markerIsMoving || !active,
|
|
89
|
-
'group-hover:block bg-gray-300':
|
|
83
|
+
'group-hover:block bg-gray-300':
|
|
84
|
+
!active && context.collapsible,
|
|
90
85
|
'bg-indigo-500 dark:bg-indigo-400': active && markerIsMoving,
|
|
91
86
|
},
|
|
92
87
|
)}
|
|
93
88
|
/>
|
|
94
89
|
) : null}
|
|
95
|
-
{label}
|
|
90
|
+
{item.label}
|
|
96
91
|
</LinkComponent>
|
|
97
92
|
</li>
|
|
98
93
|
)
|
|
99
94
|
},
|
|
100
95
|
)
|
|
96
|
+
|
|
97
|
+
DocLink.displayName = 'DocMenuDocLink'
|
package/dist/_DocGroup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_DocGroup.d.ts","sourceRoot":"./","sources":["_DocGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,WAAW,EAEjB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAEL,KAAK,OAAO,EAEZ,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAA;AAEnB,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,QAAQ,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,gBAAgB,EAAE,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IACjE,oBAAoB,EAAE,MAAM,IAAI,CAAA;IAChC,cAAc,EAAE,OAAO,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,iBAAiB,CAAA;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,uBAAuB,EAAE,MAAM,IAAI,CAAA;CACpC;AAcD,eAAO,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"_DocGroup.d.ts","sourceRoot":"./","sources":["_DocGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,WAAW,EAEjB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAEL,KAAK,OAAO,EAEZ,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAA;AAEnB,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,QAAQ,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,gBAAgB,EAAE,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IACjE,oBAAoB,EAAE,MAAM,IAAI,CAAA;IAChC,cAAc,EAAE,OAAO,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,iBAAiB,CAAA;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,uBAAuB,EAAE,MAAM,IAAI,CAAA;CACpC;AAcD,eAAO,MAAM,QAAQ,uFAkKpB,CAAA;AAID,MAAM,WAAW,qBACf,SAAQ,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC;IAC9C,KAAK,EAAE,CAAC,QAAQ,GAAG,WAAW,CAAC,EAAE,CAAA;IACjC,gBAAgB,EAAE,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IACjE,cAAc,EAAE,OAAO,CAAA;IACvB,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAA;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,iBAAiB,CAAA;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,uBAAuB,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CAClD;AAED,eAAO,MAAM,gBAAgB,uGAkG5B,CAAA"}
|
package/dist/_DocLink.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_DocLink.d.ts","sourceRoot":"./","sources":["_DocLink.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAE/D,MAAM,WAAW,OAAO;IACtB,iBAAiB,EAAE,CAAC,cAAc,EAAE,OAAO,KAAK,IAAI,CAAA;IACpD,WAAW,EAAE,OAAO,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,IAAI,CAAA;CACvB;AAED,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC;IAChD,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,KAAK,CAAC,aAAa,CAAA;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAAC,CAAA;AAEF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,WAAW,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,OAAO,CAAA;IACvB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IACzD,aAAa,EAAE,iBAAiB,CAAA;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B,uBAAuB,EAAE,MAAM,IAAI,CAAA;CACpC;AAED,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"_DocLink.d.ts","sourceRoot":"./","sources":["_DocLink.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAE/D,MAAM,WAAW,OAAO;IACtB,iBAAiB,EAAE,CAAC,cAAc,EAAE,OAAO,KAAK,IAAI,CAAA;IACpD,WAAW,EAAE,OAAO,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,IAAI,CAAA;CACvB;AAED,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC;IAChD,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,KAAK,CAAC,aAAa,CAAA;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAAC,CAAA;AAEF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,WAAW,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,OAAO,CAAA;IACvB,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IACzD,aAAa,EAAE,iBAAiB,CAAA;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B,uBAAuB,EAAE,MAAM,IAAI,CAAA;CACpC;AAED,eAAO,MAAM,OAAO,qFA+DnB,CAAA"}
|
package/dist/index.es.mjs
CHANGED
|
@@ -162,10 +162,11 @@ const classes = {
|
|
|
162
162
|
};
|
|
163
163
|
|
|
164
164
|
var DocLink = React.forwardRef(function (_a, ref) {
|
|
165
|
-
var
|
|
165
|
+
var item = _a.item, depth = _a.depth, markerIsMoving = _a.markerIsMoving, context = _a.context, onActive = _a.onActive, LinkComponent = _a.LinkComponent;
|
|
166
166
|
var activeLIRef = React.useRef(null);
|
|
167
|
-
var
|
|
168
|
-
|
|
167
|
+
var active = React.useMemo(function () { return item.href === context.activePath; }, [item.href, context.activePath]);
|
|
168
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
169
|
+
item.label; var itemRest = __rest$1(item, ["label"]);
|
|
169
170
|
var setActiveMarkerPosition = function () {
|
|
170
171
|
var _a;
|
|
171
172
|
if (active) {
|
|
@@ -193,11 +194,12 @@ var DocLink = React.forwardRef(function (_a, ref) {
|
|
|
193
194
|
} }),
|
|
194
195
|
depth >= 0 ? (React.createElement("div", { className: clsx('left-[6.5px] absolute top-[4px] bottom-[4px] w-[4px] z-10 rounded-full', {
|
|
195
196
|
hidden: !markerIsMoving || !active,
|
|
196
|
-
'group-hover:block bg-gray-300': !active && collapsible,
|
|
197
|
+
'group-hover:block bg-gray-300': !active && context.collapsible,
|
|
197
198
|
'bg-indigo-500 dark:bg-indigo-400': active && markerIsMoving,
|
|
198
199
|
}) })) : null,
|
|
199
|
-
label)));
|
|
200
|
+
item.label)));
|
|
200
201
|
});
|
|
202
|
+
DocLink.displayName = 'DocMenuDocLink';
|
|
201
203
|
|
|
202
204
|
var hasActiveItemRecursively = function (items, localActivePath) {
|
|
203
205
|
return items.some(function (item) {
|
|
@@ -217,6 +219,11 @@ var DocGroup = React.forwardRef(function (_a, ref) {
|
|
|
217
219
|
var _e = React.useState(!group.collapsed), open = _e[0], setOpen = _e[1];
|
|
218
220
|
var _f = React.useState(), markerIsMovingTimeout = _f[0], setMarkerIsMovingTimeout = _f[1];
|
|
219
221
|
var $groupElements = React.useRef(null);
|
|
222
|
+
React.useEffect(function () {
|
|
223
|
+
if (hasActiveItemRecursivelyMemo && !open) {
|
|
224
|
+
setOpen(true);
|
|
225
|
+
}
|
|
226
|
+
}, [hasActiveItemRecursivelyMemo, activePath, open]);
|
|
220
227
|
var toggleMenu = function (localOpen) {
|
|
221
228
|
if (!collapsible || markerIsMoving)
|
|
222
229
|
return;
|
|
@@ -306,6 +313,7 @@ var DocGroup = React.forwardRef(function (_a, ref) {
|
|
|
306
313
|
open && collapsible && depth === 0 ? (React.createElement("div", { className: classes.openListBorderLeft })) : null,
|
|
307
314
|
React.createElement(DocGroupElements, { ref: $groupElements, className: "overflow-hidden", items: group.items, depth: depth, context: context, markerIsMoving: markerIsMoving, onActivePosition: setActivePosition, updateMarkerPosition: onUpdateMarkerPosition, LinkComponent: LinkComponent }))));
|
|
308
315
|
});
|
|
316
|
+
DocGroup.displayName = 'DocMenuDocGroup';
|
|
309
317
|
var DocGroupElements = React.forwardRef(function (_a, ref) {
|
|
310
318
|
var items = _a.items, _b = _a.depth, depth = _b === void 0 ? 0 : _b, onActivePosition = _a.onActivePosition, updateMarkerPosition = _a.updateMarkerPosition, markerIsMoving = _a.markerIsMoving, LinkComponent = _a.LinkComponent, className = _a.className, context = _a.context, rest = __rest$1(_a, ["items", "depth", "onActivePosition", "updateMarkerPosition", "markerIsMoving", "LinkComponent", "className", "context"]);
|
|
311
319
|
var $groups = React.useRef([]);
|
|
@@ -350,6 +358,7 @@ var DocGroupElements = React.forwardRef(function (_a, ref) {
|
|
|
350
358
|
}, LinkComponent: LinkComponent }));
|
|
351
359
|
})));
|
|
352
360
|
});
|
|
361
|
+
DocGroupElements.displayName = 'DocMenuDocGroupElements';
|
|
353
362
|
|
|
354
363
|
var DocMenu = function (_a) {
|
|
355
364
|
var items = _a.items, _b = _a.activePath, activePath = _b === void 0 ? '<unknown>' : _b, _c = _a.collapsible, collapsible = _c === void 0 ? true : _c, _d = _a.LinkComponent, LinkComponent = _d === void 0 ? 'a' : _d, rest = __rest$1(_a, ["items", "activePath", "collapsible", "LinkComponent"]);
|