Components
Config props
Cheapest customization: do this first. OnVeltNotificationsTool / VeltNotificationsPanel:
Boolean attributes only emit when explicitlytrue/false;shadowDom/panelShadowDomdefault totrue.pageSize/maxDaysare ignored unless> 0.
CSS: stateful classes
(Override with!important, R9b.)
Wireframes: slot trees + tokens
VeltNotificationsToolWireframe: .Icon · .Label · .UnreadIcon · .UnreadCount. (Root prop variant.)
VeltNotificationsPanelWireframe (abridged: full depth below):
{selectedTab} ('forYou'|'people'|'documents'|'all'), {TABS}, {tabConfig}, {settingsOpen}, {settingsMutedAll}, {notificationsPanelVisible}, {unreadNotificationsForYou} (tool: array → .length for the badge), {notificationsByDate} / {notificationsByUserMap} / {notificationsByDocumentId}. Inside the content list: {notification} (.title, .from.name, .from.photoUrl, .read, .createdAt, .documentName), {isLoadMoreVisible}, {isAllRead}.
Gotchas:{notification.*}only resolves inside the content-list iteration..Titleis a leaf: to change the heading text use the top-level.TitleTextslot (there’s no.Title.Text).
Headless hooks
Limitations
All list rendering flows through the content-list iteration (variables scoped there). Tool-only props (considerAllNotifications, panelShadowDom, panelVariant, maxDays) aren’t on the panel. Cross-org feeds:'all' is ignored (only forYou).
