{{#if showSection}}
  {{#frost-bunsen-section
    clearable=clearable
    collapsible=cellConfig.collapsible
    description=cellConfig.description
    hookPrefix=hookPrefix
    onClear=(action 'clear')
    required=isRequired
    title=renderLabel
  }}
    {{#if isLeafNode}}
      {{#if isSubModelArray}}
        {{#if isArrayItem}}
          {{frost-bunsen-array-inline-item
            bunsenId=renderId
            bunsenModel=bunsenModel
            bunsenView=bunsenView
            cellConfig=cellConfig
            compact=compact
            errors=errors
            formDisabled=formDisabled
            getRootProps=getRootProps
            hookPrefix=hookPrefix
            index=index
            onChange=onChange
            onFocusIn=onFocusIn
            onFocusOut=onFocusOut
            onError=onError
            readOnly=readOnly
            registerForFormValueChanges=registerForFormValueChanges
            registerValidator=registerValidator
            renderers=renderers
            showAllErrors=showAllErrors
            showRemoveButton=false
            sortable=false
            triggerValidation=triggerValidation
            unregisterForFormValueChanges=unregisterForFormValueChanges
            value=propagatedValue
            valueChangeSet=propagatedValueChangeSet
          }}
        {{else}}
          {{frost-bunsen-array-container
            bunsenId=renderId
            bunsenModel=bunsenModel
            bunsenView=bunsenView
            cellConfig=cellConfig
            compact=compact
            errors=errors
            formDisabled=formDisabled
            getRootProps=getRootProps
            hookPrefix=hookPrefix
            onChange=onChange
            onFocusIn=onFocusIn
            onFocusOut=onFocusOut
            onError=onError
            readOnly=readOnly
            registerForFormValueChanges=registerForFormValueChanges
            registerValidator=registerValidator
            renderers=renderers
            required=isRequired
            showAllErrors=showAllErrors
            triggerValidation=triggerValidation
            unregisterForFormValueChanges=unregisterForFormValueChanges
            value=propagatedValue
            valueChangeSet=propagatedValueChangeSet
          }}
        {{/if}}
      {{else}}
        {{frost-bunsen-input-wrapper
          bunsenId=renderId
          bunsenModel=bunsenModel
          bunsenView=bunsenView
          cellConfig=cellConfig
          errorMessage=errorMessage
          formDisabled=formDisabled
          getRootProps=getRootProps
          hookPrefix=hookPrefix
          isDependencyMet=isDependencyMet
          onChange=onChange
          onFocusIn=onFocusIn
          onFocusOut=onFocusOut
          onError=onError
          readOnly=readOnly
          registerForFormValueChanges=registerForFormValueChanges
          registerValidator=registerValidator
          renderers=renderers
          required=isRequired
          showAllErrors=showAllErrors
          triggerValidation=triggerValidation
          unregisterForFormValueChanges=unregisterForFormValueChanges
          value=renderValue
        }}
      {{/if}}
    {{/if}}
    {{#each children key='cellKey' as |child|}}
      {{frost-bunsen-cell
        bunsenId=child.bunsenId
        bunsenModel=child.bunsenModel
        bunsenView=bunsenView
        cellConfig=child.cellConfig
        errors=errors
        formDisabled=formDisabled
        getRootProps=getRootProps
        hookPrefix=hookPrefix
        isRequired=(frost-bunsen-is-required
          bunsenModel=bunsenModel
          cell=child.cellConfig
          cellDefinitions=bunsenView.cellDefinitions
          value=propagatedValue
        )
        onChange=onChange
        onFocusIn=onFocusIn
        onFocusOut=onFocusOut
        onError=onError
        readOnly=readOnly
        registerForFormValueChanges=registerForFormValueChanges
        registerValidator=registerValidator
        renderers=renderers
        showAllErrors=showAllErrors
        triggerValidation=triggerValidation
        unregisterForFormValueChanges=unregisterForFormValueChanges
        value=propagatedValue
        valueChangeSet=propagatedValueChangeSet
      }}
    {{/each}}
  {{/frost-bunsen-section}}
{{else}}
  {{#if isLeafNode}}
    {{#if isSubModelArray}}
      {{#if isArrayItem}}
        {{frost-bunsen-array-inline-item
          bunsenId=bunsenId
          bunsenModel=bunsenModel
          bunsenView=bunsenView
          cellConfig=cellConfig
          compact=compact
          errors=errors
          formDisabled=formDisabled
          getRootProps=getRootProps
          hookPrefix=hookPrefix
          index=index
          onChange=onChange
          onFocusIn=onFocusIn
          onFocusOut=onFocusOut
          onError=onError
          readOnly=readOnly
          registerForFormValueChanges=registerForFormValueChanges
          registerValidator=registerValidator
          renderers=renderers
          showAllErrors=showAllErrors
          showRemoveButton=false
          sortable=false
          triggerValidation=triggerValidation
          unregisterForFormValueChanges=unregisterForFormValueChanges
          value=propagatedValue
          valueChangeSet=propagatedValueChangeSet
        }}
      {{else}}
        {{frost-bunsen-array-container
          bunsenId=renderId
          bunsenModel=bunsenModel
          bunsenView=bunsenView
          cellConfig=cellConfig
          compact=compact
          errors=errors
          formDisabled=formDisabled
          getRootProps=getRootProps
          hookPrefix=hookPrefix
          onChange=onChange
          onFocusIn=onFocusIn
          onFocusOut=onFocusOut
          onError=onError
          readOnly=readOnly
          registerForFormValueChanges=registerForFormValueChanges
          registerValidator=registerValidator
          renderers=renderers
          required=isRequired
          showAllErrors=showAllErrors
          triggerValidation=triggerValidation
          unregisterForFormValueChanges=unregisterForFormValueChanges
          value=propagatedValue
          valueChangeSet=propagatedValueChangeSet
        }}
      {{/if}}
    {{else}}
      {{frost-bunsen-input-wrapper
        bunsenId=renderId
        bunsenModel=bunsenModel
        bunsenView=bunsenView
        cellConfig=cellConfig
        errorMessage=errorMessage
        formDisabled=formDisabled
        getRootProps=getRootProps
        hookPrefix=hookPrefix
        isDependencyMet=isDependencyMet
        onChange=onChange
        onFocusIn=onFocusIn
        onFocusOut=onFocusOut
        onError=onError
        readOnly=readOnly
        registerForFormValueChanges=registerForFormValueChanges
        registerValidator=registerValidator
        renderers=renderers
        required=isRequired
        showAllErrors=showAllErrors
        triggerValidation=triggerValidation
        unregisterForFormValueChanges=unregisterForFormValueChanges
        value=renderValue
        valueChangeSet=propagatedValueChangeSet
      }}
    {{/if}}
  {{/if}}
  {{#each children key='cellKey' as |child|}}
    {{frost-bunsen-cell
      bunsenId=child.bunsenId
      bunsenModel=child.bunsenModel
      bunsenView=bunsenView
      cellConfig=child.cellConfig
      errors=errors
      formDisabled=formDisabled
      getRootProps=getRootProps
      hookPrefix=hookPrefix
      isRequired=(frost-bunsen-is-required
        bunsenModel=bunsenModel
        cell=child.cellConfig
        cellDefinitions=bunsenView.cellDefinitions
        value=propagatedValue
      )
      onChange=onChange
      onFocusIn=onFocusIn
      onFocusOut=onFocusOut
      onError=onError
      readOnly=readOnly
      registerForFormValueChanges=registerForFormValueChanges
      registerValidator=registerValidator
      renderers=renderers
      showAllErrors=showAllErrors
      triggerValidation=triggerValidation
      unregisterForFormValueChanges=unregisterForFormValueChanges
      value=propagatedValue
      valueChangeSet=propagatedValueChangeSet
    }}
  {{/each}}
{{/if}}
