[OpenNMS/opennms] d2a3b8: NMS-19981: PrimeVue migration: Replace Feather ico...
Scott Theleman via opennms-cvs <[email protected]>
| Newsgroups | gmane.network.opennms.cvs |
|---|---|
| Message-ID | <OpenNMS/opennms/push/refs/heads/release-36.x/[email protected]> |
Branch: refs/heads/release-36.x
Home: https://github.com/OpenNMS/opennms
Commit: d2a3b830e19da855eaac19015043696aac003e9d
https://github.com/OpenNMS/opennms/commit/d2a3b830e19da855eaac19015043696aac003e9d
Author: Scott Theleman <[email protected]>
Date: 2026-07-21 (Tue, 21 Jul 2026)
Changed paths:
M ui/DEVELOPMENT.md
M ui/MENU_TEMPLATES.md
M ui/README.md
A ui/THIRD-PARTY-LICENSE.md
M ui/copilot-instructions.md
M ui/eslint.config.js
M ui/package.json
M ui/pnpm-lock.yaml
A ui/scripts/generate-icons.mjs
M ui/src/assets/Backup.vue
M ui/src/assets/Compare.vue
M ui/src/assets/Endpoints.vue
M ui/src/assets/FileEditor.vue
M ui/src/assets/Logs.vue
M ui/src/assets/Speed.vue
M ui/src/components/Configuration/ConfigurationAdvancedPanel.vue
M ui/src/components/Configuration/ConfigurationCopyPasteDisplay.vue
M ui/src/components/Configuration/ConfigurationCronSelector.vue
M ui/src/components/Configuration/ConfigurationDrawer.vue
M ui/src/components/Configuration/ConfigurationEmptyTable.vue
M ui/src/components/Configuration/ConfigurationGeneratedUrl.vue
M ui/src/components/Configuration/ConfigurationHeader.vue
M ui/src/components/Configuration/ConfigurationHelpPanel.vue
M ui/src/components/Configuration/ConfigurationHelper.ts
M ui/src/components/Configuration/ConfigurationTable.vue
M ui/src/components/Configuration/ConfigurationTableWrapper.vue
M ui/src/components/Configuration/ConfigurationThreadPools.vue
M ui/src/components/Configuration/ProvisionDForm.vue
M ui/src/components/Device/DCBGroupFilters.vue
M ui/src/components/Device/DCBModalConfigDiffContent.vue
M ui/src/components/Device/DCBModalViewHistoryContent.vue
M ui/src/components/Device/DCBSearch.vue
M ui/src/components/Device/DCBTable.vue
M ui/src/components/Device/DCBTableStatusDropdown.vue
M ui/src/components/EventConfigEventCreate/AlarmDataInfo.vue
M ui/src/components/EventConfigEventCreate/BasicInformation.vue
M ui/src/components/EventConfigEventCreate/MaskElements.vue
M ui/src/components/EventConfigEventCreate/MaskVarbinds.vue
M ui/src/components/EventConfigEventCreate/VarbindsDecode.vue
M ui/src/components/EventConfigEventCreate/constants.ts
M ui/src/components/EventConfiguration/EventConfigSourceTable.vue
M ui/src/components/EventConfiguration/EventConfigUploadFilesTab.vue
M ui/src/components/EventConfigurationDetail/EventConfigEventTable.vue
M ui/src/components/FileEditor/Console.vue
M ui/src/components/FileEditor/FileSidebar.vue
M ui/src/components/FileEditor/FileTreeItem.vue
M ui/src/components/FileEditor/Help.vue
M ui/src/components/FileEditor/Search.vue
M ui/src/components/FileEditor/TopBar.vue
M ui/src/components/Layout/BreadCrumbs.vue
A ui/src/components/Layout/OnmsAppLayout.vue
M ui/src/components/Logs/Editor.vue
M ui/src/components/Map/LeafletMap.vue
M ui/src/components/Map/MapAlarmsGrid.vue
M ui/src/components/Map/MapNodesGrid.vue
M ui/src/components/Map/MapSearch.vue
M ui/src/components/Map/MarkerClusterPopupContent.vue
M ui/src/components/Map/MarkerPopup.vue
M ui/src/components/Map/SeverityFilter.vue
M ui/src/components/Map/SortableTh.vue
M ui/src/components/Map/utils.ts
M ui/src/components/Menu/Menubar.vue
M ui/src/components/Menu/Search.vue
M ui/src/components/Menu/SearchResult.vue
M ui/src/components/Menu/SideMenu.vue
M ui/src/components/Menu/UserNotificationsMenuItem.vue
M ui/src/components/Menu/UserSelfServiceMenuItem.vue
M ui/src/components/Menu/useMenuIcons.ts
M ui/src/components/Menu/utils.ts
M ui/src/components/Nodes/AssetFilterPanel.vue
M ui/src/components/Nodes/ColumnSelectionDrawer.vue
M ui/src/components/Nodes/ExtendedSearchPanel.vue
M ui/src/components/Nodes/FlowTooltipCell.vue
M ui/src/components/Nodes/NodeActionsDropdown.vue
M ui/src/components/Nodes/NodeAdvancedFiltersDrawer.vue
M ui/src/components/Nodes/NodeDownloadDropdown.vue
M ui/src/components/Nodes/NodesTable.vue
M ui/src/components/Nodes/hooks/useNodeQuery.ts
R ui/src/components/PrimeVueTest.vue
M ui/src/components/Resources/Graph.vue
M ui/src/components/Resources/GraphContainer.vue
M ui/src/components/Resources/GraphDataTable.vue
M ui/src/components/Resources/TimeControls.vue
M ui/src/components/SCV/SCVAttribute.vue
M ui/src/components/SCV/SCVForm.vue
M ui/src/components/SCV/SCVList.vue
M ui/src/components/SCV/ScvInputIcon.vue
M ui/src/components/SCV/ScvSearchDrawer.vue
M ui/src/components/SnmpConfiguration/SnmpConfigDefaultsPanel.vue
M ui/src/components/SnmpConfiguration/SnmpConfigDefinitionBasicInformation.vue
M ui/src/components/SnmpConfiguration/SnmpConfigDefinitionsTab.vue
M ui/src/components/SnmpConfiguration/SnmpConfigDefinitionsTable.vue
M ui/src/components/SnmpConfiguration/SnmpConfigDetailsPanel.vue
M ui/src/components/SnmpConfiguration/SnmpConfigLookupPanel.vue
M ui/src/components/SnmpConfiguration/SnmpConfigLookupTab.vue
M ui/src/components/SnmpConfiguration/SnmpConfigPairedFieldInputs.vue
M ui/src/components/SnmpConfiguration/SnmpConfigProfileBasicInformation.vue
M ui/src/components/SnmpConfiguration/SnmpConfigProfilesTab.vue
M ui/src/components/SnmpConfiguration/SnmpConfigProfilesTable.vue
M ui/src/components/SnmpConfiguration/SnmpConfigUploadDownloadTab.vue
M ui/src/components/SnmpDataCollection/SnmpDataCollectionProfile/ProfileDetailsTab.vue
M ui/src/components/SnmpDataCollection/SnmpDataCollectionProfile/ProfileRrdSettingsTab.vue
M ui/src/components/SnmpDataCollection/SnmpDataCollectionProfile/ProfileSourcesTab.vue
M ui/src/components/SnmpDataCollection/SnmpDataCollectionProfile/SnmpDataCollectionProfileDetails.vue
M ui/src/components/SnmpDataCollection/SnmpDataCollectionProfilesTable.vue
M ui/src/components/SnmpDataCollection/SnmpDataCollectionSourceDetail/Drawer/MibGroupCreationDrawer.vue
M ui/src/components/SnmpDataCollection/SnmpDataCollectionSourceDetail/Drawer/ResourceTypeCreationDrawer.vue
M ui/src/components/SnmpDataCollection/SnmpDataCollectionSourceDetail/Drawer/SnmpDataCollectionSourceProfilesDrawer.vue
M ui/src/components/SnmpDataCollection/SnmpDataCollectionSourceDetail/Drawer/SystemDefinitionCreationDrawer.vue
M ui/src/components/SnmpDataCollection/SnmpDataCollectionSourceDetail/MibGroupsTable.vue
M ui/src/components/SnmpDataCollection/SnmpDataCollectionSourceDetail/ResourceTypesTable.vue
M ui/src/components/SnmpDataCollection/SnmpDataCollectionSourceDetail/SystemDefinitionsTable.vue
M ui/src/components/SnmpDataCollection/SnmpDataCollectionSourceImport.vue
M ui/src/components/SnmpDataCollection/SnmpDataCollectionSourcesTable.vue
M ui/src/components/TrapdConfiguration/CreateSnmpV3User.vue
M ui/src/components/TrapdConfiguration/GeneralConfiguration.vue
M ui/src/components/TrapdConfiguration/SnmpV3UserManagement.vue
M ui/src/components/TrapdConfiguration/TrapdAdvancedConfiguration.vue
M ui/src/components/UsageStatistics/UsageStatisticsHeader.vue
M ui/src/components/ZenithConnect/ZenithConnectRegister.vue
M ui/src/components/ZenithConnect/ZenithConnectRegisterResult.vue
M ui/src/components/ZenithConnect/ZenithConnectView.vue
A ui/src/components/icons/OnmsIcon.vue
A ui/src/components/icons/account/Group.vue
A ui/src/components/icons/action/AccountCircle.vue
A ui/src/components/icons/action/Add.vue
A ui/src/components/icons/action/AddCircleAlt.vue
A ui/src/components/icons/action/AddComment.vue
A ui/src/components/icons/action/AddNote.vue
A ui/src/components/icons/action/AddUser.vue
A ui/src/components/icons/action/Archive.vue
A ui/src/components/icons/action/AssignTo.vue
A ui/src/components/icons/action/AttachEmail.vue
A ui/src/components/icons/action/AttachFile.vue
A ui/src/components/icons/action/Build.vue
A ui/src/components/icons/action/Business.vue
A ui/src/components/icons/action/Calendar.vue
A ui/src/components/icons/action/CalendarEndDate.vue
A ui/src/components/icons/action/CalendarStartDate.vue
A ui/src/components/icons/action/Cancel.vue
A ui/src/components/icons/action/ChangeOwner.vue
A ui/src/components/icons/action/CheckCircle.vue
A ui/src/components/icons/action/Cloud.vue
A ui/src/components/icons/action/CloudDownload.vue
A ui/src/components/icons/action/CloudUpload.vue
A ui/src/components/icons/action/Code.vue
A ui/src/components/icons/action/Comment.vue
A ui/src/components/icons/action/ContactSupport.vue
A ui/src/components/icons/action/ContentCopy.vue
A ui/src/components/icons/action/ContentPaste.vue
A ui/src/components/icons/action/Cycle.vue
A ui/src/components/icons/action/Dashboard.vue
A ui/src/components/icons/action/DateRange.vue
A ui/src/components/icons/action/Delete.vue
A ui/src/components/icons/action/DownloadFile.vue
A ui/src/components/icons/action/Edit.vue
A ui/src/components/icons/action/EditMode.vue
A ui/src/components/icons/action/Email.vue
A ui/src/components/icons/action/EmailDraft.vue
A ui/src/components/icons/action/EmailInbox.vue
A ui/src/components/icons/action/EmailSecure.vue
A ui/src/components/icons/action/ExitToApp.vue
A ui/src/components/icons/action/Expand.vue
A ui/src/components/icons/action/Feedback.vue
A ui/src/components/icons/action/FeedbackAlt.vue
A ui/src/components/icons/action/FileCopy.vue
A ui/src/components/icons/action/FilterAlt.vue
A ui/src/components/icons/action/Group.vue
A ui/src/components/icons/action/Help.vue
A ui/src/components/icons/action/Hide.vue
A ui/src/components/icons/action/Home.vue
A ui/src/components/icons/action/Info.vue
A ui/src/components/icons/action/InformationExchange.vue
A ui/src/components/icons/action/LightDarkMode.vue
A ui/src/components/icons/action/Link.vue
A ui/src/components/icons/action/List.vue
A ui/src/components/icons/action/Location.vue
A ui/src/components/icons/action/LocationCity.vue
A ui/src/components/icons/action/Lock.vue
A ui/src/components/icons/action/LockPasswordProtected.vue
A ui/src/components/icons/action/LogIn.vue
A ui/src/components/icons/action/LogOut.vue
A ui/src/components/icons/action/LoggerConfigs.vue
A ui/src/components/icons/action/ManageProfile.vue
A ui/src/components/icons/action/MarkComplete.vue
A ui/src/components/icons/action/MarkIncomplete.vue
A ui/src/components/icons/action/MarkRead.vue
A ui/src/components/icons/action/MarkUnread.vue
A ui/src/components/icons/action/Notifications.vue
A ui/src/components/icons/action/Options.vue
A ui/src/components/icons/action/Person.vue
A ui/src/components/icons/action/Pin.vue
A ui/src/components/icons/action/PlayCircle.vue
A ui/src/components/icons/action/Print.vue
A ui/src/components/icons/action/Remove.vue
A ui/src/components/icons/action/RemoveUser.vue
A ui/src/components/icons/action/Reporting.vue
A ui/src/components/icons/action/Restore.vue
A ui/src/components/icons/action/Search.vue
A ui/src/components/icons/action/Send.vue
A ui/src/components/icons/action/SendWorkflow.vue
A ui/src/components/icons/action/Settings.vue
A ui/src/components/icons/action/Share.vue
A ui/src/components/icons/action/Sort.vue
A ui/src/components/icons/action/Subscriptions.vue
A ui/src/components/icons/action/SupportCenter.vue
A ui/src/components/icons/action/Unlock.vue
A ui/src/components/icons/action/UpdateSchedules.vue
A ui/src/components/icons/action/UpdateUtilities.vue
A ui/src/components/icons/action/UploadFile.vue
A ui/src/components/icons/action/VerifedUser.vue
A ui/src/components/icons/action/View.vue
A ui/src/components/icons/action/ViewDetails.vue
A ui/src/components/icons/action/Workflow.vue
A ui/src/components/icons/communication/Certificate.vue
A ui/src/components/icons/communication/CertificateAlt.vue
A ui/src/components/icons/communication/Chat.vue
A ui/src/components/icons/communication/Contacts.vue
A ui/src/components/icons/communication/Documentation.vue
A ui/src/components/icons/communication/IdCard.vue
A ui/src/components/icons/communication/Phone.vue
A ui/src/components/icons/content/BlogArticle.vue
A ui/src/components/icons/content/Video.vue
A ui/src/components/icons/datavis/AreaChart.vue
A ui/src/components/icons/datavis/BarChart.vue
A ui/src/components/icons/datavis/ColumnChart.vue
A ui/src/components/icons/datavis/DonutChart.vue
A ui/src/components/icons/datavis/Gauge.vue
A ui/src/components/icons/datavis/LineChart.vue
A ui/src/components/icons/datavis/PieChart.vue
A ui/src/components/icons/datavis/PolarChart.vue
A ui/src/components/icons/datavis/Reporting.vue
A ui/src/components/icons/datavis/StackedBarChart.vue
A ui/src/components/icons/datavis/StackedColumnChart.vue
A ui/src/components/icons/datavis/TreeDiagram.vue
A ui/src/components/icons/file/Attachment.vue
A ui/src/components/icons/file/Folder.vue
A ui/src/components/icons/file/FolderAdd.vue
A ui/src/components/icons/file/FolderLocked.vue
A ui/src/components/icons/file/FolderOpen.vue
A ui/src/components/icons/file/Generic.vue
A ui/src/components/icons/file/Image.vue
A ui/src/components/icons/file/Pdf.vue
A ui/src/components/icons/file/Text.vue
A ui/src/components/icons/file/WordDoc.vue
A ui/src/components/icons/file/Xls.vue
A ui/src/components/icons/file/Zip.vue
A ui/src/components/icons/hardware/ApplianceProfiles.vue
A ui/src/components/icons/hardware/Appliances.vue
A ui/src/components/icons/hardware/AppliancesAlt.vue
A ui/src/components/icons/hardware/DesktopWindows.vue
A ui/src/components/icons/hardware/Instances.vue
A ui/src/components/icons/hardware/KeyboardArrowDown.vue
A ui/src/components/icons/hardware/KeyboardArrowUp.vue
A ui/src/components/icons/hardware/Laptop.vue
A ui/src/components/icons/hardware/MinionProfiles.vue
A ui/src/components/icons/hardware/Network.vue
A ui/src/components/icons/hardware/NetworkProfiles.vue
A ui/src/components/icons/hardware/Router.vue
A ui/src/components/icons/hardware/Security.vue
A ui/src/components/icons/hardware/Server.vue
A ui/src/components/icons/hardware/VirtualMachine.vue
A ui/src/components/icons/hardware/VirtualMachineAlt.vue
A ui/src/components/icons/medical/Ambulance.vue
A ui/src/components/icons/medical/CostSavings.vue
A ui/src/components/icons/medical/Drug.vue
A ui/src/components/icons/medical/DrugGroupId.vue
A ui/src/components/icons/medical/Hospital.vue
A ui/src/components/icons/medical/Patient.vue
A ui/src/components/icons/medical/Payor.vue
A ui/src/components/icons/medical/Provider.vue
A ui/src/components/icons/medical/ProviderOffice.vue
A ui/src/components/icons/medical/Treatment.vue
A ui/src/components/icons/medical/TreatmentCycle.vue
A ui/src/components/icons/medical/TreatmentSchedule.vue
A ui/src/components/icons/medical/Vitals.vue
A ui/src/components/icons/navigation/Apps.vue
A ui/src/components/icons/navigation/AppsGetMore.vue
A ui/src/components/icons/navigation/ArrowBack.vue
A ui/src/components/icons/navigation/ArrowDropDown.vue
A ui/src/components/icons/navigation/Cancel.vue
A ui/src/components/icons/navigation/ChevronLeft.vue
A ui/src/components/icons/navigation/ChevronRight.vue
A ui/src/components/icons/navigation/ExpandLess.vue
A ui/src/components/icons/navigation/ExpandMore.vue
A ui/src/components/icons/navigation/FirstPage.vue
A ui/src/components/icons/navigation/Fullscreen.vue
A ui/src/components/icons/navigation/FullscreenExit.vue
A ui/src/components/icons/navigation/GridView.vue
A ui/src/components/icons/navigation/LastPage.vue
A ui/src/components/icons/navigation/Menu.vue
A ui/src/components/icons/navigation/MenuClose.vue
A ui/src/components/icons/navigation/MenuOpen.vue
A ui/src/components/icons/navigation/MoreHoriz.vue
A ui/src/components/icons/navigation/MoreVert.vue
A ui/src/components/icons/navigation/Refresh.vue
A ui/src/components/icons/navigation/SubdirectoryArrowLeft.vue
A ui/src/components/icons/navigation/SubdirectoryArrowRight.vue
A ui/src/components/icons/navigation/UnfoldLess.vue
A ui/src/components/icons/navigation/UnfoldMore.vue
A ui/src/components/icons/network/AggregationLayer.vue
A ui/src/components/icons/network/AggregationLayerAlt1.vue
A ui/src/components/icons/network/AggregationLayerAlt2.vue
A ui/src/components/icons/network/AggregationLayerAlt3.vue
A ui/src/components/icons/network/AggregationLayerAlt4.vue
A ui/src/components/icons/network/AggregationLayerAlt5.vue
A ui/src/components/icons/network/ApiConfig.vue
A ui/src/components/icons/network/ApiEndpoints.vue
A ui/src/components/icons/network/ApplianceProfiles.vue
A ui/src/components/icons/network/Appliances.vue
A ui/src/components/icons/network/AppliancesAlt.vue
A ui/src/components/icons/network/Build.vue
A ui/src/components/icons/network/CertificateAlt.vue
A ui/src/components/icons/network/Cloud.vue
A ui/src/components/icons/network/CloudBackUp.vue
A ui/src/components/icons/network/CloudDownload.vue
A ui/src/components/icons/network/CloudService.vue
A ui/src/components/icons/network/CloudUpload.vue
A ui/src/components/icons/network/Code.vue
A ui/src/components/icons/network/Compare.vue
A ui/src/components/icons/network/Compare1.vue
A ui/src/components/icons/network/Compliance.vue
A ui/src/components/icons/network/Configuration.vue
A ui/src/components/icons/network/Connection.vue
A ui/src/components/icons/network/ContainerAdd.vue
A ui/src/components/icons/network/ContainerTransient.vue
A ui/src/components/icons/network/ContainerUnknown.vue
A ui/src/components/icons/network/Database.vue
A ui/src/components/icons/network/Desktop.vue
A ui/src/components/icons/network/Digitize.vue
A ui/src/components/icons/network/DistributedMonitoring.vue
A ui/src/components/icons/network/ElectricalServices.vue
A ui/src/components/icons/network/EndUser.vue
A ui/src/components/icons/network/ExitCompare.vue
A ui/src/components/icons/network/ExitCompareModeAlt.vue
A ui/src/components/icons/network/ExtractData.vue
A ui/src/components/icons/network/Firewall.vue
A ui/src/components/icons/network/Instances.vue
A ui/src/components/icons/network/Inventory.vue
A ui/src/components/icons/network/InventoryAdd.vue
A ui/src/components/icons/network/InventoryAlt.vue
A ui/src/components/icons/network/InventoryConfirm.vue
A ui/src/components/icons/network/InventoryDelete.vue
A ui/src/components/icons/network/Laptop.vue
A ui/src/components/icons/network/LogFile.vue
A ui/src/components/icons/network/LoggerConfigs.vue
A ui/src/components/icons/network/Logs.vue
A ui/src/components/icons/network/LogsAlt.vue
A ui/src/components/icons/network/Microservices.vue
A ui/src/components/icons/network/Minion.vue
A ui/src/components/icons/network/MinionProfiles.vue
A ui/src/components/icons/network/Monitoring.vue
A ui/src/components/icons/network/NetworkProfiles.vue
A ui/src/components/icons/network/Nodes.vue
A ui/src/components/icons/network/Policy.vue
A ui/src/components/icons/network/Power.vue
A ui/src/components/icons/network/RouterLan.vue
A ui/src/components/icons/network/RouterWan.vue
A ui/src/components/icons/network/Security.vue
A ui/src/components/icons/network/SecurityScan.vue
A ui/src/components/icons/network/Server.vue
A ui/src/components/icons/network/ServerClock.vue
A ui/src/components/icons/network/Switch.vue
A ui/src/components/icons/network/Terminal.vue
A ui/src/components/icons/network/UpdateUtilities.vue
A ui/src/components/icons/network/Utilities.vue
A ui/src/components/icons/network/ViewCode.vue
A ui/src/components/icons/network/VirtualMachine.vue
A ui/src/components/icons/network/VirtualMachineAlt.vue
A ui/src/components/icons/network/VirtualMachineAlt2.vue
A ui/src/components/icons/network/WifiRouter.vue
A ui/src/components/icons/notification/Connected.vue
A ui/src/components/icons/notification/Error.vue
A ui/src/components/icons/notification/NotificationSelected.vue
A ui/src/components/icons/notification/NotificationSoundSelected.vue
A ui/src/components/icons/notification/NotificationsOff.vue
A ui/src/components/icons/notification/Unconnected.vue
A ui/src/components/icons/notification/Warning.vue
A ui/src/components/icons/notification/Wifi.vue
A ui/src/components/icons/notification/WifiNoConnection.vue
A ui/src/components/icons/notification/WifiOff.vue
A ui/src/components/icons/notification/WifiSignalBad.vue
A ui/src/components/icons/notification/WifiStatusBar.vue
A ui/src/components/icons/status/Available.vue
A ui/src/components/icons/status/Unavailable.vue
A ui/src/composables/useOutsideClick.ts
M ui/src/composables/useQueryParams.ts
M ui/src/containers/DeviceConfigBackup.vue
M ui/src/containers/EventConfigEventCreate.vue
M ui/src/containers/EventConfigurationDetail.vue
M ui/src/containers/FileEditor.vue
M ui/src/containers/Home.vue
M ui/src/containers/Logs.vue
M ui/src/containers/Nodes.vue
M ui/src/containers/ProvisionDConfig.vue
M ui/src/containers/ResourceGraphs.vue
M ui/src/containers/SnmpDataCollection.vue
M ui/src/containers/SnmpDataCollectionSourceDetail.vue
M ui/src/containers/UsageStatistics.vue
M ui/src/containers/ZenithConnectSuccess.vue
M ui/src/lib/constants.ts
M ui/src/lib/sorting.ts
M ui/src/lib/trapdValidator.ts
M ui/src/main/App.vue
M ui/src/main/index.html
M ui/src/main/main.ts
M ui/src/main/router/index.ts
M ui/src/menu/index.html
M ui/src/menu/main.ts
M ui/src/stores/mapStore.ts
M ui/src/stores/nodeStructureStore.ts
A ui/src/styles/_onms-color-utils.scss
A ui/src/styles/_onms-elevation.scss
A ui/src/styles/_onms-table.scss
A ui/src/styles/_onms-tokens.scss
A ui/src/styles/_onms-typography.scss
M ui/src/styles/_severities.scss
M ui/src/styles/_transitionDataTable.scss
A ui/src/styles/onms-base.scss
M ui/src/styles/onms-grid.scss
A ui/src/styles/onms-theme.scss
R ui/src/styles/opennms-feather-styles.scss
A ui/src/styles/opennms-styles.scss
M ui/src/styles/themes.scss
M ui/src/theme/opennms-preset.ts
M ui/src/types/index.ts
M ui/src/types/snmpConfig.ts
M ui/tests/components/Menu/utils.test.ts
M ui/tests/components/Nodes/AssetFilterPanel.test.ts
M ui/tests/components/Nodes/ExtendedSearchPanel.test.ts
M ui/tests/components/Nodes/NodesTable.test.ts
M ui/tests/components/TrapdConfiguration/CreateSnmpV3User.test.ts
M ui/tests/components/TrapdConfiguration/SnmpV3UserManagement.test.ts
M ui/tests/components/TrapdConfiguration/TrapdAdvancedConfiguration.test.ts
M ui/tests/lib/sorting.test.ts
M ui/vite.config.menu.ts
M ui/vite.config.ts
Log Message:
-----------
NMS-19981: PrimeVue migration: Replace Feather icons, completely remove Feather (#8636)
* NMS-19981: Vendor all FeatherDS icons as local OnmsIcon components
Generate local template-only SFCs for all 262 @featherds/icon glyphs into
src/components/icons/<category>/<Name>.vue (SVG geometry copied verbatim via a
one-time render-to-string generator, scripts/generate-icons.mjs), plus a
self-contained OnmsIcon wrapper (depends only on vue) replacing FeatherIcon
with the same :icon/flex/title API. No app code wired to these yet.
* NMS-19981: Repoint icon usage to vendored OnmsIcon
Rewrite all @featherds/icon imports across src to the local vendored icons +
OnmsIcon wrapper (<FeatherIcon> -> <OnmsIcon>; deep icon imports ->
@/components/icons/<cat>/<Name>.vue). Rename the .feather-icon CSS class to
.onms-icon in the 5 consuming components; retype icon components from
typeof FeatherIcon/DefineComponent to vue Component in Menu/utils.ts and
UserSelfServiceMenuItem.vue; convert SideMenu's PrimeIcons toggle/submenu
chevron to OnmsIcon (ChevronLeft/ChevronRight); rename 5 test stubs; ignore
scripts/ in eslint.
No @featherds/icon imports remain in src. The package stays in package.json:
other still-present @featherds/* packages (@featherds/input-helper source)
import it transitively and rely on it being hoisted; it will be removed when
those packages are dropped later in Phase 6.
* NMS-19981: Vendor FeatherDS typography mixins as onms- mixins
Replace @featherds/styles/mixins/typography with local, self-contained
src/styles/_onms-typography.scss (all 15 typography mixins as onms-*, Feather
metrics inlined, Inter/OpenSans literals, color via var(--p-text-color)).
Repoint all 54 consumers (both @import and @use forms) and rename @include
sites to onms-. Other @featherds/styles imports remain for later Phase 6 steps.
* NMS-19981: Migrate FeatherDS grid classes to onms-grid
Replace the remaining feather-row/feather-col-12 (Home, UsageStatistics)
with onms-row/onms-col-12, and feather-container (ProvisionDConfig) with a
new .onms-container in onms-grid.scss (max-width 75rem + 1.5rem padding,
matching FeatherDS). Remove the now-unused @featherds/styles/lib/grid import
from App.vue. No responsive/offset variants were in use.
* NMS-19981: Vendor FeatherDS elevation mixin as onms-elevation
Replace @featherds/styles/mixins/elevation with local self-contained
src/styles/_onms-elevation.scss: parameterized onms-elevation($level) with the
Material box-shadow ramp inlined as literals (levels 0-4; app uses 1/2) and the
elevated surface via var(--p-content-background). Rewrite the 9 @include sites
(incl. one namespaced @use) and remove the dead elevation import from 7 files
that imported but never used it.
* NMS-19981: Vendor FeatherDS type/enum shims into @/types
Define SORT (enum; asc/desc/none values preserved), ISelectItemType and
IAutocompleteItemType (loose index-signature interfaces) locally in
src/types/index.ts, and repoint all imports from @featherds/{table,select,
autocomplete} to @/types (8 SORT + 13 ISelectItemType + 6 IAutocompleteItemType
sites). @featherds/select and @featherds/autocomplete now have no source usage;
@featherds/table remains only via its table SCSS (separate cleanup).
* NMS-19981: Vendor FeatherDS table SCSS as onms-table
Add src/styles/_onms-table.scss with onms-table()/onms-table-condensed() mixins
(the only two the app used) copied verbatim from @featherds/table, typography via
onms-typography and border/text tokens mapped to --p-*. Rewrite the 4 @include
consumers (GraphDataTable, Map alarm/node grids, MarkerClusterPopupContent) and
remove the dead @use import from 4 files (NodeAdvancedFiltersDrawer, 3 SnmpConfig
tabs). @featherds/table now has no source usage.
* NMS-19981: Fix Geographical Map overlay controls
- Search box: reposition top-left (was hidden under the fixed menu bar), add a
magnifying-glass icon + a translucent light panel/padding, white input.
- Show Severity: drop the '>=' from the label, force dark-on-white so it reads
over the always-light map in dark mode, translucent panel/padding.
- Push Leaflet zoom/layer controls below the fixed menu bar; drop the layers
control's expanded list below its icon so it no longer overlaps Show Severity.
- Stop the map + controls shifting up on first click: disable Leaflet keyboard
focus and drop the container tabindex (the browser was scrolling the
focus-target container into view from under the fixed menu bar).
* NMS-19981: Fix Map table sticky header (CSS position:sticky, drop JS scroll-transform hack)
* NMS-19981: Lock Map sticky header immediately (move top gap to scroll container)
* NMS-19981: Make Map Search & Show Severity controls theme-aware (dark mode)
* NMS-19981: Lay Alarm Action label + dropdown on one line inline with tabs
* NMS-19981: Keep Map popups below top menu on open (menu-aware autoPan), fix double scroll
* NMS-19981: Remove remaining Feather components; vendor OnmsAppLayout + useOutsideClick; drop 40 @featherds packages
* NMS-19981: Add themes/variables token-migration implementation plan
* NMS-19981: Add owned onms- token layer (tokens, theme, color-utils)
* NMS-19981: Wire onms- theme into SPA + menu builds; migrate global style files off Feather tokens
* NMS-19981: Repoint var($token) consumers (~30 files) to onms-tokens; add primary-text-on-surface
* NMS-19981: Repoint raw var(--feather-*) literals to var(--onms-*)
* NMS-19981: Convert local feather severity overrides + preset comment to onms
* NMS-19981: Vendor base reset (onms-base); drop Feather theme + @featherds/styles; FeatherDS fully removed from UI
* NMS-19981: Update docs for FeatherDS removal (PrimeVue + onms- layer)
* NMS-19981: De-Feather cleanup (comments, class/type renames, dead code, opennms-styles rename) + fix SPA content top-offset below fixed menubar
* Small version updates !smoke
* Remove design docs
* NMS-19981: Add Apache-2.0 attribution for vendored FeatherDS code
Add ui/THIRD-PARTY-LICENSE.md documenting the FeatherDS (@featherds/*
0.12.x, (C) NantHealth, Apache-2.0) code vendored during the de-Feather
work: the 262 icon SFCs plus the derived composable, styles, types, and
layout files, marked verbatim vs modified, with the full Apache-2.0 text
(satisfies Apache-2.0 section 4). Reference it from ui/README.md and add a
source-level attribution note to useOutsideClick.ts reconciling the AGPLv3
header with the upstream Apache-2.0 grant.
* NMS-19981: Restore Leaflet keyboard nav (WCAG 2.1.1); handle focus-scroll via CSS
Re-enable Leaflet keyboard support on the map (arrow-key pan / +- zoom) that
was previously disabled to stop a click-focus scroll shift under the fixed
menu bar; removing it failed WCAG 2.1.1. Instead reserve the menu-bar height
with scroll-margin-top on the .leaflet-container so the focus-triggered
scroll-into-view stops below the bar rather than sliding the map under it.
* NMS-19981: Open map popups below the marker; stop autoPan map-jump
Marker and cluster popups previously opened above the marker with autoPan on,
so clicking a marker in the upper part of the map (under the fixed menu bar)
panned the whole map down to fit the popup. Turn autoPan off and, in a
popupopen handler, offset each popup below its marker by the popup's own
measured height (Leaflet has no popup direction option). Hide the now-pointless
tip via .onms-popup-below. Bottom-edge markers, where a below-popup would run
past the map's lower edge, get a one-directional pan-up nudge to reveal it;
top markers never shift.
Also close the open popup on Esc regardless of focus: Leaflet's own Esc-to-close
only fires while the map container is focused, so tabbing into the popup's links
blurred it and broke Esc. A document keydown listener, attached only while a
popup is open and running in the bubble phase, closes the popup without
competing with the menu search's Esc handler (which stops propagation first).
* NMS-19981: Keep legacy JSP text/link colors readable in dark mode
The standalone menu bundle applies the .open-light/.open-dark theme class to
<html>/<body> of legacy JSP pages, but those pages are not dark-theme aware
(their background stays light). In dark mode the themed tokens then flipped to
their on-dark values, making legacy content unreadable: links
(--onms-clickable-normal, light blue) and all text via the typography mixins'
--p-text-color (white) on a light page.
Pin both tokens to their light-theme values on the legacy content containers
(#content, breadcrumb nav, footer). Elements keep using the shared tokens, so
links, headings, footer and table text are all covered. The Vue menu mounts
inside #content and legitimately tracks the theme (inline Popovers use
--p-text-color), so it is re-asserted to the dark values under .open-dark and
renders unchanged.
* NMS-19981: Force native <select> to light rendering on legacy pages
In dark mode PrimeVue sets color-scheme: dark on the document, so the browser
painted native <select> controls (e.g. the Alarm/Event/Outage list filters,
select.form-control.custom-select) with a dark background — while their text is
pinned to the light-theme --p-text-color, leaving dark-on-dark and unreadable.
Legacy JSP pages are light-only, so set color-scheme: light on <select> to
render native controls (and their option popups) light in both modes. The Vue
menu uses PrimeVue components rather than native <select>, so it is unaffected.
To unsubscribe from these emails, change your notification settings at https://github.com/OpenNMS/opennms/settings/notifications
_______________________________________________
Please read the OpenNMS Mailing List FAQ:
http://www.opennms.org/wiki/index.php?page=MailingListFaq
opennms-cvs mailing list
To *unsubscribe* or change your subscription options, see the bottom of this page:
https://lists.sourceforge.net/lists/listinfo/opennms-cvs