@flightctl/ui-components 0.5.1 → 0.6.0-rc2

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 (456) hide show
  1. package/dist/src/components/DetailsPage/DetailsPage.d.ts +3 -2
  2. package/dist/src/components/DetailsPage/DetailsPage.d.ts.map +1 -1
  3. package/dist/src/components/DetailsPage/DetailsPage.js +2 -2
  4. package/dist/src/components/DetailsPage/DetailsPage.js.map +1 -1
  5. package/dist/src/components/DetailsPage/Tables/ApplicationsTable.d.ts.map +1 -1
  6. package/dist/src/components/DetailsPage/Tables/ApplicationsTable.js +5 -3
  7. package/dist/src/components/DetailsPage/Tables/ApplicationsTable.js.map +1 -1
  8. package/dist/src/components/Device/AddDeviceModal/AddDeviceModal.d.ts.map +1 -1
  9. package/dist/src/components/Device/AddDeviceModal/AddDeviceModal.js +4 -5
  10. package/dist/src/components/Device/AddDeviceModal/AddDeviceModal.js.map +1 -1
  11. package/dist/src/components/Device/DeviceDetails/DeviceAliasEdit.d.ts +10 -0
  12. package/dist/src/components/Device/DeviceDetails/DeviceAliasEdit.d.ts.map +1 -0
  13. package/dist/src/components/Device/DeviceDetails/DeviceAliasEdit.js +110 -0
  14. package/dist/src/components/Device/DeviceDetails/DeviceAliasEdit.js.map +1 -0
  15. package/dist/src/components/Device/DeviceDetails/DeviceApplications.d.ts.map +1 -1
  16. package/dist/src/components/Device/DeviceDetails/DeviceApplications.js +7 -1
  17. package/dist/src/components/Device/DeviceDetails/DeviceApplications.js.map +1 -1
  18. package/dist/src/components/Device/DeviceDetails/DeviceDetailsPage.d.ts.map +1 -1
  19. package/dist/src/components/Device/DeviceDetails/DeviceDetailsPage.js +9 -6
  20. package/dist/src/components/Device/DeviceDetails/DeviceDetailsPage.js.map +1 -1
  21. package/dist/src/components/Device/DeviceDetails/DeviceDetailsTab.d.ts.map +1 -1
  22. package/dist/src/components/Device/DeviceDetails/DeviceDetailsTab.js +1 -1
  23. package/dist/src/components/Device/DeviceDetails/DeviceDetailsTab.js.map +1 -1
  24. package/dist/src/components/Device/DeviceDetails/DeviceDetailsTabContent/StatusContent.d.ts.map +1 -1
  25. package/dist/src/components/Device/DeviceDetails/DeviceDetailsTabContent/StatusContent.js +3 -3
  26. package/dist/src/components/Device/DeviceDetails/DeviceDetailsTabContent/StatusContent.js.map +1 -1
  27. package/dist/src/components/Device/DeviceDetails/DeviceDetailsTabContent/SystemResourcesContent.js +3 -3
  28. package/dist/src/components/Device/DeviceDetails/TerminalTab.d.ts.map +1 -1
  29. package/dist/src/components/Device/DeviceDetails/TerminalTab.js +34 -3
  30. package/dist/src/components/Device/DeviceDetails/TerminalTab.js.map +1 -1
  31. package/dist/src/components/Device/DevicesPage/DecommissionedDevicesTable.d.ts.map +1 -1
  32. package/dist/src/components/Device/DevicesPage/DecommissionedDevicesTable.js +1 -1
  33. package/dist/src/components/Device/DevicesPage/DecommissionedDevicesTable.js.map +1 -1
  34. package/dist/src/components/Device/DevicesPage/DeviceToolbarFilters.d.ts.map +1 -1
  35. package/dist/src/components/Device/DevicesPage/DeviceToolbarFilters.js +35 -30
  36. package/dist/src/components/Device/DevicesPage/DeviceToolbarFilters.js.map +1 -1
  37. package/dist/src/components/Device/DevicesPage/DevicesPage.d.ts.map +1 -1
  38. package/dist/src/components/Device/DevicesPage/DevicesPage.js +11 -2
  39. package/dist/src/components/Device/DevicesPage/DevicesPage.js.map +1 -1
  40. package/dist/src/components/Device/DevicesPage/EnrolledDevicesTable.d.ts.map +1 -1
  41. package/dist/src/components/Device/DevicesPage/EnrolledDevicesTable.js +14 -11
  42. package/dist/src/components/Device/DevicesPage/EnrolledDevicesTable.js.map +1 -1
  43. package/dist/src/components/Device/EditDeviceWizard/EditDeviceWizard.d.ts.map +1 -1
  44. package/dist/src/components/Device/EditDeviceWizard/EditDeviceWizard.js +9 -2
  45. package/dist/src/components/Device/EditDeviceWizard/EditDeviceWizard.js.map +1 -1
  46. package/dist/src/components/Device/EditDeviceWizard/EditDeviceWizardFooter.d.ts.map +1 -1
  47. package/dist/src/components/Device/EditDeviceWizard/EditDeviceWizardFooter.js +21 -6
  48. package/dist/src/components/Device/EditDeviceWizard/EditDeviceWizardFooter.js.map +1 -1
  49. package/dist/src/components/Device/EditDeviceWizard/EditDeviceWizardNav.d.ts.map +1 -1
  50. package/dist/src/components/Device/EditDeviceWizard/EditDeviceWizardNav.js +11 -4
  51. package/dist/src/components/Device/EditDeviceWizard/EditDeviceWizardNav.js.map +1 -1
  52. package/dist/src/components/Device/EditDeviceWizard/deviceSpecUtils.d.ts +6 -5
  53. package/dist/src/components/Device/EditDeviceWizard/deviceSpecUtils.d.ts.map +1 -1
  54. package/dist/src/components/Device/EditDeviceWizard/deviceSpecUtils.js +123 -10
  55. package/dist/src/components/Device/EditDeviceWizard/deviceSpecUtils.js.map +1 -1
  56. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationImageForm.d.ts +8 -0
  57. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationImageForm.d.ts.map +1 -0
  58. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationImageForm.js +19 -0
  59. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationImageForm.js.map +1 -0
  60. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationInlineForm.d.ts +8 -0
  61. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationInlineForm.d.ts.map +1 -0
  62. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationInlineForm.js +49 -0
  63. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationInlineForm.js.map +1 -0
  64. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationTemplates.d.ts.map +1 -1
  65. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationTemplates.js +52 -19
  66. package/dist/src/components/Device/EditDeviceWizard/steps/ApplicationTemplates.js.map +1 -1
  67. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigInlineTemplateForm.d.ts.map +1 -1
  68. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigInlineTemplateForm.js +13 -16
  69. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigInlineTemplateForm.js.map +1 -1
  70. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigK8sSecretTemplateForm.d.ts.map +1 -1
  71. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigK8sSecretTemplateForm.js.map +1 -1
  72. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigWithRepositoryTemplateForm.d.ts.map +1 -1
  73. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigWithRepositoryTemplateForm.js +5 -5
  74. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigWithRepositoryTemplateForm.js.map +1 -1
  75. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigurationTemplates.d.ts.map +1 -1
  76. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigurationTemplates.js +2 -2
  77. package/dist/src/components/Device/EditDeviceWizard/steps/ConfigurationTemplates.js.map +1 -1
  78. package/dist/src/components/Device/EditDeviceWizard/steps/DeviceTemplateStep.d.ts +1 -1
  79. package/dist/src/components/Device/EditDeviceWizard/steps/DeviceTemplateStep.d.ts.map +1 -1
  80. package/dist/src/components/Device/EditDeviceWizard/steps/DeviceTemplateStep.js +16 -16
  81. package/dist/src/components/Device/EditDeviceWizard/steps/DeviceTemplateStep.js.map +1 -1
  82. package/dist/src/components/Device/EditDeviceWizard/steps/DeviceUpdateStep.d.ts +8 -0
  83. package/dist/src/components/Device/EditDeviceWizard/steps/DeviceUpdateStep.d.ts.map +1 -0
  84. package/dist/src/components/Device/EditDeviceWizard/steps/DeviceUpdateStep.js +58 -0
  85. package/dist/src/components/Device/EditDeviceWizard/steps/DeviceUpdateStep.js.map +1 -0
  86. package/dist/src/components/Device/EditDeviceWizard/steps/GeneralInfoStep.d.ts +1 -1
  87. package/dist/src/components/Device/EditDeviceWizard/steps/GeneralInfoStep.d.ts.map +1 -1
  88. package/dist/src/components/Device/EditDeviceWizard/steps/ReviewApplications.d.ts +2 -2
  89. package/dist/src/components/Device/EditDeviceWizard/steps/ReviewApplications.d.ts.map +1 -1
  90. package/dist/src/components/Device/EditDeviceWizard/steps/ReviewApplications.js +17 -12
  91. package/dist/src/components/Device/EditDeviceWizard/steps/ReviewApplications.js.map +1 -1
  92. package/dist/src/components/Device/EditDeviceWizard/steps/ReviewDeviceStep.js +1 -1
  93. package/dist/src/components/Device/EditDeviceWizard/steps/ReviewTrackedSystemdServices.d.ts +2 -4
  94. package/dist/src/components/Device/EditDeviceWizard/steps/ReviewTrackedSystemdServices.d.ts.map +1 -1
  95. package/dist/src/components/Device/EditDeviceWizard/steps/ReviewTrackedSystemdServices.js.map +1 -1
  96. package/dist/src/components/Device/EditDeviceWizard/steps/ReviewUpdatePolicy.d.ts +1 -1
  97. package/dist/src/components/Device/EditDeviceWizard/steps/ReviewUpdatePolicy.d.ts.map +1 -1
  98. package/dist/src/components/Device/EditDeviceWizard/steps/ReviewUpdatePolicy.js.map +1 -1
  99. package/dist/src/components/Device/EditDeviceWizard/utils.d.ts +29 -3
  100. package/dist/src/components/Device/EditDeviceWizard/utils.d.ts.map +1 -1
  101. package/dist/src/components/Device/EditDeviceWizard/utils.js +8 -7
  102. package/dist/src/components/Device/EditDeviceWizard/utils.js.map +1 -1
  103. package/dist/src/components/Device/SystemdUnitsModal/SystemdUnitsModal.d.ts.map +1 -1
  104. package/dist/src/components/Device/SystemdUnitsModal/SystemdUnitsModal.js.map +1 -1
  105. package/dist/src/components/Device/SystemdUnitsModal/TrackSystemdUnitsForm.d.ts +1 -4
  106. package/dist/src/components/Device/SystemdUnitsModal/TrackSystemdUnitsForm.d.ts.map +1 -1
  107. package/dist/src/components/Device/SystemdUnitsModal/TrackSystemdUnitsForm.js.map +1 -1
  108. package/dist/src/components/EnrollmentRequest/EnrollmentRequestDetails/EnrollmentRequestDetails.d.ts.map +1 -1
  109. package/dist/src/components/EnrollmentRequest/EnrollmentRequestDetails/EnrollmentRequestDetails.js +5 -5
  110. package/dist/src/components/EnrollmentRequest/EnrollmentRequestDetails/EnrollmentRequestDetails.js.map +1 -1
  111. package/dist/src/components/EnrollmentRequest/EnrollmentRequestList.d.ts +2 -1
  112. package/dist/src/components/EnrollmentRequest/EnrollmentRequestList.d.ts.map +1 -1
  113. package/dist/src/components/EnrollmentRequest/EnrollmentRequestList.js +19 -11
  114. package/dist/src/components/EnrollmentRequest/EnrollmentRequestList.js.map +1 -1
  115. package/dist/src/components/EnrollmentRequest/EnrollmentRequestTableRow.d.ts.map +1 -1
  116. package/dist/src/components/EnrollmentRequest/EnrollmentRequestTableRow.js +5 -1
  117. package/dist/src/components/EnrollmentRequest/EnrollmentRequestTableRow.js.map +1 -1
  118. package/dist/src/components/EnrollmentRequest/useEnrollmentRequests.d.ts +2 -1
  119. package/dist/src/components/EnrollmentRequest/useEnrollmentRequests.d.ts.map +1 -1
  120. package/dist/src/components/EnrollmentRequest/useEnrollmentRequests.js +8 -4
  121. package/dist/src/components/EnrollmentRequest/useEnrollmentRequests.js.map +1 -1
  122. package/dist/src/components/Fleet/CreateFleet/CreateFleetWizard.d.ts.map +1 -1
  123. package/dist/src/components/Fleet/CreateFleet/CreateFleetWizard.js +2 -2
  124. package/dist/src/components/Fleet/CreateFleet/CreateFleetWizard.js.map +1 -1
  125. package/dist/src/components/Fleet/CreateFleet/CreateFleetWizardFooter.d.ts.map +1 -1
  126. package/dist/src/components/Fleet/CreateFleet/CreateFleetWizardFooter.js +8 -1
  127. package/dist/src/components/Fleet/CreateFleet/CreateFleetWizardFooter.js.map +1 -1
  128. package/dist/src/components/Fleet/CreateFleet/fleetSpecUtils.d.ts +19 -2
  129. package/dist/src/components/Fleet/CreateFleet/fleetSpecUtils.d.ts.map +1 -1
  130. package/dist/src/components/Fleet/CreateFleet/fleetSpecUtils.js +53 -18
  131. package/dist/src/components/Fleet/CreateFleet/fleetSpecUtils.js.map +1 -1
  132. package/dist/src/components/Fleet/CreateFleet/steps/DeviceLabelSelector.js +1 -1
  133. package/dist/src/components/Fleet/CreateFleet/steps/DeviceLabelSelector.js.map +1 -1
  134. package/dist/src/components/Fleet/CreateFleet/steps/GeneralInfoStep.d.ts +1 -1
  135. package/dist/src/components/Fleet/CreateFleet/steps/GeneralInfoStep.d.ts.map +1 -1
  136. package/dist/src/components/Fleet/CreateFleet/steps/GeneralInfoStep.js +1 -2
  137. package/dist/src/components/Fleet/CreateFleet/steps/GeneralInfoStep.js.map +1 -1
  138. package/dist/src/components/Fleet/CreateFleet/steps/ReviewStep.js +1 -1
  139. package/dist/src/components/Fleet/CreateFleet/steps/UpdateConfirmChangesModal.d.ts +1 -1
  140. package/dist/src/components/Fleet/CreateFleet/steps/UpdateConfirmChangesModal.d.ts.map +1 -1
  141. package/dist/src/components/Fleet/CreateFleet/steps/UpdateConfirmChangesModal.js +9 -0
  142. package/dist/src/components/Fleet/CreateFleet/steps/UpdateConfirmChangesModal.js.map +1 -1
  143. package/dist/src/components/Fleet/CreateFleet/steps/UpdatePolicyStep.d.ts +1 -1
  144. package/dist/src/components/Fleet/CreateFleet/steps/UpdatePolicyStep.d.ts.map +1 -1
  145. package/dist/src/components/Fleet/CreateFleet/steps/UpdatePolicyStep.js +22 -9
  146. package/dist/src/components/Fleet/CreateFleet/steps/UpdatePolicyStep.js.map +1 -1
  147. package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepDisruptionBudget.d.ts.map +1 -1
  148. package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepDisruptionBudget.js +4 -4
  149. package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepDisruptionBudget.js.map +1 -1
  150. package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepRolloutPolicy.d.ts.map +1 -1
  151. package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepRolloutPolicy.js +5 -5
  152. package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepRolloutPolicy.js.map +1 -1
  153. package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepUpdatePolicy.css +3 -0
  154. package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepUpdatePolicy.d.ts +9 -0
  155. package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepUpdatePolicy.d.ts.map +1 -0
  156. package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepUpdatePolicy.js +127 -0
  157. package/dist/src/components/Fleet/CreateFleet/steps/UpdateStepUpdatePolicy.js.map +1 -0
  158. package/dist/src/components/Fleet/CreateFleet/utils.d.ts +1 -1
  159. package/dist/src/components/Fleet/CreateFleet/utils.d.ts.map +1 -1
  160. package/dist/src/components/Fleet/CreateFleet/utils.js +13 -4
  161. package/dist/src/components/Fleet/CreateFleet/utils.js.map +1 -1
  162. package/dist/src/components/Fleet/FleetsPage.d.ts.map +1 -1
  163. package/dist/src/components/Fleet/FleetsPage.js +8 -12
  164. package/dist/src/components/Fleet/FleetsPage.js.map +1 -1
  165. package/dist/src/components/Fleet/ImportFleetWizard/steps/ResourceSyncStep.js +1 -1
  166. package/dist/src/components/Fleet/ImportFleetWizard/steps/ResourceSyncStep.js.map +1 -1
  167. package/dist/src/components/ListPage/ListPage.d.ts +1 -0
  168. package/dist/src/components/ListPage/ListPage.d.ts.map +1 -1
  169. package/dist/src/components/ListPage/ListPage.js +3 -3
  170. package/dist/src/components/ListPage/ListPage.js.map +1 -1
  171. package/dist/src/components/Masthead/CommandLineToolsPage.d.ts +4 -0
  172. package/dist/src/components/Masthead/CommandLineToolsPage.d.ts.map +1 -0
  173. package/dist/src/components/Masthead/CommandLineToolsPage.js +90 -0
  174. package/dist/src/components/Masthead/CommandLineToolsPage.js.map +1 -0
  175. package/dist/src/components/Masthead/UserPreferencesModal.d.ts.map +1 -0
  176. package/dist/src/components/Masthead/UserPreferencesModal.js.map +1 -0
  177. package/dist/src/components/Masthead/UserPreferencesProvider.d.ts.map +1 -0
  178. package/dist/src/components/Masthead/UserPreferencesProvider.js.map +1 -0
  179. package/dist/src/components/OverviewPage/Cards/Status/StatusCard.js +3 -3
  180. package/dist/src/components/OverviewPage/Cards/Status/StatusCard.js.map +1 -1
  181. package/dist/src/components/OverviewPage/Cards/Tasks/TasksCard.d.ts +4 -0
  182. package/dist/src/components/OverviewPage/Cards/Tasks/TasksCard.d.ts.map +1 -0
  183. package/dist/src/components/OverviewPage/Cards/{ToDo/ToDoCard.js → Tasks/TasksCard.js} +4 -4
  184. package/dist/src/components/OverviewPage/Cards/Tasks/TasksCard.js.map +1 -0
  185. package/dist/src/components/OverviewPage/Overview.js +2 -2
  186. package/dist/src/components/OverviewPage/Overview.js.map +1 -1
  187. package/dist/src/components/Repository/CreateRepository/CreateRepositoryForm.d.ts.map +1 -1
  188. package/dist/src/components/Repository/CreateRepository/CreateRepositoryForm.js +6 -5
  189. package/dist/src/components/Repository/CreateRepository/CreateRepositoryForm.js.map +1 -1
  190. package/dist/src/components/Repository/CreateRepository/CreateResourceSyncsForm.d.ts.map +1 -1
  191. package/dist/src/components/Repository/CreateRepository/CreateResourceSyncsForm.js +3 -3
  192. package/dist/src/components/Repository/CreateRepository/CreateResourceSyncsForm.js.map +1 -1
  193. package/dist/src/components/Repository/CreateRepository/utils.d.ts.map +1 -1
  194. package/dist/src/components/Repository/CreateRepository/utils.js +4 -1
  195. package/dist/src/components/Repository/CreateRepository/utils.js.map +1 -1
  196. package/dist/src/components/Repository/RepositoryDetails/RepositoryResourceSyncsCard.d.ts.map +1 -1
  197. package/dist/src/components/Repository/RepositoryDetails/RepositoryResourceSyncsCard.js +1 -1
  198. package/dist/src/components/Repository/RepositoryDetails/RepositoryResourceSyncsCard.js.map +1 -1
  199. package/dist/src/components/Repository/RepositoryList.d.ts.map +1 -1
  200. package/dist/src/components/Repository/RepositoryList.js +3 -11
  201. package/dist/src/components/Repository/RepositoryList.js.map +1 -1
  202. package/dist/src/components/ResourceSync/RepositoryResourceSyncList.d.ts.map +1 -1
  203. package/dist/src/components/ResourceSync/RepositoryResourceSyncList.js +3 -6
  204. package/dist/src/components/ResourceSync/RepositoryResourceSyncList.js.map +1 -1
  205. package/dist/src/components/Status/DeviceResourceStatus.js +3 -3
  206. package/dist/src/components/Status/utils.d.ts.map +1 -1
  207. package/dist/src/components/Status/utils.js +3 -3
  208. package/dist/src/components/Status/utils.js.map +1 -1
  209. package/dist/src/components/Table/Table.d.ts +2 -1
  210. package/dist/src/components/Table/Table.d.ts.map +1 -1
  211. package/dist/src/components/Table/Table.js +9 -5
  212. package/dist/src/components/Table/Table.js.map +1 -1
  213. package/dist/src/components/Table/TablePagination.d.ts.map +1 -1
  214. package/dist/src/components/Table/TablePagination.js +1 -1
  215. package/dist/src/components/Table/TablePagination.js.map +1 -1
  216. package/dist/src/components/Terminal/Terminal.d.ts +1 -1
  217. package/dist/src/components/Terminal/Terminal.d.ts.map +1 -1
  218. package/dist/src/components/Terminal/Terminal.js +10 -3
  219. package/dist/src/components/Terminal/Terminal.js.map +1 -1
  220. package/dist/src/components/charts/DonutChart.js +1 -1
  221. package/dist/src/components/charts/DonutChart.js.map +1 -1
  222. package/dist/src/components/common/LeaveFormConfirmation.js +1 -1
  223. package/dist/src/components/common/LeaveFormConfirmation.js.map +1 -1
  224. package/dist/src/components/common/WithHelperText.d.ts +10 -5
  225. package/dist/src/components/common/WithHelperText.d.ts.map +1 -1
  226. package/dist/src/components/common/WithHelperText.js +13 -8
  227. package/dist/src/components/common/WithHelperText.js.map +1 -1
  228. package/dist/src/components/form/CheckboxField.d.ts +6 -3
  229. package/dist/src/components/form/CheckboxField.d.ts.map +1 -1
  230. package/dist/src/components/form/CheckboxField.js +20 -1
  231. package/dist/src/components/form/CheckboxField.js.map +1 -1
  232. package/dist/src/components/form/FormSelectTypeahead.d.ts +3 -3
  233. package/dist/src/components/form/FormSelectTypeahead.d.ts.map +1 -1
  234. package/dist/src/components/form/FormSelectTypeahead.js +43 -53
  235. package/dist/src/components/form/FormSelectTypeahead.js.map +1 -1
  236. package/dist/src/components/form/RichValidationTextField.d.ts +1 -1
  237. package/dist/src/components/form/RichValidationTextField.d.ts.map +1 -1
  238. package/dist/src/components/form/RichValidationTextField.js +8 -4
  239. package/dist/src/components/form/RichValidationTextField.js.map +1 -1
  240. package/dist/src/components/form/validations.d.ts +44 -4
  241. package/dist/src/components/form/validations.d.ts.map +1 -1
  242. package/dist/src/components/form/validations.js +148 -25
  243. package/dist/src/components/form/validations.js.map +1 -1
  244. package/dist/src/components/modals/ApproveDeviceModal/ApproveDeviceForm.js +5 -3
  245. package/dist/src/components/modals/ApproveDeviceModal/ApproveDeviceForm.js.map +1 -1
  246. package/dist/src/components/modals/ApproveDeviceModal/ApproveDeviceModal.d.ts.map +1 -1
  247. package/dist/src/components/modals/ApproveDeviceModal/ApproveDeviceModal.js +3 -2
  248. package/dist/src/components/modals/ApproveDeviceModal/ApproveDeviceModal.js.map +1 -1
  249. package/dist/src/components/modals/EditLabelsModal/EditLabelsForm.d.ts.map +1 -1
  250. package/dist/src/components/modals/EditLabelsModal/EditLabelsForm.js +7 -12
  251. package/dist/src/components/modals/EditLabelsModal/EditLabelsForm.js.map +1 -1
  252. package/dist/src/components/modals/massModals/MassDecommissionDeviceModal/MassDecommissionDeviceModal.js +4 -4
  253. package/dist/src/components/modals/massModals/MassDecommissionDeviceModal/MassDecommissionDeviceModal.js.map +1 -1
  254. package/dist/src/components/modals/massModals/MassDeleteDeviceModal/MassDeleteDeviceModal.js +4 -4
  255. package/dist/src/components/modals/massModals/MassDeleteDeviceModal/MassDeleteDeviceModal.js.map +1 -1
  256. package/dist/src/components/modals/massModals/MassDeleteFleetModal/MassDeleteFleetModal.js +2 -2
  257. package/dist/src/components/modals/massModals/MassDeleteFleetModal/MassDeleteFleetModal.js.map +1 -1
  258. package/dist/src/components/modals/massModals/MassDeleteRepositoryModal/MassDeleteRepositoryModal.js +2 -2
  259. package/dist/src/components/modals/massModals/MassDeleteRepositoryModal/MassDeleteRepositoryModal.js.map +1 -1
  260. package/dist/src/hooks/timeZones.d.ts +3 -0
  261. package/dist/src/hooks/timeZones.d.ts.map +1 -0
  262. package/dist/src/hooks/timeZones.js +607 -0
  263. package/dist/src/hooks/timeZones.js.map +1 -0
  264. package/dist/src/hooks/useAppContext.d.ts +14 -8
  265. package/dist/src/hooks/useAppContext.d.ts.map +1 -1
  266. package/dist/src/hooks/useAppContext.js +13 -6
  267. package/dist/src/hooks/useAppContext.js.map +1 -1
  268. package/dist/src/hooks/useFetch.d.ts +3 -5
  269. package/dist/src/hooks/useFetch.d.ts.map +1 -1
  270. package/dist/src/hooks/useFetch.js +3 -2
  271. package/dist/src/hooks/useFetch.js.map +1 -1
  272. package/dist/src/hooks/useNavigate.d.ts +2 -1
  273. package/dist/src/hooks/useNavigate.d.ts.map +1 -1
  274. package/dist/src/hooks/useNavigate.js +1 -0
  275. package/dist/src/hooks/useNavigate.js.map +1 -1
  276. package/dist/src/hooks/useTimeZones.d.ts +4 -0
  277. package/dist/src/hooks/useTimeZones.d.ts.map +1 -0
  278. package/dist/src/hooks/useTimeZones.js +22 -0
  279. package/dist/src/hooks/useTimeZones.js.map +1 -0
  280. package/dist/src/hooks/useWebSocket.d.ts +6 -2
  281. package/dist/src/hooks/useWebSocket.d.ts.map +1 -1
  282. package/dist/src/hooks/useWebSocket.js +22 -7
  283. package/dist/src/hooks/useWebSocket.js.map +1 -1
  284. package/dist/src/links.d.ts +3 -0
  285. package/dist/src/links.d.ts.map +1 -1
  286. package/dist/src/links.js +10 -3
  287. package/dist/src/links.js.map +1 -1
  288. package/dist/src/types/deviceSpec.d.ts +93 -5
  289. package/dist/src/types/deviceSpec.d.ts.map +1 -1
  290. package/dist/src/types/deviceSpec.js +28 -2
  291. package/dist/src/types/deviceSpec.js.map +1 -1
  292. package/dist/src/types/extraTypes.d.ts +19 -1
  293. package/dist/src/types/extraTypes.d.ts.map +1 -1
  294. package/dist/src/types/extraTypes.js.map +1 -1
  295. package/dist/src/utils/labels.d.ts +1 -0
  296. package/dist/src/utils/labels.d.ts.map +1 -1
  297. package/dist/src/utils/labels.js +9 -2
  298. package/dist/src/utils/labels.js.map +1 -1
  299. package/dist/src/utils/patch.d.ts +13 -5
  300. package/dist/src/utils/patch.d.ts.map +1 -1
  301. package/dist/src/utils/patch.js +115 -71
  302. package/dist/src/utils/patch.js.map +1 -1
  303. package/dist/src/utils/query.d.ts +1 -0
  304. package/dist/src/utils/query.d.ts.map +1 -1
  305. package/dist/src/utils/query.js +10 -3
  306. package/dist/src/utils/query.js.map +1 -1
  307. package/dist/src/utils/search.d.ts +6 -0
  308. package/dist/src/utils/search.d.ts.map +1 -1
  309. package/dist/src/utils/search.js +9 -1
  310. package/dist/src/utils/search.js.map +1 -1
  311. package/dist/src/utils/time.d.ts +31 -0
  312. package/dist/src/utils/time.d.ts.map +1 -0
  313. package/dist/src/utils/time.js +134 -0
  314. package/dist/src/utils/time.js.map +1 -0
  315. package/package.json +1 -4
  316. package/src/components/DetailsPage/DetailsPage.tsx +6 -4
  317. package/src/components/DetailsPage/Tables/ApplicationsTable.tsx +6 -3
  318. package/src/components/Device/AddDeviceModal/AddDeviceModal.tsx +4 -13
  319. package/src/components/Device/DeviceDetails/DeviceAliasEdit.tsx +180 -0
  320. package/src/components/Device/DeviceDetails/DeviceApplications.tsx +8 -1
  321. package/src/components/Device/DeviceDetails/DeviceDetailsPage.tsx +21 -5
  322. package/src/components/Device/DeviceDetails/DeviceDetailsTab.tsx +3 -4
  323. package/src/components/Device/DeviceDetails/DeviceDetailsTabContent/StatusContent.tsx +7 -10
  324. package/src/components/Device/DeviceDetails/DeviceDetailsTabContent/SystemResourcesContent.tsx +3 -3
  325. package/src/components/Device/DeviceDetails/TerminalTab.tsx +43 -5
  326. package/src/components/Device/DevicesPage/DecommissionedDevicesTable.tsx +2 -1
  327. package/src/components/Device/DevicesPage/DeviceToolbarFilters.tsx +66 -38
  328. package/src/components/Device/DevicesPage/DevicesPage.tsx +11 -2
  329. package/src/components/Device/DevicesPage/EnrolledDevicesTable.tsx +16 -11
  330. package/src/components/Device/EditDeviceWizard/EditDeviceWizard.tsx +11 -2
  331. package/src/components/Device/EditDeviceWizard/EditDeviceWizardFooter.tsx +22 -6
  332. package/src/components/Device/EditDeviceWizard/EditDeviceWizardNav.tsx +15 -2
  333. package/src/components/Device/EditDeviceWizard/deviceSpecUtils.ts +147 -14
  334. package/src/components/Device/EditDeviceWizard/steps/ApplicationImageForm.tsx +28 -0
  335. package/src/components/Device/EditDeviceWizard/steps/ApplicationInlineForm.tsx +94 -0
  336. package/src/components/Device/EditDeviceWizard/steps/ApplicationTemplates.tsx +81 -50
  337. package/src/components/Device/EditDeviceWizard/steps/ConfigInlineTemplateForm.tsx +23 -28
  338. package/src/components/Device/EditDeviceWizard/steps/ConfigK8sSecretTemplateForm.tsx +1 -2
  339. package/src/components/Device/EditDeviceWizard/steps/ConfigWithRepositoryTemplateForm.tsx +18 -39
  340. package/src/components/Device/EditDeviceWizard/steps/ConfigurationTemplates.tsx +8 -14
  341. package/src/components/Device/EditDeviceWizard/steps/DeviceTemplateStep.tsx +26 -39
  342. package/src/components/Device/EditDeviceWizard/steps/DeviceUpdateStep.tsx +88 -0
  343. package/src/components/Device/EditDeviceWizard/steps/GeneralInfoStep.tsx +1 -1
  344. package/src/components/Device/EditDeviceWizard/steps/ReviewApplications.tsx +18 -19
  345. package/src/components/Device/EditDeviceWizard/steps/ReviewDeviceStep.tsx +3 -3
  346. package/src/components/Device/EditDeviceWizard/steps/ReviewTrackedSystemdServices.tsx +2 -2
  347. package/src/components/Device/EditDeviceWizard/steps/ReviewUpdatePolicy.tsx +2 -1
  348. package/src/components/Device/EditDeviceWizard/steps/SystemdUnitsForm.tsx +1 -1
  349. package/src/components/Device/EditDeviceWizard/utils.ts +16 -9
  350. package/src/components/Device/SystemdUnitsModal/SystemdUnitsModal.tsx +7 -6
  351. package/src/components/Device/SystemdUnitsModal/TrackSystemdUnitsForm.tsx +1 -5
  352. package/src/components/EnrollmentRequest/EnrollmentRequestDetails/EnrollmentRequestDetails.tsx +7 -9
  353. package/src/components/EnrollmentRequest/EnrollmentRequestList.tsx +30 -17
  354. package/src/components/EnrollmentRequest/EnrollmentRequestTableRow.tsx +5 -1
  355. package/src/components/EnrollmentRequest/useEnrollmentRequests.ts +12 -4
  356. package/src/components/Fleet/CreateFleet/CreateFleetWizard.tsx +4 -3
  357. package/src/components/Fleet/CreateFleet/CreateFleetWizardFooter.tsx +9 -2
  358. package/src/components/Fleet/CreateFleet/fleetSpecUtils.ts +51 -17
  359. package/src/components/Fleet/CreateFleet/steps/DeviceLabelSelector.tsx +1 -1
  360. package/src/components/Fleet/CreateFleet/steps/GeneralInfoStep.tsx +2 -13
  361. package/src/components/Fleet/CreateFleet/steps/ReviewStep.tsx +3 -3
  362. package/src/components/Fleet/CreateFleet/steps/UpdateConfirmChangesModal.tsx +10 -1
  363. package/src/components/Fleet/CreateFleet/steps/UpdatePolicyStep.tsx +49 -16
  364. package/src/components/Fleet/CreateFleet/steps/UpdateStepDisruptionBudget.tsx +18 -33
  365. package/src/components/Fleet/CreateFleet/steps/UpdateStepRolloutPolicy.tsx +14 -24
  366. package/src/components/Fleet/CreateFleet/steps/UpdateStepUpdatePolicy.css +3 -0
  367. package/src/components/Fleet/CreateFleet/steps/UpdateStepUpdatePolicy.tsx +246 -0
  368. package/src/components/Fleet/CreateFleet/utils.ts +23 -7
  369. package/src/components/Fleet/FleetsPage.tsx +15 -17
  370. package/src/components/Fleet/ImportFleetWizard/steps/ResourceSyncStep.tsx +1 -1
  371. package/src/components/ListPage/ListPage.tsx +7 -4
  372. package/src/components/Masthead/CommandLineToolsPage.tsx +179 -0
  373. package/src/components/OverviewPage/Cards/Status/StatusCard.tsx +6 -6
  374. package/src/components/OverviewPage/Cards/{ToDo/ToDoCard.tsx → Tasks/TasksCard.tsx} +3 -3
  375. package/src/components/OverviewPage/Overview.tsx +2 -2
  376. package/src/components/Repository/CreateRepository/CreateRepositoryForm.tsx +11 -26
  377. package/src/components/Repository/CreateRepository/CreateResourceSyncsForm.tsx +8 -17
  378. package/src/components/Repository/CreateRepository/utils.ts +4 -1
  379. package/src/components/Repository/RepositoryDetails/RepositoryResourceSyncsCard.tsx +3 -4
  380. package/src/components/Repository/RepositoryList.tsx +9 -16
  381. package/src/components/ResourceSync/RepositoryResourceSyncList.tsx +7 -11
  382. package/src/components/Status/DeviceResourceStatus.tsx +4 -4
  383. package/src/components/Status/utils.ts +3 -5
  384. package/src/components/Table/Table.tsx +32 -9
  385. package/src/components/Table/TablePagination.tsx +0 -1
  386. package/src/components/Terminal/Terminal.tsx +10 -4
  387. package/src/components/charts/DonutChart.tsx +2 -2
  388. package/src/components/common/LeaveFormConfirmation.tsx +2 -2
  389. package/src/components/common/WithHelperText.tsx +53 -21
  390. package/src/components/form/CheckboxField.tsx +28 -3
  391. package/src/components/form/FormSelectTypeahead.tsx +53 -80
  392. package/src/components/form/RichValidationTextField.tsx +73 -62
  393. package/src/components/form/validations.ts +207 -28
  394. package/src/components/modals/ApproveDeviceModal/ApproveDeviceForm.tsx +5 -5
  395. package/src/components/modals/ApproveDeviceModal/ApproveDeviceModal.tsx +3 -2
  396. package/src/components/modals/EditLabelsModal/EditLabelsForm.tsx +9 -20
  397. package/src/components/modals/massModals/MassDecommissionDeviceModal/MassDecommissionDeviceModal.tsx +2 -2
  398. package/src/components/modals/massModals/MassDeleteDeviceModal/MassDeleteDeviceModal.tsx +2 -2
  399. package/src/components/modals/massModals/MassDeleteFleetModal/MassDeleteFleetModal.tsx +2 -2
  400. package/src/components/modals/massModals/MassDeleteRepositoryModal/MassDeleteRepositoryModal.tsx +2 -2
  401. package/src/hooks/timeZones.ts +606 -0
  402. package/src/hooks/useAppContext.tsx +20 -10
  403. package/src/hooks/useFetch.ts +3 -2
  404. package/src/hooks/useNavigate.tsx +1 -0
  405. package/src/hooks/useTimeZones.ts +26 -0
  406. package/src/hooks/useWebSocket.ts +29 -7
  407. package/src/links.ts +13 -4
  408. package/src/types/deviceSpec.ts +118 -2
  409. package/src/types/extraTypes.ts +33 -1
  410. package/src/utils/labels.ts +7 -1
  411. package/src/utils/patch.ts +126 -72
  412. package/src/utils/query.ts +13 -4
  413. package/src/utils/search.ts +8 -0
  414. package/src/utils/time.ts +147 -0
  415. package/dist/jest.config.d.ts +0 -12
  416. package/dist/jest.config.d.ts.map +0 -1
  417. package/dist/jest.config.js +0 -24
  418. package/dist/jest.config.js.map +0 -1
  419. package/dist/src/components/DetailsPage/DetailsPage.spec.d.ts +0 -2
  420. package/dist/src/components/DetailsPage/DetailsPage.spec.d.ts.map +0 -1
  421. package/dist/src/components/DetailsPage/DetailsPage.spec.js +0 -81
  422. package/dist/src/components/DetailsPage/DetailsPage.spec.js.map +0 -1
  423. package/dist/src/components/Device/EditDeviceWizard/types.d.ts +0 -23
  424. package/dist/src/components/Device/EditDeviceWizard/types.d.ts.map +0 -1
  425. package/dist/src/components/Device/EditDeviceWizard/types.js +0 -3
  426. package/dist/src/components/Device/EditDeviceWizard/types.js.map +0 -1
  427. package/dist/src/components/Fleet/CreateFleet/types.d.ts +0 -29
  428. package/dist/src/components/Fleet/CreateFleet/types.d.ts.map +0 -1
  429. package/dist/src/components/Fleet/CreateFleet/types.js +0 -9
  430. package/dist/src/components/Fleet/CreateFleet/types.js.map +0 -1
  431. package/dist/src/components/OverviewPage/Cards/ToDo/ToDoCard.d.ts +0 -4
  432. package/dist/src/components/OverviewPage/Cards/ToDo/ToDoCard.d.ts.map +0 -1
  433. package/dist/src/components/OverviewPage/Cards/ToDo/ToDoCard.js.map +0 -1
  434. package/dist/src/components/UserPreferences/UserPreferencesModal.d.ts.map +0 -1
  435. package/dist/src/components/UserPreferences/UserPreferencesModal.js.map +0 -1
  436. package/dist/src/components/UserPreferences/UserPreferencesProvider.d.ts.map +0 -1
  437. package/dist/src/components/UserPreferences/UserPreferencesProvider.js.map +0 -1
  438. package/dist/src/setupTests.d.ts +0 -2
  439. package/dist/src/setupTests.d.ts.map +0 -1
  440. package/dist/src/setupTests.js +0 -24
  441. package/dist/src/setupTests.js.map +0 -1
  442. package/dist/src/tests/test-utils.d.ts +0 -7
  443. package/dist/src/tests/test-utils.d.ts.map +0 -1
  444. package/dist/src/tests/test-utils.js +0 -21
  445. package/dist/src/tests/test-utils.js.map +0 -1
  446. package/src/components/DetailsPage/DetailsPage.spec.tsx +0 -128
  447. package/src/components/Device/EditDeviceWizard/types.ts +0 -22
  448. package/src/components/Fleet/CreateFleet/types.ts +0 -33
  449. package/src/setupTests.ts +0 -21
  450. package/src/tests/test-utils.tsx +0 -21
  451. /package/dist/src/components/{UserPreferences → Masthead}/UserPreferencesModal.d.ts +0 -0
  452. /package/dist/src/components/{UserPreferences → Masthead}/UserPreferencesModal.js +0 -0
  453. /package/dist/src/components/{UserPreferences → Masthead}/UserPreferencesProvider.d.ts +0 -0
  454. /package/dist/src/components/{UserPreferences → Masthead}/UserPreferencesProvider.js +0 -0
  455. /package/src/components/{UserPreferences → Masthead}/UserPreferencesModal.tsx +0 -0
  456. /package/src/components/{UserPreferences → Masthead}/UserPreferencesProvider.tsx +0 -0
@@ -0,0 +1,179 @@
1
+ import * as React from 'react';
2
+ import {
3
+ Alert,
4
+ Button,
5
+ Divider,
6
+ Flex,
7
+ FlexItem,
8
+ List,
9
+ ListItem,
10
+ PageSection,
11
+ PageSectionVariants,
12
+ Spinner,
13
+ Stack,
14
+ StackItem,
15
+ Title,
16
+ } from '@patternfly/react-core';
17
+ import ExternalLinkAltIcon from '@patternfly/react-icons/dist/js/icons/external-link-alt-icon';
18
+
19
+ import TechPreviewBadge from '../common/TechPreviewBadge';
20
+ import { useTranslation } from '../../hooks/useTranslation';
21
+ import { useAppContext } from '../../hooks/useAppContext';
22
+ import { getErrorMessage } from '../../utils/error';
23
+ import { CliArtifactsResponse } from '../../types/extraTypes';
24
+
25
+ type CommandLineToolsContentProps = {
26
+ productName: string;
27
+ loading: boolean;
28
+ loadError?: string;
29
+ artifactsResponse?: CliArtifactsResponse;
30
+ };
31
+
32
+ type CommandLineArtifact = CliArtifactsResponse['artifacts'][0];
33
+
34
+ // "Not implemented" response from the UI Proxy when artifact functionality is disabled
35
+ const cliArtifactsDisabledError = 'Error 501';
36
+
37
+ const getArtifactUrl = (baseUrl: string, artifact: CommandLineArtifact) => {
38
+ const normalizedBaseUrl = baseUrl.endsWith('/') ? baseUrl.slice(0, -1) : baseUrl;
39
+ return `${normalizedBaseUrl}/${artifact.arch}/${artifact.os}/${artifact.filename}`;
40
+ };
41
+
42
+ const CommandLineToolsContent = ({
43
+ productName,
44
+ loading,
45
+ loadError,
46
+ artifactsResponse,
47
+ }: CommandLineToolsContentProps) => {
48
+ const { t } = useTranslation();
49
+
50
+ if (loading) {
51
+ return <Spinner size="sm" />;
52
+ }
53
+
54
+ let errorMessage = loadError;
55
+
56
+ const cliArtifacts = artifactsResponse?.artifacts || [];
57
+ if (cliArtifacts.length === 0) {
58
+ errorMessage = t('No {{ productName }} command line tools were found for this deployment at this time.', {
59
+ productName,
60
+ });
61
+ }
62
+
63
+ if (errorMessage) {
64
+ return (
65
+ <Alert
66
+ isInline
67
+ variant="danger"
68
+ title={t('Could not list the {{ productName }} command line tools', { productName })}
69
+ >
70
+ {errorMessage}
71
+ </Alert>
72
+ );
73
+ }
74
+
75
+ return (
76
+ <List>
77
+ {cliArtifacts.map((cliArtifact) => {
78
+ const linkText = t('Download flightctl CLI for {{ os }} for {{ arch }}', {
79
+ os: cliArtifact.os,
80
+ arch: cliArtifact.arch,
81
+ });
82
+ return (
83
+ <ListItem key={cliArtifact.filename}>
84
+ <Button
85
+ component="a"
86
+ variant="link"
87
+ isInline
88
+ href={getArtifactUrl(artifactsResponse?.baseUrl || '', cliArtifact)}
89
+ target="_blank"
90
+ rel="noopener noreferrer"
91
+ icon={<ExternalLinkAltIcon />}
92
+ iconPosition="end"
93
+ aria-label={linkText}
94
+ >
95
+ {linkText}
96
+ </Button>
97
+ </ListItem>
98
+ );
99
+ })}
100
+ </List>
101
+ );
102
+ };
103
+
104
+ const CommandLineToolsPage = () => {
105
+ const { t } = useTranslation();
106
+ const { getCliArtifacts, settings } = useAppContext();
107
+
108
+ const [loading, setLoading] = React.useState<boolean>(true);
109
+ const [loadError, setLoadError] = React.useState<string>();
110
+ const [artifactsResponse, setCliArtifactsResponse] = React.useState<CliArtifactsResponse>();
111
+ const [hasArtifactsEnabled, setArtifactsEnabled] = React.useState<boolean>(true);
112
+
113
+ React.useEffect(() => {
114
+ const getLinks = async () => {
115
+ try {
116
+ if (getCliArtifacts) {
117
+ const apiResponse = await getCliArtifacts();
118
+ setCliArtifactsResponse(apiResponse);
119
+ }
120
+ } catch (e) {
121
+ const msg = getErrorMessage(e);
122
+ if (msg.includes(cliArtifactsDisabledError)) {
123
+ setArtifactsEnabled(false);
124
+ } else {
125
+ setLoadError(msg);
126
+ }
127
+ } finally {
128
+ setLoading(false);
129
+ }
130
+ };
131
+ void getLinks();
132
+ }, [getCliArtifacts]);
133
+
134
+ const productName = settings.isRHEM ? t('Red Hat Edge Manager') : t('Flight Control');
135
+
136
+ return (
137
+ <PageSection variant={PageSectionVariants.light}>
138
+ <Stack hasGutter>
139
+ <StackItem>
140
+ <Flex>
141
+ <FlexItem>
142
+ <Title headingLevel="h1">{t('Command Line Tools')}</Title>
143
+ </FlexItem>
144
+ <FlexItem>
145
+ <TechPreviewBadge />
146
+ </FlexItem>
147
+ </Flex>
148
+ </StackItem>
149
+ <Divider className="pf-v5-u-my-lg" />
150
+ <StackItem>
151
+ {t(
152
+ 'With the {{ productName }} command line interface, you can manage your fleets, devices and repositories from a terminal.',
153
+ {
154
+ productName,
155
+ },
156
+ )}
157
+ </StackItem>
158
+ {hasArtifactsEnabled ? (
159
+ <StackItem>
160
+ <CommandLineToolsContent
161
+ productName={productName}
162
+ loading={loading}
163
+ loadError={loadError}
164
+ artifactsResponse={artifactsResponse}
165
+ />
166
+ </StackItem>
167
+ ) : (
168
+ <StackItem>
169
+ {t('Command line tools are not available for download in this {{ productName }} installation.', {
170
+ productName,
171
+ })}
172
+ </StackItem>
173
+ )}
174
+ </Stack>
175
+ </PageSection>
176
+ );
177
+ };
178
+
179
+ export default CommandLineToolsPage;
@@ -80,19 +80,19 @@ const StatusCard = () => {
80
80
  return (
81
81
  <Card>
82
82
  <CardHeader>
83
- <Flex alignItems={{ default: 'alignItemsCenter' }}>
84
- <FlexItem>
83
+ <Stack hasGutter>
84
+ <StackItem>
85
85
  <CardTitle>{t('Status')}</CardTitle>
86
- </FlexItem>
87
- <FlexItem>
86
+ </StackItem>
87
+ <StackItem>
88
88
  <StatusCardFilters
89
89
  selectedFleets={fleets}
90
90
  setSelectedFleets={setFleets}
91
91
  selectedLabels={labels}
92
92
  setSelectedLabels={setLabels}
93
93
  />
94
- </FlexItem>
95
- </Flex>
94
+ </StackItem>
95
+ </Stack>
96
96
  </CardHeader>
97
97
 
98
98
  <CardBody>{content}</CardBody>
@@ -18,7 +18,7 @@ import { usePendingEnrollmentRequestsCount } from '../../../../hooks/usePendingE
18
18
  import { Link, ROUTE } from '../../../../hooks/useNavigate';
19
19
  import ErrorAlert from '../../../ErrorAlert/ErrorAlert';
20
20
 
21
- const ToDoCard = () => {
21
+ const TasksCard = () => {
22
22
  const { t } = useTranslation();
23
23
 
24
24
  const [pendingErCount, loading, error] = usePendingEnrollmentRequestsCount();
@@ -59,10 +59,10 @@ const ToDoCard = () => {
59
59
 
60
60
  return (
61
61
  <Card>
62
- <CardTitle>{t('To do')}</CardTitle>
62
+ <CardTitle>{t('Tasks')}</CardTitle>
63
63
  <CardBody>{content}</CardBody>
64
64
  </Card>
65
65
  );
66
66
  };
67
67
 
68
- export default ToDoCard;
68
+ export default TasksCard;
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { Grid, GridItem } from '@patternfly/react-core';
3
3
  import StatusCard from './Cards/Status/StatusCard';
4
- import ToDoCard from './Cards/ToDo/ToDoCard';
4
+ import TasksCard from './Cards/Tasks/TasksCard';
5
5
  import { useAccessReview } from '../../hooks/useAccessReview';
6
6
  import { RESOURCE, VERB } from '../../types/rbac';
7
7
  import PageWithPermissions from '../common/PageWithPermissions';
@@ -20,7 +20,7 @@ const Overview = () => {
20
20
  )}
21
21
  {canListErs && (
22
22
  <GridItem md={6} lg={4}>
23
- <ToDoCard />
23
+ <TasksCard />
24
24
  </GridItem>
25
25
  )}
26
26
  </Grid>
@@ -32,8 +32,9 @@ import {
32
32
  } from './utils';
33
33
  import { RepoSpecType, Repository, ResourceSync } from '@flightctl/types';
34
34
  import { getErrorMessage } from '../../../utils/error';
35
+ import { DEMO_REPOSITORY_URL } from '../../../links';
35
36
  import LeaveFormConfirmation from '../../common/LeaveFormConfirmation';
36
- import WithHelperText from '../../common/WithHelperText';
37
+ import LabelWithHelperText, { FormGroupWithHelperText } from '../../common/WithHelperText';
37
38
  import NameField from '../../form/NameField';
38
39
  import TextAreaField from '../../form/TextAreaField';
39
40
  import CheckboxField from '../../form/CheckboxField';
@@ -67,16 +68,9 @@ const AdvancedSection = () => {
67
68
  <Grid hasGutter className={showConfigTypeRadios ? 'fctl-create-repo__adv-section--nested' : ''}>
68
69
  {values.repoType === RepoSpecType.HTTP && (
69
70
  <FormSection>
70
- <FormGroup
71
+ <FormGroupWithHelperText
71
72
  label={t('Validation suffix')}
72
- labelIcon={
73
- <WithHelperText
74
- ariaLabel={t('Validation suffix')}
75
- content={t(
76
- "Suffix to the repository's base URL used to validate if the HTTP service is accessible.",
77
- )}
78
- />
79
- }
73
+ content={t("Suffix to the repository's base URL used to validate if the HTTP service is accessible.")}
80
74
  >
81
75
  <TextField
82
76
  aria-label={t('Validation suffix')}
@@ -90,7 +84,7 @@ const AdvancedSection = () => {
90
84
  )
91
85
  }
92
86
  />
93
- </FormGroup>
87
+ </FormGroupWithHelperText>
94
88
  </FormSection>
95
89
  )}
96
90
 
@@ -121,17 +115,9 @@ const AdvancedSection = () => {
121
115
  />
122
116
  </FormGroup>
123
117
  {values.repoType === RepoSpecType.HTTP && (
124
- <FormGroup
125
- label={
126
- <WithHelperText
127
- content={t('JWT authentication token for the HTTP service')}
128
- ariaLabel={t('Token')}
129
- showLabel
130
- />
131
- }
132
- >
118
+ <FormGroupWithHelperText content={t('JWT authentication token for the HTTP service')} label={t('Token')}>
133
119
  <TextField name="httpConfig.token" aria-label={t('Token')} />
134
- </FormGroup>
120
+ </FormGroupWithHelperText>
135
121
  )}
136
122
  </Grid>
137
123
  )}
@@ -265,7 +251,7 @@ export const RepositoryForm = ({ isEdit }: { isEdit?: boolean }) => {
265
251
  <TextField
266
252
  name="url"
267
253
  aria-label={t('Repository URL')}
268
- helperText={t('For example: https://github.com/flightctl/flightctl-demos')}
254
+ helperText={t('For example: {{ demoRepositoryUrl }}', { demoRepositoryUrl: DEMO_REPOSITORY_URL })}
269
255
  />
270
256
  </FormGroup>
271
257
 
@@ -298,11 +284,10 @@ const CreateRepositoryFormContent = ({ isEdit, isReadOnly, onClose, children }:
298
284
  <Checkbox
299
285
  id="use-resource-syncs"
300
286
  label={
301
- <WithHelperText
302
- showLabel
303
- ariaLabel={t('Use resource syncs')}
287
+ <LabelWithHelperText
288
+ label={t('Use resource syncs')}
304
289
  content={t(
305
- "A resource sync is an automated Gitops way to manage imported fleets. The resource sync monitors changes made to the source repository and update the fleet's configurations accordingly.",
290
+ 'A resource sync is an automated Gitops method that helps manage your imported fleets by monitoring source repository changes and updating your fleet configuration accordingly.',
306
291
  )}
307
292
  />
308
293
  }
@@ -6,7 +6,7 @@ import { PlusCircleIcon } from '@patternfly/react-icons/dist/js/icons/plus-circl
6
6
  import { useTranslation } from '../../../hooks/useTranslation';
7
7
 
8
8
  import TextField from '../../form/TextField';
9
- import WithHelperText from '../../common/WithHelperText';
9
+ import { FormGroupWithHelperText } from '../../common/WithHelperText';
10
10
  import { RepositoryFormValues, ResourceSyncFormValue } from './types';
11
11
  import NameField from '../../form/NameField';
12
12
  import { getDnsSubdomainValidations } from '../../form/validations';
@@ -24,29 +24,20 @@ export const CreateResourceSyncForm = ({ rs, index }: { rs: ResourceSyncFormValu
24
24
  resourceType="resourcesyncs"
25
25
  validations={getDnsSubdomainValidations(t)}
26
26
  />
27
- <FormGroup
28
- label={t('Target revision')}
29
- isRequired
30
- labelIcon={<WithHelperText ariaLabel={t('Target revision')} content={t('Name of a branch or a tag.')} />}
31
- >
27
+ <FormGroupWithHelperText label={t('Target revision')} content={t('Name of a branch or a tag.')} isRequired>
32
28
  <TextField
33
29
  name={`resourceSyncs[${index}].targetRevision`}
34
30
  aria-label={t('Target revision')}
35
31
  value={rs.targetRevision}
36
32
  helperText={t('For example: main')}
37
33
  />
38
- </FormGroup>
39
- <FormGroup
34
+ </FormGroupWithHelperText>
35
+ <FormGroupWithHelperText
40
36
  label={t('Path')}
37
+ content={t(
38
+ 'The absolute path of a file or directory in the repository. Directories should only contain resource definition files and should not contain additional subdirectories.',
39
+ )}
41
40
  isRequired
42
- labelIcon={
43
- <WithHelperText
44
- ariaLabel={t('Path')}
45
- content={t(
46
- 'The absolute path of a file or directory in the repository. If a directory, the directory should contain only resource definitions with no subdirectories.',
47
- )}
48
- />
49
- }
50
41
  >
51
42
  <TextField
52
43
  name={`resourceSyncs[${index}].path`}
@@ -56,7 +47,7 @@ export const CreateResourceSyncForm = ({ rs, index }: { rs: ResourceSyncFormValu
56
47
  exampleFile: '/demos/basic-nginx-demo/deployment/fleet.yaml',
57
48
  })}
58
49
  />
59
- </FormGroup>
50
+ </FormGroupWithHelperText>
60
51
  </FormSection>
61
52
  );
62
53
  };
@@ -17,6 +17,7 @@ import { API_VERSION } from '../../../constants';
17
17
  import { getErrorMessage } from '../../../utils/error';
18
18
  import { appendJSONPatch } from '../../../utils/patch';
19
19
  import { MAX_TARGET_REVISION_LENGTH, maxLengthString, validKubernetesDnsSubdomain } from '../../form/validations';
20
+ import { DEMO_REPOSITORY_URL } from '../../../links';
20
21
 
21
22
  const MAX_PATH_LENGTH = 2048;
22
23
  const gitRepoUrlRegex = new RegExp(
@@ -439,7 +440,9 @@ export const repositorySchema =
439
440
  Yup.string()
440
441
  .matches(
441
442
  gitRepoUrlRegex,
442
- t('Enter a valid repository URL. Example: https://github.com/flightctl/flightctl-demos'),
443
+ t('Enter a valid repository URL. Example: {{ demoRepositoryUrl }}', {
444
+ demoRepositoryUrl: DEMO_REPOSITORY_URL,
445
+ }),
443
446
  )
444
447
  .defined(t('Repository URL is required')),
445
448
  otherwise: () =>
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { Card, CardBody, CardTitle } from '@patternfly/react-core';
3
3
 
4
- import WithHelperText from '../../common/WithHelperText';
4
+ import LabelWithHelperText from '../../common/WithHelperText';
5
5
  import RepositoryResourceSyncList from '../../ResourceSync/RepositoryResourceSyncList';
6
6
  import { useTranslation } from '../../../hooks/useTranslation';
7
7
 
@@ -10,9 +10,8 @@ const ResourceSyncsTab = ({ repositoryId }: { repositoryId: string }) => {
10
10
  return (
11
11
  <Card>
12
12
  <CardTitle>
13
- <WithHelperText
14
- showLabel
15
- ariaLabel={t('Resource syncs')}
13
+ <LabelWithHelperText
14
+ label={t('Resource syncs')}
16
15
  content={t(
17
16
  'Edge Manager will monitor the specified paths, import the defined fleets and synchronise devices',
18
17
  )}
@@ -1,11 +1,9 @@
1
1
  import React from 'react';
2
2
  import {
3
3
  Button,
4
- DropdownList,
5
4
  EmptyStateActions,
6
5
  EmptyStateBody,
7
6
  EmptyStateFooter,
8
- SelectOption,
9
7
  Toolbar,
10
8
  ToolbarContent,
11
9
  ToolbarGroup,
@@ -23,7 +21,6 @@ import { useTableTextSearch } from '../../hooks/useTableTextSearch';
23
21
  import DeleteRepositoryModal from './RepositoryDetails/DeleteRepositoryModal';
24
22
  import TableTextSearch from '../Table/TableTextSearch';
25
23
  import Table, { TableColumn } from '../Table/Table';
26
- import TableActions from '../Table/TableActions';
27
24
  import { useTableSelect } from '../../hooks/useTableSelect';
28
25
  import MassDeleteRepositoryModal from '../modals/massModals/MassDeleteRepositoryModal/MassDeleteRepositoryModal';
29
26
  import ResourceListEmptyState from '../common/ResourceListEmptyState';
@@ -56,12 +53,9 @@ const RepositoryEmptyState = () => {
56
53
  return (
57
54
  <ResourceListEmptyState icon={RepositoryIcon} titleText={t('No repositories here!')}>
58
55
  <EmptyStateBody>
59
- <>
60
- {t('You can create repositories and use them to point to Git repositories.')}
61
- <br />
62
- {t(` Adding resource syncs to them will allow you to keep your fleet's configurations updated and synced
63
- automatically.`)}
64
- </>
56
+ {t(
57
+ 'Repositories make it easier to keep your fleet configurations updated and automatically synced to your devices.',
58
+ )}
65
59
  </EmptyStateBody>
66
60
  <EmptyStateFooter>
67
61
  <EmptyStateActions>
@@ -187,11 +181,9 @@ const RepositoryTable = () => {
187
181
  </ToolbarItem>
188
182
  {canDelete && (
189
183
  <ToolbarItem>
190
- <TableActions isDisabled={!hasSelectedRows}>
191
- <DropdownList>
192
- <SelectOption onClick={() => setIsMassDeleteModalOpen(true)}>{t('Delete')}</SelectOption>
193
- </DropdownList>
194
- </TableActions>
184
+ <Button isDisabled={!hasSelectedRows} onClick={() => setIsMassDeleteModalOpen(true)} variant="secondary">
185
+ {t('Delete repositories')}
186
+ </Button>
195
187
  </ToolbarItem>
196
188
  )}
197
189
  </ToolbarContent>
@@ -199,8 +191,9 @@ const RepositoryTable = () => {
199
191
  <Table
200
192
  aria-label={t('Repositories table')}
201
193
  loading={isUpdating}
202
- emptyFilters={filteredData.length === 0}
203
- emptyData={repositories.length === 0}
194
+ hasFilters={!!search}
195
+ emptyData={filteredData.length === 0}
196
+ clearFilters={() => setSearch('')}
204
197
  isAllSelected={isAllSelected}
205
198
  onSelectAll={setAllSelected}
206
199
  columns={columns}
@@ -7,8 +7,6 @@ import {
7
7
  EmptyStateBody,
8
8
  EmptyStateFooter,
9
9
  Modal,
10
- SelectList,
11
- SelectOption,
12
10
  Toolbar,
13
11
  ToolbarContent,
14
12
  ToolbarGroup,
@@ -28,7 +26,6 @@ import Table, { TableColumn } from '../Table/Table';
28
26
  import { useTableTextSearch } from '../../hooks/useTableTextSearch';
29
27
  import TableTextSearch from '../Table/TableTextSearch';
30
28
  import { useTableSelect } from '../../hooks/useTableSelect';
31
- import TableActions from '../Table/TableActions';
32
29
 
33
30
  import MassDeleteResourceSyncModal from '../modals/massModals/MassDeleteResourceSyncModal/MassDeleteResourceSyncModal';
34
31
  import ResourceSyncStatus from './ResourceSyncStatus';
@@ -88,7 +85,7 @@ const ResourceSyncEmptyState = ({ addResourceSync }: { addResourceSync?: VoidFun
88
85
  <ResourceListEmptyState icon={CodeBranchIcon} titleText={t('No resource syncs here!')}>
89
86
  <EmptyStateBody>
90
87
  {t(
91
- "A resource sync is an automated Gitops way to manage imported fleets. The resource syncs monitors changes made to the source repository and updates the fleets' configurations accordingly.",
88
+ 'A resource sync is an automated Gitops method that helps manage your imported fleets by monitoring source repository changes and updating your fleet configuration accordingly.',
92
89
  )}
93
90
  </EmptyStateBody>
94
91
  {addResourceSync && (
@@ -222,11 +219,9 @@ const RepositoryResourceSyncList = ({ repositoryId }: { repositoryId: string })
222
219
  </ToolbarGroup>
223
220
  {canDelete && (
224
221
  <ToolbarItem>
225
- <TableActions isDisabled={!hasSelectedRows}>
226
- <SelectList>
227
- <SelectOption onClick={() => setIsMassDeleteModalOpen(true)}>{t('Delete')}</SelectOption>
228
- </SelectList>
229
- </TableActions>
222
+ <Button isDisabled={!hasSelectedRows} onClick={() => setIsMassDeleteModalOpen(true)} variant="secondary">
223
+ {t('Delete resource syncs')}
224
+ </Button>
230
225
  </ToolbarItem>
231
226
  )}
232
227
  </ToolbarContent>
@@ -249,8 +244,9 @@ const RepositoryResourceSyncList = ({ repositoryId }: { repositoryId: string })
249
244
  isAllSelected={isAllSelected}
250
245
  onSelectAll={setAllSelected}
251
246
  columns={columns}
252
- emptyFilters={filteredData.length === 0}
253
- emptyData={resourceSyncs.length === 0}
247
+ hasFilters={!!search}
248
+ emptyData={filteredData.length === 0}
249
+ clearFilters={() => setSearch('')}
254
250
  >
255
251
  <Tbody>
256
252
  {filteredData.map((resourceSync, rowIndex) => {
@@ -13,15 +13,15 @@ import { useTranslation } from '../../hooks/useTranslation';
13
13
  import { StatusLevel } from '../../utils/status/common';
14
14
  import { StatusDisplayContent } from './StatusDisplay';
15
15
 
16
- type MonitorType = keyof DeviceResourceStatus; /* cpu / disk / memory */
16
+ type MonitorType = keyof DeviceResourceStatus; /* CPU / Disk / Memory */
17
17
 
18
18
  const getMonitorTypeLabel = (monitorType: MonitorType, t: TFunction) => {
19
19
  switch (monitorType) {
20
- case 'cpu':
20
+ case 'CPU':
21
21
  return t('CPU');
22
- case 'memory':
22
+ case 'Memory':
23
23
  return t('Memory');
24
- case 'disk':
24
+ case 'Disk':
25
25
  return t('Disk');
26
26
  }
27
27
  };
@@ -1,8 +1,6 @@
1
1
  import { TFunction } from 'i18next';
2
2
 
3
- export const getApplicationStatusHelperText = (t: TFunction) =>
4
- t('Indicates the overall status of application workloads on the device.');
5
- export const getDeviceStatusHelperText = (t: TFunction) =>
6
- t('Indicates the overall status of the device hardware and operating system.');
3
+ export const getApplicationStatusHelperText = (t: TFunction) => t('Overall status of application workloads.');
4
+ export const getDeviceStatusHelperText = (t: TFunction) => t('Overall status of device hardware and operating system.');
7
5
  export const getUpdateStatusHelperText = (t: TFunction) =>
8
- t('Indicates whether a system is running the latest target configuration or is updating towards it.');
6
+ t('Current system configuration vs. latest system configuration.');
@@ -1,8 +1,17 @@
1
1
  import * as React from 'react';
2
- import { Bullseye, PageSection, Spinner } from '@patternfly/react-core';
2
+ import {
3
+ Button,
4
+ EmptyState,
5
+ EmptyStateActions,
6
+ EmptyStateBody,
7
+ EmptyStateHeader,
8
+ EmptyStateIcon,
9
+ Spinner,
10
+ } from '@patternfly/react-core';
3
11
  import { Table as PFTable, Td, Th, ThProps, Thead, Tr } from '@patternfly/react-table';
4
12
  import { useTranslation } from '../../hooks/useTranslation';
5
- import WithHelperText from '../common/WithHelperText';
13
+ import LabelWithHelperText from '../common/WithHelperText';
14
+ import { SearchIcon } from '@patternfly/react-icons/dist/js/icons';
6
15
 
7
16
  export type ApiSortTableColumn = {
8
17
  name: string;
@@ -28,8 +37,9 @@ type TableProps<D> = {
28
37
  columns: TableColumn<D>[];
29
38
  children: React.ReactNode;
30
39
  loading: boolean;
31
- emptyFilters?: boolean;
40
+ hasFilters?: boolean;
32
41
  emptyData?: boolean;
42
+ clearFilters?: VoidFunction;
33
43
  'aria-label': string;
34
44
  // getSortParams: (columnIndex: number) => ThProps['sort'];
35
45
  onSelectAll?: (isSelected: boolean) => void;
@@ -42,20 +52,33 @@ const Table: TableFC = ({
42
52
  columns,
43
53
  children,
44
54
  loading,
45
- emptyFilters,
55
+ hasFilters,
46
56
  emptyData,
57
+ clearFilters,
47
58
  onSelectAll,
48
59
  isAllSelected,
49
60
  ...rest
50
61
  }) => {
51
62
  const { t } = useTranslation();
52
- if (emptyData && !emptyFilters) {
63
+ if (emptyData && hasFilters) {
53
64
  return loading ? (
54
65
  <Spinner size="md" />
55
66
  ) : (
56
- <PageSection variant="light">
57
- <Bullseye>{t('No resources are matching the current filters.')}</Bullseye>
58
- </PageSection>
67
+ <EmptyState variant="full">
68
+ <EmptyStateHeader
69
+ titleText={t('No results found')}
70
+ icon={<EmptyStateIcon icon={SearchIcon} />}
71
+ headingLevel="h1"
72
+ />
73
+ <EmptyStateBody>{t('Clear all filters and try again.')}</EmptyStateBody>
74
+ {clearFilters && (
75
+ <EmptyStateActions>
76
+ <Button variant="link" onClick={clearFilters}>
77
+ {t('Clear all filters')}
78
+ </Button>
79
+ </EmptyStateActions>
80
+ )}
81
+ </EmptyState>
59
82
  );
60
83
  }
61
84
 
@@ -75,7 +98,7 @@ const Table: TableFC = ({
75
98
  {columns.map((c) => (
76
99
  <Th key={c.name} {...c.thProps} aria-label={c.name}>
77
100
  {c.helperText ? (
78
- <WithHelperText ariaLabel={c.name} showLabel content={c.helperText} triggerAction="hover" />
101
+ <LabelWithHelperText label={c.name} content={c.helperText} triggerAction="hover" />
79
102
  ) : (
80
103
  c.name
81
104
  )}
@@ -58,7 +58,6 @@ function TablePagination<T extends ApiList>({
58
58
  return (
59
59
  <Pagination
60
60
  isDisabled={isUpdating}
61
- widgetId="table-pagination"
62
61
  isCompact
63
62
  variant={PaginationVariant.top}
64
63
  toggleTemplate={() => (