@semcore/base-components 17.0.0-prerelease.29 → 17.0.0-prerelease.31

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 (27) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/lib/cjs/components/ellipsis/Ellipsis.types.js.map +1 -1
  3. package/lib/cjs/components/ellipsis/EllipsisManager.js +16 -3
  4. package/lib/cjs/components/ellipsis/EllipsisManager.js.map +1 -1
  5. package/lib/cjs/components/hint/Hint.js +38 -28
  6. package/lib/cjs/components/hint/Hint.js.map +1 -1
  7. package/lib/cjs/components/hint/Middleware.js +4 -2
  8. package/lib/cjs/components/hint/Middleware.js.map +1 -1
  9. package/lib/cjs/components/hint/style/hint.shadow.css +3 -2
  10. package/lib/es6/components/ellipsis/Ellipsis.types.js.map +1 -1
  11. package/lib/es6/components/ellipsis/EllipsisManager.js +16 -3
  12. package/lib/es6/components/ellipsis/EllipsisManager.js.map +1 -1
  13. package/lib/es6/components/hint/Hint.js +38 -28
  14. package/lib/es6/components/hint/Hint.js.map +1 -1
  15. package/lib/es6/components/hint/Middleware.js +4 -2
  16. package/lib/es6/components/hint/Middleware.js.map +1 -1
  17. package/lib/es6/components/hint/style/hint.shadow.css +3 -2
  18. package/lib/esm/components/ellipsis/EllipsisManager.mjs +17 -4
  19. package/lib/esm/components/flex-box/invalid-state-box/InvalidStateBox.mjs +1 -2
  20. package/lib/esm/components/flex-box/screen-reader-only-box/ScreenReaderOnlyBox.mjs +1 -2
  21. package/lib/esm/components/hint/Hint.mjs +39 -30
  22. package/lib/esm/components/hint/Middleware.mjs +4 -2
  23. package/lib/esm/components/hint/style/hint.shadow.css +3 -2
  24. package/lib/esm/components/neighbor-location/NeighborLocation.mjs +1 -1
  25. package/lib/esm/index.mjs +24 -24
  26. package/lib/types/components/ellipsis/Ellipsis.types.d.ts +5 -5
  27. package/package.json +3 -3
@@ -45,16 +45,16 @@ const keyframes = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start
45
45
  import { Box } from '../flex-box';
46
46
  import { Portal } from '../portal';
47
47
  /*!__reshadow-styles__:"./style/hint.shadow.css"*/
48
- const styles = (/*__reshadow_css_start__*/_sstyled2.insert(/*__inner_css_start__*/".___SHintPopper_1em1a_gg_{width:-moz-max-content;width:max-content;position:absolute;top:0;left:0;max-width:250px;word-break:break-all;visibility:hidden;background:var(--intergalactic-tooltip-invert, #191b23);border:1px solid var(--intergalactic-border-tooltip-invert, #6c6e79);color:var(--intergalactic-text-primary-invert, #ffffff);padding:var(--intergalactic-spacing-1x, 4px) var(--intergalactic-spacing-2x, 8px);border-radius:var(--intergalactic-rounded-small, 4px);font-size:var(--intergalactic-fs-100, 12px);line-height:var(--intergalactic-lh-100, 133%);box-shadow:var(--intergalactic-box-shadow-popper, 0px 1px 12px 0px rgba(25, 27, 35, 0.15));animation-fill-mode:both;animation-timing-function:var(--timingFunction_1em1a);animation-duration:var(--durationFinalize_1em1a);animation-name:var(--keyframesFinalize_1em1a)}.___SHintPopper_1em1a_gg_.__visible_1em1a_gg_{animation-duration:var(--durationInitialize_1em1a);animation-name:var(--keyframesInitialize_1em1a)}@media (prefers-reduced-motion){.___SHintPopper_1em1a_gg_,.___SHintPopper_1em1a_gg_.__visible_1em1a_gg_{animation-timing-function:step-end;animation-iteration-count:1}}", /*__inner_css_end__*/"1em1a_gg_"),
48
+ const styles = (/*__reshadow_css_start__*/_sstyled2.insert(/*__inner_css_start__*/".___SHintPopper_19wzn_gg_{width:-moz-max-content;width:max-content;position:absolute;top:0;left:0;max-width:250px;word-wrap:break-word;opacity:0;pointer-events:none;background:var(--intergalactic-tooltip-invert, #191b23);border:1px solid var(--intergalactic-border-tooltip-invert, #6c6e79);color:var(--intergalactic-text-primary-invert, #ffffff);padding:var(--intergalactic-spacing-1x, 4px) var(--intergalactic-spacing-2x, 8px);border-radius:var(--intergalactic-rounded-small, 4px);font-size:var(--intergalactic-fs-100, 12px);line-height:var(--intergalactic-lh-100, 133%);box-shadow:var(--intergalactic-box-shadow-popper, 0px 1px 12px 0px rgba(25, 27, 35, 0.15));animation-fill-mode:both;animation-timing-function:var(--timingFunction_19wzn);animation-duration:var(--durationFinalize_19wzn);animation-name:var(--keyframesFinalize_19wzn)}.___SHintPopper_19wzn_gg_.__visible_19wzn_gg_{animation-duration:var(--durationInitialize_19wzn);animation-name:var(--keyframesInitialize_19wzn)}@media (prefers-reduced-motion){.___SHintPopper_19wzn_gg_,.___SHintPopper_19wzn_gg_.__visible_19wzn_gg_{animation-timing-function:step-end;animation-iteration-count:1}}", /*__inner_css_end__*/"19wzn_gg_"),
49
49
  /*__reshadow_css_end__*/
50
50
  {
51
- "__SHintPopper": "___SHintPopper_1em1a_gg_",
52
- "_visible": "__visible_1em1a_gg_",
53
- "--timingFunction": "--timingFunction_1em1a",
54
- "--durationFinalize": "--durationFinalize_1em1a",
55
- "--keyframesFinalize": "--keyframesFinalize_1em1a",
56
- "--durationInitialize": "--durationInitialize_1em1a",
57
- "--keyframesInitialize": "--keyframesInitialize_1em1a"
51
+ "__SHintPopper": "___SHintPopper_19wzn_gg_",
52
+ "_visible": "__visible_19wzn_gg_",
53
+ "--timingFunction": "--timingFunction_19wzn",
54
+ "--durationFinalize": "--durationFinalize_19wzn",
55
+ "--keyframesFinalize": "--keyframesFinalize_19wzn",
56
+ "--durationInitialize": "--durationInitialize_19wzn",
57
+ "--keyframesInitialize": "--keyframesInitialize_19wzn"
58
58
  });
59
59
  const enhances = [zIndexStackingEnhance('z-index-tooltip'), cssVariableEnhance({
60
60
  variable: '--intergalactic-duration-popper',
@@ -88,7 +88,7 @@ class HintPopperRoot extends Component {
88
88
  this.handleMouseLeave = this.handleMouseLeave.bind(this);
89
89
  this.handleKeyDown = this.handleKeyDown.bind(this);
90
90
  this.state = {
91
- innerVisible: props.visible ?? null,
91
+ innerVisible: null,
92
92
  calculatedPlacement: props.placement
93
93
  };
94
94
  }
@@ -98,8 +98,12 @@ class HintPopperRoot extends Component {
98
98
  };
99
99
  }
100
100
  componentDidMount() {
101
- const trigger = this.asProps.triggerRef.current;
102
- if (trigger) {
101
+ const {
102
+ triggerRef,
103
+ children
104
+ } = this.asProps;
105
+ const trigger = triggerRef.current;
106
+ if (trigger && children) {
103
107
  this.subscribe(trigger);
104
108
  }
105
109
  }
@@ -176,7 +180,6 @@ class HintPopperRoot extends Component {
176
180
  left: `${x}px`,
177
181
  top: `${y}px`
178
182
  });
179
- popperElement.style.visibility = 'visible';
180
183
  this.setState({
181
184
  innerVisible: true,
182
185
  calculatedPlacement: placement
@@ -194,43 +197,50 @@ class HintPopperRoot extends Component {
194
197
  if (this.showTimer) {
195
198
  clearTimeout(this.showTimer);
196
199
  }
197
- this.setState({
198
- innerVisible: false
199
- });
200
- this.hideTimer = window.setTimeout(() => {
201
- this.hintRef.current?.style.setProperty('visibility', 'hidden');
202
- this.handlers.visible(false);
200
+ if (this.state.innerVisible) {
203
201
  this.setState({
204
- innerVisible: null
202
+ innerVisible: false
205
203
  });
206
- }, hideTimeout);
204
+ this.hideTimer = window.setTimeout(() => {
205
+ this.handlers.visible(false);
206
+ this.setState({
207
+ innerVisible: null
208
+ });
209
+ }, hideTimeout);
210
+ }
207
211
  }
208
212
  handleFocus(e) {
209
- if (e.target instanceof HTMLElement && this.asProps.triggerRef.current === e.target && lastInteraction.isKeyboard()) {
213
+ if (this.isCompatibleElement(e.target) && this.sameAsTrigger(e) && lastInteraction.isKeyboard()) {
210
214
  this.showHint(e.target);
211
215
  }
212
216
  }
213
217
  handleBlur(e) {
214
- if (e.target instanceof HTMLElement && this.asProps.triggerRef.current === e.target) {
218
+ if (this.isCompatibleElement(e.target) && this.sameAsTrigger(e)) {
215
219
  this.hideHint();
216
220
  }
217
221
  }
218
222
  handleKeyDown(e) {
219
- if (e.key === 'Escape' && e.target instanceof HTMLElement && this.asProps.triggerRef.current === e.target && this.state.innerVisible) {
223
+ if (e.key === 'Escape' && this.isCompatibleElement(e.target) && this.sameAsTrigger(e) && this.state.innerVisible) {
220
224
  e.stopPropagation();
221
225
  this.hideHint();
222
226
  }
223
227
  }
224
228
  handleMouseEnter(e) {
225
- if (e.target instanceof HTMLElement && this.asProps.triggerRef.current === e.target) {
229
+ if (this.isCompatibleElement(e.target) && this.sameAsTrigger(e)) {
226
230
  this.showHint(e.target, e);
227
231
  }
228
232
  }
229
233
  handleMouseLeave(e) {
230
- if (e.target instanceof HTMLElement && this.asProps.triggerRef.current === e.target) {
234
+ if (this.isCompatibleElement(e.target) && this.sameAsTrigger(e)) {
231
235
  this.hideHint();
232
236
  }
233
237
  }
238
+ isCompatibleElement(target) {
239
+ return target instanceof HTMLElement || target instanceof SVGElement;
240
+ }
241
+ sameAsTrigger(e) {
242
+ return this.asProps.triggerRef.current === e.target;
243
+ }
234
244
  keyframesKey(placement) {
235
245
  if (!placement) {
236
246
  return 'opacity';
@@ -281,7 +291,7 @@ class HintPopperRoot extends Component {
281
291
  if (canUseDOM()) {
282
292
  this.setTriggerAriaLabel();
283
293
  }
284
- if (!visible) {
294
+ if (!visible && innerVisible === null) {
285
295
  return null;
286
296
  }
287
297
  const duration = propToArray(Number(this.asProps.duration));
@@ -298,8 +308,8 @@ class HintPopperRoot extends Component {
298
308
  "durationInitialize": `${duration[0]}ms`,
299
309
  "durationFinalize": `${duration[1]}ms`,
300
310
  "timingFunction": timingFunction,
301
- "keyframesInitialize": keyframes[`@${this.keyframesKey(calculatedPlacement)}-in`],
302
- "keyframesFinalize": keyframes[`@${this.keyframesKey(calculatedPlacement)}-out`],
311
+ "keyframesInitialize": innerVisible === true ? keyframes[`@${this.keyframesKey(calculatedPlacement)}-in`] : undefined,
312
+ "keyframesFinalize": innerVisible === false ? keyframes[`@${this.keyframesKey(calculatedPlacement)}-out`] : undefined,
303
313
  "use:data-ui-name": 'Hint'
304
314
  }, _ref)
305
315
  }), /*#__PURE__*/React.createElement(Children, _ref2.cn("Children", {}))));
@@ -1 +1 @@
1
- {"version":3,"file":"Hint.js","names":["computePosition","flip","offset","shift","createComponent","Root","sstyled","Component","lastInteraction","canUseDOM","getAccessibleName","cssVariableEnhance","zIndexStackingEnhance","React","Middleware","keyframes","_sstyled","insert","Box","Portal","styles","_sstyled2","enhances","variable","fallback","map","v","Number","parseInt","toString","prop","propToArray","Array","isArray","keyframesMap","Map","HintPopperRoot","constructor","props","_defineProperty","createRef","handleFocus","bind","handleBlur","handleMouseEnter","handleMouseLeave","handleKeyDown","state","innerVisible","visible","calculatedPlacement","placement","uncontrolledProps","componentDidMount","trigger","asProps","triggerRef","current","subscribe","componentWillUnmount","unsubscribe","componentDidUpdate","prevProps","requestAnimationFrame","showHint","hideHint","addEventListener","removeEventListener","node","mouseEvent","timeout","showTimeout","hideTimer","clearTimeout","showTimer","window","setTimeout","handlers","popperElement","hintRef","middleware","padding","verticalPlacement","startsWith","undefined","push","verticalCursorAnchoring","x","clientX","then","y","Object","assign","style","left","top","visibility","setState","hideTimeout","setProperty","e","target","HTMLElement","isKeyboard","key","stopPropagation","keyframesKey","has","get","keyframe","set","setTriggerAriaLabel","children","textContent","ariaLabel","label","setAttribute","render","_ref","_ref2","SHintPopper","Children","parentZIndexStacking","timingFunction","duration","createElement","cn","_assignProps","defaultVisible","Hint"],"sources":["../../../../src/components/hint/Hint.tsx"],"sourcesContent":["import { computePosition, flip, offset, shift, type Placement } from '@floating-ui/dom';\nimport { createComponent, Root, sstyled, Component, lastInteraction } from '@semcore/core';\nimport canUseDOM from '@semcore/core/lib/utils/canUseDOM';\nimport { getAccessibleName } from '@semcore/core/lib/utils/getAccessibleName';\nimport { cssVariableEnhance } from '@semcore/core/lib/utils/useCssVariable';\nimport { zIndexStackingEnhance } from '@semcore/core/lib/utils/zIndexStacking';\nimport type { DataType } from 'csstype';\nimport React from 'react';\n\nimport { Middleware } from './Middleware';\nimport keyframes from '../animation/style/keyframes.shadow.css';\nimport { Box } from '../flex-box';\nimport { Portal } from '../portal';\nimport styles from './style/hint.shadow.css';\n\ntype Handlers = {\n visible: null;\n};\n\nexport type SimpleHintPopperProps = {\n /** Ref to the trigger element */\n triggerRef: React.RefObject<HTMLElement | null>;\n /**\n * The position of the popper relative to the trigger that called it.\n * @default top\n */\n placement?: Placement;\n /**\n * Timer to show and hide the popper\n * @default [500, 500]\n */\n timeout?: DefaultProps['timeout'];\n /**\n * Hint content.\n * Better to use here some short text.\n * */\n children: React.ReactNode;\n\n /** Popper visibility value */\n visible?: boolean;\n /** Default popper visibility\n * @default false */\n defaultVisible?: boolean;\n /** Function called when visibility changes */\n onVisibleChange?: (visible: boolean, e?: Event) => boolean | void;\n};\n\ntype DefaultProps = {\n defaultVisible?: boolean;\n timeout: number | [number, number];\n timingFunction: DataType.EasingFunction;\n placement?: Placement;\n};\n\ntype State = {\n innerVisible: boolean | null;\n calculatedPlacement?: Placement;\n};\n\nconst enhances = [\n zIndexStackingEnhance('z-index-tooltip'),\n cssVariableEnhance({\n variable: '--intergalactic-duration-popper',\n fallback: '200',\n map: (v: string) => Number.parseInt(v, 10).toString(),\n prop: 'duration',\n }),\n cssVariableEnhance({\n variable: '--intergalactic-spacing-1x',\n fallback: '4',\n map: (v: string) => Number.parseInt(v, 10).toString(),\n prop: 'offset',\n }),\n cssVariableEnhance({\n variable: '--intergalactic-spacing-1x',\n fallback: '4',\n map: (v: string) => Number.parseInt(v, 10).toString(),\n prop: 'padding',\n }),\n] as const;\n\nfunction propToArray(prop: number | [number, number]): [number, number] {\n return Array.isArray(prop) ? prop : [prop, prop];\n}\n\nconst keyframesMap = new Map<Placement, string>();\n\nclass HintPopperRoot extends Component<SimpleHintPopperProps, typeof enhances, Handlers, DefaultProps, State> {\n public readonly hintRef = React.createRef<HTMLElement>();\n\n static style = Object.assign(keyframes, styles);\n\n private showTimer?: number;\n private hideTimer?: number;\n\n static enhance = enhances;\n\n static defaultProps: DefaultProps = {\n defaultVisible: false,\n timeout: [500, 500],\n timingFunction: 'ease-out',\n placement: 'top',\n };\n\n constructor(props: SimpleHintPopperProps) {\n super(props);\n\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleMouseEnter = this.handleMouseEnter.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n\n this.state = {\n innerVisible: props.visible ?? null,\n calculatedPlacement: props.placement,\n };\n }\n\n uncontrolledProps() {\n return {\n visible: null,\n };\n }\n\n componentDidMount() {\n const trigger = this.asProps.triggerRef.current;\n\n if (trigger) {\n this.subscribe(trigger);\n }\n }\n\n componentWillUnmount() {\n const trigger = this.asProps.triggerRef.current;\n\n if (trigger) {\n this.unsubscribe(trigger);\n }\n }\n\n componentDidUpdate(prevProps: SimpleHintPopperProps) {\n if (prevProps.visible !== this.props.visible) {\n requestAnimationFrame(() => {\n const trigger = this.props.triggerRef.current;\n\n if (this.props.visible && trigger) {\n this.showHint(trigger);\n } else {\n this.hideHint();\n }\n });\n }\n }\n\n private subscribe(trigger: HTMLElement) {\n trigger.addEventListener('focus', this.handleFocus);\n trigger.addEventListener('blur', this.handleBlur);\n trigger.addEventListener('mouseenter', this.handleMouseEnter);\n trigger.addEventListener('mouseleave', this.handleMouseLeave);\n trigger.addEventListener('keydown', this.handleKeyDown);\n\n if (this.asProps.visible) {\n this.showHint(trigger);\n }\n }\n\n private unsubscribe(trigger: HTMLElement) {\n trigger.removeEventListener('focus', this.handleFocus);\n trigger.removeEventListener('blur', this.handleBlur);\n trigger.removeEventListener('mouseenter', this.handleMouseEnter);\n trigger.removeEventListener('mouseleave', this.handleMouseLeave);\n trigger.removeEventListener('keydown', this.handleKeyDown);\n\n this.hideHint();\n }\n\n private showHint(node: HTMLElement, mouseEvent?: MouseEvent): void {\n const { placement, timeout } = this.asProps;\n\n const showTimeout = Array.isArray(timeout) ? timeout[0] : timeout;\n\n if (this.hideTimer) {\n clearTimeout(this.hideTimer);\n }\n\n this.showTimer = window.setTimeout(() => {\n this.handlers.visible(true);\n\n window.setTimeout(() => {\n const popperElement = this.hintRef.current;\n if (popperElement) {\n const middleware = [\n offset(Number(this.asProps.offset)),\n flip(),\n shift({ padding: Number(this.asProps.padding) }),\n ];\n const verticalPlacement = !placement || placement.startsWith('top') || placement.startsWith('bottom');\n if (mouseEvent !== undefined && verticalPlacement) {\n middleware.push(\n Middleware.verticalCursorAnchoring({ x: mouseEvent.clientX }),\n shift({ padding: Number(this.asProps.padding) }),\n );\n }\n\n computePosition(node, popperElement, {\n placement: placement,\n middleware,\n }).then(({ x, y, placement }) => {\n Object.assign(popperElement.style, {\n left: `${x}px`,\n top: `${y}px`,\n });\n popperElement.style.visibility = 'visible';\n\n this.setState({ innerVisible: true, calculatedPlacement: placement });\n });\n }\n }, 10);\n }, showTimeout);\n }\n\n private hideHint(): void {\n const { timeout } = this.asProps;\n\n const hideTimeout = Array.isArray(timeout) ? timeout[1] : timeout;\n\n if (this.showTimer) {\n clearTimeout(this.showTimer);\n }\n\n this.setState({ innerVisible: false });\n\n this.hideTimer = window.setTimeout(() => {\n this.hintRef.current?.style.setProperty('visibility', 'hidden');\n this.handlers.visible(false);\n this.setState({ innerVisible: null });\n }, hideTimeout);\n }\n\n private handleFocus(e: FocusEvent): void {\n if (e.target instanceof HTMLElement && this.asProps.triggerRef.current === e.target && lastInteraction.isKeyboard()) {\n this.showHint(e.target);\n }\n }\n\n private handleBlur(e: FocusEvent): void {\n if (e.target instanceof HTMLElement && this.asProps.triggerRef.current === e.target) {\n this.hideHint();\n }\n }\n\n private handleKeyDown(e: KeyboardEvent): void {\n if (e.key === 'Escape' && e.target instanceof HTMLElement && this.asProps.triggerRef.current === e.target && this.state.innerVisible) {\n e.stopPropagation();\n this.hideHint();\n }\n }\n\n private handleMouseEnter(e: MouseEvent): void {\n if (e.target instanceof HTMLElement && this.asProps.triggerRef.current === e.target) {\n this.showHint(e.target, e);\n }\n }\n\n private handleMouseLeave(e: MouseEvent): void {\n if (e.target instanceof HTMLElement && this.asProps.triggerRef.current === e.target) {\n this.hideHint();\n }\n }\n\n private keyframesKey(placement?: Placement) {\n if (!placement) {\n return 'opacity';\n }\n\n if (keyframesMap.has(placement)) {\n return keyframesMap.get(placement)!;\n }\n\n let keyframe: string = 'opacity';\n\n if (placement.startsWith('left')) keyframe = 'scale-left';\n if (placement.startsWith('right')) keyframe = 'scale-right';\n if (placement.startsWith('bottom')) keyframe = 'scale-bottom';\n if (placement.startsWith('top')) keyframe = 'scale-top';\n\n keyframesMap.set(placement, keyframe);\n\n return keyframe;\n }\n\n private setTriggerAriaLabel() {\n const { triggerRef, children } = this.asProps;\n\n requestAnimationFrame(() => {\n const trigger = triggerRef.current;\n\n if (trigger) {\n const textContent = trigger.textContent;\n const ariaLabel = getAccessibleName(trigger);\n\n if (!textContent && !ariaLabel) {\n const label = (typeof children === 'string' || typeof children === 'number')\n ? children.toString()\n : (this.hintRef.current?.textContent ?? '');\n triggerRef.current?.setAttribute('aria-label', label);\n }\n }\n });\n }\n\n render() {\n const SHintPopper = Root;\n const { visible, Children, parentZIndexStacking, styles, timingFunction } = this.asProps;\n const { innerVisible, calculatedPlacement } = this.state;\n\n if (canUseDOM()) {\n this.setTriggerAriaLabel();\n }\n\n if (!visible) {\n return null;\n }\n\n const duration = propToArray(Number(this.asProps.duration));\n\n /* `visible && innerVisible === null` - is a condition to start showing right after hover/focus */\n const showHint = (visible && innerVisible === null) || innerVisible === true;\n\n return sstyled(styles)(\n <Portal>\n <SHintPopper\n render={Box}\n ref={this.hintRef}\n aria-hidden={true}\n role={undefined}\n zIndex={parentZIndexStacking}\n use:visible={showHint}\n durationInitialize={`${duration[0]}ms`}\n durationFinalize={`${duration[1]}ms`}\n timingFunction={timingFunction}\n keyframesInitialize={keyframes[`@${this.keyframesKey(calculatedPlacement)}-in`]}\n keyframesFinalize={keyframes[`@${this.keyframesKey(calculatedPlacement)}-out`]}\n use:data-ui-name='Hint'\n >\n <Children />\n </SHintPopper>\n </Portal>,\n );\n }\n}\n\nexport const Hint = createComponent<'div', SimpleHintPopperProps>(HintPopperRoot);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Hint.js","names":["computePosition","flip","offset","shift","createComponent","Root","sstyled","Component","lastInteraction","canUseDOM","getAccessibleName","cssVariableEnhance","zIndexStackingEnhance","React","Middleware","keyframes","_sstyled","insert","Box","Portal","styles","_sstyled2","enhances","variable","fallback","map","v","Number","parseInt","toString","prop","propToArray","Array","isArray","keyframesMap","Map","HintPopperRoot","constructor","props","_defineProperty","createRef","handleFocus","bind","handleBlur","handleMouseEnter","handleMouseLeave","handleKeyDown","state","innerVisible","calculatedPlacement","placement","uncontrolledProps","visible","componentDidMount","triggerRef","children","asProps","trigger","current","subscribe","componentWillUnmount","unsubscribe","componentDidUpdate","prevProps","requestAnimationFrame","showHint","hideHint","addEventListener","removeEventListener","node","mouseEvent","timeout","showTimeout","hideTimer","clearTimeout","showTimer","window","setTimeout","handlers","popperElement","hintRef","middleware","padding","verticalPlacement","startsWith","undefined","push","verticalCursorAnchoring","x","clientX","then","y","Object","assign","style","left","top","setState","hideTimeout","e","isCompatibleElement","target","sameAsTrigger","isKeyboard","key","stopPropagation","HTMLElement","SVGElement","keyframesKey","has","get","keyframe","set","setTriggerAriaLabel","textContent","ariaLabel","label","setAttribute","render","_ref","_ref2","SHintPopper","Children","parentZIndexStacking","timingFunction","duration","createElement","cn","_assignProps","defaultVisible","Hint"],"sources":["../../../../src/components/hint/Hint.tsx"],"sourcesContent":["import { computePosition, flip, offset, shift, type Placement } from '@floating-ui/dom';\nimport { createComponent, Root, sstyled, Component, lastInteraction } from '@semcore/core';\nimport canUseDOM from '@semcore/core/lib/utils/canUseDOM';\nimport { getAccessibleName } from '@semcore/core/lib/utils/getAccessibleName';\nimport { cssVariableEnhance } from '@semcore/core/lib/utils/useCssVariable';\nimport { zIndexStackingEnhance } from '@semcore/core/lib/utils/zIndexStacking';\nimport type { DataType } from 'csstype';\nimport React from 'react';\n\nimport { Middleware } from './Middleware';\nimport keyframes from '../animation/style/keyframes.shadow.css';\nimport { Box } from '../flex-box';\nimport { Portal } from '../portal';\nimport styles from './style/hint.shadow.css';\n\ntype Handlers = {\n visible: null;\n};\n\nexport type SimpleHintPopperProps = {\n /** Ref to the trigger element */\n triggerRef: React.RefObject<HTMLElement | null>;\n /**\n * The position of the popper relative to the trigger that called it.\n * @default top\n */\n placement?: Placement;\n /**\n * Timer to show and hide the popper\n * @default [500, 500]\n */\n timeout?: DefaultProps['timeout'];\n /**\n * Hint content.\n * Better to use here some short text.\n * */\n children: React.ReactNode;\n\n /** Popper visibility value */\n visible?: boolean;\n /** Default popper visibility\n * @default false */\n defaultVisible?: boolean;\n /** Function called when visibility changes */\n onVisibleChange?: (visible: boolean, e?: Event) => boolean | void;\n};\n\ntype DefaultProps = {\n defaultVisible?: boolean;\n timeout: number | [number, number];\n timingFunction: DataType.EasingFunction;\n placement?: Placement;\n};\n\ntype State = {\n innerVisible: boolean | null;\n calculatedPlacement?: Placement;\n};\n\nconst enhances = [\n zIndexStackingEnhance('z-index-tooltip'),\n cssVariableEnhance({\n variable: '--intergalactic-duration-popper',\n fallback: '200',\n map: (v: string) => Number.parseInt(v, 10).toString(),\n prop: 'duration',\n }),\n cssVariableEnhance({\n variable: '--intergalactic-spacing-1x',\n fallback: '4',\n map: (v: string) => Number.parseInt(v, 10).toString(),\n prop: 'offset',\n }),\n cssVariableEnhance({\n variable: '--intergalactic-spacing-1x',\n fallback: '4',\n map: (v: string) => Number.parseInt(v, 10).toString(),\n prop: 'padding',\n }),\n] as const;\n\nfunction propToArray(prop: number | [number, number]): [number, number] {\n return Array.isArray(prop) ? prop : [prop, prop];\n}\n\nconst keyframesMap = new Map<Placement, string>();\n\nclass HintPopperRoot extends Component<SimpleHintPopperProps, typeof enhances, Handlers, DefaultProps, State> {\n public readonly hintRef = React.createRef<HTMLElement>();\n\n static style = Object.assign(keyframes, styles);\n\n private showTimer?: number;\n private hideTimer?: number;\n\n static enhance = enhances;\n\n static defaultProps: DefaultProps = {\n defaultVisible: false,\n timeout: [500, 500],\n timingFunction: 'ease-out',\n placement: 'top',\n };\n\n constructor(props: SimpleHintPopperProps) {\n super(props);\n\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleMouseEnter = this.handleMouseEnter.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n\n this.state = {\n innerVisible: null,\n calculatedPlacement: props.placement,\n };\n }\n\n uncontrolledProps() {\n return {\n visible: null,\n };\n }\n\n componentDidMount() {\n const { triggerRef, children } = this.asProps;\n const trigger = triggerRef.current;\n\n if (trigger && children) {\n this.subscribe(trigger);\n }\n }\n\n componentWillUnmount() {\n const trigger = this.asProps.triggerRef.current;\n\n if (trigger) {\n this.unsubscribe(trigger);\n }\n }\n\n componentDidUpdate(prevProps: SimpleHintPopperProps) {\n if (prevProps.visible !== this.props.visible) {\n requestAnimationFrame(() => {\n const trigger = this.props.triggerRef.current;\n\n if (this.props.visible && trigger) {\n this.showHint(trigger);\n } else {\n this.hideHint();\n }\n });\n }\n }\n\n private subscribe(trigger: HTMLElement) {\n trigger.addEventListener('focus', this.handleFocus);\n trigger.addEventListener('blur', this.handleBlur);\n trigger.addEventListener('mouseenter', this.handleMouseEnter);\n trigger.addEventListener('mouseleave', this.handleMouseLeave);\n trigger.addEventListener('keydown', this.handleKeyDown);\n\n if (this.asProps.visible) {\n this.showHint(trigger);\n }\n }\n\n private unsubscribe(trigger: HTMLElement) {\n trigger.removeEventListener('focus', this.handleFocus);\n trigger.removeEventListener('blur', this.handleBlur);\n trigger.removeEventListener('mouseenter', this.handleMouseEnter);\n trigger.removeEventListener('mouseleave', this.handleMouseLeave);\n trigger.removeEventListener('keydown', this.handleKeyDown);\n\n this.hideHint();\n }\n\n private showHint(node: Element, mouseEvent?: MouseEvent): void {\n const { placement, timeout } = this.asProps;\n\n const showTimeout = Array.isArray(timeout) ? timeout[0] : timeout;\n\n if (this.hideTimer) {\n clearTimeout(this.hideTimer);\n }\n\n this.showTimer = window.setTimeout(() => {\n this.handlers.visible(true);\n\n window.setTimeout(() => {\n const popperElement = this.hintRef.current;\n if (popperElement) {\n const middleware = [\n offset(Number(this.asProps.offset)),\n flip(),\n shift({ padding: Number(this.asProps.padding) }),\n ];\n const verticalPlacement = !placement || placement.startsWith('top') || placement.startsWith('bottom');\n if (mouseEvent !== undefined && verticalPlacement) {\n middleware.push(\n Middleware.verticalCursorAnchoring({ x: mouseEvent.clientX }),\n shift({ padding: Number(this.asProps.padding) }),\n );\n }\n\n computePosition(node, popperElement, {\n placement: placement,\n middleware,\n }).then(({ x, y, placement }) => {\n Object.assign(popperElement.style, {\n left: `${x}px`,\n top: `${y}px`,\n });\n\n this.setState({ innerVisible: true, calculatedPlacement: placement });\n });\n }\n }, 10);\n }, showTimeout);\n }\n\n private hideHint(): void {\n const { timeout } = this.asProps;\n\n const hideTimeout = Array.isArray(timeout) ? timeout[1] : timeout;\n\n if (this.showTimer) {\n clearTimeout(this.showTimer);\n }\n\n if (this.state.innerVisible) {\n this.setState({ innerVisible: false });\n\n this.hideTimer = window.setTimeout(() => {\n this.handlers.visible(false);\n this.setState({ innerVisible: null });\n }, hideTimeout);\n }\n }\n\n private handleFocus(e: FocusEvent): void {\n if (this.isCompatibleElement(e.target) && this.sameAsTrigger(e) && lastInteraction.isKeyboard()) {\n this.showHint(e.target);\n }\n }\n\n private handleBlur(e: FocusEvent): void {\n if (this.isCompatibleElement(e.target) && this.sameAsTrigger(e)) {\n this.hideHint();\n }\n }\n\n private handleKeyDown(e: KeyboardEvent): void {\n if (e.key === 'Escape' && this.isCompatibleElement(e.target) && this.sameAsTrigger(e) && this.state.innerVisible) {\n e.stopPropagation();\n this.hideHint();\n }\n }\n\n private handleMouseEnter(e: MouseEvent): void {\n if (this.isCompatibleElement(e.target) && this.sameAsTrigger(e)) {\n this.showHint(e.target, e);\n }\n }\n\n private handleMouseLeave(e: MouseEvent): void {\n if (this.isCompatibleElement(e.target) && this.sameAsTrigger(e)) {\n this.hideHint();\n }\n }\n\n private isCompatibleElement(target: unknown): target is HTMLElement | SVGElement {\n return target instanceof HTMLElement || target instanceof SVGElement;\n }\n\n private sameAsTrigger(e: MouseEvent | KeyboardEvent | FocusEvent): boolean {\n return this.asProps.triggerRef.current === e.target;\n }\n\n private keyframesKey(placement?: Placement) {\n if (!placement) {\n return 'opacity';\n }\n\n if (keyframesMap.has(placement)) {\n return keyframesMap.get(placement)!;\n }\n\n let keyframe: string = 'opacity';\n\n if (placement.startsWith('left')) keyframe = 'scale-left';\n if (placement.startsWith('right')) keyframe = 'scale-right';\n if (placement.startsWith('bottom')) keyframe = 'scale-bottom';\n if (placement.startsWith('top')) keyframe = 'scale-top';\n\n keyframesMap.set(placement, keyframe);\n\n return keyframe;\n }\n\n private setTriggerAriaLabel() {\n const { triggerRef, children } = this.asProps;\n\n requestAnimationFrame(() => {\n const trigger = triggerRef.current;\n\n if (trigger) {\n const textContent = trigger.textContent;\n const ariaLabel = getAccessibleName(trigger);\n\n if (!textContent && !ariaLabel) {\n const label = (typeof children === 'string' || typeof children === 'number')\n ? children.toString()\n : (this.hintRef.current?.textContent ?? '');\n triggerRef.current?.setAttribute('aria-label', label);\n }\n }\n });\n }\n\n render() {\n const SHintPopper = Root;\n const { visible, Children, parentZIndexStacking, styles, timingFunction } = this.asProps;\n const { innerVisible, calculatedPlacement } = this.state;\n\n if (canUseDOM()) {\n this.setTriggerAriaLabel();\n }\n\n if (!visible && innerVisible === null) {\n return null;\n }\n\n const duration = propToArray(Number(this.asProps.duration));\n\n /* `visible && innerVisible === null` - is a condition to start showing right after hover/focus */\n const showHint = (visible && innerVisible === null) || innerVisible === true;\n\n return sstyled(styles)(\n <Portal>\n <SHintPopper\n render={Box}\n ref={this.hintRef}\n aria-hidden={true}\n role={undefined}\n zIndex={parentZIndexStacking}\n use:visible={showHint}\n durationInitialize={`${duration[0]}ms`}\n durationFinalize={`${duration[1]}ms`}\n timingFunction={timingFunction}\n keyframesInitialize={innerVisible === true ? keyframes[`@${this.keyframesKey(calculatedPlacement)}-in`] : undefined}\n keyframesFinalize={innerVisible === false ? keyframes[`@${this.keyframesKey(calculatedPlacement)}-out`] : undefined}\n use:data-ui-name='Hint'\n >\n <Children />\n </SHintPopper>\n </Portal>,\n );\n }\n}\n\nexport const Hint = createComponent<'div', SimpleHintPopperProps>(HintPopperRoot);\n"],"mappings":"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","ignoreList":[]}
@@ -5,10 +5,12 @@ export class Middleware {
5
5
  fn(state) {
6
6
  const {
7
7
  rects,
8
- x
8
+ x,
9
+ elements
9
10
  } = state;
11
+ const referenceLeft = elements.reference.getBoundingClientRect().left;
10
12
  return {
11
- x: rects.floating.width > rects.reference.width ? x : mouseCursorPosition.x - rects.floating.width / 2
13
+ x: rects.floating.width > rects.reference.width ? x : referenceLeft > rects.reference.x ? mouseCursorPosition.x - referenceLeft + rects.reference.x - rects.floating.width / 2 : mouseCursorPosition.x - rects.floating.width / 2
12
14
  };
13
15
  }
14
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Middleware.js","names":["Middleware","verticalCursorAnchoring","mouseCursorPosition","name","fn","state","rects","x","floating","width","reference"],"sources":["../../../../src/components/hint/Middleware.ts"],"sourcesContent":["import type { MiddlewareState } from '@floating-ui/dom';\n\ntype MouseEnterCursorPosition = {\n x: number;\n};\n\nexport class Middleware {\n public static verticalCursorAnchoring(mouseCursorPosition: MouseEnterCursorPosition) {\n return {\n name: 'verticalCursorAnchoring',\n fn(state: MiddlewareState) {\n const { rects, x } = state;\n return {\n x: rects.floating.width > rects.reference.width ? x : mouseCursorPosition.x - rects.floating.width / 2,\n };\n },\n };\n }\n}\n"],"mappings":"AAMA,OAAO,MAAMA,UAAU,CAAC;EACtB,OAAcC,uBAAuBA,CAACC,mBAA6C,EAAE;IACnF,OAAO;MACLC,IAAI,EAAE,yBAAyB;MAC/BC,EAAEA,CAACC,KAAsB,EAAE;QACzB,MAAM;UAAEC,KAAK;UAAEC;QAAE,CAAC,GAAGF,KAAK;QAC1B,OAAO;UACLE,CAAC,EAAED,KAAK,CAACE,QAAQ,CAACC,KAAK,GAAGH,KAAK,CAACI,SAAS,CAACD,KAAK,GAAGF,CAAC,GAAGL,mBAAmB,CAACK,CAAC,GAAGD,KAAK,CAACE,QAAQ,CAACC,KAAK,GAAG;QACvG,CAAC;MACH;IACF,CAAC;EACH;AACF","ignoreList":[]}
1
+ {"version":3,"file":"Middleware.js","names":["Middleware","verticalCursorAnchoring","mouseCursorPosition","name","fn","state","rects","x","elements","referenceLeft","reference","getBoundingClientRect","left","floating","width"],"sources":["../../../../src/components/hint/Middleware.ts"],"sourcesContent":["import type { MiddlewareState } from '@floating-ui/dom';\n\ntype MouseEnterCursorPosition = {\n x: number;\n};\n\nexport class Middleware {\n public static verticalCursorAnchoring(mouseCursorPosition: MouseEnterCursorPosition) {\n return {\n name: 'verticalCursorAnchoring',\n fn(state: MiddlewareState) {\n const { rects, x, elements } = state;\n const referenceLeft = elements.reference.getBoundingClientRect().left;\n\n return {\n x: rects.floating.width > rects.reference.width\n ? x\n : referenceLeft > rects.reference.x\n ? mouseCursorPosition.x - referenceLeft + rects.reference.x - rects.floating.width / 2\n : mouseCursorPosition.x - rects.floating.width / 2,\n };\n },\n };\n }\n}\n"],"mappings":"AAMA,OAAO,MAAMA,UAAU,CAAC;EACtB,OAAcC,uBAAuBA,CAACC,mBAA6C,EAAE;IACnF,OAAO;MACLC,IAAI,EAAE,yBAAyB;MAC/BC,EAAEA,CAACC,KAAsB,EAAE;QACzB,MAAM;UAAEC,KAAK;UAAEC,CAAC;UAAEC;QAAS,CAAC,GAAGH,KAAK;QACpC,MAAMI,aAAa,GAAGD,QAAQ,CAACE,SAAS,CAACC,qBAAqB,CAAC,CAAC,CAACC,IAAI;QAErE,OAAO;UACLL,CAAC,EAAED,KAAK,CAACO,QAAQ,CAACC,KAAK,GAAGR,KAAK,CAACI,SAAS,CAACI,KAAK,GAC3CP,CAAC,GACDE,aAAa,GAAGH,KAAK,CAACI,SAAS,CAACH,CAAC,GAC/BL,mBAAmB,CAACK,CAAC,GAAGE,aAAa,GAAGH,KAAK,CAACI,SAAS,CAACH,CAAC,GAAGD,KAAK,CAACO,QAAQ,CAACC,KAAK,GAAG,CAAC,GACpFZ,mBAAmB,CAACK,CAAC,GAAGD,KAAK,CAACO,QAAQ,CAACC,KAAK,GAAG;QACvD,CAAC;MACH;IACF,CAAC;EACH;AACF","ignoreList":[]}
@@ -4,8 +4,9 @@ SHintPopper {
4
4
  top: 0;
5
5
  left: 0;
6
6
  max-width: 250px;
7
- word-break: break-all;
8
- visibility: hidden;
7
+ overflow-wrap: break-word;
8
+ opacity: 0;
9
+ pointer-events: none;
9
10
 
10
11
  background: var(--intergalactic-tooltip-invert, #191b23);
11
12
  border: 1px solid var(--intergalactic-border-tooltip-invert, #6c6e79);
@@ -167,17 +167,30 @@ class EllipsisManager {
167
167
  }
168
168
  }
169
169
  handleCopy(event) {
170
- var _a, _b;
170
+ var _a, _b, _c;
171
171
  if (event instanceof ClipboardEvent && event.target instanceof HTMLElement && event.target.parentElement instanceof HTMLElement) {
172
172
  const selection = window.getSelection();
173
- const ellipsis = this.ellipsisEntities.get(event.target.parentElement);
173
+ let ellipsis = this.ellipsisEntities.get(event.target);
174
+ if (event.target.getAttribute("aria-hidden") === "true") {
175
+ ellipsis = this.ellipsisEntities.get(event.target.parentElement);
176
+ }
174
177
  if (selection && ellipsis) {
175
178
  const ellipsisSpans = ellipsis.element.childNodes;
176
179
  const croppedSpan = ellipsisSpans[0];
180
+ const lastSpan = ellipsisSpans[ellipsisSpans.length - 2];
177
181
  const fullSpan = ellipsisSpans[ellipsisSpans.length - 1];
178
- const isCroppedSelected = selection.anchorNode === (croppedSpan == null ? void 0 : croppedSpan.childNodes[0]) && selection.focusOffset === ((_a = croppedSpan == null ? void 0 : croppedSpan.textContent) == null ? void 0 : _a.length) || selection.focusNode === (croppedSpan == null ? void 0 : croppedSpan.childNodes[0]) && selection.focusOffset === 0;
179
- const isFullSelected = selection.focusNode === (fullSpan == null ? void 0 : fullSpan.childNodes[0]) && selection.focusOffset === ((_b = fullSpan == null ? void 0 : fullSpan.textContent) == null ? void 0 : _b.length);
182
+ const croppedLength = (_a = croppedSpan == null ? void 0 : croppedSpan.textContent) == null ? void 0 : _a.length;
183
+ const lastLength = (_b = lastSpan == null ? void 0 : lastSpan.textContent) == null ? void 0 : _b.length;
184
+ const anchorInCropped = selection.anchorNode === (croppedSpan == null ? void 0 : croppedSpan.childNodes[0]);
185
+ const anchorInLast = selection.anchorNode === (lastSpan == null ? void 0 : lastSpan.childNodes[0]);
186
+ const focusInCropped = selection.focusNode === (croppedSpan == null ? void 0 : croppedSpan.childNodes[0]);
187
+ const focusInLast = selection.focusNode === (lastSpan == null ? void 0 : lastSpan.childNodes[0]);
188
+ const anchorOffset = selection.anchorOffset;
189
+ const focusOffset = selection.focusOffset;
190
+ const isCroppedSelected = anchorInCropped && focusOffset === croppedLength || anchorInLast && anchorOffset === lastLength && focusInCropped && focusOffset === 0 || focusInLast && focusOffset === lastLength;
191
+ const isFullSelected = selection.focusNode === (fullSpan == null ? void 0 : fullSpan.childNodes[0]) && focusOffset === ((_c = fullSpan == null ? void 0 : fullSpan.textContent) == null ? void 0 : _c.length);
180
192
  if ((fullSpan == null ? void 0 : fullSpan.textContent) && (!(selection.focusNode instanceof Text) || isCroppedSelected || isFullSelected)) {
193
+ event.preventDefault();
181
194
  navigator.clipboard.writeText(fullSpan.textContent);
182
195
  }
183
196
  }
@@ -23,6 +23,5 @@ function InvalidStatePatternComponent() {
23
23
  }
24
24
  const InvalidStateBox = createComponent(InvalidStatePatternComponent);
25
25
  export {
26
- InvalidStateBox,
27
- InvalidStateBox as default
26
+ InvalidStateBox
28
27
  };
@@ -25,6 +25,5 @@ function ScreenReaderOnlyComponent() {
25
25
  }
26
26
  const ScreenReaderOnly = createComponent(ScreenReaderOnlyComponent);
27
27
  export {
28
- ScreenReaderOnly,
29
- ScreenReaderOnly as default
28
+ ScreenReaderOnly
30
29
  };
@@ -53,18 +53,18 @@ const styles = (
53
53
  /*__reshadow_css_start__*/
54
54
  (sstyled.insert(
55
55
  /*__inner_css_start__*/
56
- ".___SHintPopper_1em1a_gg_{width:-moz-max-content;width:max-content;position:absolute;top:0;left:0;max-width:250px;word-break:break-all;visibility:hidden;background:var(--intergalactic-tooltip-invert, #191b23);border:1px solid var(--intergalactic-border-tooltip-invert, #6c6e79);color:var(--intergalactic-text-primary-invert, #ffffff);padding:var(--intergalactic-spacing-1x, 4px) var(--intergalactic-spacing-2x, 8px);border-radius:var(--intergalactic-rounded-small, 4px);font-size:var(--intergalactic-fs-100, 12px);line-height:var(--intergalactic-lh-100, 133%);box-shadow:var(--intergalactic-box-shadow-popper, 0px 1px 12px 0px rgba(25, 27, 35, 0.15));animation-fill-mode:both;animation-timing-function:var(--timingFunction_1em1a);animation-duration:var(--durationFinalize_1em1a);animation-name:var(--keyframesFinalize_1em1a)}.___SHintPopper_1em1a_gg_.__visible_1em1a_gg_{animation-duration:var(--durationInitialize_1em1a);animation-name:var(--keyframesInitialize_1em1a)}@media (prefers-reduced-motion){.___SHintPopper_1em1a_gg_,.___SHintPopper_1em1a_gg_.__visible_1em1a_gg_{animation-timing-function:step-end;animation-iteration-count:1}}",
56
+ ".___SHintPopper_19wzn_gg_{width:-moz-max-content;width:max-content;position:absolute;top:0;left:0;max-width:250px;word-wrap:break-word;opacity:0;pointer-events:none;background:var(--intergalactic-tooltip-invert, #191b23);border:1px solid var(--intergalactic-border-tooltip-invert, #6c6e79);color:var(--intergalactic-text-primary-invert, #ffffff);padding:var(--intergalactic-spacing-1x, 4px) var(--intergalactic-spacing-2x, 8px);border-radius:var(--intergalactic-rounded-small, 4px);font-size:var(--intergalactic-fs-100, 12px);line-height:var(--intergalactic-lh-100, 133%);box-shadow:var(--intergalactic-box-shadow-popper, 0px 1px 12px 0px rgba(25, 27, 35, 0.15));animation-fill-mode:both;animation-timing-function:var(--timingFunction_19wzn);animation-duration:var(--durationFinalize_19wzn);animation-name:var(--keyframesFinalize_19wzn)}.___SHintPopper_19wzn_gg_.__visible_19wzn_gg_{animation-duration:var(--durationInitialize_19wzn);animation-name:var(--keyframesInitialize_19wzn)}@media (prefers-reduced-motion){.___SHintPopper_19wzn_gg_,.___SHintPopper_19wzn_gg_.__visible_19wzn_gg_{animation-timing-function:step-end;animation-iteration-count:1}}",
57
57
  /*__inner_css_end__*/
58
- "1em1a_gg_"
58
+ "19wzn_gg_"
59
59
  ), /*__reshadow_css_end__*/
60
60
  {
61
- "__SHintPopper": "___SHintPopper_1em1a_gg_",
62
- "_visible": "__visible_1em1a_gg_",
63
- "--timingFunction": "--timingFunction_1em1a",
64
- "--durationFinalize": "--durationFinalize_1em1a",
65
- "--keyframesFinalize": "--keyframesFinalize_1em1a",
66
- "--durationInitialize": "--durationInitialize_1em1a",
67
- "--keyframesInitialize": "--keyframesInitialize_1em1a"
61
+ "__SHintPopper": "___SHintPopper_19wzn_gg_",
62
+ "_visible": "__visible_19wzn_gg_",
63
+ "--timingFunction": "--timingFunction_19wzn",
64
+ "--durationFinalize": "--durationFinalize_19wzn",
65
+ "--keyframesFinalize": "--keyframesFinalize_19wzn",
66
+ "--durationInitialize": "--durationInitialize_19wzn",
67
+ "--keyframesInitialize": "--keyframesInitialize_19wzn"
68
68
  })
69
69
  );
70
70
  const enhances = [zIndexStackingEnhance("z-index-tooltip"), cssVariableEnhance({
@@ -99,7 +99,7 @@ class HintPopperRoot extends Component {
99
99
  this.handleMouseLeave = this.handleMouseLeave.bind(this);
100
100
  this.handleKeyDown = this.handleKeyDown.bind(this);
101
101
  this.state = {
102
- innerVisible: props.visible ?? null,
102
+ innerVisible: null,
103
103
  calculatedPlacement: props.placement
104
104
  };
105
105
  }
@@ -109,8 +109,12 @@ class HintPopperRoot extends Component {
109
109
  };
110
110
  }
111
111
  componentDidMount() {
112
- const trigger = this.asProps.triggerRef.current;
113
- if (trigger) {
112
+ const {
113
+ triggerRef,
114
+ children
115
+ } = this.asProps;
116
+ const trigger = triggerRef.current;
117
+ if (trigger && children) {
114
118
  this.subscribe(trigger);
115
119
  }
116
120
  }
@@ -187,7 +191,6 @@ class HintPopperRoot extends Component {
187
191
  left: `${x}px`,
188
192
  top: `${y}px`
189
193
  });
190
- popperElement.style.visibility = "visible";
191
194
  this.setState({
192
195
  innerVisible: true,
193
196
  calculatedPlacement: placement2
@@ -205,44 +208,50 @@ class HintPopperRoot extends Component {
205
208
  if (this.showTimer) {
206
209
  clearTimeout(this.showTimer);
207
210
  }
208
- this.setState({
209
- innerVisible: false
210
- });
211
- this.hideTimer = window.setTimeout(() => {
212
- var _a;
213
- (_a = this.hintRef.current) == null ? void 0 : _a.style.setProperty("visibility", "hidden");
214
- this.handlers.visible(false);
211
+ if (this.state.innerVisible) {
215
212
  this.setState({
216
- innerVisible: null
213
+ innerVisible: false
217
214
  });
218
- }, hideTimeout);
215
+ this.hideTimer = window.setTimeout(() => {
216
+ this.handlers.visible(false);
217
+ this.setState({
218
+ innerVisible: null
219
+ });
220
+ }, hideTimeout);
221
+ }
219
222
  }
220
223
  handleFocus(e) {
221
- if (e.target instanceof HTMLElement && this.asProps.triggerRef.current === e.target && lastInteraction.isKeyboard()) {
224
+ if (this.isCompatibleElement(e.target) && this.sameAsTrigger(e) && lastInteraction.isKeyboard()) {
222
225
  this.showHint(e.target);
223
226
  }
224
227
  }
225
228
  handleBlur(e) {
226
- if (e.target instanceof HTMLElement && this.asProps.triggerRef.current === e.target) {
229
+ if (this.isCompatibleElement(e.target) && this.sameAsTrigger(e)) {
227
230
  this.hideHint();
228
231
  }
229
232
  }
230
233
  handleKeyDown(e) {
231
- if (e.key === "Escape" && e.target instanceof HTMLElement && this.asProps.triggerRef.current === e.target && this.state.innerVisible) {
234
+ if (e.key === "Escape" && this.isCompatibleElement(e.target) && this.sameAsTrigger(e) && this.state.innerVisible) {
232
235
  e.stopPropagation();
233
236
  this.hideHint();
234
237
  }
235
238
  }
236
239
  handleMouseEnter(e) {
237
- if (e.target instanceof HTMLElement && this.asProps.triggerRef.current === e.target) {
240
+ if (this.isCompatibleElement(e.target) && this.sameAsTrigger(e)) {
238
241
  this.showHint(e.target, e);
239
242
  }
240
243
  }
241
244
  handleMouseLeave(e) {
242
- if (e.target instanceof HTMLElement && this.asProps.triggerRef.current === e.target) {
245
+ if (this.isCompatibleElement(e.target) && this.sameAsTrigger(e)) {
243
246
  this.hideHint();
244
247
  }
245
248
  }
249
+ isCompatibleElement(target) {
250
+ return target instanceof HTMLElement || target instanceof SVGElement;
251
+ }
252
+ sameAsTrigger(e) {
253
+ return this.asProps.triggerRef.current === e.target;
254
+ }
246
255
  keyframesKey(placement) {
247
256
  if (!placement) {
248
257
  return "opacity";
@@ -293,7 +302,7 @@ class HintPopperRoot extends Component {
293
302
  if (canUseDOM()) {
294
303
  this.setTriggerAriaLabel();
295
304
  }
296
- if (!visible) {
305
+ if (!visible && innerVisible === null) {
297
306
  return null;
298
307
  }
299
308
  const duration = propToArray(Number(this.asProps.duration));
@@ -308,8 +317,8 @@ class HintPopperRoot extends Component {
308
317
  "durationInitialize": `${duration[0]}ms`,
309
318
  "durationFinalize": `${duration[1]}ms`,
310
319
  "timingFunction": timingFunction,
311
- "keyframesInitialize": keyframes[`@${this.keyframesKey(calculatedPlacement)}-in`],
312
- "keyframesFinalize": keyframes[`@${this.keyframesKey(calculatedPlacement)}-out`],
320
+ "keyframesInitialize": innerVisible === true ? keyframes[`@${this.keyframesKey(calculatedPlacement)}-in`] : void 0,
321
+ "keyframesFinalize": innerVisible === false ? keyframes[`@${this.keyframesKey(calculatedPlacement)}-out`] : void 0,
313
322
  "use:data-ui-name": "Hint"
314
323
  }, _ref)
315
324
  }), /* @__PURE__ */ React.createElement(Children, _ref2.cn("Children", {}))));
@@ -5,10 +5,12 @@ class Middleware {
5
5
  fn(state) {
6
6
  const {
7
7
  rects,
8
- x
8
+ x,
9
+ elements
9
10
  } = state;
11
+ const referenceLeft = elements.reference.getBoundingClientRect().left;
10
12
  return {
11
- x: rects.floating.width > rects.reference.width ? x : mouseCursorPosition.x - rects.floating.width / 2
13
+ x: rects.floating.width > rects.reference.width ? x : referenceLeft > rects.reference.x ? mouseCursorPosition.x - referenceLeft + rects.reference.x - rects.floating.width / 2 : mouseCursorPosition.x - rects.floating.width / 2
12
14
  };
13
15
  }
14
16
  };
@@ -4,8 +4,9 @@ SHintPopper {
4
4
  top: 0;
5
5
  left: 0;
6
6
  max-width: 250px;
7
- word-break: break-all;
8
- visibility: hidden;
7
+ overflow-wrap: break-word;
8
+ opacity: 0;
9
+ pointer-events: none;
9
10
 
10
11
  background: var(--intergalactic-tooltip-invert, #191b23);
11
12
  border: 1px solid var(--intergalactic-border-tooltip-invert, #6c6e79);
@@ -1,5 +1,5 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- import { createComponent, register, Component, assignProps } from "@semcore/core";
2
+ import { createComponent, Component, assignProps, register } from "@semcore/core";
3
3
  import getOriginChildren from "@semcore/core/lib/utils/getOriginChildren";
4
4
  import isNode from "@semcore/core/lib/utils/isNode";
5
5
  import React from "react";
package/lib/esm/index.mjs CHANGED
@@ -1,36 +1,36 @@
1
1
  import { defaultBreakpoints } from "./components/breakpoints/index.mjs";
2
2
  import { Col } from "./components/grid/index.mjs";
3
- import { default as default2 } from "./components/flex-box/Box/useBox.mjs";
4
- import { default as default3 } from "./components/flex-box/Flex/useFlex.mjs";
5
- import { default as default4 } from "./components/grid/Grid.mjs";
3
+ import { default as default2 } from "./components/grid/Grid.mjs";
4
+ import { default as default3 } from "./components/flex-box/Box/useBox.mjs";
5
+ import { default as default4 } from "./components/flex-box/Flex/useFlex.mjs";
6
6
  import { default as default5, animationContext } from "./components/animation/Animation.mjs";
7
- import { default as default6 } from "./components/animation/Transform.mjs";
8
- import { default as default7 } from "./components/animation/FadeInOut.mjs";
9
- import { default as default8 } from "./components/animation/Collapse.mjs";
10
- import { default as default9 } from "./components/animation/Scale.mjs";
11
- import { default as default10 } from "./components/animation/Slide.mjs";
7
+ import { default as default6 } from "./components/flex-box/Box/index.mjs";
8
+ import { default as default7 } from "./components/animation/Collapse.mjs";
12
9
  import { DEFAULT_MEDIA, MediaList, createBreakpoints } from "./components/breakpoints/Breakpoints.mjs";
13
10
  import { Ellipsis } from "./components/ellipsis/Ellipsis.mjs";
14
- import { default as default11 } from "./components/flex-box/Box/index.mjs";
15
- import { default as default12 } from "./components/flex-box/Flex/index.mjs";
16
- import { InvalidStateBox } from "./components/flex-box/invalid-state-box/InvalidStateBox.mjs";
17
- import { ScreenReaderOnly } from "./components/flex-box/screen-reader-only-box/ScreenReaderOnlyBox.mjs";
11
+ import { default as default8 } from "./components/animation/FadeInOut.mjs";
12
+ import { default as default9 } from "./components/flex-box/Flex/index.mjs";
18
13
  import { Hint } from "./components/hint/Hint.mjs";
14
+ import { InvalidStateBox } from "./components/flex-box/invalid-state-box/InvalidStateBox.mjs";
19
15
  import { NeighborLocation, NeighborLocationRoot, useNeighborLocationDetect } from "./components/neighbor-location/NeighborLocation.mjs";
20
16
  import { OutsideClick } from "./components/outside-click/OutsideClick.mjs";
21
17
  import { Popper, isInputTriggerTag } from "./components/popper/Popper.mjs";
22
- import { default as default13, PortalContext, PortalProvider } from "./components/portal/Portal.mjs";
18
+ import { default as default10, PortalContext, PortalProvider } from "./components/portal/Portal.mjs";
19
+ import { default as default11 } from "./components/animation/Scale.mjs";
20
+ import { ScreenReaderOnly } from "./components/flex-box/screen-reader-only-box/ScreenReaderOnlyBox.mjs";
23
21
  import { ScrollArea, eventCalculate } from "./components/scroll-area/ScrollArea.mjs";
22
+ import { default as default12 } from "./components/animation/Slide.mjs";
23
+ import { default as default13 } from "./components/animation/Transform.mjs";
24
24
  import { hideScrollBarsFromScreenReadersContext } from "./components/scroll-area/ScrollBar.mjs";
25
25
  export {
26
26
  default5 as Animation,
27
- default11 as Box,
27
+ default6 as Box,
28
28
  Col,
29
- default8 as Collapse,
29
+ default7 as Collapse,
30
30
  DEFAULT_MEDIA,
31
31
  Ellipsis,
32
- default7 as FadeInOut,
33
- default12 as Flex,
32
+ default8 as FadeInOut,
33
+ default9 as Flex,
34
34
  Hint,
35
35
  InvalidStateBox,
36
36
  MediaList,
@@ -38,22 +38,22 @@ export {
38
38
  NeighborLocationRoot,
39
39
  OutsideClick,
40
40
  Popper,
41
- default13 as Portal,
41
+ default10 as Portal,
42
42
  PortalContext,
43
43
  PortalProvider,
44
- default4 as Row,
45
- default9 as Scale,
44
+ default2 as Row,
45
+ default11 as Scale,
46
46
  ScreenReaderOnly,
47
47
  ScrollArea,
48
- default10 as Slide,
49
- default6 as Transform,
48
+ default12 as Slide,
49
+ default13 as Transform,
50
50
  animationContext,
51
51
  createBreakpoints,
52
52
  defaultBreakpoints,
53
53
  eventCalculate,
54
54
  hideScrollBarsFromScreenReadersContext,
55
55
  isInputTriggerTag,
56
- default2 as useBox,
57
- default3 as useFlex,
56
+ default3 as useBox,
57
+ default4 as useFlex,
58
58
  useNeighborLocationDetect
59
59
  };