diff --git a/app/templates/components/components/select/README.md b/app/templates/components/components/select/README.md new file mode 100644 index 000000000..c656980d6 --- /dev/null +++ b/app/templates/components/components/select/README.md @@ -0,0 +1,13 @@ +# Select + +## Installation + +See the [main README quick start guide](https://github.com/alphagov/govuk-frontend#quick-start) for how to install this component. + +## Guidance and Examples + +Find out when to use the select component in your service in the [GOV.UK Design System](https://design-system.service.gov.uk/components/select/). + +## Component options + +Use options to customize the appearance, content and behavior of a component when using a macro, for example, changing the text. diff --git a/app/templates/components/components/select/macro-options.json b/app/templates/components/components/select/macro-options.json new file mode 100644 index 000000000..c786613f7 --- /dev/null +++ b/app/templates/components/components/select/macro-options.json @@ -0,0 +1,58 @@ +[ + { + "name": "id", + "type": "string", + "required": true, + "description": "ID for each select box." + }, + { + "name": "name", + "type": "string", + "required": true, + "description": "Name property for the select." + }, + { + "name": "items", + "type": "array", + "required": true, + "description": "The items within the select component." + }, + { + "name": "value", + "type": "string", + "required": false, + "description": "Value for the option which should be selected. Use this as an alternative to setting the selected option on each individual item." + }, + { + "name": "disabled", + "type": "boolean", + "required": false, + "description": "If true, select box will be disabled. Use the disabled option on each individual item to only disable certain options." + }, + { + "name": "describedBy", + "type": "string", + "required": false, + "description": "One or more element IDs to add to the `aria-describedby` attribute, used to provide additional descriptive information for screenreader users." + }, + { + "name": "label", + "type": "object", + "required": true, + "description": "The label used by the select component.", + "isComponent": true + }, + { + "name": "hint", + "type": "object", + "required": false, + "description": "Can be used to add a hint to the select component.", + "isComponent": true + }, + { + "name": "classes", + "type": "string", + "required": false, + "description": "Classes to add to the select." + } +] diff --git a/app/templates/components/components/select/macro.njk b/app/templates/components/components/select/macro.njk new file mode 100644 index 000000000..9c1333ca8 --- /dev/null +++ b/app/templates/components/components/select/macro.njk @@ -0,0 +1,3 @@ +{% macro usaSelect(params) %} + {%- include "./template.njk" -%} +{% endmacro %} diff --git a/app/templates/components/components/select/template.njk b/app/templates/components/components/select/template.njk new file mode 100644 index 000000000..ece5fc774 --- /dev/null +++ b/app/templates/components/components/select/template.njk @@ -0,0 +1,12 @@ +{% set describedBy = params.describedBy if params.describedBy else "" %} +