@origostudio/origo-design 0.0.37 → 0.0.39

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 (137) hide show
  1. package/CHANGELOG.md +3 -2
  2. package/dist/packages/angular-renderer/CHANGELOG.md +21 -0
  3. package/dist/packages/angular-renderer/package.json +7 -6
  4. package/dist/packages/angular-renderer/src/adapters/web/experience-adapter.service.d.ts +2 -0
  5. package/dist/packages/angular-renderer/src/adapters/web/experience-adapter.service.js +11 -0
  6. package/dist/packages/angular-renderer/src/adapters/web/experience-adapter.service.js.map +1 -1
  7. package/dist/packages/angular-renderer/src/components/primitives/breadcrumbs/breadcrumbs.component.js.map +1 -1
  8. package/dist/packages/angular-renderer/src/components/primitives/chip/chip.component.js.map +1 -1
  9. package/dist/packages/angular-renderer/src/components/primitives/switch/switch.component.js.map +1 -1
  10. package/dist/packages/angular-renderer/src/devtools/devtools-bridge.js +2 -0
  11. package/dist/packages/angular-renderer/src/devtools/devtools-bridge.js.map +1 -1
  12. package/dist/packages/angular-renderer/src/index.d.ts +1 -0
  13. package/dist/packages/angular-renderer/src/index.js +1 -0
  14. package/dist/packages/angular-renderer/src/index.js.map +1 -1
  15. package/dist/packages/angular-renderer/src/lib/primitives.provider.js +26 -20
  16. package/dist/packages/angular-renderer/src/lib/primitives.provider.js.map +1 -1
  17. package/dist/packages/cli/CHANGELOG.md +8 -0
  18. package/dist/packages/cli/package.json +2 -2
  19. package/dist/packages/cli/package.json.bak +2 -2
  20. package/dist/packages/core/CHANGELOG.md +14 -0
  21. package/dist/packages/core/package.json +2 -2
  22. package/dist/packages/core/package.json.bak +2 -2
  23. package/dist/packages/design-tokens/CHANGELOG.md +8 -0
  24. package/dist/packages/design-tokens/package.json +1 -1
  25. package/dist/packages/playground/browser/{chunk-iSLqhP12.js → chunk-B1z-uVFi.js} +1 -1
  26. package/dist/packages/playground/browser/{chunk-BxusNwwt.js → chunk-BGZXpmBQ.js} +1 -1
  27. package/dist/packages/playground/browser/{chunk-B0HlAWSR.js → chunk-ByrswSrM.js} +1 -1
  28. package/dist/packages/playground/browser/{chunk-rK1aqCb7.js → chunk-CFbPXTNr.js} +1 -1
  29. package/dist/packages/playground/browser/{chunk-Dd9ht4SU.js → chunk-CSecAR9q.js} +1 -1
  30. package/dist/packages/playground/browser/{chunk-BkTn1FbH.js → chunk-D-8Zr5zg.js} +1 -1
  31. package/dist/packages/playground/browser/{chunk-DbylCYBP.js → chunk-D2kcCG-o.js} +1 -1
  32. package/dist/packages/playground/browser/{chunk-zg5PqW0l.js → chunk-DQx5lQqG.js} +1 -1
  33. package/dist/packages/playground/browser/{chunk-DXxUFvGw.js → chunk-Dac2dp5T.js} +1 -1
  34. package/dist/packages/playground/browser/{chunk-CXHFI87Z.js → chunk-DiZkmwKl.js} +1 -1
  35. package/dist/packages/playground/browser/{chunk-BI1AmKI_.js → chunk-DwU-a89u.js} +1 -1
  36. package/dist/packages/playground/browser/{chunk-D2bm1B8y.js → chunk-JF8ksHJn.js} +1 -1
  37. package/dist/packages/playground/browser/{chunk-ZeGfaGFy.js → chunk-_TRKH8kG.js} +1 -1
  38. package/dist/packages/playground/browser/{chunk-DT7GQcHj.js → chunk-e5kB8V0v.js} +1 -1
  39. package/dist/packages/playground/browser/{chunk-94bHXqp1.js → chunk-zJLityDb.js} +1 -1
  40. package/dist/packages/playground/browser/index.html +1 -1
  41. package/dist/packages/playground/browser/main-33XWGVNC.js +731 -0
  42. package/eslint.config.js +2 -1
  43. package/generate_prompts.ps1 +10 -0
  44. package/package.json +3 -2
  45. package/packages/angular-renderer/CHANGELOG.md +21 -0
  46. package/packages/angular-renderer/package.json +7 -6
  47. package/packages/angular-renderer/playwright/.cache/assets/adapter-iYml3Kk6.js +121 -0
  48. package/packages/angular-renderer/playwright/.cache/assets/adapter-iYml3Kk6.js.map +1 -0
  49. package/packages/angular-renderer/playwright/.cache/assets/breadcrumbs.component-DqZwZwH1.js +200 -0
  50. package/packages/angular-renderer/playwright/.cache/assets/breadcrumbs.component-DqZwZwH1.js.map +1 -0
  51. package/packages/angular-renderer/playwright/.cache/assets/button.component-Dnc1mP3D.js +112 -0
  52. package/packages/angular-renderer/playwright/.cache/assets/button.component-Dnc1mP3D.js.map +1 -0
  53. package/packages/angular-renderer/playwright/.cache/assets/card.component-0WWaDbUV.js +180 -0
  54. package/packages/angular-renderer/playwright/.cache/assets/card.component-0WWaDbUV.js.map +1 -0
  55. package/packages/angular-renderer/playwright/.cache/assets/checkbox.component-JGpevUFG.js +150 -0
  56. package/packages/angular-renderer/playwright/.cache/assets/checkbox.component-JGpevUFG.js.map +1 -0
  57. package/packages/angular-renderer/playwright/.cache/assets/chip.component-DHGk3h8k.js +121 -0
  58. package/packages/angular-renderer/playwright/.cache/assets/chip.component-DHGk3h8k.js.map +1 -0
  59. package/packages/angular-renderer/playwright/.cache/assets/data-grid.component-DDZZ4enP.js +352 -0
  60. package/packages/angular-renderer/playwright/.cache/assets/data-grid.component-DDZZ4enP.js.map +1 -0
  61. package/packages/angular-renderer/playwright/.cache/assets/experience-adapter.service-CJxHLpWN.js +38 -0
  62. package/packages/angular-renderer/playwright/.cache/assets/experience-adapter.service-CJxHLpWN.js.map +1 -0
  63. package/packages/angular-renderer/playwright/.cache/assets/form-field.component-DZA0NfB7.js +184 -0
  64. package/packages/angular-renderer/playwright/.cache/assets/form-field.component-DZA0NfB7.js.map +1 -0
  65. package/packages/angular-renderer/playwright/.cache/assets/hbox.component-D5YHn6Vu.js +125 -0
  66. package/packages/angular-renderer/playwright/.cache/assets/hbox.component-D5YHn6Vu.js.map +1 -0
  67. package/packages/angular-renderer/playwright/.cache/assets/index-DRoHZv2r.js +92806 -0
  68. package/packages/angular-renderer/playwright/.cache/assets/index-DRoHZv2r.js.map +1 -0
  69. package/packages/angular-renderer/playwright/.cache/assets/label.component-DDKtYvrS.js +105 -0
  70. package/packages/angular-renderer/playwright/.cache/assets/label.component-DDKtYvrS.js.map +1 -0
  71. package/packages/angular-renderer/playwright/.cache/assets/list.component-DSP5wzI4.js +195 -0
  72. package/packages/angular-renderer/playwright/.cache/assets/list.component-DSP5wzI4.js.map +1 -0
  73. package/packages/angular-renderer/playwright/.cache/assets/radio-group.component-BzVciXZu.js +171 -0
  74. package/packages/angular-renderer/playwright/.cache/assets/radio-group.component-BzVciXZu.js.map +1 -0
  75. package/packages/angular-renderer/playwright/.cache/assets/select.component-BC_aoLNt.js +180 -0
  76. package/packages/angular-renderer/playwright/.cache/assets/select.component-BC_aoLNt.js.map +1 -0
  77. package/packages/angular-renderer/playwright/.cache/assets/sidebar.component-CY_vKSCu.js +217 -0
  78. package/packages/angular-renderer/playwright/.cache/assets/sidebar.component-CY_vKSCu.js.map +1 -0
  79. package/packages/angular-renderer/playwright/.cache/assets/switch.component-BtfhJxLp.js +144 -0
  80. package/packages/angular-renderer/playwright/.cache/assets/switch.component-BtfhJxLp.js.map +1 -0
  81. package/packages/angular-renderer/playwright/.cache/assets/tabs.component-DGcKkhH_.js +218 -0
  82. package/packages/angular-renderer/playwright/.cache/assets/tabs.component-DGcKkhH_.js.map +1 -0
  83. package/packages/angular-renderer/playwright/.cache/assets/text-input.component-IyHHKpW-.js +121 -0
  84. package/packages/angular-renderer/playwright/.cache/assets/text-input.component-IyHHKpW-.js.map +1 -0
  85. package/packages/angular-renderer/playwright/.cache/assets/textarea.component-Bpvh81yV.js +141 -0
  86. package/packages/angular-renderer/playwright/.cache/assets/textarea.component-Bpvh81yV.js.map +1 -0
  87. package/packages/angular-renderer/playwright/.cache/assets/vbox.component-DRe59FUF.js +127 -0
  88. package/packages/angular-renderer/playwright/.cache/assets/vbox.component-DRe59FUF.js.map +1 -0
  89. package/packages/angular-renderer/playwright/.cache/index.html +11 -0
  90. package/packages/angular-renderer/playwright/.cache/metainfo.json +5416 -0
  91. package/packages/angular-renderer/playwright/index.html +11 -0
  92. package/packages/angular-renderer/playwright/index.ts +1 -0
  93. package/packages/angular-renderer/playwright-ct.config.ts +13 -3
  94. package/packages/angular-renderer/src/adapters/web/experience-adapter.service.ts +15 -1
  95. package/packages/angular-renderer/src/components/primitives/breadcrumbs/breadcrumbs.component.pw.ts +37 -0
  96. package/packages/angular-renderer/src/components/primitives/breadcrumbs/breadcrumbs.component.ts +0 -1
  97. package/packages/angular-renderer/src/components/primitives/button/button.component.pw.ts +17 -4
  98. package/packages/angular-renderer/src/components/primitives/card/card.component.pw.ts +32 -0
  99. package/packages/angular-renderer/src/components/primitives/checkbox/checkbox.component.pw.ts +38 -0
  100. package/packages/angular-renderer/src/components/primitives/chip/chip.component.pw.ts +56 -0
  101. package/packages/angular-renderer/src/components/primitives/chip/chip.component.ts +1 -1
  102. package/packages/angular-renderer/src/components/primitives/data-grid/data-grid.component.pw.ts +37 -0
  103. package/packages/angular-renderer/src/components/primitives/form-field/form-field.component.pw.ts +38 -0
  104. package/packages/angular-renderer/src/components/primitives/hbox/hbox.component.pw.ts +32 -0
  105. package/packages/angular-renderer/src/components/primitives/label/label.component.pw.ts +32 -0
  106. package/packages/angular-renderer/src/components/primitives/list/list.component.pw.ts +37 -0
  107. package/packages/angular-renderer/src/components/primitives/radio-group/radio-group.component.pw.ts +38 -0
  108. package/packages/angular-renderer/src/components/primitives/select/select.component.pw.ts +32 -0
  109. package/packages/angular-renderer/src/components/primitives/sidebar/sidebar.component.pw.ts +37 -0
  110. package/packages/angular-renderer/src/components/primitives/switch/switch.component.pw.ts +62 -0
  111. package/packages/angular-renderer/src/components/primitives/switch/switch.component.ts +1 -1
  112. package/packages/angular-renderer/src/components/primitives/tabs/tabs.component.pw.ts +37 -0
  113. package/packages/angular-renderer/src/components/primitives/text-input/text-input.component.pw.ts +16 -7
  114. package/packages/angular-renderer/src/components/primitives/textarea/textarea.component.pw.ts +38 -0
  115. package/packages/angular-renderer/src/components/primitives/vbox/vbox.component.pw.ts +17 -4
  116. package/packages/angular-renderer/src/devtools/devtools-bridge.ts +2 -0
  117. package/packages/angular-renderer/src/index.ts +1 -0
  118. package/packages/angular-renderer/src/lib/primitives.provider.ts +29 -21
  119. package/packages/cli/CHANGELOG.md +8 -0
  120. package/packages/cli/package.json +2 -2
  121. package/packages/core/CHANGELOG.md +14 -0
  122. package/packages/core/package.json +2 -2
  123. package/packages/design-tokens/CHANGELOG.md +8 -0
  124. package/packages/design-tokens/package.json +1 -1
  125. package/packages/devtools/CHANGELOG.md +8 -0
  126. package/packages/devtools/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/deps___vitest_vm__/_metadata.json +3 -3
  127. package/packages/devtools/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
  128. package/packages/devtools/package.json +1 -1
  129. package/packages/playground/CHANGELOG.md +14 -0
  130. package/packages/playground/netlify.toml +6 -0
  131. package/packages/playground/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/deps___vitest_vm__/_metadata.json +3 -3
  132. package/packages/playground/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
  133. package/packages/playground/package.json +3 -3
  134. package/packages/playground/src/app/app.config.ts +6 -1
  135. package/packages/playground/src/preview/preview-root.component.ts +173 -12
  136. package/dist/packages/playground/browser/main-BBGOLU74.js +0 -711
  137. package/packages/angular-renderer/src/components/primitives/primitives.a11y.pw.ts +0 -382
@@ -0,0 +1,180 @@
1
+ import {
2
+ a as __domElementStart,
3
+ x as __domElement,
4
+ g as __domElementEnd,
5
+ d as __nextContext,
6
+ h as __advance,
7
+ v as __domProperty,
8
+ y as __sanitizeUrl,
9
+ k as __attribute,
10
+ f as __text,
11
+ i as __textInterpolate,
12
+ l as __conditionalCreate,
13
+ m as __conditional,
14
+ n as input,
15
+ o as inject,
16
+ D as DomSanitizer,
17
+ p as computed,
18
+ S as SecurityContext,
19
+ q as __defineComponent,
20
+ j as __classProp,
21
+ } from './index-DRoHZv2r.js';
22
+
23
+ function CardComponent_Conditional_1_Template(rf, ctx) {
24
+ if (rf & 1) {
25
+ __domElementStart(0, 'div', 1);
26
+ __domElement(1, 'img', 3);
27
+ __domElementEnd();
28
+ }
29
+ if (rf & 2) {
30
+ const ctx_r0 = __nextContext();
31
+ __advance();
32
+ __domProperty('src', ctx_r0.computedImageUrl(), __sanitizeUrl);
33
+ __attribute('alt', ctx_r0.computedImageAlt());
34
+ }
35
+ }
36
+ function CardComponent_Conditional_2_Conditional_1_Template(rf, ctx) {
37
+ if (rf & 1) {
38
+ __domElementStart(0, 'div', 4);
39
+ __text(1);
40
+ __domElementEnd();
41
+ }
42
+ if (rf & 2) {
43
+ const ctx_r0 = __nextContext(2);
44
+ __advance();
45
+ __textInterpolate(ctx_r0.computedTitle());
46
+ }
47
+ }
48
+ function CardComponent_Conditional_2_Conditional_2_Template(rf, ctx) {
49
+ if (rf & 1) {
50
+ __domElementStart(0, 'div', 5);
51
+ __text(1);
52
+ __domElementEnd();
53
+ }
54
+ if (rf & 2) {
55
+ const ctx_r0 = __nextContext(2);
56
+ __advance();
57
+ __textInterpolate(ctx_r0.computedSubtitle());
58
+ }
59
+ }
60
+ function CardComponent_Conditional_2_Template(rf, ctx) {
61
+ if (rf & 1) {
62
+ __domElementStart(0, 'div', 2);
63
+ __conditionalCreate(1, CardComponent_Conditional_2_Conditional_1_Template, 2, 1, 'div', 4);
64
+ __conditionalCreate(2, CardComponent_Conditional_2_Conditional_2_Template, 2, 1, 'div', 5);
65
+ __domElementEnd();
66
+ }
67
+ if (rf & 2) {
68
+ const ctx_r0 = __nextContext();
69
+ __advance();
70
+ __conditional(ctx_r0.computedTitle() !== void 0 && ctx_r0.computedTitle() !== '' ? 1 : -1);
71
+ __advance();
72
+ __conditional(
73
+ ctx_r0.computedSubtitle() !== void 0 && ctx_r0.computedSubtitle() !== '' ? 2 : -1
74
+ );
75
+ }
76
+ }
77
+ class CardComponent {
78
+ static contractSchema = {
79
+ title: 'string',
80
+ subtitle: 'string',
81
+ imageUrl: 'string',
82
+ imageAlt: 'string',
83
+ };
84
+ static strictContract = false;
85
+ contract = input.required(
86
+ ...(false ? [{ debugName: 'contract' }] : /* istanbul ignore next */ [])
87
+ );
88
+ sanitizer = inject(DomSanitizer);
89
+ computedTitle = computed(
90
+ () => {
91
+ const title = this.contract().props?.title;
92
+ return title !== void 0 && title !== null ? String(title) : void 0;
93
+ },
94
+ ...(false ? [{ debugName: 'computedTitle' }] : /* istanbul ignore next */ [])
95
+ );
96
+ computedSubtitle = computed(
97
+ () => {
98
+ const subtitle = this.contract().props?.subtitle;
99
+ return subtitle !== void 0 && subtitle !== null ? String(subtitle) : void 0;
100
+ },
101
+ ...(false ? [{ debugName: 'computedSubtitle' }] : /* istanbul ignore next */ [])
102
+ );
103
+ computedImageUrl = computed(
104
+ () => {
105
+ const url = this.contract().props?.imageUrl;
106
+ if (url === void 0 || url === null || url === '') return void 0;
107
+ const sanitizedUrl = this.sanitizer.sanitize(SecurityContext.URL, String(url));
108
+ return sanitizedUrl || void 0;
109
+ },
110
+ ...(false ? [{ debugName: 'computedImageUrl' }] : /* istanbul ignore next */ [])
111
+ );
112
+ computedImageAlt = computed(
113
+ () => {
114
+ const alt = this.contract().props?.imageAlt;
115
+ return alt !== void 0 && alt !== null ? String(alt) : '';
116
+ },
117
+ ...(false ? [{ debugName: 'computedImageAlt' }] : /* istanbul ignore next */ [])
118
+ );
119
+ computedAriaLabel = computed(
120
+ () => {
121
+ const label = this.contract().props?.['aria-label'];
122
+ return label !== void 0 && label !== null ? String(label) : void 0;
123
+ },
124
+ ...(false ? [{ debugName: 'computedAriaLabel' }] : /* istanbul ignore next */ [])
125
+ );
126
+ computedAriaDescribedBy = computed(
127
+ () => {
128
+ const desc = this.contract().props?.['aria-describedby'];
129
+ return desc !== void 0 && desc !== null ? String(desc) : void 0;
130
+ },
131
+ ...(false ? [{ debugName: 'computedAriaDescribedBy' }] : /* istanbul ignore next */ [])
132
+ );
133
+ static ɵfac = function CardComponent_Factory(__ngFactoryType__) {
134
+ return new (__ngFactoryType__ || CardComponent)();
135
+ };
136
+ static ɵcmp = /* @__PURE__ */ __defineComponent({
137
+ type: CardComponent,
138
+ selectors: [['origo-card']],
139
+ hostVars: 5,
140
+ hostBindings: function CardComponent_HostBindings(rf, ctx) {
141
+ if (rf & 2) {
142
+ __attribute('data-testid', ctx.contract().id)('aria-label', ctx.computedAriaLabel())(
143
+ 'aria-describedby',
144
+ ctx.computedAriaDescribedBy()
145
+ );
146
+ __classProp('origo-card', true);
147
+ }
148
+ },
149
+ inputs: { contract: [1, 'contract'] },
150
+ decls: 3,
151
+ vars: 2,
152
+ consts: [
153
+ [1, 'origo-card-container'],
154
+ [1, 'origo-card-image'],
155
+ [1, 'origo-card-content'],
156
+ [3, 'src'],
157
+ ['role', 'heading', 'aria-level', '3', 1, 'origo-card-title'],
158
+ [1, 'origo-card-subtitle'],
159
+ ],
160
+ template: function CardComponent_Template(rf, ctx) {
161
+ if (rf & 1) {
162
+ __domElementStart(0, 'div', 0);
163
+ __conditionalCreate(1, CardComponent_Conditional_1_Template, 2, 2, 'div', 1);
164
+ __conditionalCreate(2, CardComponent_Conditional_2_Template, 3, 2, 'div', 2);
165
+ __domElementEnd();
166
+ }
167
+ if (rf & 2) {
168
+ __advance();
169
+ __conditional(ctx.computedImageUrl() ? 1 : -1);
170
+ __advance();
171
+ __conditional(ctx.computedTitle() !== void 0 || ctx.computedSubtitle() !== void 0 ? 2 : -1);
172
+ }
173
+ },
174
+ encapsulation: 3,
175
+ });
176
+ }
177
+ /* @__PURE__ */ (() => {})();
178
+
179
+ export { CardComponent };
180
+ //# sourceMappingURL=card.component-0WWaDbUV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.component-0WWaDbUV.js","sources":["../../../src/components/primitives/card/card.component.ts"],"sourcesContent":["import {\n Component,\n input,\n ChangeDetectionStrategy,\n computed,\n ViewEncapsulation,\n inject,\n SecurityContext,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { InteractionContract } from '@origo/core';\nimport { OrigoAdapter } from '../../../adapters/web/adapter';\n\nexport interface CardProps {\n title?: string;\n subtitle?: string;\n imageUrl?: string;\n imageAlt?: string;\n 'aria-label'?: string;\n 'aria-describedby'?: string;\n}\n\n@Component({\n selector: 'origo-card',\n standalone: true,\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.ShadowDom,\n host: {\n '[class.origo-card]': 'true',\n '[attr.data-testid]': 'contract().id',\n '[attr.aria-label]': 'computedAriaLabel()',\n '[attr.aria-describedby]': 'computedAriaDescribedBy()',\n },\n})\nexport class CardComponent implements OrigoAdapter<CardProps> {\n static readonly contractSchema = {\n title: 'string',\n subtitle: 'string',\n imageUrl: 'string',\n imageAlt: 'string',\n };\n static readonly strictContract = false;\n\n contract = input.required<InteractionContract<CardProps>>();\n\n private sanitizer = inject(DomSanitizer);\n\n computedTitle = computed(() => {\n const title = this.contract().props?.title;\n return title !== undefined && title !== null ? String(title) : undefined;\n });\n\n computedSubtitle = computed(() => {\n const subtitle = this.contract().props?.subtitle;\n return subtitle !== undefined && subtitle !== null ? String(subtitle) : undefined;\n });\n\n computedImageUrl = computed(() => {\n const url = this.contract().props?.imageUrl;\n if (url === undefined || url === null || url === '') return undefined;\n\n // Sanitize URL for image source\n const sanitizedUrl = this.sanitizer.sanitize(SecurityContext.URL, String(url));\n return sanitizedUrl || undefined;\n });\n\n computedImageAlt = computed(() => {\n const alt = this.contract().props?.imageAlt;\n return alt !== undefined && alt !== null ? String(alt) : '';\n });\n\n computedAriaLabel = computed(() => {\n const label = this.contract().props?.['aria-label'];\n return label !== undefined && label !== null ? String(label) : undefined;\n });\n\n computedAriaDescribedBy = computed(() => {\n const desc = this.contract().props?.['aria-describedby'];\n return desc !== undefined && desc !== null ? String(desc) : undefined;\n });\n}\n"],"names":["i0.ɵɵdomElementStart","i0.ɵɵdomElement","i0.ɵɵdomElementEnd","i0.ɵɵnextContext","i0.ɵɵadvance","i0.ɵɵdomProperty","i0.ɵɵsanitizeUrl","i0.ɵɵattribute","i0.ɵɵtextInterpolate","i0.ɵɵtext","i0.ɵɵconditionalCreate","i0.ɵɵconditional"],"mappings":"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"}
@@ -0,0 +1,150 @@
1
+ import {
2
+ a as __domElementStart,
3
+ f as __text,
4
+ g as __domElementEnd,
5
+ n as input,
6
+ z as model,
7
+ p as computed,
8
+ o as inject,
9
+ A as effect,
10
+ B as untracked,
11
+ q as __defineComponent,
12
+ b as __domListener,
13
+ l as __conditionalCreate,
14
+ j as __classProp,
15
+ v as __domProperty,
16
+ h as __advance,
17
+ k as __attribute,
18
+ i as __textInterpolate,
19
+ m as __conditional,
20
+ } from './index-DRoHZv2r.js';
21
+ import { W as WebExperienceAdapterService } from './experience-adapter.service-CJxHLpWN.js';
22
+
23
+ function CheckboxComponent_Conditional_4_Template(rf, ctx) {
24
+ if (rf & 1) {
25
+ __domElementStart(0, 'span', 3);
26
+ __text(1, '*');
27
+ __domElementEnd();
28
+ }
29
+ }
30
+ class CheckboxComponent {
31
+ static contractSchema = {
32
+ checked: 'boolean',
33
+ label: 'string',
34
+ disabled: 'boolean',
35
+ required: 'boolean',
36
+ };
37
+ static strictContract = false;
38
+ contract = input.required(
39
+ ...(false ? [{ debugName: 'contract' }] : /* istanbul ignore next */ [])
40
+ );
41
+ checked = model(false, ...(false ? [{ debugName: 'checked' }] : /* istanbul ignore next */ []));
42
+ computedLabel = computed(
43
+ () => this.contract().props?.label ?? '',
44
+ ...(false ? [{ debugName: 'computedLabel' }] : /* istanbul ignore next */ [])
45
+ );
46
+ computedDisabled = computed(
47
+ () => !!this.contract().props?.disabled,
48
+ ...(false ? [{ debugName: 'computedDisabled' }] : /* istanbul ignore next */ [])
49
+ );
50
+ computedRequired = computed(
51
+ () => !!this.contract().props?.required,
52
+ ...(false ? [{ debugName: 'computedRequired' }] : /* istanbul ignore next */ [])
53
+ );
54
+ computedAriaLabel = computed(
55
+ () => {
56
+ const label = this.contract().props?.['aria-label'];
57
+ return label !== void 0 && label !== null && String(label).trim() !== ''
58
+ ? String(label)
59
+ : void 0;
60
+ },
61
+ ...(false ? [{ debugName: 'computedAriaLabel' }] : /* istanbul ignore next */ [])
62
+ );
63
+ computedAriaDescribedBy = computed(
64
+ () => {
65
+ const desc = this.contract().props?.['aria-describedby'];
66
+ return desc !== void 0 && desc !== null && String(desc).trim() !== '' ? String(desc) : void 0;
67
+ },
68
+ ...(false ? [{ debugName: 'computedAriaDescribedBy' }] : /* istanbul ignore next */ [])
69
+ );
70
+ experienceAdapter = inject(WebExperienceAdapterService);
71
+ constructor() {
72
+ effect(() => {
73
+ const contractVal = !!this.contract().props?.checked;
74
+ untracked(() => {
75
+ if (contractVal === this.checked()) return;
76
+ this.checked.set(contractVal);
77
+ });
78
+ });
79
+ }
80
+ onChange(event) {
81
+ const target = event.target;
82
+ if (!target || this.computedDisabled()) return;
83
+ const isChecked = target.checked;
84
+ this.checked.set(isChecked);
85
+ this.experienceAdapter.updateState(this.contract().id, 'checked', isChecked);
86
+ }
87
+ static ɵfac = function CheckboxComponent_Factory(__ngFactoryType__) {
88
+ return new (__ngFactoryType__ || CheckboxComponent)();
89
+ };
90
+ static ɵcmp = /* @__PURE__ */ __defineComponent({
91
+ type: CheckboxComponent,
92
+ selectors: [['origo-checkbox']],
93
+ hostVars: 3,
94
+ hostBindings: function CheckboxComponent_HostBindings(rf, ctx) {
95
+ if (rf & 2) {
96
+ __attribute('data-testid', ctx.contract().id ?? '');
97
+ __classProp('origo-checkbox', true);
98
+ }
99
+ },
100
+ inputs: { contract: [1, 'contract'], checked: [1, 'checked'] },
101
+ outputs: { checked: 'checkedChange' },
102
+ decls: 5,
103
+ vars: 11,
104
+ consts: [
105
+ [3, 'for'],
106
+ ['type', 'checkbox', 3, 'change', 'id', 'disabled', 'required', 'checked'],
107
+ [1, 'label-text'],
108
+ ['aria-hidden', 'true', 1, 'required-indicator'],
109
+ ],
110
+ template: function CheckboxComponent_Template(rf, ctx) {
111
+ if (rf & 1) {
112
+ __domElementStart(0, 'label', 0)(1, 'input', 1);
113
+ __domListener(
114
+ 'change',
115
+ function CheckboxComponent_Template_input_change_1_listener($event) {
116
+ return ctx.onChange($event);
117
+ }
118
+ );
119
+ __domElementEnd();
120
+ __domElementStart(2, 'span', 2);
121
+ __text(3);
122
+ __domElementEnd();
123
+ __conditionalCreate(4, CheckboxComponent_Conditional_4_Template, 2, 0, 'span', 3);
124
+ __domElementEnd();
125
+ }
126
+ if (rf & 2) {
127
+ __classProp('disabled', ctx.computedDisabled());
128
+ __domProperty('htmlFor', ctx.contract().id);
129
+ __advance();
130
+ __domProperty('id', ctx.contract().id)('disabled', ctx.computedDisabled())(
131
+ 'required',
132
+ ctx.computedRequired()
133
+ )('checked', ctx.checked());
134
+ __attribute('aria-label', ctx.computedAriaLabel())(
135
+ 'aria-describedby',
136
+ ctx.computedAriaDescribedBy()
137
+ );
138
+ __advance(2);
139
+ __textInterpolate(ctx.computedLabel());
140
+ __advance();
141
+ __conditional(ctx.computedRequired() ? 4 : -1);
142
+ }
143
+ },
144
+ encapsulation: 3,
145
+ });
146
+ }
147
+ /* @__PURE__ */ (() => {})();
148
+
149
+ export { CheckboxComponent };
150
+ //# sourceMappingURL=checkbox.component-JGpevUFG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.component-JGpevUFG.js","sources":["../../../src/components/primitives/checkbox/checkbox.component.ts"],"sourcesContent":["import {\n Component,\n input,\n model,\n ChangeDetectionStrategy,\n computed,\n ViewEncapsulation,\n inject,\n effect,\n untracked,\n} from '@angular/core';\nimport { InteractionContract } from '@origo/core';\nimport { OrigoAdapter } from '../../../adapters/web/adapter';\nimport { WebExperienceAdapterService } from '../../../adapters/web/experience-adapter.service';\n\nexport interface CheckboxProps {\n checked?: boolean;\n label?: string;\n disabled?: boolean;\n 'aria-label'?: string;\n 'aria-describedby'?: string;\n required?: boolean;\n}\n\n@Component({\n selector: 'origo-checkbox',\n standalone: true,\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.ShadowDom,\n host: {\n '[class.origo-checkbox]': 'true',\n '[attr.data-testid]': 'contract().id ?? \"\"',\n },\n})\nexport class CheckboxComponent implements OrigoAdapter<CheckboxProps> {\n static readonly contractSchema = {\n checked: 'boolean',\n label: 'string',\n disabled: 'boolean',\n required: 'boolean',\n };\n static readonly strictContract = false;\n\n contract = input.required<InteractionContract<CheckboxProps>>();\n checked = model<boolean>(false);\n\n computedLabel = computed(() => this.contract().props?.label ?? '');\n computedDisabled = computed(() => !!this.contract().props?.disabled);\n computedRequired = computed(() => !!this.contract().props?.required);\n computedAriaLabel = computed(() => {\n const label = this.contract().props?.['aria-label'];\n return label !== undefined && label !== null && String(label).trim() !== ''\n ? String(label)\n : undefined;\n });\n computedAriaDescribedBy = computed(() => {\n const desc = this.contract().props?.['aria-describedby'];\n return desc !== undefined && desc !== null && String(desc).trim() !== ''\n ? String(desc)\n : undefined;\n });\n\n private experienceAdapter = inject(WebExperienceAdapterService);\n\n constructor() {\n effect(() => {\n const contractVal = !!this.contract().props?.checked;\n untracked(() => {\n if (contractVal === this.checked()) return;\n this.checked.set(contractVal);\n });\n });\n }\n\n onChange(event: Event) {\n const target = event.target as HTMLInputElement | null;\n if (!target || this.computedDisabled()) return;\n\n const isChecked = target.checked;\n this.checked.set(isChecked);\n this.experienceAdapter.updateState(this.contract().id, 'checked', isChecked);\n }\n}\n"],"names":["i0.ɵɵdomElementStart","i0.ɵɵtext","i0.ɵɵdomElementEnd","i0.ɵɵdefineComponent","i0.ɵɵattribute","i0.ɵɵclassProp"],"mappings":"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"}
@@ -0,0 +1,121 @@
1
+ import {
2
+ n as input,
3
+ z as model,
4
+ p as computed,
5
+ o as inject,
6
+ A as effect,
7
+ B as untracked,
8
+ q as __defineComponent,
9
+ a as __domElementStart,
10
+ b as __domListener,
11
+ f as __text,
12
+ g as __domElementEnd,
13
+ j as __classProp,
14
+ v as __domProperty,
15
+ k as __attribute,
16
+ h as __advance,
17
+ i as __textInterpolate,
18
+ } from './index-DRoHZv2r.js';
19
+ import { c as coerceContractProps } from './adapter-iYml3Kk6.js';
20
+ import { W as WebExperienceAdapterService } from './experience-adapter.service-CJxHLpWN.js';
21
+
22
+ class ChipComponent {
23
+ static contractSchema = {
24
+ selected: 'boolean',
25
+ label: 'string',
26
+ disabled: 'boolean',
27
+ };
28
+ static strictContract = false;
29
+ contract = input.required(
30
+ ...(false ? [{ debugName: 'contract' }] : /* istanbul ignore next */ [])
31
+ );
32
+ selected = model(false, ...(false ? [{ debugName: 'selected' }] : /* istanbul ignore next */ []));
33
+ computedLabel = computed(
34
+ () => this.contract().props?.label ?? '',
35
+ ...(false ? [{ debugName: 'computedLabel' }] : /* istanbul ignore next */ [])
36
+ );
37
+ computedDisabled = computed(
38
+ () => !!this.contract().props?.disabled,
39
+ ...(false ? [{ debugName: 'computedDisabled' }] : /* istanbul ignore next */ [])
40
+ );
41
+ computedAriaLabel = computed(
42
+ () => {
43
+ const v = this.contract().props?.['aria-label'];
44
+ return v !== void 0 && v !== null && String(v).trim() !== '' ? String(v) : void 0;
45
+ },
46
+ ...(false ? [{ debugName: 'computedAriaLabel' }] : /* istanbul ignore next */ [])
47
+ );
48
+ computedAriaDescribedBy = computed(
49
+ () => {
50
+ const v = this.contract().props?.['aria-describedby'];
51
+ return v !== void 0 && v !== null && String(v).trim() !== '' ? String(v) : void 0;
52
+ },
53
+ ...(false ? [{ debugName: 'computedAriaDescribedBy' }] : /* istanbul ignore next */ [])
54
+ );
55
+ experienceAdapter = inject(WebExperienceAdapterService);
56
+ constructor() {
57
+ effect(() => {
58
+ const props = this.contract().props;
59
+ const coerced = props ? coerceContractProps(props, ChipComponent.contractSchema) : {};
60
+ const contractVal = coerced['selected'] !== void 0 ? !!coerced['selected'] : this.selected();
61
+ untracked(() => {
62
+ if (contractVal === this.selected()) return;
63
+ this.selected.set(contractVal);
64
+ });
65
+ });
66
+ }
67
+ onClick() {
68
+ if (this.computedDisabled() || !this.contract().id) return;
69
+ const nextSelected = !this.selected();
70
+ this.selected.set(nextSelected);
71
+ this.experienceAdapter.updateState(this.contract().id, 'selected', nextSelected);
72
+ }
73
+ static ɵfac = function ChipComponent_Factory(__ngFactoryType__) {
74
+ return new (__ngFactoryType__ || ChipComponent)();
75
+ };
76
+ static ɵcmp = /* @__PURE__ */ __defineComponent({
77
+ type: ChipComponent,
78
+ selectors: [['origo-chip']],
79
+ hostVars: 3,
80
+ hostBindings: function ChipComponent_HostBindings(rf, ctx) {
81
+ if (rf & 2) {
82
+ __attribute('data-testid', ctx.contract().id ?? '');
83
+ __classProp('origo-chip', true);
84
+ }
85
+ },
86
+ inputs: { contract: [1, 'contract'], selected: [1, 'selected'] },
87
+ outputs: { selected: 'selectedChange' },
88
+ decls: 3,
89
+ vars: 8,
90
+ consts: [
91
+ ['type', 'button', 3, 'click', 'id', 'disabled'],
92
+ [1, 'chip-label'],
93
+ ],
94
+ template: function ChipComponent_Template(rf, ctx) {
95
+ if (rf & 1) {
96
+ __domElementStart(0, 'button', 0);
97
+ __domListener('click', function ChipComponent_Template_button_click_0_listener() {
98
+ return ctx.onClick();
99
+ });
100
+ __domElementStart(1, 'span', 1);
101
+ __text(2);
102
+ __domElementEnd()();
103
+ }
104
+ if (rf & 2) {
105
+ __classProp('origo-chip--selected', ctx.selected());
106
+ __domProperty('id', ctx.contract().id)('disabled', ctx.computedDisabled());
107
+ __attribute('aria-pressed', ctx.selected().toString())(
108
+ 'aria-label',
109
+ ctx.computedAriaLabel() ?? void 0
110
+ )('aria-describedby', ctx.computedAriaDescribedBy() ?? void 0);
111
+ __advance(2);
112
+ __textInterpolate(ctx.computedLabel());
113
+ }
114
+ },
115
+ encapsulation: 3,
116
+ });
117
+ }
118
+ /* @__PURE__ */ (() => {})();
119
+
120
+ export { ChipComponent };
121
+ //# sourceMappingURL=chip.component-DHGk3h8k.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chip.component-DHGk3h8k.js","sources":["../../../src/components/primitives/chip/chip.component.ts"],"sourcesContent":["import {\n Component,\n input,\n model,\n computed,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n inject,\n effect,\n untracked,\n} from '@angular/core';\nimport { InteractionContract } from '@origo/core';\nimport { OrigoAdapter, coerceContractProps } from '../../../adapters/web/adapter';\nimport { WebExperienceAdapterService } from '../../../adapters/web/experience-adapter.service';\n\nexport interface ChipProps {\n selected?: boolean;\n label?: string;\n disabled?: boolean;\n 'aria-label'?: string;\n 'aria-describedby'?: string;\n}\n\n@Component({\n selector: 'origo-chip',\n standalone: true,\n templateUrl: './chip.component.html',\n styleUrls: ['./chip.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.ShadowDom,\n host: {\n '[class.origo-chip]': 'true',\n '[attr.data-testid]': 'contract().id ?? \"\"',\n },\n})\nexport class ChipComponent implements OrigoAdapter<ChipProps> {\n static readonly contractSchema: Record<\n string,\n 'string' | 'number' | 'boolean' | 'object' | 'array'\n > = {\n selected: 'boolean',\n label: 'string',\n disabled: 'boolean',\n };\n static readonly strictContract = false;\n\n contract = input.required<InteractionContract<ChipProps>>();\n selected = model<boolean>(false);\n\n computedLabel = computed(() => this.contract().props?.label ?? '');\n computedDisabled = computed(() => !!this.contract().props?.disabled);\n computedAriaLabel = computed(() => {\n const v = this.contract().props?.['aria-label'];\n return v !== undefined && v !== null && String(v).trim() !== '' ? String(v) : undefined;\n });\n computedAriaDescribedBy = computed(() => {\n const v = this.contract().props?.['aria-describedby'];\n return v !== undefined && v !== null && String(v).trim() !== '' ? String(v) : undefined;\n });\n\n private experienceAdapter = inject(WebExperienceAdapterService);\n\n constructor() {\n effect(() => {\n const props = this.contract().props;\n const coerced = props\n ? coerceContractProps<Record<string, unknown>>(props, ChipComponent.contractSchema)\n : {};\n const contractVal =\n coerced['selected'] !== undefined ? !!coerced['selected'] : this.selected();\n untracked(() => {\n if (contractVal === this.selected()) return;\n this.selected.set(contractVal);\n });\n });\n }\n\n onClick() {\n if (this.computedDisabled() || !this.contract().id) return;\n\n const nextSelected = !this.selected();\n this.selected.set(nextSelected);\n this.experienceAdapter.updateState(this.contract().id, 'selected', nextSelected);\n }\n}\n"],"names":["i0.ɵɵdefineComponent","i0.ɵɵattribute","i0.ɵɵclassProp","i0.ɵɵdomElementStart","i0.ɵɵtext"],"mappings":"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"}