@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 +8 -35
- package/package.json +4 -4
- package/src/__tests__/registry-parity.test.ts +1 -1
- package/src/action-capabilities.ts +1 -1
- package/src/blocks/__tests__/carousel-item-block.test.tsx +1 -1
- package/src/blocks/__tests__/icon-source.test.tsx +1 -1
- package/src/blocks/__tests__/product-gallery-block.test.tsx +1 -1
- package/src/blocks/__tests__/social-icons-list-block.test.tsx +1 -1
- package/src/blocks/__tests__/value-props-list-block.test.tsx +1 -1
- package/src/blocks/__tests__/video-block.test.tsx +1 -1
- package/src/blocks/collapsible-block.tsx +1 -1
- package/src/blocks/icon-button-block.tsx +1 -1
- package/src/blocks/icon-group-block.tsx +1 -1
- package/src/blocks/icon-source.tsx +1 -1
- package/src/blocks/order-detail-block.tsx +1 -1
- package/src/blocks/social-icons-list-block.tsx +1 -1
- package/src/blocks/value-props-list-block.tsx +1 -1
- package/src/custom/__tests__/region-node-wire.test.tsx +1 -1
- package/src/custom/__tests__/slot-node-wire.test.tsx +2 -2
- package/src/custom/property-types.ts +1 -1
- package/src/signal-capabilities.ts +1 -1
- package/src/utils/__tests__/docked-state-styles.test.ts +1 -1
- package/src/utils/__tests__/group-box-chrome.test.ts +1 -1
- package/src/utils/part-styles.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,40 +1,13 @@
|
|
|
1
1
|
# @akinon/pz-theme
|
|
2
2
|
|
|
3
|
-
## 2.0.142
|
|
4
|
-
|
|
5
|
-
### Patch Changes
|
|
6
|
-
|
|
7
|
-
-
|
|
8
|
-
- Updated dependencies [
|
|
9
|
-
-
|
|
10
|
-
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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`
|
package/src/utils/part-styles.ts
CHANGED
|
@@ -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-
|
|
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()`
|