@smartsoft001-mobilems/claude-plugins 2.121.0 → 2.123.0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smartsoft001-mobilems/claude-plugins",
3
- "version": "2.121.0",
3
+ "version": "2.123.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "mobilems",
3
3
  "description": "MobilEMS-specific Claude Code skills (MuzaCMS / MobileMS indexer API)",
4
- "version": "2.121.0"
4
+ "version": "2.123.0"
5
5
  }
@@ -35,12 +35,13 @@ list — re-implementing framework code is a defect, not a shortcut:
35
35
  2. [`packages/objects/README.md`](https://github.com/smartsoft001/mobilems-framework/blob/main/packages/objects/README.md) — this module's package catalog
36
36
  3. `libs/shared/angular/README.md` — the app's own shared lib (built by `mobilems-project-init`)
37
37
 
38
- | Do not hand-roll | Use |
39
- | ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ |
40
- | a masonry grid (`new Masonry(...)`, per-page masonry JS/CSS) | `<smart-mobilems-masonry-grid>` (`MasonryGridComponent`) with a `#masonryContentTpl`; the `Masonry` provider in step 3 only feeds it |
41
- | filter state / hand-built `query` arrays | `FiltersBaseComponent<MsObject>` + its `FiltersContext` accessors (`searchText`, `keywords`, `page`, `sort`, `onlyImage`, …) |
42
- | list/detail plumbing (facade wiring, id-from-route, PDF) | the `ObjectsListComponent` / `ObjectsItemComponent` base classes |
43
- | media URLs, meta/OG tags, filter dictionaries, modals, WCAG | `FileUrlService`, `SeoService`/`MetaService`, `DictionaryService`, `ModalService`, `WcagService` |
38
+ | Do not hand-roll | Use |
39
+ | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
40
+ | a masonry grid (`new Masonry(...)`, per-page masonry JS/CSS) | `<smart-mobilems-masonry-grid>` (`MasonryGridComponent`) with a `#masonryContentTpl`; the `Masonry` provider in step 3 only feeds it |
41
+ | filter state / hand-built `query` arrays | `FiltersBaseComponent<MsObject>` + its `FiltersContext` accessors (`searchText`, `keywords`, `page`, `sort`, `onlyImage`, …) |
42
+ | list page logic (first read, persistence, SSR read, read guard, load-more, masonry lifecycle, list SEO) | `ObjectsCatalogBaseComponent` (`pages/list` extends it; the app keeps its own markup and `sortOptions` over `isNewType`) |
43
+ | detail plumbing (facade wiring, id-from-route, PDF) | the `ObjectsItemComponent` base class (detail page only) |
44
+ | media URLs, meta/OG tags, filter dictionaries, modals, WCAG | `FileUrlService`, `SeoService`/`MetaService`, `DictionaryService`, `ModalService`, `WcagService` |
44
45
 
45
46
  Anything the framework genuinely lacks goes into `libs/shared/angular` **once** (and into its
46
47
  README) — never a per-module copy. `scripts/verify-module.sh` fails the run on hand-rolled masonry.
@@ -26,6 +26,10 @@ libs/museum-objects/
26
26
  └── services/ # objects.service.ts + index
27
27
  ```
28
28
 
29
+ `pages/list` extends `ObjectsCatalogBaseComponent` (logic only: first read, persistence, SSR read, read guard,
30
+ load-more, masonry lifecycle, list SEO) and keeps the app's own markup and `sortOptions` over `isNewType`;
31
+ `pages/item` extends `ObjectsItemComponent`.
32
+
29
33
  ## Domain entity (verbatim, thread nothing — pure types)
30
34
 
31
35
  ```ts
@@ -107,6 +107,21 @@ else
107
107
  pass "no filters component in this module"
108
108
  fi
109
109
 
110
+ # 5. list page logic lives in the framework catalog base — the page only adds markup
111
+ LISTF="$LIBDIR/pages/list/list.component.ts"
112
+ if [ -f "$LISTF" ]; then
113
+ if grep -qE "extends[[:space:]]+ObjectsCatalogBaseComponent" "$LISTF"; then
114
+ pass "pages/list extends ObjectsCatalogBaseComponent"
115
+ else
116
+ bad "pages/list/list.component.ts does not extend ObjectsCatalogBaseComponent — list logic belongs to the framework base ($LISTF)"
117
+ fi
118
+ if grep -qE "initSlides|getPage\('home'" "$LISTF"; then
119
+ bad "pages/list/list.component.ts contains initSlides or getPage('home' — home-page logic does not belong in a list page ($LISTF)"
120
+ else
121
+ pass "no home-page logic in the list page"
122
+ fi
123
+ fi
124
+
110
125
  echo "== Translations (REF_ROOT=${REF_ROOT:-unset}) =="
111
126
  # Groups: present in pl+en, no dead references, complete vs the reference repo
112
127
  # (export REF_ROOT=<reference-repo-root> to enable the completeness diff).