Pular para o conteúdo

All versions since 21.0.0

21.0.0 Latest

  • chore: clean up the remaining reactive-forms @angular/forms imports (#1041)
  • chore: close four convention gaps found by the workspace scan (#1128)
  • chore: remove 117 orphaned guard and pipe library projects (#974)
  • chore: remove 149 orphaned api-docs and mocks library projects (#968)
  • chore: remove 150 orphaned library projects across 50 domains (#975)
  • chore: remove 16 orphaned route/router library projects (#972)
  • chore: remove 20 more orphaned library projects (#969)
  • chore: remove 47 orphaned payment library projects (#976)
  • chore: remove 67 orphaned route-guard library projects (#971)
  • chore: remove 9 orphaned form CVA components with zero consumers (#1038)
  • chore: remove 93 orphaned library projects (wise, extranet, payment-method) (#973)
  • chore: remove dormant property-write surface and dead form leaves (#1029)
  • chore: remove eleven libraries unreachable from any application (#1116)
  • chore: remove nine orphan library directories and seventeen dangling aliases (#1115)
  • chore: remove nine orphaned files and refresh CLAUDE.md (#1123)
  • chore: withdraw the dead balance-transfer/funds admin domain (#1040)
  • chore(absorb-component): regenerate batches after census drift (#1073)
  • chore(absorb): prepare the ui-into-ui wave (#1136)
  • chore(absorb): regenerate the batch worklist for wave 2 (#1098)
  • chore(absorb): regenerate the batch worklist for wave 3 (#1106)
  • chore(admin): withdraw the unexposed bank-account form route (#921)
  • chore(book): remove dead FormsModule import from feature-hotel-landing (#1032)
  • chore(booking,property): remove six duplicate “copy” files and the specs written for them (#1124)
  • chore(forms): remove the dead reactive-forms interface island and its orphaned services (#1039)
  • chore(managing-entity): delete four unconsumed reactive form interfaces (#939)
  • chore(property): withdraw the switched-off property write surface (#925)
  • chore(workbench): update FewRoomsLeft fixture for fixed stay-rate-quantity pipe (#1257)
  • chore(workspace): finish the inferred-targets conversion for the last 95 projects (#795)
  • docs: :globe_with_meridians: updated translations
  • docs: :memo: removed CTA upgrade text
  • docs: allow running a single spec file without asking (#1342)
  • docs: correct stale claude.md facts and add verification tiers (#982)
  • docs: record that the type:util sole-consumer census is closed, zero yield (#1159)
  • docs: record the component selector prefix convention (#1151)
  • docs: refresh project counts and record why jest-inputs-fix must stay (#1134)
  • docs(analytics): describe the booking-page partner tags as the sales channel, not the hotel (#1009)
  • docs(notification): fix stale confirm-dialog comment on message-dispatch form (#1317)
  • docs(phase-2): record that the campaign converged at wave 3 (#1108)
  • docs(phase-2): record that the four excluded candidates are absorbed (#1114)
  • docs(phase-2): record the cascade and the lint-severity escalation class (#1097)
  • docs(route-consolidation): close out the campaign and record what phase 2 should inherit (#1061)
  • docs(route-consolidation): defer e2e smoke to CI and record the local prerequisites
  • docs(route-consolidation): re-derive the census and specify the absorb-lib generator
  • docs(route-consolidation): record the built generator and the 21-aug census corrections
  • docs(route-consolidation): record the chunk-diff measurement and the campaign findings
  • docs(route-consolidation): the surviving-reference grep needs -P, not -E
  • docs(workbench): add activity feature-* storybook stories (#1276)
  • docs(workbench): add activity-stream feature-* storybook stories (#1308)
  • docs(workbench): add add-on feature-* storybook stories (#1292)
  • docs(workbench): add administration feature-* storybook stories (#1236)
  • docs(workbench): add affiliate feature-* storybook stories (#1306)
  • docs(workbench): add announcement feature-* storybook stories (#1291)
  • docs(workbench): add automate feature-* storybook stories (#1309)
  • docs(workbench): add batch 2 storybook stories (37/233 type:ui libs)
  • docs(workbench): add batch 3 storybook stories, close inventory domain (83/233)
  • docs(workbench): add batch 4 storybook stories, close booking domain (96/233)
  • docs(workbench): add batch 5 storybook stories, close profile domain (107/233)
  • docs(workbench): add batch 6 storybook stories, close 5 domains (134/233)
  • docs(workbench): add batch 7 storybook stories, close 32 domains (184/233)
  • docs(workbench): add book feature-* storybook stories (#1235)
  • docs(workbench): add booking feature-* storybook stories (#1216)
  • docs(workbench): add caldav feature-* storybook stories (#1312)
  • docs(workbench): add campaigns feature-* storybook stories (#1266)
  • docs(workbench): add cancellation-policy feature-* storybook stories (#1293)
  • docs(workbench): add checkout feature-* storybook stories (#1316)
  • docs(workbench): add customization feature-* storybook stories (#1294)
  • docs(workbench): add external-event feature-* storybook stories (#1279)
  • docs(workbench): add extranet feature-* storybook stories (#1232)
  • docs(workbench): add geo-name feature-* storybook stories (#1237)
  • docs(workbench): add green-index feature-* storybook stories (#1268)
  • docs(workbench): add inventory-map feature-* storybook stories (#1300)
  • docs(workbench): add lead feature-* storybook stories (#1298)
  • docs(workbench): add managed-social feature-* storybook stories (#1238)
  • docs(workbench): add managing-entity feature-* storybook stories (#1222)
  • docs(workbench): add master-rate feature-* storybook stories (#1281)
  • docs(workbench): add meeting-room feature-* storybook stories (#1283)
  • docs(workbench): add message-template feature-* storybook stories (#1296)
  • docs(workbench): add notification feature-* storybook stories (#1313)
  • docs(workbench): add payment-admin feature-* storybook stories (#1228)
  • docs(workbench): add payment-portal feature-* storybook stories (#1218)
  • docs(workbench): add payment-widget feature-* storybook stories (#1315)
  • docs(workbench): add perk feature-* storybook stories (#1289)
  • docs(workbench): add place feature-* storybook stories (#1286)
  • docs(workbench): add portals feature-* storybook stories (#1246)
  • docs(workbench): add property feature-* storybook stories (#1223)
  • docs(workbench): add rate-plan feature-* storybook stories (#1299)
  • docs(workbench): add rate-verifier feature-* storybook stories (#1304)
  • docs(workbench): add receipt feature-* storybook stories (#1321)
  • docs(workbench): add recognition feature-* storybook stories (#1318)
  • docs(workbench): add restaurant feature-* storybook stories (#1285)
  • docs(workbench): add review feature-* storybook stories (#1249)
  • docs(workbench): add sales-channel feature-* storybook stories (#1261)
  • docs(workbench): add seller-inventory-item feature-* storybook stories (#1303)
  • docs(workbench): add seller-inventory-list feature-* storybook stories (#1302)
  • docs(workbench): add seller-inventory-ranked-list feature-* storybook stories (#1301)
  • docs(workbench): add shortened-url feature-* storybook stories (#1307)
  • docs(workbench): add social-list feature-* storybook stories (#1256)
  • docs(workbench): add special-rate and special-rate-bundle feature-* storybook stories (#1273)
  • docs(workbench): add static-seller-list feature-* storybook stories (#1290)
  • docs(workbench): add studio feature-* storybook stories (#1239)
  • docs(workbench): add travel-agent feature-* storybook stories (#1271)
  • docs(workbench): add user feature-* storybook stories (#1278)
  • docs(workbench): add web-components feature-* storybook stories (#1253)
  • docs(workbench): add webhook feature-* storybook stories (#1258)
  • docs(workbench): add wizard feature-* storybook stories (#1322)
  • docs(workbench): complete signal-form storybook story coverage (63/233)
  • docs(workbench): group Storybook story titles by owning app (#1263)
  • docs(workbench): update stale #1244 breakage notes in storybook stories (#1363)
  • feat(absorb-component): count a same-domain ui consumer as a valid target (#1135)
  • feat(absorb-lib): treat one mounted component, not one path, as the leaf test (#1117)
  • feat(administration): show admin PAYG usage and subscription visibility (#1042)
  • feat(affiliate): migrate feature-affiliate-search to signal forms (#1034)
  • feat(analytics): add the chart builder signal-forms pure layer (#949)
  • feat(analytics): cut the chart builder over to signal forms (#951)
  • feat(analytics): migrate feature-list search box to signal forms (#1033)
  • feat(announcement): migrate the announcement editor to signal forms
  • feat(automate): replace subscription tiers with usage-based pricing table (#1047)
  • feat(book): cut the booking orchestration over to signal forms (#857)
  • feat(book): set browser tab title on booking confirmation page (#1048)
  • feat(booking): disable booking actions that need a paid booking (#785)
  • feat(booking): explain disabled booking actions with a daisyUI tooltip (#783)
  • feat(booking): show cancellation and refund as two independent badges (#1386)
  • feat(booking): state lifecycle and refund as one phrase (#1388)
  • feat(build): run staging in angular dev mode for devtools profiling (#981)
  • feat(campaigns): migrate feature-footer to signal forms (#1030)
  • feat(channels): migrate the sales-channel toggle cluster to signal forms (#1023)
  • feat(customization): migrate the logo and profile-picture editors to signal forms (#819)
  • feat(forms): migrate the sales channel and managed-by editors to signal forms (#789)
  • feat(generators): absorb-component — privatise single-consumer ui components (#1062)
  • feat(generators): add the absorb-lib generator and its batch files
  • feat(geo-name): add a pair-valued signal-forms city lookup (#950)
  • feat(geo-name): migrate the country form to signal forms (#843)
  • feat(geo-name): migrate the geo-name and city editors to signal forms (#848)
  • feat(geo-name): migrate the province and county forms to signal forms (#842)
  • feat(google-maps): add a signal-forms map picker and drop the reactive bridge (#845)
  • feat(green-index): add the questionnaire signal form pure layer (#923)
  • feat(inventory-supplier): migrate ui-invite to signal forms (#1031)
  • feat(lookup): migrate ui-lookup-dropdown and feature-modal to signal forms (#1026)
  • feat(managed-social): add a posts-per-month dropdown to the settings form (#828)
  • feat(managed-social): add one signal-forms selection list for creators, tones and post types (#829)
  • feat(managed-social): add the post signal-form model, schema and mapper (#831)
  • feat(managed-social): add the settings signal-form model, schema and mapper (#827)
  • feat(managed-social): allow a manual post for any connected platform (#993)
  • feat(managed-social): migrate both settings editors to signal forms (#830)
  • feat(managed-social): migrate the admin create-content screen to signal forms (#837)
  • feat(managed-social): migrate the post editor to signal forms (#835)
  • feat(managed-social): migrate ui-connection sub-account picker to signal forms (#1037)
  • feat(managing-entity): add signal-forms account and user lookup leaves (#945)
  • feat(managing-entity): add the bank-account signal form pure layer (#920)
  • feat(managing-entity): add the online-presence signal-form model, schema and mapper (#813)
  • feat(managing-entity): migrate the account overview screen to signal forms (#824)
  • feat(managing-entity): migrate the account-status form to signal forms (#812)
  • feat(managing-entity): migrate the online-presence editor to signal forms (#814)
  • feat(managing-entity): migrate the revolut payout-account form to signal forms (#816)
  • feat(managing-entity): migrate ui-selector and portals sidebar to signal forms (#1027)
  • feat(master-rate): migrate the perks editor to signal forms and remove 6 projects (#800)
  • feat(media): add the multimedia-list signal-form pure layer (#869)
  • feat(media): add the selectable-multimedia signal-form pure layer (#898)
  • feat(media): cut the property media screen over to signal forms (#871)
  • feat(media): give the logo signal-form control a crop step (#817)
  • feat(media): make multi-file upload opt-in on the signal-form uploader (#889)
  • feat(ng-select): migrate v24 theming to css variables and converge signal-forms binding (#1012)
  • feat(notification): cut the admin message-dispatch screen over to signal forms (#946)
  • feat(pagination): add the list-state signal-form pure layer (#895)
  • feat(payment): add the signal-forms bank-account fields leaf (#942)
  • feat(payment): cut the bank-account editors over to signal forms (#943)
  • feat(perk): show the submission confirmation dialog on both perk screens (#967)
  • feat(policy): add the property-policy signal form pure layer (#926)
  • feat(portals): migrate feature-footer and feature-home to signal forms — portals domain CLOSED (#1028)
  • feat(profile): add the traveller-profile signal-form pure layer (#861)
  • feat(profile): cut the traveller profile over to signal forms (#862)
  • feat(property): add a signal-forms property lookup leaf (#948)
  • feat(property): add CHANNEX and EXELY to HotelCodeContextEnum (#1014)
  • feat(property): add the contact-info signal-form model, schema and mapper (#802)
  • feat(property): add the manual-registration signal-form model, schema and mapper (#805)
  • feat(property): add the property-profile signal-form model, schema and mapper (#807)
  • feat(property): migrate the channel-manager chooser to signal forms (#801)
  • feat(property): migrate the contact-info editor to signal forms (#804)
  • feat(property): migrate the property-profile editor to signal forms (#809)
  • feat(property): migrate the property-services editor to signal forms (#810)
  • feat(rate-plan): migrate the editor to signal forms and remove 21 projects (#791)
  • feat(rate-verifier): add the verify-rates signal-form pure layer (#866)
  • feat(rate-verifier): cut the rate verifier over to signal forms (#868)
  • feat(rate-verifier): migrate confirm-test-booking-modal to signal forms (#1036)
  • feat(rate): add the rate-list signal-form pure layer (#850)
  • feat(rate): migrate the bulk rate-change editor to signal forms (#849)
  • feat(rate): migrate the rate calendar grid to signal forms (#851)
  • feat(recognition): migrate the recognition editor to signal forms
  • feat(review): migrate the guest review form to signal forms (#841)
  • feat(review): migrate the review response editor to signal forms (#838)
  • feat(room-type-configurator): add the ancillary signal-form pure layer (#853)
  • feat(room-type-configurator): add the booker signal-form pure layer (#852)
  • feat(room-type-configurator): add the booking-request seeding primitives (#854)
  • feat(room-type-configurator): add the room-booking-request model, schema and mapper (#855)
  • feat(room-type-configurator): cut the booking funnel over to signal forms (#860)
  • feat(room-type-configurator): extract the ancillary interaction rules (#858)
  • feat(room-type-configurator): extract the scheduler date/time sync rules (#856)
  • feat(shared): give the submit button a real confirmation dialog (#947)
  • feat(shared): let a non-CVA caller seed the typeahead’s display text (#867)
  • feat(shortened-url): add the signal-form pure layer (#875)
  • feat(shortened-url): migrate feature-add-link-modal to signal forms (#1025)
  • feat(signal-form): add a date-and-time picker control (#832)
  • feat(signal-form): add a date-range button control (#913)
  • feat(signal-form): add a date-range picker control (#864)
  • feat(signal-form): add a grouped select control (#846)
  • feat(signal-form): add a native date input control (#836)
  • feat(signal-form): add a numeric radio group control (#840)
  • feat(signal-form): add a searchable single-select control (#833)
  • feat(signal-form): add a string radio group control (#904)
  • feat(signal-form): add a time picker (#803)
  • feat(signal-form): add an ISO date-range input control (#911)
  • feat(signal-form): add opt-in server-side typeahead to the multi-select-object control (#944)
  • feat(signal-form): add ui-actionable-url-input, the URL field with a fetch button (#891)
  • feat(signal-form): add ui-multi-select-object, the object-valued multi-select (#882)
  • feat(signal-form): open the date-range button in a real modal (#1044)
  • feat(signal-forms): migrate sales-channel-details and inventory-list to signal forms (#1024)
  • feat(social-list): add the syndicated-item signal-form pure layer (#880)
  • feat(social-list): add the syndication-settings signal-form pure layer (#886)
  • feat(social-list): check name uniqueness on the winklinks profile modal (#826)
  • feat(social-list): migrate the online-presence modal to signal forms (#815)
  • feat(social-list): migrate the winklinks create-account wizard to signal forms (#821)
  • feat(social-list): migrate the winklinks profile modal to signal forms (#825)
  • feat(special-rate-bundle): migrate the bundle editor to signal forms (#790)
  • feat(special-rate): add the signal-form model (#793)
  • feat(special-rate): add the signal-form request mapper (#797)
  • feat(special-rate): fix the rooms qualifier and add the validation schema (#798)
  • feat(special-rate): migrate the editor to signal forms and remove 28 projects (#799)
  • feat(user-session): add the itinerary-selector signal-form pure layer (#863)
  • feat(user-session): cut the itinerary selector over to signal forms (#865)
  • feat(webhook): signing secret reveal, deliveries and outbox events ui (#970)
  • feat(workbench): add @storybook/addon-a11y
  • feat(workbench): add storybook host for isolated component verification (#980)
  • feat(workspace-generators): absorb-feature generator + social-list pilot (#1153)
  • feat(workspace-generators): extract-component generator + close multi-component ui-* campaign (#1168)
  • feat(workspace): add an inferred typecheck target so spec files are type-checked (#796)
  • fix: drop 3 more dead lodash-es mappings (#1165)
  • fix: drop 4 dead google.maps types, add 1 real one + fix a dead lodash-es (#1161)
  • fix: frozen-store crash on /extranet/media/list + missing portal i18n keys (#1118)
  • fix: portal-e2e a11y and console-error CI failures (#1045)
  • fix: signal-form lint errors (#1046)
  • fix: two real production bugs found via live Storybook verification
  • fix(a11y): give 22 invisible modal close buttons a visible glyph, and lint for it (#1018)
  • fix(a11y): resolve final a11y-campaign violation in shared-ui-embed-code
  • fix(a11y): resolve highest-leverage color-contrast and list-structure violations
  • fix(a11y): resolve second wave of axe-core violations from fresh sweep
  • fix(a11y): resolve third wave of axe-core violations from fresh sweep
  • fix(a11y): restore modal autofocus with a directive, not the native attribute (#1021)
  • fix(absorb-lib): count a component reached through a same-file spread (#1120)
  • fix(absorb): assert the target declares the source’s jest module mocks (#1100)
  • fix(absorb): assert the target declares the source’s spec ambient types (#1112)
  • fix(absorb): rewrite dynamic import() consumers, not just static imports (#1109)
  • fix(absorb): stop post-condition 4 firing on aliases mentioned in comments (#1088)
  • fix(add-on): register ratePlan feature state on add-on hub route (#1224)
  • fix(address): wrap each simple-address field in shared-ui-form-field-layout
  • fix(admin): add missing BANK_ACCOUNT/PAGE.BANK_ACCOUNT i18n keys (#1349)
  • fix(admin): add missing BOOKING_CONTRACT/PAYOUT i18n keys (#1346)
  • fix(analytics): match dark-mode chart export background to the on-screen theme (#1169)
  • fix(analytics): route the thank-you purchase to the booked hotel’s partner tags (#1008)
  • fix(analytics): skip toObservable’s initial replay in feature-list search (#1035)
  • fix(application): register initApplication at root for every app
  • fix(authentication): silently refresh access token after idle instead of 401ing (#653) (#1170)
  • fix(automate): raise pricing panel caption contrast to meet wcag aa
  • fix(book): itinerary date one day behind on mobile header (#177) (#1167)
  • fix(book): read route snapshot data for page title, not the observable
  • fix(booking): add book date to booking grid CSV exports (#1189)
  • fix(booking): bind general-information Rooms row to roomStay.quantity (#1275)
  • fix(booking): format gross-rate cell in accounting room-rates table (#1272)
  • fix(booking): give refund card CANCELED its own badge, fix a class-clobber bug (#1280)
  • fix(booking): give TEST_PAYMENT_SUCCEEDED a hero-card border and fix a deeper class-clobber bug (#1277)
  • fix(booking): interpolate premium-modifier percent in accounting table (#1274)
  • fix(caldav): disable generate button while passkey is generating (#1372)
  • fix(cancellation-policy): rename NINENTY_PERCENT to NINETY_PERCENT (#1323)
  • fix(checkout): price the cart under the attribution customization (#779)
  • fix(extranet): translate dashboard bookings-overview error banner (#1351)
  • fix(footer): drop formfield-reserved attributes that broke the aot build
  • fix(generators): correct two absorb-lib bugs the apps track exposed
  • fix(generators): name renamed route tables *.routes.ts so coverage still excludes them
  • fix(generators): stop re-emitting deprecated executors and a broken spec tsconfig (#794)
  • fix(geo-name): restore 15 missing timezones and extract the feature-code taxonomy (#847)
  • fix(google-maps): autocomplete card ViewChild race on repeat map visits (#1129)
  • fix(google-maps): consolidate 7 hand-rolled google.maps test stubs (#1241)
  • fix(google-maps): give ui-map-canvas and ui-auto-complete an internal readiness guard (#1371)
  • fix(google-maps): guard createPlaceAutoComplete against unloaded SDK (#1310)
  • fix(google-maps): scope map container lookup to its own instance (#1131)
  • fix(google-tag-manager): log and skip GA4 item on missing room instead of throwing (#1172)
  • fix(green-index): call the list signal in the empty-state check (#1366)
  • fix(guest-room): add missing util-transloco-signals peerDependency (#1376)
  • fix(guest-room): add selectTranslate stub to add-ons-host adapter spec mock (#1377)
  • fix(guest-room): wire i18n into ui-listing-preview (#1324)
  • fix(i18n): convert translate() inside computed() to translateSignal (#878) (#1229)
  • fix(inventory-map): restore google.maps ambient types in feature-map-form lib build
  • fix(inventory): consistent updateItinerary null guard, drop 3 dead handlers (#1269)
  • fix(inventory): drop dead imports the absorption carried across (#1146)
  • fix(inventory): floor fractional star ratings instead of rounding up (#1250)
  • fix(inventory): guard PlaceCardComponent.updateItinerary against a null event (#1264)
  • fix(inventory): prevent deal/rating and room-stat rows overflowing on mobile (#1379)
  • fix(inventory): read stay rate quantity from correct nested path (#1255)
  • fix(inventory): remove dead ui-grid inputs and fix mis-wired navigate outputs (#1260)
  • fix(inventory): sort by price instead of assigning in lowest-price pipe comparator (#1262)
  • fix(inventory): wire (bookClicked) on hotel-card’s ROOM face (#1254)
  • fix(lead): remove debug console.log probe from lead-form spec (#1370)
  • fix(managed-social): span the getting-started jumbotron across the full grid row (#1171)
  • fix(managing-entity): make the manager-list guards actually reachable (#940)
  • fix(managing-entity): read stripe key from environment.payment path (#1345)
  • fix(managing-entity): seed usage-graph default range from local calendar day (#1190)
  • fix(media,inventory-map): clone frozen store items in two more signal-form models (#1121)
  • fix(media): wire up ui-slideshow-modal navigation to activeIndex (#1284)
  • fix(meta): remove global FB redeclaration conflicting with @types/facebook-js-sdk
  • fix(newsletter): restore the sign-up button, which submitted nothing (#910)
  • fix(ng-select): close the v24 behavioural audit from #897 (#1019)
  • fix(payment-admin): close the review findings on the refund pure layer (#905)
  • fix(payment-admin): correct a mis-pinned component-selector prefix (#1141)
  • fix(payment-admin): delete dead account-reconcile path in domain lib (#1233)
  • fix(payment-admin): report real property counts on the status tile (#931)
  • fix(payment-admin): un-invert booking-contract cancel action gate (#1350)
  • fix(payment-widget): add missing UNKNOWN/MULTIPLE_PROPERTIES/BUTTON_CANCEL keys (#1373)
  • fix(perk): type PerkInterface.requestor as nullable (#1368)
  • fix(portals): remove unused fontawesome peer dependency
  • fix(portals): rename app-root shell to resolve #1245 naming collision (#1364)
  • fix(property): filter the admin hotel grid on the status the API sends (#929)
  • fix(property): remove the dead externalStatus surface (#930)
  • fix(property): send numberOfRooms, which the profile API requires (#808)
  • fix(property): style the YES_PAID internet/parking state in ui-basic-service-list (#1330)
  • fix(pwa-support): internationalise the version-update modal (#1020)
  • fix(rate-plan): correct group-heading label semantics and format drift (#1079)
  • fix(rate-verifier): make the five gate steps focusable and keyboard-operable (#1091)
  • fix(rate): bulk rate update crashes the calendar grid with NG01904 (#1127)
  • fix(receipt): add missing PAGE.RECEIPT/PAYMENT i18n keys, fix key mismatches (#1374)
  • fix(reference-data): retire dead OTA/currency/language HTTP fetches (#1219)
  • fix(review): sync the FE review interfaces with the backend document (#992)
  • fix(scripts): make verify:affected actually verify something (#995)
  • fix(search-category): add missing INVENTORY member to SearchCategoryEnum (#1329)
  • fix(seller-url): wire ui-preview to its own SELLER_URL i18n keys (#1328)
  • fix(shared): decide all 46 inert save-confirmation call sites, and lint for it (#1022)
  • fix(shared): prevent pagination next-button clip on mobile (#1384)
  • fix(shared): remove dead ghost-loading-element template/styles (#1242)
  • fix(shared): remove dead outputs from ui-copy-url (#1334)
  • fix(shared): rename SharedUiWinkSiteSharedUiTravelikoLogoComponent to SharedUiWinkSiteLogoComponent (#1251)
  • fix(shared): render future isoDateTime as “in ” in ui-time-ago (#1248)
  • fix(shared): render secondary-only CTA in ui-jumbotron (#1335)
  • fix(shared): replace stale errors instead of accumulating in ui-display-error (#1343)
  • fix(shared): stop freezing ui-dashboard-decorator’s time-of-day greeting (#1338)
  • fix(shared): translate ui-days-of-week keys and react to input changes (#1341)
  • fix(shared): wire loadingPlaceholderRows/Columns into ui-reusable-table-decorator (#1337)
  • fix(shared): wire placeholderConfig, drop dead ghostLoadingAspectRatio (#1208) (#1336)
  • fix(shared): wire tabsClass into ui-nav’s tablist element (#1339)
  • fix(shared): wire ui-placeholder-card’s dead section inputs into template (#1247)
  • fix(shared): wire up resetDisabled, remove dead ui-submit-cancel-buttons inputs (#1333)
  • fix(shopping-cart): only clear the local draft after the server sync succeeds (#1173)
  • fix(shopping-cart): only touch the cart api when the user is authenticated (#781)
  • fix(signal-form): correct the radio group docs and wire up its a11y (#907)
  • fix(signal-form): declare flatpickr-mobile-label peer dependency
  • fix(signal-form): let an optional select be cleared again (#874)
  • fix(signal-form): prevent actionable-url-input overflow and double-https prefix (#1382)
  • fix(signal-form): send amenity codes in catalogue order across all five hubs (#811)
  • fix(signal-form): wrap url-input example hint text on narrow viewports (#1383)
  • fix(social-list): give every embed card in feature-grid a unique, descriptive selector
  • fix(social-list): give how-to-link-account modal story real modal chrome (#1380)
  • fix(social-list): prevent vanity-url overflow at tablet width (#1381)
  • fix(social-list): replace heavy real-data design preview with a lightweight route (#1139)
  • fix(social): translate network names and placeholders in ui-signal-form-list (#1332)
  • fix(spa): guard amenities badge in ui-listing-preview when count is 0 (#1327)
  • fix(static-seller-list): correct reorderListItems missing-items error message (#1369)
  • fix(studio): clear stale error state and translate bookings-overview banner (#1362)
  • fix(tailwind): repair utilities carrying a duplicated wink: prefix (#784)
  • fix(tailwind): wire ui-calendar strings through Transloco (#1331)
  • fix(testing): point 11 jest configs at their own coverage directory (#916)
  • fix(travel-agent): point booking breadcrumb at the agent booking grid (#1367)
  • fix(travel-inventory): prevent hub two-column grid overflow on mobile (#1378)
  • fix(travel-inventory): resolve i18n keys reactively in hub-store SECTIONS (#1231) (#1353)
  • fix(travel-inventory): translate limits toggle On/Off label (#1295)
  • fix(typecheck): clear the remaining spec backlog and 6 source defects (#998)
  • fix(typecheck): repair drifted specs across 6 domain clusters (#997)
  • fix(typecheck): resolve namespace and protected-access spec type errors (#1000)
  • fix(typecheck): resync specs with the review and ScoreSort contract changes (#1002)
  • fix(user-session): add missing ITINERARY_FORM_MODAL.TITLE i18n key (#1282)
  • fix(web-components): sum room quantity for shopping cart badge count (#1365)
  • fix(wizard): remove dead WizardShellComponent (#1375)
  • fix(workbench): fix 14 storybook stories missing THEMES stub or stale mocks (#1361) (#1385)
  • fix(workbench): fix 8 more stories missing the THEMES applicationConfig stub
  • fix(workbench): fix remaining category-2 bugs from the full Playwright sweep
  • fix(workbench): merge all apps’ i18n bundles in storybook loader
  • fix(workbench): repair pre-existing storybook type errors blocking the dev server
  • fix(workbench): stub THEMES/ACTIVE_THEME in stories whose component uses themer
  • fix(workbench): use a real beneficiary-payment-type enum value in payment-admin fixtures (#1347)
  • fix(workbench): use applicationConfig, not moduleMetadata, for THEMES/ACTIVE_THEME
  • refactor: :fire: removed marketing icon
  • refactor: absorb 3 cross-domain ui components held for the lodash-es fix (#1166)
  • refactor: remove the deprecated organization domain and two channel-manager enum members (#1013)
  • refactor: remove the last dead PAYG check and the admin subscription column (#994)
  • refactor: retire 25 dead reactive form interfaces, closing 9 domains (#1010)
  • refactor: type NgRx facade signals with requireSync instead of leaving them undefined (#1130)
  • refactor(absorb-component): unblock phase 2 — re-include ui-card, migrate 18 targets to zoneless (#1063)
  • refactor(absorb): privatise the two depth-1 excluded candidates (#1110)
  • refactor(activity-stream): migrate the comment composer to signal forms (#1005)
  • refactor(activity): privatise 4 ui component(s) into their consumers (#1076)
  • refactor(add-on): privatise 3 ui components into their consumers (#1065)
  • refactor(admin): migrate the event and lead grids to signal forms (#988)
  • refactor(administration): absorb the 39 administration route libraries into their features (#1052)
  • refactor(analytics): absorb route-list into feature-list (#1049)
  • refactor(analytics): cut the leaderboard city picker over to signal forms (#961)
  • refactor(apps): absorb the 13 app-level route libraries into their features (#1050)
  • refactor(automate): absorb 3 sole-consumer analytics libraries (batch 4/4) (#1157)
  • refactor(automate): absorb feature-analytics into feature-insight (#1158)
  • refactor(automate): absorb the 6 automate route libraries into their features (#1056)
  • refactor(book-hotel-landing): privatise 11 ui component(s) into their consumers (#1087)
  • refactor(book-hotel-landing): privatise 7 ui component(s) into their consumers (#1099)
  • refactor(book): absorb 4 sole-consumer feature libraries (batch 2/4) (#1155)
  • refactor(book): privatise 3 ui component(s) into their consumers (#1066)
  • refactor(booking): cut the refund-request modal over to signal forms (#962)
  • refactor(booking): cut the three cancellation modals over to signal forms (#963)
  • refactor(booking): delete the dead comment form, closing the booking domain (#964)
  • refactor(booking): migrate the admin and agent booking grids to signal forms (#989)
  • refactor(cancellation-policy): migrate the policy editor to signal forms (#1001)
  • refactor(currency): remove the reactive variable-charge form and its service
  • refactor(dynamic-seller-list): migrate the saved-search filter form to signal forms (#1004)
  • refactor(dynamic-seller-list): privatise the list card into its consumer (#1111)
  • refactor(extranet): absorb the 51 extranet route libraries into their features (#1051)
  • refactor(extranet): merge the 6 hub route aggregators into their hub features (#1059)
  • refactor(extranet): migrate the booking grid and dashboard analytics to signal forms (#986)
  • refactor(form): retire the misfiled copyable input and delete FormHelper (#979)
  • refactor(forms): migrate to signal forms and remove 147 dead projects
  • refactor(generators): stop scaffolding route libraries
  • refactor(geo-name): cut the five map list screens over to signal forms (#958)
  • refactor(geo-name): privatise 3 ui component(s) into their consumers (#1067)
  • refactor(geo-name): withdraw four orphaned libraries (#959)
  • refactor(green-index): move the questionnaire wizard onto signal forms (#924)
  • refactor(grids): migrate the affiliate account and publisher review grids to signal forms (#990)
  • refactor(guest-room): privatise 6 ui component(s) into their consumers (#1084)
  • refactor(inventory-map): migrate the map editor to signal forms (#1007)
  • refactor(inventory-map): privatise the advanced map into its consumer (#1113)
  • refactor(inventory): privatise 10 ui component(s) into their consumers (#1145)
  • refactor(lead): migrate the admin lead screen to signal forms (#1003)
  • refactor(lifestyle): migrate the property lifestyle picker to signal forms (#977)
  • refactor(managed-social): migrate the post grid and retire both date-range libraries (#991)
  • refactor(managed-social): privatise 3 ui component(s) into their consumers (#1068)
  • refactor(managing-entity): drop the form from the section-grant editor and translate it (#823)
  • refactor(managing-entity): move the manager-invite form onto signal forms (#937)
  • refactor(managing-entity): privatise 3 ui component(s) into their consumers (#1069)
  • refactor(managing-entity): withdraw the unrouted accounts grid (#938)
  • refactor(master-rate): privatise 4 ui component(s) into their consumers (#1077)
  • refactor(media): model the multimedia list as one combined list (#870)
  • refactor(media): stop the cloudinary upload form pretending to be a form control (#818)
  • refactor(media): stop the single-file modal form pretending to be a form control (#820)
  • refactor(meeting-room): privatise 4 ui component(s) into their consumers (#1078)
  • refactor(misc-a-f): privatise 12 ui component(s) into their consumers (#1089)
  • refactor(misc-a-f): privatise 3 ui component(s) into their consumers (#1138)
  • refactor(misc-g-m): privatise 3 ui component(s) into their consumers (#1140)
  • refactor(misc-g-m): privatise 4 ui component(s) into their consumers (#1085)
  • refactor(misc-n-r): privatise 13 ui component(s) into their consumers (#1092)
  • refactor(misc-n-r): privatise 3 ui component(s) into their consumers (#1142)
  • refactor(misc-n-r): privatise 4 ui component(s) into their consumers (#1104)
  • refactor(misc-s-z): privatise 1 ui component(s) into their consumers (#1105)
  • refactor(misc-s-z): privatise 13 ui component(s) into their consumers (#1094)
  • refactor(misc-s-z): privatise 2 ui component(s) into their consumers (#1143)
  • refactor(misc): absorb 13 cross-domain ui components, rename selectors (#1164)
  • refactor(misc): absorb 6 sole-consumer feature libraries via absorb-feature (#1154)
  • refactor(payment-admin): add the refund signal-form pure layer (#903)
  • refactor(payment-admin): move the admin refund form onto signal forms (#908)
  • refactor(payment-admin): move the booking contract grid onto signal forms (#914)
  • refactor(payment-admin): move the cancel booking modal onto signal forms (#919)
  • refactor(payment-admin): move the ledger list filter onto signal forms (#909)
  • refactor(payment-admin): move the manual ledger entry form onto signal forms (#915)
  • refactor(payment-admin): move the reconciliation screen onto signal forms (#917)
  • refactor(payment-admin): move the refund request list filter onto signal forms (#912)
  • refactor(payment-portal): absorb the 2 payment-portal route libraries into their features (#1057)
  • refactor(payment): delete the two orphan components and absorb their route libraries (#1060)
  • refactor(payment): require a SWIFT/BIC for non-IBAN countries (#941)
  • refactor(perk): cut the admin perk editor over to signal forms, closing the perk domain (#966)
  • refactor(perk): cut the supplier perk-request form over to signal forms (#965)
  • refactor(place): privatise 3 ui component(s) into their consumers (#1070)
  • refactor(policy): move the property policy screen onto signal forms (#927)
  • refactor(portals): absorb 14 cross-domain ui components, rename selectors (#1162)
  • refactor(portals): absorb 4 sole-consumer feature libraries via absorb-feature (#1156)
  • refactor(portals): absorb the 13 portals route libraries into their features (#1054)
  • refactor(portals): move the integrator data into feature-home and retire the dead lib (#987)
  • refactor(portals): privatise 7 ui component(s) into their consumers (#1086)
  • refactor(property): move the admin property grid onto signal forms (#928)
  • refactor(property): move the general-manager screen onto signal forms (#935)
  • refactor(property): move the map-position screen onto signal forms (#934)
  • refactor(property): move the welcome-text screen onto signal forms (#932)
  • refactor(property): sync ScoreSortEnum with the backend, splitting sort from category (#985)
  • refactor(property): withdraw the unrouted property-status screen, fix the dead coverage-map link (#933)
  • refactor(property): withdraw the unrouted social-networks screen, fix the dead dashboard link (#936)
  • refactor(rate-plan): privatise 4 ui component(s) into their consumers (#1080)
  • refactor(rate-verifier): privatise 3 ui component(s) into their consumers (#1071)
  • refactor(rate): privatise 3 ui component(s) into their consumers (#1137)
  • refactor(restaurant): privatise 4 ui component(s) into their consumers (#1081)
  • refactor(routes): consolidate 19 single-component route libraries into their features (#1119)
  • refactor(routes): move the two misplaced route aggregators into their own domains (#1122)
  • refactor(selectors): declare prefix exemptions instead of suppressing the rule (#1150)
  • refactor(selectors): retire dead app-era selector prefixes (batch 1/3) (#1147)
  • refactor(selectors): retire dead app-era selector prefixes (batch 2/3) (#1148)
  • refactor(selectors): retire dead app-era selector prefixes (batch 3/3) (#1149)
  • refactor(seller-inventory-item): cut the card editor to signal forms (#902)
  • refactor(seller-inventory-list): migrate the grid editor to signal forms (#983)
  • refactor(seller-inventory-ranked-list): migrate the ranked grid to signal forms (#984)
  • refactor(seller-url): cut the inventory-link editor to signal forms (#899)
  • refactor(seller-url): privatise 3 ui component(s) into their consumers (#1072)
  • refactor(shared): move the four framework toSignal() conversions out of components (#1125)
  • refactor(shared): replace nine hand-written typeahead pipelines with one helper (#1126)
  • refactor(shortened-url): cut the link card and its panels over to signal forms (#877)
  • refactor(shortened-url): drop reactive forms from the copy and delete panels (#876)
  • refactor(shortened-url): privatise 5 ui component(s) into their consumers (#1102)
  • refactor(social-list): absorb 14 cross-domain ui components, rename selectors (#1163)
  • refactor(social-list): absorb the 8 social-list route libraries into their features (#1055)
  • refactor(social-list): absorb twitter-ui-embed-card cross-domain, rename selector (#1160)
  • refactor(social-list): cut the Design screen to signal forms (#887)
  • refactor(social-list): cut the editable category row to signal forms (#894)
  • refactor(social-list): cut the grid and filter bar to signal forms (#896)
  • refactor(social-list): cut the live post card and its 8 panels to signal forms (#885)
  • refactor(social-list): cut the locked-link card to signal forms (#893)
  • refactor(social-list): cut the quote and simple-post create modals to signal forms (#888)
  • refactor(social-list): cut the web-link modal to signal forms (#892)
  • refactor(social-list): privatise 15 ui component(s) into their consumers (#1101)
  • refactor(social-list): privatise 19 ui component(s) into their consumers (#1096)
  • refactor(social-list): privatise 3 ui component(s) into their consumers (#1107)
  • refactor(social-list): the archived post card ends with no form (#883)
  • refactor(social-list): the file-upload post modal ends with no form (#890)
  • refactor(special-rate-bundle): privatise 3 ui components into their consumers (#1064)
  • refactor(special-rate): privatise 4 ui component(s) into their consumers (#1103)
  • refactor(special-rate): privatise 5 ui component(s) into their consumers (#1082)
  • refactor(static-seller-list,affiliate-request): migrate four modals to signal forms (#1016)
  • refactor(studio): absorb the 23 studio route libraries into their features (#1053)
  • refactor(studio): migrate the last two reactive forms to signal forms (#1015)
  • refactor(studio): privatise 5 ui component(s) into their consumers (#1083)
  • refactor(supplier-url): cut the property-link editor to signal forms (#901)
  • refactor(supplier-url): privatise 3 ui component(s) into their consumers (#1074)
  • refactor(travel-agent): absorb the 2 travel-agent route libraries into their features (#1058)
  • refactor(user-settings): withdraw the two unreachable profile screens (#952)
  • refactor(user): cut the access-level form over to signal forms (#955)
  • refactor(user): cut the admin change-password form over to signal forms (#954)
  • refactor(user): cut the admin user profile form over to signal forms (#953)
  • refactor(user): cut the user grid over to signal forms (#957)
  • refactor(user): withdraw the admin subscription screen (#956)
  • refactor(webhook): privatise 3 ui component(s) into their consumers (#1075)
  • test: close coverage gaps in 3 projects failing the 80% branch/function gate
  • test: remove 1219 vacuous placeholder specs (#1011)
  • test(coverage): close the tractable half of the coverage-gate backlog (#999)
  • test(inventory): cover the branches six card libraries were missing (#1144)
  • test(shared): cover ui-dropdown icon-only aria-label (regression for #1212) (#1340)
  • test(signal-form): realign two stale specs with their components
  • test(web-components): correct a stale ranked-grid sort expectation (#1133)
  • test(workbench): cover every ng-select usage with a story, and fix two regressions it exposed (#1017)