@teambit/react.ui.component-highlighter 0.0.447 → 0.0.451
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/bubble/bubble.module.scss +1 -1
- package/component-highlighter/hover-highlighter/hover-highlighter.compositions.tsx +21 -0
- package/{dist/component-highlighter/component-highlighter.module.scss → component-highlighter/hover-highlighter/hover-highlighter.module.scss} +0 -9
- package/component-highlighter/hover-highlighter/hover-highlighter.tsx +100 -0
- package/component-highlighter/hover-highlighter/index.ts +1 -0
- package/component-highlighter/index.ts +2 -2
- package/component-highlighter.docs.md +110 -0
- package/dist/bubble/bubble.module.scss +1 -1
- package/dist/component-highlighter/hover-highlighter/hover-highlighter.compositions.d.ts +1 -0
- package/dist/component-highlighter/hover-highlighter/hover-highlighter.compositions.js +37 -0
- package/dist/component-highlighter/hover-highlighter/hover-highlighter.compositions.js.map +1 -0
- package/dist/component-highlighter/hover-highlighter/hover-highlighter.d.ts +13 -0
- package/dist/component-highlighter/{component-highlighter.js → hover-highlighter/hover-highlighter.js} +22 -18
- package/dist/component-highlighter/hover-highlighter/hover-highlighter.js.map +1 -0
- package/{component-highlighter/component-highlighter.module.scss → dist/component-highlighter/hover-highlighter/hover-highlighter.module.scss} +0 -9
- package/dist/component-highlighter/hover-highlighter/index.d.ts +1 -0
- package/dist/component-highlighter/hover-highlighter/index.js +6 -0
- package/dist/component-highlighter/hover-highlighter/index.js.map +1 -0
- package/dist/component-highlighter/index.d.ts +2 -2
- package/dist/component-highlighter/index.js +3 -3
- package/dist/component-highlighter/index.js.map +1 -1
- package/dist/component-highlighter.docs.md +110 -0
- package/dist/element-highlighter/element-highlighter.compositions.d.ts +6 -0
- package/dist/element-highlighter/element-highlighter.compositions.js +56 -0
- package/dist/element-highlighter/element-highlighter.compositions.js.map +1 -0
- package/dist/element-highlighter/element-highlighter.d.ts +27 -0
- package/dist/element-highlighter/element-highlighter.js +32 -0
- package/dist/element-highlighter/element-highlighter.js.map +1 -0
- package/dist/element-highlighter/element-highlighter.module.scss +8 -0
- package/dist/element-highlighter/index.d.ts +2 -0
- package/dist/element-highlighter/index.js +6 -0
- package/dist/element-highlighter/index.js.map +1 -0
- package/dist/ignore-highlighter.d.ts +10 -0
- package/dist/ignore-highlighter.js +18 -0
- package/dist/ignore-highlighter.js.map +1 -0
- package/dist/index.d.ts +5 -2
- package/dist/index.js +7 -2
- package/dist/index.js.map +1 -1
- package/dist/label/component-label/component-label.js +3 -3
- package/dist/label/component-label/component-label.js.map +1 -1
- package/dist/label/default-label/default-label.js +1 -2
- package/dist/label/default-label/default-label.js.map +1 -1
- package/dist/label/default-label/default-label.module.scss +4 -0
- package/dist/label/index.d.ts +1 -1
- package/dist/label/label.d.ts +1 -0
- package/dist/label/label.js +3 -8
- package/dist/label/label.js.map +1 -1
- package/element-highlighter/element-highlighter.compositions.tsx +46 -0
- package/element-highlighter/element-highlighter.module.scss +8 -0
- package/element-highlighter/element-highlighter.tsx +60 -0
- package/element-highlighter/index.ts +2 -0
- package/ignore-highlighter.tsx +14 -0
- package/index.ts +7 -2
- package/label/component-label/component-label.tsx +2 -3
- package/label/default-label/default-label.module.scss +4 -0
- package/label/default-label/default-label.tsx +1 -2
- package/label/index.ts +1 -1
- package/label/label.tsx +13 -9
- package/package-tar/teambit-react.ui.component-highlighter-0.0.451.tgz +0 -0
- package/package.json +12 -12
- package/component-highlighter/component-highlighter.docs.md +0 -23
- package/component-highlighter/component-highlighter.tsx +0 -109
- package/dist/component-highlighter/component-highlighter.d.ts +0 -5
- package/dist/component-highlighter/component-highlighter.docs.md +0 -23
- package/dist/component-highlighter/component-highlighter.js.map +0 -1
- package/dist/label/label.module.scss +0 -3
- package/label/label.module.scss +0 -3
- package/package-tar/teambit-react.ui.component-highlighter-0.0.447.tgz +0 -0
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Highlights Bit Components and links to their Bit scope
|
|
3
|
-
labels: ['component', 'highlight', 'react']
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
import {ComponentHighlighter} from './component-highlighter'
|
|
7
|
-
import {useEffect} from 'react';
|
|
8
|
-
|
|
9
|
-
Highlights React components in web pages and add links to their Bit scope and component page.
|
|
10
|
-
|
|
11
|
-
<img style={{border: '1px solid rgb(212, 212, 212', borderRadius: 6, maxWidth: 800}} src="https://storage.googleapis.com/docs-images/component_highlighter.png"></img>
|
|
12
|
-
|
|
13
|
-
## How to use?
|
|
14
|
-
|
|
15
|
-
Invoke the `ComponentHighlighter()` to start highlighting components.
|
|
16
|
-
|
|
17
|
-
```ts
|
|
18
|
-
import { ComponentHighlighter } from '@teambit/react.ui.component-highlighter';
|
|
19
|
-
|
|
20
|
-
// 'options' are optional.
|
|
21
|
-
ComponentHighlighter({ borderColor: 'red' });
|
|
22
|
-
ReactDOM.render(App);
|
|
23
|
-
```
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import React, { useState, useCallback, useEffect } from 'react';
|
|
2
|
-
import classnames from 'classnames';
|
|
3
|
-
import { domToReact, toRootElement } from '@teambit/react.modules.dom-to-react';
|
|
4
|
-
import { HoverSelector } from '@teambit/react.ui.hover-selector';
|
|
5
|
-
import { useDebouncedCallback } from 'use-debounce';
|
|
6
|
-
import { Frame } from '../frame';
|
|
7
|
-
import { Label, LabelContainer } from '../label';
|
|
8
|
-
import { hasComponentMeta } from './bit-react-component';
|
|
9
|
-
|
|
10
|
-
import styles from './component-highlighter.module.scss';
|
|
11
|
-
|
|
12
|
-
type HighlightTarget = {
|
|
13
|
-
id?: string;
|
|
14
|
-
element: HTMLElement;
|
|
15
|
-
/** e.g. 'https://bit.dev/teambit/base-ui/elements/dots-loader', */
|
|
16
|
-
link?: string;
|
|
17
|
-
/** e.g. 'https://bit.dev/teambit/base-ui' */
|
|
18
|
-
scopeLink?: string;
|
|
19
|
-
/** use full production url, or local workspace url */
|
|
20
|
-
local?: boolean;
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
export interface ComponentHighlightProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
24
|
-
disabled?: boolean;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export function ComponentHighlighter({ children, disabled, ...rest }: ComponentHighlightProps) {
|
|
28
|
-
const [target, setTarget] = useState<HighlightTarget | undefined>();
|
|
29
|
-
|
|
30
|
-
const _handleElement = useCallback((element: HTMLElement | null) => {
|
|
31
|
-
if (!element || element?.hasAttribute('data-nullify-component-highlight')) {
|
|
32
|
-
setTarget(undefined);
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
const result = bubbleToBitComponent(element, (elem) => !elem.hasAttribute('data-ignore-component-highlight'));
|
|
37
|
-
if (!result) return;
|
|
38
|
-
|
|
39
|
-
setTarget({
|
|
40
|
-
element: result.element,
|
|
41
|
-
id: result.meta.id,
|
|
42
|
-
scopeLink: undefined,
|
|
43
|
-
link: result.meta.homepage,
|
|
44
|
-
local: result.meta.exported === false,
|
|
45
|
-
});
|
|
46
|
-
}, []);
|
|
47
|
-
|
|
48
|
-
const handleElement = useDebouncedCallback(_handleElement, target ? 80 : 0);
|
|
49
|
-
|
|
50
|
-
useEffect(() => {
|
|
51
|
-
if (disabled) {
|
|
52
|
-
setTarget(undefined);
|
|
53
|
-
}
|
|
54
|
-
}, [disabled]);
|
|
55
|
-
|
|
56
|
-
return (
|
|
57
|
-
<HoverSelector
|
|
58
|
-
{...rest}
|
|
59
|
-
className={classnames(styles.highlighter, !disabled && styles.active)}
|
|
60
|
-
onElementChange={handleElement}
|
|
61
|
-
disabled={disabled}
|
|
62
|
-
data-nullify-component-highlight
|
|
63
|
-
>
|
|
64
|
-
{children}
|
|
65
|
-
{target && (
|
|
66
|
-
<>
|
|
67
|
-
<Frame targetRef={target.element} data-ignore-component-highlight />
|
|
68
|
-
{target.id && (
|
|
69
|
-
<LabelContainer
|
|
70
|
-
className={styles.label}
|
|
71
|
-
targetRef={target.element}
|
|
72
|
-
placement="top"
|
|
73
|
-
data-ignore-component-highlight
|
|
74
|
-
>
|
|
75
|
-
<Label
|
|
76
|
-
componentId={target.id}
|
|
77
|
-
link={target.link}
|
|
78
|
-
scopeLink={target.scopeLink}
|
|
79
|
-
local={target.local}
|
|
80
|
-
data-ignore-component-highlight
|
|
81
|
-
/>
|
|
82
|
-
</LabelContainer>
|
|
83
|
-
)}
|
|
84
|
-
</>
|
|
85
|
-
)}
|
|
86
|
-
</HoverSelector>
|
|
87
|
-
);
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
function bubbleToBitComponent(element: HTMLElement | null, filter?: (elem: Element) => boolean) {
|
|
91
|
-
for (let current = element; current; current = current.parentElement) {
|
|
92
|
-
current = toRootElement(current);
|
|
93
|
-
if (!current || filter?.(current) === false) return undefined;
|
|
94
|
-
|
|
95
|
-
const component = domToReact(current);
|
|
96
|
-
|
|
97
|
-
if (hasComponentMeta(component)) {
|
|
98
|
-
const meta = component.__bit_component;
|
|
99
|
-
|
|
100
|
-
return {
|
|
101
|
-
element: current,
|
|
102
|
-
component,
|
|
103
|
-
meta,
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
return undefined;
|
|
109
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Highlights Bit Components and links to their Bit scope
|
|
3
|
-
labels: ['component', 'highlight', 'react']
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
import {ComponentHighlighter} from './component-highlighter'
|
|
7
|
-
import {useEffect} from 'react';
|
|
8
|
-
|
|
9
|
-
Highlights React components in web pages and add links to their Bit scope and component page.
|
|
10
|
-
|
|
11
|
-
<img style={{border: '1px solid rgb(212, 212, 212', borderRadius: 6, maxWidth: 800}} src="https://storage.googleapis.com/docs-images/component_highlighter.png"></img>
|
|
12
|
-
|
|
13
|
-
## How to use?
|
|
14
|
-
|
|
15
|
-
Invoke the `ComponentHighlighter()` to start highlighting components.
|
|
16
|
-
|
|
17
|
-
```ts
|
|
18
|
-
import { ComponentHighlighter } from '@teambit/react.ui.component-highlighter';
|
|
19
|
-
|
|
20
|
-
// 'options' are optional.
|
|
21
|
-
ComponentHighlighter({ borderColor: 'red' });
|
|
22
|
-
ReactDOM.render(App);
|
|
23
|
-
```
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"component-highlighter.js","sourceRoot":"","sources":["../../component-highlighter/component-highlighter.tsx"],"names":[],"mappings":"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"}
|
package/label/label.module.scss
DELETED
|
Binary file
|