@hitachivantara/uikit-react-core 5.2.0 → 5.4.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 (138) hide show
  1. package/dist/cjs/components/Button/Button.cjs +6 -0
  2. package/dist/cjs/components/Button/Button.cjs.map +1 -1
  3. package/dist/cjs/components/Button/Button.styles.cjs +15 -7
  4. package/dist/cjs/components/Button/Button.styles.cjs.map +1 -1
  5. package/dist/cjs/components/Button/buttonClasses.cjs +1 -1
  6. package/dist/cjs/components/Button/buttonClasses.cjs.map +1 -1
  7. package/dist/cjs/components/Calendar/SingleCalendar/SingleCalendar.styles.cjs +4 -4
  8. package/dist/cjs/components/Calendar/SingleCalendar/SingleCalendar.styles.cjs.map +1 -1
  9. package/dist/cjs/components/DatePicker/DatePicker.cjs +347 -0
  10. package/dist/cjs/components/DatePicker/DatePicker.cjs.map +1 -0
  11. package/dist/cjs/components/DatePicker/DatePicker.styles.cjs +78 -0
  12. package/dist/cjs/components/DatePicker/DatePicker.styles.cjs.map +1 -0
  13. package/dist/cjs/components/DatePicker/datePickerClasses.cjs +8 -0
  14. package/dist/cjs/components/DatePicker/datePickerClasses.cjs.map +1 -0
  15. package/dist/cjs/components/DatePicker/useVisibleDate.cjs +193 -0
  16. package/dist/cjs/components/DatePicker/useVisibleDate.cjs.map +1 -0
  17. package/dist/cjs/components/DatePicker/utils.cjs +32 -0
  18. package/dist/cjs/components/DatePicker/utils.cjs.map +1 -0
  19. package/dist/cjs/components/Dialog/Dialog.cjs +3 -7
  20. package/dist/cjs/components/Dialog/Dialog.cjs.map +1 -1
  21. package/dist/cjs/components/Dialog/Dialog.styles.cjs +32 -31
  22. package/dist/cjs/components/Dialog/Dialog.styles.cjs.map +1 -1
  23. package/dist/cjs/components/InlineEditor/InlineEditor.cjs +122 -0
  24. package/dist/cjs/components/InlineEditor/InlineEditor.cjs.map +1 -0
  25. package/dist/cjs/components/InlineEditor/InlineEditor.styles.cjs +74 -0
  26. package/dist/cjs/components/InlineEditor/InlineEditor.styles.cjs.map +1 -0
  27. package/dist/cjs/components/InlineEditor/inlineEditorClasses.cjs +8 -0
  28. package/dist/cjs/components/InlineEditor/inlineEditorClasses.cjs.map +1 -0
  29. package/dist/cjs/components/MultiButton/MultiButton.styles.cjs +2 -3
  30. package/dist/cjs/components/MultiButton/MultiButton.styles.cjs.map +1 -1
  31. package/dist/cjs/components/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.cjs +51 -0
  32. package/dist/cjs/components/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.cjs.map +1 -0
  33. package/dist/cjs/components/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.styles.cjs +54 -0
  34. package/dist/cjs/components/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.styles.cjs.map +1 -0
  35. package/dist/cjs/components/ScrollTo/Horizontal/HorizontalScrollListItem/horizontalScrollListItemClasses.cjs +8 -0
  36. package/dist/cjs/components/ScrollTo/Horizontal/HorizontalScrollListItem/horizontalScrollListItemClasses.cjs.map +1 -0
  37. package/dist/cjs/components/ScrollTo/Horizontal/ScrollToHorizontal.cjs +126 -0
  38. package/dist/cjs/components/ScrollTo/Horizontal/ScrollToHorizontal.cjs.map +1 -0
  39. package/dist/cjs/components/ScrollTo/Horizontal/ScrollToHorizontal.styles.cjs +46 -0
  40. package/dist/cjs/components/ScrollTo/Horizontal/ScrollToHorizontal.styles.cjs.map +1 -0
  41. package/dist/cjs/components/ScrollTo/Horizontal/scrollToHorizontalClasses.cjs +8 -0
  42. package/dist/cjs/components/ScrollTo/Horizontal/scrollToHorizontalClasses.cjs.map +1 -0
  43. package/dist/cjs/components/ScrollTo/Vertical/ScrollToVertical.cjs +90 -0
  44. package/dist/cjs/components/ScrollTo/Vertical/ScrollToVertical.cjs.map +1 -0
  45. package/dist/cjs/components/ScrollTo/Vertical/ScrollToVertical.styles.cjs +43 -0
  46. package/dist/cjs/components/ScrollTo/Vertical/ScrollToVertical.styles.cjs.map +1 -0
  47. package/dist/cjs/components/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.cjs +71 -0
  48. package/dist/cjs/components/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.cjs.map +1 -0
  49. package/dist/cjs/components/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.styles.cjs +54 -0
  50. package/dist/cjs/components/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.styles.cjs.map +1 -0
  51. package/dist/cjs/components/ScrollTo/Vertical/VerticalScrollListItem/verticalScrollListItemClasses.cjs +8 -0
  52. package/dist/cjs/components/ScrollTo/Vertical/VerticalScrollListItem/verticalScrollListItemClasses.cjs.map +1 -0
  53. package/dist/cjs/components/ScrollTo/Vertical/scrollToVerticalClasses.cjs +8 -0
  54. package/dist/cjs/components/ScrollTo/Vertical/scrollToVerticalClasses.cjs.map +1 -0
  55. package/dist/cjs/components/ScrollTo/useScrollTo.cjs +103 -0
  56. package/dist/cjs/components/ScrollTo/useScrollTo.cjs.map +1 -0
  57. package/dist/cjs/components/ScrollTo/utils.cjs +76 -0
  58. package/dist/cjs/components/ScrollTo/utils.cjs.map +1 -0
  59. package/dist/cjs/components/ScrollTo/withTooltip.cjs +20 -0
  60. package/dist/cjs/components/ScrollTo/withTooltip.cjs.map +1 -0
  61. package/dist/cjs/hocs/withTooltip.cjs +4 -4
  62. package/dist/cjs/hocs/withTooltip.cjs.map +1 -1
  63. package/dist/cjs/index.cjs +21 -0
  64. package/dist/cjs/index.cjs.map +1 -1
  65. package/dist/cjs/utils/theme.cjs +9 -0
  66. package/dist/cjs/utils/theme.cjs.map +1 -1
  67. package/dist/cjs/utils/wrapperTooltip.cjs +1 -1
  68. package/dist/cjs/utils/wrapperTooltip.cjs.map +1 -1
  69. package/dist/esm/components/Button/Button.js +6 -0
  70. package/dist/esm/components/Button/Button.js.map +1 -1
  71. package/dist/esm/components/Button/Button.styles.js +15 -7
  72. package/dist/esm/components/Button/Button.styles.js.map +1 -1
  73. package/dist/esm/components/Button/buttonClasses.js +1 -1
  74. package/dist/esm/components/Button/buttonClasses.js.map +1 -1
  75. package/dist/esm/components/Calendar/SingleCalendar/SingleCalendar.styles.js +4 -4
  76. package/dist/esm/components/Calendar/SingleCalendar/SingleCalendar.styles.js.map +1 -1
  77. package/dist/esm/components/DatePicker/DatePicker.js +345 -0
  78. package/dist/esm/components/DatePicker/DatePicker.js.map +1 -0
  79. package/dist/esm/components/DatePicker/DatePicker.styles.js +78 -0
  80. package/dist/esm/components/DatePicker/DatePicker.styles.js.map +1 -0
  81. package/dist/esm/components/DatePicker/datePickerClasses.js +8 -0
  82. package/dist/esm/components/DatePicker/datePickerClasses.js.map +1 -0
  83. package/dist/esm/components/DatePicker/useVisibleDate.js +193 -0
  84. package/dist/esm/components/DatePicker/useVisibleDate.js.map +1 -0
  85. package/dist/esm/components/DatePicker/utils.js +32 -0
  86. package/dist/esm/components/DatePicker/utils.js.map +1 -0
  87. package/dist/esm/components/Dialog/Dialog.js +5 -9
  88. package/dist/esm/components/Dialog/Dialog.js.map +1 -1
  89. package/dist/esm/components/Dialog/Dialog.styles.js +33 -32
  90. package/dist/esm/components/Dialog/Dialog.styles.js.map +1 -1
  91. package/dist/esm/components/InlineEditor/InlineEditor.js +122 -0
  92. package/dist/esm/components/InlineEditor/InlineEditor.js.map +1 -0
  93. package/dist/esm/components/InlineEditor/InlineEditor.styles.js +74 -0
  94. package/dist/esm/components/InlineEditor/InlineEditor.styles.js.map +1 -0
  95. package/dist/esm/components/InlineEditor/inlineEditorClasses.js +8 -0
  96. package/dist/esm/components/InlineEditor/inlineEditorClasses.js.map +1 -0
  97. package/dist/esm/components/MultiButton/MultiButton.styles.js +2 -3
  98. package/dist/esm/components/MultiButton/MultiButton.styles.js.map +1 -1
  99. package/dist/esm/components/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.js +51 -0
  100. package/dist/esm/components/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.js.map +1 -0
  101. package/dist/esm/components/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.styles.js +54 -0
  102. package/dist/esm/components/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.styles.js.map +1 -0
  103. package/dist/esm/components/ScrollTo/Horizontal/HorizontalScrollListItem/horizontalScrollListItemClasses.js +8 -0
  104. package/dist/esm/components/ScrollTo/Horizontal/HorizontalScrollListItem/horizontalScrollListItemClasses.js.map +1 -0
  105. package/dist/esm/components/ScrollTo/Horizontal/ScrollToHorizontal.js +126 -0
  106. package/dist/esm/components/ScrollTo/Horizontal/ScrollToHorizontal.js.map +1 -0
  107. package/dist/esm/components/ScrollTo/Horizontal/ScrollToHorizontal.styles.js +46 -0
  108. package/dist/esm/components/ScrollTo/Horizontal/ScrollToHorizontal.styles.js.map +1 -0
  109. package/dist/esm/components/ScrollTo/Horizontal/scrollToHorizontalClasses.js +8 -0
  110. package/dist/esm/components/ScrollTo/Horizontal/scrollToHorizontalClasses.js.map +1 -0
  111. package/dist/esm/components/ScrollTo/Vertical/ScrollToVertical.js +90 -0
  112. package/dist/esm/components/ScrollTo/Vertical/ScrollToVertical.js.map +1 -0
  113. package/dist/esm/components/ScrollTo/Vertical/ScrollToVertical.styles.js +43 -0
  114. package/dist/esm/components/ScrollTo/Vertical/ScrollToVertical.styles.js.map +1 -0
  115. package/dist/esm/components/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.js +71 -0
  116. package/dist/esm/components/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.js.map +1 -0
  117. package/dist/esm/components/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.styles.js +54 -0
  118. package/dist/esm/components/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.styles.js.map +1 -0
  119. package/dist/esm/components/ScrollTo/Vertical/VerticalScrollListItem/verticalScrollListItemClasses.js +8 -0
  120. package/dist/esm/components/ScrollTo/Vertical/VerticalScrollListItem/verticalScrollListItemClasses.js.map +1 -0
  121. package/dist/esm/components/ScrollTo/Vertical/scrollToVerticalClasses.js +8 -0
  122. package/dist/esm/components/ScrollTo/Vertical/scrollToVerticalClasses.js.map +1 -0
  123. package/dist/esm/components/ScrollTo/useScrollTo.js +103 -0
  124. package/dist/esm/components/ScrollTo/useScrollTo.js.map +1 -0
  125. package/dist/esm/components/ScrollTo/utils.js +76 -0
  126. package/dist/esm/components/ScrollTo/utils.js.map +1 -0
  127. package/dist/esm/components/ScrollTo/withTooltip.js +20 -0
  128. package/dist/esm/components/ScrollTo/withTooltip.js.map +1 -0
  129. package/dist/esm/hocs/withTooltip.js +4 -4
  130. package/dist/esm/hocs/withTooltip.js.map +1 -1
  131. package/dist/esm/index.js +40 -19
  132. package/dist/esm/index.js.map +1 -1
  133. package/dist/esm/utils/theme.js +9 -0
  134. package/dist/esm/utils/theme.js.map +1 -1
  135. package/dist/esm/utils/wrapperTooltip.js +2 -2
  136. package/dist/esm/utils/wrapperTooltip.js.map +1 -1
  137. package/dist/types/index.d.ts +388 -1
  138. package/package.json +5 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HorizontalScrollListItem.js","sources":["../../../../../../src/components/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.tsx"],"sourcesContent":["import { HvBaseProps } from \"@core/types\";\nimport horizontalScrollListItemClasses, {\n HvHorizontalScrollListItemClasses,\n} from \"./horizontalScrollListItemClasses\";\nimport { ClassNames } from \"@emotion/react\";\nimport { clsx } from \"clsx\";\nimport { setId } from \"@core/utils\";\nimport { HvTypographyProps } from \"@core/components\";\nimport { styles } from \"./HorizontalScrollListItem.styles\";\n\nexport interface HvVerticalScrollListItemProps extends HvBaseProps {\n /** The text to render. */\n children: React.ReactNode;\n /** A function component that renders a typography wrapped with a tooltip. */\n tooltipWrapper: React.FunctionComponent<{\n id?: string;\n className?: string;\n variant?: HvTypographyProps[\"variant\"];\n children?: React.ReactNode;\n }>;\n /** Whether the element is selected. */\n selected?: boolean;\n /** The function to be executed when the element is clicked. */\n onClick?: (event: React.MouseEvent<HTMLDivElement>) => void;\n /** The function to be executed when the element is clicked. */\n onKeyDown?: (event: React.KeyboardEvent<HTMLDivElement>) => void;\n /** A Jss Object used to override or extend the styles applied. */\n classes?: HvHorizontalScrollListItemClasses;\n}\n\n/**\n * HvHorizontalScrollListItem a focusable item to be used as part of the horizontal scroll\n */\nexport const HvHorizontalScrollListItem = ({\n id,\n className,\n classes,\n selected,\n children,\n onClick,\n onKeyDown,\n tooltipWrapper,\n ...others\n}: HvVerticalScrollListItemProps) => {\n const variant = selected ? \"label\" : \"body\";\n const labelId = setId(id, \"label\");\n const buttonId = setId(id, \"button\");\n const Tooltip = tooltipWrapper;\n\n return (\n <ClassNames>\n {({ css }) => (\n <li\n id={id}\n className={clsx(\n className,\n classes?.root,\n horizontalScrollListItemClasses.root,\n css(styles.root)\n )}\n aria-current={selected}\n >\n <div\n id={buttonId}\n role=\"button\"\n tabIndex={0}\n onClick={onClick}\n onKeyDown={onKeyDown}\n className={clsx(\n classes?.button,\n horizontalScrollListItemClasses.button,\n css(styles.button)\n )}\n aria-labelledby={labelId}\n {...others}\n >\n <Tooltip\n id={labelId}\n className={clsx(\n classes?.text,\n horizontalScrollListItemClasses.text,\n css(styles.text),\n selected &&\n clsx(\n classes?.selected,\n horizontalScrollListItemClasses.selected,\n css(styles.selected)\n )\n )}\n variant={variant}\n >\n {children}\n </Tooltip>\n </div>\n </li>\n )}\n </ClassNames>\n );\n};\n"],"names":["HvHorizontalScrollListItem","id","className","classes","selected","children","onClick","onKeyDown","tooltipWrapper","others","variant","labelId","setId","buttonId","Tooltip","ClassNames","css","clsx","root","horizontalScrollListItemClasses","styles","role","tabIndex","button","text"],"mappings":";;;;;;AAiCO,MAAMA,6BAA6BA,CAAC;AAAA,EACzCC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AAC0B,MAAM;AAC7BC,QAAAA,UAAUN,WAAW,UAAU;AAC/BO,QAAAA,UAAUC,MAAMX,IAAI,OAAO;AAC3BY,QAAAA,WAAWD,MAAMX,IAAI,QAAQ;AACnC,QAAMa,UAAUN;AAEhB,6BACGO,YAAU;AAAA,IAAAV,UACRA,CAAC;AAAA,MAAEW;AAAAA,IAAAA,0BACF,MAAA;AAAA,MACEf;AAAAA,MACAC,WAAWe,KACTf,WACAC,mCAASe,MACTC,gCAAgCD,MAChCF,IAAII,OAAOF,IAAI,CAAC;AAAA,MAElB,gBAAcd;AAAAA,MAASC,8BAEvB,OAAA;AAAA,QACEJ,IAAIY;AAAAA,QACJQ,MAAK;AAAA,QACLC,UAAU;AAAA,QACVhB;AAAAA,QACAC;AAAAA,QACAL,WAAWe,KACTd,mCAASoB,QACTJ,gCAAgCI,QAChCP,IAAII,OAAOG,MAAM,CAAC;AAAA,QAEpB,mBAAiBZ;AAAAA,QAAQ,GACrBF;AAAAA,QAAMJ,8BAETS,SAAO;AAAA,UACNb,IAAIU;AAAAA,UACJT,WAAWe,KACTd,mCAASqB,MACTL,gCAAgCK,MAChCR,IAAII,OAAOI,IAAI,GACfpB,YACEa,KACEd,mCAASC,UACTe,gCAAgCf,UAChCY,IAAII,OAAOhB,QAAQ,CAAC,CACrB;AAAA,UAELM;AAAAA,UAAiBL;AAAAA,QAAAA,CAER;AAAA,MAAA,CACD;AAAA,IAAA,CACN;AAAA,EAAA,CAGC;AAEjB;"}
@@ -0,0 +1,54 @@
1
+ import { theme } from "@hitachivantara/uikit-styles";
2
+ import scrollToHorizontalClasses from "../scrollToHorizontalClasses.js";
3
+ import { outlineStyles } from "../../../../utils/focusUtils.js";
4
+ const styles = {
5
+ root: {
6
+ padding: "10px 0"
7
+ },
8
+ button: {
9
+ display: "flex",
10
+ justifyContent: "center",
11
+ alignItems: "center",
12
+ height: theme.scrollTo.horizontal.buttonHeight,
13
+ cursor: "pointer",
14
+ borderBottom: theme.scrollTo.horizontal.buttonBottomBorder,
15
+ "&:hover": {
16
+ backgroundColor: theme.scrollTo.horizontal.buttonHoverBackgroundColor,
17
+ [`& .${scrollToHorizontalClasses.notSelected}`]: {
18
+ height: theme.scrollTo.dotHoverSize,
19
+ width: theme.scrollTo.dotHoverSize,
20
+ backgroundColor: theme.scrollTo.dotHoverColor
21
+ },
22
+ [`& .${scrollToHorizontalClasses.notSelectedRoot}`]: {
23
+ backgroundColor: theme.scrollTo.dotHoverBackgroundColor
24
+ }
25
+ },
26
+ "&:focus": {
27
+ outline: "none"
28
+ },
29
+ "&:focus-visible": {
30
+ ...outlineStyles
31
+ }
32
+ },
33
+ text: {
34
+ display: "flex",
35
+ flexDirection: "column",
36
+ alignItems: "center",
37
+ justifyContent: "center",
38
+ height: theme.scrollTo.horizontal.buttonHeight,
39
+ borderBottom: theme.scrollTo.horizontal.buttonBottomBorder,
40
+ "& p": {
41
+ padding: theme.scrollTo.horizontal.textPadding,
42
+ maxWidth: theme.scrollTo.horizontal.textMaxWidth,
43
+ textOverflow: "ellipsis",
44
+ overflow: "hidden"
45
+ }
46
+ },
47
+ selected: {
48
+ borderBottom: theme.scrollTo.horizontal.selectedButtonBottomBorder
49
+ }
50
+ };
51
+ export {
52
+ styles
53
+ };
54
+ //# sourceMappingURL=HorizontalScrollListItem.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HorizontalScrollListItem.styles.js","sources":["../../../../../../src/components/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.styles.tsx"],"sourcesContent":["import { outlineStyles } from \"@core/utils\";\nimport { CSSInterpolation } from \"@emotion/serialize\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport scrollToHorizontalClasses from \"../scrollToHorizontalClasses\";\n\nexport const styles: {\n root: CSSInterpolation;\n button: CSSInterpolation;\n text: CSSInterpolation;\n selected: CSSInterpolation;\n} = {\n root: {\n padding: \"10px 0\",\n },\n button: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n height: theme.scrollTo.horizontal.buttonHeight,\n cursor: \"pointer\",\n borderBottom: theme.scrollTo.horizontal.buttonBottomBorder,\n \"&:hover\": {\n backgroundColor: theme.scrollTo.horizontal.buttonHoverBackgroundColor,\n\n [`& .${scrollToHorizontalClasses.notSelected}`]: {\n height: theme.scrollTo.dotHoverSize,\n width: theme.scrollTo.dotHoverSize,\n backgroundColor: theme.scrollTo.dotHoverColor,\n },\n\n [`& .${scrollToHorizontalClasses.notSelectedRoot}`]: {\n backgroundColor: theme.scrollTo.dotHoverBackgroundColor,\n },\n },\n \"&:focus\": {\n outline: \"none\",\n },\n \"&:focus-visible\": {\n ...outlineStyles,\n },\n },\n text: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n height: theme.scrollTo.horizontal.buttonHeight,\n borderBottom: theme.scrollTo.horizontal.buttonBottomBorder,\n\n \"& p\": {\n padding: theme.scrollTo.horizontal.textPadding,\n maxWidth: theme.scrollTo.horizontal.textMaxWidth,\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n },\n },\n selected: {\n borderBottom: theme.scrollTo.horizontal.selectedButtonBottomBorder,\n },\n};\n"],"names":["styles","root","padding","button","display","justifyContent","alignItems","height","theme","scrollTo","horizontal","buttonHeight","cursor","borderBottom","buttonBottomBorder","backgroundColor","buttonHoverBackgroundColor","scrollToHorizontalClasses","notSelected","dotHoverSize","width","dotHoverColor","notSelectedRoot","dotHoverBackgroundColor","outline","outlineStyles","text","flexDirection","textPadding","maxWidth","textMaxWidth","textOverflow","overflow","selected","selectedButtonBottomBorder"],"mappings":";;;AAKO,MAAMA,SAKT;AAAA,EACFC,MAAM;AAAA,IACJC,SAAS;AAAA,EACX;AAAA,EACAC,QAAQ;AAAA,IACNC,SAAS;AAAA,IACTC,gBAAgB;AAAA,IAChBC,YAAY;AAAA,IACZC,QAAQC,MAAMC,SAASC,WAAWC;AAAAA,IAClCC,QAAQ;AAAA,IACRC,cAAcL,MAAMC,SAASC,WAAWI;AAAAA,IACxC,WAAW;AAAA,MACTC,iBAAiBP,MAAMC,SAASC,WAAWM;AAAAA,MAE3C,CAAE,MAAKC,0BAA0BC,aAAa,GAAG;AAAA,QAC/CX,QAAQC,MAAMC,SAASU;AAAAA,QACvBC,OAAOZ,MAAMC,SAASU;AAAAA,QACtBJ,iBAAiBP,MAAMC,SAASY;AAAAA,MAClC;AAAA,MAEA,CAAE,MAAKJ,0BAA0BK,iBAAiB,GAAG;AAAA,QACnDP,iBAAiBP,MAAMC,SAASc;AAAAA,MAClC;AAAA,IACF;AAAA,IACA,WAAW;AAAA,MACTC,SAAS;AAAA,IACX;AAAA,IACA,mBAAmB;AAAA,MACjB,GAAGC;AAAAA,IACL;AAAA,EACF;AAAA,EACAC,MAAM;AAAA,IACJtB,SAAS;AAAA,IACTuB,eAAe;AAAA,IACfrB,YAAY;AAAA,IACZD,gBAAgB;AAAA,IAChBE,QAAQC,MAAMC,SAASC,WAAWC;AAAAA,IAClCE,cAAcL,MAAMC,SAASC,WAAWI;AAAAA,IAExC,OAAO;AAAA,MACLZ,SAASM,MAAMC,SAASC,WAAWkB;AAAAA,MACnCC,UAAUrB,MAAMC,SAASC,WAAWoB;AAAAA,MACpCC,cAAc;AAAA,MACdC,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACAC,UAAU;AAAA,IACRpB,cAAcL,MAAMC,SAASC,WAAWwB;AAAAA,EAC1C;AACF;"}
@@ -0,0 +1,8 @@
1
+ import { getClasses } from "../../../../utils/classes.js";
2
+ const classKeys = ["root", "selected", "button", "text"];
3
+ const horizontalScrollListItemClasses = getClasses(classKeys, "HvHorizontalScrollListItem");
4
+ const horizontalScrollListItemClasses$1 = horizontalScrollListItemClasses;
5
+ export {
6
+ horizontalScrollListItemClasses$1 as default
7
+ };
8
+ //# sourceMappingURL=horizontalScrollListItemClasses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"horizontalScrollListItemClasses.js","sources":["../../../../../../src/components/ScrollTo/Horizontal/HorizontalScrollListItem/horizontalScrollListItemClasses.ts"],"sourcesContent":["import { getClasses } from \"@core/utils\";\n\nexport interface HvHorizontalScrollListItemClasses {\n root?: string;\n selected?: string;\n button?: string;\n text?: string;\n}\n\nconst classKeys: string[] = [\"root\", \"selected\", \"button\", \"text\"];\n\nconst horizontalScrollListItemClasses =\n getClasses<HvHorizontalScrollListItemClasses>(\n classKeys,\n \"HvHorizontalScrollListItem\"\n );\n\nexport default horizontalScrollListItemClasses;\n"],"names":["classKeys","horizontalScrollListItemClasses","getClasses"],"mappings":";AASA,MAAMA,YAAsB,CAAC,QAAQ,YAAY,UAAU,MAAM;AAEjE,MAAMC,kCACJC,WACEF,WACA,4BAA4B;AAGhC,MAAA,oCAAeC;"}
@@ -0,0 +1,126 @@
1
+ import scrollToHorizontalClasses from "./scrollToHorizontalClasses.js";
2
+ import { ClassNames } from "@emotion/react";
3
+ import { clsx } from "clsx";
4
+ import { styles } from "./ScrollToHorizontal.styles.js";
5
+ import { useScrollTo } from "../useScrollTo.js";
6
+ import { useMemo, useCallback } from "react";
7
+ import { withTooltip } from "../withTooltip.js";
8
+ import { useTheme } from "@mui/material/styles";
9
+ import { theme } from "@hitachivantara/uikit-styles";
10
+ import fade from "../../../utils/hexToRgbA.js";
11
+ import { CurrentStep } from "@hitachivantara/uikit-react-icons";
12
+ import { useMediaQuery } from "@mui/material";
13
+ import { jsx, jsxs } from "@emotion/react/jsx-runtime";
14
+ import useUniqueId from "../../../hooks/useUniqueId.js";
15
+ import { HvHorizontalScrollListItem } from "./HorizontalScrollListItem/HorizontalScrollListItem.js";
16
+ import { useTheme as useTheme$1 } from "../../../hooks/useTheme.js";
17
+ import { setId } from "../../../utils/setId.js";
18
+ import { isKeypress } from "../../../utils/keyboardUtils/keyCheck.js";
19
+ import { keyboardCodes } from "../../../utils/keyboardUtils/keyboardCodes.js";
20
+ const {
21
+ Enter
22
+ } = keyboardCodes;
23
+ const HvScrollToHorizontal = ({
24
+ id,
25
+ defaultSelectedIndex = 0,
26
+ scrollElementId,
27
+ href = true,
28
+ onChange,
29
+ onClick,
30
+ onEnter,
31
+ className,
32
+ classes,
33
+ options,
34
+ offset = 0,
35
+ position = "relative",
36
+ tooltipPosition = "top",
37
+ ...others
38
+ }) => {
39
+ const muiTheme = useTheme();
40
+ const downSm = useMediaQuery(muiTheme.breakpoints.down("sm"));
41
+ const upMd = useMediaQuery(muiTheme.breakpoints.up("md"));
42
+ const {
43
+ activeTheme,
44
+ selectedMode
45
+ } = useTheme$1();
46
+ const elementId = useUniqueId(id, "hvHorizontalScrollto");
47
+ const [selectedIndex, setScrollTo] = useScrollTo(defaultSelectedIndex, scrollElementId, href, offset, options, onChange);
48
+ const handleSelection = (event, value, index) => {
49
+ event.preventDefault();
50
+ const wrappedOnChange = () => {
51
+ onChange == null ? void 0 : onChange(event, index);
52
+ };
53
+ setScrollTo(event, value, index, wrappedOnChange);
54
+ };
55
+ const tooltipWrappers = useMemo(() => {
56
+ return options.map((option) => {
57
+ return withTooltip(option.label, "div", tooltipPosition);
58
+ });
59
+ }, [options, tooltipPosition]);
60
+ const NotSelected = useCallback(() => {
61
+ return /* @__PURE__ */ jsx(ClassNames, {
62
+ children: ({
63
+ css
64
+ }) => /* @__PURE__ */ jsx("div", {
65
+ className: clsx(classes == null ? void 0 : classes.notSelectedRoot, scrollToHorizontalClasses.notSelectedRoot, css(styles.notSelectedRoot)),
66
+ children: /* @__PURE__ */ jsx("div", {
67
+ className: clsx(classes == null ? void 0 : classes.notSelected, scrollToHorizontalClasses.notSelected, css(styles.notSelected))
68
+ })
69
+ })
70
+ });
71
+ }, [classes == null ? void 0 : classes.notSelectedRoot, classes == null ? void 0 : classes.notSelected]);
72
+ const Selected = useCallback(() => {
73
+ return /* @__PURE__ */ jsx(ClassNames, {
74
+ children: ({
75
+ css
76
+ }) => /* @__PURE__ */ jsx(CurrentStep, {
77
+ height: activeTheme == null ? void 0 : activeTheme.scrollTo.dotSelectedSize,
78
+ width: activeTheme == null ? void 0 : activeTheme.scrollTo.dotSelectedSize,
79
+ className: clsx(classes == null ? void 0 : classes.selected, scrollToHorizontalClasses.selected, css(styles.selected))
80
+ })
81
+ });
82
+ }, [classes == null ? void 0 : classes.selected, activeTheme == null ? void 0 : activeTheme.scrollTo.dotSelectedSize]);
83
+ const tabs = options.map((option, index) => {
84
+ const selected = selectedIndex === index;
85
+ const tooltipWrapper = tooltipWrappers[index];
86
+ return /* @__PURE__ */ jsxs(HvHorizontalScrollListItem, {
87
+ id: setId(elementId, `item-${index}`),
88
+ onClick: (event) => {
89
+ handleSelection(event, option.value, index);
90
+ onClick == null ? void 0 : onClick(event, index);
91
+ },
92
+ onKeyDown: (event) => {
93
+ if (isKeypress(event, Enter) === true) {
94
+ handleSelection(event, option.value, index);
95
+ onEnter == null ? void 0 : onEnter(event, index);
96
+ }
97
+ },
98
+ tooltipWrapper,
99
+ selected,
100
+ children: [/* @__PURE__ */ jsx("p", {
101
+ children: option.label
102
+ }), selected ? /* @__PURE__ */ jsx(Selected, {}) : /* @__PURE__ */ jsx(NotSelected, {})]
103
+ }, option.key || option.label);
104
+ });
105
+ return /* @__PURE__ */ jsx(ClassNames, {
106
+ children: ({
107
+ css
108
+ }) => /* @__PURE__ */ jsx("ol", {
109
+ className: clsx(className, classes == null ? void 0 : classes.root, scrollToHorizontalClasses.root, css(styles.root), css({
110
+ width: position === "fixed" && (upMd || downSm) ? `calc(100% - 2*${theme.spacing(upMd ? 4 : 2)})` : "100%",
111
+ marginTop: 0,
112
+ marginBottom: 0,
113
+ marginRight: position === "fixed" && (upMd || downSm) ? theme.spacing(upMd ? 4 : 2) : 0,
114
+ marginLeft: position === "fixed" && (upMd || downSm) ? theme.spacing(upMd ? 4 : 2) : 0,
115
+ backgroundColor: fade(activeTheme == null ? void 0 : activeTheme.colors.modes[selectedMode].atmo2, activeTheme == null ? void 0 : activeTheme.scrollTo.backgroundColorOpacity)
116
+ }), position === "sticky" && clsx(classes == null ? void 0 : classes.positionSticky, scrollToHorizontalClasses.positionSticky, css(styles.positionSticky)), position === "fixed" && clsx(classes == null ? void 0 : classes.positionFixed, scrollToHorizontalClasses.positionFixed, css(styles.positionFixed))),
117
+ id: elementId,
118
+ ...others,
119
+ children: tabs
120
+ })
121
+ });
122
+ };
123
+ export {
124
+ HvScrollToHorizontal
125
+ };
126
+ //# sourceMappingURL=ScrollToHorizontal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScrollToHorizontal.js","sources":["../../../../../src/components/ScrollTo/Horizontal/ScrollToHorizontal.tsx"],"sourcesContent":["import { HvBaseProps } from \"@core/types\";\nimport scrollToHorizontalClasses, {\n HvScrollToHorizontalClasses,\n} from \"./scrollToHorizontalClasses\";\nimport { ClassNames } from \"@emotion/react\";\nimport { clsx } from \"clsx\";\nimport { useTheme, useUniqueId } from \"@core/hooks\";\nimport { styles } from \"./ScrollToHorizontal.styles\";\nimport { useScrollTo } from \"../useScrollTo\";\nimport { HvHorizontalScrollListItem } from \"./HorizontalScrollListItem\";\nimport { isKeypress, keyboardCodes, setId } from \"@core/utils\";\nimport { useCallback, useMemo } from \"react\";\nimport { withTooltip } from \"../withTooltip\";\nimport { useTheme as useMuiTheme } from \"@mui/material/styles\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\nimport fade from \"@core/utils/hexToRgbA\";\nimport { HvScrollToTooltipPositions } from \"../types\";\nimport { CurrentStep } from \"@hitachivantara/uikit-react-icons\";\nimport { useMediaQuery } from \"@mui/material\";\n\nconst { Enter } = keyboardCodes;\n\nexport interface HvScrollToHorizontalOption {\n key?: string;\n label: string;\n value: string;\n offset?: number;\n}\n\nexport type HvScrollToHorizontalPositions = \"sticky\" | \"fixed\" | \"relative\";\n\nexport interface HvScrollToHorizontalProps\n extends HvBaseProps<HTMLOListElement, { onChange; onClick }> {\n /** An Array of Objects with Label and Value. Label is the displayed Element and Value is the local navigation location applied */\n options: HvScrollToHorizontalOption[];\n /** True if the href location link should be applied. It will create an a element around every list item */\n href?: boolean;\n /** Default selected index passed from the parent. */\n defaultSelectedIndex?: number;\n /**\n * The Id of the scrollable container containing displayed elements.\n *\n * Defaults to `window` if unspecified.\n */\n scrollElementId?: string;\n /**\n * Defines the offset from the top of each element for getting an optimal viewing region in the container.\n * This allows to exclude regions of the container that are obscured by other content (such as fixed-positioned toolbars or titles)\n * or to put more breathing room between the targeted element and the edges of the container.\n *\n * Each element can also have a specific offset via the options property.\n */\n offset?: number;\n /** Position of the Horizontal scroll to. */\n position?: HvScrollToHorizontalPositions;\n /** Position of tooltip identifying the current item. */\n tooltipPosition?: HvScrollToTooltipPositions;\n /** A function called each time the selected index changes. */\n onChange?: (\n event:\n | Event\n | React.MouseEvent<HTMLDivElement>\n | React.KeyboardEvent<HTMLDivElement>,\n index: number\n ) => void;\n /** A function called each time an user clicks on a tab element. */\n onClick?: (event: React.MouseEvent<HTMLDivElement>, index: number) => void;\n /** A function called each time an user press enter on a tab element. */\n onEnter?: (event: React.KeyboardEvent<HTMLDivElement>, index: number) => void;\n /** A Jss Object used to override or extend the styles applied. */\n classes?: HvScrollToHorizontalClasses;\n}\n\n/**\n * The horizontal scroll to element can be used to quickly navigate in a page.\n */\nexport const HvScrollToHorizontal = ({\n id,\n defaultSelectedIndex = 0,\n scrollElementId,\n href = true,\n onChange,\n onClick,\n onEnter,\n className,\n classes,\n options,\n offset = 0,\n position = \"relative\",\n tooltipPosition = \"top\",\n ...others\n}: HvScrollToHorizontalProps) => {\n const muiTheme = useMuiTheme();\n\n const downSm = useMediaQuery(muiTheme.breakpoints.down(\"sm\"));\n const upMd = useMediaQuery(muiTheme.breakpoints.up(\"md\"));\n\n const { activeTheme, selectedMode } = useTheme();\n\n const elementId = useUniqueId(id, \"hvHorizontalScrollto\");\n\n const [selectedIndex, setScrollTo] = useScrollTo(\n defaultSelectedIndex,\n scrollElementId,\n href,\n offset,\n options,\n onChange\n );\n\n const handleSelection = (\n event:\n | React.MouseEvent<HTMLDivElement>\n | React.KeyboardEvent<HTMLDivElement>,\n value: string,\n index: number\n ) => {\n event.preventDefault();\n\n const wrappedOnChange = () => {\n onChange?.(event, index);\n };\n\n setScrollTo(event, value, index, wrappedOnChange);\n };\n\n const tooltipWrappers = useMemo(() => {\n return options.map((option) => {\n return withTooltip(option.label, \"div\", tooltipPosition);\n });\n }, [options, tooltipPosition]);\n\n const NotSelected = useCallback(() => {\n return (\n <ClassNames>\n {({ css }) => (\n <div\n className={clsx(\n classes?.notSelectedRoot,\n scrollToHorizontalClasses.notSelectedRoot,\n css(styles.notSelectedRoot)\n )}\n >\n <div\n className={clsx(\n classes?.notSelected,\n scrollToHorizontalClasses.notSelected,\n css(styles.notSelected)\n )}\n />\n </div>\n )}\n </ClassNames>\n );\n }, [classes?.notSelectedRoot, classes?.notSelected]);\n\n const Selected = useCallback(() => {\n return (\n <ClassNames>\n {({ css }) => (\n <CurrentStep\n height={activeTheme?.scrollTo.dotSelectedSize}\n width={activeTheme?.scrollTo.dotSelectedSize}\n className={clsx(\n classes?.selected,\n scrollToHorizontalClasses.selected,\n css(styles.selected)\n )}\n />\n )}\n </ClassNames>\n );\n }, [classes?.selected, activeTheme?.scrollTo.dotSelectedSize]);\n\n const tabs = options.map((option, index) => {\n const selected = selectedIndex === index;\n const tooltipWrapper = tooltipWrappers[index];\n\n return (\n <HvHorizontalScrollListItem\n id={setId(elementId, `item-${index}`)}\n onClick={(event) => {\n handleSelection(event, option.value, index);\n onClick?.(event, index);\n }}\n onKeyDown={(event) => {\n if (isKeypress(event, Enter) === true) {\n handleSelection(event, option.value, index);\n onEnter?.(event, index);\n }\n }}\n tooltipWrapper={tooltipWrapper}\n selected={selected}\n key={option.key || option.label}\n >\n <p>{option.label}</p>\n {selected ? <Selected /> : <NotSelected />}\n </HvHorizontalScrollListItem>\n );\n });\n\n return (\n <ClassNames>\n {({ css }) => (\n <ol\n className={clsx(\n className,\n classes?.root,\n scrollToHorizontalClasses.root,\n css(styles.root),\n css({\n width:\n position === \"fixed\" && (upMd || downSm)\n ? `calc(100% - 2*${theme.spacing(upMd ? 4 : 2)})`\n : \"100%\",\n marginTop: 0,\n marginBottom: 0,\n marginRight:\n position === \"fixed\" && (upMd || downSm)\n ? theme.spacing(upMd ? 4 : 2)\n : 0,\n marginLeft:\n position === \"fixed\" && (upMd || downSm)\n ? theme.spacing(upMd ? 4 : 2)\n : 0,\n backgroundColor: fade(\n activeTheme?.colors.modes[selectedMode].atmo2,\n activeTheme?.scrollTo.backgroundColorOpacity\n ),\n }),\n position === \"sticky\" &&\n clsx(\n classes?.positionSticky,\n scrollToHorizontalClasses.positionSticky,\n css(styles.positionSticky)\n ),\n position === \"fixed\" &&\n clsx(\n classes?.positionFixed,\n scrollToHorizontalClasses.positionFixed,\n css(styles.positionFixed)\n )\n )}\n id={elementId}\n {...others}\n >\n {tabs}\n </ol>\n )}\n </ClassNames>\n );\n};\n"],"names":["Enter","keyboardCodes","HvScrollToHorizontal","id","defaultSelectedIndex","scrollElementId","href","onChange","onClick","onEnter","className","classes","options","offset","position","tooltipPosition","others","muiTheme","useMuiTheme","downSm","useMediaQuery","breakpoints","down","upMd","up","activeTheme","selectedMode","useTheme","elementId","useUniqueId","selectedIndex","setScrollTo","useScrollTo","handleSelection","event","value","index","preventDefault","wrappedOnChange","tooltipWrappers","useMemo","map","option","withTooltip","label","NotSelected","useCallback","ClassNames","children","css","clsx","notSelectedRoot","scrollToHorizontalClasses","styles","notSelected","Selected","CurrentStep","height","scrollTo","dotSelectedSize","width","selected","tabs","tooltipWrapper","HvHorizontalScrollListItem","setId","onKeyDown","isKeypress","_jsx","key","root","theme","spacing","marginTop","marginBottom","marginRight","marginLeft","backgroundColor","fade","colors","modes","atmo2","backgroundColorOpacity","positionSticky","positionFixed"],"mappings":";;;;;;;;;;;;;;;;;;;AAoBA,MAAM;AAAA,EAAEA;AAAM,IAAIC;AAwDX,MAAMC,uBAAuBA,CAAC;AAAA,EACnCC;AAAAA,EACAC,uBAAuB;AAAA,EACvBC;AAAAA,EACAC,OAAO;AAAA,EACPC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,SAAS;AAAA,EACTC,WAAW;AAAA,EACXC,kBAAkB;AAAA,EAClB,GAAGC;AACsB,MAAM;AAC/B,QAAMC,WAAWC;AAEjB,QAAMC,SAASC,cAAcH,SAASI,YAAYC,KAAK,IAAI,CAAC;AAC5D,QAAMC,OAAOH,cAAcH,SAASI,YAAYG,GAAG,IAAI,CAAC;AAElD,QAAA;AAAA,IAAEC;AAAAA,IAAaC;AAAAA,MAAiBC,WAAU;AAE1CC,QAAAA,YAAYC,YAAY1B,IAAI,sBAAsB;AAElD,QAAA,CAAC2B,eAAeC,WAAW,IAAIC,YACnC5B,sBACAC,iBACAC,MACAO,QACAD,SACAL,QAAQ;AAGV,QAAM0B,kBAAkBA,CACtBC,OAGAC,OACAC,UACG;AACHF,UAAMG,eAAgB;AAEtB,UAAMC,kBAAkBA,MAAM;AAC5B/B,2CAAW2B,OAAOE;AAAAA,IAAK;AAGbF,gBAAAA,OAAOC,OAAOC,OAAOE,eAAe;AAAA,EAAA;AAG5CC,QAAAA,kBAAkBC,QAAQ,MAAM;AAC7B5B,WAAAA,QAAQ6B,IAAKC,CAAW,WAAA;AAC7B,aAAOC,YAAYD,OAAOE,OAAO,OAAO7B,eAAe;AAAA,IAAA,CACxD;AAAA,EAAA,GACA,CAACH,SAASG,eAAe,CAAC;AAEvB8B,QAAAA,cAAcC,YAAY,MAAM;AACpC,+BACGC,YAAU;AAAA,MAAAC,UACRA,CAAC;AAAA,QAAEC;AAAAA,MAAAA,0BACF,OAAA;AAAA,QACEvC,WAAWwC,KACTvC,mCAASwC,iBACTC,0BAA0BD,iBAC1BF,IAAII,OAAOF,eAAe,CAAC;AAAA,QAC3BH,8BAEF,OAAA;AAAA,UACEtC,WAAWwC,KACTvC,mCAAS2C,aACTF,0BAA0BE,aAC1BL,IAAII,OAAOC,WAAW,CAAC;AAAA,QAAA,CACvB;AAAA,MAAA,CACF;AAAA,IAAA,CAGK;AAAA,KAEd,CAAC3C,mCAASwC,iBAAiBxC,mCAAS2C,WAAW,CAAC;AAE7CC,QAAAA,WAAWT,YAAY,MAAM;AACjC,+BACGC,YAAU;AAAA,MAAAC,UACRA,CAAC;AAAA,QAAEC;AAAAA,MAAAA,0BACDO,aAAW;AAAA,QACVC,QAAQhC,2CAAaiC,SAASC;AAAAA,QAC9BC,OAAOnC,2CAAaiC,SAASC;AAAAA,QAC7BjD,WAAWwC,KACTvC,mCAASkD,UACTT,0BAA0BS,UAC1BZ,IAAII,OAAOQ,QAAQ,CAAC;AAAA,MAAA,CACpB;AAAA,IAAA,CAGK;AAAA,EAAA,GAEd,CAAClD,mCAASkD,UAAUpC,2CAAaiC,SAASC,eAAe,CAAC;AAE7D,QAAMG,OAAOlD,QAAQ6B,IAAI,CAACC,QAAQN,UAAU;AAC1C,UAAMyB,WAAW/B,kBAAkBM;AAC7B2B,UAAAA,iBAAiBxB,gBAAgBH,KAAK;AAE5C,gCACG4B,4BAA0B;AAAA,MACzB7D,IAAI8D,MAAMrC,WAAY,QAAOQ,OAAO;AAAA,MACpC5B,SAAU0B,CAAU,UAAA;AACFA,wBAAAA,OAAOQ,OAAOP,OAAOC,KAAK;AAC1C5B,2CAAU0B,OAAOE;AAAAA,MACnB;AAAA,MACA8B,WAAYhC,CAAU,UAAA;AACpB,YAAIiC,WAAWjC,OAAOlC,KAAK,MAAM,MAAM;AACrBkC,0BAAAA,OAAOQ,OAAOP,OAAOC,KAAK;AAC1C3B,6CAAUyB,OAAOE;AAAAA,QACnB;AAAA,MACF;AAAA,MACA2B;AAAAA,MACAF;AAAAA,MAAmBb,WAGnBoB,oBAAA,KAAA;AAAA,QAAApB,UAAIN,OAAOE;AAAAA,MAAAA,CAAU,GACpBiB,WAAWO,oBAACb,UAAQ,CAAA,CAAA,IAAOV,oBAAAA,aAAc,CAAA,CAAA,CAAA;AAAA,IAHrCH,GAAAA,OAAO2B,OAAO3B,OAAOE,KAAK;AAAA,EAAA,CAMpC;AAED,6BACGG,YAAU;AAAA,IAAAC,UACRA,CAAC;AAAA,MAAEC;AAAAA,IAAAA,0BACF,MAAA;AAAA,MACEvC,WAAWwC,KACTxC,WACAC,mCAAS2D,MACTlB,0BAA0BkB,MAC1BrB,IAAII,OAAOiB,IAAI,GACfrB,IAAI;AAAA,QACFW,OACE9C,aAAa,YAAYS,QAAQJ,UAC5B,iBAAgBoD,MAAMC,QAAQjD,OAAO,IAAI,CAAC,OAC3C;AAAA,QACNkD,WAAW;AAAA,QACXC,cAAc;AAAA,QACdC,aACE7D,aAAa,YAAYS,QAAQJ,UAC7BoD,MAAMC,QAAQjD,OAAO,IAAI,CAAC,IAC1B;AAAA,QACNqD,YACE9D,aAAa,YAAYS,QAAQJ,UAC7BoD,MAAMC,QAAQjD,OAAO,IAAI,CAAC,IAC1B;AAAA,QACNsD,iBAAiBC,KACfrD,2CAAasD,OAAOC,MAAMtD,cAAcuD,OACxCxD,2CAAaiC,SAASwB,sBAAsB;AAAA,MAE/C,CAAA,GACDpE,aAAa,YACXoC,KACEvC,mCAASwE,gBACT/B,0BAA0B+B,gBAC1BlC,IAAII,OAAO8B,cAAc,CAAC,GAE9BrE,aAAa,WACXoC,KACEvC,mCAASyE,eACThC,0BAA0BgC,eAC1BnC,IAAII,OAAO+B,aAAa,CAAC,CAC1B;AAAA,MAELjF,IAAIyB;AAAAA,MAAU,GACVZ;AAAAA,MAAMgC,UAETc;AAAAA,IAAAA,CAAI;AAAA,EAAA,CAGE;AAEjB;"}
@@ -0,0 +1,46 @@
1
+ import { theme } from "@hitachivantara/uikit-styles";
2
+ const styles = {
3
+ root: {
4
+ display: "flex",
5
+ padding: "0 30px",
6
+ listStyleType: "none",
7
+ flexWrap: "wrap",
8
+ backdropFilter: `blur(${theme.scrollTo.backgroundColorBlur})`
9
+ },
10
+ positionSticky: {
11
+ position: "sticky",
12
+ zIndex: `calc(${theme.zIndices.banner} - 2)`,
13
+ top: 0,
14
+ left: 0
15
+ },
16
+ positionFixed: {
17
+ position: "fixed",
18
+ zIndex: `calc(${theme.zIndices.banner} - 2)`,
19
+ top: 0,
20
+ left: 0
21
+ },
22
+ notSelectedRoot: {
23
+ display: theme.scrollTo.horizontal.dotDisplay,
24
+ justifyContent: "center",
25
+ alignItems: "center",
26
+ height: theme.scrollTo.dotRootSize,
27
+ width: theme.scrollTo.dotRootSize,
28
+ borderRadius: theme.scrollTo.dotRootRadius
29
+ },
30
+ notSelected: {
31
+ height: theme.scrollTo.dotNotSelectedSize,
32
+ width: theme.scrollTo.dotNotSelectedSize,
33
+ borderRadius: "50%",
34
+ display: "inline-block",
35
+ backgroundColor: theme.scrollTo.dotNotSelectedColor
36
+ },
37
+ selected: {
38
+ display: theme.scrollTo.horizontal.dotDisplay,
39
+ height: theme.scrollTo.dotRootSize,
40
+ width: theme.scrollTo.dotRootSize
41
+ }
42
+ };
43
+ export {
44
+ styles
45
+ };
46
+ //# sourceMappingURL=ScrollToHorizontal.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScrollToHorizontal.styles.js","sources":["../../../../../src/components/ScrollTo/Horizontal/ScrollToHorizontal.styles.tsx"],"sourcesContent":["import { CSSInterpolation } from \"@emotion/serialize\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nexport const styles: {\n root: CSSInterpolation;\n positionSticky: CSSInterpolation;\n positionFixed: CSSInterpolation;\n notSelectedRoot: CSSInterpolation;\n notSelected: CSSInterpolation;\n selected: CSSInterpolation;\n} = {\n root: {\n display: \"flex\",\n padding: \"0 30px\",\n listStyleType: \"none\",\n flexWrap: \"wrap\",\n backdropFilter: `blur(${theme.scrollTo.backgroundColorBlur})`,\n },\n positionSticky: {\n position: \"sticky\",\n zIndex: `calc(${theme.zIndices.banner} - 2)`,\n top: 0,\n left: 0,\n },\n positionFixed: {\n position: \"fixed\",\n zIndex: `calc(${theme.zIndices.banner} - 2)`,\n top: 0,\n left: 0,\n },\n notSelectedRoot: {\n display: theme.scrollTo.horizontal.dotDisplay,\n justifyContent: \"center\",\n alignItems: \"center\",\n height: theme.scrollTo.dotRootSize,\n width: theme.scrollTo.dotRootSize,\n borderRadius: theme.scrollTo.dotRootRadius,\n },\n notSelected: {\n height: theme.scrollTo.dotNotSelectedSize,\n width: theme.scrollTo.dotNotSelectedSize,\n borderRadius: \"50%\",\n display: \"inline-block\",\n backgroundColor: theme.scrollTo.dotNotSelectedColor,\n },\n selected: {\n display: theme.scrollTo.horizontal.dotDisplay,\n height: theme.scrollTo.dotRootSize,\n width: theme.scrollTo.dotRootSize,\n },\n};\n"],"names":["styles","root","display","padding","listStyleType","flexWrap","backdropFilter","theme","scrollTo","backgroundColorBlur","positionSticky","position","zIndex","zIndices","banner","top","left","positionFixed","notSelectedRoot","horizontal","dotDisplay","justifyContent","alignItems","height","dotRootSize","width","borderRadius","dotRootRadius","notSelected","dotNotSelectedSize","backgroundColor","dotNotSelectedColor","selected"],"mappings":";AAGO,MAAMA,SAOT;AAAA,EACFC,MAAM;AAAA,IACJC,SAAS;AAAA,IACTC,SAAS;AAAA,IACTC,eAAe;AAAA,IACfC,UAAU;AAAA,IACVC,gBAAiB,QAAOC,MAAMC,SAASC;AAAAA,EACzC;AAAA,EACAC,gBAAgB;AAAA,IACdC,UAAU;AAAA,IACVC,QAAS,QAAOL,MAAMM,SAASC;AAAAA,IAC/BC,KAAK;AAAA,IACLC,MAAM;AAAA,EACR;AAAA,EACAC,eAAe;AAAA,IACbN,UAAU;AAAA,IACVC,QAAS,QAAOL,MAAMM,SAASC;AAAAA,IAC/BC,KAAK;AAAA,IACLC,MAAM;AAAA,EACR;AAAA,EACAE,iBAAiB;AAAA,IACfhB,SAASK,MAAMC,SAASW,WAAWC;AAAAA,IACnCC,gBAAgB;AAAA,IAChBC,YAAY;AAAA,IACZC,QAAQhB,MAAMC,SAASgB;AAAAA,IACvBC,OAAOlB,MAAMC,SAASgB;AAAAA,IACtBE,cAAcnB,MAAMC,SAASmB;AAAAA,EAC/B;AAAA,EACAC,aAAa;AAAA,IACXL,QAAQhB,MAAMC,SAASqB;AAAAA,IACvBJ,OAAOlB,MAAMC,SAASqB;AAAAA,IACtBH,cAAc;AAAA,IACdxB,SAAS;AAAA,IACT4B,iBAAiBvB,MAAMC,SAASuB;AAAAA,EAClC;AAAA,EACAC,UAAU;AAAA,IACR9B,SAASK,MAAMC,SAASW,WAAWC;AAAAA,IACnCG,QAAQhB,MAAMC,SAASgB;AAAAA,IACvBC,OAAOlB,MAAMC,SAASgB;AAAAA,EACxB;AACF;"}
@@ -0,0 +1,8 @@
1
+ import { getClasses } from "../../../utils/classes.js";
2
+ const classKeys = ["root", "positionSticky", "positionFixed", "notSelectedRoot", "notSelected", "selected"];
3
+ const scrollToHorizontalClasses = getClasses(classKeys, "HvScrollToHorizontal");
4
+ const scrollToHorizontalClasses$1 = scrollToHorizontalClasses;
5
+ export {
6
+ scrollToHorizontalClasses$1 as default
7
+ };
8
+ //# sourceMappingURL=scrollToHorizontalClasses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scrollToHorizontalClasses.js","sources":["../../../../../src/components/ScrollTo/Horizontal/scrollToHorizontalClasses.ts"],"sourcesContent":["import { getClasses } from \"@core/utils\";\n\nexport interface HvScrollToHorizontalClasses {\n root?: string;\n positionSticky?: string;\n positionFixed?: string;\n notSelectedRoot?: string;\n notSelected?: string;\n selected?: string;\n}\n\nconst classKeys: string[] = [\n \"root\",\n \"positionSticky\",\n \"positionFixed\",\n \"notSelectedRoot\",\n \"notSelected\",\n \"selected\",\n];\n\nconst scrollToHorizontalClasses = getClasses<HvScrollToHorizontalClasses>(\n classKeys,\n \"HvScrollToHorizontal\"\n);\n\nexport default scrollToHorizontalClasses;\n"],"names":["classKeys","scrollToHorizontalClasses","getClasses"],"mappings":";AAWA,MAAMA,YAAsB,CAC1B,QACA,kBACA,iBACA,mBACA,eACA,UAAU;AAGZ,MAAMC,4BAA4BC,WAChCF,WACA,sBAAsB;AAGxB,MAAA,8BAAeC;"}
@@ -0,0 +1,90 @@
1
+ import scrollToVerticalClasses from "./scrollToVerticalClasses.js";
2
+ import { generateDynamicStyles, styles } from "./ScrollToVertical.styles.js";
3
+ import { clsx } from "clsx";
4
+ import { useScrollTo } from "../useScrollTo.js";
5
+ import { useMemo } from "react";
6
+ import { withTooltip } from "../withTooltip.js";
7
+ import { ClassNames } from "@emotion/react";
8
+ import fade from "../../../utils/hexToRgbA.js";
9
+ import { jsx } from "@emotion/react/jsx-runtime";
10
+ import useUniqueId from "../../../hooks/useUniqueId.js";
11
+ import { HvVerticalScrollListItem } from "./VerticalScrollListItem/VerticalScrollListItem.js";
12
+ import { useTheme } from "../../../hooks/useTheme.js";
13
+ import { setId } from "../../../utils/setId.js";
14
+ import { isKeypress } from "../../../utils/keyboardUtils/keyCheck.js";
15
+ import { keyboardCodes } from "../../../utils/keyboardUtils/keyboardCodes.js";
16
+ const {
17
+ Enter
18
+ } = keyboardCodes;
19
+ const HvScrollToVertical = ({
20
+ id,
21
+ defaultSelectedIndex = 0,
22
+ scrollElementId,
23
+ href = true,
24
+ onChange,
25
+ onClick,
26
+ onEnter,
27
+ className,
28
+ classes,
29
+ options,
30
+ offset = 0,
31
+ position = "relative",
32
+ tooltipPosition = "left",
33
+ ...others
34
+ }) => {
35
+ const {
36
+ activeTheme,
37
+ selectedMode
38
+ } = useTheme();
39
+ const elementId = useUniqueId(id, "hvVerticalScrollto");
40
+ const [selectedIndex, setScrollTo] = useScrollTo(defaultSelectedIndex, scrollElementId, href, offset, options, onChange);
41
+ const handleSelection = (event, value, index) => {
42
+ event.preventDefault();
43
+ const wrappedOnChange = () => {
44
+ onChange == null ? void 0 : onChange(event, index);
45
+ };
46
+ setScrollTo(event, value, index, wrappedOnChange);
47
+ };
48
+ const tooltipWrappers = useMemo(() => {
49
+ return options.map((option) => {
50
+ return withTooltip(option.label, "div", tooltipPosition, false);
51
+ });
52
+ }, [options, tooltipPosition]);
53
+ const tabs = options.map((option, index) => {
54
+ const selected = selectedIndex === index;
55
+ const tooltipWrapper = tooltipWrappers[index];
56
+ return /* @__PURE__ */ jsx(HvVerticalScrollListItem, {
57
+ id: setId(elementId, `item-${index}`),
58
+ onClick: (event) => {
59
+ handleSelection(event, option.value, index);
60
+ onClick == null ? void 0 : onClick(event, index);
61
+ },
62
+ onKeyDown: (event) => {
63
+ if (isKeypress(event, Enter) === true) {
64
+ handleSelection(event, option.value, index);
65
+ onEnter == null ? void 0 : onEnter(event, index);
66
+ }
67
+ },
68
+ tooltipWrapper,
69
+ selected,
70
+ "aria-label": option.label
71
+ }, option.key || option.label);
72
+ });
73
+ const dynamicClasses = generateDynamicStyles(options.length);
74
+ return /* @__PURE__ */ jsx(ClassNames, {
75
+ children: ({
76
+ css
77
+ }) => /* @__PURE__ */ jsx("ol", {
78
+ className: clsx(className, classes == null ? void 0 : classes.root, scrollToVerticalClasses.root, css(styles.root), css({
79
+ backgroundColor: fade(activeTheme == null ? void 0 : activeTheme.colors.modes[selectedMode].atmo2, activeTheme == null ? void 0 : activeTheme.scrollTo.backgroundColorOpacity)
80
+ }), position === "fixed" && clsx(classes == null ? void 0 : classes.positionFixed, scrollToVerticalClasses.positionFixed, css(dynamicClasses.positionFixed)), position === "absolute" && clsx(classes == null ? void 0 : classes.positionAbsolute, scrollToVerticalClasses.positionAbsolute, css(dynamicClasses.positionAbsolute))),
81
+ id: elementId,
82
+ ...others,
83
+ children: tabs
84
+ })
85
+ });
86
+ };
87
+ export {
88
+ HvScrollToVertical
89
+ };
90
+ //# sourceMappingURL=ScrollToVertical.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScrollToVertical.js","sources":["../../../../../src/components/ScrollTo/Vertical/ScrollToVertical.tsx"],"sourcesContent":["import { HvBaseProps } from \"@core/types\";\nimport scrollToVerticalClasses, {\n HvScrollToVerticalClasses,\n} from \"./scrollToVerticalClasses\";\nimport { generateDynamicStyles, styles } from \"./ScrollToVertical.styles\";\nimport { clsx } from \"clsx\";\nimport { useTheme, useUniqueId } from \"@core/hooks\";\nimport { HvVerticalScrollListItem } from \"./VerticalScrollListItem\";\nimport { isKeypress, keyboardCodes, setId } from \"@core/utils\";\nimport { useScrollTo } from \"../useScrollTo\";\nimport { useMemo } from \"react\";\nimport { withTooltip } from \"../withTooltip\";\nimport { ClassNames } from \"@emotion/react\";\nimport fade from \"@core/utils/hexToRgbA\";\nimport { HvScrollToTooltipPositions } from \"../types\";\n\nconst { Enter } = keyboardCodes;\n\nexport interface HvScrollToVerticalOption {\n key?: string;\n label: string;\n value: string;\n offset?: number;\n}\n\nexport type HvScrollToVerticalPositions = \"absolute\" | \"fixed\" | \"relative\";\n\nexport interface HvScrollToVerticalProps\n extends HvBaseProps<HTMLOListElement, { onChange; onClick }> {\n /** An Array of Objects with Label and Value. Label is the displayed Element and Value is the local navigation location applied */\n options: HvScrollToVerticalOption[];\n /** True if the href location link should be applied. It will create an a element around every list item */\n href?: boolean;\n /** Default selected index passed from the parent. */\n defaultSelectedIndex?: number;\n /**\n * The Id of the scrollable container containing displayed elements.\n *\n * Defaults to `window` if unspecified.\n */\n scrollElementId?: string;\n /**\n * Defines the offset from the top of each element for getting an optimal viewing region in the container.\n * This allows to exclude regions of the container that are obscured by other content (such as fixed-positioned toolbars or titles)\n * or to put more breathing room between the targeted element and the edges of the container.\n *\n * Each element can also have a specific offset via the options property.\n */\n offset?: number;\n /** Position of the Vertical scroll to. */\n position?: HvScrollToVerticalPositions;\n /** Position of tooltip identifying the current item. */\n tooltipPosition?: HvScrollToTooltipPositions;\n /** A function called each time the selected index changes. */\n onChange?: (\n event:\n | Event\n | React.MouseEvent<HTMLDivElement>\n | React.KeyboardEvent<HTMLDivElement>,\n index: number\n ) => void;\n /** A function called each time an user clicks on a tab element. */\n onClick?: (event: React.MouseEvent<HTMLDivElement>, index: number) => void;\n /** A function called each time an user press enter on a tab element. */\n onEnter?: (event: React.KeyboardEvent<HTMLDivElement>, index: number) => void;\n /** A Jss Object used to override or extend the styles applied. */\n classes?: HvScrollToVerticalClasses;\n}\n\n/**\n * The vertical scroll to element can be used to quickly navigate in a page.\n */\nexport const HvScrollToVertical = ({\n id,\n defaultSelectedIndex = 0,\n scrollElementId,\n href = true,\n onChange,\n onClick,\n onEnter,\n className,\n classes,\n options,\n offset = 0,\n position = \"relative\",\n tooltipPosition = \"left\",\n ...others\n}: HvScrollToVerticalProps) => {\n const { activeTheme, selectedMode } = useTheme();\n\n const elementId = useUniqueId(id, \"hvVerticalScrollto\");\n\n const [selectedIndex, setScrollTo] = useScrollTo(\n defaultSelectedIndex,\n scrollElementId,\n href,\n offset,\n options,\n onChange\n );\n\n const handleSelection = (\n event:\n | React.MouseEvent<HTMLDivElement>\n | React.KeyboardEvent<HTMLDivElement>,\n value: string,\n index: number\n ) => {\n event.preventDefault();\n\n const wrappedOnChange = () => {\n onChange?.(event, index);\n };\n\n setScrollTo(event, value, index, wrappedOnChange);\n };\n\n const tooltipWrappers = useMemo(() => {\n return options.map((option) => {\n return withTooltip(option.label, \"div\", tooltipPosition, false);\n });\n }, [options, tooltipPosition]);\n\n const tabs = options.map((option, index) => {\n const selected = selectedIndex === index;\n const tooltipWrapper = tooltipWrappers[index];\n\n return (\n <HvVerticalScrollListItem\n id={setId(elementId, `item-${index}`)}\n onClick={(event) => {\n handleSelection(event, option.value, index);\n onClick?.(event, index);\n }}\n onKeyDown={(event) => {\n if (isKeypress(event, Enter) === true) {\n handleSelection(event, option.value, index);\n onEnter?.(event, index);\n }\n }}\n tooltipWrapper={tooltipWrapper}\n selected={selected}\n key={option.key || option.label}\n aria-label={option.label}\n />\n );\n });\n\n const dynamicClasses = generateDynamicStyles(options.length);\n\n return (\n <ClassNames>\n {({ css }) => (\n <ol\n className={clsx(\n className,\n classes?.root,\n scrollToVerticalClasses.root,\n css(styles.root),\n css({\n backgroundColor: fade(\n activeTheme?.colors.modes[selectedMode].atmo2,\n activeTheme?.scrollTo.backgroundColorOpacity\n ),\n }),\n position === \"fixed\" &&\n clsx(\n classes?.positionFixed,\n scrollToVerticalClasses.positionFixed,\n css(dynamicClasses.positionFixed)\n ),\n position === \"absolute\" &&\n clsx(\n classes?.positionAbsolute,\n scrollToVerticalClasses.positionAbsolute,\n css(dynamicClasses.positionAbsolute)\n )\n )}\n id={elementId}\n {...others}\n >\n {tabs}\n </ol>\n )}\n </ClassNames>\n );\n};\n"],"names":["Enter","keyboardCodes","HvScrollToVertical","id","defaultSelectedIndex","scrollElementId","href","onChange","onClick","onEnter","className","classes","options","offset","position","tooltipPosition","others","activeTheme","selectedMode","useTheme","elementId","useUniqueId","selectedIndex","setScrollTo","useScrollTo","handleSelection","event","value","index","preventDefault","wrappedOnChange","tooltipWrappers","useMemo","map","option","withTooltip","label","tabs","selected","tooltipWrapper","HvVerticalScrollListItem","setId","onKeyDown","isKeypress","key","dynamicClasses","generateDynamicStyles","length","ClassNames","children","css","clsx","root","scrollToVerticalClasses","styles","backgroundColor","fade","colors","modes","atmo2","scrollTo","backgroundColorOpacity","positionFixed","positionAbsolute"],"mappings":";;;;;;;;;;;;;;;AAgBA,MAAM;AAAA,EAAEA;AAAM,IAAIC;AAwDX,MAAMC,qBAAqBA,CAAC;AAAA,EACjCC;AAAAA,EACAC,uBAAuB;AAAA,EACvBC;AAAAA,EACAC,OAAO;AAAA,EACPC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC,SAAS;AAAA,EACTC,WAAW;AAAA,EACXC,kBAAkB;AAAA,EAClB,GAAGC;AACoB,MAAM;AACvB,QAAA;AAAA,IAAEC;AAAAA,IAAaC;AAAAA,MAAiBC,SAAU;AAE1CC,QAAAA,YAAYC,YAAYlB,IAAI,oBAAoB;AAEhD,QAAA,CAACmB,eAAeC,WAAW,IAAIC,YACnCpB,sBACAC,iBACAC,MACAO,QACAD,SACAL,QAAQ;AAGV,QAAMkB,kBAAkBA,CACtBC,OAGAC,OACAC,UACG;AACHF,UAAMG,eAAgB;AAEtB,UAAMC,kBAAkBA,MAAM;AAC5BvB,2CAAWmB,OAAOE;AAAAA,IAAK;AAGbF,gBAAAA,OAAOC,OAAOC,OAAOE,eAAe;AAAA,EAAA;AAG5CC,QAAAA,kBAAkBC,QAAQ,MAAM;AAC7BpB,WAAAA,QAAQqB,IAAKC,CAAW,WAAA;AAC7B,aAAOC,YAAYD,OAAOE,OAAO,OAAOrB,iBAAiB,KAAK;AAAA,IAAA,CAC/D;AAAA,EAAA,GACA,CAACH,SAASG,eAAe,CAAC;AAE7B,QAAMsB,OAAOzB,QAAQqB,IAAI,CAACC,QAAQN,UAAU;AAC1C,UAAMU,WAAWhB,kBAAkBM;AAC7BW,UAAAA,iBAAiBR,gBAAgBH,KAAK;AAE5C,+BACGY,0BAAwB;AAAA,MACvBrC,IAAIsC,MAAMrB,WAAY,QAAOQ,OAAO;AAAA,MACpCpB,SAAUkB,CAAU,UAAA;AACFA,wBAAAA,OAAOQ,OAAOP,OAAOC,KAAK;AAC1CpB,2CAAUkB,OAAOE;AAAAA,MACnB;AAAA,MACAc,WAAYhB,CAAU,UAAA;AACpB,YAAIiB,WAAWjB,OAAO1B,KAAK,MAAM,MAAM;AACrB0B,0BAAAA,OAAOQ,OAAOP,OAAOC,KAAK;AAC1CnB,6CAAUiB,OAAOE;AAAAA,QACnB;AAAA,MACF;AAAA,MACAW;AAAAA,MACAD;AAAAA,MAEA,cAAYJ,OAAOE;AAAAA,IADdF,GAAAA,OAAOU,OAAOV,OAAOE,KAAK;AAAA,EAAA,CAIpC;AAEKS,QAAAA,iBAAiBC,sBAAsBlC,QAAQmC,MAAM;AAE3D,6BACGC,YAAU;AAAA,IAAAC,UACRA,CAAC;AAAA,MAAEC;AAAAA,IAAAA,0BACF,MAAA;AAAA,MACExC,WAAWyC,KACTzC,WACAC,mCAASyC,MACTC,wBAAwBD,MACxBF,IAAII,OAAOF,IAAI,GACfF,IAAI;AAAA,QACFK,iBAAiBC,KACfvC,2CAAawC,OAAOC,MAAMxC,cAAcyC,OACxC1C,2CAAa2C,SAASC,sBAAsB;AAAA,MAE/C,CAAA,GACD/C,aAAa,WACXqC,KACExC,mCAASmD,eACTT,wBAAwBS,eACxBZ,IAAIL,eAAeiB,aAAa,CAAC,GAErChD,aAAa,cACXqC,KACExC,mCAASoD,kBACTV,wBAAwBU,kBACxBb,IAAIL,eAAekB,gBAAgB,CAAC,CACrC;AAAA,MAEL5D,IAAIiB;AAAAA,MAAU,GACVJ;AAAAA,MAAMiC,UAETZ;AAAAA,IAAAA,CAAI;AAAA,EAAA,CAGE;AAEjB;"}
@@ -0,0 +1,43 @@
1
+ import { theme } from "@hitachivantara/uikit-styles";
2
+ const styles = {
3
+ root: {
4
+ display: "flex",
5
+ width: "32px",
6
+ padding: "0",
7
+ margin: 0,
8
+ listStyleType: "none",
9
+ flexWrap: "wrap",
10
+ flexDirection: "column",
11
+ backdropFilter: `blur(${theme.scrollTo.backgroundColorBlur})`
12
+ }
13
+ };
14
+ const calculateOffset = (quantityOfOptions) => {
15
+ const itemSize = 32;
16
+ const halfOptions = Math.round(quantityOfOptions * 0.5);
17
+ return halfOptions * itemSize;
18
+ };
19
+ const generateDynamicStyles = (quantityOfOptions) => {
20
+ const positionOffset = calculateOffset(quantityOfOptions);
21
+ const generatedStyles = {
22
+ positionAbsolute: {
23
+ width: "32px",
24
+ position: "absolute",
25
+ zIndex: `calc(${theme.zIndices.banner} - 2)`,
26
+ right: "0",
27
+ top: `calc(50% - ${positionOffset}px)`
28
+ },
29
+ positionFixed: {
30
+ width: "32px",
31
+ position: "fixed",
32
+ zIndex: `calc(${theme.zIndices.banner} - 2)`,
33
+ right: "0",
34
+ top: `calc(50% - ${positionOffset}px)`
35
+ }
36
+ };
37
+ return generatedStyles;
38
+ };
39
+ export {
40
+ generateDynamicStyles,
41
+ styles
42
+ };
43
+ //# sourceMappingURL=ScrollToVertical.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScrollToVertical.styles.js","sources":["../../../../../src/components/ScrollTo/Vertical/ScrollToVertical.styles.tsx"],"sourcesContent":["import { theme } from \"@hitachivantara/uikit-styles\";\nimport { CSSInterpolation } from \"@emotion/serialize\";\n\nexport const styles: {\n root: CSSInterpolation;\n} = {\n root: {\n display: \"flex\",\n width: \"32px\",\n padding: \"0\",\n margin: 0,\n listStyleType: \"none\",\n flexWrap: \"wrap\",\n flexDirection: \"column\",\n backdropFilter: `blur(${theme.scrollTo.backgroundColorBlur})`,\n },\n};\n\nconst calculateOffset = (quantityOfOptions: number) => {\n const itemSize = 32;\n const halfOptions = Math.round(quantityOfOptions * 0.5);\n\n return halfOptions * itemSize;\n};\n\nexport const generateDynamicStyles = (quantityOfOptions: number) => {\n const positionOffset = calculateOffset(quantityOfOptions);\n\n const generatedStyles: {\n positionAbsolute: CSSInterpolation;\n positionFixed: CSSInterpolation;\n } = {\n positionAbsolute: {\n width: \"32px\",\n position: \"absolute\",\n zIndex: `calc(${theme.zIndices.banner} - 2)`,\n right: \"0\",\n top: `calc(50% - ${positionOffset}px)`,\n },\n positionFixed: {\n width: \"32px\",\n position: \"fixed\",\n zIndex: `calc(${theme.zIndices.banner} - 2)`,\n right: \"0\",\n top: `calc(50% - ${positionOffset}px)`,\n },\n };\n\n return generatedStyles;\n};\n"],"names":["styles","root","display","width","padding","margin","listStyleType","flexWrap","flexDirection","backdropFilter","theme","scrollTo","backgroundColorBlur","calculateOffset","quantityOfOptions","itemSize","halfOptions","Math","round","generateDynamicStyles","positionOffset","generatedStyles","positionAbsolute","position","zIndex","zIndices","banner","right","top","positionFixed"],"mappings":";AAGO,MAAMA,SAET;AAAA,EACFC,MAAM;AAAA,IACJC,SAAS;AAAA,IACTC,OAAO;AAAA,IACPC,SAAS;AAAA,IACTC,QAAQ;AAAA,IACRC,eAAe;AAAA,IACfC,UAAU;AAAA,IACVC,eAAe;AAAA,IACfC,gBAAiB,QAAOC,MAAMC,SAASC;AAAAA,EACzC;AACF;AAEA,MAAMC,kBAAkBA,CAACC,sBAA8B;AACrD,QAAMC,WAAW;AACjB,QAAMC,cAAcC,KAAKC,MAAMJ,oBAAoB,GAAG;AAEtD,SAAOE,cAAcD;AACvB;AAEaI,MAAAA,wBAAwBA,CAACL,sBAA8B;AAC5DM,QAAAA,iBAAiBP,gBAAgBC,iBAAiB;AAExD,QAAMO,kBAGF;AAAA,IACFC,kBAAkB;AAAA,MAChBnB,OAAO;AAAA,MACPoB,UAAU;AAAA,MACVC,QAAS,QAAOd,MAAMe,SAASC;AAAAA,MAC/BC,OAAO;AAAA,MACPC,KAAM,cAAaR;AAAAA,IACrB;AAAA,IACAS,eAAe;AAAA,MACb1B,OAAO;AAAA,MACPoB,UAAU;AAAA,MACVC,QAAS,QAAOd,MAAMe,SAASC;AAAAA,MAC/BC,OAAO;AAAA,MACPC,KAAM,cAAaR;AAAAA,IACrB;AAAA,EAAA;AAGKC,SAAAA;AACT;"}
@@ -0,0 +1,71 @@
1
+ import verticalScrollListItemClasses from "./verticalScrollListItemClasses.js";
2
+ import { ClassNames } from "@emotion/react";
3
+ import { clsx } from "clsx";
4
+ import { styles } from "./VerticalScrollListItem.styles.js";
5
+ import { useCallback } from "react";
6
+ import { CurrentStep } from "@hitachivantara/uikit-react-icons";
7
+ import { jsx } from "@emotion/react/jsx-runtime";
8
+ import { useTheme } from "../../../../hooks/useTheme.js";
9
+ import { setId } from "../../../../utils/setId.js";
10
+ const HvVerticalScrollListItem = ({
11
+ id,
12
+ className,
13
+ classes,
14
+ selected,
15
+ "aria-label": ariaLabel,
16
+ onClick,
17
+ onKeyDown,
18
+ tooltipWrapper,
19
+ ...others
20
+ }) => {
21
+ const {
22
+ activeTheme
23
+ } = useTheme();
24
+ const variant = selected ? "label" : "body";
25
+ const labelId = setId(id, "label");
26
+ const buttonId = setId(id, "button");
27
+ const Tooltip = tooltipWrapper;
28
+ const NotSelected = useCallback(() => {
29
+ return /* @__PURE__ */ jsx(ClassNames, {
30
+ children: ({
31
+ css
32
+ }) => /* @__PURE__ */ jsx("div", {
33
+ className: clsx(classes == null ? void 0 : classes.notSelected, verticalScrollListItemClasses.notSelected, css(styles.notSelected))
34
+ })
35
+ });
36
+ }, [classes == null ? void 0 : classes.notSelected]);
37
+ const icon = selected ? /* @__PURE__ */ jsx(CurrentStep, {
38
+ height: activeTheme == null ? void 0 : activeTheme.scrollTo.dotSelectedSize,
39
+ width: activeTheme == null ? void 0 : activeTheme.scrollTo.dotSelectedSize
40
+ }) : /* @__PURE__ */ jsx(NotSelected, {});
41
+ return /* @__PURE__ */ jsx(ClassNames, {
42
+ children: ({
43
+ css
44
+ }) => /* @__PURE__ */ jsx("li", {
45
+ id,
46
+ className: clsx(className, classes == null ? void 0 : classes.root, verticalScrollListItemClasses.root, css(styles.root)),
47
+ "aria-current": selected,
48
+ children: /* @__PURE__ */ jsx("div", {
49
+ id: buttonId,
50
+ role: "button",
51
+ tabIndex: 0,
52
+ onClick,
53
+ onKeyDown,
54
+ className: clsx(classes == null ? void 0 : classes.button, verticalScrollListItemClasses.button, css(styles.button)),
55
+ "aria-label": ariaLabel,
56
+ "aria-labelledby": labelId,
57
+ ...others,
58
+ children: /* @__PURE__ */ jsx(Tooltip, {
59
+ id: labelId,
60
+ className: clsx(classes == null ? void 0 : classes.text, verticalScrollListItemClasses.text, css(styles.text)),
61
+ variant,
62
+ children: icon
63
+ })
64
+ })
65
+ })
66
+ });
67
+ };
68
+ export {
69
+ HvVerticalScrollListItem
70
+ };
71
+ //# sourceMappingURL=VerticalScrollListItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VerticalScrollListItem.js","sources":["../../../../../../src/components/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.tsx"],"sourcesContent":["import { HvBaseProps } from \"@core/types\";\nimport verticalScrollListItemClasses, {\n HvVerticalScrollListItemClasses,\n} from \"./verticalScrollListItemClasses\";\nimport { ClassNames } from \"@emotion/react\";\nimport { clsx } from \"clsx\";\nimport { styles } from \"./VerticalScrollListItem.styles\";\nimport { HvTypographyProps } from \"@core/components\";\nimport { setId } from \"@core/utils\";\nimport { useCallback } from \"react\";\nimport { CurrentStep } from \"@hitachivantara/uikit-react-icons\";\nimport { useTheme } from \"@core/hooks\";\n\nexport interface HvVerticalScrollListItemProps extends HvBaseProps {\n /** A function component that renders a typography wrapped with a tooltip. */\n tooltipWrapper: React.FunctionComponent<{\n id?: string;\n className?: string;\n variant?: HvTypographyProps[\"variant\"];\n children?: React.ReactNode;\n }>;\n /** A Jss Object used to override or extend the styles applied. */\n classes?: HvVerticalScrollListItemClasses;\n /** Whether the element is selected. */\n selected?: boolean;\n /** The function to be executed when the element is clicked. */\n onClick?: (event: React.MouseEvent<HTMLDivElement>) => void;\n /** The function to be executed when the element is clicked. */\n onKeyDown?: (event: React.KeyboardEvent<HTMLDivElement>) => void;\n}\n\n/**\n * HvVerticalScrollListItem a focusable item to be used as part of the vertical scroll\n */\nexport const HvVerticalScrollListItem = ({\n id,\n className,\n classes,\n selected,\n \"aria-label\": ariaLabel,\n onClick,\n onKeyDown,\n tooltipWrapper,\n ...others\n}: HvVerticalScrollListItemProps) => {\n const { activeTheme } = useTheme();\n\n const variant: HvTypographyProps[\"variant\"] = selected ? \"label\" : \"body\";\n\n const labelId = setId(id, \"label\");\n\n const buttonId = setId(id, \"button\");\n\n const Tooltip = tooltipWrapper;\n\n const NotSelected = useCallback(() => {\n return (\n <ClassNames>\n {({ css }) => (\n <div\n className={clsx(\n classes?.notSelected,\n verticalScrollListItemClasses.notSelected,\n css(styles.notSelected)\n )}\n />\n )}\n </ClassNames>\n );\n }, [classes?.notSelected]);\n\n const icon = selected ? (\n <CurrentStep\n height={activeTheme?.scrollTo.dotSelectedSize}\n width={activeTheme?.scrollTo.dotSelectedSize}\n />\n ) : (\n <NotSelected />\n );\n\n return (\n <ClassNames>\n {({ css }) => (\n <li\n id={id}\n className={clsx(\n className,\n classes?.root,\n verticalScrollListItemClasses.root,\n css(styles.root)\n )}\n aria-current={selected}\n >\n <div\n id={buttonId}\n role=\"button\"\n tabIndex={0}\n onClick={onClick}\n onKeyDown={onKeyDown}\n className={clsx(\n classes?.button,\n verticalScrollListItemClasses.button,\n css(styles.button)\n )}\n aria-label={ariaLabel}\n aria-labelledby={labelId}\n {...others}\n >\n <Tooltip\n id={labelId}\n className={clsx(\n classes?.text,\n verticalScrollListItemClasses.text,\n css(styles.text)\n )}\n variant={variant}\n >\n {icon}\n </Tooltip>\n </div>\n </li>\n )}\n </ClassNames>\n );\n};\n"],"names":["HvVerticalScrollListItem","id","className","classes","selected","ariaLabel","onClick","onKeyDown","tooltipWrapper","others","activeTheme","useTheme","variant","labelId","setId","buttonId","Tooltip","NotSelected","useCallback","ClassNames","children","css","clsx","notSelected","verticalScrollListItemClasses","styles","icon","_jsx","CurrentStep","height","scrollTo","dotSelectedSize","width","root","role","tabIndex","button","text"],"mappings":";;;;;;;;;AAkCO,MAAMA,2BAA2BA,CAAC;AAAA,EACvCC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACA,cAAcC;AAAAA,EACdC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACA,GAAGC;AAC0B,MAAM;AAC7B,QAAA;AAAA,IAAEC;AAAAA,MAAgBC,SAAU;AAE5BC,QAAAA,UAAwCR,WAAW,UAAU;AAE7DS,QAAAA,UAAUC,MAAMb,IAAI,OAAO;AAE3Bc,QAAAA,WAAWD,MAAMb,IAAI,QAAQ;AAEnC,QAAMe,UAAUR;AAEVS,QAAAA,cAAcC,YAAY,MAAM;AACpC,+BACGC,YAAU;AAAA,MAAAC,UACRA,CAAC;AAAA,QAAEC;AAAAA,MAAAA,0BACF,OAAA;AAAA,QACEnB,WAAWoB,KACTnB,mCAASoB,aACTC,8BAA8BD,aAC9BF,IAAII,OAAOF,WAAW,CAAC;AAAA,MAAA,CACvB;AAAA,IAAA,CAGK;AAAA,EAAA,GAEd,CAACpB,mCAASoB,WAAW,CAAC;AAEnBG,QAAAA,OAAOtB,WACXuB,oBAACC,aAAW;AAAA,IACVC,QAAQnB,2CAAaoB,SAASC;AAAAA,IAC9BC,OAAOtB,2CAAaoB,SAASC;AAAAA,EAAgB,CAAA,IAG9Cd,oBAAAA,aACF,CAAA,CAAA;AAED,6BACGE,YAAU;AAAA,IAAAC,UACRA,CAAC;AAAA,MAAEC;AAAAA,IAAAA,0BACF,MAAA;AAAA,MACEpB;AAAAA,MACAC,WAAWoB,KACTpB,WACAC,mCAAS8B,MACTT,8BAA8BS,MAC9BZ,IAAII,OAAOQ,IAAI,CAAC;AAAA,MAElB,gBAAc7B;AAAAA,MAASgB,8BAEvB,OAAA;AAAA,QACEnB,IAAIc;AAAAA,QACJmB,MAAK;AAAA,QACLC,UAAU;AAAA,QACV7B;AAAAA,QACAC;AAAAA,QACAL,WAAWoB,KACTnB,mCAASiC,QACTZ,8BAA8BY,QAC9Bf,IAAII,OAAOW,MAAM,CAAC;AAAA,QAEpB,cAAY/B;AAAAA,QACZ,mBAAiBQ;AAAAA,QAAQ,GACrBJ;AAAAA,QAAMW,8BAETJ,SAAO;AAAA,UACNf,IAAIY;AAAAA,UACJX,WAAWoB,KACTnB,mCAASkC,MACTb,8BAA8Ba,MAC9BhB,IAAII,OAAOY,IAAI,CAAC;AAAA,UAElBzB;AAAAA,UAAiBQ,UAEhBM;AAAAA,QAAAA,CAAI;AAAA,MAAA,CACG;AAAA,IAAA,CACN;AAAA,EAAA,CAGC;AAEjB;"}
@@ -0,0 +1,54 @@
1
+ import { theme } from "@hitachivantara/uikit-styles";
2
+ import verticalScrollListItemClasses from "./verticalScrollListItemClasses.js";
3
+ import { outlineStyles } from "../../../../utils/focusUtils.js";
4
+ const styles = {
5
+ root: {
6
+ padding: "0",
7
+ height: "32px",
8
+ width: "32px",
9
+ display: "flex",
10
+ justifyContent: "center",
11
+ alignItems: "center"
12
+ },
13
+ notSelected: {
14
+ height: theme.scrollTo.dotNotSelectedSize,
15
+ width: theme.scrollTo.dotNotSelectedSize,
16
+ borderRadius: "50%",
17
+ display: "inline-block",
18
+ backgroundColor: theme.scrollTo.dotNotSelectedColor
19
+ },
20
+ text: {
21
+ height: theme.scrollTo.dotRootSize,
22
+ width: theme.scrollTo.dotRootSize,
23
+ display: "flex",
24
+ justifyContent: "center",
25
+ alignItems: "center"
26
+ },
27
+ button: {
28
+ display: "flex",
29
+ justifyContent: "center",
30
+ alignItems: "center",
31
+ height: theme.scrollTo.dotRootSize,
32
+ width: theme.scrollTo.dotRootSize,
33
+ borderRadius: theme.scrollTo.dotRootRadius,
34
+ cursor: "pointer",
35
+ "&:hover": {
36
+ backgroundColor: theme.scrollTo.dotHoverBackgroundColor,
37
+ [`& .${verticalScrollListItemClasses.notSelected}`]: {
38
+ height: theme.scrollTo.dotHoverSize,
39
+ width: theme.scrollTo.dotHoverSize,
40
+ backgroundColor: theme.scrollTo.dotHoverColor
41
+ }
42
+ },
43
+ "&:focus": {
44
+ outline: "none"
45
+ },
46
+ "&:focus-visible": {
47
+ ...outlineStyles
48
+ }
49
+ }
50
+ };
51
+ export {
52
+ styles
53
+ };
54
+ //# sourceMappingURL=VerticalScrollListItem.styles.js.map