@bonniernews/dn-design-system-web 28.0.1 → 29.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/components/blocked-content/blocked-content.js +1 -1
  3. package/components/blocked-content/blocked-content.njk +2 -2
  4. package/components/buddy-menu/buddy-menu.njk +5 -5
  5. package/components/buddy-menu/buddy-menu.scss +0 -1
  6. package/components/button/README.md +6 -8
  7. package/components/button/button-types.ts +34 -27
  8. package/components/button/button.njk +12 -20
  9. package/components/button/button.scss +58 -85
  10. package/components/button-toggle/README.md +8 -5
  11. package/components/button-toggle/button-toggle.njk +3 -0
  12. package/components/divider/README.md +1 -1
  13. package/components/empty-state/empty-state.njk +2 -3
  14. package/components/factbox/factbox.njk +4 -4
  15. package/components/group-header/group-header.njk +10 -10
  16. package/components/group-header/group-header.scss +1 -2
  17. package/components/list-item/list-item-types.ts +3 -3
  18. package/components/list-item/list-item.njk +4 -4
  19. package/components/modal/modal.njk +10 -8
  20. package/components/modal/modal.scss +3 -4
  21. package/components/pagination/pagination.njk +0 -1
  22. package/components/profile-header/profile-header.njk +2 -2
  23. package/components/tag-header/tag-header.njk +2 -2
  24. package/components/teaser-list-swipe/teaser-list-swipe.njk +9 -9
  25. package/components/teaser-list-swipe/teaser-list-swipe.scss +3 -3
  26. package/components/teaser-list-vertical/teaser-list-vertical.njk +1 -1
  27. package/components/text-input/text-input.njk +5 -3
  28. package/components/text-input/text-input.scss +2 -3
  29. package/components/tooltip/tooltip.njk +4 -4
  30. package/components/tooltip/tooltip.scss +0 -1
  31. package/package.json +1 -1
  32. package/preact/components/buddy-menu/buddy-menu.js +47 -99
  33. package/preact/components/buddy-menu/buddy-menu.js.map +4 -4
  34. package/preact/components/button/button-base.d.ts +2 -2
  35. package/preact/components/button/button-base.js +25 -40
  36. package/preact/components/button/button-base.js.map +4 -4
  37. package/preact/components/button/button-types.d.ts +24 -21
  38. package/preact/components/button/button.d.ts +1 -1
  39. package/preact/components/button/button.js +30 -47
  40. package/preact/components/button/button.js.map +4 -4
  41. package/preact/components/button-toggle/button-toggle.d.ts +1 -1
  42. package/preact/components/button-toggle/button-toggle.js +34 -44
  43. package/preact/components/button-toggle/button-toggle.js.map +4 -4
  44. package/preact/components/list-item/list-item-types.d.ts +3 -3
  45. package/preact/components/list-item/list-item.js +55 -65
  46. package/preact/components/list-item/list-item.js.map +4 -4
  47. package/preact/components/text-input/text-input.js +55 -63
  48. package/preact/components/text-input/text-input.js.map +4 -4
  49. package/components/icon-button/README-NJK.md +0 -47
  50. package/components/icon-button/README-UXD.md +0 -44
  51. package/components/icon-button/README.md +0 -31
  52. package/components/icon-button/icon-button.njk +0 -22
  53. package/components/icon-button/icon-button.scss +0 -32
  54. package/components/icon-button-toggle/README-NJK.md +0 -53
  55. package/components/icon-button-toggle/README-UXD.md +0 -0
  56. package/components/icon-button-toggle/README.md +0 -38
  57. package/components/icon-button-toggle/icon-button-toggle.njk +0 -18
  58. package/components/icon-button-toggle/icon-button-toggle.scss +0 -1
  59. package/preact/components/icon-button/icon-button.d.ts +0 -10
  60. package/preact/components/icon-button/icon-button.js +0 -198
  61. package/preact/components/icon-button/icon-button.js.map +0 -7
  62. package/preact/components/icon-button-toggle/icon-button-toggle.d.ts +0 -18
  63. package/preact/components/icon-button-toggle/icon-button-toggle.js +0 -200
  64. package/preact/components/icon-button-toggle/icon-button-toggle.js.map +0 -7
  65. package/preact/foundations/a11y/visually-hidden.d.ts +0 -4
@@ -29,8 +29,8 @@
29
29
  <div class="{{ componentClassName + '__show-more'}}">
30
30
  {{ Button({
31
31
  text: 'Visa mer',
32
- variant: 'secondary',
33
- size: 'medium',
32
+ variant: 'secondaryFilled',
33
+ size: 'md',
34
34
  iconPosition: 'right',
35
35
  iconName: 'expand_more',
36
36
  classNames: 'ds-factbox__expand-more',
@@ -40,8 +40,8 @@
40
40
  })}}
41
41
  {{ Button({
42
42
  text: 'Visa mindre',
43
- variant: 'secondary',
44
- size: 'medium',
43
+ variant: 'secondaryFilled',
44
+ size: 'md',
45
45
  iconPosition: 'right',
46
46
  iconName: 'expand_less',
47
47
  classNames: 'ds-factbox__expand-less',
@@ -1,7 +1,7 @@
1
1
  {% from '@bonniernews/dn-design-system-web/njk-helpers/attributes.njk' import getAttributes %}
2
2
  {% from '@bonniernews/dn-design-system-web/components/icon-sprite/icon-sprite.njk' import IconUse %}
3
3
  {% from '@bonniernews/dn-design-system-web/components/button-toggle/button-toggle.njk' import ButtonToggle %}
4
- {% from '@bonniernews/dn-design-system-web/components/icon-button/icon-button.njk' import IconButton %}
4
+ {% from '@bonniernews/dn-design-system-web/components/button/button.njk' import Button %}
5
5
 
6
6
  {% macro GroupHeader(params) %}
7
7
  {% set componentClassName = "ds-group-header" %}
@@ -49,8 +49,8 @@
49
49
  {# there is no static-white toggle btn so it is disabled for bauta for now #}
50
50
  {% if params.type == 'toggle' and not params.variant %}
51
51
  {{ ButtonToggle({
52
- variant: "brand",
53
- size: 'small',
52
+ variant: "primary",
53
+ size: 'sm',
54
54
  text: params.toggleText,
55
55
  selectedText: params.toggleSelectedText,
56
56
  selected: params.toggleSelected,
@@ -59,20 +59,20 @@
59
59
  attributes: params.toggleAttributes
60
60
  }) }}
61
61
  {% elif (params.type == 'arrows') %}
62
- {% set buttonVariant = "staticWhite" if params.variant else "primary" %}
62
+ {% set buttonVariant = "staticWhite" if params.variant else "secondaryOutline" %}
63
63
  <div class="{{ componentClassName + '__arrows' }} hidden-mobile hidden-tablet">
64
- {{ IconButton({
64
+ {{ Button({
65
65
  variant: buttonVariant,
66
- emphasis: "outline",
67
- size: "small",
66
+ size: "sm",
67
+ isIconButton: true,
68
68
  iconName: "arrow_back",
69
69
  classNames: "ds-group-header__arrow ds-group-header__arrow--left",
70
70
  attributes: {"aria-label": "Föregående"}
71
71
  }) }}
72
- {{ IconButton({
72
+ {{ Button({
73
73
  variant: buttonVariant,
74
- emphasis: "outline",
75
- size: "small",
74
+ size: "sm",
75
+ isIconButton: true,
76
76
  iconName: "arrow_forward",
77
77
  classNames: "ds-group-header__arrow ds-group-header__arrow--right",
78
78
  attributes: {"aria-label": "Nästa"}
@@ -1,6 +1,5 @@
1
1
  @use "../../foundations/helpers/forward.helpers.scss" as *;
2
- @use "../button-toggle/button-toggle.scss";
3
- @use "../icon-button/icon-button.scss";
2
+ @use "../button/button.scss";
4
3
 
5
4
  $ds-group-header__icon-size: 24px;
6
5
 
@@ -3,7 +3,7 @@ import { ComponentChildren } from "preact";
3
3
  import { ButtonProps } from '../radio-button/radio-button'
4
4
  import type { DsIcon } from '@bonniernews/dn-design-system-web/types-lib/ds-icon.d.ts'
5
5
  import { SwitchInnerProps } from '../switch/switch'
6
- import { ButtonToggleProps } from '../button/button-types'
6
+ import { ButtonToggleStandardProps } from '../button/button-types'
7
7
 
8
8
  export interface ListItemSharedProps {
9
9
  title?: string
@@ -67,7 +67,7 @@ export interface SwitchListItemProps
67
67
 
68
68
  export interface ToggleListItemProps
69
69
  extends ListItemSharedProps,
70
- ButtonToggleProps,
70
+ ButtonToggleStandardProps,
71
71
  Pick<ListItemBaseProps, 'title' | 'subtitle' | 'disabled' | 'selected'> {
72
72
  name: string
73
73
  titleHref?: string
@@ -104,7 +104,7 @@ export interface InnerListItemProps
104
104
  | 'toggleSelectedText'
105
105
  | 'disabled'
106
106
  >,
107
- Pick<ButtonToggleProps, 'variant'> {
107
+ Pick<ButtonToggleStandardProps, 'variant'> {
108
108
  componentClassName: string
109
109
  }
110
110
 
@@ -147,10 +147,10 @@
147
147
  text: params.toggleText,
148
148
  selected: params.selected,
149
149
  selectedText: params.toggleSelectedText,
150
- variant: params.variant | default("secondary"),
150
+ variant: params.variant | default("secondaryFilled"),
151
151
  disabled: params.disabled,
152
152
  forcePx: params.forcePx,
153
- size: "small",
153
+ size: "sm",
154
154
  attributes: params.elementAttributes,
155
155
  classNames: params.elementClassNames
156
156
  })}}
@@ -164,10 +164,10 @@
164
164
  text: params.toggleText,
165
165
  selected: params.selected,
166
166
  selectedText: params.toggleSelectedText,
167
- variant: params.variant | default("secondary"),
167
+ variant: params.variant | default("secondaryFilled"),
168
168
  disabled: params.disabled,
169
169
  forcePx: params.forcePx,
170
- size: "small",
170
+ size: "sm",
171
171
  attributes: params.elementAttributes,
172
172
  classNames: params.elementClassNames
173
173
  })}}
@@ -1,6 +1,5 @@
1
1
  {% from '@bonniernews/dn-design-system-web/components/icon-sprite/icon-sprite.njk' import IconUse %}
2
2
  {% from '@bonniernews/dn-design-system-web/components/button/button.njk' import Button %}
3
- {% from '@bonniernews/dn-design-system-web/components/icon-button/icon-button.njk' import IconButton %}
4
3
  {% from '@bonniernews/dn-design-system-web/njk-helpers/attributes.njk' import getAttributes %}
5
4
 
6
5
  {% macro Modal(params) %}
@@ -16,10 +15,11 @@
16
15
  <div class="{{ classes }}">
17
16
  <dialog class="{{ componentClassName + '__inner' }}" {{- attributes | safe }}>
18
17
  <div class="{{ componentClassName + '__content' }}">
19
- {{ IconButton({
18
+ {{ Button({
20
19
  variant: "transparent",
21
- size: "small",
20
+ size: "sm",
22
21
  iconName: "close",
22
+ isIconButton: true,
23
23
  classNames: "ds-modal__close ds-modal__close--icon"
24
24
  })}}
25
25
 
@@ -32,14 +32,13 @@
32
32
  {% if params.primaryButton or params.secondaryButton %}
33
33
  <div class="ds-modal__buttons">
34
34
  {% if params.secondaryButton %}
35
- {%- set secondaryButtonClasses = [
35
+ {%- set secondaryButtonClasses = ["ds-modal__secondary-button",
36
36
  "ds-modal__close" if params.secondaryButton.isCloseButton,
37
37
  params.secondaryButton.classNames if params.secondaryButton.classNames
38
38
  ] | join(" ") %}
39
39
  {{ Button({
40
40
  text: params.secondaryButton.text,
41
- variant: "primary",
42
- emphasis: "outline",
41
+ variant: "secondaryOutline",
43
42
  href: params.secondaryButton.href,
44
43
  classNames: secondaryButtonClasses,
45
44
  attributes: params.secondaryButton.attributes,
@@ -51,11 +50,14 @@
51
50
  {% endif %}
52
51
 
53
52
  {% if params.primaryButton %}
53
+ {%- set primaryButtonClasses = ["ds-modal__primary-button",
54
+ params.primaryButton.classNames if params.primaryButton.classNames
55
+ ] | join(" ") %}
54
56
  {{ Button({
55
57
  text: params.primaryButton.text,
56
- variant: "primary",
58
+ variant: "primaryBlack",
57
59
  href: params.primaryButton.href,
58
- classNames: params.primaryButton.classNames,
60
+ classNames: primaryButtonClasses,
59
61
  attributes: params.primaryButton.attributes,
60
62
  forcePx: params.forcePx,
61
63
  mobile: {
@@ -1,7 +1,6 @@
1
1
  @use "../../foundations/helpers/forward.helpers.scss" as *;
2
2
  @use "../../components/icon-sprite/icon-sprite.scss";
3
3
  @use "../../components/button/button.scss";
4
- @use "../../components/icon-button/icon-button.scss";
5
4
 
6
5
  body:has(dialog[open]),
7
6
  body.no-scroll {
@@ -107,12 +106,12 @@ body.no-scroll {
107
106
  display: flex;
108
107
  flex-wrap: wrap;
109
108
 
110
- .ds-btn--default:not(:only-child) {
109
+ .ds-modal__primary-button:not(:only-child) {
111
110
  order: 1;
112
111
  margin-bottom: ds-spacing($ds-s-100);
113
112
  }
114
113
 
115
- .ds-btn--outline:not(:only-child) {
114
+ .ds-modal__secondary-button:not(:only-child) {
116
115
  order: 2;
117
116
  }
118
117
  }
@@ -121,7 +120,7 @@ body.no-scroll {
121
120
  display: flex;
122
121
  justify-content: center;
123
122
 
124
- .ds-btn--outline:not(:only-child) {
123
+ .ds-modal__secondary-button:not(:only-child) {
125
124
  margin-right: ds-spacing($ds-s-100);
126
125
  }
127
126
  }
@@ -1,6 +1,5 @@
1
1
  {% from '@bonniernews/dn-design-system-web/njk-helpers/attributes.njk' import getAttributes %}
2
2
  {% from '@bonniernews/dn-design-system-web/components/text-button/text-button.njk' import TextButton %}
3
- {% from '@bonniernews/dn-design-system-web/components/icon-button/icon-button.njk' import IconButton %}
4
3
 
5
4
  {% macro Pagination(params) %}
6
5
  {%- set componentClassName = "ds-pagination" %}
@@ -18,8 +18,8 @@
18
18
  <h1 class="{{ componentClassName }}__title">{{ params.title}}</h1>
19
19
  {% if params.toggle %}
20
20
  {{ ButtonToggle({
21
- variant: 'brand',
22
- size: 'medium',
21
+ variant: 'primary',
22
+ size: 'md',
23
23
  text: params.toggleText,
24
24
  selectedText: params.toggleSelectedText,
25
25
  selected: params.toggleSelected,
@@ -26,8 +26,8 @@
26
26
  <h1 class="{{ componentClassName }}__title">{{ params.title}}</h1>
27
27
  {% if params.toggle %}
28
28
  {{ ButtonToggle({
29
- variant: 'brand',
30
- size: 'medium',
29
+ variant: 'primary',
30
+ size: 'md',
31
31
  text: params.toggleText,
32
32
  selectedText: params.toggleSelectedText,
33
33
  selected: params.toggleSelected,
@@ -1,8 +1,8 @@
1
1
  {% from '@bonniernews/dn-design-system-web/njk-helpers/attributes.njk' import getAttributes %}
2
2
  {% from '@bonniernews/dn-design-system-web/components/teaser-card/teaser-card.njk' import TeaserCard %}
3
- {% from '@bonniernews/dn-design-system-web/components/icon-button/icon-button.njk' import IconButton %}
4
3
  {% from '@bonniernews/dn-design-system-web/components/group-header/group-header.njk' import GroupHeader %}
5
4
  {% from '@bonniernews/dn-design-system-web/components/teaser-swipe-card/teaser-swipe-card.njk' import TeaserSwipeCard %}
5
+ {% from '@bonniernews/dn-design-system-web/components/button/button.njk' import Button %}
6
6
 
7
7
  {% macro TeaserListSwipe(params) %}
8
8
  {% set componentClassName = "ds-teaser" %}
@@ -45,20 +45,20 @@
45
45
  </div>
46
46
 
47
47
  {% if arrowPosition === 'floating' %}
48
- {{ IconButton({
48
+ {{ Button({
49
49
  iconName: 'arrow_back',
50
- variant: 'primary',
51
- emphasis: 'outline',
52
- size: 'small',
50
+ variant: 'staticWhite',
51
+ size: 'sm',
52
+ isIconButton: true,
53
53
  attributes: { 'aria-label': 'Föregående' },
54
54
  classNames: componentClassName + '__swipe-arrow ' + componentClassName + '__swipe-arrow--back hidden-mobile hidden-tablet',
55
55
  forcePx: true
56
56
  }) }}
57
- {{ IconButton({
57
+ {{ Button({
58
58
  iconName: 'arrow_forward',
59
- variant: 'primary',
60
- emphasis: 'outline',
61
- size: 'small',
59
+ variant: 'staticWhite',
60
+ size: 'sm',
61
+ isIconButton: true,
62
62
  attributes: { 'aria-label': 'Nästa' },
63
63
  classNames: componentClassName + '__swipe-arrow ' + componentClassName + '__swipe-arrow--forward hidden-mobile hidden-tablet',
64
64
  forcePx: true
@@ -1,6 +1,6 @@
1
1
  @use "../../foundations/helpers/forward.helpers.scss" as *;
2
2
  @use "../../assets/teaser/teaser.scss" as *;
3
- @use "../../components/icon-button/icon-button";
3
+ @use "../../components/button/button.scss";
4
4
  @use "../../components/group-header/group-header";
5
5
  @use "../../components/teaser-swipe-card/teaser-swipe-card";
6
6
 
@@ -47,11 +47,11 @@
47
47
  z-index: 5;
48
48
 
49
49
  &--back {
50
- left: 10px;
50
+ left: ds-spacing($ds-s-125);
51
51
  }
52
52
 
53
53
  &--forward {
54
- right: 10px;
54
+ right: ds-spacing($ds-s-125);
55
55
  }
56
56
  }
57
57
  }
@@ -34,7 +34,7 @@
34
34
  {{ Button({
35
35
  text: params.listLink.text,
36
36
  href: params.listLink.url,
37
- variant: 'secondary',
37
+ variant: 'secondaryFilled',
38
38
  fullWidth: true,
39
39
  classNames: params.listLink.classNames,
40
40
  attributes: params.listLink.attributes,
@@ -1,5 +1,5 @@
1
- {% from '@bonniernews/dn-design-system-web/components/icon-button/icon-button.njk' import IconButton %} {# TODO switch to on-off button #}
2
1
  {% from '@bonniernews/dn-design-system-web/assets/form-field/form-field.njk' import FormField %}
2
+ {% from '@bonniernews/dn-design-system-web/components/button-toggle/button-toggle.njk' import ButtonToggle %}
3
3
 
4
4
  {% macro TextInput(params) %}
5
5
  {% set componentClassName = "ds-text-input" %}
@@ -23,10 +23,12 @@
23
23
  <label class="{{ componentClassName + '__label'}}" for="{{ params.name }}">{{ params.label }}</label>
24
24
  {% endif %}
25
25
  {% if password %}
26
- {{ IconButton({
26
+ {{ ButtonToggle({
27
27
  variant: "transparent",
28
- size: "small",
28
+ size: "sm",
29
29
  iconName: "visibility",
30
+ selectedIconName: "visibility_off",
31
+ isIconButton: true,
30
32
  classNames: componentClassName + "__password-toggle",
31
33
  attributes: {
32
34
  id: params.name + "-password-toggle"
@@ -1,10 +1,9 @@
1
1
  @use "../../foundations/helpers/forward.helpers.scss" as *;
2
2
  @use "../../assets/form-field/form-field.scss";
3
- @use "../icon-button-toggle/icon-button-toggle.scss";
4
- @use "../icon-button/icon-button.scss"; // TODO remove when njk is removed
3
+ @use "../../components/button/button.scss";
5
4
 
6
5
  $ds-text-input-toggle-btn__width: 28px;
7
- $ds-text-input-toggle-btn__top: 22px;
6
+ $ds-text-input-toggle-btn__top: 20px;
8
7
  $ds-text-input-toggle-btn__area: ($ds-text-input-toggle-btn__width + ds-spacing($ds-s-050));
9
8
 
10
9
  .ds-form-field__error {
@@ -1,6 +1,5 @@
1
1
  {% from '@bonniernews/dn-design-system-web/components/icon-sprite/icon-sprite.njk' import IconUse %}
2
2
  {% from '@bonniernews/dn-design-system-web/components/button/button.njk' import Button %}
3
- {% from '@bonniernews/dn-design-system-web/components/icon-button/icon-button.njk' import IconButton %}
4
3
  {% from '@bonniernews/dn-design-system-web/njk-helpers/attributes.njk' import getAttributes %}
5
4
 
6
5
  {% macro Tooltip(params) %}
@@ -24,12 +23,13 @@
24
23
 
25
24
  {{ caller() if caller }}
26
25
  </div>
27
-
26
+
28
27
  {% if params.closeButton %}
29
- {{ IconButton({
28
+ {{ Button({
30
29
  variant: "transparent",
31
- size: "small",
30
+ size: "sm",
32
31
  iconName: "close",
32
+ isIconButton: true,
33
33
  classNames: "ds-tooltip__close",
34
34
  attributes: { "aria-label": "Stäng" }
35
35
  })}}
@@ -2,7 +2,6 @@
2
2
  @use "../../foundations/variables/typographyFontWeight.scss";
3
3
  @use "../../components/icon-sprite/icon-sprite.scss";
4
4
  @use "../../components/button/button.scss";
5
- @use "../../components/icon-button/icon-button.scss";
6
5
 
7
6
  .ds-tooltip {
8
7
  background-color: $ds-color-surface-primary-raised-strong;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bonniernews/dn-design-system-web",
3
- "version": "28.0.1",
3
+ "version": "29.0.1",
4
4
  "description": "DN design system for web.",
5
5
  "type": "module",
6
6
  "homepage": "https://github.com/BonnierNews/dn-design-system/tree/main/web/src#readme",