@hitachivantara/uikit-react-core 5.46.2 → 5.47.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 (30) hide show
  1. package/dist/cjs/ListContainer/ListItem/ListItem.cjs +27 -32
  2. package/dist/cjs/ListContainer/ListItem/ListItem.cjs.map +1 -1
  3. package/dist/cjs/Panel/Panel.cjs +13 -11
  4. package/dist/cjs/Panel/Panel.cjs.map +1 -1
  5. package/dist/cjs/Section/Section.cjs +32 -20
  6. package/dist/cjs/Section/Section.cjs.map +1 -1
  7. package/dist/cjs/Section/Section.styles.cjs +13 -3
  8. package/dist/cjs/Section/Section.styles.cjs.map +1 -1
  9. package/dist/cjs/TableSection/TableSection.cjs +24 -0
  10. package/dist/cjs/TableSection/TableSection.cjs.map +1 -0
  11. package/dist/cjs/TableSection/TableSection.styles.cjs +81 -0
  12. package/dist/cjs/TableSection/TableSection.styles.cjs.map +1 -0
  13. package/dist/cjs/index.cjs +4 -0
  14. package/dist/cjs/index.cjs.map +1 -1
  15. package/dist/esm/ListContainer/ListItem/ListItem.js +27 -32
  16. package/dist/esm/ListContainer/ListItem/ListItem.js.map +1 -1
  17. package/dist/esm/Panel/Panel.js +13 -11
  18. package/dist/esm/Panel/Panel.js.map +1 -1
  19. package/dist/esm/Section/Section.js +32 -20
  20. package/dist/esm/Section/Section.js.map +1 -1
  21. package/dist/esm/Section/Section.styles.js +13 -3
  22. package/dist/esm/Section/Section.styles.js.map +1 -1
  23. package/dist/esm/TableSection/TableSection.js +25 -0
  24. package/dist/esm/TableSection/TableSection.js.map +1 -0
  25. package/dist/esm/TableSection/TableSection.styles.js +81 -0
  26. package/dist/esm/TableSection/TableSection.styles.js.map +1 -0
  27. package/dist/esm/index.js +4 -0
  28. package/dist/esm/index.js.map +1 -1
  29. package/dist/types/index.d.ts +46 -2
  30. package/package.json +2 -2
@@ -9,27 +9,24 @@ const Focus = require("../../Focus/Focus.cjs");
9
9
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
10
10
  const React__default = /* @__PURE__ */ _interopDefault(React);
11
11
  const applyClassNameAndStateToElement = (element, selected, disabled, onClick, className) => {
12
- if (element != null) {
13
- return React__default.default.cloneElement(element, {
14
- className,
15
- checked: !!selected,
16
- disabled,
17
- onChange: (evt) => onClick?.(evt)
18
- });
19
- }
20
- return null;
12
+ if (element == null)
13
+ return null;
14
+ return React__default.default.cloneElement(element, {
15
+ className,
16
+ checked: !!selected,
17
+ disabled,
18
+ onChange: onClick
19
+ });
21
20
  };
22
21
  const applyClassNameToElement = (element, className) => {
23
- if (element != null) {
24
- return React__default.default.cloneElement(element, {
25
- className
26
- });
27
- }
28
- return null;
22
+ if (element == null)
23
+ return null;
24
+ return React__default.default.cloneElement(element, {
25
+ className
26
+ });
29
27
  };
30
28
  const HvListItem = React.forwardRef((props, ref) => {
31
29
  const {
32
- id,
33
30
  classes: classesProp,
34
31
  className,
35
32
  role,
@@ -53,14 +50,14 @@ const HvListItem = React.forwardRef((props, ref) => {
53
50
  disableGutters: disableGuttersContext,
54
51
  interactive: interactiveContext
55
52
  } = React.useContext(ListContext.default);
56
- const condensed = condensedProp != null ? condensedProp : condensedContext;
57
- const disableGutters = disableGuttersProp != null ? disableGuttersProp : disableGuttersContext;
58
- const interactive = interactiveProp != null ? interactiveProp : interactiveContext;
59
- const handleOnClick = React.useCallback(
53
+ const condensed = condensedProp ?? condensedContext;
54
+ const disableGutters = disableGuttersProp ?? disableGuttersContext;
55
+ const interactive = interactiveProp ?? interactiveContext;
56
+ const handleClick = React.useCallback(
60
57
  (evt) => {
61
- if (!disabled) {
62
- onClick?.(evt);
63
- }
58
+ if (disabled)
59
+ return;
60
+ onClick?.(evt);
64
61
  },
65
62
  [disabled, onClick]
66
63
  );
@@ -69,7 +66,7 @@ const HvListItem = React.forwardRef((props, ref) => {
69
66
  startAdornment,
70
67
  selected,
71
68
  disabled,
72
- handleOnClick,
69
+ handleClick,
73
70
  cx(
74
71
  classes.startAdornment,
75
72
  { [classes.disabled]: disabled },
@@ -81,7 +78,7 @@ const HvListItem = React.forwardRef((props, ref) => {
81
78
  classes?.startAdornment,
82
79
  classes?.disabled,
83
80
  disabled,
84
- handleOnClick,
81
+ handleClick,
85
82
  selected,
86
83
  startAdornment
87
84
  ]
@@ -103,11 +100,10 @@ const HvListItem = React.forwardRef((props, ref) => {
103
100
  } : {};
104
101
  const listItem = (
105
102
  // For later: this should only have an onClick event if interactive and has the appropriate role.
106
- // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions
103
+ // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events
107
104
  /* @__PURE__ */ jsxRuntime.jsxs(
108
105
  "li",
109
106
  {
110
- id,
111
107
  ref,
112
108
  role,
113
109
  value,
@@ -117,16 +113,15 @@ const HvListItem = React.forwardRef((props, ref) => {
117
113
  [classes.gutters]: !disableGutters,
118
114
  [classes.condensed]: condensed,
119
115
  [classes.interactive]: interactive,
120
- [classes.selected]: !!selected,
121
- [classes.disabled]: !!disabled,
116
+ [classes.selected]: selected || props["aria-selected"],
117
+ [classes.disabled]: disabled || props["aria-disabled"],
122
118
  [classes.withStartAdornment]: startAdornment != null,
123
119
  [classes.withEndAdornment]: endAdornment != null
124
120
  },
125
121
  className
126
122
  ),
127
- onClick: handleOnClick,
128
- onKeyDown: () => {
129
- },
123
+ tabIndex: interactive ? void 0 : tabIndex,
124
+ onClick: handleClick,
130
125
  ...roleOptionAriaProps,
131
126
  ...others,
132
127
  children: [
@@ -1 +1 @@
1
- {"version":3,"file":"ListItem.cjs","sources":["../../../../src/ListContainer/ListItem/ListItem.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useContext, useMemo } from \"react\";\n\nimport { HvBaseProps } from \"../../types/generic\";\nimport { useDefaultProps } from \"../../hooks/useDefaultProps\";\nimport { ExtractNames } from \"../../utils/classes\";\nimport { HvFocus } from \"../../Focus\";\n\nimport HvListContext from \"../ListContext\";\nimport { staticClasses, useClasses } from \"./ListItem.styles\";\n\nexport { staticClasses as listItemClasses };\n\nexport type HvListItemClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvListItemProps extends HvBaseProps<HTMLLIElement> {\n /** Indicates if the list item is selected. */\n selected?: boolean;\n /** If true, the list item will be disabled. */\n disabled?: boolean;\n /**\n * If the list item is focusable and reacts to mouse over events.\n * Defaults to true if the container list is interactive, false otherwise.\n */\n interactive?: boolean;\n /**\n * If `true` compacts the vertical spacing intended to separate the list items.\n * Defaults to the value set in container list.\n */\n condensed?: boolean;\n /**\n * If `true`, the left and right padding is removed.\n * Defaults to the value set in container list.\n */\n disableGutters?: boolean;\n /**\n * Element placed before the children.\n * Also removes the left padding (gutter).\n *\n * Some modifications are applied, assuming that it is either an icon (changing the color when the item is disabled)\n * or a selector (preventing the double focus ring, propagating the checked and disabled states and wiring the onChange event).\n * If unwanted, the element should be placed directly as a child.\n */\n startAdornment?: React.ReactNode;\n /**\n * Element placed after the children and aligned next to the margin.\n * Also removes the right padding (gutter).\n *\n * Some modifications are applied, assuming that it is an icon (changing the color when the item is disabled).\n * If unwanted, the element should be placed directly as a child.\n */\n endAdornment?: React.ReactNode;\n /** The value to be set on the 'li' element */\n value?: any;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvListItemClasses;\n}\n\nconst applyClassNameAndStateToElement = (\n element,\n selected,\n disabled,\n onClick,\n className\n) => {\n if (element != null) {\n return React.cloneElement(element, {\n className,\n checked: !!selected,\n disabled,\n onChange: (evt) => onClick?.(evt),\n });\n }\n\n return null;\n};\n\nconst applyClassNameToElement = (element, className) => {\n if (element != null) {\n return React.cloneElement(element, {\n className,\n });\n }\n\n return null;\n};\n\n/**\n * ListItem description/documentation paragraph\n */\nexport const HvListItem = forwardRef<any, HvListItemProps>((props, ref) => {\n const {\n id,\n classes: classesProp,\n className,\n role,\n value,\n selected,\n disabled,\n interactive: interactiveProp,\n condensed: condensedProp,\n disableGutters: disableGuttersProp,\n startAdornment,\n endAdornment,\n onClick,\n children,\n tabIndex,\n ...others\n } = useDefaultProps(\"HvListItem\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n const {\n topContainerRef,\n condensed: condensedContext,\n disableGutters: disableGuttersContext,\n interactive: interactiveContext,\n } = useContext(HvListContext);\n\n const condensed = condensedProp != null ? condensedProp : condensedContext;\n const disableGutters =\n disableGuttersProp != null ? disableGuttersProp : disableGuttersContext;\n const interactive =\n interactiveProp != null ? interactiveProp : interactiveContext;\n\n const handleOnClick = useCallback(\n (evt) => {\n if (!disabled) {\n onClick?.(evt);\n }\n },\n [disabled, onClick]\n );\n\n const clonedStartAdornment = useMemo(\n () =>\n applyClassNameAndStateToElement(\n startAdornment,\n selected,\n disabled,\n handleOnClick,\n cx(\n classes.startAdornment,\n { [classes.disabled]: disabled },\n React.isValidElement(startAdornment)\n ? startAdornment.props.className\n : undefined\n )\n ),\n [\n cx,\n classes?.startAdornment,\n classes?.disabled,\n disabled,\n handleOnClick,\n selected,\n startAdornment,\n ]\n );\n const clonedEndAdornment = useMemo(\n () =>\n applyClassNameToElement(\n endAdornment,\n cx(\n classes.endAdornment,\n { [classes.disabled]: disabled },\n React.isValidElement(endAdornment)\n ? endAdornment.props.className\n : undefined\n )\n ),\n [cx, classes?.endAdornment, classes?.disabled, disabled, endAdornment]\n );\n\n const roleOptionAriaProps =\n role === \"option\" || role === \"menuitem\"\n ? {\n \"aria-disabled\": disabled || undefined,\n \"aria-selected\": selected,\n }\n : {};\n\n const listItem = (\n // For later: this should only have an onClick event if interactive and has the appropriate role.\n // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions\n <li\n id={id}\n ref={ref}\n role={role}\n value={value}\n className={cx(\n classes.root,\n {\n [classes.gutters]: !disableGutters,\n [classes.condensed]: condensed,\n [classes.interactive]: interactive,\n [classes.selected]: !!selected,\n [classes.disabled]: !!disabled,\n [classes.withStartAdornment]: startAdornment != null,\n [classes.withEndAdornment]: endAdornment != null,\n },\n className\n )}\n onClick={handleOnClick}\n onKeyDown={() => {}} // Needed because of jsx-a11yclick-events-have-key-events\n {...roleOptionAriaProps}\n {...others}\n >\n {clonedStartAdornment}\n {children}\n {clonedEndAdornment}\n </li>\n );\n\n return interactive ? (\n <HvFocus\n rootRef={topContainerRef}\n selected={selected}\n disabledClass={disabled || undefined}\n strategy={role === \"option\" ? \"listbox\" : \"menu\"}\n classes={{ focus: classes.focus }}\n configuration={{\n tabIndex,\n }}\n >\n {listItem}\n </HvFocus>\n ) : (\n listItem\n );\n});\n"],"names":["React","forwardRef","useDefaultProps","useClasses","useContext","HvListContext","useCallback","useMemo","jsxs","jsx","HvFocus"],"mappings":"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"}
1
+ {"version":3,"file":"ListItem.cjs","sources":["../../../../src/ListContainer/ListItem/ListItem.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useContext, useMemo } from \"react\";\n\nimport { HvBaseProps } from \"../../types/generic\";\nimport { useDefaultProps } from \"../../hooks/useDefaultProps\";\nimport { ExtractNames } from \"../../utils/classes\";\nimport { HvFocus } from \"../../Focus\";\n\nimport HvListContext from \"../ListContext\";\nimport { staticClasses, useClasses } from \"./ListItem.styles\";\n\nexport { staticClasses as listItemClasses };\n\nexport type HvListItemClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvListItemProps extends HvBaseProps<HTMLLIElement> {\n /** Indicates if the list item is selected. */\n selected?: boolean;\n /** If true, the list item will be disabled. */\n disabled?: boolean;\n /**\n * If the list item is focusable and reacts to mouse over events.\n * Defaults to true if the container list is interactive, false otherwise.\n */\n interactive?: boolean;\n /**\n * If `true` compacts the vertical spacing intended to separate the list items.\n * Defaults to the value set in container list.\n */\n condensed?: boolean;\n /**\n * If `true`, the left and right padding is removed.\n * Defaults to the value set in container list.\n */\n disableGutters?: boolean;\n /**\n * Element placed before the children.\n * Also removes the left padding (gutter).\n *\n * Some modifications are applied, assuming that it is either an icon (changing the color when the item is disabled)\n * or a selector (preventing the double focus ring, propagating the checked and disabled states and wiring the onChange event).\n * If unwanted, the element should be placed directly as a child.\n */\n startAdornment?: React.ReactNode;\n /**\n * Element placed after the children and aligned next to the margin.\n * Also removes the right padding (gutter).\n *\n * Some modifications are applied, assuming that it is an icon (changing the color when the item is disabled).\n * If unwanted, the element should be placed directly as a child.\n */\n endAdornment?: React.ReactNode;\n /** The value to be set on the 'li' element */\n value?: any;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvListItemClasses;\n}\n\nconst applyClassNameAndStateToElement = (\n element: any,\n selected: boolean | undefined,\n disabled: boolean | undefined,\n onClick: React.MouseEventHandler<HTMLLIElement>,\n className?: string\n) => {\n if (element == null) return null;\n\n return React.cloneElement(element, {\n className,\n checked: !!selected,\n disabled,\n onChange: onClick,\n });\n};\n\nconst applyClassNameToElement = (element, className?: string) => {\n if (element == null) return null;\n\n return React.cloneElement(element, {\n className,\n });\n};\n\n/**\n * ListItem description/documentation paragraph\n */\nexport const HvListItem = forwardRef<any, HvListItemProps>((props, ref) => {\n const {\n classes: classesProp,\n className,\n role,\n value,\n selected,\n disabled,\n interactive: interactiveProp,\n condensed: condensedProp,\n disableGutters: disableGuttersProp,\n startAdornment,\n endAdornment,\n onClick,\n children,\n tabIndex,\n ...others\n } = useDefaultProps(\"HvListItem\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n const {\n topContainerRef,\n condensed: condensedContext,\n disableGutters: disableGuttersContext,\n interactive: interactiveContext,\n } = useContext(HvListContext);\n\n const condensed = condensedProp ?? condensedContext;\n const disableGutters = disableGuttersProp ?? disableGuttersContext;\n const interactive = interactiveProp ?? interactiveContext;\n\n const handleClick = useCallback<React.MouseEventHandler<HTMLLIElement>>(\n (evt) => {\n if (disabled) return;\n onClick?.(evt);\n },\n [disabled, onClick]\n );\n\n const clonedStartAdornment = useMemo(\n () =>\n applyClassNameAndStateToElement(\n startAdornment,\n selected,\n disabled,\n handleClick,\n cx(\n classes.startAdornment,\n { [classes.disabled]: disabled },\n React.isValidElement(startAdornment)\n ? startAdornment.props.className\n : undefined\n )\n ),\n [\n cx,\n classes?.startAdornment,\n classes?.disabled,\n disabled,\n handleClick,\n selected,\n startAdornment,\n ]\n );\n const clonedEndAdornment = useMemo(\n () =>\n applyClassNameToElement(\n endAdornment,\n cx(\n classes.endAdornment,\n { [classes.disabled]: disabled },\n React.isValidElement(endAdornment)\n ? endAdornment.props.className\n : undefined\n )\n ),\n [cx, classes?.endAdornment, classes?.disabled, disabled, endAdornment]\n );\n\n const roleOptionAriaProps =\n role === \"option\" || role === \"menuitem\"\n ? {\n \"aria-disabled\": disabled || undefined,\n \"aria-selected\": selected,\n }\n : {};\n\n const listItem = (\n // For later: this should only have an onClick event if interactive and has the appropriate role.\n // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events\n <li\n ref={ref}\n role={role}\n value={value}\n className={cx(\n classes.root,\n {\n [classes.gutters]: !disableGutters,\n [classes.condensed]: condensed,\n [classes.interactive]: interactive,\n [classes.selected]: selected || props[\"aria-selected\"],\n [classes.disabled]: disabled || props[\"aria-disabled\"],\n [classes.withStartAdornment]: startAdornment != null,\n [classes.withEndAdornment]: endAdornment != null,\n },\n className\n )}\n tabIndex={interactive ? undefined : tabIndex}\n onClick={handleClick}\n {...roleOptionAriaProps}\n {...others}\n >\n {clonedStartAdornment}\n {children}\n {clonedEndAdornment}\n </li>\n );\n\n return interactive ? (\n <HvFocus\n rootRef={topContainerRef}\n selected={selected}\n disabledClass={disabled || undefined}\n strategy={role === \"option\" ? \"listbox\" : \"menu\"}\n classes={{ focus: classes.focus }}\n configuration={{\n tabIndex,\n }}\n >\n {listItem}\n </HvFocus>\n ) : (\n listItem\n );\n});\n"],"names":["React","forwardRef","useDefaultProps","useClasses","useContext","HvListContext","useCallback","useMemo","jsxs","jsx","HvFocus"],"mappings":"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"}
@@ -1,19 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("@emotion/react/jsx-runtime");
4
+ const React = require("react");
4
5
  const useDefaultProps = require("../hooks/useDefaultProps.cjs");
5
6
  const Panel_styles = require("./Panel.styles.cjs");
6
- const HvPanel = (props) => {
7
- const {
8
- id,
9
- className,
10
- classes: classesProp,
11
- children,
12
- ...others
13
- } = useDefaultProps.useDefaultProps("HvPanel", props);
14
- const { classes, cx } = Panel_styles.useClasses(classesProp);
15
- return /* @__PURE__ */ jsxRuntime.jsx("div", { id, className: cx(classes.root, className), ...others, children });
16
- };
7
+ const HvPanel = React.forwardRef(
8
+ (props, ref) => {
9
+ const {
10
+ className,
11
+ classes: classesProp,
12
+ children,
13
+ ...others
14
+ } = useDefaultProps.useDefaultProps("HvPanel", props);
15
+ const { classes, cx } = Panel_styles.useClasses(classesProp);
16
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cx(classes.root, className), ...others, children });
17
+ }
18
+ );
17
19
  exports.panelClasses = Panel_styles.staticClasses;
18
20
  exports.HvPanel = HvPanel;
19
21
  //# sourceMappingURL=Panel.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Panel.cjs","sources":["../../../src/Panel/Panel.tsx"],"sourcesContent":["import { useDefaultProps } from \"../hooks/useDefaultProps\";\n\nimport { HvBaseProps } from \"../types/generic\";\n\nimport { ExtractNames } from \"../utils/classes\";\n\nimport { staticClasses, useClasses } from \"./Panel.styles\";\n\nexport { staticClasses as panelClasses };\n\nexport type HvPanelClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvPanelProps extends HvBaseProps {\n /** A Jss Object used to override or extend the styles applied. */\n classes?: HvPanelClasses;\n}\n\n/**\n * A panel is a container used in a variety of patterns (e.g. dropdown, filter group, details section).\n * It can be horizontal or vertical and its size is defined by its content and how it relates to surrounding patterns.\n * Regardless of its content, a panel look and feel should be consistent.\n */\nexport const HvPanel = (props: HvPanelProps) => {\n const {\n id,\n className,\n classes: classesProp,\n children,\n ...others\n } = useDefaultProps(\"HvPanel\", props);\n const { classes, cx } = useClasses(classesProp);\n\n return (\n <div id={id} className={cx(classes.root, className)} {...others}>\n {children}\n </div>\n );\n};\n"],"names":["useDefaultProps","useClasses","jsx"],"mappings":";;;;;AAsBa,MAAA,UAAU,CAAC,UAAwB;AACxC,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA,GAAG;AAAA,EAAA,IACDA,gBAAgB,gBAAA,WAAW,KAAK;AACpC,QAAM,EAAE,SAAS,GAAG,IAAIC,wBAAW,WAAW;AAG5C,SAAAC,2BAAA,IAAC,OAAI,EAAA,IAAQ,WAAW,GAAG,QAAQ,MAAM,SAAS,GAAI,GAAG,QACtD,SACH,CAAA;AAEJ;;;"}
1
+ {"version":3,"file":"Panel.cjs","sources":["../../../src/Panel/Panel.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\n\nimport { useDefaultProps } from \"../hooks/useDefaultProps\";\n\nimport { HvBaseProps } from \"../types/generic\";\n\nimport { ExtractNames } from \"../utils/classes\";\n\nimport { staticClasses, useClasses } from \"./Panel.styles\";\n\nexport { staticClasses as panelClasses };\n\nexport type HvPanelClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvPanelProps extends HvBaseProps {\n /** A Jss Object used to override or extend the styles applied. */\n classes?: HvPanelClasses;\n}\n\n/**\n * A panel is a container used in a variety of patterns (e.g. dropdown, filter group, details section).\n * It can be horizontal or vertical and its size is defined by its content and how it relates to surrounding patterns.\n * Regardless of its content, a panel look and feel should be consistent.\n */\nexport const HvPanel = forwardRef<HTMLDivElement, HvPanelProps>(\n (props, ref) => {\n const {\n className,\n classes: classesProp,\n children,\n ...others\n } = useDefaultProps(\"HvPanel\", props);\n const { classes, cx } = useClasses(classesProp);\n\n return (\n <div ref={ref} className={cx(classes.root, className)} {...others}>\n {children}\n </div>\n );\n }\n);\n"],"names":["forwardRef","useDefaultProps","useClasses","jsx"],"mappings":";;;;;;AAwBO,MAAM,UAAUA,MAAA;AAAA,EACrB,CAAC,OAAO,QAAQ;AACR,UAAA;AAAA,MACJ;AAAA,MACA,SAAS;AAAA,MACT;AAAA,MACA,GAAG;AAAA,IAAA,IACDC,gBAAgB,gBAAA,WAAW,KAAK;AACpC,UAAM,EAAE,SAAS,GAAG,IAAIC,wBAAW,WAAW;AAG5C,WAAAC,2BAAA,IAAC,OAAI,EAAA,KAAU,WAAW,GAAG,QAAQ,MAAM,SAAS,GAAI,GAAG,QACxD,SACH,CAAA;AAAA,EAEJ;AACF;;;"}
@@ -22,6 +22,7 @@ const HvSection = React.forwardRef(
22
22
  actions,
23
23
  onToggle,
24
24
  expandButtonProps,
25
+ raisedHeader,
25
26
  children,
26
27
  ...others
27
28
  } = useDefaultProps.useDefaultProps("HvSection", props);
@@ -41,31 +42,42 @@ const HvSection = React.forwardRef(
41
42
  className: cx(classes.root, className),
42
43
  ...others,
43
44
  children: [
44
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: classes.header, children: [
45
- expandable && /* @__PURE__ */ jsxRuntime.jsx(
46
- Button.HvButton,
47
- {
48
- icon: true,
49
- onClick: (event) => {
50
- setIsOpen((o) => !o);
51
- onToggle?.(event, !isOpen);
52
- },
53
- "aria-expanded": isOpen,
54
- "aria-controls": contentId,
55
- "aria-label": isOpen ? "Collapse" : "Expand",
56
- ...expandButtonProps,
57
- children: isOpen ? /* @__PURE__ */ jsxRuntime.jsx(uikitReactIcons.Up, {}) : /* @__PURE__ */ jsxRuntime.jsx(uikitReactIcons.Down, {})
58
- }
59
- ),
60
- title,
61
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: classes.actions, children: actions })
62
- ] }),
45
+ (title || actions || expandable) && /* @__PURE__ */ jsxRuntime.jsxs(
46
+ "div",
47
+ {
48
+ className: cx(classes.header, {
49
+ [classes.raisedHeader]: raisedHeader && isOpen
50
+ }),
51
+ children: [
52
+ expandable && /* @__PURE__ */ jsxRuntime.jsx(
53
+ Button.HvButton,
54
+ {
55
+ icon: true,
56
+ onClick: (event) => {
57
+ setIsOpen((o) => !o);
58
+ onToggle?.(event, !isOpen);
59
+ },
60
+ "aria-expanded": isOpen,
61
+ "aria-controls": contentId,
62
+ "aria-label": isOpen ? "Collapse" : "Expand",
63
+ ...expandButtonProps,
64
+ children: isOpen ? /* @__PURE__ */ jsxRuntime.jsx(uikitReactIcons.Up, {}) : /* @__PURE__ */ jsxRuntime.jsx(uikitReactIcons.Down, {})
65
+ }
66
+ ),
67
+ title,
68
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: classes.actions, children: actions })
69
+ ]
70
+ }
71
+ ),
63
72
  /* @__PURE__ */ jsxRuntime.jsx(
64
73
  "div",
65
74
  {
66
75
  id: contentId,
67
76
  hidden: !isOpen,
68
- className: cx(classes.content, { [classes.hidden]: !showContent }),
77
+ className: cx(classes.content, {
78
+ [classes.hidden]: !showContent,
79
+ [classes.spaceTop]: !(title || actions || expandable)
80
+ }),
69
81
  children
70
82
  }
71
83
  )
@@ -1 +1 @@
1
- {"version":3,"file":"Section.cjs","sources":["../../../src/Section/Section.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport { Down, Up } from \"@hitachivantara/uikit-react-icons\";\n\nimport { HvBaseProps } from \"../types/generic\";\nimport { ExtractNames } from \"../utils/classes\";\nimport { HvButton, HvButtonProps } from \"../Button\";\nimport { useDefaultProps } from \"../hooks/useDefaultProps\";\nimport { useControlled } from \"../hooks/useControlled\";\nimport { useUniqueId } from \"../hooks/useUniqueId\";\nimport { setId } from \"../utils/setId\";\n\nimport { staticClasses, useClasses } from \"./Section.styles\";\n\nexport { staticClasses as sectionClasses };\n\nexport type HvSectionClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvSectionProps\n extends Omit<HvBaseProps<HTMLDivElement>, \"title\"> {\n /** The title of the section */\n title?: React.ReactNode;\n /** Whether or not the section is expandable. */\n expandable?: boolean;\n /** Whether the section is open or not, if this property is defined the accordion must be fully controlled. */\n expanded?: boolean;\n /** When uncontrolled, defines the initial expanded state. */\n defaultExpanded?: boolean;\n /** Section actions */\n actions?: React.ReactNode;\n /** Section onExpand callback */\n onToggle?: (\n event: React.MouseEvent<HTMLButtonElement>,\n open: boolean\n ) => void;\n /** Props to be passed to the expand button */\n expandButtonProps?: HvButtonProps;\n /** A Jss Object used to override or extend the styles applied to the empty state component. */\n classes?: HvSectionClasses;\n}\n\n/**\n * Sections allow grouping information on a page under the same topic.\n */\nexport const HvSection = forwardRef<HTMLDivElement, HvSectionProps>(\n (props, ref) => {\n const {\n id,\n classes: classesProp,\n className,\n title,\n expandable,\n expanded,\n defaultExpanded = true,\n actions,\n onToggle,\n expandButtonProps,\n children,\n ...others\n } = useDefaultProps(\"HvSection\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n const [isOpen, setIsOpen] = useControlled(\n expanded,\n Boolean(defaultExpanded)\n );\n\n const elementId = useUniqueId(id, \"hvSection\");\n const contentId = setId(elementId, \"content\");\n\n const showContent = expandable ? !!isOpen : true;\n\n return (\n <div\n ref={ref}\n id={elementId}\n className={cx(classes.root, className)}\n {...others}\n >\n <div className={classes.header}>\n {expandable && (\n <HvButton\n icon\n onClick={(event) => {\n setIsOpen((o) => !o);\n onToggle?.(event, !isOpen);\n }}\n aria-expanded={isOpen}\n aria-controls={contentId}\n aria-label={isOpen ? \"Collapse\" : \"Expand\"}\n {...expandButtonProps}\n >\n {isOpen ? <Up /> : <Down />}\n </HvButton>\n )}\n {title}\n <div className={classes.actions}>{actions}</div>\n </div>\n <div\n id={contentId}\n hidden={!isOpen}\n className={cx(classes.content, { [classes.hidden]: !showContent })}\n >\n {children}\n </div>\n </div>\n );\n }\n);\n"],"names":["forwardRef","useDefaultProps","useClasses","useControlled","useUniqueId","setId","jsxs","jsx","HvButton","Up","Down"],"mappings":";;;;;;;;;;;AA2CO,MAAM,YAAYA,MAAA;AAAA,EACvB,CAAC,OAAO,QAAQ;AACR,UAAA;AAAA,MACJ;AAAA,MACA,SAAS;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,kBAAkB;AAAA,MAClB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IAAA,IACDC,gBAAgB,gBAAA,aAAa,KAAK;AAEtC,UAAM,EAAE,SAAS,GAAG,IAAIC,0BAAW,WAAW;AAExC,UAAA,CAAC,QAAQ,SAAS,IAAIC,cAAA;AAAA,MAC1B;AAAA,MACA,QAAQ,eAAe;AAAA,IAAA;AAGnB,UAAA,YAAYC,YAAAA,YAAY,IAAI,WAAW;AACvC,UAAA,YAAYC,MAAAA,MAAM,WAAW,SAAS;AAE5C,UAAM,cAAc,aAAa,CAAC,CAAC,SAAS;AAG1C,WAAAC,2BAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,IAAI;AAAA,QACJ,WAAW,GAAG,QAAQ,MAAM,SAAS;AAAA,QACpC,GAAG;AAAA,QAEJ,UAAA;AAAA,UAACA,2BAAA,KAAA,OAAA,EAAI,WAAW,QAAQ,QACrB,UAAA;AAAA,YACC,cAAAC,2BAAA;AAAA,cAACC,OAAA;AAAA,cAAA;AAAA,gBACC,MAAI;AAAA,gBACJ,SAAS,CAAC,UAAU;AACR,4BAAA,CAAC,MAAM,CAAC,CAAC;AACR,6BAAA,OAAO,CAAC,MAAM;AAAA,gBAC3B;AAAA,gBACA,iBAAe;AAAA,gBACf,iBAAe;AAAA,gBACf,cAAY,SAAS,aAAa;AAAA,gBACjC,GAAG;AAAA,gBAEH,UAAS,SAAAD,2BAAAA,IAACE,gBAAG,IAAA,CAAA,CAAA,mCAAMC,gBAAK,MAAA,EAAA;AAAA,cAAA;AAAA,YAC3B;AAAA,YAED;AAAA,YACAH,2BAAA,IAAA,OAAA,EAAI,WAAW,QAAQ,SAAU,UAAQ,SAAA;AAAA,UAAA,GAC5C;AAAA,UACAA,2BAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,IAAI;AAAA,cACJ,QAAQ,CAAC;AAAA,cACT,WAAW,GAAG,QAAQ,SAAS,EAAE,CAAC,QAAQ,MAAM,GAAG,CAAC,aAAa;AAAA,cAEhE;AAAA,YAAA;AAAA,UACH;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;;;"}
1
+ {"version":3,"file":"Section.cjs","sources":["../../../src/Section/Section.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport { Down, Up } from \"@hitachivantara/uikit-react-icons\";\n\nimport { HvBaseProps } from \"../types/generic\";\nimport { ExtractNames } from \"../utils/classes\";\nimport { HvButton, HvButtonProps } from \"../Button\";\nimport { useDefaultProps } from \"../hooks/useDefaultProps\";\nimport { useControlled } from \"../hooks/useControlled\";\nimport { useUniqueId } from \"../hooks/useUniqueId\";\nimport { setId } from \"../utils/setId\";\n\nimport { staticClasses, useClasses } from \"./Section.styles\";\n\nexport { staticClasses as sectionClasses };\n\nexport type HvSectionClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvSectionProps\n extends Omit<HvBaseProps<HTMLDivElement>, \"title\"> {\n /** The title of the section */\n title?: React.ReactNode;\n /** Whether or not the section is expandable. */\n expandable?: boolean;\n /** Whether the section is open or not, if this property is defined the accordion must be fully controlled. */\n expanded?: boolean;\n /** When uncontrolled, defines the initial expanded state. */\n defaultExpanded?: boolean;\n /** Section actions */\n actions?: React.ReactNode;\n /** Section onExpand callback */\n onToggle?: (\n event: React.MouseEvent<HTMLButtonElement>,\n open: boolean\n ) => void;\n /** Props to be passed to the expand button */\n expandButtonProps?: HvButtonProps;\n /** Determines whether or not the header has a shadow on the bottom border. */\n raisedHeader?: boolean;\n /** A Jss Object used to override or extend the styles applied to the empty state component. */\n classes?: HvSectionClasses;\n}\n\n/**\n * Sections allow grouping information on a page under the same topic.\n */\nexport const HvSection = forwardRef<HTMLDivElement, HvSectionProps>(\n (props, ref) => {\n const {\n id,\n classes: classesProp,\n className,\n title,\n expandable,\n expanded,\n defaultExpanded = true,\n actions,\n onToggle,\n expandButtonProps,\n raisedHeader,\n children,\n ...others\n } = useDefaultProps(\"HvSection\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n const [isOpen, setIsOpen] = useControlled(\n expanded,\n Boolean(defaultExpanded)\n );\n\n const elementId = useUniqueId(id, \"hvSection\");\n const contentId = setId(elementId, \"content\");\n\n const showContent = expandable ? !!isOpen : true;\n\n return (\n <div\n ref={ref}\n id={elementId}\n className={cx(classes.root, className)}\n {...others}\n >\n {(title || actions || expandable) && (\n <div\n className={cx(classes.header, {\n [classes.raisedHeader]: raisedHeader && isOpen,\n })}\n >\n {expandable && (\n <HvButton\n icon\n onClick={(event) => {\n setIsOpen((o) => !o);\n onToggle?.(event, !isOpen);\n }}\n aria-expanded={isOpen}\n aria-controls={contentId}\n aria-label={isOpen ? \"Collapse\" : \"Expand\"}\n {...expandButtonProps}\n >\n {isOpen ? <Up /> : <Down />}\n </HvButton>\n )}\n {title}\n <div className={classes.actions}>{actions}</div>\n </div>\n )}\n <div\n id={contentId}\n hidden={!isOpen}\n className={cx(classes.content, {\n [classes.hidden]: !showContent,\n [classes.spaceTop]: !(title || actions || expandable),\n })}\n >\n {children}\n </div>\n </div>\n );\n }\n);\n"],"names":["forwardRef","useDefaultProps","useClasses","useControlled","useUniqueId","setId","jsxs","jsx","HvButton","Up","Down"],"mappings":";;;;;;;;;;;AA6CO,MAAM,YAAYA,MAAA;AAAA,EACvB,CAAC,OAAO,QAAQ;AACR,UAAA;AAAA,MACJ;AAAA,MACA,SAAS;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,kBAAkB;AAAA,MAClB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IAAA,IACDC,gBAAgB,gBAAA,aAAa,KAAK;AAEtC,UAAM,EAAE,SAAS,GAAG,IAAIC,0BAAW,WAAW;AAExC,UAAA,CAAC,QAAQ,SAAS,IAAIC,cAAA;AAAA,MAC1B;AAAA,MACA,QAAQ,eAAe;AAAA,IAAA;AAGnB,UAAA,YAAYC,YAAAA,YAAY,IAAI,WAAW;AACvC,UAAA,YAAYC,MAAAA,MAAM,WAAW,SAAS;AAE5C,UAAM,cAAc,aAAa,CAAC,CAAC,SAAS;AAG1C,WAAAC,2BAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,IAAI;AAAA,QACJ,WAAW,GAAG,QAAQ,MAAM,SAAS;AAAA,QACpC,GAAG;AAAA,QAEF,UAAA;AAAA,WAAA,SAAS,WAAW,eACpBA,2BAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW,GAAG,QAAQ,QAAQ;AAAA,gBAC5B,CAAC,QAAQ,YAAY,GAAG,gBAAgB;AAAA,cAAA,CACzC;AAAA,cAEA,UAAA;AAAA,gBACC,cAAAC,2BAAA;AAAA,kBAACC,OAAA;AAAA,kBAAA;AAAA,oBACC,MAAI;AAAA,oBACJ,SAAS,CAAC,UAAU;AACR,gCAAA,CAAC,MAAM,CAAC,CAAC;AACR,iCAAA,OAAO,CAAC,MAAM;AAAA,oBAC3B;AAAA,oBACA,iBAAe;AAAA,oBACf,iBAAe;AAAA,oBACf,cAAY,SAAS,aAAa;AAAA,oBACjC,GAAG;AAAA,oBAEH,UAAS,SAAAD,2BAAAA,IAACE,gBAAG,IAAA,CAAA,CAAA,mCAAMC,gBAAK,MAAA,EAAA;AAAA,kBAAA;AAAA,gBAC3B;AAAA,gBAED;AAAA,gBACAH,2BAAA,IAAA,OAAA,EAAI,WAAW,QAAQ,SAAU,UAAQ,SAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UAC5C;AAAA,UAEFA,2BAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,IAAI;AAAA,cACJ,QAAQ,CAAC;AAAA,cACT,WAAW,GAAG,QAAQ,SAAS;AAAA,gBAC7B,CAAC,QAAQ,MAAM,GAAG,CAAC;AAAA,gBACnB,CAAC,QAAQ,QAAQ,GAAG,EAAE,SAAS,WAAW;AAAA,cAAA,CAC3C;AAAA,cAEA;AAAA,YAAA;AAAA,UACH;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;;;"}
@@ -7,7 +7,6 @@ const { staticClasses, useClasses } = classes.createClasses("HvSection", {
7
7
  width: "100%",
8
8
  display: "flex",
9
9
  flexDirection: "column",
10
- padding: uikitStyles.theme.space.sm,
11
10
  backgroundColor: uikitStyles.theme.colors.atmo1,
12
11
  borderRadius: uikitStyles.theme.radii.round,
13
12
  border: `1px solid ${uikitStyles.theme.colors.atmo4}`
@@ -17,16 +16,27 @@ const { staticClasses, useClasses } = classes.createClasses("HvSection", {
17
16
  display: "flex",
18
17
  alignItems: "center",
19
18
  position: "relative",
20
- minHeight: uikitStyles.theme.sizes.sm
19
+ minHeight: uikitStyles.theme.sizes.sm,
20
+ padding: uikitStyles.theme.space.sm
21
21
  },
22
22
  content: {
23
- marginTop: uikitStyles.theme.space.sm
23
+ padding: uikitStyles.theme.spacing(0, "sm", "sm", "sm")
24
+ },
25
+ spaceTop: {
26
+ paddingTop: uikitStyles.theme.space.sm
24
27
  },
25
28
  actions: {
26
29
  display: "flex",
27
30
  gap: uikitStyles.theme.space.xs,
28
31
  position: "absolute",
29
32
  right: 0
33
+ },
34
+ raisedHeader: {
35
+ zIndex: 1,
36
+ boxShadow: uikitStyles.theme.colors.shadow,
37
+ "+ div": {
38
+ paddingTop: uikitStyles.theme.space.sm
39
+ }
30
40
  }
31
41
  });
32
42
  exports.staticClasses = staticClasses;
@@ -1 +1 @@
1
- {"version":3,"file":"Section.styles.cjs","sources":["../../../src/Section/Section.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"../utils/classes\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvSection\", {\n root: {\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n padding: theme.space.sm,\n backgroundColor: theme.colors.atmo1,\n borderRadius: theme.radii.round,\n border: `1px solid ${theme.colors.atmo4}`,\n },\n hidden: { height: 0, display: \"none\" },\n header: {\n display: \"flex\",\n alignItems: \"center\",\n position: \"relative\",\n minHeight: theme.sizes.sm,\n },\n content: {\n marginTop: theme.space.sm,\n },\n actions: {\n display: \"flex\",\n gap: theme.space.xs,\n position: \"absolute\",\n right: 0,\n },\n});\n"],"names":["createClasses","theme"],"mappings":";;;;AAIO,MAAM,EAAE,eAAe,eAAeA,QAAAA,cAAc,aAAa;AAAA,EACtE,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,SAAS;AAAA,IACT,eAAe;AAAA,IACf,SAASC,YAAAA,MAAM,MAAM;AAAA,IACrB,iBAAiBA,YAAAA,MAAM,OAAO;AAAA,IAC9B,cAAcA,YAAAA,MAAM,MAAM;AAAA,IAC1B,QAAQ,aAAaA,YAAM,MAAA,OAAO,KAAK;AAAA,EACzC;AAAA,EACA,QAAQ,EAAE,QAAQ,GAAG,SAAS,OAAO;AAAA,EACrC,QAAQ;AAAA,IACN,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,WAAWA,YAAAA,MAAM,MAAM;AAAA,EACzB;AAAA,EACA,SAAS;AAAA,IACP,WAAWA,YAAAA,MAAM,MAAM;AAAA,EACzB;AAAA,EACA,SAAS;AAAA,IACP,SAAS;AAAA,IACT,KAAKA,YAAAA,MAAM,MAAM;AAAA,IACjB,UAAU;AAAA,IACV,OAAO;AAAA,EACT;AACF,CAAC;;;"}
1
+ {"version":3,"file":"Section.styles.cjs","sources":["../../../src/Section/Section.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"../utils/classes\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvSection\", {\n root: {\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n backgroundColor: theme.colors.atmo1,\n borderRadius: theme.radii.round,\n border: `1px solid ${theme.colors.atmo4}`,\n },\n hidden: { height: 0, display: \"none\" },\n header: {\n display: \"flex\",\n alignItems: \"center\",\n position: \"relative\",\n minHeight: theme.sizes.sm,\n padding: theme.space.sm,\n },\n content: {\n padding: theme.spacing(0, \"sm\", \"sm\", \"sm\"),\n },\n spaceTop: {\n paddingTop: theme.space.sm,\n },\n actions: {\n display: \"flex\",\n gap: theme.space.xs,\n position: \"absolute\",\n right: 0,\n },\n raisedHeader: {\n zIndex: 1,\n boxShadow: theme.colors.shadow,\n \"+ div\": {\n paddingTop: theme.space.sm,\n },\n },\n});\n"],"names":["createClasses","theme"],"mappings":";;;;AAIO,MAAM,EAAE,eAAe,eAAeA,QAAAA,cAAc,aAAa;AAAA,EACtE,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,SAAS;AAAA,IACT,eAAe;AAAA,IACf,iBAAiBC,YAAAA,MAAM,OAAO;AAAA,IAC9B,cAAcA,YAAAA,MAAM,MAAM;AAAA,IAC1B,QAAQ,aAAaA,YAAM,MAAA,OAAO,KAAK;AAAA,EACzC;AAAA,EACA,QAAQ,EAAE,QAAQ,GAAG,SAAS,OAAO;AAAA,EACrC,QAAQ;AAAA,IACN,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,WAAWA,YAAAA,MAAM,MAAM;AAAA,IACvB,SAASA,YAAAA,MAAM,MAAM;AAAA,EACvB;AAAA,EACA,SAAS;AAAA,IACP,SAASA,YAAM,MAAA,QAAQ,GAAG,MAAM,MAAM,IAAI;AAAA,EAC5C;AAAA,EACA,UAAU;AAAA,IACR,YAAYA,YAAAA,MAAM,MAAM;AAAA,EAC1B;AAAA,EACA,SAAS;AAAA,IACP,SAAS;AAAA,IACT,KAAKA,YAAAA,MAAM,MAAM;AAAA,IACjB,UAAU;AAAA,IACV,OAAO;AAAA,EACT;AAAA,EACA,cAAc;AAAA,IACZ,QAAQ;AAAA,IACR,WAAWA,YAAAA,MAAM,OAAO;AAAA,IACxB,SAAS;AAAA,MACP,YAAYA,YAAAA,MAAM,MAAM;AAAA,IAC1B;AAAA,EACF;AACF,CAAC;;;"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("@emotion/react/jsx-runtime");
4
+ const React = require("react");
5
+ const useDefaultProps = require("../hooks/useDefaultProps.cjs");
6
+ const useUniqueId = require("../hooks/useUniqueId.cjs");
7
+ const TableSection_styles = require("./TableSection.styles.cjs");
8
+ const Section = require("../Section/Section.cjs");
9
+ const HvTableSection = React.forwardRef(
10
+ (props, ref) => {
11
+ const {
12
+ id,
13
+ classes: classesProp,
14
+ children,
15
+ ...others
16
+ } = useDefaultProps.useDefaultProps("HvTableSection", props);
17
+ const { classes } = TableSection_styles.useClasses(classesProp);
18
+ const elementId = useUniqueId.useUniqueId(id, "hvTableSection");
19
+ return /* @__PURE__ */ jsxRuntime.jsx(Section.HvSection, { id: elementId, ref, classes, ...others, children });
20
+ }
21
+ );
22
+ exports.tableSectionClasses = TableSection_styles.staticClasses;
23
+ exports.HvTableSection = HvTableSection;
24
+ //# sourceMappingURL=TableSection.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableSection.cjs","sources":["../../../src/TableSection/TableSection.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\n\nimport { ExtractNames } from \"../utils/classes\";\nimport { useDefaultProps } from \"../hooks/useDefaultProps\";\nimport { useUniqueId } from \"../hooks/useUniqueId\";\nimport { staticClasses, useClasses } from \"./TableSection.styles\";\nimport { HvSection, HvSectionProps } from \"../Section\";\n\nexport { staticClasses as tableSectionClasses };\n\nexport type HvTableSectionClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvTableSectionProps extends HvSectionProps {}\n\n/**\n * The `TableSection` component is a wrapper for the `Section` component that applies\n * specific stylings for tables that follow the latest DS specifications.\n */\nexport const HvTableSection = forwardRef<HTMLDivElement, HvTableSectionProps>(\n (props, ref) => {\n const {\n id,\n classes: classesProp,\n children,\n ...others\n } = useDefaultProps(\"HvTableSection\", props);\n\n const { classes } = useClasses(classesProp);\n const elementId = useUniqueId(id, \"hvTableSection\");\n\n return (\n <HvSection id={elementId} ref={ref} classes={classes} {...others}>\n {children}\n </HvSection>\n );\n }\n);\n"],"names":["forwardRef","useDefaultProps","useClasses","useUniqueId","jsx","HvSection"],"mappings":";;;;;;;;AAkBO,MAAM,iBAAiBA,MAAA;AAAA,EAC5B,CAAC,OAAO,QAAQ;AACR,UAAA;AAAA,MACJ;AAAA,MACA,SAAS;AAAA,MACT;AAAA,MACA,GAAG;AAAA,IAAA,IACDC,gBAAgB,gBAAA,kBAAkB,KAAK;AAE3C,UAAM,EAAE,QAAA,IAAYC,oBAAA,WAAW,WAAW;AACpC,UAAA,YAAYC,YAAAA,YAAY,IAAI,gBAAgB;AAGhD,WAAAC,+BAACC,QAAAA,aAAU,IAAI,WAAW,KAAU,SAAmB,GAAG,QACvD,SACH,CAAA;AAAA,EAEJ;AACF;;;"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const uikitStyles = require("@hitachivantara/uikit-styles");
4
+ const classes = require("../utils/classes.cjs");
5
+ const Section_styles = require("../Section/Section.styles.cjs");
6
+ require("../Section/Section.cjs");
7
+ const TableContainer_styles = require("../Table/TableContainer/TableContainer.styles.cjs");
8
+ require("../Table/TableContainer/TableContainer.cjs");
9
+ const TableHeader_styles = require("../Table/TableHeader/TableHeader.styles.cjs");
10
+ require("../Table/TableHeader/TableHeader.cjs");
11
+ const TableCell_styles = require("../Table/TableCell/TableCell.styles.cjs");
12
+ require("../Table/TableCell/TableCell.cjs");
13
+ const BulkActions_styles = require("../BulkActions/BulkActions.styles.cjs");
14
+ require("@emotion/react/jsx-runtime");
15
+ const Pagination_styles = require("../Pagination/Pagination.styles.cjs");
16
+ require("react");
17
+ require("@mui/material/Hidden");
18
+ require("@hitachivantara/uikit-react-icons");
19
+ const { staticClasses, useClasses } = classes.createClasses("HvTableSection", {
20
+ root: {
21
+ padding: 0
22
+ },
23
+ header: {
24
+ padding: uikitStyles.theme.spacing("xs", "xs", "xs", "sm"),
25
+ borderBottom: `1px solid ${uikitStyles.theme.colors.atmo3}`,
26
+ [`&.${Section_styles.staticClasses.raisedHeader}`]: {
27
+ "+ div": {
28
+ paddingTop: `0`
29
+ }
30
+ }
31
+ },
32
+ actions: {
33
+ right: uikitStyles.theme.space.sm
34
+ },
35
+ content: {
36
+ marginTop: 0,
37
+ padding: 0,
38
+ [`&&`]: {
39
+ paddingTop: 0
40
+ },
41
+ [`& .${TableContainer_styles.staticClasses.root}`]: {
42
+ paddingBottom: 0,
43
+ borderRadius: `${uikitStyles.theme.radii.round} ${uikitStyles.theme.radii.round} 0 0`
44
+ },
45
+ [`& .${TableHeader_styles.staticClasses.head}`]: {
46
+ backgroundColor: uikitStyles.theme.colors.atmo2,
47
+ borderBottomColor: uikitStyles.theme.colors.atmo3,
48
+ [`&.${TableHeader_styles.staticClasses.variantCheckbox}`]: {
49
+ borderRight: "none"
50
+ }
51
+ },
52
+ [`& .${TableCell_styles.staticClasses.root}`]: {
53
+ borderBottomColor: uikitStyles.theme.colors.atmo3
54
+ },
55
+ [`& .${TableCell_styles.staticClasses.variantCheckbox}`]: {
56
+ borderRight: "none"
57
+ },
58
+ [`& .${BulkActions_styles.staticClasses.root}`]: {
59
+ marginBottom: 0,
60
+ border: "none",
61
+ borderBottom: `1px solid ${uikitStyles.theme.colors.atmo3}`,
62
+ padding: uikitStyles.theme.spacing("xs", "sm"),
63
+ borderRadius: `${uikitStyles.theme.radii.round} ${uikitStyles.theme.radii.round} 0 0`
64
+ },
65
+ [`& .${Pagination_styles.staticClasses.root}`]: {
66
+ margin: 0,
67
+ backgroundColor: uikitStyles.theme.colors.atmo2,
68
+ padding: uikitStyles.theme.space.xs,
69
+ borderRadius: `0 0 ${uikitStyles.theme.radii.round} ${uikitStyles.theme.radii.round}`
70
+ },
71
+ [`& .${Pagination_styles.staticClasses.pageSizeOptions}`]: {
72
+ left: uikitStyles.theme.space.sm
73
+ }
74
+ },
75
+ hidden: {},
76
+ raisedHeader: {},
77
+ spaceTop: {}
78
+ });
79
+ exports.staticClasses = staticClasses;
80
+ exports.useClasses = useClasses;
81
+ //# sourceMappingURL=TableSection.styles.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableSection.styles.cjs","sources":["../../../src/TableSection/TableSection.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { bulkActionsClasses } from \"../BulkActions\";\nimport { paginationClasses } from \"../Pagination\";\nimport { sectionClasses } from \"../Section\";\n\nimport { tableCellClasses } from \"../Table/TableCell\";\nimport { tableContainerClasses } from \"../Table/TableContainer\";\nimport { tableHeaderClasses } from \"../Table/TableHeader\";\n\nimport { createClasses } from \"../utils/classes\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvTableSection\", {\n root: {\n padding: 0,\n },\n header: {\n padding: theme.spacing(\"xs\", \"xs\", \"xs\", \"sm\"),\n borderBottom: `1px solid ${theme.colors.atmo3}`,\n [`&.${sectionClasses.raisedHeader}`]: {\n \"+ div\": {\n paddingTop: `0`,\n },\n },\n },\n actions: {\n right: theme.space.sm,\n },\n content: {\n marginTop: 0,\n padding: 0,\n [`&&`]: {\n paddingTop: 0,\n },\n [`& .${tableContainerClasses.root}`]: {\n paddingBottom: 0,\n borderRadius: `${theme.radii.round} ${theme.radii.round} 0 0`,\n },\n [`& .${tableHeaderClasses.head}`]: {\n backgroundColor: theme.colors.atmo2,\n borderBottomColor: theme.colors.atmo3,\n [`&.${tableHeaderClasses.variantCheckbox}`]: {\n borderRight: \"none\",\n },\n },\n [`& .${tableCellClasses.root}`]: {\n borderBottomColor: theme.colors.atmo3,\n },\n [`& .${tableCellClasses.variantCheckbox}`]: {\n borderRight: \"none\",\n },\n [`& .${bulkActionsClasses.root}`]: {\n marginBottom: 0,\n border: \"none\",\n borderBottom: `1px solid ${theme.colors.atmo3}`,\n padding: theme.spacing(\"xs\", \"sm\"),\n borderRadius: `${theme.radii.round} ${theme.radii.round} 0 0`,\n },\n [`& .${paginationClasses.root}`]: {\n margin: 0,\n backgroundColor: theme.colors.atmo2,\n padding: theme.space.xs,\n borderRadius: `0 0 ${theme.radii.round} ${theme.radii.round}`,\n },\n [`& .${paginationClasses.pageSizeOptions}`]: {\n left: theme.space.sm,\n },\n },\n hidden: {},\n raisedHeader: {},\n spaceTop: {},\n});\n"],"names":["createClasses","theme","sectionClasses","tableContainerClasses","tableHeaderClasses","tableCellClasses","bulkActionsClasses","paginationClasses"],"mappings":";;;;;;;;;;;;;;;;;;AAYO,MAAM,EAAE,eAAe,eAAeA,QAAAA,cAAc,kBAAkB;AAAA,EAC3E,MAAM;AAAA,IACJ,SAAS;AAAA,EACX;AAAA,EACA,QAAQ;AAAA,IACN,SAASC,YAAM,MAAA,QAAQ,MAAM,MAAM,MAAM,IAAI;AAAA,IAC7C,cAAc,aAAaA,YAAM,MAAA,OAAO,KAAK;AAAA,IAC7C,CAAC,KAAKC,6BAAe,YAAY,EAAE,GAAG;AAAA,MACpC,SAAS;AAAA,QACP,YAAY;AAAA,MACd;AAAA,IACF;AAAA,EACF;AAAA,EACA,SAAS;AAAA,IACP,OAAOD,YAAAA,MAAM,MAAM;AAAA,EACrB;AAAA,EACA,SAAS;AAAA,IACP,WAAW;AAAA,IACX,SAAS;AAAA,IACT,CAAC,IAAI,GAAG;AAAA,MACN,YAAY;AAAA,IACd;AAAA,IACA,CAAC,MAAME,oCAAsB,IAAI,EAAE,GAAG;AAAA,MACpC,eAAe;AAAA,MACf,cAAc,GAAGF,YAAM,MAAA,MAAM,KAAK,IAAIA,kBAAM,MAAM,KAAK;AAAA,IACzD;AAAA,IACA,CAAC,MAAMG,iCAAmB,IAAI,EAAE,GAAG;AAAA,MACjC,iBAAiBH,YAAAA,MAAM,OAAO;AAAA,MAC9B,mBAAmBA,YAAAA,MAAM,OAAO;AAAA,MAChC,CAAC,KAAKG,iCAAmB,eAAe,EAAE,GAAG;AAAA,QAC3C,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA,CAAC,MAAMC,+BAAiB,IAAI,EAAE,GAAG;AAAA,MAC/B,mBAAmBJ,YAAAA,MAAM,OAAO;AAAA,IAClC;AAAA,IACA,CAAC,MAAMI,+BAAiB,eAAe,EAAE,GAAG;AAAA,MAC1C,aAAa;AAAA,IACf;AAAA,IACA,CAAC,MAAMC,iCAAmB,IAAI,EAAE,GAAG;AAAA,MACjC,cAAc;AAAA,MACd,QAAQ;AAAA,MACR,cAAc,aAAaL,YAAM,MAAA,OAAO,KAAK;AAAA,MAC7C,SAASA,YAAA,MAAM,QAAQ,MAAM,IAAI;AAAA,MACjC,cAAc,GAAGA,YAAM,MAAA,MAAM,KAAK,IAAIA,kBAAM,MAAM,KAAK;AAAA,IACzD;AAAA,IACA,CAAC,MAAMM,gCAAkB,IAAI,EAAE,GAAG;AAAA,MAChC,QAAQ;AAAA,MACR,iBAAiBN,YAAAA,MAAM,OAAO;AAAA,MAC9B,SAASA,YAAAA,MAAM,MAAM;AAAA,MACrB,cAAc,OAAOA,YAAAA,MAAM,MAAM,KAAK,IAAIA,YAAA,MAAM,MAAM,KAAK;AAAA,IAC7D;AAAA,IACA,CAAC,MAAMM,gCAAkB,eAAe,EAAE,GAAG;AAAA,MAC3C,MAAMN,YAAAA,MAAM,MAAM;AAAA,IACpB;AAAA,EACF;AAAA,EACA,QAAQ,CAAC;AAAA,EACT,cAAc,CAAC;AAAA,EACf,UAAU,CAAC;AACb,CAAC;;;"}
@@ -302,6 +302,8 @@ const TreeView$1 = require("./VerticalNavigation/TreeView/TreeView.cjs");
302
302
  const TreeViewItem_styles = require("./VerticalNavigation/TreeView/TreeViewItem.styles.cjs");
303
303
  const TreeViewItem = require("./VerticalNavigation/TreeView/TreeViewItem.cjs");
304
304
  const VerticalNavigationContext = require("./VerticalNavigation/VerticalNavigationContext.cjs");
305
+ const TableSection_styles = require("./TableSection/TableSection.styles.cjs");
306
+ const TableSection = require("./TableSection/TableSection.cjs");
305
307
  const uikitReactShared = require("@hitachivantara/uikit-react-shared");
306
308
  Object.defineProperty(exports, "ds3", {
307
309
  enumerable: true,
@@ -673,6 +675,8 @@ exports.HvVerticalNavigationTreeView = TreeView$1.HvVerticalNavigationTreeView;
673
675
  exports.treeViewItemClasses = TreeViewItem_styles.staticClasses;
674
676
  exports.HvVerticalNavigationTreeViewItem = TreeViewItem.HvVerticalNavigationTreeViewItem;
675
677
  exports.VerticalNavigationContext = VerticalNavigationContext.VerticalNavigationContext;
678
+ exports.tableSectionClasses = TableSection_styles.staticClasses;
679
+ exports.HvTableSection = TableSection.HvTableSection;
676
680
  Object.defineProperty(exports, "EmotionContext", {
677
681
  enumerable: true,
678
682
  get: () => uikitReactShared.EmotionContext
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -6,27 +6,24 @@ import { staticClasses } from "./ListItem.styles.js";
6
6
  import HvListContext from "../ListContext/ListContext.js";
7
7
  import { HvFocus } from "../../Focus/Focus.js";
8
8
  const applyClassNameAndStateToElement = (element, selected, disabled, onClick, className) => {
9
- if (element != null) {
10
- return React__default.cloneElement(element, {
11
- className,
12
- checked: !!selected,
13
- disabled,
14
- onChange: (evt) => onClick?.(evt)
15
- });
16
- }
17
- return null;
9
+ if (element == null)
10
+ return null;
11
+ return React__default.cloneElement(element, {
12
+ className,
13
+ checked: !!selected,
14
+ disabled,
15
+ onChange: onClick
16
+ });
18
17
  };
19
18
  const applyClassNameToElement = (element, className) => {
20
- if (element != null) {
21
- return React__default.cloneElement(element, {
22
- className
23
- });
24
- }
25
- return null;
19
+ if (element == null)
20
+ return null;
21
+ return React__default.cloneElement(element, {
22
+ className
23
+ });
26
24
  };
27
25
  const HvListItem = forwardRef((props, ref) => {
28
26
  const {
29
- id,
30
27
  classes: classesProp,
31
28
  className,
32
29
  role,
@@ -50,14 +47,14 @@ const HvListItem = forwardRef((props, ref) => {
50
47
  disableGutters: disableGuttersContext,
51
48
  interactive: interactiveContext
52
49
  } = useContext(HvListContext);
53
- const condensed = condensedProp != null ? condensedProp : condensedContext;
54
- const disableGutters = disableGuttersProp != null ? disableGuttersProp : disableGuttersContext;
55
- const interactive = interactiveProp != null ? interactiveProp : interactiveContext;
56
- const handleOnClick = useCallback(
50
+ const condensed = condensedProp ?? condensedContext;
51
+ const disableGutters = disableGuttersProp ?? disableGuttersContext;
52
+ const interactive = interactiveProp ?? interactiveContext;
53
+ const handleClick = useCallback(
57
54
  (evt) => {
58
- if (!disabled) {
59
- onClick?.(evt);
60
- }
55
+ if (disabled)
56
+ return;
57
+ onClick?.(evt);
61
58
  },
62
59
  [disabled, onClick]
63
60
  );
@@ -66,7 +63,7 @@ const HvListItem = forwardRef((props, ref) => {
66
63
  startAdornment,
67
64
  selected,
68
65
  disabled,
69
- handleOnClick,
66
+ handleClick,
70
67
  cx(
71
68
  classes.startAdornment,
72
69
  { [classes.disabled]: disabled },
@@ -78,7 +75,7 @@ const HvListItem = forwardRef((props, ref) => {
78
75
  classes?.startAdornment,
79
76
  classes?.disabled,
80
77
  disabled,
81
- handleOnClick,
78
+ handleClick,
82
79
  selected,
83
80
  startAdornment
84
81
  ]
@@ -100,11 +97,10 @@ const HvListItem = forwardRef((props, ref) => {
100
97
  } : {};
101
98
  const listItem = (
102
99
  // For later: this should only have an onClick event if interactive and has the appropriate role.
103
- // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions
100
+ // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events
104
101
  /* @__PURE__ */ jsxs(
105
102
  "li",
106
103
  {
107
- id,
108
104
  ref,
109
105
  role,
110
106
  value,
@@ -114,16 +110,15 @@ const HvListItem = forwardRef((props, ref) => {
114
110
  [classes.gutters]: !disableGutters,
115
111
  [classes.condensed]: condensed,
116
112
  [classes.interactive]: interactive,
117
- [classes.selected]: !!selected,
118
- [classes.disabled]: !!disabled,
113
+ [classes.selected]: selected || props["aria-selected"],
114
+ [classes.disabled]: disabled || props["aria-disabled"],
119
115
  [classes.withStartAdornment]: startAdornment != null,
120
116
  [classes.withEndAdornment]: endAdornment != null
121
117
  },
122
118
  className
123
119
  ),
124
- onClick: handleOnClick,
125
- onKeyDown: () => {
126
- },
120
+ tabIndex: interactive ? void 0 : tabIndex,
121
+ onClick: handleClick,
127
122
  ...roleOptionAriaProps,
128
123
  ...others,
129
124
  children: [
@@ -1 +1 @@
1
- {"version":3,"file":"ListItem.js","sources":["../../../../src/ListContainer/ListItem/ListItem.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useContext, useMemo } from \"react\";\n\nimport { HvBaseProps } from \"../../types/generic\";\nimport { useDefaultProps } from \"../../hooks/useDefaultProps\";\nimport { ExtractNames } from \"../../utils/classes\";\nimport { HvFocus } from \"../../Focus\";\n\nimport HvListContext from \"../ListContext\";\nimport { staticClasses, useClasses } from \"./ListItem.styles\";\n\nexport { staticClasses as listItemClasses };\n\nexport type HvListItemClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvListItemProps extends HvBaseProps<HTMLLIElement> {\n /** Indicates if the list item is selected. */\n selected?: boolean;\n /** If true, the list item will be disabled. */\n disabled?: boolean;\n /**\n * If the list item is focusable and reacts to mouse over events.\n * Defaults to true if the container list is interactive, false otherwise.\n */\n interactive?: boolean;\n /**\n * If `true` compacts the vertical spacing intended to separate the list items.\n * Defaults to the value set in container list.\n */\n condensed?: boolean;\n /**\n * If `true`, the left and right padding is removed.\n * Defaults to the value set in container list.\n */\n disableGutters?: boolean;\n /**\n * Element placed before the children.\n * Also removes the left padding (gutter).\n *\n * Some modifications are applied, assuming that it is either an icon (changing the color when the item is disabled)\n * or a selector (preventing the double focus ring, propagating the checked and disabled states and wiring the onChange event).\n * If unwanted, the element should be placed directly as a child.\n */\n startAdornment?: React.ReactNode;\n /**\n * Element placed after the children and aligned next to the margin.\n * Also removes the right padding (gutter).\n *\n * Some modifications are applied, assuming that it is an icon (changing the color when the item is disabled).\n * If unwanted, the element should be placed directly as a child.\n */\n endAdornment?: React.ReactNode;\n /** The value to be set on the 'li' element */\n value?: any;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvListItemClasses;\n}\n\nconst applyClassNameAndStateToElement = (\n element,\n selected,\n disabled,\n onClick,\n className\n) => {\n if (element != null) {\n return React.cloneElement(element, {\n className,\n checked: !!selected,\n disabled,\n onChange: (evt) => onClick?.(evt),\n });\n }\n\n return null;\n};\n\nconst applyClassNameToElement = (element, className) => {\n if (element != null) {\n return React.cloneElement(element, {\n className,\n });\n }\n\n return null;\n};\n\n/**\n * ListItem description/documentation paragraph\n */\nexport const HvListItem = forwardRef<any, HvListItemProps>((props, ref) => {\n const {\n id,\n classes: classesProp,\n className,\n role,\n value,\n selected,\n disabled,\n interactive: interactiveProp,\n condensed: condensedProp,\n disableGutters: disableGuttersProp,\n startAdornment,\n endAdornment,\n onClick,\n children,\n tabIndex,\n ...others\n } = useDefaultProps(\"HvListItem\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n const {\n topContainerRef,\n condensed: condensedContext,\n disableGutters: disableGuttersContext,\n interactive: interactiveContext,\n } = useContext(HvListContext);\n\n const condensed = condensedProp != null ? condensedProp : condensedContext;\n const disableGutters =\n disableGuttersProp != null ? disableGuttersProp : disableGuttersContext;\n const interactive =\n interactiveProp != null ? interactiveProp : interactiveContext;\n\n const handleOnClick = useCallback(\n (evt) => {\n if (!disabled) {\n onClick?.(evt);\n }\n },\n [disabled, onClick]\n );\n\n const clonedStartAdornment = useMemo(\n () =>\n applyClassNameAndStateToElement(\n startAdornment,\n selected,\n disabled,\n handleOnClick,\n cx(\n classes.startAdornment,\n { [classes.disabled]: disabled },\n React.isValidElement(startAdornment)\n ? startAdornment.props.className\n : undefined\n )\n ),\n [\n cx,\n classes?.startAdornment,\n classes?.disabled,\n disabled,\n handleOnClick,\n selected,\n startAdornment,\n ]\n );\n const clonedEndAdornment = useMemo(\n () =>\n applyClassNameToElement(\n endAdornment,\n cx(\n classes.endAdornment,\n { [classes.disabled]: disabled },\n React.isValidElement(endAdornment)\n ? endAdornment.props.className\n : undefined\n )\n ),\n [cx, classes?.endAdornment, classes?.disabled, disabled, endAdornment]\n );\n\n const roleOptionAriaProps =\n role === \"option\" || role === \"menuitem\"\n ? {\n \"aria-disabled\": disabled || undefined,\n \"aria-selected\": selected,\n }\n : {};\n\n const listItem = (\n // For later: this should only have an onClick event if interactive and has the appropriate role.\n // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions\n <li\n id={id}\n ref={ref}\n role={role}\n value={value}\n className={cx(\n classes.root,\n {\n [classes.gutters]: !disableGutters,\n [classes.condensed]: condensed,\n [classes.interactive]: interactive,\n [classes.selected]: !!selected,\n [classes.disabled]: !!disabled,\n [classes.withStartAdornment]: startAdornment != null,\n [classes.withEndAdornment]: endAdornment != null,\n },\n className\n )}\n onClick={handleOnClick}\n onKeyDown={() => {}} // Needed because of jsx-a11yclick-events-have-key-events\n {...roleOptionAriaProps}\n {...others}\n >\n {clonedStartAdornment}\n {children}\n {clonedEndAdornment}\n </li>\n );\n\n return interactive ? (\n <HvFocus\n rootRef={topContainerRef}\n selected={selected}\n disabledClass={disabled || undefined}\n strategy={role === \"option\" ? \"listbox\" : \"menu\"}\n classes={{ focus: classes.focus }}\n configuration={{\n tabIndex,\n }}\n >\n {listItem}\n </HvFocus>\n ) : (\n listItem\n );\n});\n"],"names":["React"],"mappings":";;;;;;;AAyDA,MAAM,kCAAkC,CACtC,SACA,UACA,UACA,SACA,cACG;AACH,MAAI,WAAW,MAAM;AACZ,WAAAA,eAAM,aAAa,SAAS;AAAA,MACjC;AAAA,MACA,SAAS,CAAC,CAAC;AAAA,MACX;AAAA,MACA,UAAU,CAAC,QAAQ,UAAU,GAAG;AAAA,IAAA,CACjC;AAAA,EACH;AAEO,SAAA;AACT;AAEA,MAAM,0BAA0B,CAAC,SAAS,cAAc;AACtD,MAAI,WAAW,MAAM;AACZ,WAAAA,eAAM,aAAa,SAAS;AAAA,MACjC;AAAA,IAAA,CACD;AAAA,EACH;AAEO,SAAA;AACT;AAKO,MAAM,aAAa,WAAiC,CAAC,OAAO,QAAQ;AACnE,QAAA;AAAA,IACJ;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa;AAAA,IACb,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EAAA,IACD,gBAAgB,cAAc,KAAK;AAEvC,QAAM,EAAE,SAAS,GAAG,IAAI,WAAW,WAAW;AAExC,QAAA;AAAA,IACJ;AAAA,IACA,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,aAAa;AAAA,EAAA,IACX,WAAW,aAAa;AAEtB,QAAA,YAAY,iBAAiB,OAAO,gBAAgB;AACpD,QAAA,iBACJ,sBAAsB,OAAO,qBAAqB;AAC9C,QAAA,cACJ,mBAAmB,OAAO,kBAAkB;AAE9C,QAAM,gBAAgB;AAAA,IACpB,CAAC,QAAQ;AACP,UAAI,CAAC,UAAU;AACb,kBAAU,GAAG;AAAA,MACf;AAAA,IACF;AAAA,IACA,CAAC,UAAU,OAAO;AAAA,EAAA;AAGpB,QAAM,uBAAuB;AAAA,IAC3B,MACE;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,EAAE,CAAC,QAAQ,QAAQ,GAAG,SAAS;AAAA,QAC/BA,eAAM,eAAe,cAAc,IAC/B,eAAe,MAAM,YACrB;AAAA,MACN;AAAA,IACF;AAAA,IACF;AAAA,MACE;AAAA,MACA,SAAS;AAAA,MACT,SAAS;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EAAA;AAEF,QAAM,qBAAqB;AAAA,IACzB,MACE;AAAA,MACE;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,EAAE,CAAC,QAAQ,QAAQ,GAAG,SAAS;AAAA,QAC/BA,eAAM,eAAe,YAAY,IAC7B,aAAa,MAAM,YACnB;AAAA,MACN;AAAA,IACF;AAAA,IACF,CAAC,IAAI,SAAS,cAAc,SAAS,UAAU,UAAU,YAAY;AAAA,EAAA;AAGvE,QAAM,sBACJ,SAAS,YAAY,SAAS,aAC1B;AAAA,IACE,iBAAiB,YAAY;AAAA,IAC7B,iBAAiB;AAAA,MAEnB;AAEA,QAAA;AAAA;AAAA;AAAA,IAGJ;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,WAAW;AAAA,UACT,QAAQ;AAAA,UACR;AAAA,YACE,CAAC,QAAQ,OAAO,GAAG,CAAC;AAAA,YACpB,CAAC,QAAQ,SAAS,GAAG;AAAA,YACrB,CAAC,QAAQ,WAAW,GAAG;AAAA,YACvB,CAAC,QAAQ,QAAQ,GAAG,CAAC,CAAC;AAAA,YACtB,CAAC,QAAQ,QAAQ,GAAG,CAAC,CAAC;AAAA,YACtB,CAAC,QAAQ,kBAAkB,GAAG,kBAAkB;AAAA,YAChD,CAAC,QAAQ,gBAAgB,GAAG,gBAAgB;AAAA,UAC9C;AAAA,UACA;AAAA,QACF;AAAA,QACA,SAAS;AAAA,QACT,WAAW,MAAM;AAAA,QAAC;AAAA,QACjB,GAAG;AAAA,QACH,GAAG;AAAA,QAEH,UAAA;AAAA,UAAA;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,MAAA;AAAA,IACH;AAAA;AAGF,SAAO,cACL;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,SAAS;AAAA,MACT;AAAA,MACA,eAAe,YAAY;AAAA,MAC3B,UAAU,SAAS,WAAW,YAAY;AAAA,MAC1C,SAAS,EAAE,OAAO,QAAQ,MAAM;AAAA,MAChC,eAAe;AAAA,QACb;AAAA,MACF;AAAA,MAEC,UAAA;AAAA,IAAA;AAAA,EAGH,IAAA;AAEJ,CAAC;"}
1
+ {"version":3,"file":"ListItem.js","sources":["../../../../src/ListContainer/ListItem/ListItem.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useContext, useMemo } from \"react\";\n\nimport { HvBaseProps } from \"../../types/generic\";\nimport { useDefaultProps } from \"../../hooks/useDefaultProps\";\nimport { ExtractNames } from \"../../utils/classes\";\nimport { HvFocus } from \"../../Focus\";\n\nimport HvListContext from \"../ListContext\";\nimport { staticClasses, useClasses } from \"./ListItem.styles\";\n\nexport { staticClasses as listItemClasses };\n\nexport type HvListItemClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvListItemProps extends HvBaseProps<HTMLLIElement> {\n /** Indicates if the list item is selected. */\n selected?: boolean;\n /** If true, the list item will be disabled. */\n disabled?: boolean;\n /**\n * If the list item is focusable and reacts to mouse over events.\n * Defaults to true if the container list is interactive, false otherwise.\n */\n interactive?: boolean;\n /**\n * If `true` compacts the vertical spacing intended to separate the list items.\n * Defaults to the value set in container list.\n */\n condensed?: boolean;\n /**\n * If `true`, the left and right padding is removed.\n * Defaults to the value set in container list.\n */\n disableGutters?: boolean;\n /**\n * Element placed before the children.\n * Also removes the left padding (gutter).\n *\n * Some modifications are applied, assuming that it is either an icon (changing the color when the item is disabled)\n * or a selector (preventing the double focus ring, propagating the checked and disabled states and wiring the onChange event).\n * If unwanted, the element should be placed directly as a child.\n */\n startAdornment?: React.ReactNode;\n /**\n * Element placed after the children and aligned next to the margin.\n * Also removes the right padding (gutter).\n *\n * Some modifications are applied, assuming that it is an icon (changing the color when the item is disabled).\n * If unwanted, the element should be placed directly as a child.\n */\n endAdornment?: React.ReactNode;\n /** The value to be set on the 'li' element */\n value?: any;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvListItemClasses;\n}\n\nconst applyClassNameAndStateToElement = (\n element: any,\n selected: boolean | undefined,\n disabled: boolean | undefined,\n onClick: React.MouseEventHandler<HTMLLIElement>,\n className?: string\n) => {\n if (element == null) return null;\n\n return React.cloneElement(element, {\n className,\n checked: !!selected,\n disabled,\n onChange: onClick,\n });\n};\n\nconst applyClassNameToElement = (element, className?: string) => {\n if (element == null) return null;\n\n return React.cloneElement(element, {\n className,\n });\n};\n\n/**\n * ListItem description/documentation paragraph\n */\nexport const HvListItem = forwardRef<any, HvListItemProps>((props, ref) => {\n const {\n classes: classesProp,\n className,\n role,\n value,\n selected,\n disabled,\n interactive: interactiveProp,\n condensed: condensedProp,\n disableGutters: disableGuttersProp,\n startAdornment,\n endAdornment,\n onClick,\n children,\n tabIndex,\n ...others\n } = useDefaultProps(\"HvListItem\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n const {\n topContainerRef,\n condensed: condensedContext,\n disableGutters: disableGuttersContext,\n interactive: interactiveContext,\n } = useContext(HvListContext);\n\n const condensed = condensedProp ?? condensedContext;\n const disableGutters = disableGuttersProp ?? disableGuttersContext;\n const interactive = interactiveProp ?? interactiveContext;\n\n const handleClick = useCallback<React.MouseEventHandler<HTMLLIElement>>(\n (evt) => {\n if (disabled) return;\n onClick?.(evt);\n },\n [disabled, onClick]\n );\n\n const clonedStartAdornment = useMemo(\n () =>\n applyClassNameAndStateToElement(\n startAdornment,\n selected,\n disabled,\n handleClick,\n cx(\n classes.startAdornment,\n { [classes.disabled]: disabled },\n React.isValidElement(startAdornment)\n ? startAdornment.props.className\n : undefined\n )\n ),\n [\n cx,\n classes?.startAdornment,\n classes?.disabled,\n disabled,\n handleClick,\n selected,\n startAdornment,\n ]\n );\n const clonedEndAdornment = useMemo(\n () =>\n applyClassNameToElement(\n endAdornment,\n cx(\n classes.endAdornment,\n { [classes.disabled]: disabled },\n React.isValidElement(endAdornment)\n ? endAdornment.props.className\n : undefined\n )\n ),\n [cx, classes?.endAdornment, classes?.disabled, disabled, endAdornment]\n );\n\n const roleOptionAriaProps =\n role === \"option\" || role === \"menuitem\"\n ? {\n \"aria-disabled\": disabled || undefined,\n \"aria-selected\": selected,\n }\n : {};\n\n const listItem = (\n // For later: this should only have an onClick event if interactive and has the appropriate role.\n // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events\n <li\n ref={ref}\n role={role}\n value={value}\n className={cx(\n classes.root,\n {\n [classes.gutters]: !disableGutters,\n [classes.condensed]: condensed,\n [classes.interactive]: interactive,\n [classes.selected]: selected || props[\"aria-selected\"],\n [classes.disabled]: disabled || props[\"aria-disabled\"],\n [classes.withStartAdornment]: startAdornment != null,\n [classes.withEndAdornment]: endAdornment != null,\n },\n className\n )}\n tabIndex={interactive ? undefined : tabIndex}\n onClick={handleClick}\n {...roleOptionAriaProps}\n {...others}\n >\n {clonedStartAdornment}\n {children}\n {clonedEndAdornment}\n </li>\n );\n\n return interactive ? (\n <HvFocus\n rootRef={topContainerRef}\n selected={selected}\n disabledClass={disabled || undefined}\n strategy={role === \"option\" ? \"listbox\" : \"menu\"}\n classes={{ focus: classes.focus }}\n configuration={{\n tabIndex,\n }}\n >\n {listItem}\n </HvFocus>\n ) : (\n listItem\n );\n});\n"],"names":["React"],"mappings":";;;;;;;AAyDA,MAAM,kCAAkC,CACtC,SACA,UACA,UACA,SACA,cACG;AACH,MAAI,WAAW;AAAa,WAAA;AAErB,SAAAA,eAAM,aAAa,SAAS;AAAA,IACjC;AAAA,IACA,SAAS,CAAC,CAAC;AAAA,IACX;AAAA,IACA,UAAU;AAAA,EAAA,CACX;AACH;AAEA,MAAM,0BAA0B,CAAC,SAAS,cAAuB;AAC/D,MAAI,WAAW;AAAa,WAAA;AAErB,SAAAA,eAAM,aAAa,SAAS;AAAA,IACjC;AAAA,EAAA,CACD;AACH;AAKO,MAAM,aAAa,WAAiC,CAAC,OAAO,QAAQ;AACnE,QAAA;AAAA,IACJ,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa;AAAA,IACb,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EAAA,IACD,gBAAgB,cAAc,KAAK;AAEvC,QAAM,EAAE,SAAS,GAAG,IAAI,WAAW,WAAW;AAExC,QAAA;AAAA,IACJ;AAAA,IACA,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,aAAa;AAAA,EAAA,IACX,WAAW,aAAa;AAE5B,QAAM,YAAY,iBAAiB;AACnC,QAAM,iBAAiB,sBAAsB;AAC7C,QAAM,cAAc,mBAAmB;AAEvC,QAAM,cAAc;AAAA,IAClB,CAAC,QAAQ;AACH,UAAA;AAAU;AACd,gBAAU,GAAG;AAAA,IACf;AAAA,IACA,CAAC,UAAU,OAAO;AAAA,EAAA;AAGpB,QAAM,uBAAuB;AAAA,IAC3B,MACE;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,EAAE,CAAC,QAAQ,QAAQ,GAAG,SAAS;AAAA,QAC/BA,eAAM,eAAe,cAAc,IAC/B,eAAe,MAAM,YACrB;AAAA,MACN;AAAA,IACF;AAAA,IACF;AAAA,MACE;AAAA,MACA,SAAS;AAAA,MACT,SAAS;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EAAA;AAEF,QAAM,qBAAqB;AAAA,IACzB,MACE;AAAA,MACE;AAAA,MACA;AAAA,QACE,QAAQ;AAAA,QACR,EAAE,CAAC,QAAQ,QAAQ,GAAG,SAAS;AAAA,QAC/BA,eAAM,eAAe,YAAY,IAC7B,aAAa,MAAM,YACnB;AAAA,MACN;AAAA,IACF;AAAA,IACF,CAAC,IAAI,SAAS,cAAc,SAAS,UAAU,UAAU,YAAY;AAAA,EAAA;AAGvE,QAAM,sBACJ,SAAS,YAAY,SAAS,aAC1B;AAAA,IACE,iBAAiB,YAAY;AAAA,IAC7B,iBAAiB;AAAA,MAEnB;AAEA,QAAA;AAAA;AAAA;AAAA,IAGJ;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA,WAAW;AAAA,UACT,QAAQ;AAAA,UACR;AAAA,YACE,CAAC,QAAQ,OAAO,GAAG,CAAC;AAAA,YACpB,CAAC,QAAQ,SAAS,GAAG;AAAA,YACrB,CAAC,QAAQ,WAAW,GAAG;AAAA,YACvB,CAAC,QAAQ,QAAQ,GAAG,YAAY,MAAM,eAAe;AAAA,YACrD,CAAC,QAAQ,QAAQ,GAAG,YAAY,MAAM,eAAe;AAAA,YACrD,CAAC,QAAQ,kBAAkB,GAAG,kBAAkB;AAAA,YAChD,CAAC,QAAQ,gBAAgB,GAAG,gBAAgB;AAAA,UAC9C;AAAA,UACA;AAAA,QACF;AAAA,QACA,UAAU,cAAc,SAAY;AAAA,QACpC,SAAS;AAAA,QACR,GAAG;AAAA,QACH,GAAG;AAAA,QAEH,UAAA;AAAA,UAAA;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,MAAA;AAAA,IACH;AAAA;AAGF,SAAO,cACL;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,SAAS;AAAA,MACT;AAAA,MACA,eAAe,YAAY;AAAA,MAC3B,UAAU,SAAS,WAAW,YAAY;AAAA,MAC1C,SAAS,EAAE,OAAO,QAAQ,MAAM;AAAA,MAChC,eAAe;AAAA,QACb;AAAA,MACF;AAAA,MAEC,UAAA;AAAA,IAAA;AAAA,EAGH,IAAA;AAEJ,CAAC;"}
@@ -1,18 +1,20 @@
1
1
  import { jsx } from "@emotion/react/jsx-runtime";
2
+ import { forwardRef } from "react";
2
3
  import { useDefaultProps } from "../hooks/useDefaultProps.js";
3
4
  import { useClasses } from "./Panel.styles.js";
4
5
  import { staticClasses } from "./Panel.styles.js";
5
- const HvPanel = (props) => {
6
- const {
7
- id,
8
- className,
9
- classes: classesProp,
10
- children,
11
- ...others
12
- } = useDefaultProps("HvPanel", props);
13
- const { classes, cx } = useClasses(classesProp);
14
- return /* @__PURE__ */ jsx("div", { id, className: cx(classes.root, className), ...others, children });
15
- };
6
+ const HvPanel = forwardRef(
7
+ (props, ref) => {
8
+ const {
9
+ className,
10
+ classes: classesProp,
11
+ children,
12
+ ...others
13
+ } = useDefaultProps("HvPanel", props);
14
+ const { classes, cx } = useClasses(classesProp);
15
+ return /* @__PURE__ */ jsx("div", { ref, className: cx(classes.root, className), ...others, children });
16
+ }
17
+ );
16
18
  export {
17
19
  HvPanel,
18
20
  staticClasses as panelClasses
@@ -1 +1 @@
1
- {"version":3,"file":"Panel.js","sources":["../../../src/Panel/Panel.tsx"],"sourcesContent":["import { useDefaultProps } from \"../hooks/useDefaultProps\";\n\nimport { HvBaseProps } from \"../types/generic\";\n\nimport { ExtractNames } from \"../utils/classes\";\n\nimport { staticClasses, useClasses } from \"./Panel.styles\";\n\nexport { staticClasses as panelClasses };\n\nexport type HvPanelClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvPanelProps extends HvBaseProps {\n /** A Jss Object used to override or extend the styles applied. */\n classes?: HvPanelClasses;\n}\n\n/**\n * A panel is a container used in a variety of patterns (e.g. dropdown, filter group, details section).\n * It can be horizontal or vertical and its size is defined by its content and how it relates to surrounding patterns.\n * Regardless of its content, a panel look and feel should be consistent.\n */\nexport const HvPanel = (props: HvPanelProps) => {\n const {\n id,\n className,\n classes: classesProp,\n children,\n ...others\n } = useDefaultProps(\"HvPanel\", props);\n const { classes, cx } = useClasses(classesProp);\n\n return (\n <div id={id} className={cx(classes.root, className)} {...others}>\n {children}\n </div>\n );\n};\n"],"names":[],"mappings":";;;;AAsBa,MAAA,UAAU,CAAC,UAAwB;AACxC,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA,GAAG;AAAA,EAAA,IACD,gBAAgB,WAAW,KAAK;AACpC,QAAM,EAAE,SAAS,GAAG,IAAI,WAAW,WAAW;AAG5C,SAAA,oBAAC,OAAI,EAAA,IAAQ,WAAW,GAAG,QAAQ,MAAM,SAAS,GAAI,GAAG,QACtD,SACH,CAAA;AAEJ;"}
1
+ {"version":3,"file":"Panel.js","sources":["../../../src/Panel/Panel.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\n\nimport { useDefaultProps } from \"../hooks/useDefaultProps\";\n\nimport { HvBaseProps } from \"../types/generic\";\n\nimport { ExtractNames } from \"../utils/classes\";\n\nimport { staticClasses, useClasses } from \"./Panel.styles\";\n\nexport { staticClasses as panelClasses };\n\nexport type HvPanelClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvPanelProps extends HvBaseProps {\n /** A Jss Object used to override or extend the styles applied. */\n classes?: HvPanelClasses;\n}\n\n/**\n * A panel is a container used in a variety of patterns (e.g. dropdown, filter group, details section).\n * It can be horizontal or vertical and its size is defined by its content and how it relates to surrounding patterns.\n * Regardless of its content, a panel look and feel should be consistent.\n */\nexport const HvPanel = forwardRef<HTMLDivElement, HvPanelProps>(\n (props, ref) => {\n const {\n className,\n classes: classesProp,\n children,\n ...others\n } = useDefaultProps(\"HvPanel\", props);\n const { classes, cx } = useClasses(classesProp);\n\n return (\n <div ref={ref} className={cx(classes.root, className)} {...others}>\n {children}\n </div>\n );\n }\n);\n"],"names":[],"mappings":";;;;;AAwBO,MAAM,UAAU;AAAA,EACrB,CAAC,OAAO,QAAQ;AACR,UAAA;AAAA,MACJ;AAAA,MACA,SAAS;AAAA,MACT;AAAA,MACA,GAAG;AAAA,IAAA,IACD,gBAAgB,WAAW,KAAK;AACpC,UAAM,EAAE,SAAS,GAAG,IAAI,WAAW,WAAW;AAG5C,WAAA,oBAAC,OAAI,EAAA,KAAU,WAAW,GAAG,QAAQ,MAAM,SAAS,GAAI,GAAG,QACxD,SACH,CAAA;AAAA,EAEJ;AACF;"}
@@ -21,6 +21,7 @@ const HvSection = forwardRef(
21
21
  actions,
22
22
  onToggle,
23
23
  expandButtonProps,
24
+ raisedHeader,
24
25
  children,
25
26
  ...others
26
27
  } = useDefaultProps("HvSection", props);
@@ -40,31 +41,42 @@ const HvSection = forwardRef(
40
41
  className: cx(classes.root, className),
41
42
  ...others,
42
43
  children: [
43
- /* @__PURE__ */ jsxs("div", { className: classes.header, children: [
44
- expandable && /* @__PURE__ */ jsx(
45
- HvButton,
46
- {
47
- icon: true,
48
- onClick: (event) => {
49
- setIsOpen((o) => !o);
50
- onToggle?.(event, !isOpen);
51
- },
52
- "aria-expanded": isOpen,
53
- "aria-controls": contentId,
54
- "aria-label": isOpen ? "Collapse" : "Expand",
55
- ...expandButtonProps,
56
- children: isOpen ? /* @__PURE__ */ jsx(Up, {}) : /* @__PURE__ */ jsx(Down, {})
57
- }
58
- ),
59
- title,
60
- /* @__PURE__ */ jsx("div", { className: classes.actions, children: actions })
61
- ] }),
44
+ (title || actions || expandable) && /* @__PURE__ */ jsxs(
45
+ "div",
46
+ {
47
+ className: cx(classes.header, {
48
+ [classes.raisedHeader]: raisedHeader && isOpen
49
+ }),
50
+ children: [
51
+ expandable && /* @__PURE__ */ jsx(
52
+ HvButton,
53
+ {
54
+ icon: true,
55
+ onClick: (event) => {
56
+ setIsOpen((o) => !o);
57
+ onToggle?.(event, !isOpen);
58
+ },
59
+ "aria-expanded": isOpen,
60
+ "aria-controls": contentId,
61
+ "aria-label": isOpen ? "Collapse" : "Expand",
62
+ ...expandButtonProps,
63
+ children: isOpen ? /* @__PURE__ */ jsx(Up, {}) : /* @__PURE__ */ jsx(Down, {})
64
+ }
65
+ ),
66
+ title,
67
+ /* @__PURE__ */ jsx("div", { className: classes.actions, children: actions })
68
+ ]
69
+ }
70
+ ),
62
71
  /* @__PURE__ */ jsx(
63
72
  "div",
64
73
  {
65
74
  id: contentId,
66
75
  hidden: !isOpen,
67
- className: cx(classes.content, { [classes.hidden]: !showContent }),
76
+ className: cx(classes.content, {
77
+ [classes.hidden]: !showContent,
78
+ [classes.spaceTop]: !(title || actions || expandable)
79
+ }),
68
80
  children
69
81
  }
70
82
  )
@@ -1 +1 @@
1
- {"version":3,"file":"Section.js","sources":["../../../src/Section/Section.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport { Down, Up } from \"@hitachivantara/uikit-react-icons\";\n\nimport { HvBaseProps } from \"../types/generic\";\nimport { ExtractNames } from \"../utils/classes\";\nimport { HvButton, HvButtonProps } from \"../Button\";\nimport { useDefaultProps } from \"../hooks/useDefaultProps\";\nimport { useControlled } from \"../hooks/useControlled\";\nimport { useUniqueId } from \"../hooks/useUniqueId\";\nimport { setId } from \"../utils/setId\";\n\nimport { staticClasses, useClasses } from \"./Section.styles\";\n\nexport { staticClasses as sectionClasses };\n\nexport type HvSectionClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvSectionProps\n extends Omit<HvBaseProps<HTMLDivElement>, \"title\"> {\n /** The title of the section */\n title?: React.ReactNode;\n /** Whether or not the section is expandable. */\n expandable?: boolean;\n /** Whether the section is open or not, if this property is defined the accordion must be fully controlled. */\n expanded?: boolean;\n /** When uncontrolled, defines the initial expanded state. */\n defaultExpanded?: boolean;\n /** Section actions */\n actions?: React.ReactNode;\n /** Section onExpand callback */\n onToggle?: (\n event: React.MouseEvent<HTMLButtonElement>,\n open: boolean\n ) => void;\n /** Props to be passed to the expand button */\n expandButtonProps?: HvButtonProps;\n /** A Jss Object used to override or extend the styles applied to the empty state component. */\n classes?: HvSectionClasses;\n}\n\n/**\n * Sections allow grouping information on a page under the same topic.\n */\nexport const HvSection = forwardRef<HTMLDivElement, HvSectionProps>(\n (props, ref) => {\n const {\n id,\n classes: classesProp,\n className,\n title,\n expandable,\n expanded,\n defaultExpanded = true,\n actions,\n onToggle,\n expandButtonProps,\n children,\n ...others\n } = useDefaultProps(\"HvSection\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n const [isOpen, setIsOpen] = useControlled(\n expanded,\n Boolean(defaultExpanded)\n );\n\n const elementId = useUniqueId(id, \"hvSection\");\n const contentId = setId(elementId, \"content\");\n\n const showContent = expandable ? !!isOpen : true;\n\n return (\n <div\n ref={ref}\n id={elementId}\n className={cx(classes.root, className)}\n {...others}\n >\n <div className={classes.header}>\n {expandable && (\n <HvButton\n icon\n onClick={(event) => {\n setIsOpen((o) => !o);\n onToggle?.(event, !isOpen);\n }}\n aria-expanded={isOpen}\n aria-controls={contentId}\n aria-label={isOpen ? \"Collapse\" : \"Expand\"}\n {...expandButtonProps}\n >\n {isOpen ? <Up /> : <Down />}\n </HvButton>\n )}\n {title}\n <div className={classes.actions}>{actions}</div>\n </div>\n <div\n id={contentId}\n hidden={!isOpen}\n className={cx(classes.content, { [classes.hidden]: !showContent })}\n >\n {children}\n </div>\n </div>\n );\n }\n);\n"],"names":[],"mappings":";;;;;;;;;;AA2CO,MAAM,YAAY;AAAA,EACvB,CAAC,OAAO,QAAQ;AACR,UAAA;AAAA,MACJ;AAAA,MACA,SAAS;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,kBAAkB;AAAA,MAClB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IAAA,IACD,gBAAgB,aAAa,KAAK;AAEtC,UAAM,EAAE,SAAS,GAAG,IAAI,WAAW,WAAW;AAExC,UAAA,CAAC,QAAQ,SAAS,IAAI;AAAA,MAC1B;AAAA,MACA,QAAQ,eAAe;AAAA,IAAA;AAGnB,UAAA,YAAY,YAAY,IAAI,WAAW;AACvC,UAAA,YAAY,MAAM,WAAW,SAAS;AAE5C,UAAM,cAAc,aAAa,CAAC,CAAC,SAAS;AAG1C,WAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,IAAI;AAAA,QACJ,WAAW,GAAG,QAAQ,MAAM,SAAS;AAAA,QACpC,GAAG;AAAA,QAEJ,UAAA;AAAA,UAAC,qBAAA,OAAA,EAAI,WAAW,QAAQ,QACrB,UAAA;AAAA,YACC,cAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAI;AAAA,gBACJ,SAAS,CAAC,UAAU;AACR,4BAAA,CAAC,MAAM,CAAC,CAAC;AACR,6BAAA,OAAO,CAAC,MAAM;AAAA,gBAC3B;AAAA,gBACA,iBAAe;AAAA,gBACf,iBAAe;AAAA,gBACf,cAAY,SAAS,aAAa;AAAA,gBACjC,GAAG;AAAA,gBAEH,UAAS,SAAA,oBAAC,IAAG,CAAA,CAAA,wBAAM,MAAK,EAAA;AAAA,cAAA;AAAA,YAC3B;AAAA,YAED;AAAA,YACA,oBAAA,OAAA,EAAI,WAAW,QAAQ,SAAU,UAAQ,SAAA;AAAA,UAAA,GAC5C;AAAA,UACA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,IAAI;AAAA,cACJ,QAAQ,CAAC;AAAA,cACT,WAAW,GAAG,QAAQ,SAAS,EAAE,CAAC,QAAQ,MAAM,GAAG,CAAC,aAAa;AAAA,cAEhE;AAAA,YAAA;AAAA,UACH;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;"}
1
+ {"version":3,"file":"Section.js","sources":["../../../src/Section/Section.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport { Down, Up } from \"@hitachivantara/uikit-react-icons\";\n\nimport { HvBaseProps } from \"../types/generic\";\nimport { ExtractNames } from \"../utils/classes\";\nimport { HvButton, HvButtonProps } from \"../Button\";\nimport { useDefaultProps } from \"../hooks/useDefaultProps\";\nimport { useControlled } from \"../hooks/useControlled\";\nimport { useUniqueId } from \"../hooks/useUniqueId\";\nimport { setId } from \"../utils/setId\";\n\nimport { staticClasses, useClasses } from \"./Section.styles\";\n\nexport { staticClasses as sectionClasses };\n\nexport type HvSectionClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvSectionProps\n extends Omit<HvBaseProps<HTMLDivElement>, \"title\"> {\n /** The title of the section */\n title?: React.ReactNode;\n /** Whether or not the section is expandable. */\n expandable?: boolean;\n /** Whether the section is open or not, if this property is defined the accordion must be fully controlled. */\n expanded?: boolean;\n /** When uncontrolled, defines the initial expanded state. */\n defaultExpanded?: boolean;\n /** Section actions */\n actions?: React.ReactNode;\n /** Section onExpand callback */\n onToggle?: (\n event: React.MouseEvent<HTMLButtonElement>,\n open: boolean\n ) => void;\n /** Props to be passed to the expand button */\n expandButtonProps?: HvButtonProps;\n /** Determines whether or not the header has a shadow on the bottom border. */\n raisedHeader?: boolean;\n /** A Jss Object used to override or extend the styles applied to the empty state component. */\n classes?: HvSectionClasses;\n}\n\n/**\n * Sections allow grouping information on a page under the same topic.\n */\nexport const HvSection = forwardRef<HTMLDivElement, HvSectionProps>(\n (props, ref) => {\n const {\n id,\n classes: classesProp,\n className,\n title,\n expandable,\n expanded,\n defaultExpanded = true,\n actions,\n onToggle,\n expandButtonProps,\n raisedHeader,\n children,\n ...others\n } = useDefaultProps(\"HvSection\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n const [isOpen, setIsOpen] = useControlled(\n expanded,\n Boolean(defaultExpanded)\n );\n\n const elementId = useUniqueId(id, \"hvSection\");\n const contentId = setId(elementId, \"content\");\n\n const showContent = expandable ? !!isOpen : true;\n\n return (\n <div\n ref={ref}\n id={elementId}\n className={cx(classes.root, className)}\n {...others}\n >\n {(title || actions || expandable) && (\n <div\n className={cx(classes.header, {\n [classes.raisedHeader]: raisedHeader && isOpen,\n })}\n >\n {expandable && (\n <HvButton\n icon\n onClick={(event) => {\n setIsOpen((o) => !o);\n onToggle?.(event, !isOpen);\n }}\n aria-expanded={isOpen}\n aria-controls={contentId}\n aria-label={isOpen ? \"Collapse\" : \"Expand\"}\n {...expandButtonProps}\n >\n {isOpen ? <Up /> : <Down />}\n </HvButton>\n )}\n {title}\n <div className={classes.actions}>{actions}</div>\n </div>\n )}\n <div\n id={contentId}\n hidden={!isOpen}\n className={cx(classes.content, {\n [classes.hidden]: !showContent,\n [classes.spaceTop]: !(title || actions || expandable),\n })}\n >\n {children}\n </div>\n </div>\n );\n }\n);\n"],"names":[],"mappings":";;;;;;;;;;AA6CO,MAAM,YAAY;AAAA,EACvB,CAAC,OAAO,QAAQ;AACR,UAAA;AAAA,MACJ;AAAA,MACA,SAAS;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,kBAAkB;AAAA,MAClB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IAAA,IACD,gBAAgB,aAAa,KAAK;AAEtC,UAAM,EAAE,SAAS,GAAG,IAAI,WAAW,WAAW;AAExC,UAAA,CAAC,QAAQ,SAAS,IAAI;AAAA,MAC1B;AAAA,MACA,QAAQ,eAAe;AAAA,IAAA;AAGnB,UAAA,YAAY,YAAY,IAAI,WAAW;AACvC,UAAA,YAAY,MAAM,WAAW,SAAS;AAE5C,UAAM,cAAc,aAAa,CAAC,CAAC,SAAS;AAG1C,WAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,IAAI;AAAA,QACJ,WAAW,GAAG,QAAQ,MAAM,SAAS;AAAA,QACpC,GAAG;AAAA,QAEF,UAAA;AAAA,WAAA,SAAS,WAAW,eACpB;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW,GAAG,QAAQ,QAAQ;AAAA,gBAC5B,CAAC,QAAQ,YAAY,GAAG,gBAAgB;AAAA,cAAA,CACzC;AAAA,cAEA,UAAA;AAAA,gBACC,cAAA;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,MAAI;AAAA,oBACJ,SAAS,CAAC,UAAU;AACR,gCAAA,CAAC,MAAM,CAAC,CAAC;AACR,iCAAA,OAAO,CAAC,MAAM;AAAA,oBAC3B;AAAA,oBACA,iBAAe;AAAA,oBACf,iBAAe;AAAA,oBACf,cAAY,SAAS,aAAa;AAAA,oBACjC,GAAG;AAAA,oBAEH,UAAS,SAAA,oBAAC,IAAG,CAAA,CAAA,wBAAM,MAAK,EAAA;AAAA,kBAAA;AAAA,gBAC3B;AAAA,gBAED;AAAA,gBACA,oBAAA,OAAA,EAAI,WAAW,QAAQ,SAAU,UAAQ,SAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UAC5C;AAAA,UAEF;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,IAAI;AAAA,cACJ,QAAQ,CAAC;AAAA,cACT,WAAW,GAAG,QAAQ,SAAS;AAAA,gBAC7B,CAAC,QAAQ,MAAM,GAAG,CAAC;AAAA,gBACnB,CAAC,QAAQ,QAAQ,GAAG,EAAE,SAAS,WAAW;AAAA,cAAA,CAC3C;AAAA,cAEA;AAAA,YAAA;AAAA,UACH;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;"}
@@ -5,7 +5,6 @@ const { staticClasses, useClasses } = createClasses("HvSection", {
5
5
  width: "100%",
6
6
  display: "flex",
7
7
  flexDirection: "column",
8
- padding: theme.space.sm,
9
8
  backgroundColor: theme.colors.atmo1,
10
9
  borderRadius: theme.radii.round,
11
10
  border: `1px solid ${theme.colors.atmo4}`
@@ -15,16 +14,27 @@ const { staticClasses, useClasses } = createClasses("HvSection", {
15
14
  display: "flex",
16
15
  alignItems: "center",
17
16
  position: "relative",
18
- minHeight: theme.sizes.sm
17
+ minHeight: theme.sizes.sm,
18
+ padding: theme.space.sm
19
19
  },
20
20
  content: {
21
- marginTop: theme.space.sm
21
+ padding: theme.spacing(0, "sm", "sm", "sm")
22
+ },
23
+ spaceTop: {
24
+ paddingTop: theme.space.sm
22
25
  },
23
26
  actions: {
24
27
  display: "flex",
25
28
  gap: theme.space.xs,
26
29
  position: "absolute",
27
30
  right: 0
31
+ },
32
+ raisedHeader: {
33
+ zIndex: 1,
34
+ boxShadow: theme.colors.shadow,
35
+ "+ div": {
36
+ paddingTop: theme.space.sm
37
+ }
28
38
  }
29
39
  });
30
40
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"Section.styles.js","sources":["../../../src/Section/Section.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"../utils/classes\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvSection\", {\n root: {\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n padding: theme.space.sm,\n backgroundColor: theme.colors.atmo1,\n borderRadius: theme.radii.round,\n border: `1px solid ${theme.colors.atmo4}`,\n },\n hidden: { height: 0, display: \"none\" },\n header: {\n display: \"flex\",\n alignItems: \"center\",\n position: \"relative\",\n minHeight: theme.sizes.sm,\n },\n content: {\n marginTop: theme.space.sm,\n },\n actions: {\n display: \"flex\",\n gap: theme.space.xs,\n position: \"absolute\",\n right: 0,\n },\n});\n"],"names":[],"mappings":";;AAIO,MAAM,EAAE,eAAe,eAAe,cAAc,aAAa;AAAA,EACtE,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,SAAS;AAAA,IACT,eAAe;AAAA,IACf,SAAS,MAAM,MAAM;AAAA,IACrB,iBAAiB,MAAM,OAAO;AAAA,IAC9B,cAAc,MAAM,MAAM;AAAA,IAC1B,QAAQ,aAAa,MAAM,OAAO,KAAK;AAAA,EACzC;AAAA,EACA,QAAQ,EAAE,QAAQ,GAAG,SAAS,OAAO;AAAA,EACrC,QAAQ;AAAA,IACN,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,WAAW,MAAM,MAAM;AAAA,EACzB;AAAA,EACA,SAAS;AAAA,IACP,WAAW,MAAM,MAAM;AAAA,EACzB;AAAA,EACA,SAAS;AAAA,IACP,SAAS;AAAA,IACT,KAAK,MAAM,MAAM;AAAA,IACjB,UAAU;AAAA,IACV,OAAO;AAAA,EACT;AACF,CAAC;"}
1
+ {"version":3,"file":"Section.styles.js","sources":["../../../src/Section/Section.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { createClasses } from \"../utils/classes\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvSection\", {\n root: {\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n backgroundColor: theme.colors.atmo1,\n borderRadius: theme.radii.round,\n border: `1px solid ${theme.colors.atmo4}`,\n },\n hidden: { height: 0, display: \"none\" },\n header: {\n display: \"flex\",\n alignItems: \"center\",\n position: \"relative\",\n minHeight: theme.sizes.sm,\n padding: theme.space.sm,\n },\n content: {\n padding: theme.spacing(0, \"sm\", \"sm\", \"sm\"),\n },\n spaceTop: {\n paddingTop: theme.space.sm,\n },\n actions: {\n display: \"flex\",\n gap: theme.space.xs,\n position: \"absolute\",\n right: 0,\n },\n raisedHeader: {\n zIndex: 1,\n boxShadow: theme.colors.shadow,\n \"+ div\": {\n paddingTop: theme.space.sm,\n },\n },\n});\n"],"names":[],"mappings":";;AAIO,MAAM,EAAE,eAAe,eAAe,cAAc,aAAa;AAAA,EACtE,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,SAAS;AAAA,IACT,eAAe;AAAA,IACf,iBAAiB,MAAM,OAAO;AAAA,IAC9B,cAAc,MAAM,MAAM;AAAA,IAC1B,QAAQ,aAAa,MAAM,OAAO,KAAK;AAAA,EACzC;AAAA,EACA,QAAQ,EAAE,QAAQ,GAAG,SAAS,OAAO;AAAA,EACrC,QAAQ;AAAA,IACN,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,WAAW,MAAM,MAAM;AAAA,IACvB,SAAS,MAAM,MAAM;AAAA,EACvB;AAAA,EACA,SAAS;AAAA,IACP,SAAS,MAAM,QAAQ,GAAG,MAAM,MAAM,IAAI;AAAA,EAC5C;AAAA,EACA,UAAU;AAAA,IACR,YAAY,MAAM,MAAM;AAAA,EAC1B;AAAA,EACA,SAAS;AAAA,IACP,SAAS;AAAA,IACT,KAAK,MAAM,MAAM;AAAA,IACjB,UAAU;AAAA,IACV,OAAO;AAAA,EACT;AAAA,EACA,cAAc;AAAA,IACZ,QAAQ;AAAA,IACR,WAAW,MAAM,OAAO;AAAA,IACxB,SAAS;AAAA,MACP,YAAY,MAAM,MAAM;AAAA,IAC1B;AAAA,EACF;AACF,CAAC;"}
@@ -0,0 +1,25 @@
1
+ import { jsx } from "@emotion/react/jsx-runtime";
2
+ import { forwardRef } from "react";
3
+ import { useDefaultProps } from "../hooks/useDefaultProps.js";
4
+ import { useUniqueId } from "../hooks/useUniqueId.js";
5
+ import { useClasses } from "./TableSection.styles.js";
6
+ import { staticClasses } from "./TableSection.styles.js";
7
+ import { HvSection } from "../Section/Section.js";
8
+ const HvTableSection = forwardRef(
9
+ (props, ref) => {
10
+ const {
11
+ id,
12
+ classes: classesProp,
13
+ children,
14
+ ...others
15
+ } = useDefaultProps("HvTableSection", props);
16
+ const { classes } = useClasses(classesProp);
17
+ const elementId = useUniqueId(id, "hvTableSection");
18
+ return /* @__PURE__ */ jsx(HvSection, { id: elementId, ref, classes, ...others, children });
19
+ }
20
+ );
21
+ export {
22
+ HvTableSection,
23
+ staticClasses as tableSectionClasses
24
+ };
25
+ //# sourceMappingURL=TableSection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableSection.js","sources":["../../../src/TableSection/TableSection.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\n\nimport { ExtractNames } from \"../utils/classes\";\nimport { useDefaultProps } from \"../hooks/useDefaultProps\";\nimport { useUniqueId } from \"../hooks/useUniqueId\";\nimport { staticClasses, useClasses } from \"./TableSection.styles\";\nimport { HvSection, HvSectionProps } from \"../Section\";\n\nexport { staticClasses as tableSectionClasses };\n\nexport type HvTableSectionClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvTableSectionProps extends HvSectionProps {}\n\n/**\n * The `TableSection` component is a wrapper for the `Section` component that applies\n * specific stylings for tables that follow the latest DS specifications.\n */\nexport const HvTableSection = forwardRef<HTMLDivElement, HvTableSectionProps>(\n (props, ref) => {\n const {\n id,\n classes: classesProp,\n children,\n ...others\n } = useDefaultProps(\"HvTableSection\", props);\n\n const { classes } = useClasses(classesProp);\n const elementId = useUniqueId(id, \"hvTableSection\");\n\n return (\n <HvSection id={elementId} ref={ref} classes={classes} {...others}>\n {children}\n </HvSection>\n );\n }\n);\n"],"names":[],"mappings":";;;;;;;AAkBO,MAAM,iBAAiB;AAAA,EAC5B,CAAC,OAAO,QAAQ;AACR,UAAA;AAAA,MACJ;AAAA,MACA,SAAS;AAAA,MACT;AAAA,MACA,GAAG;AAAA,IAAA,IACD,gBAAgB,kBAAkB,KAAK;AAE3C,UAAM,EAAE,QAAA,IAAY,WAAW,WAAW;AACpC,UAAA,YAAY,YAAY,IAAI,gBAAgB;AAGhD,WAAA,oBAAC,aAAU,IAAI,WAAW,KAAU,SAAmB,GAAG,QACvD,SACH,CAAA;AAAA,EAEJ;AACF;"}
@@ -0,0 +1,81 @@
1
+ import { theme } from "@hitachivantara/uikit-styles";
2
+ import { createClasses } from "../utils/classes.js";
3
+ import { staticClasses as staticClasses$1 } from "../Section/Section.styles.js";
4
+ import "../Section/Section.js";
5
+ import { staticClasses as staticClasses$2 } from "../Table/TableContainer/TableContainer.styles.js";
6
+ import "../Table/TableContainer/TableContainer.js";
7
+ import { staticClasses as staticClasses$3 } from "../Table/TableHeader/TableHeader.styles.js";
8
+ import "../Table/TableHeader/TableHeader.js";
9
+ import { staticClasses as staticClasses$4 } from "../Table/TableCell/TableCell.styles.js";
10
+ import "../Table/TableCell/TableCell.js";
11
+ import { staticClasses as staticClasses$5 } from "../BulkActions/BulkActions.styles.js";
12
+ import "@emotion/react/jsx-runtime";
13
+ import { staticClasses as staticClasses$6 } from "../Pagination/Pagination.styles.js";
14
+ import "react";
15
+ import "@mui/material/Hidden";
16
+ import "@hitachivantara/uikit-react-icons";
17
+ const { staticClasses, useClasses } = createClasses("HvTableSection", {
18
+ root: {
19
+ padding: 0
20
+ },
21
+ header: {
22
+ padding: theme.spacing("xs", "xs", "xs", "sm"),
23
+ borderBottom: `1px solid ${theme.colors.atmo3}`,
24
+ [`&.${staticClasses$1.raisedHeader}`]: {
25
+ "+ div": {
26
+ paddingTop: `0`
27
+ }
28
+ }
29
+ },
30
+ actions: {
31
+ right: theme.space.sm
32
+ },
33
+ content: {
34
+ marginTop: 0,
35
+ padding: 0,
36
+ [`&&`]: {
37
+ paddingTop: 0
38
+ },
39
+ [`& .${staticClasses$2.root}`]: {
40
+ paddingBottom: 0,
41
+ borderRadius: `${theme.radii.round} ${theme.radii.round} 0 0`
42
+ },
43
+ [`& .${staticClasses$3.head}`]: {
44
+ backgroundColor: theme.colors.atmo2,
45
+ borderBottomColor: theme.colors.atmo3,
46
+ [`&.${staticClasses$3.variantCheckbox}`]: {
47
+ borderRight: "none"
48
+ }
49
+ },
50
+ [`& .${staticClasses$4.root}`]: {
51
+ borderBottomColor: theme.colors.atmo3
52
+ },
53
+ [`& .${staticClasses$4.variantCheckbox}`]: {
54
+ borderRight: "none"
55
+ },
56
+ [`& .${staticClasses$5.root}`]: {
57
+ marginBottom: 0,
58
+ border: "none",
59
+ borderBottom: `1px solid ${theme.colors.atmo3}`,
60
+ padding: theme.spacing("xs", "sm"),
61
+ borderRadius: `${theme.radii.round} ${theme.radii.round} 0 0`
62
+ },
63
+ [`& .${staticClasses$6.root}`]: {
64
+ margin: 0,
65
+ backgroundColor: theme.colors.atmo2,
66
+ padding: theme.space.xs,
67
+ borderRadius: `0 0 ${theme.radii.round} ${theme.radii.round}`
68
+ },
69
+ [`& .${staticClasses$6.pageSizeOptions}`]: {
70
+ left: theme.space.sm
71
+ }
72
+ },
73
+ hidden: {},
74
+ raisedHeader: {},
75
+ spaceTop: {}
76
+ });
77
+ export {
78
+ staticClasses,
79
+ useClasses
80
+ };
81
+ //# sourceMappingURL=TableSection.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableSection.styles.js","sources":["../../../src/TableSection/TableSection.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\n\nimport { bulkActionsClasses } from \"../BulkActions\";\nimport { paginationClasses } from \"../Pagination\";\nimport { sectionClasses } from \"../Section\";\n\nimport { tableCellClasses } from \"../Table/TableCell\";\nimport { tableContainerClasses } from \"../Table/TableContainer\";\nimport { tableHeaderClasses } from \"../Table/TableHeader\";\n\nimport { createClasses } from \"../utils/classes\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvTableSection\", {\n root: {\n padding: 0,\n },\n header: {\n padding: theme.spacing(\"xs\", \"xs\", \"xs\", \"sm\"),\n borderBottom: `1px solid ${theme.colors.atmo3}`,\n [`&.${sectionClasses.raisedHeader}`]: {\n \"+ div\": {\n paddingTop: `0`,\n },\n },\n },\n actions: {\n right: theme.space.sm,\n },\n content: {\n marginTop: 0,\n padding: 0,\n [`&&`]: {\n paddingTop: 0,\n },\n [`& .${tableContainerClasses.root}`]: {\n paddingBottom: 0,\n borderRadius: `${theme.radii.round} ${theme.radii.round} 0 0`,\n },\n [`& .${tableHeaderClasses.head}`]: {\n backgroundColor: theme.colors.atmo2,\n borderBottomColor: theme.colors.atmo3,\n [`&.${tableHeaderClasses.variantCheckbox}`]: {\n borderRight: \"none\",\n },\n },\n [`& .${tableCellClasses.root}`]: {\n borderBottomColor: theme.colors.atmo3,\n },\n [`& .${tableCellClasses.variantCheckbox}`]: {\n borderRight: \"none\",\n },\n [`& .${bulkActionsClasses.root}`]: {\n marginBottom: 0,\n border: \"none\",\n borderBottom: `1px solid ${theme.colors.atmo3}`,\n padding: theme.spacing(\"xs\", \"sm\"),\n borderRadius: `${theme.radii.round} ${theme.radii.round} 0 0`,\n },\n [`& .${paginationClasses.root}`]: {\n margin: 0,\n backgroundColor: theme.colors.atmo2,\n padding: theme.space.xs,\n borderRadius: `0 0 ${theme.radii.round} ${theme.radii.round}`,\n },\n [`& .${paginationClasses.pageSizeOptions}`]: {\n left: theme.space.sm,\n },\n },\n hidden: {},\n raisedHeader: {},\n spaceTop: {},\n});\n"],"names":["sectionClasses","tableContainerClasses","tableHeaderClasses","tableCellClasses","bulkActionsClasses","paginationClasses"],"mappings":";;;;;;;;;;;;;;;;AAYO,MAAM,EAAE,eAAe,eAAe,cAAc,kBAAkB;AAAA,EAC3E,MAAM;AAAA,IACJ,SAAS;AAAA,EACX;AAAA,EACA,QAAQ;AAAA,IACN,SAAS,MAAM,QAAQ,MAAM,MAAM,MAAM,IAAI;AAAA,IAC7C,cAAc,aAAa,MAAM,OAAO,KAAK;AAAA,IAC7C,CAAC,KAAKA,gBAAe,YAAY,EAAE,GAAG;AAAA,MACpC,SAAS;AAAA,QACP,YAAY;AAAA,MACd;AAAA,IACF;AAAA,EACF;AAAA,EACA,SAAS;AAAA,IACP,OAAO,MAAM,MAAM;AAAA,EACrB;AAAA,EACA,SAAS;AAAA,IACP,WAAW;AAAA,IACX,SAAS;AAAA,IACT,CAAC,IAAI,GAAG;AAAA,MACN,YAAY;AAAA,IACd;AAAA,IACA,CAAC,MAAMC,gBAAsB,IAAI,EAAE,GAAG;AAAA,MACpC,eAAe;AAAA,MACf,cAAc,GAAG,MAAM,MAAM,KAAK,IAAI,MAAM,MAAM,KAAK;AAAA,IACzD;AAAA,IACA,CAAC,MAAMC,gBAAmB,IAAI,EAAE,GAAG;AAAA,MACjC,iBAAiB,MAAM,OAAO;AAAA,MAC9B,mBAAmB,MAAM,OAAO;AAAA,MAChC,CAAC,KAAKA,gBAAmB,eAAe,EAAE,GAAG;AAAA,QAC3C,aAAa;AAAA,MACf;AAAA,IACF;AAAA,IACA,CAAC,MAAMC,gBAAiB,IAAI,EAAE,GAAG;AAAA,MAC/B,mBAAmB,MAAM,OAAO;AAAA,IAClC;AAAA,IACA,CAAC,MAAMA,gBAAiB,eAAe,EAAE,GAAG;AAAA,MAC1C,aAAa;AAAA,IACf;AAAA,IACA,CAAC,MAAMC,gBAAmB,IAAI,EAAE,GAAG;AAAA,MACjC,cAAc;AAAA,MACd,QAAQ;AAAA,MACR,cAAc,aAAa,MAAM,OAAO,KAAK;AAAA,MAC7C,SAAS,MAAM,QAAQ,MAAM,IAAI;AAAA,MACjC,cAAc,GAAG,MAAM,MAAM,KAAK,IAAI,MAAM,MAAM,KAAK;AAAA,IACzD;AAAA,IACA,CAAC,MAAMC,gBAAkB,IAAI,EAAE,GAAG;AAAA,MAChC,QAAQ;AAAA,MACR,iBAAiB,MAAM,OAAO;AAAA,MAC9B,SAAS,MAAM,MAAM;AAAA,MACrB,cAAc,OAAO,MAAM,MAAM,KAAK,IAAI,MAAM,MAAM,KAAK;AAAA,IAC7D;AAAA,IACA,CAAC,MAAMA,gBAAkB,eAAe,EAAE,GAAG;AAAA,MAC3C,MAAM,MAAM,MAAM;AAAA,IACpB;AAAA,EACF;AAAA,EACA,QAAQ,CAAC;AAAA,EACT,cAAc,CAAC;AAAA,EACf,UAAU,CAAC;AACb,CAAC;"}
package/dist/esm/index.js CHANGED
@@ -300,6 +300,8 @@ import { HvVerticalNavigationTreeView } from "./VerticalNavigation/TreeView/Tree
300
300
  import { staticClasses as staticClasses116 } from "./VerticalNavigation/TreeView/TreeViewItem.styles.js";
301
301
  import { HvVerticalNavigationTreeViewItem } from "./VerticalNavigation/TreeView/TreeViewItem.js";
302
302
  import { VerticalNavigationContext } from "./VerticalNavigation/VerticalNavigationContext.js";
303
+ import { staticClasses as staticClasses117 } from "./TableSection/TableSection.styles.js";
304
+ import { HvTableSection } from "./TableSection/TableSection.js";
303
305
  import { EmotionContext, HvThemeContext, defaultCacheKey, defaultEmotionCache } from "@hitachivantara/uikit-react-shared";
304
306
  export {
305
307
  CellWithCheckBox,
@@ -421,6 +423,7 @@ export {
421
423
  HvTableHead,
422
424
  HvTableHeader,
423
425
  HvTableRow,
426
+ HvTableSection,
424
427
  HvTabs,
425
428
  HvTag,
426
429
  HvTagsInput,
@@ -608,6 +611,7 @@ export {
608
611
  staticClasses96 as tableHeadClasses,
609
612
  staticClasses97 as tableHeaderClasses,
610
613
  staticClasses98 as tableRowClasses,
614
+ staticClasses117 as tableSectionClasses,
611
615
  staticClasses100 as tabsClasses,
612
616
  staticClasses101 as tagClasses,
613
617
  staticClasses102 as tagsInputClasses,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -4662,7 +4662,7 @@ export declare interface HvPaginationProps extends HvBaseProps {
4662
4662
  * It can be horizontal or vertical and its size is defined by its content and how it relates to surrounding patterns.
4663
4663
  * Regardless of its content, a panel look and feel should be consistent.
4664
4664
  */
4665
- export declare const HvPanel: (props: HvPanelProps) => JSX_2.Element;
4665
+ export declare const HvPanel: ForwardRefExoticComponent<HvPanelProps & RefAttributes<HTMLDivElement>>;
4666
4666
 
4667
4667
  export declare type HvPanelClasses = ExtractNames<typeof useClasses_87>;
4668
4668
 
@@ -5503,6 +5503,8 @@ export declare interface HvSectionProps extends Omit<HvBaseProps<HTMLDivElement>
5503
5503
  onToggle?: (event: React.MouseEvent<HTMLButtonElement>, open: boolean) => void;
5504
5504
  /** Props to be passed to the expand button */
5505
5505
  expandButtonProps?: HvButtonProps;
5506
+ /** Determines whether or not the header has a shadow on the bottom border. */
5507
+ raisedHeader?: boolean;
5506
5508
  /** A Jss Object used to override or extend the styles applied to the empty state component. */
5507
5509
  classes?: HvSectionClasses;
5508
5510
  }
@@ -6322,6 +6324,17 @@ export declare interface HvTableRowProps extends HvBaseProps<HTMLTableRowElement
6322
6324
  classes?: HvTableRowClasses;
6323
6325
  }
6324
6326
 
6327
+ /**
6328
+ * The `TableSection` component is a wrapper for the `Section` component that applies
6329
+ * specific stylings for tables that follow the latest DS specifications.
6330
+ */
6331
+ export declare const HvTableSection: ForwardRefExoticComponent<HvTableSectionProps & RefAttributes<HTMLDivElement>>;
6332
+
6333
+ export declare type HvTableSectionClasses = ExtractNames<typeof useClasses_124>;
6334
+
6335
+ export declare interface HvTableSectionProps extends HvSectionProps {
6336
+ }
6337
+
6325
6338
  export declare interface HvTableState<D extends object = Record<string, unknown>> extends TableState<D>, Partial<UseColumnOrderState<D>>, Partial<UseExpandedState<D>>, Partial<UseFiltersState<D>>, Partial<UseGlobalFiltersState<D>>, Partial<UseGroupByState<D>>, Partial<UsePaginationState<D>>, Partial<UseResizeColumnsState<D>>, Partial<UseSortByState<D>>, Partial<UseRowStateState<D>>, Partial<UseHvRowSelectionState<D>> {
6326
6339
  rowCount: number;
6327
6340
  }
@@ -7804,6 +7817,8 @@ export declare const sectionClasses: {
7804
7817
  root: "HvSection-root";
7805
7818
  hidden: "HvSection-hidden";
7806
7819
  actions: "HvSection-actions";
7820
+ spaceTop: "HvSection-spaceTop";
7821
+ raisedHeader: "HvSection-raisedHeader";
7807
7822
  };
7808
7823
 
7809
7824
  export declare const selectionListClasses: {
@@ -8012,6 +8027,16 @@ export declare const tableRowClasses: {
8012
8027
  variantListHead: "HvTableRow-variantListHead";
8013
8028
  };
8014
8029
 
8030
+ export declare const tableSectionClasses: {
8031
+ content: "HvTableSection-content";
8032
+ header: "HvTableSection-header";
8033
+ root: "HvTableSection-root";
8034
+ hidden: "HvTableSection-hidden";
8035
+ actions: "HvTableSection-actions";
8036
+ spaceTop: "HvTableSection-spaceTop";
8037
+ raisedHeader: "HvTableSection-raisedHeader";
8038
+ };
8039
+
8015
8040
  export declare const tabsClasses: {
8016
8041
  root: "HvTabs-root";
8017
8042
  indicator: "HvTabs-indicator";
@@ -8697,6 +8722,23 @@ declare const useClasses_123: (classesProp?: Partial<Record<"content" | "label"
8697
8722
  cx: (...args: any) => string;
8698
8723
  };
8699
8724
 
8725
+ declare const useClasses_124: (classesProp?: Partial<Record<"content" | "header" | "root" | "hidden" | "actions" | "spaceTop" | "raisedHeader", string>>, addStatic?: boolean) => {
8726
+ classes: {
8727
+ content: string;
8728
+ header: string;
8729
+ root: string;
8730
+ hidden: string;
8731
+ actions: string;
8732
+ spaceTop: string;
8733
+ raisedHeader: string;
8734
+ };
8735
+ css: {
8736
+ (template: TemplateStringsArray, ...args: CSSInterpolation[]): string;
8737
+ (...args: CSSInterpolation[]): string;
8738
+ };
8739
+ cx: (...args: any) => string;
8740
+ };
8741
+
8700
8742
  declare const useClasses_13: (classesProp?: Partial<Record<"root" | "disabled" | "readOnly" | "inputBorderContainer" | "inputRootReadOnly" | "inputRoot" | "inputRootFocused" | "inputRootMultiline" | "input" | "inputReadOnly" | "invalid" | "resizable" | "inputRootInvalid" | "inputRootDisabled" | "inputDisabled" | "inputResizable", string>>, addStatic?: boolean) => {
8701
8743
  classes: {
8702
8744
  root: string;
@@ -10301,13 +10343,15 @@ declare const useClasses_94: (classesProp?: Partial<Record<"root" | "selected" |
10301
10343
  cx: (...args: any) => string;
10302
10344
  };
10303
10345
 
10304
- declare const useClasses_95: (classesProp?: Partial<Record<"content" | "header" | "root" | "hidden" | "actions", string>>, addStatic?: boolean) => {
10346
+ declare const useClasses_95: (classesProp?: Partial<Record<"content" | "header" | "root" | "hidden" | "actions" | "spaceTop" | "raisedHeader", string>>, addStatic?: boolean) => {
10305
10347
  classes: {
10306
10348
  content: string;
10307
10349
  header: string;
10308
10350
  root: string;
10309
10351
  hidden: string;
10310
10352
  actions: string;
10353
+ spaceTop: string;
10354
+ raisedHeader: string;
10311
10355
  };
10312
10356
  css: {
10313
10357
  (template: TemplateStringsArray, ...args: CSSInterpolation[]): string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hitachivantara/uikit-react-core",
3
- "version": "5.46.2",
3
+ "version": "5.47.0",
4
4
  "private": false,
5
5
  "author": "Hitachi Vantara UI Kit Team",
6
6
  "description": "Core React components for the NEXT Design System.",
@@ -63,7 +63,7 @@
63
63
  "access": "public",
64
64
  "directory": "package"
65
65
  },
66
- "gitHead": "23369cdfe68738be6ab438315abd48d7178c5450",
66
+ "gitHead": "429cf3af573487ff551fd5c38ed0ea7d604bcc29",
67
67
  "main": "dist/cjs/index.cjs",
68
68
  "exports": {
69
69
  ".": {