@hitachivantara/uikit-react-core 5.24.1 → 5.24.3

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 (193) hide show
  1. package/dist/cjs/components/BulkActions/BulkActions.cjs +0 -4
  2. package/dist/cjs/components/BulkActions/BulkActions.cjs.map +1 -1
  3. package/dist/cjs/components/Card/Card.cjs +2 -2
  4. package/dist/cjs/components/Card/Card.cjs.map +1 -1
  5. package/dist/cjs/components/Card/Card.styles.cjs +1 -1
  6. package/dist/cjs/components/Card/Card.styles.cjs.map +1 -1
  7. package/dist/cjs/components/CheckBoxGroup/CheckBoxGroup.styles.cjs +0 -4
  8. package/dist/cjs/components/CheckBoxGroup/CheckBoxGroup.styles.cjs.map +1 -1
  9. package/dist/cjs/components/DropDownMenu/DropDownMenu.styles.cjs +1 -1
  10. package/dist/cjs/components/DropDownMenu/DropDownMenu.styles.cjs.map +1 -1
  11. package/dist/cjs/components/FilterGroup/RightPanel/RightPanel.styles.cjs +0 -4
  12. package/dist/cjs/components/FilterGroup/RightPanel/RightPanel.styles.cjs.map +1 -1
  13. package/dist/cjs/components/Footer/Footer.cjs +2 -2
  14. package/dist/cjs/components/Footer/Footer.cjs.map +1 -1
  15. package/dist/cjs/components/GlobalActions/GlobalActions.cjs +38 -17
  16. package/dist/cjs/components/GlobalActions/GlobalActions.cjs.map +1 -1
  17. package/dist/cjs/components/GlobalActions/GlobalActions.styles.cjs +42 -89
  18. package/dist/cjs/components/GlobalActions/GlobalActions.styles.cjs.map +1 -1
  19. package/dist/cjs/components/List/List.styles.cjs +13 -28
  20. package/dist/cjs/components/List/List.styles.cjs.map +1 -1
  21. package/dist/cjs/components/ListContainer/ListContainer.cjs +8 -4
  22. package/dist/cjs/components/ListContainer/ListContainer.cjs.map +1 -1
  23. package/dist/cjs/components/ListContainer/ListContainer.styles.cjs +12 -0
  24. package/dist/cjs/components/ListContainer/ListContainer.styles.cjs.map +1 -0
  25. package/dist/cjs/components/ListContainer/ListContext/ListContext.cjs.map +1 -1
  26. package/dist/cjs/components/ListContainer/ListItem/ListItem.cjs +43 -31
  27. package/dist/cjs/components/ListContainer/ListItem/ListItem.cjs.map +1 -1
  28. package/dist/cjs/components/ListContainer/ListItem/ListItem.styles.cjs +47 -75
  29. package/dist/cjs/components/ListContainer/ListItem/ListItem.styles.cjs.map +1 -1
  30. package/dist/cjs/components/Loading/Loading.cjs +18 -13
  31. package/dist/cjs/components/Loading/Loading.cjs.map +1 -1
  32. package/dist/cjs/components/Loading/Loading.styles.cjs +44 -96
  33. package/dist/cjs/components/Loading/Loading.styles.cjs.map +1 -1
  34. package/dist/cjs/components/RadioGroup/RadioGroup.styles.cjs +0 -4
  35. package/dist/cjs/components/RadioGroup/RadioGroup.styles.cjs.map +1 -1
  36. package/dist/cjs/components/ScrollTo/Horizontal/ScrollToHorizontal.cjs +2 -2
  37. package/dist/cjs/components/ScrollTo/Horizontal/ScrollToHorizontal.cjs.map +1 -1
  38. package/dist/cjs/components/ScrollTo/Vertical/ScrollToVertical.cjs +2 -2
  39. package/dist/cjs/components/ScrollTo/Vertical/ScrollToVertical.cjs.map +1 -1
  40. package/dist/cjs/components/SelectionList/SelectionList.cjs +25 -15
  41. package/dist/cjs/components/SelectionList/SelectionList.cjs.map +1 -1
  42. package/dist/cjs/components/SelectionList/SelectionList.styles.cjs +41 -119
  43. package/dist/cjs/components/SelectionList/SelectionList.styles.cjs.map +1 -1
  44. package/dist/cjs/components/Stack/Stack.cjs +8 -7
  45. package/dist/cjs/components/Stack/Stack.cjs.map +1 -1
  46. package/dist/cjs/components/Stack/Stack.styles.cjs +18 -37
  47. package/dist/cjs/components/Stack/Stack.styles.cjs.map +1 -1
  48. package/dist/cjs/components/Tab/Tab.cjs +12 -8
  49. package/dist/cjs/components/Tab/Tab.cjs.map +1 -1
  50. package/dist/cjs/components/Tab/Tab.styles.cjs +53 -57
  51. package/dist/cjs/components/Tab/Tab.styles.cjs.map +1 -1
  52. package/dist/cjs/components/Table/Table.styles.cjs +6 -7
  53. package/dist/cjs/components/Table/Table.styles.cjs.map +1 -1
  54. package/dist/cjs/components/Table/TableRow/TableRow.styles.cjs +6 -22
  55. package/dist/cjs/components/Table/TableRow/TableRow.styles.cjs.map +1 -1
  56. package/dist/cjs/components/Table/hooks/useSticky.cjs +5 -1
  57. package/dist/cjs/components/Table/hooks/useSticky.cjs.map +1 -1
  58. package/dist/cjs/components/Table/utils/utils.cjs +15 -42
  59. package/dist/cjs/components/Table/utils/utils.cjs.map +1 -1
  60. package/dist/cjs/components/Tabs/Tabs.cjs +11 -8
  61. package/dist/cjs/components/Tabs/Tabs.cjs.map +1 -1
  62. package/dist/cjs/components/Tabs/Tabs.styles.cjs +16 -20
  63. package/dist/cjs/components/Tabs/Tabs.styles.cjs.map +1 -1
  64. package/dist/cjs/components/TagsInput/TagsInput.styles.cjs +4 -4
  65. package/dist/cjs/components/TagsInput/TagsInput.styles.cjs.map +1 -1
  66. package/dist/cjs/components/TextArea/TextArea.cjs +32 -21
  67. package/dist/cjs/components/TextArea/TextArea.cjs.map +1 -1
  68. package/dist/cjs/components/TextArea/TextArea.styles.cjs +45 -142
  69. package/dist/cjs/components/TextArea/TextArea.styles.cjs.map +1 -1
  70. package/dist/cjs/components/Typography/Typography.cjs +2 -2
  71. package/dist/cjs/components/Typography/Typography.cjs.map +1 -1
  72. package/dist/cjs/components/VerticalNavigation/NavigationSlider/NavigationSlider.styles.cjs +3 -3
  73. package/dist/cjs/components/VerticalNavigation/NavigationSlider/NavigationSlider.styles.cjs.map +1 -1
  74. package/dist/cjs/components/VerticalNavigation/TreeView/TreeViewItem.styles.cjs +4 -11
  75. package/dist/cjs/components/VerticalNavigation/TreeView/TreeViewItem.styles.cjs.map +1 -1
  76. package/dist/cjs/components/VerticalNavigation/TreeView/descendants.cjs +1 -9
  77. package/dist/cjs/components/VerticalNavigation/TreeView/descendants.cjs.map +1 -1
  78. package/dist/cjs/index.cjs +18 -18
  79. package/dist/esm/components/BulkActions/BulkActions.js +0 -4
  80. package/dist/esm/components/BulkActions/BulkActions.js.map +1 -1
  81. package/dist/esm/components/Card/Card.js +2 -2
  82. package/dist/esm/components/Card/Card.js.map +1 -1
  83. package/dist/esm/components/Card/Card.styles.js +1 -1
  84. package/dist/esm/components/Card/Card.styles.js.map +1 -1
  85. package/dist/esm/components/CheckBoxGroup/CheckBoxGroup.styles.js +0 -4
  86. package/dist/esm/components/CheckBoxGroup/CheckBoxGroup.styles.js.map +1 -1
  87. package/dist/esm/components/DropDownMenu/DropDownMenu.styles.js +1 -1
  88. package/dist/esm/components/DropDownMenu/DropDownMenu.styles.js.map +1 -1
  89. package/dist/esm/components/FilterGroup/RightPanel/RightPanel.styles.js +0 -4
  90. package/dist/esm/components/FilterGroup/RightPanel/RightPanel.styles.js.map +1 -1
  91. package/dist/esm/components/Footer/Footer.js +2 -2
  92. package/dist/esm/components/Footer/Footer.js.map +1 -1
  93. package/dist/esm/components/GlobalActions/GlobalActions.js +44 -22
  94. package/dist/esm/components/GlobalActions/GlobalActions.js.map +1 -1
  95. package/dist/esm/components/GlobalActions/GlobalActions.styles.js +42 -87
  96. package/dist/esm/components/GlobalActions/GlobalActions.styles.js.map +1 -1
  97. package/dist/esm/components/List/List.styles.js +13 -28
  98. package/dist/esm/components/List/List.styles.js.map +1 -1
  99. package/dist/esm/components/ListContainer/ListContainer.js +10 -5
  100. package/dist/esm/components/ListContainer/ListContainer.js.map +1 -1
  101. package/dist/esm/components/ListContainer/ListContainer.styles.js +12 -0
  102. package/dist/esm/components/ListContainer/ListContainer.styles.js.map +1 -0
  103. package/dist/esm/components/ListContainer/ListContext/ListContext.js.map +1 -1
  104. package/dist/esm/components/ListContainer/ListItem/ListItem.js +46 -33
  105. package/dist/esm/components/ListContainer/ListItem/ListItem.js.map +1 -1
  106. package/dist/esm/components/ListContainer/ListItem/ListItem.styles.js +47 -73
  107. package/dist/esm/components/ListContainer/ListItem/ListItem.styles.js.map +1 -1
  108. package/dist/esm/components/Loading/Loading.js +21 -15
  109. package/dist/esm/components/Loading/Loading.js.map +1 -1
  110. package/dist/esm/components/Loading/Loading.styles.js +44 -94
  111. package/dist/esm/components/Loading/Loading.styles.js.map +1 -1
  112. package/dist/esm/components/RadioGroup/RadioGroup.styles.js +0 -4
  113. package/dist/esm/components/RadioGroup/RadioGroup.styles.js.map +1 -1
  114. package/dist/esm/components/ScrollTo/Horizontal/ScrollToHorizontal.js +2 -2
  115. package/dist/esm/components/ScrollTo/Horizontal/ScrollToHorizontal.js.map +1 -1
  116. package/dist/esm/components/ScrollTo/Vertical/ScrollToVertical.js +2 -2
  117. package/dist/esm/components/ScrollTo/Vertical/ScrollToVertical.js.map +1 -1
  118. package/dist/esm/components/SelectionList/SelectionList.js +28 -17
  119. package/dist/esm/components/SelectionList/SelectionList.js.map +1 -1
  120. package/dist/esm/components/SelectionList/SelectionList.styles.js +41 -117
  121. package/dist/esm/components/SelectionList/SelectionList.styles.js.map +1 -1
  122. package/dist/esm/components/Stack/Stack.js +11 -9
  123. package/dist/esm/components/Stack/Stack.js.map +1 -1
  124. package/dist/esm/components/Stack/Stack.styles.js +18 -35
  125. package/dist/esm/components/Stack/Stack.styles.js.map +1 -1
  126. package/dist/esm/components/Tab/Tab.js +15 -10
  127. package/dist/esm/components/Tab/Tab.js.map +1 -1
  128. package/dist/esm/components/Tab/Tab.styles.js +53 -55
  129. package/dist/esm/components/Tab/Tab.styles.js.map +1 -1
  130. package/dist/esm/components/Table/Table.styles.js +6 -7
  131. package/dist/esm/components/Table/Table.styles.js.map +1 -1
  132. package/dist/esm/components/Table/TableRow/TableRow.styles.js +6 -22
  133. package/dist/esm/components/Table/TableRow/TableRow.styles.js.map +1 -1
  134. package/dist/esm/components/Table/hooks/useSticky.js +5 -1
  135. package/dist/esm/components/Table/hooks/useSticky.js.map +1 -1
  136. package/dist/esm/components/Table/utils/utils.js +15 -42
  137. package/dist/esm/components/Table/utils/utils.js.map +1 -1
  138. package/dist/esm/components/Tabs/Tabs.js +14 -10
  139. package/dist/esm/components/Tabs/Tabs.js.map +1 -1
  140. package/dist/esm/components/Tabs/Tabs.styles.js +16 -18
  141. package/dist/esm/components/Tabs/Tabs.styles.js.map +1 -1
  142. package/dist/esm/components/TagsInput/TagsInput.styles.js +6 -6
  143. package/dist/esm/components/TextArea/TextArea.js +35 -23
  144. package/dist/esm/components/TextArea/TextArea.js.map +1 -1
  145. package/dist/esm/components/TextArea/TextArea.styles.js +45 -140
  146. package/dist/esm/components/TextArea/TextArea.styles.js.map +1 -1
  147. package/dist/esm/components/Typography/Typography.js +2 -2
  148. package/dist/esm/components/Typography/Typography.js.map +1 -1
  149. package/dist/esm/components/VerticalNavigation/NavigationSlider/NavigationSlider.styles.js +3 -3
  150. package/dist/esm/components/VerticalNavigation/NavigationSlider/NavigationSlider.styles.js.map +1 -1
  151. package/dist/esm/components/VerticalNavigation/TreeView/TreeViewItem.styles.js +4 -11
  152. package/dist/esm/components/VerticalNavigation/TreeView/TreeViewItem.styles.js.map +1 -1
  153. package/dist/esm/components/VerticalNavigation/TreeView/descendants.js +1 -9
  154. package/dist/esm/components/VerticalNavigation/TreeView/descendants.js.map +1 -1
  155. package/dist/esm/index.js +236 -236
  156. package/dist/types/index.d.ts +452 -385
  157. package/package.json +3 -3
  158. package/dist/cjs/components/GlobalActions/globalActionsClasses.cjs +0 -8
  159. package/dist/cjs/components/GlobalActions/globalActionsClasses.cjs.map +0 -1
  160. package/dist/cjs/components/ListContainer/ListItem/listItemClasses.cjs +0 -8
  161. package/dist/cjs/components/ListContainer/ListItem/listItemClasses.cjs.map +0 -1
  162. package/dist/cjs/components/ListContainer/listContainerClasses.cjs +0 -8
  163. package/dist/cjs/components/ListContainer/listContainerClasses.cjs.map +0 -1
  164. package/dist/cjs/components/Loading/loadingClasses.cjs +0 -8
  165. package/dist/cjs/components/Loading/loadingClasses.cjs.map +0 -1
  166. package/dist/cjs/components/SelectionList/selectionListClasses.cjs +0 -8
  167. package/dist/cjs/components/SelectionList/selectionListClasses.cjs.map +0 -1
  168. package/dist/cjs/components/Stack/stackClasses.cjs +0 -8
  169. package/dist/cjs/components/Stack/stackClasses.cjs.map +0 -1
  170. package/dist/cjs/components/Tab/tabClasses.cjs +0 -8
  171. package/dist/cjs/components/Tab/tabClasses.cjs.map +0 -1
  172. package/dist/cjs/components/Tabs/tabsClasses.cjs +0 -8
  173. package/dist/cjs/components/Tabs/tabsClasses.cjs.map +0 -1
  174. package/dist/cjs/components/TextArea/textAreaClasses.cjs +0 -8
  175. package/dist/cjs/components/TextArea/textAreaClasses.cjs.map +0 -1
  176. package/dist/esm/components/GlobalActions/globalActionsClasses.js +0 -8
  177. package/dist/esm/components/GlobalActions/globalActionsClasses.js.map +0 -1
  178. package/dist/esm/components/ListContainer/ListItem/listItemClasses.js +0 -8
  179. package/dist/esm/components/ListContainer/ListItem/listItemClasses.js.map +0 -1
  180. package/dist/esm/components/ListContainer/listContainerClasses.js +0 -8
  181. package/dist/esm/components/ListContainer/listContainerClasses.js.map +0 -1
  182. package/dist/esm/components/Loading/loadingClasses.js +0 -8
  183. package/dist/esm/components/Loading/loadingClasses.js.map +0 -1
  184. package/dist/esm/components/SelectionList/selectionListClasses.js +0 -8
  185. package/dist/esm/components/SelectionList/selectionListClasses.js.map +0 -1
  186. package/dist/esm/components/Stack/stackClasses.js +0 -8
  187. package/dist/esm/components/Stack/stackClasses.js.map +0 -1
  188. package/dist/esm/components/Tab/tabClasses.js +0 -8
  189. package/dist/esm/components/Tab/tabClasses.js.map +0 -1
  190. package/dist/esm/components/Tabs/tabsClasses.js +0 -8
  191. package/dist/esm/components/Tabs/tabsClasses.js.map +0 -1
  192. package/dist/esm/components/TextArea/textAreaClasses.js +0 -8
  193. package/dist/esm/components/TextArea/textAreaClasses.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Stack.js","sources":["../../../../src/components/Stack/Stack.tsx"],"sourcesContent":["import React, { useMemo, useRef, useCallback } from \"react\";\n\nimport { useTheme } from \"@mui/material/styles\";\nimport MuiDivider, {\n DividerProps as MuiDividerProps,\n} from \"@mui/material/Divider\";\n\nimport { clsx } from \"clsx\";\n\nimport isString from \"lodash/isString\";\nimport isBoolean from \"lodash/isBoolean\";\n\nimport { useWidth } from \"@core/hooks/useWidth\";\nimport { useDefaultProps } from \"@core/hooks/useDefaultProps\";\nimport { HvBaseProps } from \"@core/types/generic\";\nimport { HvFocus } from \"@core/components/Focus\";\nimport { HvBreakpoints } from \"@core/types/tokens\";\n\nimport { StyledRoot } from \"./Stack.styles\";\nimport stackClasses, { HvStackClasses } from \"./stackClasses\";\n\nexport type HvStackDirection = \"column\" | \"row\" | Partial<HvStackBreakpoints>;\nexport interface HvStackBreakpoints extends Record<HvBreakpoints, string> {}\n\nexport interface HvStackProps extends HvBaseProps {\n /** The direction of the stack. Can be either a string or an object that states the direction for each breakpoint. */\n direction?: HvStackDirection;\n /** The spacing between elements of the stack. */\n spacing?: HvBreakpoints;\n /** The divider component to be used between the stack elements.\n * - If `true` the Material-UI Divider component will be used.\n * - If a React node is passed then the custom divider will be used.\n */\n divider?: boolean | React.ReactNode;\n /** The properties to pass on to the Material-UI component. */\n dividerProps?: MuiDividerProps;\n /** Sets whether or not there should be arrow navigation between the stack elements. */\n withNavigation?: boolean;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvStackClasses;\n}\n\n/**\n * @returns {string} - Returns a direction for the stack: column or row. If the\n * `direction` property is a string and a valid direction then we\n * use it. If it's an object with multiple directions by breakpoint\n * we use the appropriate one or search for the nearest breakpoint\n * smaller than the current one to use.\n */\nconst getDirection = (direction, width, breakpoints) => {\n if (isString(direction)) return direction;\n\n for (let i = breakpoints.indexOf(width); i >= 0; i -= 1) {\n if (direction[breakpoints[i]] !== undefined) {\n return direction[breakpoints[i]];\n }\n }\n return \"column\";\n};\n\n/**\n * A Stack component allows the organization of its children in a vertical or horizontal layout.\n *\n * It also allows the specification of the spacing between the stack elements and the addition of a divider between the elements.\n */\nexport const HvStack = (props: HvStackProps) => {\n const {\n classes,\n className,\n children,\n direction = \"column\",\n spacing = \"sm\",\n divider = false,\n withNavigation = false,\n dividerProps = {},\n ...others\n } = useDefaultProps(\"HvStack\", props);\n const width = useWidth();\n const containerRef = useRef(null);\n const { breakpoints } = useTheme();\n\n const processedDirection = useMemo(\n () => getDirection(direction, width, breakpoints.keys),\n [direction, width, breakpoints]\n );\n\n /**\n * @returns {node} - The divider component to use. If the property `divider` is\n * set to `true` then the Material-UI divider is used, otherwise\n * we use the custom divider the user passed.\n */\n const getDividerComponent = useCallback(() => {\n if (isBoolean(divider) && divider) {\n return (\n <MuiDivider\n orientation={\n processedDirection === \"column\" ? \"horizontal\" : \"vertical\"\n }\n flexItem={processedDirection === \"row\"}\n role=\"separator\"\n {...dividerProps}\n />\n );\n }\n return divider;\n }, [divider, dividerProps, processedDirection]);\n\n return (\n <StyledRoot\n ref={containerRef}\n className={clsx(className, stackClasses.root, classes?.root)}\n $direction={processedDirection}\n $breakpoint={spacing}\n {...others}\n >\n {React.Children.map(children, (child, i) => {\n return (\n <>\n {divider && i !== 0 && getDividerComponent()}\n {withNavigation ? (\n <HvFocus\n rootRef={containerRef}\n focusDisabled={false}\n strategy=\"grid\"\n navigationJump={\n processedDirection === \"column\"\n ? 1\n : React.Children.count(children) || 0\n }\n filterClass=\"child\"\n >\n <div className=\"child\">{child}</div>\n </HvFocus>\n ) : (\n child\n )}\n </>\n );\n })}\n </StyledRoot>\n );\n};\n"],"names":["getDirection","direction","width","breakpoints","isString","i","indexOf","undefined","HvStack","props","classes","className","children","spacing","divider","withNavigation","dividerProps","others","useDefaultProps","useWidth","containerRef","useRef","useTheme","processedDirection","useMemo","keys","getDividerComponent","useCallback","isBoolean","MuiDivider","orientation","flexItem","role","StyledRoot","ref","clsx","stackClasses","root","$direction","$breakpoint","React","Children","map","child","_Fragment","_jsx","HvFocus","rootRef","focusDisabled","strategy","navigationJump","count","filterClass"],"mappings":";;;;;;;;;;;;AAiDA,MAAMA,eAAeA,CAACC,WAAWC,OAAOC,gBAAgB;AACtD,MAAIC,SAASH,SAAS;AAAUA,WAAAA;AAEvBI,WAAAA,IAAIF,YAAYG,QAAQJ,KAAK,GAAGG,KAAK,GAAGA,KAAK,GAAG;AACvD,QAAIJ,UAAUE,YAAYE,CAAC,CAAC,MAAME,QAAW;AACpCN,aAAAA,UAAUE,YAAYE,CAAC,CAAC;AAAA,IACjC;AAAA,EACF;AACO,SAAA;AACT;AAOaG,MAAAA,UAAUA,CAACC,UAAwB;AACxC,QAAA;AAAA,IACJC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAX,YAAY;AAAA,IACZY,UAAU;AAAA,IACVC,UAAU;AAAA,IACVC,iBAAiB;AAAA,IACjBC,eAAe,CAAC;AAAA,IAChB,GAAGC;AAAAA,EAAAA,IACDC,gBAAgB,WAAWT,KAAK;AACpC,QAAMP,QAAQiB;AACRC,QAAAA,eAAeC,OAAO,IAAI;AAC1B,QAAA;AAAA,IAAElB;AAAAA,MAAgBmB,SAAS;AAEjC,QAAMC,qBAAqBC,QACzB,MAAMxB,aAAaC,WAAWC,OAAOC,YAAYsB,IAAI,GACrD,CAACxB,WAAWC,OAAOC,WAAW,CAChC;AAOMuB,QAAAA,sBAAsBC,YAAY,MAAM;AACxCC,QAAAA,UAAUd,OAAO,KAAKA,SAAS;AACjC,iCACGe,YAAU;AAAA,QACTC,aACEP,uBAAuB,WAAW,eAAe;AAAA,QAEnDQ,UAAUR,uBAAuB;AAAA,QACjCS,MAAK;AAAA,QAAW,GACZhB;AAAAA,MAAAA,CACL;AAAA,IAEL;AACOF,WAAAA;AAAAA,EACN,GAAA,CAACA,SAASE,cAAcO,kBAAkB,CAAC;AAE9C,6BACGU,YAAU;AAAA,IACTC,KAAKd;AAAAA,IACLT,WAAWwB,KAAKxB,WAAWyB,aAAaC,MAAM3B,mCAAS2B,IAAI;AAAA,IAC3DC,YAAYf;AAAAA,IACZgB,aAAa1B;AAAAA,IAAQ,GACjBI;AAAAA,IAAML,UAET4B,eAAMC,SAASC,IAAI9B,UAAU,CAAC+B,OAAOtC,MAAM;AAC1C,kCACEuC,UAAA;AAAA,QAAAhC,UACGE,CAAAA,WAAWT,MAAM,KAAKqB,uBACtBX,iBACC8B,oBAACC,SAAO;AAAA,UACNC,SAAS3B;AAAAA,UACT4B,eAAe;AAAA,UACfC,UAAS;AAAA,UACTC,gBACE3B,uBAAuB,WACnB,IACAiB,eAAMC,SAASU,MAAMvC,QAAQ,KAAK;AAAA,UAExCwC,aAAY;AAAA,UAAOxC,8BAEnB,OAAA;AAAA,YAAKD,WAAU;AAAA,YAAOC,UAAE+B;AAAAA,UAAAA,CAAW;AAAA,QAC5B,CAAA,IAETA,KACD;AAAA,MAAA,CACD;AAAA,IAAA,CAEL;AAAA,EAAA,CACS;AAEhB;"}
1
+ {"version":3,"file":"Stack.js","sources":["../../../../src/components/Stack/Stack.tsx"],"sourcesContent":["import React, { useMemo, useRef, useCallback } from \"react\";\n\nimport { useTheme } from \"@mui/material/styles\";\nimport MuiDivider, {\n DividerProps as MuiDividerProps,\n} from \"@mui/material/Divider\";\n\nimport isString from \"lodash/isString\";\nimport isBoolean from \"lodash/isBoolean\";\n\nimport { useWidth } from \"@core/hooks/useWidth\";\nimport { useDefaultProps } from \"@core/hooks/useDefaultProps\";\nimport { HvBaseProps } from \"@core/types/generic\";\nimport { HvFocus } from \"@core/components/Focus\";\nimport { HvBreakpoints } from \"@core/types/tokens\";\nimport { ExtractNames } from \"@core/utils/classes\";\n\nimport { useClasses, staticClasses } from \"./Stack.styles\";\n\nexport { staticClasses as stackClasses };\n\nexport type HvStackClasses = ExtractNames<typeof useClasses>;\n\nexport type HvStackDirection = \"column\" | \"row\" | Partial<HvStackBreakpoints>;\nexport interface HvStackBreakpoints extends Record<HvBreakpoints, string> {}\n\nexport interface HvStackProps extends HvBaseProps {\n /** The direction of the stack. Can be either a string or an object that states the direction for each breakpoint. */\n direction?: HvStackDirection;\n /** The spacing between elements of the stack. */\n spacing?: HvBreakpoints;\n /** The divider component to be used between the stack elements.\n * - If `true` the Material-UI Divider component will be used.\n * - If a React node is passed then the custom divider will be used.\n */\n divider?: boolean | React.ReactNode;\n /** The properties to pass on to the Material-UI component. */\n dividerProps?: MuiDividerProps;\n /** Sets whether or not there should be arrow navigation between the stack elements. */\n withNavigation?: boolean;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvStackClasses;\n}\n\n/**\n * @returns {string} - Returns a direction for the stack: column or row. If the\n * `direction` property is a string and a valid direction then we\n * use it. If it's an object with multiple directions by breakpoint\n * we use the appropriate one or search for the nearest breakpoint\n * smaller than the current one to use.\n */\nconst getDirection = (direction, width, breakpoints) => {\n if (isString(direction)) return direction;\n\n for (let i = breakpoints.indexOf(width); i >= 0; i -= 1) {\n if (direction[breakpoints[i]] !== undefined) {\n return direction[breakpoints[i]];\n }\n }\n return \"column\";\n};\n\n/**\n * A Stack component allows the organization of its children in a vertical or horizontal layout.\n *\n * It also allows the specification of the spacing between the stack elements and the addition of a divider between the elements.\n */\nexport const HvStack = (props: HvStackProps) => {\n const {\n classes: classesProp,\n className,\n children,\n direction = \"column\",\n spacing = \"sm\",\n divider = false,\n withNavigation = false,\n dividerProps = {},\n ...others\n } = useDefaultProps(\"HvStack\", props);\n const { classes, cx } = useClasses(classesProp);\n\n const width = useWidth();\n const containerRef = useRef(null);\n const { breakpoints } = useTheme();\n\n const processedDirection = useMemo(\n () => getDirection(direction, width, breakpoints.keys),\n [direction, width, breakpoints]\n );\n\n /**\n * @returns {node} - The divider component to use. If the property `divider` is\n * set to `true` then the Material-UI divider is used, otherwise\n * we use the custom divider the user passed.\n */\n const getDividerComponent = useCallback(() => {\n if (isBoolean(divider) && divider) {\n return (\n <MuiDivider\n orientation={\n processedDirection === \"column\" ? \"horizontal\" : \"vertical\"\n }\n flexItem={processedDirection === \"row\"}\n role=\"separator\"\n {...dividerProps}\n />\n );\n }\n return divider;\n }, [divider, dividerProps, processedDirection]);\n\n return (\n <div\n ref={containerRef}\n className={cx(\n classes.root,\n classes[processedDirection],\n classes[spacing],\n className\n )}\n {...others}\n >\n {React.Children.map(children, (child, i) => {\n return (\n <>\n {divider && i !== 0 && getDividerComponent()}\n {withNavigation ? (\n <HvFocus\n rootRef={containerRef}\n focusDisabled={false}\n strategy=\"grid\"\n navigationJump={\n processedDirection === \"column\"\n ? 1\n : React.Children.count(children) || 0\n }\n filterClass=\"child\"\n >\n <div className=\"child\">{child}</div>\n </HvFocus>\n ) : (\n child\n )}\n </>\n );\n })}\n </div>\n );\n};\n"],"names":["getDirection","direction","width","breakpoints","isString","i","indexOf","undefined","HvStack","props","classes","classesProp","className","children","spacing","divider","withNavigation","dividerProps","others","useDefaultProps","cx","useClasses","useWidth","containerRef","useRef","useTheme","processedDirection","useMemo","keys","getDividerComponent","useCallback","isBoolean","MuiDivider","orientation","flexItem","role","ref","root","React","Children","map","child","_Fragment","_jsx","HvFocus","rootRef","focusDisabled","strategy","navigationJump","count","filterClass"],"mappings":";;;;;;;;;;;AAmDA,MAAMA,eAAeA,CAACC,WAAWC,OAAOC,gBAAgB;AACtD,MAAIC,SAASH,SAAS;AAAUA,WAAAA;AAEvBI,WAAAA,IAAIF,YAAYG,QAAQJ,KAAK,GAAGG,KAAK,GAAGA,KAAK,GAAG;AACvD,QAAIJ,UAAUE,YAAYE,CAAC,CAAC,MAAME,QAAW;AACpCN,aAAAA,UAAUE,YAAYE,CAAC,CAAC;AAAA,IACjC;AAAA,EACF;AACO,SAAA;AACT;AAOaG,MAAAA,UAAUA,CAACC,UAAwB;AACxC,QAAA;AAAA,IACJC,SAASC;AAAAA,IACTC;AAAAA,IACAC;AAAAA,IACAZ,YAAY;AAAA,IACZa,UAAU;AAAA,IACVC,UAAU;AAAA,IACVC,iBAAiB;AAAA,IACjBC,eAAe,CAAC;AAAA,IAChB,GAAGC;AAAAA,EAAAA,IACDC,gBAAgB,WAAWV,KAAK;AAC9B,QAAA;AAAA,IAAEC;AAAAA,IAASU;AAAAA,EAAAA,IAAOC,WAAWV,WAAW;AAE9C,QAAMT,QAAQoB;AACRC,QAAAA,eAAeC,OAAO,IAAI;AAC1B,QAAA;AAAA,IAAErB;AAAAA,MAAgBsB,SAAS;AAEjC,QAAMC,qBAAqBC,QACzB,MAAM3B,aAAaC,WAAWC,OAAOC,YAAYyB,IAAI,GACrD,CAAC3B,WAAWC,OAAOC,WAAW,CAChC;AAOM0B,QAAAA,sBAAsBC,YAAY,MAAM;AACxCC,QAAAA,UAAUhB,OAAO,KAAKA,SAAS;AACjC,iCACGiB,YAAU;AAAA,QACTC,aACEP,uBAAuB,WAAW,eAAe;AAAA,QAEnDQ,UAAUR,uBAAuB;AAAA,QACjCS,MAAK;AAAA,QAAW,GACZlB;AAAAA,MAAAA,CACL;AAAA,IAEL;AACOF,WAAAA;AAAAA,EACN,GAAA,CAACA,SAASE,cAAcS,kBAAkB,CAAC;AAE9C,6BACE,OAAA;AAAA,IACEU,KAAKb;AAAAA,IACLX,WAAWQ,GACTV,QAAQ2B,MACR3B,QAAQgB,kBAAkB,GAC1BhB,QAAQI,OAAO,GACfF,SACF;AAAA,IAAE,GACEM;AAAAA,IAAML,UAETyB,eAAMC,SAASC,IAAI3B,UAAU,CAAC4B,OAAOpC,MAAM;AAC1C,kCACEqC,UAAA;AAAA,QAAA7B,UACGE,CAAAA,WAAWV,MAAM,KAAKwB,uBACtBb,iBACC2B,oBAACC,SAAO;AAAA,UACNC,SAAStB;AAAAA,UACTuB,eAAe;AAAA,UACfC,UAAS;AAAA,UACTC,gBACEtB,uBAAuB,WACnB,IACAY,eAAMC,SAASU,MAAMpC,QAAQ,KAAK;AAAA,UAExCqC,aAAY;AAAA,UAAOrC,8BAEnB,OAAA;AAAA,YAAKD,WAAU;AAAA,YAAOC,UAAE4B;AAAAA,UAAAA,CAAW;AAAA,QAC5B,CAAA,IAETA,KACD;AAAA,MAAA,CACD;AAAA,IAAA,CAEL;AAAA,EAAA,CACE;AAET;"}
@@ -1,53 +1,36 @@
1
- import _styled from "@emotion/styled/base";
2
1
  import { theme } from "@hitachivantara/uikit-styles";
3
- import { transientOptions } from "../../utils/transientOptions.js";
4
- function _extends() {
5
- _extends = Object.assign ? Object.assign.bind() : function(target) {
6
- for (var i = 1; i < arguments.length; i++) {
7
- var source = arguments[i];
8
- for (var key in source) {
9
- if (Object.prototype.hasOwnProperty.call(source, key)) {
10
- target[key] = source[key];
11
- }
12
- }
13
- }
14
- return target;
15
- };
16
- return _extends.apply(this, arguments);
17
- }
18
- const StyledRoot = /* @__PURE__ */ _styled("div", process.env.NODE_ENV === "production" ? _extends({}, {
19
- target: "evwozt80"
20
- }, transientOptions) : _extends({}, {
21
- target: "evwozt80",
22
- label: "StyledRoot"
23
- }, transientOptions))(({
24
- $direction,
25
- $breakpoint
26
- }) => ({
27
- display: "flex",
28
- ...$direction === "column" && {
2
+ import { createClasses } from "../../utils/classes.js";
3
+ const {
4
+ staticClasses,
5
+ useClasses
6
+ } = createClasses("HvStack", {
7
+ root: {
8
+ display: "flex"
9
+ },
10
+ column: {
29
11
  flexDirection: "column"
30
12
  },
31
- ...$direction === "row" && {
13
+ row: {
32
14
  flexDirection: "row"
33
15
  },
34
- ...$breakpoint === "xs" && {
16
+ xs: {
35
17
  gap: theme.space.xs
36
18
  },
37
- ...$breakpoint === "sm" && {
19
+ sm: {
38
20
  gap: theme.space.sm
39
21
  },
40
- ...$breakpoint === "md" && {
22
+ md: {
41
23
  gap: theme.spacing(4)
42
24
  },
43
- ...$breakpoint === "lg" && {
25
+ lg: {
44
26
  gap: theme.spacing(6)
45
27
  },
46
- ...$breakpoint === "xl" && {
28
+ xl: {
47
29
  gap: theme.spacing(11)
48
30
  }
49
- }), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvU3RhY2svU3RhY2suc3R5bGVzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNMEIiLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvaHYtdWlraXQtcmVhY3QvaHYtdWlraXQtcmVhY3QvcGFja2FnZXMvY29yZS9zcmMvY29tcG9uZW50cy9TdGFjay9TdGFjay5zdHlsZXMudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5cbmltcG9ydCB7IHRoZW1lIH0gZnJvbSBcIkBoaXRhY2hpdmFudGFyYS91aWtpdC1zdHlsZXNcIjtcblxuaW1wb3J0IHsgdHJhbnNpZW50T3B0aW9ucyB9IGZyb20gXCJAY29yZS91dGlscy90cmFuc2llbnRPcHRpb25zXCI7XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRSb290ID0gc3R5bGVkKFxuICBcImRpdlwiLFxuICB0cmFuc2llbnRPcHRpb25zXG4pKFxuICAoe1xuICAgICRkaXJlY3Rpb24sXG4gICAgJGJyZWFrcG9pbnQsXG4gIH06IHtcbiAgICAkZGlyZWN0aW9uOiBzdHJpbmc7XG4gICAgJGJyZWFrcG9pbnQ6IHN0cmluZztcbiAgfSkgPT4gKHtcbiAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICAuLi4oJGRpcmVjdGlvbiA9PT0gXCJjb2x1bW5cIiAmJiB7XG4gICAgICBmbGV4RGlyZWN0aW9uOiBcImNvbHVtblwiLFxuICAgIH0pLFxuICAgIC4uLigkZGlyZWN0aW9uID09PSBcInJvd1wiICYmIHtcbiAgICAgIGZsZXhEaXJlY3Rpb246IFwicm93XCIsXG4gICAgfSksXG4gICAgLi4uKCRicmVha3BvaW50ID09PSBcInhzXCIgJiYge1xuICAgICAgZ2FwOiB0aGVtZS5zcGFjZS54cyxcbiAgICB9KSxcbiAgICAuLi4oJGJyZWFrcG9pbnQgPT09IFwic21cIiAmJiB7XG4gICAgICBnYXA6IHRoZW1lLnNwYWNlLnNtLFxuICAgIH0pLFxuICAgIC4uLigkYnJlYWtwb2ludCA9PT0gXCJtZFwiICYmIHtcbiAgICAgIGdhcDogdGhlbWUuc3BhY2luZyg0KSxcbiAgICB9KSxcbiAgICAuLi4oJGJyZWFrcG9pbnQgPT09IFwibGdcIiAmJiB7XG4gICAgICBnYXA6IHRoZW1lLnNwYWNpbmcoNiksXG4gICAgfSksXG4gICAgLi4uKCRicmVha3BvaW50ID09PSBcInhsXCIgJiYge1xuICAgICAgZ2FwOiB0aGVtZS5zcGFjaW5nKDExKSxcbiAgICB9KSxcbiAgfSlcbik7XG4iXX0= */");
31
+ });
50
32
  export {
51
- StyledRoot
33
+ staticClasses,
34
+ useClasses
52
35
  };
53
36
  //# sourceMappingURL=Stack.styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Stack.styles.js","sources":["../../../../src/components/Stack/Stack.styles.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\n\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { transientOptions } from \"@core/utils/transientOptions\";\n\nexport const StyledRoot = styled(\n \"div\",\n transientOptions\n)(\n ({\n $direction,\n $breakpoint,\n }: {\n $direction: string;\n $breakpoint: string;\n }) => ({\n display: \"flex\",\n ...($direction === \"column\" && {\n flexDirection: \"column\",\n }),\n ...($direction === \"row\" && {\n flexDirection: \"row\",\n }),\n ...($breakpoint === \"xs\" && {\n gap: theme.space.xs,\n }),\n ...($breakpoint === \"sm\" && {\n gap: theme.space.sm,\n }),\n ...($breakpoint === \"md\" && {\n gap: theme.spacing(4),\n }),\n ...($breakpoint === \"lg\" && {\n gap: theme.spacing(6),\n }),\n ...($breakpoint === \"xl\" && {\n gap: theme.spacing(11),\n }),\n })\n);\n"],"names":["StyledRoot","process","env","NODE_ENV","_extends","target","transientOptions","label","$direction","$breakpoint","display","flexDirection","gap","theme","space","xs","sm","spacing"],"mappings":";;;;;;;;;;;;;;;;;AAMaA,MAAAA,qCACX,OAAKC,QAAAC,IAAAC,4BAAAC,SAAA,IAAA;AAAA,EAAAC,QAAA;AAAA,GACLC,gBAAgB,IAAAF,SAAA,IAAA;AAAA,EAAAC,QAAA;AAAA,EAAAE,OAAA;AAAA,GAAhBD,gBAAgB,CAClB,EACE,CAAC;AAAA,EACCE;AAAAA,EACAC;AAIF,OAAO;AAAA,EACLC,SAAS;AAAA,EACT,GAAIF,eAAe,YAAY;AAAA,IAC7BG,eAAe;AAAA,EACjB;AAAA,EACA,GAAIH,eAAe,SAAS;AAAA,IAC1BG,eAAe;AAAA,EACjB;AAAA,EACA,GAAIF,gBAAgB,QAAQ;AAAA,IAC1BG,KAAKC,MAAMC,MAAMC;AAAAA,EACnB;AAAA,EACA,GAAIN,gBAAgB,QAAQ;AAAA,IAC1BG,KAAKC,MAAMC,MAAME;AAAAA,EACnB;AAAA,EACA,GAAIP,gBAAgB,QAAQ;AAAA,IAC1BG,KAAKC,MAAMI,QAAQ,CAAC;AAAA,EACtB;AAAA,EACA,GAAIR,gBAAgB,QAAQ;AAAA,IAC1BG,KAAKC,MAAMI,QAAQ,CAAC;AAAA,EACtB;AAAA,EACA,GAAIR,gBAAgB,QAAQ;AAAA,IAC1BG,KAAKC,MAAMI,QAAQ,EAAE;AAAA,EACvB;AACF,IAAEhB,QAAAC,IAAAC,0rDACJ;"}
1
+ {"version":3,"file":"Stack.styles.js","sources":["../../../../src/components/Stack/Stack.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"@core/utils/classes\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvStack\", {\n root: {\n display: \"flex\",\n },\n column: {\n flexDirection: \"column\",\n },\n row: {\n flexDirection: \"row\",\n },\n xs: {\n gap: theme.space.xs,\n },\n sm: {\n gap: theme.space.sm,\n },\n md: {\n gap: theme.spacing(4),\n },\n lg: {\n gap: theme.spacing(6),\n },\n xl: {\n gap: theme.spacing(11),\n },\n});\n"],"names":["staticClasses","useClasses","createClasses","root","display","column","flexDirection","row","xs","gap","theme","space","sm","md","spacing","lg","xl"],"mappings":";;AAIa,MAAA;AAAA,EAAEA;AAAAA,EAAeC;AAAW,IAAIC,cAAc,WAAW;AAAA,EACpEC,MAAM;AAAA,IACJC,SAAS;AAAA,EACX;AAAA,EACAC,QAAQ;AAAA,IACNC,eAAe;AAAA,EACjB;AAAA,EACAC,KAAK;AAAA,IACHD,eAAe;AAAA,EACjB;AAAA,EACAE,IAAI;AAAA,IACFC,KAAKC,MAAMC,MAAMH;AAAAA,EACnB;AAAA,EACAI,IAAI;AAAA,IACFH,KAAKC,MAAMC,MAAMC;AAAAA,EACnB;AAAA,EACAC,IAAI;AAAA,IACFJ,KAAKC,MAAMI,QAAQ,CAAC;AAAA,EACtB;AAAA,EACAC,IAAI;AAAA,IACFN,KAAKC,MAAMI,QAAQ,CAAC;AAAA,EACtB;AAAA,EACAE,IAAI;AAAA,IACFP,KAAKC,MAAMI,QAAQ,EAAE;AAAA,EACvB;AACF,CAAC;"}
@@ -1,30 +1,35 @@
1
+ import { Tab } from "@mui/material";
1
2
  import { useDefaultProps } from "../../hooks/useDefaultProps.js";
2
- import { clsx } from "clsx";
3
- import { StyledTab } from "./Tab.styles.js";
4
- import tabClasses from "./tabClasses.js";
3
+ import { useClasses } from "./Tab.styles.js";
4
+ import { staticClasses } from "./Tab.styles.js";
5
5
  import { jsx } from "@emotion/react/jsx-runtime";
6
6
  const HvTab = (props) => {
7
7
  const {
8
- classes,
8
+ classes: classesProp,
9
9
  iconPosition = "top",
10
10
  disabled = false,
11
11
  ...others
12
12
  } = useDefaultProps("HvTab", props);
13
- return /* @__PURE__ */ jsx(StyledTab, {
13
+ const {
14
+ classes,
15
+ cx
16
+ } = useClasses(classesProp);
17
+ return /* @__PURE__ */ jsx(Tab, {
14
18
  classes: {
15
- root: clsx(tabClasses.root, classes == null ? void 0 : classes.root),
16
- selected: clsx(tabClasses.selected, classes == null ? void 0 : classes.selected),
17
- disabled: clsx(tabClasses.disabled, classes == null ? void 0 : classes.disabled)
19
+ root: classes.root,
20
+ selected: classes.selected,
21
+ disabled: classes.disabled
18
22
  },
19
23
  disableRipple: true,
20
24
  disableTouchRipple: true,
21
- focusVisibleClassName: clsx("HvIsFocusVisible", clsx(tabClasses.focusVisible, classes == null ? void 0 : classes.focusVisible)),
25
+ focusVisibleClassName: cx("HvIsFocusVisible", classes.focusVisible),
22
26
  disabled,
23
27
  iconPosition,
24
28
  ...others
25
29
  });
26
30
  };
27
31
  export {
28
- HvTab
32
+ HvTab,
33
+ staticClasses as tabClasses
29
34
  };
30
35
  //# sourceMappingURL=Tab.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tab.js","sources":["../../../../src/components/Tab/Tab.tsx"],"sourcesContent":["import { TabProps as MuiTabProps } from \"@mui/material\";\nimport { useDefaultProps } from \"@core/hooks/useDefaultProps\";\n\nimport { clsx } from \"clsx\";\n\nimport { HvBaseProps } from \"@core/types/generic\";\n\nimport { StyledTab } from \"./Tab.styles\";\nimport tabClasses, { HvTabClasses } from \"./tabClasses\";\n\n// Mui Tab props: https://mui.com/material-ui/api/tab/#props\nexport interface HvTabProps\n extends Omit<MuiTabProps, \"children\">,\n HvBaseProps<HTMLDivElement, \"children\"> {\n /** If `true`, the tab will be disabled. */\n disabled?: boolean;\n /** The icon element. */\n icon?: React.ReactElement | string;\n /** The label element. */\n label?: React.ReactNode;\n /** The position of the icon relative to the label. */\n iconPosition?: \"bottom\" | \"end\" | \"start\" | \"top\";\n /** A Jss Object used to override or extend the component styles. */\n classes?: HvTabClasses;\n}\n\nexport const HvTab = (props: HvTabProps) => {\n const {\n classes,\n iconPosition = \"top\",\n disabled = false,\n ...others\n } = useDefaultProps(\"HvTab\", props);\n\n return (\n <StyledTab\n classes={{\n root: clsx(tabClasses.root, classes?.root),\n selected: clsx(tabClasses.selected, classes?.selected),\n disabled: clsx(tabClasses.disabled, classes?.disabled),\n }}\n disableRipple\n disableTouchRipple\n // Exposes the global class HvIsFocusVisible as a marker not to\n // be styled directly, but only as helper in specific css queries\n focusVisibleClassName={clsx(\n \"HvIsFocusVisible\",\n clsx(tabClasses.focusVisible, classes?.focusVisible)\n )}\n disabled={disabled}\n iconPosition={iconPosition}\n {...others}\n />\n );\n};\n"],"names":["HvTab","props","classes","iconPosition","disabled","others","useDefaultProps","StyledTab","root","clsx","tabClasses","selected","disableRipple","disableTouchRipple","focusVisibleClassName","focusVisible"],"mappings":";;;;;AA0BaA,MAAAA,QAAQA,CAACC,UAAsB;AACpC,QAAA;AAAA,IACJC;AAAAA,IACAC,eAAe;AAAA,IACfC,WAAW;AAAA,IACX,GAAGC;AAAAA,EAAAA,IACDC,gBAAgB,SAASL,KAAK;AAElC,6BACGM,WAAS;AAAA,IACRL,SAAS;AAAA,MACPM,MAAMC,KAAKC,WAAWF,MAAMN,mCAASM,IAAI;AAAA,MACzCG,UAAUF,KAAKC,WAAWC,UAAUT,mCAASS,QAAQ;AAAA,MACrDP,UAAUK,KAAKC,WAAWN,UAAUF,mCAASE,QAAQ;AAAA,IACvD;AAAA,IACAQ,eAAa;AAAA,IACbC,oBAAkB;AAAA,IAGlBC,uBAAuBL,KACrB,oBACAA,KAAKC,WAAWK,cAAcb,mCAASa,YAAY,CACrD;AAAA,IACAX;AAAAA,IACAD;AAAAA,IAA2B,GACvBE;AAAAA,EAAAA,CACL;AAEL;"}
1
+ {"version":3,"file":"Tab.js","sources":["../../../../src/components/Tab/Tab.tsx"],"sourcesContent":["import { Tab, TabProps as MuiTabProps } from \"@mui/material\";\nimport { useDefaultProps } from \"@core/hooks/useDefaultProps\";\nimport { HvBaseProps } from \"@core/types/generic\";\nimport { ExtractNames } from \"@core/utils/classes\";\nimport { staticClasses, useClasses } from \"./Tab.styles\";\n\nexport { staticClasses as tabClasses };\n\nexport type HvTabClasses = ExtractNames<typeof useClasses>;\n\n// Mui Tab props: https://mui.com/material-ui/api/tab/#props\nexport interface HvTabProps\n extends Omit<MuiTabProps, \"children\">,\n HvBaseProps<HTMLDivElement, \"children\"> {\n /** If `true`, the tab will be disabled. */\n disabled?: boolean;\n /** The icon element. */\n icon?: React.ReactElement | string;\n /** The label element. */\n label?: React.ReactNode;\n /** The position of the icon relative to the label. */\n iconPosition?: \"bottom\" | \"end\" | \"start\" | \"top\";\n /** A Jss Object used to override or extend the component styles. */\n classes?: HvTabClasses;\n}\n\nexport const HvTab = (props: HvTabProps) => {\n const {\n classes: classesProp,\n iconPosition = \"top\",\n disabled = false,\n ...others\n } = useDefaultProps(\"HvTab\", props);\n const { classes, cx } = useClasses(classesProp);\n\n return (\n <Tab\n classes={{\n root: classes.root,\n selected: classes.selected,\n disabled: classes.disabled,\n }}\n disableRipple\n disableTouchRipple\n // expose the global class HvIsFocusVisible as a marker\n // not to be styled directly, only as helper in specific css queries\n focusVisibleClassName={cx(\"HvIsFocusVisible\", classes.focusVisible)}\n disabled={disabled}\n iconPosition={iconPosition}\n {...others}\n />\n );\n};\n"],"names":["HvTab","props","classes","classesProp","iconPosition","disabled","others","useDefaultProps","cx","useClasses","Tab","root","selected","disableRipple","disableTouchRipple","focusVisibleClassName","focusVisible"],"mappings":";;;;;AA0BaA,MAAAA,QAAQA,CAACC,UAAsB;AACpC,QAAA;AAAA,IACJC,SAASC;AAAAA,IACTC,eAAe;AAAA,IACfC,WAAW;AAAA,IACX,GAAGC;AAAAA,EAAAA,IACDC,gBAAgB,SAASN,KAAK;AAC5B,QAAA;AAAA,IAAEC;AAAAA,IAASM;AAAAA,EAAAA,IAAOC,WAAWN,WAAW;AAE9C,6BACGO,KAAG;AAAA,IACFR,SAAS;AAAA,MACPS,MAAMT,QAAQS;AAAAA,MACdC,UAAUV,QAAQU;AAAAA,MAClBP,UAAUH,QAAQG;AAAAA,IACpB;AAAA,IACAQ,eAAa;AAAA,IACbC,oBAAkB;AAAA,IAGlBC,uBAAuBP,GAAG,oBAAoBN,QAAQc,YAAY;AAAA,IAClEX;AAAAA,IACAD;AAAAA,IAA2B,GACvBE;AAAAA,EAAAA,CACL;AAEL;"}
@@ -1,66 +1,64 @@
1
- import _styled from "@emotion/styled/base";
1
+ import { createClasses } from "../../utils/classes.js";
2
2
  import { theme } from "@hitachivantara/uikit-styles";
3
- import { Tab } from "@mui/material";
4
3
  import { outlineStyles } from "../../utils/focusUtils.js";
5
- const StyledTab = /* @__PURE__ */ _styled(Tab, process.env.NODE_ENV === "production" ? {
6
- target: "evi6req0"
7
- } : {
8
- target: "evi6req0",
9
- label: "StyledTab"
10
- })({
11
- // Root
12
- marginTop: "3px",
13
- padding: theme.tab.padding,
14
- minWidth: 70,
15
- minHeight: 32,
16
- textTransform: "none",
17
- fontFamily: theme.fontFamily.body,
18
- ...theme.typography.body,
19
- opacity: 1,
20
- "&::after": {
21
- position: "absolute",
22
- left: 0,
23
- top: "calc(100% - 1px)",
24
- height: "1px",
25
- width: "100%",
26
- backgroundColor: theme.colors.atmo4,
27
- content: "''"
28
- },
29
- "&:hover": {
30
- backgroundColor: theme.tab.hoverBackgroundColor,
31
- borderRadius: theme.tab.hoverBackgroundBorderRadius,
4
+ const {
5
+ staticClasses,
6
+ useClasses
7
+ } = createClasses("HvTab", {
8
+ root: {
9
+ marginTop: "3px",
10
+ padding: theme.tab.padding,
11
+ minWidth: 70,
12
+ minHeight: 32,
13
+ textTransform: "none",
14
+ fontFamily: theme.fontFamily.body,
15
+ ...theme.typography.body,
16
+ "&:hover": {
17
+ backgroundColor: theme.tab.hoverBackgroundColor,
18
+ borderRadius: theme.tab.hoverBackgroundBorderRadius,
19
+ "&::after": {
20
+ height: "1px",
21
+ backgroundColor: theme.tab.hoverUnderlineBackgroundColor
22
+ }
23
+ },
24
+ "&$selected": {
25
+ color: theme.typography.label.color,
26
+ fontWeight: theme.typography.label.fontWeight,
27
+ lineHeight: theme.typography.label.lineHeight,
28
+ letterSpacing: theme.typography.label.letterSpacing
29
+ },
30
+ "&$disabled": {
31
+ color: theme.colors.secondary_60,
32
+ cursor: "not-allowed",
33
+ pointerEvents: "all",
34
+ opacity: 1,
35
+ "&:hover": {
36
+ background: "none"
37
+ }
38
+ },
39
+ opacity: 1,
32
40
  "&::after": {
41
+ position: "absolute",
42
+ left: 0,
43
+ top: "calc(100% - 1px)",
33
44
  height: "1px",
34
- backgroundColor: theme.tab.hoverUnderlineBackgroundColor
45
+ width: "100%",
46
+ backgroundColor: theme.colors.atmo4,
47
+ content: "''"
48
+ },
49
+ // Override Mui styling: https://mui.com/material-ui/api/tab/#css
50
+ "& .MuiTab-iconWrapper": {
51
+ margin: 0
35
52
  }
36
53
  },
37
- "&:focus-visible": {
54
+ focusVisible: {
38
55
  ...outlineStyles
39
56
  },
40
- "&:focus": {
41
- outline: "none"
42
- },
43
- // Override Mui styling: https://mui.com/material-ui/api/tab/#css
44
- "&.Mui-selected": {
45
- color: theme.colors.secondary,
46
- letterSpacing: theme.typography.label.letterSpacing,
47
- lineHeight: theme.typography.label.lineHeight,
48
- fontWeight: theme.typography.label.fontWeight
49
- },
50
- "&.Mui-disabled": {
51
- color: theme.colors.secondary_60,
52
- cursor: "not-allowed",
53
- pointerEvents: "all",
54
- opacity: 1,
55
- "&:hover": {
56
- background: "none"
57
- }
58
- },
59
- "& .MuiTab-iconWrapper": {
60
- margin: 0
61
- }
62
- }, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvVGFiL1RhYi5zdHlsZXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVV5QiIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay9odi11aWtpdC1yZWFjdC9odi11aWtpdC1yZWFjdC9wYWNrYWdlcy9jb3JlL3NyYy9jb21wb25lbnRzL1RhYi9UYWIuc3R5bGVzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENTU1Byb3BlcnRpZXMgfSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5cbmltcG9ydCB7IHRoZW1lIH0gZnJvbSBcIkBoaXRhY2hpdmFudGFyYS91aWtpdC1zdHlsZXNcIjtcblxuaW1wb3J0IHsgVGFiIGFzIE11aVRhYiB9IGZyb20gXCJAbXVpL21hdGVyaWFsXCI7XG5cbmltcG9ydCB7IG91dGxpbmVTdHlsZXMgfSBmcm9tIFwiQGNvcmUvdXRpbHMvZm9jdXNVdGlsc1wiO1xuXG5leHBvcnQgY29uc3QgU3R5bGVkVGFiID0gc3R5bGVkKE11aVRhYikoe1xuICAvLyBSb290XG4gIG1hcmdpblRvcDogXCIzcHhcIixcbiAgcGFkZGluZzogdGhlbWUudGFiLnBhZGRpbmcsXG4gIG1pbldpZHRoOiA3MCxcbiAgbWluSGVpZ2h0OiAzMixcbiAgdGV4dFRyYW5zZm9ybTogXCJub25lXCIsXG4gIGZvbnRGYW1pbHk6IHRoZW1lLmZvbnRGYW1pbHkuYm9keSxcbiAgLi4uKHRoZW1lLnR5cG9ncmFwaHkuYm9keSBhcyBDU1NQcm9wZXJ0aWVzKSxcbiAgb3BhY2l0eTogMSxcbiAgXCImOjphZnRlclwiOiB7XG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICBsZWZ0OiAwLFxuICAgIHRvcDogXCJjYWxjKDEwMCUgLSAxcHgpXCIsXG4gICAgaGVpZ2h0OiBcIjFweFwiLFxuICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLmNvbG9ycy5hdG1vNCxcbiAgICBjb250ZW50OiBcIicnXCIsXG4gIH0sXG4gIFwiJjpob3ZlclwiOiB7XG4gICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS50YWIuaG92ZXJCYWNrZ3JvdW5kQ29sb3IsXG4gICAgYm9yZGVyUmFkaXVzOiB0aGVtZS50YWIuaG92ZXJCYWNrZ3JvdW5kQm9yZGVyUmFkaXVzLFxuICAgIFwiJjo6YWZ0ZXJcIjoge1xuICAgICAgaGVpZ2h0OiBcIjFweFwiLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS50YWIuaG92ZXJVbmRlcmxpbmVCYWNrZ3JvdW5kQ29sb3IsXG4gICAgfSxcbiAgfSxcbiAgXCImOmZvY3VzLXZpc2libGVcIjoge1xuICAgIC4uLm91dGxpbmVTdHlsZXMsXG4gIH0sXG4gIFwiJjpmb2N1c1wiOiB7XG4gICAgb3V0bGluZTogXCJub25lXCIsXG4gIH0sXG5cbiAgLy8gT3ZlcnJpZGUgTXVpIHN0eWxpbmc6IGh0dHBzOi8vbXVpLmNvbS9tYXRlcmlhbC11aS9hcGkvdGFiLyNjc3NcbiAgXCImLk11aS1zZWxlY3RlZFwiOiB7XG4gICAgY29sb3I6IHRoZW1lLmNvbG9ycy5zZWNvbmRhcnksXG4gICAgbGV0dGVyU3BhY2luZzogdGhlbWUudHlwb2dyYXBoeS5sYWJlbC5sZXR0ZXJTcGFjaW5nLFxuICAgIGxpbmVIZWlnaHQ6IHRoZW1lLnR5cG9ncmFwaHkubGFiZWwubGluZUhlaWdodCxcbiAgICBmb250V2VpZ2h0OiB0aGVtZS50eXBvZ3JhcGh5LmxhYmVsLmZvbnRXZWlnaHQsXG4gIH0sXG4gIFwiJi5NdWktZGlzYWJsZWRcIjoge1xuICAgIGNvbG9yOiB0aGVtZS5jb2xvcnMuc2Vjb25kYXJ5XzYwLFxuICAgIGN1cnNvcjogXCJub3QtYWxsb3dlZFwiLFxuICAgIHBvaW50ZXJFdmVudHM6IFwiYWxsXCIsXG4gICAgb3BhY2l0eTogMSxcbiAgICBcIiY6aG92ZXJcIjoge1xuICAgICAgYmFja2dyb3VuZDogXCJub25lXCIsXG4gICAgfSxcbiAgfSxcbiAgXCImIC5NdWlUYWItaWNvbldyYXBwZXJcIjoge1xuICAgIG1hcmdpbjogMCxcbiAgfSxcbn0pO1xuIl19 */");
57
+ selected: {},
58
+ disabled: {}
59
+ });
63
60
  export {
64
- StyledTab
61
+ staticClasses,
62
+ useClasses
65
63
  };
66
64
  //# sourceMappingURL=Tab.styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tab.styles.js","sources":["../../../../src/components/Tab/Tab.styles.tsx"],"sourcesContent":["import { CSSProperties } from \"react\";\n\nimport styled from \"@emotion/styled\";\n\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { Tab as MuiTab } from \"@mui/material\";\n\nimport { outlineStyles } from \"@core/utils/focusUtils\";\n\nexport const StyledTab = styled(MuiTab)({\n // Root\n marginTop: \"3px\",\n padding: theme.tab.padding,\n minWidth: 70,\n minHeight: 32,\n textTransform: \"none\",\n fontFamily: theme.fontFamily.body,\n ...(theme.typography.body as CSSProperties),\n opacity: 1,\n \"&::after\": {\n position: \"absolute\",\n left: 0,\n top: \"calc(100% - 1px)\",\n height: \"1px\",\n width: \"100%\",\n backgroundColor: theme.colors.atmo4,\n content: \"''\",\n },\n \"&:hover\": {\n backgroundColor: theme.tab.hoverBackgroundColor,\n borderRadius: theme.tab.hoverBackgroundBorderRadius,\n \"&::after\": {\n height: \"1px\",\n backgroundColor: theme.tab.hoverUnderlineBackgroundColor,\n },\n },\n \"&:focus-visible\": {\n ...outlineStyles,\n },\n \"&:focus\": {\n outline: \"none\",\n },\n\n // Override Mui styling: https://mui.com/material-ui/api/tab/#css\n \"&.Mui-selected\": {\n color: theme.colors.secondary,\n letterSpacing: theme.typography.label.letterSpacing,\n lineHeight: theme.typography.label.lineHeight,\n fontWeight: theme.typography.label.fontWeight,\n },\n \"&.Mui-disabled\": {\n color: theme.colors.secondary_60,\n cursor: \"not-allowed\",\n pointerEvents: \"all\",\n opacity: 1,\n \"&:hover\": {\n background: \"none\",\n },\n },\n \"& .MuiTab-iconWrapper\": {\n margin: 0,\n },\n});\n"],"names":["StyledTab","MuiTab","process","env","NODE_ENV","target","label","marginTop","padding","theme","tab","minWidth","minHeight","textTransform","fontFamily","body","typography","opacity","position","left","top","height","width","backgroundColor","colors","atmo4","content","hoverBackgroundColor","borderRadius","hoverBackgroundBorderRadius","hoverUnderlineBackgroundColor","outlineStyles","outline","color","secondary","letterSpacing","lineHeight","fontWeight","secondary_60","cursor","pointerEvents","background","margin"],"mappings":";;;;AAUO,MAAMA,YAAmBC,wBAAAA,KAAMC,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAC,QAAA;AAAA,IAAA;AAAA,EAAAA,QAAA;AAAA,EAAAC,OAAA;AAAA,CAAA,EAAE;AAAA;AAAA,EAEtCC,WAAW;AAAA,EACXC,SAASC,MAAMC,IAAIF;AAAAA,EACnBG,UAAU;AAAA,EACVC,WAAW;AAAA,EACXC,eAAe;AAAA,EACfC,YAAYL,MAAMK,WAAWC;AAAAA,EAC7B,GAAIN,MAAMO,WAAWD;AAAAA,EACrBE,SAAS;AAAA,EACT,YAAY;AAAA,IACVC,UAAU;AAAA,IACVC,MAAM;AAAA,IACNC,KAAK;AAAA,IACLC,QAAQ;AAAA,IACRC,OAAO;AAAA,IACPC,iBAAiBd,MAAMe,OAAOC;AAAAA,IAC9BC,SAAS;AAAA,EACX;AAAA,EACA,WAAW;AAAA,IACTH,iBAAiBd,MAAMC,IAAIiB;AAAAA,IAC3BC,cAAcnB,MAAMC,IAAImB;AAAAA,IACxB,YAAY;AAAA,MACVR,QAAQ;AAAA,MACRE,iBAAiBd,MAAMC,IAAIoB;AAAAA,IAC7B;AAAA,EACF;AAAA,EACA,mBAAmB;AAAA,IACjB,GAAGC;AAAAA,EACL;AAAA,EACA,WAAW;AAAA,IACTC,SAAS;AAAA,EACX;AAAA;AAAA,EAGA,kBAAkB;AAAA,IAChBC,OAAOxB,MAAMe,OAAOU;AAAAA,IACpBC,eAAe1B,MAAMO,WAAWV,MAAM6B;AAAAA,IACtCC,YAAY3B,MAAMO,WAAWV,MAAM8B;AAAAA,IACnCC,YAAY5B,MAAMO,WAAWV,MAAM+B;AAAAA,EACrC;AAAA,EACA,kBAAkB;AAAA,IAChBJ,OAAOxB,MAAMe,OAAOc;AAAAA,IACpBC,QAAQ;AAAA,IACRC,eAAe;AAAA,IACfvB,SAAS;AAAA,IACT,WAAW;AAAA,MACTwB,YAAY;AAAA,IACd;AAAA,EACF;AAAA,EACA,yBAAyB;AAAA,IACvBC,QAAQ;AAAA,EACV;AACF,GAACxC,QAAAC,IAAAC,aAAC,eAAA,KAAA,6lFAAA;"}
1
+ {"version":3,"file":"Tab.styles.js","sources":["../../../../src/components/Tab/Tab.styles.tsx"],"sourcesContent":["import { CSSProperties } from \"react\";\nimport { createClasses } from \"@core/utils/classes\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport { outlineStyles } from \"@core/utils/focusUtils\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvTab\", {\n root: {\n marginTop: \"3px\",\n padding: theme.tab.padding,\n minWidth: 70,\n minHeight: 32,\n textTransform: \"none\",\n fontFamily: theme.fontFamily.body,\n ...(theme.typography.body as CSSProperties),\n \"&:hover\": {\n backgroundColor: theme.tab.hoverBackgroundColor,\n borderRadius: theme.tab.hoverBackgroundBorderRadius,\n \"&::after\": {\n height: \"1px\",\n backgroundColor: theme.tab.hoverUnderlineBackgroundColor,\n },\n },\n \"&$selected\": {\n color: theme.typography.label.color,\n fontWeight: theme.typography.label.fontWeight,\n lineHeight: theme.typography.label.lineHeight,\n letterSpacing: theme.typography.label.letterSpacing,\n },\n \"&$disabled\": {\n color: theme.colors.secondary_60,\n cursor: \"not-allowed\",\n pointerEvents: \"all\",\n opacity: 1,\n \"&:hover\": {\n background: \"none\",\n },\n },\n opacity: 1,\n \"&::after\": {\n position: \"absolute\",\n left: 0,\n top: \"calc(100% - 1px)\",\n height: \"1px\",\n width: \"100%\",\n backgroundColor: theme.colors.atmo4,\n content: \"''\",\n },\n // Override Mui styling: https://mui.com/material-ui/api/tab/#css\n \"& .MuiTab-iconWrapper\": {\n margin: 0,\n },\n },\n focusVisible: {\n ...outlineStyles,\n },\n selected: {},\n disabled: {},\n});\n"],"names":["staticClasses","useClasses","createClasses","root","marginTop","padding","theme","tab","minWidth","minHeight","textTransform","fontFamily","body","typography","backgroundColor","hoverBackgroundColor","borderRadius","hoverBackgroundBorderRadius","height","hoverUnderlineBackgroundColor","color","label","fontWeight","lineHeight","letterSpacing","colors","secondary_60","cursor","pointerEvents","opacity","background","position","left","top","width","atmo4","content","margin","focusVisible","outlineStyles","selected","disabled"],"mappings":";;;AAKa,MAAA;AAAA,EAAEA;AAAAA,EAAeC;AAAW,IAAIC,cAAc,SAAS;AAAA,EAClEC,MAAM;AAAA,IACJC,WAAW;AAAA,IACXC,SAASC,MAAMC,IAAIF;AAAAA,IACnBG,UAAU;AAAA,IACVC,WAAW;AAAA,IACXC,eAAe;AAAA,IACfC,YAAYL,MAAMK,WAAWC;AAAAA,IAC7B,GAAIN,MAAMO,WAAWD;AAAAA,IACrB,WAAW;AAAA,MACTE,iBAAiBR,MAAMC,IAAIQ;AAAAA,MAC3BC,cAAcV,MAAMC,IAAIU;AAAAA,MACxB,YAAY;AAAA,QACVC,QAAQ;AAAA,QACRJ,iBAAiBR,MAAMC,IAAIY;AAAAA,MAC7B;AAAA,IACF;AAAA,IACA,cAAc;AAAA,MACZC,OAAOd,MAAMO,WAAWQ,MAAMD;AAAAA,MAC9BE,YAAYhB,MAAMO,WAAWQ,MAAMC;AAAAA,MACnCC,YAAYjB,MAAMO,WAAWQ,MAAME;AAAAA,MACnCC,eAAelB,MAAMO,WAAWQ,MAAMG;AAAAA,IACxC;AAAA,IACA,cAAc;AAAA,MACZJ,OAAOd,MAAMmB,OAAOC;AAAAA,MACpBC,QAAQ;AAAA,MACRC,eAAe;AAAA,MACfC,SAAS;AAAA,MACT,WAAW;AAAA,QACTC,YAAY;AAAA,MACd;AAAA,IACF;AAAA,IACAD,SAAS;AAAA,IACT,YAAY;AAAA,MACVE,UAAU;AAAA,MACVC,MAAM;AAAA,MACNC,KAAK;AAAA,MACLf,QAAQ;AAAA,MACRgB,OAAO;AAAA,MACPpB,iBAAiBR,MAAMmB,OAAOU;AAAAA,MAC9BC,SAAS;AAAA,IACX;AAAA;AAAA,IAEA,yBAAyB;AAAA,MACvBC,QAAQ;AAAA,IACV;AAAA,EACF;AAAA,EACAC,cAAc;AAAA,IACZ,GAAGC;AAAAA,EACL;AAAA,EACAC,UAAU,CAAC;AAAA,EACXC,UAAU,CAAC;AACb,CAAC;"}
@@ -8,9 +8,7 @@ const {
8
8
  position: "relative",
9
9
  width: "100%",
10
10
  ...theme.typography.body,
11
- "table&": {
12
- borderSpacing: 0
13
- },
11
+ borderSpacing: 0,
14
12
  "& caption": {
15
13
  ...theme.typography.body,
16
14
  padding: theme.space.xs,
@@ -20,12 +18,13 @@ const {
20
18
  },
21
19
  stickyHeader: {},
22
20
  stickyColumns: {
23
- backgroundColor: theme.colors.atmo2
21
+ backgroundColor: theme.colors.atmo2,
22
+ "&": {
23
+ borderSpacing: 0
24
+ }
24
25
  },
25
26
  listRow: {
26
- "table&": {
27
- borderSpacing: `0 ${theme.space.xs}`
28
- }
27
+ borderSpacing: `0 ${theme.space.xs}`
29
28
  }
30
29
  });
31
30
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"Table.styles.js","sources":["../../../../src/components/Table/Table.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"@core/utils/classes\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvTable\", {\n root: {\n position: \"relative\",\n width: \"100%\",\n\n ...theme.typography.body,\n\n \"table&\": {\n borderSpacing: 0,\n },\n\n \"& caption\": {\n ...theme.typography.body,\n padding: theme.space.xs,\n textAlign: \"left\",\n captionSide: \"bottom\",\n },\n },\n stickyHeader: {},\n stickyColumns: { backgroundColor: theme.colors.atmo2 },\n listRow: {\n \"table&\": {\n borderSpacing: `0 ${theme.space.xs}`,\n },\n },\n});\n"],"names":["staticClasses","useClasses","createClasses","root","position","width","theme","typography","body","borderSpacing","padding","space","xs","textAlign","captionSide","stickyHeader","stickyColumns","backgroundColor","colors","atmo2","listRow"],"mappings":";;AAIa,MAAA;AAAA,EAAEA;AAAAA,EAAeC;AAAW,IAAIC,cAAc,WAAW;AAAA,EACpEC,MAAM;AAAA,IACJC,UAAU;AAAA,IACVC,OAAO;AAAA,IAEP,GAAGC,MAAMC,WAAWC;AAAAA,IAEpB,UAAU;AAAA,MACRC,eAAe;AAAA,IACjB;AAAA,IAEA,aAAa;AAAA,MACX,GAAGH,MAAMC,WAAWC;AAAAA,MACpBE,SAASJ,MAAMK,MAAMC;AAAAA,MACrBC,WAAW;AAAA,MACXC,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACAC,cAAc,CAAC;AAAA,EACfC,eAAe;AAAA,IAAEC,iBAAiBX,MAAMY,OAAOC;AAAAA,EAAM;AAAA,EACrDC,SAAS;AAAA,IACP,UAAU;AAAA,MACRX,eAAgB,KAAIH,MAAMK,MAAMC;AAAAA,IAClC;AAAA,EACF;AACF,CAAC;"}
1
+ {"version":3,"file":"Table.styles.js","sources":["../../../../src/components/Table/Table.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"@core/utils/classes\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvTable\", {\n root: {\n position: \"relative\",\n width: \"100%\",\n\n ...theme.typography.body,\n\n borderSpacing: 0,\n\n \"& caption\": {\n ...theme.typography.body,\n padding: theme.space.xs,\n textAlign: \"left\",\n captionSide: \"bottom\",\n },\n },\n stickyHeader: {},\n stickyColumns: {\n backgroundColor: theme.colors.atmo2,\n \"&\": {\n borderSpacing: 0,\n },\n },\n listRow: {\n borderSpacing: `0 ${theme.space.xs}`,\n },\n});\n"],"names":["staticClasses","useClasses","createClasses","root","position","width","theme","typography","body","borderSpacing","padding","space","xs","textAlign","captionSide","stickyHeader","stickyColumns","backgroundColor","colors","atmo2","listRow"],"mappings":";;AAIa,MAAA;AAAA,EAAEA;AAAAA,EAAeC;AAAW,IAAIC,cAAc,WAAW;AAAA,EACpEC,MAAM;AAAA,IACJC,UAAU;AAAA,IACVC,OAAO;AAAA,IAEP,GAAGC,MAAMC,WAAWC;AAAAA,IAEpBC,eAAe;AAAA,IAEf,aAAa;AAAA,MACX,GAAGH,MAAMC,WAAWC;AAAAA,MACpBE,SAASJ,MAAMK,MAAMC;AAAAA,MACrBC,WAAW;AAAA,MACXC,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACAC,cAAc,CAAC;AAAA,EACfC,eAAe;AAAA,IACbC,iBAAiBX,MAAMY,OAAOC;AAAAA,IAC9B,KAAK;AAAA,MACHV,eAAe;AAAA,IACjB;AAAA,EACF;AAAA,EACAW,SAAS;AAAA,IACPX,eAAgB,KAAIH,MAAMK,MAAMC;AAAAA,EAClC;AACF,CAAC;"}
@@ -10,21 +10,10 @@ const {
10
10
  color: "inherit",
11
11
  backgroundColor: theme.table.rowBackgroundColor,
12
12
  verticalAlign: "middle",
13
- outline: 0,
14
- minHeight: 32,
15
- "tr&": {
16
- height: 32
17
- }
13
+ outline: 0
18
14
  },
19
15
  /** Styles applied to the component root when inside a `HvTableHead`. */
20
- head: {
21
- "&:first-of-type": {
22
- height: 52
23
- },
24
- "tr&:first-of-type": {
25
- height: 52
26
- }
27
- },
16
+ head: {},
28
17
  /** Styles applied to the component root when inside a `HvTableBody`. */
29
18
  body: {},
30
19
  /** Styles applied to the component root when inside a `HvTableFooter`. */
@@ -51,9 +40,11 @@ const {
51
40
  },
52
41
  /** Styles applied to the component root when its table variant is list. */
53
42
  variantList: {
43
+ // only applied on custom `display`
44
+ marginBottom: theme.space.xs,
45
+ borderRadius: theme.table.rowListBorderRadius,
54
46
  ...getBorderStyles("row", theme.table.rowListBorderColor, theme.table.rowListBorderRadius),
55
47
  backgroundColor: theme.colors.atmo1,
56
- height: 52,
57
48
  "&$selected": {
58
49
  ...getBorderStyles("row", theme.colors.secondary, theme.table.rowListBorderRadius),
59
50
  "&:hover": {
@@ -69,14 +60,7 @@ const {
69
60
  },
70
61
  /** Styles applied to the component root when its table variant is list. */
71
62
  variantListHead: {
72
- backgroundColor: theme.table.rowListBackgroundColor,
73
- height: 16,
74
- "&:first-of-type": {
75
- height: 16
76
- },
77
- "tr&:first-of-type": {
78
- height: 16
79
- }
63
+ backgroundColor: theme.table.rowListBackgroundColor
80
64
  }
81
65
  });
82
66
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"TableRow.styles.js","sources":["../../../../../src/components/Table/TableRow/TableRow.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"@core/utils/classes\";\n\nimport { getBorderStyles } from \"../utils/utils\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvTableRow\", {\n /** Styles applied to the component root class. */\n root: {\n color: \"inherit\",\n backgroundColor: theme.table.rowBackgroundColor,\n verticalAlign: \"middle\",\n outline: 0,\n minHeight: 32,\n \"tr&\": {\n height: 32,\n },\n },\n /** Styles applied to the component root when inside a `HvTableHead`. */\n head: {\n \"&:first-of-type\": {\n height: 52,\n },\n\n \"tr&:first-of-type\": {\n height: 52,\n },\n },\n /** Styles applied to the component root when inside a `HvTableBody`. */\n body: {},\n /** Styles applied to the component root when inside a `HvTableFooter`. */\n footer: {},\n /** Styles applied to the component root when selected. */\n selected: {\n backgroundColor: theme.table.selectedRowBackgroundColor,\n },\n /** Styles applied to the component root when expanded. */\n expanded: {\n backgroundColor: theme.colors.atmo1,\n \"& > *[role=cell]\": {\n borderBottom: \"none\",\n },\n },\n /** Styles applied to the component root when striped. */\n striped: {},\n /** Styles applied to the component root on hover. */\n hover: {\n transition: \"background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms\",\n \"&:hover\": {\n backgroundColor: theme.table.rowHoverColor,\n },\n },\n /** Styles applied to the component root when its table variant is list. */\n variantList: {\n ...getBorderStyles(\n \"row\",\n theme.table.rowListBorderColor,\n theme.table.rowListBorderRadius\n ),\n backgroundColor: theme.colors.atmo1,\n height: 52,\n \"&$selected\": {\n ...getBorderStyles(\n \"row\",\n theme.colors.secondary,\n theme.table.rowListBorderRadius\n ),\n\n \"&:hover\": {\n ...getBorderStyles(\n \"row\",\n theme.table.rowHoverBorderColor,\n theme.table.rowListBorderRadius\n ),\n },\n },\n\n \"&:hover\": {\n ...getBorderStyles(\n \"row\",\n theme.table.rowHoverBorderColor,\n theme.table.rowListBorderRadius\n ),\n },\n \"&.HvIsFocused\": {\n borderRadius: theme.table.rowListBorderRadius,\n },\n },\n /** Styles applied to the component root when its table variant is list. */\n variantListHead: {\n backgroundColor: theme.table.rowListBackgroundColor,\n height: 16,\n \"&:first-of-type\": {\n height: 16,\n },\n\n \"tr&:first-of-type\": {\n height: 16,\n },\n },\n});\n"],"names":["staticClasses","useClasses","createClasses","root","color","backgroundColor","theme","table","rowBackgroundColor","verticalAlign","outline","minHeight","height","head","body","footer","selected","selectedRowBackgroundColor","expanded","colors","atmo1","borderBottom","striped","hover","transition","rowHoverColor","variantList","getBorderStyles","rowListBorderColor","rowListBorderRadius","secondary","rowHoverBorderColor","borderRadius","variantListHead","rowListBackgroundColor"],"mappings":";;;AAMa,MAAA;AAAA,EAAEA;AAAAA,EAAeC;AAAW,IAAIC,cAAc,cAAc;AAAA;AAAA,EAEvEC,MAAM;AAAA,IACJC,OAAO;AAAA,IACPC,iBAAiBC,MAAMC,MAAMC;AAAAA,IAC7BC,eAAe;AAAA,IACfC,SAAS;AAAA,IACTC,WAAW;AAAA,IACX,OAAO;AAAA,MACLC,QAAQ;AAAA,IACV;AAAA,EACF;AAAA;AAAA,EAEAC,MAAM;AAAA,IACJ,mBAAmB;AAAA,MACjBD,QAAQ;AAAA,IACV;AAAA,IAEA,qBAAqB;AAAA,MACnBA,QAAQ;AAAA,IACV;AAAA,EACF;AAAA;AAAA,EAEAE,MAAM,CAAC;AAAA;AAAA,EAEPC,QAAQ,CAAC;AAAA;AAAA,EAETC,UAAU;AAAA,IACRX,iBAAiBC,MAAMC,MAAMU;AAAAA,EAC/B;AAAA;AAAA,EAEAC,UAAU;AAAA,IACRb,iBAAiBC,MAAMa,OAAOC;AAAAA,IAC9B,oBAAoB;AAAA,MAClBC,cAAc;AAAA,IAChB;AAAA,EACF;AAAA;AAAA,EAEAC,SAAS,CAAC;AAAA;AAAA,EAEVC,OAAO;AAAA,IACLC,YAAY;AAAA,IACZ,WAAW;AAAA,MACTnB,iBAAiBC,MAAMC,MAAMkB;AAAAA,IAC/B;AAAA,EACF;AAAA;AAAA,EAEAC,aAAa;AAAA,IACX,GAAGC,gBACD,OACArB,MAAMC,MAAMqB,oBACZtB,MAAMC,MAAMsB,mBACd;AAAA,IACAxB,iBAAiBC,MAAMa,OAAOC;AAAAA,IAC9BR,QAAQ;AAAA,IACR,cAAc;AAAA,MACZ,GAAGe,gBACD,OACArB,MAAMa,OAAOW,WACbxB,MAAMC,MAAMsB,mBACd;AAAA,MAEA,WAAW;AAAA,QACT,GAAGF,gBACD,OACArB,MAAMC,MAAMwB,qBACZzB,MAAMC,MAAMsB,mBACd;AAAA,MACF;AAAA,IACF;AAAA,IAEA,WAAW;AAAA,MACT,GAAGF,gBACD,OACArB,MAAMC,MAAMwB,qBACZzB,MAAMC,MAAMsB,mBACd;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACfG,cAAc1B,MAAMC,MAAMsB;AAAAA,IAC5B;AAAA,EACF;AAAA;AAAA,EAEAI,iBAAiB;AAAA,IACf5B,iBAAiBC,MAAMC,MAAM2B;AAAAA,IAC7BtB,QAAQ;AAAA,IACR,mBAAmB;AAAA,MACjBA,QAAQ;AAAA,IACV;AAAA,IAEA,qBAAqB;AAAA,MACnBA,QAAQ;AAAA,IACV;AAAA,EACF;AACF,CAAC;"}
1
+ {"version":3,"file":"TableRow.styles.js","sources":["../../../../../src/components/Table/TableRow/TableRow.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"@core/utils/classes\";\n\nimport { getBorderStyles } from \"../utils/utils\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvTableRow\", {\n /** Styles applied to the component root class. */\n root: {\n color: \"inherit\",\n backgroundColor: theme.table.rowBackgroundColor,\n verticalAlign: \"middle\",\n outline: 0,\n },\n /** Styles applied to the component root when inside a `HvTableHead`. */\n head: {},\n /** Styles applied to the component root when inside a `HvTableBody`. */\n body: {},\n /** Styles applied to the component root when inside a `HvTableFooter`. */\n footer: {},\n /** Styles applied to the component root when selected. */\n selected: {\n backgroundColor: theme.table.selectedRowBackgroundColor,\n },\n /** Styles applied to the component root when expanded. */\n expanded: {\n backgroundColor: theme.colors.atmo1,\n \"& > *[role=cell]\": {\n borderBottom: \"none\",\n },\n },\n /** Styles applied to the component root when striped. */\n striped: {},\n /** Styles applied to the component root on hover. */\n hover: {\n transition: \"background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms\",\n \"&:hover\": {\n backgroundColor: theme.table.rowHoverColor,\n },\n },\n /** Styles applied to the component root when its table variant is list. */\n variantList: {\n // only applied on custom `display`\n marginBottom: theme.space.xs,\n borderRadius: theme.table.rowListBorderRadius,\n\n ...getBorderStyles(\n \"row\",\n theme.table.rowListBorderColor,\n theme.table.rowListBorderRadius\n ),\n backgroundColor: theme.colors.atmo1,\n \"&$selected\": {\n ...getBorderStyles(\n \"row\",\n theme.colors.secondary,\n theme.table.rowListBorderRadius\n ),\n\n \"&:hover\": {\n ...getBorderStyles(\n \"row\",\n theme.table.rowHoverBorderColor,\n theme.table.rowListBorderRadius\n ),\n },\n },\n\n \"&:hover\": {\n ...getBorderStyles(\n \"row\",\n theme.table.rowHoverBorderColor,\n theme.table.rowListBorderRadius\n ),\n },\n \"&.HvIsFocused\": {\n borderRadius: theme.table.rowListBorderRadius,\n },\n },\n /** Styles applied to the component root when its table variant is list. */\n variantListHead: {\n backgroundColor: theme.table.rowListBackgroundColor,\n },\n});\n"],"names":["staticClasses","useClasses","createClasses","root","color","backgroundColor","theme","table","rowBackgroundColor","verticalAlign","outline","head","body","footer","selected","selectedRowBackgroundColor","expanded","colors","atmo1","borderBottom","striped","hover","transition","rowHoverColor","variantList","marginBottom","space","xs","borderRadius","rowListBorderRadius","getBorderStyles","rowListBorderColor","secondary","rowHoverBorderColor","variantListHead","rowListBackgroundColor"],"mappings":";;;AAMa,MAAA;AAAA,EAAEA;AAAAA,EAAeC;AAAW,IAAIC,cAAc,cAAc;AAAA;AAAA,EAEvEC,MAAM;AAAA,IACJC,OAAO;AAAA,IACPC,iBAAiBC,MAAMC,MAAMC;AAAAA,IAC7BC,eAAe;AAAA,IACfC,SAAS;AAAA,EACX;AAAA;AAAA,EAEAC,MAAM,CAAC;AAAA;AAAA,EAEPC,MAAM,CAAC;AAAA;AAAA,EAEPC,QAAQ,CAAC;AAAA;AAAA,EAETC,UAAU;AAAA,IACRT,iBAAiBC,MAAMC,MAAMQ;AAAAA,EAC/B;AAAA;AAAA,EAEAC,UAAU;AAAA,IACRX,iBAAiBC,MAAMW,OAAOC;AAAAA,IAC9B,oBAAoB;AAAA,MAClBC,cAAc;AAAA,IAChB;AAAA,EACF;AAAA;AAAA,EAEAC,SAAS,CAAC;AAAA;AAAA,EAEVC,OAAO;AAAA,IACLC,YAAY;AAAA,IACZ,WAAW;AAAA,MACTjB,iBAAiBC,MAAMC,MAAMgB;AAAAA,IAC/B;AAAA,EACF;AAAA;AAAA,EAEAC,aAAa;AAAA;AAAA,IAEXC,cAAcnB,MAAMoB,MAAMC;AAAAA,IAC1BC,cAActB,MAAMC,MAAMsB;AAAAA,IAE1B,GAAGC,gBACD,OACAxB,MAAMC,MAAMwB,oBACZzB,MAAMC,MAAMsB,mBACd;AAAA,IACAxB,iBAAiBC,MAAMW,OAAOC;AAAAA,IAC9B,cAAc;AAAA,MACZ,GAAGY,gBACD,OACAxB,MAAMW,OAAOe,WACb1B,MAAMC,MAAMsB,mBACd;AAAA,MAEA,WAAW;AAAA,QACT,GAAGC,gBACD,OACAxB,MAAMC,MAAM0B,qBACZ3B,MAAMC,MAAMsB,mBACd;AAAA,MACF;AAAA,IACF;AAAA,IAEA,WAAW;AAAA,MACT,GAAGC,gBACD,OACAxB,MAAMC,MAAM0B,qBACZ3B,MAAMC,MAAMsB,mBACd;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACfD,cAActB,MAAMC,MAAMsB;AAAAA,IAC5B;AAAA,EACF;AAAA;AAAA,EAEAK,iBAAiB;AAAA,IACf7B,iBAAiBC,MAAMC,MAAM4B;AAAAA,EAC/B;AACF,CAAC;"}
@@ -1,4 +1,5 @@
1
1
  import { useGetLatest, makePropGetter } from "react-table";
2
+ import { theme } from "@hitachivantara/uikit-styles";
2
3
  const isSticky = (value) => /left|right/i.test(value);
3
4
  const getStickyValue = ({
4
5
  sticky,
@@ -117,7 +118,10 @@ const getCellProps = (header, isHeaderCell) => {
117
118
  alignItems: isHeaderCell ? "start" : "center",
118
119
  justifyContent: header.align,
119
120
  width: `${header.totalWidth}px`,
120
- minWidth: `${header.totalMinWidth}px`
121
+ minWidth: `${header.totalMinWidth}px`,
122
+ ...isHeaderCell && {
123
+ backgroundColor: theme.colors.atmo2
124
+ }
121
125
  }
122
126
  };
123
127
  if (header.sticky != null) {
@@ -1 +1 @@
1
- {"version":3,"file":"useSticky.js","sources":["../../../../../src/components/Table/hooks/useSticky.ts"],"sourcesContent":["import {\n makePropGetter,\n useGetLatest,\n Hooks,\n PropGetter,\n TableCommonProps,\n} from \"react-table\";\nimport { CSSProperties } from \"react\";\n\n// #region ##### TYPES #####\n\nexport interface UseHvTableStickyTableHeadProps extends TableCommonProps {\n stickyHeader?: boolean;\n}\n\nexport type HvTableHeadPropGetter<D extends object> = PropGetter<\n D,\n UseHvTableStickyTableHeadProps\n>;\n\nexport type UseHvTableStickyTableOptions = {\n stickyHeader?: boolean;\n stickyColumns?: boolean;\n};\n\nexport interface UseHvTableStickyHooks<D extends object> {\n getTableHeadProps: Array<HvTableHeadPropGetter<D>>;\n}\n\nexport interface UseHvTableStickyTableInstance<D extends object> {\n getTableHeadProps: (\n propGetter?: HvTableHeadPropGetter<D>\n ) => UseHvTableStickyTableHeadProps;\n\n totalRight?: number;\n hasStickyColumns?: boolean;\n}\n\n// props target: <table>\nexport interface UseHvTableStickyTableProps {\n stickyHeader?: boolean;\n stickyColumns?: boolean;\n}\n\n// props target: <table><thead><tr><th>\nexport interface UseHvTableStickyColumnProps {\n stickyColumn?: boolean;\n stickyColumnMostLeft?: boolean;\n stickyColumnLeastRight?: boolean;\n}\n\n// props target: <table><tbody><tr><td>\nexport interface UseHvTableStickyCellProps {\n stickyColumn?: boolean;\n stickyColumnMostLeft?: boolean;\n stickyColumnLeastRight?: boolean;\n}\n\nexport type UseHvTableSticky = (<D extends object = Record<string, unknown>>(\n hooks: Hooks<D>\n) => void) & { pluginName: string };\n\n// #endregion ##### TYPES #####\n\nconst isSticky = (value) => /left|right/i.test(value);\n\nconst getStickyValue = ({ sticky, parent }) => {\n if (isSticky(sticky)) {\n return sticky;\n }\n\n if (parent != null) {\n // check if parent is sticky\n sticky = getStickyValue(parent);\n if (isSticky(sticky)) {\n return sticky;\n }\n\n const { columns } = parent;\n // check if any column in the same group is sticky\n if (columns?.length > 0) {\n sticky = columns?.find((col) => col.sticky != null)?.sticky;\n if (isSticky(sticky)) {\n return sticky;\n }\n }\n }\n\n return undefined;\n};\n\nconst updateColumnAndParent = (column, props) => {\n Object.assign(column, props);\n\n if (column.parent != null) {\n updateColumnAndParent(column.parent, props);\n }\n};\n\nconst visibleColumnsHook = (columns, { instance }) => {\n const toTheLeft: any[] = [];\n const toTheRight: any[] = [];\n const others: any[] = [];\n\n columns.forEach((column) => {\n const sticky = getStickyValue(column)?.toLowerCase();\n\n updateColumnAndParent(column, { sticky });\n\n if (sticky === \"left\") {\n toTheLeft.push(column);\n } else if (sticky === \"right\") {\n toTheRight.push(column);\n } else {\n others.push(column);\n }\n });\n\n if (others.length > 0) {\n const [firstNotSticky] = others;\n updateColumnAndParent(firstNotSticky, { isFirstNotSticky: true });\n\n const lastNotSticky = others[others.length - 1];\n updateColumnAndParent(lastNotSticky, { isLastNotSticky: true });\n }\n\n const hasLeftSticky = toTheLeft.length > 0;\n if (hasLeftSticky) {\n const lastLeftSticky = toTheLeft[toTheLeft.length - 1];\n\n updateColumnAndParent(lastLeftSticky, { isLastLeftSticky: true });\n }\n\n const hasRightSticky = toTheRight.length > 0;\n if (hasRightSticky) {\n const [firstRightSticky] = toTheRight;\n\n updateColumnAndParent(firstRightSticky, { isFirstRightSticky: true });\n }\n\n instance.hasStickyColumns = hasLeftSticky || hasRightSticky;\n\n return [...toTheLeft, ...others, ...toTheRight];\n};\n\nconst calculateHeaderWidthsToTheRight = (headers, right = 0) => {\n if (!headers?.length) {\n return;\n }\n\n for (let i = headers.length - 1; i !== -1; i -= 1) {\n const header = headers[i];\n\n header.totalRight = right;\n\n const { headers: subHeaders } = header;\n if (subHeaders?.length > 0) {\n calculateHeaderWidthsToTheRight(subHeaders, right);\n }\n\n if (header.isVisible) {\n right += header.totalWidth;\n }\n }\n};\n\nconst useInstanceHook = (instance) => {\n calculateHeaderWidthsToTheRight(instance.headers);\n\n const getInstance = useGetLatest(instance);\n instance.getTableHeadProps = makePropGetter(\n instance.getHooks().getTableHeadProps,\n {\n instance: getInstance(),\n }\n );\n};\n\nconst getRowProps = () => ({\n style: {\n display: \"flex\",\n flex: \"1 0 auto\",\n },\n});\n\nconst getCellProps = (header, isHeaderCell) => {\n const props: UseHvTableStickyCellProps & { style: CSSProperties } = {\n style: {\n display: \"inline-flex\",\n flex: `${header.totalWidth} ${header.totalMinWidth} auto`,\n alignItems: isHeaderCell ? \"start\" : \"center\",\n justifyContent: header.align,\n\n width: `${header.totalWidth}px`,\n minWidth: `${header.totalMinWidth}px`,\n },\n };\n\n if (header.sticky != null) {\n props.stickyColumn = true;\n\n const margin =\n header.sticky === \"left\" ? header.totalLeft : header.totalRight;\n\n props.style[header.sticky] = `${margin}px`;\n\n if (header.isLastLeftSticky) {\n props.stickyColumnMostLeft = true;\n }\n\n if (header.isFirstRightSticky) {\n props.stickyColumnLeastRight = true;\n }\n } else {\n if (header.isFirstNotSticky) {\n props.style.borderLeft = 0;\n }\n\n if (header.isLastNotSticky) {\n props.style.borderRight = 0;\n }\n }\n\n return props;\n};\n\n/*\n * STICKY POSITION MANAGEMENT\n * <thead>: sticky if stickyHeader: true\n * <tr>: never sticky\n * <th>: sticky only if that particular column is sticky (left or right)\n */\n\n/*\n * We need to hide the last non sticky column right border, to avoid issues with double borders.\n *\n * This could be done with css, using the `:has()` selector:\n * - \".not-sticky:has(+ .first-right-sticky)\": { border-right: 0 }\n *\n * Until the `:has()` selector is supported by modern browsers,\n * that at the moment is just a proposal https://developer.mozilla.org/en-US/docs/Web/CSS/:has,\n * we need to override the last not sticky column \"borderRight\" here.\n */\n\n// props target: <table>\nconst getTablePropsHook = (props, { instance }) => {\n const nextProps: UseHvTableStickyTableProps = {\n stickyHeader: instance.stickyHeader,\n stickyColumns: instance.hasStickyColumns,\n };\n\n return [props, nextProps];\n};\n\n// props target: <table><thead>\nexport const getTableHeadPropsHook = (props, { instance }) => {\n const nextProps = {\n stickyHeader: instance.stickyHeader,\n };\n\n return [props, nextProps];\n};\n\n// props target: <table><thead><tr>\nexport const getHeaderGroupPropsHook = (props, { instance }) => {\n const nextProps = instance.hasStickyColumns ? getRowProps() : {};\n\n return [props, nextProps];\n};\n\n// props target: <table><thead><tr><th>\nconst getHeaderPropsHook = (props, { instance, column }) => {\n const nextProps = instance.hasStickyColumns ? getCellProps(column, true) : {};\n\n return [props, nextProps];\n};\n\n// props target: <table><tbody><tr>\nconst getRowPropsHook = (props, { instance }) => {\n const nextProps = instance.hasStickyColumns ? getRowProps() : {};\n\n return [props, nextProps];\n};\n\n// props target: <table><tbody><tr><td>\nconst getCellPropsHook = (props, { instance, cell }) => {\n const nextProps: UseHvTableStickyCellProps = instance.hasStickyColumns\n ? getCellProps(cell.column, false)\n : {};\n\n return [props, nextProps];\n};\n\nconst useSticky: UseHvTableSticky = (hooks) => {\n hooks.visibleColumns.push(visibleColumnsHook);\n hooks.useInstance.push(useInstanceHook);\n\n // props target: <table>\n hooks.getTableProps.push(getTablePropsHook);\n // props target: <table><thead>\n hooks.getTableHeadProps = [getTableHeadPropsHook];\n // props target: <table><thead><tr>\n hooks.getHeaderGroupProps.push(getHeaderGroupPropsHook);\n // props target: <table><thead><tr><th>\n hooks.getHeaderProps.push(getHeaderPropsHook);\n // props target: <table><tbody><tr>\n hooks.getRowProps.push(getRowPropsHook);\n // props target: <table><tbody><tr><td>\n hooks.getCellProps.push(getCellPropsHook);\n};\n\nuseSticky.pluginName = \"useHvTableSticky\";\n\nexport default useSticky;\n"],"names":["isSticky","value","test","getStickyValue","sticky","parent","columns","length","find","col","undefined","updateColumnAndParent","column","props","assign","visibleColumnsHook","instance","toTheLeft","toTheRight","others","forEach","toLowerCase","push","firstNotSticky","isFirstNotSticky","lastNotSticky","isLastNotSticky","hasLeftSticky","lastLeftSticky","isLastLeftSticky","hasRightSticky","firstRightSticky","isFirstRightSticky","hasStickyColumns","calculateHeaderWidthsToTheRight","headers","right","i","header","totalRight","subHeaders","isVisible","totalWidth","useInstanceHook","getInstance","useGetLatest","getTableHeadProps","makePropGetter","getHooks","getRowProps","style","display","flex","getCellProps","isHeaderCell","totalMinWidth","alignItems","justifyContent","align","width","minWidth","stickyColumn","margin","totalLeft","stickyColumnMostLeft","stickyColumnLeastRight","borderLeft","borderRight","getTablePropsHook","nextProps","stickyHeader","stickyColumns","getTableHeadPropsHook","getHeaderGroupPropsHook","getHeaderPropsHook","getRowPropsHook","getCellPropsHook","cell","useSticky","hooks","visibleColumns","useInstance","getTableProps","getHeaderGroupProps","getHeaderProps","pluginName"],"mappings":"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"}
1
+ {"version":3,"file":"useSticky.js","sources":["../../../../../src/components/Table/hooks/useSticky.ts"],"sourcesContent":["import {\n makePropGetter,\n useGetLatest,\n Hooks,\n PropGetter,\n TableCommonProps,\n} from \"react-table\";\nimport { CSSProperties } from \"react\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\n// #region ##### TYPES #####\n\nexport interface UseHvTableStickyTableHeadProps extends TableCommonProps {\n stickyHeader?: boolean;\n}\n\nexport type HvTableHeadPropGetter<D extends object> = PropGetter<\n D,\n UseHvTableStickyTableHeadProps\n>;\n\nexport type UseHvTableStickyTableOptions = {\n stickyHeader?: boolean;\n stickyColumns?: boolean;\n};\n\nexport interface UseHvTableStickyHooks<D extends object> {\n getTableHeadProps: Array<HvTableHeadPropGetter<D>>;\n}\n\nexport interface UseHvTableStickyTableInstance<D extends object> {\n getTableHeadProps: (\n propGetter?: HvTableHeadPropGetter<D>\n ) => UseHvTableStickyTableHeadProps;\n\n totalRight?: number;\n hasStickyColumns?: boolean;\n}\n\n// props target: <table>\nexport interface UseHvTableStickyTableProps {\n stickyHeader?: boolean;\n stickyColumns?: boolean;\n}\n\n// props target: <table><thead><tr><th>\nexport interface UseHvTableStickyColumnProps {\n stickyColumn?: boolean;\n stickyColumnMostLeft?: boolean;\n stickyColumnLeastRight?: boolean;\n}\n\n// props target: <table><tbody><tr><td>\nexport interface UseHvTableStickyCellProps {\n stickyColumn?: boolean;\n stickyColumnMostLeft?: boolean;\n stickyColumnLeastRight?: boolean;\n}\n\nexport type UseHvTableSticky = (<D extends object = Record<string, unknown>>(\n hooks: Hooks<D>\n) => void) & { pluginName: string };\n\n// #endregion ##### TYPES #####\n\nconst isSticky = (value) => /left|right/i.test(value);\n\nconst getStickyValue = ({ sticky, parent }) => {\n if (isSticky(sticky)) {\n return sticky;\n }\n\n if (parent != null) {\n // check if parent is sticky\n sticky = getStickyValue(parent);\n if (isSticky(sticky)) {\n return sticky;\n }\n\n const { columns } = parent;\n // check if any column in the same group is sticky\n if (columns?.length > 0) {\n sticky = columns?.find((col) => col.sticky != null)?.sticky;\n if (isSticky(sticky)) {\n return sticky;\n }\n }\n }\n\n return undefined;\n};\n\nconst updateColumnAndParent = (column, props) => {\n Object.assign(column, props);\n\n if (column.parent != null) {\n updateColumnAndParent(column.parent, props);\n }\n};\n\nconst visibleColumnsHook = (columns, { instance }) => {\n const toTheLeft: any[] = [];\n const toTheRight: any[] = [];\n const others: any[] = [];\n\n columns.forEach((column) => {\n const sticky = getStickyValue(column)?.toLowerCase();\n\n updateColumnAndParent(column, { sticky });\n\n if (sticky === \"left\") {\n toTheLeft.push(column);\n } else if (sticky === \"right\") {\n toTheRight.push(column);\n } else {\n others.push(column);\n }\n });\n\n if (others.length > 0) {\n const [firstNotSticky] = others;\n updateColumnAndParent(firstNotSticky, { isFirstNotSticky: true });\n\n const lastNotSticky = others[others.length - 1];\n updateColumnAndParent(lastNotSticky, { isLastNotSticky: true });\n }\n\n const hasLeftSticky = toTheLeft.length > 0;\n if (hasLeftSticky) {\n const lastLeftSticky = toTheLeft[toTheLeft.length - 1];\n\n updateColumnAndParent(lastLeftSticky, { isLastLeftSticky: true });\n }\n\n const hasRightSticky = toTheRight.length > 0;\n if (hasRightSticky) {\n const [firstRightSticky] = toTheRight;\n\n updateColumnAndParent(firstRightSticky, { isFirstRightSticky: true });\n }\n\n instance.hasStickyColumns = hasLeftSticky || hasRightSticky;\n\n return [...toTheLeft, ...others, ...toTheRight];\n};\n\nconst calculateHeaderWidthsToTheRight = (headers, right = 0) => {\n if (!headers?.length) {\n return;\n }\n\n for (let i = headers.length - 1; i !== -1; i -= 1) {\n const header = headers[i];\n\n header.totalRight = right;\n\n const { headers: subHeaders } = header;\n if (subHeaders?.length > 0) {\n calculateHeaderWidthsToTheRight(subHeaders, right);\n }\n\n if (header.isVisible) {\n right += header.totalWidth;\n }\n }\n};\n\nconst useInstanceHook = (instance) => {\n calculateHeaderWidthsToTheRight(instance.headers);\n\n const getInstance = useGetLatest(instance);\n instance.getTableHeadProps = makePropGetter(\n instance.getHooks().getTableHeadProps,\n {\n instance: getInstance(),\n }\n );\n};\n\nconst getRowProps = () => ({\n style: {\n display: \"flex\",\n flex: \"1 0 auto\",\n },\n});\n\nconst getCellProps = (header, isHeaderCell: boolean) => {\n const props: UseHvTableStickyCellProps & { style: CSSProperties } = {\n style: {\n display: \"inline-flex\",\n flex: `${header.totalWidth} ${header.totalMinWidth} auto`,\n alignItems: isHeaderCell ? \"start\" : \"center\",\n justifyContent: header.align,\n\n width: `${header.totalWidth}px`,\n minWidth: `${header.totalMinWidth}px`,\n ...(isHeaderCell && { backgroundColor: theme.colors.atmo2 }),\n },\n };\n\n if (header.sticky != null) {\n props.stickyColumn = true;\n\n const margin =\n header.sticky === \"left\" ? header.totalLeft : header.totalRight;\n\n props.style[header.sticky] = `${margin}px`;\n\n if (header.isLastLeftSticky) {\n props.stickyColumnMostLeft = true;\n }\n\n if (header.isFirstRightSticky) {\n props.stickyColumnLeastRight = true;\n }\n } else {\n if (header.isFirstNotSticky) {\n props.style.borderLeft = 0;\n }\n\n if (header.isLastNotSticky) {\n props.style.borderRight = 0;\n }\n }\n\n return props;\n};\n\n/*\n * STICKY POSITION MANAGEMENT\n * <thead>: sticky if stickyHeader: true\n * <tr>: never sticky\n * <th>: sticky only if that particular column is sticky (left or right)\n */\n\n/*\n * We need to hide the last non sticky column right border, to avoid issues with double borders.\n *\n * This could be done with css, using the `:has()` selector:\n * - \".not-sticky:has(+ .first-right-sticky)\": { border-right: 0 }\n *\n * Until the `:has()` selector is supported by modern browsers,\n * that at the moment is just a proposal https://developer.mozilla.org/en-US/docs/Web/CSS/:has,\n * we need to override the last not sticky column \"borderRight\" here.\n */\n\n// props target: <table>\nconst getTablePropsHook = (props, { instance }) => {\n const nextProps: UseHvTableStickyTableProps = {\n stickyHeader: instance.stickyHeader,\n stickyColumns: instance.hasStickyColumns,\n };\n\n return [props, nextProps];\n};\n\n// props target: <table><thead>\nexport const getTableHeadPropsHook = (props, { instance }) => {\n const nextProps = {\n stickyHeader: instance.stickyHeader,\n };\n\n return [props, nextProps];\n};\n\n// props target: <table><thead><tr>\nexport const getHeaderGroupPropsHook = (props, { instance }) => {\n const nextProps = instance.hasStickyColumns ? getRowProps() : {};\n\n return [props, nextProps];\n};\n\n// props target: <table><thead><tr><th>\nconst getHeaderPropsHook = (props, { instance, column }) => {\n const nextProps = instance.hasStickyColumns ? getCellProps(column, true) : {};\n\n return [props, nextProps];\n};\n\n// props target: <table><tbody><tr>\nconst getRowPropsHook = (props, { instance }) => {\n const nextProps = instance.hasStickyColumns ? getRowProps() : {};\n\n return [props, nextProps];\n};\n\n// props target: <table><tbody><tr><td>\nconst getCellPropsHook = (props, { instance, cell }) => {\n const nextProps: UseHvTableStickyCellProps = instance.hasStickyColumns\n ? getCellProps(cell.column, false)\n : {};\n\n return [props, nextProps];\n};\n\nconst useSticky: UseHvTableSticky = (hooks) => {\n hooks.visibleColumns.push(visibleColumnsHook);\n hooks.useInstance.push(useInstanceHook);\n\n // props target: <table>\n hooks.getTableProps.push(getTablePropsHook);\n // props target: <table><thead>\n hooks.getTableHeadProps = [getTableHeadPropsHook];\n // props target: <table><thead><tr>\n hooks.getHeaderGroupProps.push(getHeaderGroupPropsHook);\n // props target: <table><thead><tr><th>\n hooks.getHeaderProps.push(getHeaderPropsHook);\n // props target: <table><tbody><tr>\n hooks.getRowProps.push(getRowPropsHook);\n // props target: <table><tbody><tr><td>\n hooks.getCellProps.push(getCellPropsHook);\n};\n\nuseSticky.pluginName = \"useHvTableSticky\";\n\nexport default useSticky;\n"],"names":["isSticky","value","test","getStickyValue","sticky","parent","columns","length","find","col","undefined","updateColumnAndParent","column","props","assign","visibleColumnsHook","instance","toTheLeft","toTheRight","others","forEach","toLowerCase","push","firstNotSticky","isFirstNotSticky","lastNotSticky","isLastNotSticky","hasLeftSticky","lastLeftSticky","isLastLeftSticky","hasRightSticky","firstRightSticky","isFirstRightSticky","hasStickyColumns","calculateHeaderWidthsToTheRight","headers","right","i","header","totalRight","subHeaders","isVisible","totalWidth","useInstanceHook","getInstance","useGetLatest","getTableHeadProps","makePropGetter","getHooks","getRowProps","style","display","flex","getCellProps","isHeaderCell","totalMinWidth","alignItems","justifyContent","align","width","minWidth","backgroundColor","theme","colors","atmo2","stickyColumn","margin","totalLeft","stickyColumnMostLeft","stickyColumnLeastRight","borderLeft","borderRight","getTablePropsHook","nextProps","stickyHeader","stickyColumns","getTableHeadPropsHook","getHeaderGroupPropsHook","getHeaderPropsHook","getRowPropsHook","getCellPropsHook","cell","useSticky","hooks","visibleColumns","useInstance","getTableProps","getHeaderGroupProps","getHeaderProps","pluginName"],"mappings":"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"}