@php $rows = $rows ?? collect(); $counts = $counts ?? ['all' => 0, 'active' => 0, 'inactive' => 0]; $currentStatus = $currentStatus ?? 'all'; $currentSearch = $currentSearch ?? ''; @endphp @if (session('status') || $errors->any()) @push('scripts') @endpush @endif
{{-- self-start + sticky: the left panel floats/stays in view while the attributes list on the right scrolls (matches the meta-ads layout). items-start on the grid stops the column from stretching full-height, which is what lets sticky engage. --}}
{{ __('More / Attributes') }}

{{ __('Template') }} {{ __('attributes') }}

{{ __('Variables you can drop into any message body. Meta requires positional placeholders like') }} @{{ 1 }} @{{ 2 }} / not @{{ name }}.

{{ __('Total') }}
{{ number_format($counts['all']) }}
{{ __('attributes') }}
{{ __('Active') }}
{{ number_format($counts['active']) }}
{{ __('show in slash picker') }}
{{ __('Inactive') }}
{{ number_format($counts['inactive']) }}
{{ __('hidden from picker') }}
@include('user.attributes._rows', ['rows' => $rows])
{{ __('Name') }} {{ __('Key') }} {{ __('Default') }} {{ __('Description') }} {{ __('Status') }} {{ __('Actions') }}
@include('user.partials.pagination', [ 'paginator' => $rows, 'dataAttr' => 'data-attr-page', 'label' => 'attributes', ])

{{ __('When to add one') }}

{{ __("If a value isn't already on the contact (like an order ID, coupon code, or appointment time), add it as an attribute so templates can fill it in.") }}

{{ __('Meta rules') }}

{{ __("Templates only accept positional placeholders. Don't put attribute keys directly into a template body / use the slash picker so it inserts") }} @{{ N }}.

{{ __('Naming tips') }}

{{ __('Use snake_case for keys. Keep names short and consistent:') }} {{ __('order_id') }}, {{ __('tracking_url') }}, {{ __('discount_code') }}, {{ __('appointment_at') }}.

{{ __('Tip') }}
{{ __('Default values save you') }}

{{ __('Set a default for every attribute. If a contact is missing that value at send time, the default is used instead of the message failing or showing a blank slot.') }}