@razorpay/blade 11.32.0 → 11.34.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.
Files changed (68) hide show
  1. package/build/lib/native/components/BottomNav/BottomNav.native.js +17 -0
  2. package/build/lib/native/components/BottomNav/BottomNav.native.js.map +1 -0
  3. package/build/lib/native/components/Button/IconButton/IconButton.js +1 -1
  4. package/build/lib/native/components/Button/IconButton/IconButton.js.map +1 -1
  5. package/build/lib/native/components/Table/TableContext.js +1 -1
  6. package/build/lib/native/components/Table/TableContext.js.map +1 -1
  7. package/build/lib/native/components/Table/tokens.js.map +1 -1
  8. package/build/lib/native/components/index.js +1 -0
  9. package/build/lib/native/components/index.js.map +1 -1
  10. package/build/lib/native/utils/componentZIndices.js +1 -1
  11. package/build/lib/native/utils/componentZIndices.js.map +1 -1
  12. package/build/lib/native/utils/metaAttribute/metaConstants.js +1 -1
  13. package/build/lib/native/utils/metaAttribute/metaConstants.js.map +1 -1
  14. package/build/lib/web/development/components/BottomNav/BottomNav.web.js +136 -0
  15. package/build/lib/web/development/components/BottomNav/BottomNav.web.js.map +1 -0
  16. package/build/lib/web/development/components/BottomNav/index.js +2 -0
  17. package/build/lib/web/development/components/BottomNav/index.js.map +1 -0
  18. package/build/lib/web/development/components/Button/IconButton/IconButton.js +2 -0
  19. package/build/lib/web/development/components/Button/IconButton/IconButton.js.map +1 -1
  20. package/build/lib/web/development/components/Button/IconButton/StyledIconButton.web.js +25 -3
  21. package/build/lib/web/development/components/Button/IconButton/StyledIconButton.web.js.map +1 -1
  22. package/build/lib/web/development/components/Button/IconButton/tokens.js +14 -0
  23. package/build/lib/web/development/components/Button/IconButton/tokens.js.map +1 -0
  24. package/build/lib/web/development/components/Table/Table.web.js +12 -3
  25. package/build/lib/web/development/components/Table/Table.web.js.map +1 -1
  26. package/build/lib/web/development/components/Table/TableBody.web.js +214 -70
  27. package/build/lib/web/development/components/Table/TableBody.web.js.map +1 -1
  28. package/build/lib/web/development/components/Table/TableContext.js +3 -1
  29. package/build/lib/web/development/components/Table/TableContext.js.map +1 -1
  30. package/build/lib/web/development/components/Table/TableHeader.web.js +14 -6
  31. package/build/lib/web/development/components/Table/TableHeader.web.js.map +1 -1
  32. package/build/lib/web/development/components/Table/tokens.js +6 -1
  33. package/build/lib/web/development/components/Table/tokens.js.map +1 -1
  34. package/build/lib/web/development/components/index.js +2 -0
  35. package/build/lib/web/development/components/index.js.map +1 -1
  36. package/build/lib/web/development/utils/componentZIndices.js +2 -0
  37. package/build/lib/web/development/utils/componentZIndices.js.map +1 -1
  38. package/build/lib/web/development/utils/metaAttribute/metaConstants.js +2 -0
  39. package/build/lib/web/development/utils/metaAttribute/metaConstants.js.map +1 -1
  40. package/build/lib/web/production/components/BottomNav/BottomNav.web.js +136 -0
  41. package/build/lib/web/production/components/BottomNav/BottomNav.web.js.map +1 -0
  42. package/build/lib/web/production/components/BottomNav/index.js +2 -0
  43. package/build/lib/web/production/components/BottomNav/index.js.map +1 -0
  44. package/build/lib/web/production/components/Button/IconButton/IconButton.js +2 -0
  45. package/build/lib/web/production/components/Button/IconButton/IconButton.js.map +1 -1
  46. package/build/lib/web/production/components/Button/IconButton/StyledIconButton.web.js +25 -3
  47. package/build/lib/web/production/components/Button/IconButton/StyledIconButton.web.js.map +1 -1
  48. package/build/lib/web/production/components/Button/IconButton/tokens.js +14 -0
  49. package/build/lib/web/production/components/Button/IconButton/tokens.js.map +1 -0
  50. package/build/lib/web/production/components/Table/Table.web.js +12 -3
  51. package/build/lib/web/production/components/Table/Table.web.js.map +1 -1
  52. package/build/lib/web/production/components/Table/TableBody.web.js +214 -70
  53. package/build/lib/web/production/components/Table/TableBody.web.js.map +1 -1
  54. package/build/lib/web/production/components/Table/TableContext.js +3 -1
  55. package/build/lib/web/production/components/Table/TableContext.js.map +1 -1
  56. package/build/lib/web/production/components/Table/TableHeader.web.js +14 -6
  57. package/build/lib/web/production/components/Table/TableHeader.web.js.map +1 -1
  58. package/build/lib/web/production/components/Table/tokens.js +6 -1
  59. package/build/lib/web/production/components/Table/tokens.js.map +1 -1
  60. package/build/lib/web/production/components/index.js +2 -0
  61. package/build/lib/web/production/components/index.js.map +1 -1
  62. package/build/lib/web/production/utils/componentZIndices.js +2 -0
  63. package/build/lib/web/production/utils/componentZIndices.js.map +1 -1
  64. package/build/lib/web/production/utils/metaAttribute/metaConstants.js +2 -0
  65. package/build/lib/web/production/utils/metaAttribute/metaConstants.js.map +1 -1
  66. package/build/types/components/index.d.ts +144 -18
  67. package/build/types/components/index.native.d.ts +96 -15
  68. package/package.json +1 -1
@@ -1,12 +1,17 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import styled from 'styled-components';
3
3
  import React__default from 'react';
4
+ import { highlightedButtonSizeMap, highlightedHoverColorMap } from './tokens.js';
4
5
  import '../../../utils/index.js';
5
6
  import '../../../utils/metaAttribute/index.js';
6
7
  import '../../../utils/makeAccessible/index.js';
7
8
  import '../../../utils/makeMotionTime/index.web.js';
8
9
  import '../../../utils/getFocusRingStyles/index.js';
10
+ import '../../../utils/logger/index.js';
11
+ import getIn from '../../../utils/lodashButBetter/get.js';
9
12
  import { jsx } from 'react/jsx-runtime';
13
+ import { throwBladeError } from '../../../utils/logger/logger.js';
14
+ import { makeSize } from '../../../utils/makeSize/makeSize.js';
10
15
  import { castWebType } from '../../../utils/platform/castUtils.js';
11
16
  import { makeMotionTime } from '../../../utils/makeMotionTime/makeMotionTime.web.js';
12
17
  import { getFocusRingStyles } from '../../../utils/getFocusRingStyles/getFocusRingStyles.web.js';
@@ -24,11 +29,24 @@ var StyledButton = /*#__PURE__*/styled.button.withConfig({
24
29
  emphasis = props.emphasis;
25
30
  var motionToken = theme.motion;
26
31
  var emphasisColor = emphasis === 'intense' ? 'gray' : 'staticWhite';
32
+ if (false) {
33
+ if (props.$size === 'large' && props.$isHighlighted) {
34
+ throwBladeError({
35
+ moduleName: 'IconButton',
36
+ message: 'size large is not allowed with isHighlighted true'
37
+ });
38
+ return null;
39
+ }
40
+ }
27
41
  return {
28
42
  border: 'none',
29
43
  cursor: props.disabled ? 'not-allowed' : 'pointer',
30
44
  padding: 0,
31
- borderRadius: theme.border.radius.small,
45
+ height: props.$isHighlighted ?
46
+ // We throw error for size large on top
47
+ makeSize(highlightedButtonSizeMap[props.$size]) : undefined,
48
+ width: props.$isHighlighted ? makeSize(highlightedButtonSizeMap[props.$size]) : undefined,
49
+ borderRadius: props.$isHighlighted ? theme.border.radius.round : theme.border.radius.small,
32
50
  background: 'transparent',
33
51
  display: 'flex',
34
52
  alignItems: 'center',
@@ -37,8 +55,9 @@ var StyledButton = /*#__PURE__*/styled.button.withConfig({
37
55
  transitionProperty: 'color, box-shadow',
38
56
  transitionDuration: castWebType(makeMotionTime(motionToken.duration.xquick)),
39
57
  transitionTimingFunction: motionToken.easing.standard.effective,
40
- '&:hover': {
41
- color: theme.colors.interactive.icon[emphasisColor].subtle
58
+ '&:hover:not([disabled])': {
59
+ color: theme.colors.interactive.icon[emphasisColor].subtle,
60
+ backgroundColor: props.$isHighlighted ? getIn(theme.colors, highlightedHoverColorMap[emphasis]) : 'transparent'
42
61
  },
43
62
  '&:focus-visible': _objectSpread(_objectSpread({}, getFocusRingStyles({
44
63
  theme: theme
@@ -57,6 +76,7 @@ var StyledIconButton = /*#__PURE__*/React__default.forwardRef(function (_ref, re
57
76
  emphasis = _ref.emphasis,
58
77
  accessibilityLabel = _ref.accessibilityLabel,
59
78
  isDisabled = _ref.isDisabled,
79
+ isHighlighted = _ref.isHighlighted,
60
80
  testID = _ref.testID,
61
81
  onBlur = _ref.onBlur,
62
82
  onFocus = _ref.onFocus,
@@ -81,6 +101,8 @@ var StyledIconButton = /*#__PURE__*/React__default.forwardRef(function (_ref, re
81
101
  onTouchEnd: onTouchEnd,
82
102
  onTouchStart: onTouchStart,
83
103
  disabled: isDisabled,
104
+ $isHighlighted: isHighlighted,
105
+ $size: size,
84
106
  tabIndex: tabIndex
85
107
  }, makeAccessible({
86
108
  label: accessibilityLabel
@@ -1 +1 @@
1
- {"version":3,"file":"StyledIconButton.web.js","sources":["../../../../../../../src/components/Button/IconButton/StyledIconButton.web.tsx"],"sourcesContent":["/* eslint-disable react/display-name */\nimport styled from 'styled-components';\nimport type { ReactElement } from 'react';\nimport React from 'react';\nimport type { StyledIconButtonProps } from './types';\nimport { castWebType } from '~utils';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport type { SubtleOrIntense } from '~tokens/theme/theme';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { makeMotionTime } from '~utils/makeMotionTime';\nimport { getFocusRingStyles } from '~utils/getFocusRingStyles';\n\ntype StyledButtonProps = {\n emphasis: SubtleOrIntense;\n};\n\nconst StyledButton = styled.button<StyledButtonProps>((props) => {\n const { theme, emphasis } = props;\n const motionToken = theme.motion;\n\n const emphasisColor = emphasis === 'intense' ? 'gray' : 'staticWhite';\n\n return {\n border: 'none',\n cursor: props.disabled ? 'not-allowed' : 'pointer',\n padding: 0,\n borderRadius: theme.border.radius.small,\n background: 'transparent',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: props.disabled\n ? theme.colors.interactive.icon[emphasisColor].disabled\n : theme.colors.interactive.icon[emphasisColor].muted,\n transitionProperty: 'color, box-shadow',\n transitionDuration: castWebType(makeMotionTime(motionToken.duration.xquick)),\n transitionTimingFunction: motionToken.easing.standard.effective as string,\n\n '&:hover': {\n color: theme.colors.interactive.icon[emphasisColor].subtle,\n },\n\n '&:focus-visible': {\n ...getFocusRingStyles({ theme }),\n color: theme.colors.interactive.icon[emphasisColor].subtle,\n },\n\n '&:active': {\n color: theme.colors.interactive.icon[emphasisColor].subtle,\n },\n };\n});\n\nconst StyledIconButton = React.forwardRef<HTMLButtonElement, StyledIconButtonProps>(\n (\n {\n icon: Icon,\n onClick,\n size,\n emphasis,\n accessibilityLabel,\n isDisabled,\n testID,\n onBlur,\n onFocus,\n onMouseLeave,\n onMouseMove,\n onPointerDown,\n onPointerEnter,\n onTouchEnd,\n onTouchStart,\n tabIndex,\n },\n ref,\n ): ReactElement => (\n <StyledButton\n ref={ref}\n onClick={castWebType(onClick)}\n emphasis={emphasis}\n type=\"button\"\n onBlur={onBlur}\n onFocus={onFocus}\n onMouseLeave={onMouseLeave}\n onMouseMove={onMouseMove}\n onPointerDown={onPointerDown}\n onPointerEnter={onPointerEnter}\n onTouchEnd={onTouchEnd}\n onTouchStart={onTouchStart}\n disabled={isDisabled}\n tabIndex={tabIndex}\n {...makeAccessible({ label: accessibilityLabel })}\n {...metaAttribute({ name: MetaConstants.IconButton, testID })}\n >\n <Icon size={size} color={isDisabled ? 'interactive.icon.gray.disabled' : 'currentColor'} />\n </StyledButton>\n ),\n);\n\nexport default StyledIconButton;\n"],"names":["StyledButton","styled","button","withConfig","displayName","componentId","props","theme","emphasis","motionToken","motion","emphasisColor","border","cursor","disabled","padding","borderRadius","radius","small","background","display","alignItems","justifyContent","color","colors","interactive","icon","muted","transitionProperty","transitionDuration","castWebType","makeMotionTime","duration","xquick","transitionTimingFunction","easing","standard","effective","subtle","_objectSpread","getFocusRingStyles","StyledIconButton","React","forwardRef","_ref","ref","Icon","onClick","size","accessibilityLabel","isDisabled","testID","onBlur","onFocus","onMouseLeave","onMouseMove","onPointerDown","onPointerEnter","onTouchEnd","onTouchStart","tabIndex","_jsx","type","makeAccessible","label","metaAttribute","name","MetaConstants","IconButton","children"],"mappings":"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"}
1
+ {"version":3,"file":"StyledIconButton.web.js","sources":["../../../../../../../src/components/Button/IconButton/StyledIconButton.web.tsx"],"sourcesContent":["/* eslint-disable react/display-name */\nimport styled from 'styled-components';\nimport type { ReactElement } from 'react';\nimport React from 'react';\nimport type { StyledIconButtonProps } from './types';\nimport { highlightedButtonSizeMap, highlightedHoverColorMap } from './tokens';\nimport { castWebType, makeSize } from '~utils';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport type { SubtleOrIntense } from '~tokens/theme/theme';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { makeMotionTime } from '~utils/makeMotionTime';\nimport { getFocusRingStyles } from '~utils/getFocusRingStyles';\nimport { throwBladeError } from '~utils/logger';\nimport getIn from '~utils/lodashButBetter/get';\n\ntype StyledButtonProps = {\n emphasis: SubtleOrIntense;\n $isHighlighted: StyledIconButtonProps['isHighlighted'];\n $size: StyledIconButtonProps['size'];\n};\n\nconst StyledButton = styled.button<StyledButtonProps>((props) => {\n const { theme, emphasis } = props;\n const motionToken = theme.motion;\n\n const emphasisColor = emphasis === 'intense' ? 'gray' : 'staticWhite';\n\n if (__DEV__) {\n if (props.$size === 'large' && props.$isHighlighted) {\n throwBladeError({\n moduleName: 'IconButton',\n message: 'size large is not allowed with isHighlighted true',\n });\n return null;\n }\n }\n\n return {\n border: 'none',\n cursor: props.disabled ? 'not-allowed' : 'pointer',\n padding: 0,\n height: props.$isHighlighted\n ? // We throw error for size large on top\n makeSize(highlightedButtonSizeMap[props.$size as 'small' | 'medium'])\n : undefined,\n width: props.$isHighlighted\n ? makeSize(highlightedButtonSizeMap[props.$size as 'small' | 'medium'])\n : undefined,\n borderRadius: props.$isHighlighted ? theme.border.radius.round : theme.border.radius.small,\n background: 'transparent',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: props.disabled\n ? theme.colors.interactive.icon[emphasisColor].disabled\n : theme.colors.interactive.icon[emphasisColor].muted,\n transitionProperty: 'color, box-shadow',\n transitionDuration: castWebType(makeMotionTime(motionToken.duration.xquick)),\n transitionTimingFunction: motionToken.easing.standard.effective as string,\n\n '&:hover:not([disabled])': {\n color: theme.colors.interactive.icon[emphasisColor].subtle,\n backgroundColor: props.$isHighlighted\n ? getIn(theme.colors, highlightedHoverColorMap[emphasis])\n : 'transparent',\n },\n\n '&:focus-visible': {\n ...getFocusRingStyles({ theme }),\n color: theme.colors.interactive.icon[emphasisColor].subtle,\n },\n\n '&:active': {\n color: theme.colors.interactive.icon[emphasisColor].subtle,\n },\n };\n});\n\nconst StyledIconButton = React.forwardRef<HTMLButtonElement, StyledIconButtonProps>(\n (\n {\n icon: Icon,\n onClick,\n size,\n emphasis,\n accessibilityLabel,\n isDisabled,\n isHighlighted,\n testID,\n onBlur,\n onFocus,\n onMouseLeave,\n onMouseMove,\n onPointerDown,\n onPointerEnter,\n onTouchEnd,\n onTouchStart,\n tabIndex,\n },\n ref,\n ): ReactElement => (\n <StyledButton\n ref={ref}\n onClick={castWebType(onClick)}\n emphasis={emphasis}\n type=\"button\"\n onBlur={onBlur}\n onFocus={onFocus}\n onMouseLeave={onMouseLeave}\n onMouseMove={onMouseMove}\n onPointerDown={onPointerDown}\n onPointerEnter={onPointerEnter}\n onTouchEnd={onTouchEnd}\n onTouchStart={onTouchStart}\n disabled={isDisabled}\n $isHighlighted={isHighlighted}\n $size={size}\n tabIndex={tabIndex}\n {...makeAccessible({ label: accessibilityLabel })}\n {...metaAttribute({ name: MetaConstants.IconButton, testID })}\n >\n <Icon size={size} color={isDisabled ? 'interactive.icon.gray.disabled' : 'currentColor'} />\n </StyledButton>\n ),\n);\n\nexport default StyledIconButton;\n"],"names":["StyledButton","styled","button","withConfig","displayName","componentId","props","theme","emphasis","motionToken","motion","emphasisColor","$size","$isHighlighted","throwBladeError","moduleName","message","border","cursor","disabled","padding","height","makeSize","highlightedButtonSizeMap","undefined","width","borderRadius","radius","round","small","background","display","alignItems","justifyContent","color","colors","interactive","icon","muted","transitionProperty","transitionDuration","castWebType","makeMotionTime","duration","xquick","transitionTimingFunction","easing","standard","effective","subtle","backgroundColor","getIn","highlightedHoverColorMap","_objectSpread","getFocusRingStyles","StyledIconButton","React","forwardRef","_ref","ref","Icon","onClick","size","accessibilityLabel","isDisabled","isHighlighted","testID","onBlur","onFocus","onMouseLeave","onMouseMove","onPointerDown","onPointerEnter","onTouchEnd","onTouchStart","tabIndex","_jsx","type","makeAccessible","label","metaAttribute","name","MetaConstants","IconButton","children"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAqBA,IAAMA,YAAY,gBAAGC,MAAM,CAACC,MAAM,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,mCAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAAoB,CAAA,CAAA,UAACC,KAAK,EAAK;AAC/D,EAAA,IAAQC,KAAK,GAAeD,KAAK,CAAzBC,KAAK;IAAEC,QAAQ,GAAKF,KAAK,CAAlBE,QAAQ,CAAA;AACvB,EAAA,IAAMC,WAAW,GAAGF,KAAK,CAACG,MAAM,CAAA;EAEhC,IAAMC,aAAa,GAAGH,QAAQ,KAAK,SAAS,GAAG,MAAM,GAAG,aAAa,CAAA;AAErE,EAAA,IAAI,KAAO,EAAE;IACX,IAAIF,KAAK,CAACM,KAAK,KAAK,OAAO,IAAIN,KAAK,CAACO,cAAc,EAAE;AACnDC,MAAAA,eAAe,CAAC;AACdC,QAAAA,UAAU,EAAE,YAAY;AACxBC,QAAAA,OAAO,EAAE,mDAAA;AACX,OAAC,CAAC,CAAA;AACF,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;AACF,GAAA;EAEA,OAAO;AACLC,IAAAA,MAAM,EAAE,MAAM;AACdC,IAAAA,MAAM,EAAEZ,KAAK,CAACa,QAAQ,GAAG,aAAa,GAAG,SAAS;AAClDC,IAAAA,OAAO,EAAE,CAAC;IACVC,MAAM,EAAEf,KAAK,CAACO,cAAc;AACxB;IACAS,QAAQ,CAACC,wBAAwB,CAACjB,KAAK,CAACM,KAAK,CAAuB,CAAC,GACrEY,SAAS;AACbC,IAAAA,KAAK,EAAEnB,KAAK,CAACO,cAAc,GACvBS,QAAQ,CAACC,wBAAwB,CAACjB,KAAK,CAACM,KAAK,CAAuB,CAAC,GACrEY,SAAS;AACbE,IAAAA,YAAY,EAAEpB,KAAK,CAACO,cAAc,GAAGN,KAAK,CAACU,MAAM,CAACU,MAAM,CAACC,KAAK,GAAGrB,KAAK,CAACU,MAAM,CAACU,MAAM,CAACE,KAAK;AAC1FC,IAAAA,UAAU,EAAE,aAAa;AACzBC,IAAAA,OAAO,EAAE,MAAM;AACfC,IAAAA,UAAU,EAAE,QAAQ;AACpBC,IAAAA,cAAc,EAAE,QAAQ;AACxBC,IAAAA,KAAK,EAAE5B,KAAK,CAACa,QAAQ,GACjBZ,KAAK,CAAC4B,MAAM,CAACC,WAAW,CAACC,IAAI,CAAC1B,aAAa,CAAC,CAACQ,QAAQ,GACrDZ,KAAK,CAAC4B,MAAM,CAACC,WAAW,CAACC,IAAI,CAAC1B,aAAa,CAAC,CAAC2B,KAAK;AACtDC,IAAAA,kBAAkB,EAAE,mBAAmB;IACvCC,kBAAkB,EAAEC,WAAW,CAACC,cAAc,CAACjC,WAAW,CAACkC,QAAQ,CAACC,MAAM,CAAC,CAAC;AAC5EC,IAAAA,wBAAwB,EAAEpC,WAAW,CAACqC,MAAM,CAACC,QAAQ,CAACC,SAAmB;AAEzE,IAAA,yBAAyB,EAAE;AACzBd,MAAAA,KAAK,EAAE3B,KAAK,CAAC4B,MAAM,CAACC,WAAW,CAACC,IAAI,CAAC1B,aAAa,CAAC,CAACsC,MAAM;AAC1DC,MAAAA,eAAe,EAAE5C,KAAK,CAACO,cAAc,GACjCsC,KAAK,CAAC5C,KAAK,CAAC4B,MAAM,EAAEiB,wBAAwB,CAAC5C,QAAQ,CAAC,CAAC,GACvD,aAAA;KACL;AAED,IAAA,iBAAiB,EAAA6C,aAAA,CAAAA,aAAA,CAAA,EAAA,EACZC,kBAAkB,CAAC;AAAE/C,MAAAA,KAAK,EAALA,KAAAA;AAAM,KAAC,CAAC,CAAA,EAAA,EAAA,EAAA;MAChC2B,KAAK,EAAE3B,KAAK,CAAC4B,MAAM,CAACC,WAAW,CAACC,IAAI,CAAC1B,aAAa,CAAC,CAACsC,MAAAA;KACrD,CAAA;AAED,IAAA,UAAU,EAAE;MACVf,KAAK,EAAE3B,KAAK,CAAC4B,MAAM,CAACC,WAAW,CAACC,IAAI,CAAC1B,aAAa,CAAC,CAACsC,MAAAA;AACtD,KAAA;GACD,CAAA;AACH,CAAC,CAAC,CAAA;AAEIM,IAAAA,gBAAgB,gBAAGC,cAAK,CAACC,UAAU,CACvC,UAAAC,IAAA,EAoBEC,GAAG,EAAA;AAAA,EAAA,IAlBKC,IAAI,GAAAF,IAAA,CAAVrB,IAAI;IACJwB,OAAO,GAAAH,IAAA,CAAPG,OAAO;IACPC,IAAI,GAAAJ,IAAA,CAAJI,IAAI;IACJtD,QAAQ,GAAAkD,IAAA,CAARlD,QAAQ;IACRuD,kBAAkB,GAAAL,IAAA,CAAlBK,kBAAkB;IAClBC,UAAU,GAAAN,IAAA,CAAVM,UAAU;IACVC,aAAa,GAAAP,IAAA,CAAbO,aAAa;IACbC,MAAM,GAAAR,IAAA,CAANQ,MAAM;IACNC,MAAM,GAAAT,IAAA,CAANS,MAAM;IACNC,OAAO,GAAAV,IAAA,CAAPU,OAAO;IACPC,YAAY,GAAAX,IAAA,CAAZW,YAAY;IACZC,WAAW,GAAAZ,IAAA,CAAXY,WAAW;IACXC,aAAa,GAAAb,IAAA,CAAba,aAAa;IACbC,cAAc,GAAAd,IAAA,CAAdc,cAAc;IACdC,UAAU,GAAAf,IAAA,CAAVe,UAAU;IACVC,YAAY,GAAAhB,IAAA,CAAZgB,YAAY;IACZC,QAAQ,GAAAjB,IAAA,CAARiB,QAAQ,CAAA;EAAA,oBAIVC,GAAA,CAAC5E,YAAY,EAAAqD,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAA;AACXM,IAAAA,GAAG,EAAEA,GAAI;AACTE,IAAAA,OAAO,EAAEpB,WAAW,CAACoB,OAAO,CAAE;AAC9BrD,IAAAA,QAAQ,EAAEA,QAAS;AACnBqE,IAAAA,IAAI,EAAC,QAAQ;AACbV,IAAAA,MAAM,EAAEA,MAAO;AACfC,IAAAA,OAAO,EAAEA,OAAQ;AACjBC,IAAAA,YAAY,EAAEA,YAAa;AAC3BC,IAAAA,WAAW,EAAEA,WAAY;AACzBC,IAAAA,aAAa,EAAEA,aAAc;AAC7BC,IAAAA,cAAc,EAAEA,cAAe;AAC/BC,IAAAA,UAAU,EAAEA,UAAW;AACvBC,IAAAA,YAAY,EAAEA,YAAa;AAC3BvD,IAAAA,QAAQ,EAAE6C,UAAW;AACrBnD,IAAAA,cAAc,EAAEoD,aAAc;AAC9BrD,IAAAA,KAAK,EAAEkD,IAAK;AACZa,IAAAA,QAAQ,EAAEA,QAAAA;AAAS,GAAA,EACfG,cAAc,CAAC;AAAEC,IAAAA,KAAK,EAAEhB,kBAAAA;GAAoB,CAAC,CAC7CiB,EAAAA,aAAa,CAAC;IAAEC,IAAI,EAAEC,aAAa,CAACC,UAAU;AAAEjB,IAAAA,MAAM,EAANA,MAAAA;AAAO,GAAC,CAAC,CAAA,EAAA,EAAA,EAAA;IAAAkB,QAAA,eAE7DR,GAAA,CAAChB,IAAI,EAAA;AAACE,MAAAA,IAAI,EAAEA,IAAK;AAAC5B,MAAAA,KAAK,EAAE8B,UAAU,GAAG,gCAAgC,GAAG,cAAA;KAAiB,CAAA;AAAC,GAAA,CAC/E,CAAC,CAAA;AAAA,CAEnB;;;;"}
@@ -0,0 +1,14 @@
1
+ import '../../../tokens/global/index.js';
2
+ import { size } from '../../../tokens/global/size.js';
3
+
4
+ var highlightedButtonSizeMap = {
5
+ small: size['24'],
6
+ medium: size['32']
7
+ };
8
+ var highlightedHoverColorMap = {
9
+ intense: 'interactive.background.gray.fadedHighlighted',
10
+ subtle: 'interactive.background.staticWhite.faded'
11
+ };
12
+
13
+ export { highlightedButtonSizeMap, highlightedHoverColorMap };
14
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.js","sources":["../../../../../../../src/components/Button/IconButton/tokens.ts"],"sourcesContent":["import { size } from '~tokens/global';\n\nconst highlightedButtonSizeMap = {\n small: size['24'],\n medium: size['32'],\n} as const;\n\nconst highlightedHoverColorMap = {\n intense: 'interactive.background.gray.fadedHighlighted',\n subtle: 'interactive.background.staticWhite.faded',\n} as const;\n\nexport { highlightedButtonSizeMap, highlightedHoverColorMap };\n"],"names":["highlightedButtonSizeMap","small","size","medium","highlightedHoverColorMap","intense","subtle"],"mappings":";;;AAEA,IAAMA,wBAAwB,GAAG;AAC/BC,EAAAA,KAAK,EAAEC,IAAI,CAAC,IAAI,CAAC;EACjBC,MAAM,EAAED,IAAI,CAAC,IAAI,CAAA;AACnB,EAAU;AAEV,IAAME,wBAAwB,GAAG;AAC/BC,EAAAA,OAAO,EAAE,8CAA8C;AACvDC,EAAAA,MAAM,EAAE,0CAAA;AACV;;;;"}
@@ -24,6 +24,7 @@ import '../../utils/assignWithoutSideEffects/index.js';
24
24
  import '../BladeProvider/index.js';
25
25
  import getIn from '../../utils/lodashButBetter/get.js';
26
26
  import '../../utils/makeAccessible/index.js';
27
+ import { useIsMobile } from '../../utils/useIsMobile.js';
27
28
  import { jsx, jsxs } from 'react/jsx-runtime';
28
29
  import { getComponentId, isValidAllowedChildren } from '../../utils/isValidAllowedChildren/isValidAllowedChildren.js';
29
30
  import useTheme from '../BladeProvider/useTheme.js';
@@ -152,9 +153,15 @@ var _Table = function _Table(_ref3) {
152
153
  _React$useState10 = _slicedToArray(_React$useState9, 2),
153
154
  headerRowDensity = _React$useState10[0],
154
155
  setHeaderRowDensity = _React$useState10[1];
156
+ var _React$useState11 = React__default.useState(false),
157
+ _React$useState12 = _slicedToArray(_React$useState11, 2),
158
+ hasHoverActions = _React$useState12[0],
159
+ setHasHoverActions = _React$useState12[1];
155
160
  // Need to make header is sticky if first column is sticky otherwise the first header cell will not be sticky
156
161
  var shouldHeaderBeSticky = isHeaderSticky !== null && isHeaderSticky !== void 0 ? isHeaderSticky : isFirstColumnSticky;
157
162
  var backgroundColor = tableBackgroundColor;
163
+ var isMobile = useIsMobile();
164
+ var lastHoverActionsColWidth = isMobile ? '1fr' : '0px';
158
165
  var _usePresence = usePresence(isRefreshing, {
159
166
  transitionDuration: theme.motion.duration.quick
160
167
  }),
@@ -169,7 +176,7 @@ var _Table = function _Table(_ref3) {
169
176
  var firstColumnStickyFooterCellCSS = isFirstColumnSticky ? "\n &:nth-of-type(1) {\n left: 0 !important;\n position: sticky !important;\n z-index: ".concat(firstColumnStickyZIndex, " !important;\n }\n ").concat(selectionType === 'multiple' && "&:nth-of-type(2) {\n left: ".concat(checkboxCellWidth, "px !important;\n position: sticky !important;\n z-index: ").concat(firstColumnStickyZIndex, " !important;\n }\n ")) : '';
170
177
  var firstColumnStickyBodyCellCSS = isFirstColumnSticky ? "\n &:nth-of-type(1) {\n left: 0 !important;\n position: sticky !important;\n z-index: ".concat(firstColumnStickyZIndex, " !important;\n }\n ").concat(selectionType === 'multiple' && "&:nth-of-type(2) {\n left: ".concat(checkboxCellWidth, "px !important;\n position: sticky !important;\n z-index: ").concat(firstColumnStickyZIndex, " !important;\n }\n ")) : '';
171
178
  var tableTheme = useTheme$1({
172
- Table: "\n height:".concat(isFooterSticky ? "100%" : undefined, ";\n border: ").concat(makeBorderSize(theme.border.width.thin), " solid ").concat(theme.colors.surface.border.gray.muted, ";\n --data-table-library_grid-template-columns: ").concat(gridTemplateColumns !== null && gridTemplateColumns !== void 0 ? gridTemplateColumns : " ".concat(selectionType === 'multiple' ? 'min-content' : '', " repeat(").concat(columnCount, ",minmax(100px, 1fr)) !important;"), " !important;\n background-color: ").concat(getIn(theme.colors, backgroundColor), ";\n "),
179
+ Table: "\n height:".concat(isFooterSticky ? "100%" : undefined, ";\n border: ").concat(makeBorderSize(theme.border.width.thin), " solid ").concat(theme.colors.surface.border.gray.muted, ";\n --data-table-library_grid-template-columns: ").concat(gridTemplateColumns ? "".concat(gridTemplateColumns, " ").concat(hasHoverActions ? lastHoverActionsColWidth : '') : " ".concat(selectionType === 'multiple' ? 'min-content' : '', " repeat(").concat(columnCount, ",minmax(100px, 1fr)) ").concat(hasHoverActions ? lastHoverActionsColWidth : '', " !important;"), " !important;\n background-color: ").concat(getIn(theme.colors, backgroundColor), ";\n "),
173
180
  HeaderCell: "\n position: ".concat(shouldHeaderBeSticky ? 'sticky' : 'relative', ";\n \n top: ").concat(shouldHeaderBeSticky ? '0' : undefined, ";\n ").concat(firstColumnStickyHeaderCellCSS, "\n "),
174
181
  Cell: "\n ".concat(firstColumnStickyBodyCellCSS, "\n "),
175
182
  FooterCell: "\n position: ".concat(isFooterSticky ? 'sticky' : 'relative', ";\n bottom: ").concat(isFooterSticky ? '0' : undefined, ";\n ").concat(firstColumnStickyFooterCellCSS, "\n ")
@@ -308,9 +315,11 @@ var _Table = function _Table(_ref3) {
308
315
  backgroundColor: backgroundColor,
309
316
  headerRowDensity: headerRowDensity,
310
317
  setHeaderRowDensity: setHeaderRowDensity,
311
- showBorderedCells: showBorderedCells
318
+ showBorderedCells: showBorderedCells,
319
+ hasHoverActions: hasHoverActions,
320
+ setHasHoverActions: setHasHoverActions
312
321
  };
313
- }, [selectionType, selectedRows, totalItems, toggleRowSelectionById, toggleAllRowsSelection, deselectAllRows, rowDensity, toggleSort, currentSortedState, setPaginationPage, setPaginationRowSize, currentPaginationState, showStripedRows, disabledRows, setDisabledRows, paginationType, setPaginationType, backgroundColor, headerRowDensity, setHeaderRowDensity, showBorderedCells]);
322
+ }, [selectionType, selectedRows, totalItems, toggleRowSelectionById, toggleAllRowsSelection, deselectAllRows, rowDensity, toggleSort, currentSortedState, setPaginationPage, setPaginationRowSize, currentPaginationState, showStripedRows, disabledRows, setDisabledRows, paginationType, setPaginationType, backgroundColor, headerRowDensity, setHeaderRowDensity, showBorderedCells, hasHoverActions, setHasHoverActions]);
314
323
  return /*#__PURE__*/jsx(TableContext.Provider, {
315
324
  value: tableContext,
316
325
  children: isLoading ? /*#__PURE__*/jsx(BaseBox, _objectSpread(_objectSpread(_objectSpread({
@@ -1 +1 @@
1
- {"version":3,"file":"Table.web.js","sources":["../../../../../../src/components/Table/Table.web.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo } from 'react';\nimport { Table as ReactTable } from '@table-library/react-table-library/table';\nimport { useTheme as useTableTheme } from '@table-library/react-table-library/theme';\nimport type { MiddlewareFunction } from '@table-library/react-table-library/types/common';\nimport { useSort } from '@table-library/react-table-library/sort';\nimport { usePagination } from '@table-library/react-table-library/pagination';\nimport {\n SelectClickTypes,\n SelectTypes,\n useRowSelect,\n} from '@table-library/react-table-library/select';\nimport styled from 'styled-components';\nimport usePresence from 'use-presence';\nimport type { TableContextType } from './TableContext';\nimport { TableContext } from './TableContext';\nimport { ComponentIds } from './componentIds';\nimport {\n checkboxCellWidth,\n firstColumnStickyZIndex,\n refreshWrapperZIndex,\n tableBackgroundColor,\n tablePagination,\n} from './tokens';\nimport type {\n TableProps,\n TableNode,\n Identifier,\n TablePaginationType,\n TableHeaderRowProps,\n} from './types';\nimport { makeBorderSize, makeMotionTime } from '~utils';\nimport { getComponentId, isValidAllowedChildren } from '~utils/isValidAllowedChildren';\nimport { throwBladeError } from '~utils/logger';\nimport type { BoxProps } from '~components/Box';\nimport { getBaseBoxStyles } from '~components/Box/BaseBox/baseBoxStyles';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Spinner } from '~components/Spinner';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { MetaConstants, metaAttribute } from '~utils/metaAttribute';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { useTheme } from '~components/BladeProvider';\nimport getIn from '~utils/lodashButBetter/get';\nimport { makeAccessible } from '~utils/makeAccessible';\n\nconst rowSelectType: Record<\n NonNullable<TableProps<unknown>['selectionType']>,\n SelectTypes | undefined\n> = {\n single: SelectTypes.SingleSelect,\n multiple: SelectTypes.MultiSelect,\n none: undefined,\n};\n\n// Get the number of TableHeaderCell components.\n// This is very complicated but the only way to iterate through the structure and get number of header cells.\n// Assuming number of header cells is the same as number of columns\nconst getTableHeaderCellCount = (children: (data: []) => React.ReactElement): number => {\n const tableRootComponent = children([]);\n if (tableRootComponent && React.isValidElement(tableRootComponent)) {\n const tableComponentArray = React.Children.toArray(tableRootComponent);\n if (React.isValidElement(tableComponentArray[0])) {\n const tableComponentArrayChildren = React.Children.toArray(\n tableComponentArray[0].props.children,\n );\n const tableHeader = tableComponentArrayChildren.find(\n (child) => getComponentId(child) === ComponentIds.TableHeader,\n );\n const tableHeaderChildrenArray = React.isValidElement(tableHeader)\n ? React.Children.toArray(tableHeader.props.children)\n : null;\n const tableHeaderRow = tableHeaderChildrenArray?.find(\n (child) => getComponentId(child) === ComponentIds.TableHeaderRow,\n );\n const tableHeaderRowChildrenArray = React.isValidElement(tableHeaderRow)\n ? React.Children.toArray(tableHeaderRow.props.children)\n : null;\n const tableHeaderCells = tableHeaderRowChildrenArray\n ? tableHeaderRowChildrenArray.filter(\n (child) => getComponentId(child) === ComponentIds.TableHeaderCell,\n )\n : null;\n return tableHeaderCells?.length ?? 0;\n }\n }\n return 0;\n};\n\nconst StyledReactTable = styled(ReactTable)<{ $styledProps?: { height?: BoxProps['height'] } }>(\n ({ $styledProps }) => {\n const { theme } = useTheme();\n const styledPropsCSSObject = getBaseBoxStyles({\n theme,\n height: $styledProps?.height,\n });\n\n return {\n '&&&': {\n ...styledPropsCSSObject,\n },\n };\n },\n);\n\nconst RefreshWrapper = styled(BaseBox)<{\n isRefreshSpinnerVisible: boolean;\n isRefreshSpinnerEntering: boolean;\n isRefreshSpinnerExiting: boolean;\n}>(({ isRefreshSpinnerVisible, isRefreshSpinnerEntering, isRefreshSpinnerExiting, theme }) => {\n return {\n opacity: isRefreshSpinnerVisible ? 1 : 0,\n transition: `opacity ${makeMotionTime(theme.motion.duration.quick)} ${\n isRefreshSpinnerEntering\n ? theme.motion.easing.entrance.effective\n : isRefreshSpinnerExiting\n ? theme.motion.easing.exit.effective\n : ''\n }`,\n };\n});\n\nconst _Table = <Item,>({\n children,\n data,\n multiSelectTrigger = 'row',\n selectionType = 'none',\n onSelectionChange,\n isHeaderSticky,\n isFooterSticky,\n isFirstColumnSticky,\n rowDensity = 'normal',\n onSortChange,\n sortFunctions,\n toolbar,\n pagination,\n height,\n showStripedRows,\n gridTemplateColumns,\n isLoading = false,\n isRefreshing = false,\n showBorderedCells = false,\n defaultSelectedIds = [],\n ...styledProps\n}: TableProps<Item>): React.ReactElement => {\n const { theme } = useTheme();\n const [selectedRows, setSelectedRows] = React.useState<TableNode<unknown>['id'][]>(\n selectionType !== 'none' ? defaultSelectedIds : [],\n );\n const [disabledRows, setDisabledRows] = React.useState<TableNode<unknown>['id'][]>([]);\n const [totalItems, setTotalItems] = React.useState(data.nodes.length || 0);\n const [paginationType, setPaginationType] = React.useState<NonNullable<TablePaginationType>>(\n 'client',\n );\n const [headerRowDensity, setHeaderRowDensity] = React.useState<TableHeaderRowProps['rowDensity']>(\n undefined,\n );\n // Need to make header is sticky if first column is sticky otherwise the first header cell will not be sticky\n const shouldHeaderBeSticky = isHeaderSticky ?? isFirstColumnSticky;\n const backgroundColor = tableBackgroundColor;\n\n const {\n isEntering: isRefreshSpinnerEntering,\n isMounted: isRefreshSpinnerMounted,\n isExiting: isRefreshSpinnerExiting,\n isVisible: isRefreshSpinnerVisible,\n } = usePresence(isRefreshing, {\n transitionDuration: theme.motion.duration.quick,\n });\n\n // Table Theme\n const columnCount = getTableHeaderCellCount(children);\n const firstColumnStickyHeaderCellCSS = isFirstColumnSticky\n ? `\n &:nth-of-type(1) {\n left: 0 !important;\n position: sticky !important;\n z-index: ${firstColumnStickyZIndex} !important;\n }\n ${\n selectionType === 'multiple' &&\n `&:nth-of-type(2) {\n left: ${checkboxCellWidth}px !important;\n position: sticky !important;\n z-index: ${firstColumnStickyZIndex} !important;\n }\n `\n }`\n : '';\n const firstColumnStickyFooterCellCSS = isFirstColumnSticky\n ? `\n &:nth-of-type(1) {\n left: 0 !important;\n position: sticky !important;\n z-index: ${firstColumnStickyZIndex} !important;\n }\n ${\n selectionType === 'multiple' &&\n `&:nth-of-type(2) {\n left: ${checkboxCellWidth}px !important;\n position: sticky !important;\n z-index: ${firstColumnStickyZIndex} !important;\n }\n `\n }`\n : '';\n const firstColumnStickyBodyCellCSS = isFirstColumnSticky\n ? `\n &:nth-of-type(1) {\n left: 0 !important;\n position: sticky !important;\n z-index: ${firstColumnStickyZIndex} !important;\n }\n ${\n selectionType === 'multiple' &&\n `&:nth-of-type(2) {\n left: ${checkboxCellWidth}px !important;\n position: sticky !important;\n z-index: ${firstColumnStickyZIndex} !important;\n }\n `\n }`\n : '';\n\n const tableTheme = useTableTheme({\n Table: `\n height:${isFooterSticky ? `100%` : undefined};\n border: ${makeBorderSize(theme.border.width.thin)} solid ${\n theme.colors.surface.border.gray.muted\n };\n --data-table-library_grid-template-columns: ${\n gridTemplateColumns ??\n ` ${\n selectionType === 'multiple' ? 'min-content' : ''\n } repeat(${columnCount},minmax(100px, 1fr)) !important;`\n } !important;\n background-color: ${getIn(theme.colors, backgroundColor)};\n `,\n HeaderCell: `\n position: ${shouldHeaderBeSticky ? 'sticky' : 'relative'};\n \n top: ${shouldHeaderBeSticky ? '0' : undefined};\n ${firstColumnStickyHeaderCellCSS}\n `,\n Cell: `\n ${firstColumnStickyBodyCellCSS}\n `,\n FooterCell: `\n position: ${isFooterSticky ? 'sticky' : 'relative'};\n bottom: ${isFooterSticky ? '0' : undefined};\n ${firstColumnStickyFooterCellCSS}\n `,\n });\n\n useEffect(() => {\n // Get the total number of items\n setTotalItems(data.nodes.length);\n }, [data.nodes]);\n\n // Selection Logic\n const onSelectChange: MiddlewareFunction = (action, state): void => {\n const selectedIds: Identifier[] = state.id ? [state.id] : state.ids ?? [];\n setSelectedRows(selectedIds);\n onSelectionChange?.({\n selectedIds,\n values: data.nodes.filter((node) => selectedIds.includes(node.id)),\n });\n };\n\n const rowSelectConfig = useRowSelect(\n data,\n {\n onChange: onSelectChange,\n state: {\n ...(selectionType === 'multiple'\n ? { ids: selectedRows }\n : selectionType === 'single'\n ? { id: selectedRows[0] }\n : {}),\n },\n },\n {\n clickType:\n multiSelectTrigger === 'row' ? SelectClickTypes.RowClick : SelectClickTypes.ButtonClick,\n rowSelect: selectionType !== 'none' ? rowSelectType[selectionType] : undefined,\n },\n );\n\n const toggleRowSelectionById = useMemo(\n () => (id: Identifier): void => {\n rowSelectConfig.fns.onToggleById(id);\n },\n [rowSelectConfig.fns],\n );\n\n const deselectAllRows = useMemo(\n () => (): void => {\n rowSelectConfig.fns.onRemoveAll();\n },\n [rowSelectConfig.fns],\n );\n\n const toggleAllRowsSelection = useMemo(\n () => (): void => {\n if (selectedRows.length > 0) {\n rowSelectConfig.fns.onRemoveAll();\n } else {\n const ids = data.nodes\n .map((item: TableNode<Item>) => (disabledRows.includes(item.id) ? null : item.id))\n .filter(Boolean) as Identifier[];\n\n rowSelectConfig.fns.onAddAll(ids);\n }\n },\n [rowSelectConfig.fns, data.nodes, selectedRows, disabledRows],\n );\n\n // Sort Logic\n const handleSortChange: MiddlewareFunction = (action, state) => {\n onSortChange?.({\n sortKey: state.sortKey,\n isSortReversed: state.reverse,\n });\n };\n\n const sort = useSort(\n data,\n {\n onChange: handleSortChange,\n },\n {\n // @ts-expect-error ignore this, if sortFunctions is undefined, it will be ignored\n sortFns: sortFunctions,\n },\n );\n\n const currentSortedState: TableContextType['currentSortedState'] = useMemo(() => {\n return {\n sortKey: sort.state.sortKey,\n isSortReversed: sort.state.reverse,\n sortableColumns: Object.keys(sortFunctions ?? {}),\n };\n }, [sort.state, sortFunctions]);\n\n const toggleSort = useCallback(\n (sortKey: string): void => {\n sort.fns.onToggleSort({\n sortKey,\n });\n },\n [sort.fns],\n );\n\n // Pagination\n\n const hasPagination = Boolean(pagination);\n\n const paginationConfig = usePagination(\n data,\n {\n state: {\n page: 0,\n size: tablePagination.defaultPageSize,\n },\n },\n {\n isServer: paginationType === 'server',\n },\n );\n\n const currentPaginationState = useMemo(() => {\n return hasPagination\n ? {\n page: paginationConfig.state.page,\n size: paginationConfig.state.size,\n }\n : undefined;\n }, [paginationConfig.state, hasPagination]);\n\n const setPaginationPage = useCallback(\n (page: number): void => {\n paginationConfig.fns.onSetPage(page);\n },\n [paginationConfig.fns],\n );\n\n const setPaginationRowSize = useCallback(\n (size: number): void => {\n paginationConfig.fns.onSetSize(size);\n },\n [paginationConfig.fns],\n );\n\n // Toolbar Component\n if (__DEV__) {\n if (toolbar && !isValidAllowedChildren(toolbar, ComponentIds.TableToolbar)) {\n throwBladeError({\n message: 'Only TableToolbar component is allowed in the `toolbar` prop',\n moduleName: 'Table',\n });\n }\n }\n\n // Table Context\n const tableContext: TableContextType = useMemo(\n () => ({\n selectionType,\n selectedRows,\n totalItems,\n toggleRowSelectionById,\n toggleAllRowsSelection,\n deselectAllRows,\n rowDensity,\n toggleSort,\n currentSortedState,\n setPaginationPage,\n setPaginationRowSize,\n currentPaginationState,\n showStripedRows,\n disabledRows,\n setDisabledRows,\n paginationType,\n setPaginationType,\n backgroundColor,\n headerRowDensity,\n setHeaderRowDensity,\n showBorderedCells,\n }),\n [\n selectionType,\n selectedRows,\n totalItems,\n toggleRowSelectionById,\n toggleAllRowsSelection,\n deselectAllRows,\n rowDensity,\n toggleSort,\n currentSortedState,\n setPaginationPage,\n setPaginationRowSize,\n currentPaginationState,\n showStripedRows,\n disabledRows,\n setDisabledRows,\n paginationType,\n setPaginationType,\n backgroundColor,\n headerRowDensity,\n setHeaderRowDensity,\n showBorderedCells,\n ],\n );\n\n return (\n <TableContext.Provider value={tableContext}>\n {isLoading ? (\n <BaseBox\n display=\"flex\"\n flex={1}\n alignItems=\"center\"\n justifyContent=\"center\"\n height={height}\n {...getStyledProps(styledProps)}\n {...metaAttribute({ name: MetaConstants.Table })}\n >\n <Spinner accessibilityLabel=\"Loading Table\" size=\"large\" testID=\"table-spinner\" />\n </BaseBox>\n ) : (\n <BaseBox\n flex={1}\n position=\"relative\"\n {...getStyledProps(styledProps)}\n {...metaAttribute({ name: MetaConstants.Table })}\n >\n {isRefreshSpinnerMounted && (\n <RefreshWrapper\n position=\"absolute\"\n width=\"100%\"\n height=\"100%\"\n zIndex={refreshWrapperZIndex}\n backgroundColor=\"overlay.background.subtle\"\n justifyContent=\"center\"\n alignItems=\"center\"\n display=\"flex\"\n isRefreshSpinnerEntering={isRefreshSpinnerEntering}\n isRefreshSpinnerExiting={isRefreshSpinnerExiting}\n isRefreshSpinnerVisible={isRefreshSpinnerVisible}\n >\n <Spinner color=\"white\" accessibilityLabel=\"Refreshing Table\" size=\"large\" />\n </RefreshWrapper>\n )}\n {toolbar}\n <StyledReactTable\n role=\"table\"\n layout={{ fixedHeader: shouldHeaderBeSticky, horizontalScroll: true }}\n data={data}\n // @ts-expect-error ignore this, theme clashes with styled-component's theme. We're using useTheme from blade to get actual theme\n theme={tableTheme}\n select={selectionType !== 'none' ? rowSelectConfig : null}\n sort={sortFunctions ? sort : null}\n $styledProps={{\n height,\n }}\n pagination={hasPagination ? paginationConfig : null}\n {...makeAccessible({ multiSelectable: selectionType === 'multiple' })}\n {...metaAttribute({ name: MetaConstants.Table })}\n >\n {children}\n </StyledReactTable>\n {pagination}\n </BaseBox>\n )}\n </TableContext.Provider>\n );\n};\n\nconst Table = assignWithoutSideEffects(_Table, {\n componentId: ComponentIds.Table,\n});\n\nexport { Table };\n"],"names":["rowSelectType","single","SelectTypes","SingleSelect","multiple","MultiSelect","none","undefined","getTableHeaderCellCount","children","tableRootComponent","React","isValidElement","tableComponentArray","Children","toArray","_tableHeaderCells$len","tableComponentArrayChildren","props","tableHeader","find","child","getComponentId","ComponentIds","TableHeader","tableHeaderChildrenArray","tableHeaderRow","TableHeaderRow","tableHeaderRowChildrenArray","tableHeaderCells","filter","TableHeaderCell","length","StyledReactTable","styled","ReactTable","withConfig","displayName","componentId","_ref","$styledProps","_useTheme","useTheme","theme","styledPropsCSSObject","getBaseBoxStyles","height","_objectSpread","RefreshWrapper","BaseBox","_ref2","isRefreshSpinnerVisible","isRefreshSpinnerEntering","isRefreshSpinnerExiting","opacity","transition","concat","makeMotionTime","motion","duration","quick","easing","entrance","effective","exit","_Table","_ref3","data","_ref3$multiSelectTrig","multiSelectTrigger","_ref3$selectionType","selectionType","onSelectionChange","isHeaderSticky","isFooterSticky","isFirstColumnSticky","_ref3$rowDensity","rowDensity","onSortChange","sortFunctions","toolbar","pagination","showStripedRows","gridTemplateColumns","_ref3$isLoading","isLoading","_ref3$isRefreshing","isRefreshing","_ref3$showBorderedCel","showBorderedCells","_ref3$defaultSelected","defaultSelectedIds","styledProps","_objectWithoutProperties","_excluded","_useTheme2","_React$useState","useState","_React$useState2","_slicedToArray","selectedRows","setSelectedRows","_React$useState3","_React$useState4","disabledRows","setDisabledRows","_React$useState5","nodes","_React$useState6","totalItems","setTotalItems","_React$useState7","_React$useState8","paginationType","setPaginationType","_React$useState9","_React$useState10","headerRowDensity","setHeaderRowDensity","shouldHeaderBeSticky","backgroundColor","tableBackgroundColor","_usePresence","usePresence","transitionDuration","isEntering","isRefreshSpinnerMounted","isMounted","isExiting","isVisible","columnCount","firstColumnStickyHeaderCellCSS","firstColumnStickyZIndex","checkboxCellWidth","firstColumnStickyFooterCellCSS","firstColumnStickyBodyCellCSS","tableTheme","useTableTheme","Table","makeBorderSize","border","width","thin","colors","surface","gray","muted","getIn","HeaderCell","Cell","FooterCell","useEffect","onSelectChange","action","state","_state$ids","selectedIds","id","ids","values","node","includes","rowSelectConfig","useRowSelect","onChange","clickType","SelectClickTypes","RowClick","ButtonClick","rowSelect","toggleRowSelectionById","useMemo","fns","onToggleById","deselectAllRows","onRemoveAll","toggleAllRowsSelection","map","item","Boolean","onAddAll","handleSortChange","sortKey","isSortReversed","reverse","sort","useSort","sortFns","currentSortedState","sortableColumns","Object","keys","toggleSort","useCallback","onToggleSort","hasPagination","paginationConfig","usePagination","page","size","tablePagination","defaultPageSize","isServer","currentPaginationState","setPaginationPage","onSetPage","setPaginationRowSize","onSetSize","isValidAllowedChildren","TableToolbar","throwBladeError","message","moduleName","tableContext","_jsx","TableContext","Provider","value","display","flex","alignItems","justifyContent","getStyledProps","metaAttribute","name","MetaConstants","Spinner","accessibilityLabel","testID","_jsxs","position","zIndex","refreshWrapperZIndex","color","role","layout","fixedHeader","horizontalScroll","select","makeAccessible","multiSelectable","assignWithoutSideEffects"],"mappings":"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"}
1
+ {"version":3,"file":"Table.web.js","sources":["../../../../../../src/components/Table/Table.web.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo } from 'react';\nimport { Table as ReactTable } from '@table-library/react-table-library/table';\nimport { useTheme as useTableTheme } from '@table-library/react-table-library/theme';\nimport type { MiddlewareFunction } from '@table-library/react-table-library/types/common';\nimport { useSort } from '@table-library/react-table-library/sort';\nimport { usePagination } from '@table-library/react-table-library/pagination';\nimport {\n SelectClickTypes,\n SelectTypes,\n useRowSelect,\n} from '@table-library/react-table-library/select';\nimport styled from 'styled-components';\nimport usePresence from 'use-presence';\nimport type { TableContextType } from './TableContext';\nimport { TableContext } from './TableContext';\nimport { ComponentIds } from './componentIds';\nimport {\n checkboxCellWidth,\n firstColumnStickyZIndex,\n refreshWrapperZIndex,\n tableBackgroundColor,\n tablePagination,\n} from './tokens';\nimport type {\n TableProps,\n TableNode,\n Identifier,\n TablePaginationType,\n TableHeaderRowProps,\n} from './types';\nimport { makeBorderSize, makeMotionTime } from '~utils';\nimport { getComponentId, isValidAllowedChildren } from '~utils/isValidAllowedChildren';\nimport { throwBladeError } from '~utils/logger';\nimport type { BoxProps } from '~components/Box';\nimport { getBaseBoxStyles } from '~components/Box/BaseBox/baseBoxStyles';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Spinner } from '~components/Spinner';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { MetaConstants, metaAttribute } from '~utils/metaAttribute';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { useTheme } from '~components/BladeProvider';\nimport getIn from '~utils/lodashButBetter/get';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { useIsMobile } from '~utils/useIsMobile';\n\nconst rowSelectType: Record<\n NonNullable<TableProps<unknown>['selectionType']>,\n SelectTypes | undefined\n> = {\n single: SelectTypes.SingleSelect,\n multiple: SelectTypes.MultiSelect,\n none: undefined,\n};\n\n// Get the number of TableHeaderCell components.\n// This is very complicated but the only way to iterate through the structure and get number of header cells.\n// Assuming number of header cells is the same as number of columns\nconst getTableHeaderCellCount = (children: (data: []) => React.ReactElement): number => {\n const tableRootComponent = children([]);\n if (tableRootComponent && React.isValidElement(tableRootComponent)) {\n const tableComponentArray = React.Children.toArray(tableRootComponent);\n if (React.isValidElement(tableComponentArray[0])) {\n const tableComponentArrayChildren = React.Children.toArray(\n tableComponentArray[0].props.children,\n );\n const tableHeader = tableComponentArrayChildren.find(\n (child) => getComponentId(child) === ComponentIds.TableHeader,\n );\n const tableHeaderChildrenArray = React.isValidElement(tableHeader)\n ? React.Children.toArray(tableHeader.props.children)\n : null;\n const tableHeaderRow = tableHeaderChildrenArray?.find(\n (child) => getComponentId(child) === ComponentIds.TableHeaderRow,\n );\n const tableHeaderRowChildrenArray = React.isValidElement(tableHeaderRow)\n ? React.Children.toArray(tableHeaderRow.props.children)\n : null;\n const tableHeaderCells = tableHeaderRowChildrenArray\n ? tableHeaderRowChildrenArray.filter(\n (child) => getComponentId(child) === ComponentIds.TableHeaderCell,\n )\n : null;\n return tableHeaderCells?.length ?? 0;\n }\n }\n return 0;\n};\n\nconst StyledReactTable = styled(ReactTable)<{ $styledProps?: { height?: BoxProps['height'] } }>(\n ({ $styledProps }) => {\n const { theme } = useTheme();\n const styledPropsCSSObject = getBaseBoxStyles({\n theme,\n height: $styledProps?.height,\n });\n\n return {\n '&&&': {\n ...styledPropsCSSObject,\n },\n };\n },\n);\n\nconst RefreshWrapper = styled(BaseBox)<{\n isRefreshSpinnerVisible: boolean;\n isRefreshSpinnerEntering: boolean;\n isRefreshSpinnerExiting: boolean;\n}>(({ isRefreshSpinnerVisible, isRefreshSpinnerEntering, isRefreshSpinnerExiting, theme }) => {\n return {\n opacity: isRefreshSpinnerVisible ? 1 : 0,\n transition: `opacity ${makeMotionTime(theme.motion.duration.quick)} ${\n isRefreshSpinnerEntering\n ? theme.motion.easing.entrance.effective\n : isRefreshSpinnerExiting\n ? theme.motion.easing.exit.effective\n : ''\n }`,\n };\n});\n\nconst _Table = <Item,>({\n children,\n data,\n multiSelectTrigger = 'row',\n selectionType = 'none',\n onSelectionChange,\n isHeaderSticky,\n isFooterSticky,\n isFirstColumnSticky,\n rowDensity = 'normal',\n onSortChange,\n sortFunctions,\n toolbar,\n pagination,\n height,\n showStripedRows,\n gridTemplateColumns,\n isLoading = false,\n isRefreshing = false,\n showBorderedCells = false,\n defaultSelectedIds = [],\n ...styledProps\n}: TableProps<Item>): React.ReactElement => {\n const { theme } = useTheme();\n const [selectedRows, setSelectedRows] = React.useState<TableNode<unknown>['id'][]>(\n selectionType !== 'none' ? defaultSelectedIds : [],\n );\n const [disabledRows, setDisabledRows] = React.useState<TableNode<unknown>['id'][]>([]);\n const [totalItems, setTotalItems] = React.useState(data.nodes.length || 0);\n const [paginationType, setPaginationType] = React.useState<NonNullable<TablePaginationType>>(\n 'client',\n );\n const [headerRowDensity, setHeaderRowDensity] = React.useState<TableHeaderRowProps['rowDensity']>(\n undefined,\n );\n const [hasHoverActions, setHasHoverActions] = React.useState(false);\n // Need to make header is sticky if first column is sticky otherwise the first header cell will not be sticky\n const shouldHeaderBeSticky = isHeaderSticky ?? isFirstColumnSticky;\n const backgroundColor = tableBackgroundColor;\n\n const isMobile = useIsMobile();\n const lastHoverActionsColWidth = isMobile ? '1fr' : '0px';\n\n const {\n isEntering: isRefreshSpinnerEntering,\n isMounted: isRefreshSpinnerMounted,\n isExiting: isRefreshSpinnerExiting,\n isVisible: isRefreshSpinnerVisible,\n } = usePresence(isRefreshing, {\n transitionDuration: theme.motion.duration.quick,\n });\n\n // Table Theme\n const columnCount = getTableHeaderCellCount(children);\n const firstColumnStickyHeaderCellCSS = isFirstColumnSticky\n ? `\n &:nth-of-type(1) {\n left: 0 !important;\n position: sticky !important;\n z-index: ${firstColumnStickyZIndex} !important;\n }\n ${\n selectionType === 'multiple' &&\n `&:nth-of-type(2) {\n left: ${checkboxCellWidth}px !important;\n position: sticky !important;\n z-index: ${firstColumnStickyZIndex} !important;\n }\n `\n }`\n : '';\n const firstColumnStickyFooterCellCSS = isFirstColumnSticky\n ? `\n &:nth-of-type(1) {\n left: 0 !important;\n position: sticky !important;\n z-index: ${firstColumnStickyZIndex} !important;\n }\n ${\n selectionType === 'multiple' &&\n `&:nth-of-type(2) {\n left: ${checkboxCellWidth}px !important;\n position: sticky !important;\n z-index: ${firstColumnStickyZIndex} !important;\n }\n `\n }`\n : '';\n const firstColumnStickyBodyCellCSS = isFirstColumnSticky\n ? `\n &:nth-of-type(1) {\n left: 0 !important;\n position: sticky !important;\n z-index: ${firstColumnStickyZIndex} !important;\n }\n ${\n selectionType === 'multiple' &&\n `&:nth-of-type(2) {\n left: ${checkboxCellWidth}px !important;\n position: sticky !important;\n z-index: ${firstColumnStickyZIndex} !important;\n }\n `\n }`\n : '';\n\n const tableTheme = useTableTheme({\n Table: `\n height:${isFooterSticky ? `100%` : undefined};\n border: ${makeBorderSize(theme.border.width.thin)} solid ${\n theme.colors.surface.border.gray.muted\n };\n --data-table-library_grid-template-columns: ${\n gridTemplateColumns\n ? `${gridTemplateColumns} ${hasHoverActions ? lastHoverActionsColWidth : ''}`\n : ` ${\n selectionType === 'multiple' ? 'min-content' : ''\n } repeat(${columnCount},minmax(100px, 1fr)) ${\n hasHoverActions ? lastHoverActionsColWidth : ''\n } !important;`\n } !important;\n background-color: ${getIn(theme.colors, backgroundColor)};\n `,\n HeaderCell: `\n position: ${shouldHeaderBeSticky ? 'sticky' : 'relative'};\n \n top: ${shouldHeaderBeSticky ? '0' : undefined};\n ${firstColumnStickyHeaderCellCSS}\n `,\n Cell: `\n ${firstColumnStickyBodyCellCSS}\n `,\n FooterCell: `\n position: ${isFooterSticky ? 'sticky' : 'relative'};\n bottom: ${isFooterSticky ? '0' : undefined};\n ${firstColumnStickyFooterCellCSS}\n `,\n });\n\n useEffect(() => {\n // Get the total number of items\n setTotalItems(data.nodes.length);\n }, [data.nodes]);\n\n // Selection Logic\n const onSelectChange: MiddlewareFunction = (action, state): void => {\n const selectedIds: Identifier[] = state.id ? [state.id] : state.ids ?? [];\n setSelectedRows(selectedIds);\n onSelectionChange?.({\n selectedIds,\n values: data.nodes.filter((node) => selectedIds.includes(node.id)),\n });\n };\n\n const rowSelectConfig = useRowSelect(\n data,\n {\n onChange: onSelectChange,\n state: {\n ...(selectionType === 'multiple'\n ? { ids: selectedRows }\n : selectionType === 'single'\n ? { id: selectedRows[0] }\n : {}),\n },\n },\n {\n clickType:\n multiSelectTrigger === 'row' ? SelectClickTypes.RowClick : SelectClickTypes.ButtonClick,\n rowSelect: selectionType !== 'none' ? rowSelectType[selectionType] : undefined,\n },\n );\n\n const toggleRowSelectionById = useMemo(\n () => (id: Identifier): void => {\n rowSelectConfig.fns.onToggleById(id);\n },\n [rowSelectConfig.fns],\n );\n\n const deselectAllRows = useMemo(\n () => (): void => {\n rowSelectConfig.fns.onRemoveAll();\n },\n [rowSelectConfig.fns],\n );\n\n const toggleAllRowsSelection = useMemo(\n () => (): void => {\n if (selectedRows.length > 0) {\n rowSelectConfig.fns.onRemoveAll();\n } else {\n const ids = data.nodes\n .map((item: TableNode<Item>) => (disabledRows.includes(item.id) ? null : item.id))\n .filter(Boolean) as Identifier[];\n\n rowSelectConfig.fns.onAddAll(ids);\n }\n },\n [rowSelectConfig.fns, data.nodes, selectedRows, disabledRows],\n );\n\n // Sort Logic\n const handleSortChange: MiddlewareFunction = (action, state) => {\n onSortChange?.({\n sortKey: state.sortKey,\n isSortReversed: state.reverse,\n });\n };\n\n const sort = useSort(\n data,\n {\n onChange: handleSortChange,\n },\n {\n // @ts-expect-error ignore this, if sortFunctions is undefined, it will be ignored\n sortFns: sortFunctions,\n },\n );\n\n const currentSortedState: TableContextType['currentSortedState'] = useMemo(() => {\n return {\n sortKey: sort.state.sortKey,\n isSortReversed: sort.state.reverse,\n sortableColumns: Object.keys(sortFunctions ?? {}),\n };\n }, [sort.state, sortFunctions]);\n\n const toggleSort = useCallback(\n (sortKey: string): void => {\n sort.fns.onToggleSort({\n sortKey,\n });\n },\n [sort.fns],\n );\n\n // Pagination\n\n const hasPagination = Boolean(pagination);\n\n const paginationConfig = usePagination(\n data,\n {\n state: {\n page: 0,\n size: tablePagination.defaultPageSize,\n },\n },\n {\n isServer: paginationType === 'server',\n },\n );\n\n const currentPaginationState = useMemo(() => {\n return hasPagination\n ? {\n page: paginationConfig.state.page,\n size: paginationConfig.state.size,\n }\n : undefined;\n }, [paginationConfig.state, hasPagination]);\n\n const setPaginationPage = useCallback(\n (page: number): void => {\n paginationConfig.fns.onSetPage(page);\n },\n [paginationConfig.fns],\n );\n\n const setPaginationRowSize = useCallback(\n (size: number): void => {\n paginationConfig.fns.onSetSize(size);\n },\n [paginationConfig.fns],\n );\n\n // Toolbar Component\n if (__DEV__) {\n if (toolbar && !isValidAllowedChildren(toolbar, ComponentIds.TableToolbar)) {\n throwBladeError({\n message: 'Only TableToolbar component is allowed in the `toolbar` prop',\n moduleName: 'Table',\n });\n }\n }\n\n // Table Context\n const tableContext: TableContextType = useMemo(\n () => ({\n selectionType,\n selectedRows,\n totalItems,\n toggleRowSelectionById,\n toggleAllRowsSelection,\n deselectAllRows,\n rowDensity,\n toggleSort,\n currentSortedState,\n setPaginationPage,\n setPaginationRowSize,\n currentPaginationState,\n showStripedRows,\n disabledRows,\n setDisabledRows,\n paginationType,\n setPaginationType,\n backgroundColor,\n headerRowDensity,\n setHeaderRowDensity,\n showBorderedCells,\n hasHoverActions,\n setHasHoverActions,\n }),\n [\n selectionType,\n selectedRows,\n totalItems,\n toggleRowSelectionById,\n toggleAllRowsSelection,\n deselectAllRows,\n rowDensity,\n toggleSort,\n currentSortedState,\n setPaginationPage,\n setPaginationRowSize,\n currentPaginationState,\n showStripedRows,\n disabledRows,\n setDisabledRows,\n paginationType,\n setPaginationType,\n backgroundColor,\n headerRowDensity,\n setHeaderRowDensity,\n showBorderedCells,\n hasHoverActions,\n setHasHoverActions,\n ],\n );\n\n return (\n <TableContext.Provider value={tableContext}>\n {isLoading ? (\n <BaseBox\n display=\"flex\"\n flex={1}\n alignItems=\"center\"\n justifyContent=\"center\"\n height={height}\n {...getStyledProps(styledProps)}\n {...metaAttribute({ name: MetaConstants.Table })}\n >\n <Spinner accessibilityLabel=\"Loading Table\" size=\"large\" testID=\"table-spinner\" />\n </BaseBox>\n ) : (\n <BaseBox\n flex={1}\n position=\"relative\"\n {...getStyledProps(styledProps)}\n {...metaAttribute({ name: MetaConstants.Table })}\n >\n {isRefreshSpinnerMounted && (\n <RefreshWrapper\n position=\"absolute\"\n width=\"100%\"\n height=\"100%\"\n zIndex={refreshWrapperZIndex}\n backgroundColor=\"overlay.background.subtle\"\n justifyContent=\"center\"\n alignItems=\"center\"\n display=\"flex\"\n isRefreshSpinnerEntering={isRefreshSpinnerEntering}\n isRefreshSpinnerExiting={isRefreshSpinnerExiting}\n isRefreshSpinnerVisible={isRefreshSpinnerVisible}\n >\n <Spinner color=\"white\" accessibilityLabel=\"Refreshing Table\" size=\"large\" />\n </RefreshWrapper>\n )}\n {toolbar}\n <StyledReactTable\n role=\"table\"\n layout={{ fixedHeader: shouldHeaderBeSticky, horizontalScroll: true }}\n data={data}\n // @ts-expect-error ignore this, theme clashes with styled-component's theme. We're using useTheme from blade to get actual theme\n theme={tableTheme}\n select={selectionType !== 'none' ? rowSelectConfig : null}\n sort={sortFunctions ? sort : null}\n $styledProps={{\n height,\n }}\n pagination={hasPagination ? paginationConfig : null}\n {...makeAccessible({ multiSelectable: selectionType === 'multiple' })}\n {...metaAttribute({ name: MetaConstants.Table })}\n >\n {children}\n </StyledReactTable>\n {pagination}\n </BaseBox>\n )}\n </TableContext.Provider>\n );\n};\n\nconst Table = assignWithoutSideEffects(_Table, {\n componentId: ComponentIds.Table,\n});\n\nexport { Table };\n"],"names":["rowSelectType","single","SelectTypes","SingleSelect","multiple","MultiSelect","none","undefined","getTableHeaderCellCount","children","tableRootComponent","React","isValidElement","tableComponentArray","Children","toArray","_tableHeaderCells$len","tableComponentArrayChildren","props","tableHeader","find","child","getComponentId","ComponentIds","TableHeader","tableHeaderChildrenArray","tableHeaderRow","TableHeaderRow","tableHeaderRowChildrenArray","tableHeaderCells","filter","TableHeaderCell","length","StyledReactTable","styled","ReactTable","withConfig","displayName","componentId","_ref","$styledProps","_useTheme","useTheme","theme","styledPropsCSSObject","getBaseBoxStyles","height","_objectSpread","RefreshWrapper","BaseBox","_ref2","isRefreshSpinnerVisible","isRefreshSpinnerEntering","isRefreshSpinnerExiting","opacity","transition","concat","makeMotionTime","motion","duration","quick","easing","entrance","effective","exit","_Table","_ref3","data","_ref3$multiSelectTrig","multiSelectTrigger","_ref3$selectionType","selectionType","onSelectionChange","isHeaderSticky","isFooterSticky","isFirstColumnSticky","_ref3$rowDensity","rowDensity","onSortChange","sortFunctions","toolbar","pagination","showStripedRows","gridTemplateColumns","_ref3$isLoading","isLoading","_ref3$isRefreshing","isRefreshing","_ref3$showBorderedCel","showBorderedCells","_ref3$defaultSelected","defaultSelectedIds","styledProps","_objectWithoutProperties","_excluded","_useTheme2","_React$useState","useState","_React$useState2","_slicedToArray","selectedRows","setSelectedRows","_React$useState3","_React$useState4","disabledRows","setDisabledRows","_React$useState5","nodes","_React$useState6","totalItems","setTotalItems","_React$useState7","_React$useState8","paginationType","setPaginationType","_React$useState9","_React$useState10","headerRowDensity","setHeaderRowDensity","_React$useState11","_React$useState12","hasHoverActions","setHasHoverActions","shouldHeaderBeSticky","backgroundColor","tableBackgroundColor","isMobile","useIsMobile","lastHoverActionsColWidth","_usePresence","usePresence","transitionDuration","isEntering","isRefreshSpinnerMounted","isMounted","isExiting","isVisible","columnCount","firstColumnStickyHeaderCellCSS","firstColumnStickyZIndex","checkboxCellWidth","firstColumnStickyFooterCellCSS","firstColumnStickyBodyCellCSS","tableTheme","useTableTheme","Table","makeBorderSize","border","width","thin","colors","surface","gray","muted","getIn","HeaderCell","Cell","FooterCell","useEffect","onSelectChange","action","state","_state$ids","selectedIds","id","ids","values","node","includes","rowSelectConfig","useRowSelect","onChange","clickType","SelectClickTypes","RowClick","ButtonClick","rowSelect","toggleRowSelectionById","useMemo","fns","onToggleById","deselectAllRows","onRemoveAll","toggleAllRowsSelection","map","item","Boolean","onAddAll","handleSortChange","sortKey","isSortReversed","reverse","sort","useSort","sortFns","currentSortedState","sortableColumns","Object","keys","toggleSort","useCallback","onToggleSort","hasPagination","paginationConfig","usePagination","page","size","tablePagination","defaultPageSize","isServer","currentPaginationState","setPaginationPage","onSetPage","setPaginationRowSize","onSetSize","isValidAllowedChildren","TableToolbar","throwBladeError","message","moduleName","tableContext","_jsx","TableContext","Provider","value","display","flex","alignItems","justifyContent","getStyledProps","metaAttribute","name","MetaConstants","Spinner","accessibilityLabel","testID","_jsxs","position","zIndex","refreshWrapperZIndex","color","role","layout","fixedHeader","horizontalScroll","select","makeAccessible","multiSelectable","assignWithoutSideEffects"],"mappings":"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"}