@skbkontur/react-ui 3.10.0 → 3.11.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.
- package/CHANGELOG.md +19 -0
- package/cjs/components/Button/Button.d.ts +1 -1
- package/cjs/components/Button/Button.js +4 -3
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Button/Button.styles.d.ts +1 -0
- package/cjs/components/Button/Button.styles.js +38 -28
- package/cjs/components/Button/Button.styles.js.map +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.d.ts +2 -2
- package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/cjs/components/Hint/Hint.d.ts +2 -1
- package/cjs/components/Hint/Hint.js +0 -16
- package/cjs/components/Hint/Hint.js.map +1 -1
- package/cjs/components/Kebab/Kebab.d.ts +2 -2
- package/cjs/components/Kebab/Kebab.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.d.ts +1 -1
- package/cjs/components/MenuItem/MenuItem.js +1 -4
- package/cjs/components/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollBar.js +4 -2
- package/cjs/components/ScrollContainer/ScrollBar.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.js +2 -1
- package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.styles.d.ts +1 -0
- package/cjs/components/ScrollContainer/ScrollContainer.styles.js +12 -8
- package/cjs/components/ScrollContainer/ScrollContainer.styles.js.map +1 -1
- package/cjs/components/SidePage/SidePage.d.ts +1 -0
- package/cjs/components/SidePage/SidePage.js +14 -1
- package/cjs/components/SidePage/SidePage.js.map +1 -1
- package/cjs/components/Spinner/Spinner.d.ts +8 -0
- package/cjs/components/Spinner/Spinner.js +21 -3
- package/cjs/components/Spinner/Spinner.js.map +1 -1
- package/cjs/components/Spinner/Spinner.md +1 -0
- package/cjs/components/Spinner/Spinner.styles.d.ts +2 -1
- package/cjs/components/Spinner/Spinner.styles.js +13 -10
- package/cjs/components/Spinner/Spinner.styles.js.map +1 -1
- package/cjs/components/Switcher/Switcher.styles.js +4 -2
- package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.d.ts +8 -21
- package/cjs/components/Tooltip/Tooltip.js +14 -27
- package/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.d.ts +2 -2
- package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
- package/cjs/index.d.ts +1 -0
- package/cjs/index.js +2 -1
- package/cjs/index.js.map +1 -1
- package/cjs/internal/Popup/Popup.d.ts +5 -4
- package/cjs/internal/Popup/Popup.js +13 -24
- package/cjs/internal/Popup/Popup.js.map +1 -1
- package/cjs/internal/Popup/PopupHelper.d.ts +2 -2
- package/cjs/internal/Popup/PopupHelper.js.map +1 -1
- package/cjs/internal/Popup/types.d.ts +1 -0
- package/cjs/internal/Popup/types.js +1 -0
- package/cjs/internal/Popup/types.js.map +1 -0
- package/cjs/internal/PopupMenu/PopupMenu.d.ts +3 -3
- package/cjs/internal/PopupMenu/PopupMenu.js +17 -3
- package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/cjs/internal/PopupMenu/validatePositions.d.ts +2 -2
- package/cjs/internal/PopupMenu/validatePositions.js +2 -4
- package/cjs/internal/PopupMenu/validatePositions.js.map +1 -1
- package/cjs/internal/icons/SpinnerIcon.d.ts +4 -1
- package/cjs/internal/icons/SpinnerIcon.js +5 -2
- package/cjs/internal/icons/SpinnerIcon.js.map +1 -1
- package/cjs/lib/ModalStack.js +16 -17
- package/cjs/lib/ModalStack.js.map +1 -1
- package/cjs/lib/theming/AnimationKeyframes.js +1 -1
- package/cjs/lib/theming/AnimationKeyframes.js.map +1 -1
- package/cjs/lib/theming/useTheme.d.ts +1 -0
- package/cjs/lib/theming/useTheme.js +7 -0
- package/cjs/lib/theming/useTheme.js.map +1 -0
- package/cjs/lib/utils.d.ts +32 -0
- package/cjs/lib/utils.js +62 -2
- package/cjs/lib/utils.js.map +1 -1
- package/cjs/typings/html-props.d.ts +123 -0
- package/components/Button/Button/Button.js +3 -7
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.d.ts +1 -1
- package/components/Button/Button.styles/Button.styles.js +31 -28
- package/components/Button/Button.styles/Button.styles.js.map +1 -1
- package/components/Button/Button.styles.d.ts +1 -0
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
- package/components/DropdownMenu/DropdownMenu.d.ts +2 -2
- package/components/Hint/Hint/Hint.js.map +1 -1
- package/components/Hint/Hint.d.ts +2 -1
- package/components/Kebab/Kebab/Kebab.js.map +1 -1
- package/components/Kebab/Kebab.d.ts +2 -2
- package/components/MenuItem/MenuItem/MenuItem.js +2 -7
- package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
- package/components/MenuItem/MenuItem.d.ts +1 -1
- package/components/ScrollContainer/ScrollBar/ScrollBar.js +6 -2
- package/components/ScrollContainer/ScrollBar/ScrollBar.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +2 -1
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js +11 -8
- package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.styles.d.ts +1 -0
- package/components/SidePage/SidePage/SidePage.js +19 -0
- package/components/SidePage/SidePage/SidePage.js.map +1 -1
- package/components/SidePage/SidePage.d.ts +1 -0
- package/components/Spinner/Spinner/Spinner.js +6 -3
- package/components/Spinner/Spinner/Spinner.js.map +1 -1
- package/components/Spinner/Spinner.d.ts +8 -0
- package/components/Spinner/Spinner.md +1 -0
- package/components/Spinner/Spinner.styles/Spinner.styles.js +12 -9
- package/components/Spinner/Spinner.styles/Spinner.styles.js.map +1 -1
- package/components/Spinner/Spinner.styles.d.ts +2 -1
- package/components/Switcher/Switcher.styles/Switcher.styles.js +3 -1
- package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
- package/components/Tooltip/Tooltip/Tooltip.js +2 -2
- package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +8 -21
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
- package/components/TooltipMenu/TooltipMenu.d.ts +2 -2
- package/index.d.ts +1 -0
- package/index.js +2 -1
- package/index.js.map +1 -1
- package/internal/Popup/Popup/Popup.js +3 -2
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/Popup/Popup.d.ts +5 -4
- package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
- package/internal/Popup/PopupHelper.d.ts +2 -2
- package/internal/Popup/types/package.json +6 -0
- package/internal/Popup/types/types.js +0 -0
- package/internal/Popup/types/types.js.map +1 -0
- package/internal/Popup/types.d.ts +1 -0
- package/internal/PopupMenu/PopupMenu/PopupMenu.js +3 -3
- package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/PopupMenu/PopupMenu.d.ts +3 -3
- package/internal/PopupMenu/validatePositions/validatePositions.js +2 -2
- package/internal/PopupMenu/validatePositions/validatePositions.js.map +1 -1
- package/internal/PopupMenu/validatePositions.d.ts +2 -2
- package/internal/icons/SpinnerIcon/SpinnerIcon.js +5 -2
- package/internal/icons/SpinnerIcon/SpinnerIcon.js.map +1 -1
- package/internal/icons/SpinnerIcon.d.ts +4 -1
- package/lib/ModalStack/ModalStack.js +9 -13
- package/lib/ModalStack/ModalStack.js.map +1 -1
- package/lib/theming/AnimationKeyframes/AnimationKeyframes.js +1 -1
- package/lib/theming/AnimationKeyframes/AnimationKeyframes.js.map +1 -1
- package/lib/theming/useTheme/package.json +6 -0
- package/lib/theming/useTheme/useTheme.js +5 -0
- package/lib/theming/useTheme/useTheme.js.map +1 -0
- package/lib/theming/useTheme.d.ts +1 -0
- package/lib/utils/utils.js +66 -0
- package/lib/utils/utils.js.map +1 -1
- package/lib/utils.d.ts +32 -0
- package/package.json +5 -2
- package/typings/html-props.d.ts +123 -0
- package/cjs/internal/PopupMenu/PopupMenuPositions.d.ts +0 -2
- package/cjs/internal/PopupMenu/PopupMenuPositions.js +0 -15
- package/cjs/internal/PopupMenu/PopupMenuPositions.js.map +0 -1
- package/internal/PopupMenu/PopupMenuPositions/PopupMenuPositions.js +0 -1
- package/internal/PopupMenu/PopupMenuPositions/PopupMenuPositions.js.map +0 -1
- package/internal/PopupMenu/PopupMenuPositions/package.json +0 -6
- package/internal/PopupMenu/PopupMenuPositions.d.ts +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ModalStack.ts"],"names":["ModalStack","add","component","onChange","getStackInfo","emitter","mounted","unshift","changeHandler","_token","addListener","emit","remove","removeListener","index","indexOf","splice","isBlocking","length","wantsToBlock","globalWithStack","global","__ReactUIStackInfo","EventEmitter","isModal","isSidePage","deepestSidePages","filter","i","pop","props","blockBackground","isReactUIInstance","componentName","instance","constructor","Object","prototype","hasOwnProperty","call","__KONTUR_REACT_UI__"],"mappings":";AACA,qE;;;;;;;;;;;;;;;;;;AAkBaA,U;AACGC,EAAAA,G,GAAd;AACEC,EAAAA,SADF;AAEEC,EAAAA,QAFF;AAG0B;AACKH,IAAAA,UAAU,CAACI,YAAX,EADL,CAChBC,OADgB,yBAChBA,OADgB,CACPC,OADO,yBACPA,OADO;AAExBA,IAAAA,OAAO,CAACC,OAAR,CAAgBL,SAAhB;AACA,QAAMM,aAAa,GAAG,SAAhBA,aAAgB,WAAML,QAAQ,WAAKG,OAAL,EAAd,EAAtB;AACA,QAAMG,MAAM,GAAGJ,OAAO,CAACK,WAAR,CAAoB,QAApB,EAA8BF,aAA9B,CAAf;AACAH,IAAAA,OAAO,CAACM,IAAR,CAAa,QAAb;AACA,WAAO;AACLC,MAAAA,MAAM,EAAE,kBAAM;AACZ;AACA,YAAI,YAAYH,MAAhB,EAAwB;AACtB;AACAA,UAAAA,MAAM,CAACG,MAAP;AACA;AACD;;AAEDP,QAAAA,OAAO,CAACQ,cAAR,CAAuB,QAAvB,EAAiCL,aAAjC;AACD,OAVI,EAAP;;AAYD,G;;AAEaI,EAAAA,M,GAAd,gBAAqBV,SAArB,EAAiD;AAClBF,IAAAA,UAAU,CAACI,YAAX,EADkB,CACvCC,OADuC,0BACvCA,OADuC,CAC9BC,OAD8B,0BAC9BA,OAD8B;AAE/C,QAAMQ,KAAK,GAAGR,OAAO,CAACS,OAAR,CAAgBb,SAAhB,CAAd;AACA,QAAIY,KAAK,KAAK,CAAC,CAAf,EAAkB;AAChBR,MAAAA,OAAO,CAACU,MAAR,CAAeF,KAAf,EAAsB,CAAtB;AACD;AACDT,IAAAA,OAAO,CAACM,IAAR,CAAa,QAAb;AACD;;AAED;AACF;AACA,K;AACgBM,EAAAA,U,GAAd,oBAAyBf,SAAzB,EAA8D;AACxCF,IAAAA,UAAU,CAACI,YAAX,EADwC,CACpDE,OADoD,0BACpDA,OADoD;AAE5D,SAAK,IAAIQ,KAAK,GAAG,CAAjB,EAAoBA,KAAK,GAAGR,OAAO,CAACY,MAApC,EAA4CJ,KAAK,EAAjD,EAAqD;AACnD,UAAId,UAAU,CAACmB,YAAX,CAAwBb,OAAO,CAACQ,KAAD,CAA/B,CAAJ,EAA6C;AAC3C;AACA;AACA,eAAOZ,SAAS,KAAKI,OAAO,CAACQ,KAAD,CAA5B;AACD;AACF;AACD,WAAO,KAAP;AACD,G;;AAEcV,EAAAA,Y,GAAf,wBAAyC;AACvC,QAAMgB,eAAe,GAAGC,MAAxB;AACA;AACED,MAAAA,eAAe,CAACE,kBAAhB;AACCF,MAAAA,eAAe,CAACE,kBAAhB,GAAqC;AACpCjB,QAAAA,OAAO,EAAE,IAAIkB,qBAAJ,EAD2B;AAEpCjB,QAAAA,OAAO,EAAE,EAF2B,EADtC,CADF;;;AAOD,G;;AAEca,EAAAA,Y,GAAf,sBAA4BjB,SAA5B,EAAiE;AAC/D,QAAIsB,OAAO,CAACtB,SAAD,CAAX,EAAwB;AACtB,aAAO,IAAP;AACD;;AAED,QAAIuB,UAAU,CAACvB,SAAD,CAAd,EAA2B;AACLF,MAAAA,UAAU,CAACI,YAAX,EADK,CACjBE,OADiB,0BACjBA,OADiB;AAEzB,UAAMoB,gBAAgB,GAAGpB,OAAO,CAACqB,MAAR,CAAe,UAACC,CAAD,UAAOH,UAAU,CAACG,CAAD,CAAjB,EAAf,EAAqCC,GAArC,EAAzB;AACA,aAAO,CAAC,CAAC3B,SAAS,CAAC4B,KAAV,CAAgBC,eAAlB,IAAqC7B,SAAS,KAAKwB,gBAA1D;AACD;;AAED,WAAO,KAAP;AACD,G;;;AAGH
|
|
1
|
+
{"version":3,"sources":["ModalStack.ts"],"names":["ModalStack","add","component","onChange","getStackInfo","emitter","mounted","unshift","changeHandler","_token","addListener","emit","remove","removeListener","index","indexOf","splice","isBlocking","length","wantsToBlock","globalWithStack","global","__ReactUIStackInfo","EventEmitter","isModal","isSidePage","deepestSidePages","filter","i","pop","props","blockBackground","isReactUIInstance","componentName","instance","constructor","Object","prototype","hasOwnProperty","call","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["import React from 'react';\nimport EventEmitter from 'eventemitter3';\n\nimport { SidePageProps } from '../components/SidePage';\nimport { ModalProps } from '../components/Modal';\n\ninterface StackInfo {\n emitter: EventEmitter;\n mounted: React.Component[];\n}\n\ninterface GlobalWithStackInfo {\n __ReactUIStackInfo?: StackInfo;\n}\n\nexport interface ModalStackSubscription {\n remove: () => void;\n}\n\nexport class ModalStack {\n public static add(\n component: React.Component,\n onChange: (stack: ReadonlyArray<React.Component>) => void,\n ): ModalStackSubscription {\n const { emitter, mounted } = ModalStack.getStackInfo();\n mounted.unshift(component);\n const changeHandler = () => onChange([...mounted]);\n const _token = emitter.addListener('change', changeHandler);\n emitter.emit('change');\n return {\n remove: () => {\n // Backwards compatible with versions 0.x and 1.w which using the fbemitter package\n if ('remove' in _token) {\n // @ts-ignore\n _token.remove();\n return;\n }\n\n emitter.removeListener('change', changeHandler);\n },\n };\n }\n\n public static remove(component: React.Component) {\n const { emitter, mounted } = ModalStack.getStackInfo();\n const index = mounted.indexOf(component);\n if (index !== -1) {\n mounted.splice(index, 1);\n }\n emitter.emit('change');\n }\n\n /**\n * Determines if stack component is allowed to block background\n */\n public static isBlocking(component: React.Component): boolean {\n const { mounted } = ModalStack.getStackInfo();\n for (let index = 0; index < mounted.length; index++) {\n if (ModalStack.wantsToBlock(mounted[index])) {\n // only the highest component in stack\n // that wants to block is allowed to do it\n return component === mounted[index];\n }\n }\n return false;\n }\n\n private static getStackInfo(): StackInfo {\n const globalWithStack = global as GlobalWithStackInfo;\n return (\n globalWithStack.__ReactUIStackInfo ||\n (globalWithStack.__ReactUIStackInfo = {\n emitter: new EventEmitter(),\n mounted: [],\n })\n );\n }\n\n private static wantsToBlock(component: React.Component): boolean {\n if (isModal(component)) {\n return true;\n }\n\n if (isSidePage(component)) {\n const { mounted } = ModalStack.getStackInfo();\n const deepestSidePages = mounted.filter((i) => isSidePage(i)).pop();\n return !!component.props.blockBackground && component === deepestSidePages;\n }\n\n return false;\n }\n}\n\n/**\n * Specific check for component type by its instance\n */\nconst isReactUIInstance = <T>(componentName: string) => {\n return (instance: React.Component): instance is React.Component<T> => {\n const { constructor } = instance;\n\n return (\n Object.prototype.hasOwnProperty.call(constructor, '__KONTUR_REACT_UI__') &&\n // @ts-ignore\n constructor.__KONTUR_REACT_UI__ === componentName\n );\n };\n};\n\nconst isSidePage = isReactUIInstance<SidePageProps>('SidePage');\n\nconst isModal = isReactUIInstance<ModalProps>('Modal');\n"]}
|
|
@@ -17,7 +17,7 @@ var AnimationKeyframes = {
|
|
|
17
17
|
|
|
18
18
|
},
|
|
19
19
|
spinnerCircleOffset: function spinnerCircleOffset(t) {
|
|
20
|
-
return (0, _Emotion.keyframes)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteralLoose2.default)(["\n 0% { stroke-dashoffset:
|
|
20
|
+
return (0, _Emotion.keyframes)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteralLoose2.default)(["\n 0% { stroke-dashoffset: 231.25%; }\n 100% { stroke-dashoffset: 0%; }\n "])));
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["AnimationKeyframes.ts"],"names":["AnimationKeyframes","spinnerCloudOffset","t","keyframes","spinnerCloudLength","spinnerCircleOffset","spinnerCircleLength","spinnerCircleRotate","spinnerColor","red","yellow","green","brand"],"mappings":"wRAAA,oC;;;AAGO,IAAMA,kBAAkB,GAAG;AAChCC,EAAAA,kBADgC,8BACbC,CADa,EACH;AAC3B,eAAOC,kBAAP;;;;AAID,GAN+B;;AAQhCC,EAAAA,kBARgC,8BAQbF,CARa,EAQH;AAC3B,eAAOC,kBAAP;;;;;AAKD,GAd+B;AAehCE,EAAAA,mBAfgC,+BAeZH,CAfY,EAeF;AAC5B,eAAOC,kBAAP;;;;AAID,GApB+B;AAqBhCG,EAAAA,mBArBgC,+BAqBZJ,CArBY,EAqBF;AAC5B,eAAOC,kBAAP;;;;;AAKD,GA3B+B;AA4BhCI,EAAAA,mBA5BgC,+BA4BZL,CA5BY,EA4BF;AAC5B,eAAOC,kBAAP;;;AAGD,GAhC+B;AAiChCK,EAAAA,YAjCgC,wBAiCnBN,CAjCmB,EAiCT;AACrB,eAAOC,kBAAP;AACyBD,IAAAA,CAAC,CAACO,GAD3B;AAEoBP,IAAAA,CAAC,CAACQ,MAFtB;AAGoBR,IAAAA,CAAC,CAACS,KAHtB;AAIyBT,IAAAA,CAAC,CAACU,KAJ3B;;AAMD,GAxC+B,EAA3B,C","sourcesContent":["import { keyframes } from './Emotion';\nimport { Theme } from './Theme';\n\nexport const AnimationKeyframes = {\n spinnerCloudOffset(t: Theme) {\n return keyframes`\n 0% { stroke-dashoffset: 10; }\n 100% { stroke-dashoffset: 116; }\n `;\n },\n\n spinnerCloudLength(t: Theme) {\n return keyframes`\n 0% { stroke-dasharray: 10, 96; }\n 50% { stroke-dasharray: 50, 56; }\n 100% { stroke-dasharray: 10, 96;}\n `;\n },\n spinnerCircleOffset(t: Theme) {\n return keyframes`\n 0% { stroke-dashoffset:
|
|
1
|
+
{"version":3,"sources":["AnimationKeyframes.ts"],"names":["AnimationKeyframes","spinnerCloudOffset","t","keyframes","spinnerCloudLength","spinnerCircleOffset","spinnerCircleLength","spinnerCircleRotate","spinnerColor","red","yellow","green","brand"],"mappings":"wRAAA,oC;;;AAGO,IAAMA,kBAAkB,GAAG;AAChCC,EAAAA,kBADgC,8BACbC,CADa,EACH;AAC3B,eAAOC,kBAAP;;;;AAID,GAN+B;;AAQhCC,EAAAA,kBARgC,8BAQbF,CARa,EAQH;AAC3B,eAAOC,kBAAP;;;;;AAKD,GAd+B;AAehCE,EAAAA,mBAfgC,+BAeZH,CAfY,EAeF;AAC5B,eAAOC,kBAAP;;;;AAID,GApB+B;AAqBhCG,EAAAA,mBArBgC,+BAqBZJ,CArBY,EAqBF;AAC5B,eAAOC,kBAAP;;;;;AAKD,GA3B+B;AA4BhCI,EAAAA,mBA5BgC,+BA4BZL,CA5BY,EA4BF;AAC5B,eAAOC,kBAAP;;;AAGD,GAhC+B;AAiChCK,EAAAA,YAjCgC,wBAiCnBN,CAjCmB,EAiCT;AACrB,eAAOC,kBAAP;AACyBD,IAAAA,CAAC,CAACO,GAD3B;AAEoBP,IAAAA,CAAC,CAACQ,MAFtB;AAGoBR,IAAAA,CAAC,CAACS,KAHtB;AAIyBT,IAAAA,CAAC,CAACU,KAJ3B;;AAMD,GAxC+B,EAA3B,C","sourcesContent":["import { keyframes } from './Emotion';\nimport { Theme } from './Theme';\n\nexport const AnimationKeyframes = {\n spinnerCloudOffset(t: Theme) {\n return keyframes`\n 0% { stroke-dashoffset: 10; }\n 100% { stroke-dashoffset: 116; }\n `;\n },\n\n spinnerCloudLength(t: Theme) {\n return keyframes`\n 0% { stroke-dasharray: 10, 96; }\n 50% { stroke-dasharray: 50, 56; }\n 100% { stroke-dasharray: 10, 96;}\n `;\n },\n spinnerCircleOffset(t: Theme) {\n return keyframes`\n 0% { stroke-dashoffset: 231.25%; }\n 100% { stroke-dashoffset: 0%; }\n `;\n },\n spinnerCircleLength(t: Theme) {\n return keyframes`\n 0% { stroke-dasharray: 62.5%, 168.75%; }\n 50% { stroke-dasharray: 187.5%, 43.75%; }\n 100% { stroke-dasharray: 62.5%, 168.75%; }\n `;\n },\n spinnerCircleRotate(t: Theme) {\n return keyframes`\n 100% { transform: rotate(360deg); }\n `;\n },\n spinnerColor(t: Theme) {\n return keyframes`\n 100%, 0% { stroke: ${t.red}; }\n 40% { stroke: ${t.yellow}; }\n 66% { stroke: ${t.green}; }\n 80%, 90% { stroke: ${t.brand}; }\n `;\n },\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const useTheme: () => Readonly<Readonly<typeof import("../../internal/themes/DefaultTheme").DefaultTheme>>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";exports.__esModule = true;exports.useTheme = void 0;var _react = require("react");
|
|
2
|
+
|
|
3
|
+
var _ThemeContext = require("./ThemeContext");
|
|
4
|
+
|
|
5
|
+
var useTheme = function useTheme() {
|
|
6
|
+
return (0, _react.useContext)(_ThemeContext.ThemeContext);
|
|
7
|
+
};exports.useTheme = useTheme;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["useTheme.ts"],"names":["useTheme","ThemeContext"],"mappings":"iEAAA;;AAEA;;AAEO,IAAMA,QAAQ,GAAG,SAAXA,QAAW,GAAM;AAC5B,SAAO,uBAAWC,0BAAX,CAAP;AACD,CAFM,C","sourcesContent":["import { useContext } from 'react';\n\nimport { ThemeContext } from './ThemeContext';\n\nexport const useTheme = () => {\n return useContext(ThemeContext);\n};\n"]}
|
package/cjs/lib/utils.d.ts
CHANGED
|
@@ -29,3 +29,35 @@ export declare const isReactUINode: (componentName: string, node: React.ReactNod
|
|
|
29
29
|
* @returns Возвращает true, если переданный аргумент не является null или undefined иначе false
|
|
30
30
|
*/
|
|
31
31
|
export declare const isNonNullable: <T>(value: T) => value is NonNullable<T>;
|
|
32
|
+
/**
|
|
33
|
+
* Creates a function that checks if the given `child`
|
|
34
|
+
* is an instance of some component specified by `name`.
|
|
35
|
+
*
|
|
36
|
+
* @param name Component name for which function will be created.
|
|
37
|
+
* @returns A function that checks if the given `child` is an instance of the component specified by `name`.
|
|
38
|
+
*/
|
|
39
|
+
export declare const isReactUIComponent: <P = any>(name: string) => (child: React.ReactNode) => child is React.ReactElement<P, string | React.JSXElementConstructor<any>>;
|
|
40
|
+
/**
|
|
41
|
+
* Merges two or more refs into one.
|
|
42
|
+
*
|
|
43
|
+
* @param refs Array of refs.
|
|
44
|
+
* @returns A single ref composing all the refs passed.
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* const SomeComponent = forwardRef((props, ref) => {
|
|
48
|
+
* const localRef = useRef();
|
|
49
|
+
*
|
|
50
|
+
* return <div ref={mergeRefs([localRef, ref])} />;
|
|
51
|
+
* });
|
|
52
|
+
*/
|
|
53
|
+
export declare function mergeRefs<T = any>(refs: Array<React.MutableRefObject<T> | React.LegacyRef<T>>): React.RefCallback<T>;
|
|
54
|
+
/**
|
|
55
|
+
* Extracts all data attributes from props and returns them as well as props.
|
|
56
|
+
*
|
|
57
|
+
* @param props Props object to extract data attributes from.
|
|
58
|
+
* @returns Separated data attributes and all other props.
|
|
59
|
+
*/
|
|
60
|
+
export declare const extractDataProps: <T>(props: T) => {
|
|
61
|
+
dataProps: Record<string, any>;
|
|
62
|
+
restWithoutDataProps: Record<string, any>;
|
|
63
|
+
};
|
package/cjs/lib/utils.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.taskWithDelay = taskWithDelay;exports.isFunction = isFunction;exports.isFunctionalComponent = isFunctionalComponent;exports.isClassComponent = isClassComponent;exports.isIntrinsicElement = isIntrinsicElement;exports.isRefableElement = isRefableElement;exports.escapeRegExpSpecChars = escapeRegExpSpecChars;exports.isNonNullable = exports.isReactUINode = exports.isExternalLink = exports.getRandomID = exports.CancelationError = exports.emptyHandler = exports.delay = void 0;var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
|
|
1
|
+
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.taskWithDelay = taskWithDelay;exports.isFunction = isFunction;exports.isFunctionalComponent = isFunctionalComponent;exports.isClassComponent = isClassComponent;exports.isIntrinsicElement = isIntrinsicElement;exports.isRefableElement = isRefableElement;exports.escapeRegExpSpecChars = escapeRegExpSpecChars;exports.mergeRefs = mergeRefs;exports.extractDataProps = exports.isReactUIComponent = exports.isNonNullable = exports.isReactUINode = exports.isExternalLink = exports.getRandomID = exports.CancelationError = exports.emptyHandler = exports.delay = void 0;var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
|
|
2
2
|
var _react = _interopRequireDefault(require("react"));
|
|
3
3
|
var _reactIs = require("react-is");
|
|
4
4
|
|
|
@@ -91,4 +91,64 @@ var isReactUINode = function isReactUINode(componentName, node) {
|
|
|
91
91
|
*/exports.isReactUINode = isReactUINode;
|
|
92
92
|
var isNonNullable = function isNonNullable(value) {
|
|
93
93
|
return value !== null && value !== undefined;
|
|
94
|
-
};
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Creates a function that checks if the given `child`
|
|
98
|
+
* is an instance of some component specified by `name`.
|
|
99
|
+
*
|
|
100
|
+
* @param name Component name for which function will be created.
|
|
101
|
+
* @returns A function that checks if the given `child` is an instance of the component specified by `name`.
|
|
102
|
+
*/exports.isNonNullable = isNonNullable;
|
|
103
|
+
var isReactUIComponent = function isReactUIComponent(name) {
|
|
104
|
+
return function (child) {var _child$type;
|
|
105
|
+
// @ts-ignore
|
|
106
|
+
return (child == null ? void 0 : (_child$type = child.type) == null ? void 0 : _child$type.__KONTUR_REACT_UI__) === name;
|
|
107
|
+
};
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Merges two or more refs into one.
|
|
112
|
+
*
|
|
113
|
+
* @param refs Array of refs.
|
|
114
|
+
* @returns A single ref composing all the refs passed.
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* const SomeComponent = forwardRef((props, ref) => {
|
|
118
|
+
* const localRef = useRef();
|
|
119
|
+
*
|
|
120
|
+
* return <div ref={mergeRefs([localRef, ref])} />;
|
|
121
|
+
* });
|
|
122
|
+
*/exports.isReactUIComponent = isReactUIComponent;
|
|
123
|
+
function mergeRefs(refs) {
|
|
124
|
+
return function (value) {
|
|
125
|
+
refs.forEach(function (ref) {
|
|
126
|
+
if (typeof ref === 'function') {
|
|
127
|
+
return ref(value);
|
|
128
|
+
} else if (isNonNullable(ref)) {
|
|
129
|
+
return ref.current = value;
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Extracts all data attributes from props and returns them as well as props.
|
|
137
|
+
*
|
|
138
|
+
* @param props Props object to extract data attributes from.
|
|
139
|
+
* @returns Separated data attributes and all other props.
|
|
140
|
+
*/
|
|
141
|
+
var extractDataProps = function extractDataProps(props) {
|
|
142
|
+
var dataProps = {};
|
|
143
|
+
var restWithoutDataProps = {};
|
|
144
|
+
|
|
145
|
+
Object.entries(props).map(function (_ref) {var name = _ref[0],value = _ref[1];
|
|
146
|
+
if (name.startsWith('data-')) {
|
|
147
|
+
dataProps[name] = value;
|
|
148
|
+
} else {
|
|
149
|
+
restWithoutDataProps[name] = value;
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
return { dataProps: dataProps, restWithoutDataProps: restWithoutDataProps };
|
|
154
|
+
};exports.extractDataProps = extractDataProps;
|
package/cjs/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["utils.ts"],"names":["delay","ms","Promise","resolve","setTimeout","emptyHandler","CancelationError","code","Error","taskWithDelay","task","cancelationToken","reject","then","catch","isFunction","x","isFunctionalComponent","Component","Boolean","prototype","isReactComponent","isClassComponent","isIntrinsicElement","element","type","isRefableElement","escapeRegExpSpecChars","s","replace","getRandomID","Math","random","toString","slice","isExternalLink","link","RegExp","isBrowser","window","location","host","test","isReactUINode","componentName","node","React","isValidElement","Object","hasOwnProperty","call","__KONTUR_REACT_UI__","isNonNullable","value","undefined"],"mappings":"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","sourcesContent":["import { ReactComponentLike } from 'prop-types';\nimport React from 'react';\nimport { isForwardRef } from 'react-is';\n\nimport { isBrowser } from './client';\n\n// NOTE: Copy-paste from @types/react\nexport type Defaultize<P, D> = P extends any\n ? string extends keyof P\n ? P\n : Pick<P, Exclude<keyof P, keyof D>> &\n Partial<Pick<P, Extract<keyof P, keyof D>>> &\n Partial<Pick<D, Exclude<keyof D, keyof P>>>\n : never;\n\nexport type DefaultizeProps<C, P> = C extends { defaultProps: infer D } ? Defaultize<P, D> : P;\n\nexport const delay = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));\n\nexport const emptyHandler = () => {\n /* noop */\n};\n\nexport class CancelationError extends Error {\n public code = 'CancelationError';\n}\n\nexport function taskWithDelay(task: () => void, ms: number) {\n let cancelationToken: () => void = () => null;\n\n new Promise((resolve, reject) => {\n cancelationToken = reject;\n setTimeout(resolve, ms);\n })\n .then(task)\n .catch(() => null);\n\n return cancelationToken;\n}\n\nexport function isFunction<T>(x: T | Function): x is Function {\n return typeof x === 'function';\n}\n\nexport function isFunctionalComponent(Component: ReactComponentLike): boolean {\n return Boolean(typeof Component === 'function' && !(Component.prototype && Component.prototype.isReactComponent));\n}\n\nexport function isClassComponent(Component: ReactComponentLike): boolean {\n return Boolean(typeof Component === 'function' && Component.prototype && Component.prototype.isReactComponent);\n}\n\nexport function isIntrinsicElement(element: React.ReactElement): boolean {\n return typeof element.type === 'string';\n}\n\nexport function isRefableElement(element: React.ReactElement): boolean {\n return Boolean(isIntrinsicElement(element) || isClassComponent(element.type) || isForwardRef(element));\n}\n\nexport function escapeRegExpSpecChars(s: string): string {\n return s.replace(/[\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\n\nexport const getRandomID = (): string => Math.random().toString(16).slice(2);\n\nexport const isExternalLink = (link: string): boolean => {\n return new RegExp(`^(https?:)?//${isBrowser ? `(?!${window.location.host})` : ``}\\\\S+`, 'gi').test(link);\n};\n\n/**\n * Check if the given ReactNode is an element of the specified ReactUI component\n */\nexport const isReactUINode = (componentName: string, node: React.ReactNode): boolean => {\n if (React.isValidElement(node)) {\n return (\n Object.prototype.hasOwnProperty.call(node.type, '__KONTUR_REACT_UI__') &&\n // @ts-ignore\n node.type.__KONTUR_REACT_UI__ === componentName\n );\n }\n\n return false;\n};\n\n/**\n * Проверяет, не является ли переданный аргумент null или undefined и исключает типы null и undefined из типа аргумента\n *\n * @param value Значение, которое нужно проверить и исключить из него типы\n * @returns Возвращает true, если переданный аргумент не является null или undefined иначе false\n */\nexport const isNonNullable = <T>(value: T): value is NonNullable<T> => {\n return value !== null && value !== undefined;\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["utils.ts"],"names":["delay","ms","Promise","resolve","setTimeout","emptyHandler","CancelationError","code","Error","taskWithDelay","task","cancelationToken","reject","then","catch","isFunction","x","isFunctionalComponent","Component","Boolean","prototype","isReactComponent","isClassComponent","isIntrinsicElement","element","type","isRefableElement","escapeRegExpSpecChars","s","replace","getRandomID","Math","random","toString","slice","isExternalLink","link","RegExp","isBrowser","window","location","host","test","isReactUINode","componentName","node","React","isValidElement","Object","hasOwnProperty","call","__KONTUR_REACT_UI__","isNonNullable","value","undefined","isReactUIComponent","name","child","mergeRefs","refs","forEach","ref","current","extractDataProps","props","dataProps","restWithoutDataProps","entries","map","startsWith"],"mappings":"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","sourcesContent":["import { ReactComponentLike } from 'prop-types';\nimport React from 'react';\nimport { isForwardRef } from 'react-is';\n\nimport { isBrowser } from './client';\n\n// NOTE: Copy-paste from @types/react\nexport type Defaultize<P, D> = P extends any\n ? string extends keyof P\n ? P\n : Pick<P, Exclude<keyof P, keyof D>> &\n Partial<Pick<P, Extract<keyof P, keyof D>>> &\n Partial<Pick<D, Exclude<keyof D, keyof P>>>\n : never;\n\nexport type DefaultizeProps<C, P> = C extends { defaultProps: infer D } ? Defaultize<P, D> : P;\n\nexport const delay = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));\n\nexport const emptyHandler = () => {\n /* noop */\n};\n\nexport class CancelationError extends Error {\n public code = 'CancelationError';\n}\n\nexport function taskWithDelay(task: () => void, ms: number) {\n let cancelationToken: () => void = () => null;\n\n new Promise((resolve, reject) => {\n cancelationToken = reject;\n setTimeout(resolve, ms);\n })\n .then(task)\n .catch(() => null);\n\n return cancelationToken;\n}\n\nexport function isFunction<T>(x: T | Function): x is Function {\n return typeof x === 'function';\n}\n\nexport function isFunctionalComponent(Component: ReactComponentLike): boolean {\n return Boolean(typeof Component === 'function' && !(Component.prototype && Component.prototype.isReactComponent));\n}\n\nexport function isClassComponent(Component: ReactComponentLike): boolean {\n return Boolean(typeof Component === 'function' && Component.prototype && Component.prototype.isReactComponent);\n}\n\nexport function isIntrinsicElement(element: React.ReactElement): boolean {\n return typeof element.type === 'string';\n}\n\nexport function isRefableElement(element: React.ReactElement): boolean {\n return Boolean(isIntrinsicElement(element) || isClassComponent(element.type) || isForwardRef(element));\n}\n\nexport function escapeRegExpSpecChars(s: string): string {\n return s.replace(/[\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\n\nexport const getRandomID = (): string => Math.random().toString(16).slice(2);\n\nexport const isExternalLink = (link: string): boolean => {\n return new RegExp(`^(https?:)?//${isBrowser ? `(?!${window.location.host})` : ``}\\\\S+`, 'gi').test(link);\n};\n\n/**\n * Check if the given ReactNode is an element of the specified ReactUI component\n */\nexport const isReactUINode = (componentName: string, node: React.ReactNode): boolean => {\n if (React.isValidElement(node)) {\n return (\n Object.prototype.hasOwnProperty.call(node.type, '__KONTUR_REACT_UI__') &&\n // @ts-ignore\n node.type.__KONTUR_REACT_UI__ === componentName\n );\n }\n\n return false;\n};\n\n/**\n * Проверяет, не является ли переданный аргумент null или undefined и исключает типы null и undefined из типа аргумента\n *\n * @param value Значение, которое нужно проверить и исключить из него типы\n * @returns Возвращает true, если переданный аргумент не является null или undefined иначе false\n */\nexport const isNonNullable = <T>(value: T): value is NonNullable<T> => {\n return value !== null && value !== undefined;\n};\n\n/**\n * Creates a function that checks if the given `child`\n * is an instance of some component specified by `name`.\n *\n * @param name Component name for which function will be created.\n * @returns A function that checks if the given `child` is an instance of the component specified by `name`.\n */\nexport const isReactUIComponent = <P = any>(name: string) => {\n return (child: React.ReactNode): child is React.ReactElement<P> => {\n // @ts-ignore\n return child?.type?.__KONTUR_REACT_UI__ === name;\n };\n};\n\n/**\n * Merges two or more refs into one.\n *\n * @param refs Array of refs.\n * @returns A single ref composing all the refs passed.\n *\n * @example\n * const SomeComponent = forwardRef((props, ref) => {\n * const localRef = useRef();\n *\n * return <div ref={mergeRefs([localRef, ref])} />;\n * });\n */\nexport function mergeRefs<T = any>(refs: Array<React.MutableRefObject<T> | React.LegacyRef<T>>): React.RefCallback<T> {\n return (value) => {\n refs.forEach((ref) => {\n if (typeof ref === 'function') {\n return ref(value);\n } else if (isNonNullable(ref)) {\n return ((ref as React.MutableRefObject<T | null>).current = value);\n }\n });\n };\n}\n\n/**\n * Extracts all data attributes from props and returns them as well as props.\n *\n * @param props Props object to extract data attributes from.\n * @returns Separated data attributes and all other props.\n */\nexport const extractDataProps = <T>(props: T) => {\n const dataProps: Record<string, any> = {};\n const restWithoutDataProps: Record<string, any> = {};\n\n Object.entries(props).map(([name, value]) => {\n if (name.startsWith('data-')) {\n dataProps[name] = value;\n } else {\n restWithoutDataProps[name] = value;\n }\n });\n\n return { dataProps, restWithoutDataProps };\n};\n"]}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
export type HTMLProps = {
|
|
4
|
+
a: React.AnchorHTMLAttributes<HTMLAnchorElement>;
|
|
5
|
+
abbr: React.HTMLAttributes<HTMLElement>;
|
|
6
|
+
div: React.HTMLAttributes<HTMLDivElement>;
|
|
7
|
+
address: React.HTMLAttributes<HTMLElement>;
|
|
8
|
+
area: React.AreaHTMLAttributes<HTMLAreaElement>;
|
|
9
|
+
article: React.HTMLAttributes<HTMLElement>;
|
|
10
|
+
aside: React.HTMLAttributes<HTMLElement>;
|
|
11
|
+
audio: React.AudioHTMLAttributes<HTMLAudioElement>;
|
|
12
|
+
b: React.HTMLAttributes<HTMLElement>;
|
|
13
|
+
base: React.BaseHTMLAttributes<HTMLBaseElement>;
|
|
14
|
+
bdi: React.HTMLAttributes<HTMLElement>;
|
|
15
|
+
bdo: React.HTMLAttributes<HTMLElement>;
|
|
16
|
+
big: React.HTMLAttributes<HTMLElement>;
|
|
17
|
+
blockquote: React.BlockquoteHTMLAttributes<HTMLElement>;
|
|
18
|
+
body: React.HTMLAttributes<HTMLBodyElement>;
|
|
19
|
+
br: React.HTMLAttributes<HTMLBRElement>;
|
|
20
|
+
button: React.ButtonHTMLAttributes<HTMLButtonElement>;
|
|
21
|
+
canvas: React.CanvasHTMLAttributes<HTMLCanvasElement>;
|
|
22
|
+
caption: React.HTMLAttributes<HTMLElement>;
|
|
23
|
+
cite: React.HTMLAttributes<HTMLElement>;
|
|
24
|
+
code: React.HTMLAttributes<HTMLElement>;
|
|
25
|
+
col: React.ColHTMLAttributes<HTMLTableColElement>;
|
|
26
|
+
colgroup: React.ColgroupHTMLAttributes<HTMLTableColElement>;
|
|
27
|
+
data: React.DataHTMLAttributes<HTMLDataElement>;
|
|
28
|
+
datalist: React.HTMLAttributes<HTMLDataListElement>;
|
|
29
|
+
dd: React.HTMLAttributes<HTMLElement>;
|
|
30
|
+
del: React.DelHTMLAttributes<HTMLElement>;
|
|
31
|
+
details: React.DetailsHTMLAttributes<HTMLElement>;
|
|
32
|
+
dfn: React.HTMLAttributes<HTMLElement>;
|
|
33
|
+
dialog: React.DialogHTMLAttributes<HTMLDialogElement>;
|
|
34
|
+
div: React.HTMLAttributes<HTMLDivElement>;
|
|
35
|
+
dl: React.HTMLAttributes<HTMLDListElement>;
|
|
36
|
+
dt: React.HTMLAttributes<HTMLElement>;
|
|
37
|
+
em: React.HTMLAttributes<HTMLElement>;
|
|
38
|
+
embed: React.EmbedHTMLAttributes<HTMLEmbedElement>;
|
|
39
|
+
fieldset: React.FieldsetHTMLAttributes<HTMLFieldSetElement>;
|
|
40
|
+
figcaption: React.HTMLAttributes<HTMLElement>;
|
|
41
|
+
figure: React.HTMLAttributes<HTMLElement>;
|
|
42
|
+
footer: React.HTMLAttributes<HTMLElement>;
|
|
43
|
+
form: React.FormHTMLAttributes<HTMLFormElement>;
|
|
44
|
+
h1: React.HTMLAttributes<HTMLHeadingElement>;
|
|
45
|
+
h2: React.HTMLAttributes<HTMLHeadingElement>;
|
|
46
|
+
h3: React.HTMLAttributes<HTMLHeadingElement>;
|
|
47
|
+
h4: React.HTMLAttributes<HTMLHeadingElement>;
|
|
48
|
+
h5: React.HTMLAttributes<HTMLHeadingElement>;
|
|
49
|
+
h6: React.HTMLAttributes<HTMLHeadingElement>;
|
|
50
|
+
head: React.HTMLAttributes<HTMLHeadElement>;
|
|
51
|
+
header: React.HTMLAttributes<HTMLElement>;
|
|
52
|
+
hgroup: React.HTMLAttributes<HTMLElement>;
|
|
53
|
+
hr: React.HTMLAttributes<HTMLHRElement>;
|
|
54
|
+
html: React.HtmlHTMLAttributes<HTMLHtmlElement>;
|
|
55
|
+
i: React.HTMLAttributes<HTMLElement>;
|
|
56
|
+
iframe: React.IframeHTMLAttributes<HTMLIFrameElement>;
|
|
57
|
+
img: React.ImgHTMLAttributes<HTMLImageElement>;
|
|
58
|
+
input: React.InputHTMLAttributes<HTMLInputElement>;
|
|
59
|
+
ins: React.InsHTMLAttributes<HTMLModElement>;
|
|
60
|
+
kbd: React.HTMLAttributes<HTMLElement>;
|
|
61
|
+
keygen: React.KeygenHTMLAttributes<HTMLElement>;
|
|
62
|
+
label: React.LabelHTMLAttributes<HTMLLabelElement>;
|
|
63
|
+
legend: React.HTMLAttributes<HTMLLegendElement>;
|
|
64
|
+
li: React.LiHTMLAttributes<HTMLLIElement>;
|
|
65
|
+
link: React.LinkHTMLAttributes<HTMLLinkElement>;
|
|
66
|
+
main: React.HTMLAttributes<HTMLElement>;
|
|
67
|
+
map: React.MapHTMLAttributes<HTMLMapElement>;
|
|
68
|
+
mark: React.HTMLAttributes<HTMLElement>;
|
|
69
|
+
menu: React.MenuHTMLAttributes<HTMLElement>;
|
|
70
|
+
menuitem: React.HTMLAttributes<HTMLElement>;
|
|
71
|
+
meta: React.MetaHTMLAttributes<HTMLMetaElement>;
|
|
72
|
+
meter: React.MeterHTMLAttributes<HTMLElement>;
|
|
73
|
+
nav: React.HTMLAttributes<HTMLElement>;
|
|
74
|
+
noindex: React.HTMLAttributes<HTMLElement>;
|
|
75
|
+
noscript: React.HTMLAttributes<HTMLElement>;
|
|
76
|
+
object: React.ObjectHTMLAttributes<HTMLObjectElement>;
|
|
77
|
+
ol: React.OlHTMLAttributes<HTMLOListElement>;
|
|
78
|
+
optgroup: React.OptgroupHTMLAttributes<HTMLOptGroupElement>;
|
|
79
|
+
option: React.OptionHTMLAttributes<HTMLOptionElement>;
|
|
80
|
+
output: React.OutputHTMLAttributes<HTMLElement>;
|
|
81
|
+
p: React.HTMLAttributes<HTMLParagraphElement>;
|
|
82
|
+
param: React.ParamHTMLAttributes<HTMLParamElement>;
|
|
83
|
+
picture: React.HTMLAttributes<HTMLElement>;
|
|
84
|
+
pre: React.HTMLAttributes<HTMLPreElement>;
|
|
85
|
+
progress: React.ProgressHTMLAttributes<HTMLProgressElement>;
|
|
86
|
+
q: React.QuoteHTMLAttributes<HTMLQuoteElement>;
|
|
87
|
+
rp: React.HTMLAttributes<HTMLElement>;
|
|
88
|
+
rt: React.HTMLAttributes<HTMLElement>;
|
|
89
|
+
ruby: React.HTMLAttributes<HTMLElement>;
|
|
90
|
+
s: React.HTMLAttributes<HTMLElement>;
|
|
91
|
+
samp: React.HTMLAttributes<HTMLElement>;
|
|
92
|
+
slot: React.SlotHTMLAttributes<HTMLSlotElement>;
|
|
93
|
+
script: React.ScriptHTMLAttributes<HTMLScriptElement>;
|
|
94
|
+
section: React.HTMLAttributes<HTMLElement>;
|
|
95
|
+
select: React.SelectHTMLAttributes<HTMLSelectElement>;
|
|
96
|
+
small: React.HTMLAttributes<HTMLElement>;
|
|
97
|
+
source: React.SourceHTMLAttributes<HTMLSourceElement>;
|
|
98
|
+
span: React.HTMLAttributes<HTMLSpanElement>;
|
|
99
|
+
strong: React.HTMLAttributes<HTMLElement>;
|
|
100
|
+
style: React.StyleHTMLAttributes<HTMLStyleElement>;
|
|
101
|
+
sub: React.HTMLAttributes<HTMLElement>;
|
|
102
|
+
summary: React.HTMLAttributes<HTMLElement>;
|
|
103
|
+
sup: React.HTMLAttributes<HTMLElement>;
|
|
104
|
+
table: React.TableHTMLAttributes<HTMLTableElement>;
|
|
105
|
+
template: React.HTMLAttributes<HTMLTemplateElement>;
|
|
106
|
+
tbody: React.HTMLAttributes<HTMLTableSectionElement>;
|
|
107
|
+
td: React.TdHTMLAttributes<HTMLTableDataCellElement>;
|
|
108
|
+
textarea: React.TextareaHTMLAttributes<HTMLTextAreaElement>;
|
|
109
|
+
tfoot: React.HTMLAttributes<HTMLTableSectionElement>;
|
|
110
|
+
th: React.ThHTMLAttributes<HTMLTableHeaderCellElement>;
|
|
111
|
+
thead: React.HTMLAttributes<HTMLTableSectionElement>;
|
|
112
|
+
time: React.TimeHTMLAttributes<HTMLElement>;
|
|
113
|
+
title: React.HTMLAttributes<HTMLTitleElement>;
|
|
114
|
+
tr: React.HTMLAttributes<HTMLTableRowElement>;
|
|
115
|
+
track: React.TrackHTMLAttributes<HTMLTrackElement>;
|
|
116
|
+
u: React.HTMLAttributes<HTMLElement>;
|
|
117
|
+
ul: React.HTMLAttributes<HTMLUListElement>;
|
|
118
|
+
var: React.HTMLAttributes<HTMLElement>;
|
|
119
|
+
video: React.VideoHTMLAttributes<HTMLVideoElement>;
|
|
120
|
+
wbr: React.HTMLAttributes<HTMLElement>;
|
|
121
|
+
webview: React.WebViewHTMLAttributes<HTMLWebViewElement>;
|
|
122
|
+
svg: React.SVGProps<SVGSVGElement>;
|
|
123
|
+
};
|
|
@@ -4,6 +4,7 @@ import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
|
|
|
4
4
|
var _class, _class2, _temp;
|
|
5
5
|
|
|
6
6
|
import React from 'react';
|
|
7
|
+
import { isReactUIComponent } from "../../../lib/utils";
|
|
7
8
|
import { isIE11, isEdge } from "../../../lib/client";
|
|
8
9
|
import { keyListener } from "../../../lib/events/keyListener";
|
|
9
10
|
import { ThemeContext } from "../../../lib/theming/ThemeContext";
|
|
@@ -149,7 +150,7 @@ export var Button = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (
|
|
|
149
150
|
// on this button if somewhere on the page user presses Enter while some
|
|
150
151
|
// input is focused. So we set type to 'button' by default.
|
|
151
152
|
type: this.props.type,
|
|
152
|
-
className: cx((_cx = {}, _cx[styles.root(this.theme)] = true, _cx[styles[use](this.theme)] = true, _cx[activeStyles[use](this.theme)] = active, _cx[sizeClass] = true, _cx[styles.focus(this.theme)] = isFocused
|
|
153
|
+
className: cx((_cx = {}, _cx[styles.root(this.theme)] = true, _cx[styles[use](this.theme)] = true, _cx[activeStyles[use](this.theme)] = active, _cx[sizeClass] = true, _cx[styles.focus(this.theme)] = isFocused, _cx[styles.checked(this.theme)] = checked, _cx[styles.checkedFocused(this.theme)] = checked && isFocused, _cx[styles.disabled(this.theme)] = disabled || loading, _cx[styles.checkedDisabled(this.theme)] = checked && disabled, _cx[styles.borderless()] = borderless && !disabled && !loading && !checked && !isFocused && !active, _cx[styles.narrow()] = narrow, _cx[styles.noPadding()] = _noPadding, _cx[styles.noRightPadding()] = _noRightPadding, _cx)),
|
|
153
154
|
style: {
|
|
154
155
|
borderTopLeftRadius: corners & Corners.TOP_LEFT ? 0 : undefined,
|
|
155
156
|
borderTopRightRadius: corners & Corners.TOP_RIGHT ? 0 : undefined,
|
|
@@ -286,9 +287,4 @@ export var Button = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (
|
|
|
286
287
|
size: 'small',
|
|
287
288
|
type: 'button'
|
|
288
289
|
}, _temp)) || _class;
|
|
289
|
-
export var isButton =
|
|
290
|
-
var _child$type; // @ts-ignore
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
return (child == null ? void 0 : (_child$type = child.type) == null ? void 0 : _child$type.__KONTUR_REACT_UI__) === 'Button';
|
|
294
|
-
};
|
|
290
|
+
export var isButton = isReactUIComponent('Button');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Button.tsx"],"names":["React","isIE11","isEdge","keyListener","ThemeContext","Spinner","CommonWrapper","cx","rootNode","styles","activeStyles","globalClasses","Corners","Button","state","focusedByTab","theme","node","setRootNode","handleFocus","e","props","disabled","disableFocus","requestAnimationFrame","isTabPressed","setState","onFocus","handleBlur","onBlur","_ref","componentDidMount","autoFocus","focus","getDerivedStateFromProps","loading","blur","render","renderMain","corners","active","borderless","checked","error","warning","arrow","narrow","icon","_noPadding","_noRightPadding","use","defaultProps","visuallyFocused","align","onMouseEnter","onMouseLeave","onMouseOver","onKeyDown","onClick","width","children","sizeClass","getSizeClassName","isFocused","isLink","rootProps","type","className","root","checkedDisabled","noPadding","noRightPadding","style","borderTopLeftRadius","TOP_LEFT","undefined","borderTopRightRadius","TOP_RIGHT","borderBottomRightRadius","BOTTOM_RIGHT","borderBottomLeftRadius","BOTTOM_LEFT","textAlign","tabIndex","title","wrapProps","wrap","wrapArrow","wrapArrowLeft","outlineNode","outline","outlineWarning","outlineError","outlineLink","outlineLinkWarning","outlineLinkError","loadingNode","getLoadingSpinner","iconNode","getSizeIconClassName","iconNoRightPadding","iconLink","arrowNode","arrowWarning","arrowError","arrowFocus","arrowLeft","arrowHelper","arrowHelperTop","arrowHelperBottom","link","linkFocus","linkDisabled","Object","assign","wrapLink","caption","captionTranslated","captionLink","captionDisabled","visibilityHidden","size","sizeLarge","sizeLargeIE11","sizeMedium","sizeMediumIE11","sizeSmall","sizeSmallIE11","iconLarge","iconMedium","iconSmall","Component","__KONTUR_REACT_UI__","__BUTTON__","isButton","child"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { isIE11, isEdge } from '../../lib/client';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Spinner } from '../Spinner';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles, activeStyles, globalClasses } from './Button.styles';\nimport { Corners } from './Corners';\n\nexport type ButtonSize = 'small' | 'medium' | 'large';\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type ButtonUse = 'default' | 'primary' | 'success' | 'danger' | 'pay' | 'link';\n\nexport interface ButtonProps extends CommonProps {\n /** @ignore */\n _noPadding?: boolean;\n\n /** @ignore */\n _noRightPadding?: boolean;\n\n /**\n * Применяет к кнопке стили псевдокласса `:active`.\n */\n active?: boolean;\n\n /**\n * CSS-свойство `text-align`.\n */\n align?: React.CSSProperties['textAlign'];\n\n /**\n * Превращает обычную кнопку в кнопку со стрелкой.\n */\n arrow?: boolean | 'left';\n\n /**\n * Даёт кнопке фокус после окончания загрузки страницы.\n */\n autoFocus?: boolean;\n\n /**\n * Убирает обводку у кнопки.\n */\n borderless?: boolean;\n\n /**\n * @ignore\n */\n checked?: boolean;\n\n children?: React.ReactNode;\n\n /** @ignore */\n corners?: number;\n\n /**\n * Отключенное состояние кнопки.\n */\n disabled?: boolean;\n\n /** @ignore */\n disableFocus?: boolean;\n\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n\n /**\n * Иконка слева от текста кнопки.\n */\n icon?: React.ReactElement<any>;\n\n /**\n * Переводит кнопку в состояние загрузки.\n */\n loading?: boolean;\n\n /**\n * Сужает кнопку.\n */\n narrow?: boolean;\n\n /**\n * HTML-событие `onblur`.\n */\n onBlur?: React.FocusEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onclick`.\n */\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onfocus`.\n */\n onFocus?: React.FocusEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `keydown`.\n */\n onKeyDown?: React.KeyboardEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onmouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onmouseover`.\n */\n onMouseOver?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * Задаёт размер кнопки.\n *\n * **Допустимые значения**: `\"small\"`, `\"medium\"`, `\"large\"`.\n */\n size?: ButtonSize;\n\n /**\n * HTML-атрибут `type`.\n */\n type?: ButtonType;\n\n /**\n * HTML-атрибут `title`.\n */\n title?: string;\n\n /**\n * Стиль кнопки.\n *\n * **Допустимые значения**: `\"default\"`, `\"primary\"`, `\"success\"`, `\"danger\"`, `\"pay\"`, `\"link\"`.\n */\n use?: ButtonUse;\n\n /** @ignore */\n visuallyFocused?: boolean;\n\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n\n /**\n * CSS-свойство `width`.\n */\n width?: number | string;\n}\n\nexport interface ButtonState {\n focusedByTab: boolean;\n}\n\n@rootNode\nexport class Button extends React.Component<ButtonProps, ButtonState> {\n public static __KONTUR_REACT_UI__ = 'Button';\n public static __BUTTON__ = true;\n public static TOP_LEFT = Corners.TOP_LEFT;\n public static TOP_RIGHT = Corners.TOP_RIGHT;\n public static BOTTOM_RIGHT = Corners.BOTTOM_RIGHT;\n public static BOTTOM_LEFT = Corners.BOTTOM_LEFT;\n\n public static defaultProps = {\n use: 'default' as ButtonUse,\n size: 'small' as ButtonSize,\n type: 'button' as ButtonType,\n };\n\n public state = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private node: HTMLButtonElement | null = null;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.props.autoFocus) {\n keyListener.isTabPressed = true;\n this.focus();\n }\n }\n\n public static getDerivedStateFromProps(props: ButtonProps) {\n if (props.loading || props.disabled) {\n return { focusedByTab: false };\n }\n return null;\n }\n\n /**\n * @public\n */\n public focus() {\n this.node?.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n this.node?.blur();\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const {\n corners = 0,\n active,\n disabled,\n borderless,\n checked,\n error,\n warning,\n loading,\n arrow,\n narrow,\n icon,\n _noPadding,\n _noRightPadding,\n use = Button.defaultProps.use,\n visuallyFocused,\n align,\n disableFocus,\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onKeyDown,\n onClick,\n width,\n children,\n } = this.props;\n const sizeClass = this.getSizeClassName();\n\n const isFocused = this.state.focusedByTab || visuallyFocused;\n const isLink = use === 'link';\n const rootProps = {\n // By default the type attribute is 'submit'. IE8 will fire a click event\n // on this button if somewhere on the page user presses Enter while some\n // input is focused. So we set type to 'button' by default.\n type: this.props.type,\n className: cx({\n [styles.root(this.theme)]: true,\n [styles[use](this.theme)]: true,\n [activeStyles[use](this.theme)]: active,\n [sizeClass]: true,\n [styles.focus(this.theme)]: isFocused && !checked,\n [styles.checked(this.theme)]: checked,\n [styles.disabled(this.theme)]: disabled || loading,\n [styles.checkedDisabled(this.theme)]: checked && disabled,\n [styles.borderless()]: borderless && !disabled && !loading && !checked && !isFocused && !active,\n [styles.narrow()]: narrow,\n [styles.noPadding()]: _noPadding,\n [styles.noRightPadding()]: _noRightPadding,\n }),\n style: {\n borderTopLeftRadius: corners & Corners.TOP_LEFT ? 0 : undefined,\n borderTopRightRadius: corners & Corners.TOP_RIGHT ? 0 : undefined,\n borderBottomRightRadius: corners & Corners.BOTTOM_RIGHT ? 0 : undefined,\n borderBottomLeftRadius: corners & Corners.BOTTOM_LEFT ? 0 : undefined,\n textAlign: align,\n },\n disabled: disabled || loading,\n onClick: onClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onKeyDown: onKeyDown,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseOver: onMouseOver,\n tabIndex: disableFocus ? -1 : 0,\n title: this.props.title,\n };\n\n const wrapProps = {\n className: cx({\n [styles.wrap()]: true,\n [styles.wrapArrow()]: arrow === true,\n [styles.wrapArrowLeft()]: arrow === 'left',\n }),\n style: {\n width: width,\n },\n };\n\n let outlineNode = null;\n if (!isFocused || isLink) {\n outlineNode = (\n <div\n className={cx(styles.outline(), {\n [styles.outlineWarning(this.theme)]: warning,\n [styles.outlineError(this.theme)]: error,\n [styles.outlineLink()]: isLink,\n [styles.outlineLinkWarning(this.theme)]: isLink && warning,\n [styles.outlineLinkError(this.theme)]: isLink && error,\n })}\n />\n );\n }\n\n let loadingNode = null;\n if (loading && !icon) {\n loadingNode = <div className={styles.loading()}>{this.getLoadingSpinner()}</div>;\n }\n\n let iconNode = null;\n if (icon) {\n iconNode = (\n <span\n className={cx(styles.icon(), this.getSizeIconClassName(), {\n [styles.iconNoRightPadding()]: !children,\n [styles.iconLink(this.theme)]: isLink,\n })}\n >\n {loading ? this.getLoadingSpinner() : icon}\n </span>\n );\n }\n\n let arrowNode = null;\n if (arrow) {\n arrowNode = (\n <div\n className={cx({\n [styles.arrow()]: true,\n [styles.arrowWarning(this.theme)]: !checked && warning,\n [styles.arrowError(this.theme)]: !checked && error,\n [styles.arrowFocus(this.theme)]: !checked && isFocused,\n [styles.arrowLeft()]: arrow === 'left',\n })}\n >\n <div className={cx(globalClasses.arrowHelper, globalClasses.arrowHelperTop)} />\n <div className={cx(globalClasses.arrowHelper, globalClasses.arrowHelperBottom)} />\n </div>\n );\n }\n\n // Force disable all props and features, that cannot be use with Link\n if (isLink) {\n rootProps.className = cx({\n [styles.root(this.theme)]: true,\n [sizeClass]: true,\n [styles.link(this.theme)]: true,\n [styles.linkFocus(this.theme)]: isFocused,\n [styles.linkDisabled(this.theme)]: disabled || loading,\n });\n Object.assign(wrapProps, {\n className: cx(styles.wrap(), styles.wrapLink()),\n style: { width: wrapProps.style.width },\n });\n rootProps.style.textAlign = undefined;\n arrowNode = null;\n }\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <span {...wrapProps}>\n <button ref={this._ref} {...rootProps}>\n {outlineNode}\n {loadingNode}\n {arrowNode}\n <div\n className={cx(styles.caption(), globalClasses.caption, {\n [styles.captionTranslated()]: active || checked,\n [styles.captionLink()]: isLink,\n [styles.captionDisabled()]: !checked && disabled,\n })}\n >\n {iconNode}\n <span className={cx({ [styles.visibilityHidden()]: !!loadingNode })}>{children}</span>\n </div>\n </button>\n </span>\n </CommonWrapper>\n );\n }\n\n private getLoadingSpinner() {\n return <Spinner caption={null} dimmed type=\"mini\" />;\n }\n\n private getSizeClassName() {\n switch (this.props.size) {\n case 'large':\n return cx(styles.sizeLarge(this.theme), { [styles.sizeLargeIE11(this.theme)]: isIE11 || isEdge });\n case 'medium':\n return cx(styles.sizeMedium(this.theme), { [styles.sizeMediumIE11(this.theme)]: isIE11 || isEdge });\n case 'small':\n default:\n return cx(styles.sizeSmall(this.theme), { [styles.sizeSmallIE11(this.theme)]: isIE11 || isEdge });\n }\n }\n\n private getSizeIconClassName() {\n switch (this.props.size) {\n case 'large':\n return styles.iconLarge(this.theme);\n case 'medium':\n return styles.iconMedium(this.theme);\n case 'small':\n default:\n return styles.iconSmall(this.theme);\n }\n }\n\n private handleFocus = (e: React.FocusEvent<HTMLButtonElement>) => {\n if (!this.props.disabled && !this.props.disableFocus) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n this.props.onFocus?.(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLButtonElement>) => {\n this.setState({ focusedByTab: false });\n if (!this.props.disabled && !this.props.disableFocus) {\n this.props.onBlur?.(e);\n }\n };\n\n private _ref = (node: HTMLButtonElement | null) => {\n this.node = node;\n };\n}\n\nexport const isButton = (child: React.ReactChild): child is React.ReactElement<ButtonProps> => {\n // @ts-ignore\n return child?.type?.__KONTUR_REACT_UI__ === 'Button';\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["Button.tsx"],"names":["React","isReactUIComponent","isIE11","isEdge","keyListener","ThemeContext","Spinner","CommonWrapper","cx","rootNode","styles","activeStyles","globalClasses","Corners","Button","state","focusedByTab","theme","node","setRootNode","handleFocus","e","props","disabled","disableFocus","requestAnimationFrame","isTabPressed","setState","onFocus","handleBlur","onBlur","_ref","componentDidMount","autoFocus","focus","getDerivedStateFromProps","loading","blur","render","renderMain","corners","active","borderless","checked","error","warning","arrow","narrow","icon","_noPadding","_noRightPadding","use","defaultProps","visuallyFocused","align","onMouseEnter","onMouseLeave","onMouseOver","onKeyDown","onClick","width","children","sizeClass","getSizeClassName","isFocused","isLink","rootProps","type","className","root","checkedFocused","checkedDisabled","noPadding","noRightPadding","style","borderTopLeftRadius","TOP_LEFT","undefined","borderTopRightRadius","TOP_RIGHT","borderBottomRightRadius","BOTTOM_RIGHT","borderBottomLeftRadius","BOTTOM_LEFT","textAlign","tabIndex","title","wrapProps","wrap","wrapArrow","wrapArrowLeft","outlineNode","outline","outlineWarning","outlineError","outlineLink","outlineLinkWarning","outlineLinkError","loadingNode","getLoadingSpinner","iconNode","getSizeIconClassName","iconNoRightPadding","iconLink","arrowNode","arrowWarning","arrowError","arrowFocus","arrowLeft","arrowHelper","arrowHelperTop","arrowHelperBottom","link","linkFocus","linkDisabled","Object","assign","wrapLink","caption","captionTranslated","captionLink","captionDisabled","visibilityHidden","size","sizeLarge","sizeLargeIE11","sizeMedium","sizeMediumIE11","sizeSmall","sizeSmallIE11","iconLarge","iconMedium","iconSmall","Component","__KONTUR_REACT_UI__","__BUTTON__","isButton"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { isReactUIComponent } from '../../lib/utils';\nimport { isIE11, isEdge } from '../../lib/client';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Spinner } from '../Spinner';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles, activeStyles, globalClasses } from './Button.styles';\nimport { Corners } from './Corners';\n\nexport type ButtonSize = 'small' | 'medium' | 'large';\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type ButtonUse = 'default' | 'primary' | 'success' | 'danger' | 'pay' | 'link';\n\nexport interface ButtonProps extends CommonProps {\n /** @ignore */\n _noPadding?: boolean;\n\n /** @ignore */\n _noRightPadding?: boolean;\n\n /**\n * Применяет к кнопке стили псевдокласса `:active`.\n */\n active?: boolean;\n\n /**\n * CSS-свойство `text-align`.\n */\n align?: React.CSSProperties['textAlign'];\n\n /**\n * Превращает обычную кнопку в кнопку со стрелкой.\n */\n arrow?: boolean | 'left';\n\n /**\n * Даёт кнопке фокус после окончания загрузки страницы.\n */\n autoFocus?: boolean;\n\n /**\n * Убирает обводку у кнопки.\n */\n borderless?: boolean;\n\n /**\n * @ignore\n */\n checked?: boolean;\n\n children?: React.ReactNode;\n\n /** @ignore */\n corners?: number;\n\n /**\n * Отключенное состояние кнопки.\n */\n disabled?: boolean;\n\n /** @ignore */\n disableFocus?: boolean;\n\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n\n /**\n * Иконка слева от текста кнопки.\n */\n icon?: React.ReactElement<any>;\n\n /**\n * Переводит кнопку в состояние загрузки.\n */\n loading?: boolean;\n\n /**\n * Сужает кнопку.\n */\n narrow?: boolean;\n\n /**\n * HTML-событие `onblur`.\n */\n onBlur?: React.FocusEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onclick`.\n */\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onfocus`.\n */\n onFocus?: React.FocusEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `keydown`.\n */\n onKeyDown?: React.KeyboardEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onmouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onmouseover`.\n */\n onMouseOver?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * Задаёт размер кнопки.\n *\n * **Допустимые значения**: `\"small\"`, `\"medium\"`, `\"large\"`.\n */\n size?: ButtonSize;\n\n /**\n * HTML-атрибут `type`.\n */\n type?: ButtonType;\n\n /**\n * HTML-атрибут `title`.\n */\n title?: string;\n\n /**\n * Стиль кнопки.\n *\n * **Допустимые значения**: `\"default\"`, `\"primary\"`, `\"success\"`, `\"danger\"`, `\"pay\"`, `\"link\"`.\n */\n use?: ButtonUse;\n\n /** @ignore */\n visuallyFocused?: boolean;\n\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n\n /**\n * CSS-свойство `width`.\n */\n width?: number | string;\n}\n\nexport interface ButtonState {\n focusedByTab: boolean;\n}\n\n@rootNode\nexport class Button extends React.Component<ButtonProps, ButtonState> {\n public static __KONTUR_REACT_UI__ = 'Button';\n public static __BUTTON__ = true;\n public static TOP_LEFT = Corners.TOP_LEFT;\n public static TOP_RIGHT = Corners.TOP_RIGHT;\n public static BOTTOM_RIGHT = Corners.BOTTOM_RIGHT;\n public static BOTTOM_LEFT = Corners.BOTTOM_LEFT;\n\n public static defaultProps = {\n use: 'default' as ButtonUse,\n size: 'small' as ButtonSize,\n type: 'button' as ButtonType,\n };\n\n public state = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private node: HTMLButtonElement | null = null;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.props.autoFocus) {\n keyListener.isTabPressed = true;\n this.focus();\n }\n }\n\n public static getDerivedStateFromProps(props: ButtonProps) {\n if (props.loading || props.disabled) {\n return { focusedByTab: false };\n }\n return null;\n }\n\n /**\n * @public\n */\n public focus() {\n this.node?.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n this.node?.blur();\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const {\n corners = 0,\n active,\n disabled,\n borderless,\n checked,\n error,\n warning,\n loading,\n arrow,\n narrow,\n icon,\n _noPadding,\n _noRightPadding,\n use = Button.defaultProps.use,\n visuallyFocused,\n align,\n disableFocus,\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onKeyDown,\n onClick,\n width,\n children,\n } = this.props;\n const sizeClass = this.getSizeClassName();\n\n const isFocused = this.state.focusedByTab || visuallyFocused;\n const isLink = use === 'link';\n const rootProps = {\n // By default the type attribute is 'submit'. IE8 will fire a click event\n // on this button if somewhere on the page user presses Enter while some\n // input is focused. So we set type to 'button' by default.\n type: this.props.type,\n className: cx({\n [styles.root(this.theme)]: true,\n [styles[use](this.theme)]: true,\n [activeStyles[use](this.theme)]: active,\n [sizeClass]: true,\n [styles.focus(this.theme)]: isFocused,\n [styles.checked(this.theme)]: checked,\n [styles.checkedFocused(this.theme)]: checked && isFocused,\n [styles.disabled(this.theme)]: disabled || loading,\n [styles.checkedDisabled(this.theme)]: checked && disabled,\n [styles.borderless()]: borderless && !disabled && !loading && !checked && !isFocused && !active,\n [styles.narrow()]: narrow,\n [styles.noPadding()]: _noPadding,\n [styles.noRightPadding()]: _noRightPadding,\n }),\n style: {\n borderTopLeftRadius: corners & Corners.TOP_LEFT ? 0 : undefined,\n borderTopRightRadius: corners & Corners.TOP_RIGHT ? 0 : undefined,\n borderBottomRightRadius: corners & Corners.BOTTOM_RIGHT ? 0 : undefined,\n borderBottomLeftRadius: corners & Corners.BOTTOM_LEFT ? 0 : undefined,\n textAlign: align,\n },\n disabled: disabled || loading,\n onClick: onClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onKeyDown: onKeyDown,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseOver: onMouseOver,\n tabIndex: disableFocus ? -1 : 0,\n title: this.props.title,\n };\n\n const wrapProps = {\n className: cx({\n [styles.wrap()]: true,\n [styles.wrapArrow()]: arrow === true,\n [styles.wrapArrowLeft()]: arrow === 'left',\n }),\n style: {\n width: width,\n },\n };\n\n let outlineNode = null;\n if (!isFocused || isLink) {\n outlineNode = (\n <div\n className={cx(styles.outline(), {\n [styles.outlineWarning(this.theme)]: warning,\n [styles.outlineError(this.theme)]: error,\n [styles.outlineLink()]: isLink,\n [styles.outlineLinkWarning(this.theme)]: isLink && warning,\n [styles.outlineLinkError(this.theme)]: isLink && error,\n })}\n />\n );\n }\n\n let loadingNode = null;\n if (loading && !icon) {\n loadingNode = <div className={styles.loading()}>{this.getLoadingSpinner()}</div>;\n }\n\n let iconNode = null;\n if (icon) {\n iconNode = (\n <span\n className={cx(styles.icon(), this.getSizeIconClassName(), {\n [styles.iconNoRightPadding()]: !children,\n [styles.iconLink(this.theme)]: isLink,\n })}\n >\n {loading ? this.getLoadingSpinner() : icon}\n </span>\n );\n }\n\n let arrowNode = null;\n if (arrow) {\n arrowNode = (\n <div\n className={cx({\n [styles.arrow()]: true,\n [styles.arrowWarning(this.theme)]: !checked && warning,\n [styles.arrowError(this.theme)]: !checked && error,\n [styles.arrowFocus(this.theme)]: !checked && isFocused,\n [styles.arrowLeft()]: arrow === 'left',\n })}\n >\n <div className={cx(globalClasses.arrowHelper, globalClasses.arrowHelperTop)} />\n <div className={cx(globalClasses.arrowHelper, globalClasses.arrowHelperBottom)} />\n </div>\n );\n }\n\n // Force disable all props and features, that cannot be use with Link\n if (isLink) {\n rootProps.className = cx({\n [styles.root(this.theme)]: true,\n [sizeClass]: true,\n [styles.link(this.theme)]: true,\n [styles.linkFocus(this.theme)]: isFocused,\n [styles.linkDisabled(this.theme)]: disabled || loading,\n });\n Object.assign(wrapProps, {\n className: cx(styles.wrap(), styles.wrapLink()),\n style: { width: wrapProps.style.width },\n });\n rootProps.style.textAlign = undefined;\n arrowNode = null;\n }\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <span {...wrapProps}>\n <button ref={this._ref} {...rootProps}>\n {outlineNode}\n {loadingNode}\n {arrowNode}\n <div\n className={cx(styles.caption(), globalClasses.caption, {\n [styles.captionTranslated()]: active || checked,\n [styles.captionLink()]: isLink,\n [styles.captionDisabled()]: !checked && disabled,\n })}\n >\n {iconNode}\n <span className={cx({ [styles.visibilityHidden()]: !!loadingNode })}>{children}</span>\n </div>\n </button>\n </span>\n </CommonWrapper>\n );\n }\n\n private getLoadingSpinner() {\n return <Spinner caption={null} dimmed type=\"mini\" />;\n }\n\n private getSizeClassName() {\n switch (this.props.size) {\n case 'large':\n return cx(styles.sizeLarge(this.theme), { [styles.sizeLargeIE11(this.theme)]: isIE11 || isEdge });\n case 'medium':\n return cx(styles.sizeMedium(this.theme), { [styles.sizeMediumIE11(this.theme)]: isIE11 || isEdge });\n case 'small':\n default:\n return cx(styles.sizeSmall(this.theme), { [styles.sizeSmallIE11(this.theme)]: isIE11 || isEdge });\n }\n }\n\n private getSizeIconClassName() {\n switch (this.props.size) {\n case 'large':\n return styles.iconLarge(this.theme);\n case 'medium':\n return styles.iconMedium(this.theme);\n case 'small':\n default:\n return styles.iconSmall(this.theme);\n }\n }\n\n private handleFocus = (e: React.FocusEvent<HTMLButtonElement>) => {\n if (!this.props.disabled && !this.props.disableFocus) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n this.props.onFocus?.(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLButtonElement>) => {\n this.setState({ focusedByTab: false });\n if (!this.props.disabled && !this.props.disableFocus) {\n this.props.onBlur?.(e);\n }\n };\n\n private _ref = (node: HTMLButtonElement | null) => {\n this.node = node;\n };\n}\n\nexport const isButton = isReactUIComponent<ButtonProps>('Button');\n"]}
|
|
@@ -158,4 +158,4 @@ export declare class Button extends React.Component<ButtonProps, ButtonState> {
|
|
|
158
158
|
private handleBlur;
|
|
159
159
|
private _ref;
|
|
160
160
|
}
|
|
161
|
-
export declare const isButton: (child: React.
|
|
161
|
+
export declare const isButton: (child: React.ReactNode) => child is React.ReactElement<ButtonProps, string | React.JSXElementConstructor<any>>;
|