diff --git a/.gitignore b/.gitignore index e4e7d98..ef651ea 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .collections .locales +.shopify diff --git a/assets/component.block-variant-picker.css b/assets/component.block-variant-picker.css deleted file mode 100644 index 6a0bc97..0000000 --- a/assets/component.block-variant-picker.css +++ /dev/null @@ -1,4 +0,0 @@ -.block-variant-picker { - display: grid; - gap: var(--size-6); -} diff --git a/assets/component.block-buy-buttons.css b/assets/product.block.buy-buttons.css similarity index 100% rename from assets/component.block-buy-buttons.css rename to assets/product.block.buy-buttons.css diff --git a/assets/component.block-buy-buttons.js b/assets/product.block.buy-buttons.js similarity index 100% rename from assets/component.block-buy-buttons.js rename to assets/product.block.buy-buttons.js diff --git a/assets/component.product-media-gallery.css b/assets/product.block.media-gallery.css similarity index 100% rename from assets/component.product-media-gallery.css rename to assets/product.block.media-gallery.css diff --git a/assets/component.product-media-gallery.js b/assets/product.block.media-gallery.js similarity index 100% rename from assets/component.product-media-gallery.js rename to assets/product.block.media-gallery.js diff --git a/assets/component.block-price.css b/assets/product.block.price.css similarity index 100% rename from assets/component.block-price.css rename to assets/product.block.price.css diff --git a/assets/component.block-price.js b/assets/product.block.price.js similarity index 100% rename from assets/component.block-price.js rename to assets/product.block.price.js diff --git a/assets/component.block-title.css b/assets/product.block.title.css similarity index 100% rename from assets/component.block-title.css rename to assets/product.block.title.css diff --git a/assets/component.variant-sku.js b/assets/product.block.title.sku.js similarity index 100% rename from assets/component.variant-sku.js rename to assets/product.block.title.sku.js diff --git a/assets/component.variant-button.css b/assets/product.block.variant-picker.css similarity index 95% rename from assets/component.variant-button.css rename to assets/product.block.variant-picker.css index f7204c3..bcdc5d1 100644 --- a/assets/component.variant-button.css +++ b/assets/product.block.variant-picker.css @@ -1,3 +1,8 @@ +.block-variant-picker { + display: grid; + gap: var(--size-6); +} + .variant-button { --label-bottom-margin: var(--size-3); diff --git a/assets/component.block-variant-picker.js b/assets/product.block.variant-picker.js similarity index 100% rename from assets/component.block-variant-picker.js rename to assets/product.block.variant-picker.js diff --git a/blocks/_product-buy-buttons.liquid b/blocks/_product-buy-buttons.liquid new file mode 100644 index 0000000..868557d --- /dev/null +++ b/blocks/_product-buy-buttons.liquid @@ -0,0 +1,17 @@ +{% render 'product.block.buy-buttons' %} + +{% schema %} + { + "name": "t:labels.buy_buttons", + "settings": [ + { + "type": "checkbox", + "id": "show_dynamic_checkout", + "label": "t:actions.show_dynamic_checkout", + "default": true, + "info": "t:info.lets_customers_checkout_familiar" + } + ] + } +{% endschema %} + diff --git a/blocks/_product-description.liquid b/blocks/_product-description.liquid new file mode 100644 index 0000000..80378be --- /dev/null +++ b/blocks/_product-description.liquid @@ -0,0 +1,7 @@ +{%- render 'product.block.description', product: product -%} + +{% schema %} + { + "name": "t:labels.description" + } +{% endschema %} \ No newline at end of file diff --git a/blocks/_product-media-gallery.liquid b/blocks/_product-media-gallery.liquid new file mode 100644 index 0000000..c8428df --- /dev/null +++ b/blocks/_product-media-gallery.liquid @@ -0,0 +1,7 @@ +{% render 'product.block.media-gallery' %} + +{% schema %} + { + "name": "Product Media Gallery" + } +{% endschema %} diff --git a/blocks/_product-price.liquid b/blocks/_product-price.liquid new file mode 100644 index 0000000..a724c09 --- /dev/null +++ b/blocks/_product-price.liquid @@ -0,0 +1,7 @@ +{% render 'product.block.price' %} + +{% schema %} + { + "name": "t:labels.price" + } +{% endschema %} \ No newline at end of file diff --git a/blocks/_product-title.liquid b/blocks/_product-title.liquid new file mode 100644 index 0000000..330497f --- /dev/null +++ b/blocks/_product-title.liquid @@ -0,0 +1,20 @@ +{% render 'product.block.title' %} + +{% schema %} + { + "name": "t:labels.title", + "settings": [ + { + "type": "checkbox", + "id": "vendor_enable", + "label": "t:actions.show_vendor" + }, + { + "type": "checkbox", + "id": "sku_enable", + "label": "t:actions.show_sku", + "default": true + } + ] + } +{% endschema %} \ No newline at end of file diff --git a/blocks/_product-variant-picker.liquid b/blocks/_product-variant-picker.liquid new file mode 100644 index 0000000..428d4e4 --- /dev/null +++ b/blocks/_product-variant-picker.liquid @@ -0,0 +1,25 @@ +{% render 'product.block.variant-picker' %} + +{% schema %} + { + "name": "Variant picker", + "settings": [ + { + "type": "select", + "id": "picker_type", + "label": "t:labels.type", + "options": [ + { + "value": "button", + "label": "t:labels.buttons" + }, + { + "value": "dropdown", + "label": "t:labels.dropdown" + } + ], + "default": "button" + } + ] + } +{% endschema %} \ No newline at end of file diff --git a/component.manifest.json b/component.manifest.json index 26efd7c..f22a4ea 100644 --- a/component.manifest.json +++ b/component.manifest.json @@ -1,6 +1,7 @@ { "collections": { "@archetype-themes/reference-components": { + "commit": "ec57c3ff897f9dd4e6ddde29d6a4e45dc027b3b4", "version": "2.0.0" } }, @@ -10,8 +11,6 @@ "base.document.css": "@archetype-themes/reference-components", "base.normalize.css": "@archetype-themes/reference-components", "base.typography.css": "@archetype-themes/reference-components", - "component.block-buy-buttons.css": "@archetype-themes/reference-components", - "component.block-buy-buttons.js": "@archetype-themes/reference-components", "component.block-cart-checkout-button.css": "@archetype-themes/reference-components", "component.block-cart-note.css": "@archetype-themes/reference-components", "component.block-cart-note.js": "@archetype-themes/reference-components", @@ -20,12 +19,7 @@ "component.block-image.css": "@archetype-themes/reference-components", "component.block-model.css": "@archetype-themes/reference-components", "component.block-model.js": "@archetype-themes/reference-components", - "component.block-price.css": "@archetype-themes/reference-components", - "component.block-price.js": "@archetype-themes/reference-components", "component.block-rich-text.css": "@archetype-themes/reference-components", - "component.block-title.css": "@archetype-themes/reference-components", - "component.block-variant-picker.css": "@archetype-themes/reference-components", - "component.block-variant-picker.js": "@archetype-themes/reference-components", "component.block-video.css": "@archetype-themes/reference-components", "component.block-video.js": "@archetype-themes/reference-components", "component.button.css": "@archetype-themes/reference-components", @@ -40,21 +34,27 @@ "component.line-item.css": "@archetype-themes/reference-components", "component.model-viewer.css": "@archetype-themes/reference-components", "component.placeholder-svg.css": "@archetype-themes/reference-components", - "component.product-media-gallery.css": "@archetype-themes/reference-components", - "component.product-media-gallery.js": "@archetype-themes/reference-components", "component.rte.css": "@archetype-themes/reference-components", "component.section-header.css": "@archetype-themes/reference-components", "component.section-main-cart.css": "@archetype-themes/reference-components", "component.section-main-product.css": "@archetype-themes/reference-components", "component.section-media-with-text.css": "@archetype-themes/reference-components", "component.select.css": "@archetype-themes/reference-components", - "component.variant-button.css": "@archetype-themes/reference-components", - "component.variant-sku.js": "@archetype-themes/reference-components", "element.base-media.js": "@archetype-themes/reference-components", "icon.alert.svg": "@archetype-themes/reference-components", "icon.bag.svg": "@archetype-themes/reference-components", "icon.caret.svg": "@archetype-themes/reference-components", "icon.cart.svg": "@archetype-themes/reference-components", + "product.block.buy-buttons.css": "@archetype-themes/reference-components", + "product.block.buy-buttons.js": "@archetype-themes/reference-components", + "product.block.media-gallery.css": "@archetype-themes/reference-components", + "product.block.media-gallery.js": "@archetype-themes/reference-components", + "product.block.price.css": "@archetype-themes/reference-components", + "product.block.price.js": "@archetype-themes/reference-components", + "product.block.title.css": "@archetype-themes/reference-components", + "product.block.title.sku.js": "@archetype-themes/reference-components", + "product.block.variant-picker.css": "@archetype-themes/reference-components", + "product.block.variant-picker.js": "@archetype-themes/reference-components", "util.aspect-ratio.css": "@archetype-themes/reference-components", "util.clearfix.css": "@archetype-themes/reference-components", "util.display.css": "@archetype-themes/reference-components", @@ -70,17 +70,12 @@ "vendor.is-land.min.js": "@archetype-themes/reference-components" }, "snippets": { - "block-buy-buttons.liquid": "@archetype-themes/reference-components", "block-cart-checkout-button.liquid": "@archetype-themes/reference-components", "block-cart-note.liquid": "@archetype-themes/reference-components", "block-cart-totals.liquid": "@archetype-themes/reference-components", "block-image.liquid": "@archetype-themes/reference-components", "block-model.liquid": "@archetype-themes/reference-components", - "block-price.liquid": "@archetype-themes/reference-components", - "block-product-description.liquid": "@archetype-themes/reference-components", "block-rich-text.liquid": "@archetype-themes/reference-components", - "block-title.liquid": "@archetype-themes/reference-components", - "block-variant-picker.liquid": "@archetype-themes/reference-components", "block-video.liquid": "@archetype-themes/reference-components", "cart-icon.liquid": "@archetype-themes/reference-components", "cart-status-notifier.liquid": "@archetype-themes/reference-components", @@ -96,19 +91,23 @@ "line-item-quantity.liquid": "@archetype-themes/reference-components", "line-item.liquid": "@archetype-themes/reference-components", "price.liquid": "@archetype-themes/reference-components", - "product-description.liquid": "@archetype-themes/reference-components", - "product-media-gallery.liquid": "@archetype-themes/reference-components", + "product.block.buy-buttons.liquid": "@archetype-themes/reference-components", + "product.block.description.liquid": "@archetype-themes/reference-components", + "product.block.media-gallery.liquid": "@archetype-themes/reference-components", + "product.block.price.liquid": "@archetype-themes/reference-components", + "product.block.title.liquid": "@archetype-themes/reference-components", + "product.block.title.sku.liquid": "@archetype-themes/reference-components", + "product.block.variant-picker.button.liquid": "@archetype-themes/reference-components", + "product.block.variant-picker.dropdown.liquid": "@archetype-themes/reference-components", + "product.block.variant-picker.liquid": "@archetype-themes/reference-components", + "product.section.main.liquid": "@archetype-themes/reference-components", "section-header.liquid": "@archetype-themes/reference-components", "section-main-cart.liquid": "@archetype-themes/reference-components", - "section-main-product.liquid": "@archetype-themes/reference-components", "section-media-with-text.liquid": "@archetype-themes/reference-components", "styles-head.liquid": "@archetype-themes/reference-components", "styles-tokens.liquid": "@archetype-themes/reference-components", "stylesheet.liquid": "@archetype-themes/reference-components", - "t-with-fallback.liquid": "@archetype-themes/reference-components", - "variant-button.liquid": "@archetype-themes/reference-components", - "variant-dropdown.liquid": "@archetype-themes/reference-components", - "variant-sku.liquid": "@archetype-themes/reference-components" + "t-with-fallback.liquid": "@archetype-themes/reference-components" } } } \ No newline at end of file diff --git a/sections/main-product.liquid b/sections/main-product.liquid index b898ca8..ae3e2a3 100644 --- a/sections/main-product.liquid +++ b/sections/main-product.liquid @@ -1,29 +1,21 @@ {%- liquid capture blocks - for block in section.blocks - case block.type - when '@app' - render block - when 'description' - render 'block-product-description', block: block - when 'variant_picker' - render 'block-variant-picker', block: block - when 'buy_buttons' - render 'block-buy-buttons', block: block - when 'title' - render 'block-title', block: block - when 'price' - render 'block-price', block: block - endcase - endfor + content_for 'blocks' endcapture - render 'section-main-product', slot_product_blocks: blocks --%} + render 'product.section.main', slot_product_blocks: blocks +-%} {% schema %} { "name": "t:labels.product", + "blocks": [ + { "type": "_product-buy-buttons" }, + { "type": "_product-description" }, + { "type": "_product-price" }, + { "type": "_product-title" }, + { "type": "_product-variant-picker" } + ], "settings": [ { "type": "header", @@ -50,74 +42,15 @@ "default": "left" } ], - "blocks": [ - { - "type": "@app" - }, - { - "type": "title", - "name": "t:labels.title", - "limit": 1, - "settings": [ - { - "type": "checkbox", - "id": "vendor_enable", - "label": "t:actions.show_vendor" - }, - { - "type": "checkbox", - "id": "sku_enable", - "label": "t:actions.show_sku", - "default": true - } - ] - }, - { - "type": "price", - "name": "t:labels.price", - "limit": 1 - }, - { - "type": "description", - "name": "t:labels.description", - "limit": 1, - "settings": [] - }, - { - "type": "variant_picker", - "name": "Variant picker", - "limit": 1, - "settings": [ - { - "type": "select", - "id": "picker_type", - "label": "t:labels.type", - "options": [ - { - "value": "button", - "label": "t:labels.buttons" - }, - { - "value": "dropdown", - "label": "t:labels.dropdown" - } - ], - "default": "button" - } - ] - }, - { - "type": "buy_buttons", - "name": "t:labels.buy_buttons", - "limit": 1, - "settings": [ - { - "type": "checkbox", - "id": "show_dynamic_checkout", - "label": "t:actions.show_dynamic_checkout", - "default": true, - "info": "t:info.lets_customers_checkout_familiar" - } + "presets": [ + { + "name": "t:labels.product", + "blocks": [ + { "type": "_product-title" }, + { "type": "_product-price" }, + { "type": "_product-variant-picker" }, + { "type": "_product-description" }, + { "type": "_product-buy-buttons" } ] } ] diff --git a/snippets/block-product-description.liquid b/snippets/block-product-description.liquid deleted file mode 100644 index 30af0ba..0000000 --- a/snippets/block-product-description.liquid +++ /dev/null @@ -1,18 +0,0 @@ -{%- comment -%} - Renders the product description - - Accepts: - - block {block} - Block object - - product {product} - Product object - - Usage: - {% render 'block-product-description', block: block %} -{%- endcomment -%} - -{% liquid - assign product = product | default: section.settings.product -%} - -