Group Checkboxes

Een checkbox group heeft een root element fieldset.form-group, en geen div.form-group.

<!-- Default -->
<fieldset class="form-group dso-checkboxes">
    <legend class="dso-label-container">
        <label class="control-label">
            Maak een keuze
        </label>

    </legend>
    <div class="dso-field-container">

        <div class="dso-selectable">
            <input type="checkbox" id="input-checkbox-0" name="input-checkbox" value="1">
            <label for="input-checkbox-0">
                een
            </label>

        </div>

        <div class="dso-selectable">
            <input type="checkbox" id="input-checkbox-1" name="input-checkbox" value="2">
            <label for="input-checkbox-1">
                twee
            </label>

        </div>

        <div class="dso-selectable">
            <input type="checkbox" id="input-checkbox-2" name="input-checkbox" value="3">
            <label for="input-checkbox-2">
                drie
            </label>

        </div>

    </div>

</fieldset>
<!-- Input Checkbox Required -->
<fieldset class="form-group dso-checkboxes dso-required">
    <legend class="dso-label-container">
        <label class="control-label">
            Maak een keuze
        </label>

    </legend>
    <div class="dso-field-container">

        <div class="dso-selectable">
            <input type="checkbox" id="input-checkbox-required-0" name="input-checkbox-required" value="1">
            <label for="input-checkbox-required-0">
                een
            </label>

        </div>

        <div class="dso-selectable">
            <input type="checkbox" id="input-checkbox-required-1" name="input-checkbox-required" value="2">
            <label for="input-checkbox-required-1">
                twee
            </label>

        </div>

        <div class="dso-selectable">
            <input type="checkbox" id="input-checkbox-required-2" name="input-checkbox-required" value="3">
            <label for="input-checkbox-required-2">
                drie
            </label>

        </div>

    </div>

</fieldset>
<!-- Input Checkbox Invalid -->
<fieldset class="form-group dso-checkboxes dso-invalid dso-required">
    <legend class="dso-label-container">
        <label class="control-label">
            Maak een keuze
        </label>

    </legend>
    <div class="dso-field-container">

        <div class="dso-selectable">
            <input type="checkbox" id="input-checkbox-invalid-0" name="input-checkbox-invalid" value="1" checked>
            <label for="input-checkbox-invalid-0">
                een
            </label>

        </div>

        <div class="dso-selectable">
            <input type="checkbox" id="input-checkbox-invalid-1" name="input-checkbox-invalid" value="2">
            <label for="input-checkbox-invalid-1">
                twee
            </label>

        </div>

        <div class="dso-selectable">
            <input type="checkbox" id="input-checkbox-invalid-2" name="input-checkbox-invalid" value="3">
            <label for="input-checkbox-invalid-2">
                drie
            </label>

        </div>

        <p class="dso-message">Maak een keuze.</p>

    </div>

</fieldset>
<!-- Input Checkbox Valid -->
<fieldset class="form-group dso-checkboxes dso-valid dso-required">
    <legend class="dso-label-container">
        <label class="control-label">
            Maak een keuze
        </label>

    </legend>
    <div class="dso-field-container">

        <div class="dso-selectable">
            <input type="checkbox" id="input-checkbox-valid-0" name="input-checkbox-valid" value="1">
            <label for="input-checkbox-valid-0">
                een
            </label>

        </div>

        <div class="dso-selectable">
            <input type="checkbox" id="input-checkbox-valid-1" name="input-checkbox-valid" value="2" checked>
            <label for="input-checkbox-valid-1">
                twee
            </label>

        </div>

        <div class="dso-selectable">
            <input type="checkbox" id="input-checkbox-valid-2" name="input-checkbox-valid" value="3">
            <label for="input-checkbox-valid-2">
                drie
            </label>

        </div>

        <p class="dso-help-block" id="helpTextId_input-checkbox-valid">Selecteer alle even getallen</p>

    </div>

</fieldset>
<!-- Input Checkbox Disabled -->
<fieldset class="form-group dso-checkboxes dso-required">
    <legend class="dso-label-container">
        <label class="control-label">
            Maak een keuze
        </label>

    </legend>
    <div class="dso-field-container">

        <div class="dso-selectable">
            <input type="checkbox" id="input-checkbox-disabled-0" name="input-checkbox-disabled" value="1" disabled checked>
            <label for="input-checkbox-disabled-0">
                een
            </label>

        </div>

        <div class="dso-selectable">
            <input type="checkbox" id="input-checkbox-disabled-1" name="input-checkbox-disabled" value="2" disabled>
            <label for="input-checkbox-disabled-1">
                twee
            </label>

        </div>

        <div class="dso-selectable">
            <input type="checkbox" id="input-checkbox-disabled-2" name="input-checkbox-disabled" value="3" disabled>
            <label for="input-checkbox-disabled-2">
                drie
            </label>

        </div>

    </div>

</fieldset>
<!-- Input Checkbox Info Button -->
<fieldset class="form-group dso-checkboxes dso-required">
    <legend class="dso-label-container">
        <label class="control-label">
            Maak een keuze
        </label>

        <button type="button" class="btn dso-info-button dso-open" aria-expanded="true">
            <span class="sr-only">
                Toelichting
            </span>
        </button>

    </legend>
    <div class="dso-field-container">

        <div class="dso-selectable">
            <input type="checkbox" id="input-checkbox-info-button-0" name="input-checkbox-info-button" value="1">
            <label for="input-checkbox-info-button-0">
                een
            </label>

            <button type="button" class="btn dso-info-button" aria-expanded="">
                <span class="sr-only">
                    Toelichting
                </span>
            </button>

        </div>

        <div class="dso-selectable">
            <input type="checkbox" id="input-checkbox-info-button-1" name="input-checkbox-info-button" value="2">
            <label for="input-checkbox-info-button-1">
                twee
            </label>

            <button type="button" class="btn dso-info-button dso-open" aria-expanded="true">
                <span class="sr-only">
                    Toelichting
                </span>
            </button>

            <div class="dso-info">
                <button type="button">
                    <span class="sr-only">Sluiten</span>
                </button>
                <div class="dso-rich-content">
                    <h4>Heading 4</h4>
                    <p>
                        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam non metus dolor. Pellentesque velit arcu, pellentesque at lacus sit amet, porta semper est.
                        Praesent mollis lorem lorem, non varius nisl lacinia et. Integer quis sollicitudin arcu. Nullam lacinia non ipsum sit amet varius.
                        Praesent consequat ligula id tortor elementum pretium. Integer ligula justo, volutpat sed tellus eu, faucibus fringilla lectus.
                    </p>

                </div>
            </div>

        </div>

        <div class="dso-selectable">
            <input type="checkbox" id="input-checkbox-info-button-2" name="input-checkbox-info-button" value="3">
            <label for="input-checkbox-info-button-2">
                drie
            </label>

        </div>

    </div>

    <div class="dso-info">
        <button type="button">
            <span class="sr-only">Sluiten</span>
        </button>
        <div class="dso-rich-content">
            <h4>Heading 4</h4>
            <p>
                Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam non metus dolor. Pellentesque velit arcu, pellentesque at lacus sit amet, porta semper est.
                Praesent mollis lorem lorem, non varius nisl lacinia et. Integer quis sollicitudin arcu. Nullam lacinia non ipsum sit amet varius.
                Praesent consequat ligula id tortor elementum pretium. Integer ligula justo, volutpat sed tellus eu, faucibus fringilla lectus.
            </p>

        </div>
    </div>

</fieldset>
{% set localId = generateLocalId(prefix, id ) %}

<fieldset {{ className('form-group', 'dso-checkboxes', [state, 'dso-' + state], [required, 'dso-required']) }}>
  <legend class="dso-label-container">
    <label class="control-label">
      {{ label }}
    </label>
    {% if infoText %}
      {% render '@info-button', {infoOpen: infoOpen} %}
    {% endif %}
  </legend>
  <div class="dso-field-container">
    {% for option in options %}
      <div class="dso-selectable">
        <input type="checkbox" id="{{ localId }}-{{ loop.index0 }}" name="{{ id }}" value="{{ option.value }}"
          {% if option.disabled %} disabled{% endif %}
          {% if option.checked %} checked{% endif %}
          {% if option.required %} required{% endif %}>
        <label for="{{ localId }}-{{ loop.index0 }}">
          {{ option.label }}
        </label>
        {% if option.infoText %}
          {% render '@info-button', {infoOpen: option.infoOpen} %}
        {% endif %}
        {% if option.infoOpen %}
          {% render '@info', {infoText: option.infoText} %}
        {% endif %}
      </div>
    {% endfor %}
    {% if errorText %}
      {% render '@error-block', {errorText: errorText} %}
    {% endif %}
    {% if helpText %}
      {% render '@help-block', {helpText: helpText, id: localId} %}
    {% endif %}
  </div>
  {% if infoOpen %}
    {% render '@info', {infoText: infoText} %}
  {% endif %}
</fieldset>
/* Default */
__title: default
id: input-checkbox
label: Maak een keuze
options:
  - value: 1
    label: een
  - value: 2
    label: twee
  - value: 3
    label: drie
/* Input Checkbox Required */
__title: Verplicht
id: input-checkbox-required
label: Maak een keuze
options:
  - value: 1
    label: een
  - value: 2
    label: twee
  - value: 3
    label: drie
__explanation:
  - >-
    Een verplichte keuze wordt in de markup aangegeven met
    <code>.dso-required</code> op de <code>.form-group.dso-checkboxes</code>
  - >-
    Checkboxes hebben (net zoals radio's) een <code>fieldset.form-group</code>
    als root element, geen <code>div.form-group</code>
required: true
/* Input Checkbox Invalid */
__title: Ongeldig
id: input-checkbox-invalid
label: Maak een keuze
options:
  - value: 1
    label: een
    checked: true
  - value: 2
    label: twee
  - value: 3
    label: drie
__explanation: >-
  Indien een checkbox groep ongeldig is, dient er <code>.dso-invalid</code> op
  de <code>.form-group.dso-checkboxes</code> geplaatst te worden
required: true
state: invalid
errorText: Maak een keuze.
/* Input Checkbox Valid */
__title: Geldig
id: input-checkbox-valid
label: Maak een keuze
options:
  - value: 1
    label: een
  - value: 2
    label: twee
    checked: true
  - value: 3
    label: drie
__explanation: >-
  Een ongeldige checkbox-group welke geldig is gemaakt, dient de
  <code>.dso-invalid</code> class vervangen te worden door
  <code>.dso-valid</code>
required: true
helpText: Selecteer alle even getallen
state: valid
/* Input Checkbox Disabled */
__title: Disabled
id: input-checkbox-disabled
label: Maak een keuze
options:
  - value: 1
    label: een
    disabled: true
    checked: true
  - value: 2
    label: twee
    disabled: true
  - value: 3
    label: drie
    disabled: true
__explanation: >-
  Alle <code>input[type="checkbox"]</code> moeten een <code>disabled</code>
  attribuut krijgen.
required: true
/* Input Checkbox Info Button */
__title: Infobutton
id: input-checkbox-info-button
label: Maak een keuze
options:
  - value: 1
    label: een
    infoText: |
      Closed
  - value: 2
    label: twee
    infoOpen: true
    infoText: |
      <h4>Heading 4</h4>
      <p>
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam non metus dolor. Pellentesque velit arcu, pellentesque at lacus sit amet, porta semper est.
        Praesent mollis lorem lorem, non varius nisl lacinia et. Integer quis sollicitudin arcu. Nullam lacinia non ipsum sit amet varius.
        Praesent consequat ligula id tortor elementum pretium. Integer ligula justo, volutpat sed tellus eu, faucibus fringilla lectus.
      </p>
  - value: 3
    label: drie
__explanation:
  - >-
    Een checkbox fieldset kan op twee plekken een info button krijgen. Naast de
    de vraag en per optie. Als een toelichting is opengeklapt moet er
    <code>.dso-open</code> op de toelichting button geplaatst worden.
required: true
infoOpen: true
infoText: |
  <h4>Heading 4</h4>
  <p>
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam non metus dolor. Pellentesque velit arcu, pellentesque at lacus sit amet, porta semper est.
    Praesent mollis lorem lorem, non varius nisl lacinia et. Integer quis sollicitudin arcu. Nullam lacinia non ipsum sit amet varius.
    Praesent consequat ligula id tortor elementum pretium. Integer ligula justo, volutpat sed tellus eu, faucibus fringilla lectus.
  </p>