@design-system-rte/angular 0.1.1-rc7 → 0.2.0-rc2

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 (58) hide show
  1. package/design-system-rte-angular.d.ts.map +1 -0
  2. package/esm2022/design-system-rte-angular.mjs +5 -0
  3. package/esm2022/lib/components/button/button.component.mjs +22 -0
  4. package/esm2022/lib/components/checkbox/checkbox.component.mjs +34 -0
  5. package/esm2022/lib/components/checkbox-group/checkbox-group.component.mjs +29 -0
  6. package/esm2022/lib/components/grid/col/col.directive.mjs +41 -0
  7. package/esm2022/lib/components/grid/grid.directive.mjs +30 -0
  8. package/esm2022/lib/components/link/link.component.mjs +19 -0
  9. package/esm2022/lib/components/radio-button/radio-button.component.mjs +24 -0
  10. package/esm2022/lib/components/radio-button-group/radio-button-group.component.mjs +29 -0
  11. package/esm2022/public-api.mjs +12 -0
  12. package/fesm2022/design-system-rte-angular.mjs +215 -0
  13. package/fesm2022/design-system-rte-angular.mjs.map +1 -0
  14. package/index.d.ts +6 -0
  15. package/lib/components/button/button.component.d.ts +13 -0
  16. package/lib/components/button/button.component.d.ts.map +1 -0
  17. package/lib/components/checkbox/checkbox.component.d.ts +19 -0
  18. package/lib/components/checkbox/checkbox.component.d.ts.map +1 -0
  19. package/lib/components/checkbox-group/checkbox-group.component.d.ts +19 -0
  20. package/lib/components/checkbox-group/checkbox-group.component.d.ts.map +1 -0
  21. package/lib/components/grid/col/col.directive.d.ts +15 -0
  22. package/lib/components/grid/col/col.directive.d.ts.map +1 -0
  23. package/lib/components/grid/grid.directive.d.ts +11 -0
  24. package/lib/components/grid/grid.directive.d.ts.map +1 -0
  25. package/lib/components/link/link.component.d.ts +10 -0
  26. package/lib/components/link/link.component.d.ts.map +1 -0
  27. package/lib/components/radio-button/radio-button.component.d.ts +14 -0
  28. package/lib/components/radio-button/radio-button.component.d.ts.map +1 -0
  29. package/lib/components/radio-button-group/radio-button-group.component.d.ts +19 -0
  30. package/lib/components/radio-button-group/radio-button-group.component.d.ts.map +1 -0
  31. package/package.json +18 -12
  32. package/public-api.d.ts +9 -0
  33. package/public-api.d.ts.map +1 -0
  34. package/ng-package.json +0 -10
  35. package/src/lib/components/button/button.component.html +0 -7
  36. package/src/lib/components/button/button.component.scss +0 -156
  37. package/src/lib/components/button/button.component.spec.ts +0 -23
  38. package/src/lib/components/button/button.component.stories.ts +0 -102
  39. package/src/lib/components/button/button.component.ts +0 -25
  40. package/src/lib/components/grid/col/col.directive.ts +0 -37
  41. package/src/lib/components/grid/grid.directive.stories.ts +0 -149
  42. package/src/lib/components/grid/grid.directive.ts +0 -24
  43. package/src/lib/components/link/link.component.html +0 -5
  44. package/src/lib/components/link/link.component.scss +0 -108
  45. package/src/lib/components/link/link.component.stories.ts +0 -61
  46. package/src/lib/components/link/link.component.ts +0 -19
  47. package/src/lib/components/radio-button/radio-button.component.html +0 -24
  48. package/src/lib/components/radio-button/radio-button.component.scss +0 -140
  49. package/src/lib/components/radio-button/radio-button.component.stories.ts +0 -75
  50. package/src/lib/components/radio-button/radio-button.component.ts +0 -23
  51. package/src/lib/components/radio-button-group/radio-button-group.component.html +0 -45
  52. package/src/lib/components/radio-button-group/radio-button-group.component.scss +0 -82
  53. package/src/lib/components/radio-button-group/radio-button-group.component.stories.ts +0 -124
  54. package/src/lib/components/radio-button-group/radio-button-group.component.ts +0 -30
  55. package/src/public-api.ts +0 -5
  56. package/tsconfig.lib.json +0 -14
  57. package/tsconfig.lib.prod.json +0 -10
  58. package/tsconfig.spec.json +0 -14
@@ -1,108 +0,0 @@
1
- @use '@design-system-rte/core/tokens/main.scss' as *;
2
-
3
- .rte-link {
4
-
5
- @include typography-link-m;
6
- align-items: center;
7
- cursor: pointer;
8
- display: inline-flex;
9
- justify-content: center;
10
-
11
- &:visited {
12
-
13
- color: var(--content-link-visited);
14
- text-decoration: underline;
15
-
16
- &:hover {
17
- color: var(--content-link-visited-hover);
18
- text-decoration: none;
19
- }
20
-
21
- &:active {
22
- color: var(--content-link-visited-press);
23
- text-decoration: underline;
24
- }
25
-
26
- &:focus-visible {
27
- color: var(--content-link-visited);
28
- text-decoration: underline;
29
- outline: 1px solid var(--border-brand-focused);
30
- outline-offset: $radius-s;
31
- border-radius: $radius-s;
32
- }
33
- }
34
-
35
- &:not(:visited) {
36
-
37
- color: var(--content-link-default);
38
-
39
- &:hover {
40
- color: var(--content-link-hover);
41
- text-decoration: none;
42
- }
43
-
44
- &:active {
45
- color: var(--content-link-press);
46
- text-decoration: underline;
47
- }
48
-
49
- &:focus-visible {
50
- color: var(--content-link-default);
51
- text-decoration: underline;
52
- outline: 1px solid var(--border-brand-focused);
53
- outline-offset: $radius-s;
54
- border-radius: $radius-s;
55
- }
56
- }
57
-
58
- &.subtle{
59
-
60
- &:visited {
61
-
62
- color: var(--content-primary);
63
- text-decoration: none;
64
-
65
- &:hover {
66
- color: var(--content-link-secondary);
67
- text-decoration: underline;
68
- }
69
-
70
- &:active {
71
- color: var(--content-link-primary);
72
- text-decoration: none;
73
- }
74
-
75
- &:focus-visible {
76
- color: var(--content-link-primary);
77
- text-decoration: none;
78
- outline: 1px solid var(--border-brand-focused);
79
- outline-offset: $radius-s;
80
- border-radius: $radius-s;
81
- }
82
- }
83
-
84
- &:not(:visited) {
85
-
86
- color: var(--content-primary);
87
- text-decoration: none;
88
-
89
- &:hover {
90
- color: var(--content-secondary);
91
- text-decoration: underline;
92
- }
93
-
94
- &:active {
95
- color: var(--content-primary);
96
- text-decoration: none;
97
- }
98
-
99
- &:focus-visible {
100
- color: var(--content-primary);
101
- text-decoration: none;
102
- outline: 1px solid var(--border-brand-focused);
103
- outline-offset: $radius-s;
104
- border-radius: $radius-s;
105
- }
106
- }
107
- }
108
- }
@@ -1,61 +0,0 @@
1
- import { Meta, StoryObj } from '@storybook/angular';
2
- import { fn, userEvent, within, expect } from '@storybook/test';
3
-
4
- import { LinkComponent } from './link.component';
5
-
6
- const meta: Meta<LinkComponent> = {
7
- title: 'Link',
8
- component: LinkComponent,
9
- tags: ['autodocs'],
10
- argTypes: {
11
- subtle: {
12
- control: 'boolean',
13
- },
14
- externalLink: {
15
- control: 'boolean',
16
- },
17
- },
18
- };
19
- export default meta;
20
- type Story = StoryObj<LinkComponent>;
21
-
22
- export const Default: Story = {
23
- args: {
24
- label: 'Link',
25
- href: '#',
26
- },
27
- };
28
-
29
- export const SubtleLink: Story = {
30
- args: {
31
- ...Default.args,
32
- subtle: true,
33
- },
34
- }
35
-
36
- export const SubtleLinkExternal: Story = {
37
- args: {
38
- ...SubtleLink.args,
39
- externalLink: true,
40
- },
41
- }
42
-
43
- export const ExternalLink: Story = {
44
- args: {
45
- ...Default.args,
46
- externalLink: true,
47
- },
48
- };
49
-
50
- export const KeyboardInteraction: Story = {
51
- args: {
52
- ...Default.args,
53
- href: '#',
54
- },
55
- play: async ({ canvasElement }) => {
56
- const canvas = within(canvasElement);
57
- const link = canvas.getByRole('link');
58
- await userEvent.tab();
59
- expect(link).toHaveFocus();
60
- }
61
- };
@@ -1,19 +0,0 @@
1
- import { Component, input } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
-
4
- @Component({
5
- selector: 'rte-link',
6
- standalone: true,
7
- imports: [CommonModule],
8
- templateUrl: './link.component.html',
9
- styleUrl: './link.component.scss'
10
- })
11
-
12
- export class LinkComponent {
13
-
14
- label = input('');
15
- href = input<string>('#');
16
- subtle = input<boolean>(false);
17
- externalLink = input<boolean>(false);
18
-
19
- }
@@ -1,24 +0,0 @@
1
- <div *ngIf="isDisplayed()" class="rte-radio-button-container">
2
- <input
3
- type="radio"
4
- [id]="label()"
5
- [value]="label()"
6
- [size]="labelSize"
7
- [name]="groupName()"
8
- class="rte-radio-button"
9
- [ngClass]="{'error': error(), 'read-only': readOnly()}"
10
- [disabled]="disabled()"
11
- />
12
- <label
13
- *ngIf="showLabel()"
14
- [for]="label()"
15
- class="rte-radio-button-label"
16
- [ngClass]="{
17
- 'error': error(),
18
- 'read-only': readOnly(),
19
- 'disabled': disabled()
20
- }"
21
- >
22
- {{ label() }}
23
- </label>
24
- </div>
@@ -1,140 +0,0 @@
1
- @use '@design-system-rte/core/tokens/main.scss' as *;
2
-
3
-
4
- .rte-radio-button-container {
5
- display: flex;
6
- padding-right: $positive-spacing_050;
7
- align-items: center;
8
- gap: $positive-spacing_150;
9
- }
10
-
11
- .rte-radio-button {
12
- appearance: none;
13
- display: flex;
14
- width: 16px;
15
- height: 16px;
16
- padding: $positive-spacing_0;
17
- justify-content: center;
18
- align-items: center;
19
- border-radius: $radius-pill;
20
- border: $width-xs solid var(--content-tertiary);
21
- background: var(--background-default);
22
- position: relative;
23
- cursor: pointer;
24
- transition: box-shadow 0.3s ease-in-out;
25
- margin: 0;
26
-
27
- &::before {
28
- content: '';
29
- width: 10px;
30
- height: 10px;
31
- border-radius: $radius-pill;
32
- background: var(--content-brand-default);
33
- opacity: $opacity-0;
34
- }
35
-
36
- &::after {
37
- content: '';
38
- width: calc(100% + 8px);
39
- height: calc(100% + 8px);
40
- border-radius: $radius-s;
41
- border: $width-xs solid var(--content-primary);
42
- position: absolute;
43
- z-index: -1;
44
- opacity: $opacity-0;
45
- }
46
-
47
- &.error {
48
- border: $width-xs solid var(--content-danger);
49
- transition: box-shadow 0.3s ease-in-out;
50
-
51
- &:checked {
52
- border: $width-xs solid var(--content-danger);
53
- }
54
-
55
- &::before {
56
- background: var(--content-danger);
57
- }
58
-
59
- //TODO: Modify brute variable to use tokens
60
-
61
- &:hover {
62
- transition: box-shadow 0.15s ease-in-out;
63
- box-shadow: 0 0 0 8px rgba(200, 22, 64, 0.2);
64
-
65
- &:checked {
66
- box-shadow: 0 0 0 8px rgba(200, 22, 64, 0.2);
67
- }
68
- }
69
- }
70
-
71
- &.read-only {
72
- pointer-events: none;
73
- cursor: default;
74
-
75
- &::before {
76
- background: var(--content-tertiary);
77
- }
78
-
79
- &:checked {
80
- border: $width-xs solid var(--content-tertiary);
81
- }
82
-
83
- &.error{
84
- border: $width-xs solid var(--content-danger);
85
- }
86
- }
87
-
88
- &:focus {
89
- outline: none;
90
-
91
- &::after {
92
- opacity: $opacity-100;
93
- }
94
- }
95
-
96
- &:checked {
97
- border: $width-xs solid var(--content-brand-default);
98
- }
99
-
100
- &:checked::before {
101
- opacity: $opacity-100;
102
- }
103
-
104
- //TODO: Modify brute variable to use tokens
105
-
106
- &:hover {
107
- transition: box-shadow 0.15s ease-in-out;
108
- box-shadow: 0 0 0 8px var(--background-hover);
109
-
110
- &:checked {
111
- box-shadow: 0 0 0 8px rgba(34, 80, 130, 0.2);
112
- }
113
- }
114
-
115
- &:disabled {
116
- pointer-events: none;
117
- background: var(--background-disabled);
118
- border: $width-xs solid var(--content-disabled);
119
- cursor: not-allowed;
120
-
121
- &::before {
122
- background: var(--content-disabled);
123
- }
124
- }
125
- }
126
-
127
- .rte-radio-button-label {
128
- @include typography-radio-button-l;
129
-
130
- &.read-only {
131
- pointer-events: none;
132
- cursor: default;
133
- color: var(--content-tertiary);
134
- }
135
-
136
- &.disabled {
137
- pointer-events: none;
138
- color: var(--content-disabled);
139
- }
140
- }
@@ -1,75 +0,0 @@
1
- import { Meta, StoryObj } from '@storybook/angular';
2
- import { userEvent, within, expect } from '@storybook/test';
3
- import { RadioButtonComponent } from './radio-button.component';
4
-
5
- const meta: Meta<RadioButtonComponent> = {
6
- title: 'RadioButton',
7
- component: RadioButtonComponent,
8
- tags: ['autodocs'],
9
- argTypes: {
10
- label: {
11
- control: 'text',
12
- defaultValue: 'Radio Button',
13
- },
14
- groupName: {
15
- control: 'text',
16
- defaultValue: 'radio-group',
17
- },
18
- showLabel: {
19
- control: 'boolean',
20
- defaultValue: true,
21
- },
22
- disabled: {
23
- control: 'boolean',
24
- defaultValue: false,
25
- },
26
- error: {
27
- control: 'boolean',
28
- defaultValue: false,
29
- },
30
- readOnly: {
31
- control: 'boolean',
32
- defaultValue: false,
33
- },
34
- },
35
- };
36
- export default meta;
37
- type Story = StoryObj<RadioButtonComponent>;
38
-
39
- export const Default: Story = {
40
- args: {
41
- label: 'Radio Button',
42
- groupName: 'radio-group',
43
- showLabel: true,
44
- disabled: false,
45
- error: false,
46
- readOnly: false,
47
- },
48
- play: async ({ canvasElement }) => {
49
- const canvas = within(canvasElement);
50
- const radioButton = canvas.getByRole('radio');
51
- await userEvent.click(radioButton);
52
- expect(radioButton).toBeChecked();
53
- },
54
- };
55
-
56
- export const Disabled: Story = {
57
- args: {
58
- ...Default.args,
59
- disabled: true,
60
- },
61
- }
62
-
63
- export const Error: Story = {
64
- args: {
65
- ...Default.args,
66
- error: true,
67
- },
68
- }
69
-
70
- export const ReadOnly: Story = {
71
- args: {
72
- ...Default.args,
73
- readOnly: true,
74
- },
75
- }
@@ -1,23 +0,0 @@
1
- import { Component,computed,input } from "@angular/core";
2
- import { labelSize } from "@design-system-rte/core/components/radio-button/radio-button.constants";
3
- import { CommonModule } from "@angular/common";
4
-
5
- @Component({
6
- selector: 'rte-radio-button',
7
- standalone: true,
8
- imports: [CommonModule],
9
- templateUrl: './radio-button.component.html',
10
- styleUrl: './radio-button.component.scss',
11
- })
12
-
13
- export class RadioButtonComponent {
14
- label = input('');
15
- groupName = input('');
16
- showLabel = input(true);
17
- disabled = input(false);
18
- error = input(false);
19
- readOnly = input(false);
20
- labelSize = labelSize;
21
-
22
- isDisplayed = computed(() => !(this.disabled() && this.error()));
23
- }
@@ -1,45 +0,0 @@
1
- <div
2
- *ngIf="isDisplayed()"
3
- class="radio-button-group-container">
4
- <div
5
- class="radio-button-group-header"
6
- [ngClass]="{
7
- 'disabled': disabled(),
8
- 'error': error(),
9
- 'read-only': readOnly(),
10
- }">
11
- <h3
12
- *ngIf="showGroupTitle()"
13
- class="group-title"
14
- >
15
- {{ groupTitle() }}
16
- </h3>
17
- <p
18
- *ngIf="showHelpText()"
19
- class="group-help-text"
20
- >
21
- {{ groupHelpText() }}
22
-
23
- </p>
24
- <p
25
- *ngIf="error()"
26
- class="group-error-message"
27
- >
28
- {{ errorMessage() }}
29
- </p>
30
- </div>
31
- <div class="radio-button-group"
32
- [ngClass]="{'horizontal': direction() === 'horizontal', 'vertical': direction() === 'vertical'}">
33
- <ng-container
34
- *ngFor="let item of items()">
35
- <rte-radio-button
36
- [label]="item"
37
- [groupName]="groupName()"
38
- [showLabel]="showItemsLabel()"
39
- [disabled]="disabled()"
40
- [error]="error()"
41
- [readOnly]="readOnly()"
42
- />
43
- </ng-container>
44
- </div>
45
- </div>
@@ -1,82 +0,0 @@
1
- @use '@design-system-rte/core/tokens/main.scss' as *;
2
-
3
- .radio-button-group-container {
4
- display: flex;
5
- padding: $positive-spacing_0;
6
- flex-direction: column;
7
- justify-content: center;
8
- align-items: flex-start;
9
- gap: $positive-spacing_100;
10
-
11
- .radio-button-group-header {
12
-
13
- .group-title {
14
- @include typography-heading-s;
15
- align-self: stretch;
16
- margin: $positive-spacing_0;
17
-
18
- }
19
-
20
- .group-help-text {
21
- @include typography-text-m;
22
- color: var(--content-tertiary);
23
- align-self: stretch;
24
- margin: $positive-spacing_0;
25
- }
26
-
27
- .group-error-message {
28
- @include typography-text-m-bold;
29
- color: var(--content-danger);
30
- align-self: stretch;
31
- margin: $positive-spacing_0;
32
- margin-top: $positive-spacing_050;
33
- }
34
-
35
- &.error {
36
- .group-title {
37
- color: var(--content-danger);
38
- }
39
- }
40
-
41
- &.read-only {
42
- .group-title {
43
- color: var(--content-tertiary);
44
- }
45
-
46
- .error{
47
- .group-title {
48
- color: var(--content-danger);
49
- }
50
- }
51
- }
52
-
53
- &.disabled {
54
-
55
- pointer-events: none;
56
-
57
- .group-title {
58
- color: var(--content-disabled);
59
- }
60
-
61
- .group-help-text {
62
- color: var(--content-disabled);
63
- }
64
- }
65
-
66
-
67
- }
68
-
69
-
70
- .radio-button-group {
71
- display: flex;
72
- flex-direction: row;
73
- padding: $positive-spacing_0;
74
- align-items: flex-start;
75
- gap: $positive-spacing_300;
76
-
77
- &.vertical {
78
- flex-direction: column;
79
- gap: $positive-spacing_100;
80
- }
81
- }
82
- }
@@ -1,124 +0,0 @@
1
- import { Meta, StoryObj } from "@storybook/angular";
2
- import { userEvent, within, expect } from "@storybook/test";
3
- import { RadioButtonGroupComponent } from "./radio-button-group.component";
4
-
5
- const meta: Meta<RadioButtonGroupComponent> = {
6
- title: "RadioButtonGroup",
7
- component: RadioButtonGroupComponent,
8
- tags: ["autodocs"],
9
- argTypes: {
10
- groupName: {
11
- control: "text",
12
- defaultValue: "group1",
13
- },
14
- items: {
15
- control: "object",
16
- defaultValue: ["Option 1", "Option 2", "Option 3"],
17
- },
18
- direction: {
19
- control: "select",
20
- options: ["horizontal", "vertical"],
21
- defaultValue: "horizontal",
22
- },
23
- showItemsLabel: {
24
- control: "boolean",
25
- defaultValue: true,
26
- },
27
- groupTitle: {
28
- control: "text",
29
- defaultValue: "Radio Button Group Title",
30
- },
31
- showGroupTitle: {
32
- control: "boolean",
33
- defaultValue: true,
34
- },
35
- groupHelpText: {
36
- control: "text",
37
- defaultValue:
38
- "This is a help text for the radio button group.",
39
- },
40
- showHelpText: {
41
- control: "boolean",
42
- defaultValue: true,
43
- },
44
- errorMessage: {
45
- control: "text",
46
- defaultValue:
47
- 'This is an error message. Please select an option.',
48
- },
49
- error: {
50
- control: "boolean",
51
- defaultValue: false,
52
- },
53
- disabled: {
54
- control: "boolean",
55
- defaultValue: false,
56
- },
57
- readOnly: {
58
- control: "boolean",
59
- defaultValue: false,
60
- },
61
- },
62
- };
63
- export default meta;
64
- type Story = StoryObj<RadioButtonGroupComponent>;
65
-
66
- export const Default: Story = {
67
- args: {
68
- groupName: "group1",
69
- items: ["Option 1", "Option 2", "Option 3"],
70
- direction: "horizontal",
71
- showItemsLabel: true,
72
- groupTitle: "Radio Button Group Title",
73
- showGroupTitle: true,
74
- groupHelpText:
75
- "This is a help text for the radio button group.",
76
- showHelpText: true,
77
- errorMessage:
78
- 'This is an error message. Please select an option.',
79
- error: false,
80
- disabled: false,
81
- readOnly: false,
82
- },
83
- play: async ({ canvasElement }) => {
84
- const canvas = within(canvasElement);
85
- const radioButton = canvas.getByLabelText("Option 1");
86
- await userEvent.click(radioButton);
87
- expect(radioButton).toBeChecked();
88
- },
89
- };
90
-
91
- export const Disabled: Story = {
92
- args: {
93
- ...Default.args,
94
- disabled: true,
95
- },
96
- }
97
-
98
- export const Error: Story = {
99
- args: {
100
- ...Default.args,
101
- error: true,
102
- },
103
- };
104
-
105
- export const ReadOnly: Story = {
106
- args: {
107
- ...Default.args,
108
- readOnly: true,
109
- },
110
- };
111
-
112
- export const Vertical: Story = {
113
- args: {
114
- ...Default.args,
115
- direction: "vertical",
116
- },
117
- };
118
-
119
- export const Horizontal: Story = {
120
- args: {
121
- ...Default.args,
122
- direction: "horizontal",
123
- },
124
- };