From abf54335131db4fc5b42306ee1d5931aaa4b14cb Mon Sep 17 00:00:00 2001
From: nicolastorres <nicolas@adornis.de>
Date: Fri, 16 May 2025 09:21:57 +0000
Subject: [PATCH] feat: fixes

---
 .../client/extensions/ImageExtension.ts       |  2 +-
 .../client/extensions/ListExtension.ts        | 30 ++++++++++++-------
 2 files changed, 21 insertions(+), 11 deletions(-)

diff --git a/modules/buildify/client/extensions/ImageExtension.ts b/modules/buildify/client/extensions/ImageExtension.ts
index 189012ba69..44f2fed0d1 100644
--- a/modules/buildify/client/extensions/ImageExtension.ts
+++ b/modules/buildify/client/extensions/ImageExtension.ts
@@ -112,7 +112,7 @@ export class XImageExtension extends ExtensionBoilerplate<BaseImage> {
           .fileEntity=${this.fileClass}
           .value=${content.fileID}
           ${css({
-            width: content.width ? content.width : '100%',
+            width: content.width ? `min(${content.width}, 100%)` : '100%',
             height: content.viewMode !== 'width' ? '100%' : 'unset',
             aspectRatio: content.viewMode !== 'width' ? content.aspectRatio ?? '' : 'unset',
             ...(content.borderRadius ? { borderRadius: content.borderRadius, overflow: 'hidden' } : {}),
diff --git a/modules/buildify/client/extensions/ListExtension.ts b/modules/buildify/client/extensions/ListExtension.ts
index 21f256d9a7..797da8e7b3 100644
--- a/modules/buildify/client/extensions/ListExtension.ts
+++ b/modules/buildify/client/extensions/ListExtension.ts
@@ -1,5 +1,7 @@
 import type { Styles } from '@adornis/ass/style.js';
+import { BreakPoint } from '@adornis/base/client/frontend-helpers/window-size.js';
 import type { Maybe } from '@adornis/base/utilTypes.js';
+import { WindowSizeController } from '@adornis/chemistry/controllers/window-size-controller.js';
 import { css } from '@adornis/chemistry/directives/css.js';
 import '@adornis/chemistry/elements/components/x-flex.js';
 import '@adornis/chemistry/elements/components/x-grid.js';
@@ -9,7 +11,7 @@ import '@adornis/fonts/fonts.js';
 import '@adornis/forms/x-checkbox.js';
 import '@adornis/forms/x-input.js';
 import { html, nothing } from 'lit';
-import { customElement, property } from 'lit/decorators.js';
+import { customElement, property, state } from 'lit/decorators.js';
 import { repeat } from 'lit/directives/repeat.js';
 import type { BaseIcon } from '../../db/extensions/BaseIcon.js';
 import { BaseList } from '../../db/extensions/BaseList.js';
@@ -101,36 +103,35 @@ export const ListExtension = ({
 export class XListExtension extends ExtensionBoilerplate<BaseList> {
   @property({ attribute: false }) textExtension: Maybe<BuildifyExtension>;
   @property({ attribute: false }) iconExtension: Maybe<BuildifyExtension>;
+  @state() private readonly size = new WindowSizeController(this);
 
   protected override _content(content: BaseList) {
     const listSymbol = this._listSymbol(content);
     return html`
-      <x-grid columns="max-content 1fr" ${css({ gap: '20px 16px' })}>
+      <x-flex>
         ${repeat(
           content.items,
           item => item._id,
           textContent => html`
-            <!-- list symbol -->
-            ${listSymbol}
-
-            <!-- text -->
             <x-flex
+              horizontal
+              space="sm"
               ${css({
                 height: 'min-content',
               })}
             >
-              ${this.TextExtension.render(textContent, { isSubelement: true })}
+              ${listSymbol} ${this.TextExtension.render(textContent, { isSubelement: true })}
             </x-flex>
           `,
         )}
-      </x-grid>
+      </x-flex>
     `;
   }
 
   protected _listSymbol(content: BaseList) {
-    if (content.isHyphen) return html` <x-text> - </x-text> `;
+    if (content.isHyphen) return html` <x-text ${css({ marginTop: this._listSymbolMarginTop() })}> - </x-text> `;
     return html`
-      <x-flex ${css({ position: 'relative', height: '100%' })} start crossaxis-center>
+      <x-flex ${css({ position: 'relative' })}>
         ${this.IconExtension.render(content.icon, {
           isSubelement: true,
           defaultValues: {
@@ -143,6 +144,15 @@ export class XListExtension extends ExtensionBoilerplate<BaseList> {
     `;
   }
 
+  protected _listSymbolMarginTop() {
+    const device = this.size.value?.device;
+    if (!device || device >= BreakPoint.laptop) {
+      return '1.4em';
+    } else {
+      return '1em';
+    }
+  }
+
   protected get TextExtension() {
     if (!this.textExtension) throw new Error('text extension in list is mandatory');
     return this.textExtension;
-- 
GitLab