@os-design/core 1.0.111 → 1.0.115

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.
@@ -113,7 +113,7 @@ var InputSearch = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
113
113
  inputRef.current.focus();
114
114
  },
115
115
  "aria-label": locale.clearLabel
116
- }, /*#__PURE__*/_react["default"].createElement(_icons.Close, null))), right),
116
+ }, /*#__PURE__*/_react["default"].createElement(_icons.CloseCircle, null))), right),
117
117
  value: forwardedValue,
118
118
  onChange: setForwardedValue,
119
119
  role: "searchbox",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/InputSearch/index.tsx"],"names":["fadeIn","keyframes","ClearButton","Button","p","theme","transitionDelay","InputSearch","ref","locale","defaultLocale","value","defaultValue","onChange","disabled","left","leftHasPadding","right","rest","inputRef","mergedInputRef","forwardedValue","setForwardedValue","buttonIconScaleFactor","current","focus","clearLabel","displayName"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,IAAMA,MAAM,OAAGC,iBAAH,sHAAZ;AAKA,IAAMC,WAAW,GAAG,wBAAOC,kBAAP,CAAH,qGACFH,MADE,EACQ,UAACI,CAAD;AAAA,SAAOA,CAAC,CAACC,KAAF,CAAQC,eAAf;AAAA,CADR,CAAjB;AAIA;AACA;AACA;;AACA,IAAMC,WAAW,gBAAG,uBAClB,gBAYEC,GAZF,EAaK;AAAA,yBAXDC,MAWC;AAAA,MAXDA,MAWC,4BAXQC,yBAWR;AAAA,MAVDC,KAUC,QAVDA,KAUC;AAAA,MATDC,YASC,QATDA,YASC;AAAA,2BARDC,QAQC;AAAA,MARDA,QAQC,8BARU,YAAM,CAAE,CAQlB;AAAA,MAPDC,QAOC,QAPDA,QAOC;AAAA,MANDC,IAMC,QANDA,IAMC;AAAA,iCALDC,cAKC;AAAA,MALDA,cAKC,oCALgB,IAKhB;AAAA,MAJDC,KAIC,QAJDA,KAIC;AAAA,MAHEC,IAGF;;AACH,yBAAmC,4BAAgBV,GAAhB,CAAnC;AAAA;AAAA,MAAOW,QAAP;AAAA,MAAiBC,cAAjB;;AACA,2BAA4C,8BAAkB;AAC5DT,IAAAA,KAAK,EAALA,KAD4D;AAE5DC,IAAAA,YAAY,EAAZA,YAF4D;AAG5DC,IAAAA,QAAQ,EAARA;AAH4D,GAAlB,CAA5C;AAAA;AAAA,MAAOQ,cAAP;AAAA,MAAuBC,iBAAvB;;AAMA,sBACE,gCAAC,iBAAD;AACE,IAAA,IAAI,EAAC,MADP;AAEE,IAAA,IAAI,eACF,+EACE,gCAAC,aAAD;AAAQ,MAAA,GAAG,EAAC;AAAZ,MADF,EAEGP,IAFH,CAHJ;AAQE,IAAA,cAAc,EAAEC,cARlB;AASE,IAAA,KAAK,eACH,kEACG,CAAC,CAACK,cAAF,iBACC,gCAAC,uBAAD;AAAgB,MAAA,SAAS,EAAE;AAAEE,QAAAA,qBAAqB,EAAE;AAAzB;AAA3B,oBACE,gCAAC,WAAD;AACE,MAAA,GAAG,EAAC,cADN;AAEE,MAAA,IAAI,EAAC,OAFP;AAGE,MAAA,IAAI,EAAC,OAHP;AAIE,MAAA,IAAI,EAAC,OAJP;AAKE,MAAA,QAAQ,EAAET,QALZ;AAME,MAAA,OAAO,EAAE,mBAAM;AACbQ,QAAAA,iBAAiB,CAAC,EAAD,CAAjB;AACA,YAAI,CAACH,QAAQ,CAACK,OAAd,EAAuB;AACvBL,QAAAA,QAAQ,CAACK,OAAT,CAAiBC,KAAjB;AACD,OAVH;AAWE,oBAAYhB,MAAM,CAACiB;AAXrB,oBAaE,gCAAC,YAAD,OAbF,CADF,CAFJ,EAoBGT,KApBH,CAVJ;AAiCE,IAAA,KAAK,EAAEI,cAjCT;AAkCE,IAAA,QAAQ,EAAEC,iBAlCZ;AAmCE,IAAA,IAAI,EAAC,WAnCP;AAoCE,IAAA,QAAQ,EAAER;AApCZ,KAqCMI,IArCN;AAsCE,IAAA,GAAG,EAAEE;AAtCP,KADF;AA0CD,CAhEiB,CAApB;AAmEAb,WAAW,CAACoB,WAAZ,GAA0B,aAA1B;eAEepB,W","sourcesContent":["import React, { forwardRef } from 'react';\nimport { Close, Search } from '@os-design/icons';\nimport styled from '@emotion/styled';\nimport { keyframes } from '@emotion/react';\nimport { useForwardedRef, useForwardedState } from '@os-design/utils';\nimport { ThemeOverrider } from '@os-design/theming';\nimport Input, { InputProps } from '../Input';\nimport Button from '../Button';\nimport defaultLocale, { InputSearchLocale } from './utils/defaultLocale';\n\nexport interface InputSearchProps\n extends Omit<InputProps, 'type' | 'onChange'> {\n /**\n * The locale.\n * @default undefined\n */\n locale?: InputSearchLocale;\n /**\n * The input value.\n * @default undefined\n */\n value?: string;\n /**\n * The default value.\n * @default undefined\n */\n defaultValue?: string;\n /**\n * The change event handler.\n * @default undefined\n */\n onChange?: (value: string) => void;\n}\n\nconst fadeIn = keyframes`\n from { opacity: 0; }\n to { opacity: 1; }\n`;\n\nconst ClearButton = styled(Button)`\n animation: ${fadeIn} ${(p) => p.theme.transitionDelay}ms;\n`;\n\n/**\n * The search input.\n */\nconst InputSearch = forwardRef<HTMLInputElement, InputSearchProps>(\n (\n {\n locale = defaultLocale,\n value,\n defaultValue,\n onChange = () => {},\n disabled,\n left,\n leftHasPadding = true,\n right,\n ...rest\n },\n ref\n ) => {\n const [inputRef, mergedInputRef] = useForwardedRef(ref);\n const [forwardedValue, setForwardedValue] = useForwardedState({\n value,\n defaultValue,\n onChange,\n });\n\n return (\n <Input\n type='text'\n left={\n <>\n <Search key='search-icon' />\n {left}\n </>\n }\n leftHasPadding={leftHasPadding}\n right={\n <>\n {!!forwardedValue && (\n <ThemeOverrider overrides={{ buttonIconScaleFactor: 1.2 }}>\n <ClearButton\n key='clear-button'\n type='ghost'\n wide='never'\n size='small'\n disabled={disabled}\n onClick={() => {\n setForwardedValue('');\n if (!inputRef.current) return;\n inputRef.current.focus();\n }}\n aria-label={locale.clearLabel}\n >\n <Close />\n </ClearButton>\n </ThemeOverrider>\n )}\n {right}\n </>\n }\n value={forwardedValue}\n onChange={setForwardedValue}\n role='searchbox'\n disabled={disabled}\n {...rest}\n ref={mergedInputRef}\n />\n );\n }\n);\n\nInputSearch.displayName = 'InputSearch';\n\nexport default InputSearch;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/InputSearch/index.tsx"],"names":["fadeIn","keyframes","ClearButton","Button","p","theme","transitionDelay","InputSearch","ref","locale","defaultLocale","value","defaultValue","onChange","disabled","left","leftHasPadding","right","rest","inputRef","mergedInputRef","forwardedValue","setForwardedValue","buttonIconScaleFactor","current","focus","clearLabel","displayName"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,IAAMA,MAAM,OAAGC,iBAAH,sHAAZ;AAKA,IAAMC,WAAW,GAAG,wBAAOC,kBAAP,CAAH,qGACFH,MADE,EACQ,UAACI,CAAD;AAAA,SAAOA,CAAC,CAACC,KAAF,CAAQC,eAAf;AAAA,CADR,CAAjB;AAIA;AACA;AACA;;AACA,IAAMC,WAAW,gBAAG,uBAClB,gBAYEC,GAZF,EAaK;AAAA,yBAXDC,MAWC;AAAA,MAXDA,MAWC,4BAXQC,yBAWR;AAAA,MAVDC,KAUC,QAVDA,KAUC;AAAA,MATDC,YASC,QATDA,YASC;AAAA,2BARDC,QAQC;AAAA,MARDA,QAQC,8BARU,YAAM,CAAE,CAQlB;AAAA,MAPDC,QAOC,QAPDA,QAOC;AAAA,MANDC,IAMC,QANDA,IAMC;AAAA,iCALDC,cAKC;AAAA,MALDA,cAKC,oCALgB,IAKhB;AAAA,MAJDC,KAIC,QAJDA,KAIC;AAAA,MAHEC,IAGF;;AACH,yBAAmC,4BAAgBV,GAAhB,CAAnC;AAAA;AAAA,MAAOW,QAAP;AAAA,MAAiBC,cAAjB;;AACA,2BAA4C,8BAAkB;AAC5DT,IAAAA,KAAK,EAALA,KAD4D;AAE5DC,IAAAA,YAAY,EAAZA,YAF4D;AAG5DC,IAAAA,QAAQ,EAARA;AAH4D,GAAlB,CAA5C;AAAA;AAAA,MAAOQ,cAAP;AAAA,MAAuBC,iBAAvB;;AAMA,sBACE,gCAAC,iBAAD;AACE,IAAA,IAAI,EAAC,MADP;AAEE,IAAA,IAAI,eACF,+EACE,gCAAC,aAAD;AAAQ,MAAA,GAAG,EAAC;AAAZ,MADF,EAEGP,IAFH,CAHJ;AAQE,IAAA,cAAc,EAAEC,cARlB;AASE,IAAA,KAAK,eACH,kEACG,CAAC,CAACK,cAAF,iBACC,gCAAC,uBAAD;AAAgB,MAAA,SAAS,EAAE;AAAEE,QAAAA,qBAAqB,EAAE;AAAzB;AAA3B,oBACE,gCAAC,WAAD;AACE,MAAA,GAAG,EAAC,cADN;AAEE,MAAA,IAAI,EAAC,OAFP;AAGE,MAAA,IAAI,EAAC,OAHP;AAIE,MAAA,IAAI,EAAC,OAJP;AAKE,MAAA,QAAQ,EAAET,QALZ;AAME,MAAA,OAAO,EAAE,mBAAM;AACbQ,QAAAA,iBAAiB,CAAC,EAAD,CAAjB;AACA,YAAI,CAACH,QAAQ,CAACK,OAAd,EAAuB;AACvBL,QAAAA,QAAQ,CAACK,OAAT,CAAiBC,KAAjB;AACD,OAVH;AAWE,oBAAYhB,MAAM,CAACiB;AAXrB,oBAaE,gCAAC,kBAAD,OAbF,CADF,CAFJ,EAoBGT,KApBH,CAVJ;AAiCE,IAAA,KAAK,EAAEI,cAjCT;AAkCE,IAAA,QAAQ,EAAEC,iBAlCZ;AAmCE,IAAA,IAAI,EAAC,WAnCP;AAoCE,IAAA,QAAQ,EAAER;AApCZ,KAqCMI,IArCN;AAsCE,IAAA,GAAG,EAAEE;AAtCP,KADF;AA0CD,CAhEiB,CAApB;AAmEAb,WAAW,CAACoB,WAAZ,GAA0B,aAA1B;eAEepB,W","sourcesContent":["import React, { forwardRef } from 'react';\nimport { Search, CloseCircle } from '@os-design/icons';\nimport styled from '@emotion/styled';\nimport { keyframes } from '@emotion/react';\nimport { useForwardedRef, useForwardedState } from '@os-design/utils';\nimport { ThemeOverrider } from '@os-design/theming';\nimport Input, { InputProps } from '../Input';\nimport Button from '../Button';\nimport defaultLocale, { InputSearchLocale } from './utils/defaultLocale';\n\nexport interface InputSearchProps\n extends Omit<InputProps, 'type' | 'onChange'> {\n /**\n * The locale.\n * @default undefined\n */\n locale?: InputSearchLocale;\n /**\n * The input value.\n * @default undefined\n */\n value?: string;\n /**\n * The default value.\n * @default undefined\n */\n defaultValue?: string;\n /**\n * The change event handler.\n * @default undefined\n */\n onChange?: (value: string) => void;\n}\n\nconst fadeIn = keyframes`\n from { opacity: 0; }\n to { opacity: 1; }\n`;\n\nconst ClearButton = styled(Button)`\n animation: ${fadeIn} ${(p) => p.theme.transitionDelay}ms;\n`;\n\n/**\n * The search input.\n */\nconst InputSearch = forwardRef<HTMLInputElement, InputSearchProps>(\n (\n {\n locale = defaultLocale,\n value,\n defaultValue,\n onChange = () => {},\n disabled,\n left,\n leftHasPadding = true,\n right,\n ...rest\n },\n ref\n ) => {\n const [inputRef, mergedInputRef] = useForwardedRef(ref);\n const [forwardedValue, setForwardedValue] = useForwardedState({\n value,\n defaultValue,\n onChange,\n });\n\n return (\n <Input\n type='text'\n left={\n <>\n <Search key='search-icon' />\n {left}\n </>\n }\n leftHasPadding={leftHasPadding}\n right={\n <>\n {!!forwardedValue && (\n <ThemeOverrider overrides={{ buttonIconScaleFactor: 1.2 }}>\n <ClearButton\n key='clear-button'\n type='ghost'\n wide='never'\n size='small'\n disabled={disabled}\n onClick={() => {\n setForwardedValue('');\n if (!inputRef.current) return;\n inputRef.current.focus();\n }}\n aria-label={locale.clearLabel}\n >\n <CloseCircle />\n </ClearButton>\n </ThemeOverrider>\n )}\n {right}\n </>\n }\n value={forwardedValue}\n onChange={setForwardedValue}\n role='searchbox'\n disabled={disabled}\n {...rest}\n ref={mergedInputRef}\n />\n );\n }\n);\n\nInputSearch.displayName = 'InputSearch';\n\nexport default InputSearch;\n"],"file":"index.js"}
@@ -91,7 +91,8 @@ var List = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
91
91
  itemRenderer = _ref$itemRenderer === void 0 ? function () {
92
92
  return null;
93
93
  } : _ref$itemRenderer,
94
- outerRef = _ref.outerRef;
94
+ outerRef = _ref.outerRef,
95
+ innerRef = _ref.innerRef;
95
96
 
96
97
  var _useForwardedRef = (0, _utils.useForwardedRef)(ref),
97
98
  _useForwardedRef2 = _slicedToArray(_useForwardedRef, 2),
@@ -160,7 +161,8 @@ var List = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
160
161
  },
161
162
  overscanCount: overscanCount,
162
163
  innerElementType: InnerElement,
163
- outerRef: outerRef
164
+ outerRef: outerRef,
165
+ innerRef: innerRef
164
166
  }, function (_ref4) {
165
167
  var style = _ref4.style,
166
168
  rest = _objectWithoutProperties(_ref4, _excluded2);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/List/index.tsx"],"names":["List","ref","itemCount","itemData","itemHeight","threshold","overscanCount","paddingTop","paddingBottom","onLoadNext","itemRenderer","outerRef","listRef","mergedListRef","size","fontSize","document","body","LayoutContext","hasNavigation","hasPageHeader","theme","isMinMd","safeAreaInset","itemSize","paddingTopSize","pageHeaderHeight","paddingBottomSize","navigationTabHeight","bottom","scrollLoadNextHandler","height","scrollHandler","top","current","scrollTo","InnerElement","innerElementRef","style","rest","parseFloat","displayName","toString"],"mappings":"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","sourcesContent":["import React, { forwardRef, useCallback, useContext, useMemo } from 'react';\nimport {\n FixedSizeList,\n FixedSizeListProps,\n ListChildComponentProps,\n} from 'react-window';\nimport {\n useForwardedRef,\n useSize,\n useFontSize,\n useSafeAreaInset,\n} from '@os-design/utils';\nimport { useTheme } from '@os-design/theming';\nimport { useIsMinWidth } from '@os-design/media';\nimport WindowScroller, { ScrollPosition } from './WindowScroller';\nimport useRWLoadNext from './utils/useRWLoadNext';\nimport LayoutContext from '../Layout/LayoutContext';\n\nexport interface ListProps {\n /**\n * Total count of items.\n */\n itemCount: number;\n /**\n * Array of items.\n */\n itemData?: any; // eslint-disable-line @typescript-eslint/no-explicit-any\n /**\n * The item height in em.\n * @default 4\n */\n itemHeight?: number;\n /**\n * A threshold N means that the onLoadNext function calls when a user scrolls all items except N.\n * @default 10\n */\n threshold?: number;\n /**\n * Defines how many items outside of the visible \"window\" to render at all times.\n * @default 10\n */\n overscanCount?: number;\n /**\n * The top padding in em.\n * @default 0\n */\n paddingTop?: number;\n /**\n * The bottom padding in em.\n * @default 0\n */\n paddingBottom?: number;\n /**\n * The callback to load more items.\n * @default undefined\n */\n onLoadNext?: () => void;\n /**\n * The callback to render items.\n * @default () => null\n */\n itemRenderer?: React.FC<ListChildComponentProps>;\n /**\n * Ref to attach to the outer container element.\n * @default undefined\n */\n outerRef?: FixedSizeListProps['outerRef'];\n}\n\n/**\n * Virtualized list.\n * Used the react-window library.\n */\nconst List = forwardRef<FixedSizeList, ListProps>(\n (\n {\n itemCount,\n itemData,\n itemHeight = 4,\n threshold = 10,\n overscanCount = 10,\n paddingTop = 0,\n paddingBottom = 0,\n onLoadNext = () => {},\n itemRenderer = () => null,\n outerRef,\n },\n ref\n ) => {\n const [listRef, mergedListRef] = useForwardedRef(ref);\n const size = useSize();\n const fontSize = useFontSize(document.body);\n const { hasNavigation, hasPageHeader } = useContext(LayoutContext);\n const { theme } = useTheme();\n const isMinMd = useIsMinWidth('md');\n const safeAreaInset = useSafeAreaInset();\n\n const itemSize = useMemo(\n () => itemHeight * fontSize,\n [itemHeight, fontSize]\n );\n\n const paddingTopSize = useMemo(\n () =>\n ((hasPageHeader ? theme.pageHeaderHeight[isMinMd ? 1 : 0] : 0) +\n paddingTop) *\n fontSize,\n [hasPageHeader, theme.pageHeaderHeight, isMinMd, paddingTop, fontSize]\n );\n\n const paddingBottomSize = useMemo(\n () =>\n ((hasNavigation && !isMinMd ? theme.navigationTabHeight : 0) +\n paddingBottom) *\n fontSize +\n safeAreaInset.bottom,\n [\n hasNavigation,\n theme.navigationTabHeight,\n isMinMd,\n paddingBottom,\n fontSize,\n safeAreaInset.bottom,\n ]\n );\n\n const scrollLoadNextHandler = useRWLoadNext({\n itemCount,\n threshold,\n itemSize,\n paddingTop: paddingTopSize,\n height: size.height,\n onLoadNext,\n });\n\n const scrollHandler = useCallback(\n ({ top }: ScrollPosition) => {\n // Set the scroll position to the list\n if (listRef.current) listRef.current.scrollTo(top);\n scrollLoadNextHandler(top);\n },\n [listRef, scrollLoadNextHandler]\n );\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const InnerElement = forwardRef<HTMLDivElement, any>(\n ({ style, ...rest }, innerElementRef) => (\n <div\n ref={innerElementRef}\n style={{\n ...style,\n height: `${\n parseFloat(style.height) + paddingTopSize + paddingBottomSize\n }px`,\n }}\n {...rest}\n />\n )\n );\n InnerElement.displayName = 'InnerElement';\n\n return (\n <WindowScroller onScroll={scrollHandler}>\n <FixedSizeList\n ref={mergedListRef}\n width='100%'\n height={size.height}\n itemData={itemData}\n itemSize={itemSize}\n itemCount={itemCount}\n style={{ height: '100% important!' }}\n overscanCount={overscanCount}\n innerElementType={InnerElement}\n outerRef={outerRef}\n >\n {({ style, ...rest }) =>\n itemRenderer({\n style: {\n ...style,\n top: `${\n parseFloat(style.top ? style.top.toString() : '0') +\n paddingTopSize\n }px`,\n },\n ...rest,\n })\n }\n </FixedSizeList>\n </WindowScroller>\n );\n }\n);\n\nList.displayName = 'List';\n\nexport { default as WindowScroller } from './WindowScroller';\nexport { default as useRWLoadNext } from './utils/useRWLoadNext';\n\nexport default List;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/List/index.tsx"],"names":["List","ref","itemCount","itemData","itemHeight","threshold","overscanCount","paddingTop","paddingBottom","onLoadNext","itemRenderer","outerRef","innerRef","listRef","mergedListRef","size","fontSize","document","body","LayoutContext","hasNavigation","hasPageHeader","theme","isMinMd","safeAreaInset","itemSize","paddingTopSize","pageHeaderHeight","paddingBottomSize","navigationTabHeight","bottom","scrollLoadNextHandler","height","scrollHandler","top","current","scrollTo","InnerElement","innerElementRef","style","rest","parseFloat","displayName","toString"],"mappings":"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","sourcesContent":["import React, { forwardRef, useCallback, useContext, useMemo } from 'react';\nimport {\n FixedSizeList,\n FixedSizeListProps,\n ListChildComponentProps,\n} from 'react-window';\nimport {\n useForwardedRef,\n useSize,\n useFontSize,\n useSafeAreaInset,\n} from '@os-design/utils';\nimport { useTheme } from '@os-design/theming';\nimport { useIsMinWidth } from '@os-design/media';\nimport WindowScroller, { ScrollPosition } from './WindowScroller';\nimport useRWLoadNext from './utils/useRWLoadNext';\nimport LayoutContext from '../Layout/LayoutContext';\n\nexport interface ListProps {\n /**\n * Total count of items.\n */\n itemCount: number;\n /**\n * Array of items.\n */\n itemData?: any; // eslint-disable-line @typescript-eslint/no-explicit-any\n /**\n * The item height in em.\n * @default 4\n */\n itemHeight?: number;\n /**\n * A threshold N means that the onLoadNext function calls when a user scrolls all items except N.\n * @default 10\n */\n threshold?: number;\n /**\n * Defines how many items outside of the visible \"window\" to render at all times.\n * @default 10\n */\n overscanCount?: number;\n /**\n * The top padding in em.\n * @default 0\n */\n paddingTop?: number;\n /**\n * The bottom padding in em.\n * @default 0\n */\n paddingBottom?: number;\n /**\n * The callback to load more items.\n * @default undefined\n */\n onLoadNext?: () => void;\n /**\n * The callback to render items.\n * @default () => null\n */\n itemRenderer?: React.FC<ListChildComponentProps>;\n /**\n * Ref to attach to the outer container element.\n * @default undefined\n */\n outerRef?: FixedSizeListProps['outerRef'];\n /**\n * Ref to attach to the inner container element.\n * @default undefined\n */\n innerRef?: FixedSizeListProps['innerRef'];\n}\n\n/**\n * Virtualized list.\n * Used the react-window library.\n */\nconst List = forwardRef<FixedSizeList, ListProps>(\n (\n {\n itemCount,\n itemData,\n itemHeight = 4,\n threshold = 10,\n overscanCount = 10,\n paddingTop = 0,\n paddingBottom = 0,\n onLoadNext = () => {},\n itemRenderer = () => null,\n outerRef,\n innerRef,\n },\n ref\n ) => {\n const [listRef, mergedListRef] = useForwardedRef(ref);\n const size = useSize();\n const fontSize = useFontSize(document.body);\n const { hasNavigation, hasPageHeader } = useContext(LayoutContext);\n const { theme } = useTheme();\n const isMinMd = useIsMinWidth('md');\n const safeAreaInset = useSafeAreaInset();\n\n const itemSize = useMemo(\n () => itemHeight * fontSize,\n [itemHeight, fontSize]\n );\n\n const paddingTopSize = useMemo(\n () =>\n ((hasPageHeader ? theme.pageHeaderHeight[isMinMd ? 1 : 0] : 0) +\n paddingTop) *\n fontSize,\n [hasPageHeader, theme.pageHeaderHeight, isMinMd, paddingTop, fontSize]\n );\n\n const paddingBottomSize = useMemo(\n () =>\n ((hasNavigation && !isMinMd ? theme.navigationTabHeight : 0) +\n paddingBottom) *\n fontSize +\n safeAreaInset.bottom,\n [\n hasNavigation,\n theme.navigationTabHeight,\n isMinMd,\n paddingBottom,\n fontSize,\n safeAreaInset.bottom,\n ]\n );\n\n const scrollLoadNextHandler = useRWLoadNext({\n itemCount,\n threshold,\n itemSize,\n paddingTop: paddingTopSize,\n height: size.height,\n onLoadNext,\n });\n\n const scrollHandler = useCallback(\n ({ top }: ScrollPosition) => {\n // Set the scroll position to the list\n if (listRef.current) listRef.current.scrollTo(top);\n scrollLoadNextHandler(top);\n },\n [listRef, scrollLoadNextHandler]\n );\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const InnerElement = forwardRef<HTMLDivElement, any>(\n ({ style, ...rest }, innerElementRef) => (\n <div\n ref={innerElementRef}\n style={{\n ...style,\n height: `${\n parseFloat(style.height) + paddingTopSize + paddingBottomSize\n }px`,\n }}\n {...rest}\n />\n )\n );\n InnerElement.displayName = 'InnerElement';\n\n return (\n <WindowScroller onScroll={scrollHandler}>\n <FixedSizeList\n ref={mergedListRef}\n width='100%'\n height={size.height}\n itemData={itemData}\n itemSize={itemSize}\n itemCount={itemCount}\n style={{ height: '100% important!' }}\n overscanCount={overscanCount}\n innerElementType={InnerElement}\n outerRef={outerRef}\n innerRef={innerRef}\n >\n {({ style, ...rest }) =>\n itemRenderer({\n style: {\n ...style,\n top: `${\n parseFloat(style.top ? style.top.toString() : '0') +\n paddingTopSize\n }px`,\n },\n ...rest,\n })\n }\n </FixedSizeList>\n </WindowScroller>\n );\n }\n);\n\nList.displayName = 'List';\n\nexport { default as WindowScroller } from './WindowScroller';\nexport { default as useRWLoadNext } from './utils/useRWLoadNext';\n\nexport default List;\n"],"file":"index.js"}
@@ -84,7 +84,7 @@ var notHasSubtitleStyles = function notHasSubtitleStyles(p) {
84
84
  return !p.hasSubtitle && (0, _react2.css)(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n font-size: ", "em;\n "])), p.theme.sizes.large);
85
85
  };
86
86
 
87
- var Title = (0, _styled["default"])('h1', (0, _utils.omitEmotionProps)('hasSubtitle'))(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n margin: 0;\n font-size: 1em;\n font-weight: 500;\n line-height: 1.5;\n ", ";\n ", ";\n"])), notHasSubtitleStyles, _styles.ellipsisStyles);
87
+ var Title = (0, _styled["default"])('h1', (0, _utils.omitEmotionProps)('hasSubtitle'))(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n margin: 0;\n font-size: 1em;\n font-weight: 500;\n line-height: 1.2;\n ", ";\n ", ";\n"])), notHasSubtitleStyles, _styles.ellipsisStyles);
88
88
 
89
89
  var Subtitle = _styled["default"].div(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n font-size: ", "em;\n color: ", ";\n line-height: 1;\n margin-top: 0.2em;\n ", ";\n"])), function (p) {
90
90
  return p.theme.sizes.small;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/PageHeader/index.tsx"],"names":["getReducedPadding","p","isMinSm","i","padding","theme","horizontalPadding","buttonPaddingHorizontal","horizontalPaddingStyles","reducedPadding","reducedPaddingSm","css","leftIsGhostButton","rightIsGhostButton","m","min","sm","hasNavigationIndentStyles","hasNavigationIndent","md","navigationSideWidth","PageHeaderContainer","pageHeaderHeight","pageHeaderColorBg","pageHeaderColorText","pageHeaderColorBorder","BackButton","Button","Content","styled","div","notHasSubtitleStyles","hasSubtitle","sizes","large","Title","ellipsisStyles","Subtitle","small","pageHeaderSubtitleColorText","Addon","LeftAddon","pageHeaderAddonPaddingHorizontal","RightAddon","PageHeader","ref","title","subtitle","left","right","onBack","locale","defaultLocale","rest","LayoutContext","hasNavigation","t","pageHeaderButtonPaddingHorizontal","backLabel","displayName"],"mappings":"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","sourcesContent":["import React, { forwardRef, useContext } from 'react';\nimport { ellipsisStyles } from '@os-design/styles';\nimport { omitEmotionProps } from '@os-design/utils';\nimport styled from '@emotion/styled';\nimport { clr, ThemeOverrider } from '@os-design/theming';\nimport { m } from '@os-design/media';\nimport { Left } from '@os-design/icons';\nimport { css } from '@emotion/react';\nimport Button from '../Button';\nimport LayoutContext from '../Layout/LayoutContext';\nimport defaultLocale, { PageHeaderLocale } from './utils/defaultLocale';\n\ntype JsxDivProps = Omit<JSX.IntrinsicElements['div'], 'ref'>;\nexport interface PageHeaderProps extends JsxDivProps {\n /**\n * The title of the page.\n * @default undefined\n */\n title: string;\n /**\n * The subtitle of the page.\n * @default undefined\n */\n subtitle?: string;\n /**\n * The component located on the left side.\n * @default undefined\n */\n left?: React.ReactNode;\n /**\n * Reduces the left padding of the page header.\n * @default false\n */\n leftIsGhostButton?: boolean;\n /**\n * The component located on the right side.\n * @default undefined\n */\n right?: React.ReactNode;\n /**\n * Reduces the right padding of the page header.\n * @default false\n */\n rightIsGhostButton?: boolean;\n /**\n * The back event handler. If passed, the page header has the back button.\n * @default undefined\n */\n onBack?: () => void;\n /**\n * The locale.\n * @default undefined\n */\n locale?: PageHeaderLocale;\n}\n\nconst getReducedPadding = (p, isMinSm: boolean) => {\n const i = isMinSm ? 1 : 0;\n let padding = p.theme.horizontalPadding[i] - p.theme.buttonPaddingHorizontal;\n if (padding < 0) padding = 0;\n return padding;\n};\n\nconst horizontalPaddingStyles = (p) => {\n const reducedPadding = getReducedPadding(p, false);\n const reducedPaddingSm = getReducedPadding(p, true);\n return css`\n padding-left: ${p.leftIsGhostButton\n ? reducedPadding\n : p.theme.horizontalPadding[0]}em;\n padding-right: ${p.rightIsGhostButton\n ? reducedPadding\n : p.theme.horizontalPadding[0]}em;\n\n ${m.min.sm} {\n padding-left: ${p.leftIsGhostButton\n ? reducedPaddingSm\n : p.theme.horizontalPadding[1]}em;\n padding-right: ${p.rightIsGhostButton\n ? reducedPaddingSm\n : p.theme.horizontalPadding[1]}em;\n }\n `;\n};\n\nconst hasNavigationIndentStyles = (p) =>\n p.hasNavigationIndent &&\n css`\n ${m.min.md} {\n left: ${p.theme.navigationSideWidth}em;\n }\n `;\n\ninterface ContainerProps {\n leftIsGhostButton?: boolean;\n rightIsGhostButton?: boolean;\n hasNavigationIndent?: boolean;\n}\nexport const PageHeaderContainer = styled(\n 'div',\n omitEmotionProps(\n 'leftIsGhostButton',\n 'rightIsGhostButton',\n 'hasNavigationIndent'\n )\n)<ContainerProps>`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n\n height: ${(p) => p.theme.pageHeaderHeight[0]}em;\n ${m.min.md} {\n height: ${(p) => p.theme.pageHeaderHeight[1]}em;\n }\n\n display: flex;\n align-items: center;\n box-sizing: border-box;\n z-index: 101;\n\n background-color: ${(p) => clr(p.theme.pageHeaderColorBg)};\n color: ${(p) => clr(p.theme.pageHeaderColorText)};\n border-bottom: 1px solid ${(p) => clr(p.theme.pageHeaderColorBorder)};\n\n ${horizontalPaddingStyles};\n ${hasNavigationIndentStyles};\n`;\n\nconst BackButton = styled(Button)`\n margin-right: 0.2em;\n flex-shrink: 0;\n`;\n\nconst Content = styled.div`\n overflow: hidden; // For ellipsis\n`;\n\nconst notHasSubtitleStyles = (p) =>\n !p.hasSubtitle &&\n css`\n font-size: ${p.theme.sizes.large}em;\n `;\n\ninterface TitleProps {\n hasSubtitle: boolean;\n}\nconst Title = styled('h1', omitEmotionProps('hasSubtitle'))<TitleProps>`\n margin: 0;\n font-size: 1em;\n font-weight: 500;\n line-height: 1.5;\n ${notHasSubtitleStyles};\n ${ellipsisStyles};\n`;\n\nconst Subtitle = styled.div`\n font-size: ${(p) => p.theme.sizes.small}em;\n color: ${(p) => clr(p.theme.pageHeaderSubtitleColorText)};\n line-height: 1;\n margin-top: 0.2em;\n ${ellipsisStyles};\n`;\n\nconst Addon = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst LeftAddon = styled(Addon)`\n padding-right: ${(p) => p.theme.pageHeaderAddonPaddingHorizontal}em;\n`;\n\nconst RightAddon = styled(Addon)`\n padding-left: ${(p) => p.theme.pageHeaderAddonPaddingHorizontal}em;\n margin-left: auto;\n\n display: grid;\n grid-auto-flow: column;\n grid-column-gap: 0.4em;\n`;\n\n/**\n * The header of the page.\n */\nconst PageHeader = forwardRef<HTMLDivElement, PageHeaderProps>(\n (\n {\n title,\n subtitle,\n left,\n leftIsGhostButton = false,\n right,\n rightIsGhostButton = false,\n onBack,\n locale = defaultLocale,\n ...rest\n },\n ref\n ) => {\n const { hasNavigation } = useContext(LayoutContext);\n\n return (\n <ThemeOverrider\n overrides={(t) => ({\n buttonPaddingHorizontal: t.pageHeaderButtonPaddingHorizontal,\n })}\n >\n <PageHeaderContainer\n leftIsGhostButton={leftIsGhostButton || !!onBack}\n rightIsGhostButton={rightIsGhostButton}\n hasNavigationIndent={hasNavigation}\n {...rest}\n ref={ref}\n >\n {onBack && (\n <BackButton\n type='ghost'\n wide='never'\n onClick={onBack}\n aria-label={locale.backLabel}\n >\n <Left />\n </BackButton>\n )}\n\n {left && <LeftAddon>{left}</LeftAddon>}\n\n <Content>\n <Title hasSubtitle={!!subtitle}>{title}</Title>\n {subtitle && <Subtitle>{subtitle}</Subtitle>}\n </Content>\n\n {right && <RightAddon>{right}</RightAddon>}\n </PageHeaderContainer>\n </ThemeOverrider>\n );\n }\n);\n\nPageHeader.displayName = 'PageHeader';\n\nexport default PageHeader;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/PageHeader/index.tsx"],"names":["getReducedPadding","p","isMinSm","i","padding","theme","horizontalPadding","buttonPaddingHorizontal","horizontalPaddingStyles","reducedPadding","reducedPaddingSm","css","leftIsGhostButton","rightIsGhostButton","m","min","sm","hasNavigationIndentStyles","hasNavigationIndent","md","navigationSideWidth","PageHeaderContainer","pageHeaderHeight","pageHeaderColorBg","pageHeaderColorText","pageHeaderColorBorder","BackButton","Button","Content","styled","div","notHasSubtitleStyles","hasSubtitle","sizes","large","Title","ellipsisStyles","Subtitle","small","pageHeaderSubtitleColorText","Addon","LeftAddon","pageHeaderAddonPaddingHorizontal","RightAddon","PageHeader","ref","title","subtitle","left","right","onBack","locale","defaultLocale","rest","LayoutContext","hasNavigation","t","pageHeaderButtonPaddingHorizontal","backLabel","displayName"],"mappings":"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","sourcesContent":["import React, { forwardRef, useContext } from 'react';\nimport { ellipsisStyles } from '@os-design/styles';\nimport { omitEmotionProps } from '@os-design/utils';\nimport styled from '@emotion/styled';\nimport { clr, ThemeOverrider } from '@os-design/theming';\nimport { m } from '@os-design/media';\nimport { Left } from '@os-design/icons';\nimport { css } from '@emotion/react';\nimport Button from '../Button';\nimport LayoutContext from '../Layout/LayoutContext';\nimport defaultLocale, { PageHeaderLocale } from './utils/defaultLocale';\n\ntype JsxDivProps = Omit<JSX.IntrinsicElements['div'], 'ref'>;\nexport interface PageHeaderProps extends JsxDivProps {\n /**\n * The title of the page.\n * @default undefined\n */\n title: string;\n /**\n * The subtitle of the page.\n * @default undefined\n */\n subtitle?: string;\n /**\n * The component located on the left side.\n * @default undefined\n */\n left?: React.ReactNode;\n /**\n * Reduces the left padding of the page header.\n * @default false\n */\n leftIsGhostButton?: boolean;\n /**\n * The component located on the right side.\n * @default undefined\n */\n right?: React.ReactNode;\n /**\n * Reduces the right padding of the page header.\n * @default false\n */\n rightIsGhostButton?: boolean;\n /**\n * The back event handler. If passed, the page header has the back button.\n * @default undefined\n */\n onBack?: () => void;\n /**\n * The locale.\n * @default undefined\n */\n locale?: PageHeaderLocale;\n}\n\nconst getReducedPadding = (p, isMinSm: boolean) => {\n const i = isMinSm ? 1 : 0;\n let padding = p.theme.horizontalPadding[i] - p.theme.buttonPaddingHorizontal;\n if (padding < 0) padding = 0;\n return padding;\n};\n\nconst horizontalPaddingStyles = (p) => {\n const reducedPadding = getReducedPadding(p, false);\n const reducedPaddingSm = getReducedPadding(p, true);\n return css`\n padding-left: ${p.leftIsGhostButton\n ? reducedPadding\n : p.theme.horizontalPadding[0]}em;\n padding-right: ${p.rightIsGhostButton\n ? reducedPadding\n : p.theme.horizontalPadding[0]}em;\n\n ${m.min.sm} {\n padding-left: ${p.leftIsGhostButton\n ? reducedPaddingSm\n : p.theme.horizontalPadding[1]}em;\n padding-right: ${p.rightIsGhostButton\n ? reducedPaddingSm\n : p.theme.horizontalPadding[1]}em;\n }\n `;\n};\n\nconst hasNavigationIndentStyles = (p) =>\n p.hasNavigationIndent &&\n css`\n ${m.min.md} {\n left: ${p.theme.navigationSideWidth}em;\n }\n `;\n\ninterface ContainerProps {\n leftIsGhostButton?: boolean;\n rightIsGhostButton?: boolean;\n hasNavigationIndent?: boolean;\n}\nexport const PageHeaderContainer = styled(\n 'div',\n omitEmotionProps(\n 'leftIsGhostButton',\n 'rightIsGhostButton',\n 'hasNavigationIndent'\n )\n)<ContainerProps>`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n\n height: ${(p) => p.theme.pageHeaderHeight[0]}em;\n ${m.min.md} {\n height: ${(p) => p.theme.pageHeaderHeight[1]}em;\n }\n\n display: flex;\n align-items: center;\n box-sizing: border-box;\n z-index: 101;\n\n background-color: ${(p) => clr(p.theme.pageHeaderColorBg)};\n color: ${(p) => clr(p.theme.pageHeaderColorText)};\n border-bottom: 1px solid ${(p) => clr(p.theme.pageHeaderColorBorder)};\n\n ${horizontalPaddingStyles};\n ${hasNavigationIndentStyles};\n`;\n\nconst BackButton = styled(Button)`\n margin-right: 0.2em;\n flex-shrink: 0;\n`;\n\nconst Content = styled.div`\n overflow: hidden; // For ellipsis\n`;\n\nconst notHasSubtitleStyles = (p) =>\n !p.hasSubtitle &&\n css`\n font-size: ${p.theme.sizes.large}em;\n `;\n\ninterface TitleProps {\n hasSubtitle: boolean;\n}\nconst Title = styled('h1', omitEmotionProps('hasSubtitle'))<TitleProps>`\n margin: 0;\n font-size: 1em;\n font-weight: 500;\n line-height: 1.2;\n ${notHasSubtitleStyles};\n ${ellipsisStyles};\n`;\n\nconst Subtitle = styled.div`\n font-size: ${(p) => p.theme.sizes.small}em;\n color: ${(p) => clr(p.theme.pageHeaderSubtitleColorText)};\n line-height: 1;\n margin-top: 0.2em;\n ${ellipsisStyles};\n`;\n\nconst Addon = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst LeftAddon = styled(Addon)`\n padding-right: ${(p) => p.theme.pageHeaderAddonPaddingHorizontal}em;\n`;\n\nconst RightAddon = styled(Addon)`\n padding-left: ${(p) => p.theme.pageHeaderAddonPaddingHorizontal}em;\n margin-left: auto;\n\n display: grid;\n grid-auto-flow: column;\n grid-column-gap: 0.4em;\n`;\n\n/**\n * The header of the page.\n */\nconst PageHeader = forwardRef<HTMLDivElement, PageHeaderProps>(\n (\n {\n title,\n subtitle,\n left,\n leftIsGhostButton = false,\n right,\n rightIsGhostButton = false,\n onBack,\n locale = defaultLocale,\n ...rest\n },\n ref\n ) => {\n const { hasNavigation } = useContext(LayoutContext);\n\n return (\n <ThemeOverrider\n overrides={(t) => ({\n buttonPaddingHorizontal: t.pageHeaderButtonPaddingHorizontal,\n })}\n >\n <PageHeaderContainer\n leftIsGhostButton={leftIsGhostButton || !!onBack}\n rightIsGhostButton={rightIsGhostButton}\n hasNavigationIndent={hasNavigation}\n {...rest}\n ref={ref}\n >\n {onBack && (\n <BackButton\n type='ghost'\n wide='never'\n onClick={onBack}\n aria-label={locale.backLabel}\n >\n <Left />\n </BackButton>\n )}\n\n {left && <LeftAddon>{left}</LeftAddon>}\n\n <Content>\n <Title hasSubtitle={!!subtitle}>{title}</Title>\n {subtitle && <Subtitle>{subtitle}</Subtitle>}\n </Content>\n\n {right && <RightAddon>{right}</RightAddon>}\n </PageHeaderContainer>\n </ThemeOverrider>\n );\n }\n);\n\nPageHeader.displayName = 'PageHeader';\n\nexport default PageHeader;\n"],"file":"index.js"}
@@ -1,7 +1,7 @@
1
1
  function _extends() { _extends = Object.assign || 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); }
2
2
 
3
3
  import React, { forwardRef } from 'react';
4
- import { Close, Search } from '@os-design/icons';
4
+ import { Search, CloseCircle } from '@os-design/icons';
5
5
  import styled from '@emotion/styled';
6
6
  import { keyframes } from '@emotion/react';
7
7
  import { useForwardedRef, useForwardedState } from '@os-design/utils';
@@ -59,7 +59,7 @@ const InputSearch = /*#__PURE__*/forwardRef(({
59
59
  inputRef.current.focus();
60
60
  },
61
61
  "aria-label": locale.clearLabel
62
- }, /*#__PURE__*/React.createElement(Close, null))), right),
62
+ }, /*#__PURE__*/React.createElement(CloseCircle, null))), right),
63
63
  value: forwardedValue,
64
64
  onChange: setForwardedValue,
65
65
  role: "searchbox",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/InputSearch/index.tsx"],"names":["React","forwardRef","Close","Search","styled","keyframes","useForwardedRef","useForwardedState","ThemeOverrider","Input","Button","defaultLocale","fadeIn","ClearButton","p","theme","transitionDelay","InputSearch","locale","value","defaultValue","onChange","disabled","left","leftHasPadding","right","rest","ref","inputRef","mergedInputRef","forwardedValue","setForwardedValue","buttonIconScaleFactor","current","focus","clearLabel","displayName"],"mappings":";;AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;AACA,SAASC,KAAT,EAAgBC,MAAhB,QAA8B,kBAA9B;AACA,OAAOC,MAAP,MAAmB,iBAAnB;AACA,SAASC,SAAT,QAA0B,gBAA1B;AACA,SAASC,eAAT,EAA0BC,iBAA1B,QAAmD,kBAAnD;AACA,SAASC,cAAT,QAA+B,oBAA/B;AACA,OAAOC,KAAP,MAAkC,UAAlC;AACA,OAAOC,MAAP,MAAmB,WAAnB;AACA,OAAOC,aAAP,MAAiD,uBAAjD;AA0BA,MAAMC,MAAM,GAAGP,SAAU;AACzB;AACA;AACA,CAHA;AAKA,MAAMQ,WAAW,GAAGT,MAAM,CAACM,MAAD,CAAS;AACnC,eAAeE,MAAO,IAAIE,CAAD,IAAOA,CAAC,CAACC,KAAF,CAAQC,eAAgB;AACxD,CAFA;AAIA;AACA;AACA;;AACA,MAAMC,WAAW,gBAAGhB,UAAU,CAC5B,CACE;AACEiB,EAAAA,MAAM,GAAGP,aADX;AAEEQ,EAAAA,KAFF;AAGEC,EAAAA,YAHF;AAIEC,EAAAA,QAAQ,GAAG,MAAM,CAAE,CAJrB;AAKEC,EAAAA,QALF;AAMEC,EAAAA,IANF;AAOEC,EAAAA,cAAc,GAAG,IAPnB;AAQEC,EAAAA,KARF;AASE,KAAGC;AATL,CADF,EAYEC,GAZF,KAaK;AACH,QAAM,CAACC,QAAD,EAAWC,cAAX,IAA6BvB,eAAe,CAACqB,GAAD,CAAlD;AACA,QAAM,CAACG,cAAD,EAAiBC,iBAAjB,IAAsCxB,iBAAiB,CAAC;AAC5DY,IAAAA,KAD4D;AAE5DC,IAAAA,YAF4D;AAG5DC,IAAAA;AAH4D,GAAD,CAA7D;AAMA,sBACE,oBAAC,KAAD;AACE,IAAA,IAAI,EAAC,MADP;AAEE,IAAA,IAAI,eACF,uDACE,oBAAC,MAAD;AAAQ,MAAA,GAAG,EAAC;AAAZ,MADF,EAEGE,IAFH,CAHJ;AAQE,IAAA,cAAc,EAAEC,cARlB;AASE,IAAA,KAAK,eACH,0CACG,CAAC,CAACM,cAAF,iBACC,oBAAC,cAAD;AAAgB,MAAA,SAAS,EAAE;AAAEE,QAAAA,qBAAqB,EAAE;AAAzB;AAA3B,oBACE,oBAAC,WAAD;AACE,MAAA,GAAG,EAAC,cADN;AAEE,MAAA,IAAI,EAAC,OAFP;AAGE,MAAA,IAAI,EAAC,OAHP;AAIE,MAAA,IAAI,EAAC,OAJP;AAKE,MAAA,QAAQ,EAAEV,QALZ;AAME,MAAA,OAAO,EAAE,MAAM;AACbS,QAAAA,iBAAiB,CAAC,EAAD,CAAjB;AACA,YAAI,CAACH,QAAQ,CAACK,OAAd,EAAuB;AACvBL,QAAAA,QAAQ,CAACK,OAAT,CAAiBC,KAAjB;AACD,OAVH;AAWE,oBAAYhB,MAAM,CAACiB;AAXrB,oBAaE,oBAAC,KAAD,OAbF,CADF,CAFJ,EAoBGV,KApBH,CAVJ;AAiCE,IAAA,KAAK,EAAEK,cAjCT;AAkCE,IAAA,QAAQ,EAAEC,iBAlCZ;AAmCE,IAAA,IAAI,EAAC,WAnCP;AAoCE,IAAA,QAAQ,EAAET;AApCZ,KAqCMI,IArCN;AAsCE,IAAA,GAAG,EAAEG;AAtCP,KADF;AA0CD,CAhE2B,CAA9B;AAmEAZ,WAAW,CAACmB,WAAZ,GAA0B,aAA1B;AAEA,eAAenB,WAAf","sourcesContent":["import React, { forwardRef } from 'react';\nimport { Close, Search } from '@os-design/icons';\nimport styled from '@emotion/styled';\nimport { keyframes } from '@emotion/react';\nimport { useForwardedRef, useForwardedState } from '@os-design/utils';\nimport { ThemeOverrider } from '@os-design/theming';\nimport Input, { InputProps } from '../Input';\nimport Button from '../Button';\nimport defaultLocale, { InputSearchLocale } from './utils/defaultLocale';\n\nexport interface InputSearchProps\n extends Omit<InputProps, 'type' | 'onChange'> {\n /**\n * The locale.\n * @default undefined\n */\n locale?: InputSearchLocale;\n /**\n * The input value.\n * @default undefined\n */\n value?: string;\n /**\n * The default value.\n * @default undefined\n */\n defaultValue?: string;\n /**\n * The change event handler.\n * @default undefined\n */\n onChange?: (value: string) => void;\n}\n\nconst fadeIn = keyframes`\n from { opacity: 0; }\n to { opacity: 1; }\n`;\n\nconst ClearButton = styled(Button)`\n animation: ${fadeIn} ${(p) => p.theme.transitionDelay}ms;\n`;\n\n/**\n * The search input.\n */\nconst InputSearch = forwardRef<HTMLInputElement, InputSearchProps>(\n (\n {\n locale = defaultLocale,\n value,\n defaultValue,\n onChange = () => {},\n disabled,\n left,\n leftHasPadding = true,\n right,\n ...rest\n },\n ref\n ) => {\n const [inputRef, mergedInputRef] = useForwardedRef(ref);\n const [forwardedValue, setForwardedValue] = useForwardedState({\n value,\n defaultValue,\n onChange,\n });\n\n return (\n <Input\n type='text'\n left={\n <>\n <Search key='search-icon' />\n {left}\n </>\n }\n leftHasPadding={leftHasPadding}\n right={\n <>\n {!!forwardedValue && (\n <ThemeOverrider overrides={{ buttonIconScaleFactor: 1.2 }}>\n <ClearButton\n key='clear-button'\n type='ghost'\n wide='never'\n size='small'\n disabled={disabled}\n onClick={() => {\n setForwardedValue('');\n if (!inputRef.current) return;\n inputRef.current.focus();\n }}\n aria-label={locale.clearLabel}\n >\n <Close />\n </ClearButton>\n </ThemeOverrider>\n )}\n {right}\n </>\n }\n value={forwardedValue}\n onChange={setForwardedValue}\n role='searchbox'\n disabled={disabled}\n {...rest}\n ref={mergedInputRef}\n />\n );\n }\n);\n\nInputSearch.displayName = 'InputSearch';\n\nexport default InputSearch;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/InputSearch/index.tsx"],"names":["React","forwardRef","Search","CloseCircle","styled","keyframes","useForwardedRef","useForwardedState","ThemeOverrider","Input","Button","defaultLocale","fadeIn","ClearButton","p","theme","transitionDelay","InputSearch","locale","value","defaultValue","onChange","disabled","left","leftHasPadding","right","rest","ref","inputRef","mergedInputRef","forwardedValue","setForwardedValue","buttonIconScaleFactor","current","focus","clearLabel","displayName"],"mappings":";;AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;AACA,SAASC,MAAT,EAAiBC,WAAjB,QAAoC,kBAApC;AACA,OAAOC,MAAP,MAAmB,iBAAnB;AACA,SAASC,SAAT,QAA0B,gBAA1B;AACA,SAASC,eAAT,EAA0BC,iBAA1B,QAAmD,kBAAnD;AACA,SAASC,cAAT,QAA+B,oBAA/B;AACA,OAAOC,KAAP,MAAkC,UAAlC;AACA,OAAOC,MAAP,MAAmB,WAAnB;AACA,OAAOC,aAAP,MAAiD,uBAAjD;AA0BA,MAAMC,MAAM,GAAGP,SAAU;AACzB;AACA;AACA,CAHA;AAKA,MAAMQ,WAAW,GAAGT,MAAM,CAACM,MAAD,CAAS;AACnC,eAAeE,MAAO,IAAIE,CAAD,IAAOA,CAAC,CAACC,KAAF,CAAQC,eAAgB;AACxD,CAFA;AAIA;AACA;AACA;;AACA,MAAMC,WAAW,gBAAGhB,UAAU,CAC5B,CACE;AACEiB,EAAAA,MAAM,GAAGP,aADX;AAEEQ,EAAAA,KAFF;AAGEC,EAAAA,YAHF;AAIEC,EAAAA,QAAQ,GAAG,MAAM,CAAE,CAJrB;AAKEC,EAAAA,QALF;AAMEC,EAAAA,IANF;AAOEC,EAAAA,cAAc,GAAG,IAPnB;AAQEC,EAAAA,KARF;AASE,KAAGC;AATL,CADF,EAYEC,GAZF,KAaK;AACH,QAAM,CAACC,QAAD,EAAWC,cAAX,IAA6BvB,eAAe,CAACqB,GAAD,CAAlD;AACA,QAAM,CAACG,cAAD,EAAiBC,iBAAjB,IAAsCxB,iBAAiB,CAAC;AAC5DY,IAAAA,KAD4D;AAE5DC,IAAAA,YAF4D;AAG5DC,IAAAA;AAH4D,GAAD,CAA7D;AAMA,sBACE,oBAAC,KAAD;AACE,IAAA,IAAI,EAAC,MADP;AAEE,IAAA,IAAI,eACF,uDACE,oBAAC,MAAD;AAAQ,MAAA,GAAG,EAAC;AAAZ,MADF,EAEGE,IAFH,CAHJ;AAQE,IAAA,cAAc,EAAEC,cARlB;AASE,IAAA,KAAK,eACH,0CACG,CAAC,CAACM,cAAF,iBACC,oBAAC,cAAD;AAAgB,MAAA,SAAS,EAAE;AAAEE,QAAAA,qBAAqB,EAAE;AAAzB;AAA3B,oBACE,oBAAC,WAAD;AACE,MAAA,GAAG,EAAC,cADN;AAEE,MAAA,IAAI,EAAC,OAFP;AAGE,MAAA,IAAI,EAAC,OAHP;AAIE,MAAA,IAAI,EAAC,OAJP;AAKE,MAAA,QAAQ,EAAEV,QALZ;AAME,MAAA,OAAO,EAAE,MAAM;AACbS,QAAAA,iBAAiB,CAAC,EAAD,CAAjB;AACA,YAAI,CAACH,QAAQ,CAACK,OAAd,EAAuB;AACvBL,QAAAA,QAAQ,CAACK,OAAT,CAAiBC,KAAjB;AACD,OAVH;AAWE,oBAAYhB,MAAM,CAACiB;AAXrB,oBAaE,oBAAC,WAAD,OAbF,CADF,CAFJ,EAoBGV,KApBH,CAVJ;AAiCE,IAAA,KAAK,EAAEK,cAjCT;AAkCE,IAAA,QAAQ,EAAEC,iBAlCZ;AAmCE,IAAA,IAAI,EAAC,WAnCP;AAoCE,IAAA,QAAQ,EAAET;AApCZ,KAqCMI,IArCN;AAsCE,IAAA,GAAG,EAAEG;AAtCP,KADF;AA0CD,CAhE2B,CAA9B;AAmEAZ,WAAW,CAACmB,WAAZ,GAA0B,aAA1B;AAEA,eAAenB,WAAf","sourcesContent":["import React, { forwardRef } from 'react';\nimport { Search, CloseCircle } from '@os-design/icons';\nimport styled from '@emotion/styled';\nimport { keyframes } from '@emotion/react';\nimport { useForwardedRef, useForwardedState } from '@os-design/utils';\nimport { ThemeOverrider } from '@os-design/theming';\nimport Input, { InputProps } from '../Input';\nimport Button from '../Button';\nimport defaultLocale, { InputSearchLocale } from './utils/defaultLocale';\n\nexport interface InputSearchProps\n extends Omit<InputProps, 'type' | 'onChange'> {\n /**\n * The locale.\n * @default undefined\n */\n locale?: InputSearchLocale;\n /**\n * The input value.\n * @default undefined\n */\n value?: string;\n /**\n * The default value.\n * @default undefined\n */\n defaultValue?: string;\n /**\n * The change event handler.\n * @default undefined\n */\n onChange?: (value: string) => void;\n}\n\nconst fadeIn = keyframes`\n from { opacity: 0; }\n to { opacity: 1; }\n`;\n\nconst ClearButton = styled(Button)`\n animation: ${fadeIn} ${(p) => p.theme.transitionDelay}ms;\n`;\n\n/**\n * The search input.\n */\nconst InputSearch = forwardRef<HTMLInputElement, InputSearchProps>(\n (\n {\n locale = defaultLocale,\n value,\n defaultValue,\n onChange = () => {},\n disabled,\n left,\n leftHasPadding = true,\n right,\n ...rest\n },\n ref\n ) => {\n const [inputRef, mergedInputRef] = useForwardedRef(ref);\n const [forwardedValue, setForwardedValue] = useForwardedState({\n value,\n defaultValue,\n onChange,\n });\n\n return (\n <Input\n type='text'\n left={\n <>\n <Search key='search-icon' />\n {left}\n </>\n }\n leftHasPadding={leftHasPadding}\n right={\n <>\n {!!forwardedValue && (\n <ThemeOverrider overrides={{ buttonIconScaleFactor: 1.2 }}>\n <ClearButton\n key='clear-button'\n type='ghost'\n wide='never'\n size='small'\n disabled={disabled}\n onClick={() => {\n setForwardedValue('');\n if (!inputRef.current) return;\n inputRef.current.focus();\n }}\n aria-label={locale.clearLabel}\n >\n <CloseCircle />\n </ClearButton>\n </ThemeOverrider>\n )}\n {right}\n </>\n }\n value={forwardedValue}\n onChange={setForwardedValue}\n role='searchbox'\n disabled={disabled}\n {...rest}\n ref={mergedInputRef}\n />\n );\n }\n);\n\nInputSearch.displayName = 'InputSearch';\n\nexport default InputSearch;\n"],"file":"index.js"}
@@ -23,7 +23,8 @@ const List = /*#__PURE__*/forwardRef(({
23
23
  paddingBottom = 0,
24
24
  onLoadNext = () => {},
25
25
  itemRenderer = () => null,
26
- outerRef
26
+ outerRef,
27
+ innerRef
27
28
  }, ref) => {
28
29
  const [listRef, mergedListRef] = useForwardedRef(ref);
29
30
  const size = useSize();
@@ -80,7 +81,8 @@ const List = /*#__PURE__*/forwardRef(({
80
81
  },
81
82
  overscanCount: overscanCount,
82
83
  innerElementType: InnerElement,
83
- outerRef: outerRef
84
+ outerRef: outerRef,
85
+ innerRef: innerRef
84
86
  }, ({
85
87
  style,
86
88
  ...rest
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/List/index.tsx"],"names":["React","forwardRef","useCallback","useContext","useMemo","FixedSizeList","useForwardedRef","useSize","useFontSize","useSafeAreaInset","useTheme","useIsMinWidth","WindowScroller","useRWLoadNext","LayoutContext","List","itemCount","itemData","itemHeight","threshold","overscanCount","paddingTop","paddingBottom","onLoadNext","itemRenderer","outerRef","ref","listRef","mergedListRef","size","fontSize","document","body","hasNavigation","hasPageHeader","theme","isMinMd","safeAreaInset","itemSize","paddingTopSize","pageHeaderHeight","paddingBottomSize","navigationTabHeight","bottom","scrollLoadNextHandler","height","scrollHandler","top","current","scrollTo","InnerElement","style","rest","innerElementRef","parseFloat","displayName","toString","default"],"mappings":"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","sourcesContent":["import React, { forwardRef, useCallback, useContext, useMemo } from 'react';\nimport {\n FixedSizeList,\n FixedSizeListProps,\n ListChildComponentProps,\n} from 'react-window';\nimport {\n useForwardedRef,\n useSize,\n useFontSize,\n useSafeAreaInset,\n} from '@os-design/utils';\nimport { useTheme } from '@os-design/theming';\nimport { useIsMinWidth } from '@os-design/media';\nimport WindowScroller, { ScrollPosition } from './WindowScroller';\nimport useRWLoadNext from './utils/useRWLoadNext';\nimport LayoutContext from '../Layout/LayoutContext';\n\nexport interface ListProps {\n /**\n * Total count of items.\n */\n itemCount: number;\n /**\n * Array of items.\n */\n itemData?: any; // eslint-disable-line @typescript-eslint/no-explicit-any\n /**\n * The item height in em.\n * @default 4\n */\n itemHeight?: number;\n /**\n * A threshold N means that the onLoadNext function calls when a user scrolls all items except N.\n * @default 10\n */\n threshold?: number;\n /**\n * Defines how many items outside of the visible \"window\" to render at all times.\n * @default 10\n */\n overscanCount?: number;\n /**\n * The top padding in em.\n * @default 0\n */\n paddingTop?: number;\n /**\n * The bottom padding in em.\n * @default 0\n */\n paddingBottom?: number;\n /**\n * The callback to load more items.\n * @default undefined\n */\n onLoadNext?: () => void;\n /**\n * The callback to render items.\n * @default () => null\n */\n itemRenderer?: React.FC<ListChildComponentProps>;\n /**\n * Ref to attach to the outer container element.\n * @default undefined\n */\n outerRef?: FixedSizeListProps['outerRef'];\n}\n\n/**\n * Virtualized list.\n * Used the react-window library.\n */\nconst List = forwardRef<FixedSizeList, ListProps>(\n (\n {\n itemCount,\n itemData,\n itemHeight = 4,\n threshold = 10,\n overscanCount = 10,\n paddingTop = 0,\n paddingBottom = 0,\n onLoadNext = () => {},\n itemRenderer = () => null,\n outerRef,\n },\n ref\n ) => {\n const [listRef, mergedListRef] = useForwardedRef(ref);\n const size = useSize();\n const fontSize = useFontSize(document.body);\n const { hasNavigation, hasPageHeader } = useContext(LayoutContext);\n const { theme } = useTheme();\n const isMinMd = useIsMinWidth('md');\n const safeAreaInset = useSafeAreaInset();\n\n const itemSize = useMemo(\n () => itemHeight * fontSize,\n [itemHeight, fontSize]\n );\n\n const paddingTopSize = useMemo(\n () =>\n ((hasPageHeader ? theme.pageHeaderHeight[isMinMd ? 1 : 0] : 0) +\n paddingTop) *\n fontSize,\n [hasPageHeader, theme.pageHeaderHeight, isMinMd, paddingTop, fontSize]\n );\n\n const paddingBottomSize = useMemo(\n () =>\n ((hasNavigation && !isMinMd ? theme.navigationTabHeight : 0) +\n paddingBottom) *\n fontSize +\n safeAreaInset.bottom,\n [\n hasNavigation,\n theme.navigationTabHeight,\n isMinMd,\n paddingBottom,\n fontSize,\n safeAreaInset.bottom,\n ]\n );\n\n const scrollLoadNextHandler = useRWLoadNext({\n itemCount,\n threshold,\n itemSize,\n paddingTop: paddingTopSize,\n height: size.height,\n onLoadNext,\n });\n\n const scrollHandler = useCallback(\n ({ top }: ScrollPosition) => {\n // Set the scroll position to the list\n if (listRef.current) listRef.current.scrollTo(top);\n scrollLoadNextHandler(top);\n },\n [listRef, scrollLoadNextHandler]\n );\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const InnerElement = forwardRef<HTMLDivElement, any>(\n ({ style, ...rest }, innerElementRef) => (\n <div\n ref={innerElementRef}\n style={{\n ...style,\n height: `${\n parseFloat(style.height) + paddingTopSize + paddingBottomSize\n }px`,\n }}\n {...rest}\n />\n )\n );\n InnerElement.displayName = 'InnerElement';\n\n return (\n <WindowScroller onScroll={scrollHandler}>\n <FixedSizeList\n ref={mergedListRef}\n width='100%'\n height={size.height}\n itemData={itemData}\n itemSize={itemSize}\n itemCount={itemCount}\n style={{ height: '100% important!' }}\n overscanCount={overscanCount}\n innerElementType={InnerElement}\n outerRef={outerRef}\n >\n {({ style, ...rest }) =>\n itemRenderer({\n style: {\n ...style,\n top: `${\n parseFloat(style.top ? style.top.toString() : '0') +\n paddingTopSize\n }px`,\n },\n ...rest,\n })\n }\n </FixedSizeList>\n </WindowScroller>\n );\n }\n);\n\nList.displayName = 'List';\n\nexport { default as WindowScroller } from './WindowScroller';\nexport { default as useRWLoadNext } from './utils/useRWLoadNext';\n\nexport default List;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/List/index.tsx"],"names":["React","forwardRef","useCallback","useContext","useMemo","FixedSizeList","useForwardedRef","useSize","useFontSize","useSafeAreaInset","useTheme","useIsMinWidth","WindowScroller","useRWLoadNext","LayoutContext","List","itemCount","itemData","itemHeight","threshold","overscanCount","paddingTop","paddingBottom","onLoadNext","itemRenderer","outerRef","innerRef","ref","listRef","mergedListRef","size","fontSize","document","body","hasNavigation","hasPageHeader","theme","isMinMd","safeAreaInset","itemSize","paddingTopSize","pageHeaderHeight","paddingBottomSize","navigationTabHeight","bottom","scrollLoadNextHandler","height","scrollHandler","top","current","scrollTo","InnerElement","style","rest","innerElementRef","parseFloat","displayName","toString","default"],"mappings":";;AAAA,OAAOA,KAAP,IAAgBC,UAAhB,EAA4BC,WAA5B,EAAyCC,UAAzC,EAAqDC,OAArD,QAAoE,OAApE;AACA,SACEC,aADF,QAIO,cAJP;AAKA,SACEC,eADF,EAEEC,OAFF,EAGEC,WAHF,EAIEC,gBAJF,QAKO,kBALP;AAMA,SAASC,QAAT,QAAyB,oBAAzB;AACA,SAASC,aAAT,QAA8B,kBAA9B;AACA,OAAOC,cAAP,MAA+C,kBAA/C;AACA,OAAOC,aAAP,MAA0B,uBAA1B;AACA,OAAOC,aAAP,MAA0B,yBAA1B;;AA0DA;AACA;AACA;AACA;AACA,MAAMC,IAAI,gBAAGd,UAAU,CACrB,CACE;AACEe,EAAAA,SADF;AAEEC,EAAAA,QAFF;AAGEC,EAAAA,UAAU,GAAG,CAHf;AAIEC,EAAAA,SAAS,GAAG,EAJd;AAKEC,EAAAA,aAAa,GAAG,EALlB;AAMEC,EAAAA,UAAU,GAAG,CANf;AAOEC,EAAAA,aAAa,GAAG,CAPlB;AAQEC,EAAAA,UAAU,GAAG,MAAM,CAAE,CARvB;AASEC,EAAAA,YAAY,GAAG,MAAM,IATvB;AAUEC,EAAAA,QAVF;AAWEC,EAAAA;AAXF,CADF,EAcEC,GAdF,KAeK;AACH,QAAM,CAACC,OAAD,EAAUC,aAAV,IAA2BvB,eAAe,CAACqB,GAAD,CAAhD;AACA,QAAMG,IAAI,GAAGvB,OAAO,EAApB;AACA,QAAMwB,QAAQ,GAAGvB,WAAW,CAACwB,QAAQ,CAACC,IAAV,CAA5B;AACA,QAAM;AAAEC,IAAAA,aAAF;AAAiBC,IAAAA;AAAjB,MAAmChC,UAAU,CAACW,aAAD,CAAnD;AACA,QAAM;AAAEsB,IAAAA;AAAF,MAAY1B,QAAQ,EAA1B;AACA,QAAM2B,OAAO,GAAG1B,aAAa,CAAC,IAAD,CAA7B;AACA,QAAM2B,aAAa,GAAG7B,gBAAgB,EAAtC;AAEA,QAAM8B,QAAQ,GAAGnC,OAAO,CACtB,MAAMc,UAAU,GAAGa,QADG,EAEtB,CAACb,UAAD,EAAaa,QAAb,CAFsB,CAAxB;AAKA,QAAMS,cAAc,GAAGpC,OAAO,CAC5B,MACE,CAAC,CAAC+B,aAAa,GAAGC,KAAK,CAACK,gBAAN,CAAuBJ,OAAO,GAAG,CAAH,GAAO,CAArC,CAAH,GAA6C,CAA3D,IACChB,UADF,IAEAU,QAJ0B,EAK5B,CAACI,aAAD,EAAgBC,KAAK,CAACK,gBAAtB,EAAwCJ,OAAxC,EAAiDhB,UAAjD,EAA6DU,QAA7D,CAL4B,CAA9B;AAQA,QAAMW,iBAAiB,GAAGtC,OAAO,CAC/B,MACE,CAAC,CAAC8B,aAAa,IAAI,CAACG,OAAlB,GAA4BD,KAAK,CAACO,mBAAlC,GAAwD,CAAzD,IACCrB,aADF,IAEES,QAFF,GAGAO,aAAa,CAACM,MALe,EAM/B,CACEV,aADF,EAEEE,KAAK,CAACO,mBAFR,EAGEN,OAHF,EAIEf,aAJF,EAKES,QALF,EAMEO,aAAa,CAACM,MANhB,CAN+B,CAAjC;AAgBA,QAAMC,qBAAqB,GAAGhC,aAAa,CAAC;AAC1CG,IAAAA,SAD0C;AAE1CG,IAAAA,SAF0C;AAG1CoB,IAAAA,QAH0C;AAI1ClB,IAAAA,UAAU,EAAEmB,cAJ8B;AAK1CM,IAAAA,MAAM,EAAEhB,IAAI,CAACgB,MAL6B;AAM1CvB,IAAAA;AAN0C,GAAD,CAA3C;AASA,QAAMwB,aAAa,GAAG7C,WAAW,CAC/B,CAAC;AAAE8C,IAAAA;AAAF,GAAD,KAA6B;AAC3B;AACA,QAAIpB,OAAO,CAACqB,OAAZ,EAAqBrB,OAAO,CAACqB,OAAR,CAAgBC,QAAhB,CAAyBF,GAAzB;AACrBH,IAAAA,qBAAqB,CAACG,GAAD,CAArB;AACD,GAL8B,EAM/B,CAACpB,OAAD,EAAUiB,qBAAV,CAN+B,CAAjC,CA/CG,CAwDH;;AACA,QAAMM,YAAY,gBAAGlD,UAAU,CAC7B,CAAC;AAAEmD,IAAAA,KAAF;AAAS,OAAGC;AAAZ,GAAD,EAAqBC,eAArB,kBACE;AACE,IAAA,GAAG,EAAEA,eADP;AAEE,IAAA,KAAK,EAAE,EACL,GAAGF,KADE;AAELN,MAAAA,MAAM,EAAG,GACPS,UAAU,CAACH,KAAK,CAACN,MAAP,CAAV,GAA2BN,cAA3B,GAA4CE,iBAC7C;AAJI;AAFT,KAQMW,IARN,EAF2B,CAA/B;AAcAF,EAAAA,YAAY,CAACK,WAAb,GAA2B,cAA3B;AAEA,sBACE,oBAAC,cAAD;AAAgB,IAAA,QAAQ,EAAET;AAA1B,kBACE,oBAAC,aAAD;AACE,IAAA,GAAG,EAAElB,aADP;AAEE,IAAA,KAAK,EAAC,MAFR;AAGE,IAAA,MAAM,EAAEC,IAAI,CAACgB,MAHf;AAIE,IAAA,QAAQ,EAAE7B,QAJZ;AAKE,IAAA,QAAQ,EAAEsB,QALZ;AAME,IAAA,SAAS,EAAEvB,SANb;AAOE,IAAA,KAAK,EAAE;AAAE8B,MAAAA,MAAM,EAAE;AAAV,KAPT;AAQE,IAAA,aAAa,EAAE1B,aARjB;AASE,IAAA,gBAAgB,EAAE+B,YATpB;AAUE,IAAA,QAAQ,EAAE1B,QAVZ;AAWE,IAAA,QAAQ,EAAEC;AAXZ,KAaG,CAAC;AAAE0B,IAAAA,KAAF;AAAS,OAAGC;AAAZ,GAAD,KACC7B,YAAY,CAAC;AACX4B,IAAAA,KAAK,EAAE,EACL,GAAGA,KADE;AAELJ,MAAAA,GAAG,EAAG,GACJO,UAAU,CAACH,KAAK,CAACJ,GAAN,GAAYI,KAAK,CAACJ,GAAN,CAAUS,QAAV,EAAZ,GAAmC,GAApC,CAAV,GACAjB,cACD;AALI,KADI;AAQX,OAAGa;AARQ,GAAD,CAdhB,CADF,CADF;AA8BD,CAvHoB,CAAvB;AA0HAtC,IAAI,CAACyC,WAAL,GAAmB,MAAnB;AAEA,SAASE,OAAO,IAAI9C,cAApB,QAA0C,kBAA1C;AACA,SAAS8C,OAAO,IAAI7C,aAApB,QAAyC,uBAAzC;AAEA,eAAeE,IAAf","sourcesContent":["import React, { forwardRef, useCallback, useContext, useMemo } from 'react';\nimport {\n FixedSizeList,\n FixedSizeListProps,\n ListChildComponentProps,\n} from 'react-window';\nimport {\n useForwardedRef,\n useSize,\n useFontSize,\n useSafeAreaInset,\n} from '@os-design/utils';\nimport { useTheme } from '@os-design/theming';\nimport { useIsMinWidth } from '@os-design/media';\nimport WindowScroller, { ScrollPosition } from './WindowScroller';\nimport useRWLoadNext from './utils/useRWLoadNext';\nimport LayoutContext from '../Layout/LayoutContext';\n\nexport interface ListProps {\n /**\n * Total count of items.\n */\n itemCount: number;\n /**\n * Array of items.\n */\n itemData?: any; // eslint-disable-line @typescript-eslint/no-explicit-any\n /**\n * The item height in em.\n * @default 4\n */\n itemHeight?: number;\n /**\n * A threshold N means that the onLoadNext function calls when a user scrolls all items except N.\n * @default 10\n */\n threshold?: number;\n /**\n * Defines how many items outside of the visible \"window\" to render at all times.\n * @default 10\n */\n overscanCount?: number;\n /**\n * The top padding in em.\n * @default 0\n */\n paddingTop?: number;\n /**\n * The bottom padding in em.\n * @default 0\n */\n paddingBottom?: number;\n /**\n * The callback to load more items.\n * @default undefined\n */\n onLoadNext?: () => void;\n /**\n * The callback to render items.\n * @default () => null\n */\n itemRenderer?: React.FC<ListChildComponentProps>;\n /**\n * Ref to attach to the outer container element.\n * @default undefined\n */\n outerRef?: FixedSizeListProps['outerRef'];\n /**\n * Ref to attach to the inner container element.\n * @default undefined\n */\n innerRef?: FixedSizeListProps['innerRef'];\n}\n\n/**\n * Virtualized list.\n * Used the react-window library.\n */\nconst List = forwardRef<FixedSizeList, ListProps>(\n (\n {\n itemCount,\n itemData,\n itemHeight = 4,\n threshold = 10,\n overscanCount = 10,\n paddingTop = 0,\n paddingBottom = 0,\n onLoadNext = () => {},\n itemRenderer = () => null,\n outerRef,\n innerRef,\n },\n ref\n ) => {\n const [listRef, mergedListRef] = useForwardedRef(ref);\n const size = useSize();\n const fontSize = useFontSize(document.body);\n const { hasNavigation, hasPageHeader } = useContext(LayoutContext);\n const { theme } = useTheme();\n const isMinMd = useIsMinWidth('md');\n const safeAreaInset = useSafeAreaInset();\n\n const itemSize = useMemo(\n () => itemHeight * fontSize,\n [itemHeight, fontSize]\n );\n\n const paddingTopSize = useMemo(\n () =>\n ((hasPageHeader ? theme.pageHeaderHeight[isMinMd ? 1 : 0] : 0) +\n paddingTop) *\n fontSize,\n [hasPageHeader, theme.pageHeaderHeight, isMinMd, paddingTop, fontSize]\n );\n\n const paddingBottomSize = useMemo(\n () =>\n ((hasNavigation && !isMinMd ? theme.navigationTabHeight : 0) +\n paddingBottom) *\n fontSize +\n safeAreaInset.bottom,\n [\n hasNavigation,\n theme.navigationTabHeight,\n isMinMd,\n paddingBottom,\n fontSize,\n safeAreaInset.bottom,\n ]\n );\n\n const scrollLoadNextHandler = useRWLoadNext({\n itemCount,\n threshold,\n itemSize,\n paddingTop: paddingTopSize,\n height: size.height,\n onLoadNext,\n });\n\n const scrollHandler = useCallback(\n ({ top }: ScrollPosition) => {\n // Set the scroll position to the list\n if (listRef.current) listRef.current.scrollTo(top);\n scrollLoadNextHandler(top);\n },\n [listRef, scrollLoadNextHandler]\n );\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const InnerElement = forwardRef<HTMLDivElement, any>(\n ({ style, ...rest }, innerElementRef) => (\n <div\n ref={innerElementRef}\n style={{\n ...style,\n height: `${\n parseFloat(style.height) + paddingTopSize + paddingBottomSize\n }px`,\n }}\n {...rest}\n />\n )\n );\n InnerElement.displayName = 'InnerElement';\n\n return (\n <WindowScroller onScroll={scrollHandler}>\n <FixedSizeList\n ref={mergedListRef}\n width='100%'\n height={size.height}\n itemData={itemData}\n itemSize={itemSize}\n itemCount={itemCount}\n style={{ height: '100% important!' }}\n overscanCount={overscanCount}\n innerElementType={InnerElement}\n outerRef={outerRef}\n innerRef={innerRef}\n >\n {({ style, ...rest }) =>\n itemRenderer({\n style: {\n ...style,\n top: `${\n parseFloat(style.top ? style.top.toString() : '0') +\n paddingTopSize\n }px`,\n },\n ...rest,\n })\n }\n </FixedSizeList>\n </WindowScroller>\n );\n }\n);\n\nList.displayName = 'List';\n\nexport { default as WindowScroller } from './WindowScroller';\nexport { default as useRWLoadNext } from './utils/useRWLoadNext';\n\nexport default List;\n"],"file":"index.js"}
@@ -78,7 +78,7 @@ const Title = styled('h1', omitEmotionProps('hasSubtitle'))`
78
78
  margin: 0;
79
79
  font-size: 1em;
80
80
  font-weight: 500;
81
- line-height: 1.5;
81
+ line-height: 1.2;
82
82
  ${notHasSubtitleStyles};
83
83
  ${ellipsisStyles};
84
84
  `;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/PageHeader/index.tsx"],"names":["React","forwardRef","useContext","ellipsisStyles","omitEmotionProps","styled","clr","ThemeOverrider","m","Left","css","Button","LayoutContext","defaultLocale","getReducedPadding","p","isMinSm","i","padding","theme","horizontalPadding","buttonPaddingHorizontal","horizontalPaddingStyles","reducedPadding","reducedPaddingSm","leftIsGhostButton","rightIsGhostButton","min","sm","hasNavigationIndentStyles","hasNavigationIndent","md","navigationSideWidth","PageHeaderContainer","pageHeaderHeight","pageHeaderColorBg","pageHeaderColorText","pageHeaderColorBorder","BackButton","Content","div","notHasSubtitleStyles","hasSubtitle","sizes","large","Title","Subtitle","small","pageHeaderSubtitleColorText","Addon","LeftAddon","pageHeaderAddonPaddingHorizontal","RightAddon","PageHeader","title","subtitle","left","right","onBack","locale","rest","ref","hasNavigation","t","pageHeaderButtonPaddingHorizontal","backLabel","displayName"],"mappings":";;AAAA,OAAOA,KAAP,IAAgBC,UAAhB,EAA4BC,UAA5B,QAA8C,OAA9C;AACA,SAASC,cAAT,QAA+B,mBAA/B;AACA,SAASC,gBAAT,QAAiC,kBAAjC;AACA,OAAOC,MAAP,MAAmB,iBAAnB;AACA,SAASC,GAAT,EAAcC,cAAd,QAAoC,oBAApC;AACA,SAASC,CAAT,QAAkB,kBAAlB;AACA,SAASC,IAAT,QAAqB,kBAArB;AACA,SAASC,GAAT,QAAoB,gBAApB;AACA,OAAOC,MAAP,MAAmB,WAAnB;AACA,OAAOC,aAAP,MAA0B,yBAA1B;AACA,OAAOC,aAAP,MAAgD,uBAAhD;;AA8CA,MAAMC,iBAAiB,GAAG,CAACC,CAAD,EAAIC,OAAJ,KAAyB;AACjD,QAAMC,CAAC,GAAGD,OAAO,GAAG,CAAH,GAAO,CAAxB;AACA,MAAIE,OAAO,GAAGH,CAAC,CAACI,KAAF,CAAQC,iBAAR,CAA0BH,CAA1B,IAA+BF,CAAC,CAACI,KAAF,CAAQE,uBAArD;AACA,MAAIH,OAAO,GAAG,CAAd,EAAiBA,OAAO,GAAG,CAAV;AACjB,SAAOA,OAAP;AACD,CALD;;AAOA,MAAMI,uBAAuB,GAAIP,CAAD,IAAO;AACrC,QAAMQ,cAAc,GAAGT,iBAAiB,CAACC,CAAD,EAAI,KAAJ,CAAxC;AACA,QAAMS,gBAAgB,GAAGV,iBAAiB,CAACC,CAAD,EAAI,IAAJ,CAA1C;AACA,SAAOL,GAAI;AACb,oBAAoBK,CAAC,CAACU,iBAAF,GACZF,cADY,GAEZR,CAAC,CAACI,KAAF,CAAQC,iBAAR,CAA0B,CAA1B,CAA6B;AACrC,qBAAqBL,CAAC,CAACW,kBAAF,GACbH,cADa,GAEbR,CAAC,CAACI,KAAF,CAAQC,iBAAR,CAA0B,CAA1B,CAA6B;AACrC;AACA,MAAMZ,CAAC,CAACmB,GAAF,CAAMC,EAAG;AACf,sBAAsBb,CAAC,CAACU,iBAAF,GACZD,gBADY,GAEZT,CAAC,CAACI,KAAF,CAAQC,iBAAR,CAA0B,CAA1B,CAA6B;AACvC,uBAAuBL,CAAC,CAACW,kBAAF,GACbF,gBADa,GAEbT,CAAC,CAACI,KAAF,CAAQC,iBAAR,CAA0B,CAA1B,CAA6B;AACvC;AACA,GAhBE;AAiBD,CApBD;;AAsBA,MAAMS,yBAAyB,GAAId,CAAD,IAChCA,CAAC,CAACe,mBAAF,IACApB,GAAI;AACN,MAAMF,CAAC,CAACmB,GAAF,CAAMI,EAAG;AACf,cAAchB,CAAC,CAACI,KAAF,CAAQa,mBAAoB;AAC1C;AACA,GANA;;AAaA,OAAO,MAAMC,mBAAmB,GAAG5B,MAAM,CACvC,KADuC,EAEvCD,gBAAgB,CACd,mBADc,EAEd,oBAFc,EAGd,qBAHc,CAFuB,CAOvB;AAClB;AACA;AACA;AACA;AACA;AACA,YAAaW,CAAD,IAAOA,CAAC,CAACI,KAAF,CAAQe,gBAAR,CAAyB,CAAzB,CAA4B;AAC/C,IAAI1B,CAAC,CAACmB,GAAF,CAAMI,EAAG;AACb,cAAehB,CAAD,IAAOA,CAAC,CAACI,KAAF,CAAQe,gBAAR,CAAyB,CAAzB,CAA4B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAuBnB,CAAD,IAAOT,GAAG,CAACS,CAAC,CAACI,KAAF,CAAQgB,iBAAT,CAA4B;AAC5D,WAAYpB,CAAD,IAAOT,GAAG,CAACS,CAAC,CAACI,KAAF,CAAQiB,mBAAT,CAA8B;AACnD,6BAA8BrB,CAAD,IAAOT,GAAG,CAACS,CAAC,CAACI,KAAF,CAAQkB,qBAAT,CAAgC;AACvE;AACA,IAAIf,uBAAwB;AAC5B,IAAIO,yBAA0B;AAC9B,CA7BO;AA+BP,MAAMS,UAAU,GAAGjC,MAAM,CAACM,MAAD,CAAS;AAClC;AACA;AACA,CAHA;AAKA,MAAM4B,OAAO,GAAGlC,MAAM,CAACmC,GAAI;AAC3B;AACA,CAFA;;AAIA,MAAMC,oBAAoB,GAAI1B,CAAD,IAC3B,CAACA,CAAC,CAAC2B,WAAH,IACAhC,GAAI;AACN,iBAAiBK,CAAC,CAACI,KAAF,CAAQwB,KAAR,CAAcC,KAAM;AACrC,GAJA;;AASA,MAAMC,KAAK,GAAGxC,MAAM,CAAC,IAAD,EAAOD,gBAAgB,CAAC,aAAD,CAAvB,CAAoD;AACxE;AACA;AACA;AACA;AACA,IAAIqC,oBAAqB;AACzB,IAAItC,cAAe;AACnB,CAPA;AASA,MAAM2C,QAAQ,GAAGzC,MAAM,CAACmC,GAAI;AAC5B,eAAgBzB,CAAD,IAAOA,CAAC,CAACI,KAAF,CAAQwB,KAAR,CAAcI,KAAM;AAC1C,WAAYhC,CAAD,IAAOT,GAAG,CAACS,CAAC,CAACI,KAAF,CAAQ6B,2BAAT,CAAsC;AAC3D;AACA;AACA,IAAI7C,cAAe;AACnB,CANA;AAQA,MAAM8C,KAAK,GAAG5C,MAAM,CAACmC,GAAI;AACzB;AACA;AACA,CAHA;AAKA,MAAMU,SAAS,GAAG7C,MAAM,CAAC4C,KAAD,CAAQ;AAChC,mBAAoBlC,CAAD,IAAOA,CAAC,CAACI,KAAF,CAAQgC,gCAAiC;AACnE,CAFA;AAIA,MAAMC,UAAU,GAAG/C,MAAM,CAAC4C,KAAD,CAAQ;AACjC,kBAAmBlC,CAAD,IAAOA,CAAC,CAACI,KAAF,CAAQgC,gCAAiC;AAClE;AACA;AACA;AACA;AACA;AACA,CAPA;AASA;AACA;AACA;;AACA,MAAME,UAAU,gBAAGpD,UAAU,CAC3B,CACE;AACEqD,EAAAA,KADF;AAEEC,EAAAA,QAFF;AAGEC,EAAAA,IAHF;AAIE/B,EAAAA,iBAAiB,GAAG,KAJtB;AAKEgC,EAAAA,KALF;AAME/B,EAAAA,kBAAkB,GAAG,KANvB;AAOEgC,EAAAA,MAPF;AAQEC,EAAAA,MAAM,GAAG9C,aARX;AASE,KAAG+C;AATL,CADF,EAYEC,GAZF,KAaK;AACH,QAAM;AAAEC,IAAAA;AAAF,MAAoB5D,UAAU,CAACU,aAAD,CAApC;AAEA,sBACE,oBAAC,cAAD;AACE,IAAA,SAAS,EAAGmD,CAAD,KAAQ;AACjB1C,MAAAA,uBAAuB,EAAE0C,CAAC,CAACC;AADV,KAAR;AADb,kBAKE,oBAAC,mBAAD;AACE,IAAA,iBAAiB,EAAEvC,iBAAiB,IAAI,CAAC,CAACiC,MAD5C;AAEE,IAAA,kBAAkB,EAAEhC,kBAFtB;AAGE,IAAA,mBAAmB,EAAEoC;AAHvB,KAIMF,IAJN;AAKE,IAAA,GAAG,EAAEC;AALP,MAOGH,MAAM,iBACL,oBAAC,UAAD;AACE,IAAA,IAAI,EAAC,OADP;AAEE,IAAA,IAAI,EAAC,OAFP;AAGE,IAAA,OAAO,EAAEA,MAHX;AAIE,kBAAYC,MAAM,CAACM;AAJrB,kBAME,oBAAC,IAAD,OANF,CARJ,EAkBGT,IAAI,iBAAI,oBAAC,SAAD,QAAYA,IAAZ,CAlBX,eAoBE,oBAAC,OAAD,qBACE,oBAAC,KAAD;AAAO,IAAA,WAAW,EAAE,CAAC,CAACD;AAAtB,KAAiCD,KAAjC,CADF,EAEGC,QAAQ,iBAAI,oBAAC,QAAD,QAAWA,QAAX,CAFf,CApBF,EAyBGE,KAAK,iBAAI,oBAAC,UAAD,QAAaA,KAAb,CAzBZ,CALF,CADF;AAmCD,CApD0B,CAA7B;AAuDAJ,UAAU,CAACa,WAAX,GAAyB,YAAzB;AAEA,eAAeb,UAAf","sourcesContent":["import React, { forwardRef, useContext } from 'react';\nimport { ellipsisStyles } from '@os-design/styles';\nimport { omitEmotionProps } from '@os-design/utils';\nimport styled from '@emotion/styled';\nimport { clr, ThemeOverrider } from '@os-design/theming';\nimport { m } from '@os-design/media';\nimport { Left } from '@os-design/icons';\nimport { css } from '@emotion/react';\nimport Button from '../Button';\nimport LayoutContext from '../Layout/LayoutContext';\nimport defaultLocale, { PageHeaderLocale } from './utils/defaultLocale';\n\ntype JsxDivProps = Omit<JSX.IntrinsicElements['div'], 'ref'>;\nexport interface PageHeaderProps extends JsxDivProps {\n /**\n * The title of the page.\n * @default undefined\n */\n title: string;\n /**\n * The subtitle of the page.\n * @default undefined\n */\n subtitle?: string;\n /**\n * The component located on the left side.\n * @default undefined\n */\n left?: React.ReactNode;\n /**\n * Reduces the left padding of the page header.\n * @default false\n */\n leftIsGhostButton?: boolean;\n /**\n * The component located on the right side.\n * @default undefined\n */\n right?: React.ReactNode;\n /**\n * Reduces the right padding of the page header.\n * @default false\n */\n rightIsGhostButton?: boolean;\n /**\n * The back event handler. If passed, the page header has the back button.\n * @default undefined\n */\n onBack?: () => void;\n /**\n * The locale.\n * @default undefined\n */\n locale?: PageHeaderLocale;\n}\n\nconst getReducedPadding = (p, isMinSm: boolean) => {\n const i = isMinSm ? 1 : 0;\n let padding = p.theme.horizontalPadding[i] - p.theme.buttonPaddingHorizontal;\n if (padding < 0) padding = 0;\n return padding;\n};\n\nconst horizontalPaddingStyles = (p) => {\n const reducedPadding = getReducedPadding(p, false);\n const reducedPaddingSm = getReducedPadding(p, true);\n return css`\n padding-left: ${p.leftIsGhostButton\n ? reducedPadding\n : p.theme.horizontalPadding[0]}em;\n padding-right: ${p.rightIsGhostButton\n ? reducedPadding\n : p.theme.horizontalPadding[0]}em;\n\n ${m.min.sm} {\n padding-left: ${p.leftIsGhostButton\n ? reducedPaddingSm\n : p.theme.horizontalPadding[1]}em;\n padding-right: ${p.rightIsGhostButton\n ? reducedPaddingSm\n : p.theme.horizontalPadding[1]}em;\n }\n `;\n};\n\nconst hasNavigationIndentStyles = (p) =>\n p.hasNavigationIndent &&\n css`\n ${m.min.md} {\n left: ${p.theme.navigationSideWidth}em;\n }\n `;\n\ninterface ContainerProps {\n leftIsGhostButton?: boolean;\n rightIsGhostButton?: boolean;\n hasNavigationIndent?: boolean;\n}\nexport const PageHeaderContainer = styled(\n 'div',\n omitEmotionProps(\n 'leftIsGhostButton',\n 'rightIsGhostButton',\n 'hasNavigationIndent'\n )\n)<ContainerProps>`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n\n height: ${(p) => p.theme.pageHeaderHeight[0]}em;\n ${m.min.md} {\n height: ${(p) => p.theme.pageHeaderHeight[1]}em;\n }\n\n display: flex;\n align-items: center;\n box-sizing: border-box;\n z-index: 101;\n\n background-color: ${(p) => clr(p.theme.pageHeaderColorBg)};\n color: ${(p) => clr(p.theme.pageHeaderColorText)};\n border-bottom: 1px solid ${(p) => clr(p.theme.pageHeaderColorBorder)};\n\n ${horizontalPaddingStyles};\n ${hasNavigationIndentStyles};\n`;\n\nconst BackButton = styled(Button)`\n margin-right: 0.2em;\n flex-shrink: 0;\n`;\n\nconst Content = styled.div`\n overflow: hidden; // For ellipsis\n`;\n\nconst notHasSubtitleStyles = (p) =>\n !p.hasSubtitle &&\n css`\n font-size: ${p.theme.sizes.large}em;\n `;\n\ninterface TitleProps {\n hasSubtitle: boolean;\n}\nconst Title = styled('h1', omitEmotionProps('hasSubtitle'))<TitleProps>`\n margin: 0;\n font-size: 1em;\n font-weight: 500;\n line-height: 1.5;\n ${notHasSubtitleStyles};\n ${ellipsisStyles};\n`;\n\nconst Subtitle = styled.div`\n font-size: ${(p) => p.theme.sizes.small}em;\n color: ${(p) => clr(p.theme.pageHeaderSubtitleColorText)};\n line-height: 1;\n margin-top: 0.2em;\n ${ellipsisStyles};\n`;\n\nconst Addon = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst LeftAddon = styled(Addon)`\n padding-right: ${(p) => p.theme.pageHeaderAddonPaddingHorizontal}em;\n`;\n\nconst RightAddon = styled(Addon)`\n padding-left: ${(p) => p.theme.pageHeaderAddonPaddingHorizontal}em;\n margin-left: auto;\n\n display: grid;\n grid-auto-flow: column;\n grid-column-gap: 0.4em;\n`;\n\n/**\n * The header of the page.\n */\nconst PageHeader = forwardRef<HTMLDivElement, PageHeaderProps>(\n (\n {\n title,\n subtitle,\n left,\n leftIsGhostButton = false,\n right,\n rightIsGhostButton = false,\n onBack,\n locale = defaultLocale,\n ...rest\n },\n ref\n ) => {\n const { hasNavigation } = useContext(LayoutContext);\n\n return (\n <ThemeOverrider\n overrides={(t) => ({\n buttonPaddingHorizontal: t.pageHeaderButtonPaddingHorizontal,\n })}\n >\n <PageHeaderContainer\n leftIsGhostButton={leftIsGhostButton || !!onBack}\n rightIsGhostButton={rightIsGhostButton}\n hasNavigationIndent={hasNavigation}\n {...rest}\n ref={ref}\n >\n {onBack && (\n <BackButton\n type='ghost'\n wide='never'\n onClick={onBack}\n aria-label={locale.backLabel}\n >\n <Left />\n </BackButton>\n )}\n\n {left && <LeftAddon>{left}</LeftAddon>}\n\n <Content>\n <Title hasSubtitle={!!subtitle}>{title}</Title>\n {subtitle && <Subtitle>{subtitle}</Subtitle>}\n </Content>\n\n {right && <RightAddon>{right}</RightAddon>}\n </PageHeaderContainer>\n </ThemeOverrider>\n );\n }\n);\n\nPageHeader.displayName = 'PageHeader';\n\nexport default PageHeader;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/PageHeader/index.tsx"],"names":["React","forwardRef","useContext","ellipsisStyles","omitEmotionProps","styled","clr","ThemeOverrider","m","Left","css","Button","LayoutContext","defaultLocale","getReducedPadding","p","isMinSm","i","padding","theme","horizontalPadding","buttonPaddingHorizontal","horizontalPaddingStyles","reducedPadding","reducedPaddingSm","leftIsGhostButton","rightIsGhostButton","min","sm","hasNavigationIndentStyles","hasNavigationIndent","md","navigationSideWidth","PageHeaderContainer","pageHeaderHeight","pageHeaderColorBg","pageHeaderColorText","pageHeaderColorBorder","BackButton","Content","div","notHasSubtitleStyles","hasSubtitle","sizes","large","Title","Subtitle","small","pageHeaderSubtitleColorText","Addon","LeftAddon","pageHeaderAddonPaddingHorizontal","RightAddon","PageHeader","title","subtitle","left","right","onBack","locale","rest","ref","hasNavigation","t","pageHeaderButtonPaddingHorizontal","backLabel","displayName"],"mappings":"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","sourcesContent":["import React, { forwardRef, useContext } from 'react';\nimport { ellipsisStyles } from '@os-design/styles';\nimport { omitEmotionProps } from '@os-design/utils';\nimport styled from '@emotion/styled';\nimport { clr, ThemeOverrider } from '@os-design/theming';\nimport { m } from '@os-design/media';\nimport { Left } from '@os-design/icons';\nimport { css } from '@emotion/react';\nimport Button from '../Button';\nimport LayoutContext from '../Layout/LayoutContext';\nimport defaultLocale, { PageHeaderLocale } from './utils/defaultLocale';\n\ntype JsxDivProps = Omit<JSX.IntrinsicElements['div'], 'ref'>;\nexport interface PageHeaderProps extends JsxDivProps {\n /**\n * The title of the page.\n * @default undefined\n */\n title: string;\n /**\n * The subtitle of the page.\n * @default undefined\n */\n subtitle?: string;\n /**\n * The component located on the left side.\n * @default undefined\n */\n left?: React.ReactNode;\n /**\n * Reduces the left padding of the page header.\n * @default false\n */\n leftIsGhostButton?: boolean;\n /**\n * The component located on the right side.\n * @default undefined\n */\n right?: React.ReactNode;\n /**\n * Reduces the right padding of the page header.\n * @default false\n */\n rightIsGhostButton?: boolean;\n /**\n * The back event handler. If passed, the page header has the back button.\n * @default undefined\n */\n onBack?: () => void;\n /**\n * The locale.\n * @default undefined\n */\n locale?: PageHeaderLocale;\n}\n\nconst getReducedPadding = (p, isMinSm: boolean) => {\n const i = isMinSm ? 1 : 0;\n let padding = p.theme.horizontalPadding[i] - p.theme.buttonPaddingHorizontal;\n if (padding < 0) padding = 0;\n return padding;\n};\n\nconst horizontalPaddingStyles = (p) => {\n const reducedPadding = getReducedPadding(p, false);\n const reducedPaddingSm = getReducedPadding(p, true);\n return css`\n padding-left: ${p.leftIsGhostButton\n ? reducedPadding\n : p.theme.horizontalPadding[0]}em;\n padding-right: ${p.rightIsGhostButton\n ? reducedPadding\n : p.theme.horizontalPadding[0]}em;\n\n ${m.min.sm} {\n padding-left: ${p.leftIsGhostButton\n ? reducedPaddingSm\n : p.theme.horizontalPadding[1]}em;\n padding-right: ${p.rightIsGhostButton\n ? reducedPaddingSm\n : p.theme.horizontalPadding[1]}em;\n }\n `;\n};\n\nconst hasNavigationIndentStyles = (p) =>\n p.hasNavigationIndent &&\n css`\n ${m.min.md} {\n left: ${p.theme.navigationSideWidth}em;\n }\n `;\n\ninterface ContainerProps {\n leftIsGhostButton?: boolean;\n rightIsGhostButton?: boolean;\n hasNavigationIndent?: boolean;\n}\nexport const PageHeaderContainer = styled(\n 'div',\n omitEmotionProps(\n 'leftIsGhostButton',\n 'rightIsGhostButton',\n 'hasNavigationIndent'\n )\n)<ContainerProps>`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n\n height: ${(p) => p.theme.pageHeaderHeight[0]}em;\n ${m.min.md} {\n height: ${(p) => p.theme.pageHeaderHeight[1]}em;\n }\n\n display: flex;\n align-items: center;\n box-sizing: border-box;\n z-index: 101;\n\n background-color: ${(p) => clr(p.theme.pageHeaderColorBg)};\n color: ${(p) => clr(p.theme.pageHeaderColorText)};\n border-bottom: 1px solid ${(p) => clr(p.theme.pageHeaderColorBorder)};\n\n ${horizontalPaddingStyles};\n ${hasNavigationIndentStyles};\n`;\n\nconst BackButton = styled(Button)`\n margin-right: 0.2em;\n flex-shrink: 0;\n`;\n\nconst Content = styled.div`\n overflow: hidden; // For ellipsis\n`;\n\nconst notHasSubtitleStyles = (p) =>\n !p.hasSubtitle &&\n css`\n font-size: ${p.theme.sizes.large}em;\n `;\n\ninterface TitleProps {\n hasSubtitle: boolean;\n}\nconst Title = styled('h1', omitEmotionProps('hasSubtitle'))<TitleProps>`\n margin: 0;\n font-size: 1em;\n font-weight: 500;\n line-height: 1.2;\n ${notHasSubtitleStyles};\n ${ellipsisStyles};\n`;\n\nconst Subtitle = styled.div`\n font-size: ${(p) => p.theme.sizes.small}em;\n color: ${(p) => clr(p.theme.pageHeaderSubtitleColorText)};\n line-height: 1;\n margin-top: 0.2em;\n ${ellipsisStyles};\n`;\n\nconst Addon = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst LeftAddon = styled(Addon)`\n padding-right: ${(p) => p.theme.pageHeaderAddonPaddingHorizontal}em;\n`;\n\nconst RightAddon = styled(Addon)`\n padding-left: ${(p) => p.theme.pageHeaderAddonPaddingHorizontal}em;\n margin-left: auto;\n\n display: grid;\n grid-auto-flow: column;\n grid-column-gap: 0.4em;\n`;\n\n/**\n * The header of the page.\n */\nconst PageHeader = forwardRef<HTMLDivElement, PageHeaderProps>(\n (\n {\n title,\n subtitle,\n left,\n leftIsGhostButton = false,\n right,\n rightIsGhostButton = false,\n onBack,\n locale = defaultLocale,\n ...rest\n },\n ref\n ) => {\n const { hasNavigation } = useContext(LayoutContext);\n\n return (\n <ThemeOverrider\n overrides={(t) => ({\n buttonPaddingHorizontal: t.pageHeaderButtonPaddingHorizontal,\n })}\n >\n <PageHeaderContainer\n leftIsGhostButton={leftIsGhostButton || !!onBack}\n rightIsGhostButton={rightIsGhostButton}\n hasNavigationIndent={hasNavigation}\n {...rest}\n ref={ref}\n >\n {onBack && (\n <BackButton\n type='ghost'\n wide='never'\n onClick={onBack}\n aria-label={locale.backLabel}\n >\n <Left />\n </BackButton>\n )}\n\n {left && <LeftAddon>{left}</LeftAddon>}\n\n <Content>\n <Title hasSubtitle={!!subtitle}>{title}</Title>\n {subtitle && <Subtitle>{subtitle}</Subtitle>}\n </Content>\n\n {right && <RightAddon>{right}</RightAddon>}\n </PageHeaderContainer>\n </ThemeOverrider>\n );\n }\n);\n\nPageHeader.displayName = 'PageHeader';\n\nexport default PageHeader;\n"],"file":"index.js"}
@@ -11,6 +11,7 @@ export interface ListProps {
11
11
  onLoadNext?: () => void;
12
12
  itemRenderer?: React.FC<ListChildComponentProps>;
13
13
  outerRef?: FixedSizeListProps['outerRef'];
14
+ innerRef?: FixedSizeListProps['innerRef'];
14
15
  }
15
16
  declare const List: React.ForwardRefExoticComponent<ListProps & React.RefAttributes<FixedSizeList<any>>>;
16
17
  export { default as WindowScroller } from './WindowScroller';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/List/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuD,MAAM,OAAO,CAAC;AAC5E,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,uBAAuB,EACxB,MAAM,cAAc,CAAC;AAatB,MAAM,WAAW,SAAS;IAIxB,SAAS,EAAE,MAAM,CAAC;IAIlB,QAAQ,CAAC,EAAE,GAAG,CAAC;IAKf,UAAU,CAAC,EAAE,MAAM,CAAC;IAKpB,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,aAAa,CAAC,EAAE,MAAM,CAAC;IAKvB,UAAU,CAAC,EAAE,MAAM,CAAC;IAKpB,aAAa,CAAC,EAAE,MAAM,CAAC;IAKvB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IAKxB,YAAY,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAC;IAKjD,QAAQ,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;CAC3C;AAMD,QAAA,MAAM,IAAI,sFAsHT,CAAC;AAIF,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEjE,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/List/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuD,MAAM,OAAO,CAAC;AAC5E,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,uBAAuB,EACxB,MAAM,cAAc,CAAC;AAatB,MAAM,WAAW,SAAS;IAIxB,SAAS,EAAE,MAAM,CAAC;IAIlB,QAAQ,CAAC,EAAE,GAAG,CAAC;IAKf,UAAU,CAAC,EAAE,MAAM,CAAC;IAKpB,SAAS,CAAC,EAAE,MAAM,CAAC;IAKnB,aAAa,CAAC,EAAE,MAAM,CAAC;IAKvB,UAAU,CAAC,EAAE,MAAM,CAAC;IAKpB,aAAa,CAAC,EAAE,MAAM,CAAC;IAKvB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IAKxB,YAAY,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAC;IAKjD,QAAQ,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAK1C,QAAQ,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;CAC3C;AAMD,QAAA,MAAM,IAAI,sFAwHT,CAAC;AAIF,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEjE,eAAe,IAAI,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@os-design/core",
3
- "version": "1.0.111",
3
+ "version": "1.0.115",
4
4
  "license": "UNLICENSED",
5
5
  "repository": "git@gitlab.com:os-team/libs/os-design.git",
6
6
  "main": "dist/cjs/index.js",
@@ -39,7 +39,7 @@
39
39
  "@os-design/utils": "^1.0.43",
40
40
  "@os-team/password-score": "^1.0.3",
41
41
  "facepaint": "^1.2.1",
42
- "react-focus-lock": "^2.7.1",
42
+ "react-focus-lock": "^2.8.1",
43
43
  "react-window": "^1.8.6"
44
44
  },
45
45
  "devDependencies": {
@@ -53,8 +53,8 @@
53
53
  "@emotion/react": ">=11",
54
54
  "@emotion/serialize": "*",
55
55
  "@emotion/styled": ">=11",
56
- "react": "0.0.0-experimental-aa8f2bdbc-20211215",
57
- "react-dom": "0.0.0-experimental-aa8f2bdbc-20211215"
56
+ "react": "0.0.0-experimental-27b569969-20220211",
57
+ "react-dom": "0.0.0-experimental-27b569969-20220211"
58
58
  },
59
- "gitHead": "277259f0c58589733d87ac1aa8aed94ff1058365"
59
+ "gitHead": "4ec3bd14666796d88c5858245db14b814947de21"
60
60
  }