================================================================================
@if
================================================================================

@if (true)
    test
@endif

--------------------------------------------------------------------------------

(blade
  (conditional
    (directive_start)
    (bracket_start)
    (parameter)
    (bracket_end)
    (text)
    (directive_end)))

================================================================================
@if nesting
================================================================================

@if(true)
        @if(true)
            test
        @endif
@endif

--------------------------------------------------------------------------------

(blade
  (conditional
    (directive_start)
    (bracket_start)
    (parameter)
    (bracket_end)
    (conditional
      (directive_start)
      (bracket_start)
      (parameter)
      (bracket_end)
      (text)
      (directive_end))
    (directive_end)))

================================================================================
conditional keywords
================================================================================

@if (true)
    test
@elseif (true)
    test
@else
    test
@endif

--------------------------------------------------------------------------------

(blade
  (conditional
    (directive_start)
    (bracket_start)
    (parameter)
    (bracket_end)
    (text)
    (conditional_keyword
      (directive)
      (bracket_start)
      (parameter)
      (bracket_end))
    (text)
    (conditional_keyword
      (directive))
    (text)
    (directive_end)))

================================================================================
@unless
================================================================================

@unless(true)
        test
@endunless

--------------------------------------------------------------------------------

(blade
  (conditional
    (directive_start)
    (bracket_start)
    (parameter)
    (bracket_end)
    (text)
    (directive_end)))

================================================================================
@isset
================================================================================

@isset(true)
        test
@endisset

--------------------------------------------------------------------------------

(blade
  (conditional
    (directive_start)
    (bracket_start)
    (parameter)
    (bracket_end)
    (text)
    (directive_end)))

================================================================================
@empty
================================================================================

@empty(true)
        test
@endempty

--------------------------------------------------------------------------------

(blade
  (conditional
    (directive_start)
    (bracket_start)
    (parameter)
    (bracket_end)
    (text)
    (directive_end)))

================================================================================
@auth
================================================================================

@auth
        test
@endauth

--------------------------------------------------------------------------------

(blade
  (conditional
    (directive_start)
    (text)
    (directive_end)))

================================================================================
@auth with parameters
================================================================================

@auth('test')
        test
@endauth

--------------------------------------------------------------------------------

(blade
  (conditional
    (directive_start)
    (bracket_start)
    (parameter)
    (bracket_end)
    (text)
    (directive_end)))

================================================================================
@guest
================================================================================

@guest
        test
@endguest

--------------------------------------------------------------------------------

(blade
  (conditional
    (directive_start)
    (text)
    (directive_end)))

================================================================================
@guest with parameters
================================================================================

@guest('test')
        test
@endguest

--------------------------------------------------------------------------------

(blade
  (conditional
    (directive_start)
    (bracket_start)
    (parameter)
    (bracket_end)
    (text)
    (directive_end)))

================================================================================
@production
================================================================================

@production
        test
@endproduction

--------------------------------------------------------------------------------

(blade
  (conditional
    (directive_start)
    (text)
    (directive_end)))

================================================================================
@env
================================================================================

@env('test')
        test
@endenv

--------------------------------------------------------------------------------

(blade
  (conditional
    (directive_start)
    (bracket_start)
    (parameter)
    (bracket_end)
    (text)
    (directive_end)))

================================================================================
@hasSection
================================================================================

@hasSection('test')
        test
@endif

--------------------------------------------------------------------------------

(blade
  (conditional
    (directive_start)
    (bracket_start)
    (parameter)
    (bracket_end)
    (text)
    (directive_end)))

================================================================================
@sectionMissing
================================================================================

@sectionMissing('test')
        test
@endif

--------------------------------------------------------------------------------

(blade
  (conditional
    (directive_start)
    (bracket_start)
    (parameter)
    (bracket_end)
    (text)
    (directive_end)))

================================================================================
@error
================================================================================

@error (true)
    test
@enderror

--------------------------------------------------------------------------------

(blade
  (conditional
    (directive_start)
    (bracket_start)
    (parameter)
    (bracket_end)
    (text)
    (directive_end)))

================================================================================
@can
================================================================================

@can('update', $post)
    <!-- comment -->
@elsecan('create', App\Models\Post::class)
    Hello world
@else
    Hello world
@endcan

--------------------------------------------------------------------------------

(blade
  (conditional
    (authorization
      (directive_start)
      (bracket_start)
      (parameter)
      (bracket_end)
      (text)
      (conditional_keyword
        (directive)
        (bracket_start)
        (parameter)
        (bracket_end))
      (text)
      (conditional_keyword
        (directive))
      (text)
      (directive_end))))

================================================================================
@cannot
================================================================================

@cannot('update', $post)
    <!-- comment -->
@elsecannot('create', App\Models\Post::class)
    Hello world
@endcannot

--------------------------------------------------------------------------------

(blade
  (conditional
    (authorization
      (directive_start)
      (bracket_start)
      (parameter)
      (bracket_end)
      (text)
      (conditional_keyword
        (directive)
        (bracket_start)
        (parameter)
        (bracket_end))
      (text)
      (directive_end))))

================================================================================
@canany
================================================================================

@canany(['update', 'view', 'delete'], $post)
    <!-- comment -->
@elsecanany(['create'], \App\Models\Post::class)
    hello world
@endcanany

--------------------------------------------------------------------------------

(blade
  (conditional
    (authorization
      (directive_start)
      (bracket_start)
      (parameter)
      (bracket_end)
      (text)
      (conditional_keyword
        (directive)
        (bracket_start)
        (parameter)
        (bracket_end))
      (text)
      (directive_end))))

================================================================================
@feature
================================================================================

@feature('site-redesign')
    hello world
@elsefeature('purchase-button', 'seafoam-green')
    hello world
@else
    hello world
@endfeature

--------------------------------------------------------------------------------

(blade
  (conditional
    (pennant
      (directive_start)
      (bracket_start)
      (parameter)
      (bracket_end)
      (text)
      (conditional_keyword
        (directive)
        (bracket_start)
        (parameter)
        (bracket_end))
      (text)
      (conditional_keyword
        (directive))
      (text)
      (directive_end))))

================================================================================
custom directive
================================================================================

@disk('local')
    test
@elsedisk('s3')
    test
@else
    test
@enddisk

@unlessdisk('local')
    test
@enddisk

--------------------------------------------------------------------------------

(blade
  (conditional
    (directive_start)
    (bracket_start)
    (parameter)
    (bracket_end)
    (text)
    (conditional_keyword
      (directive)
      (bracket_start)
      (parameter)
      (bracket_end))
    (text)
    (conditional_keyword
      (directive))
    (text)
    (directive_end))
  (conditional
    (directive_start)
    (bracket_start)
    (parameter)
    (bracket_end)
    (text)
    (directive_end)))

================================================================================
complex custom directive
================================================================================
@example('test')
    @example('test')
        test
    @endexample
@endexample

--------------------------------------------------------------------------------

(blade
  (conditional
    (directive_start)
    (bracket_start)
    (parameter)
    (bracket_end)
    (conditional
      (directive_start)
      (bracket_start)
      (parameter)
      (bracket_end)
      (text)
      (directive_end))
    (directive_end)))
