+
+
+
+
+
+
+
+{{#let
+
+ (not (can "write nspaces"))
+
+ @item
+
+ (hash
+ help='Must be a valid DNS hostname. Must contain 1-64 characters (numbers, letters, and hyphens), and must begin with a letter. Once created, this cannot be changed.'
+ Name=(array
+ (hash
+ test='^[a-zA-Z0-9]([a-zA-Z0-9-]{0,62}[a-zA-Z0-9])?$'
+ error='Name must be a valid DNS hostname.'
+ )
+ )
+ )
+
+ (hash
+ Description=(array)
+ )
+
+as |readOnly item Name Description|}}
+
+{{/let}}
+
+
+
+
diff --git a/ui/packages/consul-ui/app/components/consul/nspace/list/README.mdx b/ui/packages/consul-nspaces/app/components/consul/nspace/list/README.mdx
similarity index 60%
rename from ui/packages/consul-ui/app/components/consul/nspace/list/README.mdx
rename to ui/packages/consul-nspaces/app/components/consul/nspace/list/README.mdx
index 7be2debf0..7e5ee50cd 100644
--- a/ui/packages/consul-ui/app/components/consul/nspace/list/README.mdx
+++ b/ui/packages/consul-nspaces/app/components/consul/nspace/list/README.mdx
@@ -1,29 +1,30 @@
----
-class: ember
----
-## Consul::Nspace::List
+# Consul::Nspace::List
-```hbs
-
+A presentational component for rendering Consul Namespaces
+
+Please note:
+
+- For the moment, make sure you have enabled nspaces using developer debug
+ cookies.
+
+```hbs preview-template
+
```
-A presentational component for rendering Consul Namespaces
-
-### Arguments
+## Arguments
| Argument/Attribute | Type | Default | Description |
| --- | --- | --- | --- |
| `items` | `array` | | An array of Namespaces |
| `ondelete` | `function` | | An action to execute when the `Delete` action is clicked |
-### See
+## See
-- [Component Source Code](./index.js)
- [Template Source Code](./index.hbs)
---
diff --git a/ui/packages/consul-ui/app/components/consul/nspace/list/index.hbs b/ui/packages/consul-nspaces/app/components/consul/nspace/list/index.hbs
similarity index 100%
rename from ui/packages/consul-ui/app/components/consul/nspace/list/index.hbs
rename to ui/packages/consul-nspaces/app/components/consul/nspace/list/index.hbs
diff --git a/ui/packages/consul-ui/app/components/consul/nspace/list/pageobject.js b/ui/packages/consul-nspaces/app/components/consul/nspace/list/pageobject.js
similarity index 100%
rename from ui/packages/consul-ui/app/components/consul/nspace/list/pageobject.js
rename to ui/packages/consul-nspaces/app/components/consul/nspace/list/pageobject.js
diff --git a/ui/packages/consul-nspaces/app/components/consul/nspace/notifications/README.mdx b/ui/packages/consul-nspaces/app/components/consul/nspace/notifications/README.mdx
new file mode 100644
index 000000000..fb2f834dd
--- /dev/null
+++ b/ui/packages/consul-nspaces/app/components/consul/nspace/notifications/README.mdx
@@ -0,0 +1,19 @@
+# Consul::Nspace::Notifications
+
+A Notification component specifically for namespaces. This is only a component as we currently use this in two places and if we need to add more types we can do so in one place.
+
+We currently only have one 'remove' type due to the fact that namespaces can't use the default 'delete' notification as they get 'marked for deletion' instead.
+
+```hbs preview-template
+
+```
+
+
+
+## See
+
+- [Template Source Code](./index.hbs)
+
+---
diff --git a/ui/packages/consul-nspaces/app/components/consul/nspace/notifications/index.hbs b/ui/packages/consul-nspaces/app/components/consul/nspace/notifications/index.hbs
new file mode 100644
index 000000000..c373a535b
--- /dev/null
+++ b/ui/packages/consul-nspaces/app/components/consul/nspace/notifications/index.hbs
@@ -0,0 +1,16 @@
+{{#if (eq @type 'remove')}}
+
+
+ Success!
+
+
+
+ Your Namespace has been marked for deletion.
+
+
+
+{{/if}}
diff --git a/ui/packages/consul-nspaces/app/components/consul/nspace/search-bar/README.mdx b/ui/packages/consul-nspaces/app/components/consul/nspace/search-bar/README.mdx
new file mode 100644
index 000000000..0bcbd29fd
--- /dev/null
+++ b/ui/packages/consul-nspaces/app/components/consul/nspace/search-bar/README.mdx
@@ -0,0 +1,30 @@
+# Consul::Nspace::SearchBar
+
+Searchbar tailored for searching namespaces. Follows our more generic
+'*::SearchBar' component interface.
+
+```hbs preview-template
+
+```
+
+## See
+
+- [Template Source Code](./index.hbs)
+
+---
diff --git a/ui/packages/consul-ui/app/components/consul/nspace/search-bar/index.hbs b/ui/packages/consul-nspaces/app/components/consul/nspace/search-bar/index.hbs
similarity index 100%
rename from ui/packages/consul-ui/app/components/consul/nspace/search-bar/index.hbs
rename to ui/packages/consul-nspaces/app/components/consul/nspace/search-bar/index.hbs
diff --git a/ui/packages/consul-nspaces/app/components/consul/nspace/selector/README.mdx b/ui/packages/consul-nspaces/app/components/consul/nspace/selector/README.mdx
new file mode 100644
index 000000000..afd5d8fb6
--- /dev/null
+++ b/ui/packages/consul-nspaces/app/components/consul/nspace/selector/README.mdx
@@ -0,0 +1,40 @@
+# Consul::Nspace::Selector
+
+A conditional, autoloading, menu component specifically for making it easy to select namespaces.
+
+Please note:
+
+- Currently at least, you must add this inside of a `
` element, as the `
` elements output by this component are intended to be mixed with other sibling `
`s from other components or template code.
+- For the moment, make sure you have enabled nspaces using developer debug
+ cookies.
+
+```hbs preview-template
+
+
+
+```
+
+
+## Arguments
+
+| Argument/Attribute | Type | Default | Description |
+| --- | --- | --- | --- |
+| `dc` | `object` | | The current datacenter |
+| `nspace` | `string` | | The name of the current namespace |
+| `partition` | `string` | | The name of the current partition |
+| `nspaces` | `array` | | A list of nspace models/objects to use for the selector |
+| `onchange` | `function` | | An event handler, for when nspaces are loaded. You probably want to update `@nspaces` using this. |
+
+## See
+
+- [Template Source Code](./index.hbs)
+
+---
diff --git a/ui/packages/consul-nspaces/app/components/consul/nspace/selector/index.hbs b/ui/packages/consul-nspaces/app/components/consul/nspace/selector/index.hbs
new file mode 100644
index 000000000..c3296dff2
--- /dev/null
+++ b/ui/packages/consul-nspaces/app/components/consul/nspace/selector/index.hbs
@@ -0,0 +1,74 @@
+{{#if (can "use nspaces")}}
+ {{#if (can "choose nspaces")}}
+{{#let
+ (or @nspace 'default')
+as |nspace|}}
+