Skip to main content

Component Reference

This page documents every subscribd component with its props, events, slots, and publish tags. All Livewire components live in the subscribd::subscriber.* and subscribd::admin.* namespaces.
All Blade components are prefixed with x-subscribd-.

Publish tags

TagWhat is published
subscribd-viewsFull view ownership — you manage updates manually
subscribd-cssCSS custom properties only — view logic auto-updates
# Publish all views
php artisan vendor:publish --tag=subscribd-views

# Publish CSS variables only
php artisan vendor:publish --tag=subscribd-css

# Re-publish and diff against latest views
php artisan vendor:publish --tag=subscribd-views --force
Always check the CHANGELOG for VIEW CHANGE notices before re-publishing with --force.

Subscriber components

PlanPicker (Livewire)

Renders all active plans as selectable cards with upgrade/downgrade support for existing subscribers.
<livewire:subscribd::subscriber.plan-picker />
<livewire:subscribd::subscriber.plan-picker subscription-name="team" />
Props
PropTypeDefaultDescription
subscription-namestring'default'Named subscription slot to target
show-current-badgebooltrueShow “Current plan” badge on the active plan
columnsint3Number of plan columns in the grid
Events dispatched (browser)
EventWhen
subscribd:plan-selectedUser clicks a plan card
subscribd:plan-changedSubscription swapped successfully
Slots
SlotDescription
plan-card-footerExtra content below each plan card’s feature list
emptyRendered when no active plans exist
Published view path: resources/views/vendor/subscribd/livewire/subscriber/plan-picker.blade.php

Checkout (Livewire)

Renders the gateway-specific payment form for a given plan. Supports embedded (Stripe Elements, Braintree Drop-in, Square Web Payments) and overlay (Paddle) checkout modes.
<livewire:subscribd::subscriber.checkout :plan="$plan" />
<livewire:subscribd::subscriber.checkout :plan="$plan" subscription-name="team" />
Required props
PropTypeDescription
planPlanThe plan the customer is checking out for
Optional props
PropTypeDefaultDescription
subscription-namestring'default'Named subscription slot
coupon-codestring|nullnullPre-applied coupon code
return-urlstring|nullnullRedirect URL after successful checkout
Events dispatched (browser)
EventPayloadWhen
subscribd:checkout-complete{ subscriptionId }Payment succeeded
subscribd:checkout-failed{ message }Payment failed
subscribd:checkout-requires-action{ clientSecret }SCA/3DS confirmation required
Slots
SlotDescription
payment-formOverride the entire payment form (advanced)
legalLegal copy below the submit button
ctaCustom text for the subscribe button
Published view path: resources/views/vendor/subscribd/livewire/subscriber/checkout.blade.php

BillingDashboard (Livewire)

Full self-service billing portal. Composes PlanPicker, SubscriptionManager, InvoiceHistory, PaymentMethods, CouponRedeem, and TrialStatus into a single tabbed dashboard.
<livewire:subscribd::subscriber.billing-dashboard />
Optional props
PropTypeDefaultDescription
subscription-namestring'default'Named subscription slot
tabsarray|nullnullWhitelist of visible tab IDs: plan, invoices, payment, coupon
Published view path: resources/views/vendor/subscribd/livewire/subscriber/billing-dashboard.blade.php

SubscriptionManager (Livewire)

Displays the current subscription with status, plan name, next billing date, and self-service actions (cancel, resume, trial convert, trial extend).
<livewire:subscribd::subscriber.subscription-manager />
<livewire:subscribd::subscriber.subscription-manager subscription-name="team" />
Optional props
PropTypeDefaultDescription
subscription-namestring'default'Named subscription slot
allow-cancelbooltrueShow cancel button
allow-resumebooltrueShow resume button
Events dispatched (browser)
EventWhen
subscribd:subscription-canceledSubscription canceled
subscribd:subscription-resumedSubscription resumed
Published view path: resources/views/vendor/subscribd/livewire/subscriber/subscription-manager.blade.php

PaymentMethods (Livewire)

Lists stored payment methods with update and set-default actions.
<livewire:subscribd::subscriber.payment-methods />
Events dispatched (browser)
EventWhen
subscribd:payment-method-updatedNew payment method saved
subscribd:payment-method-removedPayment method deleted
Published view path: resources/views/vendor/subscribd/livewire/subscriber/payment-methods.blade.php

InvoiceHistory (Livewire)

Paginated invoice list with PDF download links.
<livewire:subscribd::subscriber.invoice-history />
<livewire:subscribd::subscriber.invoice-history :per-page="25" />
Optional props
PropTypeDefaultDescription
per-pageint10Invoices per page
show-status-filterbooltrueShow status filter dropdown
Published view path: resources/views/vendor/subscribd/livewire/subscriber/invoice-history.blade.php

CouponRedeem (Livewire)

Coupon code input widget for custom checkout flows. Validates and stores coupon code in session.
<livewire:subscribd::subscriber.coupon-redeem />
<livewire:subscribd::subscriber.coupon-redeem :plan="$plan" />
Optional props
PropTypeDefaultDescription
planPlan|nullnullWhen set, validates coupon against this plan
subscription-namestring'default'Named slot to apply coupon to (post-checkout)
Events dispatched (browser)
EventPayloadWhen
subscribd:coupon-validated{ code, discount }Coupon accepted
subscribd:coupon-removedCoupon removed
Published view path: resources/views/vendor/subscribd/livewire/subscriber/coupon-redeem.blade.php

TrialStatus (Livewire)

Displays trial days remaining with Convert and Extend actions.
<livewire:subscribd::subscriber.trial-status />
<livewire:subscribd::subscriber.trial-status subscription-name="team" />
Optional props
PropTypeDefaultDescription
subscription-namestring'default'Named subscription slot
show-extendbooltrueShow extend button (only rendered when gateway supports trial extension)
Events dispatched (browser)
EventWhen
subscribd:trial-convertedConvertTrialToActive succeeded
subscribd:trial-extendedTrial extended
subscribd:trial-canceledTrial canceled
Published view path: resources/views/vendor/subscribd/livewire/subscriber/trial-status.blade.php

Admin components

Admin\BillingDashboard (Livewire)

Admin overview dashboard with KPI widgets (MRR, ARR, Active Subscriptions, Churn Rate, Trial Conversion).
<livewire:subscribd::admin.billing-dashboard />
Published view path: resources/views/vendor/subscribd/livewire/admin/billing-dashboard.blade.php

Admin\SubscriptionList (Livewire)

Searchable, filterable subscription table with inline management actions.
<livewire:subscribd::admin.subscription-list />
Optional props
PropTypeDefaultDescription
filter-statusstring|nullnullPre-filter by status (active, trialing, past_due, etc.)
filter-planstring|nullnullPre-filter by plan key
Published view path: resources/views/vendor/subscribd/livewire/admin/subscription-list.blade.php

Admin\PlanManager (Livewire)

Create, update, and reorder plans and plan items.
<livewire:subscribd::admin.plan-manager />
Published view path: resources/views/vendor/subscribd/livewire/admin/plan-manager.blade.php

Admin\CouponManager (Livewire)

Create and manage coupons, view redemption counts, and expire coupons early.
<livewire:subscribd::admin.coupon-manager />
Published view path: resources/views/vendor/subscribd/livewire/admin/coupon-manager.blade.php

Admin\BulkOperations (Livewire)

UI for running bulk plan swaps, cancellations, price overrides, and coupon campaigns.
<livewire:subscribd::admin.bulk-operations />
Published view path: resources/views/vendor/subscribd/livewire/admin/bulk-operations.blade.php

Blade components

x-subscribd-plan-picker

Renders all active plans as server-rendered selectable cards. No reactivity — form submit triggers a page reload.
<x-subscribd-plan-picker :plans="$plans" />
Required props
PropTypeDescription
plansCollection<Plan>Plans to display
Optional props
PropTypeDefaultDescription
current-planPlan|nullnullHighlights the current plan
subscribe-routestring'subscribd.checkout'Route name for the subscribe action
Slots: plan-card-footer on each card.

x-subscribd-checkout

Server-rendered checkout form. For embedded gateways, renders a gateway-specific JS snippet. Pass the gateway-client-key prop to initialise the payment SDK.
<x-subscribd-checkout :plan="$plan" :setup-intent="$setupIntent" />
Required props
PropTypeDescription
planPlanThe plan being purchased
setup-intentarrayArray from BillingGateway::createSetupIntent()
Optional props
PropTypeDefaultDescription
return-urlstringurl('/')Redirect after payment
Slots: legal (below submit button).

x-subscribd-subscription-manager

Read-only subscription summary card. Shows plan name, status badge, next billing date, and grace period countdown if applicable.
<x-subscribd-subscription-manager :subscription="$subscription" />
Required props
PropTypeDescription
subscriptionSubscriptionSubscription to display

x-subscribd-payment-methods

Read-only list of stored payment methods.
<x-subscribd-payment-methods :methods="$user->paymentMethods" />
Required props
PropTypeDescription
methodsCollection<PaymentMethod>Payment methods to display

x-subscribd-invoice-history

Non-paginated invoice table. Best for recent-invoice widgets.
<x-subscribd-invoice-history :invoices="$user->invoices()->take(5)->get()" />
Required props
PropTypeDescription
invoicesCollection<Invoice>Invoices to display

x-subscribd-coupon-redeem

Inline coupon entry form. Submits a POST request to the coupon validation endpoint.
<x-subscribd-coupon-redeem :action="route('subscribd.coupon.validate')" />
Required props
PropTypeDescription
actionstringForm action URL

x-subscribd-subscription-badge

Status pill badge for the current subscription.
<x-subscribd-subscription-badge :subscription="$subscription" />
Renders nothing when $subscription is null.

x-subscribd-trial-status

Read-only trial status text. Shows days remaining. No action buttons.
<x-subscribd-trial-status :subscription="$subscription" />
Renders nothing when the subscription is not on trial.

Next steps