@a2ui/web_core v0.9 basic catalog components register custom elements namespaced by catalog:
a2ui-basic-card, a2ui-basic-icon, a2ui-basic-tabs, and so on.
The Angular v0.9 basic catalog components use selectors namespaced by protocol version:
a2ui-v09-card, a2ui-v09-icon, and so on
(renderers/angular/src/v0_9/catalog/basic/*.component.ts).
Both are defensible on their own terms. Custom element names live in a single global registry and
are claimed first-come, so @a2ui/web_core namespaces on the axis that can actually collide: two
catalogs offering a component with the same name. Angular resolves selectors per module, so there is
no global collision to avoid and the pressure there is telling protocol versions apart.
The cost of leaving it undecided is not that either name is wrong. It is that someone adding a
component to both packages now has two precedents and no rule, and will pick by whichever file they
opened first.
Pick one:
- Document that the two packages namespace on different axes, and why, somewhere a component author
will read before adding a component.
- Converge on a single convention and migrate the package that moves. This is a breaking change to
that package's public surface.
@a2ui/web_corev0.9 basic catalog components register custom elements namespaced by catalog:a2ui-basic-card,a2ui-basic-icon,a2ui-basic-tabs, and so on.The Angular v0.9 basic catalog components use selectors namespaced by protocol version:
a2ui-v09-card,a2ui-v09-icon, and so on(
renderers/angular/src/v0_9/catalog/basic/*.component.ts).Both are defensible on their own terms. Custom element names live in a single global registry and
are claimed first-come, so
@a2ui/web_corenamespaces on the axis that can actually collide: twocatalogs offering a component with the same name. Angular resolves selectors per module, so there is
no global collision to avoid and the pressure there is telling protocol versions apart.
The cost of leaving it undecided is not that either name is wrong. It is that someone adding a
component to both packages now has two precedents and no rule, and will pick by whichever file they
opened first.
Pick one:
will read before adding a component.
that package's public surface.