@semcore/base-trigger 2.6.3 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/lib/cjs/BaseTrigger.js +22 -24
  3. package/lib/cjs/BaseTrigger.js.map +1 -1
  4. package/lib/cjs/ButtonTrigger.js +8 -6
  5. package/lib/cjs/ButtonTrigger.js.map +1 -1
  6. package/lib/cjs/FilterTrigger.js +18 -20
  7. package/lib/cjs/FilterTrigger.js.map +1 -1
  8. package/lib/cjs/LinkTrigger.js +17 -19
  9. package/lib/cjs/LinkTrigger.js.map +1 -1
  10. package/lib/cjs/index.d.ts +81 -0
  11. package/lib/cjs/index.js +3 -50
  12. package/lib/cjs/index.js.map +1 -1
  13. package/lib/cjs/style/base-trigger.shadow.css +31 -88
  14. package/lib/cjs/style/button-trigger.shadow.css +4 -0
  15. package/lib/cjs/style/filter-trigger.shadow.css +19 -32
  16. package/lib/cjs/style/link-trigger.shadow.css +9 -19
  17. package/lib/es6/BaseTrigger.js +22 -24
  18. package/lib/es6/BaseTrigger.js.map +1 -1
  19. package/lib/es6/ButtonTrigger.js +8 -6
  20. package/lib/es6/ButtonTrigger.js.map +1 -1
  21. package/lib/es6/FilterTrigger.js +18 -20
  22. package/lib/es6/FilterTrigger.js.map +1 -1
  23. package/lib/es6/LinkTrigger.js +17 -19
  24. package/lib/es6/LinkTrigger.js.map +1 -1
  25. package/lib/es6/index.d.ts +81 -0
  26. package/lib/es6/index.js +0 -3
  27. package/lib/es6/index.js.map +1 -1
  28. package/lib/es6/style/base-trigger.shadow.css +31 -88
  29. package/lib/es6/style/button-trigger.shadow.css +4 -0
  30. package/lib/es6/style/filter-trigger.shadow.css +19 -32
  31. package/lib/es6/style/link-trigger.shadow.css +9 -19
  32. package/lib/types/index.d.ts +1 -1
  33. package/package.json +5 -2
  34. package/src/ButtonTrigger.jsx +2 -1
  35. package/src/index.d.ts +1 -1
  36. package/src/index.js +0 -3
  37. package/src/style/base-trigger.shadow.css +31 -88
  38. package/src/style/button-trigger.shadow.css +4 -0
  39. package/src/style/filter-trigger.shadow.css +19 -32
  40. package/src/style/link-trigger.shadow.css +9 -19
@@ -31,25 +31,23 @@ var style = (
31
31
  /*__reshadow_css_start__*/
32
32
  _sstyled.insert(
33
33
  /*__inner_css_start__*/
34
- ".___SLinkTrigger_qt3iv_gg_{display:inline-flex;align-items:center;line-height:normal;position:relative;touch-action:manipulation;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;box-sizing:border-box;padding:0;margin:0;outline:none;text-decoration:none;-webkit-tap-highlight-color:transparent;overflow:visible;outline:0;vertical-align:middle;font-family:inherit;cursor:pointer}.___SLinkTrigger_qt3iv_gg_{color:#0071bc;background:none;transition:color .15s ease-in-out}.___SLinkTrigger_qt3iv_gg_:active,.___SLinkTrigger_qt3iv_gg_:hover,.___SLinkTrigger_qt3iv_gg_.__active_qt3iv_gg_{color:#0063a5}.___SLinkTrigger_qt3iv_gg_:active .___SText_qt3iv_gg_,.___SLinkTrigger_qt3iv_gg_:hover .___SText_qt3iv_gg_,.___SLinkTrigger_qt3iv_gg_.__active_qt3iv_gg_ .___SText_qt3iv_gg_{border-color:currentColor}.___SLinkTrigger_qt3iv_gg_ .___SText_qt3iv_gg_{border-bottom-width:1px;border-bottom-style:solid;border-color:transparent;transition:border-bottom-color .15s ease-in-out}.___SLinkTrigger_qt3iv_gg_.__color_qt3iv_gg_{color:var(--color_rbea4n)}.___SLinkTrigger_qt3iv_gg_.__color_qt3iv_gg_:hover{color:var(--color-hover_rbea4n)}.___SLinkTrigger_qt3iv_gg_.__disabled_qt3iv_gg_{opacity:0.3;cursor:default;pointer-events:none}.___SLinkTrigger_qt3iv_gg_.__keyboardFocused_qt3iv_gg_{box-shadow:0 0 0 3px rgba(43, 148, 225, 0.3);z-index:1}.___SAddon_qt3iv_gg_,.___SLinkAddon_qt3iv_gg_{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.___SAddon_qt3iv_gg_:not(:only-child):first-child,.___SLinkAddon_qt3iv_gg_:not(:only-child):first-child{margin-right:4px}.___SAddon_qt3iv_gg_:not(:only-child):last-child,.___SLinkAddon_qt3iv_gg_:not(:only-child):last-child{margin-left:4px}.___SLinkAddon_qt3iv_gg_{width:12px;height:12px}.___SLinkTrigger_qt3iv_gg_._size_s_qt3iv_gg_{font-size:10px}.___SLinkTrigger_qt3iv_gg_._size_m_qt3iv_gg_{font-size:12px}.___SLinkTrigger_qt3iv_gg_._size_l_qt3iv_gg_{font-size:14px}.___SLinkTrigger_qt3iv_gg_._size_xl_qt3iv_gg_{font-size:16px}@media (prefers-reduced-motion){.___SLinkTrigger_qt3iv_gg_{transition:none}.___SLinkTrigger_qt3iv_gg_ .___SText_qt3iv_gg_{transition:none}}"
34
+ ".___SLinkTrigger_1lk11_gg_{display:inline-flex;align-items:center;line-height:normal;position:relative;touch-action:manipulation;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;box-sizing:border-box;padding:0;margin:0;outline:none;text-decoration:none;-webkit-tap-highlight-color:transparent;overflow:visible;outline:0;vertical-align:middle;font-family:Inter,sans-serif;cursor:pointer;color:#006dca;background:none;transition:color .15s ease-in-out}.___SLinkTrigger_1lk11_gg_:active,.___SLinkTrigger_1lk11_gg_:hover,.___SLinkTrigger_1lk11_gg_.__active_1lk11_gg_{color:#044792}.___SLinkTrigger_1lk11_gg_:active .___SText_1lk11_gg_,.___SLinkTrigger_1lk11_gg_:hover .___SText_1lk11_gg_,.___SLinkTrigger_1lk11_gg_.__active_1lk11_gg_ .___SText_1lk11_gg_{border-color:currentColor}.___SLinkTrigger_1lk11_gg_ .___SText_1lk11_gg_{border-bottom-width:1px;border-bottom-style:solid;border-color:transparent;transition:border-bottom-color .15s ease-in-out;line-height:1.42}.___SLinkTrigger_1lk11_gg_.__color_1lk11_gg_{color:var(--color_klk89u)}.___SLinkTrigger_1lk11_gg_.__color_1lk11_gg_:hover{color:var(--color-hover_klk89u)}.___SLinkTrigger_1lk11_gg_.__disabled_1lk11_gg_{opacity:0.3;cursor:default;pointer-events:none}.___SLinkTrigger_1lk11_gg_.__keyboardFocused_1lk11_gg_{box-shadow:0 0 0 3px rgba(0, 143, 248, 0.2);z-index:1}.___SAddon_1lk11_gg_,.___SLinkAddon_1lk11_gg_{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.___SAddon_1lk11_gg_:not(:only-child):first-child,.___SLinkAddon_1lk11_gg_:not(:only-child):first-child{margin-right:4px}.___SAddon_1lk11_gg_:not(:only-child):last-child,.___SLinkAddon_1lk11_gg_:not(:only-child):last-child{margin-left:4px}.___SLinkAddon_1lk11_gg_{width:16px;height:16px}.___SLinkTrigger_1lk11_gg_._size_m_1lk11_gg_{font-size:14px}.___SLinkTrigger_1lk11_gg_._size_l_1lk11_gg_{font-size:16px}@media (prefers-reduced-motion){.___SLinkTrigger_1lk11_gg_{transition:none}.___SLinkTrigger_1lk11_gg_ .___SText_1lk11_gg_{transition:none}}"
35
35
  /*__inner_css_end__*/
36
- , "rbea4n_gg_")
36
+ , "klk89u_gg_")
37
37
  /*__reshadow_css_end__*/
38
38
  , {
39
- "__SLinkTrigger": "___SLinkTrigger_qt3iv_gg_",
40
- "_active": "__active_qt3iv_gg_",
41
- "__SText": "___SText_qt3iv_gg_",
42
- "_color": "__color_qt3iv_gg_",
43
- "--color": "--color_rbea4n",
44
- "--color-hover": "--color-hover_rbea4n",
45
- "_disabled": "__disabled_qt3iv_gg_",
46
- "_keyboardFocused": "__keyboardFocused_qt3iv_gg_",
47
- "__SAddon": "___SAddon_qt3iv_gg_",
48
- "__SLinkAddon": "___SLinkAddon_qt3iv_gg_",
49
- "_size_s": "_size_s_qt3iv_gg_",
50
- "_size_m": "_size_m_qt3iv_gg_",
51
- "_size_l": "_size_l_qt3iv_gg_",
52
- "_size_xl": "_size_xl_qt3iv_gg_"
39
+ "__SLinkTrigger": "___SLinkTrigger_1lk11_gg_",
40
+ "_active": "__active_1lk11_gg_",
41
+ "__SText": "___SText_1lk11_gg_",
42
+ "_color": "__color_1lk11_gg_",
43
+ "--color": "--color_klk89u",
44
+ "--color-hover": "--color-hover_klk89u",
45
+ "_disabled": "__disabled_1lk11_gg_",
46
+ "_keyboardFocused": "__keyboardFocused_1lk11_gg_",
47
+ "__SAddon": "___SAddon_1lk11_gg_",
48
+ "__SLinkAddon": "___SLinkAddon_1lk11_gg_",
49
+ "_size_m": "_size_m_1lk11_gg_",
50
+ "_size_l": "_size_l_1lk11_gg_"
53
51
  });
54
52
 
55
53
  var RootLinkTrigger = /*#__PURE__*/function (_Component) {
@@ -77,7 +75,7 @@ var RootLinkTrigger = /*#__PURE__*/function (_Component) {
77
75
  }, {
78
76
  key: "render",
79
77
  value: function render() {
80
- var _ref = this ? this.asProps : arguments[0],
78
+ var _ref = this.asProps,
81
79
  _ref4;
82
80
 
83
81
  var SLinkTrigger = Box;
@@ -113,7 +111,7 @@ _defineProperty(RootLinkTrigger, "defaultProps", {
113
111
  _defineProperty(RootLinkTrigger, "enhance", [keyboardFocusEnhance()]);
114
112
 
115
113
  function Text(props) {
116
- var _ref2 = this ? this.asProps : arguments[0],
114
+ var _ref2 = arguments[0],
117
115
  _ref5;
118
116
 
119
117
  var SText = Box;
@@ -131,7 +129,7 @@ function Text(props) {
131
129
  }
132
130
 
133
131
  function Addon(props) {
134
- var _ref3 = this ? this.asProps : arguments[0],
132
+ var _ref3 = arguments[0],
135
133
  _ref6;
136
134
 
137
135
  var SAddon = Box;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/LinkTrigger.jsx"],"names":["React","createComponent","Component","Root","sstyled","addonTextChildren","ChevronDown","Spin","Box","resolveColor","shade","keyboardFocusEnhance","RootLinkTrigger","asProps","placeholder","empty","SLinkTrigger","SLinkAddon","LinkTrigger","Addon","Children","loading","styles","providedColor","color","colorHover","Text","style","size","props","SText","children","SAddon"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,eAAP,IAA0BC,SAA1B,EAAqCC,IAArC,EAA2CC,OAA3C,QAA0D,eAA1D;AACA,OAAOC,iBAAP,MAA8B,sCAA9B;AACA,OAAOC,WAAP,MAAwB,6BAAxB;AACA,OAAOC,IAAP,MAAiB,eAAjB;AACA,SAASC,GAAT,QAAoB,mBAApB;AACA,OAAOC,YAAP,IAAuBC,KAAvB,QAAoC,0BAApC;AACA,OAAOC,oBAAP,MAAiC,kDAAjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIMC,e;;;;;;;;;;;;;WAQJ,wBAAe;AACb,0BAA+B,KAAKC,OAApC;AAAA,UAAQC,WAAR,iBAAQA,WAAR;AAAA,UAAqBC,KAArB,iBAAqBA,KAArB;AACA,aAAO;AACLD,QAAAA,WAAW,EAAXA,WADK;AAELC,QAAAA,KAAK,EAALA;AAFK,OAAP;AAID;;;WAED,kBAAS;AAAA;AAAA;;AACP,UAAMC,YAAY,GAQMR,GARxB;AACA,UAAMS,UAAU,GAAGC,WAAW,CAACC,KAA/B;AACA,2BAA4D,KAAKN,OAAjE;AAAA,UAAQO,QAAR,kBAAQA,QAAR;AAAA,UAAkBC,OAAlB,kBAAkBA,OAAlB;AAAA,UAA2BC,MAA3B,kBAA2BA,MAA3B;AAAA,UAA0CC,aAA1C,kBAAmCC,KAAnC;AAEA,UAAMA,KAAK,GAAGf,YAAY,CAACc,aAAD,CAA1B;AACA,UAAME,UAAU,GAAGf,KAAK,CAACc,KAAD,EAAQ,CAAC,IAAT,CAAxB;AAEA,qBAAOpB,OAAO,CAACkB,MAAD,CAAd,eACE,oBAAC,YAAD;AAAA,qBAAsCE,KAAtC;AAAA,2BAA8DC;AAA9D,kBACGpB,iBAAiB,CAACe,QAAD,EAAWF,WAAW,CAACQ,IAAvB,EAA6BR,WAAW,CAACC,KAAzC,CADpB,eAEE,oBAAC,UAAD,8BACGE,OAAO,gBAAG,oBAAC,IAAD;AAAA,gBAAW,IAAX;AAAA,iBAAsB;AAAtB,SAAH,gBAA6C,oBAAC,WAAD,8BADvD,CAFF,CADF;AAQD;;;;EAhC2BnB,S;;gBAAxBU,e,iBACiB,a;;gBADjBA,e,WAEWe,K;;gBAFXf,e,kBAGkB;AACpBgB,EAAAA,IAAI,EAAE;AADc,C;;gBAHlBhB,e,aAMa,CAACD,oBAAoB,EAArB,C;;AA6BnB,SAASe,IAAT,CAAcG,KAAd,EAAqB;AAAA;AAAA;;AACnB,MAAMC,KAAK,GAKMtB,GALjB;AACA,MAAQuB,QAAR,GAAiDF,KAAjD,CAAQE,QAAR;AAAA,MAAkBT,MAAlB,GAAiDO,KAAjD,CAAkBP,MAAlB;AAAA,MAA0BP,KAA1B,GAAiDc,KAAjD,CAA0Bd,KAA1B;AAAA,MAAiCD,WAAjC,GAAiDe,KAAjD,CAAiCf,WAAjC;AAEA,iBAAOV,OAAO,CAACkB,MAAD,CAAd;AAAA;;AACE;AACA,sBAAC,KAAD;AAAA,uBAAqCP;AAArC,eACGA,KAAK,GAAGD,WAAH,GAAiBiB,QADzB,CAFF;AAMD;;AAED,SAASZ,KAAT,CAAeU,KAAf,EAAsB;AAAA;AAAA;;AACpB,MAAMG,MAAM,GACiCxB,GAD7C;AACA,iBAAOJ,OAAO,CAACyB,KAAK,CAACP,MAAP,CAAd,eAA6B,oBAAC,MAAD,kEAA7B;AACD;;AAED,IAAMJ,WAAW,GAAGjB,eAAe,CAACW,eAAD,EAAkB;AACnDc,EAAAA,IAAI,EAAJA,IADmD;AAEnDP,EAAAA,KAAK,EAALA;AAFmD,CAAlB,CAAnC;AAKA,eAAeD,WAAf","sourcesContent":["import React from 'react';\nimport createComponent, { Component, Root, sstyled } from '@semcore/core';\nimport addonTextChildren from '@semcore/utils/lib/addonTextChildren';\nimport ChevronDown from '@semcore/icon/ChevronDown/m';\nimport Spin from '@semcore/spin';\nimport { Box } from '@semcore/flex-box';\nimport resolveColor, { shade } from '@semcore/utils/lib/color';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\n\nimport style from './style/link-trigger.shadow.css';\n\nclass RootLinkTrigger extends Component {\n static displayName = 'LinkTrigger';\n static style = style;\n static defaultProps = {\n size: 'm',\n };\n static enhance = [keyboardFocusEnhance()];\n\n getTextProps() {\n const { placeholder, empty } = this.asProps;\n return {\n placeholder,\n empty,\n };\n }\n\n render() {\n const SLinkTrigger = Root;\n const SLinkAddon = LinkTrigger.Addon;\n const { Children, loading, styles, color: providedColor } = this.asProps;\n\n const color = resolveColor(providedColor);\n const colorHover = shade(color, -0.12);\n\n return sstyled(styles)(\n <SLinkTrigger render={Box} use:color={color} use:color-hover={colorHover}>\n {addonTextChildren(Children, LinkTrigger.Text, LinkTrigger.Addon)}\n <SLinkAddon>\n {loading ? <Spin size=\"xs\" theme=\"currentColor\" /> : <ChevronDown />}\n </SLinkAddon>\n </SLinkTrigger>,\n );\n }\n}\n\nfunction Text(props) {\n const SText = Root;\n const { children, styles, empty, placeholder } = props;\n\n return sstyled(styles)(\n /* что бы не ломать обратную совместимость пришлось юзать use */\n <SText render={Box} use:placeholder={empty}>\n {empty ? placeholder : children}\n </SText>,\n );\n}\n\nfunction Addon(props) {\n const SAddon = Root;\n return sstyled(props.styles)(<SAddon render={Box} />);\n}\n\nconst LinkTrigger = createComponent(RootLinkTrigger, {\n Text,\n Addon,\n});\n\nexport default LinkTrigger;\n"],"file":"LinkTrigger.js"}
1
+ {"version":3,"sources":["../../src/LinkTrigger.jsx"],"names":["React","createComponent","Component","Root","sstyled","addonTextChildren","ChevronDown","Spin","Box","resolveColor","shade","keyboardFocusEnhance","RootLinkTrigger","asProps","placeholder","empty","SLinkTrigger","SLinkAddon","LinkTrigger","Addon","Children","loading","styles","providedColor","color","colorHover","Text","style","size","props","SText","children","SAddon"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,eAAP,IAA0BC,SAA1B,EAAqCC,IAArC,EAA2CC,OAA3C,QAA0D,eAA1D;AACA,OAAOC,iBAAP,MAA8B,sCAA9B;AACA,OAAOC,WAAP,MAAwB,6BAAxB;AACA,OAAOC,IAAP,MAAiB,eAAjB;AACA,SAASC,GAAT,QAAoB,mBAApB;AACA,OAAOC,YAAP,IAAuBC,KAAvB,QAAoC,0BAApC;AACA,OAAOC,oBAAP,MAAiC,kDAAjC;;;;;;;;;;;;;;;;;;;;;;;;;;IAIMC,e;;;;;;;;;;;;;WAQJ,wBAAe;AACb,0BAA+B,KAAKC,OAApC;AAAA,UAAQC,WAAR,iBAAQA,WAAR;AAAA,UAAqBC,KAArB,iBAAqBA,KAArB;AACA,aAAO;AACLD,QAAAA,WAAW,EAAXA,WADK;AAELC,QAAAA,KAAK,EAALA;AAFK,OAAP;AAID;;;WAED,kBAAS;AAAA;AAAA;;AACP,UAAMC,YAAY,GAQMR,GARxB;AACA,UAAMS,UAAU,GAAGC,WAAW,CAACC,KAA/B;AACA,2BAA4D,KAAKN,OAAjE;AAAA,UAAQO,QAAR,kBAAQA,QAAR;AAAA,UAAkBC,OAAlB,kBAAkBA,OAAlB;AAAA,UAA2BC,MAA3B,kBAA2BA,MAA3B;AAAA,UAA0CC,aAA1C,kBAAmCC,KAAnC;AAEA,UAAMA,KAAK,GAAGf,YAAY,CAACc,aAAD,CAA1B;AACA,UAAME,UAAU,GAAGf,KAAK,CAACc,KAAD,EAAQ,CAAC,IAAT,CAAxB;AAEA,qBAAOpB,OAAO,CAACkB,MAAD,CAAd,eACE,oBAAC,YAAD;AAAA,qBAAsCE,KAAtC;AAAA,2BAA8DC;AAA9D,kBACGpB,iBAAiB,CAACe,QAAD,EAAWF,WAAW,CAACQ,IAAvB,EAA6BR,WAAW,CAACC,KAAzC,CADpB,eAEE,oBAAC,UAAD,8BACGE,OAAO,gBAAG,oBAAC,IAAD;AAAA,gBAAW,IAAX;AAAA,iBAAsB;AAAtB,SAAH,gBAA6C,oBAAC,WAAD,8BADvD,CAFF,CADF;AAQD;;;;EAhC2BnB,S;;gBAAxBU,e,iBACiB,a;;gBADjBA,e,WAEWe,K;;gBAFXf,e,kBAGkB;AACpBgB,EAAAA,IAAI,EAAE;AADc,C;;gBAHlBhB,e,aAMa,CAACD,oBAAoB,EAArB,C;;AA6BnB,SAASe,IAAT,CAAcG,KAAd,EAAqB;AAAA;AAAA;;AACnB,MAAMC,KAAK,GAKMtB,GALjB;AACA,MAAQuB,QAAR,GAAiDF,KAAjD,CAAQE,QAAR;AAAA,MAAkBT,MAAlB,GAAiDO,KAAjD,CAAkBP,MAAlB;AAAA,MAA0BP,KAA1B,GAAiDc,KAAjD,CAA0Bd,KAA1B;AAAA,MAAiCD,WAAjC,GAAiDe,KAAjD,CAAiCf,WAAjC;AAEA,iBAAOV,OAAO,CAACkB,MAAD,CAAd;AAAA;;AACE;AACA,sBAAC,KAAD;AAAA,uBAAqCP;AAArC,eACGA,KAAK,GAAGD,WAAH,GAAiBiB,QADzB,CAFF;AAMD;;AAED,SAASZ,KAAT,CAAeU,KAAf,EAAsB;AAAA;AAAA;;AACpB,MAAMG,MAAM,GACiCxB,GAD7C;AACA,iBAAOJ,OAAO,CAACyB,KAAK,CAACP,MAAP,CAAd,eAA6B,oBAAC,MAAD,kEAA7B;AACD;;AAED,IAAMJ,WAAW,GAAGjB,eAAe,CAACW,eAAD,EAAkB;AACnDc,EAAAA,IAAI,EAAJA,IADmD;AAEnDP,EAAAA,KAAK,EAALA;AAFmD,CAAlB,CAAnC;AAKA,eAAeD,WAAf","sourcesContent":["import React from 'react';\nimport createComponent, { Component, Root, sstyled } from '@semcore/core';\nimport addonTextChildren from '@semcore/utils/lib/addonTextChildren';\nimport ChevronDown from '@semcore/icon/ChevronDown/m';\nimport Spin from '@semcore/spin';\nimport { Box } from '@semcore/flex-box';\nimport resolveColor, { shade } from '@semcore/utils/lib/color';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\n\nimport style from './style/link-trigger.shadow.css';\n\nclass RootLinkTrigger extends Component {\n static displayName = 'LinkTrigger';\n static style = style;\n static defaultProps = {\n size: 'm',\n };\n static enhance = [keyboardFocusEnhance()];\n\n getTextProps() {\n const { placeholder, empty } = this.asProps;\n return {\n placeholder,\n empty,\n };\n }\n\n render() {\n const SLinkTrigger = Root;\n const SLinkAddon = LinkTrigger.Addon;\n const { Children, loading, styles, color: providedColor } = this.asProps;\n\n const color = resolveColor(providedColor);\n const colorHover = shade(color, -0.12);\n\n return sstyled(styles)(\n <SLinkTrigger render={Box} use:color={color} use:color-hover={colorHover}>\n {addonTextChildren(Children, LinkTrigger.Text, LinkTrigger.Addon)}\n <SLinkAddon>\n {loading ? <Spin size=\"xs\" theme=\"currentColor\" /> : <ChevronDown />}\n </SLinkAddon>\n </SLinkTrigger>,\n );\n }\n}\n\nfunction Text(props) {\n const SText = Root;\n const { children, styles, empty, placeholder } = props;\n\n return sstyled(styles)(\n /* что бы не ломать обратную совместимость пришлось юзать use */\n <SText render={Box} use:placeholder={empty}>\n {empty ? placeholder : children}\n </SText>,\n );\n}\n\nfunction Addon(props) {\n const SAddon = Root;\n return sstyled(props.styles)(<SAddon render={Box} />);\n}\n\nconst LinkTrigger = createComponent(RootLinkTrigger, {\n Text,\n Addon,\n});\n\nexport default LinkTrigger;\n"],"file":"LinkTrigger.js"}
@@ -0,0 +1,81 @@
1
+ import React, { ComponentProps } from 'react';
2
+ import { CProps, ReturnEl } from '@semcore/core';
3
+ import { Box, IBoxProps } from '@semcore/flex-box';
4
+ import Dot from '@semcore/dot';
5
+ import { INeighborItemProps } from '@semcore/neighbor-location';
6
+ import { IKeyboardFocusProps } from '@semcore/utils/lib/enhances/keyboardFocusEnhance';
7
+
8
+ export interface IBaseTriggerProps extends IBoxProps, INeighborItemProps, IKeyboardFocusProps {
9
+ /**
10
+ * Trigger size
11
+ * @default m
12
+ */
13
+ size?: 'm' | 'l';
14
+ /**
15
+ * Trigger state
16
+ */
17
+ state?: 'normal' | 'valid' | 'invalid';
18
+ /**
19
+ * Sets active state to trigger
20
+ */
21
+ active?: boolean;
22
+ /**
23
+ * Responsible for placeholder displaying
24
+ */
25
+ empty?: boolean;
26
+ /**
27
+ * Placeholder text
28
+ */
29
+ placeholder?: React.ReactNode;
30
+ /**
31
+ * Sets disabled state to trigger
32
+ */
33
+ disabled?: boolean;
34
+ /** Trigger theme
35
+ * @deprecated {@link IBaseTriggerProps.state}
36
+ * */
37
+ theme?: 'normal' | 'valid' | 'invalid' | false;
38
+ }
39
+
40
+ export interface IButtonTriggerProps extends Omit<IBaseTriggerProps, 'theme'> {
41
+ /** Sets the loading state */
42
+ loading?: boolean;
43
+ }
44
+
45
+ export interface ILinkTriggerProps extends Omit<IBaseTriggerProps, 'theme'> {
46
+ /** Sets the loading state */
47
+ loading?: boolean;
48
+ /** Text color */
49
+ color?: string;
50
+ }
51
+
52
+ export interface IFilterTriggerProps extends IBaseTriggerProps {
53
+ /** Click on the filter cleaning cross */
54
+ onClear?: (event: React.SyntheticEvent) => void;
55
+ }
56
+
57
+ declare const BaseTrigger: (<T>(props: CProps<IBaseTriggerProps & T>) => ReturnEl) & {
58
+ Text: typeof Box;
59
+ Addon: typeof Box;
60
+ };
61
+
62
+ declare const ButtonTrigger: (<T>(props: CProps<IButtonTriggerProps & T>) => ReturnEl) & {
63
+ Text: typeof BaseTrigger.Text;
64
+ Addon: typeof BaseTrigger.Addon;
65
+ };
66
+
67
+ declare const LinkTrigger: (<T>(props: CProps<ILinkTriggerProps & T>) => ReturnEl) & {
68
+ Text: typeof BaseTrigger.Text;
69
+ Addon: typeof BaseTrigger.Addon;
70
+ };
71
+
72
+ declare const FilterTrigger: (<T>(props: CProps<ILinkTriggerProps & T>) => ReturnEl) & {
73
+ Text: typeof BaseTrigger.Text;
74
+ Addon: typeof BaseTrigger.Addon;
75
+ Counter: <T>(
76
+ props: ComponentProps<typeof BaseTrigger.Addon> & ComponentProps<typeof Dot> & T,
77
+ ) => ReturnEl;
78
+ };
79
+
80
+ export default BaseTrigger;
81
+ export { ButtonTrigger, LinkTrigger, FilterTrigger };
package/lib/es6/index.js CHANGED
@@ -2,7 +2,4 @@ export { default } from './BaseTrigger';
2
2
  export { default as ButtonTrigger } from './ButtonTrigger';
3
3
  export { default as FilterTrigger } from './FilterTrigger';
4
4
  export { default as LinkTrigger } from './LinkTrigger';
5
- export * from './BaseTrigger';
6
- export * from './FilterTrigger';
7
- export * from './LinkTrigger';
8
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.js"],"names":["default","ButtonTrigger","FilterTrigger","LinkTrigger"],"mappings":"AAAA,SAASA,OAAT,QAAwB,eAAxB;AACA,SAASA,OAAO,IAAIC,aAApB,QAAyC,iBAAzC;AACA,SAASD,OAAO,IAAIE,aAApB,QAAyC,iBAAzC;AACA,SAASF,OAAO,IAAIG,WAApB,QAAuC,eAAvC;AACA,cAAc,eAAd;AACA,cAAc,iBAAd;AACA,cAAc,eAAd","sourcesContent":["export { default } from './BaseTrigger';\nexport { default as ButtonTrigger } from './ButtonTrigger';\nexport { default as FilterTrigger } from './FilterTrigger';\nexport { default as LinkTrigger } from './LinkTrigger';\nexport * from './BaseTrigger';\nexport * from './FilterTrigger';\nexport * from './LinkTrigger';\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/index.js"],"names":["default","ButtonTrigger","FilterTrigger","LinkTrigger"],"mappings":"AAAA,SAASA,OAAT,QAAwB,eAAxB;AACA,SAASA,OAAO,IAAIC,aAApB,QAAyC,iBAAzC;AACA,SAASD,OAAO,IAAIE,aAApB,QAAyC,iBAAzC;AACA,SAASF,OAAO,IAAIG,WAApB,QAAuC,eAAvC","sourcesContent":["export { default } from './BaseTrigger';\nexport { default as ButtonTrigger } from './ButtonTrigger';\nexport { default as FilterTrigger } from './FilterTrigger';\nexport { default as LinkTrigger } from './LinkTrigger';\n"],"file":"index.js"}
@@ -20,12 +20,14 @@ SBaseTrigger {
20
20
  outline: 0;
21
21
  text-align: center;
22
22
  vertical-align: middle;
23
- font-family: inherit;
23
+ font-family: Inter, sans-serif;
24
24
  cursor: pointer;
25
25
 
26
- border: 1px solid var(--stone);
27
26
  background: #ffffff;
28
- color: var(--gray20);
27
+
28
+ font-weight: 400;
29
+ border: 1px solid var(--gray-200);
30
+ color: var(--gray-800);
29
31
 
30
32
  &::-moz-focus-inner {
31
33
  border: none;
@@ -40,14 +42,17 @@ SBaseTrigger {
40
42
  }
41
43
 
42
44
  &[keyboardFocused] {
43
- border: 1px solid var(--light-blue);
44
- box-shadow: var(--keyborad-focus);
45
+ border: 1px solid var(--blue-400);
46
+ box-shadow: var(--keyboard-focus);
47
+ }
48
+
49
+ &:hover {
50
+ background-color: color-mod(var(--gray-400) a(20%));
45
51
  }
46
52
 
47
53
  &:active,
48
- &:hover,
49
54
  &[active] {
50
- background-color: color-mod(var(--stone) a(20%));
55
+ background-color: color-mod(var(--gray-400) a(30%));
51
56
  }
52
57
  }
53
58
 
@@ -75,7 +80,7 @@ SText {
75
80
  overflow: hidden;
76
81
  white-space: nowrap;
77
82
  text-overflow: ellipsis;
78
- line-height: 1.1;
83
+ line-height: var(--lh-200);
79
84
  flex-grow: 1;
80
85
  text-align: left;
81
86
  }
@@ -92,51 +97,20 @@ SBaseAddon {
92
97
  height: 12px;
93
98
  }
94
99
 
95
- SBaseTrigger[size='s'] {
96
- height: 18px;
97
- min-width: 18px;
98
- border-radius: 2px;
99
- font-size: 10px;
100
-
101
- & SText {
102
- margin-left: 4px;
103
- margin-right: 4px;
104
- }
105
-
106
- & SAddon {
107
- &:not(:only-child):first-child {
108
- margin-left: 4px;
109
- }
110
-
111
- &:not(:only-child):last-child {
112
- margin-right: 4px;
113
- }
114
-
115
- &:only-child {
116
- margin-left: -2px;
117
- margin-right: -2px;
118
- }
119
- }
120
- }
121
-
122
100
  SBaseTrigger[size='m'] {
123
- height: 26px;
124
101
  min-width: 26px;
125
- border-radius: 3px;
126
- font-size: 12px;
127
-
128
- & SText {
129
- margin-left: 8px;
130
- margin-right: 8px;
131
- }
102
+ height: 28px;
103
+ border-radius: var(--rounded-m);
104
+ padding: 0 8px;
105
+ font-size: var(--fs-200);
132
106
 
133
107
  & SAddon {
134
108
  &:not(:only-child):first-child {
135
- margin-left: 8px;
109
+ margin-right: 8px;
136
110
  }
137
111
 
138
112
  &:not(:only-child):last-child {
139
- margin-right: 8px;
113
+ margin-left: 8px;
140
114
  }
141
115
 
142
116
  &:only-child {
@@ -147,23 +121,19 @@ SBaseTrigger[size='m'] {
147
121
  }
148
122
 
149
123
  SBaseTrigger[size='l'] {
150
- height: 32px;
151
124
  min-width: 32px;
152
- border-radius: 4px;
153
- font-size: 14px;
154
-
155
- & SText {
156
- margin-left: 8px;
157
- margin-right: 8px;
158
- }
125
+ height: 40px;
126
+ border-radius: var(--rounded-m);
127
+ padding: 0 12px;
128
+ font-size: var(--fs-300);
159
129
 
160
130
  & SAddon {
161
131
  &:not(:only-child):first-child {
162
- margin-left: 8px;
132
+ margin-right: 8px;
163
133
  }
164
134
 
165
135
  &:not(:only-child):last-child {
166
- margin-right: 8px;
136
+ margin-left: 8px;
167
137
  }
168
138
 
169
139
  &:only-child {
@@ -173,33 +143,6 @@ SBaseTrigger[size='l'] {
173
143
  }
174
144
  }
175
145
 
176
- SBaseTrigger[size='xl'] {
177
- height: 42px;
178
- min-width: 42px;
179
- border-radius: 5px;
180
- font-size: 16px;
181
-
182
- & SText {
183
- margin-left: 12px;
184
- margin-right: 12px;
185
- }
186
-
187
- & SAddon {
188
- &:not(:only-child):first-child {
189
- margin-left: 12px;
190
- }
191
-
192
- &:not(:only-child):last-child {
193
- margin-right: 12px;
194
- }
195
-
196
- &:only-child {
197
- margin-left: -6px;
198
- margin-right: -6px;
199
- }
200
- }
201
- }
202
-
203
146
  SBaseTrigger[neighborLocation='right'] {
204
147
  border-top-right-radius: 0;
205
148
  border-bottom-right-radius: 0;
@@ -217,22 +160,22 @@ SBaseTrigger[neighborLocation='left'] {
217
160
  }
218
161
 
219
162
  SText[placeholder] {
220
- color: var(--gray70);
163
+ color: var(--gray-300);
221
164
  }
222
165
 
223
166
  SBaseTrigger[state='normal'] {
224
- border-color: var(--stone);
167
+ border-color: var(--gray-200);
225
168
  }
226
169
 
227
170
  SBaseTrigger[state='valid'] {
228
- border-color: var(--green);
171
+ border-color: var(--green-200);
229
172
  }
230
173
 
231
174
  SBaseTrigger[state='invalid'] {
232
- border-color: var(--orange);
175
+ border-color: var(--red-200);
233
176
 
234
177
  &[keyboardFocused] {
235
- border-color: var(--orange);
236
- box-shadow: 0 0 0 3px color-mod(var(--orange) a(30%));
178
+ border-color: var(--orange-400);
179
+ box-shadow: 0 0 0 3px color-mod(var(--orange-400) a(30%));
237
180
  }
238
181
  }
@@ -4,3 +4,7 @@ SButtonAddon {
4
4
  width: 12px;
5
5
  height: 12px;
6
6
  }
7
+
8
+ SButtonTriggerSpin {
9
+ fill: var(--gray-500);
10
+ }
@@ -1,9 +1,9 @@
1
1
  @import '@semcore/utils/style/var.css';
2
2
 
3
3
  SButtonTrigger {
4
- border: 1px solid var(--stone);
4
+ border: 1px solid var(--gray-200);
5
5
  background: #ffffff;
6
- color: var(--gray20);
6
+ color: var(--gray-800);
7
7
 
8
8
  &::-moz-focus-inner {
9
9
  border: none;
@@ -20,61 +20,48 @@ SButtonTrigger {
20
20
  &:active,
21
21
  &:hover,
22
22
  &[active] {
23
- background-color: color-mod(var(--stone) a(20%));
23
+ background-color: color-mod(var(--gray-400) a(20%));
24
24
  }
25
25
  }
26
26
 
27
- SButtonTrigger[size='s'] {
28
- height: 18px;
29
- min-width: 18px;
30
- border-radius: 2px;
31
- font-size: 10px;
32
- }
33
-
34
27
  SButtonTrigger[size='m'] {
35
- height: 26px;
36
28
  min-width: 26px;
37
- border-radius: 3px;
38
- font-size: 12px;
29
+ height: 28px;
30
+ border-radius: var(--rounded-m);
31
+ font-size: var(--fs-200);
39
32
  }
40
33
 
41
34
  SButtonTrigger[size='l'] {
42
- height: 32px;
43
35
  min-width: 32px;
44
- border-radius: 4px;
45
- font-size: 14px;
46
- }
47
-
48
- SButtonTrigger[size='xl'] {
49
- height: 42px;
50
- min-width: 42px;
51
- border-radius: 5px;
52
- font-size: 16px;
36
+ height: 40px;
37
+ border-radius: var(--rounded-m);
38
+ font-size: var(--fs-300);
53
39
  }
54
40
 
55
41
  SText[placeholder] {
56
- color: var(--gray70);
42
+ color: var(--gray-300);
57
43
  }
58
44
 
59
45
  SButtonTrigger[state='normal'] {
60
- border-color: var(--stone);
46
+ border-color: var(--gray-200);
61
47
  }
62
48
 
63
49
  SButtonTrigger[state='valid'] {
64
- border-color: var(--green);
50
+ border-color: var(--green-200);
65
51
  }
66
52
 
67
53
  SButtonTrigger[state='invalid'] {
68
- border-color: var(--orange);
54
+ border-color: var(--red-200);
69
55
  }
70
56
 
71
57
  SFilterTrigger[selected] {
72
- border-color: var(--light-blue);
73
- background-color: color-mod(var(--light-blue) a(20%));
58
+ border-color: var(--blue-400);
59
+ background-color: color-mod(var(--blue-400) a(20%));
60
+ color: var(--gray-800);
74
61
 
75
62
  &[active],
76
63
  &:hover {
77
- background: color-mod(var(--light-blue) a(30%));
64
+ background: color-mod(var(--blue-400) a(30%));
78
65
  }
79
66
  }
80
67
 
@@ -87,9 +74,9 @@ SWrapper {
87
74
  }
88
75
 
89
76
  SWrapper[keyboardFocused] {
90
- box-shadow: var(--keyborad-focus);
77
+ box-shadow: var(--keyboard-focus);
91
78
  }
92
79
 
93
80
  SCounter {
94
- background-color: var(--light-blue);
81
+ background-color: var(--blue-400);
95
82
  }
@@ -17,19 +17,16 @@ SLinkTrigger {
17
17
  overflow: visible;
18
18
  outline: 0;
19
19
  vertical-align: middle;
20
- font-family: inherit;
20
+ font-family: Inter, sans-serif;
21
21
  cursor: pointer;
22
- }
23
-
24
- SLinkTrigger {
25
- color: var(--denim-blue);
22
+ color: var(--blue-500);
26
23
  background: none;
27
24
  transition: color 0.15s ease-in-out;
28
25
 
29
26
  &[active],
30
27
  &:hover,
31
28
  &:active {
32
- color: color-mod(var(--denim-blue) shade(12%));
29
+ color: var(--blue-600);
33
30
 
34
31
  & SText {
35
32
  border-color: currentColor;
@@ -41,6 +38,7 @@ SLinkTrigger {
41
38
  border-bottom-style: solid;
42
39
  border-color: transparent;
43
40
  transition: border-bottom-color 0.15s ease-in-out;
41
+ line-height: var(--lh-200);
44
42
  }
45
43
  }
46
44
 
@@ -59,7 +57,7 @@ SLinkTrigger[disabled] {
59
57
  }
60
58
 
61
59
  SLinkTrigger[keyboardFocused] {
62
- box-shadow: var(--keyborad-focus);
60
+ box-shadow: var(--keyboard-focus);
63
61
  z-index: 1;
64
62
  }
65
63
 
@@ -80,24 +78,16 @@ SLinkAddon {
80
78
  }
81
79
 
82
80
  SLinkAddon {
83
- width: 12px;
84
- height: 12px;
85
- }
86
-
87
- SLinkTrigger[size='s'] {
88
- font-size: 10px;
81
+ width: 16px;
82
+ height: 16px;
89
83
  }
90
84
 
91
85
  SLinkTrigger[size='m'] {
92
- font-size: 12px;
86
+ font-size: var(--fs-200);
93
87
  }
94
88
 
95
89
  SLinkTrigger[size='l'] {
96
- font-size: 14px;
97
- }
98
-
99
- SLinkTrigger[size='xl'] {
100
- font-size: 16px;
90
+ font-size: var(--fs-300);
101
91
  }
102
92
 
103
93
  @media (prefers-reduced-motion) {
@@ -10,7 +10,7 @@ export interface IBaseTriggerProps extends IBoxProps, INeighborItemProps, IKeybo
10
10
  * Trigger size
11
11
  * @default m
12
12
  */
13
- size?: 'm' | 'l' | 'xl';
13
+ size?: 'm' | 'l';
14
14
  /**
15
15
  * Trigger state
16
16
  */
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semcore/base-trigger",
3
3
  "description": "SEMRush BaseTrigger Component",
4
- "version": "2.6.3",
4
+ "version": "3.0.0",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es6/index.js",
7
7
  "typings": "lib/types/index.d.ts",
@@ -14,7 +14,7 @@
14
14
  },
15
15
  "dependencies": {
16
16
  "@semcore/utils": "^3.15",
17
- "@semcore/dot": "^3",
17
+ "@semcore/dot": "^4.0.0",
18
18
  "@semcore/flex-box": "^4",
19
19
  "@semcore/icon": "^2.16",
20
20
  "@semcore/neighbor-location": "^2",
@@ -31,5 +31,8 @@
31
31
  "type": "git",
32
32
  "url": "https://github.com/semrush/intergalactic.git",
33
33
  "directory": "semcore/base-trigger"
34
+ },
35
+ "devDependencies": {
36
+ "@semcore/jest-preset-ui": "1.0.0"
34
37
  }
35
38
  }
@@ -13,13 +13,14 @@ class RootButtonTrigger extends Component {
13
13
 
14
14
  render() {
15
15
  const SButtonAddon = ButtonTrigger.Addon;
16
+ const SButtonTriggerSpin = Spin;
16
17
  const { Children, styles, loading } = this.asProps;
17
18
 
18
19
  return sstyled(styles)(
19
20
  <Root render={BaseTrigger}>
20
21
  {addonTextChildren(Children, ButtonTrigger.Text, ButtonTrigger.Addon)}
21
22
  <SButtonAddon>
22
- {loading ? <Spin size="xs" theme="#a6b0b3" /> : <ChevronDown />}
23
+ {loading ? <SButtonTriggerSpin size="xs" theme={false} /> : <ChevronDown />}
23
24
  </SButtonAddon>
24
25
  </Root>,
25
26
  );
package/src/index.d.ts CHANGED
@@ -10,7 +10,7 @@ export interface IBaseTriggerProps extends IBoxProps, INeighborItemProps, IKeybo
10
10
  * Trigger size
11
11
  * @default m
12
12
  */
13
- size?: 'm' | 'l' | 'xl';
13
+ size?: 'm' | 'l';
14
14
  /**
15
15
  * Trigger state
16
16
  */
package/src/index.js CHANGED
@@ -2,6 +2,3 @@ export { default } from './BaseTrigger';
2
2
  export { default as ButtonTrigger } from './ButtonTrigger';
3
3
  export { default as FilterTrigger } from './FilterTrigger';
4
4
  export { default as LinkTrigger } from './LinkTrigger';
5
- export * from './BaseTrigger';
6
- export * from './FilterTrigger';
7
- export * from './LinkTrigger';