@hitachivantara/uikit-react-core 5.15.0 → 5.17.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 (136) hide show
  1. package/dist/cjs/components/ActionBar/ActionBar.cjs +8 -7
  2. package/dist/cjs/components/ActionBar/ActionBar.cjs.map +1 -1
  3. package/dist/cjs/components/ActionBar/ActionBar.styles.cjs +16 -17
  4. package/dist/cjs/components/ActionBar/ActionBar.styles.cjs.map +1 -1
  5. package/dist/cjs/components/Pagination/Pagination.cjs +46 -45
  6. package/dist/cjs/components/Pagination/Pagination.cjs.map +1 -1
  7. package/dist/cjs/components/Pagination/Pagination.styles.cjs +98 -160
  8. package/dist/cjs/components/Pagination/Pagination.styles.cjs.map +1 -1
  9. package/dist/cjs/components/Pagination/Select.cjs +2 -1
  10. package/dist/cjs/components/Pagination/Select.cjs.map +1 -1
  11. package/dist/cjs/components/QueryBuilder/ConfirmationDialog/ConfirmationDialog.cjs +30 -33
  12. package/dist/cjs/components/QueryBuilder/ConfirmationDialog/ConfirmationDialog.cjs.map +1 -1
  13. package/dist/cjs/components/QueryBuilder/ConfirmationDialog/ConfirmationDialog.styles.cjs +14 -0
  14. package/dist/cjs/components/QueryBuilder/ConfirmationDialog/ConfirmationDialog.styles.cjs.map +1 -0
  15. package/dist/cjs/components/QueryBuilder/QueryBuilder.cjs +6 -6
  16. package/dist/cjs/components/QueryBuilder/QueryBuilder.cjs.map +1 -1
  17. package/dist/cjs/components/QueryBuilder/{RuleGroup/RuleGroup.styles.cjs → QueryBuilder.styles.cjs} +48 -29
  18. package/dist/cjs/components/QueryBuilder/QueryBuilder.styles.cjs.map +1 -0
  19. package/dist/cjs/components/QueryBuilder/Rule/Rule.cjs +60 -61
  20. package/dist/cjs/components/QueryBuilder/Rule/Rule.cjs.map +1 -1
  21. package/dist/cjs/components/QueryBuilder/Rule/Rule.styles.cjs +10 -5
  22. package/dist/cjs/components/QueryBuilder/Rule/Rule.styles.cjs.map +1 -1
  23. package/dist/cjs/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.cjs +253 -0
  24. package/dist/cjs/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.cjs.map +1 -0
  25. package/dist/cjs/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.styles.cjs +40 -0
  26. package/dist/cjs/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.styles.cjs.map +1 -0
  27. package/dist/cjs/components/QueryBuilder/Rule/Value/DateTimeValue/utils.cjs +37 -0
  28. package/dist/cjs/components/QueryBuilder/Rule/Value/DateTimeValue/utils.cjs.map +1 -0
  29. package/dist/cjs/components/QueryBuilder/Rule/Value/NumericValue/Numeric.styles.cjs +10 -6
  30. package/dist/cjs/components/QueryBuilder/Rule/Value/NumericValue/Numeric.styles.cjs.map +1 -1
  31. package/dist/cjs/components/QueryBuilder/Rule/Value/NumericValue/NumericValue.cjs +76 -82
  32. package/dist/cjs/components/QueryBuilder/Rule/Value/NumericValue/NumericValue.cjs.map +1 -1
  33. package/dist/cjs/components/QueryBuilder/Rule/Value/TextValue/TextValue.cjs +33 -37
  34. package/dist/cjs/components/QueryBuilder/Rule/Value/TextValue/TextValue.cjs.map +1 -1
  35. package/dist/cjs/components/QueryBuilder/Rule/Value/TextValue/TextValue.styles.cjs +8 -3
  36. package/dist/cjs/components/QueryBuilder/Rule/Value/TextValue/TextValue.styles.cjs.map +1 -1
  37. package/dist/cjs/components/QueryBuilder/Rule/Value/Value.cjs +8 -5
  38. package/dist/cjs/components/QueryBuilder/Rule/Value/Value.cjs.map +1 -1
  39. package/dist/cjs/components/QueryBuilder/RuleGroup/RuleGroup.cjs +155 -166
  40. package/dist/cjs/components/QueryBuilder/RuleGroup/RuleGroup.cjs.map +1 -1
  41. package/dist/cjs/components/TimePicker/Placeholder.cjs +70 -0
  42. package/dist/cjs/components/TimePicker/Placeholder.cjs.map +1 -0
  43. package/dist/cjs/components/TimePicker/TimePicker.cjs +212 -0
  44. package/dist/cjs/components/TimePicker/TimePicker.cjs.map +1 -0
  45. package/dist/cjs/components/TimePicker/TimePicker.styles.cjs +53 -0
  46. package/dist/cjs/components/TimePicker/TimePicker.styles.cjs.map +1 -0
  47. package/dist/cjs/components/TimePicker/Unit/Unit.cjs +72 -0
  48. package/dist/cjs/components/TimePicker/Unit/Unit.cjs.map +1 -0
  49. package/dist/cjs/components/TimePicker/Unit/Unit.styles.cjs +56 -0
  50. package/dist/cjs/components/TimePicker/Unit/Unit.styles.cjs.map +1 -0
  51. package/dist/cjs/index.cjs +10 -6
  52. package/dist/cjs/index.cjs.map +1 -1
  53. package/dist/cjs/utils/classes.cjs +4 -3
  54. package/dist/cjs/utils/classes.cjs.map +1 -1
  55. package/dist/esm/components/ActionBar/ActionBar.js +11 -9
  56. package/dist/esm/components/ActionBar/ActionBar.js.map +1 -1
  57. package/dist/esm/components/ActionBar/ActionBar.styles.js +16 -15
  58. package/dist/esm/components/ActionBar/ActionBar.styles.js.map +1 -1
  59. package/dist/esm/components/Pagination/Pagination.js +50 -48
  60. package/dist/esm/components/Pagination/Pagination.js.map +1 -1
  61. package/dist/esm/components/Pagination/Pagination.styles.js +98 -158
  62. package/dist/esm/components/Pagination/Pagination.styles.js.map +1 -1
  63. package/dist/esm/components/Pagination/Select.js +2 -1
  64. package/dist/esm/components/Pagination/Select.js.map +1 -1
  65. package/dist/esm/components/QueryBuilder/ConfirmationDialog/ConfirmationDialog.js +31 -34
  66. package/dist/esm/components/QueryBuilder/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
  67. package/dist/esm/components/QueryBuilder/ConfirmationDialog/ConfirmationDialog.styles.js +14 -0
  68. package/dist/esm/components/QueryBuilder/ConfirmationDialog/ConfirmationDialog.styles.js.map +1 -0
  69. package/dist/esm/components/QueryBuilder/QueryBuilder.js +6 -6
  70. package/dist/esm/components/QueryBuilder/QueryBuilder.js.map +1 -1
  71. package/dist/esm/components/QueryBuilder/{RuleGroup/RuleGroup.styles.js → QueryBuilder.styles.js} +48 -29
  72. package/dist/esm/components/QueryBuilder/QueryBuilder.styles.js.map +1 -0
  73. package/dist/esm/components/QueryBuilder/Rule/Rule.js +61 -62
  74. package/dist/esm/components/QueryBuilder/Rule/Rule.js.map +1 -1
  75. package/dist/esm/components/QueryBuilder/Rule/Rule.styles.js +10 -5
  76. package/dist/esm/components/QueryBuilder/Rule/Rule.styles.js.map +1 -1
  77. package/dist/esm/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.js +250 -0
  78. package/dist/esm/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.js.map +1 -0
  79. package/dist/esm/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.styles.js +40 -0
  80. package/dist/esm/components/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.styles.js.map +1 -0
  81. package/dist/esm/components/QueryBuilder/Rule/Value/DateTimeValue/utils.js +35 -0
  82. package/dist/esm/components/QueryBuilder/Rule/Value/DateTimeValue/utils.js.map +1 -0
  83. package/dist/esm/components/QueryBuilder/Rule/Value/NumericValue/Numeric.styles.js +10 -6
  84. package/dist/esm/components/QueryBuilder/Rule/Value/NumericValue/Numeric.styles.js.map +1 -1
  85. package/dist/esm/components/QueryBuilder/Rule/Value/NumericValue/NumericValue.js +78 -84
  86. package/dist/esm/components/QueryBuilder/Rule/Value/NumericValue/NumericValue.js.map +1 -1
  87. package/dist/esm/components/QueryBuilder/Rule/Value/TextValue/TextValue.js +34 -38
  88. package/dist/esm/components/QueryBuilder/Rule/Value/TextValue/TextValue.js.map +1 -1
  89. package/dist/esm/components/QueryBuilder/Rule/Value/TextValue/TextValue.styles.js +8 -3
  90. package/dist/esm/components/QueryBuilder/Rule/Value/TextValue/TextValue.styles.js.map +1 -1
  91. package/dist/esm/components/QueryBuilder/Rule/Value/Value.js +7 -4
  92. package/dist/esm/components/QueryBuilder/Rule/Value/Value.js.map +1 -1
  93. package/dist/esm/components/QueryBuilder/RuleGroup/RuleGroup.js +157 -168
  94. package/dist/esm/components/QueryBuilder/RuleGroup/RuleGroup.js.map +1 -1
  95. package/dist/esm/components/TimePicker/Placeholder.js +70 -0
  96. package/dist/esm/components/TimePicker/Placeholder.js.map +1 -0
  97. package/dist/esm/components/TimePicker/TimePicker.js +213 -0
  98. package/dist/esm/components/TimePicker/TimePicker.js.map +1 -0
  99. package/dist/esm/components/TimePicker/TimePicker.styles.js +53 -0
  100. package/dist/esm/components/TimePicker/TimePicker.styles.js.map +1 -0
  101. package/dist/esm/components/TimePicker/Unit/Unit.js +72 -0
  102. package/dist/esm/components/TimePicker/Unit/Unit.js.map +1 -0
  103. package/dist/esm/components/TimePicker/Unit/Unit.styles.js +56 -0
  104. package/dist/esm/components/TimePicker/Unit/Unit.styles.js.map +1 -0
  105. package/dist/esm/index.js +238 -234
  106. package/dist/esm/index.js.map +1 -1
  107. package/dist/esm/utils/classes.js +4 -3
  108. package/dist/esm/utils/classes.js.map +1 -1
  109. package/dist/types/index.d.ts +194 -82
  110. package/package.json +5 -5
  111. package/dist/cjs/components/ActionBar/actionBarClasses.cjs +0 -8
  112. package/dist/cjs/components/ActionBar/actionBarClasses.cjs.map +0 -1
  113. package/dist/cjs/components/Pagination/paginationClasses.cjs +0 -8
  114. package/dist/cjs/components/Pagination/paginationClasses.cjs.map +0 -1
  115. package/dist/cjs/components/QueryBuilder/Rule/Value/NumericValue/numericValueClasses.cjs +0 -8
  116. package/dist/cjs/components/QueryBuilder/Rule/Value/NumericValue/numericValueClasses.cjs.map +0 -1
  117. package/dist/cjs/components/QueryBuilder/Rule/Value/TextValue/textValueClasses.cjs +0 -8
  118. package/dist/cjs/components/QueryBuilder/Rule/Value/TextValue/textValueClasses.cjs.map +0 -1
  119. package/dist/cjs/components/QueryBuilder/Rule/ruleClasses.cjs +0 -8
  120. package/dist/cjs/components/QueryBuilder/Rule/ruleClasses.cjs.map +0 -1
  121. package/dist/cjs/components/QueryBuilder/RuleGroup/RuleGroup.styles.cjs.map +0 -1
  122. package/dist/cjs/components/QueryBuilder/queryBuilderClasses.cjs +0 -8
  123. package/dist/cjs/components/QueryBuilder/queryBuilderClasses.cjs.map +0 -1
  124. package/dist/esm/components/ActionBar/actionBarClasses.js +0 -8
  125. package/dist/esm/components/ActionBar/actionBarClasses.js.map +0 -1
  126. package/dist/esm/components/Pagination/paginationClasses.js +0 -8
  127. package/dist/esm/components/Pagination/paginationClasses.js.map +0 -1
  128. package/dist/esm/components/QueryBuilder/Rule/Value/NumericValue/numericValueClasses.js +0 -8
  129. package/dist/esm/components/QueryBuilder/Rule/Value/NumericValue/numericValueClasses.js.map +0 -1
  130. package/dist/esm/components/QueryBuilder/Rule/Value/TextValue/textValueClasses.js +0 -8
  131. package/dist/esm/components/QueryBuilder/Rule/Value/TextValue/textValueClasses.js.map +0 -1
  132. package/dist/esm/components/QueryBuilder/Rule/ruleClasses.js +0 -8
  133. package/dist/esm/components/QueryBuilder/Rule/ruleClasses.js.map +0 -1
  134. package/dist/esm/components/QueryBuilder/RuleGroup/RuleGroup.styles.js.map +0 -1
  135. package/dist/esm/components/QueryBuilder/queryBuilderClasses.js +0 -8
  136. package/dist/esm/components/QueryBuilder/queryBuilderClasses.js.map +0 -1
@@ -41,7 +41,7 @@ const baseInputClasses = require("./components/BaseInput/baseInputClasses.cjs");
41
41
  const BaseInput = require("./components/BaseInput/BaseInput.cjs");
42
42
  const baseDropdownClasses = require("./components/BaseDropdown/baseDropdownClasses.cjs");
43
43
  const BaseDropdown = require("./components/BaseDropdown/BaseDropdown.cjs");
44
- const actionBarClasses = require("./components/ActionBar/actionBarClasses.cjs");
44
+ const ActionBar_styles = require("./components/ActionBar/ActionBar.styles.cjs");
45
45
  const ActionBar = require("./components/ActionBar/ActionBar.cjs");
46
46
  const accordionClasses = require("./components/Accordion/accordionClasses.cjs");
47
47
  const Accordion = require("./components/Accordion/Accordion.cjs");
@@ -146,7 +146,7 @@ const File = require("./components/FileUploader/File/File.cjs");
146
146
  const FileUploader = require("./components/FileUploader/FileUploader.cjs");
147
147
  const dropDownMenuClasses = require("./components/DropDownMenu/dropDownMenuClasses.cjs");
148
148
  const DropDownMenu = require("./components/DropDownMenu/DropDownMenu.cjs");
149
- const paginationClasses = require("./components/Pagination/paginationClasses.cjs");
149
+ const Pagination_styles = require("./components/Pagination/Pagination.styles.cjs");
150
150
  const Pagination = require("./components/Pagination/Pagination.cjs");
151
151
  const actionsGenericClasses = require("./components/ActionsGeneric/actionsGenericClasses.cjs");
152
152
  const ActionsGeneric = require("./components/ActionsGeneric/ActionsGeneric.cjs");
@@ -245,7 +245,7 @@ const inlineEditorClasses = require("./components/InlineEditor/inlineEditorClass
245
245
  const InlineEditor = require("./components/InlineEditor/InlineEditor.cjs");
246
246
  const timeAgoClasses = require("./components/TimeAgo/timeAgoClasses.cjs");
247
247
  const TimeAgo = require("./components/TimeAgo/TimeAgo.cjs");
248
- const queryBuilderClasses = require("./components/QueryBuilder/queryBuilderClasses.cjs");
248
+ const QueryBuilder_styles = require("./components/QueryBuilder/QueryBuilder.styles.cjs");
249
249
  const QueryBuilder = require("./components/QueryBuilder/QueryBuilder.cjs");
250
250
  const colorPickerClasses = require("./components/ColorPicker/colorPickerClasses.cjs");
251
251
  const ColorPicker = require("./components/ColorPicker/ColorPicker.cjs");
@@ -253,6 +253,8 @@ const Carousel_styles = require("./components/Carousel/Carousel.styles.cjs");
253
253
  const Carousel = require("./components/Carousel/Carousel.cjs");
254
254
  const CarouselSlide_styles = require("./components/Carousel/CarouselSlide/CarouselSlide.styles.cjs");
255
255
  const CarouselSlide = require("./components/Carousel/CarouselSlide/CarouselSlide.cjs");
256
+ const TimePicker_styles = require("./components/TimePicker/TimePicker.styles.cjs");
257
+ const TimePicker = require("./components/TimePicker/TimePicker.cjs");
256
258
  const useUniqueId = require("./hooks/useUniqueId.cjs");
257
259
  const useIsMounted = require("./hooks/useIsMounted.cjs");
258
260
  const useClickOutside = require("./hooks/useClickOutside.cjs");
@@ -349,7 +351,7 @@ exports.baseInputClasses = baseInputClasses.default;
349
351
  exports.HvBaseInput = BaseInput.HvBaseInput;
350
352
  exports.baseDropdownClasses = baseDropdownClasses.default;
351
353
  exports.HvBaseDropdown = BaseDropdown.HvBaseDropdown;
352
- exports.actionBarClasses = actionBarClasses.default;
354
+ exports.actionBarClasses = ActionBar_styles.staticClasses;
353
355
  exports.HvActionBar = ActionBar.HvActionBar;
354
356
  exports.accordionClasses = accordionClasses.default;
355
357
  exports.HvAccordion = Accordion.HvAccordion;
@@ -455,7 +457,7 @@ exports.HvFile = File.HvFile;
455
457
  exports.HvFileUploader = FileUploader.HvFileUploader;
456
458
  exports.dropDownMenuClasses = dropDownMenuClasses.default;
457
459
  exports.HvDropDownMenu = DropDownMenu.default;
458
- exports.paginationClasses = paginationClasses.default;
460
+ exports.paginationClasses = Pagination_styles.staticClasses;
459
461
  exports.HvPagination = Pagination.HvPagination;
460
462
  exports.actionsGenericClasses = actionsGenericClasses.default;
461
463
  exports.HvActionsGeneric = ActionsGeneric.HvActionsGeneric;
@@ -589,7 +591,7 @@ exports.inlineEditorClasses = inlineEditorClasses.default;
589
591
  exports.HvInlineEditor = InlineEditor.HvInlineEditor;
590
592
  exports.timeAgoClasses = timeAgoClasses.default;
591
593
  exports.HvTimeAgo = TimeAgo.HvTimeAgo;
592
- exports.queryBuilderClasses = queryBuilderClasses.default;
594
+ exports.queryBuilderClasses = QueryBuilder_styles.staticClasses;
593
595
  exports.HvQueryBuilder = QueryBuilder.HvQueryBuilder;
594
596
  exports.colorPickerClasses = colorPickerClasses.default;
595
597
  exports.HvColorPicker = ColorPicker.HvColorPicker;
@@ -597,6 +599,8 @@ exports.carouselClasses = Carousel_styles.carouselClasses;
597
599
  exports.HvCarousel = Carousel.HvCarousel;
598
600
  exports.cc = CarouselSlide_styles.cc;
599
601
  exports.HvCarouselSlide = CarouselSlide.HvCarouselSlide;
602
+ exports.timePickerClasses = TimePicker_styles.staticClasses;
603
+ exports.HvTimePicker = TimePicker.HvTimePicker;
600
604
  exports.useUniqueId = useUniqueId.default;
601
605
  exports.useIsMounted = useIsMounted.default;
602
606
  exports.useClickOutside = useClickOutside.useClickOutside;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -31,7 +31,7 @@ const replace$ = (stylesObj, name) => {
31
31
  function createClasses(name, stylesObject) {
32
32
  const styles = replace$(stylesObject, name);
33
33
  const staticClasses = getClasses(Object.keys(styles), name);
34
- function useClasses(classesProp) {
34
+ function useClasses(classesProp = {}) {
35
35
  const {
36
36
  cx,
37
37
  css
@@ -39,8 +39,9 @@ function createClasses(name, stylesObject) {
39
39
  const mergeClasses = (key) => cx(`${name}-${key}`, css(styles[key]), classesProp == null ? void 0 : classesProp[key]);
40
40
  const classes = Object.fromEntries(Object.keys(styles).map((key) => [key, mergeClasses(key)]));
41
41
  return {
42
- cx,
43
- classes
42
+ classes,
43
+ css,
44
+ cx
44
45
  };
45
46
  }
46
47
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"classes.cjs","sources":["../../../src/utils/classes.ts"],"sourcesContent":["import { CSSInterpolation } from \"@emotion/css\";\nimport { useCss } from \"@core/hooks/useCss\";\n\nexport type ExtractNames<\n T extends (...args: any) => { classes: Record<string, any>; cx: any }\n> = ReturnType<T>[\"classes\"];\n\nexport const getClasses = <T extends string, N extends string>(\n keys: T[],\n name: N\n) => {\n const classesObj: Record<string, string> = {};\n keys.forEach((key: string) => {\n classesObj[key] = `${name}-${key}`;\n });\n return classesObj as { [P in T]: `${N}-${P}` };\n};\n\nconst deepRenameKeys = <T extends object>(\n obj: T,\n mapFn: (key: string) => string\n): T => {\n const result: any = {};\n for (const key in obj) {\n if (Object.hasOwn(obj, key)) {\n const newKey = mapFn(key);\n const value = obj[key];\n result[newKey] =\n typeof value === \"object\" ? deepRenameKeys(value as any, mapFn) : value;\n }\n }\n return result;\n};\n\n/** Given a `stylesObj`, replaces its keys' `$myClass` with `.{name}-myClass`. */\nexport const replace$ = <T extends object>(stylesObj: T, name: string): T => {\n return deepRenameKeys(stylesObj, (key) => {\n const matches = key.match(/\\$\\w+/g);\n if (!matches?.length) return key;\n const newKey = matches.reduce(\n (acc, match) => acc.replace(match, `.${name}-${match.slice(1)}`),\n key\n );\n return newKey ?? key;\n });\n};\n\n/** Utility function to create classes for a component. */\nexport function createClasses<Name extends string, ClassName extends string>(\n /** Component name in PascalCase (ie. `HvTableCell`). */\n name: Name,\n stylesObject: Record<ClassName, CSSInterpolation>\n) {\n const styles = replace$(stylesObject, name);\n\n const staticClasses = getClasses(Object.keys(styles) as ClassName[], name);\n\n function useClasses(classesProp: Partial<Record<ClassName, string>>) {\n const { cx, css } = useCss();\n\n const mergeClasses = (key: string) =>\n cx(`${name}-${key}`, css(styles[key]), classesProp?.[key]);\n\n const classes = Object.fromEntries(\n Object.keys(styles).map((key) => [key, mergeClasses(key)])\n ) as { [P in ClassName]: string };\n\n return { cx, classes };\n }\n\n return { useClasses, staticClasses };\n}\n"],"names":["getClasses","keys","name","classesObj","forEach","key","deepRenameKeys","obj","mapFn","result","Object","hasOwn","newKey","value","replace$","stylesObj","matches","match","length","reduce","acc","replace","slice","createClasses","stylesObject","styles","staticClasses","useClasses","classesProp","cx","css","useCss","mergeClasses","classes","fromEntries","map"],"mappings":";;;AAOaA,MAAAA,aAAa,CACxBC,MACAC,SACG;AACH,QAAMC,aAAqC,CAAA;AACtCC,OAAAA,QAAQ,CAACC,QAAgB;AACjBA,eAAAA,GAAG,IAAK,GAAEH,QAAQG;AAAAA,EAAAA,CAC9B;AACMF,SAAAA;AACT;AAEA,MAAMG,iBAAiB,CACrBC,KACAC,UACM;AACN,QAAMC,SAAc,CAAA;AACpB,aAAWJ,OAAOE,KAAK;AACrB,QAAIG,OAAOC,OAAOJ,KAAKF,GAAG,GAAG;AACrBO,YAAAA,SAASJ,MAAMH,GAAG;AAClBQ,YAAAA,QAAQN,IAAIF,GAAG;AACdO,aAAAA,MAAM,IACX,OAAOC,UAAU,WAAWP,eAAeO,OAAcL,KAAK,IAAIK;AAAAA,IACtE;AAAA,EACF;AACOJ,SAAAA;AACT;AAGaK,MAAAA,WAAW,CAAmBC,WAAcb,SAAoB;AACpEI,SAAAA,eAAeS,WAAYV,CAAQ,QAAA;AAClCW,UAAAA,UAAUX,IAAIY,MAAM,QAAQ;AAClC,QAAI,EAACD,mCAASE;AAAeb,aAAAA;AAC7B,UAAMO,SAASI,QAAQG,OACrB,CAACC,KAAKH,UAAUG,IAAIC,QAAQJ,OAAQ,IAAGf,QAAQe,MAAMK,MAAM,CAAC,GAAG,GAC/DjB,GACF;AACA,WAAOO,UAAUP;AAAAA,EAAAA,CAClB;AACH;AAGgBkB,SAAAA,cAEdrB,MACAsB,cACA;AACMC,QAAAA,SAASX,SAASU,cAActB,IAAI;AAE1C,QAAMwB,gBAAgB1B,WAAWU,OAAOT,KAAKwB,MAAM,GAAkBvB,IAAI;AAEzE,WAASyB,WAAWC,aAAiD;AAC7D,UAAA;AAAA,MAAEC;AAAAA,MAAIC;AAAAA,QAAQC,OAAO,OAAA;AAE3B,UAAMC,eAAeA,CAAC3B,QACpBwB,GAAI,GAAE3B,QAAQG,OAAOyB,IAAIL,OAAOpB,GAAG,CAAC,GAAGuB,2CAAcvB,IAAI;AAE3D,UAAM4B,UAAUvB,OAAOwB,YACrBxB,OAAOT,KAAKwB,MAAM,EAAEU,IAAK9B,CAAAA,QAAQ,CAACA,KAAK2B,aAAa3B,GAAG,CAAC,CAAC,CAC3D;AAEO,WAAA;AAAA,MAAEwB;AAAAA,MAAII;AAAAA,IAAAA;AAAAA,EACf;AAEO,SAAA;AAAA,IAAEN;AAAAA,IAAYD;AAAAA,EAAAA;AACvB;;;;"}
1
+ {"version":3,"file":"classes.cjs","sources":["../../../src/utils/classes.ts"],"sourcesContent":["import { CSSInterpolation } from \"@emotion/css\";\nimport { useCss } from \"@core/hooks/useCss\";\n\nexport type ExtractNames<\n T extends (...args: any) => { classes: Record<string, any>; cx: any }\n> = ReturnType<T>[\"classes\"];\n\nexport const getClasses = <T extends string, N extends string>(\n keys: T[],\n name: N\n) => {\n const classesObj: Record<string, string> = {};\n keys.forEach((key: string) => {\n classesObj[key] = `${name}-${key}`;\n });\n return classesObj as { [P in T]: `${N}-${P}` };\n};\n\nconst deepRenameKeys = <T extends object>(\n obj: T,\n mapFn: (key: string) => string\n): T => {\n const result: any = {};\n for (const key in obj) {\n if (Object.hasOwn(obj, key)) {\n const newKey = mapFn(key);\n const value = obj[key];\n result[newKey] =\n typeof value === \"object\" ? deepRenameKeys(value as any, mapFn) : value;\n }\n }\n return result;\n};\n\n/** Given a `stylesObj`, replaces its keys' `$myClass` with `.{name}-myClass`. */\nexport const replace$ = <T extends object>(stylesObj: T, name: string): T => {\n return deepRenameKeys(stylesObj, (key) => {\n const matches = key.match(/\\$\\w+/g);\n if (!matches?.length) return key;\n const newKey = matches.reduce(\n (acc, match) => acc.replace(match, `.${name}-${match.slice(1)}`),\n key\n );\n return newKey ?? key;\n });\n};\n\n/** Utility function to create classes for a component. */\nexport function createClasses<Name extends string, ClassName extends string>(\n /** Component name in PascalCase (ie. `HvTableCell`). */\n name: Name,\n stylesObject: Record<ClassName, CSSInterpolation>\n) {\n const styles = replace$(stylesObject, name);\n\n const staticClasses = getClasses(Object.keys(styles) as ClassName[], name);\n\n function useClasses(classesProp: Partial<Record<ClassName, string>> = {}) {\n const { cx, css } = useCss();\n\n const mergeClasses = (key: string) =>\n cx(`${name}-${key}`, css(styles[key]), classesProp?.[key]);\n\n const classes = Object.fromEntries(\n Object.keys(styles).map((key) => [key, mergeClasses(key)])\n ) as { [P in ClassName]: string };\n\n return { classes, css, cx };\n }\n\n return { useClasses, staticClasses };\n}\n"],"names":["getClasses","keys","name","classesObj","forEach","key","deepRenameKeys","obj","mapFn","result","Object","hasOwn","newKey","value","replace$","stylesObj","matches","match","length","reduce","acc","replace","slice","createClasses","stylesObject","styles","staticClasses","useClasses","classesProp","cx","css","useCss","mergeClasses","classes","fromEntries","map"],"mappings":";;;AAOaA,MAAAA,aAAa,CACxBC,MACAC,SACG;AACH,QAAMC,aAAqC,CAAA;AACtCC,OAAAA,QAAQ,CAACC,QAAgB;AACjBA,eAAAA,GAAG,IAAK,GAAEH,QAAQG;AAAAA,EAAAA,CAC9B;AACMF,SAAAA;AACT;AAEA,MAAMG,iBAAiB,CACrBC,KACAC,UACM;AACN,QAAMC,SAAc,CAAA;AACpB,aAAWJ,OAAOE,KAAK;AACrB,QAAIG,OAAOC,OAAOJ,KAAKF,GAAG,GAAG;AACrBO,YAAAA,SAASJ,MAAMH,GAAG;AAClBQ,YAAAA,QAAQN,IAAIF,GAAG;AACdO,aAAAA,MAAM,IACX,OAAOC,UAAU,WAAWP,eAAeO,OAAcL,KAAK,IAAIK;AAAAA,IACtE;AAAA,EACF;AACOJ,SAAAA;AACT;AAGaK,MAAAA,WAAW,CAAmBC,WAAcb,SAAoB;AACpEI,SAAAA,eAAeS,WAAYV,CAAQ,QAAA;AAClCW,UAAAA,UAAUX,IAAIY,MAAM,QAAQ;AAClC,QAAI,EAACD,mCAASE;AAAeb,aAAAA;AAC7B,UAAMO,SAASI,QAAQG,OACrB,CAACC,KAAKH,UAAUG,IAAIC,QAAQJ,OAAQ,IAAGf,QAAQe,MAAMK,MAAM,CAAC,GAAG,GAC/DjB,GACF;AACA,WAAOO,UAAUP;AAAAA,EAAAA,CAClB;AACH;AAGgBkB,SAAAA,cAEdrB,MACAsB,cACA;AACMC,QAAAA,SAASX,SAASU,cAActB,IAAI;AAE1C,QAAMwB,gBAAgB1B,WAAWU,OAAOT,KAAKwB,MAAM,GAAkBvB,IAAI;AAEhEyB,WAAAA,WAAWC,cAAkD,IAAI;AAClE,UAAA;AAAA,MAAEC;AAAAA,MAAIC;AAAAA,QAAQC,OAAO,OAAA;AAE3B,UAAMC,eAAeA,CAAC3B,QACpBwB,GAAI,GAAE3B,QAAQG,OAAOyB,IAAIL,OAAOpB,GAAG,CAAC,GAAGuB,2CAAcvB,IAAI;AAE3D,UAAM4B,UAAUvB,OAAOwB,YACrBxB,OAAOT,KAAKwB,MAAM,EAAEU,IAAK9B,CAAAA,QAAQ,CAACA,KAAK2B,aAAa3B,GAAG,CAAC,CAAC,CAC3D;AAEO,WAAA;AAAA,MAAE4B;AAAAA,MAASH;AAAAA,MAAKD;AAAAA,IAAAA;AAAAA,EACzB;AAEO,SAAA;AAAA,IAAEF;AAAAA,IAAYD;AAAAA,EAAAA;AACvB;;;;"}
@@ -1,23 +1,25 @@
1
- import { clsx } from "clsx";
2
- import { StyledRoot } from "./ActionBar.styles.js";
3
- import actionBarClasses from "./actionBarClasses.js";
1
+ import { useClasses } from "./ActionBar.styles.js";
2
+ import { staticClasses } from "./ActionBar.styles.js";
4
3
  import { jsx } from "@emotion/react/jsx-runtime";
5
4
  const HvActionBar = (props) => {
6
5
  const {
7
- classes,
6
+ classes: classesProp,
8
7
  className,
9
- id,
10
8
  children,
11
9
  ...others
12
10
  } = props;
13
- return /* @__PURE__ */ jsx(StyledRoot, {
14
- id,
15
- className: clsx(actionBarClasses.root, classes == null ? void 0 : classes.root, className),
11
+ const {
12
+ classes,
13
+ cx
14
+ } = useClasses(classesProp);
15
+ return /* @__PURE__ */ jsx("div", {
16
+ className: cx(classes.root, className),
16
17
  ...others,
17
18
  children
18
19
  });
19
20
  };
20
21
  export {
21
- HvActionBar
22
+ HvActionBar,
23
+ staticClasses as actionBarClasses
22
24
  };
23
25
  //# sourceMappingURL=ActionBar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActionBar.js","sources":["../../../../src/components/ActionBar/ActionBar.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\nimport { HvBaseProps } from \"@core/types\";\nimport { StyledRoot } from \"./ActionBar.styles\";\nimport actionBarClasses, { HvActionBarClasses } from \"./actionBarClasses\";\n\nexport interface HvActionBarProps extends HvBaseProps {\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvActionBarClasses;\n}\n\nexport const HvActionBar = (props: HvActionBarProps) => {\n const { classes, className, id, children, ...others } = props;\n\n return (\n <StyledRoot\n id={id}\n className={clsx(actionBarClasses.root, classes?.root, className)}\n {...others}\n >\n {children}\n </StyledRoot>\n );\n};\n"],"names":["HvActionBar","props","classes","className","id","children","others","StyledRoot","clsx","actionBarClasses","root"],"mappings":";;;;AAUaA,MAAAA,cAAcA,CAACC,UAA4B;AAChD,QAAA;AAAA,IAAEC;AAAAA,IAASC;AAAAA,IAAWC;AAAAA,IAAIC;AAAAA,IAAU,GAAGC;AAAAA,EAAWL,IAAAA;AAExD,6BACGM,YAAU;AAAA,IACTH;AAAAA,IACAD,WAAWK,KAAKC,iBAAiBC,MAAMR,mCAASQ,MAAMP,SAAS;AAAA,IAAE,GAC7DG;AAAAA,IAAMD;AAAAA,EAAAA,CAGA;AAEhB;"}
1
+ {"version":3,"file":"ActionBar.js","sources":["../../../../src/components/ActionBar/ActionBar.tsx"],"sourcesContent":["import { HvBaseProps } from \"@core/types\";\nimport { ExtractNames } from \"@core/utils\";\nimport { staticClasses, useClasses } from \"./ActionBar.styles\";\n\nexport { staticClasses as actionBarClasses };\n\nexport type HvActionBarClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvActionBarProps extends HvBaseProps {\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: Partial<HvActionBarClasses>;\n}\n\nexport const HvActionBar = (props: HvActionBarProps) => {\n const { classes: classesProp, className, children, ...others } = props;\n const { classes, cx } = useClasses(classesProp);\n\n return (\n <div className={cx(classes.root, className)} {...others}>\n {children}\n </div>\n );\n};\n"],"names":["HvActionBar","props","classes","classesProp","className","children","others","cx","useClasses","root"],"mappings":";;;AAaaA,MAAAA,cAAcA,CAACC,UAA4B;AAChD,QAAA;AAAA,IAAEC,SAASC;AAAAA,IAAaC;AAAAA,IAAWC;AAAAA,IAAU,GAAGC;AAAAA,EAAWL,IAAAA;AAC3D,QAAA;AAAA,IAAEC;AAAAA,IAASK;AAAAA,EAAAA,IAAOC,WAAWL,WAAW;AAE9C,6BACE,OAAA;AAAA,IAAKC,WAAWG,GAAGL,QAAQO,MAAML,SAAS;AAAA,IAAE,GAAKE;AAAAA,IAAMD;AAAAA,EAAAA,CAElD;AAET;"}
@@ -1,19 +1,20 @@
1
- import _styled from "@emotion/styled/base";
2
1
  import { theme } from "@hitachivantara/uikit-styles";
3
- const StyledRoot = /* @__PURE__ */ _styled("div", process.env.NODE_ENV === "production" ? {
4
- target: "eae5m590"
5
- } : {
6
- target: "eae5m590",
7
- label: "StyledRoot"
8
- })({
9
- width: "100%",
10
- height: "75px",
11
- padding: theme.space.sm,
12
- borderTop: `3px solid ${theme.colors.atmo2}`,
13
- display: "flex",
14
- justifyContent: "flex-end"
15
- }, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2h2LXVpa2l0LXJlYWN0L2h2LXVpa2l0LXJlYWN0L3BhY2thZ2VzL2NvcmUvc3JjL2NvbXBvbmVudHMvQWN0aW9uQmFyL0FjdGlvbkJhci5zdHlsZXMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUcwQiIsImZpbGUiOiIvaG9tZS9ydW5uZXIvd29yay9odi11aWtpdC1yZWFjdC9odi11aWtpdC1yZWFjdC9wYWNrYWdlcy9jb3JlL3NyYy9jb21wb25lbnRzL0FjdGlvbkJhci9BY3Rpb25CYXIuc3R5bGVzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsgdGhlbWUgfSBmcm9tIFwiQGhpdGFjaGl2YW50YXJhL3Vpa2l0LXN0eWxlc1wiO1xuXG5leHBvcnQgY29uc3QgU3R5bGVkUm9vdCA9IHN0eWxlZChcImRpdlwiKSh7XG4gIHdpZHRoOiBcIjEwMCVcIixcbiAgaGVpZ2h0OiBcIjc1cHhcIixcbiAgcGFkZGluZzogdGhlbWUuc3BhY2Uuc20sXG4gIGJvcmRlclRvcDogYDNweCBzb2xpZCAke3RoZW1lLmNvbG9ycy5hdG1vMn1gLFxuICBkaXNwbGF5OiBcImZsZXhcIixcbiAganVzdGlmeUNvbnRlbnQ6IFwiZmxleC1lbmRcIixcbn0pO1xuIl19 */");
2
+ import { createClasses } from "../../utils/classes.js";
3
+ const {
4
+ staticClasses,
5
+ useClasses
6
+ } = createClasses("HvActionBar", {
7
+ root: {
8
+ width: "100%",
9
+ padding: theme.space.sm,
10
+ borderTop: theme.actionBar.borderTop,
11
+ display: "flex",
12
+ alignItems: "center",
13
+ justifyContent: "flex-end"
14
+ }
15
+ });
16
16
  export {
17
- StyledRoot
17
+ staticClasses,
18
+ useClasses
18
19
  };
19
20
  //# sourceMappingURL=ActionBar.styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActionBar.styles.js","sources":["../../../../src/components/ActionBar/ActionBar.styles.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nexport const StyledRoot = styled(\"div\")({\n width: \"100%\",\n height: \"75px\",\n padding: theme.space.sm,\n borderTop: `3px solid ${theme.colors.atmo2}`,\n display: \"flex\",\n justifyContent: \"flex-end\",\n});\n"],"names":["StyledRoot","process","env","NODE_ENV","target","label","width","height","padding","theme","space","sm","borderTop","colors","atmo2","display","justifyContent"],"mappings":";;AAGO,MAAMA,aAAoB,wBAAA,OAAKC,QAAAC,IAAAC,aAAA,eAAA;AAAA,EAAAC,QAAA;AAAA,IAAA;AAAA,EAAAA,QAAA;AAAA,EAAAC,OAAA;AAAA,CAAA,EAAE;AAAA,EACtCC,OAAO;AAAA,EACPC,QAAQ;AAAA,EACRC,SAASC,MAAMC,MAAMC;AAAAA,EACrBC,WAAY,aAAYH,MAAMI,OAAOC;AAAAA,EACrCC,SAAS;AAAA,EACTC,gBAAgB;AAClB,GAACf,QAAAC,IAAAC,aAAC,eAAA,KAAA,y4BAAA;"}
1
+ {"version":3,"file":"ActionBar.styles.js","sources":["../../../../src/components/ActionBar/ActionBar.styles.tsx"],"sourcesContent":["import { createClasses } from \"@core/utils\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvActionBar\", {\n root: {\n width: \"100%\",\n padding: theme.space.sm,\n borderTop: theme.actionBar.borderTop,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n },\n});\n"],"names":["staticClasses","useClasses","createClasses","root","width","padding","theme","space","sm","borderTop","actionBar","display","alignItems","justifyContent"],"mappings":";;AAGa,MAAA;AAAA,EAAEA;AAAAA,EAAeC;AAAW,IAAIC,cAAc,eAAe;AAAA,EACxEC,MAAM;AAAA,IACJC,OAAO;AAAA,IACPC,SAASC,MAAMC,MAAMC;AAAAA,IACrBC,WAAWH,MAAMI,UAAUD;AAAAA,IAC3BE,SAAS;AAAA,IACTC,YAAY;AAAA,IACZC,gBAAgB;AAAA,EAClB;AACF,CAAC;"}
@@ -1,11 +1,11 @@
1
1
  import { useCallback, useEffect } from "react";
2
- import { clsx } from "clsx";
3
2
  import { Hidden } from "@mui/material";
4
3
  import { Start, Backwards, Forwards, End } from "@hitachivantara/uikit-react-icons";
5
- import { Option } from "./Select.js";
6
- import { StyledRoot, StyledPageSizeOptions, StyledPageSizePrev, StyledSelect, StyledPageSizeTextContainer, StyledPageNavigator, StyledButtonIconTooltip, StyledPageInfo, StyledPageJump } from "./Pagination.styles.js";
7
- import paginationClasses from "./paginationClasses.js";
4
+ import HvSelect, { Option } from "./Select.js";
5
+ import { useClasses } from "./Pagination.styles.js";
6
+ import { staticClasses } from "./Pagination.styles.js";
8
7
  import { usePageInput, setColor, getSafePage } from "./utils.js";
8
+ import ButtonIconTooltip from "./ButtonIconTooltip.js";
9
9
  import { jsxs, jsx, Fragment } from "@emotion/react/jsx-runtime";
10
10
  import { useLabels } from "../../hooks/useLabels.js";
11
11
  import { HvTypography } from "../Typography/Typography.js";
@@ -31,15 +31,16 @@ const DEFAULT_LABELS = {
31
31
  const {
32
32
  Enter
33
33
  } = keyboardCodes;
34
+ const defaultPageSizeOptions = [5, 10, 20, 25, 50, 100];
34
35
  const HvPagination = ({
35
- classes,
36
+ classes: classesProp = {},
36
37
  className,
37
38
  id,
38
39
  pages = 1,
39
40
  page = 0,
40
41
  showPageSizeOptions = true,
41
- pageSizeOptions = [5, 10, 20, 25, 50, 100],
42
- pageSize = 1,
42
+ pageSizeOptions = defaultPageSizeOptions,
43
+ pageSize = defaultPageSizeOptions[1],
43
44
  showPageJump = true,
44
45
  canPrevious = false,
45
46
  canNext = false,
@@ -53,6 +54,10 @@ const HvPagination = ({
53
54
  }) => {
54
55
  const labels = useLabels(DEFAULT_LABELS, labelsProp);
55
56
  const [pageInput, handleInputChange] = usePageInput(page);
57
+ const {
58
+ classes,
59
+ cx
60
+ } = useClasses(classesProp);
56
61
  const changePage = useCallback((newPage) => {
57
62
  const safePage = getSafePage(newPage, page, pages);
58
63
  onPageChange == null ? void 0 : onPageChange(safePage);
@@ -68,8 +73,8 @@ const HvPagination = ({
68
73
  handleInputChange(null, page + 1);
69
74
  }
70
75
  }, [handleInputChange, page]);
71
- const renderPageJump = () => /* @__PURE__ */ jsx(StyledPageJump, {
72
- className: clsx(paginationClasses.pageJump, classes == null ? void 0 : classes.pageJump),
76
+ const renderPageJump = () => /* @__PURE__ */ jsx("div", {
77
+ className: classes.pageJump,
73
78
  children: /* @__PURE__ */ jsx(HvInput, {
74
79
  id: setId(id, "currentPage"),
75
80
  labels,
@@ -79,9 +84,9 @@ const HvPagination = ({
79
84
  type: "number"
80
85
  },
81
86
  classes: {
82
- root: clsx(paginationClasses.pageSizeInputContainer, classes == null ? void 0 : classes.pageSizeInputContainer),
83
- input: clsx(paginationClasses.pageSizeInput, classes == null ? void 0 : classes.pageSizeInput),
84
- inputRoot: clsx(paginationClasses.pageSizeInputRoot, classes == null ? void 0 : classes.pageSizeInputRoot)
87
+ root: classes == null ? void 0 : classes.pageSizeInputContainer,
88
+ input: classes == null ? void 0 : classes.pageSizeInput,
89
+ inputRoot: classes == null ? void 0 : classes.pageSizeInputRoot
85
90
  },
86
91
  onChange: (event, value) => handleInputChange(event, Number(value)),
87
92
  value: String(pageInput),
@@ -92,27 +97,25 @@ const HvPagination = ({
92
97
  ...currentPageInputProps
93
98
  })
94
99
  });
95
- return /* @__PURE__ */ jsxs(StyledRoot, {
100
+ return /* @__PURE__ */ jsxs("div", {
96
101
  id,
97
- className: clsx(className, paginationClasses.root, classes == null ? void 0 : classes.root),
102
+ className: cx(classes.root, className),
98
103
  ...others,
99
- children: [/* @__PURE__ */ jsx(StyledPageSizeOptions, {
100
- className: clsx(paginationClasses.pageSizeOptions, classes == null ? void 0 : classes.pageSizeOptions),
104
+ children: [/* @__PURE__ */ jsx("div", {
105
+ className: classes.pageSizeOptions,
101
106
  ...showPageProps,
102
107
  children: showPageSizeOptions && /* @__PURE__ */ jsxs(Fragment, {
103
108
  children: [/* @__PURE__ */ jsx(Hidden, {
104
109
  xsDown: true,
105
- children: /* @__PURE__ */ jsx(StyledPageSizePrev, {
106
- className: clsx(paginationClasses.pageSizeTextContainer, classes == null ? void 0 : classes.pageSizeTextContainer),
107
- children: /* @__PURE__ */ jsx(HvTypography, {
108
- component: "span",
109
- children: labels == null ? void 0 : labels.pageSizePrev
110
- })
110
+ children: /* @__PURE__ */ jsx(HvTypography, {
111
+ component: "span",
112
+ className: classes == null ? void 0 : classes.pageSizeTextContainer,
113
+ children: labels == null ? void 0 : labels.pageSizePrev
111
114
  })
112
- }), /* @__PURE__ */ jsx(StyledSelect, {
115
+ }), /* @__PURE__ */ jsx(HvSelect, {
113
116
  id: setId(id, "pageSize"),
114
117
  disabled: pageSize === 0,
115
- className: clsx(paginationClasses.pageSizeOptionsSelect, classes == null ? void 0 : classes.pageSizeOptionsSelect),
118
+ className: classes.pageSizeOptionsSelect,
116
119
  "aria-label": labels == null ? void 0 : labels.pageSizeSelectorDescription,
117
120
  onChange: (_, val) => onPageSizeChange == null ? void 0 : onPageSizeChange(val),
118
121
  value: pageSize,
@@ -122,42 +125,40 @@ const HvPagination = ({
122
125
  }, option))
123
126
  }), /* @__PURE__ */ jsx(Hidden, {
124
127
  xsDown: true,
125
- children: /* @__PURE__ */ jsx(StyledPageSizeTextContainer, {
126
- className: clsx(paginationClasses.pageSizeTextContainer, classes == null ? void 0 : classes.pageSizeTextContainer),
127
- children: /* @__PURE__ */ jsx(HvTypography, {
128
- component: "span",
129
- children: labels == null ? void 0 : labels.pageSizeEntryName
130
- })
128
+ children: /* @__PURE__ */ jsx(HvTypography, {
129
+ component: "span",
130
+ className: classes.pageSizeTextContainer,
131
+ children: labels == null ? void 0 : labels.pageSizeEntryName
131
132
  })
132
133
  })]
133
134
  })
134
- }), /* @__PURE__ */ jsxs(StyledPageNavigator, {
135
- className: clsx(paginationClasses.pageNavigator, classes == null ? void 0 : classes.pageNavigator),
135
+ }), /* @__PURE__ */ jsxs("div", {
136
+ className: classes.pageNavigator,
136
137
  ...navigationProps,
137
- children: [/* @__PURE__ */ jsx(StyledButtonIconTooltip, {
138
+ children: [/* @__PURE__ */ jsx(ButtonIconTooltip, {
138
139
  id: setId(id, "firstPage-button"),
139
140
  "aria-label": labels == null ? void 0 : labels.firstPage,
140
- className: clsx(paginationClasses.iconContainer, classes == null ? void 0 : classes.iconContainer),
141
+ className: classes.iconContainer,
141
142
  disabled: !canPrevious,
142
143
  onClick: () => changePage(0),
143
144
  tooltip: labels == null ? void 0 : labels.paginationFirstPageTitle,
144
145
  children: /* @__PURE__ */ jsx(Start, {
145
- className: clsx(paginationClasses.icon, classes == null ? void 0 : classes.icon),
146
+ className: classes.icon,
146
147
  color: setColor(!canPrevious)
147
148
  })
148
- }), /* @__PURE__ */ jsx(StyledButtonIconTooltip, {
149
+ }), /* @__PURE__ */ jsx(ButtonIconTooltip, {
149
150
  id: setId(id, "previousPage-button"),
150
151
  "aria-label": labels == null ? void 0 : labels.previousPage,
151
- className: clsx(paginationClasses.iconContainer, classes == null ? void 0 : classes.iconContainer),
152
+ className: classes.iconContainer,
152
153
  disabled: !canPrevious,
153
154
  onClick: () => changePage(page - 1),
154
155
  tooltip: labels == null ? void 0 : labels.paginationPreviousPageTitle,
155
156
  children: /* @__PURE__ */ jsx(Backwards, {
156
- className: clsx(paginationClasses.icon, classes == null ? void 0 : classes.icon),
157
+ className: classes.icon,
157
158
  color: setColor(!canPrevious)
158
159
  })
159
- }), /* @__PURE__ */ jsxs(StyledPageInfo, {
160
- className: clsx(paginationClasses.pageInfo, classes == null ? void 0 : classes.pageInfo),
160
+ }), /* @__PURE__ */ jsxs("div", {
161
+ className: classes.pageInfo,
161
162
  children: [showPageJump ? renderPageJump() : /* @__PURE__ */ jsx(HvTypography, {
162
163
  component: "span",
163
164
  children: `${page + 1}`
@@ -165,30 +166,30 @@ const HvPagination = ({
165
166
  component: "span",
166
167
  children: `${labels == null ? void 0 : labels.pagesSeparator} `
167
168
  }), /* @__PURE__ */ jsx(HvTypography, {
168
- id: setId(id, "totalPages"),
169
169
  component: "span",
170
+ id: setId(id, "totalPages"),
170
171
  children: pages
171
172
  })]
172
- }), /* @__PURE__ */ jsx(StyledButtonIconTooltip, {
173
+ }), /* @__PURE__ */ jsx(ButtonIconTooltip, {
173
174
  id: setId(id, "nextPage-button"),
174
175
  "aria-label": labels == null ? void 0 : labels.nextPage,
175
- className: clsx(paginationClasses.iconContainer, classes == null ? void 0 : classes.iconContainer),
176
+ className: classes.iconContainer,
176
177
  disabled: !canNext,
177
178
  onClick: () => changePage(page + 1),
178
179
  tooltip: labels == null ? void 0 : labels.paginationNextPageTitle,
179
180
  children: /* @__PURE__ */ jsx(Forwards, {
180
- className: clsx(paginationClasses.icon, classes == null ? void 0 : classes.icon),
181
+ className: classes.icon,
181
182
  color: setColor(!canNext)
182
183
  })
183
- }), /* @__PURE__ */ jsx(StyledButtonIconTooltip, {
184
+ }), /* @__PURE__ */ jsx(ButtonIconTooltip, {
184
185
  id: setId(id, "lastPage-button"),
185
186
  "aria-label": labels == null ? void 0 : labels.lastPage,
186
- className: clsx(paginationClasses.iconContainer, classes == null ? void 0 : classes.iconContainer),
187
+ className: classes.iconContainer,
187
188
  disabled: !canNext,
188
189
  onClick: () => changePage(pages - 1),
189
190
  tooltip: labels == null ? void 0 : labels.paginationLastPageTitle,
190
191
  children: /* @__PURE__ */ jsx(End, {
191
- className: clsx(paginationClasses.icon, classes == null ? void 0 : classes.icon),
192
+ className: classes.icon,
192
193
  color: setColor(!canNext)
193
194
  })
194
195
  })]
@@ -196,6 +197,7 @@ const HvPagination = ({
196
197
  });
197
198
  };
198
199
  export {
199
- HvPagination
200
+ HvPagination,
201
+ staticClasses as paginationClasses
200
202
  };
201
203
  //# sourceMappingURL=Pagination.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.js","sources":["../../../../src/components/Pagination/Pagination.tsx"],"sourcesContent":["import { HTMLAttributes, useCallback, useEffect } from \"react\";\nimport { clsx } from \"clsx\";\nimport { Hidden } from \"@mui/material\";\nimport { HvInput, HvInputProps, HvTypography } from \"@core/components\";\nimport {\n Start,\n End,\n Backwards,\n Forwards,\n} from \"@hitachivantara/uikit-react-icons\";\nimport { HvBaseProps } from \"@core/types\";\nimport { isKeypress, keyboardCodes, setId } from \"@core/utils\";\nimport { useLabels } from \"@core/hooks\";\nimport { Option } from \"./Select\";\nimport {\n StyledRoot,\n StyledPageSizeOptions,\n StyledPageSizePrev,\n StyledSelect,\n StyledPageSizeTextContainer,\n StyledPageNavigator,\n StyledButtonIconTooltip,\n StyledPageJump,\n StyledPageInfo,\n} from \"./Pagination.styles\";\nimport paginationClasses, { HvPaginationClasses } from \"./paginationClasses\";\nimport { usePageInput, getSafePage, setColor } from \"./utils\";\n\nexport interface HvPaginationLabels {\n /** The show label. */\n pageSizePrev?: string;\n /** Indicate the units of the page size selection. */\n pageSizeEntryName?: string;\n /** Used for the aria-label of the selection of number of unit.s */\n pageSizeSelectorDescription?: string;\n /** Separator of current page and total pages. */\n pagesSeparator?: string;\n /** Title of button `firstPage`. */\n paginationFirstPageTitle?: string;\n /** Title of button `previousPage`. */\n paginationPreviousPageTitle?: string;\n /** Title of button `nextPage`. */\n paginationNextPageTitle?: string;\n /** Title of button `lastPage`. */\n paginationLastPageTitle?: string;\n /** Aria-label passed to the page input. */\n paginationInputLabel?: string;\n /** Aria-label of the first page button */\n firstPage?: string;\n /** Aria-label of the previous page button */\n previousPage?: string;\n /** Aria-label of the next page button */\n nextPage?: string;\n /** Aria-label of the last page button */\n lastPage?: string;\n}\n\nexport interface HvPaginationProps extends HvBaseProps {\n /** The number of pages the component has. */\n pages?: number;\n /** The currently selected page (0-indexed). */\n page?: number;\n /** Controls whether the left page size mechanism should be visible. */\n showPageSizeOptions?: boolean;\n /** The array of possible page sizes for the dropdown. */\n pageSizeOptions?: number[];\n /** The currently selected page size. */\n pageSize?: number;\n /** Controls whether the central page changing mechanism should be visible. */\n showPageJump?: boolean;\n /** Controls whether the previous/first page buttons are enabled. */\n canPrevious?: boolean;\n /** Controls whether the next/last page buttons are enabled. */\n canNext?: boolean;\n /** Function called when the page changes. */\n onPageChange?: (page: number) => void;\n /** Function called when the page size changes. */\n onPageSizeChange?: (pageSize: number) => void;\n /** An object containing all the labels for the component. */\n labels?: HvPaginationLabels;\n /** Other props to show page component. */\n showPageProps?: HTMLAttributes<HTMLDivElement>;\n /** Other props to pagination component. */\n navigationProps?: HTMLAttributes<HTMLDivElement>;\n /** Extra properties passed to the input component representing the current pages. */\n currentPageInputProps?: HvInputProps;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvPaginationClasses;\n}\n\nconst DEFAULT_LABELS = {\n pageSizePrev: \"Show\",\n pageSizeEntryName: \"rows\",\n pageSizeSelectorDescription: \"Select how many to display\",\n pagesSeparator: \"/\",\n paginationFirstPageTitle: \"First page\",\n paginationPreviousPageTitle: \"Previous page\",\n paginationNextPageTitle: \"Next page\",\n paginationLastPageTitle: \"Last page\",\n paginationInputLabel: \"Current page\",\n firstPage: \"First Page\",\n previousPage: \"Previous Page\",\n nextPage: \"Next Page\",\n lastPage: \"Last Page\",\n};\n\nconst { Enter } = keyboardCodes;\n\n/**\n * Pagination is the process of dividing a document into discrete pages. It relates to how users interact\n * with structured content on a website or application.\n */\nexport const HvPagination = ({\n classes,\n className,\n id,\n pages = 1,\n page = 0,\n showPageSizeOptions = true,\n pageSizeOptions = [5, 10, 20, 25, 50, 100],\n pageSize = 1,\n showPageJump = true,\n canPrevious = false,\n canNext = false,\n onPageChange,\n onPageSizeChange,\n labels: labelsProp,\n showPageProps,\n navigationProps,\n currentPageInputProps,\n ...others\n}: HvPaginationProps) => {\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n const [pageInput, handleInputChange] = usePageInput(page);\n\n const changePage = useCallback(\n (newPage) => {\n const safePage: number = getSafePage(newPage, page, pages);\n\n onPageChange?.(safePage);\n handleInputChange(null, safePage + 1);\n },\n [page, pages, onPageChange, handleInputChange]\n );\n\n useEffect(() => {\n if (page >= pages && pages > 0) {\n changePage(page);\n }\n }, [changePage, page, pages]);\n\n useEffect(() => {\n if (pageInput !== page + 1) {\n handleInputChange(null, page + 1);\n }\n\n // we only want to \"fix\" the input's display value when `page` property changed\n // (either externally or when internally committed - onBlur or Enter),\n // not while editing the input.\n // breaking a rule of hooks isn't ideal and it's just a hack for fixing\n // a bug preventing properly controlling of the `page` property.\n // fixing it some other way would potentially introduce a breaking change.\n }, [handleInputChange, page]);\n\n const renderPageJump = () => (\n <StyledPageJump\n className={clsx(paginationClasses.pageJump, classes?.pageJump)}\n >\n <HvInput\n id={setId(id, \"currentPage\")}\n labels={labels}\n inputProps={{\n \"aria-label\": labels?.paginationInputLabel,\n // We really want the native number input\n type: \"number\",\n }}\n classes={{\n root: clsx(\n paginationClasses.pageSizeInputContainer,\n classes?.pageSizeInputContainer\n ),\n input: clsx(paginationClasses.pageSizeInput, classes?.pageSizeInput),\n inputRoot: clsx(\n paginationClasses.pageSizeInputRoot,\n classes?.pageSizeInputRoot\n ),\n }}\n onChange={(event, value) => handleInputChange(event, Number(value))}\n value={String(pageInput)}\n onBlur={(evt, value) => changePage(Number(value) - 1)}\n onKeyDown={(evt, value) =>\n isKeypress(evt, Enter) && changePage(Number(value) - 1)\n }\n disabled={pageSize === 0}\n disableClear\n {...currentPageInputProps}\n />\n </StyledPageJump>\n );\n\n return (\n <StyledRoot\n id={id}\n className={clsx(className, paginationClasses.root, classes?.root)}\n {...others}\n >\n <StyledPageSizeOptions\n className={clsx(\n paginationClasses.pageSizeOptions,\n classes?.pageSizeOptions\n )}\n {...showPageProps}\n >\n {showPageSizeOptions && (\n <>\n <Hidden xsDown>\n <StyledPageSizePrev\n className={clsx(\n paginationClasses.pageSizeTextContainer,\n classes?.pageSizeTextContainer\n )}\n >\n <HvTypography component=\"span\">\n {labels?.pageSizePrev}\n </HvTypography>\n </StyledPageSizePrev>\n </Hidden>\n <StyledSelect\n id={setId(id, \"pageSize\")}\n disabled={pageSize === 0}\n className={clsx(\n paginationClasses.pageSizeOptionsSelect,\n classes?.pageSizeOptionsSelect\n )}\n aria-label={labels?.pageSizeSelectorDescription}\n onChange={(_, val: number) => onPageSizeChange?.(val)}\n value={pageSize}\n >\n {pageSizeOptions.map((option) => (\n <Option key={option} value={option}>\n {option}\n </Option>\n ))}\n </StyledSelect>\n <Hidden xsDown>\n <StyledPageSizeTextContainer\n className={clsx(\n paginationClasses.pageSizeTextContainer,\n classes?.pageSizeTextContainer\n )}\n >\n <HvTypography component=\"span\">\n {labels?.pageSizeEntryName}\n </HvTypography>\n </StyledPageSizeTextContainer>\n </Hidden>\n </>\n )}\n </StyledPageSizeOptions>\n <StyledPageNavigator\n className={clsx(\n paginationClasses.pageNavigator,\n classes?.pageNavigator\n )}\n {...navigationProps}\n >\n <StyledButtonIconTooltip\n id={setId(id, \"firstPage-button\")}\n aria-label={labels?.firstPage}\n className={clsx(\n paginationClasses.iconContainer,\n classes?.iconContainer\n )}\n disabled={!canPrevious}\n onClick={() => changePage(0)}\n tooltip={labels?.paginationFirstPageTitle}\n >\n <Start\n className={clsx(paginationClasses.icon, classes?.icon)}\n color={setColor(!canPrevious)}\n />\n </StyledButtonIconTooltip>\n <StyledButtonIconTooltip\n id={setId(id, \"previousPage-button\")}\n aria-label={labels?.previousPage}\n className={clsx(\n paginationClasses.iconContainer,\n classes?.iconContainer\n )}\n disabled={!canPrevious}\n onClick={() => changePage(page - 1)}\n tooltip={labels?.paginationPreviousPageTitle}\n >\n <Backwards\n className={clsx(paginationClasses.icon, classes?.icon)}\n color={setColor(!canPrevious)}\n />\n </StyledButtonIconTooltip>\n <StyledPageInfo\n className={clsx(paginationClasses.pageInfo, classes?.pageInfo)}\n >\n {showPageJump ? (\n renderPageJump()\n ) : (\n <HvTypography component=\"span\">{`${page + 1}`}</HvTypography>\n )}\n <HvTypography component=\"span\">{`${labels?.pagesSeparator} `}</HvTypography>\n <HvTypography id={setId(id, \"totalPages\")} component=\"span\">\n {pages}\n </HvTypography>\n </StyledPageInfo>\n <StyledButtonIconTooltip\n id={setId(id, \"nextPage-button\")}\n aria-label={labels?.nextPage}\n className={clsx(\n paginationClasses.iconContainer,\n classes?.iconContainer\n )}\n disabled={!canNext}\n onClick={() => changePage(page + 1)}\n tooltip={labels?.paginationNextPageTitle}\n >\n <Forwards\n className={clsx(paginationClasses.icon, classes?.icon)}\n color={setColor(!canNext)}\n />\n </StyledButtonIconTooltip>\n <StyledButtonIconTooltip\n id={setId(id, \"lastPage-button\")}\n aria-label={labels?.lastPage}\n className={clsx(\n paginationClasses.iconContainer,\n classes?.iconContainer\n )}\n disabled={!canNext}\n onClick={() => changePage(pages - 1)}\n tooltip={labels?.paginationLastPageTitle}\n >\n <End\n className={clsx(paginationClasses.icon, classes?.icon)}\n color={setColor(!canNext)}\n />\n </StyledButtonIconTooltip>\n </StyledPageNavigator>\n </StyledRoot>\n );\n};\n"],"names":["DEFAULT_LABELS","pageSizePrev","pageSizeEntryName","pageSizeSelectorDescription","pagesSeparator","paginationFirstPageTitle","paginationPreviousPageTitle","paginationNextPageTitle","paginationLastPageTitle","paginationInputLabel","firstPage","previousPage","nextPage","lastPage","Enter","keyboardCodes","HvPagination","classes","className","id","pages","page","showPageSizeOptions","pageSizeOptions","pageSize","showPageJump","canPrevious","canNext","onPageChange","onPageSizeChange","labels","labelsProp","showPageProps","navigationProps","currentPageInputProps","others","useLabels","pageInput","handleInputChange","usePageInput","changePage","useCallback","newPage","safePage","getSafePage","useEffect","renderPageJump","_jsx","StyledPageJump","clsx","paginationClasses","pageJump","children","HvInput","setId","inputProps","type","root","pageSizeInputContainer","input","pageSizeInput","inputRoot","pageSizeInputRoot","onChange","event","value","Number","String","onBlur","evt","onKeyDown","isKeypress","disabled","disableClear","StyledRoot","StyledPageSizeOptions","_jsxs","_Fragment","Hidden","xsDown","StyledPageSizePrev","pageSizeTextContainer","HvTypography","component","StyledSelect","pageSizeOptionsSelect","_","val","map","option","Option","StyledPageSizeTextContainer","StyledPageNavigator","pageNavigator","StyledButtonIconTooltip","iconContainer","onClick","tooltip","Start","icon","color","setColor","Backwards","StyledPageInfo","pageInfo","Forwards","End"],"mappings":"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"}
1
+ {"version":3,"file":"Pagination.js","sources":["../../../../src/components/Pagination/Pagination.tsx"],"sourcesContent":["import { HTMLAttributes, useCallback, useEffect } from \"react\";\nimport { Hidden } from \"@mui/material\";\nimport { HvInput, HvInputProps, HvTypography } from \"@core/components\";\nimport {\n Start,\n End,\n Backwards,\n Forwards,\n} from \"@hitachivantara/uikit-react-icons\";\nimport { HvBaseProps } from \"@core/types\";\nimport { ExtractNames, isKeypress, keyboardCodes, setId } from \"@core/utils\";\nimport { useLabels } from \"@core/hooks\";\nimport HvSelect, { Option } from \"./Select\";\nimport { staticClasses, useClasses } from \"./Pagination.styles\";\nimport { usePageInput, getSafePage, setColor } from \"./utils\";\nimport ButtonIconTooltip from \"./ButtonIconTooltip\";\n\nexport { staticClasses as paginationClasses };\n\nexport type HvPaginationClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvPaginationLabels {\n /** The show label. */\n pageSizePrev?: string;\n /** Indicate the units of the page size selection. */\n pageSizeEntryName?: string;\n /** Used for the aria-label of the selection of number of unit.s */\n pageSizeSelectorDescription?: string;\n /** Separator of current page and total pages. */\n pagesSeparator?: string;\n /** Title of button `firstPage`. */\n paginationFirstPageTitle?: string;\n /** Title of button `previousPage`. */\n paginationPreviousPageTitle?: string;\n /** Title of button `nextPage`. */\n paginationNextPageTitle?: string;\n /** Title of button `lastPage`. */\n paginationLastPageTitle?: string;\n /** Aria-label passed to the page input. */\n paginationInputLabel?: string;\n /** Aria-label of the first page button */\n firstPage?: string;\n /** Aria-label of the previous page button */\n previousPage?: string;\n /** Aria-label of the next page button */\n nextPage?: string;\n /** Aria-label of the last page button */\n lastPage?: string;\n}\n\nexport interface HvPaginationProps extends HvBaseProps {\n /** The number of pages the component has. */\n pages?: number;\n /** The currently selected page (0-indexed). */\n page?: number;\n /** Controls whether the left page size mechanism should be visible. */\n showPageSizeOptions?: boolean;\n /** The array of possible page sizes for the dropdown. */\n pageSizeOptions?: number[];\n /** The currently selected page size. */\n pageSize?: number;\n /** Controls whether the central page changing mechanism should be visible. */\n showPageJump?: boolean;\n /** Controls whether the previous/first page buttons are enabled. */\n canPrevious?: boolean;\n /** Controls whether the next/last page buttons are enabled. */\n canNext?: boolean;\n /** Function called when the page changes. */\n onPageChange?: (page: number) => void;\n /** Function called when the page size changes. */\n onPageSizeChange?: (pageSize: number) => void;\n /** An object containing all the labels for the component. */\n labels?: HvPaginationLabels;\n /** Other props to show page component. */\n showPageProps?: HTMLAttributes<HTMLDivElement>;\n /** Other props to pagination component. */\n navigationProps?: HTMLAttributes<HTMLDivElement>;\n /** Extra properties passed to the input component representing the current pages. */\n currentPageInputProps?: HvInputProps;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: Partial<HvPaginationClasses>;\n}\n\nconst DEFAULT_LABELS = {\n pageSizePrev: \"Show\",\n pageSizeEntryName: \"rows\",\n pageSizeSelectorDescription: \"Select how many to display\",\n pagesSeparator: \"/\",\n paginationFirstPageTitle: \"First page\",\n paginationPreviousPageTitle: \"Previous page\",\n paginationNextPageTitle: \"Next page\",\n paginationLastPageTitle: \"Last page\",\n paginationInputLabel: \"Current page\",\n firstPage: \"First Page\",\n previousPage: \"Previous Page\",\n nextPage: \"Next Page\",\n lastPage: \"Last Page\",\n};\n\nconst { Enter } = keyboardCodes;\n\nconst defaultPageSizeOptions = [5, 10, 20, 25, 50, 100];\n\n/**\n * Pagination is the process of dividing a document into discrete pages. It relates to how users interact\n * with structured content on a website or application.\n */\nexport const HvPagination = ({\n classes: classesProp = {},\n className,\n id,\n pages = 1,\n page = 0,\n showPageSizeOptions = true,\n pageSizeOptions = defaultPageSizeOptions,\n pageSize = defaultPageSizeOptions[1],\n showPageJump = true,\n canPrevious = false,\n canNext = false,\n onPageChange,\n onPageSizeChange,\n labels: labelsProp,\n showPageProps,\n navigationProps,\n currentPageInputProps,\n ...others\n}: HvPaginationProps) => {\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n const [pageInput, handleInputChange] = usePageInput(page);\n const { classes, cx } = useClasses(classesProp);\n\n const changePage = useCallback(\n (newPage: number) => {\n const safePage: number = getSafePage(newPage, page, pages);\n\n onPageChange?.(safePage);\n handleInputChange(null, safePage + 1);\n },\n [page, pages, onPageChange, handleInputChange]\n );\n\n useEffect(() => {\n if (page >= pages && pages > 0) {\n changePage(page);\n }\n }, [changePage, page, pages]);\n\n useEffect(() => {\n if (pageInput !== page + 1) {\n handleInputChange(null, page + 1);\n }\n\n // we only want to \"fix\" the input's display value when `page` property changed\n // (either externally or when internally committed - onBlur or Enter),\n // not while editing the input.\n // breaking a rule of hooks isn't ideal and it's just a hack for fixing\n // a bug preventing properly controlling of the `page` property.\n // fixing it some other way would potentially introduce a breaking change.\n }, [handleInputChange, page]);\n\n const renderPageJump = () => (\n <div className={classes.pageJump}>\n <HvInput\n id={setId(id, \"currentPage\")}\n labels={labels}\n inputProps={{\n \"aria-label\": labels?.paginationInputLabel,\n // We really want the native number input\n type: \"number\",\n }}\n classes={{\n root: classes?.pageSizeInputContainer,\n input: classes?.pageSizeInput,\n inputRoot: classes?.pageSizeInputRoot,\n }}\n onChange={(event, value) => handleInputChange(event, Number(value))}\n value={String(pageInput)}\n onBlur={(evt, value) => changePage(Number(value) - 1)}\n onKeyDown={(evt, value) =>\n isKeypress(evt, Enter) && changePage(Number(value) - 1)\n }\n disabled={pageSize === 0}\n disableClear\n {...currentPageInputProps}\n />\n </div>\n );\n\n return (\n <div id={id} className={cx(classes.root, className)} {...others}>\n <div className={classes.pageSizeOptions} {...showPageProps}>\n {showPageSizeOptions && (\n <>\n <Hidden xsDown>\n <HvTypography\n component=\"span\"\n className={classes?.pageSizeTextContainer}\n >\n {labels?.pageSizePrev}\n </HvTypography>\n </Hidden>\n <HvSelect\n id={setId(id, \"pageSize\")}\n disabled={pageSize === 0}\n className={classes.pageSizeOptionsSelect}\n aria-label={labels?.pageSizeSelectorDescription}\n onChange={(_, val: number) => onPageSizeChange?.(val)}\n value={pageSize}\n >\n {pageSizeOptions.map((option) => (\n <Option key={option} value={option}>\n {option}\n </Option>\n ))}\n </HvSelect>\n <Hidden xsDown>\n <HvTypography\n component=\"span\"\n className={classes.pageSizeTextContainer}\n >\n {labels?.pageSizeEntryName}\n </HvTypography>\n </Hidden>\n </>\n )}\n </div>\n <div className={classes.pageNavigator} {...navigationProps}>\n <ButtonIconTooltip\n id={setId(id, \"firstPage-button\")}\n aria-label={labels?.firstPage}\n className={classes.iconContainer}\n disabled={!canPrevious}\n onClick={() => changePage(0)}\n tooltip={labels?.paginationFirstPageTitle}\n >\n <Start className={classes.icon} color={setColor(!canPrevious)} />\n </ButtonIconTooltip>\n <ButtonIconTooltip\n id={setId(id, \"previousPage-button\")}\n aria-label={labels?.previousPage}\n className={classes.iconContainer}\n disabled={!canPrevious}\n onClick={() => changePage(page - 1)}\n tooltip={labels?.paginationPreviousPageTitle}\n >\n <Backwards className={classes.icon} color={setColor(!canPrevious)} />\n </ButtonIconTooltip>\n <div className={classes.pageInfo}>\n {showPageJump ? (\n renderPageJump()\n ) : (\n <HvTypography component=\"span\">{`${page + 1}`}</HvTypography>\n )}\n <HvTypography component=\"span\">{`${labels?.pagesSeparator} `}</HvTypography>\n <HvTypography component=\"span\" id={setId(id, \"totalPages\")}>\n {pages}\n </HvTypography>\n </div>\n <ButtonIconTooltip\n id={setId(id, \"nextPage-button\")}\n aria-label={labels?.nextPage}\n className={classes.iconContainer}\n disabled={!canNext}\n onClick={() => changePage(page + 1)}\n tooltip={labels?.paginationNextPageTitle}\n >\n <Forwards className={classes.icon} color={setColor(!canNext)} />\n </ButtonIconTooltip>\n <ButtonIconTooltip\n id={setId(id, \"lastPage-button\")}\n aria-label={labels?.lastPage}\n className={classes.iconContainer}\n disabled={!canNext}\n onClick={() => changePage(pages - 1)}\n tooltip={labels?.paginationLastPageTitle}\n >\n <End className={classes.icon} color={setColor(!canNext)} />\n </ButtonIconTooltip>\n </div>\n </div>\n );\n};\n"],"names":["DEFAULT_LABELS","pageSizePrev","pageSizeEntryName","pageSizeSelectorDescription","pagesSeparator","paginationFirstPageTitle","paginationPreviousPageTitle","paginationNextPageTitle","paginationLastPageTitle","paginationInputLabel","firstPage","previousPage","nextPage","lastPage","Enter","keyboardCodes","defaultPageSizeOptions","HvPagination","classes","classesProp","className","id","pages","page","showPageSizeOptions","pageSizeOptions","pageSize","showPageJump","canPrevious","canNext","onPageChange","onPageSizeChange","labels","labelsProp","showPageProps","navigationProps","currentPageInputProps","others","useLabels","pageInput","handleInputChange","usePageInput","cx","useClasses","changePage","useCallback","newPage","safePage","getSafePage","useEffect","renderPageJump","_jsx","pageJump","children","HvInput","setId","inputProps","type","root","pageSizeInputContainer","input","pageSizeInput","inputRoot","pageSizeInputRoot","onChange","event","value","Number","String","onBlur","evt","onKeyDown","isKeypress","disabled","disableClear","_jsxs","_Fragment","Hidden","xsDown","HvTypography","component","pageSizeTextContainer","HvSelect","pageSizeOptionsSelect","_","val","map","option","Option","pageNavigator","ButtonIconTooltip","iconContainer","onClick","tooltip","Start","icon","color","setColor","Backwards","pageInfo","Forwards","End"],"mappings":"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"}