@hitachivantara/uikit-react-core 5.91.3 → 5.92.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 (173) hide show
  1. package/dist/cjs/Accordion/Accordion.cjs +2 -2
  2. package/dist/cjs/ActionsGeneric/ActionsGeneric.cjs +2 -2
  3. package/dist/cjs/AppSwitcher/Action/Action.cjs +10 -2
  4. package/dist/cjs/Avatar/Avatar.cjs +3 -2
  5. package/dist/cjs/BaseDropdown/BaseDropdown.cjs +5 -5
  6. package/dist/cjs/BaseInput/BaseInput.styles.cjs +1 -1
  7. package/dist/cjs/BreadCrumb/PathElement/PathElement.cjs +4 -2
  8. package/dist/cjs/BreadCrumb/utils.cjs +2 -2
  9. package/dist/cjs/ButtonBase/ButtonBase.styles.cjs +1 -4
  10. package/dist/cjs/Calendar/CalendarNavigation/Navigation/Navigation.cjs +3 -3
  11. package/dist/cjs/Carousel/Carousel.cjs +4 -4
  12. package/dist/cjs/Carousel/CarouselControls.cjs +3 -3
  13. package/dist/cjs/ColorPicker/ColorPicker.cjs +2 -2
  14. package/dist/cjs/ColorPicker/ColorPicker.styles.cjs +4 -2
  15. package/dist/cjs/ColorPicker/SavedColors/SavedColors.cjs +3 -3
  16. package/dist/cjs/ColorPicker/SavedColors/SavedColors.styles.cjs +1 -10
  17. package/dist/cjs/DatePicker/DatePicker.cjs +2 -2
  18. package/dist/cjs/Dialog/Dialog.cjs +2 -2
  19. package/dist/cjs/Drawer/Drawer.cjs +2 -2
  20. package/dist/cjs/DropDownMenu/DropDownMenu.cjs +2 -2
  21. package/dist/cjs/DropDownMenu/DropDownMenu.styles.cjs +6 -1
  22. package/dist/cjs/DropdownButton/DropdownButton.cjs +5 -4
  23. package/dist/cjs/FileUploader/DropZone/DropZone.cjs +9 -2
  24. package/dist/cjs/FileUploader/File/File.cjs +4 -4
  25. package/dist/cjs/FileUploader/Preview/Preview.cjs +2 -2
  26. package/dist/cjs/FilterGroup/FilterContent/FilterContent.cjs +2 -2
  27. package/dist/cjs/FormElement/Adornment/Adornment.styles.cjs +5 -1
  28. package/dist/cjs/FormElement/InfoMessage/InfoMessage.styles.cjs +1 -1
  29. package/dist/cjs/FormElement/Label/Label.styles.cjs +1 -1
  30. package/dist/cjs/FormElement/Suggestions/Suggestions.cjs +2 -2
  31. package/dist/cjs/FormElement/WarningText/WarningText.cjs +2 -2
  32. package/dist/cjs/FormElement/WarningText/WarningText.styles.cjs +1 -1
  33. package/dist/cjs/InlineEditor/InlineEditor.cjs +3 -2
  34. package/dist/cjs/Input/Input.cjs +17 -27
  35. package/dist/cjs/Input/Input.styles.cjs +10 -12
  36. package/dist/cjs/Input/icons.cjs +4 -1
  37. package/dist/cjs/List/List.cjs +2 -2
  38. package/dist/cjs/Pagination/Pagination.cjs +5 -5
  39. package/dist/cjs/QueryBuilder/Rule/Rule.cjs +2 -2
  40. package/dist/cjs/QueryBuilder/RuleGroup/RuleGroup.cjs +6 -5
  41. package/dist/cjs/Section/Section.cjs +2 -2
  42. package/dist/cjs/Table/TableHeader/TableHeader.cjs +8 -5
  43. package/dist/cjs/Table/TableHeader/utils.cjs +5 -6
  44. package/dist/cjs/Table/hooks/useHvRowExpand.cjs +2 -2
  45. package/dist/cjs/Table/renderers/renderers.cjs +2 -2
  46. package/dist/cjs/Tag/Tag.cjs +6 -5
  47. package/dist/cjs/Tag/Tag.styles.cjs +8 -3
  48. package/dist/cjs/TimePicker/TimePicker.cjs +2 -8
  49. package/dist/cjs/TimePicker/Unit/Unit.cjs +3 -3
  50. package/dist/cjs/TreeView/TreeView.cjs +3 -3
  51. package/dist/cjs/VerticalNavigation/Header/Header.cjs +4 -4
  52. package/dist/cjs/VerticalNavigation/NavigationSlider/NavigationSlider.cjs +2 -2
  53. package/dist/cjs/VerticalNavigation/TreeView/TreeViewItem.cjs +3 -3
  54. package/dist/cjs/VerticalNavigation/TreeView/TreeViewItem.styles.cjs +1 -1
  55. package/dist/cjs/icons.cjs +83 -0
  56. package/dist/cjs/utils/Callout.cjs +5 -3
  57. package/dist/cjs/utils/iconVariant.cjs +9 -13
  58. package/dist/esm/Accordion/Accordion.js +2 -2
  59. package/dist/esm/Accordion/Accordion.js.map +1 -1
  60. package/dist/esm/ActionsGeneric/ActionsGeneric.js +2 -2
  61. package/dist/esm/ActionsGeneric/ActionsGeneric.js.map +1 -1
  62. package/dist/esm/AppSwitcher/Action/Action.js +10 -2
  63. package/dist/esm/AppSwitcher/Action/Action.js.map +1 -1
  64. package/dist/esm/Avatar/Avatar.js +3 -2
  65. package/dist/esm/Avatar/Avatar.js.map +1 -1
  66. package/dist/esm/BaseDropdown/BaseDropdown.js +5 -5
  67. package/dist/esm/BaseDropdown/BaseDropdown.js.map +1 -1
  68. package/dist/esm/BaseInput/BaseInput.styles.js +1 -1
  69. package/dist/esm/BaseInput/BaseInput.styles.js.map +1 -1
  70. package/dist/esm/BreadCrumb/PathElement/PathElement.js +4 -2
  71. package/dist/esm/BreadCrumb/PathElement/PathElement.js.map +1 -1
  72. package/dist/esm/BreadCrumb/utils.js +2 -2
  73. package/dist/esm/BreadCrumb/utils.js.map +1 -1
  74. package/dist/esm/ButtonBase/ButtonBase.styles.js +1 -4
  75. package/dist/esm/ButtonBase/ButtonBase.styles.js.map +1 -1
  76. package/dist/esm/Calendar/CalendarNavigation/Navigation/Navigation.js +3 -3
  77. package/dist/esm/Calendar/CalendarNavigation/Navigation/Navigation.js.map +1 -1
  78. package/dist/esm/Carousel/Carousel.js +4 -4
  79. package/dist/esm/Carousel/Carousel.js.map +1 -1
  80. package/dist/esm/Carousel/CarouselControls.js +3 -3
  81. package/dist/esm/Carousel/CarouselControls.js.map +1 -1
  82. package/dist/esm/ColorPicker/ColorPicker.js +2 -2
  83. package/dist/esm/ColorPicker/ColorPicker.js.map +1 -1
  84. package/dist/esm/ColorPicker/ColorPicker.styles.js +4 -2
  85. package/dist/esm/ColorPicker/ColorPicker.styles.js.map +1 -1
  86. package/dist/esm/ColorPicker/SavedColors/SavedColors.js +3 -3
  87. package/dist/esm/ColorPicker/SavedColors/SavedColors.js.map +1 -1
  88. package/dist/esm/ColorPicker/SavedColors/SavedColors.styles.js +1 -10
  89. package/dist/esm/ColorPicker/SavedColors/SavedColors.styles.js.map +1 -1
  90. package/dist/esm/DatePicker/DatePicker.js +2 -2
  91. package/dist/esm/DatePicker/DatePicker.js.map +1 -1
  92. package/dist/esm/Dialog/Dialog.js +2 -2
  93. package/dist/esm/Dialog/Dialog.js.map +1 -1
  94. package/dist/esm/Drawer/Drawer.js +2 -2
  95. package/dist/esm/Drawer/Drawer.js.map +1 -1
  96. package/dist/esm/DropDownMenu/DropDownMenu.js +2 -2
  97. package/dist/esm/DropDownMenu/DropDownMenu.js.map +1 -1
  98. package/dist/esm/DropDownMenu/DropDownMenu.styles.js +6 -1
  99. package/dist/esm/DropDownMenu/DropDownMenu.styles.js.map +1 -1
  100. package/dist/esm/DropdownButton/DropdownButton.js +5 -4
  101. package/dist/esm/DropdownButton/DropdownButton.js.map +1 -1
  102. package/dist/esm/FileUploader/DropZone/DropZone.js +9 -2
  103. package/dist/esm/FileUploader/DropZone/DropZone.js.map +1 -1
  104. package/dist/esm/FileUploader/File/File.js +4 -4
  105. package/dist/esm/FileUploader/File/File.js.map +1 -1
  106. package/dist/esm/FileUploader/Preview/Preview.js +2 -2
  107. package/dist/esm/FileUploader/Preview/Preview.js.map +1 -1
  108. package/dist/esm/FilterGroup/FilterContent/FilterContent.js +2 -2
  109. package/dist/esm/FilterGroup/FilterContent/FilterContent.js.map +1 -1
  110. package/dist/esm/FormElement/Adornment/Adornment.styles.js +5 -1
  111. package/dist/esm/FormElement/Adornment/Adornment.styles.js.map +1 -1
  112. package/dist/esm/FormElement/InfoMessage/InfoMessage.styles.js +1 -1
  113. package/dist/esm/FormElement/InfoMessage/InfoMessage.styles.js.map +1 -1
  114. package/dist/esm/FormElement/Label/Label.styles.js +1 -1
  115. package/dist/esm/FormElement/Label/Label.styles.js.map +1 -1
  116. package/dist/esm/FormElement/Suggestions/Suggestions.js +2 -2
  117. package/dist/esm/FormElement/Suggestions/Suggestions.js.map +1 -1
  118. package/dist/esm/FormElement/WarningText/WarningText.js +2 -2
  119. package/dist/esm/FormElement/WarningText/WarningText.js.map +1 -1
  120. package/dist/esm/FormElement/WarningText/WarningText.styles.js +1 -1
  121. package/dist/esm/FormElement/WarningText/WarningText.styles.js.map +1 -1
  122. package/dist/esm/InlineEditor/InlineEditor.js +3 -2
  123. package/dist/esm/InlineEditor/InlineEditor.js.map +1 -1
  124. package/dist/esm/Input/Input.js +16 -26
  125. package/dist/esm/Input/Input.js.map +1 -1
  126. package/dist/esm/Input/Input.styles.js +10 -12
  127. package/dist/esm/Input/Input.styles.js.map +1 -1
  128. package/dist/esm/Input/icons.js +4 -1
  129. package/dist/esm/Input/icons.js.map +1 -1
  130. package/dist/esm/List/List.js +2 -2
  131. package/dist/esm/List/List.js.map +1 -1
  132. package/dist/esm/Pagination/Pagination.js +5 -5
  133. package/dist/esm/Pagination/Pagination.js.map +1 -1
  134. package/dist/esm/QueryBuilder/Rule/Rule.js +2 -2
  135. package/dist/esm/QueryBuilder/Rule/Rule.js.map +1 -1
  136. package/dist/esm/QueryBuilder/RuleGroup/RuleGroup.js +6 -5
  137. package/dist/esm/QueryBuilder/RuleGroup/RuleGroup.js.map +1 -1
  138. package/dist/esm/Section/Section.js +2 -2
  139. package/dist/esm/Section/Section.js.map +1 -1
  140. package/dist/esm/Table/TableHeader/TableHeader.js +10 -7
  141. package/dist/esm/Table/TableHeader/TableHeader.js.map +1 -1
  142. package/dist/esm/Table/TableHeader/utils.js +5 -6
  143. package/dist/esm/Table/TableHeader/utils.js.map +1 -1
  144. package/dist/esm/Table/hooks/useHvRowExpand.js +2 -2
  145. package/dist/esm/Table/hooks/useHvRowExpand.js.map +1 -1
  146. package/dist/esm/Table/renderers/renderers.js +2 -2
  147. package/dist/esm/Table/renderers/renderers.js.map +1 -1
  148. package/dist/esm/Tag/Tag.js +6 -5
  149. package/dist/esm/Tag/Tag.js.map +1 -1
  150. package/dist/esm/Tag/Tag.styles.js +8 -3
  151. package/dist/esm/Tag/Tag.styles.js.map +1 -1
  152. package/dist/esm/TimePicker/TimePicker.js +4 -10
  153. package/dist/esm/TimePicker/TimePicker.js.map +1 -1
  154. package/dist/esm/TimePicker/Unit/Unit.js +3 -3
  155. package/dist/esm/TimePicker/Unit/Unit.js.map +1 -1
  156. package/dist/esm/TreeView/TreeView.js +3 -3
  157. package/dist/esm/TreeView/TreeView.js.map +1 -1
  158. package/dist/esm/VerticalNavigation/Header/Header.js +4 -4
  159. package/dist/esm/VerticalNavigation/Header/Header.js.map +1 -1
  160. package/dist/esm/VerticalNavigation/NavigationSlider/NavigationSlider.js +2 -2
  161. package/dist/esm/VerticalNavigation/NavigationSlider/NavigationSlider.js.map +1 -1
  162. package/dist/esm/VerticalNavigation/TreeView/TreeViewItem.js +3 -3
  163. package/dist/esm/VerticalNavigation/TreeView/TreeViewItem.js.map +1 -1
  164. package/dist/esm/VerticalNavigation/TreeView/TreeViewItem.styles.js +1 -1
  165. package/dist/esm/VerticalNavigation/TreeView/TreeViewItem.styles.js.map +1 -1
  166. package/dist/esm/icons.js +83 -0
  167. package/dist/esm/icons.js.map +1 -1
  168. package/dist/esm/utils/Callout.js +5 -3
  169. package/dist/esm/utils/Callout.js.map +1 -1
  170. package/dist/esm/utils/iconVariant.js +9 -13
  171. package/dist/esm/utils/iconVariant.js.map +1 -1
  172. package/dist/types/index.d.ts +2 -3
  173. package/package.json +5 -6
@@ -1 +1 @@
1
- {"version":3,"file":"File.js","sources":["../../../../src/FileUploader/File/File.tsx"],"sourcesContent":["import { Close, Fail, Success } from \"@hitachivantara/uikit-react-icons\";\nimport {\n useDefaultProps,\n type ExtractNames,\n} from \"@hitachivantara/uikit-react-utils\";\n\nimport { HvIconButton } from \"../../IconButton\";\nimport { HvProgressBar } from \"../../ProgressBar\";\nimport { HvTypography } from \"../../Typography\";\nimport { convertUnits } from \"../utils\";\nimport { staticClasses, useClasses } from \"./File.styles\";\n\nexport { staticClasses as fileClasses };\n\nexport type HvFileClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvFileData extends Omit<File, \"name\" | \"size\"> {\n /**\n * The file id.\n */\n id?: string;\n /**\n * The file name.\n */\n name?: string;\n /**\n * The upload status.\n */\n status?: \"progress\" | \"success\" | \"fail\";\n /**\n * The file size in bytes.\n */\n size?: number;\n /**\n * Upload progress in bytes.\n */\n progress?: number;\n /**\n * Optional node representing a preview of the uploaded file.\n */\n preview?: React.ReactNode;\n /**\n * Error message when the upload failed.\n */\n errorMessage?: string;\n}\n\nexport type HvFilesAddedEvent = (files: HvFileData[]) => void;\n\nexport type HvFileRemovedEvent = (file: HvFileData) => void;\n\nexport type HvFileProps = {\n /**\n * Id to be applied to the root node.\n */\n id?: string;\n /**\n * File information to be displayed.\n */\n data: HvFileData;\n /**\n * Callback fired when file is removed from list.\n */\n onFileRemoved?: HvFileRemovedEvent;\n /**\n * Value of aria-label to apply to remove file button in file list.\n * */\n removeFileButtonLabel?: string;\n /**\n * A Jss Object used to override or extend the styles applied to the component.\n */\n classes?: HvFileClasses;\n};\n\nconst getStatusIcon = (\n classes?: HvFileClasses,\n status?: HvFileData[\"status\"],\n) => {\n switch (status) {\n case \"success\":\n return <Success className={classes?.icon} color=\"positive\" />;\n case \"fail\":\n return <Fail className={classes?.icon} color=\"negative\" />;\n default:\n return <div className={classes?.icon} />;\n }\n};\n\nconst getProgressText = (data: HvFileData, classes?: HvFileClasses) => {\n const hasFailed = data.status === \"fail\";\n const inProgress = data.status === \"progress\";\n\n return (\n <>\n {data.progress || data.size || data.errorMessage ? `\\xa0|\\xa0` : null}\n\n {inProgress && data.progress != null && (\n <HvTypography variant=\"label\">\n {`${convertUnits(data.progress)}\\xa0/\\xa0`}\n </HvTypography>\n )}\n\n {!hasFailed && data.size && (\n <HvTypography>{`${convertUnits(data.size)}`}</HvTypography>\n )}\n\n {hasFailed && data.errorMessage && (\n <HvTypography className={classes?.fail}>\n {data.errorMessage}\n </HvTypography>\n )}\n </>\n );\n};\n\nconst getProgressBarWith = ({ size, progress }: HvFileData) => {\n const width =\n progress != null && size != null ? Math.round((progress * 100) / size) : 0;\n\n return width;\n};\n\nexport const HvFile = (props: HvFileProps) => {\n const {\n classes: classesProp,\n data,\n onFileRemoved,\n removeFileButtonLabel,\n } = useDefaultProps(\"HvFile\", props);\n const { classes, cx } = useClasses(classesProp);\n\n const hasError = data.status === \"fail\";\n\n const inProgress = data.status === \"progress\";\n\n const progressText = getProgressText(data, classes);\n\n const statusIcon = getStatusIcon(classes, data.status);\n\n const currentProgress = getProgressBarWith(data);\n\n return (\n <li className={classes.root}>\n {!hasError && inProgress && (\n <HvProgressBar\n classes={{\n root: classes.progressbar,\n progressBarContainer: cx(\n classes.progressbarContainer,\n classes.progressbarBack,\n ),\n }}\n value={currentProgress}\n hideLabel\n />\n )}\n\n {statusIcon}\n\n <div className={classes.nameText}>\n <HvTypography noWrap variant=\"label\">\n {data.name}\n </HvTypography>\n\n <span className={classes.progressTextContainer}>{progressText}</span>\n </div>\n\n {data.preview && (\n <div className={classes.previewContainer}>{data.preview}</div>\n )}\n\n <HvIconButton\n title={removeFileButtonLabel}\n className={classes.removeButton}\n onClick={() => onFileRemoved?.(data)}\n >\n <Close iconSize=\"XS\" />\n </HvIconButton>\n </li>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;AA0EA,MAAM,gBAAgB,CACpB,SACA,WACG;AACH,UAAQ,QAAQ;AAAA,IACd,KAAK;AACH,iCAAQ,SAAQ,EAAA,WAAW,SAAS,MAAM,OAAM,YAAW;AAAA,IAC7D,KAAK;AACH,iCAAQ,MAAK,EAAA,WAAW,SAAS,MAAM,OAAM,YAAW;AAAA,IAC1D;AACE,aAAQ,oBAAA,OAAA,EAAI,WAAW,SAAS,KAAM,CAAA;AAAA,EAAA;AAE5C;AAEA,MAAM,kBAAkB,CAAC,MAAkB,YAA4B;AAC/D,QAAA,YAAY,KAAK,WAAW;AAC5B,QAAA,aAAa,KAAK,WAAW;AAEnC,SAEK,qBAAA,UAAA,EAAA,UAAA;AAAA,IAAA,KAAK,YAAY,KAAK,QAAQ,KAAK,eAAe,QAAc;AAAA,IAEhE,cAAc,KAAK,YAAY,QAC7B,oBAAA,cAAA,EAAa,SAAQ,SACnB,UAAG,GAAA,aAAa,KAAK,QAAQ,CAAC,OACjC;AAAA,IAGD,CAAC,aAAa,KAAK,QAClB,oBAAC,cAAc,EAAA,UAAA,GAAG,aAAa,KAAK,IAAI,CAAC,GAAG,CAAA;AAAA,IAG7C,aAAa,KAAK,gBACjB,oBAAC,gBAAa,WAAW,SAAS,MAC/B,UAAA,KAAK,aACR,CAAA;AAAA,EAAA,GAEJ;AAEJ;AAEA,MAAM,qBAAqB,CAAC,EAAE,MAAM,eAA2B;AACvD,QAAA,QACJ,YAAY,QAAQ,QAAQ,OAAO,KAAK,MAAO,WAAW,MAAO,IAAI,IAAI;AAEpE,SAAA;AACT;AAEa,MAAA,SAAS,CAAC,UAAuB;AACtC,QAAA;AAAA,IACJ,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACE,gBAAgB,UAAU,KAAK;AACnC,QAAM,EAAE,SAAS,OAAO,WAAW,WAAW;AAExC,QAAA,WAAW,KAAK,WAAW;AAE3B,QAAA,aAAa,KAAK,WAAW;AAE7B,QAAA,eAAe,gBAAgB,MAAM,OAAO;AAElD,QAAM,aAAa,cAAc,SAAS,KAAK,MAAM;AAE/C,QAAA,kBAAkB,mBAAmB,IAAI;AAE/C,SACG,qBAAA,MAAA,EAAG,WAAW,QAAQ,MACpB,UAAA;AAAA,IAAA,CAAC,YAAY,cACZ;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAAS;AAAA,UACP,MAAM,QAAQ;AAAA,UACd,sBAAsB;AAAA,YACpB,QAAQ;AAAA,YACR,QAAQ;AAAA,UAAA;AAAA,QAEZ;AAAA,QACA,OAAO;AAAA,QACP,WAAS;AAAA,MAAA;AAAA,IACX;AAAA,IAGD;AAAA,IAEA,qBAAA,OAAA,EAAI,WAAW,QAAQ,UACtB,UAAA;AAAA,MAAA,oBAAC,gBAAa,QAAM,MAAC,SAAQ,SAC1B,eAAK,MACR;AAAA,MAEC,oBAAA,QAAA,EAAK,WAAW,QAAQ,uBAAwB,UAAa,aAAA,CAAA;AAAA,IAAA,GAChE;AAAA,IAEC,KAAK,WACH,oBAAA,OAAA,EAAI,WAAW,QAAQ,kBAAmB,eAAK,QAAQ,CAAA;AAAA,IAG1D;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAO;AAAA,QACP,WAAW,QAAQ;AAAA,QACnB,SAAS,MAAM,gBAAgB,IAAI;AAAA,QAEnC,UAAA,oBAAC,OAAM,EAAA,UAAS,KAAK,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACvB,GACF;AAEJ;"}
1
+ {"version":3,"file":"File.js","sources":["../../../../src/FileUploader/File/File.tsx"],"sourcesContent":["import {\n useDefaultProps,\n type ExtractNames,\n} from \"@hitachivantara/uikit-react-utils\";\n\nimport { HvIconButton } from \"../../IconButton\";\nimport { HvIcon } from \"../../icons\";\nimport { HvProgressBar } from \"../../ProgressBar\";\nimport { HvTypography } from \"../../Typography\";\nimport { convertUnits } from \"../utils\";\nimport { staticClasses, useClasses } from \"./File.styles\";\n\nexport { staticClasses as fileClasses };\n\nexport type HvFileClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvFileData extends Omit<File, \"name\" | \"size\"> {\n /**\n * The file id.\n */\n id?: string;\n /**\n * The file name.\n */\n name?: string;\n /**\n * The upload status.\n */\n status?: \"progress\" | \"success\" | \"fail\";\n /**\n * The file size in bytes.\n */\n size?: number;\n /**\n * Upload progress in bytes.\n */\n progress?: number;\n /**\n * Optional node representing a preview of the uploaded file.\n */\n preview?: React.ReactNode;\n /**\n * Error message when the upload failed.\n */\n errorMessage?: string;\n}\n\nexport type HvFilesAddedEvent = (files: HvFileData[]) => void;\n\nexport type HvFileRemovedEvent = (file: HvFileData) => void;\n\nexport type HvFileProps = {\n /**\n * Id to be applied to the root node.\n */\n id?: string;\n /**\n * File information to be displayed.\n */\n data: HvFileData;\n /**\n * Callback fired when file is removed from list.\n */\n onFileRemoved?: HvFileRemovedEvent;\n /**\n * Value of aria-label to apply to remove file button in file list.\n * */\n removeFileButtonLabel?: string;\n /**\n * A Jss Object used to override or extend the styles applied to the component.\n */\n classes?: HvFileClasses;\n};\n\nconst getStatusIcon = (\n classes?: HvFileClasses,\n status?: HvFileData[\"status\"],\n) => {\n switch (status) {\n case \"success\":\n return (\n <HvIcon name=\"Success\" className={classes?.icon} color=\"positive\" />\n );\n case \"fail\":\n return <HvIcon name=\"Fail\" className={classes?.icon} color=\"negative\" />;\n default:\n return <div className={classes?.icon} />;\n }\n};\n\nconst getProgressText = (data: HvFileData, classes?: HvFileClasses) => {\n const hasFailed = data.status === \"fail\";\n const inProgress = data.status === \"progress\";\n\n return (\n <>\n {data.progress || data.size || data.errorMessage ? `\\xa0|\\xa0` : null}\n\n {inProgress && data.progress != null && (\n <HvTypography variant=\"label\">\n {`${convertUnits(data.progress)}\\xa0/\\xa0`}\n </HvTypography>\n )}\n\n {!hasFailed && data.size && (\n <HvTypography>{`${convertUnits(data.size)}`}</HvTypography>\n )}\n\n {hasFailed && data.errorMessage && (\n <HvTypography className={classes?.fail}>\n {data.errorMessage}\n </HvTypography>\n )}\n </>\n );\n};\n\nconst getProgressBarWith = ({ size, progress }: HvFileData) => {\n const width =\n progress != null && size != null ? Math.round((progress * 100) / size) : 0;\n\n return width;\n};\n\nexport const HvFile = (props: HvFileProps) => {\n const {\n classes: classesProp,\n data,\n onFileRemoved,\n removeFileButtonLabel,\n } = useDefaultProps(\"HvFile\", props);\n const { classes, cx } = useClasses(classesProp);\n\n const hasError = data.status === \"fail\";\n\n const inProgress = data.status === \"progress\";\n\n const progressText = getProgressText(data, classes);\n\n const statusIcon = getStatusIcon(classes, data.status);\n\n const currentProgress = getProgressBarWith(data);\n\n return (\n <li className={classes.root}>\n {!hasError && inProgress && (\n <HvProgressBar\n classes={{\n root: classes.progressbar,\n progressBarContainer: cx(\n classes.progressbarContainer,\n classes.progressbarBack,\n ),\n }}\n value={currentProgress}\n hideLabel\n />\n )}\n\n {statusIcon}\n\n <div className={classes.nameText}>\n <HvTypography noWrap variant=\"label\">\n {data.name}\n </HvTypography>\n\n <span className={classes.progressTextContainer}>{progressText}</span>\n </div>\n\n {data.preview && (\n <div className={classes.previewContainer}>{data.preview}</div>\n )}\n\n <HvIconButton\n title={removeFileButtonLabel}\n className={classes.removeButton}\n onClick={() => onFileRemoved?.(data)}\n >\n <HvIcon name=\"Close\" size=\"xs\" />\n </HvIconButton>\n </li>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;AA0EA,MAAM,gBAAgB,CACpB,SACA,WACG;AACH,UAAQ,QAAQ;AAAA,IACd,KAAK;AAED,aAAA,oBAAC,UAAO,MAAK,WAAU,WAAW,SAAS,MAAM,OAAM,YAAW;AAAA,IAEtE,KAAK;AACI,aAAA,oBAAC,UAAO,MAAK,QAAO,WAAW,SAAS,MAAM,OAAM,YAAW;AAAA,IACxE;AACE,aAAQ,oBAAA,OAAA,EAAI,WAAW,SAAS,KAAM,CAAA;AAAA,EAAA;AAE5C;AAEA,MAAM,kBAAkB,CAAC,MAAkB,YAA4B;AAC/D,QAAA,YAAY,KAAK,WAAW;AAC5B,QAAA,aAAa,KAAK,WAAW;AAEnC,SAEK,qBAAA,UAAA,EAAA,UAAA;AAAA,IAAA,KAAK,YAAY,KAAK,QAAQ,KAAK,eAAe,QAAc;AAAA,IAEhE,cAAc,KAAK,YAAY,QAC7B,oBAAA,cAAA,EAAa,SAAQ,SACnB,UAAG,GAAA,aAAa,KAAK,QAAQ,CAAC,OACjC;AAAA,IAGD,CAAC,aAAa,KAAK,QAClB,oBAAC,cAAc,EAAA,UAAA,GAAG,aAAa,KAAK,IAAI,CAAC,GAAG,CAAA;AAAA,IAG7C,aAAa,KAAK,gBACjB,oBAAC,gBAAa,WAAW,SAAS,MAC/B,UAAA,KAAK,aACR,CAAA;AAAA,EAAA,GAEJ;AAEJ;AAEA,MAAM,qBAAqB,CAAC,EAAE,MAAM,eAA2B;AACvD,QAAA,QACJ,YAAY,QAAQ,QAAQ,OAAO,KAAK,MAAO,WAAW,MAAO,IAAI,IAAI;AAEpE,SAAA;AACT;AAEa,MAAA,SAAS,CAAC,UAAuB;AACtC,QAAA;AAAA,IACJ,SAAS;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACE,gBAAgB,UAAU,KAAK;AACnC,QAAM,EAAE,SAAS,OAAO,WAAW,WAAW;AAExC,QAAA,WAAW,KAAK,WAAW;AAE3B,QAAA,aAAa,KAAK,WAAW;AAE7B,QAAA,eAAe,gBAAgB,MAAM,OAAO;AAElD,QAAM,aAAa,cAAc,SAAS,KAAK,MAAM;AAE/C,QAAA,kBAAkB,mBAAmB,IAAI;AAE/C,SACG,qBAAA,MAAA,EAAG,WAAW,QAAQ,MACpB,UAAA;AAAA,IAAA,CAAC,YAAY,cACZ;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAAS;AAAA,UACP,MAAM,QAAQ;AAAA,UACd,sBAAsB;AAAA,YACpB,QAAQ;AAAA,YACR,QAAQ;AAAA,UAAA;AAAA,QAEZ;AAAA,QACA,OAAO;AAAA,QACP,WAAS;AAAA,MAAA;AAAA,IACX;AAAA,IAGD;AAAA,IAEA,qBAAA,OAAA,EAAI,WAAW,QAAQ,UACtB,UAAA;AAAA,MAAA,oBAAC,gBAAa,QAAM,MAAC,SAAQ,SAC1B,eAAK,MACR;AAAA,MAEC,oBAAA,QAAA,EAAK,WAAW,QAAQ,uBAAwB,UAAa,aAAA,CAAA;AAAA,IAAA,GAChE;AAAA,IAEC,KAAK,WACH,oBAAA,OAAA,EAAI,WAAW,QAAQ,kBAAmB,eAAK,QAAQ,CAAA;AAAA,IAG1D;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAO;AAAA,QACP,WAAW,QAAQ;AAAA,QACnB,SAAS,MAAM,gBAAgB,IAAI;AAAA,QAEnC,UAAC,oBAAA,QAAA,EAAO,MAAK,SAAQ,MAAK,KAAK,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACjC,GACF;AAEJ;"}
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx } from "react/jsx-runtime";
2
2
  import { useEffect } from "react";
3
- import { Preview } from "@hitachivantara/uikit-react-icons";
4
3
  import { useDefaultProps } from "@hitachivantara/uikit-react-utils";
4
+ import { EyeIcon } from "../../Input/icons.js";
5
5
  import { useClasses } from "./Preview.styles.js";
6
6
  import { staticClasses } from "./Preview.styles.js";
7
7
  import { HvButton } from "../../Button/Button.js";
@@ -32,7 +32,7 @@ const HvFileUploaderPreview = (props) => {
32
32
  children: [
33
33
  children,
34
34
  !disableOverlay && /* @__PURE__ */ jsx("div", { className: classes.overlay, "aria-hidden": "true", children: /* @__PURE__ */ jsx(
35
- Preview,
35
+ EyeIcon,
36
36
  {
37
37
  className: css({
38
38
  position: "absolute",
@@ -1 +1 @@
1
- {"version":3,"file":"Preview.js","sources":["../../../../src/FileUploader/Preview/Preview.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport { Preview } from \"@hitachivantara/uikit-react-icons\";\nimport {\n useDefaultProps,\n type ExtractNames,\n} from \"@hitachivantara/uikit-react-utils\";\n\nimport { HvButton, HvButtonProps } from \"../../Button\";\nimport { staticClasses, useClasses } from \"./Preview.styles\";\n\nexport { staticClasses as fileUploaderPreviewClasses };\n\nexport type HvFileUploaderPreviewClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvFileUploaderPreviewProps\n extends Omit<HvButtonProps, \"children\" | \"classes\"> {\n /**\n * Content that represents the preview of an uploaded file.\n */\n children: React.ReactNode;\n /**\n * Callback executed when the preview is unmounted.\n *\n * Should be used for cleaning up client-side image URLs created by `URL.createObjectURL()`.\n */\n onUnload?: () => void;\n /**\n * If `true`, doesn't show an overlay on top of the preview when hovering.\n *\n * Only applies when `onClick` is set.\n */\n disableOverlay?: boolean;\n /**\n * A Jss Object used to override or extend the styles applied to the component.\n */\n classes?: HvFileUploaderPreviewClasses;\n}\n\n/**\n * The `HvFileUploaderPreview` component is available to facilitate the styling\n * of the button (when clickable) and the detection of image unloading.\n */\nexport const HvFileUploaderPreview = (props: HvFileUploaderPreviewProps) => {\n const {\n className,\n children,\n classes: classesProp,\n disableOverlay = false,\n onUnload,\n onClick,\n ...others\n } = useDefaultProps(\"HvFileUploaderPreview\", props);\n const { classes, cx, css } = useClasses(classesProp);\n\n useEffect(() => {\n return () => {\n onUnload?.();\n };\n }, [onUnload]);\n\n if (onClick) {\n return (\n <HvButton\n icon\n className={cx(classes.previewButton, className)}\n onClick={onClick}\n {...others}\n >\n {children}\n {!disableOverlay && (\n <div className={classes.overlay} aria-hidden=\"true\">\n <Preview\n className={css({\n position: \"absolute\",\n left: \"50%\",\n top: \"50%\",\n transform: \"translate(-50%, -50%)\",\n display: \"none\",\n })}\n />\n </div>\n )}\n </HvButton>\n );\n }\n\n return children;\n};\n"],"names":[],"mappings":";;;;;;;AA0Ca,MAAA,wBAAwB,CAAC,UAAsC;AACpE,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EAAA,IACD,gBAAgB,yBAAyB,KAAK;AAClD,QAAM,EAAE,SAAS,IAAI,IAAI,IAAI,WAAW,WAAW;AAEnD,YAAU,MAAM;AACd,WAAO,MAAM;AACA,iBAAA;AAAA,IACb;AAAA,EAAA,GACC,CAAC,QAAQ,CAAC;AAEb,MAAI,SAAS;AAET,WAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAI;AAAA,QACJ,WAAW,GAAG,QAAQ,eAAe,SAAS;AAAA,QAC9C;AAAA,QACC,GAAG;AAAA,QAEH,UAAA;AAAA,UAAA;AAAA,UACA,CAAC,kBACC,oBAAA,OAAA,EAAI,WAAW,QAAQ,SAAS,eAAY,QAC3C,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW,IAAI;AAAA,gBACb,UAAU;AAAA,gBACV,MAAM;AAAA,gBACN,KAAK;AAAA,gBACL,WAAW;AAAA,gBACX,SAAS;AAAA,cACV,CAAA;AAAA,YAAA;AAAA,UAAA,EAEL,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAEJ;AAAA,EAAA;AAIG,SAAA;AACT;"}
1
+ {"version":3,"file":"Preview.js","sources":["../../../../src/FileUploader/Preview/Preview.tsx"],"sourcesContent":["import { useEffect } from \"react\";\nimport {\n useDefaultProps,\n type ExtractNames,\n} from \"@hitachivantara/uikit-react-utils\";\n\nimport { HvButton, HvButtonProps } from \"../../Button\";\nimport { EyeIcon } from \"../../Input/icons\";\nimport { staticClasses, useClasses } from \"./Preview.styles\";\n\nexport { staticClasses as fileUploaderPreviewClasses };\n\nexport type HvFileUploaderPreviewClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvFileUploaderPreviewProps\n extends Omit<HvButtonProps, \"children\" | \"classes\"> {\n /**\n * Content that represents the preview of an uploaded file.\n */\n children: React.ReactNode;\n /**\n * Callback executed when the preview is unmounted.\n *\n * Should be used for cleaning up client-side image URLs created by `URL.createObjectURL()`.\n */\n onUnload?: () => void;\n /**\n * If `true`, doesn't show an overlay on top of the preview when hovering.\n *\n * Only applies when `onClick` is set.\n */\n disableOverlay?: boolean;\n /**\n * A Jss Object used to override or extend the styles applied to the component.\n */\n classes?: HvFileUploaderPreviewClasses;\n}\n\n/**\n * The `HvFileUploaderPreview` component is available to facilitate the styling\n * of the button (when clickable) and the detection of image unloading.\n */\nexport const HvFileUploaderPreview = (props: HvFileUploaderPreviewProps) => {\n const {\n className,\n children,\n classes: classesProp,\n disableOverlay = false,\n onUnload,\n onClick,\n ...others\n } = useDefaultProps(\"HvFileUploaderPreview\", props);\n const { classes, cx, css } = useClasses(classesProp);\n\n useEffect(() => {\n return () => {\n onUnload?.();\n };\n }, [onUnload]);\n\n if (onClick) {\n return (\n <HvButton\n icon\n className={cx(classes.previewButton, className)}\n onClick={onClick}\n {...others}\n >\n {children}\n {!disableOverlay && (\n <div className={classes.overlay} aria-hidden=\"true\">\n <EyeIcon\n className={css({\n position: \"absolute\",\n left: \"50%\",\n top: \"50%\",\n transform: \"translate(-50%, -50%)\",\n display: \"none\",\n })}\n />\n </div>\n )}\n </HvButton>\n );\n }\n\n return children;\n};\n"],"names":[],"mappings":";;;;;;;AA0Ca,MAAA,wBAAwB,CAAC,UAAsC;AACpE,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EAAA,IACD,gBAAgB,yBAAyB,KAAK;AAClD,QAAM,EAAE,SAAS,IAAI,IAAI,IAAI,WAAW,WAAW;AAEnD,YAAU,MAAM;AACd,WAAO,MAAM;AACA,iBAAA;AAAA,IACb;AAAA,EAAA,GACC,CAAC,QAAQ,CAAC;AAEb,MAAI,SAAS;AAET,WAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAI;AAAA,QACJ,WAAW,GAAG,QAAQ,eAAe,SAAS;AAAA,QAC9C;AAAA,QACC,GAAG;AAAA,QAEH,UAAA;AAAA,UAAA;AAAA,UACA,CAAC,kBACC,oBAAA,OAAA,EAAI,WAAW,QAAQ,SAAS,eAAY,QAC3C,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW,IAAI;AAAA,gBACb,UAAU;AAAA,gBACV,MAAM;AAAA,gBACN,KAAK;AAAA,gBACL,WAAW;AAAA,gBACX,SAAS;AAAA,cACV,CAAA;AAAA,YAAA;AAAA,UAAA,EAEL,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAEJ;AAAA,EAAA;AAIG,SAAA;AACT;"}
@@ -1,7 +1,7 @@
1
1
  import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
2
  import { forwardRef, useState, useContext, useRef, useMemo } from "react";
3
- import { Filters } from "@hitachivantara/uikit-react-icons";
4
3
  import { useDefaultProps, useTheme } from "@hitachivantara/uikit-react-utils";
4
+ import { HvIcon } from "../../icons.js";
5
5
  import { setId } from "../../utils/setId.js";
6
6
  import { HvFilterGroupContext } from "../FilterGroupContext.js";
7
7
  import { useClasses } from "./FilterContent.styles.js";
@@ -71,7 +71,7 @@ const HvFilterGroupContent = forwardRef(function HvFilterGroupContent2(props, re
71
71
  };
72
72
  const Header = useMemo(
73
73
  () => /* @__PURE__ */ jsxs(Fragment, { children: [
74
- /* @__PURE__ */ jsx(Filters, {}),
74
+ /* @__PURE__ */ jsx(HvIcon, { name: "Filters" }),
75
75
  /* @__PURE__ */ jsx(HvTypography, { variant: "label", children: labels?.placeholder })
76
76
  ] }),
77
77
  [labels?.placeholder]
@@ -1 +1 @@
1
- {"version":3,"file":"FilterContent.js","sources":["../../../../src/FilterGroup/FilterContent/FilterContent.tsx"],"sourcesContent":["import { forwardRef, useContext, useMemo, useRef, useState } from \"react\";\nimport { Filters } from \"@hitachivantara/uikit-react-icons\";\nimport {\n useDefaultProps,\n useTheme,\n type ExtractNames,\n} from \"@hitachivantara/uikit-react-utils\";\n\nimport { HvActionBar } from \"../../ActionBar\";\nimport { HvBaseDropdown, HvBaseDropdownProps } from \"../../BaseDropdown\";\nimport { HvButton, HvButtonVariant } from \"../../Button\";\nimport { HvFormStatus } from \"../../FormElement\";\nimport { HvTypography } from \"../../Typography\";\nimport { setId } from \"../../utils/setId\";\nimport { HvFilterGroupCounter } from \"../Counter\";\nimport type { HvFilterGroupLabels } from \"../FilterGroup\";\nimport { HvFilterGroupContext } from \"../FilterGroupContext\";\nimport { HvFilterGroupLeftPanel } from \"../LeftPanel\";\nimport { HvFilterGroupRightPanel } from \"../RightPanel\";\nimport { HvFilterGroupHorizontalPlacement, HvFilterGroupValue } from \"../types\";\nimport { staticClasses, useClasses } from \"./FilterContent.styles\";\n\nexport { staticClasses as filterGroupContentClasses };\n\nexport type HvFilterGroupContentClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvFilterGroupContentProps\n extends Omit<HvBaseDropdownProps, \"onChange\"> {\n description?: React.ReactNode;\n status?: HvFormStatus;\n onChange?: (\n event: React.MouseEvent<HTMLButtonElement>,\n value?: HvFilterGroupValue,\n ) => void;\n onCancel?: (event: React.MouseEvent<HTMLButtonElement> | Event) => void;\n onClear?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n labels?: HvFilterGroupLabels;\n horizontalPlacement?: HvFilterGroupHorizontalPlacement;\n disablePortal?: boolean;\n escapeWithReference?: boolean;\n height?: string | number;\n leftEmptyElement?: React.ReactNode;\n rightEmptyElement?: React.ReactNode;\n disabled?: boolean;\n classes?: HvFilterGroupContentClasses;\n}\n\nexport const HvFilterGroupContent = forwardRef<\n HTMLDivElement,\n HvFilterGroupContentProps\n>(function HvFilterGroupContent(props, ref) {\n const {\n id,\n status,\n disabled = false,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n onChange,\n onCancel,\n onClear,\n labels,\n horizontalPlacement = \"right\",\n disablePortal = true,\n escapeWithReference = true,\n height,\n leftEmptyElement,\n rightEmptyElement,\n classes: classesProp,\n ...others\n } = useDefaultProps(\"HvFilterGroupContent\", props);\n\n const { classes } = useClasses(classesProp);\n const { activeTheme } = useTheme();\n\n const [filterGroupOpen, setFilterGroupOpen] = useState<boolean>(false);\n\n const {\n defaultValue,\n filterValues,\n rollbackFilters,\n clearFilters,\n applyFilters,\n applyDisabled,\n } = useContext(HvFilterGroupContext);\n\n const focusTarget = useRef<HTMLDivElement>(null);\n\n const focusOnContainer = () => {\n focusTarget.current?.focus();\n };\n\n const onApplyHandler = (event: React.MouseEvent<HTMLButtonElement>) => {\n applyFilters();\n onChange?.(event, filterValues);\n setFilterGroupOpen(false);\n };\n\n const onCancelHandler = (\n event: React.MouseEvent<HTMLButtonElement> | Event,\n ) => {\n rollbackFilters();\n onCancel?.(event);\n setFilterGroupOpen(false);\n };\n\n const onClearHandler = (event: React.MouseEvent<HTMLButtonElement>) => {\n clearFilters();\n onClear?.(event);\n };\n\n const handleToggle = (event: Event, open: boolean) => {\n /* \n If evt is null this toggle wasn't triggered by the user.\n instead it was triggered by the baseDropdown useEffect after\n the datepicker changed the expanded value this baseDropdown behavior needs a review\n */\n if (event === null) return;\n setFilterGroupOpen(open);\n if (!open) onCancelHandler?.(event);\n };\n\n const Header = useMemo(\n () => (\n <>\n <Filters />\n <HvTypography variant=\"label\">{labels?.placeholder}</HvTypography>\n </>\n ),\n [labels?.placeholder],\n );\n\n return (\n <HvBaseDropdown\n ref={ref}\n id={setId(id, \"dropdown\")}\n role=\"combobox\"\n classes={{\n root: classes.dropdown,\n panel: classes.panel,\n selection: classes.baseDropdownSelection,\n header: classes.header,\n }}\n disabled={disabled}\n disablePortal={disablePortal}\n variableWidth\n placement={horizontalPlacement}\n expanded={filterGroupOpen}\n onToggle={handleToggle}\n onClickOutside={onCancelHandler}\n onContainerCreation={focusOnContainer}\n placeholder={Header}\n adornment={<HvFilterGroupCounter />}\n popperProps={{\n modifiers: [{ name: \"preventOverflow\", enabled: escapeWithReference }],\n }}\n aria-haspopup=\"dialog\"\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-invalid={status === \"invalid\" ? true : undefined}\n aria-errormessage={status === \"invalid\" ? setId(id, \"error\") : undefined}\n aria-describedby={\n [description && setId(id, \"description\"), ariaDescribedBy]\n .join(\" \")\n .trim() || undefined\n }\n {...others}\n >\n <div ref={focusTarget} tabIndex={-1} />\n <div className={classes.root} style={{ height }}>\n <HvFilterGroupLeftPanel\n id={id}\n className={classes.leftSidePanel}\n emptyElement={leftEmptyElement}\n />\n <HvFilterGroupRightPanel\n id={id}\n className={classes.rightSidePanel}\n emptyElement={rightEmptyElement}\n labels={labels}\n />\n </div>\n <HvActionBar className={classes.actionBar}>\n <HvButton\n id={setId(id, \"clearFilters-button\")}\n disabled={\n defaultValue\n ? defaultValue?.flat().length === filterValues?.flat().length\n : filterValues?.flat().length === 0\n }\n variant=\"secondaryGhost\"\n onClick={onClearHandler}\n >\n {labels?.clearLabel}\n </HvButton>\n <div aria-hidden=\"true\" className={classes.space}>\n &nbsp;\n </div>\n <HvButton\n id={setId(id, \"apply-button\")}\n disabled={applyDisabled}\n variant={\n activeTheme?.filterGroup.applyButtonVariant as HvButtonVariant\n }\n onClick={onApplyHandler}\n className={classes.applyButton}\n >\n {labels?.applyLabel}\n </HvButton>\n <HvButton\n id={setId(id, \"cancel-button\")}\n variant={\n activeTheme?.filterGroup.cancelButtonVariant as HvButtonVariant\n }\n onClick={onCancelHandler}\n >\n {labels?.cancelLabel}\n </HvButton>\n </HvActionBar>\n </HvBaseDropdown>\n );\n});\n"],"names":["HvFilterGroupContent"],"mappings":"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"}
1
+ {"version":3,"file":"FilterContent.js","sources":["../../../../src/FilterGroup/FilterContent/FilterContent.tsx"],"sourcesContent":["import { forwardRef, useContext, useMemo, useRef, useState } from \"react\";\nimport {\n useDefaultProps,\n useTheme,\n type ExtractNames,\n} from \"@hitachivantara/uikit-react-utils\";\n\nimport { HvActionBar } from \"../../ActionBar\";\nimport { HvBaseDropdown, HvBaseDropdownProps } from \"../../BaseDropdown\";\nimport { HvButton, HvButtonVariant } from \"../../Button\";\nimport { HvFormStatus } from \"../../FormElement\";\nimport { HvIcon } from \"../../icons\";\nimport { HvTypography } from \"../../Typography\";\nimport { setId } from \"../../utils/setId\";\nimport { HvFilterGroupCounter } from \"../Counter\";\nimport type { HvFilterGroupLabels } from \"../FilterGroup\";\nimport { HvFilterGroupContext } from \"../FilterGroupContext\";\nimport { HvFilterGroupLeftPanel } from \"../LeftPanel\";\nimport { HvFilterGroupRightPanel } from \"../RightPanel\";\nimport { HvFilterGroupHorizontalPlacement, HvFilterGroupValue } from \"../types\";\nimport { staticClasses, useClasses } from \"./FilterContent.styles\";\n\nexport { staticClasses as filterGroupContentClasses };\n\nexport type HvFilterGroupContentClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvFilterGroupContentProps\n extends Omit<HvBaseDropdownProps, \"onChange\"> {\n description?: React.ReactNode;\n status?: HvFormStatus;\n onChange?: (\n event: React.MouseEvent<HTMLButtonElement>,\n value?: HvFilterGroupValue,\n ) => void;\n onCancel?: (event: React.MouseEvent<HTMLButtonElement> | Event) => void;\n onClear?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n labels?: HvFilterGroupLabels;\n horizontalPlacement?: HvFilterGroupHorizontalPlacement;\n disablePortal?: boolean;\n escapeWithReference?: boolean;\n height?: string | number;\n leftEmptyElement?: React.ReactNode;\n rightEmptyElement?: React.ReactNode;\n disabled?: boolean;\n classes?: HvFilterGroupContentClasses;\n}\n\nexport const HvFilterGroupContent = forwardRef<\n HTMLDivElement,\n HvFilterGroupContentProps\n>(function HvFilterGroupContent(props, ref) {\n const {\n id,\n status,\n disabled = false,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n description,\n \"aria-describedby\": ariaDescribedBy,\n onChange,\n onCancel,\n onClear,\n labels,\n horizontalPlacement = \"right\",\n disablePortal = true,\n escapeWithReference = true,\n height,\n leftEmptyElement,\n rightEmptyElement,\n classes: classesProp,\n ...others\n } = useDefaultProps(\"HvFilterGroupContent\", props);\n\n const { classes } = useClasses(classesProp);\n const { activeTheme } = useTheme();\n\n const [filterGroupOpen, setFilterGroupOpen] = useState<boolean>(false);\n\n const {\n defaultValue,\n filterValues,\n rollbackFilters,\n clearFilters,\n applyFilters,\n applyDisabled,\n } = useContext(HvFilterGroupContext);\n\n const focusTarget = useRef<HTMLDivElement>(null);\n\n const focusOnContainer = () => {\n focusTarget.current?.focus();\n };\n\n const onApplyHandler = (event: React.MouseEvent<HTMLButtonElement>) => {\n applyFilters();\n onChange?.(event, filterValues);\n setFilterGroupOpen(false);\n };\n\n const onCancelHandler = (\n event: React.MouseEvent<HTMLButtonElement> | Event,\n ) => {\n rollbackFilters();\n onCancel?.(event);\n setFilterGroupOpen(false);\n };\n\n const onClearHandler = (event: React.MouseEvent<HTMLButtonElement>) => {\n clearFilters();\n onClear?.(event);\n };\n\n const handleToggle = (event: Event, open: boolean) => {\n /* \n If evt is null this toggle wasn't triggered by the user.\n instead it was triggered by the baseDropdown useEffect after\n the datepicker changed the expanded value this baseDropdown behavior needs a review\n */\n if (event === null) return;\n setFilterGroupOpen(open);\n if (!open) onCancelHandler?.(event);\n };\n\n const Header = useMemo(\n () => (\n <>\n <HvIcon name=\"Filters\" />\n <HvTypography variant=\"label\">{labels?.placeholder}</HvTypography>\n </>\n ),\n [labels?.placeholder],\n );\n\n return (\n <HvBaseDropdown\n ref={ref}\n id={setId(id, \"dropdown\")}\n role=\"combobox\"\n classes={{\n root: classes.dropdown,\n panel: classes.panel,\n selection: classes.baseDropdownSelection,\n header: classes.header,\n }}\n disabled={disabled}\n disablePortal={disablePortal}\n variableWidth\n placement={horizontalPlacement}\n expanded={filterGroupOpen}\n onToggle={handleToggle}\n onClickOutside={onCancelHandler}\n onContainerCreation={focusOnContainer}\n placeholder={Header}\n adornment={<HvFilterGroupCounter />}\n popperProps={{\n modifiers: [{ name: \"preventOverflow\", enabled: escapeWithReference }],\n }}\n aria-haspopup=\"dialog\"\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-invalid={status === \"invalid\" ? true : undefined}\n aria-errormessage={status === \"invalid\" ? setId(id, \"error\") : undefined}\n aria-describedby={\n [description && setId(id, \"description\"), ariaDescribedBy]\n .join(\" \")\n .trim() || undefined\n }\n {...others}\n >\n <div ref={focusTarget} tabIndex={-1} />\n <div className={classes.root} style={{ height }}>\n <HvFilterGroupLeftPanel\n id={id}\n className={classes.leftSidePanel}\n emptyElement={leftEmptyElement}\n />\n <HvFilterGroupRightPanel\n id={id}\n className={classes.rightSidePanel}\n emptyElement={rightEmptyElement}\n labels={labels}\n />\n </div>\n <HvActionBar className={classes.actionBar}>\n <HvButton\n id={setId(id, \"clearFilters-button\")}\n disabled={\n defaultValue\n ? defaultValue?.flat().length === filterValues?.flat().length\n : filterValues?.flat().length === 0\n }\n variant=\"secondaryGhost\"\n onClick={onClearHandler}\n >\n {labels?.clearLabel}\n </HvButton>\n <div aria-hidden=\"true\" className={classes.space}>\n &nbsp;\n </div>\n <HvButton\n id={setId(id, \"apply-button\")}\n disabled={applyDisabled}\n variant={\n activeTheme?.filterGroup.applyButtonVariant as HvButtonVariant\n }\n onClick={onApplyHandler}\n className={classes.applyButton}\n >\n {labels?.applyLabel}\n </HvButton>\n <HvButton\n id={setId(id, \"cancel-button\")}\n variant={\n activeTheme?.filterGroup.cancelButtonVariant as HvButtonVariant\n }\n onClick={onCancelHandler}\n >\n {labels?.cancelLabel}\n </HvButton>\n </HvActionBar>\n </HvBaseDropdown>\n );\n});\n"],"names":["HvFilterGroupContent"],"mappings":"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"}
@@ -1,8 +1,12 @@
1
1
  import { createClasses } from "@hitachivantara/uikit-react-utils";
2
2
  const { staticClasses, useClasses } = createClasses("HvAdornment", {
3
3
  root: {
4
+ display: "flex",
5
+ alignItems: "center",
6
+ justifyContent: "center",
4
7
  width: 32,
5
- height: 30
8
+ height: 30,
9
+ flexShrink: 0
6
10
  },
7
11
  /** @deprecated use `classes.root` */
8
12
  icon: {},
@@ -1 +1 @@
1
- {"version":3,"file":"Adornment.styles.js","sources":["../../../../src/FormElement/Adornment/Adornment.styles.tsx"],"sourcesContent":["import { createClasses } from \"@hitachivantara/uikit-react-utils\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvAdornment\", {\n root: {\n width: 32,\n height: 30,\n },\n /** @deprecated use `classes.root` */\n icon: {},\n /** @deprecated use `classes.root` */\n adornment: {},\n /** @deprecated use `classes.root` */\n adornmentIcon: {},\n hideIcon: { display: \"none\" },\n /** @deprecated use `classes.root` */\n adornmentButton: {},\n disabled: {},\n});\n"],"names":[],"mappings":";AAEO,MAAM,EAAE,eAAe,eAAe,cAAc,eAAe;AAAA,EACxE,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ;AAAA,EACV;AAAA;AAAA,EAEA,MAAM,CAAC;AAAA;AAAA,EAEP,WAAW,CAAC;AAAA;AAAA,EAEZ,eAAe,CAAC;AAAA,EAChB,UAAU,EAAE,SAAS,OAAO;AAAA;AAAA,EAE5B,iBAAiB,CAAC;AAAA,EAClB,UAAU,CAAA;AACZ,CAAC;"}
1
+ {"version":3,"file":"Adornment.styles.js","sources":["../../../../src/FormElement/Adornment/Adornment.styles.tsx"],"sourcesContent":["import { createClasses } from \"@hitachivantara/uikit-react-utils\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvAdornment\", {\n root: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: 32,\n height: 30,\n flexShrink: 0,\n },\n /** @deprecated use `classes.root` */\n icon: {},\n /** @deprecated use `classes.root` */\n adornment: {},\n /** @deprecated use `classes.root` */\n adornmentIcon: {},\n hideIcon: { display: \"none\" },\n /** @deprecated use `classes.root` */\n adornmentButton: {},\n disabled: {},\n});\n"],"names":[],"mappings":";AAEO,MAAM,EAAE,eAAe,eAAe,cAAc,eAAe;AAAA,EACxE,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,YAAY;AAAA,EACd;AAAA;AAAA,EAEA,MAAM,CAAC;AAAA;AAAA,EAEP,WAAW,CAAC;AAAA;AAAA,EAEZ,eAAe,CAAC;AAAA,EAChB,UAAU,EAAE,SAAS,OAAO;AAAA;AAAA,EAE5B,iBAAiB,CAAC;AAAA,EAClB,UAAU,CAAA;AACZ,CAAC;"}
@@ -3,7 +3,7 @@ import { theme } from "@hitachivantara/uikit-styles";
3
3
  const { staticClasses, useClasses } = createClasses("HvInfoMessage", {
4
4
  root: { color: theme.colors.textSubtle, display: "inline-block" },
5
5
  infoDisabled: { color: theme.colors.textDisabled },
6
- gutter: { padding: `0 0 6px ${theme.space.xs}` }
6
+ gutter: { padding: theme.spacing(0, 0, "xxs", "xs") }
7
7
  });
8
8
  export {
9
9
  staticClasses,
@@ -1 +1 @@
1
- {"version":3,"file":"InfoMessage.styles.js","sources":["../../../../src/FormElement/InfoMessage/InfoMessage.styles.tsx"],"sourcesContent":["import { createClasses } from \"@hitachivantara/uikit-react-utils\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvInfoMessage\", {\n root: { color: theme.colors.textSubtle, display: \"inline-block\" },\n infoDisabled: { color: theme.colors.textDisabled },\n gutter: { padding: `0 0 6px ${theme.space.xs}` },\n});\n"],"names":[],"mappings":";;AAGO,MAAM,EAAE,eAAe,eAAe,cAAc,iBAAiB;AAAA,EAC1E,MAAM,EAAE,OAAO,MAAM,OAAO,YAAY,SAAS,eAAe;AAAA,EAChE,cAAc,EAAE,OAAO,MAAM,OAAO,aAAa;AAAA,EACjD,QAAQ,EAAE,SAAS,WAAW,MAAM,MAAM,EAAE,GAAG;AACjD,CAAC;"}
1
+ {"version":3,"file":"InfoMessage.styles.js","sources":["../../../../src/FormElement/InfoMessage/InfoMessage.styles.tsx"],"sourcesContent":["import { createClasses } from \"@hitachivantara/uikit-react-utils\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvInfoMessage\", {\n root: { color: theme.colors.textSubtle, display: \"inline-block\" },\n infoDisabled: { color: theme.colors.textDisabled },\n gutter: { padding: theme.spacing(0, 0, \"xxs\", \"xs\") },\n});\n"],"names":[],"mappings":";;AAGO,MAAM,EAAE,eAAe,eAAe,cAAc,iBAAiB;AAAA,EAC1E,MAAM,EAAE,OAAO,MAAM,OAAO,YAAY,SAAS,eAAe;AAAA,EAChE,cAAc,EAAE,OAAO,MAAM,OAAO,aAAa;AAAA,EACjD,QAAQ,EAAE,SAAS,MAAM,QAAQ,GAAG,GAAG,OAAO,IAAI,EAAE;AACtD,CAAC;"}
@@ -3,7 +3,7 @@ import { theme } from "@hitachivantara/uikit-styles";
3
3
  const { staticClasses, useClasses } = createClasses("HvLabel", {
4
4
  root: { fontWeight: theme.fontWeights.normal, display: "inline-block" },
5
5
  labelDisabled: { color: theme.colors.textDisabled },
6
- childGutter: { paddingBottom: 4 }
6
+ childGutter: { paddingBottom: theme.space.xxs }
7
7
  });
8
8
  export {
9
9
  staticClasses,
@@ -1 +1 @@
1
- {"version":3,"file":"Label.styles.js","sources":["../../../../src/FormElement/Label/Label.styles.tsx"],"sourcesContent":["import { createClasses } from \"@hitachivantara/uikit-react-utils\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvLabel\", {\n root: { fontWeight: theme.fontWeights.normal, display: \"inline-block\" },\n labelDisabled: { color: theme.colors.textDisabled },\n childGutter: { paddingBottom: 4 },\n});\n"],"names":[],"mappings":";;AAGO,MAAM,EAAE,eAAe,eAAe,cAAc,WAAW;AAAA,EACpE,MAAM,EAAE,YAAY,MAAM,YAAY,QAAQ,SAAS,eAAe;AAAA,EACtE,eAAe,EAAE,OAAO,MAAM,OAAO,aAAa;AAAA,EAClD,aAAa,EAAE,eAAe,EAAE;AAClC,CAAC;"}
1
+ {"version":3,"file":"Label.styles.js","sources":["../../../../src/FormElement/Label/Label.styles.tsx"],"sourcesContent":["import { createClasses } from \"@hitachivantara/uikit-react-utils\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvLabel\", {\n root: { fontWeight: theme.fontWeights.normal, display: \"inline-block\" },\n labelDisabled: { color: theme.colors.textDisabled },\n childGutter: { paddingBottom: theme.space.xxs },\n});\n"],"names":[],"mappings":";;AAGO,MAAM,EAAE,eAAe,eAAe,cAAc,WAAW;AAAA,EACpE,MAAM,EAAE,YAAY,MAAM,YAAY,QAAQ,SAAS,eAAe;AAAA,EACtE,eAAe,EAAE,OAAO,MAAM,OAAO,aAAa;AAAA,EAClD,aAAa,EAAE,eAAe,MAAM,MAAM,IAAI;AAChD,CAAC;"}
@@ -17,10 +17,10 @@ const HvSuggestions = forwardRef(function HvSuggestions2(props, extRef) {
17
17
  className,
18
18
  classes: classesProp,
19
19
  expanded = false,
20
- enablePortal = false,
20
+ enablePortal,
21
21
  open: openProp,
22
22
  anchorEl,
23
- suggestionValues = [],
23
+ suggestionValues,
24
24
  onClose,
25
25
  onSuggestionSelected,
26
26
  popperProps,
@@ -1 +1 @@
1
- {"version":3,"file":"Suggestions.js","sources":["../../../../src/FormElement/Suggestions/Suggestions.tsx"],"sourcesContent":["import { forwardRef, useContext, useEffect, useRef, useState } from \"react\";\nimport {\n ClickAwayListener,\n ClickAwayListenerProps,\n} from \"@mui/base/ClickAwayListener\";\nimport { Popper, PopperProps } from \"@mui/base/Popper\";\nimport { useForkRef } from \"@mui/material/utils\";\nimport {\n useDefaultProps,\n useTheme,\n type ExtractNames,\n} from \"@hitachivantara/uikit-react-utils\";\n\nimport { HvListItem } from \"../../ListContainer\";\nimport { HvSelectionList } from \"../../SelectionList\";\nimport { HvBaseProps } from \"../../types/generic\";\nimport { getContainerElement } from \"../../utils/document\";\nimport { setId } from \"../../utils/setId\";\nimport { HvFormElementContext } from \"../context\";\nimport { staticClasses, useClasses } from \"./Suggestions.styles\";\n\nexport { staticClasses as suggestionsClasses };\n\nexport type HvSuggestionsClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvSuggestion {\n id?: string;\n label: React.ReactNode;\n value?: string;\n disabled?: boolean;\n}\n\nexport interface HvSuggestionsProps extends HvBaseProps {\n /** Whether suggestions is visible */\n open?: boolean;\n /**\n * Whether suggestions is visible.\n * @deprecated use `open` instead.\n * */\n expanded?: boolean;\n /** The HTML element Suggestions attaches to. */\n anchorEl?: HTMLElement | null;\n /** Array of { id, label, ...others } values to display in the suggestion list */\n suggestionValues?: HvSuggestion[] | null;\n /** Function called when a suggestion is selected */\n onSuggestionSelected?: (event: React.MouseEvent, value: HvSuggestion) => void;\n /** Function called when suggestion list is closed */\n onClose?: ClickAwayListenerProps[\"onClickAway\"];\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvSuggestionsClasses;\n /**\n * If enabled, the suggestions list will be rendered using a portal.\n * If disabled, it will be under the DOM hierarchy of the parent component.\n * @default false\n * */\n enablePortal?: boolean;\n /** Props passed to the underlying MUI Popper component */\n popperProps?: Partial<PopperProps>;\n}\n\nexport const HvSuggestions = forwardRef<\n // no-indent\n unknown,\n HvSuggestionsProps\n>(function HvSuggestions(props, extRef) {\n const {\n id: idProp,\n className,\n classes: classesProp,\n expanded = false,\n enablePortal = false,\n open: openProp,\n anchorEl,\n suggestionValues = [],\n onClose,\n onSuggestionSelected,\n popperProps,\n ...others\n } = useDefaultProps(\"HvSuggestions\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n const { rootId } = useTheme();\n\n const context = useContext(HvFormElementContext);\n const id = idProp ?? setId(context.id, \"suggestions\");\n\n const ref = useRef<HTMLDivElement>(null);\n const forkedRef = useForkRef(ref, extRef);\n\n // TODO: remove controlled+uncontrolled `expanded` prop in v6\n const [isOpen, setIsOpen] = useState(expanded);\n useEffect(() => {\n setIsOpen(expanded);\n }, [expanded]);\n\n return (\n <div\n id={id}\n ref={forkedRef}\n className={cx(classes.root, className)}\n {...others}\n >\n <ClickAwayListener\n onClickAway={(event) => {\n setIsOpen(false);\n onClose?.(event);\n }}\n >\n <Popper\n style={{\n // @ts-ignore\n \"--popper-width\": enablePortal\n ? `${anchorEl?.clientWidth}px`\n : \"100%\",\n }}\n open={openProp ?? isOpen}\n disablePortal={!enablePortal}\n container={enablePortal ? getContainerElement(rootId) : undefined}\n anchorEl={anchorEl}\n className={cx(classes.popper, {\n [classes.portal]: enablePortal,\n })}\n {...popperProps}\n >\n <HvSelectionList\n className={classes.list}\n id={setId(id, \"list\")}\n onChange={onSuggestionSelected}\n >\n {suggestionValues?.map((item) => (\n <HvListItem key={item.id} value={item} disabled={item.disabled}>\n {item.label}\n </HvListItem>\n ))}\n </HvSelectionList>\n </Popper>\n </ClickAwayListener>\n </div>\n );\n});\n"],"names":["HvSuggestions"],"mappings":";;;;;;;;;;;;;AA4DO,MAAM,gBAAgB,WAI3B,SAASA,eAAc,OAAO,QAAQ;AAChC,QAAA;AAAA,IACJ,IAAI;AAAA,IACJ;AAAA,IACA,SAAS;AAAA,IACT,WAAW;AAAA,IACX,eAAe;AAAA,IACf,MAAM;AAAA,IACN;AAAA,IACA,mBAAmB,CAAC;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EAAA,IACD,gBAAgB,iBAAiB,KAAK;AAE1C,QAAM,EAAE,SAAS,OAAO,WAAW,WAAW;AAExC,QAAA,EAAE,OAAO,IAAI,SAAS;AAEtB,QAAA,UAAU,WAAW,oBAAoB;AAC/C,QAAM,KAAK,UAAU,MAAM,QAAQ,IAAI,aAAa;AAE9C,QAAA,MAAM,OAAuB,IAAI;AACjC,QAAA,YAAY,WAAW,KAAK,MAAM;AAGxC,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS,QAAQ;AAC7C,YAAU,MAAM;AACd,cAAU,QAAQ;AAAA,EAAA,GACjB,CAAC,QAAQ,CAAC;AAGX,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA,KAAK;AAAA,MACL,WAAW,GAAG,QAAQ,MAAM,SAAS;AAAA,MACpC,GAAG;AAAA,MAEJ,UAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,aAAa,CAAC,UAAU;AACtB,sBAAU,KAAK;AACf,sBAAU,KAAK;AAAA,UACjB;AAAA,UAEA,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAO;AAAA;AAAA,gBAEL,kBAAkB,eACd,GAAG,UAAU,WAAW,OACxB;AAAA,cACN;AAAA,cACA,MAAM,YAAY;AAAA,cAClB,eAAe,CAAC;AAAA,cAChB,WAAW,eAAe,oBAAoB,MAAM,IAAI;AAAA,cACxD;AAAA,cACA,WAAW,GAAG,QAAQ,QAAQ;AAAA,gBAC5B,CAAC,QAAQ,MAAM,GAAG;AAAA,cAAA,CACnB;AAAA,cACA,GAAG;AAAA,cAEJ,UAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAW,QAAQ;AAAA,kBACnB,IAAI,MAAM,IAAI,MAAM;AAAA,kBACpB,UAAU;AAAA,kBAET,UAAkB,kBAAA,IAAI,CAAC,6BACrB,YAAyB,EAAA,OAAO,MAAM,UAAU,KAAK,UACnD,UAAA,KAAK,MADS,GAAA,KAAK,EAEtB,CACD;AAAA,gBAAA;AAAA,cAAA;AAAA,YACH;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ,CAAC;"}
1
+ {"version":3,"file":"Suggestions.js","sources":["../../../../src/FormElement/Suggestions/Suggestions.tsx"],"sourcesContent":["import { forwardRef, useContext, useEffect, useRef, useState } from \"react\";\nimport {\n ClickAwayListener,\n ClickAwayListenerProps,\n} from \"@mui/base/ClickAwayListener\";\nimport { Popper, PopperProps } from \"@mui/base/Popper\";\nimport { useForkRef } from \"@mui/material/utils\";\nimport {\n useDefaultProps,\n useTheme,\n type ExtractNames,\n} from \"@hitachivantara/uikit-react-utils\";\n\nimport { HvListItem } from \"../../ListContainer\";\nimport { HvSelectionList } from \"../../SelectionList\";\nimport { HvBaseProps } from \"../../types/generic\";\nimport { getContainerElement } from \"../../utils/document\";\nimport { setId } from \"../../utils/setId\";\nimport { HvFormElementContext } from \"../context\";\nimport { staticClasses, useClasses } from \"./Suggestions.styles\";\n\nexport { staticClasses as suggestionsClasses };\n\nexport type HvSuggestionsClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvSuggestion {\n id?: string;\n label: React.ReactNode;\n value?: string;\n disabled?: boolean;\n}\n\nexport interface HvSuggestionsProps extends HvBaseProps {\n /** Whether suggestions is visible */\n open?: boolean;\n /**\n * Whether suggestions is visible.\n * @deprecated use `open` instead.\n * */\n expanded?: boolean;\n /** The HTML element Suggestions attaches to. */\n anchorEl?: HTMLElement | null;\n /** Array of { id, label, ...others } values to display in the suggestion list */\n suggestionValues?: HvSuggestion[] | null;\n /** Function called when a suggestion is selected */\n onSuggestionSelected?: (event: React.MouseEvent, value: HvSuggestion) => void;\n /** Function called when suggestion list is closed */\n onClose?: ClickAwayListenerProps[\"onClickAway\"];\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvSuggestionsClasses;\n /**\n * If enabled, the suggestions list will be rendered using a portal.\n * If disabled, it will be under the DOM hierarchy of the parent component.\n * @default false\n * */\n enablePortal?: boolean;\n /** Props passed to the underlying MUI Popper component */\n popperProps?: Partial<PopperProps>;\n}\n\nexport const HvSuggestions = forwardRef<\n // no-indent\n unknown,\n HvSuggestionsProps\n>(function HvSuggestions(props, extRef) {\n const {\n id: idProp,\n className,\n classes: classesProp,\n expanded = false,\n enablePortal,\n open: openProp,\n anchorEl,\n suggestionValues,\n onClose,\n onSuggestionSelected,\n popperProps,\n ...others\n } = useDefaultProps(\"HvSuggestions\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n const { rootId } = useTheme();\n\n const context = useContext(HvFormElementContext);\n const id = idProp ?? setId(context.id, \"suggestions\");\n\n const ref = useRef<HTMLDivElement>(null);\n const forkedRef = useForkRef(ref, extRef);\n\n // TODO: remove controlled+uncontrolled `expanded` prop in v6\n const [isOpen, setIsOpen] = useState(expanded);\n useEffect(() => {\n setIsOpen(expanded);\n }, [expanded]);\n\n return (\n <div\n id={id}\n ref={forkedRef}\n className={cx(classes.root, className)}\n {...others}\n >\n <ClickAwayListener\n onClickAway={(event) => {\n setIsOpen(false);\n onClose?.(event);\n }}\n >\n <Popper\n style={{\n // @ts-ignore\n \"--popper-width\": enablePortal\n ? `${anchorEl?.clientWidth}px`\n : \"100%\",\n }}\n open={openProp ?? isOpen}\n disablePortal={!enablePortal}\n container={enablePortal ? getContainerElement(rootId) : undefined}\n anchorEl={anchorEl}\n className={cx(classes.popper, {\n [classes.portal]: enablePortal,\n })}\n {...popperProps}\n >\n <HvSelectionList\n className={classes.list}\n id={setId(id, \"list\")}\n onChange={onSuggestionSelected}\n >\n {suggestionValues?.map((item) => (\n <HvListItem key={item.id} value={item} disabled={item.disabled}>\n {item.label}\n </HvListItem>\n ))}\n </HvSelectionList>\n </Popper>\n </ClickAwayListener>\n </div>\n );\n});\n"],"names":["HvSuggestions"],"mappings":";;;;;;;;;;;;;AA4DO,MAAM,gBAAgB,WAI3B,SAASA,eAAc,OAAO,QAAQ;AAChC,QAAA;AAAA,IACJ,IAAI;AAAA,IACJ;AAAA,IACA,SAAS;AAAA,IACT,WAAW;AAAA,IACX;AAAA,IACA,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EAAA,IACD,gBAAgB,iBAAiB,KAAK;AAE1C,QAAM,EAAE,SAAS,OAAO,WAAW,WAAW;AAExC,QAAA,EAAE,OAAO,IAAI,SAAS;AAEtB,QAAA,UAAU,WAAW,oBAAoB;AAC/C,QAAM,KAAK,UAAU,MAAM,QAAQ,IAAI,aAAa;AAE9C,QAAA,MAAM,OAAuB,IAAI;AACjC,QAAA,YAAY,WAAW,KAAK,MAAM;AAGxC,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS,QAAQ;AAC7C,YAAU,MAAM;AACd,cAAU,QAAQ;AAAA,EAAA,GACjB,CAAC,QAAQ,CAAC;AAGX,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA,KAAK;AAAA,MACL,WAAW,GAAG,QAAQ,MAAM,SAAS;AAAA,MACpC,GAAG;AAAA,MAEJ,UAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,aAAa,CAAC,UAAU;AACtB,sBAAU,KAAK;AACf,sBAAU,KAAK;AAAA,UACjB;AAAA,UAEA,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAO;AAAA;AAAA,gBAEL,kBAAkB,eACd,GAAG,UAAU,WAAW,OACxB;AAAA,cACN;AAAA,cACA,MAAM,YAAY;AAAA,cAClB,eAAe,CAAC;AAAA,cAChB,WAAW,eAAe,oBAAoB,MAAM,IAAI;AAAA,cACxD;AAAA,cACA,WAAW,GAAG,QAAQ,QAAQ;AAAA,gBAC5B,CAAC,QAAQ,MAAM,GAAG;AAAA,cAAA,CACnB;AAAA,cACA,GAAG;AAAA,cAEJ,UAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAW,QAAQ;AAAA,kBACnB,IAAI,MAAM,IAAI,MAAM;AAAA,kBACpB,UAAU;AAAA,kBAET,UAAkB,kBAAA,IAAI,CAAC,6BACrB,YAAyB,EAAA,OAAO,MAAM,UAAU,KAAK,UACnD,UAAA,KAAK,MADS,GAAA,KAAK,EAEtB,CACD;AAAA,gBAAA;AAAA,cAAA;AAAA,YACH;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ,CAAC;"}
@@ -1,7 +1,7 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { useContext } from "react";
3
- import { Fail } from "@hitachivantara/uikit-react-icons";
4
3
  import { useDefaultProps } from "@hitachivantara/uikit-react-utils";
4
+ import { HvIcon } from "../../icons.js";
5
5
  import { setId } from "../../utils/setId.js";
6
6
  import { HvFormElementContext } from "../context.js";
7
7
  import { useClasses } from "./WarningText.styles.js";
@@ -27,7 +27,7 @@ const HvWarningText = (props) => {
27
27
  const visible = isVisibleProp ?? context.status === "invalid";
28
28
  const id = idProp ?? setId(context.id, "error");
29
29
  const showWarning = visible && !disabled;
30
- const adornment = adornmentProp || /* @__PURE__ */ jsx(Fail, { size: "xs", className: classes.defaultIcon });
30
+ const adornment = adornmentProp || /* @__PURE__ */ jsx(HvIcon, { name: "Fail", size: "xs", className: classes.defaultIcon });
31
31
  return /* @__PURE__ */ jsxs(
32
32
  "div",
33
33
  {
@@ -1 +1 @@
1
- {"version":3,"file":"WarningText.js","sources":["../../../../src/FormElement/WarningText/WarningText.tsx"],"sourcesContent":["import { useContext } from \"react\";\nimport { Fail } from \"@hitachivantara/uikit-react-icons\";\nimport {\n useDefaultProps,\n type ExtractNames,\n} from \"@hitachivantara/uikit-react-utils\";\n\nimport { HvBaseProps } from \"../../types/generic\";\nimport { setId } from \"../../utils/setId\";\nimport { HvFormElementContext } from \"../context\";\nimport { staticClasses, useClasses } from \"./WarningText.styles\";\n\nexport { staticClasses as warningTextClasses };\n\nexport type HvWarningTextClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvWarningTextProps extends HvBaseProps {\n /** Icon to be rendered alongside the warning text. */\n adornment?: React.ReactNode;\n /** If `true` the text is not rendered. */\n isVisible?: boolean;\n /** If `true` the text is disabled. */\n disabled?: boolean;\n /** If `true` the text won't include a gutter. */\n disableGutter?: boolean;\n /** If `true` the text won't include the top border. */\n disableBorder?: boolean;\n /** If `true` the adornment icon isn't shown. */\n disableAdornment?: boolean;\n /** If `true` the text isn't shown. */\n hideText?: boolean;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvWarningTextClasses;\n}\n\n/**\n * Provides the user with a descriptive text, signaling an error, for when the form element is in an invalid state.\n */\nexport const HvWarningText = (props: HvWarningTextProps) => {\n const {\n children,\n adornment: adornmentProp,\n isVisible: isVisibleProp,\n classes: classesProp,\n className,\n id: idProp,\n disabled: disabledProp,\n disableGutter = false,\n disableBorder = false,\n disableAdornment = false,\n hideText = false,\n ...others\n } = useDefaultProps(\"HvWarningText\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n const context = useContext(HvFormElementContext);\n const disabled = disabledProp ?? context.disabled;\n const visible = isVisibleProp ?? context.status === \"invalid\";\n const id = idProp ?? setId(context.id, \"error\");\n const showWarning = visible && !disabled;\n const adornment = adornmentProp || (\n <Fail size=\"xs\" className={classes.defaultIcon} />\n );\n\n return (\n <div\n className={cx(\n classes.root,\n {\n [classes.show]: showWarning,\n [classes.topBorder]: !disableBorder,\n },\n className,\n )}\n >\n {!disableAdornment && adornment}\n <span\n id={id}\n className={cx(classes.warningText, {\n [classes.topGutter]: !disableGutter,\n [classes.hideText]: hideText,\n })}\n role=\"status\"\n aria-live=\"polite\"\n aria-relevant=\"additions text\"\n {...others}\n >\n {showWarning && children}\n </span>\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;;;AAsCa,MAAA,gBAAgB,CAAC,UAA8B;AACpD,QAAA;AAAA,IACJ;AAAA,IACA,WAAW;AAAA,IACX,WAAW;AAAA,IACX,SAAS;AAAA,IACT;AAAA,IACA,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB,mBAAmB;AAAA,IACnB,WAAW;AAAA,IACX,GAAG;AAAA,EAAA,IACD,gBAAgB,iBAAiB,KAAK;AAE1C,QAAM,EAAE,SAAS,OAAO,WAAW,WAAW;AAExC,QAAA,UAAU,WAAW,oBAAoB;AACzC,QAAA,WAAW,gBAAgB,QAAQ;AACnC,QAAA,UAAU,iBAAiB,QAAQ,WAAW;AACpD,QAAM,KAAK,UAAU,MAAM,QAAQ,IAAI,OAAO;AACxC,QAAA,cAAc,WAAW,CAAC;AAC1B,QAAA,YAAY,iBACf,oBAAA,MAAA,EAAK,MAAK,MAAK,WAAW,QAAQ,aAAa;AAIhD,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACT,QAAQ;AAAA,QACR;AAAA,UACE,CAAC,QAAQ,IAAI,GAAG;AAAA,UAChB,CAAC,QAAQ,SAAS,GAAG,CAAC;AAAA,QACxB;AAAA,QACA;AAAA,MACF;AAAA,MAEC,UAAA;AAAA,QAAA,CAAC,oBAAoB;AAAA,QACtB;AAAA,UAAC;AAAA,UAAA;AAAA,YACC;AAAA,YACA,WAAW,GAAG,QAAQ,aAAa;AAAA,cACjC,CAAC,QAAQ,SAAS,GAAG,CAAC;AAAA,cACtB,CAAC,QAAQ,QAAQ,GAAG;AAAA,YAAA,CACrB;AAAA,YACD,MAAK;AAAA,YACL,aAAU;AAAA,YACV,iBAAc;AAAA,YACb,GAAG;AAAA,YAEH,UAAe,eAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAClB;AAAA,IAAA;AAAA,EACF;AAEJ;"}
1
+ {"version":3,"file":"WarningText.js","sources":["../../../../src/FormElement/WarningText/WarningText.tsx"],"sourcesContent":["import { useContext } from \"react\";\nimport {\n useDefaultProps,\n type ExtractNames,\n} from \"@hitachivantara/uikit-react-utils\";\n\nimport { HvIcon } from \"../../icons\";\nimport { HvBaseProps } from \"../../types/generic\";\nimport { setId } from \"../../utils/setId\";\nimport { HvFormElementContext } from \"../context\";\nimport { staticClasses, useClasses } from \"./WarningText.styles\";\n\nexport { staticClasses as warningTextClasses };\n\nexport type HvWarningTextClasses = ExtractNames<typeof useClasses>;\n\nexport interface HvWarningTextProps extends HvBaseProps {\n /** Icon to be rendered alongside the warning text. */\n adornment?: React.ReactNode;\n /** If `true` the text is not rendered. */\n isVisible?: boolean;\n /** If `true` the text is disabled. */\n disabled?: boolean;\n /** If `true` the text won't include a gutter. */\n disableGutter?: boolean;\n /** If `true` the text won't include the top border. */\n disableBorder?: boolean;\n /** If `true` the adornment icon isn't shown. */\n disableAdornment?: boolean;\n /** If `true` the text isn't shown. */\n hideText?: boolean;\n /** A Jss Object used to override or extend the styles applied to the component. */\n classes?: HvWarningTextClasses;\n}\n\n/**\n * Provides the user with a descriptive text, signaling an error, for when the form element is in an invalid state.\n */\nexport const HvWarningText = (props: HvWarningTextProps) => {\n const {\n children,\n adornment: adornmentProp,\n isVisible: isVisibleProp,\n classes: classesProp,\n className,\n id: idProp,\n disabled: disabledProp,\n disableGutter = false,\n disableBorder = false,\n disableAdornment = false,\n hideText = false,\n ...others\n } = useDefaultProps(\"HvWarningText\", props);\n\n const { classes, cx } = useClasses(classesProp);\n\n const context = useContext(HvFormElementContext);\n const disabled = disabledProp ?? context.disabled;\n const visible = isVisibleProp ?? context.status === \"invalid\";\n const id = idProp ?? setId(context.id, \"error\");\n const showWarning = visible && !disabled;\n const adornment = adornmentProp || (\n <HvIcon name=\"Fail\" size=\"xs\" className={classes.defaultIcon} />\n );\n\n return (\n <div\n className={cx(\n classes.root,\n {\n [classes.show]: showWarning,\n [classes.topBorder]: !disableBorder,\n },\n className,\n )}\n >\n {!disableAdornment && adornment}\n <span\n id={id}\n className={cx(classes.warningText, {\n [classes.topGutter]: !disableGutter,\n [classes.hideText]: hideText,\n })}\n role=\"status\"\n aria-live=\"polite\"\n aria-relevant=\"additions text\"\n {...others}\n >\n {showWarning && children}\n </span>\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;;;AAsCa,MAAA,gBAAgB,CAAC,UAA8B;AACpD,QAAA;AAAA,IACJ;AAAA,IACA,WAAW;AAAA,IACX,WAAW;AAAA,IACX,SAAS;AAAA,IACT;AAAA,IACA,IAAI;AAAA,IACJ,UAAU;AAAA,IACV,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB,mBAAmB;AAAA,IACnB,WAAW;AAAA,IACX,GAAG;AAAA,EAAA,IACD,gBAAgB,iBAAiB,KAAK;AAE1C,QAAM,EAAE,SAAS,OAAO,WAAW,WAAW;AAExC,QAAA,UAAU,WAAW,oBAAoB;AACzC,QAAA,WAAW,gBAAgB,QAAQ;AACnC,QAAA,UAAU,iBAAiB,QAAQ,WAAW;AACpD,QAAM,KAAK,UAAU,MAAM,QAAQ,IAAI,OAAO;AACxC,QAAA,cAAc,WAAW,CAAC;AAC1B,QAAA,YAAY,iBAChB,oBAAC,QAAO,EAAA,MAAK,QAAO,MAAK,MAAK,WAAW,QAAQ,YAAa,CAAA;AAI9D,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACT,QAAQ;AAAA,QACR;AAAA,UACE,CAAC,QAAQ,IAAI,GAAG;AAAA,UAChB,CAAC,QAAQ,SAAS,GAAG,CAAC;AAAA,QACxB;AAAA,QACA;AAAA,MACF;AAAA,MAEC,UAAA;AAAA,QAAA,CAAC,oBAAoB;AAAA,QACtB;AAAA,UAAC;AAAA,UAAA;AAAA,YACC;AAAA,YACA,WAAW,GAAG,QAAQ,aAAa;AAAA,cACjC,CAAC,QAAQ,SAAS,GAAG,CAAC;AAAA,cACtB,CAAC,QAAQ,QAAQ,GAAG;AAAA,YAAA,CACrB;AAAA,YACD,MAAK;AAAA,YACL,aAAU;AAAA,YACV,iBAAc;AAAA,YACb,GAAG;AAAA,YAEH,UAAe,eAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAClB;AAAA,IAAA;AAAA,EACF;AAEJ;"}
@@ -5,7 +5,7 @@ const { staticClasses, useClasses } = createClasses("HvWarningText", {
5
5
  display: "none",
6
6
  color: theme.form.errorColor
7
7
  },
8
- defaultIcon: { minWidth: "24px", width: "24px", height: "24px" },
8
+ defaultIcon: { margin: 6 },
9
9
  warningText: {
10
10
  ...theme.typography.caption1,
11
11
  color: "inherit",
@@ -1 +1 @@
1
- {"version":3,"file":"WarningText.styles.js","sources":["../../../../src/FormElement/WarningText/WarningText.styles.tsx"],"sourcesContent":["import { createClasses } from \"@hitachivantara/uikit-react-utils\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvWarningText\", {\n root: {\n display: \"none\",\n color: theme.form.errorColor,\n },\n defaultIcon: { minWidth: \"24px\", width: \"24px\", height: \"24px\" },\n warningText: {\n ...theme.typography.caption1,\n color: \"inherit\",\n paddingRight: theme.space.xs,\n },\n show: { display: \"flex\" },\n topGutter: { paddingTop: \"3px\" },\n hideText: {\n // display none or visibility hidden prevents\n // browser to trigger the aria-alert\n width: 0,\n height: 0,\n padding: 0,\n margin: 0,\n overflow: \"hidden\",\n },\n topBorder: { borderTop: \"1px solid currentcolor\" },\n});\n"],"names":[],"mappings":";;AAGO,MAAM,EAAE,eAAe,eAAe,cAAc,iBAAiB;AAAA,EAC1E,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,OAAO,MAAM,KAAK;AAAA,EACpB;AAAA,EACA,aAAa,EAAE,UAAU,QAAQ,OAAO,QAAQ,QAAQ,OAAO;AAAA,EAC/D,aAAa;AAAA,IACX,GAAG,MAAM,WAAW;AAAA,IACpB,OAAO;AAAA,IACP,cAAc,MAAM,MAAM;AAAA,EAC5B;AAAA,EACA,MAAM,EAAE,SAAS,OAAO;AAAA,EACxB,WAAW,EAAE,YAAY,MAAM;AAAA,EAC/B,UAAU;AAAA;AAAA;AAAA,IAGR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,WAAW,EAAE,WAAW,yBAAyB;AACnD,CAAC;"}
1
+ {"version":3,"file":"WarningText.styles.js","sources":["../../../../src/FormElement/WarningText/WarningText.styles.tsx"],"sourcesContent":["import { createClasses } from \"@hitachivantara/uikit-react-utils\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nexport const { staticClasses, useClasses } = createClasses(\"HvWarningText\", {\n root: {\n display: \"none\",\n color: theme.form.errorColor,\n },\n defaultIcon: { margin: 6 },\n warningText: {\n ...theme.typography.caption1,\n color: \"inherit\",\n paddingRight: theme.space.xs,\n },\n show: { display: \"flex\" },\n topGutter: { paddingTop: \"3px\" },\n hideText: {\n // display none or visibility hidden prevents\n // browser to trigger the aria-alert\n width: 0,\n height: 0,\n padding: 0,\n margin: 0,\n overflow: \"hidden\",\n },\n topBorder: { borderTop: \"1px solid currentcolor\" },\n});\n"],"names":[],"mappings":";;AAGO,MAAM,EAAE,eAAe,eAAe,cAAc,iBAAiB;AAAA,EAC1E,MAAM;AAAA,IACJ,SAAS;AAAA,IACT,OAAO,MAAM,KAAK;AAAA,EACpB;AAAA,EACA,aAAa,EAAE,QAAQ,EAAE;AAAA,EACzB,aAAa;AAAA,IACX,GAAG,MAAM,WAAW;AAAA,IACpB,OAAO;AAAA,IACP,cAAc,MAAM,MAAM;AAAA,EAC5B;AAAA,EACA,MAAM,EAAE,SAAS,OAAO;AAAA,EACxB,WAAW,EAAE,YAAY,MAAM;AAAA,EAC/B,UAAU;AAAA;AAAA;AAAA,IAGR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,WAAW,EAAE,WAAW,yBAAyB;AACnD,CAAC;"}
@@ -1,9 +1,9 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { useState, useRef } from "react";
3
- import { Edit } from "@hitachivantara/uikit-react-icons";
4
3
  import { useDefaultProps, useTheme } from "@hitachivantara/uikit-react-utils";
5
4
  import { useControlled } from "../hooks/useControlled.js";
6
5
  import { useEnhancedEffect } from "../hooks/useEnhancedEffect.js";
6
+ import { HvIcon } from "../icons.js";
7
7
  import { fixedForwardRef } from "../types/generic.js";
8
8
  import { isKey } from "../utils/keyboardUtils.js";
9
9
  import { useClasses } from "./InlineEditor.styles.js";
@@ -99,8 +99,9 @@ const HvInlineEditor = fixedForwardRef(function HvInlineEditor2(props, ref) {
99
99
  {
100
100
  variant: "secondaryGhost",
101
101
  endIcon: /* @__PURE__ */ jsx(
102
- Edit,
102
+ HvIcon,
103
103
  {
104
+ name: "Edit",
104
105
  color: "textDisabled",
105
106
  className: cx(classes.icon, {
106
107
  [classes.iconVisible]: showIcon
@@ -1 +1 @@
1
- {"version":3,"file":"InlineEditor.js","sources":["../../../src/InlineEditor/InlineEditor.tsx"],"sourcesContent":["import { useRef, useState } from \"react\";\nimport { Edit } from \"@hitachivantara/uikit-react-icons\";\nimport {\n useDefaultProps,\n useTheme,\n type ExtractNames,\n} from \"@hitachivantara/uikit-react-utils\";\n\nimport { HvButton, HvButtonProps } from \"../Button\";\nimport { useControlled } from \"../hooks/useControlled\";\nimport { useEnhancedEffect } from \"../hooks/useEnhancedEffect\";\nimport { HvInput, HvInputProps } from \"../Input\";\nimport { HvTooltip } from \"../Tooltip\";\nimport {\n fixedForwardRef,\n PolymorphicComponentRef,\n PolymorphicRef,\n} from \"../types/generic\";\nimport {\n HvTypography,\n HvTypographyProps,\n HvTypographyVariants,\n} from \"../Typography\";\nimport { isKey } from \"../utils/keyboardUtils\";\nimport { staticClasses, useClasses } from \"./InlineEditor.styles\";\n\nexport { staticClasses as inlineEditorClasses };\n\nexport type HvInlineEditorClasses = ExtractNames<typeof useClasses>;\n\nexport type HvInlineEditorProps<C extends React.ElementType = typeof HvInput> =\n PolymorphicComponentRef<\n C,\n {\n /** The value of the form element. */\n value?: string;\n /** The default value of the form element. */\n defaultValue?: string;\n /** Whether the Edit icon should always be visible */\n showIcon?: boolean;\n /** Variant of the HvTypography to display */\n variant?: HvTypographyVariants;\n /** Called when the input is blurred. */\n onBlur?: (\n event: React.FocusEvent<HTMLTextAreaElement | HTMLInputElement>,\n value: string,\n ) => void;\n /** Called when the input value changes. */\n onChange?: (event: React.SyntheticEvent, value: string) => void;\n /** Called when there's a keydown event on the input. */\n onKeyDown?: (\n event:\n | React.KeyboardEvent<HTMLTextAreaElement | HTMLInputElement>\n | React.MouseEvent,\n value: string,\n ) => void;\n /** Props passed to the HvButton component */\n buttonProps?: HvButtonProps;\n /** Props passed to the HvTypography text component */\n typographyProps?: HvTypographyProps;\n /** Whether the editor is disabled or not. */\n disabled?: boolean;\n /** A Jss Object used to override or extend the styles applied to the empty state component. */\n classes?: HvInlineEditorClasses;\n /** The placeholder value of the input. */\n placeholder?: string;\n }\n >;\n\n/**\n * An Inline Editor allows the user to edit a record without making a major switch\n * between viewing and editing, making it an efficient method of updating a record.\n */\nexport const HvInlineEditor = fixedForwardRef(function HvInlineEditor<\n C extends React.ElementType = typeof HvInput,\n>(props: HvInlineEditorProps<C>, ref: PolymorphicRef<C>) {\n const {\n className,\n classes: classesProp,\n value: valueProp,\n defaultValue = \"\",\n showIcon,\n component: InputComponent = HvInput,\n variant = \"body\",\n placeholder = \"Enter text\",\n onBlur,\n onChange,\n onKeyDown,\n buttonProps,\n typographyProps,\n disabled,\n ...others\n } = useDefaultProps(\"HvInlineEditor\", props);\n\n const { classes, cx } = useClasses(classesProp);\n const [value, setValue] = useControlled(valueProp, defaultValue);\n const [editMode, setEditMode] = useState(false);\n const [cachedValue, setCachedValue] = useState(value);\n const inputRef = useRef<HTMLInputElement | undefined>(undefined);\n const { activeTheme } = useTheme();\n const [isOverflowing, setIsOverflowing] = useState(false);\n\n const typographyStyles = activeTheme?.typography[variant] || {};\n const { lineHeight } = typographyStyles;\n\n const checkOverflow = (el: HTMLElement | null) => {\n if (!el) return;\n setIsOverflowing(el.scrollWidth > el.clientWidth);\n };\n\n useEnhancedEffect(() => {\n const input = inputRef.current;\n if (editMode && input) {\n input.focus();\n input.select();\n }\n }, [editMode]);\n\n const handleClick = () => {\n setEditMode(true);\n setCachedValue(value);\n };\n\n const handleBlur: HvInputProps[\"onBlur\"] = (event) => {\n setEditMode(false);\n\n const newValue = value || cachedValue; // empty values should be ignored\n setValue(newValue);\n onBlur?.(event, newValue);\n };\n\n const handleKeyDown: HvInputProps[\"onKeyDown\"] = (event) => {\n let newValue = value;\n if (isKey(event, \"Esc\")) {\n newValue = cachedValue;\n setEditMode(false);\n setValue(newValue);\n }\n onKeyDown?.(event, newValue);\n };\n\n const handleChange: HvInputProps[\"onChange\"] = (event, val) => {\n setValue(val);\n onChange?.(event, val);\n };\n\n return (\n <div className={cx(classes.root, className)}>\n {editMode && !disabled ? (\n <InputComponent\n ref={ref}\n inputRef={inputRef}\n classes={{\n inputRoot: classes.inputRoot,\n input: classes.input,\n }}\n inputProps={{\n style: {\n ...typographyStyles,\n height: InputComponent === HvInput ? lineHeight : undefined,\n },\n }}\n value={value}\n onBlur={handleBlur}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n {...others}\n />\n ) : (\n <HvButton\n variant=\"secondaryGhost\"\n endIcon={\n <Edit\n color=\"textDisabled\"\n className={cx(classes.icon, {\n [classes.iconVisible]: showIcon,\n })}\n />\n }\n className={cx(classes.button, {\n [classes.largeText]: parseInt(lineHeight as string, 10) >= 28,\n })}\n onClick={handleClick}\n disabled={disabled}\n {...buttonProps}\n >\n <HvTooltip title={isOverflowing && value}>\n <HvTypography\n component=\"div\"\n ref={checkOverflow}\n variant={variant}\n noWrap\n className={cx(classes.text, { [classes.textEmpty]: !value })}\n {...typographyProps}\n >\n {value || placeholder}\n </HvTypography>\n </HvTooltip>\n </HvButton>\n )}\n </div>\n );\n});\n"],"names":["HvInlineEditor"],"mappings":"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"}
1
+ {"version":3,"file":"InlineEditor.js","sources":["../../../src/InlineEditor/InlineEditor.tsx"],"sourcesContent":["import { useRef, useState } from \"react\";\nimport {\n useDefaultProps,\n useTheme,\n type ExtractNames,\n} from \"@hitachivantara/uikit-react-utils\";\n\nimport { HvButton, HvButtonProps } from \"../Button\";\nimport { useControlled } from \"../hooks/useControlled\";\nimport { useEnhancedEffect } from \"../hooks/useEnhancedEffect\";\nimport { HvIcon } from \"../icons\";\nimport { HvInput, HvInputProps } from \"../Input\";\nimport { HvTooltip } from \"../Tooltip\";\nimport {\n fixedForwardRef,\n PolymorphicComponentRef,\n PolymorphicRef,\n} from \"../types/generic\";\nimport {\n HvTypography,\n HvTypographyProps,\n HvTypographyVariants,\n} from \"../Typography\";\nimport { isKey } from \"../utils/keyboardUtils\";\nimport { staticClasses, useClasses } from \"./InlineEditor.styles\";\n\nexport { staticClasses as inlineEditorClasses };\n\nexport type HvInlineEditorClasses = ExtractNames<typeof useClasses>;\n\nexport type HvInlineEditorProps<C extends React.ElementType = typeof HvInput> =\n PolymorphicComponentRef<\n C,\n {\n /** The value of the form element. */\n value?: string;\n /** The default value of the form element. */\n defaultValue?: string;\n /** Whether the Edit icon should always be visible */\n showIcon?: boolean;\n /** Variant of the HvTypography to display */\n variant?: HvTypographyVariants;\n /** Called when the input is blurred. */\n onBlur?: (\n event: React.FocusEvent<HTMLTextAreaElement | HTMLInputElement>,\n value: string,\n ) => void;\n /** Called when the input value changes. */\n onChange?: (event: React.SyntheticEvent, value: string) => void;\n /** Called when there's a keydown event on the input. */\n onKeyDown?: (\n event:\n | React.KeyboardEvent<HTMLTextAreaElement | HTMLInputElement>\n | React.MouseEvent,\n value: string,\n ) => void;\n /** Props passed to the HvButton component */\n buttonProps?: HvButtonProps;\n /** Props passed to the HvTypography text component */\n typographyProps?: HvTypographyProps;\n /** Whether the editor is disabled or not. */\n disabled?: boolean;\n /** A Jss Object used to override or extend the styles applied to the empty state component. */\n classes?: HvInlineEditorClasses;\n /** The placeholder value of the input. */\n placeholder?: string;\n }\n >;\n\n/**\n * An Inline Editor allows the user to edit a record without making a major switch\n * between viewing and editing, making it an efficient method of updating a record.\n */\nexport const HvInlineEditor = fixedForwardRef(function HvInlineEditor<\n C extends React.ElementType = typeof HvInput,\n>(props: HvInlineEditorProps<C>, ref: PolymorphicRef<C>) {\n const {\n className,\n classes: classesProp,\n value: valueProp,\n defaultValue = \"\",\n showIcon,\n component: InputComponent = HvInput,\n variant = \"body\",\n placeholder = \"Enter text\",\n onBlur,\n onChange,\n onKeyDown,\n buttonProps,\n typographyProps,\n disabled,\n ...others\n } = useDefaultProps(\"HvInlineEditor\", props);\n\n const { classes, cx } = useClasses(classesProp);\n const [value, setValue] = useControlled(valueProp, defaultValue);\n const [editMode, setEditMode] = useState(false);\n const [cachedValue, setCachedValue] = useState(value);\n const inputRef = useRef<HTMLInputElement | undefined>(undefined);\n const { activeTheme } = useTheme();\n const [isOverflowing, setIsOverflowing] = useState(false);\n\n const typographyStyles = activeTheme?.typography[variant] || {};\n const { lineHeight } = typographyStyles;\n\n const checkOverflow = (el: HTMLElement | null) => {\n if (!el) return;\n setIsOverflowing(el.scrollWidth > el.clientWidth);\n };\n\n useEnhancedEffect(() => {\n const input = inputRef.current;\n if (editMode && input) {\n input.focus();\n input.select();\n }\n }, [editMode]);\n\n const handleClick = () => {\n setEditMode(true);\n setCachedValue(value);\n };\n\n const handleBlur: HvInputProps[\"onBlur\"] = (event) => {\n setEditMode(false);\n\n const newValue = value || cachedValue; // empty values should be ignored\n setValue(newValue);\n onBlur?.(event, newValue);\n };\n\n const handleKeyDown: HvInputProps[\"onKeyDown\"] = (event) => {\n let newValue = value;\n if (isKey(event, \"Esc\")) {\n newValue = cachedValue;\n setEditMode(false);\n setValue(newValue);\n }\n onKeyDown?.(event, newValue);\n };\n\n const handleChange: HvInputProps[\"onChange\"] = (event, val) => {\n setValue(val);\n onChange?.(event, val);\n };\n\n return (\n <div className={cx(classes.root, className)}>\n {editMode && !disabled ? (\n <InputComponent\n ref={ref}\n inputRef={inputRef}\n classes={{\n inputRoot: classes.inputRoot,\n input: classes.input,\n }}\n inputProps={{\n style: {\n ...typographyStyles,\n height: InputComponent === HvInput ? lineHeight : undefined,\n },\n }}\n value={value}\n onBlur={handleBlur}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n {...others}\n />\n ) : (\n <HvButton\n variant=\"secondaryGhost\"\n endIcon={\n <HvIcon\n name=\"Edit\"\n color=\"textDisabled\"\n className={cx(classes.icon, {\n [classes.iconVisible]: showIcon,\n })}\n />\n }\n className={cx(classes.button, {\n [classes.largeText]: parseInt(lineHeight as string, 10) >= 28,\n })}\n onClick={handleClick}\n disabled={disabled}\n {...buttonProps}\n >\n <HvTooltip title={isOverflowing && value}>\n <HvTypography\n component=\"div\"\n ref={checkOverflow}\n variant={variant}\n noWrap\n className={cx(classes.text, { [classes.textEmpty]: !value })}\n {...typographyProps}\n >\n {value || placeholder}\n </HvTypography>\n </HvTooltip>\n </HvButton>\n )}\n </div>\n );\n});\n"],"names":["HvInlineEditor"],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
- import { useRef, useState, useMemo, useCallback, cloneElement, isValidElement, useEffect } from "react";
2
+ import { useRef, useState, useMemo, useCallback, useEffect } from "react";
3
3
  import { useForkRef } from "@mui/material/utils";
4
- import { CloseXS, Search, Success } from "@hitachivantara/uikit-react-icons";
5
4
  import { useDefaultProps } from "@hitachivantara/uikit-react-utils";
6
5
  import { DEFAULT_ERROR_MESSAGES, computeValidationType, validateInput, computeValidationState, computeValidationMessage, hasBuiltInValidations } from "../BaseInput/validations.js";
7
6
  import { HvSuggestions } from "../FormElement/Suggestions/Suggestions.js";
@@ -9,6 +8,7 @@ import { useControlled } from "../hooks/useControlled.js";
9
8
  import { useIsMounted } from "../hooks/useIsMounted.js";
10
9
  import { useLabels } from "../hooks/useLabels.js";
11
10
  import { useUniqueId } from "../hooks/useUniqueId.js";
11
+ import { HvIcon } from "../icons.js";
12
12
  import { fixedForwardRef } from "../types/generic.js";
13
13
  import { isKey } from "../utils/keyboardUtils.js";
14
14
  import { setId } from "../utils/setId.js";
@@ -26,7 +26,7 @@ import { HvWarningText } from "../FormElement/WarningText/WarningText.js";
26
26
  const DEFAULT_LABELS = {
27
27
  /** The label of the clear button. */
28
28
  clearButtonLabel: "Clear the text",
29
- /** The label of the reveal password button. */
29
+ /** The label of the reveal password button. @deprecated unused */
30
30
  revealPasswordButtonLabel: "Reveal password",
31
31
  /** The tooltip of the reveal password button when the password is hidden. */
32
32
  revealPasswordButtonClickToShowTooltip: "Click to show password.",
@@ -58,8 +58,8 @@ const HvInput = fixedForwardRef(function HvInput2(props, ref) {
58
58
  required,
59
59
  readOnly,
60
60
  disabled,
61
- enablePortal = false,
62
- suggestOnFocus = false,
61
+ enablePortal,
62
+ suggestOnFocus,
63
63
  label,
64
64
  "aria-label": ariaLabel,
65
65
  "aria-labelledby": ariaLabelledBy,
@@ -72,17 +72,17 @@ const HvInput = fixedForwardRef(function HvInput2(props, ref) {
72
72
  "aria-errormessage": ariaErrorMessage,
73
73
  type = "text",
74
74
  placeholder,
75
- autoFocus = false,
75
+ autoFocus,
76
76
  labels: labelsProp,
77
77
  validationMessages,
78
- disableClear = false,
79
- disableRevealPassword = false,
80
- disableSearchButton = false,
78
+ disableClear,
79
+ disableRevealPassword,
80
+ disableSearchButton,
81
81
  endAdornment,
82
82
  maxCharQuantity,
83
83
  minCharQuantity,
84
84
  validation,
85
- showValidationIcon = false,
85
+ showValidationIcon,
86
86
  suggestionListCallback,
87
87
  inputRef: inputRefProp,
88
88
  onBlur,
@@ -272,7 +272,7 @@ const HvInput = fixedForwardRef(function HvInput2(props, ref) {
272
272
  onClick: handleClear,
273
273
  "aria-label": labels?.clearButtonLabel,
274
274
  "aria-controls": setId(elementId, "input"),
275
- icon: /* @__PURE__ */ jsx(CloseXS, {})
275
+ icon: /* @__PURE__ */ jsx(HvIcon, { compact: true, name: "Close", size: "xs" })
276
276
  }
277
277
  );
278
278
  }, [
@@ -293,7 +293,7 @@ const HvInput = fixedForwardRef(function HvInput2(props, ref) {
293
293
  {
294
294
  className: classes.adornmentButton,
295
295
  onClick: onEnter && ((evt) => onEnter?.(evt, inputRef.current?.value ?? "")),
296
- icon: /* @__PURE__ */ jsx(Search, { title: labels.searchButtonLabel })
296
+ icon: /* @__PURE__ */ jsx(HvIcon, { compact: true, name: "Search", title: labels.searchButtonLabel })
297
297
  }
298
298
  );
299
299
  }, [
@@ -309,15 +309,12 @@ const HvInput = fixedForwardRef(function HvInput2(props, ref) {
309
309
  return /* @__PURE__ */ jsx(
310
310
  HvTooltip,
311
311
  {
312
- disableFocusListener: true,
313
- disableTouchListener: true,
314
312
  title: revealPassword ? labels?.revealPasswordButtonClickToHideTooltip : labels?.revealPasswordButtonClickToShowTooltip,
315
313
  children: /* @__PURE__ */ jsx(
316
314
  HvAdornment,
317
315
  {
318
316
  className: classes.adornmentButton,
319
317
  onClick: () => setRevealPassword((s) => !s),
320
- "aria-label": labels?.revealPasswordButtonLabel,
321
318
  "aria-controls": setId(elementId, "input"),
322
319
  icon: /* @__PURE__ */ jsx(EyeIcon, { selected: revealPassword }),
323
320
  tabIndex: 0,
@@ -331,34 +328,27 @@ const HvInput = fixedForwardRef(function HvInput2(props, ref) {
331
328
  revealPassword,
332
329
  labels?.revealPasswordButtonClickToHideTooltip,
333
330
  labels?.revealPasswordButtonClickToShowTooltip,
334
- labels?.revealPasswordButtonLabel,
335
331
  classes.adornmentButton,
336
332
  elementId
337
333
  ]);
338
334
  const validationIcon = useMemo(() => {
339
335
  if (!showValidationIcon) return null;
340
336
  if (!isValid(validationState)) return null;
341
- return /* @__PURE__ */ jsx(Success, { color: "positive", className: classes.icon });
337
+ return /* @__PURE__ */ jsx(HvIcon, { name: "Success", color: "positive", className: classes.icon });
342
338
  }, [showValidationIcon, validationState, classes.icon]);
343
- const customIconEl = useMemo(
344
- () => isValidElement(endAdornment) ? cloneElement(endAdornment, {
345
- className: cx(endAdornment.props.className, classes.icon)
346
- }) : endAdornment,
347
- [classes.icon, endAdornment, cx]
348
- );
349
339
  const adornments = useMemo(() => {
350
- if (!clearButton && !revealPasswordButton && !searchButton && !validationIcon && !customIconEl)
340
+ if (!clearButton && !revealPasswordButton && !searchButton && !validationIcon && !endAdornment)
351
341
  return null;
352
342
  return /* @__PURE__ */ jsxs("div", { className: classes.adornmentsBox, children: [
353
343
  clearButton,
354
344
  revealPasswordButton,
355
345
  searchButton,
356
- validationIcon || customIconEl
346
+ validationIcon || endAdornment
357
347
  ] });
358
348
  }, [
359
349
  classes.adornmentsBox,
360
350
  clearButton,
361
- customIconEl,
351
+ endAdornment,
362
352
  revealPasswordButton,
363
353
  searchButton,
364
354
  validationIcon