@liquidcars/atlas 0.1.43 → 0.1.45

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
@@ -58,8 +58,10 @@ atlas.select('distribution-agreement'); // selecciona sin mover la cámara
58
58
  atlas.focusSelection(); // centra y amplía la selección explícitamente
59
59
  atlas.setSelectionNavigation('preserve'); // 'preserve' | 'center' | 'fit'
60
60
  atlas.selectRelation(0); // también acepta el id de una relación
61
+ atlas.getRelationBundle(); // conexiones A↔B que comparten el tubo de la selección
61
62
  atlas.setRelationMode('all'); // 'all' | 'selected' | 'callers' | 'called' | 'none'
62
63
  atlas.setRelationMarker('cone'); // 'cone' por defecto; 'ring' conserva el indicador clásico
64
+ atlas.setVisibleRelationGroups(['electric', 'water']); // null vuelve a mostrar todos
63
65
  atlas.setToolbarVisible(true); // también se puede usar toolbar="on" | "off"
64
66
  atlas.setPanelVisible(true); // también se puede usar panel="on" | "off"
65
67
  atlas.setItemFacing('camera'); // valor por defecto; usa 'model' para conservar la orientación original
@@ -115,7 +117,7 @@ por lo que una aplicación puede adaptar la apariencia sin modificar el bundle.
115
117
  Las propiedades `atlas.theme` y `atlas.styles` son alias prácticos de esta configuración.
116
118
 
117
119
  Eventos disponibles: `lc-ready`, `lc-error`, `lc-warning`, `lc-select`, `lc-model-change`,
118
- `lc-relation-mode`, `lc-relation-marker-change`, `lc-item-facing-change`, `lc-focus-change`, `lc-print-ready`, `lc-print-error`,
120
+ `lc-relation-mode`, `lc-relation-marker-change`, `lc-relation-groups-change`, `lc-item-facing-change`, `lc-focus-change`, `lc-print-ready`, `lc-print-error`,
119
121
  `lc-print-restored` y `lc-disconnect`. `lc-select` usa un detalle discriminado:
120
122
  las entidades incluyen `{ kind: 'entity', id, entity, source }` y las relaciones
121
123
  `{ kind: 'relation', id, index, relation, source }`. Los campos históricos `id`
@@ -157,14 +159,23 @@ La misma funcionalidad puede controlarse explícitamente:
157
159
 
158
160
  ```js
159
161
  const atlas = document.querySelector("liquidcars-atlas");
160
- const frame = atlas.captureFrame(); // canvas 2D con el framebuffer actual
162
+ const transparent = atlas.captureFrame(); // canvas 2D con alfa
163
+ const themed = atlas.captureFrame({ background: "theme" }); // añade el fondo visual del componente
164
+ const white = atlas.captureFrame({ background: "#ffffff" }); // fondo sólido opcional
165
+ const presentation = atlas.captureFrame({ background: "transparent", scale: 2 }); // salida HD
161
166
  atlas.prepareForPrint();
162
167
  atlas.restoreAfterPrint();
163
168
  ```
164
169
 
165
170
  `captureFrame()` usa `WebGLRenderingContext.readPixels()` para funcionar también
166
171
  en navegadores que no permiten copiar directamente un canvas WebGL sin
167
- `preserveDrawingBuffer`. Para evitar que un bloque se divida entre páginas, el
172
+ `preserveDrawingBuffer`. El framebuffer permanece transparente: el fondo de tema
173
+ se compone en el canvas 2D únicamente cuando se solicita y no recibe luces ni
174
+ sombras de la escena. `scale` vuelve a renderizar temporalmente entre 1× y 4×,
175
+ respetando el límite de framebuffer del navegador, y restaura inmediatamente el
176
+ canvas interactivo. Los colores WebGL semitransparentes se convierten de alfa
177
+ premultiplicado a alfa directo para conservar el tono de los contenedores
178
+ abiertos cuando el PNG se coloca sobre un fondo claro. Para evitar que un bloque se divida entre páginas, el
168
179
  componente aplica `break-inside: avoid` durante la impresión.
169
180
 
170
181
  ## Contrato de datos
@@ -179,6 +190,7 @@ componente aplica `break-inside: avoid` durante la impresión.
179
190
  - `p` es la posición local respecto a `parent`; una entidad sin `parent` usa coordenadas de escena.
180
191
  - `s` son dimensiones absolutas locales `[x, y, z]`.
181
192
  - `relations` acepta objetos `{from, to, label, text, url}` o la forma corta `[from, to, label]`. `label` es el título corto de la conexión, `text` su descripción y `url` su documentación externa en el panel de información.
193
+ - `relationGroups` declara capas temáticas `{id, label, color, description}` y cada relación puede referenciar una con `group`. `render.visibleRelationGroups` las filtra sin alterar el modo de relaciones. Las conexiones paralelas visibles comparten automáticamente un portador translúcido, pero cada conductor conserva selección, dirección, marcador e inspector propios.
182
194
  El campo visual opcional `mode` admite `directed` (por defecto),
183
195
  `bidirectional` y `broken`. En modo bidireccional los indicadores animados
184
196
  circulan en ambos sentidos por el mismo tubo; en modo broken los dos tramos
@@ -393,9 +405,10 @@ personalizados, paletas locales, anchors e imágenes declarativas. La
393
405
  versión `0.1.23` añadió desplazamiento lateral de cámara mediante ratón, teclado
394
406
  modificador y gestos táctiles, además de la API pública `panBy()` y `panTo()`.
395
407
  Se conserva la selección contextual de relaciones introducida en `0.1.22`: el usuario puede
396
- seleccionar un tubo directamente, el componente lo realza, muestra sus extremos
397
- y modo en el panel y emite el mismo evento `lc-select` con `kind: 'relation'`.
398
- La API pública añade `selectRelation()`, `selectedRelation` y `selection`, y la
408
+ seleccionar un tubo directamente. Cuando varias conexiones comparten extremos,
409
+ los clics sucesivos recorren sus conductores y el panel enumera el tubo virtual
410
+ completo para permitir una selección precisa. La API pública añade
411
+ `selectRelation()`, `getRelationBundle()`, `selectedRelation` y `selection`, y la
399
412
  selección se conserva durante las mutaciones del modelo siempre que el elemento
400
413
  siga existiendo. Se mantienen las correcciones de geometría, toolbar, etiquetas,
401
414
  paleta externa, edición en caliente y los modos `directed`, `bidirectional` y