@nextsparkjs/theme-default 0.1.0-beta.20 → 0.1.0-beta.22

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 (221) hide show
  1. package/package.json +1 -1
  2. package/tests/cypress/e2e/_devtools/access.bdd.md +262 -0
  3. package/tests/cypress/e2e/_devtools/access.cy.ts +171 -0
  4. package/tests/cypress/e2e/_devtools/navigation.bdd.md +261 -0
  5. package/tests/cypress/e2e/_devtools/navigation.cy.ts +157 -0
  6. package/tests/cypress/e2e/_devtools/pages.bdd.md +303 -0
  7. package/tests/cypress/e2e/_devtools/pages.cy.ts +184 -0
  8. package/tests/cypress/e2e/_docs/README.md +215 -0
  9. package/tests/cypress/e2e/_docs/tutorials/sector7-superadmin-teams.narration.json +155 -0
  10. package/tests/cypress/e2e/_docs/tutorials/sector7-superadmin.cy.ts +390 -0
  11. package/tests/cypress/e2e/_docs/tutorials/teams-system.doc.cy.ts +349 -0
  12. package/tests/cypress/e2e/_docs/tutorials/teams-system.narration.json +165 -0
  13. package/tests/cypress/e2e/_selectors/auth.cy.ts +306 -0
  14. package/tests/cypress/e2e/_selectors/billing.cy.ts +89 -0
  15. package/tests/cypress/e2e/_selectors/dashboard-mobile.cy.ts +113 -0
  16. package/tests/cypress/e2e/_selectors/dashboard-navigation.cy.ts +89 -0
  17. package/tests/cypress/e2e/_selectors/dashboard-sidebar.cy.ts +60 -0
  18. package/tests/cypress/e2e/_selectors/dashboard-topnav.cy.ts +146 -0
  19. package/tests/cypress/e2e/_selectors/devtools.cy.ts +210 -0
  20. package/tests/cypress/e2e/_selectors/global-search.cy.ts +88 -0
  21. package/tests/cypress/e2e/_selectors/pages-editor.cy.ts +179 -0
  22. package/tests/cypress/e2e/_selectors/posts-editor.cy.ts +282 -0
  23. package/tests/cypress/e2e/_selectors/public.cy.ts +112 -0
  24. package/tests/cypress/e2e/_selectors/settings-api-keys.cy.ts +228 -0
  25. package/tests/cypress/e2e/_selectors/settings-billing.cy.ts +105 -0
  26. package/tests/cypress/e2e/_selectors/settings-layout.cy.ts +119 -0
  27. package/tests/cypress/e2e/_selectors/settings-password.cy.ts +71 -0
  28. package/tests/cypress/e2e/_selectors/settings-profile.cy.ts +82 -0
  29. package/tests/cypress/e2e/_selectors/settings-teams.cy.ts +68 -0
  30. package/tests/cypress/e2e/_selectors/superadmin.cy.ts +185 -0
  31. package/tests/cypress/e2e/_selectors/tasks.cy.ts +242 -0
  32. package/tests/cypress/e2e/_selectors/taxonomies.cy.ts +126 -0
  33. package/tests/cypress/e2e/_selectors/teams.cy.ts +142 -0
  34. package/tests/cypress/e2e/_superadmin/all-teams.bdd.md +261 -0
  35. package/tests/cypress/e2e/_superadmin/all-teams.cy.ts +177 -0
  36. package/tests/cypress/e2e/_superadmin/all-users.bdd.md +406 -0
  37. package/tests/cypress/e2e/_superadmin/all-users.cy.ts +294 -0
  38. package/tests/cypress/e2e/_superadmin/dashboard.bdd.md +235 -0
  39. package/tests/cypress/e2e/_superadmin/dashboard.cy.ts +149 -0
  40. package/tests/cypress/e2e/_superadmin/subscriptions-overview.bdd.md +290 -0
  41. package/tests/cypress/e2e/_superadmin/subscriptions-overview.cy.ts +194 -0
  42. package/tests/cypress/e2e/ai/ai-usage.cy.ts +209 -0
  43. package/tests/cypress/e2e/ai/chat-api.cy.ts +107 -0
  44. package/tests/cypress/e2e/ai/guardrails.cy.ts +332 -0
  45. package/tests/cypress/e2e/api/billing/BillingAPIController.js +319 -0
  46. package/tests/cypress/e2e/api/billing/check-action.cy.ts +326 -0
  47. package/tests/cypress/e2e/api/billing/checkout.cy.ts +358 -0
  48. package/tests/cypress/e2e/api/billing/lifecycle.cy.ts +423 -0
  49. package/tests/cypress/e2e/api/billing/plans/README.md +345 -0
  50. package/tests/cypress/e2e/api/billing/plans/business.cy.ts +412 -0
  51. package/tests/cypress/e2e/api/billing/plans/downgrade.cy.ts +510 -0
  52. package/tests/cypress/e2e/api/billing/plans/fixtures/billing-plans.json +163 -0
  53. package/tests/cypress/e2e/api/billing/plans/free.cy.ts +500 -0
  54. package/tests/cypress/e2e/api/billing/plans/pro.cy.ts +497 -0
  55. package/tests/cypress/e2e/api/billing/plans/starter.cy.ts +342 -0
  56. package/tests/cypress/e2e/api/billing/portal.cy.ts +313 -0
  57. package/tests/cypress/e2e/api/devtools/registries.bdd.md +300 -0
  58. package/tests/cypress/e2e/api/devtools/registries.cy.ts +368 -0
  59. package/tests/cypress/e2e/api/entities/blocks-scope.cy.ts +396 -0
  60. package/tests/cypress/e2e/api/entities/customers-crud.cy.ts +648 -0
  61. package/tests/cypress/e2e/api/entities/customers-metas.cy.ts +839 -0
  62. package/tests/cypress/e2e/api/entities/pages-crud.cy.ts +425 -0
  63. package/tests/cypress/e2e/api/entities/pages-status.cy.ts +335 -0
  64. package/tests/cypress/e2e/api/entities/post-categories-crud.cy.ts +610 -0
  65. package/tests/cypress/e2e/api/entities/posts-crud.cy.ts +709 -0
  66. package/tests/cypress/e2e/api/entities/posts-status.cy.ts +396 -0
  67. package/tests/cypress/e2e/api/entities/tasks-crud.cy.ts +602 -0
  68. package/tests/cypress/e2e/api/entities/tasks-metas.cy.ts +878 -0
  69. package/tests/cypress/e2e/api/entities/users-crud.cy.ts +469 -0
  70. package/tests/cypress/e2e/api/entities/users-metas.cy.ts +913 -0
  71. package/tests/cypress/e2e/api/entities/users-security.cy.ts +375 -0
  72. package/tests/cypress/e2e/api/scheduled-actions/cron-endpoint.bdd.md +375 -0
  73. package/tests/cypress/e2e/api/scheduled-actions/cron-endpoint.cy.ts +346 -0
  74. package/tests/cypress/e2e/api/scheduled-actions/devtools-endpoint.bdd.md +451 -0
  75. package/tests/cypress/e2e/api/scheduled-actions/devtools-endpoint.cy.ts +447 -0
  76. package/tests/cypress/e2e/api/scheduled-actions/scheduling.bdd.md +649 -0
  77. package/tests/cypress/e2e/api/scheduled-actions/scheduling.cy.ts +333 -0
  78. package/tests/cypress/e2e/api/settings/api-keys.crud.cy.ts +923 -0
  79. package/tests/cypress/e2e/uat/auth/app-roles/developer-login.bdd.md +231 -0
  80. package/tests/cypress/e2e/uat/auth/app-roles/developer-login.cy.ts +144 -0
  81. package/tests/cypress/e2e/uat/auth/app-roles/superadmin-login.bdd.md +118 -0
  82. package/tests/cypress/e2e/uat/auth/app-roles/superadmin-login.cy.ts +84 -0
  83. package/tests/cypress/e2e/uat/auth/custom-roles/editor-login.bdd.md +288 -0
  84. package/tests/cypress/e2e/uat/auth/custom-roles/editor-login.cy.ts +188 -0
  85. package/tests/cypress/e2e/uat/auth/login-logout.bdd.md +160 -0
  86. package/tests/cypress/e2e/uat/auth/login-logout.cy.ts +116 -0
  87. package/tests/cypress/e2e/uat/auth/password-reset.bdd.md +289 -0
  88. package/tests/cypress/e2e/uat/auth/password-reset.cy.ts +200 -0
  89. package/tests/cypress/e2e/uat/auth/team-roles/admin-login.bdd.md +225 -0
  90. package/tests/cypress/e2e/uat/auth/team-roles/admin-login.cy.ts +148 -0
  91. package/tests/cypress/e2e/uat/auth/team-roles/member-login.bdd.md +251 -0
  92. package/tests/cypress/e2e/uat/auth/team-roles/member-login.cy.ts +163 -0
  93. package/tests/cypress/e2e/uat/auth/team-roles/owner-login.bdd.md +231 -0
  94. package/tests/cypress/e2e/uat/auth/team-roles/owner-login.cy.ts +141 -0
  95. package/tests/cypress/e2e/uat/billing/extended.bdd.md +273 -0
  96. package/tests/cypress/e2e/uat/billing/extended.cy.ts +209 -0
  97. package/tests/cypress/e2e/uat/billing/feature-gates.bdd.md +407 -0
  98. package/tests/cypress/e2e/uat/billing/feature-gates.cy.ts +307 -0
  99. package/tests/cypress/e2e/uat/billing/page.bdd.md +329 -0
  100. package/tests/cypress/e2e/uat/billing/page.cy.ts +250 -0
  101. package/tests/cypress/e2e/uat/billing/status.bdd.md +190 -0
  102. package/tests/cypress/e2e/uat/billing/status.cy.ts +145 -0
  103. package/tests/cypress/e2e/uat/billing/team-switch.bdd.md +156 -0
  104. package/tests/cypress/e2e/uat/billing/team-switch.cy.ts +122 -0
  105. package/tests/cypress/e2e/uat/billing/usage.bdd.md +218 -0
  106. package/tests/cypress/e2e/uat/billing/usage.cy.ts +176 -0
  107. package/tests/cypress/e2e/uat/blocks/hero.bdd.md +124 -0
  108. package/tests/cypress/e2e/uat/blocks/hero.cy.ts +56 -0
  109. package/tests/cypress/e2e/uat/devtools/api-tester.cy.ts +390 -0
  110. package/tests/cypress/e2e/uat/entities/customers/member.bdd.md +275 -0
  111. package/tests/cypress/e2e/uat/entities/customers/member.cy.ts +122 -0
  112. package/tests/cypress/e2e/uat/entities/customers/owner.bdd.md +243 -0
  113. package/tests/cypress/e2e/uat/entities/customers/owner.cy.ts +165 -0
  114. package/tests/cypress/e2e/uat/entities/pages/block-crud.bdd.md +476 -0
  115. package/tests/cypress/e2e/uat/entities/pages/block-crud.cy.ts +486 -0
  116. package/tests/cypress/e2e/uat/entities/pages/block-editor.bdd.md +460 -0
  117. package/tests/cypress/e2e/uat/entities/pages/block-editor.cy.ts +301 -0
  118. package/tests/cypress/e2e/uat/entities/pages/list.bdd.md +432 -0
  119. package/tests/cypress/e2e/uat/entities/pages/list.cy.ts +273 -0
  120. package/tests/cypress/e2e/uat/entities/pages/public-rendering.bdd.md +696 -0
  121. package/tests/cypress/e2e/uat/entities/pages/public-rendering.cy.ts +340 -0
  122. package/tests/cypress/e2e/uat/entities/posts/categories-api-aware.bdd.md +161 -0
  123. package/tests/cypress/e2e/uat/entities/posts/categories-api-aware.cy.ts +104 -0
  124. package/tests/cypress/e2e/uat/entities/posts/categories.bdd.md +375 -0
  125. package/tests/cypress/e2e/uat/entities/posts/categories.cy.ts +241 -0
  126. package/tests/cypress/e2e/uat/entities/posts/editor.bdd.md +429 -0
  127. package/tests/cypress/e2e/uat/entities/posts/editor.cy.ts +257 -0
  128. package/tests/cypress/e2e/uat/entities/posts/list.bdd.md +340 -0
  129. package/tests/cypress/e2e/uat/entities/posts/list.cy.ts +177 -0
  130. package/tests/cypress/e2e/uat/entities/posts/public.bdd.md +614 -0
  131. package/tests/cypress/e2e/uat/entities/posts/public.cy.ts +249 -0
  132. package/tests/cypress/e2e/uat/entities/tasks/member.bdd.md +222 -0
  133. package/tests/cypress/e2e/uat/entities/tasks/member.cy.ts +165 -0
  134. package/tests/cypress/e2e/uat/entities/tasks/owner.bdd.md +419 -0
  135. package/tests/cypress/e2e/uat/entities/tasks/owner.cy.ts +191 -0
  136. package/tests/cypress/e2e/uat/roles/editor-role.bdd.md +552 -0
  137. package/tests/cypress/e2e/uat/roles/editor-role.cy.ts +210 -0
  138. package/tests/cypress/e2e/uat/roles/member-restrictions.bdd.md +450 -0
  139. package/tests/cypress/e2e/uat/roles/member-restrictions.cy.ts +189 -0
  140. package/tests/cypress/e2e/uat/roles/owner-full-crud.bdd.md +530 -0
  141. package/tests/cypress/e2e/uat/roles/owner-full-crud.cy.ts +247 -0
  142. package/tests/cypress/e2e/uat/scheduled-actions/devtools-ui.bdd.md +736 -0
  143. package/tests/cypress/e2e/uat/scheduled-actions/devtools-ui.cy.ts +740 -0
  144. package/tests/cypress/e2e/uat/teams/roles-matrix.bdd.md +553 -0
  145. package/tests/cypress/e2e/uat/teams/roles-matrix.cy.ts +185 -0
  146. package/tests/cypress/e2e/uat/teams/switcher.bdd.md +1151 -0
  147. package/tests/cypress/e2e/uat/teams/switcher.cy.ts +497 -0
  148. package/tests/cypress/e2e/uat/teams/team-switcher.md +198 -0
  149. package/tests/cypress/fixtures/blocks.json +218 -0
  150. package/tests/cypress/fixtures/entities.json +78 -0
  151. package/tests/cypress/fixtures/page-builder.json +21 -0
  152. package/tests/cypress/src/components/CategoriesPOM.ts +382 -0
  153. package/tests/cypress/src/components/CustomersPOM.ts +439 -0
  154. package/tests/cypress/src/components/DevKeyringPOM.ts +160 -0
  155. package/tests/cypress/src/components/EntityForm.ts +375 -0
  156. package/tests/cypress/src/components/EntityList.ts +389 -0
  157. package/tests/cypress/src/components/PageBuilderPOM.ts +710 -0
  158. package/tests/cypress/src/components/PostEditorPOM.ts +370 -0
  159. package/tests/cypress/src/components/PostsListPOM.ts +223 -0
  160. package/tests/cypress/src/components/PublicPagePOM.ts +447 -0
  161. package/tests/cypress/src/components/PublicPostPOM.ts +146 -0
  162. package/tests/cypress/src/components/TasksPOM.ts +272 -0
  163. package/tests/cypress/src/components/TeamSwitcherPOM.ts +450 -0
  164. package/tests/cypress/src/components/index.ts +21 -0
  165. package/tests/cypress/src/controllers/ApiKeysAPIController.js +178 -0
  166. package/tests/cypress/src/controllers/BaseAPIController.js +317 -0
  167. package/tests/cypress/src/controllers/CustomerAPIController.js +251 -0
  168. package/tests/cypress/src/controllers/PagesAPIController.js +226 -0
  169. package/tests/cypress/src/controllers/PostsAPIController.js +250 -0
  170. package/tests/cypress/src/controllers/TaskAPIController.js +240 -0
  171. package/tests/cypress/src/controllers/UsersAPIController.js +242 -0
  172. package/tests/cypress/src/controllers/index.js +25 -0
  173. package/tests/cypress/src/core/AuthPOM.ts +450 -0
  174. package/tests/cypress/src/core/BasePOM.ts +86 -0
  175. package/tests/cypress/src/core/BlockEditorBasePOM.ts +576 -0
  176. package/tests/cypress/src/core/DashboardEntityPOM.ts +692 -0
  177. package/tests/cypress/src/core/index.ts +14 -0
  178. package/tests/cypress/src/entities/CustomersPOM.ts +172 -0
  179. package/tests/cypress/src/entities/PagesPOM.ts +137 -0
  180. package/tests/cypress/src/entities/PostsPOM.ts +137 -0
  181. package/tests/cypress/src/entities/TasksPOM.ts +176 -0
  182. package/tests/cypress/src/entities/index.ts +14 -0
  183. package/tests/cypress/src/features/BillingPOM.ts +385 -0
  184. package/tests/cypress/src/features/DashboardPOM.ts +245 -0
  185. package/tests/cypress/src/features/DevtoolsPOM.ts +739 -0
  186. package/tests/cypress/src/features/PageBuilderPOM.ts +263 -0
  187. package/tests/cypress/src/features/PostEditorPOM.ts +313 -0
  188. package/tests/cypress/src/features/ScheduledActionsPOM.ts +463 -0
  189. package/tests/cypress/src/features/SettingsPOM.ts +362 -0
  190. package/tests/cypress/src/features/SuperadminPOM.ts +331 -0
  191. package/tests/cypress/src/features/SuperadminTeamRolesPOM.ts +285 -0
  192. package/tests/cypress/src/features/index.ts +28 -0
  193. package/tests/cypress/src/helpers/ApiInterceptor.ts +177 -0
  194. package/tests/cypress/src/index.ts +101 -0
  195. package/tests/cypress/src/pages/dashboard/Dashboard.js +677 -0
  196. package/tests/cypress/src/pages/dashboard/DashboardPage.js +43 -0
  197. package/tests/cypress/src/pages/dashboard/DashboardStats.js +546 -0
  198. package/tests/cypress/src/pages/dashboard/index.js +6 -0
  199. package/tests/cypress/src/pages/index.js +5 -0
  200. package/tests/cypress/src/pages/public/FeaturesPage.js +28 -0
  201. package/tests/cypress/src/pages/public/LandingPage.js +69 -0
  202. package/tests/cypress/src/pages/public/PricingPage.js +33 -0
  203. package/tests/cypress/src/pages/public/index.js +6 -0
  204. package/tests/cypress/src/selectors.ts +46 -0
  205. package/tests/cypress/src/session-helpers.ts +500 -0
  206. package/tests/cypress/support/doc-commands.ts +260 -0
  207. package/tests/cypress/support/e2e.ts +89 -0
  208. package/tests/cypress.config.ts +165 -0
  209. package/tests/jest/components/post-header.test.tsx +377 -0
  210. package/tests/jest/config/role-config.test.ts +529 -0
  211. package/tests/jest/jest.config.ts +81 -0
  212. package/tests/jest/langchain/COVERAGE.md +372 -0
  213. package/tests/jest/langchain/guardrails.test.ts +465 -0
  214. package/tests/jest/langchain/streaming.test.ts +367 -0
  215. package/tests/jest/langchain/token-tracker.test.ts +455 -0
  216. package/tests/jest/langchain/tracer-callbacks.test.ts +881 -0
  217. package/tests/jest/langchain/tracer.test.ts +823 -0
  218. package/tests/jest/user-roles/role-helpers.test.ts +432 -0
  219. package/tests/jest/validation/categories.test.ts +429 -0
  220. package/tests/jest/validation/posts.test.ts +546 -0
  221. package/tests/tsconfig.json +15 -0
@@ -0,0 +1,460 @@
1
+ # Block Editor - Admin UI (Format: BDD/Gherkin - Bilingual)
2
+
3
+ > **Test File:** `block-editor.cy.ts`
4
+ > **Format:** Behavior-Driven Development (BDD) with Given/When/Then
5
+ > **Languages:** English / Spanish (side-by-side)
6
+ > **Total Tests:** 10
7
+
8
+ ---
9
+
10
+ ## Feature: Block Editor Interface
11
+
12
+ <table>
13
+ <tr>
14
+ <th width="50%">English</th>
15
+ <th width="50%">Español</th>
16
+ </tr>
17
+ <tr>
18
+ <td>
19
+
20
+ As an **Owner**
21
+ I want to **use the block editor interface**
22
+ So that **I can build and manage page content**
23
+
24
+ **Interface Components:**
25
+ - Editor loading
26
+ - Block picker
27
+ - Mode switching (Layout/Preview)
28
+ - Settings panel
29
+ - Save/publish functionality
30
+
31
+ </td>
32
+ <td>
33
+
34
+ Como **Owner**
35
+ Quiero **usar la interfaz del editor de bloques**
36
+ Para **construir y gestionar contenido de paginas**
37
+
38
+ **Componentes de Interfaz:**
39
+ - Carga del editor
40
+ - Selector de bloques
41
+ - Cambio de modo (Layout/Preview)
42
+ - Panel de configuracion
43
+ - Funcionalidad de guardar/publicar
44
+
45
+ </td>
46
+ </tr>
47
+ </table>
48
+
49
+ ---
50
+
51
+ ## Editor Loading
52
+
53
+ ### PB-EDITOR-001: Should open editor for existing page `@smoke`
54
+
55
+ <table>
56
+ <tr>
57
+ <th width="50%">English</th>
58
+ <th width="50%">Español</th>
59
+ </tr>
60
+ <tr>
61
+ <td>
62
+
63
+ ```gherkin
64
+ Scenario: Open editor for existing page
65
+
66
+ Given I am logged in as Owner
67
+ And I have created a test page via API
68
+ When I visit the page editor
69
+ And I wait for the editor to load
70
+ Then the editor should be visible
71
+ ```
72
+
73
+ </td>
74
+ <td>
75
+
76
+ ```gherkin
77
+ Scenario: Abrir editor para pagina existente
78
+
79
+ Given estoy logueado como Owner
80
+ And he creado una pagina de prueba via API
81
+ When visito el editor de paginas
82
+ And espero que el editor cargue
83
+ Then el editor deberia estar visible
84
+ ```
85
+
86
+ </td>
87
+ </tr>
88
+ </table>
89
+
90
+ ---
91
+
92
+ ### PB-EDITOR-002: Should open new page form
93
+
94
+ <table>
95
+ <tr>
96
+ <th width="50%">English</th>
97
+ <th width="50%">Español</th>
98
+ </tr>
99
+ <tr>
100
+ <td>
101
+
102
+ ```gherkin
103
+ Scenario: Open new page creation form
104
+
105
+ Given I am logged in as Owner
106
+ When I visit /dashboard/pages/create
107
+ Then the new page form should be visible
108
+ And the title input should be visible
109
+ And the slug input should be visible
110
+ ```
111
+
112
+ </td>
113
+ <td>
114
+
115
+ ```gherkin
116
+ Scenario: Abrir formulario de creacion de nueva pagina
117
+
118
+ Given estoy logueado como Owner
119
+ When visito /dashboard/pages/create
120
+ Then el formulario de nueva pagina deberia estar visible
121
+ And el input de titulo deberia estar visible
122
+ And el input de slug deberia estar visible
123
+ ```
124
+
125
+ </td>
126
+ </tr>
127
+ </table>
128
+
129
+ ---
130
+
131
+ ## Block Picker
132
+
133
+ ### PB-EDITOR-003: Should show block picker with available blocks `@smoke`
134
+
135
+ <table>
136
+ <tr>
137
+ <th width="50%">English</th>
138
+ <th width="50%">Español</th>
139
+ </tr>
140
+ <tr>
141
+ <td>
142
+
143
+ ```gherkin
144
+ Scenario: Block picker shows available blocks
145
+
146
+ Given I am on the page editor
147
+ And I switch to Layout mode
148
+ Then the block picker should be visible
149
+ And "hero" block should be in the picker
150
+ And "cta-section" block should be in the picker
151
+ And "features-grid" block should be in the picker
152
+ ```
153
+
154
+ </td>
155
+ <td>
156
+
157
+ ```gherkin
158
+ Scenario: Selector de bloques muestra bloques disponibles
159
+
160
+ Given estoy en el editor de paginas
161
+ And cambio al modo Layout
162
+ Then el selector de bloques deberia estar visible
163
+ And el bloque "hero" deberia estar en el selector
164
+ And el bloque "cta-section" deberia estar en el selector
165
+ And el bloque "features-grid" deberia estar en el selector
166
+ ```
167
+
168
+ </td>
169
+ </tr>
170
+ </table>
171
+
172
+ ---
173
+
174
+ ### PB-EDITOR-004: Should filter blocks by category
175
+
176
+ <table>
177
+ <tr>
178
+ <th width="50%">English</th>
179
+ <th width="50%">Español</th>
180
+ </tr>
181
+ <tr>
182
+ <td>
183
+
184
+ ```gherkin
185
+ Scenario: Filter blocks by category
186
+
187
+ Given I am on the page editor in Layout mode
188
+ When I click the "marketing" category tab
189
+ Then the block picker should show CTA blocks
190
+ ```
191
+
192
+ </td>
193
+ <td>
194
+
195
+ ```gherkin
196
+ Scenario: Filtrar bloques por categoria
197
+
198
+ Given estoy en el editor de paginas en modo Layout
199
+ When hago clic en la pestana de categoria "marketing"
200
+ Then el selector de bloques deberia mostrar bloques CTA
201
+ ```
202
+
203
+ </td>
204
+ </tr>
205
+ </table>
206
+
207
+ ---
208
+
209
+ ### PB-EDITOR-005: Should search blocks by name
210
+
211
+ <table>
212
+ <tr>
213
+ <th width="50%">English</th>
214
+ <th width="50%">Español</th>
215
+ </tr>
216
+ <tr>
217
+ <td>
218
+
219
+ ```gherkin
220
+ Scenario: Search blocks by name
221
+
222
+ Given I am on the page editor in Layout mode
223
+ When I search for "hero" in the block picker
224
+ Then "hero" block should be visible in the picker
225
+ ```
226
+
227
+ </td>
228
+ <td>
229
+
230
+ ```gherkin
231
+ Scenario: Buscar bloques por nombre
232
+
233
+ Given estoy en el editor de paginas en modo Layout
234
+ When busco "hero" en el selector de bloques
235
+ Then el bloque "hero" deberia estar visible en el selector
236
+ ```
237
+
238
+ </td>
239
+ </tr>
240
+ </table>
241
+
242
+ ---
243
+
244
+ ## Mode Switching
245
+
246
+ ### PB-EDITOR-006: Should switch between Layout and Preview mode
247
+
248
+ <table>
249
+ <tr>
250
+ <th width="50%">English</th>
251
+ <th width="50%">Español</th>
252
+ </tr>
253
+ <tr>
254
+ <td>
255
+
256
+ ```gherkin
257
+ Scenario: Switch between editor modes
258
+
259
+ Given I am on the page editor
260
+ And I switch to Layout mode
261
+ And I add a "hero" block
262
+ When I switch to Preview mode
263
+ Then the preview canvas should be visible
264
+ When I switch to Layout mode
265
+ Then the block canvas should be visible
266
+ ```
267
+
268
+ </td>
269
+ <td>
270
+
271
+ ```gherkin
272
+ Scenario: Cambiar entre modos del editor
273
+
274
+ Given estoy en el editor de paginas
275
+ And cambio al modo Layout
276
+ And agrego un bloque "hero"
277
+ When cambio al modo Preview
278
+ Then el canvas de preview deberia estar visible
279
+ When cambio al modo Layout
280
+ Then el canvas de bloques deberia estar visible
281
+ ```
282
+
283
+ </td>
284
+ </tr>
285
+ </table>
286
+
287
+ ---
288
+
289
+ ## Settings Panel
290
+
291
+ ### PB-EDITOR-007: Should show settings panel when block is selected
292
+
293
+ <table>
294
+ <tr>
295
+ <th width="50%">English</th>
296
+ <th width="50%">Español</th>
297
+ </tr>
298
+ <tr>
299
+ <td>
300
+
301
+ ```gherkin
302
+ Scenario: Settings panel shows for selected block
303
+
304
+ Given I am on the page editor in Layout mode
305
+ When I add a "hero" block
306
+ Then the settings panel should have content
307
+ ```
308
+
309
+ </td>
310
+ <td>
311
+
312
+ ```gherkin
313
+ Scenario: Panel de configuracion se muestra para bloque seleccionado
314
+
315
+ Given estoy en el editor de paginas en modo Layout
316
+ When agrego un bloque "hero"
317
+ Then el panel de configuracion deberia tener contenido
318
+ ```
319
+
320
+ </td>
321
+ </tr>
322
+ </table>
323
+
324
+ ---
325
+
326
+ ### PB-EDITOR-008: Should switch between settings tabs
327
+
328
+ <table>
329
+ <tr>
330
+ <th width="50%">English</th>
331
+ <th width="50%">Español</th>
332
+ </tr>
333
+ <tr>
334
+ <td>
335
+
336
+ ```gherkin
337
+ Scenario: Switch between settings tabs
338
+
339
+ Given I am on the page editor with a hero block
340
+ When I select the "content" settings tab
341
+ Then the content tab should be active
342
+ When I select the "design" settings tab
343
+ Then the design tab should be active
344
+ ```
345
+
346
+ </td>
347
+ <td>
348
+
349
+ ```gherkin
350
+ Scenario: Cambiar entre pestanas de configuracion
351
+
352
+ Given estoy en el editor de paginas con un bloque hero
353
+ When selecciono la pestana de configuracion "content"
354
+ Then la pestana content deberia estar activa
355
+ When selecciono la pestana de configuracion "design"
356
+ Then la pestana design deberia estar activa
357
+ ```
358
+
359
+ </td>
360
+ </tr>
361
+ </table>
362
+
363
+ ---
364
+
365
+ ## Save Functionality
366
+
367
+ ### PB-EDITOR-009: Should save page changes `@smoke`
368
+
369
+ <table>
370
+ <tr>
371
+ <th width="50%">English</th>
372
+ <th width="50%">Español</th>
373
+ </tr>
374
+ <tr>
375
+ <td>
376
+
377
+ ```gherkin
378
+ Scenario: Save page with blocks
379
+
380
+ Given I am on the page editor in Layout mode
381
+ And I add a "hero" block
382
+ When I save the page
383
+ And I wait for the API update
384
+ Then the API should confirm at least 1 block
385
+ And the first block should be "hero"
386
+ ```
387
+
388
+ </td>
389
+ <td>
390
+
391
+ ```gherkin
392
+ Scenario: Guardar pagina con bloques
393
+
394
+ Given estoy en el editor de paginas en modo Layout
395
+ And agrego un bloque "hero"
396
+ When guardo la pagina
397
+ And espero la actualizacion de API
398
+ Then la API deberia confirmar al menos 1 bloque
399
+ And el primer bloque deberia ser "hero"
400
+ ```
401
+
402
+ </td>
403
+ </tr>
404
+ </table>
405
+
406
+ ---
407
+
408
+ ### PB-EDITOR-010: Should publish page
409
+
410
+ <table>
411
+ <tr>
412
+ <th width="50%">English</th>
413
+ <th width="50%">Español</th>
414
+ </tr>
415
+ <tr>
416
+ <td>
417
+
418
+ ```gherkin
419
+ Scenario: Publish a page
420
+
421
+ Given I am on the page editor
422
+ When I select "published" status
423
+ And I save the page
424
+ And I wait for the API update
425
+ Then the API should confirm status is "published"
426
+ ```
427
+
428
+ </td>
429
+ <td>
430
+
431
+ ```gherkin
432
+ Scenario: Publicar una pagina
433
+
434
+ Given estoy en el editor de paginas
435
+ When selecciono estado "published"
436
+ And guardo la pagina
437
+ And espero la actualizacion de API
438
+ Then la API deberia confirmar que el estado es "published"
439
+ ```
440
+
441
+ </td>
442
+ </tr>
443
+ </table>
444
+
445
+ ---
446
+
447
+ ## Summary / Resumen
448
+
449
+ | Test ID | Block | Description / Descripción | Tags |
450
+ |---------|-------|---------------------------|------|
451
+ | PB-EDITOR-001 | Loading | Open editor for page | `@smoke` |
452
+ | PB-EDITOR-002 | Loading | Open new page form | |
453
+ | PB-EDITOR-003 | Block Picker | Show available blocks | `@smoke` |
454
+ | PB-EDITOR-004 | Block Picker | Filter by category | |
455
+ | PB-EDITOR-005 | Block Picker | Search by name | |
456
+ | PB-EDITOR-006 | Mode Switch | Layout/Preview toggle | |
457
+ | PB-EDITOR-007 | Settings | Show settings panel | |
458
+ | PB-EDITOR-008 | Settings | Switch tabs | |
459
+ | PB-EDITOR-009 | Save | Save page changes | `@smoke` |
460
+ | PB-EDITOR-010 | Save | Publish page | |