Skip to content

Conversation

@shenjunjian
Copy link
Collaborator

@shenjunjian shenjunjian commented Dec 30, 2025

PR

添加第四批次的saas图标,其中radio的线性图标仍保留为历史图标

image ## PR Checklist

Please check if your PR fulfills the following requirements:

  • The commit message follows our Commit Message Guidelines
  • Tests for the changes have been added (for bug fixes / features)
  • Docs have been added / updated (for bug fixes / features)

PR Type

What kind of change does this PR introduce?

  • Bugfix
  • Feature
  • Code style update (formatting, local variables)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • CI related changes
  • Documentation content changes
  • Other... Please describe:

What is the current behavior?

Issue Number: N/A

What is the new behavior?

Does this PR introduce a breaking change?

  • Yes
  • No

Other information

Summary by CodeRabbit

  • New Features
    • Added a new batch of demo icons to the advance icon showcase, including the transfer icon and additional icon identifiers.
    • Enhanced demo pages to display the new icon batch alongside existing collections in both Composition API and standard component templates.

✏️ Tip: You can customize this high-level summary in your review settings.

@github-actions github-actions bot added the bug Something isn't working label Dec 30, 2025
@coderabbitai
Copy link

coderabbitai bot commented Dec 30, 2025

Walkthrough

This change reorganizes the icon batches in a Vue component demo by moving 'IconTransfer' from batch3Icons to a newly created batch4Icons array, then updates both the Composition API and Options API demo components to import and render the new icon batch alongside existing ones.

Changes

Cohort / File(s) Summary
Icon Batch Reorganization
examples/sites/demos/pc/app/icon/advance-icons.js
Removed 'IconTransfer' from batch3Icons and introduced new batch4Icons export containing the transferred icon and additional identifiers
Composition API Component Update
examples/sites/demos/pc/app/icon/advance-usage-composition-api.vue
Imported batch4Icons and added a new rendering section with horizontal rule separator to display the fourth icon batch using v-for, mirroring the structure of existing batch sections
Options API Component Update
examples/sites/demos/pc/app/icon/advance-usage.vue
Imported batch4Icons, exposed it as a data property, and added a rendering section with visibility logic and icon iteration matching the existing batch pattern

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 Icons hop and reorganize with glee,
Batch four now bundles a new family,
Transfer finds home in the freshest display,
Components render in the very same way! 🎨✨

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the main change: adding a fourth batch of icons (batch4). It accurately summarizes the primary purpose of the changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing touches
  • 📝 Generate docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

📜 Review details

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 78a8eb0 and fbfa7a9.

⛔ Files ignored due to path filters (297)
  • packages/theme-saas/src/svgs-raw/IconAIAbout.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIAboutFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIApplication.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIApplicationFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIBrowsingHistory.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIBrowsingHistoryFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAICalendar.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAICalendarFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIComputingPowerAIPolicy.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIComputingPowerAIPolicyFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIConferenceManagement.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIConferenceManagementFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIDocument.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIDocumentFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIDocumentQA.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIDocumentQAFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIExternalKnowledgeAnswer.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIExternalKnowledgeAnswerFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIFindRecords.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIFindRecordsFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIFollowUp.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIFollowUpFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIGCPainting.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIGCPaintingFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIITServiceQA.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIITServiceQAFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIImageBasedTextRecognition.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIImageBasedTextRecognitionFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIInformation.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIInformationFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIInternalKnowledgeAnswers.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIInternalKnowledgeAnswersFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAILabelExtraction.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAILabelExtractionFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIMemorySpace.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIMemorySpaceFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIOfficeDataSearch.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIOfficeDataSearchFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIOrganization.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIOrganizationFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIPosting.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIPostingFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIProcessQA.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIProcessQAFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIQuestion.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIQuestionFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIReading.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIReadingFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAISearch.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAISearchFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAISearchPeople.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAISearchPeopleFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAISearchQA.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAISearchQAFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAISmartLookup.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAISmartLookupFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAISmartNotes.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAISmartNotesFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAISmartTranslation.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAISmartTranslationFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAITakingPhotos.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAITakingPhotosFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAITechnicalInsightsQA.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAITechnicalInsightsQAFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAITerminologyQA.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAITerminologyQAFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAITranslation.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAITranslationFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIUCDSearch.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIUCDSearchFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIWebQA.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIWebQAFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIWrite.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIWriteFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIWriting.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAIWritingFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAbnormalCheckIn.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAbnormalCheckInFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAnalyse.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAnalyseFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAnalysisTypeContainer.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAnalysisTypeContainerFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAnchor.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAnchorFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconApproval.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconApprovalFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconApprovalFlow.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconApprovalFlowFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAskForLeave.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAskForLeaveFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAvatar.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconAvatarFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconBadge.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconBadgeFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconBank.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconBankFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconButtonBar.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconButtonBarFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconCalendarView.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconCalendarViewFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconCancellationApplication.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconCancellationApplicationFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconCardGroup.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconCardGroupFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconCardTemplate.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconCardTemplateFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconCarousel.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconCarouselFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconCascader.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconCascaderFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconChart.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconChartFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconCheckProperties.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconCheckPropertiesFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconCheckbox.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconCheckboxFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconChooser.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconChooserFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconComputingJob.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconComputingJobFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconConfirmPayrollProfile.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconConfirmPayrollProfileFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconCreatePage.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconCreatePageFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconCrossOrganizationWarehousingList.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconCrossOrganizationWarehousingListFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconCustomSclearance.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconCustomSclearanceFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconCustomsDeclarationList.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconCustomsDeclarationListFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconDefinitionOfProcessRoles.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconDefinitionOfProcessRolesFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconDemandOrderList.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconDemandOrderListFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconDetailedList.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconDetailedListFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconDetailsPage.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconDetailsPageFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconDetailsTemplatePage.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconDetailsTemplatePageFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconDialogSelect.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconDialogSelectFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconDigitalassistant.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconDigitalassistantFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconEmployeeInformation.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconEmployeeInformationFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconEquipment.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconEquipmentFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconExchangerate.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconExchangerateFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconFastCode.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconFastCodeFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconFilterView.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconFilterViewFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconFloating.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconFloatingFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconFlowchart.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconFlowchartFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconFoldingPanelContainers.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconFoldingPanelContainersFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconForm.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconFormFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconGeneralAi.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconGeneralAiFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconGeneralPage.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconGeneralPageFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconGeneralPageIndigo.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconGeneralPageIndigoFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconGrid.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconGridFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconImage.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconImageFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconIndicatorArtifactConfiguration.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconIndicatorArtifactConfigurationFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconInput.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconInputFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconInspectionPlan.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconInspectionPlanFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconInterviewsList.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconInterviewsListFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconInventoryLlist.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconInventoryLlistFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconInventoryOrganization.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconInventoryOrganizationFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconInventoryPlanList.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconInventoryPlanListFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconInventoryPlanningRequirementsRequestChecklist.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconInventoryPlanningRequirementsRequestChecklistFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconInventoryRequestChecklist.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconInventoryRequestChecklistFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconInventoryTransaction.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconInventoryTransactionFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconListOfCandidates.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconListOfCandidatesFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconListOfPermissionsToTransferGoods.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconListOfPermissionsToTransferGoodsFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconListPage.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconListPageFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconListSheet.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconListSheetFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconMailboxConfiguration.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconMailboxConfigurationFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconMaintainPayrollProfile.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconMaintainPayrollProfileFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconMaterialAbcGroupingRules.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconMaterialAbcGroupingRulesFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconMatter.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconMatterFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconMessageReleaseSuspension.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconMessageReleaseSuspensionFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconMessageTemplate.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconMessageTemplateFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconMetAlert.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconMetAlertFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconMetaerpHelpDocumentManagement.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconMetaerpHelpDocumentManagementFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconMetaitHelpDocumentManagement.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconMetaitHelpDocumentManagementFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconMiscellaneousList.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconMiscellaneousListFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconMultiColumnContainer.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconMultiColumnContainerFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconMultidimensionalChangeList.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconMultidimensionalChangeListFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconMultipleContainerGroups.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconMultipleContainerGroupsFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconMyApplication.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconMyApplicationFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconMyAttendance.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconMyAttendanceFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconNavigationContainer.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconNavigationContainerFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconNumber.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconNumberFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconNumberMatchingRule.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconNumberMatchingRuleFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconNumeric.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconNumericFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconObjectInfo.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconObjectInfoFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconOnboarding.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconOnboardingFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconOrder.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconOrderFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconOutOfWarehouse.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconOutOfWarehouseFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPageLoader.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPageLoaderFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPager.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPagerFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconParameter.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconParameterFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPay.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPayFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPayrollApplication.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPayrollApplicationFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPayrollApproval.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPayrollApprovalFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPayrollElementCalculation.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPayrollElementCalculationFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPayrollElementMaintenance.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPayrollElementMaintenanceFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPeography.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPeographyFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPersonalInformation.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPersonalInformationFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPickingRules.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPickingRulesFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPirplane.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPirplaneFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPlanView.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPlanViewFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPlanningDocument.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPlanningDocumentFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPlanningEngine.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPlanningEngineFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPnventoryDiscrepancyAdjustmentList.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPnventoryDiscrepancyAdjustmentListFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPositionManagement.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPositionManagementFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPrivacyCreation.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPrivacyCreationFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPrivacyStatement.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconPrivacyStatementFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconProcessOverview.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconProcessOverviewFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconProcessPersonnelAssignment.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconProcessPersonnelAssignmentFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconProcessRules.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconProcessRulesFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconProduce.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconProduceFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconProductionorder.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconProductionorderFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconProgress.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconProgressFilled.svg is excluded by !**/*.svg
  • packages/theme-saas/src/svgs-raw/IconProjectActualCost.svg is excluded by !**/*.svg
📒 Files selected for processing (3)
  • examples/sites/demos/pc/app/icon/advance-icons.js
  • examples/sites/demos/pc/app/icon/advance-usage-composition-api.vue
  • examples/sites/demos/pc/app/icon/advance-usage.vue
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: PR E2E Test (pnpm test:e2e3)
🔇 Additional comments (5)
examples/sites/demos/pc/app/icon/advance-usage.vue (3)

112-112: LGTM! Import correctly updated.

The import statement properly includes batch4Icons from the icon definitions file.


129-129: LGTM! Data property correctly added.

The batch4Icons array is properly exposed in the component's data for use in the template.


75-96: LGTM! Rendering section correctly implemented.

The new batch4Icons rendering section follows the established pattern from batch3Icons, maintaining consistency across the component. The implementation correctly:

  • Iterates over batch4Icons with proper key binding
  • Applies the same visibility and styling logic
  • Passes all necessary props to the icon components
  • Handles the click event for copying icon names
examples/sites/demos/pc/app/icon/advance-usage-composition-api.vue (2)

103-103: LGTM! Import correctly updated.

The import statement properly includes batch4Icons. With <script setup>, the imported batch4Icons is automatically available in the template.


75-96: LGTM! Rendering section correctly implemented.

The batch4Icons rendering section mirrors the implementation in the Options API variant and follows the established pattern. The template correctly:

  • Renders the new icon batch with proper v-for iteration
  • Applies consistent visibility filtering and styling
  • Binds all necessary props (colors, shape, underlay)
  • Handles click events for icon name copying

Comment on lines +413 to +514
export const batch4Icons = [
'IconAIAbout',
'IconAIApplication',
'IconAIBrowsingHistory',
'IconAICalendar',
'IconAIComputingPowerAIPolicy',
'IconAIConferenceManagement',
'IconAIDocument',
'IconAIDocumentQA',
'IconAIExternalKnowledgeAnswer',
'IconAIFindRecords',
'IconAIFollowUp',
'IconAIGCPainting',
'IconAIImageBasedTextRecognition',
'IconAIInformation',
'IconAIInternalKnowledgeAnswers',
'IconAIITServiceQA',
'IconAILabelExtraction',
'IconAIMemorySpace',
'IconAIOfficeDataSearch',
'IconAIOrganization',
'IconAIPosting',
'IconAIProcessQA',
'IconAIQuestion',
'IconAIReading',
'IconAISearch',
'IconAISearchPeople',
'IconAISearchQA',
'IconAISmartLookup',
'IconAISmartNotes',
'IconAISmartTranslation',
'IconAITakingPhotos',
'IconAITechnicalInsightsQA',
'IconAITerminologyQA',
'IconAITranslation',
'IconAIUCDSearch',
'IconAIWebQA',
'IconAIWrite',
'IconAIWriting',
'IconAnalysisTypeContainer',
'IconAnchor',
'IconApprovalFlow',
'IconAvatar',
'IconBadge',
'IconButtonBar',
'IconCalendarView',
'IconCardGroup',
'IconCardTemplate',
'IconCarousel',
'IconCascader',
'IconChart',
'IconCheckbox',
'IconChooser',
'IconCreatePage',
'IconDetailsTemplatePage',
'IconDialogSelect',
'IconFilterView',
'IconFloating',
'IconFlowchart',
'IconFoldingPanelContainers',
'IconForm',
'IconGeneralPage',
'IconGrid',
'IconImage',
'IconInput',
'IconListSheet',
'IconMetAlert',
'IconMultiColumnContainer',
'IconMultipleContainerGroups',
'IconNavigationContainer',
'IconNumber',
'IconNumeric',
'IconObjectInfo',
'IconPageLoader',
'IconPager',
'IconProcessOverview',
'IconProgress',
'IconRadio',
'IconRecord',
'IconRuleBuilder',
'IconSelection',
'IconSelectView',
'IconShortcut',
'IconSlider',
'IconSliderButton',
'IconSplitPanelContainer',
'IconSpreadGrid',
'IconStandardList',
'IconSteps',
'IconSwitch',
'IconSwitchCard',
'IconTabContainer',
'IconTabs',
'IconTag',
'IconTagGroup',
'IconTimeLine',
'IconTimePicker',
'IconTitleContainer',
'IconTransfer',
'IconTree',
'IconTreeMenuContainer'
]
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

# First, verify the file exists and check the lines mentioned
ls -la examples/sites/demos/pc/app/icon/advance-icons.js

Repository: opentiny/tiny-vue

Length of output: 160


🏁 Script executed:

# Find the @opentiny/vue-icon package
find . -type d -name "vue-icon" | grep -E "packages|node_modules" | head -10

Repository: opentiny/tiny-vue

Length of output: 80


🏁 Script executed:

# Check for icon definitions or exports in the repository
find . -type f -name "*.js" -o -name "*.ts" | xargs grep -l "IconAI" | head -5

Repository: opentiny/tiny-vue

Length of output: 300


🏁 Script executed:

# Explore the vue-icon package structure
ls -la packages/vue-icon/

Repository: opentiny/tiny-vue

Length of output: 483


🏁 Script executed:

# Check for index or main export file in vue-icon
find packages/vue-icon -name "index.*" -o -name "main.*" | head -10

Repository: opentiny/tiny-vue

Length of output: 87


🏁 Script executed:

# List the structure of the vue-icon package
tree -L 3 packages/vue-icon/ 2>/dev/null || find packages/vue-icon -type d -not -path '*/.*' | head -20

Repository: opentiny/tiny-vue

Length of output: 12643


🏁 Script executed:

# Search for AI icons in packages/vue-icon/src
ls -la packages/vue-icon/src | grep "^-" | grep "a-i-"

Repository: opentiny/tiny-vue

Length of output: 43


🏁 Script executed:

# Check what's exported in the index.ts file - look for IconAI patterns
grep -o "Icon[A-Za-z]*" packages/vue-icon/index.ts | sort | grep "^IconAI" | head -20

Repository: opentiny/tiny-vue

Length of output: 43


🏁 Script executed:

# Count how many IconAI exports are in index.ts
grep -o "Icon[A-Za-z]*" packages/vue-icon/index.ts | grep "^IconAI" | wc -l

Repository: opentiny/tiny-vue

Length of output: 62


🏁 Script executed:

# Check what advance-icons.js imports
head -50 examples/sites/demos/pc/app/icon/advance-icons.js

Repository: opentiny/tiny-vue

Length of output: 1047


🏁 Script executed:

# Check the index.ts structure - peek at format
head -100 packages/vue-icon/index.ts | tail -50

Repository: opentiny/tiny-vue

Length of output: 2337


🏁 Script executed:

# Search for AI icons in vue-icon-saas
ls packages/vue-icon-saas/src | grep "a-i-" | wc -l

Repository: opentiny/tiny-vue

Length of output: 63


🏁 Script executed:

# List some AI icons in vue-icon-saas
ls packages/vue-icon-saas/src | grep "a-i-" | head -10

Repository: opentiny/tiny-vue

Length of output: 284


🏁 Script executed:

# Check if advance-icons.js has batch4Icons array
sed -n '400,520p' examples/sites/demos/pc/app/icon/advance-icons.js | head -50

Repository: opentiny/tiny-vue

Length of output: 1210


🏁 Script executed:

# Count total AI icons in vue-icon-saas
ls packages/vue-icon-saas/src | grep "a-i-" | wc -l

Repository: opentiny/tiny-vue

Length of output: 63


🏁 Script executed:

# Get full list of AI icons from vue-icon-saas
ls packages/vue-icon-saas/src | grep "a-i-" | sort

Repository: opentiny/tiny-vue

Length of output: 861


🏁 Script executed:

# Get the full batch4Icons array
sed -n '/^export const batch4Icons = \[/,/^\]/p' examples/sites/demos/pc/app/icon/advance-icons.js | grep -o "Icon[A-Za-z]*" | wc -l

Repository: opentiny/tiny-vue

Length of output: 64


🏁 Script executed:

# Get the full list of batch4Icons to count and analyze
sed -n '/^export const batch4Icons = \[/,/^\]/p' examples/sites/demos/pc/app/icon/advance-icons.js | grep -o "Icon[A-Za-z]*"

Repository: opentiny/tiny-vue

Length of output: 1697


🏁 Script executed:

# Check how advance-icons.js uses these icons
grep -n "Svgs\|import\|from" examples/sites/demos/pc/app/icon/advance-icons.js | head -30

Repository: opentiny/tiny-vue

Length of output: 43


🏁 Script executed:

# Check the very top of advance-icons.js for imports
head -20 examples/sites/demos/pc/app/icon/advance-icons.js

Repository: opentiny/tiny-vue

Length of output: 455


🏁 Script executed:

# Check for non-AI icons from batch4Icons in packages/vue-icon/src
# Test a few: IconAnalysisTypeContainer, IconAnchor, IconApprovalFlow, IconAvatar
for icon in "analysis-type-container" "anchor" "approval-flow" "avatar"; do
  if [ -f "packages/vue-icon/src/${icon}.ts" ]; then
    echo "${icon}.ts exists"
  else
    echo "${icon}.ts NOT found"
  fi
done

Repository: opentiny/tiny-vue

Length of output: 172


🏁 Script executed:

# Check if Svgs object is created by mapping from an icon package
grep -n "Svgs\|import.*from.*icon" examples/sites/demos/pc/app/icon/advance-icons.js | head -20

Repository: opentiny/tiny-vue

Length of output: 43


🏁 Script executed:

# Check entire advance-icons.js file length and structure
wc -l examples/sites/demos/pc/app/icon/advance-icons.js

Repository: opentiny/tiny-vue

Length of output: 114


🏁 Script executed:

# Check if there are any imports or Svgs references
grep -E "^import|^const|^let|Svgs|from" examples/sites/demos/pc/app/icon/advance-icons.js | head -30

Repository: opentiny/tiny-vue

Length of output: 43


🏁 Script executed:

# Look at the end of the file to see if there's any Svgs definition
tail -50 examples/sites/demos/pc/app/icon/advance-icons.js

Repository: opentiny/tiny-vue

Length of output: 1034


🏁 Script executed:

# Search for where batch4Icons is used in the codebase
rg "batch4Icons" --type js --type ts | head -20

Repository: opentiny/tiny-vue

Length of output: 669


🏁 Script executed:

# Check the advance-usage.vue file to see how batch4Icons is used
cat examples/sites/demos/pc/app/icon/advance-usage.vue

Repository: opentiny/tiny-vue

Length of output: 5417


🏁 Script executed:

# Check the specific lines where batch4Icons is used
sed -n '1,50p' examples/sites/demos/pc/app/icon/advance-usage.vue

Repository: opentiny/tiny-vue

Length of output: 2032


🏁 Script executed:

# Search for Svgs reference and how icons are rendered
grep -n "Svgs\|icon-\|renderIcon\|:is=" examples/sites/demos/pc/app/icon/advance-usage.vue | head -30

Repository: opentiny/tiny-vue

Length of output: 369


🏁 Script executed:

# Check what @opentiny/vue-icon actually exports - search for all exported icon names
grep "^export" packages/vue-icon/index.ts | head -50

Repository: opentiny/tiny-vue

Length of output: 3027


🏁 Script executed:

# Count total exports in packages/vue-icon/index.ts
grep "^export" packages/vue-icon/index.ts | wc -l

Repository: opentiny/tiny-vue

Length of output: 64


🏁 Script executed:

# Check if batch4 icons are exported from @opentiny/vue-icon
# Check for specific AI icons in the export list
for icon in "IconAIAbout" "IconAnalysisTypeContainer" "IconAnchor"; do
  if grep -q "export.*$icon" packages/vue-icon/index.ts; then
    echo "$icon is exported"
  else
    echo "$icon is NOT exported"
  fi
done

Repository: opentiny/tiny-vue

Length of output: 163


🏁 Script executed:

# Check if there's a separate export for batch4Icons or vue-icon-saas integration
grep -r "batch4Icons\|vue-icon-saas" packages/vue-icon/ 2>/dev/null || echo "Not found in vue-icon package"

Repository: opentiny/tiny-vue

Length of output: 90


🏁 Script executed:

# Check if any of the batch4 non-AI icons exist in packages/vue-icon/src
# Test several from different parts of the array
for icon in "analysis-type-container" "anchor" "approval-flow" "avatar" "badge" "button-bar" "calendar-view"; do
  result=$(find packages/vue-icon/src -name "${icon}.ts" 2>/dev/null)
  if [ -n "$result" ]; then
    echo "${icon}.ts exists"
  else
    echo "${icon}.ts NOT found"
  fi
done

Repository: opentiny/tiny-vue

Length of output: 248


🏁 Script executed:

# Check if these icons exist in vue-icon-saas
for icon in "analysis-type-container" "anchor" "approval-flow" "avatar" "badge"; do
  result=$(find packages/vue-icon-saas/src -name "${icon}.ts" 2>/dev/null)
  if [ -n "$result" ]; then
    echo "${icon}.ts exists in vue-icon-saas"
  else
    echo "${icon}.ts NOT found in vue-icon-saas"
  fi
done

Repository: opentiny/tiny-vue

Length of output: 263


🏁 Script executed:

# Search the entire codebase for IconAnalysisTypeContainer or IconAnchor definitions
rg "IconAnalysisTypeContainer|IconAnchor" --type ts --type js | grep -E "export|declare|const" | head -10

Repository: opentiny/tiny-vue

Length of output: 403


🏁 Script executed:

# Verify ALL batch4Icons exist in vue-icon-saas by checking exports
grep "export.*Icon" packages/vue-icon-saas/index.ts | wc -l

Repository: opentiny/tiny-vue

Length of output: 64


🏁 Script executed:

# Check if all batch4 icons are exported from vue-icon-saas
# Extract batch4Icons and verify each one
sed -n '/^export const batch4Icons = \[/,/^\]/p' examples/sites/demos/pc/app/icon/advance-icons.js | \
  grep -o "'Icon[^']*'" | \
  sed "s/'//g" | \
  while read icon; do
    if grep -q "export.*$icon" packages/vue-icon-saas/index.ts; then
      echo "$icon"
    else
      echo "$icon NOT FOUND"
    fi
  done | grep "" | head -20

Repository: opentiny/tiny-vue

Length of output: 43


🏁 Script executed:

# Check if any batch4Icons are exported from @opentiny/vue-icon
sed -n '/^export const batch4Icons = \[/,/^\]/p' examples/sites/demos/pc/app/icon/advance-icons.js | \
  grep -o "'Icon[^']*'" | \
  sed "s/'//g" | \
  head -20 | \
  while read icon; do
    if grep -q "export.*$icon" packages/vue-icon/index.ts; then
      echo "$icon (in @opentiny/vue-icon)"
    else
      echo "$icon (NOT in @opentiny/vue-icon)"
    fi
  done

Repository: opentiny/tiny-vue

Length of output: 1076


🏁 Script executed:

# Double-check by searching entire packages/vue-icon/index.ts for any IconAI
grep "IconAI" packages/vue-icon/index.ts | head -5

Repository: opentiny/tiny-vue

Length of output: 43


🏁 Script executed:

# Verify that batch4 icons DO exist in vue-icon-saas
grep "IconAI" packages/vue-icon-saas/index.ts | wc -l

Repository: opentiny/tiny-vue

Length of output: 64


🏁 Script executed:

# Check if there's documentation or package.json that shows the relationship
cat packages/vue-icon-saas/package.json | head -20

Repository: opentiny/tiny-vue

Length of output: 582


🏁 Script executed:

# Final verification: Check if advance-usage.vue imports are correct
# and see if there's any aliasing or re-export happening
grep -A5 "import.*Svgs" examples/sites/demos/pc/app/icon/advance-usage.vue

Repository: opentiny/tiny-vue

Length of output: 161


🏁 Script executed:

# Check if @opentiny/vue-icon re-exports vue-icon-saas
grep -r "vue-icon-saas" packages/vue-icon/

Repository: opentiny/tiny-vue

Length of output: 43


🏁 Script executed:

# Verify the complete list - are ALL batch4 icons in vue-icon-saas?
# Test the last few to be sure
sed -n '/^export const batch4Icons = \[/,/^\]/p' examples/sites/demos/pc/app/icon/advance-icons.js | \
  grep -o "'Icon[^']*'" | \
  sed "s/'//g" | \
  tail -20 | \
  while read icon; do
    if grep -q "export.*$icon" packages/vue-icon-saas/index.ts; then
      echo "$icon"
    else
      echo "$icon"
    fi
  done

Repository: opentiny/tiny-vue

Length of output: 386


🏁 Script executed:

# Final comprehensive check: verify that batch4Icons icons are definitely not in @opentiny/vue-icon
# Get all 101 icons from batch4Icons and check them all
count=0
notfound=0
sed -n '/^export const batch4Icons = \[/,/^\]/p' examples/sites/demos/pc/app/icon/advance-icons.js | \
  grep -o "'Icon[^']*'" | \
  sed "s/'//g" | \
  while read icon; do
    if grep -q "export.*$icon[^a-zA-Z]" packages/vue-icon/index.ts; then
      echo "FOUND_IN_VUE_ICON: $icon"
    else
      echo "NOT_IN_VUE_ICON: $icon"
    fi
  done | sort | uniq -c

Repository: opentiny/tiny-vue

Length of output: 4193


🏁 Script executed:

# Confirm that the icons ARE in vue-icon-saas by checking first and last batch4 icons
for icon in "IconAIAbout" "IconTreeMenuContainer"; do
  if grep -q "export.*$icon[^a-zA-Z]" packages/vue-icon-saas/index.ts; then
    echo "$icon IS in @opentiny/vue-icon-saas"
  else
    echo "$icon NOT in @opentiny/vue-icon-saas"
  fi
done

Repository: opentiny/tiny-vue

Length of output: 158


Critical issue: batch4Icons references unavailable icons from @opentiny/vue-icon.

The advance-usage.vue file imports Svgs from @opentiny/vue-icon, but 100 of the 101 icons in batch4Icons are not exported from that package. Verification shows that while all icons exist in @opentiny/vue-icon-saas, they are unavailable from the imported package. The safe guards prevent crashes, but the icons will not render, breaking the UI functionality.

All 101 batch4Icons must either be exported from @opentiny/vue-icon or the import source must be changed to @opentiny/vue-icon-saas.

🤖 Prompt for AI Agents
In examples/sites/demos/pc/app/icon/advance-icons.js around lines 413 to 514,
batch4Icons lists ~101 icons that are not exported by @opentiny/vue-icon (they
exist only in @opentiny/vue-icon-saas); update the import source in
advance-usage.vue to import Svgs from '@opentiny/vue-icon-saas' instead of
'@opentiny/vue-icon' so the icons resolve at runtime, or alternatively modify
the package exports to re-export these icons from @opentiny/vue-icon (prefer
changing the import to the saas package for minimal, immediate fix).

@zzcr zzcr merged commit 473df05 into dev Jan 4, 2026
19 of 21 checks passed
@zzcr zzcr deleted the shen/add-icon-batch4 branch January 4, 2026 06:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants