@design-system-rte/angular 0.2.0 → 0.2.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 (77) hide show
  1. package/ng-package.json +10 -0
  2. package/package.json +4 -17
  3. package/src/lib/components/button/button.component.html +10 -0
  4. package/src/lib/components/button/button.component.scss +156 -0
  5. package/src/lib/components/button/button.component.spec.ts +22 -0
  6. package/src/lib/components/button/button.component.stories.ts +99 -0
  7. package/src/lib/components/button/button.component.ts +27 -0
  8. package/src/lib/components/checkbox/checkbox.component.html +31 -0
  9. package/src/lib/components/checkbox/checkbox.component.scss +170 -0
  10. package/src/lib/components/checkbox/checkbox.component.stories.ts +126 -0
  11. package/src/lib/components/checkbox/checkbox.component.ts +34 -0
  12. package/src/lib/components/checkbox-group/checkbox-group.component.html +46 -0
  13. package/src/lib/components/checkbox-group/checkbox-group.component.scss +82 -0
  14. package/src/lib/components/checkbox-group/checkbox-group.component.stories.ts +121 -0
  15. package/src/lib/components/checkbox-group/checkbox-group.component.ts +28 -0
  16. package/src/lib/components/grid/col/col.directive.ts +35 -0
  17. package/src/lib/components/grid/grid.directive.stories.ts +150 -0
  18. package/src/lib/components/grid/grid.directive.ts +22 -0
  19. package/src/lib/components/icon/icon-map.ts +301 -0
  20. package/src/lib/components/icon/icon.component.html +1 -0
  21. package/src/lib/components/icon/icon.component.scss +3 -0
  22. package/src/lib/components/icon/icon.component.ts +58 -0
  23. package/src/lib/components/icon/icon.service.ts +33 -0
  24. package/src/lib/components/icon/icon.stories.ts +84 -0
  25. package/src/lib/components/link/link.component.html +6 -0
  26. package/src/lib/components/link/link.component.scss +108 -0
  27. package/src/lib/components/link/link.component.stories.ts +61 -0
  28. package/src/lib/components/link/link.component.ts +18 -0
  29. package/src/lib/components/radio-button/radio-button.component.html +24 -0
  30. package/src/lib/components/radio-button/radio-button.component.scss +135 -0
  31. package/src/lib/components/radio-button/radio-button.component.stories.ts +76 -0
  32. package/src/lib/components/radio-button/radio-button.component.ts +22 -0
  33. package/src/lib/components/radio-button-group/radio-button-group.component.html +45 -0
  34. package/src/lib/components/radio-button-group/radio-button-group.component.scss +82 -0
  35. package/src/lib/components/radio-button-group/radio-button-group.component.stories.ts +121 -0
  36. package/src/lib/components/radio-button-group/radio-button-group.component.ts +28 -0
  37. package/src/lib/components/tooltip/tooltip.component.html +7 -0
  38. package/src/lib/components/tooltip/tooltip.component.scss +118 -0
  39. package/src/lib/components/tooltip/tooltip.component.ts +16 -0
  40. package/src/lib/components/tooltip/tooltip.directive.stories.ts +218 -0
  41. package/src/lib/components/tooltip/tooltip.directive.ts +187 -0
  42. package/src/public-api.ts +9 -0
  43. package/tsconfig.lib.json +22 -0
  44. package/tsconfig.lib.prod.json +10 -0
  45. package/tsconfig.spec.json +14 -0
  46. package/design-system-rte-angular.d.ts.map +0 -1
  47. package/esm2022/design-system-rte-angular.mjs +0 -5
  48. package/esm2022/lib/components/button/button.component.mjs +0 -22
  49. package/esm2022/lib/components/checkbox/checkbox.component.mjs +0 -34
  50. package/esm2022/lib/components/checkbox-group/checkbox-group.component.mjs +0 -29
  51. package/esm2022/lib/components/grid/col/col.directive.mjs +0 -41
  52. package/esm2022/lib/components/grid/grid.directive.mjs +0 -30
  53. package/esm2022/lib/components/link/link.component.mjs +0 -19
  54. package/esm2022/lib/components/radio-button/radio-button.component.mjs +0 -24
  55. package/esm2022/lib/components/radio-button-group/radio-button-group.component.mjs +0 -29
  56. package/esm2022/public-api.mjs +0 -12
  57. package/fesm2022/design-system-rte-angular.mjs +0 -215
  58. package/fesm2022/design-system-rte-angular.mjs.map +0 -1
  59. package/index.d.ts +0 -6
  60. package/lib/components/button/button.component.d.ts +0 -13
  61. package/lib/components/button/button.component.d.ts.map +0 -1
  62. package/lib/components/checkbox/checkbox.component.d.ts +0 -19
  63. package/lib/components/checkbox/checkbox.component.d.ts.map +0 -1
  64. package/lib/components/checkbox-group/checkbox-group.component.d.ts +0 -19
  65. package/lib/components/checkbox-group/checkbox-group.component.d.ts.map +0 -1
  66. package/lib/components/grid/col/col.directive.d.ts +0 -15
  67. package/lib/components/grid/col/col.directive.d.ts.map +0 -1
  68. package/lib/components/grid/grid.directive.d.ts +0 -11
  69. package/lib/components/grid/grid.directive.d.ts.map +0 -1
  70. package/lib/components/link/link.component.d.ts +0 -10
  71. package/lib/components/link/link.component.d.ts.map +0 -1
  72. package/lib/components/radio-button/radio-button.component.d.ts +0 -14
  73. package/lib/components/radio-button/radio-button.component.d.ts.map +0 -1
  74. package/lib/components/radio-button-group/radio-button-group.component.d.ts +0 -19
  75. package/lib/components/radio-button-group/radio-button-group.component.d.ts.map +0 -1
  76. package/public-api.d.ts +0 -9
  77. package/public-api.d.ts.map +0 -1
@@ -0,0 +1,218 @@
1
+ import { TAB_KEY } from "@design-system-rte/core/constants/keyboard.constants";
2
+ import { Meta, StoryObj } from "@storybook/angular";
3
+ import { within, userEvent, expect, waitFor } from "@storybook/test";
4
+
5
+ import { TooltipDirective } from "./tooltip.directive";
6
+
7
+ const meta: Meta<TooltipDirective> = {
8
+ title: "Tooltip",
9
+ component: TooltipDirective,
10
+ tags: ["autodocs"],
11
+ argTypes: {
12
+ rteTooltip: {
13
+ control: "text",
14
+ defaultValue: "Tooltip Text",
15
+ },
16
+ rteTooltipPosition: {
17
+ control: "select",
18
+ options: ["auto", "top", "bottom", "left", "right"],
19
+ defaultValue: "top",
20
+ },
21
+ rteTooltipAlignment: {
22
+ control: "select",
23
+ options: ["start", "center", "end"],
24
+ defaultValue: "center",
25
+ },
26
+ rteTooltipArrow: {
27
+ control: "boolean",
28
+ defaultValue: true,
29
+ },
30
+ },
31
+ parameters: {
32
+ layout: "centered",
33
+ },
34
+ };
35
+ export default meta;
36
+ type Story = StoryObj<TooltipDirective>;
37
+
38
+ const mockHost = (tooltipDirectives: string) => `
39
+ <div style="
40
+ text-decoration: underline;
41
+ text-decoration-color: #BF4C00;
42
+ text-decoration-thickness: 2px;
43
+ text-underline-offset: 4px;
44
+ color: #BF4C00;
45
+ font-weight: bold;
46
+ "
47
+ ${tooltipDirectives}
48
+ >
49
+ Hover Me!
50
+ </div>
51
+ `;
52
+
53
+ export const Default: Story = {
54
+ args: {
55
+ rteTooltip: "Tooltip",
56
+ rteTooltipPosition: "top",
57
+ rteTooltipAlignment: "center",
58
+ rteTooltipArrow: true,
59
+ },
60
+ render: (args) => ({
61
+ props: args,
62
+ declarations: [TooltipDirective],
63
+ template: mockHost(`
64
+ [rteTooltip]="rteTooltip"
65
+ [rteTooltipPosition]="rteTooltipPosition"
66
+ [rteTooltipAlignment]="rteTooltipAlignment"
67
+ [rteTooltipArrow]="rteTooltipArrow"
68
+ `),
69
+ }),
70
+ };
71
+
72
+ export const Position: Story = {
73
+ args: Default.args,
74
+ render: (args) => ({
75
+ props: args,
76
+ declarations: [TooltipDirective],
77
+ template: `
78
+ <div style="display: flex; flex-direction: column; align-items: center; gap: 16px;">
79
+ ${mockHost(`
80
+ rteTooltipPosition="top"
81
+ [rteTooltip]="rteTooltip"
82
+ [rteTooltipAlignment]="rteTooltipAlignment"
83
+ [rteTooltipArrow]="rteTooltipArrow"
84
+ `)}
85
+ ${mockHost(`
86
+ rteTooltipPosition="bottom"
87
+ [rteTooltip]="rteTooltip"
88
+ [rteTooltipAlignment]="rteTooltipAlignment"
89
+ [rteTooltipArrow]="rteTooltipArrow"
90
+ `)}
91
+ ${mockHost(`
92
+ rteTooltipPosition="left"
93
+ [rteTooltip]="rteTooltip"
94
+ [rteTooltipAlignment]="rteTooltipAlignment"
95
+ [rteTooltipArrow]="rteTooltipArrow"
96
+ `)}
97
+ ${mockHost(`
98
+ rteTooltipPosition="right"
99
+ [rteTooltip]="rteTooltip"
100
+ [rteTooltipAlignment]="rteTooltipAlignment"
101
+ [rteTooltipArrow]="rteTooltipArrow"
102
+ `)}
103
+ </div>
104
+ `,
105
+ }),
106
+ };
107
+
108
+ export const Alignment: Story = {
109
+ args: Default.args,
110
+ render: (args) => ({
111
+ props: args,
112
+ declarations: [TooltipDirective],
113
+ template: `
114
+ <div style="display: flex; flex-direction: column; align-items: center; gap: 16px;">
115
+ ${mockHost(`
116
+ rteTooltipAlignment="start"
117
+ [rteTooltipPosition]="rteTooltipPosition"
118
+ [rteTooltip]="rteTooltip"
119
+ [rteTooltipArrow]="rteTooltipArrow"
120
+ `)}
121
+ ${mockHost(`
122
+ rteTooltipAlignment="center"
123
+ [rteTooltipPosition]="rteTooltipPosition"
124
+ [rteTooltip]="rteTooltip"
125
+ [rteTooltipArrow]="rteTooltipArrow"
126
+ `)}
127
+ ${mockHost(`
128
+ rteTooltipAlignment="end"
129
+ [rteTooltipPosition]="rteTooltipPosition"
130
+ [rteTooltip]="rteTooltip"
131
+ [rteTooltipArrow]="rteTooltipArrow"
132
+ `)}
133
+ </div>
134
+ `,
135
+ }),
136
+ };
137
+
138
+ export const Arrow: Story = {
139
+ args: Default.args,
140
+ render: (args) => ({
141
+ props: args,
142
+ declarations: [TooltipDirective],
143
+ template: `
144
+ <div style="display: flex; gap: 8;">
145
+ ${mockHost(`
146
+ [rteTooltipArrow]="true"
147
+ [rteTooltipPosition]="rteTooltipPosition"
148
+ [rteTooltip]="rteTooltip"
149
+ `)}
150
+ ${mockHost(`
151
+ [rteTooltipArrow]="false"
152
+ [rteTooltipPosition]="rteTooltipPosition"
153
+ [rteTooltip]="rteTooltip"
154
+ `)}
155
+ </div>
156
+ `,
157
+ }),
158
+ };
159
+
160
+ export const AutoPlacement: Story = {
161
+ args: Default.args,
162
+ render: (args) => ({
163
+ props: args,
164
+ declarations: [TooltipDirective],
165
+ template: `
166
+ <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 8px;">
167
+ <div style="display: flex; align-items: flex-start; justify-content: flex-start; gap: 8px; border: 1px solid red; width: 75px; height: 250px;">
168
+ ${mockHost(`
169
+ rteTooltipPosition="auto"
170
+ [rteTooltip]="rteTooltip"
171
+ `)}
172
+ </div>
173
+
174
+ <div style="display: flex; align-items: center; justify-content: flex-start; gap: 8px; border: 1px solid red; width: 250px; height: 50px;">
175
+ ${mockHost(`
176
+ rteTooltipPosition="auto"
177
+ [rteTooltip]="rteTooltip"
178
+ `)}
179
+ </div>
180
+
181
+ <div style="display: flex; align-items: flex-end; justify-content: flex-end; gap: 8px; border: 1px solid red; width: 75px; height: 250px;">
182
+ ${mockHost(`
183
+ rteTooltipPosition="auto"
184
+ [rteTooltip]="rteTooltip"
185
+ `)}
186
+ </div>
187
+
188
+ <div style="display: flex; align-items: center; justify-content: flex-end; gap: 8px; border: 1px solid red; width: 250px; height: 50px;">
189
+ ${mockHost(`
190
+ rteTooltipPosition="auto"
191
+ [rteTooltip]="rteTooltip"
192
+ `)}
193
+ </div>
194
+ </div>
195
+ `,
196
+ }),
197
+ };
198
+
199
+ export const KeyboardInteraction: Story = {
200
+ args: Default.args,
201
+ render: (args) => ({
202
+ props: args,
203
+ declarations: [TooltipDirective],
204
+ template: `
205
+ <div style="display: flex; gap: 8px;">
206
+ ${mockHost(`[rteTooltip]="rteTooltip"`)}
207
+ </div>
208
+ `,
209
+ }),
210
+ play: async ({ canvasElement }) => {
211
+ const canvas = within(canvasElement);
212
+ const tooltipHost = canvas.getByText("Hover Me!");
213
+ await userEvent.keyboard(TAB_KEY);
214
+ const tooltip = await canvas.findByRole("tooltip");
215
+ expect(tooltipHost).toHaveFocus();
216
+ await waitFor(() => expect(tooltip).toBeVisible());
217
+ },
218
+ };
@@ -0,0 +1,187 @@
1
+ import {
2
+ ChangeDetectorRef,
3
+ ComponentRef,
4
+ Directive,
5
+ ElementRef,
6
+ HostListener,
7
+ inject,
8
+ input,
9
+ Renderer2,
10
+ ViewContainerRef,
11
+ } from "@angular/core";
12
+ import { getAutoPlacement } from "@design-system-rte/core/components/utils/auto-placement";
13
+
14
+ import { TooltipComponent } from "./tooltip.component";
15
+
16
+ interface TooltipXBound {
17
+ position: "left" | "right";
18
+ offset: number;
19
+ }
20
+
21
+ interface TooltipYBound {
22
+ position: "top" | "bottom";
23
+ offset: number;
24
+ }
25
+
26
+ interface TooltipBounds {
27
+ x: TooltipXBound;
28
+ y: TooltipYBound;
29
+ }
30
+
31
+ const TOOLTIP_GAP = 8;
32
+
33
+ @Directive({
34
+ selector: "[rteTooltip]",
35
+ standalone: true,
36
+ })
37
+ export class TooltipDirective {
38
+ readonly rteTooltip = input.required<string>();
39
+ readonly rteTooltipPosition = input("auto");
40
+ readonly rteTooltipAlignment = input("center");
41
+ readonly rteTooltipArrow = input(true);
42
+
43
+ private tooltipRef: ComponentRef<TooltipComponent> | null = null;
44
+ private hostElement: HTMLElement;
45
+
46
+ private elementRef = inject(ElementRef);
47
+ private viewContainerRef = inject(ViewContainerRef);
48
+ private renderer = inject(Renderer2);
49
+ private cdr = inject(ChangeDetectorRef);
50
+
51
+ @HostListener("mouseenter")
52
+ onMouseEnter(): void {
53
+ this.showTooltip();
54
+ }
55
+
56
+ @HostListener("mouseleave")
57
+ onMouseLeave(): void {
58
+ this.hideTooltip();
59
+ }
60
+
61
+ @HostListener("focus")
62
+ onFocus(): void {
63
+ this.showTooltip();
64
+ }
65
+
66
+ @HostListener("blur")
67
+ onBlur(): void {
68
+ this.hideTooltip();
69
+ }
70
+
71
+ constructor() {
72
+ this.hostElement = this.elementRef.nativeElement;
73
+ this.hostElement.setAttribute("tabindex", "0");
74
+ }
75
+
76
+ showTooltip(): void {
77
+ if (this.tooltipRef) {
78
+ this.tooltipRef.destroy();
79
+ }
80
+
81
+ this.tooltipRef = this.viewContainerRef.createComponent(TooltipComponent);
82
+ this.assignDirectiveToComponent();
83
+ this.appendComponentToHost();
84
+ this.cdr.detectChanges();
85
+
86
+ if (this.tooltipRef) {
87
+ const tooltipElement = this.tooltipRef.location.nativeElement;
88
+ this.renderer.setStyle(tooltipElement, "opacity", "0");
89
+ this.positionTooltip();
90
+
91
+ this.renderer.setStyle(tooltipElement, "opacity", "1");
92
+ }
93
+ }
94
+
95
+ private assignDirectiveToComponent(): void {
96
+ if (this.tooltipRef) {
97
+ const tooltipElement = this.tooltipRef.location.nativeElement;
98
+ const position =
99
+ this.rteTooltipPosition() === "auto"
100
+ ? getAutoPlacement(this.hostElement, tooltipElement, "top")
101
+ : this.rteTooltipPosition();
102
+
103
+ this.tooltipRef.setInput("label", this.rteTooltip());
104
+ this.tooltipRef.setInput("position", position);
105
+ this.tooltipRef.setInput("alignment", this.rteTooltipAlignment());
106
+ this.tooltipRef.setInput("arrow", this.rteTooltipArrow());
107
+ }
108
+ }
109
+
110
+ private appendComponentToHost(): void {
111
+ if (this.tooltipRef) {
112
+ this.renderer.appendChild(this.elementRef.nativeElement, this.tooltipRef.location.nativeElement);
113
+ }
114
+ }
115
+
116
+ private positionTooltip(): void {
117
+ if (this.tooltipRef) {
118
+ const tooltipElement = this.tooltipRef.location.nativeElement;
119
+
120
+ const bounds = this.getTooltipPosition(this.hostElement, this.tooltipRef);
121
+
122
+ this.renderer.setStyle(this.hostElement, "position", "relative");
123
+
124
+ this.renderer.setStyle(tooltipElement, bounds.x.position, `${bounds.x.offset}px`);
125
+ this.renderer.setStyle(tooltipElement, bounds.y.position, `${bounds.y.offset}px`);
126
+ }
127
+ }
128
+
129
+ private getTooltipPosition(host: HTMLElement, tooltip: ComponentRef<TooltipComponent>): TooltipBounds {
130
+ return {
131
+ x: this.getTooltipXBound(host, tooltip),
132
+ y: this.getTooltipYBound(host, tooltip),
133
+ };
134
+ }
135
+
136
+ private getTooltipXBound(host: HTMLElement, tooltip: ComponentRef<TooltipComponent>): TooltipXBound {
137
+ return {
138
+ position: tooltip.instance.position() === "right" ? "right" : "left",
139
+ offset: this.getTooltipXOffset(host, tooltip),
140
+ };
141
+ }
142
+
143
+ private getTooltipXOffset(host: HTMLElement, tooltip: ComponentRef<TooltipComponent>): number {
144
+ const hostRect = host.getBoundingClientRect();
145
+ if (tooltip.instance.position() === "left") {
146
+ return -tooltip.location.nativeElement.querySelector(".tooltip").offsetWidth - TOOLTIP_GAP;
147
+ }
148
+ if (tooltip.instance.position() === "right") {
149
+ return -TOOLTIP_GAP;
150
+ }
151
+ return hostRect.width / 2;
152
+ }
153
+
154
+ private getTooltipYBound(host: HTMLElement, tooltip: ComponentRef<TooltipComponent>): TooltipYBound {
155
+ return {
156
+ position: tooltip.instance.position() === "bottom" ? "bottom" : "top",
157
+ offset: this.getTooltipYOffset(host, tooltip),
158
+ };
159
+ }
160
+
161
+ private getTooltipYOffset(host: HTMLElement, tooltip: ComponentRef<TooltipComponent>): number {
162
+ const hostRect = host.getBoundingClientRect();
163
+
164
+ if (tooltip.instance.position() === "top") {
165
+ return -tooltip.location.nativeElement.querySelector(".tooltip").offsetHeight - TOOLTIP_GAP;
166
+ }
167
+ if (tooltip.instance.position() === "bottom") {
168
+ return -TOOLTIP_GAP;
169
+ }
170
+ return hostRect.height / 2;
171
+ }
172
+
173
+ private hideTooltip(): void {
174
+ if (this.tooltipRef) {
175
+ const tooltipElement = this.tooltipRef.location.nativeElement;
176
+
177
+ this.renderer.setStyle(tooltipElement, "opacity", "0");
178
+
179
+ setTimeout(() => {
180
+ if (this.tooltipRef) {
181
+ this.tooltipRef.destroy();
182
+ this.tooltipRef = null;
183
+ }
184
+ }, 200);
185
+ }
186
+ }
187
+ }
@@ -0,0 +1,9 @@
1
+ export * from "./lib/components/button/button.component";
2
+ export * from "./lib/components/grid/grid.directive";
3
+ export * from "./lib/components/grid/col/col.directive";
4
+ export * from "./lib/components/link/link.component";
5
+ export * from "./lib/components/radio-button/radio-button.component";
6
+ export * from "./lib/components/radio-button-group/radio-button-group.component";
7
+ export * from "./lib/components/checkbox/checkbox.component";
8
+ export * from "./lib/components/checkbox-group/checkbox-group.component";
9
+ export * from "./lib/components/icon/icon.component";
@@ -0,0 +1,22 @@
1
+ /* To learn more about this file see: https://angular.io/config/tsconfig. */
2
+ {
3
+ "extends": "../../tsconfig.json",
4
+ "compilerOptions": {
5
+ "outDir": "../../out-tsc/lib",
6
+ "declaration": true,
7
+ "declarationMap": true,
8
+ "inlineSources": true,
9
+ "types": []
10
+ },
11
+ "angularCompilerOptions": {
12
+ "compilationMode": "partial"
13
+ },
14
+ "exclude": [
15
+ "**/*.spec.ts"
16
+ ],
17
+ "files": ["typings.d.ts"],
18
+ "include": [
19
+ "src/**/*.ts",
20
+ "src/types.d.ts"
21
+ ]
22
+ }
@@ -0,0 +1,10 @@
1
+ /* To learn more about this file see: https://angular.io/config/tsconfig. */
2
+ {
3
+ "extends": "./tsconfig.lib.json",
4
+ "compilerOptions": {
5
+ "declarationMap": false
6
+ },
7
+ "angularCompilerOptions": {
8
+ "compilationMode": "partial"
9
+ }
10
+ }
@@ -0,0 +1,14 @@
1
+ /* To learn more about this file see: https://angular.io/config/tsconfig. */
2
+ {
3
+ "extends": "../../tsconfig.json",
4
+ "compilerOptions": {
5
+ "outDir": "../../out-tsc/spec",
6
+ "types": [
7
+ "jasmine"
8
+ ]
9
+ },
10
+ "include": [
11
+ "**/*.spec.ts",
12
+ "**/*.d.ts"
13
+ ]
14
+ }
@@ -1 +0,0 @@
1
- {"version":3,"file":"design-system-rte-angular.d.ts","sourceRoot":"","sources":["../../projects/ds-rte-lib/src/design-system-rte-angular.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAEH,cAAc,cAAc,CAAC"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduLXN5c3RlbS1ydGUtYW5ndWxhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2RzLXJ0ZS1saWIvc3JjL2Rlc2lnbi1zeXN0ZW0tcnRlLWFuZ3VsYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -1,22 +0,0 @@
1
- import { Component, input, output } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class ButtonComponent {
4
- constructor() {
5
- this.label = input('');
6
- this.variant = input('filled');
7
- this.size = input('m');
8
- this.disabled = input(false);
9
- this.click = output();
10
- }
11
- onClick(event) {
12
- event.stopPropagation();
13
- this.click.emit();
14
- }
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: ButtonComponent, isStandalone: true, selector: "rte-button", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { click: "click" }, ngImport: i0, template: "<button\n class=\"rte-button {{ variant() }} size-{{ size() }}\"\n [disabled]=\"disabled()\"\n (click)=\"onClick($event)\"\n>\n <span class=\"rte-button-label\">{{ label() }}</span>\n</button>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:wght,FILL,GRAD@400,0,0&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap\";.rte-button{align-items:center;cursor:pointer;display:inline-flex;flex-shrink:0;justify-content:center}.rte-button:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:4px}.rte-button.size-s{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-size:14px;letter-spacing:-.5px;font-weight:600;line-height:20px;height:24px;border-radius:4px;padding:4px 8px}.rte-button.size-s .rte-button-label{margin:0 4px}.rte-button.size-m{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:16px;line-height:24px;letter-spacing:-.5px;height:32px;border-radius:4px;padding:4px 12px}.rte-button.size-m .rte-button-label{margin:0 6px}.rte-button.size-l{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:20px;line-height:28px;letter-spacing:-.5px;height:40px;border-radius:8px;padding:4px 16px}.rte-button.size-l .rte-button-label{margin:0 8px}.rte-button.filled{border:var(--border-brand-default);color:var(--content-primary-inverse);background:var(--background-brand-default)}.rte-button.filled:hover{background:var(--background-brand-hover);border:var(--background-brand-hover)}.rte-button.filled:active{background:var(--background-brand-pressed)}.rte-button.filled:disabled{background:var(--background-disabled);border:solid 1px var(--border-disabled);color:var(--content-disabled);box-shadow:none;cursor:default}.rte-button.outlined{background:var(--background-default);border:solid 1px var(--border-brand-default);color:var(--content-brand-default)}.rte-button.outlined:hover{background:var(--background-brand-inverse-hover);border:solid 1px var(--border-brand-default)}.rte-button.outlined:active{border:var(--background-brand-inverse);background:var(--background-brand-inverse-pressed)}.rte-button.outlined:disabled{background:var(--background-disabled);border:solid 1px var(--border-disabled);color:var(--content-disabled);cursor:default}.rte-button.text{background:transparent;border:none;color:var(--content-brand-default)}.rte-button.text:hover{background:var(--background-brand-inverse-hover)}.rte-button.text:active{background:var(--background-brand-inverse-pressed)}.rte-button.text:disabled{background:var(--background-disabled);color:var(--content-disabled);cursor:default}.rte-button.transparent{background:transparent;border:none;color:var(--content-brand-default)}.rte-button.transparent:hover{color:var(--content-brand-hover)}.rte-button.transparent:active{color:var(--content-brand-pressed)}.rte-button.transparent:disabled{color:var(--content-disabled);box-shadow:none;cursor:default}.rte-button.danger{background:var(--background-danger-default);border:none;color:var(--content-primary-inverse);border-radius:8px}.rte-button.danger:hover{background:var(--background-danger-hover)}.rte-button.danger:active{background:var(--background-danger-pressed)}.rte-button.danger:disabled{background:var(--background-disabled);border:var(--border-disabled);color:var(--content-disabled);box-shadow:none;cursor:default}\n"] }); }
17
- }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ButtonComponent, decorators: [{
19
- type: Component,
20
- args: [{ selector: 'rte-button', standalone: true, imports: [], template: "<button\n class=\"rte-button {{ variant() }} size-{{ size() }}\"\n [disabled]=\"disabled()\"\n (click)=\"onClick($event)\"\n>\n <span class=\"rte-button-label\">{{ label() }}</span>\n</button>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:wght,FILL,GRAD@400,0,0&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap\";.rte-button{align-items:center;cursor:pointer;display:inline-flex;flex-shrink:0;justify-content:center}.rte-button:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:4px}.rte-button.size-s{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-size:14px;letter-spacing:-.5px;font-weight:600;line-height:20px;height:24px;border-radius:4px;padding:4px 8px}.rte-button.size-s .rte-button-label{margin:0 4px}.rte-button.size-m{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:16px;line-height:24px;letter-spacing:-.5px;height:32px;border-radius:4px;padding:4px 12px}.rte-button.size-m .rte-button-label{margin:0 6px}.rte-button.size-l{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:20px;line-height:28px;letter-spacing:-.5px;height:40px;border-radius:8px;padding:4px 16px}.rte-button.size-l .rte-button-label{margin:0 8px}.rte-button.filled{border:var(--border-brand-default);color:var(--content-primary-inverse);background:var(--background-brand-default)}.rte-button.filled:hover{background:var(--background-brand-hover);border:var(--background-brand-hover)}.rte-button.filled:active{background:var(--background-brand-pressed)}.rte-button.filled:disabled{background:var(--background-disabled);border:solid 1px var(--border-disabled);color:var(--content-disabled);box-shadow:none;cursor:default}.rte-button.outlined{background:var(--background-default);border:solid 1px var(--border-brand-default);color:var(--content-brand-default)}.rte-button.outlined:hover{background:var(--background-brand-inverse-hover);border:solid 1px var(--border-brand-default)}.rte-button.outlined:active{border:var(--background-brand-inverse);background:var(--background-brand-inverse-pressed)}.rte-button.outlined:disabled{background:var(--background-disabled);border:solid 1px var(--border-disabled);color:var(--content-disabled);cursor:default}.rte-button.text{background:transparent;border:none;color:var(--content-brand-default)}.rte-button.text:hover{background:var(--background-brand-inverse-hover)}.rte-button.text:active{background:var(--background-brand-inverse-pressed)}.rte-button.text:disabled{background:var(--background-disabled);color:var(--content-disabled);cursor:default}.rte-button.transparent{background:transparent;border:none;color:var(--content-brand-default)}.rte-button.transparent:hover{color:var(--content-brand-hover)}.rte-button.transparent:active{color:var(--content-brand-pressed)}.rte-button.transparent:disabled{color:var(--content-disabled);box-shadow:none;cursor:default}.rte-button.danger{background:var(--background-danger-default);border:none;color:var(--content-primary-inverse);border-radius:8px}.rte-button.danger:hover{background:var(--background-danger-hover)}.rte-button.danger:active{background:var(--background-danger-pressed)}.rte-button.danger:disabled{background:var(--background-disabled);border:var(--border-disabled);color:var(--content-disabled);box-shadow:none;cursor:default}\n"] }]
21
- }] });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLXJ0ZS1saWIvc3JjL2xpYi9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBVXpELE1BQU0sT0FBTyxlQUFlO0lBUDVCO1FBU0UsVUFBSyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsQixZQUFPLEdBQUcsS0FBSyxDQUFnQixRQUFRLENBQUMsQ0FBQztRQUN6QyxTQUFJLEdBQUcsS0FBSyxDQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLGFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFeEIsVUFBSyxHQUFHLE1BQU0sRUFBUSxDQUFDO0tBT3hCO0lBTEMsT0FBTyxDQUFDLEtBQWlDO1FBQ3ZDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BCLENBQUM7K0dBWlUsZUFBZTttR0FBZixlQUFlLDJsQkNWNUIsOE1BTVM7OzRGRElJLGVBQWU7a0JBUDNCLFNBQVM7K0JBQ0UsWUFBWSxjQUNWLElBQUksV0FDUCxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCdXR0b25TaXplLCBCdXR0b25WYXJpYW50IH0gZnJvbSAnQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3J0ZS1idXR0b24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2J1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9idXR0b24uY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIEJ1dHRvbkNvbXBvbmVudCB7XG5cbiAgbGFiZWwgPSBpbnB1dCgnJyk7XG4gIHZhcmlhbnQgPSBpbnB1dDxCdXR0b25WYXJpYW50PignZmlsbGVkJyk7XG4gIHNpemUgPSBpbnB1dDxCdXR0b25TaXplPignbScpO1xuICBkaXNhYmxlZCA9IGlucHV0KGZhbHNlKTtcblxuICBjbGljayA9IG91dHB1dDx2b2lkPigpO1xuXG4gIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5jbGljay5lbWl0KCk7XG4gIH1cblxufVxuIiwiPGJ1dHRvblxuICAgIGNsYXNzPVwicnRlLWJ1dHRvbiB7eyB2YXJpYW50KCkgfX0gc2l6ZS17eyBzaXplKCkgfX1cIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgICAoY2xpY2spPVwib25DbGljaygkZXZlbnQpXCJcbj5cbiAgICA8c3BhbiBjbGFzcz1cInJ0ZS1idXR0b24tbGFiZWxcIj57eyBsYWJlbCgpIH19PC9zcGFuPlxuPC9idXR0b24+Il19
@@ -1,34 +0,0 @@
1
- import { Component, input } from "@angular/core";
2
- import { CommonModule } from "@angular/common";
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- export class CheckboxComponent {
6
- constructor() {
7
- this.id = input.required();
8
- this.label = input.required();
9
- this.value = input('');
10
- this.indeterminate = input(false);
11
- this.description = input('');
12
- this.showLabel = input(true);
13
- this.disabled = input(false);
14
- this.error = input(false);
15
- this.errorMessage = input('');
16
- this.readOnly = input(false);
17
- this.checked = input(false);
18
- this.groupName = input('');
19
- }
20
- onKeydown(event) {
21
- if (event.code === "Space") {
22
- if (this.readOnly()) {
23
- event.preventDefault();
24
- }
25
- }
26
- }
27
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
28
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: CheckboxComponent, isStandalone: true, selector: "rte-checkbox", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: "indeterminate", publicName: "indeterminate", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, showLabel: { classPropertyName: "showLabel", publicName: "showLabel", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, errorMessage: { classPropertyName: "errorMessage", publicName: "errorMessage", isSignal: true, isRequired: false, transformFunction: null }, readOnly: { classPropertyName: "readOnly", publicName: "readOnly", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, groupName: { classPropertyName: "groupName", publicName: "groupName", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: " <div class=\"rte-checkbox-container\">\n <input\n type=\"checkbox\"\n [id]=\"id()\"\n [value]=\"value()\"\n class=\"rte-checkbox\"\n [ngClass]=\"{'error': error(), 'read-only': readOnly()}\"\n [disabled]=\"disabled()\"\n [indeterminate]=\"indeterminate()\"\n [checked]=\"checked()\"\n (keydown)=\"onKeydown($event)\"\n />\n <!-- TODO: Replace with the real icon from Iconography ticket -->\n <div class=\"rte-checkbox-icons rte-checkbox-icon-selected\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M6.66667 9.06668L10.6 5.13335C10.7222 5.01112 10.8778 4.95001 11.0667 4.95001C11.2556 4.95001 11.4111 5.01112 11.5333 5.13335C11.6556 5.25557 11.7167 5.41112 11.7167 5.60001C11.7167 5.7889 11.6556 5.94446 11.5333 6.06668L7.13334 10.4667C7.00001 10.6 6.84445 10.6667 6.66667 10.6667C6.4889 10.6667 6.33334 10.6 6.20001 10.4667L4.46667 8.73335C4.34445 8.61112 4.28334 8.45557 4.28334 8.26668C4.28334 8.07779 4.34445 7.92223 4.46667 7.80001C4.5889 7.67779 4.74445 7.61668 4.93334 7.61668C5.12223 7.61668 5.27778 7.67779 5.40001 7.80001L6.66667 9.06668Z\" />\n </svg>\n </div>\n <div class=\"rte-checkbox-icons rte-checkbox-icon-indeterminated\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M4.66667 8.66665C4.47778 8.66665 4.31944 8.60276 4.19167 8.47498C4.06389 8.3472 4 8.18887 4 7.99998C4 7.81109 4.06389 7.65276 4.19167 7.52498C4.31944 7.3972 4.47778 7.33331 4.66667 7.33331H11.3333C11.5222 7.33331 11.6806 7.3972 11.8083 7.52498C11.9361 7.65276 12 7.81109 12 7.99998C12 8.18887 11.9361 8.3472 11.8083 8.47498C11.6806 8.60276 11.5222 8.66665 11.3333 8.66665H4.66667Z\" />\n </svg>\n </div>\n <div class=\"rte-checkbox-text-container\">\n <label \n *ngIf=\"showLabel()\" \n [for]=\"id()\" \n class=\"rte-checkbox-label\"\n [ngClass]=\"{\n 'error': error(),\n 'read-only': readOnly(),\n 'disabled': disabled()\n }\"\n >\n {{ label() }}\n </label>\n <p class=\"rte-checkbox-description\">{{ description() }}</p>\n <p *ngIf=\"error() && errorMessage()\" class=\"rte-checkbox-error\">{{ errorMessage() }}</p>\n </div>\n </div>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:wght,FILL,GRAD@400,0,0&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap\";.rte-checkbox-container{display:flex;gap:12px}.rte-checkbox-container .rte-checkbox{appearance:none;display:flex;width:16px;height:16px;border-radius:2px;border:1px solid var(--content-tertiary);opacity:100;background:var(--background-default);align-items:center;justify-content:center}.rte-checkbox-container .rte-checkbox:before{content:\"\";display:none;position:absolute;border-radius:999px;background:var(--background-hover);width:32px;height:32px;z-index:-1}.rte-checkbox-container .rte-checkbox:active:before{opacity:100;transform:scale(0);transition:transform 0s,opacity 0s}.rte-checkbox-container .rte-checkbox:focus-within{outline:1px solid var(--border-brand-focused);outline-offset:4px}.rte-checkbox-container .rte-checkbox:hover{cursor:pointer}.rte-checkbox-container .rte-checkbox:hover:not(:disabled):before{display:inline-block}.rte-checkbox-container .rte-checkbox:hover:not(:disabled):not(:active):before{opacity:50;transition:transform .15s ease,opacity .3s ease}.rte-checkbox-container .rte-checkbox:disabled{cursor:default;border:1px solid var(--content-disabled);background:var(--background-disabled)}.rte-checkbox-container .rte-checkbox:disabled~.rte-checkbox-text-container label,.rte-checkbox-container .rte-checkbox:disabled~.rte-checkbox-text-container .rte-checkbox-description{color:var(--content-disabled)}.rte-checkbox-container .rte-checkbox:checked{border:1px solid var(--content-brand-default);background:var(--background-brand-default)}.rte-checkbox-container .rte-checkbox:checked:hover:not(:disabled):not(:active):before{opacity:20;background:var(--background-brand-default)}.rte-checkbox-container .rte-checkbox:checked:disabled{border:1px solid var(--content-disabled);background:var(--background-disabled)}.rte-checkbox-container .rte-checkbox:checked:disabled~.rte-checkbox-icons svg{fill:var(--content-disabled)}.rte-checkbox-container .rte-checkbox:checked.error{background:var(--background-danger-default)}.rte-checkbox-container .rte-checkbox:checked:not(:indeterminate)~.rte-checkbox-icon-selected{display:block}.rte-checkbox-container .rte-checkbox:indeterminate{border:1px solid var(--content-brand-default);background:var(--background-brand-default)}.rte-checkbox-container .rte-checkbox:indeterminate:hover:not(:disabled):not(:active):before{opacity:20;background:var(--background-brand-default)}.rte-checkbox-container .rte-checkbox:indeterminate:disabled{border:1px solid var(--content-disabled);background:var(--background-disabled)}.rte-checkbox-container .rte-checkbox:indeterminate:disabled~.rte-checkbox-icons svg{fill:var(--content-disabled)}.rte-checkbox-container .rte-checkbox:indeterminate.error{background:var(--background-danger-default)}.rte-checkbox-container .rte-checkbox:indeterminate~.rte-checkbox-icon-indeterminated{display:block}.rte-checkbox-container .rte-checkbox.read-only{pointer-events:none;cursor:default;border:1px solid var(--content-tertiary);opacity:100;background:var(--background-disabled)}.rte-checkbox-container .rte-checkbox.read-only~.rte-checkbox-text-container label,.rte-checkbox-container .rte-checkbox.read-only~.rte-checkbox-text-container .checkbox-description{color:var(--content-tertiary)}.rte-checkbox-container .rte-checkbox.read-only~.rte-checkbox-icons svg{fill:var(--content-tertiary)}.rte-checkbox-container .rte-checkbox.read-only.error{border:1px solid var(--content-danger);background:var(--background-disabled)}.rte-checkbox-container .rte-checkbox.error{border:1px solid var(--content-danger);background:var(--background-default)}.rte-checkbox-container .rte-checkbox.error:hover:not(:disabled):not(:active):before{opacity:20;background:var(--background-danger-hover)}.rte-checkbox-container .rte-checkbox-text-container label{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:16px;line-height:24px;letter-spacing:0px}.rte-checkbox-container .rte-checkbox-text-container .rte-checkbox-description{margin:0;color:var(--content-tertiary)}.rte-checkbox-container .rte-checkbox-text-container .rte-checkbox-error{margin:0;color:var(--content-danger)}.rte-checkbox-container .rte-checkbox-icons{display:none;z-index:1;pointer-events:none;transform:translate(4px,3px);position:absolute}.rte-checkbox-container .rte-checkbox-icons svg{fill:#fff}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
29
- }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CheckboxComponent, decorators: [{
31
- type: Component,
32
- args: [{ selector: 'rte-checkbox', standalone: true, imports: [CommonModule], template: " <div class=\"rte-checkbox-container\">\n <input\n type=\"checkbox\"\n [id]=\"id()\"\n [value]=\"value()\"\n class=\"rte-checkbox\"\n [ngClass]=\"{'error': error(), 'read-only': readOnly()}\"\n [disabled]=\"disabled()\"\n [indeterminate]=\"indeterminate()\"\n [checked]=\"checked()\"\n (keydown)=\"onKeydown($event)\"\n />\n <!-- TODO: Replace with the real icon from Iconography ticket -->\n <div class=\"rte-checkbox-icons rte-checkbox-icon-selected\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M6.66667 9.06668L10.6 5.13335C10.7222 5.01112 10.8778 4.95001 11.0667 4.95001C11.2556 4.95001 11.4111 5.01112 11.5333 5.13335C11.6556 5.25557 11.7167 5.41112 11.7167 5.60001C11.7167 5.7889 11.6556 5.94446 11.5333 6.06668L7.13334 10.4667C7.00001 10.6 6.84445 10.6667 6.66667 10.6667C6.4889 10.6667 6.33334 10.6 6.20001 10.4667L4.46667 8.73335C4.34445 8.61112 4.28334 8.45557 4.28334 8.26668C4.28334 8.07779 4.34445 7.92223 4.46667 7.80001C4.5889 7.67779 4.74445 7.61668 4.93334 7.61668C5.12223 7.61668 5.27778 7.67779 5.40001 7.80001L6.66667 9.06668Z\" />\n </svg>\n </div>\n <div class=\"rte-checkbox-icons rte-checkbox-icon-indeterminated\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M4.66667 8.66665C4.47778 8.66665 4.31944 8.60276 4.19167 8.47498C4.06389 8.3472 4 8.18887 4 7.99998C4 7.81109 4.06389 7.65276 4.19167 7.52498C4.31944 7.3972 4.47778 7.33331 4.66667 7.33331H11.3333C11.5222 7.33331 11.6806 7.3972 11.8083 7.52498C11.9361 7.65276 12 7.81109 12 7.99998C12 8.18887 11.9361 8.3472 11.8083 8.47498C11.6806 8.60276 11.5222 8.66665 11.3333 8.66665H4.66667Z\" />\n </svg>\n </div>\n <div class=\"rte-checkbox-text-container\">\n <label \n *ngIf=\"showLabel()\" \n [for]=\"id()\" \n class=\"rte-checkbox-label\"\n [ngClass]=\"{\n 'error': error(),\n 'read-only': readOnly(),\n 'disabled': disabled()\n }\"\n >\n {{ label() }}\n </label>\n <p class=\"rte-checkbox-description\">{{ description() }}</p>\n <p *ngIf=\"error() && errorMessage()\" class=\"rte-checkbox-error\">{{ errorMessage() }}</p>\n </div>\n </div>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:wght,FILL,GRAD@400,0,0&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap\";.rte-checkbox-container{display:flex;gap:12px}.rte-checkbox-container .rte-checkbox{appearance:none;display:flex;width:16px;height:16px;border-radius:2px;border:1px solid var(--content-tertiary);opacity:100;background:var(--background-default);align-items:center;justify-content:center}.rte-checkbox-container .rte-checkbox:before{content:\"\";display:none;position:absolute;border-radius:999px;background:var(--background-hover);width:32px;height:32px;z-index:-1}.rte-checkbox-container .rte-checkbox:active:before{opacity:100;transform:scale(0);transition:transform 0s,opacity 0s}.rte-checkbox-container .rte-checkbox:focus-within{outline:1px solid var(--border-brand-focused);outline-offset:4px}.rte-checkbox-container .rte-checkbox:hover{cursor:pointer}.rte-checkbox-container .rte-checkbox:hover:not(:disabled):before{display:inline-block}.rte-checkbox-container .rte-checkbox:hover:not(:disabled):not(:active):before{opacity:50;transition:transform .15s ease,opacity .3s ease}.rte-checkbox-container .rte-checkbox:disabled{cursor:default;border:1px solid var(--content-disabled);background:var(--background-disabled)}.rte-checkbox-container .rte-checkbox:disabled~.rte-checkbox-text-container label,.rte-checkbox-container .rte-checkbox:disabled~.rte-checkbox-text-container .rte-checkbox-description{color:var(--content-disabled)}.rte-checkbox-container .rte-checkbox:checked{border:1px solid var(--content-brand-default);background:var(--background-brand-default)}.rte-checkbox-container .rte-checkbox:checked:hover:not(:disabled):not(:active):before{opacity:20;background:var(--background-brand-default)}.rte-checkbox-container .rte-checkbox:checked:disabled{border:1px solid var(--content-disabled);background:var(--background-disabled)}.rte-checkbox-container .rte-checkbox:checked:disabled~.rte-checkbox-icons svg{fill:var(--content-disabled)}.rte-checkbox-container .rte-checkbox:checked.error{background:var(--background-danger-default)}.rte-checkbox-container .rte-checkbox:checked:not(:indeterminate)~.rte-checkbox-icon-selected{display:block}.rte-checkbox-container .rte-checkbox:indeterminate{border:1px solid var(--content-brand-default);background:var(--background-brand-default)}.rte-checkbox-container .rte-checkbox:indeterminate:hover:not(:disabled):not(:active):before{opacity:20;background:var(--background-brand-default)}.rte-checkbox-container .rte-checkbox:indeterminate:disabled{border:1px solid var(--content-disabled);background:var(--background-disabled)}.rte-checkbox-container .rte-checkbox:indeterminate:disabled~.rte-checkbox-icons svg{fill:var(--content-disabled)}.rte-checkbox-container .rte-checkbox:indeterminate.error{background:var(--background-danger-default)}.rte-checkbox-container .rte-checkbox:indeterminate~.rte-checkbox-icon-indeterminated{display:block}.rte-checkbox-container .rte-checkbox.read-only{pointer-events:none;cursor:default;border:1px solid var(--content-tertiary);opacity:100;background:var(--background-disabled)}.rte-checkbox-container .rte-checkbox.read-only~.rte-checkbox-text-container label,.rte-checkbox-container .rte-checkbox.read-only~.rte-checkbox-text-container .checkbox-description{color:var(--content-tertiary)}.rte-checkbox-container .rte-checkbox.read-only~.rte-checkbox-icons svg{fill:var(--content-tertiary)}.rte-checkbox-container .rte-checkbox.read-only.error{border:1px solid var(--content-danger);background:var(--background-disabled)}.rte-checkbox-container .rte-checkbox.error{border:1px solid var(--content-danger);background:var(--background-default)}.rte-checkbox-container .rte-checkbox.error:hover:not(:disabled):not(:active):before{opacity:20;background:var(--background-danger-hover)}.rte-checkbox-container .rte-checkbox-text-container label{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:16px;line-height:24px;letter-spacing:0px}.rte-checkbox-container .rte-checkbox-text-container .rte-checkbox-description{margin:0;color:var(--content-tertiary)}.rte-checkbox-container .rte-checkbox-text-container .rte-checkbox-error{margin:0;color:var(--content-danger)}.rte-checkbox-container .rte-checkbox-icons{display:none;z-index:1;pointer-events:none;transform:translate(4px,3px);position:absolute}.rte-checkbox-container .rte-checkbox-icons svg{fill:#fff}\n"] }]
33
- }] });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFVL0MsTUFBTSxPQUFPLGlCQUFpQjtJQVI5QjtRQVNFLE9BQUUsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7UUFDOUIsVUFBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUNqQyxVQUFLLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2xCLGtCQUFhLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLGdCQUFXLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hCLGNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEIsYUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixVQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLGlCQUFZLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pCLGFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsWUFBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixjQUFTLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0tBU3ZCO0lBUEMsU0FBUyxDQUFDLEtBQW9CO1FBQzVCLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUMzQixJQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO2dCQUNuQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDekIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDOytHQXBCVSxpQkFBaUI7bUdBQWpCLGlCQUFpQix3bERDWDlCLDZoRkF3Q0EsMitJRGxDWSxZQUFZOzs0RkFLWCxpQkFBaUI7a0JBUjdCLFNBQVM7K0JBQ0UsY0FBYyxjQUNaLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdydGUtY2hlY2tib3gnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NoZWNrYm94LmNvbXBvbmVudC5zY3NzJyxcbn0pXG5cbmV4cG9ydCBjbGFzcyBDaGVja2JveENvbXBvbmVudCB7XG4gIGlkID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xuICBsYWJlbCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcbiAgdmFsdWUgPSBpbnB1dCgnJyk7XG4gIGluZGV0ZXJtaW5hdGUgPSBpbnB1dChmYWxzZSk7XG4gIGRlc2NyaXB0aW9uID0gaW5wdXQoJycpO1xuICBzaG93TGFiZWwgPSBpbnB1dCh0cnVlKTtcbiAgZGlzYWJsZWQgPSBpbnB1dChmYWxzZSk7XG4gIGVycm9yID0gaW5wdXQoZmFsc2UpO1xuICBlcnJvck1lc3NhZ2UgPSBpbnB1dCgnJyk7XG4gIHJlYWRPbmx5ID0gaW5wdXQoZmFsc2UpO1xuICBjaGVja2VkID0gaW5wdXQoZmFsc2UpO1xuICBncm91cE5hbWUgPSBpbnB1dCgnJyk7XG5cbiAgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LmNvZGUgPT09IFwiU3BhY2VcIikge1xuICAgICAgaWYodGhpcy5yZWFkT25seSgpKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiICAgIDxkaXYgY2xhc3M9XCJydGUtY2hlY2tib3gtY29udGFpbmVyXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgIFtpZF09XCJpZCgpXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZSgpXCJcbiAgICAgICAgICAgIGNsYXNzPVwicnRlLWNoZWNrYm94XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZXJyb3InOiBlcnJvcigpLCAncmVhZC1vbmx5JzogcmVhZE9ubHkoKX1cIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwiaW5kZXRlcm1pbmF0ZSgpXCJcbiAgICAgICAgICAgIFtjaGVja2VkXT1cImNoZWNrZWQoKVwiXG4gICAgICAgICAgICAoa2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50KVwiXG4gICAgICAgIC8+XG4gICAgICAgIDwhLS0gVE9ETzogUmVwbGFjZSB3aXRoIHRoZSByZWFsIGljb24gZnJvbSBJY29ub2dyYXBoeSB0aWNrZXQgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJydGUtY2hlY2tib3gtaWNvbnMgcnRlLWNoZWNrYm94LWljb24tc2VsZWN0ZWRcIj5cbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNi42NjY2NyA5LjA2NjY4TDEwLjYgNS4xMzMzNUMxMC43MjIyIDUuMDExMTIgMTAuODc3OCA0Ljk1MDAxIDExLjA2NjcgNC45NTAwMUMxMS4yNTU2IDQuOTUwMDEgMTEuNDExMSA1LjAxMTEyIDExLjUzMzMgNS4xMzMzNUMxMS42NTU2IDUuMjU1NTcgMTEuNzE2NyA1LjQxMTEyIDExLjcxNjcgNS42MDAwMUMxMS43MTY3IDUuNzg4OSAxMS42NTU2IDUuOTQ0NDYgMTEuNTMzMyA2LjA2NjY4TDcuMTMzMzQgMTAuNDY2N0M3LjAwMDAxIDEwLjYgNi44NDQ0NSAxMC42NjY3IDYuNjY2NjcgMTAuNjY2N0M2LjQ4ODkgMTAuNjY2NyA2LjMzMzM0IDEwLjYgNi4yMDAwMSAxMC40NjY3TDQuNDY2NjcgOC43MzMzNUM0LjM0NDQ1IDguNjExMTIgNC4yODMzNCA4LjQ1NTU3IDQuMjgzMzQgOC4yNjY2OEM0LjI4MzM0IDguMDc3NzkgNC4zNDQ0NSA3LjkyMjIzIDQuNDY2NjcgNy44MDAwMUM0LjU4ODkgNy42Nzc3OSA0Ljc0NDQ1IDcuNjE2NjggNC45MzMzNCA3LjYxNjY4QzUuMTIyMjMgNy42MTY2OCA1LjI3Nzc4IDcuNjc3NzkgNS40MDAwMSA3LjgwMDAxTDYuNjY2NjcgOS4wNjY2OFpcIiAvPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicnRlLWNoZWNrYm94LWljb25zIHJ0ZS1jaGVja2JveC1pY29uLWluZGV0ZXJtaW5hdGVkXCI+XG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTQuNjY2NjcgOC42NjY2NUM0LjQ3Nzc4IDguNjY2NjUgNC4zMTk0NCA4LjYwMjc2IDQuMTkxNjcgOC40NzQ5OEM0LjA2Mzg5IDguMzQ3MiA0IDguMTg4ODcgNCA3Ljk5OTk4QzQgNy44MTEwOSA0LjA2Mzg5IDcuNjUyNzYgNC4xOTE2NyA3LjUyNDk4QzQuMzE5NDQgNy4zOTcyIDQuNDc3NzggNy4zMzMzMSA0LjY2NjY3IDcuMzMzMzFIMTEuMzMzM0MxMS41MjIyIDcuMzMzMzEgMTEuNjgwNiA3LjM5NzIgMTEuODA4MyA3LjUyNDk4QzExLjkzNjEgNy42NTI3NiAxMiA3LjgxMTA5IDEyIDcuOTk5OThDMTIgOC4xODg4NyAxMS45MzYxIDguMzQ3MiAxMS44MDgzIDguNDc0OThDMTEuNjgwNiA4LjYwMjc2IDExLjUyMjIgOC42NjY2NSAxMS4zMzMzIDguNjY2NjVINC42NjY2N1pcIiAvPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicnRlLWNoZWNrYm94LXRleHQtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8bGFiZWwgXG4gICAgICAgICAgICAqbmdJZj1cInNob3dMYWJlbCgpXCIgXG4gICAgICAgICAgICBbZm9yXT1cImlkKClcIiBcbiAgICAgICAgICAgIGNsYXNzPVwicnRlLWNoZWNrYm94LWxhYmVsXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAnZXJyb3InOiBlcnJvcigpLFxuICAgICAgICAgICAgICAgICdyZWFkLW9ubHknOiByZWFkT25seSgpLFxuICAgICAgICAgICAgICAgICdkaXNhYmxlZCc6IGRpc2FibGVkKClcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGxhYmVsKCkgfX1cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8cCBjbGFzcz1cInJ0ZS1jaGVja2JveC1kZXNjcmlwdGlvblwiPnt7IGRlc2NyaXB0aW9uKCkgfX08L3A+XG4gICAgICAgICAgICA8cCAqbmdJZj1cImVycm9yKCkgJiYgZXJyb3JNZXNzYWdlKClcIiBjbGFzcz1cInJ0ZS1jaGVja2JveC1lcnJvclwiPnt7IGVycm9yTWVzc2FnZSgpIH19PC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiJdfQ==