@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,31 @@
1
+ // url=https://www.figma.com/design/ba28zZ49PAkXhE7PW5kyT9/Design-System?node-id=2207-24960
2
+ // source=registry/src/ui/meter/meter.tsx
3
+ // component=Meter
4
+ // Code Connect template (v2, parserless). Spec: components/meter/spec.md.
5
+ import figma from "figma";
6
+ const instance = figma.selectedInstance;
7
+
8
+ // Show booleans map to CHILDREN, never to props (ADR-0013)
9
+ const showLabel = instance.getBoolean("Show Label");
10
+ const showValue = instance.getBoolean("Show Value");
11
+ const label = instance.getString("Label");
12
+ const valueText = instance.getString("Value");
13
+ // The bar's fill is drawn, not a property; the Value text ("64%") is the best source for the number.
14
+ const parsed = /^\s*(\d+(?:\.\d+)?)\s*%\s*$/.exec(valueText ?? "");
15
+ const value = parsed ? parsed[1] : "50";
16
+ // A value text that is not a percentage ("12 GB of 15 GB") becomes MeterValue's children
17
+ const valueChild = parsed ? figma.code`<MeterValue />` : figma.code`<MeterValue>${valueText}</MeterValue>`;
18
+
19
+ export default {
20
+ example: showLabel || showValue
21
+ ? figma.code`
22
+ <Meter value={${value}}>
23
+ ${showLabel ? figma.code`<MeterLabel>${label}</MeterLabel>` : ""}
24
+ ${showValue ? valueChild : ""}
25
+ </Meter>
26
+ `
27
+ : figma.code`<Meter value={${value}} aria-label="${label}" />`,
28
+ imports: ['import { Meter, MeterLabel, MeterValue } from "@/components/ui/meter"'],
29
+ id: "meter",
30
+ metadata: { nestable: true },
31
+ };
@@ -0,0 +1,36 @@
1
+ // url=https://www.figma.com/design/ba28zZ49PAkXhE7PW5kyT9/Design-System?node-id=2025-24756
2
+ // source=registry/src/ui/native-select/native-select.tsx
3
+ // component=Select
4
+ // Code Connect template (v2, parserless). Spec: components/native-select/spec.md.
5
+ // Figma property VALUES are lower-kebab and identical to the code enums, so every getEnum map is an identity map.
6
+ //
7
+ // This set is the TRIGGER, which is the native <select> on every platform, so it maps to NativeSelect. The
8
+ // designed panel (Select Panel 2026:24802) is the React-only Base UI composition and is mapped separately.
9
+ import figma from "figma";
10
+ const instance = figma.selectedInstance;
11
+
12
+ // State carries only what code consumes. focus-visible is a CSS pseudo-state and was dropped as an axis in
13
+ // the Core batch (2026-09-28).
14
+ const state = instance.getEnum("State", { default: "default", invalid: "invalid", disabled: "disabled" });
15
+
16
+ // Filled is value PRESENCE, not a prop: a Figma boolean only shows and hides layers, so it has to be an axis
17
+ // (the same call Input's and Textarea's specs record).
18
+ const filled = instance.getEnum("Filled", { false: "false", true: "true" });
19
+
20
+ const attrs = [
21
+ state === "invalid" ? " aria-invalid" : "",
22
+ state === "disabled" ? " disabled" : "",
23
+ ].join("");
24
+
25
+ // A select is never placed without a label, so swap Select into a Field in Figma and Field's own template
26
+ // renders the wrapper. The options are the author's; the snippet shows the shape.
27
+ const placeholder = filled === "true" ? "" : `\n <option value="" disabled>Select an option</option>`;
28
+
29
+ export default {
30
+ example: figma.code`<NativeSelect id="select"${attrs}>${placeholder}
31
+ <option>Option</option>
32
+ </NativeSelect>`,
33
+ imports: ['import { NativeSelect } from "@/components/ui/native-select"'],
34
+ id: "native-select",
35
+ metadata: { nestable: true },
36
+ };
@@ -0,0 +1,33 @@
1
+ // url=https://www.figma.com/design/ba28zZ49PAkXhE7PW5kyT9/Design-System?node-id=4547-131
2
+ // source=registry/src/ui/navigation-menu/navigation-menu.tsx
3
+ // component=NavigationMenuLink
4
+ // Code Connect template (v2, parserless). Spec: components/navigation-menu/spec.md.
5
+ // active is the current page (aria-current); hover and focus are runtime. Title + Description is upstream's demo
6
+ // ListItem; Show Badge places a Badge beside the title (user, 2026-10-06).
7
+ import figma from "figma";
8
+ const instance = figma.selectedInstance;
9
+
10
+ const label = instance.getString("Label");
11
+ const active = instance.getEnum("State", { default: false, hover: false, active: true, focus: false });
12
+ const showDescription = instance.getBoolean("Show Description");
13
+ const description = showDescription ? instance.getString("Description") : "";
14
+ const badge = instance.getBoolean("Show Badge");
15
+
16
+ export default {
17
+ example: showDescription || badge
18
+ ? figma.code`<NavigationMenuLink href="#"${active ? " active" : ""}>
19
+ <div className="flex flex-col gap-(--bl-navigation-menu-link-description-gap)">
20
+ <div className="flex items-center gap-(--bl-navigation-menu-link-gap) leading-none font-(--bl-navigation-menu-link-title-font-weight)">
21
+ ${label}${badge ? figma.code`
22
+ <Badge size="sm">New</Badge>` : ""}
23
+ </div>${showDescription ? figma.code`
24
+ <div className="line-clamp-2 text-muted-foreground">${description}</div>` : ""}
25
+ </div>
26
+ </NavigationMenuLink>`
27
+ : figma.code`<NavigationMenuLink href="#"${active ? " active" : ""}>${label}</NavigationMenuLink>`,
28
+ imports: badge
29
+ ? ['import { NavigationMenuLink } from "@/components/ui/navigation-menu"', 'import { Badge } from "@/components/ui/badge"']
30
+ : ['import { NavigationMenuLink } from "@/components/ui/navigation-menu"'],
31
+ id: "navigation-menu-link",
32
+ metadata: { nestable: true },
33
+ };
@@ -0,0 +1,28 @@
1
+ // url=https://www.figma.com/design/ba28zZ49PAkXhE7PW5kyT9/Design-System?node-id=4547-83
2
+ // source=registry/src/ui/navigation-menu/navigation-menu.tsx
3
+ // component=NavigationMenuTrigger
4
+ // Code Connect template (v2, parserless). Spec: components/navigation-menu/spec.md.
5
+ // State is runtime (hover, an open panel, focus), so it is not read. Show Chevron off is a top-level link drawn as a
6
+ // trigger (upstream's navigationMenuTriggerStyle); on, a trigger with its panel.
7
+ import figma from "figma";
8
+ const instance = figma.selectedInstance;
9
+
10
+ const label = instance.getString("Label");
11
+ const chevron = instance.getBoolean("Show Chevron");
12
+ const id = "nav-" + label.trim().toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
13
+
14
+ export default {
15
+ example: chevron
16
+ ? figma.code`<NavigationMenuItem>
17
+ <NavigationMenuTrigger commandfor="${id}">${label}</NavigationMenuTrigger>
18
+ <NavigationMenuContent id="${id}">…</NavigationMenuContent>
19
+ </NavigationMenuItem>`
20
+ : figma.code`<NavigationMenuItem>
21
+ <NavigationMenuLink href="#" className={navigationMenuTriggerStyle()}>${label}</NavigationMenuLink>
22
+ </NavigationMenuItem>`,
23
+ imports: chevron
24
+ ? ['import { NavigationMenuContent, NavigationMenuItem, NavigationMenuTrigger } from "@/components/ui/navigation-menu"']
25
+ : ['import { NavigationMenuItem, NavigationMenuLink, navigationMenuTriggerStyle } from "@/components/ui/navigation-menu"'],
26
+ id: "navigation-menu-trigger",
27
+ metadata: { nestable: true },
28
+ };
@@ -0,0 +1,30 @@
1
+ // url=https://www.figma.com/design/ba28zZ49PAkXhE7PW5kyT9/Design-System?node-id=2537-49294
2
+ // source=registry/src/ui/navigation-menu/navigation-menu.tsx
3
+ // component=NavigationMenu
4
+ // Code Connect template (v2, parserless). Spec: components/navigation-menu/spec.md.
5
+ // The Children slot holds the author's triggers and links (their own templates), so the snippet shows the shape: a
6
+ // trigger naming its panel by id (ADR-0033), and a top-level link drawn as a trigger.
7
+ import figma from "figma";
8
+
9
+ export default {
10
+ example: figma.code`<NavigationMenu aria-label="Main">
11
+ <NavigationMenuList>
12
+ <NavigationMenuItem>
13
+ <NavigationMenuTrigger commandfor="nav-products">Products</NavigationMenuTrigger>
14
+ <NavigationMenuContent id="nav-products">
15
+ <ul className="w-96">
16
+ <li><NavigationMenuLink href="/products/new">New arrivals</NavigationMenuLink></li>
17
+ </ul>
18
+ </NavigationMenuContent>
19
+ </NavigationMenuItem>
20
+ <NavigationMenuItem>
21
+ <NavigationMenuLink href="/pricing" className={navigationMenuTriggerStyle()}>Pricing</NavigationMenuLink>
22
+ </NavigationMenuItem>
23
+ </NavigationMenuList>
24
+ </NavigationMenu>`,
25
+ imports: [
26
+ 'import { NavigationMenu, NavigationMenuContent, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, navigationMenuTriggerStyle } from "@/components/ui/navigation-menu"',
27
+ ],
28
+ id: "navigation-menu",
29
+ metadata: { nestable: true },
30
+ };
@@ -0,0 +1,11 @@
1
+ // url=https://www.figma.com/design/ba28zZ49PAkXhE7PW5kyT9/Design-System?node-id=1700-4114
2
+ // source=registry/src/ui/pagination/pagination.tsx
3
+ // component=PaginationEllipsis
4
+ // Code Connect template (v2, parserless). Spec: components/pagination/spec.md.
5
+ import figma from "figma";
6
+ export default {
7
+ example: figma.code`<PaginationItem><PaginationEllipsis /></PaginationItem>`,
8
+ imports: ['import { PaginationEllipsis, PaginationItem } from "@/components/ui/pagination"'],
9
+ id: "pagination-ellipsis",
10
+ metadata: { nestable: true },
11
+ };
@@ -0,0 +1,24 @@
1
+ // url=https://www.figma.com/design/ba28zZ49PAkXhE7PW5kyT9/Design-System?node-id=482-14
2
+ // source=registry/src/ui/pagination/pagination.tsx
3
+ // component=PaginationLink
4
+ // Code Connect template (v2, parserless). Spec: components/pagination/spec.md.
5
+ import figma from "figma";
6
+ const instance = figma.selectedInstance;
7
+
8
+ const current = instance.getEnum("Current", { false: false, true: true }) === true;
9
+ // the page number is the instance's text layer
10
+ function texts(node: any, found: string[] = []): string[] {
11
+ for (const child of node?.children ?? []) {
12
+ if (child.type === "TEXT" && typeof child.textContent === "string") found.push(child.textContent);
13
+ else texts(child, found);
14
+ }
15
+ return found;
16
+ }
17
+ const [label = "1"] = texts(instance);
18
+
19
+ export default {
20
+ example: figma.code`<PaginationItem><PaginationLink href="#"${current ? figma.code` isActive` : ""}>${label}</PaginationLink></PaginationItem>`,
21
+ imports: ['import { PaginationItem, PaginationLink } from "@/components/ui/pagination"'],
22
+ id: "pagination-link",
23
+ metadata: { nestable: true },
24
+ };
@@ -0,0 +1,17 @@
1
+ // url=https://www.figma.com/design/ba28zZ49PAkXhE7PW5kyT9/Design-System?node-id=1703-4726
2
+ // source=registry/src/ui/pagination/pagination.tsx
3
+ // component=PaginationNext
4
+ // Code Connect template (v2, parserless). Spec: components/pagination/spec.md.
5
+ import figma from "figma";
6
+ const instance = figma.selectedInstance;
7
+
8
+ // State=disabled is the first (Previous) or last (Next) page: the link leads nowhere. Variant is the project's look
9
+ // (ADR-0031), so it maps to nothing; there is no icon-only Previous/Next (code always shows the text).
10
+ const disabled = instance.getEnum("State", { default: false, disabled: true }) === true;
11
+
12
+ export default {
13
+ example: figma.code`<PaginationItem><PaginationNext href="#"${disabled ? figma.code` disabled` : ""} /></PaginationItem>`,
14
+ imports: ['import { PaginationItem, PaginationNext } from "@/components/ui/pagination"'],
15
+ id: "pagination-next",
16
+ metadata: { nestable: true },
17
+ };
@@ -0,0 +1,17 @@
1
+ // url=https://www.figma.com/design/ba28zZ49PAkXhE7PW5kyT9/Design-System?node-id=1703-4743
2
+ // source=registry/src/ui/pagination/pagination.tsx
3
+ // component=PaginationPrevious
4
+ // Code Connect template (v2, parserless). Spec: components/pagination/spec.md.
5
+ import figma from "figma";
6
+ const instance = figma.selectedInstance;
7
+
8
+ // State=disabled is the first (Previous) or last (Next) page: the link leads nowhere. Variant is the project's look
9
+ // (ADR-0031), so it maps to nothing; there is no icon-only Previous/Next (code always shows the text).
10
+ const disabled = instance.getEnum("State", { default: false, disabled: true }) === true;
11
+
12
+ export default {
13
+ example: figma.code`<PaginationItem><PaginationPrevious href="#"${disabled ? figma.code` disabled` : ""} /></PaginationItem>`,
14
+ imports: ['import { PaginationItem, PaginationPrevious } from "@/components/ui/pagination"'],
15
+ id: "pagination-previous",
16
+ metadata: { nestable: true },
17
+ };
@@ -0,0 +1,33 @@
1
+ // url=https://www.figma.com/design/ba28zZ49PAkXhE7PW5kyT9/Design-System?node-id=1706-5326
2
+ // source=registry/src/ui/pagination/pagination.tsx
3
+ // component=Pagination
4
+ // Code Connect template (v2, parserless). Spec: components/pagination/spec.md.
5
+ import figma from "figma";
6
+ const instance = figma.selectedInstance;
7
+
8
+ // The Variant is the project's look, installed once (ADR-0031: pagination.tsx or pagination.<look>.tsx as
9
+ // components/ui/pagination.tsx), so it maps to nothing here; the links in the Links slot render their own templates.
10
+ const parts = (instance.children ?? [])
11
+ .flatMap((c: any) => (c.type === "INSTANCE" ? [c] : c.children ?? []))
12
+ .filter((c: any) => c.type === "INSTANCE")
13
+ .map((c: any) => {
14
+ try {
15
+ return c.executeTemplate().example;
16
+ } catch {
17
+ return undefined;
18
+ }
19
+ })
20
+ .filter(Boolean);
21
+
22
+ export default {
23
+ example: figma.code`
24
+ <Pagination>
25
+ <PaginationContent>
26
+ ${parts.length ? parts : figma.code`<PaginationItem><PaginationLink href="#" isActive>1</PaginationLink></PaginationItem>`}
27
+ </PaginationContent>
28
+ </Pagination>
29
+ `,
30
+ imports: ['import { Pagination, PaginationContent } from "@/components/ui/pagination"'],
31
+ id: "pagination",
32
+ metadata: { nestable: true },
33
+ };
@@ -0,0 +1,40 @@
1
+ // url=https://www.figma.com/design/ba28zZ49PAkXhE7PW5kyT9/Design-System?node-id=4585-2678
2
+ // source=registry/src/ui/panel/panel.tsx
3
+ // component=Panel
4
+ // Code Connect template (v2, parserless). Spec: components/panel/spec.md. Padding and gap are per-instance bindings.
5
+ import figma from "figma";
6
+ const instance = figma.selectedInstance;
7
+
8
+ // a slot (found by layer name at any depth) rendered as its instances' own templates; loose layers become "…"
9
+ function slot(name: string, node: any = instance): any {
10
+ for (const child of node?.children ?? []) {
11
+ if (child.name === name && child.type !== "INSTANCE" && child.type !== "TEXT") return child;
12
+ const hit = child.type === "INSTANCE" ? undefined : slot(name, child);
13
+ if (hit) return hit;
14
+ }
15
+ return undefined;
16
+ }
17
+ const parts = (name: string) => {
18
+ const out = (slot(name)?.children ?? [])
19
+ .filter((c: any) => c.type === "INSTANCE")
20
+ .map((c: any) => {
21
+ try {
22
+ return c.executeTemplate().example;
23
+ } catch {
24
+ return undefined;
25
+ }
26
+ })
27
+ .filter(Boolean);
28
+ return out.length ? out : "…";
29
+ };
30
+
31
+ export default {
32
+ example: figma.code`
33
+ <Panel>
34
+ ${parts("Children")}
35
+ </Panel>
36
+ `,
37
+ imports: ['import { Panel } from "@/components/ui/panel"'],
38
+ id: "panel",
39
+ metadata: { nestable: true },
40
+ };
@@ -0,0 +1,58 @@
1
+ // url=https://www.figma.com/design/ba28zZ49PAkXhE7PW5kyT9/Design-System?node-id=483-17
2
+ // source=registry/src/ui/popover/popover.tsx
3
+ // component=PopoverContent
4
+ // Code Connect template (v2, parserless). Spec: components/popover/spec.md.
5
+ // Figma draws the open panel; code is the whole composition, so the snippet includes its trigger. A server component
6
+ // with explicit ids (ADR-0033): PopoverTrigger points at the content's id and anchors it.
7
+ import figma from "figma";
8
+ const instance = figma.selectedInstance;
9
+
10
+ // Show booleans map to CHILDREN, never to props (ADR-0013).
11
+ const showHeader = instance.getBoolean("Show Header");
12
+ const title = instance.getString("Title");
13
+ const description = instance.getBoolean("Show Description") ? instance.getString("Description") : "";
14
+
15
+ // the Children slot (found by layer name at any depth): its text as a paragraph, its instances as their own templates
16
+ function slot(name: string, node: any = instance): any {
17
+ for (const child of node?.children ?? []) {
18
+ if (child.name === name && child.type !== "INSTANCE" && child.type !== "TEXT") return child;
19
+ const hit = child.type === "INSTANCE" ? undefined : slot(name, child);
20
+ if (hit) return hit;
21
+ }
22
+ return undefined;
23
+ }
24
+ const content = (slot("Children")?.children ?? [])
25
+ .map((c: any) => {
26
+ if (c.type === "TEXT") return figma.code`<p>${c.textContent}</p>`;
27
+ if (c.type !== "INSTANCE") return undefined;
28
+ try {
29
+ return c.executeTemplate().example;
30
+ } catch {
31
+ return undefined;
32
+ }
33
+ })
34
+ .filter(Boolean);
35
+
36
+ const header = showHeader
37
+ ? figma.code`
38
+ <PopoverHeader>
39
+ <PopoverTitle id="popover-title">${title}</PopoverTitle>
40
+ ${description ? figma.code`<PopoverDescription id="popover-description">${description}</PopoverDescription>` : ""}
41
+ </PopoverHeader>`
42
+ : figma.code``;
43
+
44
+ export default {
45
+ example: figma.code`
46
+ <PopoverTrigger commandfor="popover" render={<Button variant="outline" />}>Open</PopoverTrigger>
47
+ <PopoverContent id="popover"${showHeader ? "" : figma.code` aria-label="…"`}>
48
+ ${header}
49
+ ${content}
50
+ </PopoverContent>
51
+ `,
52
+ imports: [
53
+ 'import { PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger } from "@/components/ui/popover"',
54
+ 'import { Button } from "@/components/ui/button"',
55
+ ],
56
+ id: "popover",
57
+ metadata: { nestable: true },
58
+ };
@@ -0,0 +1,34 @@
1
+ // url=https://www.figma.com/design/ba28zZ49PAkXhE7PW5kyT9/Design-System?node-id=4431-16952
2
+ // source=registry/src/ui/progress/progress.tsx
3
+ // component=Progress
4
+ // Code Connect template (v2, parserless). Spec: components/progress/spec.md.
5
+ import figma from "figma";
6
+ const instance = figma.selectedInstance;
7
+
8
+ // Show booleans map to CHILDREN, never to props (ADR-0013)
9
+ const showLabel = instance.getBoolean("Show Label");
10
+ const showValue = instance.getBoolean("Show Value");
11
+ const label = instance.getString("Label");
12
+ const valueText = instance.getString("Value");
13
+ // Indeterminate (a variant since 2026-10-02): no value, so the bar sweeps
14
+ const indeterminate = instance.getEnum("Indeterminate", { false: false, true: true }) === true;
15
+ // The bar's fill is drawn, not a property; the Value text ("56%") is the best source for the number.
16
+ const parsed = /^\s*(\d+(?:\.\d+)?)\s*%\s*$/.exec(valueText ?? "");
17
+ const value = parsed ? parsed[1] : "50";
18
+ const valueAttr = indeterminate ? "" : figma.code` value={${value}}`;
19
+ // A value text that is not a percentage ("Step 3 of 4") becomes ProgressValue's children
20
+ const valueChild = parsed ? figma.code`<ProgressValue />` : figma.code`<ProgressValue>${valueText}</ProgressValue>`;
21
+
22
+ export default {
23
+ example: showLabel || showValue
24
+ ? figma.code`
25
+ <Progress${valueAttr}>
26
+ ${showLabel ? figma.code`<ProgressLabel>${label}</ProgressLabel>` : ""}
27
+ ${showValue && !indeterminate ? valueChild : ""}
28
+ </Progress>
29
+ `
30
+ : figma.code`<Progress${valueAttr} aria-label="${label}" />`,
31
+ imports: ['import { Progress, ProgressLabel, ProgressValue } from "@/components/ui/progress"'],
32
+ id: "progress",
33
+ metadata: { nestable: true },
34
+ };
@@ -0,0 +1,29 @@
1
+ // url=https://www.figma.com/design/ba28zZ49PAkXhE7PW5kyT9/Design-System?node-id=472-98
2
+ // source=registry/src/ui/radio/radio.tsx
3
+ // component=Radio
4
+ // Code Connect template (v2, parserless). Spec: components/radio/spec.md.
5
+ // Figma property VALUES are lower-kebab and identical to the code enums, so every getEnum map is an identity map.
6
+ import figma from "figma";
7
+ const instance = figma.selectedInstance;
8
+
9
+ const checked = instance.getEnum("Checked", { false: "false", true: "true" });
10
+
11
+ // State carries only what code consumes. focus-visible is a CSS pseudo-state and was dropped as an axis in
12
+ // the Core batch (2026-09-28).
13
+ const state = instance.getEnum("State", { default: "default", invalid: "invalid", disabled: "disabled" });
14
+
15
+ const attrs = [
16
+ checked === "true" ? " defaultChecked" : "",
17
+ state === "invalid" ? " aria-invalid" : "",
18
+ state === "disabled" ? " disabled" : "",
19
+ ].join("");
20
+
21
+ // `name` is what makes a set of radios one group in the browser, so the snippet always shows it: a radio
22
+ // without it is a bug, not a variant. A radio is never placed without a label either -- swap Radio into a
23
+ // Field in Figma and Field's own template renders the wrapper.
24
+ export default {
25
+ example: figma.code`<RadioGroupItem name="group" value="value" id="radio"${attrs} />`,
26
+ imports: ['import { RadioGroup, RadioGroupItem } from "@/components/ui/radio"'],
27
+ id: "radio",
28
+ metadata: { nestable: true },
29
+ };
@@ -0,0 +1,42 @@
1
+ // url=https://www.figma.com/design/ba28zZ49PAkXhE7PW5kyT9/Design-System?node-id=2253-17828
2
+ // source=registry/src/ui/section/section.tsx
3
+ // component=Section
4
+ // Code Connect template (v2, parserless). Spec: components/section/spec.md.
5
+ // Padding and gap are per-instance variable bindings and the scheme is a Color Schemes mode: neither is readable
6
+ // here, so the snippet shows the defaults and the developer sets paddingTop / paddingBottom / scheme from Dev Mode.
7
+ import figma from "figma";
8
+ const instance = figma.selectedInstance;
9
+
10
+ // a slot (found by layer name at any depth) rendered as its instances' own templates; loose layers become "…"
11
+ function slot(name: string, node: any = instance): any {
12
+ for (const child of node?.children ?? []) {
13
+ if (child.name === name && child.type !== "INSTANCE" && child.type !== "TEXT") return child;
14
+ const hit = child.type === "INSTANCE" ? undefined : slot(name, child);
15
+ if (hit) return hit;
16
+ }
17
+ return undefined;
18
+ }
19
+ const parts = (name: string) => {
20
+ const out = (slot(name)?.children ?? [])
21
+ .filter((c: any) => c.type === "INSTANCE")
22
+ .map((c: any) => {
23
+ try {
24
+ return c.executeTemplate().example;
25
+ } catch {
26
+ return undefined;
27
+ }
28
+ })
29
+ .filter(Boolean);
30
+ return out.length ? out : "…";
31
+ };
32
+
33
+ export default {
34
+ example: figma.code`
35
+ <Section>
36
+ ${parts("Children")}
37
+ </Section>
38
+ `,
39
+ imports: ['import { Section } from "@/components/ui/section"'],
40
+ id: "section",
41
+ metadata: { nestable: true },
42
+ };
@@ -0,0 +1,30 @@
1
+ // url=https://www.figma.com/design/ba28zZ49PAkXhE7PW5kyT9/Design-System?node-id=2026-24802
2
+ // source=registry/src/ui/select/select.tsx
3
+ // component=Select Panel
4
+ // Code Connect template (v2, parserless). Spec: components/select/spec.md.
5
+ //
6
+ // The PANEL maps here, because the panel is the only thing that needs the Base UI composition. The trigger set
7
+ // (2025:24756) maps to NativeSelect instead: it is the same box either way, and the native control is what
8
+ // WordPress, Shopify and HTML render.
9
+ import figma from "figma";
10
+
11
+ // The panel's rows are the author's content, so the snippet shows the composition rather than trying to read
12
+ // item text out of the instance: a designer needs the shape, and the shape is what is easy to get wrong.
13
+ export default {
14
+ example: figma.code`<Select defaultValue="value">
15
+ <SelectTrigger>
16
+ <SelectValue placeholder="Select an option" />
17
+ </SelectTrigger>
18
+ <SelectContent>
19
+ <SelectGroup>
20
+ <SelectLabel>Group</SelectLabel>
21
+ <SelectItem value="value">Option</SelectItem>
22
+ </SelectGroup>
23
+ </SelectContent>
24
+ </Select>`,
25
+ imports: [
26
+ 'import { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectTrigger, SelectValue } from "@/components/ui/select"',
27
+ ],
28
+ id: "select-panel",
29
+ metadata: { nestable: false },
30
+ };
@@ -0,0 +1,70 @@
1
+ // url=https://www.figma.com/design/ba28zZ49PAkXhE7PW5kyT9/Design-System?node-id=4467-82
2
+ // source=registry/src/ui/sheet/sheet.tsx
3
+ // component=Sheet
4
+ // Code Connect template (v2, parserless). Spec: components/sheet/spec.md.
5
+ // Figma draws the open sheet; code is the whole composition, so the snippet includes a trigger. Server components with
6
+ // explicit ids (ADR-0033): the trigger and the closes are Buttons with command / commandfor.
7
+ import figma from "figma";
8
+ const instance = figma.selectedInstance;
9
+
10
+ const side = instance.getEnum("Side", { right: "right", left: "left", top: "top", bottom: "bottom" });
11
+ // Show booleans map to CHILDREN, never to props (ADR-0013), except Show Close Button, which is upstream's own prop.
12
+ const showHeader = instance.getBoolean("Show Header");
13
+ const showFooter = instance.getBoolean("Show Footer");
14
+ const showClose = instance.getBoolean("Show Close Button");
15
+ const title = instance.getString("Title");
16
+ const description = instance.getBoolean("Show Description") ? instance.getString("Description") : "";
17
+
18
+ // a slot (found by layer name at any depth) rendered as its instances' own templates
19
+ function slot(name: string, node: any = instance): any {
20
+ for (const child of node?.children ?? []) {
21
+ if (child.name === name && child.type !== "INSTANCE" && child.type !== "TEXT") return child;
22
+ const hit = child.type === "INSTANCE" ? undefined : slot(name, child);
23
+ if (hit) return hit;
24
+ }
25
+ return undefined;
26
+ }
27
+ const parts = (name: string) =>
28
+ (slot(name)?.children ?? [])
29
+ .filter((c: any) => c.type === "INSTANCE")
30
+ .map((c: any) => {
31
+ try {
32
+ return c.executeTemplate().example;
33
+ } catch {
34
+ return undefined;
35
+ }
36
+ })
37
+ .filter(Boolean);
38
+ const content = parts("Content");
39
+ const actions = parts("Actions");
40
+
41
+ const header = showHeader
42
+ ? figma.code`
43
+ <SheetHeader>
44
+ <SheetTitle id="sheet-title">${title}</SheetTitle>
45
+ ${description ? figma.code`<SheetDescription id="sheet-description">${description}</SheetDescription>` : ""}
46
+ </SheetHeader>`
47
+ : figma.code``;
48
+ const footer = showFooter
49
+ ? figma.code`
50
+ <SheetFooter>
51
+ ${actions.length ? actions : figma.code`<Button variant="outline" command="close" commandfor="sheet">Close</Button>`}
52
+ </SheetFooter>`
53
+ : figma.code``;
54
+
55
+ export default {
56
+ example: figma.code`
57
+ <Button variant="outline" command="show-modal" commandfor="sheet">Open</Button>
58
+ <SheetContent id="sheet"${side !== "right" ? figma.code` side="${side}"` : ""}${showClose ? "" : figma.code` showCloseButton={false}`}>
59
+ ${header}
60
+ <div className="px-4">${content.length ? content : "…"}</div>
61
+ ${footer}
62
+ </SheetContent>
63
+ `,
64
+ imports: [
65
+ 'import { SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle } from "@/components/ui/sheet"',
66
+ 'import { Button } from "@/components/ui/button"',
67
+ ],
68
+ id: "sheet",
69
+ metadata: { nestable: true },
70
+ };
@@ -0,0 +1,36 @@
1
+ // url=https://www.figma.com/design/ba28zZ49PAkXhE7PW5kyT9/Design-System?node-id=4558-284
2
+ // source=registry/src/ui/sidebar/sidebar.tsx
3
+ // component=SidebarMenuButton
4
+ // Code Connect template (v2, parserless). Spec: components/sidebar/spec.md.
5
+ // active is isActive (the current page), disabled the prop; hover is runtime. Show Label off is the collapsed button
6
+ // (the sidebar's state, not a prop), so the label stays in the snippet and becomes its tooltip. Badge and Action are
7
+ // SidebarMenuBadge / SidebarMenuAction beside the button, in its SidebarMenuItem.
8
+ import figma from "figma";
9
+ const instance = figma.selectedInstance;
10
+
11
+ const label = instance.getString("Label");
12
+ const size = instance.getEnum("Size", { sm: "sm", md: "md", lg: "lg" });
13
+ const state = instance.getEnum("State", { default: "", hover: "", active: "active", disabled: "disabled" });
14
+ const icon = instance.getBoolean("Show Icon");
15
+ const badge = instance.getBoolean("Show Badge");
16
+ const action = instance.getBoolean("Show Action");
17
+ const href = "/" + label.trim().toLowerCase().replace(/[^a-z0-9]+/g, "-");
18
+
19
+ export default {
20
+ example: figma.code`<SidebarMenuItem>
21
+ <SidebarMenuButton${size !== "md" ? ` size="${size}"` : ""}${state === "active" ? " isActive" : ""}${state === "disabled" ? " disabled" : ""} render={<a href="${href}" />} tooltip="${label}">${icon ? figma.code`
22
+ <Icon name="home" />` : ""}
23
+ <span>${label}</span>
24
+ </SidebarMenuButton>${badge ? figma.code`
25
+ <SidebarMenuBadge>24</SidebarMenuBadge>` : ""}${action ? figma.code`
26
+ <SidebarMenuAction aria-label="More">
27
+ <Icon name="more-horizontal" />
28
+ </SidebarMenuAction>` : ""}
29
+ </SidebarMenuItem>`,
30
+ imports: [
31
+ 'import { SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem } from "@/components/ui/sidebar"',
32
+ 'import { Icon } from "@/components/ui/icon"',
33
+ ],
34
+ id: "sidebar-menu-button",
35
+ metadata: { nestable: true },
36
+ };