Recent Activities

This page shows what are we working on.

breezefront / theme-frontend-breeze-enterprise-eir

4 hours ago success
  • head
    • Shopping cart page in progress 8ca297

    • Shopping cart page 9fa558

    • Enhance quantity input styling and functionality. Apply border-radius to buttons and ensure step attribute is valid. 1bcebb

    • Add padding variable for navigation link caret. aa8d04

    • Quantity wrapper component. f57c8d

    • Product page. Adjustments for related products layout. aa27ee

    • Product page. Add new layout container. Place BCB marquee content there. a2fe52

    • Product page. Enhance gallery configuration and update layout variables for improved styling and responsiveness. b89117

    • Product page. Add grid area for price information and implement gallery layout for improved product display. 76b0b3

    • Product page. Add focus ring styling for checkboxes in related products block to enhance accessibility. ab2227

    • Product page. Refactor related products layout for improved responsiveness and styling consistency. 5aa789

    • Product page. Update quantity button icons to use mask images for better scalability and styling. 9576ee

    • Product page. Related products block. 7ed6de

    • Product page. Implement review popup for full review text display and enhance accessibility. d38885

    • Product page. Add toggle for "Write Your Own Review" form and adjust styles for review list 9973d8

    • Product page. Revies list is done. Revie form next. 5bf007

    • Theme Editor: added Listing, Animations, and Advanced sections a4451d

    • Theme Editor: added Colors section 390891

    • Product page. Reviews in progress... e13b99

    • Theme Editor: added Layout, Typography, Overlay Header, Border Radius, Color and Font Palettes ff5e62

    • Productpage. Review in progress... 7059e9

    • Productpage. Review in progress. 669824

    • BCB featured product component. 0651cf

    • Add styles for featured product details, SKU, and price row in BCB d65f2d

    • BCB accordion styles at product info main. 1a262b

    • Installer. Add accordion for products. 466a5b

    • Add padding to swatch options in product add form for improved layout f10f77

    • Product main info ... in progress bf5c3f

    • Enhance product quantity input with increment/decrement buttons and update styles for better usability 72192e

    • Update product page medium image dimensions to 590x590 012c72

    • Fix minicart styles: set empty counter opacity to 0 79fcd1

    • Increased h2 bottom margin dff6ea

    • Product page action buttons. d008f0

    • Updated footer content links and section titles for improved clarity and user experience 241039

    • BCB homepage: fixed wrong image name b1a4f4

    • Rating stars styles in product listing f17a0f

    • BCB homepage: updated full width banner and sections spacings 2076c7

    • Fixed sort order of product details inside grid listing 9ad360

    • BCB homepage: updated Videos and full width banner sections 072733

    • Product page title font-size. d0987c

    • Footer. Minor fix for ring reval animation. Restore missing divider in footer. (#3) 54cdc4

    • Footer ring reveal animation added (#3) 4a8be8

    • BCB homepage: added animated badges to top banners grid 197e37

    • BCB homepage: added rotation animation for Full Width Banner 1420f9

    • BCB homepage: top banner updated a53bd5

    • Update favicon color 5ea666

    • Update favicon 18d8dc

    • Slightly update footer background. 5fcbfc

    • Footer content update. Add contact block (#3) dea42e

    • Fixed missing minicart overlay on first open (#2) 54feaa

    • BCB homepage: updated Browse categories block dbfa89

    • Breadcrumbs 196469

    • Done with search (#2) d8e0f3

    • Enhance minisearch functionality with slideout behavior and styling adjustments without Ajaxsearch (#2) 8c4a9d

    • Minisearch styles when ajaxsearch disabled... in progress (#2) 259fac

    • Remove unused styles from viewcart action and update empty subtitle styles in minicart (#2) dba7a5

    • Minicart complete (#2) 56efd2

    • Search on desktop (#2) 9c587e

    • BCB homepage: added videos section 7ee864

    • Minicart inprogress (only buttons to adjust)... (#2) c1be91

    • Minicart update in progress.... c3d18b

    • Minicart update in progress... (#2) 55e7b9

    • INstaller. Create dummy CMS block header_panel_info to allow user add custom content (#2) f70d58

    • Adjust minicart counter (#2) 03e843

    • BCB homepage: Added brand logos section b905f1

    • BCB homepage: Added testimonials section 2ab2cf

    • Update newsletter styles: adjust input border and add consent positioning (#2) 02d37d

    • Header. Update search behaviou and look of the result dropown. 993432

    • BCB homepage: Added FAQ a0bfde

    • Add focused search styles. d80f88

    • BCB homepage: added new sections 875068

    • BCB homepage: added ECI and full-width banner d40cfa

    • Top navigation added. 8fa9a3

    • Remove color from menu links dec081

    • Clone currency and store switchers in header slideout menu for improved functionality de36e3

    • Enhance header and newsletter styles for improved layout and responsiveness in header slideout menu. b63dd0

    • Installer. Update header slideout menu styles. 825795

    • Update footer top content HTML to enhance newsletter section styling.
      Don't set font familiy for header in Page Builder ba0b81

    • BCB homepage WIP b228af

    • Basic navpro slideout styles 75ac0e

    • Refactor header slideout menu and newsletter styles for improved layout and consistency 3b42ff

    • Header slideout menu... d4f174

    • Listing styles for the list mode and old price update. cbff61

    • Update README.md to clarify usage of `with-bottom-divider` CSS class and provide detailed instructions 1b9ea5

    • Pagination and make with-bottom-divider general. 37ea17

    • Added list banner 5 config; updated installer, moved it to json a43985

    • Add new layout configuration and remove easybanner references; update footer content and styles 87165b

    • Refactor easybanner configuration and installer for product listing banners 8b1d0d

    • Installer. Listing grid banner added. 914c01

    • Add swatches variables and layout styles d59581

    • Update positioning for filter title and content in layered navigation 8cbd21

    • Add image dimensions for product listings and related widgets in view.xml 6985cd

    • layout and styles for category view, product toolbar, shop by button 08fd27

    • Add layered navigation styles and update imports 944ff1

    • Keep working on prodcut listing and category page. 411088

    • Keep working on product listing toolbar. ebcfac

breezefront / module-breeze-ai

11 hours ago success
  • 1.8.11
    • chore(release): 1.8.11 bd7942

    • feat(content-builder): choose per build where images come from (#164) (#173)

      * feat(content-builder): choose per build where images come from (#164)

      Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

      * refactor(content-builder): dedupe assets-choice logic (#164)

      Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

      * fix(content-builder): stop the assets-choice notice from logging on every render (#164)

      Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

      * fix(content-builder): don't let a silent notice-render suppress a build's log line (#173)

      getUnavailableReason($log) memoized the reason and the logging decision
      together, so whichever caller asked first decided logging for the rest of
      the instance's life. Decouples the two: the reason is still computed once,
      but logging is tracked separately so a real build's logged ask always gets
      its line regardless of order.

      Also: extract() now normalizes $assets before using it for provenance()'s
      "chosen for this build" vs "store configuration" clause; isEnabled()/
      isWanted() are memoized per $assets to stop re-reading config (and
      re-logging the cropper error) on every ask within one request; Assets'
      wantsExtraction()/wantsGeneration() collapse into one lookup table instead
      of two hand-mirrored if-chains.

      Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

      * fix(content-builder): stop the default notice from logging too (#164)

      GenerationNotice::get()'s default branch asked ImageGenerator::isEnabled()
      with no way to say "don't log" — the same page-render-not-a-build problem
      1caaac9/9ab0f65 already fixed for the forced "Generate" branch, just missed
      here. isEnabled() now takes the same $log parameter getUnavailableReason()
      does; get() asks it silently, matching forGenerate().

      Also: assets-control.js's applyTo() no longer mutates its argument, and
      ImageGeneratorTest's repeated "target with no API key" mock is a helper now.

      Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

      ---------

      Co-authored-by: Claude Opus 5 <noreply@anthropic.com> d0ba40

    • fix(content-builder): stop the default notice from logging too (#164)

      GenerationNotice::get()'s default branch asked ImageGenerator::isEnabled()
      with no way to say "don't log" — the same page-render-not-a-build problem
      1caaac9/9ab0f65 already fixed for the forced "Generate" branch, just missed
      here. isEnabled() now takes the same $log parameter getUnavailableReason()
      does; get() asks it silently, matching forGenerate().

      Also: assets-control.js's applyTo() no longer mutates its argument, and
      ImageGeneratorTest's repeated "target with no API key" mock is a helper now.

      Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> fbc584

    • fix(content-builder): don't let a silent notice-render suppress a build's log line (#173)

      getUnavailableReason($log) memoized the reason and the logging decision
      together, so whichever caller asked first decided logging for the rest of
      the instance's life. Decouples the two: the reason is still computed once,
      but logging is tracked separately so a real build's logged ask always gets
      its line regardless of order.

      Also: extract() now normalizes $assets before using it for provenance()'s
      "chosen for this build" vs "store configuration" clause; isEnabled()/
      isWanted() are memoized per $assets to stop re-reading config (and
      re-logging the cropper error) on every ask within one request; Assets'
      wantsExtraction()/wantsGeneration() collapse into one lookup table instead
      of two hand-mirrored if-chains.

      Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> 9ab0f6

    • fix(content-builder): stop the assets-choice notice from logging on every render (#164)

      Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> 1caaac

    • refactor(content-builder): dedupe assets-choice logic (#164)

      Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> 439f92

    • feat(content-builder): choose per build where images come from (#164)

      Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> 22e114

    • fix(usage): log a call the provider was paid for even when it throws (#171) (#172) ac147b

    • fix(usage): log a call the provider was paid for even when it throws (#171) 301823

  • 1.8.10
    • chore(release): 1.8.10 b89c7b

    • fix(claude): return the first text block, not block zero (#169) (#170) 53ba97

    • fix(claude): drop advice to clear Max Tokens, which Anthropic has no default for (#169) 40164e

    • fix(claude): refuse a non-JSON 200 instead of fataling on it (#169) 909630

    • fix(claude): return the first text block, not block zero (#169) 2ac700

    • perf(providers): record cached input tokens, cache the Claude prefix (#165) (#167)

      Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> 277f46

    • fix(providers): guard the cached-token read against SDK 0.10 (#165)

      Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> 71c46b

    • perf(providers): record cached input tokens, cache the Claude prefix (#165) 82c535

breezefront / theme-frontend-breeze-blank

1 day ago success
  • head
    • Revert "Explicitly set navigation item paddings"

      This reverts commit cb77b10eaf9af978e1548035c957edae74e6da2e. 0b7288

    • Explicitly set navigation item paddings cb77b1

    • Added labels for footer containers 780d47

  • 3.2.2
    • Version 3.2.2 330f6d

    • Allow to remove `displaY:block` from complex prices markup 389332

breezefront / module-breeze-content-builder

6 days ago success
  • 1.2.3
    • chore(release): 1.2.3

      Ships the bcb:fieldRowReady extension point (a9234aa) and its corrected
      contract docs (#46), neither of which is in any released tag — 1.2.2
      predates both. breeze-ai 1.8.6 subscribes to that event for its
      per-field AI button, so on every released BCB the button is dead.

      Patch release: comments and an event emit, no API break, and breeze-ai
      declares no composer constraint on this package. 18c02c

    • Merge pull request #48 from breezefront/docs/46-field-row-caveats

      docs(property-panel): clarify bcb:fieldRowReady scope and caveats (#46) f12bb4

    • docs(property-panel): clarify bcb:fieldRowReady scope and caveats (#46)

      The header comment read as a blanket claim ("a field row" fires the
      event) when only rows built by _renderSingleProp actually emit it. The
      editable Label row and grouped props (e.g. spacing) are built inline in
      _renderForm and emit nothing, and a prop with type="hidden" or a
      contextOnly miss returns before a row exists at all.

      Also document that $row is not in the visible panel when the event fires
      (_renderForm appends the form last, and a section's rows sit in a still
      detached <details>), so subscribers must not read layout; that $row may
      already be hidden by an unmatched depends clause; and that renderer is
      the shared module for prop.type, to be read and never mutated.

      Comments only — no behaviour change.

      Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> c77b7c

    • docs(property-panel): clarify bcb:fieldRowReady scope and caveats (#46)

      Code review found the header comment read as a blanket claim ("a field
      row" fires the event) when only ordinary ungrouped props built by
      _renderSingleProp actually emit it — the label row and grouped props
      (e.g. spacing) don't. Also note $row isn't attached to the live panel
      yet at fire time (no layout reads), and that renderer is a shared
      singleton per prop.type that subscribers must not mutate.

      Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> a68c9f

    • Emit bcb:fieldRowReady extension point for field rows a9234a

    • feat(property-panel): emit bcb:fieldRowReady extension point for field rows (#46)

      After a field row is built, appended to the form, and bound on change,
      property-panel.js now fires 'bcb:fieldRowReady' on $(document) with
      { prop, component, $row, $field, renderer }. A third-party module can
      subscribe and append a control to $row without patching this file or
      reaching into the DOM, and without touching $field's value collection
      or change binding.

      Also documents the field-renderer contract (render/getValue) as public
      in the file header, since the extension point relies on it.

      No new AMD registry and no wrapper around $field — the two walls
      described in the issue stay as they are; this only adds the missing
      hook point. d841c3

    • feat(FeaturedProduct): introduce less variables 9d348a

    • refactor(FeaturedProductRenderer): replace image URL and alt text with pre-rendered HTML 623392

    • Fixed FAQ items readability on light theme, closes #44 091320

    • Fixed avoid using self-closing tag with non-void html element 9a3123

    • Added hide on pages checkbox list prop type ccf9e8

    • Updated dependent fields logic 278125

    • feat(accordion): enable product attribute as body source for FAQ items b26684

    • feat(accordion): add support for per-item icons in FAQ items b7607f

    • Correct page cleanup when BCB is closed a40061

    • Merge pull request #38 from breezefront/feat/108-newsletter-and-missing-components

      feat(components): inline newsletter layout (#108) 57dafb

    • fix(components): newsletter heading follows an inherited text colour (#108)

      Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> c56d7d

    • fix(a11y): real heading elements and decorative icons (#41)

      Newsletter rendered its section heading as <div class="...__heading h2">:
      invisible to assistive technology and absent from the document outline,
      even though it is the heading of a page band. It now emits a real h1-h6
      element chosen by a new heading_type prop (default h2), matching what
      text_block already does. Same fix for the featured_product name, which
      was also a styled div.

      Breeze styles the tag and the class off a single selector list -
      `h2, .h2 { ... }` in theme-frontend-breeze-blank/web/css/base/
      _typography.less - so under a Breeze theme, dropping the class for the
      tag is visually neutral. Under a non-Breeze theme .h2 is not styled at
      all, so those headings were rendering as plain body text and now pick up
      the theme's own h2 size: a fix rather than a regression, but not a no-op.
      Either way it changes the markup of existing pages, which is why this is
      split out of #38.

      text_block borrowed the heading text for its icon alt and wrapped inline
      SVG in a plain div, so a screen reader announced the heading twice, or
      three times when the SVG carried its own <title>. The icon is decorative
      in every design that uses it: alt="" on the image branch, aria-hidden on
      the SVG wrapper. A case that needs a real name should get an explicit
      icon_alt prop rather than reusing the heading.

      The admin H1 guard only fired on banner's headline_type, so raising a
      text_block - and now a newsletter - to H1 skipped the warning. It now
      watches heading_type too; _countH1 already counted both.

      Also corrects the selector these three comments cite: the rule is
      `h1, .h1` in the Breeze theme, not `:where(h1), .h1` in the module.

      product_grid was checked and already emits a real h2. Accordion item
      titles remain divs wrapping an <a> trigger; the heading+button pattern
      there is a larger change and stays open.

      Refs #41 53edaa

    • fix(components): collage layout for flat-colour CTA, decorative icon a11y (#108)

      Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> 6e2743

    • feat(components): inline newsletter layout (#108)

      Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> 85ed20

    • Changes for header/footer page: publish spinner, layout picker with images 25b2ae

  • 1.2.2
    • Version 1.2.2 214d13

    • Fixed ignored text color when heading used in content c92d33

breezefront / module-breeze-layout-builder

1 week ago error
  • head
    • Fixed missing background on Classic header layout on Eir theme aad26a

    • Fixed preview issue after previous commit ea8cea

    • Updating page selector links when store view switched 0d3d12

    • Added page visibility control and installer support for header/footer content 796f48

    • Fixed not working theme editor colors for overlay header 2660ce

    • Do not show overlay header toggles for native layout b000f5

    • WIP. Header layouts: added overlay mode support 8122c9

    • Correct page cleanup when BLB is closed 45b825

    • Improved header/footer preview 07c294

    • Header/Footer management with Header Layouts 7a0a82

  • 1.2.0
    • Version 1.2.0 24fff8

    • Added Contact Us page support d64e46

    • Config option for upcoming TaxVAT switcher in theme header 7f31bd

breezefront / theme-frontend-breeze-enterprise-apollo

1 week ago success

breezefront / module-breeze-theme-editor

2 weeks ago success
  • head
    • Fixed extracting clean path from iframe URL when layout builder is used 1a5b3b

  • 1.0.16
    • Merge pull request #34 from breezefront/fix/default-scope-theme-resolution

      fix(theme-resolver): resolve Default scope theme from store views 900bf4

    • test(theme-resolver): cover inactive default store view and all-inactive website

      Third review round over c0ae76c found no defects in the fallback ordering
      itself, but two branches of it were untested: the scope's default store view
      being switched off (the resolver must move on to the first active view, as the
      scope selector does) and a website whose store views are all switched off
      (nothing to preview, nothing to fall back to). 1b3a31

    • fix(theme-resolver): follow the previewed store view in the theme fallback

      Review of the previous commit (mine and Copilot's) landed on the same problem:
      the fallback took the first themed store view out of `getStores()`, in store-id
      order, including disabled ones. The scope selector previews a specific store —
      the default website's default store for Default scope, the website's own default
      store for a website scope (StoreDataProvider::getDefaultStoreId()) — so on a
      multi-theme setup the editor could load and save settings for one theme while
      the iframe rendered another, with no visible effect from a publish.

      The candidate list now mirrors that order: the scope's default store view first,
      then its other store views, and inactive views are skipped entirely — their
      theme is rendered nowhere. Walking past the previewed store view stays as a last
      resort, matching StoreDataProvider's own fall back to the first active store; it
      is reachable only when the previewed view has no theme in any scope, where
      Magento renders its built-in default and there is no assignment to follow.

      The blanket `catch (\Exception)` also reported infrastructure faults as
      "No theme is assigned … Assign a theme in Content > Design > Configuration",
      losing the real cause. A missing website/group/store stays silent (expected
      input); anything else is logged as a warning with the exception attached.

      Verified on the local stack with the default-scope row deleted: Default scope
      resolves to theme 25 when the previewed store view (store 1) has it, instead of
      theme 17 from the lower-id store 3 that the previous commit returned; website
      scope resolves through its own default store the same way. Tests: PHPUnit 905. c0ae76

    • Version 1.0.16 1bcff1

    • fix(theme-resolver): resolve Default scope theme from store views

      The Theme Editor failed with "Unable to determine theme for scope default /
      scopeId 0" on installs where design/theme/theme_id was never saved for the
      Default Config scope — themes assigned per store view only. Website and store
      scopes read that value through ScopeConfig and inherit it; the default scope has
      nothing above it, so the lookup came back empty and the resolver threw. The
      admin toolbar already fell back to DesignInterface, so the editor loaded and
      only the config query failed, which is what the client saw.

      getThemeIdByScope now falls back to a store view's theme when the requested
      scope has none of its own: the default store view first (then any other one)
      for the default scope, and the website's own store views for a website scope.
      Store scope keeps no fallback — it inherits from default already, so an empty
      value there means nothing is assigned anywhere.

      When nothing can be resolved the message now names the cause and the fix
      instead of the scope tuple: which scope has no theme, that no store view has
      one either, and that a theme has to be assigned in Content > Design >
      Configuration followed by a cache flush.

      Not a regression from 1.0.15 — that release only touched GraphQL auth headers.
      The resolver has behaved this way since multi-scope support was added (5d43943).

      Verified against the local stack with the default-scope row deleted: the old
      code reproduced the client's exact error, the new code returns a valid config
      for both default and website scope. Tests: PHPUnit 904. c085d4

breezefront / module-breeze-magewire-example

2 weeks ago success

breezefront / module-breeze-magewire

2 weeks ago success

breezefront / theme-frontend-breeze-enterprise-blank

3 weeks ago success