@ssa-ui-kit/core 2.23.1 → 2.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,3 @@
1
1
  export declare const DrawerContent: import("react").ForwardRefExoticComponent<{
2
2
  children: React.ReactNode;
3
- } & import("react").RefAttributes<HTMLDivElement>>;
3
+ } & import("react").HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
@@ -1,7 +1,8 @@
1
1
  import { TabProps, TabBarContextProps } from './types';
2
2
  export declare const TabBarContext: import("react").Context<TabBarContextProps>;
3
3
  export declare const useTabBarContext: () => TabBarContextProps;
4
- export declare const TabBarContextProvider: ({ initialTab, children, }: {
4
+ export declare const TabBarContextProvider: ({ initialTab, selectedTabId, children, }: {
5
5
  initialTab?: TabProps;
6
+ selectedTabId?: TabProps["tabId"];
6
7
  children: React.ReactNode;
7
8
  }) => import("@emotion/react/jsx-runtime").JSX.Element;
@@ -23,5 +23,8 @@ export interface TabBarProps {
23
23
  }
24
24
  export interface TabBarContextProps {
25
25
  activeTab?: TabProps;
26
+ activeTabId?: TabProps['tabId'];
27
+ selectedTabId?: TabProps['tabId'];
26
28
  setActiveTab: (tab?: TabProps) => void;
29
+ setActiveTabId: (tabId?: number | string) => void;
27
30
  }
@@ -8,4 +8,4 @@ import { TypeaheadProps } from './types';
8
8
  * Aria attributes are set according to
9
9
  * https://www.w3.org/WAI/ARIA/apg/patterns/combobox/examples/combobox-select-only/
10
10
  **/
11
- export declare const Typeahead: ({ name, label, selectedItems, defaultSelectedItems, isOpen, isDisabled, isMultiple, children, className, startIcon, endIcon, error, success, helperText, validationSchema, placeholder, startIconClassName, endIconClassName, optionsClassName, wrapperClassName, width, onChange, onEmptyChange, onClearAll, onRemoveSelectedClick, renderOption, }: TypeaheadProps) => import("@emotion/react/jsx-runtime").JSX.Element;
11
+ export declare const Typeahead: ({ name, label, selectedItems, defaultSelectedItems, isOpen, isDisabled, isMultiple, children, className, startIcon, endIcon, error, success, helperText, validationSchema, placeholder, startIconClassName, endIconClassName, optionsClassName, wrapperClassName, filterOptions, width, onChange, onEmptyChange, onClearAll, onRemoveSelectedClick, renderOption, }: TypeaheadProps) => import("@emotion/react/jsx-runtime").JSX.Element;
package/dist/index.js CHANGED
@@ -7880,30 +7880,30 @@ const defaultTab = {
7880
7880
  };
7881
7881
  const TabBarContext = /*#__PURE__*/(0,external_react_namespaceObject.createContext)({
7882
7882
  activeTab: defaultTab,
7883
+ activeTabId: undefined,
7884
+ selectedTabId: undefined,
7883
7885
  setActiveTab() {
7884
7886
  /* default no-op */
7887
+ },
7888
+ setActiveTabId() {
7889
+ /* default no-op */
7885
7890
  }
7886
7891
  });
7887
7892
  const useTabBarContext = () => (0,external_react_namespaceObject.useContext)(TabBarContext);
7888
- const useTabBar = initialTab => {
7889
- const [tab, setTab] = (0,external_react_namespaceObject.useState)(initialTab);
7890
- return {
7891
- activeTab: tab,
7892
- setActiveTab: tab => setTab(tab)
7893
- };
7894
- };
7895
7893
  const TabBarContextProvider = ({
7896
7894
  initialTab = defaultTab,
7895
+ selectedTabId = defaultTab.tabId,
7897
7896
  children
7898
7897
  }) => {
7899
- const {
7900
- activeTab,
7901
- setActiveTab
7902
- } = useTabBar(initialTab);
7898
+ const [activeTab, setActiveTab] = (0,external_react_namespaceObject.useState)(initialTab);
7899
+ const [activeTabId, setActiveTabId] = (0,external_react_namespaceObject.useState)(initialTab.tabId);
7903
7900
  return (0,jsx_runtime_namespaceObject.jsx)(TabBarContext.Provider, {
7904
7901
  value: {
7905
7902
  activeTab,
7906
- setActiveTab
7903
+ activeTabId,
7904
+ selectedTabId,
7905
+ setActiveTab,
7906
+ setActiveTabId
7907
7907
  },
7908
7908
  children: children
7909
7909
  });
@@ -7930,27 +7930,42 @@ const TabBar = ({
7930
7930
  }) => {
7931
7931
  const {
7932
7932
  activeTab,
7933
- setActiveTab
7933
+ selectedTabId,
7934
+ setActiveTab,
7935
+ setActiveTabId
7934
7936
  } = useTabBarContext();
7935
- const activeTabId = activeTab?.tabId;
7937
+ const setSelectedTabId = tabId => {
7938
+ if (tabId && activeTab?.tabId !== tabId) {
7939
+ external_react_namespaceObject.Children.forEach(children, child => {
7940
+ if (/*#__PURE__*/(0,external_react_namespaceObject.isValidElement)(child) && child.props.tabId === tabId) {
7941
+ const {
7942
+ renderContent,
7943
+ ...rest
7944
+ } = child.props;
7945
+ setActiveTab({
7946
+ tabId: rest.tabId,
7947
+ renderContent: renderContent.bind(null, rest)
7948
+ });
7949
+ }
7950
+ });
7951
+ }
7952
+ setActiveTabId(tabId);
7953
+ };
7954
+ (0,external_react_namespaceObject.useEffect)(() => {
7955
+ if (!Number.isNaN(selectedTabId) && activeTab?.tabId !== selectedTabId) {
7956
+ setSelectedTabId(selectedTabId);
7957
+ }
7958
+ }, [selectedTabId]);
7936
7959
  return (0,jsx_runtime_namespaceObject.jsx)(TabBarBase, {
7937
7960
  role: "tablist",
7938
7961
  className: className,
7939
7962
  children: external_react_namespaceObject.Children.map(children, child => {
7940
7963
  // istanbul ignore else
7941
7964
  if (/*#__PURE__*/(0,external_react_namespaceObject.isValidElement)(child)) {
7942
- const {
7943
- renderContent,
7944
- ...rest
7945
- } = child.props;
7946
- const tabId = rest.tabId;
7947
7965
  return /*#__PURE__*/(0,external_react_namespaceObject.cloneElement)(child, {
7948
- key: tabId,
7949
- isActive: activeTabId === tabId,
7950
- onClick: () => activeTabId !== tabId && setActiveTab({
7951
- tabId,
7952
- renderContent: renderContent.bind(null, rest)
7953
- })
7966
+ key: child.props.tabId,
7967
+ isActive: activeTab?.tabId === child.props.tabId,
7968
+ onClick: () => setSelectedTabId(child.props.tabId)
7954
7969
  });
7955
7970
  }
7956
7971
  })
@@ -19359,6 +19374,7 @@ const Typeahead = ({
19359
19374
  endIconClassName,
19360
19375
  optionsClassName,
19361
19376
  wrapperClassName,
19377
+ filterOptions,
19362
19378
  width = 300,
19363
19379
  onChange,
19364
19380
  onEmptyChange,
@@ -19384,6 +19400,7 @@ const Typeahead = ({
19384
19400
  success,
19385
19401
  validationSchema,
19386
19402
  placeholder,
19403
+ filterOptions,
19387
19404
  onChange,
19388
19405
  onEmptyChange,
19389
19406
  renderOption,