@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.
- package/README.md +18 -79
- package/index.mjs +175 -283
- package/package.json +13 -30
- package/templates/ci/bitbucket-pipelines.yml +29 -0
- package/templates/code-connect/accordion-item.figma.ts +45 -0
- package/templates/code-connect/accordion.figma.ts +40 -0
- package/templates/code-connect/alert.figma.ts +378 -0
- package/templates/code-connect/avatar-badge.figma.ts +14 -0
- package/templates/code-connect/avatar-group-count.figma.ts +16 -0
- package/templates/code-connect/avatar-group.figma.ts +30 -0
- package/templates/code-connect/avatar.figma.ts +34 -0
- package/templates/code-connect/badge.figma.ts +383 -0
- package/templates/code-connect/breadcrumb-item.figma.ts +23 -0
- package/templates/code-connect/breadcrumb-separator.figma.ts +12 -0
- package/templates/code-connect/breadcrumb.figma.ts +32 -0
- package/templates/code-connect/button-group.figma.ts +28 -0
- package/templates/code-connect/button.figma.ts +408 -0
- package/templates/code-connect/card.figma.ts +74 -0
- package/templates/code-connect/carousel.figma.ts +27 -0
- package/templates/code-connect/checkbox.figma.ts +34 -0
- package/templates/code-connect/columns-1.figma.ts +43 -0
- package/templates/code-connect/columns-2.figma.ts +49 -0
- package/templates/code-connect/columns-3.figma.ts +45 -0
- package/templates/code-connect/columns-4.figma.ts +46 -0
- package/templates/code-connect/container.figma.ts +42 -0
- package/templates/code-connect/dialog.figma.ts +72 -0
- package/templates/code-connect/drawer.figma.ts +69 -0
- package/templates/code-connect/dropdown-menu-checkbox-item.figma.ts +19 -0
- package/templates/code-connect/dropdown-menu-item.figma.ts +25 -0
- package/templates/code-connect/dropdown-menu-label.figma.ts +16 -0
- package/templates/code-connect/dropdown-menu-radio-item.figma.ts +19 -0
- package/templates/code-connect/dropdown-menu-separator.figma.ts +12 -0
- package/templates/code-connect/dropdown-menu-sub-trigger.figma.ts +22 -0
- package/templates/code-connect/dropdown-menu.figma.ts +44 -0
- package/templates/code-connect/field-horizontal.figma.ts +73 -0
- package/templates/code-connect/field.figma.ts +68 -0
- package/templates/code-connect/hover-card.figma.ts +41 -0
- package/templates/code-connect/icon-button.figma.ts +382 -0
- package/templates/code-connect/input-group.figma.ts +51 -0
- package/templates/code-connect/input-otp.figma.ts +40 -0
- package/templates/code-connect/input.figma.ts +42 -0
- package/templates/code-connect/item-group.figma.ts +30 -0
- package/templates/code-connect/item.figma.ts +50 -0
- package/templates/code-connect/kbd.figma.ts +16 -0
- package/templates/code-connect/media.figma.ts +35 -0
- package/templates/code-connect/meter.figma.ts +31 -0
- package/templates/code-connect/native-select.figma.ts +36 -0
- package/templates/code-connect/navigation-menu-link.figma.ts +33 -0
- package/templates/code-connect/navigation-menu-trigger.figma.ts +28 -0
- package/templates/code-connect/navigation-menu.figma.ts +30 -0
- package/templates/code-connect/pagination-ellipsis.figma.ts +11 -0
- package/templates/code-connect/pagination-link.figma.ts +24 -0
- package/templates/code-connect/pagination-next.figma.ts +17 -0
- package/templates/code-connect/pagination-previous.figma.ts +17 -0
- package/templates/code-connect/pagination.figma.ts +33 -0
- package/templates/code-connect/panel.figma.ts +40 -0
- package/templates/code-connect/popover.figma.ts +58 -0
- package/templates/code-connect/progress.figma.ts +34 -0
- package/templates/code-connect/radio.figma.ts +29 -0
- package/templates/code-connect/section.figma.ts +42 -0
- package/templates/code-connect/select.figma.ts +30 -0
- package/templates/code-connect/sheet.figma.ts +70 -0
- package/templates/code-connect/sidebar-menu-button.figma.ts +36 -0
- package/templates/code-connect/sidebar.figma.ts +44 -0
- package/templates/code-connect/spinner.figma.ts +13 -0
- package/templates/code-connect/switch.figma.ts +32 -0
- package/templates/code-connect/table-cell.figma.ts +21 -0
- package/templates/code-connect/table.figma.ts +62 -0
- package/templates/code-connect/tabs-trigger.figma.ts +369 -0
- package/templates/code-connect/tabs.figma.ts +28 -0
- package/templates/code-connect/textarea.figma.ts +32 -0
- package/templates/code-connect/toggle-group.figma.ts +24 -0
- package/templates/code-connect/toggle.figma.ts +385 -0
- package/templates/code-connect/tooltip.figma.ts +29 -0
- package/templates/next/app/globals.css +13 -12
- package/templates/next/app/page.tsx +38 -26
- package/templates/next/public/placeholder.svg +1 -0
- package/templates/shopify/.gitattributes +1 -0
- package/templates/shopify/.shopifyignore +23 -0
- package/templates/shopify/.theme-check.yml +1 -0
- package/templates/shopify/CODE_OF_CONDUCT.md +132 -0
- package/templates/shopify/CONTRIBUTING.md +24 -0
- package/templates/shopify/LICENSE.md +9 -0
- package/templates/shopify/README.md +160 -0
- package/templates/shopify/assets/carousel.js +2 -0
- package/templates/shopify/assets/critical.css +117 -0
- package/templates/shopify/assets/icon-account.svg +6 -0
- package/templates/shopify/assets/icon-cart.svg +5 -0
- package/templates/shopify/assets/predictive-search.js +65 -0
- package/templates/shopify/assets/shoppy-x-ray.svg +1 -0
- package/templates/shopify/blocks/_accordion-item.liquid +44 -0
- package/templates/shopify/blocks/_card-footer.liquid +26 -0
- package/templates/shopify/blocks/_carousel-slide.liquid +21 -0
- package/templates/shopify/blocks/_column.liquid +30 -0
- package/templates/shopify/blocks/_dialog-footer.liquid +28 -0
- package/templates/shopify/blocks/_sheet-footer.liquid +28 -0
- package/templates/shopify/blocks/_tab.liquid +21 -0
- package/templates/shopify/blocks/accordion.liquid +40 -0
- package/templates/shopify/blocks/blog-posts.liquid +70 -0
- package/templates/shopify/blocks/button.figma.ts +359 -0
- package/templates/shopify/blocks/button.liquid +477 -0
- package/templates/shopify/blocks/card.liquid +73 -0
- package/templates/shopify/blocks/carousel.liquid +47 -0
- package/templates/shopify/blocks/columns.liquid +73 -0
- package/templates/shopify/blocks/contact-form.liquid +69 -0
- package/templates/shopify/blocks/container.liquid +29 -0
- package/templates/shopify/blocks/dialog.liquid +77 -0
- package/templates/shopify/blocks/group.liquid +105 -0
- package/templates/shopify/blocks/heading.liquid +57 -0
- package/templates/shopify/blocks/icon-button.figma.ts +358 -0
- package/templates/shopify/blocks/media.liquid +80 -0
- package/templates/shopify/blocks/navigation-menu.liquid +23 -0
- package/templates/shopify/blocks/panel.liquid +64 -0
- package/templates/shopify/blocks/popover.liquid +88 -0
- package/templates/shopify/blocks/section-heading.liquid +68 -0
- package/templates/shopify/blocks/sheet.liquid +90 -0
- package/templates/shopify/blocks/tabs.liquid +58 -0
- package/templates/shopify/blocks/text.liquid +59 -0
- package/templates/shopify/build-js.mjs +22 -0
- package/templates/shopify/config/settings_data.json +182 -0
- package/templates/shopify/config/settings_schema.json +365 -0
- package/templates/shopify/layout/password.liquid +19 -0
- package/templates/shopify/layout/theme.liquid +57 -0
- package/templates/shopify/locales/en.default.json +58 -0
- package/templates/shopify/locales/en.default.schema.json +303 -0
- package/templates/shopify/package-lock.json +521 -0
- package/templates/shopify/package.json +17 -0
- package/templates/shopify/sections/404.liquid +23 -0
- package/templates/shopify/sections/article.liquid +81 -0
- package/templates/shopify/sections/baseline-header.liquid +236 -0
- package/templates/shopify/sections/baseline-kitchen-sink.liquid +988 -0
- package/templates/shopify/sections/baseline-section.liquid +661 -0
- package/templates/shopify/sections/blog.liquid +36 -0
- package/templates/shopify/sections/cart.liquid +65 -0
- package/templates/shopify/sections/collection.liquid +54 -0
- package/templates/shopify/sections/collections.liquid +83 -0
- package/templates/shopify/sections/custom-section.liquid +60 -0
- package/templates/shopify/sections/footer-group.json +25 -0
- package/templates/shopify/sections/footer.liquid +57 -0
- package/templates/shopify/sections/header-group.json +22 -0
- package/templates/shopify/sections/page.liquid +18 -0
- package/templates/shopify/sections/password.liquid +36 -0
- package/templates/shopify/sections/product.liquid +60 -0
- package/templates/shopify/sections/search.liquid +73 -0
- package/templates/shopify/snippets/accordion-item.figma.ts +34 -0
- package/templates/shopify/snippets/accordion-item.liquid +36 -0
- package/templates/shopify/snippets/accordion.figma.ts +37 -0
- package/templates/shopify/snippets/accordion.liquid +169 -0
- package/templates/shopify/snippets/alert.figma.ts +31 -0
- package/templates/shopify/snippets/alert.liquid +104 -0
- package/templates/shopify/snippets/avatar-group.figma.ts +17 -0
- package/templates/shopify/snippets/avatar-group.liquid +66 -0
- package/templates/shopify/snippets/avatar.figma.ts +24 -0
- package/templates/shopify/snippets/avatar.liquid +143 -0
- package/templates/shopify/snippets/badge.figma.ts +355 -0
- package/templates/shopify/snippets/badge.liquid +111 -0
- package/templates/shopify/snippets/baseline-schemes.liquid +44 -0
- package/templates/shopify/snippets/baseline-tokens.liquid +712 -0
- package/templates/shopify/snippets/breadcrumb.figma.ts +12 -0
- package/templates/shopify/snippets/breadcrumb.liquid +124 -0
- package/templates/shopify/snippets/button-group.liquid +148 -0
- package/templates/shopify/snippets/button.liquid +144 -0
- package/templates/shopify/snippets/card.figma.ts +43 -0
- package/templates/shopify/snippets/card.liquid +196 -0
- package/templates/shopify/snippets/carousel-item.liquid +18 -0
- package/templates/shopify/snippets/carousel.figma.ts +28 -0
- package/templates/shopify/snippets/carousel.liquid +121 -0
- package/templates/shopify/snippets/checkbox.liquid +147 -0
- package/templates/shopify/snippets/container.liquid +52 -0
- package/templates/shopify/snippets/css-variables.liquid +18 -0
- package/templates/shopify/snippets/dialog.figma.ts +36 -0
- package/templates/shopify/snippets/dialog.liquid +217 -0
- package/templates/shopify/snippets/field-separator.liquid +68 -0
- package/templates/shopify/snippets/field.liquid +187 -0
- package/templates/shopify/snippets/icon.liquid +101 -0
- package/templates/shopify/snippets/image.liquid +64 -0
- package/templates/shopify/snippets/input-group.liquid +196 -0
- package/templates/shopify/snippets/input.liquid +126 -0
- package/templates/shopify/snippets/item-group.liquid +31 -0
- package/templates/shopify/snippets/item.figma.ts +40 -0
- package/templates/shopify/snippets/item.liquid +162 -0
- package/templates/shopify/snippets/media.figma.ts +33 -0
- package/templates/shopify/snippets/media.liquid +273 -0
- package/templates/shopify/snippets/meta-tags.liquid +105 -0
- package/templates/shopify/snippets/meter.figma.ts +24 -0
- package/templates/shopify/snippets/meter.liquid +118 -0
- package/templates/shopify/snippets/native-select.liquid +141 -0
- package/templates/shopify/snippets/navigation-menu-item.figma.ts +23 -0
- package/templates/shopify/snippets/navigation-menu-item.liquid +40 -0
- package/templates/shopify/snippets/navigation-menu-link.figma.ts +27 -0
- package/templates/shopify/snippets/navigation-menu-link.liquid +31 -0
- package/templates/shopify/snippets/navigation-menu.figma.ts +12 -0
- package/templates/shopify/snippets/navigation-menu.liquid +300 -0
- package/templates/shopify/snippets/pagination.figma.ts +13 -0
- package/templates/shopify/snippets/pagination.liquid +208 -0
- package/templates/shopify/snippets/popover.figma.ts +41 -0
- package/templates/shopify/snippets/popover.liquid +203 -0
- package/templates/shopify/snippets/progress.figma.ts +26 -0
- package/templates/shopify/snippets/progress.liquid +114 -0
- package/templates/shopify/snippets/radio.liquid +145 -0
- package/templates/shopify/snippets/sheet.figma.ts +37 -0
- package/templates/shopify/snippets/sheet.liquid +197 -0
- package/templates/shopify/snippets/sidebar-menu-item.liquid +34 -0
- package/templates/shopify/snippets/sidebar-menu-sub-link.liquid +17 -0
- package/templates/shopify/snippets/sidebar-menu.liquid +139 -0
- package/templates/shopify/snippets/spinner.liquid +42 -0
- package/templates/shopify/snippets/switch.liquid +180 -0
- package/templates/shopify/snippets/tab.figma.ts +353 -0
- package/templates/shopify/snippets/tab.liquid +33 -0
- package/templates/shopify/snippets/tabs.figma.ts +21 -0
- package/templates/shopify/snippets/tabs.liquid +260 -0
- package/templates/shopify/snippets/text-styles.liquid +45 -0
- package/templates/shopify/snippets/textarea.liquid +103 -0
- package/templates/shopify/snippets/toggle-group.figma.ts +30 -0
- package/templates/shopify/snippets/toggle-group.liquid +46 -0
- package/templates/shopify/snippets/toggle.figma.ts +357 -0
- package/templates/shopify/snippets/toggle.liquid +104 -0
- package/templates/shopify/snippets/typeset.liquid +498 -0
- package/templates/shopify/src/carousel.js +94 -0
- package/templates/shopify/templates/404.json +20 -0
- package/templates/shopify/templates/article.json +20 -0
- package/templates/shopify/templates/blog.json +20 -0
- package/templates/shopify/templates/cart.json +20 -0
- package/templates/shopify/templates/collection.json +20 -0
- package/templates/shopify/templates/gift_card.liquid +73 -0
- package/templates/shopify/templates/index.json +18 -0
- package/templates/shopify/templates/list-collections.json +20 -0
- package/templates/shopify/templates/page.json +20 -0
- package/templates/shopify/templates/password.json +21 -0
- package/templates/shopify/templates/product.json +20 -0
- package/templates/shopify/templates/search.json +20 -0
- package/templates/skills/baseline-client-tokens/SKILL.md +74 -0
- package/templates/wordpress/.ddev/commands/web/seed +258 -3
- package/templates/wordpress/.ddev/config.yaml +10 -7
- package/templates/wordpress/.ddev/seed/gravityforms-contact.json +1 -0
- package/templates/wordpress/README.md +37 -39
- package/templates/wordpress/auth.json.example +1 -1
- package/templates/wordpress/composer.json +88 -84
- package/templates/wordpress/theme/README.md +3 -0
- package/templates/wordpress/theme/acf-json/.gitkeep +0 -0
- package/templates/wordpress/theme/acf-json/group_baseline_alert.json +83 -0
- package/templates/wordpress/theme/acf-json/group_baseline_avatar.json +82 -0
- package/templates/wordpress/theme/acf-json/group_baseline_avatar_group.json +35 -0
- package/templates/wordpress/theme/acf-json/group_baseline_badge.json +93 -0
- package/templates/wordpress/theme/acf-json/group_baseline_carousel.json +21 -0
- package/templates/wordpress/theme/acf-json/group_baseline_carousel_slide.json +16 -0
- package/templates/wordpress/theme/acf-json/group_baseline_dialog.json +68 -0
- package/templates/wordpress/theme/acf-json/group_baseline_dialog_footer.json +23 -0
- package/templates/wordpress/theme/acf-json/group_baseline_item.json +101 -0
- package/templates/wordpress/theme/acf-json/group_baseline_item_group.json +26 -0
- package/templates/wordpress/theme/acf-json/group_baseline_sheet.json +104 -0
- package/templates/wordpress/theme/acf-json/group_baseline_sheet_footer.json +31 -0
- package/templates/wordpress/theme/assets/app.css +2 -0
- package/templates/wordpress/theme/assets/editor.css +2 -0
- package/templates/wordpress/theme/assets/images/placeholder.svg +1 -0
- package/templates/wordpress/theme/assets/js/carousel-editor.js +85 -0
- package/templates/wordpress/theme/assets/js/carousel.js +2 -0
- package/templates/wordpress/theme/assets/js/core-button-editor.js +243 -0
- package/templates/wordpress/theme/assets/js/core-layout-editor.js +144 -0
- package/templates/wordpress/theme/assets/js/core-navigation.js +11 -0
- package/templates/wordpress/theme/assets/js/media-editor.js +52 -0
- package/templates/wordpress/theme/assets/js/media.js +38 -0
- package/templates/wordpress/theme/assets/tokens.css +1030 -0
- package/templates/wordpress/theme/blocks/alert/alert.figma.ts +32 -0
- package/templates/wordpress/theme/blocks/alert/block.json +24 -0
- package/templates/wordpress/theme/blocks/alert/render.php +30 -0
- package/templates/wordpress/theme/blocks/avatar/block.json +24 -0
- package/templates/wordpress/theme/blocks/avatar/render.php +35 -0
- package/templates/wordpress/theme/blocks/avatar-group/avatar-group.figma.ts +16 -0
- package/templates/wordpress/theme/blocks/avatar-group/block.json +25 -0
- package/templates/wordpress/theme/blocks/avatar-group/render.php +27 -0
- package/templates/wordpress/theme/blocks/badge/badge.figma.ts +349 -0
- package/templates/wordpress/theme/blocks/badge/block.json +23 -0
- package/templates/wordpress/theme/blocks/badge/render.php +28 -0
- package/templates/wordpress/theme/blocks/carousel/block.json +25 -0
- package/templates/wordpress/theme/blocks/carousel/carousel.figma.ts +22 -0
- package/templates/wordpress/theme/blocks/carousel/render.php +54 -0
- package/templates/wordpress/theme/blocks/carousel-slide/block.json +24 -0
- package/templates/wordpress/theme/blocks/carousel-slide/render.php +13 -0
- package/templates/wordpress/theme/blocks/dialog/block.json +24 -0
- package/templates/wordpress/theme/blocks/dialog/dialog.figma.ts +36 -0
- package/templates/wordpress/theme/blocks/dialog/render.php +41 -0
- package/templates/wordpress/theme/blocks/dialog-footer/block.json +25 -0
- package/templates/wordpress/theme/blocks/dialog-footer/render.php +18 -0
- package/templates/wordpress/theme/blocks/item/block.json +25 -0
- package/templates/wordpress/theme/blocks/item/item.figma.ts +43 -0
- package/templates/wordpress/theme/blocks/item/render.php +38 -0
- package/templates/wordpress/theme/blocks/item-group/block.json +25 -0
- package/templates/wordpress/theme/blocks/item-group/item-group.figma.ts +28 -0
- package/templates/wordpress/theme/blocks/item-group/render.php +22 -0
- package/templates/wordpress/theme/blocks/sheet/block.json +24 -0
- package/templates/wordpress/theme/blocks/sheet/render.php +39 -0
- package/templates/wordpress/theme/blocks/sheet/sheet.figma.ts +38 -0
- package/templates/wordpress/theme/blocks/sheet-footer/block.json +25 -0
- package/templates/wordpress/theme/blocks/sheet-footer/render.php +18 -0
- package/templates/wordpress/theme/build-js.mjs +22 -0
- package/templates/wordpress/theme/code-connect/accordion-item.figma.ts +47 -0
- package/templates/wordpress/theme/code-connect/accordion.figma.ts +37 -0
- package/templates/wordpress/theme/code-connect/avatar.figma.ts +25 -0
- package/templates/wordpress/theme/code-connect/breadcrumb.figma.ts +12 -0
- package/templates/wordpress/theme/code-connect/button.figma.ts +360 -0
- package/templates/wordpress/theme/code-connect/card.figma.ts +45 -0
- package/templates/wordpress/theme/code-connect/icon-button.figma.ts +359 -0
- package/templates/wordpress/theme/code-connect/navigation-menu.figma.ts +20 -0
- package/templates/wordpress/theme/code-connect/pagination.figma.ts +17 -0
- package/templates/wordpress/theme/code-connect/popover.figma.ts +42 -0
- package/templates/wordpress/theme/code-connect/tabs.figma.ts +32 -0
- package/templates/wordpress/theme/code-connect/toggle-group.figma.ts +34 -0
- package/templates/wordpress/theme/code-connect/toggle.figma.ts +356 -0
- package/templates/wordpress/theme/composer.json +7 -0
- package/templates/wordpress/theme/footer.php +4 -0
- package/templates/wordpress/theme/functions.php +86 -0
- package/templates/wordpress/theme/header.php +17 -0
- package/templates/wordpress/theme/inc/acf.php +13 -0
- package/templates/wordpress/theme/inc/blocks.php +41 -0
- package/templates/wordpress/theme/inc/carousel.php +36 -0
- package/templates/wordpress/theme/inc/components/alert.php +83 -0
- package/templates/wordpress/theme/inc/components/avatar.php +111 -0
- package/templates/wordpress/theme/inc/components/badge.php +96 -0
- package/templates/wordpress/theme/inc/components/button.php +77 -0
- package/templates/wordpress/theme/inc/components/dialog.php +98 -0
- package/templates/wordpress/theme/inc/components/item.php +111 -0
- package/templates/wordpress/theme/inc/components/popover.php +125 -0
- package/templates/wordpress/theme/inc/components/sheet.php +88 -0
- package/templates/wordpress/theme/inc/components/toggle.php +127 -0
- package/templates/wordpress/theme/inc/core-button.php +96 -0
- package/templates/wordpress/theme/inc/core-card.php +30 -0
- package/templates/wordpress/theme/inc/core-layout.php +76 -0
- package/templates/wordpress/theme/inc/core-navigation.php +31 -0
- package/templates/wordpress/theme/inc/core-pagination.php +87 -0
- package/templates/wordpress/theme/inc/header.php +39 -0
- package/templates/wordpress/theme/inc/icons.generated.php +94 -0
- package/templates/wordpress/theme/inc/icons.php +70 -0
- package/templates/wordpress/theme/inc/looks.generated.php +18 -0
- package/templates/wordpress/theme/inc/media.php +183 -0
- package/templates/wordpress/theme/inc/sections.php +16 -0
- package/templates/wordpress/theme/index.php +24 -0
- package/templates/wordpress/theme/package-lock.json +1637 -0
- package/templates/wordpress/theme/package.json +23 -0
- package/templates/wordpress/theme/parts/header.html +23 -0
- package/templates/wordpress/theme/patterns/blog-card-grid.php +41 -0
- package/templates/wordpress/theme/patterns/card.php +46 -0
- package/templates/wordpress/theme/patterns/contact-centered.php +22 -0
- package/templates/wordpress/theme/patterns/cta-left.php +25 -0
- package/templates/wordpress/theme/patterns/faq-centered.php +36 -0
- package/templates/wordpress/theme/patterns/header-inline.php +33 -0
- package/templates/wordpress/theme/patterns/header-stacked.php +25 -0
- package/templates/wordpress/theme/patterns/hero-centered.php +28 -0
- package/templates/wordpress/theme/patterns/hero-split.php +41 -0
- package/templates/wordpress/theme/patterns/section.php +28 -0
- package/templates/wordpress/theme/src/app.css +45 -0
- package/templates/wordpress/theme/src/carousel.css +93 -0
- package/templates/wordpress/theme/src/carousel.js +94 -0
- package/templates/wordpress/theme/src/checkbox.css +102 -0
- package/templates/wordpress/theme/src/core-accordion.css +158 -0
- package/templates/wordpress/theme/src/core-avatar.css +68 -0
- package/templates/wordpress/theme/src/core-breadcrumbs.css +124 -0
- package/templates/wordpress/theme/src/core-button-editor.css +45 -0
- package/templates/wordpress/theme/src/core-button.css +155 -0
- package/templates/wordpress/theme/src/core-card.css +157 -0
- package/templates/wordpress/theme/src/core-layout.css +73 -0
- package/templates/wordpress/theme/src/core-navigation.css +290 -0
- package/templates/wordpress/theme/src/core-pagination.css +112 -0
- package/templates/wordpress/theme/src/core-table.css +88 -0
- package/templates/wordpress/theme/src/core-tabs.css +86 -0
- package/templates/wordpress/theme/src/dialog.css +29 -0
- package/templates/wordpress/theme/src/editor.css +65 -0
- package/templates/wordpress/theme/src/field.css +95 -0
- package/templates/wordpress/theme/src/fonts.css +3 -0
- package/templates/wordpress/theme/src/gravityforms.css +919 -0
- package/templates/wordpress/theme/src/header.css +80 -0
- package/templates/wordpress/theme/src/icons.generated.css +16 -0
- package/templates/wordpress/theme/src/input-group.css +105 -0
- package/templates/wordpress/theme/src/input.css +116 -0
- package/templates/wordpress/theme/src/item.css +7 -0
- package/templates/wordpress/theme/src/looks.generated.css +358 -0
- package/templates/wordpress/theme/src/media.css +160 -0
- package/templates/wordpress/theme/src/radio.css +88 -0
- package/templates/wordpress/theme/src/sections.css +80 -0
- package/templates/wordpress/theme/src/sheet.css +24 -0
- package/templates/wordpress/theme/src/switch.css +120 -0
- package/templates/wordpress/theme/src/text-styles.css +44 -0
- package/templates/wordpress/theme/src/textarea.css +61 -0
- package/templates/wordpress/theme/src/toggle-group.css +28 -0
- package/templates/wordpress/theme/src/typeset.css +510 -0
- package/templates/wordpress/theme/style.css +13 -0
- package/templates/wordpress/theme/theme.json +362 -0
- package/templates/wordpress/web/wp-config.php +38 -0
- package/templates/wordpress/wp-cli.yml +1 -0
- package/templates/next/.claude/skills/ai-elements/SKILL.md +0 -160
- package/templates/next/.claude/skills/ai-elements/references/agent.md +0 -134
- package/templates/next/.claude/skills/ai-elements/references/artifact.md +0 -84
- package/templates/next/.claude/skills/ai-elements/references/attachments.md +0 -190
- package/templates/next/.claude/skills/ai-elements/references/audio-player.md +0 -134
- package/templates/next/.claude/skills/ai-elements/references/canvas.md +0 -34
- package/templates/next/.claude/skills/ai-elements/references/chain-of-thought.md +0 -81
- package/templates/next/.claude/skills/ai-elements/references/checkpoint.md +0 -183
- package/templates/next/.claude/skills/ai-elements/references/code-block.md +0 -170
- package/templates/next/.claude/skills/ai-elements/references/commit.md +0 -177
- package/templates/next/.claude/skills/ai-elements/references/confirmation.md +0 -262
- package/templates/next/.claude/skills/ai-elements/references/connection.md +0 -34
- package/templates/next/.claude/skills/ai-elements/references/context.md +0 -126
- package/templates/next/.claude/skills/ai-elements/references/controls.md +0 -32
- package/templates/next/.claude/skills/ai-elements/references/conversation.md +0 -224
- package/templates/next/.claude/skills/ai-elements/references/edge.md +0 -52
- package/templates/next/.claude/skills/ai-elements/references/environment-variables.md +0 -102
- package/templates/next/.claude/skills/ai-elements/references/file-tree.md +0 -72
- package/templates/next/.claude/skills/ai-elements/references/image.md +0 -146
- package/templates/next/.claude/skills/ai-elements/references/inline-citation.md +0 -299
- package/templates/next/.claude/skills/ai-elements/references/jsx-preview.md +0 -104
- package/templates/next/.claude/skills/ai-elements/references/message.md +0 -237
- package/templates/next/.claude/skills/ai-elements/references/mic-selector.md +0 -189
- package/templates/next/.claude/skills/ai-elements/references/model-selector.md +0 -112
- package/templates/next/.claude/skills/ai-elements/references/node.md +0 -73
- package/templates/next/.claude/skills/ai-elements/references/open-in-chat.md +0 -67
- package/templates/next/.claude/skills/ai-elements/references/package-info.md +0 -95
- package/templates/next/.claude/skills/ai-elements/references/panel.md +0 -33
- package/templates/next/.claude/skills/ai-elements/references/persona.md +0 -166
- package/templates/next/.claude/skills/ai-elements/references/plan.md +0 -79
- package/templates/next/.claude/skills/ai-elements/references/prompt-input.md +0 -579
- package/templates/next/.claude/skills/ai-elements/references/queue.md +0 -172
- package/templates/next/.claude/skills/ai-elements/references/reasoning.md +0 -238
- package/templates/next/.claude/skills/ai-elements/references/sandbox.md +0 -129
- package/templates/next/.claude/skills/ai-elements/references/schema-display.md +0 -102
- package/templates/next/.claude/skills/ai-elements/references/shimmer.md +0 -48
- package/templates/next/.claude/skills/ai-elements/references/snippet.md +0 -64
- package/templates/next/.claude/skills/ai-elements/references/sources.md +0 -209
- package/templates/next/.claude/skills/ai-elements/references/speech-input.md +0 -163
- package/templates/next/.claude/skills/ai-elements/references/stack-trace.md +0 -224
- package/templates/next/.claude/skills/ai-elements/references/suggestion.md +0 -124
- package/templates/next/.claude/skills/ai-elements/references/task.md +0 -222
- package/templates/next/.claude/skills/ai-elements/references/terminal.md +0 -103
- package/templates/next/.claude/skills/ai-elements/references/test-results.md +0 -157
- package/templates/next/.claude/skills/ai-elements/references/tool.md +0 -285
- package/templates/next/.claude/skills/ai-elements/references/toolbar.md +0 -32
- package/templates/next/.claude/skills/ai-elements/references/transcription.md +0 -120
- package/templates/next/.claude/skills/ai-elements/references/voice-selector.md +0 -241
- package/templates/next/.claude/skills/ai-elements/references/web-preview.md +0 -200
- package/templates/next/.claude/skills/ai-elements/scripts/agent.tsx +0 -61
- package/templates/next/.claude/skills/ai-elements/scripts/artifact.tsx +0 -127
- package/templates/next/.claude/skills/ai-elements/scripts/attachments-inline.tsx +0 -128
- package/templates/next/.claude/skills/ai-elements/scripts/attachments-list.tsx +0 -95
- package/templates/next/.claude/skills/ai-elements/scripts/attachments.tsx +0 -85
- package/templates/next/.claude/skills/ai-elements/scripts/audio-player-remote.tsx +0 -35
- package/templates/next/.claude/skills/ai-elements/scripts/audio-player.tsx +0 -68
- package/templates/next/.claude/skills/ai-elements/scripts/chain-of-thought.tsx +0 -82
- package/templates/next/.claude/skills/ai-elements/scripts/checkpoint.tsx +0 -110
- package/templates/next/.claude/skills/ai-elements/scripts/code-block-dark.tsx +0 -46
- package/templates/next/.claude/skills/ai-elements/scripts/code-block.tsx +0 -120
- package/templates/next/.claude/skills/ai-elements/scripts/commit.tsx +0 -94
- package/templates/next/.claude/skills/ai-elements/scripts/confirmation-accepted.tsx +0 -40
- package/templates/next/.claude/skills/ai-elements/scripts/confirmation-rejected.tsx +0 -40
- package/templates/next/.claude/skills/ai-elements/scripts/confirmation-request.tsx +0 -54
- package/templates/next/.claude/skills/ai-elements/scripts/confirmation.tsx +0 -55
- package/templates/next/.claude/skills/ai-elements/scripts/context.tsx +0 -45
- package/templates/next/.claude/skills/ai-elements/scripts/conversation.tsx +0 -177
- package/templates/next/.claude/skills/ai-elements/scripts/environment-variables.tsx +0 -62
- package/templates/next/.claude/skills/ai-elements/scripts/file-tree-basic.tsx +0 -18
- package/templates/next/.claude/skills/ai-elements/scripts/file-tree-expanded.tsx +0 -21
- package/templates/next/.claude/skills/ai-elements/scripts/file-tree-selection.tsx +0 -24
- package/templates/next/.claude/skills/ai-elements/scripts/file-tree.tsx +0 -42
- package/templates/next/.claude/skills/ai-elements/scripts/image.tsx +0 -20
- package/templates/next/.claude/skills/ai-elements/scripts/inline-citation.tsx +0 -97
- package/templates/next/.claude/skills/ai-elements/scripts/jsx-preview.tsx +0 -104
- package/templates/next/.claude/skills/ai-elements/scripts/message.tsx +0 -365
- package/templates/next/.claude/skills/ai-elements/scripts/mic-selector.tsx +0 -49
- package/templates/next/.claude/skills/ai-elements/scripts/model-selector.tsx +0 -365
- package/templates/next/.claude/skills/ai-elements/scripts/open-in-chat.tsx +0 -33
- package/templates/next/.claude/skills/ai-elements/scripts/package-info.tsx +0 -51
- package/templates/next/.claude/skills/ai-elements/scripts/persona-command.tsx +0 -110
- package/templates/next/.claude/skills/ai-elements/scripts/persona-glint.tsx +0 -110
- package/templates/next/.claude/skills/ai-elements/scripts/persona-halo.tsx +0 -110
- package/templates/next/.claude/skills/ai-elements/scripts/persona-mana.tsx +0 -110
- package/templates/next/.claude/skills/ai-elements/scripts/persona-obsidian.tsx +0 -110
- package/templates/next/.claude/skills/ai-elements/scripts/persona-opal.tsx +0 -110
- package/templates/next/.claude/skills/ai-elements/scripts/plan.tsx +0 -65
- package/templates/next/.claude/skills/ai-elements/scripts/prompt-input-cursor.tsx +0 -502
- package/templates/next/.claude/skills/ai-elements/scripts/prompt-input-tooltip.tsx +0 -44
- package/templates/next/.claude/skills/ai-elements/scripts/prompt-input.tsx +0 -267
- package/templates/next/.claude/skills/ai-elements/scripts/queue-prompt-input.tsx +0 -394
- package/templates/next/.claude/skills/ai-elements/scripts/queue.tsx +0 -295
- package/templates/next/.claude/skills/ai-elements/scripts/reasoning.tsx +0 -71
- package/templates/next/.claude/skills/ai-elements/scripts/sandbox.tsx +0 -178
- package/templates/next/.claude/skills/ai-elements/scripts/schema-display-basic.tsx +0 -9
- package/templates/next/.claude/skills/ai-elements/scripts/schema-display-body.tsx +0 -20
- package/templates/next/.claude/skills/ai-elements/scripts/schema-display-nested.tsx +0 -23
- package/templates/next/.claude/skills/ai-elements/scripts/schema-display-params.tsx +0 -16
- package/templates/next/.claude/skills/ai-elements/scripts/schema-display.tsx +0 -110
- package/templates/next/.claude/skills/ai-elements/scripts/shimmer-duration.tsx +0 -31
- package/templates/next/.claude/skills/ai-elements/scripts/shimmer-elements.tsx +0 -43
- package/templates/next/.claude/skills/ai-elements/scripts/shimmer.tsx +0 -17
- package/templates/next/.claude/skills/ai-elements/scripts/snippet-plain.tsx +0 -19
- package/templates/next/.claude/skills/ai-elements/scripts/snippet.tsx +0 -25
- package/templates/next/.claude/skills/ai-elements/scripts/sources-custom.tsx +0 -39
- package/templates/next/.claude/skills/ai-elements/scripts/sources.tsx +0 -32
- package/templates/next/.claude/skills/ai-elements/scripts/speech-input.tsx +0 -84
- package/templates/next/.claude/skills/ai-elements/scripts/stack-trace-collapsed.tsx +0 -39
- package/templates/next/.claude/skills/ai-elements/scripts/stack-trace-no-internal.tsx +0 -41
- package/templates/next/.claude/skills/ai-elements/scripts/stack-trace.tsx +0 -58
- package/templates/next/.claude/skills/ai-elements/scripts/suggestion-input.tsx +0 -144
- package/templates/next/.claude/skills/ai-elements/scripts/suggestion.tsx +0 -32
- package/templates/next/.claude/skills/ai-elements/scripts/task.tsx +0 -59
- package/templates/next/.claude/skills/ai-elements/scripts/terminal-basic.tsx +0 -7
- package/templates/next/.claude/skills/ai-elements/scripts/terminal-clear.tsx +0 -19
- package/templates/next/.claude/skills/ai-elements/scripts/terminal-streaming.tsx +0 -38
- package/templates/next/.claude/skills/ai-elements/scripts/terminal.tsx +0 -82
- package/templates/next/.claude/skills/ai-elements/scripts/test-results-basic.tsx +0 -27
- package/templates/next/.claude/skills/ai-elements/scripts/test-results-errors.tsx +0 -51
- package/templates/next/.claude/skills/ai-elements/scripts/test-results-suites.tsx +0 -40
- package/templates/next/.claude/skills/ai-elements/scripts/test-results.tsx +0 -102
- package/templates/next/.claude/skills/ai-elements/scripts/tool-input-available.tsx +0 -31
- package/templates/next/.claude/skills/ai-elements/scripts/tool-input-streaming.tsx +0 -30
- package/templates/next/.claude/skills/ai-elements/scripts/tool-output-available.tsx +0 -80
- package/templates/next/.claude/skills/ai-elements/scripts/tool-output-error.tsx +0 -44
- package/templates/next/.claude/skills/ai-elements/scripts/tool.tsx +0 -222
- package/templates/next/.claude/skills/ai-elements/scripts/transcription.tsx +0 -290
- package/templates/next/.claude/skills/ai-elements/scripts/voice-selector.tsx +0 -245
- package/templates/next/.claude/skills/ai-elements/scripts/web-preview.tsx +0 -115
- package/templates/next/.claude/skills/ai-sdk/SKILL.md +0 -78
- package/templates/next/.claude/skills/frontend-design/LICENSE.txt +0 -177
- package/templates/next/.claude/skills/frontend-design/SKILL.md +0 -55
- package/templates/next/.claude/skills/gc-implement-figma-page/SKILL.md +0 -93
- package/templates/next/.claude/skills/migrate-ai-sdk-v6-to-v7/SKILL.md +0 -108
- package/templates/next/.claude/skills/vercel-composition-patterns/AGENTS.md +0 -946
- package/templates/next/.claude/skills/vercel-composition-patterns/README.md +0 -60
- package/templates/next/.claude/skills/vercel-composition-patterns/SKILL.md +0 -89
- package/templates/next/.claude/skills/vercel-composition-patterns/metadata.json +0 -11
- package/templates/next/.claude/skills/vercel-composition-patterns/rules/_sections.md +0 -29
- package/templates/next/.claude/skills/vercel-composition-patterns/rules/_template.md +0 -24
- package/templates/next/.claude/skills/vercel-composition-patterns/rules/architecture-avoid-boolean-props.md +0 -100
- package/templates/next/.claude/skills/vercel-composition-patterns/rules/architecture-compound-components.md +0 -112
- package/templates/next/.claude/skills/vercel-composition-patterns/rules/patterns-children-over-render-props.md +0 -87
- package/templates/next/.claude/skills/vercel-composition-patterns/rules/patterns-explicit-variants.md +0 -100
- package/templates/next/.claude/skills/vercel-composition-patterns/rules/react19-no-forwardref.md +0 -42
- package/templates/next/.claude/skills/vercel-composition-patterns/rules/state-context-interface.md +0 -191
- package/templates/next/.claude/skills/vercel-composition-patterns/rules/state-decouple-implementation.md +0 -113
- package/templates/next/.claude/skills/vercel-composition-patterns/rules/state-lift-state.md +0 -125
- package/templates/next/.claude/skills/vercel-react-best-practices/AGENTS.md +0 -3810
- package/templates/next/.claude/skills/vercel-react-best-practices/README.md +0 -123
- package/templates/next/.claude/skills/vercel-react-best-practices/SKILL.md +0 -149
- package/templates/next/.claude/skills/vercel-react-best-practices/metadata.json +0 -15
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/_sections.md +0 -46
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/_template.md +0 -28
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/advanced-effect-event-deps.md +0 -56
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +0 -55
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/advanced-init-once.md +0 -42
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/advanced-use-latest.md +0 -39
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/async-api-routes.md +0 -38
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/async-cheap-condition-before-await.md +0 -37
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/async-defer-await.md +0 -82
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/async-dependencies.md +0 -51
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/async-parallel.md +0 -28
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +0 -99
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/bundle-analyzable-paths.md +0 -63
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +0 -60
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/bundle-conditional.md +0 -31
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +0 -49
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +0 -35
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/bundle-preload.md +0 -50
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/client-event-listeners.md +0 -74
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +0 -71
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +0 -48
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/client-swr-dedup.md +0 -56
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +0 -107
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-cache-function-results.md +0 -80
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-cache-property-access.md +0 -28
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-cache-storage.md +0 -70
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-combine-iterations.md +0 -32
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-early-exit.md +0 -50
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-flatmap-filter.md +0 -60
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +0 -45
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-index-maps.md +0 -37
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-length-check-first.md +0 -49
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-min-max-loop.md +0 -82
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-request-idle-callback.md +0 -105
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +0 -24
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +0 -57
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/rendering-activity.md +0 -26
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +0 -47
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +0 -40
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +0 -38
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +0 -46
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +0 -82
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +0 -30
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/rendering-resource-hints.md +0 -85
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/rendering-script-defer-async.md +0 -68
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +0 -28
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +0 -75
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +0 -39
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-dependencies.md +0 -45
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +0 -40
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-derived-state.md +0 -29
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +0 -74
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +0 -58
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +0 -38
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-memo.md +0 -44
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +0 -45
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-no-inline-components.md +0 -82
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +0 -35
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-split-combined-hooks.md +0 -64
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-transitions.md +0 -40
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-use-deferred-value.md +0 -59
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +0 -73
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +0 -73
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/server-auth-actions.md +0 -96
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/server-cache-lru.md +0 -41
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/server-cache-react.md +0 -76
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/server-dedup-props.md +0 -65
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/server-hoist-static-io.md +0 -149
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/server-no-shared-module-state.md +0 -50
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +0 -83
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/server-parallel-nested-fetching.md +0 -34
- package/templates/next/.claude/skills/vercel-react-best-practices/rules/server-serialization.md +0 -38
- package/templates/next/.claude/skills/web-design-guidelines/SKILL.md +0 -39
- package/templates/next/CLAUDE.md +0 -42
- package/templates/next/README.md +0 -30
- package/templates/next/_gitignore +0 -4
- package/templates/next/app/layout.tsx +0 -44
- package/templates/next/globals.d.ts +0 -8
- package/templates/next/next.config.mjs +0 -6
- package/templates/next/package.json +0 -38
- package/templates/next/postcss.config.mjs +0 -5
- package/templates/next/skills-lock.json +0 -47
- package/templates/next/tsconfig.json +0 -36
- package/templates/shopify-theme/.claude/skills/gc-shopify-block/SKILL.md +0 -44
- package/templates/shopify-theme/.claude/skills/shopify-dev/SKILL.md +0 -51
- package/templates/shopify-theme/.claude/skills/shopify-dev/scripts/log_skill_use.mjs +0 -205
- package/templates/shopify-theme/.claude/skills/shopify-dev/scripts/search_docs.mjs +0 -272
- package/templates/shopify-theme/.claude/skills/shopify-dev/scripts/track-telemetry.ps1 +0 -361
- package/templates/shopify-theme/.claude/skills/shopify-dev/scripts/track-telemetry.sh +0 -527
- package/templates/shopify-theme/.claude/skills/shopify-liquid/SKILL.md +0 -343
- package/templates/shopify-theme/.claude/skills/shopify-liquid/blocks/hero-slide.liquid +0 -342
- package/templates/shopify-theme/.claude/skills/shopify-liquid/config/settings_schema.json +0 -1
- package/templates/shopify-theme/.claude/skills/shopify-liquid/featured-collection.liquid +0 -457
- package/templates/shopify-theme/.claude/skills/shopify-liquid/locales/en.default.json +0 -10
- package/templates/shopify-theme/.claude/skills/shopify-liquid/locales/en.default.schema.json +0 -103
- package/templates/shopify-theme/.claude/skills/shopify-liquid/package.json +0 -10
- package/templates/shopify-theme/.claude/skills/shopify-liquid/scripts/search_docs.mjs +0 -759
- package/templates/shopify-theme/.claude/skills/shopify-liquid/scripts/track-telemetry.ps1 +0 -361
- package/templates/shopify-theme/.claude/skills/shopify-liquid/scripts/track-telemetry.sh +0 -527
- package/templates/shopify-theme/.claude/skills/shopify-liquid/scripts/validate.mjs +0 -654
- package/templates/shopify-theme/.claude/skills/shopify-liquid/sections/hero-banner.liquid +0 -329
- package/templates/shopify-theme/.claude/skills/shopify-use-shopify-cli/SKILL.md +0 -165
- package/templates/shopify-theme/.claude/skills/shopify-use-shopify-cli/scripts/log_skill_use.mjs +0 -205
- package/templates/shopify-theme/.claude/skills/shopify-use-shopify-cli/scripts/track-telemetry.ps1 +0 -361
- package/templates/shopify-theme/.claude/skills/shopify-use-shopify-cli/scripts/track-telemetry.sh +0 -527
- package/templates/shopify-theme/.shopifyignore +0 -9
- package/templates/shopify-theme/CLAUDE.md +0 -51
- package/templates/shopify-theme/README.md +0 -92
- package/templates/shopify-theme/assets/baseline.css +0 -8390
- package/templates/shopify-theme/assets/swiper-element-bundle.min.js +0 -14
- package/templates/shopify-theme/blocks/_accordion.liquid +0 -59
- package/templates/shopify-theme/blocks/_carousel-slide.liquid +0 -24
- package/templates/shopify-theme/blocks/_modal-body.liquid +0 -18
- package/templates/shopify-theme/blocks/_modal-footer.liquid +0 -36
- package/templates/shopify-theme/blocks/_modal-header.liquid +0 -19
- package/templates/shopify-theme/blocks/_modal-media.liquid +0 -37
- package/templates/shopify-theme/blocks/accordion-group.liquid +0 -53
- package/templates/shopify-theme/blocks/alert.liquid +0 -92
- package/templates/shopify-theme/blocks/avatar-group.liquid +0 -51
- package/templates/shopify-theme/blocks/avatar.liquid +0 -56
- package/templates/shopify-theme/blocks/badge.liquid +0 -33
- package/templates/shopify-theme/blocks/breadcrumb.liquid +0 -45
- package/templates/shopify-theme/blocks/button.liquid +0 -51
- package/templates/shopify-theme/blocks/buttons.liquid +0 -41
- package/templates/shopify-theme/blocks/card.liquid +0 -67
- package/templates/shopify-theme/blocks/carousel.liquid +0 -55
- package/templates/shopify-theme/blocks/column.liquid +0 -33
- package/templates/shopify-theme/blocks/image.liquid +0 -37
- package/templates/shopify-theme/blocks/modal.liquid +0 -52
- package/templates/shopify-theme/blocks/popover.liquid +0 -24
- package/templates/shopify-theme/blocks/skeleton.liquid +0 -22
- package/templates/shopify-theme/blocks/spinner.liquid +0 -22
- package/templates/shopify-theme/blocks/split.liquid +0 -39
- package/templates/shopify-theme/blocks/tab.liquid +0 -19
- package/templates/shopify-theme/blocks/tabs.liquid +0 -78
- package/templates/shopify-theme/blocks/tags.liquid +0 -55
- package/templates/shopify-theme/blocks/text.liquid +0 -55
- package/templates/shopify-theme/blocks/tooltip.liquid +0 -50
- package/templates/shopify-theme/blocks/typography.liquid +0 -90
- package/templates/shopify-theme/config/settings_data.json +0 -4
- package/templates/shopify-theme/config/settings_schema.json +0 -10
- package/templates/shopify-theme/layout/theme.liquid +0 -21
- package/templates/shopify-theme/locales/en.default.json +0 -5
- package/templates/shopify-theme/locales/en.default.schema.json +0 -131
- package/templates/shopify-theme/package.json +0 -21
- package/templates/shopify-theme/scripts/sync-tokens.mjs +0 -32
- package/templates/shopify-theme/sections/baseline-components.liquid +0 -81
- package/templates/shopify-theme/skills-lock.json +0 -23
- package/templates/shopify-theme/snippets/lucide.liquid +0 -34
- package/templates/shopify-theme/snippets/pagination.liquid +0 -44
- package/templates/shopify-theme/templates/collection.json +0 -13
- package/templates/shopify-theme/templates/gift_card.liquid +0 -5
- package/templates/shopify-theme/templates/index.json +0 -135
- package/templates/shopify-theme/templates/list-collections.json +0 -13
- package/templates/shopify-theme/templates/product.json +0 -13
- package/templates/wordpress/.claude/CLAUDE.md +0 -37
- package/templates/wordpress/.claude/skills/wp-block-development/SKILL.md +0 -174
- package/templates/wordpress/.claude/skills/wp-block-development/references/attributes-and-serialization.md +0 -22
- package/templates/wordpress/.claude/skills/wp-block-development/references/block-json.md +0 -49
- package/templates/wordpress/.claude/skills/wp-block-development/references/creating-new-blocks.md +0 -46
- package/templates/wordpress/.claude/skills/wp-block-development/references/debugging.md +0 -36
- package/templates/wordpress/.claude/skills/wp-block-development/references/deprecations.md +0 -24
- package/templates/wordpress/.claude/skills/wp-block-development/references/dynamic-rendering.md +0 -23
- package/templates/wordpress/.claude/skills/wp-block-development/references/inner-blocks.md +0 -25
- package/templates/wordpress/.claude/skills/wp-block-development/references/registration.md +0 -30
- package/templates/wordpress/.claude/skills/wp-block-development/references/supports-and-wrappers.md +0 -18
- package/templates/wordpress/.claude/skills/wp-block-development/references/tooling-and-testing.md +0 -21
- package/templates/wordpress/.claude/skills/wp-block-development/scripts/list_blocks.mjs +0 -121
- package/templates/wordpress/.claude/skills/wp-block-themes/SKILL.md +0 -116
- package/templates/wordpress/.claude/skills/wp-block-themes/references/creating-new-block-theme.md +0 -37
- package/templates/wordpress/.claude/skills/wp-block-themes/references/debugging.md +0 -24
- package/templates/wordpress/.claude/skills/wp-block-themes/references/patterns.md +0 -18
- package/templates/wordpress/.claude/skills/wp-block-themes/references/style-variations.md +0 -14
- package/templates/wordpress/.claude/skills/wp-block-themes/references/templates-and-parts.md +0 -16
- package/templates/wordpress/.claude/skills/wp-block-themes/references/theme-json.md +0 -59
- package/templates/wordpress/.claude/skills/wp-block-themes/scripts/detect_block_themes.mjs +0 -117
- package/templates/wordpress/.claude/skills/wp-performance/SKILL.md +0 -146
- package/templates/wordpress/.claude/skills/wp-performance/references/autoload-options.md +0 -24
- package/templates/wordpress/.claude/skills/wp-performance/references/cron.md +0 -20
- package/templates/wordpress/.claude/skills/wp-performance/references/database.md +0 -20
- package/templates/wordpress/.claude/skills/wp-performance/references/http-api.md +0 -15
- package/templates/wordpress/.claude/skills/wp-performance/references/measurement.md +0 -21
- package/templates/wordpress/.claude/skills/wp-performance/references/object-cache.md +0 -24
- package/templates/wordpress/.claude/skills/wp-performance/references/query-monitor-headless.md +0 -38
- package/templates/wordpress/.claude/skills/wp-performance/references/server-timing.md +0 -22
- package/templates/wordpress/.claude/skills/wp-performance/references/wp-cli-doctor.md +0 -24
- package/templates/wordpress/.claude/skills/wp-performance/references/wp-cli-profile.md +0 -32
- package/templates/wordpress/.claude/skills/wp-performance/scripts/perf_inspect.mjs +0 -128
- package/templates/wordpress/.claude/skills/wp-plugin-development/SKILL.md +0 -112
- package/templates/wordpress/.claude/skills/wp-plugin-development/references/data-and-cron.md +0 -19
- package/templates/wordpress/.claude/skills/wp-plugin-development/references/debugging.md +0 -19
- package/templates/wordpress/.claude/skills/wp-plugin-development/references/lifecycle.md +0 -33
- package/templates/wordpress/.claude/skills/wp-plugin-development/references/security.md +0 -29
- package/templates/wordpress/.claude/skills/wp-plugin-development/references/settings-api.md +0 -22
- package/templates/wordpress/.claude/skills/wp-plugin-development/references/structure.md +0 -16
- package/templates/wordpress/.claude/skills/wp-plugin-development/scripts/detect_plugins.mjs +0 -122
- package/templates/wordpress/.claude/skills/wp-rest-api/SKILL.md +0 -114
- package/templates/wordpress/.claude/skills/wp-rest-api/references/authentication.md +0 -18
- package/templates/wordpress/.claude/skills/wp-rest-api/references/custom-content-types.md +0 -20
- package/templates/wordpress/.claude/skills/wp-rest-api/references/discovery-and-params.md +0 -20
- package/templates/wordpress/.claude/skills/wp-rest-api/references/responses-and-fields.md +0 -30
- package/templates/wordpress/.claude/skills/wp-rest-api/references/routes-and-endpoints.md +0 -36
- package/templates/wordpress/.claude/skills/wp-rest-api/references/schema.md +0 -22
- package/templates/wordpress/.ddev/docker-compose.packages.yaml +0 -14
- package/templates/wordpress/.ddev/docker-compose.redis.yaml +0 -11
- package/templates/wordpress/.env.example +0 -33
- package/templates/wordpress/CLAUDE.md +0 -34
- package/templates/wordpress/_gitignore +0 -33
- package/templates/wordpress/composer.lock +0 -1594
- package/templates/wordpress/package.json +0 -13
- package/templates/wordpress/scripts/seed.sh +0 -64
- package/templates/wordpress/skills-lock.json +0 -35
- package/templates/wordpress/wp-config.php +0 -89
- package/templates/wordpress/wp-content/index.php +0 -2
- package/templates/wordpress/wp-content/mu-plugins/baseline-bootstrap.php +0 -26
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
# Edge
|
|
2
|
-
|
|
3
|
-
Customizable edge components for React Flow canvases with animated and temporary states.
|
|
4
|
-
|
|
5
|
-
The `Edge` component provides two pre-styled edge types for React Flow canvases: `Temporary` for dashed temporary connections and `Animated` for connections with animated indicators.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
## Installation
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
npx ai-elements@latest add edge
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Features
|
|
16
|
-
|
|
17
|
-
- Two distinct edge types: Temporary and Animated
|
|
18
|
-
- Temporary edges use dashed lines with ring color
|
|
19
|
-
- Animated edges include a moving circle indicator
|
|
20
|
-
- Automatic handle position calculation
|
|
21
|
-
- Smart offset calculation based on handle type and position
|
|
22
|
-
- Uses Bezier curves for smooth, natural-looking connections
|
|
23
|
-
- Fully compatible with React Flow's edge system
|
|
24
|
-
- Type-safe implementation with TypeScript
|
|
25
|
-
|
|
26
|
-
## Edge Types
|
|
27
|
-
|
|
28
|
-
### `Edge.Temporary`
|
|
29
|
-
|
|
30
|
-
A dashed edge style for temporary or preview connections. Uses a simple Bezier path with a dashed stroke pattern.
|
|
31
|
-
|
|
32
|
-
### `Edge.Animated`
|
|
33
|
-
|
|
34
|
-
A solid edge with an animated circle that moves along the path. The animation repeats indefinitely with a 2-second duration, providing visual feedback for active connections.
|
|
35
|
-
|
|
36
|
-
## Props
|
|
37
|
-
|
|
38
|
-
Both edge types accept standard React Flow `EdgeProps`:
|
|
39
|
-
|
|
40
|
-
| Prop | Type | Default | Description |
|
|
41
|
-
|------|------|---------|-------------|
|
|
42
|
-
| `id` | `string` | - | Unique identifier for the edge. |
|
|
43
|
-
| `source` | `string` | - | ID of the source node. |
|
|
44
|
-
| `target` | `string` | - | ID of the target node. |
|
|
45
|
-
| `sourceX` | `number` | - | X coordinate of the source handle (Temporary only). |
|
|
46
|
-
| `sourceY` | `number` | - | Y coordinate of the source handle (Temporary only). |
|
|
47
|
-
| `targetX` | `number` | - | X coordinate of the target handle (Temporary only). |
|
|
48
|
-
| `targetY` | `number` | - | Y coordinate of the target handle (Temporary only). |
|
|
49
|
-
| `sourcePosition` | `Position` | - | Position of the source handle (Left, Right, Top, Bottom). |
|
|
50
|
-
| `targetPosition` | `Position` | - | Position of the target handle (Left, Right, Top, Bottom). |
|
|
51
|
-
| `markerEnd` | `string` | - | SVG marker ID for the edge end (Animated only). |
|
|
52
|
-
| `style` | `React.CSSProperties` | - | Custom styles for the edge (Animated only). |
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
# Environment Variables
|
|
2
|
-
|
|
3
|
-
Display environment variables with masking and copy functionality.
|
|
4
|
-
|
|
5
|
-
The `EnvironmentVariables` component displays environment variables with value masking, visibility toggle, and copy functionality.
|
|
6
|
-
|
|
7
|
-
See `scripts/environment-variables.tsx` for this example.
|
|
8
|
-
|
|
9
|
-
## Installation
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
npx ai-elements@latest add environment-variables
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Features
|
|
16
|
-
|
|
17
|
-
- Value masking by default
|
|
18
|
-
- Toggle visibility switch
|
|
19
|
-
- Copy individual values
|
|
20
|
-
- Export format support (`export KEY="value"`)
|
|
21
|
-
- Required badge indicator
|
|
22
|
-
|
|
23
|
-
## Props
|
|
24
|
-
|
|
25
|
-
### `<EnvironmentVariables />`
|
|
26
|
-
|
|
27
|
-
| Prop | Type | Default | Description |
|
|
28
|
-
|------|------|---------|-------------|
|
|
29
|
-
| `showValues` | `boolean` | - | Controlled visibility state. |
|
|
30
|
-
| `defaultShowValues` | `boolean` | `false` | Default visibility state. |
|
|
31
|
-
| `onShowValuesChange` | `(show: boolean) => void` | - | Callback when visibility changes. |
|
|
32
|
-
| `...props` | `React.HTMLAttributes<HTMLDivElement>` | - | Spread to the container div. |
|
|
33
|
-
|
|
34
|
-
### `<EnvironmentVariablesHeader />`
|
|
35
|
-
|
|
36
|
-
| Prop | Type | Default | Description |
|
|
37
|
-
|------|------|---------|-------------|
|
|
38
|
-
| `...props` | `React.HTMLAttributes<HTMLDivElement>` | - | Spread to the header div. |
|
|
39
|
-
|
|
40
|
-
### `<EnvironmentVariablesTitle />`
|
|
41
|
-
|
|
42
|
-
| Prop | Type | Default | Description |
|
|
43
|
-
|------|------|---------|-------------|
|
|
44
|
-
| `children` | `React.ReactNode` | - | Custom title text. |
|
|
45
|
-
| `...props` | `React.HTMLAttributes<HTMLHeadingElement>` | - | Spread to the h3 element. |
|
|
46
|
-
|
|
47
|
-
### `<EnvironmentVariablesToggle />`
|
|
48
|
-
|
|
49
|
-
| Prop | Type | Default | Description |
|
|
50
|
-
|------|------|---------|-------------|
|
|
51
|
-
| `...props` | `React.ComponentProps<typeof Switch>` | - | Spread to the Switch component. |
|
|
52
|
-
|
|
53
|
-
### `<EnvironmentVariablesContent />`
|
|
54
|
-
|
|
55
|
-
| Prop | Type | Default | Description |
|
|
56
|
-
|------|------|---------|-------------|
|
|
57
|
-
| `...props` | `React.HTMLAttributes<HTMLDivElement>` | - | Spread to the content div. |
|
|
58
|
-
|
|
59
|
-
### `<EnvironmentVariable />`
|
|
60
|
-
|
|
61
|
-
| Prop | Type | Default | Description |
|
|
62
|
-
|------|------|---------|-------------|
|
|
63
|
-
| `name` | `string` | Required | Variable name. |
|
|
64
|
-
| `value` | `string` | Required | Variable value. |
|
|
65
|
-
| `...props` | `React.HTMLAttributes<HTMLDivElement>` | - | Spread to the row div. |
|
|
66
|
-
|
|
67
|
-
### `<EnvironmentVariableGroup />`
|
|
68
|
-
|
|
69
|
-
| Prop | Type | Default | Description |
|
|
70
|
-
|------|------|---------|-------------|
|
|
71
|
-
| `...props` | `React.HTMLAttributes<HTMLDivElement>` | - | Spread to the group div. |
|
|
72
|
-
|
|
73
|
-
### `<EnvironmentVariableName />`
|
|
74
|
-
|
|
75
|
-
| Prop | Type | Default | Description |
|
|
76
|
-
|------|------|---------|-------------|
|
|
77
|
-
| `children` | `React.ReactNode` | - | Custom name content. Defaults to the name from context. |
|
|
78
|
-
| `...props` | `React.HTMLAttributes<HTMLSpanElement>` | - | Spread to the span element. |
|
|
79
|
-
|
|
80
|
-
### `<EnvironmentVariableValue />`
|
|
81
|
-
|
|
82
|
-
| Prop | Type | Default | Description |
|
|
83
|
-
|------|------|---------|-------------|
|
|
84
|
-
| `children` | `React.ReactNode` | - | Custom value content. Defaults to the masked/unmasked value from context. |
|
|
85
|
-
| `...props` | `React.HTMLAttributes<HTMLSpanElement>` | - | Spread to the span element. |
|
|
86
|
-
|
|
87
|
-
### `<EnvironmentVariableCopyButton />`
|
|
88
|
-
|
|
89
|
-
| Prop | Type | Default | Description |
|
|
90
|
-
|------|------|---------|-------------|
|
|
91
|
-
| `copyFormat` | `unknown` | - | Format to copy. |
|
|
92
|
-
| `onCopy` | `() => void` | - | Callback after successful copy. |
|
|
93
|
-
| `onError` | `(error: Error) => void` | - | Callback if copying fails. |
|
|
94
|
-
| `timeout` | `number` | `2000` | Duration to show copied state (ms). |
|
|
95
|
-
| `...props` | `React.ComponentProps<typeof Button>` | - | Spread to the Button component. |
|
|
96
|
-
|
|
97
|
-
### `<EnvironmentVariableRequired />`
|
|
98
|
-
|
|
99
|
-
| Prop | Type | Default | Description |
|
|
100
|
-
|------|------|---------|-------------|
|
|
101
|
-
| `children` | `React.ReactNode` | - | Custom badge text. |
|
|
102
|
-
| `...props` | `React.ComponentProps<typeof Badge>` | - | Spread to the Badge component. |
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
# File Tree
|
|
2
|
-
|
|
3
|
-
Display hierarchical file and folder structure with expand/collapse functionality.
|
|
4
|
-
|
|
5
|
-
The `FileTree` component displays a hierarchical file system structure with expandable folders and file selection.
|
|
6
|
-
|
|
7
|
-
See `scripts/file-tree.tsx` for this example.
|
|
8
|
-
|
|
9
|
-
## Installation
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
npx ai-elements@latest add file-tree
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Features
|
|
16
|
-
|
|
17
|
-
- Hierarchical folder structure
|
|
18
|
-
- Expand/collapse folders
|
|
19
|
-
- File selection with callback
|
|
20
|
-
- Keyboard accessible
|
|
21
|
-
- Customizable icons
|
|
22
|
-
- Controlled and uncontrolled modes
|
|
23
|
-
|
|
24
|
-
## Examples
|
|
25
|
-
|
|
26
|
-
### Basic Usage
|
|
27
|
-
|
|
28
|
-
See `scripts/file-tree-basic.tsx` for this example.
|
|
29
|
-
|
|
30
|
-
### With Selection
|
|
31
|
-
|
|
32
|
-
See `scripts/file-tree-selection.tsx` for this example.
|
|
33
|
-
|
|
34
|
-
### Default Expanded
|
|
35
|
-
|
|
36
|
-
See `scripts/file-tree-expanded.tsx` for this example.
|
|
37
|
-
|
|
38
|
-
## Props
|
|
39
|
-
|
|
40
|
-
### `<FileTree />`
|
|
41
|
-
|
|
42
|
-
| Prop | Type | Default | Description |
|
|
43
|
-
|------|------|---------|-------------|
|
|
44
|
-
| `expanded` | `Set<string>` | - | Controlled expanded paths. |
|
|
45
|
-
| `defaultExpanded` | `Set<string>` | `new Set()` | Default expanded paths. |
|
|
46
|
-
| `selectedPath` | `string` | - | Currently selected file/folder path. |
|
|
47
|
-
| `onSelect` | `(path: string) => void` | - | Callback when a file/folder is selected. |
|
|
48
|
-
| `onExpandedChange` | `(expanded: Set<string>) => void` | - | Callback when expanded paths change. |
|
|
49
|
-
| `className` | `string` | - | Additional CSS classes. |
|
|
50
|
-
|
|
51
|
-
### `<FileTreeFolder />`
|
|
52
|
-
|
|
53
|
-
| Prop | Type | Default | Description |
|
|
54
|
-
|------|------|---------|-------------|
|
|
55
|
-
| `path` | `string` | - | Unique folder path. |
|
|
56
|
-
| `name` | `string` | - | Display name. |
|
|
57
|
-
| `className` | `string` | - | Additional CSS classes. |
|
|
58
|
-
|
|
59
|
-
### `<FileTreeFile />`
|
|
60
|
-
|
|
61
|
-
| Prop | Type | Default | Description |
|
|
62
|
-
|------|------|---------|-------------|
|
|
63
|
-
| `path` | `string` | - | Unique file path. |
|
|
64
|
-
| `name` | `string` | - | Display name. |
|
|
65
|
-
| `icon` | `ReactNode` | - | Custom file icon. |
|
|
66
|
-
| `className` | `string` | - | Additional CSS classes. |
|
|
67
|
-
|
|
68
|
-
### Subcomponents
|
|
69
|
-
|
|
70
|
-
- `FileTreeIcon` - Icon wrapper
|
|
71
|
-
- `FileTreeName` - Name text
|
|
72
|
-
- `FileTreeActions` - Action buttons container (stops click propagation)
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
# Image
|
|
2
|
-
|
|
3
|
-
Displays AI-generated images from the AI SDK.
|
|
4
|
-
|
|
5
|
-
The `Image` component displays AI-generated images from the AI SDK. It accepts a [`Experimental_GeneratedImage`](/docs/reference/ai-sdk-core/generate-image) object from the AI SDK's `generateImage` function and automatically renders it as an image.
|
|
6
|
-
|
|
7
|
-
See `scripts/image.tsx` for this example.
|
|
8
|
-
|
|
9
|
-
## Installation
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
npx ai-elements@latest add image
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Usage with AI SDK
|
|
16
|
-
|
|
17
|
-
Build a simple app allowing a user to generate an image given a prompt.
|
|
18
|
-
|
|
19
|
-
Install the `@ai-sdk/openai` package:
|
|
20
|
-
|
|
21
|
-
```package-install
|
|
22
|
-
npm i @ai-sdk/openai
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
Add the following component to your frontend:
|
|
26
|
-
|
|
27
|
-
```tsx title="app/page.tsx"
|
|
28
|
-
"use client";
|
|
29
|
-
|
|
30
|
-
import { Image } from "@/components/ai-elements/image";
|
|
31
|
-
import {
|
|
32
|
-
PromptInput,
|
|
33
|
-
type PromptInputMessage,
|
|
34
|
-
PromptInputTextarea,
|
|
35
|
-
PromptInputSubmit,
|
|
36
|
-
} from "@/components/ai-elements/prompt-input";
|
|
37
|
-
import { useState } from "react";
|
|
38
|
-
import { Spinner } from "@/components/ui/spinner";
|
|
39
|
-
|
|
40
|
-
const ImageDemo = () => {
|
|
41
|
-
const [prompt, setPrompt] = useState("A futuristic cityscape at sunset");
|
|
42
|
-
const [imageData, setImageData] = useState<any>(null);
|
|
43
|
-
const [isLoading, setIsLoading] = useState(false);
|
|
44
|
-
|
|
45
|
-
const handleSubmit = async (message: PromptInputMessage) => {
|
|
46
|
-
if (!message.text.trim()) return;
|
|
47
|
-
setPrompt("");
|
|
48
|
-
|
|
49
|
-
setIsLoading(true);
|
|
50
|
-
try {
|
|
51
|
-
const response = await fetch("/api/image", {
|
|
52
|
-
method: "POST",
|
|
53
|
-
body: JSON.stringify({ prompt: message.text.trim() }),
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
const data = await response.json();
|
|
57
|
-
|
|
58
|
-
setImageData(data);
|
|
59
|
-
} catch (error) {
|
|
60
|
-
console.error("Error generating image:", error);
|
|
61
|
-
} finally {
|
|
62
|
-
setIsLoading(false);
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
return (
|
|
67
|
-
<div className="max-w-4xl mx-auto p-6 relative size-full rounded-lg border h-[600px]">
|
|
68
|
-
<div className="flex flex-col h-full">
|
|
69
|
-
<div className="flex-1 overflow-y-auto p-4">
|
|
70
|
-
{imageData && (
|
|
71
|
-
<div className="flex justify-center">
|
|
72
|
-
<Image
|
|
73
|
-
{...imageData}
|
|
74
|
-
alt="Generated image"
|
|
75
|
-
className="h-[300px] aspect-square border rounded-lg"
|
|
76
|
-
/>
|
|
77
|
-
</div>
|
|
78
|
-
)}
|
|
79
|
-
{isLoading && <Spinner />}
|
|
80
|
-
</div>
|
|
81
|
-
|
|
82
|
-
<PromptInput
|
|
83
|
-
onSubmit={handleSubmit}
|
|
84
|
-
className="mt-4 w-full max-w-2xl mx-auto relative"
|
|
85
|
-
>
|
|
86
|
-
<PromptInputTextarea
|
|
87
|
-
value={prompt}
|
|
88
|
-
placeholder="Describe the image you want to generate..."
|
|
89
|
-
onChange={(e) => setPrompt(e.currentTarget.value)}
|
|
90
|
-
className="pr-12"
|
|
91
|
-
/>
|
|
92
|
-
<PromptInputSubmit
|
|
93
|
-
status={isLoading ? "submitted" : "ready"}
|
|
94
|
-
disabled={!prompt.trim()}
|
|
95
|
-
className="absolute bottom-1 right-1"
|
|
96
|
-
/>
|
|
97
|
-
</PromptInput>
|
|
98
|
-
</div>
|
|
99
|
-
</div>
|
|
100
|
-
);
|
|
101
|
-
};
|
|
102
|
-
|
|
103
|
-
export default ImageDemo;
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
Add the following route to your backend:
|
|
107
|
-
|
|
108
|
-
```ts title="app/api/image/route.ts"
|
|
109
|
-
import { openai } from "@ai-sdk/openai";
|
|
110
|
-
import { experimental_generateImage } from "ai";
|
|
111
|
-
|
|
112
|
-
export async function POST(req: Request) {
|
|
113
|
-
const { prompt }: { prompt: string } = await req.json();
|
|
114
|
-
|
|
115
|
-
const { image } = await experimental_generateImage({
|
|
116
|
-
model: openai.image("dall-e-3"),
|
|
117
|
-
prompt: prompt,
|
|
118
|
-
size: "1024x1024",
|
|
119
|
-
});
|
|
120
|
-
|
|
121
|
-
return Response.json({
|
|
122
|
-
base64: image.base64,
|
|
123
|
-
uint8Array: image.uint8Array,
|
|
124
|
-
mediaType: image.mediaType,
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
## Features
|
|
130
|
-
|
|
131
|
-
- Accepts `Experimental_GeneratedImage` objects directly from the AI SDK
|
|
132
|
-
- Automatically creates proper data URLs from base64-encoded image data
|
|
133
|
-
- Supports all standard HTML image attributes
|
|
134
|
-
- Responsive by default with `max-w-full h-auto` styling
|
|
135
|
-
- Customizable with additional CSS classes
|
|
136
|
-
- Includes proper TypeScript types for AI SDK compatibility
|
|
137
|
-
|
|
138
|
-
## Props
|
|
139
|
-
|
|
140
|
-
### `<Image />`
|
|
141
|
-
|
|
142
|
-
| Prop | Type | Default | Description |
|
|
143
|
-
|------|------|---------|-------------|
|
|
144
|
-
| `alt` | `string` | - | Alternative text for the image. |
|
|
145
|
-
| `className` | `string` | - | Additional CSS classes to apply to the image. |
|
|
146
|
-
| `...props` | `Experimental_GeneratedImage` | - | The image data to display, as returned by the AI SDK. |
|
|
@@ -1,299 +0,0 @@
|
|
|
1
|
-
# Inline Citation
|
|
2
|
-
|
|
3
|
-
A hoverable citation component that displays source information and quotes inline with text, perfect for AI-generated content with references.
|
|
4
|
-
|
|
5
|
-
The `InlineCitation` component provides a way to display citations inline with text content, similar to academic papers or research documents. It consists of a citation pill that shows detailed source information on hover, making it perfect for AI-generated content that needs to reference sources.
|
|
6
|
-
|
|
7
|
-
See `scripts/inline-citation.tsx` for this example.
|
|
8
|
-
|
|
9
|
-
## Installation
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
npx ai-elements@latest add inline-citation
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Usage with AI SDK
|
|
16
|
-
|
|
17
|
-
Build citations for AI-generated content using [`experimental_generateObject`](/docs/reference/ai-sdk-ui/use-object).
|
|
18
|
-
|
|
19
|
-
Add the following component to your frontend:
|
|
20
|
-
|
|
21
|
-
```tsx title="app/page.tsx"
|
|
22
|
-
"use client";
|
|
23
|
-
|
|
24
|
-
import { experimental_useObject as useObject } from "@ai-sdk/react";
|
|
25
|
-
import {
|
|
26
|
-
InlineCitation,
|
|
27
|
-
InlineCitationText,
|
|
28
|
-
InlineCitationCard,
|
|
29
|
-
InlineCitationCardTrigger,
|
|
30
|
-
InlineCitationCardBody,
|
|
31
|
-
InlineCitationCarousel,
|
|
32
|
-
InlineCitationCarouselContent,
|
|
33
|
-
InlineCitationCarouselItem,
|
|
34
|
-
InlineCitationCarouselHeader,
|
|
35
|
-
InlineCitationCarouselIndex,
|
|
36
|
-
InlineCitationCarouselPrev,
|
|
37
|
-
InlineCitationCarouselNext,
|
|
38
|
-
InlineCitationSource,
|
|
39
|
-
InlineCitationQuote,
|
|
40
|
-
} from "@/components/ai-elements/inline-citation";
|
|
41
|
-
import { Button } from "@/components/ui/button";
|
|
42
|
-
import { citationSchema } from "@/app/api/citation/route";
|
|
43
|
-
|
|
44
|
-
const CitationDemo = () => {
|
|
45
|
-
const { object, submit, isLoading } = useObject({
|
|
46
|
-
api: "/api/citation",
|
|
47
|
-
schema: citationSchema,
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
const handleSubmit = (topic: string) => {
|
|
51
|
-
submit({ prompt: topic });
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
return (
|
|
55
|
-
<div className="max-w-4xl mx-auto p-6 space-y-6">
|
|
56
|
-
<div className="flex gap-2 mb-6">
|
|
57
|
-
<Button
|
|
58
|
-
onClick={() => handleSubmit("artificial intelligence")}
|
|
59
|
-
disabled={isLoading}
|
|
60
|
-
variant="outline"
|
|
61
|
-
>
|
|
62
|
-
Generate AI Content
|
|
63
|
-
</Button>
|
|
64
|
-
<Button
|
|
65
|
-
onClick={() => handleSubmit("climate change")}
|
|
66
|
-
disabled={isLoading}
|
|
67
|
-
variant="outline"
|
|
68
|
-
>
|
|
69
|
-
Generate Climate Content
|
|
70
|
-
</Button>
|
|
71
|
-
</div>
|
|
72
|
-
|
|
73
|
-
{isLoading && !object && (
|
|
74
|
-
<div className="text-muted-foreground">
|
|
75
|
-
Generating content with citations...
|
|
76
|
-
</div>
|
|
77
|
-
)}
|
|
78
|
-
|
|
79
|
-
{object?.content && (
|
|
80
|
-
<div className="prose prose-sm max-w-none">
|
|
81
|
-
<p className="leading-relaxed">
|
|
82
|
-
{object.content.split(/(\[\d+\])/).map((part, index) => {
|
|
83
|
-
const citationMatch = part.match(/\[(\d+)\]/);
|
|
84
|
-
if (citationMatch) {
|
|
85
|
-
const citationNumber = citationMatch[1];
|
|
86
|
-
const citation = object.citations?.find(
|
|
87
|
-
(c: any) => c.number === citationNumber
|
|
88
|
-
);
|
|
89
|
-
|
|
90
|
-
if (citation) {
|
|
91
|
-
return (
|
|
92
|
-
<InlineCitation key={index}>
|
|
93
|
-
<InlineCitationCard>
|
|
94
|
-
<InlineCitationCardTrigger sources={[citation.url]} />
|
|
95
|
-
<InlineCitationCardBody>
|
|
96
|
-
<InlineCitationCarousel>
|
|
97
|
-
<InlineCitationCarouselHeader>
|
|
98
|
-
<InlineCitationCarouselPrev />
|
|
99
|
-
<InlineCitationCarouselNext />
|
|
100
|
-
<InlineCitationCarouselIndex />
|
|
101
|
-
</InlineCitationCarouselHeader>
|
|
102
|
-
<InlineCitationCarouselContent>
|
|
103
|
-
<InlineCitationCarouselItem>
|
|
104
|
-
<InlineCitationSource
|
|
105
|
-
title={citation.title}
|
|
106
|
-
url={citation.url}
|
|
107
|
-
description={citation.description}
|
|
108
|
-
/>
|
|
109
|
-
{citation.quote && (
|
|
110
|
-
<InlineCitationQuote>
|
|
111
|
-
{citation.quote}
|
|
112
|
-
</InlineCitationQuote>
|
|
113
|
-
)}
|
|
114
|
-
</InlineCitationCarouselItem>
|
|
115
|
-
</InlineCitationCarouselContent>
|
|
116
|
-
</InlineCitationCarousel>
|
|
117
|
-
</InlineCitationCardBody>
|
|
118
|
-
</InlineCitationCard>
|
|
119
|
-
</InlineCitation>
|
|
120
|
-
);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
return part;
|
|
124
|
-
})}
|
|
125
|
-
</p>
|
|
126
|
-
</div>
|
|
127
|
-
)}
|
|
128
|
-
</div>
|
|
129
|
-
);
|
|
130
|
-
};
|
|
131
|
-
|
|
132
|
-
export default CitationDemo;
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
Add the following route to your backend:
|
|
136
|
-
|
|
137
|
-
```ts title="app/api/citation/route.ts"
|
|
138
|
-
import { streamObject } from "ai";
|
|
139
|
-
import { z } from "zod";
|
|
140
|
-
|
|
141
|
-
export const citationSchema = z.object({
|
|
142
|
-
content: z.string(),
|
|
143
|
-
citations: z.array(
|
|
144
|
-
z.object({
|
|
145
|
-
number: z.string(),
|
|
146
|
-
title: z.string(),
|
|
147
|
-
url: z.string(),
|
|
148
|
-
description: z.string().optional(),
|
|
149
|
-
quote: z.string().optional(),
|
|
150
|
-
})
|
|
151
|
-
),
|
|
152
|
-
});
|
|
153
|
-
|
|
154
|
-
// Allow streaming responses up to 30 seconds
|
|
155
|
-
export const maxDuration = 30;
|
|
156
|
-
|
|
157
|
-
export async function POST(req: Request) {
|
|
158
|
-
const { prompt } = await req.json();
|
|
159
|
-
|
|
160
|
-
const result = streamObject({
|
|
161
|
-
model: "openai/gpt-4o",
|
|
162
|
-
schema: citationSchema,
|
|
163
|
-
prompt: `Generate a well-researched paragraph about ${prompt} with proper citations.
|
|
164
|
-
|
|
165
|
-
Include:
|
|
166
|
-
- A comprehensive paragraph with inline citations marked as [1], [2], etc.
|
|
167
|
-
- 2-3 citations with realistic source information
|
|
168
|
-
- Each citation should have a title, URL, and optional description/quote
|
|
169
|
-
- Make the content informative and the sources credible
|
|
170
|
-
|
|
171
|
-
Format citations as numbered references within the text.`,
|
|
172
|
-
});
|
|
173
|
-
|
|
174
|
-
return result.toTextStreamResponse();
|
|
175
|
-
}
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
## Features
|
|
179
|
-
|
|
180
|
-
- Hover interaction to reveal detailed citation information
|
|
181
|
-
- **Carousel navigation** for multiple citations with prev/next controls
|
|
182
|
-
- **Live index tracking** showing current slide position (e.g., "1/5")
|
|
183
|
-
- Support for source titles, URLs, and descriptions
|
|
184
|
-
- Optional quote blocks for relevant excerpts
|
|
185
|
-
- Composable architecture for flexible citation formats
|
|
186
|
-
- Accessible design with proper keyboard navigation
|
|
187
|
-
- Seamless integration with AI-generated content
|
|
188
|
-
- Clean visual design that doesn't disrupt reading flow
|
|
189
|
-
- Smart badge display showing source hostname and count
|
|
190
|
-
|
|
191
|
-
## Usage with AI SDK
|
|
192
|
-
|
|
193
|
-
Currently, there is no official support for inline citations with Streamdown or the Response component. This is because:
|
|
194
|
-
|
|
195
|
-
- There isn't any good markdown syntax for inline citations
|
|
196
|
-
- Language models don't naturally respond with inline citation syntax
|
|
197
|
-
- The AI SDK doesn't have built-in support for inline citations
|
|
198
|
-
|
|
199
|
-
### Potential Approaches
|
|
200
|
-
|
|
201
|
-
While these methods are hypothetical and not officially supported, there are two conceptual ways inline citations could work with Streamdown:
|
|
202
|
-
|
|
203
|
-
1. **Footnote conversion**: GitHub Flavored Markdown (GFM) handles footnotes using `[^1]` syntax. You could hypothetically remove the default footnote rendering and convert footnotes to inline citations instead.
|
|
204
|
-
|
|
205
|
-
2. **Custom HTML syntax**: You could add a system prompt instructing the model to use a special HTML syntax like `<citation />` and pass that as a custom component to Streamdown.
|
|
206
|
-
|
|
207
|
-
These approaches require custom implementation and are not currently supported out of the box. We will investigate official support for this use case in the future.
|
|
208
|
-
|
|
209
|
-
For now, the recommended approach is to use `experimental_useObject` (as shown in the usage example above) to generate structured citation data, then manually parse and render inline citations.
|
|
210
|
-
|
|
211
|
-
## Props
|
|
212
|
-
|
|
213
|
-
### `<InlineCitation />`
|
|
214
|
-
|
|
215
|
-
| Prop | Type | Default | Description |
|
|
216
|
-
|------|------|---------|-------------|
|
|
217
|
-
| `...props` | `React.ComponentProps<` | - | Any other props are spread to the root span element. |
|
|
218
|
-
|
|
219
|
-
### `<InlineCitationText />`
|
|
220
|
-
|
|
221
|
-
| Prop | Type | Default | Description |
|
|
222
|
-
|------|------|---------|-------------|
|
|
223
|
-
| `...props` | `React.ComponentProps<` | - | Any other props are spread to the underlying span element. |
|
|
224
|
-
|
|
225
|
-
### `<InlineCitationCard />`
|
|
226
|
-
|
|
227
|
-
| Prop | Type | Default | Description |
|
|
228
|
-
|------|------|---------|-------------|
|
|
229
|
-
| `...props` | `React.ComponentProps<` | - | Any other props are spread to the HoverCard component. |
|
|
230
|
-
|
|
231
|
-
### `<InlineCitationCardTrigger />`
|
|
232
|
-
|
|
233
|
-
| Prop | Type | Default | Description |
|
|
234
|
-
|------|------|---------|-------------|
|
|
235
|
-
| `sources` | `string[]` | - | Array of source URLs. The length determines the number displayed in the badge. |
|
|
236
|
-
| `...props` | `React.ComponentProps<` | - | Any other props are spread to the underlying button element. |
|
|
237
|
-
|
|
238
|
-
### `<InlineCitationCardBody />`
|
|
239
|
-
|
|
240
|
-
| Prop | Type | Default | Description |
|
|
241
|
-
|------|------|---------|-------------|
|
|
242
|
-
| `...props` | `React.ComponentProps<` | - | Any other props are spread to the underlying div. |
|
|
243
|
-
|
|
244
|
-
### `<InlineCitationCarousel />`
|
|
245
|
-
|
|
246
|
-
| Prop | Type | Default | Description |
|
|
247
|
-
|------|------|---------|-------------|
|
|
248
|
-
| `...props` | `React.ComponentProps<typeof Carousel>` | - | Any other props are spread to the underlying Carousel component. |
|
|
249
|
-
|
|
250
|
-
### `<InlineCitationCarouselContent />`
|
|
251
|
-
|
|
252
|
-
| Prop | Type | Default | Description |
|
|
253
|
-
|------|------|---------|-------------|
|
|
254
|
-
| `...props` | `React.ComponentProps<` | - | Any other props are spread to the underlying CarouselContent component. |
|
|
255
|
-
|
|
256
|
-
### `<InlineCitationCarouselItem />`
|
|
257
|
-
|
|
258
|
-
| Prop | Type | Default | Description |
|
|
259
|
-
|------|------|---------|-------------|
|
|
260
|
-
| `...props` | `React.ComponentProps<` | - | Any other props are spread to the underlying div. |
|
|
261
|
-
|
|
262
|
-
### `<InlineCitationCarouselHeader />`
|
|
263
|
-
|
|
264
|
-
| Prop | Type | Default | Description |
|
|
265
|
-
|------|------|---------|-------------|
|
|
266
|
-
| `...props` | `React.ComponentProps<` | - | Any other props are spread to the underlying div. |
|
|
267
|
-
|
|
268
|
-
### `<InlineCitationCarouselIndex />`
|
|
269
|
-
|
|
270
|
-
| Prop | Type | Default | Description |
|
|
271
|
-
|------|------|---------|-------------|
|
|
272
|
-
| `...props` | `React.ComponentProps<` | - | Any other props are spread to the underlying div. Children will override the default index display. |
|
|
273
|
-
|
|
274
|
-
### `<InlineCitationCarouselPrev />`
|
|
275
|
-
|
|
276
|
-
| Prop | Type | Default | Description |
|
|
277
|
-
|------|------|---------|-------------|
|
|
278
|
-
| `...props` | `React.ComponentProps<typeof CarouselPrevious>` | - | Any other props are spread to the underlying CarouselPrevious component. |
|
|
279
|
-
|
|
280
|
-
### `<InlineCitationCarouselNext />`
|
|
281
|
-
|
|
282
|
-
| Prop | Type | Default | Description |
|
|
283
|
-
|------|------|---------|-------------|
|
|
284
|
-
| `...props` | `React.ComponentProps<typeof CarouselNext>` | - | Any other props are spread to the underlying CarouselNext component. |
|
|
285
|
-
|
|
286
|
-
### `<InlineCitationSource />`
|
|
287
|
-
|
|
288
|
-
| Prop | Type | Default | Description |
|
|
289
|
-
|------|------|---------|-------------|
|
|
290
|
-
| `title` | `string` | - | The title of the source. |
|
|
291
|
-
| `url` | `string` | - | The URL of the source. |
|
|
292
|
-
| `description` | `string` | - | A brief description of the source. |
|
|
293
|
-
| `...props` | `React.ComponentProps<` | - | Any other props are spread to the underlying div. |
|
|
294
|
-
|
|
295
|
-
### `<InlineCitationQuote />`
|
|
296
|
-
|
|
297
|
-
| Prop | Type | Default | Description |
|
|
298
|
-
|------|------|---------|-------------|
|
|
299
|
-
| `...props` | `React.ComponentProps<` | - | Any other props are spread to the underlying blockquote element. |
|