Conversation
…te-branch workflow Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ive day and sort sessions by start time - MySessionsView and MyFavoritesView now filter by activeDay via sessionsForDay() so only sessions on the selected day are shown - groupByStartTime sorts time slot groups chronologically (ISO 8601 string comparison) - Live carousel in LiveUpcomingView also sorted by startTimeUtc - Updated MySessionsView test mock to include activeDay; added sort-order assertion to session-filters tests Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Introduced featured sessions that populate the live carousel when no live sessions are available. - Updated configuration to allow authors to specify featured session IDs via JSON. - Implemented a fallback mechanism to use mock featured session IDs if none are provided. - Enhanced LiveUpcomingView to display featured sessions in a dedicated carousel section. - Added utility function to filter and retrieve featured sessions based on active day and provided IDs. - Updated unit tests to cover new featured sessions functionality. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…eviously aired sessions - Added functionality to display previously aired sessions in LiveUpcomingView when no upcoming or live sessions are available. - Updated SessionCard to support a forceOnDemand prop, allowing for better handling of on-demand session states. - Modified TimeSlotRow to pass the forceOnDemand prop to SessionCard, ensuring consistent behavior across components. - Enhanced time label logic in SessionCard to differentiate between on-demand and previously aired sessions. These changes improve the user experience by providing clearer visibility of session availability.
[MWPW-194614] feat(events-form): inject submit button when rsvp-config has no submit button
fix(promotional-content): rehydrate custom-attribute promotional items
Revert "fix(promotional-content): rehydrate custom-attribute promotional items"
…name field Custom Attributes-selected promotional items were never picked up because the code checked attr.attribute instead of the actual attr.name field EMC sends, and only read a single attr.value instead of the multi-select values[] array. Product blades now render for items selected via Custom Attributes, using the fragment path already present in each value.
fix(mobile-rider): re-attach streamend listener on every ASL toggle
…name and resolve locale-aware fragment paths The Custom Attributes promotionalItems entry is keyed by `name` (not `attribute`), and its `values[]` array holds one fragment path per selected item directly - not a product name requiring a promotional-content.json lookup like the legacy path. Product blades now render for items selected via Custom Attributes. Relative fragment paths are also resolved with the event's locale prefix (mirroring getPromotionalContentUrl), so non-English pages load the correct localized fragment instead of always falling back to the default-locale path. Locale resolution degrades gracefully to no prefix if the Milo import fails.
…no domain/locale resolution Fragment paths from custom-attributes were being prefixed with event-libs' own domain (derived from import.meta.url), which pointed loadFragment at the wrong host instead of resolving relatively against the client da-events page, matching how the legacy fragment-path was always used unmodified. Locale-specific fragments should be authored as separate custom-attribute values per locale in EMC rather than resolved client-side.
…o's shared modal Replaces the hand-rolled backdrop/dialog with Milo's modal component (already used by sessions-hub) to get focus trap, Escape-to-close, scroll lock, and focus restoration for free, and updates styling to match the Figma handoff. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ndle Replaces the vendored htm-preact.js (pinned to an old Milo snapshot) with a locally built bundle of current preact@10.29.7 + @preact/signals@2.9.3 + htm@3.1.1. The old snapshot predates a core Preact fix for Context updates being dropped by @preact/signals' shouldComponentUpdate override, which was silently breaking date-tab/search/filter re-renders. Also exposes the full public API of all three packages (computed, effect, Fragment, etc.) so future code can use them without another rebuild, and uses batch() in scheduleSession()/favoriteSession() to coalesce their state + pending-flag writes into a single render. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The fallback toLocaleTimeString calls in convertEventTimeToLocalTime omitted timeZone, so times without a LOCALE_FORMATTERS entry (e.g. en-GB) were reformatted in the rendering environment's local zone instead of the event's timezone, shifting displayed agenda times by the offset between the two. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…eal ESL sessions payload Wraps the per-render session filtering/grouping in MySessionsView, MyFavoritesView, and FilterPanel's category-options derivation in useMemo/useComputed, since those components re-render on every context dispatch (e.g. opening the detail overlay), not just when their actual inputs change. Adds useComputed to the test htm-preact mock and batches loadSessions()'s sessions/sessionsStatus writes into one render. Also adds a temporary, fire-and-forget probeEslPayload() in sessions-api.js, called from loadSessions(), that hits the real ESL/ESP sessions endpoint (now available) through the existing constructRequestOptions()/ENV_MAP auth plumbing and logs the raw response for payload-shape inspection. fetchSessions() itself is untouched and still returns MOCK_SESSIONS — real wiring is blocked on backend auth questions (service-token vs user-token, x-adobe-esp-group-id) tracked outside this repo. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…S specificity lint MySessionsView.test.js computed session times as fixed hour offsets from real Date.now(), which crosses the LA midnight boundary (and mismatches the test's "today" activeDay) whenever the suite runs late at night Pacific time — caught by a full `npm test` run right now. Clamps the offset relative to time-until/ since LA midnight instead, preserving correct ordering relative to the real clock (needed for upcoming/on-demand classification) while guaranteeing the session never lands on a different calendar day than intended. Also reorders the anim-fav/anim-sched keyframe-trigger rules in sessions-guide.css to sit before the higher-specificity :not(:hover) rules they conflict with, fixing `no-descending-specificity` lint failures introduced by earlier commits on this branch. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…p on explicit opt-in metadata initSessionState() was only gated on `event-id`, which is already authored broadly across prod event pages for unrelated purposes — that would seed sessions-guide's mock data (sg:dev-auth, mock scheduled/favorited) on any page with an event-id, whether or not it actually wants the shared session store. decorateEvent() now additionally requires `tier-1-event-state-enabled` metadata to be 'true' before calling initSessionState() at all. Documents the new metadata requirement in PLAN.md and REAL-API-CHECKLIST.md alongside the existing rainfocus-api-url gate. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Adds SHARED-STATE-USAGE.md documenting how other blocks — both Preact and vanilla JS — read and mutate the page-level session-store signals, when to use scheduleWithFeedback()/favoriteWithFeedback() versus the lower-level session-actions.js, and the tier-1-event-state-enabled/rainfocus-api-url metadata prerequisite. Cross-linked from PLAN.md's architecture-update note. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…t to session-store.js Co-locates SHARED-STATE-USAGE.md with the module it documents (utils/session-store.js) instead of the sessions-guide block directory — the doc's audience is any block consuming the shared store, not sessions-guide specifically, so it belongs where a block author importing session-store.js would actually look. Updates its cross-references to PLAN.md/REAL-API-CHECKLIST.md and PLAN.md's link back to the new path accordingly. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
… usage guide Follow-up to the previous commit's rename — that commit only captured the file move itself; this captures the actual content changes: PLAN.md's link now points to the new ../../utils/SHARED-STATE-USAGE.md path, and the guide's own references to PLAN.md/REAL-API-CHECKLIST.md are updated to ../blocks/sessions-guide/ since it no longer lives in that directory. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
feat(event-agenda): derive agenda time format from event locale
fix(promotional-content): match custom-attribute promotionalItems by name field
…shared session state Reference implementation for SHARED-STATE-USAGE.md's vanilla-JS pattern: reads sessions/sessionsStatus/favorited/scheduled/auth via .subscribe() and mutates through favoriteWithFeedback() rather than session-store.js's raw mutators, matching the doc's guidance. Registered in EVENT_BLOCKS so it's loadable like any other block. Not authored on any real event page. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
[Mwpw 199065] Add Sessions Guide shared state, conflict modal, and full-page URL params
Stage Release for T3-26.29
…rendering ESP's scope-config field type enum has no dedicated multi-select value — select is single-choice, checkbox is multi-choice. EMC now writes a displayAs render-style hint (dropdown/radio for select; checkbox/dropdown for checkbox) that ESP already stores and passes through untouched. This file already implements distinct widgets for 'multi-select' (compact dropdown with an internal checkbox list, used by the legacy per-cloud JSON path) and 'radio-group' (radio buttons), but getRsvpConfigFromMeta() never consulted a render hint for the new scope-config path — it passed type straight through, so a checkbox field could only ever render as a flat checkbox-group, and select could only ever render as a plain dropdown. Remap type based on displayAs before dispatch: checkbox+dropdown becomes multi-select, select+radio becomes radio-group. Default behavior (no displayAs, or displayAs matching the type's default) is unchanged, so this is backward compatible with existing scope configs.
Radio inputs sharing a name are mutually exclusive by native browser semantics, so constructPayload's checkbox/radio collection always produces a 0-or-1-element array for a radio group. That's fine for fields declared type: 'array' in BASE_ATTENDEE_DATA_FILTER, but string-typed fields (e.g. industry, jobTitle, companySize) have no array-to-string coercion — they'd submit ["Technology"] instead of "Technology" to the base attendee API. This was latent since radio-group was only reachable via a hard-coded per-cloud JSON Type value; the prior commit (select + displayAs: 'radio' remap) makes it reachable from any ESP-backed scope config, so it needed fixing before that path could ship. Collapses the array to its single value (or undefined if none checked), mirroring the existing single-option checkbox-to-boolean collapse right above it.
fix(events-form): honor RSVP displayAs to restore multi-select/radio rendering
Stage Release for T3-26.30
|
Hello, I'm the AEM Code Sync Bot and I will run some actions to deploy your branch and validate page speed.
Commits
|
sirivuri
approved these changes
Jul 16, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release notes
Quoting T3-26.29 prod deployment.
🤖 Generated with Claude Code