@akinon/pz-theme 2.0.142-rc.0 → 2.0.142

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/CHANGELOG.md CHANGED
@@ -1,40 +1,13 @@
1
1
  # @akinon/pz-theme
2
2
 
3
- ## 2.0.142-rc.0
4
-
5
- ### Patch Changes
6
-
7
- - Updated dependencies [86187b1c2]
8
- - Updated dependencies [0cf9ea239]
9
- - Updated dependencies [324f97d55]
10
- - Updated dependencies [51ea06888]
11
- - Updated dependencies
12
- - Updated dependencies [2fea41430]
13
- - Updated dependencies [b55acb768]
14
- - Updated dependencies [760258c1c]
15
- - Updated dependencies [143be2b9d]
16
- - Updated dependencies [7889b08fe]
17
- - Updated dependencies [9f8cd3bc5]
18
- - Updated dependencies [bfafa3f49]
19
- - Updated dependencies [57d7eb305]
20
- - Updated dependencies [d99a6a7d5]
21
- - Updated dependencies [9db81a714]
22
- - Updated dependencies [591e345e1]
23
- - Updated dependencies [4de5303c5]
24
- - Updated dependencies [95b139dc1]
25
- - Updated dependencies [1d00f2d06]
26
- - Updated dependencies [4ac7b2a1e]
27
- - Updated dependencies [e9598c71d]
28
- - Updated dependencies [4998a9631]
29
- - Updated dependencies [804d2bd6c]
30
- - Updated dependencies [3909d3224]
31
- - Updated dependencies [6a3d8a631]
32
- - Updated dependencies [e18836b20]
33
- - Updated dependencies [b1111d7b1]
34
- - Updated dependencies [1595d458e]
35
- - Updated dependencies [dca128112]
36
- - @akinon/next@2.0.142-rc.0
37
- - @akinon/theme-contract@2.0.142-rc.0
3
+ ## 2.0.142
4
+
5
+ ### Patch Changes
6
+
7
+ - e329d28: ZERO-5171: refer to the theme editor repo by its new name, pz-theme-editor
8
+ - Updated dependencies [e329d28]
9
+ - @akinon/theme-contract@2.0.142
10
+ - @akinon/next@2.0.142
38
11
 
39
12
  ## 2.0.141
40
13
 
package/package.json CHANGED
@@ -1,19 +1,19 @@
1
1
  {
2
2
  "name": "@akinon/pz-theme",
3
3
  "description": "Theme package for Project Zero Next — ThemePlaceholder system and theme editor infrastructure",
4
- "version": "2.0.142-rc.0",
4
+ "version": "2.0.142",
5
5
  "license": "MIT",
6
6
  "main": "src/index.ts",
7
7
  "scripts": {
8
8
  "test": "jest"
9
9
  },
10
10
  "peerDependencies": {
11
- "@akinon/next": "2.0.142-rc.0",
11
+ "@akinon/next": "2.0.142",
12
12
  "react": "^18.0.0 || ^19.0.0",
13
13
  "react-dom": "^18.0.0 || ^19.0.0"
14
14
  },
15
15
  "dependencies": {
16
- "@akinon/theme-contract": "2.0.142-rc.0",
16
+ "@akinon/theme-contract": "2.0.142",
17
17
  "clsx": "2.1.1",
18
18
  "lottie-web": "^5.13.0",
19
19
  "react-multi-carousel": "2.8.4",
@@ -21,7 +21,7 @@
21
21
  "zod": "4.4.1"
22
22
  },
23
23
  "devDependencies": {
24
- "@akinon/next": "2.0.142-rc.0",
24
+ "@akinon/next": "2.0.142",
25
25
  "@testing-library/jest-dom": "5.16.4",
26
26
  "@testing-library/react": "16.3.2",
27
27
  "@testing-library/user-event": "14.1.1",
@@ -12,7 +12,7 @@ import path from 'path';
12
12
  * yup, …). Instead we parse the `register('type', …)` calls from source.
13
13
  *
14
14
  * NOTE: this does NOT catch editor<->render drift (a type that exists in the
15
- * pz-dynamic-widget BlockType/SectionType enum but has no renderer here). That
15
+ * pz-theme-editor BlockType/SectionType enum but has no renderer here). That
16
16
  * needs a committed cross-repo manifest and is a separate follow-up.
17
17
  */
18
18
 
@@ -25,7 +25,7 @@
25
25
  * The editor matches these strings exactly and silently drops a name it does
26
26
  * not know, so a rename here narrows the panel back to the baseline instead of
27
27
  * failing anywhere. Change one only together with `StorefrontActionCapability`
28
- * in pz-dynamic-widget.
28
+ * in pz-theme-editor.
29
29
  *
30
30
  * Its own module rather than a constant beside the block that implements it:
31
31
  * the placeholder registry announces this, and it must not have to pull a
@@ -14,7 +14,7 @@ import CarouselItemBlock from '../carousel-item-block';
14
14
 
15
15
  /**
16
16
  * The block exactly as `getDefaultCarouselItemBlockValue()` seeds it in
17
- * pz-dynamic-widget: both properties bucketed per breakpoint, `url` seeded to
17
+ * pz-theme-editor: both properties bucketed per breakpoint, `url` seeded to
18
18
  * `#`, and one image child.
19
19
  */
20
20
  const seededSlide = (over: Record<string, unknown> = {}) => ({
@@ -10,7 +10,7 @@ import IconBlock from '../icon-block';
10
10
 
11
11
  /**
12
12
  * The keys the editor's picker offers with no upload behind them, copied from
13
- * pz-dynamic-widget `src/pages/settings/constants.ts` (`DEFAULT_ICON_CATEGORIES`).
13
+ * pz-theme-editor `src/pages/settings/constants.ts` (`DEFAULT_ICON_CATEGORIES`).
14
14
  * The repos cannot import from each other, so this list is the seam: when the
15
15
  * editor gains a category entry, this test is what says the storefront has
16
16
  * nothing to draw for it.
@@ -954,7 +954,7 @@ describe('ProductGalleryBlock — the states the image frame reports', () => {
954
954
  */
955
955
  const DESCRIPTOR_PATH = path.resolve(
956
956
  __dirname,
957
- '../../../../../../pz-dynamic-widget/src/config/blocks/product-blocks.ts'
957
+ '../../../../../../pz-theme-editor/src/config/blocks/product-blocks.ts'
958
958
  );
959
959
 
960
960
  const declaredStatesFor = (part: string): string[] => {
@@ -3,7 +3,7 @@ import { render } from '@testing-library/react';
3
3
  import SocialIconsListBlock from '../social-icons-list-block';
4
4
 
5
5
  /**
6
- * The block descriptor is pz-dynamic-widget
6
+ * The block descriptor is pz-theme-editor
7
7
  * `src/config/blocks/block-registry.ts` (BlockType.SOCIAL_ICONS_LIST): one
8
8
  * property, `icons`, written by `social-icons-editor.tsx` as
9
9
  * `{icon, link, size?, color?}`, plus one block-level style, `gap`.
@@ -4,7 +4,7 @@ import ValuePropsListBlock from '../value-props-list-block';
4
4
  import { ThemeSettingsProvider } from '../../theme-settings-context';
5
5
 
6
6
  /**
7
- * The block descriptor is pz-dynamic-widget
7
+ * The block descriptor is pz-theme-editor
8
8
  * `src/config/blocks/block-registry.ts` (BlockType.VALUE_PROPS_LIST): one
9
9
  * property, `items`, written by `value-props-editor.tsx` as
10
10
  * `{icon, title, description?}`, plus one block-level style, `gap`.
@@ -1019,7 +1019,7 @@ describe('VideoBlock', () => {
1019
1019
  * The three names the panel writes rules against. A part the renderer does
1020
1020
  * not stamp is a whole group of controls that save and do nothing, so the
1021
1021
  * names are asserted here as well as by the cross-repo parity test — that
1022
- * one is skipped wherever pz-dynamic-widget is not checked out, which is
1022
+ * one is skipped wherever pz-theme-editor is not checked out, which is
1023
1023
  * every CI run.
1024
1024
  */
1025
1025
  describe('a glyph the brand supplied', () => {
@@ -69,7 +69,7 @@ import { renderComposedChildren } from './render-composed-children';
69
69
 
70
70
  /**
71
71
  * Last-resort captions. These MIRROR the editor descriptor defaults in
72
- * pz-dynamic-widget/src/config/blocks/collapsible-block-config.ts
72
+ * pz-theme-editor/src/config/blocks/collapsible-block-config.ts
73
73
  * (`COLLAPSIBLE_TRIGGER_DEFAULTS`), and that repo's collapsible-block.test.ts
74
74
  * pins the two to each other. The authored property always wins; this only
75
75
  * covers JSON written before the property existed, or emitted without it.
@@ -15,7 +15,7 @@ import { IconGlyph, resolveIconSource } from './icon-source';
15
15
 
16
16
  /**
17
17
  * A control that is nothing but an icon: the descriptor
18
- * (pz-dynamic-widget `block-registry.ts`, `BlockType.ICON_BUTTON`) declares
18
+ * (pz-theme-editor `block-registry.ts`, `BlockType.ICON_BUTTON`) declares
19
19
  * exactly two properties — `icon` and `iconSize` — plus the shared ones every
20
20
  * block gets. Deliberately narrower than the plain `icon` block, which also
21
21
  * carries `alt` and position controls; neither exists here and neither is
@@ -13,7 +13,7 @@ import { renderComposedChildren } from './render-composed-children';
13
13
  /**
14
14
  * A set of icons sized together.
15
15
  *
16
- * The descriptor (pz-dynamic-widget `block-registry.ts`,
16
+ * The descriptor (pz-theme-editor `block-registry.ts`,
17
17
  * `BlockType.ICON_GROUP`) declares `properties: []` and a single `size` style,
18
18
  * so everything this block owns is the size of the icons underneath it — the
19
19
  * children are ordinary blocks, rendered through the package's own
@@ -4,7 +4,7 @@ import React from 'react';
4
4
  * The keys the editor's icon picker offers out of the box.
5
5
  *
6
6
  * Source of truth is the editor's `DEFAULT_ICON_CATEGORIES`
7
- * (pz-dynamic-widget `src/pages/settings/constants.ts`), grouped there as
7
+ * (pz-theme-editor `src/pages/settings/constants.ts`), grouped there as
8
8
  * navigation / actions / interface / visibility / miscellaneous. The picker
9
9
  * stores the KEY when the brand has not uploaded its own SVG for it
10
10
  * (`icon-input.tsx` saves the uploaded markup when there is any, and the bare
@@ -119,7 +119,7 @@ const readSize = (value: unknown, fallback: number): number => {
119
119
  };
120
120
 
121
121
  /**
122
- * pz-dynamic-widget's page picker points the designer at a fixed, almost
122
+ * pz-theme-editor's page picker points the designer at a fixed, almost
123
123
  * certainly non-existent order id (`PREVIEW_ORDER_PK`) so the route mounts
124
124
  * without depending on the preview session having a real order — deliberate,
125
125
  * per that file's own comment. The trade-off lands here: without a sample
@@ -11,7 +11,7 @@ import { SOCIAL_GLYPHS, platformLabel } from './social-glyphs';
11
11
 
12
12
  /**
13
13
  * What the editor's social icon panel writes per entry
14
- * (pz-dynamic-widget `src/components/theme-editor/social-icons-editor.tsx`,
14
+ * (pz-theme-editor `src/components/theme-editor/social-icons-editor.tsx`,
15
15
  * `SocialIconItem`). There is no label and no caption here: the panel offers
16
16
  * a platform, a link, a size and a colour, and nothing else.
17
17
  */
@@ -10,7 +10,7 @@ import { useThemeSettingsContext } from '../theme-settings-context';
10
10
 
11
11
  /**
12
12
  * What the editor's value proposition panel writes per entry
13
- * (pz-dynamic-widget `src/components/theme-editor/value-props-editor.tsx`,
13
+ * (pz-theme-editor `src/components/theme-editor/value-props-editor.tsx`,
14
14
  * `ValuePropItem`). The icon is a catalogue KEY — that panel's picker calls
15
15
  * `onSelect(iconKey)` and stores the key even when the brand uploaded its own
16
16
  * mark, which is why the key is resolved rather than used as a src.
@@ -43,7 +43,7 @@ import { isCustomThemeType } from '../types';
43
43
  * asymmetry with slots is the whole design — the merchant opens the row and
44
44
  * gets the `image`/`search-box`/`mini-basket` panel itself.
45
45
  *
46
- * TO REGENERATE, in `pz-dynamic-widget`: ingest a section catalog through
46
+ * TO REGENERATE, in `pz-theme-editor`: ingest a section catalog through
47
47
  * `parseCustomSectionCatalogPayload` + `setCustomSectionCatalog`, add a section
48
48
  * of that type so the insert reducer seeds its regions from
49
49
  * `getCustomSectionRegions(type)`, and log `section.blocks`. The ids are the
@@ -34,11 +34,11 @@ import { isCustomThemeType } from '../types';
34
34
  *
35
35
  * `EDITOR_COMPOSITION` below is therefore not hand-written either. It is the
36
36
  * literal output of the editor's `ensureCustomSlotNodes()` — the function its
37
- * two insert reducers call — captured from pz-dynamic-widget and pasted here
37
+ * two insert reducers call — captured from pz-theme-editor and pasted here
38
38
  * unedited, for a block declaring the same three slots the catalog capture
39
39
  * over there declares.
40
40
  *
41
- * TO REGENERATE, in `pz-dynamic-widget`: ingest a catalog through
41
+ * TO REGENERATE, in `pz-theme-editor`: ingest a catalog through
42
42
  * `parseCustomCatalogPayload` + `setCustomCatalog`, call
43
43
  * `ensureCustomSlotNodes()` on a freshly dropped block of that type, and log
44
44
  * the block. The ids are the only values that differ per run.
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * The control vocabulary a custom block may declare, mirroring the editor's
3
- * `PropertyType` union (`pz-dynamic-widget/src/config/base-config.ts:3-20`).
3
+ * `PropertyType` union (`pz-theme-editor/src/config/base-config.ts:3-20`).
4
4
  *
5
5
  * Closed on purpose, and closed in the same way every comparable product
6
6
  * closes it (Shopify 31, Webflow 9, Puck 11): a brand cannot introduce a
@@ -26,7 +26,7 @@
26
26
  * The editor matches these strings exactly and silently drops one it does not
27
27
  * know, so a rename here narrows the editor back to its baseline instead of
28
28
  * failing anywhere. Change one only together with `StorefrontSignalCapability`
29
- * in pz-dynamic-widget, which has a parity test against this file.
29
+ * in pz-theme-editor, which has a parity test against this file.
30
30
  *
31
31
  * Its own module rather than a constant beside the hook that implements it:
32
32
  * the placeholder registry announces this, and it must not have to pull a
@@ -137,7 +137,7 @@ describe('the `body` qualifier is load-bearing — do not tidy it away', () => {
137
137
 
138
138
  it('keeps the first-paint expression second, wrapped in :is(), after the body stamp', () => {
139
139
  // Literal text for the same reason as above, and for two more. The FIRST
140
- // expression is grepped for by pz-dynamic-widget, so it must stay first and
140
+ // expression is grepped for by pz-theme-editor, so it must stay first and
141
141
  // byte-identical. The `:is()` wrapper looks removable and is not: the two
142
142
  // expressions share one comma-separated rule, and without the forgiving
143
143
  // `:is()` a browser that cannot parse `:has` would drop the body branch
@@ -1,7 +1,7 @@
1
1
  import { generateThemeCSS } from '../index';
2
2
 
3
3
  /**
4
- * The Group descriptor in pz-dynamic-widget gained the box chrome a container
4
+ * The Group descriptor in pz-theme-editor gained the box chrome a container
5
5
  * needs — background colour, border, size, overflow, shadow. That was a
6
6
  * descriptor-only change, and this is why: the group renderer draws
7
7
  * `className="contents"` and styles nothing itself, while `collectBlockCSS`
@@ -178,7 +178,7 @@ const STATE_SELECTORS: Record<string, string[]> = {
178
178
  * ran the effect. `useChromeMode` / `chromeModeAttrs` render the same
179
179
  * attribute on the brand's own chrome element, which IS in the server HTML,
180
180
  * and `body:has(…)` reads it from there. The first expression stays, byte for
181
- * byte — pz-dynamic-widget greps for it, and it is what the designer pin, a
181
+ * byte — pz-theme-editor greps for it, and it is what the designer pin, a
182
182
  * browser without `:has` and hand-written brand CSS all match.
183
183
  *
184
184
  * SAME WEIGHT, so the ladder above holds whichever branch matched. `:is()`