@cypress-design/react-docmenu 0.5.3 → 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.
@@ -2,5 +2,5 @@ $ yarn build:module && yarn build:types
2
2
  $ rollup -c ./rollup.config.mjs
3
3
  
4
4
  ./index.ts → ./dist/index.umd.js, ./dist/index.es.mjs...
5
- created ./dist/index.umd.js, ./dist/index.es.mjs in 12.9s
5
+ created ./dist/index.umd.js, ./dist/index.es.mjs in 16.1s
6
6
  $ tsc --project ./tsconfig.build.json
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
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
+
13
+ ## 0.5.4
14
+
15
+ ### Patch Changes
16
+
17
+ - [`fe2f9f0`](https://github.com/cypress-io/cypress-design/commit/fe2f9f0435117454b3d81ce22ec3e9258330a725) Thanks [@elevatebart](https://github.com/elevatebart)! - make margin of button on depth button
18
+
3
19
  ## 0.5.3
4
20
 
5
21
  ### Patch Changes
@@ -163,9 +163,56 @@ describe('<DocMenu/>', () => {
163
163
  })
164
164
 
165
165
  function mountStory(items: (NavItemLink | NavGroup)[] = [], activePath = '') {
166
- mount(<DocMenu items={items} activePath={activePath} />)
166
+ mount(
167
+ <div className="p-4">
168
+ <DocMenu items={items} activePath={activePath} />
169
+ </div>,
170
+ )
167
171
  }
168
- assertions(mountStory)
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
+ })
169
216
  })
170
217
 
171
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)
@@ -144,6 +150,9 @@ export const DocGroup = React.forwardRef<DocGroupForward, DocGroupProps>(
144
150
  'text-gray-800 dark:text-gray-200':
145
151
  !hasActiveItemRecursivelyMemo && activePath !== group.href,
146
152
  })}
153
+ style={{
154
+ paddingLeft: depth >= 1 ? `${(depth - 1) * 12 + 48}px` : undefined,
155
+ }}
147
156
  >
148
157
  {collapsible ? (
149
158
  <IconChevronDownSmall
@@ -152,8 +161,11 @@ export const DocGroup = React.forwardRef<DocGroupForward, DocGroupProps>(
152
161
  className={clsx(classes.expandedIcon, {
153
162
  'rotate-0': open,
154
163
  '-rotate-90': !open,
155
- 'ml-[28px]': depth,
156
164
  })}
165
+ style={{
166
+ marginLeft:
167
+ depth >= 1 ? `${(depth - 1) * 12 + 28}px` : undefined,
168
+ }}
157
169
  />
158
170
  ) : null}
159
171
  {group.label}
@@ -191,6 +203,8 @@ export const DocGroup = React.forwardRef<DocGroupForward, DocGroupProps>(
191
203
  },
192
204
  )
193
205
 
206
+ DocGroup.displayName = 'DocMenuDocGroup'
207
+
194
208
  export interface DocGroupElementsProps
195
209
  extends React.HTMLAttributes<HTMLUListElement> {
196
210
  items: (NavGroup | NavItemLink)[]
@@ -306,3 +320,5 @@ export const DocGroupElements = React.forwardRef<
306
320
  )
307
321
  },
308
322
  )
323
+
324
+ DocGroupElements.displayName = 'DocMenuDocGroupElements'
package/_DocLink.tsx CHANGED
@@ -33,9 +33,13 @@ export const DocLink = React.forwardRef<DocLinkForward, DocLinkProps>(
33
33
  ({ item, depth, markerIsMoving, context, onActive, LinkComponent }, ref) => {
34
34
  const activeLIRef = React.useRef<HTMLLIElement>(null)
35
35
 
36
- const { collapsible, activePath } = context
36
+ const active = React.useMemo(
37
+ () => item.href === context.activePath,
38
+ [item.href, context.activePath],
39
+ )
37
40
 
38
- const active = item.href === activePath
41
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
42
+ const { label, ...itemRest } = item
39
43
 
40
44
  const setActiveMarkerPosition = () => {
41
45
  if (active) {
@@ -59,13 +63,13 @@ export const DocLink = React.forwardRef<DocLinkForward, DocLinkProps>(
59
63
  return (
60
64
  <li ref={activeLIRef} className="list-none p-0">
61
65
  <LinkComponent
66
+ {...itemRest}
62
67
  className={clsx('group relative block w-full pl-[24px]', {
63
68
  'text-indigo-500 dark:text-indigo-400': active,
64
69
  'text-gray-700 dark:text-gray-500': !active,
65
70
  'py-[8px] text-[16px] leading-[24px]': depth < 0,
66
71
  'leading-[20px] text-[14px] py-[12px]': depth >= 0,
67
72
  })}
68
- href={item.href}
69
73
  style={{
70
74
  paddingLeft: depth >= 0 ? `${depth * 12 + 48}px` : undefined,
71
75
  }}
@@ -76,7 +80,8 @@ export const DocLink = React.forwardRef<DocLinkForward, DocLinkProps>(
76
80
  'left-[6.5px] absolute top-[4px] bottom-[4px] w-[4px] z-10 rounded-full',
77
81
  {
78
82
  hidden: !markerIsMoving || !active,
79
- 'group-hover:block bg-gray-300': !active && collapsible,
83
+ 'group-hover:block bg-gray-300':
84
+ !active && context.collapsible,
80
85
  'bg-indigo-500 dark:bg-indigo-400': active && markerIsMoving,
81
86
  },
82
87
  )}
@@ -88,3 +93,5 @@ export const DocLink = React.forwardRef<DocLinkForward, DocLinkProps>(
88
93
  )
89
94
  },
90
95
  )
96
+
97
+ DocLink.displayName = 'DocMenuDocLink'
@@ -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,uFAsJpB,CAAA;AAED,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"}
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"}
@@ -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,qFA0DnB,CAAA"}
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
@@ -164,8 +164,9 @@ const classes = {
164
164
  var DocLink = React.forwardRef(function (_a, ref) {
165
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 collapsible = context.collapsible, activePath = context.activePath;
168
- var active = item.href === activePath;
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) {
@@ -183,21 +184,22 @@ var DocLink = React.forwardRef(function (_a, ref) {
183
184
  setActiveMarkerPosition: setActiveMarkerPosition,
184
185
  }); });
185
186
  return (React.createElement("li", { ref: activeLIRef, className: "list-none p-0" },
186
- React.createElement(LinkComponent, { className: clsx('group relative block w-full pl-[24px]', {
187
+ React.createElement(LinkComponent, __assign$1({}, itemRest, { className: clsx('group relative block w-full pl-[24px]', {
187
188
  'text-indigo-500 dark:text-indigo-400': active,
188
189
  'text-gray-700 dark:text-gray-500': !active,
189
190
  'py-[8px] text-[16px] leading-[24px]': depth < 0,
190
191
  'leading-[20px] text-[14px] py-[12px]': depth >= 0,
191
- }), href: item.href, style: {
192
+ }), style: {
192
193
  paddingLeft: depth >= 0 ? "".concat(depth * 12 + 48, "px") : undefined,
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
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;
@@ -286,12 +293,15 @@ var DocGroup = React.forwardRef(function (_a, ref) {
286
293
  _b['text-indigo-500 dark:text-indigo-400'] = activePath === group.href,
287
294
  _b['text-gray-900 dark:text-gray-100'] = hasActiveItemRecursivelyMemo && activePath !== group.href,
288
295
  _b['text-gray-800 dark:text-gray-200'] = !hasActiveItemRecursivelyMemo && activePath !== group.href,
289
- _b)) },
296
+ _b)), style: {
297
+ paddingLeft: depth >= 1 ? "".concat((depth - 1) * 12 + 48, "px") : undefined,
298
+ } },
290
299
  collapsible ? (React.createElement(IconChevronDownSmall, { "stroke-color": "gray-400", size: depth ? '8' : '16', className: clsx(classes.expandedIcon, {
291
300
  'rotate-0': open,
292
301
  '-rotate-90': !open,
293
- 'ml-[28px]': depth,
294
- }) })) : null,
302
+ }), style: {
303
+ marginLeft: depth >= 1 ? "".concat((depth - 1) * 12 + 28, "px") : undefined,
304
+ } })) : null,
295
305
  group.label),
296
306
  React.createElement("div", { className: clsx('relative', collapsible
297
307
  ? {
@@ -303,6 +313,7 @@ var DocGroup = React.forwardRef(function (_a, ref) {
303
313
  open && collapsible && depth === 0 ? (React.createElement("div", { className: classes.openListBorderLeft })) : null,
304
314
  React.createElement(DocGroupElements, { ref: $groupElements, className: "overflow-hidden", items: group.items, depth: depth, context: context, markerIsMoving: markerIsMoving, onActivePosition: setActivePosition, updateMarkerPosition: onUpdateMarkerPosition, LinkComponent: LinkComponent }))));
305
315
  });
316
+ DocGroup.displayName = 'DocMenuDocGroup';
306
317
  var DocGroupElements = React.forwardRef(function (_a, ref) {
307
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"]);
308
319
  var $groups = React.useRef([]);
@@ -347,6 +358,7 @@ var DocGroupElements = React.forwardRef(function (_a, ref) {
347
358
  }, LinkComponent: LinkComponent }));
348
359
  })));
349
360
  });
361
+ DocGroupElements.displayName = 'DocMenuDocGroupElements';
350
362
 
351
363
  var DocMenu = function (_a) {
352
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"]);
@@ -394,4 +406,4 @@ var DocMenu = function (_a) {
394
406
  export { DocMenu as default };
395
407
  //# sourceMappingURL=index.es.mjs.map
396
408
 
397
- /* <wind-keep class="container relative absolute h-[36px] w-[4px] z-50 rounded-full bg-indigo-500 dark:bg-indigo-400 ml-[6.5px] mt-[4px] transition ease-in-out text-indigo-500 dark:text-indigo-400 text-gray-900 dark:text-gray-100 text-gray-800 dark:text-gray-200 rotate-0 -rotate-90 ml-[28px] transition-all grid grid-rows-[0fr] grid-rows-[1fr] overflow-hidden filter list-none p-0 block w-full pl-[24px] text-gray-700 dark:text-gray-500 py-[8px] text-[16px] leading-[24px] leading-[20px] text-[14px] py-[12px] left-[6.5px] top-[4px] bottom-[4px] z-10 hidden group-hover:block bg-gray-300 text-indigo-400 text-gray-500 bg-indigo-400 left-0 transform transition-transform text-gray-400 dark:text-gray-700 flex py-[10px] items-center text-start font-medium pl-[48px] left-[8px] top-0 w-[1px] h-full bg-gray-100 dark:bg-gray-900"> */
409
+ /* <wind-keep class="container relative absolute h-[36px] w-[4px] z-50 rounded-full bg-indigo-500 dark:bg-indigo-400 ml-[6.5px] mt-[4px] transition ease-in-out text-indigo-500 dark:text-indigo-400 text-gray-900 dark:text-gray-100 text-gray-800 dark:text-gray-200 rotate-0 -rotate-90 transition-all grid grid-rows-[0fr] grid-rows-[1fr] overflow-hidden filter list-none p-0 block w-full pl-[24px] text-gray-700 dark:text-gray-500 py-[8px] text-[16px] leading-[24px] leading-[20px] text-[14px] py-[12px] left-[6.5px] top-[4px] bottom-[4px] z-10 hidden group-hover:block bg-gray-300 text-indigo-400 text-gray-500 bg-indigo-400 left-0 transform transition-transform text-gray-400 dark:text-gray-700 flex py-[10px] items-center text-start font-medium pl-[48px] left-[8px] top-0 w-[1px] h-full bg-gray-100 dark:bg-gray-900"> */