@teambit/react.ui.component-highlighter 0.0.490 → 0.0.494

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 (138) hide show
  1. package/{multi-highlighter/multi-highlighter.composition.tsx → children-highlighter/children-highlighter.composition.tsx} +27 -25
  2. package/{multi-highlighter/multi-highlighter.spec.tsx → children-highlighter/children-highlighter.spec.tsx} +3 -3
  3. package/children-highlighter/children-highlighter.tsx +9 -0
  4. package/children-highlighter/index.ts +5 -0
  5. package/{multi-highlighter/use-multi-highlighter.tsx → children-highlighter/use-children-highlighter.tsx} +15 -15
  6. package/component-highlighter.docs.md +3 -3
  7. package/dist/children-highlighter/children-highlighter.composition.d.ts +5 -0
  8. package/dist/{multi-highlighter/multi-highlighter.composition.js → children-highlighter/children-highlighter.composition.js} +29 -27
  9. package/dist/children-highlighter/children-highlighter.composition.js.map +1 -0
  10. package/dist/children-highlighter/children-highlighter.d.ts +3 -0
  11. package/dist/{multi-highlighter/multi-highlighter.js → children-highlighter/children-highlighter.js} +6 -6
  12. package/dist/children-highlighter/children-highlighter.js.map +1 -0
  13. package/dist/{multi-highlighter/multi-highlighter.spec.d.ts → children-highlighter/children-highlighter.spec.d.ts} +0 -0
  14. package/dist/{multi-highlighter/multi-highlighter.spec.js → children-highlighter/children-highlighter.spec.js} +4 -4
  15. package/dist/children-highlighter/children-highlighter.spec.js.map +1 -0
  16. package/dist/children-highlighter/index.d.ts +4 -0
  17. package/dist/children-highlighter/index.js +8 -0
  18. package/dist/children-highlighter/index.js.map +1 -0
  19. package/dist/{multi-highlighter/use-multi-highlighter.d.ts → children-highlighter/use-children-highlighter.d.ts} +2 -4
  20. package/dist/{multi-highlighter/use-multi-highlighter.js → children-highlighter/use-children-highlighter.js} +9 -12
  21. package/dist/children-highlighter/use-children-highlighter.js.map +1 -0
  22. package/dist/component-highlighter.docs.md +3 -3
  23. package/dist/element-highlighter/element-highlighter.compositions.d.ts +3 -1
  24. package/dist/element-highlighter/element-highlighter.compositions.js +15 -7
  25. package/dist/element-highlighter/element-highlighter.compositions.js.map +1 -1
  26. package/dist/element-highlighter/element-highlighter.d.ts +8 -9
  27. package/dist/element-highlighter/element-highlighter.js +3 -3
  28. package/dist/element-highlighter/element-highlighter.js.map +1 -1
  29. package/dist/element-highlighter/index.d.ts +1 -1
  30. package/dist/hover-highlighter/hover-highlighter.compositions.d.ts +0 -1
  31. package/dist/hover-highlighter/hover-highlighter.d.ts +1 -2
  32. package/dist/hover-highlighter/hover-highlighter.js +2 -2
  33. package/dist/hover-highlighter/hover-highlighter.js.map +1 -1
  34. package/dist/hover-highlighter/use-hover-highlighter.d.ts +3 -3
  35. package/dist/hover-highlighter/use-hover-highlighter.js +9 -14
  36. package/dist/hover-highlighter/use-hover-highlighter.js.map +1 -1
  37. package/dist/{hybrid-highligher → hybrid-highlighter}/hybrid-highlighter.d.ts +4 -2
  38. package/dist/{hybrid-highligher → hybrid-highlighter}/hybrid-highlighter.js +6 -6
  39. package/dist/hybrid-highlighter/hybrid-highlighter.js.map +1 -0
  40. package/dist/{hybrid-highligher → hybrid-highlighter}/index.d.ts +0 -0
  41. package/dist/{hybrid-highligher → hybrid-highlighter}/index.js +0 -0
  42. package/dist/hybrid-highlighter/index.js.map +1 -0
  43. package/dist/index.d.ts +4 -4
  44. package/dist/index.js +5 -5
  45. package/dist/index.js.map +1 -1
  46. package/dist/label/component-strip.d.ts +9 -0
  47. package/dist/label/component-strip.js +49 -0
  48. package/dist/label/component-strip.js.map +1 -0
  49. package/dist/label/component-strip.module.scss +64 -0
  50. package/dist/label/index.d.ts +4 -2
  51. package/dist/label/index.js +3 -2
  52. package/dist/label/index.js.map +1 -1
  53. package/dist/label/label-container.d.ts +13 -0
  54. package/dist/label/label-container.js +53 -0
  55. package/dist/label/label-container.js.map +1 -0
  56. package/dist/label/label.d.ts +7 -19
  57. package/dist/label/label.js +20 -27
  58. package/dist/label/label.js.map +1 -1
  59. package/dist/label/label.module.scss +24 -0
  60. package/dist/label/links.d.ts +2 -0
  61. package/dist/label/links.js +17 -0
  62. package/dist/label/links.js.map +1 -0
  63. package/dist/label/other-components.d.ts +10 -0
  64. package/dist/label/other-components.js +35 -0
  65. package/dist/label/other-components.js.map +1 -0
  66. package/dist/rule-matcher.d.ts +3 -3
  67. package/dist/rule-matcher.js +1 -0
  68. package/dist/rule-matcher.js.map +1 -1
  69. package/dist/use-animation-frame.d.ts +1 -1
  70. package/dist/use-animation-frame.js.map +1 -1
  71. package/element-highlighter/element-highlighter.compositions.tsx +22 -8
  72. package/element-highlighter/element-highlighter.tsx +11 -16
  73. package/element-highlighter/index.ts +7 -1
  74. package/hover-highlighter/hover-highlighter.tsx +1 -1
  75. package/hover-highlighter/use-hover-highlighter.tsx +18 -18
  76. package/{hybrid-highligher → hybrid-highlighter}/hybrid-highlighter.tsx +15 -5
  77. package/{hybrid-highligher → hybrid-highlighter}/index.ts +0 -0
  78. package/index.ts +4 -4
  79. package/label/component-strip.module.scss +64 -0
  80. package/label/component-strip.tsx +49 -0
  81. package/label/index.ts +5 -2
  82. package/label/label-container.tsx +46 -0
  83. package/label/label.module.scss +24 -0
  84. package/label/label.tsx +35 -66
  85. package/label/links.tsx +9 -0
  86. package/label/other-components.tsx +53 -0
  87. package/package-tar/teambit-react.ui.component-highlighter-0.0.494.tgz +0 -0
  88. package/package.json +15 -15
  89. package/rule-matcher.tsx +3 -2
  90. package/use-animation-frame.tsx +1 -1
  91. package/bubble/bubble.module.scss +0 -24
  92. package/bubble/index.ts +0 -3
  93. package/dist/bubble/bubble.module.scss +0 -24
  94. package/dist/bubble/index.d.ts +0 -1
  95. package/dist/bubble/index.js +0 -9
  96. package/dist/bubble/index.js.map +0 -1
  97. package/dist/hybrid-highligher/hybrid-highlighter.js.map +0 -1
  98. package/dist/hybrid-highligher/index.js.map +0 -1
  99. package/dist/label/component-label/component-bubble.d.ts +0 -8
  100. package/dist/label/component-label/component-bubble.js +0 -35
  101. package/dist/label/component-label/component-bubble.js.map +0 -1
  102. package/dist/label/component-label/component-label.d.ts +0 -10
  103. package/dist/label/component-label/component-label.js +0 -32
  104. package/dist/label/component-label/component-label.js.map +0 -1
  105. package/dist/label/component-label/duo-component-bubble.module.scss +0 -24
  106. package/dist/label/component-label/index.d.ts +0 -2
  107. package/dist/label/component-label/index.js +0 -6
  108. package/dist/label/component-label/index.js.map +0 -1
  109. package/dist/label/component-label/scope-bubble.d.ts +0 -7
  110. package/dist/label/component-label/scope-bubble.js +0 -28
  111. package/dist/label/component-label/scope-bubble.js.map +0 -1
  112. package/dist/label/default-label/default-label.d.ts +0 -6
  113. package/dist/label/default-label/default-label.js +0 -30
  114. package/dist/label/default-label/default-label.js.map +0 -1
  115. package/dist/label/default-label/default-label.module.scss +0 -12
  116. package/dist/label/default-label/index.d.ts +0 -1
  117. package/dist/label/default-label/index.js +0 -6
  118. package/dist/label/default-label/index.js.map +0 -1
  119. package/dist/multi-highlighter/index.d.ts +0 -2
  120. package/dist/multi-highlighter/index.js +0 -6
  121. package/dist/multi-highlighter/index.js.map +0 -1
  122. package/dist/multi-highlighter/multi-highlighter.composition.d.ts +0 -6
  123. package/dist/multi-highlighter/multi-highlighter.composition.js.map +0 -1
  124. package/dist/multi-highlighter/multi-highlighter.d.ts +0 -4
  125. package/dist/multi-highlighter/multi-highlighter.js.map +0 -1
  126. package/dist/multi-highlighter/multi-highlighter.spec.js.map +0 -1
  127. package/dist/multi-highlighter/use-multi-highlighter.js.map +0 -1
  128. package/label/component-label/component-bubble.tsx +0 -30
  129. package/label/component-label/component-label.tsx +0 -31
  130. package/label/component-label/duo-component-bubble.module.scss +0 -24
  131. package/label/component-label/index.ts +0 -2
  132. package/label/component-label/scope-bubble.tsx +0 -20
  133. package/label/default-label/default-label.module.scss +0 -12
  134. package/label/default-label/default-label.tsx +0 -22
  135. package/label/default-label/index.ts +0 -1
  136. package/multi-highlighter/index.ts +0 -2
  137. package/multi-highlighter/multi-highlighter.tsx +0 -9
  138. package/package-tar/teambit-react.ui.component-highlighter-0.0.490.tgz +0 -0
@@ -1,5 +1,7 @@
1
1
  import React from 'react';
2
- import { Placement } from '../label';
2
+ import { ComponentMetaHolder } from '@teambit/react.ui.highlighter.component-metadata.bit-component-meta';
3
+ import { Placement, LabelSize } from '../label';
4
+ export declare type HighlighterSize = LabelSize;
3
5
  export interface ElementHighlighterProps extends React.HTMLAttributes<HTMLDivElement> {
4
6
  /** target element to highlight */
5
7
  target: HighlightTarget;
@@ -9,21 +11,18 @@ export interface ElementHighlighterProps extends React.HTMLAttributes<HTMLDivEle
9
11
  classes?: HighlightClasses;
10
12
  /** continually update highlighter to match moving elements */
11
13
  watchMotion?: boolean;
14
+ size?: HighlighterSize;
12
15
  }
13
16
  export { Placement };
14
17
  export declare type HighlightTarget = {
15
- id?: string;
18
+ /** element to show the highlight at */
16
19
  element: HTMLElement;
17
- /** e.g. 'https://bit.dev/teambit/base-ui/elements/dots-loader', */
18
- link?: string;
19
- /** e.g. 'https://bit.dev/teambit/base-ui' */
20
- scopeLink?: string;
21
- /** use full production url, or local workspace url */
22
- local?: boolean;
20
+ /** components with metadata to show in the label */
21
+ components?: ComponentMetaHolder[];
23
22
  };
24
23
  export declare type HighlightClasses = {
25
24
  container?: string;
26
25
  frame?: string;
27
26
  label?: string;
28
27
  };
29
- export declare function ElementHighlighter({ target, placement, watchMotion, className, classes, ...props }: ElementHighlighterProps): JSX.Element;
28
+ export declare function ElementHighlighter({ target, placement, watchMotion, className, classes, size, ...props }: ElementHighlighterProps): JSX.Element;
@@ -22,11 +22,11 @@ const label_1 = require("../label");
22
22
  const ignore_highlighter_1 = require("../ignore-highlighter");
23
23
  const element_highlighter_module_scss_1 = __importDefault(require("./element-highlighter.module.scss"));
24
24
  function ElementHighlighter(_a) {
25
- var { target, placement = 'top', watchMotion = true, className, classes } = _a, props = __rest(_a, ["target", "placement", "watchMotion", "className", "classes"]);
25
+ var { target, placement = 'top', watchMotion = true, className, classes, size } = _a, props = __rest(_a, ["target", "placement", "watchMotion", "className", "classes", "size"]);
26
26
  return (react_1.default.createElement("div", Object.assign({}, props, ignore_highlighter_1.excludeHighlighterAtt, { className: (0, classnames_1.default)(classes === null || classes === void 0 ? void 0 : classes.container, element_highlighter_module_scss_1.default.container, className) }),
27
27
  react_1.default.createElement(frame_1.Frame, { targetRef: target.element, className: (0, classnames_1.default)(element_highlighter_module_scss_1.default.frame, classes === null || classes === void 0 ? void 0 : classes.frame), watchMotion: watchMotion }),
28
- target.id && (react_1.default.createElement(label_1.LabelContainer, { className: element_highlighter_module_scss_1.default.label, targetRef: target.element, placement: placement, watchMotion: watchMotion },
29
- react_1.default.createElement(label_1.Label, { componentId: target.id, link: target.link, scopeLink: target.scopeLink, local: target.local, className: classes === null || classes === void 0 ? void 0 : classes.label })))));
28
+ target.components && (react_1.default.createElement(label_1.LabelContainer, { className: element_highlighter_module_scss_1.default.label, targetRef: target.element, placement: placement, watchMotion: watchMotion },
29
+ react_1.default.createElement(label_1.Label, { components: target.components, className: classes === null || classes === void 0 ? void 0 : classes.label, size: size })))));
30
30
  }
31
31
  exports.ElementHighlighter = ElementHighlighter;
32
32
  //# sourceMappingURL=element-highlighter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"element-highlighter.js","sourceRoot":"","sources":["../../element-highlighter/element-highlighter.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,4DAAoC;AACpC,oCAAiC;AACjC,oCAA4D;AAC5D,8DAA8D;AAC9D,wGAAuD;AAgCvD,SAAgB,kBAAkB,CAAC,EAOT;QAPS,EACjC,MAAM,EACN,SAAS,GAAG,KAAK,EACjB,WAAW,GAAG,IAAI,EAClB,SAAS,EACT,OAAO,OAEiB,EADrB,KAAK,cANyB,8DAOlC,CADS;IAER,OAAO,CACL,uDAAS,KAAK,EAAM,0CAAqB,IAAE,SAAS,EAAE,IAAA,oBAAU,EAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,EAAE,yCAAM,CAAC,SAAS,EAAE,SAAS,CAAC;QAC/G,8BAAC,aAAK,IACJ,SAAS,EAAE,MAAM,CAAC,OAAO,EACzB,SAAS,EAAE,IAAA,oBAAU,EAAC,yCAAM,CAAC,KAAK,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC,EACnD,WAAW,EAAE,WAAW,GACxB;QAED,MAAM,CAAC,EAAE,IAAI,CACZ,8BAAC,sBAAc,IACb,SAAS,EAAE,yCAAM,CAAC,KAAK,EACvB,SAAS,EAAE,MAAM,CAAC,OAAO,EACzB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW;YAExB,8BAAC,aAAK,IACJ,WAAW,EAAE,MAAM,CAAC,EAAE,EACtB,IAAI,EAAE,MAAM,CAAC,IAAI,EACjB,SAAS,EAAE,MAAM,CAAC,SAAS,EAC3B,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,SAAS,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,GACzB,CACa,CAClB,CACG,CACP,CAAC;AACJ,CAAC;AAlCD,gDAkCC"}
1
+ {"version":3,"file":"element-highlighter.js","sourceRoot":"","sources":["../../element-highlighter/element-highlighter.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,4DAAoC;AAEpC,oCAAiC;AACjC,oCAAuE;AACvE,8DAA8D;AAC9D,wGAAuD;AA+BvD,SAAgB,kBAAkB,CAAC,EAQT;QARS,EACjC,MAAM,EACN,SAAS,GAAG,KAAK,EACjB,WAAW,GAAG,IAAI,EAClB,SAAS,EACT,OAAO,EACP,IAAI,OAEoB,EADrB,KAAK,cAPyB,sEAQlC,CADS;IAER,OAAO,CACL,uDAAS,KAAK,EAAM,0CAAqB,IAAE,SAAS,EAAE,IAAA,oBAAU,EAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,EAAE,yCAAM,CAAC,SAAS,EAAE,SAAS,CAAC;QAC/G,8BAAC,aAAK,IACJ,SAAS,EAAE,MAAM,CAAC,OAAO,EACzB,SAAS,EAAE,IAAA,oBAAU,EAAC,yCAAM,CAAC,KAAK,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAC,EACnD,WAAW,EAAE,WAAW,GACxB;QAED,MAAM,CAAC,UAAU,IAAI,CACpB,8BAAC,sBAAc,IACb,SAAS,EAAE,yCAAM,CAAC,KAAK,EACvB,SAAS,EAAE,MAAM,CAAC,OAAO,EACzB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW;YAExB,8BAAC,aAAK,IAAC,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,EAAE,IAAI,EAAE,IAAI,GAAI,CAChE,CAClB,CACG,CACP,CAAC;AACJ,CAAC;AA7BD,gDA6BC"}
@@ -1,2 +1,2 @@
1
1
  export { ElementHighlighter } from './element-highlighter';
2
- export type { ElementHighlighterProps, HighlightTarget, Placement, HighlightClasses } from './element-highlighter';
2
+ export type { ElementHighlighterProps, HighlightTarget, Placement, HighlightClasses, HighlighterSize, } from './element-highlighter';
@@ -1,2 +1 @@
1
- /// <reference types="react" />
2
1
  export declare const ShowWhenHovering: () => JSX.Element;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
- import { HybridHighlighterProps } from '../hybrid-highligher';
1
+ import { HybridHighlighterProps } from '../hybrid-highlighter';
3
2
  export declare type HoverHighlighterProps = Omit<HybridHighlighterProps, 'mode'>;
4
3
  export declare function HoverHighlighter({ ...props }: HoverHighlighterProps): JSX.Element;
@@ -16,10 +16,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.HoverHighlighter = void 0;
18
18
  const react_1 = __importDefault(require("react"));
19
- const hybrid_highligher_1 = require("../hybrid-highligher");
19
+ const hybrid_highlighter_1 = require("../hybrid-highlighter");
20
20
  function HoverHighlighter(_a) {
21
21
  var props = __rest(_a, []);
22
- return react_1.default.createElement(hybrid_highligher_1.HybridHighlighter, Object.assign({}, props, { mode: 'hover' }));
22
+ return react_1.default.createElement(hybrid_highlighter_1.HybridHighlighter, Object.assign({}, props, { mode: 'hover' }));
23
23
  }
24
24
  exports.HoverHighlighter = HoverHighlighter;
25
25
  //# sourceMappingURL=hover-highlighter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hover-highlighter.js","sourceRoot":"","sources":["../../hover-highlighter/hover-highlighter.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,4DAAiF;AAIjF,SAAgB,gBAAgB,CAAC,EAAmC;QAA9B,KAAK,cAAV,EAAY,CAAF;IACzC,OAAO,8BAAC,qCAAiB,oBAAK,KAAK,IAAE,IAAI,EAAE,OAAO,IAAI,CAAC;AACzD,CAAC;AAFD,4CAEC"}
1
+ {"version":3,"file":"hover-highlighter.js","sourceRoot":"","sources":["../../hover-highlighter/hover-highlighter.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,8DAAkF;AAIlF,SAAgB,gBAAgB,CAAC,EAAmC;QAA9B,KAAK,cAAV,EAAY,CAAF;IACzC,OAAO,8BAAC,sCAAiB,oBAAK,KAAK,IAAE,IAAI,EAAE,OAAO,IAAI,CAAC;AACzD,CAAC;AAFD,4CAEC"}
@@ -12,9 +12,9 @@ export declare type useHoverHighlighterOptions = {
12
12
  };
13
13
  /** fires onChange when targeting a new component */
14
14
  export declare function useHoverHighlighter<T extends HTMLElement = HTMLElement>(onChange: (target?: HighlightTarget) => void, props: React.HTMLAttributes<T>, { debounceDuration, scopeClass, disabled, rule, componentRule }: useHoverHighlighterOptions): {
15
- onMouseOver?: undefined;
16
- onMouseLeave?: undefined;
17
- } | {
18
15
  onMouseOver: (event: React.MouseEvent<T, MouseEvent>) => void;
19
16
  onMouseLeave: (event: React.MouseEvent<T, MouseEvent>) => void;
17
+ } | {
18
+ onMouseOver?: undefined;
19
+ onMouseLeave?: undefined;
20
20
  };
@@ -31,10 +31,7 @@ function useHoverHandler({ onChange, scopeClass = '', debounceDuration, disabled
31
31
  return;
32
32
  onChange({
33
33
  element: result.element,
34
- id: result.meta.id,
35
- scopeLink: undefined,
36
- link: result.meta.homepage,
37
- local: result.meta.exported === false,
34
+ components: result.components,
38
35
  });
39
36
  };
40
37
  const handleElement = (0, use_debounce_1.useDebouncedCallback)(_handleElement, debounceDuration);
@@ -52,16 +49,14 @@ function bubbleToBitComponent(element, elementRule, componentRule) {
52
49
  if (!current)
53
50
  return undefined;
54
51
  if ((0, rule_matcher_1.ruleMatcher)(current, elementRule)) {
55
- const component = (0, react_modules_dom_to_react_1.domToReact)(current);
56
- if ((0, react_ui_highlighter_component_metadata_bit_component_meta_1.hasComponentMeta)(component)) {
57
- const meta = component.__bit_component;
58
- if ((0, rule_matcher_1.componentRuleMatcher)({ meta }, componentRule))
59
- return {
60
- element: current,
61
- component,
62
- meta,
63
- };
64
- }
52
+ const components = (0, react_modules_dom_to_react_1.domToReacts)(current);
53
+ const relevantComponents = components.filter((x) => (0, react_ui_highlighter_component_metadata_bit_component_meta_1.hasComponentMeta)(x) && (0, rule_matcher_1.componentRuleMatcher)({ meta: x[react_ui_highlighter_component_metadata_bit_component_meta_1.componentMetaField] }, componentRule));
54
+ if (relevantComponents.length < 1)
55
+ return undefined;
56
+ return {
57
+ element: current,
58
+ components: relevantComponents,
59
+ };
65
60
  }
66
61
  }
67
62
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"use-hover-highlighter.js","sourceRoot":"","sources":["../../hover-highlighter/use-hover-highlighter.tsx"],"names":[],"mappings":";;;AAAA,iCAAyC;AACzC,+CAAoD;AACpD,oFAAgF;AAChF,8EAAqE;AACrE,oJAAuG;AAEvG,8DAAmE;AAEnE,kDAAmG;AAYnG,oDAAoD;AACpD,SAAgB,mBAAmB,CACjC,QAA4C,EAC5C,QAAiC,EAAE,EACnC,EAAE,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAA8B;IAE3F,MAAM,EAAE,aAAa,EAAE,GAAG,eAAe,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;IAErH,MAAM,QAAQ,GAAG,IAAA,2CAAiB,EAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAEhF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAVD,kDAUC;AAWD,SAAS,eAAe,CAAC,EACvB,QAAQ,EACR,UAAU,GAAG,EAAE,EACf,gBAAgB,EAChB,QAAQ,EACR,IAAI,EACJ,aAAa,GACY;IACzB,yDAAyD;IACzD,MAAM,cAAc,GAAG,CAAC,OAA2B,EAAE,EAAE;QACrD,kCAAkC;QAClC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC,kCAAkC,CAAC,EAAE;YACxE,QAAQ,CAAC,SAAS,CAAC,CAAC;YACpB,OAAO;SACR;QAED,0DAA0D;QAC1D,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,UAAU,IAAI,+CAA0B,EAAE,CAAC;YAAE,OAAO;QAE5E,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,QAAQ,CAAC;YACP,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE;YAClB,SAAS,EAAE,SAAS;YACpB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ;YAC1B,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK;SACtC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,IAAA,mCAAoB,EAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;IAE7E,uBAAuB;IACvB,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,QAAQ;YAAE,aAAa,CAAC,MAAM,EAAE,CAAC;IACvC,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;IAE9B,OAAO,EAAE,aAAa,EAAE,CAAC;AAC3B,CAAC;AAED,8DAA8D;AAC9D,SAAS,oBAAoB,CAC3B,OAA2B,EAC3B,WAAuB,EACvB,aAAkC;IAElC,KAAK,IAAI,OAAO,GAAG,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,EAAE;QACpE,OAAO,GAAG,IAAA,0CAAa,EAAC,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAC/B,IAAI,IAAA,0BAAW,EAAC,OAAO,EAAE,WAAW,CAAC,EAAE;YACrC,MAAM,SAAS,GAAG,IAAA,uCAAU,EAAC,OAAO,CAAC,CAAC;YAEtC,IAAI,IAAA,6EAAgB,EAAC,SAAS,CAAC,EAAE;gBAC/B,MAAM,IAAI,GAAG,SAAS,CAAC,eAAe,CAAC;gBAEvC,IAAI,IAAA,mCAAoB,EAAC,EAAE,IAAI,EAAE,EAAE,aAAa,CAAC;oBAC/C,OAAO;wBACL,OAAO,EAAE,OAAO;wBAChB,SAAS;wBACT,IAAI;qBACL,CAAC;aACL;SACF;KACF;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"use-hover-highlighter.js","sourceRoot":"","sources":["../../hover-highlighter/use-hover-highlighter.tsx"],"names":[],"mappings":";;;AAAA,iCAAyC;AACzC,+CAAoD;AACpD,oFAAiF;AACjF,8EAAqE;AACrE,oJAI6E;AAE7E,8DAAmE;AAEnE,kDAAmG;AAYnG,oDAAoD;AACpD,SAAgB,mBAAmB,CACjC,QAA4C,EAC5C,QAAiC,EAAE,EACnC,EAAE,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAA8B;IAE3F,MAAM,EAAE,aAAa,EAAE,GAAG,eAAe,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;IAErH,MAAM,QAAQ,GAAG,IAAA,2CAAiB,EAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAEhF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAVD,kDAUC;AAWD,SAAS,eAAe,CAAC,EACvB,QAAQ,EACR,UAAU,GAAG,EAAE,EACf,gBAAgB,EAChB,QAAQ,EACR,IAAI,EACJ,aAAa,GACY;IACzB,yDAAyD;IACzD,MAAM,cAAc,GAAG,CAAC,OAA2B,EAAE,EAAE;QACrD,kCAAkC;QAClC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC,kCAAkC,CAAC,EAAE;YACxE,QAAQ,CAAC,SAAS,CAAC,CAAC;YACpB,OAAO;SACR;QAED,0DAA0D;QAC1D,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,UAAU,IAAI,+CAA0B,EAAE,CAAC;YAAE,OAAO;QAE5E,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;QAClE,IAAI,CAAC,MAAM;YAAE,OAAO;QAEpB,QAAQ,CAAC;YACP,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,UAAU,EAAE,MAAM,CAAC,UAAU;SAC9B,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,IAAA,mCAAoB,EAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;IAE7E,uBAAuB;IACvB,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,QAAQ;YAAE,aAAa,CAAC,MAAM,EAAE,CAAC;IACvC,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC;IAE9B,OAAO,EAAE,aAAa,EAAE,CAAC;AAC3B,CAAC;AAED,8DAA8D;AAC9D,SAAS,oBAAoB,CAC3B,OAA2B,EAC3B,WAAuB,EACvB,aAAkC;IAElC,KAAK,IAAI,OAAO,GAAG,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,EAAE;QACpE,OAAO,GAAG,IAAA,0CAAa,EAAC,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAC/B,IAAI,IAAA,0BAAW,EAAC,OAAO,EAAE,WAAW,CAAC,EAAE;YACrC,MAAM,UAAU,GAAG,IAAA,wCAAW,EAAC,OAAO,CAAC,CAAC;YAExC,MAAM,kBAAkB,GAAG,UAAU,CAAC,MAAM,CAC1C,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,6EAAgB,EAAC,CAAC,CAAC,IAAI,IAAA,mCAAoB,EAAC,EAAE,IAAI,EAAE,CAAC,CAAC,+EAAkB,CAAC,EAAE,EAAE,aAAa,CAAC,CACrE,CAAC;YAEhC,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,SAAS,CAAC;YACpD,OAAO;gBACL,OAAO,EAAE,OAAO;gBAChB,UAAU,EAAE,kBAAkB;aAC/B,CAAC;SACH;KACF;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import React, { CSSProperties } from 'react';
2
- import { Placement, HighlightClasses } from '../element-highlighter';
2
+ import { Placement, HighlightClasses, HighlighterSize } from '../element-highlighter';
3
3
  import type { MatchRule, ComponentMatchRule } from '../rule-matcher';
4
4
  export interface HybridHighlighterProps extends React.HTMLAttributes<HTMLDivElement> {
5
5
  /** stop all highlighting and drop listeners */
@@ -20,6 +20,7 @@ export interface HybridHighlighterProps extends React.HTMLAttributes<HTMLDivElem
20
20
  watchMotion?: boolean;
21
21
  /** filter highlighter targets by this query selector. (May be a more complex object in the future) */
22
22
  rule?: MatchRule;
23
+ /** filter components to match this rule. Can be id, array of ids, or a function */
23
24
  componentRule?: ComponentMatchRule;
24
25
  /** set the behavior of the highlighter.
25
26
  * `disabled` - stops highlighting.
@@ -30,6 +31,7 @@ export interface HybridHighlighterProps extends React.HTMLAttributes<HTMLDivElem
30
31
  bgColor?: string;
31
32
  bgColorHover?: string;
32
33
  bgColorActive?: string;
34
+ size?: HighlighterSize;
33
35
  }
34
36
  /** automatically highlight components on hover */
35
- export declare function HybridHighlighter({ disabled, mode, debounceSelection, watchMotion, placement, rule, componentRule, classes, highlightStyle, className, style, bgColor, bgColorHover, bgColorActive, children, ...rest }: HybridHighlighterProps): JSX.Element;
37
+ export declare function HybridHighlighter({ disabled, mode, debounceSelection, watchMotion, placement, rule, componentRule, classes, highlightStyle, className, style, bgColor, bgColorHover, bgColorActive, size, children, ...rest }: HybridHighlighterProps): JSX.Element;
@@ -39,10 +39,10 @@ const classnames_1 = __importDefault(require("classnames"));
39
39
  const uuid_1 = require("uuid");
40
40
  const hover_highlighter_1 = require("../hover-highlighter");
41
41
  const element_highlighter_1 = require("../element-highlighter");
42
- const use_multi_highlighter_1 = require("../multi-highlighter/use-multi-highlighter");
42
+ const children_highlighter_1 = require("../children-highlighter");
43
43
  /** automatically highlight components on hover */
44
44
  function HybridHighlighter(_a) {
45
- var { disabled, mode = 'hover', debounceSelection = 80, watchMotion = true, placement, rule, componentRule, classes, highlightStyle, className, style, bgColor, bgColorHover, bgColorActive, children } = _a, rest = __rest(_a, ["disabled", "mode", "debounceSelection", "watchMotion", "placement", "rule", "componentRule", "classes", "highlightStyle", "className", "style", "bgColor", "bgColorHover", "bgColorActive", "children"]);
45
+ var { disabled, mode = 'hover', debounceSelection = 80, watchMotion = true, placement, rule, componentRule, classes, highlightStyle, className, style, bgColor, bgColorHover, bgColorActive, size, children } = _a, rest = __rest(_a, ["disabled", "mode", "debounceSelection", "watchMotion", "placement", "rule", "componentRule", "classes", "highlightStyle", "className", "style", "bgColor", "bgColorHover", "bgColorActive", "size", "children"]);
46
46
  const ref = (0, react_1.createRef)();
47
47
  const [targets, setTarget] = (0, react_1.useState)({});
48
48
  const scopeClass = (0, react_1.useRef)(`hl-scope-${(0, uuid_1.v4)()}`).current;
@@ -57,20 +57,20 @@ function HybridHighlighter(_a) {
57
57
  scopeClass,
58
58
  disabled: disabled || mode !== 'hover',
59
59
  rule,
60
- componentRule
60
+ componentRule,
61
61
  });
62
- (0, use_multi_highlighter_1.useMultiHighlighter)({
62
+ (0, children_highlighter_1.useChildrenHighlighter)({
63
63
  onChange: setTarget,
64
64
  scopeRef: ref,
65
65
  scopeClass,
66
66
  disabled: disabled || mode !== 'allChildren',
67
67
  rule,
68
- componentRule
68
+ componentRule,
69
69
  });
70
70
  const _styles = (0, react_1.useMemo)(() => (Object.assign({ '--bit-highlighter-color': bgColor, '--bit-highlighter-color-hover': bgColorHover, '--bit-highlighter-color-active': bgColorActive }, style)), [bgColor, bgColorHover, bgColorActive, style]);
71
71
  return (react_1.default.createElement("div", Object.assign({ ref: ref }, rest, handlers, { style: _styles, className: (0, classnames_1.default)(className, scopeClass), "data-nullify-component-highlight": true }),
72
72
  children,
73
- Object.entries(targets).map(([key, target]) => (react_1.default.createElement(element_highlighter_1.ElementHighlighter, { key: key, target: target, classes: classes, style: highlightStyle, placement: placement, watchMotion: watchMotion })))));
73
+ Object.entries(targets).map(([key, target]) => (react_1.default.createElement(element_highlighter_1.ElementHighlighter, { key: key, target: target, classes: classes, style: highlightStyle, placement: placement, watchMotion: watchMotion, size: size })))));
74
74
  }
75
75
  exports.HybridHighlighter = HybridHighlighter;
76
76
  //# sourceMappingURL=hybrid-highlighter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hybrid-highlighter.js","sourceRoot":"","sources":["../../hybrid-highlighter/hybrid-highlighter.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA8F;AAC9F,4DAAoC;AACpC,+BAA0B;AAE1B,4DAA2D;AAC3D,gEAMgC;AAChC,kEAAiE;AAsCjE,kDAAkD;AAClD,SAAgB,iBAAiB,CAAC,EAmBT;QAnBS,EAChC,QAAQ,EACR,IAAI,GAAG,OAAO,EACd,iBAAiB,GAAG,EAAE,EACtB,WAAW,GAAG,IAAI,EAClB,SAAS,EACT,IAAI,EACJ,aAAa,EAEb,OAAO,EACP,cAAc,EACd,SAAS,EACT,KAAK,EACL,OAAO,EACP,YAAY,EACZ,aAAa,EACb,IAAI,EACJ,QAAQ,OAEe,EADpB,IAAI,cAlByB,iNAmBjC,CADQ;IAEP,MAAM,GAAG,GAAG,IAAA,iBAAS,GAAkB,CAAC;IACxC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAkC,EAAE,CAAC,CAAC;IAC3E,MAAM,UAAU,GAAG,IAAA,cAAM,EAAC,YAAY,IAAA,SAAE,GAAE,EAAE,CAAC,CAAC,OAAO,CAAC;IACtD,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAEtD,8BAA8B;IAC9B,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,QAAQ;YAAE,SAAS,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,QAAQ,GAAG,IAAA,uCAAmB,EAClC,CAAC,UAAU,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAC3E,IAAI,EACJ;QACE,gBAAgB,EAAE,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACpD,UAAU;QACV,QAAQ,EAAE,QAAQ,IAAI,IAAI,KAAK,OAAO;QACtC,IAAI;QACJ,aAAa;KACd,CACF,CAAC;IAEF,IAAA,6CAAsB,EAAC;QACrB,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,GAAG;QACb,UAAU;QACV,QAAQ,EAAE,QAAQ,IAAI,IAAI,KAAK,aAAa;QAC5C,IAAI;QACJ,aAAa;KACd,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,IAAA,eAAO,EACrB,GAAG,EAAE,CAAC,iBACJ,yBAAyB,EAAE,OAAO,EAClC,+BAA+B,EAAE,YAAY,EAC7C,gCAAgC,EAAE,aAAa,IAC5C,KAAK,EACR,EACF,CAAC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,CAAC,CAC9C,CAAC;IAEF,OAAO,CACL,qDACE,GAAG,EAAE,GAAG,IACJ,IAAI,EACJ,QAAQ,IACZ,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,IAAA,oBAAU,EAAC,SAAS,EAAE,UAAU,CAAC;QAG3C,QAAQ;QAKR,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAC9C,8BAAC,wCAAkB,IACjB,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,IAAI,GACV,CACH,CAAC,CACE,CACP,CAAC;AACJ,CAAC;AAxFD,8CAwFC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../hybrid-highlighter/index.ts"],"names":[],"mappings":";;;AAAA,2DAAyD;AAAhD,uHAAA,iBAAiB,OAAA"}
package/dist/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- export { HybridHighlighter as ComponentHighlighter } from './hybrid-highligher';
2
- export type { HybridHighlighterProps as ComponentHighlightProps } from './hybrid-highligher';
1
+ export { HybridHighlighter as ComponentHighlighter } from './hybrid-highlighter';
2
+ export type { HybridHighlighterProps as ComponentHighlightProps } from './hybrid-highlighter';
3
3
  export { HoverHighlighter } from './hover-highlighter';
4
4
  export type { HoverHighlighterProps } from './hover-highlighter';
5
- export { MultiHighlighter } from './multi-highlighter';
6
- export type { MultiHighlighterProps } from './multi-highlighter';
5
+ export { ChildrenHighlighter } from './children-highlighter';
6
+ export type { ChildrenHighlighterProps } from './children-highlighter';
7
7
  export { ElementHighlighter } from './element-highlighter';
8
8
  export type { ElementHighlighterProps, HighlightTarget, Placement, HighlightClasses } from './element-highlighter';
9
9
  export { ExcludeHighlighter, excludeHighlighterAtt, excludeHighlighterSelector, excludeHighlighterAttrName, } from './ignore-highlighter';
package/dist/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.excludeHighlighterAttrName = exports.excludeHighlighterSelector = exports.excludeHighlighterAtt = exports.ExcludeHighlighter = exports.ElementHighlighter = exports.MultiHighlighter = exports.HoverHighlighter = exports.ComponentHighlighter = void 0;
4
- var hybrid_highligher_1 = require("./hybrid-highligher");
5
- Object.defineProperty(exports, "ComponentHighlighter", { enumerable: true, get: function () { return hybrid_highligher_1.HybridHighlighter; } });
3
+ exports.excludeHighlighterAttrName = exports.excludeHighlighterSelector = exports.excludeHighlighterAtt = exports.ExcludeHighlighter = exports.ElementHighlighter = exports.ChildrenHighlighter = exports.HoverHighlighter = exports.ComponentHighlighter = void 0;
4
+ var hybrid_highlighter_1 = require("./hybrid-highlighter");
5
+ Object.defineProperty(exports, "ComponentHighlighter", { enumerable: true, get: function () { return hybrid_highlighter_1.HybridHighlighter; } });
6
6
  var hover_highlighter_1 = require("./hover-highlighter");
7
7
  Object.defineProperty(exports, "HoverHighlighter", { enumerable: true, get: function () { return hover_highlighter_1.HoverHighlighter; } });
8
- var multi_highlighter_1 = require("./multi-highlighter");
9
- Object.defineProperty(exports, "MultiHighlighter", { enumerable: true, get: function () { return multi_highlighter_1.MultiHighlighter; } });
8
+ var children_highlighter_1 = require("./children-highlighter");
9
+ Object.defineProperty(exports, "ChildrenHighlighter", { enumerable: true, get: function () { return children_highlighter_1.ChildrenHighlighter; } });
10
10
  var element_highlighter_1 = require("./element-highlighter");
11
11
  Object.defineProperty(exports, "ElementHighlighter", { enumerable: true, get: function () { return element_highlighter_1.ElementHighlighter; } });
12
12
  var ignore_highlighter_1 = require("./ignore-highlighter");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,yDAAgF;AAAvE,yHAAA,iBAAiB,OAAwB;AAGlD,yDAAuD;AAA9C,qHAAA,gBAAgB,OAAA;AAGzB,yDAAuD;AAA9C,qHAAA,gBAAgB,OAAA;AAGzB,6DAA2D;AAAlD,yHAAA,kBAAkB,OAAA;AAG3B,2DAK8B;AAJ5B,wHAAA,kBAAkB,OAAA;AAClB,2HAAA,qBAAqB,OAAA;AACrB,gIAAA,0BAA0B,OAAA;AAC1B,gIAAA,0BAA0B,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,2DAAiF;AAAxE,0HAAA,iBAAiB,OAAwB;AAGlD,yDAAuD;AAA9C,qHAAA,gBAAgB,OAAA;AAGzB,+DAA6D;AAApD,2HAAA,mBAAmB,OAAA;AAG5B,6DAA2D;AAAlD,yHAAA,kBAAkB,OAAA;AAG3B,2DAK8B;AAJ5B,wHAAA,kBAAkB,OAAA;AAClB,2HAAA,qBAAqB,OAAA;AACrB,gIAAA,0BAA0B,OAAA;AAC1B,gIAAA,0BAA0B,OAAA"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { ComponentMetaHolder } from '@teambit/react.ui.highlighter.component-metadata.bit-component-meta';
3
+ export declare type ComponentStripSize = 's' | 'm' | 'l';
4
+ interface ComponentStripProps extends React.HTMLAttributes<HTMLDivElement> {
5
+ component: ComponentMetaHolder;
6
+ size?: ComponentStripSize;
7
+ }
8
+ export declare const ComponentStrip: React.ForwardRefExoticComponent<ComponentStripProps & React.RefAttributes<HTMLDivElement>>;
9
+ export {};
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.ComponentStrip = void 0;
26
+ const react_1 = __importStar(require("react"));
27
+ const base_ui_routing_native_link_1 = require("@teambit/base-ui.routing.native-link");
28
+ const component_id_1 = require("@teambit/component-id");
29
+ const component_modules_component_url_1 = require("@teambit/component.modules.component-url");
30
+ const react_ui_highlighter_component_metadata_bit_component_meta_1 = require("@teambit/react.ui.highlighter.component-metadata.bit-component-meta");
31
+ const component_strip_module_scss_1 = __importDefault(require("./component-strip.module.scss"));
32
+ const links_1 = require("./links");
33
+ exports.ComponentStrip = (0, react_1.forwardRef)(function ComponentStrip({ component, size = 'm', children }, ref) {
34
+ const { id, homepage, exported } = component[react_ui_highlighter_component_metadata_bit_component_meta_1.componentMetaField];
35
+ const parsedId = (0, react_1.useMemo)(() => component_id_1.ComponentID.tryFromString(id), [id]);
36
+ const componentLink = homepage || (0, links_1.calcComponentLink)(parsedId, exported);
37
+ return (react_1.default.createElement("div", { className: component_strip_module_scss_1.default.componentStrip, ref: ref, "data-size": size },
38
+ !parsedId && react_1.default.createElement(LabelBlock, { link: homepage }, id),
39
+ parsedId && react_1.default.createElement(LabelBlock, { link: component_modules_component_url_1.ScopeUrl.toUrl(parsedId.scope) }, parsedId.scope),
40
+ parsedId && (react_1.default.createElement(LabelBlock, { link: componentLink },
41
+ parsedId.fullName,
42
+ parsedId.version && parsedId.version !== 'latest' && `@${parsedId.version}`)),
43
+ children));
44
+ });
45
+ function LabelBlock({ link, children }) {
46
+ const Comp = link ? base_ui_routing_native_link_1.NativeLink : 'span';
47
+ return (react_1.default.createElement(Comp, { href: link, external: !!link }, children));
48
+ }
49
+ //# sourceMappingURL=component-strip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-strip.js","sourceRoot":"","sources":["../../label/component-strip.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA4E;AAC5E,sFAAkE;AAClE,wDAAoD;AACpD,8FAAoE;AACpE,oJAG6E;AAC7E,gGAAmD;AACnD,mCAA4C;AAQ/B,QAAA,cAAc,GAAG,IAAA,kBAAU,EAAC,SAAS,cAAc,CAC9D,EAAE,SAAS,EAAE,IAAI,GAAG,GAAG,EAAE,QAAQ,EAAuB,EACxD,GAAiC;IAEjC,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,+EAAkB,CAAC,CAAC;IAEjE,MAAM,QAAQ,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,0BAAW,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACpE,MAAM,aAAa,GAAG,QAAQ,IAAI,IAAA,yBAAiB,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAExE,OAAO,CACL,uCAAK,SAAS,EAAE,qCAAM,CAAC,cAAc,EAAE,GAAG,EAAE,GAAG,eAAa,IAAI;QAC7D,CAAC,QAAQ,IAAI,8BAAC,UAAU,IAAC,IAAI,EAAE,QAAQ,IAAG,EAAE,CAAc;QAC1D,QAAQ,IAAI,8BAAC,UAAU,IAAC,IAAI,EAAE,0CAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAG,QAAQ,CAAC,KAAK,CAAc;QAC3F,QAAQ,IAAI,CACX,8BAAC,UAAU,IAAC,IAAI,EAAE,aAAa;YAC5B,QAAQ,CAAC,QAAQ;YACjB,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,QAAQ,CAAC,OAAO,EAAE,CACjE,CACd;QACA,QAAQ,CACL,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,SAAS,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAA0C;IAC5E,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,wCAAU,CAAC,CAAC,CAAC,MAAM,CAAC;IACxC,OAAO,CACL,8BAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,IAC/B,QAAQ,CACJ,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,64 @@
1
+ $borderRadius: 8px;
2
+ $gap: 2px;
3
+
4
+ .componentStrip {
5
+ display: flex;
6
+
7
+ font-size: 14px;
8
+ line-height: 16px;
9
+ border-radius: $borderRadius;
10
+ box-shadow: 0px 11px 29px 0px rgba(0, 0, 0, 0.23);
11
+
12
+ &[data-size='s'] {
13
+ font-size: 12px;
14
+ line-height: 16px;
15
+ }
16
+
17
+ &[data-size='m'] {
18
+ font-size: 14px;
19
+ line-height: 16px;
20
+ }
21
+
22
+ &[data-size='l'] {
23
+ font-size: 16px;
24
+ line-height: 24px;
25
+ }
26
+
27
+ > * {
28
+ padding: 4px 8px;
29
+
30
+ transition: filter 300ms, background-color 300ms;
31
+ transform: translateZ(0); //fix blurriness in Safari
32
+
33
+ background: var(--bit-highlighter-color, #eebcc9);
34
+
35
+ &:link,
36
+ &:visited {
37
+ text-decoration: inherit; // reset browser defaults
38
+ color: inherit; // reset browser defaults
39
+
40
+ &:hover {
41
+ background: var(--bit-highlighter-color-hover, #f6dae2);
42
+ }
43
+
44
+ &:active {
45
+ background: var(--bit-highlighter-color-active, #e79db1);
46
+ color: inherit;
47
+ }
48
+ }
49
+
50
+ &:first-child {
51
+ border-top-left-radius: $borderRadius;
52
+ border-bottom-left-radius: $borderRadius;
53
+ }
54
+
55
+ margin-right: $gap;
56
+
57
+ &:last-child {
58
+ border-top-right-radius: $borderRadius;
59
+ border-bottom-right-radius: $borderRadius;
60
+
61
+ margin-right: unset;
62
+ }
63
+ }
64
+ }
@@ -1,2 +1,4 @@
1
- export { LabelContainer, Label } from './label';
2
- export type { LabelContainerProps, LabelProps, Placement } from './label';
1
+ export { Label } from './label';
2
+ export type { LabelProps, LabelSize } from './label';
3
+ export { LabelContainer } from './label-container';
4
+ export type { LabelContainerProps, Placement } from './label-container';
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Label = exports.LabelContainer = void 0;
3
+ exports.LabelContainer = exports.Label = void 0;
4
4
  var label_1 = require("./label");
5
- Object.defineProperty(exports, "LabelContainer", { enumerable: true, get: function () { return label_1.LabelContainer; } });
6
5
  Object.defineProperty(exports, "Label", { enumerable: true, get: function () { return label_1.Label; } });
6
+ var label_container_1 = require("./label-container");
7
+ Object.defineProperty(exports, "LabelContainer", { enumerable: true, get: function () { return label_container_1.LabelContainer; } });
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../label/index.ts"],"names":[],"mappings":";;;AAAA,iCAAgD;AAAvC,uGAAA,cAAc,OAAA;AAAE,8FAAA,KAAK,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../label/index.ts"],"names":[],"mappings":";;;AAAA,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AAGd,qDAAmD;AAA1C,iHAAA,cAAc,OAAA"}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import type { Placement } from '@popperjs/core';
3
+ import '@popperjs/core';
4
+ export interface LabelContainerProps extends React.HTMLAttributes<HTMLDivElement> {
5
+ targetRef: HTMLElement | null;
6
+ offset?: [number, number];
7
+ placement?: Placement;
8
+ flip?: boolean;
9
+ /** continually update label position to match moving elements */
10
+ watchMotion?: boolean;
11
+ }
12
+ export type { Placement };
13
+ export declare function LabelContainer({ targetRef, offset, placement, flip, watchMotion, className, ...rest }: LabelContainerProps): JSX.Element;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __rest = (this && this.__rest) || function (s, e) {
22
+ var t = {};
23
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
24
+ t[p] = s[p];
25
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
26
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
27
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
28
+ t[p[i]] = s[p[i]];
29
+ }
30
+ return t;
31
+ };
32
+ Object.defineProperty(exports, "__esModule", { value: true });
33
+ exports.LabelContainer = void 0;
34
+ const react_1 = __importStar(require("react"));
35
+ const react_popper_1 = require("react-popper");
36
+ require("@popperjs/core");
37
+ const use_animation_frame_1 = require("../use-animation-frame");
38
+ // TODO - replace this with TippyJS, when it supports a `targetElement={targetRef.current}` prop
39
+ function LabelContainer(_a) {
40
+ var { targetRef, offset, placement, flip = true, watchMotion, className } = _a, rest = __rest(_a, ["targetRef", "offset", "placement", "flip", "watchMotion", "className"]);
41
+ const [sourceRef, setSourceRef] = (0, react_1.useState)(null);
42
+ const modifiers = (0, react_1.useMemo)(() => [{ name: 'offset', options: { offset } }], [flip, offset]);
43
+ const { styles, attributes, update } = (0, react_popper_1.usePopper)(targetRef, sourceRef, {
44
+ modifiers,
45
+ placement,
46
+ });
47
+ (0, use_animation_frame_1.useAnimationFrame)(!!watchMotion && update);
48
+ if (!targetRef)
49
+ return null;
50
+ return react_1.default.createElement("div", Object.assign({}, rest, { ref: setSourceRef, className: className, style: styles.popper }, attributes.popper));
51
+ }
52
+ exports.LabelContainer = LabelContainer;
53
+ //# sourceMappingURL=label-container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label-container.js","sourceRoot":"","sources":["../../label/label-container.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiD;AACjD,+CAAyC;AAEzC,0BAAwB;AAExB,gEAA2D;AAa3D,gGAAgG;AAChG,SAAgB,cAAc,CAAC,EAQT;QARS,EAC7B,SAAS,EACT,MAAM,EACN,SAAS,EACT,IAAI,GAAG,IAAI,EACX,WAAW,EACX,SAAS,OAEW,EADjB,IAAI,cAPsB,wEAQ9B,CADQ;IAEP,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAwB,IAAI,CAAC,CAAC;IAExE,MAAM,SAAS,GAAG,IAAA,eAAO,EACvB,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAC/C,CAAC,IAAI,EAAE,MAAM,CAAC,CACf,CAAC;IAEF,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAA,wBAAS,EAAC,SAAS,EAAE,SAAS,EAAE;QACrE,SAAS;QACT,SAAS;KACV,CAAC,CAAC;IAEH,IAAA,uCAAiB,EAAC,CAAC,CAAC,WAAW,IAAI,MAAM,CAAC,CAAC;IAE3C,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,OAAO,uDAAS,IAAI,IAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,IAAM,UAAU,CAAC,MAAM,EAAI,CAAC;AACjH,CAAC;AA1BD,wCA0BC"}
@@ -1,21 +1,9 @@
1
1
  import React from 'react';
2
- import type { CardProps } from '@teambit/base-ui.surfaces.card';
3
- import type { Placement } from '@popperjs/core';
4
- import '@popperjs/core';
5
- export interface LabelContainerProps extends React.HTMLAttributes<HTMLDivElement> {
6
- targetRef: HTMLElement | null;
7
- offset?: [number, number];
8
- placement?: Placement;
9
- flip?: boolean;
10
- /** continually update label position to match moving elements */
11
- watchMotion?: boolean;
2
+ import { ComponentMetaHolder } from '@teambit/react.ui.highlighter.component-metadata.bit-component-meta';
3
+ import { ComponentStripSize } from './component-strip';
4
+ export declare type LabelSize = ComponentStripSize;
5
+ export interface LabelProps extends React.HTMLAttributes<HTMLDivElement> {
6
+ components: ComponentMetaHolder[];
7
+ size?: LabelSize;
12
8
  }
13
- export type { Placement };
14
- export declare function LabelContainer({ targetRef, offset, placement, flip, watchMotion, className, ...rest }: LabelContainerProps): JSX.Element;
15
- export interface LabelProps extends CardProps {
16
- componentId: string;
17
- link?: string;
18
- scopeLink?: string;
19
- local?: boolean;
20
- }
21
- export declare function Label({ componentId, link, scopeLink, local, ...rest }: LabelProps): JSX.Element;
9
+ export declare function Label({ components, size, ...props }: LabelProps): JSX.Element;
@@ -29,36 +29,29 @@ var __rest = (this && this.__rest) || function (s, e) {
29
29
  }
30
30
  return t;
31
31
  };
32
+ var __importDefault = (this && this.__importDefault) || function (mod) {
33
+ return (mod && mod.__esModule) ? mod : { "default": mod };
34
+ };
32
35
  Object.defineProperty(exports, "__esModule", { value: true });
33
- exports.Label = exports.LabelContainer = void 0;
36
+ exports.Label = void 0;
34
37
  const react_1 = __importStar(require("react"));
35
- const react_popper_1 = require("react-popper");
36
- const component_id_1 = require("@teambit/component-id");
37
- require("@popperjs/core");
38
- const default_label_1 = require("./default-label");
39
- const component_label_1 = require("./component-label");
40
- const use_animation_frame_1 = require("../use-animation-frame");
41
- // TODO - replace this with TippyJS, when it supports a `targetElement={targetRef.current}` prop
42
- function LabelContainer(_a) {
43
- var { targetRef, offset, placement, flip = true, watchMotion, className } = _a, rest = __rest(_a, ["targetRef", "offset", "placement", "flip", "watchMotion", "className"]);
44
- const [sourceRef, setSourceRef] = (0, react_1.useState)(null);
45
- const modifiers = (0, react_1.useMemo)(() => [{ name: 'offset', options: { offset } }], [flip, offset]);
46
- const { styles, attributes, update } = (0, react_popper_1.usePopper)(targetRef, sourceRef, {
47
- modifiers,
48
- placement,
49
- });
50
- (0, use_animation_frame_1.useAnimationFrame)(!!watchMotion && update);
51
- if (!targetRef)
52
- return null;
53
- return react_1.default.createElement("div", Object.assign({}, rest, { ref: setSourceRef, className: className, style: styles.popper }, attributes.popper));
54
- }
55
- exports.LabelContainer = LabelContainer;
38
+ const classnames_1 = __importDefault(require("classnames"));
39
+ const label_module_scss_1 = __importDefault(require("./label.module.scss"));
40
+ const component_strip_1 = require("./component-strip");
41
+ const other_components_1 = require("./other-components");
56
42
  function Label(_a) {
57
- var { componentId, link, scopeLink, local } = _a, rest = __rest(_a, ["componentId", "link", "scopeLink", "local"]);
58
- const parsedId = (0, react_1.useMemo)(() => component_id_1.ComponentID.tryFromString(componentId), [componentId]);
59
- if (!parsedId)
60
- return (react_1.default.createElement(default_label_1.DefaultLabel, Object.assign({}, rest, { href: link }), componentId));
61
- return react_1.default.createElement(component_label_1.ComponentLabel, Object.assign({}, rest, { local: local, componentId: parsedId, link: link, scopeLink: scopeLink }));
43
+ var { components, size } = _a, props = __rest(_a, ["components", "size"]);
44
+ const [showMore, setShowMore] = (0, react_1.useState)(false);
45
+ const last = components.slice(-1).pop();
46
+ if (!last)
47
+ return null;
48
+ const hasMore = components.length > 1;
49
+ // reset when switching targets
50
+ (0, react_1.useEffect)(() => {
51
+ setShowMore(false);
52
+ }, [components]);
53
+ return (react_1.default.createElement(other_components_1.OtherComponentsPopper, { components: components, visible: showMore, placement: "bottom-start", size: size },
54
+ react_1.default.createElement(component_strip_1.ComponentStrip, Object.assign({}, props, { component: last, size: size }), hasMore && (react_1.default.createElement("span", { className: (0, classnames_1.default)(label_module_scss_1.default.othersTooltip, showMore && label_module_scss_1.default.active), onClick: () => setShowMore((x) => !x) })))));
62
55
  }
63
56
  exports.Label = Label;
64
57
  //# sourceMappingURL=label.js.map