@salutejs/plasma-new-hope 0.186.0-canary.1538.11705586782.0 → 0.186.0-canary.1542.11716355955.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. package/cjs/components/Combobox/ComboboxNew/Combobox.boundler.js +22 -0
  2. package/cjs/components/Combobox/ComboboxNew/Combobox.boundler.js.map +1 -0
  3. package/cjs/components/Dropdown/Dropdown.js +4 -6
  4. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  5. package/cjs/index.js +2 -0
  6. package/cjs/index.js.map +1 -1
  7. package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.boundler.js +21 -0
  8. package/emotion/cjs/components/Combobox/ComboboxNew/index.js +8 -1
  9. package/emotion/cjs/components/Combobox/ComboboxNew/utils/getForm.js +90 -0
  10. package/emotion/cjs/components/Combobox/ComboboxNew/utils/syntheticEvent.js +53 -0
  11. package/emotion/cjs/components/Combobox/index.js +6 -0
  12. package/emotion/cjs/components/Dropdown/Dropdown.js +4 -6
  13. package/emotion/cjs/examples/plasma_b2c/components/Combobox/Combobox.js +7 -2
  14. package/emotion/cjs/examples/plasma_b2c/components/Combobox/Combobox.stories.tsx +62 -4
  15. package/emotion/es/components/Combobox/ComboboxNew/Combobox.boundler.js +14 -0
  16. package/emotion/es/components/Combobox/ComboboxNew/index.js +2 -1
  17. package/emotion/es/components/Combobox/ComboboxNew/utils/getForm.js +83 -0
  18. package/emotion/es/components/Combobox/ComboboxNew/utils/syntheticEvent.js +47 -0
  19. package/emotion/es/components/Combobox/index.js +1 -1
  20. package/emotion/es/components/Dropdown/Dropdown.js +4 -6
  21. package/emotion/es/examples/plasma_b2c/components/Combobox/Combobox.js +7 -2
  22. package/emotion/es/examples/plasma_b2c/components/Combobox/Combobox.stories.tsx +62 -4
  23. package/es/components/Combobox/ComboboxNew/Combobox.boundler.js +18 -0
  24. package/es/components/Combobox/ComboboxNew/Combobox.boundler.js.map +1 -0
  25. package/es/components/Dropdown/Dropdown.js +4 -6
  26. package/es/components/Dropdown/Dropdown.js.map +1 -1
  27. package/es/index.js +1 -0
  28. package/es/index.js.map +1 -1
  29. package/package.json +2 -2
  30. package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.boundler.js +21 -0
  31. package/styled-components/cjs/components/Combobox/ComboboxNew/index.js +8 -1
  32. package/styled-components/cjs/components/Combobox/ComboboxNew/utils/getForm.js +90 -0
  33. package/styled-components/cjs/components/Combobox/ComboboxNew/utils/syntheticEvent.js +53 -0
  34. package/styled-components/cjs/components/Combobox/index.js +6 -0
  35. package/styled-components/cjs/components/Dropdown/Dropdown.js +4 -6
  36. package/styled-components/cjs/examples/plasma_b2c/components/Combobox/Combobox.js +7 -2
  37. package/styled-components/cjs/examples/plasma_b2c/components/Combobox/Combobox.stories.tsx +62 -4
  38. package/styled-components/es/components/Combobox/ComboboxNew/Combobox.boundler.js +14 -0
  39. package/styled-components/es/components/Combobox/ComboboxNew/index.js +2 -1
  40. package/styled-components/es/components/Combobox/ComboboxNew/utils/getForm.js +83 -0
  41. package/styled-components/es/components/Combobox/ComboboxNew/utils/syntheticEvent.js +47 -0
  42. package/styled-components/es/components/Combobox/index.js +1 -1
  43. package/styled-components/es/components/Dropdown/Dropdown.js +4 -6
  44. package/styled-components/es/examples/plasma_b2c/components/Combobox/Combobox.js +7 -2
  45. package/styled-components/es/examples/plasma_b2c/components/Combobox/Combobox.stories.tsx +62 -4
  46. package/types/components/Combobox/ComboboxNew/Combobox.boundler.d.ts +4 -0
  47. package/types/components/Combobox/ComboboxNew/Combobox.boundler.d.ts.map +1 -0
  48. package/types/components/Combobox/ComboboxNew/Combobox.types.d.ts +21 -0
  49. package/types/components/Combobox/ComboboxNew/Combobox.types.d.ts.map +1 -1
  50. package/types/components/Combobox/ComboboxNew/index.d.ts +1 -0
  51. package/types/components/Combobox/ComboboxNew/index.d.ts.map +1 -1
  52. package/types/components/Combobox/ComboboxNew/utils/getForm.d.ts +4 -0
  53. package/types/components/Combobox/ComboboxNew/utils/getForm.d.ts.map +1 -0
  54. package/types/components/Combobox/ComboboxNew/utils/syntheticEvent.d.ts +4 -0
  55. package/types/components/Combobox/ComboboxNew/utils/syntheticEvent.d.ts.map +1 -0
  56. package/types/components/Combobox/index.d.ts +1 -1
  57. package/types/components/Combobox/index.d.ts.map +1 -1
  58. package/types/components/Dropdown/Dropdown.d.ts.map +1 -1
  59. package/types/components/Dropdown/Dropdown.types.d.ts +0 -4
  60. package/types/components/Dropdown/Dropdown.types.d.ts.map +1 -1
  61. package/types/examples/plasma_b2c/components/Combobox/Combobox.d.ts +3 -2
  62. package/types/examples/plasma_b2c/components/Combobox/Combobox.d.ts.map +1 -1
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+
7
+ var boundCombobox = function boundCombobox(_ref) {
8
+ var ComboboxBase = _ref.base,
9
+ ComboboxBaseForm = _ref.baseForm;
10
+ return function (rest) {
11
+ if (rest.formType) {
12
+ return /*#__PURE__*/React.createElement(ComboboxBaseForm, rest);
13
+ }
14
+ if (!rest.formType) {
15
+ return /*#__PURE__*/React.createElement(ComboboxBase, rest);
16
+ }
17
+ return null;
18
+ };
19
+ };
20
+
21
+ exports.boundCombobox = boundCombobox;
22
+ //# sourceMappingURL=Combobox.boundler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Combobox.boundler.js","sources":["../../../../src/components/Combobox/ComboboxNew/Combobox.boundler.tsx"],"sourcesContent":["import React from 'react';\n\nimport { ComboboxBoundlerProps, ComboboxBoundlerPropsComponent } from './Combobox.types';\n\nexport const boundCombobox: (args: ComboboxBoundlerProps) => React.FC<ComboboxBoundlerPropsComponent> = ({\n base: ComboboxBase,\n baseForm: ComboboxBaseForm,\n}) => (rest) => {\n if (rest.formType) {\n return <ComboboxBaseForm {...rest} />;\n }\n\n if (!rest.formType) {\n return <ComboboxBase {...rest} />;\n }\n\n return null;\n};\n"],"names":["boundCombobox","_ref","ComboboxBase","base","ComboboxBaseForm","baseForm","rest","formType","React","createElement"],"mappings":";;;;;;IAIaA,aAAwF,GAAG,SAA3FA,aAAwFA,CAAAC,IAAA,EAAA;AAAA,EAAA,IAC3FC,YAAY,GAAAD,IAAA,CAAlBE,IAAI;IACMC,gBAAgB,GAAAH,IAAA,CAA1BI,QAAQ,CAAA;EAAA,OACN,UAACC,IAAI,EAAK;IACZ,IAAIA,IAAI,CAACC,QAAQ,EAAE;AACf,MAAA,oBAAOC,KAAA,CAAAC,aAAA,CAACL,gBAAgB,EAAKE,IAAO,CAAC,CAAA;AACzC,KAAA;AAEA,IAAA,IAAI,CAACA,IAAI,CAACC,QAAQ,EAAE;AAChB,MAAA,oBAAOC,KAAA,CAAAC,aAAA,CAACP,YAAY,EAAKI,IAAO,CAAC,CAAA;AACrC,KAAA;AAEA,IAAA,OAAO,IAAI,CAAA;GACd,CAAA;AAAA;;;;"}
@@ -22,7 +22,7 @@ var getPlacement = require('./utils/getPlacement.js');
22
22
  var getItemId = require('./utils/getItemId.js');
23
23
  var DropdownInner = require('./ui/DropdownInner/DropdownInner.js');
24
24
 
25
- var _excluded = ["items", "children", "placement", "offset", "closeOnOverlayClick", "onToggle", "size", "view", "itemRole", "className", "listWidth", "listHeight", "listOverflow", "closeOnSelect", "onHover", "onItemSelect", "onItemClick", "trigger", "variant", "hasArrow", "alwaysOpened", "portal"];
25
+ var _excluded = ["items", "children", "placement", "offset", "closeOnOverlayClick", "onToggle", "size", "view", "itemRole", "className", "listWidth", "listHeight", "listOverflow", "closeOnSelect", "onHover", "onItemSelect", "onItemClick", "trigger", "variant", "hasArrow", "portal"];
26
26
  var Context = /*#__PURE__*/React.createContext({});
27
27
 
28
28
  /**
@@ -57,8 +57,6 @@ var dropdownRoot = function dropdownRoot(Root) {
57
57
  variant = _ref$variant === void 0 ? 'normal' : _ref$variant,
58
58
  _ref$hasArrow = _ref.hasArrow,
59
59
  hasArrow = _ref$hasArrow === void 0 ? true : _ref$hasArrow,
60
- _ref$alwaysOpened = _ref.alwaysOpened,
61
- alwaysOpened = _ref$alwaysOpened === void 0 ? false : _ref$alwaysOpened,
62
60
  portal = _ref.portal,
63
61
  rest = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
64
62
  var _useReducer = React.useReducer(pathReducer.pathReducer, []),
@@ -79,7 +77,7 @@ var dropdownRoot = function dropdownRoot(Root) {
79
77
 
80
78
  // Логика работы при клике за пределами выпадающего списка
81
79
  var targetRef = useOutsideClick.useOutsideClick(function (event) {
82
- if (!isCurrentListOpen || !closeOnOverlayClick || alwaysOpened) {
80
+ if (!isCurrentListOpen || !closeOnOverlayClick) {
83
81
  return;
84
82
  }
85
83
  dispatchPath({
@@ -93,7 +91,7 @@ var dropdownRoot = function dropdownRoot(Root) {
93
91
  }
94
92
  }, floatingPopoverRef);
95
93
  var handleGlobalToggle = function handleGlobalToggle(opened, event) {
96
- if (alwaysOpened || opened) {
94
+ if (opened) {
97
95
  dispatchPath({
98
96
  type: 'opened_first_level'
99
97
  });
@@ -122,7 +120,7 @@ var dropdownRoot = function dropdownRoot(Root) {
122
120
  onItemClick: onItemClick
123
121
  }),
124
122
  onKeyDown = _useKeyNavigation.onKeyDown;
125
- var isCurrentListOpen = alwaysOpened || Boolean(path[0]);
123
+ var isCurrentListOpen = Boolean(path[0]);
126
124
  return /*#__PURE__*/React.createElement(Context.Provider, {
127
125
  value: {
128
126
  focusedPath: focusedPath,
@@ -1 +1 @@
1
- {"version":3,"file":"Dropdown.js","sources":["../../../src/components/Dropdown/Dropdown.tsx"],"sourcesContent":["import React, { createContext, forwardRef, useReducer, useRef } from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\n\nimport { RootProps } from '../../engines';\nimport { cx } from '../../utils';\nimport { useOutsideClick } from '../../hooks';\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, base } from './Dropdown.styles';\nimport { childrenWithProps, getItemByFocused, getItemId, getPlacement } from './utils';\nimport type { DropdownProps, HandleGlobalToggleType, ItemContext } from './Dropdown.types';\nimport { classes } from './Dropdown.tokens';\nimport { useKeyNavigation } from './hooks/useKeyboardNavigation';\nimport { useHashMaps } from './hooks/useHashMaps';\nimport { FloatingPopover } from './FloatingPopover';\n\nexport const Context = createContext<ItemContext>({} as ItemContext);\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,\n offset,\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 alwaysOpened = false,\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 activeDescendantItemValue = getItemByFocused(focusedPath, focusedToValueMap)?.value || '';\n\n const floatingPopoverRef = useRef<HTMLDivElement>(null);\n\n const treeId = safeUseId();\n\n // Логика работы при клике за пределами выпадающего списка\n const targetRef = useOutsideClick<HTMLUListElement>((event) => {\n if (!isCurrentListOpen || !closeOnOverlayClick || alwaysOpened) {\n return;\n }\n\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n\n if (onToggle) {\n onToggle(false, event);\n }\n }, floatingPopoverRef);\n\n const handleGlobalToggle: HandleGlobalToggleType = (opened, event) => {\n if (alwaysOpened || 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 = alwaysOpened || Boolean(path[0]);\n\n return (\n <Context.Provider\n value={{\n focusedPath,\n size,\n variant,\n itemRole,\n handleGlobalToggle,\n closeOnSelect,\n onHover,\n onItemClick,\n onItemSelect,\n hasArrow,\n treeId,\n }}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isCurrentListOpen}\n onToggle={handleGlobalToggle}\n placement={getPlacement(placement)}\n offset={offset}\n portal={portal}\n trigger={trigger}\n target={childrenWithProps(children, {\n role: 'combobox',\n 'aria-controls': `${treeId}_tree_level_1`,\n 'aria-expanded': isCurrentListOpen,\n 'aria-activedescendant': activeDescendantItemValue\n ? getItemId(treeId, activeDescendantItemValue.toString())\n : '',\n onKeyDown,\n })}\n >\n <Root\n className={cx(className, classes.dropdownRoot)}\n ref={ref}\n view={view}\n size={size}\n style={{ display: 'inline-block' }}\n {...rest}\n >\n <Ul\n ref={targetRef}\n id={`${treeId}_tree_level_1`}\n role=\"tree\"\n listHeight={listHeight}\n listOverflow={listOverflow}\n listWidth={listWidth}\n >\n {items.map((item, index) => (\n <DropdownInner\n key={`${index}/0`}\n item={item}\n currentLevel={0}\n trigger={trigger}\n path={path}\n dispatchPath={dispatchPath}\n index={index}\n listHeight={listHeight}\n listOverflow={listOverflow}\n listWidth={listWidth}\n />\n ))}\n </Ul>\n </Root>\n </FloatingPopover>\n </Context.Provider>\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":["Context","createContext","dropdownRoot","Root","forwardRef","_ref","ref","_getItemByFocused","items","children","placement","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","_ref$alwaysOpened","alwaysOpened","portal","rest","_objectWithoutProperties","_excluded","_useReducer","useReducer","pathReducer","_useReducer2","_slicedToArray","path","dispatchPath","_useReducer3","focusedPathReducer","_useReducer4","focusedPath","dispatchFocusedPath","_useHashMaps","useHashMaps","_useHashMaps2","pathMap","focusedToValueMap","activeDescendantItemValue","getItemByFocused","value","floatingPopoverRef","useRef","treeId","safeUseId","targetRef","useOutsideClick","event","isCurrentListOpen","type","handleGlobalToggle","opened","_useKeyNavigation","useKeyNavigation","onKeyDown","Boolean","React","createElement","Provider","FloatingPopover","getPlacement","target","childrenWithProps","role","concat","getItemId","toString","_extends","cx","classes","style","display","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, { createContext, forwardRef, useReducer, useRef } from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\n\nimport { RootProps } from '../../engines';\nimport { cx } from '../../utils';\nimport { useOutsideClick } from '../../hooks';\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, base } from './Dropdown.styles';\nimport { childrenWithProps, getItemByFocused, getItemId, getPlacement } from './utils';\nimport type { DropdownProps, HandleGlobalToggleType, ItemContext } from './Dropdown.types';\nimport { classes } from './Dropdown.tokens';\nimport { useKeyNavigation } from './hooks/useKeyboardNavigation';\nimport { useHashMaps } from './hooks/useHashMaps';\nimport { FloatingPopover } from './FloatingPopover';\n\nexport const Context = createContext<ItemContext>({} as ItemContext);\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,\n offset,\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 activeDescendantItemValue = getItemByFocused(focusedPath, focusedToValueMap)?.value || '';\n\n const floatingPopoverRef = useRef<HTMLDivElement>(null);\n\n const treeId = safeUseId();\n\n // Логика работы при клике за пределами выпадающего списка\n const targetRef = useOutsideClick<HTMLUListElement>((event) => {\n if (!isCurrentListOpen || !closeOnOverlayClick) {\n return;\n }\n\n dispatchPath({ type: 'reset' });\n dispatchFocusedPath({ type: 'reset' });\n\n if (onToggle) {\n onToggle(false, event);\n }\n }, floatingPopoverRef);\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 return (\n <Context.Provider\n value={{\n focusedPath,\n size,\n variant,\n itemRole,\n handleGlobalToggle,\n closeOnSelect,\n onHover,\n onItemClick,\n onItemSelect,\n hasArrow,\n treeId,\n }}\n >\n <FloatingPopover\n ref={floatingPopoverRef}\n opened={isCurrentListOpen}\n onToggle={handleGlobalToggle}\n placement={getPlacement(placement)}\n offset={offset}\n portal={portal}\n trigger={trigger}\n target={childrenWithProps(children, {\n role: 'combobox',\n 'aria-controls': `${treeId}_tree_level_1`,\n 'aria-expanded': isCurrentListOpen,\n 'aria-activedescendant': activeDescendantItemValue\n ? getItemId(treeId, activeDescendantItemValue.toString())\n : '',\n onKeyDown,\n })}\n >\n <Root\n className={cx(className, classes.dropdownRoot)}\n ref={ref}\n view={view}\n size={size}\n style={{ display: 'inline-block' }}\n {...rest}\n >\n <Ul\n ref={targetRef}\n id={`${treeId}_tree_level_1`}\n role=\"tree\"\n listHeight={listHeight}\n listOverflow={listOverflow}\n listWidth={listWidth}\n >\n {items.map((item, index) => (\n <DropdownInner\n key={`${index}/0`}\n item={item}\n currentLevel={0}\n trigger={trigger}\n path={path}\n dispatchPath={dispatchPath}\n index={index}\n listHeight={listHeight}\n listOverflow={listOverflow}\n listWidth={listWidth}\n />\n ))}\n </Ul>\n </Root>\n </FloatingPopover>\n </Context.Provider>\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":["Context","createContext","dropdownRoot","Root","forwardRef","_ref","ref","_getItemByFocused","items","children","placement","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","activeDescendantItemValue","getItemByFocused","value","floatingPopoverRef","useRef","treeId","safeUseId","targetRef","useOutsideClick","event","isCurrentListOpen","type","handleGlobalToggle","opened","_useKeyNavigation","useKeyNavigation","onKeyDown","Boolean","React","createElement","Provider","FloatingPopover","getPlacement","target","childrenWithProps","role","concat","getItemId","toString","_extends","cx","classes","style","display","Ul","id","map","item","index","DropdownInner","key","currentLevel","dropdownConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":"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"}
package/cjs/index.js CHANGED
@@ -162,6 +162,7 @@ var ComboboxTarget = require('./components/Combobox/ComboboxOld/ui/ComboboxTarge
162
162
  var Combobox_tokens = require('./components/Combobox/ComboboxOld/Combobox.tokens.js');
163
163
  var Combobox_tokens$1 = require('./components/Combobox/ComboboxNew/Combobox.tokens.js');
164
164
  var Combobox$1 = require('./components/Combobox/ComboboxNew/Combobox.js');
165
+ var Combobox_boundler = require('./components/Combobox/ComboboxNew/Combobox.boundler.js');
165
166
  var Indicator = require('./components/Indicator/Indicator.js');
166
167
  var Indicator_tokens = require('./components/Indicator/Indicator.tokens.js');
167
168
  var Grid = require('./components/Grid/Grid.js');
@@ -531,6 +532,7 @@ exports.comboboxOldTokens = Combobox_tokens.tokens;
531
532
  exports.comboboxNewTokens = Combobox_tokens$1.tokens;
532
533
  exports.comboboxNewConfig = Combobox$1.comboboxConfig;
533
534
  exports.comboboxNewRoot = Combobox$1.comboboxRoot;
535
+ exports.boundCombobox = Combobox_boundler.boundCombobox;
534
536
  exports.indicatorConfig = Indicator.indicatorConfig;
535
537
  exports.indicatorRoot = Indicator.indicatorRoot;
536
538
  exports.indicatorTokens = Indicator_tokens.tokens;
package/cjs/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.boundCombobox = void 0;
7
+ var _react = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("react"));
8
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
9
+ var boundCombobox = exports.boundCombobox = function boundCombobox(_ref) {
10
+ var ComboboxBase = _ref.base,
11
+ ComboboxBaseForm = _ref.baseForm;
12
+ return function (rest) {
13
+ if (rest.formType) {
14
+ return /*#__PURE__*/_react["default"].createElement(ComboboxBaseForm, rest);
15
+ }
16
+ if (!rest.formType) {
17
+ return /*#__PURE__*/_react["default"].createElement(ComboboxBase, rest);
18
+ }
19
+ return null;
20
+ };
21
+ };
@@ -3,6 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ Object.defineProperty(exports, "boundCombobox", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _Combobox3.boundCombobox;
10
+ }
11
+ });
6
12
  Object.defineProperty(exports, "comboboxConfig", {
7
13
  enumerable: true,
8
14
  get: function get() {
@@ -22,4 +28,5 @@ Object.defineProperty(exports, "comboboxTokens", {
22
28
  }
23
29
  });
24
30
  var _Combobox = /*#__PURE__*/require("./Combobox");
25
- var _Combobox2 = /*#__PURE__*/require("./Combobox.tokens");
31
+ var _Combobox2 = /*#__PURE__*/require("./Combobox.tokens");
32
+ var _Combobox3 = /*#__PURE__*/require("./Combobox.boundler");
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getFormComponentGenerator = void 0;
8
+ var _react = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("react"));
9
+ var _syntheticEvent = /*#__PURE__*/require("./syntheticEvent");
10
+ var _excluded = ["onChange", "component"],
11
+ _excluded2 = ["onChange", "component"]; // eslint-disable-next-line @typescript-eslint/ban-ts-comment
12
+ // @ts-nocheck
13
+ 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); }
14
+ 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; }
15
+ 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); }
16
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
17
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
18
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
19
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
20
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
21
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
22
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
23
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
24
+ var SingleForm = function SingleForm(args) {
25
+ var onChange = args.onChange,
26
+ Component = args.component,
27
+ rest = _objectWithoutProperties(args, _excluded);
28
+ var _useState = (0, _react.useState)(),
29
+ _useState2 = _slicedToArray(_useState, 2),
30
+ value = _useState2[0],
31
+ setValue = _useState2[1];
32
+ var selectRef = (0, _react.useRef)(null);
33
+ var handleChange = function handleChange(value) {
34
+ setValue(value);
35
+ };
36
+ (0, _react.useEffect)(function () {
37
+ var event = (0, _syntheticEvent.createEvent)(selectRef);
38
+ onChange && onChange(event);
39
+ }, [value]);
40
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("select", {
41
+ ref: selectRef,
42
+ value: value,
43
+ hidden: true
44
+ }, /*#__PURE__*/_react["default"].createElement("option", {
45
+ value: value
46
+ }, value)), /*#__PURE__*/_react["default"].createElement(Component, _extends({}, rest, {
47
+ value: value,
48
+ onChange: handleChange
49
+ })));
50
+ };
51
+ var MultipleForm = function MultipleForm(args) {
52
+ var onChange = args.onChange,
53
+ Component = args.component,
54
+ rest = _objectWithoutProperties(args, _excluded2);
55
+ var _useState3 = (0, _react.useState)([]),
56
+ _useState4 = _slicedToArray(_useState3, 2),
57
+ values = _useState4[0],
58
+ setValues = _useState4[1];
59
+ var selectRef = (0, _react.useRef)(null);
60
+ var handleChange = function handleChange(value) {
61
+ setValues(value);
62
+ };
63
+ (0, _react.useEffect)(function () {
64
+ var event = (0, _syntheticEvent.createEvent)(selectRef);
65
+ onChange && onChange(event);
66
+ }, [values]);
67
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("select", {
68
+ ref: selectRef,
69
+ value: values,
70
+ multiple: true,
71
+ hidden: true
72
+ }, values.map(function (value) {
73
+ return /*#__PURE__*/_react["default"].createElement("option", {
74
+ key: value,
75
+ value: value
76
+ }, value);
77
+ })), /*#__PURE__*/_react["default"].createElement(Component, _extends({}, rest, {
78
+ value: values,
79
+ onChange: handleChange
80
+ })));
81
+ };
82
+ var getFormComponentGenerator = exports.getFormComponentGenerator = function getFormComponentGenerator(Component) {
83
+ return function (args) {
84
+ return args.multiple ? /*#__PURE__*/_react["default"].createElement(MultipleForm, _extends({}, args, {
85
+ component: Component
86
+ })) : /*#__PURE__*/_react["default"].createElement(SingleForm, _extends({}, args, {
87
+ component: Component
88
+ }));
89
+ };
90
+ };
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createSyntheticEvent = exports.createEvent = void 0;
7
+ var createEvent = exports.createEvent = function createEvent(ref) {
8
+ if (ref.current) {
9
+ var event = new Event('change', {
10
+ bubbles: true
11
+ });
12
+ Object.defineProperty(event, 'target', {
13
+ writable: false,
14
+ value: ref.current
15
+ });
16
+ var syntheticEvent = createSyntheticEvent(event);
17
+ return syntheticEvent;
18
+ }
19
+ return null;
20
+ };
21
+ var createSyntheticEvent = exports.createSyntheticEvent = function createSyntheticEvent(event) {
22
+ var _isDefaultPrevented = false;
23
+ var _isPropagationStopped = false;
24
+ var preventDefault = function preventDefault() {
25
+ _isDefaultPrevented = true;
26
+ event.preventDefault();
27
+ };
28
+ var stopPropagation = function stopPropagation() {
29
+ _isPropagationStopped = true;
30
+ event.stopPropagation();
31
+ };
32
+ return {
33
+ nativeEvent: event,
34
+ currentTarget: event.currentTarget,
35
+ target: event.target,
36
+ bubbles: event.bubbles,
37
+ cancelable: event.cancelable,
38
+ defaultPrevented: event.defaultPrevented,
39
+ eventPhase: event.eventPhase,
40
+ isTrusted: event.isTrusted,
41
+ preventDefault: preventDefault,
42
+ isDefaultPrevented: function isDefaultPrevented() {
43
+ return _isDefaultPrevented;
44
+ },
45
+ stopPropagation: stopPropagation,
46
+ isPropagationStopped: function isPropagationStopped() {
47
+ return _isPropagationStopped;
48
+ },
49
+ persist: function persist() {},
50
+ timeStamp: event.timeStamp,
51
+ type: event.type
52
+ };
53
+ };
@@ -9,6 +9,12 @@ Object.defineProperty(exports, "ComboboxTarget", {
9
9
  return _ComboboxOld.ComboboxTarget;
10
10
  }
11
11
  });
12
+ Object.defineProperty(exports, "boundCombobox", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _ComboboxNew.boundCombobox;
16
+ }
17
+ });
12
18
  Object.defineProperty(exports, "comboboxDividerConfig", {
13
19
  enumerable: true,
14
20
  get: function get() {
@@ -20,7 +20,7 @@ var _Dropdown2 = /*#__PURE__*/require("./Dropdown.tokens");
20
20
  var _useKeyboardNavigation = /*#__PURE__*/require("./hooks/useKeyboardNavigation");
21
21
  var _useHashMaps3 = /*#__PURE__*/require("./hooks/useHashMaps");
22
22
  var _FloatingPopover = /*#__PURE__*/require("./FloatingPopover");
23
- var _excluded = ["items", "children", "placement", "offset", "closeOnOverlayClick", "onToggle", "size", "view", "itemRole", "className", "listWidth", "listHeight", "listOverflow", "closeOnSelect", "onHover", "onItemSelect", "onItemClick", "trigger", "variant", "hasArrow", "alwaysOpened", "portal"];
23
+ var _excluded = ["items", "children", "placement", "offset", "closeOnOverlayClick", "onToggle", "size", "view", "itemRole", "className", "listWidth", "listHeight", "listOverflow", "closeOnSelect", "onHover", "onItemSelect", "onItemClick", "trigger", "variant", "hasArrow", "portal"];
24
24
  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); }
25
25
  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; }
26
26
  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); }
@@ -66,8 +66,6 @@ var dropdownRoot = exports.dropdownRoot = function dropdownRoot(Root) {
66
66
  variant = _ref$variant === void 0 ? 'normal' : _ref$variant,
67
67
  _ref$hasArrow = _ref.hasArrow,
68
68
  hasArrow = _ref$hasArrow === void 0 ? true : _ref$hasArrow,
69
- _ref$alwaysOpened = _ref.alwaysOpened,
70
- alwaysOpened = _ref$alwaysOpened === void 0 ? false : _ref$alwaysOpened,
71
69
  portal = _ref.portal,
72
70
  rest = _objectWithoutProperties(_ref, _excluded);
73
71
  var _useReducer = (0, _react.useReducer)(_pathReducer.pathReducer, []),
@@ -88,7 +86,7 @@ var dropdownRoot = exports.dropdownRoot = function dropdownRoot(Root) {
88
86
 
89
87
  // Логика работы при клике за пределами выпадающего списка
90
88
  var targetRef = (0, _hooks.useOutsideClick)(function (event) {
91
- if (!isCurrentListOpen || !closeOnOverlayClick || alwaysOpened) {
89
+ if (!isCurrentListOpen || !closeOnOverlayClick) {
92
90
  return;
93
91
  }
94
92
  dispatchPath({
@@ -102,7 +100,7 @@ var dropdownRoot = exports.dropdownRoot = function dropdownRoot(Root) {
102
100
  }
103
101
  }, floatingPopoverRef);
104
102
  var handleGlobalToggle = function handleGlobalToggle(opened, event) {
105
- if (alwaysOpened || opened) {
103
+ if (opened) {
106
104
  dispatchPath({
107
105
  type: 'opened_first_level'
108
106
  });
@@ -131,7 +129,7 @@ var dropdownRoot = exports.dropdownRoot = function dropdownRoot(Root) {
131
129
  onItemClick: onItemClick
132
130
  }),
133
131
  onKeyDown = _useKeyNavigation.onKeyDown;
134
- var isCurrentListOpen = alwaysOpened || Boolean(path[0]);
132
+ var isCurrentListOpen = Boolean(path[0]);
135
133
  return /*#__PURE__*/_react["default"].createElement(Context.Provider, {
136
134
  value: {
137
135
  focusedPath: focusedPath,
@@ -3,10 +3,15 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.Combobox = void 0;
6
+ exports.ComboboxWithForm = exports.Combobox = void 0;
7
7
  var _engines = /*#__PURE__*/require("../../../../engines");
8
8
  var _ = /*#__PURE__*/require("../../../..");
9
+ var _getForm = /*#__PURE__*/require("../../../../components/Combobox/ComboboxNew/utils/getForm");
9
10
  var _Combobox = /*#__PURE__*/require("./Combobox.config");
10
11
  var mergedConfig = /*#__PURE__*/(0, _engines.mergeConfig)(_.comboboxNewConfig, _Combobox.config);
11
12
  var ComboboxComponent = /*#__PURE__*/(0, _engines.component)(mergedConfig);
12
- var Combobox = exports.Combobox = ComboboxComponent;
13
+ var Combobox = exports.Combobox = ComboboxComponent;
14
+ var ComboboxWithForm = exports.ComboboxWithForm = /*#__PURE__*/(0, _.boundCombobox)({
15
+ base: ComboboxComponent,
16
+ baseForm: /*#__PURE__*/(0, _getForm.getFormComponentGenerator)(ComboboxComponent)
17
+ });
@@ -1,11 +1,12 @@
1
- import React, { useState } from 'react';
1
+ import React, { useEffect, useRef, useState } from 'react';
2
2
  import type { ComponentProps } from 'react';
3
3
  import type { Meta, StoryObj } from '@storybook/react';
4
4
 
5
5
  import { WithTheme } from '../../../_helpers';
6
6
  import { IconDone } from '../../../../components/_Icon';
7
+ import { createEvent } from '../../../../components/Combobox/ComboboxNew/utils/syntheticEvent';
7
8
 
8
- import { Combobox } from './Combobox';
9
+ import { Combobox, ComboboxWithForm } from './Combobox';
9
10
 
10
11
  type StorySelectProps = ComponentProps<typeof Combobox> & {
11
12
  enableContentLeft?: boolean;
@@ -356,7 +357,7 @@ const SingleStory = (args: StorySelectProps) => {
356
357
 
357
358
  return (
358
359
  <div style={{ width: '400px' }}>
359
- <Combobox
360
+ <ComboboxWithForm
360
361
  {...args}
361
362
  items={items}
362
363
  value={value}
@@ -367,6 +368,24 @@ const SingleStory = (args: StorySelectProps) => {
367
368
  );
368
369
  };
369
370
 
371
+ const SingleFormStory = (args: StorySelectProps) => {
372
+ const handleChange = (event) => {
373
+ console.log(event);
374
+ };
375
+
376
+ return (
377
+ <div style={{ width: '400px' }}>
378
+ <ComboboxWithForm
379
+ {...args}
380
+ items={items}
381
+ formType
382
+ onChange={handleChange}
383
+ contentLeft={args.enableContentLeft ? <IconDone size="s" /> : undefined}
384
+ />
385
+ </div>
386
+ );
387
+ };
388
+
370
389
  export const Single: StoryObj<StorySelectProps> = {
371
390
  render: (args) => <SingleStory {...args} />,
372
391
  args: {
@@ -379,14 +398,27 @@ export const Single: StoryObj<StorySelectProps> = {
379
398
  },
380
399
  };
381
400
 
401
+ export const SingleForm: StoryObj<StorySelectProps> = {
402
+ render: (args) => <SingleFormStory {...args} />,
403
+ args: {
404
+ closeAfterSelect: true,
405
+ },
406
+ parameters: {
407
+ controls: {
408
+ exclude: ['isTargetAmount'],
409
+ },
410
+ },
411
+ };
412
+
382
413
  const MultipleStory = (args: StorySelectProps) => {
383
414
  const [value, setValue] = useState([]);
384
415
 
385
416
  return (
386
417
  <div style={{ width: '400px' }}>
387
- <Combobox
418
+ <ComboboxWithForm
388
419
  {...args}
389
420
  multiple
421
+ formType={false}
390
422
  items={items}
391
423
  value={value}
392
424
  onChange={setValue}
@@ -396,9 +428,35 @@ const MultipleStory = (args: StorySelectProps) => {
396
428
  );
397
429
  };
398
430
 
431
+ const MultipleStoryForm = (args: StorySelectProps) => {
432
+ const handleChange = (event) => {
433
+ console.log(event);
434
+ };
435
+
436
+ return (
437
+ <div style={{ width: '400px' }}>
438
+ <ComboboxWithForm
439
+ {...args}
440
+ multiple
441
+ formType
442
+ onChange={handleChange}
443
+ items={items}
444
+ contentLeft={args.enableContentLeft ? <IconDone size="s" /> : undefined}
445
+ />
446
+ </div>
447
+ );
448
+ };
449
+
399
450
  export const Multiple: StoryObj<StorySelectProps> = {
400
451
  render: (args) => <MultipleStory {...args} />,
401
452
  args: {
402
453
  closeAfterSelect: false,
403
454
  },
404
455
  };
456
+
457
+ export const MultipleForm: StoryObj<StorySelectProps> = {
458
+ render: (args) => <MultipleStoryForm {...args} />,
459
+ args: {
460
+ closeAfterSelect: false,
461
+ },
462
+ };
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ export var boundCombobox = function boundCombobox(_ref) {
3
+ var ComboboxBase = _ref.base,
4
+ ComboboxBaseForm = _ref.baseForm;
5
+ return function (rest) {
6
+ if (rest.formType) {
7
+ return /*#__PURE__*/React.createElement(ComboboxBaseForm, rest);
8
+ }
9
+ if (!rest.formType) {
10
+ return /*#__PURE__*/React.createElement(ComboboxBase, rest);
11
+ }
12
+ return null;
13
+ };
14
+ };
@@ -1,2 +1,3 @@
1
1
  export { comboboxConfig, comboboxRoot } from './Combobox';
2
- export { tokens as comboboxTokens } from './Combobox.tokens';
2
+ export { tokens as comboboxTokens } from './Combobox.tokens';
3
+ export { boundCombobox } from './Combobox.boundler';