diff --git a/packages/components/addon/components/hds/alert/index.hbs b/packages/components/addon/components/hds/alert/index.hbs index d9edf2c1939..18e2bd7acb2 100644 --- a/packages/components/addon/components/hds/alert/index.hbs +++ b/packages/components/addon/components/hds/alert/index.hbs @@ -6,13 +6,26 @@ {{/unless}} -
- {{#if @title}} -
{{@title}}
- {{/if}} +
+
+ {{#if @title}} +
{{@title}}
+ {{/if}} + {{#if @description}} +
{{html-safe @description}}
+ {{/if}} +
- {{#if @description}} -
{{html-safe @description}}
+ {{#if (has-block "actions")}} + {{! IMPORTANT: don't change the formatting or it will add empty space inside the element (we're using ":empty" in CSS to hide it when it's empty!) }} +
{{yield + (hash + Button=(component "hds/button") + Link::Standalone=(component "hds/link/standalone") + LinkTo::Standalone=(component "hds/link-to/standalone") + ) + to="actions" + }}
{{/if}}
\ No newline at end of file diff --git a/packages/components/app/styles/components/alert.scss b/packages/components/app/styles/components/alert.scss index 9c103d580a7..ace2ad249b4 100644 --- a/packages/components/app/styles/components/alert.scss +++ b/packages/components/app/styles/components/alert.scss @@ -105,3 +105,17 @@ color: var(--token-color-foreground-success-on-surface); } } + +.hds-alert__actions { + align-items: center; + display: flex; + margin-top: 1rem; // 16px + + > * + * { + margin-left: 1rem; // 16px + } + + &:empty { + display: none; + } +} diff --git a/packages/components/tests/dummy/app/components/dummy-placeholder/index.js b/packages/components/tests/dummy/app/components/dummy-placeholder/index.js index a5638f789a3..7562df21639 100644 --- a/packages/components/tests/dummy/app/components/dummy-placeholder/index.js +++ b/packages/components/tests/dummy/app/components/dummy-placeholder/index.js @@ -11,7 +11,7 @@ export default class DummyPlaceholderIndexComponent extends Component { get width() { let { width = '100%' } = this.args; - if (typeof width === 'string' && width.match(/[\d]+/)) { + if (typeof width === 'string' && width.match(/^[\d]+$/)) { width = `${parseInt(width, 10)}px`; } @@ -28,7 +28,7 @@ export default class DummyPlaceholderIndexComponent extends Component { get height() { let { height = '100%' } = this.args; - if (typeof height === 'string' && height.match(/[\d]+/)) { + if (typeof height === 'string' && height.match(/^[\d]+$/)) { height = `${parseInt(height, 10)}px`; } diff --git a/packages/components/tests/dummy/app/styles/app.scss b/packages/components/tests/dummy/app/styles/app.scss index cb6ad5ed74c..02e3c41fdb0 100644 --- a/packages/components/tests/dummy/app/styles/app.scss +++ b/packages/components/tests/dummy/app/styles/app.scss @@ -3,6 +3,7 @@ @import "./_typography"; +@import "./pages/db-alert"; @import "./pages/db-badge"; @import "./pages/db-breadcrumb"; @import "./pages/db-button"; diff --git a/packages/components/tests/dummy/app/styles/pages/db-alert.scss b/packages/components/tests/dummy/app/styles/pages/db-alert.scss new file mode 100644 index 00000000000..3f297165983 --- /dev/null +++ b/packages/components/tests/dummy/app/styles/pages/db-alert.scss @@ -0,0 +1,15 @@ +// ALERT + +.dummy-alert-sample-custom-actions__actions { + display: flex; + gap: 16px; + align-items: center; +} + +.dummy-alert-sample-custom-actions__text { + @include dummyFontFamily(); + @include dummyFontSize(0.8rem); + display: block; + color: #999; + margin-top: 1rem; +} \ No newline at end of file diff --git a/packages/components/tests/dummy/app/templates/components/alert.hbs b/packages/components/tests/dummy/app/templates/components/alert.hbs index 9bee18543ea..41de6c3390d 100644 --- a/packages/components/tests/dummy/app/templates/components/alert.hbs +++ b/packages/components/tests/dummy/app/templates/components/alert.hbs @@ -100,21 +100,9 @@ -
🚧 hasActions boolean
+
<:actions> named block
-

The alert has content below the - title - and - description, such as an - Hds::Button - and an - Hds::LinkTo::Standalone. -

-

Acceptable values:

-
    -
  1. true
  2. -
  3. false
  4. -
+

TODO

“splattributes”
@@ -268,6 +256,49 @@ view to be useful." />
+ +

Actions

+ with actions passed as yielded components + + <:actions as |A|> + + + + + +
+ with content yielded in the "actions" named block + + <:actions> + + + +
+ with custom content yielded in the "actions" named block + + <:actions> +
+
+ + +
+ This for example could be extra text, specific only for + one special use case. +
+ +