@liquidcars/atlas 0.1.51 → 0.1.53

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  Componente web reutilizable para explorar modelos conceptuales en 3D. El componente lee una isla de datos con `palette`, `entities` y `relations`, resuelve coordenadas relativas mediante `parent` y permite explorar geometrías, contenedores, relaciones animadas y selección contextual.
4
4
 
5
+ Core recibe modelos planos con posiciones `p` relativas al padre y dimensiones `s`.
6
+ La [guía de modelos declarativos y nativos](../../apps/atlas-studio/docs/model-representations.md)
7
+ explica cómo compilar una declaración con `atlas-layout`, cómo conservar coordenadas
8
+ nativas y qué validaciones aplica el formato portable. La tolerancia de la API directa
9
+ de core no sustituye esas validaciones de Studio y Platform.
10
+
5
11
  ## Prueba local
6
12
 
7
13
  Desde la carpeta del paquete:
@@ -189,6 +195,7 @@ generar el archivo.
189
195
  ## Contrato de datos
190
196
 
191
197
  - `palette`: mapa de nombres de color a valores CSS/hex.
198
+ - `libraries` (opcional): librerías de geometrías de autor publicadas en npm y vinculadas por el modelo, no por Studio. Cada entrada declara `package`, una `version` semántica exacta y, opcionalmente, el `namespace` esperado. Studio limita inicialmente esta carga dinámica a paquetes `@liquidcars/atlas-geometry-*`.
192
199
  - `theme` (opcional): configuración de `background`, `lighting`, `panel`, `toolbar`, `breadcrumbs`, `hint` y `ui`. `ui` permite mostrar u ocultar `panel`, `toolbar`, `breadcrumbs` y `hint`.
193
200
  - `render.camera` (opcional): vista inicial con `position`, `target` y `zoom`. Las coordenadas pertenecen al espacio del modelo; `zoom` conserva el encuadre relativo entre tamaños de visor.
194
201
  - `render.initialMode`: `2d` o `3d`. `render.views."2d".theme` admite `auto` (hereda el fondo del documento), `light` o `dark`; `render.views."2d".grid` activa o desactiva los puntos (por defecto, `true`). `render.views."2d".background` permite un color CSS concreto. `render.ui.toolbar` acepta `true`, `false` o una lista como `[mode, zoom, fit]` para mostrar solo esos controles.
@@ -292,7 +299,31 @@ terceros una sola vez y cada recurso puede sobrescribir `authors` o `license`.
292
299
  Las piezas declarativas admiten primitivas, posición, rotación, escala,
293
300
  materiales e imágenes por URL/data URI; los SVG también pueden proporcionarse
294
301
  inline. Para planos con imagen, `imageFit` admite `cover`, `contain` y
295
- `stretch`. Desde `0.1.40`, `shape: "svg-extrude"` convierte rutas SVG en una
302
+ `stretch`. `imageBackground` admite `auto`, `light`, `dark`, `transparent` o
303
+ un color CSS. En imágenes transparentes, `auto` escoge blanco o negro a partir
304
+ de la luminancia de los píxeles visibles; en imágenes opacas estima el color de
305
+ fondo a partir del perímetro. Con `contain`, el fondo cubre el plano completo y
306
+ la imagen conserva su proporción. `imagePadding` admite `auto`, `none`,
307
+ `compact`, `roomy` o una fracción numérica entre `0` y `0.24`; el modo
308
+ automático detecta los límites del contenido y reserva una zona segura. La
309
+ pieza `shape: "rounded-frame"` crea un marco con hueco real mediante `size`,
310
+ `innerSize`, `radius` e `innerRadius`. Las URL remotas necesitan CORS para
311
+ convertirse en texturas WebGL.
312
+ Un host que pueda recuperar recursos públicos de forma segura puede evitar esa
313
+ dependencia configurando un resolvedor; este puede devolver `Response`, `Blob`,
314
+ una URL `data:`/`blob:` o una URL alternativa:
315
+
316
+ ```js
317
+ atlas.setImageResolver(async ({ source, signal, geometry, entityId }) =>
318
+ fetch(`/api/image?url=${encodeURIComponent(source)}`, { signal }));
319
+
320
+ // También disponible como valor por defecto para todas las instancias del host.
321
+ LiquidCarsAtlas.setDefaultImageResolver(resolver);
322
+ ```
323
+
324
+ Si el resolvedor falla, Atlas conserva el intento CORS directo y emite
325
+ `IMAGE_LOAD_FAILED` cuando tampoco puede decodificar el recurso. Desde
326
+ `0.1.40`, `shape: "svg-extrude"` convierte rutas SVG en una
296
327
  malla con profundidad real, por lo que una marca puede formar parte del volumen
297
328
  sin convertirse en texto ni en una textura plana:
298
329
 
@@ -396,6 +427,9 @@ npm install ./liquidcars-atlas-0.1.40.tgz
396
427
 
397
428
  ## Estado
398
429
 
430
+ `0.1.52` añade resolución delegable de imágenes remotas, fondos adaptativos,
431
+ padding sensible al contenido y marcos redondeados con hueco real para
432
+ geometrías de medios.
399
433
  `0.1.40` añade SVG extruido nativo para que los geometry packs puedan construir
400
434
  marcas volumétricas a partir de recursos vectoriales sin recurrir a campos de
401
435
  texto. `0.1.39` incorpora metadatos normalizados de autoría, licencia,
@@ -504,3 +538,7 @@ the origin active. History retains 2D/3D mode, camera, diagram zoom and scroll,
504
538
  selection, open containers and filters. Hosts that rebuild the component can use
505
539
  `restoreNavigationState(state, { restorePresentation: true })` to restore its
506
540
  presentation as well as its history.
541
+
542
+ ## Public model contract
543
+
544
+ `@liquidcars/atlas/model` exports `validateRuntimeModel`, `runtimeModel`, `runtimeSnapshot`, relation normalization and presentation capture without DOM, Three or layout. It validates supplied vectors and hierarchy before core applies defaults. See the [model/document contract](../atlas-layout/spec/ATLAS-MODEL-CONTRACT-v1.md).