@wordpress/boot 0.3.0 → 0.3.1-next.738bb1424.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.
Files changed (76) hide show
  1. package/build-module/components/app/index.js +3 -3
  2. package/build-module/components/app/router.js +68 -67
  3. package/build-module/components/app/router.js.map +2 -2
  4. package/build-module/components/app/use-route-title.js +50 -0
  5. package/build-module/components/app/use-route-title.js.map +7 -0
  6. package/build-module/components/canvas/back-button.js +8 -4
  7. package/build-module/components/canvas/back-button.js.map +2 -2
  8. package/build-module/components/canvas/index.js +1 -1
  9. package/build-module/components/canvas-renderer/index.js +35 -0
  10. package/build-module/components/canvas-renderer/index.js.map +7 -0
  11. package/build-module/components/navigation/drilldown-item/index.js +1 -1
  12. package/build-module/components/navigation/dropdown-item/index.js +3 -3
  13. package/build-module/components/navigation/index.js +6 -6
  14. package/build-module/components/navigation/navigation-item/index.js +4 -4
  15. package/build-module/components/navigation/navigation-item/index.js.map +1 -1
  16. package/build-module/components/navigation/router-link-item.js +1 -1
  17. package/build-module/components/navigation/use-sidebar-parent.js +3 -3
  18. package/build-module/components/root/index.js +276 -21
  19. package/build-module/components/root/index.js.map +2 -2
  20. package/build-module/components/root/single-page.js +181 -19
  21. package/build-module/components/root/single-page.js.map +2 -2
  22. package/build-module/components/save-button/index.js +1 -1
  23. package/build-module/components/save-panel/index.js +1 -1
  24. package/build-module/components/sidebar/index.js +3 -3
  25. package/build-module/components/site-hub/index.js +30 -12
  26. package/build-module/components/site-hub/index.js.map +2 -2
  27. package/build-module/components/site-icon/index.js +2 -2
  28. package/build-module/components/site-icon/index.js.map +1 -1
  29. package/build-module/components/site-icon-link/index.js +5 -5
  30. package/build-module/components/site-icon-link/index.js.map +1 -1
  31. package/build-module/components/user-theme-provider/index.js +33 -0
  32. package/build-module/components/user-theme-provider/index.js.map +7 -0
  33. package/build-module/index.js +298 -75
  34. package/build-module/index.js.map +4 -4
  35. package/build-module/store/index.js +3 -3
  36. package/build-style/style-rtl.css +95 -75
  37. package/build-style/style.css +95 -75
  38. package/build-style/view-transitions-rtl.css +199 -0
  39. package/build-style/view-transitions.css +199 -0
  40. package/build-types/components/app/router.d.ts.map +1 -1
  41. package/build-types/components/app/use-route-title.d.ts +8 -0
  42. package/build-types/components/app/use-route-title.d.ts.map +1 -0
  43. package/build-types/components/canvas-renderer/index.d.ts +27 -0
  44. package/build-types/components/canvas-renderer/index.d.ts.map +1 -0
  45. package/build-types/components/root/index.d.ts.map +1 -1
  46. package/build-types/components/root/single-page.d.ts.map +1 -1
  47. package/build-types/components/site-hub/index.d.ts.map +1 -1
  48. package/build-types/components/user-theme-provider/index.d.ts +6 -0
  49. package/build-types/components/user-theme-provider/index.d.ts.map +1 -0
  50. package/build-types/index.d.ts +1 -0
  51. package/build-types/index.d.ts.map +1 -1
  52. package/build-types/store/index.d.ts +1 -1
  53. package/build-types/store/index.d.ts.map +1 -1
  54. package/build-types/store/types.d.ts +64 -7
  55. package/build-types/store/types.d.ts.map +1 -1
  56. package/package.json +30 -21
  57. package/src/components/app/router.tsx +93 -111
  58. package/src/components/app/use-route-title.ts +80 -0
  59. package/src/components/canvas/back-button.scss +7 -2
  60. package/src/components/canvas-renderer/index.tsx +72 -0
  61. package/src/components/navigation/navigation-item/style.scss +1 -1
  62. package/src/components/root/index.tsx +154 -27
  63. package/src/components/root/single-page.tsx +24 -10
  64. package/src/components/root/style.scss +123 -4
  65. package/src/components/site-hub/index.tsx +6 -1
  66. package/src/components/site-hub/style.scss +23 -8
  67. package/src/components/site-icon/style.scss +1 -1
  68. package/src/components/site-icon-link/style.scss +2 -2
  69. package/src/components/user-theme-provider/index.tsx +35 -0
  70. package/src/components/user-theme-provider/test/index.test.ts +11 -0
  71. package/src/index.tsx +1 -0
  72. package/src/store/types.ts +71 -7
  73. package/src/style.scss +19 -33
  74. package/src/view-transitions.scss +239 -0
  75. package/tsconfig.json +0 -26
  76. package/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1,199 @@
1
+ /**
2
+ * Colors
3
+ */
4
+ @media (max-width: 782px) {
5
+ * {
6
+ view-transition-name: none !important;
7
+ }
8
+ }
9
+ ::view-transition-old(root),
10
+ ::view-transition-new(root) {
11
+ animation-duration: 250ms;
12
+ }
13
+
14
+ @media not (prefers-reduced-motion: reduce) {
15
+ .boot-layout__canvas .interface-interface-skeleton__header {
16
+ view-transition-name: boot--canvas-header;
17
+ }
18
+ .boot-layout__canvas .interface-interface-skeleton__sidebar {
19
+ view-transition-name: boot--canvas-sidebar;
20
+ }
21
+ .boot-layout.has-full-canvas .boot-layout__canvas .boot-site-icon-link,
22
+ .boot-layout:not(.has-full-canvas) .boot-site-hub .boot-site-icon-link {
23
+ view-transition-name: boot--site-icon-link;
24
+ }
25
+ .boot-layout__stage {
26
+ view-transition-name: boot--stage;
27
+ }
28
+ .boot-layout__inspector {
29
+ view-transition-name: boot--inspector;
30
+ }
31
+ .boot-layout__canvas:not(.is-full-canvas),
32
+ .boot-layout__canvas.is-full-canvas .interface-interface-skeleton__content {
33
+ view-transition-name: boot--canvas;
34
+ }
35
+ @supports (-webkit-hyphens: none) and (not (-moz-appearance: none)) {
36
+ .boot-layout__stage {
37
+ view-transition-name: boot-safari--stage;
38
+ }
39
+ .boot-layout__inspector {
40
+ view-transition-name: boot-safari--inspector;
41
+ }
42
+ .boot-layout__canvas:not(.is-full-canvas),
43
+ .boot-layout__canvas.is-full-canvas .interface-interface-skeleton__content {
44
+ view-transition-name: boot-safari--canvas;
45
+ }
46
+ }
47
+ .components-popover:first-of-type {
48
+ view-transition-name: boot--components-popover;
49
+ }
50
+ }
51
+ ::view-transition-group(boot--canvas-header),
52
+ ::view-transition-group(boot--canvas-sidebar),
53
+ ::view-transition-group(boot-safari--canvas),
54
+ ::view-transition-group(boot--canvas) {
55
+ z-index: 1;
56
+ }
57
+
58
+ ::view-transition-group(boot--site-icon-link) {
59
+ z-index: 2;
60
+ }
61
+
62
+ ::view-transition-new(boot--site-icon-link),
63
+ ::view-transition-old(boot--site-icon-link) {
64
+ animation: none;
65
+ }
66
+
67
+ ::view-transition-new(boot-safari--canvas),
68
+ ::view-transition-old(boot-safari--canvas),
69
+ ::view-transition-new(boot-safari--stage),
70
+ ::view-transition-old(boot-safari--stage),
71
+ ::view-transition-old(boot-safari--inspector),
72
+ ::view-transition-new(boot-safari--inspector) {
73
+ width: auto;
74
+ }
75
+
76
+ ::view-transition-new(boot--canvas),
77
+ ::view-transition-old(boot--canvas),
78
+ ::view-transition-new(boot--stage),
79
+ ::view-transition-old(boot--stage),
80
+ ::view-transition-new(boot--inspector),
81
+ ::view-transition-old(boot--inspector) {
82
+ background: #fff;
83
+ border-radius: 8px;
84
+ width: 100%;
85
+ height: 100%;
86
+ object-fit: none;
87
+ object-position: right top;
88
+ overflow: hidden;
89
+ }
90
+
91
+ ::view-transition-new(boot--canvas),
92
+ ::view-transition-old(boot--canvas) {
93
+ object-position: center top;
94
+ }
95
+
96
+ ::view-transition-old(boot-safari--inspector):only-child,
97
+ ::view-transition-old(boot--inspector):only-child,
98
+ ::view-transition-old(boot-safari--stage):only-child,
99
+ ::view-transition-old(boot--stage):only-child {
100
+ animation-name: zoomOut;
101
+ will-change: transform, opacity;
102
+ }
103
+
104
+ ::view-transition-new(boot-safari--inspector):only-child,
105
+ ::view-transition-new(boot--inspector):only-child,
106
+ ::view-transition-new(boot-safari--stage):only-child,
107
+ ::view-transition-new(boot--stage):only-child {
108
+ animation-name: zoomIn;
109
+ will-change: transform, opacity;
110
+ }
111
+
112
+ @keyframes zoomOut {
113
+ from {
114
+ transform: scale(1);
115
+ opacity: 1;
116
+ }
117
+ to {
118
+ transform: scale(0.9);
119
+ opacity: 0;
120
+ }
121
+ }
122
+ @keyframes zoomIn {
123
+ from {
124
+ transform: scale(0.95);
125
+ opacity: 0;
126
+ }
127
+ to {
128
+ transform: scale(1);
129
+ opacity: 1;
130
+ }
131
+ }
132
+ ::view-transition-new(boot-safari--canvas):only-child,
133
+ ::view-transition-new(boot--canvas):only-child {
134
+ animation-name: slideFromRight;
135
+ will-change: transform;
136
+ }
137
+
138
+ ::view-transition-old(boot-safari--canvas):only-child,
139
+ ::view-transition-old(boot--canvas):only-child {
140
+ animation-name: slideToRight;
141
+ will-change: transform;
142
+ }
143
+
144
+ @keyframes slideFromRight {
145
+ from {
146
+ transform: translateX(-100vw);
147
+ }
148
+ to {
149
+ transform: translateX(0);
150
+ }
151
+ }
152
+ @keyframes slideToRight {
153
+ from {
154
+ transform: translateX(0);
155
+ }
156
+ to {
157
+ transform: translateX(-100vw);
158
+ }
159
+ }
160
+ ::view-transition-new(boot--canvas-header):only-child {
161
+ animation-name: slideHeaderFromTop;
162
+ will-change: transform;
163
+ }
164
+
165
+ ::view-transition-old(boot--canvas-header):only-child {
166
+ animation-name: slideHeaderToTop;
167
+ will-change: transform;
168
+ }
169
+
170
+ @keyframes slideHeaderFromTop {
171
+ from {
172
+ transform: translateY(-100%);
173
+ }
174
+ }
175
+ @keyframes slideHeaderToTop {
176
+ to {
177
+ transform: translateY(-100%);
178
+ }
179
+ }
180
+ ::view-transition-new(boot--canvas-sidebar):only-child {
181
+ animation-name: slideSidebarFromRight;
182
+ will-change: transform;
183
+ }
184
+
185
+ ::view-transition-old(boot--canvas-sidebar):only-child {
186
+ animation-name: slideSidebarToRight;
187
+ will-change: transform;
188
+ }
189
+
190
+ @keyframes slideSidebarFromRight {
191
+ from {
192
+ transform: translateX(-100%);
193
+ }
194
+ }
195
+ @keyframes slideSidebarToRight {
196
+ to {
197
+ transform: translateX(-100%);
198
+ }
199
+ }
@@ -0,0 +1,199 @@
1
+ /**
2
+ * Colors
3
+ */
4
+ @media (max-width: 782px) {
5
+ * {
6
+ view-transition-name: none !important;
7
+ }
8
+ }
9
+ ::view-transition-old(root),
10
+ ::view-transition-new(root) {
11
+ animation-duration: 250ms;
12
+ }
13
+
14
+ @media not (prefers-reduced-motion: reduce) {
15
+ .boot-layout__canvas .interface-interface-skeleton__header {
16
+ view-transition-name: boot--canvas-header;
17
+ }
18
+ .boot-layout__canvas .interface-interface-skeleton__sidebar {
19
+ view-transition-name: boot--canvas-sidebar;
20
+ }
21
+ .boot-layout.has-full-canvas .boot-layout__canvas .boot-site-icon-link,
22
+ .boot-layout:not(.has-full-canvas) .boot-site-hub .boot-site-icon-link {
23
+ view-transition-name: boot--site-icon-link;
24
+ }
25
+ .boot-layout__stage {
26
+ view-transition-name: boot--stage;
27
+ }
28
+ .boot-layout__inspector {
29
+ view-transition-name: boot--inspector;
30
+ }
31
+ .boot-layout__canvas:not(.is-full-canvas),
32
+ .boot-layout__canvas.is-full-canvas .interface-interface-skeleton__content {
33
+ view-transition-name: boot--canvas;
34
+ }
35
+ @supports (-webkit-hyphens: none) and (not (-moz-appearance: none)) {
36
+ .boot-layout__stage {
37
+ view-transition-name: boot-safari--stage;
38
+ }
39
+ .boot-layout__inspector {
40
+ view-transition-name: boot-safari--inspector;
41
+ }
42
+ .boot-layout__canvas:not(.is-full-canvas),
43
+ .boot-layout__canvas.is-full-canvas .interface-interface-skeleton__content {
44
+ view-transition-name: boot-safari--canvas;
45
+ }
46
+ }
47
+ .components-popover:first-of-type {
48
+ view-transition-name: boot--components-popover;
49
+ }
50
+ }
51
+ ::view-transition-group(boot--canvas-header),
52
+ ::view-transition-group(boot--canvas-sidebar),
53
+ ::view-transition-group(boot-safari--canvas),
54
+ ::view-transition-group(boot--canvas) {
55
+ z-index: 1;
56
+ }
57
+
58
+ ::view-transition-group(boot--site-icon-link) {
59
+ z-index: 2;
60
+ }
61
+
62
+ ::view-transition-new(boot--site-icon-link),
63
+ ::view-transition-old(boot--site-icon-link) {
64
+ animation: none;
65
+ }
66
+
67
+ ::view-transition-new(boot-safari--canvas),
68
+ ::view-transition-old(boot-safari--canvas),
69
+ ::view-transition-new(boot-safari--stage),
70
+ ::view-transition-old(boot-safari--stage),
71
+ ::view-transition-old(boot-safari--inspector),
72
+ ::view-transition-new(boot-safari--inspector) {
73
+ width: auto;
74
+ }
75
+
76
+ ::view-transition-new(boot--canvas),
77
+ ::view-transition-old(boot--canvas),
78
+ ::view-transition-new(boot--stage),
79
+ ::view-transition-old(boot--stage),
80
+ ::view-transition-new(boot--inspector),
81
+ ::view-transition-old(boot--inspector) {
82
+ background: #fff;
83
+ border-radius: 8px;
84
+ width: 100%;
85
+ height: 100%;
86
+ object-fit: none;
87
+ object-position: left top;
88
+ overflow: hidden;
89
+ }
90
+
91
+ ::view-transition-new(boot--canvas),
92
+ ::view-transition-old(boot--canvas) {
93
+ object-position: center top;
94
+ }
95
+
96
+ ::view-transition-old(boot-safari--inspector):only-child,
97
+ ::view-transition-old(boot--inspector):only-child,
98
+ ::view-transition-old(boot-safari--stage):only-child,
99
+ ::view-transition-old(boot--stage):only-child {
100
+ animation-name: zoomOut;
101
+ will-change: transform, opacity;
102
+ }
103
+
104
+ ::view-transition-new(boot-safari--inspector):only-child,
105
+ ::view-transition-new(boot--inspector):only-child,
106
+ ::view-transition-new(boot-safari--stage):only-child,
107
+ ::view-transition-new(boot--stage):only-child {
108
+ animation-name: zoomIn;
109
+ will-change: transform, opacity;
110
+ }
111
+
112
+ @keyframes zoomOut {
113
+ from {
114
+ transform: scale(1);
115
+ opacity: 1;
116
+ }
117
+ to {
118
+ transform: scale(0.9);
119
+ opacity: 0;
120
+ }
121
+ }
122
+ @keyframes zoomIn {
123
+ from {
124
+ transform: scale(0.95);
125
+ opacity: 0;
126
+ }
127
+ to {
128
+ transform: scale(1);
129
+ opacity: 1;
130
+ }
131
+ }
132
+ ::view-transition-new(boot-safari--canvas):only-child,
133
+ ::view-transition-new(boot--canvas):only-child {
134
+ animation-name: slideFromRight;
135
+ will-change: transform;
136
+ }
137
+
138
+ ::view-transition-old(boot-safari--canvas):only-child,
139
+ ::view-transition-old(boot--canvas):only-child {
140
+ animation-name: slideToRight;
141
+ will-change: transform;
142
+ }
143
+
144
+ @keyframes slideFromRight {
145
+ from {
146
+ transform: translateX(100vw);
147
+ }
148
+ to {
149
+ transform: translateX(0);
150
+ }
151
+ }
152
+ @keyframes slideToRight {
153
+ from {
154
+ transform: translateX(0);
155
+ }
156
+ to {
157
+ transform: translateX(100vw);
158
+ }
159
+ }
160
+ ::view-transition-new(boot--canvas-header):only-child {
161
+ animation-name: slideHeaderFromTop;
162
+ will-change: transform;
163
+ }
164
+
165
+ ::view-transition-old(boot--canvas-header):only-child {
166
+ animation-name: slideHeaderToTop;
167
+ will-change: transform;
168
+ }
169
+
170
+ @keyframes slideHeaderFromTop {
171
+ from {
172
+ transform: translateY(-100%);
173
+ }
174
+ }
175
+ @keyframes slideHeaderToTop {
176
+ to {
177
+ transform: translateY(-100%);
178
+ }
179
+ }
180
+ ::view-transition-new(boot--canvas-sidebar):only-child {
181
+ animation-name: slideSidebarFromRight;
182
+ will-change: transform;
183
+ }
184
+
185
+ ::view-transition-old(boot--canvas-sidebar):only-child {
186
+ animation-name: slideSidebarToRight;
187
+ will-change: transform;
188
+ }
189
+
190
+ @keyframes slideSidebarFromRight {
191
+ from {
192
+ transform: translateX(100%);
193
+ }
194
+ }
195
+ @keyframes slideSidebarToRight {
196
+ to {
197
+ transform: translateX(100%);
198
+ }
199
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../src/components/app/router.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAiB3C,OAAO,KAAK,EAAc,KAAK,EAAsB,MAAM,mBAAmB,CAAC;AAgM/E,UAAU,WAAW;IACpB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,aAAa,CAAC,EAAE,aAAa,CAAC;CAC9B;AAED,MAAM,CAAC,OAAO,UAAU,MAAM,CAAE,EAC/B,MAAM,EACN,aAAoB,GACpB,EAAE,WAAW,+BAiCb"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../src/components/app/router.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAmB3C,OAAO,KAAK,EAAE,KAAK,EAAmC,MAAM,mBAAmB,CAAC;AA4KhF,UAAU,WAAW;IACpB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,aAAa,CAAC,EAAE,aAAa,CAAC;CAC9B;AAED,MAAM,CAAC,OAAO,UAAU,MAAM,CAAE,EAC/B,MAAM,EACN,aAAoB,GACpB,EAAE,WAAW,+BAiCb"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Hook that manages document title updates based on route changes.
3
+ * Formats titles with WordPress conventions and announces them to screen readers.
4
+ *
5
+ * This hook should be called from the Root component to ensure it runs on every route.
6
+ */
7
+ export default function useRouteTitle(): void;
8
+ //# sourceMappingURL=use-route-title.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-route-title.d.ts","sourceRoot":"","sources":["../../../src/components/app/use-route-title.ts"],"names":[],"mappings":"AAkBA;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,SAuDpC"}
@@ -0,0 +1,27 @@
1
+ import type { CanvasData } from '../../store/types';
2
+ interface CanvasRendererProps {
3
+ canvas: CanvasData | null | undefined;
4
+ routeContentModule?: string;
5
+ }
6
+ /**
7
+ * CanvasRenderer handles rendering of both default and custom canvas components.
8
+ * The logic here would have been way simpler if we just render the canvas within
9
+ * the RouteComponent like the other surfaces.
10
+ * The issue is that doing so forces the canvas to remount on every route change,
11
+ * which is not desirable for smooth transitions.
12
+ *
13
+ * - When canvas is undefined: No canvas is rendered
14
+ * - When canvas is null: Loads and renders custom canvas from contentModulePath
15
+ * - When canvas is CanvasData: Renders default Canvas component with editor
16
+ *
17
+ * This component is designed to be rendered at the Root level to prevent
18
+ * remounting when navigating between routes.
19
+ *
20
+ * @param props Component props
21
+ * @param props.canvas Canvas data from route loader
22
+ * @param props.routeContentModule Path to content module for custom canvas
23
+ * @return Canvas renderer
24
+ */
25
+ export default function CanvasRenderer({ canvas, routeContentModule, }: CanvasRendererProps): import("react").JSX.Element | null;
26
+ export {};
27
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/canvas-renderer/index.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,UAAU,mBAAmB;IAC5B,MAAM,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,CAAC;IACtC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAE,EACvC,MAAM,EACN,kBAAkB,GAClB,EAAE,mBAAmB,sCAiCrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/root/index.tsx"],"names":[],"mappings":"AAqBA,OAAO,cAAc,CAAC;AAKtB,MAAM,CAAC,OAAO,UAAU,IAAI,gCAqC3B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/root/index.tsx"],"names":[],"mappings":"AAiCA,OAAO,cAAc,CAAC;AAKtB,MAAM,CAAC,OAAO,UAAU,IAAI,gCAwJ3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"single-page.d.ts","sourceRoot":"","sources":["../../../src/components/root/single-page.tsx"],"names":[],"mappings":"AAoBA,OAAO,cAAc,CAAC;AAKtB;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,gCAgCrC"}
1
+ {"version":3,"file":"single-page.d.ts","sourceRoot":"","sources":["../../../src/components/root/single-page.tsx"],"names":[],"mappings":"AAoBA,OAAO,cAAc,CAAC;AAMtB;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,gCA6CrC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/site-hub/index.tsx"],"names":[],"mappings":"AAwBA,OAAO,cAAc,CAAC;AAEtB,iBAAS,OAAO,gCAsCf;AAED,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/site-hub/index.tsx"],"names":[],"mappings":"AAwBA,OAAO,cAAc,CAAC;AAEtB,iBAAS,OAAO,gCA2Cf;AAED,eAAe,OAAO,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { type ThemeProvider as ThemeProviderType } from '@wordpress/theme';
2
+ declare const ThemeProvider: typeof ThemeProviderType;
3
+ export declare function getAdminThemePrimaryColor(): string | undefined;
4
+ export declare function UserThemeProvider({ color, ...restProps }: React.ComponentProps<typeof ThemeProvider>): import("react").JSX.Element;
5
+ export {};
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/user-theme-provider/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,aAAa,IAAI,iBAAiB,EAEvC,MAAM,kBAAkB,CAAC;AAG1B,QAAA,MAAM,aAAa,EAAE,OAAO,iBACa,CAAC;AAa1C,wBAAgB,yBAAyB,IAAI,MAAM,GAAG,SAAS,CAK9D;AAED,wBAAgB,iBAAiB,CAAE,EAClC,KAAK,EACL,GAAG,SAAS,EACZ,EAAE,KAAK,CAAC,cAAc,CAAE,OAAO,aAAa,CAAE,+BAI9C"}
@@ -2,6 +2,7 @@
2
2
  * Internal dependencies
3
3
  */
4
4
  import './style.scss';
5
+ import './view-transitions.scss';
5
6
  export { init, initSinglePage } from './components/app';
6
7
  export { store } from './store';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,cAAc,CAAC;AACtB,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,cAAc,CAAC;AACtB,OAAO,yBAAyB,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import * as actions from './actions';
2
2
  import * as selectors from './selectors';
3
3
  declare const STORE_NAME = "wordpress/boot";
4
- export declare const store: import("@wordpress/data/build-types/types").StoreDescriptor<import("@wordpress/data/build-types/types").ReduxStoreConfig<unknown, typeof actions, typeof selectors>>;
4
+ export declare const store: import("@wordpress/data").StoreDescriptor<import("@wordpress/data").ReduxStoreConfig<unknown, typeof actions, typeof selectors>>;
5
5
  export { STORE_NAME };
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AAEzC,QAAA,MAAM,UAAU,mBAAmB,CAAC;AAEpC,eAAO,MAAM,KAAK,sKAIf,CAAC;AAIJ,OAAO,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AAEzC,QAAA,MAAM,UAAU,mBAAmB,CAAC;AAEpC,eAAO,MAAM,KAAK,kIAIf,CAAC;AAIJ,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -55,6 +55,68 @@ export interface CanvasData {
55
55
  */
56
56
  editLink?: string;
57
57
  }
58
+ /**
59
+ * Route lifecycle configuration exported from route_module.
60
+ * The module should export a named `route` object with these optional functions.
61
+ */
62
+ export interface RouteConfig {
63
+ /**
64
+ * Pre-navigation hook for authentication, validation, or redirects.
65
+ * Called before the route is loaded.
66
+ */
67
+ beforeLoad?: (context: RouteLoaderContext) => void | Promise<void>;
68
+ /**
69
+ * Data preloading function.
70
+ * Called when the route is being loaded.
71
+ */
72
+ loader?: (context: RouteLoaderContext) => Promise<unknown>;
73
+ /**
74
+ * Function that returns canvas data for rendering.
75
+ * - Returns CanvasData to use default editor canvas
76
+ * - Returns null to use custom canvas component from content_module
77
+ * - Returns undefined to show no canvas
78
+ */
79
+ canvas?: (context: RouteLoaderContext) => Promise<CanvasData | null | undefined>;
80
+ /**
81
+ * Function that determines whether to show the inspector panel.
82
+ * When not defined, defaults to true (always show inspector if component exists).
83
+ * When it returns false, the inspector is hidden even if an inspector component is exported.
84
+ *
85
+ * @example
86
+ * ```tsx
87
+ * export const route = {
88
+ * inspector: ({ search }) => {
89
+ * // Only show inspector when items are selected
90
+ * return search.selectedIds?.length > 0;
91
+ * },
92
+ * };
93
+ * ```
94
+ */
95
+ inspector?: (context: RouteLoaderContext) => boolean | Promise<boolean>;
96
+ /**
97
+ * Function that returns the document title for the route.
98
+ * The returned title will be formatted as: "{title} ‹ {siteTitle} — WordPress"
99
+ * and announced to screen readers for accessibility.
100
+ *
101
+ * @param context Route context with params and search
102
+ * @return The document title string or a Promise resolving to a string
103
+ *
104
+ * @example
105
+ * ```tsx
106
+ * export const route = {
107
+ * title: async ({ params }) => {
108
+ * const post = await resolveSelect(coreStore).getEntityRecord(
109
+ * 'postType',
110
+ * params.type,
111
+ * params.id
112
+ * );
113
+ * return post?.title?.rendered || 'Edit Post';
114
+ * },
115
+ * };
116
+ * ```
117
+ */
118
+ title?: (context: RouteLoaderContext) => string | Promise<string>;
119
+ }
58
120
  /**
59
121
  * Route configuration interface.
60
122
  * Routes specify content_module for surfaces and optionally route_module for lifecycle functions.
@@ -75,13 +137,8 @@ export interface Route {
75
137
  content_module?: string;
76
138
  /**
77
139
  * Module path for route lifecycle functions.
78
- * The module should export a named export `route` containing:
79
- * - beforeLoad?: Pre-navigation hook (authentication, validation, redirects)
80
- * - loader?: Data preloading function
81
- * - canvas?: Function that returns canvas data for rendering
82
- * - Returns CanvasData to use default editor canvas
83
- * - Returns null to use custom canvas component from content_module
84
- * - Returns undefined to show no canvas
140
+ * The module should export a named `route` object implementing RouteConfig.
141
+ * @see RouteConfig for available lifecycle functions.
85
142
  */
86
143
  route_module?: string;
87
144
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/store/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtD;;;;;;GAMG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC;AAExD,MAAM,WAAW,QAAQ;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC;CACvC;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC7B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,SAAS,CAAC,EAAE,aAAa,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,MAAM,EAAE,MAAM,CAAE,MAAM,EAAE,MAAM,CAAE,CAAC;IACjC,MAAM,EAAE,MAAM,CAAE,MAAM,EAAE,OAAO,CAAE,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,KAAK;IACrB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,KAAK;IACrB,SAAS,EAAE,MAAM,CAAE,MAAM,EAAE,QAAQ,CAAE,CAAC;IACtC,MAAM,EAAE,KAAK,EAAE,CAAC;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/store/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtD;;;;;;GAMG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC;AAExD,MAAM,WAAW,QAAQ;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC;CACvC;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC7B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,SAAS,CAAC,EAAE,aAAa,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,MAAM,EAAE,MAAM,CAAE,MAAM,EAAE,MAAM,CAAE,CAAC;IACjC,MAAM,EAAE,MAAM,CAAE,MAAM,EAAE,OAAO,CAAE,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IAC1B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC3B;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAE,OAAO,EAAE,kBAAkB,KAAM,IAAI,GAAG,OAAO,CAAE,IAAI,CAAE,CAAC;IAEvE;;;OAGG;IACH,MAAM,CAAC,EAAE,CAAE,OAAO,EAAE,kBAAkB,KAAM,OAAO,CAAE,OAAO,CAAE,CAAC;IAE/D;;;;;OAKG;IACH,MAAM,CAAC,EAAE,CACR,OAAO,EAAE,kBAAkB,KACvB,OAAO,CAAE,UAAU,GAAG,IAAI,GAAG,SAAS,CAAE,CAAC;IAE9C;;;;;;;;;;;;;;OAcG;IACH,SAAS,CAAC,EAAE,CAAE,OAAO,EAAE,kBAAkB,KAAM,OAAO,GAAG,OAAO,CAAE,OAAO,CAAE,CAAC;IAE5E;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAK,CAAC,EAAE,CAAE,OAAO,EAAE,kBAAkB,KAAM,MAAM,GAAG,OAAO,CAAE,MAAM,CAAE,CAAC;CACtE;AAED;;;GAGG;AACH,MAAM,WAAW,KAAK;IACrB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,KAAK;IACrB,SAAS,EAAE,MAAM,CAAE,MAAM,EAAE,QAAQ,CAAE,CAAC;IACtC,MAAM,EAAE,KAAK,EAAE,CAAC;CAChB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/boot",
3
- "version": "0.3.0",
3
+ "version": "0.3.1-next.738bb1424.0",
4
4
  "description": "Minimal boot package for WordPress admin pages.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -22,6 +22,14 @@
22
22
  "node": ">=18.12.0",
23
23
  "npm": ">=8.19.2"
24
24
  },
25
+ "files": [
26
+ "src",
27
+ "build-module",
28
+ "build-style",
29
+ "build-types",
30
+ "*.md"
31
+ ],
32
+ "type": "module",
25
33
  "module": "build-module/index.js",
26
34
  "exports": {
27
35
  ".": {
@@ -34,25 +42,26 @@
34
42
  "wpScriptModuleExports": "./build-module/index.js",
35
43
  "types": "build-types",
36
44
  "dependencies": {
37
- "@wordpress/admin-ui": "^1.4.0",
38
- "@wordpress/commands": "^1.36.0",
39
- "@wordpress/components": "^30.9.0",
40
- "@wordpress/compose": "^7.36.0",
41
- "@wordpress/core-data": "^7.36.0",
42
- "@wordpress/data": "^10.36.0",
43
- "@wordpress/editor": "^14.36.0",
44
- "@wordpress/element": "^6.36.0",
45
- "@wordpress/html-entities": "^4.36.0",
46
- "@wordpress/i18n": "^6.9.0",
47
- "@wordpress/icons": "^11.3.0",
48
- "@wordpress/keyboard-shortcuts": "^5.36.0",
49
- "@wordpress/keycodes": "^4.36.0",
50
- "@wordpress/lazy-editor": "^1.2.0",
51
- "@wordpress/primitives": "^4.36.0",
52
- "@wordpress/private-apis": "^1.36.0",
53
- "@wordpress/route": "^0.2.0",
54
- "@wordpress/theme": "^0.3.0",
55
- "@wordpress/url": "^4.36.0",
45
+ "@wordpress/a11y": "^4.36.1-next.738bb1424.0",
46
+ "@wordpress/admin-ui": "^1.4.1-next.738bb1424.0",
47
+ "@wordpress/commands": "^1.36.1-next.738bb1424.0",
48
+ "@wordpress/components": "^31.0.1-next.738bb1424.0",
49
+ "@wordpress/compose": "^7.36.1-next.738bb1424.0",
50
+ "@wordpress/core-data": "^7.36.1-next.738bb1424.0",
51
+ "@wordpress/data": "^10.36.1-next.738bb1424.0",
52
+ "@wordpress/editor": "^14.36.1-next.738bb1424.0",
53
+ "@wordpress/element": "^6.36.1-next.738bb1424.0",
54
+ "@wordpress/html-entities": "^4.36.1-next.738bb1424.0",
55
+ "@wordpress/i18n": "^6.9.1-next.738bb1424.0",
56
+ "@wordpress/icons": "^11.3.1-next.738bb1424.0",
57
+ "@wordpress/keyboard-shortcuts": "^5.36.1-next.738bb1424.0",
58
+ "@wordpress/keycodes": "^4.36.1-next.738bb1424.0",
59
+ "@wordpress/lazy-editor": "^1.2.1-next.738bb1424.0",
60
+ "@wordpress/primitives": "^4.36.1-next.738bb1424.0",
61
+ "@wordpress/private-apis": "^1.36.1-next.738bb1424.0",
62
+ "@wordpress/route": "^0.2.1-next.738bb1424.0",
63
+ "@wordpress/theme": "^0.4.1-next.738bb1424.0",
64
+ "@wordpress/url": "^4.36.1-next.738bb1424.0",
56
65
  "clsx": "^2.1.1"
57
66
  },
58
67
  "peerDependencies": {
@@ -62,5 +71,5 @@
62
71
  "publishConfig": {
63
72
  "access": "public"
64
73
  },
65
- "gitHead": "b35cf1a2dce04665e99fd6b9c2891c0b336361b9"
74
+ "gitHead": "ab1b004c0d61c295aa34bc86ea07f979343983ce"
66
75
  }