@goldencomm/create-baseline 0.0.1 → 0.1.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 (756) hide show
  1. package/README.md +18 -79
  2. package/index.mjs +175 -283
  3. package/package.json +13 -30
  4. package/templates/ci/bitbucket-pipelines.yml +29 -0
  5. package/templates/code-connect/accordion-item.figma.ts +45 -0
  6. package/templates/code-connect/accordion.figma.ts +40 -0
  7. package/templates/code-connect/alert.figma.ts +378 -0
  8. package/templates/code-connect/avatar-badge.figma.ts +14 -0
  9. package/templates/code-connect/avatar-group-count.figma.ts +16 -0
  10. package/templates/code-connect/avatar-group.figma.ts +30 -0
  11. package/templates/code-connect/avatar.figma.ts +34 -0
  12. package/templates/code-connect/badge.figma.ts +383 -0
  13. package/templates/code-connect/breadcrumb-item.figma.ts +23 -0
  14. package/templates/code-connect/breadcrumb-separator.figma.ts +12 -0
  15. package/templates/code-connect/breadcrumb.figma.ts +32 -0
  16. package/templates/code-connect/button-group.figma.ts +28 -0
  17. package/templates/code-connect/button.figma.ts +408 -0
  18. package/templates/code-connect/card.figma.ts +74 -0
  19. package/templates/code-connect/carousel.figma.ts +27 -0
  20. package/templates/code-connect/checkbox.figma.ts +34 -0
  21. package/templates/code-connect/columns-1.figma.ts +43 -0
  22. package/templates/code-connect/columns-2.figma.ts +49 -0
  23. package/templates/code-connect/columns-3.figma.ts +45 -0
  24. package/templates/code-connect/columns-4.figma.ts +46 -0
  25. package/templates/code-connect/container.figma.ts +42 -0
  26. package/templates/code-connect/dialog.figma.ts +72 -0
  27. package/templates/code-connect/drawer.figma.ts +69 -0
  28. package/templates/code-connect/dropdown-menu-checkbox-item.figma.ts +19 -0
  29. package/templates/code-connect/dropdown-menu-item.figma.ts +25 -0
  30. package/templates/code-connect/dropdown-menu-label.figma.ts +16 -0
  31. package/templates/code-connect/dropdown-menu-radio-item.figma.ts +19 -0
  32. package/templates/code-connect/dropdown-menu-separator.figma.ts +12 -0
  33. package/templates/code-connect/dropdown-menu-sub-trigger.figma.ts +22 -0
  34. package/templates/code-connect/dropdown-menu.figma.ts +44 -0
  35. package/templates/code-connect/field-horizontal.figma.ts +73 -0
  36. package/templates/code-connect/field.figma.ts +68 -0
  37. package/templates/code-connect/hover-card.figma.ts +41 -0
  38. package/templates/code-connect/icon-button.figma.ts +382 -0
  39. package/templates/code-connect/input-group.figma.ts +51 -0
  40. package/templates/code-connect/input-otp.figma.ts +40 -0
  41. package/templates/code-connect/input.figma.ts +42 -0
  42. package/templates/code-connect/item-group.figma.ts +30 -0
  43. package/templates/code-connect/item.figma.ts +50 -0
  44. package/templates/code-connect/kbd.figma.ts +16 -0
  45. package/templates/code-connect/media.figma.ts +35 -0
  46. package/templates/code-connect/meter.figma.ts +31 -0
  47. package/templates/code-connect/native-select.figma.ts +36 -0
  48. package/templates/code-connect/navigation-menu-link.figma.ts +33 -0
  49. package/templates/code-connect/navigation-menu-trigger.figma.ts +28 -0
  50. package/templates/code-connect/navigation-menu.figma.ts +30 -0
  51. package/templates/code-connect/pagination-ellipsis.figma.ts +11 -0
  52. package/templates/code-connect/pagination-link.figma.ts +24 -0
  53. package/templates/code-connect/pagination-next.figma.ts +17 -0
  54. package/templates/code-connect/pagination-previous.figma.ts +17 -0
  55. package/templates/code-connect/pagination.figma.ts +33 -0
  56. package/templates/code-connect/panel.figma.ts +40 -0
  57. package/templates/code-connect/popover.figma.ts +58 -0
  58. package/templates/code-connect/progress.figma.ts +34 -0
  59. package/templates/code-connect/radio.figma.ts +29 -0
  60. package/templates/code-connect/section.figma.ts +42 -0
  61. package/templates/code-connect/select.figma.ts +30 -0
  62. package/templates/code-connect/sheet.figma.ts +70 -0
  63. package/templates/code-connect/sidebar-menu-button.figma.ts +36 -0
  64. package/templates/code-connect/sidebar.figma.ts +44 -0
  65. package/templates/code-connect/spinner.figma.ts +13 -0
  66. package/templates/code-connect/switch.figma.ts +32 -0
  67. package/templates/code-connect/table-cell.figma.ts +21 -0
  68. package/templates/code-connect/table.figma.ts +62 -0
  69. package/templates/code-connect/tabs-trigger.figma.ts +369 -0
  70. package/templates/code-connect/tabs.figma.ts +28 -0
  71. package/templates/code-connect/textarea.figma.ts +32 -0
  72. package/templates/code-connect/toggle-group.figma.ts +24 -0
  73. package/templates/code-connect/toggle.figma.ts +385 -0
  74. package/templates/code-connect/tooltip.figma.ts +29 -0
  75. package/templates/next/app/globals.css +13 -12
  76. package/templates/next/app/page.tsx +38 -26
  77. package/templates/next/public/placeholder.svg +1 -0
  78. package/templates/shopify/.gitattributes +1 -0
  79. package/templates/shopify/.shopifyignore +23 -0
  80. package/templates/shopify/.theme-check.yml +1 -0
  81. package/templates/shopify/CODE_OF_CONDUCT.md +132 -0
  82. package/templates/shopify/CONTRIBUTING.md +24 -0
  83. package/templates/shopify/LICENSE.md +9 -0
  84. package/templates/shopify/README.md +160 -0
  85. package/templates/shopify/assets/carousel.js +2 -0
  86. package/templates/shopify/assets/critical.css +117 -0
  87. package/templates/shopify/assets/icon-account.svg +6 -0
  88. package/templates/shopify/assets/icon-cart.svg +5 -0
  89. package/templates/shopify/assets/predictive-search.js +65 -0
  90. package/templates/shopify/assets/shoppy-x-ray.svg +1 -0
  91. package/templates/shopify/blocks/_accordion-item.liquid +44 -0
  92. package/templates/shopify/blocks/_card-footer.liquid +26 -0
  93. package/templates/shopify/blocks/_carousel-slide.liquid +21 -0
  94. package/templates/shopify/blocks/_column.liquid +30 -0
  95. package/templates/shopify/blocks/_dialog-footer.liquid +28 -0
  96. package/templates/shopify/blocks/_sheet-footer.liquid +28 -0
  97. package/templates/shopify/blocks/_tab.liquid +21 -0
  98. package/templates/shopify/blocks/accordion.liquid +40 -0
  99. package/templates/shopify/blocks/blog-posts.liquid +70 -0
  100. package/templates/shopify/blocks/button.figma.ts +359 -0
  101. package/templates/shopify/blocks/button.liquid +477 -0
  102. package/templates/shopify/blocks/card.liquid +73 -0
  103. package/templates/shopify/blocks/carousel.liquid +47 -0
  104. package/templates/shopify/blocks/columns.liquid +73 -0
  105. package/templates/shopify/blocks/contact-form.liquid +69 -0
  106. package/templates/shopify/blocks/container.liquid +29 -0
  107. package/templates/shopify/blocks/dialog.liquid +77 -0
  108. package/templates/shopify/blocks/group.liquid +105 -0
  109. package/templates/shopify/blocks/heading.liquid +57 -0
  110. package/templates/shopify/blocks/icon-button.figma.ts +358 -0
  111. package/templates/shopify/blocks/media.liquid +80 -0
  112. package/templates/shopify/blocks/navigation-menu.liquid +23 -0
  113. package/templates/shopify/blocks/panel.liquid +64 -0
  114. package/templates/shopify/blocks/popover.liquid +88 -0
  115. package/templates/shopify/blocks/section-heading.liquid +68 -0
  116. package/templates/shopify/blocks/sheet.liquid +90 -0
  117. package/templates/shopify/blocks/tabs.liquid +58 -0
  118. package/templates/shopify/blocks/text.liquid +59 -0
  119. package/templates/shopify/build-js.mjs +22 -0
  120. package/templates/shopify/config/settings_data.json +182 -0
  121. package/templates/shopify/config/settings_schema.json +365 -0
  122. package/templates/shopify/layout/password.liquid +19 -0
  123. package/templates/shopify/layout/theme.liquid +57 -0
  124. package/templates/shopify/locales/en.default.json +58 -0
  125. package/templates/shopify/locales/en.default.schema.json +303 -0
  126. package/templates/shopify/package-lock.json +521 -0
  127. package/templates/shopify/package.json +17 -0
  128. package/templates/shopify/sections/404.liquid +23 -0
  129. package/templates/shopify/sections/article.liquid +81 -0
  130. package/templates/shopify/sections/baseline-header.liquid +236 -0
  131. package/templates/shopify/sections/baseline-kitchen-sink.liquid +988 -0
  132. package/templates/shopify/sections/baseline-section.liquid +661 -0
  133. package/templates/shopify/sections/blog.liquid +36 -0
  134. package/templates/shopify/sections/cart.liquid +65 -0
  135. package/templates/shopify/sections/collection.liquid +54 -0
  136. package/templates/shopify/sections/collections.liquid +83 -0
  137. package/templates/shopify/sections/custom-section.liquid +60 -0
  138. package/templates/shopify/sections/footer-group.json +25 -0
  139. package/templates/shopify/sections/footer.liquid +57 -0
  140. package/templates/shopify/sections/header-group.json +22 -0
  141. package/templates/shopify/sections/page.liquid +18 -0
  142. package/templates/shopify/sections/password.liquid +36 -0
  143. package/templates/shopify/sections/product.liquid +60 -0
  144. package/templates/shopify/sections/search.liquid +73 -0
  145. package/templates/shopify/snippets/accordion-item.figma.ts +34 -0
  146. package/templates/shopify/snippets/accordion-item.liquid +36 -0
  147. package/templates/shopify/snippets/accordion.figma.ts +37 -0
  148. package/templates/shopify/snippets/accordion.liquid +169 -0
  149. package/templates/shopify/snippets/alert.figma.ts +31 -0
  150. package/templates/shopify/snippets/alert.liquid +104 -0
  151. package/templates/shopify/snippets/avatar-group.figma.ts +17 -0
  152. package/templates/shopify/snippets/avatar-group.liquid +66 -0
  153. package/templates/shopify/snippets/avatar.figma.ts +24 -0
  154. package/templates/shopify/snippets/avatar.liquid +143 -0
  155. package/templates/shopify/snippets/badge.figma.ts +355 -0
  156. package/templates/shopify/snippets/badge.liquid +111 -0
  157. package/templates/shopify/snippets/baseline-schemes.liquid +44 -0
  158. package/templates/shopify/snippets/baseline-tokens.liquid +712 -0
  159. package/templates/shopify/snippets/breadcrumb.figma.ts +12 -0
  160. package/templates/shopify/snippets/breadcrumb.liquid +124 -0
  161. package/templates/shopify/snippets/button-group.liquid +148 -0
  162. package/templates/shopify/snippets/button.liquid +144 -0
  163. package/templates/shopify/snippets/card.figma.ts +43 -0
  164. package/templates/shopify/snippets/card.liquid +196 -0
  165. package/templates/shopify/snippets/carousel-item.liquid +18 -0
  166. package/templates/shopify/snippets/carousel.figma.ts +28 -0
  167. package/templates/shopify/snippets/carousel.liquid +121 -0
  168. package/templates/shopify/snippets/checkbox.liquid +147 -0
  169. package/templates/shopify/snippets/container.liquid +52 -0
  170. package/templates/shopify/snippets/css-variables.liquid +18 -0
  171. package/templates/shopify/snippets/dialog.figma.ts +36 -0
  172. package/templates/shopify/snippets/dialog.liquid +217 -0
  173. package/templates/shopify/snippets/field-separator.liquid +68 -0
  174. package/templates/shopify/snippets/field.liquid +187 -0
  175. package/templates/shopify/snippets/icon.liquid +101 -0
  176. package/templates/shopify/snippets/image.liquid +64 -0
  177. package/templates/shopify/snippets/input-group.liquid +196 -0
  178. package/templates/shopify/snippets/input.liquid +126 -0
  179. package/templates/shopify/snippets/item-group.liquid +31 -0
  180. package/templates/shopify/snippets/item.figma.ts +40 -0
  181. package/templates/shopify/snippets/item.liquid +162 -0
  182. package/templates/shopify/snippets/media.figma.ts +33 -0
  183. package/templates/shopify/snippets/media.liquid +273 -0
  184. package/templates/shopify/snippets/meta-tags.liquid +105 -0
  185. package/templates/shopify/snippets/meter.figma.ts +24 -0
  186. package/templates/shopify/snippets/meter.liquid +118 -0
  187. package/templates/shopify/snippets/native-select.liquid +141 -0
  188. package/templates/shopify/snippets/navigation-menu-item.figma.ts +23 -0
  189. package/templates/shopify/snippets/navigation-menu-item.liquid +40 -0
  190. package/templates/shopify/snippets/navigation-menu-link.figma.ts +27 -0
  191. package/templates/shopify/snippets/navigation-menu-link.liquid +31 -0
  192. package/templates/shopify/snippets/navigation-menu.figma.ts +12 -0
  193. package/templates/shopify/snippets/navigation-menu.liquid +300 -0
  194. package/templates/shopify/snippets/pagination.figma.ts +13 -0
  195. package/templates/shopify/snippets/pagination.liquid +208 -0
  196. package/templates/shopify/snippets/popover.figma.ts +41 -0
  197. package/templates/shopify/snippets/popover.liquid +203 -0
  198. package/templates/shopify/snippets/progress.figma.ts +26 -0
  199. package/templates/shopify/snippets/progress.liquid +114 -0
  200. package/templates/shopify/snippets/radio.liquid +145 -0
  201. package/templates/shopify/snippets/sheet.figma.ts +37 -0
  202. package/templates/shopify/snippets/sheet.liquid +197 -0
  203. package/templates/shopify/snippets/sidebar-menu-item.liquid +34 -0
  204. package/templates/shopify/snippets/sidebar-menu-sub-link.liquid +17 -0
  205. package/templates/shopify/snippets/sidebar-menu.liquid +139 -0
  206. package/templates/shopify/snippets/spinner.liquid +42 -0
  207. package/templates/shopify/snippets/switch.liquid +180 -0
  208. package/templates/shopify/snippets/tab.figma.ts +353 -0
  209. package/templates/shopify/snippets/tab.liquid +33 -0
  210. package/templates/shopify/snippets/tabs.figma.ts +21 -0
  211. package/templates/shopify/snippets/tabs.liquid +260 -0
  212. package/templates/shopify/snippets/text-styles.liquid +45 -0
  213. package/templates/shopify/snippets/textarea.liquid +103 -0
  214. package/templates/shopify/snippets/toggle-group.figma.ts +30 -0
  215. package/templates/shopify/snippets/toggle-group.liquid +46 -0
  216. package/templates/shopify/snippets/toggle.figma.ts +357 -0
  217. package/templates/shopify/snippets/toggle.liquid +104 -0
  218. package/templates/shopify/snippets/typeset.liquid +498 -0
  219. package/templates/shopify/src/carousel.js +94 -0
  220. package/templates/shopify/templates/404.json +20 -0
  221. package/templates/shopify/templates/article.json +20 -0
  222. package/templates/shopify/templates/blog.json +20 -0
  223. package/templates/shopify/templates/cart.json +20 -0
  224. package/templates/shopify/templates/collection.json +20 -0
  225. package/templates/shopify/templates/gift_card.liquid +73 -0
  226. package/templates/shopify/templates/index.json +18 -0
  227. package/templates/shopify/templates/list-collections.json +20 -0
  228. package/templates/shopify/templates/page.json +20 -0
  229. package/templates/shopify/templates/password.json +21 -0
  230. package/templates/shopify/templates/product.json +20 -0
  231. package/templates/shopify/templates/search.json +20 -0
  232. package/templates/skills/baseline-client-tokens/SKILL.md +74 -0
  233. package/templates/wordpress/.ddev/commands/web/seed +258 -3
  234. package/templates/wordpress/.ddev/config.yaml +10 -7
  235. package/templates/wordpress/.ddev/seed/gravityforms-contact.json +1 -0
  236. package/templates/wordpress/README.md +37 -39
  237. package/templates/wordpress/auth.json.example +1 -1
  238. package/templates/wordpress/composer.json +88 -84
  239. package/templates/wordpress/theme/README.md +3 -0
  240. package/templates/wordpress/theme/acf-json/.gitkeep +0 -0
  241. package/templates/wordpress/theme/acf-json/group_baseline_alert.json +83 -0
  242. package/templates/wordpress/theme/acf-json/group_baseline_avatar.json +82 -0
  243. package/templates/wordpress/theme/acf-json/group_baseline_avatar_group.json +35 -0
  244. package/templates/wordpress/theme/acf-json/group_baseline_badge.json +93 -0
  245. package/templates/wordpress/theme/acf-json/group_baseline_carousel.json +21 -0
  246. package/templates/wordpress/theme/acf-json/group_baseline_carousel_slide.json +16 -0
  247. package/templates/wordpress/theme/acf-json/group_baseline_dialog.json +68 -0
  248. package/templates/wordpress/theme/acf-json/group_baseline_dialog_footer.json +23 -0
  249. package/templates/wordpress/theme/acf-json/group_baseline_item.json +101 -0
  250. package/templates/wordpress/theme/acf-json/group_baseline_item_group.json +26 -0
  251. package/templates/wordpress/theme/acf-json/group_baseline_sheet.json +104 -0
  252. package/templates/wordpress/theme/acf-json/group_baseline_sheet_footer.json +31 -0
  253. package/templates/wordpress/theme/assets/app.css +2 -0
  254. package/templates/wordpress/theme/assets/editor.css +2 -0
  255. package/templates/wordpress/theme/assets/images/placeholder.svg +1 -0
  256. package/templates/wordpress/theme/assets/js/carousel-editor.js +85 -0
  257. package/templates/wordpress/theme/assets/js/carousel.js +2 -0
  258. package/templates/wordpress/theme/assets/js/core-button-editor.js +243 -0
  259. package/templates/wordpress/theme/assets/js/core-layout-editor.js +144 -0
  260. package/templates/wordpress/theme/assets/js/core-navigation.js +11 -0
  261. package/templates/wordpress/theme/assets/js/media-editor.js +52 -0
  262. package/templates/wordpress/theme/assets/js/media.js +38 -0
  263. package/templates/wordpress/theme/assets/tokens.css +1030 -0
  264. package/templates/wordpress/theme/blocks/alert/alert.figma.ts +32 -0
  265. package/templates/wordpress/theme/blocks/alert/block.json +24 -0
  266. package/templates/wordpress/theme/blocks/alert/render.php +30 -0
  267. package/templates/wordpress/theme/blocks/avatar/block.json +24 -0
  268. package/templates/wordpress/theme/blocks/avatar/render.php +35 -0
  269. package/templates/wordpress/theme/blocks/avatar-group/avatar-group.figma.ts +16 -0
  270. package/templates/wordpress/theme/blocks/avatar-group/block.json +25 -0
  271. package/templates/wordpress/theme/blocks/avatar-group/render.php +27 -0
  272. package/templates/wordpress/theme/blocks/badge/badge.figma.ts +349 -0
  273. package/templates/wordpress/theme/blocks/badge/block.json +23 -0
  274. package/templates/wordpress/theme/blocks/badge/render.php +28 -0
  275. package/templates/wordpress/theme/blocks/carousel/block.json +25 -0
  276. package/templates/wordpress/theme/blocks/carousel/carousel.figma.ts +22 -0
  277. package/templates/wordpress/theme/blocks/carousel/render.php +54 -0
  278. package/templates/wordpress/theme/blocks/carousel-slide/block.json +24 -0
  279. package/templates/wordpress/theme/blocks/carousel-slide/render.php +13 -0
  280. package/templates/wordpress/theme/blocks/dialog/block.json +24 -0
  281. package/templates/wordpress/theme/blocks/dialog/dialog.figma.ts +36 -0
  282. package/templates/wordpress/theme/blocks/dialog/render.php +41 -0
  283. package/templates/wordpress/theme/blocks/dialog-footer/block.json +25 -0
  284. package/templates/wordpress/theme/blocks/dialog-footer/render.php +18 -0
  285. package/templates/wordpress/theme/blocks/item/block.json +25 -0
  286. package/templates/wordpress/theme/blocks/item/item.figma.ts +43 -0
  287. package/templates/wordpress/theme/blocks/item/render.php +38 -0
  288. package/templates/wordpress/theme/blocks/item-group/block.json +25 -0
  289. package/templates/wordpress/theme/blocks/item-group/item-group.figma.ts +28 -0
  290. package/templates/wordpress/theme/blocks/item-group/render.php +22 -0
  291. package/templates/wordpress/theme/blocks/sheet/block.json +24 -0
  292. package/templates/wordpress/theme/blocks/sheet/render.php +39 -0
  293. package/templates/wordpress/theme/blocks/sheet/sheet.figma.ts +38 -0
  294. package/templates/wordpress/theme/blocks/sheet-footer/block.json +25 -0
  295. package/templates/wordpress/theme/blocks/sheet-footer/render.php +18 -0
  296. package/templates/wordpress/theme/build-js.mjs +22 -0
  297. package/templates/wordpress/theme/code-connect/accordion-item.figma.ts +47 -0
  298. package/templates/wordpress/theme/code-connect/accordion.figma.ts +37 -0
  299. package/templates/wordpress/theme/code-connect/avatar.figma.ts +25 -0
  300. package/templates/wordpress/theme/code-connect/breadcrumb.figma.ts +12 -0
  301. package/templates/wordpress/theme/code-connect/button.figma.ts +360 -0
  302. package/templates/wordpress/theme/code-connect/card.figma.ts +45 -0
  303. package/templates/wordpress/theme/code-connect/icon-button.figma.ts +359 -0
  304. package/templates/wordpress/theme/code-connect/navigation-menu.figma.ts +20 -0
  305. package/templates/wordpress/theme/code-connect/pagination.figma.ts +17 -0
  306. package/templates/wordpress/theme/code-connect/popover.figma.ts +42 -0
  307. package/templates/wordpress/theme/code-connect/tabs.figma.ts +32 -0
  308. package/templates/wordpress/theme/code-connect/toggle-group.figma.ts +34 -0
  309. package/templates/wordpress/theme/code-connect/toggle.figma.ts +356 -0
  310. package/templates/wordpress/theme/composer.json +7 -0
  311. package/templates/wordpress/theme/footer.php +4 -0
  312. package/templates/wordpress/theme/functions.php +86 -0
  313. package/templates/wordpress/theme/header.php +17 -0
  314. package/templates/wordpress/theme/inc/acf.php +13 -0
  315. package/templates/wordpress/theme/inc/blocks.php +41 -0
  316. package/templates/wordpress/theme/inc/carousel.php +36 -0
  317. package/templates/wordpress/theme/inc/components/alert.php +83 -0
  318. package/templates/wordpress/theme/inc/components/avatar.php +111 -0
  319. package/templates/wordpress/theme/inc/components/badge.php +96 -0
  320. package/templates/wordpress/theme/inc/components/button.php +77 -0
  321. package/templates/wordpress/theme/inc/components/dialog.php +98 -0
  322. package/templates/wordpress/theme/inc/components/item.php +111 -0
  323. package/templates/wordpress/theme/inc/components/popover.php +125 -0
  324. package/templates/wordpress/theme/inc/components/sheet.php +88 -0
  325. package/templates/wordpress/theme/inc/components/toggle.php +127 -0
  326. package/templates/wordpress/theme/inc/core-button.php +96 -0
  327. package/templates/wordpress/theme/inc/core-card.php +30 -0
  328. package/templates/wordpress/theme/inc/core-layout.php +76 -0
  329. package/templates/wordpress/theme/inc/core-navigation.php +31 -0
  330. package/templates/wordpress/theme/inc/core-pagination.php +87 -0
  331. package/templates/wordpress/theme/inc/header.php +39 -0
  332. package/templates/wordpress/theme/inc/icons.generated.php +94 -0
  333. package/templates/wordpress/theme/inc/icons.php +70 -0
  334. package/templates/wordpress/theme/inc/looks.generated.php +18 -0
  335. package/templates/wordpress/theme/inc/media.php +183 -0
  336. package/templates/wordpress/theme/inc/sections.php +16 -0
  337. package/templates/wordpress/theme/index.php +24 -0
  338. package/templates/wordpress/theme/package-lock.json +1637 -0
  339. package/templates/wordpress/theme/package.json +23 -0
  340. package/templates/wordpress/theme/parts/header.html +23 -0
  341. package/templates/wordpress/theme/patterns/blog-card-grid.php +41 -0
  342. package/templates/wordpress/theme/patterns/card.php +46 -0
  343. package/templates/wordpress/theme/patterns/contact-centered.php +22 -0
  344. package/templates/wordpress/theme/patterns/cta-left.php +25 -0
  345. package/templates/wordpress/theme/patterns/faq-centered.php +36 -0
  346. package/templates/wordpress/theme/patterns/header-inline.php +33 -0
  347. package/templates/wordpress/theme/patterns/header-stacked.php +25 -0
  348. package/templates/wordpress/theme/patterns/hero-centered.php +28 -0
  349. package/templates/wordpress/theme/patterns/hero-split.php +41 -0
  350. package/templates/wordpress/theme/patterns/section.php +28 -0
  351. package/templates/wordpress/theme/src/app.css +45 -0
  352. package/templates/wordpress/theme/src/carousel.css +93 -0
  353. package/templates/wordpress/theme/src/carousel.js +94 -0
  354. package/templates/wordpress/theme/src/checkbox.css +102 -0
  355. package/templates/wordpress/theme/src/core-accordion.css +158 -0
  356. package/templates/wordpress/theme/src/core-avatar.css +68 -0
  357. package/templates/wordpress/theme/src/core-breadcrumbs.css +124 -0
  358. package/templates/wordpress/theme/src/core-button-editor.css +45 -0
  359. package/templates/wordpress/theme/src/core-button.css +155 -0
  360. package/templates/wordpress/theme/src/core-card.css +157 -0
  361. package/templates/wordpress/theme/src/core-layout.css +73 -0
  362. package/templates/wordpress/theme/src/core-navigation.css +290 -0
  363. package/templates/wordpress/theme/src/core-pagination.css +112 -0
  364. package/templates/wordpress/theme/src/core-table.css +88 -0
  365. package/templates/wordpress/theme/src/core-tabs.css +86 -0
  366. package/templates/wordpress/theme/src/dialog.css +29 -0
  367. package/templates/wordpress/theme/src/editor.css +65 -0
  368. package/templates/wordpress/theme/src/field.css +95 -0
  369. package/templates/wordpress/theme/src/fonts.css +3 -0
  370. package/templates/wordpress/theme/src/gravityforms.css +919 -0
  371. package/templates/wordpress/theme/src/header.css +80 -0
  372. package/templates/wordpress/theme/src/icons.generated.css +16 -0
  373. package/templates/wordpress/theme/src/input-group.css +105 -0
  374. package/templates/wordpress/theme/src/input.css +116 -0
  375. package/templates/wordpress/theme/src/item.css +7 -0
  376. package/templates/wordpress/theme/src/looks.generated.css +358 -0
  377. package/templates/wordpress/theme/src/media.css +160 -0
  378. package/templates/wordpress/theme/src/radio.css +88 -0
  379. package/templates/wordpress/theme/src/sections.css +80 -0
  380. package/templates/wordpress/theme/src/sheet.css +24 -0
  381. package/templates/wordpress/theme/src/switch.css +120 -0
  382. package/templates/wordpress/theme/src/text-styles.css +44 -0
  383. package/templates/wordpress/theme/src/textarea.css +61 -0
  384. package/templates/wordpress/theme/src/toggle-group.css +28 -0
  385. package/templates/wordpress/theme/src/typeset.css +510 -0
  386. package/templates/wordpress/theme/style.css +13 -0
  387. package/templates/wordpress/theme/theme.json +362 -0
  388. package/templates/wordpress/web/wp-config.php +38 -0
  389. package/templates/wordpress/wp-cli.yml +1 -0
  390. package/templates/next/.claude/skills/ai-elements/SKILL.md +0 -160
  391. package/templates/next/.claude/skills/ai-elements/references/agent.md +0 -134
  392. package/templates/next/.claude/skills/ai-elements/references/artifact.md +0 -84
  393. package/templates/next/.claude/skills/ai-elements/references/attachments.md +0 -190
  394. package/templates/next/.claude/skills/ai-elements/references/audio-player.md +0 -134
  395. package/templates/next/.claude/skills/ai-elements/references/canvas.md +0 -34
  396. package/templates/next/.claude/skills/ai-elements/references/chain-of-thought.md +0 -81
  397. package/templates/next/.claude/skills/ai-elements/references/checkpoint.md +0 -183
  398. package/templates/next/.claude/skills/ai-elements/references/code-block.md +0 -170
  399. package/templates/next/.claude/skills/ai-elements/references/commit.md +0 -177
  400. package/templates/next/.claude/skills/ai-elements/references/confirmation.md +0 -262
  401. package/templates/next/.claude/skills/ai-elements/references/connection.md +0 -34
  402. package/templates/next/.claude/skills/ai-elements/references/context.md +0 -126
  403. package/templates/next/.claude/skills/ai-elements/references/controls.md +0 -32
  404. package/templates/next/.claude/skills/ai-elements/references/conversation.md +0 -224
  405. package/templates/next/.claude/skills/ai-elements/references/edge.md +0 -52
  406. package/templates/next/.claude/skills/ai-elements/references/environment-variables.md +0 -102
  407. package/templates/next/.claude/skills/ai-elements/references/file-tree.md +0 -72
  408. package/templates/next/.claude/skills/ai-elements/references/image.md +0 -146
  409. package/templates/next/.claude/skills/ai-elements/references/inline-citation.md +0 -299
  410. package/templates/next/.claude/skills/ai-elements/references/jsx-preview.md +0 -104
  411. package/templates/next/.claude/skills/ai-elements/references/message.md +0 -237
  412. package/templates/next/.claude/skills/ai-elements/references/mic-selector.md +0 -189
  413. package/templates/next/.claude/skills/ai-elements/references/model-selector.md +0 -112
  414. package/templates/next/.claude/skills/ai-elements/references/node.md +0 -73
  415. package/templates/next/.claude/skills/ai-elements/references/open-in-chat.md +0 -67
  416. package/templates/next/.claude/skills/ai-elements/references/package-info.md +0 -95
  417. package/templates/next/.claude/skills/ai-elements/references/panel.md +0 -33
  418. package/templates/next/.claude/skills/ai-elements/references/persona.md +0 -166
  419. package/templates/next/.claude/skills/ai-elements/references/plan.md +0 -79
  420. package/templates/next/.claude/skills/ai-elements/references/prompt-input.md +0 -579
  421. package/templates/next/.claude/skills/ai-elements/references/queue.md +0 -172
  422. package/templates/next/.claude/skills/ai-elements/references/reasoning.md +0 -238
  423. package/templates/next/.claude/skills/ai-elements/references/sandbox.md +0 -129
  424. package/templates/next/.claude/skills/ai-elements/references/schema-display.md +0 -102
  425. package/templates/next/.claude/skills/ai-elements/references/shimmer.md +0 -48
  426. package/templates/next/.claude/skills/ai-elements/references/snippet.md +0 -64
  427. package/templates/next/.claude/skills/ai-elements/references/sources.md +0 -209
  428. package/templates/next/.claude/skills/ai-elements/references/speech-input.md +0 -163
  429. package/templates/next/.claude/skills/ai-elements/references/stack-trace.md +0 -224
  430. package/templates/next/.claude/skills/ai-elements/references/suggestion.md +0 -124
  431. package/templates/next/.claude/skills/ai-elements/references/task.md +0 -222
  432. package/templates/next/.claude/skills/ai-elements/references/terminal.md +0 -103
  433. package/templates/next/.claude/skills/ai-elements/references/test-results.md +0 -157
  434. package/templates/next/.claude/skills/ai-elements/references/tool.md +0 -285
  435. package/templates/next/.claude/skills/ai-elements/references/toolbar.md +0 -32
  436. package/templates/next/.claude/skills/ai-elements/references/transcription.md +0 -120
  437. package/templates/next/.claude/skills/ai-elements/references/voice-selector.md +0 -241
  438. package/templates/next/.claude/skills/ai-elements/references/web-preview.md +0 -200
  439. package/templates/next/.claude/skills/ai-elements/scripts/agent.tsx +0 -61
  440. package/templates/next/.claude/skills/ai-elements/scripts/artifact.tsx +0 -127
  441. package/templates/next/.claude/skills/ai-elements/scripts/attachments-inline.tsx +0 -128
  442. package/templates/next/.claude/skills/ai-elements/scripts/attachments-list.tsx +0 -95
  443. package/templates/next/.claude/skills/ai-elements/scripts/attachments.tsx +0 -85
  444. package/templates/next/.claude/skills/ai-elements/scripts/audio-player-remote.tsx +0 -35
  445. package/templates/next/.claude/skills/ai-elements/scripts/audio-player.tsx +0 -68
  446. package/templates/next/.claude/skills/ai-elements/scripts/chain-of-thought.tsx +0 -82
  447. package/templates/next/.claude/skills/ai-elements/scripts/checkpoint.tsx +0 -110
  448. package/templates/next/.claude/skills/ai-elements/scripts/code-block-dark.tsx +0 -46
  449. package/templates/next/.claude/skills/ai-elements/scripts/code-block.tsx +0 -120
  450. package/templates/next/.claude/skills/ai-elements/scripts/commit.tsx +0 -94
  451. package/templates/next/.claude/skills/ai-elements/scripts/confirmation-accepted.tsx +0 -40
  452. package/templates/next/.claude/skills/ai-elements/scripts/confirmation-rejected.tsx +0 -40
  453. package/templates/next/.claude/skills/ai-elements/scripts/confirmation-request.tsx +0 -54
  454. package/templates/next/.claude/skills/ai-elements/scripts/confirmation.tsx +0 -55
  455. package/templates/next/.claude/skills/ai-elements/scripts/context.tsx +0 -45
  456. package/templates/next/.claude/skills/ai-elements/scripts/conversation.tsx +0 -177
  457. package/templates/next/.claude/skills/ai-elements/scripts/environment-variables.tsx +0 -62
  458. package/templates/next/.claude/skills/ai-elements/scripts/file-tree-basic.tsx +0 -18
  459. package/templates/next/.claude/skills/ai-elements/scripts/file-tree-expanded.tsx +0 -21
  460. package/templates/next/.claude/skills/ai-elements/scripts/file-tree-selection.tsx +0 -24
  461. package/templates/next/.claude/skills/ai-elements/scripts/file-tree.tsx +0 -42
  462. package/templates/next/.claude/skills/ai-elements/scripts/image.tsx +0 -20
  463. package/templates/next/.claude/skills/ai-elements/scripts/inline-citation.tsx +0 -97
  464. package/templates/next/.claude/skills/ai-elements/scripts/jsx-preview.tsx +0 -104
  465. package/templates/next/.claude/skills/ai-elements/scripts/message.tsx +0 -365
  466. package/templates/next/.claude/skills/ai-elements/scripts/mic-selector.tsx +0 -49
  467. package/templates/next/.claude/skills/ai-elements/scripts/model-selector.tsx +0 -365
  468. package/templates/next/.claude/skills/ai-elements/scripts/open-in-chat.tsx +0 -33
  469. package/templates/next/.claude/skills/ai-elements/scripts/package-info.tsx +0 -51
  470. package/templates/next/.claude/skills/ai-elements/scripts/persona-command.tsx +0 -110
  471. package/templates/next/.claude/skills/ai-elements/scripts/persona-glint.tsx +0 -110
  472. package/templates/next/.claude/skills/ai-elements/scripts/persona-halo.tsx +0 -110
  473. package/templates/next/.claude/skills/ai-elements/scripts/persona-mana.tsx +0 -110
  474. package/templates/next/.claude/skills/ai-elements/scripts/persona-obsidian.tsx +0 -110
  475. package/templates/next/.claude/skills/ai-elements/scripts/persona-opal.tsx +0 -110
  476. package/templates/next/.claude/skills/ai-elements/scripts/plan.tsx +0 -65
  477. package/templates/next/.claude/skills/ai-elements/scripts/prompt-input-cursor.tsx +0 -502
  478. package/templates/next/.claude/skills/ai-elements/scripts/prompt-input-tooltip.tsx +0 -44
  479. package/templates/next/.claude/skills/ai-elements/scripts/prompt-input.tsx +0 -267
  480. package/templates/next/.claude/skills/ai-elements/scripts/queue-prompt-input.tsx +0 -394
  481. package/templates/next/.claude/skills/ai-elements/scripts/queue.tsx +0 -295
  482. package/templates/next/.claude/skills/ai-elements/scripts/reasoning.tsx +0 -71
  483. package/templates/next/.claude/skills/ai-elements/scripts/sandbox.tsx +0 -178
  484. package/templates/next/.claude/skills/ai-elements/scripts/schema-display-basic.tsx +0 -9
  485. package/templates/next/.claude/skills/ai-elements/scripts/schema-display-body.tsx +0 -20
  486. package/templates/next/.claude/skills/ai-elements/scripts/schema-display-nested.tsx +0 -23
  487. package/templates/next/.claude/skills/ai-elements/scripts/schema-display-params.tsx +0 -16
  488. package/templates/next/.claude/skills/ai-elements/scripts/schema-display.tsx +0 -110
  489. package/templates/next/.claude/skills/ai-elements/scripts/shimmer-duration.tsx +0 -31
  490. package/templates/next/.claude/skills/ai-elements/scripts/shimmer-elements.tsx +0 -43
  491. package/templates/next/.claude/skills/ai-elements/scripts/shimmer.tsx +0 -17
  492. package/templates/next/.claude/skills/ai-elements/scripts/snippet-plain.tsx +0 -19
  493. package/templates/next/.claude/skills/ai-elements/scripts/snippet.tsx +0 -25
  494. package/templates/next/.claude/skills/ai-elements/scripts/sources-custom.tsx +0 -39
  495. package/templates/next/.claude/skills/ai-elements/scripts/sources.tsx +0 -32
  496. package/templates/next/.claude/skills/ai-elements/scripts/speech-input.tsx +0 -84
  497. package/templates/next/.claude/skills/ai-elements/scripts/stack-trace-collapsed.tsx +0 -39
  498. package/templates/next/.claude/skills/ai-elements/scripts/stack-trace-no-internal.tsx +0 -41
  499. package/templates/next/.claude/skills/ai-elements/scripts/stack-trace.tsx +0 -58
  500. package/templates/next/.claude/skills/ai-elements/scripts/suggestion-input.tsx +0 -144
  501. package/templates/next/.claude/skills/ai-elements/scripts/suggestion.tsx +0 -32
  502. package/templates/next/.claude/skills/ai-elements/scripts/task.tsx +0 -59
  503. package/templates/next/.claude/skills/ai-elements/scripts/terminal-basic.tsx +0 -7
  504. package/templates/next/.claude/skills/ai-elements/scripts/terminal-clear.tsx +0 -19
  505. package/templates/next/.claude/skills/ai-elements/scripts/terminal-streaming.tsx +0 -38
  506. package/templates/next/.claude/skills/ai-elements/scripts/terminal.tsx +0 -82
  507. package/templates/next/.claude/skills/ai-elements/scripts/test-results-basic.tsx +0 -27
  508. package/templates/next/.claude/skills/ai-elements/scripts/test-results-errors.tsx +0 -51
  509. package/templates/next/.claude/skills/ai-elements/scripts/test-results-suites.tsx +0 -40
  510. package/templates/next/.claude/skills/ai-elements/scripts/test-results.tsx +0 -102
  511. package/templates/next/.claude/skills/ai-elements/scripts/tool-input-available.tsx +0 -31
  512. package/templates/next/.claude/skills/ai-elements/scripts/tool-input-streaming.tsx +0 -30
  513. package/templates/next/.claude/skills/ai-elements/scripts/tool-output-available.tsx +0 -80
  514. package/templates/next/.claude/skills/ai-elements/scripts/tool-output-error.tsx +0 -44
  515. package/templates/next/.claude/skills/ai-elements/scripts/tool.tsx +0 -222
  516. package/templates/next/.claude/skills/ai-elements/scripts/transcription.tsx +0 -290
  517. package/templates/next/.claude/skills/ai-elements/scripts/voice-selector.tsx +0 -245
  518. package/templates/next/.claude/skills/ai-elements/scripts/web-preview.tsx +0 -115
  519. package/templates/next/.claude/skills/ai-sdk/SKILL.md +0 -78
  520. package/templates/next/.claude/skills/frontend-design/LICENSE.txt +0 -177
  521. package/templates/next/.claude/skills/frontend-design/SKILL.md +0 -55
  522. package/templates/next/.claude/skills/gc-implement-figma-page/SKILL.md +0 -93
  523. package/templates/next/.claude/skills/migrate-ai-sdk-v6-to-v7/SKILL.md +0 -108
  524. package/templates/next/.claude/skills/vercel-composition-patterns/AGENTS.md +0 -946
  525. package/templates/next/.claude/skills/vercel-composition-patterns/README.md +0 -60
  526. package/templates/next/.claude/skills/vercel-composition-patterns/SKILL.md +0 -89
  527. package/templates/next/.claude/skills/vercel-composition-patterns/metadata.json +0 -11
  528. package/templates/next/.claude/skills/vercel-composition-patterns/rules/_sections.md +0 -29
  529. package/templates/next/.claude/skills/vercel-composition-patterns/rules/_template.md +0 -24
  530. package/templates/next/.claude/skills/vercel-composition-patterns/rules/architecture-avoid-boolean-props.md +0 -100
  531. package/templates/next/.claude/skills/vercel-composition-patterns/rules/architecture-compound-components.md +0 -112
  532. package/templates/next/.claude/skills/vercel-composition-patterns/rules/patterns-children-over-render-props.md +0 -87
  533. package/templates/next/.claude/skills/vercel-composition-patterns/rules/patterns-explicit-variants.md +0 -100
  534. package/templates/next/.claude/skills/vercel-composition-patterns/rules/react19-no-forwardref.md +0 -42
  535. package/templates/next/.claude/skills/vercel-composition-patterns/rules/state-context-interface.md +0 -191
  536. package/templates/next/.claude/skills/vercel-composition-patterns/rules/state-decouple-implementation.md +0 -113
  537. package/templates/next/.claude/skills/vercel-composition-patterns/rules/state-lift-state.md +0 -125
  538. package/templates/next/.claude/skills/vercel-react-best-practices/AGENTS.md +0 -3810
  539. package/templates/next/.claude/skills/vercel-react-best-practices/README.md +0 -123
  540. package/templates/next/.claude/skills/vercel-react-best-practices/SKILL.md +0 -149
  541. package/templates/next/.claude/skills/vercel-react-best-practices/metadata.json +0 -15
  542. package/templates/next/.claude/skills/vercel-react-best-practices/rules/_sections.md +0 -46
  543. package/templates/next/.claude/skills/vercel-react-best-practices/rules/_template.md +0 -28
  544. package/templates/next/.claude/skills/vercel-react-best-practices/rules/advanced-effect-event-deps.md +0 -56
  545. package/templates/next/.claude/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +0 -55
  546. package/templates/next/.claude/skills/vercel-react-best-practices/rules/advanced-init-once.md +0 -42
  547. package/templates/next/.claude/skills/vercel-react-best-practices/rules/advanced-use-latest.md +0 -39
  548. package/templates/next/.claude/skills/vercel-react-best-practices/rules/async-api-routes.md +0 -38
  549. package/templates/next/.claude/skills/vercel-react-best-practices/rules/async-cheap-condition-before-await.md +0 -37
  550. package/templates/next/.claude/skills/vercel-react-best-practices/rules/async-defer-await.md +0 -82
  551. package/templates/next/.claude/skills/vercel-react-best-practices/rules/async-dependencies.md +0 -51
  552. package/templates/next/.claude/skills/vercel-react-best-practices/rules/async-parallel.md +0 -28
  553. package/templates/next/.claude/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +0 -99
  554. package/templates/next/.claude/skills/vercel-react-best-practices/rules/bundle-analyzable-paths.md +0 -63
  555. package/templates/next/.claude/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +0 -60
  556. package/templates/next/.claude/skills/vercel-react-best-practices/rules/bundle-conditional.md +0 -31
  557. package/templates/next/.claude/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +0 -49
  558. package/templates/next/.claude/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +0 -35
  559. package/templates/next/.claude/skills/vercel-react-best-practices/rules/bundle-preload.md +0 -50
  560. package/templates/next/.claude/skills/vercel-react-best-practices/rules/client-event-listeners.md +0 -74
  561. package/templates/next/.claude/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +0 -71
  562. package/templates/next/.claude/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +0 -48
  563. package/templates/next/.claude/skills/vercel-react-best-practices/rules/client-swr-dedup.md +0 -56
  564. package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +0 -107
  565. package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-cache-function-results.md +0 -80
  566. package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-cache-property-access.md +0 -28
  567. package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-cache-storage.md +0 -70
  568. package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-combine-iterations.md +0 -32
  569. package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-early-exit.md +0 -50
  570. package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-flatmap-filter.md +0 -60
  571. package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +0 -45
  572. package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-index-maps.md +0 -37
  573. package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-length-check-first.md +0 -49
  574. package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-min-max-loop.md +0 -82
  575. package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-request-idle-callback.md +0 -105
  576. package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +0 -24
  577. package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +0 -57
  578. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rendering-activity.md +0 -26
  579. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +0 -47
  580. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +0 -40
  581. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +0 -38
  582. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +0 -46
  583. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +0 -82
  584. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +0 -30
  585. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rendering-resource-hints.md +0 -85
  586. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rendering-script-defer-async.md +0 -68
  587. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +0 -28
  588. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +0 -75
  589. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +0 -39
  590. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-dependencies.md +0 -45
  591. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +0 -40
  592. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-derived-state.md +0 -29
  593. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +0 -74
  594. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +0 -58
  595. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +0 -38
  596. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-memo.md +0 -44
  597. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +0 -45
  598. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-no-inline-components.md +0 -82
  599. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +0 -35
  600. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-split-combined-hooks.md +0 -64
  601. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-transitions.md +0 -40
  602. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-use-deferred-value.md +0 -59
  603. package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +0 -73
  604. package/templates/next/.claude/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +0 -73
  605. package/templates/next/.claude/skills/vercel-react-best-practices/rules/server-auth-actions.md +0 -96
  606. package/templates/next/.claude/skills/vercel-react-best-practices/rules/server-cache-lru.md +0 -41
  607. package/templates/next/.claude/skills/vercel-react-best-practices/rules/server-cache-react.md +0 -76
  608. package/templates/next/.claude/skills/vercel-react-best-practices/rules/server-dedup-props.md +0 -65
  609. package/templates/next/.claude/skills/vercel-react-best-practices/rules/server-hoist-static-io.md +0 -149
  610. package/templates/next/.claude/skills/vercel-react-best-practices/rules/server-no-shared-module-state.md +0 -50
  611. package/templates/next/.claude/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +0 -83
  612. package/templates/next/.claude/skills/vercel-react-best-practices/rules/server-parallel-nested-fetching.md +0 -34
  613. package/templates/next/.claude/skills/vercel-react-best-practices/rules/server-serialization.md +0 -38
  614. package/templates/next/.claude/skills/web-design-guidelines/SKILL.md +0 -39
  615. package/templates/next/CLAUDE.md +0 -42
  616. package/templates/next/README.md +0 -30
  617. package/templates/next/_gitignore +0 -4
  618. package/templates/next/app/layout.tsx +0 -44
  619. package/templates/next/globals.d.ts +0 -8
  620. package/templates/next/next.config.mjs +0 -6
  621. package/templates/next/package.json +0 -38
  622. package/templates/next/postcss.config.mjs +0 -5
  623. package/templates/next/skills-lock.json +0 -47
  624. package/templates/next/tsconfig.json +0 -36
  625. package/templates/shopify-theme/.claude/skills/gc-shopify-block/SKILL.md +0 -44
  626. package/templates/shopify-theme/.claude/skills/shopify-dev/SKILL.md +0 -51
  627. package/templates/shopify-theme/.claude/skills/shopify-dev/scripts/log_skill_use.mjs +0 -205
  628. package/templates/shopify-theme/.claude/skills/shopify-dev/scripts/search_docs.mjs +0 -272
  629. package/templates/shopify-theme/.claude/skills/shopify-dev/scripts/track-telemetry.ps1 +0 -361
  630. package/templates/shopify-theme/.claude/skills/shopify-dev/scripts/track-telemetry.sh +0 -527
  631. package/templates/shopify-theme/.claude/skills/shopify-liquid/SKILL.md +0 -343
  632. package/templates/shopify-theme/.claude/skills/shopify-liquid/blocks/hero-slide.liquid +0 -342
  633. package/templates/shopify-theme/.claude/skills/shopify-liquid/config/settings_schema.json +0 -1
  634. package/templates/shopify-theme/.claude/skills/shopify-liquid/featured-collection.liquid +0 -457
  635. package/templates/shopify-theme/.claude/skills/shopify-liquid/locales/en.default.json +0 -10
  636. package/templates/shopify-theme/.claude/skills/shopify-liquid/locales/en.default.schema.json +0 -103
  637. package/templates/shopify-theme/.claude/skills/shopify-liquid/package.json +0 -10
  638. package/templates/shopify-theme/.claude/skills/shopify-liquid/scripts/search_docs.mjs +0 -759
  639. package/templates/shopify-theme/.claude/skills/shopify-liquid/scripts/track-telemetry.ps1 +0 -361
  640. package/templates/shopify-theme/.claude/skills/shopify-liquid/scripts/track-telemetry.sh +0 -527
  641. package/templates/shopify-theme/.claude/skills/shopify-liquid/scripts/validate.mjs +0 -654
  642. package/templates/shopify-theme/.claude/skills/shopify-liquid/sections/hero-banner.liquid +0 -329
  643. package/templates/shopify-theme/.claude/skills/shopify-use-shopify-cli/SKILL.md +0 -165
  644. package/templates/shopify-theme/.claude/skills/shopify-use-shopify-cli/scripts/log_skill_use.mjs +0 -205
  645. package/templates/shopify-theme/.claude/skills/shopify-use-shopify-cli/scripts/track-telemetry.ps1 +0 -361
  646. package/templates/shopify-theme/.claude/skills/shopify-use-shopify-cli/scripts/track-telemetry.sh +0 -527
  647. package/templates/shopify-theme/.shopifyignore +0 -9
  648. package/templates/shopify-theme/CLAUDE.md +0 -51
  649. package/templates/shopify-theme/README.md +0 -92
  650. package/templates/shopify-theme/assets/baseline.css +0 -8390
  651. package/templates/shopify-theme/assets/swiper-element-bundle.min.js +0 -14
  652. package/templates/shopify-theme/blocks/_accordion.liquid +0 -59
  653. package/templates/shopify-theme/blocks/_carousel-slide.liquid +0 -24
  654. package/templates/shopify-theme/blocks/_modal-body.liquid +0 -18
  655. package/templates/shopify-theme/blocks/_modal-footer.liquid +0 -36
  656. package/templates/shopify-theme/blocks/_modal-header.liquid +0 -19
  657. package/templates/shopify-theme/blocks/_modal-media.liquid +0 -37
  658. package/templates/shopify-theme/blocks/accordion-group.liquid +0 -53
  659. package/templates/shopify-theme/blocks/alert.liquid +0 -92
  660. package/templates/shopify-theme/blocks/avatar-group.liquid +0 -51
  661. package/templates/shopify-theme/blocks/avatar.liquid +0 -56
  662. package/templates/shopify-theme/blocks/badge.liquid +0 -33
  663. package/templates/shopify-theme/blocks/breadcrumb.liquid +0 -45
  664. package/templates/shopify-theme/blocks/button.liquid +0 -51
  665. package/templates/shopify-theme/blocks/buttons.liquid +0 -41
  666. package/templates/shopify-theme/blocks/card.liquid +0 -67
  667. package/templates/shopify-theme/blocks/carousel.liquid +0 -55
  668. package/templates/shopify-theme/blocks/column.liquid +0 -33
  669. package/templates/shopify-theme/blocks/image.liquid +0 -37
  670. package/templates/shopify-theme/blocks/modal.liquid +0 -52
  671. package/templates/shopify-theme/blocks/popover.liquid +0 -24
  672. package/templates/shopify-theme/blocks/skeleton.liquid +0 -22
  673. package/templates/shopify-theme/blocks/spinner.liquid +0 -22
  674. package/templates/shopify-theme/blocks/split.liquid +0 -39
  675. package/templates/shopify-theme/blocks/tab.liquid +0 -19
  676. package/templates/shopify-theme/blocks/tabs.liquid +0 -78
  677. package/templates/shopify-theme/blocks/tags.liquid +0 -55
  678. package/templates/shopify-theme/blocks/text.liquid +0 -55
  679. package/templates/shopify-theme/blocks/tooltip.liquid +0 -50
  680. package/templates/shopify-theme/blocks/typography.liquid +0 -90
  681. package/templates/shopify-theme/config/settings_data.json +0 -4
  682. package/templates/shopify-theme/config/settings_schema.json +0 -10
  683. package/templates/shopify-theme/layout/theme.liquid +0 -21
  684. package/templates/shopify-theme/locales/en.default.json +0 -5
  685. package/templates/shopify-theme/locales/en.default.schema.json +0 -131
  686. package/templates/shopify-theme/package.json +0 -21
  687. package/templates/shopify-theme/scripts/sync-tokens.mjs +0 -32
  688. package/templates/shopify-theme/sections/baseline-components.liquid +0 -81
  689. package/templates/shopify-theme/skills-lock.json +0 -23
  690. package/templates/shopify-theme/snippets/lucide.liquid +0 -34
  691. package/templates/shopify-theme/snippets/pagination.liquid +0 -44
  692. package/templates/shopify-theme/templates/collection.json +0 -13
  693. package/templates/shopify-theme/templates/gift_card.liquid +0 -5
  694. package/templates/shopify-theme/templates/index.json +0 -135
  695. package/templates/shopify-theme/templates/list-collections.json +0 -13
  696. package/templates/shopify-theme/templates/product.json +0 -13
  697. package/templates/wordpress/.claude/CLAUDE.md +0 -37
  698. package/templates/wordpress/.claude/skills/wp-block-development/SKILL.md +0 -174
  699. package/templates/wordpress/.claude/skills/wp-block-development/references/attributes-and-serialization.md +0 -22
  700. package/templates/wordpress/.claude/skills/wp-block-development/references/block-json.md +0 -49
  701. package/templates/wordpress/.claude/skills/wp-block-development/references/creating-new-blocks.md +0 -46
  702. package/templates/wordpress/.claude/skills/wp-block-development/references/debugging.md +0 -36
  703. package/templates/wordpress/.claude/skills/wp-block-development/references/deprecations.md +0 -24
  704. package/templates/wordpress/.claude/skills/wp-block-development/references/dynamic-rendering.md +0 -23
  705. package/templates/wordpress/.claude/skills/wp-block-development/references/inner-blocks.md +0 -25
  706. package/templates/wordpress/.claude/skills/wp-block-development/references/registration.md +0 -30
  707. package/templates/wordpress/.claude/skills/wp-block-development/references/supports-and-wrappers.md +0 -18
  708. package/templates/wordpress/.claude/skills/wp-block-development/references/tooling-and-testing.md +0 -21
  709. package/templates/wordpress/.claude/skills/wp-block-development/scripts/list_blocks.mjs +0 -121
  710. package/templates/wordpress/.claude/skills/wp-block-themes/SKILL.md +0 -116
  711. package/templates/wordpress/.claude/skills/wp-block-themes/references/creating-new-block-theme.md +0 -37
  712. package/templates/wordpress/.claude/skills/wp-block-themes/references/debugging.md +0 -24
  713. package/templates/wordpress/.claude/skills/wp-block-themes/references/patterns.md +0 -18
  714. package/templates/wordpress/.claude/skills/wp-block-themes/references/style-variations.md +0 -14
  715. package/templates/wordpress/.claude/skills/wp-block-themes/references/templates-and-parts.md +0 -16
  716. package/templates/wordpress/.claude/skills/wp-block-themes/references/theme-json.md +0 -59
  717. package/templates/wordpress/.claude/skills/wp-block-themes/scripts/detect_block_themes.mjs +0 -117
  718. package/templates/wordpress/.claude/skills/wp-performance/SKILL.md +0 -146
  719. package/templates/wordpress/.claude/skills/wp-performance/references/autoload-options.md +0 -24
  720. package/templates/wordpress/.claude/skills/wp-performance/references/cron.md +0 -20
  721. package/templates/wordpress/.claude/skills/wp-performance/references/database.md +0 -20
  722. package/templates/wordpress/.claude/skills/wp-performance/references/http-api.md +0 -15
  723. package/templates/wordpress/.claude/skills/wp-performance/references/measurement.md +0 -21
  724. package/templates/wordpress/.claude/skills/wp-performance/references/object-cache.md +0 -24
  725. package/templates/wordpress/.claude/skills/wp-performance/references/query-monitor-headless.md +0 -38
  726. package/templates/wordpress/.claude/skills/wp-performance/references/server-timing.md +0 -22
  727. package/templates/wordpress/.claude/skills/wp-performance/references/wp-cli-doctor.md +0 -24
  728. package/templates/wordpress/.claude/skills/wp-performance/references/wp-cli-profile.md +0 -32
  729. package/templates/wordpress/.claude/skills/wp-performance/scripts/perf_inspect.mjs +0 -128
  730. package/templates/wordpress/.claude/skills/wp-plugin-development/SKILL.md +0 -112
  731. package/templates/wordpress/.claude/skills/wp-plugin-development/references/data-and-cron.md +0 -19
  732. package/templates/wordpress/.claude/skills/wp-plugin-development/references/debugging.md +0 -19
  733. package/templates/wordpress/.claude/skills/wp-plugin-development/references/lifecycle.md +0 -33
  734. package/templates/wordpress/.claude/skills/wp-plugin-development/references/security.md +0 -29
  735. package/templates/wordpress/.claude/skills/wp-plugin-development/references/settings-api.md +0 -22
  736. package/templates/wordpress/.claude/skills/wp-plugin-development/references/structure.md +0 -16
  737. package/templates/wordpress/.claude/skills/wp-plugin-development/scripts/detect_plugins.mjs +0 -122
  738. package/templates/wordpress/.claude/skills/wp-rest-api/SKILL.md +0 -114
  739. package/templates/wordpress/.claude/skills/wp-rest-api/references/authentication.md +0 -18
  740. package/templates/wordpress/.claude/skills/wp-rest-api/references/custom-content-types.md +0 -20
  741. package/templates/wordpress/.claude/skills/wp-rest-api/references/discovery-and-params.md +0 -20
  742. package/templates/wordpress/.claude/skills/wp-rest-api/references/responses-and-fields.md +0 -30
  743. package/templates/wordpress/.claude/skills/wp-rest-api/references/routes-and-endpoints.md +0 -36
  744. package/templates/wordpress/.claude/skills/wp-rest-api/references/schema.md +0 -22
  745. package/templates/wordpress/.ddev/docker-compose.packages.yaml +0 -14
  746. package/templates/wordpress/.ddev/docker-compose.redis.yaml +0 -11
  747. package/templates/wordpress/.env.example +0 -33
  748. package/templates/wordpress/CLAUDE.md +0 -34
  749. package/templates/wordpress/_gitignore +0 -33
  750. package/templates/wordpress/composer.lock +0 -1594
  751. package/templates/wordpress/package.json +0 -13
  752. package/templates/wordpress/scripts/seed.sh +0 -64
  753. package/templates/wordpress/skills-lock.json +0 -35
  754. package/templates/wordpress/wp-config.php +0 -89
  755. package/templates/wordpress/wp-content/index.php +0 -2
  756. package/templates/wordpress/wp-content/mu-plugins/baseline-bootstrap.php +0 -26
@@ -0,0 +1,2 @@
1
+ /* Baseline carousel (src/carousel.js) bundled with embla-carousel 8.6.0 and embla-carousel-autoplay 8.6.0. Generated: do not edit. */
2
+ (()=>{function Tt(t){return typeof t=="number"}function vt(t){return typeof t=="string"}function gt(t){return typeof t=="boolean"}function Vt(t){return Object.prototype.toString.call(t)==="[object Object]"}function F(t){return Math.abs(t)}function At(t){return Math.sign(t)}function at(t,n){return F(t-n)}function nn(t,n){if(t===0||n===0||F(t)<=F(n))return 0;let e=at(F(t),F(n));return F(e/t)}function en(t){return Math.round(t*100)/100}function lt(t){return ft(t).map(Number)}function Q(t){return t[pt(t)]}function pt(t){return Math.max(0,t.length-1)}function Dt(t,n){return n===pt(t)}function zt(t,n=0){return Array.from(Array(t),(e,r)=>n+r)}function ft(t){return Object.keys(t)}function Gt(t,n){return[t,n].reduce((e,r)=>(ft(r).forEach(u=>{let s=e[u],o=r[u],c=Vt(s)&&Vt(o);e[u]=c?Gt(s,o):o}),e),{})}function It(t,n){return typeof n.MouseEvent<"u"&&t instanceof n.MouseEvent}function on(t,n){let e={start:r,center:u,end:s};function r(){return 0}function u(i){return s(i)/2}function s(i){return n-i}function o(i,a){return vt(t)?e[t](i):t(n,i,a)}return{measure:o}}function dt(){let t=[];function n(u,s,o,c={passive:!0}){let i;if("addEventListener"in u)u.addEventListener(s,o,c),i=()=>u.removeEventListener(s,o,c);else{let a=u;a.addListener(o),i=()=>a.removeListener(o)}return t.push(i),r}function e(){t=t.filter(u=>u())}let r={add:n,clear:e};return r}function rn(t,n,e,r){let u=dt(),s=1e3/60,o=null,c=0,i=0;function a(){u.add(t,"visibilitychange",()=>{t.hidden&&l()})}function h(){y(),u.clear()}function p(g){if(!i)return;o||(o=g,e(),e());let f=g-o;for(o=g,c+=f;c>=s;)e(),c-=s;let S=c/s;r(S),i&&(i=n.requestAnimationFrame(p))}function m(){i||(i=n.requestAnimationFrame(p))}function y(){n.cancelAnimationFrame(i),o=null,c=0,i=0}function l(){o=null,c=0}return{init:a,destroy:h,start:m,stop:y,update:e,render:r}}function sn(t,n){let e=n==="rtl",r=t==="y",u=r?"y":"x",s=r?"x":"y",o=!r&&e?-1:1,c=h(),i=p();function a(l){let{height:d,width:g}=l;return r?d:g}function h(){return r?"top":e?"right":"left"}function p(){return r?"bottom":e?"left":"right"}function m(l){return l*o}return{scroll:u,cross:s,startEdge:c,endEdge:i,measureSize:a,direction:m}}function ot(t=0,n=0){let e=F(t-n);function r(a){return a<t}function u(a){return a>n}function s(a){return r(a)||u(a)}function o(a){return s(a)?r(a)?t:n:a}function c(a){return e?a-e*Math.ceil((a-n)/e):a}return{length:e,max:n,min:t,constrain:o,reachedAny:s,reachedMax:u,reachedMin:r,removeOffset:c}}function Ht(t,n,e){let{constrain:r}=ot(0,t),u=t+1,s=o(n);function o(m){return e?F((u+m)%u):r(m)}function c(){return s}function i(m){return s=o(m),p}function a(m){return h().set(c()+m)}function h(){return Ht(t,c(),e)}let p={get:c,set:i,add:a,clone:h};return p}function cn(t,n,e,r,u,s,o,c,i,a,h,p,m,y,l,d,g,f,S){let{cross:x,direction:v}=t,D=["INPUT","SELECT","TEXTAREA"],I={passive:!1},E=dt(),L=dt(),T=ot(50,225).constrain(y.measure(20)),P={mouse:300,touch:400},A={mouse:500,touch:600},C=l?43:25,R=!1,O=0,k=0,G=!1,H=!1,U=!1,$=!1;function K(b){if(!S)return;function w(V){(gt(S)||S(b,V))&&it(V)}let N=n;E.add(N,"dragstart",V=>V.preventDefault(),I).add(N,"touchmove",()=>{},I).add(N,"touchend",()=>{}).add(N,"touchstart",w).add(N,"mousedown",w).add(N,"touchcancel",B).add(N,"contextmenu",B).add(N,"click",Z,!0)}function j(){E.clear(),L.clear()}function _(){let b=$?e:n;L.add(b,"touchmove",z,I).add(b,"touchend",B).add(b,"mousemove",z,I).add(b,"mouseup",B)}function J(b){let w=b.nodeName||"";return D.includes(w)}function Y(){return(l?A:P)[$?"mouse":"touch"]}function st(b,w){let N=p.add(At(b)*-1),V=h.byDistance(b,!l).distance;return l||F(b)<T?V:g&&w?V*.5:h.byIndex(N.get(),0).distance}function it(b){let w=It(b,r);$=w,U=l&&w&&!b.buttons&&R,R=at(u.get(),o.get())>=2,!(w&&b.button!==0)&&(J(b.target)||(G=!0,s.pointerDown(b),a.useFriction(0).useDuration(0),u.set(o),_(),O=s.readPoint(b),k=s.readPoint(b,x),m.emit("pointerDown")))}function z(b){if(!It(b,r)&&b.touches.length>=2)return B(b);let N=s.readPoint(b),V=s.readPoint(b,x),X=at(N,O),W=at(V,k);if(!H&&!$&&(!b.cancelable||(H=X>W,!H)))return B(b);let nt=s.pointerMove(b);X>d&&(U=!0),a.useFriction(.3).useDuration(.75),c.start(),u.add(v(nt)),b.preventDefault()}function B(b){let N=h.byDistance(0,!1).index!==p.get(),V=s.pointerUp(b)*Y(),X=st(v(V),N),W=nn(V,X),nt=C-10*W,tt=f+W/50;H=!1,G=!1,L.clear(),a.useDuration(nt).useFriction(tt),i.distance(X,!l),$=!1,m.emit("pointerUp")}function Z(b){U&&(b.stopPropagation(),b.preventDefault(),U=!1)}function q(){return G}return{init:K,destroy:j,pointerDown:q}}function un(t,n){let r,u;function s(p){return p.timeStamp}function o(p,m){let l=`client${(m||t.scroll)==="x"?"X":"Y"}`;return(It(p,n)?p:p.touches[0])[l]}function c(p){return r=p,u=p,o(p)}function i(p){let m=o(p)-o(u),y=s(p)-s(r)>170;return u=p,y&&(r=p),m}function a(p){if(!r||!u)return 0;let m=o(u)-o(r),y=s(p)-s(r),l=s(p)-s(u)>170,d=m/y;return y&&!l&&F(d)>.1?d:0}return{pointerDown:c,pointerMove:i,pointerUp:a,readPoint:o}}function an(){function t(e){let{offsetTop:r,offsetLeft:u,offsetWidth:s,offsetHeight:o}=e;return{top:r,right:u+s,bottom:r+o,left:u,width:s,height:o}}return{measure:t}}function ln(t){function n(r){return t*(r/100)}return{measure:n}}function fn(t,n,e,r,u,s,o){let c=[t].concat(r),i,a,h=[],p=!1;function m(g){return u.measureSize(o.measure(g))}function y(g){if(!s)return;a=m(t),h=r.map(m);function f(S){for(let x of S){if(p)return;let v=x.target===t,D=r.indexOf(x.target),I=v?a:h[D],E=m(v?t:r[D]);if(F(E-I)>=.5){g.reInit(),n.emit("resize");break}}}i=new ResizeObserver(S=>{(gt(s)||s(g,S))&&f(S)}),e.requestAnimationFrame(()=>{c.forEach(S=>i.observe(S))})}function l(){p=!0,i&&i.disconnect()}return{init:y,destroy:l}}function dn(t,n,e,r,u,s){let o=0,c=0,i=u,a=s,h=t.get(),p=0;function m(){let I=r.get()-t.get(),E=!i,L=0;return E?(o=0,e.set(r),t.set(r),L=I):(e.set(t),o+=I/i,o*=a,h+=o,t.add(o),L=h-p),c=At(L),p=h,D}function y(){let I=r.get()-n.get();return F(I)<.001}function l(){return i}function d(){return c}function g(){return o}function f(){return x(u)}function S(){return v(s)}function x(I){return i=I,D}function v(I){return a=I,D}let D={direction:d,duration:l,velocity:g,seek:m,settled:y,useBaseFriction:S,useBaseDuration:f,useFriction:v,useDuration:x};return D}function pn(t,n,e,r,u){let s=u.measure(10),o=u.measure(50),c=ot(.1,.99),i=!1;function a(){return!(i||!t.reachedAny(e.get())||!t.reachedAny(n.get()))}function h(y){if(!a())return;let l=t.reachedMin(n.get())?"min":"max",d=F(t[l]-n.get()),g=e.get()-n.get(),f=c.constrain(d/o);e.subtract(g*f),!y&&F(g)<s&&(e.set(t.constrain(e.get())),r.useDuration(25).useBaseFriction())}function p(y){i=!y}return{shouldConstrain:a,constrain:h,toggleActive:p}}function mn(t,n,e,r,u){let s=ot(-n+t,0),o=p(),c=h(),i=m();function a(l,d){return at(l,d)<=1}function h(){let l=o[0],d=Q(o),g=o.lastIndexOf(l),f=o.indexOf(d)+1;return ot(g,f)}function p(){return e.map((l,d)=>{let{min:g,max:f}=s,S=s.constrain(l),x=!d,v=Dt(e,d);return x?f:v||a(g,S)?g:a(f,S)?f:S}).map(l=>parseFloat(l.toFixed(3)))}function m(){if(n<=t+u)return[s.max];if(r==="keepSnaps")return o;let{min:l,max:d}=c;return o.slice(l,d)}return{snapsContained:i,scrollContainLimit:c}}function gn(t,n,e){let r=n[0],u=e?r-t:Q(n);return{limit:ot(u,r)}}function hn(t,n,e,r){let s=n.min+.1,o=n.max+.1,{reachedMin:c,reachedMax:i}=ot(s,o);function a(m){return m===1?i(e.get()):m===-1?c(e.get()):!1}function h(m){if(!a(m))return;let y=t*(m*-1);r.forEach(l=>l.add(y))}return{loop:h}}function Sn(t){let{max:n,length:e}=t;function r(s){let o=s-n;return e?o/-e:0}return{get:r}}function yn(t,n,e,r,u){let{startEdge:s,endEdge:o}=t,{groupSlides:c}=u,i=p().map(n.measure),a=m(),h=y();function p(){return c(r).map(d=>Q(d)[o]-d[0][s]).map(F)}function m(){return r.map(d=>e[s]-d[s]).map(d=>-F(d))}function y(){return c(a).map(d=>d[0]).map((d,g)=>d+i[g])}return{snaps:a,snapsAligned:h}}function bn(t,n,e,r,u,s){let{groupSlides:o}=u,{min:c,max:i}=r,a=h();function h(){let m=o(s),y=!t||n==="keepSnaps";return e.length===1?[s]:y?m:m.slice(c,i).map((l,d,g)=>{let f=!d,S=Dt(g,d);if(f){let x=Q(g[0])+1;return zt(x)}if(S){let x=pt(s)-Q(g)[0]+1;return zt(x,Q(g)[0])}return l})}return{slideRegistry:a}}function xn(t,n,e,r,u){let{reachedAny:s,removeOffset:o,constrain:c}=r;function i(l){return l.concat().sort((d,g)=>F(d)-F(g))[0]}function a(l){let d=t?o(l):c(l),g=n.map((S,x)=>({diff:h(S-d,0),index:x})).sort((S,x)=>F(S.diff)-F(x.diff)),{index:f}=g[0];return{index:f,distance:d}}function h(l,d){let g=[l,l+e,l-e];if(!t)return l;if(!d)return i(g);let f=g.filter(S=>At(S)===d);return f.length?i(f):Q(g)-e}function p(l,d){let g=n[l]-u.get(),f=h(g,d);return{index:l,distance:f}}function m(l,d){let g=u.get()+l,{index:f,distance:S}=a(g),x=!t&&s(g);if(!d||x)return{index:f,distance:l};let v=n[f]-S,D=l+h(v,0);return{index:f,distance:D}}return{byDistance:m,byIndex:p,shortcut:h}}function En(t,n,e,r,u,s,o){function c(p){let m=p.distance,y=p.index!==n.get();s.add(m),m&&(r.duration()?t.start():(t.update(),t.render(1),t.update())),y&&(e.set(n.get()),n.set(p.index),o.emit("select"))}function i(p,m){let y=u.byDistance(p,m);c(y)}function a(p,m){let y=n.clone().set(p),l=u.byIndex(y.get(),m);c(l)}return{distance:i,index:a}}function Ln(t,n,e,r,u,s,o,c){let i={passive:!0,capture:!0},a=0;function h(y){if(!c)return;function l(d){if(new Date().getTime()-a>10)return;o.emit("slideFocusStart"),t.scrollLeft=0;let S=e.findIndex(x=>x.includes(d));Tt(S)&&(u.useDuration(0),r.index(S,0),o.emit("slideFocus"))}s.add(document,"keydown",p,!1),n.forEach((d,g)=>{s.add(d,"focus",f=>{(gt(c)||c(y,f))&&l(g)},i)})}function p(y){y.code==="Tab"&&(a=new Date().getTime())}return{init:h}}function ut(t){let n=t;function e(){return n}function r(i){n=o(i)}function u(i){n+=o(i)}function s(i){n-=o(i)}function o(i){return Tt(i)?i:i.get()}return{get:e,set:r,add:u,subtract:s}}function jt(t,n){let e=t.scroll==="x"?o:c,r=n.style,u=null,s=!1;function o(m){return`translate3d(${m}px,0px,0px)`}function c(m){return`translate3d(0px,${m}px,0px)`}function i(m){if(s)return;let y=en(t.direction(m));y!==u&&(r.transform=e(y),u=y)}function a(m){s=!m}function h(){s||(r.transform="",n.getAttribute("style")||n.removeAttribute("style"))}return{clear:h,to:i,toggleActive:a}}function vn(t,n,e,r,u,s,o,c,i){let h=lt(u),p=lt(u).reverse(),m=f().concat(S());function y(E,L){return E.reduce((T,P)=>T-u[P],L)}function l(E,L){return E.reduce((T,P)=>y(T,L)>0?T.concat([P]):T,[])}function d(E){return s.map((L,T)=>({start:L-r[T]+.5+E,end:L+n-.5+E}))}function g(E,L,T){let P=d(L);return E.map(A=>{let C=T?0:-e,R=T?e:0,O=T?"end":"start",k=P[A][O];return{index:A,loopPoint:k,slideLocation:ut(-1),translate:jt(t,i[A]),target:()=>c.get()>k?C:R}})}function f(){let E=o[0],L=l(p,E);return g(L,e,!1)}function S(){let E=n-o[0]-1,L=l(h,E);return g(L,-e,!0)}function x(){return m.every(({index:E})=>{let L=h.filter(T=>T!==E);return y(L,n)<=.1})}function v(){m.forEach(E=>{let{target:L,translate:T,slideLocation:P}=E,A=L();A!==P.get()&&(T.to(A),P.set(A))})}function D(){m.forEach(E=>E.translate.clear())}return{canLoop:x,clear:D,loop:v,loopPoints:m}}function In(t,n,e){let r,u=!1;function s(i){if(!e)return;function a(h){for(let p of h)if(p.type==="childList"){i.reInit(),n.emit("slidesChanged");break}}r=new MutationObserver(h=>{u||(gt(e)||e(i,h))&&a(h)}),r.observe(t,{childList:!0})}function o(){r&&r.disconnect(),u=!0}return{init:s,destroy:o}}function Tn(t,n,e,r){let u={},s=null,o=null,c,i=!1;function a(){c=new IntersectionObserver(l=>{i||(l.forEach(d=>{let g=n.indexOf(d.target);u[g]=d}),s=null,o=null,e.emit("slidesInView"))},{root:t.parentElement,threshold:r}),n.forEach(l=>c.observe(l))}function h(){c&&c.disconnect(),i=!0}function p(l){return ft(u).reduce((d,g)=>{let f=parseInt(g),{isIntersecting:S}=u[f];return(l&&S||!l&&!S)&&d.push(f),d},[])}function m(l=!0){if(l&&s)return s;if(!l&&o)return o;let d=p(l);return l&&(s=d),l||(o=d),d}return{init:a,destroy:h,get:m}}function An(t,n,e,r,u,s){let{measureSize:o,startEdge:c,endEdge:i}=t,a=e[0]&&u,h=l(),p=d(),m=e.map(o),y=g();function l(){if(!a)return 0;let S=e[0];return F(n[c]-S[c])}function d(){if(!a)return 0;let S=s.getComputedStyle(Q(r));return parseFloat(S.getPropertyValue(`margin-${i}`))}function g(){return e.map((S,x,v)=>{let D=!x,I=Dt(v,x);return D?m[x]+h:I?m[x]+p:v[x+1][c]-S[c]}).map(F)}return{slideSizes:m,slideSizesWithGaps:y,startGap:h,endGap:p}}function Dn(t,n,e,r,u,s,o,c,i){let{startEdge:a,endEdge:h,direction:p}=t,m=Tt(e);function y(f,S){return lt(f).filter(x=>x%S===0).map(x=>f.slice(x,x+S))}function l(f){return f.length?lt(f).reduce((S,x,v)=>{let D=Q(S)||0,I=D===0,E=x===pt(f),L=u[a]-s[D][a],T=u[a]-s[x][h],P=!r&&I?p(o):0,A=!r&&E?p(c):0,C=F(T-A-(L+P));return v&&C>n+i&&S.push(x),E&&S.push(f.length),S},[]).map((S,x,v)=>{let D=Math.max(v[x-1]||0);return f.slice(D,S)}):[]}function d(f){return m?y(f,e):l(f)}return{groupSlides:d}}function On(t,n,e,r,u,s,o){let{align:c,axis:i,direction:a,startIndex:h,loop:p,duration:m,dragFree:y,dragThreshold:l,inViewThreshold:d,slidesToScroll:g,skipSnaps:f,containScroll:S,watchResize:x,watchSlides:v,watchDrag:D,watchFocus:I}=s,E=2,L=an(),T=L.measure(n),P=e.map(L.measure),A=sn(i,a),C=A.measureSize(T),R=ln(C),O=on(c,C),k=!p&&!!S,G=p||!!S,{slideSizes:H,slideSizesWithGaps:U,startGap:$,endGap:K}=An(A,T,P,e,G,u),j=Dn(A,C,g,p,T,P,$,K,E),{snaps:_,snapsAligned:J}=yn(A,O,T,P,j),Y=-Q(_)+Q(U),{snapsContained:st,scrollContainLimit:it}=mn(C,Y,J,S,E),z=k?st:J,{limit:B}=gn(Y,z,p),Z=Ht(pt(z),h,p),q=Z.clone(),M=lt(e),b=({dragHandler:rt,scrollBody:Et,scrollBounds:Lt,options:{loop:mt}})=>{mt||Lt.constrain(rt.pointerDown()),Et.seek()},w=({scrollBody:rt,translate:Et,location:Lt,offsetLocation:mt,previousLocation:Kt,scrollLooper:Xt,slideLooper:_t,dragHandler:Jt,animation:Yt,eventHandler:Ft,scrollBounds:Zt,options:{loop:Pt}},Nt)=>{let Ct=rt.settled(),Wt=!Zt.shouldConstrain(),kt=Pt?Ct:Ct&&Wt,Bt=kt&&!Jt.pointerDown();Bt&&Yt.stop();let tn=Lt.get()*Nt+Kt.get()*(1-Nt);mt.set(tn),Pt&&(Xt.loop(rt.direction()),_t.loop()),Et.to(mt.get()),Bt&&Ft.emit("settle"),kt||Ft.emit("scroll")},N=rn(r,u,()=>b(xt),rt=>w(xt,rt)),V=.68,X=z[Z.get()],W=ut(X),nt=ut(X),tt=ut(X),et=ut(X),ct=dn(W,tt,nt,et,m,V),yt=xn(p,z,Y,B,et),bt=En(N,Z,q,ct,yt,et,o),Ot=Sn(B),wt=dt(),$t=Tn(n,e,o,d),{slideRegistry:Mt}=bn(k,S,z,it,j,M),Qt=Ln(t,e,Mt,bt,ct,wt,o,I),xt={ownerDocument:r,ownerWindow:u,eventHandler:o,containerRect:T,slideRects:P,animation:N,axis:A,dragHandler:cn(A,t,r,u,et,un(A,u),W,N,bt,ct,yt,Z,o,R,y,l,f,V,D),eventStore:wt,percentOfView:R,index:Z,indexPrevious:q,limit:B,location:W,offsetLocation:tt,previousLocation:nt,options:s,resizeHandler:fn(n,o,u,e,A,x,L),scrollBody:ct,scrollBounds:pn(B,tt,et,ct,R),scrollLooper:hn(Y,B,tt,[W,tt,nt,et]),scrollProgress:Ot,scrollSnapList:z.map(Ot.get),scrollSnaps:z,scrollTarget:yt,scrollTo:bt,slideLooper:vn(A,C,Y,H,U,_,z,tt,e),slideFocus:Qt,slidesHandler:In(n,o,v),slidesInView:$t,slideIndexes:M,slideRegistry:Mt,slidesToScroll:j,target:et,translate:jt(A,n)};return xt}function wn(){let t={},n;function e(a){n=a}function r(a){return t[a]||[]}function u(a){return r(a).forEach(h=>h(n,a)),i}function s(a,h){return t[a]=r(a).concat([h]),i}function o(a,h){return t[a]=r(a).filter(p=>p!==h),i}function c(){t={}}let i={init:e,emit:u,off:o,on:s,clear:c};return i}var Mn={align:"center",axis:"x",container:null,slides:null,containScroll:"trimSnaps",direction:"ltr",slidesToScroll:1,inViewThreshold:0,breakpoints:{},dragFree:!1,dragThreshold:10,loop:!1,skipSnaps:!1,duration:25,startIndex:0,active:!0,watchDrag:!0,watchResize:!0,watchSlides:!0,watchFocus:!0};function Fn(t){function n(s,o){return Gt(s,o||{})}function e(s){let o=s.breakpoints||{},c=ft(o).filter(i=>t.matchMedia(i).matches).map(i=>o[i]).reduce((i,a)=>n(i,a),{});return n(s,c)}function r(s){return s.map(o=>ft(o.breakpoints||{})).reduce((o,c)=>o.concat(c),[]).map(t.matchMedia)}return{mergeOptions:n,optionsAtMedia:e,optionsMediaQueries:r}}function Pn(t){let n=[];function e(s,o){return n=o.filter(({options:c})=>t.optionsAtMedia(c).active!==!1),n.forEach(c=>c.init(s,t)),o.reduce((c,i)=>Object.assign(c,{[i.name]:i}),{})}function r(){n=n.filter(s=>s.destroy())}return{init:e,destroy:r}}function ht(t,n,e){let r=t.ownerDocument,u=r.defaultView,s=Fn(u),o=Pn(s),c=dt(),i=wn(),{mergeOptions:a,optionsAtMedia:h,optionsMediaQueries:p}=s,{on:m,off:y,emit:l}=i,d=A,g=!1,f,S=a(Mn,ht.globalOptions),x=a(S),v=[],D,I,E;function L(){let{container:M,slides:b}=x;I=(vt(M)?t.querySelector(M):M)||t.children[0];let N=vt(b)?I.querySelectorAll(b):b;E=[].slice.call(N||I.children)}function T(M){let b=On(t,I,E,r,u,M,i);if(M.loop&&!b.slideLooper.canLoop()){let w=Object.assign({},M,{loop:!1});return T(w)}return b}function P(M,b){g||(S=a(S,M),x=h(S),v=b||v,L(),f=T(x),p([S,...v.map(({options:w})=>w)]).forEach(w=>c.add(w,"change",A)),x.active&&(f.translate.to(f.location.get()),f.animation.init(),f.slidesInView.init(),f.slideFocus.init(q),f.eventHandler.init(q),f.resizeHandler.init(q),f.slidesHandler.init(q),f.options.loop&&f.slideLooper.loop(),I.offsetParent&&E.length&&f.dragHandler.init(q),D=o.init(q,v)))}function A(M,b){let w=j();C(),P(a({startIndex:w},M),b),i.emit("reInit")}function C(){f.dragHandler.destroy(),f.eventStore.clear(),f.translate.clear(),f.slideLooper.clear(),f.resizeHandler.destroy(),f.slidesHandler.destroy(),f.slidesInView.destroy(),f.animation.destroy(),o.destroy(),c.clear()}function R(){g||(g=!0,c.clear(),C(),i.emit("destroy"),i.clear())}function O(M,b,w){!x.active||g||(f.scrollBody.useBaseFriction().useDuration(b===!0?0:x.duration),f.scrollTo.index(M,w||0))}function k(M){let b=f.index.add(1).get();O(b,M,-1)}function G(M){let b=f.index.add(-1).get();O(b,M,1)}function H(){return f.index.add(1).get()!==j()}function U(){return f.index.add(-1).get()!==j()}function $(){return f.scrollSnapList}function K(){return f.scrollProgress.get(f.offsetLocation.get())}function j(){return f.index.get()}function _(){return f.indexPrevious.get()}function J(){return f.slidesInView.get()}function Y(){return f.slidesInView.get(!1)}function st(){return D}function it(){return f}function z(){return t}function B(){return I}function Z(){return E}let q={canScrollNext:H,canScrollPrev:U,containerNode:B,internalEngine:it,destroy:R,off:y,on:m,emit:l,plugins:st,previousScrollSnap:_,reInit:d,rootNode:z,scrollNext:k,scrollPrev:G,scrollProgress:K,scrollSnapList:$,scrollTo:O,selectedScrollSnap:j,slideNodes:Z,slidesInView:J,slidesNotInView:Y};return P(n,e),setTimeout(()=>i.emit("init"),0),q}ht.globalOptions=void 0;var Nn={active:!0,breakpoints:{},delay:4e3,jump:!1,playOnInit:!0,stopOnFocusIn:!0,stopOnInteraction:!0,stopOnMouseEnter:!1,stopOnLastSnap:!1,rootNode:null};function Cn(t,n){let e=t.scrollSnapList();return typeof n=="number"?e.map(()=>n):n(e,t)}function kn(t,n){let e=t.rootNode();return n&&n(e)||e}function St(t={}){let n,e,r,u,s=null,o=0,c=!1,i=!1,a=!1,h=!1;function p(O,k){e=O;let{mergeOptions:G,optionsAtMedia:H}=k,U=G(Nn,St.globalOptions),$=G(U,t);if(n=H($),e.scrollSnapList().length<=1)return;h=n.jump,r=!1,u=Cn(e,n.delay);let{eventStore:K,ownerDocument:j}=e.internalEngine(),_=!!e.internalEngine().options.watchDrag,J=kn(e,n.rootNode);K.add(j,"visibilitychange",f),_&&e.on("pointerDown",x),_&&!n.stopOnInteraction&&e.on("pointerUp",v),n.stopOnMouseEnter&&K.add(J,"mouseenter",D),n.stopOnMouseEnter&&!n.stopOnInteraction&&K.add(J,"mouseleave",I),n.stopOnFocusIn&&e.on("slideFocusStart",g),n.stopOnFocusIn&&!n.stopOnInteraction&&K.add(e.containerNode(),"focusout",d),n.playOnInit&&d()}function m(){e.off("pointerDown",x).off("pointerUp",v).off("slideFocusStart",g),g(),r=!0,c=!1}function y(){let{ownerWindow:O}=e.internalEngine();O.clearTimeout(o),o=O.setTimeout(A,u[e.selectedScrollSnap()]),s=new Date().getTime(),e.emit("autoplay:timerset")}function l(){let{ownerWindow:O}=e.internalEngine();O.clearTimeout(o),o=0,s=null,e.emit("autoplay:timerstopped")}function d(){if(!r){if(S()){a=!0;return}c||e.emit("autoplay:play"),y(),c=!0}}function g(){r||(c&&e.emit("autoplay:stop"),l(),c=!1)}function f(){if(S())return a=c,g();a&&d()}function S(){let{ownerDocument:O}=e.internalEngine();return O.visibilityState==="hidden"}function x(){i||g()}function v(){i||d()}function D(){i=!0,g()}function I(){i=!1,d()}function E(O){typeof O<"u"&&(h=O),d()}function L(){c&&g()}function T(){c&&d()}function P(){return c}function A(){let{index:O}=e.internalEngine(),k=O.clone().add(1).get(),G=e.scrollSnapList().length-1,H=n.stopOnLastSnap&&k===G;if(e.canScrollNext()?e.scrollNext(h):e.scrollTo(0,h),e.emit("autoplay:select"),H)return g();d()}function C(){if(!s)return null;let O=u[e.selectedScrollSnap()],k=new Date().getTime()-s;return O-k}return{name:"autoplay",options:t,init:p,destroy:m,play:E,stop:L,reset:T,isPlaying:P,timeUntilNext:C}}St.globalOptions=void 0;var qt=new WeakSet;function Ut(t){if(qt.has(t))return;let n=t.querySelector("[data-slot=carousel-content]");if(!n)return;qt.add(t);let e={};try{e=JSON.parse(t.getAttribute("data-options")||"{}")}catch{}e.axis=t.getAttribute("data-orientation")==="vertical"?"y":"x";let r=n.getAttribute("data-track"),u=r&&n.querySelector(r);u&&(e.container=u);let s=[],o=Number(t.getAttribute("data-autoplay"));o>0&&s.push(St({delay:o,stopOnMouseEnter:!0,stopOnFocusIn:!0,stopOnInteraction:!0}));let c=ht(n,e,s),i=t.querySelector("[data-slot=carousel-previous], [data-carousel-previous]"),a=t.querySelector("[data-slot=carousel-next], [data-carousel-next]"),h=t.querySelector("[data-slot=carousel-dots]"),p=h&&h.getAttribute("data-dot-class");i?.addEventListener("click",()=>c.scrollPrev()),a?.addEventListener("click",()=>c.scrollNext());let m=()=>{h&&h.replaceChildren(...c.scrollSnapList().map((l,d)=>{let g=document.createElement("button");return g.type="button",g.setAttribute("data-slot","carousel-dot"),g.setAttribute("aria-label",`Go to slide ${d+1}`),p&&(g.className=p),g.addEventListener("click",()=>c.scrollTo(d)),g}))},y=()=>{i&&(i.disabled=!c.canScrollPrev()),a&&(a.disabled=!c.canScrollNext()),h&&[...h.children].forEach((l,d)=>{d===c.selectedScrollSnap()?l.setAttribute("aria-current","true"):l.removeAttribute("aria-current")})};c.on("init",()=>{m(),y()}),c.on("reInit",()=>{m(),y()}),c.on("select",y),m(),y(),t.addEventListener("keydown",l=>{l.key==="ArrowLeft"?(l.preventDefault(),c.scrollPrev()):l.key==="ArrowRight"&&(l.preventDefault(),c.scrollNext())},!0)}function Rt(t){t.querySelectorAll?.("[data-slot=carousel]").forEach(Ut)}if(!window.baselineCarousel){window.baselineCarousel=!0;let t=()=>{Rt(document),new MutationObserver(n=>{for(let e of n)for(let r of e.addedNodes)r instanceof Element&&(r.matches("[data-slot=carousel]")&&Ut(r),Rt(r))}).observe(document.documentElement,{childList:!0,subtree:!0})};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",t):t()}})();
@@ -0,0 +1,243 @@
1
+ /**
2
+ * Baseline core/button editor integration (ADR-0018, icons ADR-0020). Plain JS on the WordPress globals; no bundler.
3
+ * Only what cannot be done in PHP or theme.json lives here:
4
+ * - the Size control, first item of the Dimensions panel (Styles tab), bound to `baselineSize`;
5
+ * - the Icon panel (Settings tab): a searchable grid of the registered `baseline` collection (inlined by PHP as
6
+ * window.baselineIcons), icon position and icon-only toggles, bound to `baselineIcon*`;
7
+ * - the editor-side wrapper classes (is-size-*, has-icon, has-icon-end, is-icon-only) and a `--baseline-icon`
8
+ * data-URI so editor CSS can paint the icon as a mask pseudo-element without touching RichText content.
9
+ * Block styles are registered in inc/core-button.php; token panels are switched off in theme.json `settings.blocks`.
10
+ */
11
+ (function (wp) {
12
+ 'use strict';
13
+ var __ = wp.i18n.__;
14
+ var el = wp.element.createElement;
15
+ var Fragment = wp.element.Fragment;
16
+ var RawHTML = wp.element.RawHTML;
17
+ var useState = wp.element.useState;
18
+ var addFilter = wp.hooks.addFilter;
19
+ var createHigherOrderComponent = wp.compose.createHigherOrderComponent;
20
+ var InspectorControls = wp.blockEditor.InspectorControls;
21
+ var c = wp.components;
22
+ var SelectControl = c.SelectControl;
23
+ var ToolsPanelItem = c.__experimentalToolsPanelItem;
24
+ var PanelBody = c.PanelBody;
25
+ var SearchControl = c.SearchControl;
26
+ var ToggleControl = c.ToggleControl;
27
+ var TextControl = c.TextControl;
28
+ var Button = c.Button;
29
+ var ToggleGroupControl = c.__experimentalToggleGroupControl;
30
+ var ToggleGroupControlOption = c.__experimentalToggleGroupControlOption;
31
+
32
+ var BUTTON = 'core/button';
33
+ var DEFAULT_SIZE = 'md';
34
+ var SIZES = [
35
+ { label: 'XS', value: 'xs' },
36
+ { label: 'SM', value: 'sm' },
37
+ { label: 'MD', value: 'md' },
38
+ { label: 'LG', value: 'lg' },
39
+ ];
40
+ var ICONS = Array.isArray(window.baselineIcons) ? window.baselineIcons : [];
41
+ function findIcon(name) {
42
+ for (var i = 0; i < ICONS.length; i++) {
43
+ if (ICONS[i].name === name) {
44
+ return ICONS[i];
45
+ }
46
+ }
47
+ return null;
48
+ }
49
+
50
+ /* ---- Size: an item of the Dimensions panel (mounted before BlockEdit so it is the first row) ---- */
51
+ function sizeItem(props) {
52
+ var size = props.attributes.baselineSize || DEFAULT_SIZE;
53
+ var reset = function () {
54
+ props.setAttributes({ baselineSize: DEFAULT_SIZE });
55
+ };
56
+ return el(
57
+ InspectorControls,
58
+ { group: 'dimensions' },
59
+ el(
60
+ ToolsPanelItem,
61
+ {
62
+ label: __('Size', 'baseline'),
63
+ panelId: props.clientId,
64
+ isShownByDefault: true,
65
+ hasValue: function () {
66
+ return size !== DEFAULT_SIZE;
67
+ },
68
+ onDeselect: reset,
69
+ },
70
+ el(SelectControl, {
71
+ label: __('Size', 'baseline'),
72
+ value: size,
73
+ options: SIZES,
74
+ onChange: function (value) {
75
+ props.setAttributes({ baselineSize: value });
76
+ },
77
+ __nextHasNoMarginBottom: true,
78
+ __next40pxDefaultSize: true,
79
+ })
80
+ )
81
+ );
82
+ }
83
+
84
+ /* ---- Icon: Settings tab panel with a searchable grid of the registered collection ---- */
85
+ function IconPanel(props) {
86
+ var attrs = props.attributes;
87
+ var current = findIcon(attrs.baselineIcon || '');
88
+ var search = useState('');
89
+ var query = search[0].toLowerCase();
90
+ var matches = ICONS.filter(function (i) {
91
+ return !query || i.name.indexOf(query) !== -1 || i.label.toLowerCase().indexOf(query) !== -1;
92
+ });
93
+ var positionControl = ToggleGroupControl
94
+ ? el(
95
+ ToggleGroupControl,
96
+ {
97
+ label: __('Position', 'baseline'),
98
+ value: attrs.baselineIconPosition || 'start',
99
+ isBlock: true,
100
+ onChange: function (v) {
101
+ props.setAttributes({ baselineIconPosition: v });
102
+ },
103
+ __nextHasNoMarginBottom: true,
104
+ __next40pxDefaultSize: true,
105
+ },
106
+ el(ToggleGroupControlOption, { value: 'start', label: __('Before text', 'baseline') }),
107
+ el(ToggleGroupControlOption, { value: 'end', label: __('After text', 'baseline') })
108
+ )
109
+ : el(SelectControl, {
110
+ label: __('Position', 'baseline'),
111
+ value: attrs.baselineIconPosition || 'start',
112
+ options: [
113
+ { value: 'start', label: __('Before text', 'baseline') },
114
+ { value: 'end', label: __('After text', 'baseline') },
115
+ ],
116
+ onChange: function (v) {
117
+ props.setAttributes({ baselineIconPosition: v });
118
+ },
119
+ __nextHasNoMarginBottom: true,
120
+ });
121
+
122
+ return el(
123
+ PanelBody,
124
+ { title: __('Icon', 'baseline'), initialOpen: !!current },
125
+ current
126
+ ? el(
127
+ 'div',
128
+ { className: 'baseline-icon-current' },
129
+ el(RawHTML, { className: 'baseline-icon-current__glyph' }, current.svg),
130
+ el('span', { className: 'baseline-icon-current__label' }, current.label),
131
+ el(
132
+ Button,
133
+ {
134
+ variant: 'tertiary',
135
+ isDestructive: true,
136
+ size: 'compact',
137
+ onClick: function () {
138
+ props.setAttributes({ baselineIcon: '', baselineIconOnly: false });
139
+ },
140
+ },
141
+ __('Remove', 'baseline')
142
+ )
143
+ )
144
+ : null,
145
+ el(SearchControl, {
146
+ label: __('Search icons', 'baseline'),
147
+ value: search[0],
148
+ onChange: search[1],
149
+ __nextHasNoMarginBottom: true,
150
+ }),
151
+ el(
152
+ 'div',
153
+ { className: 'baseline-icon-grid', role: 'listbox', 'aria-label': __('Baseline icons', 'baseline') },
154
+ matches.map(function (i) {
155
+ var selected = current && current.name === i.name;
156
+ return el(
157
+ 'button',
158
+ {
159
+ key: i.name,
160
+ type: 'button',
161
+ role: 'option',
162
+ 'aria-selected': selected ? 'true' : 'false',
163
+ title: i.label,
164
+ className: 'baseline-icon-grid__item' + (selected ? ' is-selected' : ''),
165
+ onClick: function () {
166
+ props.setAttributes({ baselineIcon: i.name });
167
+ },
168
+ },
169
+ el(RawHTML, null, i.svg)
170
+ );
171
+ })
172
+ ),
173
+ current ? positionControl : null,
174
+ current
175
+ ? el(ToggleControl, {
176
+ label: __('Icon only (text becomes the accessible name)', 'baseline'),
177
+ checked: !!attrs.baselineIconOnly,
178
+ onChange: function (v) {
179
+ props.setAttributes({ baselineIconOnly: !!v });
180
+ },
181
+ __nextHasNoMarginBottom: true,
182
+ })
183
+ : null,
184
+ current && attrs.baselineIconOnly
185
+ ? el(TextControl, {
186
+ label: __('Accessible label', 'baseline'),
187
+ help: __('Read by screen readers; hidden visually.', 'baseline'),
188
+ value: attrs.text ? String(attrs.text).replace(/<[^>]+>/g, '') : '',
189
+ onChange: function (v) {
190
+ props.setAttributes({ text: v });
191
+ },
192
+ __nextHasNoMarginBottom: true,
193
+ __next40pxDefaultSize: true,
194
+ })
195
+ : null
196
+ );
197
+ }
198
+
199
+ addFilter(
200
+ 'editor.BlockEdit',
201
+ 'baseline/core-button-controls',
202
+ createHigherOrderComponent(function (BlockEdit) {
203
+ return function (props) {
204
+ if (props.name !== BUTTON) {
205
+ return el(BlockEdit, props);
206
+ }
207
+ return el(Fragment, null, sizeItem(props), el(BlockEdit, props), el(InspectorControls, null, el(IconPanel, props)));
208
+ };
209
+ }, 'withBaselineButtonControls')
210
+ );
211
+
212
+ /* ---- Canvas: mirror the render-time classes; expose the icon as a mask image for editor CSS ---- */
213
+ addFilter(
214
+ 'editor.BlockListBlock',
215
+ 'baseline/core-button-classes',
216
+ createHigherOrderComponent(function (BlockListBlock) {
217
+ return function (props) {
218
+ if (props.name !== BUTTON) {
219
+ return el(BlockListBlock, props);
220
+ }
221
+ var a = props.attributes;
222
+ var classes = ['is-size-' + (a.baselineSize || DEFAULT_SIZE)];
223
+ var style = {};
224
+ var icon = findIcon(a.baselineIcon || '');
225
+ if (icon) {
226
+ classes.push('has-icon');
227
+ if (a.baselineIconPosition === 'end') {
228
+ classes.push('has-icon-end');
229
+ }
230
+ if (a.baselineIconOnly) {
231
+ classes.push('is-icon-only');
232
+ }
233
+ style['--baseline-icon'] = 'url("data:image/svg+xml,' + encodeURIComponent(icon.svg) + '")';
234
+ }
235
+ var wrapperProps = Object.assign({}, props.wrapperProps, {
236
+ style: Object.assign({}, props.wrapperProps && props.wrapperProps.style, style),
237
+ });
238
+ var className = (props.className ? props.className + ' ' : '') + classes.join(' ');
239
+ return el(BlockListBlock, Object.assign({}, props, { className: className, wrapperProps: wrapperProps }));
240
+ };
241
+ }, 'withBaselineButtonClasses')
242
+ );
243
+ })(window.wp);
@@ -0,0 +1,144 @@
1
+ /**
2
+ * Baseline layout editor integration (B5; specs: components/section, columns). Plain JS on the WordPress globals; no
3
+ * bundler. Only what PHP and theme.json cannot do (inc/core-layout.php registers the attributes and renders them):
4
+ * - Scheme and Surface selects for core/group (the Section's colour scheme and Figma Surface mode), shown on the canvas
5
+ * as data-scheme and has-surface-<mode>;
6
+ * - an "Invert order when stacked" toggle for core/columns, shown on the canvas as is-inverted-on-mobile;
7
+ * - the two Figma ratios core/columns has no variation for (40 / 60 and 60 / 40).
8
+ */
9
+ (function (wp) {
10
+ 'use strict';
11
+ var __ = wp.i18n.__;
12
+ var el = wp.element.createElement;
13
+ var Fragment = wp.element.Fragment;
14
+ var addFilter = wp.hooks.addFilter;
15
+ var createHigherOrderComponent = wp.compose.createHigherOrderComponent;
16
+ var InspectorControls = wp.blockEditor.InspectorControls;
17
+ var PanelBody = wp.components.PanelBody;
18
+ var SelectControl = wp.components.SelectControl;
19
+ var ToggleControl = wp.components.ToggleControl;
20
+
21
+ var SCHEMES = [
22
+ { label: __('Inherit', 'baseline'), value: '' },
23
+ { label: 'Scheme 1', value: 'scheme-1' },
24
+ { label: 'Scheme 2', value: 'scheme-2' },
25
+ { label: 'Error', value: 'error' },
26
+ { label: 'Success', value: 'success' },
27
+ { label: 'Warning', value: 'warning' },
28
+ ];
29
+
30
+ var SURFACES = [
31
+ { label: __('Background', 'baseline'), value: '' },
32
+ { label: __('Muted', 'baseline'), value: 'muted' },
33
+ { label: __('Card', 'baseline'), value: 'card' },
34
+ { label: __('Primary', 'baseline'), value: 'primary' },
35
+ { label: __('Secondary', 'baseline'), value: 'secondary' },
36
+ { label: __('Accent', 'baseline'), value: 'accent' },
37
+ { label: __('Inverse', 'baseline'), value: 'inverse' },
38
+ ];
39
+
40
+ var withControls = createHigherOrderComponent(function (BlockEdit) {
41
+ return function (props) {
42
+ if (props.name === 'core/group') {
43
+ return el(
44
+ Fragment,
45
+ null,
46
+ el(BlockEdit, props),
47
+ el(
48
+ InspectorControls,
49
+ null,
50
+ el(
51
+ PanelBody,
52
+ { title: __('Scheme', 'baseline'), initialOpen: true },
53
+ el(SelectControl, {
54
+ label: __('Colour scheme', 'baseline'),
55
+ help: __('Paints this group (a Section) and everything in it in the chosen scheme.', 'baseline'),
56
+ value: props.attributes.baselineScheme || '',
57
+ options: SCHEMES,
58
+ onChange: function (value) {
59
+ props.setAttributes({ baselineScheme: value });
60
+ },
61
+ __nextHasNoMarginBottom: true,
62
+ __next40pxDefaultSize: true,
63
+ }),
64
+ el(SelectControl, {
65
+ label: __('Surface', 'baseline'),
66
+ help: __('The fill and text pair within the scheme, e.g. Muted for an announcement bar.', 'baseline'),
67
+ value: props.attributes.baselineSurface || '',
68
+ options: SURFACES,
69
+ onChange: function (value) {
70
+ props.setAttributes({ baselineSurface: value });
71
+ },
72
+ __nextHasNoMarginBottom: true,
73
+ __next40pxDefaultSize: true,
74
+ })
75
+ )
76
+ )
77
+ );
78
+ }
79
+ if (props.name === 'core/columns') {
80
+ return el(
81
+ Fragment,
82
+ null,
83
+ el(BlockEdit, props),
84
+ el(
85
+ InspectorControls,
86
+ null,
87
+ el(
88
+ PanelBody,
89
+ { title: __('Stacking', 'baseline'), initialOpen: true },
90
+ el(ToggleControl, {
91
+ label: __('Invert order when stacked', 'baseline'),
92
+ help: __('On mobile the last column shows first, e.g. an image on the right sits above the text.', 'baseline'),
93
+ checked: !!props.attributes.baselineInvertOrder,
94
+ onChange: function (value) {
95
+ props.setAttributes({ baselineInvertOrder: value });
96
+ },
97
+ __nextHasNoMarginBottom: true,
98
+ })
99
+ )
100
+ )
101
+ );
102
+ }
103
+ return el(BlockEdit, props);
104
+ };
105
+ }, 'withBaselineLayoutControls');
106
+ addFilter('editor.BlockEdit', 'baseline/layout-controls', withControls);
107
+
108
+ // The canvas mirrors the render filters, so the editor shows the scheme and the inverted stacking.
109
+ var withCanvasAttrs = createHigherOrderComponent(function (BlockListBlock) {
110
+ return function (props) {
111
+ var a = props.attributes || {};
112
+ if (props.name === 'core/group' && (a.baselineScheme || a.baselineSurface)) {
113
+ var wrapperProps = a.baselineScheme ? Object.assign({}, props.wrapperProps, { 'data-scheme': a.baselineScheme }) : props.wrapperProps;
114
+ var className = a.baselineSurface ? [props.className, 'has-surface-' + a.baselineSurface].filter(Boolean).join(' ') : props.className;
115
+ return el(BlockListBlock, Object.assign({}, props, { wrapperProps: wrapperProps, className: className }));
116
+ }
117
+ if (props.name === 'core/columns' && a.baselineInvertOrder) {
118
+ return el(BlockListBlock, Object.assign({}, props, { className: [props.className, 'is-inverted-on-mobile'].filter(Boolean).join(' ') }));
119
+ }
120
+ return el(BlockListBlock, props);
121
+ };
122
+ }, 'withBaselineLayoutCanvas');
123
+ addFilter('editor.BlockListBlock', 'baseline/layout-canvas', withCanvasAttrs);
124
+
125
+ wp.domReady(function () {
126
+ var col = function (width) {
127
+ return ['core/column', { width: width }];
128
+ };
129
+ wp.blocks.registerBlockVariation('core/columns', {
130
+ name: 'baseline-two-fifths-three-fifths',
131
+ title: __('40 / 60', 'baseline'),
132
+ description: __('Two columns; the second is wider (Figma 2:3).', 'baseline'),
133
+ innerBlocks: [col('40%'), col('60%')],
134
+ scope: ['block'],
135
+ });
136
+ wp.blocks.registerBlockVariation('core/columns', {
137
+ name: 'baseline-three-fifths-two-fifths',
138
+ title: __('60 / 40', 'baseline'),
139
+ description: __('Two columns; the first is wider (Figma 3:2).', 'baseline'),
140
+ innerBlocks: [col('60%'), col('40%')],
141
+ scope: ['block'],
142
+ });
143
+ });
144
+ })(window.wp);
@@ -0,0 +1,11 @@
1
+ // core/navigation's mobile menu as the Sidebar's Sheet (src/core-navigation.css; spec: components/sidebar/spec.md): a
2
+ // click on the dimmed page beside the panel closes it, as a Sheet's does. That area is the overlay's own ::before, and
3
+ // core gives the overlay tabindex="-1", so the click keeps focus inside and core's focusout never closes it. This
4
+ // presses core's close button, so core's Interactivity store stays the owner of the state.
5
+ document.addEventListener("click", (event) => {
6
+ const panel = event.target;
7
+ if (!(panel instanceof Element) || !panel.matches(".wp-block-navigation__responsive-container.is-menu-open")) return;
8
+ const box = panel.getBoundingClientRect();
9
+ if (event.clientX >= box.left && event.clientX <= box.right) return; // the panel's own padding
10
+ panel.querySelector(".wp-block-navigation__responsive-container-close")?.click();
11
+ });
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Baseline Media editor integration (spec: components/media/spec.md, ADR-0018). Plain JS on the WordPress globals; no
3
+ * bundler. One toggle in the Settings tab of core/video and core/embed, bound to the server-registered attribute
4
+ * `baselinePlayback` (inc/media.php): "Open in a dialog" plays the video in a Baseline Dialog instead of in place.
5
+ * Saved markup never changes; the facade and the dialog are rendered at request time.
6
+ */
7
+ (function (wp) {
8
+ 'use strict';
9
+ var __ = wp.i18n.__;
10
+ var el = wp.element.createElement;
11
+ var Fragment = wp.element.Fragment;
12
+ var InspectorControls = wp.blockEditor.InspectorControls;
13
+ var PanelBody = wp.components.PanelBody;
14
+ var ToggleControl = wp.components.ToggleControl;
15
+
16
+ var BLOCKS = ['core/video', 'core/embed'];
17
+
18
+ wp.hooks.addFilter(
19
+ 'editor.BlockEdit',
20
+ 'baseline/media-playback',
21
+ wp.compose.createHigherOrderComponent(function (BlockEdit) {
22
+ return function (props) {
23
+ if (BLOCKS.indexOf(props.name) < 0) {
24
+ return el(BlockEdit, props);
25
+ }
26
+ var dialog = props.attributes.baselinePlayback === 'dialog';
27
+ return el(
28
+ Fragment,
29
+ null,
30
+ el(BlockEdit, props),
31
+ el(
32
+ InspectorControls,
33
+ null,
34
+ el(
35
+ PanelBody,
36
+ { title: __('Playback', 'baseline'), initialOpen: true },
37
+ el(ToggleControl, {
38
+ label: __('Open in a dialog', 'baseline'),
39
+ help: __('The play button opens the video in a dialog; closing it stops the video. Needs a poster (core/video) or a YouTube or Vimeo link (embed).', 'baseline'),
40
+ checked: dialog,
41
+ onChange: function (on) {
42
+ props.setAttributes({ baselinePlayback: on ? 'dialog' : 'inline' });
43
+ },
44
+ __nextHasNoMarginBottom: true,
45
+ })
46
+ )
47
+ )
48
+ );
49
+ };
50
+ }, 'withBaselineMediaPlayback')
51
+ );
52
+ })(window.wp);
@@ -0,0 +1,38 @@
1
+ /* Baseline Media facade (spec: components/media/spec.md; markup from inc/media.php). The play button is a link to the
2
+ video; with this script the click instead puts the frame's inert <template> player to work. Nothing of the video loads
3
+ before that. No dependencies; delegated, so facades added later work too.
4
+ - inline playback: the player replaces the play button over the poster and takes focus;
5
+ - dialog playback (the button carries data-bl-media-dialog): the lightbox <dialog> opens first, then the player goes in,
6
+ so showModal() leaves focus on the close button (focus inside a cross-origin iframe would keep Escape from closing
7
+ it). Closing the dialog removes the player, which stops every source the same way. */
8
+ document.addEventListener("click", (event) => {
9
+ const button = event.target instanceof Element ? event.target.closest("[data-bl-media-play]") : null;
10
+ if (!button) return;
11
+ const frame = button.closest(".bl-media__frame");
12
+ const template = frame && frame.querySelector("template[data-bl-media-player]");
13
+ if (!template) return;
14
+ event.preventDefault();
15
+ const player = template.content.firstElementChild.cloneNode(true);
16
+ player.setAttribute("tabindex", "-1");
17
+
18
+ const dialogId = button.getAttribute("data-bl-media-dialog");
19
+ const dialog = dialogId ? document.getElementById(dialogId) : null;
20
+ if (dialog) {
21
+ const slot = dialog.querySelector("[data-slot=media-dialog-frame]");
22
+ dialog.showModal();
23
+ slot.replaceChildren(player);
24
+ if (!dialog.dataset.blMediaBound) {
25
+ dialog.dataset.blMediaBound = "1";
26
+ dialog.addEventListener("close", () => slot.replaceChildren());
27
+ // the lightbox fills the viewport, so a click outside the video is a click on the <dialog> itself
28
+ dialog.addEventListener("click", (e) => {
29
+ if (e.target === dialog) dialog.close();
30
+ });
31
+ }
32
+ return;
33
+ }
34
+
35
+ frame.querySelector(".bl-media__play").replaceWith(player);
36
+ template.remove();
37
+ player.focus();
38
+ });