@salutejs/plasma-new-hope 0.90.0-canary.1260.9580678742.0 → 0.91.0-canary.1261.9609334871.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. package/cjs/components/Dropdown/Dropdown.js +15 -16
  2. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  3. package/cjs/components/Popover/Popover.js +4 -5
  4. package/cjs/components/Popover/Popover.js.map +1 -1
  5. package/cjs/components/TextArea/TextArea.js +6 -4
  6. package/cjs/components/TextArea/TextArea.js.map +1 -1
  7. package/cjs/components/TextArea/hooks/useAutoResize.js +10 -4
  8. package/cjs/components/TextArea/hooks/useAutoResize.js.map +1 -1
  9. package/cjs/components/_Icon/IconRoot.js +1 -1
  10. package/cjs/components/_Icon/IconRoot.js.map +1 -1
  11. package/es/components/Dropdown/Dropdown.js +11 -12
  12. package/es/components/Dropdown/Dropdown.js.map +1 -1
  13. package/es/components/Popover/Popover.js +4 -5
  14. package/es/components/Popover/Popover.js.map +1 -1
  15. package/es/components/TextArea/TextArea.js +7 -5
  16. package/es/components/TextArea/TextArea.js.map +1 -1
  17. package/es/components/TextArea/hooks/useAutoResize.js +10 -4
  18. package/es/components/TextArea/hooks/useAutoResize.js.map +1 -1
  19. package/es/components/_Icon/IconRoot.js +1 -1
  20. package/es/components/_Icon/IconRoot.js.map +1 -1
  21. package/package.json +2 -2
  22. package/styled-components/cjs/components/Button/Button.template-doc.mdx +3 -3
  23. package/styled-components/cjs/components/Dropdown/Dropdown.js +11 -12
  24. package/styled-components/cjs/components/Popover/Popover.js +4 -5
  25. package/styled-components/cjs/components/Radiobox/Radiobox.template-doc.mdx +7 -5
  26. package/styled-components/cjs/components/Segment/Segment.template-doc.mdx +1 -1
  27. package/styled-components/cjs/components/TextArea/TextArea.js +11 -4
  28. package/styled-components/cjs/components/TextArea/TextArea.template-doc.mdx +45 -6
  29. package/styled-components/cjs/components/TextArea/hooks/useAutoResize.js +10 -4
  30. package/styled-components/cjs/components/_Icon/IconRoot.js +1 -1
  31. package/styled-components/es/components/Button/Button.template-doc.mdx +3 -3
  32. package/styled-components/es/components/Dropdown/Dropdown.js +11 -12
  33. package/styled-components/es/components/Popover/Popover.js +4 -5
  34. package/styled-components/es/components/Radiobox/Radiobox.template-doc.mdx +7 -5
  35. package/styled-components/es/components/Segment/Segment.template-doc.mdx +1 -1
  36. package/styled-components/es/components/TextArea/TextArea.js +12 -4
  37. package/styled-components/es/components/TextArea/TextArea.template-doc.mdx +45 -6
  38. package/styled-components/es/components/TextArea/hooks/useAutoResize.js +10 -4
  39. package/styled-components/es/components/_Icon/IconRoot.js +1 -1
  40. package/types/components/Dropdown/Dropdown.d.ts +2 -2
  41. package/types/components/Dropdown/Dropdown.d.ts.map +1 -1
  42. package/types/components/Dropdown/Dropdown.types.d.ts +0 -4
  43. package/types/components/Dropdown/Dropdown.types.d.ts.map +1 -1
  44. package/types/components/Popover/Popover.d.ts.map +1 -1
  45. package/types/components/TextArea/TextArea.d.ts +2 -2
  46. package/types/components/TextArea/TextArea.d.ts.map +1 -1
  47. package/types/components/TextArea/TextArea.types.d.ts +49 -23
  48. package/types/components/TextArea/TextArea.types.d.ts.map +1 -1
  49. package/types/components/TextArea/hooks/useAutoResize.d.ts +1 -1
  50. package/types/components/TextArea/hooks/useAutoResize.d.ts.map +1 -1
  51. package/types/examples/plasma_b2c/components/TextArea/TextArea.d.ts +31 -1
  52. package/types/examples/plasma_b2c/components/TextArea/TextArea.d.ts.map +1 -1
  53. package/types/examples/plasma_web/components/TextArea/TextArea.d.ts +31 -1
  54. package/types/examples/plasma_web/components/TextArea/TextArea.d.ts.map +1 -1
  55. package/types/examples/sds_engineer/components/TextArea/TextArea.d.ts +31 -1
  56. package/types/examples/sds_engineer/components/TextArea/TextArea.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Dropdown.js","sources":["../../../src/components/Dropdown/Dropdown.tsx"],"sourcesContent":["import React, { forwardRef, useReducer } from 'react';\n\nimport { RootProps } from '../../engines';\nimport { cx } from '../../utils';\n\nimport { pathReducer } from './reducers/pathReducer';\nimport { focusedPathReducer } from './reducers/focusedPathReducer';\nimport { DropdownInner } from './ui';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { Ul, StyledPopover, base } from './Dropdown.styles';\nimport { getPlacements, childrenWithProps } from './utils';\nimport type { DropdownProps, HandleGlobalToggleType } from './Dropdown.types';\nimport { classes } from './Dropdown.tokens';\nimport { useKeyNavigation } from './hooks/useKeyboardNavigation';\nimport { useHashMaps } from './hooks/useHashMaps';\n\n/**\n * Выпадающий список.\n */\nexport const dropdownRoot = (Root: RootProps<HTMLDivElement, Omit<DropdownProps, 'items'>>) =>\n forwardRef<HTMLDivElement, DropdownProps>(\n (\n {\n items,\n children,\n placement = 'bottom',\n offset = [0, 0],\n closeOnOverlayClick = true,\n onToggle,\n size,\n view,\n itemRole = 'treeitem',\n className,\n listWidth,\n listHeight,\n listOverflow,\n closeOnSelect = true,\n onHover,\n onItemSelect,\n onItemClick,\n trigger = 'click',\n variant = 'normal',\n hasArrow = true,\n portal,\n ...rest\n },\n ref,\n ) => {\n const [path, dispatchPath] = useReducer(pathReducer, []);\n const [focusedPath, dispatchFocusedPath] = useReducer(focusedPathReducer, []);\n\n const [pathMap, focusedToValueMap] = useHashMaps(items);\n\n const handleGlobalToggle: HandleGlobalToggleType = (opened, event) => {\n if (opened) {\n dispatchPath({ type: 'opened_first_level' });\n } else {\n dispatchFocusedPath({ type: 'reset' });\n dispatchPath({ type: 'reset' });\n }\n\n if (onToggle) {\n onToggle(opened, event);\n }\n };\n\n const { onKeyDown } = useKeyNavigation({\n focusedPath,\n dispatchFocusedPath,\n path,\n dispatchPath,\n pathMap,\n focusedToValueMap,\n handleGlobalToggle,\n closeOnSelect,\n onItemSelect,\n onItemClick,\n });\n\n const isCurrentListOpen = Boolean(path[0]);\n\n const getActiveDescendant = () => {\n const focusedPathAsString = focusedPath.reduce((acc, n) => `${acc}/${n}`, '').replace(/^(\\/)/, '');\n return focusedToValueMap?.get(focusedPathAsString)?.value.toString();\n };\n\n return (\n <StyledPopover\n isOpen={isCurrentListOpen}\n onToggle={handleGlobalToggle}\n offset={offset}\n placement={getPlacements(placement)}\n trigger={trigger}\n closeOnOverlayClick={closeOnOverlayClick}\n isFocusTrapped={false}\n target={childrenWithProps(children, {\n role: 'combobox',\n 'aria-controls': 'tree_level_1',\n 'aria-expanded': isCurrentListOpen,\n 'aria-activedescendant': getActiveDescendant(),\n onKeyDown,\n })}\n preventOverflow={false}\n usePortal={Boolean(portal)}\n frame={portal}\n >\n <Root className={cx(className, classes.dropdownRoot)} ref={ref} view={view} size={size} {...rest}>\n <Ul\n listHeight={listHeight}\n listOverflow={listOverflow}\n role=\"tree\"\n id=\"tree_level_1\"\n listWidth={listWidth}\n >\n {items.map((item, index) => (\n <DropdownInner\n key={`${index}/0`}\n item={item}\n currentLevel={0}\n focusedPath={focusedPath}\n trigger={trigger}\n path={path}\n dispatchPath={dispatchPath}\n index={index}\n itemRole={itemRole}\n listHeight={listHeight}\n listOverflow={listOverflow}\n handleGlobalToggle={handleGlobalToggle}\n closeOnSelect={closeOnSelect}\n onHover={onHover}\n onItemSelect={onItemSelect}\n onItemClick={onItemClick}\n listWidth={listWidth}\n variant={variant}\n hasArrow={hasArrow}\n />\n ))}\n </Ul>\n </Root>\n </StyledPopover>\n );\n },\n );\n\nexport const dropdownConfig = {\n name: 'Dropdown',\n tag: 'div',\n layout: dropdownRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'default',\n size: 'm',\n },\n};\n"],"names":["dropdownRoot","Root","forwardRef","_ref","ref","items","children","_ref$placement","placement","_ref$offset","offset","_ref$closeOnOverlayCl","closeOnOverlayClick","onToggle","size","view","_ref$itemRole","itemRole","className","listWidth","listHeight","listOverflow","_ref$closeOnSelect","closeOnSelect","onHover","onItemSelect","onItemClick","_ref$trigger","trigger","_ref$variant","variant","_ref$hasArrow","hasArrow","portal","rest","_objectWithoutProperties","_excluded","_useReducer","useReducer","pathReducer","_useReducer2","_slicedToArray","path","dispatchPath","_useReducer3","focusedPathReducer","_useReducer4","focusedPath","dispatchFocusedPath","_useHashMaps","useHashMaps","_useHashMaps2","pathMap","focusedToValueMap","handleGlobalToggle","opened","event","type","_useKeyNavigation","useKeyNavigation","onKeyDown","isCurrentListOpen","Boolean","getActiveDescendant","_focusedToValueMap$ge","focusedPathAsString","reduce","acc","n","concat","replace","get","value","toString","React","createElement","StyledPopover","isOpen","getPlacements","isFocusTrapped","target","childrenWithProps","role","preventOverflow","usePortal","frame","_extends","cx","classes","Ul","id","map","item","index","DropdownInner","key","currentLevel","dropdownConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":"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"}
1
+ {"version":3,"file":"Dropdown.js","sources":["../../../src/components/Dropdown/Dropdown.tsx"],"sourcesContent":["import React, { forwardRef, useReducer } from 'react';\n\nimport { RootProps } from '../../engines';\nimport { cx } from '../../utils';\n\nimport { pathReducer } from './reducers/pathReducer';\nimport { focusedPathReducer } from './reducers/focusedPathReducer';\nimport { DropdownInner } from './ui';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { Ul, StyledPopover, base } from './Dropdown.styles';\nimport { getPlacements, childrenWithProps } from './utils';\nimport type { DropdownProps, HandleGlobalToggleType } from './Dropdown.types';\nimport { classes } from './Dropdown.tokens';\nimport { useKeyNavigation } from './hooks/useKeyboardNavigation';\nimport { useHashMaps } from './hooks/useHashMaps';\n\n/**\n * Выпадающий список.\n */\nexport const dropdownRoot = (Root: RootProps<HTMLDivElement, DropdownProps>) =>\n forwardRef<HTMLDivElement, DropdownProps>(\n (\n {\n items,\n children,\n placement = 'bottom',\n offset = [0, 0],\n closeOnOverlayClick = true,\n onToggle,\n size,\n view,\n itemRole = 'treeitem',\n className,\n listWidth,\n listHeight,\n listOverflow,\n closeOnSelect = true,\n onHover,\n onItemSelect,\n onItemClick,\n trigger = 'click',\n variant = 'normal',\n hasArrow = true,\n ...rest\n },\n ref,\n ) => {\n const [path, dispatchPath] = useReducer(pathReducer, []);\n const [focusedPath, dispatchFocusedPath] = useReducer(focusedPathReducer, []);\n\n const [pathMap, focusedToValueMap] = useHashMaps(items);\n\n const handleGlobalToggle: HandleGlobalToggleType = (opened, event) => {\n if (opened) {\n dispatchPath({ type: 'opened_first_level' });\n } else {\n dispatchFocusedPath({ type: 'reset' });\n dispatchPath({ type: 'reset' });\n }\n\n if (onToggle) {\n onToggle(opened, event);\n }\n };\n\n const { onKeyDown } = useKeyNavigation({\n focusedPath,\n dispatchFocusedPath,\n path,\n dispatchPath,\n pathMap,\n focusedToValueMap,\n handleGlobalToggle,\n closeOnSelect,\n onItemSelect,\n onItemClick,\n });\n\n const isCurrentListOpen = Boolean(path[0]);\n\n const getActiveDescendant = () => {\n const focusedPathAsString = focusedPath.reduce((acc, n) => `${acc}/${n}`, '').replace(/^(\\/)/, '');\n return focusedToValueMap?.get(focusedPathAsString)?.value.toString();\n };\n\n return (\n <Root\n className={cx(className, classes.dropdownRoot)}\n ref={ref}\n view={view}\n size={size}\n items={items}\n {...rest}\n >\n <StyledPopover\n isOpen={isCurrentListOpen}\n usePortal={false}\n onToggle={handleGlobalToggle}\n offset={offset}\n placement={getPlacements(placement)}\n trigger={trigger}\n closeOnOverlayClick={closeOnOverlayClick}\n isFocusTrapped={false}\n target={childrenWithProps(children, {\n role: 'combobox',\n 'aria-controls': 'tree_level_1',\n 'aria-expanded': isCurrentListOpen,\n 'aria-activedescendant': getActiveDescendant(),\n onKeyDown,\n })}\n preventOverflow={false}\n >\n <Ul\n listHeight={listHeight}\n listOverflow={listOverflow}\n role=\"tree\"\n id=\"tree_level_1\"\n listWidth={listWidth}\n >\n {items.map((item, index) => (\n <DropdownInner\n key={`${index}/0`}\n item={item}\n currentLevel={0}\n focusedPath={focusedPath}\n trigger={trigger}\n path={path}\n dispatchPath={dispatchPath}\n index={index}\n itemRole={itemRole}\n listHeight={listHeight}\n listOverflow={listOverflow}\n handleGlobalToggle={handleGlobalToggle}\n closeOnSelect={closeOnSelect}\n onHover={onHover}\n onItemSelect={onItemSelect}\n onItemClick={onItemClick}\n listWidth={listWidth}\n variant={variant}\n hasArrow={hasArrow}\n />\n ))}\n </Ul>\n </StyledPopover>\n </Root>\n );\n },\n );\n\nexport const dropdownConfig = {\n name: 'Dropdown',\n tag: 'div',\n layout: dropdownRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'default',\n size: 'm',\n },\n};\n"],"names":["dropdownRoot","Root","forwardRef","_ref","ref","items","children","_ref$placement","placement","_ref$offset","offset","_ref$closeOnOverlayCl","closeOnOverlayClick","onToggle","size","view","_ref$itemRole","itemRole","className","listWidth","listHeight","listOverflow","_ref$closeOnSelect","closeOnSelect","onHover","onItemSelect","onItemClick","_ref$trigger","trigger","_ref$variant","variant","_ref$hasArrow","hasArrow","rest","_objectWithoutProperties","_excluded","_useReducer","useReducer","pathReducer","_useReducer2","_slicedToArray","path","dispatchPath","_useReducer3","focusedPathReducer","_useReducer4","focusedPath","dispatchFocusedPath","_useHashMaps","useHashMaps","_useHashMaps2","pathMap","focusedToValueMap","handleGlobalToggle","opened","event","type","_useKeyNavigation","useKeyNavigation","onKeyDown","isCurrentListOpen","Boolean","getActiveDescendant","_focusedToValueMap$ge","focusedPathAsString","reduce","acc","n","concat","replace","get","value","toString","React","createElement","_extends","cx","classes","StyledPopover","isOpen","usePortal","getPlacements","isFocusTrapped","target","childrenWithProps","role","preventOverflow","Ul","id","map","item","index","DropdownInner","key","currentLevel","dropdownConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAiBA;AACA;AACA;IACaA,YAAY,GAAG,SAAfA,YAAYA,CAAIC,IAA8C,EAAA;AAAA,EAAA,oBACvEC,UAAU,CACN,UAAAC,IAAA,EAwBIC,GAAG,EACF;AAAA,IAAA,IAvBGC,KAAK,GAAAF,IAAA,CAALE,KAAK;MACLC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;MAAAC,cAAA,GAAAJ,IAAA,CACRK,SAAS;AAATA,MAAAA,SAAS,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,cAAA;MAAAE,WAAA,GAAAN,IAAA,CACpBO,MAAM;MAANA,MAAM,GAAAD,WAAA,KAAG,KAAA,CAAA,GAAA,CAAC,CAAC,EAAE,CAAC,CAAC,GAAAA,WAAA;MAAAE,qBAAA,GAAAR,IAAA,CACfS,mBAAmB;AAAnBA,MAAAA,mBAAmB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,qBAAA;MAC1BE,QAAQ,GAAAV,IAAA,CAARU,QAAQ;MACRC,IAAI,GAAAX,IAAA,CAAJW,IAAI;MACJC,IAAI,GAAAZ,IAAA,CAAJY,IAAI;MAAAC,aAAA,GAAAb,IAAA,CACJc,QAAQ;AAARA,MAAAA,QAAQ,GAAAD,aAAA,KAAG,KAAA,CAAA,GAAA,UAAU,GAAAA,aAAA;MACrBE,SAAS,GAAAf,IAAA,CAATe,SAAS;MACTC,SAAS,GAAAhB,IAAA,CAATgB,SAAS;MACTC,UAAU,GAAAjB,IAAA,CAAViB,UAAU;MACVC,YAAY,GAAAlB,IAAA,CAAZkB,YAAY;MAAAC,kBAAA,GAAAnB,IAAA,CACZoB,aAAa;AAAbA,MAAAA,aAAa,GAAAD,kBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,kBAAA;MACpBE,OAAO,GAAArB,IAAA,CAAPqB,OAAO;MACPC,YAAY,GAAAtB,IAAA,CAAZsB,YAAY;MACZC,WAAW,GAAAvB,IAAA,CAAXuB,WAAW;MAAAC,YAAA,GAAAxB,IAAA,CACXyB,OAAO;AAAPA,MAAAA,OAAO,GAAAD,YAAA,KAAG,KAAA,CAAA,GAAA,OAAO,GAAAA,YAAA;MAAAE,YAAA,GAAA1B,IAAA,CACjB2B,OAAO;AAAPA,MAAAA,OAAO,GAAAD,YAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,YAAA;MAAAE,aAAA,GAAA5B,IAAA,CAClB6B,QAAQ;AAARA,MAAAA,QAAQ,GAAAD,aAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,aAAA;AACZE,MAAAA,IAAI,GAAAC,wBAAA,CAAA/B,IAAA,EAAAgC,SAAA,CAAA,CAAA;AAIX,IAAA,IAAAC,WAAA,GAA6BC,UAAU,CAACC,WAAW,EAAE,EAAE,CAAC;MAAAC,YAAA,GAAAC,cAAA,CAAAJ,WAAA,EAAA,CAAA,CAAA;AAAjDK,MAAAA,IAAI,GAAAF,YAAA,CAAA,CAAA,CAAA;AAAEG,MAAAA,YAAY,GAAAH,YAAA,CAAA,CAAA,CAAA,CAAA;AACzB,IAAA,IAAAI,YAAA,GAA2CN,UAAU,CAACO,kBAAkB,EAAE,EAAE,CAAC;MAAAC,YAAA,GAAAL,cAAA,CAAAG,YAAA,EAAA,CAAA,CAAA;AAAtEG,MAAAA,WAAW,GAAAD,YAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,mBAAmB,GAAAF,YAAA,CAAA,CAAA,CAAA,CAAA;AAEvC,IAAA,IAAAG,YAAA,GAAqCC,WAAW,CAAC5C,KAAK,CAAC;MAAA6C,aAAA,GAAAV,cAAA,CAAAQ,YAAA,EAAA,CAAA,CAAA;AAAhDG,MAAAA,OAAO,GAAAD,aAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,iBAAiB,GAAAF,aAAA,CAAA,CAAA,CAAA,CAAA;IAEjC,IAAMG,kBAA0C,GAAG,SAA7CA,kBAA0CA,CAAIC,MAAM,EAAEC,KAAK,EAAK;AAClE,MAAA,IAAID,MAAM,EAAE;AACRZ,QAAAA,YAAY,CAAC;AAAEc,UAAAA,IAAI,EAAE,oBAAA;AAAqB,SAAC,CAAC,CAAA;AAChD,OAAC,MAAM;AACHT,QAAAA,mBAAmB,CAAC;AAAES,UAAAA,IAAI,EAAE,OAAA;AAAQ,SAAC,CAAC,CAAA;AACtCd,QAAAA,YAAY,CAAC;AAAEc,UAAAA,IAAI,EAAE,OAAA;AAAQ,SAAC,CAAC,CAAA;AACnC,OAAA;AAEA,MAAA,IAAI3C,QAAQ,EAAE;AACVA,QAAAA,QAAQ,CAACyC,MAAM,EAAEC,KAAK,CAAC,CAAA;AAC3B,OAAA;KACH,CAAA;IAED,IAAAE,iBAAA,GAAsBC,gBAAgB,CAAC;AACnCZ,QAAAA,WAAW,EAAXA,WAAW;AACXC,QAAAA,mBAAmB,EAAnBA,mBAAmB;AACnBN,QAAAA,IAAI,EAAJA,IAAI;AACJC,QAAAA,YAAY,EAAZA,YAAY;AACZS,QAAAA,OAAO,EAAPA,OAAO;AACPC,QAAAA,iBAAiB,EAAjBA,iBAAiB;AACjBC,QAAAA,kBAAkB,EAAlBA,kBAAkB;AAClB9B,QAAAA,aAAa,EAAbA,aAAa;AACbE,QAAAA,YAAY,EAAZA,YAAY;AACZC,QAAAA,WAAW,EAAXA,WAAAA;AACJ,OAAC,CAAC;MAXMiC,SAAS,GAAAF,iBAAA,CAATE,SAAS,CAAA;IAajB,IAAMC,iBAAiB,GAAGC,OAAO,CAACpB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;AAE1C,IAAA,IAAMqB,mBAAmB,GAAG,SAAtBA,mBAAmBA,GAAS;AAAA,MAAA,IAAAC,qBAAA,CAAA;MAC9B,IAAMC,mBAAmB,GAAGlB,WAAW,CAACmB,MAAM,CAAC,UAACC,GAAG,EAAEC,CAAC,EAAA;AAAA,QAAA,OAAA,EAAA,CAAAC,MAAA,CAAQF,GAAG,EAAAE,GAAAA,CAAAA,CAAAA,MAAA,CAAID,CAAC,CAAA,CAAA;OAAE,EAAE,EAAE,CAAC,CAACE,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;MAClG,OAAOjB,iBAAiB,aAAjBA,iBAAiB,KAAA,KAAA,CAAA,IAAA,CAAAW,qBAAA,GAAjBX,iBAAiB,CAAEkB,GAAG,CAACN,mBAAmB,CAAC,MAAA,IAAA,IAAAD,qBAAA,KAA3CA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAA6CQ,KAAK,CAACC,QAAQ,EAAE,CAAA;KACvE,CAAA;AAED,IAAA,oBACIC,KAAA,CAAAC,aAAA,CAACzE,IAAI,EAAA0E,QAAA,CAAA;MACDzD,SAAS,EAAE0D,EAAE,CAAC1D,SAAS,EAAE2D,OAAO,CAAC7E,YAAY,CAAE;AAC/CI,MAAAA,GAAG,EAAEA,GAAI;AACTW,MAAAA,IAAI,EAAEA,IAAK;AACXD,MAAAA,IAAI,EAAEA,IAAK;AACXT,MAAAA,KAAK,EAAEA,KAAAA;AAAM,KAAA,EACT4B,IAAI,CAERwC,eAAAA,KAAA,CAAAC,aAAA,CAACI,aAAa,EAAA;AACVC,MAAAA,MAAM,EAAEnB,iBAAkB;AAC1BoB,MAAAA,SAAS,EAAE,KAAM;AACjBnE,MAAAA,QAAQ,EAAEwC,kBAAmB;AAC7B3C,MAAAA,MAAM,EAAEA,MAAO;AACfF,MAAAA,SAAS,EAAEyE,aAAa,CAACzE,SAAS,CAAE;AACpCoB,MAAAA,OAAO,EAAEA,OAAQ;AACjBhB,MAAAA,mBAAmB,EAAEA,mBAAoB;AACzCsE,MAAAA,cAAc,EAAE,KAAM;AACtBC,MAAAA,MAAM,EAAEC,iBAAiB,CAAC9E,QAAQ,EAAE;AAChC+E,QAAAA,IAAI,EAAE,UAAU;AAChB,QAAA,eAAe,EAAE,cAAc;AAC/B,QAAA,eAAe,EAAEzB,iBAAiB;QAClC,uBAAuB,EAAEE,mBAAmB,EAAE;AAC9CH,QAAAA,SAAS,EAATA,SAAAA;AACJ,OAAC,CAAE;AACH2B,MAAAA,eAAe,EAAE,KAAA;AAAM,KAAA,eAEvBb,KAAA,CAAAC,aAAA,CAACa,EAAE,EAAA;AACCnE,MAAAA,UAAU,EAAEA,UAAW;AACvBC,MAAAA,YAAY,EAAEA,YAAa;AAC3BgE,MAAAA,IAAI,EAAC,MAAM;AACXG,MAAAA,EAAE,EAAC,cAAc;AACjBrE,MAAAA,SAAS,EAAEA,SAAAA;AAAU,KAAA,EAEpBd,KAAK,CAACoF,GAAG,CAAC,UAACC,IAAI,EAAEC,KAAK,EAAA;AAAA,MAAA,oBACnBlB,KAAA,CAAAC,aAAA,CAACkB,aAAa,EAAA;AACVC,QAAAA,GAAG,EAAAzB,EAAAA,CAAAA,MAAA,CAAKuB,KAAK,EAAK,IAAA,CAAA;AAClBD,QAAAA,IAAI,EAAEA,IAAK;AACXI,QAAAA,YAAY,EAAE,CAAE;AAChBhD,QAAAA,WAAW,EAAEA,WAAY;AACzBlB,QAAAA,OAAO,EAAEA,OAAQ;AACjBa,QAAAA,IAAI,EAAEA,IAAK;AACXC,QAAAA,YAAY,EAAEA,YAAa;AAC3BiD,QAAAA,KAAK,EAAEA,KAAM;AACb1E,QAAAA,QAAQ,EAAEA,QAAS;AACnBG,QAAAA,UAAU,EAAEA,UAAW;AACvBC,QAAAA,YAAY,EAAEA,YAAa;AAC3BgC,QAAAA,kBAAkB,EAAEA,kBAAmB;AACvC9B,QAAAA,aAAa,EAAEA,aAAc;AAC7BC,QAAAA,OAAO,EAAEA,OAAQ;AACjBC,QAAAA,YAAY,EAAEA,YAAa;AAC3BC,QAAAA,WAAW,EAAEA,WAAY;AACzBP,QAAAA,SAAS,EAAEA,SAAU;AACrBW,QAAAA,OAAO,EAAEA,OAAQ;AACjBE,QAAAA,QAAQ,EAAEA,QAAAA;AAAS,OACtB,CAAC,CAAA;KACL,CACD,CACO,CACb,CAAC,CAAA;AAEf,GACJ,CAAC,CAAA;AAAA,EAAA;AAEE,IAAM+D,cAAc,GAAG;AAC1BC,EAAAA,IAAI,EAAE,UAAU;AAChBC,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,MAAM,EAAElG,YAAY;AACpBmG,EAAAA,IAAI,EAAJA,IAAI;AACJC,EAAAA,UAAU,EAAE;AACRrF,IAAAA,IAAI,EAAE;AACFsF,MAAAA,GAAG,EAAEC,MAAAA;KACR;AACDxF,IAAAA,IAAI,EAAE;AACFuF,MAAAA,GAAG,EAAEE,MAAAA;AACT,KAAA;GACH;AACDC,EAAAA,QAAQ,EAAE;AACNzF,IAAAA,IAAI,EAAE,SAAS;AACfD,IAAAA,IAAI,EAAE,GAAA;AACV,GAAA;AACJ;;;;"}
@@ -101,20 +101,19 @@ var popoverRoot = function popoverRoot(Root) {
101
101
  }, [closeOnEsc, isOpen, onToggle]);
102
102
  var onDocumentClick = useCallback(function (event) {
103
103
  if (isOpen && closeOnOverlayClick && onToggle) {
104
- var _rootRef$current, _popoverRef$current;
104
+ var _rootRef$current;
105
105
  var targetIsRoot = event.target === rootRef.current;
106
106
  var rootHasTarget = (_rootRef$current = rootRef.current) === null || _rootRef$current === void 0 ? void 0 : _rootRef$current.contains(event.target);
107
- var popoverRootHasTarget = (_popoverRef$current = popoverRef.current) === null || _popoverRef$current === void 0 ? void 0 : _popoverRef$current.contains(event.target);
108
- if (!targetIsRoot && !rootHasTarget && !popoverRootHasTarget) {
107
+ if (!targetIsRoot && !rootHasTarget) {
109
108
  onToggle(false, event);
110
109
  }
111
110
  }
112
111
  }, [closeOnOverlayClick, isOpen, onToggle]);
113
112
  var onClick = useCallback(function (event) {
114
113
  if (trigger === 'click') {
115
- var _popoverRef$current2;
114
+ var _popoverRef$current;
116
115
  var targetIsPopover = event.target === popoverRef.current;
117
- var rootHasTarget = (_popoverRef$current2 = popoverRef.current) === null || _popoverRef$current2 === void 0 ? void 0 : _popoverRef$current2.contains(event.target);
116
+ var rootHasTarget = (_popoverRef$current = popoverRef.current) === null || _popoverRef$current === void 0 ? void 0 : _popoverRef$current.contains(event.target);
118
117
  if (!targetIsPopover && !rootHasTarget) {
119
118
  onToggle === null || onToggle === void 0 || onToggle(!isOpen, event);
120
119
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Popover.js","sources":["../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import React, { useRef, useCallback, useEffect, useState, forwardRef } from 'react';\nimport type { CSSProperties } from 'react';\nimport ReactDOM from 'react-dom';\nimport { usePopper } from 'react-popper';\nimport { useFocusTrap, useForkRef } from '@salutejs/plasma-core';\n\nimport type { RootProps } from '../../engines/types';\nimport { cx } from '../../utils';\n\nimport { base as viewCSS } from './variations/_view/base';\nimport type { PopoverPlacement, PopoverProps } from './Popover.types';\nimport { StyledArrow, StyledPopover, StyledRoot, StyledWrapper } from './Popover.styles';\nimport { classes } from './Popover.tokens';\n\nexport const ESCAPE_KEYCODE = 27;\nexport const POPOVER_PORTAL_ID = 'plasma-popover-root';\n\n/**\n * Всплывающее окно с возможностью позиционирования\n * и вызова по клику либо ховеру.\n */\nexport const popoverRoot = (Root: RootProps<HTMLDivElement, PopoverProps>) =>\n forwardRef<HTMLDivElement, PopoverProps>(\n (\n {\n target,\n children,\n isOpen,\n trigger = 'click',\n hasArrow,\n frame = 'document',\n className,\n placement = 'auto',\n offset = [0, 0],\n zIndex,\n isFocusTrapped = true,\n closeOnEsc = true,\n preventOverflow = true,\n usePortal = false,\n view,\n onToggle,\n closeOnOverlayClick,\n ...rest\n },\n outerRootRef,\n ) => {\n const rootRef = useRef<HTMLDivElement | null>(null);\n const popoverRef = useRef<HTMLDivElement | null>(null);\n const handleRef = useForkRef<HTMLDivElement>(rootRef, outerRootRef);\n const portalRef = useRef<HTMLElement | null>(null);\n\n const trapRef = useFocusTrap(isOpen && isFocusTrapped);\n\n const popoverForkRef = useForkRef<HTMLDivElement>(popoverRef, trapRef);\n\n const [arrowElement, setArrowElement] = useState<HTMLSpanElement | null>(null);\n\n const [, forceRender] = useState(false);\n\n const isAutoArray = Array.isArray(placement);\n const isAuto = isAutoArray || (placement as PopoverPlacement).startsWith('auto');\n\n const initialStyles = {\n visibility: isOpen ? 'visible' : 'hidden',\n opacity: isOpen ? 1 : 0,\n } as CSSProperties;\n\n const { styles, attributes, forceUpdate } = usePopper(rootRef.current, popoverRef.current, {\n // TODO: #1121\n // eslint-disable-next-line no-nested-ternary\n placement: isAutoArray\n ? placement[0]?.endsWith('start')\n ? 'auto-start'\n : 'auto'\n : (placement as PopoverPlacement),\n modifiers: [\n {\n name: 'preventOverflow',\n options: {\n mainAxis: preventOverflow,\n },\n },\n { name: 'offset', options: { offset: [offset[0], offset[1]] } },\n {\n name: 'flip',\n enabled: isAuto,\n options: {\n allowedAutoPlacements: isAutoArray ? (placement as PopoverPlacement[]) : [],\n },\n },\n {\n name: 'arrow',\n options: {\n element: arrowElement,\n },\n },\n ],\n });\n\n const onEscape = useCallback(\n (event: KeyboardEvent) => {\n if (isOpen && closeOnEsc && event.keyCode === ESCAPE_KEYCODE) {\n onToggle?.(false, event);\n }\n },\n [closeOnEsc, isOpen, onToggle],\n );\n\n const onDocumentClick = useCallback(\n (event: MouseEvent) => {\n if (isOpen && closeOnOverlayClick && onToggle) {\n const targetIsRoot = event.target === rootRef.current;\n const rootHasTarget = rootRef.current?.contains(event.target as Element);\n const popoverRootHasTarget = popoverRef.current?.contains(event.target as Element);\n\n if (!targetIsRoot && !rootHasTarget && !popoverRootHasTarget) {\n onToggle(false, event);\n }\n }\n },\n [closeOnOverlayClick, isOpen, onToggle],\n );\n\n const onClick = useCallback<React.MouseEventHandler>(\n (event) => {\n if (trigger === 'click') {\n const targetIsPopover = event.target === popoverRef.current;\n const rootHasTarget = popoverRef.current?.contains(event.target as Element);\n\n if (!targetIsPopover && !rootHasTarget) {\n onToggle?.(!isOpen, event);\n }\n }\n },\n [trigger, isOpen, onToggle],\n );\n\n const onMouseEnter = useCallback<React.MouseEventHandler>(\n (event) => {\n if (trigger === 'hover') {\n onToggle?.(true, event);\n }\n },\n [trigger, onToggle],\n );\n\n const onMouseLeave = useCallback<React.MouseEventHandler>(\n (event) => {\n if (trigger === 'hover') {\n onToggle?.(false, event);\n }\n },\n [trigger, onToggle],\n );\n\n const onFocus = useCallback<React.FocusEventHandler>(\n (event) => {\n if (trigger === 'hover') {\n onToggle?.(true, event);\n }\n },\n [trigger, onToggle],\n );\n\n const onBlur = useCallback<React.FocusEventHandler>(\n (event) => {\n if (trigger === 'hover') {\n onToggle?.(false, event);\n }\n },\n [trigger, onToggle],\n );\n\n useEffect(() => {\n document.addEventListener('click', onDocumentClick);\n return () => document.removeEventListener('click', onDocumentClick);\n }, [isOpen, onToggle]);\n\n useEffect(() => {\n window.addEventListener('keydown', onEscape);\n return () => window.removeEventListener('keydown', onEscape);\n }, [closeOnEsc, isOpen, onToggle]);\n\n useEffect(() => {\n let portal = document.getElementById(POPOVER_PORTAL_ID);\n\n if (typeof frame !== 'string' && frame && frame.current) {\n portal = frame.current;\n }\n\n if (!usePortal) {\n portal = rootRef.current;\n }\n\n if (!portal) {\n portal = document.createElement('div');\n portal.setAttribute('id', POPOVER_PORTAL_ID);\n\n if (typeof frame === 'string' && frame !== 'document') {\n document.getElementById(frame)?.appendChild(portal);\n } else {\n document.body.appendChild(portal);\n }\n }\n\n portalRef.current = portal;\n\n /**\n * Изменение стейта нужно для того, чтобы Popup\n * отобразился после записи DOM элемента в portalRef.current\n */\n forceRender(true);\n }, []);\n\n useEffect(() => {\n if (!isOpen || !forceUpdate) {\n return;\n }\n\n /*\n * INFO: Метод forceUpdate содержит в себе flushSync и приводит\n * к повторному рендеру компонента, который уже находится в процессе рендера.\n * Данный хак, нужен для того, чтобы это поведение избежать и перенаправить\n * вызов метода в очередь микрозадач.\n */\n Promise.resolve().then(forceUpdate);\n }, [isOpen, children, forceUpdate]);\n\n return (\n <StyledWrapper className={classes.wrapper} onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave}>\n <StyledRoot\n ref={handleRef}\n onClick={onClick}\n onFocus={onFocus}\n onBlur={onBlur}\n className={cx(className, classes.target)}\n >\n {target}\n </StyledRoot>\n {children &&\n portalRef.current &&\n ReactDOM.createPortal(\n <Root view={view} className={className} {...rest}>\n <StyledPopover\n {...attributes.popper}\n className={classes.root}\n ref={popoverForkRef}\n style={{\n ...styles.popper,\n ...{ display: isOpen ? 'block' : 'none' },\n ...initialStyles,\n }}\n zIndex={zIndex}\n >\n {hasArrow && (\n <StyledArrow\n className={classes.arrow}\n ref={setArrowElement}\n style={styles.arrow}\n {...attributes.arrow}\n />\n )}\n {children}\n </StyledPopover>\n </Root>,\n portalRef.current,\n )}\n </StyledWrapper>\n );\n },\n );\n\nexport const popoverConfig = {\n name: 'Popover',\n tag: 'div',\n layout: popoverRoot,\n base: '',\n variations: {\n view: {\n css: viewCSS,\n },\n },\n defaults: {\n view: 'default',\n },\n};\n"],"names":["ESCAPE_KEYCODE","POPOVER_PORTAL_ID","popoverRoot","Root","forwardRef","_ref","outerRootRef","_placement$","target","children","isOpen","_ref$trigger","trigger","hasArrow","_ref$frame","frame","className","_ref$placement","placement","_ref$offset","offset","zIndex","_ref$isFocusTrapped","isFocusTrapped","_ref$closeOnEsc","closeOnEsc","_ref$preventOverflow","preventOverflow","_ref$usePortal","usePortal","view","onToggle","closeOnOverlayClick","rest","_objectWithoutProperties","_excluded","rootRef","useRef","popoverRef","handleRef","useForkRef","portalRef","trapRef","useFocusTrap","popoverForkRef","_useState","useState","_useState2","_slicedToArray","arrowElement","setArrowElement","_useState3","_useState4","forceRender","isAutoArray","Array","isArray","isAuto","startsWith","initialStyles","visibility","opacity","_usePopper","usePopper","current","endsWith","modifiers","name","options","mainAxis","enabled","allowedAutoPlacements","element","styles","attributes","forceUpdate","onEscape","useCallback","event","keyCode","onDocumentClick","_rootRef$current","_popoverRef$current","targetIsRoot","rootHasTarget","contains","popoverRootHasTarget","onClick","_popoverRef$current2","targetIsPopover","onMouseEnter","onMouseLeave","onFocus","onBlur","useEffect","document","addEventListener","removeEventListener","window","portal","getElementById","createElement","setAttribute","_document$getElementB","appendChild","body","Promise","resolve","then","React","StyledWrapper","classes","wrapper","StyledRoot","ref","cx","ReactDOM","createPortal","_extends","StyledPopover","popper","root","style","_objectSpread","display","StyledArrow","arrow","popoverConfig","tag","layout","base","variations","css","viewCSS","defaults"],"mappings":"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"}
1
+ {"version":3,"file":"Popover.js","sources":["../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import React, { useRef, useCallback, useEffect, useState, forwardRef } from 'react';\nimport type { CSSProperties } from 'react';\nimport ReactDOM from 'react-dom';\nimport { usePopper } from 'react-popper';\nimport { useFocusTrap, useForkRef } from '@salutejs/plasma-core';\n\nimport type { RootProps } from '../../engines/types';\nimport { cx } from '../../utils';\n\nimport { base as viewCSS } from './variations/_view/base';\nimport type { PopoverPlacement, PopoverProps } from './Popover.types';\nimport { StyledArrow, StyledPopover, StyledRoot, StyledWrapper } from './Popover.styles';\nimport { classes } from './Popover.tokens';\n\nexport const ESCAPE_KEYCODE = 27;\nexport const POPOVER_PORTAL_ID = 'plasma-popover-root';\n\n/**\n * Всплывающее окно с возможностью позиционирования\n * и вызова по клику либо ховеру.\n */\nexport const popoverRoot = (Root: RootProps<HTMLDivElement, PopoverProps>) =>\n forwardRef<HTMLDivElement, PopoverProps>(\n (\n {\n target,\n children,\n isOpen,\n trigger = 'click',\n hasArrow,\n frame = 'document',\n className,\n placement = 'auto',\n offset = [0, 0],\n zIndex,\n isFocusTrapped = true,\n closeOnEsc = true,\n preventOverflow = true,\n usePortal = false,\n view,\n onToggle,\n closeOnOverlayClick,\n ...rest\n },\n outerRootRef,\n ) => {\n const rootRef = useRef<HTMLDivElement | null>(null);\n const popoverRef = useRef<HTMLDivElement | null>(null);\n const handleRef = useForkRef<HTMLDivElement>(rootRef, outerRootRef);\n const portalRef = useRef<HTMLElement | null>(null);\n\n const trapRef = useFocusTrap(isOpen && isFocusTrapped);\n\n const popoverForkRef = useForkRef<HTMLDivElement>(popoverRef, trapRef);\n\n const [arrowElement, setArrowElement] = useState<HTMLSpanElement | null>(null);\n\n const [, forceRender] = useState(false);\n\n const isAutoArray = Array.isArray(placement);\n const isAuto = isAutoArray || (placement as PopoverPlacement).startsWith('auto');\n\n const initialStyles = {\n visibility: isOpen ? 'visible' : 'hidden',\n opacity: isOpen ? 1 : 0,\n } as CSSProperties;\n\n const { styles, attributes, forceUpdate } = usePopper(rootRef.current, popoverRef.current, {\n // TODO: #1121\n // eslint-disable-next-line no-nested-ternary\n placement: isAutoArray\n ? placement[0]?.endsWith('start')\n ? 'auto-start'\n : 'auto'\n : (placement as PopoverPlacement),\n modifiers: [\n {\n name: 'preventOverflow',\n options: {\n mainAxis: preventOverflow,\n },\n },\n { name: 'offset', options: { offset: [offset[0], offset[1]] } },\n {\n name: 'flip',\n enabled: isAuto,\n options: {\n allowedAutoPlacements: isAutoArray ? (placement as PopoverPlacement[]) : [],\n },\n },\n {\n name: 'arrow',\n options: {\n element: arrowElement,\n },\n },\n ],\n });\n\n const onEscape = useCallback(\n (event: KeyboardEvent) => {\n if (isOpen && closeOnEsc && event.keyCode === ESCAPE_KEYCODE) {\n onToggle?.(false, event);\n }\n },\n [closeOnEsc, isOpen, onToggle],\n );\n\n const onDocumentClick = useCallback(\n (event: MouseEvent) => {\n if (isOpen && closeOnOverlayClick && onToggle) {\n const targetIsRoot = event.target === rootRef.current;\n const rootHasTarget = rootRef.current?.contains(event.target as Element);\n\n if (!targetIsRoot && !rootHasTarget) {\n onToggle(false, event);\n }\n }\n },\n [closeOnOverlayClick, isOpen, onToggle],\n );\n\n const onClick = useCallback<React.MouseEventHandler>(\n (event) => {\n if (trigger === 'click') {\n const targetIsPopover = event.target === popoverRef.current;\n const rootHasTarget = popoverRef.current?.contains(event.target as Element);\n\n if (!targetIsPopover && !rootHasTarget) {\n onToggle?.(!isOpen, event);\n }\n }\n },\n [trigger, isOpen, onToggle],\n );\n\n const onMouseEnter = useCallback<React.MouseEventHandler>(\n (event) => {\n if (trigger === 'hover') {\n onToggle?.(true, event);\n }\n },\n [trigger, onToggle],\n );\n\n const onMouseLeave = useCallback<React.MouseEventHandler>(\n (event) => {\n if (trigger === 'hover') {\n onToggle?.(false, event);\n }\n },\n [trigger, onToggle],\n );\n\n const onFocus = useCallback<React.FocusEventHandler>(\n (event) => {\n if (trigger === 'hover') {\n onToggle?.(true, event);\n }\n },\n [trigger, onToggle],\n );\n\n const onBlur = useCallback<React.FocusEventHandler>(\n (event) => {\n if (trigger === 'hover') {\n onToggle?.(false, event);\n }\n },\n [trigger, onToggle],\n );\n\n useEffect(() => {\n document.addEventListener('click', onDocumentClick);\n return () => document.removeEventListener('click', onDocumentClick);\n }, [isOpen, onToggle]);\n\n useEffect(() => {\n window.addEventListener('keydown', onEscape);\n return () => window.removeEventListener('keydown', onEscape);\n }, [closeOnEsc, isOpen, onToggle]);\n\n useEffect(() => {\n let portal = document.getElementById(POPOVER_PORTAL_ID);\n\n if (typeof frame !== 'string' && frame && frame.current) {\n portal = frame.current;\n }\n\n if (!usePortal) {\n portal = rootRef.current;\n }\n\n if (!portal) {\n portal = document.createElement('div');\n portal.setAttribute('id', POPOVER_PORTAL_ID);\n\n if (typeof frame === 'string' && frame !== 'document') {\n document.getElementById(frame)?.appendChild(portal);\n } else {\n document.body.appendChild(portal);\n }\n }\n\n portalRef.current = portal;\n\n /**\n * Изменение стейта нужно для того, чтобы Popup\n * отобразился после записи DOM элемента в portalRef.current\n */\n forceRender(true);\n }, []);\n\n useEffect(() => {\n if (!isOpen || !forceUpdate) {\n return;\n }\n\n /*\n * INFO: Метод forceUpdate содержит в себе flushSync и приводит\n * к повторному рендеру компонента, который уже находится в процессе рендера.\n * Данный хак, нужен для того, чтобы это поведение избежать и перенаправить\n * вызов метода в очередь микрозадач.\n */\n Promise.resolve().then(forceUpdate);\n }, [isOpen, children, forceUpdate]);\n\n return (\n <StyledWrapper className={classes.wrapper} onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave}>\n <StyledRoot\n ref={handleRef}\n onClick={onClick}\n onFocus={onFocus}\n onBlur={onBlur}\n className={cx(className, classes.target)}\n >\n {target}\n </StyledRoot>\n {children &&\n portalRef.current &&\n ReactDOM.createPortal(\n <Root view={view} className={className} {...rest}>\n <StyledPopover\n {...attributes.popper}\n className={classes.root}\n ref={popoverForkRef}\n style={{\n ...styles.popper,\n ...{ display: isOpen ? 'block' : 'none' },\n ...initialStyles,\n }}\n zIndex={zIndex}\n >\n {hasArrow && (\n <StyledArrow\n className={classes.arrow}\n ref={setArrowElement}\n style={styles.arrow}\n {...attributes.arrow}\n />\n )}\n {children}\n </StyledPopover>\n </Root>,\n portalRef.current,\n )}\n </StyledWrapper>\n );\n },\n );\n\nexport const popoverConfig = {\n name: 'Popover',\n tag: 'div',\n layout: popoverRoot,\n base: '',\n variations: {\n view: {\n css: viewCSS,\n },\n },\n defaults: {\n view: 'default',\n },\n};\n"],"names":["ESCAPE_KEYCODE","POPOVER_PORTAL_ID","popoverRoot","Root","forwardRef","_ref","outerRootRef","_placement$","target","children","isOpen","_ref$trigger","trigger","hasArrow","_ref$frame","frame","className","_ref$placement","placement","_ref$offset","offset","zIndex","_ref$isFocusTrapped","isFocusTrapped","_ref$closeOnEsc","closeOnEsc","_ref$preventOverflow","preventOverflow","_ref$usePortal","usePortal","view","onToggle","closeOnOverlayClick","rest","_objectWithoutProperties","_excluded","rootRef","useRef","popoverRef","handleRef","useForkRef","portalRef","trapRef","useFocusTrap","popoverForkRef","_useState","useState","_useState2","_slicedToArray","arrowElement","setArrowElement","_useState3","_useState4","forceRender","isAutoArray","Array","isArray","isAuto","startsWith","initialStyles","visibility","opacity","_usePopper","usePopper","current","endsWith","modifiers","name","options","mainAxis","enabled","allowedAutoPlacements","element","styles","attributes","forceUpdate","onEscape","useCallback","event","keyCode","onDocumentClick","_rootRef$current","targetIsRoot","rootHasTarget","contains","onClick","_popoverRef$current","targetIsPopover","onMouseEnter","onMouseLeave","onFocus","onBlur","useEffect","document","addEventListener","removeEventListener","window","portal","getElementById","createElement","setAttribute","_document$getElementB","appendChild","body","Promise","resolve","then","React","StyledWrapper","classes","wrapper","StyledRoot","ref","cx","ReactDOM","createPortal","_extends","StyledPopover","popper","root","style","_objectSpread","display","StyledArrow","arrow","popoverConfig","tag","layout","base","variations","css","viewCSS","defaults"],"mappings":";;;;;;;;;;;AAcO,IAAMA,cAAc,GAAG,GAAE;AACzB,IAAMC,iBAAiB,GAAG,sBAAqB;;AAEtD;AACA;AACA;AACA;IACaC,WAAW,GAAG,SAAdA,WAAWA,CAAIC,IAA6C,EAAA;AAAA,EAAA,oBACrEC,UAAU,CACN,UAAAC,IAAA,EAqBIC,YAAY,EACX;AAAA,IAAA,IAAAC,WAAA,CAAA;AAAA,IAAA,IApBGC,MAAM,GAAAH,IAAA,CAANG,MAAM;MACNC,QAAQ,GAAAJ,IAAA,CAARI,QAAQ;MACRC,MAAM,GAAAL,IAAA,CAANK,MAAM;MAAAC,YAAA,GAAAN,IAAA,CACNO,OAAO;AAAPA,MAAAA,OAAO,GAAAD,YAAA,KAAG,KAAA,CAAA,GAAA,OAAO,GAAAA,YAAA;MACjBE,QAAQ,GAAAR,IAAA,CAARQ,QAAQ;MAAAC,UAAA,GAAAT,IAAA,CACRU,KAAK;AAALA,MAAAA,KAAK,GAAAD,UAAA,KAAG,KAAA,CAAA,GAAA,UAAU,GAAAA,UAAA;MAClBE,SAAS,GAAAX,IAAA,CAATW,SAAS;MAAAC,cAAA,GAAAZ,IAAA,CACTa,SAAS;AAATA,MAAAA,SAAS,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,MAAM,GAAAA,cAAA;MAAAE,WAAA,GAAAd,IAAA,CAClBe,MAAM;MAANA,MAAM,GAAAD,WAAA,KAAG,KAAA,CAAA,GAAA,CAAC,CAAC,EAAE,CAAC,CAAC,GAAAA,WAAA;MACfE,MAAM,GAAAhB,IAAA,CAANgB,MAAM;MAAAC,mBAAA,GAAAjB,IAAA,CACNkB,cAAc;AAAdA,MAAAA,cAAc,GAAAD,mBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,mBAAA;MAAAE,eAAA,GAAAnB,IAAA,CACrBoB,UAAU;AAAVA,MAAAA,UAAU,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,eAAA;MAAAE,oBAAA,GAAArB,IAAA,CACjBsB,eAAe;AAAfA,MAAAA,eAAe,GAAAD,oBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,oBAAA;MAAAE,cAAA,GAAAvB,IAAA,CACtBwB,SAAS;AAATA,MAAAA,SAAS,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,cAAA;MACjBE,IAAI,GAAAzB,IAAA,CAAJyB,IAAI;MACJC,QAAQ,GAAA1B,IAAA,CAAR0B,QAAQ;MACRC,mBAAmB,GAAA3B,IAAA,CAAnB2B,mBAAmB;AAChBC,MAAAA,IAAI,GAAAC,wBAAA,CAAA7B,IAAA,EAAA8B,SAAA,CAAA,CAAA;AAIX,IAAA,IAAMC,OAAO,GAAGC,MAAM,CAAwB,IAAI,CAAC,CAAA;AACnD,IAAA,IAAMC,UAAU,GAAGD,MAAM,CAAwB,IAAI,CAAC,CAAA;AACtD,IAAA,IAAME,SAAS,GAAGC,UAAU,CAAiBJ,OAAO,EAAE9B,YAAY,CAAC,CAAA;AACnE,IAAA,IAAMmC,SAAS,GAAGJ,MAAM,CAAqB,IAAI,CAAC,CAAA;AAElD,IAAA,IAAMK,OAAO,GAAGC,YAAY,CAACjC,MAAM,IAAIa,cAAc,CAAC,CAAA;AAEtD,IAAA,IAAMqB,cAAc,GAAGJ,UAAU,CAAiBF,UAAU,EAAEI,OAAO,CAAC,CAAA;AAEtE,IAAA,IAAAG,SAAA,GAAwCC,QAAQ,CAAyB,IAAI,CAAC;MAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAvEI,MAAAA,YAAY,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,MAAAA,eAAe,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;AAEpC,IAAA,IAAAI,UAAA,GAAwBL,QAAQ,CAAC,KAAK,CAAC;MAAAM,UAAA,GAAAJ,cAAA,CAAAG,UAAA,EAAA,CAAA,CAAA;AAA9BE,MAAAA,WAAW,GAAAD,UAAA,CAAA,CAAA,CAAA,CAAA;AAEpB,IAAA,IAAME,WAAW,GAAGC,KAAK,CAACC,OAAO,CAACtC,SAAS,CAAC,CAAA;IAC5C,IAAMuC,MAAM,GAAGH,WAAW,IAAKpC,SAAS,CAAsBwC,UAAU,CAAC,MAAM,CAAC,CAAA;AAEhF,IAAA,IAAMC,aAAa,GAAG;AAClBC,MAAAA,UAAU,EAAElD,MAAM,GAAG,SAAS,GAAG,QAAQ;AACzCmD,MAAAA,OAAO,EAAEnD,MAAM,GAAG,CAAC,GAAG,CAAA;KACR,CAAA;IAElB,IAAAoD,UAAA,GAA4CC,SAAS,CAAC3B,OAAO,CAAC4B,OAAO,EAAE1B,UAAU,CAAC0B,OAAO,EAAE;AACvF;AACA;QACA9C,SAAS,EAAEoC,WAAW,GAChB,CAAA/C,WAAA,GAAAW,SAAS,CAAC,CAAC,CAAC,MAAAX,IAAAA,IAAAA,WAAA,eAAZA,WAAA,CAAc0D,QAAQ,CAAC,OAAO,CAAC,GAC3B,YAAY,GACZ,MAAM,GACT/C,SAA8B;AACrCgD,QAAAA,SAAS,EAAE,CACP;AACIC,UAAAA,IAAI,EAAE,iBAAiB;AACvBC,UAAAA,OAAO,EAAE;AACLC,YAAAA,QAAQ,EAAE1C,eAAAA;AACd,WAAA;AACJ,SAAC,EACD;AAAEwC,UAAAA,IAAI,EAAE,QAAQ;AAAEC,UAAAA,OAAO,EAAE;YAAEhD,MAAM,EAAE,CAACA,MAAM,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAA;AAAE,WAAA;AAAE,SAAC,EAC/D;AACI+C,UAAAA,IAAI,EAAE,MAAM;AACZG,UAAAA,OAAO,EAAEb,MAAM;AACfW,UAAAA,OAAO,EAAE;AACLG,YAAAA,qBAAqB,EAAEjB,WAAW,GAAIpC,SAAS,GAA0B,EAAA;AAC7E,WAAA;AACJ,SAAC,EACD;AACIiD,UAAAA,IAAI,EAAE,OAAO;AACbC,UAAAA,OAAO,EAAE;AACLI,YAAAA,OAAO,EAAEvB,YAAAA;AACb,WAAA;SACH,CAAA;AAET,OAAC,CAAC;MA9BMwB,MAAM,GAAAX,UAAA,CAANW,MAAM;MAAEC,UAAU,GAAAZ,UAAA,CAAVY,UAAU;MAAEC,WAAW,GAAAb,UAAA,CAAXa,WAAW,CAAA;AAgCvC,IAAA,IAAMC,QAAQ,GAAGC,WAAW,CACxB,UAACC,KAAoB,EAAK;MACtB,IAAIpE,MAAM,IAAIe,UAAU,IAAIqD,KAAK,CAACC,OAAO,KAAK/E,cAAc,EAAE;QAC1D+B,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAARA,KAAAA,CAAAA,IAAAA,QAAQ,CAAG,KAAK,EAAE+C,KAAK,CAAC,CAAA;AAC5B,OAAA;KACH,EACD,CAACrD,UAAU,EAAEf,MAAM,EAAEqB,QAAQ,CACjC,CAAC,CAAA;AAED,IAAA,IAAMiD,eAAe,GAAGH,WAAW,CAC/B,UAACC,KAAiB,EAAK;AACnB,MAAA,IAAIpE,MAAM,IAAIsB,mBAAmB,IAAID,QAAQ,EAAE;AAAA,QAAA,IAAAkD,gBAAA,CAAA;QAC3C,IAAMC,YAAY,GAAGJ,KAAK,CAACtE,MAAM,KAAK4B,OAAO,CAAC4B,OAAO,CAAA;AACrD,QAAA,IAAMmB,aAAa,GAAAF,CAAAA,gBAAA,GAAG7C,OAAO,CAAC4B,OAAO,MAAA,IAAA,IAAAiB,gBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAfA,gBAAA,CAAiBG,QAAQ,CAACN,KAAK,CAACtE,MAAiB,CAAC,CAAA;AAExE,QAAA,IAAI,CAAC0E,YAAY,IAAI,CAACC,aAAa,EAAE;AACjCpD,UAAAA,QAAQ,CAAC,KAAK,EAAE+C,KAAK,CAAC,CAAA;AAC1B,SAAA;AACJ,OAAA;KACH,EACD,CAAC9C,mBAAmB,EAAEtB,MAAM,EAAEqB,QAAQ,CAC1C,CAAC,CAAA;AAED,IAAA,IAAMsD,OAAO,GAAGR,WAAW,CACvB,UAACC,KAAK,EAAK;MACP,IAAIlE,OAAO,KAAK,OAAO,EAAE;AAAA,QAAA,IAAA0E,mBAAA,CAAA;QACrB,IAAMC,eAAe,GAAGT,KAAK,CAACtE,MAAM,KAAK8B,UAAU,CAAC0B,OAAO,CAAA;AAC3D,QAAA,IAAMmB,aAAa,GAAAG,CAAAA,mBAAA,GAAGhD,UAAU,CAAC0B,OAAO,MAAA,IAAA,IAAAsB,mBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAlBA,mBAAA,CAAoBF,QAAQ,CAACN,KAAK,CAACtE,MAAiB,CAAC,CAAA;AAE3E,QAAA,IAAI,CAAC+E,eAAe,IAAI,CAACJ,aAAa,EAAE;UACpCpD,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAARA,KAAAA,CAAAA,IAAAA,QAAQ,CAAG,CAACrB,MAAM,EAAEoE,KAAK,CAAC,CAAA;AAC9B,SAAA;AACJ,OAAA;KACH,EACD,CAAClE,OAAO,EAAEF,MAAM,EAAEqB,QAAQ,CAC9B,CAAC,CAAA;AAED,IAAA,IAAMyD,YAAY,GAAGX,WAAW,CAC5B,UAACC,KAAK,EAAK;MACP,IAAIlE,OAAO,KAAK,OAAO,EAAE;QACrBmB,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAARA,KAAAA,CAAAA,IAAAA,QAAQ,CAAG,IAAI,EAAE+C,KAAK,CAAC,CAAA;AAC3B,OAAA;AACJ,KAAC,EACD,CAAClE,OAAO,EAAEmB,QAAQ,CACtB,CAAC,CAAA;AAED,IAAA,IAAM0D,YAAY,GAAGZ,WAAW,CAC5B,UAACC,KAAK,EAAK;MACP,IAAIlE,OAAO,KAAK,OAAO,EAAE;QACrBmB,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAARA,KAAAA,CAAAA,IAAAA,QAAQ,CAAG,KAAK,EAAE+C,KAAK,CAAC,CAAA;AAC5B,OAAA;AACJ,KAAC,EACD,CAAClE,OAAO,EAAEmB,QAAQ,CACtB,CAAC,CAAA;AAED,IAAA,IAAM2D,OAAO,GAAGb,WAAW,CACvB,UAACC,KAAK,EAAK;MACP,IAAIlE,OAAO,KAAK,OAAO,EAAE;QACrBmB,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAARA,KAAAA,CAAAA,IAAAA,QAAQ,CAAG,IAAI,EAAE+C,KAAK,CAAC,CAAA;AAC3B,OAAA;AACJ,KAAC,EACD,CAAClE,OAAO,EAAEmB,QAAQ,CACtB,CAAC,CAAA;AAED,IAAA,IAAM4D,MAAM,GAAGd,WAAW,CACtB,UAACC,KAAK,EAAK;MACP,IAAIlE,OAAO,KAAK,OAAO,EAAE;QACrBmB,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAARA,KAAAA,CAAAA,IAAAA,QAAQ,CAAG,KAAK,EAAE+C,KAAK,CAAC,CAAA;AAC5B,OAAA;AACJ,KAAC,EACD,CAAClE,OAAO,EAAEmB,QAAQ,CACtB,CAAC,CAAA;AAED6D,IAAAA,SAAS,CAAC,YAAM;AACZC,MAAAA,QAAQ,CAACC,gBAAgB,CAAC,OAAO,EAAEd,eAAe,CAAC,CAAA;MACnD,OAAO,YAAA;AAAA,QAAA,OAAMa,QAAQ,CAACE,mBAAmB,CAAC,OAAO,EAAEf,eAAe,CAAC,CAAA;AAAA,OAAA,CAAA;AACvE,KAAC,EAAE,CAACtE,MAAM,EAAEqB,QAAQ,CAAC,CAAC,CAAA;AAEtB6D,IAAAA,SAAS,CAAC,YAAM;AACZI,MAAAA,MAAM,CAACF,gBAAgB,CAAC,SAAS,EAAElB,QAAQ,CAAC,CAAA;MAC5C,OAAO,YAAA;AAAA,QAAA,OAAMoB,MAAM,CAACD,mBAAmB,CAAC,SAAS,EAAEnB,QAAQ,CAAC,CAAA;AAAA,OAAA,CAAA;KAC/D,EAAE,CAACnD,UAAU,EAAEf,MAAM,EAAEqB,QAAQ,CAAC,CAAC,CAAA;AAElC6D,IAAAA,SAAS,CAAC,YAAM;AACZ,MAAA,IAAIK,MAAM,GAAGJ,QAAQ,CAACK,cAAc,CAACjG,iBAAiB,CAAC,CAAA;MAEvD,IAAI,OAAOc,KAAK,KAAK,QAAQ,IAAIA,KAAK,IAAIA,KAAK,CAACiD,OAAO,EAAE;QACrDiC,MAAM,GAAGlF,KAAK,CAACiD,OAAO,CAAA;AAC1B,OAAA;MAEA,IAAI,CAACnC,SAAS,EAAE;QACZoE,MAAM,GAAG7D,OAAO,CAAC4B,OAAO,CAAA;AAC5B,OAAA;MAEA,IAAI,CAACiC,MAAM,EAAE;AACTA,QAAAA,MAAM,GAAGJ,QAAQ,CAACM,aAAa,CAAC,KAAK,CAAC,CAAA;AACtCF,QAAAA,MAAM,CAACG,YAAY,CAAC,IAAI,EAAEnG,iBAAiB,CAAC,CAAA;QAE5C,IAAI,OAAOc,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,UAAU,EAAE;AAAA,UAAA,IAAAsF,qBAAA,CAAA;AACnD,UAAA,CAAAA,qBAAA,GAAAR,QAAQ,CAACK,cAAc,CAACnF,KAAK,CAAC,MAAAsF,IAAAA,IAAAA,qBAAA,eAA9BA,qBAAA,CAAgCC,WAAW,CAACL,MAAM,CAAC,CAAA;AACvD,SAAC,MAAM;AACHJ,UAAAA,QAAQ,CAACU,IAAI,CAACD,WAAW,CAACL,MAAM,CAAC,CAAA;AACrC,SAAA;AACJ,OAAA;MAEAxD,SAAS,CAACuB,OAAO,GAAGiC,MAAM,CAAA;;AAE1B;AAChB;AACA;AACA;MACgB5C,WAAW,CAAC,IAAI,CAAC,CAAA;KACpB,EAAE,EAAE,CAAC,CAAA;AAENuC,IAAAA,SAAS,CAAC,YAAM;AACZ,MAAA,IAAI,CAAClF,MAAM,IAAI,CAACiE,WAAW,EAAE;AACzB,QAAA,OAAA;AACJ,OAAA;;AAEA;AAChB;AACA;AACA;AACA;AACA;MACgB6B,OAAO,CAACC,OAAO,EAAE,CAACC,IAAI,CAAC/B,WAAW,CAAC,CAAA;KACtC,EAAE,CAACjE,MAAM,EAAED,QAAQ,EAAEkE,WAAW,CAAC,CAAC,CAAA;AAEnC,IAAA,oBACIgC,KAAA,CAAAR,aAAA,CAACS,aAAa,EAAA;MAAC5F,SAAS,EAAE6F,OAAO,CAACC,OAAQ;AAACtB,MAAAA,YAAY,EAAEA,YAAa;AAACC,MAAAA,YAAY,EAAEA,YAAAA;AAAa,KAAA,eAC9FkB,KAAA,CAAAR,aAAA,CAACY,UAAU,EAAA;AACPC,MAAAA,GAAG,EAAEzE,SAAU;AACf8C,MAAAA,OAAO,EAAEA,OAAQ;AACjBK,MAAAA,OAAO,EAAEA,OAAQ;AACjBC,MAAAA,MAAM,EAAEA,MAAO;AACf3E,MAAAA,SAAS,EAAEiG,EAAE,CAACjG,SAAS,EAAE6F,OAAO,CAACrG,MAAM,CAAA;AAAE,KAAA,EAExCA,MACO,CAAC,EACZC,QAAQ,IACLgC,SAAS,CAACuB,OAAO,iBACjBkD,QAAQ,CAACC,YAAY,eACjBR,KAAA,CAAAR,aAAA,CAAChG,IAAI,EAAAiH,QAAA,CAAA;AAACtF,MAAAA,IAAI,EAAEA,IAAK;AAACd,MAAAA,SAAS,EAAEA,SAAAA;AAAU,KAAA,EAAKiB,IAAI,CAAA,eAC5C0E,KAAA,CAAAR,aAAA,CAACkB,aAAa,EAAAD,QAAA,CAAA,EAAA,EACN1C,UAAU,CAAC4C,MAAM,EAAA;MACrBtG,SAAS,EAAE6F,OAAO,CAACU,IAAK;AACxBP,MAAAA,GAAG,EAAEpE,cAAe;MACpB4E,KAAK,EAAAC,cAAA,CAAAA,cAAA,CAAAA,cAAA,CACEhD,EAAAA,EAAAA,MAAM,CAAC6C,MAAM,CACb,EAAA;AAAEI,QAAAA,OAAO,EAAEhH,MAAM,GAAG,OAAO,GAAG,MAAA;OAAQ,CAAA,EACtCiD,aAAa,CAClB;AACFtC,MAAAA,MAAM,EAAEA,MAAAA;KAEPR,CAAAA,EAAAA,QAAQ,iBACL8F,KAAA,CAAAR,aAAA,CAACwB,WAAW,EAAAP,QAAA,CAAA;MACRpG,SAAS,EAAE6F,OAAO,CAACe,KAAM;AACzBZ,MAAAA,GAAG,EAAE9D,eAAgB;MACrBsE,KAAK,EAAE/C,MAAM,CAACmD,KAAAA;AAAM,KAAA,EAChBlD,UAAU,CAACkD,KAAK,CACvB,CACJ,EACAnH,QACU,CACb,CAAC,EACPgC,SAAS,CAACuB,OACd,CACO,CAAC,CAAA;AAExB,GACJ,CAAC,CAAA;AAAA,EAAA;AAEE,IAAM6D,aAAa,GAAG;AACzB1D,EAAAA,IAAI,EAAE,SAAS;AACf2D,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,MAAM,EAAE7H,WAAW;AACnB8H,EAAAA,IAAI,EAAE,EAAE;AACRC,EAAAA,UAAU,EAAE;AACRnG,IAAAA,IAAI,EAAE;AACFoG,MAAAA,GAAG,EAAEC,IAAAA;AACT,KAAA;GACH;AACDC,EAAAA,QAAQ,EAAE;AACNtG,IAAAA,IAAI,EAAE,SAAA;AACV,GAAA;AACJ;;;;"}
@@ -1,5 +1,5 @@
1
1
  import './TextArea_ob9y3r.css';
2
- import { objectWithoutProperties as _objectWithoutProperties, slicedToArray as _slicedToArray, toConsumableArray as _toConsumableArray, extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import { objectWithoutProperties as _objectWithoutProperties, slicedToArray as _slicedToArray, objectSpread2 as _objectSpread2, toConsumableArray as _toConsumableArray, extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
3
3
  import React, { forwardRef, useState, useCallback, createRef } from 'react';
4
4
  import { useResizeObserver } from '@salutejs/plasma-core';
5
5
  import { cx } from '../../utils/index.js';
@@ -123,15 +123,17 @@ var textAreaRoot = function textAreaRoot(Root) {
123
123
  }
124
124
  onChange === null || onChange === void 0 || onChange(event);
125
125
  }, [value, onChange]);
126
- var dynamicLabelClasses = getDynamicLabelClasses({
126
+ var dynamicLabelClasses = getDynamicLabelClasses(_objectSpread2({
127
127
  size: size,
128
128
  readOnly: readOnly,
129
129
  label: label,
130
130
  labelPlacement: labelPlacement,
131
- autoResize: autoResize,
132
- rows: rows,
133
131
  value: value || uncontrolledValue || defaultValue
134
- }, focused);
132
+ }, rows ? {
133
+ rows: rows
134
+ } : {
135
+ autoResize: autoResize
136
+ }), focused);
135
137
  return /*#__PURE__*/React.createElement(Root, {
136
138
  view: overriddenView,
137
139
  size: size,
@@ -1 +1 @@
1
- {"version":3,"file":"TextArea.js","sources":["../../../src/components/TextArea/TextArea.tsx"],"sourcesContent":["import React, { forwardRef, useState, createRef, useCallback } from 'react';\nimport { css } from '@linaria/core';\nimport { useResizeObserver } from '@salutejs/plasma-core';\n\nimport { cx } from '../../utils';\nimport type { RootProps } from '../../engines/types';\n\nimport { applyDynamicLabel } from './mixins';\nimport { useAutoResize, ROOT_FONT_SIZE } from './hooks';\nimport {\n StyledContent,\n StyledHelpers,\n StyledLeftHelper,\n StyledRightHelper,\n StyledLabel,\n StyledPlaceholder,\n StyledTextArea,\n StyledTextAreaWrapper,\n StyledContainer,\n} from './TextArea.styles';\nimport { classes } from './TextArea.tokens';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport type { TextAreaProps } from './TextArea.types';\n\nconst {\n innerPlaceholderUp,\n focusedOuterPlaceholderColor,\n hidePlaceHolder,\n styledContainer,\n styledTextArea,\n styledTextAreaWrapper,\n styledPlaceholder,\n styledHelpers,\n} = classes;\n\nconst base = css`\n ${applyDynamicLabel};\n\n position: relative;\n box-sizing: border-box;\n`;\n\n// TODO: Удалить после отказа от старых библиотек plasma-web / plasma-b2c\nconst fallbackStatusMap = {\n '': 'primary',\n success: 'positive',\n warning: 'warning',\n error: 'negative',\n};\n\n// TODO: Перенести этот метод в файл applyDynamicLabel.ts\nexport const getDynamicLabelClasses = (props: TextAreaProps, focused: boolean) => {\n const { readOnly, label, labelPlacement, autoResize, rows, value, size } = props;\n\n // Добавить класс отвечающий за изменение цвета плейсхолдера при фокусе\n const withFocusedOuterUpPlaceholder =\n !readOnly && focused && (!label || labelPlacement === 'outer') ? focusedOuterPlaceholderColor : undefined;\n\n // Добавить класс отвечающий за поднятие и уменьшение плейсхолдера\n const withInnerPlaceholderUp =\n labelPlacement === 'inner' &&\n label &&\n !autoResize &&\n !rows &&\n size !== 'xs' &&\n ((!readOnly && (value || focused)) || (readOnly && value))\n ? innerPlaceholderUp\n : undefined;\n\n // Добавить класс отвечающий за скрытие плейсхолдера\n const withHidePlaceholder =\n (value && !label) ||\n (labelPlacement === 'inner' && ((focused && !readOnly) || value) && label && (rows || autoResize)) ||\n (labelPlacement === 'outer' && value) ||\n (labelPlacement === 'inner' && size === 'xs' && value)\n ? hidePlaceHolder\n : undefined;\n\n return [withFocusedOuterUpPlaceholder, withInnerPlaceholderUp, withHidePlaceholder];\n};\n\nexport const textAreaRoot = (Root: RootProps<HTMLTextAreaElement, TextAreaProps>) =>\n forwardRef<HTMLTextAreaElement, TextAreaProps>((props, innerRef) => {\n const {\n helperText,\n status,\n resize,\n rightHelper,\n leftHelper,\n contentRight,\n autoResize = false,\n minAuto = 0,\n maxAuto,\n label,\n labelPlacement = 'inner',\n placeholder,\n defaultValue,\n height,\n width,\n value,\n disabled,\n size,\n view,\n id,\n style,\n className,\n readOnly,\n rows,\n cols,\n onChange,\n ...rest\n } = props;\n\n const [helperWidth, setHelperWidth] = useState<string>(width ? `${width}rem` : '100%');\n const [focused, setFocused] = useState(false);\n const [uncontrolledValue, setUncontrolledValue] = useState<string | undefined>();\n\n const outerRef = innerRef && 'current' in innerRef ? innerRef : createRef<HTMLTextAreaElement>();\n const hasHelper = Boolean(leftHelper || rightHelper || helperText);\n const overriddenView = status !== undefined ? fallbackStatusMap[status] : view;\n const textareaHelperId = id ? `${id}-helper` : undefined;\n const applyCustomWidth = resize !== 'horizontal' && resize !== 'both' && !cols;\n const placeLabel = labelPlacement === 'inner' && label && size !== 'xs' ? label : placeholder;\n\n useResizeObserver(outerRef, (currentElement) => {\n const { width: inlineWidth, height: inlineHeight } = currentElement.style;\n\n if (inlineWidth || inlineHeight || cols) {\n const { width: elementWidth } = currentElement.getBoundingClientRect();\n setHelperWidth(`${elementWidth / ROOT_FONT_SIZE}rem`);\n }\n });\n\n useAutoResize(autoResize, outerRef, value, minAuto, maxAuto);\n\n const onFocusHandler = useCallback(() => {\n setFocused(true);\n }, []);\n const onBlurHandler = useCallback(() => {\n setFocused(false);\n }, []);\n\n const onChangeHandler = useCallback(\n (event: React.ChangeEvent<HTMLTextAreaElement>) => {\n // INFO: Для крайне редких кейсов, когда value снаружи не контролируется\n if (value === undefined) {\n setUncontrolledValue(event?.target.value);\n }\n\n onChange?.(event);\n },\n [value, onChange],\n );\n\n const dynamicLabelClasses = getDynamicLabelClasses(\n {\n size,\n readOnly,\n label,\n labelPlacement,\n autoResize,\n rows,\n value: value || uncontrolledValue || defaultValue,\n },\n focused,\n );\n\n return (\n <Root\n view={overriddenView}\n size={size}\n disabled={disabled}\n readOnly={readOnly}\n style={style}\n className={className}\n >\n {label && labelPlacement === 'outer' && <StyledLabel>{label}</StyledLabel>}\n <StyledContainer\n className={cx(styledContainer, ...dynamicLabelClasses)}\n width={helperWidth}\n onFocus={onFocusHandler}\n onBlur={onBlurHandler}\n >\n {contentRight && <StyledContent>{contentRight}</StyledContent>}\n <StyledTextAreaWrapper className={styledTextAreaWrapper} hasHelper={hasHelper}>\n <StyledTextArea\n className={styledTextArea}\n id={id}\n hasContentRight={Boolean(contentRight)}\n hasHelper={hasHelper}\n applyCustomWidth={applyCustomWidth}\n ref={outerRef}\n disabled={disabled}\n height={autoResize ? minAuto : height}\n width={width}\n placeholder={placeLabel}\n aria-describedby={textareaHelperId}\n value={value}\n readOnly={readOnly}\n rows={rows}\n cols={cols}\n resize={resize}\n defaultValue={defaultValue}\n onChange={onChangeHandler}\n {...rest}\n />\n </StyledTextAreaWrapper>\n {hasHelper && (\n <StyledHelpers className={styledHelpers} id={textareaHelperId}>\n {(leftHelper || helperText) && (\n <StyledLeftHelper>{leftHelper || helperText}</StyledLeftHelper>\n )}\n {rightHelper && <StyledRightHelper>{rightHelper}</StyledRightHelper>}\n </StyledHelpers>\n )}\n {placeLabel && (\n <StyledPlaceholder\n hasContentRight={Boolean(contentRight)}\n className={styledPlaceholder}\n htmlFor={id}\n >\n {placeLabel}\n </StyledPlaceholder>\n )}\n </StyledContainer>\n </Root>\n );\n });\n\nexport const textAreaConfig = {\n name: 'TextArea',\n tag: 'div',\n layout: textAreaRoot,\n base,\n variations: {\n size: {\n css: sizeCSS,\n },\n view: {\n css: viewCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n readOnly: {\n attrs: true,\n },\n },\n defaults: {\n size: 'm',\n view: 'primary',\n },\n};\n"],"names":["innerPlaceholderUp","classes","focusedOuterPlaceholderColor","hidePlaceHolder","styledContainer","styledTextArea","styledTextAreaWrapper","styledPlaceholder","styledHelpers","base","fallbackStatusMap","success","warning","error","getDynamicLabelClasses","props","focused","readOnly","label","labelPlacement","autoResize","rows","value","size","withFocusedOuterUpPlaceholder","undefined","withInnerPlaceholderUp","withHidePlaceholder","textAreaRoot","Root","forwardRef","innerRef","helperText","status","resize","rightHelper","leftHelper","contentRight","_props$autoResize","_props$minAuto","minAuto","maxAuto","_props$labelPlacement","placeholder","defaultValue","height","width","disabled","view","id","style","className","cols","onChange","rest","_excluded","_useState","useState","concat","_useState2","_slicedToArray","helperWidth","setHelperWidth","_useState3","_useState4","setFocused","_useState5","_useState6","uncontrolledValue","setUncontrolledValue","outerRef","createRef","hasHelper","Boolean","overriddenView","textareaHelperId","applyCustomWidth","placeLabel","useResizeObserver","currentElement","_currentElement$style","inlineWidth","inlineHeight","_currentElement$getBo","getBoundingClientRect","elementWidth","ROOT_FONT_SIZE","useAutoResize","onFocusHandler","useCallback","onBlurHandler","onChangeHandler","event","target","dynamicLabelClasses","React","createElement","StyledLabel","StyledContainer","cx","apply","_toConsumableArray","onFocus","onBlur","StyledContent","StyledTextAreaWrapper","StyledTextArea","_extends","hasContentRight","ref","StyledHelpers","StyledLeftHelper","StyledRightHelper","StyledPlaceholder","htmlFor","textAreaConfig","name","tag","layout","variations","css","sizeCSS","viewCSS","disabledCSS","attrs","defaults"],"mappings":"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"}
1
+ {"version":3,"file":"TextArea.js","sources":["../../../src/components/TextArea/TextArea.tsx"],"sourcesContent":["import React, { forwardRef, useState, createRef, useCallback } from 'react';\nimport { css } from '@linaria/core';\nimport { useResizeObserver } from '@salutejs/plasma-core';\n\nimport { cx } from '../../utils';\nimport type { RootProps } from '../../engines/types';\n\nimport { applyDynamicLabel } from './mixins';\nimport { useAutoResize, ROOT_FONT_SIZE } from './hooks';\nimport {\n StyledContent,\n StyledHelpers,\n StyledLeftHelper,\n StyledRightHelper,\n StyledLabel,\n StyledPlaceholder,\n StyledTextArea,\n StyledTextAreaWrapper,\n StyledContainer,\n} from './TextArea.styles';\nimport { classes } from './TextArea.tokens';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport type { TextAreaProps } from './TextArea.types';\n\nconst {\n innerPlaceholderUp,\n focusedOuterPlaceholderColor,\n hidePlaceHolder,\n styledContainer,\n styledTextArea,\n styledTextAreaWrapper,\n styledPlaceholder,\n styledHelpers,\n} = classes;\n\nconst base = css`\n ${applyDynamicLabel};\n\n position: relative;\n box-sizing: border-box;\n`;\n\n// TODO: Удалить после отказа от старых библиотек plasma-web / plasma-b2c\nconst fallbackStatusMap = {\n '': 'primary',\n success: 'positive',\n warning: 'warning',\n error: 'negative',\n};\n\n// TODO: Перенести этот метод в файл applyDynamicLabel.ts\nexport const getDynamicLabelClasses = (props: TextAreaProps, focused: boolean) => {\n const { readOnly, label, labelPlacement, autoResize, rows, value, size } = props;\n\n // Добавить класс отвечающий за изменение цвета плейсхолдера при фокусе\n const withFocusedOuterUpPlaceholder =\n !readOnly && focused && (!label || labelPlacement === 'outer') ? focusedOuterPlaceholderColor : undefined;\n\n // Добавить класс отвечающий за поднятие и уменьшение плейсхолдера\n const withInnerPlaceholderUp =\n labelPlacement === 'inner' &&\n label &&\n !autoResize &&\n !rows &&\n size !== 'xs' &&\n ((!readOnly && (value || focused)) || (readOnly && value))\n ? innerPlaceholderUp\n : undefined;\n\n // Добавить класс отвечающий за скрытие плейсхолдера\n const withHidePlaceholder =\n (value && !label) ||\n (labelPlacement === 'inner' && ((focused && !readOnly) || value) && label && (rows || autoResize)) ||\n (labelPlacement === 'outer' && value) ||\n (labelPlacement === 'inner' && size === 'xs' && value)\n ? hidePlaceHolder\n : undefined;\n\n return [withFocusedOuterUpPlaceholder, withInnerPlaceholderUp, withHidePlaceholder];\n};\n\nexport const textAreaRoot = (Root: RootProps<HTMLTextAreaElement, TextAreaProps>) =>\n forwardRef<HTMLTextAreaElement, TextAreaProps>((props, innerRef) => {\n const {\n helperText,\n status,\n resize,\n rightHelper,\n leftHelper,\n contentRight,\n autoResize = false,\n minAuto = 0,\n maxAuto,\n label,\n labelPlacement = 'inner',\n placeholder,\n defaultValue,\n height,\n width,\n value,\n disabled,\n size,\n view,\n id,\n style,\n className,\n readOnly,\n rows,\n cols,\n onChange,\n ...rest\n } = props;\n\n const [helperWidth, setHelperWidth] = useState<string>(width ? `${width}rem` : '100%');\n const [focused, setFocused] = useState(false);\n const [uncontrolledValue, setUncontrolledValue] = useState<string | undefined>();\n\n const outerRef = innerRef && 'current' in innerRef ? innerRef : createRef<HTMLTextAreaElement>();\n const hasHelper = Boolean(leftHelper || rightHelper || helperText);\n const overriddenView = status !== undefined ? fallbackStatusMap[status] : view;\n const textareaHelperId = id ? `${id}-helper` : undefined;\n const applyCustomWidth = resize !== 'horizontal' && resize !== 'both' && !cols;\n const placeLabel = labelPlacement === 'inner' && label && size !== 'xs' ? label : placeholder;\n\n useResizeObserver(outerRef, (currentElement) => {\n const { width: inlineWidth, height: inlineHeight } = currentElement.style;\n\n if (inlineWidth || inlineHeight || cols) {\n const { width: elementWidth } = currentElement.getBoundingClientRect();\n setHelperWidth(`${elementWidth / ROOT_FONT_SIZE}rem`);\n }\n });\n\n useAutoResize(autoResize, outerRef, value, minAuto, maxAuto);\n\n const onFocusHandler = useCallback(() => {\n setFocused(true);\n }, []);\n const onBlurHandler = useCallback(() => {\n setFocused(false);\n }, []);\n\n const onChangeHandler = useCallback(\n (event: React.ChangeEvent<HTMLTextAreaElement>) => {\n // INFO: Для крайне редких кейсов, когда value снаружи не контролируется\n if (value === undefined) {\n setUncontrolledValue(event?.target.value);\n }\n\n onChange?.(event);\n },\n [value, onChange],\n );\n\n const dynamicLabelClasses = getDynamicLabelClasses(\n {\n size,\n readOnly,\n label,\n labelPlacement,\n value: value || uncontrolledValue || defaultValue,\n ...(rows ? { rows } : { autoResize }),\n },\n focused,\n );\n\n return (\n <Root\n view={overriddenView}\n size={size}\n disabled={disabled}\n readOnly={readOnly}\n style={style}\n className={className}\n >\n {label && labelPlacement === 'outer' && <StyledLabel>{label}</StyledLabel>}\n <StyledContainer\n className={cx(styledContainer, ...dynamicLabelClasses)}\n width={helperWidth}\n onFocus={onFocusHandler}\n onBlur={onBlurHandler}\n >\n {contentRight && <StyledContent>{contentRight}</StyledContent>}\n <StyledTextAreaWrapper className={styledTextAreaWrapper} hasHelper={hasHelper}>\n <StyledTextArea\n className={styledTextArea}\n id={id}\n hasContentRight={Boolean(contentRight)}\n hasHelper={hasHelper}\n applyCustomWidth={applyCustomWidth}\n ref={outerRef}\n disabled={disabled}\n height={autoResize ? minAuto : height}\n width={width}\n placeholder={placeLabel}\n aria-describedby={textareaHelperId}\n value={value}\n readOnly={readOnly}\n rows={rows}\n cols={cols}\n resize={resize}\n defaultValue={defaultValue}\n onChange={onChangeHandler}\n {...rest}\n />\n </StyledTextAreaWrapper>\n {hasHelper && (\n <StyledHelpers className={styledHelpers} id={textareaHelperId}>\n {(leftHelper || helperText) && (\n <StyledLeftHelper>{leftHelper || helperText}</StyledLeftHelper>\n )}\n {rightHelper && <StyledRightHelper>{rightHelper}</StyledRightHelper>}\n </StyledHelpers>\n )}\n {placeLabel && (\n <StyledPlaceholder\n hasContentRight={Boolean(contentRight)}\n className={styledPlaceholder}\n htmlFor={id}\n >\n {placeLabel}\n </StyledPlaceholder>\n )}\n </StyledContainer>\n </Root>\n );\n });\n\nexport const textAreaConfig = {\n name: 'TextArea',\n tag: 'div',\n layout: textAreaRoot,\n base,\n variations: {\n size: {\n css: sizeCSS,\n },\n view: {\n css: viewCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n readOnly: {\n attrs: true,\n },\n },\n defaults: {\n size: 'm',\n view: 'primary',\n },\n};\n"],"names":["innerPlaceholderUp","classes","focusedOuterPlaceholderColor","hidePlaceHolder","styledContainer","styledTextArea","styledTextAreaWrapper","styledPlaceholder","styledHelpers","base","fallbackStatusMap","success","warning","error","getDynamicLabelClasses","props","focused","readOnly","label","labelPlacement","autoResize","rows","value","size","withFocusedOuterUpPlaceholder","undefined","withInnerPlaceholderUp","withHidePlaceholder","textAreaRoot","Root","forwardRef","innerRef","helperText","status","resize","rightHelper","leftHelper","contentRight","_props$autoResize","_props$minAuto","minAuto","maxAuto","_props$labelPlacement","placeholder","defaultValue","height","width","disabled","view","id","style","className","cols","onChange","rest","_excluded","_useState","useState","concat","_useState2","_slicedToArray","helperWidth","setHelperWidth","_useState3","_useState4","setFocused","_useState5","_useState6","uncontrolledValue","setUncontrolledValue","outerRef","createRef","hasHelper","Boolean","overriddenView","textareaHelperId","applyCustomWidth","placeLabel","useResizeObserver","currentElement","_currentElement$style","inlineWidth","inlineHeight","_currentElement$getBo","getBoundingClientRect","elementWidth","ROOT_FONT_SIZE","useAutoResize","onFocusHandler","useCallback","onBlurHandler","onChangeHandler","event","target","dynamicLabelClasses","_objectSpread","React","createElement","StyledLabel","StyledContainer","cx","apply","_toConsumableArray","onFocus","onBlur","StyledContent","StyledTextAreaWrapper","StyledTextArea","_extends","hasContentRight","ref","StyledHelpers","StyledLeftHelper","StyledRightHelper","StyledPlaceholder","htmlFor","textAreaConfig","name","tag","layout","variations","css","sizeCSS","viewCSS","disabledCSS","attrs","defaults"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { useRef, useEffect } from 'react';
2
2
 
3
3
  var ROOT_FONT_SIZE = 16;
4
- var useAutoResize = function useAutoResize(active, ref, value, minHeight, maxHeight) {
4
+ var useAutoResize = function useAutoResize(active, ref, value, minAuto, maxAuto) {
5
5
  var isManualResize = useRef(false);
6
6
  var previousHeight = useRef();
7
7
  useEffect(function () {
@@ -12,9 +12,15 @@ var useAutoResize = function useAutoResize(active, ref, value, minHeight, maxHei
12
12
  isManualResize.current = true;
13
13
  return;
14
14
  }
15
- ref.current.style.height = "".concat(minHeight ? minHeight + 1 : '0', "rem");
16
- var scrollHeight = ref.current.scrollHeight / ROOT_FONT_SIZE;
17
- var newHeight = Math.min(scrollHeight, maxHeight ? maxHeight + 1 : scrollHeight);
15
+ var style = getComputedStyle(ref.current);
16
+ var lineHeight = parseInt(style.lineHeight, 10);
17
+ var lineHeightInRem = lineHeight / ROOT_FONT_SIZE;
18
+ var minAutoHeight = minAuto ? minAuto * lineHeightInRem : 0;
19
+ ref.current.style.height = "".concat(minAutoHeight, "rem");
20
+ var lines = Math.floor(ref.current.scrollHeight / lineHeight);
21
+ var newScrollHeight = lines * lineHeightInRem;
22
+ var maxAutoHeight = maxAuto ? maxAuto * lineHeightInRem : newScrollHeight;
23
+ var newHeight = Math.min(newScrollHeight, maxAutoHeight);
18
24
  ref.current.style.height = "".concat(newHeight, "rem");
19
25
  previousHeight.current = newHeight;
20
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useAutoResize.js","sources":["../../../../src/components/TextArea/hooks/useAutoResize.ts"],"sourcesContent":["import { useEffect, useRef, MutableRefObject } from 'react';\n\nexport const ROOT_FONT_SIZE = 16;\n\nexport const useAutoResize = <T extends HTMLTextAreaElement>(\n active: boolean,\n ref: MutableRefObject<T | null>,\n value?: string | ReadonlyArray<string> | number,\n minHeight?: number,\n maxHeight?: number,\n) => {\n const isManualResize = useRef<boolean>(false);\n const previousHeight = useRef<number | undefined>();\n\n useEffect(() => {\n if (active && ref && ref.current && !isManualResize.current) {\n // проверка на пользовательский resize (вручную)\n const height = ref.current.clientHeight / ROOT_FONT_SIZE;\n if (previousHeight.current !== undefined && previousHeight.current !== height) {\n isManualResize.current = true;\n return;\n }\n\n ref.current.style.height = `${minHeight ? minHeight + 1 : '0'}rem`;\n const scrollHeight = ref.current.scrollHeight / ROOT_FONT_SIZE;\n const newHeight = Math.min(scrollHeight, maxHeight ? maxHeight + 1 : scrollHeight);\n\n ref.current.style.height = `${newHeight}rem`;\n previousHeight.current = newHeight;\n }\n }, [ref, active, value]);\n};\n"],"names":["ROOT_FONT_SIZE","useAutoResize","active","ref","value","minHeight","maxHeight","isManualResize","useRef","previousHeight","useEffect","current","height","clientHeight","undefined","style","concat","scrollHeight","newHeight","Math","min"],"mappings":";;AAEO,IAAMA,cAAc,GAAG,GAAE;AAEnBC,IAAAA,aAAa,GAAG,SAAhBA,aAAaA,CACtBC,MAAe,EACfC,GAA+B,EAC/BC,KAA+C,EAC/CC,SAAkB,EAClBC,SAAkB,EACjB;AACD,EAAA,IAAMC,cAAc,GAAGC,MAAM,CAAU,KAAK,CAAC,CAAA;AAC7C,EAAA,IAAMC,cAAc,GAAGD,MAAM,EAAsB,CAAA;AAEnDE,EAAAA,SAAS,CAAC,YAAM;AACZ,IAAA,IAAIR,MAAM,IAAIC,GAAG,IAAIA,GAAG,CAACQ,OAAO,IAAI,CAACJ,cAAc,CAACI,OAAO,EAAE;AACzD;MACA,IAAMC,MAAM,GAAGT,GAAG,CAACQ,OAAO,CAACE,YAAY,GAAGb,cAAc,CAAA;MACxD,IAAIS,cAAc,CAACE,OAAO,KAAKG,SAAS,IAAIL,cAAc,CAACE,OAAO,KAAKC,MAAM,EAAE;QAC3EL,cAAc,CAACI,OAAO,GAAG,IAAI,CAAA;AAC7B,QAAA,OAAA;AACJ,OAAA;AAEAR,MAAAA,GAAG,CAACQ,OAAO,CAACI,KAAK,CAACH,MAAM,GAAAI,EAAAA,CAAAA,MAAA,CAAMX,SAAS,GAAGA,SAAS,GAAG,CAAC,GAAG,GAAG,EAAK,KAAA,CAAA,CAAA;MAClE,IAAMY,YAAY,GAAGd,GAAG,CAACQ,OAAO,CAACM,YAAY,GAAGjB,cAAc,CAAA;AAC9D,MAAA,IAAMkB,SAAS,GAAGC,IAAI,CAACC,GAAG,CAACH,YAAY,EAAEX,SAAS,GAAGA,SAAS,GAAG,CAAC,GAAGW,YAAY,CAAC,CAAA;MAElFd,GAAG,CAACQ,OAAO,CAACI,KAAK,CAACH,MAAM,GAAAI,EAAAA,CAAAA,MAAA,CAAME,SAAS,EAAK,KAAA,CAAA,CAAA;MAC5CT,cAAc,CAACE,OAAO,GAAGO,SAAS,CAAA;AACtC,KAAA;GACH,EAAE,CAACf,GAAG,EAAED,MAAM,EAAEE,KAAK,CAAC,CAAC,CAAA;AAC5B;;;;"}
1
+ {"version":3,"file":"useAutoResize.js","sources":["../../../../src/components/TextArea/hooks/useAutoResize.ts"],"sourcesContent":["import { useEffect, useRef, MutableRefObject } from 'react';\n\nexport const ROOT_FONT_SIZE = 16;\n\nexport const useAutoResize = <T extends HTMLTextAreaElement>(\n active: boolean,\n ref: MutableRefObject<T | null>,\n value?: string | ReadonlyArray<string> | number,\n minAuto?: number,\n maxAuto?: number,\n) => {\n const isManualResize = useRef<boolean>(false);\n const previousHeight = useRef<number | undefined>();\n\n useEffect(() => {\n if (active && ref && ref.current && !isManualResize.current) {\n // проверка на пользовательский resize (вручную)\n const height = ref.current.clientHeight / ROOT_FONT_SIZE;\n if (previousHeight.current !== undefined && previousHeight.current !== height) {\n isManualResize.current = true;\n return;\n }\n\n const style = getComputedStyle(ref.current);\n const lineHeight = parseInt(style.lineHeight, 10);\n const lineHeightInRem = lineHeight / ROOT_FONT_SIZE;\n\n const minAutoHeight = minAuto ? minAuto * lineHeightInRem : 0;\n ref.current.style.height = `${minAutoHeight}rem`;\n\n const lines = Math.floor(ref.current.scrollHeight / lineHeight);\n const newScrollHeight = lines * lineHeightInRem;\n\n const maxAutoHeight = maxAuto ? maxAuto * lineHeightInRem : newScrollHeight;\n\n const newHeight = Math.min(newScrollHeight, maxAutoHeight);\n\n ref.current.style.height = `${newHeight}rem`;\n previousHeight.current = newHeight;\n }\n }, [ref, active, value]);\n};\n"],"names":["ROOT_FONT_SIZE","useAutoResize","active","ref","value","minAuto","maxAuto","isManualResize","useRef","previousHeight","useEffect","current","height","clientHeight","undefined","style","getComputedStyle","lineHeight","parseInt","lineHeightInRem","minAutoHeight","concat","lines","Math","floor","scrollHeight","newScrollHeight","maxAutoHeight","newHeight","min"],"mappings":";;AAEO,IAAMA,cAAc,GAAG,GAAE;AAEnBC,IAAAA,aAAa,GAAG,SAAhBA,aAAaA,CACtBC,MAAe,EACfC,GAA+B,EAC/BC,KAA+C,EAC/CC,OAAgB,EAChBC,OAAgB,EACf;AACD,EAAA,IAAMC,cAAc,GAAGC,MAAM,CAAU,KAAK,CAAC,CAAA;AAC7C,EAAA,IAAMC,cAAc,GAAGD,MAAM,EAAsB,CAAA;AAEnDE,EAAAA,SAAS,CAAC,YAAM;AACZ,IAAA,IAAIR,MAAM,IAAIC,GAAG,IAAIA,GAAG,CAACQ,OAAO,IAAI,CAACJ,cAAc,CAACI,OAAO,EAAE;AACzD;MACA,IAAMC,MAAM,GAAGT,GAAG,CAACQ,OAAO,CAACE,YAAY,GAAGb,cAAc,CAAA;MACxD,IAAIS,cAAc,CAACE,OAAO,KAAKG,SAAS,IAAIL,cAAc,CAACE,OAAO,KAAKC,MAAM,EAAE;QAC3EL,cAAc,CAACI,OAAO,GAAG,IAAI,CAAA;AAC7B,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAMI,KAAK,GAAGC,gBAAgB,CAACb,GAAG,CAACQ,OAAO,CAAC,CAAA;MAC3C,IAAMM,UAAU,GAAGC,QAAQ,CAACH,KAAK,CAACE,UAAU,EAAE,EAAE,CAAC,CAAA;AACjD,MAAA,IAAME,eAAe,GAAGF,UAAU,GAAGjB,cAAc,CAAA;MAEnD,IAAMoB,aAAa,GAAGf,OAAO,GAAGA,OAAO,GAAGc,eAAe,GAAG,CAAC,CAAA;MAC7DhB,GAAG,CAACQ,OAAO,CAACI,KAAK,CAACH,MAAM,GAAAS,EAAAA,CAAAA,MAAA,CAAMD,aAAa,EAAK,KAAA,CAAA,CAAA;AAEhD,MAAA,IAAME,KAAK,GAAGC,IAAI,CAACC,KAAK,CAACrB,GAAG,CAACQ,OAAO,CAACc,YAAY,GAAGR,UAAU,CAAC,CAAA;AAC/D,MAAA,IAAMS,eAAe,GAAGJ,KAAK,GAAGH,eAAe,CAAA;MAE/C,IAAMQ,aAAa,GAAGrB,OAAO,GAAGA,OAAO,GAAGa,eAAe,GAAGO,eAAe,CAAA;MAE3E,IAAME,SAAS,GAAGL,IAAI,CAACM,GAAG,CAACH,eAAe,EAAEC,aAAa,CAAC,CAAA;MAE1DxB,GAAG,CAACQ,OAAO,CAACI,KAAK,CAACH,MAAM,GAAAS,EAAAA,CAAAA,MAAA,CAAMO,SAAS,EAAK,KAAA,CAAA,CAAA;MAC5CnB,cAAc,CAACE,OAAO,GAAGiB,SAAS,CAAA;AACtC,KAAA;GACH,EAAE,CAACzB,GAAG,EAAED,MAAM,EAAEE,KAAK,CAAC,CAAC,CAAA;AAC5B;;;;"}
@@ -37,7 +37,7 @@ var IconRoot = function IconRoot(_ref2) {
37
37
  color = _ref2.color,
38
38
  className = _ref2.className,
39
39
  sizeCustomProperty = _ref2.sizeCustomProperty;
40
- var c = color || 'var(--plasma-colors-primary)';
40
+ var c = color || 'var(--text-primary)';
41
41
  var w = sizeCustomProperty ? "var(".concat(sizeCustomProperty, ")") : "".concat(sizeMap[size], "rem");
42
42
  return /*#__PURE__*/React.createElement(StyledRoot, {
43
43
  "aria-hidden": true,
@@ -1 +1 @@
1
- {"version":3,"file":"IconRoot.js","sources":["../../../src/components/_Icon/IconRoot.tsx"],"sourcesContent":["import React from 'react';\nimport { styled } from '@linaria/react';\n\nconst sizeMap = {\n xxs: 1, // 16px\n xs: 1, // 16px\n s: 1.5, // 24px\n m: 2.25, // 36px\n l: 2.75, // 44px\n xl: 3.5, // 56px\n xxl: 6.25, // 100px\n};\n\nexport type IconSize = keyof typeof sizeMap;\n\nexport interface IconProps {\n size?: IconSize;\n color?: string;\n className?: string;\n /*\n * Прорпс, который принимает название css-переменной.\n * В значении токена может быть как rem, так и другая единица измерения (значение задается через конфиг).\n * @example\n * const token = '--plasma-icon-size';\n * ...\n * <Icon sizeCustomProperty={token} {...rest}/>\n */\n sizeCustomProperty?: string;\n}\n\ninterface IconRootProps extends IconProps {\n size: IconSize;\n icon: React.FC<IconProps>;\n}\n\nconst StyledRoot = styled.div<{ w: string }>`\n display: inline-flex;\n width: ${({ w }) => w};\n height: ${({ w }) => w};\n flex: 0 0 ${({ w }) => w};\n`;\n\nexport const IconRoot: React.FC<IconRootProps> = ({\n icon: IconComponent,\n size,\n color,\n className,\n sizeCustomProperty,\n}) => {\n const c = color || 'var(--plasma-colors-primary)';\n\n const w = sizeCustomProperty ? `var(${sizeCustomProperty})` : `${sizeMap[size]}rem`;\n\n return (\n <StyledRoot aria-hidden w={w} className={className}>\n <IconComponent color={c} size={size} />\n </StyledRoot>\n );\n};\n"],"names":["sizeMap","xxs","xs","s","m","l","xl","xxl","_exp3","_ref","w","StyledRoot","styled","name","class","propsAsIs","vars","IconRoot","_ref2","IconComponent","icon","size","color","className","sizeCustomProperty","c","concat","React","createElement"],"mappings":";;;AAGA,IAAMA,OAAO,GAAG;AACZC,EAAAA,GAAG,EAAE,CAAC;AAAE;AACRC,EAAAA,EAAE,EAAE,CAAC;AAAE;AACPC,EAAAA,CAAC,EAAE,GAAG;AAAE;AACRC,EAAAA,CAAC,EAAE,IAAI;AAAE;AACTC,EAAAA,CAAC,EAAE,IAAI;AAAE;AACTC,EAAAA,EAAE,EAAE,GAAG;AAAE;EACTC,GAAG,EAAE,IAAI;AACb,CAAC,CAAA;AAsBA,IAAAC,KAAA,GAhCiBA,SAgCjBA,KAAAA,GAAA;AAAA,EAAA,OAMe,UAAAC,IAAA,EAAA;AAAA,IAAA,IAAGC,CAAAA,GAAAA,IAAAA,CAAAA,CAAAA,CAAAA;AAAAA,IAAAA,OAAQA,CAAC,CAAA;AAAA,GAAA,CAAA;AAAA,CAAA,CAAA;AAJ5B,IAAMC,UAAU,gBAAGC,MAAM,CAAA,KAAA,CAAA,CAAA;AAAAC,EAAAA,IAAA,EAAA,YAAA;AAAAC,EAAAA,OAAAA,EAAA,SAAA;AAAAC,EAAAA,SAAA,EAAA,KAAA;AAAAC,EAAAA,IAAA,EAAA;AAAA,IAAA,WAAA,EAAA,cAITR,KAAY,EAAA,CAAA;AAAA,GAAA;AAAA,CAC3B,CAAA,CAAA;IAEYS,QAAiC,GAAGA,SAApCA,QAAiCA,CAAAC,KAAA,EAMxC;AAAA,EAAA,IALIC,aAAa,GAAAD,KAAA,CAAnBE,IAAI;IACJC,IAAI,GAAAH,KAAA,CAAJG,IAAI;IACJC,KAAK,GAAAJ,KAAA,CAALI,KAAK;IACLC,SAAS,GAAAL,KAAA,CAATK,SAAS;IACTC,kBAAAA,GAAAA,KAAAA,CAAAA,kBAAAA,CAAAA;AAEA,EAAA,IAAMC,CAAC,GAAGH,KAAK,IAAI,8BAA8B,CAAA;AAEjD,EAAA,IAAMZ,CAAC,GAAGc,kBAAkB,GAAA,MAAA,CAAAE,MAAA,CAAUF,kBAAmB,EAAAE,GAAAA,CAAAA,GAAAA,EAAAA,CAAAA,MAAA,CAAQ1B,OAAO,CAACqB,IAAI,CAAE,EAAI,KAAA,CAAA,CAAA;AAEnF,EAAA,oBACIM,KAAA,CAAAC,aAAA,CAACjB,UAAU,EAAA;IAAC,aAAW,EAAA,IAAA;AAACD,IAAAA,CAAC,EAAEA,CAAE;AAACa,IAAAA,SAAS,EAAEA,SAAAA;AAAU,GAAA,eAC/CI,KAAA,CAAAC,aAAA,CAACT,aAAa,EAAA;AAACG,IAAAA,KAAK,EAAEG,CAAE;AAACJ,IAAAA,IAAI,EAAEA,IAAAA;AAAK,GAAA,CAC5B,CAAC,CAAA;AAErB;;;;"}
1
+ {"version":3,"file":"IconRoot.js","sources":["../../../src/components/_Icon/IconRoot.tsx"],"sourcesContent":["import React from 'react';\nimport { styled } from '@linaria/react';\n\nconst sizeMap = {\n xxs: 1, // 16px\n xs: 1, // 16px\n s: 1.5, // 24px\n m: 2.25, // 36px\n l: 2.75, // 44px\n xl: 3.5, // 56px\n xxl: 6.25, // 100px\n};\n\nexport type IconSize = keyof typeof sizeMap;\n\nexport interface IconProps {\n size?: IconSize;\n color?: string;\n className?: string;\n /*\n * Прорпс, который принимает название css-переменной.\n * В значении токена может быть как rem, так и другая единица измерения (значение задается через конфиг).\n * @example\n * const token = '--plasma-icon-size';\n * ...\n * <Icon sizeCustomProperty={token} {...rest}/>\n */\n sizeCustomProperty?: string;\n}\n\ninterface IconRootProps extends IconProps {\n size: IconSize;\n icon: React.FC<IconProps>;\n}\n\nconst StyledRoot = styled.div<{ w: string }>`\n display: inline-flex;\n width: ${({ w }) => w};\n height: ${({ w }) => w};\n flex: 0 0 ${({ w }) => w};\n`;\n\nexport const IconRoot: React.FC<IconRootProps> = ({\n icon: IconComponent,\n size,\n color,\n className,\n sizeCustomProperty,\n}) => {\n const c = color || 'var(--text-primary)';\n\n const w = sizeCustomProperty ? `var(${sizeCustomProperty})` : `${sizeMap[size]}rem`;\n\n return (\n <StyledRoot aria-hidden w={w} className={className}>\n <IconComponent color={c} size={size} />\n </StyledRoot>\n );\n};\n"],"names":["sizeMap","xxs","xs","s","m","l","xl","xxl","_exp3","_ref","w","StyledRoot","styled","name","class","propsAsIs","vars","IconRoot","_ref2","IconComponent","icon","size","color","className","sizeCustomProperty","c","concat","React","createElement"],"mappings":";;;AAGA,IAAMA,OAAO,GAAG;AACZC,EAAAA,GAAG,EAAE,CAAC;AAAE;AACRC,EAAAA,EAAE,EAAE,CAAC;AAAE;AACPC,EAAAA,CAAC,EAAE,GAAG;AAAE;AACRC,EAAAA,CAAC,EAAE,IAAI;AAAE;AACTC,EAAAA,CAAC,EAAE,IAAI;AAAE;AACTC,EAAAA,EAAE,EAAE,GAAG;AAAE;EACTC,GAAG,EAAE,IAAI;AACb,CAAC,CAAA;AAsBA,IAAAC,KAAA,GAhCiBA,SAgCjBA,KAAAA,GAAA;AAAA,EAAA,OAMe,UAAAC,IAAA,EAAA;AAAA,IAAA,IAAGC,CAAAA,GAAAA,IAAAA,CAAAA,CAAAA,CAAAA;AAAAA,IAAAA,OAAQA,CAAC,CAAA;AAAA,GAAA,CAAA;AAAA,CAAA,CAAA;AAJ5B,IAAMC,UAAU,gBAAGC,MAAM,CAAA,KAAA,CAAA,CAAA;AAAAC,EAAAA,IAAA,EAAA,YAAA;AAAAC,EAAAA,OAAAA,EAAA,SAAA;AAAAC,EAAAA,SAAA,EAAA,KAAA;AAAAC,EAAAA,IAAA,EAAA;AAAA,IAAA,WAAA,EAAA,cAITR,KAAY,EAAA,CAAA;AAAA,GAAA;AAAA,CAC3B,CAAA,CAAA;IAEYS,QAAiC,GAAGA,SAApCA,QAAiCA,CAAAC,KAAA,EAMxC;AAAA,EAAA,IALIC,aAAa,GAAAD,KAAA,CAAnBE,IAAI;IACJC,IAAI,GAAAH,KAAA,CAAJG,IAAI;IACJC,KAAK,GAAAJ,KAAA,CAALI,KAAK;IACLC,SAAS,GAAAL,KAAA,CAATK,SAAS;IACTC,kBAAAA,GAAAA,KAAAA,CAAAA,kBAAAA,CAAAA;AAEA,EAAA,IAAMC,CAAC,GAAGH,KAAK,IAAI,qBAAqB,CAAA;AAExC,EAAA,IAAMZ,CAAC,GAAGc,kBAAkB,GAAA,MAAA,CAAAE,MAAA,CAAUF,kBAAmB,EAAAE,GAAAA,CAAAA,GAAAA,EAAAA,CAAAA,MAAA,CAAQ1B,OAAO,CAACqB,IAAI,CAAE,EAAI,KAAA,CAAA,CAAA;AAEnF,EAAA,oBACIM,KAAA,CAAAC,aAAA,CAACjB,UAAU,EAAA;IAAC,aAAW,EAAA,IAAA;AAACD,IAAAA,CAAC,EAAEA,CAAE;AAACa,IAAAA,SAAS,EAAEA,SAAAA;AAAU,GAAA,eAC/CI,KAAA,CAAAC,aAAA,CAACT,aAAa,EAAA;AAACG,IAAAA,KAAK,EAAEG,CAAE;AAACJ,IAAAA,IAAI,EAAEA,IAAAA;AAAK,GAAA,CAC5B,CAAC,CAAA;AAErB;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salutejs/plasma-new-hope",
3
- "version": "0.90.0-canary.1260.9580678742.0",
3
+ "version": "0.91.0-canary.1261.9609334871.0",
4
4
  "description": "Salute Design System blueprint",
5
5
  "main": "cjs/index.js",
6
6
  "module": "es/index.js",
@@ -105,5 +105,5 @@
105
105
  "react-popper": "2.3.0",
106
106
  "storeon": "3.1.5"
107
107
  },
108
- "gitHead": "4757d728577f59f36174e5725f3e7a4c6d8fa4ee"
108
+ "gitHead": "6a4e6a1066217e44a5f3ce7b25ddb4bd373e0390"
109
109
  }
@@ -86,7 +86,7 @@ import { Button } from '@salutejs/{{package}}';
86
86
 
87
87
  export function App() {
88
88
  return (
89
- <div style={{ display: "flex", flexDirection: "column", gap: "1rem" }}>
89
+ <div style=\{{ display: "flex", flexDirection: "column", gap: "1rem" }}>
90
90
  <Button text="Button" stretching="fixed" />
91
91
  <Button text="Button" stretching="auto" />
92
92
  <Button text="Button" stretching="filled" />
@@ -99,7 +99,7 @@ export function App() {
99
99
  Позиционирование контента внутри кнопки регулируется с помощью свойства `contentPlacing`.
100
100
  Возможные значения свойства `contentPlacing`:
101
101
  + `default` – контент центрируется;
102
- + `relaxed` – контент распологается по краям.
102
+ + `relaxed` – контент располагается по краям.
103
103
 
104
104
  ```tsx live
105
105
  import React from 'react';
@@ -107,7 +107,7 @@ import { Button } from '@salutejs/{{package}}';
107
107
 
108
108
  export function App() {
109
109
  return (
110
- <div style={{ display: "flex", flexDirection: "column", gap: "1rem" }}>
110
+ <div style=\{{ display: "flex", flexDirection: "column", gap: "1rem" }}>
111
111
  <Button text="Hello" value="Plasma" stretching="filled" contentPlacing="default" />
112
112
  <Button text="Hello" value="Plasma" stretching="filled" contentPlacing="relaxed" />
113
113
  </div>
@@ -17,7 +17,7 @@ var _utils2 = /*#__PURE__*/require("./utils");
17
17
  var _Dropdown2 = /*#__PURE__*/require("./Dropdown.tokens");
18
18
  var _useKeyboardNavigation = /*#__PURE__*/require("./hooks/useKeyboardNavigation");
19
19
  var _useHashMaps3 = /*#__PURE__*/require("./hooks/useHashMaps");
20
- var _excluded = ["items", "children", "placement", "offset", "closeOnOverlayClick", "onToggle", "size", "view", "itemRole", "className", "listWidth", "listHeight", "listOverflow", "closeOnSelect", "onHover", "onItemSelect", "onItemClick", "trigger", "variant", "hasArrow", "portal"];
20
+ var _excluded = ["items", "children", "placement", "offset", "closeOnOverlayClick", "onToggle", "size", "view", "itemRole", "className", "listWidth", "listHeight", "listOverflow", "closeOnSelect", "onHover", "onItemSelect", "onItemClick", "trigger", "variant", "hasArrow"];
21
21
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
22
22
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
23
23
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
@@ -62,7 +62,6 @@ var dropdownRoot = exports.dropdownRoot = function dropdownRoot(Root) {
62
62
  variant = _ref$variant === void 0 ? 'normal' : _ref$variant,
63
63
  _ref$hasArrow = _ref.hasArrow,
64
64
  hasArrow = _ref$hasArrow === void 0 ? true : _ref$hasArrow,
65
- portal = _ref.portal,
66
65
  rest = _objectWithoutProperties(_ref, _excluded);
67
66
  var _useReducer = (0, _react.useReducer)(_pathReducer.pathReducer, []),
68
67
  _useReducer2 = _slicedToArray(_useReducer, 2),
@@ -114,8 +113,15 @@ var dropdownRoot = exports.dropdownRoot = function dropdownRoot(Root) {
114
113
  }, '').replace(/^(\/)/, '');
115
114
  return focusedToValueMap === null || focusedToValueMap === void 0 || (_focusedToValueMap$ge = focusedToValueMap.get(focusedPathAsString)) === null || _focusedToValueMap$ge === void 0 ? void 0 : _focusedToValueMap$ge.value.toString();
116
115
  };
117
- return /*#__PURE__*/_react["default"].createElement(_Dropdown.StyledPopover, {
116
+ return /*#__PURE__*/_react["default"].createElement(Root, _extends({
117
+ className: (0, _utils.cx)(className, _Dropdown2.classes.dropdownRoot),
118
+ ref: ref,
119
+ view: view,
120
+ size: size,
121
+ items: items
122
+ }, rest), /*#__PURE__*/_react["default"].createElement(_Dropdown.StyledPopover, {
118
123
  isOpen: isCurrentListOpen,
124
+ usePortal: false,
119
125
  onToggle: handleGlobalToggle,
120
126
  offset: offset,
121
127
  placement: (0, _utils2.getPlacements)(placement),
@@ -129,15 +135,8 @@ var dropdownRoot = exports.dropdownRoot = function dropdownRoot(Root) {
129
135
  'aria-activedescendant': getActiveDescendant(),
130
136
  onKeyDown: onKeyDown
131
137
  }),
132
- preventOverflow: false,
133
- usePortal: Boolean(portal),
134
- frame: portal
135
- }, /*#__PURE__*/_react["default"].createElement(Root, _extends({
136
- className: (0, _utils.cx)(className, _Dropdown2.classes.dropdownRoot),
137
- ref: ref,
138
- view: view,
139
- size: size
140
- }, rest), /*#__PURE__*/_react["default"].createElement(_Dropdown.Ul, {
138
+ preventOverflow: false
139
+ }, /*#__PURE__*/_react["default"].createElement(_Dropdown.Ul, {
141
140
  listHeight: listHeight,
142
141
  listOverflow: listOverflow,
143
142
  role: "tree",
@@ -123,20 +123,19 @@ var popoverRoot = exports.popoverRoot = function popoverRoot(Root) {
123
123
  }, [closeOnEsc, isOpen, onToggle]);
124
124
  var onDocumentClick = (0, _react.useCallback)(function (event) {
125
125
  if (isOpen && closeOnOverlayClick && onToggle) {
126
- var _rootRef$current, _popoverRef$current;
126
+ var _rootRef$current;
127
127
  var targetIsRoot = event.target === rootRef.current;
128
128
  var rootHasTarget = (_rootRef$current = rootRef.current) === null || _rootRef$current === void 0 ? void 0 : _rootRef$current.contains(event.target);
129
- var popoverRootHasTarget = (_popoverRef$current = popoverRef.current) === null || _popoverRef$current === void 0 ? void 0 : _popoverRef$current.contains(event.target);
130
- if (!targetIsRoot && !rootHasTarget && !popoverRootHasTarget) {
129
+ if (!targetIsRoot && !rootHasTarget) {
131
130
  onToggle(false, event);
132
131
  }
133
132
  }
134
133
  }, [closeOnOverlayClick, isOpen, onToggle]);
135
134
  var onClick = (0, _react.useCallback)(function (event) {
136
135
  if (trigger === 'click') {
137
- var _popoverRef$current2;
136
+ var _popoverRef$current;
138
137
  var targetIsPopover = event.target === popoverRef.current;
139
- var rootHasTarget = (_popoverRef$current2 = popoverRef.current) === null || _popoverRef$current2 === void 0 ? void 0 : _popoverRef$current2.contains(event.target);
138
+ var rootHasTarget = (_popoverRef$current = popoverRef.current) === null || _popoverRef$current === void 0 ? void 0 : _popoverRef$current.contains(event.target);
140
139
  if (!targetIsPopover && !rootHasTarget) {
141
140
  onToggle === null || onToggle === void 0 || onToggle(!isOpen, event);
142
141
  }
@@ -31,9 +31,11 @@ export function App() {
31
31
  Компоненты `Radiobox` следует объединять в `RadioGroup`
32
32
 
33
33
  ```tsx live
34
- <RadioGroup aria-labelledby="radiogroup-title-id">
35
- <H3 id="radiogroup-title-id">Заголовок</H3>
36
- <Radiobox name="radio-1" label="Радиокнопка 1" description="Описание 1" defaultChecked />
37
- <Radiobox name="radio-1" label="Радиокнопка 2" description="Описание 2" />
38
- </RadioGroup>
34
+ <div>
35
+ <RadioGroup aria-labelledby="radiogroup-title-id">
36
+ <H3 id="radiogroup-title-id" style=\{{"margin-bottom": "12px"}}>Заголовок</H3>
37
+ <Radiobox name="radio-1" label="Радиокнопка 1" description="Описание 1" defaultChecked />
38
+ <Radiobox name="radio-1" label="Радиокнопка 2" description="Описание 2" />
39
+ </RadioGroup>
40
+ </div>
39
41
  ```
@@ -53,7 +53,7 @@ export function App() {
53
53
  }
54
54
 
55
55
  return (
56
- <div style={{ display: "block" }} >
56
+ <div style=\{{ display: "block" }} >
57
57
  <SegmentProvider>
58
58
  <SegmentTemplate/>
59
59
  </SegmentProvider>