diff --git a/packages/oui-select-picker/README.md b/packages/oui-select-picker/README.md
index 217b1481..3ee7726b 100644
--- a/packages/oui-select-picker/README.md
+++ b/packages/oui-select-picker/README.md
@@ -39,7 +39,25 @@
disabled>
```
-### Sections
+### Sections using `oui-select-picker-section`
+
+```html:preview
+
+ Section 1
+ Section 2
+
+
+ Section 1
+ Section 2
+
+```
+
+### Sections using `span`
```html:preview
```
+**Note**: This use is **deprecated** and will be removed in the next major version
+
### On change
```html:preview
diff --git a/packages/oui-select-picker/src/index.js b/packages/oui-select-picker/src/index.js
index dd9bd26f..c9f59a13 100644
--- a/packages/oui-select-picker/src/index.js
+++ b/packages/oui-select-picker/src/index.js
@@ -1,6 +1,8 @@
-import SelectPicker from "./select-picker.component.js";
+import SelectPicker from "./select-picker.component";
+import SelectPickerSection from "./section/select-picker-section.component";
export default angular
.module("oui.select-picker", [])
.component("ouiSelectPicker", SelectPicker)
+ .component("ouiSelectPickerSection", SelectPickerSection)
.name;
diff --git a/packages/oui-select-picker/src/section/select-picker-section.component.js b/packages/oui-select-picker/src/section/select-picker-section.component.js
new file mode 100644
index 00000000..de45425c
--- /dev/null
+++ b/packages/oui-select-picker/src/section/select-picker-section.component.js
@@ -0,0 +1,16 @@
+export default {
+ controller: class {
+ constructor ($element, $timeout) {
+ "ngInject";
+
+ this.$element = $element;
+ this.$timeout = $timeout;
+ }
+
+ $postLink () {
+ this.$timeout(() =>
+ this.$element.addClass("oui-select-picker__section")
+ );
+ }
+ }
+};
diff --git a/packages/oui-select-picker/src/select-picker.component.js b/packages/oui-select-picker/src/select-picker.component.js
index 0f83f1ed..35a0ce0e 100644
--- a/packages/oui-select-picker/src/select-picker.component.js
+++ b/packages/oui-select-picker/src/select-picker.component.js
@@ -5,7 +5,8 @@ export default {
template,
controller,
transclude: {
- sectionSlot: "?span"
+ sectionSlot: "?ouiSelectPickerSection",
+ deprecatedSlot: "?span" // Deprecated: Replaced by "oui-select-picker-section"
},
bindings: {
model: "=?",
diff --git a/packages/oui-select-picker/src/select-picker.controller.js b/packages/oui-select-picker/src/select-picker.controller.js
index c03ac343..8f05fea7 100644
--- a/packages/oui-select-picker/src/select-picker.controller.js
+++ b/packages/oui-select-picker/src/select-picker.controller.js
@@ -40,7 +40,8 @@ export default class SelectPickerController {
}
}
- this.transcludeSection = this.$transclude.isSlotFilled("sectionSlot");
+ this.sectionTransclude = this.$transclude.isSlotFilled("sectionSlot");
+ this.deprecatedTransclude = this.$transclude.isSlotFilled("deprecatedSlot");
}
$postLink () {
diff --git a/packages/oui-select-picker/src/select-picker.html b/packages/oui-select-picker/src/select-picker.html
index ceecbfd3..269670cc 100644
--- a/packages/oui-select-picker/src/select-picker.html
+++ b/packages/oui-select-picker/src/select-picker.html
@@ -1,22 +1,22 @@
+ name="{{:: $ctrl.name }}"
+ ng-attr-aria-labelledby="{{:: $ctrl.id }}Label"
+ ng-attr-aria-describedby="{{:: $ctrl.description && $ctrl.id + 'Description' || undefined }}"
+ ng-attr-id="{{:: $ctrl.id }}"
+ ng-change="$ctrl.onRadioModelChange({ modelValue: $ctrl.model })"
+ ng-disabled="$ctrl.disabled"
+ ng-model="$ctrl.model"
+ ng-required="$ctrl.required"
+ ng-value="$ctrl.selectedValue">