@semcore/tab-line 4.40.2 → 4.40.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
+ ## [4.40.3] - 2025-05-09
6
+
7
+ ### Changed
8
+
9
+ - Version patch update due to children dependencies update (`@semcore/flex-box` [5.41.2 ~> 5.41.3], `@semcore/neighbor-location` [4.40.2 ~> 4.40.3], `@semcore/utils` [4.48.2 ~> 4.48.4], `@semcore/core` [2.39.2 ~> 2.39.3]).
10
+
5
11
  ## [4.40.2] - 2025-04-04
6
12
 
7
13
  ### Changed
@@ -21,20 +21,22 @@ var _addonTextChildren = _interopRequireDefault(require("@semcore/utils/lib/addo
21
21
  var _keyboardFocusEnhance = _interopRequireDefault(require("@semcore/utils/lib/enhances/keyboardFocusEnhance"));
22
22
  var _a11yEnhance = _interopRequireDefault(require("@semcore/utils/lib/enhances/a11yEnhance"));
23
23
  var _neighborLocation = _interopRequireDefault(require("@semcore/neighbor-location"));
24
- /*__reshadow-styles__:"./style/tab-line.shadow.css"*/
25
- var style = ( /*__reshadow_css_start__*/_index.sstyled.insert( /*__inner_css_start__*/".___STabLine_xoas8_gg_{position:relative;display:flex;width:100%;max-width:100%}.___STabLine_xoas8_gg_.__underlined_xoas8_gg_{border-bottom:1px solid var(--intergalactic-border-primary, #c4c7cf)}.___STabLineItem_xoas8_gg_{display:inline-flex;align-items:center;justify-content:center;position:relative;touch-action:manipulation;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;box-sizing:border-box;padding:0;margin:0;box-shadow:none;-webkit-text-decoration:none;text-decoration:none;-webkit-tap-highlight-color:transparent;overflow:visible;outline:0;text-align:center;vertical-align:middle;font-family:inherit;cursor:pointer;border:0;background:0 0;color:var(--intergalactic-text-primary, #191b23);margin-right:var(--intergalactic-spacing-4x, 16px);font-weight:var(--intergalactic-medium, 500)}.___STabLineItem_xoas8_gg_::-moz-focus-inner{border:0;padding:0}.___STabLineItem_xoas8_gg_:active,.___STabLineItem_xoas8_gg_:focus{outline:0;-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___STabLineItem_xoas8_gg_:hover{outline:0;-webkit-text-decoration:none;text-decoration:none}}.___STabLineItem_xoas8_gg_::after,.___STabLineItem_xoas8_gg_::before{content:\"\";position:absolute;left:0;bottom:-1px;height:3px;width:100%;background-color:transparent}.___STabLineItem_xoas8_gg_::before{transition:background-color calc(var(--intergalactic-duration-control, 200)*1ms) ease-in-out}@media (hover:hover){.___STabLineItem_xoas8_gg_:hover::before{background-color:var(--intergalactic-border-primary, #c4c7cf)}}.___STabLineItem_xoas8_gg_.__selected_xoas8_gg_::after{transition-delay:calc(var(--intergalactic-duration-control, 200)*1ms);background-color:var(--intergalactic-border-info-active, #006dca)}.___STabLineItem_xoas8_gg_ .___SAddon_xoas8_gg_:not(:last-child),.___STabLineItem_xoas8_gg_ .___SText_xoas8_gg_:not(:last-child){margin-right:var(--intergalactic-spacing-2x, 8px)}.___SCaret_xoas8_gg_{position:absolute;bottom:-1px;height:3px;background-color:var(--intergalactic-border-info-active, #006dca);transition:calc(var(--intergalactic-duration-control, 200)*1ms) all ease-in-out}.___STabLineItem_xoas8_gg_.__selected_xoas8_gg_{flex-shrink:0}.___STabLineItem_xoas8_gg_.__disabled_xoas8_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none}.___STabLineItem_xoas8_gg_.__keyboardFocused_xoas8_gg_{box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5))}.___SText_xoas8_gg_{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.___SAddon_xoas8_gg_{display:inline-flex;align-items:center;justify-content:center}.___STabLineItem_xoas8_gg_._size_m_xoas8_gg_{height:28px;min-width:18px}.___STabLineItem_xoas8_gg_._size_m_xoas8_gg_ .___SText_xoas8_gg_{font-size:var(--intergalactic-fs-200, 14px);line-height:var(--intergalactic-lh-200, 142%)}.___STabLineItem_xoas8_gg_._size_l_xoas8_gg_{height:40px;min-width:26px}.___STabLineItem_xoas8_gg_._size_l_xoas8_gg_ .___SText_xoas8_gg_{font-size:var(--intergalactic-fs-300, 16px);line-height:var(--intergalactic-lh-300, 150%)}.___STabLineItem_xoas8_gg_._neighborLocation_left_xoas8_gg_{margin-right:0}@media (prefers-reduced-motion){.___STabLineItem_xoas8_gg_.__selected_xoas8_gg_::after,.___STabLineItem_xoas8_gg_::after,.___STabLineItem_xoas8_gg_::before{transition:none}.___SCaret_xoas8_gg_{display:none}}" /*__inner_css_end__*/, "xoas8_gg_") /*__reshadow_css_end__*/, {
26
- "__STabLine": "___STabLine_xoas8_gg_",
27
- "_underlined": "__underlined_xoas8_gg_",
28
- "__SCaret": "___SCaret_xoas8_gg_",
29
- "__STabLineItem": "___STabLineItem_xoas8_gg_",
30
- "_selected": "__selected_xoas8_gg_",
31
- "_disabled": "__disabled_xoas8_gg_",
32
- "_keyboardFocused": "__keyboardFocused_xoas8_gg_",
33
- "__SText": "___SText_xoas8_gg_",
34
- "__SAddon": "___SAddon_xoas8_gg_",
35
- "_neighborLocation_left": "_neighborLocation_left_xoas8_gg_",
36
- "_size_m": "_size_m_xoas8_gg_",
37
- "_size_l": "_size_l_xoas8_gg_"
24
+ /*!__reshadow-styles__:"./style/tab-line.shadow.css"*/
25
+ var style = ( /*__reshadow_css_start__*/_index.sstyled.insert( /*__inner_css_start__*/".___STabLine_aog65_gg_{position:relative;display:flex;width:100%;max-width:100%}.___STabLine_aog65_gg_.__underlined_aog65_gg_{border-bottom:1px solid var(--intergalactic-border-primary, #c4c7cf)}.___STabLineItem_aog65_gg_{display:inline-flex;align-items:center;justify-content:center;position:relative;touch-action:manipulation;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;box-sizing:border-box;padding:0;margin:0;box-shadow:none;-webkit-text-decoration:none;text-decoration:none;-webkit-tap-highlight-color:transparent;overflow:visible;outline:0;text-align:center;vertical-align:middle;font-family:inherit;cursor:pointer;border:0;background:0 0;color:var(--intergalactic-text-primary, #191b23);margin-right:var(--intergalactic-spacing-4x, 16px);font-weight:var(--intergalactic-medium, 500)}.___STabLineItem_aog65_gg_::-moz-focus-inner{border:0;padding:0}.___STabLineItem_aog65_gg_:active,.___STabLineItem_aog65_gg_:focus{outline:0;-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___STabLineItem_aog65_gg_:hover{outline:0;-webkit-text-decoration:none;text-decoration:none}}.___STabLineItem_aog65_gg_::after,.___STabLineItem_aog65_gg_::before{content:\"\";position:absolute;left:0;bottom:-1px;height:3px;width:100%;background-color:transparent}.___STabLineItem_aog65_gg_::before{transition:background-color calc(var(--intergalactic-duration-control, 200)*1ms) ease-in-out}@media (hover:hover){.___STabLineItem_aog65_gg_:hover::before{background-color:var(--intergalactic-border-primary, #c4c7cf)}}.___STabLineItem_aog65_gg_.__selected_aog65_gg_::after{transition-delay:calc(var(--intergalactic-duration-control, 200)*1ms);background-color:var(--intergalactic-border-info-active, #006dca)}.___STabLineItem_aog65_gg_ .___SAddon_aog65_gg_:not(:last-child),.___STabLineItem_aog65_gg_ .___SText_aog65_gg_:not(:last-child){margin-right:var(--intergalactic-spacing-2x, 8px)}.___SCaret_aog65_gg_{position:absolute;bottom:-1px;height:3px;background-color:var(--intergalactic-border-info-active, #006dca);transition:calc(var(--intergalactic-duration-control, 200)*1ms) all ease-in-out}.___STabLineItem_aog65_gg_.__selected_aog65_gg_{flex-shrink:0}.___STabLineItem_aog65_gg_.__disabled_aog65_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none}.___STabLineItem_aog65_gg_.__keyboardFocused_aog65_gg_{box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5))}.___SText_aog65_gg_{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.___SAddon_aog65_gg_{display:inline-flex;align-items:center;justify-content:center}.___STabLineItem_aog65_gg_._size_m_aog65_gg_{height:28px;min-width:18px}.___STabLineItem_aog65_gg_._size_m_aog65_gg_ .___SText_aog65_gg_{font-size:var(--intergalactic-fs-200, 14px);line-height:var(--intergalactic-lh-200, 142%)}.___STabLineItem_aog65_gg_._size_l_aog65_gg_{height:40px;min-width:26px}.___STabLineItem_aog65_gg_._size_l_aog65_gg_ .___SText_aog65_gg_{font-size:var(--intergalactic-fs-300, 16px);line-height:var(--intergalactic-lh-300, 150%)}.___STabLineItem_aog65_gg_._neighborLocation_left_aog65_gg_{margin-right:0}@media (prefers-reduced-motion){.___STabLineItem_aog65_gg_.__selected_aog65_gg_::after,.___STabLineItem_aog65_gg_::after,.___STabLineItem_aog65_gg_::before{transition:none}.___SCaret_aog65_gg_{display:none}}", /*__inner_css_end__*/"aog65_gg_"),
26
+ /*__reshadow_css_end__*/
27
+ {
28
+ "__STabLine": "___STabLine_aog65_gg_",
29
+ "_underlined": "__underlined_aog65_gg_",
30
+ "__SCaret": "___SCaret_aog65_gg_",
31
+ "__STabLineItem": "___STabLineItem_aog65_gg_",
32
+ "_selected": "__selected_aog65_gg_",
33
+ "_disabled": "__disabled_aog65_gg_",
34
+ "_keyboardFocused": "__keyboardFocused_aog65_gg_",
35
+ "__SText": "___SText_aog65_gg_",
36
+ "__SAddon": "___SAddon_aog65_gg_",
37
+ "_neighborLocation_left": "_neighborLocation_left_aog65_gg_",
38
+ "_size_m": "_size_m_aog65_gg_",
39
+ "_size_l": "_size_l_aog65_gg_"
38
40
  });
39
41
  var optionsA11yEnhance = {
40
42
  onNeighborChange: function onNeighborChange(neighborElement, props) {
@@ -1 +1 @@
1
- {"version":3,"file":"TabLine.js","names":["_core","_interopRequireWildcard","require","_react","_interopRequireDefault","_flexBox","_addonTextChildren","_keyboardFocusEnhance","_a11yEnhance","_neighborLocation","style","_index","sstyled","insert","optionsA11yEnhance","onNeighborChange","neighborElement","props","focus","behavior","click","childSelector","TabLineRoot","_Component","_inherits2","_super","_createSuper2","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty2","_assertThisInitialized2","animation","undefined","React","createRef","_this$state$animation","state","started","setState","_objectSpread2","value","e","handlers","_createClass2","key","uncontrolledProps","componentDidUpdate","prevValue","asProps","animate","componentDidMount","componentWillUnmount","clearTimeout","animationStartTimeout","fromNode","itemRefs","toNode","containerNode","containerRef","current","containerRect","getBoundingClientRect","fromRect","toRect","fromLeft","x","fromWidth","width","toLeft","toWidth","setTimeout","handleAnimationStart","getItemProps","index","_this2","_this$asProps","size","isSelected","selected","onClick","bindHandlerClick","tabIndex","ref","node","getCaretProps","left","onTransitionEnd","handleAnimationEnd","render","_ref","_ref5","STabLine","Box","SCaret","_this$asProps2","styles","Children","controlsLength","createElement","cn","assignProps","Component","defaultValue","underlined","a11yEnhance","TabLineItem","_ref2","arguments[0]","STabLineItem","addonLeft","addonRight","neighborLocation","Detect","_ref6","TabLine","Item","Addon","tag","addonTextChildren","Text","enhance","keyboardFocusEnhance","_ref3","_ref7","SText","_ref4","_ref8","SAddon","createComponent","wrapTabLine","wrapper","exports","_default"],"sources":["../../src/TabLine.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport addonTextChildren from '@semcore/utils/lib/addonTextChildren';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport a11yEnhance from '@semcore/utils/lib/enhances/a11yEnhance';\nimport NeighborLocation from '@semcore/neighbor-location';\n\nimport style from './style/tab-line.shadow.css';\n\nconst optionsA11yEnhance = {\n onNeighborChange: (neighborElement, props) => {\n if (neighborElement) {\n neighborElement.focus();\n if (props.behavior === 'auto') {\n neighborElement.click();\n }\n }\n },\n childSelector: ['role', 'tab'],\n};\n\nclass TabLineRoot extends Component {\n static displayName = 'TabLine';\n static style = style;\n static defaultProps = {\n defaultValue: null,\n size: 'm',\n underlined: true,\n behavior: 'auto',\n };\n static enhance = [a11yEnhance(optionsA11yEnhance)];\n state = { animation: null };\n prevValue = undefined;\n itemRefs = {};\n containerRef = React.createRef();\n animationStartTimeout = -1;\n\n uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n componentDidUpdate() {\n if (\n this.prevValue !== null &&\n this.asProps.value !== null &&\n this.prevValue !== this.asProps.value\n ) {\n this.animate();\n }\n this.prevValue = this.asProps.value;\n }\n componentDidMount() {\n this.prevValue = this.asProps.value;\n }\n componentWillUnmount() {\n clearTimeout(this.animationStartTimeout);\n }\n\n animate() {\n const fromNode = this.itemRefs[this.prevValue];\n const toNode = this.itemRefs[this.asProps.value];\n const containerNode = this.containerRef.current;\n\n if (!fromNode || !toNode || !containerNode) return;\n const containerRect = containerNode.getBoundingClientRect();\n const fromRect = fromNode.getBoundingClientRect();\n const toRect = toNode.getBoundingClientRect();\n const animation = {\n fromLeft: fromRect.x - containerRect.x,\n fromWidth: fromRect.width,\n toLeft: toRect.x - containerRect.x,\n toWidth: toRect.width,\n started: false,\n };\n this.setState({ animation });\n clearTimeout(this.animationStartTimeout);\n this.animationStartTimeout = setTimeout(this.handleAnimationStart, 0);\n }\n\n handleAnimationStart = () => {\n if (this.state.animation?.started === false) {\n this.setState({ animation: { ...this.state.animation, started: true } });\n }\n };\n handleAnimationEnd = () => {\n this.setState({ animation: null });\n };\n\n bindHandlerClick = (value) => (e) => {\n this.handlers.value(value, e);\n };\n\n getItemProps(props, index) {\n const { value, size } = this.asProps;\n const isSelected = value === props.value;\n return {\n size,\n selected: isSelected,\n onClick: this.bindHandlerClick(props.value),\n tabIndex: isSelected ? 0 : -1,\n 'aria-selected': isSelected,\n ref: (node) => {\n this.itemRefs[props.value] = node;\n },\n };\n }\n\n getCaretProps() {\n const { animation } = this.state;\n if (!animation) return {};\n if (animation.started) {\n return {\n style: {\n left: animation.toLeft,\n width: animation.toWidth,\n },\n onTransitionEnd: this.handleAnimationEnd,\n };\n } else {\n return {\n style: {\n left: animation.fromLeft,\n width: animation.fromWidth,\n },\n onTransitionEnd: this.handleAnimationEnd,\n };\n }\n }\n\n render() {\n const STabLine = Root;\n const SCaret = 'div';\n const { styles, Children, controlsLength } = this.asProps;\n const { animation } = this.state;\n\n return sstyled(styles)(\n <STabLine render={Box} role='tablist' ref={this.containerRef}>\n <NeighborLocation controlsLength={controlsLength}>\n <Children />\n </NeighborLocation>\n {animation && <SCaret {...this.getCaretProps()} />}\n </STabLine>,\n );\n }\n}\n\nfunction TabLineItem(props) {\n const STabLineItem = Root;\n const { Children, styles, addonLeft, addonRight, neighborLocation } = props;\n\n return (\n <NeighborLocation.Detect neighborLocation={neighborLocation}>\n {(neighborLocation) =>\n sstyled(styles)(\n <STabLineItem\n render={Box}\n tag='button'\n neighborLocation={neighborLocation}\n type='button'\n role='tab'\n >\n {addonLeft ? <TabLine.Item.Addon tag={addonLeft} /> : null}\n {addonTextChildren(Children, TabLine.Item.Text, TabLine.Item.Addon)}\n {addonRight ? <TabLine.Item.Addon tag={addonRight} /> : null}\n </STabLineItem>,\n )\n }\n </NeighborLocation.Detect>\n );\n}\n\nTabLineItem.enhance = [keyboardFocusEnhance()];\n\nfunction Text(props) {\n const { styles } = props;\n const SText = Root;\n return sstyled(styles)(<SText render={Box} tag='span' />);\n}\n\nfunction Addon(props) {\n const { styles } = props;\n const SAddon = Root;\n return sstyled(styles)(<SAddon render={Box} tag='span' />);\n}\n\nconst TabLine = createComponent(TabLineRoot, {\n Item: [TabLineItem, { Text, Addon }],\n});\n\nexport const wrapTabLine = (wrapper) => wrapper;\n\nexport default TabLine;\n"],"mappings":";;;;;;;;;;;;;;;;AACA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AADA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,kBAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,qBAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,YAAA,GAAAJ,sBAAA,CAAAF,OAAA;AACA,IAAAO,iBAAA,GAAAL,sBAAA,CAAAF,OAAA;AAA0D;AAAA,IAAAQ,KAAA,+BAAAC,MAAA,CAAAC,OAAA,CAAAC,MAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAI1D,IAAMC,kBAAkB,GAAG;EACzBC,gBAAgB,EAAE,SAAAA,iBAACC,eAAe,EAAEC,KAAK,EAAK;IAC5C,IAAID,eAAe,EAAE;MACnBA,eAAe,CAACE,KAAK,EAAE;MACvB,IAAID,KAAK,CAACE,QAAQ,KAAK,MAAM,EAAE;QAC7BH,eAAe,CAACI,KAAK,EAAE;MACzB;IACF;EACF,CAAC;EACDC,aAAa,EAAE,CAAC,MAAM,EAAE,KAAK;AAC/B,CAAC;AAAC,IAEIC,WAAW,0BAAAC,UAAA;EAAA,IAAAC,UAAA,aAAAF,WAAA,EAAAC,UAAA;EAAA,IAAAE,MAAA,OAAAC,aAAA,aAAAJ,WAAA;EAAA,SAAAA,YAAA;IAAA,IAAAK,KAAA;IAAA,IAAAC,gBAAA,mBAAAN,WAAA;IAAA,SAAAO,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;MAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;IAAA;IAAAP,KAAA,GAAAF,MAAA,CAAAU,IAAA,CAAAC,KAAA,CAAAX,MAAA,SAAAY,MAAA,CAAAL,IAAA;IAAA,IAAAM,gBAAA,iBAAAC,uBAAA,aAAAZ,KAAA,YAUP;MAAEa,SAAS,EAAE;IAAK,CAAC;IAAA,IAAAF,gBAAA,iBAAAC,uBAAA,aAAAZ,KAAA,gBACfc,SAAS;IAAA,IAAAH,gBAAA,iBAAAC,uBAAA,aAAAZ,KAAA,eACV,CAAC,CAAC;IAAA,IAAAW,gBAAA,iBAAAC,uBAAA,aAAAZ,KAAA,gCACEe,iBAAK,CAACC,SAAS,EAAE;IAAA,IAAAL,gBAAA,iBAAAC,uBAAA,aAAAZ,KAAA,4BACR,CAAC,CAAC;IAAA,IAAAW,gBAAA,iBAAAC,uBAAA,aAAAZ,KAAA,2BA8CH,YAAM;MAAA,IAAAiB,qBAAA;MAC3B,IAAI,EAAAA,qBAAA,GAAAjB,KAAA,CAAKkB,KAAK,CAACL,SAAS,cAAAI,qBAAA,uBAApBA,qBAAA,CAAsBE,OAAO,MAAK,KAAK,EAAE;QAC3CnB,KAAA,CAAKoB,QAAQ,CAAC;UAAEP,SAAS,MAAAQ,cAAA,iBAAAA,cAAA,iBAAOrB,KAAA,CAAKkB,KAAK,CAACL,SAAS;YAAEM,OAAO,EAAE;UAAI;QAAG,CAAC,CAAC;MAC1E;IACF,CAAC;IAAA,IAAAR,gBAAA,iBAAAC,uBAAA,aAAAZ,KAAA,yBACoB,YAAM;MACzBA,KAAA,CAAKoB,QAAQ,CAAC;QAAEP,SAAS,EAAE;MAAK,CAAC,CAAC;IACpC,CAAC;IAAA,IAAAF,gBAAA,iBAAAC,uBAAA,aAAAZ,KAAA,uBAEkB,UAACsB,KAAK;MAAA,OAAK,UAACC,CAAC,EAAK;QACnCvB,KAAA,CAAKwB,QAAQ,CAACF,KAAK,CAACA,KAAK,EAAEC,CAAC,CAAC;MAC/B,CAAC;IAAA;IAAA,OAAAvB,KAAA;EAAA;EAAA,IAAAyB,aAAA,aAAA9B,WAAA;IAAA+B,GAAA;IAAAJ,KAAA,EAvDD,SAAAK,kBAAA,EAAoB;MAClB,OAAO;QACLL,KAAK,EAAE;MACT,CAAC;IACH;EAAC;IAAAI,GAAA;IAAAJ,KAAA,EAED,SAAAM,mBAAA,EAAqB;MACnB,IACE,IAAI,CAACC,SAAS,KAAK,IAAI,IACvB,IAAI,CAACC,OAAO,CAACR,KAAK,KAAK,IAAI,IAC3B,IAAI,CAACO,SAAS,KAAK,IAAI,CAACC,OAAO,CAACR,KAAK,EACrC;QACA,IAAI,CAACS,OAAO,EAAE;MAChB;MACA,IAAI,CAACF,SAAS,GAAG,IAAI,CAACC,OAAO,CAACR,KAAK;IACrC;EAAC;IAAAI,GAAA;IAAAJ,KAAA,EACD,SAAAU,kBAAA,EAAoB;MAClB,IAAI,CAACH,SAAS,GAAG,IAAI,CAACC,OAAO,CAACR,KAAK;IACrC;EAAC;IAAAI,GAAA;IAAAJ,KAAA,EACD,SAAAW,qBAAA,EAAuB;MACrBC,YAAY,CAAC,IAAI,CAACC,qBAAqB,CAAC;IAC1C;EAAC;IAAAT,GAAA;IAAAJ,KAAA,EAED,SAAAS,QAAA,EAAU;MACR,IAAMK,QAAQ,GAAG,IAAI,CAACC,QAAQ,CAAC,IAAI,CAACR,SAAS,CAAC;MAC9C,IAAMS,MAAM,GAAG,IAAI,CAACD,QAAQ,CAAC,IAAI,CAACP,OAAO,CAACR,KAAK,CAAC;MAChD,IAAMiB,aAAa,GAAG,IAAI,CAACC,YAAY,CAACC,OAAO;MAE/C,IAAI,CAACL,QAAQ,IAAI,CAACE,MAAM,IAAI,CAACC,aAAa,EAAE;MAC5C,IAAMG,aAAa,GAAGH,aAAa,CAACI,qBAAqB,EAAE;MAC3D,IAAMC,QAAQ,GAAGR,QAAQ,CAACO,qBAAqB,EAAE;MACjD,IAAME,MAAM,GAAGP,MAAM,CAACK,qBAAqB,EAAE;MAC7C,IAAM9B,SAAS,GAAG;QAChBiC,QAAQ,EAAEF,QAAQ,CAACG,CAAC,GAAGL,aAAa,CAACK,CAAC;QACtCC,SAAS,EAAEJ,QAAQ,CAACK,KAAK;QACzBC,MAAM,EAAEL,MAAM,CAACE,CAAC,GAAGL,aAAa,CAACK,CAAC;QAClCI,OAAO,EAAEN,MAAM,CAACI,KAAK;QACrB9B,OAAO,EAAE;MACX,CAAC;MACD,IAAI,CAACC,QAAQ,CAAC;QAAEP,SAAS,EAATA;MAAU,CAAC,CAAC;MAC5BqB,YAAY,CAAC,IAAI,CAACC,qBAAqB,CAAC;MACxC,IAAI,CAACA,qBAAqB,GAAGiB,UAAU,CAAC,IAAI,CAACC,oBAAoB,EAAE,CAAC,CAAC;IACvE;EAAC;IAAA3B,GAAA;IAAAJ,KAAA,EAeD,SAAAgC,aAAahE,KAAK,EAAEiE,KAAK,EAAE;MAAA,IAAAC,MAAA;MACzB,IAAAC,aAAA,GAAwB,IAAI,CAAC3B,OAAO;QAA5BR,KAAK,GAAAmC,aAAA,CAALnC,KAAK;QAAEoC,IAAI,GAAAD,aAAA,CAAJC,IAAI;MACnB,IAAMC,UAAU,GAAGrC,KAAK,KAAKhC,KAAK,CAACgC,KAAK;MACxC,OAAO;QACLoC,IAAI,EAAJA,IAAI;QACJE,QAAQ,EAAED,UAAU;QACpBE,OAAO,EAAE,IAAI,CAACC,gBAAgB,CAACxE,KAAK,CAACgC,KAAK,CAAC;QAC3CyC,QAAQ,EAAEJ,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,eAAe,EAAEA,UAAU;QAC3BK,GAAG,EAAE,SAAAA,IAACC,IAAI,EAAK;UACbT,MAAI,CAACnB,QAAQ,CAAC/C,KAAK,CAACgC,KAAK,CAAC,GAAG2C,IAAI;QACnC;MACF,CAAC;IACH;EAAC;IAAAvC,GAAA;IAAAJ,KAAA,EAED,SAAA4C,cAAA,EAAgB;MACd,IAAQrD,SAAS,GAAK,IAAI,CAACK,KAAK,CAAxBL,SAAS;MACjB,IAAI,CAACA,SAAS,EAAE,OAAO,CAAC,CAAC;MACzB,IAAIA,SAAS,CAACM,OAAO,EAAE;QACrB,OAAO;UACLpC,KAAK,EAAE;YACLoF,IAAI,EAAEtD,SAAS,CAACqC,MAAM;YACtBD,KAAK,EAAEpC,SAAS,CAACsC;UACnB,CAAC;UACDiB,eAAe,EAAE,IAAI,CAACC;QACxB,CAAC;MACH,CAAC,MAAM;QACL,OAAO;UACLtF,KAAK,EAAE;YACLoF,IAAI,EAAEtD,SAAS,CAACiC,QAAQ;YACxBG,KAAK,EAAEpC,SAAS,CAACmC;UACnB,CAAC;UACDoB,eAAe,EAAE,IAAI,CAACC;QACxB,CAAC;MACH;IACF;EAAC;IAAA3C,GAAA;IAAAJ,KAAA,EAED,SAAAgD,OAAA,EAAS;MAAA,IAAAC,IAAA,QAAAzC,OAAA;QAAA0C,KAAA;MACP,IAAMC,QAAQ,GAMMC,YAAG;MALvB,IAAMC,MAAM,GAAG,KAAK;MACpB,IAAAC,cAAA,GAA6C,IAAI,CAAC9C,OAAO;QAAjD+C,MAAM,GAAAD,cAAA,CAANC,MAAM;QAAEC,QAAQ,GAAAF,cAAA,CAARE,QAAQ;QAAEC,cAAc,GAAAH,cAAA,CAAdG,cAAc;MACxC,IAAQlE,SAAS,GAAK,IAAI,CAACK,KAAK,CAAxBL,SAAS;MAEjB,OAAA2D,KAAA,GAAO,IAAAvF,aAAO,EAAC4F,MAAM,CAAC,eACpBrG,MAAA,YAAAwG,aAAA,CAACP,QAAQ,EAAAD,KAAA,CAAAS,EAAA,iBAAA5D,cAAA,qBAAAhD,KAAA,CAAA6G,WAAA;QAAA,QAAmB,SAAS;QAAA,OAAM,IAAI,CAAC1C;MAAY,GAAA+B,IAAA,kBAC1D/F,MAAA,YAAAwG,aAAA,CAAClG,iBAAA,WAAgB,EAAA0F,KAAA,CAAAS,EAAA;QAAA,kBAAiBF;MAAc,iBAC9CvG,MAAA,YAAAwG,aAAA,CAACF,QAAQ,EAAAN,KAAA,CAAAS,EAAA,iBAAG,CACK,EAClBpE,SAAS,iBAAIrC,MAAA,YAAAwG,aAAA,CAACL,MAAM,EAAAH,KAAA,CAAAS,EAAA,eAAA5D,cAAA,iBAAK,IAAI,CAAC6C,aAAa,EAAE,GAAI,CACzC;IAEf;EAAC;EAAA,OAAAvE,WAAA;AAAA,EA5HuBwF,eAAS;AAAA,IAAAxE,gBAAA,aAA7BhB,WAAW,iBACM,SAAS;AAAA,IAAAgB,gBAAA,aAD1BhB,WAAW,WAEAZ,KAAK;AAAA,IAAA4B,gBAAA,aAFhBhB,WAAW,kBAGO;EACpByF,YAAY,EAAE,IAAI;EAClB1B,IAAI,EAAE,GAAG;EACT2B,UAAU,EAAE,IAAI;EAChB7F,QAAQ,EAAE;AACZ,CAAC;AAAA,IAAAmB,gBAAA,aARGhB,WAAW,aASE,CAAC,IAAA2F,uBAAW,EAACnG,kBAAkB,CAAC,CAAC;AAsHpD,SAASoG,WAAWA,CAACjG,KAAK,EAAE;EAAA,IAAAkG,KAAA,GAAAC,YAAA;EAC1B,IAAMC,YAAY,GAQAhB,YAAG;EAPrB,IAAQI,QAAQ,GAAsDxF,KAAK,CAAnEwF,QAAQ;IAAED,MAAM,GAA8CvF,KAAK,CAAzDuF,MAAM;IAAEc,SAAS,GAAmCrG,KAAK,CAAjDqG,SAAS;IAAEC,UAAU,GAAuBtG,KAAK,CAAtCsG,UAAU;IAAEC,gBAAgB,GAAKvG,KAAK,CAA1BuG,gBAAgB;EAEjE,oBACErH,MAAA,YAAAwG,aAAA,CAAClG,iBAAA,WAAgB,CAACgH,MAAM;IAACD,gBAAgB,EAAEA;EAAiB,GACzD,UAACA,gBAAgB;IAAA,IAAAE,KAAA;IAAA,OAAAA,KAAA,GAChB,IAAA9G,aAAO,EAAC4F,MAAM,CAAC,eACbrG,MAAA,YAAAwG,aAAA,CAACU,YAAY,EAAAK,KAAA,CAAAd,EAAA,qBAAA5D,cAAA,qBAAAhD,KAAA,CAAA6G,WAAA;MAAA,OAEP,QAAQ;MAAA,oBACMW,gBAAgB;MAAA,QAC7B,QAAQ;MAAA,QACR;IAAK,GAAAL,KAAA,KAETG,SAAS,gBAAGnH,MAAA,YAAAwG,aAAA,CAACgB,OAAO,CAACC,IAAI,CAACC,KAAK;MAACC,GAAG,EAAER;IAAU,EAAG,GAAG,IAAI,EACzD,IAAAS,6BAAiB,EAACtB,QAAQ,EAAEkB,OAAO,CAACC,IAAI,CAACI,IAAI,EAAEL,OAAO,CAACC,IAAI,CAACC,KAAK,CAAC,EAClEN,UAAU,gBAAGpH,MAAA,YAAAwG,aAAA,CAACgB,OAAO,CAACC,IAAI,CAACC,KAAK;MAACC,GAAG,EAAEP;IAAW,EAAG,GAAG,IAAI,CAC/C;EAAA,CAChB,CAEqB;AAE9B;AAEAL,WAAW,CAACe,OAAO,GAAG,CAAC,IAAAC,gCAAoB,GAAE,CAAC;AAE9C,SAASF,IAAIA,CAAC/G,KAAK,EAAE;EAAA,IAAAkH,KAAA,GAAAf,YAAA;IAAAgB,KAAA;EACnB,IAAQ5B,MAAM,GAAKvF,KAAK,CAAhBuF,MAAM;EACd,IAAM6B,KAAK,GAC2BhC,YAAG;EAAzC,OAAA+B,KAAA,GAAO,IAAAxH,aAAO,EAAC4F,MAAM,CAAC,eAACrG,MAAA,YAAAwG,aAAA,CAAC0B,KAAK,EAAAD,KAAA,CAAAxB,EAAA,cAAA5D,cAAA,qBAAAhD,KAAA,CAAA6G,WAAA;IAAA,OAAkB;EAAM,GAAAsB,KAAA,IAAG;AAC1D;AAEA,SAASN,KAAKA,CAAC5G,KAAK,EAAE;EAAA,IAAAqH,KAAA,GAAAlB,YAAA;IAAAmB,KAAA;EACpB,IAAQ/B,MAAM,GAAKvF,KAAK,CAAhBuF,MAAM;EACd,IAAMgC,MAAM,GAC2BnC,YAAG;EAA1C,OAAAkC,KAAA,GAAO,IAAA3H,aAAO,EAAC4F,MAAM,CAAC,eAACrG,MAAA,YAAAwG,aAAA,CAAC6B,MAAM,EAAAD,KAAA,CAAA3B,EAAA,eAAA5D,cAAA,qBAAAhD,KAAA,CAAA6G,WAAA;IAAA,OAAkB;EAAM,GAAAyB,KAAA,IAAG;AAC3D;AAEA,IAAMX,OAAO,GAAG,IAAAc,gBAAe,EAACnH,WAAW,EAAE;EAC3CsG,IAAI,EAAE,CAACV,WAAW,EAAE;IAAEc,IAAI,EAAJA,IAAI;IAAEH,KAAK,EAALA;EAAM,CAAC;AACrC,CAAC,CAAC;AAEK,IAAMa,WAAW,GAAG,SAAdA,WAAWA,CAAIC,OAAO;EAAA,OAAKA,OAAO;AAAA;AAACC,OAAA,CAAAF,WAAA,GAAAA,WAAA;AAAA,IAAAG,QAAA,GAEjClB,OAAO;AAAAiB,OAAA,cAAAC,QAAA"}
1
+ {"version":3,"file":"TabLine.js","names":["_core","_interopRequireWildcard","require","_react","_interopRequireDefault","_flexBox","_addonTextChildren","_keyboardFocusEnhance","_a11yEnhance","_neighborLocation","style","_index","sstyled","insert","optionsA11yEnhance","onNeighborChange","neighborElement","props","focus","behavior","click","childSelector","TabLineRoot","_Component","_inherits2","_super","_createSuper2","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty2","_assertThisInitialized2","animation","undefined","React","createRef","_this$state$animation","state","started","setState","_objectSpread2","value","e","handlers","_createClass2","key","uncontrolledProps","componentDidUpdate","prevValue","asProps","animate","componentDidMount","componentWillUnmount","clearTimeout","animationStartTimeout","fromNode","itemRefs","toNode","containerNode","containerRef","current","containerRect","getBoundingClientRect","fromRect","toRect","fromLeft","x","fromWidth","width","toLeft","toWidth","setTimeout","handleAnimationStart","getItemProps","index","_this2","_this$asProps","size","isSelected","selected","onClick","bindHandlerClick","tabIndex","ref","node","getCaretProps","left","onTransitionEnd","handleAnimationEnd","render","_ref","_ref5","STabLine","Box","SCaret","_this$asProps2","styles","Children","controlsLength","createElement","cn","assignProps","Component","defaultValue","underlined","a11yEnhance","TabLineItem","_ref2","arguments[0]","STabLineItem","addonLeft","addonRight","neighborLocation","Detect","_ref6","TabLine","Item","Addon","tag","addonTextChildren","Text","enhance","keyboardFocusEnhance","_ref3","_ref7","SText","_ref4","_ref8","SAddon","createComponent","wrapTabLine","wrapper","exports","_default"],"sources":["../../src/TabLine.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport addonTextChildren from '@semcore/utils/lib/addonTextChildren';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport a11yEnhance from '@semcore/utils/lib/enhances/a11yEnhance';\nimport NeighborLocation from '@semcore/neighbor-location';\n\nimport style from './style/tab-line.shadow.css';\n\nconst optionsA11yEnhance = {\n onNeighborChange: (neighborElement, props) => {\n if (neighborElement) {\n neighborElement.focus();\n if (props.behavior === 'auto') {\n neighborElement.click();\n }\n }\n },\n childSelector: ['role', 'tab'],\n};\n\nclass TabLineRoot extends Component {\n static displayName = 'TabLine';\n static style = style;\n static defaultProps = {\n defaultValue: null,\n size: 'm',\n underlined: true,\n behavior: 'auto',\n };\n static enhance = [a11yEnhance(optionsA11yEnhance)];\n state = { animation: null };\n prevValue = undefined;\n itemRefs = {};\n containerRef = React.createRef();\n animationStartTimeout = -1;\n\n uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n componentDidUpdate() {\n if (\n this.prevValue !== null &&\n this.asProps.value !== null &&\n this.prevValue !== this.asProps.value\n ) {\n this.animate();\n }\n this.prevValue = this.asProps.value;\n }\n componentDidMount() {\n this.prevValue = this.asProps.value;\n }\n componentWillUnmount() {\n clearTimeout(this.animationStartTimeout);\n }\n\n animate() {\n const fromNode = this.itemRefs[this.prevValue];\n const toNode = this.itemRefs[this.asProps.value];\n const containerNode = this.containerRef.current;\n\n if (!fromNode || !toNode || !containerNode) return;\n const containerRect = containerNode.getBoundingClientRect();\n const fromRect = fromNode.getBoundingClientRect();\n const toRect = toNode.getBoundingClientRect();\n const animation = {\n fromLeft: fromRect.x - containerRect.x,\n fromWidth: fromRect.width,\n toLeft: toRect.x - containerRect.x,\n toWidth: toRect.width,\n started: false,\n };\n this.setState({ animation });\n clearTimeout(this.animationStartTimeout);\n this.animationStartTimeout = setTimeout(this.handleAnimationStart, 0);\n }\n\n handleAnimationStart = () => {\n if (this.state.animation?.started === false) {\n this.setState({ animation: { ...this.state.animation, started: true } });\n }\n };\n handleAnimationEnd = () => {\n this.setState({ animation: null });\n };\n\n bindHandlerClick = (value) => (e) => {\n this.handlers.value(value, e);\n };\n\n getItemProps(props, index) {\n const { value, size } = this.asProps;\n const isSelected = value === props.value;\n return {\n size,\n selected: isSelected,\n onClick: this.bindHandlerClick(props.value),\n tabIndex: isSelected ? 0 : -1,\n 'aria-selected': isSelected,\n ref: (node) => {\n this.itemRefs[props.value] = node;\n },\n };\n }\n\n getCaretProps() {\n const { animation } = this.state;\n if (!animation) return {};\n if (animation.started) {\n return {\n style: {\n left: animation.toLeft,\n width: animation.toWidth,\n },\n onTransitionEnd: this.handleAnimationEnd,\n };\n } else {\n return {\n style: {\n left: animation.fromLeft,\n width: animation.fromWidth,\n },\n onTransitionEnd: this.handleAnimationEnd,\n };\n }\n }\n\n render() {\n const STabLine = Root;\n const SCaret = 'div';\n const { styles, Children, controlsLength } = this.asProps;\n const { animation } = this.state;\n\n return sstyled(styles)(\n <STabLine render={Box} role='tablist' ref={this.containerRef}>\n <NeighborLocation controlsLength={controlsLength}>\n <Children />\n </NeighborLocation>\n {animation && <SCaret {...this.getCaretProps()} />}\n </STabLine>,\n );\n }\n}\n\nfunction TabLineItem(props) {\n const STabLineItem = Root;\n const { Children, styles, addonLeft, addonRight, neighborLocation } = props;\n\n return (\n <NeighborLocation.Detect neighborLocation={neighborLocation}>\n {(neighborLocation) =>\n sstyled(styles)(\n <STabLineItem\n render={Box}\n tag='button'\n neighborLocation={neighborLocation}\n type='button'\n role='tab'\n >\n {addonLeft ? <TabLine.Item.Addon tag={addonLeft} /> : null}\n {addonTextChildren(Children, TabLine.Item.Text, TabLine.Item.Addon)}\n {addonRight ? <TabLine.Item.Addon tag={addonRight} /> : null}\n </STabLineItem>,\n )\n }\n </NeighborLocation.Detect>\n );\n}\n\nTabLineItem.enhance = [keyboardFocusEnhance()];\n\nfunction Text(props) {\n const { styles } = props;\n const SText = Root;\n return sstyled(styles)(<SText render={Box} tag='span' />);\n}\n\nfunction Addon(props) {\n const { styles } = props;\n const SAddon = Root;\n return sstyled(styles)(<SAddon render={Box} tag='span' />);\n}\n\nconst TabLine = createComponent(TabLineRoot, {\n Item: [TabLineItem, { Text, Addon }],\n});\n\nexport const wrapTabLine = (wrapper) => wrapper;\n\nexport default TabLine;\n"],"mappings":";;;;;;;;;;;;;;;;AACA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AADA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,kBAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,qBAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,YAAA,GAAAJ,sBAAA,CAAAF,OAAA;AACA,IAAAO,iBAAA,GAAAL,sBAAA,CAAAF,OAAA;AAA0D;AAAA,IAAAQ,KAAA,+BAAAC,MAAA,CAAAC,OAAA,CAAAC,MAAA;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAI1D,IAAMC,kBAAkB,GAAG;EACzBC,gBAAgB,EAAE,SAAAA,iBAACC,eAAe,EAAEC,KAAK,EAAK;IAC5C,IAAID,eAAe,EAAE;MACnBA,eAAe,CAACE,KAAK,EAAE;MACvB,IAAID,KAAK,CAACE,QAAQ,KAAK,MAAM,EAAE;QAC7BH,eAAe,CAACI,KAAK,EAAE;MACzB;IACF;EACF,CAAC;EACDC,aAAa,EAAE,CAAC,MAAM,EAAE,KAAK;AAC/B,CAAC;AAAC,IAEIC,WAAW,0BAAAC,UAAA;EAAA,IAAAC,UAAA,aAAAF,WAAA,EAAAC,UAAA;EAAA,IAAAE,MAAA,OAAAC,aAAA,aAAAJ,WAAA;EAAA,SAAAA,YAAA;IAAA,IAAAK,KAAA;IAAA,IAAAC,gBAAA,mBAAAN,WAAA;IAAA,SAAAO,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;MAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;IAAA;IAAAP,KAAA,GAAAF,MAAA,CAAAU,IAAA,CAAAC,KAAA,CAAAX,MAAA,SAAAY,MAAA,CAAAL,IAAA;IAAA,IAAAM,gBAAA,iBAAAC,uBAAA,aAAAZ,KAAA,YAUP;MAAEa,SAAS,EAAE;IAAK,CAAC;IAAA,IAAAF,gBAAA,iBAAAC,uBAAA,aAAAZ,KAAA,gBACfc,SAAS;IAAA,IAAAH,gBAAA,iBAAAC,uBAAA,aAAAZ,KAAA,eACV,CAAC,CAAC;IAAA,IAAAW,gBAAA,iBAAAC,uBAAA,aAAAZ,KAAA,gCACEe,iBAAK,CAACC,SAAS,EAAE;IAAA,IAAAL,gBAAA,iBAAAC,uBAAA,aAAAZ,KAAA,4BACR,CAAC,CAAC;IAAA,IAAAW,gBAAA,iBAAAC,uBAAA,aAAAZ,KAAA,2BA8CH,YAAM;MAAA,IAAAiB,qBAAA;MAC3B,IAAI,EAAAA,qBAAA,GAAAjB,KAAA,CAAKkB,KAAK,CAACL,SAAS,cAAAI,qBAAA,uBAApBA,qBAAA,CAAsBE,OAAO,MAAK,KAAK,EAAE;QAC3CnB,KAAA,CAAKoB,QAAQ,CAAC;UAAEP,SAAS,MAAAQ,cAAA,iBAAAA,cAAA,iBAAOrB,KAAA,CAAKkB,KAAK,CAACL,SAAS;YAAEM,OAAO,EAAE;UAAI;QAAG,CAAC,CAAC;MAC1E;IACF,CAAC;IAAA,IAAAR,gBAAA,iBAAAC,uBAAA,aAAAZ,KAAA,yBACoB,YAAM;MACzBA,KAAA,CAAKoB,QAAQ,CAAC;QAAEP,SAAS,EAAE;MAAK,CAAC,CAAC;IACpC,CAAC;IAAA,IAAAF,gBAAA,iBAAAC,uBAAA,aAAAZ,KAAA,uBAEkB,UAACsB,KAAK;MAAA,OAAK,UAACC,CAAC,EAAK;QACnCvB,KAAA,CAAKwB,QAAQ,CAACF,KAAK,CAACA,KAAK,EAAEC,CAAC,CAAC;MAC/B,CAAC;IAAA;IAAA,OAAAvB,KAAA;EAAA;EAAA,IAAAyB,aAAA,aAAA9B,WAAA;IAAA+B,GAAA;IAAAJ,KAAA,EAvDD,SAAAK,kBAAA,EAAoB;MAClB,OAAO;QACLL,KAAK,EAAE;MACT,CAAC;IACH;EAAC;IAAAI,GAAA;IAAAJ,KAAA,EAED,SAAAM,mBAAA,EAAqB;MACnB,IACE,IAAI,CAACC,SAAS,KAAK,IAAI,IACvB,IAAI,CAACC,OAAO,CAACR,KAAK,KAAK,IAAI,IAC3B,IAAI,CAACO,SAAS,KAAK,IAAI,CAACC,OAAO,CAACR,KAAK,EACrC;QACA,IAAI,CAACS,OAAO,EAAE;MAChB;MACA,IAAI,CAACF,SAAS,GAAG,IAAI,CAACC,OAAO,CAACR,KAAK;IACrC;EAAC;IAAAI,GAAA;IAAAJ,KAAA,EACD,SAAAU,kBAAA,EAAoB;MAClB,IAAI,CAACH,SAAS,GAAG,IAAI,CAACC,OAAO,CAACR,KAAK;IACrC;EAAC;IAAAI,GAAA;IAAAJ,KAAA,EACD,SAAAW,qBAAA,EAAuB;MACrBC,YAAY,CAAC,IAAI,CAACC,qBAAqB,CAAC;IAC1C;EAAC;IAAAT,GAAA;IAAAJ,KAAA,EAED,SAAAS,QAAA,EAAU;MACR,IAAMK,QAAQ,GAAG,IAAI,CAACC,QAAQ,CAAC,IAAI,CAACR,SAAS,CAAC;MAC9C,IAAMS,MAAM,GAAG,IAAI,CAACD,QAAQ,CAAC,IAAI,CAACP,OAAO,CAACR,KAAK,CAAC;MAChD,IAAMiB,aAAa,GAAG,IAAI,CAACC,YAAY,CAACC,OAAO;MAE/C,IAAI,CAACL,QAAQ,IAAI,CAACE,MAAM,IAAI,CAACC,aAAa,EAAE;MAC5C,IAAMG,aAAa,GAAGH,aAAa,CAACI,qBAAqB,EAAE;MAC3D,IAAMC,QAAQ,GAAGR,QAAQ,CAACO,qBAAqB,EAAE;MACjD,IAAME,MAAM,GAAGP,MAAM,CAACK,qBAAqB,EAAE;MAC7C,IAAM9B,SAAS,GAAG;QAChBiC,QAAQ,EAAEF,QAAQ,CAACG,CAAC,GAAGL,aAAa,CAACK,CAAC;QACtCC,SAAS,EAAEJ,QAAQ,CAACK,KAAK;QACzBC,MAAM,EAAEL,MAAM,CAACE,CAAC,GAAGL,aAAa,CAACK,CAAC;QAClCI,OAAO,EAAEN,MAAM,CAACI,KAAK;QACrB9B,OAAO,EAAE;MACX,CAAC;MACD,IAAI,CAACC,QAAQ,CAAC;QAAEP,SAAS,EAATA;MAAU,CAAC,CAAC;MAC5BqB,YAAY,CAAC,IAAI,CAACC,qBAAqB,CAAC;MACxC,IAAI,CAACA,qBAAqB,GAAGiB,UAAU,CAAC,IAAI,CAACC,oBAAoB,EAAE,CAAC,CAAC;IACvE;EAAC;IAAA3B,GAAA;IAAAJ,KAAA,EAeD,SAAAgC,aAAahE,KAAK,EAAEiE,KAAK,EAAE;MAAA,IAAAC,MAAA;MACzB,IAAAC,aAAA,GAAwB,IAAI,CAAC3B,OAAO;QAA5BR,KAAK,GAAAmC,aAAA,CAALnC,KAAK;QAAEoC,IAAI,GAAAD,aAAA,CAAJC,IAAI;MACnB,IAAMC,UAAU,GAAGrC,KAAK,KAAKhC,KAAK,CAACgC,KAAK;MACxC,OAAO;QACLoC,IAAI,EAAJA,IAAI;QACJE,QAAQ,EAAED,UAAU;QACpBE,OAAO,EAAE,IAAI,CAACC,gBAAgB,CAACxE,KAAK,CAACgC,KAAK,CAAC;QAC3CyC,QAAQ,EAAEJ,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,eAAe,EAAEA,UAAU;QAC3BK,GAAG,EAAE,SAAAA,IAACC,IAAI,EAAK;UACbT,MAAI,CAACnB,QAAQ,CAAC/C,KAAK,CAACgC,KAAK,CAAC,GAAG2C,IAAI;QACnC;MACF,CAAC;IACH;EAAC;IAAAvC,GAAA;IAAAJ,KAAA,EAED,SAAA4C,cAAA,EAAgB;MACd,IAAQrD,SAAS,GAAK,IAAI,CAACK,KAAK,CAAxBL,SAAS;MACjB,IAAI,CAACA,SAAS,EAAE,OAAO,CAAC,CAAC;MACzB,IAAIA,SAAS,CAACM,OAAO,EAAE;QACrB,OAAO;UACLpC,KAAK,EAAE;YACLoF,IAAI,EAAEtD,SAAS,CAACqC,MAAM;YACtBD,KAAK,EAAEpC,SAAS,CAACsC;UACnB,CAAC;UACDiB,eAAe,EAAE,IAAI,CAACC;QACxB,CAAC;MACH,CAAC,MAAM;QACL,OAAO;UACLtF,KAAK,EAAE;YACLoF,IAAI,EAAEtD,SAAS,CAACiC,QAAQ;YACxBG,KAAK,EAAEpC,SAAS,CAACmC;UACnB,CAAC;UACDoB,eAAe,EAAE,IAAI,CAACC;QACxB,CAAC;MACH;IACF;EAAC;IAAA3C,GAAA;IAAAJ,KAAA,EAED,SAAAgD,OAAA,EAAS;MAAA,IAAAC,IAAA,QAAAzC,OAAA;QAAA0C,KAAA;MACP,IAAMC,QAAQ,GAMMC,YAAG;MALvB,IAAMC,MAAM,GAAG,KAAK;MACpB,IAAAC,cAAA,GAA6C,IAAI,CAAC9C,OAAO;QAAjD+C,MAAM,GAAAD,cAAA,CAANC,MAAM;QAAEC,QAAQ,GAAAF,cAAA,CAARE,QAAQ;QAAEC,cAAc,GAAAH,cAAA,CAAdG,cAAc;MACxC,IAAQlE,SAAS,GAAK,IAAI,CAACK,KAAK,CAAxBL,SAAS;MAEjB,OAAA2D,KAAA,GAAO,IAAAvF,aAAO,EAAC4F,MAAM,CAAC,eACpBrG,MAAA,YAAAwG,aAAA,CAACP,QAAQ,EAAAD,KAAA,CAAAS,EAAA,iBAAA5D,cAAA,qBAAAhD,KAAA,CAAA6G,WAAA;QAAA,QAAmB,SAAS;QAAA,OAAM,IAAI,CAAC1C;MAAY,GAAA+B,IAAA,kBAC1D/F,MAAA,YAAAwG,aAAA,CAAClG,iBAAA,WAAgB,EAAA0F,KAAA,CAAAS,EAAA;QAAA,kBAAiBF;MAAc,iBAC9CvG,MAAA,YAAAwG,aAAA,CAACF,QAAQ,EAAAN,KAAA,CAAAS,EAAA,iBAAG,CACK,EAClBpE,SAAS,iBAAIrC,MAAA,YAAAwG,aAAA,CAACL,MAAM,EAAAH,KAAA,CAAAS,EAAA,eAAA5D,cAAA,iBAAK,IAAI,CAAC6C,aAAa,EAAE,GAAI,CACzC;IAEf;EAAC;EAAA,OAAAvE,WAAA;AAAA,EA5HuBwF,eAAS;AAAA,IAAAxE,gBAAA,aAA7BhB,WAAW,iBACM,SAAS;AAAA,IAAAgB,gBAAA,aAD1BhB,WAAW,WAEAZ,KAAK;AAAA,IAAA4B,gBAAA,aAFhBhB,WAAW,kBAGO;EACpByF,YAAY,EAAE,IAAI;EAClB1B,IAAI,EAAE,GAAG;EACT2B,UAAU,EAAE,IAAI;EAChB7F,QAAQ,EAAE;AACZ,CAAC;AAAA,IAAAmB,gBAAA,aARGhB,WAAW,aASE,CAAC,IAAA2F,uBAAW,EAACnG,kBAAkB,CAAC,CAAC;AAsHpD,SAASoG,WAAWA,CAACjG,KAAK,EAAE;EAAA,IAAAkG,KAAA,GAAAC,YAAA;EAC1B,IAAMC,YAAY,GAQAhB,YAAG;EAPrB,IAAQI,QAAQ,GAAsDxF,KAAK,CAAnEwF,QAAQ;IAAED,MAAM,GAA8CvF,KAAK,CAAzDuF,MAAM;IAAEc,SAAS,GAAmCrG,KAAK,CAAjDqG,SAAS;IAAEC,UAAU,GAAuBtG,KAAK,CAAtCsG,UAAU;IAAEC,gBAAgB,GAAKvG,KAAK,CAA1BuG,gBAAgB;EAEjE,oBACErH,MAAA,YAAAwG,aAAA,CAAClG,iBAAA,WAAgB,CAACgH,MAAM;IAACD,gBAAgB,EAAEA;EAAiB,GACzD,UAACA,gBAAgB;IAAA,IAAAE,KAAA;IAAA,OAAAA,KAAA,GAChB,IAAA9G,aAAO,EAAC4F,MAAM,CAAC,eACbrG,MAAA,YAAAwG,aAAA,CAACU,YAAY,EAAAK,KAAA,CAAAd,EAAA,qBAAA5D,cAAA,qBAAAhD,KAAA,CAAA6G,WAAA;MAAA,OAEP,QAAQ;MAAA,oBACMW,gBAAgB;MAAA,QAC7B,QAAQ;MAAA,QACR;IAAK,GAAAL,KAAA,KAETG,SAAS,gBAAGnH,MAAA,YAAAwG,aAAA,CAACgB,OAAO,CAACC,IAAI,CAACC,KAAK;MAACC,GAAG,EAAER;IAAU,EAAG,GAAG,IAAI,EACzD,IAAAS,6BAAiB,EAACtB,QAAQ,EAAEkB,OAAO,CAACC,IAAI,CAACI,IAAI,EAAEL,OAAO,CAACC,IAAI,CAACC,KAAK,CAAC,EAClEN,UAAU,gBAAGpH,MAAA,YAAAwG,aAAA,CAACgB,OAAO,CAACC,IAAI,CAACC,KAAK;MAACC,GAAG,EAAEP;IAAW,EAAG,GAAG,IAAI,CAC/C;EAAA,CAChB,CAEqB;AAE9B;AAEAL,WAAW,CAACe,OAAO,GAAG,CAAC,IAAAC,gCAAoB,GAAE,CAAC;AAE9C,SAASF,IAAIA,CAAC/G,KAAK,EAAE;EAAA,IAAAkH,KAAA,GAAAf,YAAA;IAAAgB,KAAA;EACnB,IAAQ5B,MAAM,GAAKvF,KAAK,CAAhBuF,MAAM;EACd,IAAM6B,KAAK,GAC2BhC,YAAG;EAAzC,OAAA+B,KAAA,GAAO,IAAAxH,aAAO,EAAC4F,MAAM,CAAC,eAACrG,MAAA,YAAAwG,aAAA,CAAC0B,KAAK,EAAAD,KAAA,CAAAxB,EAAA,cAAA5D,cAAA,qBAAAhD,KAAA,CAAA6G,WAAA;IAAA,OAAkB;EAAM,GAAAsB,KAAA,IAAG;AAC1D;AAEA,SAASN,KAAKA,CAAC5G,KAAK,EAAE;EAAA,IAAAqH,KAAA,GAAAlB,YAAA;IAAAmB,KAAA;EACpB,IAAQ/B,MAAM,GAAKvF,KAAK,CAAhBuF,MAAM;EACd,IAAMgC,MAAM,GAC2BnC,YAAG;EAA1C,OAAAkC,KAAA,GAAO,IAAA3H,aAAO,EAAC4F,MAAM,CAAC,eAACrG,MAAA,YAAAwG,aAAA,CAAC6B,MAAM,EAAAD,KAAA,CAAA3B,EAAA,eAAA5D,cAAA,qBAAAhD,KAAA,CAAA6G,WAAA;IAAA,OAAkB;EAAM,GAAAyB,KAAA,IAAG;AAC3D;AAEA,IAAMX,OAAO,GAAG,IAAAc,gBAAe,EAACnH,WAAW,EAAE;EAC3CsG,IAAI,EAAE,CAACV,WAAW,EAAE;IAAEc,IAAI,EAAJA,IAAI;IAAEH,KAAK,EAALA;EAAM,CAAC;AACrC,CAAC,CAAC;AAEK,IAAMa,WAAW,GAAG,SAAdA,WAAWA,CAAIC,OAAO;EAAA,OAAKA,OAAO;AAAA;AAACC,OAAA,CAAAF,WAAA,GAAAA,WAAA;AAAA,IAAAG,QAAA,GAEjClB,OAAO;AAAAiB,OAAA,cAAAC,QAAA"}
@@ -17,20 +17,22 @@ import addonTextChildren from '@semcore/utils/lib/addonTextChildren';
17
17
  import keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';
18
18
  import a11yEnhance from '@semcore/utils/lib/enhances/a11yEnhance';
19
19
  import NeighborLocation from '@semcore/neighbor-location';
20
- /*__reshadow-styles__:"./style/tab-line.shadow.css"*/
21
- var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___STabLine_xoas8_gg_{position:relative;display:flex;width:100%;max-width:100%}.___STabLine_xoas8_gg_.__underlined_xoas8_gg_{border-bottom:1px solid var(--intergalactic-border-primary, #c4c7cf)}.___STabLineItem_xoas8_gg_{display:inline-flex;align-items:center;justify-content:center;position:relative;touch-action:manipulation;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;box-sizing:border-box;padding:0;margin:0;box-shadow:none;-webkit-text-decoration:none;text-decoration:none;-webkit-tap-highlight-color:transparent;overflow:visible;outline:0;text-align:center;vertical-align:middle;font-family:inherit;cursor:pointer;border:0;background:0 0;color:var(--intergalactic-text-primary, #191b23);margin-right:var(--intergalactic-spacing-4x, 16px);font-weight:var(--intergalactic-medium, 500)}.___STabLineItem_xoas8_gg_::-moz-focus-inner{border:0;padding:0}.___STabLineItem_xoas8_gg_:active,.___STabLineItem_xoas8_gg_:focus{outline:0;-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___STabLineItem_xoas8_gg_:hover{outline:0;-webkit-text-decoration:none;text-decoration:none}}.___STabLineItem_xoas8_gg_::after,.___STabLineItem_xoas8_gg_::before{content:\"\";position:absolute;left:0;bottom:-1px;height:3px;width:100%;background-color:transparent}.___STabLineItem_xoas8_gg_::before{transition:background-color calc(var(--intergalactic-duration-control, 200)*1ms) ease-in-out}@media (hover:hover){.___STabLineItem_xoas8_gg_:hover::before{background-color:var(--intergalactic-border-primary, #c4c7cf)}}.___STabLineItem_xoas8_gg_.__selected_xoas8_gg_::after{transition-delay:calc(var(--intergalactic-duration-control, 200)*1ms);background-color:var(--intergalactic-border-info-active, #006dca)}.___STabLineItem_xoas8_gg_ .___SAddon_xoas8_gg_:not(:last-child),.___STabLineItem_xoas8_gg_ .___SText_xoas8_gg_:not(:last-child){margin-right:var(--intergalactic-spacing-2x, 8px)}.___SCaret_xoas8_gg_{position:absolute;bottom:-1px;height:3px;background-color:var(--intergalactic-border-info-active, #006dca);transition:calc(var(--intergalactic-duration-control, 200)*1ms) all ease-in-out}.___STabLineItem_xoas8_gg_.__selected_xoas8_gg_{flex-shrink:0}.___STabLineItem_xoas8_gg_.__disabled_xoas8_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none}.___STabLineItem_xoas8_gg_.__keyboardFocused_xoas8_gg_{box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5))}.___SText_xoas8_gg_{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.___SAddon_xoas8_gg_{display:inline-flex;align-items:center;justify-content:center}.___STabLineItem_xoas8_gg_._size_m_xoas8_gg_{height:28px;min-width:18px}.___STabLineItem_xoas8_gg_._size_m_xoas8_gg_ .___SText_xoas8_gg_{font-size:var(--intergalactic-fs-200, 14px);line-height:var(--intergalactic-lh-200, 142%)}.___STabLineItem_xoas8_gg_._size_l_xoas8_gg_{height:40px;min-width:26px}.___STabLineItem_xoas8_gg_._size_l_xoas8_gg_ .___SText_xoas8_gg_{font-size:var(--intergalactic-fs-300, 16px);line-height:var(--intergalactic-lh-300, 150%)}.___STabLineItem_xoas8_gg_._neighborLocation_left_xoas8_gg_{margin-right:0}@media (prefers-reduced-motion){.___STabLineItem_xoas8_gg_.__selected_xoas8_gg_::after,.___STabLineItem_xoas8_gg_::after,.___STabLineItem_xoas8_gg_::before{transition:none}.___SCaret_xoas8_gg_{display:none}}" /*__inner_css_end__*/, "xoas8_gg_") /*__reshadow_css_end__*/, {
22
- "__STabLine": "___STabLine_xoas8_gg_",
23
- "_underlined": "__underlined_xoas8_gg_",
24
- "__SCaret": "___SCaret_xoas8_gg_",
25
- "__STabLineItem": "___STabLineItem_xoas8_gg_",
26
- "_selected": "__selected_xoas8_gg_",
27
- "_disabled": "__disabled_xoas8_gg_",
28
- "_keyboardFocused": "__keyboardFocused_xoas8_gg_",
29
- "__SText": "___SText_xoas8_gg_",
30
- "__SAddon": "___SAddon_xoas8_gg_",
31
- "_neighborLocation_left": "_neighborLocation_left_xoas8_gg_",
32
- "_size_m": "_size_m_xoas8_gg_",
33
- "_size_l": "_size_l_xoas8_gg_"
20
+ /*!__reshadow-styles__:"./style/tab-line.shadow.css"*/
21
+ var style = ( /*__reshadow_css_start__*/_sstyled.insert( /*__inner_css_start__*/".___STabLine_aog65_gg_{position:relative;display:flex;width:100%;max-width:100%}.___STabLine_aog65_gg_.__underlined_aog65_gg_{border-bottom:1px solid var(--intergalactic-border-primary, #c4c7cf)}.___STabLineItem_aog65_gg_{display:inline-flex;align-items:center;justify-content:center;position:relative;touch-action:manipulation;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;box-sizing:border-box;padding:0;margin:0;box-shadow:none;-webkit-text-decoration:none;text-decoration:none;-webkit-tap-highlight-color:transparent;overflow:visible;outline:0;text-align:center;vertical-align:middle;font-family:inherit;cursor:pointer;border:0;background:0 0;color:var(--intergalactic-text-primary, #191b23);margin-right:var(--intergalactic-spacing-4x, 16px);font-weight:var(--intergalactic-medium, 500)}.___STabLineItem_aog65_gg_::-moz-focus-inner{border:0;padding:0}.___STabLineItem_aog65_gg_:active,.___STabLineItem_aog65_gg_:focus{outline:0;-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___STabLineItem_aog65_gg_:hover{outline:0;-webkit-text-decoration:none;text-decoration:none}}.___STabLineItem_aog65_gg_::after,.___STabLineItem_aog65_gg_::before{content:\"\";position:absolute;left:0;bottom:-1px;height:3px;width:100%;background-color:transparent}.___STabLineItem_aog65_gg_::before{transition:background-color calc(var(--intergalactic-duration-control, 200)*1ms) ease-in-out}@media (hover:hover){.___STabLineItem_aog65_gg_:hover::before{background-color:var(--intergalactic-border-primary, #c4c7cf)}}.___STabLineItem_aog65_gg_.__selected_aog65_gg_::after{transition-delay:calc(var(--intergalactic-duration-control, 200)*1ms);background-color:var(--intergalactic-border-info-active, #006dca)}.___STabLineItem_aog65_gg_ .___SAddon_aog65_gg_:not(:last-child),.___STabLineItem_aog65_gg_ .___SText_aog65_gg_:not(:last-child){margin-right:var(--intergalactic-spacing-2x, 8px)}.___SCaret_aog65_gg_{position:absolute;bottom:-1px;height:3px;background-color:var(--intergalactic-border-info-active, #006dca);transition:calc(var(--intergalactic-duration-control, 200)*1ms) all ease-in-out}.___STabLineItem_aog65_gg_.__selected_aog65_gg_{flex-shrink:0}.___STabLineItem_aog65_gg_.__disabled_aog65_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none}.___STabLineItem_aog65_gg_.__keyboardFocused_aog65_gg_{box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5))}.___SText_aog65_gg_{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.___SAddon_aog65_gg_{display:inline-flex;align-items:center;justify-content:center}.___STabLineItem_aog65_gg_._size_m_aog65_gg_{height:28px;min-width:18px}.___STabLineItem_aog65_gg_._size_m_aog65_gg_ .___SText_aog65_gg_{font-size:var(--intergalactic-fs-200, 14px);line-height:var(--intergalactic-lh-200, 142%)}.___STabLineItem_aog65_gg_._size_l_aog65_gg_{height:40px;min-width:26px}.___STabLineItem_aog65_gg_._size_l_aog65_gg_ .___SText_aog65_gg_{font-size:var(--intergalactic-fs-300, 16px);line-height:var(--intergalactic-lh-300, 150%)}.___STabLineItem_aog65_gg_._neighborLocation_left_aog65_gg_{margin-right:0}@media (prefers-reduced-motion){.___STabLineItem_aog65_gg_.__selected_aog65_gg_::after,.___STabLineItem_aog65_gg_::after,.___STabLineItem_aog65_gg_::before{transition:none}.___SCaret_aog65_gg_{display:none}}", /*__inner_css_end__*/"aog65_gg_"),
22
+ /*__reshadow_css_end__*/
23
+ {
24
+ "__STabLine": "___STabLine_aog65_gg_",
25
+ "_underlined": "__underlined_aog65_gg_",
26
+ "__SCaret": "___SCaret_aog65_gg_",
27
+ "__STabLineItem": "___STabLineItem_aog65_gg_",
28
+ "_selected": "__selected_aog65_gg_",
29
+ "_disabled": "__disabled_aog65_gg_",
30
+ "_keyboardFocused": "__keyboardFocused_aog65_gg_",
31
+ "__SText": "___SText_aog65_gg_",
32
+ "__SAddon": "___SAddon_aog65_gg_",
33
+ "_neighborLocation_left": "_neighborLocation_left_aog65_gg_",
34
+ "_size_m": "_size_m_aog65_gg_",
35
+ "_size_l": "_size_l_aog65_gg_"
34
36
  });
35
37
  var optionsA11yEnhance = {
36
38
  onNeighborChange: function onNeighborChange(neighborElement, props) {
@@ -1 +1 @@
1
- {"version":3,"file":"TabLine.js","names":["React","createComponent","Component","sstyled","Root","Box","addonTextChildren","keyboardFocusEnhance","a11yEnhance","NeighborLocation","style","_sstyled","insert","optionsA11yEnhance","onNeighborChange","neighborElement","props","focus","behavior","click","childSelector","TabLineRoot","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","animation","undefined","createRef","_this$state$animation","state","started","setState","_objectSpread","value","e","handlers","_createClass","key","uncontrolledProps","componentDidUpdate","prevValue","asProps","animate","componentDidMount","componentWillUnmount","clearTimeout","animationStartTimeout","fromNode","itemRefs","toNode","containerNode","containerRef","current","containerRect","getBoundingClientRect","fromRect","toRect","fromLeft","x","fromWidth","width","toLeft","toWidth","setTimeout","handleAnimationStart","getItemProps","index","_this2","_this$asProps","size","isSelected","selected","onClick","bindHandlerClick","tabIndex","ref","node","getCaretProps","left","onTransitionEnd","handleAnimationEnd","render","_ref","_ref5","STabLine","SCaret","_this$asProps2","styles","Children","controlsLength","createElement","cn","_assignProps","defaultValue","underlined","TabLineItem","_ref2","arguments[0]","STabLineItem","addonLeft","addonRight","neighborLocation","Detect","_ref6","_assignProps2","TabLine","Item","Addon","tag","Text","enhance","_ref3","_ref7","SText","_assignProps3","_ref4","_ref8","SAddon","_assignProps4","wrapTabLine","wrapper"],"sources":["../../src/TabLine.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport addonTextChildren from '@semcore/utils/lib/addonTextChildren';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport a11yEnhance from '@semcore/utils/lib/enhances/a11yEnhance';\nimport NeighborLocation from '@semcore/neighbor-location';\n\nimport style from './style/tab-line.shadow.css';\n\nconst optionsA11yEnhance = {\n onNeighborChange: (neighborElement, props) => {\n if (neighborElement) {\n neighborElement.focus();\n if (props.behavior === 'auto') {\n neighborElement.click();\n }\n }\n },\n childSelector: ['role', 'tab'],\n};\n\nclass TabLineRoot extends Component {\n static displayName = 'TabLine';\n static style = style;\n static defaultProps = {\n defaultValue: null,\n size: 'm',\n underlined: true,\n behavior: 'auto',\n };\n static enhance = [a11yEnhance(optionsA11yEnhance)];\n state = { animation: null };\n prevValue = undefined;\n itemRefs = {};\n containerRef = React.createRef();\n animationStartTimeout = -1;\n\n uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n componentDidUpdate() {\n if (\n this.prevValue !== null &&\n this.asProps.value !== null &&\n this.prevValue !== this.asProps.value\n ) {\n this.animate();\n }\n this.prevValue = this.asProps.value;\n }\n componentDidMount() {\n this.prevValue = this.asProps.value;\n }\n componentWillUnmount() {\n clearTimeout(this.animationStartTimeout);\n }\n\n animate() {\n const fromNode = this.itemRefs[this.prevValue];\n const toNode = this.itemRefs[this.asProps.value];\n const containerNode = this.containerRef.current;\n\n if (!fromNode || !toNode || !containerNode) return;\n const containerRect = containerNode.getBoundingClientRect();\n const fromRect = fromNode.getBoundingClientRect();\n const toRect = toNode.getBoundingClientRect();\n const animation = {\n fromLeft: fromRect.x - containerRect.x,\n fromWidth: fromRect.width,\n toLeft: toRect.x - containerRect.x,\n toWidth: toRect.width,\n started: false,\n };\n this.setState({ animation });\n clearTimeout(this.animationStartTimeout);\n this.animationStartTimeout = setTimeout(this.handleAnimationStart, 0);\n }\n\n handleAnimationStart = () => {\n if (this.state.animation?.started === false) {\n this.setState({ animation: { ...this.state.animation, started: true } });\n }\n };\n handleAnimationEnd = () => {\n this.setState({ animation: null });\n };\n\n bindHandlerClick = (value) => (e) => {\n this.handlers.value(value, e);\n };\n\n getItemProps(props, index) {\n const { value, size } = this.asProps;\n const isSelected = value === props.value;\n return {\n size,\n selected: isSelected,\n onClick: this.bindHandlerClick(props.value),\n tabIndex: isSelected ? 0 : -1,\n 'aria-selected': isSelected,\n ref: (node) => {\n this.itemRefs[props.value] = node;\n },\n };\n }\n\n getCaretProps() {\n const { animation } = this.state;\n if (!animation) return {};\n if (animation.started) {\n return {\n style: {\n left: animation.toLeft,\n width: animation.toWidth,\n },\n onTransitionEnd: this.handleAnimationEnd,\n };\n } else {\n return {\n style: {\n left: animation.fromLeft,\n width: animation.fromWidth,\n },\n onTransitionEnd: this.handleAnimationEnd,\n };\n }\n }\n\n render() {\n const STabLine = Root;\n const SCaret = 'div';\n const { styles, Children, controlsLength } = this.asProps;\n const { animation } = this.state;\n\n return sstyled(styles)(\n <STabLine render={Box} role='tablist' ref={this.containerRef}>\n <NeighborLocation controlsLength={controlsLength}>\n <Children />\n </NeighborLocation>\n {animation && <SCaret {...this.getCaretProps()} />}\n </STabLine>,\n );\n }\n}\n\nfunction TabLineItem(props) {\n const STabLineItem = Root;\n const { Children, styles, addonLeft, addonRight, neighborLocation } = props;\n\n return (\n <NeighborLocation.Detect neighborLocation={neighborLocation}>\n {(neighborLocation) =>\n sstyled(styles)(\n <STabLineItem\n render={Box}\n tag='button'\n neighborLocation={neighborLocation}\n type='button'\n role='tab'\n >\n {addonLeft ? <TabLine.Item.Addon tag={addonLeft} /> : null}\n {addonTextChildren(Children, TabLine.Item.Text, TabLine.Item.Addon)}\n {addonRight ? <TabLine.Item.Addon tag={addonRight} /> : null}\n </STabLineItem>,\n )\n }\n </NeighborLocation.Detect>\n );\n}\n\nTabLineItem.enhance = [keyboardFocusEnhance()];\n\nfunction Text(props) {\n const { styles } = props;\n const SText = Root;\n return sstyled(styles)(<SText render={Box} tag='span' />);\n}\n\nfunction Addon(props) {\n const { styles } = props;\n const SAddon = Root;\n return sstyled(styles)(<SAddon render={Box} tag='span' />);\n}\n\nconst TabLine = createComponent(TabLineRoot, {\n Item: [TabLineItem, { Text, Addon }],\n});\n\nexport const wrapTabLine = (wrapper) => wrapper;\n\nexport default TabLine;\n"],"mappings":"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"}
1
+ {"version":3,"file":"TabLine.js","names":["React","createComponent","Component","sstyled","Root","Box","addonTextChildren","keyboardFocusEnhance","a11yEnhance","NeighborLocation","style","_sstyled","insert","optionsA11yEnhance","onNeighborChange","neighborElement","props","focus","behavior","click","childSelector","TabLineRoot","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","animation","undefined","createRef","_this$state$animation","state","started","setState","_objectSpread","value","e","handlers","_createClass","key","uncontrolledProps","componentDidUpdate","prevValue","asProps","animate","componentDidMount","componentWillUnmount","clearTimeout","animationStartTimeout","fromNode","itemRefs","toNode","containerNode","containerRef","current","containerRect","getBoundingClientRect","fromRect","toRect","fromLeft","x","fromWidth","width","toLeft","toWidth","setTimeout","handleAnimationStart","getItemProps","index","_this2","_this$asProps","size","isSelected","selected","onClick","bindHandlerClick","tabIndex","ref","node","getCaretProps","left","onTransitionEnd","handleAnimationEnd","render","_ref","_ref5","STabLine","SCaret","_this$asProps2","styles","Children","controlsLength","createElement","cn","_assignProps","defaultValue","underlined","TabLineItem","_ref2","arguments[0]","STabLineItem","addonLeft","addonRight","neighborLocation","Detect","_ref6","_assignProps2","TabLine","Item","Addon","tag","Text","enhance","_ref3","_ref7","SText","_assignProps3","_ref4","_ref8","SAddon","_assignProps4","wrapTabLine","wrapper"],"sources":["../../src/TabLine.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport addonTextChildren from '@semcore/utils/lib/addonTextChildren';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport a11yEnhance from '@semcore/utils/lib/enhances/a11yEnhance';\nimport NeighborLocation from '@semcore/neighbor-location';\n\nimport style from './style/tab-line.shadow.css';\n\nconst optionsA11yEnhance = {\n onNeighborChange: (neighborElement, props) => {\n if (neighborElement) {\n neighborElement.focus();\n if (props.behavior === 'auto') {\n neighborElement.click();\n }\n }\n },\n childSelector: ['role', 'tab'],\n};\n\nclass TabLineRoot extends Component {\n static displayName = 'TabLine';\n static style = style;\n static defaultProps = {\n defaultValue: null,\n size: 'm',\n underlined: true,\n behavior: 'auto',\n };\n static enhance = [a11yEnhance(optionsA11yEnhance)];\n state = { animation: null };\n prevValue = undefined;\n itemRefs = {};\n containerRef = React.createRef();\n animationStartTimeout = -1;\n\n uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n componentDidUpdate() {\n if (\n this.prevValue !== null &&\n this.asProps.value !== null &&\n this.prevValue !== this.asProps.value\n ) {\n this.animate();\n }\n this.prevValue = this.asProps.value;\n }\n componentDidMount() {\n this.prevValue = this.asProps.value;\n }\n componentWillUnmount() {\n clearTimeout(this.animationStartTimeout);\n }\n\n animate() {\n const fromNode = this.itemRefs[this.prevValue];\n const toNode = this.itemRefs[this.asProps.value];\n const containerNode = this.containerRef.current;\n\n if (!fromNode || !toNode || !containerNode) return;\n const containerRect = containerNode.getBoundingClientRect();\n const fromRect = fromNode.getBoundingClientRect();\n const toRect = toNode.getBoundingClientRect();\n const animation = {\n fromLeft: fromRect.x - containerRect.x,\n fromWidth: fromRect.width,\n toLeft: toRect.x - containerRect.x,\n toWidth: toRect.width,\n started: false,\n };\n this.setState({ animation });\n clearTimeout(this.animationStartTimeout);\n this.animationStartTimeout = setTimeout(this.handleAnimationStart, 0);\n }\n\n handleAnimationStart = () => {\n if (this.state.animation?.started === false) {\n this.setState({ animation: { ...this.state.animation, started: true } });\n }\n };\n handleAnimationEnd = () => {\n this.setState({ animation: null });\n };\n\n bindHandlerClick = (value) => (e) => {\n this.handlers.value(value, e);\n };\n\n getItemProps(props, index) {\n const { value, size } = this.asProps;\n const isSelected = value === props.value;\n return {\n size,\n selected: isSelected,\n onClick: this.bindHandlerClick(props.value),\n tabIndex: isSelected ? 0 : -1,\n 'aria-selected': isSelected,\n ref: (node) => {\n this.itemRefs[props.value] = node;\n },\n };\n }\n\n getCaretProps() {\n const { animation } = this.state;\n if (!animation) return {};\n if (animation.started) {\n return {\n style: {\n left: animation.toLeft,\n width: animation.toWidth,\n },\n onTransitionEnd: this.handleAnimationEnd,\n };\n } else {\n return {\n style: {\n left: animation.fromLeft,\n width: animation.fromWidth,\n },\n onTransitionEnd: this.handleAnimationEnd,\n };\n }\n }\n\n render() {\n const STabLine = Root;\n const SCaret = 'div';\n const { styles, Children, controlsLength } = this.asProps;\n const { animation } = this.state;\n\n return sstyled(styles)(\n <STabLine render={Box} role='tablist' ref={this.containerRef}>\n <NeighborLocation controlsLength={controlsLength}>\n <Children />\n </NeighborLocation>\n {animation && <SCaret {...this.getCaretProps()} />}\n </STabLine>,\n );\n }\n}\n\nfunction TabLineItem(props) {\n const STabLineItem = Root;\n const { Children, styles, addonLeft, addonRight, neighborLocation } = props;\n\n return (\n <NeighborLocation.Detect neighborLocation={neighborLocation}>\n {(neighborLocation) =>\n sstyled(styles)(\n <STabLineItem\n render={Box}\n tag='button'\n neighborLocation={neighborLocation}\n type='button'\n role='tab'\n >\n {addonLeft ? <TabLine.Item.Addon tag={addonLeft} /> : null}\n {addonTextChildren(Children, TabLine.Item.Text, TabLine.Item.Addon)}\n {addonRight ? <TabLine.Item.Addon tag={addonRight} /> : null}\n </STabLineItem>,\n )\n }\n </NeighborLocation.Detect>\n );\n}\n\nTabLineItem.enhance = [keyboardFocusEnhance()];\n\nfunction Text(props) {\n const { styles } = props;\n const SText = Root;\n return sstyled(styles)(<SText render={Box} tag='span' />);\n}\n\nfunction Addon(props) {\n const { styles } = props;\n const SAddon = Root;\n return sstyled(styles)(<SAddon render={Box} tag='span' />);\n}\n\nconst TabLine = createComponent(TabLineRoot, {\n Item: [TabLineItem, { Text, Addon }],\n});\n\nexport const wrapTabLine = (wrapper) => wrapper;\n\nexport default TabLine;\n"],"mappings":"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"}
@@ -1,204 +1,254 @@
1
- import u from "@babel/runtime/helpers/esm/objectSpread2";
2
- import y from "@babel/runtime/helpers/esm/classCallCheck";
3
- import I from "@babel/runtime/helpers/esm/createClass";
4
- import d from "@babel/runtime/helpers/esm/assertThisInitialized";
5
- import k from "@babel/runtime/helpers/esm/inherits";
6
- import C from "@babel/runtime/helpers/esm/createSuper";
7
- import l from "@babel/runtime/helpers/esm/defineProperty";
8
- import { sstyled as w } from "@semcore/utils/lib/core/index";
9
- import P, { sstyled as x, assignProps as b, Component as R } from "@semcore/core";
10
- import c from "react";
11
- import { Box as v } from "@semcore/flex-box";
12
- import z from "@semcore/utils/lib/addonTextChildren";
13
- import A from "@semcore/utils/lib/enhances/keyboardFocusEnhance";
14
- import E from "@semcore/utils/lib/enhances/a11yEnhance";
15
- import T from "@semcore/neighbor-location";
16
- var N = (
1
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
3
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
4
+ import _assertThisInitialized from "@babel/runtime/helpers/esm/assertThisInitialized";
5
+ import _inherits from "@babel/runtime/helpers/esm/inherits";
6
+ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
7
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
8
+ import { sstyled } from "@semcore/utils/lib/core/index";
9
+ import createComponent, { sstyled as sstyled$1, assignProps, Component } from "@semcore/core";
10
+ import React from "react";
11
+ import { Box } from "@semcore/flex-box";
12
+ import addonTextChildren from "@semcore/utils/lib/addonTextChildren";
13
+ import keyboardFocusEnhance from "@semcore/utils/lib/enhances/keyboardFocusEnhance";
14
+ import a11yEnhance from "@semcore/utils/lib/enhances/a11yEnhance";
15
+ import NeighborLocation from "@semcore/neighbor-location";
16
+ /*!__reshadow-styles__:"./style/tab-line.shadow.css"*/
17
+ var style = (
17
18
  /*__reshadow_css_start__*/
18
- (w.insert(
19
+ (sstyled.insert(
19
20
  /*__inner_css_start__*/
20
- '.___STabLine_xoas8_gg_{position:relative;display:flex;width:100%;max-width:100%}.___STabLine_xoas8_gg_.__underlined_xoas8_gg_{border-bottom:1px solid var(--intergalactic-border-primary, #c4c7cf)}.___STabLineItem_xoas8_gg_{display:inline-flex;align-items:center;justify-content:center;position:relative;touch-action:manipulation;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;box-sizing:border-box;padding:0;margin:0;box-shadow:none;-webkit-text-decoration:none;text-decoration:none;-webkit-tap-highlight-color:transparent;overflow:visible;outline:0;text-align:center;vertical-align:middle;font-family:inherit;cursor:pointer;border:0;background:0 0;color:var(--intergalactic-text-primary, #191b23);margin-right:var(--intergalactic-spacing-4x, 16px);font-weight:var(--intergalactic-medium, 500)}.___STabLineItem_xoas8_gg_::-moz-focus-inner{border:0;padding:0}.___STabLineItem_xoas8_gg_:active,.___STabLineItem_xoas8_gg_:focus{outline:0;-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___STabLineItem_xoas8_gg_:hover{outline:0;-webkit-text-decoration:none;text-decoration:none}}.___STabLineItem_xoas8_gg_::after,.___STabLineItem_xoas8_gg_::before{content:"";position:absolute;left:0;bottom:-1px;height:3px;width:100%;background-color:transparent}.___STabLineItem_xoas8_gg_::before{transition:background-color calc(var(--intergalactic-duration-control, 200)*1ms) ease-in-out}@media (hover:hover){.___STabLineItem_xoas8_gg_:hover::before{background-color:var(--intergalactic-border-primary, #c4c7cf)}}.___STabLineItem_xoas8_gg_.__selected_xoas8_gg_::after{transition-delay:calc(var(--intergalactic-duration-control, 200)*1ms);background-color:var(--intergalactic-border-info-active, #006dca)}.___STabLineItem_xoas8_gg_ .___SAddon_xoas8_gg_:not(:last-child),.___STabLineItem_xoas8_gg_ .___SText_xoas8_gg_:not(:last-child){margin-right:var(--intergalactic-spacing-2x, 8px)}.___SCaret_xoas8_gg_{position:absolute;bottom:-1px;height:3px;background-color:var(--intergalactic-border-info-active, #006dca);transition:calc(var(--intergalactic-duration-control, 200)*1ms) all ease-in-out}.___STabLineItem_xoas8_gg_.__selected_xoas8_gg_{flex-shrink:0}.___STabLineItem_xoas8_gg_.__disabled_xoas8_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none}.___STabLineItem_xoas8_gg_.__keyboardFocused_xoas8_gg_{box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5))}.___SText_xoas8_gg_{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.___SAddon_xoas8_gg_{display:inline-flex;align-items:center;justify-content:center}.___STabLineItem_xoas8_gg_._size_m_xoas8_gg_{height:28px;min-width:18px}.___STabLineItem_xoas8_gg_._size_m_xoas8_gg_ .___SText_xoas8_gg_{font-size:var(--intergalactic-fs-200, 14px);line-height:var(--intergalactic-lh-200, 142%)}.___STabLineItem_xoas8_gg_._size_l_xoas8_gg_{height:40px;min-width:26px}.___STabLineItem_xoas8_gg_._size_l_xoas8_gg_ .___SText_xoas8_gg_{font-size:var(--intergalactic-fs-300, 16px);line-height:var(--intergalactic-lh-300, 150%)}.___STabLineItem_xoas8_gg_._neighborLocation_left_xoas8_gg_{margin-right:0}@media (prefers-reduced-motion){.___STabLineItem_xoas8_gg_.__selected_xoas8_gg_::after,.___STabLineItem_xoas8_gg_::after,.___STabLineItem_xoas8_gg_::before{transition:none}.___SCaret_xoas8_gg_{display:none}}',
21
- "xoas8_gg_"
22
- ), {
23
- __STabLine: "___STabLine_xoas8_gg_",
24
- _underlined: "__underlined_xoas8_gg_",
25
- __SCaret: "___SCaret_xoas8_gg_",
26
- __STabLineItem: "___STabLineItem_xoas8_gg_",
27
- _selected: "__selected_xoas8_gg_",
28
- _disabled: "__disabled_xoas8_gg_",
29
- _keyboardFocused: "__keyboardFocused_xoas8_gg_",
30
- __SText: "___SText_xoas8_gg_",
31
- __SAddon: "___SAddon_xoas8_gg_",
32
- _neighborLocation_left: "_neighborLocation_left_xoas8_gg_",
33
- _size_m: "_size_m_xoas8_gg_",
34
- _size_l: "_size_l_xoas8_gg_"
21
+ '.___STabLine_aog65_gg_{position:relative;display:flex;width:100%;max-width:100%}.___STabLine_aog65_gg_.__underlined_aog65_gg_{border-bottom:1px solid var(--intergalactic-border-primary, #c4c7cf)}.___STabLineItem_aog65_gg_{display:inline-flex;align-items:center;justify-content:center;position:relative;touch-action:manipulation;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;box-sizing:border-box;padding:0;margin:0;box-shadow:none;-webkit-text-decoration:none;text-decoration:none;-webkit-tap-highlight-color:transparent;overflow:visible;outline:0;text-align:center;vertical-align:middle;font-family:inherit;cursor:pointer;border:0;background:0 0;color:var(--intergalactic-text-primary, #191b23);margin-right:var(--intergalactic-spacing-4x, 16px);font-weight:var(--intergalactic-medium, 500)}.___STabLineItem_aog65_gg_::-moz-focus-inner{border:0;padding:0}.___STabLineItem_aog65_gg_:active,.___STabLineItem_aog65_gg_:focus{outline:0;-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___STabLineItem_aog65_gg_:hover{outline:0;-webkit-text-decoration:none;text-decoration:none}}.___STabLineItem_aog65_gg_::after,.___STabLineItem_aog65_gg_::before{content:"";position:absolute;left:0;bottom:-1px;height:3px;width:100%;background-color:transparent}.___STabLineItem_aog65_gg_::before{transition:background-color calc(var(--intergalactic-duration-control, 200)*1ms) ease-in-out}@media (hover:hover){.___STabLineItem_aog65_gg_:hover::before{background-color:var(--intergalactic-border-primary, #c4c7cf)}}.___STabLineItem_aog65_gg_.__selected_aog65_gg_::after{transition-delay:calc(var(--intergalactic-duration-control, 200)*1ms);background-color:var(--intergalactic-border-info-active, #006dca)}.___STabLineItem_aog65_gg_ .___SAddon_aog65_gg_:not(:last-child),.___STabLineItem_aog65_gg_ .___SText_aog65_gg_:not(:last-child){margin-right:var(--intergalactic-spacing-2x, 8px)}.___SCaret_aog65_gg_{position:absolute;bottom:-1px;height:3px;background-color:var(--intergalactic-border-info-active, #006dca);transition:calc(var(--intergalactic-duration-control, 200)*1ms) all ease-in-out}.___STabLineItem_aog65_gg_.__selected_aog65_gg_{flex-shrink:0}.___STabLineItem_aog65_gg_.__disabled_aog65_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none}.___STabLineItem_aog65_gg_.__keyboardFocused_aog65_gg_{box-shadow:var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5))}.___SText_aog65_gg_{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.___SAddon_aog65_gg_{display:inline-flex;align-items:center;justify-content:center}.___STabLineItem_aog65_gg_._size_m_aog65_gg_{height:28px;min-width:18px}.___STabLineItem_aog65_gg_._size_m_aog65_gg_ .___SText_aog65_gg_{font-size:var(--intergalactic-fs-200, 14px);line-height:var(--intergalactic-lh-200, 142%)}.___STabLineItem_aog65_gg_._size_l_aog65_gg_{height:40px;min-width:26px}.___STabLineItem_aog65_gg_._size_l_aog65_gg_ .___SText_aog65_gg_{font-size:var(--intergalactic-fs-300, 16px);line-height:var(--intergalactic-lh-300, 150%)}.___STabLineItem_aog65_gg_._neighborLocation_left_aog65_gg_{margin-right:0}@media (prefers-reduced-motion){.___STabLineItem_aog65_gg_.__selected_aog65_gg_::after,.___STabLineItem_aog65_gg_::after,.___STabLineItem_aog65_gg_::before{transition:none}.___SCaret_aog65_gg_{display:none}}',
22
+ /*__inner_css_end__*/
23
+ "aog65_gg_"
24
+ ), /*__reshadow_css_end__*/
25
+ {
26
+ "__STabLine": "___STabLine_aog65_gg_",
27
+ "_underlined": "__underlined_aog65_gg_",
28
+ "__SCaret": "___SCaret_aog65_gg_",
29
+ "__STabLineItem": "___STabLineItem_aog65_gg_",
30
+ "_selected": "__selected_aog65_gg_",
31
+ "_disabled": "__disabled_aog65_gg_",
32
+ "_keyboardFocused": "__keyboardFocused_aog65_gg_",
33
+ "__SText": "___SText_aog65_gg_",
34
+ "__SAddon": "___SAddon_aog65_gg_",
35
+ "_neighborLocation_left": "_neighborLocation_left_aog65_gg_",
36
+ "_size_m": "_size_m_aog65_gg_",
37
+ "_size_l": "_size_l_aog65_gg_"
35
38
  })
36
- ), V = {
37
- onNeighborChange: function(o, a) {
38
- o && (o.focus(), a.behavior === "auto" && o.click());
39
+ );
40
+ var optionsA11yEnhance = {
41
+ onNeighborChange: function onNeighborChange(neighborElement, props) {
42
+ if (neighborElement) {
43
+ neighborElement.focus();
44
+ if (props.behavior === "auto") {
45
+ neighborElement.click();
46
+ }
47
+ }
39
48
  },
40
49
  childSelector: ["role", "tab"]
41
- }, h = /* @__PURE__ */ function(_) {
42
- k(a, _);
43
- var o = C(a);
44
- function a() {
45
- var e;
46
- y(this, a);
47
- for (var t = arguments.length, n = new Array(t), r = 0; r < t; r++)
48
- n[r] = arguments[r];
49
- return e = o.call.apply(o, [this].concat(n)), l(d(e), "state", {
50
+ };
51
+ var TabLineRoot = /* @__PURE__ */ function(_Component) {
52
+ _inherits(TabLineRoot2, _Component);
53
+ var _super = _createSuper(TabLineRoot2);
54
+ function TabLineRoot2() {
55
+ var _this;
56
+ _classCallCheck(this, TabLineRoot2);
57
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
58
+ args[_key] = arguments[_key];
59
+ }
60
+ _this = _super.call.apply(_super, [this].concat(args));
61
+ _defineProperty(_assertThisInitialized(_this), "state", {
50
62
  animation: null
51
- }), l(d(e), "prevValue", void 0), l(d(e), "itemRefs", {}), l(d(e), "containerRef", /* @__PURE__ */ c.createRef()), l(d(e), "animationStartTimeout", -1), l(d(e), "handleAnimationStart", function() {
52
- var i;
53
- ((i = e.state.animation) === null || i === void 0 ? void 0 : i.started) === !1 && e.setState({
54
- animation: u(u({}, e.state.animation), {}, {
55
- started: !0
56
- })
57
- });
58
- }), l(d(e), "handleAnimationEnd", function() {
59
- e.setState({
63
+ });
64
+ _defineProperty(_assertThisInitialized(_this), "prevValue", void 0);
65
+ _defineProperty(_assertThisInitialized(_this), "itemRefs", {});
66
+ _defineProperty(_assertThisInitialized(_this), "containerRef", /* @__PURE__ */ React.createRef());
67
+ _defineProperty(_assertThisInitialized(_this), "animationStartTimeout", -1);
68
+ _defineProperty(_assertThisInitialized(_this), "handleAnimationStart", function() {
69
+ var _this$state$animation;
70
+ if (((_this$state$animation = _this.state.animation) === null || _this$state$animation === void 0 ? void 0 : _this$state$animation.started) === false) {
71
+ _this.setState({
72
+ animation: _objectSpread(_objectSpread({}, _this.state.animation), {}, {
73
+ started: true
74
+ })
75
+ });
76
+ }
77
+ });
78
+ _defineProperty(_assertThisInitialized(_this), "handleAnimationEnd", function() {
79
+ _this.setState({
60
80
  animation: null
61
81
  });
62
- }), l(d(e), "bindHandlerClick", function(i) {
63
- return function(s) {
64
- e.handlers.value(i, s);
82
+ });
83
+ _defineProperty(_assertThisInitialized(_this), "bindHandlerClick", function(value) {
84
+ return function(e) {
85
+ _this.handlers.value(value, e);
65
86
  };
66
- }), e;
87
+ });
88
+ return _this;
67
89
  }
68
- return I(a, [{
90
+ _createClass(TabLineRoot2, [{
69
91
  key: "uncontrolledProps",
70
- value: function() {
92
+ value: function uncontrolledProps() {
71
93
  return {
72
94
  value: null
73
95
  };
74
96
  }
75
97
  }, {
76
98
  key: "componentDidUpdate",
77
- value: function() {
78
- this.prevValue !== null && this.asProps.value !== null && this.prevValue !== this.asProps.value && this.animate(), this.prevValue = this.asProps.value;
99
+ value: function componentDidUpdate() {
100
+ if (this.prevValue !== null && this.asProps.value !== null && this.prevValue !== this.asProps.value) {
101
+ this.animate();
102
+ }
103
+ this.prevValue = this.asProps.value;
79
104
  }
80
105
  }, {
81
106
  key: "componentDidMount",
82
- value: function() {
107
+ value: function componentDidMount() {
83
108
  this.prevValue = this.asProps.value;
84
109
  }
85
110
  }, {
86
111
  key: "componentWillUnmount",
87
- value: function() {
112
+ value: function componentWillUnmount() {
88
113
  clearTimeout(this.animationStartTimeout);
89
114
  }
90
115
  }, {
91
116
  key: "animate",
92
- value: function() {
93
- var t = this.itemRefs[this.prevValue], n = this.itemRefs[this.asProps.value], r = this.containerRef.current;
94
- if (!(!t || !n || !r)) {
95
- var i = r.getBoundingClientRect(), s = t.getBoundingClientRect(), g = n.getBoundingClientRect(), m = {
96
- fromLeft: s.x - i.x,
97
- fromWidth: s.width,
98
- toLeft: g.x - i.x,
99
- toWidth: g.width,
100
- started: !1
101
- };
102
- this.setState({
103
- animation: m
104
- }), clearTimeout(this.animationStartTimeout), this.animationStartTimeout = setTimeout(this.handleAnimationStart, 0);
105
- }
117
+ value: function animate() {
118
+ var fromNode = this.itemRefs[this.prevValue];
119
+ var toNode = this.itemRefs[this.asProps.value];
120
+ var containerNode = this.containerRef.current;
121
+ if (!fromNode || !toNode || !containerNode) return;
122
+ var containerRect = containerNode.getBoundingClientRect();
123
+ var fromRect = fromNode.getBoundingClientRect();
124
+ var toRect = toNode.getBoundingClientRect();
125
+ var animation = {
126
+ fromLeft: fromRect.x - containerRect.x,
127
+ fromWidth: fromRect.width,
128
+ toLeft: toRect.x - containerRect.x,
129
+ toWidth: toRect.width,
130
+ started: false
131
+ };
132
+ this.setState({
133
+ animation
134
+ });
135
+ clearTimeout(this.animationStartTimeout);
136
+ this.animationStartTimeout = setTimeout(this.handleAnimationStart, 0);
106
137
  }
107
138
  }, {
108
139
  key: "getItemProps",
109
- value: function(t, n) {
110
- var r = this, i = this.asProps, s = i.value, g = i.size, m = s === t.value;
140
+ value: function getItemProps(props, index) {
141
+ var _this2 = this;
142
+ var _this$asProps = this.asProps, value = _this$asProps.value, size = _this$asProps.size;
143
+ var isSelected = value === props.value;
111
144
  return {
112
- size: g,
113
- selected: m,
114
- onClick: this.bindHandlerClick(t.value),
115
- tabIndex: m ? 0 : -1,
116
- "aria-selected": m,
117
- ref: function(p) {
118
- r.itemRefs[t.value] = p;
145
+ size,
146
+ selected: isSelected,
147
+ onClick: this.bindHandlerClick(props.value),
148
+ tabIndex: isSelected ? 0 : -1,
149
+ "aria-selected": isSelected,
150
+ ref: function ref(node) {
151
+ _this2.itemRefs[props.value] = node;
119
152
  }
120
153
  };
121
154
  }
122
155
  }, {
123
156
  key: "getCaretProps",
124
- value: function() {
125
- var t = this.state.animation;
126
- return t ? t.started ? {
127
- style: {
128
- left: t.toLeft,
129
- width: t.toWidth
130
- },
131
- onTransitionEnd: this.handleAnimationEnd
132
- } : {
133
- style: {
134
- left: t.fromLeft,
135
- width: t.fromWidth
136
- },
137
- onTransitionEnd: this.handleAnimationEnd
138
- } : {};
157
+ value: function getCaretProps() {
158
+ var animation = this.state.animation;
159
+ if (!animation) return {};
160
+ if (animation.started) {
161
+ return {
162
+ style: {
163
+ left: animation.toLeft,
164
+ width: animation.toWidth
165
+ },
166
+ onTransitionEnd: this.handleAnimationEnd
167
+ };
168
+ } else {
169
+ return {
170
+ style: {
171
+ left: animation.fromLeft,
172
+ width: animation.fromWidth
173
+ },
174
+ onTransitionEnd: this.handleAnimationEnd
175
+ };
176
+ }
139
177
  }
140
178
  }, {
141
179
  key: "render",
142
- value: function() {
143
- var t = this.asProps, n, r = v, i = "div", s = this.asProps, g = s.styles, m = s.Children, S = s.controlsLength, p = this.state.animation;
144
- return n = x(g), /* @__PURE__ */ c.createElement(r, n.cn("STabLine", u({}, b({
145
- role: "tablist",
146
- ref: this.containerRef
147
- }, t))), /* @__PURE__ */ c.createElement(T, n.cn("NeighborLocation", {
148
- controlsLength: S
149
- }), /* @__PURE__ */ c.createElement(m, n.cn("Children", {}))), p && /* @__PURE__ */ c.createElement(i, n.cn("SCaret", u({}, this.getCaretProps()))));
180
+ value: function render() {
181
+ var _ref = this.asProps, _ref5;
182
+ var STabLine = Box;
183
+ var SCaret = "div";
184
+ var _this$asProps2 = this.asProps, styles = _this$asProps2.styles, Children = _this$asProps2.Children, controlsLength = _this$asProps2.controlsLength;
185
+ var animation = this.state.animation;
186
+ return _ref5 = sstyled$1(styles), /* @__PURE__ */ React.createElement(STabLine, _ref5.cn("STabLine", _objectSpread({}, assignProps({
187
+ "role": "tablist",
188
+ "ref": this.containerRef
189
+ }, _ref))), /* @__PURE__ */ React.createElement(NeighborLocation, _ref5.cn("NeighborLocation", {
190
+ "controlsLength": controlsLength
191
+ }), /* @__PURE__ */ React.createElement(Children, _ref5.cn("Children", {}))), animation && /* @__PURE__ */ React.createElement(SCaret, _ref5.cn("SCaret", _objectSpread({}, this.getCaretProps()))));
150
192
  }
151
- }]), a;
152
- }(R);
153
- l(h, "displayName", "TabLine");
154
- l(h, "style", N);
155
- l(h, "defaultProps", {
193
+ }]);
194
+ return TabLineRoot2;
195
+ }(Component);
196
+ _defineProperty(TabLineRoot, "displayName", "TabLine");
197
+ _defineProperty(TabLineRoot, "style", style);
198
+ _defineProperty(TabLineRoot, "defaultProps", {
156
199
  defaultValue: null,
157
200
  size: "m",
158
- underlined: !0,
201
+ underlined: true,
159
202
  behavior: "auto"
160
203
  });
161
- l(h, "enhance", [E(V)]);
162
- function L(_) {
163
- var o = arguments[0], a = v, e = _.Children, t = _.styles, n = _.addonLeft, r = _.addonRight, i = _.neighborLocation;
164
- return /* @__PURE__ */ c.createElement(T.Detect, {
165
- neighborLocation: i
166
- }, function(s) {
167
- var g;
168
- return g = x(t), /* @__PURE__ */ c.createElement(a, g.cn("STabLineItem", u({}, b({
169
- tag: "button",
170
- neighborLocation: s,
171
- type: "button",
172
- role: "tab"
173
- }, o))), n ? /* @__PURE__ */ c.createElement(f.Item.Addon, {
174
- tag: n
175
- }) : null, z(e, f.Item.Text, f.Item.Addon), r ? /* @__PURE__ */ c.createElement(f.Item.Addon, {
176
- tag: r
204
+ _defineProperty(TabLineRoot, "enhance", [a11yEnhance(optionsA11yEnhance)]);
205
+ function TabLineItem(props) {
206
+ var _ref2 = arguments[0];
207
+ var STabLineItem = Box;
208
+ var Children = props.Children, styles = props.styles, addonLeft = props.addonLeft, addonRight = props.addonRight, neighborLocation = props.neighborLocation;
209
+ return /* @__PURE__ */ React.createElement(NeighborLocation.Detect, {
210
+ neighborLocation
211
+ }, function(neighborLocation2) {
212
+ var _ref6;
213
+ return _ref6 = sstyled$1(styles), /* @__PURE__ */ React.createElement(STabLineItem, _ref6.cn("STabLineItem", _objectSpread({}, assignProps({
214
+ "tag": "button",
215
+ "neighborLocation": neighborLocation2,
216
+ "type": "button",
217
+ "role": "tab"
218
+ }, _ref2))), addonLeft ? /* @__PURE__ */ React.createElement(TabLine.Item.Addon, {
219
+ tag: addonLeft
220
+ }) : null, addonTextChildren(Children, TabLine.Item.Text, TabLine.Item.Addon), addonRight ? /* @__PURE__ */ React.createElement(TabLine.Item.Addon, {
221
+ tag: addonRight
177
222
  }) : null);
178
223
  });
179
224
  }
180
- L.enhance = [A()];
181
- function W(_) {
182
- var o = arguments[0], a, e = _.styles, t = v;
183
- return a = x(e), /* @__PURE__ */ c.createElement(t, a.cn("SText", u({}, b({
184
- tag: "span"
185
- }, o))));
225
+ TabLineItem.enhance = [keyboardFocusEnhance()];
226
+ function Text(props) {
227
+ var _ref3 = arguments[0], _ref7;
228
+ var styles = props.styles;
229
+ var SText = Box;
230
+ return _ref7 = sstyled$1(styles), /* @__PURE__ */ React.createElement(SText, _ref7.cn("SText", _objectSpread({}, assignProps({
231
+ "tag": "span"
232
+ }, _ref3))));
186
233
  }
187
- function D(_) {
188
- var o = arguments[0], a, e = _.styles, t = v;
189
- return a = x(e), /* @__PURE__ */ c.createElement(t, a.cn("SAddon", u({}, b({
190
- tag: "span"
191
- }, o))));
234
+ function Addon(props) {
235
+ var _ref4 = arguments[0], _ref8;
236
+ var styles = props.styles;
237
+ var SAddon = Box;
238
+ return _ref8 = sstyled$1(styles), /* @__PURE__ */ React.createElement(SAddon, _ref8.cn("SAddon", _objectSpread({}, assignProps({
239
+ "tag": "span"
240
+ }, _ref4))));
192
241
  }
193
- var f = P(h, {
194
- Item: [L, {
195
- Text: W,
196
- Addon: D
242
+ var TabLine = createComponent(TabLineRoot, {
243
+ Item: [TabLineItem, {
244
+ Text,
245
+ Addon
197
246
  }]
198
- }), Z = function(o) {
199
- return o;
247
+ });
248
+ var wrapTabLine = function wrapTabLine2(wrapper) {
249
+ return wrapper;
200
250
  };
201
251
  export {
202
- f as default,
203
- Z as wrapTabLine
252
+ TabLine as default,
253
+ wrapTabLine
204
254
  };
package/lib/esm/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { default as r, wrapTabLine as f } from "./TabLine.mjs";
1
+ import { default as default2, wrapTabLine } from "./TabLine.mjs";
2
2
  export {
3
- r as default,
4
- f as wrapTabLine
3
+ default2 as default,
4
+ wrapTabLine
5
5
  };
@@ -0,0 +1,159 @@
1
+ STabLine {
2
+ position: relative;
3
+ display: flex;
4
+ width: 100%;
5
+ max-width: 100%;
6
+ }
7
+
8
+ STabLine[underlined] {
9
+ border-bottom: 1px solid var(--intergalactic-border-primary, #c4c7cf);
10
+ }
11
+
12
+ STabLineItem {
13
+ display: inline-flex;
14
+ align-items: center;
15
+ justify-content: center;
16
+ position: relative;
17
+ touch-action: manipulation;
18
+ white-space: nowrap;
19
+ user-select: none;
20
+ box-sizing: border-box;
21
+ padding: 0;
22
+ margin: 0;
23
+ box-shadow: none;
24
+ text-decoration: none;
25
+ -webkit-tap-highlight-color: transparent;
26
+ overflow: visible;
27
+ outline: 0;
28
+ text-align: center;
29
+ vertical-align: middle;
30
+ font-family: inherit;
31
+ cursor: pointer;
32
+ border: none;
33
+ background: transparent;
34
+ color: var(--intergalactic-text-primary, #191b23);
35
+ margin-right: var(--intergalactic-spacing-4x, 16px);
36
+ font-weight: var(--intergalactic-medium, 500);
37
+
38
+ &::-moz-focus-inner {
39
+ border: none;
40
+ padding: 0;
41
+ }
42
+
43
+ &:active,
44
+ &:hover,
45
+ &:focus {
46
+ outline: 0;
47
+ text-decoration: none;
48
+ }
49
+
50
+ &::before,
51
+ &::after {
52
+ content: '';
53
+ position: absolute;
54
+ left: 0;
55
+ bottom: -1px;
56
+ height: 3px;
57
+ width: 100%;
58
+ background-color: transparent;
59
+ }
60
+
61
+ &::before {
62
+ transition: background-color calc(var(--intergalactic-duration-control, 200) * 1ms) ease-in-out;
63
+ }
64
+
65
+ &:hover::before {
66
+ background-color: var(--intergalactic-border-primary, #c4c7cf);
67
+ }
68
+
69
+ &[selected]::after {
70
+ transition-delay: calc(var(--intergalactic-duration-control, 200) * 1ms);
71
+ background-color: var(--intergalactic-border-info-active, #006dca);
72
+ }
73
+
74
+ & SText:not(:last-child) {
75
+ margin-right: var(--intergalactic-spacing-2x, 8px);
76
+ }
77
+
78
+ & SAddon:not(:last-child) {
79
+ margin-right: var(--intergalactic-spacing-2x, 8px);
80
+ }
81
+ }
82
+
83
+ SCaret {
84
+ position: absolute;
85
+ bottom: -1px;
86
+ height: 3px;
87
+ background-color: var(--intergalactic-border-info-active, #006dca);
88
+ transition: calc(var(--intergalactic-duration-control, 200) * 1ms) all ease-in-out;
89
+ }
90
+
91
+ STabLineItem[selected] {
92
+ flex-shrink: 0;
93
+ }
94
+
95
+ STabLineItem[disabled] {
96
+ opacity: var(--intergalactic-disabled-opacity, 0.3);
97
+ cursor: default;
98
+ /* Disable link interactions */
99
+ pointer-events: none;
100
+ }
101
+
102
+ STabLineItem[keyboardFocused] {
103
+ box-shadow: var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5));
104
+ }
105
+
106
+ SText {
107
+ display: inline-block;
108
+ white-space: nowrap;
109
+ overflow: hidden;
110
+ text-overflow: ellipsis;
111
+ }
112
+
113
+ SAddon {
114
+ display: inline-flex;
115
+ align-items: center;
116
+ justify-content: center;
117
+ }
118
+
119
+ STabLineItem[size='m'] {
120
+ height: 28px;
121
+ min-width: 18px;
122
+
123
+ & SText {
124
+ font-size: var(--intergalactic-fs-200, 14px);
125
+ line-height: var(--intergalactic-lh-200, 142%);
126
+ }
127
+ }
128
+
129
+ STabLineItem[size='l'] {
130
+ height: 40px;
131
+ min-width: 26px;
132
+
133
+ & SText {
134
+ font-size: var(--intergalactic-fs-300, 16px);
135
+ line-height: var(--intergalactic-lh-300, 150%);
136
+ }
137
+ }
138
+
139
+ STabLineItem[neighborLocation='left'] {
140
+ margin-right: 0;
141
+ }
142
+
143
+ @media (prefers-reduced-motion) {
144
+ STabLineItem {
145
+
146
+ &::before,
147
+ &::after {
148
+ transition: none;
149
+ }
150
+
151
+ &[selected]::after {
152
+ transition: none;
153
+ }
154
+ }
155
+
156
+ SCaret {
157
+ display: none;
158
+ }
159
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semcore/tab-line",
3
3
  "description": "Semrush TabLine Component",
4
- "version": "4.40.2",
4
+ "version": "4.40.3",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es6/index.js",
7
7
  "typings": "lib/types/index.d.ts",
@@ -14,9 +14,9 @@
14
14
  "types": "./lib/types/index.d.ts"
15
15
  },
16
16
  "dependencies": {
17
- "@semcore/flex-box": "5.41.2",
18
- "@semcore/neighbor-location": "4.40.2",
19
- "@semcore/utils": "4.48.2"
17
+ "@semcore/flex-box": "5.41.3",
18
+ "@semcore/neighbor-location": "4.40.3",
19
+ "@semcore/utils": "4.48.4"
20
20
  },
21
21
  "peerDependencies": {
22
22
  "@semcore/core": "^2.17.5",